oh-my-agent 10.19.0 → 10.19.2

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 (2) hide show
  1. package/bin/cli.js +2 -2
  2. 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 h4.env){let z=$.attributeName();if(this.getOptionValue(z)===void 0||["default","config","env"].includes(this.getOptionValueSource(z)))if($.required||$.optional)this.emit(`optionEnv:${$.name()}`,h4.env[$.envVar]);else this.emit(`optionEnv:${$.name()}`)}})}_parseOptionsImplied(){let $=new Ek5(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((V)=>V.negate&&Z===V.attributeName()),W=this.options.find((V)=>!V.negate&&Z===V.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=gW2($,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=gW2($,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 Rk5(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=GG.basename($,GG.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(h4.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 hW2($){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(h4.env.NO_COLOR||h4.env.FORCE_COLOR==="0"||h4.env.FORCE_COLOR==="false")return!1;if(h4.env.FORCE_COLOR||h4.env.CLICOLOR_FORCE!==void 0)return!0;return}wk5.Command=mf;wk5.useColor=ff});var lW2=P((_k5)=>{var{Argument:mW2}=fR(),{Command:cf}=fW2(),{CommanderError:Tk5,InvalidArgumentError:cW2}=BF(),{Help:bk5}=yf(),{Option:iW2}=uf();_k5.program=new cf;_k5.createCommand=($)=>new cf($);_k5.createOption=($,z)=>new iW2($,z);_k5.createArgument=($,z)=>new mW2($,z);_k5.Command=cf;_k5.Option=iW2;_k5.Argument=mW2;_k5.Help=bk5;_k5.CommanderError=Tk5;_k5.InvalidArgumentError=cW2;_k5.InvalidOptionArgumentError=cW2});var pW2,Ja4,Qa4,Ka4,Za4,Ua4,Wa4,Ya4,cR,Va4,Ba4,Xa4;var lf=k(()=>{pW2=E2(lW2(),1),{program:Ja4,createCommand:Qa4,createArgument:Ka4,createOption:Za4,CommanderError:Ua4,InvalidArgumentError:Wa4,InvalidOptionArgumentError:Ya4,Command:cR,Argument:Va4,Option:Ba4,Help:Xa4}=pW2.default});var iR;var pf=k(()=>{iR={name:"oh-my-agent",version:"10.19.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.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.5.4","@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 iY from"node:fs";import{homedir as dk5}from"node:os";import*as XF from"node:path";function nW2($){if(lR)throw Error("install context already set in this process");lR=$}function aW2(){if(lR===null)throw Error("install context not set — entry point must call setInstallContext()");return lR}function lY(){return aW2().installRoot}function Q6(){return aW2().mode}function pY(){try{return Q6()}catch{return"project"}}function oW2($){let z=process.env.OMA_HOME,G=$.global===!0||process.env.OMA_INSTALL_GLOBAL==="1";if(z!==void 0&&z!=="")return nk5(z),{installRoot:z,mode:G?"global":"project"};if(G)return{installRoot:dk5(),mode:"global"};return{installRoot:process.cwd(),mode:"project"}}function nk5($){if(!XF.isAbsolute($))throw Error("OMA_HOME must be absolute path");for(let G of dW2)if($===G||$.startsWith(G+XF.sep))throw Error(`OMA_HOME=${$} is forbidden (system path ${G})`);let z;try{z=iY.realpathSync($)}catch(G){let J=G instanceof Error?G.message:String(G);throw Error(`OMA_HOME=${$}: ${J}`)}for(let G of dW2)if(z===G||z.startsWith(G+XF.sep))throw Error(`OMA_HOME=${z} is forbidden (system path ${G})`);try{iY.accessSync(z,iY.constants.W_OK)}catch{throw Error(`OMA_HOME=${z} is not writable`)}}var lR=null,dW2;var JG=k(()=>{dW2=["/etc","/usr","/bin","/boot","/sys","/proc"]});import{join as ak5}from"node:path";function HF($){return $.endsWith("/")?$:`${$}/`}function T7($,z){let G=z.split("/").filter((J)=>J.length>0);return ak5($,...G)}var T0=".agents",pR,b3,_J,rW2,sW2,dR,ok5=".antigravitycli",tW2,rk5=".migration-backup",sk5,tk5,ek5,$A5,zA5,df;var _3=k(()=>{pR=`${T0}/skills`,b3=`${T0}/results`,_J=`${T0}/state`,rW2=`${_J}/sessions`,sW2=`${_J}/retry`,dR=`${_J}/archive`,tW2=`${T0}/backup`;sk5=HF(b3),tk5=HF(_J),ek5=HF(ok5),$A5=HF(tW2),zA5=HF(rk5),df=[ek5,sk5,tk5,$A5,zA5]});var c1="first-fluke/oh-my-agent",f4,b0,nR,GA5,JA5,QG,z3;var _$=k(()=>{_3();f4=pR,b0=["antigravity","claude","codex","commandcode","cursor","grok","kimi","kiro","qwen"],nR=["pi","opencode"],GA5=["copilot","hermes"],JA5=["zcode"],QG=[...b0,...GA5,...JA5].sort(),z3={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 KY2={};z5(KY2,{runAction:()=>P2,resolveJsonMode:()=>A5,printDescribe:()=>FA5,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(!qF.includes(J))throw Error(`Invalid output format: ${G}. Expected one of ${qF.join(", ")}`);return J})}function QA5($){if($?.json)return"json";let z=$?.output?.trim().toLowerCase();if(z&&qF.includes(z))return z;if(process.env[zY2]?.trim().toLowerCase()==="json")return"json";return"text"}function A5($){return QA5($)==="json"}function GY2($){let z=$.at(-1);return z instanceof cR?z:null}function KA5($){let z=GY2($);if(z)return z.opts();let G=$.at(-1);return G&&typeof G==="object"?G:{}}function ZA5($){if($ instanceof Error)return $.message;return String($)}function xJ($){throw Error($)}function af($,z){for(let G of $){let J=G.charCodeAt(0);if(J>=0&&J<=31||J===127)xJ(`${z} must not contain control characters`)}}function UA5($,z){if(af($,z),/[?#%]/.test($))xJ(`${z} must not contain ?, #, or %`);if($.includes(".."))xJ(`${z} must not contain '..'`)}function WA5($,z){af($,z);try{new URL($)}catch{xJ(`${z} must be a valid absolute URL`)}}function nf($,z,G="text"){if(typeof $==="string"){if(G==="identifier"){UA5($,z);return}if(G==="url"){WA5($,z);return}af($,z);return}if(Array.isArray($))for(let[J,Q]of $.entries())nf(Q,`${z}[${J}]`,G)}function $Y2($){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 YA5($){let z=$.vendor;if(typeof z==="string"){if(z.split(",").map((K)=>K.trim()).filter(Boolean).filter((K)=>!QG.includes(K)).length>0)xJ(`vendor must be one of ${QG.join(", ")}`)}let G=$.output;if(typeof G==="string"&&!qF.includes(G))xJ(`output must be one of ${qF.join(", ")}`)}function VA5($){let z=$.processedArgs??$.args??[];($.registeredArguments??[]).forEach((Q,K)=>{let Z=Q.name?.()||String(K),U=z[K];if(nf(U,Z,$Y2(Z)),Z==="agent-type"&&typeof U==="string"&&!eW2.includes(U))xJ(`agent-type must be one of ${eW2.join(", ")}`)});let J=$.opts();YA5(J);for(let[Q,K]of Object.entries(J))nf(K,Q,$Y2(Q))}function BA5($){return($.registeredArguments??[]).map((z)=>({name:z.name?.()||"",required:!!z.required,variadic:!!z.variadic}))}function XA5($){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 JY2($){let z=[],G=$;while(G?.parent)z.unshift(G.name()),G=G.parent;return z.join(" ")}function HA5($){return $.options.some((z)=>z.long==="--json"||z.long==="--output")}function qA5($){return $.options.some((z)=>z.long==="--dry-run")}function QY2($){return{name:$.name(),path:JY2($),summary:$.summary()||void 0,description:$.description(),arguments:BA5($),options:XA5($),supportsJsonOutput:HA5($),supportsDryRun:qA5($),subcommands:$.commands.map((z)=>QY2(z))}}function LA5($,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||JY2(Q)===G)return Q;J.push(...Q.commands)}return null}function FA5($,z){let G=LA5($,z);if(!G)xJ(`Unknown command: ${z}`);let J={name:$.name(),version:$.version(),description:$.description(),env:{[zY2]:"Set to json to force machine-readable output on commands that support it."},command:QY2(G)};console.log(JSON.stringify(J,null,2))}function P2($,z={}){return async(...G)=>{let J=GY2(G);if(J&&G.length>=2)G[G.length-2]=J.optsWithGlobals();let Q=KA5(G);try{if(J)VA5(J);await $(...G)}catch(K){let Z=ZA5(K);if(z.supportsJsonOutput&&A5(Q))console.log(JSON.stringify({error:Z},null,2));else console.error(Z);process.exitCode=1}}}var zY2="OH_MY_AG_OUTPUT_FORMAT",qF,eW2;var m4=k(()=>{lf();_$();qF=["text","json"],eW2=["backend","frontend","mobile","qa","debug","pm"]});var ZY2,UY2=($)=>{return $===12288||$>=65281&&$<=65376||$>=65504&&$<=65510},WY2=($)=>{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 YY2=k(()=>{ZY2=(()=>{let $=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return(z)=>{let G=0;$.lastIndex=0;while($.test(z))G+=1;return z.length-G}})()});var NA5,kA5,VY2,AA5,BY2,jA5,MA5,OA5,XY2=($,z={},G={})=>{let J=z.limit??1/0,Q=z.ellipsis??"",K=z?.ellipsisWidth??(Q?XY2(Q,OA5,G).width:0),Z=0,U=G.controlWidth??0,Y=G.tabWidth??8,W=G.emojiWidth??2,V=2,B=G.regularWidth??1,H=G.wideWidth??2,X=[[jA5,B],[NA5,0],[kA5,U],[AA5,Y],[BY2,W],[VY2,H]],q=0,L=0,F=$.length,N=0,A=!1,j=F,M=Math.max(0,J-K),O=0,R=0,I=0,D=0;$:while(!0){if(R>O||L>=F&&L>q){let v=$.slice(O,R)||$.slice(q,L);N=0;for(let C of v.replaceAll(MA5,"")){let _=C.codePointAt(0)||0;if(UY2(_))D=2;else if(WY2(_))D=H;else D=B;if(I+D>M)j=Math.min(j,Math.max(O,q)+N);if(I+D>J){A=!0;break $}N+=C.length,I+=D}O=R=0}if(L>=F)break $;for(let v=0,C=X.length;v<C;v++){let[_,g]=X[v];if(_.lastIndex=L,_.test($)){if(N=_===VY2?ZY2($.slice(L,_.lastIndex)):_===BY2?1:_.lastIndex-L,D=N*g,I+D>M)j=Math.min(j,L+Math.floor((M-I)/g));if(I+D>J){A=!0;break $}I+=D,O=q,R=L,L=q=_.lastIndex;continue $}}L+=1}return{width:A?M:I,index:A?j:F,truncated:A,ellipsed:A&&J>=K}},HY2;var qY2=k(()=>{YY2();NA5=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,kA5=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,VY2=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,AA5=/\t{1,1000}/y,BY2=/[\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,jA5=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,MA5=/\p{M}+/gu,OA5={limit:1/0,ellipsis:""},HY2=XY2});var IA5,RA5=($,z={})=>{return HY2($,IA5,z).width},w6;var of=k(()=>{qY2();IA5={limit:1/0,ellipsis:"",ellipsisWidth:0},w6=RA5});function x$($,z,G){return String($).normalize().split(PA5).map((J)=>wA5(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 hW2($){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(h4.env.NO_COLOR||h4.env.FORCE_COLOR==="0"||h4.env.FORCE_COLOR==="false")return!1;if(h4.env.FORCE_COLOR||h4.env.CLICOLOR_FORCE!==void 0)return!0;return}wk5.Command=mf;wk5.useColor=ff});var lW2=P((_k5)=>{var{Argument:mW2}=fR(),{Command:cf}=fW2(),{CommanderError:Tk5,InvalidArgumentError:cW2}=BF(),{Help:bk5}=yf(),{Option:iW2}=uf();_k5.program=new cf;_k5.createCommand=($)=>new cf($);_k5.createOption=($,z)=>new iW2($,z);_k5.createArgument=($,z)=>new mW2($,z);_k5.Command=cf;_k5.Option=iW2;_k5.Argument=mW2;_k5.Help=bk5;_k5.CommanderError=Tk5;_k5.InvalidArgumentError=cW2;_k5.InvalidOptionArgumentError=cW2});var pW2,Ja4,Qa4,Ka4,Za4,Ua4,Wa4,Ya4,cR,Va4,Ba4,Xa4;var lf=k(()=>{pW2=E2(lW2(),1),{program:Ja4,createCommand:Qa4,createArgument:Ka4,createOption:Za4,CommanderError:Ua4,InvalidArgumentError:Wa4,InvalidOptionArgumentError:Ya4,Command:cR,Argument:Va4,Option:Ba4,Help:Xa4}=pW2.default});var iR;var pf=k(()=>{iR={name:"oh-my-agent",version:"10.19.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",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.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.5.4","@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 iY from"node:fs";import{homedir as dk5}from"node:os";import*as XF from"node:path";function nW2($){if(lR)throw Error("install context already set in this process");lR=$}function aW2(){if(lR===null)throw Error("install context not set — entry point must call setInstallContext()");return lR}function lY(){return aW2().installRoot}function Q6(){return aW2().mode}function pY(){try{return Q6()}catch{return"project"}}function oW2($){let z=process.env.OMA_HOME,G=$.global===!0||process.env.OMA_INSTALL_GLOBAL==="1";if(z!==void 0&&z!=="")return nk5(z),{installRoot:z,mode:G?"global":"project"};if(G)return{installRoot:dk5(),mode:"global"};return{installRoot:process.cwd(),mode:"project"}}function nk5($){if(!XF.isAbsolute($))throw Error("OMA_HOME must be absolute path");for(let G of dW2)if($===G||$.startsWith(G+XF.sep))throw Error(`OMA_HOME=${$} is forbidden (system path ${G})`);let z;try{z=iY.realpathSync($)}catch(G){let J=G instanceof Error?G.message:String(G);throw Error(`OMA_HOME=${$}: ${J}`)}for(let G of dW2)if(z===G||z.startsWith(G+XF.sep))throw Error(`OMA_HOME=${z} is forbidden (system path ${G})`);try{iY.accessSync(z,iY.constants.W_OK)}catch{throw Error(`OMA_HOME=${z} is not writable`)}}var lR=null,dW2;var JG=k(()=>{dW2=["/etc","/usr","/bin","/boot","/sys","/proc"]});import{join as ak5}from"node:path";function HF($){return $.endsWith("/")?$:`${$}/`}function T7($,z){let G=z.split("/").filter((J)=>J.length>0);return ak5($,...G)}var T0=".agents",pR,b3,_J,rW2,sW2,dR,ok5=".antigravitycli",tW2,rk5=".migration-backup",sk5,tk5,ek5,$A5,zA5,df;var _3=k(()=>{pR=`${T0}/skills`,b3=`${T0}/results`,_J=`${T0}/state`,rW2=`${_J}/sessions`,sW2=`${_J}/retry`,dR=`${_J}/archive`,tW2=`${T0}/backup`;sk5=HF(b3),tk5=HF(_J),ek5=HF(ok5),$A5=HF(tW2),zA5=HF(rk5),df=[ek5,sk5,tk5,$A5,zA5]});var c1="first-fluke/oh-my-agent",f4,b0,nR,GA5,JA5,QG,z3;var _$=k(()=>{_3();f4=pR,b0=["antigravity","claude","codex","commandcode","cursor","grok","kimi","kiro","qwen"],nR=["pi","opencode"],GA5=["copilot","hermes"],JA5=["zcode"],QG=[...b0,...GA5,...JA5].sort(),z3={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 KY2={};z5(KY2,{runAction:()=>P2,resolveJsonMode:()=>A5,printDescribe:()=>FA5,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(!qF.includes(J))throw Error(`Invalid output format: ${G}. Expected one of ${qF.join(", ")}`);return J})}function QA5($){if($?.json)return"json";let z=$?.output?.trim().toLowerCase();if(z&&qF.includes(z))return z;if(process.env[zY2]?.trim().toLowerCase()==="json")return"json";return"text"}function A5($){return QA5($)==="json"}function GY2($){let z=$.at(-1);return z instanceof cR?z:null}function KA5($){let z=GY2($);if(z)return z.opts();let G=$.at(-1);return G&&typeof G==="object"?G:{}}function ZA5($){if($ instanceof Error)return $.message;return String($)}function xJ($){throw Error($)}function af($,z){for(let G of $){let J=G.charCodeAt(0);if(J>=0&&J<=31||J===127)xJ(`${z} must not contain control characters`)}}function UA5($,z){if(af($,z),/[?#%]/.test($))xJ(`${z} must not contain ?, #, or %`);if($.includes(".."))xJ(`${z} must not contain '..'`)}function WA5($,z){af($,z);try{new URL($)}catch{xJ(`${z} must be a valid absolute URL`)}}function nf($,z,G="text"){if(typeof $==="string"){if(G==="identifier"){UA5($,z);return}if(G==="url"){WA5($,z);return}af($,z);return}if(Array.isArray($))for(let[J,Q]of $.entries())nf(Q,`${z}[${J}]`,G)}function $Y2($){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 YA5($){let z=$.vendor;if(typeof z==="string"){if(z.split(",").map((K)=>K.trim()).filter(Boolean).filter((K)=>!QG.includes(K)).length>0)xJ(`vendor must be one of ${QG.join(", ")}`)}let G=$.output;if(typeof G==="string"&&!qF.includes(G))xJ(`output must be one of ${qF.join(", ")}`)}function VA5($){let z=$.processedArgs??$.args??[];($.registeredArguments??[]).forEach((Q,K)=>{let Z=Q.name?.()||String(K),U=z[K];if(nf(U,Z,$Y2(Z)),Z==="agent-type"&&typeof U==="string"&&!eW2.includes(U))xJ(`agent-type must be one of ${eW2.join(", ")}`)});let J=$.opts();YA5(J);for(let[Q,K]of Object.entries(J))nf(K,Q,$Y2(Q))}function BA5($){return($.registeredArguments??[]).map((z)=>({name:z.name?.()||"",required:!!z.required,variadic:!!z.variadic}))}function XA5($){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 JY2($){let z=[],G=$;while(G?.parent)z.unshift(G.name()),G=G.parent;return z.join(" ")}function HA5($){return $.options.some((z)=>z.long==="--json"||z.long==="--output")}function qA5($){return $.options.some((z)=>z.long==="--dry-run")}function QY2($){return{name:$.name(),path:JY2($),summary:$.summary()||void 0,description:$.description(),arguments:BA5($),options:XA5($),supportsJsonOutput:HA5($),supportsDryRun:qA5($),subcommands:$.commands.map((z)=>QY2(z))}}function LA5($,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||JY2(Q)===G)return Q;J.push(...Q.commands)}return null}function FA5($,z){let G=LA5($,z);if(!G)xJ(`Unknown command: ${z}`);let J={name:$.name(),version:$.version(),description:$.description(),env:{[zY2]:"Set to json to force machine-readable output on commands that support it."},command:QY2(G)};console.log(JSON.stringify(J,null,2))}function P2($,z={}){return async(...G)=>{let J=GY2(G);if(J&&G.length>=2)G[G.length-2]=J.optsWithGlobals();let Q=KA5(G);try{if(J)VA5(J);await $(...G)}catch(K){let Z=ZA5(K);if(z.supportsJsonOutput&&A5(Q))console.log(JSON.stringify({error:Z},null,2));else console.error(Z);process.exitCode=1}}}var zY2="OH_MY_AG_OUTPUT_FORMAT",qF,eW2;var m4=k(()=>{lf();_$();qF=["text","json"],eW2=["backend","frontend","mobile","qa","debug","pm"]});var ZY2,UY2=($)=>{return $===12288||$>=65281&&$<=65376||$>=65504&&$<=65510},WY2=($)=>{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 YY2=k(()=>{ZY2=(()=>{let $=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;return(z)=>{let G=0;$.lastIndex=0;while($.test(z))G+=1;return z.length-G}})()});var NA5,kA5,VY2,AA5,BY2,jA5,MA5,OA5,XY2=($,z={},G={})=>{let J=z.limit??1/0,Q=z.ellipsis??"",K=z?.ellipsisWidth??(Q?XY2(Q,OA5,G).width:0),Z=0,U=G.controlWidth??0,Y=G.tabWidth??8,W=G.emojiWidth??2,V=2,B=G.regularWidth??1,H=G.wideWidth??2,X=[[jA5,B],[NA5,0],[kA5,U],[AA5,Y],[BY2,W],[VY2,H]],q=0,L=0,F=$.length,N=0,A=!1,j=F,M=Math.max(0,J-K),O=0,R=0,I=0,D=0;$:while(!0){if(R>O||L>=F&&L>q){let v=$.slice(O,R)||$.slice(q,L);N=0;for(let C of v.replaceAll(MA5,"")){let _=C.codePointAt(0)||0;if(UY2(_))D=2;else if(WY2(_))D=H;else D=B;if(I+D>M)j=Math.min(j,Math.max(O,q)+N);if(I+D>J){A=!0;break $}N+=C.length,I+=D}O=R=0}if(L>=F)break $;for(let v=0,C=X.length;v<C;v++){let[_,g]=X[v];if(_.lastIndex=L,_.test($)){if(N=_===VY2?ZY2($.slice(L,_.lastIndex)):_===BY2?1:_.lastIndex-L,D=N*g,I+D>M)j=Math.min(j,L+Math.floor((M-I)/g));if(I+D>J){A=!0;break $}I+=D,O=q,R=L,L=q=_.lastIndex;continue $}}L+=1}return{width:A?M:I,index:A?j:F,truncated:A,ellipsed:A&&J>=K}},HY2;var qY2=k(()=>{YY2();NA5=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]|\u001b\]8;[^;]*;.*?(?:\u0007|\u001b\u005c)/y,kA5=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,VY2=/(?:(?![\uFF61-\uFF9F\uFF00-\uFFEF])[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}\p{Script=Tangut}]){1,1000}/yu,AA5=/\t{1,1000}/y,BY2=/[\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,jA5=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,MA5=/\p{M}+/gu,OA5={limit:1/0,ellipsis:""},HY2=XY2});var IA5,RA5=($,z={})=>{return HY2($,IA5,z).width},w6;var of=k(()=>{qY2();IA5={limit:1/0,ellipsis:"",ellipsisWidth:0},w6=RA5});function x$($,z,G){return String($).normalize().split(PA5).map((J)=>wA5(J,z,G)).join(`
28
28
  `)}var aR="\x1B",AY2="›",DA5=39,sf="\x07",jY2="[",vA5="]",MY2="m",tf,LY2,FY2=($)=>{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},NY2=($)=>`${aR}${jY2}${$}${MY2}`,kY2=($)=>`${aR}${tf}${$}${sf}`,rf=($,z,G)=>{let J=z[Symbol.iterator](),Q=!1,K=!1,Z=$.at(-1),U=Z===void 0?0:w6(Z),Y=J.next(),W=J.next(),V=0;while(!Y.done){let B=Y.value,H=w6(B);if(U+H<=G)$[$.length-1]+=B;else $.push(B),U=0;if(B===aR||B===AY2)Q=!0,K=z.startsWith(tf,V+1);if(Q){if(K){if(B===sf)Q=!1,K=!1}else if(B===MY2)Q=!1}else if(U+=H,U===G&&!W.done)$.push(""),U=0;Y=W,W=J.next(),V+=B.length}if(Z=$.at(-1),!U&&Z!==void 0&&Z.length&&$.length>1)$[$.length-2]+=$.pop()},EA5=($)=>{let z=$.split(" "),G=z.length;while(G){if(w6(z[G-1]))break;G--}if(G===z.length)return $;return z.slice(0,G).join(" ")+z.slice(G).join("")},wA5=($,z,G={})=>{if(G.trim!==!1&&$.trim()==="")return"";let J="",Q,K,Z=$.split(" "),U=[""],Y=0;for(let B=0;B<Z.length;B++){let H=Z[B];if(G.trim!==!1){let q=U.at(-1)??"",L=q.trimStart();if(q.length!==L.length)U[U.length-1]=L,Y=w6(L)}if(B!==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=w6(H);if(G.hard&&X>z){let q=z-Y,L=1+Math.floor((X-q-1)/z);if(Math.floor((X-1)/z)<L)U.push("");rf(U,H,z),Y=w6(U.at(-1)??"");continue}if(Y+X>z&&Y&&X){if(G.wordWrap===!1&&Y<z){rf(U,H,z),Y=w6(U.at(-1)??"");continue}U.push(""),Y=0}if(Y+X>z&&G.wordWrap===!1){rf(U,H,z),Y=w6(U.at(-1)??"");continue}U[U.length-1]+=H,Y+=X}if(G.trim!==!1)U=U.map((B)=>EA5(B));let W=U.join(`
29
29
  `),V=!1;for(let B=0;B<W.length;B++){let H=W[B];if(J+=H,!V){if(V=H>="\uD800"&&H<="\uDBFF",V)continue}else V=!1;if(H===aR||H===AY2){LY2.lastIndex=B+1;let q=LY2.exec(W)?.groups;if(q?.code!==void 0){let L=Number.parseFloat(q.code);Q=L===DA5?void 0:L}else if(q?.uri!==void 0)K=q.uri.length===0?void 0:q.uri}if(W[B+1]===`
30
30
  `){if(K)J+=kY2("");let X=Q?FY2(Q):void 0;if(Q&&X)J+=NY2(X)}else if(H===`
@@ -1423,7 +1423,7 @@ ${G.prunedSerena.map((Q)=>` ${Q}`).join(`
1423
1423
  `)}async function Nh2($,z){if($.kind!=="prompt")return null;let{prompt:G}=$,{vendor:J,cwd:Q,sid:K="unknown"}=z;if(!G.trim())return null;if(Yb(G))return null;if(J==="claude"){let X=Q74(G);if(X){let q=Z74(X,Q);if(q)return{type:"context",additionalContext:U74(q)}}}if(J74(G))return null;if(G74(Q,K))return null;let Z=a34(Q),U=n34(),Y=W74(G),W=s34(Q),V=t34(Y,Z,W,U);if(V.length===0)return null;let{fresh:B,nextState:H}=z74(V,Q,K);if(B.length===0)return null;return $74(Q,H),{type:"context",additionalContext:Y74(B)}}var p34=3,qh2=3600000,d34;var kh2=k(()=>{lQ();Wb();AX();Qj();oU();d34=["ko","ja","zh"]});import{mkdirSync as B74,writeFileSync as X74}from"node:fs";import{join as jh2}from"node:path";function q74(){let $=process.env.OMA_REDACT_PATTERNS;if(!$)return[];let z=[];for(let G of $.split(",")){let J=G.trim();if(!J)continue;try{z.push(new RegExp(J,"g"))}catch{}}return z}function w42($,z=[]){let G=$;for(let J of[...H74,...q74(),...z])G=G.replace(J,(...Q)=>{let K=Q[1],Z=Q[2];if(typeof K==="string"&&typeof Z==="string")return`${K}${Z}${Ah2}`;return Ah2});return G}function L74($,z){return jh2(jX($,z),"inject-log")}function F74($){return`${$.replace(/[:.]/g,"-")}.md`}function N74($){let z=$.facts.length===0?"- (none)":$.facts.map((G)=>{let J=G.source?` (${G.source})`:"",Q=typeof G.score==="number"?` [${G.score}]`:"";return`- ${w42(G.text)}${J}${Q}`}).join(`
1424
1424
  `);return[`# OMA Inject Log ${$.boundaryAt}`,"",`- from: ${$.fromVendor??"(new)"} / ${$.fromVendorSid??"(none)"}`,`- to: ${$.toVendor} / ${$.toVendorSid}`,`- recall query: ${$.recallQuery?w42($.recallQuery):"(none)"}`,`- facts: ${$.facts.length}`,"","## Facts",z,"","## Rendered","```",w42($.rendered),"```",""].join(`
1425
1425
  `)}function Mh2($,z,G){try{let J=L74($,z);B74(J,{recursive:!0,mode:448});let Q=jh2(J,F74(G.boundaryAt));return X74(Q,N74(G),{encoding:"utf-8",mode:384}),Q}catch{return null}}var H74,Ah2="[REDACTED]";var Oh2=k(()=>{Uj();H74=[/sk-[A-Za-z0-9]{16,}/g,/xox[baprs]-[A-Za-z0-9-]{10,}/g,/gh[pousr]_[A-Za-z0-9]{20,}/g,/AKIA[0-9A-Z]{16}/g,/eyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}/g,/\bBearer\s+[A-Za-z0-9._-]{12,}/gi,/(api[_-]?key|secret|token|password|passwd|access[_-]?key)(["']?\s*[:=]\s*["']?)[A-Za-z0-9._\-/+]{8,}/gi]});function k74($){if($.length===0)return["- none"];return $.map((z)=>`- ${z.ts} ${z.kind}`)}function A74($){if($.length===0)return["- none"];return $.map((z)=>{let G=z.source?` (${z.source})`:"";return`- ${z.text}${G}`})}function Ih2($){let z=$.facts??[];return["[OMA STATE SNAPSHOT]",`sid: ${$.sid}`,`reason: ${$.reason}`,"recent events:",...k74($.recentEvents),"memory facts:",...A74(z)].join(`
1426
- `)}function Rh2($){switch($.vendor){case"claude":return Ih2($);case"antigravity":case"codex":case"commandcode":case"cursor":case"grok":case"kimi":case"kiro":case"pi":case"qwen":return Ih2($)}}import{basename as j74}from"node:path";function M74($,z,G){let J=[],Q=(G??"").trim();if(Q)J.push(Q.slice(0,300));J.push(j74($));for(let K of[...z].reverse()){let Z=K.payload??{},U=(Y)=>{let W=Z[Y];if(typeof W==="string"&&W.trim())J.push(W.trim())};if(K.kind==="decision.made")U("subject"),U("decision");else if(K.kind==="blocker.raised")U("summary");else if(K.kind==="workflow.phase")U("phase")}return J.slice(0,8).join(" ").slice(0,400).trim()}async function O74($,z,G,J,Q=!1){let K=Kj($),Z=K.lastSession,U=!Z||Z.vendor!==z||Z.vendorSid!==G,Y=z==="kiro"&&G==="unknown";if(!U&&!Y&&!Q)return Zj($,z,G),null;let W=q42(K);if(!W)return Zj($,z,G),null;await A42($,W,{kind:"boundary",vendor:z,vendorSid:G,payload:{reason:!U?Y?"stateless-vendor-turn":"post-compact-rehydration":Z?"vendor-session-transition":"session-created",fromVendor:Z?.vendor??null,fromVendorSid:Z?.vendorSid??null,toVendor:z,toVendorSid:G,previousSid:W}}),Zj($,z,G);let V=Hb($,W).slice(-10),B=M74($,V,J),H=B?await Tg2(B,5):[],X=Rh2({vendor:z,sid:W,reason:"vendor/session boundary",recentEvents:V,facts:H});if(Mh2($,W,{boundaryAt:new Date().toISOString(),fromVendor:Z?.vendor??null,fromVendorSid:Z?.vendorSid??null,toVendor:z,toVendorSid:G,recallQuery:B||null,facts:H,rendered:X}),z==="grok")jg2($,X);return X}async function Dh2($,z){if($.kind!=="prompt")return null;let{vendor:G,cwd:J,sid:Q="unknown"}=z,K=await O74(J,G,Q,$.prompt,$.source==="compact");if(!K)return null;return{type:"context",additionalContext:K}}var vh2=k(()=>{N42();lQ();W42();Oh2();AX();M42();Uj();oU()});import{existsSync as R74,readFileSync as mb1}from"node:fs";import{join as P42}from"node:path";async function Eh2($,z){if($.kind!=="pre_tool")return null;let{toolName:G,toolInput:J,cwd:Q}=$,{vendor:K}=z;if(G!=="Bash"&&G!=="run_shell_command"&&G!=="Shell"&&G!=="execute_bash")return null;let Z=J.command;if(!Z)return null;if(!D74.some((H)=>H.test(Z)))return null;if(v74.some((H)=>H.test(Z)))return null;let W=[Og2(K),P42(".opencode","plugins","oma"),P42(".agents","hooks","core")].map((H)=>P42(Q,H,"filter-test-output.sh")).find((H)=>R74(H));if(!W)return null;let V=`set -o pipefail; (${Z}) 2>&1 | bash "${W}"`;return{type:"mutate",updatedInput:{...J,command:V}}}var D74,v74;var wh2=k(()=>{oU();D74=[/\bvitest\b/,/\bjest\b/,/\bmocha\b/,/\bnpm\s+(run\s+)?test\b/,/\bbun\s+(run\s+)?test\b/,/\byarn\s+test\b/,/\bpnpm\s+(run\s+)?test\b/,/\bpytest\b/,/\bpython\s+-m\s+unittest\b/,/\bgo\s+test\b/,/\bcargo\s+test\b/,/\bflutter\s+test\b/,/\bdart\s+test\b/,/\bswift\s+test\b/,/\bdotnet\s+test\b/,/\b(gradle|gradlew|\.\/gradlew)\s+test\b/,/\bmvn\s+test\b/,/\brspec\b/,/\bmix\s+test\b/,/\bphpunit\b/],v74=[/\b(install|add|remove|uninstall|init)\b/,/\b(cat|head|tail|less|more|wc)\b.*\.(test|spec)\./]});var Ch2;var Ph2=k(()=>{Ch2={$schema:"./hook-variant.schema.json",vendor:"antigravity",hookDir:".agents/hooks/core",settingsFile:".agents/hooks.json",projectDirEnv:null,runtime:"bun",homeOnly:!0,events:{PreInvocation:[{hook:"keyword-detector.ts",timeout:5},{hook:"state-boundary.ts",timeout:5},{hook:"skill-injector.ts",timeout:3},{hook:"serena-primer.ts",timeout:3}],Stop:{hook:"persistent-mode.ts",timeout:5}},statusLine:{hook:"hud.ts"}}});var bh2;var Th2=k(()=>{bh2={$schema:"./hook-variant.schema.json",vendor:"claude",hookDir:".claude/hooks",settingsFile:".claude/settings.json",projectDirEnv:"CLAUDE_PROJECT_DIR",runtime:"bun",events:{SessionStart:[{hook:"serena-primer.ts",timeout:3},{hook:"state-boundary.ts",timeout:5}],UserPromptSubmit:[{hook:"keyword-detector.ts",timeout:2},{hook:"state-boundary.ts",timeout:4},{hook:"skill-injector.ts",timeout:2},{hook:"serena-primer.ts",timeout:2}],PreToolUse:{hook:"test-filter.ts",matcher:"Bash",timeout:5},Stop:{hook:"persistent-mode.ts",timeout:5}},statusLine:{hook:"hud.ts"},extra:{permissions:{allow:["Bash(bun run:*)","Bash(bunx tsx:*)","Bash(git add:*)","mcp__serena__*"]}}}});var xh2;var _h2=k(()=>{xh2={$schema:"./hook-variant.schema.json",vendor:"codex",hookDir:".codex/hooks",settingsFile:".codex/hooks.json",projectDirEnv:null,runtime:"bun",events:{UserPromptSubmit:[{hook:"keyword-detector.ts",timeout:5},{hook:"state-boundary.ts",timeout:5},{hook:"skill-injector.ts",timeout:3},{hook:"serena-primer.ts",timeout:3}],PreToolUse:{hook:"test-filter.ts",matcher:"Bash",timeout:5},Stop:{hook:"persistent-mode.ts",timeout:5}}}});var yh2;var Sh2=k(()=>{yh2={$schema:"./hook-variant.schema.json",vendor:"commandcode",hookDir:".commandcode/hooks",settingsFile:".commandcode/settings.json",projectDirEnv:null,runtime:"bun",events:{SessionStart:[{hook:"serena-primer.ts",timeout:3},{hook:"state-boundary.ts",timeout:5}],Stop:{hook:"persistent-mode.ts",timeout:5}}}});var gh2;var uh2=k(()=>{gh2={$schema:"./hook-variant.schema.json",vendor:"cursor",hookDir:".cursor/hooks",settingsFile:".cursor/hooks.json",projectDirEnv:null,runtime:"bun",flatHookEntries:!0,events:{beforeSubmitPrompt:[{hook:"keyword-detector.ts",timeout:5},{hook:"state-boundary.ts",timeout:5},{hook:"skill-injector.ts",timeout:3},{hook:"serena-primer.ts",timeout:3}],preToolUse:{hook:"test-filter.ts",matcher:"Shell",timeout:5},stop:{hook:"persistent-mode.ts",timeout:5,loopLimit:null},sessionStart:[{hook:"serena-primer.ts",timeout:3},{hook:"state-boundary.ts",timeout:5}]},extra:{version:1}}});var fh2;var hh2=k(()=>{fh2={$schema:"./hook-variant.schema.json",vendor:"grok",hookDir:".grok/hooks",settingsFile:".grok/hooks/oma-hooks.json",projectDirEnv:"GROK_WORKSPACE_ROOT",runtime:"bun",events:{UserPromptSubmit:[{hook:"keyword-detector.ts",timeout:5},{hook:"state-boundary.ts",timeout:5},{hook:"skill-injector.ts",timeout:3},{hook:"serena-primer.ts",timeout:3}],PreToolUse:{hook:"test-filter.ts",matcher:"Bash",timeout:5},Stop:{hook:"persistent-mode.ts",timeout:5}}}});var ch2;var mh2=k(()=>{ch2={$schema:"./hook-variant.schema.json",vendor:"kiro",hookDir:".kiro/hooks",settingsFile:".kiro/settings/cli.json",projectDirEnv:null,runtime:"bun",skipSettingsMerge:!0,events:{userPromptSubmit:[{hook:"keyword-detector.ts",timeout:5},{hook:"state-boundary.ts",timeout:5},{hook:"skill-injector.ts",timeout:3},{hook:"serena-primer.ts",timeout:3}],preToolUse:{hook:"test-filter.ts",matcher:"shell",timeout:5},stop:{hook:"persistent-mode.ts",timeout:5}}}});var lh2;var ih2=k(()=>{lh2={$schema:"./hook-variant.schema.json",vendor:"qwen",hookDir:".qwen/hooks",settingsFile:".qwen/settings.json",projectDirEnv:"QWEN_PROJECT_DIR",runtime:"bun",events:{UserPromptSubmit:[{hook:"keyword-detector.ts",timeout:5},{hook:"state-boundary.ts",timeout:5},{hook:"skill-injector.ts",timeout:3},{hook:"serena-primer.ts",timeout:3}],PreToolUse:{hook:"test-filter.ts",matcher:"run_shell_command",timeout:5},Stop:{hook:"persistent-mode.ts",timeout:5}},statusLine:{hook:"hud.ts"},statusLineKey:"ui",extra:{hooksConfig:{enabled:!0}}}});function C42($,z){switch(z){case"UserPromptSubmit":case"BeforeAgent":case"beforeSubmitPrompt":case"PreInvocation":case"userPromptSubmit":return"prompt";case"SessionStart":case"sessionStart":return $==="claude"||$==="commandcode"||$==="cursor"?"prompt":null;case"PreToolUse":case"BeforeTool":case"preToolUse":return"pre_tool";case"Stop":case"stop":case"AfterAgent":return"stop";default:return null}}function ph2($,z,G){let J=C42($,z);if(!J)return null;let Q={};if(G.trim())try{Q=JSON.parse(G)}catch{return null}let K=y74($,Q);switch(J){case"prompt":{let Z=u74($,Q),U=typeof Q.source==="string"?Q.source:void 0;return U?{kind:"prompt",prompt:Z,cwd:K,source:U}:{kind:"prompt",prompt:Z,cwd:K}}case"pre_tool":{let Z=g74($,Q),U=h74($,Q);return{kind:"pre_tool",toolName:Z,toolInput:U,cwd:K}}case"stop":{let Z=[Q.prompt_response,Q.response,Q.content,Q.message,Q.transcript].filter((U)=>typeof U==="string").join(" ");return{kind:"stop",cwd:K,responseText:Z||void 0}}}}function dh2($,z){if(!z.trim())return;let G;try{G=JSON.parse(z)}catch{return}if($==="antigravity"&&xG(G)){let Q=nU(G);if(Q)return Q}let J=G.sessionId??G.session_id??G.conversationId??G.conversation_id;return typeof J==="string"&&J.length>0?J:void 0}function y74($,z){switch($){case"antigravity":{if(xG(z))return Z42(z)||z.cwd||process.env.ANTIGRAVITY_PROJECT_DIR||process.env.AGY_PROJECT_DIR||process.env.GEMINI_PROJECT_DIR||"";return z.cwd||process.env.ANTIGRAVITY_PROJECT_DIR||process.env.AGY_PROJECT_DIR||process.env.GEMINI_PROJECT_DIR||""}case"grok":return process.env.GROK_WORKSPACE_ROOT||z.cwd||"";case"kiro":return process.env.KIRO_PROJECT_DIR||z.cwd||"";case"qwen":return process.env.QWEN_PROJECT_DIR||z.cwd||"";default:return z.cwd||""}}function u74($,z){if($==="antigravity"){let G=z.invocationNum;if(typeof G==="number"&&G>1)return"";if(xG(z))return Jj(z.transcriptPath)||"";return aU(z.prompt)}return aU(z.prompt)}function g74($,z){return z.tool_name??z.toolName??""}function h74($,z){return z.tool_input??z.toolInput??{}}var T42=k(()=>{lQ();AX()});function c74($){return $==="SessionStart"||$==="sessionStart"?"SessionStart":"UserPromptSubmit"}function i74($){return _42[$]??null}function l74($){return $>30?$:$*1000}function p74($,z){let G=i74($);if(!G)return process.stderr.write(`[oma hook] warn: no embedded variant route-table for vendor="${$}" — empty chain
1426
+ `)}function Rh2($){switch($.vendor){case"claude":return Ih2($);case"antigravity":case"codex":case"commandcode":case"cursor":case"grok":case"kimi":case"kiro":case"pi":case"qwen":return Ih2($)}}import{basename as j74}from"node:path";function M74($,z,G){let J=[],Q=(G??"").trim();if(Q)J.push(Q.slice(0,300));J.push(j74($));for(let K of[...z].reverse()){let Z=K.payload??{},U=(Y)=>{let W=Z[Y];if(typeof W==="string"&&W.trim())J.push(W.trim())};if(K.kind==="decision.made")U("subject"),U("decision");else if(K.kind==="blocker.raised")U("summary");else if(K.kind==="workflow.phase")U("phase")}return J.slice(0,8).join(" ").slice(0,400).trim()}async function O74($,z,G,J,Q=!1){let K=Kj($),Z=K.lastSession,U=!Z||Z.vendor!==z||Z.vendorSid!==G,Y=z==="kiro"&&G==="unknown";if(!U&&!Y&&!Q)return Zj($,z,G),null;let W=q42(K);if(!W)return Zj($,z,G),null;await A42($,W,{kind:"boundary",vendor:z,vendorSid:G,payload:{reason:!U?Y?"stateless-vendor-turn":"post-compact-rehydration":Z?"vendor-session-transition":"session-created",fromVendor:Z?.vendor??null,fromVendorSid:Z?.vendorSid??null,toVendor:z,toVendorSid:G,previousSid:W}}),Zj($,z,G);let V=Hb($,W).slice(-10),B=M74($,V,J),H=B?await Tg2(B,5):[],X=Rh2({vendor:z,sid:W,reason:"vendor/session boundary",recentEvents:V,facts:H});if(Mh2($,W,{boundaryAt:new Date().toISOString(),fromVendor:Z?.vendor??null,fromVendorSid:Z?.vendorSid??null,toVendor:z,toVendorSid:G,recallQuery:B||null,facts:H,rendered:X}),z==="grok")jg2($,X);return X}async function Dh2($,z){if($.kind!=="prompt")return null;let{vendor:G,cwd:J,sid:Q="unknown"}=z,K=await O74(J,G,Q,$.prompt,$.source==="compact");if(!K)return null;return{type:"context",additionalContext:K}}var vh2=k(()=>{N42();lQ();W42();Oh2();AX();M42();Uj();oU()});import{existsSync as R74,readFileSync as mb1}from"node:fs";import{join as P42}from"node:path";async function Eh2($,z){if($.kind!=="pre_tool")return null;let{toolName:G,toolInput:J,cwd:Q}=$,{vendor:K}=z;if(G!=="Bash"&&G!=="run_shell_command"&&G!=="Shell"&&G!=="execute_bash")return null;let Z=J.command;if(!Z)return null;if(process.platform==="win32")return null;if(Z.includes("filter-test-output.sh"))return null;if(!D74.some((H)=>H.test(Z)))return null;if(v74.some((H)=>H.test(Z)))return null;let W=[Og2(K),P42(".opencode","plugins","oma"),P42(".agents","hooks","core")].map((H)=>P42(Q,H,"filter-test-output.sh")).find((H)=>R74(H));if(!W)return null;let V=`set -o pipefail; (${Z}) 2>&1 | bash "${W}"`;return{type:"mutate",updatedInput:{...J,command:V}}}var D74,v74;var wh2=k(()=>{oU();D74=[/\bvitest\b/,/\bjest\b/,/\bmocha\b/,/\bnpm\s+(run\s+)?test\b/,/\bbun\s+(run\s+)?test\b/,/\byarn\s+test\b/,/\bpnpm\s+(run\s+)?test\b/,/\bpytest\b/,/\bpython\s+-m\s+unittest\b/,/\bgo\s+test\b/,/\bcargo\s+test\b/,/\bflutter\s+test\b/,/\bdart\s+test\b/,/\bswift\s+test\b/,/\bdotnet\s+test\b/,/\b(gradle|gradlew|\.\/gradlew)\s+test\b/,/\bmvn\s+test\b/,/\brspec\b/,/\bmix\s+test\b/,/\bphpunit\b/],v74=[/\b(install|add|remove|uninstall|init)\b/,/\b(cat|head|tail|less|more|wc)\b.*\.(test|spec)\./]});var Ch2;var Ph2=k(()=>{Ch2={$schema:"./hook-variant.schema.json",vendor:"antigravity",hookDir:".agents/hooks/core",settingsFile:".agents/hooks.json",projectDirEnv:null,runtime:"bun",homeOnly:!0,events:{PreInvocation:[{hook:"keyword-detector.ts",timeout:5},{hook:"state-boundary.ts",timeout:5},{hook:"skill-injector.ts",timeout:3},{hook:"serena-primer.ts",timeout:3}],Stop:{hook:"persistent-mode.ts",timeout:5}},statusLine:{hook:"hud.ts"}}});var bh2;var Th2=k(()=>{bh2={$schema:"./hook-variant.schema.json",vendor:"claude",hookDir:".claude/hooks",settingsFile:".claude/settings.json",projectDirEnv:"CLAUDE_PROJECT_DIR",runtime:"bun",events:{SessionStart:[{hook:"serena-primer.ts",timeout:3},{hook:"state-boundary.ts",timeout:5}],UserPromptSubmit:[{hook:"keyword-detector.ts",timeout:2},{hook:"state-boundary.ts",timeout:4},{hook:"skill-injector.ts",timeout:2},{hook:"serena-primer.ts",timeout:2}],PreToolUse:{hook:"test-filter.ts",matcher:"Bash",timeout:5},Stop:{hook:"persistent-mode.ts",timeout:5}},statusLine:{hook:"hud.ts"},extra:{permissions:{allow:["Bash(bun run:*)","Bash(bunx tsx:*)","Bash(git add:*)","mcp__serena__*"]}}}});var xh2;var _h2=k(()=>{xh2={$schema:"./hook-variant.schema.json",vendor:"codex",hookDir:".codex/hooks",settingsFile:".codex/hooks.json",projectDirEnv:null,runtime:"bun",events:{UserPromptSubmit:[{hook:"keyword-detector.ts",timeout:5},{hook:"state-boundary.ts",timeout:5},{hook:"skill-injector.ts",timeout:3},{hook:"serena-primer.ts",timeout:3}],PreToolUse:{hook:"test-filter.ts",matcher:"Bash",timeout:5},Stop:{hook:"persistent-mode.ts",timeout:5}}}});var yh2;var Sh2=k(()=>{yh2={$schema:"./hook-variant.schema.json",vendor:"commandcode",hookDir:".commandcode/hooks",settingsFile:".commandcode/settings.json",projectDirEnv:null,runtime:"bun",events:{SessionStart:[{hook:"serena-primer.ts",timeout:3},{hook:"state-boundary.ts",timeout:5}],Stop:{hook:"persistent-mode.ts",timeout:5}}}});var gh2;var uh2=k(()=>{gh2={$schema:"./hook-variant.schema.json",vendor:"cursor",hookDir:".cursor/hooks",settingsFile:".cursor/hooks.json",projectDirEnv:null,runtime:"bun",flatHookEntries:!0,events:{beforeSubmitPrompt:[{hook:"keyword-detector.ts",timeout:5},{hook:"state-boundary.ts",timeout:5},{hook:"skill-injector.ts",timeout:3},{hook:"serena-primer.ts",timeout:3}],preToolUse:{hook:"test-filter.ts",matcher:"Shell",timeout:5},stop:{hook:"persistent-mode.ts",timeout:5,loopLimit:null},sessionStart:[{hook:"serena-primer.ts",timeout:3},{hook:"state-boundary.ts",timeout:5}]},extra:{version:1}}});var fh2;var hh2=k(()=>{fh2={$schema:"./hook-variant.schema.json",vendor:"grok",hookDir:".grok/hooks",settingsFile:".grok/hooks/oma-hooks.json",projectDirEnv:"GROK_WORKSPACE_ROOT",runtime:"bun",events:{UserPromptSubmit:[{hook:"keyword-detector.ts",timeout:5},{hook:"state-boundary.ts",timeout:5},{hook:"skill-injector.ts",timeout:3},{hook:"serena-primer.ts",timeout:3}],PreToolUse:{hook:"test-filter.ts",matcher:"Bash",timeout:5},Stop:{hook:"persistent-mode.ts",timeout:5}}}});var ch2;var mh2=k(()=>{ch2={$schema:"./hook-variant.schema.json",vendor:"kiro",hookDir:".kiro/hooks",settingsFile:".kiro/settings/cli.json",projectDirEnv:null,runtime:"bun",skipSettingsMerge:!0,events:{userPromptSubmit:[{hook:"keyword-detector.ts",timeout:5},{hook:"state-boundary.ts",timeout:5},{hook:"skill-injector.ts",timeout:3},{hook:"serena-primer.ts",timeout:3}],preToolUse:{hook:"test-filter.ts",matcher:"shell",timeout:5},stop:{hook:"persistent-mode.ts",timeout:5}}}});var lh2;var ih2=k(()=>{lh2={$schema:"./hook-variant.schema.json",vendor:"qwen",hookDir:".qwen/hooks",settingsFile:".qwen/settings.json",projectDirEnv:"QWEN_PROJECT_DIR",runtime:"bun",events:{UserPromptSubmit:[{hook:"keyword-detector.ts",timeout:5},{hook:"state-boundary.ts",timeout:5},{hook:"skill-injector.ts",timeout:3},{hook:"serena-primer.ts",timeout:3}],PreToolUse:{hook:"test-filter.ts",matcher:"run_shell_command",timeout:5},Stop:{hook:"persistent-mode.ts",timeout:5}},statusLine:{hook:"hud.ts"},statusLineKey:"ui",extra:{hooksConfig:{enabled:!0}}}});function C42($,z){switch(z){case"UserPromptSubmit":case"BeforeAgent":case"beforeSubmitPrompt":case"PreInvocation":case"userPromptSubmit":return"prompt";case"SessionStart":case"sessionStart":return $==="claude"||$==="commandcode"||$==="cursor"?"prompt":null;case"PreToolUse":case"BeforeTool":case"preToolUse":return"pre_tool";case"Stop":case"stop":case"AfterAgent":return"stop";default:return null}}function ph2($,z,G){let J=C42($,z);if(!J)return null;let Q={};if(G.trim())try{Q=JSON.parse(G)}catch{return null}let K=y74($,Q);switch(J){case"prompt":{let Z=u74($,Q),U=typeof Q.source==="string"?Q.source:void 0;return U?{kind:"prompt",prompt:Z,cwd:K,source:U}:{kind:"prompt",prompt:Z,cwd:K}}case"pre_tool":{let Z=g74($,Q),U=h74($,Q);return{kind:"pre_tool",toolName:Z,toolInput:U,cwd:K}}case"stop":{let Z=[Q.prompt_response,Q.response,Q.content,Q.message,Q.transcript].filter((U)=>typeof U==="string").join(" ");return{kind:"stop",cwd:K,responseText:Z||void 0}}}}function dh2($,z){if(!z.trim())return;let G;try{G=JSON.parse(z)}catch{return}if($==="antigravity"&&xG(G)){let Q=nU(G);if(Q)return Q}let J=G.sessionId??G.session_id??G.conversationId??G.conversation_id;return typeof J==="string"&&J.length>0?J:void 0}function y74($,z){switch($){case"antigravity":{if(xG(z))return Z42(z)||z.cwd||process.env.ANTIGRAVITY_PROJECT_DIR||process.env.AGY_PROJECT_DIR||process.env.GEMINI_PROJECT_DIR||"";return z.cwd||process.env.ANTIGRAVITY_PROJECT_DIR||process.env.AGY_PROJECT_DIR||process.env.GEMINI_PROJECT_DIR||""}case"grok":return process.env.GROK_WORKSPACE_ROOT||z.cwd||"";case"kiro":return process.env.KIRO_PROJECT_DIR||z.cwd||"";case"qwen":return process.env.QWEN_PROJECT_DIR||z.cwd||"";default:return z.cwd||""}}function u74($,z){if($==="antigravity"){let G=z.invocationNum;if(typeof G==="number"&&G>1)return"";if(xG(z))return Jj(z.transcriptPath)||"";return aU(z.prompt)}return aU(z.prompt)}function g74($,z){return z.tool_name??z.toolName??""}function h74($,z){return z.tool_input??z.toolInput??{}}var T42=k(()=>{lQ();AX()});function c74($){return $==="SessionStart"||$==="sessionStart"?"SessionStart":"UserPromptSubmit"}function i74($){return _42[$]??null}function l74($){return $>30?$:$*1000}function p74($,z){let G=i74($);if(!G)return process.stderr.write(`[oma hook] warn: no embedded variant route-table for vendor="${$}" — empty chain
1427
1427
  `),[];let J=G.events[z];if(!J)return[];let Q=Array.isArray(J)?J:[J],K=[];for(let Z of Q){let U=Z.hook.replace(/\.ts$/,""),Y=f74[U];if(!Y){process.stderr.write(`[oma hook] warn: unknown handler id "${U}" in variant "${$}/${z}" — skipping
1428
1428
  `);continue}let W=Z.timeout!==void 0?l74(Z.timeout):m74;K.push({id:U,run:Y,timeoutMs:W})}return K}async function b42($,z,G){let J,Q=new Promise((K,Z)=>{J=setTimeout(()=>Z(Error(`handler "${$.id}" timed out after ${$.timeoutMs}ms`)),$.timeoutMs)});try{return await Promise.race([$.run(z,G),Q])}catch(K){let Z=K instanceof Error?K.message:String(K);return process.stderr.write(`[oma hook] warn: ${Z} — skipping (fail-open)
1429
1429
  `),null}finally{clearTimeout(J)}}async function d74($,z,G){let J=z.kind;if(J==="prompt"){let Q=[];for(let K of $){let Z=await b42(K,z,G);if(Z?.type==="context")Q.push(Z.additionalContext)}if(Q.length===0)return null;return{type:"context",additionalContext:Q.join(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-agent",
3
- "version": "10.19.0",
3
+ "version": "10.19.2",
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": {