oh-my-agent 10.18.0 → 10.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/bin/cli.js +13 -13
  2. package/package.json +2 -2
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.18.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.4.15","@types/better-sqlite3":"^7.6.13","@types/mdast":"^4.0.4","@types/node":"^24","@types/ws":"^8.18.1","@vitest/coverage-v8":"^4.1.4",typescript:"^6",vitest:"^4.0.18"},repository:{type:"git",url:"https://github.com/first-fluke/oh-my-agent"},homepage:"https://firstfluke.com/oh-my-agent",bugs:{url:"https://github.com/first-fluke/oh-my-agent/issues"},antigravity:{skillsPath:".agents/skills",skills:["oma-architecture","oma-brainstorm","oma-coordination","oma-pm","oma-frontend","oma-backend","oma-db","oma-mobile","oma-qa","oma-debug","oma-orchestrator","oma-dev-workflow","oma-tf-infra","oma-scm","oma-pdf","oma-recap"]}}});import*as 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.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.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===`
@@ -393,7 +393,7 @@ if [ -n "$__oma_bin" ]; then
393
393
  fi
394
394
  exit 0
395
395
  `}function pE(){let $=process.argv[1];if($)return R_5($);return process.execPath}var dE=k(()=>{mN()});import{cpSync as tL2,existsSync as eL2,mkdirSync as D_5,readdirSync as v_5}from"node:fs";import{join as nE}from"node:path";function iN($){let z=new Set;for(let G of Object.values($.events)){let J=Array.isArray(G)?G:[G];if(J.length===0)continue;if(J.every((Q)=>Q.hook==="hud.ts"))for(let Q of J)z.add(Q.hook);if(J.some((Q)=>Q.hook==="test-filter.ts"))z.add("filter-test-output.sh")}if($.statusLine)z.add($.statusLine.hook);return z}function FG($,z,G){let J=nE($,".agents","hooks","core");if(!eL2(J))return;D_5(z,{recursive:!0});for(let Q of v_5(z,{withFileTypes:!0}))f9(nE(z,Q.name));if(G){for(let Q of G){let K=nE(J,Q);if(!eL2(K))continue;tL2(K,nE(z,Q),{force:!0,dereference:!0})}return}tL2(J,z,{recursive:!0,force:!0,dereference:!0})}var aE=k(()=>{M1()});import{existsSync as E_5,mkdirSync as w_5,readFileSync as P_5}from"node:fs";import{dirname as C_5}from"node:path";function zF2($){if(!yN($))return!1;let z=$.hooks;if(!Array.isArray(z))return $F2($);return z.some((G)=>yN(G)&&$F2(G))}function $F2($){let z=typeof $.name==="string"?$.name:"",G=typeof $.command==="string"?$.command:"";if(z.startsWith("oma-hook-")||G.includes("oma-hook.sh"))return!0;let J=G.match(/\bbun\b.*?[/\\]([\w-]+)\.(ts|js)["']?\s*$/);if(J){let Q=J[1];if(Q&&T_5.has(Q))return!0}return!1}function GF2($,z){return[...(Array.isArray($)?$:[]).filter((Q)=>!zF2(Q)),...z]}function oE($,z,G){w_5(C_5($),{recursive:!0});let J={};if(E_5($))try{J=JSON.parse(P_5($,"utf-8"))}catch{}let Q=J.hooks||{},K={...Q};for(let[Z,U]of Object.entries(z))K[Z]=GF2(Q[Z],Array.isArray(U)?U:[U]);if(J.hooks=K,G)for(let[Z,U]of Object.entries(G)){let Y=J[Z];if(yN(U)&&yN(Y))J[Z]={...Y,...U};else J[Z]=U}x6($,J)}var T_5;var No=k(()=>{K3();LG();T_5=new Set(["keyword-detector","skill-injector","serena-primer","state-boundary","test-filter","persistent-mode","hud"])});import{mkdirSync as b_5,writeFileSync as JF2}from"node:fs";import{dirname as __5,join as pV}from"node:path";function QF2($,z,G){let J=pV(z,G.hookDir);FG($,J,iN(G));let Q=pV(J,Xo),K=pE();JF2(Q,cN(K),{mode:493});let Z={};for(let[Y,W]of Object.entries(G.events)){let V=Array.isArray(W)?W:[W];if(V.length===0)continue;let B=V.filter((L)=>L.hook!=="hud.ts"),H=B.length===0,X,q=V.find((L)=>L.matcher)?.matcher;if(H){if(X={hooks:V.map((F)=>({name:sL2(F.hook),type:"command",command:Bo(G,F.hook),timeout:F.timeout}))},q)X.matcher=q}else{let L=B.reduce((N,A)=>N+A.timeout,0)+5,F=Lo(G,Y,q);if(G.flatHookEntries){if(X={command:F,timeout:L},q)X.matcher=q;let N=V.find((A)=>A.loopLimit!==void 0);if(N)X.loop_limit=N.loopLimit}else if(X={hooks:[{name:`oma-hook-${Y}`,type:"command",command:F,timeout:L}]},q)X.matcher=q}Z[Y]=[X]}let U={};if(G.statusLine){let Y={type:"command",command:Bo(G,G.statusLine.hook)};if(G.statusLineKey)U[G.statusLineKey]={statusLine:Y};else U.statusLine=Y}if(G.extra)Object.assign(U,G.extra);if(G.vendor==="grok"){let Y=pV(z,G.settingsFile);b_5(__5(Y),{recursive:!0}),JF2(Y,`${JSON.stringify({hooks:Z},null,2)}
396
- `)}else if(G.skipSettingsMerge){if(Object.keys(U).length>0)oE(pV(z,G.settingsFile),{},U)}else oE(pV(z,G.settingsFile),Z,Object.keys(U).length>0?U:void 0);if(G.featureFlags)Yo(pV(z,G.featureFlags.file),G.featureFlags.section,G.featureFlags.flags)}var lN=k(()=>{Vo();mN();dE();aE();No();Vo();mN();dE();aE();No()});function h0($){if(!$||$.command!=="uvx")return!1;if(!Array.isArray($.args))return!1;return $.args.some((z)=>typeof z==="string"&&z.includes("git+https://github.com/oraios/serena"))}function U6($){return["start-mcp-server","--context",$,"--project-from-cwd",...KF2]}function H7($){if(!$||$.command!=="serena"||!Array.isArray($.args))return!0;let z=$.args.indexOf("--open-web-dashboard");return z!==-1&&String($.args[z+1]).toLowerCase()==="false"}function S6($){if($.command!=="serena"||!Array.isArray($.args))return $;if(H7($))return $;let z=$.args.indexOf("--open-web-dashboard");if(z!==-1){let G=[...$.args];return G[z+1]="false",{...$,args:G}}return{...$,args:[...$.args,...KF2]}}function ZF2($,z){if($.command!=="serena"||!Array.isArray($.args))return $;let G=$.args.indexOf("--context");if(G===-1)return{...$,args:[...$.args,"--context",z]};if($.args[G+1]===z)return $;let J=[...$.args];return J[G+1]=z,{...$,args:J}}function pN($){if($.command!=="serena"||!Array.isArray($.args))return $;if($.args.includes("--project-from-cwd"))return $;let z=$.args.indexOf("--project");if(z===-1)return{...$,args:[...$.args,"--project-from-cwd"]};let G=[...$.args],J=z+1<G.length&&!String(G[z+1]).startsWith("--");return G.splice(z,J?2:1,"--project-from-cwd"),{...$,args:G}}var y8,KF2;var u8=k(()=>{y8={command:"npx",args:["-y","chrome-devtools-mcp@latest","--no-usage-statistics","--isolated"]};KF2=["--open-web-dashboard","false"]});import{existsSync as x_5,readFileSync as S_5}from"node:fs";import{homedir as y_5}from"node:os";import{join as u_5}from"node:path";function g_5(){return u_5(y_5(),".cursor","cli-config.json")}function WF2($=g_5()){if(!x_5($))return!1;let z;try{let J=JSON.parse(S_5($,"utf-8"));if(!J||typeof J!=="object"||Array.isArray(J))return!1;z=J}catch{return!1}let G=z.attribution&&typeof z.attribution==="object"&&!Array.isArray(z.attribution)?z.attribution:{};if(G.attributeCommitsToAgent===!1&&G.attributePRsToAgent===!1)return!1;return z.attribution={...G,attributeCommitsToAgent:!1,attributePRsToAgent:!1},x6($,z),!0}function YF2($){let z=I2($)?$:{},G=I2(z.mcpServers)?z.mcpServers:{};return z.mcpServers={...G,"chrome-devtools":G["chrome-devtools"]??UF2["chrome-devtools"],serena:{...UF2.serena}},z}var UF2;var ko=k(()=>{LG();K3();u8();UF2={"chrome-devtools":y8,serena:{command:"serena",args:U6("ide"),env:{SERENA_LOG_LEVEL:"info"}}}});import*as g8 from"node:fs";import{join as Ao}from"node:path";function jo($){let z=Ao($,".agents","mcp.json");if(!g8.existsSync(z))return;let G=Ao($,".cursor"),J=Ao(G,"mcp.json"),Q={};try{let U=g8.readFileSync(z,"utf-8"),Y=JSON.parse(U);if(Y&&typeof Y==="object"&&!Array.isArray(Y))Q=Y}catch{return}let K={};if(Q.mcpServers)K.mcpServers=Q.mcpServers;let Z=YF2(K);try{if(g8.lstatSync(J).isSymbolicLink())g8.unlinkSync(J)}catch{}g8.mkdirSync(G,{recursive:!0}),g8.writeFileSync(J,`${JSON.stringify(Z,null,2)}
396
+ `)}else if(G.skipSettingsMerge){if(Object.keys(U).length>0)oE(pV(z,G.settingsFile),{},U)}else oE(pV(z,G.settingsFile),Z,Object.keys(U).length>0?U:void 0);if(G.featureFlags)Yo(pV(z,G.featureFlags.file),G.featureFlags.section,G.featureFlags.flags)}var lN=k(()=>{Vo();mN();dE();aE();No();Vo();mN();dE();aE();No()});function h0($){if($?.command!=="uvx")return!1;if(!Array.isArray($.args))return!1;return $.args.some((z)=>typeof z==="string"&&z.includes("git+https://github.com/oraios/serena"))}function U6($){return["start-mcp-server","--context",$,"--project-from-cwd",...KF2]}function H7($){if($?.command!=="serena"||!Array.isArray($.args))return!0;let z=$.args.indexOf("--open-web-dashboard");return z!==-1&&String($.args[z+1]).toLowerCase()==="false"}function S6($){if($.command!=="serena"||!Array.isArray($.args))return $;if(H7($))return $;let z=$.args.indexOf("--open-web-dashboard");if(z!==-1){let G=[...$.args];return G[z+1]="false",{...$,args:G}}return{...$,args:[...$.args,...KF2]}}function ZF2($,z){if($.command!=="serena"||!Array.isArray($.args))return $;let G=$.args.indexOf("--context");if(G===-1)return{...$,args:[...$.args,"--context",z]};if($.args[G+1]===z)return $;let J=[...$.args];return J[G+1]=z,{...$,args:J}}function pN($){if($.command!=="serena"||!Array.isArray($.args))return $;if($.args.includes("--project-from-cwd"))return $;let z=$.args.indexOf("--project");if(z===-1)return{...$,args:[...$.args,"--project-from-cwd"]};let G=[...$.args],J=z+1<G.length&&!String(G[z+1]).startsWith("--");return G.splice(z,J?2:1,"--project-from-cwd"),{...$,args:G}}var y8,KF2;var u8=k(()=>{y8={command:"npx",args:["-y","chrome-devtools-mcp@latest","--no-usage-statistics","--isolated"]};KF2=["--open-web-dashboard","false"]});import{existsSync as x_5,readFileSync as S_5}from"node:fs";import{homedir as y_5}from"node:os";import{join as u_5}from"node:path";function g_5(){return u_5(y_5(),".cursor","cli-config.json")}function WF2($=g_5()){if(!x_5($))return!1;let z;try{let J=JSON.parse(S_5($,"utf-8"));if(!J||typeof J!=="object"||Array.isArray(J))return!1;z=J}catch{return!1}let G=z.attribution&&typeof z.attribution==="object"&&!Array.isArray(z.attribution)?z.attribution:{};if(G.attributeCommitsToAgent===!1&&G.attributePRsToAgent===!1)return!1;return z.attribution={...G,attributeCommitsToAgent:!1,attributePRsToAgent:!1},x6($,z),!0}function YF2($){let z=I2($)?$:{},G=I2(z.mcpServers)?z.mcpServers:{};return z.mcpServers={...G,"chrome-devtools":G["chrome-devtools"]??UF2["chrome-devtools"],serena:{...UF2.serena}},z}var UF2;var ko=k(()=>{LG();K3();u8();UF2={"chrome-devtools":y8,serena:{command:"serena",args:U6("ide"),env:{SERENA_LOG_LEVEL:"info"}}}});import*as g8 from"node:fs";import{join as Ao}from"node:path";function jo($){let z=Ao($,".agents","mcp.json");if(!g8.existsSync(z))return;let G=Ao($,".cursor"),J=Ao(G,"mcp.json"),Q={};try{let U=g8.readFileSync(z,"utf-8"),Y=JSON.parse(U);if(Y&&typeof Y==="object"&&!Array.isArray(Y))Q=Y}catch{return}let K={};if(Q.mcpServers)K.mcpServers=Q.mcpServers;let Z=YF2(K);try{if(g8.lstatSync(J).isSymbolicLink())g8.unlinkSync(J)}catch{}g8.mkdirSync(G,{recursive:!0}),g8.writeFileSync(J,`${JSON.stringify(Z,null,2)}
397
397
  `)}var VF2=k(()=>{ko()});import{homedir as h_5}from"node:os";import{join as Mo}from"node:path";function Oo($){return f_5.has($)}function dN($){return nR.includes($)}function BF2($,z){let G=z3[$];if(G.requiresHomeConsent===!0)return Mo(h_5(),G.homePath);if(pY()==="global")return Mo(z,G.homePath);return Mo(z,G.projectPath)}function nN($,z){return BF2(z,$)}function nZ($){return Boolean(z3[$].requiresHomeConsent)}function Io($){let z=z3[$];return z.requiresHomeConsent?`~/${z.homePath}`:z.projectPath}var f_5;var rE=k(()=>{y$();JG();f_5=new Set(b0)});import*as y3 from"node:fs";import{dirname as m_5,join as sE,relative as c_5,resolve as Ro}from"node:path";function i_5($){let z=[];try{for(let G of y3.readdirSync($,{withFileTypes:!0})){if(!G.isSymbolicLink())continue;let J=sE($,G.name);try{y3.realpathSync(J)}catch{y3.unlinkSync(J),z.push(G.name)}}}catch{}return z}function aZ($,z,G){let J=[],Q=[],K=[],Z=Ro($,f4);try{y3.realpathSync(Z)}catch{return{created:J,skipped:Q,removed:K}}for(let U of z){let Y=z3[U],W=Y.requiresHomeConsent?Y.homePath:Y.projectPath,V=nN($,U);if(!y3.existsSync(V))y3.mkdirSync(V,{recursive:!0});K.push(...i_5(V).map((B)=>`${W}/${B}`));for(let B of G){let H=sE(Z,B),X=sE(V,B);if(!y3.existsSync(H)){Q.push(`${W}/${B} (source missing)`);continue}try{if(y3.lstatSync(X).isSymbolicLink()){if(Ro(m_5(X),y3.readlinkSync(X))===Ro(H)){Q.push(`${W}/${B} (already linked)`);continue}y3.unlinkSync(X)}else{Q.push(`${W}/${B} (real dir exists)`);continue}}catch{}let q=c_5(V,H);try{pZ(q,X,"dir",Z)}catch(L){if(L instanceof Error&&L.message.startsWith("createLink: target")){Q.push(`${W}/${B} (source escapes SSOT base)`);continue}throw L}J.push(`${W}/${B}`)}}return{created:J,skipped:Q,removed:K}}function dV($){let z=sE($,f4);if(!y3.existsSync(z))return[];return y3.readdirSync(z,{withFileTypes:!0}).filter((G)=>G.isDirectory()&&!G.name.startsWith("_")).map((G)=>G.name)}function Do($){let z=[];for(let G of Object.keys(z3))if(y3.existsSync(nN($,G)))z.push(G);return z}var XF2=k(()=>{y$();fN();rE()});import*as g5 from"node:fs";import{join as X1}from"node:path";function aN($,z,G,J){let Q=X1($,".agents","skills",z);if(!g5.existsSync(Q))return!1;let K=X1(G,f4,z);f9(K),g5.mkdirSync(K,{recursive:!0}),g5.cpSync(Q,K,{recursive:!0,force:!0});let Z=X1(Q,"variants"),U=X1(K,"stack");if(J&&g5.existsSync(X1(Z,J)))g5.mkdirSync(U,{recursive:!0}),g5.cpSync(X1(Z,J),U,{recursive:!0,force:!0}),g5.writeFileSync(X1(U,"stack.yaml"),`language: ${J}
398
398
  source: preset
399
399
  `);let Y=X1(K,"variants");if(g5.existsSync(Y))g5.rmSync(Y,{recursive:!0,force:!0});return!0}function oN($,z){let G=X1($,".agents","skills","_shared");if(!g5.existsSync(G))return;let J=X1(z,f4,"_shared");f9(J),g5.mkdirSync(J,{recursive:!0}),g5.cpSync(G,J,{recursive:!0,force:!0})}function vo($,z){let G=X1($,".agents","workflows");if(!g5.existsSync(G))return;let J=X1(z,".agents","workflows");f9(J),g5.mkdirSync(J,{recursive:!0}),g5.cpSync(G,J,{recursive:!0,force:!0})}function Eo($,z){let G=X1($,".agents","hooks");if(!g5.existsSync(G))return;let J=X1(z,".agents","hooks");f9(J),g5.mkdirSync(J,{recursive:!0}),g5.cpSync(G,J,{recursive:!0,force:!0})}function wo($,z){let G=X1($,".agents","agents");if(!g5.existsSync(G))return;let J=X1(z,".agents","agents");f9(J),g5.mkdirSync(J,{recursive:!0}),g5.cpSync(G,J,{recursive:!0,force:!0})}function Po($,z){let G=X1($,".agents","rules");if(!g5.existsSync(G))return;let J=X1(z,".agents","rules");f9(J),g5.mkdirSync(J,{recursive:!0}),g5.cpSync(G,J,{recursive:!0,force:!0})}function Co($,z,G=!1){let J=X1($,".agents","config");if(g5.existsSync(J)){let Z=X1(z,".agents","config");if(g5.mkdirSync(Z,{recursive:!0}),G)g5.cpSync(J,Z,{recursive:!0,force:!0});else for(let U of g5.readdirSync(J,{withFileTypes:!0})){let Y=X1(Z,U.name),W=X1(J,U.name);if(!g5.existsSync(Y))g5.cpSync(W,Y,U.isDirectory()?{recursive:!0}:{})}}let Q=X1($,".agents","mcp.json");if(g5.existsSync(Q)){let Z=X1(z,".agents");g5.mkdirSync(Z,{recursive:!0});let U=X1(Z,"mcp.json");if(G||!g5.existsSync(U))g5.cpSync(Q,U)}let K=X1($,".agents","oma-config.yaml");if(g5.existsSync(K)){let Z=X1(z,".agents");g5.mkdirSync(Z,{recursive:!0});let U=X1(Z,"oma-config.yaml");if(G||!g5.existsSync(U))g5.cpSync(K,U)}}var HF2=k(()=>{y$();M1()});import*as ZQ from"node:fs";import{join as qF2}from"node:path";function tE($){let z=qF2($,".agents","oma-config.yaml");if(!ZQ.existsSync(z))return[...QG];let J=ZQ.readFileSync(z,"utf-8").match(/^vendors:\s*\n((?:\s+-\s+\S+\n?)*)/m);if(!J?.[1])return[...QG];let Q=[...J[1].matchAll(/-\s+(\S+)/g)].map((K)=>K[1]);return Q.length>0?Q:[...QG]}function To($,z){let G=qF2($,".agents","oma-config.yaml");if(!ZQ.existsSync(G))return;let J=ZQ.readFileSync(G,"utf-8"),Q=`vendors:
@@ -461,7 +461,7 @@ Read and follow \`.agents/workflows/${Z}.md\` step by step.
461
461
 
462
462
  User request:
463
463
  $ARGUMENTS
464
- `;s3.writeFileSync(Y,W),K.push(FQ.relative(z,Y))}return K}var js="<!-- oma:generated -->";var wM2=k(()=>{M1()});import{cpSync as qf5,existsSync as yk,mkdirSync as CM2,readdirSync as Lf5,readFileSync as Ms,unlinkSync as Ff5}from"node:fs";import{homedir as TM2}from"node:os";import{join as N9}from"node:path";function jf5(){let $=TM2(),z=N9($,uk,"settings.json"),G=N9($,uk,"hooks"),J=N9($,uk,"hooks.json");return{home:$,settingsPath:z,hooksDir:G,staleHooksJson:J}}function Mf5($){if(!yk($))return{};try{return JSON.parse(Ms($,"utf-8"))}catch{return{}}}function Of5($,z){let G=N9($,bM2);if(!yk(G))return;CM2(z,{recursive:!0});for(let J of Lf5(z,{withFileTypes:!0}))f9(N9(z,J.name));qf5(G,z,{recursive:!0,force:!0,dereference:!0})}function If5($){let z=N9($,Nf5);try{return JSON.parse(Ms(z,"utf-8"))}catch{return{events:{PreInvocation:[{hook:"keyword-detector.ts",timeout:5},{hook:"state-boundary.ts",timeout:5},{hook:"skill-injector.ts",timeout:3}],Stop:{hook:"persistent-mode.ts",timeout:5}},statusLine:{hook:"hud.ts"}}}}function Rf5($){return $.replace(/\.[^.]+$/,"")}function _M2($){return $.startsWith("oma-")}function PM2($){try{let z=JSON.parse(Ms($,"utf-8"));if(z&&typeof z==="object"&&!Array.isArray(z))return z;return null}catch{return null}}function Df5($,z){let G={};for(let[J,Q]of Object.entries($??{}))if(!_M2(J))G[J]=Q;return{...G,...z}}function vf5($,z){let G={};for(let[J,Q]of Object.entries(z.events)){let K=Array.isArray(Q)?Q:[Q];for(let Z of K){let U={type:"command",command:`bun "${N9($,Z.hook)}"`,timeout:Z.timeout},Y=Af5.has(J)?[{...Z.matcher?{matcher:Z.matcher}:{},hooks:[U]}]:[U],W=`oma-${Rf5(Z.hook)}`;G[W]={...G[W]??{},[J]:Y}}}return G}function xM2($,z={}){let{settingsPath:G,hooksDir:J,staleHooksJson:Q}=jf5(),K=N9(TM2(),uk);if(!yk(K))return{installed:!1,reason:`agy config dir not found at ~/${uk} — run agy once to initialize`};Of5($,J);let Z=If5($),U=Z.statusLine?.hook??"hud.ts",Y=N9($,kf5),W=N9($,bM2),V;if(yk(W))CM2(N9($,".agents"),{recursive:!0}),x6(Y,Df5(PM2(Y),vf5(W,Z))),V=Y;let B=Mf5(G);if(B.statusLine={type:"command",command:`bun "${N9(J,U)}"`},"hooks"in B)delete B.hooks;if("defaultHooksPath"in B)delete B.defaultHooksPath;if(z.telemetry===!0){if(B.enableTelemetry===!1)delete B.enableTelemetry;if(B.showFeedbackSurvey===!1)delete B.showFeedbackSurvey}else B.enableTelemetry=!1,B.showFeedbackSurvey=!1;if(x6(G,B),yk(Q)){let H=PM2(Q);if(H!==null&&Object.keys(H).every(_M2))try{Ff5(Q)}catch{}}return{installed:!0,settingsPath:G,hooksJsonPath:V,hooksDir:J}}var uk=".gemini/antigravity-cli",Nf5=".agents/hooks/variants/antigravity.json",kf5,bM2,Af5;var SM2=k(()=>{M1();LG();kf5=N9(".agents","hooks.json"),bM2=N9(".agents","hooks","core"),Af5=new Set(["PreToolUse","PostToolUse"])});import{existsSync as Ef5,mkdirSync as wf5}from"node:fs";import{homedir as Pf5}from"node:os";import{dirname as Cf5,join as Os}from"node:path";function $P($){if(Array.isArray($))return`[${$.map((z)=>$P(z)).join(",")}]`;if($&&typeof $==="object")return`{${Object.entries($).sort(([G],[J])=>G.localeCompare(J)).map(([G,J])=>`${JSON.stringify(G)}:${$P(J)}`).join(",")}}`;return JSON.stringify($)}function bf5($,z){if(z==="global")return Os(Pf5(),".gemini","antigravity-cli","mcp_config.json");return Os($,".agents","mcp_config.json")}function _f5($){let z={};if(typeof $.command==="string")z.command=$.command;if(Array.isArray($.args))z.args=$.args;if($.env&&typeof $.env==="object")z.env=$.env;if(typeof $.serverUrl==="string")z.serverUrl=$.serverUrl;else if(typeof $.url==="string")z.serverUrl=$.url;return pN(ZF2(S6(z),Tf5))}function yM2($,z){let G=Os($,".agents","mcp.json"),J=i1(G);if(!J?.mcpServers)return null;let Q={};for(let[V,B]of Object.entries(J.mcpServers))Q[V]=_f5(B);let K=bf5($,z),Z=Cf5(K);if(!Ef5(Z))wf5(Z,{recursive:!0});let U=i1(K)??{},Y={...U.mcpServers??{},...Q},W={...U,mcpServers:Y};if($P(U)===$P(W))return null;return x6(K,W),K}var Tf5="antigravity";var uM2=k(()=>{d9();LG();u8()});function Sf5($){if(!$)return!1;return typeof $.command==="string"||typeof $.url==="string"}function yf5($){if(!$||$.command!=="serena")return!1;if(!Array.isArray($.args))return!1;let z=$.args.indexOf("--context");if(z===-1)return!0;return $.args[z+1]!=="claude-code"}function gM2($,z){if(!z)return[];return Object.keys(z).filter((G)=>G!=="serena"&&!(G in $))}function zP($,z){if(!I2($))return!0;let G=$.mcpServers;if(!I2(G))return!0;let J=G.serena;if(!Sf5(J))return!0;if(h0(J))return!0;if(yf5(J))return!0;if(!H7(J))return!0;if(gM2(G,z).length>0)return!0;return!1}function GP($,z){let G=I2($)?$:{},J=I2(G.mcpServers)?G.mcpServers:{},Q={...J},K=new Set(gM2(J,z));for(let[Z,U]of Object.entries(z??{}))if(K.has(Z))Q[Z]=U;return Q.serena={...xf5.serena},G.mcpServers=Q,G}var xf5;var Is=k(()=>{K3();u8();xf5={serena:{command:"serena",args:U6("claude-code"),env:{SERENA_LOG_LEVEL:"info"}}}});function iM2($){if(typeof $!=="string")return!1;let z=cM2[$];if(z===void 0)return!1;return z>=uf5}function lM2($,z={}){let G=$?.env;if(!G)return!0;for(let J of mM2)if(J in G)return!0;if(z.telemetry===!0){if("DISABLE_TELEMETRY"in G)return!0}else if(G.DISABLE_TELEMETRY!=="1")return!0;for(let[J,Q]of Object.entries(hM2))if(G[J]!==Q)return!0;for(let[J,Q]of Object.entries(fM2)){let K=Number(G[J]);if(!Number.isFinite(K)||K<Q)return!0}for(let[J,Q]of Object.entries(gk)){if(J==="effortLevel"){if(!iM2($[J]))return!0;continue}if(J==="cleanupPeriodDays"){let K=Number($[J]);if(!Number.isFinite(K)||K<Q)return!0;continue}if($[J]!==Q)return!0}if(!$.attribution?.commit||!$.attribution?.pr)return!0;return!1}function pM2($,z={}){let G={...$.env||{},...hM2};for(let Z of mM2)delete G[Z];delete G.cleanupPeriodDays;for(let[Z,U]of Object.entries(fM2)){let Y=Number(G[Z]);G[Z]=String(Number.isFinite(Y)?Math.max(Y,U):U)}if(z.telemetry===!0)delete G.DISABLE_TELEMETRY;else G.DISABLE_TELEMETRY="1";$.env=G;let J=iM2($.effortLevel)?$.effortLevel:void 0,Q=Number($.cleanupPeriodDays),K=Number.isFinite(Q)?Math.max(Q,gk.cleanupPeriodDays):gk.cleanupPeriodDays;if(Object.assign($,gk),$.cleanupPeriodDays=K,J)$.effortLevel=J;return $.attribution={...gf5},$}var hM2,fM2,mM2,gk,cM2,uf5,gf5;var dM2=k(()=>{hM2={DISABLE_ERROR_REPORTING:"1",CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY:"1",CLAUDE_CODE_DISABLE_AUTO_MEMORY:"1",CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS:"1",CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING:"1",ENABLE_PROMPT_CACHING_1H:"1"},fM2={CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS:1e5,CLAUDE_AUTOCOMPACT_PCT_OVERRIDE:80},mM2=["DISABLE_PROMPT_CACHING"],gk={cleanupPeriodDays:180,skipDangerousModePermissionPrompt:!0,effortLevel:"high",skillListingBudgetFraction:0.02},cM2={low:0,medium:1,high:2,xhigh:3},uf5=cM2[gk.effortLevel]??0;gf5={commit:`Generated with oh-my-agent
464
+ `;s3.writeFileSync(Y,W),K.push(FQ.relative(z,Y))}return K}var js="<!-- oma:generated -->";var wM2=k(()=>{M1()});import{cpSync as qf5,existsSync as yk,mkdirSync as CM2,readdirSync as Lf5,readFileSync as Ms,unlinkSync as Ff5}from"node:fs";import{homedir as TM2}from"node:os";import{join as N9}from"node:path";function jf5(){let $=TM2(),z=N9($,uk,"settings.json"),G=N9($,uk,"hooks"),J=N9($,uk,"hooks.json");return{home:$,settingsPath:z,hooksDir:G,staleHooksJson:J}}function Mf5($){if(!yk($))return{};try{return JSON.parse(Ms($,"utf-8"))}catch{return{}}}function Of5($,z){let G=N9($,bM2);if(!yk(G))return;CM2(z,{recursive:!0});for(let J of Lf5(z,{withFileTypes:!0}))f9(N9(z,J.name));qf5(G,z,{recursive:!0,force:!0,dereference:!0})}function If5($){let z=N9($,Nf5);try{return JSON.parse(Ms(z,"utf-8"))}catch{return{events:{PreInvocation:[{hook:"keyword-detector.ts",timeout:5},{hook:"state-boundary.ts",timeout:5},{hook:"skill-injector.ts",timeout:3}],Stop:{hook:"persistent-mode.ts",timeout:5}},statusLine:{hook:"hud.ts"}}}}function Rf5($){return $.replace(/\.[^.]+$/,"")}function _M2($){return $.startsWith("oma-")}function PM2($){try{let z=JSON.parse(Ms($,"utf-8"));if(z&&typeof z==="object"&&!Array.isArray(z))return z;return null}catch{return null}}function Df5($,z){let G={};for(let[J,Q]of Object.entries($??{}))if(!_M2(J))G[J]=Q;return{...G,...z}}function vf5($,z){let G={};for(let[J,Q]of Object.entries(z.events)){let K=Array.isArray(Q)?Q:[Q];for(let Z of K){let U={type:"command",command:`bun "${N9($,Z.hook)}"`,timeout:Z.timeout},Y=Af5.has(J)?[{...Z.matcher?{matcher:Z.matcher}:{},hooks:[U]}]:[U],W=`oma-${Rf5(Z.hook)}`;G[W]={...G[W]??{},[J]:Y}}}return G}function xM2($,z={}){let{settingsPath:G,hooksDir:J,staleHooksJson:Q}=jf5(),K=N9(TM2(),uk);if(!yk(K))return{installed:!1,reason:`agy config dir not found at ~/${uk} — run agy once to initialize`};Of5($,J);let Z=If5($),U=Z.statusLine?.hook??"hud.ts",Y=N9($,kf5),W=N9($,bM2),V;if(yk(W))CM2(N9($,".agents"),{recursive:!0}),x6(Y,Df5(PM2(Y),vf5(W,Z))),V=Y;let B=Mf5(G);if(B.statusLine={type:"command",command:`bun "${N9(J,U)}"`},"hooks"in B)delete B.hooks;if("defaultHooksPath"in B)delete B.defaultHooksPath;if(z.telemetry===!0){if(B.enableTelemetry===!1)delete B.enableTelemetry;if(B.showFeedbackSurvey===!1)delete B.showFeedbackSurvey}else B.enableTelemetry=!1,B.showFeedbackSurvey=!1;if(x6(G,B),yk(Q)){let H=PM2(Q);if(H!==null&&Object.keys(H).every(_M2))try{Ff5(Q)}catch{}}return{installed:!0,settingsPath:G,hooksJsonPath:V,hooksDir:J}}var uk=".gemini/antigravity-cli",Nf5=".agents/hooks/variants/antigravity.json",kf5,bM2,Af5;var SM2=k(()=>{M1();LG();kf5=N9(".agents","hooks.json"),bM2=N9(".agents","hooks","core"),Af5=new Set(["PreToolUse","PostToolUse"])});import{existsSync as Ef5,mkdirSync as wf5}from"node:fs";import{homedir as Pf5}from"node:os";import{dirname as Cf5,join as Os}from"node:path";function $P($){if(Array.isArray($))return`[${$.map((z)=>$P(z)).join(",")}]`;if($&&typeof $==="object")return`{${Object.entries($).sort(([G],[J])=>G.localeCompare(J)).map(([G,J])=>`${JSON.stringify(G)}:${$P(J)}`).join(",")}}`;return JSON.stringify($)}function bf5($,z){if(z==="global")return Os(Pf5(),".gemini","antigravity-cli","mcp_config.json");return Os($,".agents","mcp_config.json")}function _f5($){let z={};if(typeof $.command==="string")z.command=$.command;if(Array.isArray($.args))z.args=$.args;if($.env&&typeof $.env==="object")z.env=$.env;if(typeof $.serverUrl==="string")z.serverUrl=$.serverUrl;else if(typeof $.url==="string")z.serverUrl=$.url;return pN(ZF2(S6(z),Tf5))}function yM2($,z){let G=Os($,".agents","mcp.json"),J=i1(G);if(!J?.mcpServers)return null;let Q={};for(let[V,B]of Object.entries(J.mcpServers))Q[V]=_f5(B);let K=bf5($,z),Z=Cf5(K);if(!Ef5(Z))wf5(Z,{recursive:!0});let U=i1(K)??{},Y={...U.mcpServers??{},...Q},W={...U,mcpServers:Y};if($P(U)===$P(W))return null;return x6(K,W),K}var Tf5="antigravity";var uM2=k(()=>{d9();LG();u8()});function Sf5($){if(!$)return!1;return typeof $.command==="string"||typeof $.url==="string"}function yf5($){if($?.command!=="serena")return!1;if(!Array.isArray($.args))return!1;let z=$.args.indexOf("--context");if(z===-1)return!0;return $.args[z+1]!=="claude-code"}function gM2($,z){if(!z)return[];return Object.keys(z).filter((G)=>G!=="serena"&&!(G in $))}function zP($,z){if(!I2($))return!0;let G=$.mcpServers;if(!I2(G))return!0;let J=G.serena;if(!Sf5(J))return!0;if(h0(J))return!0;if(yf5(J))return!0;if(!H7(J))return!0;if(gM2(G,z).length>0)return!0;return!1}function GP($,z){let G=I2($)?$:{},J=I2(G.mcpServers)?G.mcpServers:{},Q={...J},K=new Set(gM2(J,z));for(let[Z,U]of Object.entries(z??{}))if(K.has(Z))Q[Z]=U;return Q.serena={...xf5.serena},G.mcpServers=Q,G}var xf5;var Is=k(()=>{K3();u8();xf5={serena:{command:"serena",args:U6("claude-code"),env:{SERENA_LOG_LEVEL:"info"}}}});function iM2($){if(typeof $!=="string")return!1;let z=cM2[$];if(z===void 0)return!1;return z>=uf5}function lM2($,z={}){let G=$?.env;if(!G)return!0;for(let J of mM2)if(J in G)return!0;if(z.telemetry===!0){if("DISABLE_TELEMETRY"in G)return!0}else if(G.DISABLE_TELEMETRY!=="1")return!0;for(let[J,Q]of Object.entries(hM2))if(G[J]!==Q)return!0;for(let[J,Q]of Object.entries(fM2)){let K=Number(G[J]);if(!Number.isFinite(K)||K<Q)return!0}for(let[J,Q]of Object.entries(gk)){if(J==="effortLevel"){if(!iM2($[J]))return!0;continue}if(J==="cleanupPeriodDays"){let K=Number($[J]);if(!Number.isFinite(K)||K<Q)return!0;continue}if($[J]!==Q)return!0}if(!$.attribution?.commit||!$.attribution?.pr)return!0;return!1}function pM2($,z={}){let G={...$.env||{},...hM2};for(let Z of mM2)delete G[Z];delete G.cleanupPeriodDays;for(let[Z,U]of Object.entries(fM2)){let Y=Number(G[Z]);G[Z]=String(Number.isFinite(Y)?Math.max(Y,U):U)}if(z.telemetry===!0)delete G.DISABLE_TELEMETRY;else G.DISABLE_TELEMETRY="1";$.env=G;let J=iM2($.effortLevel)?$.effortLevel:void 0,Q=Number($.cleanupPeriodDays),K=Number.isFinite(Q)?Math.max(Q,gk.cleanupPeriodDays):gk.cleanupPeriodDays;if(Object.assign($,gk),$.cleanupPeriodDays=K,J)$.effortLevel=J;return $.attribution={...gf5},$}var hM2,fM2,mM2,gk,cM2,uf5,gf5;var dM2=k(()=>{hM2={DISABLE_ERROR_REPORTING:"1",CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY:"1",CLAUDE_CODE_DISABLE_AUTO_MEMORY:"1",CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS:"1",CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING:"1",ENABLE_PROMPT_CACHING_1H:"1"},fM2={CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS:1e5,CLAUDE_AUTOCOMPACT_PCT_OVERRIDE:80},mM2=["DISABLE_PROMPT_CACHING"],gk={cleanupPeriodDays:180,skipDangerousModePermissionPrompt:!0,effortLevel:"high",skillListingBudgetFraction:0.02},cM2={low:0,medium:1,high:2,xhigh:3},uf5=cM2[gk.effortLevel]??0;gf5={commit:`Generated with oh-my-agent
465
465
 
466
466
  Co-Authored-By: First Fluke <our.first.fluke@gmail.com>`,pr:"Generated with [oh-my-agent](https://github.com/first-fluke/oh-my-agent)"}});import{copyFileSync as hf5,existsSync as ff5,readFileSync as mf5,renameSync as cf5,unlinkSync as if5,writeFileSync as lf5}from"node:fs";import{homedir as pf5}from"node:os";import{dirname as df5,join as nM2}from"node:path";function nf5(){return nM2(pf5(),".claude.json")}function af5($,z){if(!ff5($))return{changed:!1,alreadyTrusted:!1,reason:"~/.claude.json not found (Claude Code not initialized) — skipped"};let G;try{G=JSON.parse(mf5($,"utf-8"))}catch{return{changed:!1,alreadyTrusted:!1,reason:"~/.claude.json is not valid JSON — skipped to avoid clobbering Claude Code state"}}if(!I2(G))return{changed:!1,alreadyTrusted:!1,reason:"~/.claude.json is not a JSON object — skipped"};let J=I2(G.projects)?G.projects:{},Q=I2(J[z])?J[z]:void 0;if(Q&&Q.hasTrustDialogAccepted===!0)return{changed:!1,alreadyTrusted:!0};return J[z]={...Q??{},hasTrustDialogAccepted:!0},G.projects=J,of5($,G),{changed:!0,alreadyTrusted:!1}}function aM2($){return af5(nf5(),$)}function of5($,z){let G=df5($),J=`${Date.now()}-${process.pid}`,Q=nM2(G,`.claude.json.oma-tmp-${J}`);lf5(Q,`${JSON.stringify(z,null,2)}
467
467
  `,"utf-8");try{cf5(Q,$)}catch(K){if(K.code==="EXDEV")hf5(Q,$),if5(Q);else throw K}}var oM2=k(()=>{K3()});function rf5($,z){let G=$.slice(0,z).split(/\r\n|\n|\r/g);return[G.length,G.pop().length+1]}function sf5($,z,G){let J=$.split(/\r\n|\n|\r/g),Q="",K=(Math.log10(z+1)|0)+1;for(let Z=z-1;Z<=z+1;Z++){let U=J[Z-1];if(!U)continue;if(Q+=Z.toString().padEnd(K," "),Q+=": ",Q+=U,Q+=`
@@ -750,7 +750,7 @@ ${AB.stringify(F)}`;if(Wc5(G,N),z.push(`.agents/oma-config.yaml updated (model_p
750
750
  `)}function Li5($){return["# Task Board",`## Session: ${$}`,"","| Agent | Status | Task |","|-------|--------|------|",""].join(`
751
751
  `)}function es($){let z=new Map;for(let G of MQ($)){let J=[];try{J=Xi5(G)}catch{continue}for(let Q of J){if(!Q.endsWith(".md")||Q===".gitkeep")continue;if(!z.has(Q))z.set(Q,s$(G,Q))}}return[...z.entries()].map(([G,J])=>({name:G,path:J}))}function QR2($,z){let G=$.match(/^progress-(\w+)(?:-[\w-]+)?\.md$/),J=$.match(/^result-(\w+)(?:-[\w-]+)?\.md$/);if(G?.[1])return{agent:G[1],type:"progress",content:z.slice(0,500)};if(J?.[1])return{agent:J[1],type:"result",content:z.slice(0,500)};return null}function KR2($){let z={agents:[],activities:[],completedTasks:[],inProgressTasks:[]},G=es($);for(let{name:J,path:Q}of G){if(J==="orchestrator-session.md"){try{let Z=bP(Q,"utf-8").match(/session[:\s]+(\S+)/i);if(Z)z.sessionId=Z[1]}catch{}continue}try{let K=bP(Q,"utf-8"),Z=QR2(J,K);if(Z){if(z.activities.push(Z),!z.agents.includes(Z.agent))z.agents.push(Z.agent);if(Z.type==="result"){let U=K.match(/task[:\s]+(.+)/i)||K.match(/##\s*(.+)/);if(U?.[1])z.completedTasks.push(U[1].trim())}else if(Z.type==="progress"){let U=K.match(/current[:\s]+(.+)/i)||K.match(/working on[:\s]+(.+)/i);if(U?.[1]&&!z.completedTasks.includes(U[1].trim()))z.inProgressTasks.push(U[1].trim())}}}catch{}}return z}function _P($){let z=jQ($,"orchestrator-session.md");if(!z)return{};let G=kU(z);if(!G)return{};let J=ss(G)?.trim(),Q=(G.match(/##\s*Status:\s*(.+)/i)||[])[1]||(G.match(/status:\s*(running|completed|failed|aborted)/i)||[])[1],K=(G.match(/##\s*Started:\s*(.+)/i)||[])[1]||(G.match(/started:\s*(.+)/i)||[])[1];return{id:J,status:Q?.trim().toLowerCase(),startedAt:K?.trim()}}function ZR2($){let z=0,G=es($);for(let{name:K,path:Z}of G){if(!K.startsWith("result-"))continue;let U=kU(Z);if(!U)continue;let Y=U.split(`
752
752
  `).map((W)=>W.trim()).find((W)=>/^##\s*Status:/i.test(W)||/^Status:/i.test(W));if(Y){if(Y.match(/status[^:]*:\s*([a-z_]+)/i)?.[1]?.toLowerCase()==="completed")z+=1}}let J=kU(jQ($,"task-board.md")??"");if(J){let K=J.split(`
753
- `).map((Z)=>Z.trim()).filter((Z)=>/status/i.test(Z)).reduce((Z,U)=>{if(U.match(/status[^:]*:\s*([a-z_]+)/i)?.[1]?.toLowerCase()==="completed")return Z+1;return Z},0);z=Math.max(z,K)}let Q=kU(jQ($,"orchestrator-session.md")??"");if(Q){let K=Q.match(/Completed:\s*(\d+)/i);if(K?.[1]){let Z=parseInt(K[1],10);if(!Number.isNaN(Z))z=Math.max(z,Z)}}return z}function UR2($,z){let G=[],J=z?new Date(z).getTime():0,Q=es($);for(let{name:K,path:Z}of Q){if(K==="orchestrator-session.md")continue;try{let U=bP(Z,"utf-8"),Y=QR2(K,U);if(Y)G.push(Y)}catch{}}return G}function WR2($){let z=[];for(let G of $){let J=G.content.toLowerCase();if(J.includes("error")||J.includes("fail"))z.push(`${G.agent}: Error handling improved`);if(J.includes("refactor"))z.push(`${G.agent}: Code structure refactored`);if(J.includes("test"))z.push(`${G.agent}: Test coverage added`);if(J.includes("performance")||J.includes("optimize"))z.push(`${G.agent}: Performance optimized`)}return[...new Set(z)].slice(0,5)}function YR2($,z={}){let G=A9($);if(!ik(G))Bi5(G,{recursive:!0});let J=kU(jQ($,"orchestrator-session.md")??""),Q=kU(jQ($,"task-board.md")??""),K=ss(J)||ss(Q)||ts(new Date),Z=new Date().toISOString(),U=qi5(K,Z),Y=Li5(K),W=[],V=[],B=[],H=(X,q)=>{let L=jQ($,X);if(!L){JR2(s$(G,X),q,"utf-8"),W.push(X);return}let F=kU(L);if(z.force||Hi5(F)){JR2(L,q,"utf-8"),V.push(X);return}B.push(X)};return H("orchestrator-session.md",U),H("task-board.md",Y),H(".gitkeep",""),{memoriesDir:G,sessionId:K,created:W,updated:V,skipped:B}}var F7,k9;var W6=k(()=>{F7=s$(".agents","state","memories"),k9=s$(".serena","memories")});import{existsSync as $t,mkdirSync as Fi5,readdirSync as Ni5,readFileSync as ki5,renameSync as Ai5,statSync as ji5,writeFileSync as Mi5}from"node:fs";import{join as jB}from"node:path";function Ii5($){let z=jB($,".agents","mcp.json");if(!$t(z))return[];let G,J;try{G=ki5(z,"utf-8"),J=JSON.parse(G)}catch{return[]}let Q=J.memoryConfig;if(!Q||Q.basePath!==".serena/memories")return[];J.memoryConfig={...Q,provider:"file",basePath:F7.split("\\").join("/"),tools:{read:"Read",write:"Write",edit:"Edit"}};try{let K=G.includes("\t")?"\t":2;return Mi5(z,`${JSON.stringify(J,null,K)}
753
+ `).map((Z)=>Z.trim()).filter((Z)=>/status/i.test(Z)).reduce((Z,U)=>{if(U.match(/status[^:]*:\s*([a-z_]+)/i)?.[1]?.toLowerCase()==="completed")return Z+1;return Z},0);z=Math.max(z,K)}let Q=kU(jQ($,"orchestrator-session.md")??"");if(Q){let K=Q.match(/Completed:\s*(\d+)/i);if(K?.[1]){let Z=parseInt(K[1],10);if(!Number.isNaN(Z))z=Math.max(z,Z)}}return z}function UR2($,z){let G=[],J=z?new Date(z).getTime():0,Q=es($);for(let{name:K,path:Z}of Q){if(K==="orchestrator-session.md")continue;try{let U=bP(Z,"utf-8"),Y=QR2(K,U);if(Y)G.push(Y)}catch{}}return G}function WR2($){let z=[];for(let G of $){let J=G.content.toLowerCase();if(J.includes("error")||J.includes("fail"))z.push(`${G.agent}: Error handling improved`);if(J.includes("refactor"))z.push(`${G.agent}: Code structure refactored`);if(J.includes("test"))z.push(`${G.agent}: Test coverage added`);if(J.includes("performance")||J.includes("optimize"))z.push(`${G.agent}: Performance optimized`)}return[...new Set(z)].slice(0,5)}function YR2($,z={}){let G=A9($);if(!ik(G))Bi5(G,{recursive:!0});let J=kU(jQ($,"orchestrator-session.md")??""),Q=kU(jQ($,"task-board.md")??""),K=ss(J)||ss(Q)||ts(new Date),Z=new Date().toISOString(),U=qi5(K,Z),Y=Li5(K),W=[],V=[],B=[],H=(X,q)=>{let L=jQ($,X);if(!L){JR2(s$(G,X),q,"utf-8"),W.push(X);return}let F=kU(L);if(z.force||Hi5(F)){JR2(L,q,"utf-8"),V.push(X);return}B.push(X)};return H("orchestrator-session.md",U),H("task-board.md",Y),H(".gitkeep",""),{memoriesDir:G,sessionId:K,created:W,updated:V,skipped:B}}var F7,k9;var W6=k(()=>{F7=s$(".agents","state","memories"),k9=s$(".serena","memories")});import{existsSync as $t,mkdirSync as Fi5,readdirSync as Ni5,readFileSync as ki5,renameSync as Ai5,statSync as ji5,writeFileSync as Mi5}from"node:fs";import{join as jB}from"node:path";function Ii5($){let z=jB($,".agents","mcp.json");if(!$t(z))return[];let G,J;try{G=ki5(z,"utf-8"),J=JSON.parse(G)}catch{return[]}let Q=J.memoryConfig;if(Q?.basePath!==".serena/memories")return[];J.memoryConfig={...Q,provider:"file",basePath:F7.split("\\").join("/"),tools:{read:"Read",write:"Write",edit:"Edit"}};try{let K=G.includes("\t")?"\t":2;return Mi5(z,`${JSON.stringify(J,null,K)}
754
754
  `),[".agents/mcp.json memoryConfig → file provider at .agents/state/memories"]}catch{return[]}}var Oi5,VR2;var BR2=k(()=>{W6();Oi5=[/^progress-.*\.md$/,/^result-.*\.md$/,/^session-.*\.md$/,/^findings-.*\.md$/,/^orchestrator-session.*\.md$/,/^task-board.*\.md$/];VR2={name:"017-state-memories",up($){let z=[];z.push(...Ii5($));let G=jB($,k9);if(!$t(G))return z;let J;try{J=Ni5(G)}catch{return z}let Q=J.filter((Z)=>{if(!Oi5.some((U)=>U.test(Z)))return!1;try{return ji5(jB(G,Z)).isFile()}catch{return!1}});if(Q.length===0)return z;let K=jB($,F7);Fi5(K,{recursive:!0});for(let Z of Q){let U=jB(K,Z);if($t(U))continue;try{Ai5(jB(G,Z),U),z.push(`moved ${k9}/${Z} → ${F7}/`)}catch{}}return z}}});function AU($){let z=[];for(let G of Ri5)z.push(...G.up($));return z}var Ri5;var zt=k(()=>{nO2();eO2();JI2();ZI2();YI2();LI2();vI2();TI2();xI2();gI2();fI2();dI2();aI2();$R2();GR2();BR2();Ri5=[dO2,tO2,GI2,KI2,WI2,qI2,DI2,CI2,_I2,uI2,hI2,pI2,nI2,eI2,zR2,VR2]});import{readFileSync as Di5}from"node:fs";function xP($={}){if($.yes)return!0;if(process.env.OMA_YES==="1"||process.env.OMA_YES==="true")return!0;return!1}function Gt($={}){if(xP($))return!0;if(process.env.CI==="true"||process.env.CI==="1")return!0;return!1}function Jt($=()=>Di5("/proc/version","utf-8")){if(process.platform!=="linux")return!1;try{return/microsoft|wsl/i.test($())}catch{return!1}}var Qt=()=>{};import{execSync as Kt}from"node:child_process";function jU(){try{return Kt("gh --version",{stdio:"ignore"}),!0}catch{return!1}}function t$(){try{return Kt("gh auth status",{stdio:"ignore"}),!0}catch{return!1}}function MU(){try{return Kt(`gh api user/starred/${c1}`,{stdio:"ignore"}),!0}catch{return!1}}function XR2(){return jU()&&t$()&&MU()}var MB=k(()=>{S7()});import{execFileSync as vi5}from"node:child_process";async function HR2($,z){if(Q6()==="global"&&$)F5.info(OB.default.dim("Skipped GitHub star prompt (--global + --yes)."));else if(jU()&&t$()&&!MU()){let G;if($)G=!0;else if(z)G=!1;else G=await j1({message:`${OB.default.yellow("⭐")} Star ${OB.default.cyan(c1)} on GitHub? It helps a lot!`});if(!l5(G)&&G)try{vi5("gh",["api","-X","PUT",`/user/starred/${c1}`],{stdio:"ignore"}),F5.success(`Starred ${OB.default.cyan(c1)}! Thank you! \uD83C\uDF1F`)}catch{F5.warn(`Could not star automatically. Try: ${OB.default.dim(`gh api --method PUT /user/starred/${c1}`)}`)}}}var OB;var qR2=k(()=>{J1();MB();JG();S7();OB=E2(W5(),1)});import{existsSync as SP,readdirSync as Ei5,readFileSync as Zt,writeFileSync as wi5}from"node:fs";import{join as yP}from"node:path";function Ut($){let z=yP($,"docs"),G=["en"];if(SP(z))for(let J of Ei5(z)){let Q=J.match(/^README\.(.+)\.md$/);if(Q?.[1])G.push(Q[1])}return G.map((J)=>({value:J,label:Pi5[J]??J}))}function Wt($){let z=yP($,".agents","oma-config.yaml");if(!SP(z))return null;try{return Zt(z,"utf-8").match(/^language:\s*([A-Za-z-]+)/m)?.[1]??null}catch{return null}}function uP($){let z=yP($,".agents","oma-config.yaml");if(!SP(z))return null;try{return Zt(z,"utf-8").match(/^model_preset:\s*([A-Za-z0-9_-]+)/m)?.[1]??null}catch{return null}}function LR2($,z,G,J){let Q=yP($,".agents","oma-config.yaml");if(SP(Q)){let K=Zt(Q,"utf-8");if(K=K.replace(/^language:\s*.+$/m,`language: ${z}`),/^model_preset:/m.test(K))K=K.replace(/^model_preset:\s*.+$/m,`model_preset: ${G}`);else K=K.replace(/^(language:\s*.+)$/m,`$1
755
755
  model_preset: ${G}`);wi5(Q,K),To($,J)}}var Pi5;var gP=k(()=>{S7();Pi5={en:"English",ko:"한국어",ja:"日本語",zh:"中文",vi:"Tiếng Việt",de:"Deutsch",es:"Español",fr:"Français",nl:"Nederlands",pl:"Polski",pt:"Português",ru:"Русский"}});function FR2($){return $.filter((z)=>Ci5.includes(z))}function Ti5($,z){if($)return $;let[G]=FR2(z);return G??"mixed"}async function NR2($,z,G,J){let Q=Ut($),K=Wt(z),Z=Q.some((Y)=>Y.value===K)?K:"en",U=G?Z:await UG({message:"Response language?",options:Q,initialValue:Z});if(l5(U))J(),c4("Cancelled."),process.exit(0);return U}async function kR2($,z,G,J){let Q=[{value:"claude",label:"Claude Code",hint:"Claude Max subscription holders"},{value:"codex",label:"Codex",hint:"ChatGPT Plus/Pro subscription holders"},{value:"cursor",label:"Cursor Agent",hint:"Cursor editor with built-in agent"},{value:"qwen",label:"Qwen Code",hint:"Qwen Code subscription holders"},{value:"antigravity",label:"Antigravity CLI (agy)",hint:"Gemini 3.1 Pro impl + Gemini 3.5 Flash orchestration"},{value:"mixed",label:"Mixed (cross-vendor)",hint:"Claude orchestrator + cross-vendor subagents"}],K=uP($),Z=Ti5(K,z);if(G)return Z;if(FR2(z).length===0){F5.info(lk.default.dim("Selected CLI(s) use native subagent dispatch. model_preset only affects the cross-vendor 'oma agent:spawn' fallback."));let W=await j1({message:`Pick a cross-vendor model preset? (otherwise defaults to '${Z}')`,initialValue:!1});if(l5(W))J(),c4("Cancelled."),process.exit(0);if(!W)return Z}let U=Q.some((W)=>W.value===Z)?Z:"mixed",Y=await UG({message:"Model preset?",options:Q,initialValue:U});if(l5(Y))J(),c4("Cancelled."),process.exit(0);return Y}async function AR2($,z){let G=process.platform!=="win32"&&!process.env.CI,J=[{value:"claude",label:"Claude Code",hint:"hooks + settings + CLAUDE.md"},{value:"codex",label:"Codex",hint:"hooks + plugin"},{value:"commandcode",label:"Command Code",hint:"hooks + skills + .commandcode/agents/"},{value:"copilot",label:"GitHub Copilot",hint:"skill symlinks + .github/prompts/ wrappers"},{value:"cursor",label:"Cursor",hint:".cursor/rules/ export + prompt hooks"},{value:"grok",label:"Grok",hint:"hooks + project MCP + .grok/agents/"},{value:"kiro",label:"Kiro CLI",hint:"hooks + Serena MCP + .kiro/agents/"},{value:"opencode",label:"OpenCode",hint:"in-process plugin bridge — .opencode/plugins/oma/, .opencode/agents/"},{value:"pi",label:"pi (Earendil)",hint:"in-process extension bridge — .pi/extensions/oma/"},...G?[{value:"antigravity",label:"Antigravity CLI (agy)",hint:"hooks + HUD + Serena MCP — HOME-shared (~/.gemini/antigravity-cli/)"},{value:"hermes",label:"Hermes Agent",hint:"skills only — workflows N/A, HOME-shared (no per-project isolation)"},{value:"kimi",label:"Kimi Code CLI",hint:"hooks + skills — HOME-shared (~/.kimi-code/) + project Serena MCP"}]:[],{value:"qwen",label:"Qwen Code",hint:"hooks + settings"},{value:"zcode",label:"ZCode",hint:"workflow slash-commands"}],Q={claude:"claude",codex:"codex",cursor:"cursor",qwen:"qwen",antigravity:"antigravity"},K=J.filter((V)=>{if(dN(V.value))return!1;let B=z3[V.value];if(B?.optIn)return!1;if(B?.requiresHomeConsent&&!G)return!1;return!0}).map((V)=>V.value),Z=uP($),U=Z?Q[Z]:void 0,Y=U&&J.some((V)=>V.value===U)?[U]:K,W=z?Y:await AF({message:"CLI tools to configure (deselect all to skip):",options:J,initialValues:Y,required:!1});if(l5(W))c4("Cancelled."),process.exit(0);return W}async function jR2($){let z=$?"all":await UG({message:"What type of project?",options:[{value:"all",label:"All",hint:"Install everything"},{value:"fullstack",label:"Fullstack",hint:"Web + Mobile + Infra (kitchen sink)"},{value:"fullstack-web",label:"Fullstack Web",hint:"Frontend + Backend + DB (no mobile/infra)"},{value:"fullstack-mobile",label:"Fullstack Mobile",hint:"Mobile + Backend + DB"},{value:"frontend",label:"Frontend",hint:"React/Next.js"},{value:"backend",label:"Backend",hint:"Python, Node.js, Rust, ..."},{value:"mobile",label:"Mobile",hint:"Flutter/Dart"},{value:"devops",label:"DevOps",hint:"Terraform + CI/CD + Observability"},{value:"research",label:"Research",hint:"Scholar + Market + PDF/HWP + Writer"},{value:"content",label:"Content",hint:"Image + Voice + Design + Writer"},{value:"custom",label:"Custom",hint:"Choose skills"}]});if(l5(z))c4("Cancelled."),process.exit(0);let G;if(z==="custom"){let J=UQ(),Q=await AF({message:"Select skills:",options:J.map((K)=>({value:K.name,label:K.name,hint:K.desc})),required:!0});if(l5(Q))c4("Cancelled."),process.exit(0);G=Q}else G=eY2[z]??[];return G}async function MR2($,z){let G={};if($.includes("oma-backend")){let J=z?"python":await UG({message:"Backend language?",options:[{value:"python",label:"\uD83D\uDC0D Python",hint:"FastAPI/SQLAlchemy (default)"},{value:"node",label:"\uD83D\uDFE2 Node.js",hint:"NestJS/Hono + Prisma/Drizzle"},{value:"rust",label:"\uD83E\uDD80 Rust",hint:"Axum/Actix-web"},{value:"other",label:"\uD83D\uDD27 Other / Auto-detect",hint:"Configure later with /stack-set"}],initialValue:"python"});if(l5(J))c4("Cancelled."),process.exit(0);if(J!=="other")G["oma-backend"]=J}return G}async function OR2($,z,G){let J=Object.keys(z3),Q=$.filter((Z)=>J.includes(Z)),K=[];for(let Z of Q){if(nZ(Z)){if(z){F5.info(lk.default.dim(`Skipped ${Z} export (HOME write requires -y opt-in).`));continue}let U=await j1({message:`${Z} export writes to HOME (${lk.default.cyan(Io(Z))}). Proceed?`,initialValue:!1});if(l5(U))G(),c4("Cancelled."),process.exit(0);if(!U){F5.info(lk.default.dim(`Skipped ${Z} export.`));continue}}K.push(Z)}return K}var lk,Ci5;var IR2=k(()=>{J1();S7();gP();lk=E2(W5(),1),Ci5=["claude","codex","cursor","qwen","antigravity"]});import{existsSync as bi5,lstatSync as _i5,readdirSync as xi5,readlinkSync as Si5,unlinkSync as yi5}from"node:fs";import{join as ui5,resolve as gi5}from"node:path";function Yt($){if(!bi5($))return;let z;try{z=xi5($,{withFileTypes:!0,encoding:"utf-8"})}catch{return}for(let G of z){if(!G.isSymbolicLink())continue;let J=ui5($,G.name),Q;try{Q=Si5(J)}catch{continue}let K=gi5($,Q),Z;try{_i5(K),Z=!0}catch{Z=!1}if(!Z)try{yi5(J),console.log(`cleaned broken symlink: ${J}`)}catch{}}}var Vt=()=>{};import{homedir as hi5}from"node:os";import{join as RR2}from"node:path";async function pk($={}){let z=Gt($),G=xP($);if(process.platform!=="win32"&&typeof process.geteuid==="function"&&process.geteuid()===0&&typeof process.env.SUDO_USER==="string"&&process.env.SUDO_USER.length>0)c4("Refusing to install under sudo. Re-run as the target user (without sudo) — oma writes to your HOME and runs as your user."),process.exit(1);if(Q6()==="global"&&(process.env.CI==="true"||process.env.CI==="1"))F5.warn("Running `oma install --global` in CI. This will modify the CI user's HOME. Proceeding because --yes / non-interactive mode is set.");let Q=lY(),K=ow(Q);if(!K.ok)c4(`Another oma install/update is running (pid=${K.held.pid}). If none is running it crashed — remove ${xk(Q)}, or wait ~${_k/1000}s for it to auto-clear.`),process.exit(1);let Z=rw(K.release);try{if(console.clear(),W1(W3.default.bgMagenta(W3.default.white(" \uD83D\uDEF8 oh-my-agent "))),z)F5.info(W3.default.dim("Non-interactive mode — using defaults."));if(Q6()==="project"&&process.cwd()===hi5())if(z)c4("Refusing to install in HOME without --global. Re-run with --global, or cd to a project directory first."),process.exit(1);else{let A=await j1({message:"You're running oma in your HOME directory without --global. This will scatter files in ~/. Are you sure?",initialValue:!1});if(l5(A)||!A)c4("Cancelled."),process.exit(0)}if(Q6()==="global"&&Jt())F5.info(W3.default.dim("WSL detected: your $HOME ("+Q+") is the WSL Linux home and is distinct from your Windows %USERPROFILE%. oma will install only to the WSL HOME. If you want a Windows-side install, re-run this command from PowerShell."));if(Q6()==="global"){if(!z){let j=await j1({message:`You're about to install oh-my-agent globally to ${Q}/.agents/. This will modify ~/.claude/, ~/.codex/, etc. Proceed?`,initialValue:!1});if(l5(j)||!j)c4("Cancelled."),process.exit(0)}if(iw(Q)!=="global"&&!z){S2(["This is your first global install of oh-my-agent.","Scope:"," - SSOT: ~/.agents/ (all skills, workflows, rules)"," - Vendor configs: ~/.claude/, ~/.codex/, ~/.gemini/, ~/.qwen/ (symlinks + settings)"," - Lock file: ~/.agents/_install.lock","Existing per-project installs are not affected."].join(`
756
756
  `));let j=await j1({message:"Proceed with the global install?",initialValue:!1});if(l5(j)||!j)c4("Cancelled."),process.exit(0)}}let U=AU(Q);if(U.length>0)S2(U.map((A)=>`${W3.default.green("✓")} ${A}`).join(`
@@ -770,8 +770,8 @@ model_preset: ${G}`);wi5(Q,K),To($,J)}}var Pi5;var gP=k(()=>{S7();Pi5={en:"Engli
770
770
  \r
771
771
  `+G)}function EU($,z,G,J,Q,K){if($.listenerCount("wsClientError")){let Z=Error(Q);Error.captureStackTrace(Z,EU),$.emit("wsClientError",Z,G,z)}else zA(G,J,Q,K)}});var Od5,Id5,Rd5,Dd5,vd5,Ed5,UC,ft,Qv2;var mt=k(()=>{Od5=E2(sD2(),1),Id5=E2(zC(),1),Rd5=E2(EB(),1),Dd5=E2(Tt(),1),vd5=E2(_t(),1),Ed5=E2(ht(),1),UC=E2(KC(),1),ft=E2(Jv2(),1),Qv2=UC.default});function Kv2($,z){if($.length===0)return{nodes:[],edges:[]};let G=new Map;for(let Y of $){let W=Y.project||"(unknown)",V=G.get(W);if(V)V.count++,V.first=Math.min(V.first,Y.timestamp),V.last=Math.max(V.last,Y.timestamp),V.tools[Y.tool]=(V.tools[Y.tool]||0)+1;else G.set(W,{count:1,first:Y.timestamp,last:Y.timestamp,tools:{[Y.tool]:1}})}let J=[...G.entries()].map(([Y,W])=>{let B=Object.entries(W.tools).sort(([,H],[,X])=>X-H)[0]?.[0]??"claude";return{id:Y,label:Y,count:W.count,duration:W.last-W.first,tools:W.tools,primaryTool:B}}).sort((Y,W)=>W.count-Y.count);if(z&&z>0)J=J.slice(0,z);let Q=new Set(J.map((Y)=>Y.id)),K=new Map,Z=[...$].sort((Y,W)=>Y.timestamp-W.timestamp);for(let Y=0;Y<Z.length;Y++){let W=Z[Y];if(!W)continue;let V=W.project||"(unknown)";if(!Q.has(V))continue;for(let B=Y+1;B<Z.length;B++){let H=Z[B];if(!H)break;if(H.timestamp-W.timestamp>1800000)break;let X=H.project||"(unknown)";if(X===V||!Q.has(X))continue;let q=[V,X].sort().join("|||");K.set(q,(K.get(q)||0)+1)}}let U=[...K.entries()].map(([Y,W])=>{let V=Y.split("|||");return{source:V[0]??"",target:V[1]??"",weight:W}});return{nodes:J,edges:U}}var Zv2=()=>{};function Uv2($,z,G="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:$,timeZoneName:G}).format(z).split(/\s/g).slice(2).join(" ")}function vG($,z){try{let J=(wd5[$]||=new Intl.DateTimeFormat("en-US",{timeZone:$,timeZoneName:"longOffset"}).format)(z).split("GMT")[1];if(J in GA)return GA[J];return Wv2(J,J.split(":"))}catch{if($ in GA)return GA[$];let G=$?.match(Pd5);if(G)return Wv2($,G.slice(1));return NaN}}function Wv2($,z){let G=+(z[0]||0),J=+(z[1]||0),Q=+(z[2]||0)/60;return GA[$]=G*60+J>0?G*60+J+Q:G*60-J-Q}var wd5,GA,Pd5;var WC=k(()=>{wd5={},GA={};Pd5=/([+-]\d\d):?(\d\d)?/});function ct($){$.internal.setTime(+$),$.internal.setUTCSeconds($.internal.getUTCSeconds()-Math.round(-vG($.timeZone,$)*60))}function Cd5($){Date.prototype.setFullYear.call($,$.internal.getUTCFullYear(),$.internal.getUTCMonth(),$.internal.getUTCDate()),Date.prototype.setHours.call($,$.internal.getUTCHours(),$.internal.getUTCMinutes(),$.internal.getUTCSeconds(),$.internal.getUTCMilliseconds()),Vv2($)}function Vv2($){let z=vG($.timeZone,$),G=z>0?Math.floor(z):Math.ceil(z),J=new Date(+$);J.setUTCHours(J.getUTCHours()-1);let Q=-new Date(+$).getTimezoneOffset(),K=-new Date(+J).getTimezoneOffset(),Z=Q-K,U=Date.prototype.getHours.apply($)!==$.internal.getUTCHours();if(Z&&U)$.internal.setUTCMinutes($.internal.getUTCMinutes()+Z);let Y=Q-G;if(Y)Date.prototype.setUTCMinutes.call($,Date.prototype.getUTCMinutes.call($)+Y);let W=new Date(+$);W.setUTCSeconds(0);let V=Q>0?W.getSeconds():(W.getSeconds()-60)%60,B=Math.round(-(vG($.timeZone,$)*60))%60;if(B||V)$.internal.setUTCSeconds($.internal.getUTCSeconds()+B),Date.prototype.setUTCSeconds.call($,Date.prototype.getUTCSeconds.call($)+B+V);let H=vG($.timeZone,$),X=H>0?Math.floor(H):Math.ceil(H),L=-new Date(+$).getTimezoneOffset()-X,F=X!==G,N=L-Y;if(F&&N){Date.prototype.setUTCMinutes.call($,Date.prototype.getUTCMinutes.call($)+N);let A=vG($.timeZone,$),j=A>0?Math.floor(A):Math.ceil(A),M=X-j;if(M)$.internal.setUTCMinutes($.internal.getUTCMinutes()+M),Date.prototype.setUTCMinutes.call($,Date.prototype.getUTCMinutes.call($)+M)}}var r0,Yv2;var it=k(()=>{WC();r0=class r0 extends Date{constructor(...$){super();if($.length>1&&typeof $[$.length-1]==="string")this.timeZone=$.pop();if(this.internal=new Date,isNaN(vG(this.timeZone,this)))this.setTime(NaN);else if(!$.length)this.setTime(Date.now());else if(typeof $[0]==="number"&&($.length===1||$.length===2&&typeof $[1]!=="number"))this.setTime($[0]);else if(typeof $[0]==="string")this.setTime(+new Date($[0]));else if($[0]instanceof Date)this.setTime(+$[0]);else this.setTime(+new Date(...$)),Vv2(this,NaN),ct(this)}static tz($,...z){return z.length?new r0(...z,$):new r0(Date.now(),$)}withTimeZone($){return new r0(+this,$)}getTimezoneOffset(){let $=-vG(this.timeZone,this);return $>0?Math.floor($):Math.ceil($)}setTime($){return Date.prototype.setTime.apply(this,arguments),ct(this),+this}[Symbol.for("constructDateFrom")]($){return new r0(+new Date($),this.timeZone)}};Yv2=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(($)=>{if(!Yv2.test($))return;let z=$.replace(Yv2,"$1UTC");if(!r0.prototype[z])return;if($.startsWith("get"))r0.prototype[$]=function(){return this.internal[z]()};else r0.prototype[$]=function(){return Date.prototype[z].apply(this.internal,arguments),Cd5(this),+this},r0.prototype[z]=function(){return Date.prototype[z].apply(this,arguments),ct(this),+this}})});var V6;var lt=k(()=>{it();V6=class V6 extends r0{static tz($,...z){return z.length?new V6(...z,$):new V6(Date.now(),$)}toISOString(){let[$,z,G]=this.tzComponents(),J=`${$}${z}:${G}`;return this.internal.toISOString().slice(0,-1)+J}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){let[$,z,G,J]=this.internal.toUTCString().split(" ");return`${$?.slice(0,-1)} ${G} ${z} ${J}`}toTimeString(){let $=this.internal.toUTCString().split(" ")[4],[z,G,J]=this.tzComponents();return`${$} GMT${z}${G}${J} (${Uv2(this.timeZone,this)})`}toLocaleString($,z){return Date.prototype.toLocaleString.call(this,$,{...z,timeZone:z?.timeZone||this.timeZone})}toLocaleDateString($,z){return Date.prototype.toLocaleDateString.call(this,$,{...z,timeZone:z?.timeZone||this.timeZone})}toLocaleTimeString($,z){return Date.prototype.toLocaleTimeString.call(this,$,{...z,timeZone:z?.timeZone||this.timeZone})}tzComponents(){let $=this.getTimezoneOffset(),z=$>0?"-":"+",G=String(Math.floor(Math.abs($)/60)).padStart(2,"0"),J=String(Math.abs($)%60).padStart(2,"0");return[z,G,J]}withTimeZone($){return new V6(+this,$)}[Symbol.for("constructDateFrom")]($){return new V6(+new Date($),this.timeZone)}}});var Bv2=k(()=>{lt()});var Xv2=k(()=>{WC()});var JA=k(()=>{Zv2();lt();it();Bv2();WC();Xv2()});var Td5,LK1,YC=604800000,Hv2=86400000,VC=60000,BC=3600000,qv2=1000,pt;var vQ=k(()=>{Td5=Math.pow(10,8)*24*60*60*1000,LK1=-Td5,pt=Symbol.for("constructDateFrom")});function Q4($,z){if(typeof $==="function")return $(z);if($&&typeof $==="object"&&pt in $)return $[pt](z);if($ instanceof Date)return new $.constructor(z);return new Date(z)}var t3=k(()=>{vQ()});function M5($,z){return Q4(z||$,$)}var R1=k(()=>{t3()});function EQ($,z,G){let J=M5($,G?.in);if(isNaN(z))return Q4(G?.in||$,NaN);if(!z)return J;return J.setDate(J.getDate()+z),J}var QA=k(()=>{t3();R1()});function Lv2($,z,G){let J=M5($,G?.in);if(isNaN(z))return Q4(G?.in||$,NaN);if(!z)return J;let Q=J.getDate(),K=Q4(G?.in||$,J.getTime());K.setMonth(J.getMonth()+z+1,0);let Z=K.getDate();if(Q>=Z)return K;else return J.setFullYear(K.getFullYear(),K.getMonth(),Q),J}var dt=k(()=>{t3();R1()});function _B($,z,G){let{years:J=0,months:Q=0,weeks:K=0,days:Z=0,hours:U=0,minutes:Y=0,seconds:W=0}=z,V=M5($,G?.in),B=Q||J?Lv2(V,Q+J*12):V,H=Z||K?EQ(B,Z+K*7):B,X=Y+U*60,L=(W+X*60)*1000;return Q4(G?.in||$,+H+L)}var nt=k(()=>{QA();dt();t3();R1()});var Fv2=()=>{};var Nv2=()=>{};var kv2=()=>{};var Av2=()=>{};var jv2=()=>{};var Mv2=()=>{};function i8(){return bd5}var bd5;var wU=k(()=>{bd5={}});function j9($,z){let G=i8(),J=z?.weekStartsOn??z?.locale?.options?.weekStartsOn??G.weekStartsOn??G.locale?.options?.weekStartsOn??0,Q=M5($,z?.in),K=Q.getDay(),Z=(K<J?7:0)+K-J;return Q.setDate(Q.getDate()-Z),Q.setHours(0,0,0,0),Q}var wQ=k(()=>{wU();R1()});function s0($,z){return j9($,{...z,weekStartsOn:1})}var PU=k(()=>{wQ()});function XC($,z){let G=M5($,z?.in),J=G.getFullYear(),Q=Q4(G,0);Q.setFullYear(J+1,0,4),Q.setHours(0,0,0,0);let K=s0(Q),Z=Q4(G,0);Z.setFullYear(J,0,4),Z.setHours(0,0,0,0);let U=s0(Z);if(G.getTime()>=K.getTime())return J+1;else if(G.getTime()>=U.getTime())return J;else return J-1}var HC=k(()=>{t3();PU();R1()});function CU($){let z=M5($),G=new Date(Date.UTC(z.getFullYear(),z.getMonth(),z.getDate(),z.getHours(),z.getMinutes(),z.getSeconds(),z.getMilliseconds()));return G.setUTCFullYear(z.getFullYear()),+$-+G}var qC=k(()=>{R1()});function B6($,...z){let G=Q4.bind(null,$||z.find((J)=>typeof J==="object"));return z.map(G)}var EG=k(()=>{t3()});function TU($,z){let G=M5($,z?.in);return G.setHours(0,0,0,0),G}var at=k(()=>{R1()});function LC($,z,G){let[J,Q]=B6(G?.in,$,z),K=TU(J),Z=TU(Q),U=+K-CU(K),Y=+Z-CU(Z);return Math.round((U-Y)/Hv2)}var FC=k(()=>{qC();EG();vQ();at()});function Ov2($,z){let G=XC($,z),J=Q4(z?.in||$,0);return J.setFullYear(G,0,4),J.setHours(0,0,0,0),s0(J)}var ot=k(()=>{t3();HC();PU()});var Iv2=()=>{};var Rv2=()=>{};var Dv2=()=>{};var vv2=()=>{};var Ev2=()=>{};var wv2=()=>{};var Pv2=()=>{};var Cv2=()=>{};var Tv2=()=>{};var bv2=()=>{};var _v2=()=>{};var xv2=()=>{};var Sv2=()=>{};function bU($,z){let G=+M5($)-+M5(z);if(G<0)return-1;else if(G>0)return 1;return G}var NC=k(()=>{R1()});var yv2=()=>{};var uv2=()=>{};var gv2=()=>{};var hv2=()=>{};function fv2($){return $ instanceof Date||typeof $==="object"&&Object.prototype.toString.call($)==="[object Date]"}function mv2($){return!(!fv2($)&&typeof $!=="number"||isNaN(+M5($)))}var rt=k(()=>{R1()});var cv2=()=>{};var iv2=()=>{};var lv2=()=>{};function pv2($,z,G){let[J,Q]=B6(G?.in,$,z),K=J.getFullYear()-Q.getFullYear(),Z=J.getMonth()-Q.getMonth();return K*12+Z}var st=k(()=>{EG()});var dv2=()=>{};var nv2=()=>{};var av2=()=>{};function ov2($,z,G){let[J,Q]=B6(G?.in,$,z);return J.getFullYear()-Q.getFullYear()}var tt=k(()=>{EG()});function sv2($,z,G){let[J,Q]=B6(G?.in,$,z),K=rv2(J,Q),Z=Math.abs(LC(J,Q));J.setDate(J.getDate()-K*Z);let U=Number(rv2(J,Q)===-K),Y=K*(Z-U);return Y===0?0:Y}function rv2($,z){let G=$.getFullYear()-z.getFullYear()||$.getMonth()-z.getMonth()||$.getDate()-z.getDate()||$.getHours()-z.getHours()||$.getMinutes()-z.getMinutes()||$.getSeconds()-z.getSeconds()||$.getMilliseconds()-z.getMilliseconds();if(G<0)return-1;if(G>0)return 1;return G}var et=k(()=>{EG();FC()});function xB($){return(z)=>{let J=($?Math[$]:Math.trunc)(z);return J===0?0:J}}function tv2($,z,G){let[J,Q]=B6(G?.in,$,z),K=(+J-+Q)/BC;return xB(G?.roundingMethod)(K)}var $e=k(()=>{EG();vQ()});var ev2=()=>{};var $E2=()=>{};function kC($,z){return+M5($)-+M5(z)}var AC=k(()=>{R1()});function zE2($,z,G){let J=kC($,z)/VC;return xB(G?.roundingMethod)(J)}var ze=k(()=>{vQ();AC()});function GE2($,z){let G=M5($,z?.in);return G.setHours(23,59,59,999),G}var Ge=k(()=>{R1()});function JE2($,z){let G=M5($,z?.in),J=G.getMonth();return G.setFullYear(G.getFullYear(),J+1,0),G.setHours(23,59,59,999),G}var Je=k(()=>{R1()});function QE2($,z){let G=M5($,z?.in);return+GE2(G,z)===+JE2(G,z)}var Qe=k(()=>{Ge();Je();R1()});function KE2($,z,G){let[J,Q,K]=B6(G?.in,$,$,z),Z=bU(Q,K),U=Math.abs(pv2(Q,K));if(U<1)return 0;if(Q.getMonth()===1&&Q.getDate()>27)Q.setDate(30);Q.setMonth(Q.getMonth()-Z*U);let Y=bU(Q,K)===-Z;if(QE2(J)&&U===1&&bU(J,K)===1)Y=!1;let W=Z*(U-+Y);return W===0?0:W}var Ke=k(()=>{EG();NC();st();Qe()});var ZE2=()=>{};function UE2($,z,G){let J=kC($,z)/1000;return xB(G?.roundingMethod)(J)}var Ze=k(()=>{AC()});var WE2=()=>{};function YE2($,z,G){let[J,Q]=B6(G?.in,$,z),K=bU(J,Q),Z=Math.abs(ov2(J,Q));J.setFullYear(1584),Q.setFullYear(1584);let U=bU(J,Q)===-K,Y=K*(Z-+U);return Y===0?0:Y}var Ue=k(()=>{EG();NC();tt()});function VE2($,z){let[G,J]=B6($,z.start,z.end);return{start:G,end:J}}var BE2=k(()=>{EG()});var XE2=()=>{};var HE2=()=>{};var qE2=()=>{};var LE2=()=>{};var FE2=()=>{};var NE2=()=>{};var kE2=()=>{};var AE2=()=>{};var jE2=()=>{};var ME2=()=>{};var OE2=()=>{};function IE2($,z){let G=M5($,z?.in);return G.setFullYear(G.getFullYear(),0,1),G.setHours(0,0,0,0),G}var We=k(()=>{R1()});var RE2=()=>{};var DE2=()=>{};var vE2=()=>{};var EE2=()=>{};var wE2=()=>{};var PE2=()=>{};var CE2=()=>{};var TE2=()=>{};var bE2=()=>{};var _E2=()=>{};var xE2=()=>{};var SE2=()=>{};var yE2=()=>{};var _d5,uE2=($,z,G)=>{let J,Q=_d5[$];if(typeof Q==="string")J=Q;else if(z===1)J=Q.one;else J=Q.other.replace("{{count}}",z.toString());if(G?.addSuffix)if(G.comparison&&G.comparison>0)return"in "+J;else return J+" ago";return J};var gE2=k(()=>{_d5={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}}});function jC($){return(z={})=>{let G=z.width?String(z.width):$.defaultWidth;return $.formats[G]||$.formats[$.defaultWidth]}}var xd5,Sd5,yd5,hE2;var fE2=k(()=>{xd5={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Sd5={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},yd5={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},hE2={date:jC({formats:xd5,defaultWidth:"full"}),time:jC({formats:Sd5,defaultWidth:"full"}),dateTime:jC({formats:yd5,defaultWidth:"full"})}});var ud5,mE2=($,z,G,J)=>ud5[$];var cE2=k(()=>{ud5={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"}});function SB($){return(z,G)=>{let J=G?.context?String(G.context):"standalone",Q;if(J==="formatting"&&$.formattingValues){let Z=$.defaultFormattingWidth||$.defaultWidth,U=G?.width?String(G.width):Z;Q=$.formattingValues[U]||$.formattingValues[Z]}else{let Z=$.defaultWidth,U=G?.width?String(G.width):$.defaultWidth;Q=$.values[U]||$.values[Z]}let K=$.argumentCallback?$.argumentCallback(z):z;return Q[K]}}var gd5,hd5,fd5,md5,cd5,id5,ld5=($,z)=>{let G=Number($),J=G%100;if(J>20||J<10)switch(J%10){case 1:return G+"st";case 2:return G+"nd";case 3:return G+"rd"}return G+"th"},iE2;var lE2=k(()=>{gd5={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},hd5={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},fd5={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},md5={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},cd5={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},id5={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},iE2={ordinalNumber:ld5,era:SB({values:gd5,defaultWidth:"wide"}),quarter:SB({values:hd5,defaultWidth:"wide",argumentCallback:($)=>$-1}),month:SB({values:fd5,defaultWidth:"wide"}),day:SB({values:md5,defaultWidth:"wide"}),dayPeriod:SB({values:cd5,defaultWidth:"wide",formattingValues:id5,defaultFormattingWidth:"wide"})}});function yB($){return(z,G={})=>{let J=G.width,Q=J&&$.matchPatterns[J]||$.matchPatterns[$.defaultMatchWidth],K=z.match(Q);if(!K)return null;let Z=K[0],U=J&&$.parsePatterns[J]||$.parsePatterns[$.defaultParseWidth],Y=Array.isArray(U)?dd5(U,(B)=>B.test(Z)):pd5(U,(B)=>B.test(Z)),W;W=$.valueCallback?$.valueCallback(Y):Y,W=G.valueCallback?G.valueCallback(W):W;let V=z.slice(Z.length);return{value:W,rest:V}}}function pd5($,z){for(let G in $)if(Object.prototype.hasOwnProperty.call($,G)&&z($[G]))return G;return}function dd5($,z){for(let G=0;G<$.length;G++)if(z($[G]))return G;return}function pE2($){return(z,G={})=>{let J=z.match($.matchPattern);if(!J)return null;let Q=J[0],K=z.match($.parsePattern);if(!K)return null;let Z=$.valueCallback?$.valueCallback(K[0]):K[0];Z=G.valueCallback?G.valueCallback(Z):Z;let U=z.slice(Q.length);return{value:Z,rest:U}}}var nd5,ad5,od5,rd5,sd5,td5,ed5,$n5,zn5,Gn5,Jn5,Qn5,dE2;var nE2=k(()=>{nd5=/^(\d+)(th|st|nd|rd)?/i,ad5=/\d+/i,od5={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},rd5={any:[/^b/i,/^(a|c)/i]},sd5={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},td5={any:[/1/i,/2/i,/3/i,/4/i]},ed5={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},$n5={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},zn5={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},Gn5={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Jn5={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},Qn5={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},dE2={ordinalNumber:pE2({matchPattern:nd5,parsePattern:ad5,valueCallback:($)=>parseInt($,10)}),era:yB({matchPatterns:od5,defaultMatchWidth:"wide",parsePatterns:rd5,defaultParseWidth:"any"}),quarter:yB({matchPatterns:sd5,defaultMatchWidth:"wide",parsePatterns:td5,defaultParseWidth:"any",valueCallback:($)=>$+1}),month:yB({matchPatterns:ed5,defaultMatchWidth:"wide",parsePatterns:$n5,defaultParseWidth:"any"}),day:yB({matchPatterns:zn5,defaultMatchWidth:"wide",parsePatterns:Gn5,defaultParseWidth:"any"}),dayPeriod:yB({matchPatterns:Jn5,defaultMatchWidth:"any",parsePatterns:Qn5,defaultParseWidth:"any"})}});var KA;var aE2=k(()=>{gE2();fE2();cE2();lE2();nE2();KA={code:"en-US",formatDistance:uE2,formatLong:hE2,formatRelative:mE2,localize:iE2,match:dE2,options:{weekStartsOn:0,firstWeekContainsDate:1}}});var Ye=k(()=>{aE2()});function oE2($,z){let G=M5($,z?.in);return LC(G,IE2(G))+1}var Ve=k(()=>{FC();We();R1()});function MC($,z){let G=M5($,z?.in),J=+s0(G)-+Ov2(G);return Math.round(J/YC)+1}var OC=k(()=>{vQ();PU();ot();R1()});function uB($,z){let G=M5($,z?.in),J=G.getFullYear(),Q=i8(),K=z?.firstWeekContainsDate??z?.locale?.options?.firstWeekContainsDate??Q.firstWeekContainsDate??Q.locale?.options?.firstWeekContainsDate??1,Z=Q4(z?.in||$,0);Z.setFullYear(J+1,0,K),Z.setHours(0,0,0,0);let U=j9(Z,z),Y=Q4(z?.in||$,0);Y.setFullYear(J,0,K),Y.setHours(0,0,0,0);let W=j9(Y,z);if(+G>=+U)return J+1;else if(+G>=+W)return J;else return J-1}var ZA=k(()=>{wU();t3();wQ();R1()});function rE2($,z){let G=i8(),J=z?.firstWeekContainsDate??z?.locale?.options?.firstWeekContainsDate??G.firstWeekContainsDate??G.locale?.options?.firstWeekContainsDate??1,Q=uB($,z),K=Q4(z?.in||$,0);return K.setFullYear(Q,0,J),K.setHours(0,0,0,0),j9(K,z)}var Be=k(()=>{wU();t3();ZA();wQ()});function IC($,z){let G=M5($,z?.in),J=+j9(G,z)-+rE2(G,z);return Math.round(J/YC)+1}var RC=k(()=>{vQ();wQ();Be();R1()});function i4($,z){let G=$<0?"-":"",J=Math.abs($).toString().padStart(z,"0");return G+J}var wG;var sE2=k(()=>{wG={y($,z){let G=$.getFullYear(),J=G>0?G:1-G;return i4(z==="yy"?J%100:J,z.length)},M($,z){let G=$.getMonth();return z==="M"?String(G+1):i4(G+1,2)},d($,z){return i4($.getDate(),z.length)},a($,z){let G=$.getHours()/12>=1?"pm":"am";switch(z){case"a":case"aa":return G.toUpperCase();case"aaa":return G;case"aaaaa":return G[0];case"aaaa":default:return G==="am"?"a.m.":"p.m."}},h($,z){return i4($.getHours()%12||12,z.length)},H($,z){return i4($.getHours(),z.length)},m($,z){return i4($.getMinutes(),z.length)},s($,z){return i4($.getSeconds(),z.length)},S($,z){let G=z.length,J=$.getMilliseconds(),Q=Math.trunc(J*Math.pow(10,G-3));return i4(Q,z.length)}}});function tE2($,z=""){let G=$>0?"-":"+",J=Math.abs($),Q=Math.trunc(J/60),K=J%60;if(K===0)return G+String(Q);return G+String(Q)+z+i4(K,2)}function eE2($,z){if($%60===0)return($>0?"-":"+")+i4(Math.abs($)/60,2);return _U($,z)}function _U($,z=""){let G=$>0?"-":"+",J=Math.abs($),Q=i4(Math.trunc(J/60),2),K=i4(J%60,2);return G+Q+z+K}var gB,Xe;var $w2=k(()=>{Ve();OC();HC();RC();ZA();sE2();gB={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Xe={G:function($,z,G){let J=$.getFullYear()>0?1:0;switch(z){case"G":case"GG":case"GGG":return G.era(J,{width:"abbreviated"});case"GGGGG":return G.era(J,{width:"narrow"});case"GGGG":default:return G.era(J,{width:"wide"})}},y:function($,z,G){if(z==="yo"){let J=$.getFullYear(),Q=J>0?J:1-J;return G.ordinalNumber(Q,{unit:"year"})}return wG.y($,z)},Y:function($,z,G,J){let Q=uB($,J),K=Q>0?Q:1-Q;if(z==="YY"){let Z=K%100;return i4(Z,2)}if(z==="Yo")return G.ordinalNumber(K,{unit:"year"});return i4(K,z.length)},R:function($,z){let G=XC($);return i4(G,z.length)},u:function($,z){let G=$.getFullYear();return i4(G,z.length)},Q:function($,z,G){let J=Math.ceil(($.getMonth()+1)/3);switch(z){case"Q":return String(J);case"QQ":return i4(J,2);case"Qo":return G.ordinalNumber(J,{unit:"quarter"});case"QQQ":return G.quarter(J,{width:"abbreviated",context:"formatting"});case"QQQQQ":return G.quarter(J,{width:"narrow",context:"formatting"});case"QQQQ":default:return G.quarter(J,{width:"wide",context:"formatting"})}},q:function($,z,G){let J=Math.ceil(($.getMonth()+1)/3);switch(z){case"q":return String(J);case"qq":return i4(J,2);case"qo":return G.ordinalNumber(J,{unit:"quarter"});case"qqq":return G.quarter(J,{width:"abbreviated",context:"standalone"});case"qqqqq":return G.quarter(J,{width:"narrow",context:"standalone"});case"qqqq":default:return G.quarter(J,{width:"wide",context:"standalone"})}},M:function($,z,G){let J=$.getMonth();switch(z){case"M":case"MM":return wG.M($,z);case"Mo":return G.ordinalNumber(J+1,{unit:"month"});case"MMM":return G.month(J,{width:"abbreviated",context:"formatting"});case"MMMMM":return G.month(J,{width:"narrow",context:"formatting"});case"MMMM":default:return G.month(J,{width:"wide",context:"formatting"})}},L:function($,z,G){let J=$.getMonth();switch(z){case"L":return String(J+1);case"LL":return i4(J+1,2);case"Lo":return G.ordinalNumber(J+1,{unit:"month"});case"LLL":return G.month(J,{width:"abbreviated",context:"standalone"});case"LLLLL":return G.month(J,{width:"narrow",context:"standalone"});case"LLLL":default:return G.month(J,{width:"wide",context:"standalone"})}},w:function($,z,G,J){let Q=IC($,J);if(z==="wo")return G.ordinalNumber(Q,{unit:"week"});return i4(Q,z.length)},I:function($,z,G){let J=MC($);if(z==="Io")return G.ordinalNumber(J,{unit:"week"});return i4(J,z.length)},d:function($,z,G){if(z==="do")return G.ordinalNumber($.getDate(),{unit:"date"});return wG.d($,z)},D:function($,z,G){let J=oE2($);if(z==="Do")return G.ordinalNumber(J,{unit:"dayOfYear"});return i4(J,z.length)},E:function($,z,G){let J=$.getDay();switch(z){case"E":case"EE":case"EEE":return G.day(J,{width:"abbreviated",context:"formatting"});case"EEEEE":return G.day(J,{width:"narrow",context:"formatting"});case"EEEEEE":return G.day(J,{width:"short",context:"formatting"});case"EEEE":default:return G.day(J,{width:"wide",context:"formatting"})}},e:function($,z,G,J){let Q=$.getDay(),K=(Q-J.weekStartsOn+8)%7||7;switch(z){case"e":return String(K);case"ee":return i4(K,2);case"eo":return G.ordinalNumber(K,{unit:"day"});case"eee":return G.day(Q,{width:"abbreviated",context:"formatting"});case"eeeee":return G.day(Q,{width:"narrow",context:"formatting"});case"eeeeee":return G.day(Q,{width:"short",context:"formatting"});case"eeee":default:return G.day(Q,{width:"wide",context:"formatting"})}},c:function($,z,G,J){let Q=$.getDay(),K=(Q-J.weekStartsOn+8)%7||7;switch(z){case"c":return String(K);case"cc":return i4(K,z.length);case"co":return G.ordinalNumber(K,{unit:"day"});case"ccc":return G.day(Q,{width:"abbreviated",context:"standalone"});case"ccccc":return G.day(Q,{width:"narrow",context:"standalone"});case"cccccc":return G.day(Q,{width:"short",context:"standalone"});case"cccc":default:return G.day(Q,{width:"wide",context:"standalone"})}},i:function($,z,G){let J=$.getDay(),Q=J===0?7:J;switch(z){case"i":return String(Q);case"ii":return i4(Q,z.length);case"io":return G.ordinalNumber(Q,{unit:"day"});case"iii":return G.day(J,{width:"abbreviated",context:"formatting"});case"iiiii":return G.day(J,{width:"narrow",context:"formatting"});case"iiiiii":return G.day(J,{width:"short",context:"formatting"});case"iiii":default:return G.day(J,{width:"wide",context:"formatting"})}},a:function($,z,G){let Q=$.getHours()/12>=1?"pm":"am";switch(z){case"a":case"aa":return G.dayPeriod(Q,{width:"abbreviated",context:"formatting"});case"aaa":return G.dayPeriod(Q,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return G.dayPeriod(Q,{width:"narrow",context:"formatting"});case"aaaa":default:return G.dayPeriod(Q,{width:"wide",context:"formatting"})}},b:function($,z,G){let J=$.getHours(),Q;if(J===12)Q=gB.noon;else if(J===0)Q=gB.midnight;else Q=J/12>=1?"pm":"am";switch(z){case"b":case"bb":return G.dayPeriod(Q,{width:"abbreviated",context:"formatting"});case"bbb":return G.dayPeriod(Q,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return G.dayPeriod(Q,{width:"narrow",context:"formatting"});case"bbbb":default:return G.dayPeriod(Q,{width:"wide",context:"formatting"})}},B:function($,z,G){let J=$.getHours(),Q;if(J>=17)Q=gB.evening;else if(J>=12)Q=gB.afternoon;else if(J>=4)Q=gB.morning;else Q=gB.night;switch(z){case"B":case"BB":case"BBB":return G.dayPeriod(Q,{width:"abbreviated",context:"formatting"});case"BBBBB":return G.dayPeriod(Q,{width:"narrow",context:"formatting"});case"BBBB":default:return G.dayPeriod(Q,{width:"wide",context:"formatting"})}},h:function($,z,G){if(z==="ho"){let J=$.getHours()%12;if(J===0)J=12;return G.ordinalNumber(J,{unit:"hour"})}return wG.h($,z)},H:function($,z,G){if(z==="Ho")return G.ordinalNumber($.getHours(),{unit:"hour"});return wG.H($,z)},K:function($,z,G){let J=$.getHours()%12;if(z==="Ko")return G.ordinalNumber(J,{unit:"hour"});return i4(J,z.length)},k:function($,z,G){let J=$.getHours();if(J===0)J=24;if(z==="ko")return G.ordinalNumber(J,{unit:"hour"});return i4(J,z.length)},m:function($,z,G){if(z==="mo")return G.ordinalNumber($.getMinutes(),{unit:"minute"});return wG.m($,z)},s:function($,z,G){if(z==="so")return G.ordinalNumber($.getSeconds(),{unit:"second"});return wG.s($,z)},S:function($,z){return wG.S($,z)},X:function($,z,G){let J=$.getTimezoneOffset();if(J===0)return"Z";switch(z){case"X":return eE2(J);case"XXXX":case"XX":return _U(J);case"XXXXX":case"XXX":default:return _U(J,":")}},x:function($,z,G){let J=$.getTimezoneOffset();switch(z){case"x":return eE2(J);case"xxxx":case"xx":return _U(J);case"xxxxx":case"xxx":default:return _U(J,":")}},O:function($,z,G){let J=$.getTimezoneOffset();switch(z){case"O":case"OO":case"OOO":return"GMT"+tE2(J,":");case"OOOO":default:return"GMT"+_U(J,":")}},z:function($,z,G){let J=$.getTimezoneOffset();switch(z){case"z":case"zz":case"zzz":return"GMT"+tE2(J,":");case"zzzz":default:return"GMT"+_U(J,":")}},t:function($,z,G){let J=Math.trunc(+$/1000);return i4(J,z.length)},T:function($,z,G){return i4(+$,z.length)}}});var zw2=($,z)=>{switch($){case"P":return z.date({width:"short"});case"PP":return z.date({width:"medium"});case"PPP":return z.date({width:"long"});case"PPPP":default:return z.date({width:"full"})}},Gw2=($,z)=>{switch($){case"p":return z.time({width:"short"});case"pp":return z.time({width:"medium"});case"ppp":return z.time({width:"long"});case"pppp":default:return z.time({width:"full"})}},Kn5=($,z)=>{let G=$.match(/(P+)(p+)?/)||[],J=G[1],Q=G[2];if(!Q)return zw2($,z);let K;switch(J){case"P":K=z.dateTime({width:"short"});break;case"PP":K=z.dateTime({width:"medium"});break;case"PPP":K=z.dateTime({width:"long"});break;case"PPPP":default:K=z.dateTime({width:"full"});break}return K.replace("{{date}}",zw2(J,z)).replace("{{time}}",Gw2(Q,z))},UA;var He=k(()=>{UA={p:Gw2,P:Kn5}});function DC($){return Zn5.test($)}function vC($){return Un5.test($)}function WA($,z,G){let J=Yn5($,z,G);if(console.warn(J),Wn5.includes($))throw RangeError(J)}function Yn5($,z,G){let J=$[0]==="Y"?"years":"days of the month";return`Use \`${$.toLowerCase()}\` instead of \`${$}\` (in \`${z}\`) for formatting ${J} to the input \`${G}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}var Zn5,Un5,Wn5;var qe=k(()=>{Zn5=/^D+$/,Un5=/^Y+$/,Wn5=["D","DD","YY","YYYY"]});function hB($,z,G){let J=i8(),Q=G?.locale??J.locale??KA,K=G?.firstWeekContainsDate??G?.locale?.options?.firstWeekContainsDate??J.firstWeekContainsDate??J.locale?.options?.firstWeekContainsDate??1,Z=G?.weekStartsOn??G?.locale?.options?.weekStartsOn??J.weekStartsOn??J.locale?.options?.weekStartsOn??0,U=M5($,G?.in);if(!mv2(U))throw RangeError("Invalid time value");let Y=z.match(Bn5).map((V)=>{let B=V[0];if(B==="p"||B==="P"){let H=UA[B];return H(V,Q.formatLong)}return V}).join("").match(Vn5).map((V)=>{if(V==="''")return{isToken:!1,value:"'"};let B=V[0];if(B==="'")return{isToken:!1,value:Ln5(V)};if(Xe[B])return{isToken:!0,value:V};if(B.match(qn5))throw RangeError("Format string contains an unescaped latin alphabet character `"+B+"`");return{isToken:!1,value:V}});if(Q.localize.preprocessor)Y=Q.localize.preprocessor(U,Y);let W={firstWeekContainsDate:K,weekStartsOn:Z,locale:Q};return Y.map((V)=>{if(!V.isToken)return V.value;let B=V.value;if(!G?.useAdditionalWeekYearTokens&&vC(B)||!G?.useAdditionalDayOfYearTokens&&DC(B))WA(B,z,String($));let H=Xe[B[0]];return H(U,B,Q.localize,W)}).join("")}function Ln5($){let z=$.match(Xn5);if(!z)return $;return z[1].replace(Hn5,"'")}var Vn5,Bn5,Xn5,Hn5,qn5;var Jw2=k(()=>{Ye();wU();$w2();He();qe();rt();R1();Vn5=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Bn5=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Xn5=/^'([^]*?)'?$/,Hn5=/''/g,qn5=/[a-zA-Z]/});var Qw2=()=>{};var Kw2=()=>{};var Zw2=()=>{};var Uw2=()=>{};var Ww2=()=>{};var Yw2=()=>{};var Vw2=()=>{};var Bw2=()=>{};var Xw2=()=>{};var Hw2=()=>{};var qw2=()=>{};var Lw2=()=>{};var Fw2=()=>{};var Nw2=()=>{};var kw2=()=>{};var Aw2=()=>{};var jw2=()=>{};function Mw2(){return Object.assign({},i8())}var Le=k(()=>{wU()});var Ow2=()=>{};function Iw2($,z){let G=M5($,z?.in).getDay();return G===0?7:G}var Fe=k(()=>{R1()});var Rw2=()=>{};var Dw2=()=>{};var vw2=()=>{};var Ew2=()=>{};var ww2=()=>{};var Pw2=()=>{};var Cw2=()=>{};var Tw2=()=>{};var bw2=()=>{};var _w2=()=>{};var xw2=()=>{};var Sw2=()=>{};var yw2=()=>{};var uw2=()=>{};var gw2=()=>{};var hw2=()=>{};function fw2($,z){let{start:G,end:J}=VE2(z?.in,$),Q={},K=YE2(J,G);if(K)Q.years=K;let Z=_B(G,{years:Q.years}),U=KE2(J,Z);if(U)Q.months=U;let Y=_B(Z,{months:Q.months}),W=sv2(J,Y);if(W)Q.days=W;let V=_B(Y,{days:Q.days}),B=tv2(J,V);if(B)Q.hours=B;let H=_B(V,{hours:Q.hours}),X=zE2(J,H);if(X)Q.minutes=X;let q=_B(H,{minutes:Q.minutes}),L=UE2(J,q);if(L)Q.seconds=L;return Q}var mw2=k(()=>{BE2();nt();et();$e();ze();Ke();Ze();Ue()});var cw2=()=>{};var iw2=()=>{};var lw2=()=>{};var pw2=()=>{};var dw2=()=>{};var nw2=()=>{};var aw2=()=>{};var ow2=()=>{};function rw2($,z){let G=Fn5(z)?new z(0):Q4(z,0);return G.setFullYear($.getFullYear(),$.getMonth(),$.getDate()),G.setHours($.getHours(),$.getMinutes(),$.getSeconds(),$.getMilliseconds()),G}function Fn5($){return typeof $==="function"&&$.prototype?.constructor===$}var Ne=k(()=>{t3()});class ke{subPriority=0;validate($,z){return!0}}var Nn5=10,Ae,je;var Me=k(()=>{t3();Ne();Ae=class Ae extends ke{constructor($,z,G,J,Q){super();if(this.value=$,this.validateValue=z,this.setValue=G,this.priority=J,Q)this.subPriority=Q}validate($,z){return this.validateValue($,this.value,z)}set($,z,G){return this.setValue($,z,this.value,G)}};je=class je extends ke{priority=Nn5;subPriority=-1;constructor($,z){super();this.context=$||((G)=>Q4(z,G))}set($,z){if(z.timestampIsSet)return $;return Q4($,rw2($,this.context))}}});class H5{run($,z,G,J){let Q=this.parse($,z,G,J);if(!Q)return null;return{setter:new Ae(Q.value,this.validate,this.set,this.priority,this.subPriority),rest:Q.rest}}validate($,z,G){return!0}}var _4=k(()=>{Me()});var Oe;var sw2=k(()=>{_4();Oe=class Oe extends H5{priority=140;parse($,z,G){switch(z){case"G":case"GG":case"GGG":return G.era($,{width:"abbreviated"})||G.era($,{width:"narrow"});case"GGGGG":return G.era($,{width:"narrow"});case"GGGG":default:return G.era($,{width:"wide"})||G.era($,{width:"abbreviated"})||G.era($,{width:"narrow"})}}set($,z,G){return z.era=G,$.setFullYear(G,0,1),$.setHours(0,0,0,0),$}incompatibleTokens=["R","u","t","T"]}});var w4,l8;var X6=k(()=>{w4={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},l8={basicOptionalMinutes:/^([+-])(\d{2})(\d{2})?|Z/,basic:/^([+-])(\d{2})(\d{2})|Z/,basicOptionalSeconds:/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,extended:/^([+-])(\d{2}):(\d{2})|Z/,extendedOptionalSeconds:/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/}});function Q1($,z){if(!$)return $;return{value:z($.value),rest:$.rest}}function k4($,z){let G=z.match($);if(!G)return null;return{value:parseInt(G[0],10),rest:z.slice(G[0].length)}}function p8($,z){let G=z.match($);if(!G)return null;if(G[0]==="Z")return{value:0,rest:z.slice(1)};let J=G[1]==="+"?1:-1,Q=G[2]?parseInt(G[2],10):0,K=G[3]?parseInt(G[3],10):0,Z=G[5]?parseInt(G[5],10):0;return{value:J*(Q*BC+K*VC+Z*qv2),rest:z.slice(G[0].length)}}function EC($){return k4(w4.anyDigitsSigned,$)}function s5($,z){switch($){case 1:return k4(w4.singleDigit,z);case 2:return k4(w4.twoDigits,z);case 3:return k4(w4.threeDigits,z);case 4:return k4(w4.fourDigits,z);default:return k4(new RegExp("^\\d{1,"+$+"}"),z)}}function fB($,z){switch($){case 1:return k4(w4.singleDigitSigned,z);case 2:return k4(w4.twoDigitsSigned,z);case 3:return k4(w4.threeDigitsSigned,z);case 4:return k4(w4.fourDigitsSigned,z);default:return k4(new RegExp("^-?\\d{1,"+$+"}"),z)}}function mB($){switch($){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;case"am":case"midnight":case"night":default:return 0}}function wC($,z){let G=z>0,J=G?z:1-z,Q;if(J<=50)Q=$||100;else{let K=J+50,Z=Math.trunc(K/100)*100,U=$>=K%100;Q=$+Z-(U?100:0)}return G?Q:1-Q}function PC($){return $%400===0||$%4===0&&$%100!==0}var z1=k(()=>{vQ();X6()});var Ie;var tw2=k(()=>{_4();z1();Ie=class Ie extends H5{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse($,z,G){let J=(Q)=>({year:Q,isTwoDigitYear:z==="yy"});switch(z){case"y":return Q1(s5(4,$),J);case"yo":return Q1(G.ordinalNumber($,{unit:"year"}),J);default:return Q1(s5(z.length,$),J)}}validate($,z){return z.isTwoDigitYear||z.year>0}set($,z,G){let J=$.getFullYear();if(G.isTwoDigitYear){let K=wC(G.year,J);return $.setFullYear(K,0,1),$.setHours(0,0,0,0),$}let Q=!("era"in z)||z.era===1?G.year:1-G.year;return $.setFullYear(Q,0,1),$.setHours(0,0,0,0),$}}});var Re;var ew2=k(()=>{ZA();wQ();_4();z1();Re=class Re extends H5{priority=130;parse($,z,G){let J=(Q)=>({year:Q,isTwoDigitYear:z==="YY"});switch(z){case"Y":return Q1(s5(4,$),J);case"Yo":return Q1(G.ordinalNumber($,{unit:"year"}),J);default:return Q1(s5(z.length,$),J)}}validate($,z){return z.isTwoDigitYear||z.year>0}set($,z,G,J){let Q=uB($,J);if(G.isTwoDigitYear){let Z=wC(G.year,Q);return $.setFullYear(Z,0,J.firstWeekContainsDate),$.setHours(0,0,0,0),j9($,J)}let K=!("era"in z)||z.era===1?G.year:1-G.year;return $.setFullYear(K,0,J.firstWeekContainsDate),$.setHours(0,0,0,0),j9($,J)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]}});var De;var $P2=k(()=>{PU();t3();_4();z1();De=class De extends H5{priority=130;parse($,z){if(z==="R")return fB(4,$);return fB(z.length,$)}set($,z,G){let J=Q4($,0);return J.setFullYear(G,0,4),J.setHours(0,0,0,0),s0(J)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]}});var ve;var zP2=k(()=>{_4();z1();ve=class ve extends H5{priority=130;parse($,z){if(z==="u")return fB(4,$);return fB(z.length,$)}set($,z,G){return $.setFullYear(G,0,1),$.setHours(0,0,0,0),$}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]}});var Ee;var GP2=k(()=>{_4();z1();Ee=class Ee extends H5{priority=120;parse($,z,G){switch(z){case"Q":case"QQ":return s5(z.length,$);case"Qo":return G.ordinalNumber($,{unit:"quarter"});case"QQQ":return G.quarter($,{width:"abbreviated",context:"formatting"})||G.quarter($,{width:"narrow",context:"formatting"});case"QQQQQ":return G.quarter($,{width:"narrow",context:"formatting"});case"QQQQ":default:return G.quarter($,{width:"wide",context:"formatting"})||G.quarter($,{width:"abbreviated",context:"formatting"})||G.quarter($,{width:"narrow",context:"formatting"})}}validate($,z){return z>=1&&z<=4}set($,z,G){return $.setMonth((G-1)*3,1),$.setHours(0,0,0,0),$}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]}});var we;var JP2=k(()=>{_4();z1();we=class we extends H5{priority=120;parse($,z,G){switch(z){case"q":case"qq":return s5(z.length,$);case"qo":return G.ordinalNumber($,{unit:"quarter"});case"qqq":return G.quarter($,{width:"abbreviated",context:"standalone"})||G.quarter($,{width:"narrow",context:"standalone"});case"qqqqq":return G.quarter($,{width:"narrow",context:"standalone"});case"qqqq":default:return G.quarter($,{width:"wide",context:"standalone"})||G.quarter($,{width:"abbreviated",context:"standalone"})||G.quarter($,{width:"narrow",context:"standalone"})}}validate($,z){return z>=1&&z<=4}set($,z,G){return $.setMonth((G-1)*3,1),$.setHours(0,0,0,0),$}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]}});var Pe;var QP2=k(()=>{X6();_4();z1();Pe=class Pe extends H5{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse($,z,G){let J=(Q)=>Q-1;switch(z){case"M":return Q1(k4(w4.month,$),J);case"MM":return Q1(s5(2,$),J);case"Mo":return Q1(G.ordinalNumber($,{unit:"month"}),J);case"MMM":return G.month($,{width:"abbreviated",context:"formatting"})||G.month($,{width:"narrow",context:"formatting"});case"MMMMM":return G.month($,{width:"narrow",context:"formatting"});case"MMMM":default:return G.month($,{width:"wide",context:"formatting"})||G.month($,{width:"abbreviated",context:"formatting"})||G.month($,{width:"narrow",context:"formatting"})}}validate($,z){return z>=0&&z<=11}set($,z,G){return $.setMonth(G,1),$.setHours(0,0,0,0),$}}});var Ce;var KP2=k(()=>{X6();_4();z1();Ce=class Ce extends H5{priority=110;parse($,z,G){let J=(Q)=>Q-1;switch(z){case"L":return Q1(k4(w4.month,$),J);case"LL":return Q1(s5(2,$),J);case"Lo":return Q1(G.ordinalNumber($,{unit:"month"}),J);case"LLL":return G.month($,{width:"abbreviated",context:"standalone"})||G.month($,{width:"narrow",context:"standalone"});case"LLLLL":return G.month($,{width:"narrow",context:"standalone"});case"LLLL":default:return G.month($,{width:"wide",context:"standalone"})||G.month($,{width:"abbreviated",context:"standalone"})||G.month($,{width:"narrow",context:"standalone"})}}validate($,z){return z>=0&&z<=11}set($,z,G){return $.setMonth(G,1),$.setHours(0,0,0,0),$}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]}});function ZP2($,z,G){let J=M5($,G?.in),Q=IC(J,G)-z;return J.setDate(J.getDate()-Q*7),M5(J,G?.in)}var Te=k(()=>{RC();R1()});var be;var UP2=k(()=>{Te();wQ();X6();_4();z1();be=class be extends H5{priority=100;parse($,z,G){switch(z){case"w":return k4(w4.week,$);case"wo":return G.ordinalNumber($,{unit:"week"});default:return s5(z.length,$)}}validate($,z){return z>=1&&z<=53}set($,z,G,J){return j9(ZP2($,G,J),J)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]}});function WP2($,z,G){let J=M5($,G?.in),Q=MC(J,G)-z;return J.setDate(J.getDate()-Q*7),J}var _e=k(()=>{OC();R1()});var xe;var YP2=k(()=>{_e();PU();X6();_4();z1();xe=class xe extends H5{priority=100;parse($,z,G){switch(z){case"I":return k4(w4.week,$);case"Io":return G.ordinalNumber($,{unit:"week"});default:return s5(z.length,$)}}validate($,z){return z>=1&&z<=53}set($,z,G){return s0(WP2($,G))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]}});var kn5,An5,Se;var VP2=k(()=>{X6();_4();z1();kn5=[31,28,31,30,31,30,31,31,30,31,30,31],An5=[31,29,31,30,31,30,31,31,30,31,30,31];Se=class Se extends H5{priority=90;subPriority=1;parse($,z,G){switch(z){case"d":return k4(w4.date,$);case"do":return G.ordinalNumber($,{unit:"date"});default:return s5(z.length,$)}}validate($,z){let G=$.getFullYear(),J=PC(G),Q=$.getMonth();if(J)return z>=1&&z<=An5[Q];else return z>=1&&z<=kn5[Q]}set($,z,G){return $.setDate(G),$.setHours(0,0,0,0),$}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]}});var ye;var BP2=k(()=>{X6();_4();z1();ye=class ye extends H5{priority=90;subpriority=1;parse($,z,G){switch(z){case"D":case"DD":return k4(w4.dayOfYear,$);case"Do":return G.ordinalNumber($,{unit:"date"});default:return s5(z.length,$)}}validate($,z){let G=$.getFullYear();if(PC(G))return z>=1&&z<=366;else return z>=1&&z<=365}set($,z,G){return $.setMonth(0,G),$.setHours(0,0,0,0),$}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]}});function cB($,z,G){let J=i8(),Q=G?.weekStartsOn??G?.locale?.options?.weekStartsOn??J.weekStartsOn??J.locale?.options?.weekStartsOn??0,K=M5($,G?.in),Z=K.getDay(),Y=(z%7+7)%7,W=7-Q,V=z<0||z>6?z-(Z+W)%7:(Y+W)%7-(Z+W)%7;return EQ(K,V,G)}var YA=k(()=>{wU();QA();R1()});var ue;var XP2=k(()=>{YA();_4();ue=class ue extends H5{priority=90;parse($,z,G){switch(z){case"E":case"EE":case"EEE":return G.day($,{width:"abbreviated",context:"formatting"})||G.day($,{width:"short",context:"formatting"})||G.day($,{width:"narrow",context:"formatting"});case"EEEEE":return G.day($,{width:"narrow",context:"formatting"});case"EEEEEE":return G.day($,{width:"short",context:"formatting"})||G.day($,{width:"narrow",context:"formatting"});case"EEEE":default:return G.day($,{width:"wide",context:"formatting"})||G.day($,{width:"abbreviated",context:"formatting"})||G.day($,{width:"short",context:"formatting"})||G.day($,{width:"narrow",context:"formatting"})}}validate($,z){return z>=0&&z<=6}set($,z,G,J){return $=cB($,G,J),$.setHours(0,0,0,0),$}incompatibleTokens=["D","i","e","c","t","T"]}});var ge;var HP2=k(()=>{YA();_4();z1();ge=class ge extends H5{priority=90;parse($,z,G,J){let Q=(K)=>{let Z=Math.floor((K-1)/7)*7;return(K+J.weekStartsOn+6)%7+Z};switch(z){case"e":case"ee":return Q1(s5(z.length,$),Q);case"eo":return Q1(G.ordinalNumber($,{unit:"day"}),Q);case"eee":return G.day($,{width:"abbreviated",context:"formatting"})||G.day($,{width:"short",context:"formatting"})||G.day($,{width:"narrow",context:"formatting"});case"eeeee":return G.day($,{width:"narrow",context:"formatting"});case"eeeeee":return G.day($,{width:"short",context:"formatting"})||G.day($,{width:"narrow",context:"formatting"});case"eeee":default:return G.day($,{width:"wide",context:"formatting"})||G.day($,{width:"abbreviated",context:"formatting"})||G.day($,{width:"short",context:"formatting"})||G.day($,{width:"narrow",context:"formatting"})}}validate($,z){return z>=0&&z<=6}set($,z,G,J){return $=cB($,G,J),$.setHours(0,0,0,0),$}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]}});var he;var qP2=k(()=>{YA();_4();z1();he=class he extends H5{priority=90;parse($,z,G,J){let Q=(K)=>{let Z=Math.floor((K-1)/7)*7;return(K+J.weekStartsOn+6)%7+Z};switch(z){case"c":case"cc":return Q1(s5(z.length,$),Q);case"co":return Q1(G.ordinalNumber($,{unit:"day"}),Q);case"ccc":return G.day($,{width:"abbreviated",context:"standalone"})||G.day($,{width:"short",context:"standalone"})||G.day($,{width:"narrow",context:"standalone"});case"ccccc":return G.day($,{width:"narrow",context:"standalone"});case"cccccc":return G.day($,{width:"short",context:"standalone"})||G.day($,{width:"narrow",context:"standalone"});case"cccc":default:return G.day($,{width:"wide",context:"standalone"})||G.day($,{width:"abbreviated",context:"standalone"})||G.day($,{width:"short",context:"standalone"})||G.day($,{width:"narrow",context:"standalone"})}}validate($,z){return z>=0&&z<=6}set($,z,G,J){return $=cB($,G,J),$.setHours(0,0,0,0),$}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]}});function LP2($,z,G){let J=M5($,G?.in),Q=Iw2(J,G),K=z-Q;return EQ(J,K,G)}var fe=k(()=>{QA();Fe();R1()});var me;var FP2=k(()=>{fe();_4();z1();me=class me extends H5{priority=90;parse($,z,G){let J=(Q)=>{if(Q===0)return 7;return Q};switch(z){case"i":case"ii":return s5(z.length,$);case"io":return G.ordinalNumber($,{unit:"day"});case"iii":return Q1(G.day($,{width:"abbreviated",context:"formatting"})||G.day($,{width:"short",context:"formatting"})||G.day($,{width:"narrow",context:"formatting"}),J);case"iiiii":return Q1(G.day($,{width:"narrow",context:"formatting"}),J);case"iiiiii":return Q1(G.day($,{width:"short",context:"formatting"})||G.day($,{width:"narrow",context:"formatting"}),J);case"iiii":default:return Q1(G.day($,{width:"wide",context:"formatting"})||G.day($,{width:"abbreviated",context:"formatting"})||G.day($,{width:"short",context:"formatting"})||G.day($,{width:"narrow",context:"formatting"}),J)}}validate($,z){return z>=1&&z<=7}set($,z,G){return $=LP2($,G),$.setHours(0,0,0,0),$}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]}});var ce;var NP2=k(()=>{_4();z1();ce=class ce extends H5{priority=80;parse($,z,G){switch(z){case"a":case"aa":case"aaa":return G.dayPeriod($,{width:"abbreviated",context:"formatting"})||G.dayPeriod($,{width:"narrow",context:"formatting"});case"aaaaa":return G.dayPeriod($,{width:"narrow",context:"formatting"});case"aaaa":default:return G.dayPeriod($,{width:"wide",context:"formatting"})||G.dayPeriod($,{width:"abbreviated",context:"formatting"})||G.dayPeriod($,{width:"narrow",context:"formatting"})}}set($,z,G){return $.setHours(mB(G),0,0,0),$}incompatibleTokens=["b","B","H","k","t","T"]}});var ie;var kP2=k(()=>{_4();z1();ie=class ie extends H5{priority=80;parse($,z,G){switch(z){case"b":case"bb":case"bbb":return G.dayPeriod($,{width:"abbreviated",context:"formatting"})||G.dayPeriod($,{width:"narrow",context:"formatting"});case"bbbbb":return G.dayPeriod($,{width:"narrow",context:"formatting"});case"bbbb":default:return G.dayPeriod($,{width:"wide",context:"formatting"})||G.dayPeriod($,{width:"abbreviated",context:"formatting"})||G.dayPeriod($,{width:"narrow",context:"formatting"})}}set($,z,G){return $.setHours(mB(G),0,0,0),$}incompatibleTokens=["a","B","H","k","t","T"]}});var le;var AP2=k(()=>{_4();z1();le=class le extends H5{priority=80;parse($,z,G){switch(z){case"B":case"BB":case"BBB":return G.dayPeriod($,{width:"abbreviated",context:"formatting"})||G.dayPeriod($,{width:"narrow",context:"formatting"});case"BBBBB":return G.dayPeriod($,{width:"narrow",context:"formatting"});case"BBBB":default:return G.dayPeriod($,{width:"wide",context:"formatting"})||G.dayPeriod($,{width:"abbreviated",context:"formatting"})||G.dayPeriod($,{width:"narrow",context:"formatting"})}}set($,z,G){return $.setHours(mB(G),0,0,0),$}incompatibleTokens=["a","b","t","T"]}});var pe;var jP2=k(()=>{X6();_4();z1();pe=class pe extends H5{priority=70;parse($,z,G){switch(z){case"h":return k4(w4.hour12h,$);case"ho":return G.ordinalNumber($,{unit:"hour"});default:return s5(z.length,$)}}validate($,z){return z>=1&&z<=12}set($,z,G){let J=$.getHours()>=12;if(J&&G<12)$.setHours(G+12,0,0,0);else if(!J&&G===12)$.setHours(0,0,0,0);else $.setHours(G,0,0,0);return $}incompatibleTokens=["H","K","k","t","T"]}});var de;var MP2=k(()=>{X6();_4();z1();de=class de extends H5{priority=70;parse($,z,G){switch(z){case"H":return k4(w4.hour23h,$);case"Ho":return G.ordinalNumber($,{unit:"hour"});default:return s5(z.length,$)}}validate($,z){return z>=0&&z<=23}set($,z,G){return $.setHours(G,0,0,0),$}incompatibleTokens=["a","b","h","K","k","t","T"]}});var ne;var OP2=k(()=>{X6();_4();z1();ne=class ne extends H5{priority=70;parse($,z,G){switch(z){case"K":return k4(w4.hour11h,$);case"Ko":return G.ordinalNumber($,{unit:"hour"});default:return s5(z.length,$)}}validate($,z){return z>=0&&z<=11}set($,z,G){if($.getHours()>=12&&G<12)$.setHours(G+12,0,0,0);else $.setHours(G,0,0,0);return $}incompatibleTokens=["h","H","k","t","T"]}});var ae;var IP2=k(()=>{X6();_4();z1();ae=class ae extends H5{priority=70;parse($,z,G){switch(z){case"k":return k4(w4.hour24h,$);case"ko":return G.ordinalNumber($,{unit:"hour"});default:return s5(z.length,$)}}validate($,z){return z>=1&&z<=24}set($,z,G){let J=G<=24?G%24:G;return $.setHours(J,0,0,0),$}incompatibleTokens=["a","b","h","H","K","t","T"]}});var oe;var RP2=k(()=>{X6();_4();z1();oe=class oe extends H5{priority=60;parse($,z,G){switch(z){case"m":return k4(w4.minute,$);case"mo":return G.ordinalNumber($,{unit:"minute"});default:return s5(z.length,$)}}validate($,z){return z>=0&&z<=59}set($,z,G){return $.setMinutes(G,0,0),$}incompatibleTokens=["t","T"]}});var re;var DP2=k(()=>{X6();_4();z1();re=class re extends H5{priority=50;parse($,z,G){switch(z){case"s":return k4(w4.second,$);case"so":return G.ordinalNumber($,{unit:"second"});default:return s5(z.length,$)}}validate($,z){return z>=0&&z<=59}set($,z,G){return $.setSeconds(G,0),$}incompatibleTokens=["t","T"]}});var se;var vP2=k(()=>{_4();z1();se=class se extends H5{priority=30;parse($,z){let G=(J)=>Math.trunc(J*Math.pow(10,-z.length+3));return Q1(s5(z.length,$),G)}set($,z,G){return $.setMilliseconds(G),$}incompatibleTokens=["t","T"]}});var te;var EP2=k(()=>{t3();qC();X6();_4();z1();te=class te extends H5{priority=10;parse($,z){switch(z){case"X":return p8(l8.basicOptionalMinutes,$);case"XX":return p8(l8.basic,$);case"XXXX":return p8(l8.basicOptionalSeconds,$);case"XXXXX":return p8(l8.extendedOptionalSeconds,$);case"XXX":default:return p8(l8.extended,$)}}set($,z,G){if(z.timestampIsSet)return $;return Q4($,$.getTime()-CU($)-G)}incompatibleTokens=["t","T","x"]}});var ee;var wP2=k(()=>{t3();qC();X6();_4();z1();ee=class ee extends H5{priority=10;parse($,z){switch(z){case"x":return p8(l8.basicOptionalMinutes,$);case"xx":return p8(l8.basic,$);case"xxxx":return p8(l8.basicOptionalSeconds,$);case"xxxxx":return p8(l8.extendedOptionalSeconds,$);case"xxx":default:return p8(l8.extended,$)}}set($,z,G){if(z.timestampIsSet)return $;return Q4($,$.getTime()-CU($)-G)}incompatibleTokens=["t","T","X"]}});var $22;var PP2=k(()=>{t3();_4();z1();$22=class $22 extends H5{priority=40;parse($){return EC($)}set($,z,G){return[Q4($,G*1000),{timestampIsSet:!0}]}incompatibleTokens="*"}});var z22;var CP2=k(()=>{t3();_4();z1();z22=class z22 extends H5{priority=20;parse($){return EC($)}set($,z,G){return[Q4($,G),{timestampIsSet:!0}]}incompatibleTokens="*"}});var TP2;var bP2=k(()=>{sw2();tw2();ew2();$P2();zP2();GP2();JP2();QP2();KP2();UP2();YP2();VP2();BP2();XP2();HP2();qP2();FP2();NP2();kP2();AP2();jP2();MP2();OP2();IP2();RP2();DP2();vP2();EP2();wP2();PP2();CP2();TP2={G:new Oe,y:new Ie,Y:new Re,R:new De,u:new ve,Q:new Ee,q:new we,M:new Pe,L:new Ce,w:new be,I:new xe,d:new Se,D:new ye,E:new ue,e:new ge,c:new he,i:new me,a:new ce,b:new ie,B:new le,h:new pe,H:new de,K:new ne,k:new ae,m:new oe,s:new re,S:new se,X:new te,x:new ee,t:new $22,T:new z22}});function CC($,z,G,J){let Q=()=>Q4(J?.in||G,NaN),K=Mw2(),Z=J?.locale??K.locale??KA,U=J?.firstWeekContainsDate??J?.locale?.options?.firstWeekContainsDate??K.firstWeekContainsDate??K.locale?.options?.firstWeekContainsDate??1,Y=J?.weekStartsOn??J?.locale?.options?.weekStartsOn??K.weekStartsOn??K.locale?.options?.weekStartsOn??0;if(!z)return $?Q():M5(G,J?.in);let W={firstWeekContainsDate:U,weekStartsOn:Y,locale:Z},V=[new je(J?.in,G)],B=z.match(Mn5).map((F)=>{let N=F[0];if(N in UA){let A=UA[N];return A(F,Z.formatLong)}return F}).join("").match(jn5),H=[];for(let F of B){if(!J?.useAdditionalWeekYearTokens&&vC(F))WA(F,z,$);if(!J?.useAdditionalDayOfYearTokens&&DC(F))WA(F,z,$);let N=F[0],A=TP2[N];if(A){let{incompatibleTokens:j}=A;if(Array.isArray(j)){let O=H.find((R)=>j.includes(R.token)||R.token===N);if(O)throw RangeError(`The format string mustn't contain \`${O.fullToken}\` and \`${F}\` at the same time`)}else if(A.incompatibleTokens==="*"&&H.length>0)throw RangeError(`The format string mustn't contain \`${F}\` and any other token at the same time`);H.push({token:N,fullToken:F});let M=A.run($,F,Z.match,W);if(!M)return Q();V.push(M.setter),$=M.rest}else{if(N.match(Dn5))throw RangeError("Format string contains an unescaped latin alphabet character `"+N+"`");if(F==="''")F="'";else if(N==="'")F=vn5(F);if($.indexOf(F)===0)$=$.slice(F.length);else return Q()}}if($.length>0&&Rn5.test($))return Q();let X=V.map((F)=>F.priority).sort((F,N)=>N-F).filter((F,N,A)=>A.indexOf(F)===N).map((F)=>V.filter((N)=>N.priority===F).sort((N,A)=>A.subPriority-N.subPriority)).map((F)=>F[0]),q=M5(G,J?.in);if(isNaN(+q))return Q();let L={};for(let F of X){if(!F.validate(q,W))return Q();let N=F.set(q,L,W);if(Array.isArray(N))q=N[0],Object.assign(L,N[1]);else q=N}return q}function vn5($){return $.match(On5)[1].replace(In5,"'")}var jn5,Mn5,On5,In5,Rn5,Dn5;var _P2=k(()=>{Ye();He();qe();t3();Le();R1();Me();bP2();jn5=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Mn5=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,On5=/^'([^]*?)'?$/,In5=/''/g,Rn5=/\S/,Dn5=/[a-zA-Z]/});var xP2=()=>{};var SP2=()=>{};var yP2=()=>{};var uP2=()=>{};var gP2=()=>{};var hP2=()=>{};var fP2=()=>{};var mP2=()=>{};var cP2=()=>{};var iP2=()=>{};var lP2=()=>{};var pP2=()=>{};var dP2=()=>{};var nP2=()=>{};var aP2=()=>{};var oP2=()=>{};var rP2=()=>{};var sP2=()=>{};var tP2=()=>{};var eP2=()=>{};var $C2=()=>{};var zC2=()=>{};var GC2=()=>{};var JC2=()=>{};var QC2=()=>{};var KC2=()=>{};var ZC2=()=>{};var UC2=()=>{};var WC2=()=>{};var YC2=()=>{};var VC2=()=>{};var BC2=()=>{};var XC2=()=>{};var HC2=()=>{};var qC2=()=>{};var LC2=()=>{};var FC2=()=>{};var NC2=()=>{};var kC2=()=>{};var AC2=()=>{};var jC2=()=>{};var MC2=()=>{};var OC2=()=>{};var IC2=()=>{};var RC2=()=>{};var DC2=()=>{};var vC2=()=>{};var EC2=()=>{};var wC2=()=>{};var PC2=()=>{};var CC2=()=>{};var TC2=()=>{};var bC2=()=>{};var _C2=()=>{};var xC2=()=>{};var SC2=()=>{};var yC2=()=>{};var uC2=()=>{};var gC2=()=>{};var hC2=()=>{};var fC2=()=>{};var mC2=()=>{};var cC2=()=>{};var iC2=()=>{};var lC2=()=>{};var pC2=()=>{};var dC2=()=>{};var nC2=()=>{};var aC2=()=>{};var oC2=()=>{};var rC2=()=>{};var sC2=()=>{};var tC2=()=>{};var eC2=()=>{};var $T2=()=>{};var zT2=()=>{};var GT2=()=>{};var JT2=()=>{};var QT2=()=>{};var KT2=()=>{};var ZT2=()=>{};var UT2=()=>{};var WT2=()=>{};var YT2=()=>{};var VT2=()=>{};var BT2=()=>{};var XT2=()=>{};var HT2=()=>{};var qT2=()=>{};var LT2=()=>{};var FT2=()=>{};var NT2=()=>{};var kT2=()=>{};var AT2=()=>{};var jT2=()=>{};var MT2=()=>{};var OT2=()=>{};var IT2=()=>{};var RT2=()=>{};var DT2=()=>{};var vT2=()=>{};var ET2=()=>{};var VA=k(()=>{nt();Av2();QA();Mv2();Rv2();jv2();Dv2();dt();vv2();Ev2();wv2();Pv2();Cv2();_v2();xv2();Sv2();NC();yv2();t3();uv2();gv2();cv2();FC();iv2();lv2();st();nv2();av2();tt();et();$e();$E2();AC();ze();Ke();ZE2();Ze();WE2();Ue();XE2();HE2();qE2();LE2();NE2();kE2();AE2();ME2();RE2();DE2();Ge();vE2();EE2();PE2();CE2();TE2();Je();bE2();_E2();xE2();SE2();wE2();OE2();yE2();Jw2();Qw2();Kw2();Zw2();Uw2();Ww2();Yw2();Vw2();Bw2();Xw2();Hw2();qw2();Lw2();Fw2();Ve();Nw2();Aw2();jw2();Le();Ow2();Fe();OC();HC();Rw2();Dw2();vw2();Ew2();ww2();dv2();Pw2();Cw2();Tw2();RC();bw2();ZA();xw2();Sw2();yw2();uw2();gw2();hw2();mw2();cw2();iw2();lw2();pw2();dw2();nw2();aw2();ow2();Qe();kw2();xP2();SP2();yP2();hv2();gP2();fP2();mP2();iP2();lP2();pP2();nP2();hP2();aP2();Fv2();Nv2();oP2();rP2();sP2();tP2();eP2();$C2();zC2();GC2();JC2();QC2();KC2();ZC2();rt();UC2();kv2();WC2();VC2();BC2();HC2();qC2();_w2();LC2();XC2();FC2();NC2();Tv2();kC2();AC2();jC2();MC2();bv2();OC2();IC2();RC2();DC2();vC2();EC2();wC2();PC2();CC2();TC2();bC2();_C2();xC2();_P2();SC2();yC2();uC2();gC2();hC2();fC2();mC2();cC2();iC2();lC2();pC2();dC2();nC2();aC2();oC2();rC2();sC2();eC2();$T2();YA();zT2();GT2();JT2();fe();_e();Iv2();QT2();KT2();tC2();ZT2();UT2();Te();WT2();YT2();at();VT2();uP2();PU();ot();cP2();jE2();FE2();dP2();BT2();XT2();wQ();Be();We();HT2();LT2();FT2();YC2();NT2();ev2();kT2();AT2();qT2();jT2();MT2();OT2();IT2();R1();Ne();RT2();DT2();vT2();ET2()});function BA($){if(!$)return{since:"7 days ago",label:"7d",days:7};let z=$.match(/^(\d+)(h|d|w)$/);if(!z)throw Error(`Invalid window: ${$}. Use: 24h, 7d, 14d, 30d, 2w`);let G=parseInt(z[1]||"0",10),J=z[2]||"";switch(J){case"h":return{since:`${G} hours ago`,label:`${G}h`,days:G/24};case"d":return{since:`${G} days ago`,label:`${G}d`,days:G};case"w":return{since:`${G*7} days ago`,label:`${G}w`,days:G*7};default:throw Error(`Invalid unit: ${J}`)}}function J22($){let z=BA($);return{current:z,previous:{since:`${z.days*2} days ago`,until:`${z.days} days ago`,label:z.label,days:z.days}}}function XA($,z,G){let J=G||aw(),Q=Date.now();if(z){if(!/^\d{4}-\d{2}-\d{2}$/.test(z))throw Error(`Invalid date: ${z}. Use YYYY-MM-DD format.`);let Y=TU(CC(z,"yyyy-MM-dd",new V6(Q,J)));if(Number.isNaN(Y.getTime()))throw Error(`Invalid date: ${z}. Use YYYY-MM-DD format.`);let W=EQ(Y,1);return{start:Y.getTime(),end:W.getTime(),timezone:J}}let K=BA($||"1d"),Z=Math.min(K.days,G22);if(Z<K.days)console.warn(`⚠ Maximum window is ${G22}d. Capping to ${G22}d.`);let U=Z*86400000;return{start:Q-U,end:Q,timezone:J}}var G22=30;var TC=k(()=>{JA();VA();XB()});function M9($){Q22.push($)}function bC($){if(!$||$.length===0)return Q22;return Q22.filter((z)=>$.includes(z.name))}var Q22;var $z=k(()=>{Q22=[]});import{createReadStream as En5,readFileSync as wn5}from"node:fs";import{createInterface as Pn5}from"node:readline";function h6($,z=Cn5){return $.length>z?$.slice(0,z):$}function f6($){if(!$)return;let z=$.split("/").filter(Boolean);return z[z.length-1]||void 0}function g3($,z,G){return Number.isFinite($)&&$>=z&&$<G}function Tn5($){return[$.vendor,$.sessionId,$.timestamp,$.role,YB([$.sourcePath,$.text])].join(":")}function zz($){if(typeof $==="number"&&Number.isFinite($))return $;if(typeof $!=="string")return 0;let z=Date.parse($);return Number.isNaN(z)?0:z}function Gz($){return{...$,idempotencyKey:Tn5({vendor:$.vendor,sessionId:$.vendorSessionId??$.sourcePath??"no-session",timestamp:$.timestamp,role:$.role,sourcePath:$.sourcePath??"",text:$.text})}}function Jz($){return $.sort((z,G)=>z.timestamp-G.timestamp)}function r9($){let z;try{z=wn5($,"utf-8")}catch{return[]}let G=[];for(let J of z.split(`
772
772
  `)){if(!J.trim())continue;try{G.push(JSON.parse(J))}catch{}}return G}async function*t0($){let z=Pn5({input:En5($),crlfDelay:Number.POSITIVE_INFINITY});for await(let G of z){if(!G.trim())continue;try{yield JSON.parse(G)}catch{}}}function s9($,z,G="first"){if(G==="immediate"){let Q=$[z+1];return Q?.role==="assistant"&&Q.text?Q.text:void 0}let J;for(let Q=z+1;Q<$.length;Q++){let K=$[Q];if(!K)continue;if(K.role==="user")break;if(K.role==="assistant"&&K.text.trim()){if(G==="first")return K.text;J=K.text}}return J}var Cn5=200;var Qz=k(()=>{MG()});import{existsSync as HA,readdirSync as K22,statSync as bn5}from"node:fs";import{homedir as _n5}from"node:os";import{join as xU}from"node:path";function xn5($){try{return decodeURIComponent($)}catch{return $}}var qA;var wT2=k(()=>{$z();Qz();qA=xU(_n5(),".grok","sessions");M9({name:"grok",async detect(){return HA(qA)},async parse($,z){if(!HA(qA))return[];let G=[],J;try{J=K22(qA).filter((Q)=>{let K=xU(qA,Q);try{if(!bn5(K).isDirectory())return!1}catch{return!1}if(HA(xU(K,"prompt_history.jsonl")))return!0;try{return K22(K).some((Z)=>Z.endsWith(".jsonl"))}catch{return!1}})}catch{return[]}for(let Q of J){let K=xn5(Q),Z=f6(K)||K,U=xU(qA,Q),Y=xU(U,"prompt_history.jsonl");if(!HA(Y))continue;for await(let W of t0(Y)){if(!W.prompt||W.is_bash)continue;let V=W.timestamp?Date.parse(W.timestamp):NaN;if(!Number.isFinite(V)||!g3(V,$,z))continue;G.push({tool:"grok",timestamp:V,project:Z,prompt:W.prompt,sessionId:W.session_id})}try{for(let W of K22(U)){let V=xU(U,W),B=xU(V,"chat_history.jsonl");if(!HA(B))continue;let H=r9(B),X=[];for(let q of H){let L=q.role||(q.type==="user"?"user":q.type==="assistant"?"assistant":null);if(!L)continue;let F="";if(typeof q.content==="string")F=q.content;else if(Array.isArray(q.content))F=q.content.map((N)=>N?.type==="text"?N.text||"":"").join(`
773
- `).trim();if(F)X.push({role:L,text:h6(F),ts:q.timestamp?Date.parse(q.timestamp):void 0})}for(let q=0;q<X.length-1;q++){let L=X[q];if(!L||L.role!=="user")continue;let F=X[q+1];if(F&&F.role==="assistant"){let N=G.find((A)=>A.project===Z&&(A.prompt===L.text||A.prompt.startsWith(L.text)||L.text.startsWith(A.prompt))&&!A.response);if(N)N.response=F.text}}}}catch{}}return G}})});import{existsSync as LA,readdirSync as _C}from"node:fs";import{homedir as Sn5}from"node:os";import{join as yU}from"node:path";function CT2($){if(typeof $==="string")return $;if(!Array.isArray($))return"";for(let z of $)if(z?.type==="text"&&z.text)return z.text;return""}function yn5($){let z=new Map;if(!LA(SU))return z;try{for(let G of _C(SU)){let J=yU(SU,G),Q;try{Q=_C(J).filter((K)=>K.endsWith(".jsonl")&&$.has(K.replace(".jsonl","")))}catch{continue}for(let K of Q){let Z=K.replace(".jsonl",""),U=r9(yU(J,K)),Y=[];for(let V of U)if(V.type==="user"||V.type==="assistant")Y.push({role:V.type,text:CT2(V.message?.content||"")});let W=[];for(let V=0;V<Y.length;V++){let B=Y[V];if(B?.role!=="user")continue;let H=s9(Y,V,"first");W.push({prompt:B.text,response:H?h6(H):""})}if(W.length>0)z.set(Z,W)}}}catch{}return z}function un5(){if(!LA(SU))return[];let $=[];try{for(let z of _C(SU)){let G=yU(SU,z),J;try{J=_C(G)}catch{continue}for(let Q of J){if(!Q.endsWith(".jsonl"))continue;$.push({path:yU(G,Q),sessionId:Q.replace(".jsonl",""),project:f6(z)??z})}}}catch{}return $}function gn5($,z){let G=[];for(let J of un5())for(let Q of r9(J.path)){let K=Q.type==="user"||Q.type==="assistant"?Q.type:null;if(!K)continue;let Z=zz(Q.timestamp);if(!g3(Z,$,z))continue;let U=CT2(Q.message?.content??"").trim();if(!U)continue;G.push(Gz({vendor:"claude",role:K,text:U,timestamp:Z,sourcePath:J.path,vendorSessionId:J.sessionId,project:J.project}))}return Jz(G)}var PT2,Z22,SU;var TT2=k(()=>{$z();Qz();PT2=yU(Sn5(),".claude"),Z22=yU(PT2,"history.jsonl"),SU=yU(PT2,"projects");M9({name:"claude",async detect(){return LA(Z22)||LA(SU)},async parseRaw($,z){return gn5($,z)},async parse($,z){if(!LA(Z22))return[];let G=[],J=new Set;for await(let U of t0(Z22)){let Y=U.timestamp;if(typeof Y!=="number"||!g3(Y,$,z))continue;let W=U.display;if(!W)continue;let V=U.sessionId||void 0;if(V)J.add(V);G.push({ts:Y,project:f6(U.project),prompt:W,sessionId:V})}let Q=yn5(J),K=new Map;return G.map((U)=>{let Y;if(U.sessionId){let W=Q.get(U.sessionId);if(W){let V=W.find((B)=>B.prompt===U.prompt||B.prompt.startsWith(U.prompt));if(V)Y=V.response||void 0;else{let B=K.get(U.sessionId)??0,H=W[B];if(H)Y=H.response||void 0}K.set(U.sessionId,(K.get(U.sessionId)??0)+1)}}return{tool:"claude",timestamp:U.ts,project:U.project,prompt:U.prompt,response:Y,sessionId:U.sessionId}})}})});import{existsSync as iB,readdirSync as bT2}from"node:fs";import{homedir as hn5}from"node:os";import{join as PQ}from"node:path";function fn5(){let $=new Map;for(let z of _T2){let G=PQ(FA,z);if(!iB(G))continue;try{xT2(G,$)}catch{}}return $}function mn5($){return zz($.timestamp??$.payload?.timestamp)}function cn5($,z){let G=$.payload?.content??[],J=z==="user"?"input_text":"output_text",Q=G.filter((K)=>K.type===J).map((K)=>K.text??"").join(" ").trim();if(!Q)return null;if(z==="user"&&Q.startsWith("<environment_context>"))return null;if(z==="user"&&Q.startsWith("<user_instructions>"))return null;return Q}function xT2($,z){for(let G of bT2($,{withFileTypes:!0})){let J=PQ($,G.name);if(G.isDirectory())xT2(J,z);else if(G.name.endsWith(".jsonl")){let Q=r9(J),K=Q[0];if(K?.type!=="session_meta")continue;let Z=K.payload?.id,U=K.payload?.cwd;if(!Z||!U)continue;let Y=[];for(let V of Q){if(V.type!=="response_item")continue;let B=V.payload;if(!B?.role||!B.content)continue;if(B.role==="user"){let H=B.content.filter((X)=>X.type==="input_text").map((X)=>X.text||"").join(" ").trim();if(H&&!H.startsWith("<environment_context>"))Y.push({role:"user",text:H})}else if(B.role==="assistant"){let H=B.content.filter((X)=>X.type==="output_text").map((X)=>X.text||"").join(" ").trim();if(H)Y.push({role:"assistant",text:H})}}let W=new Map;for(let V=0;V<Y.length;V++){let B=Y[V];if(B?.role!=="user")continue;let H=s9(Y,V,"first");if(H)W.set(B.text.slice(0,100),h6(H))}z.set(Z,{project:f6(U)??U,responses:W})}}}function ST2($,z,G,J){for(let Q of bT2($,{withFileTypes:!0})){let K=PQ($,Q.name);if(Q.isDirectory()){ST2(K,z,G,J);continue}if(!Q.name.endsWith(".jsonl"))continue;let Z=r9(K),U=Z[0];if(U?.type!=="session_meta")continue;let Y=U.payload?.id;if(!Y)continue;let W=f6(U.payload?.cwd);for(let V of Z){if(V.type!=="response_item")continue;let B=V.payload?.role==="user"||V.payload?.role==="assistant"?V.payload.role:null;if(!B)continue;let H=mn5(V);if(!g3(H,z,G))continue;let X=cn5(V,B);if(!X)continue;J.push(Gz({vendor:"codex",role:B,text:X,timestamp:H,sourcePath:K,vendorSessionId:Y,project:W}))}}}function in5($,z){let G=[];for(let J of _T2){let Q=PQ(FA,J);if(!iB(Q))continue;try{ST2(Q,$,z,G)}catch{}}return Jz(G)}var FA,U22,_T2;var yT2=k(()=>{$z();Qz();FA=PQ(hn5(),".codex"),U22=PQ(FA,"history.jsonl"),_T2=["sessions","archived_sessions"];M9({name:"codex",async detect(){return iB(U22)||iB(PQ(FA,"sessions"))||iB(PQ(FA,"archived_sessions"))},async parseRaw($,z){return in5($,z)},async parse($,z){if(!iB(U22))return[];let G=fn5(),J=[];for await(let Q of t0(U22)){let K=(Q.ts??0)*1000;if(!g3(K,$,z))continue;let Z=Q.text;if(!Z)continue;let U=Q.session_id||void 0,Y=U?G.get(U):void 0,W=Y?.responses.get(Z.slice(0,100));J.push({tool:"codex",timestamp:K,project:Y?.project,prompt:Z,response:W,sessionId:U})}return J}})});import{existsSync as W22,readdirSync as uT2,readFileSync as gT2}from"node:fs";import{homedir as ln5}from"node:os";import{join as Y22}from"node:path";function hT2(){if(!W22(xC))return[];let $=[];try{for(let z of uT2(xC)){let G=Y22(xC,z,"chats");if(!W22(G))continue;for(let J of uT2(G))if(J.startsWith("session-")&&J.endsWith(".json"))$.push({path:Y22(G,J),project:z})}}catch{}return $}function pn5($){if($.type==="user")return"user";if($.type==="gemini")return"assistant";return null}function SC($){return($.content||[]).map((z)=>z.text||"").filter(Boolean).join(" ")}function dn5($){if($.type==="user")return{role:"user",text:SC($)};if($.type==="gemini")return{role:"assistant",text:SC($)};return{role:"other",text:""}}var xC;var fT2=k(()=>{$z();Qz();xC=Y22(ln5(),".gemini","tmp");M9({name:"gemini",async detect(){return W22(xC)},async parseRaw($,z){let G=[];for(let{path:J,project:Q}of hT2())try{let K=JSON.parse(gT2(J,"utf-8")),Z=K.sessionId||J,U=K.messages||[];for(let Y of U){let W=pn5(Y);if(!W)continue;let V=zz(Y.timestamp);if(!g3(V,$,z))continue;let B=SC(Y).trim();if(!B)continue;G.push(Gz({vendor:"gemini",role:W,text:B,timestamp:V,sourcePath:J,vendorSessionId:Z,project:Q}))}}catch{}return Jz(G)},async parse($,z){let G=hT2();if(G.length===0)return[];let J=[];for(let{path:Q,project:K}of G)try{let Z=JSON.parse(gT2(Q,"utf-8")),U=Z.sessionId||void 0,Y=Z.messages||[],W=Y.map(dn5);for(let V=0;V<Y.length;V++){let B=Y[V];if(B?.type!=="user")continue;let H=B.timestamp?new Date(B.timestamp).getTime():0;if(!g3(H,$,z))continue;let X=SC(B);if(!X)continue;let q=s9(W,V,"immediate");J.push({tool:"gemini",timestamp:H,project:K,prompt:X,response:q?h6(q):void 0,sessionId:U,metadata:B.model?{model:B.model}:void 0})}}catch{}return J}})});import{existsSync as B22,readdirSync as mT2}from"node:fs";import{homedir as nn5}from"node:os";import{join as X22}from"node:path";function cT2(){if(!B22(yC))return[];let $=[];try{for(let z of mT2(yC)){let G=X22(yC,z,"chats");if(!B22(G))continue;for(let J of mT2(G))if(J.endsWith(".jsonl"))$.push(X22(G,J))}}catch{}return $}function V22($){return($.message?.parts||[]).map((z)=>z.text||"").filter(Boolean).join(" ")}var yC;var iT2=k(()=>{$z();Qz();yC=X22(nn5(),".qwen","projects");M9({name:"qwen",async detect(){return B22(yC)},async parseRaw($,z){let G=[];for(let J of cT2())for await(let Q of t0(J)){let K=Q.type==="user"||Q.type==="assistant"?Q.type:null;if(!K)continue;let Z=zz(Q.timestamp);if(!g3(Z,$,z))continue;let U=V22(Q).trim();if(!U)continue;let Y=Q.sessionId||J;G.push(Gz({vendor:"qwen",role:K,text:U,timestamp:Z,sourcePath:J,vendorSessionId:Y,project:f6(Q.cwd)}))}return Jz(G)},async parse($,z){let G=cT2();if(G.length===0)return[];let J=[];for(let Q of G){let K=[];for await(let U of t0(Q))if(U.type==="user"||U.type==="assistant")K.push(U);let Z=K.map((U)=>({role:U.type==="user"?"user":"assistant",text:V22(U)}));for(let U=0;U<K.length;U++){let Y=K[U];if(!Y||Y.type!=="user")continue;let W=Y.timestamp?new Date(Y.timestamp).getTime():0;if(!g3(W,$,z))continue;let V=V22(Y);if(!V)continue;let B=s9(Z,U,"immediate");J.push({tool:"qwen",timestamp:W,project:f6(Y.cwd),prompt:V,response:B?h6(B):void 0,sessionId:Y.sessionId||void 0,metadata:{gitBranch:Y.gitBranch||void 0}})}}return J}})});function lB($){if(typeof $==="string")return $;if(!Array.isArray($))return null;let z=$.map((G)=>{if(typeof G!=="object"||G==null)return"";let J=G;if(J.type==="text"&&typeof J.text==="string")return J.text;return""}).filter(Boolean);return z.length>0?z.join(`
774
- `):null}function NA($){let G=($.match(/<user_query>\s*([\s\S]*?)\s*<\/user_query>/i)?.[1]??$).trim();if(!G||G.startsWith("<user_info>"))return null;return G}function H22($){if($.role==="user")return{role:"user",text:$.content};if($.role==="assistant")return{role:"assistant",text:$.content};return{role:"other",text:$.content}}import{existsSync as uC,readdirSync as q22}from"node:fs";import{homedir as an5}from"node:os";import{join as L22}from"node:path";function gC(){if(!uC(kA))return[];let $=[];try{for(let z of q22(kA)){let G=L22(kA,z,"agent-transcripts");if(!uC(G))continue;try{for(let J of q22(G)){let Q=L22(G,J,`${J}.jsonl`);if(uC(Q))$.push({filePath:Q,projectSlug:z,sessionId:J})}}catch{}}}catch{}return $}function AA($){let z=$.match(/^Users-[^-]+-Documents-(.+)$/);if(z?.[1])return z[1];let G=$.match(/^private-tmp-(.+)$/);if(G?.[1])return G[1];let J=$.match(/^private-(.+)$/);if(J?.[1])return J[1];let Q=$.split("-");return Q[Q.length-1]??$}function lT2($){let z=$.match(/^Users-([^-]+)-Documents-(.+)$/);if(z?.[1]&&z[2])return`/Users/${z[1]}/Documents/${z[2]}`;let G=$.match(/^private-tmp-(.+)$/);if(G?.[1])return`/private/tmp/${G[1]}`;let J=$.match(/^private-(.+)$/);if(J?.[1])return`/private/${J[1]}`;return null}function pT2($){return f6($)??$}function dT2(){let $=new Map;if(!uC(kA))return $;try{for(let z of q22(kA)){let G=lT2(z);if(!G)continue;let J=tj2(G);$.set(J,AA(z))}}catch{}return $}function nT2($,z){if($.workspacePath)return pT2($.workspacePath);if($.chatHash)return z.get($.chatHash);return $.meta.name||void 0}var kA;var F22=k(()=>{MG();Qz();kA=L22(an5(),".cursor","projects")});import{statSync as on5}from"node:fs";function rn5($){return $.trim().replace(/\s+/g," ").toLowerCase()}function aT2($){let z=new Map;for(let G of $){let J=`${G.project??""}|${rn5(G.prompt)}`,Q=z.get(J);if(!Q){z.set(J,G);continue}if(!Q.sessionId&&G.sessionId||(G.response?.length??0)>(Q.response?.length??0)||G.timestamp>Q.timestamp)z.set(J,G)}return[...z.values()].sort((G,J)=>G.timestamp-J.timestamp)}function oT2($,z,G){let J=on5($.filePath),Q=J.birthtimeMs>0?J.birthtimeMs:J.ctimeMs,K=J.mtimeMs,Z=AA($.projectSlug),U=[];for(let H of r9($.filePath)){if(H.role!=="user"&&H.role!=="assistant")continue;let X=lB(H.message?.content);if(X)U.push({role:H.role,content:X})}let Y=U.map(H22),W=U.map((H,X)=>H.role==="user"?X:-1).filter((H)=>H>=0),V=[],B=0;for(let H=0;H<U.length;H++){let X=U[H];if(!X||X.role!=="user")continue;let q=NA(X.content);if(!q)continue;let L=W.length<=1?Q:Q+(K-Q)*B/(W.length-1);if(B++,!g3(L,z,G))continue;let F=s9(Y,H,"first"),N=F?h6(F):void 0;V.push({tool:"cursor",timestamp:Math.round(L),project:Z,prompt:q.length>500?`${q.slice(0,500)}...`:q,response:N,sessionId:$.sessionId})}return V}function rT2($,z,G){let J=[],Q=AA($.projectSlug),K=0;for(let Z of r9($.filePath)){let U=Z.role==="user"||Z.role==="assistant"?Z.role:null;if(!U)continue;let Y=zz(Z.timestamp??Z.createdAt);if(!Y){K+=1;continue}if(!g3(Y,z,G))continue;let W=lB(Z.message?.content),V=U==="user"?NA(W??""):W?.trim();if(!V)continue;J.push(Gz({vendor:"cursor",role:U,text:V,timestamp:Y,sourcePath:$.filePath,vendorSessionId:$.sessionId,project:Q}))}return{turns:J,skippedMissingTimestamp:K}}function sT2($,z,G,J){let Q=$.meta.createdAt??0;if(!g3(Q,z,G))return[];let K=nT2($,J),Z=$.messages.map(H22),U=[];for(let Y=0;Y<$.messages.length;Y++){let W=$.messages[Y];if(!W||W.role!=="user")continue;let V=NA(W.content);if(!V)continue;let B=s9(Z,Y,"immediate"),H=B?h6(B):void 0;U.push({tool:"cursor",timestamp:Q,project:K,prompt:V.length>500?`${V.slice(0,500)}...`:V,response:H,metadata:$.meta.lastUsedModel?{model:$.meta.lastUsedModel}:void 0})}return U}var tT2=k(()=>{Qz();F22()});import{spawnSync as Gb2}from"node:child_process";import{existsSync as eT2,readdirSync as $b2}from"node:fs";import{homedir as sn5}from"node:os";import{join as N22}from"node:path";function hC(){if(!eT2(jA))return[];let $=[];try{for(let z of $b2(jA)){let G=N22(jA,z);try{for(let J of $b2(G)){let Q=N22(G,J,"store.db");if(eT2(Q))$.push(Q)}}catch{}}}catch{}return $}function Jb2($){if($==null)return null;if(typeof $==="string")return $;if(Buffer.isBuffer($))return $.toString("utf-8");if($ instanceof Uint8Array)return Buffer.from($).toString("utf-8");return null}function tn5($){if(!$.startsWith("{"))return null;try{let z=JSON.parse($),G=lB(z.content);if(z.role&&G)return{role:z.role,content:G}}catch{}return null}function en5($){try{let z=Buffer.from($.trim(),"hex").toString("utf-8");return JSON.parse(z)}catch{return null}}function $a5($){return $.match(/Workspace Path:\s*((?:\/[^\s\n<\\]+)+)/)?.[1]?.trim()||null}function za5($){for(let z of $){if(typeof z.data_hex!=="string")continue;let G=Jb2(Buffer.from(z.data_hex,"hex"));if(!G)continue;let J=$a5(G);if(J)return J}return null}function zb2($){let z=$.split(/[/\\]/),G=z.lastIndexOf("chats");if(G>=0&&z[G+1])return z[G+1];return}function Ga5($){let z=[];for(let G of $){if(typeof G.data_hex!=="string")continue;let J=Jb2(Buffer.from(G.data_hex,"hex"));if(!J)continue;let Q=tn5(J);if(Q)z.push(Q)}return z}function fC(){return Gb2("sqlite3",["-version"],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).status===0}function Qa5($){return/database is locked|database is busy|is locked|SQLITE_BUSY|SQLITE_LOCKED/i.test($)}function k22($,z,G=!1){let J=[...G?["-json"]:[],"-readonly","-cmd",`.timeout ${Ja5}`,$,z],Q=Gb2("sqlite3",J,{encoding:"utf-8",stdio:["ignore","pipe","pipe"]}),K=typeof Q.stderr==="string"?Q.stderr:"";return{ok:Q.status===0,stdout:Q.stdout??"",locked:Qa5(K)}}function Qb2($){let z=k22($,"SELECT value FROM meta WHERE key = '0';");if(z.locked)return{status:"locked"};if(!z.ok||!z.stdout.trim())return{status:"error"};let G=en5(z.stdout);if(!G)return{status:"error"};let J=k22($,"SELECT hex(data) AS data_hex FROM blobs;",!0);if(J.locked)return{status:"locked"};if(!J.ok)return{status:"ok",store:{meta:G,messages:[],chatHash:zb2($)}};let Q=J.stdout.trim()?JSON.parse(J.stdout):[];return{status:"ok",store:{meta:G,messages:Ga5(Q),workspacePath:za5(Q)??void 0,chatHash:zb2($)}}}function Kb2(){let $=hC(),z=[],G=0;if($.length===0||!fC())return{stores:z,total:$.length,locked:G};for(let J of $){let Q=Qb2(J);if(Q.status==="ok")z.push(Q.store);else if(Q.status==="locked")G+=1}return{stores:z,total:$.length,locked:G}}function Zb2(){let $=hC();if($.length===0||!fC())return{total:$.length,locked:0};let z=0;for(let G of $)if(k22(G,"SELECT value FROM meta WHERE key = '0';").locked)z+=1;return{total:$.length,locked:z}}function Ub2(){let[$]=hC();if(!$||!fC())return!1;return Qb2($).status==="ok"}var jA,Ja5=5000;var Wb2=k(()=>{jA=N22(sn5(),".cursor","chats")});import{existsSync as Ka5}from"node:fs";var Yb2=k(()=>{$z();Qz();tT2();F22();Wb2();M9({name:"cursor",async detect(){if(gC().length>0)return!0;if(!Ka5(jA))return!1;return Ub2()},async parse($,z){let G=[],J=dT2();for(let Q of gC())try{G.push(...oT2(Q,$,z))}catch{}for(let Q of Kb2().stores)try{G.push(...sT2(Q,$,z,J))}catch{}return aT2(G)},async parseRaw($,z){let G=[],J=[],Q=0,K=0;for(let Y of gC())try{let W=rT2(Y,$,z);if(G.push(...W.turns),W.skippedMissingTimestamp>0)Q+=1,K+=W.skippedMissingTimestamp}catch{J.push(`cursor transcript ${Y.sessionId} is unreadable`)}if(K>0)J.push(`cursor skipped ${K} transcript raw turns across ${Q} transcripts without exact timestamps`);let{total:Z,locked:U}=Zb2();if(U>0)J.push(`cursor: ${U}/${Z} store.db file(s) are locked (Cursor running?); coverage is partial — close Cursor and rerun, or pass --force-partial`);if(Z>0)J.push(`cursor store.db raw import skipped for ${Z} stores because per-message timestamps are unavailable`);return{turns:Jz(G),warnings:J}}})});import{existsSync as cC,readdirSync as Za5,readFileSync as Ua5}from"node:fs";import{homedir as Wa5}from"node:os";import{join as pB}from"node:path";function Va5($){let z=$.match(/<USER_REQUEST>\s*([\s\S]*?)\s*<\/USER_REQUEST>/);if(z?.[1])return z[1].trim();return $.replace(/<ADDITIONAL_METADATA>[\s\S]*?<\/ADDITIONAL_METADATA>/g,"").replace(/<USER_SETTINGS_CHANGE>[\s\S]*$/g,"").trim()}function Ba5(){let $=new Map,z=r9(pB(A22,"history.jsonl"));for(let J of z)if(J.conversationId&&J.workspace)$.set(J.conversationId,J.workspace);let G=pB(A22,"cache","last_conversations.json");if(cC(G))try{let J=JSON.parse(Ua5(G,"utf-8"));for(let[Q,K]of Object.entries(J))if(!$.has(K))$.set(K,Q)}catch{}return $}async function Xa5($){let z=[];for await(let G of t0($))z.push({step:typeof G.step_index==="number"?G.step_index:z.length,source:G.source??"",type:G.type??"",content:typeof G.content==="string"?G.content:"",ts:G.created_at?new Date(G.created_at).getTime():0});return z.sort((G,J)=>G.step-J.step),z}function Ha5($){if($.source==="USER_EXPLICIT"&&$.type==="USER_INPUT")return{role:"user",text:$.content};if($.source==="MODEL"&&$.type==="PLANNER_RESPONSE")return{role:"assistant",text:$.content};return{role:"other",text:$.content}}var A22,mC,Ya5;var Vb2=k(()=>{$z();Qz();A22=pB(Wa5(),".gemini","antigravity-cli"),mC=pB(A22,"brain"),Ya5=pB(".system_generated","logs","transcript.jsonl");M9({name:"antigravity",async detect(){return cC(mC)},async parse($,z){if(!cC(mC))return[];let G=Ba5(),J=[],Q;try{Q=Za5(mC)}catch{return[]}for(let K of Q){let Z=pB(mC,K,Ya5);if(!cC(Z))continue;let U;try{U=await Xa5(Z)}catch{continue}let Y=f6(G.get(K)),W=U.map(Ha5);for(let V=0;V<U.length;V++){let B=U[V];if(!B)continue;if(B.source!=="USER_EXPLICIT"||B.type!=="USER_INPUT")continue;if(!g3(B.ts,$,z))continue;let H=Va5(B.content);if(!H)continue;let X=s9(W,V,"last");J.push({tool:"antigravity",timestamp:B.ts,project:Y,prompt:H,response:X?h6(X):void 0,sessionId:K})}}return J}})});async function iC($){let{start:z,end:G,timezone:J}=XA($.window,$.date),Q=$.tool?$.tool.split(",").map((H)=>H.trim()):void 0,K=bC(Q),U=(await Promise.all(K.map(async(H)=>{if(!await H.detect())return[];return H.parse(z,G)}))).flat().sort((H,X)=>H.timestamp-X.timestamp),Y={},W=new Map;for(let H of U){Y[H.tool]=(Y[H.tool]||0)+1;let X=H.project||"(unknown)",q=W.get(X);if(q)q.count++,q.first=Math.min(q.first,H.timestamp),q.last=Math.max(q.last,H.timestamp);else W.set(X,{count:1,first:H.timestamp,last:H.timestamp})}let V=$.sort||"count",B=[...W.entries()].map(([H,{count:X,first:q,last:L}])=>({name:H,count:X,duration:L-q})).sort((H,X)=>V==="duration"?X.duration-H.duration:X.count-H.count);if($.top&&$.top>0)B=B.slice(0,$.top);return{window:{start:z,end:G},timezone:J,entries:U,stats:{totalPrompts:U.length,byTool:Y,topProjects:B}}}var lC=k(()=>{TC();$z();wT2();TT2();yT2();fT2();iT2();Yb2();Vb2()});var Bb2=`<!DOCTYPE html>
773
+ `).trim();if(F)X.push({role:L,text:h6(F),ts:q.timestamp?Date.parse(q.timestamp):void 0})}for(let q=0;q<X.length-1;q++){let L=X[q];if(L?.role!=="user")continue;let F=X[q+1];if(F&&F.role==="assistant"){let N=G.find((A)=>A.project===Z&&(A.prompt===L.text||A.prompt.startsWith(L.text)||L.text.startsWith(A.prompt))&&!A.response);if(N)N.response=F.text}}}}catch{}}return G}})});import{existsSync as LA,readdirSync as _C}from"node:fs";import{homedir as Sn5}from"node:os";import{join as yU}from"node:path";function CT2($){if(typeof $==="string")return $;if(!Array.isArray($))return"";for(let z of $)if(z?.type==="text"&&z.text)return z.text;return""}function yn5($){let z=new Map;if(!LA(SU))return z;try{for(let G of _C(SU)){let J=yU(SU,G),Q;try{Q=_C(J).filter((K)=>K.endsWith(".jsonl")&&$.has(K.replace(".jsonl","")))}catch{continue}for(let K of Q){let Z=K.replace(".jsonl",""),U=r9(yU(J,K)),Y=[];for(let V of U)if(V.type==="user"||V.type==="assistant")Y.push({role:V.type,text:CT2(V.message?.content||"")});let W=[];for(let V=0;V<Y.length;V++){let B=Y[V];if(B?.role!=="user")continue;let H=s9(Y,V,"first");W.push({prompt:B.text,response:H?h6(H):""})}if(W.length>0)z.set(Z,W)}}}catch{}return z}function un5(){if(!LA(SU))return[];let $=[];try{for(let z of _C(SU)){let G=yU(SU,z),J;try{J=_C(G)}catch{continue}for(let Q of J){if(!Q.endsWith(".jsonl"))continue;$.push({path:yU(G,Q),sessionId:Q.replace(".jsonl",""),project:f6(z)??z})}}}catch{}return $}function gn5($,z){let G=[];for(let J of un5())for(let Q of r9(J.path)){let K=Q.type==="user"||Q.type==="assistant"?Q.type:null;if(!K)continue;let Z=zz(Q.timestamp);if(!g3(Z,$,z))continue;let U=CT2(Q.message?.content??"").trim();if(!U)continue;G.push(Gz({vendor:"claude",role:K,text:U,timestamp:Z,sourcePath:J.path,vendorSessionId:J.sessionId,project:J.project}))}return Jz(G)}var PT2,Z22,SU;var TT2=k(()=>{$z();Qz();PT2=yU(Sn5(),".claude"),Z22=yU(PT2,"history.jsonl"),SU=yU(PT2,"projects");M9({name:"claude",async detect(){return LA(Z22)||LA(SU)},async parseRaw($,z){return gn5($,z)},async parse($,z){if(!LA(Z22))return[];let G=[],J=new Set;for await(let U of t0(Z22)){let Y=U.timestamp;if(typeof Y!=="number"||!g3(Y,$,z))continue;let W=U.display;if(!W)continue;let V=U.sessionId||void 0;if(V)J.add(V);G.push({ts:Y,project:f6(U.project),prompt:W,sessionId:V})}let Q=yn5(J),K=new Map;return G.map((U)=>{let Y;if(U.sessionId){let W=Q.get(U.sessionId);if(W){let V=W.find((B)=>B.prompt===U.prompt||B.prompt.startsWith(U.prompt));if(V)Y=V.response||void 0;else{let B=K.get(U.sessionId)??0,H=W[B];if(H)Y=H.response||void 0}K.set(U.sessionId,(K.get(U.sessionId)??0)+1)}}return{tool:"claude",timestamp:U.ts,project:U.project,prompt:U.prompt,response:Y,sessionId:U.sessionId}})}})});import{existsSync as iB,readdirSync as bT2}from"node:fs";import{homedir as hn5}from"node:os";import{join as PQ}from"node:path";function fn5(){let $=new Map;for(let z of _T2){let G=PQ(FA,z);if(!iB(G))continue;try{xT2(G,$)}catch{}}return $}function mn5($){return zz($.timestamp??$.payload?.timestamp)}function cn5($,z){let G=$.payload?.content??[],J=z==="user"?"input_text":"output_text",Q=G.filter((K)=>K.type===J).map((K)=>K.text??"").join(" ").trim();if(!Q)return null;if(z==="user"&&Q.startsWith("<environment_context>"))return null;if(z==="user"&&Q.startsWith("<user_instructions>"))return null;return Q}function xT2($,z){for(let G of bT2($,{withFileTypes:!0})){let J=PQ($,G.name);if(G.isDirectory())xT2(J,z);else if(G.name.endsWith(".jsonl")){let Q=r9(J),K=Q[0];if(K?.type!=="session_meta")continue;let Z=K.payload?.id,U=K.payload?.cwd;if(!Z||!U)continue;let Y=[];for(let V of Q){if(V.type!=="response_item")continue;let B=V.payload;if(!B?.role||!B.content)continue;if(B.role==="user"){let H=B.content.filter((X)=>X.type==="input_text").map((X)=>X.text||"").join(" ").trim();if(H&&!H.startsWith("<environment_context>"))Y.push({role:"user",text:H})}else if(B.role==="assistant"){let H=B.content.filter((X)=>X.type==="output_text").map((X)=>X.text||"").join(" ").trim();if(H)Y.push({role:"assistant",text:H})}}let W=new Map;for(let V=0;V<Y.length;V++){let B=Y[V];if(B?.role!=="user")continue;let H=s9(Y,V,"first");if(H)W.set(B.text.slice(0,100),h6(H))}z.set(Z,{project:f6(U)??U,responses:W})}}}function ST2($,z,G,J){for(let Q of bT2($,{withFileTypes:!0})){let K=PQ($,Q.name);if(Q.isDirectory()){ST2(K,z,G,J);continue}if(!Q.name.endsWith(".jsonl"))continue;let Z=r9(K),U=Z[0];if(U?.type!=="session_meta")continue;let Y=U.payload?.id;if(!Y)continue;let W=f6(U.payload?.cwd);for(let V of Z){if(V.type!=="response_item")continue;let B=V.payload?.role==="user"||V.payload?.role==="assistant"?V.payload.role:null;if(!B)continue;let H=mn5(V);if(!g3(H,z,G))continue;let X=cn5(V,B);if(!X)continue;J.push(Gz({vendor:"codex",role:B,text:X,timestamp:H,sourcePath:K,vendorSessionId:Y,project:W}))}}}function in5($,z){let G=[];for(let J of _T2){let Q=PQ(FA,J);if(!iB(Q))continue;try{ST2(Q,$,z,G)}catch{}}return Jz(G)}var FA,U22,_T2;var yT2=k(()=>{$z();Qz();FA=PQ(hn5(),".codex"),U22=PQ(FA,"history.jsonl"),_T2=["sessions","archived_sessions"];M9({name:"codex",async detect(){return iB(U22)||iB(PQ(FA,"sessions"))||iB(PQ(FA,"archived_sessions"))},async parseRaw($,z){return in5($,z)},async parse($,z){if(!iB(U22))return[];let G=fn5(),J=[];for await(let Q of t0(U22)){let K=(Q.ts??0)*1000;if(!g3(K,$,z))continue;let Z=Q.text;if(!Z)continue;let U=Q.session_id||void 0,Y=U?G.get(U):void 0,W=Y?.responses.get(Z.slice(0,100));J.push({tool:"codex",timestamp:K,project:Y?.project,prompt:Z,response:W,sessionId:U})}return J}})});import{existsSync as W22,readdirSync as uT2,readFileSync as gT2}from"node:fs";import{homedir as ln5}from"node:os";import{join as Y22}from"node:path";function hT2(){if(!W22(xC))return[];let $=[];try{for(let z of uT2(xC)){let G=Y22(xC,z,"chats");if(!W22(G))continue;for(let J of uT2(G))if(J.startsWith("session-")&&J.endsWith(".json"))$.push({path:Y22(G,J),project:z})}}catch{}return $}function pn5($){if($.type==="user")return"user";if($.type==="gemini")return"assistant";return null}function SC($){return($.content||[]).map((z)=>z.text||"").filter(Boolean).join(" ")}function dn5($){if($.type==="user")return{role:"user",text:SC($)};if($.type==="gemini")return{role:"assistant",text:SC($)};return{role:"other",text:""}}var xC;var fT2=k(()=>{$z();Qz();xC=Y22(ln5(),".gemini","tmp");M9({name:"gemini",async detect(){return W22(xC)},async parseRaw($,z){let G=[];for(let{path:J,project:Q}of hT2())try{let K=JSON.parse(gT2(J,"utf-8")),Z=K.sessionId||J,U=K.messages||[];for(let Y of U){let W=pn5(Y);if(!W)continue;let V=zz(Y.timestamp);if(!g3(V,$,z))continue;let B=SC(Y).trim();if(!B)continue;G.push(Gz({vendor:"gemini",role:W,text:B,timestamp:V,sourcePath:J,vendorSessionId:Z,project:Q}))}}catch{}return Jz(G)},async parse($,z){let G=hT2();if(G.length===0)return[];let J=[];for(let{path:Q,project:K}of G)try{let Z=JSON.parse(gT2(Q,"utf-8")),U=Z.sessionId||void 0,Y=Z.messages||[],W=Y.map(dn5);for(let V=0;V<Y.length;V++){let B=Y[V];if(B?.type!=="user")continue;let H=B.timestamp?new Date(B.timestamp).getTime():0;if(!g3(H,$,z))continue;let X=SC(B);if(!X)continue;let q=s9(W,V,"immediate");J.push({tool:"gemini",timestamp:H,project:K,prompt:X,response:q?h6(q):void 0,sessionId:U,metadata:B.model?{model:B.model}:void 0})}}catch{}return J}})});import{existsSync as B22,readdirSync as mT2}from"node:fs";import{homedir as nn5}from"node:os";import{join as X22}from"node:path";function cT2(){if(!B22(yC))return[];let $=[];try{for(let z of mT2(yC)){let G=X22(yC,z,"chats");if(!B22(G))continue;for(let J of mT2(G))if(J.endsWith(".jsonl"))$.push(X22(G,J))}}catch{}return $}function V22($){return($.message?.parts||[]).map((z)=>z.text||"").filter(Boolean).join(" ")}var yC;var iT2=k(()=>{$z();Qz();yC=X22(nn5(),".qwen","projects");M9({name:"qwen",async detect(){return B22(yC)},async parseRaw($,z){let G=[];for(let J of cT2())for await(let Q of t0(J)){let K=Q.type==="user"||Q.type==="assistant"?Q.type:null;if(!K)continue;let Z=zz(Q.timestamp);if(!g3(Z,$,z))continue;let U=V22(Q).trim();if(!U)continue;let Y=Q.sessionId||J;G.push(Gz({vendor:"qwen",role:K,text:U,timestamp:Z,sourcePath:J,vendorSessionId:Y,project:f6(Q.cwd)}))}return Jz(G)},async parse($,z){let G=cT2();if(G.length===0)return[];let J=[];for(let Q of G){let K=[];for await(let U of t0(Q))if(U.type==="user"||U.type==="assistant")K.push(U);let Z=K.map((U)=>({role:U.type==="user"?"user":"assistant",text:V22(U)}));for(let U=0;U<K.length;U++){let Y=K[U];if(Y?.type!=="user")continue;let W=Y.timestamp?new Date(Y.timestamp).getTime():0;if(!g3(W,$,z))continue;let V=V22(Y);if(!V)continue;let B=s9(Z,U,"immediate");J.push({tool:"qwen",timestamp:W,project:f6(Y.cwd),prompt:V,response:B?h6(B):void 0,sessionId:Y.sessionId||void 0,metadata:{gitBranch:Y.gitBranch||void 0}})}}return J}})});function lB($){if(typeof $==="string")return $;if(!Array.isArray($))return null;let z=$.map((G)=>{if(typeof G!=="object"||G==null)return"";let J=G;if(J.type==="text"&&typeof J.text==="string")return J.text;return""}).filter(Boolean);return z.length>0?z.join(`
774
+ `):null}function NA($){let G=($.match(/<user_query>\s*([\s\S]*?)\s*<\/user_query>/i)?.[1]??$).trim();if(!G||G.startsWith("<user_info>"))return null;return G}function H22($){if($.role==="user")return{role:"user",text:$.content};if($.role==="assistant")return{role:"assistant",text:$.content};return{role:"other",text:$.content}}import{existsSync as uC,readdirSync as q22}from"node:fs";import{homedir as an5}from"node:os";import{join as L22}from"node:path";function gC(){if(!uC(kA))return[];let $=[];try{for(let z of q22(kA)){let G=L22(kA,z,"agent-transcripts");if(!uC(G))continue;try{for(let J of q22(G)){let Q=L22(G,J,`${J}.jsonl`);if(uC(Q))$.push({filePath:Q,projectSlug:z,sessionId:J})}}catch{}}}catch{}return $}function AA($){let z=$.match(/^Users-[^-]+-Documents-(.+)$/);if(z?.[1])return z[1];let G=$.match(/^private-tmp-(.+)$/);if(G?.[1])return G[1];let J=$.match(/^private-(.+)$/);if(J?.[1])return J[1];let Q=$.split("-");return Q[Q.length-1]??$}function lT2($){let z=$.match(/^Users-([^-]+)-Documents-(.+)$/);if(z?.[1]&&z[2])return`/Users/${z[1]}/Documents/${z[2]}`;let G=$.match(/^private-tmp-(.+)$/);if(G?.[1])return`/private/tmp/${G[1]}`;let J=$.match(/^private-(.+)$/);if(J?.[1])return`/private/${J[1]}`;return null}function pT2($){return f6($)??$}function dT2(){let $=new Map;if(!uC(kA))return $;try{for(let z of q22(kA)){let G=lT2(z);if(!G)continue;let J=tj2(G);$.set(J,AA(z))}}catch{}return $}function nT2($,z){if($.workspacePath)return pT2($.workspacePath);if($.chatHash)return z.get($.chatHash);return $.meta.name||void 0}var kA;var F22=k(()=>{MG();Qz();kA=L22(an5(),".cursor","projects")});import{statSync as on5}from"node:fs";function rn5($){return $.trim().replace(/\s+/g," ").toLowerCase()}function aT2($){let z=new Map;for(let G of $){let J=`${G.project??""}|${rn5(G.prompt)}`,Q=z.get(J);if(!Q){z.set(J,G);continue}if(!Q.sessionId&&G.sessionId||(G.response?.length??0)>(Q.response?.length??0)||G.timestamp>Q.timestamp)z.set(J,G)}return[...z.values()].sort((G,J)=>G.timestamp-J.timestamp)}function oT2($,z,G){let J=on5($.filePath),Q=J.birthtimeMs>0?J.birthtimeMs:J.ctimeMs,K=J.mtimeMs,Z=AA($.projectSlug),U=[];for(let H of r9($.filePath)){if(H.role!=="user"&&H.role!=="assistant")continue;let X=lB(H.message?.content);if(X)U.push({role:H.role,content:X})}let Y=U.map(H22),W=U.map((H,X)=>H.role==="user"?X:-1).filter((H)=>H>=0),V=[],B=0;for(let H=0;H<U.length;H++){let X=U[H];if(X?.role!=="user")continue;let q=NA(X.content);if(!q)continue;let L=W.length<=1?Q:Q+(K-Q)*B/(W.length-1);if(B++,!g3(L,z,G))continue;let F=s9(Y,H,"first"),N=F?h6(F):void 0;V.push({tool:"cursor",timestamp:Math.round(L),project:Z,prompt:q.length>500?`${q.slice(0,500)}...`:q,response:N,sessionId:$.sessionId})}return V}function rT2($,z,G){let J=[],Q=AA($.projectSlug),K=0;for(let Z of r9($.filePath)){let U=Z.role==="user"||Z.role==="assistant"?Z.role:null;if(!U)continue;let Y=zz(Z.timestamp??Z.createdAt);if(!Y){K+=1;continue}if(!g3(Y,z,G))continue;let W=lB(Z.message?.content),V=U==="user"?NA(W??""):W?.trim();if(!V)continue;J.push(Gz({vendor:"cursor",role:U,text:V,timestamp:Y,sourcePath:$.filePath,vendorSessionId:$.sessionId,project:Q}))}return{turns:J,skippedMissingTimestamp:K}}function sT2($,z,G,J){let Q=$.meta.createdAt??0;if(!g3(Q,z,G))return[];let K=nT2($,J),Z=$.messages.map(H22),U=[];for(let Y=0;Y<$.messages.length;Y++){let W=$.messages[Y];if(W?.role!=="user")continue;let V=NA(W.content);if(!V)continue;let B=s9(Z,Y,"immediate"),H=B?h6(B):void 0;U.push({tool:"cursor",timestamp:Q,project:K,prompt:V.length>500?`${V.slice(0,500)}...`:V,response:H,metadata:$.meta.lastUsedModel?{model:$.meta.lastUsedModel}:void 0})}return U}var tT2=k(()=>{Qz();F22()});import{spawnSync as Gb2}from"node:child_process";import{existsSync as eT2,readdirSync as $b2}from"node:fs";import{homedir as sn5}from"node:os";import{join as N22}from"node:path";function hC(){if(!eT2(jA))return[];let $=[];try{for(let z of $b2(jA)){let G=N22(jA,z);try{for(let J of $b2(G)){let Q=N22(G,J,"store.db");if(eT2(Q))$.push(Q)}}catch{}}}catch{}return $}function Jb2($){if($==null)return null;if(typeof $==="string")return $;if(Buffer.isBuffer($))return $.toString("utf-8");if($ instanceof Uint8Array)return Buffer.from($).toString("utf-8");return null}function tn5($){if(!$.startsWith("{"))return null;try{let z=JSON.parse($),G=lB(z.content);if(z.role&&G)return{role:z.role,content:G}}catch{}return null}function en5($){try{let z=Buffer.from($.trim(),"hex").toString("utf-8");return JSON.parse(z)}catch{return null}}function $a5($){return $.match(/Workspace Path:\s*((?:\/[^\s\n<\\]+)+)/)?.[1]?.trim()||null}function za5($){for(let z of $){if(typeof z.data_hex!=="string")continue;let G=Jb2(Buffer.from(z.data_hex,"hex"));if(!G)continue;let J=$a5(G);if(J)return J}return null}function zb2($){let z=$.split(/[/\\]/),G=z.lastIndexOf("chats");if(G>=0&&z[G+1])return z[G+1];return}function Ga5($){let z=[];for(let G of $){if(typeof G.data_hex!=="string")continue;let J=Jb2(Buffer.from(G.data_hex,"hex"));if(!J)continue;let Q=tn5(J);if(Q)z.push(Q)}return z}function fC(){return Gb2("sqlite3",["-version"],{encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).status===0}function Qa5($){return/database is locked|database is busy|is locked|SQLITE_BUSY|SQLITE_LOCKED/i.test($)}function k22($,z,G=!1){let J=[...G?["-json"]:[],"-readonly","-cmd",`.timeout ${Ja5}`,$,z],Q=Gb2("sqlite3",J,{encoding:"utf-8",stdio:["ignore","pipe","pipe"]}),K=typeof Q.stderr==="string"?Q.stderr:"";return{ok:Q.status===0,stdout:Q.stdout??"",locked:Qa5(K)}}function Qb2($){let z=k22($,"SELECT value FROM meta WHERE key = '0';");if(z.locked)return{status:"locked"};if(!z.ok||!z.stdout.trim())return{status:"error"};let G=en5(z.stdout);if(!G)return{status:"error"};let J=k22($,"SELECT hex(data) AS data_hex FROM blobs;",!0);if(J.locked)return{status:"locked"};if(!J.ok)return{status:"ok",store:{meta:G,messages:[],chatHash:zb2($)}};let Q=J.stdout.trim()?JSON.parse(J.stdout):[];return{status:"ok",store:{meta:G,messages:Ga5(Q),workspacePath:za5(Q)??void 0,chatHash:zb2($)}}}function Kb2(){let $=hC(),z=[],G=0;if($.length===0||!fC())return{stores:z,total:$.length,locked:G};for(let J of $){let Q=Qb2(J);if(Q.status==="ok")z.push(Q.store);else if(Q.status==="locked")G+=1}return{stores:z,total:$.length,locked:G}}function Zb2(){let $=hC();if($.length===0||!fC())return{total:$.length,locked:0};let z=0;for(let G of $)if(k22(G,"SELECT value FROM meta WHERE key = '0';").locked)z+=1;return{total:$.length,locked:z}}function Ub2(){let[$]=hC();if(!$||!fC())return!1;return Qb2($).status==="ok"}var jA,Ja5=5000;var Wb2=k(()=>{jA=N22(sn5(),".cursor","chats")});import{existsSync as Ka5}from"node:fs";var Yb2=k(()=>{$z();Qz();tT2();F22();Wb2();M9({name:"cursor",async detect(){if(gC().length>0)return!0;if(!Ka5(jA))return!1;return Ub2()},async parse($,z){let G=[],J=dT2();for(let Q of gC())try{G.push(...oT2(Q,$,z))}catch{}for(let Q of Kb2().stores)try{G.push(...sT2(Q,$,z,J))}catch{}return aT2(G)},async parseRaw($,z){let G=[],J=[],Q=0,K=0;for(let Y of gC())try{let W=rT2(Y,$,z);if(G.push(...W.turns),W.skippedMissingTimestamp>0)Q+=1,K+=W.skippedMissingTimestamp}catch{J.push(`cursor transcript ${Y.sessionId} is unreadable`)}if(K>0)J.push(`cursor skipped ${K} transcript raw turns across ${Q} transcripts without exact timestamps`);let{total:Z,locked:U}=Zb2();if(U>0)J.push(`cursor: ${U}/${Z} store.db file(s) are locked (Cursor running?); coverage is partial — close Cursor and rerun, or pass --force-partial`);if(Z>0)J.push(`cursor store.db raw import skipped for ${Z} stores because per-message timestamps are unavailable`);return{turns:Jz(G),warnings:J}}})});import{existsSync as cC,readdirSync as Za5,readFileSync as Ua5}from"node:fs";import{homedir as Wa5}from"node:os";import{join as pB}from"node:path";function Va5($){let z=$.match(/<USER_REQUEST>\s*([\s\S]*?)\s*<\/USER_REQUEST>/);if(z?.[1])return z[1].trim();return $.replace(/<ADDITIONAL_METADATA>[\s\S]*?<\/ADDITIONAL_METADATA>/g,"").replace(/<USER_SETTINGS_CHANGE>[\s\S]*$/g,"").trim()}function Ba5(){let $=new Map,z=r9(pB(A22,"history.jsonl"));for(let J of z)if(J.conversationId&&J.workspace)$.set(J.conversationId,J.workspace);let G=pB(A22,"cache","last_conversations.json");if(cC(G))try{let J=JSON.parse(Ua5(G,"utf-8"));for(let[Q,K]of Object.entries(J))if(!$.has(K))$.set(K,Q)}catch{}return $}async function Xa5($){let z=[];for await(let G of t0($))z.push({step:typeof G.step_index==="number"?G.step_index:z.length,source:G.source??"",type:G.type??"",content:typeof G.content==="string"?G.content:"",ts:G.created_at?new Date(G.created_at).getTime():0});return z.sort((G,J)=>G.step-J.step),z}function Ha5($){if($.source==="USER_EXPLICIT"&&$.type==="USER_INPUT")return{role:"user",text:$.content};if($.source==="MODEL"&&$.type==="PLANNER_RESPONSE")return{role:"assistant",text:$.content};return{role:"other",text:$.content}}var A22,mC,Ya5;var Vb2=k(()=>{$z();Qz();A22=pB(Wa5(),".gemini","antigravity-cli"),mC=pB(A22,"brain"),Ya5=pB(".system_generated","logs","transcript.jsonl");M9({name:"antigravity",async detect(){return cC(mC)},async parse($,z){if(!cC(mC))return[];let G=Ba5(),J=[],Q;try{Q=Za5(mC)}catch{return[]}for(let K of Q){let Z=pB(mC,K,Ya5);if(!cC(Z))continue;let U;try{U=await Xa5(Z)}catch{continue}let Y=f6(G.get(K)),W=U.map(Ha5);for(let V=0;V<U.length;V++){let B=U[V];if(!B)continue;if(B.source!=="USER_EXPLICIT"||B.type!=="USER_INPUT")continue;if(!g3(B.ts,$,z))continue;let H=Va5(B.content);if(!H)continue;let X=s9(W,V,"last");J.push({tool:"antigravity",timestamp:B.ts,project:Y,prompt:H,response:X?h6(X):void 0,sessionId:K})}}return J}})});async function iC($){let{start:z,end:G,timezone:J}=XA($.window,$.date),Q=$.tool?$.tool.split(",").map((H)=>H.trim()):void 0,K=bC(Q),U=(await Promise.all(K.map(async(H)=>{if(!await H.detect())return[];return H.parse(z,G)}))).flat().sort((H,X)=>H.timestamp-X.timestamp),Y={},W=new Map;for(let H of U){Y[H.tool]=(Y[H.tool]||0)+1;let X=H.project||"(unknown)",q=W.get(X);if(q)q.count++,q.first=Math.min(q.first,H.timestamp),q.last=Math.max(q.last,H.timestamp);else W.set(X,{count:1,first:H.timestamp,last:H.timestamp})}let V=$.sort||"count",B=[...W.entries()].map(([H,{count:X,first:q,last:L}])=>({name:H,count:X,duration:L-q})).sort((H,X)=>V==="duration"?X.duration-H.duration:X.count-H.count);if($.top&&$.top>0)B=B.slice(0,$.top);return{window:{start:z,end:G},timezone:J,entries:U,stats:{totalPrompts:U.length,byTool:Y,topProjects:B}}}var lC=k(()=>{TC();$z();wT2();TT2();yT2();fT2();iT2();Yb2();Vb2()});var Bb2=`<!DOCTYPE html>
775
775
  <html lang="en">
776
776
  <head>
777
777
  <meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="referrer" content="no-referrer">
@@ -1143,11 +1143,11 @@ print(json.dumps({
1143
1143
  "encoding": resp.encoding,
1144
1144
  "target": target,
1145
1145
  }))
1146
- `;var d22=k(()=>{_Q();g7();Vs5=["coupang.com","fmkorea.com","dcinside.com","clien.net","naver.com","daum.net","tistory.com","kakao.com"]});function Rs5($){return $.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&nbsp;/g," ")}function xx2($){return Rs5($.replace(/<[^>]+>/g,"")).trim()}function Sx2($){if(!$)return 0;let z=Number.parseInt($.replace(/,/g,""),10);return Number.isFinite(z)?z:0}function yx2($){let z=[],G=new Set,J=$.match(Ns5)??[];for(let Q of J){let K=ks5.exec(Q);if(K==null||K[1]==null)continue;let Z=K[1],U="",Y=As5.exec(Q);if(Y?.[1]!=null)U=xx2(Y[1]);else if(K[2]!=null)U=xx2(K[2]);if(!U)continue;let W=`https://okky.kr${Z.startsWith("/")?Z:`/${Z}`}`;if(G.has(W))continue;G.add(W);let B=/\/articles\/(\d+)/.exec(W)?.[1]??W,H=js5.exec(Q)?.[1]?.trim()??null,X=Ms5.exec(Q),q=X?.[1]??X?.[2],L=null;if(q){let A=/(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2}))?/.exec(q);if(A){let j=A[4]??"00",M=A[5]??"00";L=`${A[1]}-${A[2]}-${A[3]}T${j}:${M}:00+09:00`}}let F=Sx2(Os5.exec(Q)?.[1]),N=Sx2(Is5.exec(Q)?.[1]);z.push({item_id:`okky:${B}`,url:W,title:U,author:H,posted_at:L,view_count:F,comment_count:N})}return z}var Fs5,_x2="https://okky.kr/articles",Ns5,ks5,As5,js5,Ms5,Os5,Is5,ux2;var gx2=k(()=>{d22();g7();Fs5=new Set(["okky.kr","www.okky.kr"]),Ns5=/<(?:article|div)[^>]*class="[^"]*(?:article-list-item|article-card|post-list-row)[^"]*"[\s\S]*?(?=<(?:article|div)[^>]*class="[^"]*(?:article-list-item|article-card|post-list-row)|$)/g,ks5=/<a[^>]+href="(\/articles\/[^"]+)"[^>]*>([\s\S]*?)<\/a>/,As5=/<h[1-4][^>]*>([\s\S]*?)<\/h[1-4]>/,js5=/<(?:a|span)[^>]*class="[^"]*(?:user|author|nickname)[^"]*"[^>]*>([^<]+)<\/(?:a|span)>/,Ms5=/<(?:time|span)[^>]*class="[^"]*(?:date|time|created)[^"]*"[^>]*(?:datetime="([^"]+)")?[^>]*>([^<]*)</,Os5=/조회\s*[::]?\s*([0-9,]+)/,Is5=/(?:댓글|comments?)\s*[::]?\s*([0-9,]+)/i;ux2={id:"okky",match($){return Fs5.has($.hostname)},async fetch($,z){return $4({platform:"okky",url:$,fetchUrl:$.toString(),ctx:z,mapBody:(G)=>G})},async keywordSearch($,z){if(!$.trim())return l4({url:_x2,platform:"okky",reason:"empty query"});let G=new URL(_x2);G.searchParams.set("query",$),G.searchParams.set("sort","recent");let J=await $4({platform:"okky",url:G,fetchUrl:G.toString(),ctx:z,headers:{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36","Accept-Language":"ko-KR,ko;q=0.9,en;q=0.8",Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"},mapBody:(Q)=>JSON.stringify({source:"okky",items:yx2(Q)})});if(J.status==="blocked"||J.httpStatus===403){let Q=await YT(G,z);if(Q.status==="ok"&&Q.content){let K=JSON.stringify({source:"okky",items:yx2(Q.content)});return{...Q,strategy:"api",platform:"okky",content:K}}return{...J,error:J.error??Q.error??"Cloudflare blocked OKKY; install curl_cffi (pip install curl_cffi) to enable impersonate fallback"}}return J}}});function vs5($){let z=new URL($.toString());if(z.hostname="www.reddit.com",!z.pathname.endsWith(".json"))z.pathname=z.pathname.replace(/\/?$/,"/.json");return z.toString()}var Ds5,hx2;var fx2=k(()=>{Zz();g7();Ds5=new Set(["reddit.com","www.reddit.com","old.reddit.com","np.reddit.com","m.reddit.com"]);hx2={id:"reddit",match($){return Ds5.has($.hostname)},async fetch($,z){return $4({platform:"reddit",url:$,fetchUrl:vs5($),headers:{"User-Agent":Kz.mobileSafari},ctx:z,expectJson:!0})},async keywordSearch($,z){let G=new URL("https://www.reddit.com/search.json");return G.searchParams.set("q",$),G.searchParams.set("limit","25"),$4({platform:"reddit",url:G,fetchUrl:G.toString(),headers:{"User-Agent":Kz.mobileSafari},ctx:z,expectJson:!0})}}});var Es5,mx2,ws5,cx2;var ix2=k(()=>{g7();Es5=new Set(["www.npmjs.com","npmjs.com"]),mx2={id:"npm",match($){return Es5.has($.hostname)},async fetch($,z){let G=$.pathname.match(/^\/package\/(@[^/]+\/[^/]+|[^/]+)/);if(!G)return l4({url:$.toString(),platform:"npm",reason:"npm URL must be /package/{name}"});let Q=`https://registry.npmjs.org/${G[1]}`;return $4({platform:"npm",url:$,fetchUrl:Q,ctx:z,expectJson:!0})}},ws5=new Set(["pypi.org","www.pypi.org"]),cx2={id:"pypi",match($){return ws5.has($.hostname)},async fetch($,z){let G=$.pathname.match(/^\/project\/([^/]+)/);if(!G)return l4({url:$.toString(),platform:"pypi",reason:"PyPI URL must be /project/{name}"});let J=`https://pypi.org/pypi/${G[1]}/json`;return $4({platform:"pypi",url:$,fetchUrl:J,ctx:z,expectJson:!0})}}});function Ps5($){if($ in n22)return!0;if($.endsWith(".stackexchange.com"))return!0;if($.endsWith(".meta.stackexchange.com"))return!0;return $==="meta.stackoverflow.com"}function Cs5($){if($ in n22){let z=n22[$];if(z)return z}if($==="meta.stackoverflow.com")return"meta.stackoverflow";if($.endsWith(".meta.stackexchange.com"))return`meta.${$.replace(".meta.stackexchange.com","")}`;return $.replace(".stackexchange.com","")}var n22,lx2;var px2=k(()=>{g7();n22={"stackoverflow.com":"stackoverflow","serverfault.com":"serverfault","superuser.com":"superuser","askubuntu.com":"askubuntu","mathoverflow.net":"mathoverflow.net","stackapps.com":"stackapps"};lx2={id:"stackexchange",match($){return Ps5($.hostname)},async fetch($,z){let G=$.pathname.match(/\/questions\/(\d+)/);if(!G)return l4({url:$.toString(),platform:"stackexchange",reason:"Stack Exchange URL must contain /questions/{id}"});let J=Cs5($.hostname),Q=G[1],K=new URL(`https://api.stackexchange.com/2.3/questions/${Q}`);return K.searchParams.set("site",J),K.searchParams.set("filter","withbody"),$4({platform:"stackexchange",url:$,fetchUrl:K.toString(),ctx:z,expectJson:!0})},async keywordSearch($,z){let G=new URL("https://api.stackexchange.com/2.3/search");return G.searchParams.set("order","desc"),G.searchParams.set("sort","votes"),G.searchParams.set("intitle",$),G.searchParams.set("site","stackoverflow"),$4({platform:"stackexchange",url:G,fetchUrl:G.toString(),ctx:z,expectJson:!0})}}});function xs5($){let z=$.pathname.split("/").filter(Boolean);if(z.length===0)return null;let G=z[0];if(!G||G==="i"||G==="home")return null;let J=z.indexOf("status");if(J!==-1&&z[J+1]){let Q=z[J+1];if(Q&&/^\d+$/.test(Q))return{kind:"status",handle:G,statusId:Q}}return{kind:"handle",handle:G}}async function Ss5($,z,G){if(!$.handle)return l4({url:z.toString(),platform:"twitter",reason:"No handle in URL"});let J=`${bs5}/srv/timeline-profile/screen-name/${$.handle}`;try{let Q=await e3(J,{timeoutMs:G.timeoutMs,locale:G.locale,signal:G.signal}),K=c6(Q),Z=us5(Q.text)??Q.text;return{url:z.toString(),status:n8(Q,K),strategy:"api",platform:"twitter",httpStatus:Q.status,content:Z,contentType:"application/json",elapsedMs:Q.elapsedMs,signals:K}}catch(Q){return t1({url:z.toString(),platform:"twitter",error:Q})}}async function ys5($,z,G){if(!$.handle||!$.statusId)return l4({url:z.toString(),platform:"twitter",reason:"Status URL must contain handle and id"});let J=`${_s5}?url=${encodeURIComponent(`https://twitter.com/${$.handle}/status/${$.statusId}`)}&omit_script=1&dnt=1`;try{let Q=await e3(J,{timeoutMs:G.timeoutMs,locale:G.locale,signal:G.signal}),K=c6(Q);return{url:z.toString(),status:n8(Q,K),strategy:"api",platform:"twitter",httpStatus:Q.status,content:Q.text,contentType:Q.headers.get("content-type")??"application/json",elapsedMs:Q.elapsedMs,signals:K}}catch(Q){return t1({url:z.toString(),platform:"twitter",error:Q})}}function us5($){return $.match(/<script[^>]+id=["']__NEXT_DATA__["'][^>]*>([\s\S]*?)<\/script>/)?.[1]??null}var Ts5,bs5="https://syndication.twitter.com",_s5="https://publish.twitter.com/oembed",dx2;var nx2=k(()=>{Zz();_Q();g7();Ts5=new Set(["x.com","www.x.com","twitter.com","www.twitter.com"]);dx2={id:"twitter",match($){return Ts5.has($.hostname)},async fetch($,z){let G=xs5($);if(!G)return l4({url:$.toString(),platform:"twitter",reason:"Cannot parse handle or status from URL"});return G.kind==="status"?ys5(G,$,z):Ss5(G,$,z)}}});function o22($){for(let z of a22)if(z.match($))return z;return null}async function VT($,z){let G=o22($);if(!G)return null;try{return await G.fetch($,z)}catch(J){return t1({url:$.toString(),platform:G.id,error:J})}}async function xQ($,z,G){let J=G?a22.filter((Q)=>G.includes(Q.id)&&Q.keywordSearch):a22.filter((Q)=>Q.keywordSearch);return Promise.all(J.map(async(Q)=>{try{let K=Q.keywordSearch;if(!K)return t1({url:"",platform:Q.id,error:Error("keywordSearch not implemented")});return await K($,z)}catch(K){return t1({url:"",platform:Q.id,error:K})}}))}var a22;var TA=k(()=>{Xx2();Fx2();jx2();Rx2();Px2();g7();bx2();gx2();fx2();ix2();px2();nx2();a22=[dx2,hx2,Dx2,lx2,qx2,Lx2,Wx2,Yx2,Vx2,Bx2,vx2,Ex2,wx2,mx2,cx2,Cx2,Tx2,Ax2,ux2,Ix2]});async function rx2($){let z=$.limit??ms5,G=$.timeoutMs??cs5,J=is5($.topic,$.locale),Q={timeoutMs:G,locale:$.locale==="ko"?"ko-KR,ko;q=0.9":"en-US,en;q=0.9"},K=[];for(let U of J)try{let W=(await xQ(U,Q,["duckduckgo"]))[0];if(!W||W.status!=="ok")continue;let V;try{V=JSON.parse(W.content)}catch{continue}let B=V;for(let H of B.items??[])K.push({title:String(H.title??""),snippet:String(H.snippet??"")})}catch{}if(K.length===0)return{topic:$.topic,locale:$.locale,queries_used:J,items_scanned:0,candidates:[],reason:"no SERP results — uvx / ddgs may be unavailable"};let Z=ls5(K,$.topic,$.locale,z);return{topic:$.topic,locale:$.locale,queries_used:J,items_scanned:K.length,candidates:Z}}function is5($,z){let G=$.trim();if(z==="ko")return[`${G} 경쟁사`,`${G} 대안`,`${G} vs`];return[`${G} vs`,`alternatives to ${G}`,`${G} competitors`]}function ls5($,z,G,J){let Q=sx2(z),K=new Map,Z=new Map,U=new Map,Y=0,W=[];for(let B of $){if(B.title)W.push(B.title);if(B.snippet)W.push(B.snippet)}for(let B of W)for(let H of ps5(B,G)){let X=ds5(H);if(!ns5(X,Q))continue;let q=X.toLowerCase();if(!K.has(q))K.set(q,X),U.set(q,Y++);Z.set(q,(Z.get(q)??0)+1)}let V=new Set;for(let B of Z.keys()){if(!B.includes(" "))continue;let H=Z.get(B)??0;if(H<2)continue;let X=B.split(/\s+/).slice(-1)[0]?.toLowerCase();if(!X)continue;let q=Z.get(X);if(q!==void 0&&q<=H)V.add(X)}return[...Z.entries()].filter(([B])=>!V.has(B)).sort(([B,H],[X,q])=>{if(q!==H)return q-H;return(U.get(B)??0)-(U.get(X)??0)}).slice(0,J).map(([B,H])=>({entity:K.get(B)??B,mentions:H}))}function ps5($,z){let G=[];for(let J of $.matchAll(gs5))G.push(J[0]);if(z==="ko")for(let J of $.matchAll(hs5))G.push(J[0]);return G}function ds5($){let z=$.replace(/\s+/g," ").trim();if(z=z.replace(/[.,;:\-)]+$/u,"").trim(),/[가-힣]/.test(z))z=z.replace(fs5,"").trim();return z}function ns5($,z){if($.length<2)return!1;if(/^\d+$/.test($))return!1;let G=sx2($);if(G.size===0)return!1;if(ox2(G,z))return!1;if(ox2(z,G))return!1;return!0}function sx2($){return new Set($.toLowerCase().split(/[\s.,;:()/]+/).map((z)=>z.replace(/[^a-z0-9가-힣]/g,"")).filter((z)=>z.length>0))}function ox2($,z){if($.size===0)return!1;for(let G of $)if(!z.has(G))return!1;return!0}var ax2="(?:[A-Z][A-Za-z0-9&.\\-]*|[a-z][A-Za-z0-9&.\\-]*[A-Z][A-Za-z0-9&.\\-]*)",gs5,hs5,fs5,ms5=20,cs5=20000;var tx2=k(()=>{TA();gs5=new RegExp(`\\b${ax2}(?:\\s+${ax2}){0,3}\\b`,"g"),hs5=/(?:[가-힣]{2,}|\d+[가-힣]{1,}|[A-Za-z]{1,3}[가-힣]{1,})/g,fs5=/(?:은|는|을|를|의|도|에|에서|으로|로|와|과|만|까지|부터|이고|이며|입니다|이에요|예요|입니다요|입니다만)$/u});var ex2={};z5(ex2,{runDiscoverCompetitors:()=>as5});async function as5($){let z=[...$],G,J="en",Q,K,Z=0;while(Z<z.length){let Y=z[Z];if(Y==="--locale"&&z[Z+1]){let W=z[++Z];if(W==="en"||W==="ko")J=W;else return process.stderr.write(`[discover-competitors] invalid locale "${W}" (en|ko)
1146
+ `;var d22=k(()=>{_Q();g7();Vs5=["coupang.com","fmkorea.com","dcinside.com","clien.net","naver.com","daum.net","tistory.com","kakao.com"]});function Rs5($){return $.replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#39;/g,"'").replace(/&nbsp;/g," ")}function xx2($){return Rs5($.replace(/<[^>]+>/g,"")).trim()}function Sx2($){if(!$)return 0;let z=Number.parseInt($.replace(/,/g,""),10);return Number.isFinite(z)?z:0}function yx2($){let z=[],G=new Set,J=$.match(Ns5)??[];for(let Q of J){let K=ks5.exec(Q);if(K==null||K[1]==null)continue;let Z=K[1],U="",Y=As5.exec(Q);if(Y?.[1]!=null)U=xx2(Y[1]);else if(K[2]!=null)U=xx2(K[2]);if(!U)continue;let W=`https://okky.kr${Z.startsWith("/")?Z:`/${Z}`}`;if(G.has(W))continue;G.add(W);let B=/\/articles\/(\d+)/.exec(W)?.[1]??W,H=js5.exec(Q)?.[1]?.trim()??null,X=Ms5.exec(Q),q=X?.[1]??X?.[2],L=null;if(q){let A=/(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2}))?/.exec(q);if(A){let j=A[4]??"00",M=A[5]??"00";L=`${A[1]}-${A[2]}-${A[3]}T${j}:${M}:00+09:00`}}let F=Sx2(Os5.exec(Q)?.[1]),N=Sx2(Is5.exec(Q)?.[1]);z.push({item_id:`okky:${B}`,url:W,title:U,author:H,posted_at:L,view_count:F,comment_count:N})}return z}var Fs5,_x2="https://okky.kr/articles",Ns5,ks5,As5,js5,Ms5,Os5,Is5,ux2;var gx2=k(()=>{d22();g7();Fs5=new Set(["okky.kr","www.okky.kr"]),Ns5=/<(?:article|div)[^>]*class="[^"]*(?:article-list-item|article-card|post-list-row)[^"]*"[\s\S]*?(?=<(?:article|div)[^>]*class="[^"]*(?:article-list-item|article-card|post-list-row)|$)/g,ks5=/<a[^>]+href="(\/articles\/[^"]+)"[^>]*>([\s\S]*?)<\/a>/,As5=/<h[1-4][^>]*>([\s\S]*?)<\/h[1-4]>/,js5=/<(?:a|span)[^>]*class="[^"]*(?:user|author|nickname)[^"]*"[^>]*>([^<]+)<\/(?:a|span)>/,Ms5=/<(?:time|span)[^>]*class="[^"]*(?:date|time|created)[^"]*"[^>]*(?:datetime="([^"]+)")?[^>]*>([^<]*)</,Os5=/조회\s*[::]?\s*([0-9,]+)/,Is5=/(?:댓글|comments?)\s*[::]?\s*([0-9,]+)/i;ux2={id:"okky",match($){return Fs5.has($.hostname)},async fetch($,z){return $4({platform:"okky",url:$,fetchUrl:$.toString(),ctx:z,mapBody:(G)=>G})},async keywordSearch($,z){if(!$.trim())return l4({url:_x2,platform:"okky",reason:"empty query"});let G=new URL(_x2);G.searchParams.set("query",$),G.searchParams.set("sort","recent");let J=await $4({platform:"okky",url:G,fetchUrl:G.toString(),ctx:z,headers:{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36","Accept-Language":"ko-KR,ko;q=0.9,en;q=0.8",Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"},mapBody:(Q)=>JSON.stringify({source:"okky",items:yx2(Q)})});if(J.status==="blocked"||J.httpStatus===403){let Q=await YT(G,z);if(Q.status==="ok"&&Q.content){let K=JSON.stringify({source:"okky",items:yx2(Q.content)});return{...Q,strategy:"api",platform:"okky",content:K}}return{...J,error:J.error??Q.error??"Cloudflare blocked OKKY; install curl_cffi (pip install curl_cffi) to enable impersonate fallback"}}return J}}});function vs5($){let z=new URL($.toString());if(z.hostname="www.reddit.com",!z.pathname.endsWith(".json"))z.pathname=z.pathname.replace(/\/?$/,"/.json");return z.toString()}var Ds5,hx2;var fx2=k(()=>{Zz();g7();Ds5=new Set(["reddit.com","www.reddit.com","old.reddit.com","np.reddit.com","m.reddit.com"]);hx2={id:"reddit",match($){return Ds5.has($.hostname)},async fetch($,z){return $4({platform:"reddit",url:$,fetchUrl:vs5($),headers:{"User-Agent":Kz.mobileSafari},ctx:z,expectJson:!0})},async keywordSearch($,z){let G=new URL("https://www.reddit.com/search.json");return G.searchParams.set("q",$),G.searchParams.set("limit","25"),$4({platform:"reddit",url:G,fetchUrl:G.toString(),headers:{"User-Agent":Kz.mobileSafari},ctx:z,expectJson:!0})}}});var Es5,mx2,ws5,cx2;var ix2=k(()=>{g7();Es5=new Set(["www.npmjs.com","npmjs.com"]),mx2={id:"npm",match($){return Es5.has($.hostname)},async fetch($,z){let G=$.pathname.match(/^\/package\/(@[^/]+\/[^/]+|[^/]+)/);if(!G)return l4({url:$.toString(),platform:"npm",reason:"npm URL must be /package/{name}"});let Q=`https://registry.npmjs.org/${G[1]}`;return $4({platform:"npm",url:$,fetchUrl:Q,ctx:z,expectJson:!0})}},ws5=new Set(["pypi.org","www.pypi.org"]),cx2={id:"pypi",match($){return ws5.has($.hostname)},async fetch($,z){let G=$.pathname.match(/^\/project\/([^/]+)/);if(!G)return l4({url:$.toString(),platform:"pypi",reason:"PyPI URL must be /project/{name}"});let J=`https://pypi.org/pypi/${G[1]}/json`;return $4({platform:"pypi",url:$,fetchUrl:J,ctx:z,expectJson:!0})}}});function Ps5($){if($ in n22)return!0;if($.endsWith(".stackexchange.com"))return!0;if($.endsWith(".meta.stackexchange.com"))return!0;return $==="meta.stackoverflow.com"}function Cs5($){if($ in n22){let z=n22[$];if(z)return z}if($==="meta.stackoverflow.com")return"meta.stackoverflow";if($.endsWith(".meta.stackexchange.com"))return`meta.${$.replace(".meta.stackexchange.com","")}`;return $.replace(".stackexchange.com","")}var n22,lx2;var px2=k(()=>{g7();n22={"stackoverflow.com":"stackoverflow","serverfault.com":"serverfault","superuser.com":"superuser","askubuntu.com":"askubuntu","mathoverflow.net":"mathoverflow.net","stackapps.com":"stackapps"};lx2={id:"stackexchange",match($){return Ps5($.hostname)},async fetch($,z){let G=$.pathname.match(/\/questions\/(\d+)/);if(!G)return l4({url:$.toString(),platform:"stackexchange",reason:"Stack Exchange URL must contain /questions/{id}"});let J=Cs5($.hostname),Q=G[1],K=new URL(`https://api.stackexchange.com/2.3/questions/${Q}`);return K.searchParams.set("site",J),K.searchParams.set("filter","withbody"),$4({platform:"stackexchange",url:$,fetchUrl:K.toString(),ctx:z,expectJson:!0})},async keywordSearch($,z){let G=new URL("https://api.stackexchange.com/2.3/search");return G.searchParams.set("order","desc"),G.searchParams.set("sort","votes"),G.searchParams.set("intitle",$),G.searchParams.set("site","stackoverflow"),$4({platform:"stackexchange",url:G,fetchUrl:G.toString(),ctx:z,expectJson:!0})}}});function xs5($){let z=$.pathname.split("/").filter(Boolean);if(z.length===0)return null;let G=z[0];if(!G||G==="i"||G==="home")return null;let J=z.indexOf("status");if(J!==-1&&z[J+1]){let Q=z[J+1];if(Q&&/^\d+$/.test(Q))return{kind:"status",handle:G,statusId:Q}}return{kind:"handle",handle:G}}async function Ss5($,z,G){if(!$.handle)return l4({url:z.toString(),platform:"twitter",reason:"No handle in URL"});let J=`${bs5}/srv/timeline-profile/screen-name/${$.handle}`;try{let Q=await e3(J,{timeoutMs:G.timeoutMs,locale:G.locale,signal:G.signal}),K=c6(Q),Z=us5(Q.text)??Q.text;return{url:z.toString(),status:n8(Q,K),strategy:"api",platform:"twitter",httpStatus:Q.status,content:Z,contentType:"application/json",elapsedMs:Q.elapsedMs,signals:K}}catch(Q){return t1({url:z.toString(),platform:"twitter",error:Q})}}async function ys5($,z,G){if(!$.handle||!$.statusId)return l4({url:z.toString(),platform:"twitter",reason:"Status URL must contain handle and id"});let J=`${_s5}?url=${encodeURIComponent(`https://twitter.com/${$.handle}/status/${$.statusId}`)}&omit_script=1&dnt=1`;try{let Q=await e3(J,{timeoutMs:G.timeoutMs,locale:G.locale,signal:G.signal}),K=c6(Q);return{url:z.toString(),status:n8(Q,K),strategy:"api",platform:"twitter",httpStatus:Q.status,content:Q.text,contentType:Q.headers.get("content-type")??"application/json",elapsedMs:Q.elapsedMs,signals:K}}catch(Q){return t1({url:z.toString(),platform:"twitter",error:Q})}}function us5($){return $.match(/<script[^>]+id=["']__NEXT_DATA__["'][^>]*>([\s\S]*?)<\/script>/)?.[1]??null}var Ts5,bs5="https://syndication.twitter.com",_s5="https://publish.twitter.com/oembed",dx2;var nx2=k(()=>{Zz();_Q();g7();Ts5=new Set(["x.com","www.x.com","twitter.com","www.twitter.com"]);dx2={id:"twitter",match($){return Ts5.has($.hostname)},async fetch($,z){let G=xs5($);if(!G)return l4({url:$.toString(),platform:"twitter",reason:"Cannot parse handle or status from URL"});return G.kind==="status"?ys5(G,$,z):Ss5(G,$,z)}}});function o22($){for(let z of a22)if(z.match($))return z;return null}async function VT($,z){let G=o22($);if(!G)return null;try{return await G.fetch($,z)}catch(J){return t1({url:$.toString(),platform:G.id,error:J})}}async function xQ($,z,G){let J=G?a22.filter((Q)=>G.includes(Q.id)&&Q.keywordSearch):a22.filter((Q)=>Q.keywordSearch);return Promise.all(J.map(async(Q)=>{try{let K=Q.keywordSearch;if(!K)return t1({url:"",platform:Q.id,error:Error("keywordSearch not implemented")});return await K($,z)}catch(K){return t1({url:"",platform:Q.id,error:K})}}))}var a22;var TA=k(()=>{Xx2();Fx2();jx2();Rx2();Px2();g7();bx2();gx2();fx2();ix2();px2();nx2();a22=[dx2,hx2,Dx2,lx2,qx2,Lx2,Wx2,Yx2,Vx2,Bx2,vx2,Ex2,wx2,mx2,cx2,Cx2,Tx2,Ax2,ux2,Ix2]});async function rx2($){let z=$.limit??ms5,G=$.timeoutMs??cs5,J=is5($.topic,$.locale),Q={timeoutMs:G,locale:$.locale==="ko"?"ko-KR,ko;q=0.9":"en-US,en;q=0.9"},K=[];for(let U of J)try{let W=(await xQ(U,Q,["duckduckgo"]))[0];if(W?.status!=="ok")continue;let V;try{V=JSON.parse(W.content)}catch{continue}let B=V;for(let H of B.items??[])K.push({title:String(H.title??""),snippet:String(H.snippet??"")})}catch{}if(K.length===0)return{topic:$.topic,locale:$.locale,queries_used:J,items_scanned:0,candidates:[],reason:"no SERP results — uvx / ddgs may be unavailable"};let Z=ls5(K,$.topic,$.locale,z);return{topic:$.topic,locale:$.locale,queries_used:J,items_scanned:K.length,candidates:Z}}function is5($,z){let G=$.trim();if(z==="ko")return[`${G} 경쟁사`,`${G} 대안`,`${G} vs`];return[`${G} vs`,`alternatives to ${G}`,`${G} competitors`]}function ls5($,z,G,J){let Q=sx2(z),K=new Map,Z=new Map,U=new Map,Y=0,W=[];for(let B of $){if(B.title)W.push(B.title);if(B.snippet)W.push(B.snippet)}for(let B of W)for(let H of ps5(B,G)){let X=ds5(H);if(!ns5(X,Q))continue;let q=X.toLowerCase();if(!K.has(q))K.set(q,X),U.set(q,Y++);Z.set(q,(Z.get(q)??0)+1)}let V=new Set;for(let B of Z.keys()){if(!B.includes(" "))continue;let H=Z.get(B)??0;if(H<2)continue;let X=B.split(/\s+/).slice(-1)[0]?.toLowerCase();if(!X)continue;let q=Z.get(X);if(q!==void 0&&q<=H)V.add(X)}return[...Z.entries()].filter(([B])=>!V.has(B)).sort(([B,H],[X,q])=>{if(q!==H)return q-H;return(U.get(B)??0)-(U.get(X)??0)}).slice(0,J).map(([B,H])=>({entity:K.get(B)??B,mentions:H}))}function ps5($,z){let G=[];for(let J of $.matchAll(gs5))G.push(J[0]);if(z==="ko")for(let J of $.matchAll(hs5))G.push(J[0]);return G}function ds5($){let z=$.replace(/\s+/g," ").trim();if(z=z.replace(/[.,;:\-)]+$/u,"").trim(),/[가-힣]/.test(z))z=z.replace(fs5,"").trim();return z}function ns5($,z){if($.length<2)return!1;if(/^\d+$/.test($))return!1;let G=sx2($);if(G.size===0)return!1;if(ox2(G,z))return!1;if(ox2(z,G))return!1;return!0}function sx2($){return new Set($.toLowerCase().split(/[\s.,;:()/]+/).map((z)=>z.replace(/[^a-z0-9가-힣]/g,"")).filter((z)=>z.length>0))}function ox2($,z){if($.size===0)return!1;for(let G of $)if(!z.has(G))return!1;return!0}var ax2="(?:[A-Z][A-Za-z0-9&.\\-]*|[a-z][A-Za-z0-9&.\\-]*[A-Z][A-Za-z0-9&.\\-]*)",gs5,hs5,fs5,ms5=20,cs5=20000;var tx2=k(()=>{TA();gs5=new RegExp(`\\b${ax2}(?:\\s+${ax2}){0,3}\\b`,"g"),hs5=/(?:[가-힣]{2,}|\d+[가-힣]{1,}|[A-Za-z]{1,3}[가-힣]{1,})/g,fs5=/(?:은|는|을|를|의|도|에|에서|으로|로|와|과|만|까지|부터|이고|이며|입니다|이에요|예요|입니다요|입니다만)$/u});var ex2={};z5(ex2,{runDiscoverCompetitors:()=>as5});async function as5($){let z=[...$],G,J="en",Q,K,Z=0;while(Z<z.length){let Y=z[Z];if(Y==="--locale"&&z[Z+1]){let W=z[++Z];if(W==="en"||W==="ko")J=W;else return process.stderr.write(`[discover-competitors] invalid locale "${W}" (en|ko)
1147
1147
  `),4}else if(Y==="--limit"&&z[Z+1]){if(Q=Number.parseInt(z[++Z]??"",10),!Number.isFinite(Q)||Q<1||Q>25)return process.stderr.write(`[discover-competitors] --limit must be 1..25
1148
1148
  `),4}else if(Y==="--timeout"&&z[Z+1])K=Number.parseInt(z[++Z]??"",10);else if(!Y?.startsWith("--")&&G===void 0)G=Y;Z++}if(!G?.trim())return process.stderr.write(`[discover-competitors] error: topic is required
1149
1149
  `),4;let U=await rx2({topic:G.trim(),locale:J,limit:Q,timeoutMs:K&&Number.isFinite(K)?Math.max(1000,K*1000):void 0});return process.stdout.write(JSON.stringify(U)),U.candidates.length===0?2:0}var $S2=k(()=>{tx2()});function bA($,z){let G=[],Q=$?.data?.children??[];for(let K of Q){let Z=K.data;if(!Z)continue;let U=String(Z.id??Z.name??Math.random()),Y=Z.title!=null?String(Z.title).trim():"",W=Z.selftext!=null?String(Z.selftext).trim():"",V=Z.url!=null?String(Z.url):"",B=Z.permalink!=null?String(Z.permalink):"",H=!1;try{let q=new URL(V).hostname;H=os5.has(q)}catch{}if(!Y&&!W&&H)continue;let X=B?`https://www.reddit.com${B.startsWith("/")?B:`/${B}`}`:V||`https://reddit.com/r/${z}`;G.push({item_id:`reddit:${U}`,source:"reddit",title:Y||null,body:W||null,snippet:W?W.slice(0,280):null,url:X,author:Z.author!=null?String(Z.author):null,published_at:new Date(Number(Z.created_utc??0)*1000).toISOString(),engagement:{score:Number(Z.score??0),num_comments:Number(Z.num_comments??0),upvote_ratio:Number(Z.upvote_ratio??0)},metadata:{}})}return G}function BT($){let z=[],G=$;for(let J of G?.hits??[]){let Q=String(J.objectID??Math.random());z.push({item_id:`hn:${Q}`,source:"hn",title:J.title!=null?String(J.title):null,body:J.story_text!=null?String(J.story_text):null,snippet:J.story_text!=null?String(J.story_text).slice(0,280):J.comment_text!=null?String(J.comment_text).slice(0,280):null,url:J.url!=null?String(J.url):`https://news.ycombinator.com/item?id=${Q}`,author:J.author!=null?String(J.author):null,published_at:J.created_at!=null?String(J.created_at):new Date(Number(J.created_at_i??0)*1000).toISOString(),engagement:{points:Number(J.points??0),num_comments:Number(J.num_comments??0)},metadata:{}})}return z}function XT($){let z=[],G=$;for(let J of G?.posts??[]){let Q=String(J.cid??Math.random()),K=J.record,Z=J.author;z.push({item_id:`bluesky:${Q}`,source:"bluesky",title:null,body:K?.text!=null?String(K.text):null,snippet:K?.text!=null?String(K.text).slice(0,280):null,url:J.uri!=null?`https://bsky.app/profile/${Z?.handle??"unknown"}/post/${String(J.uri).split("/").pop()}`:"https://bsky.app",author:Z?.displayName!=null?String(Z.displayName):Z?.handle!=null?String(Z.handle):null,published_at:K?.createdAt!=null?String(K.createdAt):new Date().toISOString(),engagement:{like_count:Number(J.likeCount??0),repost_count:Number(J.repostCount??0),reply_count:Number(J.replyCount??0)},metadata:{}})}return z}function HT($){let z=[],G=$;for(let J of G?.statuses??[]){let Q=String(J.id??Math.random()),K=J.account,U=(J.content!=null?String(J.content):"").replace(/<[^>]+>/g,"").trim();z.push({item_id:`mastodon:${Q}`,source:"mastodon",title:null,body:U||null,snippet:U?U.slice(0,280):null,url:J.url!=null?String(J.url):`https://mastodon.social/@${K?.acct??"unknown"}/${Q}`,author:K?.display_name!=null?String(K.display_name):K?.username!=null?String(K.username):null,published_at:J.created_at!=null?String(J.created_at):new Date().toISOString(),engagement:{favourites_count:Number(J.favourites_count??0),reblogs_count:Number(J.reblogs_count??0),replies_count:Number(J.replies_count??0)},metadata:{}})}return z}function zS2($){return($?.items??[]).map((G)=>({item_id:G.item_id,source:"clien",title:G.title,body:G.snippet??null,snippet:G.snippet??G.title.slice(0,280),url:G.url,author:G.author,published_at:G.posted_at??new Date().toISOString(),engagement:{view_count:G.view_count,comment_count:G.comment_count},metadata:{labels:["locale:ko"]}}))}function GS2($){return($?.items??[]).map((G)=>({item_id:G.item_id,source:"okky",title:G.title,body:G.snippet??null,snippet:G.snippet??G.title.slice(0,280),url:G.url,author:G.author,published_at:G.posted_at??new Date().toISOString(),engagement:{view_count:G.view_count,comment_count:G.comment_count},metadata:{labels:["locale:ko"]}}))}function rs5($){if(!$)return $;let z=$,G=z.lastIndexOf("›");if(G>=0&&G<z.length-1)z=z.slice(G+1);return z=z.replace(/^[^가-힣A-Z]{0,40}(?=[가-힣A-Z])/u,""),z.trim()}function JS2($){return($?.items??[]).map((G)=>{let J="";try{J=new URL(G.url).hostname}catch{}let Q=rs5(G.title);return{item_id:G.item_id,source:"grounding",title:Q,body:G.snippet??null,snippet:G.snippet??Q.slice(0,280),url:G.url,author:G.author,published_at:G.posted_at??new Date().toISOString(),engagement:{},metadata:{labels:["search:duckduckgo",J?`host:${J}`:"host:unknown"]}}})}function qT($){let z=[],G=$;for(let J of G?.items??[]){let Q=String(J.id??Math.random()),K=J.user;z.push({item_id:`github:${Q}`,source:"github",title:J.title!=null?String(J.title):null,body:J.body!=null?String(J.body).slice(0,2000):null,snippet:J.body!=null?String(J.body).slice(0,280):null,url:J.html_url!=null?String(J.html_url):`https://github.com/issues/${Q}`,author:K?.login!=null?String(K.login):null,published_at:J.created_at!=null?String(J.created_at):new Date().toISOString(),engagement:{reactions:Number(J.reactions?.total_count??0),comments:Number(J.comments??0)},metadata:{}})}return z}var os5;var r22=k(()=>{os5=new Set(["i.redd.it","v.redd.it","preview.redd.it","external-preview.redd.it"])});async function LT($){let z=process.env.REDDIT_CLIENT_ID,G=process.env.REDDIT_CLIENT_SECRET;if(!z||!G)return null;let J=Date.now();if(_A&&_A.expiresAt>J+30000)return _A.value;let Q=new AbortController,K=setTimeout(()=>Q.abort(),$);try{let Z=await fetch("https://www.reddit.com/api/v1/access_token",{method:"POST",signal:Q.signal,headers:{Authorization:`Basic ${Buffer.from(`${z}:${G}`).toString("base64")}`,"Content-Type":"application/x-www-form-urlencoded","User-Agent":"oma-market/0.1 (+https://github.com/first-fluke/oh-my-agent)"},body:"grant_type=client_credentials"});if(clearTimeout(K),!Z.ok)return null;let U=await Z.json();if(!U.access_token)return null;return _A={value:U.access_token,expiresAt:J+(U.expires_in??3600)*1000},_A.value}catch{return clearTimeout(K),null}}function FT($,z){let G=Math.min(Math.max(z,1),100);return`https://api.pullpush.io/reddit/search/submission/?q=${encodeURIComponent($)}&size=${G}&sort=desc&sort_type=created_utc`}function NT($){return{data:{children:($?.data??[]).map((J)=>({data:J}))}}}function KS2($){if($==="7d")return"week";if($==="90d"||$==="180d")return"year";return"month"}function ZS2($){let z=/^(\d+)d$/.exec($);if(!z)return 2592000;return Number(z[1])*24*60*60}var SQ,QS2="oma-market/0.1 (+https://github.com/first-fluke/oh-my-agent)",_A=null;var s22=k(()=>{SQ={reddit:($,z,G)=>`https://oauth.reddit.com/search?q=${encodeURIComponent($)}&restrict_sr=&t=${z}&limit=${G}&sort=relevance&raw_json=1`,hn:($,z,G)=>`https://hn.algolia.com/api/v1/search?query=${encodeURIComponent($)}&hitsPerPage=${G}&numericFilters=${encodeURIComponent(`created_at_i>${z}`)}`,bluesky:($,z)=>`https://api.bsky.app/xrpc/app.bsky.feed.searchPosts?q=${encodeURIComponent($)}&limit=${z}`,mastodon:($,z)=>`https://mastodon.social/api/v2/search?q=${encodeURIComponent($)}&type=statuses&limit=${z}`,github:($,z)=>`https://api.github.com/search/issues?q=${encodeURIComponent($)}+sort:reactions&per_page=${z}`}});import{execFile as ss5}from"node:child_process";import{mkdtemp as ts5,readdir as es5,readFile as US2,rm as $t5}from"node:fs/promises";import{tmpdir as zt5}from"node:os";import{join as xA}from"node:path";import{promisify as Gt5}from"node:util";async function YS2($){let z=await ts5(xA(zt5(),"oma-yt-")),G=Math.max(15000,Math.floor($.timeoutMs/2)),J=Math.max(15000,$.timeoutMs-G);try{let Q;try{Q=await Qt5($,z,G)}catch(W){let V=W instanceof Error?W.message:String(W);return{items:[],reason:`yt-dlp search: ${V.slice(0,200)}`}}if(Q.length===0)return{items:[],reason:"no results"};let K=$.locale==="ko"?"ko":"en",Z=Math.max(8000,Math.floor(J/Q.length)),U=await Xt5(Q,Jt5,(W)=>Zt5(W.id,W.webpage_url,K,z,Z).catch(()=>null));return{items:Q.map((W,V)=>Bt5(W,U[V]??null))}}finally{await $t5(z,{recursive:!0,force:!0}).catch(()=>{})}}async function Qt5($,z,G){let J=[`ytsearch${Math.max(1,Math.min(50,$.limit))}:${$.query}`,"--write-info-json","--skip-download","--no-warnings","--quiet","-o",xA(z,"%(id)s")],Q=Vt5($.window);if(Q)J.push("--dateafter",Q);try{await WS2("yt-dlp",J,{timeout:G,maxBuffer:8388608})}catch{}return Kt5(z)}async function Kt5($){let z;try{z=await es5($)}catch{return[]}let G=[];for(let J of z){if(!J.endsWith(".info.json"))continue;let Q;try{let K=await US2(xA($,J),"utf-8");Q=JSON.parse(K)}catch{continue}if(Q._type==="playlist")continue;if(typeof Q.id!=="string"||Q.id.length===0)continue;G.push(Yt5(Q))}return G}async function Zt5($,z,G,J,Q){try{await WS2("yt-dlp",[z,"--write-auto-sub","--sub-lang",G,"--sub-format","vtt","--skip-download","--no-warnings","--quiet","-o",xA(J,"%(id)s")],{timeout:Q,maxBuffer:8388608})}catch{return null}return Ut5(J,$,G)}async function Ut5($,z,G){let J=`${z}.${G}.vtt`;try{let Q=await US2(xA($,J),"utf-8");return Wt5(Q)}catch{return null}}function Wt5($){if(!$)return"";let z=[],G="";for(let J of $.split(/\r?\n/)){let Q=J.trim();if(!Q)continue;if(Q==="WEBVTT")continue;if(Q.startsWith("Kind:")||Q.startsWith("Language:"))continue;if(Q.startsWith("NOTE"))continue;if(/^\d+$/.test(Q))continue;if(/^\d{2}:\d{2}:\d{2}/.test(Q))continue;if(Q.includes("-->"))continue;let K=Q.replace(/<[^>]+>/g,"").trim();if(!K)continue;if(K===G)continue;z.push(K),G=K}return z.join(" ").replace(/\s+/g," ").trim()}function Yt5($){let z=String($.id);return{id:z,title:String($.title??"").trim(),channel:$.channel!=null?String($.channel):$.uploader!=null?String($.uploader):null,view_count:Number($.view_count??0),duration:$.duration!=null?Number($.duration):null,webpage_url:$.webpage_url??`https://www.youtube.com/watch?v=${z}`,upload_date:$.upload_date!=null?String($.upload_date):null,like_count:$.like_count!=null?Number($.like_count):null,comment_count:$.comment_count!=null?Number($.comment_count):null,description:$.description!=null?String($.description).slice(0,2000):null}}function Vt5($){let z=/^(\d+)d$/.exec($);if(!z)return null;let J=Number(z[1])*24*60*60*1000,Q=new Date(Date.now()-J),K=Q.getUTCFullYear(),Z=String(Q.getUTCMonth()+1).padStart(2,"0"),U=String(Q.getUTCDate()).padStart(2,"0");return`${K}${Z}${U}`}function Bt5($,z){let G=z??$.description??null,J=G?G.slice(0,280):$.title.slice(0,280),Q=$.upload_date?`${$.upload_date.slice(0,4)}-${$.upload_date.slice(4,6)}-${$.upload_date.slice(6,8)}T00:00:00Z`:new Date().toISOString(),K={view_count:$.view_count};if($.like_count!=null)K.like_count=$.like_count;if($.comment_count!=null)K.num_comments=$.comment_count;return{item_id:`youtube:${$.id}`,source:"youtube",title:$.title||null,body:G,snippet:J,url:$.webpage_url,author:$.channel,published_at:Q,engagement:K,metadata:{labels:z?["has-transcript"]:["no-transcript"]}}}async function Xt5($,z,G){let J=Array($.length),Q=0,K=Array.from({length:Math.min(z,$.length)},async()=>{while(!0){let Z=Q++;if(Z>=$.length)return;let U=$[Z];J[Z]=await G(U)}});return await Promise.all(K),J}var WS2,Jt5=4;var VS2=k(()=>{WS2=Gt5(ss5)});function Uz($,z){return{source:$,items:z,failed:!1}}function i6($,z){return{source:$,items:[],failed:!0,reason:z}}function kT($){return $===429?"rate-limited (429)":`HTTP ${$}`}function Wz($,z){if(!z)return $;return $.map((G)=>({...G,metadata:{...G.metadata,labels:[...G.metadata.labels??[],`vs-entity:${z}`]}}))}async function SA($,z,G={}){let J=new AbortController,Q=setTimeout(()=>J.abort(),z);try{let K=await fetch($,{signal:J.signal,headers:{"User-Agent":"oma-market/0.1",Accept:"application/json",...G}});if(clearTimeout(Q),!K.ok)return{ok:!1,status:K.status,data:null};let Z=await K.json();return{ok:!0,status:K.status,data:Z}}catch{return clearTimeout(Q),{ok:!1,status:0,data:null}}}import{execFile as Ht5}from"node:child_process";import{promisify as qt5}from"node:util";async function AT(){if(process.env.YOUTUBE_SC_AVAILABLE)return!0;try{return await Lt5("which",["yt-dlp"]),!0}catch{return!1}}var Lt5;var t22=k(()=>{Lt5=qt5(Ht5)});function e22($,z,G){return async({source:J,query:Q,limit:K,timeoutMs:Z,vsLabel:U})=>{let Y=$(Q,K),{ok:W,status:V,data:B}=await SA(Y,Z,G?.());if(!W)return i6(J,kT(V));return Uz(J,Wz(z(B),U))}}function BS2($,z){return async({source:G,query:J,timeoutMs:Q,vsLabel:K})=>{let Z={timeoutMs:Q,locale:"en-US,en;q=0.9"};try{let U=[600,1500],Y=await xQ(J,Z,[$]),W=Y[0];for(let B=0;B<U.length;B++){if(!(!W||W.status!=="ok"&&W.status!=="not-found"&&W.status!=="auth-required"))break;let X=U[B]??1500;process.stderr.write(`[harvest] ${G} retry #${B+1} after ${X}ms (status=${W?.status??"no-result"})
1150
- `),await new Promise((q)=>setTimeout(q,X)),Y=await xQ(J,Z,[$]),W=Y[0]}if(!W||W.status!=="ok")return i6(G,W?.status==="timeout"?"timeout":W?.error??"fetch failed");let V;try{V=JSON.parse(W.content)}catch{return i6(G,"invalid JSON response")}return Uz(G,Wz(z(V),K))}catch(U){return i6(G,U instanceof Error?U.message:String(U))}}}function $52($,z){return async({source:G})=>{if(!process.env[$])return i6(G,`${$} missing`);return i6(G,`${z??G} search not yet implemented`)}}var Ft5=async({source:$,query:z,limit:G,timeoutMs:J,vsLabel:Q,sites:K})=>{let Z={timeoutMs:J,locale:"en-US,en;q=0.9"},U=K&&K.length>0?K.map((B)=>`${z} site:${B}`):[z],Y=[],W=!1,V=[];for(let B of U)try{let X=(await xQ(B,Z,["duckduckgo"]))[0];if(!X||X.status!=="ok"){V.push(`${B}: ${X?.status==="timeout"?"timeout":X?.error??"fetch failed"}`);continue}let q;try{q=JSON.parse(X.content)}catch{V.push(`${B}: invalid JSON`);continue}Y.push(...JS2(q).slice(0,G)),W=!0}catch(H){V.push(`${B}: ${H instanceof Error?H.message:String(H)}`)}if(!W)return i6($,V.length>0?V.slice(0,3).join("; "):"no results");return Uz($,Wz(Y,Q))},Nt5=async({source:$,query:z,window:G,limit:J,timeoutMs:Q,vsLabel:K})=>{let Z=Math.floor(Date.now()/1000)-ZS2(G),U=SQ.hn(z,Z,J),{ok:Y,status:W,data:V}=await SA(U,Q);if(!Y)return i6($,kT(W));return Uz($,Wz(BT(V),K))},kt5=async({source:$,query:z,window:G,limit:J,timeoutMs:Q,vsLabel:K})=>{let Z=await LT(Q);if(Z){let V=SQ.reddit(z,KS2(G),J),{ok:B,data:H}=await SA(V,Q,{Authorization:`Bearer ${Z}`,"User-Agent":QS2});if(B)return Uz($,Wz(bA(H,$),K));process.stderr.write(`[harvest] reddit oauth call failed; falling back to pullpush archive
1150
+ `),await new Promise((q)=>setTimeout(q,X)),Y=await xQ(J,Z,[$]),W=Y[0]}if(W?.status!=="ok")return i6(G,W?.status==="timeout"?"timeout":W?.error??"fetch failed");let V;try{V=JSON.parse(W.content)}catch{return i6(G,"invalid JSON response")}return Uz(G,Wz(z(V),K))}catch(U){return i6(G,U instanceof Error?U.message:String(U))}}}function $52($,z){return async({source:G})=>{if(!process.env[$])return i6(G,`${$} missing`);return i6(G,`${z??G} search not yet implemented`)}}var Ft5=async({source:$,query:z,limit:G,timeoutMs:J,vsLabel:Q,sites:K})=>{let Z={timeoutMs:J,locale:"en-US,en;q=0.9"},U=K&&K.length>0?K.map((B)=>`${z} site:${B}`):[z],Y=[],W=!1,V=[];for(let B of U)try{let X=(await xQ(B,Z,["duckduckgo"]))[0];if(X?.status!=="ok"){V.push(`${B}: ${X?.status==="timeout"?"timeout":X?.error??"fetch failed"}`);continue}let q;try{q=JSON.parse(X.content)}catch{V.push(`${B}: invalid JSON`);continue}Y.push(...JS2(q).slice(0,G)),W=!0}catch(H){V.push(`${B}: ${H instanceof Error?H.message:String(H)}`)}if(!W)return i6($,V.length>0?V.slice(0,3).join("; "):"no results");return Uz($,Wz(Y,Q))},Nt5=async({source:$,query:z,window:G,limit:J,timeoutMs:Q,vsLabel:K})=>{let Z=Math.floor(Date.now()/1000)-ZS2(G),U=SQ.hn(z,Z,J),{ok:Y,status:W,data:V}=await SA(U,Q);if(!Y)return i6($,kT(W));return Uz($,Wz(BT(V),K))},kt5=async({source:$,query:z,window:G,limit:J,timeoutMs:Q,vsLabel:K})=>{let Z=await LT(Q);if(Z){let V=SQ.reddit(z,KS2(G),J),{ok:B,data:H}=await SA(V,Q,{Authorization:`Bearer ${Z}`,"User-Agent":QS2});if(B)return Uz($,Wz(bA(H,$),K));process.stderr.write(`[harvest] reddit oauth call failed; falling back to pullpush archive
1151
1151
  `)}let{ok:U,status:Y,data:W}=await SA(FT(z,J),Q);if(!U)return i6($,kT(Y));return Uz($,Wz(bA(NT(W),$),K))},At5,jt5=async({source:$,query:z,window:G,limit:J,timeoutMs:Q,vsLabel:K})=>{if(!await AT())return i6($,"yt-dlp not found");let Z=Math.max(Q,60000),U=/[ㄱ-ㆎ가-힣]/.test(z)?"ko":"en",{items:Y,reason:W}=await YS2({query:z,window:G,limit:J,locale:U,timeoutMs:Z});if(Y.length===0)return i6($,W??"no results");return Uz($,Wz(Y,K))},XS2,HS2;var qS2=k(()=>{TA();s22();r22();VS2();t22();At5=e22(SQ.github,qT,()=>{let $={};if(process.env.GITHUB_TOKEN)$.Authorization=`Bearer ${process.env.GITHUB_TOKEN}`;return $});XS2=$52("SCRAPECREATORS_API_KEY"),HS2={grounding:Ft5,hn:Nt5,reddit:kt5,bluesky:e22(SQ.bluesky,XT),mastodon:e22(SQ.mastodon,HT),github:At5,clien:BS2("clien",zS2),okky:BS2("okky",GS2),youtube:jt5,x:$52("X_BEARER_TOKEN","x"),tiktok:XS2,instagram:XS2,perplexity:$52("PERPLEXITY_API_KEY","perplexity")}});import{readFile as Mt5}from"node:fs/promises";import{join as Ot5}from"node:path";async function z52($,z,G,J,Q,K,Z){let U=HS2[$];if(!U)return i6($,"unknown source");return U({source:$,query:z,window:G,limit:J,timeoutMs:Q,vsLabel:K,sites:Z})}async function LS2(){let $=["reddit","hn","bluesky","mastodon","github","grounding"];if(process.env.X_BEARER_TOKEN)$.push("x");else process.stderr.write(`[harvest] x skipped: X_BEARER_TOKEN missing
1152
1152
  `);if(process.env.SCRAPECREATORS_API_KEY)$.push("tiktok","instagram");else process.stderr.write(`[harvest] tiktok skipped: SCRAPECREATORS_API_KEY missing
1153
1153
  `),process.stderr.write(`[harvest] instagram skipped: SCRAPECREATORS_API_KEY missing
@@ -1237,7 +1237,7 @@ ${R.violations.map((I)=>` - ${I}`).join(`
1237
1237
  `),4}}var me5;var My2=k(()=>{_3();Qy2();Xy2();Ly2();ky2();MT();me5=`${b3}/market/`});var Oy2={};z5(Oy2,{registerMarketCommand:()=>ie5});function ie5($){let z=$.command("market").description("Market research pipeline (pain / trend / competitor / discovery)");z.command("detect-trap <topic>").description("Preflight check that refuses keyword-trap queries").option("--force","bypass refusal even if a trap is detected").action(async(G,J)=>{let{runDetectTrap:Q}=await Promise.resolve().then(() => (zx2(),$x2)),K=[G];if(J.force)K.push("--force");let Z=await Q(K);process.exit(Z)}),z.command("discover-competitors <topic>").description("Auto-discover peer/competitor entities for a topic via DDG SERP entity-extract").option("--locale <lang>","en|ko","en").option("--limit <n>","max candidate entities to return (1..25, default 20)").option("--timeout <sec>","DDG fan-out timeout in seconds").action(async(G,J)=>{let{runDiscoverCompetitors:Q}=await Promise.resolve().then(() => ($S2(),ex2)),K=[G];if(J.locale)K.push("--locale",J.locale);if(J.limit)K.push("--limit",J.limit);if(J.timeout)K.push("--timeout",J.timeout);let Z=await Q(K);process.exit(Z)}),z.command("harvest <query>").description("Fan-out harvest across community sources").option("--sources <list>","comma-separated source list").option("--window <window>","freshness window (7d|30d|90d|180d)","30d").option("--per-source-limit <n>","items per source","12").option("--operator-pack <pack>","pain|positive|competitor|discovery|none").option("--locale <lang>","en|ko","en").option("--cache-ttl <dur>","cache TTL (15m, 1h, 2d)").option("--no-cache","skip cache").option("--vs <entity>","competitor entity for fan-out").option("--timeout <sec>","per-source timeout seconds").option("--sites <list>","comma-separated site: filters for grounding (e.g., blog.naver.com,kin.naver.com)").option("--query-strict","post-filter: drop items where the query token is not present in title").option("--no-widen","disable auto-widen on thin corpus (default: widen unless --window pinned)").option("--widen-on-thin","force auto-widen even when --window is pinned").option("--widen-threshold <n>","minimum item count before auto-widen kicks in (default 5)").action(async(G,J)=>{let{runHarvest:Q}=await Promise.resolve().then(() => (PS2(),wS2)),K=[G];if(J.sources)K.push("--sources",J.sources);if(J.window)K.push("--window",J.window);if(J.perSourceLimit)K.push("--per-source-limit",J.perSourceLimit);if(J.operatorPack)K.push("--operator-pack",J.operatorPack);if(J.locale)K.push("--locale",J.locale);if(J.cacheTtl)K.push("--cache-ttl",J.cacheTtl);if(J.cache===!1)K.push("--no-cache");if(J.vs)K.push("--vs",J.vs);if(J.timeout)K.push("--timeout",J.timeout);if(J.sites)K.push("--sites",J.sites);if(J.queryStrict)K.push("--query-strict");if(J.widen===!1)K.push("--no-widen");if(J.widenOnThin)K.push("--widen-on-thin");if(J.widenThreshold)K.push("--widen-threshold",J.widenThreshold);let Z=await Q(K);process.exit(Z)}),z.command("score").description("Score harvested items by engagement, freshness, and intent").requiredOption("--intent <intent>","pain|trend|competitor|discovery").option("--freshness-mode <mode>","balanced_recent|strict_recent|evergreen_ok").option("--now-ms <ms>","override current time (test hook)").action(async(G)=>{let{runScore:J}=await Promise.resolve().then(() => (_S2(),bS2)),Q=["--intent",G.intent];if(G.freshnessMode)Q.push("--freshness-mode",G.freshnessMode);if(G.nowMs)Q.push("--now-ms",G.nowMs);let K=await J(Q);process.exit(K)}),z.command("fuse").description("URL canonicalization → weighted RRF → per-author cap → sort").option("--rrf-k <n>","RRF constant k (default 60)").option("--max-per-author <n>","max candidates per author (default 3)").option("--diversity-threshold <t>","relevance threshold for diversity guard (guard disabled unless set)").action(async(G)=>{let{runFuse:J}=await Promise.resolve().then(() => (hS2(),gS2)),Q=[];if(G.rrfK)Q.push("--rrf-k",G.rrfK);if(G.maxPerAuthor)Q.push("--max-per-author",G.maxPerAuthor);if(G.diversityThreshold)Q.push("--diversity-threshold",G.diversityThreshold);let K=await J(Q);process.exit(K)}),z.command("cluster").description("Cluster candidates by entity overlap with MMR representative selection").option("--overlap-threshold <n>","overlap coefficient threshold (default 0.4)").option("--max-reps <n>","max representatives per cluster (default 3)").option("--lambda <n>","MMR diversity lambda (default 0.75)").action(async(G)=>{let{runCluster:J}=await Promise.resolve().then(() => (tS2(),sS2)),Q=[];if(G.overlapThreshold)Q.push("--overlap-threshold",G.overlapThreshold);if(G.maxReps)Q.push("--max-reps",G.maxReps);if(G.lambda)Q.push("--lambda",G.lambda);let K=await J(Q);process.exit(K)}),z.command("render").description("Render market research brief from cluster output").option("--topic <topic>").option("--intent <intent>","pain|trend|competitor|discovery").option("--format <fmt>","md|json","md").option("--frameworks <list>","auto|none|swot,5f,pestel","auto").option("--vs <entity>").option("--min-trust <level>").option("--no-self-check").option("--output-dir <dir>").option("--now-ms <n>","test hook").option("--version-override <ver>","test hook").action(async(G)=>{let{runRender:J,packArgv:Q}=await Promise.resolve().then(() => (My2(),jy2)),K=await J(Q(G));process.exit(K)})}import DT from"node:fs";import Iy2 from"node:path";function Ry2($,z){let G=Iy2.join($,".codex","config.toml");try{let J=DT.existsSync(G)?DT.readFileSync(G,"utf-8"):"",Q=o$(J);if(Q.model_reasoning_effort===z)return;let K=BO2(Q,z);DT.mkdirSync(Iy2.dirname(G),{recursive:!0}),DT.writeFileSync(G,`${r$(K)}
1238
1238
  `)}catch{console.warn(`[runtime-dispatch] Failed to write .codex/config.toml — effort '${z}' not persisted`)}}var Dy2=k(()=>{LB()});function uA($=process.env){let z=$.OMA_RUNTIME_VENDOR?.trim().toLowerCase();if(z&&le5.has(z))return z;if(Object.keys($).some((G)=>G.startsWith("CLAUDE_CODE_")))return"claude";if($.CLAUDECODE==="1")return"claude";if($.CODEX_THREAD_ID||$.CODEX_CI)return"codex";if(Object.keys($).some((G)=>G.startsWith("ANTIGRAVITY_"))||$.ANTIGRAVITY_IDE==="1")return"antigravity";if(Object.keys($).some((G)=>G.startsWith("QWEN_CODE_"))||$.QWEN_CODE==="1")return"qwen";if($.GROK_WORKSPACE_ROOT||$.GROK_SESSION_ID||$.GROK_BUILD)return"grok";if($.KIRO_SESSION_ID||$.KIRO_CHAT_LOG_FILE||$.KIRO_HOME)return"kiro";if($.PI_CODING_AGENT==="true"||$.PI_CODING_AGENT==="1")return"pi";if($.CURSOR_AGENT==="1"||$.CURSOR_CLI==="1"||typeof $.CURSOR_TRACE_ID==="string")return"cursor";return"unknown"}var le5;var F52=k(()=>{le5=new Set(["claude","codex","cursor","antigravity","qwen","grok","kimi","kiro","opencode","pi"])});function N52($,z,G,J,Q,K={}){return(se5[$]??te5)({vendor:$,vendorConfig:z,promptFlag:G,promptContent:J,agentId:Q,options:K})}function $24($){return/^[A-Za-z_][A-Za-z0-9_]*$/.test($)&&!ee5.test($)}var pe5=({vendorConfig:$,promptContent:z,options:G})=>{let{readOnly:J=!1}=G,Q=$.command||"cursor",K=["agent","-p"];if($.output_format_flag&&$.output_format)K.push($.output_format_flag,$.output_format);else if($.output_format_flag)K.push($.output_format_flag);if(J)if($.read_only_flag)K.push(..._7($.read_only_flag));else console.warn("[agent-spawn] read-only mode requested but vendor 'cursor' has no read_only_flag defined; spawning without auto-approve (permissive flags suppressed)");else if($.auto_approve_flag)K.push($.auto_approve_flag);else K.push("--yolo");if(K.push("--trust"),$.model_flag&&$.default_model)K.push($.model_flag,$.default_model);return K.push(z),{command:Q,args:K,env:{...process.env}}},de5=({vendor:$,vendorConfig:z,promptContent:G,agentId:J,options:Q})=>{let{readOnly:K=!1}=Q,Z=z.command||"kiro-cli",U=["chat","--no-interactive"];if(!K)if(z.auto_approve_flag)U.push(z.auto_approve_flag);else U.push("--trust-all-tools");else if(z.read_only_flag)U.push(..._7(z.read_only_flag));else console.warn(`[agent-spawn] read-only mode requested but vendor '${$}' has no read_only_flag defined; spawning without auto-approve (permissive flags suppressed)`);if(J)U.push("--agent",J);if(z.model_flag&&z.default_model)U.push(z.model_flag,z.default_model);return U.push(G),{command:Z,args:U,env:{...process.env}}},ne5=({vendor:$,vendorConfig:z,promptContent:G,options:J})=>{let{readOnly:Q=!1}=J,K=z.command||"grok",Z=[];if(!Q)if(z.auto_approve_flag)Z.push(z.auto_approve_flag);else Z.push("--yolo");else if(z.read_only_flag)Z.push(..._7(z.read_only_flag));else console.warn(`[agent-spawn] read-only mode requested but vendor '${$}' has no read_only_flag defined; spawning without auto-approve (permissive flags suppressed)`);if(z.model_flag&&z.default_model)Z.push(z.model_flag,z.default_model);return Z.push("-p",G),{command:K,args:Z,env:{...process.env}}},ae5=({vendor:$,vendorConfig:z,promptContent:G,options:J})=>{let{readOnly:Q=!1}=J,K=z.command||"kimi",Z=[];if(z.model_flag&&z.default_model)Z.push(z.model_flag,z.default_model);if(Q)if(z.read_only_flag)Z.push(..._7(z.read_only_flag));else console.warn(`[agent-spawn] read-only mode requested but vendor '${$}' has no read_only_flag defined; spawning without auto-approve (permissive flags suppressed)`);return Z.push("-p",G),{command:K,args:Z,env:{...process.env}}},oe5=({vendorConfig:$,promptContent:z,options:G})=>{let{readOnly:J=!1}=G,Q=$.command||"pi",K=["-p"];if(J)if($.read_only_flag)K.push(..._7($.read_only_flag));else K.push("--exclude-tools","edit,write");if($.model_flag&&$.default_model)K.push($.model_flag,$.default_model);return K.push(z),{command:Q,args:K,env:{...process.env}}},re5=({vendor:$,vendorConfig:z,promptContent:G,agentId:J,options:Q})=>{let{readOnly:K=!1}=Q,Z=z.command||"opencode",U=["run"],Y=z.model_flag||"-m",W=z.default_model;if(W)U.push(Y,W);if(J)U.push("--agent",J);if(U.push("--dir",process.cwd()),!K)U.push("--dangerously-skip-permissions");else if(z.read_only_flag)U.push(..._7(z.read_only_flag));else console.warn(`[agent-spawn] read-only mode requested but vendor '${$}' has no read_only_flag defined; spawning without auto-approve (permissive flags suppressed)`);return U.push(G),{command:Z,args:U,env:{...process.env}}},se5,te5=({vendor:$,vendorConfig:z,promptFlag:G,promptContent:J,options:Q})=>{let{readOnly:K=!1}=Q,Z={antigravity:"agy",kiro:"kiro-cli"},U=z.command||Z[$]||$,Y=[],W=[];if(z.subcommand)Y.push(z.subcommand);if(z.output_format_flag&&z.output_format)W.push(z.output_format_flag,z.output_format);else if(z.output_format_flag)W.push(z.output_format_flag);if($!=="antigravity"&&z.model_flag&&z.default_model)W.push(z.model_flag,z.default_model);if(z.isolation_flags)W.push(..._7(z.isolation_flags));if(K)if(z.read_only_flag)W.push(..._7(z.read_only_flag));else{let H={codex:"--sandbox read-only",claude:"--permission-mode plan"}[$];if(H)W.push(..._7(H));else console.warn(`[agent-spawn] read-only mode requested but vendor '${$}' has no read_only_flag defined; spawning without auto-approve (permissive flags suppressed)`)}else if(z.auto_approve_flag)W.push(z.auto_approve_flag);else{let H={codex:"--full-auto",qwen:"--yolo",antigravity:"--dangerously-skip-permissions",grok:"--yolo",kiro:"--trust-all-tools"}[$];if(H)W.push(H)}if($==="codex")W.push("--dangerously-bypass-hook-trust");if(G)W.push(G,J);if(Y.push(...W),!G)Y.push(J);let V={...process.env};if(z.isolation_env){let[B,...H]=z.isolation_env.split("="),X=H.join("=");if(B&&X&&$24(B))V[B]=X.replace("$$",String(process.pid));else if(B&&X)console.warn(`[agent-spawn] isolation_env key '${B}' can hijack process loading; skipped.`)}return{command:U,args:Y,env:V}},ee5;var k52=k(()=>{x8();se5={cursor:pe5,kiro:de5,grok:ne5,kimi:ae5,pi:oe5,opencode:re5};ee5=/^(PATH|LD_[A-Z_]+|DYLD_[A-Z_]+|PYTHONPATH|PYTHONSTARTUP|NODE_OPTIONS|NODE_PATH|BUN_INSTALL|PERL5LIB|RUBYLIB|IFS|ENV|BASH_ENV|SHELL)$/i});function A52($,z){return`@${$}
1239
1239
 
1240
- ${z}`}function vy2($,z,G,J={}){let{readOnly:Q=!1}=J,K=G.command||"claude",Z=["--agent",$];if(G.output_format_flag&&G.output_format)Z.push(G.output_format_flag,G.output_format);else if(G.output_format_flag)Z.push(G.output_format_flag);if(G.model_flag&&G.default_model)Z.push(G.model_flag,G.default_model);if(Q){let U=G.read_only_flag??"--permission-mode plan";Z.push(..._7(U))}else if(G.auto_approve_flag)Z.push(G.auto_approve_flag);return Z.push("-p",z),{command:K,args:Z,env:{...process.env}}}function Ey2($,z,G,J={}){let{readOnly:Q=!1}=J,K=G.command||"codex",Z=[];if(G.subcommand)Z.push(G.subcommand);if(G.output_format_flag)Z.push(G.output_format_flag);if(G.model_flag&&G.default_model)Z.push(G.model_flag,G.default_model);if(Q){let U=G.read_only_flag??"--sandbox read-only";Z.push(..._7(U))}else if(G.auto_approve_flag)Z.push(G.auto_approve_flag);return Z.push("--dangerously-bypass-hook-trust"),Z.push(A52($,z)),{command:K,args:Z,env:{...process.env}}}function wy2($,z,G,J={}){let{readOnly:Q=!1}=J,K=G.command||"agy",Z=[];if(Q)if(G.read_only_flag)Z.push(..._7(G.read_only_flag));else console.warn("[agent-spawn] read-only mode requested but vendor 'antigravity' has no read_only_flag defined; spawning without auto-approve (permissive flags suppressed)");else if(G.auto_approve_flag)Z.push(G.auto_approve_flag);else Z.push("--dangerously-skip-permissions");return Z.push("-p",A52($,z)),{command:K,args:Z,env:{...process.env}}}function Py2($,z,G,J={}){let{readOnly:Q=!1}=J,K=G.command||"kiro-cli",Z=["chat","--no-interactive"];if(Q)if(G.read_only_flag)Z.push(..._7(G.read_only_flag));else console.warn("[agent-spawn] read-only mode requested but vendor 'kiro' has no read_only_flag defined; spawning without auto-approve (permissive flags suppressed)");else if(G.auto_approve_flag)Z.push(G.auto_approve_flag);else Z.push("--trust-all-tools");if($)Z.push("--agent",$);if(G.model_flag&&G.default_model)Z.push(G.model_flag,G.default_model);return Z.push(z),{command:K,args:Z,env:{...process.env}}}function Cy2($,z,G,J={}){let{readOnly:Q=!1}=J,K=G.command||"cursor",Z=["agent","-p"];if(G.output_format_flag&&G.output_format)Z.push(G.output_format_flag,G.output_format);else if(G.output_format_flag)Z.push(G.output_format_flag);if(Q)if(G.read_only_flag)Z.push(..._7(G.read_only_flag));else console.warn("[agent-spawn] read-only mode requested but vendor 'cursor' has no read_only_flag defined; spawning without auto-approve (permissive flags suppressed)");else if(G.auto_approve_flag)Z.push(G.auto_approve_flag);else Z.push("--yolo");if(Z.push("--trust"),G.model_flag&&G.default_model)Z.push(G.model_flag,G.default_model);return Z.push(A52($,z)),{command:K,args:Z,env:{...process.env}}}var Ty2=k(()=>{x8()});function by2($){let z=$.spec.supports.effort;if(!z||z.type!=="binary-thinking")return null;if($.thinking===!0)return"--thinking";if($.thinking===!1)return"--no-thinking";if(!$.effort)return null;if($.effort==="high"||$.effort==="xhigh")return"--thinking";return"--no-thinking"}function j52($){let z=[];switch($.cli){case"codex":{z.push("-m",$.cliModel);break}case"claude":{z.push("--model",$.cliModel);break}case"qwen":{z.push("-m",$.cliModel);let G=by2($);if(G)z.push(G);break}case"cursor":break;case"antigravity":break;case"pi":{z.push("--model",$.cliModel);let G=yL2($);if(G)z.push("--thinking",G);break}case"opencode":break;default:break}return z}var M52=k(()=>{$o()});function z24($){let{default_model:z,...G}=$;return G}function G24($,z){let G=j52(z);return $.args.push(...G),$}function _y2($,z,G){let J=$.args.pop();if(J===void 0)return $;return $.args.push(z,G),$.args.push(J),$}function J24($,z){return $?.cli===z}function Q24($,z,G){if(!z)return $;if(G==="cursor")return _y2($,"--model",z.cliModel);if(G==="opencode")return _y2($,"-m",z.cliModel);return G24($,z)}function CG($,z,G,J,Q,K=process.env,Z={}){let{readOnly:U=!1}=Z,Y={readOnly:U},W=uA(K),V=null;try{V=zo($,z==="pi"||W==="pi"?"pi":void 0)}catch(F){if(F instanceof B7)console.warn(`[runtime-dispatch] ${$}: ${F.message} — falling back to vendor config defaults`);else throw F}let B=J24(V,z)?V:null;if(V&&!B)console.warn(`[runtime-dispatch] ${$}: resolved model targets ${V.cli}, but dispatch target is ${z}; using ${z} vendor defaults.`);let H=B?z24(G):G;if(B?.cli==="codex"&&B.effort!==void 0)Ry2(process.cwd(),B.effort);let X=(F,N,A)=>{if(B)Q24(A,B,z);return{mode:F,runtimeVendor:W,targetVendor:z,reason:N,invocation:A}},q=(F)=>{let A=N52(z,H,J,Q,z==="opencode"?$:void 0,Y);return X("external",F,A)};if(W==="qwen")return console.warn(`[runtime-dispatch] ${W} runtime: all agents dispatched as external subprocess`),q(`${W} runtime has no native parallel dispatch`);let L=W===z?K24[z]:void 0;if(L){let F=L.build($,Q,H,Y);return X("native",L.reason,F)}return q(W==="unknown"?"runtime vendor not detected":"cross-vendor or unsupported native path")}var K24;var sB=k(()=>{Dy2();ZV();F52();k52();Ty2();M52();hE();ZV();F52();k52();M52();hE();K24={antigravity:{build:wy2,reason:"same-vendor Antigravity (agy) runtime detected"},claude:{build:vy2,reason:"same-vendor Claude runtime detected"},codex:{build:Ey2,reason:"same-vendor Codex runtime detected"},cursor:{build:Cy2,reason:"same-vendor Cursor agent CLI (--print)"},kiro:{build:Py2,reason:"same-vendor Kiro CLI (--no-interactive)"}}});import{existsSync as Z24,readFileSync as U24}from"node:fs";import{dirname as W24,join as xy2,parse as Y24,resolve as V24}from"node:path";function H24($){let z=aB[$];if(!z)return"unknown";try{return z()?"logged_in":"not_logged_in"}catch{return"unknown"}}function q24($,z){let G=V24($),J=Y24(G).root;while(G!==J){let Q=xy2(G,z);if(Z24(Q))return Q;G=W24(G)}return null}function L24($){let z=q24($,xy2(".agents","oma-config.yaml"));if(!z)return null;try{let G=U24(z,"utf-8"),J=Sy2.parse(G);if(typeof J==="object"&&J!==null&&!Array.isArray(J))return J}catch{}return null}function F24($){let z=$.model_preset;if(!z)return null;let G=p$[z]??z,J=r3[G];if(J)return{preset:J,resolvedKey:G};let Q=$.custom_presets?.[G];if(Q){if(Q.extends){let K=p$[Q.extends]??Q.extends,Z=r3[K];if(Z)return{preset:{description:Q.description,agent_defaults:{...Z.agent_defaults,...Q.agent_defaults}},resolvedKey:G}}return{preset:Q,resolvedKey:G}}return null}function N24($){let z=$.split("/")[0]??"";return JQ(z)??"unknown"}async function yy2($){let z=L24($),G=z?F24(z):null,J=G===null,Q=G?.resolvedKey??z?.model_preset??"(unknown)",Z=uA(process.env)==="antigravity",U=z?.agents??{},Y=!1,W=B24.map((H)=>{if(J)return{role:H,model:"❌ NO PRESET",cli:"unknown",authStatus:"unknown",source:"preset"};let X=H,q=U[X],L=G.preset.agent_defaults[X],F,N;if(q)F=L?{...L,...q}:q,N="override",Y=!0;else F=L??G.preset.agent_defaults.orchestrator,N="preset";let A=F?.model??"unknown",j=N24(A),M=j!=="unknown"?H24(j):"unknown",R=GQ(A,z?.models)?.auth_hint;return{role:H,model:A,cli:j,authStatus:M,authHint:R,source:N}}),V=fb2(),B=Z?W.filter((H)=>X24.includes(H.role)&&H.cli!=="antigravity").map((H)=>H.role):[];return{profileName:Q,rows:W,qwenOAuth:V,isAntigravity:Z,antigravityFallbackRoles:B,missingPreset:J,allFromPreset:!J&&!Y}}var Sy2,B24,X24;var uy2=k(()=>{sB();iZ();cZ();RA();dC();Sy2=E2(J3(),1),B24=["orchestrator","architecture","qa","pm","backend","frontend","mobile","db","debug","docs","tf-infra","explore"],X24=["backend","frontend","mobile","db","debug","tf-infra"]});import{existsSync as vT,readdirSync as gy2,readFileSync as k24,statSync as A24}from"node:fs";import{isAbsolute as j24,join as hA}from"node:path";function M24($){let z=$.split(`
1240
+ ${z}`}function vy2($,z,G,J={}){let{readOnly:Q=!1}=J,K=G.command||"claude",Z=["--agent",$];if(G.output_format_flag&&G.output_format)Z.push(G.output_format_flag,G.output_format);else if(G.output_format_flag)Z.push(G.output_format_flag);if(G.model_flag&&G.default_model)Z.push(G.model_flag,G.default_model);if(Q){let U=G.read_only_flag??"--permission-mode plan";Z.push(..._7(U))}else if(G.auto_approve_flag)Z.push(G.auto_approve_flag);return Z.push("-p",z),{command:K,args:Z,env:{...process.env}}}function Ey2($,z,G,J={}){let{readOnly:Q=!1}=J,K=G.command||"codex",Z=[];if(G.subcommand)Z.push(G.subcommand);if(G.output_format_flag)Z.push(G.output_format_flag);if(G.model_flag&&G.default_model)Z.push(G.model_flag,G.default_model);if(Q){let U=G.read_only_flag??"--sandbox read-only";Z.push(..._7(U))}else if(G.auto_approve_flag)Z.push(G.auto_approve_flag);return Z.push("--dangerously-bypass-hook-trust"),Z.push(A52($,z)),{command:K,args:Z,env:{...process.env}}}function wy2($,z,G,J={}){let{readOnly:Q=!1}=J,K=G.command||"agy",Z=[];if(Q)if(G.read_only_flag)Z.push(..._7(G.read_only_flag));else console.warn("[agent-spawn] read-only mode requested but vendor 'antigravity' has no read_only_flag defined; spawning without auto-approve (permissive flags suppressed)");else if(G.auto_approve_flag)Z.push(G.auto_approve_flag);else Z.push("--dangerously-skip-permissions");return Z.push("-p",A52($,z)),{command:K,args:Z,env:{...process.env}}}function Py2($,z,G,J={}){let{readOnly:Q=!1}=J,K=G.command||"kiro-cli",Z=["chat","--no-interactive"];if(Q)if(G.read_only_flag)Z.push(..._7(G.read_only_flag));else console.warn("[agent-spawn] read-only mode requested but vendor 'kiro' has no read_only_flag defined; spawning without auto-approve (permissive flags suppressed)");else if(G.auto_approve_flag)Z.push(G.auto_approve_flag);else Z.push("--trust-all-tools");if($)Z.push("--agent",$);if(G.model_flag&&G.default_model)Z.push(G.model_flag,G.default_model);return Z.push(z),{command:K,args:Z,env:{...process.env}}}function Cy2($,z,G,J={}){let{readOnly:Q=!1}=J,K=G.command||"cursor",Z=["agent","-p"];if(G.output_format_flag&&G.output_format)Z.push(G.output_format_flag,G.output_format);else if(G.output_format_flag)Z.push(G.output_format_flag);if(Q)if(G.read_only_flag)Z.push(..._7(G.read_only_flag));else console.warn("[agent-spawn] read-only mode requested but vendor 'cursor' has no read_only_flag defined; spawning without auto-approve (permissive flags suppressed)");else if(G.auto_approve_flag)Z.push(G.auto_approve_flag);else Z.push("--yolo");if(Z.push("--trust"),G.model_flag&&G.default_model)Z.push(G.model_flag,G.default_model);return Z.push(A52($,z)),{command:K,args:Z,env:{...process.env}}}var Ty2=k(()=>{x8()});function by2($){if($.spec.supports.effort?.type!=="binary-thinking")return null;if($.thinking===!0)return"--thinking";if($.thinking===!1)return"--no-thinking";if(!$.effort)return null;if($.effort==="high"||$.effort==="xhigh")return"--thinking";return"--no-thinking"}function j52($){let z=[];switch($.cli){case"codex":{z.push("-m",$.cliModel);break}case"claude":{z.push("--model",$.cliModel);break}case"qwen":{z.push("-m",$.cliModel);let G=by2($);if(G)z.push(G);break}case"cursor":break;case"antigravity":break;case"pi":{z.push("--model",$.cliModel);let G=yL2($);if(G)z.push("--thinking",G);break}case"opencode":break;default:break}return z}var M52=k(()=>{$o()});function z24($){let{default_model:z,...G}=$;return G}function G24($,z){let G=j52(z);return $.args.push(...G),$}function _y2($,z,G){let J=$.args.pop();if(J===void 0)return $;return $.args.push(z,G),$.args.push(J),$}function J24($,z){return $?.cli===z}function Q24($,z,G){if(!z)return $;if(G==="cursor")return _y2($,"--model",z.cliModel);if(G==="opencode")return _y2($,"-m",z.cliModel);return G24($,z)}function CG($,z,G,J,Q,K=process.env,Z={}){let{readOnly:U=!1}=Z,Y={readOnly:U},W=uA(K),V=null;try{V=zo($,z==="pi"||W==="pi"?"pi":void 0)}catch(F){if(F instanceof B7)console.warn(`[runtime-dispatch] ${$}: ${F.message} — falling back to vendor config defaults`);else throw F}let B=J24(V,z)?V:null;if(V&&!B)console.warn(`[runtime-dispatch] ${$}: resolved model targets ${V.cli}, but dispatch target is ${z}; using ${z} vendor defaults.`);let H=B?z24(G):G;if(B?.cli==="codex"&&B.effort!==void 0)Ry2(process.cwd(),B.effort);let X=(F,N,A)=>{if(B)Q24(A,B,z);return{mode:F,runtimeVendor:W,targetVendor:z,reason:N,invocation:A}},q=(F)=>{let A=N52(z,H,J,Q,z==="opencode"?$:void 0,Y);return X("external",F,A)};if(W==="qwen")return console.warn(`[runtime-dispatch] ${W} runtime: all agents dispatched as external subprocess`),q(`${W} runtime has no native parallel dispatch`);let L=W===z?K24[z]:void 0;if(L){let F=L.build($,Q,H,Y);return X("native",L.reason,F)}return q(W==="unknown"?"runtime vendor not detected":"cross-vendor or unsupported native path")}var K24;var sB=k(()=>{Dy2();ZV();F52();k52();Ty2();M52();hE();ZV();F52();k52();M52();hE();K24={antigravity:{build:wy2,reason:"same-vendor Antigravity (agy) runtime detected"},claude:{build:vy2,reason:"same-vendor Claude runtime detected"},codex:{build:Ey2,reason:"same-vendor Codex runtime detected"},cursor:{build:Cy2,reason:"same-vendor Cursor agent CLI (--print)"},kiro:{build:Py2,reason:"same-vendor Kiro CLI (--no-interactive)"}}});import{existsSync as Z24,readFileSync as U24}from"node:fs";import{dirname as W24,join as xy2,parse as Y24,resolve as V24}from"node:path";function H24($){let z=aB[$];if(!z)return"unknown";try{return z()?"logged_in":"not_logged_in"}catch{return"unknown"}}function q24($,z){let G=V24($),J=Y24(G).root;while(G!==J){let Q=xy2(G,z);if(Z24(Q))return Q;G=W24(G)}return null}function L24($){let z=q24($,xy2(".agents","oma-config.yaml"));if(!z)return null;try{let G=U24(z,"utf-8"),J=Sy2.parse(G);if(typeof J==="object"&&J!==null&&!Array.isArray(J))return J}catch{}return null}function F24($){let z=$.model_preset;if(!z)return null;let G=p$[z]??z,J=r3[G];if(J)return{preset:J,resolvedKey:G};let Q=$.custom_presets?.[G];if(Q){if(Q.extends){let K=p$[Q.extends]??Q.extends,Z=r3[K];if(Z)return{preset:{description:Q.description,agent_defaults:{...Z.agent_defaults,...Q.agent_defaults}},resolvedKey:G}}return{preset:Q,resolvedKey:G}}return null}function N24($){let z=$.split("/")[0]??"";return JQ(z)??"unknown"}async function yy2($){let z=L24($),G=z?F24(z):null,J=G===null,Q=G?.resolvedKey??z?.model_preset??"(unknown)",Z=uA(process.env)==="antigravity",U=z?.agents??{},Y=!1,W=B24.map((H)=>{if(J)return{role:H,model:"❌ NO PRESET",cli:"unknown",authStatus:"unknown",source:"preset"};let X=H,q=U[X],L=G.preset.agent_defaults[X],F,N;if(q)F=L?{...L,...q}:q,N="override",Y=!0;else F=L??G.preset.agent_defaults.orchestrator,N="preset";let A=F?.model??"unknown",j=N24(A),M=j!=="unknown"?H24(j):"unknown",R=GQ(A,z?.models)?.auth_hint;return{role:H,model:A,cli:j,authStatus:M,authHint:R,source:N}}),V=fb2(),B=Z?W.filter((H)=>X24.includes(H.role)&&H.cli!=="antigravity").map((H)=>H.role):[];return{profileName:Q,rows:W,qwenOAuth:V,isAntigravity:Z,antigravityFallbackRoles:B,missingPreset:J,allFromPreset:!J&&!Y}}var Sy2,B24,X24;var uy2=k(()=>{sB();iZ();cZ();RA();dC();Sy2=E2(J3(),1),B24=["orchestrator","architecture","qa","pm","backend","frontend","mobile","db","debug","docs","tf-infra","explore"],X24=["backend","frontend","mobile","db","debug","tf-infra"]});import{existsSync as vT,readdirSync as gy2,readFileSync as k24,statSync as A24}from"node:fs";import{isAbsolute as j24,join as hA}from"node:path";function M24($){let z=$.split(`
1241
1241
  `),G=!1,J=!1,Q="",K=[];for(let Z of z){let U=Z.match(/^###\s+(.+?)\s*$/);if(U&&!J){if(G)break;if(U[1]?.toLowerCase()==="expected outputs"){G=!0;continue}}if(!G)continue;let Y=Z.match(/^```(\w*)\s*$/);if(Y){if(!J)J=!0,Q=Y[1]??"";else{if(Q==="yaml"||Q==="yml")return K.join(`
1242
1242
  `);J=!1,Q="",K.length=0}continue}if(J&&(Q==="yaml"||Q==="yml"))K.push(Z)}return null}function O24($){let z=M24($);if(!z)return[];let G;try{G=hy2.parse(z)}catch{return[]}if(!G||typeof G!=="object")return[];let J=G.outputs;if(!Array.isArray(J))return[];let Q=[];for(let K of J){if(!K||typeof K!=="object")continue;let Z=K,U=typeof Z.name==="string"?Z.name:null,Y=typeof Z.artifact==="string"?Z.artifact:null;if(!U||!Y)continue;Q.push({name:U,description:typeof Z.description==="string"?Z.description:void 0,artifact:Y,required:Z.required===!0})}return Q}function I24($,z){let G=hA($,".agents","skills",`oma-${z}`,"SKILL.md");if(!vT(G))return null;try{return k24(G,"utf-8")}catch{return null}}function R24($){let z="";for(let G of $)if(G==="*")z+="[^/]*";else if(G==="?")z+="[^/]";else z+=G.replace(/[.+^${}()|[\]\\]/g,"\\$&");return new RegExp(`^${z}$`)}function gA($,z){if(z.length===0)return vT($);let[G,...J]=z;if(G===void 0)return vT($);if(G==="**"){if(J.length===0)return vT($);if(gA($,J))return!0;let Z;try{Z=gy2($)}catch{return!1}for(let U of Z){let Y=hA($,U),W=!1;try{W=A24(Y).isDirectory()}catch{continue}if(W&&gA(Y,z))return!0}return!1}if(!G.includes("*")&&!G.includes("?"))return gA(hA($,G),J);let Q;try{Q=gy2($)}catch{return!1}let K=R24(G);for(let Z of Q)if(K.test(Z)&&gA(hA($,Z),J))return!0;return!1}function D24($,z){let J=(j24(z)?z:hA($,z)).replace(/\\/g,"/"),Q=J.startsWith("/")?"/":"",K=J.split("/").filter((Z)=>Z.length>0);return gA(Q||".",K)}function ET($,z){let G=I24($,z);if(!G)return{hasStructuredOutputs:!1,declared:[],missingRequired:[]};let J=O24(G);if(J.length===0)return{hasStructuredOutputs:!1,declared:[],missingRequired:[]};let Q=J.filter((K)=>K.required).filter((K)=>!D24($,K.artifact));return{hasStructuredOutputs:!0,declared:J,missingRequired:Q}}var hy2;var O52=k(()=>{hy2=E2(J3(),1)});import{execFileSync as v24}from"node:child_process";function I52($,z,G=""){try{return v24("git",z,{cwd:$,encoding:"utf-8",stdio:["ignore","pipe","ignore"]}).trim()}catch{return G}}function E24($){let z=I52($,["status","--porcelain","--untracked-files=no"]);if(!z)return[];return z.split(`
1243
1243
  `).map((G)=>G.slice(2).trim()).filter(Boolean)}function w24($){let z=I52($,["rev-parse","--is-inside-work-tree"])==="true";if(!z)return{insideWorkTree:!1,trackedChanges:[]};return{insideWorkTree:z,head:I52($,["rev-parse","HEAD"],"unborn"),trackedChanges:E24($)}}function P24($,z){let G=ET($,z);return{agentType:z,hasStructuredOutputs:G.hasStructuredOutputs,missingRequired:G.missingRequired.map((J)=>J.name)}}function wT($){let z=w24($.workspace),G=P24($.workspace,$.agentType),J=[];if(!z.insideWorkTree)J.push("not-a-git-worktree");if(z.trackedChanges.length===0)J.push("no-git-tracked-changes");if(!G.hasStructuredOutputs)J.push("missing-skill-output-metadata");if(G.missingRequired.length>0)J.push("missing-required-skill-artifacts");return{ok:J.length===0,reasons:J,git:z,skill:G}}function PT($){let z=$.git.head?`
@@ -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(`
@@ -1666,7 +1666,7 @@ models:${X}
1666
1666
  `)}else{let q=en2(H);process.stdout.write(q)}},{supportsJsonOutput:!0}))}function HQ4($,z){let G=[];if($.new.length===0&&$.removed.length===0&&$.drifted.length===0)return G.push(V3.default.dim(" (no changes)")),G.join(`
1667
1667
  `);for(let J of $.new){let Q=z.get(J.slug);if(Q){let K=Q.status==="accepted"?V3.default.green(`[✓ accepted via ${Q.cli}]`):V3.default.red(`[✗ ${Q.status}]`);G.push(`${V3.default.green(` + ${J.slug}`)} ${K}`)}else G.push(V3.default.green(` + ${J.slug}`))}for(let{slug:J}of $.removed)G.push(V3.default.red(` - ${J}`));for(let J of $.drifted)G.push(V3.default.yellow(` ~ ${J.slug}`));return G.join(`
1668
1668
  `)}var V3,Ja2;var Za2=k(()=>{cZ();m4();nn2();sn2();za2();Ga2();V3=E2(W5(),1),Ja2=["anthropic","openai","google","qwen"]});import{execSync as qQ4}from"node:child_process";function Z5($,z,G){return{name:$,status:z,message:G}}function $7($,z){try{return qQ4($,{encoding:"utf-8",cwd:z,stdio:["pipe","pipe","pipe"]}).trim()}catch{return null}}var oj=()=>{};import{existsSync as Z62}from"node:fs";import{join as U62}from"node:path";function Ua2($){let z=["*.py","*.ts","*.tsx","*.js","*.dart"],G=`(password|secret|api_key|token)\\s*=\\s*['"][^'"]{8,}`;for(let J of z){let Q=$7(`grep -rn --include="${J}" -E "(password|secret|api_key|token)\\s*=\\s*['"][^'"]{8,}" . 2>/dev/null | grep -v test | grep -v example | grep -v node_modules | head -1`,$);if(Q)return Z5("Hardcoded Secrets","fail",`Found in: ${Q.split(":")[0]}`)}return Z5("Hardcoded Secrets","pass","None detected")}function Wa2($){let z=$7('grep -rn --include="*.py" --include="*.ts" --include="*.tsx" --include="*.js" --include="*.dart" -E "TODO|FIXME|HACK|XXX" . 2>/dev/null | grep -v node_modules | grep -v ".agents/" | wc -l',$),G=Number.parseInt(z||"0",10);if(G>0)return Z5("TODO/FIXME Comments","warn",`${G} found`);return Z5("TODO/FIXME Comments","pass","None found")}function Ya2($){let z=$7("which uv",$),G=Z62(U62($,"pyproject.toml"));if(!z||!G)return Z5("Python Tests","skip",!z?"uv not available":"pyproject.toml not found");let J=$7("uv run pytest -q --tb=no 2>&1",$);if(J?.includes("passed")||J?.includes("no tests ran"))return Z5("Python Tests","pass","Tests pass");return Z5("Python Tests","fail","Tests failing")}function Va2($){if(!Z62(U62($,"tsconfig.json")))return Z5("TypeScript","skip","Not configured");let z=$7("npx tsc --noEmit 2>&1",$);if(z===null||z==="")return Z5("TypeScript","pass","Compilation clean");if(z.includes("error"))return Z5("TypeScript","fail","Type errors found");return Z5("TypeScript","pass","Compilation clean")}function Ba2($){let z=$7(`grep -rn --include="*.tsx" --include="*.jsx" 'style={{' . 2>/dev/null | grep -v node_modules | wc -l`,$),G=Number.parseInt(z||"0",10);if(G>0)return Z5("Inline Styles","warn",`${G} found (prefer Tailwind)`);return Z5("Inline Styles","pass","None found")}function Xa2($){let z=$7(`grep -rn --include="*.ts" --include="*.tsx" ': any' . 2>/dev/null | grep -v node_modules | grep -v ".d.ts" | wc -l`,$),G=Number.parseInt(z||"0",10);if(G>3)return Z5("Any Types","fail",`${G} found (limit: 3)`);if(G>0)return Z5("Any Types","warn",`${G} found`);return Z5("Any Types","pass","None found")}function W62($){if(!Z62(U62($,"package.json")))return Z5("Frontend Tests","skip","No package.json");let z=$7("npx vitest run --reporter=verbose 2>&1",$);if(z?.includes("passed")||z?.includes("✓"))return Z5("Frontend Tests","pass","Tests pass");return Z5("Frontend Tests","warn","Tests failed or vitest not configured")}function Ha2($){if(!$7("which flutter",$)){if(!$7("which dart",$))return Z5("Flutter/Dart Analysis","skip","Not available");if($7("dart analyze 2>&1",$)?.includes("No issues found"))return Z5("Dart Analysis","pass","Clean");return Z5("Dart Analysis","fail","Issues found")}if($7("flutter analyze 2>&1",$)?.includes("No issues found"))return Z5("Flutter Analysis","pass","Clean");return Z5("Flutter Analysis","fail","Issues found")}function qa2($){if(!$7("which flutter",$))return Z5("Flutter Tests","skip","Flutter not available");if($7("flutter test 2>&1",$)?.includes("All tests passed"))return Z5("Flutter Tests","pass","All tests pass");return Z5("Flutter Tests","fail","Tests failed")}var La2=k(()=>{oj()});import{existsSync as Y62,readdirSync as Fa2,readFileSync as B62}from"node:fs";import{join as V62}from"node:path";function LQ4($,z){let G=new RegExp(`^result-${z}(?:-[\\w-]+)?\\.md$`);for(let J of MQ($)){if(!Y62(J))continue;let Q=Fa2(J).filter((K)=>G.test(K)).sort().reverse();if(Q.length>0&&Q[0])return V62(J,Q[0])}return null}function Na2($){let z=T7($,b3);if(Y62(z))try{let J=Fa2(z).filter((Q)=>Q.startsWith("plan-")&&Q.endsWith(".json")).sort().reverse();if(J.length>0&&J[0])return V62(z,J[0])}catch{}let G=V62(T7($,T0),"plan.json");return Y62(G)?G:null}function X62($,z){let G=Na2($);if(!G)return Z5("Scope Check","skip","No plan file found");let J;try{J=JSON.parse(B62(G,"utf-8"))}catch{return Z5("Scope Check","skip","Invalid plan file")}let Q=J.tasks?.filter((W)=>W.agent?.toLowerCase()===z);if(!Q||Q.length===0)return Z5("Scope Check","skip","No tasks for this agent");let K=Q.flatMap((W)=>W.scope??[]);if(K.length===0)return Z5("Scope Check","skip","No scope defined in plan");let Z=$7("git diff --name-only HEAD 2>/dev/null || git diff --name-only --cached 2>/dev/null",$);if(!Z)return Z5("Scope Check","pass","No files changed");let U=Z.split(`
1669
- `).filter(Boolean),Y=[];for(let W of U)if(!K.some((B)=>W.startsWith(B)))Y.push(W);if(Y.length>0)return Z5("Scope Check","fail",`${Y.length} out-of-scope: ${Y[0]}${Y.length>1?` +${Y.length-1}`:""}`);return Z5("Scope Check","pass",`All ${U.length} files in scope`)}function ka2($,z){let G=LQ4($,z);if(!G)return Z5("Charter Preflight","skip","Result file not found");let J=B62(G,"utf-8");if(!J.includes("CHARTER_CHECK:"))return Z5("Charter Preflight","warn","Block missing from result");if(/\{[^}]+\}/.test(J.split("CHARTER_CHECK:")[1]?.split("```")[0]||""))return Z5("Charter Preflight","warn","Contains unfilled placeholders");return Z5("Charter Preflight","pass","Properly filled")}function Aa2($){let z=Na2($);if(!z)return Z5("PM Plan","warn","No plan file found");try{return JSON.parse(B62(z,"utf-8")),Z5("PM Plan","pass","Valid JSON")}catch{return Z5("PM Plan","fail","Invalid JSON")}}function ja2($,z){let G=ET($,z);if(!G.hasStructuredOutputs)return Z5("Declared outputs","skip","No structured outputs block");if(G.missingRequired.length===0)return Z5("Declared outputs","pass",`${G.declared.length} declared, all required artifacts present`);let J=G.missingRequired.map((Q)=>`${Q.name} (${Q.artifact})`).join(", ");return Z5("Declared outputs","fail",`Missing required: ${J}`)}var H62=k(()=>{_3();W6();O52();oj()});import{execFileSync as FQ4,spawnSync as NQ4}from"node:child_process";import{existsSync as kQ4,readFileSync as AQ4}from"node:fs";import{join as jQ4}from"node:path";function L62($,z){let G=jQ4($,".agents","skills",z,"stack","stack.yaml");if(!kQ4(G))return null;try{let J=Ma2.parse(AQ4(G,"utf-8"));if(J&&typeof J==="object"&&typeof J.language==="string")return J;return null}catch{return null}}function q62($){return`'${$.replace(/'/g,"'\\''")}'`}function F62($,z){let G=[],J=/(?:"([^"]*)")|(?:'([^']*)')|(\S+)/g,Q=J.exec($);while(Q!==null)G.push(Q[1]??Q[2]??Q[3]??""),Q=J.exec($);let[K,...Z]=G;if(!K)return null;let U=NQ4(K,Z,{encoding:"utf-8",cwd:z,maxBuffer:10485760});if(U.error)return null;return`${U.stdout??""}${U.stderr??""}`.trim()}function N62($,z){if(!MQ4.test($))return!1;try{return FQ4("which",[$],{cwd:z,stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}function k62($,z){let G=`${Ia2($.language)} Syntax`,J=$.verify?.syntax;if(!J)return Z5(G,"skip","No syntax check configured");if(J.skip_if_missing&&!N62(J.skip_if_missing,z))return Z5(G,"skip",`${J.skip_if_missing} not available`);let Q=F62(J.cmd,z);if(Q===null||Q==="")return Z5(G,"pass","Valid");if(/error/i.test(Q))return Z5(G,"fail","Syntax errors found");return Z5(G,"pass","Valid")}function A62($,z){let G=`${Ia2($.language)} Tests`,J=$.verify?.tests;if(!J)return Z5(G,"skip","No tests check configured");if(J.skip_if_missing&&!N62(J.skip_if_missing,z))return Z5(G,"skip",`${J.skip_if_missing} not available`);let Q=F62(J.cmd,z);if(Q===null)return Z5(G,"fail","Tests failing");let K=J.pass_signal;if(K&&Q.includes(K))return Z5(G,"pass","Tests pass");if(!K&&(Q.includes("passed")||Q.includes("ok")))return Z5(G,"pass","Tests pass");if(Q.includes("no tests ran")||Q.includes("0 tests"))return Z5(G,"pass","No tests to run");return Z5(G,"fail","Tests failing")}function Oa2($,z){let J=$.verify?.raw_sql;if(!J||J.patterns.length===0)return Z5("SQL Injection","skip","No raw_sql check configured");let Q=J.include_glob?`--include=${q62(J.include_glob)}`:"",K=(J.exclude_dirs??[]).map((W)=>`| grep -v ${q62(W)}`).join(" "),Z=q62(J.patterns.join("|")),U=`grep -rn ${Q} -E ${Z} . 2>/dev/null ${K} | head -1`,Y=$7(U,z);if(Y){let W=Y.split(":")[0]??"unknown";return Z5("SQL Injection","fail",`Raw SQL pattern in ${W}`)}return Z5("SQL Injection","pass","None detected")}function Ia2($){if($.length===0)return $;return $.charAt(0).toUpperCase()+$.slice(1)}var Ma2,MQ4;var j62=k(()=>{oj();Ma2=E2(J3(),1);MQ4=/^[A-Za-z0-9._-]+$/});function M62($){return S_.includes($)}var S_;var Ra2=k(()=>{S_=["backend","frontend","mobile","qa","debug","pm"]});import{existsSync as Da2}from"node:fs";import{join as va2}from"node:path";function OQ4($,z){let G=[];switch($){case"backend":{let J=L62(z,"oma-backend");if(!J){G.push(Z5("Backend Stack","skip","stack/stack.yaml not found — run /stack-set"));break}G.push(k62(J,z)),G.push(Oa2(J,z)),G.push(A62(J,z));break}case"frontend":G.push(Va2(z)),G.push(Ba2(z)),G.push(Xa2(z)),G.push(W62(z));break;case"mobile":{let J=L62(z,"oma-mobile");if(J)G.push(k62(J,z)),G.push(A62(J,z));else G.push(Ha2(z)),G.push(qa2(z));break}case"qa":G.push(Z5("QA Report","pass","Verified by self-check.md"));break;case"debug":if(Da2(va2(z,"pyproject.toml")))G.push(Ya2(z));else if(Da2(va2(z,"package.json")))G.push(W62(z));else G.push(Z5("Debug Tests","skip","No test runner detected"));break;case"pm":G.push(Aa2(z));break}return G}function Ea2($,z){let G=[];G.push(X62(z,$)),G.push(ka2(z,$)),G.push(Ua2(z)),G.push(Wa2(z)),G.push(ja2(z,$)),G.push(...OQ4($,z));let J=G.filter((Z)=>Z.status==="pass").length,Q=G.filter((Z)=>Z.status==="fail").length,K=G.filter((Z)=>Z.status==="warn").length;return{ok:Q===0,agent:$,workspace:z,checks:G,summary:{passed:J,failed:Q,warned:K}}}var wa2=k(()=>{oj();La2();H62();j62();Ra2();H62();j62()});import{readFileSync as IQ4}from"node:fs";import{fileURLToPath as RQ4}from"node:url";function DQ4($,z){if(typeof $!=="object"||$===null)throw Error(`Corpus entry ${z} must be an object`);let G=$;if(typeof G.prompt!=="string"||G.prompt.length===0)throw Error(`Corpus entry ${z} is missing a non-empty "prompt"`);if(typeof G.lang!=="string"||G.lang.length===0)throw Error(`Corpus entry ${z} is missing a non-empty "lang"`);if(G.expected!==null&&typeof G.expected!=="string")throw Error(`Corpus entry ${z} ("expected") must be a workflow name string or null`);if(G.note!==void 0&&typeof G.note!=="string")throw Error(`Corpus entry ${z} ("note") must be a string`);return{prompt:G.prompt,lang:G.lang,expected:G.expected,note:G.note}}function Pa2($=O62){let z=IQ4($,"utf-8"),G;try{G=JSON.parse(z)}catch(J){let Q=J instanceof Error?J.message:String(J);throw Error(`Corpus at ${$} is not valid JSON: ${Q}`)}if(!Array.isArray(G))throw Error(`Corpus at ${$} must be a JSON array of entries`);return G.map((J,Q)=>DQ4(J,Q))}var O62;var Ca2=k(()=>{O62=RQ4(new URL("./fixtures/triggers-corpus.json",import.meta.url))});import{mkdirSync as vQ4,mkdtempSync as EQ4,rmSync as wQ4,writeFileSync as PQ4}from"node:fs";import{tmpdir as CQ4}from"node:os";import{join as I62}from"node:path";function bQ4($){if(!$||$.type!=="context")return null;let z=TQ4.exec($.additionalContext);return z?.[1]?z[1].toLowerCase():null}function _Q4($,z){let G=Ta2.workflows[z];if(!G)return null;let J=MX(D42(R42($.prompt))),Q=[...tg2(G.keywords,$.lang,Ta2.cjkScripts),...$h2(G.patterns,$.lang)];for(let K of Q){let Z=K.exec(J);if(Z)return Z[0].trim()}return null}async function xQ4($){let z=EQ4(I62(CQ4(),"oma-verify-triggers-"));try{vQ4(I62(z,".agents"),{recursive:!0}),PQ4(I62(z,".agents","oma-config.yaml"),`language: ${$.lang}
1669
+ `).filter(Boolean),Y=[];for(let W of U)if(!K.some((B)=>W.startsWith(B)))Y.push(W);if(Y.length>0)return Z5("Scope Check","fail",`${Y.length} out-of-scope: ${Y[0]}${Y.length>1?` +${Y.length-1}`:""}`);return Z5("Scope Check","pass",`All ${U.length} files in scope`)}function ka2($,z){let G=LQ4($,z);if(!G)return Z5("Charter Preflight","skip","Result file not found");let J=B62(G,"utf-8");if(!J.includes("CHARTER_CHECK:"))return Z5("Charter Preflight","warn","Block missing from result");if(/\{[^}]+\}/.test(J.split("CHARTER_CHECK:")[1]?.split("```")[0]||""))return Z5("Charter Preflight","warn","Contains unfilled placeholders");return Z5("Charter Preflight","pass","Properly filled")}function Aa2($){let z=Na2($);if(!z)return Z5("PM Plan","warn","No plan file found");try{return JSON.parse(B62(z,"utf-8")),Z5("PM Plan","pass","Valid JSON")}catch{return Z5("PM Plan","fail","Invalid JSON")}}function ja2($,z){let G=ET($,z);if(!G.hasStructuredOutputs)return Z5("Declared outputs","skip","No structured outputs block");if(G.missingRequired.length===0)return Z5("Declared outputs","pass",`${G.declared.length} declared, all required artifacts present`);let J=G.missingRequired.map((Q)=>`${Q.name} (${Q.artifact})`).join(", ");return Z5("Declared outputs","fail",`Missing required: ${J}`)}var H62=k(()=>{_3();W6();O52();oj()});import{execFileSync as FQ4,spawnSync as NQ4}from"node:child_process";import{existsSync as kQ4,readFileSync as AQ4}from"node:fs";import{join as jQ4}from"node:path";function L62($,z){let G=jQ4($,".agents","skills",z,"stack","stack.yaml");if(!kQ4(G))return null;try{let J=Ma2.parse(AQ4(G,"utf-8"));if(J&&typeof J==="object"&&typeof J.language==="string")return J;return null}catch{return null}}function q62($){return`'${$.replace(/'/g,"'\\''")}'`}function F62($,z){let G=[],J=/(?:"([^"]*)")|(?:'([^']*)')|(\S+)/g,Q=J.exec($);while(Q!==null)G.push(Q[1]??Q[2]??Q[3]??""),Q=J.exec($);let[K,...Z]=G;if(!K)return null;let U=NQ4(K,Z,{encoding:"utf-8",cwd:z,maxBuffer:10485760});if(U.error)return null;return`${U.stdout??""}${U.stderr??""}`.trim()}function N62($,z){if(!MQ4.test($))return!1;try{return FQ4("which",[$],{cwd:z,stdio:["pipe","pipe","pipe"]}),!0}catch{return!1}}function k62($,z){let G=`${Ia2($.language)} Syntax`,J=$.verify?.syntax;if(!J)return Z5(G,"skip","No syntax check configured");if(J.skip_if_missing&&!N62(J.skip_if_missing,z))return Z5(G,"skip",`${J.skip_if_missing} not available`);let Q=F62(J.cmd,z);if(Q===null||Q==="")return Z5(G,"pass","Valid");if(/error/i.test(Q))return Z5(G,"fail","Syntax errors found");return Z5(G,"pass","Valid")}function A62($,z){let G=`${Ia2($.language)} Tests`,J=$.verify?.tests;if(!J)return Z5(G,"skip","No tests check configured");if(J.skip_if_missing&&!N62(J.skip_if_missing,z))return Z5(G,"skip",`${J.skip_if_missing} not available`);let Q=F62(J.cmd,z);if(Q===null)return Z5(G,"fail","Tests failing");let K=J.pass_signal;if(K&&Q.includes(K))return Z5(G,"pass","Tests pass");if(!K&&(Q.includes("passed")||Q.includes("ok")))return Z5(G,"pass","Tests pass");if(Q.includes("no tests ran")||Q.includes("0 tests"))return Z5(G,"pass","No tests to run");return Z5(G,"fail","Tests failing")}function Oa2($,z){let J=$.verify?.raw_sql;if(!J||J.patterns.length===0)return Z5("SQL Injection","skip","No raw_sql check configured");let Q=J.include_glob?`--include=${q62(J.include_glob)}`:"",K=(J.exclude_dirs??[]).map((W)=>`| grep -v ${q62(W)}`).join(" "),Z=q62(J.patterns.join("|")),U=`grep -rn ${Q} -E ${Z} . 2>/dev/null ${K} | head -1`,Y=$7(U,z);if(Y){let W=Y.split(":")[0]??"unknown";return Z5("SQL Injection","fail",`Raw SQL pattern in ${W}`)}return Z5("SQL Injection","pass","None detected")}function Ia2($){if($.length===0)return $;return $.charAt(0).toUpperCase()+$.slice(1)}var Ma2,MQ4;var j62=k(()=>{oj();Ma2=E2(J3(),1);MQ4=/^[A-Za-z0-9._-]+$/});function M62($){return S_.includes($)}var S_;var Ra2=k(()=>{S_=["backend","frontend","mobile","qa","debug","pm"]});import{existsSync as Da2}from"node:fs";import{join as va2}from"node:path";function OQ4($,z){let G=[];switch($){case"backend":{let J=L62(z,"oma-backend");if(!J){G.push(Z5("Backend Stack","skip","stack/stack.yaml not found — run /stack-set"));break}G.push(k62(J,z)),G.push(Oa2(J,z)),G.push(A62(J,z));break}case"frontend":G.push(Va2(z)),G.push(Ba2(z)),G.push(Xa2(z)),G.push(W62(z));break;case"mobile":{let J=L62(z,"oma-mobile");if(J)G.push(k62(J,z)),G.push(A62(J,z));else G.push(Ha2(z)),G.push(qa2(z));break}case"qa":G.push(Z5("QA Report","pass","Verified by self-check.md"));break;case"debug":if(Da2(va2(z,"pyproject.toml")))G.push(Ya2(z));else if(Da2(va2(z,"package.json")))G.push(W62(z));else G.push(Z5("Debug Tests","skip","No test runner detected"));break;case"pm":G.push(Aa2(z));break}return G}function Ea2($,z){let G=[];G.push(X62(z,$)),G.push(ka2(z,$)),G.push(Ua2(z)),G.push(Wa2(z)),G.push(ja2(z,$)),G.push(...OQ4($,z));let J=G.filter((Z)=>Z.status==="pass").length,Q=G.filter((Z)=>Z.status==="fail").length,K=G.filter((Z)=>Z.status==="warn").length;return{ok:Q===0,agent:$,workspace:z,checks:G,summary:{passed:J,failed:Q,warned:K}}}var wa2=k(()=>{oj();La2();H62();j62();Ra2();H62();j62()});import{readFileSync as IQ4}from"node:fs";import{fileURLToPath as RQ4}from"node:url";function DQ4($,z){if(typeof $!=="object"||$===null)throw Error(`Corpus entry ${z} must be an object`);let G=$;if(typeof G.prompt!=="string"||G.prompt.length===0)throw Error(`Corpus entry ${z} is missing a non-empty "prompt"`);if(typeof G.lang!=="string"||G.lang.length===0)throw Error(`Corpus entry ${z} is missing a non-empty "lang"`);if(G.expected!==null&&typeof G.expected!=="string")throw Error(`Corpus entry ${z} ("expected") must be a workflow name string or null`);if(G.note!==void 0&&typeof G.note!=="string")throw Error(`Corpus entry ${z} ("note") must be a string`);return{prompt:G.prompt,lang:G.lang,expected:G.expected,note:G.note}}function Pa2($=O62){let z=IQ4($,"utf-8"),G;try{G=JSON.parse(z)}catch(J){let Q=J instanceof Error?J.message:String(J);throw Error(`Corpus at ${$} is not valid JSON: ${Q}`)}if(!Array.isArray(G))throw Error(`Corpus at ${$} must be a JSON array of entries`);return G.map((J,Q)=>DQ4(J,Q))}var O62;var Ca2=k(()=>{O62=RQ4(new URL("./fixtures/triggers-corpus.json",import.meta.url))});import{mkdirSync as vQ4,mkdtempSync as EQ4,rmSync as wQ4,writeFileSync as PQ4}from"node:fs";import{tmpdir as CQ4}from"node:os";import{join as I62}from"node:path";function bQ4($){if($?.type!=="context")return null;let z=TQ4.exec($.additionalContext);return z?.[1]?z[1].toLowerCase():null}function _Q4($,z){let G=Ta2.workflows[z];if(!G)return null;let J=MX(D42(R42($.prompt))),Q=[...tg2(G.keywords,$.lang,Ta2.cjkScripts),...$h2(G.patterns,$.lang)];for(let K of Q){let Z=K.exec(J);if(Z)return Z[0].trim()}return null}async function xQ4($){let z=EQ4(I62(CQ4(),"oma-verify-triggers-"));try{vQ4(I62(z,".agents"),{recursive:!0}),PQ4(I62(z,".agents","oma-config.yaml"),`language: ${$.lang}
1670
1670
  `);let G=await qb({kind:"prompt",prompt:$.prompt,cwd:z},{vendor:"claude",cwd:z,sid:"verify-triggers-eval"}),J=bQ4(G),Q=J?_Q4($,J):null;return{entry:$,detected:J,matchedKeyword:Q}}finally{wQ4(z,{recursive:!0,force:!0})}}async function ba2($){let z=[];for(let G of $)z.push(await xQ4(G));return z}var Ta2,TQ4;var _a2=k(()=>{Lb();Qj();Ta2=pQ,TQ4=/\[OMA WORKFLOW: ([A-Z0-9_-]+)\]/});function cX($,z){return z===0?0:$/z}function xa2($){let z=$.filter((B)=>B.expected!==null),G=$.filter((B)=>B.expected===null),J=z.filter((B)=>B.detected!==B.expected),Q=G.filter((B)=>B.detected!==null),K=new Set;for(let B of $){if(B.expected)K.add(B.expected);if(B.detected)K.add(B.detected)}let Z=[...K].sort().map((B)=>{let H=$.filter((L)=>L.expected===B).length,X=$.filter((L)=>L.expected===B&&L.detected===B).length,q=$.filter((L)=>L.detected===B).length;return{workflow:B,support:H,truePositives:X,firedCount:q,recall:cX(X,H),precision:cX(X,q)}}),Y=[...new Set($.map((B)=>B.lang))].sort().map((B)=>{let H=z.filter((F)=>F.lang===B),X=G.filter((F)=>F.lang===B),q=H.filter((F)=>F.detected!==F.expected),L=X.filter((F)=>F.detected!==null);return{lang:B,positives:H.length,missedFires:q.length,missedFireRate:cX(q.length,H.length),negatives:X.length,falseFires:L.length,falseFireRate:cX(L.length,X.length)}}),W=Q.filter((B)=>B.detected!==null).map((B)=>({prompt:B.prompt,lang:B.lang,detected:B.detected,matchedKeyword:B.matchedKeyword??null,note:B.note})).sort((B,H)=>B.detected.localeCompare(H.detected)),V=J.filter((B)=>B.expected!==null).map((B)=>({prompt:B.prompt,lang:B.lang,expected:B.expected,detected:B.detected,note:B.note})).sort((B,H)=>B.expected.localeCompare(H.expected));return{totals:{total:$.length,positives:z.length,negatives:G.length,missedFires:J.length,missedFireRate:cX(J.length,z.length),falseFires:Q.length,falseFireRate:cX(Q.length,G.length)},perWorkflow:Z,perLanguage:Y,worstOffenders:W,missedFindings:V}}async function Sa2($={}){let z=$.corpusPath??O62,G=$.maxFalseFire??y_,J=$.maxMissedFire??u_,Q=Pa2(z),K=await ba2(Q),Z=xa2(K.map((Y)=>({prompt:Y.entry.prompt,lang:Y.entry.lang,expected:Y.entry.expected,detected:Y.detected,matchedKeyword:Y.matchedKeyword,note:Y.entry.note}))),U=Z.totals.falseFireRate*100<=G&&Z.totals.missedFireRate*100<=J;return{report:Z,thresholds:{maxFalseFire:G,maxMissedFire:J},passed:U}}var y_=10,u_=20;var ya2=k(()=>{Ca2();_a2()});function iX($){return`${($*100).toFixed(1)}%`}function ua2($,z,G){W1(I9.default.bgCyan(I9.default.white(" oma verify triggers ")));let{totals:J}=$;S2([`${J.total} prompts (${J.positives} positive, ${J.negatives} negative)`,`missed-fire rate: ${iX(J.missedFireRate)} (${J.missedFires}/${J.positives}) — threshold ${z.maxMissedFire}%`,`false-fire rate: ${iX(J.falseFireRate)} (${J.falseFires}/${J.negatives}) — threshold ${z.maxFalseFire}%`].join(`
1671
1671
  `),"Summary"),console.log(I9.default.bold(`
1672
1672
  Per-workflow`)),console.log("workflow".padEnd(14),"support".padEnd(9),"recall".padEnd(9),"precision");for(let Q of $.perWorkflow)console.log(Q.workflow.padEnd(14),String(Q.support).padEnd(9),iX(Q.recall).padEnd(9),iX(Q.precision));console.log(I9.default.bold(`
@@ -2540,7 +2540,7 @@ ${$.stderr}`.toLowerCase();if(/auth.?required|not.?logged.?in|sign.?in|login req
2540
2540
  `).slice(-3);return{ok:!1,dir:$,detail:`deps installed, but Chrome Headless Shell binary is missing after "browser ensure" + zip repair: ${J.join(" | ")}`}}}}return{ok:!0,dir:$,detail:"installed (deps + headless shell)"}}var hp4=".agents/skills/oma-video/resources/remotion",gL5="src/index.ts",mL5="public/fonts/PretendardVariable.woff2",ip4="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/packages/pretendard/dist/web/variable/woff2/PretendardVariable.woff2";var Wf=k(()=>{w$()});async function lp4(){let $=await FZ("ffmpeg",["-version"]);return{name:"ffmpeg",ok:$.ok,detail:$.ok?$.detail:"not found",remediation:$.ok?void 0:"Install FFmpeg (brew install ffmpeg / apt install ffmpeg)."}}function pp4(){return{name:"node",ok:!0,detail:process.version}}function dp4(){let $=c3();return{name:"chromium",ok:Boolean($),detail:$??"not found",remediation:$?void 0:"Install Google Chrome / Chromium, or set OMA_CHROME_PATH."}}async function np4(){try{let $=await s1.get(`${Yf}/health`,{timeout:1500,validateStatus:()=>!0}),z=$.status>=200&&$.status<300;return{name:"voicebox",ok:z,detail:z?`healthy (${Yf})`:`status ${$.status}`,remediation:z?void 0:"Start the Voicebox MCP server (oma-voice) on 127.0.0.1:17493."}}catch($){return{name:"voicebox",ok:!1,detail:$.message,remediation:"Start the Voicebox MCP server (oma-voice); narration falls back to estimated timing."}}}async function wU2(){let{bin:$,prefixArgs:z}=tL(),G=await Z1($,[...z,"image","doctor","--format","json"],{timeoutMs:15000});if(G.code!==0&&!G.stdout.trim())return{name:"oma-image",ok:!1,detail:G.stderr.trim()||`exit ${G.code}`,remediation:"Run `oma image doctor` to set up at least one image vendor."};try{let Q=(JSON.parse(G.stdout).vendors??[]).filter((K)=>K.health?.ok);return{name:"oma-image",ok:Q.length>0,detail:Q.length>0?`${Q.length} vendor(s): ${Q.map((K)=>K.name).join(", ")}`:"no healthy vendor",remediation:Q.length>0?void 0:"Run `oma image doctor` and authenticate a vendor (codex / antigravity / pollinations)."}}catch{return{name:"oma-image",ok:!1,detail:"unparseable doctor output",remediation:"Run `oma image doctor` directly to diagnose."}}}function ap4(){let $=Boolean(process.env.RUNNINGHUB_API_KEY);return{name:"pixelle",ok:$,detail:$?"RUNNINGHUB_API_KEY present":"off by default",remediation:$?void 0:"Optional: run `uvx pixelle@latest`, review the community MCP, then set RUNNINGHUB_API_KEY."}}function op4(){let $=DR();if(!$.dir)return{name:"remotion-project",ok:!1,detail:"not found",remediation:"Set OMA_VIDEO_REMOTION_DIR, or ensure the oma-video skill is installed."};let z=$.installed&&$.browserReady,G;if(z)G=`ready (${$.dir})`;else if($.installed)G=`installed, headless shell missing (${$.dir})`;else G=`not installed (${$.dir})`;return{name:"remotion-project",ok:z,detail:G,remediation:z?void 0:"Run `oma video doctor --install` to install Remotion deps + headless shell (one-time)."}}function rp4(){let $=DR();if(!$.dir)return{name:"pretendard-font",ok:!1,detail:"remotion project not found",remediation:"Install the oma-video skill, then run `oma video doctor --install`."};let z=cL5($.dir);return{name:"pretendard-font",ok:z,detail:z?"embedded (byte-identical renders)":"missing (system-font fallback; renders not byte-identical)",remediation:z?void 0:"Run `oma video doctor --install` to fetch Pretendard once (network required)."}}function sp4(){let $=Gf();if(!$.dir)return{name:"mpt-project",ok:!1,detail:"not found",remediation:"Run `oma video doctor --install-mpt` (clone + venv + deps, one-time), or set OMA_VIDEO_MPT_DIR."};return{name:"mpt-project",ok:$.installed,detail:$.installed?`ready (${$.dir})`:`cloned, venv missing (${$.dir})`,remediation:$.installed?void 0:"Run `oma video doctor --install-mpt` to create the venv + install deps."}}function tp4(){let $=eL();if(!$.dir)return{name:"playwright",ok:!1,detail:"not found (guided capture available)",remediation:"Run `oma video doctor --install-playwright` (npm i playwright + chromium), or set OMA_VIDEO_PLAYWRIGHT_DIR."};let z=$.browserReady,G=$.source==="reuse"?"reuse":"cache",J;if(z)J=`ready (${G}: ${$.dir}${$.version?`, v${$.version}`:""})`;else J=`${G} install found, chromium missing (${$.dir})`;return{name:"playwright",ok:z,detail:J,remediation:z?void 0:"Run `oma video doctor --install-playwright` to download the chromium browser."}}async function ep4(){let $=await FZ("cap",["--version"]);return{name:"cap",ok:$.ok,detail:$.ok?$.detail:"not found (guided capture available)",remediation:$.ok?void 0:"Optional: install Cap CLI, or pass --capture <path> for guided demo capture."}}async function pL5(){let[$,z,G,J]=await Promise.all([lp4(),np4(),wU2(),ep4()]);return[pp4(),dp4(),$,op4(),rp4(),sp4(),tp4(),z,G,ap4(),J]}var Yf;var Vf=k(()=>{Z$();jG();w$();Jf();Uf();Wf();Yf=process.env.OMA_VOICEBOX_URL??"http://127.0.0.1:17493"});async function dL5({opts:$}){let z=$.format??"text";if($.install===!0){let Q=await lL5();if(z!=="json"){let K=Q.ok?C3.default.green("✓"):C3.default.yellow("!");if(console.log(`${K} remotion-project install: ${Q.detail}`),Q.dir)console.log(C3.default.dim(` ${Q.dir}`))}if(Q.dir){let K=await iL5(Q.dir);if(z!=="json"){let Z=K.ok?C3.default.green("✓"):C3.default.yellow("!");console.log(`${Z} pretendard-font: ${K.detail}`),console.log(C3.default.dim(` ${K.path}`))}}}if($.installMpt===!0){let Q=await bL5();if(z!=="json"){let K=Q.ok?C3.default.green("✓"):C3.default.yellow("!");if(console.log(`${K} mpt-project install: ${Q.detail}`),Q.dir)console.log(C3.default.dim(` ${Q.dir}`))}}if($.installPlaywright===!0){let Q=await yL5();if(z!=="json"){let K=Q.ok?C3.default.green("✓"):C3.default.yellow("!");if(console.log(`${K} playwright install: ${Q.detail}`),Q.dir)console.log(C3.default.dim(` ${Q.dir}`))}}let G=await pL5();if(z==="json")console.log(JSON.stringify({checks:G.map((Q)=>({name:Q.name,ok:Q.ok,detail:Q.detail,remediation:Q.remediation}))}));else{console.log(C3.default.bold(`
2541
2541
  oma video doctor — toolchain readiness
2542
2542
  `));let Q=Math.max(...G.map((K)=>K.name.length))+2;for(let K of G){let Z=K.ok?C3.default.green("✓"):C3.default.yellow("!"),U=K.name.padEnd(Q),Y=K.ok?C3.default.dim(K.detail):C3.default.yellow(K.detail);if(console.log(` ${Z} ${U} ${Y}`),!K.ok&&K.remediation)console.log(` ${C3.default.cyan("→")} ${K.remediation}`)}console.log()}let J=G.filter((Q)=>$d4.has(Q.name)&&!Q.ok);if(z!=="json")if(J.length===0)console.log(C3.default.green("Key-free baseline ready (Node + Chromium + FFmpeg + oma-image)."));else console.log(C3.default.yellow(`${J.length} baseline dependency(ies) missing: ${J.map((Q)=>Q.name).join(", ")}.`));return J.length>0?1:0}var C3,$d4;var nL5=k(()=>{Jf();Uf();Vf();Wf();C3=E2(W5(),1),$d4=new Set(["node","chromium","ffmpeg","oma-image"])});function aL5($){if($ instanceof $F)return $.exitCode;return TJ.generic}function uY($){return $ instanceof Error?$.message:String($)}var TJ,$F,vR,Bf,zG,v8;var kZ=k(()=>{f_();TJ=F6;$F=class $F extends Error{exitCode;kind;constructor($,z=TJ.generic,G="video-error"){super($);this.exitCode=z;this.kind=G;this.name=new.target.name}};vR=class vR extends $F{constructor($){super($,TJ.authRequired,"provider-unavailable")}};Bf=class Bf extends $F{constructor($){super($,TJ.generic,"cost-guardrail")}};zG=class zG extends $F{constructor($){super($,TJ.notFound,"capture-required")}};v8=class v8 extends $F{schemaName;constructor($,z){super($,TJ.invalidInput,"schema-validation");this.schemaName=z}}});function tL5($){if($==="9:16")return{width:1088,height:1920};if($==="1:1")return{width:1088,height:1088};return{width:1920,height:1088}}function bJ($,z,G){let J=z.safeParse(G);if(J.success)return J.data;let Q=J.error.issues[0],K=Q?.path.length?Q.path.join("."):"(root)";throw new v8(`${$} validation failed at ${K}: ${Q?.message??"invalid value"}`,$)}var D0="1.0",zF,zd4,oL5,PU2,rL5,CU2,TU2,DN3,Xf,Gd4,Hf,sL5,qf,Lf;var v0=k(()=>{qG();kZ();zF=i.enum(["shorts","explainer","demo"]),zd4=i.enum(["9:16","16:9","1:1"]),oL5=i.enum(["9:16","16:9","1:1","auto"]),PU2=i.enum(["tiktok","lower-third","none"]),rL5=i.enum(["auto","generate","stock","aigc","slide"]),CU2=i.enum(["upbeat","calm","none"]),TU2=i.enum(["remotion","mpt"]),DN3=i.enum(["text","json"]),Xf=i.literal(D0),Gd4=i.object({id:i.string().min(1),durationSec:i.number().positive(),narration:i.string(),onScreenText:i.array(i.string()).default([]),visual:i.object({kind:i.enum(["still","clip","mixed","slide","capture"]),prompt:i.string().optional(),ref:i.string().optional(),source:i.string().optional()}),transition:i.string().optional()}),Hf=i.object({schemaVersion:Xf,mode:zF,aspect:zd4,locale:i.string().min(1),title:i.string().min(1),scenes:i.array(Gd4).min(1),music:CU2,brand:i.record(i.string(),i.unknown()).default({})}),sL5=i.object({schemaVersion:Xf,audio:i.string(),totalSec:i.number().nonnegative(),segments:i.array(i.object({sceneId:i.string().min(1),startSec:i.number().nonnegative(),endSec:i.number().nonnegative(),words:i.array(i.object({t:i.string(),startSec:i.number().nonnegative(),endSec:i.number().nonnegative()}))})),source:i.enum(["tts-native","voicebox-stt","whisper-cpp","estimated"])}),qf=i.object({schemaVersion:Xf,compositor:TU2,composition:i.string().min(1),fps:i.number().int().positive(),dimensions:i.object({width:i.number().int().positive(),height:i.number().int().positive()}),durationInFrames:i.number().int().nonnegative(),audio:i.object({narration:i.string().optional(),music:i.string().optional(),musicGainDb:i.number().optional()}),scenes:i.array(i.object({id:i.string().min(1),fromFrame:i.number().int().nonnegative(),durationInFrames:i.number().int().positive(),visual:i.object({type:i.enum(["image","video","slide","capture","placeholder"]),src:i.string().min(1),kenBurns:i.boolean().default(!1)}),onScreenText:i.array(i.string()).default([]),transitionOut:i.string().optional()})),captions:i.object({file:i.string().optional(),style:PU2,fontFamily:i.string(),maxWidthPct:i.number().positive().max(100),safeArea:i.object({topPct:i.number().nonnegative(),bottomPct:i.number().nonnegative(),leftPct:i.number().nonnegative(),rightPct:i.number().nonnegative()})}),background:i.object({type:i.enum(["color","image","video"]),src:i.string().optional()}),seed:i.number().int()}),Lf=i.object({schemaVersion:Xf,runId:i.string().min(1),mode:zF,providers:i.object({script:i.string().optional(),voice:i.string().optional(),visual:i.array(i.string()).default([]),caption:i.string().optional(),capture:i.string().optional(),compositor:i.string().optional()}),assets:i.array(i.object({path:i.string().min(1),sha256:i.string().regex(/^[a-f0-9]{64}$/),bytes:i.number().int().nonnegative(),seed:i.number().int().optional()})),outputs:i.object({video:i.string().optional(),durationSec:i.number().nonnegative().optional(),sha256:i.string().regex(/^[a-f0-9]{64}$/).optional()}),cost:i.object({usd:i.number().nonnegative(),breakdown:i.record(i.string(),i.number().nonnegative())}),warnings:i.array(i.string()),exitCode:i.number().int().min(0).max(6),nondeterministic:i.boolean().optional(),captureUrlMasked:i.string().optional(),prompt:i.string().optional(),promptSha256:i.string().regex(/^[a-f0-9]{64}$/).optional()})});import{existsSync as eL5,readFileSync as Jd4}from"node:fs";import{readFile as Qd4}from"node:fs/promises";import $F5 from"node:path";async function Ff($=process.cwd()){let z=$F5.join($,Kd4),G={};if(eL5(z)){let Q=await Qd4(z,"utf8");G=Ud4(bU2.default.parse(Q)??{})}let J=Zd4(ER,G);return Wd4(J),Yd4(J,$),J}function Zd4($,z){return{...$,...z,providers:{...$.providers,...z.providers??{},script:{...$.providers.script,...z.providers?.script??{}},voice:{...$.providers.voice,...z.providers?.voice??{}},visual:{...$.providers.visual,...z.providers?.visual??{}},caption:{...$.providers.caption,...z.providers?.caption??{}},capture:{...$.providers.capture,...z.providers?.capture??{}},compositor:{...$.providers.compositor,...z.providers?.compositor??{}},pexels:{...$.providers.pexels,...z.providers?.pexels??{}},pixelle:{...$.providers.pixelle,...z.providers?.pixelle??{}}},cost:{...$.cost,...z.cost??{}},limits:{...$.limits,...z.limits??{}},naming:{...$.naming,...z.naming??{}}}}function Ud4($){let z={},G={default_output_dir:"defaultOutputDir",default_mode:"defaultMode",default_aspect:"defaultAspect",default_locale:"defaultLocale",default_captions:"defaultCaptions",default_visual:"defaultVisual",default_voice:"defaultVoice",default_music:"defaultMusic",default_compositor:"defaultCompositor",default_timeout_sec:"defaultTimeoutSec"};for(let[J,Q]of Object.entries($)){let K=G[J]??J;if(K==="cost"&&Q&&typeof Q==="object"){let Z=Q;z.cost={guardrailUsd:Z.guardrail_usd??Z.guardrailUsd??ER.cost.guardrailUsd}}else if(K==="limits"&&Q&&typeof Q==="object"){let Z=Q;z.limits={maxDurationSec:Z.max_duration_sec??Z.maxDurationSec??ER.limits.maxDurationSec,maxScenes:Z.max_scenes??Z.maxScenes??ER.limits.maxScenes}}else if(K==="naming"&&Q&&typeof Q==="object"){let Z=Q;z.naming={singleFolderPattern:Z.single_folder_pattern??Z.singleFolderPattern??ER.naming.singleFolderPattern}}else z[K]=Q}return z}function Wd4($){if(process.env.OMA_VIDEO_DEFAULT_MODE){let z=zF.safeParse(process.env.OMA_VIDEO_DEFAULT_MODE);if(z.success)$.defaultMode=z.data}if(process.env.OMA_VIDEO_DEFAULT_OUT)$.defaultOutputDir=process.env.OMA_VIDEO_DEFAULT_OUT;if(process.env.OMA_VIDEO_YES==="1")$.yes=!0;$.providers.pexels.enabled=Boolean(process.env.PEXELS_API_KEY),$.providers.pixelle.enabled=Boolean(process.env.RUNNINGHUB_API_KEY)}function Yd4($,z){let G=$F5.join(z,".agents/oma-config.yaml");if(!eL5(G))return;try{let J=bU2.default.parse(Jd4(G,"utf8"));if(J?.language)$.language=J.language}catch{}}var bU2,ER,Kd4=".agents/skills/oma-video/config/video-config.yaml";var _U2=k(()=>{_3();v0();bU2=E2(J3(),1),ER={defaultOutputDir:`${b3}/videos`,defaultMode:"shorts",defaultAspect:"auto",defaultLocale:"en",defaultCaptions:"tiktok",defaultVisual:"auto",defaultVoice:"none",defaultMusic:"none",defaultCompositor:"remotion",defaultTimeoutSec:600,yes:!1,providers:{script:{order:["agent-script"]},voice:{order:["oma-voice"]},visual:{order:["oma-image","pexels","pixelle"]},caption:{order:["oma-captions"]},capture:{order:["playwright-web","cap"]},compositor:{order:["remotion","mpt"]},pexels:{enabled:!1,envVar:"PEXELS_API_KEY"},pixelle:{enabled:!1,envVar:"RUNNINGHUB_API_KEY"}},cost:{guardrailUsd:0.2},limits:{maxDurationSec:180,maxScenes:40},naming:{singleFolderPattern:"{timestamp}-{shortid}-{mode}"},language:"en"}});import{readFile as Vd4,stat as Bd4,writeFile as Xd4}from"node:fs/promises";import xU2 from"node:path";async function SU2($,z){await Xd4($,`${JSON.stringify(z,null,2)}
2543
- `,"utf8")}async function yU2($,z){let G=bJ("manifest.json",Lf,z),J=xU2.join($,"manifest.json");return await SU2(J,G),J}async function wR($,z,G){let J=xU2.resolve($,z),[Q,K]=await Promise.all([Bd4(J),Vd4(J)]);return{path:xU2.relative($,J),sha256:YU(K),bytes:Q.size,...G===void 0?{}:{seed:G}}}var Nf=k(()=>{MG();v0()});function zF5($,z=new Date){let J={timestamp:nL(z),shortid:R0(),mode:$};return{...J,value:LZ("{timestamp}-{shortid}-{mode}",J)}}var uU2=()=>{};import{existsSync as Hd4,realpathSync as qd4}from"node:fs";import kf from"node:path";class gY{cwd;id="cap";constructor($=process.cwd()){this.cwd=$}async available(){return{ok:!0}}estimateCost(){return{usd:0,basis:"guided / Cap CLI capture"}}async guide($){let z=(await FZ("cap",["--version"])).ok;if($.capturePath)return{message:"Using the supplied --capture recording. Capture is performed by a human."};if(z)return{message:"Cap CLI detected. Record your walkthrough, then re-run with --capture <path>. Capture is performed by a human."};return{message:"No capture tool detected. Record your demo (Cap / openscreen / screen recorder), then re-run with --capture <path>. Capture is performed by a human."}}async ingest($){if(!$||$.trim().length===0)throw new zG("demo mode requires --capture <path> (capture is performed by a human).");let z=kf.resolve(this.cwd,$);if(!Hd4(z))throw new v8(`--capture path does not exist: ${z}`,"capture");let G=kf.extname(z).toLowerCase();if(!GF5.has(G))throw new v8(`--capture must be a video file (${[...GF5].join(", ")}); got "${G||"no extension"}"`,"capture");let J=JF5(z),Q=JF5(this.cwd),K=kf.relative(Q,J);if(K.startsWith("..")||kf.isAbsolute(K))throw new v8(`--capture path "${$}" is outside $PWD.`,"capture");return{path:J}}}function JF5($){try{return qd4($)}catch{return $}}var GF5;var gU2=k(()=>{kZ();w$();GF5=new Set([".mp4",".mov",".webm",".mkv"])});import{existsSync as QF5,realpathSync as Ld4,statSync as Fd4}from"node:fs";import KF5 from"node:path";class PR{cwd;id="playwright-web";constructor($=process.cwd()){this.cwd=$}async available(){let $=eL();if(!$.dir)return{ok:!1,reason:"Playwright not resolvable",remediation:"Run `oma video doctor --install-playwright`, or set OMA_VIDEO_PLAYWRIGHT_DIR."};if(!$.browserReady)return{ok:!1,reason:"Playwright chromium browser not installed",remediation:"Run `oma video doctor --install-playwright` to download chromium."};if(!DU2())return{ok:!1,reason:"web capture driver not found",remediation:"Ensure the oma-video skill is installed (resources/playwright/record.mjs)."};return{ok:!0}}estimateCost(){return{usd:0,basis:"local headed web capture (no API)"}}async guide($){return{message:"Web capture opens a headed browser; perform your flow, then press ENTER to stop. Capture is performed by a human; no credentials are automated."}}async ingest($){let z=KF5.resolve(this.cwd,$);if(!QF5(z)||Fd4(z).size===0)throw new zG(`web capture produced no usable file at ${ZF5(z)}`);return{path:jd4(z)}}async record($){if(!$.url||$.url.trim().length===0)throw new zG("web capture requires a target --url");let z=eL();if(!z.dir||!z.browserReady)throw new zG("Playwright not ready for web capture (run `oma video doctor --install-playwright`)");let G=DU2();if(!G)throw new zG("web capture driver not found");let J=$.runDir??this.cwd,Q=KF5.join(J,"capture.mp4"),K=$.size??{width:1280,height:720},Z=[G,"--url",$.url,"--out",Q,"--size",`${K.width}x${K.height}`,"--playwright-dir",z.dir];if(Z.push("--headless",$.stop?"1":"0"),$.readySelector)Z.push("--ready-selector",$.readySelector);if($.showCursor)Z.push("--show-cursor");if($.timeoutMs&&$.timeoutMs>0)Z.push("--timeout",String($.timeoutMs));if($.stop)Z.push("--stop",$.stop);if($.stop){let Y=await Z1(process.execPath,Z,{cwd:z.dir,timeoutMs:$.timeoutMs?$.timeoutMs+60000:Nd4,env:process.env}),W=Ad4(Y.stdout);if(!W||W.ok!==!0||!W.output){let V=W?.error??(Y.stderr||Y.stdout).trim().split(`
2543
+ `,"utf8")}async function yU2($,z){let G=bJ("manifest.json",Lf,z),J=xU2.join($,"manifest.json");return await SU2(J,G),J}async function wR($,z,G){let J=xU2.resolve($,z),[Q,K]=await Promise.all([Bd4(J),Vd4(J)]);return{path:xU2.relative($,J),sha256:YU(K),bytes:Q.size,...G===void 0?{}:{seed:G}}}var Nf=k(()=>{MG();v0()});function zF5($,z=new Date){let J={timestamp:nL(z),shortid:R0(),mode:$};return{...J,value:LZ("{timestamp}-{shortid}-{mode}",J)}}var uU2=()=>{};import{existsSync as Hd4,realpathSync as qd4}from"node:fs";import kf from"node:path";class gY{cwd;id="cap";constructor($=process.cwd()){this.cwd=$}async available(){return{ok:!0}}estimateCost(){return{usd:0,basis:"guided / Cap CLI capture"}}async guide($){let z=(await FZ("cap",["--version"])).ok;if($.capturePath)return{message:"Using the supplied --capture recording. Capture is performed by a human."};if(z)return{message:"Cap CLI detected. Record your walkthrough, then re-run with --capture <path>. Capture is performed by a human."};return{message:"No capture tool detected. Record your demo (Cap / openscreen / screen recorder), then re-run with --capture <path>. Capture is performed by a human."}}async ingest($){if(!$||$.trim().length===0)throw new zG("demo mode requires --capture <path> (capture is performed by a human).");let z=kf.resolve(this.cwd,$);if(!Hd4(z))throw new v8(`--capture path does not exist: ${z}`,"capture");let G=kf.extname(z).toLowerCase();if(!GF5.has(G))throw new v8(`--capture must be a video file (${[...GF5].join(", ")}); got "${G||"no extension"}"`,"capture");let J=JF5(z),Q=JF5(this.cwd),K=kf.relative(Q,J);if(K.startsWith("..")||kf.isAbsolute(K))throw new v8(`--capture path "${$}" is outside $PWD.`,"capture");return{path:J}}}function JF5($){try{return qd4($)}catch{return $}}var GF5;var gU2=k(()=>{kZ();w$();GF5=new Set([".mp4",".mov",".webm",".mkv"])});import{existsSync as QF5,realpathSync as Ld4,statSync as Fd4}from"node:fs";import KF5 from"node:path";class PR{cwd;id="playwright-web";constructor($=process.cwd()){this.cwd=$}async available(){let $=eL();if(!$.dir)return{ok:!1,reason:"Playwright not resolvable",remediation:"Run `oma video doctor --install-playwright`, or set OMA_VIDEO_PLAYWRIGHT_DIR."};if(!$.browserReady)return{ok:!1,reason:"Playwright chromium browser not installed",remediation:"Run `oma video doctor --install-playwright` to download chromium."};if(!DU2())return{ok:!1,reason:"web capture driver not found",remediation:"Ensure the oma-video skill is installed (resources/playwright/record.mjs)."};return{ok:!0}}estimateCost(){return{usd:0,basis:"local headed web capture (no API)"}}async guide($){return{message:"Web capture opens a headed browser; perform your flow, then press ENTER to stop. Capture is performed by a human; no credentials are automated."}}async ingest($){let z=KF5.resolve(this.cwd,$);if(!QF5(z)||Fd4(z).size===0)throw new zG(`web capture produced no usable file at ${ZF5(z)}`);return{path:jd4(z)}}async record($){if(!$.url||$.url.trim().length===0)throw new zG("web capture requires a target --url");let z=eL();if(!z.dir||!z.browserReady)throw new zG("Playwright not ready for web capture (run `oma video doctor --install-playwright`)");let G=DU2();if(!G)throw new zG("web capture driver not found");let J=$.runDir??this.cwd,Q=KF5.join(J,"capture.mp4"),K=$.size??{width:1280,height:720},Z=[G,"--url",$.url,"--out",Q,"--size",`${K.width}x${K.height}`,"--playwright-dir",z.dir];if(Z.push("--headless",$.stop?"1":"0"),$.readySelector)Z.push("--ready-selector",$.readySelector);if($.showCursor)Z.push("--show-cursor");if($.timeoutMs&&$.timeoutMs>0)Z.push("--timeout",String($.timeoutMs));if($.stop)Z.push("--stop",$.stop);if($.stop){let Y=await Z1(process.execPath,Z,{cwd:z.dir,timeoutMs:$.timeoutMs?$.timeoutMs+60000:Nd4,env:process.env}),W=Ad4(Y.stdout);if(W?.ok!==!0||!W.output){let V=W?.error??(Y.stderr||Y.stdout).trim().split(`
2544
2544
  `).slice(-1)[0]??`exit ${Y.code}`;throw new zG(`web capture failed: ${V}`)}return this.ingest(W.output)}let U=await kd4(process.execPath,Z,z.dir);if(U!==0||!QF5(Q))throw new zG(`web capture did not produce ${ZF5(Q)} (driver exit ${U})`);return this.ingest(Q)}}function kd4($,z,G){return import("node:child_process").then(({spawn:J})=>new Promise((Q)=>{let K=J($,z,{stdio:"inherit",cwd:G});K.on("error",()=>Q(1)),K.on("close",(Z)=>Q(Z??1))}))}function Ad4($){let G=$.trim().split(`
2545
2545
  `).map((J)=>J.trim()).filter((J)=>J.startsWith("{")&&J.endsWith("}")).at(-1);if(!G)return null;try{return JSON.parse(G)}catch{return null}}function jd4($){try{return Ld4($)}catch{return $}}function ZF5($){return $.replace(/([?&][^=\s]+=)[^&\s]+/g,"$1<redacted>")}var Nd4=3600000;var hU2=k(()=>{kZ();w$();Uf()});function UF5($,z,G){if($==="generate")return["oma-image"];if($==="stock")return["pexels","oma-image"];if($==="aigc")return["pixelle","oma-image"];if($==="slide")return["oma-slide","oma-image"];if(z==="explainer")return["oma-slide","oma-image",...G];return G}function WF5($){let G=fU2($.script.aspect),J=0,Q=$.script.scenes.map((K)=>{let Z=Math.max(1,Math.round(K.durationSec*30)),U=$.visualAssets.find((W)=>W.sceneId===K.id),Y={id:K.id,fromFrame:J,durationInFrames:Z,visual:{type:U?.type??"placeholder",src:U?.path??"",kenBurns:(U?.type??"image")==="image"},onScreenText:K.onScreenText,transitionOut:K.transition};return J+=Z,Y});return{schemaVersion:D0,compositor:$.compositor,composition:Md4($.script.mode),fps:30,dimensions:G,durationInFrames:J,audio:{narration:$.audio.path?$.audio.path:void 0,music:$.script.music==="none"?void 0:$.script.music,musicGainDb:$.script.music==="none"?void 0:-16},scenes:Q,captions:{file:$.captions?.path,style:$.captionStyle,fontFamily:"Pretendard",maxWidthPct:$.script.aspect==="9:16"?86:72,safeArea:$.script.aspect==="9:16"?{topPct:8,bottomPct:18,leftPct:7,rightPct:7}:{topPct:6,bottomPct:10,leftPct:6,rightPct:6}},background:$.footageBackground?{type:"video",src:$.footageBackground}:{type:"color",src:"#0f1117"},seed:$.seed}}function fU2($){if($==="9:16")return{width:1080,height:1920};if($==="1:1")return{width:1080,height:1080};return{width:1920,height:1080}}function Md4($){if($==="shorts")return"Shorts";if($==="demo")return"Demo";return"Explainer"}var mU2=k(()=>{v0()});import{realpathSync as Od4}from"node:fs";import{copyFile as Id4}from"node:fs/promises";import CR from"node:path";async function VF5($,z){let G=z.normalized;if(G.source==="web"&&G.url){await Rd4($,z);return}await Dd4(G.capture,$,z)}async function Rd4($,z){let G=z.normalized,J=new PR($),Q=Boolean(G.captureStop),K=Boolean(process.stdin.isTTY)&&!G.yes,Z=await J.available();if(!Z.ok||!Q&&!K){let Y=!Z.ok?Z.reason??"Playwright unavailable":"no interactive TTY for the ENTER stop (and no --capture-stop)";z.providers.capture="cap";let V=await new gY($).guide({mode:"demo"});z.warnings.push(`capture: web capture unavailable (${Y}); falling back to guided. ${V.message}`);return}z.providers.capture=J.id,z.nondeterministic=!0;let U=Ed4(G.aspect,G.device);try{let Y=await J.record({mode:"demo",source:"web",url:G.url,size:U,readySelector:G.readySelector,showCursor:G.showCursor,timeoutMs:G.captureTimeoutSec?G.captureTimeoutSec*1000:void 0,runDir:z.runDir,stop:G.captureStop});z.capturedFootage=XF5(z.runDir,Y.path),z.warnings.push(`capture: recorded live web flow from ${cU2(G.url??"")} → ${z.capturedFootage} (capture is performed by a human; URL/tokens masked)`)}catch(Y){z.providers.capture="cap";let V=await new gY($).guide({mode:"demo"});z.warnings.push(`capture: live web capture failed (${uY(Y)}); falling back to guided. ${V.message}`)}}async function Dd4($,z,G){let J=new gY(z);if(G.providers.capture=J.id,!$){let K=await J.guide({mode:"demo"});G.warnings.push(`capture: ${K.message}`);return}let Q=await J.ingest($);G.capturedFootage=XF5(G.runDir,Q.path),G.warnings.push(`capture: ingested human recording ${Q.path} (capture is performed by a human)`)}async function BF5($,z){if(!z.capturedFootage)return;let G=CR.resolve($,z.capturedFootage),J="demo.mp4",Q=CR.resolve($,J);if(G!==Q)await Id4(G,Q);z.providers.compositor="raw-capture",z.outputs.video=J;let K=await vd4(Q);if(K!==null)z.outputs.durationSec=K;let Z=await wR($,J,z.normalized.seed);z.assets.push(Z),z.outputs.sha256=Z.sha256}function XF5($,z){let G=YF5($),J=YF5(z),Q=CR.relative(G,J);return Q.startsWith("..")||CR.isAbsolute(Q)?J:Q}function YF5($){try{return Od4($)}catch{return CR.resolve($)}}async function vd4($){let z=await Z1("ffprobe",["-v","error","-show_entries","format=duration","-of","default=noprint_wrappers=1:nokey=1",$],{timeoutMs:15000});if(z.code!==0)return null;let G=Number.parseFloat(z.stdout.trim());return Number.isFinite(G)&&G>0?G:null}function Ed4($,z){if(z){let G=wd4[z.toLowerCase()];if(G)return G}return fU2($)}function cU2($){try{let z=new URL($),G=z.username?"***@":"",J=z.search?"?<redacted>":"",Q=z.hash?"#<redacted>":"";return`${z.protocol}//${G}${z.host}${z.pathname}${J}${Q}`}catch{return $.replace(/([?&][^=\s]+=)[^&\s]+/g,"$1<redacted>").replace(/\b[A-Za-z0-9_-]{24,}\b/g,"<redacted>")}}var wd4;var iU2=k(()=>{kZ();w$();Nf();gU2();hU2();mU2();wd4={desktop:{width:1920,height:1080},laptop:{width:1440,height:900},tablet:{width:1024,height:1366},mobile:{width:390,height:844}}});async function Af($,z,G,J){let Q=bJ($,z,J);return await SU2(G,Q),Q}function lU2($){let z=Object.values($.ctx.costBreakdown).reduce((J,Q)=>J+Q,0),G={schemaVersion:D0,runId:$.ctx.runId.value,mode:$.ctx.normalized.mode,providers:$.ctx.providers,assets:$.ctx.assets,outputs:$.ctx.outputs,cost:{usd:Number(z.toFixed(4)),breakdown:$.ctx.costBreakdown},warnings:$.ctx.warnings,exitCode:$.exitCode,...$.ctx.nondeterministic?{nondeterministic:!0}:{},...$.ctx.normalized.source==="web"&&$.ctx.normalized.url?{captureUrlMasked:cU2($.ctx.normalized.url)}:{},...$.includeBrief?{prompt:$.brief}:{promptSha256:YU($.brief)}};return bJ("manifest.json",Lf,G)}var HF5=k(()=>{MG();Nf();v0();iU2()});function qF5($,z,G){if(!$||$.trim().length===0)throw new v8("brief is required","generate");let J={mode:z.mode??G.defaultMode,aspect:z.aspect??G.defaultAspect,locale:z.locale??G.defaultLocale,captions:z.captions??G.defaultCaptions,visual:z.visual??G.defaultVisual,voice:z.voice??G.defaultVoice,music:z.music??G.defaultMusic,compositor:z.compositor??G.defaultCompositor,timeout:z.timeout??String(G.defaultTimeoutSec),maxUsd:z.maxUsd??String(G.cost.guardrailUsd),...z},Q=bJ("generate options",Pd4,J),K=Q.mode??G.defaultMode,Z=Q.aspect??G.defaultAspect,U=Cd4(Q.duration,G),Y=Td4(Q.maxUsd,"--max-usd"),W=Q.seed?jf(Q.seed,"--seed"):1,V=jf(Q.timeout??String(G.defaultTimeoutSec),"--timeout"),B=Q.source??"file";if(K==="demo"&&B==="web"){if(!Q.url||Q.url.trim().length===0)throw new v8("--source web requires --url <url>","generate options")}let H=Q.captureTimeout?jf(Q.captureTimeout,"--capture-timeout"):void 0;return{mode:K,aspect:Z==="auto"?bd4(K):Z,locale:Q.locale??G.defaultLocale,captions:Q.captions??G.defaultCaptions,visual:Q.visual??G.defaultVisual,voice:Q.voice??G.defaultVoice,music:Q.music??G.defaultMusic,durationSec:U,compositor:Q.compositor??G.defaultCompositor,capture:Q.capture,source:B,url:Q.url,device:Q.device,readySelector:Q.readySelector,showCursor:Q.showCursor===!0,polish:Q.polish===!0,captureTimeoutSec:H,captureStop:Q.captureStop,out:Q.out,allowExternalOut:Q.allowExternalOut===!0,maxUsd:Y,seed:W,timeoutSec:V,yes:Q.yes===!0||G.yes,dryRun:Q.dryRun===!0,includeBriefInManifest:Q.briefInManifest??!0}}function Cd4($,z){if(!$||$==="auto")return;let G=jf($,"--duration");if(G<=0||G>z.limits.maxDurationSec)throw new v8(`--duration must be between 1 and ${z.limits.maxDurationSec} seconds`,"generate options");return G}function jf($,z){let G=Number.parseInt($,10);if(!Number.isFinite(G))throw new v8(`${z} must be an integer`,"generate");return G}function Td4($,z){if($===void 0)return Number.POSITIVE_INFINITY;let G=Number.parseFloat($);if(!Number.isFinite(G)||G<0)throw new v8(`${z} must be a non-negative number`,"generate");return G}function bd4($){return $==="shorts"?"9:16":"16:9"}var Pd4;var LF5=k(()=>{qG();kZ();v0();Pd4=i.object({mode:zF.optional(),aspect:oL5.optional(),locale:i.string().min(1).optional(),captions:PU2.optional(),visual:rL5.optional(),voice:i.string().optional(),music:CU2.optional(),duration:i.string().optional(),compositor:TU2.optional(),capture:i.string().optional(),source:i.enum(["file","web"]).optional(),url:i.string().optional(),device:i.string().optional(),readySelector:i.string().optional(),showCursor:i.boolean().optional(),polish:i.boolean().optional(),captureTimeout:i.string().optional(),captureStop:i.string().optional(),out:i.string().optional(),allowExternalOut:i.boolean().optional(),maxUsd:i.string().optional(),seed:i.string().optional(),timeout:i.string().optional(),yes:i.boolean().optional(),dryRun:i.boolean().optional(),format:i.enum(["text","json"]).optional(),briefInManifest:i.boolean().optional()})});import pU2 from"node:path";function FF5($){let z=$.cwd??process.cwd(),G=$.outFlag?pU2.resolve(z,$.outFlag):pU2.resolve(z,$.defaultBase),J=pU2.resolve(G,LZ($.singleFolderPattern,{timestamp:$.runId.timestamp,shortid:$.runId.shortid,mode:$.runId.mode}));return th({resolved:J,cwd:z,allowExternal:$.allowExternal,outFlag:$.outFlag})}var NF5=k(()=>{IU2();uU2()});import{mkdir as _d4}from"node:fs/promises";import dU2 from"node:path";class nU2{config;registry;constructor($,z){this.config=$;this.registry=z}async generate($){let z,G=$.cwd??process.cwd();try{let J=qF5($.brief,$.opts,this.config),Q=zF5(J.mode),K=FF5({outFlag:J.out,allowExternal:J.allowExternalOut,defaultBase:this.config.defaultOutputDir,runId:Q,singleFolderPattern:this.config.naming.singleFolderPattern,cwd:G});await _d4(K,{recursive:!0}),z={runId:Q,runDir:K,normalized:J,warnings:[],providers:{visual:[]},assets:[],costBreakdown:{},outputs:{}};let Z={text:$.brief.trim(),mode:J.mode,aspect:J.aspect,locale:J.locale,durationSec:J.durationSec,seed:J.seed},U=await this.pickProvider("script",this.config.providers.script.order,Z,z),Y=await U.generate(Z,{maxScenes:this.config.limits.maxScenes});z.providers.script=U.id;let W=dU2.join(K,"script.json");if(await Af("script.json",Hf,W,Y),J.mode==="demo")await VF5(G,z);let V=await this.pickProvider("voice",this.config.providers.voice.order,Y,z),{audio:B,timing:H}=await V.synthesize(Y.scenes.map((v)=>({sceneId:v.id,text:v.narration,durationSec:v.durationSec})),{runDir:K,voice:J.voice,locale:J.locale,dryRun:J.dryRun});z.providers.voice=V.id,z.warnings.push(H.source==="estimated"?`voice provider ${V.id} used fallback path: estimated timing, no audio (source: estimated)`:`voice provider ${V.id} used real path (source: ${H.source})`);let X=dU2.join(K,"timing.json");await Af("timing.json",sL5,X,H);let q=[],L=UF5(J.visual,J.mode,this.config.providers.visual.order),F=J.timeoutSec*1000;for(let v of Y.scenes){let C=await this.runFallbackChain("visual",L,v,z,(_)=>_.produce(v,{runDir:K,seed:J.seed,aspect:J.aspect,timeoutMs:F,dryRun:J.dryRun}));if(q.push(C),z.providers.visual.push(C.providerId),C.pathTaken==="fallback")z.warnings.push(`visual provider ${C.providerId} used fallback path for ${v.id} (placeholder asset)`)}z.providers.visual=[...new Set(z.providers.visual)];let N;if(J.captions!=="none"){let v=await this.pickProvider("caption",this.config.providers.caption.order,H,z);if(N=await v.align(Y.scenes.map((C)=>C.narration),H,B,{runDir:K,style:J.captions,locale:J.locale,sourceLocale:Y.locale,dryRun:J.dryRun}),z.providers.caption=v.id,J.locale!==Y.locale&&N.pathTaken==="fallback")z.warnings.push(`caption provider ${v.id} kept source locale ${Y.locale} (oma-translator unavailable for ${J.locale})`)}let A=J.mode==="demo"&&z.capturedFootage?z.capturedFootage:void 0,j=WF5({script:Y,timing:H,audio:B,captions:N,visualAssets:q,compositor:J.compositor,seed:J.seed,captionStyle:J.captions,footageBackground:A}),M=dU2.join(K,"render-spec.json");if(await Af("render-spec.json",qf,M,j),!J.dryRun&&J.mode==="demo"&&z.capturedFootage&&!J.polish&&z.capturedFootage)await BF5(K,z);else if(!J.dryRun){let v=await this.pickProvider("compositor",[J.compositor],j,z);z.providers.compositor=v.id;let C=process.cwd();try{process.chdir(K);let _=await v.render(j);if(z.outputs.video=_.path,z.outputs.durationSec=_.durationSec,_.warnings?.length)z.warnings.push(..._.warnings.map((g)=>`compositor ${v.id}: ${g}`));z.assets.push(await wR(K,_.path,J.seed)),z.outputs.sha256=z.assets.find((g)=>g.path===_.path)?.sha256}finally{process.chdir(C)}}else z.providers.compositor=J.compositor;let R=["script.json","timing.json","render-spec.json",...B.path?[B.path]:[],...q.map((v)=>v.path),...N?[N.path]:[],...N?.vttPath?[N.vttPath]:[]];z.assets.push(...await Promise.all(R.map((v)=>wR(K,v,J.seed))));let I=lU2({ctx:z,brief:$.brief,exitCode:TJ.ok,includeBrief:J.includeBriefInManifest}),D=await yU2(K,I);return{exitCode:TJ.ok,runDir:K,manifestPath:D,scriptPath:W,renderSpecPath:M,warnings:z.warnings,manifest:I}}catch(J){return await this.handleFailure(J,$.brief,z)}}async pickProvider($,z,G,J){return await this.runFallbackChain($,z,G,J,async(K)=>K)}async runFallbackChain($,z,G,J,Q){let K=this.registry.resolve($,z),Z=[];for(let U of K){let Y=await U.available();if(!Y.ok){Z.push(`${U.id}: ${Y.reason??"unavailable"}`),J.warnings.push(`${$} provider ${U.id} unavailable: ${Y.reason??"unavailable"}`);continue}let W=U.estimateCost(G);J.costBreakdown[U.id]=(J.costBreakdown[U.id]??0)+W.usd;let V=Object.values(J.costBreakdown).reduce((B,H)=>B+H,0);if(W.usd>0&&V>=J.normalized.maxUsd&&!J.normalized.yes)throw new Bf(`estimated ${V.toFixed(2)} USD total (${U.id} +${W.usd.toFixed(2)}, ${W.basis}); pass -y or raise --max-usd to continue.`);try{return await Q(U)}catch(B){if(B instanceof Bf)throw B;Z.push(`${U.id}: ${uY(B)}`),J.warnings.push(`${$} provider ${U.id} failed: ${uY(B)}`)}}throw new vR(`${$} provider chain exhausted (${Z.join("; ")})`)}async handleFailure($,z,G){let J=aL5($),Q=uY($);if(!G)return{exitCode:J,warnings:[],error:Q};G.warnings.push(Q);let K=lU2({ctx:G,brief:z,exitCode:J,includeBrief:G.normalized.includeBriefInManifest});try{let Z=await yU2(G.runDir,K);return{exitCode:J,runDir:G.runDir,manifestPath:Z,warnings:G.warnings,error:Q,manifest:K}}catch(Z){return{exitCode:J,runDir:G.runDir,warnings:G.warnings,error:`${Q}; failed to write manifest: ${uY(Z)}`}}}}var kF5=k(()=>{kZ();Nf();uU2();iU2();HF5();LF5();mU2();NF5();v0()});function W9(){return process.env.OMA_VIDEO_MOCK==="1"}var AF5=0.35;import{writeFile as jF5}from"node:fs/promises";import MF5 from"node:path";class aU2{id="oma-captions";async available(){return{ok:!0}}estimateCost(){return{usd:0,basis:"key-free captions from timing"}}async align($,z,G,J){let Q=!W9()&&!J.dryRun&&J.locale!==J.sourceLocale,K=$,Z=J.sourceLocale,U="fallback";if(Q){let H=await this.translate($,J);if(H)K=H,Z=J.locale,U="real"}let Y=xd4(z,K),W=Sd4(z,K),V="captions.srt",B="captions.vtt";return await jF5(MF5.join(J.runDir,V),Y,"utf8"),await jF5(MF5.join(J.runDir,B),W,"utf8"),{path:V,vttPath:B,style:J.style,locale:Z,pathTaken:U}}async translate($,z){return null}}function RF5($,z,G){let J=z[G];if(J&&J.trim().length>0)return J.trim();let Q=$.segments[G];return Q?Q.words.map((K)=>K.t).join(" "):""}function xd4($,z){return $.segments.map((G,J)=>[String(J+1),`${OF5(G.startSec)} --> ${OF5(G.endSec)}`,RF5($,z,J),""].join(`
2546
2546
  `)).join(`
@@ -2548,7 +2548,7 @@ oma video doctor — toolchain readiness
2548
2548
 
2549
2549
  ${$.segments.map((J,Q)=>[`${IF5(J.startSec)} --> ${IF5(J.endSec)}`,RF5($,z,Q),""].join(`
2550
2550
  `)).join(`
2551
- `)}`}function OF5($){let{h:z,m:G,s:J,ms:Q}=DF5($);return`${AZ(z)}:${AZ(G)}:${AZ(J)},${AZ(Q,3)}`}function IF5($){let{h:z,m:G,s:J,ms:Q}=DF5($);return`${AZ(z)}:${AZ(G)}:${AZ(J)}.${AZ(Q,3)}`}function DF5($){let z=Math.floor($);return{h:Math.floor(z/3600),m:Math.floor(z%3600/60),s:z%60,ms:Math.round(($-z)*1000)}}function AZ($,z=2){return String($).padStart(z,"0")}var vF5=()=>{};import{readFile as yd4,writeFile as EF5}from"node:fs/promises";import TR from"node:path";class GF{id;constructor($="remotion"){this.id=$}async available(){return{ok:!0}}estimateCost(){return{usd:0,basis:`${this.id} local render`}}async render($){let z=`${$.composition.toLowerCase()}.mp4`,G=$.durationInFrames/$.fps,J=process.cwd();if(this.id==="mpt")return this.renderMptOrPlaceholder({spec:$,file:z,runDir:J,durationSec:G});let Q=await this.realBranchGate();if(!Q.ok)return this.placeholder(z,$,G);try{return await this.renderWithRemotion({spec:$,file:z,runDir:J,projectDir:Q.projectDir,chromeOverride:Q.chromeOverride,fallbackDurationSec:G})}catch(K){let Z=K instanceof Error?K.message:String(K),U=await this.placeholder(z,$,G);return U.warnings=[...U.warnings??[],`remotion render failed, used placeholder: ${Z}`],U}}async renderMptOrPlaceholder($){let{spec:z,file:G,runDir:J,durationSec:Q}=$,K=this.mptBranchGateSync();if(!K.ok)return this.placeholder(G,z,Q);if(!(await FZ("ffmpeg",["-version"])).ok)return this.placeholder(G,z,Q);try{return await this.renderWithMpt({spec:z,file:G,runDir:J,venvPython:K.venvPython,projectDir:K.projectDir,driverPath:K.driverPath,fallbackDurationSec:Q})}catch(U){let Y=U instanceof Error?U.message:String(U),W=await this.placeholder(G,z,Q);return W.warnings=[...W.warnings??[],`mpt render failed, used placeholder: ${Y}`],W}}mptBranchGateSync(){if(W9())return{ok:!1,reason:"mock mode"};let $=Gf();if(!$.dir)return{ok:!1,reason:"mpt checkout not found"};if(!$.installed||!$.venvPython)return{ok:!1,reason:"mpt checkout not installed"};let z=TL5();if(!z)return{ok:!1,reason:"mpt driver not found"};return{ok:!0,projectDir:$.dir,venvPython:$.venvPython,driverPath:z}}async renderWithMpt($){let{spec:z,file:G,runDir:J,venvPython:Q,projectDir:K,driverPath:Z,fallbackDurationSec:U}=$,Y=TR.join(J,G),W=await this.readNarration(J,z),V=this.aspectForDimensions(z.dimensions),B={mpt_dir:K,script:W,subject:z.composition,out_path:Y,aspect:V,video_source:process.env.PEXELS_API_KEY?"pexels":"local",clip_duration:5,subtitle:z.captions.style!=="none"},H=TR.join(J,"mpt-driver-spec.json");await EF5(H,JSON.stringify(B),"utf8");let X={...process.env},q=process.env.OMA_FFMPEG?.trim();if(q)X.IMAGEIO_FFMPEG_EXE=q;let L=await Z1(Q,[Z,H],{cwd:K,timeoutMs:Mf,env:X});if(L.timedOut)throw Error(`mpt render timed out after ${Mf}ms`);let F=this.parseDriverResult(L.stdout);if(!F||F.ok!==!0){let A=F?.error||(L.stderr||L.stdout).trim().split(`
2551
+ `)}`}function OF5($){let{h:z,m:G,s:J,ms:Q}=DF5($);return`${AZ(z)}:${AZ(G)}:${AZ(J)},${AZ(Q,3)}`}function IF5($){let{h:z,m:G,s:J,ms:Q}=DF5($);return`${AZ(z)}:${AZ(G)}:${AZ(J)}.${AZ(Q,3)}`}function DF5($){let z=Math.floor($);return{h:Math.floor(z/3600),m:Math.floor(z%3600/60),s:z%60,ms:Math.round(($-z)*1000)}}function AZ($,z=2){return String($).padStart(z,"0")}var vF5=()=>{};import{readFile as yd4,writeFile as EF5}from"node:fs/promises";import TR from"node:path";class GF{id;constructor($="remotion"){this.id=$}async available(){return{ok:!0}}estimateCost(){return{usd:0,basis:`${this.id} local render`}}async render($){let z=`${$.composition.toLowerCase()}.mp4`,G=$.durationInFrames/$.fps,J=process.cwd();if(this.id==="mpt")return this.renderMptOrPlaceholder({spec:$,file:z,runDir:J,durationSec:G});let Q=await this.realBranchGate();if(!Q.ok)return this.placeholder(z,$,G);try{return await this.renderWithRemotion({spec:$,file:z,runDir:J,projectDir:Q.projectDir,chromeOverride:Q.chromeOverride,fallbackDurationSec:G})}catch(K){let Z=K instanceof Error?K.message:String(K),U=await this.placeholder(z,$,G);return U.warnings=[...U.warnings??[],`remotion render failed, used placeholder: ${Z}`],U}}async renderMptOrPlaceholder($){let{spec:z,file:G,runDir:J,durationSec:Q}=$,K=this.mptBranchGateSync();if(!K.ok)return this.placeholder(G,z,Q);if(!(await FZ("ffmpeg",["-version"])).ok)return this.placeholder(G,z,Q);try{return await this.renderWithMpt({spec:z,file:G,runDir:J,venvPython:K.venvPython,projectDir:K.projectDir,driverPath:K.driverPath,fallbackDurationSec:Q})}catch(U){let Y=U instanceof Error?U.message:String(U),W=await this.placeholder(G,z,Q);return W.warnings=[...W.warnings??[],`mpt render failed, used placeholder: ${Y}`],W}}mptBranchGateSync(){if(W9())return{ok:!1,reason:"mock mode"};let $=Gf();if(!$.dir)return{ok:!1,reason:"mpt checkout not found"};if(!$.installed||!$.venvPython)return{ok:!1,reason:"mpt checkout not installed"};let z=TL5();if(!z)return{ok:!1,reason:"mpt driver not found"};return{ok:!0,projectDir:$.dir,venvPython:$.venvPython,driverPath:z}}async renderWithMpt($){let{spec:z,file:G,runDir:J,venvPython:Q,projectDir:K,driverPath:Z,fallbackDurationSec:U}=$,Y=TR.join(J,G),W=await this.readNarration(J,z),V=this.aspectForDimensions(z.dimensions),B={mpt_dir:K,script:W,subject:z.composition,out_path:Y,aspect:V,video_source:process.env.PEXELS_API_KEY?"pexels":"local",clip_duration:5,subtitle:z.captions.style!=="none"},H=TR.join(J,"mpt-driver-spec.json");await EF5(H,JSON.stringify(B),"utf8");let X={...process.env},q=process.env.OMA_FFMPEG?.trim();if(q)X.IMAGEIO_FFMPEG_EXE=q;let L=await Z1(Q,[Z,H],{cwd:K,timeoutMs:Mf,env:X});if(L.timedOut)throw Error(`mpt render timed out after ${Mf}ms`);let F=this.parseDriverResult(L.stdout);if(F?.ok!==!0){let A=F?.error||(L.stderr||L.stdout).trim().split(`
2552
2552
  `).slice(-2).join(" | ")||`exit ${L.code}`;throw Error(`driver: ${A}`)}let N=await this.probeDurationSec(Y);return{path:G,durationSec:N??F.duration??U,pathTaken:"real"}}async readNarration($,z){try{let J=await yd4(TR.join($,"script.json"),"utf8"),K=(JSON.parse(J).scenes??[]).map((Z)=>(Z.narration??"").trim()).filter((Z)=>Z.length>0);if(K.length>0)return K.join(`
2553
2553
  `)}catch{}let G=z.scenes.flatMap((J)=>J.onScreenText).map((J)=>J.trim()).filter((J)=>J.length>0);if(G.length>0)return G.join(`
2554
2554
  `);return z.composition}aspectForDimensions($){if($.height>$.width)return"9:16";if($.width>$.height)return"16:9";return"1:1"}parseDriverResult($){let G=$.trim().split(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-agent",
3
- "version": "10.18.0",
3
+ "version": "10.19.1",
4
4
  "description": "Portable multi-agent harness for .agents-based skills and workflows across Antigravity, Claude Code, Codex, OpenCode, and more",
5
5
  "type": "module",
6
6
  "bin": {
@@ -94,7 +94,7 @@
94
94
  "pptxgenjs": "^3.12.0"
95
95
  },
96
96
  "devDependencies": {
97
- "@biomejs/biome": "^2.4.15",
97
+ "@biomejs/biome": "^2.5.4",
98
98
  "@types/better-sqlite3": "^7.6.13",
99
99
  "@types/mdast": "^4.0.4",
100
100
  "@types/node": "^24",