oh-my-agent 9.9.0 → 9.9.1

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.
Files changed (3) hide show
  1. package/README.md +1 -1
  2. package/bin/cli.js +1 -1
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -205,7 +205,7 @@ Or use slash commands for structured workflows:
205
205
  | 4 | `/review` | Security + performance + accessibility audit |
206
206
  | 4 | `/deepsec` | Deep agent-powered security scan |
207
207
  | 5 | `/debug` | Structured root-cause debugging |
208
- | 5 | `/docs` | Documentation drift verify + sync via `oma-docs` |
208
+ | 5 | `/docs` | Documentation drift verify + sync |
209
209
  | 6 | `/scm` | SCM + Git workflow and Conventional Commit support |
210
210
 
211
211
  **Auto-detection**: You don't even need slash commands — keywords like "architecture", "plan", "review", and "debug" in your message (in 11 languages!) auto-activate the right workflow.
package/bin/cli.js CHANGED
@@ -24,7 +24,7 @@ Expecting one of '${G.join("', '")}'`);if(this._lifeCycleHooks[$])this._lifeCycl
24
24
  `),this.outputHelp({error:!0});let G=z||{},J=G.exitCode||1,Q=G.code||"commander.error";this._exit(J,Q,$)}_parseOptionsEnv(){this.options.forEach(($)=>{if($.envVar&&$.envVar in y4.env){let z=$.attributeName();if(this.getOptionValue(z)===void 0||["default","config","env"].includes(this.getOptionValueSource(z)))if($.required||$.optional)this.emit(`optionEnv:${$.name()}`,y4.env[$.envVar]);else this.emit(`optionEnv:${$.name()}`)}})}_parseOptionsImplied(){let $=new QF5(this.options),z=(G)=>{return this.getOptionValue(G)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(G))};this.options.filter((G)=>G.implied!==void 0&&z(G.attributeName())&&$.valueFromOption(this.getOptionValue(G.attributeName()),G)).forEach((G)=>{Object.keys(G.implied).filter((J)=>!z(J)).forEach((J)=>{this.setOptionValueWithSource(J,G.implied[J],"implied")})})}missingArgument($){let z=`error: missing required argument '${$}'`;this.error(z,{code:"commander.missingArgument"})}optionMissingArgument($){let z=`error: option '${$.flags}' argument missing`;this.error(z,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue($){let z=`error: required option '${$.flags}' not specified`;this.error(z,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption($,z){let G=(K)=>{let Z=K.attributeName(),U=this.getOptionValue(Z),Y=this.options.find((B)=>B.negate&&Z===B.attributeName()),W=this.options.find((B)=>!B.negate&&Z===B.attributeName());if(Y&&(Y.presetArg===void 0&&U===!1||Y.presetArg!==void 0&&U===Y.presetArg))return Y;return W||K},J=(K)=>{let Z=G(K),U=Z.attributeName();if(this.getOptionValueSource(U)==="env")return`environment variable '${Z.envVar}'`;return`option '${Z.flags}'`},Q=`error: ${J($)} cannot be used with ${J(z)}`;this.error(Q,{code:"commander.conflictingOption"})}unknownOption($){if(this._allowUnknownOption)return;let z="";if($.startsWith("--")&&this._showSuggestionAfterError){let J=[],Q=this;do{let K=Q.createHelp().visibleOptions(Q).filter((Z)=>Z.long).map((Z)=>Z.long);J=J.concat(K),Q=Q.parent}while(Q&&!Q._enablePositionalOptions);z=sU2($,J)}let G=`error: unknown option '${$}'${z}`;this.error(G,{code:"commander.unknownOption"})}_excessArguments($){if(this._allowExcessArguments)return;let z=this.registeredArguments.length,G=z===1?"":"s",Q=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${z} argument${G} but got ${$.length}.`;this.error(Q,{code:"commander.excessArguments"})}unknownCommand(){let $=this.args[0],z="";if(this._showSuggestionAfterError){let J=[];this.createHelp().visibleCommands(this).forEach((Q)=>{if(J.push(Q.name()),Q.alias())J.push(Q.alias())}),z=sU2($,J)}let G=`error: unknown command '${$}'${z}`;this.error(G,{code:"commander.unknownCommand"})}version($,z,G){if($===void 0)return this._version;this._version=$,z=z||"-V, --version",G=G||"output the version number";let J=this.createOption(z,G);return this._versionOptionName=J.attributeName(),this._registerOption(J),this.on("option:"+J.name(),()=>{this._outputConfiguration.writeOut(`${$}
25
25
  `),this._exit(0,"commander.version",$)}),this}description($,z){if($===void 0&&z===void 0)return this._description;if(this._description=$,z)this._argsDescription=z;return this}summary($){if($===void 0)return this._summary;return this._summary=$,this}alias($){if($===void 0)return this._aliases[0];let z=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)z=this.commands[this.commands.length-1];if($===z._name)throw Error("Command alias can't be the same as its name");let G=this.parent?._findCommand($);if(G){let J=[G.name()].concat(G.aliases()).join("|");throw Error(`cannot add alias '${$}' to command '${this.name()}' as already have command '${J}'`)}return z._aliases.push($),this}aliases($){if($===void 0)return this._aliases;return $.forEach((z)=>this.alias(z)),this}usage($){if($===void 0){if(this._usage)return this._usage;let z=this.registeredArguments.map((G)=>{return zF5(G)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?z:[]).join(" ")}return this._usage=$,this}name($){if($===void 0)return this._name;return this._name=$,this}helpGroup($){if($===void 0)return this._helpGroupHeading??"";return this._helpGroupHeading=$,this}commandsGroup($){if($===void 0)return this._defaultCommandGroup??"";return this._defaultCommandGroup=$,this}optionsGroup($){if($===void 0)return this._defaultOptionGroup??"";return this._defaultOptionGroup=$,this}_initOptionGroup($){if(this._defaultOptionGroup&&!$.helpGroupHeading)$.helpGroup(this._defaultOptionGroup)}_initCommandGroup($){if(this._defaultCommandGroup&&!$.helpGroup())$.helpGroup(this._defaultCommandGroup)}nameFromFilename($){return this._name=lz.basename($,lz.extname($)),this}executableDir($){if($===void 0)return this._executableDir;return this._executableDir=$,this}helpInformation($){let z=this.createHelp(),G=this._getOutputContext($);z.prepareContext({error:G.error,helpWidth:G.helpWidth,outputHasColors:G.hasColors});let J=z.formatHelp(this,z);if(G.hasColors)return J;return this._outputConfiguration.stripColor(J)}_getOutputContext($){$=$||{};let z=!!$.error,G,J,Q;if(z)G=(Z)=>this._outputConfiguration.writeErr(Z),J=this._outputConfiguration.getErrHasColors(),Q=this._outputConfiguration.getErrHelpWidth();else G=(Z)=>this._outputConfiguration.writeOut(Z),J=this._outputConfiguration.getOutHasColors(),Q=this._outputConfiguration.getOutHelpWidth();return{error:z,write:(Z)=>{if(!J)Z=this._outputConfiguration.stripColor(Z);return G(Z)},hasColors:J,helpWidth:Q}}outputHelp($){let z;if(typeof $==="function")z=$,$=void 0;let G=this._getOutputContext($),J={error:G.error,write:G.write,command:this};this._getCommandAndAncestors().reverse().forEach((K)=>K.emit("beforeAllHelp",J)),this.emit("beforeHelp",J);let Q=this.helpInformation({error:G.error});if(z){if(Q=z(Q),typeof Q!=="string"&&!Buffer.isBuffer(Q))throw Error("outputHelp callback must return a string or a Buffer")}if(G.write(Q),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",J),this._getCommandAndAncestors().forEach((K)=>K.emit("afterAllHelp",J))}helpOption($,z){if(typeof $==="boolean"){if($){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($??"-h, --help",z??"display help for command"),$||z)this._initOptionGroup(this._helpOption);return this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption($){return this._helpOption=$,this._initOptionGroup($),this}help($){this.outputHelp($);let z=Number(y4.exitCode??0);if(z===0&&$&&typeof $!=="function"&&$.error)z=1;this._exit(z,"commander.help","(outputHelp)")}addHelpText($,z){let G=["beforeAll","before","after","afterAll"];if(!G.includes($))throw Error(`Unexpected value for position to addHelpText.
26
26
  Expecting one of '${G.join("', '")}'`);let J=`${$}Help`;return this.on(J,(Q)=>{let K;if(typeof z==="function")K=z({error:Q.error,command:Q.command});else K=z;if(K)Q.write(`${K}
27
- `)}),this}_outputHelpIfRequested($){let z=this._getHelpOption();if(z&&$.find((J)=>z.is(J)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function tU2($){return $.map((z)=>{if(!z.startsWith("--inspect"))return z;let G,J="127.0.0.1",Q="9229",K;if((K=z.match(/^(--inspect(-brk)?)$/))!==null)G=K[1];else if((K=z.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(G=K[1],/^\d+$/.test(K[3]))Q=K[3];else J=K[3];else if((K=z.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)G=K[1],J=K[3],Q=K[4];if(G&&Q!=="0")return`${G}=${J}:${parseInt(Q)+1}`;return z})}function Ff(){if(y4.env.NO_COLOR||y4.env.FORCE_COLOR==="0"||y4.env.FORCE_COLOR==="false")return!1;if(y4.env.FORCE_COLOR||y4.env.CLICOLOR_FORCE!==void 0)return!0;return}KF5.Command=Nf;KF5.useColor=Ff});var JW2=P((BF5)=>{var{Argument:$W2}=KR(),{Command:kf}=eU2(),{CommanderError:WF5,InvalidArgumentError:zW2}=gq(),{Help:YF5}=Xf(),{Option:GW2}=Lf();BF5.program=new kf;BF5.createCommand=($)=>new kf($);BF5.createOption=($,z)=>new GW2($,z);BF5.createArgument=($,z)=>new $W2($,z);BF5.Command=kf;BF5.Option=GW2;BF5.Argument=$W2;BF5.Help=YF5;BF5.CommanderError=WF5;BF5.InvalidArgumentError=zW2;BF5.InvalidOptionArgumentError=zW2});var QW2,Jl4,Ql4,Kl4,Zl4,Ul4,Wl4,Yl4,UR,Bl4,Vl4,Xl4;var Af=k(()=>{QW2=E2(JW2(),1),{program:Jl4,createCommand:Ql4,createArgument:Kl4,createOption:Zl4,CommanderError:Ul4,InvalidArgumentError:Wl4,InvalidOptionArgumentError:Yl4,Command:UR,Argument:Bl4,Option:Vl4,Help:Xl4}=QW2.default});var WR;var jf=k(()=>{WR={name:"oh-my-agent",version:"9.9.0",description:"Portable multi-agent harness for .agents-based skills and workflows across Antigravity, Claude Code, Codex, OpenCode, and more",type:"module",bin:{"oh-my-agent":"./bin/cli.js",oma:"./bin/cli.js"},files:["bin"],keywords:["oh-my-agent","antigravity",".agents","agent","skills","agent-skills","multi-agent","orchestrator","claude","claude-code","codex","opencode","copilot","cursor","chatgpt","pm","frontend","backend","mobile","qa","debug","terraform","database","workflow","bug-fixing","gemini"],author:"our.first.fluke <our.first.fluke@gmail.com>",contributors:["gracefullight <gracefullight.dev@gmail.com>","gahyun-git <go4it.gh@gmail.com>"],license:"MIT",funding:[{type:"github",url:"https://github.com/sponsors/first-fluke"},{type:"buymeacoffee",url:"https://buymeacoffee.com/firstfluke"}],scripts:{"sync:readme":"node ./scripts/sync-readme.mjs","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.js --target node --minify --external @napi-rs/keyring",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",test:"vitest run","test:coverage":"vitest run --coverage",prepublishOnly:"bun run build"},dependencies:{"@clack/prompts":"^1.1.0","@date-fns/tz":"^1.4.1","@napi-rs/keyring":"^1.3.0",axios:"^1.15.0","better-sqlite3":"^12.9.0",chokidar:"^5.0.0",commander:"^14.0.3","date-fns":"^4.2.1",eld:"^2.0.3","fast-xml-parser":"^5",minimatch:"^10.2.5","p-map":"^7.0.4",picocolors:"^1.1.1","puppeteer-core":"^24",remark:"^15.0.1","remark-frontmatter":"^5.0.0","remark-parse":"^11.0.0","smol-toml":"^1.6.1",unified:"^11.0.5",ws:"^8.18.0",yaml:"^2.8.2",zod:"^4.3.6"},optionalDependencies:{pptxgenjs:"^3.12.0"},devDependencies:{"@biomejs/biome":"^2.4.15","@types/better-sqlite3":"^7.6.13","@types/mdast":"^4.0.4","@types/node":"^24","@types/ws":"^8.18.1","@vitest/coverage-v8":"^4.1.4",typescript:"^6",vitest:"^4.0.18"},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-orchestrator","oma-dev-workflow","oma-tf-infra","oma-scm","oma-pdf","oma-recap"]}}});import*as wY from"node:fs";import{homedir as IF5}from"node:os";import*as hq from"node:path";function ZW2($){if(YR)throw Error("install context already set in this process");YR=$}function UW2(){if(YR===null)throw Error("install context not set — entry point must call setInstallContext()");return YR}function PY(){return UW2().installRoot}function $6(){return UW2().mode}function BR(){try{return $6()}catch{return"project"}}function WW2($){let z=process.env.OMA_HOME,G=$.global===!0||process.env.OMA_INSTALL_GLOBAL==="1";if(z!==void 0&&z!=="")return RF5(z),{installRoot:z,mode:G?"global":"project"};if(G)return{installRoot:IF5(),mode:"global"};return{installRoot:process.cwd(),mode:"project"}}function RF5($){if(!hq.isAbsolute($))throw Error("OMA_HOME must be absolute path");for(let G of KW2)if($===G||$.startsWith(G+hq.sep))throw Error(`OMA_HOME=${$} is forbidden (system path ${G})`);let z;try{z=wY.realpathSync($)}catch(G){let J=G instanceof Error?G.message:String(G);throw Error(`OMA_HOME=${$}: ${J}`)}for(let G of KW2)if(z===G||z.startsWith(G+hq.sep))throw Error(`OMA_HOME=${z} is forbidden (system path ${G})`);try{wY.accessSync(z,wY.constants.W_OK)}catch{throw Error(`OMA_HOME=${z} is not writable`)}}var YR=null,KW2;var pz=k(()=>{KW2=["/etc","/usr","/bin","/boot","/sys","/proc"]});import{join as DF5}from"node:path";function fq($){return $.endsWith("/")?$:`${$}/`}function v7($,z){let G=z.split("/").filter((J)=>J.length>0);return DF5($,...G)}var M0=".agents",VR,v3,RJ,YW2,BW2,XR,vF5=".antigravitycli",VW2,EF5=".migration-backup",wF5,PF5,CF5,TF5,bF5,Mf;var E3=k(()=>{VR=`${M0}/skills`,v3=`${M0}/results`,RJ=`${M0}/state`,YW2=`${RJ}/sessions`,BW2=`${RJ}/retry`,XR=`${RJ}/archive`,VW2=`${M0}/backup`;wF5=fq(v3),PF5=fq(RJ),CF5=fq(vF5),TF5=fq(VW2),bF5=fq(EF5),Mf=[CF5,wF5,PF5,TF5,bF5]});var g1="first-fluke/oh-my-agent",e4,dz,LR,_F5,nz,s1;var az=k(()=>{E3();e4=VR,dz=["antigravity","claude","codex","commandcode","cursor","gemini","grok","kimi","kiro","qwen"],LR=["pi","opencode"],_F5=["copilot","hermes"],nz=[...dz,..._F5].sort(),s1={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"},gemini:{projectPath:".gemini/skills",homePath:".gemini/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"}}});var kW2={};z5(kW2,{runAction:()=>T2,resolveJsonMode:()=>A5,printDescribe:()=>dF5,addOutputOptions:()=>j5});function j5($,z="Output as JSON"){return $.option("--json",z).option("--output <format>","Output format (text/json)",(G)=>{let J=G.trim().toLowerCase();if(!mq.includes(J))throw Error(`Invalid output format: ${G}. Expected one of ${mq.join(", ")}`);return J})}function SF5($){if($?.json)return"json";let z=$?.output?.trim().toLowerCase();if(z&&mq.includes(z))return z;if(process.env[HW2]?.trim().toLowerCase()==="json")return"json";return"text"}function A5($){return SF5($)==="json"}function qW2($){let z=$.at(-1);return z instanceof UR?z:null}function xF5($){let z=qW2($);if(z)return z.opts();let G=$.at(-1);return G&&typeof G==="object"?G:{}}function yF5($){if($ instanceof Error)return $.message;return String($)}function DJ($){throw Error($)}function If($,z){for(let G of $){let J=G.charCodeAt(0);if(J>=0&&J<=31||J===127)DJ(`${z} must not contain control characters`)}}function uF5($,z){if(If($,z),/[?#%]/.test($))DJ(`${z} must not contain ?, #, or %`);if($.includes(".."))DJ(`${z} must not contain '..'`)}function gF5($,z){If($,z);try{new URL($)}catch{DJ(`${z} must be a valid absolute URL`)}}function Of($,z,G="text"){if(typeof $==="string"){if(G==="identifier"){uF5($,z);return}if(G==="url"){gF5($,z);return}If($,z);return}if(Array.isArray($))for(let[J,Q]of $.entries())Of(Q,`${z}[${J}]`,G)}function LW2($){let z=$.toLowerCase();if(z==="url"||z.endsWith("url"))return"url";if(z.includes("id")||z.includes("type")||z.includes("vendor")||z.includes("session"))return"identifier";return"text"}function hF5($){let z=$.vendor;if(typeof z==="string"){if(z.split(",").map((K)=>K.trim()).filter(Boolean).filter((K)=>!nz.includes(K)).length>0)DJ(`vendor must be one of ${nz.join(", ")}`)}let G=$.output;if(typeof G==="string"&&!mq.includes(G))DJ(`output must be one of ${mq.join(", ")}`)}function fF5($){let z=$.processedArgs??$.args??[];($.registeredArguments??[]).forEach((Q,K)=>{let Z=Q.name?.()||String(K),U=z[K];if(Of(U,Z,LW2(Z)),Z==="agent-type"&&typeof U==="string"&&!XW2.includes(U))DJ(`agent-type must be one of ${XW2.join(", ")}`)});let J=$.opts();hF5(J);for(let[Q,K]of Object.entries(J))Of(K,Q,LW2(Q))}function mF5($){return($.registeredArguments??[]).map((z)=>({name:z.name?.()||"",required:!!z.required,variadic:!!z.variadic}))}function cF5($){return $.options.map((z)=>({flags:z.flags,long:z.long||void 0,short:z.short||void 0,description:z.description||"",required:!!z.required||!!z.mandatory,optional:!!z.optional,defaultValue:z.defaultValue}))}function FW2($){let z=[],G=$;while(G?.parent)z.unshift(G.name()),G=G.parent;return z.join(" ")}function iF5($){return $.options.some((z)=>z.long==="--json"||z.long==="--output")}function lF5($){return $.options.some((z)=>z.long==="--dry-run")}function NW2($){return{name:$.name(),path:FW2($),summary:$.summary()||void 0,description:$.description(),arguments:mF5($),options:cF5($),supportsJsonOutput:iF5($),supportsDryRun:lF5($),subcommands:$.commands.map((z)=>NW2(z))}}function pF5($,z){if(!z?.trim())return $;let G=z.trim(),J=[...$.commands];while(J.length>0){let Q=J.shift();if(!Q)continue;if(Q.name()===G||FW2(Q)===G)return Q;J.push(...Q.commands)}return null}function dF5($,z){let G=pF5($,z);if(!G)DJ(`Unknown command: ${z}`);let J={name:$.name(),version:$.version(),description:$.description(),env:{[HW2]:"Set to json to force machine-readable output on commands that support it."},command:NW2(G)};console.log(JSON.stringify(J,null,2))}function T2($,z={}){return async(...G)=>{let J=qW2(G);if(J&&G.length>=2)G[G.length-2]=J.optsWithGlobals();let Q=xF5(G);try{if(J)fF5(J);await $(...G)}catch(K){let Z=yF5(K);if(z.supportsJsonOutput&&A5(Q))console.log(JSON.stringify({error:Z},null,2));else console.error(Z);process.exitCode=1}}}var HW2="OH_MY_AG_OUTPUT_FORMAT",mq,XW2;var a4=k(()=>{Af();az();mq=["text","json"],XW2=["backend","frontend","mobile","qa","debug","pm"]});var AW2,jW2=($)=>{return $===12288||$>=65281&&$<=65376||$>=65504&&$<=65510},MW2=($)=>{return $===8987||$===9001||$>=12272&&$<=12287||$>=12289&&$<=12350||$>=12441&&$<=12543||$>=12549&&$<=12591||$>=12593&&$<=12686||$>=12688&&$<=12771||$>=12783&&$<=12830||$>=12832&&$<=12871||$>=12880&&$<=19903||$>=65040&&$<=65049||$>=65072&&$<=65106||$>=65108&&$<=65126||$>=65128&&$<=65131||$>=127488&&$<=127490||$>=127504&&$<=127547||$>=127552&&$<=127560||$>=131072&&$<=196605||$>=196608&&$<=262141};var OW2=k(()=>{AW2=(()=>{let $=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return(z)=>{let G=0;$.lastIndex=0;while($.test(z))G+=1;return z.length-G}})()});var nF5,aF5,IW2,oF5,RW2,rF5,sF5,tF5,DW2=($,z={},G={})=>{let J=z.limit??1/0,Q=z.ellipsis??"",K=z?.ellipsisWidth??(Q?DW2(Q,tF5,G).width:0),Z=0,U=G.controlWidth??0,Y=G.tabWidth??8,W=G.emojiWidth??2,B=2,V=G.regularWidth??1,L=G.wideWidth??2,X=[[rF5,V],[nF5,0],[aF5,U],[oF5,Y],[RW2,W],[IW2,L]],H=0,q=0,F=$.length,N=0,A=!1,j=F,M=Math.max(0,J-K),O=0,I=0,D=0,R=0;$:while(!0){if(I>O||q>=F&&q>H){let E=$.slice(O,I)||$.slice(H,q);N=0;for(let b of E.replaceAll(sF5,"")){let _=b.codePointAt(0)||0;if(jW2(_))R=2;else if(MW2(_))R=L;else R=V;if(D+R>M)j=Math.min(j,Math.max(O,H)+N);if(D+R>J){A=!0;break $}N+=b.length,D+=R}O=I=0}if(q>=F)break $;for(let E=0,b=X.length;E<b;E++){let[_,h]=X[E];if(_.lastIndex=q,_.test($)){if(N=_===IW2?AW2($.slice(q,_.lastIndex)):_===RW2?1:_.lastIndex-q,R=N*h,D+R>M)j=Math.min(j,q+Math.floor((M-D)/h));if(D+R>J){A=!0;break $}D+=R,O=H,I=q,q=H=_.lastIndex;continue $}}q+=1}return{width:A?M:D,index:A?j:F,truncated:A,ellipsed:A&&J>=K}},vW2;var EW2=k(()=>{OW2();nF5=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,aF5=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,IW2=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,oF5=/\t{1,1000}/y,RW2=/[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/yu,rF5=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,sF5=/\p{M}+/gu,tF5={limit:1/0,ellipsis:""},vW2=DW2});var eF5,$N5=($,z={})=>{return vW2($,eF5,z).width},I6;var Rf=k(()=>{EW2();eF5={limit:1/0,ellipsis:"",ellipsisWidth:0},I6=$N5});function R$($,z,G){return String($).normalize().split(KN5).map((J)=>QN5(J,z,G)).join(`
27
+ `)}),this}_outputHelpIfRequested($){let z=this._getHelpOption();if(z&&$.find((J)=>z.is(J)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function tU2($){return $.map((z)=>{if(!z.startsWith("--inspect"))return z;let G,J="127.0.0.1",Q="9229",K;if((K=z.match(/^(--inspect(-brk)?)$/))!==null)G=K[1];else if((K=z.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(G=K[1],/^\d+$/.test(K[3]))Q=K[3];else J=K[3];else if((K=z.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)G=K[1],J=K[3],Q=K[4];if(G&&Q!=="0")return`${G}=${J}:${parseInt(Q)+1}`;return z})}function Ff(){if(y4.env.NO_COLOR||y4.env.FORCE_COLOR==="0"||y4.env.FORCE_COLOR==="false")return!1;if(y4.env.FORCE_COLOR||y4.env.CLICOLOR_FORCE!==void 0)return!0;return}KF5.Command=Nf;KF5.useColor=Ff});var JW2=P((BF5)=>{var{Argument:$W2}=KR(),{Command:kf}=eU2(),{CommanderError:WF5,InvalidArgumentError:zW2}=gq(),{Help:YF5}=Xf(),{Option:GW2}=Lf();BF5.program=new kf;BF5.createCommand=($)=>new kf($);BF5.createOption=($,z)=>new GW2($,z);BF5.createArgument=($,z)=>new $W2($,z);BF5.Command=kf;BF5.Option=GW2;BF5.Argument=$W2;BF5.Help=YF5;BF5.CommanderError=WF5;BF5.InvalidArgumentError=zW2;BF5.InvalidOptionArgumentError=zW2});var QW2,Jl4,Ql4,Kl4,Zl4,Ul4,Wl4,Yl4,UR,Bl4,Vl4,Xl4;var Af=k(()=>{QW2=E2(JW2(),1),{program:Jl4,createCommand:Ql4,createArgument:Kl4,createOption:Zl4,CommanderError:Ul4,InvalidArgumentError:Wl4,InvalidOptionArgumentError:Yl4,Command:UR,Argument:Bl4,Option:Vl4,Help:Xl4}=QW2.default});var WR;var jf=k(()=>{WR={name:"oh-my-agent",version:"9.9.1",description:"Portable multi-agent harness for .agents-based skills and workflows across Antigravity, Claude Code, Codex, OpenCode, and more",type:"module",bin:{"oh-my-agent":"./bin/cli.js",oma:"./bin/cli.js"},files:["bin"],keywords:["oh-my-agent","antigravity",".agents","agent","skills","agent-skills","multi-agent","orchestrator","claude","claude-code","codex","opencode","copilot","cursor","chatgpt","pm","frontend","backend","mobile","qa","debug","terraform","database","workflow","bug-fixing","gemini"],author:"our.first.fluke <our.first.fluke@gmail.com>",contributors:["gracefullight <gracefullight.dev@gmail.com>","gahyun-git <go4it.gh@gmail.com>"],license:"MIT",funding:[{type:"github",url:"https://github.com/sponsors/first-fluke"},{type:"buymeacoffee",url:"https://buymeacoffee.com/firstfluke"}],scripts:{"sync:readme":"node ./scripts/sync-readme.mjs","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.js --target node --minify --external @napi-rs/keyring",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",test:"vitest run","test:coverage":"vitest run --coverage",prepublishOnly:"bun run build"},dependencies:{"@clack/prompts":"^1.1.0","@date-fns/tz":"^1.4.1","@napi-rs/keyring":"^1.3.0",axios:"^1.15.0","better-sqlite3":"^12.9.0",chokidar:"^5.0.0",commander:"^14.0.3","date-fns":"^4.2.1",eld:"^2.0.3","fast-xml-parser":"^5",minimatch:"^10.2.5","p-map":"^7.0.4",picocolors:"^1.1.1","puppeteer-core":"^24",remark:"^15.0.1","remark-frontmatter":"^5.0.0","remark-parse":"^11.0.0","smol-toml":"^1.6.1",unified:"^11.0.5",ws:"^8.18.0",yaml:"^2.8.2",zod:"^4.3.6"},optionalDependencies:{pptxgenjs:"^3.12.0"},devDependencies:{"@biomejs/biome":"^2.4.15","@types/better-sqlite3":"^7.6.13","@types/mdast":"^4.0.4","@types/node":"^24","@types/ws":"^8.18.1","@vitest/coverage-v8":"^4.1.4",typescript:"^6",vitest:"^4.0.18"},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-orchestrator","oma-dev-workflow","oma-tf-infra","oma-scm","oma-pdf","oma-recap"]}}});import*as wY from"node:fs";import{homedir as IF5}from"node:os";import*as hq from"node:path";function ZW2($){if(YR)throw Error("install context already set in this process");YR=$}function UW2(){if(YR===null)throw Error("install context not set — entry point must call setInstallContext()");return YR}function PY(){return UW2().installRoot}function $6(){return UW2().mode}function BR(){try{return $6()}catch{return"project"}}function WW2($){let z=process.env.OMA_HOME,G=$.global===!0||process.env.OMA_INSTALL_GLOBAL==="1";if(z!==void 0&&z!=="")return RF5(z),{installRoot:z,mode:G?"global":"project"};if(G)return{installRoot:IF5(),mode:"global"};return{installRoot:process.cwd(),mode:"project"}}function RF5($){if(!hq.isAbsolute($))throw Error("OMA_HOME must be absolute path");for(let G of KW2)if($===G||$.startsWith(G+hq.sep))throw Error(`OMA_HOME=${$} is forbidden (system path ${G})`);let z;try{z=wY.realpathSync($)}catch(G){let J=G instanceof Error?G.message:String(G);throw Error(`OMA_HOME=${$}: ${J}`)}for(let G of KW2)if(z===G||z.startsWith(G+hq.sep))throw Error(`OMA_HOME=${z} is forbidden (system path ${G})`);try{wY.accessSync(z,wY.constants.W_OK)}catch{throw Error(`OMA_HOME=${z} is not writable`)}}var YR=null,KW2;var pz=k(()=>{KW2=["/etc","/usr","/bin","/boot","/sys","/proc"]});import{join as DF5}from"node:path";function fq($){return $.endsWith("/")?$:`${$}/`}function v7($,z){let G=z.split("/").filter((J)=>J.length>0);return DF5($,...G)}var M0=".agents",VR,v3,RJ,YW2,BW2,XR,vF5=".antigravitycli",VW2,EF5=".migration-backup",wF5,PF5,CF5,TF5,bF5,Mf;var E3=k(()=>{VR=`${M0}/skills`,v3=`${M0}/results`,RJ=`${M0}/state`,YW2=`${RJ}/sessions`,BW2=`${RJ}/retry`,XR=`${RJ}/archive`,VW2=`${M0}/backup`;wF5=fq(v3),PF5=fq(RJ),CF5=fq(vF5),TF5=fq(VW2),bF5=fq(EF5),Mf=[CF5,wF5,PF5,TF5,bF5]});var g1="first-fluke/oh-my-agent",e4,dz,LR,_F5,nz,s1;var az=k(()=>{E3();e4=VR,dz=["antigravity","claude","codex","commandcode","cursor","gemini","grok","kimi","kiro","qwen"],LR=["pi","opencode"],_F5=["copilot","hermes"],nz=[...dz,..._F5].sort(),s1={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"},gemini:{projectPath:".gemini/skills",homePath:".gemini/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"}}});var kW2={};z5(kW2,{runAction:()=>T2,resolveJsonMode:()=>A5,printDescribe:()=>dF5,addOutputOptions:()=>j5});function j5($,z="Output as JSON"){return $.option("--json",z).option("--output <format>","Output format (text/json)",(G)=>{let J=G.trim().toLowerCase();if(!mq.includes(J))throw Error(`Invalid output format: ${G}. Expected one of ${mq.join(", ")}`);return J})}function SF5($){if($?.json)return"json";let z=$?.output?.trim().toLowerCase();if(z&&mq.includes(z))return z;if(process.env[HW2]?.trim().toLowerCase()==="json")return"json";return"text"}function A5($){return SF5($)==="json"}function qW2($){let z=$.at(-1);return z instanceof UR?z:null}function xF5($){let z=qW2($);if(z)return z.opts();let G=$.at(-1);return G&&typeof G==="object"?G:{}}function yF5($){if($ instanceof Error)return $.message;return String($)}function DJ($){throw Error($)}function If($,z){for(let G of $){let J=G.charCodeAt(0);if(J>=0&&J<=31||J===127)DJ(`${z} must not contain control characters`)}}function uF5($,z){if(If($,z),/[?#%]/.test($))DJ(`${z} must not contain ?, #, or %`);if($.includes(".."))DJ(`${z} must not contain '..'`)}function gF5($,z){If($,z);try{new URL($)}catch{DJ(`${z} must be a valid absolute URL`)}}function Of($,z,G="text"){if(typeof $==="string"){if(G==="identifier"){uF5($,z);return}if(G==="url"){gF5($,z);return}If($,z);return}if(Array.isArray($))for(let[J,Q]of $.entries())Of(Q,`${z}[${J}]`,G)}function LW2($){let z=$.toLowerCase();if(z==="url"||z.endsWith("url"))return"url";if(z.includes("id")||z.includes("type")||z.includes("vendor")||z.includes("session"))return"identifier";return"text"}function hF5($){let z=$.vendor;if(typeof z==="string"){if(z.split(",").map((K)=>K.trim()).filter(Boolean).filter((K)=>!nz.includes(K)).length>0)DJ(`vendor must be one of ${nz.join(", ")}`)}let G=$.output;if(typeof G==="string"&&!mq.includes(G))DJ(`output must be one of ${mq.join(", ")}`)}function fF5($){let z=$.processedArgs??$.args??[];($.registeredArguments??[]).forEach((Q,K)=>{let Z=Q.name?.()||String(K),U=z[K];if(Of(U,Z,LW2(Z)),Z==="agent-type"&&typeof U==="string"&&!XW2.includes(U))DJ(`agent-type must be one of ${XW2.join(", ")}`)});let J=$.opts();hF5(J);for(let[Q,K]of Object.entries(J))Of(K,Q,LW2(Q))}function mF5($){return($.registeredArguments??[]).map((z)=>({name:z.name?.()||"",required:!!z.required,variadic:!!z.variadic}))}function cF5($){return $.options.map((z)=>({flags:z.flags,long:z.long||void 0,short:z.short||void 0,description:z.description||"",required:!!z.required||!!z.mandatory,optional:!!z.optional,defaultValue:z.defaultValue}))}function FW2($){let z=[],G=$;while(G?.parent)z.unshift(G.name()),G=G.parent;return z.join(" ")}function iF5($){return $.options.some((z)=>z.long==="--json"||z.long==="--output")}function lF5($){return $.options.some((z)=>z.long==="--dry-run")}function NW2($){return{name:$.name(),path:FW2($),summary:$.summary()||void 0,description:$.description(),arguments:mF5($),options:cF5($),supportsJsonOutput:iF5($),supportsDryRun:lF5($),subcommands:$.commands.map((z)=>NW2(z))}}function pF5($,z){if(!z?.trim())return $;let G=z.trim(),J=[...$.commands];while(J.length>0){let Q=J.shift();if(!Q)continue;if(Q.name()===G||FW2(Q)===G)return Q;J.push(...Q.commands)}return null}function dF5($,z){let G=pF5($,z);if(!G)DJ(`Unknown command: ${z}`);let J={name:$.name(),version:$.version(),description:$.description(),env:{[HW2]:"Set to json to force machine-readable output on commands that support it."},command:NW2(G)};console.log(JSON.stringify(J,null,2))}function T2($,z={}){return async(...G)=>{let J=qW2(G);if(J&&G.length>=2)G[G.length-2]=J.optsWithGlobals();let Q=xF5(G);try{if(J)fF5(J);await $(...G)}catch(K){let Z=yF5(K);if(z.supportsJsonOutput&&A5(Q))console.log(JSON.stringify({error:Z},null,2));else console.error(Z);process.exitCode=1}}}var HW2="OH_MY_AG_OUTPUT_FORMAT",mq,XW2;var a4=k(()=>{Af();az();mq=["text","json"],XW2=["backend","frontend","mobile","qa","debug","pm"]});var AW2,jW2=($)=>{return $===12288||$>=65281&&$<=65376||$>=65504&&$<=65510},MW2=($)=>{return $===8987||$===9001||$>=12272&&$<=12287||$>=12289&&$<=12350||$>=12441&&$<=12543||$>=12549&&$<=12591||$>=12593&&$<=12686||$>=12688&&$<=12771||$>=12783&&$<=12830||$>=12832&&$<=12871||$>=12880&&$<=19903||$>=65040&&$<=65049||$>=65072&&$<=65106||$>=65108&&$<=65126||$>=65128&&$<=65131||$>=127488&&$<=127490||$>=127504&&$<=127547||$>=127552&&$<=127560||$>=131072&&$<=196605||$>=196608&&$<=262141};var OW2=k(()=>{AW2=(()=>{let $=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return(z)=>{let G=0;$.lastIndex=0;while($.test(z))G+=1;return z.length-G}})()});var nF5,aF5,IW2,oF5,RW2,rF5,sF5,tF5,DW2=($,z={},G={})=>{let J=z.limit??1/0,Q=z.ellipsis??"",K=z?.ellipsisWidth??(Q?DW2(Q,tF5,G).width:0),Z=0,U=G.controlWidth??0,Y=G.tabWidth??8,W=G.emojiWidth??2,B=2,V=G.regularWidth??1,L=G.wideWidth??2,X=[[rF5,V],[nF5,0],[aF5,U],[oF5,Y],[RW2,W],[IW2,L]],H=0,q=0,F=$.length,N=0,A=!1,j=F,M=Math.max(0,J-K),O=0,I=0,D=0,R=0;$:while(!0){if(I>O||q>=F&&q>H){let E=$.slice(O,I)||$.slice(H,q);N=0;for(let b of E.replaceAll(sF5,"")){let _=b.codePointAt(0)||0;if(jW2(_))R=2;else if(MW2(_))R=L;else R=V;if(D+R>M)j=Math.min(j,Math.max(O,H)+N);if(D+R>J){A=!0;break $}N+=b.length,D+=R}O=I=0}if(q>=F)break $;for(let E=0,b=X.length;E<b;E++){let[_,h]=X[E];if(_.lastIndex=q,_.test($)){if(N=_===IW2?AW2($.slice(q,_.lastIndex)):_===RW2?1:_.lastIndex-q,R=N*h,D+R>M)j=Math.min(j,q+Math.floor((M-D)/h));if(D+R>J){A=!0;break $}D+=R,O=H,I=q,q=H=_.lastIndex;continue $}}q+=1}return{width:A?M:D,index:A?j:F,truncated:A,ellipsed:A&&J>=K}},vW2;var EW2=k(()=>{OW2();nF5=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,aF5=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,IW2=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,oF5=/\t{1,1000}/y,RW2=/[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/yu,rF5=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,sF5=/\p{M}+/gu,tF5={limit:1/0,ellipsis:""},vW2=DW2});var eF5,$N5=($,z={})=>{return vW2($,eF5,z).width},I6;var Rf=k(()=>{EW2();eF5={limit:1/0,ellipsis:"",ellipsisWidth:0},I6=$N5});function R$($,z,G){return String($).normalize().split(KN5).map((J)=>QN5(J,z,G)).join(`
28
28
  `)}var HR="\x1B",bW2="›",zN5=39,vf="\x07",_W2="[",GN5="]",SW2="m",Ef,wW2,PW2=($)=>{if($>=30&&$<=37)return 39;if($>=90&&$<=97)return 39;if($>=40&&$<=47)return 49;if($>=100&&$<=107)return 49;if($===1||$===2)return 22;if($===3)return 23;if($===4)return 24;if($===7)return 27;if($===8)return 28;if($===9)return 29;if($===0)return 0;return},CW2=($)=>`${HR}${_W2}${$}${SW2}`,TW2=($)=>`${HR}${Ef}${$}${vf}`,Df=($,z,G)=>{let J=z[Symbol.iterator](),Q=!1,K=!1,Z=$.at(-1),U=Z===void 0?0:I6(Z),Y=J.next(),W=J.next(),B=0;while(!Y.done){let V=Y.value,L=I6(V);if(U+L<=G)$[$.length-1]+=V;else $.push(V),U=0;if(V===HR||V===bW2)Q=!0,K=z.startsWith(Ef,B+1);if(Q){if(K){if(V===vf)Q=!1,K=!1}else if(V===SW2)Q=!1}else if(U+=L,U===G&&!W.done)$.push(""),U=0;Y=W,W=J.next(),B+=V.length}if(Z=$.at(-1),!U&&Z!==void 0&&Z.length&&$.length>1)$[$.length-2]+=$.pop()},JN5=($)=>{let z=$.split(" "),G=z.length;while(G){if(I6(z[G-1]))break;G--}if(G===z.length)return $;return z.slice(0,G).join(" ")+z.slice(G).join("")},QN5=($,z,G={})=>{if(G.trim!==!1&&$.trim()==="")return"";let J="",Q,K,Z=$.split(" "),U=[""],Y=0;for(let V=0;V<Z.length;V++){let L=Z[V];if(G.trim!==!1){let H=U.at(-1)??"",q=H.trimStart();if(H.length!==q.length)U[U.length-1]=q,Y=I6(q)}if(V!==0){if(Y>=z&&(G.wordWrap===!1||G.trim===!1))U.push(""),Y=0;if(Y||G.trim===!1)U[U.length-1]+=" ",Y++}let X=I6(L);if(G.hard&&X>z){let H=z-Y,q=1+Math.floor((X-H-1)/z);if(Math.floor((X-1)/z)<q)U.push("");Df(U,L,z),Y=I6(U.at(-1)??"");continue}if(Y+X>z&&Y&&X){if(G.wordWrap===!1&&Y<z){Df(U,L,z),Y=I6(U.at(-1)??"");continue}U.push(""),Y=0}if(Y+X>z&&G.wordWrap===!1){Df(U,L,z),Y=I6(U.at(-1)??"");continue}U[U.length-1]+=L,Y+=X}if(G.trim!==!1)U=U.map((V)=>JN5(V));let W=U.join(`
29
29
  `),B=!1;for(let V=0;V<W.length;V++){let L=W[V];if(J+=L,!B){if(B=L>="\uD800"&&L<="\uDBFF",B)continue}else B=!1;if(L===HR||L===bW2){wW2.lastIndex=V+1;let H=wW2.exec(W)?.groups;if(H?.code!==void 0){let q=Number.parseFloat(H.code);Q=q===zN5?void 0:q}else if(H?.uri!==void 0)K=H.uri.length===0?void 0:H.uri}if(W[V+1]===`
30
30
  `){if(K)J+=TW2("");let X=Q?PW2(Q):void 0;if(Q&&X)J+=CW2(X)}else if(L===`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-agent",
3
- "version": "9.9.0",
3
+ "version": "9.9.1",
4
4
  "description": "Portable multi-agent harness for .agents-based skills and workflows across Antigravity, Claude Code, Codex, OpenCode, and more",
5
5
  "type": "module",
6
6
  "bin": {