oh-my-agent 15.0.16 → 15.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -218,6 +218,14 @@ actions for project setup, review, debugging, verification, and local results.
218
218
  It uses your existing Orca agent terminal and project OMA installation. Requires
219
219
  Orca 1.4.197+ with experimental plugins enabled.
220
220
 
221
+ ### DeepSeek Harness
222
+
223
+ [OMA for DeepSeek Harness](integrations/dsh/README.md) connects project OMA checks
224
+ to DSH tool execution and turn completion through a Cordis plugin. DSH discovers
225
+ the existing `.agents/skills` directly. The plugin ships executable JavaScript
226
+ and requires no build. See the integration guide for installation, tested versions,
227
+ and the supported hook events.
228
+
221
229
  ## How It Works
222
230
 
223
231
  Just chat. Describe what you want and oh-my-agent figures out which agents to use.
package/bin/cli-main.js CHANGED
@@ -24,7 +24,7 @@ Expecting one of '${r.join("', '")}'`);if(this._lifeCycleHooks[e])this._lifeCycl
24
24
  `),this.outputHelp({error:!0});let r=t||{},n=r.exitCode||1,i=r.code||"commander.error";this._exit(n,i,e)}_parseOptionsEnv(){this.options.forEach((e)=>{if(e.envVar&&e.envVar in Sr.env){let t=e.attributeName();if(this.getOptionValue(t)===void 0||["default","config","env"].includes(this.getOptionValueSource(t)))if(e.required||e.optional)this.emit(`optionEnv:${e.name()}`,Sr.env[e.envVar]);else this.emit(`optionEnv:${e.name()}`)}})}_parseOptionsImplied(){let e=new kB(this.options),t=(r)=>this.getOptionValue(r)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(r));this.options.filter((r)=>r.implied!==void 0&&t(r.attributeName())&&e.valueFromOption(this.getOptionValue(r.attributeName()),r)).forEach((r)=>{Object.keys(r.implied).filter((n)=>!t(n)).forEach((n)=>{this.setOptionValueWithSource(n,r.implied[n],"implied")})})}missingArgument(e){let t=`error: missing required argument '${e}'`;this.error(t,{code:"commander.missingArgument"})}optionMissingArgument(e){let t=`error: option '${e.flags}' argument missing`;this.error(t,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(e){let t=`error: required option '${e.flags}' not specified`;this.error(t,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(e,t){let r=(o)=>{let s=o.attributeName(),a=this.getOptionValue(s),c=this.options.find((u)=>u.negate&&s===u.attributeName()),l=this.options.find((u)=>!u.negate&&s===u.attributeName());if(c&&(c.presetArg===void 0&&a===!1||c.presetArg!==void 0&&a===c.presetArg))return c;return l||o},n=(o)=>{let s=r(o),a=s.attributeName();if(this.getOptionValueSource(a)==="env")return`environment variable '${s.envVar}'`;return`option '${s.flags}'`},i=`error: ${n(e)} cannot be used with ${n(t)}`;this.error(i,{code:"commander.conflictingOption"})}unknownOption(e){if(this._allowUnknownOption)return;let t="";if(e.startsWith("--")&&this._showSuggestionAfterError){let n=[],i=this;do{let o=i.createHelp().visibleOptions(i).filter((s)=>s.long).map((s)=>s.long);n=n.concat(o),i=i.parent}while(i&&!i._enablePositionalOptions);t=xB(e,n)}let r=`error: unknown option '${e}'${t}`;this.error(r,{code:"commander.unknownOption"})}_excessArguments(e){if(this._allowExcessArguments)return;let t=this.registeredArguments.length,r=t===1?"":"s",n=e.length,i=this.parent?` for '${this.name()}'`:"",o=e.join(", "),s=`error: too many arguments${i}. Expected ${t} argument${r} but got ${n}: ${o}.`;this.error(s,{code:"commander.excessArguments"})}unknownCommand(){let e=this.args[0],t="";if(this._showSuggestionAfterError){let n=[];this.createHelp().visibleCommands(this).forEach((i)=>{if(n.push(i.name()),i.alias())n.push(i.alias())}),t=xB(e,n)}let r=`error: unknown command '${e}'${t}`;this.error(r,{code:"commander.unknownCommand"})}version(e,t,r){if(e===void 0)return this._version;this._version=e,t=t||"-V, --version",r=r||"output the version number";let n=this.createOption(t,r);return this._versionOptionName=n.attributeName(),this._registerOption(n),this.on("option:"+n.name(),()=>{this._outputConfiguration.writeOut(`${e}
25
25
  `),this._exit(0,"commander.version",e)}),this}description(e,t){if(e===void 0&&t===void 0)return this._description;if(this._description=e,t)this._argsDescription=t;return this}summary(e){if(e===void 0)return this._summary;return this._summary=e,this}alias(e){if(e===void 0)return this._aliases[0];let t=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)t=this.commands[this.commands.length-1];if(e===t._name)throw Error("Command alias can't be the same as its name");let r=this.parent?._findCommand(e);if(r){let n=[r.name()].concat(r.aliases()).join("|");throw Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${n}'`)}return t._aliases.push(e),this}aliases(e){if(e===void 0)return this._aliases;return e.forEach((t)=>this.alias(t)),this}usage(e){if(e===void 0){if(this._usage)return this._usage;let t=this.registeredArguments.map((r)=>bE(r));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?t:[]).join(" ")}return this._usage=e,this}name(e){if(e===void 0)return this._name;return this._name=e,this}helpGroup(e){if(e===void 0)return this._helpGroupHeading??"";return this._helpGroupHeading=e,this}commandsGroup(e){if(e===void 0)return this._defaultCommandGroup??"";return this._defaultCommandGroup=e,this}optionsGroup(e){if(e===void 0)return this._defaultOptionGroup??"";return this._defaultOptionGroup=e,this}_initOptionGroup(e){if(this._defaultOptionGroup&&!e.helpGroupHeading)e.helpGroup(this._defaultOptionGroup)}_initCommandGroup(e){if(this._defaultCommandGroup&&!e.helpGroup())e.helpGroup(this._defaultCommandGroup)}nameFromFilename(e){return this._name=nu.basename(e,nu.extname(e)),this}executableDir(e){if(e===void 0)return this._executableDir;return this._executableDir=e,this}helpInformation(e){let t=this.createHelp(),r=this._getOutputContext(e);t.prepareContext({error:r.error,helpWidth:r.helpWidth,outputHasColors:r.hasColors});let n=t.formatHelp(this,t);if(r.hasColors)return n;return this._outputConfiguration.stripColor(n)}_getOutputContext(e){e=e||{};let t=!!e.error,r,n,i;if(t)r=(s)=>this._outputConfiguration.writeErr(s),n=this._outputConfiguration.getErrHasColors(),i=this._outputConfiguration.getErrHelpWidth();else r=(s)=>this._outputConfiguration.writeOut(s),n=this._outputConfiguration.getOutHasColors(),i=this._outputConfiguration.getOutHelpWidth();return{error:t,write:(s)=>{if(!n)s=this._outputConfiguration.stripColor(s);return r(s)},hasColors:n,helpWidth:i}}outputHelp(e){let t;if(typeof e==="function")t=e,e=void 0;let r=this._getOutputContext(e),n={error:r.error,write:r.write,command:this};this._getCommandAndAncestors().reverse().forEach((o)=>o.emit("beforeAllHelp",n)),this.emit("beforeHelp",n);let i=this.helpInformation({error:r.error});if(t){if(i=t(i),typeof i!=="string"&&!Buffer.isBuffer(i))throw Error("outputHelp callback must return a string or a Buffer")}if(r.write(i),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",n),this._getCommandAndAncestors().forEach((o)=>o.emit("afterAllHelp",n))}helpOption(e,t){if(typeof e==="boolean"){if(e){if(this._helpOption===null)this._helpOption=void 0;if(this._defaultOptionGroup)this._initOptionGroup(this._getHelpOption())}else this._helpOption=null;return this}if(this._helpOption=this.createOption(e??"-h, --help",t??"display help for command"),e||t)this._initOptionGroup(this._helpOption);return this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption(e){return this._helpOption=e,this._initOptionGroup(e),this}help(e){this.outputHelp(e);let t=Number(Sr.exitCode??0);if(t===0&&e&&typeof e!=="function"&&e.error)t=1;this._exit(t,"commander.help","(outputHelp)")}addHelpText(e,t){let r=["beforeAll","before","after","afterAll"];if(!r.includes(e))throw Error(`Unexpected value for position to addHelpText.
26
26
  Expecting one of '${r.join("', '")}'`);let n=`${e}Help`;return this.on(n,(i)=>{let o;if(typeof t==="function")o=t({error:i.error,command:i.command});else o=t;if(o)i.write(`${o}
27
- `)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();if(t&&e.find((n)=>t.is(n)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}});var xAr;var g8=y(()=>{kE();C4e();h8();bB();wB();xAr=new Ll});var Tp;var AE=y(()=>{Tp={name:"oh-my-agent",version:"15.0.16",description:"Portable multi-agent harness for .agents-based skills and workflows across Antigravity, Claude Code, Codex, OpenCode, and more",type:"module",bin:{"oh-my-agent":"./bin/cli.js",oma:"./bin/cli.js"},files:["bin","assets/serena"],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"],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","generate:skill-data":"node ./scripts/generate-skill-data.mjs",build:"bun run generate:skill-data && bun run sync:readme && bun build cli.ts --outfile bin/cli-main.js --target node --minify --external @napi-rs/keyring --external jsonc-parser && node ./scripts/write-bin-entry.mjs && bun run check:bundle",dev:"bun run generate:skill-data && bun run cli.ts",lint:"biome check .","lint:fix":"biome check --write --unsafe .","check:boundaries":"node ./scripts/check-boundaries.mjs","check:bundle":"node ./scripts/check-bundle.mjs","check:emit-drift":"node ./scripts/check-emit-drift.mjs",test:"vitest run","test:coverage":"vitest run --coverage",prepublishOnly:"bun run build"},dependencies:{"@clack/prompts":"^1.7.0","@date-fns/tz":"^1.5.0","@napi-rs/keyring":"^1.3.0",axios:"^1.18.1","better-sqlite3":"^13.0.2",chokidar:"^5.0.0",commander:"^15.0.0","date-fns":"^4.4.0",eld:"^2.0.3","fast-xml-parser":"^5.10.1","jsonc-parser":"^3.3.1",minimatch:"^10.2.6","p-map":"^7.0.6",picocolors:"^1.1.1","puppeteer-core":"^25.4.0",remark:"^15.0.1","remark-frontmatter":"^5.0.0","remark-parse":"^11.0.0","smol-toml":"^1.7.1",unified:"^11.0.5",ws:"^8.21.1",yaml:"^2.9.0",zod:"^4.4.3"},optionalDependencies:{pptxgenjs:"^4.0.1"},devDependencies:{"@biomejs/biome":"^2.5.6","@types/better-sqlite3":"^7.6.13","@types/mdast":"^4.0.4","@types/node":"^26.1.2","@types/ws":"^8.18.1","@vitest/coverage-v8":"^4.1.10",typescript:"^7.0.2",vitest:"^4.1.10"},repository:{type:"git",url:"https://github.com/first-fluke/oh-my-agent"},homepage:"https://firstfluke.com/oh-my-agent",bugs:{url:"https://github.com/first-fluke/oh-my-agent/issues"},antigravity:{skillsPath:".agents/skills",skills:["oma-architecture","oma-brainstorm","oma-coordination","oma-pm","oma-frontend","oma-backend","oma-db","oma-mobile","oma-qa","oma-debug","oma-orchestration","oma-dev-workflow","oma-tf-infra","oma-scm","oma-pdf","oma-recap"]}}});import*as th from"node:fs";import{homedir as P4e}from"node:os";import*as J4 from"node:path";function T4e(e){if(SE)throw Error("install context already set in this process");SE=e}function R4e(){if(SE===null)throw Error("install context not set — entry point must call setInstallContext()");return SE}function iu(){return R4e().installRoot}function $i(){return R4e().mode}function _c(){try{return $i()}catch{return"project"}}function rh(){try{return iu()}catch{return process.cwd()}}function EE(e,t,r=P4e()){return t==="project"&&J4.resolve(e)===J4.resolve(r)}function I4e(e){let t=process.env.OMA_HOME,r=e.global===!0||process.env.OMA_INSTALL_GLOBAL==="1";if(t!==void 0&&t!=="")return W1t(t),{installRoot:t,mode:r?"global":"project"};if(r)return{installRoot:P4e(),mode:"global"};return{installRoot:process.cwd(),mode:"project"}}function W1t(e){if(!J4.isAbsolute(e))throw Error("OMA_HOME must be absolute path");for(let r of _4e)if(e===r||e.startsWith(r+J4.sep))throw Error(`OMA_HOME=${e} is forbidden (system path ${r})`);let t;try{t=th.realpathSync(e)}catch(r){let n=r instanceof Error?r.message:String(r);throw Error(`OMA_HOME=${e}: ${n}`)}for(let r of _4e)if(t===r||t.startsWith(r+J4.sep))throw Error(`OMA_HOME=${t} is forbidden (system path ${r})`);try{th.accessSync(t,th.constants.W_OK)}catch{throw Error(`OMA_HOME=${t} is not writable`)}}var SE=null,_4e;var m2=y(()=>{_4e=["/etc","/usr","/bin","/boot","/sys","/proc"]});import{join as V1t}from"node:path";function Ip(e){return e.endsWith("/")?e:`${e}/`}function wa(e,t){let r=t.split("/").filter((n)=>n.length>0);return V1t(e,...r)}var qt=".agents",Rp,Jn,Y4,_Ar,PAr,TAr,q1t=".antigravitycli",O4e,K1t=".migration-backup",J1t="docs/plans",Y1t=".qwen/tmp",X1t,Z1t,Q1t,ept,tpt,rpt,npt,SB;var Kr=y(()=>{Rp=`${qt}/skills`,Jn=`${qt}/results`,Y4=`${qt}/state`,_Ar=`${Y4}/sessions`,PAr=`${Y4}/retry`,TAr=`${Y4}/archive`,O4e=`${qt}/backup`;X1t=Ip(Jn),Z1t=Ip(Y4),Q1t=Ip(q1t),ept=Ip(O4e),tpt=Ip(K1t),rpt=Ip(J1t),npt=Ip(Y1t),SB=[".agents/oma-config.local.cue",".agents/oma-config.local.yaml",Q1t,X1t,Z1t,ept,rpt,tpt,npt]});var Jr="first-fluke/oh-my-agent",Kt,Pc,EB,ipt,opt,ou,Tn;var xa=y(()=>{Kr();Kt=Rp,Pc=["antigravity","claude","codex","commandcode","cursor","grok","kimi","kiro","qwen"],EB=["pi","opencode"],ipt=["copilot","hermes"],opt=["zcode"],ou=[...Pc,...EB,...ipt,...opt].sort(),Tn={antigravity:{projectPath:".gemini/antigravity-cli/skills",homePath:".gemini/antigravity-cli/skills",requiresHomeConsent:!0},claude:{projectPath:".claude/skills",homePath:".claude/skills"},codex:{projectPath:".codex/skills",homePath:".codex/skills"},commandcode:{projectPath:".commandcode/skills",homePath:".commandcode/skills",optIn:!0},copilot:{projectPath:".github/skills",homePath:".copilot/skills"},cursor:{projectPath:".cursor/skills",homePath:".cursor/skills"},hermes:{projectPath:".hermes/skills/oma",homePath:".hermes/skills/oma",requiresHomeConsent:!0},kimi:{projectPath:".kimi-code/skills",homePath:".kimi-code/skills",requiresHomeConsent:!0,optIn:!0},kiro:{projectPath:".kiro/skills",homePath:".kiro/skills",optIn:!0},opencode:{projectPath:".opencode/skills",homePath:".opencode/skills"},qwen:{projectPath:".qwen/skills",homePath:".qwen/skills"}}});function me(e,t="Output as JSON"){return e.option("--json",t).option("--output <format>","Output format (text/json)",(r)=>{let n=r.trim().toLowerCase();if(!y8.includes(n))throw Error(`Invalid output format: ${r}. Expected one of ${y8.join(", ")}`);return n})}function spt(e){if(e?.json)return"json";let t=e?.output?.trim().toLowerCase();if(t&&y8.includes(t))return t;if(process.env[M4e]?.trim().toLowerCase()==="json")return"json";return"text"}function he(e){return spt(e)==="json"}function j4e(e){let t=e.at(-1);return t instanceof Ll?t:null}function apt(e){let t=j4e(e);if(t)return t.opts();let r=e.at(-1);return r&&typeof r==="object"?r:{}}function cpt(e){if(e instanceof Error)return e.message;return String(e)}function X4(e){throw Error(e)}function CB(e,t){for(let r of e){let n=r.charCodeAt(0);if(n>=0&&n<=31||n===127)X4(`${t} must not contain control characters`)}}function lpt(e,t){if(CB(e,t),/[?#%]/.test(e))X4(`${t} must not contain ?, #, or %`);if(e.includes(".."))X4(`${t} must not contain '..'`)}function upt(e,t){CB(e,t);try{new URL(e)}catch{X4(`${t} must be a valid absolute URL`)}}function $B(e,t,r="text"){if(typeof e==="string"){if(r==="identifier"){lpt(e,t);return}if(r==="url"){upt(e,t);return}CB(e,t);return}if(Array.isArray(e))for(let[n,i]of e.entries())$B(i,`${t}[${n}]`,r)}function L4e(e){let t=e.toLowerCase();if(t==="url"||t.endsWith("url"))return"url";if(t.includes("id")||t.includes("type")||t.includes("vendor")||t.includes("session"))return"identifier";return"text"}function dpt(e){let t=e.vendor;if(typeof t==="string"){if(t.split(",").map((o)=>o.trim()).filter(Boolean).filter((o)=>!ou.includes(o)).length>0)X4(`vendor must be one of ${ou.join(", ")}`)}let r=e.output;if(typeof r==="string"&&!y8.includes(r))X4(`output must be one of ${y8.join(", ")}`)}function ppt(e){let t=e.processedArgs??e.args??[];(e.registeredArguments??[]).forEach((i,o)=>{let s=i.name?.()||String(o),a=t[o];if($B(a,s,L4e(s)),s==="agent-type"&&typeof a==="string"&&!D4e.includes(a))X4(`agent-type must be one of ${D4e.join(", ")}`)});let n=e.opts();dpt(n);for(let[i,o]of Object.entries(n))$B(o,i,L4e(i))}function fpt(e){return(e.registeredArguments??[]).map((t)=>({name:t.name?.()||"",required:!!t.required,variadic:!!t.variadic}))}function mpt(e){return e.options.map((t)=>({flags:t.flags,long:t.long||void 0,short:t.short||void 0,description:t.description||"",required:!!t.required||!!t.mandatory,optional:!!t.optional,defaultValue:t.defaultValue}))}function N4e(e){let t=[],r=e;while(r?.parent)t.unshift(r.name()),r=r.parent;return t.join(" ")}function hpt(e){return e.options.some((t)=>t.long==="--json"||t.long==="--output")}function gpt(e){return e.options.some((t)=>t.long==="--dry-run")}function F4e(e){return{name:e.name(),path:N4e(e),summary:e.summary()||void 0,description:e.description(),arguments:fpt(e),options:mpt(e),supportsJsonOutput:hpt(e),supportsDryRun:gpt(e),subcommands:e.commands.map((t)=>F4e(t))}}function ypt(e,t){if(!t?.trim())return e;let r=t.trim(),n=[...e.commands];while(n.length>0){let i=n.shift();if(!i)continue;if(i.name()===r||N4e(i)===r)return i;n.push(...i.commands)}return null}function z4e(e,t){let r=ypt(e,t);if(!r)X4(`Unknown command: ${t}`);let n={name:e.name(),version:e.version(),description:e.description(),env:{[M4e]:"Set to json to force machine-readable output on commands that support it."},command:F4e(r)};console.log(JSON.stringify(n,null,2))}function K(e,t={}){return async(...r)=>{let n=j4e(r);if(n&&r.length>=2)r[r.length-2]=n.optsWithGlobals();let i=apt(r);try{if(n)ppt(n);await e(...r)}catch(o){let s=cpt(o);if(t.supportsJsonOutput&&he(i))console.log(JSON.stringify({error:s},null,2));else console.error(s);process.exitCode=1}}}var M4e="OH_MY_AG_OUTPUT_FORMAT",y8,D4e;var $t=y(()=>{g8();xa();y8=["text","json"],D4e=["backend","frontend","mobile","qa","debug","pm"]});function ne(e,t,r){function n(a,c){if(!a._zod)Object.defineProperty(a,"_zod",{value:{def:c,constr:s,traits:new Set},enumerable:!1});if(a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,c);let l=s.prototype,u=Object.keys(l);for(let d=0;d<u.length;d++){let p=u[d];if(!(p in a))a[p]=l[p].bind(a)}}let i=r?.Parent??Object;class o extends i{}Object.defineProperty(o,"name",{value:e});function s(a){var c;let l=r?.Parent?new o:this;n(l,a),(c=l._zod).deferred??(c.deferred=[]);for(let u of l._zod.deferred)u();return l}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:(a)=>{if(r?.Parent&&a instanceof r.Parent)return!0;return a?._zod?.traits?.has(e)}}),Object.defineProperty(s,"name",{value:e}),s}function Aa(e){if(e)Object.assign(nh,e);return nh}var B4e,jAr,su,v8,nh;var Op=y(()=>{jAr=Symbol("zod_brand");su=class su extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}};v8=class v8 extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`);this.name="ZodEncodeError"}};(B4e=globalThis).__zod_globalConfig??(B4e.__zod_globalConfig={});nh=globalThis.__zod_globalConfig});function CE(e){let t=Object.values(e).filter((n)=>typeof n==="number");return Object.entries(e).filter(([n,i])=>t.indexOf(+n)===-1).map(([n,i])=>i)}function PB(e,t="|"){return e.map((r)=>OB(r)).join(t)}function k8(e,t){if(typeof t==="bigint")return t.toString();return t}function _E(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw Error("cached value already set")}}}function PE(e){return e===null||e===void 0}function TE(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function H4e(e,t){let r=e/t,n=Math.round(r),i=Number.EPSILON*Math.max(Math.abs(r),1);if(Math.abs(r-n)<i)return 0;return r-n}function er(e,t,r){let n=void 0;Object.defineProperty(e,t,{get(){if(n===U4e)return;if(n===void 0)n=U4e,n=r();return n},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function Dp(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function Z4(...e){let t={};for(let r of e){let n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function TB(e){return JSON.stringify(e)}function G4e(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function b8(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function Lp(e){if(b8(e)===!1)return!1;let t=e.constructor;if(t===void 0)return!0;if(typeof t!=="function")return!0;let r=t.prototype;if(b8(r)===!1)return!1;if(Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)return!1;return!0}function IB(e){if(Lp(e))return{...e};if(Array.isArray(e))return[...e];if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);return e}function Q4(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ml(e,t,r){let n=new e._zod.constr(t??e._zod.def);if(!t||r?.parent)n._zod.parent=e;return n}function Ue(e){let t=e;if(!t)return{};if(typeof t==="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}if(delete t.message,typeof t.error==="string")return{...t,error:()=>t.error};return t}function OB(e){if(typeof e==="bigint")return e.toString()+"n";if(typeof e==="string")return`"${e}"`;return`${e}`}function q4e(e){return Object.keys(e).filter((t)=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function vpt(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let o=Z4(e._zod.def,{get shape(){let s={};for(let a in t){if(!(a in r.shape))throw Error(`Unrecognized key: "${a}"`);if(!t[a])continue;s[a]=r.shape[a]}return Dp(this,"shape",s),s},checks:[]});return Ml(e,o)}function bpt(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let o=Z4(e._zod.def,{get shape(){let s={...e._zod.def.shape};for(let a in t){if(!(a in r.shape))throw Error(`Unrecognized key: "${a}"`);if(!t[a])continue;delete s[a]}return Dp(this,"shape",s),s},checks:[]});return Ml(e,o)}function kpt(e,t){if(!Lp(t))throw Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let o=e._zod.def.shape;for(let s in t)if(Object.getOwnPropertyDescriptor(o,s)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let i=Z4(e._zod.def,{get shape(){let o={...e._zod.def.shape,...t};return Dp(this,"shape",o),o}});return Ml(e,i)}function wpt(e,t){if(!Lp(t))throw Error("Invalid input to safeExtend: expected a plain object");let r=Z4(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Dp(this,"shape",n),n}});return Ml(e,r)}function xpt(e,t){if(e._zod.def.checks?.length)throw Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let r=Z4(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Dp(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return Ml(e,r)}function Apt(e,t,r){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(".partial() cannot be used on object schemas containing refinements");let s=Z4(t._zod.def,{get shape(){let a=t._zod.def.shape,c={...a};if(r)for(let l in r){if(!(l in a))throw Error(`Unrecognized key: "${l}"`);if(!r[l])continue;c[l]=e?new e({type:"optional",innerType:a[l]}):a[l]}else for(let l in a)c[l]=e?new e({type:"optional",innerType:a[l]}):a[l];return Dp(this,"shape",c),c},checks:[]});return Ml(t,s)}function Spt(e,t,r){let n=Z4(t._zod.def,{get shape(){let i=t._zod.def.shape,o={...i};if(r)for(let s in r){if(!(s in o))throw Error(`Unrecognized key: "${s}"`);if(!r[s])continue;o[s]=new e({type:"nonoptional",innerType:i[s]})}else for(let s in i)o[s]=new e({type:"nonoptional",innerType:i[s]});return Dp(this,"shape",o),o}});return Ml(t,n)}function Mp(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function J4e(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue===!1)return!0;return!1}function ed(e,t){return t.map((r)=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function $E(e){return typeof e==="string"?e:e?.message}function Tc(e,t,r){let n=e.message?e.message:$E(e.inst?._zod.def?.error?.(e))??$E(t?.error?.(e))??$E(r.customError?.(e))??$E(r.localeError?.(e))??"Invalid input",{inst:i,continue:o,input:s,...a}=e;if(a.path??(a.path=[]),a.message=n,t?.reportInput)a.input=s;return a}function RE(e){if(Array.isArray(e))return"array";if(typeof e==="string")return"string";return"unknown"}function Y4e(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return t}function jp(...e){let[t,r,n]=e;if(typeof t==="string")return{message:t,code:"custom",input:r,inst:n};return{...t}}var U4e,RB,W4e,V4e,K4e;var Rc=y(()=>{Op();U4e=Symbol("evaluating");RB="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};W4e=_E(()=>{if(nh.jitless)return!1;if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});V4e=new Set(["string","number","symbol"]);K4e={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]}});function Z4e(e,t=(r)=>r.message){let r={},n=[];for(let i of e.issues)if(i.path.length>0)r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(t(i));else n.push(t(i));return{formErrors:n,fieldErrors:r}}function Q4e(e,t=(r)=>r.message){let r={_errors:[]},n=(i,o=[])=>{for(let s of i.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map((a)=>n({issues:a},[...o,...s.path]));else if(s.code==="invalid_key")n({issues:s.issues},[...o,...s.path]);else if(s.code==="invalid_element")n({issues:s.issues},[...o,...s.path]);else{let a=[...o,...s.path];if(a.length===0)r._errors.push(t(s));else{let c=r,l=0;while(l<a.length){let u=a[l];if(l!==a.length-1)c[u]=c[u]||{_errors:[]};else c[u]=c[u]||{_errors:[]},c[u]._errors.push(t(s));c=c[u],l++}}}};return n(e),r}var X4e=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,k8,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},IE,DB;var LB=y(()=>{Op();Rc();IE=ne("$ZodError",X4e),DB=ne("$ZodError",X4e,{Parent:Error})});var OE=(e)=>(t,r,n,i)=>{let o=n?{...n,async:!1}:{async:!1},s=t._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new su;if(s.issues.length){let a=new(i?.Err??e)(s.issues.map((c)=>Tc(c,o,Aa())));throw RB(a,i?.callee),a}return s.value},DE=(e)=>async(t,r,n,i)=>{let o=n?{...n,async:!0}:{async:!0},s=t._zod.run({value:r,issues:[]},o);if(s instanceof Promise)s=await s;if(s.issues.length){let a=new(i?.Err??e)(s.issues.map((c)=>Tc(c,o,Aa())));throw RB(a,i?.callee),a}return s.value},w8=(e)=>(t,r,n)=>{let i=n?{...n,async:!1}:{async:!1},o=t._zod.run({value:r,issues:[]},i);if(o instanceof Promise)throw new su;return o.issues.length?{success:!1,error:new(e??IE)(o.issues.map((s)=>Tc(s,i,Aa())))}:{success:!0,data:o.value}},ede,x8=(e)=>async(t,r,n)=>{let i=n?{...n,async:!0}:{async:!0},o=t._zod.run({value:r,issues:[]},i);if(o instanceof Promise)o=await o;return o.issues.length?{success:!1,error:new e(o.issues.map((s)=>Tc(s,i,Aa())))}:{success:!0,data:o.value}},tde,rde=(e)=>(t,r,n)=>{let i=n?{...n,direction:"backward"}:{direction:"backward"};return OE(e)(t,r,i)},nde=(e)=>(t,r,n)=>OE(e)(t,r,n),ide=(e)=>async(t,r,n)=>{let i=n?{...n,direction:"backward"}:{direction:"backward"};return DE(e)(t,r,i)},ode=(e)=>async(t,r,n)=>DE(e)(t,r,n),sde=(e)=>(t,r,n)=>{let i=n?{...n,direction:"backward"}:{direction:"backward"};return w8(e)(t,r,i)},ade=(e)=>(t,r,n)=>w8(e)(t,r,n),cde=(e)=>async(t,r,n)=>{let i=n?{...n,direction:"backward"}:{direction:"backward"};return x8(e)(t,r,i)},lde=(e)=>async(t,r,n)=>x8(e)(t,r,n);var MB=y(()=>{Op();LB();Rc();ede=w8(DB),tde=x8(DB)});function bde(){return new RegExp($pt,"u")}function Pde(e){return typeof e.precision==="number"?e.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":e.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${e.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function Tde(e){return new RegExp(`^${Pde(e)}$`)}function Rde(e){let t=Pde({precision:e.precision}),r=["Z"];if(e.local)r.push("");if(e.offset)r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${t}(?:${r.join("|")})`;return new RegExp(`^${Cde}T(?:${n})$`)}var ude,dde,pde,fde,mde,hde,gde,yde,jB=(e)=>{if(!e)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)},vde,$pt="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",kde,wde,xde,Ade,Sde,NB,Ede,$de,Cde="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",_de,Ide=(e)=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Ode,FB,Dde,Lde,Mde,jde;var ME=y(()=>{ude=/^[cC][0-9a-z]{6,}$/,dde=/^[0-9a-z]+$/,pde=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,fde=/^[0-9a-vA-V]{20}$/,mde=/^[A-Za-z0-9]{27}$/,hde=/^[a-zA-Z0-9_-]{21}$/,gde=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,yde=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,vde=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;kde=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,wde=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,xde=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Ade=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Sde=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,NB=/^[A-Za-z0-9_-]*$/,Ede=/^https?$/,$de=/^\+[1-9]\d{6,14}$/,_de=new RegExp(`^${Cde}$`);Ode=/^-?\d+$/,FB=/^-?\d+(?:\.\d+)?$/,Dde=/^(?:true|false)$/i,Lde=/^null$/i,Mde=/^[^A-Z]*$/,jde=/^[^a-z]*$/});var po,Nde,zB,BB,Fde,zde,Bde,Ude,Hde,A8,Gde,Wde,Vde,qde,Kde,Jde,Yde;var jE=y(()=>{Op();ME();Rc();po=ne("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),Nde={number:"number",bigint:"bigint",object:"date"},zB=ne("$ZodCheckLessThan",(e,t)=>{po.init(e,t);let r=Nde[typeof t.value];e._zod.onattach.push((n)=>{let i=n._zod.bag,o=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(t.value<o)if(t.inclusive)i.maximum=t.value;else i.exclusiveMaximum=t.value}),e._zod.check=(n)=>{if(t.inclusive?n.value<=t.value:n.value<t.value)return;n.issues.push({origin:r,code:"too_big",maximum:typeof t.value==="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),BB=ne("$ZodCheckGreaterThan",(e,t)=>{po.init(e,t);let r=Nde[typeof t.value];e._zod.onattach.push((n)=>{let i=n._zod.bag,o=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(t.value>o)if(t.inclusive)i.minimum=t.value;else i.exclusiveMinimum=t.value}),e._zod.check=(n)=>{if(t.inclusive?n.value>=t.value:n.value>t.value)return;n.issues.push({origin:r,code:"too_small",minimum:typeof t.value==="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Fde=ne("$ZodCheckMultipleOf",(e,t)=>{po.init(e,t),e._zod.onattach.push((r)=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=(r)=>{if(typeof r.value!==typeof t.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof r.value==="bigint"?r.value%t.value===BigInt(0):H4e(r.value,t.value)===0)return;r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),zde=ne("$ZodCheckNumberFormat",(e,t)=>{po.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),n=r?"int":"number",[i,o]=K4e[t.format];e._zod.onattach.push((s)=>{let a=s._zod.bag;if(a.format=t.format,a.minimum=i,a.maximum=o,r)a.pattern=Ode}),e._zod.check=(s)=>{let a=s.value;if(r){if(!Number.isInteger(a)){s.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){if(a>0)s.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});else s.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}if(a<i)s.issues.push({origin:"number",input:a,code:"too_small",minimum:i,inclusive:!0,inst:e,continue:!t.abort});if(a>o)s.issues.push({origin:"number",input:a,code:"too_big",maximum:o,inclusive:!0,inst:e,continue:!t.abort})}}),Bde=ne("$ZodCheckMaxLength",(e,t)=>{var r;po.init(e,t),(r=e._zod.def).when??(r.when=(n)=>{let i=n.value;return!PE(i)&&i.length!==void 0}),e._zod.onattach.push((n)=>{let i=n._zod.bag.maximum??Number.POSITIVE_INFINITY;if(t.maximum<i)n._zod.bag.maximum=t.maximum}),e._zod.check=(n)=>{let i=n.value;if(i.length<=t.maximum)return;let s=RE(i);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),Ude=ne("$ZodCheckMinLength",(e,t)=>{var r;po.init(e,t),(r=e._zod.def).when??(r.when=(n)=>{let i=n.value;return!PE(i)&&i.length!==void 0}),e._zod.onattach.push((n)=>{let i=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(t.minimum>i)n._zod.bag.minimum=t.minimum}),e._zod.check=(n)=>{let i=n.value;if(i.length>=t.minimum)return;let s=RE(i);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),Hde=ne("$ZodCheckLengthEquals",(e,t)=>{var r;po.init(e,t),(r=e._zod.def).when??(r.when=(n)=>{let i=n.value;return!PE(i)&&i.length!==void 0}),e._zod.onattach.push((n)=>{let i=n._zod.bag;i.minimum=t.length,i.maximum=t.length,i.length=t.length}),e._zod.check=(n)=>{let i=n.value,o=i.length;if(o===t.length)return;let s=RE(i),a=o>t.length;n.issues.push({origin:s,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),A8=ne("$ZodCheckStringFormat",(e,t)=>{var r,n;if(po.init(e,t),e._zod.onattach.push((i)=>{let o=i._zod.bag;if(o.format=t.format,t.pattern)o.patterns??(o.patterns=new Set),o.patterns.add(t.pattern)}),t.pattern)(r=e._zod).check??(r.check=(i)=>{if(t.pattern.lastIndex=0,t.pattern.test(i.value))return;i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})});else(n=e._zod).check??(n.check=()=>{})}),Gde=ne("$ZodCheckRegex",(e,t)=>{A8.init(e,t),e._zod.check=(r)=>{if(t.pattern.lastIndex=0,t.pattern.test(r.value))return;r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Wde=ne("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Mde),A8.init(e,t)}),Vde=ne("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=jde),A8.init(e,t)}),qde=ne("$ZodCheckIncludes",(e,t)=>{po.init(e,t);let r=Q4(t.includes),n=new RegExp(typeof t.position==="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push((i)=>{let o=i._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=(i)=>{if(i.value.includes(t.includes,t.position))return;i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),Kde=ne("$ZodCheckStartsWith",(e,t)=>{po.init(e,t);let r=new RegExp(`^${Q4(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push((n)=>{let i=n._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(r)}),e._zod.check=(n)=>{if(n.value.startsWith(t.prefix))return;n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Jde=ne("$ZodCheckEndsWith",(e,t)=>{po.init(e,t);let r=new RegExp(`.*${Q4(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push((n)=>{let i=n._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(r)}),e._zod.check=(n)=>{if(n.value.endsWith(t.suffix))return;n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),Yde=ne("$ZodCheckOverwrite",(e,t)=>{po.init(e,t),e._zod.check=(r)=>{r.value=t.tx(r.value)}})});class UB{constructor(e=[]){if(this.content=[],this.indent=0,this)this.args=e}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e==="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let r=e.split(`
27
+ `)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();if(t&&e.find((n)=>t.is(n)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}});var xAr;var g8=y(()=>{kE();C4e();h8();bB();wB();xAr=new Ll});var Tp;var AE=y(()=>{Tp={name:"oh-my-agent",version:"15.1.0",description:"Portable multi-agent harness for .agents-based skills and workflows across Antigravity, Claude Code, Codex, OpenCode, and more",type:"module",bin:{"oh-my-agent":"./bin/cli.js",oma:"./bin/cli.js"},files:["bin","assets/serena"],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"],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","generate:skill-data":"node ./scripts/generate-skill-data.mjs",build:"bun run generate:skill-data && bun run sync:readme && bun build cli.ts --outfile bin/cli-main.js --target node --minify --external @napi-rs/keyring --external jsonc-parser && node ./scripts/write-bin-entry.mjs && bun run check:bundle",dev:"bun run generate:skill-data && bun run cli.ts",lint:"biome check .","lint:fix":"biome check --write --unsafe .","check:boundaries":"node ./scripts/check-boundaries.mjs","check:bundle":"node ./scripts/check-bundle.mjs","check:emit-drift":"node ./scripts/check-emit-drift.mjs",test:"vitest run","test:coverage":"vitest run --coverage",prepublishOnly:"bun run build"},dependencies:{"@clack/prompts":"^1.7.0","@date-fns/tz":"^1.5.0","@napi-rs/keyring":"^1.3.0",axios:"^1.18.1","better-sqlite3":"^13.0.2",chokidar:"^5.0.0",commander:"^15.0.0","date-fns":"^4.4.0",eld:"^2.0.3","fast-xml-parser":"^5.10.1","jsonc-parser":"^3.3.1",minimatch:"^10.2.6","p-map":"^7.0.6",picocolors:"^1.1.1","puppeteer-core":"^25.4.0",remark:"^15.0.1","remark-frontmatter":"^5.0.0","remark-parse":"^11.0.0","smol-toml":"^1.7.1",unified:"^11.0.5",ws:"^8.21.1",yaml:"^2.9.0",zod:"^4.4.3"},optionalDependencies:{pptxgenjs:"^4.0.1"},devDependencies:{"@biomejs/biome":"^2.5.6","@types/better-sqlite3":"^7.6.13","@types/mdast":"^4.0.4","@types/node":"^26.1.2","@types/ws":"^8.18.1","@vitest/coverage-v8":"^4.1.10",typescript:"^7.0.2",vitest:"^4.1.10"},repository:{type:"git",url:"https://github.com/first-fluke/oh-my-agent"},homepage:"https://firstfluke.com/oh-my-agent",bugs:{url:"https://github.com/first-fluke/oh-my-agent/issues"},antigravity:{skillsPath:".agents/skills",skills:["oma-architecture","oma-brainstorm","oma-coordination","oma-pm","oma-frontend","oma-backend","oma-db","oma-mobile","oma-qa","oma-debug","oma-orchestration","oma-dev-workflow","oma-tf-infra","oma-scm","oma-pdf","oma-recap"]}}});import*as th from"node:fs";import{homedir as P4e}from"node:os";import*as J4 from"node:path";function T4e(e){if(SE)throw Error("install context already set in this process");SE=e}function R4e(){if(SE===null)throw Error("install context not set — entry point must call setInstallContext()");return SE}function iu(){return R4e().installRoot}function $i(){return R4e().mode}function _c(){try{return $i()}catch{return"project"}}function rh(){try{return iu()}catch{return process.cwd()}}function EE(e,t,r=P4e()){return t==="project"&&J4.resolve(e)===J4.resolve(r)}function I4e(e){let t=process.env.OMA_HOME,r=e.global===!0||process.env.OMA_INSTALL_GLOBAL==="1";if(t!==void 0&&t!=="")return W1t(t),{installRoot:t,mode:r?"global":"project"};if(r)return{installRoot:P4e(),mode:"global"};return{installRoot:process.cwd(),mode:"project"}}function W1t(e){if(!J4.isAbsolute(e))throw Error("OMA_HOME must be absolute path");for(let r of _4e)if(e===r||e.startsWith(r+J4.sep))throw Error(`OMA_HOME=${e} is forbidden (system path ${r})`);let t;try{t=th.realpathSync(e)}catch(r){let n=r instanceof Error?r.message:String(r);throw Error(`OMA_HOME=${e}: ${n}`)}for(let r of _4e)if(t===r||t.startsWith(r+J4.sep))throw Error(`OMA_HOME=${t} is forbidden (system path ${r})`);try{th.accessSync(t,th.constants.W_OK)}catch{throw Error(`OMA_HOME=${t} is not writable`)}}var SE=null,_4e;var m2=y(()=>{_4e=["/etc","/usr","/bin","/boot","/sys","/proc"]});import{join as V1t}from"node:path";function Ip(e){return e.endsWith("/")?e:`${e}/`}function wa(e,t){let r=t.split("/").filter((n)=>n.length>0);return V1t(e,...r)}var qt=".agents",Rp,Jn,Y4,_Ar,PAr,TAr,q1t=".antigravitycli",O4e,K1t=".migration-backup",J1t="docs/plans",Y1t=".qwen/tmp",X1t,Z1t,Q1t,ept,tpt,rpt,npt,SB;var Kr=y(()=>{Rp=`${qt}/skills`,Jn=`${qt}/results`,Y4=`${qt}/state`,_Ar=`${Y4}/sessions`,PAr=`${Y4}/retry`,TAr=`${Y4}/archive`,O4e=`${qt}/backup`;X1t=Ip(Jn),Z1t=Ip(Y4),Q1t=Ip(q1t),ept=Ip(O4e),tpt=Ip(K1t),rpt=Ip(J1t),npt=Ip(Y1t),SB=[".agents/oma-config.local.cue",".agents/oma-config.local.yaml",Q1t,X1t,Z1t,ept,rpt,tpt,npt]});var Jr="first-fluke/oh-my-agent",Kt,Pc,EB,ipt,opt,ou,Tn;var xa=y(()=>{Kr();Kt=Rp,Pc=["antigravity","claude","codex","commandcode","cursor","grok","kimi","kiro","qwen"],EB=["pi","opencode"],ipt=["copilot","hermes"],opt=["zcode"],ou=[...Pc,...EB,...ipt,...opt].sort(),Tn={antigravity:{projectPath:".gemini/antigravity-cli/skills",homePath:".gemini/antigravity-cli/skills",requiresHomeConsent:!0},claude:{projectPath:".claude/skills",homePath:".claude/skills"},codex:{projectPath:".codex/skills",homePath:".codex/skills"},commandcode:{projectPath:".commandcode/skills",homePath:".commandcode/skills",optIn:!0},copilot:{projectPath:".github/skills",homePath:".copilot/skills"},cursor:{projectPath:".cursor/skills",homePath:".cursor/skills"},hermes:{projectPath:".hermes/skills/oma",homePath:".hermes/skills/oma",requiresHomeConsent:!0},kimi:{projectPath:".kimi-code/skills",homePath:".kimi-code/skills",requiresHomeConsent:!0,optIn:!0},kiro:{projectPath:".kiro/skills",homePath:".kiro/skills",optIn:!0},opencode:{projectPath:".opencode/skills",homePath:".opencode/skills"},qwen:{projectPath:".qwen/skills",homePath:".qwen/skills"}}});function me(e,t="Output as JSON"){return e.option("--json",t).option("--output <format>","Output format (text/json)",(r)=>{let n=r.trim().toLowerCase();if(!y8.includes(n))throw Error(`Invalid output format: ${r}. Expected one of ${y8.join(", ")}`);return n})}function spt(e){if(e?.json)return"json";let t=e?.output?.trim().toLowerCase();if(t&&y8.includes(t))return t;if(process.env[M4e]?.trim().toLowerCase()==="json")return"json";return"text"}function he(e){return spt(e)==="json"}function j4e(e){let t=e.at(-1);return t instanceof Ll?t:null}function apt(e){let t=j4e(e);if(t)return t.opts();let r=e.at(-1);return r&&typeof r==="object"?r:{}}function cpt(e){if(e instanceof Error)return e.message;return String(e)}function X4(e){throw Error(e)}function CB(e,t){for(let r of e){let n=r.charCodeAt(0);if(n>=0&&n<=31||n===127)X4(`${t} must not contain control characters`)}}function lpt(e,t){if(CB(e,t),/[?#%]/.test(e))X4(`${t} must not contain ?, #, or %`);if(e.includes(".."))X4(`${t} must not contain '..'`)}function upt(e,t){CB(e,t);try{new URL(e)}catch{X4(`${t} must be a valid absolute URL`)}}function $B(e,t,r="text"){if(typeof e==="string"){if(r==="identifier"){lpt(e,t);return}if(r==="url"){upt(e,t);return}CB(e,t);return}if(Array.isArray(e))for(let[n,i]of e.entries())$B(i,`${t}[${n}]`,r)}function L4e(e){let t=e.toLowerCase();if(t==="url"||t.endsWith("url"))return"url";if(t.includes("id")||t.includes("type")||t.includes("vendor")||t.includes("session"))return"identifier";return"text"}function dpt(e){let t=e.vendor;if(typeof t==="string"){if(t.split(",").map((o)=>o.trim()).filter(Boolean).filter((o)=>!ou.includes(o)).length>0)X4(`vendor must be one of ${ou.join(", ")}`)}let r=e.output;if(typeof r==="string"&&!y8.includes(r))X4(`output must be one of ${y8.join(", ")}`)}function ppt(e){let t=e.processedArgs??e.args??[];(e.registeredArguments??[]).forEach((i,o)=>{let s=i.name?.()||String(o),a=t[o];if($B(a,s,L4e(s)),s==="agent-type"&&typeof a==="string"&&!D4e.includes(a))X4(`agent-type must be one of ${D4e.join(", ")}`)});let n=e.opts();dpt(n);for(let[i,o]of Object.entries(n))$B(o,i,L4e(i))}function fpt(e){return(e.registeredArguments??[]).map((t)=>({name:t.name?.()||"",required:!!t.required,variadic:!!t.variadic}))}function mpt(e){return e.options.map((t)=>({flags:t.flags,long:t.long||void 0,short:t.short||void 0,description:t.description||"",required:!!t.required||!!t.mandatory,optional:!!t.optional,defaultValue:t.defaultValue}))}function N4e(e){let t=[],r=e;while(r?.parent)t.unshift(r.name()),r=r.parent;return t.join(" ")}function hpt(e){return e.options.some((t)=>t.long==="--json"||t.long==="--output")}function gpt(e){return e.options.some((t)=>t.long==="--dry-run")}function F4e(e){return{name:e.name(),path:N4e(e),summary:e.summary()||void 0,description:e.description(),arguments:fpt(e),options:mpt(e),supportsJsonOutput:hpt(e),supportsDryRun:gpt(e),subcommands:e.commands.map((t)=>F4e(t))}}function ypt(e,t){if(!t?.trim())return e;let r=t.trim(),n=[...e.commands];while(n.length>0){let i=n.shift();if(!i)continue;if(i.name()===r||N4e(i)===r)return i;n.push(...i.commands)}return null}function z4e(e,t){let r=ypt(e,t);if(!r)X4(`Unknown command: ${t}`);let n={name:e.name(),version:e.version(),description:e.description(),env:{[M4e]:"Set to json to force machine-readable output on commands that support it."},command:F4e(r)};console.log(JSON.stringify(n,null,2))}function K(e,t={}){return async(...r)=>{let n=j4e(r);if(n&&r.length>=2)r[r.length-2]=n.optsWithGlobals();let i=apt(r);try{if(n)ppt(n);await e(...r)}catch(o){let s=cpt(o);if(t.supportsJsonOutput&&he(i))console.log(JSON.stringify({error:s},null,2));else console.error(s);process.exitCode=1}}}var M4e="OH_MY_AG_OUTPUT_FORMAT",y8,D4e;var $t=y(()=>{g8();xa();y8=["text","json"],D4e=["backend","frontend","mobile","qa","debug","pm"]});function ne(e,t,r){function n(a,c){if(!a._zod)Object.defineProperty(a,"_zod",{value:{def:c,constr:s,traits:new Set},enumerable:!1});if(a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,c);let l=s.prototype,u=Object.keys(l);for(let d=0;d<u.length;d++){let p=u[d];if(!(p in a))a[p]=l[p].bind(a)}}let i=r?.Parent??Object;class o extends i{}Object.defineProperty(o,"name",{value:e});function s(a){var c;let l=r?.Parent?new o:this;n(l,a),(c=l._zod).deferred??(c.deferred=[]);for(let u of l._zod.deferred)u();return l}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:(a)=>{if(r?.Parent&&a instanceof r.Parent)return!0;return a?._zod?.traits?.has(e)}}),Object.defineProperty(s,"name",{value:e}),s}function Aa(e){if(e)Object.assign(nh,e);return nh}var B4e,jAr,su,v8,nh;var Op=y(()=>{jAr=Symbol("zod_brand");su=class su extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}};v8=class v8 extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`);this.name="ZodEncodeError"}};(B4e=globalThis).__zod_globalConfig??(B4e.__zod_globalConfig={});nh=globalThis.__zod_globalConfig});function CE(e){let t=Object.values(e).filter((n)=>typeof n==="number");return Object.entries(e).filter(([n,i])=>t.indexOf(+n)===-1).map(([n,i])=>i)}function PB(e,t="|"){return e.map((r)=>OB(r)).join(t)}function k8(e,t){if(typeof t==="bigint")return t.toString();return t}function _E(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw Error("cached value already set")}}}function PE(e){return e===null||e===void 0}function TE(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function H4e(e,t){let r=e/t,n=Math.round(r),i=Number.EPSILON*Math.max(Math.abs(r),1);if(Math.abs(r-n)<i)return 0;return r-n}function er(e,t,r){let n=void 0;Object.defineProperty(e,t,{get(){if(n===U4e)return;if(n===void 0)n=U4e,n=r();return n},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function Dp(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function Z4(...e){let t={};for(let r of e){let n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function TB(e){return JSON.stringify(e)}function G4e(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function b8(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function Lp(e){if(b8(e)===!1)return!1;let t=e.constructor;if(t===void 0)return!0;if(typeof t!=="function")return!0;let r=t.prototype;if(b8(r)===!1)return!1;if(Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)return!1;return!0}function IB(e){if(Lp(e))return{...e};if(Array.isArray(e))return[...e];if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);return e}function Q4(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ml(e,t,r){let n=new e._zod.constr(t??e._zod.def);if(!t||r?.parent)n._zod.parent=e;return n}function Ue(e){let t=e;if(!t)return{};if(typeof t==="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}if(delete t.message,typeof t.error==="string")return{...t,error:()=>t.error};return t}function OB(e){if(typeof e==="bigint")return e.toString()+"n";if(typeof e==="string")return`"${e}"`;return`${e}`}function q4e(e){return Object.keys(e).filter((t)=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function vpt(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let o=Z4(e._zod.def,{get shape(){let s={};for(let a in t){if(!(a in r.shape))throw Error(`Unrecognized key: "${a}"`);if(!t[a])continue;s[a]=r.shape[a]}return Dp(this,"shape",s),s},checks:[]});return Ml(e,o)}function bpt(e,t){let r=e._zod.def,n=r.checks;if(n&&n.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let o=Z4(e._zod.def,{get shape(){let s={...e._zod.def.shape};for(let a in t){if(!(a in r.shape))throw Error(`Unrecognized key: "${a}"`);if(!t[a])continue;delete s[a]}return Dp(this,"shape",s),s},checks:[]});return Ml(e,o)}function kpt(e,t){if(!Lp(t))throw Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let o=e._zod.def.shape;for(let s in t)if(Object.getOwnPropertyDescriptor(o,s)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let i=Z4(e._zod.def,{get shape(){let o={...e._zod.def.shape,...t};return Dp(this,"shape",o),o}});return Ml(e,i)}function wpt(e,t){if(!Lp(t))throw Error("Invalid input to safeExtend: expected a plain object");let r=Z4(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Dp(this,"shape",n),n}});return Ml(e,r)}function xpt(e,t){if(e._zod.def.checks?.length)throw Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let r=Z4(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Dp(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return Ml(e,r)}function Apt(e,t,r){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(".partial() cannot be used on object schemas containing refinements");let s=Z4(t._zod.def,{get shape(){let a=t._zod.def.shape,c={...a};if(r)for(let l in r){if(!(l in a))throw Error(`Unrecognized key: "${l}"`);if(!r[l])continue;c[l]=e?new e({type:"optional",innerType:a[l]}):a[l]}else for(let l in a)c[l]=e?new e({type:"optional",innerType:a[l]}):a[l];return Dp(this,"shape",c),c},checks:[]});return Ml(t,s)}function Spt(e,t,r){let n=Z4(t._zod.def,{get shape(){let i=t._zod.def.shape,o={...i};if(r)for(let s in r){if(!(s in o))throw Error(`Unrecognized key: "${s}"`);if(!r[s])continue;o[s]=new e({type:"nonoptional",innerType:i[s]})}else for(let s in i)o[s]=new e({type:"nonoptional",innerType:i[s]});return Dp(this,"shape",o),o}});return Ml(t,n)}function Mp(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function J4e(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue===!1)return!0;return!1}function ed(e,t){return t.map((r)=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function $E(e){return typeof e==="string"?e:e?.message}function Tc(e,t,r){let n=e.message?e.message:$E(e.inst?._zod.def?.error?.(e))??$E(t?.error?.(e))??$E(r.customError?.(e))??$E(r.localeError?.(e))??"Invalid input",{inst:i,continue:o,input:s,...a}=e;if(a.path??(a.path=[]),a.message=n,t?.reportInput)a.input=s;return a}function RE(e){if(Array.isArray(e))return"array";if(typeof e==="string")return"string";return"unknown"}function Y4e(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return t}function jp(...e){let[t,r,n]=e;if(typeof t==="string")return{message:t,code:"custom",input:r,inst:n};return{...t}}var U4e,RB,W4e,V4e,K4e;var Rc=y(()=>{Op();U4e=Symbol("evaluating");RB="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};W4e=_E(()=>{if(nh.jitless)return!1;if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});V4e=new Set(["string","number","symbol"]);K4e={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]}});function Z4e(e,t=(r)=>r.message){let r={},n=[];for(let i of e.issues)if(i.path.length>0)r[i.path[0]]=r[i.path[0]]||[],r[i.path[0]].push(t(i));else n.push(t(i));return{formErrors:n,fieldErrors:r}}function Q4e(e,t=(r)=>r.message){let r={_errors:[]},n=(i,o=[])=>{for(let s of i.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map((a)=>n({issues:a},[...o,...s.path]));else if(s.code==="invalid_key")n({issues:s.issues},[...o,...s.path]);else if(s.code==="invalid_element")n({issues:s.issues},[...o,...s.path]);else{let a=[...o,...s.path];if(a.length===0)r._errors.push(t(s));else{let c=r,l=0;while(l<a.length){let u=a[l];if(l!==a.length-1)c[u]=c[u]||{_errors:[]};else c[u]=c[u]||{_errors:[]},c[u]._errors.push(t(s));c=c[u],l++}}}};return n(e),r}var X4e=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,k8,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},IE,DB;var LB=y(()=>{Op();Rc();IE=ne("$ZodError",X4e),DB=ne("$ZodError",X4e,{Parent:Error})});var OE=(e)=>(t,r,n,i)=>{let o=n?{...n,async:!1}:{async:!1},s=t._zod.run({value:r,issues:[]},o);if(s instanceof Promise)throw new su;if(s.issues.length){let a=new(i?.Err??e)(s.issues.map((c)=>Tc(c,o,Aa())));throw RB(a,i?.callee),a}return s.value},DE=(e)=>async(t,r,n,i)=>{let o=n?{...n,async:!0}:{async:!0},s=t._zod.run({value:r,issues:[]},o);if(s instanceof Promise)s=await s;if(s.issues.length){let a=new(i?.Err??e)(s.issues.map((c)=>Tc(c,o,Aa())));throw RB(a,i?.callee),a}return s.value},w8=(e)=>(t,r,n)=>{let i=n?{...n,async:!1}:{async:!1},o=t._zod.run({value:r,issues:[]},i);if(o instanceof Promise)throw new su;return o.issues.length?{success:!1,error:new(e??IE)(o.issues.map((s)=>Tc(s,i,Aa())))}:{success:!0,data:o.value}},ede,x8=(e)=>async(t,r,n)=>{let i=n?{...n,async:!0}:{async:!0},o=t._zod.run({value:r,issues:[]},i);if(o instanceof Promise)o=await o;return o.issues.length?{success:!1,error:new e(o.issues.map((s)=>Tc(s,i,Aa())))}:{success:!0,data:o.value}},tde,rde=(e)=>(t,r,n)=>{let i=n?{...n,direction:"backward"}:{direction:"backward"};return OE(e)(t,r,i)},nde=(e)=>(t,r,n)=>OE(e)(t,r,n),ide=(e)=>async(t,r,n)=>{let i=n?{...n,direction:"backward"}:{direction:"backward"};return DE(e)(t,r,i)},ode=(e)=>async(t,r,n)=>DE(e)(t,r,n),sde=(e)=>(t,r,n)=>{let i=n?{...n,direction:"backward"}:{direction:"backward"};return w8(e)(t,r,i)},ade=(e)=>(t,r,n)=>w8(e)(t,r,n),cde=(e)=>async(t,r,n)=>{let i=n?{...n,direction:"backward"}:{direction:"backward"};return x8(e)(t,r,i)},lde=(e)=>async(t,r,n)=>x8(e)(t,r,n);var MB=y(()=>{Op();LB();Rc();ede=w8(DB),tde=x8(DB)});function bde(){return new RegExp($pt,"u")}function Pde(e){return typeof e.precision==="number"?e.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":e.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${e.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function Tde(e){return new RegExp(`^${Pde(e)}$`)}function Rde(e){let t=Pde({precision:e.precision}),r=["Z"];if(e.local)r.push("");if(e.offset)r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${t}(?:${r.join("|")})`;return new RegExp(`^${Cde}T(?:${n})$`)}var ude,dde,pde,fde,mde,hde,gde,yde,jB=(e)=>{if(!e)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)},vde,$pt="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",kde,wde,xde,Ade,Sde,NB,Ede,$de,Cde="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",_de,Ide=(e)=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Ode,FB,Dde,Lde,Mde,jde;var ME=y(()=>{ude=/^[cC][0-9a-z]{6,}$/,dde=/^[0-9a-z]+$/,pde=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,fde=/^[0-9a-vA-V]{20}$/,mde=/^[A-Za-z0-9]{27}$/,hde=/^[a-zA-Z0-9_-]{21}$/,gde=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,yde=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,vde=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;kde=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,wde=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,xde=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Ade=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Sde=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,NB=/^[A-Za-z0-9_-]*$/,Ede=/^https?$/,$de=/^\+[1-9]\d{6,14}$/,_de=new RegExp(`^${Cde}$`);Ode=/^-?\d+$/,FB=/^-?\d+(?:\.\d+)?$/,Dde=/^(?:true|false)$/i,Lde=/^null$/i,Mde=/^[^A-Z]*$/,jde=/^[^a-z]*$/});var po,Nde,zB,BB,Fde,zde,Bde,Ude,Hde,A8,Gde,Wde,Vde,qde,Kde,Jde,Yde;var jE=y(()=>{Op();ME();Rc();po=ne("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),Nde={number:"number",bigint:"bigint",object:"date"},zB=ne("$ZodCheckLessThan",(e,t)=>{po.init(e,t);let r=Nde[typeof t.value];e._zod.onattach.push((n)=>{let i=n._zod.bag,o=(t.inclusive?i.maximum:i.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(t.value<o)if(t.inclusive)i.maximum=t.value;else i.exclusiveMaximum=t.value}),e._zod.check=(n)=>{if(t.inclusive?n.value<=t.value:n.value<t.value)return;n.issues.push({origin:r,code:"too_big",maximum:typeof t.value==="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),BB=ne("$ZodCheckGreaterThan",(e,t)=>{po.init(e,t);let r=Nde[typeof t.value];e._zod.onattach.push((n)=>{let i=n._zod.bag,o=(t.inclusive?i.minimum:i.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(t.value>o)if(t.inclusive)i.minimum=t.value;else i.exclusiveMinimum=t.value}),e._zod.check=(n)=>{if(t.inclusive?n.value>=t.value:n.value>t.value)return;n.issues.push({origin:r,code:"too_small",minimum:typeof t.value==="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Fde=ne("$ZodCheckMultipleOf",(e,t)=>{po.init(e,t),e._zod.onattach.push((r)=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=(r)=>{if(typeof r.value!==typeof t.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof r.value==="bigint"?r.value%t.value===BigInt(0):H4e(r.value,t.value)===0)return;r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),zde=ne("$ZodCheckNumberFormat",(e,t)=>{po.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),n=r?"int":"number",[i,o]=K4e[t.format];e._zod.onattach.push((s)=>{let a=s._zod.bag;if(a.format=t.format,a.minimum=i,a.maximum=o,r)a.pattern=Ode}),e._zod.check=(s)=>{let a=s.value;if(r){if(!Number.isInteger(a)){s.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){if(a>0)s.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});else s.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}if(a<i)s.issues.push({origin:"number",input:a,code:"too_small",minimum:i,inclusive:!0,inst:e,continue:!t.abort});if(a>o)s.issues.push({origin:"number",input:a,code:"too_big",maximum:o,inclusive:!0,inst:e,continue:!t.abort})}}),Bde=ne("$ZodCheckMaxLength",(e,t)=>{var r;po.init(e,t),(r=e._zod.def).when??(r.when=(n)=>{let i=n.value;return!PE(i)&&i.length!==void 0}),e._zod.onattach.push((n)=>{let i=n._zod.bag.maximum??Number.POSITIVE_INFINITY;if(t.maximum<i)n._zod.bag.maximum=t.maximum}),e._zod.check=(n)=>{let i=n.value;if(i.length<=t.maximum)return;let s=RE(i);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),Ude=ne("$ZodCheckMinLength",(e,t)=>{var r;po.init(e,t),(r=e._zod.def).when??(r.when=(n)=>{let i=n.value;return!PE(i)&&i.length!==void 0}),e._zod.onattach.push((n)=>{let i=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(t.minimum>i)n._zod.bag.minimum=t.minimum}),e._zod.check=(n)=>{let i=n.value;if(i.length>=t.minimum)return;let s=RE(i);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),Hde=ne("$ZodCheckLengthEquals",(e,t)=>{var r;po.init(e,t),(r=e._zod.def).when??(r.when=(n)=>{let i=n.value;return!PE(i)&&i.length!==void 0}),e._zod.onattach.push((n)=>{let i=n._zod.bag;i.minimum=t.length,i.maximum=t.length,i.length=t.length}),e._zod.check=(n)=>{let i=n.value,o=i.length;if(o===t.length)return;let s=RE(i),a=o>t.length;n.issues.push({origin:s,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),A8=ne("$ZodCheckStringFormat",(e,t)=>{var r,n;if(po.init(e,t),e._zod.onattach.push((i)=>{let o=i._zod.bag;if(o.format=t.format,t.pattern)o.patterns??(o.patterns=new Set),o.patterns.add(t.pattern)}),t.pattern)(r=e._zod).check??(r.check=(i)=>{if(t.pattern.lastIndex=0,t.pattern.test(i.value))return;i.issues.push({origin:"string",code:"invalid_format",format:t.format,input:i.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})});else(n=e._zod).check??(n.check=()=>{})}),Gde=ne("$ZodCheckRegex",(e,t)=>{A8.init(e,t),e._zod.check=(r)=>{if(t.pattern.lastIndex=0,t.pattern.test(r.value))return;r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Wde=ne("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Mde),A8.init(e,t)}),Vde=ne("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=jde),A8.init(e,t)}),qde=ne("$ZodCheckIncludes",(e,t)=>{po.init(e,t);let r=Q4(t.includes),n=new RegExp(typeof t.position==="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push((i)=>{let o=i._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=(i)=>{if(i.value.includes(t.includes,t.position))return;i.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:i.value,inst:e,continue:!t.abort})}}),Kde=ne("$ZodCheckStartsWith",(e,t)=>{po.init(e,t);let r=new RegExp(`^${Q4(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push((n)=>{let i=n._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(r)}),e._zod.check=(n)=>{if(n.value.startsWith(t.prefix))return;n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Jde=ne("$ZodCheckEndsWith",(e,t)=>{po.init(e,t);let r=new RegExp(`.*${Q4(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push((n)=>{let i=n._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(r)}),e._zod.check=(n)=>{if(n.value.endsWith(t.suffix))return;n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),Yde=ne("$ZodCheckOverwrite",(e,t)=>{po.init(e,t),e._zod.check=(r)=>{r.value=t.tx(r.value)}})});class UB{constructor(e=[]){if(this.content=[],this.indent=0,this)this.args=e}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e==="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let r=e.split(`
28
28
  `).filter((o)=>o),n=Math.min(...r.map((o)=>o.length-o.trimStart().length)),i=r.map((o)=>o.slice(n)).map((o)=>" ".repeat(this.indent*2)+o);for(let o of i)this.content.push(o)}compile(){let e=Function,t=this?.args,n=[...(this?.content??[""]).map((i)=>` ${i}`)];return new e(...t,n.join(`
29
29
  `))}}var Zde;var HB=y(()=>{Zde={major:4,minor:4,patch:3}});function $1e(e){if(e==="")return!0;if(/\s/.test(e))return!1;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}function Cpt(e){if(!NB.test(e))return!1;let t=e.replace(/[-_]/g,(n)=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return $1e(r)}function _pt(e,t=null){try{let r=e.split(".");if(r.length!==3)return!1;let[n]=r;if(!n)return!1;let i=JSON.parse(atob(n));if("typ"in i&&i?.typ!=="JWT")return!1;if(!i.alg)return!1;if(t&&(!("alg"in i)||i.alg!==t))return!1;return!0}catch{return!1}}function Qde(e,t,r){if(e.issues.length)t.issues.push(...ed(r,e.issues));t.value[r]=e.value}function FE(e,t,r,n,i,o){let s=r in n;if(e.issues.length){if(i&&o&&!s)return;t.issues.push(...ed(r,e.issues))}if(!s&&!i){if(!e.issues.length)t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}if(e.value===void 0){if(s)t.value[r]=void 0}else t.value[r]=e.value}function j1e(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${n}": expected a Zod schema`);let r=q4e(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function N1e(e,t,r,n,i,o){let s=[],a=i.keySet,c=i.catchall._zod,l=c.def.type,u=c.optin==="optional",d=c.optout==="optional";for(let p in t){if(p==="__proto__")continue;if(a.has(p))continue;if(l==="never"){s.push(p);continue}let f=c.run({value:t[p],issues:[]},n);if(f instanceof Promise)e.push(f.then((m)=>FE(m,r,p,t,u,d)));else FE(f,r,p,t,u,d)}if(s.length)r.issues.push({code:"unrecognized_keys",keys:s,input:t,inst:o});if(!e.length)return r;return Promise.all(e).then(()=>r)}function e1e(e,t,r,n){for(let o of e)if(o.issues.length===0)return t.value=o.value,t;let i=e.filter((o)=>!Mp(o));if(i.length===1)return t.value=i[0].value,i[0];return t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map((o)=>o.issues.map((s)=>Tc(s,n,Aa())))}),t}function GB(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e===+t)return{valid:!0,data:e};if(Lp(e)&&Lp(t)){let r=Object.keys(t),n=Object.keys(e).filter((o)=>r.indexOf(o)!==-1),i={...e,...t};for(let o of n){let s=GB(e[o],t[o]);if(!s.valid)return{valid:!1,mergeErrorPath:[o,...s.mergeErrorPath]};i[o]=s.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let n=0;n<e.length;n++){let i=e[n],o=t[n],s=GB(i,o);if(!s.valid)return{valid:!1,mergeErrorPath:[n,...s.mergeErrorPath]};r.push(s.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function t1e(e,t,r){let n=new Map,i;for(let a of t.issues)if(a.code==="unrecognized_keys"){i??(i=a);for(let c of a.keys){if(!n.has(c))n.set(c,{});n.get(c).l=!0}}else e.issues.push(a);for(let a of r.issues)if(a.code==="unrecognized_keys")for(let c of a.keys){if(!n.has(c))n.set(c,{});n.get(c).r=!0}else e.issues.push(a);let o=[...n].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(o.length&&i)e.issues.push({...i,keys:o});if(Mp(e))return e;let s=GB(t.value,r.value);if(!s.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return e.value=s.data,e}function r1e(e,t){if(t===void 0&&(e.issues.length||e.fallback))return{issues:[],value:void 0};return e}function n1e(e,t){if(e.value===void 0)e.value=t.defaultValue;return e}function i1e(e,t){if(!e.issues.length&&e.value===void 0)e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t});return e}function NE(e,t,r){if(e.issues.length)return e.aborted=!0,e;return t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},r)}function o1e(e){return e.value=Object.freeze(e.value),e}function s1e(e,t,r,n){if(!e){let i={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};if(n._zod.def.params)i.params=n._zod.def.params;t.issues.push(jp(i))}}var an,zE,mn,a1e,c1e,l1e,u1e,d1e,p1e,f1e,m1e,h1e,g1e,y1e,v1e,b1e,k1e,w1e,x1e,A1e,S1e,E1e,C1e,_1e,P1e,T1e,WB,R1e,I1e,O1e,D1e,L1e,M1e,Ppt,F1e,z1e,B1e,U1e,H1e,G1e,W1e,VB,V1e,q1e,K1e,J1e,Y1e,X1e,Z1e,Q1e,epe,tpe;var rpe=y(()=>{jE();Op();MB();ME();Rc();HB();Rc();an=ne("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Zde;let n=[...e._zod.def.checks??[]];if(e._zod.traits.has("$ZodCheck"))n.unshift(e);for(let i of n)for(let o of i._zod.onattach)o(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(s,a,c)=>{let l=Mp(s),u;for(let d of a){if(d._zod.def.when){if(J4e(s))continue;if(!d._zod.def.when(s))continue}else if(l)continue;let p=s.issues.length,f=d._zod.check(s);if(f instanceof Promise&&c?.async===!1)throw new su;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{if(await f,s.issues.length===p)return;if(!l)l=Mp(s,p)});else{if(s.issues.length===p)continue;if(!l)l=Mp(s,p)}}if(u)return u.then(()=>s);return s},o=(s,a,c)=>{if(Mp(s))return s.aborted=!0,s;let l=i(a,n,c);if(l instanceof Promise){if(c.async===!1)throw new su;return l.then((u)=>e._zod.parse(u,c))}return e._zod.parse(l,c)};e._zod.run=(s,a)=>{if(a.skipChecks)return e._zod.parse(s,a);if(a.direction==="backward"){let l=e._zod.parse({value:s.value,issues:[]},{...a,skipChecks:!0});if(l instanceof Promise)return l.then((u)=>o(u,s,a));return o(l,s,a)}let c=e._zod.parse(s,a);if(c instanceof Promise){if(a.async===!1)throw new su;return c.then((l)=>i(l,n,a))}return i(c,n,a)}}er(e,"~standard",()=>({validate:(i)=>{try{let o=ede(e,i);return o.success?{value:o.data}:{issues:o.error?.issues}}catch(o){return tde(e,i).then((s)=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),zE=ne("$ZodString",(e,t)=>{an.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Ide(e._zod.bag),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch(i){}if(typeof r.value==="string")return r;return r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),mn=ne("$ZodStringFormat",(e,t)=>{A8.init(e,t),zE.init(e,t)}),a1e=ne("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=yde),mn.init(e,t)}),c1e=ne("$ZodUUID",(e,t)=>{if(t.version){let n={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(n===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=jB(n))}else t.pattern??(t.pattern=jB());mn.init(e,t)}),l1e=ne("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=vde),mn.init(e,t)}),u1e=ne("$ZodURL",(e,t)=>{mn.init(e,t),e._zod.check=(r)=>{try{let n=r.value.trim();if(!t.normalize&&t.protocol?.source===Ede.source){if(!/^https?:\/\//i.test(n)){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:e,continue:!t.abort});return}}let i=new URL(n);if(t.hostname){if(t.hostname.lastIndex=0,!t.hostname.test(i.hostname))r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})}if(t.protocol){if(t.protocol.lastIndex=0,!t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol))r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})}if(t.normalize)r.value=i.href;else r.value=n;return}catch(n){r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),d1e=ne("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=bde()),mn.init(e,t)}),p1e=ne("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=hde),mn.init(e,t)}),f1e=ne("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=ude),mn.init(e,t)}),m1e=ne("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=dde),mn.init(e,t)}),h1e=ne("$ZodULID",(e,t)=>{t.pattern??(t.pattern=pde),mn.init(e,t)}),g1e=ne("$ZodXID",(e,t)=>{t.pattern??(t.pattern=fde),mn.init(e,t)}),y1e=ne("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=mde),mn.init(e,t)}),v1e=ne("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Rde(t)),mn.init(e,t)}),b1e=ne("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=_de),mn.init(e,t)}),k1e=ne("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Tde(t)),mn.init(e,t)}),w1e=ne("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=gde),mn.init(e,t)}),x1e=ne("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=kde),mn.init(e,t),e._zod.bag.format="ipv4"}),A1e=ne("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=wde),mn.init(e,t),e._zod.bag.format="ipv6",e._zod.check=(r)=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),S1e=ne("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=xde),mn.init(e,t)}),E1e=ne("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Ade),mn.init(e,t),e._zod.check=(r)=>{let n=r.value.split("/");try{if(n.length!==2)throw Error();let[i,o]=n;if(!o)throw Error();let s=Number(o);if(`${s}`!==o)throw Error();if(s<0||s>128)throw Error();new URL(`http://[${i}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});C1e=ne("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Sde),mn.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=(r)=>{if($1e(r.value))return;r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});_1e=ne("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=NB),mn.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=(r)=>{if(Cpt(r.value))return;r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),P1e=ne("$ZodE164",(e,t)=>{t.pattern??(t.pattern=$de),mn.init(e,t)});T1e=ne("$ZodJWT",(e,t)=>{mn.init(e,t),e._zod.check=(r)=>{if(_pt(r.value,t.alg))return;r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),WB=ne("$ZodNumber",(e,t)=>{an.init(e,t),e._zod.pattern=e._zod.bag.pattern??FB,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch(s){}let i=r.value;if(typeof i==="number"&&!Number.isNaN(i)&&Number.isFinite(i))return r;let o=typeof i==="number"?Number.isNaN(i)?"NaN":!Number.isFinite(i)?"Infinity":void 0:void 0;return r.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...o?{received:o}:{}}),r}}),R1e=ne("$ZodNumberFormat",(e,t)=>{zde.init(e,t),WB.init(e,t)}),I1e=ne("$ZodBoolean",(e,t)=>{an.init(e,t),e._zod.pattern=Dde,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Boolean(r.value)}catch(o){}let i=r.value;if(typeof i==="boolean")return r;return r.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),r}}),O1e=ne("$ZodNull",(e,t)=>{an.init(e,t),e._zod.pattern=Lde,e._zod.values=new Set([null]),e._zod.parse=(r,n)=>{let i=r.value;if(i===null)return r;return r.issues.push({expected:"null",code:"invalid_type",input:i,inst:e}),r}}),D1e=ne("$ZodUnknown",(e,t)=>{an.init(e,t),e._zod.parse=(r)=>r}),L1e=ne("$ZodNever",(e,t)=>{an.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)});M1e=ne("$ZodArray",(e,t)=>{an.init(e,t),e._zod.parse=(r,n)=>{let i=r.value;if(!Array.isArray(i))return r.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),r;r.value=Array(i.length);let o=[];for(let s=0;s<i.length;s++){let a=i[s],c=t.element._zod.run({value:a,issues:[]},n);if(c instanceof Promise)o.push(c.then((l)=>Qde(l,r,s)));else Qde(c,r,s)}if(o.length)return Promise.all(o).then(()=>r);return r}});Ppt=ne("$ZodObject",(e,t)=>{if(an.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){let a=t.shape;Object.defineProperty(t,"shape",{get:()=>{let c={...a};return Object.defineProperty(t,"shape",{value:c}),c}})}let n=_E(()=>j1e(t));er(e._zod,"propValues",()=>{let a=t.shape,c={};for(let l in a){let u=a[l]._zod;if(u.values){c[l]??(c[l]=new Set);for(let d of u.values)c[l].add(d)}}return c});let i=b8,o=t.catchall,s;e._zod.parse=(a,c)=>{s??(s=n.value);let l=a.value;if(!i(l))return a.issues.push({expected:"object",code:"invalid_type",input:l,inst:e}),a;a.value={};let u=[],d=s.shape;for(let p of s.keys){let f=d[p],m=f._zod.optin==="optional",h=f._zod.optout==="optional",g=f._zod.run({value:l[p],issues:[]},c);if(g instanceof Promise)u.push(g.then((v)=>FE(v,a,p,l,m,h)));else FE(g,a,p,l,m,h)}if(!o)return u.length?Promise.all(u).then(()=>a):a;return N1e(u,l,a,c,n.value,e)}}),F1e=ne("$ZodObjectJIT",(e,t)=>{Ppt.init(e,t);let r=e._zod.parse,n=_E(()=>j1e(t)),i=(p)=>{let f=new UB(["shape","payload","ctx"]),m=n.value,h=(b)=>{let w=TB(b);return`shape[${w}]._zod.run({ value: input[${w}], issues: [] }, ctx)`};f.write("const input = payload.value;");let g=Object.create(null),v=0;for(let b of m.keys)g[b]=`key_${v++}`;f.write("const newResult = {};");for(let b of m.keys){let w=g[b],A=TB(b),x=p[b],E=x?._zod?.optin==="optional",S=x?._zod?.optout==="optional";if(f.write(`const ${w} = ${h(b)};`),E&&S)f.write(`
30
30
  if (${w}.issues.length) {
@@ -3026,7 +3026,7 @@ ${q4.default.dim("Examples:")}
3026
3026
  Reference images are attached (${i.length}). Use them as visual references — match their style, subject identity, or composition as described in the prompt.`:"";return`Generate ${n} with the image_gen tool using model ${e.model}.${t}${r}${o}
3027
3027
  Prompt: ${e.prompt}
3028
3028
  Do not create, modify, or save any files in the working directory. Do not attempt to write text files, scripts, or notes. Only invoke the image_gen tool and return.`}async function Uut(e){if(!xbr(e))return[];let t=await Gut(e).catch(()=>[]),r=[];for(let n of t){let i=i8.join(e,n);if(!(await Sbr(i).catch(()=>null))?.isDirectory())continue;r.push(...await Vut(i))}return r}async function Vut(e){return(await Gut(e).catch(()=>[])).filter((r)=>/\.(png|webp|jpe?g)$/i.test(r)).map((r)=>i8.join(e,r))}function Pbr(e,t){return new Promise((r)=>{let n=Hut(e,t,{stdio:["ignore","pipe","pipe"]}),i="";n.stdout?.on("data",(o)=>{i+=o.toString()}),n.on("error",()=>r({ok:!1,detail:"not found"})),n.on("close",(o)=>r(o===0?{ok:!0,detail:i.trim()}:{ok:!1,detail:`exit ${o}`}))})}function aE(e,t,r,n,i){return new Promise((o)=>{let s=Hut(e,t,{stdio:["ignore","pipe","pipe"],signal:r,cwd:i?.cwd}),a="",c="";s.stdout?.on("data",(u)=>{a+=u.toString()}),s.stderr?.on("data",(u)=>{c+=u.toString()});let l=n?setTimeout(()=>{s.stdout?.destroy(),s.stderr?.destroy(),s.kill("SIGTERM"),o({code:124,stdout:a,stderr:c,timedOut:!0})},n):null;l?.unref?.(),s.on("error",(u)=>{if(l)clearTimeout(l);o({code:1,stdout:a,stderr:c||u.message})}),s.on("close",(u,d)=>{if(l)clearTimeout(l);o({code:u??1,stdout:a,stderr:c,signal:d})})})}function Tbr(e){let t=`${e.stdout}
3029
- ${e.stderr}`.toLowerCase(),r=(Wut(e.stdout).failure??t).slice(0,400);if(e.timedOut)return{kind:"timeout",after_ms:0};if(/not.?logged.?in|login/.test(t))return{kind:"auth-required",hint:"Run: codex login"};if(/content.?policy|safety|refus/.test(t))return{kind:"safety-refused",message:r};if(/rate[- ]?limit|429/.test(t))return{kind:"rate-limit"};return{kind:"other",cause:Error(r)}}var Aue=y(()=>{_a();n8()});import{copyFile as Rbr,mkdir as Ibr,mkdtemp as Obr,readFile as Dbr,rename as Lbr,rm as Mbr,stat as jbr}from"node:fs/promises";import Nbr from"node:os";import Fz from"node:path";class Sue{name="antigravity";async health(){let e=await aE("agy",["--version"]);if(e.code!==0)return{ok:!1,reason:"not-installed",hint:"Install Antigravity CLI (agy)",setup:{url:"https://antigravity.google",steps:["Install Antigravity from https://antigravity.google","Run: agy install","Sign in to Antigravity (Gemini Code Assist account).","Verify with: agy --version"]}};return{ok:!0,supportedModels:[],estimatedCostPerImage:{auto:0},detail:`Antigravity CLI ${e.stdout.trim()||"unknown"} (model selected by agy)`}}async generate(e){let t=e.runShortid??Sc();await Ibr(e.outDir,{recursive:!0});let r=Array.from({length:e.n},(i,o)=>Fz.join(e.outDir,r8({vendor:this.name,runShortid:t,index:o,total:e.n,ext:"img"}))),n=await Bbr(e.referenceImages??[]);try{let i=Hbr({prompt:e.prompt,size:e.size,quality:e.quality,n:e.n,targets:r,refPaths:n?.refPaths??[]}),o=(e.timeoutSec??180)*1000,s=["--dangerously-skip-permissions","--add-dir",e.outDir,"--print-timeout",`${Math.ceil(o/1000)}s`];if(n)s.push("--add-dir",n.dir);s.push("-p",i);let a=Date.now(),c=await aE("agy",s,e.signal,o,{cwd:e.outDir}),l=Date.now()-a;if(c.timedOut)throw{kind:"timeout",after_ms:o};if(c.code!==0)throw Wbr(c);let u=Gbr(c.stdout);if(u)throw u;let d=[];for(let p=0;p<r.length;p+=1){let f=r[p],m=await jbr(f).catch(()=>null);if(!m||m.size===0)throw{kind:"other",cause:Error(`agy did not produce image[${p}] at ${f}. stdout: ${c.stdout.slice(0,400)}`)};let{ext:h,mime:g}=await Fbr(f),v=f.replace(/\.img$/,`.${h}`);if(v!==f)await Lbr(f,v);d.push({vendor:this.name,model:"agy-internal",strategy:"agy-print",strategyAttempts:[{strategy:"agy-print",status:"ok",duration_ms:Math.round(l/r.length)}],filePath:v,mime:g,durationMs:l})}return d}finally{if(n)await Mbr(n.dir,{recursive:!0,force:!0}).catch(()=>{})}}}async function Fbr(e){let t=await Dbr(e);return zbr(t)}function zbr(e){if(e.length>=3&&e[0]===255&&e[1]===216&&e[2]===255)return{ext:"jpg",mime:"image/jpeg"};if(e.length>=8&&e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71&&e[4]===13&&e[5]===10&&e[6]===26&&e[7]===10)return{ext:"png",mime:"image/png"};if(e.length>=6&&e[0]===71&&e[1]===73&&e[2]===70&&e[3]===56&&(e[4]===55||e[4]===57)&&e[5]===97)return{ext:"gif",mime:"image/gif"};if(e.length>=12&&e[0]===82&&e[1]===73&&e[2]===70&&e[3]===70&&e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80)return{ext:"webp",mime:"image/webp"};return{ext:"jpg",mime:"image/jpeg"}}async function Bbr(e){if(e.length===0)return null;let t=await Obr(Fz.join(Nbr.tmpdir(),"oma-agy-refs-")),r=[];for(let n=0;n<e.length;n+=1){let i=e[n],o=Fz.extname(i.path)||Ubr(i.mime),s=Fz.join(t,`ref-${n}${o}`);await Rbr(i.path,s),r.push(s)}return{dir:t,refPaths:r}}function Ubr(e){switch(e){case"image/png":return".png";case"image/jpeg":return".jpg";case"image/gif":return".gif";case"image/webp":return".webp"}}function Hbr(e){let t=e.size==="auto"?"":` Size: ${e.size}.`,r=e.quality==="auto"?"":` Quality: ${e.quality}.`,n=e.refPaths.length>0?["Reference images (match style, subject identity, or composition):",...e.refPaths.map((s,a)=>` ref[${a}]: ${s}`)]:[],i=e.targets.map((s,a)=>` image[${a}] -> ${s}`),o=e.targets.map((s)=>`SAVED:${s}`);return[`Call the \`generate_image\` tool ${e.n===1?"once":`${e.n} times`} to produce ${e.n===1?"one image":`${e.n} distinct images`}.${t}${r} Do not answer in prose, do not explain flags, do not read CLAUDE.md or any source file — just invoke \`generate_image\`.`,`Image prompt: ${e.prompt}`,...n,"Save each result to the EXACT absolute path below — do not change directory, name, or extension. Overwrite any existing file.",...i,"Once every file is saved, reply with these lines and nothing else (no prose, no markdown, no code fences):",...o,"If `generate_image` is unavailable or refuses, reply with exactly ONE of these tokens on its own line and nothing else:"," NO_IMAGE_TOOL"," CONTENT_POLICY_REFUSAL"," RATE_LIMITED"," AUTH_REQUIRED"].join(`
3029
+ ${e.stderr}`.toLowerCase(),r=(Wut(e.stdout).failure??t).slice(0,400);if(e.timedOut)return{kind:"timeout",after_ms:0};if(/not.?logged.?in|login/.test(t))return{kind:"auth-required",hint:"Run: codex login"};if(/content.?policy|safety|refus/.test(t))return{kind:"safety-refused",message:r};if(/rate[- ]?limit|429/.test(t))return{kind:"rate-limit"};return{kind:"other",cause:Error(r)}}var Aue=y(()=>{_a();n8()});import{copyFile as Rbr,mkdir as Ibr,mkdtemp as Obr,readFile as Dbr,rename as Lbr,rm as Mbr,stat as jbr}from"node:fs/promises";import Nbr from"node:os";import Fz from"node:path";class Sue{name="antigravity";async health(){let e=await aE("agy",["--version"]);if(e.code!==0)return{ok:!1,reason:"not-installed",hint:"Install Antigravity CLI (agy)",setup:{url:"https://antigravity.google",steps:["Install Antigravity from https://antigravity.google","Run: agy install","Sign in to Antigravity (Gemini Code Assist account).","Verify with: agy --version"]}};return{ok:!0,supportedModels:[],estimatedCostPerImage:{auto:0},detail:`Antigravity CLI ${e.stdout.trim()||"unknown"} (model selected by agy)`}}async generate(e){let t=e.runShortid??Sc();await Ibr(e.outDir,{recursive:!0});let r=Array.from({length:e.n},(i,o)=>Fz.join(e.outDir,r8({vendor:this.name,runShortid:t,index:o,total:e.n,ext:"img"}))),n=await Bbr(e.referenceImages??[]);try{let i=Hbr({prompt:e.prompt,size:e.size,quality:e.quality,n:e.n,targets:r,refPaths:n?.refPaths??[]}),o=(e.timeoutSec??180)*1000,s=["--dangerously-skip-permissions","--add-dir",e.outDir,"--print-timeout",`${Math.ceil(o/1000)}s`];if(n)s.push("--add-dir",n.dir);s.push("-p",i);let a=Date.now(),c=await aE("agy",s,e.signal,o,{cwd:e.outDir}),l=Date.now()-a;if(c.timedOut)throw{kind:"timeout",after_ms:o};if(c.code!==0)throw Wbr(c);let u=Gbr(c.stdout);if(u)throw u;let d=[];for(let p=0;p<r.length;p+=1){let f=r[p],m=await jbr(f).catch(()=>null);if(!m||m.size===0)throw{kind:"other",cause:Error(`agy did not produce image[${p}] at ${f}. stdout: ${c.stdout.slice(0,400)}`)};let{ext:h,mime:g}=await Fbr(f),v=f.replace(/\.img$/,`.${h}`);if(v!==f)await Lbr(f,v);d.push({vendor:this.name,model:"agy-internal",strategy:"agy-print",strategyAttempts:[{strategy:"agy-print",status:"ok",duration_ms:Math.round(l/r.length)}],filePath:v,mime:g,durationMs:l})}return d}finally{if(n)await Mbr(n.dir,{recursive:!0,force:!0}).catch(()=>{})}}}async function Fbr(e){let t=await Dbr(e);return zbr(t)}function zbr(e){if(e.length>=3&&e[0]===255&&e[1]===216&&e[2]===255)return{ext:"jpg",mime:"image/jpeg"};if(e.length>=8&&e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71&&e[4]===13&&e[5]===10&&e[6]===26&&e[7]===10)return{ext:"png",mime:"image/png"};if(e.length>=6&&e[0]===71&&e[1]===73&&e[2]===70&&e[3]===56&&(e[4]===55||e[4]===57)&&e[5]===97)return{ext:"gif",mime:"image/gif"};if(e.length>=12&&e[0]===82&&e[1]===73&&e[2]===70&&e[3]===70&&e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80)return{ext:"webp",mime:"image/webp"};return{ext:"jpg",mime:"image/jpeg"}}async function Bbr(e){if(e.length===0)return null;let t=await Obr(Fz.join(Nbr.tmpdir(),"oma-agy-refs-")),r=[];for(let n=0;n<e.length;n+=1){let i=e[n],o=Fz.extname(i.path)||Ubr(i.mime),s=Fz.join(t,`ref-${n}${o}`);await Rbr(i.path,s),r.push(s)}return{dir:t,refPaths:r}}function Ubr(e){switch(e){case"image/png":return".png";case"image/jpeg":return".jpg";case"image/gif":return".gif";case"image/webp":return".webp"}}function Hbr(e){let t=e.size==="auto"?"":` Size: ${e.size}.`,r=e.quality==="auto"?"":` Quality: ${e.quality}.`,n=e.refPaths.length>0?["Reference images (match style, subject identity, or composition):",...e.refPaths.map((s,a)=>` ref[${a}]: ${s}`)]:[],i=e.targets.map((s,a)=>` image[${a}] -> ${s}`),o=e.targets.map((s)=>`SAVED:${s}`);return[`Generate ${e.n===1?"one image":`${e.n} distinct images`} using Antigravity's native image-generation capability.${t}${r}`,"If a built-in `image-generator` subagent is available, use it; otherwise use the `generate_image` tool. Do not draw images with code or use external services.",`Image prompt: ${e.prompt}`,...n,"Pass the image prompt, references, and size/quality hints to the native image generator. Wait for all image generation to finish before responding.","Save or copy each generated raster image to the EXACT absolute path below — do not change directory, name, or extension. Preserve the original image bytes. Overwrite any existing file.",...i,"Once every file is saved, reply with these lines and nothing else (no prose, no markdown, no code fences):",...o,"If neither native image-generation route is available, or generation fails, reply with exactly ONE of these tokens on its own line and nothing else. Use NO_IMAGE_TOOL only when neither route is available:"," NO_IMAGE_TOOL"," CONTENT_POLICY_REFUSAL"," RATE_LIMITED"," AUTH_REQUIRED"].join(`
3030
3030
  `)}function Gbr(e){let t=e.trim();if(/^NO_IMAGE_TOOL\b/m.test(t))return{kind:"not-installed",hint:"Antigravity has no image generation tool available in this session"};if(/^CONTENT_POLICY_REFUSAL\b/m.test(t))return{kind:"safety-refused",message:t.slice(0,400)};if(/^RATE_LIMITED\b/m.test(t))return{kind:"rate-limit"};if(/^AUTH_REQUIRED\b/m.test(t))return{kind:"auth-required",hint:"Sign in to Antigravity (Gemini Code Assist account)"};return null}function Wbr(e){if(e.timedOut)return{kind:"timeout",after_ms:0};let t=`${e.stdout}
3031
3031
  ${e.stderr}`.toLowerCase();if(/auth.?required|not.?logged.?in|sign.?in|login required/.test(t))return{kind:"auth-required",hint:"Sign in to Antigravity (Gemini Code Assist account)"};if(/content.?policy|policy.?refus|safety|prohibited/.test(t))return{kind:"safety-refused",message:t.slice(0,400)};if(/rate[- ]?limit|429|quota.?exceed/.test(t))return{kind:"rate-limit"};if(/command not found|enoent/.test(t))return{kind:"not-installed",hint:"Install Antigravity CLI (agy)"};return{kind:"other",cause:Error(t.slice(0,400))}}var qut=y(()=>{n8();Aue()});import{writeFile as Vbr}from"node:fs/promises";import qbr from"node:path";class Eue{config;name="pollinations";constructor(e){this.config=e}async health(){if(!process.env.POLLINATIONS_API_KEY)return{ok:!1,reason:"not-authenticated",hint:"Set POLLINATIONS_API_KEY",setup:{url:"https://enter.pollinations.ai/sign-in",envVar:"POLLINATIONS_API_KEY",steps:["Sign in with Google/GitHub (free).","Open 'API Keys' → 'Create secret key' → copy `sk_...`.",'export POLLINATIONS_API_KEY="sk_..."',"Free models without pollen credits: flux, zimage."]}};return{ok:!0,supportedModels:[...Kut,...Ybr],estimatedCostPerImage:{low:0,medium:0,high:0,auto:0},detail:`free tier (${Kut.join(", ")} no-credit; others need pollen balance)`}}async generate(e){let t=process.env.POLLINATIONS_API_KEY;if(!t)throw{kind:"auth-required",hint:"Set POLLINATIONS_API_KEY"};let r=e.model??this.config?.vendors.pollinations?.model??Jbr,n=(e.timeoutSec??180)*1000,i=[],o=e.runShortid??Sc();for(let s=0;s<e.n;s+=1){let a=Date.now(),c=await Xbr({apiKey:t,model:r,prompt:e.prompt,size:Zbr(e.size),signal:e.signal,timeoutMs:n}),l=c[0]===137?"png":"jpg",u=r8({vendor:this.name,model:r,runShortid:o,index:s,total:e.n,ext:l}),d=qbr.join(e.outDir,u);await Vbr(d,c),i.push({vendor:this.name,model:r,strategy:"pollinations-api",strategyAttempts:[{strategy:"pollinations-api",status:"ok",duration_ms:Date.now()-a}],filePath:d,mime:l==="png"?"image/png":"image/jpeg",durationMs:Date.now()-a,costUsd:0})}return i}}async function Xbr(e){let t=new AbortController,r=setTimeout(()=>t.abort(),e.timeoutMs),n=Qbr([e.signal,t.signal]);try{let i=await fetch(Kbr,{method:"POST",headers:{Authorization:`Bearer ${e.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify({model:e.model,prompt:e.prompt,n:1,size:e.size,response_format:"b64_json"}),signal:n});if(i.status===401)throw{kind:"auth-required",hint:"POLLINATIONS_API_KEY invalid or revoked"};if(i.status===429)throw{kind:"rate-limit",retry_after_sec:Number(i.headers.get("retry-after")??"0")||void 0};if(!i.ok){let a=await i.text().catch(()=>""),c=(()=>{try{return JSON.parse(a).error?.message??a}catch{return a}})();if(/insufficient balance|pollen/i.test(c))throw{kind:"invalid-input",field:"model",reason:`${e.model} requires Pollinations pollen credits. Try model=flux or model=zimage (free).`};throw{kind:"other",cause:Error(`HTTP ${i.status}: ${String(c).slice(0,400)}`)}}let s=(await i.json()).data?.[0];if(s?.b64_json)return Buffer.from(s.b64_json,"base64");if(s?.url){let a=await fetch(s.url,{signal:n});if(!a.ok)throw{kind:"other",cause:Error(`Failed to fetch image URL: ${a.status}`)};return Buffer.from(await a.arrayBuffer())}throw{kind:"other",cause:Error("No image data in response")}}catch(i){if(i&&typeof i==="object"&&"kind"in i)throw i;if(i.name==="AbortError"){if(t.signal.aborted)throw{kind:"timeout",after_ms:e.timeoutMs};throw{kind:"other",cause:i}}throw{kind:"network",retryable:!0,cause:i}}finally{clearTimeout(r)}}function Zbr(e){if(e==="auto"||!/^\d+x\d+$/.test(e))return"1024x1024";return e}function Qbr(e){let t=new AbortController;for(let r of e){if(r.aborted){t.abort();break}r.addEventListener("abort",()=>t.abort(),{once:!0})}return t.signal}var Kbr="https://gen.pollinations.ai/v1/images/generations",Jbr="flux",Kut,Ybr;var Jut=y(()=>{n8();Kut=["flux","zimage"],Ybr=["qwen-image","wan-image","gptimage","gptimage-large","gpt-image-2","klein","kontext"]});class Yut{providers=[];register(e){return this.providers.push(e),this}list(){return[...this.providers]}async listHealthy(){return await Promise.all(this.providers.map(async(t)=>{try{return{provider:t,health:await t.health()}}catch(r){return{provider:t,health:{ok:!1,reason:"other",hint:r.message}}}}))}}function o8(e){if(K3)return K3;K3=new Yut;let t=(r)=>e?.vendors[r]?.enabled!==!1;if(t("codex"))K3.register(new xue(e));if(t("antigravity"))K3.register(new Sue);if(t("pollinations"))K3.register(new Eue(e));return K3}var K3=null;var zz=y(()=>{qut();Aue();Jut()});async function Xut({opts:e}){let t=await e8(),n=await o8(t).listHealthy();if((e.format??"text")==="json")console.log(JSON.stringify({vendors:n.map((s)=>({name:s.provider.name,health:s.health}))}));else{console.log(s8.default.bold("Image vendors:"));for(let s of n){if(s.health.ok){console.log(` ${s8.default.green("✓")} ${s.provider.name}: ${s.health.detail??"ok"} (${s.health.supportedModels.join(", ")})`);continue}console.log(` ${s8.default.yellow("!")} ${s.provider.name}: ${s.health.hint}`);let a=s.health.setup;if(a?.url)console.log(` ${s8.default.cyan(a.url)}`);for(let c of a?.steps??[])console.log(` ${s8.default.dim("→")} ${c}`)}}return n.some((s)=>s.health.ok)?0:5}var s8;var Zut=y(()=>{Nz();zz();s8=ye(Te(),1)});import ekr from"node:readline";function Qut({config:e,providers:t,modelByVendor:r,quality:n,count:i}){let o=0;for(let s of t){let a=r[s.name]??e.vendors[s.name]?.model;if(!a)continue;let c=e.costGuardrail.perImageUsd[s.name]?.[a]?.[n]??e.costGuardrail.perImageUsd[s.name]?.[a]?.auto??0;o+=c*i}return o}function $ue(e){return`$${e.toFixed(2)}`}function e4t(e){if(e.skipConfirm||e.estimate<e.thresholdUsd)return"proceed";return e.isTTY?"prompt":"block-non-interactive"}async function t4t(e){if(!process.stdin.isTTY)return!1;let t=ekr.createInterface({input:process.stdin,output:process.stderr});try{let r=await new Promise((n)=>{t.question(e,(i)=>n(i))});return/^y(es)?$/i.test(r.trim())}finally{t.close()}}var r4t=()=>{};function n4t(e){let t=e.intervalMs??5000,r=e.stream??process.stderr,n=Date.now(),i=setInterval(()=>{let o=Math.round((Date.now()-n)/1000);r.write(`${e.message(o)}
3032
3032
  `)},t);return i.unref?.(),{stop(){clearInterval(i)}}}import{writeFile as tkr}from"node:fs/promises";import rkr from"node:path";async function i4t(e){let t={schema_version:1,timestamp:wue(new Date(e.startedAt)),options:e.options,cost_estimate_usd:Number(e.costEstimate.toFixed(4)),runs:e.runs};if(e.includePrompt)t.prompt=e.prompt;else t.prompt_sha256=Je(e.prompt);if(e.referenceImages&&e.referenceImages.length>0)t.reference_images=[...e.referenceImages];let r=rkr.join(e.outDir,"manifest.json");return await tkr(r,`${JSON.stringify(t,null,2)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-agent",
3
- "version": "15.0.16",
3
+ "version": "15.1.0",
4
4
  "description": "Portable multi-agent harness for .agents-based skills and workflows across Antigravity, Claude Code, Codex, OpenCode, and more",
5
5
  "type": "module",
6
6
  "bin": {