oh-my-agent 11.11.0 → 11.11.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.
- package/bin/cli.js +1 -1
- package/package.json +1 -1
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 q4.env){let z=$.attributeName();if(this.getOptionValue(z)===void 0||["default","config","env"].includes(this.getOptionValueSource(z)))if($.required||$.optional)this.emit(`optionEnv:${$.name()}`,q4.env[$.envVar]);else this.emit(`optionEnv:${$.name()}`)}})}_parseOptionsImplied(){let $=new dS(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=(U)=>{let K=U.attributeName(),Z=this.getOptionValue(K),W=this.options.find((B)=>B.negate&&K===B.attributeName()),k=this.options.find((B)=>!B.negate&&K===B.attributeName());if(W&&(W.presetArg===void 0&&Z===!1||W.presetArg!==void 0&&Z===W.presetArg))return W;return k||U},J=(U)=>{let K=G(U),Z=K.attributeName();if(this.getOptionValueSource(Z)==="env")return`environment variable '${K.envVar}'`;return`option '${K.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 U=Q.createHelp().visibleOptions(Q).filter((K)=>K.long).map((K)=>K.long);J=J.concat(U),Q=Q.parent}while(Q&&!Q._enablePositionalOptions);z=aS($,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",J=$.length,Q=this.parent?` for '${this.name()}'`:"",U=$.join(", "),K=`error: too many arguments${Q}. Expected ${z} argument${G} but got ${J}: ${U}.`;this.error(K,{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=aS($,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 Ru(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=Zz.basename($,Zz.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=(K)=>this._outputConfiguration.writeErr(K),J=this._outputConfiguration.getErrHasColors(),Q=this._outputConfiguration.getErrHelpWidth();else G=(K)=>this._outputConfiguration.writeOut(K),J=this._outputConfiguration.getOutHasColors(),Q=this._outputConfiguration.getOutHelpWidth();return{error:z,write:(K)=>{if(!J)K=this._outputConfiguration.stripColor(K);return G(K)},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((U)=>U.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((U)=>U.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(q4.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 U;if(typeof z==="function")U=z({error:Q.error,command:Q.command});else U=z;if(U)Q.write(`${U}
|
|
27
|
-
`)}),this}_outputHelpIfRequested($){let z=this._getHelpOption();if(z&&$.find((J)=>z.is(J)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}});var kX4;var rS=q(()=>{wu();VQ2();RX();pS();nS();kX4=new _G});var CX;var sS=q(()=>{CX={name:"oh-my-agent",version:"11.11.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"],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","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",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-orchestrator","oma-dev-workflow","oma-tf-infra","oma-scm","oma-pdf","oma-recap"]}}});import*as PW from"node:fs";import{homedir as hz5}from"node:os";import*as TX from"node:path";function HQ2($){if(Pu)throw Error("install context already set in this process");Pu=$}function LQ2(){if(Pu===null)throw Error("install context not set — entry point must call setInstallContext()");return Pu}function VU(){return LQ2().installRoot}function g7(){return LQ2().mode}function XU(){try{return g7()}catch{return"project"}}function EW(){try{return VU()}catch{return process.cwd()}}function qQ2($){let z=process.env.OMA_HOME,G=$.global===!0||process.env.OMA_INSTALL_GLOBAL==="1";if(z!==void 0&&z!=="")return gz5(z),{installRoot:z,mode:G?"global":"project"};if(G)return{installRoot:hz5(),mode:"global"};return{installRoot:process.cwd(),mode:"project"}}function gz5($){if(!TX.isAbsolute($))throw Error("OMA_HOME must be absolute path");for(let G of XQ2)if($===G||$.startsWith(G+TX.sep))throw Error(`OMA_HOME=${$} is forbidden (system path ${G})`);let z;try{z=PW.realpathSync($)}catch(G){let J=G instanceof Error?G.message:String(G);throw Error(`OMA_HOME=${$}: ${J}`)}for(let G of XQ2)if(z===G||z.startsWith(G+TX.sep))throw Error(`OMA_HOME=${z} is forbidden (system path ${G})`);try{PW.accessSync(z,PW.constants.W_OK)}catch{throw Error(`OMA_HOME=${z} is not writable`)}}var Pu=null,XQ2;var S8=q(()=>{XQ2=["/etc","/usr","/bin","/boot","/sys","/proc"]});import{join as fz5}from"node:path";function HU($){return $.endsWith("/")?$:`${$}/`}function d3($,z){let G=z.split("/").filter((J)=>J.length>0);return fz5($,...G)}var h8=".agents",Eu,G3,xG,NQ2,AQ2,bu,mz5=".antigravitycli",DQ2,iz5=".migration-backup",cz5="docs/plans",lz5=".qwen/tmp",pz5,dz5,nz5,az5,oz5,rz5,sz5,tS;var J3=q(()=>{Eu=`${h8}/skills`,G3=`${h8}/results`,xG=`${h8}/state`,NQ2=`${xG}/sessions`,AQ2=`${xG}/retry`,bu=`${xG}/archive`,DQ2=`${h8}/backup`;pz5=HU(G3),dz5=HU(xG),nz5=HU(mz5),az5=HU(DQ2),oz5=HU(iz5),rz5=HU(cz5),sz5=HU(lz5),tS=[nz5,pz5,dz5,az5,rz5,oz5,sz5]});var V1="first-fluke/oh-my-agent",N4,g8,_u,tz5,ez5,Wz,_1;var y0=q(()=>{J3();N4=Eu,g8=["antigravity","claude","codex","commandcode","cursor","grok","kimi","kiro","qwen"],_u=["pi","opencode"],tz5=["copilot","hermes"],ez5=["zcode"],Wz=[...g8,...tz5,...ez5].sort(),_1={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"}}});var RQ2={};C2(RQ2,{runAction:()=>X2,resolveJsonMode:()=>s2,printDescribe:()=>FG5,addOutputOptions:()=>e2});function e2($,z="Output as JSON"){return $.option("--json",z).option("--output <format>","Output format (text/json)",(G)=>{let J=G.trim().toLowerCase();if(!PX.includes(J))throw Error(`Invalid output format: ${G}. Expected one of ${PX.join(", ")}`);return J})}function $G5($){if($?.json)return"json";let z=$?.output?.trim().toLowerCase();if(z&&PX.includes(z))return z;if(process.env[MQ2]?.trim().toLowerCase()==="json")return"json";return"text"}function s2($){return $G5($)==="json"}function OQ2($){let z=$.at(-1);return z instanceof _G?z:null}function zG5($){let z=OQ2($);if(z)return z.opts();let G=$.at(-1);return G&&typeof G==="object"?G:{}}function GG5($){if($ instanceof Error)return $.message;return String($)}function yG($){throw Error($)}function $h($,z){for(let G of $){let J=G.charCodeAt(0);if(J>=0&&J<=31||J===127)yG(`${z} must not contain control characters`)}}function JG5($,z){if($h($,z),/[?#%]/.test($))yG(`${z} must not contain ?, #, or %`);if($.includes(".."))yG(`${z} must not contain '..'`)}function QG5($,z){$h($,z);try{new URL($)}catch{yG(`${z} must be a valid absolute URL`)}}function eS($,z,G="text"){if(typeof $==="string"){if(G==="identifier"){JG5($,z);return}if(G==="url"){QG5($,z);return}$h($,z);return}if(Array.isArray($))for(let[J,Q]of $.entries())eS(Q,`${z}[${J}]`,G)}function uQ2($){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 UG5($){let z=$.vendor;if(typeof z==="string"){if(z.split(",").map((U)=>U.trim()).filter(Boolean).filter((U)=>!Wz.includes(U)).length>0)yG(`vendor must be one of ${Wz.join(", ")}`)}let G=$.output;if(typeof G==="string"&&!PX.includes(G))yG(`output must be one of ${PX.join(", ")}`)}function KG5($){let z=$.processedArgs??$.args??[];($.registeredArguments??[]).forEach((Q,U)=>{let K=Q.name?.()||String(U),Z=z[U];if(eS(Z,K,uQ2(K)),K==="agent-type"&&typeof Z==="string"&&!jQ2.includes(Z))yG(`agent-type must be one of ${jQ2.join(", ")}`)});let J=$.opts();UG5(J);for(let[Q,U]of Object.entries(J))eS(U,Q,uQ2(Q))}function ZG5($){return($.registeredArguments??[]).map((z)=>({name:z.name?.()||"",required:!!z.required,variadic:!!z.variadic}))}function WG5($){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 IQ2($){let z=[],G=$;while(G?.parent)z.unshift(G.name()),G=G.parent;return z.join(" ")}function kG5($){return $.options.some((z)=>z.long==="--json"||z.long==="--output")}function BG5($){return $.options.some((z)=>z.long==="--dry-run")}function vQ2($){return{name:$.name(),path:IQ2($),summary:$.summary()||void 0,description:$.description(),arguments:ZG5($),options:WG5($),supportsJsonOutput:kG5($),supportsDryRun:BG5($),subcommands:$.commands.map((z)=>vQ2(z))}}function YG5($,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||IQ2(Q)===G)return Q;J.push(...Q.commands)}return null}function FG5($,z){let G=YG5($,z);if(!G)yG(`Unknown command: ${z}`);let J={name:$.name(),version:$.version(),description:$.description(),env:{[MQ2]:"Set to json to force machine-readable output on commands that support it."},command:vQ2(G)};console.log(JSON.stringify(J,null,2))}function X2($,z={}){return async(...G)=>{let J=OQ2(G);if(J&&G.length>=2)G[G.length-2]=J.optsWithGlobals();let Q=zG5(G);try{if(J)KG5(J);await $(...G)}catch(U){let K=GG5(U);if(z.supportsJsonOutput&&s2(Q))console.log(JSON.stringify({error:K},null,2));else console.error(K);process.exitCode=1}}}var MQ2="OH_MY_AG_OUTPUT_FORMAT",PX,jQ2;var Z4=q(()=>{rS();y0();PX=["text","json"],jQ2=["backend","frontend","mobile","qa","debug","pm"]});var wQ2,CQ2=($)=>{return $===12288||$>=65281&&$<=65376||$>=65504&&$<=65510},TQ2=($)=>{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 PQ2=q(()=>{wQ2=(()=>{let $=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return(z)=>{let G=0;$.lastIndex=0;while($.test(z))G+=1;return z.length-G}})()});var VG5,XG5,EQ2,HG5,bQ2,LG5,qG5,NG5,_Q2=($,z={},G={})=>{let J=z.limit??1/0,Q=z.ellipsis??"",U=z?.ellipsisWidth??(Q?_Q2(Q,NG5,G).width:0),K=0,Z=G.controlWidth??0,W=G.tabWidth??8,k=G.emojiWidth??2,B=2,Y=G.regularWidth??1,F=G.wideWidth??2,V=[[LG5,Y],[VG5,0],[XG5,Z],[HG5,W],[bQ2,k],[EQ2,F]],X=0,H=0,L=$.length,N=0,A=!1,D=L,u=Math.max(0,J-U),v=0,j=0,M=0,O=0;$:while(!0){if(j>v||H>=L&&H>X){let w=$.slice(v,j)||$.slice(X,H);N=0;for(let T of w.replaceAll(qG5,"")){let I=T.codePointAt(0)||0;if(CQ2(I))O=2;else if(TQ2(I))O=F;else O=Y;if(M+O>u)D=Math.min(D,Math.max(v,X)+N);if(M+O>J){A=!0;break $}N+=T.length,M+=O}v=j=0}if(H>=L)break $;for(let w=0,T=V.length;w<T;w++){let[I,R]=V[w];if(I.lastIndex=H,I.test($)){if(N=I===EQ2?wQ2($.slice(H,I.lastIndex)):I===bQ2?1:I.lastIndex-H,O=N*R,M+O>u)D=Math.min(D,H+Math.floor((u-M)/R));if(M+O>J){A=!0;break $}M+=O,v=X,j=H,H=X=I.lastIndex;continue $}}H+=1}return{width:A?u:M,index:A?D:L,truncated:A,ellipsed:A&&J>=U}},xQ2;var yQ2=q(()=>{PQ2();VG5=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,XG5=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,EQ2=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,HG5=/\t{1,1000}/y,bQ2=/[\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,LG5=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,qG5=/\p{M}+/gu,NG5={limit:1/0,ellipsis:""},xQ2=_Q2});var AG5,DG5=($,z={})=>{return xQ2($,AG5,z).width},f7;var zh=q(()=>{yQ2();AG5={limit:1/0,ellipsis:"",ellipsisWidth:0},f7=DG5});function S0($,z,G){return String($).normalize().split(IG5).map((J)=>OG5(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)")}}});var kX4;var rS=q(()=>{wu();VQ2();RX();pS();nS();kX4=new _G});var CX;var sS=q(()=>{CX={name:"oh-my-agent",version:"11.11.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"],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","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",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-orchestrator","oma-dev-workflow","oma-tf-infra","oma-scm","oma-pdf","oma-recap"]}}});import*as PW from"node:fs";import{homedir as hz5}from"node:os";import*as TX from"node:path";function HQ2($){if(Pu)throw Error("install context already set in this process");Pu=$}function LQ2(){if(Pu===null)throw Error("install context not set — entry point must call setInstallContext()");return Pu}function VU(){return LQ2().installRoot}function g7(){return LQ2().mode}function XU(){try{return g7()}catch{return"project"}}function EW(){try{return VU()}catch{return process.cwd()}}function qQ2($){let z=process.env.OMA_HOME,G=$.global===!0||process.env.OMA_INSTALL_GLOBAL==="1";if(z!==void 0&&z!=="")return gz5(z),{installRoot:z,mode:G?"global":"project"};if(G)return{installRoot:hz5(),mode:"global"};return{installRoot:process.cwd(),mode:"project"}}function gz5($){if(!TX.isAbsolute($))throw Error("OMA_HOME must be absolute path");for(let G of XQ2)if($===G||$.startsWith(G+TX.sep))throw Error(`OMA_HOME=${$} is forbidden (system path ${G})`);let z;try{z=PW.realpathSync($)}catch(G){let J=G instanceof Error?G.message:String(G);throw Error(`OMA_HOME=${$}: ${J}`)}for(let G of XQ2)if(z===G||z.startsWith(G+TX.sep))throw Error(`OMA_HOME=${z} is forbidden (system path ${G})`);try{PW.accessSync(z,PW.constants.W_OK)}catch{throw Error(`OMA_HOME=${z} is not writable`)}}var Pu=null,XQ2;var S8=q(()=>{XQ2=["/etc","/usr","/bin","/boot","/sys","/proc"]});import{join as fz5}from"node:path";function HU($){return $.endsWith("/")?$:`${$}/`}function d3($,z){let G=z.split("/").filter((J)=>J.length>0);return fz5($,...G)}var h8=".agents",Eu,G3,xG,NQ2,AQ2,bu,mz5=".antigravitycli",DQ2,iz5=".migration-backup",cz5="docs/plans",lz5=".qwen/tmp",pz5,dz5,nz5,az5,oz5,rz5,sz5,tS;var J3=q(()=>{Eu=`${h8}/skills`,G3=`${h8}/results`,xG=`${h8}/state`,NQ2=`${xG}/sessions`,AQ2=`${xG}/retry`,bu=`${xG}/archive`,DQ2=`${h8}/backup`;pz5=HU(G3),dz5=HU(xG),nz5=HU(mz5),az5=HU(DQ2),oz5=HU(iz5),rz5=HU(cz5),sz5=HU(lz5),tS=[nz5,pz5,dz5,az5,rz5,oz5,sz5]});var V1="first-fluke/oh-my-agent",N4,g8,_u,tz5,ez5,Wz,_1;var y0=q(()=>{J3();N4=Eu,g8=["antigravity","claude","codex","commandcode","cursor","grok","kimi","kiro","qwen"],_u=["pi","opencode"],tz5=["copilot","hermes"],ez5=["zcode"],Wz=[...g8,...tz5,...ez5].sort(),_1={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"}}});var RQ2={};C2(RQ2,{runAction:()=>X2,resolveJsonMode:()=>s2,printDescribe:()=>FG5,addOutputOptions:()=>e2});function e2($,z="Output as JSON"){return $.option("--json",z).option("--output <format>","Output format (text/json)",(G)=>{let J=G.trim().toLowerCase();if(!PX.includes(J))throw Error(`Invalid output format: ${G}. Expected one of ${PX.join(", ")}`);return J})}function $G5($){if($?.json)return"json";let z=$?.output?.trim().toLowerCase();if(z&&PX.includes(z))return z;if(process.env[MQ2]?.trim().toLowerCase()==="json")return"json";return"text"}function s2($){return $G5($)==="json"}function OQ2($){let z=$.at(-1);return z instanceof _G?z:null}function zG5($){let z=OQ2($);if(z)return z.opts();let G=$.at(-1);return G&&typeof G==="object"?G:{}}function GG5($){if($ instanceof Error)return $.message;return String($)}function yG($){throw Error($)}function $h($,z){for(let G of $){let J=G.charCodeAt(0);if(J>=0&&J<=31||J===127)yG(`${z} must not contain control characters`)}}function JG5($,z){if($h($,z),/[?#%]/.test($))yG(`${z} must not contain ?, #, or %`);if($.includes(".."))yG(`${z} must not contain '..'`)}function QG5($,z){$h($,z);try{new URL($)}catch{yG(`${z} must be a valid absolute URL`)}}function eS($,z,G="text"){if(typeof $==="string"){if(G==="identifier"){JG5($,z);return}if(G==="url"){QG5($,z);return}$h($,z);return}if(Array.isArray($))for(let[J,Q]of $.entries())eS(Q,`${z}[${J}]`,G)}function uQ2($){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 UG5($){let z=$.vendor;if(typeof z==="string"){if(z.split(",").map((U)=>U.trim()).filter(Boolean).filter((U)=>!Wz.includes(U)).length>0)yG(`vendor must be one of ${Wz.join(", ")}`)}let G=$.output;if(typeof G==="string"&&!PX.includes(G))yG(`output must be one of ${PX.join(", ")}`)}function KG5($){let z=$.processedArgs??$.args??[];($.registeredArguments??[]).forEach((Q,U)=>{let K=Q.name?.()||String(U),Z=z[U];if(eS(Z,K,uQ2(K)),K==="agent-type"&&typeof Z==="string"&&!jQ2.includes(Z))yG(`agent-type must be one of ${jQ2.join(", ")}`)});let J=$.opts();UG5(J);for(let[Q,U]of Object.entries(J))eS(U,Q,uQ2(Q))}function ZG5($){return($.registeredArguments??[]).map((z)=>({name:z.name?.()||"",required:!!z.required,variadic:!!z.variadic}))}function WG5($){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 IQ2($){let z=[],G=$;while(G?.parent)z.unshift(G.name()),G=G.parent;return z.join(" ")}function kG5($){return $.options.some((z)=>z.long==="--json"||z.long==="--output")}function BG5($){return $.options.some((z)=>z.long==="--dry-run")}function vQ2($){return{name:$.name(),path:IQ2($),summary:$.summary()||void 0,description:$.description(),arguments:ZG5($),options:WG5($),supportsJsonOutput:kG5($),supportsDryRun:BG5($),subcommands:$.commands.map((z)=>vQ2(z))}}function YG5($,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||IQ2(Q)===G)return Q;J.push(...Q.commands)}return null}function FG5($,z){let G=YG5($,z);if(!G)yG(`Unknown command: ${z}`);let J={name:$.name(),version:$.version(),description:$.description(),env:{[MQ2]:"Set to json to force machine-readable output on commands that support it."},command:vQ2(G)};console.log(JSON.stringify(J,null,2))}function X2($,z={}){return async(...G)=>{let J=OQ2(G);if(J&&G.length>=2)G[G.length-2]=J.optsWithGlobals();let Q=zG5(G);try{if(J)KG5(J);await $(...G)}catch(U){let K=GG5(U);if(z.supportsJsonOutput&&s2(Q))console.log(JSON.stringify({error:K},null,2));else console.error(K);process.exitCode=1}}}var MQ2="OH_MY_AG_OUTPUT_FORMAT",PX,jQ2;var Z4=q(()=>{rS();y0();PX=["text","json"],jQ2=["backend","frontend","mobile","qa","debug","pm"]});var wQ2,CQ2=($)=>{return $===12288||$>=65281&&$<=65376||$>=65504&&$<=65510},TQ2=($)=>{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 PQ2=q(()=>{wQ2=(()=>{let $=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return(z)=>{let G=0;$.lastIndex=0;while($.test(z))G+=1;return z.length-G}})()});var VG5,XG5,EQ2,HG5,bQ2,LG5,qG5,NG5,_Q2=($,z={},G={})=>{let J=z.limit??1/0,Q=z.ellipsis??"",U=z?.ellipsisWidth??(Q?_Q2(Q,NG5,G).width:0),K=0,Z=G.controlWidth??0,W=G.tabWidth??8,k=G.emojiWidth??2,B=2,Y=G.regularWidth??1,F=G.wideWidth??2,V=[[LG5,Y],[VG5,0],[XG5,Z],[HG5,W],[bQ2,k],[EQ2,F]],X=0,H=0,L=$.length,N=0,A=!1,D=L,u=Math.max(0,J-U),v=0,j=0,M=0,O=0;$:while(!0){if(j>v||H>=L&&H>X){let w=$.slice(v,j)||$.slice(X,H);N=0;for(let T of w.replaceAll(qG5,"")){let I=T.codePointAt(0)||0;if(CQ2(I))O=2;else if(TQ2(I))O=F;else O=Y;if(M+O>u)D=Math.min(D,Math.max(v,X)+N);if(M+O>J){A=!0;break $}N+=T.length,M+=O}v=j=0}if(H>=L)break $;for(let w=0,T=V.length;w<T;w++){let[I,R]=V[w];if(I.lastIndex=H,I.test($)){if(N=I===EQ2?wQ2($.slice(H,I.lastIndex)):I===bQ2?1:I.lastIndex-H,O=N*R,M+O>u)D=Math.min(D,H+Math.floor((u-M)/R));if(M+O>J){A=!0;break $}M+=O,v=X,j=H,H=X=I.lastIndex;continue $}}H+=1}return{width:A?u:M,index:A?D:L,truncated:A,ellipsed:A&&J>=U}},xQ2;var yQ2=q(()=>{PQ2();VG5=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,XG5=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,EQ2=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,HG5=/\t{1,1000}/y,bQ2=/[\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,LG5=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,qG5=/\p{M}+/gu,NG5={limit:1/0,ellipsis:""},xQ2=_Q2});var AG5,DG5=($,z={})=>{return xQ2($,AG5,z).width},f7;var zh=q(()=>{yQ2();AG5={limit:1/0,ellipsis:"",ellipsisWidth:0},f7=DG5});function S0($,z,G){return String($).normalize().split(IG5).map((J)=>OG5(J,z,G)).join(`
|
|
28
28
|
`)}var xu="\x1B",mQ2="",jG5=39,Jh="\x07",iQ2="[",uG5="]",cQ2="m",Qh,SQ2,hQ2=($)=>{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},gQ2=($)=>`${xu}${iQ2}${$}${cQ2}`,fQ2=($)=>`${xu}${Qh}${$}${Jh}`,Gh=($,z,G)=>{let J=z[Symbol.iterator](),Q=!1,U=!1,K=$.at(-1),Z=K===void 0?0:f7(K),W=J.next(),k=J.next(),B=0;while(!W.done){let Y=W.value,F=f7(Y);if(Z+F<=G)$[$.length-1]+=Y;else $.push(Y),Z=0;if(Y===xu||Y===mQ2)Q=!0,U=z.startsWith(Qh,B+1);if(Q){if(U){if(Y===Jh)Q=!1,U=!1}else if(Y===cQ2)Q=!1}else if(Z+=F,Z===G&&!k.done)$.push(""),Z=0;W=k,k=J.next(),B+=Y.length}if(K=$.at(-1),!Z&&K!==void 0&&K.length&&$.length>1)$[$.length-2]+=$.pop()},MG5=($)=>{let z=$.split(" "),G=z.length;while(G){if(f7(z[G-1]))break;G--}if(G===z.length)return $;return z.slice(0,G).join(" ")+z.slice(G).join("")},OG5=($,z,G={})=>{if(G.trim!==!1&&$.trim()==="")return"";let J="",Q,U,K=$.split(" "),Z=[""],W=0;for(let Y=0;Y<K.length;Y++){let F=K[Y];if(G.trim!==!1){let X=Z.at(-1)??"",H=X.trimStart();if(X.length!==H.length)Z[Z.length-1]=H,W=f7(H)}if(Y!==0){if(W>=z&&(G.wordWrap===!1||G.trim===!1))Z.push(""),W=0;if(W||G.trim===!1)Z[Z.length-1]+=" ",W++}let V=f7(F);if(G.hard&&V>z){let X=z-W,H=1+Math.floor((V-X-1)/z);if(Math.floor((V-1)/z)<H)Z.push("");Gh(Z,F,z),W=f7(Z.at(-1)??"");continue}if(W+V>z&&W&&V){if(G.wordWrap===!1&&W<z){Gh(Z,F,z),W=f7(Z.at(-1)??"");continue}Z.push(""),W=0}if(W+V>z&&G.wordWrap===!1){Gh(Z,F,z),W=f7(Z.at(-1)??"");continue}Z[Z.length-1]+=F,W+=V}if(G.trim!==!1)Z=Z.map((Y)=>MG5(Y));let k=Z.join(`
|
|
29
29
|
`),B=!1;for(let Y=0;Y<k.length;Y++){let F=k[Y];if(J+=F,!B){if(B=F>="\uD800"&&F<="\uDBFF",B)continue}else B=!1;if(F===xu||F===mQ2){SQ2.lastIndex=Y+1;let X=SQ2.exec(k)?.groups;if(X?.code!==void 0){let H=Number.parseFloat(X.code);Q=H===jG5?void 0:H}else if(X?.uri!==void 0)U=X.uri.length===0?void 0:X.uri}if(k[Y+1]===`
|
|
30
30
|
`){if(U)J+=fQ2("");let V=Q?hQ2(Q):void 0;if(Q&&V)J+=gQ2(V)}else if(F===`
|
package/package.json
CHANGED