aiforcecli 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/aiforcecli.config.example.json +3 -1
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +4 -1
- package/README.md +0 -303
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const ao=c;(function(a2,a3){const al=c,a4=a2();while(!![]){try{const a5=parseInt(al(0x225))/(0x4*-0x8e0+0x15c+0x1*0x2225)*(-parseInt(al(0x210))/(-0x1931+0x1500+0x433))+-parseInt(al(0x2f1))/(0x691+0x4ce*0x1+-0xb5c*0x1)*(parseInt(al(0x2ef))/(-0x1*0x1873+-0x52*-0x24+0xcef))+parseInt(al(0x1f5))/(-0x1*0xf35+-0x16d8+-0x376*-0xb)*(parseInt(al(0x249))/(0x5d*0x3d+-0x11f+-0x1504))+-parseInt(al(0x246))/(-0xff6+0xc95*0x1+0x8*0x6d)+parseInt(al(0x323))/(0x17*-0xcb+0x4*0x7b8+-0xc9b)*(-parseInt(al(0x1f4))/(0x708+-0x7ba+0xbb))+parseInt(al(0x1d3))/(0x19a4+0x2253+-0x211*0x1d)+-parseInt(al(0x204))/(-0x27*0xa1+0x24d*-0xf+0x3b15)*(-parseInt(al(0x355))/(-0x5*0x397+0x4*0x228+0x1*0x95f));if(a5===a3)break;else a4['push'](a4['shift']());}catch(a6){a4['push'](a4['shift']());}}}(a,-0x2f*-0x4094+0x2e717*-0x1+0x48fa7));import{createHash as d}from'crypto';function O(a2){const am=c;return d(am(0x285))['update'](a2,'utf8')[am(0x34d)](am(0x275))[am(0x3b5)](-0x6a5+0x392+0x1*0x313,0x1*-0x1a56+0x2708+-0xca2);}var R=class extends Error{constructor(a2,a3){const an=c;super(a2),this[an(0x232)]=a3,this[an(0x33b)]='BudgetEx'+'ceededEr'+an(0x3eb);}[ao(0x232)];},A=class{constructor(a2,a3,a4,a5){const ap=ao;this[ap(0x397)]=a2,this[ap(0x277)]=a3,this[ap(0x2c3)+ap(0x287)]=a4,this[ap(0x313)+ap(0x358)]=a5;}[ao(0x397)];[ao(0x277)];[ao(0x2c3)+ao(0x287)];[ao(0x313)+'erride'];[ao(0x217)]=!(-0x3b4+-0x1*-0x7cd+-0x418);get['perRunCa'+'p'](){const aq=ao;return this[aq(0x313)+'erride']??this['config']['maxCostP'+aq(0x301)];}[ao(0x25d)+'t'](){const ar=ao;if(this[ar(0x397)][ar(0x401)+ar(0x3b3)]==null)return;let a2=this[ar(0x277)][ar(0x33a)+'ay']();if(a2>=this[ar(0x397)][ar(0x401)+'Usd'])throw new R(ar(0x2eb)+ar(0x3a8)+ar(0x28b)+a2[ar(0x311)](0x1111+-0x3d*-0x8b+-0x322c)+('\x20spent\x20t'+ar(0x32d)+'cap\x20$')+this[ar(0x397)][ar(0x401)+ar(0x3b3)][ar(0x311)](-0x3*-0xa3a+-0xf03+0x1*-0xfa9)+('.\x20Refusi'+'ng\x20to\x20st'+ar(0x1f0)),'daily-ca'+'p');}[ao(0x343)](a2){const as=ao;let a3=this[as(0x3bc)+'p'];return a3==null?!(-0x1fc2+0x1299*-0x2+-0x8b*-0x7f):a2[as(0x3d8)]>a3?(this[as(0x217)]=!(-0xaa3*-0x3+0xdf2+-0x2ddb),!(-0x1*0x19db+-0x1fb+0x1bd6)):!(0xec4+0x2217+-0x2*0x186d);}get[ao(0x2ee)+'h'](){const at=ao;return this[at(0x217)];}[ao(0x3bc)+ao(0x31d)](){const au=ao;return this[au(0x3bc)+'p'];}},J={'claude-opus-4':{'input':0x5,'output':0x19,'cacheRead':0.5,'cacheWrite':6.25},'claude-sonnet-4':{'input':0x3,'output':0xf,'cacheRead':0.3,'cacheWrite':3.75},'claude-haiku-4':{'input':0x1,'output':0x5,'cacheRead':0.1,'cacheWrite':1.25},'gpt-5-codex':{'input':1.25,'output':0xa},'o4-mini':{'input':1.1,'output':4.4},'gpt-5.5':{'input':1.25,'output':7.5,'cacheRead':0.125},'gpt-5.4-mini':{'input':0.1875,'output':1.13,'cacheRead':0.01875},'gpt-5.4':{'input':0.625,'output':3.75,'cacheRead':0.0625},'gpt-5.3-codex':{'input':0.4375,'output':3.5,'cacheRead':0.04375},'gpt-5.2':{'input':0.4375,'output':3.5,'cacheRead':0.04375}},j={'input':0x3,'output':0xf};function V(a2){const av=ao;if(!a2)return j;let a3=a2[av(0x230)+av(0x3b2)](),a4;for(let [a5,a6]of Object[av(0x1de)](J))a3[av(0x22f)](a5)&&(!a4||a5[av(0x1f6)]>a4['key']['length'])&&(a4={'key':a5,'price':a6});return a4?.['price']??j;}function g(a2,a3){const aw=ao;let a4=V(a3),a5=0x7*0x6bd1+0x12664c+-0x616c3,a6=a2[aw(0x2d4)+aw(0x1d4)]/a5*a4['input']+a2[aw(0x2b4)+'kens']/a5*a4[aw(0x328)];return a2[aw(0x2bc)+aw(0x325)]&&(a6+=a2['cacheRea'+aw(0x325)]/a5*(a4[aw(0x2bc)+'d']??a4[aw(0x1eb)])),a2[aw(0x330)+'teTokens']&&(a6+=a2[aw(0x330)+aw(0x315)]/a5*(a4[aw(0x330)+'te']??a4[aw(0x1eb)])),a6;}function k(a2,a3){const ax=ao;if(a2[ax(0x361)+'ce']===ax(0x2fb)&&a2[ax(0x3d8)]>0x649+0x17a0+-0x1de9)return a2;let a4=g(a2,a3);return{...a2,'costUsd':a4,'costSource':ax(0x23a)};}function m(){const ay=ao;return{'inputTokens':0x0,'outputTokens':0x0,'costUsd':0x0,'costSource':ay(0x383)};}function Y(a2,a3){const az=ao;return{'inputTokens':a2['inputTok'+'ens']+a3[az(0x2d4)+az(0x1d4)],'outputTokens':a2[az(0x2b4)+az(0x283)]+a3[az(0x2b4)+'kens'],'cacheReadTokens':(a2['cacheRea'+az(0x325)]??-0x1*0x180f+-0x1*-0x67f+-0x8*-0x232)+(a3[az(0x2bc)+az(0x325)]??0xb67*0x1+0x1332+-0x1e99),'cacheWriteTokens':(a2['cacheWri'+az(0x315)]??0x151*0xc+-0xa1*-0xb+-0x5*0x48b)+(a3[az(0x330)+az(0x315)]??0x4*0x586+-0xdd0+0x1*-0x848),'costUsd':a2[az(0x3d8)]+a3[az(0x3d8)],'costSource':a3[az(0x361)+'ce']===az(0x2fb)?az(0x2fb):a2[az(0x361)+'ce']};}async function K(a2){const aA=ao;a2[aA(0x231)][aA(0x25d)+'t']();let a3=new AbortController(),a4={...a2[aA(0x329)],'signal':a3[aA(0x3e4)]},a5=a2['resumeSe'+aA(0x1dc)]&&a2[aA(0x2d0)]['resume']?a2[aA(0x2d0)]['resume'](a2[aA(0x2b6)+'ssionId'],a2[aA(0x201)],a4):a2[aA(0x2d0)][aA(0x3f2)](a2['prompt'],a4),a6=m(),a7=!(0x1a0a+-0x153c+-0x1*0x4cd);for await(let ac of a5['events'])a2[aA(0x2e0)]?.(ac),ac[aA(0x3f9)]===aA(0x1e6)&&(a6=ac[aA(0x25c)+'ve']?ac['usage']:Y(a6,ac[aA(0x1e6)]),!a7&&a2[aA(0x231)][aA(0x343)](a6)&&(a7=!(0x211*0x9+-0x22af+0x1016),a3[aA(0x273)]()));let a8=await a5[aA(0x3f1)],a9=k(a8[aA(0x1e6)][aA(0x2d4)+aA(0x1d4)]||a8[aA(0x1e6)]['outputTo'+'kens']?a8[aA(0x1e6)]:a6,a2[aA(0x290)]),aa=a8[aA(0x314)]||a7,ab={...a8,'usage':a9,'aborted':aa||void(0x229d+-0xa64+-0x9f*0x27),'abortReason':a7?aA(0x2dd):a8[aA(0x30d)+aA(0x264)]};return a2[aA(0x3a0)]!==!(-0x131b+0x2*-0x6b6+-0x2b6*-0xc)&&a2[aA(0x277)][aA(0x374)]({'ts':new Date()['toISOStr'+aA(0x38e)](),'agent':a2['adapter']['id'],'projectPath':a2[aA(0x2c3)+aA(0x287)],'promptHash':O(a2[aA(0x201)]),'model':a2[aA(0x290)],'usage':a9,'exitCode':ab['exitCode'],'aborted':!!aa,'abortReason':ab[aA(0x30d)+aA(0x264)],'sessionId':ab[aA(0x2f4)+'d']}),ab;}import{execa as e}from'execa';function T(a2){const aB=ao;let a3=a2[aB(0x3ce)]();if(a3&&!(a3[0x3c4*0xa+-0x233*-0x1+0x27db*-0x1]!=='{'&&a3[0xa66+-0x1*-0x21f5+-0x5*0x8df]!=='['))try{let a4=JSON['parse'](a3);return typeof a4==aB(0x2a3)&&a4!==null?a4:void(-0x22f+0x2*-0x502+-0x411*-0x3);}catch{return;}}import h from'readline';import{execa as i}from'execa';function I(a2,a3,a4){const aE=ao;let a5=new AbortController(),a6,a7,a8,a9=()=>{const aC=c;a4[aC(0x1d7)+aC(0x365)+aC(0x308)]&&(a7&&clearTimeout(a7),a7=setTimeout(()=>{const aD=aC;a6=aD(0x1d7)+'ty',a5[aD(0x273)]();},a4[aC(0x1d7)+aC(0x365)+aC(0x308)]));},aa=i(a2,a3,{'cwd':a4[aE(0x2c0)],'cancelSignal':a5[aE(0x3e4)],'forceKillAfterDelay':0x1388,'reject':!(-0x4c*0x3f+0x966+0x94f),'buffer':!(-0x1360+-0x24d0+0x5*0xb3d),'stdin':'ignore','encoding':'utf8','windowsHide':!(0xbb*0x1a+0x6e5+-0x8a1*0x3),'env':a4[aE(0x266)],'extendEnv':!(-0x1c97*-0x1+-0x28+-0x1c6f)}),ab='';aa[aE(0x346)]&&(aa[aE(0x346)]['setEncod'+aE(0x38e)](aE(0x2ce)),aa[aE(0x346)]['on'](aE(0x2f5),af=>{ab+=af,a9();})),a4[aE(0x26e)+'s']&&(a8=setTimeout(()=>{const aF=aE;a6=aF(0x3cc),a5['abort']();},a4[aE(0x26e)+'s'])),a4[aE(0x3e4)]&&(a4[aE(0x3e4)][aE(0x314)]?(a6=aE(0x3e4),a5[aE(0x273)]()):a4[aE(0x3e4)][aE(0x213)+aE(0x298)](aE(0x273),()=>{const aG=aE;a6=aG(0x3e4),a5[aG(0x273)]();},{'once':!(-0x248c+-0x1*-0x127d+0x120f)})),a9();async function*ac(){const aH=aE;if(!aa[aH(0x1db)])return;let af=h['createIn'+'terface']({'input':aa['stdout'],'crlfDelay':(-0x21fa+0xec7+0x4cd*0x4)/(-0x1bd0+0x1*-0x8ff+0x24cf)});try{for await(let ag of af)a9(),yield ag;}finally{af['close']();}}let ad=((async()=>{const aI=aE;let af,ag=!(-0x24c5+-0x54d*-0x1+0x1f79*0x1);try{af=await aa;}catch(aj){let ak=aj;ak[aI(0x34b)]===aI(0x384)&&(ag=!(0x98e+0x9*0x17+-0x7*0x17b)),ab||=ak[aI(0x238)+aI(0x2a7)]??String(aj);}finally{a7&&clearTimeout(a7),a8&&clearTimeout(a8);}let ah=a5[aI(0x3e4)][aI(0x314)];af&&af[aI(0x34b)]===aI(0x384)&&(ag=!(0x1af*-0x2+0x1254+0xef6*-0x1));let ai=af?.['signal'];return{'exitCode':typeof af?.['exitCode']=='number'?af[aI(0x39c)]:ah?-0x2252+-0x1*-0x26e7+-0x413:-0x15cd*0x1+0x10a8+0x1*0x526,'stderr':ab[aI(0x3ce)](),'aborted':ah,'abortReason':ah?a6:void(-0x3*0x8ef+-0x21d5+0x3ca2),'spawnFailed':ag,'signal':ai??void(-0x1*-0x1c6f+0x12cd+-0x2f3c)};})());return{'lines':ac(),'result':ad};}function q(a2){const aJ=ao;if(a2<-0x5b3b02c1+0x2c5a2485*0x1+0x27d0250a*0x6)return;let a3='0x'+(a2>>>-0xaf*0x31+0xe*-0x5f+0x26b1*0x1)[aJ(0x1f9)](0x5*-0x191+0xfb4+-0x7cf)['toUpperC'+aJ(0x3b2)]()[aJ(0x25e)](-0x5*-0x664+0x1a8e+-0x3a7a,'0'),a4={'0xC0000005':aJ(0x30f)+aJ(0x3c4),'0xC00000FD':aJ(0x3a9)+aJ(0x2c2),'0xC0000409':aJ(0x38d)+aJ(0x28e)+'rrun','0xC000013A':aJ(0x216)+aJ(0x316)+aJ(0x27d)};return a4[a3]?a3+',\x20'+a4[a3]:a3;}function f(a2){const aK=ao;let {lines:a3,result:a4}=I(a2[aK(0x254)],a2[aK(0x2ae)],{'cwd':a2[aK(0x329)][aK(0x2c0)],'timeoutMs':a2[aK(0x329)][aK(0x26e)+'s'],'inactivityTimeoutMs':a2[aK(0x329)][aK(0x1d7)+aK(0x365)+aK(0x308)],'signal':a2[aK(0x329)]['signal']}),a5,a6=new Promise(a9=>{a5=a9;}),a7=!(0x8*-0x2+-0x1348+-0xd*-0x17d);async function*a8(){const aL=aK;try{for await(let aa of a3)for(let ab of a2[aL(0x2a8)][aL(0x1ef)](aa))a7=!(-0x1051+-0x18d5+0x2926),yield ab;}catch(ac){yield{'type':aL(0x21a),'message':aL(0x221)+aL(0x1c9)+String(ac),'fatal':!(-0x98b*0x1+0x2647+-0x1cbc)};}let a9=await a4;if(a9[aL(0x30e)+'led'])yield{'type':'error','message':a2['installH'+aL(0x3aa)],'fatal':!(0x16e6+0x205f+-0x3745)};else{if(a9[aL(0x314)])yield{'type':aL(0x21a),'message':aL(0x1d2)+'ted\x20('+(a9[aL(0x30d)+aL(0x264)]??aL(0x3e4))+').','fatal':!(0x3b*-0xa5+0x1*0x285+-0x3f2*-0x9)};else{if(a9['signal']){let ad=a9['stderr']?'\x0a'+a9[aL(0x346)]:'';yield{'type':aL(0x21a),'message':a2['command']+('\x20termina'+aL(0x22c)+aL(0x369))+a9['signal']+('\x20after\x20p'+'roducing'+aL(0x3c0)+'le\x20resul'+aL(0x312)+aL(0x317)+aL(0x2db)+aL(0x1f2)+aL(0x3d0)+'nt,\x20not\x20'+aL(0x24c)+aL(0x3fa))+ad,'fatal':!(-0x1425+-0x193d*0x1+0x2d62*0x1)};}else{if(a9[aL(0x39c)]!==0x97+-0x13*0x16b+0x1a5a*0x1){let af=q(a9[aL(0x39c)]),ag=af?'crashed\x20'+aL(0x29a)+'\x20excepti'+aL(0x27a)+af+(aL(0x2e7)+aL(0x317)+aL(0x2db)+aL(0x1f2)+'ying\x20age'+aL(0x26c)+'aiforcec'+aL(0x3fa)):aL(0x1d8)+a9['exitCode'];yield{'type':aL(0x21a),'message':a9[aL(0x346)]?a9[aL(0x346)]:a7?a2[aL(0x254)]+'\x20'+ag+'.':a2[aL(0x254)]+'\x20'+ag+(af?'':aL(0x235)+aL(0x261)+aL(0x364)+aL(0x23b)),'fatal':!a7};}}}}a5(a2['parser'][aL(0x29d)](a9));}return{'events':a8(),'result':a6};}var x=ao(0x385)+ao(0x2da)+'not\x20foun'+ao(0x3c2)+'ll\x20it\x20wi'+ao(0x3ac)+ao(0x370)+ao(0x3db)+ao(0x2ea)+ao(0x2c9)+ao(0x310)+ao(0x1e4)+ao(0x2f7)+ao(0x1c4)+'laude`\x20o'+ao(0x2e9)+ao(0x3dc)+ao(0x33f)+ao(0x345)+ao(0x1c8)+ao(0x34b),E=class{[ao(0x2f4)+'d'];[ao(0x290)];[ao(0x32b)+'sage']='';[ao(0x373)+'ge']=m();constructor(a2){const aM=ao;this[aM(0x290)]=a2;}[ao(0x1ef)](a2){const aN=ao;let a3=T(a2);if(!a3)return[];let a4=[],a5=a3[aN(0x3f9)];if(typeof a3[aN(0x2be)+'id']==aN(0x386)&&(this['sessionI'+'d']=a3[aN(0x2be)+'id']),a5===aN(0x305)&&a3[aN(0x388)]===aN(0x336))return typeof a3[aN(0x290)]==aN(0x386)&&(this[aN(0x290)]=a3[aN(0x290)]),a4;if(a5===aN(0x272)+'t'){let a6=a3[aN(0x35d)];if(!a6)return a4;typeof a6[aN(0x290)]==aN(0x386)&&(this['model']=a6[aN(0x290)]);let a7=a6['content']??[];for(let a9 of a7)a9[aN(0x3f9)]==='text'&&typeof a9[aN(0x27f)]==aN(0x386)?a4[aN(0x2e8)]({'type':aN(0x35d),'role':'assistan'+'t','text':a9[aN(0x27f)]}):a9[aN(0x3f9)]==='tool_use'&&a4[aN(0x2e8)]({'type':aN(0x20a)+'l','name':String(a9['name']??aN(0x383)),'input':a9[aN(0x1eb)],'id':typeof a9['id']==aN(0x386)?a9['id']:void(0x2b6*0x1+-0x11e8+-0x799*-0x2)});let a8=a6[aN(0x1e6)];if(a8){let aa=this['mapUsage'](a8,void(0x38*-0xa3+-0x1d79+0x1*0x4121));a4['push']({'type':aN(0x1e6),'usage':aa,'cumulative':!(-0x1*-0x1ce1+0xce5*0x3+-0x3*0x1685)});}return a4;}if(a5===aN(0x3f1)){typeof a3[aN(0x3f1)]==aN(0x386)&&(this['finalMes'+aN(0x2a7)]=a3[aN(0x3f1)]);let ab=a3['usage'],ac=typeof a3[aN(0x351)+aN(0x36e)]==aN(0x243)?a3[aN(0x351)+aN(0x36e)]:void(0xa6b+0x5cf*0x3+-0xc*0x252);return this[aN(0x373)+'ge']=ab?this[aN(0x286)](ab,ac):this[aN(0x373)+'ge'],a4[aN(0x2e8)]({'type':aN(0x1e6),'usage':this['finalUsa'+'ge'],'cumulative':!(-0x1*-0x1877+0x2cc*-0x7+-0x4e3)}),a4;}return(a5===aN(0x21a)||a3['is_error']===!(0x8*0x6+-0x9*0x2+-0x1e))&&a4[aN(0x2e8)]({'type':aN(0x21a),'message':String(a3[aN(0x21a)]??a3[aN(0x3f1)]??aN(0x23c)+aN(0x21a)),'fatal':!(0xc*-0x193+0x56e+0x1*0xd76)}),a4;}[ao(0x286)](a2,a3){const aO=ao;let a4=a2[aO(0x334)+aO(0x283)]??-0x2*0x550+-0x3*0x217+0x10e5,a5=a2['output_t'+aO(0x318)]??-0x2b*-0x72+0x18a4+0x2bca*-0x1,a6=a2['cache_re'+aO(0x36b)+aO(0x31e)]??0x42f+-0xf1*-0x13+0xe2*-0x19,a7=a2[aO(0x292)+aO(0x1fb)+aO(0x2e3)+aO(0x1d4)]??0x5*0x631+0x7a9*-0x1+0x1*-0x174c,a8={'inputTokens':a4,'outputTokens':a5,'cacheReadTokens':a6,'cacheWriteTokens':a7};return a3!=null?{...a8,'costUsd':a3,'costSource':aO(0x2fb)}:{...a8,'costUsd':g(a8,this[aO(0x290)]),'costSource':'computed'};}[ao(0x29d)](a2){const aP=ao;return{'message':this['finalMes'+aP(0x2a7)],'usage':this[aP(0x373)+'ge'],'exitCode':a2['exitCode'],'sessionId':this[aP(0x2f4)+'d'],'aborted':a2[aP(0x314)]||void(0x47c+-0x1ac4+0x1648),'abortReason':a2[aP(0x314)]?a2[aP(0x30d)+aP(0x264)]:void(0x1c69+0x1*-0xb47+0x33*-0x56)};}};function M(a2,a3,a4){const aQ=ao;let a5=['-p',a2,aQ(0x34f)+aQ(0x3fe),aQ(0x26d)+'son',aQ(0x2d2)+'e'];return a3['model']&&a5[aQ(0x2e8)](aQ(0x2d6),a3[aQ(0x290)]),a3['allowedT'+aQ(0x3e7)]?.[aQ(0x1f6)]&&a5[aQ(0x2e8)](aQ(0x1e2)+aQ(0x38c),a3[aQ(0x219)+aQ(0x3e7)][aQ(0x2f9)](',')),a4&&a5['push']('--resume',a4),a3[aQ(0x32e)+'gs']?.[aQ(0x2f0)](a6=>a6[aQ(0x38b)+'th'](aQ(0x2f3)+aQ(0x1da)+'e'))||a5[aQ(0x2e8)](aQ(0x2f3)+aQ(0x1da)+'e',aQ(0x251)+aQ(0x347)),a3[aQ(0x32e)+'gs']?.[aQ(0x1f6)]&&a5['push'](...a3['extraFla'+'gs']),a5;}var y=class{constructor(a2=ao(0x274)){const aR=ao;this[aR(0x247)]=a2;}[ao(0x247)];['id']=ao(0x3e9)+'ode';[ao(0x380)+'ame']=ao(0x385)+ao(0x332);async[ao(0x26f)](){const aS=ao;try{let {stdout:a2,exitCode:a3}=await e(this[aS(0x247)],[aS(0x3ea)+'n'],{'reject':!(-0xc91*-0x2+-0x1*-0xb11+0xe2*-0x29),'timeout':0x2710,'windowsHide':!(0x24e9+0xd*0x114+-0x32ed)});if(a3===-0x16*-0x55+0x141d+0x1b6b*-0x1)return{'installed':!(0x9cb+0x23fb+-0x2dc6),'version':a2[aS(0x3ce)](),'installHint':x};}catch{}return{'installed':!(0xc3a+-0x2111+0x5c*0x3a),'installHint':x};}[ao(0x3f2)](a2,a3){return f({'command':this['bin'],'args':M(a2,a3),'opts':a3,'parser':new E(a3['model']),'installHint':x});}[ao(0x309)](a2,a3,a4){const aT=ao;return f({'command':this[aT(0x247)],'args':M(a3,a4,a2),'opts':a4,'parser':new E(a4[aT(0x290)]),'installHint':x});}};import l from'fs';import n from'os';import o from'path';import{execa as p}from'execa';var C=ao(0x3fc)+ao(0x299)+ao(0x1ff)+ao(0x2f6)+ao(0x2d8)+'npm\x20inst'+ao(0x30a)+ao(0x23d)+ao(0x3f8)+ao(0x353)+ao(0x3fb)+'in`.\x20See'+ao(0x3dc)+ao(0x1e7)+ao(0x211)+'ai/codex',S=class{constructor(a2){const aU=ao;this[aU(0x290)]=a2;}['model'];[ao(0x339)];['finalMes'+ao(0x2a7)]='';[ao(0x27b)]=m();[ao(0x1ef)](a2){const aV=ao;let a3=T(a2);if(!a3)return[];let a4=[],a5=a3['type'];if(a5===aV(0x3b1)+aV(0x3a6)&&typeof a3['thread_i'+'d']=='string')return this[aV(0x339)]=a3['thread_i'+'d'],a4;if(a5===aV(0x2a9)+aV(0x390)){let a6=a3['item'];return a6&&a4[aV(0x2e8)](...this[aV(0x1ca)](a6)),a4;}if(a5==='turn.com'+aV(0x390)){let a7=a3[aV(0x1e6)];if(a7){let a8=this['mapUsage'](a7);this[aV(0x20f)+'te'](a8),a4[aV(0x2e8)]({'type':aV(0x1e6),'usage':a8,'cumulative':!(0x4*-0x99a+-0x46*-0x79+-0x1*-0x553)});}return a4;}if(a5==='error'||a5===aV(0x35e)+aV(0x2c4)){let a9=a3['message']??a3[aV(0x21a)]?.['message']??aV(0x22d)+'ported\x20a'+aV(0x1cc);a4['push']({'type':aV(0x21a),'message':a9,'fatal':!(0xc9*0x10+-0x1*-0x8b3+0x1543*-0x1)});}return a4;}['mapItem'](a2){const aW=ao;let a3=a2['type'];return a3==='agent_me'+aW(0x2ec)&&typeof a2[aW(0x27f)]==aW(0x386)?(this['finalMes'+aW(0x2a7)]=a2[aW(0x27f)],[{'type':aW(0x35d),'role':aW(0x272)+'t','text':a2['text']}]):a3===aW(0x2ca)+'executio'+'n'||a3===aW(0x3c6)+aW(0x20b)||a3==='mcp_tool'+aW(0x20b)?[{'type':aW(0x20a)+'l','name':String(a2['command']??a2[aW(0x33b)]??a3),'input':a2[aW(0x2a2)+'s']??a2[aW(0x254)],'id':typeof a2['id']==aW(0x386)?a2['id']:void(-0x1*0x1f67+0x1ce+-0x1*-0x1d99)}]:[];}['mapUsage'](a2){const aX=ao;let a3=a2['cached_i'+aX(0x2e3)+aX(0x1d4)]??-0x145d+0x1699*-0x1+-0x157b*-0x2,a4=Math[aX(0x209)](0xed*-0x1b+-0x1ae6+0x33e5,(a2[aX(0x334)+aX(0x283)]??0x747+-0x1515+0xdce)-a3),a5=(a2[aX(0x20c)+aX(0x318)]??0x1e95+-0x125a+-0xc3b)+(a2['reasonin'+aX(0x24d)+'_tokens']??0x16b7+-0xef*-0x2+-0x1895),a6={'inputTokens':a4,'outputTokens':a5,'cacheReadTokens':a3};return{...a6,'costUsd':g(a6,this[aX(0x290)]),'costSource':'computed'};}['accumula'+'te'](a2){const aY=ao;this[aY(0x27b)]={'inputTokens':this[aY(0x27b)]['inputTok'+aY(0x1d4)]+a2[aY(0x2d4)+aY(0x1d4)],'outputTokens':this['acc']['outputTo'+'kens']+a2[aY(0x2b4)+aY(0x283)],'cacheReadTokens':(this['acc'][aY(0x2bc)+aY(0x325)]??0x5d5*0x4+0xe33*0x1+-0x2587)+(a2[aY(0x2bc)+aY(0x325)]??-0x11ed+0x10c*0x1+0x10e1*0x1),'cacheWriteTokens':(this[aY(0x27b)][aY(0x330)+aY(0x315)]??0x1eb8+0xa3e+-0x28f6)+(a2[aY(0x330)+aY(0x315)]??-0x2026*-0x1+-0x4c*0x5f+-0x3f2),'costUsd':this[aY(0x27b)][aY(0x3d8)]+a2[aY(0x3d8)],'costSource':aY(0x23a)};}[ao(0x29d)](a2){const aZ=ao;return{'message':this['finalMes'+aZ(0x2a7)],'usage':this['acc'],'exitCode':a2['exitCode'],'sessionId':this[aZ(0x339)],'aborted':a2[aZ(0x314)]||void(-0x1*-0x18da+-0x17*0x11+0x7*-0x355),'abortReason':a2[aZ(0x314)]?a2['abortRea'+aZ(0x264)]:void(0x254*0x8+0x8f*-0x9+-0x3b*0x3b)};}};function oe(a2){const b0=ao;if(a2==null)return;if(typeof a2=='string')return a2;let a3=o[b0(0x2f9)](n[b0(0x271)](),b0(0x24c)+b0(0x2cc)+b0(0x39b)+Date[b0(0x3b0)]()+b0(0x3d1));return l[b0(0x2dc)+b0(0x400)](a3,JSON[b0(0x3ff)+'y'](a2),b0(0x2ce)),a3;}function D(a2,a3,a4){const b1=ao;let a5=[b1(0x1c3)];a4&&a5[b1(0x2e8)](b1(0x309),a4),a5[b1(0x2e8)](b1(0x31f)),a3[b1(0x32e)+'gs']?.['some'](a7=>a7['startsWi'+'th'](b1(0x1f8)+'x'))||a5[b1(0x2e8)](b1(0x1f8)+'x','workspac'+b1(0x360)),a3['model']&&a5[b1(0x2e8)](b1(0x2d6),a3['model']);let a6=oe(a3[b1(0x342)+b1(0x3be)]);return a6&&a5[b1(0x2e8)](b1(0x34f)+b1(0x1ec),a6),a3[b1(0x32e)+'gs']?.['length']&&a5[b1(0x2e8)](...a3[b1(0x32e)+'gs']),a5[b1(0x2e8)](a2),a5;}var b=class{constructor(a2=ao(0x294)){const b2=ao;this[b2(0x247)]=a2;}[ao(0x247)];['id']=ao(0x294);[ao(0x380)+ao(0x1ce)]=ao(0x32a)+'odex';async[ao(0x26f)](){const b3=ao;try{let {stdout:a2,exitCode:a3}=await p(this[b3(0x247)],[b3(0x3ea)+'n'],{'reject':!(-0xc0+-0x1a09+0xd65*0x2),'timeout':0x2710,'windowsHide':!(0x36d*-0xa+0x2f*-0xa1+0x11*0x3c1)});if(a3===-0x174f+-0x1*-0x232d+-0xd9*0xe)return{'installed':!(-0x1a2*-0xd+-0x1665+-0x1*-0x12b),'version':a2['trim'](),'installHint':C};}catch{}return{'installed':!(-0x236b*0x1+-0x3ab*0x7+0x3d19*0x1),'installHint':C};}[ao(0x3f2)](a2,a3){const b4=ao;return f({'command':this[b4(0x247)],'args':D(a2,a3),'opts':a3,'parser':new S(a3[b4(0x290)]),'installHint':C});}[ao(0x309)](a2,a3,a4){const b5=ao;return f({'command':this[b5(0x247)],'args':D(a3,a4,a2),'opts':a4,'parser':new S(a4['model']),'installHint':C});}};function ae(a2){const b6=ao;let a3=new Map(),a4=a2?.[b6(0x1d9)][b6(0x3e9)+b6(0x332)]?.['bin'],a5=a2?.[b6(0x1d9)][b6(0x294)]?.[b6(0x247)],a6=[new y(a4),new b(a5)];for(let a7 of a6)a3['set'](a7['id'],a7);return a3;}function ie(a2,a3){const b7=ao;let a4=a2['get'](a3);if(!a4)throw new Error(b7(0x3d5)+'agent\x20\x22'+a3+(b7(0x36c)+b7(0x2a6))+[...a2['keys']()]['join'](',\x20'));return a4;}async function ue(a2){const b8=ao;return Promise[b8(0x30b)]([...a2[b8(0x265)]()]['map'](async a3=>({'adapter':a3,'detect':await a3['detect']()})));}function c(b,d){b=b-(0x1f6*0x2+-0x101b+0xdf1);const e=a();let f=e[b];if(c['jFcKVp']===undefined){var g=function(l){const m='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let n='',o='';for(let p=-0x14eb+-0x5*-0x70e+-0xe5b,q,r,s=0x1169+0xd*0x3f+-0xa4e*0x2;r=l['charAt'](s++);~r&&(q=p%(-0x9b8*0x3+-0x3*0x13c+0x20e0)?q*(0x1111+-0x3d*-0x8b+-0x31f0)+r:r,p++%(-0x3*-0xa3a+-0xf03+0x1*-0xfa7))?n+=String['fromCharCode'](-0x1fc2+0x1299*-0x2+-0x17d*-0x2f&q>>(-(-0xaa3*-0x3+0xdf2+-0x2dd9)*p&-0x1*0x19db+-0x1fb+0x1bdc)):0xec4+0x2217+-0x3*0x1049){r=m['indexOf'](r);}for(let t=0x7*0x8a+0x178d+-0x1b53,u=n['length'];t<u;t++){o+='%'+('00'+n['charCodeAt'](t)['toString'](0x649+0x17a0+-0x1dd9))['slice'](-(-0x1*0x180f+-0x1*-0x67f+-0x1a*-0xad));}return decodeURIComponent(o);};c['RhsgcA']=g,c['ehVVqu']={},c['jFcKVp']=!![];}const h=e[0xb67*0x1+0x1332+-0x1e99],i=b+h,j=c['ehVVqu'][i];return!j?(f=c['RhsgcA'](f),c['ehVVqu'][i]=f):f=j,f;}import s from'fs';function a(){const bp=['ihbYB2r1y2K','Cgf0Aca9id8','DgLVBK1Zlca','C29U','DMfSDwvZ','zw52','icaGicaGiem','A2v5cIaGica','zZOk','BM9UBMvNyxq','y29ZDf9ZB3u','BNqSig5VDca','C3rYzwfTlwO','DgLTzw91De0','zgv0zwn0','C19Hz2vUDca','Dg1WzgLY','yxnZAxn0yw4','ywjVCNq','y2XHDwrL','Agv4','zw51Bq','C3rVCMu','id49id8Gqu4','icaGiebTB2q','B24G','ywnJ','ruzbvuXuicC','Aw5HDgvK','y29ZDf91C2q','Dgv4Da','y2XPl2v2ywW','x3vZzcKSmcK','CgfZCYCPlca','A2vUCW','kfnvtsHVDxq','C2HHmJu2','BwfWvxnHz2u','yxrO','zgf5','u1vnkg1Vzgu','lcbazxHPDem','zdOGja','C2LUy2u','C29UlcbaC2u','zMzLCIbVDMu','Df9WyxrOid0','Bw9KzwW','D2LUCW','y2fJAgvFy3i','zxmScIaGica','y29KzxG','CMfJzv9Pza','ienpquXfu0m','yxzNq29ZDfu','tgLZDgvUzxi','ssbUB3qGzM8','kfDPBMrVD3m','zNLFzxHPDcW','zcWGqgnHy2G','zMLUywXPEMu','CYWXldeWkq','igf2z0nVC3q','Df9WyxrOica','vcGQksbbuYa','yxjNDw1LBNq','B2jQzwn0','zY50CW','zwWScIaGica','ywjSztOG','C2fNzq','CgfYC2vY','AxrLBs5JB20','DhKSihjLD2e','icaGq09bteu','CMv3yxjK','icaGicbwquW','yxjNCW','DcbptIbYDw4','u0nfkefwrYG','icbZzxnZAw8','C2qPldaPiee','lcbTB2rLBcW','B3v0Chv0vg8','icbjtLrfr0u','CMvZDw1Lu2u','ieftigmGrLi','sw52ywXPzca','ifDirvjfia','CMvWB3j0','DxjHDgLVBL8','y2fJAgvszwe','rLjptsbYDw4','C2vZC2LVBL8','AxzL','y3DK','BgKGy29UzMK','zxjMBg93','ChjVAMvJDfa','BgvK','B3b0Aw9UywW','u0vmrunuiem','B2TLBNmGsu4','ChjHz21H','ywKVy2XHDwq','y29TBwfUzf8','DMvYAwz5x2u','BgKTy29KzxG','lcaWksbbuYa','DxrMoa','qvvmvcaWlaO','ywrHChrLCG','Dw5RBM93BIC','ls12zxjIB3m','zv93CML0zsa','Aw5WDxruB2S','icb0CYaGica','ls1TB2rLBa','icbpuKrfuIa','D2L0AdOkica','ChqSiebYywm','B2rLienmssa','C2GGAw4GDgG','D3jPDgvgAwW','yNvKz2v0','icbTB2rLBca','CMf0Aw9Utxm','B25fDMvUDa','icaGigfIB3i','zw50lcbTB2q','BNb1Df90B2S','DxjS','ieforca','C2v0sg91CNm','ks4GvgHPCYa','ChvZAa','BMnLlIbtzwu','DgHYB3bPyY0','rgfPBhKGy2e','C3nHz2u','zhHFCNvUC18','zgLKqNjLywm','nta3mdCYnfbouNnPDG','C29Tzq','m29mrMfADG','ywDLBNqSiha','ls1WzxjTAxm','C2vZC2LVBKK','zgf0yq','DgfSBcbPDca','zw50AwnHDgu','v0HfuKuGDhm','AM9PBG','BgL0zxjHBa','y2XP','BwuGpsaNCge','qKXfieLgie4','lcDMywLSjYK','idaScIaGica','vu5ukcOPiee','zxjsDw5vC2q','y29UDgv4Da','C3rtB3vYy2u','vevhrviGtK8','C3LZDgvT','ruXfq1qGywC','BYHYDw5Zkq','De1Z','CMvZDw1L','ywXSic1Niea','ywXS','DgfZA19JBge','ywjVCNrszwe','C3bHD25gywK','ywnJzxnZihy','zs1JB2rLcLq','Dg9gAxHLza','Dc4GvgHPCYa','CgvYuNvUt3y','ywjVCNrLza','DgvuB2TLBNm','qYaVihrLCM0','AxmGysbJCMe','B2TLBNm','tfqGmcWkica','vevyva','x3rVA2vUCYW','vevyvcaGica','CfzHBhvL','x3rVA2vUCW','ls1QC29U','q2XHC3mScIa','iefercbdt0W','C3bLBMrtAw4','otKZnZzwC21cyvu','t1qGrvHju1q','zfrVA2vUCW','icaGicaGy28','zcWkicaGica','B3v0Chv0','B3b0CW','t3bLBKfjiem','zMLUywXnzxm','CM9Qzwn0x3a','B2rHEsa+psa','zxH0CMfgBge','icaGifjfquW','y2fJAgvxCMK','su5uruDfuIa','B2rL','AMvJDfbHDgG','Aw5WDxrFDg8','CYWkicaGica','Aw5PDa','C3vIC3rYkhq','uK9vucbcwsa','DgHYzwfKswq','C3bLBMruB2q','BMfTzq','icaTia','r0vsie5pvca','vu0OB3v0y28','l2rVy3mUy2W','CNvUCW','AgfZ','B3v0Chv0u2m','B25vC2fNzq','ywDLBNq','yxvKzs5JB20','C3rKzxjY','AxrZ','uKvbveuGvee','rcbWCM9Qzwm','zMLYC3qTCge','y29Kzq','CgfZC2vZ','zgLNzxn0','wfqGicaGtK8','ls1VDxrWDxq','v0HfuKuG','Dg90ywXFy28','B3v0y29Tzsa','BIbYDw4Gygm','cIaGicaGica','mZu4ndKYndrLuMvvDwW','ywDLBNqPoWO','tK9uie5vteW','zxjYAwrL','zuLKlcbaD28','CgvUC2L0EsW','icaGicbdt0e','icaGicaGieK','BwvZC2fNzq','DhvYBI5MywK','CMLMEuv4Axq','zs13CML0zq','y29ZDfnVDxi','laOGicaGica','lcbaChjVBxa','BMCGyw55ig8','DhLuAw1LB3u','ruzbvuXuida','t0fmrvndrsG','Dg9ju09tDhi','AwDUywWG','DgLVBL9TCYK','ywrFAw5WDxq','iI4GqxzHAwW','AhjLzG','C3rFDxnK','DgfZA1r5Cgu','BsbPBNn0ywW','BNmODhmPoWO','teWGrevgqvu','zMLUywXvC2e','CMvJB3jK','vxnKlaOGica','ywjVCNrFCMu','qhrHC2TdBge','igLKicaGica','Dw5PB24','icaGicbTB2q','yxr0zw1WDa','y29Tzsa9icC','qLKGA2v5ieq','zxHPC3rZu3K','BwfW','zgLZCgXHEu4','ChjVAMvJDa','ywjSzv9PBMy','Dw5RBM93BG','ru5pru5u','q2XHDwrLiem','C3rYAw5N','icaGicaGica','C3vIDhLWzq','ieLgie5pvca','uKLnqvjzieS','C3rHCNrZv2K','zfrVB2XZ','C3rHy2SGyNu','Aw5N','y2uSigv4Axq','CgXLDgvK','Df90B2TLBNm','Chv0x3rVA2u','cIaGica','qKXfihj1BNm','Cg9ZAxrPDMu','BwLNCMf0zq','y29UzMLN','icaGigLUChu','veuGsu5ervG','icaGicaGigm','lxnJAgvTys0','zxHPDenVzgu','x2HHC2GGica','D29U','id0Gj3jHy2u','CgvYC2LZDa','BxmPlcaWksa','rufursbjtKq','su5uruDfuG','ienpvu5ukcO','CYCSj2zHAwW','DgfYDgvK','yM9VBgvHBG','CcbYzwfJAgu','C3rHy2SGB3y','Aw50','CgfYC2u','DgG6cIaGBNa','yM9YDgvKlca','ChjLCgfYzq','DMvYAwz5rxG','BM93','DgHYzwfKlNm','yxnL','vxnK','BNmGieLoveu','C2XPy2u','tLvmtcberuy','quXurviGvee','BwTKAxjtEw4','icaGicaGq08','ufjbr01bihq','icaGqgnVC3q','CgvYuNvUq2e','ierfrKfvtfq','AgvTyq','rvGGsuyGtK8','ig5VihvZywi','icaGienpvu4','zc4Gsw5ZDge','DMvYAwzPzwq','Aw9SyxrPB24','BNmPldaPiee','zNvUy3rPB24','uKvbta','lMfPzM9Yy2u','CMqPcIaGica','DhmSiebHz2u','icaGicaGywi','DgLTzw91Da','ieftihDPBNm','DhjPBq','uIbot1qGtLu','EwLUzYbHz2u','lMPZB24','t00GCNvUCYa','DgnVBwuGsu4','Bw9Kzsa9ifC','vw5RBM93BIa','vu1oia','B2rLBa','y29ZDfvZza','icbJywnOzv8','Dgf0CW','BcaTzYbayw4','igH0DhbZoI8','EhqSiebWCM8','B24Gifrfwfq','Bxb0x2HHC2G','ywDLBNqSig0','B3n0x3nVDxi','ksbbuYbYDw4','z2v0','C2LNBMfS','q0uOqvzhkgq','icbWCM9TChq','B29SCW','AgvFD3jPDgu','y2XHDwrLlwm','ls12zxjZAw8','CM9Y','DgvKicaGica','qg91Dhb1Dfq','CMvHzezPBgu','jYKSidaPiee','q09btevtq0u','CMvZDwX0','CNvU','ksWGmcKGqvm','DgfZA0nSyxm','DhmGt04GCNu','zw50laOGica','zgvMyxvSDa','B2rLEaPuAgu','DhLWzq','BgKU','B2rLEcbSB2C','q29KzxGGq0W','vuvtcIaGica','lwzVCM1HDa','C3rYAw5NAwy','zvn5BMm','zgfPBhLdyxa','zvDYAxrLlaO','zxHLyW','ihDPDgGGygm','vcbovuXmieq','tLrpihj1BNm','icbWCM9Qzwm','l2nSyxvKzs0','CNjVCJOG','BwfWsxrLBq','AxnbCNjHEq','BIbLCNjVCG','zsa9id8','yw1L','z0nVC3rvC2q','x21Z','qvzhkgr1CMe','uNvUigfIB3i','mtuYmZC5odb1zMvqufK','zw5Z','CMfJzxm','C3mNksWGmcK','Aw5Hy3rPDMK','zxHPDgvKia','ywDLBNrZ','C2LVBI1TB2q','C3rKB3v0','C3nPB25jza','uYbYDw5ZicG','zw50CMLLCW','igLKEf9YDw4','yNLuyxnR','ChjVAMvJDf8','ls1HBgXVD2u','tKnsru1ftLq','AgvUigf1DgG','zw5KC1DPDgG','DxnHz2u','l2DPDgH1yI4','C29YDa','EgL0','tsHPBNb1Df8','Aw5WDxq','lxnJAgvTyq','mcKGqvmGyxy','khjVB3qP','B25mAw5L','yxj0lG','su5trvjuieK','zsb1BMrLCMW','C3rYAwn0','otb2tg1owLy','mJi3mfrrqKPjwa','BgvUz3rO','CMnLicaGveu','ls1Zyw5KyM8','Dg9tDhjPBMC','DgfZA190Exa','zwf0Aw9Ux2K','Df91C2qSigm','DhmGpJ0GpW','uK9nihj1BNm','Dw5KlIbjBNm','Dg9Rzw5ZksW','ChjVBxb0','t04GCNvUCYG','vxnKlcbay28','mtfwwxvKs1y','mcKGqvmGAw4','BgKUy29UzMK','icaGie5pvca','Df9WyxrOktS','Bwf4','Dg9VBf9JywW','x2nHBgW','B3v0Chv0x3q','rvnd','Bw9Kzq','ywnJDw11Bge','mtbhzuTzCMq','y29Tl29Wzw4','C3vJy2vZC1m','ywrKrxzLBNq','icaGktSkica','cIaGicaGiey','y29UDhjVBc0','yNjLywnOzwq','Chv0vg9Rzw4','ywXSB3DLzfq','zxjYB3i','icaGiezst00','mcKGqvmGCge','ihzLCMLMAwu','icbTB2rLBcW','rvKGqvvut0K','CguScIaGica','u3rYzwfTigu','u3LUyW','BwuSihzLCMK','zaOGicaGica','mZq1nJKXu1vbtunh','icaGicaGq1i','icbay29UDgu','icaGkhrZlca','D2LUuMf0zq','uYbYywnLCYW','x21Zlcb0yxm','DgvKigj5ihm','q29KzxGGCMu','uYbJB3n0vxm','Aw5JBhvKzxm','Dg9mB3DLCKm','zw5MB3jJzxi','A2LUza','yxzNrhvYyxq','Df91C2qPlca','ihDPDgHVDxq','ieftigTLEsW','C3mSieb0yxm','C2HVCNrnzxm','lcb0yxnRx2m','y29TChv0zwq','DxrWDxqU','Dw5RBM93BIa','B3bLBMfPl2m','cIaGicaGieC','Cgf0Aa','iebYzxDHCMq','lcbVDxrWDxq','zwfKlcbJywm','BNvTyMvY','x2nVzguSige','Aw9Utxmkica','mte0mZy4mtDSDxvuq1q','yMLU','yxrOlcbWCM8','mtq5mtzNvxjXr3O','zhvYyxrPB24','DeHHC2GSiea','ywLMB3jJzwm','z19VDxrWDxq','cIaGicaGiem','B3v0y29Tzq','ieftihbHC3m','ywnJzxb0rwq','ChjVCgvUC2K','y2HLyxbLC3q','y29TBwfUza','tevtq0uOu1u','icbHz2vUDca','id49id8','icaGicbJB3m','yxjYyxK','zsWGB3v0y28','zY5QC29U','y3vTDwXHDgK','ChjLzMXPz2G','CgfKu3rHCNq','tsHJB3n0x3u','u1vnkgnVC3q'];a=function(){return bp;};return a();}import t from'path';import{pathToFileURL as u}from'url';import{ZodError as v}from'zod';import G from'path';import L from'env-paths';var P=L(ao(0x24c)+'li',{'suffix':''});function F(){const b9=ao;return P[b9(0x397)];}function $(){const ba=ao;return G['join'](P[ba(0x2f5)],'usage.db');}import{z as N}from'zod';var pe=N[ao(0x2a3)]({'maxCostPerRunUsd':N['number']()['positive']()[ao(0x2c5)](),'dailyCapUsd':N['number']()[ao(0x395)]()['optional']()})[ao(0x1f3)](),le=N[ao(0x2a3)]({'key':N[ao(0x386)](),'agent':N[ao(0x386)](),'model':N['string'](),'tier':N[ao(0x379)]([N['literal'](0x1856*-0x1+0x21d*-0x4+0x20cb),N['literal'](-0x1812+0x2352+-0xb3e),N[ao(0x2fa)](0x118*0xd+0x2699+-0x34ce)]),'price':N['object']({'input':N[ao(0x243)]()[ao(0x26a)+ao(0x2bf)](),'output':N['number']()['nonnegat'+ao(0x2bf)]()})})['strict'](),ge=N[ao(0x2a3)]({'enabled':N[ao(0x3a7)]()['default'](!(0x3a1+0x24c5*0x1+-0x2866)),'prefer':N[ao(0x259)](N[ao(0x386)]())['default']([]),'only':N[ao(0x259)](N[ao(0x386)]())[ao(0x2c5)](),'models':N[ao(0x259)](le)[ao(0x2c5)]()})[ao(0x1f3)](),me=N['object']({'enabled':N[ao(0x3a7)]()['default'](!(0x2*0x124f+-0xa6*-0xd+-0x2d0c)),'command':N[ao(0x386)]()['optional'](),'timeoutMs':N[ao(0x243)]()['int']()[ao(0x395)]()[ao(0x3f7)](0x65ebb+-0x4f9d9+0x32efe)})['strict'](),fe=N[ao(0x2a3)]({'enabled':N['boolean']()[ao(0x3f7)](!(0x2593+0xa2a+-0x2fbc)),'maxAttempts':N['number']()['int']()[ao(0x395)]()['default'](0x57*0x28+0x1*-0x1db7+0x76*0x23),'escalate':N['boolean']()[ao(0x3f7)](!(-0x13*0x10d+0x13fe+-0x1*0x7))})[ao(0x1f3)](),he=N[ao(0x2a3)]({'agents':N[ao(0x259)](N[ao(0x386)]())[ao(0x2c5)](),'select':N[ao(0x276)]([ao(0x253),'fastest',ao(0x34a)+'ss'])[ao(0x3f7)](ao(0x253)),'keepWorktrees':N[ao(0x3a7)]()['default'](!(0x83*-0x11+0x25a1+-0x1ced)),'linkPaths':N[ao(0x259)](N[ao(0x386)]())[ao(0x2c5)]()})['strict'](),ye=N[ao(0x2a3)]({'weights':N[ao(0x2a3)]({'capability':N[ao(0x243)]()[ao(0x26a)+'ive']()[ao(0x3f7)](0xc72+0x2*0x295+0xa1*-0x1c+0.7),'cost':N[ao(0x243)]()[ao(0x26a)+'ive']()['default'](-0x2538+-0xb84+0x30bc+0.2),'speed':N['number']()['nonnegat'+ao(0x2bf)]()['default'](-0x21f*0x2+-0x1*-0x201f+-0x1be1+0.1)})[ao(0x1f3)]()['default']({}),'privatePseudocount':N['number']()['positive']()[ao(0x3f7)](-0x1033+0x93+0xfa5),'explore':N[ao(0x3a7)]()[ao(0x3f7)](!(-0x1f38+-0x5*-0x509+0x9*0xac))})[ao(0x1f3)](),be=N[ao(0x2a3)]({'dir':N[ao(0x386)]()['default'](ao(0x3c8)+ao(0x280)+'s'),'models':N['array'](N[ao(0x386)]())['optional']()})['strict'](),Re=N[ao(0x2a3)]({'enabled':N[ao(0x3a7)]()['default'](!(0x10fe+-0x2*-0x88a+-0x2211)),'endpoint':N['string']()[ao(0x2e4)]()[ao(0x2c5)]()})[ao(0x1f3)](),Te=N['object']({'defaultFlags':N[ao(0x259)](N['string']())[ao(0x3f7)]([]),'model':N[ao(0x386)]()['optional'](),'bin':N['string']()[ao(0x2c5)](),'allowedTools':N[ao(0x259)](N[ao(0x386)]())['optional']()})[ao(0x1f3)](),w=N[ao(0x2a3)]({'agents':N[ao(0x374)](N[ao(0x386)](),Te)[ao(0x3f7)]({}),'defaultAgent':N['string']()[ao(0x3f7)](ao(0x3e9)+'ode'),'routing':ge['default']({}),'verify':me[ao(0x3f7)]({}),'heal':fe[ao(0x3f7)]({}),'race':he[ao(0x3f7)]({}),'advise':ye[ao(0x3f7)]({}),'eval':be[ao(0x3f7)]({}),'telemetry':Re['default']({}),'budgets':pe['default']({}),'timeoutMs':N['number']()[ao(0x3aa)]()[ao(0x395)]()[ao(0x3f7)](0xffc30+0x1*0x7be31+0x1*-0xe92a1),'inactivityTimeoutMs':N['number']()['int']()['positive']()['default'](0x1*0x1bf1f+-0x3b4*-0x5+-0x31d*-0x1)})[ao(0x1f3)](),Se=[ao(0x24c)+ao(0x206)+'g.json',ao(0x24c)+ao(0x206)+ao(0x2a4)];function U(a2,a3){const bb=ao;if(Array[bb(0x1cb)](a2)||Array['isArray'](a3)||typeof a2!=bb(0x2a3)||a2==null)return a3??a2;let a4={...a2};for(let [a5,a6]of Object[bb(0x1de)](a3)){if(a6===void(-0x47*-0x59+-0xb2+0x7ff*-0x3))continue;let a7=a4[a5];a7&&typeof a7==bb(0x2a3)&&!Array[bb(0x1cb)](a7)&&a6&&typeof a6==bb(0x2a3)&&!Array['isArray'](a6)?a4[a5]=U(a7,a6):a4[a5]=a6;}return a4;}async function W(a2){const bc=ao;if(a2[bc(0x1e5)](bc(0x3d1)))return JSON[bc(0x3ab)](s[bc(0x3ee)+bc(0x222)](a2,bc(0x2ce)));let a3=await import(u(a2)[bc(0x36d)]);return a3[bc(0x3f7)]??a3;}function z(a2,a3){const bd=ao;for(let a4 of a3){let a5=t[bd(0x2f9)](a2,a4);if(s[bd(0x37e)+'nc'](a5))return a5;}}async function ve(a2=process[ao(0x2c0)]()){const bf=ao;let a3=[],a4={},a5=z(F(),[bf(0x24c)+bf(0x206)+bf(0x25b),bf(0x24c)+bf(0x206)+'g.ts']);a5&&(a4=U(a4,await W(a5)),a3[bf(0x2e8)](a5));let a6=z(a2,Se);a6&&(a4=U(a4,await W(a6)),a3[bf(0x2e8)](a6));try{return{'config':w['parse'](a4),'sources':a3};}catch(a7){if(a7 instanceof v){let a8=a7['issues'][bf(0x37f)](a9=>bf(0x33c)+(a9[bf(0x23f)][bf(0x2f9)]('.')||bf(0x1ee))+':\x20'+a9['message'])[bf(0x2f9)]('\x0a');throw new Error(bf(0x2b8)+bf(0x24c)+bf(0x2c1)+bf(0x269)+a8);}throw a7;}}function Ae(a2,a3){const bg=ao;return a2[bg(0x1d9)][a3]??{'defaultFlags':[]};}import X from'fs';import a0 from'path';import a1 from'better-sqlite3';var _=class{['db'];constructor(a2=$()){const bh=ao;X[bh(0x3b8)+'c'](a0['dirname'](a2),{'recursive':!(0x4*0x201+0x4*0x425+-0x4*0x626)}),this['db']=new a1(a2),this['db'][bh(0x2c8)]('journal_'+bh(0x3d4)+'AL'),this[bh(0x396)]();}[ao(0x396)](){const bi=ao;this['db'][bi(0x1c3)](bi(0x24e)+bi(0x348)+bi(0x2fd)+bi(0x324)+bi(0x1dd)+'\x0a\x20\x20\x20\x20\x20\x20\x20'+bi(0x378)+bi(0x35c)+'NTEGER\x20P'+bi(0x38a)+bi(0x21f)+bi(0x1e3)+bi(0x362)+bi(0x2d5)+bi(0x387)+bi(0x31c)+'NOT\x20NULL'+bi(0x362)+bi(0x256)+bi(0x387)+bi(0x31c)+'NOT\x20NULL'+bi(0x362)+bi(0x1c7)+bi(0x2a0)+bi(0x31c)+bi(0x357)+',\x0a\x20\x20\x20\x20\x20\x20'+bi(0x3e6)+bi(0x39d)+'TEXT\x20\x20\x20\x20'+'NOT\x20NULL'+bi(0x362)+bi(0x2de)+bi(0x387)+'TEXT,\x0a\x20\x20'+'\x20\x20\x20\x20\x20\x20in'+bi(0x392)+bi(0x3b4)+bi(0x33d)+'NULL\x20DEF'+bi(0x2cf)+bi(0x387)+bi(0x20c)+bi(0x2c7)+bi(0x304)+bi(0x1c5)+bi(0x366)+',\x0a\x20\x20\x20\x20\x20\x20'+bi(0x3d9)+'read\x20\x20\x20\x20'+'INTEGER\x20'+bi(0x357)+bi(0x3bd)+bi(0x2ff)+'\x20\x20\x20\x20cach'+bi(0x2d3)+bi(0x2b5)+bi(0x3cf)+'LL\x20DEFAU'+bi(0x319)+bi(0x326)+'st_usd\x20\x20'+bi(0x32f)+bi(0x207)+bi(0x3b6)+bi(0x2cf)+bi(0x387)+bi(0x26b)+bi(0x1f7)+bi(0x34e)+bi(0x1c5)+bi(0x27c)+bi(0x2d1)+',\x0a\x20\x20\x20\x20\x20\x20'+'\x20\x20exit_c'+'ode\x20\x20\x20\x20\x20'+bi(0x331)+bi(0x357)+bi(0x3bd)+bi(0x2ff)+bi(0x2e1)+bi(0x3ec)+'\x20\x20INTEGE'+bi(0x3cf)+bi(0x372)+bi(0x319)+bi(0x3cb)+'ort_reas'+bi(0x3de)+bi(0x362)+bi(0x2b1)+'n_id\x20\x20\x20\x20'+'TEXT\x0a\x20\x20\x20'+bi(0x214)+'\x20\x20\x20\x20CREA'+bi(0x399)+bi(0x389)+'EXISTS\x20i'+bi(0x2ed)+bi(0x3f5)+bi(0x371)+'\x20\x20\x20\x20\x20\x20CR'+bi(0x3a2)+bi(0x3bf)+'T\x20EXISTS'+bi(0x1df)+bi(0x270)+bi(0x202)+bi(0x356)+bi(0x226)+bi(0x3a2)+bi(0x3bf)+'T\x20EXISTS'+bi(0x1df)+'s_projec'+bi(0x2af)+'s(projec'+bi(0x208)+bi(0x393));let a2=new Set(this['db'][bi(0x3ae)](bi(0x3ba)+bi(0x382)+bi(0x307))[bi(0x30b)]()[bi(0x37f)](a4=>a4[bi(0x33b)])),a3=[[bi(0x20e),bi(0x31a)],['outcome','TEXT'],[bi(0x2cb)+bi(0x1e9),bi(0x3a3)],['attempt',bi(0x3a3)],[bi(0x295),bi(0x31a)],[bi(0x39e),bi(0x331)+bi(0x357)+bi(0x3bd)+'\x200'],[bi(0x24a)+bi(0x1d0),bi(0x3a3)],[bi(0x30c)+'ss','TEXT'],[bi(0x1fa)+'e',bi(0x31a)],[bi(0x302),bi(0x31a)],[bi(0x252)+'ty',bi(0x3c7)],[bi(0x2ac),'REAL']];for(let [a4,a5]of a3)a2[bi(0x341)](a4)||this['db']['exec'](bi(0x3b7)+bi(0x394)+bi(0x321)+bi(0x3d6)+a4+'\x20'+a5);}[ao(0x374)](a2){const bj=ao;this['db'][bj(0x3ae)](bj(0x1f1)+bj(0x1c6)+bj(0x354)+bj(0x228)+bj(0x2f2)+bj(0x32c)+bj(0x248)+bj(0x3df)+bj(0x2b3)+bj(0x354)+bj(0x398)+bj(0x391)+bj(0x241)+bj(0x31b)+'\x20cache_r'+bj(0x242)+bj(0x3e8)+',\x0a\x20\x20\x20\x20\x20\x20'+bj(0x258)+bj(0x1fc)+bj(0x3e1)+bj(0x38f)+bj(0x244)+bj(0x3ad)+bj(0x376)+'ason,\x20se'+'ssion_id'+bj(0x362)+bj(0x37a)+bj(0x25a)+bj(0x223)+bj(0x29b)+'\x20attempt'+',\x20race_i'+'d,\x20won,\x20'+bj(0x24a)+bj(0x22b)+'k_class,'+'\x20task_ty'+bj(0x220)+bj(0x39a)+'ontext,\x20'+bj(0x252)+bj(0x2aa)+bj(0x3c9)+bj(0x2ad)+bj(0x3fd)+'\x20\x20\x20\x20\x20\x20(@'+bj(0x3ca)+'nt,\x20@pro'+bj(0x333)+bj(0x363)+bj(0x24b)+'model,\x0a\x20'+bj(0x387)+'\x20\x20@input'+'Tokens,\x20'+bj(0x3ed)+'okens,\x20@'+bj(0x2bc)+bj(0x29c)+bj(0x1c2)+'\x20\x20\x20\x20\x20\x20\x20\x20'+bj(0x3bb)+bj(0x203)+bj(0x303)+bj(0x28a)+'ode,\x20@ab'+'orted,\x20@'+bj(0x30d)+bj(0x28d)+'ssionId,'+bj(0x354)+bj(0x279)+'e,\x20@outc'+'ome,\x20@ve'+bj(0x35f)+',\x20@attem'+bj(0x2d9)+bj(0x359)+'n,\x20@dura'+bj(0x263)+bj(0x377)+bj(0x237)+'kType,\x0a\x20'+bj(0x387)+bj(0x227)+bj(0x3dd)+bj(0x35a)+bj(0x240)+')')[bj(0x3f2)]({'ts':a2['ts'],'agent':a2[bj(0x344)],'projectPath':a2[bj(0x2c3)+bj(0x287)],'promptHash':a2['promptHa'+'sh'],'model':a2[bj(0x290)]??null,'inputTokens':a2[bj(0x1e6)][bj(0x2d4)+'ens'],'outputTokens':a2[bj(0x1e6)][bj(0x2b4)+'kens'],'cacheRead':a2[bj(0x1e6)][bj(0x2bc)+bj(0x325)]??-0xa3*0x10+0xe60+-0x430,'cacheWrite':a2[bj(0x1e6)][bj(0x330)+bj(0x315)]??-0x25c1+-0x1aad+0x406e,'costUsd':a2[bj(0x1e6)]['costUsd'],'costSource':a2[bj(0x1e6)][bj(0x361)+'ce'],'exitCode':a2[bj(0x39c)],'aborted':a2[bj(0x314)]?-0x2607+-0x12f*0xa+-0x18ef*-0x2:-0x923*-0x2+-0xcbf+-0x587,'abortReason':a2[bj(0x30d)+'son']??null,'sessionId':a2[bj(0x2f4)+'d']??null,'mode':a2[bj(0x20e)]??null,'outcome':a2[bj(0x24f)]??null,'verifyExit':a2[bj(0x3af)+'it']??null,'attempt':a2[bj(0x37b)]??null,'raceId':a2['raceId']??null,'won':a2[bj(0x39e)]?0x1*-0x17b9+-0x5*-0x470+0x18a:0x623*0x2+-0x27*-0x83+-0x203b,'durationMs':a2[bj(0x24a)+'Ms']??null,'taskClass':a2[bj(0x3f4)+'s']??null,'taskType':a2[bj(0x36f)]??null,'context':a2['context']??null,'propensity':a2[bj(0x252)+'ty']??null,'reward':a2[bj(0x2ac)]??null});}[ao(0x322)+'ce'](a2,a3){const bk=ao;return(a3?this['db'][bk(0x3ae)](bk(0x2c6)+bk(0x367)+bk(0x260)+'_usd),0)'+bk(0x2b7)+'OM\x20runs\x20'+bk(0x2f8)+bk(0x278)+bk(0x349)+bk(0x28f)+'\x20?')['get'](a2,a3):this['db']['prepare']('SELECT\x20C'+'OALESCE('+bk(0x260)+bk(0x281)+bk(0x2b7)+bk(0x3d2)+bk(0x2f8)+bk(0x257))[bk(0x3e3)](a2))['c'];}[ao(0x33a)+'ay'](a2){const bl=ao;let a3=new Date();return a3[bl(0x2e6)](-0x1*-0x19ed+-0x4*-0x93+-0x1c39,0xfff+-0x5*0x259+-0x442,0x19cd+0x178d+-0x315a,0x4c*-0x70+-0x1477+0x35b7),this['spendSin'+'ce'](a3[bl(0x368)+bl(0x38e)](),a2);}[ao(0x2ba)](a2,a3){const bm=ao;let a4='\x0a\x20\x20\x20\x20\x20\x20S'+'ELECT\x20'+(a2===bm(0x288)?bm(0x337)+bm(0x29e):a2==='agent'?'agent':bm(0x1e1)+'path')+(bm(0x236)+bm(0x354)+bm(0x3b9)+bm(0x300)+'S\x20runs,\x0a'+bm(0x387)+bm(0x35b)+bm(0x255)+bm(0x1ea)+bm(0x200)+bm(0x205)+bm(0x218)+bm(0x335)+'\x20\x20\x20\x20\x20\x20\x20\x20'+'COALESCE'+bm(0x284)+bm(0x392)+bm(0x3c5)+'S\x20output'+'Tokens,\x0a'+bm(0x387)+bm(0x35b)+bm(0x255)+bm(0x25f)+bm(0x2b2)+bm(0x22e)+bm(0x224)+bm(0x2bd)+'s\x20')+(a3?bm(0x2f8)+bm(0x257):'')+(bm(0x23e)+bm(0x338)+bm(0x268)+bm(0x2d7)+bm(0x37d)+bm(0x20d)),a5=this['db'][bm(0x3ae)](a4);return a3?a5[bm(0x30b)](a3):a5['all']();}[ao(0x212)+ao(0x3da)](a2={}){const bn=ao;let a3=[bn(0x352)+'IN\x20(\x27pas'+bn(0x3a5)+'\x27)'],a4=[];a2[bn(0x36f)]&&(a3[bn(0x2e8)](bn(0x1fa)+bn(0x1cd)),a4[bn(0x2e8)](a2[bn(0x36f)])),a2['since']&&(a3[bn(0x2e8)](bn(0x1fd)),a4[bn(0x2e8)](a2[bn(0x28c)]));let a5='\x0a\x20\x20\x20\x20\x20\x20S'+bn(0x306)+bn(0x2e2)+bn(0x2a5)+'\x20\x20\x20\x20\x20\x20\x20\x20'+bn(0x3a4)+bn(0x3e2)+bn(0x335)+bn(0x387)+'COALESCE'+bn(0x284)+bn(0x37c)+bn(0x282)+bn(0x21c)+'sses,\x0a\x20\x20'+bn(0x387)+'\x20\x20\x20COALE'+bn(0x2b0)+bn(0x27e)+bn(0x3f3)+bn(0x29f)+bn(0x375)+bn(0x387)+'\x20\x20COALES'+bn(0x3e5)+bn(0x2bb)+bn(0x3a1)+'AS\x20avgDu'+bn(0x2df)+bn(0x215)+bn(0x1fe)+bn(0x2b9)+a3['join'](bn(0x2e5))+(bn(0x23e)+'ROUP\x20BY\x20'+bn(0x3e0)+'odel');return this['db'][bn(0x3ae)](a5)[bn(0x30b)](...a4)[bn(0x37f)](a6=>({'agent':a6[bn(0x344)],'model':a6[bn(0x290)],'runs':a6[bn(0x340)],'passRate':a6['runs']>0xc89*-0x1+-0x23ff+0x1844*0x2?a6[bn(0x34c)]/a6[bn(0x340)]:0x4e+-0x1*0x644+0x5f6,'avgCostUsd':a6['avgCostU'+'sd'],'avgDurationMs':a6[bn(0x233)+'ionMs']}));}['leaderbo'+'ard'](a2={}){const bo=ao;let a3=[],a4=[];a2['since']&&(a3['push'](bo(0x1fd)),a4[bo(0x2e8)](a2['since'])),a2[bo(0x381)]&&(a3[bo(0x2e8)](bo(0x1e1)+bo(0x262)),a4['push'](a2[bo(0x381)]));let a5=a3[bo(0x1f6)]?bo(0x350)+a3['join']('\x20AND\x20'):'',a6=a2[bo(0x1e0)]?bo(0x30c)+'ss':'NULL',a7=a2['byTask']?bo(0x239)+'lass':'',a8='\x0a\x20\x20\x20\x20\x20\x20S'+bo(0x306)+bo(0x3f6)+'\x20\x20\x20\x20\x20\x20\x20\x20'+bo(0x21e)+bo(0x354)+'\x20\x20\x20\x20\x20\x20'+a6+('\x20AS\x20task'+bo(0x320)+bo(0x387)+bo(0x3c1)+bo(0x2a1)+'runs,\x0a\x20\x20'+bo(0x387)+bo(0x2ab)+'SCE(SUM('+'won),\x200)'+bo(0x3cd)+bo(0x362)+bo(0x267)+bo(0x367)+bo(0x289)+bo(0x39f)+bo(0x3ef)+bo(0x22a)+bo(0x354)+bo(0x3b9)+'ALESCE(S'+bo(0x33e)+bo(0x2fc)+bo(0x1d6)+bo(0x250)+bo(0x293)+bo(0x387)+bo(0x296)+'E(SUM(ou'+bo(0x3d3)+'\x20(\x27pass\x27'+bo(0x2fe)+bo(0x3f3)+bo(0x21d)+bo(0x327)+bo(0x387)+bo(0x3f0)+'(AVG(cos'+bo(0x234)+bo(0x1ed)+bo(0x1cf)+bo(0x362)+'\x20\x20\x20\x20\x20\x20\x20C'+'OALESCE('+bo(0x1d1)+bo(0x36a)+bo(0x2cd)+bo(0x233)+bo(0x245)+bo(0x21b)+'\x20runs\x20')+a5+(bo(0x23e)+'ROUP\x20BY\x20'+bo(0x3e0)+bo(0x3d7))+a7;return this['db'][bo(0x3ae)](a8)['all'](...a4)['map'](a9=>({'agent':a9['agent'],'model':a9[bo(0x290)],'taskClass':a9[bo(0x3f4)+'s'],'runs':a9[bo(0x340)],'winRate':a9[bo(0x1d5)]>-0x2*-0x1e7+-0x4*0x42+0x8e*-0x5?a9[bo(0x291)]/a9[bo(0x1d5)]:0xf59*0x1+-0x8c7*-0x1+-0x1820,'passRate':a9[bo(0x3c3)]>0x17ae*0x1+-0xea9+0x1*-0x905?a9[bo(0x34c)]/a9['verified']:0x149a+0x47*0x86+-0x4*0xe71,'avgCostUsd':a9[bo(0x297)+'sd'],'avgDurationMs':a9[bo(0x233)+'ionMs']}))[bo(0x1e8)]((a9,aa)=>aa[bo(0x229)]-a9[bo(0x229)]||a9[bo(0x297)+'sd']-aa[bo(0x297)+'sd']);}['close'](){this['db']['close']();}};export{A as BudgetEnforcer,R as BudgetExceededError,y as ClaudeCodeAdapter,b as CodexAdapter,_ as UsageStore,Ae as agentConfig,ae as buildRegistry,g as computeCost,w as configSchema,ue as detectAll,ie as getAdapter,ve as loadConfig,k as resolveCost,K as runAgent};
|
|
2
|
+
function a(){const bV=['CMfJzv9Pza','A2LUza','AM9PBG','y3vTDwXHDgK','ls12zxjZAw8','B2TLBNm','igH0DhbZoI8','DhvYBI5MywK','AxmGysbJCMe','Bw9Kzsa9ifC','C1DLzwS','ienpvu5ukcO','CNvUCYWkica','Aw9Utxm','ls1UBY1HDxq','zhvYyxrPB24','yxzNq29ZDfu','yM9YDgvKlca','Bw9Kzq','u0nfkefwrYG','Bw9KzwW','idaScIaGica','l2nSyxvKzs0','zw5HyMXLza','zgLYBMfTzq','tLvmtcberuy','D2LUuMf0zq','q29KzxGGCMu','DgHYzwfKswq','igfMDgvYiha','cIaGicaGifm','CNj1BG','icaGicaGkea','y2vLzgvKrxi','tLrpihj1BNm','icaGiensrue','ChjVCgvUC2K','zw50CMLLCW','tsHJB3n0x3u','lcbaChjVBxa','BIbZzxqGDgG','DxbKyxrL','mcKGqvmGyxy','zcWGD29Ulca','BgWGAxqGD2K','BL9PzcaGica','yxr0zw1WDa','cIaGica','pt8Lqh5FxsO','C2GGAw4GDgG','BIbLCNjVCG','Dw50lG','CMvZDw1L','yxrO','lMfPzM9Yy2u','zMfZDgvZDa','tgLZDgvUzxi','BsbPBNn0ywW','C2v0rgf0zq','ChqSiebYywm','zxjMBg93','ywDLBNrZ','zNvUy3rPB24','laOGicaGica','CYWXldeWkq','CMvZDwX0','Cgf0Aca9id8','Dg9vChbLCKm','B2jQzwn0','C3bHD24','ywnJDw11Bge','Df9WyxrOktS','DeHHC2GSiea','DgHYzwfKx2K','zgfPBhKTy2e','ywrHChrLCG','icaGicaGq1i','DMvYAwz5x2u','A1r5CguScIa','icaGq09bteu','icbHz2vUDca','x3rVA2vUCW','ie9qru5bsv8','DML0Es5NB28','B25eyxrH','mZG3nLvxBLbXua','yw50AwDYyxy','ywnJzxb0rwq','BcaTzYbayw4','z0nVC3rvC2q','DhvYBI5JB20','mtu3nda3mfzuBfnkzG','icaGicaGq08','rLjptsbYDw4','ls1TzxnZywC','xf0Oksm7p10','zgLKqNjLywm','Dw5RBM93BIC','t04GCNvUCYG','ywrFAw5WDxq','C3rFDxnKica','zvn5BMm','ihrHC2TFDhK','vuvtcIaGica','DMfSDwvZ','AhjLzG','zc4Gsw5ZDge','yxnL','y3jLyxrLsw4','zv93CML0zsa','DhmGpJ0GpW','x3rVA2vUCYW','Aw5HDgvK','C2v0rw5JB2q','zxjYAwrL','yxnZAxn0yw4','iefercbdt0W','id49id8Gqu4','CYWkicaGica','rsHtvu0OB3u','zfrVA2vUCW','C3nPB25jzcW','Axr5','B2rLicaGica','CM9Y','AgvFD3jPDgu','B2TLBNmGsu4','Df90B2TLBNm','su4GkcDWyxm','C29UlcbaC2u','zw5KC1DPDgG','B3n0x3nVDxi','CNjVCJOG','DgnVBwuGsu4','Aw4GD2L0Aca','icaGktSkica','kefwrYHJB3m','tK9uie5vteW','zw50lcbTB2q','icbTB2rLBca','zsb1BMrLCMW','A19JBgfZCYW','kd86kd86xgq','C3rYzwfTCW','qKXfieLgie4','C3rYAw5N','lMPZB24','CMf0Aw9Utxm','su5uruDfuG','icbWCM9Qzwm','mcKGqvmGCge','DcbptIbYDw4','C3nLCYWkica','CM9Qzwn0x3a','ChjVBxb0sge','ieftigmGrLi','cIaGicaGica','BwfWvxnHz2u','rufursbjtKq','BwnWx3rVB2W','CMvWBgfJzq','vg9Rzw5ZlaO','uYbYywnLCYW','z2v0rgf5','DgHYB3bPyY0','B2rLlcbaywi','Bxb0x2HHC2G','l2fUDgLNCMe','zhHFCNvUC18','zxH0CMfgBge','ieDLBwLUAsa','qvzhkgr1CMe','CgvYuNvUq2e','B2rLEaPuAgu','Axr5ienmssa','zZOk','CMvHC29UAw4','EsbMB3iGEw8','B29SCW','Chv0x3rVA2u','w1X1mdaXqLW','DhKSihjLD2e','Ew91CIbhB28','Aw5ZDgfSBeG','ywDLBNqPoWO','u3LUyW','odi1mJyWtMT5CMTI','xc8JjI46pt8','Cgf0Aa','B3v0Chv0vg8','zgvMyxvSDa','zs1JB2rLcLq','C3rYAwn0','A2v5','igv4y2vWDgK','zxHPDenVzgu','lw5Xlxv5pt4','BwuGpsaNCge','icaGicaGywi','Dgv4Da','C3rVCMu','B3vZBhKTC2S','BY1JB21TAxq','zxmScIaGica','zgv0zwn0','Aw5Pkq','ignHy2HLx3i','B2rLBa','C29U','vevyvcaGica','vcGQksbbuYa','ChjVAMvJDf8','ierfrKfvtfq','B21LlcbaDMu','ieftigTLEsW','z2XLigfJy28','yxzNrhvYyxq','oezlEhrMwa','DgLTzw91Da','CgfYC2vY','icaGigLUChu','C3nPB25FAwq','ihzLCMLMAwu','zxHLy3v0Aw8','C3rHy2SGB3y','B25vC2fNzq','CYHWCM9Qzwm','EwLUzYbHz2u','B24G','DxrWDxqU','C3nPB25Z','BgvUz3rO','vu5ukcOPiee','Dgf0CW','CgfZCYCPlca','C2LUy2u','vevhrviGtK8','DgvKicaGica','vevyvcWkica','y29UzMLN','C3nPB25jza','B3v0y29Tzsa','C3bLBMruAgK','icaGie5pvca','y2HLy2Tdyxa','ruXfq1qG','icaGqgnVC3q','icaGignHy2G','icbJywnOzv8','ywXS','zw52','B2rLEcbSB2C','qhrHC2TdBge','wY1HlxPblvO','igf2z0nVC3q','teWGrevgqvu','vu1oia','AxaTCgvYBwK','Aw5GlIbtzwu','ywDLBNrFBwu','AxnbCNjHEq','ChjLzMXPz2G','icbWCM9TChq','ywjSztOG','ChjVAMvJDfa','y29UDhjVBc0','ywjVCNrszwe','ls1Kyw5Nzxi','mJi5AwnQsvPi','zw5Z','zxjYB3i','yxjYyxK','icGNCgfZCYC','y2fJAgvxCMK','AxzL','DhmSiebHz2u','CMvJB3jK','Df91C2qSigm','DMvYAwz5rxG','Dg9VBf91C2u','lcbVDxrWDxq','xgrClYmMlJO','igL0ihDPDgG','C3LZDgvT','yxvKzs5JB20','y29UDgv4Da','DMvYAwzPzwq','ihbYB2r1y2K','qKXfihj1BNm','ls1QC29U','B2rLienmssa','BcbHAwrLCI0','icbay29UDgu','CgfZC2vZ','BM93','C2LNBMfS','AwDUywWG','y2XHDwrLlwm','BM90igzVDw4','icaGicaGica','sunFqvbjx0S','uIbot1qGtLu','zgLNzxn0','CMvWB3j0','y29Kzq','z2v0rgf0zq','DgfZA1r5Cgu','zMLUywXPEMu','t0fmrvndrsG','DgLTzw91De0','u3rYzwfTigu','y2fJAgvszwe','B3v0Chv0u2m','BgKTy29KzxG','uYbYDw5ZicG','y29ZDf91C2q','Dc4GvgHPCYa','y2fJAgvKx2K','C3mSieb0yxm','xgrDkYG/oJS','Aw5WDxruB2S','yNvKz2v0','DhLuAw1LB3u','icaGicbwquW','vxnKlcbay28','ruzbvuXuicC','Aw50','uNvUigfIB3i','BMCGDg8GC3q','icaGifjfquW','x2nHBgW','q0uOqvzhkgq','yNjLywnOzwq','y2XPl2v2ywW','zuLKlcbaD28','kIG/oIG/oIG','EhrLCM0Ty28','zcWkicaGica','ywLKzxi','DgfZA190Exa','Dw5KlIbjBNm','zMLUywXnzxm','BNqSig5VDca','B2rL','DgvuB2TLBNm','C2vZC2LVBKK','ihDPDgHVDxq','AgfZ','y29TChv0zwq','ywjVCNq','Dg9Rzw5ZksW','y2XHDwrL','C3rKzxjY','y2XVC2u','CNvU','qwLKzxiGBM8','tLvmta','ig5VihvZywi','yxbvC2q','ls1Zyw5KyM8','ru5pru5u','C3bLBMruB2q','ywXSB3DLzfq','vcbovuXmieq','DxnHz2uUzgi','Chv0vg9Rzw4','D29U','uKvbta','ywKVy29KzxG','ksOPp1TCzee','zNLFzxHPDcW','DgHYzwfKlNm','zMzLCIbVDMu','y29KzxG','quXurviGvee','z2v0rNvSBfK','Aw9Utxmkica','ruzbvuXuida','ywDLBNqSig0','ywnJzxnZihy','BgvHzgvYyM8','zfrVB2XZ','D3jPDgvgAwW','mZe4mJy0m0jizKrXqW','ywLMB3jJzwm','zgf5','Bw9KzwWScIa','C01VBNrO','Bw9UDgHSEum','q2XHDwrLiem','yxrOlcbWCM8','qLKGA2v5ieq','lxnJAgvTys0','tsHPBNb1Df8','B25mAw5L','DgLVBL9TCYK','u1vnkgnVC3q','ywXSic1Niea','icbdt0fmrvm','BwuSihzLCMK','zvDYAxrLlaO','igf0DgvTChq','uK9nihj1BNm','zw5MB3jJzxi','u0vfs19bueK','ls1WzxjTAxm','lxnJAgvTyq','rvKGqvvut0K','zsWGqg91Dgm','zwWScIaGica','zwfT','CfvZza','vxnK','zwfKlcbJywm','zY50CW','icaGicaG','tevtq0uOu1u','vw5RBM93BIa','qw50AwDYyxy','zY5QC29U','AgvUigf1DgG','z2v0','ywDLBNqGiG','BgKGy29UzMK','zw50AwnHDgu','yM9VBgvHBG','lcbazxHPDem','CMvHzcaGica','rcbWCM9Qzwm','y2XP','icaGicbJB3m','C2LVBI1TB2q','BM9UBMvNyxq','C3rHCNrZv2K','zw50laOGica','CMfJzxm','Aw5WDxrFDg8','AM91CM5HBf8','Cg9ZAxrPDMu','B25fDMvUDa','BgvK','Bg9Y','tw9UDgHSEq','id49id8','x2nVzguSige','y3DK','uYbJB3n0vxm','DgfYDgvK','Agv4','uK9vucbcwsa','DgG6cIaGBNa','icbpuKrfuIa','B3v0y29Tzq','Aw5KzxHpzG','oI8VywLKzxi','y2uSigv4Axq','BgKU','ChjVBxb0','CMnLicaGveu','CgfKu3rHCNq','BwfW','mdCP','ls1VDxrWDxq','B3b0CW','DxrMoa','DhLWzq','icaTia','C3rHy2SGyNu','tfqGmcWkica','ihDPDgGGygm','t3bLBKfjiem','CMqPcIaGica','C3vJy2vZC1m','vu0OB3v0y28','quXfu0nfkfm','u1vnkg1Vzgu','zsbbueKGA2u','rgfPBhK','ywjVCNrLza','BNbTigLUC3q','DhjPBq','vxnKlaOGica','BwvZC2fNzq','Dg1WzgLY','oGOGihb5DgG','ChjVAMvJDa','x21Z','AxnFzxjYB3i','C2v0sg91CNm','o1XKEZaSnh0','Bgf1zgvGig8','C19Hz2vUDca','qvvmvcaWlaO','Dg9ju09tDhi','su5uruDfuIa','icaGicaGy28','pZOOpZO7wY0','zgfPBhLdyxa','Dg9tDhjPBMC','yxj0lG','zgf0yq','Dg9gAxHLza','igLKEf9YDw4','id0Gj3jHy2u','Dw5PB24','y2HLyxbLC3q','lcDMywLSjYK','CYCSj2zHAwW','ywD5ycbIAw4','zsa9id8','ieforca','CgXLDgvK','lcbTB2rLBcW','CgvYC2LZDa','y2fW','C2vZC2LVBL8','Dg90ywXFy28','DxnHz2u','y29ZDfnVDxi','ph5DksK','kfnvtsHVDxq','B3bLBMfPl2m','C3bLBMrtAw4','ls1UBY1WCMu','ksWGmcKGqvm','veuGsu5ervG','yxj5igzYB20','t1qGrvHju1q','zgv0zxjTAw4','AgvTyq','DgfZA0nSyxm','ls1TB2rLBa','l2rVy3mUy2W','DxjHDgLVBL8','Df91C2qPlca','ywnJ','DgvYzMfJzq','rvnd','zxiGkguUzY4','qvmGyxzNrhu','Dw5RBM93BG','DgvKicG','igLKicaGica','DgfZA19JBge','y29ZDfvZza','B3j0zwqSiea','BNvTyMvY','Axn0Awm','CMv3yxjK','FfTHlxPblvO','BIWGqgr1CMe','icaGicbdt0e','sw52ywXPzca','A2v5cIaGica','v0HfuKuG','su5trvjuieK','mcKGqvmGAw4','Aw5JBhvKzxm','qYaVihrLCM0','Dhr5','Dg9VBf9JywW','Dg9mB3DLCKm','yw1L','zgLZCgXHEu4','BgKUy29UzMK','Aw5Hy3rPDMK','mte5mJu4ntbwC3Pwr2K','BNb1Df90B2S','mtq4mdeYnw5byxbbEa','DxiGy2HVC2u','yMLU','C2HPzNq','CNvUCW','ndi0nKD4zNvvuq','cIaGicaGieC','ihnWzw50id4','Aw5N','qwLKzxi','tKnsru1ftLq','C2qPldaPiee','u0vmrunuiem','iebYzxDHCMq','BgL0zxjHBa','B3b0Aw9UywW','zcWGqgnHy2G','zwf0Aw9Ux2K','icaGigfIB3i','z2v0tw9UDgG','ywrKrxzLBNq','zwuGAhr0Chm','Aw5WDxq','C29Tzq','BNmODhmPoWO','vcbfweLtvfm','r0vsie5pvca','ChvZAa','CgvYuNvUt3y','rvGGsuyGtK8','vevyvaOGica','psbJyxaGja','x21Zlcb0yxm','CgfYC2u','CfzHBhvL','icaGiebTB2q','Bwf4q29ZDfa','B3v0Chv0x3q','zxHPC3rZu3K','BwLNCMf0zq','uKLnqvjzieS','ChjLCgfYzq','y29TBwfUza','ywDLBNq','icbjtLrfr0u','BguGCMvZDwW','jub+x10RksO','C3rFDxnK','BNmPldaPiee','ksbbuYbYDw4','BwfWsxrLBq','ieftihbHC3m','icbZzxnZAw8','icbLEgL0x2m','AxrZ','cIaGicaGiem','zMLUywXvC2e','icaGicaGAw4','BIbYDw4Gygm','C2HVCNrnzxm','z19VDxrWDxq','C29YDa','icaGkhrZlca','ieLUC3rHBgW','C3rKB3v0','zxzLBNrZ','D2LUCW','ieLgie5pvca','ls12zxjIB3m','q09btevtq0u','ls1Yzxn1Bwu','icaGienpvu4','yxjNCW','lMnOyxq','Df9WyxrOid0','De1Z','A2vUCW','yxnVBIWGC2u','B25fEgL0','ieftihDPBNm','lvbslvrAy2y','zxjsDw5vC2q','CMvZDw1Lu2u','C2XPy2u','icaGicaGieK','CMvHzezPBgu','C2HHmJu2','ChjHz21H','t00GCNvUCYa','BMfTzq','icbaAw5WDxq','BgWGDgHLiga','y3jHC2HLzca','yMf5zxnPyw4','C2fNzq','vevyva','zxHLyW','yNLuyxnR','zw51Bq','odu4mNvHtLfhuG','Dw5RBM93BIa','D29UksWGmcK','khjVB3qP'];a=function(){return bV;};return a();}const at=b;(function(a2,a3){const aq=b,a4=a2();while(!![]){try{const a5=-parseInt(aq(0x3c0))/(0xb*-0xf3+0x856+-0x4*-0x87)*(parseInt(aq(0x252))/(-0x1*0x2309+-0x20f5+0x4400))+parseInt(aq(0x30f))/(-0xf*-0xf1+0x13f0+-0x220c)+parseInt(aq(0x36e))/(-0x1205*-0x2+0x143d+-0x3843)+parseInt(aq(0x24d))/(0x93f+-0x5*0x331+0x1*0x6bb)+-parseInt(aq(0x309))/(-0x11ec+-0x247*-0x1+0xfab)*(parseInt(aq(0x2b0))/(0x1cc4+0x17*0x14b+-0x3a7a))+parseInt(aq(0x38d))/(0x3b*-0x4f+-0x1*0xb6f+0x1dac)*(-parseInt(aq(0x433))/(-0x1cd+-0x1ef4+-0x1*-0x20ca))+parseInt(aq(0x24b))/(0x26c7+0x21f5*0x1+0x48b2*-0x1);if(a5===a3)break;else a4['push'](a4['shift']());}catch(a6){a4['push'](a4['shift']());}}}(a,0x73b32+-0xd9536+0xf5235));import{createHash as c}from'crypto';function X(a2){const ar=b;return c(ar(0x2a3))[ar(0x2dd)](a2,ar(0x1e5))[ar(0x3e2)](ar(0x1d5))[ar(0x2a0)](-0x164c+0xbd8+0x1be*0x6,0x179b+-0x29*-0x13+-0x1a96);}var A=class extends Error{constructor(a2,a3){const as=b;super(a2),this[as(0x2b5)]=a3,this[as(0x2a6)]='BudgetEx'+as(0x2d5)+as(0x330);}[at(0x2b5)];},M=class{constructor(a2,a3,a4,a5){const au=at;this[au(0x3a3)]=a2,this[au(0x37c)]=a3,this[au(0x3bc)+au(0x2e9)]=a4,this[au(0x269)+au(0x326)]=a5;}['config'];['store'];['projectP'+at(0x2e9)];[at(0x269)+at(0x326)];['breached']=!(-0x18b+0x1a70+-0x18e4);get[at(0x360)+'p'](){const av=at;return this[av(0x269)+av(0x326)]??this[av(0x3a3)][av(0x271)+av(0x29e)];}['prefligh'+'t'](){const aw=at;this['checkCap'](aw(0x2fe)+'p',aw(0x1f2),this['config'][aw(0x206)+aw(0x450)],this[aw(0x37c)][aw(0x41d)+'ay']()),this['checkCap']('weekly-c'+'ap','Weekly',this[aw(0x3a3)]['weeklyCa'+aw(0x44f)],this[aw(0x37c)][aw(0x3a6)+aw(0x2be)]()),this[aw(0x3a8)]('monthly-'+aw(0x217),aw(0x1cf),this[aw(0x3a3)][aw(0x438)+aw(0x41a)],this[aw(0x37c)][aw(0x3a6)+aw(0x437)]());}['checkCap'](a2,a3,a4,a5){const ax=at;if(a4!=null&&a5>=a4)throw new A(a3+('\x20cap\x20rea'+'ched:\x20$')+a5['toFixed'](0x1*-0x1484+-0x1*0xc53+-0xd*-0x287)+(ax(0x254)+ax(0x26c))+a4[ax(0x20a)](-0x24b7+0x507+0x1fb2)+('.\x20Refusi'+ax(0x3fc)+ax(0x208)),a2);}[at(0x395)](a2){const ay=at;let a3=this['perRunCa'+'p'];return a3==null?!(-0x2*0x125+-0x203c+0x2287*0x1):a2[ay(0x235)]>a3?(this[ay(0x400)]=!(-0x863+0xdda+0x577*-0x1),!(0x214*0x3+0xe*-0x1d6+-0x7*-0x2c8)):!(-0x22f3*-0x1+-0x21a+-0x20d8);}get[at(0x314)+'h'](){const az=at;return this[az(0x400)];}[at(0x360)+at(0x26f)](){const aA=at;return this[aA(0x360)+'p'];}},ue={'claude-opus-4':{'input':0x5,'output':0x19,'cacheRead':0.5,'cacheWrite':6.25},'claude-sonnet-4':{'input':0x3,'output':0xf,'cacheRead':0.3,'cacheWrite':3.75},'claude-haiku-4':{'input':0x1,'output':0x5,'cacheRead':0.1,'cacheWrite':1.25},'gpt-5-codex':{'input':1.25,'output':0xa},'o4-mini':{'input':1.1,'output':4.4},'gpt-5.5':{'input':1.25,'output':7.5,'cacheRead':0.125},'gpt-5.4-mini':{'input':0.1875,'output':1.13,'cacheRead':0.01875},'gpt-5.4':{'input':0.625,'output':3.75,'cacheRead':0.0625},'gpt-5.3-codex':{'input':0.4375,'output':3.5,'cacheRead':0.04375},'gpt-5.2':{'input':0.4375,'output':3.5,'cacheRead':0.04375},'deepseek':{'input':0.27,'output':1.1},'codestral':{'input':0.3,'output':0.9},'gemini-3-flash':{'input':0.5,'output':0x3},'gemini-3.5-flash':{'input':1.5,'output':0x9},'gemini-3.1-pro':{'input':0x2,'output':0xc}},B={'input':0x3,'output':0xf};function ce(a2){const aB=at;if(!a2)return B;let a3=a2[aB(0x246)+aB(0x31f)](),a4;for(let [a5,a6]of Object['entries'](ue))a3[aB(0x242)](a5)&&(!a4||a5[aB(0x39b)]>a4[aB(0x375)][aB(0x39b)])&&(a4={'key':a5,'price':a6});return a4?.['price']??B;}function T(a2,a3){const aC=at;let a4=ce(a3),a5=-0xd74fe+-0x5814+0x3*0x9afc6,a6=a2['inputTok'+aC(0x3c1)]/a5*a4[aC(0x263)]+a2[aC(0x371)+aC(0x299)]/a5*a4['output'];return a2[aC(0x3eb)+'dTokens']&&(a6+=a2[aC(0x3eb)+aC(0x32c)]/a5*(a4[aC(0x3eb)+'d']??a4['input'])),a2[aC(0x3c5)+aC(0x40c)]&&(a6+=a2[aC(0x3c5)+aC(0x40c)]/a5*(a4[aC(0x3c5)+'te']??a4[aC(0x263)])),a6;}function P(a2,a3){const aD=at;if(a2['costSour'+'ce']===aD(0x1c2)&&a2[aD(0x235)]>-0x2378+0x14a5*-0x1+0x381d)return a2;let a4=T(a2,a3);return{...a2,'costUsd':a4,'costSource':aD(0x410)};}function g(){const aE=at;return{'inputTokens':0x0,'outputTokens':0x0,'costUsd':0x0,'costSource':aE(0x231)};}function de(a2,a3){const aF=at;return{'inputTokens':a2[aF(0x3f4)+aF(0x3c1)]+a3[aF(0x3f4)+'ens'],'outputTokens':a2[aF(0x371)+aF(0x299)]+a3[aF(0x371)+aF(0x299)],'cacheReadTokens':(a2[aF(0x3eb)+aF(0x32c)]??0x1*-0xe05+0x11*-0x1e1+0x2df6)+(a3['cacheRea'+aF(0x32c)]??0x837*-0x2+-0x242c+0x349a),'cacheWriteTokens':(a2[aF(0x3c5)+aF(0x40c)]??-0x1e51+0xa36+0x141b*0x1)+(a3[aF(0x3c5)+aF(0x40c)]??-0x7*0x331+0x1dac+0x755*-0x1),'costUsd':a2[aF(0x235)]+a3[aF(0x235)],'costSource':a3['costSour'+'ce']==='cli'?aF(0x1c2):a2[aF(0x21b)+'ce']};}async function pe(a2){const aG=at;a2['enforcer'][aG(0x3b9)+'t']();let a3=new AbortController(),a4={...a2[aG(0x1e4)],'signal':a3['signal']},a5=a2[aG(0x29f)+'ssionId']&&a2[aG(0x2ff)][aG(0x2e8)]?a2['adapter'][aG(0x2e8)](a2[aG(0x29f)+aG(0x3a4)],a2[aG(0x1de)],a4):a2['adapter'][aG(0x416)](a2[aG(0x1de)],a4),a6=g(),a7=!(-0x165a+0xc9+-0x1592*-0x1);for await(let ac of a5[aG(0x28e)])a2[aG(0x1cc)]?.(ac),ac[aG(0x1e6)]===aG(0x21a)&&(a6=ac[aG(0x2b7)+'ve']?ac[aG(0x21a)]:de(a6,ac['usage']),!a7&&a2[aG(0x447)]['onUsage'](a6)&&(a7=!(0x1a3a+-0x12b+-0x190f),a3[aG(0x411)]()));let a8=await a5[aG(0x2f5)],a9=P(a8[aG(0x21a)][aG(0x3f4)+'ens']||a8['usage'][aG(0x371)+'kens']?a8['usage']:a6,a2['model']),aa=a8[aG(0x1f3)]||a7,ab={...a8,'usage':a9,'aborted':aa||void(-0x24a9+0x255d+-0xb4),'abortReason':a7?aG(0x3f5):a8['abortRea'+aG(0x384)]};return a2[aG(0x216)]!==!(-0x1*0x18d9+0xb88+-0x136*-0xb)&&a2[aG(0x37c)][aG(0x3c8)]({'ts':new Date()['toISOStr'+aG(0x255)](),'agent':a2[aG(0x2ff)]['id'],'projectPath':a2[aG(0x3bc)+'ath'],'promptHash':X(a2[aG(0x1de)]),'model':a2[aG(0x2c8)],'usage':a9,'exitCode':ab['exitCode'],'aborted':!!aa,'abortReason':ab[aG(0x3be)+aG(0x384)],'sessionId':ab[aG(0x40d)+'d']}),ab;}import{execa as d}from'execa';import e from'readline';import{execa as h}from'execa';function J(a2,a3,a4){const aJ=at;let a5=new AbortController(),a6,a7,a8,a9=()=>{const aH=b;a4['inactivi'+aH(0x3f6)+'tMs']&&(a7&&clearTimeout(a7),a7=setTimeout(()=>{const aI=aH;a6=aI(0x24a)+'ty',a5[aI(0x411)]();},a4[aH(0x24a)+aH(0x3f6)+aH(0x298)]));},aa=h(a2,a3,{'cwd':a4[aJ(0x1d2)],'cancelSignal':a5[aJ(0x3db)],'forceKillAfterDelay':0x1388,'reject':!(0x12ef+-0x2424*-0x1+-0x7*0x7de),'buffer':!(0x97f+-0x15b1+0xc33),'stdin':'ignore','encoding':aJ(0x1e5),'windowsHide':!(0x7d7*0x1+-0xeed*0x2+0x1603),'env':a4[aJ(0x3ae)],'extendEnv':!(0x8d+0x1c62+-0x1*0x1cef)}),ab='';aa['stderr']&&(aa[aJ(0x414)][aJ(0x325)+aJ(0x255)](aJ(0x1e5)),aa[aJ(0x414)]['on'](aJ(0x209),af=>{ab+=af,a9();})),a4['timeoutM'+'s']&&(a8=setTimeout(()=>{const aK=aJ;a6=aK(0x38e),a5['abort']();},a4['timeoutM'+'s'])),a4[aJ(0x3db)]&&(a4[aJ(0x3db)][aJ(0x1f3)]?(a6=aJ(0x3db),a5['abort']()):a4[aJ(0x3db)][aJ(0x261)+aJ(0x2ec)](aJ(0x411),()=>{const aL=aJ;a6=aL(0x3db),a5[aL(0x411)]();},{'once':!(-0x8*0x2d+0x1*-0xf97+0x10ff)})),a9();async function*ac(){const aM=aJ;if(!aa['stdout'])return;let af=e[aM(0x320)+aM(0x22d)]({'input':aa[aM(0x28d)],'crlfDelay':(-0x1*-0x265a+-0xeda+0x7d5*-0x3)/(0x375+0x1b4e*-0x1+0x17d9)});try{for await(let ag of af)a9(),yield ag;}finally{af[aM(0x415)]();}}let ad=((async()=>{const aN=aJ;let af,ag=!(0x1c70+0xd*0x25f+-0x3b42);try{af=await aa;}catch(aj){let ak=aj;ak[aN(0x3e4)]==='ENOENT'&&(ag=!(0x16df+-0x1814+0x135)),ab||=ak[aN(0x288)+aN(0x2ab)]??String(aj);}finally{a7&&clearTimeout(a7),a8&&clearTimeout(a8);}let ah=a5[aN(0x3db)]['aborted'];af&&af[aN(0x3e4)]===aN(0x41c)&&(ag=!(-0x1*0x1669+0x7*-0x461+-0x11b0*-0x3));let ai=af?.[aN(0x3db)];return{'exitCode':typeof af?.['exitCode']==aN(0x237)?af['exitCode']:ah?0xe19+0x24c5*-0x1+0x45*0x56:-0xe0c+-0x49b+0x12a8,'stderr':ab['trim'](),'aborted':ah,'abortReason':ah?a6:void(0x1*-0xcf5+-0x5e+0xd53),'spawnFailed':ag,'signal':ai??void(-0x1*0x86+-0x3f*-0x86+0x4*-0x81d)};})());return{'lines':ac(),'result':ad};}function ge(a2){const aO=at;if(a2<-0x1*-0x11e0726a1+0x2d*-0x3e461cd+-0x1447829a*-0x4)return;let a3='0x'+(a2>>>-0xe87+-0x2ad+0x2de*0x6)[aO(0x207)](-0xb40+0x1*0x16a+-0x16a*-0x7)[aO(0x2f7)+aO(0x31f)]()[aO(0x1e0)](-0x671*0x1+0x3*-0x455+0x1378,'0'),a4={'0xC0000005':aO(0x42f)+'iolation','0xC00000FD':aO(0x394)+aO(0x2f0),'0xC0000409':aO(0x1e8)+aO(0x428)+aO(0x2d3),'0xC000013A':aO(0x3bd)+aO(0x243)+aO(0x324)};return a4[a3]?a3+',\x20'+a4[a3]:a3;}function f(a2){const aP=at;let a3=a2[aP(0x2f9)]??J,{lines:a4,result:a5}=a3(a2['command'],a2[aP(0x295)],{'cwd':a2['opts'][aP(0x1d2)],'timeoutMs':a2[aP(0x1e4)]['timeoutM'+'s'],'inactivityTimeoutMs':a2[aP(0x1e4)][aP(0x24a)+aP(0x3f6)+aP(0x298)],'signal':a2[aP(0x1e4)][aP(0x3db)]}),a6,a7=new Promise(aa=>{a6=aa;}),a8=!(0x9*-0x374+-0x1*-0x16a9+0x86c);async function*a9(){const aQ=aP;try{for await(let ab of a4)for(let ac of a2[aQ(0x38f)][aQ(0x43e)](ab))a8=!(0x182c+-0x1fa6*0x1+-0xb*-0xae),yield ac;}catch(ad){yield{'type':'error','message':aQ(0x3ea)+aQ(0x338)+String(ad),'fatal':!(-0x1acb+-0xb28+0x25f3)};}let aa=await a5;if(aa['spawnFai'+aQ(0x1cd)])yield{'type':aQ(0x3c2),'message':a2[aQ(0x36b)+aQ(0x3fa)],'fatal':!(0xa93*-0x3+-0x2f*0x6d+0x12d*0x2c)};else{if(aa[aQ(0x1f3)])yield{'type':aQ(0x3c2),'message':aQ(0x3fb)+aQ(0x232)+(aa[aQ(0x3be)+aQ(0x384)]??'signal')+').','fatal':!(0xd6c+0xfe4+-0x70*0x43)};else{if(aa[aQ(0x3db)]){let af=aa[aQ(0x414)]?'\x0a'+aa['stderr']:'';yield{'type':aQ(0x3c2),'message':a2['command']+('\x20termina'+'ted\x20by\x20s'+aQ(0x3dc))+aa['signal']+(aQ(0x2d1)+'roducing'+aQ(0x419)+aQ(0x27a)+aQ(0x3f0)+aQ(0x2bc)+aQ(0x2e5)+aQ(0x340)+aQ(0x397)+aQ(0x40a)+aQ(0x434)+aQ(0x1dd))+af,'fatal':!(0x2e*0x9d+0x4f2+0x2*-0x1094)};}else{if(aa[aQ(0x377)]!==-0x16fe+0xfe4+-0x12*-0x65){let ag=ge(aa[aQ(0x377)]),ah=ag?aQ(0x2a9)+'(Windows'+aQ(0x376)+aQ(0x398)+ag+(').\x20This\x20'+'is\x20a\x20cra'+aQ(0x2e5)+aQ(0x340)+aQ(0x397)+aQ(0x40a)+aQ(0x434)+aQ(0x1dd)):'exited\x20'+aa[aQ(0x377)];yield{'type':'error','message':aa[aQ(0x414)]?aa[aQ(0x414)]:a8?a2[aQ(0x277)]+'\x20'+ah+'.':a2[aQ(0x277)]+'\x20'+ah+(ag?'':aQ(0x40e)+aQ(0x3d3)+'ng\x20any\x20o'+aQ(0x399)),'fatal':!a8};}}}}a6(a2[aQ(0x38f)][aQ(0x3e7)](aa));}return{'events':a9(),'result':a7};}var D=at(0x417)+'t\x20found.'+at(0x28c)+at(0x3ce)+at(0x1f9)+'on\x20-m\x20pi'+'p\x20instal'+at(0x3d7)+'chat\x0aThe'+at(0x2dc)+at(0x1f1)+at(0x365)+at(0x24e)+'n\x20provid'+at(0x22f)+at(0x306)+'API_KEY,'+'\x20ANTHROP'+at(0x3e0)+'EY,\x20DEEP'+at(0x448)+'_KEY).\x20S'+at(0x262)+at(0x1db)+at(0x296);function Y(a2){const aR=at;let a3=/([\d.]+)\s*([kKmM]?)/[aR(0x2ad)](a2['trim']());if(!a3)return-0xf06+0x585+-0x32b*-0x3;let a4=Number(a3[0x3d0+0xcd7+0x2*-0x853]),a5=a3[0xe45+0x19c0+0x2803*-0x1]?.[aR(0x246)+'ase']();return Math['round'](a5==='k'?a4*(-0x1b7*0x16+0x18b*0x19+0x30f):a5==='m'?a4*(-0xcbf61+0x87360+0x2f5*0x69d):a4);}function b(c,d){c=c-(0x8b*0xb+-0x1992*-0x1+-0x443*0x7);const e=a();let f=e[c];if(b['hhIoeH']===undefined){var g=function(l){const m='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let n='',o='';for(let p=-0x164c+0xbd8+0x1be*0x6,q,r,s=0x179b+-0x29*-0x13+-0x1aa6;r=l['charAt'](s++);~r&&(q=p%(-0x18b+0x1a70+-0x18e1)?q*(0x1*-0x1484+-0x1*0xc53+-0x2b*-0xc5)+r:r,p++%(-0x24b7+0x507+0x1fb4))?n+=String['fromCharCode'](-0x2*0x125+-0x203c+0x1b1*0x15&q>>(-(-0x863+0xdda+0x575*-0x1)*p&0x214*0x3+0xe*-0x1d6+-0x2*-0x9bf)):-0x22f3*-0x1+-0x21a+-0x20d9){r=m['indexOf'](r);}for(let t=-0x113a+-0x71+0x1*0x11ab,u=n['length'];t<u;t++){o+='%'+('00'+n['charCodeAt'](t)['toString'](-0x2378+0x14a5*-0x1+0x382d))['slice'](-(0x1*-0xe05+0x11*-0x1e1+0x2df8));}return decodeURIComponent(o);};b['IZMstz']=g,b['rGlcOn']={},b['hhIoeH']=!![];}const h=e[0x837*-0x2+-0x242c+0x349a],i=c+h,j=b['rGlcOn'][i];return!j?(f=b['IZMstz'](f),b['rGlcOn'][i]=f):f=j,f;}function he(a2){const aS=at;let a3=/Tokens?:\s*([\d.]+\s*[kKmM]?)\s*sent,\s*([\d.]+\s*[kKmM]?)\s*received.*?Cost:\s*\$([\d.]+)\s*message/i[aS(0x2ad)](a2);if(a3)return{'inputTokens':Y(a3[-0x2*-0xc9a+-0x3*-0xb3f+-0x3af0]),'outputTokens':Y(a3[-0x9*-0x21f+-0x23*-0x1+-0x1338]),'costUsd':Number(a3[0x26*0x5d+-0x205f*0x1+0x1d*0xa4]),'costSource':aS(0x1c2)};}var F=class{[at(0x1f7)]='';['usage']=g();[at(0x43e)](a2){const aT=at;let a3=he(a2);return a3?(this[aT(0x21a)]=a3,[{'type':aT(0x21a),'usage':a3,'cumulative':!(-0x24b3+-0x1*0x713+-0x1*-0x2bc6)}]):a2[aT(0x1f5)]()?(this[aT(0x1f7)]+=this['message']?'\x0a'+a2:a2,[{'type':aT(0x1f7),'role':aT(0x327)+'t','text':a2+'\x0a'}]):[];}[at(0x3e7)](a2){const aU=at;return{'message':this['message'],'usage':this['usage'],'exitCode':a2[aU(0x377)],'aborted':a2['aborted']||void(0xc02+-0x1f0+-0xa12),'abortReason':a2[aU(0x1f3)]?a2[aU(0x3be)+'son']:void(0xe57+0x1e48+-0x2c9f)};}};function ye(a2,a3){const aV=at;let a4=[aV(0x312)+'e',a2,'--yes','--no-str'+aV(0x44e),aV(0x220)+aV(0x244),aV(0x2c2)+aV(0x37e)+'s','--no-ana'+'lytics'];return a3[aV(0x2c8)]&&a4[aV(0x268)](aV(0x228),a3[aV(0x2c8)]),a3[aV(0x35d)+'gs']?.[aV(0x39b)]&&a4[aV(0x268)](...a3['extraFla'+'gs']),a4;}var k=class{constructor(a2='aider'){const aW=at;this[aW(0x24f)]=a2;}[at(0x24f)];['id']=at(0x406);[at(0x248)+'ame']=at(0x256);async[at(0x380)](){const aX=at;try{let {stdout:a2,exitCode:a3}=await d(this[aX(0x24f)],[aX(0x2b8)+'n'],{'reject':!(0x104c+-0x4fa*-0x3+-0x1f39),'timeout':0x2710,'windowsHide':!(-0x103a+0x1ebc+-0xe82)});if(a3===-0xb*0x49+0x10b2*-0x2+0x2487*0x1)return{'installed':!(0x602*0x1+0x254f*0x1+-0x2b51),'version':a2[aX(0x1f5)](),'installHint':D};}catch{}return{'installed':!(-0x1b*-0x105+0x11db+-0x1*0x2d61),'installHint':D};}[at(0x416)](a2,a3){const aY=at;return f({'command':this[aY(0x24f)],'args':ye(a2,a3),'opts':a3,'parser':new F(),'installHint':D});}};import{execa as i}from'execa';import{createRequire as l}from'module';var Re=l(import.meta.url),U,K=!(-0x1*-0x1511+0x2244+-0x3754);function Te(){if(U||K)return U;try{U=Re('node-pty');}catch{K=!(0x2678+0x1ed3+0x1*-0x454b);}return U;}var xe=new RegExp([at(0x368)+'u009B][['+at(0x313)+at(0x403)+at(0x205)+'a-zA-Z\x5cd'+at(0x36f)+at(0x27b)+at(0x23a)+at(0x3f3)+at(0x3b1)+at(0x3cd)+at(0x2e4)+')*)?\x5cu00'+at(0x1e2),at(0x342)+'{1,4}(?:'+at(0x1fe)+at(0x425)+at(0x29d)+at(0x378)+at(0x21c)][at(0x2b6)]('|'),'g');function we(a2){const aZ=at;return a2[aZ(0x354)](xe,'');}function Se(a2){const b0=at;let a3={};for(let [a4,a5]of Object[b0(0x2d9)](process.env))a5!==void(0x7a9+-0x4be*0x3+-0x29*-0x29)&&(a3[a4]=a5);return{...a3,...a2};}function V(a2,a3,a4){const b2=at;let a5=[],a6='',a7=!(-0xc9c+0x251e+-0x1881),a8=null,a9=()=>{a8?.(),a8=null;},aa=an=>{const b1=b;a5[b1(0x268)](an),a9();},ab,ac,ad,af=!(0x2e3*0x7+-0x1bb8*-0x1+-0x2fec),ag,ah=!(0x1ae8+0x8*-0x23f+-0x8ef),ai=Te();if(!ai)ah=!(0xbd8+-0xcdb+0x103);else try{ag=ai['spawn'](a2,a3,{'name':b2(0x404)+b2(0x1ce),'cols':0x78,'rows':0x28,'cwd':a4[b2(0x1d2)],'env':Se(a4[b2(0x3ae)])});}catch{ah=!(-0x1*0x4c6+0x1*0x7e1+-0x31b);}let aj=an=>{af=!(0xd1f*-0x2+0x48*0x74+-0x2*0x331),ad=an;try{ag?.['kill']();}catch{}},ak=()=>{const b3=b2;a4['inactivi'+b3(0x3f6)+b3(0x298)]&&(ab&&clearTimeout(ab),ab=setTimeout(()=>aj(b3(0x24a)+'ty'),a4[b3(0x24a)+b3(0x3f6)+'tMs']));},al=new Promise(an=>{const b4=b2;if(ah||!ag){a7=!(-0x56f*0x1+0x23fd*-0x1+-0x296c*-0x1),a9(),an({'exitCode':0x1,'stderr':'','aborted':!(0xac4+0x21ae+-0x1*0x2c71),'spawnFailed':!(-0x6ff+0x9c3*-0x3+0x2448)});return;}ag[b4(0x308)](ao=>{const b5=b4;ak(),a6+=we(ao);let ap;for(;(ap=a6[b5(0x1da)]('\x0a'))>=0x95f+-0x246b+0x1b0c;)aa(a6[b5(0x2a0)](-0x55*0xc+0x90b+-0x50f,ap)[b5(0x354)](/\r$/,'')),a6=a6['slice'](ap+(0x16a8+0x1*0x13d5+0x4*-0xa9f));}),ag[b4(0x29b)](({exitCode:ao,signal:ap})=>{const b6=b4;ab&&clearTimeout(ab),ac&&clearTimeout(ac),a6[b6(0x1f5)]()&&aa(a6[b6(0x354)](/\r$/,'')),a6='',a7=!(0x2709+-0x1*-0x1001+-0x370a),a9(),an({'exitCode':typeof ao==b6(0x237)?ao:af?-0x14da+-0x672+0x2*0xde7:-0x2bf*0xd+0x2258+0x15c,'stderr':'','aborted':af,'abortReason':af?ad:void(0x12d6+0x540+-0x1*0x1816),'spawnFailed':!(-0x2638+-0x2149+0xbeb*0x6),'signal':ap?String(ap):void(0xbab*-0x2+-0x6c7+0x1e1d)});}),a4[b4(0x3e9)+'s']&&(ac=setTimeout(()=>aj(b4(0x38e)),a4['timeoutM'+'s'])),a4[b4(0x3db)]&&(a4['signal'][b4(0x1f3)]?aj('signal'):a4[b4(0x3db)]['addEvent'+'Listener']('abort',()=>aj('signal'),{'once':!(-0x797*0x3+-0x20b8+0x377d)})),ak();});async function*am(){const b7=b2;for(;;){if(a5[b7(0x39b)]>0xe*-0x5f+0x1*-0x7c5+0x1*0xcf7){yield a5[b7(0x250)]();continue;}if(a7)return;await new Promise(an=>{a8=an;});}}return{'lines':am(),'result':al};}var $=at(0x1b7)+at(0x362)+at(0x3de)+at(0x31e)+at(0x2a8)+at(0x211)+at(0x223)+at(0x2ba)+at(0x35b)+at(0x307)+'gle\x20(it\x20'+'replaces'+at(0x35e)+'CLI),\x20th'+'en\x20sign\x20'+at(0x33a)+at(0x36a)+at(0x38b)+at(0x2e7),H=class{['message']='';['onLine'](a2){const b8=at;return this[b8(0x1f7)]+=this['message']?'\x0a'+a2:a2,a2['trim']()?[{'type':b8(0x1f7),'role':b8(0x327)+'t','text':a2+'\x0a'}]:[];}[at(0x3e7)](a2){const b9=at;return{'message':this['message'],'usage':g(),'exitCode':a2['exitCode'],'aborted':a2[b9(0x1f3)]||void(0x1*-0x219f+0xda8+0x13*0x10d),'abortReason':a2[b9(0x1f3)]?a2[b9(0x3be)+b9(0x384)]:void(-0xd71+-0x2057*0x1+0x2dc8)};}};function Ce(a2,a3){const ba=at;let a4=['-p',a2,ba(0x3bf)+ba(0x37d)+ba(0x3b5)+ba(0x39a)];return a3[ba(0x2c8)]&&a4[ba(0x268)](ba(0x228),a3[ba(0x2c8)]),a3[ba(0x35d)+'gs']?.[ba(0x39b)]&&a4[ba(0x268)](...a3['extraFla'+'gs']),a4;}var _=class{constructor(a2='agy'){const bb=at;this[bb(0x24f)]=a2;}[at(0x24f)];['id']='antigrav'+at(0x32e);[at(0x248)+at(0x247)]=at(0x1b7)+'ity\x20(Gem'+at(0x381);[at(0x343)]=!(-0x1e13+0x1ee*0x4+0x165c);async[at(0x380)](){const bc=at;try{let {stdout:a2,exitCode:a3}=await i(this['bin'],['--versio'+'n'],{'reject':!(0x66c+-0x61a*0x1+-0x51),'timeout':0x2710,'windowsHide':!(0x3*0xb23+0x23dd+0x4546*-0x1)});if(a3===-0x1dab+-0x5*-0x206+0x23*0x8f)return{'installed':!(-0xccb+0x1bc4+-0xef9),'version':a2[bc(0x1f5)](),'installHint':$};}catch{}return{'installed':!(0x6e6+-0x1fee+-0xdd*-0x1d),'installHint':$};}[at(0x416)](a2,a3){const bd=at;return f({'command':this[bd(0x24f)],'args':Ce(a2,a3),'opts':a3,'parser':new H(),'installHint':$,'spawn':V});}};import{execa as m}from'execa';function L(a2){const bf=at;let a3=a2['trim']();if(a3&&!(a3[0x3*0xa2d+-0x1*0x8f9+-0x158e]!=='{'&&a3[-0x11fb*-0x1+0x1eb2+-0x30ad*0x1]!=='['))try{let a4=JSON[bf(0x26e)](a3);return typeof a4==bf(0x2f8)&&a4!==null?a4:void(0x43e+0x2058+-0x2496);}catch{return;}}var N=at(0x439)+at(0x3d6)+at(0x3de)+at(0x31e)+at(0x2e0)+at(0x1d7)+at(0x2ed)+at(0x30c)+at(0x358)+'ai/claud'+at(0x373)+at(0x1b9)+at(0x1bd)+at(0x1ea)+at(0x1ff)+'nce.\x20See'+at(0x2ba)+at(0x229)+at(0x3d0)+at(0x2ca)+'code',O=class{[at(0x40d)+'d'];[at(0x2c8)];[at(0x409)+'sage']='';[at(0x285)+'ge']=g();constructor(a2){this['model']=a2;}['onLine'](a2){const bg=at;let a3=L(a2);if(!a3)return[];let a4=[],a5=a3[bg(0x1e6)];if(typeof a3[bg(0x218)+'id']==bg(0x345)&&(this[bg(0x40d)+'d']=a3[bg(0x218)+'id']),a5===bg(0x3cf)&&a3['subtype']==='init')return typeof a3[bg(0x2c8)]==bg(0x345)&&(this[bg(0x2c8)]=a3[bg(0x2c8)]),a4;if(a5===bg(0x327)+'t'){let a6=a3[bg(0x1f7)];if(!a6)return a4;typeof a6['model']=='string'&&(this[bg(0x2c8)]=a6[bg(0x2c8)]);let a7=a6['content']??[];for(let a9 of a7)a9[bg(0x1e6)]===bg(0x37b)&&typeof a9[bg(0x37b)]=='string'?a4[bg(0x268)]({'type':bg(0x1f7),'role':bg(0x327)+'t','text':a9[bg(0x37b)]}):a9[bg(0x1e6)]===bg(0x3cb)&&a4[bg(0x268)]({'type':bg(0x245)+'l','name':String(a9[bg(0x2a6)]??bg(0x231)),'input':a9[bg(0x263)],'id':typeof a9['id']==bg(0x345)?a9['id']:void(-0x76a+-0xc2*-0x18+0xac6*-0x1)});let a8=a6[bg(0x21a)];if(a8){let aa=this[bg(0x351)](a8,void(-0x312+0x15*-0x141+-0x3*-0x9cd));a4[bg(0x268)]({'type':'usage','usage':aa,'cumulative':!(-0x1909+0x1*-0x251+0x1b5b*0x1)});}return a4;}if(a5===bg(0x2f5)){typeof a3[bg(0x2f5)]==bg(0x345)&&(this['finalMes'+bg(0x2ab)]=a3[bg(0x2f5)]);let ab=a3[bg(0x21a)],ac=typeof a3['total_co'+bg(0x27c)]==bg(0x237)?a3[bg(0x219)+bg(0x27c)]:void(0x467+-0x7ae+-0x347*-0x1);return this[bg(0x285)+'ge']=ab?this[bg(0x351)](ab,ac):this['finalUsa'+'ge'],a4[bg(0x268)]({'type':bg(0x21a),'usage':this[bg(0x285)+'ge'],'cumulative':!(-0x1b57+-0x43*-0x92+0x79*-0x17)}),a4;}return(a5==='error'||a3[bg(0x1fc)]===!(-0x3*-0x62a+0x124f+-0x24cd))&&a4['push']({'type':bg(0x3c2),'message':String(a3[bg(0x3c2)]??a3[bg(0x2f5)]??bg(0x2b1)+bg(0x3c2)),'fatal':!(0xe3c*0x1+0x24f3+-0x332f)}),a4;}['mapUsage'](a2,a3){const bh=at;let a4=a2[bh(0x1c9)+'kens']??-0x12c+-0x86*-0x6+-0x1f8,a5=a2[bh(0x272)+bh(0x2b9)]??0x27*0xd+0x1*0x58d+-0x788,a6=a2['cache_re'+bh(0x317)+bh(0x305)]??0xae4+0x1*0x269e+0x1*-0x3182,a7=a2['cache_cr'+bh(0x25e)+bh(0x24c)+bh(0x3c1)]??-0x1*-0x1ffa+0x1*0x1d2f+-0x3d29,a8={'inputTokens':a4,'outputTokens':a5,'cacheReadTokens':a6,'cacheWriteTokens':a7};return a3!=null?{...a8,'costUsd':a3,'costSource':bh(0x1c2)}:{...a8,'costUsd':T(a8,this[bh(0x2c8)]),'costSource':bh(0x410)};}[at(0x3e7)](a2){const bi=at;return{'message':this[bi(0x409)+bi(0x2ab)],'usage':this[bi(0x285)+'ge'],'exitCode':a2[bi(0x377)],'sessionId':this[bi(0x40d)+'d'],'aborted':a2['aborted']||void(-0x9*-0x1e3+0x18b+-0x943*0x2),'abortReason':a2[bi(0x1f3)]?a2[bi(0x3be)+bi(0x384)]:void(-0x655+-0x1*0x17d7+-0x1*-0x1e2c)};}};function Z(a2,a3,a4){const bj=at;let a5=['-p',a2,bj(0x1e3)+'-format','stream-j'+bj(0x384),bj(0x291)+'e'];return a3['model']&&a5['push'](bj(0x228),a3['model']),a3[bj(0x41e)+bj(0x366)]?.[bj(0x39b)]&&a5[bj(0x268)]('--allowe'+bj(0x431),a3[bj(0x41e)+bj(0x366)][bj(0x2b6)](',')),a4&&a5[bj(0x268)](bj(0x293),a4),a3[bj(0x35d)+'gs']?.[bj(0x264)](a6=>a6[bj(0x1c6)+'th']('--permis'+bj(0x1c4)+'e'))||a5[bj(0x268)](bj(0x449)+'sion-mod'+'e',bj(0x30b)+bj(0x283)),a3[bj(0x35d)+'gs']?.['length']&&a5[bj(0x268)](...a3[bj(0x35d)+'gs']),a5;}var S=class{constructor(a2=at(0x413)){const bk=at;this[bk(0x24f)]=a2;}['bin'];['id']=at(0x3dd)+at(0x40b);['displayN'+'ame']='Claude\x20C'+at(0x40b);async['detect'](){const bl=at;try{let {stdout:a2,exitCode:a3}=await m(this[bl(0x24f)],['--versio'+'n'],{'reject':!(-0x95*0x5+0x1b94+-0x18aa),'timeout':0x2710,'windowsHide':!(-0x17*-0xdb+-0x2334+0xf87)});if(a3===-0x29a+-0x4a9*0x8+0x27e2)return{'installed':!(0x14c7+0x13*0x5b+-0xdc4*0x2),'version':a2[bl(0x1f5)](),'installHint':N};}catch{}return{'installed':!(0xdd9*-0x2+0x2*-0x951+0x2e55),'installHint':N};}[at(0x416)](a2,a3){const bm=at;return f({'command':this[bm(0x24f)],'args':Z(a2,a3),'opts':a3,'parser':new O(a3[bm(0x2c8)]),'installHint':N});}['resume'](a2,a3,a4){const bn=at;return f({'command':this[bn(0x24f)],'args':Z(a3,a4,a2),'opts':a4,'parser':new O(a4['model']),'installHint':N});}};import n from'fs';import p from'os';import r from'path';import{execa as s}from'execa';var I='Codex\x20CL'+'I\x20not\x20fo'+at(0x408)+'tall\x20it\x20'+'with:\x0a\x20\x20'+at(0x1f4)+at(0x441)+at(0x21e)+at(0x361)+at(0x287)+at(0x3af)+at(0x3b6)+'\x20https:/'+'/github.'+'com/open'+at(0x424),j=class{constructor(a2){const bo=at;this[bo(0x2c8)]=a2;}[at(0x2c8)];['threadId'];['finalMes'+at(0x2ab)]='';[at(0x22c)]=g();['onLine'](a2){const bp=at;let a3=L(a2);if(!a3)return[];let a4=[],a5=a3[bp(0x1e6)];if(a5===bp(0x427)+bp(0x1d4)&&typeof a3['thread_i'+'d']==bp(0x345))return this[bp(0x2d0)]=a3[bp(0x2fd)+'d'],a4;if(a5==='item.com'+bp(0x214)){let a6=a3['item'];return a6&&a4['push'](...this[bp(0x27f)](a6)),a4;}if(a5===bp(0x30e)+bp(0x214)){let a7=a3['usage'];if(a7){let a8=this[bp(0x351)](a7);this[bp(0x2fa)+'te'](a8),a4['push']({'type':bp(0x21a),'usage':a8,'cumulative':!(-0x26c6+0x1d6d+-0x2*-0x4ad)});}return a4;}if(a5===bp(0x3c2)||a5===bp(0x2bb)+bp(0x1cd)){let a9=a3[bp(0x1f7)]??a3['error']?.[bp(0x1f7)]??bp(0x2cf)+'ported\x20a'+bp(0x2e6);a4['push']({'type':bp(0x3c2),'message':a9,'fatal':!(0x449*0x8+-0x1f02+-0x1*0x346)});}return a4;}[at(0x27f)](a2){const bq=at;let a3=a2[bq(0x1e6)];return a3===bq(0x3b7)+'ssage'&&typeof a2['text']==bq(0x345)?(this[bq(0x409)+'sage']=a2['text'],[{'type':'message','role':'assistan'+'t','text':a2[bq(0x37b)]}]):a3==='command_'+bq(0x393)+'n'||a3===bq(0x2f2)+bq(0x3fe)||a3===bq(0x353)+bq(0x3fe)?[{'type':bq(0x245)+'l','name':String(a2['command']??a2[bq(0x2a6)]??a3),'input':a2['argument'+'s']??a2['command'],'id':typeof a2['id']==bq(0x345)?a2['id']:void(-0x123c+-0x842+0x1a7e*0x1)}]:[];}['mapUsage'](a2){const br=at;let a3=a2[br(0x3f1)+'nput_tok'+br(0x3c1)]??0x211e+0x1b34*-0x1+-0x5ea,a4=Math['max'](-0x4*0x7ef+-0x21a7+0x13*0x371,(a2[br(0x1c9)+br(0x299)]??0x1*0xc31+-0x1678+0xa47*0x1)-a3),a5=(a2[br(0x272)+br(0x2b9)]??0x2*0xe9+-0x266b+-0xc33*-0x3)+(a2[br(0x364)+br(0x289)+br(0x305)]??0x171*-0x2+0x1258+0x2*-0x7bb),a6={'inputTokens':a4,'outputTokens':a5,'cacheReadTokens':a3};return{...a6,'costUsd':T(a6,this[br(0x2c8)]),'costSource':br(0x410)};}[at(0x2fa)+'te'](a2){const bs=at;this['acc']={'inputTokens':this[bs(0x22c)][bs(0x3f4)+bs(0x3c1)]+a2['inputTok'+bs(0x3c1)],'outputTokens':this[bs(0x22c)]['outputTo'+bs(0x299)]+a2[bs(0x371)+bs(0x299)],'cacheReadTokens':(this[bs(0x22c)][bs(0x3eb)+bs(0x32c)]??0x13*0x1e5+-0x20c3*0x1+0x12*-0x2e)+(a2[bs(0x3eb)+'dTokens']??0x1*0x136b+-0x10a2*-0x1+-0x1*0x240d),'cacheWriteTokens':(this[bs(0x22c)][bs(0x3c5)+bs(0x40c)]??0x333+-0x257*0x6+0xad7)+(a2[bs(0x3c5)+'teTokens']??-0xfd1+0x22db+-0x130a),'costUsd':this[bs(0x22c)][bs(0x235)]+a2[bs(0x235)],'costSource':bs(0x410)};}[at(0x3e7)](a2){const bt=at;return{'message':this[bt(0x409)+bt(0x2ab)],'usage':this['acc'],'exitCode':a2[bt(0x377)],'sessionId':this[bt(0x2d0)],'aborted':a2['aborted']||void(-0x1*0x2581+-0x112b+-0x36ac*-0x1),'abortReason':a2[bt(0x1f3)]?a2['abortRea'+bt(0x384)]:void(-0x2478+-0x1074+0x34ec)};}};function Le(a2){const bu=at;if(a2==null)return;if(typeof a2==bu(0x345))return a2;let a3=r['join'](p[bu(0x1f8)](),bu(0x434)+bu(0x3ed)+bu(0x43c)+Date[bu(0x3da)]()+'.json');return n[bu(0x432)+bu(0x319)](a3,JSON['stringif'+'y'](a2),bu(0x1e5)),a3;}function Q(a2,a3,a4){const bv=at;let a5=[bv(0x2ad)];a4&&a5[bv(0x268)](bv(0x2e8),a4),a5[bv(0x268)](bv(0x3d5));let a6=a3[bv(0x35d)+'gs']?.[bv(0x264)](a8=>a8[bv(0x1c6)+'th'](bv(0x41b)+'x'));!a4&&!a6&&a5[bv(0x268)](bv(0x41b)+'x','workspac'+'e-write'),a3[bv(0x2c8)]&&a5[bv(0x268)](bv(0x228),a3[bv(0x2c8)]);let a7=Le(a3[bv(0x3ec)+bv(0x226)]);return a7&&a5[bv(0x268)](bv(0x1e3)+bv(0x44a),a7),a3['extraFla'+'gs']?.['length']&&a5[bv(0x268)](...a3[bv(0x35d)+'gs']),a5[bv(0x268)](a2),a5;}var v=class{constructor(a2=at(0x429)){const bw=at;this[bw(0x24f)]=a2;}[at(0x24f)];['id']=at(0x429);[at(0x248)+at(0x247)]=at(0x1eb)+'odex';async[at(0x380)](){const bx=at;try{let {stdout:a2,exitCode:a3}=await s(this[bx(0x24f)],['--versio'+'n'],{'reject':!(-0xb9f+-0x16*0xf9+0x2106),'timeout':0x2710,'windowsHide':!(0x13*0x1a6+-0x2*-0xa84+-0x1a2d*0x2)});if(a3===-0x697+0x22de+-0x1c47)return{'installed':!(-0x55*-0x60+0x65b*0x2+-0x2c96),'version':a2[bx(0x1f5)](),'installHint':I};}catch{}return{'installed':!(-0x1*-0x755+-0x2136+-0x19e2*-0x1),'installHint':I};}[at(0x416)](a2,a3){const by=at;return f({'command':this[by(0x24f)],'args':Q(a2,a3),'opts':a3,'parser':new j(a3[by(0x2c8)]),'installHint':I});}[at(0x2e8)](a2,a3,a4){const bz=at;return f({'command':this[bz(0x24f)],'args':Q(a3,a4,a2),'opts':a4,'parser':new j(a4[bz(0x2c8)]),'installHint':I});}};function Ne(a2){const bA=at;let a3=new Map(),a4=[new S(a2?.[bA(0x2f1)][bA(0x3dd)+bA(0x40b)]?.[bA(0x24f)]),new v(a2?.['agents'][bA(0x429)]?.[bA(0x24f)]),new k(a2?.[bA(0x2f1)]['aider']?.[bA(0x24f)]),new _(a2?.[bA(0x2f1)][bA(0x30a)+bA(0x32e)]?.[bA(0x24f)])];for(let a5 of a4)a2?.[bA(0x2f1)][a5['id']]?.[bA(0x2cb)]!==!(-0xbfc+0x1951+-0xd54)&&a3['set'](a5['id'],a5);return a3;}function Oe(a2,a3){const bB=at;let a4=a2[bB(0x1ba)](a3);if(!a4)throw new Error(bB(0x1b6)+bB(0x1bb)+a3+('\x22.\x20Avail'+bB(0x3bb))+[...a2['keys']()][bB(0x2b6)](',\x20'));return a4;}async function Ie(a2){const bC=at;return Promise[bC(0x3ad)]([...a2[bC(0x31c)]()][bC(0x1e1)](async a3=>({'adapter':a3,'detect':await a3[bC(0x380)]()})));}import t from'fs';import u from'path';import{pathToFileURL as w}from'url';import{ZodError as x}from'zod';import y from'path';import C from'env-paths';var q=C(at(0x434)+'li',{'suffix':''});function ee(){const bD=at;return q[bD(0x3a3)];}function te(){const bE=at;return y[bE(0x2b6)](q[bE(0x209)],bE(0x420));}import{z as E}from'zod';var Pe=E[at(0x2f8)]({'maxCostPerRunUsd':E[at(0x237)]()[at(0x1cb)]()[at(0x25c)](),'dailyCapUsd':E[at(0x237)]()[at(0x1cb)]()[at(0x25c)](),'weeklyCapUsd':E[at(0x237)]()[at(0x1cb)]()[at(0x25c)](),'monthlyCapUsd':E['number']()[at(0x1cb)]()[at(0x25c)]()})['strict'](),De=E[at(0x2f8)]({'key':E[at(0x345)](),'agent':E['string'](),'model':E[at(0x345)](),'tier':E[at(0x20d)]([E[at(0x25b)](0x2683*0x1+0x780+-0x2e02),E[at(0x25b)](0x19b*0x1+0x3*-0xbdf+0x2204),E[at(0x25b)](0x3c*0x92+-0x1df6+-0x43f)]),'price':E[at(0x2f8)]({'input':E[at(0x237)]()['nonnegat'+at(0x3c6)](),'output':E[at(0x237)]()['nonnegat'+at(0x3c6)]()})})[at(0x374)](),Fe=E[at(0x2f8)]({'enabled':E['boolean']()[at(0x372)](!(-0x229d*-0x1+0x7bf+-0x1*0x2a5c)),'strategy':E[at(0x2af)]([at(0x225)+'istic',at(0x2aa)])[at(0x372)]('determin'+at(0x238)),'prefer':E[at(0x3c3)](E[at(0x345)]())[at(0x372)]([]),'only':E[at(0x3c3)](E[at(0x345)]())[at(0x25c)](),'models':E['array'](De)[at(0x25c)]()})['strict'](),$e=E[at(0x2f8)]({'enabled':E[at(0x1be)]()[at(0x372)](!(-0x1e17*0x1+-0x1*0xb4d+0x2964)),'command':E[at(0x345)]()['optional'](),'timeoutMs':E['number']()[at(0x3fa)]()[at(0x1cb)]()[at(0x372)](-0x61*0xdcd+-0x480e2+0xe4f6f)})['strict'](),He=E[at(0x2f8)]({'enabled':E[at(0x1be)]()[at(0x372)](!(0x19c+-0x2228+0x1*0x208d)),'maxAttempts':E[at(0x237)]()[at(0x3fa)]()['positive']()[at(0x372)](-0xcaf+-0x11*-0x1c5+-0x1163),'escalate':E['boolean']()[at(0x372)](!(-0x1a2d+0x23e1+-0xc*0xcf))})[at(0x374)](),ze=E[at(0x2f8)]({'agents':E[at(0x3c3)](E[at(0x345)]())['optional'](),'select':E[at(0x2af)]([at(0x20e),at(0x2eb),'first-pa'+'ss'])[at(0x372)](at(0x20e)),'keepWorktrees':E[at(0x1be)]()[at(0x372)](!(-0xce*-0x27+-0x1*0x41f+-0x1b42*0x1)),'linkPaths':E['array'](E[at(0x345)]())[at(0x25c)]()})[at(0x374)](),We=E[at(0x2f8)]({'weights':E[at(0x2f8)]({'capability':E['number']()['nonnegat'+at(0x3c6)]()['default'](-0x679+0x1*-0x137b+-0x25c*-0xb+0.7),'cost':E[at(0x237)]()[at(0x1c5)+at(0x3c6)]()[at(0x372)](-0x93a+-0x1*-0x404+-0x536*-0x1+0.2),'speed':E[at(0x237)]()[at(0x1c5)+'ive']()['default'](0xd1*-0x1d+0x769+0x1044+0.1)})[at(0x374)]()['default']({}),'privatePseudocount':E['number']()[at(0x1cb)]()[at(0x372)](0x3*-0x905+-0x171d+-0x1*-0x3231),'explore':E[at(0x1be)]()['default'](!(-0xdb9+-0xb*-0x53+0xa29))})[at(0x374)](),Ge=E[at(0x2f8)]({'dir':E[at(0x345)]()['default'](at(0x2ea)+at(0x401)+'s'),'models':E[at(0x3c3)](E[at(0x345)]())[at(0x25c)]()})['strict'](),Xe=E[at(0x2f8)]({'enabled':E[at(0x1be)]()[at(0x372)](!(-0x220b+0x93a+0x9*0x2c2)),'endpoint':E['string']()['url']()[at(0x25c)]()})['strict'](),Be=E[at(0x2f8)]({'enabled':E[at(0x1be)]()[at(0x372)](!(-0x17*0x2+-0x983+-0x33b*-0x3)),'defaultFlags':E['array'](E[at(0x345)]())[at(0x372)]([]),'model':E[at(0x345)]()[at(0x25c)](),'bin':E[at(0x345)]()[at(0x25c)](),'allowedTools':E[at(0x3c3)](E[at(0x345)]())[at(0x25c)]()})[at(0x374)](),z=E[at(0x2f8)]({'agents':E[at(0x3c8)](E['string'](),Be)[at(0x372)]({}),'defaultAgent':E[at(0x345)]()[at(0x372)](at(0x3dd)+at(0x40b)),'routing':Fe[at(0x372)]({}),'verify':$e[at(0x372)]({}),'heal':He[at(0x372)]({}),'race':ze[at(0x372)]({}),'advise':We[at(0x372)]({}),'eval':Ge['default']({}),'telemetry':Xe['default']({}),'budgets':Pe[at(0x372)]({}),'timeoutMs':E['number']()[at(0x3fa)]()[at(0x1cb)]()['default'](-0x2e00b+0x85745*0x1+0x3b086*0x1),'inactivityTimeoutMs':E['number']()[at(0x3fa)]()['positive']()['default'](0x2919f+-0x3d42*-0xe+-0x4167b)})[at(0x374)](),Ve=['aiforcec'+at(0x249)+at(0x1b8),at(0x434)+'li.confi'+at(0x452)];function W(a2,a3){const bF=at;if(Array[bF(0x3b8)](a2)||Array['isArray'](a3)||typeof a2!=bF(0x2f8)||a2==null)return a3??a2;let a4={...a2};for(let [a5,a6]of Object[bF(0x2d9)](a3)){if(a6===void(0x1021*-0x1+0x239*-0xd+-0xe2*-0x33))continue;let a7=a4[a5];a7&&typeof a7=='object'&&!Array[bF(0x3b8)](a7)&&a6&&typeof a6=='object'&&!Array[bF(0x3b8)](a6)?a4[a5]=W(a7,a6):a4[a5]=a6;}return a4;}async function ne(a2){const bG=at;if(a2[bG(0x336)](bG(0x346)))return JSON[bG(0x26e)](t[bG(0x2a2)+bG(0x36d)](a2,bG(0x1e5)));let a3=await import(w(a2)[bG(0x31d)]);return a3[bG(0x372)]??a3;}function se(a2,a3){const bH=at;for(let a4 of a3){let a5=u[bH(0x2b6)](a2,a4);if(t[bH(0x273)+'nc'](a5))return a5;}}async function Ze(a2=process['cwd']()){const bI=at;let a3=[],a4={},a5=se(ee(),['aiforcec'+bI(0x249)+bI(0x1b8),'aiforcec'+bI(0x249)+bI(0x452)]);a5&&(a4=W(a4,await ne(a5)),a3['push'](a5));let a6=se(a2,Ve);a6&&(a4=W(a4,await ne(a6)),a3[bI(0x268)](a6));try{return{'config':z[bI(0x26e)](a4),'sources':a3};}catch(a7){if(a7 instanceof x){let a8=a7['issues'][bI(0x1e1)](a9=>bI(0x1e7)+(a9[bI(0x370)][bI(0x2b6)]('.')||bI(0x2b3))+':\x20'+a9[bI(0x1f7)])['join']('\x0a');throw new Error(bI(0x23d)+bI(0x434)+bI(0x1bc)+bI(0x363)+a8);}throw a7;}}function Qe(a2,a3){const bJ=at;return a2[bJ(0x2f1)][a3]??{'enabled':!(-0x1*0x14c6+-0x7dc+0xa*0x2dd),'defaultFlags':[]};}import R from'fs';import a0 from'path';import a1 from'better-sqlite3';var G=class{['db'];constructor(a2=te()){const bK=at;R['mkdirSyn'+'c'](a0[bK(0x2cc)](a2),{'recursive':!(0x2*-0xe74+0x2*-0xbe9+0x18d*0x22)}),this['db']=new a1(a2),this['db'][bK(0x2a4)](bK(0x1ca)+bK(0x2bd)+'AL'),this[bK(0x274)]();}[at(0x274)](){const bL=at;this['db'][bL(0x2ad)](bL(0x284)+'REATE\x20TA'+bL(0x344)+bL(0x224)+bL(0x3ee)+bL(0x350)+bL(0x233)+bL(0x2a1)+'NTEGER\x20P'+bL(0x275)+bL(0x44b)+bL(0x257)+bL(0x2f3)+'\x20\x20ts\x20\x20\x20\x20'+'\x20\x20\x20\x20\x20\x20\x20\x20'+'TEXT\x20\x20\x20\x20'+bL(0x33d)+',\x0a\x20\x20\x20\x20\x20\x20'+bL(0x304)+'\x20\x20\x20\x20\x20\x20\x20\x20'+'TEXT\x20\x20\x20\x20'+'NOT\x20NULL'+bL(0x2f3)+bL(0x349)+'t_path\x20\x20'+bL(0x385)+bL(0x33d)+bL(0x2f3)+bL(0x3ba)+'_hash\x20\x20\x20'+bL(0x385)+bL(0x33d)+bL(0x2f3)+bL(0x33f)+'\x20\x20\x20\x20\x20\x20\x20\x20'+bL(0x3a2)+bL(0x286)+bL(0x367)+'ns\x20\x20INTE'+bL(0x267)+bL(0x2cd)+bL(0x201)+'\x20\x20\x20\x20\x20\x20\x20\x20'+bL(0x272)+bL(0x332)+bL(0x3a0)+bL(0x41f)+bL(0x42d)+',\x0a\x20\x20\x20\x20\x20\x20'+bL(0x3ac)+bL(0x1c0)+bL(0x203)+'NOT\x20NULL'+bL(0x388)+bL(0x2c9)+bL(0x3ab)+bL(0x321)+bL(0x279)+bL(0x3e1)+bL(0x3b3)+bL(0x1e9)+bL(0x204)+bL(0x318)+bL(0x3fd)+bL(0x3a7)+bL(0x2cd)+bL(0x201)+bL(0x3df)+'cost_sou'+bL(0x1df)+'XT\x20\x20\x20\x20NO'+bL(0x41f)+bL(0x3f9)+bL(0x315)+',\x0a\x20\x20\x20\x20\x20\x20'+bL(0x282)+bL(0x32f)+bL(0x203)+'NOT\x20NULL'+bL(0x388)+bL(0x2c9)+bL(0x25f)+bL(0x3a1)+bL(0x279)+bL(0x3e1)+bL(0x3b3)+bL(0x1e9)+bL(0x37a)+'ort_reas'+'on\x20\x20TEXT'+bL(0x2f3)+bL(0x281)+bL(0x2e1)+bL(0x26b)+bL(0x33b)+bL(0x2d7)+bL(0x222)+bL(0x290)+'EXISTS\x20i'+bL(0x35c)+'ts\x20ON\x20ru'+bL(0x265)+bL(0x300)+bL(0x352)+bL(0x26a)+bL(0x266)+bL(0x20b)+bL(0x200)+bL(0x316)+bL(0x36c)+'\x20\x20\x20\x20\x20\x20CR'+'EATE\x20IND'+bL(0x26a)+bL(0x266)+bL(0x20b)+'s_projec'+bL(0x34b)+bL(0x396)+bL(0x2fb)+bL(0x2e3));let a2=new Set(this['db'][bL(0x276)]('PRAGMA\x20t'+'able_inf'+'o(runs)')[bL(0x3ad)]()[bL(0x1e1)](a4=>a4[bL(0x2a6)])),a3=[[bL(0x2c6),'TEXT'],[bL(0x1d9),bL(0x2ac)],[bL(0x301)+'xit','INTEGER'],[bL(0x2e2),'INTEGER'],[bL(0x2b4),'TEXT'],['won','INTEGER\x20'+bL(0x33d)+'\x20DEFAULT'+'\x200'],[bL(0x2c3)+bL(0x1fb),bL(0x348)],[bL(0x234)+'ss',bL(0x2ac)],[bL(0x407)+'e',bL(0x2ac)],[bL(0x3d1),bL(0x2ac)],[bL(0x2d8)+'ty',bL(0x423)],[bL(0x239),'REAL']];for(let [a4,a5]of a3)a2[bL(0x40f)](a4)||this['db'][bL(0x2ad)](bL(0x42a)+bL(0x3d4)+bL(0x328)+bL(0x3b4)+a4+'\x20'+a5);}[at(0x3c8)](a2){const bM=at;this['db']['prepare'](bM(0x240)+bM(0x2d6)+'\x0a\x20\x20\x20\x20\x20\x20\x20'+bM(0x28b)+'agent,\x20p'+bM(0x34d)+bM(0x43a)+bM(0x35a)+bM(0x215)+bM(0x350)+bM(0x390)+bM(0x333)+bM(0x3cc)+bM(0x323)+bM(0x382)+bM(0x451)+bM(0x331)+',\x0a\x20\x20\x20\x20\x20\x20'+bM(0x1c3)+bM(0x3c9)+bM(0x337)+bM(0x1dc)+bM(0x1d1)+bM(0x2c5)+'abort_re'+bM(0x29a)+bM(0x391)+',\x0a\x20\x20\x20\x20\x20\x20'+'\x20\x20\x20\x20\x20mod'+'e,\x20outco'+bM(0x443)+bM(0x426)+bM(0x445)+',\x20race_i'+bM(0x2df)+bM(0x2c3)+bM(0x26d)+bM(0x341)+bM(0x31a)+'pe,\x0a\x20\x20\x20\x20'+'\x20\x20\x20\x20\x20\x20\x20c'+'ontext,\x20'+bM(0x2d8)+bM(0x369)+bM(0x1ec)+bM(0x3f7)+bM(0x31b)+bM(0x2d4)+bM(0x3c7)+'nt,\x20@pro'+'jectPath'+bM(0x2db)+bM(0x2fc)+bM(0x436)+'\x20\x20\x20\x20\x20\x20\x20\x20'+bM(0x2a7)+'Tokens,\x20'+'@outputT'+'okens,\x20@'+bM(0x3eb)+bM(0x25d)+bM(0x444)+'\x20\x20\x20\x20\x20\x20\x20\x20'+bM(0x3aa)+bM(0x3f8)+'stSource'+bM(0x1bf)+bM(0x359)+bM(0x236)+bM(0x3be)+bM(0x335)+bM(0x32d)+'\x0a\x20\x20\x20\x20\x20\x20\x20'+bM(0x270)+bM(0x44c)+bM(0x389)+'rifyExit'+',\x20@attem'+bM(0x2ef)+bM(0x402)+bM(0x23b)+'tionMs,\x20'+bM(0x3b0)+bM(0x3f2)+bM(0x302)+bM(0x3df)+bM(0x3d8)+'xt,\x20@pro'+'pensity,'+bM(0x25a)+')')[bM(0x416)]({'ts':a2['ts'],'agent':a2[bM(0x278)],'projectPath':a2[bM(0x3bc)+bM(0x2e9)],'promptHash':a2[bM(0x34e)+'sh'],'model':a2[bM(0x2c8)]??null,'inputTokens':a2['usage'][bM(0x3f4)+bM(0x3c1)],'outputTokens':a2[bM(0x21a)]['outputTo'+bM(0x299)],'cacheRead':a2[bM(0x21a)][bM(0x3eb)+bM(0x32c)]??0x99e+0x4a*0x1d+0x30*-0x60,'cacheWrite':a2[bM(0x21a)][bM(0x3c5)+bM(0x40c)]??-0x77c+0xcd2+-0x2ab*0x2,'costUsd':a2[bM(0x21a)]['costUsd'],'costSource':a2['usage'][bM(0x21b)+'ce'],'exitCode':a2[bM(0x377)],'aborted':a2[bM(0x1f3)]?0x11f*0x13+0x26a3+-0x3bef:-0x38b*0xa+-0x1688+0x1352*0x3,'abortReason':a2['abortRea'+bM(0x384)]??null,'sessionId':a2[bM(0x40d)+'d']??null,'mode':a2[bM(0x2c6)]??null,'outcome':a2[bM(0x1d9)]??null,'verifyExit':a2[bM(0x3ca)+'it']??null,'attempt':a2[bM(0x2e2)]??null,'raceId':a2['raceId']??null,'won':a2[bM(0x422)]?0x53*0x1e+0xc51+-0x160a*0x1:0x1*-0x929+0x1bea+-0x12c1,'durationMs':a2[bM(0x2c3)+'Ms']??null,'taskClass':a2['taskClas'+'s']??null,'taskType':a2['taskType']??null,'context':a2[bM(0x3d1)]??null,'propensity':a2[bM(0x2d8)+'ty']??null,'reward':a2[bM(0x239)]??null});}[at(0x21f)+'ce'](a2,a3){const bN=at;return(a3?this['db'][bN(0x276)](bN(0x259)+bN(0x3e8)+'SUM(cost'+'_usd),0)'+bN(0x34f)+bN(0x2a5)+'WHERE\x20ts'+bN(0x329)+bN(0x1c1)+bN(0x297)+'\x20?')[bN(0x1ba)](a2,a3):this['db'][bN(0x276)](bN(0x259)+bN(0x3e8)+bN(0x440)+'_usd),0)'+bN(0x34f)+bN(0x2a5)+'WHERE\x20ts'+bN(0x1d0))[bN(0x1ba)](a2))['c'];}[at(0x41d)+'ay'](a2){const bO=at;let a3=new Date();return a3[bO(0x1fd)](0x22ab+-0x1557+-0x355*0x4,-0x1a27+0x1309*-0x1+0x2d30,0x4db*-0x7+0x6a5+-0x19*-0x118,0x11b3+0x3*0x5a3+-0x229c),this['spendSin'+'ce'](a3[bO(0x202)+'ing'](),a2);}['spendThi'+at(0x2be)](a2){const bP=at;let a3=new Date();a3[bP(0x1fd)](0xa7d+0x27c*-0x4+-0x8d,0x2421+-0x1535*-0x1+-0x52*0xb3,0x1*-0xb1b+0x1af3*0x1+0xd*-0x138,0xdeb+-0xd*0x229+-0xe2a*-0x1);let a4=(a3[bP(0x357)]()+(-0x898+0x15dd*0x1+-0xd3f))%(0x2060+0xb97+-0x2bf0);return a3[bP(0x2ee)](a3[bP(0x3e5)]()-a4),this['spendSin'+'ce'](a3['toISOStr'+bP(0x255)](),a2);}[at(0x3a6)+at(0x437)](a2){const bQ=at;let a3=new Date(),a4=new Date(a3[bQ(0x42b)+'ear'](),a3[bQ(0x260)](),0x1c32+0x28d*-0x1+-0xc*0x223);return this['spendSin'+'ce'](a4[bQ(0x202)+bQ(0x255)](),a2);}[at(0x3e3)](a2,a3){const bR=at;let a4=bR(0x2d2)+bR(0x3a9)+(a2===bR(0x435)?'substr(t'+bR(0x2f4):a2===bR(0x278)?bR(0x278):bR(0x387)+bR(0x370))+(bR(0x38a)+bR(0x350)+bR(0x310)+bR(0x39c)+'S\x20runs,\x0a'+bR(0x3df)+'\x20\x20\x20\x20\x20COA'+bR(0x454)+bR(0x43d)+bR(0x412)+bR(0x241)+bR(0x421)+bR(0x32a)+'\x20\x20\x20\x20\x20\x20\x20\x20'+bR(0x292)+'(SUM(out'+'put_toke'+bR(0x27d)+'S\x20output'+bR(0x355)+'\x20\x20\x20\x20\x20\x20\x20\x20'+bR(0x23c)+bR(0x454)+bR(0x2da)+bR(0x258)+bR(0x1d3)+'d\x0a\x20\x20\x20\x20\x20\x20'+bR(0x311)+'s\x20')+(a3?'WHERE\x20ts'+bR(0x1d0):'')+(bR(0x253)+bR(0x1d6)+bR(0x23e)+bR(0x1d8)+bR(0x43b)+bR(0x22e)),a5=this['db'][bR(0x276)](a4);return a3?a5['all'](a3):a5[bR(0x3ad)]();}[at(0x1ed)+at(0x39d)](a2={}){const bS=at;let a3=[bS(0x3a5)+bS(0x334)+bS(0x210)+'\x27)'],a4=[];a2[bS(0x3e6)]&&(a3[bS(0x268)](bS(0x407)+bS(0x212)),a4[bS(0x268)](a2[bS(0x3e6)])),a2[bS(0x39f)]&&(a3[bS(0x268)](bS(0x322)),a4[bS(0x268)](a2[bS(0x39f)]));let a5=bS(0x2d2)+'ELECT\x20ag'+bS(0x33e)+bS(0x44d)+bS(0x3df)+bS(0x2bf)+bS(0x27e)+bS(0x32a)+bS(0x3df)+'COALESCE'+bS(0x21d)+'come\x20=\x20\x27'+bS(0x39e)+bS(0x34a)+bS(0x34c)+bS(0x3df)+bS(0x303)+bS(0x2c7)+bS(0x3ef)+'),\x200)\x20AS'+bS(0x3b2)+bS(0x1f6)+bS(0x3df)+bS(0x442)+bS(0x3ff)+bS(0x22a)+'ms),\x200)\x20'+bS(0x230)+bS(0x347)+'\x0a\x20\x20\x20\x20\x20\x20F'+bS(0x446)+'\x20WHERE\x20'+a3[bS(0x2b6)](bS(0x213))+(bS(0x253)+bS(0x1d6)+'agent,\x20m'+bS(0x383));return this['db'][bS(0x276)](a5)[bS(0x3ad)](...a4)[bS(0x1e1)](a6=>({'agent':a6[bS(0x278)],'model':a6[bS(0x2c8)],'runs':a6[bS(0x251)],'passRate':a6[bS(0x251)]>0xdc+-0x370+-0x14a*-0x2?a6[bS(0x3d9)]/a6['runs']:-0x216d+0x21c1+-0x54,'avgCostUsd':a6[bS(0x2c4)+'sd'],'avgDurationMs':a6['avgDurat'+'ionMs']}));}[at(0x430)+'ard'](a2={}){const bT=at;let a3=[],a4=[];a2['since']&&(a3['push'](bT(0x322)),a4[bT(0x268)](a2['since'])),a2['project']&&(a3[bT(0x268)](bT(0x387)+bT(0x2f6)),a4[bT(0x268)](a2[bT(0x1fa)]));let a5=a3[bT(0x39b)]?bT(0x23f)+a3[bT(0x2b6)](bT(0x213)):'',a6=a2[bT(0x2ae)]?bT(0x234)+'ss':bT(0x418),a7=a2[bT(0x2ae)]?',\x20task_c'+'lass':'',a8=bT(0x2d2)+'ELECT\x20ag'+bT(0x1c7)+bT(0x3df)+'\x20\x20model,'+bT(0x350)+bT(0x453)+a6+('\x20AS\x20task'+'Class,\x0a\x20'+'\x20\x20\x20\x20\x20\x20\x20\x20'+bT(0x294)+bT(0x386)+bT(0x2c0)+bT(0x3df)+bT(0x303)+'SCE(SUM('+bT(0x2b2)+bT(0x29c)+bT(0x2f3)+'\x20\x20\x20\x20\x20\x20\x20C'+bT(0x3e8)+bT(0x1f0)+bT(0x20c)+'\x27),\x200)\x20A'+bT(0x356)+bT(0x350)+bT(0x310)+bT(0x1ef)+bT(0x1ee)+bT(0x379)+'ss\x27),\x200)'+bT(0x280)+bT(0x37f)+'\x20\x20\x20\x20\x20\x20\x20\x20'+'\x20COALESC'+bT(0x32b)+bT(0x339)+bT(0x3c4)+bT(0x20f)+bT(0x221)+bT(0x392)+bT(0x405)+'\x20\x20\x20\x20\x20\x20\x20\x20'+'COALESCE'+bT(0x33c)+bT(0x22b)+bT(0x2de)+bT(0x30d)+bT(0x2f3)+'\x20\x20\x20\x20\x20\x20\x20C'+bT(0x3e8)+bT(0x35f)+bT(0x43f)+',\x200)\x20AS\x20'+bT(0x38c)+bT(0x42c)+'\x20\x20\x20\x20FROM'+'\x20runs\x20')+a5+(bT(0x253)+bT(0x1d6)+bT(0x42e)+bT(0x383))+a7;return this['db'][bT(0x276)](a8)[bT(0x3ad)](...a4)[bT(0x1e1)](a9=>({'agent':a9['agent'],'model':a9[bT(0x2c8)],'taskClass':a9[bT(0x227)+'s'],'runs':a9['runs'],'winRate':a9[bT(0x1c8)]>0x1488+-0x2277+0xdef?a9[bT(0x28f)]/a9[bT(0x1c8)]:0x2*0x733+-0x13*-0x16d+-0x297d,'passRate':a9['verified']>0x7c9*-0x2+-0x805+0x29f*0x9?a9[bT(0x3d9)]/a9[bT(0x3d2)]:-0xa4*0x27+-0x70*-0x2c+0x5bc,'avgCostUsd':a9[bT(0x2c4)+'sd'],'avgDurationMs':a9[bT(0x38c)+bT(0x2c1)]}))[bT(0x28a)]((a9,aa)=>aa[bT(0x2ce)]-a9[bT(0x2ce)]||a9['avgCostU'+'sd']-aa[bT(0x2c4)+'sd']);}[at(0x415)](){const bU=at;this['db'][bU(0x415)]();}};export{M as BudgetEnforcer,A as BudgetExceededError,S as ClaudeCodeAdapter,v as CodexAdapter,G as UsageStore,Qe as agentConfig,Ne as buildRegistry,T as computeCost,z as configSchema,Ie as detectAll,Oe as getAdapter,Ze as loadConfig,P as resolveCost,pe as runAgent};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aiforcecli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "One CLI + MCP server wrapping multiple coding agents (Claude Code, Codex, ...) behind a single normalized interface with first-class FinOps.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -33,6 +33,9 @@
|
|
|
33
33
|
"picocolors": "^1.1.1",
|
|
34
34
|
"zod": "^3.24.1"
|
|
35
35
|
},
|
|
36
|
+
"optionalDependencies": {
|
|
37
|
+
"node-pty": "^1.1.0"
|
|
38
|
+
},
|
|
36
39
|
"devDependencies": {
|
|
37
40
|
"@types/better-sqlite3": "^7.6.12",
|
|
38
41
|
"@types/node": "^22.13.1",
|
package/README.md
DELETED
|
@@ -1,303 +0,0 @@
|
|
|
1
|
-
# aiforcecli
|
|
2
|
-
|
|
3
|
-
**One interface over every coding agent — that you can trust and afford.**
|
|
4
|
-
|
|
5
|
-
`aiforcecli` wraps multiple coding agents — **Claude Code**, **OpenAI Codex**, and more —
|
|
6
|
-
behind a single normalized interface, and adds the things a single-agent CLI structurally
|
|
7
|
-
can't:
|
|
8
|
-
|
|
9
|
-
- 🧭 **Advise** — instantly recommend the best agent+model for a task (public benchmarks blended with *your* results), before you spend a cent.
|
|
10
|
-
- 🏁 **Race** — run several agents in parallel in isolated git worktrees, **verify each against your tests**, and apply the winner.
|
|
11
|
-
- 🔁 **Self-heal** — run → verify → on failure feed the error back and escalate to a stronger agent until green.
|
|
12
|
-
- 📊 **Bench / Eval** — record every outcome and learn which agent wins which task, per dollar, on *your* codebase.
|
|
13
|
-
- 💸 **First-class FinOps** — every run's token usage and cost recorded locally; hard budgets enforced before and during a run.
|
|
14
|
-
|
|
15
|
-
`aiforcecli` does **not** reimplement any agent. It shells out to the agent CLIs you already
|
|
16
|
-
have installed and normalizes their I/O behind one adapter interface — so it improves as the
|
|
17
|
-
agents do, and you keep your existing auth and subscriptions.
|
|
18
|
-
|
|
19
|
-
## 60-second quickstart
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
# 1. Install
|
|
23
|
-
npm install -g aiforcecli # or: npx aiforcecli <command>
|
|
24
|
-
|
|
25
|
-
# 2. Make sure at least one underlying agent CLI is installed
|
|
26
|
-
npm install -g @anthropic-ai/claude-code # Claude Code
|
|
27
|
-
npm install -g @openai/codex # Codex
|
|
28
|
-
aiforcecli agents # shows install status
|
|
29
|
-
|
|
30
|
-
# 3. Scaffold config in your project
|
|
31
|
-
cd my-project
|
|
32
|
-
aiforcecli init
|
|
33
|
-
|
|
34
|
-
# 4. Run a task
|
|
35
|
-
aiforcecli run "add a health check endpoint and a test for it"
|
|
36
|
-
|
|
37
|
-
# 5. See what it cost
|
|
38
|
-
aiforcecli cost
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
That's it — you're productive on day one.
|
|
42
|
-
|
|
43
|
-
## Commands
|
|
44
|
-
|
|
45
|
-
| Command | What it does |
|
|
46
|
-
| --- | --- |
|
|
47
|
-
| `aiforcecli run "<task>"` | Run a task with an agent. With no `--agent`, `aiforcecli` **auto-routes** to the best agent+model for the task within budget. Add `--heal` to **verify and self-heal** (see below). Flags: `--agent claude-code\|codex`, `--model <m>`, `--cwd <path>`, `--budget <usd>`, `--explain`, `--resume <sessionId>`, `--json`, `--heal`, `--max-attempts <n>`, `--verify <cmd>`, `--skip-verify`. |
|
|
48
|
-
| `aiforcecli advise "<task>"` | **Recommend** which agent + model to use — instantly, without running anything. Blends a public benchmark scorecard with your private outcomes. `--cwd <path>`, `--json`. |
|
|
49
|
-
| `aiforcecli race "<task>"` | Run the task on **several agents in parallel** (isolated git worktrees), verify each, and apply the winner. Flags: `--agents claude-code,codex`, `--budget <usd>` (total, split across agents), `--select cheapest\|fastest\|first-pass`, `--verify <cmd>`, `--keep`, `--json`. |
|
|
50
|
-
| `aiforcecli eval` | Run the **private eval suite** to calibrate `advise` on your codebase. `--dir <path>`, `--agents <ids>`, `--json`. |
|
|
51
|
-
| `aiforcecli bench` | **Leaderboard** from your local history: which agent/model wins which task class, per dollar. `--since 7d\|24h\|<ISO>`, `--by-task`, `--json`. |
|
|
52
|
-
| `aiforcecli agents` | List agents and whether their CLI is installed (`--json`). |
|
|
53
|
-
| `aiforcecli cost` | Report spend. `--since 7d\|24h\|<ISO>`, `--by day\|agent\|project`, `--json`. |
|
|
54
|
-
| `aiforcecli init` | Scaffold `aiforcecli.config.json` and install bundled assets. `--force` to overwrite. |
|
|
55
|
-
| `aiforcecli mcp` | (Phase 3) Start the MCP server. |
|
|
56
|
-
|
|
57
|
-
## How it works
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
CLI ── orchestrator ── AgentAdapter ── subprocess ── claude / codex
|
|
61
|
-
│
|
|
62
|
-
├── BudgetEnforcer (pre-run daily cap + mid-run per-run cap)
|
|
63
|
-
└── UsageStore (SQLite: every run tagged agent/project/time/promptHash)
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Each adapter parses its agent's **native** output (Claude Code `--output-format
|
|
67
|
-
stream-json`, Codex `exec --json` JSONL) and maps it onto one normalized event shape:
|
|
68
|
-
|
|
69
|
-
```ts
|
|
70
|
-
type NormalizedEvent =
|
|
71
|
-
| { type: 'token'; text: string }
|
|
72
|
-
| { type: 'message'; role: 'assistant' | 'user'; text: string }
|
|
73
|
-
| { type: 'tool_call'; name: string; input?: unknown; id?: string }
|
|
74
|
-
| { type: 'usage'; usage: Usage; cumulative: boolean }
|
|
75
|
-
| { type: 'error'; message: string; fatal: boolean };
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
A run resolves to `{ message, usage: { inputTokens, outputTokens, costUsd, costSource },
|
|
79
|
-
exitCode, sessionId, aborted }`.
|
|
80
|
-
|
|
81
|
-
## Routing
|
|
82
|
-
|
|
83
|
-
Instead of hardcoding which agent and model to call, omit `--agent` and `aiforcecli`
|
|
84
|
-
picks for you. It classifies the task (a transparent keyword + length
|
|
85
|
-
heuristic), then selects the **most relevant** model whose estimated cost fits
|
|
86
|
-
the effective budget — the tightest of `--budget`, `maxCostPerRunUsd`, and the
|
|
87
|
-
remaining daily headroom (`dailyCapUsd − spent today`):
|
|
88
|
-
|
|
89
|
-
```
|
|
90
|
-
CLI ── router ── classifyTask (light | standard | heavy)
|
|
91
|
-
│
|
|
92
|
-
├── model catalog (agent, model, tier, price)
|
|
93
|
-
└── effectiveBudget (min of --budget / per-run cap / daily headroom)
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
- A model that **meets** the task tier and fits the budget is preferred.
|
|
97
|
-
- If budget is too tight, it **downgrades** to the most capable model that fits.
|
|
98
|
-
- If nothing fits, it picks the cheapest and warns — the budget enforcer still
|
|
99
|
-
aborts the run if it overruns.
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
aiforcecli run "fix a typo in the README" # → cheap, light model
|
|
103
|
-
aiforcecli run "refactor the auth architecture" --budget 5 # → top model within $5
|
|
104
|
-
aiforcecli run "<task>" --explain # show the decision, don't run
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
An explicit `--agent` (and/or `--model`) always wins and skips routing. Tune via
|
|
108
|
-
the `routing` block in config: `enabled`, `prefer` (tie-break agent order),
|
|
109
|
-
`only` (restrict to catalog keys), and `models` (add custom catalog entries).
|
|
110
|
-
|
|
111
|
-
## Advise — pick the right agent before you start
|
|
112
|
-
|
|
113
|
-
Before a complex project, `advise` gives you an instant, no-cost recommendation of which agent and
|
|
114
|
-
model to use — the cheap predictor that complements `race` (proof) and `run --heal` (verify):
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
aiforcecli advise "migrate the auth module from sessions to JWT across the API"
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
```
|
|
121
|
-
Task brief
|
|
122
|
-
type security (auth, security)
|
|
123
|
-
complexity heavy
|
|
124
|
-
codebase TypeScript · 412 files · tests: yes (npm test)
|
|
125
|
-
budget $4.21 headroom
|
|
126
|
-
|
|
127
|
-
Recommendation
|
|
128
|
-
→ claude-code · opus confidence 82%
|
|
129
|
-
expected ~$0.90 · ~88% one-shot pass
|
|
130
|
-
Why
|
|
131
|
-
• public eval: claude-code·opus ~88 on security
|
|
132
|
-
• your history: 91% pass over 9 security run(s)
|
|
133
|
-
Runner-up codex·gpt-5-codex ~$0.40 · ~80% — cheaper
|
|
134
|
-
Run it: aiforcecli run "<task>" --agent claude-code --model opus --heal
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
**How the recommendation is scored.** A transparent blend:
|
|
138
|
-
|
|
139
|
-
```
|
|
140
|
-
capability = posterior(prior = public scorecard, evidence = your private pass rate)
|
|
141
|
-
score = wCapability·capability + wCost·costFit + wSpeed·speedFit
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
- **Public scorecard** (`src/advise/scorecard.ts`) — curated, dated priors per agent·model × task
|
|
145
|
-
type, distilled from public coding benchmarks. A *prior*, not gospel; it goes stale, so your own
|
|
146
|
-
data overrides it.
|
|
147
|
-
- **Private outcomes** — your recorded `--heal`/`race`/`eval` results. Capability is a Bayesian
|
|
148
|
-
blend: the public prior dominates until you have evidence, then your numbers take over
|
|
149
|
-
(`advise.privatePseudocount` sets how fast). Confidence rises with your sample size.
|
|
150
|
-
|
|
151
|
-
### The learning policy (contextual bandit)
|
|
152
|
-
|
|
153
|
-
Under the hood the recommendation is a **contextual bandit**. Each arm `(agent, model)` has a Beta
|
|
154
|
-
posterior over its pass probability — seeded by the public prior, updated by your verified outcomes
|
|
155
|
-
for that task type. `advise` shows the **policy mix**: how often the policy would pick each arm.
|
|
156
|
-
|
|
157
|
-
- **Exploit (default):** recommend the top expected arm.
|
|
158
|
-
- **Explore (`advise --explore`, or `advise.explore: true` for routed `run`):** pick via **Thompson
|
|
159
|
-
Sampling** — sample each arm's posterior and take the winner — so uncertain-but-promising arms get
|
|
160
|
-
tried occasionally. That's how the policy *discovers* which agent quietly wins on your code instead
|
|
161
|
-
of only exploiting the current best.
|
|
162
|
-
|
|
163
|
-
**Off-policy logging (so it keeps learning):** every verified run records its decision **context**,
|
|
164
|
-
the chosen arm's **propensity** (selection probability), and a scalar **reward** (pass, minus
|
|
165
|
-
cost/latency/attempt penalties, plus acceptance). That turns your run history into a labeled dataset
|
|
166
|
-
for unbiased off-policy improvement — the foundation for a learned escalation/route policy next.
|
|
167
|
-
The reward signal is automatic and objective because it comes from **your tests**, which is what
|
|
168
|
-
makes the learning real rather than guesswork.
|
|
169
|
-
|
|
170
|
-
**Calibrate it to your codebase** with the private eval suite. Drop task cases as JSON files in
|
|
171
|
-
`.aiforcecli/evals/`:
|
|
172
|
-
|
|
173
|
-
```json
|
|
174
|
-
{ "prompt": "fix the off-by-one in parseRange", "verify": "npm test", "taskType": "bugfix" }
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
Then run them against every candidate agent·model (each in an isolated worktree, verified):
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
|
-
aiforcecli eval # all installed agents × all cases
|
|
181
|
-
aiforcecli eval --agents claude-code # restrict the field
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
Results are recorded as private evidence, so `advise` (and `bench`) get smarter about *your* repo
|
|
185
|
-
with every run. `eval` runs real agents — it costs money and time, so run it occasionally.
|
|
186
|
-
|
|
187
|
-
## Verify, self-heal & race
|
|
188
|
-
|
|
189
|
-
aiforcecli sits *above* the agents, so it can do something they can't: run the work, **verify it
|
|
190
|
-
against your tests**, and act on the result. Verification is auto-detected from the project
|
|
191
|
-
(`npm test`, `pytest`, `cargo test`, `go test ./...`, …) and overridable via `verify.command` or
|
|
192
|
-
`--verify "<cmd>"`.
|
|
193
|
-
|
|
194
|
-
**Self-healing runs** — `aiforcecli run "<task>" --heal`
|
|
195
|
-
|
|
196
|
-
```
|
|
197
|
-
run → verify → ✗ fail → retry same agent with the failure → ✗ → escalate to a stronger agent → ✓
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
After the run, aiforcecli runs your verify command. On failure it feeds the output back to the agent
|
|
201
|
-
(resuming the session), and if it still fails it **escalates to a stronger agent/model** — looping
|
|
202
|
-
until green, `heal.maxAttempts` is reached, or the budget runs out. A budget breach never escalates.
|
|
203
|
-
|
|
204
|
-
**Race** — `aiforcecli race "<task>" --agents claude-code,codex`
|
|
205
|
-
|
|
206
|
-
Runs the task on every agent **in parallel**, each in its own throwaway **git worktree** (your
|
|
207
|
-
uncommitted changes are carried in, so they build on your current work). Each result is verified, and
|
|
208
|
-
the **cheapest passing** diff (or `--select fastest|first-pass`) is applied to your tree — the tests
|
|
209
|
-
decide, not vibes. With no verify command, you get each candidate's diff and pick one. `--budget` is
|
|
210
|
-
the *total* and is split across racers; `--keep` leaves the worktrees for inspection.
|
|
211
|
-
|
|
212
|
-
A fresh worktree only has git-tracked files, so the repo's `node_modules` is **symlinked** into each
|
|
213
|
-
one automatically — otherwise `npm test` couldn't find its runner. For other ecosystems whose deps
|
|
214
|
-
are gitignored, list them under `race.linkPaths` (e.g. `[".venv", "target", "vendor"]`).
|
|
215
|
-
|
|
216
|
-
```bash
|
|
217
|
-
aiforcecli race "fix the failing auth test" --agents claude-code,codex --budget 2
|
|
218
|
-
# claude-code · sonnet ✓ pass 42s $0.31
|
|
219
|
-
# codex · gpt-5-codex ✗ fail 51s $0.27
|
|
220
|
-
# → applied claude-code's diff (cheapest passing) total race cost: $0.58
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
**Leaderboard** — `aiforcecli bench`
|
|
224
|
-
|
|
225
|
-
Every `--heal` and `race` run records an *outcome* (passed? won? cost? duration?). `bench` reports,
|
|
226
|
-
from your own history, which agent/model actually wins which task class per dollar — turning routing
|
|
227
|
-
from anecdote into evidence. Opt in to `telemetry` to contribute anonymized outcomes to a shared
|
|
228
|
-
leaderboard (off by default; never sends prompts, paths, or output).
|
|
229
|
-
|
|
230
|
-
## FinOps & budgets
|
|
231
|
-
|
|
232
|
-
- **Cost source of truth:** `aiforcecli` uses the cost the agent CLI reports when available
|
|
233
|
-
(Claude Code reports `total_cost_usd`). When a CLI reports tokens only (Codex), cost is
|
|
234
|
-
**computed** from a local pricing table — `costSource` records which, so reports are
|
|
235
|
-
never silently wrong.
|
|
236
|
-
- **Daily cap (`dailyCapUsd`):** checked *before* a run starts. If today's spend already
|
|
237
|
-
meets the cap, the run is refused (exit code `2`).
|
|
238
|
-
- **Per-run cap (`maxCostPerRunUsd`, or `--budget`):** enforced *during* the run. As usage
|
|
239
|
-
events arrive, if cumulative cost crosses the cap the subprocess is aborted
|
|
240
|
-
(SIGTERM → SIGKILL).
|
|
241
|
-
- **Honest limitation:** agents that only report usage at the *end* of a run can only
|
|
242
|
-
be caught after the fact. Mid-run enforcement is best-effort for those.
|
|
243
|
-
- **Never hangs:** every run has a wall-clock `timeoutMs` and an `inactivityTimeoutMs`
|
|
244
|
-
watchdog; a stuck subprocess is always killed.
|
|
245
|
-
|
|
246
|
-
## Configuration
|
|
247
|
-
|
|
248
|
-
`aiforcecli.config.json` (or `.ts`) is discovered at two levels, deep-merged (**project wins**), then
|
|
249
|
-
CLI flags win over both:
|
|
250
|
-
|
|
251
|
-
1. **User level** — your defaults, applied in *every* folder. Put the file here once; you don't need
|
|
252
|
-
one per project. The directory is platform-specific:
|
|
253
|
-
- **Windows:** `%APPDATA%\aiforcecli\Config\aiforcecli.config.json`
|
|
254
|
-
- **macOS:** `~/Library/Preferences/aiforcecli/aiforcecli.config.json`
|
|
255
|
-
- **Linux:** `~/.config/aiforcecli/aiforcecli.config.json` (or `$XDG_CONFIG_HOME`)
|
|
256
|
-
2. **Project level** — `aiforcecli.config.json` in the working directory, for per-project overrides only.
|
|
257
|
-
|
|
258
|
-
The CLI command itself (installed globally via `npm i -g aiforcecli`, or `npm link` for a dev build)
|
|
259
|
-
is separate from config — installing it once is enough; settings come from the files above. See
|
|
260
|
-
[`aiforcecli.config.example.json`](./aiforcecli.config.example.json) and the `examples/` directory.
|
|
261
|
-
|
|
262
|
-
| Block | Key | Default | Purpose |
|
|
263
|
-
| --- | --- | --- | --- |
|
|
264
|
-
| `agents.<id>` | `model`, `bin`, `defaultFlags`, `allowedTools` | — | Per-agent overrides (binary path, forced model, default flags, tool allow-list). |
|
|
265
|
-
| `defaultAgent` | | `claude-code` | Agent used by `run` when routing is off and no `--agent`. |
|
|
266
|
-
| `routing` | `enabled`, `prefer`, `only`, `models` | `enabled:true` | Budget-aware auto-routing; `only` restricts the catalog, `models` adds custom entries. |
|
|
267
|
-
| `verify` | `enabled`, `command`, `timeoutMs` | `enabled:true`, 300 s | How results are verified; `command` overrides auto-detection. |
|
|
268
|
-
| `heal` | `enabled`, `maxAttempts`, `escalate` | `false`, `3`, `true` | Self-healing loop behavior for `run --heal`. |
|
|
269
|
-
| `race` | `agents`, `select`, `keepWorktrees`, `linkPaths` | `select:cheapest` | Defaults for `race`; `linkPaths` symlinks extra dep dirs into worktrees. |
|
|
270
|
-
| `advise` | `weights`, `privatePseudocount`, `explore` | `0.7/0.2/0.1`, `5`, `false` | Recommendation scoring weights, prior strength, and Thompson-Sampling exploration. |
|
|
271
|
-
| `eval` | `dir`, `models` | `.aiforcecli/evals` | Private eval suite location and which catalog models to evaluate. |
|
|
272
|
-
| `telemetry` | `enabled`, `endpoint` | `false` | Opt-in anonymized outcome upload for the shared leaderboard. |
|
|
273
|
-
| `budgets` | `maxCostPerRunUsd`, `dailyCapUsd` | — | Per-run and daily spend caps. |
|
|
274
|
-
| top-level | `timeoutMs`, `inactivityTimeoutMs` | 600 s, 120 s | Wall-clock and inactivity watchdogs for every run. |
|
|
275
|
-
|
|
276
|
-
## Development
|
|
277
|
-
|
|
278
|
-
```bash
|
|
279
|
-
npm install
|
|
280
|
-
npm run build # tsup -> dist/ (ESM)
|
|
281
|
-
npm test # vitest — adapter parsers run against recorded fixtures
|
|
282
|
-
npm run typecheck
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
Adapter parser tests use **recorded real outputs** from each CLI under
|
|
286
|
-
`test/fixtures/`. To refresh them, re-capture with:
|
|
287
|
-
|
|
288
|
-
```bash
|
|
289
|
-
claude -p "say hi" --output-format stream-json --verbose > test/fixtures/claude-code/hello.stream.jsonl
|
|
290
|
-
codex exec --json --sandbox workspace-write "say hi" > test/fixtures/codex/hello.jsonl
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
## Documentation
|
|
294
|
-
|
|
295
|
-
- [Feature Reference (FEATURES)](./docs/FEATURES.md) — every feature in depth: public eval, the RL/bandit policy, race, heal, FinOps, config, data model.
|
|
296
|
-
- [Product Requirements (PRD)](./docs/PRD.md) — problem, users, features, scope, success metrics.
|
|
297
|
-
- [Business Requirements (BRD)](./docs/BRD.md) — market, value proposition, model, KPIs.
|
|
298
|
-
|
|
299
|
-
## Roadmap
|
|
300
|
-
|
|
301
|
-
- **Shipped:** adapters (claude-code, codex), config, FinOps + budgets, budget-aware routing, `run` (+ `--heal`), `race`, `advise` (**contextual-bandit policy + off-policy logging**), `eval`, `bench`, `cost`, `agents`, `init`.
|
|
302
|
-
- **Next:** learned escalation/route policy trained from the logged (context, arm, reward, propensity) data; surface agent fatal errors in `race`/`eval`; richer task classification (`--deep`); bundled `assets/` via `init`.
|
|
303
|
-
- **Later:** `aiforcecli mcp` MCP server with auth + hard budget cap; hosted shared leaderboard + federated global/local policy; team/org budgets and reporting.
|