oh-my-agent 14.0.2 → 14.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +1 -1
- package/package.json +1 -1
package/bin/cli.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 rr.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()}`,rr.env[e.envVar]);else this.emit(`optionEnv:${e.name()}`)}})}_parseOptionsImplied(){let e=new RO(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=DO(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=DO(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)=>tw(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=Nc.basename(e,Nc.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(rr.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 Xcr;var ow=g(()=>{rw();eoe();gg();TO();IO();Xcr=new P5});var yg;var LO=g(()=>{yg={name:"oh-my-agent",version:"14.0.2",description:"Portable multi-agent harness for .agents-based skills and workflows across Antigravity, Claude Code, Codex, OpenCode, and more",type:"module",bin:{"oh-my-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"],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 --external jsonc-parser && bun run check:bundle",dev:"bun run generate:skill-data && bun run cli.ts",lint:"biome check .","lint:fix":"biome check --write --unsafe .","check:boundaries":"node ./scripts/check-boundaries.mjs","check:bundle":"node ./scripts/check-bundle.mjs","check:emit-drift":"node ./scripts/check-emit-drift.mjs",test:"vitest run","test:coverage":"vitest run --coverage",prepublishOnly:"bun run build"},dependencies:{"@clack/prompts":"^1.7.0","@date-fns/tz":"^1.5.0","@napi-rs/keyring":"^1.3.0",axios:"^1.18.1","better-sqlite3":"^13.0.2",chokidar:"^5.0.0",commander:"^15.0.0","date-fns":"^4.4.0",eld:"^2.0.3","fast-xml-parser":"^5.10.1","jsonc-parser":"^3.3.1",minimatch:"^10.2.6","p-map":"^7.0.6",picocolors:"^1.1.1","puppeteer-core":"^25.4.0",remark:"^15.0.1","remark-frontmatter":"^5.0.0","remark-parse":"^11.0.0","smol-toml":"^1.7.1",unified:"^11.0.5",ws:"^8.21.1",yaml:"^2.9.0",zod:"^4.4.3"},optionalDependencies:{pptxgenjs:"^4.0.1"},devDependencies:{"@biomejs/biome":"^2.5.6","@types/better-sqlite3":"^7.6.13","@types/mdast":"^4.0.4","@types/node":"^26.1.2","@types/ws":"^8.18.1","@vitest/coverage-v8":"^4.1.10",typescript:"^7.0.2",vitest:"^4.1.10"},repository:{type:"git",url:"https://github.com/first-fluke/oh-my-agent"},homepage:"https://firstfluke.com/oh-my-agent",bugs:{url:"https://github.com/first-fluke/oh-my-agent/issues"},antigravity:{skillsPath:".agents/skills",skills:["oma-architecture","oma-brainstorm","oma-coordination","oma-pm","oma-frontend","oma-backend","oma-db","oma-mobile","oma-qa","oma-debug","oma-orchestration","oma-dev-workflow","oma-tf-infra","oma-scm","oma-pdf","oma-recap"]}}});import*as J3 from"node:fs";import{homedir as btt}from"node:os";import*as vg from"node:path";function roe(e){if(sw)throw Error("install context already set in this process");sw=e}function noe(){if(sw===null)throw Error("install context not set — entry point must call setInstallContext()");return sw}function Fc(){return noe().installRoot}function Li(){return noe().mode}function g4(){try{return Li()}catch{return"project"}}function X3(){try{return Fc()}catch{return process.cwd()}}function ioe(e){let t=process.env.OMA_HOME,r=e.global===!0||process.env.OMA_INSTALL_GLOBAL==="1";if(t!==void 0&&t!=="")return ktt(t),{installRoot:t,mode:r?"global":"project"};if(r)return{installRoot:btt(),mode:"global"};return{installRoot:process.cwd(),mode:"project"}}function ktt(e){if(!vg.isAbsolute(e))throw Error("OMA_HOME must be absolute path");for(let r of toe)if(e===r||e.startsWith(r+vg.sep))throw Error(`OMA_HOME=${e} is forbidden (system path ${r})`);let t;try{t=J3.realpathSync(e)}catch(r){let n=r instanceof Error?r.message:String(r);throw Error(`OMA_HOME=${e}: ${n}`)}for(let r of toe)if(t===r||t.startsWith(r+vg.sep))throw Error(`OMA_HOME=${t} is forbidden (system path ${r})`);try{J3.accessSync(t,J3.constants.W_OK)}catch{throw Error(`OMA_HOME=${t} is not writable`)}}var sw=null,toe;var Pa=g(()=>{toe=["/etc","/usr","/bin","/boot","/sys","/proc"]});import{join as wtt}from"node:path";function V1(e){return e.endsWith("/")?e:`${e}/`}function oo(e,t){let r=t.split("/").filter((n)=>n.length>0);return wtt(e,...r)}var P2=".agents",aw,$n,y4,rlr,nlr,cw,Att=".antigravitycli",ooe,xtt=".migration-backup",Stt="docs/plans",$tt=".qwen/tmp",Ett,Ctt,_tt,Ptt,Ttt,Rtt,Itt,jO;var ti=g(()=>{aw=`${P2}/skills`,$n=`${P2}/results`,y4=`${P2}/state`,rlr=`${y4}/sessions`,nlr=`${y4}/retry`,cw=`${y4}/archive`,ooe=`${P2}/backup`;Ett=V1($n),Ctt=V1(y4),_tt=V1(Att),Ptt=V1(ooe),Ttt=V1(xtt),Rtt=V1(Stt),Itt=V1($tt),jO=[_tt,Ett,Ctt,Ptt,Rtt,Ttt,Itt]});var en="first-fluke/oh-my-agent",nr,T2,MO,Dtt,Ott,zc,Nr;var T5=g(()=>{ti();nr=aw,T2=["antigravity","claude","codex","commandcode","cursor","grok","kimi","kiro","qwen"],MO=["pi","opencode"],Dtt=["copilot","hermes"],Ott=["zcode"],zc=[...T2,...MO,...Dtt,...Ott].sort(),Nr={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 Se(e,t="Output as JSON"){return e.option("--json",t).option("--output <format>","Output format (text/json)",(r)=>{let n=r.trim().toLowerCase();if(!bg.includes(n))throw Error(`Invalid output format: ${r}. Expected one of ${bg.join(", ")}`);return n})}function Ltt(e){if(e?.json)return"json";let t=e?.output?.trim().toLowerCase();if(t&&bg.includes(t))return t;if(process.env[coe]?.trim().toLowerCase()==="json")return"json";return"text"}function we(e){return Ltt(e)==="json"}function loe(e){let t=e.at(-1);return t instanceof P5?t:null}function jtt(e){let t=loe(e);if(t)return t.opts();let r=e.at(-1);return r&&typeof r==="object"?r:{}}function Mtt(e){if(e instanceof Error)return e.message;return String(e)}function v4(e){throw Error(e)}function FO(e,t){for(let r of e){let n=r.charCodeAt(0);if(n>=0&&n<=31||n===127)v4(`${t} must not contain control characters`)}}function Ntt(e,t){if(FO(e,t),/[?#%]/.test(e))v4(`${t} must not contain ?, #, or %`);if(e.includes(".."))v4(`${t} must not contain '..'`)}function Ftt(e,t){FO(e,t);try{new URL(e)}catch{v4(`${t} must be a valid absolute URL`)}}function NO(e,t,r="text"){if(typeof e==="string"){if(r==="identifier"){Ntt(e,t);return}if(r==="url"){Ftt(e,t);return}FO(e,t);return}if(Array.isArray(e))for(let[n,i]of e.entries())NO(i,`${t}[${n}]`,r)}function aoe(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 ztt(e){let t=e.vendor;if(typeof t==="string"){if(t.split(",").map((o)=>o.trim()).filter(Boolean).filter((o)=>!zc.includes(o)).length>0)v4(`vendor must be one of ${zc.join(", ")}`)}let r=e.output;if(typeof r==="string"&&!bg.includes(r))v4(`output must be one of ${bg.join(", ")}`)}function Btt(e){let t=e.processedArgs??e.args??[];(e.registeredArguments??[]).forEach((i,o)=>{let s=i.name?.()||String(o),a=t[o];if(NO(a,s,aoe(s)),s==="agent-type"&&typeof a==="string"&&!soe.includes(a))v4(`agent-type must be one of ${soe.join(", ")}`)});let n=e.opts();ztt(n);for(let[i,o]of Object.entries(n))NO(o,i,aoe(i))}function Utt(e){return(e.registeredArguments??[]).map((t)=>({name:t.name?.()||"",required:!!t.required,variadic:!!t.variadic}))}function Gtt(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 uoe(e){let t=[],r=e;while(r?.parent)t.unshift(r.name()),r=r.parent;return t.join(" ")}function Htt(e){return e.options.some((t)=>t.long==="--json"||t.long==="--output")}function Wtt(e){return e.options.some((t)=>t.long==="--dry-run")}function doe(e){return{name:e.name(),path:uoe(e),summary:e.summary()||void 0,description:e.description(),arguments:Utt(e),options:Gtt(e),supportsJsonOutput:Htt(e),supportsDryRun:Wtt(e),subcommands:e.commands.map((t)=>doe(t))}}function Vtt(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||uoe(i)===r)return i;n.push(...i.commands)}return null}function poe(e,t){let r=Vtt(e,t);if(!r)v4(`Unknown command: ${t}`);let n={name:e.name(),version:e.version(),description:e.description(),env:{[coe]:"Set to json to force machine-readable output on commands that support it."},command:doe(r)};console.log(JSON.stringify(n,null,2))}function ee(e,t={}){return async(...r)=>{let n=loe(r);if(n&&r.length>=2)r[r.length-2]=n.optsWithGlobals();let i=jtt(r);try{if(n)Btt(n);await e(...r)}catch(o){let s=Mtt(o);if(t.supportsJsonOutput&&we(i))console.log(JSON.stringify({error:s},null,2));else console.error(s);process.exitCode=1}}}var coe="OH_MY_AG_OUTPUT_FORMAT",bg,soe;var $t=g(()=>{ow();T5();bg=["text","json"],soe=["backend","frontend","mobile","qa","debug","pm"]});var moe,foe=(e)=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,hoe=(e)=>e===8987||e===9001||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e>=131072&&e<=196605||e>=196608&&e<=262141;var goe=g(()=>{moe=(()=>{let e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return(t)=>{let r=0;e.lastIndex=0;while(e.test(t))r+=1;return t.length-r}})()});var qtt,Ktt,yoe,Jtt,voe,Xtt,Ytt,Ztt,boe=(e,t={},r={})=>{let n=t.limit??1/0,i=t.ellipsis??"",o=t?.ellipsisWidth??(i?boe(i,Ztt,r).width:0),s=0,a=r.controlWidth??0,c=r.tabWidth??8,l=r.emojiWidth??2,u=2,d=r.regularWidth??1,p=r.wideWidth??2,m=[[Xtt,d],[qtt,0],[Ktt,a],[Jtt,c],[voe,l],[yoe,p]],f=0,h=0,y=e.length,v=0,b=!1,k=y,A=Math.max(0,n-o),E=0,S=0,w=0,x=0;e:while(!0){if(S>E||h>=y&&h>f){let R=e.slice(E,S)||e.slice(f,h);v=0;for(let T of R.replaceAll(Ytt,"")){let I=T.codePointAt(0)||0;if(foe(I))x=2;else if(hoe(I))x=p;else x=d;if(w+x>A)k=Math.min(k,Math.max(E,f)+v);if(w+x>n){b=!0;break e}v+=T.length,w+=x}E=S=0}if(h>=y)break e;for(let R=0,T=m.length;R<T;R++){let[I,j]=m[R];if(I.lastIndex=h,I.test(e)){if(v=I===yoe?moe(e.slice(h,I.lastIndex)):I===voe?1:I.lastIndex-h,x=v*j,w+x>A)k=Math.min(k,h+Math.floor((A-w)/j));if(w+x>n){b=!0;break e}w+=x,E=f,S=h,h=f=I.lastIndex;continue e}}h+=1}return{width:b?A:w,index:b?k:y,truncated:b,ellipsed:b&&n>=o}},koe;var woe=g(()=>{goe();qtt=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,Ktt=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,yoe=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,Jtt=/\t{1,1000}/y,voe=/[\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,Xtt=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,Ytt=/\p{M}+/gu,Ztt={limit:1/0,ellipsis:""},koe=boe});var Qtt,ert=(e,t={})=>koe(e,Qtt,t).width,Oo;var zO=g(()=>{woe();Qtt={limit:1/0,ellipsis:"",ellipsisWidth:0},Oo=ert});function R5(e,t,r){return String(e).normalize().split(ort).map((n)=>irt(n,t,r)).join(`
|
|
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 Xcr;var ow=g(()=>{rw();eoe();gg();TO();IO();Xcr=new P5});var yg;var LO=g(()=>{yg={name:"oh-my-agent",version:"14.0.3",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"],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 --external jsonc-parser && bun run check:bundle",dev:"bun run generate:skill-data && bun run cli.ts",lint:"biome check .","lint:fix":"biome check --write --unsafe .","check:boundaries":"node ./scripts/check-boundaries.mjs","check:bundle":"node ./scripts/check-bundle.mjs","check:emit-drift":"node ./scripts/check-emit-drift.mjs",test:"vitest run","test:coverage":"vitest run --coverage",prepublishOnly:"bun run build"},dependencies:{"@clack/prompts":"^1.7.0","@date-fns/tz":"^1.5.0","@napi-rs/keyring":"^1.3.0",axios:"^1.18.1","better-sqlite3":"^13.0.2",chokidar:"^5.0.0",commander:"^15.0.0","date-fns":"^4.4.0",eld:"^2.0.3","fast-xml-parser":"^5.10.1","jsonc-parser":"^3.3.1",minimatch:"^10.2.6","p-map":"^7.0.6",picocolors:"^1.1.1","puppeteer-core":"^25.4.0",remark:"^15.0.1","remark-frontmatter":"^5.0.0","remark-parse":"^11.0.0","smol-toml":"^1.7.1",unified:"^11.0.5",ws:"^8.21.1",yaml:"^2.9.0",zod:"^4.4.3"},optionalDependencies:{pptxgenjs:"^4.0.1"},devDependencies:{"@biomejs/biome":"^2.5.6","@types/better-sqlite3":"^7.6.13","@types/mdast":"^4.0.4","@types/node":"^26.1.2","@types/ws":"^8.18.1","@vitest/coverage-v8":"^4.1.10",typescript:"^7.0.2",vitest:"^4.1.10"},repository:{type:"git",url:"https://github.com/first-fluke/oh-my-agent"},homepage:"https://firstfluke.com/oh-my-agent",bugs:{url:"https://github.com/first-fluke/oh-my-agent/issues"},antigravity:{skillsPath:".agents/skills",skills:["oma-architecture","oma-brainstorm","oma-coordination","oma-pm","oma-frontend","oma-backend","oma-db","oma-mobile","oma-qa","oma-debug","oma-orchestration","oma-dev-workflow","oma-tf-infra","oma-scm","oma-pdf","oma-recap"]}}});import*as J3 from"node:fs";import{homedir as btt}from"node:os";import*as vg from"node:path";function roe(e){if(sw)throw Error("install context already set in this process");sw=e}function noe(){if(sw===null)throw Error("install context not set — entry point must call setInstallContext()");return sw}function Fc(){return noe().installRoot}function Li(){return noe().mode}function g4(){try{return Li()}catch{return"project"}}function X3(){try{return Fc()}catch{return process.cwd()}}function ioe(e){let t=process.env.OMA_HOME,r=e.global===!0||process.env.OMA_INSTALL_GLOBAL==="1";if(t!==void 0&&t!=="")return ktt(t),{installRoot:t,mode:r?"global":"project"};if(r)return{installRoot:btt(),mode:"global"};return{installRoot:process.cwd(),mode:"project"}}function ktt(e){if(!vg.isAbsolute(e))throw Error("OMA_HOME must be absolute path");for(let r of toe)if(e===r||e.startsWith(r+vg.sep))throw Error(`OMA_HOME=${e} is forbidden (system path ${r})`);let t;try{t=J3.realpathSync(e)}catch(r){let n=r instanceof Error?r.message:String(r);throw Error(`OMA_HOME=${e}: ${n}`)}for(let r of toe)if(t===r||t.startsWith(r+vg.sep))throw Error(`OMA_HOME=${t} is forbidden (system path ${r})`);try{J3.accessSync(t,J3.constants.W_OK)}catch{throw Error(`OMA_HOME=${t} is not writable`)}}var sw=null,toe;var Pa=g(()=>{toe=["/etc","/usr","/bin","/boot","/sys","/proc"]});import{join as wtt}from"node:path";function V1(e){return e.endsWith("/")?e:`${e}/`}function oo(e,t){let r=t.split("/").filter((n)=>n.length>0);return wtt(e,...r)}var P2=".agents",aw,$n,y4,rlr,nlr,cw,Att=".antigravitycli",ooe,xtt=".migration-backup",Stt="docs/plans",$tt=".qwen/tmp",Ett,Ctt,_tt,Ptt,Ttt,Rtt,Itt,jO;var ti=g(()=>{aw=`${P2}/skills`,$n=`${P2}/results`,y4=`${P2}/state`,rlr=`${y4}/sessions`,nlr=`${y4}/retry`,cw=`${y4}/archive`,ooe=`${P2}/backup`;Ett=V1($n),Ctt=V1(y4),_tt=V1(Att),Ptt=V1(ooe),Ttt=V1(xtt),Rtt=V1(Stt),Itt=V1($tt),jO=[_tt,Ett,Ctt,Ptt,Rtt,Ttt,Itt]});var en="first-fluke/oh-my-agent",nr,T2,MO,Dtt,Ott,zc,Nr;var T5=g(()=>{ti();nr=aw,T2=["antigravity","claude","codex","commandcode","cursor","grok","kimi","kiro","qwen"],MO=["pi","opencode"],Dtt=["copilot","hermes"],Ott=["zcode"],zc=[...T2,...MO,...Dtt,...Ott].sort(),Nr={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 Se(e,t="Output as JSON"){return e.option("--json",t).option("--output <format>","Output format (text/json)",(r)=>{let n=r.trim().toLowerCase();if(!bg.includes(n))throw Error(`Invalid output format: ${r}. Expected one of ${bg.join(", ")}`);return n})}function Ltt(e){if(e?.json)return"json";let t=e?.output?.trim().toLowerCase();if(t&&bg.includes(t))return t;if(process.env[coe]?.trim().toLowerCase()==="json")return"json";return"text"}function we(e){return Ltt(e)==="json"}function loe(e){let t=e.at(-1);return t instanceof P5?t:null}function jtt(e){let t=loe(e);if(t)return t.opts();let r=e.at(-1);return r&&typeof r==="object"?r:{}}function Mtt(e){if(e instanceof Error)return e.message;return String(e)}function v4(e){throw Error(e)}function FO(e,t){for(let r of e){let n=r.charCodeAt(0);if(n>=0&&n<=31||n===127)v4(`${t} must not contain control characters`)}}function Ntt(e,t){if(FO(e,t),/[?#%]/.test(e))v4(`${t} must not contain ?, #, or %`);if(e.includes(".."))v4(`${t} must not contain '..'`)}function Ftt(e,t){FO(e,t);try{new URL(e)}catch{v4(`${t} must be a valid absolute URL`)}}function NO(e,t,r="text"){if(typeof e==="string"){if(r==="identifier"){Ntt(e,t);return}if(r==="url"){Ftt(e,t);return}FO(e,t);return}if(Array.isArray(e))for(let[n,i]of e.entries())NO(i,`${t}[${n}]`,r)}function aoe(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 ztt(e){let t=e.vendor;if(typeof t==="string"){if(t.split(",").map((o)=>o.trim()).filter(Boolean).filter((o)=>!zc.includes(o)).length>0)v4(`vendor must be one of ${zc.join(", ")}`)}let r=e.output;if(typeof r==="string"&&!bg.includes(r))v4(`output must be one of ${bg.join(", ")}`)}function Btt(e){let t=e.processedArgs??e.args??[];(e.registeredArguments??[]).forEach((i,o)=>{let s=i.name?.()||String(o),a=t[o];if(NO(a,s,aoe(s)),s==="agent-type"&&typeof a==="string"&&!soe.includes(a))v4(`agent-type must be one of ${soe.join(", ")}`)});let n=e.opts();ztt(n);for(let[i,o]of Object.entries(n))NO(o,i,aoe(i))}function Utt(e){return(e.registeredArguments??[]).map((t)=>({name:t.name?.()||"",required:!!t.required,variadic:!!t.variadic}))}function Gtt(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 uoe(e){let t=[],r=e;while(r?.parent)t.unshift(r.name()),r=r.parent;return t.join(" ")}function Htt(e){return e.options.some((t)=>t.long==="--json"||t.long==="--output")}function Wtt(e){return e.options.some((t)=>t.long==="--dry-run")}function doe(e){return{name:e.name(),path:uoe(e),summary:e.summary()||void 0,description:e.description(),arguments:Utt(e),options:Gtt(e),supportsJsonOutput:Htt(e),supportsDryRun:Wtt(e),subcommands:e.commands.map((t)=>doe(t))}}function Vtt(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||uoe(i)===r)return i;n.push(...i.commands)}return null}function poe(e,t){let r=Vtt(e,t);if(!r)v4(`Unknown command: ${t}`);let n={name:e.name(),version:e.version(),description:e.description(),env:{[coe]:"Set to json to force machine-readable output on commands that support it."},command:doe(r)};console.log(JSON.stringify(n,null,2))}function ee(e,t={}){return async(...r)=>{let n=loe(r);if(n&&r.length>=2)r[r.length-2]=n.optsWithGlobals();let i=jtt(r);try{if(n)Btt(n);await e(...r)}catch(o){let s=Mtt(o);if(t.supportsJsonOutput&&we(i))console.log(JSON.stringify({error:s},null,2));else console.error(s);process.exitCode=1}}}var coe="OH_MY_AG_OUTPUT_FORMAT",bg,soe;var $t=g(()=>{ow();T5();bg=["text","json"],soe=["backend","frontend","mobile","qa","debug","pm"]});var moe,foe=(e)=>e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510,hoe=(e)=>e===8987||e===9001||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12771||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=19903||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e>=131072&&e<=196605||e>=196608&&e<=262141;var goe=g(()=>{moe=(()=>{let e=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return(t)=>{let r=0;e.lastIndex=0;while(e.test(t))r+=1;return t.length-r}})()});var qtt,Ktt,yoe,Jtt,voe,Xtt,Ytt,Ztt,boe=(e,t={},r={})=>{let n=t.limit??1/0,i=t.ellipsis??"",o=t?.ellipsisWidth??(i?boe(i,Ztt,r).width:0),s=0,a=r.controlWidth??0,c=r.tabWidth??8,l=r.emojiWidth??2,u=2,d=r.regularWidth??1,p=r.wideWidth??2,m=[[Xtt,d],[qtt,0],[Ktt,a],[Jtt,c],[voe,l],[yoe,p]],f=0,h=0,y=e.length,v=0,b=!1,k=y,A=Math.max(0,n-o),E=0,S=0,w=0,x=0;e:while(!0){if(S>E||h>=y&&h>f){let R=e.slice(E,S)||e.slice(f,h);v=0;for(let T of R.replaceAll(Ytt,"")){let I=T.codePointAt(0)||0;if(foe(I))x=2;else if(hoe(I))x=p;else x=d;if(w+x>A)k=Math.min(k,Math.max(E,f)+v);if(w+x>n){b=!0;break e}v+=T.length,w+=x}E=S=0}if(h>=y)break e;for(let R=0,T=m.length;R<T;R++){let[I,j]=m[R];if(I.lastIndex=h,I.test(e)){if(v=I===yoe?moe(e.slice(h,I.lastIndex)):I===voe?1:I.lastIndex-h,x=v*j,w+x>A)k=Math.min(k,h+Math.floor((A-w)/j));if(w+x>n){b=!0;break e}w+=x,E=f,S=h,h=f=I.lastIndex;continue e}}h+=1}return{width:b?A:w,index:b?k:y,truncated:b,ellipsed:b&&n>=o}},koe;var woe=g(()=>{goe();qtt=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,Ktt=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,yoe=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,Jtt=/\t{1,1000}/y,voe=/[\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,Xtt=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,Ytt=/\p{M}+/gu,Ztt={limit:1/0,ellipsis:""},koe=boe});var Qtt,ert=(e,t={})=>koe(e,Qtt,t).width,Oo;var zO=g(()=>{woe();Qtt={limit:1/0,ellipsis:"",ellipsisWidth:0},Oo=ert});function R5(e,t,r){return String(e).normalize().split(ort).map((n)=>irt(n,t,r)).join(`
|
|
28
28
|
`)}var lw="\x1B",Eoe="",trt=39,UO="\x07",Coe="[",rrt="]",_oe="m",GO,Aoe,xoe=(e)=>{if(e>=30&&e<=37)return 39;if(e>=90&&e<=97)return 39;if(e>=40&&e<=47)return 49;if(e>=100&&e<=107)return 49;if(e===1||e===2)return 22;if(e===3)return 23;if(e===4)return 24;if(e===7)return 27;if(e===8)return 28;if(e===9)return 29;if(e===0)return 0;return},Soe=(e)=>`${lw}${Coe}${e}${_oe}`,$oe=(e)=>`${lw}${GO}${e}${UO}`,BO=(e,t,r)=>{let n=t[Symbol.iterator](),i=!1,o=!1,s=e.at(-1),a=s===void 0?0:Oo(s),c=n.next(),l=n.next(),u=0;while(!c.done){let d=c.value,p=Oo(d);if(a+p<=r)e[e.length-1]+=d;else e.push(d),a=0;if(d===lw||d===Eoe)i=!0,o=t.startsWith(GO,u+1);if(i){if(o){if(d===UO)i=!1,o=!1}else if(d===_oe)i=!1}else if(a+=p,a===r&&!l.done)e.push(""),a=0;c=l,l=n.next(),u+=d.length}if(s=e.at(-1),!a&&s!==void 0&&s.length&&e.length>1)e[e.length-2]+=e.pop()},nrt=(e)=>{let t=e.split(" "),r=t.length;while(r){if(Oo(t[r-1]))break;r--}if(r===t.length)return e;return t.slice(0,r).join(" ")+t.slice(r).join("")},irt=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",i,o,s=e.split(" "),a=[""],c=0;for(let d=0;d<s.length;d++){let p=s[d];if(r.trim!==!1){let f=a.at(-1)??"",h=f.trimStart();if(f.length!==h.length)a[a.length-1]=h,c=Oo(h)}if(d!==0){if(c>=t&&(r.wordWrap===!1||r.trim===!1))a.push(""),c=0;if(c||r.trim===!1)a[a.length-1]+=" ",c++}let m=Oo(p);if(r.hard&&m>t){let f=t-c,h=1+Math.floor((m-f-1)/t);if(Math.floor((m-1)/t)<h)a.push("");BO(a,p,t),c=Oo(a.at(-1)??"");continue}if(c+m>t&&c&&m){if(r.wordWrap===!1&&c<t){BO(a,p,t),c=Oo(a.at(-1)??"");continue}a.push(""),c=0}if(c+m>t&&r.wordWrap===!1){BO(a,p,t),c=Oo(a.at(-1)??"");continue}a[a.length-1]+=p,c+=m}if(r.trim!==!1)a=a.map((d)=>nrt(d));let l=a.join(`
|
|
29
29
|
`),u=!1;for(let d=0;d<l.length;d++){let p=l[d];if(n+=p,!u){if(u=p>="\uD800"&&p<="\uDBFF",u)continue}else u=!1;if(p===lw||p===Eoe){Aoe.lastIndex=d+1;let f=Aoe.exec(l)?.groups;if(f?.code!==void 0){let h=Number.parseFloat(f.code);i=h===trt?void 0:h}else if(f?.uri!==void 0)o=f.uri.length===0?void 0:f.uri}if(l[d+1]===`
|
|
30
30
|
`){if(o)n+=$oe("");let m=i?xoe(i):void 0;if(i&&m)n+=Soe(m)}else if(p===`
|
package/package.json
CHANGED