oh-my-agent 20.18.0 → 20.19.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
@@ -12,13 +12,16 @@ Load one skill in your existing coding agent, or install the runtime for project
12
12
 
13
13
  | Your task | Start here | First request |
14
14
  |---|---|---|
15
- | Design an admin screen or review an existing UI | `bunx skills use first-fluke/oh-my-agent@oma-design` | "Review the hierarchy and table density of our admin page." |
16
- | Diagnose a reproducible bug | `bunx skills use first-fluke/oh-my-agent@oma-debug` | "Reproduce this failure and fix its cause." |
15
+ | [Review AI-written code](https://github.com/first-fluke/oh-my-agent/blob/main/web/docs/tasks/review-ai-code.md) | `bunx skills use first-fluke/oh-my-agent@oma-qa` | "Review this diff for bugs and missing checks. Cite the affected lines." |
16
+ | [Design an admin screen](https://github.com/first-fluke/oh-my-agent/blob/main/web/docs/tasks/design-admin-ui.md) | `bunx skills use first-fluke/oh-my-agent@oma-design` | "Review the hierarchy and table density of our admin page." |
17
+ | [Fix a failing test](https://github.com/first-fluke/oh-my-agent/blob/main/web/docs/tasks/debug-failing-tests.md) | `bunx skills use first-fluke/oh-my-agent@oma-debug` | "Reproduce this test failure, fix its cause, and run the affected checks." |
17
18
  | Review system boundaries | `bunx skills use first-fluke/oh-my-agent@oma-architecture` | "Review the boundary between our API and worker." |
18
19
  | Use project hooks, specialist agents, and workflows | [Install the runtime](#install) | "Use oma-scm to inspect this repository's branch and working tree without edits or remote access." |
19
20
 
20
21
  Run a `skills use` command through your agent's terminal; it returns the selected instructions and their support directory. These commands load instructions. CLI operations, other skills, project rules, and external services declared by a skill remain separate dependencies. See [Choose a setup](https://github.com/first-fluke/oh-my-agent/blob/main/web/docs/getting-started/choose-setup.md) for the available install paths.
21
22
 
23
+ [See a real repair: plugin hooks calling missing files](https://github.com/first-fluke/oh-my-agent/blob/main/web/docs/examples/plugin-hook-repair.md). The example links the changed code, the failure cases, and the regression checks.
24
+
22
25
  [![Oh-My-Agent: A 6+1-Layer Harness Architecture](https://github.com/first-fluke/oh-my-agent/raw/main/docs/assets/architecture/oh-my-agent-architecture.png)](https://github.com/first-fluke/oh-my-agent/blob/main/docs/assets/architecture/oh-my-agent-architecture.svg)
23
26
 
24
27
  For runtime installation, run this from your project root:
@@ -43,7 +46,7 @@ For that runtime installation, run `oma doctor`. [Your first 5 minutes](#your-fi
43
46
  | **Research and content** | Cited search, market research, papers, slide decks, MP4 videos, images, local voice, PDF/HWP to Markdown | `/video`, `/convert` |
44
47
  | **One folder, 14 runtimes** | One portable `.agents/` directory, written into each runtime's own config files | `oma link cursor` |
45
48
 
46
- **[Install](#install)** · **[First 5 minutes](#your-first-5-minutes)** · **[The team](#meet-the-team)** · **[Which workflow?](#how-the-team-works-together)** · **[Everything in the box](#everything-in-the-box)** · **[Works with](#works-with)** · **[Verification](#verification-not-narration)** · **[FAQ](#faq)** · **[Docs](https://first-fluke.github.io/oh-my-agent/)**
49
+ **[Install](#install)** · **[First 5 minutes](#your-first-5-minutes)** · **[The team](#meet-the-team)** · **[Which workflow?](#how-the-team-works-together)** · **[Everything in the box](#everything-in-the-box)** · **[Works with](#works-with)** · **[Verification](#verification-not-narration)** · **[FAQ](#faq)** · **[Docs](https://firstfluke.com/oh-my-agent/)**
47
50
 
48
51
  ## Install
49
52
 
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 Fr.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()}`,Fr.env[e.envVar]);else this.emit(`optionEnv:${e.name()}`)}})}_parseOptionsImplied(){let e=new Kq(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=Xq(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=Xq(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)=>HR(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=H4.basename(e,H4.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(Fr.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 ZQr;var Qm=v(()=>{GR();i9e();tk();qq();Jq();ZQr=new s5});var G4;var rk=v(()=>{G4={name:"oh-my-agent",version:"20.18.0",description:"A specialist team for the coding agent you already use: 12 roles, 21 workflows and 33 skills that plan, build in parallel, review and debug, leaving plans, ADRs and results as files. Gates wait for your own tests. Also research, slides and video. One .agents/ folder for Claude Code, Codex, Cursor and 11 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","@dagrejs/dagre":"^3.1.1","@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-gfm":"^4.0.1","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:{"@babel/parser":"7.29.3","@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{homedir as o9e}from"node:os";import{isAbsolute as BSt,join as USt,resolve as HSt}from"node:path";function s9e(e,t){let r=Array.from(e).some((n)=>{let i=n.charCodeAt(0);return i<32||i===127});if(!BSt(e)||r)throw Error(`${t} must be an absolute path without control characters`);return HSt(e)}function Jr(e=process.env,t=o9e()){return s9e(e.OMA_HOME||USt(t,".oma"),"OMA_HOME")}function Cs(e=process.env,t=o9e()){return e.OMA_STATE_HOME===void 0?Jr(e,t):s9e(e.OMA_STATE_HOME,"OMA_STATE_HOME")}var qR=()=>{};import{homedir as GSt}from"node:os";import{join as nk}from"node:path";function Cc(e=process.env,t=GSt()){let r=Jr(e,t),n=nk(r,"state");return{home:r,definitions:nk(r,".agents"),state:n,serena:nk(n,"serena"),schedule:nk(r,"schedule"),backup:nk(r,"backup")}}var hi=v(()=>{qR();qR()});import*as a5 from"node:fs";import{homedir as WSt}from"node:os";import*as Bl from"node:path";function c9e(e){if(KR)throw Error("install context already set in this process");KR=e}function l9e(){if(KR===null)throw Error("install context not set — entry point must call setInstallContext()");return KR}function W4(){return l9e().installRoot}function ei(){return l9e().mode}function kt(){try{return ei()}catch{return"project"}}function c6(){try{return W4()}catch{return process.cwd()}}function JR(e,t,r=WSt()){return t==="project"&&Bl.resolve(e)===Bl.resolve(r)}function u9e(e){if(e.global===!0||process.env.OMA_INSTALL_GLOBAL==="1"){let r=Jr();return VSt(r),{installRoot:r,mode:"global"}}return{installRoot:process.cwd(),mode:"project"}}function VSt(e){if(!Bl.isAbsolute(e))throw Error("OMA_HOME must be absolute path");for(let n of a9e)if(e===n||e.startsWith(n+Bl.sep))throw Error(`OMA_HOME=${e} is forbidden (system path ${n})`);let t,r=Bl.resolve(e);try{while(!a5.existsSync(r)){let n=Bl.dirname(r);if(n===r)break;r=n}if(t=a5.realpathSync(r),!a5.statSync(t).isDirectory())throw Error("nearest existing ancestor is not a directory")}catch(n){let i=n instanceof Error?n.message:String(n);throw Error(`OMA_HOME=${e}: ${i}`)}for(let n of a9e)if(t===n||t.startsWith(n+Bl.sep))throw Error(`OMA_HOME=${e} is forbidden (system path ${n})`);try{a5.accessSync(t,a5.constants.W_OK)}catch{throw Error(`OMA_HOME=${e} is not writable`)}}var KR=null,a9e;var gi=v(()=>{hi();a9e=["/etc","/usr","/bin","/boot","/sys","/proc"]});import{join as ZSt}from"node:path";function t3(e){return e.endsWith("/")?e:`${e}/`}function C2(e,t){let r=t.split("/").filter((n)=>n.length>0);return ZSt(e,...r)}var ur=".agents",e3,Dn,e1,yen,ven,ben,QSt=".antigravitycli",p9e,eEt=".migration-backup",tEt="docs/plans",rEt=".qwen/tmp",nEt,iEt,oEt,sEt,aEt,cEt,lEt,Zq;var Xr=v(()=>{e3=`${ur}/skills`,Dn=`${ur}/results`,e1=`${ur}/state`,yen=`${e1}/sessions`,ven=`${e1}/retry`,ben=`${e1}/archive`,p9e=`${ur}/backup`;nEt=t3(Dn),iEt=t3(e1),oEt=t3(QSt),sEt=t3(p9e),aEt=t3(eEt),cEt=t3(tEt),lEt=t3(rEt),Zq=[".agents/oma-config.local.cue",".agents/oma-config.local.yaml",oEt,nEt,iEt,sEt,cEt,aEt,lEt]});var un="first-fluke/oh-my-agent",Vt,Ul,Qq,uEt,dEt,V4,ti;var _2=v(()=>{Xr();Vt=e3,Ul=["antigravity","claude","codex","commandcode","cursor","grok","kimi","kiro","qwen"],Qq=["pi","opencode"],uEt=["copilot","hermes"],dEt=["zcode"],V4=[...Ul,...Qq,...uEt,...dEt].sort(),ti={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 de(e,t="Output as JSON"){return e.option("--json",t).option("--output <format>","Output format (text/json)",(r)=>{let n=r.trim().toLowerCase();if(!ik.includes(n))throw Error(`Invalid output format: ${r}. Expected one of ${ik.join(", ")}`);return n})}function pEt(e){if(e?.json)return"json";let t=e?.output?.trim().toLowerCase();if(t&&ik.includes(t))return t;if(process.env[h9e]?.trim().toLowerCase()==="json")return"json";return"text"}function pe(e){return pEt(e)==="json"}function g9e(e){let t=e.at(-1);return t instanceof s5?t:null}function fEt(e){let t=g9e(e);if(t)return t.opts();let r=e.at(-1);return r&&typeof r==="object"?r:{}}function mEt(e){if(e instanceof Error)return e.message;return String(e)}function t1(e){throw Error(e)}function tK(e,t){for(let r of e){let n=r.charCodeAt(0);if(n>=0&&n<=31||n===127)t1(`${t} must not contain control characters`)}}function hEt(e,t){if(tK(e,t),/[?#%]/.test(e))t1(`${t} must not contain ?, #, or %`);if(e.includes(".."))t1(`${t} must not contain '..'`)}function gEt(e,t){tK(e,t);try{new URL(e)}catch{t1(`${t} must be a valid absolute URL`)}}function eK(e,t,r="text"){if(typeof e==="string"){if(r==="identifier"){hEt(e,t);return}if(r==="url"){gEt(e,t);return}tK(e,t);return}if(Array.isArray(e))for(let[n,i]of e.entries())eK(i,`${t}[${n}]`,r)}function m9e(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 yEt(e){let t=e.vendor;if(typeof t==="string"){if(t.split(",").map((o)=>o.trim()).filter(Boolean).filter((o)=>!V4.includes(o)).length>0)t1(`vendor must be one of ${V4.join(", ")}`)}let r=e.output;if(typeof r==="string"&&!ik.includes(r))t1(`output must be one of ${ik.join(", ")}`)}function vEt(e){let t=e.processedArgs??e.args??[];(e.registeredArguments??[]).forEach((i,o)=>{let s=i.name?.()||String(o),a=t[o];if(eK(a,s,m9e(s)),s==="agent-type"&&typeof a==="string"&&!f9e.includes(a))t1(`agent-type must be one of ${f9e.join(", ")}`)});let n=e.opts();yEt(n);for(let[i,o]of Object.entries(n))eK(o,i,m9e(i))}function bEt(e){return(e.registeredArguments??[]).map((t)=>({name:t.name?.()||"",required:!!t.required,variadic:!!t.variadic}))}function kEt(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 y9e(e){let t=[],r=e;while(r?.parent)t.unshift(r.name()),r=r.parent;return t.join(" ")}function wEt(e){return e.options.some((t)=>t.long==="--json"||t.long==="--output")}function xEt(e){return e.options.some((t)=>t.long==="--dry-run")}function v9e(e){return{name:e.name(),path:y9e(e),summary:e.summary()||void 0,description:e.description(),arguments:bEt(e),options:kEt(e),supportsJsonOutput:wEt(e),supportsDryRun:xEt(e),subcommands:e.commands.filter((t)=>!t._hidden).map((t)=>v9e(t))}}function AEt(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||y9e(i)===r)return i;n.push(...i.commands)}return null}function b9e(e,t){let r=AEt(e,t);if(!r)t1(`Unknown command: ${t}`);let n={name:e.name(),version:e.version(),description:e.description(),env:{[h9e]:"Set to json to force machine-readable output on commands that support it."},command:v9e(r)};console.log(JSON.stringify(n,null,2))}function X(e,t={}){return async(...r)=>{let n=g9e(r);if(n&&r.length>=2)r[r.length-2]=n.optsWithGlobals();let i=fEt(r);try{if(n)vEt(n);await e(...r)}catch(o){let s=mEt(o);if(t.supportsJsonOutput&&pe(i))console.log(JSON.stringify({error:s},null,2));else console.error(s);let a=o&&typeof o==="object"&&"exitCode"in o?o.exitCode:void 0;process.exitCode=typeof a==="number"&&Number.isInteger(a)&&a>0&&a<=255?a:1}}}var h9e="OH_MY_AG_OUTPUT_FORMAT",ik,f9e;var $t=v(()=>{Qm();_2();ik=["text","json"],f9e=["backend","frontend","mobile","qa","debug","pm"]});var ua,c5;var rK=v(()=>{ua={domain:[{name:"oma-architecture",desc:"Evaluate system boundaries and architectural tradeoffs. Use for architecture decisions, design reviews, and ADRs."},{name:"oma-backend",desc:"Implement server APIs, authentication, and application data access. Schema modeling and query tuning use oma-db."},{name:"oma-db",desc:"Design schemas and migrations, tune queries, or plan vector retrieval and database operations. Application API implementation uses oma-backend."},{name:"oma-frontend",desc:"Implement or modify web UI in React, Next.js, or Angular. Use for components, pages, styles, forms, and frontend state or data flows."},{name:"oma-mobile",desc:"Implement Flutter, React Native, or native Swift apps. Use for mobile screens, widgets, platform integrations, and application data flows."}],design:[{name:"oma-design",desc:"Define or review a visual system, DESIGN.md, or redesign direction. Use for typography, layout, color, motion, and interaction design decisions."}],coordination:[{name:"oma-brainstorm",desc:"Explore goals, constraints, and alternative approaches before choosing a design. Use when the user requests ideation or design exploration."},{name:"oma-coordination",desc:"Coordinate assigned specialist tasks and handoffs manually. Use when supervising a multi-agent project step by step."},{name:"oma-orchestration",desc:"Dispatch and supervise parallel specialist agents with durable task state. Use when automated multi-agent execution is requested."},{name:"oma-pm",desc:"Turn product requirements into scoped tasks with dependencies and acceptance criteria. Use for implementation planning and prioritization."},{name:"oma-qa",desc:"Review changes for correctness, security, accessibility, and performance. Use for scoped quality reviews or verification plans; bug fixes use oma-debug."}],utility:[{name:"oma-academic-writing",desc:"Draft and revise academic prose against a rubric, evidence, and citation requirements. Use for essays, reports, literature reviews, or academic style audits."},{name:"oma-debug",desc:"Diagnose a reproducible failure, fix its cause, and verify the regression. Use for crashes, incorrect behavior, and failing tests."},{name:"oma-docs",desc:"Check documentation references, sync docs to code changes, and detect translation drift. Use for documentation maintenance in a repository."},{name:"oma-explanation",desc:"Create an offline HTML explanation of a code change (diff, PR, branch) or of a topic, system, or question. Use when a visual walkthrough document is requested."},{name:"oma-hwp",desc:"Convert Hangul HWP, HWPX, or HWPML documents to Markdown with kordoc. Use for text, table, and image extraction from these formats."},{name:"oma-image",desc:"Generate raster images or reference-guided variations through the OMA image CLI. Use for image assets or explicit vendor comparisons; pixel editing uses an editor."},{name:"oma-market",desc:"Research customer pain points, trends, and competitors through the OMA market engine. Use for market discovery or voice-of-customer analysis."},{name:"oma-pdf",desc:"Extract PDF text, headings, tables, and images into Markdown using opendataloader-pdf. Use for PDF parsing, not PDF layout creation."},{name:"oma-recap",desc:"Summarize AI conversation histories for a specified date or period. Use for daily work recaps and cross-tool activity summaries."},{name:"oma-refactor",desc:"Restructure existing code while preserving observable behavior. Use for targeted technical debt or hotspot work with characterization tests."},{name:"oma-scholar",desc:"Search academic literature and generate, validate, or compare Knows paper sidecars. Use for claim/evidence analysis and literature synthesis."},{name:"oma-scm",desc:"Manage Git branches, merges, conflicts, commits, and release baselines. Use for repository history and change-management operations."},{name:"oma-search",desc:"Find external documentation, web sources, or remote code with citations. Local code navigation uses the configured code tools."},{name:"oma-security",desc:"Scan application source, agent skills, and MCP components; run penetration tests against scoped web test deployments, validate findings, and configure scan gates. Use oma-qa for broad quality reviews and domain skills for remediation."},{name:"oma-skill-creation",desc:"Create or revise OMA skills and their references. Use for skill routing, execution contracts, conditional loading, and authoring validation."},{name:"oma-slide",desc:"Create, import, revise, or export presentation decks through the OMA slide CLI. Use for HTML slides and PDF, PNG, or PPTX deck delivery."},{name:"oma-translation",desc:"Translate or revise localized UI strings and prose while preserving meaning, terminology, placeholders, and structure."},{name:"oma-video",desc:"Create videos through the OMA video CLI, or analyze and edit existing clips with media tools. Use for frame extraction, visual analysis, silence cuts, dubbing assembly, scripts, and composition; audio-only work uses oma-voice."},{name:"oma-voice",desc:"Generate or transcribe speech with Voicebox, or process existing audio locally. Use for narration, transcripts, timed speech, and loudness conversion; video editing uses oma-video."}],infrastructure:[{name:"oma-dev-workflow",desc:"Configure development tasks, git hooks, CI/CD, or release automation. Use when creating or fixing a repository development workflow."},{name:"oma-observability",desc:"Design or troubleshoot telemetry, SLOs, and incident diagnostics. Route to the relevant signal, system boundary, or vendor guide."},{name:"oma-tf-infra",desc:"Create or review Terraform infrastructure and plans. Use for cloud resources, IAM, networking, state management, and infrastructure changes."}]},c5={fullstack:["oma-architecture","oma-brainstorm","oma-design","oma-frontend","oma-backend","oma-mobile","oma-db","oma-pm","oma-qa","oma-debug","oma-scm","oma-tf-infra","oma-dev-workflow"],"fullstack-web":["oma-architecture","oma-brainstorm","oma-design","oma-frontend","oma-backend","oma-db","oma-pm","oma-qa","oma-debug","oma-scm","oma-dev-workflow"],"fullstack-mobile":["oma-architecture","oma-brainstorm","oma-design","oma-mobile","oma-backend","oma-db","oma-pm","oma-qa","oma-debug","oma-scm","oma-dev-workflow"],frontend:["oma-architecture","oma-brainstorm","oma-design","oma-frontend","oma-pm","oma-qa","oma-debug","oma-scm"],backend:["oma-architecture","oma-brainstorm","oma-backend","oma-db","oma-pm","oma-qa","oma-debug","oma-scm","oma-dev-workflow"],mobile:["oma-architecture","oma-brainstorm","oma-mobile","oma-pm","oma-qa","oma-debug","oma-scm"],devops:["oma-architecture","oma-brainstorm","oma-tf-infra","oma-dev-workflow","oma-observability","oma-pm","oma-qa","oma-debug","oma-scm"],research:["oma-scholar","oma-market","oma-pdf","oma-hwp","oma-academic-writing","oma-search","oma-translation","oma-scm"],content:["oma-design","oma-image","oma-voice","oma-academic-writing","oma-translation","oma-scm"],all:[...ua.domain,...ua.design,...ua.coordination,...ua.utility,...ua.infrastructure].map((e)=>e.name)}});var da=v(()=>{Xr();rK();_2()});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 R2(e){if(e)Object.assign(l6,e);return l6}var k9e,Pen,q4,ok,l6;var r3=v(()=>{Pen=Symbol("zod_brand");q4=class q4 extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}};ok=class ok extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`);this.name="ZodEncodeError"}};(k9e=globalThis).__zod_globalConfig??(k9e.__zod_globalConfig={});l6=globalThis.__zod_globalConfig});function YR(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 iK(e,t="|"){return e.map((r)=>cK(r)).join(t)}function ak(e,t){if(typeof t==="bigint")return t.toString();return t}function ZR(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw Error("cached value already set")}}}function QR(e){return e===null||e===void 0}function eT(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function x9e(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 gr(e,t,r){let n=void 0;Object.defineProperty(e,t,{get(){if(n===w9e)return;if(n===void 0)n=w9e,n=r();return n},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function n3(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function r1(...e){let t={};for(let r of e){let n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function oK(e){return JSON.stringify(e)}function A9e(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function sk(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function i3(e){if(sk(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(sk(r)===!1)return!1;if(Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)return!1;return!0}function aK(e){if(i3(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 n1(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function l5(e,t,r){let n=new e._zod.constr(t??e._zod.def);if(!t||r?.parent)n._zod.parent=e;return n}function Ve(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 cK(e){if(typeof e==="bigint")return e.toString()+"n";if(typeof e==="string")return`"${e}"`;return`${e}`}function $9e(e){return Object.keys(e).filter((t)=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function SEt(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=r1(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 n3(this,"shape",s),s},checks:[]});return l5(e,o)}function EEt(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=r1(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 n3(this,"shape",s),s},checks:[]});return l5(e,o)}function $Et(e,t){if(!i3(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=r1(e._zod.def,{get shape(){let o={...e._zod.def.shape,...t};return n3(this,"shape",o),o}});return l5(e,i)}function CEt(e,t){if(!i3(t))throw Error("Invalid input to safeExtend: expected a plain object");let r=r1(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return n3(this,"shape",n),n}});return l5(e,r)}function _Et(e,t){if(e._zod.def.checks?.length)throw Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let r=r1(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return n3(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return l5(e,r)}function REt(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=r1(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 n3(this,"shape",c),c},checks:[]});return l5(t,s)}function TEt(e,t,r){let n=r1(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 n3(this,"shape",o),o}});return l5(t,n)}function o3(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 _9e(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 i1(e,t){return t.map((r)=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function XR(e){return typeof e==="string"?e:e?.message}function Hl(e,t,r){let n=e.message?e.message:XR(e.inst?._zod.def?.error?.(e))??XR(t?.error?.(e))??XR(r.customError?.(e))??XR(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 tT(e){if(Array.isArray(e))return"array";if(typeof e==="string")return"string";return"unknown"}function R9e(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 s3(...e){let[t,r,n]=e;if(typeof t==="string")return{message:t,code:"custom",input:r,inst:n};return{...t}}var w9e,sK,S9e,E9e,C9e;var Gl=v(()=>{r3();w9e=Symbol("evaluating");sK="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};S9e=ZR(()=>{if(l6.jitless)return!1;if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});E9e=new Set(["string","number","symbol"]);C9e={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 P9e(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 I9e(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 T9e=(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,ak,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},rT,lK;var uK=v(()=>{r3();Gl();rT=ne("$ZodError",T9e),lK=ne("$ZodError",T9e,{Parent:Error})});var nT=(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 q4;if(s.issues.length){let a=new(i?.Err??e)(s.issues.map((c)=>Hl(c,o,R2())));throw sK(a,i?.callee),a}return s.value},iT=(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)=>Hl(c,o,R2())));throw sK(a,i?.callee),a}return s.value},ck=(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 q4;return o.issues.length?{success:!1,error:new(e??rT)(o.issues.map((s)=>Hl(s,i,R2())))}:{success:!0,data:o.value}},O9e,lk=(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)=>Hl(s,i,R2())))}:{success:!0,data:o.value}},M9e,D9e=(e)=>(t,r,n)=>{let i=n?{...n,direction:"backward"}:{direction:"backward"};return nT(e)(t,r,i)},j9e=(e)=>(t,r,n)=>nT(e)(t,r,n),L9e=(e)=>async(t,r,n)=>{let i=n?{...n,direction:"backward"}:{direction:"backward"};return iT(e)(t,r,i)},N9e=(e)=>async(t,r,n)=>iT(e)(t,r,n),F9e=(e)=>(t,r,n)=>{let i=n?{...n,direction:"backward"}:{direction:"backward"};return ck(e)(t,r,i)},z9e=(e)=>(t,r,n)=>ck(e)(t,r,n),B9e=(e)=>async(t,r,n)=>{let i=n?{...n,direction:"backward"}:{direction:"backward"};return lk(e)(t,r,i)},U9e=(e)=>async(t,r,n)=>lk(e)(t,r,n);var dK=v(()=>{r3();uK();Gl();O9e=ck(lK),M9e=lk(lK)});function Z9e(){return new RegExp(IEt,"u")}function cye(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 lye(e){return new RegExp(`^${cye(e)}$`)}function uye(e){let t=cye({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(`^${sye}T(?:${n})$`)}var H9e,G9e,W9e,V9e,q9e,K9e,J9e,X9e,pK=(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})$`)},Y9e,IEt="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Q9e,eye,tye,rye,nye,fK,iye,oye,sye="(?:(?:\\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])))",aye,dye=(e)=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},pye,mK,fye,mye,hye,gye;var sT=v(()=>{H9e=/^[cC][0-9a-z]{6,}$/,G9e=/^[0-9a-z]+$/,W9e=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,V9e=/^[0-9a-vA-V]{20}$/,q9e=/^[A-Za-z0-9]{27}$/,K9e=/^[a-zA-Z0-9_-]{21}$/,J9e=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,X9e=/^([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})$/,Y9e=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;Q9e=/^(?:(?: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])$/,eye=/^(([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}|:))$/,tye=/^((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])$/,rye=/^(([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])$/,nye=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,fK=/^[A-Za-z0-9_-]*$/,iye=/^https?$/,oye=/^\+[1-9]\d{6,14}$/,aye=new RegExp(`^${sye}$`);pye=/^-?\d+$/,mK=/^-?\d+(?:\.\d+)?$/,fye=/^(?:true|false)$/i,mye=/^null$/i,hye=/^[^A-Z]*$/,gye=/^[^a-z]*$/});var es,yye,hK,gK,vye,bye,kye,wye,xye,uk,Aye,Sye,Eye,$ye,Cye,_ye,Rye;var aT=v(()=>{r3();sT();Gl();es=ne("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),yye={number:"number",bigint:"bigint",object:"date"},hK=ne("$ZodCheckLessThan",(e,t)=>{es.init(e,t);let r=yye[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})}}),gK=ne("$ZodCheckGreaterThan",(e,t)=>{es.init(e,t);let r=yye[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})}}),vye=ne("$ZodCheckMultipleOf",(e,t)=>{es.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):x9e(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})}}),bye=ne("$ZodCheckNumberFormat",(e,t)=>{es.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),n=r?"int":"number",[i,o]=C9e[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=pye}),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})}}),kye=ne("$ZodCheckMaxLength",(e,t)=>{var r;es.init(e,t),(r=e._zod.def).when??(r.when=(n)=>{let i=n.value;return!QR(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=tT(i);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),wye=ne("$ZodCheckMinLength",(e,t)=>{var r;es.init(e,t),(r=e._zod.def).when??(r.when=(n)=>{let i=n.value;return!QR(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=tT(i);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),xye=ne("$ZodCheckLengthEquals",(e,t)=>{var r;es.init(e,t),(r=e._zod.def).when??(r.when=(n)=>{let i=n.value;return!QR(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=tT(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})}}),uk=ne("$ZodCheckStringFormat",(e,t)=>{var r,n;if(es.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=()=>{})}),Aye=ne("$ZodCheckRegex",(e,t)=>{uk.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})}}),Sye=ne("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=hye),uk.init(e,t)}),Eye=ne("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=gye),uk.init(e,t)}),$ye=ne("$ZodCheckIncludes",(e,t)=>{es.init(e,t);let r=n1(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})}}),Cye=ne("$ZodCheckStartsWith",(e,t)=>{es.init(e,t);let r=new RegExp(`^${n1(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})}}),_ye=ne("$ZodCheckEndsWith",(e,t)=>{es.init(e,t);let r=new RegExp(`.*${n1(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})}}),Rye=ne("$ZodCheckOverwrite",(e,t)=>{es.init(e,t),e._zod.check=(r)=>{r.value=t.tx(r.value)}})});class yK{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 ZQr;var Qm=v(()=>{GR();i9e();tk();qq();Jq();ZQr=new s5});var G4;var rk=v(()=>{G4={name:"oh-my-agent",version:"20.19.0",description:"Agent skills and specialist teams for Claude Code, Codex, Cursor and other coding agents. Load one skill or install domain presets, project hooks and parallel workflows with test gates.",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","@dagrejs/dagre":"^3.1.1","@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-gfm":"^4.0.1","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:{"@babel/parser":"7.29.3","@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{homedir as o9e}from"node:os";import{isAbsolute as BSt,join as USt,resolve as HSt}from"node:path";function s9e(e,t){let r=Array.from(e).some((n)=>{let i=n.charCodeAt(0);return i<32||i===127});if(!BSt(e)||r)throw Error(`${t} must be an absolute path without control characters`);return HSt(e)}function Jr(e=process.env,t=o9e()){return s9e(e.OMA_HOME||USt(t,".oma"),"OMA_HOME")}function Cs(e=process.env,t=o9e()){return e.OMA_STATE_HOME===void 0?Jr(e,t):s9e(e.OMA_STATE_HOME,"OMA_STATE_HOME")}var qR=()=>{};import{homedir as GSt}from"node:os";import{join as nk}from"node:path";function Cc(e=process.env,t=GSt()){let r=Jr(e,t),n=nk(r,"state");return{home:r,definitions:nk(r,".agents"),state:n,serena:nk(n,"serena"),schedule:nk(r,"schedule"),backup:nk(r,"backup")}}var hi=v(()=>{qR();qR()});import*as a5 from"node:fs";import{homedir as WSt}from"node:os";import*as Bl from"node:path";function c9e(e){if(KR)throw Error("install context already set in this process");KR=e}function l9e(){if(KR===null)throw Error("install context not set — entry point must call setInstallContext()");return KR}function W4(){return l9e().installRoot}function ei(){return l9e().mode}function kt(){try{return ei()}catch{return"project"}}function c6(){try{return W4()}catch{return process.cwd()}}function JR(e,t,r=WSt()){return t==="project"&&Bl.resolve(e)===Bl.resolve(r)}function u9e(e){if(e.global===!0||process.env.OMA_INSTALL_GLOBAL==="1"){let r=Jr();return VSt(r),{installRoot:r,mode:"global"}}return{installRoot:process.cwd(),mode:"project"}}function VSt(e){if(!Bl.isAbsolute(e))throw Error("OMA_HOME must be absolute path");for(let n of a9e)if(e===n||e.startsWith(n+Bl.sep))throw Error(`OMA_HOME=${e} is forbidden (system path ${n})`);let t,r=Bl.resolve(e);try{while(!a5.existsSync(r)){let n=Bl.dirname(r);if(n===r)break;r=n}if(t=a5.realpathSync(r),!a5.statSync(t).isDirectory())throw Error("nearest existing ancestor is not a directory")}catch(n){let i=n instanceof Error?n.message:String(n);throw Error(`OMA_HOME=${e}: ${i}`)}for(let n of a9e)if(t===n||t.startsWith(n+Bl.sep))throw Error(`OMA_HOME=${e} is forbidden (system path ${n})`);try{a5.accessSync(t,a5.constants.W_OK)}catch{throw Error(`OMA_HOME=${e} is not writable`)}}var KR=null,a9e;var gi=v(()=>{hi();a9e=["/etc","/usr","/bin","/boot","/sys","/proc"]});import{join as ZSt}from"node:path";function t3(e){return e.endsWith("/")?e:`${e}/`}function C2(e,t){let r=t.split("/").filter((n)=>n.length>0);return ZSt(e,...r)}var ur=".agents",e3,Dn,e1,yen,ven,ben,QSt=".antigravitycli",p9e,eEt=".migration-backup",tEt="docs/plans",rEt=".qwen/tmp",nEt,iEt,oEt,sEt,aEt,cEt,lEt,Zq;var Xr=v(()=>{e3=`${ur}/skills`,Dn=`${ur}/results`,e1=`${ur}/state`,yen=`${e1}/sessions`,ven=`${e1}/retry`,ben=`${e1}/archive`,p9e=`${ur}/backup`;nEt=t3(Dn),iEt=t3(e1),oEt=t3(QSt),sEt=t3(p9e),aEt=t3(eEt),cEt=t3(tEt),lEt=t3(rEt),Zq=[".agents/oma-config.local.cue",".agents/oma-config.local.yaml",oEt,nEt,iEt,sEt,cEt,aEt,lEt]});var un="first-fluke/oh-my-agent",Vt,Ul,Qq,uEt,dEt,V4,ti;var _2=v(()=>{Xr();Vt=e3,Ul=["antigravity","claude","codex","commandcode","cursor","grok","kimi","kiro","qwen"],Qq=["pi","opencode"],uEt=["copilot","hermes"],dEt=["zcode"],V4=[...Ul,...Qq,...uEt,...dEt].sort(),ti={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 de(e,t="Output as JSON"){return e.option("--json",t).option("--output <format>","Output format (text/json)",(r)=>{let n=r.trim().toLowerCase();if(!ik.includes(n))throw Error(`Invalid output format: ${r}. Expected one of ${ik.join(", ")}`);return n})}function pEt(e){if(e?.json)return"json";let t=e?.output?.trim().toLowerCase();if(t&&ik.includes(t))return t;if(process.env[h9e]?.trim().toLowerCase()==="json")return"json";return"text"}function pe(e){return pEt(e)==="json"}function g9e(e){let t=e.at(-1);return t instanceof s5?t:null}function fEt(e){let t=g9e(e);if(t)return t.opts();let r=e.at(-1);return r&&typeof r==="object"?r:{}}function mEt(e){if(e instanceof Error)return e.message;return String(e)}function t1(e){throw Error(e)}function tK(e,t){for(let r of e){let n=r.charCodeAt(0);if(n>=0&&n<=31||n===127)t1(`${t} must not contain control characters`)}}function hEt(e,t){if(tK(e,t),/[?#%]/.test(e))t1(`${t} must not contain ?, #, or %`);if(e.includes(".."))t1(`${t} must not contain '..'`)}function gEt(e,t){tK(e,t);try{new URL(e)}catch{t1(`${t} must be a valid absolute URL`)}}function eK(e,t,r="text"){if(typeof e==="string"){if(r==="identifier"){hEt(e,t);return}if(r==="url"){gEt(e,t);return}tK(e,t);return}if(Array.isArray(e))for(let[n,i]of e.entries())eK(i,`${t}[${n}]`,r)}function m9e(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 yEt(e){let t=e.vendor;if(typeof t==="string"){if(t.split(",").map((o)=>o.trim()).filter(Boolean).filter((o)=>!V4.includes(o)).length>0)t1(`vendor must be one of ${V4.join(", ")}`)}let r=e.output;if(typeof r==="string"&&!ik.includes(r))t1(`output must be one of ${ik.join(", ")}`)}function vEt(e){let t=e.processedArgs??e.args??[];(e.registeredArguments??[]).forEach((i,o)=>{let s=i.name?.()||String(o),a=t[o];if(eK(a,s,m9e(s)),s==="agent-type"&&typeof a==="string"&&!f9e.includes(a))t1(`agent-type must be one of ${f9e.join(", ")}`)});let n=e.opts();yEt(n);for(let[i,o]of Object.entries(n))eK(o,i,m9e(i))}function bEt(e){return(e.registeredArguments??[]).map((t)=>({name:t.name?.()||"",required:!!t.required,variadic:!!t.variadic}))}function kEt(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 y9e(e){let t=[],r=e;while(r?.parent)t.unshift(r.name()),r=r.parent;return t.join(" ")}function wEt(e){return e.options.some((t)=>t.long==="--json"||t.long==="--output")}function xEt(e){return e.options.some((t)=>t.long==="--dry-run")}function v9e(e){return{name:e.name(),path:y9e(e),summary:e.summary()||void 0,description:e.description(),arguments:bEt(e),options:kEt(e),supportsJsonOutput:wEt(e),supportsDryRun:xEt(e),subcommands:e.commands.filter((t)=>!t._hidden).map((t)=>v9e(t))}}function AEt(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||y9e(i)===r)return i;n.push(...i.commands)}return null}function b9e(e,t){let r=AEt(e,t);if(!r)t1(`Unknown command: ${t}`);let n={name:e.name(),version:e.version(),description:e.description(),env:{[h9e]:"Set to json to force machine-readable output on commands that support it."},command:v9e(r)};console.log(JSON.stringify(n,null,2))}function X(e,t={}){return async(...r)=>{let n=g9e(r);if(n&&r.length>=2)r[r.length-2]=n.optsWithGlobals();let i=fEt(r);try{if(n)vEt(n);await e(...r)}catch(o){let s=mEt(o);if(t.supportsJsonOutput&&pe(i))console.log(JSON.stringify({error:s},null,2));else console.error(s);let a=o&&typeof o==="object"&&"exitCode"in o?o.exitCode:void 0;process.exitCode=typeof a==="number"&&Number.isInteger(a)&&a>0&&a<=255?a:1}}}var h9e="OH_MY_AG_OUTPUT_FORMAT",ik,f9e;var $t=v(()=>{Qm();_2();ik=["text","json"],f9e=["backend","frontend","mobile","qa","debug","pm"]});var ua,c5;var rK=v(()=>{ua={domain:[{name:"oma-architecture",desc:"Evaluate system boundaries and architectural tradeoffs. Use for architecture decisions, design reviews, and ADRs."},{name:"oma-backend",desc:"Implement server APIs, authentication, and application data access. Schema modeling and query tuning use oma-db."},{name:"oma-db",desc:"Design schemas and migrations, tune queries, or plan vector retrieval and database operations. Application API implementation uses oma-backend."},{name:"oma-frontend",desc:"Implement or modify web UI in React, Next.js, or Angular. Use for components, pages, styles, forms, and frontend state or data flows."},{name:"oma-mobile",desc:"Implement Flutter, React Native, or native Swift apps. Use for mobile screens, widgets, platform integrations, and application data flows."}],design:[{name:"oma-design",desc:"Define or review a visual system, DESIGN.md, or redesign direction. Use for typography, layout, color, motion, and interaction design decisions."}],coordination:[{name:"oma-brainstorm",desc:"Explore goals, constraints, and alternative approaches before choosing a design. Use when the user requests ideation or design exploration."},{name:"oma-coordination",desc:"Coordinate assigned specialist tasks and handoffs manually. Use when supervising a multi-agent project step by step."},{name:"oma-orchestration",desc:"Dispatch and supervise parallel specialist agents with durable task state. Use when automated multi-agent execution is requested."},{name:"oma-pm",desc:"Turn product requirements into scoped tasks with dependencies and acceptance criteria. Use for implementation planning and prioritization."},{name:"oma-qa",desc:"Review changes for correctness, security, accessibility, and performance. Use for scoped quality reviews or verification plans; bug fixes use oma-debug."}],utility:[{name:"oma-academic-writing",desc:"Draft and revise academic prose against a rubric, evidence, and citation requirements. Use for essays, reports, literature reviews, or academic style audits."},{name:"oma-debug",desc:"Diagnose a reproducible failure, fix its cause, and verify the regression. Use for crashes, incorrect behavior, and failing tests."},{name:"oma-docs",desc:"Check documentation references, sync docs to code changes, and detect translation drift. Use for documentation maintenance in a repository."},{name:"oma-explanation",desc:"Create an offline HTML explanation of a code change (diff, PR, branch) or of a topic, system, or question. Use when a visual walkthrough document is requested."},{name:"oma-hwp",desc:"Convert Hangul HWP, HWPX, or HWPML documents to Markdown with kordoc. Use for text, table, and image extraction from these formats."},{name:"oma-image",desc:"Generate raster images or reference-guided variations through the OMA image CLI. Use for image assets or explicit vendor comparisons; pixel editing uses an editor."},{name:"oma-market",desc:"Research customer pain points, trends, and competitors through the OMA market engine. Use for market discovery or voice-of-customer analysis."},{name:"oma-pdf",desc:"Extract PDF text, headings, tables, and images into Markdown using opendataloader-pdf. Use for PDF parsing, not PDF layout creation."},{name:"oma-recap",desc:"Summarize AI conversation histories for a specified date or period. Use for daily work recaps and cross-tool activity summaries."},{name:"oma-refactor",desc:"Restructure existing code while preserving observable behavior. Use for targeted technical debt or hotspot work with characterization tests."},{name:"oma-scholar",desc:"Search academic literature and generate, validate, or compare Knows paper sidecars. Use for claim/evidence analysis and literature synthesis."},{name:"oma-scm",desc:"Manage Git branches, merges, conflicts, commits, and release baselines. Use for repository history and change-management operations."},{name:"oma-search",desc:"Find external documentation, web sources, or remote code with citations. Local code navigation uses the configured code tools."},{name:"oma-security",desc:"Scan application source, agent skills, and MCP components; run penetration tests against scoped web test deployments, validate findings, and configure scan gates. Use oma-qa for broad quality reviews and domain skills for remediation."},{name:"oma-skill-creation",desc:"Create or revise OMA skills and their references. Use for skill routing, execution contracts, conditional loading, and authoring validation."},{name:"oma-slide",desc:"Create, import, revise, or export presentation decks through the OMA slide CLI. Use for HTML slides and PDF, PNG, or PPTX deck delivery."},{name:"oma-translation",desc:"Translate or revise localized UI strings and prose while preserving meaning, terminology, placeholders, and structure."},{name:"oma-video",desc:"Create videos through the OMA video CLI, or analyze and edit existing clips with media tools. Use for frame extraction, visual analysis, silence cuts, dubbing assembly, scripts, and composition; audio-only work uses oma-voice."},{name:"oma-voice",desc:"Generate or transcribe speech with Voicebox, or process existing audio locally. Use for narration, transcripts, timed speech, and loudness conversion; video editing uses oma-video."}],infrastructure:[{name:"oma-dev-workflow",desc:"Configure development tasks, git hooks, CI/CD, or release automation. Use when creating or fixing a repository development workflow."},{name:"oma-observability",desc:"Design or troubleshoot telemetry, SLOs, and incident diagnostics. Route to the relevant signal, system boundary, or vendor guide."},{name:"oma-tf-infra",desc:"Create or review Terraform infrastructure and plans. Use for cloud resources, IAM, networking, state management, and infrastructure changes."}]},c5={fullstack:["oma-architecture","oma-brainstorm","oma-design","oma-frontend","oma-backend","oma-mobile","oma-db","oma-pm","oma-qa","oma-debug","oma-scm","oma-tf-infra","oma-dev-workflow"],"fullstack-web":["oma-architecture","oma-brainstorm","oma-design","oma-frontend","oma-backend","oma-db","oma-pm","oma-qa","oma-debug","oma-scm","oma-dev-workflow"],"fullstack-mobile":["oma-architecture","oma-brainstorm","oma-design","oma-mobile","oma-backend","oma-db","oma-pm","oma-qa","oma-debug","oma-scm","oma-dev-workflow"],frontend:["oma-architecture","oma-brainstorm","oma-design","oma-frontend","oma-pm","oma-qa","oma-debug","oma-scm"],backend:["oma-architecture","oma-brainstorm","oma-backend","oma-db","oma-pm","oma-qa","oma-debug","oma-scm","oma-dev-workflow"],mobile:["oma-architecture","oma-brainstorm","oma-mobile","oma-pm","oma-qa","oma-debug","oma-scm"],devops:["oma-architecture","oma-brainstorm","oma-tf-infra","oma-dev-workflow","oma-observability","oma-pm","oma-qa","oma-debug","oma-scm"],research:["oma-scholar","oma-market","oma-pdf","oma-hwp","oma-academic-writing","oma-search","oma-translation","oma-scm"],content:["oma-design","oma-image","oma-voice","oma-academic-writing","oma-translation","oma-scm"],all:[...ua.domain,...ua.design,...ua.coordination,...ua.utility,...ua.infrastructure].map((e)=>e.name)}});var da=v(()=>{Xr();rK();_2()});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 R2(e){if(e)Object.assign(l6,e);return l6}var k9e,Pen,q4,ok,l6;var r3=v(()=>{Pen=Symbol("zod_brand");q4=class q4 extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}};ok=class ok extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`);this.name="ZodEncodeError"}};(k9e=globalThis).__zod_globalConfig??(k9e.__zod_globalConfig={});l6=globalThis.__zod_globalConfig});function YR(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 iK(e,t="|"){return e.map((r)=>cK(r)).join(t)}function ak(e,t){if(typeof t==="bigint")return t.toString();return t}function ZR(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw Error("cached value already set")}}}function QR(e){return e===null||e===void 0}function eT(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function x9e(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 gr(e,t,r){let n=void 0;Object.defineProperty(e,t,{get(){if(n===w9e)return;if(n===void 0)n=w9e,n=r();return n},set(i){Object.defineProperty(e,t,{value:i})},configurable:!0})}function n3(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function r1(...e){let t={};for(let r of e){let n=Object.getOwnPropertyDescriptors(r);Object.assign(t,n)}return Object.defineProperties({},t)}function oK(e){return JSON.stringify(e)}function A9e(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}function sk(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function i3(e){if(sk(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(sk(r)===!1)return!1;if(Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)return!1;return!0}function aK(e){if(i3(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 n1(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function l5(e,t,r){let n=new e._zod.constr(t??e._zod.def);if(!t||r?.parent)n._zod.parent=e;return n}function Ve(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 cK(e){if(typeof e==="bigint")return e.toString()+"n";if(typeof e==="string")return`"${e}"`;return`${e}`}function $9e(e){return Object.keys(e).filter((t)=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}function SEt(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=r1(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 n3(this,"shape",s),s},checks:[]});return l5(e,o)}function EEt(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=r1(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 n3(this,"shape",s),s},checks:[]});return l5(e,o)}function $Et(e,t){if(!i3(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=r1(e._zod.def,{get shape(){let o={...e._zod.def.shape,...t};return n3(this,"shape",o),o}});return l5(e,i)}function CEt(e,t){if(!i3(t))throw Error("Invalid input to safeExtend: expected a plain object");let r=r1(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return n3(this,"shape",n),n}});return l5(e,r)}function _Et(e,t){if(e._zod.def.checks?.length)throw Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let r=r1(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return n3(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return l5(e,r)}function REt(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=r1(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 n3(this,"shape",c),c},checks:[]});return l5(t,s)}function TEt(e,t,r){let n=r1(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 n3(this,"shape",o),o}});return l5(t,n)}function o3(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 _9e(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 i1(e,t){return t.map((r)=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function XR(e){return typeof e==="string"?e:e?.message}function Hl(e,t,r){let n=e.message?e.message:XR(e.inst?._zod.def?.error?.(e))??XR(t?.error?.(e))??XR(r.customError?.(e))??XR(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 tT(e){if(Array.isArray(e))return"array";if(typeof e==="string")return"string";return"unknown"}function R9e(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 s3(...e){let[t,r,n]=e;if(typeof t==="string")return{message:t,code:"custom",input:r,inst:n};return{...t}}var w9e,sK,S9e,E9e,C9e;var Gl=v(()=>{r3();w9e=Symbol("evaluating");sK="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};S9e=ZR(()=>{if(l6.jitless)return!1;if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});E9e=new Set(["string","number","symbol"]);C9e={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 P9e(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 I9e(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 T9e=(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,ak,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},rT,lK;var uK=v(()=>{r3();Gl();rT=ne("$ZodError",T9e),lK=ne("$ZodError",T9e,{Parent:Error})});var nT=(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 q4;if(s.issues.length){let a=new(i?.Err??e)(s.issues.map((c)=>Hl(c,o,R2())));throw sK(a,i?.callee),a}return s.value},iT=(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)=>Hl(c,o,R2())));throw sK(a,i?.callee),a}return s.value},ck=(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 q4;return o.issues.length?{success:!1,error:new(e??rT)(o.issues.map((s)=>Hl(s,i,R2())))}:{success:!0,data:o.value}},O9e,lk=(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)=>Hl(s,i,R2())))}:{success:!0,data:o.value}},M9e,D9e=(e)=>(t,r,n)=>{let i=n?{...n,direction:"backward"}:{direction:"backward"};return nT(e)(t,r,i)},j9e=(e)=>(t,r,n)=>nT(e)(t,r,n),L9e=(e)=>async(t,r,n)=>{let i=n?{...n,direction:"backward"}:{direction:"backward"};return iT(e)(t,r,i)},N9e=(e)=>async(t,r,n)=>iT(e)(t,r,n),F9e=(e)=>(t,r,n)=>{let i=n?{...n,direction:"backward"}:{direction:"backward"};return ck(e)(t,r,i)},z9e=(e)=>(t,r,n)=>ck(e)(t,r,n),B9e=(e)=>async(t,r,n)=>{let i=n?{...n,direction:"backward"}:{direction:"backward"};return lk(e)(t,r,i)},U9e=(e)=>async(t,r,n)=>lk(e)(t,r,n);var dK=v(()=>{r3();uK();Gl();O9e=ck(lK),M9e=lk(lK)});function Z9e(){return new RegExp(IEt,"u")}function cye(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 lye(e){return new RegExp(`^${cye(e)}$`)}function uye(e){let t=cye({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(`^${sye}T(?:${n})$`)}var H9e,G9e,W9e,V9e,q9e,K9e,J9e,X9e,pK=(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})$`)},Y9e,IEt="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Q9e,eye,tye,rye,nye,fK,iye,oye,sye="(?:(?:\\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])))",aye,dye=(e)=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},pye,mK,fye,mye,hye,gye;var sT=v(()=>{H9e=/^[cC][0-9a-z]{6,}$/,G9e=/^[0-9a-z]+$/,W9e=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,V9e=/^[0-9a-vA-V]{20}$/,q9e=/^[A-Za-z0-9]{27}$/,K9e=/^[a-zA-Z0-9_-]{21}$/,J9e=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,X9e=/^([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})$/,Y9e=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;Q9e=/^(?:(?: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])$/,eye=/^(([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}|:))$/,tye=/^((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])$/,rye=/^(([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])$/,nye=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,fK=/^[A-Za-z0-9_-]*$/,iye=/^https?$/,oye=/^\+[1-9]\d{6,14}$/,aye=new RegExp(`^${sye}$`);pye=/^-?\d+$/,mK=/^-?\d+(?:\.\d+)?$/,fye=/^(?:true|false)$/i,mye=/^null$/i,hye=/^[^A-Z]*$/,gye=/^[^a-z]*$/});var es,yye,hK,gK,vye,bye,kye,wye,xye,uk,Aye,Sye,Eye,$ye,Cye,_ye,Rye;var aT=v(()=>{r3();sT();Gl();es=ne("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),yye={number:"number",bigint:"bigint",object:"date"},hK=ne("$ZodCheckLessThan",(e,t)=>{es.init(e,t);let r=yye[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})}}),gK=ne("$ZodCheckGreaterThan",(e,t)=>{es.init(e,t);let r=yye[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})}}),vye=ne("$ZodCheckMultipleOf",(e,t)=>{es.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):x9e(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})}}),bye=ne("$ZodCheckNumberFormat",(e,t)=>{es.init(e,t),t.format=t.format||"float64";let r=t.format?.includes("int"),n=r?"int":"number",[i,o]=C9e[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=pye}),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})}}),kye=ne("$ZodCheckMaxLength",(e,t)=>{var r;es.init(e,t),(r=e._zod.def).when??(r.when=(n)=>{let i=n.value;return!QR(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=tT(i);n.issues.push({origin:s,code:"too_big",maximum:t.maximum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),wye=ne("$ZodCheckMinLength",(e,t)=>{var r;es.init(e,t),(r=e._zod.def).when??(r.when=(n)=>{let i=n.value;return!QR(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=tT(i);n.issues.push({origin:s,code:"too_small",minimum:t.minimum,inclusive:!0,input:i,inst:e,continue:!t.abort})}}),xye=ne("$ZodCheckLengthEquals",(e,t)=>{var r;es.init(e,t),(r=e._zod.def).when??(r.when=(n)=>{let i=n.value;return!QR(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=tT(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})}}),uk=ne("$ZodCheckStringFormat",(e,t)=>{var r,n;if(es.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=()=>{})}),Aye=ne("$ZodCheckRegex",(e,t)=>{uk.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})}}),Sye=ne("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=hye),uk.init(e,t)}),Eye=ne("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=gye),uk.init(e,t)}),$ye=ne("$ZodCheckIncludes",(e,t)=>{es.init(e,t);let r=n1(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})}}),Cye=ne("$ZodCheckStartsWith",(e,t)=>{es.init(e,t);let r=new RegExp(`^${n1(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})}}),_ye=ne("$ZodCheckEndsWith",(e,t)=>{es.init(e,t);let r=new RegExp(`.*${n1(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})}}),Rye=ne("$ZodCheckOverwrite",(e,t)=>{es.init(e,t),e._zod.check=(r)=>{r.value=t.tx(r.value)}})});class yK{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 Pye;var vK=v(()=>{Pye={major:4,minor:4,patch:3}});function o0e(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 OEt(e){if(!fK.test(e))return!1;let t=e.replace(/[-_]/g,(n)=>n==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return o0e(r)}function MEt(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 Iye(e,t,r){if(e.issues.length)t.issues.push(...i1(r,e.issues));t.value[r]=e.value}function lT(e,t,r,n,i,o){let s=r in n;if(e.issues.length){if(i&&o&&!s)return;t.issues.push(...i1(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 g0e(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=$9e(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function y0e(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)=>lT(m,r,p,t,u,d)));else lT(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 Oye(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)=>!o3(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)=>Hl(s,n,R2())))}),t}function bK(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(i3(e)&&i3(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=bK(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=bK(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 Mye(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(o3(e))return e;let s=bK(t.value,r.value);if(!s.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return e.value=s.data,e}function Dye(e,t){if(t===void 0&&(e.issues.length||e.fallback))return{issues:[],value:void 0};return e}function jye(e,t){if(e.value===void 0)e.value=t.defaultValue;return e}function Lye(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 cT(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 Nye(e){return e.value=Object.freeze(e.value),e}function Fye(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(s3(i))}}var Rn,uT,jn,zye,Bye,Uye,Hye,Gye,Wye,Vye,qye,Kye,Jye,Xye,Yye,Zye,Qye,e0e,t0e,r0e,n0e,i0e,s0e,a0e,c0e,l0e,kK,u0e,d0e,p0e,f0e,m0e,h0e,DEt,v0e,b0e,k0e,w0e,x0e,A0e,S0e,wK,E0e,$0e,C0e,_0e,R0e,T0e,P0e,I0e,O0e,M0e;var D0e=v(()=>{aT();r3();dK();sT();Gl();vK();Gl();Rn=ne("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Pye;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=o3(s),u;for(let d of a){if(d._zod.def.when){if(_9e(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 q4;if(u||f instanceof Promise)u=(u??Promise.resolve()).then(async()=>{if(await f,s.issues.length===p)return;if(!l)l=o3(s,p)});else{if(s.issues.length===p)continue;if(!l)l=o3(s,p)}}if(u)return u.then(()=>s);return s},o=(s,a,c)=>{if(o3(s))return s.aborted=!0,s;let l=i(a,n,c);if(l instanceof Promise){if(c.async===!1)throw new q4;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 q4;return c.then((l)=>i(l,n,a))}return i(c,n,a)}}gr(e,"~standard",()=>({validate:(i)=>{try{let o=O9e(e,i);return o.success?{value:o.data}:{issues:o.error?.issues}}catch(o){return M9e(e,i).then((s)=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),uT=ne("$ZodString",(e,t)=>{Rn.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??dye(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}}),jn=ne("$ZodStringFormat",(e,t)=>{uk.init(e,t),uT.init(e,t)}),zye=ne("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=X9e),jn.init(e,t)}),Bye=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=pK(n))}else t.pattern??(t.pattern=pK());jn.init(e,t)}),Uye=ne("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Y9e),jn.init(e,t)}),Hye=ne("$ZodURL",(e,t)=>{jn.init(e,t),e._zod.check=(r)=>{try{let n=r.value.trim();if(!t.normalize&&t.protocol?.source===iye.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})}}}),Gye=ne("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Z9e()),jn.init(e,t)}),Wye=ne("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=K9e),jn.init(e,t)}),Vye=ne("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=H9e),jn.init(e,t)}),qye=ne("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=G9e),jn.init(e,t)}),Kye=ne("$ZodULID",(e,t)=>{t.pattern??(t.pattern=W9e),jn.init(e,t)}),Jye=ne("$ZodXID",(e,t)=>{t.pattern??(t.pattern=V9e),jn.init(e,t)}),Xye=ne("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=q9e),jn.init(e,t)}),Yye=ne("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=uye(t)),jn.init(e,t)}),Zye=ne("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=aye),jn.init(e,t)}),Qye=ne("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=lye(t)),jn.init(e,t)}),e0e=ne("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=J9e),jn.init(e,t)}),t0e=ne("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Q9e),jn.init(e,t),e._zod.bag.format="ipv4"}),r0e=ne("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=eye),jn.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})}}}),n0e=ne("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=tye),jn.init(e,t)}),i0e=ne("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=rye),jn.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})}}});s0e=ne("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=nye),jn.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=(r)=>{if(o0e(r.value))return;r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});a0e=ne("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=fK),jn.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=(r)=>{if(OEt(r.value))return;r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),c0e=ne("$ZodE164",(e,t)=>{t.pattern??(t.pattern=oye),jn.init(e,t)});l0e=ne("$ZodJWT",(e,t)=>{jn.init(e,t),e._zod.check=(r)=>{if(MEt(r.value,t.alg))return;r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),kK=ne("$ZodNumber",(e,t)=>{Rn.init(e,t),e._zod.pattern=e._zod.bag.pattern??mK,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}}),u0e=ne("$ZodNumberFormat",(e,t)=>{bye.init(e,t),kK.init(e,t)}),d0e=ne("$ZodBoolean",(e,t)=>{Rn.init(e,t),e._zod.pattern=fye,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}}),p0e=ne("$ZodNull",(e,t)=>{Rn.init(e,t),e._zod.pattern=mye,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}}),f0e=ne("$ZodUnknown",(e,t)=>{Rn.init(e,t),e._zod.parse=(r)=>r}),m0e=ne("$ZodNever",(e,t)=>{Rn.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)});h0e=ne("$ZodArray",(e,t)=>{Rn.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)=>Iye(l,r,s)));else Iye(c,r,s)}if(o.length)return Promise.all(o).then(()=>r);return r}});DEt=ne("$ZodObject",(e,t)=>{if(Rn.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=ZR(()=>g0e(t));gr(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=sk,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((y)=>lT(y,a,p,l,m,h)));else lT(g,a,p,l,m,h)}if(!o)return u.length?Promise.all(u).then(()=>a):a;return y0e(u,l,a,c,n.value,e)}}),v0e=ne("$ZodObjectJIT",(e,t)=>{DEt.init(e,t);let r=e._zod.parse,n=ZR(()=>g0e(t)),i=(p)=>{let f=new yK(["shape","payload","ctx"]),m=n.value,h=(k)=>{let w=oK(k);return`shape[${w}]._zod.run({ value: input[${w}], issues: [] }, ctx)`};f.write("const input = payload.value;");let g=Object.create(null),y=0;for(let k of m.keys)g[k]=`key_${y++}`;f.write("const newResult = {};");for(let k of m.keys){let w=g[k],A=oK(k),x=p[k],E=x?._zod?.optin==="optional",S=x?._zod?.optout==="optional";if(f.write(`const ${w} = ${h(k)};`),E&&S)f.write(`
30
30
  if (${w}.issues.length) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "oh-my-agent",
3
- "version": "20.18.0",
4
- "description": "A specialist team for the coding agent you already use: 12 roles, 21 workflows and 33 skills that plan, build in parallel, review and debug, leaving plans, ADRs and results as files. Gates wait for your own tests. Also research, slides and video. One .agents/ folder for Claude Code, Codex, Cursor and 11 more.",
3
+ "version": "20.19.0",
4
+ "description": "Agent skills and specialist teams for Claude Code, Codex, Cursor and other coding agents. Load one skill or install domain presets, project hooks and parallel workflows with test gates.",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "oh-my-agent": "./bin/cli.js",