apt-mcp-agent-setup 1.2.14 β 1.2.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +1 -1
- package/bundle/NOTICES.md +0 -0
- package/bundle/core.enc +0 -0
- package/bundle/mcp-rules.enc +0 -0
- package/bundle/skills-aso.enc +0 -0
- package/bundle/skills-ba.enc +0 -0
- package/bundle/skills-base.enc +0 -0
- package/bundle/skills-be.enc +0 -0
- package/bundle/skills-design.enc +0 -0
- package/bundle/skills-fe.enc +0 -0
- package/bundle/skills-mobile.enc +0 -0
- package/bundle/skills-pm.enc +0 -0
- package/integrity-manifest.json +16 -16
- package/package.json +1 -1
- package/src/installer/global-setup.js +1 -1
- package/src/installer/platform-config.js +1 -1
- package/src/installer/prerequisites.js +1 -1
- package/src/installer/project-setup.js +1 -1
- package/src/installer/setup-wizard.js +1 -1
- package/src/license/crypto.js +1 -1
- package/src/license/fingerprint.js +1 -1
- package/src/license/terms.js +1 -1
- package/src/license/verify.js +1 -1
- package/src/presets/index.js +1 -1
- package/src/proxy/backends.js +1 -1
- package/src/proxy/router.config.js +1 -1
- package/src/proxy/router.js +1 -1
- package/src/proxy/server.js +1 -1
- package/src/templates/AGENTS.md +22 -0
- package/src/templates/CLAUDE.md +30 -2
- package/src/templates/GEMINI.md +30 -2
- package/src/templates/copilot-instructions.md +15 -2
- package/src/templates/cursorrules.mdc +15 -2
- package/src/templates/windsurfrules.md +15 -2
package/src/proxy/server.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x2e3c68=_0x311c;function _0xf30a(){const _0x54fc6a=['zxHPDa','B3jPz2LUywXoyw1L','C3rKB3v0','y29Kzq','C3rKAw4','y3DK','Dg9VBhm','vg9VBcbUB3qGzM91BMq6ia','BwfPBG','nwntEfnuEq','w01ducbbz2vUDf0GtgLJzw5ZzsbRzxKGDMvYAwzPzwqGC3vJy2vZC2z1BgX5igzVCIb1C2vYoIa','Bwv0Ag9K','BM93','ANnVBG','DxnLCG','Cgf5Bg9Hza','C3bSAxq','BgLJzw5Zzs5RzxK','ms4WlJa','zgLZDa','ig1VzgLMAwvKlIbfEgL0Aw5NlG','rMfPBgvKihrVihn0yxj0ifbYB3H5u2vYDMvYoG','mJaYnc0Xms0Wnq','w01ducbbz2vUDf0GrMfPBgvKihrVihbHCNnLiePtt04TuLbdig1LC3nHz2uGzNjVBsbJBgLLBNq6','ChjVDg9JB2XwzxjZAw9U','vg9VBcbLEgvJDxrPB24GzMfPBgvKoIa','mZeZnZiYuw9MyMHX','Ahr0Chm6','Dg9Rzw4','Aw5PDgLHBgL6zq','AgfUzgXLq2XPzw50rgf0yq','Ag9ZDg5HBwu','ywjVCNq','zw50CMLLCW','CMvHzezPBgvtEw5J','D3jPDgvfCNjVCG','DMvYAwz5','D3jPDgvgAwXLu3LUyW','zxHPC3rZu3LUyW','zgv2AwnLswq','Agv4','zw5K','igLZig5VDcbYDw5UAw5N','y29UDgvUDc1Szw5NDgG','ChvIBgLJs2v5','CMvZDwX0','w01ducbbz2vUDf0GtgLJzw5ZzsbRzxKGDMvYAwzPy2f0Aw9UigzHAwXLzdOG','zxjYB3i','lIbdB250Aw51Aw5NihDPDgGGy2fJAgvKihrVA2vUlG','y2fWywjPBgL0AwvZ','zNjVBq','C3rHCNq','Cg9YDa','w01ducbbz2vUDf0GrMfPBgvKihrVihnHDMuGCMvMCMvZAgvKigXPy2vUC2uGDg9Rzw4GDg8GzgLZAZO','zgLYBMfTzq','y2f0y2G','C3rYAw5NAwz5','zgf0yq','nNbhrwzHDW','lIbdB250ywn0ihn1ChbVCNqGyxqGC3vWCg9YDebHBMHKAc5PBY4GrxHPDgLUzY4','C2LNBMfS','DhjPBq','Ag9TzwrPCG','CMvHC29U','AM9PBG','BgLJzw5ZzuTLEq','lI4VlI4','vgfYz2v0igjHy2TLBMqG','w01ducbbz2vUDf0GtgLJzw5ZzsbRzxKGzxHWAxjLzcbVCIbPBNzHBgLKlIbfEgL0Aw5NlG','C2vYDMvYsw5MBW','AgvHCNrIzwf0sw50zxj2ywW','D3jPDgvuB0nSAwvUDa','w01ducbbz2vUDf0GsgvHCNrIzwf0ignOzwnRoIb0B2TLBIbOyxmGBgvZCYb0AgfUidyGzgf5CYbYzw1HAw5PBMCUifjLzNjLC2HPBMCUlI4','q29UDgvUDc1mzw5NDgG','zxHWB3j0CW','C3rKAw5mAxn0zw5LCG','Ahr0Ca','yxbWBgLJyxrPB24VANnVBG','yMfJA2vUza','Bg9HzeXPy2vUC2vlzxK','D3jPDgu','yNL0zuXLBMD0Aa','Ahr0Chm','ywrTAw4','w01ducbbz2vUDf0GtgLJzw5ZzsbRzxKGAgfZigjLzw4GCMv2B2TLzc4GrxHPDgLUzY4','CMvJDxjZAxzL','Cgf0Aa','CMvWBgfJzq','Cgf1C2u','DxrMoa','mZu3odmWveTIC0zK','C3rYAw5N','lI9IywnRzw5KCY5QCW','Aw50zwDYAxr5twfUAwzLC3rqyxrO','Cgf0Ag5HBwu','BMfTzq','ChjVAMvJDfbHDgG','ANnVBNjWyW','lIbszw5LDYbHDcbODhrWCZOVl2fUAgrOlMLVl3jLBMv3lIbfEgL0Aw5NlG','zxHW','nJmWnZuXmvviA0rxAa','y3j5ChrV','BwvZC2fNzq','w01ducbbz2vUDf0GsgvHCNrIzwf0ignOzwnRigzHAwXLzcbVCIb0Aw1LzcbVDxq6','ywjVCNrLza','yMfZzty0DxjS','uhjVEhLtzxj2zxi','w01ducbbz2vUDf0Gsw50zwDYAxr5ignOzwnRigzHAwXLzdOGrMfPBgvKihrVihbHCNnLigLUDgvNCML0Es1Tyw5PzMvZDc5QC29UlIbfEgL0Aw5NlG','rMfPBgvKihrVihf1zxj5ihrVB2WGBgLZDdOG','Ahr0Chm6lY9Hz2vUDgTPDc5HBhbOyxrLy2HZlMfPl2fWAq','CgfYC2u','yM9KEq','mI4W','w01ducbbz2vUDf0GDg9VBhmVBgLZDcbYzxf1zxn0igzHAwXLzcbMB3iGC2vYDMLJzsa','mJG5odGZmJvuCLL3zKu','nde3mty0ngTby3DfzW','Aw50zwDYAxr5lw1HBMLMzxn0lMPZB24','CMvXDwvZDa','y3jLyxrLsgfZAa','DMvYC2LVBG','DMfSDwvZ','lI4VBgLJzw5Zzs92zxjPzNKUANm','CgvYzM9YBuHLyxj0yMvHDa','BgLZDenOyw5Nzwq','AgvHzgvYCW','AgfUzgXLq2XPzw50twvZC2fNzq','vgHLig9WzxjHDgLVBIb3yxmGywjVCNrLzc4','w01ducbbz2vUDf0GrMfPBgvKihrVigLUAxrPywXPEMuGC2vYDMLJzsa','ndq4oda1mxnmBfrjwq','BwTKAxjtEw5J','yMfJA2vUzhm','BwnWlwfNzw50lxbYB3H5','q29UDgvUDc1uExbL','Dg9tDhjPBMC','BwfW','DxbKyxrL','zgLZCgXHEu5HBwu','y2HPBgq','Dg9VBhmVBgLZDa','zgvZDhjVEq','y2XPzw50qNvMzMvY','zMLSzxm','nJmZoti5nK9MC3ziBq','BgvUz3rO','Dw5RBM93BG','C2HHmJu2','C3rVCa','w01ducbbz2vUDf0Gsw50zwDYAxr5ignOzwnRigzHAwXLzdOGsw52ywXPzcbTyw5PzMvZDcbMB3jTyxqUiev4AxrPBMCU','tw96AwXSys81lJaGkgnVBxbHDgLIBgu7ie5VzguV','C3rHDhvZq29Kzq','BwfZDgvYlNb1yMXPyY5Wzw0','C2LNBMf0DxjL','C2vUzfjLCxvLC3q','DMfSAwq','zM9YD2fYzfjLCxvLC3q','ChjVDg9JB2W'];_0xf30a=function(){return _0x54fc6a;};return _0xf30a();}(function(_0x5720d6,_0x1eabc0){const _0x1cfa7d=_0x311c,_0x32ece0=_0x5720d6();while(!![]){try{const _0xa2793=parseInt(_0x1cfa7d(0xba))/0x1+-parseInt(_0x1cfa7d(0x7a))/0x2+-parseInt(_0x1cfa7d(0xe0))/0x3+-parseInt(_0x1cfa7d(0xd3))/0x4*(parseInt(_0x1cfa7d(0x105))/0x5)+parseInt(_0x1cfa7d(0x9a))/0x6*(-parseInt(_0x1cfa7d(0xc4))/0x7)+parseInt(_0x1cfa7d(0xee))/0x8+parseInt(_0x1cfa7d(0xd2))/0x9;if(_0xa2793===_0x1eabc0)break;else _0x32ece0['push'](_0x32ece0['shift']());}catch(_0x45616e){_0x32ece0['push'](_0x32ece0['shift']());}}}(_0xf30a,0xbd0a1));const fs=require('fs'),path=require(_0x2e3c68(0xb6)),os=require('os'),http=require(_0x2e3c68(0xac)),https=require(_0x2e3c68(0xb2)),{verifyLicense}=require(_0x2e3c68(0xd9)),{spawnBackends}=require(_0x2e3c68(0xbc)),{translateToolList,mapExposedToOriginal}=require('./router.js');function httpRequest(_0x1d89d6,_0x3930a1={}){return new Promise((_0x2b4912,_0x4d086d)=>{const _0x31690a=_0x311c;try{const _0x54a797=new URL(_0x1d89d6),_0x47c3cb=_0x54a797['protocol']===_0x31690a(0x7b)?https:http,_0x398620={'User-Agent':_0x31690a(0xf4)+process[_0x31690a(0xd7)]+')',..._0x3930a1[_0x31690a(0xdc)]},_0x177b31=_0x398620;if(_0x3930a1[_0x31690a(0xcf)]){const _0x5b3517=typeof _0x3930a1['body']===_0x31690a(0xbb)?_0x3930a1['body']:JSON['stringify'](_0x3930a1[_0x31690a(0xcf)]);!_0x177b31[_0x31690a(0xa9)]&&!_0x177b31[_0x31690a(0x8b)]&&(_0x177b31[_0x31690a(0xa9)]=Buffer[_0x31690a(0xb1)](_0x5b3517));}const _0x5c8506={};_0x5c8506[_0x31690a(0x107)]=_0x3930a1[_0x31690a(0x107)]||'GET',_0x5c8506['hostname']=_0x54a797[_0x31690a(0x7f)],_0x5c8506[_0x31690a(0x94)]=_0x54a797[_0x31690a(0x94)]||(_0x54a797[_0x31690a(0xfb)]===_0x31690a(0x7b)?0x1bb:0x50),_0x5c8506[_0x31690a(0xb6)]=_0x54a797[_0x31690a(0xbe)]+_0x54a797['search'],_0x5c8506[_0x31690a(0xdc)]=_0x177b31;const _0x449e6f=_0x5c8506,_0x3e7f69=_0x47c3cb[_0x31690a(0xd5)](_0x449e6f,_0x340aa6=>{const _0x1bac8f=_0x31690a;let _0x3a1db4='';_0x340aa6['on'](_0x1bac8f(0x99),_0x3e8144=>{_0x3a1db4+=_0x3e8144;}),_0x340aa6['on'](_0x1bac8f(0x89),()=>{const _0x3a4e28=_0x1bac8f;_0x2b4912({'ok':_0x340aa6['statusCode']>=0xc8&&_0x340aa6[_0x3a4e28(0xf5)]<0x12c,'status':_0x340aa6[_0x3a4e28(0xf5)],'json':async()=>JSON[_0x3a4e28(0xce)](_0x3a1db4),'text':async()=>_0x3a1db4});});});_0x3e7f69['on']('error',_0x4b056b=>{_0x4d086d(_0x4b056b);}),_0x3930a1[_0x31690a(0x9c)]&&(_0x3930a1[_0x31690a(0x9c)][_0x31690a(0xc8)]?_0x3e7f69['destroy'](new Error(_0x31690a(0xde))):_0x3930a1['signal']['addEventListener'](_0x31690a(0x80),()=>{const _0x508082=_0x31690a;_0x3e7f69[_0x508082(0xeb)](new Error(_0x508082(0xde)));})),_0x3930a1[_0x31690a(0xcf)]&&_0x3e7f69[_0x31690a(0xb0)](_0x3930a1[_0x31690a(0xcf)]),_0x3e7f69['end']();}catch(_0x1b2b5c){_0x4d086d(_0x1b2b5c);}});}class ProxyServer{constructor(_0x54be14={}){const _0x41e39b=_0x2e3c68;this[_0x41e39b(0xc0)]=_0x54be14[_0x41e39b(0xc0)]||process[_0x41e39b(0x101)](),this[_0x41e39b(0xa1)]=_0x54be14['licenseKey']||this[_0x41e39b(0xaf)](),this[_0x41e39b(0x87)]=_0x54be14[_0x41e39b(0x87)],this['publicKey']=_0x54be14[_0x41e39b(0x8c)]||_0x54be14['masterSecret'],this[_0x41e39b(0xe2)]=null,this['clientBuffer']='',this['running']=![],this[_0x41e39b(0xfe)]=_0x54be14[_0x41e39b(0xfe)]||process['stdout'],this[_0x41e39b(0xbd)]=_0x54be14[_0x41e39b(0xbd)]||path[_0x41e39b(0xa0)](__dirname,_0x41e39b(0xa2),_0x41e39b(0xd4));}[_0x2e3c68(0xaf)](){const _0x3a710a=_0x2e3c68,_0x5a7ffe=path['join'](os[_0x3a710a(0x9e)](),'.anhdh',_0x3a710a(0x10d));if(fs['existsSync'](_0x5a7ffe))return fs[_0x3a710a(0x82)](_0x5a7ffe,_0x3a710a(0xb9))[_0x3a710a(0x9d)]();return null;}async[_0x2e3c68(0xda)](){const _0x59b478=_0x2e3c68,_0x39c748=process.env.MCP_SKIP_LICENSE_CHECK==='1';if(_0x39c748||!this[_0x59b478(0xa1)])return;const _0x48f697=this[_0x59b478(0xa1)][_0x59b478(0x10c)]('.');if(_0x48f697[_0x59b478(0xef)]!==0x3)return;let _0xa38e88;try{_0xa38e88=JSON['parse'](Buffer[_0x59b478(0x92)](_0x48f697[0x1],'base64url')[_0x59b478(0xe5)](_0x59b478(0xb9)));}catch(_0x26cb23){return;}if(!_0xa38e88||!_0xa38e88[_0x59b478(0xc3)])return;const _0x557550=0x6*0x18*0xe10*0x3e8,_0x4d9a97=_0xa38e88['exp']-Date[_0x59b478(0x108)]();if(_0x4d9a97<_0x557550){console[_0x59b478(0x8f)](_0x59b478(0xa8));const _0xcee276=process.env.MCP_ACTIVATION_URL||_0x59b478(0xcd),_0x3a6138=_0xcee276+'/heartbeat',_0x1a3651=new AbortController(),_0x5a404c=setTimeout(()=>_0x1a3651['abort'](),0x1388);try{const _0x2eb696={};_0x2eb696[_0x59b478(0xe4)]=_0x59b478(0xad);const _0x5dfc71={};_0x5dfc71[_0x59b478(0x7c)]=this[_0x59b478(0xa1)];const _0x2314a4=await httpRequest(_0x3a6138,{'method':'POST','headers':_0x2eb696,'body':JSON['stringify'](_0x5dfc71),'signal':_0x1a3651[_0x59b478(0x9c)]});clearTimeout(_0x5a404c);if(_0x2314a4['status']===0x193){console[_0x59b478(0x8f)](_0x59b478(0xb4)),process[_0x59b478(0xfc)](0x1);return;}if(_0x2314a4['status']===0x191){console[_0x59b478(0x8f)](_0x59b478(0xa4)),process[_0x59b478(0xfc)](0x1);return;}if(!_0x2314a4['ok']){console[_0x59b478(0x8f)]('[MCP\x20Agent]\x20Heartbeat\x20refresh\x20failed:\x20Server\x20returned\x20'+_0x2314a4['status']+_0x59b478(0x90));return;}const _0x594260=await _0x2314a4[_0x59b478(0x109)]();if(_0x594260&&_0x594260[_0x59b478(0x7c)]){this[_0x59b478(0xa1)]=_0x594260[_0x59b478(0x7c)];const _0x921a47=path[_0x59b478(0xa0)](os[_0x59b478(0x9e)](),'.anhdh','license.key');try{const _0x2df7a4={};_0x2df7a4[_0x59b478(0xb5)]=!![],fs[_0x59b478(0xe1)](path[_0x59b478(0x96)](_0x921a47),_0x2df7a4),fs[_0x59b478(0x85)](_0x921a47,_0x594260[_0x59b478(0x7c)],'utf8'),console[_0x59b478(0x8f)]('[MCP\x20Agent]\x20Heartbeat:\x20License\x20token\x20successfully\x20refreshed.');}catch(_0x1e3ec7){console[_0x59b478(0x8f)](_0x59b478(0x95),_0x1e3ec7[_0x59b478(0xc6)]);}}}catch(_0x31e0bd){clearTimeout(_0x5a404c),console['error'](_0x59b478(0xc7),_0x31e0bd[_0x59b478(0xc6)],'.\x20Continuing\x20with\x20cached\x20token.');}}}async[_0x2e3c68(0x93)](){const _0x53ed50=_0x2e3c68;console['error']('[MCP\x20Agent]\x20Starting\x20server\x20at\x20'+this[_0x53ed50(0xc0)]);if(!this[_0x53ed50(0x8c)]){if(process.env.MCP_ADMIN_DIR){const _0x512888=path[_0x53ed50(0xa0)](process.env.MCP_ADMIN_DIR,_0x53ed50(0xf6));fs[_0x53ed50(0x86)](_0x512888)&&(this[_0x53ed50(0x8c)]=fs[_0x53ed50(0x82)](_0x512888,_0x53ed50(0xb9))['trim']());}if(!this[_0x53ed50(0x8c)]){let _0x53a0de=__dirname;while(_0x53a0de){const _0x283747=path[_0x53ed50(0xa0)](_0x53a0de,_0x53ed50(0xb3),_0x53ed50(0xf6));if(fs['existsSync'](_0x283747)){this[_0x53ed50(0x8c)]=fs[_0x53ed50(0x82)](_0x283747,_0x53ed50(0xb9))[_0x53ed50(0x9d)]();break;}const _0x46b148=path[_0x53ed50(0x96)](_0x53a0de);if(_0x46b148===_0x53a0de)break;_0x53a0de=_0x46b148;}}}const _0xf9f454=this['integrityManifestPath'],_0x3019e8=!__dirname[_0x53ed50(0xb7)](/\\/g,'/')[_0x53ed50(0x10c)]('/')['includes'](_0x53ed50(0x10f)),_0x31007=process.env.MCP_SKIP_INTEGRITY_CHECK==='1'||_0x3019e8&&!fs[_0x53ed50(0x86)](_0xf9f454);if(!_0x31007){const _0x1b83cb=require(_0x53ed50(0xc5));if(!fs[_0x53ed50(0x86)](_0xf9f454)){console[_0x53ed50(0x8f)]('[MCP\x20Agent]\x20Integrity\x20check\x20failed:\x20integrity-manifest.json\x20missing.\x20Exiting.'),process['exit'](0x1);return;}let _0xe9e8ef;try{_0xe9e8ef=JSON[_0x53ed50(0xce)](fs['readFileSync'](_0xf9f454,_0x53ed50(0xb9)));}catch(_0x57be82){console[_0x53ed50(0x8f)](_0x53ed50(0xcb)),process[_0x53ed50(0xfc)](0x1);return;}if(!_0xe9e8ef['files']||!_0xe9e8ef['signature']){console[_0x53ed50(0x8f)](_0x53ed50(0xf3)),process[_0x53ed50(0xfc)](0x1);return;}const _0x5a0d96=this[_0x53ed50(0x8c)]||require('../license/verify.js')['PRODUCTION_PUBLIC_KEY'];try{const _0x40d8de=JSON['stringify'](_0xe9e8ef[_0x53ed50(0xed)]),_0x4c8c28=Buffer[_0x53ed50(0x92)](_0xe9e8ef[_0x53ed50(0xf7)],_0x53ed50(0xc9)),_0x4b78e7=_0x1b83cb[_0x53ed50(0x84)](null,Buffer[_0x53ed50(0x92)](_0x40d8de),_0x5a0d96,_0x4c8c28);if(!_0x4b78e7){console[_0x53ed50(0x8f)]('[MCP\x20Agent]\x20Integrity\x20check\x20failed:\x20Invalid\x20signature.\x20Exiting.'),process['exit'](0x1);return;}}catch(_0x435f6f){console[_0x53ed50(0x8f)]('[MCP\x20Agent]\x20Integrity\x20check\x20failed:\x20Signature\x20verification\x20failed.\x20Exiting.'),process[_0x53ed50(0xfc)](0x1);return;}const _0x1abccd=path[_0x53ed50(0xa0)](__dirname,_0x53ed50(0xa2));for(const [_0x135943,_0x4affee]of Object[_0x53ed50(0x81)](_0xe9e8ef[_0x53ed50(0xed)])){const _0x3c96e4=path['join'](_0x1abccd,_0x135943);if(!fs[_0x53ed50(0x86)](_0x3c96e4)){console[_0x53ed50(0x8f)]('[MCP\x20Agent]\x20Integrity\x20check\x20failed:\x20'+_0x135943+_0x53ed50(0x110)),process['exit'](0x1);return;}try{const _0x412feb=fs[_0x53ed50(0x82)](_0x3c96e4),_0x2306ce=_0x1b83cb[_0x53ed50(0xd6)](_0x53ed50(0xf1))[_0x53ed50(0xe7)](_0x412feb)['digest'](_0x53ed50(0x88));if(_0x2306ce!==_0x4affee){console[_0x53ed50(0x8f)]('[MCP\x20Agent]\x20Integrity\x20check\x20failed:\x20'+_0x135943+'\x20modified.\x20Exiting.'),process[_0x53ed50(0xfc)](0x1);return;}}catch(_0x2c5464){console[_0x53ed50(0x8f)]('[MCP\x20Agent]\x20Integrity\x20check\x20failed:\x20'+_0x135943+'\x20modified.\x20Exiting.'),process[_0x53ed50(0xfc)](0x1);return;}}}const _0x2268f3=process.env.MCP_SKIP_LICENSE_CHECK==='1';if(!_0x2268f3){if(!this[_0x53ed50(0x87)]){const {getFingerprint:_0x47a0c8}=require('../license/fingerprint.js');this[_0x53ed50(0x87)]=_0x47a0c8();}const _0x5cba4e=verifyLicense(this[_0x53ed50(0xa1)],this[_0x53ed50(0x87)],this['publicKey']);if(!_0x5cba4e[_0x53ed50(0xf9)]){if(_0x5cba4e[_0x53ed50(0x9f)]==='License\x20expired'){const _0xf9b5cd=_0x5cba4e['payload']||{},_0xbe0b44=_0xf9b5cd[_0x53ed50(0xc3)]?new Date(_0xf9b5cd[_0x53ed50(0xc3)])['toISOString']()[_0x53ed50(0x10c)]('T')[0x0]:_0x53ed50(0xf0);console[_0x53ed50(0x8f)]('[MCP\x20Agent]\x20License\x20expired\x20on\x20'+_0xbe0b44+_0x53ed50(0xc2));}else console[_0x53ed50(0x8f)](_0x53ed50(0x8e)+_0x5cba4e[_0x53ed50(0x9f)]+_0x53ed50(0x9b));process['exit'](0x1);return;}console['error'](_0x53ed50(0x106)+_0x5cba4e[_0x53ed50(0x10b)][_0x53ed50(0x10a)]),await this[_0x53ed50(0xda)](),this[_0x53ed50(0xa6)]=setInterval(()=>{const _0x2e0850=_0x53ed50;this[_0x2e0850(0xda)]()['catch'](_0x278f76=>{const _0xd3a9fa=_0x2e0850;console[_0xd3a9fa(0x8f)]('[MCP\x20Agent]\x20Periodic\x20heartbeat\x20error:',_0x278f76[_0xd3a9fa(0xc6)]);});},0x18*0x3c*0x3c*0x3e8);}this[_0x53ed50(0xe2)]=spawnBackends(this[_0x53ed50(0xc0)]),this['running']=!![];for(const _0x1ae903 of Object['values'](this[_0x53ed50(0xe2)])){_0x1ae903['start']();}this['stdinListener']=_0x58c82c=>{const _0x56796c=_0x53ed50;this['handleClientData'](_0x58c82c[_0x56796c(0xe5)]());},process[_0x53ed50(0x100)]['on'](_0x53ed50(0x99),this['stdinListener']);}[_0x2e3c68(0x7e)](_0x384a88){const _0x4f097e=_0x2e3c68;this[_0x4f097e(0xec)]+=_0x384a88;const _0x2367b3=this[_0x4f097e(0xec)]['split']('\x0a');this[_0x4f097e(0xec)]=_0x2367b3['pop']();for(const _0x46f76e of _0x2367b3){const _0x51fcd1=_0x46f76e[_0x4f097e(0x9d)]();if(!_0x51fcd1)continue;try{const _0x366237=JSON[_0x4f097e(0xce)](_0x51fcd1);this['handleClientMessage'](_0x366237);}catch(_0x49b101){console[_0x4f097e(0x8f)](_0x4f097e(0x77),_0x46f76e,_0x49b101[_0x4f097e(0xc6)]);}}}async[_0x2e3c68(0xdd)](_0x2512e6){const _0x30cc4f=_0x2e3c68,{id:_0x3ffc41,method:_0x46483a,params:_0x1ebabf}=_0x2512e6;if(!_0x46483a)return;if(_0x46483a===_0x30cc4f(0x7d)){Promise['all'](Object[_0x30cc4f(0xd8)](this[_0x30cc4f(0xe2)])[_0x30cc4f(0xe6)](_0x3d2d3d=>_0x3d2d3d['sendRequest'](_0x30cc4f(0x7d),_0x1ebabf)[_0x30cc4f(0x97)](_0x115a3a=>{const _0x32863c=_0x30cc4f;console['error'](_0x32863c(0xdf)+(_0x3d2d3d[_0x32863c(0xe8)]||_0x3d2d3d['name'])+':',_0x115a3a[_0x32863c(0xc6)]);})));const _0x16c804={};_0x16c804[_0x30cc4f(0xdb)]=![];const _0x4714e7={};_0x4714e7[_0x30cc4f(0x102)]=_0x16c804;const _0x1454c3={};_0x1454c3[_0x30cc4f(0xbf)]=_0x30cc4f(0xe3),_0x1454c3[_0x30cc4f(0xd7)]=_0x30cc4f(0x10e);const _0x21ac0c={};_0x21ac0c[_0x30cc4f(0x78)]=_0x1ebabf[_0x30cc4f(0x78)]||_0x30cc4f(0x76),_0x21ac0c[_0x30cc4f(0x91)]=_0x4714e7,_0x21ac0c[_0x30cc4f(0xa5)]=_0x1454c3;const _0x211d9f={};_0x211d9f['jsonrpc']=_0x30cc4f(0xd0),_0x211d9f['id']=_0x3ffc41,_0x211d9f[_0x30cc4f(0x8d)]=_0x21ac0c;const _0x44605d=_0x211d9f;this[_0x30cc4f(0xa7)](_0x44605d);return;}if(_0x46483a===_0x30cc4f(0xea)){try{const _0xaa96ab=Object[_0x30cc4f(0x81)](this[_0x30cc4f(0xe2)])[_0x30cc4f(0xe6)](async([_0x2366de,_0x3c770f])=>{const _0x4bcd7c=_0x30cc4f;try{const _0x38b86c=await _0x3c770f[_0x4bcd7c(0xf8)](_0x4bcd7c(0xea)),_0xf63548=_0x38b86c&&_0x38b86c[_0x4bcd7c(0x8d)]&&_0x38b86c['result']['tools']||[];return translateToolList(_0xf63548,_0x2366de);}catch(_0x3bf386){return console[_0x4bcd7c(0x8f)](_0x4bcd7c(0xd1)+_0x2366de+':',_0x3bf386['message']),[];}}),_0x4e696f=await Promise['all'](_0xaa96ab),_0x2427b5=_0x4e696f['flat'](),_0x594014={};_0x594014[_0x30cc4f(0x102)]=_0x2427b5;const _0x5ca632={};_0x5ca632[_0x30cc4f(0xc1)]=_0x30cc4f(0xd0),_0x5ca632['id']=_0x3ffc41,_0x5ca632[_0x30cc4f(0x8d)]=_0x594014;const _0x4ea91a=_0x5ca632;this[_0x30cc4f(0xa7)](_0x4ea91a);}catch(_0x1b685b){this['writeError'](_0x3ffc41,-0x7f5b,_0x30cc4f(0xcc)+_0x1b685b[_0x30cc4f(0xc6)]);}return;}if(_0x46483a==='tools/call'){const _0x2b1af2=_0x1ebabf[_0x30cc4f(0xbf)],_0x522974=mapExposedToOriginal(_0x2b1af2);if(!_0x522974)return this[_0x30cc4f(0x83)](_0x3ffc41,-0x7f59,_0x30cc4f(0x103)+_0x2b1af2);try{const _0x11745f=this[_0x30cc4f(0xe2)][_0x522974[_0x30cc4f(0xae)]];if(!_0x11745f)return this['writeError'](_0x3ffc41,-0x7f5b,_0x30cc4f(0xa3)+_0x522974['backend']+_0x30cc4f(0x8a));const _0x1125a9={..._0x1ebabf};_0x1125a9[_0x30cc4f(0xbf)]=_0x522974[_0x30cc4f(0xfd)];const _0x340707={..._0x2512e6};_0x340707['params']=_0x1125a9;const _0x5eb1f2=_0x340707,_0x49727b=await _0x11745f[_0x30cc4f(0xfa)](_0x5eb1f2);this[_0x30cc4f(0xa7)](_0x49727b);}catch(_0x14fea8){this[_0x30cc4f(0x83)](_0x3ffc41,-0x7f5b,_0x30cc4f(0x79)+_0x14fea8[_0x30cc4f(0xc6)]);}return;}for(const _0x266d6b of Object[_0x30cc4f(0xd8)](this[_0x30cc4f(0xe2)])){_0x266d6b[_0x30cc4f(0xe9)]&&_0x266d6b[_0x30cc4f(0xe9)][_0x30cc4f(0x100)]['write'](JSON[_0x30cc4f(0x98)](_0x2512e6)+'\x0a');}}[_0x2e3c68(0xa7)](_0x167c42){const _0x18d586=_0x2e3c68;this[_0x18d586(0xfe)][_0x18d586(0xb0)](JSON[_0x18d586(0x98)](_0x167c42)+'\x0a');}[_0x2e3c68(0x83)](_0x47c63e,_0x25fa3f,_0x4aa4b8){const _0x58bbe7=_0x2e3c68,_0x680429={};_0x680429[_0x58bbe7(0xff)]=_0x25fa3f,_0x680429[_0x58bbe7(0xc6)]=_0x4aa4b8;const _0x1c3c29={};_0x1c3c29[_0x58bbe7(0xc1)]=_0x58bbe7(0xd0),_0x1c3c29['id']=_0x47c63e,_0x1c3c29[_0x58bbe7(0x8f)]=_0x680429;const _0x183225=_0x1c3c29;this[_0x58bbe7(0xa7)](_0x183225);}[_0x2e3c68(0xf2)](){const _0x3c9685=_0x2e3c68;this['running']=![];this['heartbeatInterval']&&(clearInterval(this[_0x3c9685(0xa6)]),this[_0x3c9685(0xa6)]=null);this['stdinListener']&&(process[_0x3c9685(0x100)]['removeListener'](_0x3c9685(0x99),this[_0x3c9685(0xab)]),this[_0x3c9685(0xab)]=null,process['stdin'][_0x3c9685(0xb8)]());if(this[_0x3c9685(0xe2)])for(const _0x36b6be of Object[_0x3c9685(0xd8)](this[_0x3c9685(0xe2)])){_0x36b6be[_0x3c9685(0xf2)]();}}}const _0x1e04e6={};function _0x311c(_0x14a078,_0x50d518){_0x14a078=_0x14a078-0x76;const _0xf30a57=_0xf30a();let _0x311c8c=_0xf30a57[_0x14a078];if(_0x311c['oAevzg']===undefined){var _0x4f9c62=function(_0x1b1458){const _0x359124='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4b7be1='',_0x4914ea='';for(let _0x3bf3ba=0x0,_0x2da3f7,_0x4c7187,_0x42777d=0x0;_0x4c7187=_0x1b1458['charAt'](_0x42777d++);~_0x4c7187&&(_0x2da3f7=_0x3bf3ba%0x4?_0x2da3f7*0x40+_0x4c7187:_0x4c7187,_0x3bf3ba++%0x4)?_0x4b7be1+=String['fromCharCode'](0xff&_0x2da3f7>>(-0x2*_0x3bf3ba&0x6)):0x0){_0x4c7187=_0x359124['indexOf'](_0x4c7187);}for(let _0x535c3f=0x0,_0x4153cb=_0x4b7be1['length'];_0x535c3f<_0x4153cb;_0x535c3f++){_0x4914ea+='%'+('00'+_0x4b7be1['charCodeAt'](_0x535c3f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4914ea);};_0x311c['dQFcIa']=_0x4f9c62,_0x311c['BhslVe']={},_0x311c['oAevzg']=!![];}const _0xd921d8=_0xf30a57[0x0],_0x49e489=_0x14a078+_0xd921d8,_0x1f968c=_0x311c['BhslVe'][_0x49e489];return!_0x1f968c?(_0x311c8c=_0x311c['dQFcIa'](_0x311c8c),_0x311c['BhslVe'][_0x49e489]=_0x311c8c):_0x311c8c=_0x1f968c,_0x311c8c;}_0x1e04e6[_0x2e3c68(0xca)]=ProxyServer,module[_0x2e3c68(0xaa)]=_0x1e04e6;if(require[_0x2e3c68(0x104)]===module){const server=new ProxyServer();server[_0x2e3c68(0x93)]()['catch'](_0x1bd6b5=>{const _0x229097=_0x2e3c68;console[_0x229097(0x8f)](_0x229097(0x111),_0x1bd6b5[_0x229097(0xc6)]),process[_0x229097(0xfc)](0x1);});}
|
|
1
|
+
function _0x8dea(){const _0x184dc4=['lI4VBgLJzw5Zzs92zxjPzNKUANm','Dw5RBM93BG','mI4W','w01ducbbz2vUDf0Gsw50zwDYAxr5ignOzwnRigzHAwXLzdOGu2LNBMf0DxjLihzLCMLMAwnHDgLVBIbMywLSzwqUiev4AxrPBMCU','zgLNzxn0','w01ducbbz2vUDf0GtgLJzw5ZzsbRzxKGDMvYAwzPzwqGC3vJy2vZC2z1BgX5igzVCIb1C2vYoIa','CMvHC29U','C3rKAw4','BgLZDenOyw5Nzwq','DMfSAwq','CMvZDwX0','ChjVAMvJDfbHDgG','ms4WlJa','rMfPBgvKihrVihf1zxj5ihrVB2WGBgLZDdOG','lI4VlI4','BwfPBG','y29Kzq','zxHWB3j0CW','lI9YB3v0zxiUANm','Aw5PDgLHBgL6zq','w01ducbbz2vUDf0GtgLJzw5ZzsbRzxKGAgfZigjLzw4GCMv2B2TLzc4GrxHPDgLUzY4','mtiYntrgD0fxyMG','igLZig5VDcbYDw5UAw5N','zM9YD2fYzfjLCxvLC3q','DMfSDwvZ','mJaYnc0Xms0Wnq','zgLZCgXHEu5HBwu','C2vHCMnO','tw96AwXSys81lJaGkgnVBxbHDgLIBgu7ie5VzguV','yMfZzty0DxjS','ChvIBgLJs2v5','AgfUzgXLq2XPzw50rgf0yq','ChjVDg9JB2XwzxjZAw9U','AgvHCNrIzwf0sw50zxj2ywW','lI4VBgLJzw5Zzs9MAw5NzxjWCMLUDc5QCW','yNL0zuXLBMD0Aa','mJi1ntaXBuXYzgjb','w01ducbbz2vUDf0Gsw50zwDYAxr5ignOzwnRigzHAwXLzdOGsw52ywXPzcbTyw5PzMvZDcbMB3jTyxqUiev4AxrPBMCU','C2vUzfjLCxvLC3q','y2HPBgq','r0vu','zMLSzxm','w01ducbbz2vUDf0GtgLJzw5ZzsbRzxKGzxHWAxjLzcbVCIbPBNzHBgLKlIbfEgL0Aw5NlG','nti3nJe3mND3rgftBq','zgf0yq','y3jLyxrLsgfZAa','CMvWBgfJzq','l2HLyxj0yMvHDa','CgfYyw1Z','w01ducbbz2vUDf0GsgvHCNrIzwf0ihjLzNjLC2GGzMfPBgvKoIbtzxj2zxiGCMv0DxjUzwqG','y29UDgvUDc1Szw5NDgG','C3rKB3v0','w01ducbbz2vUDf0GsgvHCNrIzwf0ignOzwnRigzHAwXLzcbVCIb0Aw1LzcbVDxq6','zxHW','zxHPDa','vg9VBcbLEgvJDxrPB24GzMfPBgvKoIa','CMvJDxjZAxzL','AgvHzgvYCW','nZmWmtm0DKnsuvLO','y2XPzw50qNvMzMvY','AM9PBG','CgfYC2u','mtuWmZbIzeHYAgS','zNjVBq','Dg9VBhmVy2fSBa','CgvYzM9YBuHLyxj0yMvHDa','ywXS','C3rYAw5NAwz5','C3rYAw5N','ywrKrxzLBNrmAxn0zw5LCG','DxrMoa','w01ducbbz2vUDf0Gu3rHCNrPBMCGC2vYDMvYigf0ia','ywjVCNq','ANnVBG','C3rHDhvZ','BwnWlwfNzw50lxbYB3H5','ChjVDg9JB2W','D3jPDgu','Cg9YDa','CNvUBMLUzW','ywjVCNrLza','Bg9HzeXPy2vUC2vlzxK','BgLJzw5ZzuTLEq','nfzhrxHLCW','Cgf5Bg9Hza','DxnLCG','BM93','Dg9Rzw4','Dg9tDhjPBMC','Dg9VBhm','ywrTAw4','mZG1z3DXzw9c','BgLJzw5Zzs5RzxK','lIbdB250Aw51Aw5NihDPDgGGy2fJAgvKihrVA2vUlG','lIbdB250ywn0ihn1ChbVCNqGyxqGC3vWCg9YDebHBMHKAc5PBY4GrxHPDgLUzY4','w01ducbbz2vUDf0GrMfPBgvKihrVihbHCNnLiePtt04TuLbdig1LC3nHz2uGzNjVBsbJBgLLBNq6','yMfJA2vUza','BwfZDgvYu2vJCMv0','C2vYDMvYsw5MBW','mta0otu2nZr6yxvkt1G','C3rVCa','Ahr0Chm6lY9Hz2vUDgTPDc5HBhbOyxrLy2HZlMfPl2fWAq','C3rHDhvZq29Kzq','ohDSv1Dorq','Ag9TzwrPCG','uhjVEhLtzxj2zxi','C3rKAw5mAxn0zw5LCG','w01ducbbz2vUDf0GtgLJzw5ZzsbLEhbPCMvKig9Uia','CMvHzezPBgvtEw5J','ue9tva','w01ducbbz2vUDf0GrMfPBgvKihrVigLUAxrPywXPEMuGC2vYDMLJzsa','w01ducbbz2vUDf0Gsw50zwDYAxr5ignOzwnRigzHAwXLzdOGrMfPBgvKihrVihbHCNnLigLUDgvNCML0Es1Tyw5PzMvZDc5QC29UlIbfEgL0Aw5NlG','DhjPBq','vgfYz2v0igjHy2TLBMqG','BwTKAxjtEw5J','zgLYBMfTzq','mtC2mtaWnen4AwrxEa','q29UDgvUDc1mzw5NDgG','w01ducbbz2vUDf0GrMfPBgvKihrVihnHDMuGCMvMCMvZAgvKigXPy2vUC2uGDg9Rzw4GDg8GzgLZAZO','vg9VBcbUB3qGzM91BMq6ia','BgvUz3rO','ANnVBNjWyW','D3jPDgvgAwXLu3LUyW','y2f0y2G','yMfJA2vUzhm','BwvZC2fNzq','lI9IywnRzw5KCY5QCW','Aw50zwDYAxr5lw1HBMLMzxn0lMPZB24','zxHPC3rZu3LUyW','Cgf1C2u','y3j5ChrV','BwfW','Ahr0Ca','Cgf0Aa','C2LNBMfS','Aw50zwDYAxr5twfUAwzLC3rqyxrO','Bwv0Ag9K','w01ducbbz2vUDf0Gsw50zwDYAxr5ignOzwnRigzHAwXLzdOG','ig1VzgLMAwvKlIbfEgL0Aw5NlG','lIbszw5LDYbHDcbODhrWCZOVl2fUAgrOlMLVl3jLBMv3lIbfEgL0Aw5NlG','zxjYB3i','DMvYC2LVBG','w01ducbbz2vUDf0Gsw50zwDYAxr5ignOzwnRigzHAwXLzdOGAw50zwDYAxr5lw1HBMLMzxn0lMPZB24GBwLZC2LUzY4GrxHPDgLUzY4','zgv2AwnLswq','Cgf0Ag5HBwu','yxbWBgLJyxrPB24VANnVBG','C3bSAxq','BMfTzq','y2fWywjPBgL0AwvZ','zMXHDa','Ahr0Chm6','D3jPDgvuB0nSAwvUDa','yM9KEq','zgLZDa','zw5K','Ahr0Chm','Dg9VBhmVBgLZDa','lMfUAgrO','zgvZDhjVEq','w01ducbbz2vUDf0GDg9VBhmVBgLZDcbYzxf1zxn0igzHAwXLzcbMB3iGC2vYDMLJzsa','BwfZDgvYlNb1yMXPyY5Wzw0','Ag9ZDg5HBwu','vgHLig9WzxjHDgLVBIb3yxmGywjVCNrLzc4','C3rHCNq','w01ducbbz2vUDf0GsgvHCNrIzwf0oIbmAwnLBNnLihrVA2vUihn1y2nLC3nMDwXSEsbYzwzYzxnOzwqU','D3jPDgvfCNjVCG','AgfUzgXLq2XPzw50twvZC2fNzq','zw50CMLLCW','ndCYnZrgvw1qsgK','Agv4','B3jPz2LUywXoyw1L'];_0x8dea=function(){return _0x184dc4;};return _0x8dea();}function _0x1d44(_0x5afd1b,_0x5d30c8){_0x5afd1b=_0x5afd1b-0xe4;const _0x8dea0b=_0x8dea();let _0x1d443=_0x8dea0b[_0x5afd1b];if(_0x1d44['JFPweS']===undefined){var _0x6bda93=function(_0x5658ab){const _0x4d9aad='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x305012='',_0x2df7b2='';for(let _0x5e3fce=0x0,_0x53516e,_0x506e5e,_0x145486=0x0;_0x506e5e=_0x5658ab['charAt'](_0x145486++);~_0x506e5e&&(_0x53516e=_0x5e3fce%0x4?_0x53516e*0x40+_0x506e5e:_0x506e5e,_0x5e3fce++%0x4)?_0x305012+=String['fromCharCode'](0xff&_0x53516e>>(-0x2*_0x5e3fce&0x6)):0x0){_0x506e5e=_0x4d9aad['indexOf'](_0x506e5e);}for(let _0x279e5e=0x0,_0x5ee623=_0x305012['length'];_0x279e5e<_0x5ee623;_0x279e5e++){_0x2df7b2+='%'+('00'+_0x305012['charCodeAt'](_0x279e5e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2df7b2);};_0x1d44['EdVrPP']=_0x6bda93,_0x1d44['IeickF']={},_0x1d44['JFPweS']=!![];}const _0x40c1ec=_0x8dea0b[0x0],_0x53ed5b=_0x5afd1b+_0x40c1ec,_0x1e2077=_0x1d44['IeickF'][_0x53ed5b];return!_0x1e2077?(_0x1d443=_0x1d44['EdVrPP'](_0x1d443),_0x1d44['IeickF'][_0x53ed5b]=_0x1d443):_0x1d443=_0x1e2077,_0x1d443;}const _0x2e75e2=_0x1d44;(function(_0x1191df,_0x2eb774){const _0x4b61db=_0x1d44,_0x336afd=_0x1191df();while(!![]){try{const _0x240b5e=-parseInt(_0x4b61db(0xf8))/0x1*(parseInt(_0x4b61db(0x127))/0x2)+-parseInt(_0x4b61db(0x10e))/0x3+parseInt(_0x4b61db(0xff))/0x4+parseInt(_0x4b61db(0x12f))/0x5*(-parseInt(_0x4b61db(0x17c))/0x6)+parseInt(_0x4b61db(0x148))/0x7+parseInt(_0x4b61db(0x13b))/0x8*(-parseInt(_0x4b61db(0x137))/0x9)+-parseInt(_0x4b61db(0x112))/0xa*(-parseInt(_0x4b61db(0xe9))/0xb);if(_0x240b5e===_0x2eb774)break;else _0x336afd['push'](_0x336afd['shift']());}catch(_0x5eb617){_0x336afd['push'](_0x336afd['shift']());}}}(_0x8dea,0xbddec));const fs=require('fs'),path=require(_0x2e75e2(0x159)),os=require('os'),http=require(_0x2e75e2(0x158)),https=require(_0x2e75e2(0x16f)),{verifyLicense}=require(_0x2e75e2(0x17f)),{spawnBackends}=require(_0x2e75e2(0x152)),{translateToolList,mapExposedToOriginal}=require(_0x2e75e2(0xe6));function httpRequest(_0x14b059,_0x31d44d={}){return new Promise((_0x13ba7d,_0x4971ee)=>{const _0x35738b=_0x1d44;try{const _0x393525=new URL(_0x14b059),_0x4b852d=_0x393525[_0x35738b(0x120)]===_0x35738b(0x16a)?https:http,_0x1a57b6={'User-Agent':_0x35738b(0xf0)+process[_0x35738b(0x161)]+')',..._0x31d44d[_0x35738b(0x10d)]},_0x3337ac=_0x1a57b6;if(_0x31d44d[_0x35738b(0x16c)]){const _0x17e949=typeof _0x31d44d['body']===_0x35738b(0x118)?_0x31d44d['body']:JSON[_0x35738b(0x117)](_0x31d44d[_0x35738b(0x16c)]);!_0x3337ac[_0x35738b(0x149)]&&!_0x3337ac[_0x35738b(0x106)]&&(_0x3337ac[_0x35738b(0x149)]=Buffer[_0x35738b(0xf7)](_0x17e949));}const _0x4ebb39={};_0x4ebb39[_0x35738b(0x15c)]=_0x31d44d[_0x35738b(0x15c)]||_0x35738b(0xfc),_0x4ebb39[_0x35738b(0x175)]=_0x393525[_0x35738b(0x175)],_0x4ebb39[_0x35738b(0x122)]=_0x393525['port']||(_0x393525[_0x35738b(0x120)]===_0x35738b(0x16a)?0x1bb:0x50),_0x4ebb39[_0x35738b(0x159)]=_0x393525[_0x35738b(0x164)]+_0x393525[_0x35738b(0xef)],_0x4ebb39[_0x35738b(0x10d)]=_0x3337ac;const _0x1184e8=_0x4ebb39,_0x22c672=_0x4b852d['request'](_0x1184e8,_0x4cff84=>{const _0xd6b8b0=_0x35738b;let _0x2b0e92='';_0x4cff84['on'](_0xd6b8b0(0x100),_0xdfc4e6=>{_0x2b0e92+=_0xdfc4e6;}),_0x4cff84['on']('end',()=>{const _0x2b6c43=_0xd6b8b0;_0x13ba7d({'ok':_0x4cff84[_0x2b6c43(0x13a)]>=0xc8&&_0x4cff84[_0x2b6c43(0x13a)]<0x12c,'status':_0x4cff84[_0x2b6c43(0x13a)],'json':async()=>JSON[_0x2b6c43(0x111)](_0x2b0e92),'text':async()=>_0x2b0e92});});});_0x22c672['on']('error',_0x46924a=>{_0x4971ee(_0x46924a);}),_0x31d44d['signal']&&(_0x31d44d[_0x35738b(0x15a)][_0x35738b(0x124)]?_0x22c672['destroy'](new Error('The\x20operation\x20was\x20aborted.')):_0x31d44d['signal'][_0x35738b(0x119)]('abort',()=>{const _0x48d085=_0x35738b;_0x22c672[_0x48d085(0x172)](new Error(_0x48d085(0x176)));})),_0x31d44d['body']&&_0x22c672[_0x35738b(0x121)](_0x31d44d[_0x35738b(0x16c)]),_0x22c672[_0x35738b(0x16e)]();}catch(_0x5bec4d){_0x4971ee(_0x5bec4d);}});}class ProxyServer{constructor(_0x419db3={}){const _0x1c55e9=_0x2e75e2;this[_0x1c55e9(0x18a)]=_0x419db3[_0x1c55e9(0x18a)]||process['cwd'](),this[_0x1c55e9(0x126)]=_0x419db3[_0x1c55e9(0x126)]||this[_0x1c55e9(0x125)](),this[_0x1c55e9(0x163)]=_0x419db3[_0x1c55e9(0x163)],this[_0x1c55e9(0xf2)]=_0x419db3[_0x1c55e9(0xf2)]||_0x419db3[_0x1c55e9(0x135)],this[_0x1c55e9(0x150)]=null,this[_0x1c55e9(0x10f)]='',this[_0x1c55e9(0x123)]=![],this[_0x1c55e9(0x107)]=_0x419db3[_0x1c55e9(0x107)]||process[_0x1c55e9(0x107)],this['integrityManifestPath']=_0x419db3[_0x1c55e9(0x15b)]||path[_0x1c55e9(0x110)](__dirname,'../..',_0x1c55e9(0x153));}[_0x2e75e2(0x125)](){const _0x47eb0a=_0x2e75e2,_0x5c30f2=path[_0x47eb0a(0x110)](os[_0x47eb0a(0x13c)](),_0x47eb0a(0x171),_0x47eb0a(0x130));if(fs['existsSync'](_0x5c30f2))return fs[_0x47eb0a(0x140)](_0x5c30f2,_0x47eb0a(0x11a))[_0x47eb0a(0x144)]();return null;}async[_0x2e75e2(0x115)](){const _0x1ec8b6=_0x2e75e2,_0x31c0a8=process.env.MCP_SKIP_LICENSE_CHECK==='1';if(_0x31c0a8||!this['licenseKey'])return;const _0x50e6a9=this[_0x1ec8b6(0x126)]['split']('.');if(_0x50e6a9[_0x1ec8b6(0x14c)]!==0x3)return;let _0x3734bb;try{_0x3734bb=JSON['parse'](Buffer[_0x1ec8b6(0x113)](_0x50e6a9[0x1],'base64url')[_0x1ec8b6(0x12c)](_0x1ec8b6(0x11a)));}catch(_0x2696d3){return;}if(!_0x3734bb||!_0x3734bb['exp'])return;const _0x17b5ab=0x6*0x18*0xe10*0x3e8,_0x182fe3=_0x3734bb['exp']-Date[_0x1ec8b6(0x12a)]();if(_0x182fe3<_0x17b5ab){console['error']('[MCP\x20Agent]\x20Heartbeat\x20check:\x20token\x20has\x20less\x20than\x206\x20days\x20remaining.\x20Refreshing...');const _0x16e404=process.env.MCP_ACTIVATION_URL||_0x1ec8b6(0x139),_0x36a76c=_0x16e404+_0x1ec8b6(0x103),_0x2d20f1=new AbortController(),_0x50044f=setTimeout(()=>_0x2d20f1[_0x1ec8b6(0x11c)](),0x1388);try{const _0x545b0f={};_0x545b0f['Content-Type']=_0x1ec8b6(0x165);const _0x1c7a86={};_0x1c7a86['token']=this[_0x1ec8b6(0x126)];const _0x38383d=await httpRequest(_0x36a76c,{'method':_0x1ec8b6(0x141),'headers':_0x545b0f,'body':JSON[_0x1ec8b6(0x117)](_0x1c7a86),'signal':_0x2d20f1[_0x1ec8b6(0x15a)]});clearTimeout(_0x50044f);if(_0x38383d['status']===0x193){console[_0x1ec8b6(0x160)](_0x1ec8b6(0xe8)),process[_0x1ec8b6(0x10a)](0x1);return;}if(_0x38383d[_0x1ec8b6(0x11e)]===0x191){console[_0x1ec8b6(0x160)](_0x1ec8b6(0xfe)),process[_0x1ec8b6(0x10a)](0x1);return;}if(!_0x38383d['ok']){console[_0x1ec8b6(0x160)](_0x1ec8b6(0x105)+_0x38383d[_0x1ec8b6(0x11e)]+_0x1ec8b6(0x131));return;}const _0xe62185=await _0x38383d[_0x1ec8b6(0x11d)]();if(_0xe62185&&_0xe62185[_0x1ec8b6(0x12b)]){this[_0x1ec8b6(0x126)]=_0xe62185[_0x1ec8b6(0x12b)];const _0x4439ba=path[_0x1ec8b6(0x110)](os['homedir'](),_0x1ec8b6(0x171),_0x1ec8b6(0x130));try{const _0x5c1107={};_0x5c1107[_0x1ec8b6(0x10c)]=!![],fs[_0x1ec8b6(0x146)](path[_0x1ec8b6(0x147)](_0x4439ba),_0x5c1107),fs[_0x1ec8b6(0x14e)](_0x4439ba,_0xe62185[_0x1ec8b6(0x12b)],_0x1ec8b6(0x11a)),console[_0x1ec8b6(0x160)](_0x1ec8b6(0x178));}catch(_0x12dec2){console[_0x1ec8b6(0x160)](_0x1ec8b6(0x14a),_0x12dec2[_0x1ec8b6(0x151)]);}}}catch(_0x3a9d1e){clearTimeout(_0x50044f),console[_0x1ec8b6(0x160)](_0x1ec8b6(0x108),_0x3a9d1e[_0x1ec8b6(0x151)],_0x1ec8b6(0x131));}}}async[_0x2e75e2(0x177)](){const _0x2d2e15=_0x2e75e2;console[_0x2d2e15(0x160)](_0x2d2e15(0x11b)+this[_0x2d2e15(0x18a)]);if(!this[_0x2d2e15(0xf2)]){if(process.env.MCP_ADMIN_DIR){const _0x505548=path['join'](process.env.MCP_ADMIN_DIR,_0x2d2e15(0x174));fs[_0x2d2e15(0x154)](_0x505548)&&(this[_0x2d2e15(0xf2)]=fs[_0x2d2e15(0x140)](_0x505548,_0x2d2e15(0x11a))[_0x2d2e15(0x144)]());}if(!this['publicKey']){let _0x471adb=__dirname;while(_0x471adb){const _0xfd70dd=path[_0x2d2e15(0x110)](_0x471adb,_0x2d2e15(0x12e),_0x2d2e15(0x174));if(fs['existsSync'](_0xfd70dd)){this[_0x2d2e15(0xf2)]=fs[_0x2d2e15(0x140)](_0xfd70dd,_0x2d2e15(0x11a))[_0x2d2e15(0x144)]();break;}const _0xa86785=path['dirname'](_0x471adb);if(_0xa86785===_0x471adb)break;_0x471adb=_0xa86785;}}}const _0x4be0a3=this[_0x2d2e15(0x15b)],_0x1cac84=!__dirname[_0x2d2e15(0x102)](/\\/g,'/')[_0x2d2e15(0x166)]('/')['includes'](_0x2d2e15(0x16d)),_0x176cef=process.env.MCP_SKIP_INTEGRITY_CHECK==='1'||_0x1cac84&&!fs[_0x2d2e15(0x154)](_0x4be0a3);if(!_0x176cef){const _0x24b6f9=require(_0x2d2e15(0x156));if(!fs[_0x2d2e15(0x154)](_0x4be0a3)){console['error'](_0x2d2e15(0x162)),process[_0x2d2e15(0x10a)](0x1);return;}let _0x2bce3b;try{_0x2bce3b=JSON['parse'](fs[_0x2d2e15(0x140)](_0x4be0a3,'utf8'));}catch(_0x17ab7e){console[_0x2d2e15(0x160)](_0x2d2e15(0x143)),process[_0x2d2e15(0x10a)](0x1);return;}if(!_0x2bce3b[_0x2d2e15(0xfd)]||!_0x2bce3b['signature']){console[_0x2d2e15(0x160)](_0x2d2e15(0xf9)),process[_0x2d2e15(0x10a)](0x1);return;}const _0x1d8b5f=this[_0x2d2e15(0xf2)]||require('../license/verify.js')['PRODUCTION_PUBLIC_KEY'];try{const _0x1b7a61=JSON[_0x2d2e15(0x117)](_0x2bce3b[_0x2d2e15(0xfd)]),_0x151576=Buffer[_0x2d2e15(0x113)](_0x2bce3b['signature'],_0x2d2e15(0xf1)),_0x2c463e=_0x24b6f9['verify'](null,Buffer[_0x2d2e15(0x113)](_0x1b7a61),_0x1d8b5f,_0x151576);if(!_0x2c463e){console[_0x2d2e15(0x160)]('[MCP\x20Agent]\x20Integrity\x20check\x20failed:\x20Invalid\x20signature.\x20Exiting.'),process['exit'](0x1);return;}}catch(_0x508fda){console[_0x2d2e15(0x160)](_0x2d2e15(0x182)),process['exit'](0x1);return;}const _0x3a5e2a=path[_0x2d2e15(0x110)](__dirname,_0x2d2e15(0x18d));for(const [_0x5dca0d,_0x52cc45]of Object['entries'](_0x2bce3b['files'])){const _0x5b4674=path['join'](_0x3a5e2a,_0x5dca0d);if(!fs[_0x2d2e15(0x154)](_0x5b4674)){console[_0x2d2e15(0x160)](_0x2d2e15(0x15d)+_0x5dca0d+_0x2d2e15(0x15e)),process[_0x2d2e15(0x10a)](0x1);return;}try{const _0x5d1328=fs[_0x2d2e15(0x140)](_0x5b4674),_0xbb18c7=_0x24b6f9[_0x2d2e15(0x101)]('sha256')['update'](_0x5d1328)[_0x2d2e15(0x183)](_0x2d2e15(0x17d));if(_0xbb18c7!==_0x52cc45){console['error'](_0x2d2e15(0x15d)+_0x5dca0d+'\x20modified.\x20Exiting.'),process['exit'](0x1);return;}}catch(_0x265c43){console['error'](_0x2d2e15(0x15d)+_0x5dca0d+'\x20modified.\x20Exiting.'),process['exit'](0x1);return;}}}const _0x399213=process.env.MCP_SKIP_LICENSE_CHECK==='1';if(!_0x399213){if(!this[_0x2d2e15(0x163)]){const {getFingerprint:_0x4bf776}=require(_0x2d2e15(0xf6));this['deviceId']=_0x4bf776();}const _0x23d98a=verifyLicense(this[_0x2d2e15(0x126)],this['deviceId'],this[_0x2d2e15(0xf2)]);if(!_0x23d98a[_0x2d2e15(0x188)]){if(_0x23d98a[_0x2d2e15(0x185)]==='License\x20expired'){const _0x19bd4f=_0x23d98a[_0x2d2e15(0x128)]||{},_0x382989=_0x19bd4f[_0x2d2e15(0x109)]?new Date(_0x19bd4f[_0x2d2e15(0x109)])['toISOString']()['split']('T')[0x0]:_0x2d2e15(0x180);console['error'](_0x2d2e15(0x13f)+_0x382989+_0x2d2e15(0x15f));}else console[_0x2d2e15(0x160)]('[MCP\x20Agent]\x20License\x20key\x20verification\x20failed:\x20'+_0x23d98a[_0x2d2e15(0x185)]+_0x2d2e15(0x132));process[_0x2d2e15(0x10a)](0x1);return;}console[_0x2d2e15(0x160)](_0x2d2e15(0x184)+_0x23d98a['payload'][_0x2d2e15(0x129)]),await this[_0x2d2e15(0x115)](),this[_0x2d2e15(0xf5)]=setInterval(()=>{const _0x19ad07=_0x2d2e15;this['performHeartbeat']()[_0x19ad07(0x14f)](_0x4b7ffb=>{const _0x2ea4f6=_0x19ad07;console['error']('[MCP\x20Agent]\x20Periodic\x20heartbeat\x20error:',_0x4b7ffb[_0x2ea4f6(0x151)]);});},0x18*0x3c*0x3c*0x3e8);}this[_0x2d2e15(0x150)]=spawnBackends(this[_0x2d2e15(0x18a)]),this[_0x2d2e15(0x123)]=!![];for(const _0x2c9295 of Object['values'](this[_0x2d2e15(0x150)])){_0x2c9295[_0x2d2e15(0x177)]();}this['stdinListener']=_0x2794b0=>{const _0x1ea4ca=_0x2d2e15;this[_0x1ea4ca(0xf3)](_0x2794b0[_0x1ea4ca(0x12c)]());},process['stdin']['on'](_0x2d2e15(0x100),this[_0x2d2e15(0x13e)]);}[_0x2e75e2(0xf3)](_0x5df324){const _0x44e3aa=_0x2e75e2;this[_0x44e3aa(0x10f)]+=_0x5df324;const _0x1366ed=this[_0x44e3aa(0x10f)][_0x44e3aa(0x166)]('\x0a');this['clientBuffer']=_0x1366ed['pop']();for(const _0x202cef of _0x1366ed){const _0x3f7c78=_0x202cef[_0x44e3aa(0x144)]();if(!_0x3f7c78)continue;try{const _0x3322f2=JSON[_0x44e3aa(0x111)](_0x3f7c78);this[_0x44e3aa(0x17a)](_0x3322f2);}catch(_0x5eace7){console[_0x44e3aa(0x160)](_0x44e3aa(0x133),_0x202cef,_0x5eace7[_0x44e3aa(0x151)]);}}}async[_0x2e75e2(0x17a)](_0xbfea2e){const _0x273220=_0x2e75e2,{id:_0x193f8e,method:_0x21bbb6,params:_0x21df62}=_0xbfea2e;if(!_0x21bbb6)return;if(_0x21bbb6===_0x273220(0xe7)){Promise[_0x273220(0x116)](Object[_0x273220(0xec)](this['backends'])[_0x273220(0x157)](_0x2b1185=>_0x2b1185[_0x273220(0xfa)](_0x273220(0xe7),_0x21df62)['catch'](_0x563e8d=>{const _0xd80c52=_0x273220;console[_0xd80c52(0x160)](_0xd80c52(0x142)+(_0x2b1185[_0xd80c52(0xee)]||_0x2b1185[_0xd80c52(0x167)])+':',_0x563e8d[_0xd80c52(0x151)]);})));const _0xf558a5={};_0xf558a5[_0x273220(0x187)]=![];const _0x145e48={};_0x145e48[_0x273220(0x12d)]=_0xf558a5;const _0x1bb8e1={};_0x1bb8e1['name']=_0x273220(0x11f),_0x1bb8e1[_0x273220(0x161)]=_0x273220(0x18b);const _0x48e2cc={};_0x48e2cc[_0x273220(0xf4)]=_0x21df62[_0x273220(0xf4)]||_0x273220(0xed),_0x48e2cc[_0x273220(0x168)]=_0x145e48,_0x48e2cc[_0x273220(0x136)]=_0x1bb8e1;const _0xa66222={};_0xa66222[_0x273220(0x14d)]=_0x273220(0x181),_0xa66222['id']=_0x193f8e,_0xa66222[_0x273220(0x189)]=_0x48e2cc;const _0x50e3b3=_0xa66222;this[_0x273220(0x16b)](_0x50e3b3);return;}if(_0x21bbb6===_0x273220(0x170)){try{const _0x1b26b8=Object[_0x273220(0x17b)](this[_0x273220(0x150)])[_0x273220(0x157)](async([_0x9db443,_0x5ea47f])=>{const _0x55c708=_0x273220;try{const _0x1df130=await _0x5ea47f['sendRequest'](_0x55c708(0x170)),_0x461499=_0x1df130&&_0x1df130[_0x55c708(0x189)]&&_0x1df130[_0x55c708(0x189)]['tools']||[];return translateToolList(_0x461499,_0x9db443);}catch(_0x24b559){return console['error'](_0x55c708(0x173)+_0x9db443+':',_0x24b559['message']),[];}}),_0x481555=await Promise['all'](_0x1b26b8),_0x30dd51=_0x481555[_0x273220(0x169)](),_0x1d4c85={};_0x1d4c85['tools']=_0x30dd51;const _0x3705c8={};_0x3705c8[_0x273220(0x14d)]=_0x273220(0x181),_0x3705c8['id']=_0x193f8e,_0x3705c8[_0x273220(0x189)]=_0x1d4c85;const _0x47c863=_0x3705c8;this[_0x273220(0x16b)](_0x47c863);}catch(_0x5eab36){this[_0x273220(0x179)](_0x193f8e,-0x7f5b,_0x273220(0x18c)+_0x5eab36[_0x273220(0x151)]);}return;}if(_0x21bbb6===_0x273220(0x114)){const _0x672fef=_0x21df62[_0x273220(0x167)],_0xffb70e=mapExposedToOriginal(_0x672fef);if(!_0xffb70e)return this[_0x273220(0x179)](_0x193f8e,-0x7f59,_0x273220(0x14b)+_0x672fef);try{const _0x421885=this[_0x273220(0x150)][_0xffb70e['backend']];if(!_0x421885)return this[_0x273220(0x179)](_0x193f8e,-0x7f5b,_0x273220(0x145)+_0xffb70e[_0x273220(0x134)]+_0x273220(0xea));const _0x578d22={..._0x21df62};_0x578d22[_0x273220(0x167)]=_0xffb70e[_0x273220(0x17e)];const _0xc00946={..._0xbfea2e};_0xc00946[_0x273220(0x104)]=_0x578d22;const _0x2e9ddf=_0xc00946,_0x4f5c5a=await _0x421885[_0x273220(0xeb)](_0x2e9ddf);this[_0x273220(0x16b)](_0x4f5c5a);}catch(_0x47eaad){this[_0x273220(0x179)](_0x193f8e,-0x7f5b,_0x273220(0x10b)+_0x47eaad[_0x273220(0x151)]);}return;}for(const _0x47ef91 of Object['values'](this[_0x273220(0x150)])){_0x47ef91[_0x273220(0xfb)]&&_0x47ef91[_0x273220(0xfb)][_0x273220(0x186)][_0x273220(0x121)](JSON[_0x273220(0x117)](_0xbfea2e)+'\x0a');}}[_0x2e75e2(0x16b)](_0x222d31){const _0x23daea=_0x2e75e2;this[_0x23daea(0x107)]['write'](JSON[_0x23daea(0x117)](_0x222d31)+'\x0a');}[_0x2e75e2(0x179)](_0x346bfe,_0x12cefe,_0x321aea){const _0xe8ccb2=_0x2e75e2,_0x29e802={};_0x29e802[_0xe8ccb2(0xe4)]=_0x12cefe,_0x29e802[_0xe8ccb2(0x151)]=_0x321aea;const _0x5c6f2e={};_0x5c6f2e['jsonrpc']=_0xe8ccb2(0x181),_0x5c6f2e['id']=_0x346bfe,_0x5c6f2e[_0xe8ccb2(0x160)]=_0x29e802;const _0x2909f4=_0x5c6f2e;this[_0xe8ccb2(0x16b)](_0x2909f4);}['stop'](){const _0x3d4e1d=_0x2e75e2;this[_0x3d4e1d(0x123)]=![];this[_0x3d4e1d(0xf5)]&&(clearInterval(this[_0x3d4e1d(0xf5)]),this[_0x3d4e1d(0xf5)]=null);this[_0x3d4e1d(0x13e)]&&(process[_0x3d4e1d(0x186)]['removeListener'](_0x3d4e1d(0x100),this['stdinListener']),this['stdinListener']=null,process[_0x3d4e1d(0x186)][_0x3d4e1d(0x155)]());if(this['backends'])for(const _0x36d061 of Object[_0x3d4e1d(0xec)](this[_0x3d4e1d(0x150)])){_0x36d061[_0x3d4e1d(0x138)]();}}}const _0x21caea={};_0x21caea[_0x2e75e2(0x13d)]=ProxyServer,module[_0x2e75e2(0xe5)]=_0x21caea;if(require[_0x2e75e2(0x18e)]===module){const server=new ProxyServer();server[_0x2e75e2(0x177)]()['catch'](_0x28328a=>{const _0x50c89c=_0x2e75e2;console[_0x50c89c(0x160)]('Failed\x20to\x20start\x20ProxyServer:',_0x28328a[_0x50c89c(0x151)]),process['exit'](0x1);});}
|
package/src/templates/AGENTS.md
CHANGED
|
@@ -34,6 +34,28 @@ Skills for Flutter architecture, testing, layout, routing, localization, and ser
|
|
|
34
34
|
|
|
35
35
|
Skills: `flutter-add-integration-test`, `flutter-add-widget-preview`, `flutter-add-widget-test`, `flutter-apply-architecture-best-practices`, `flutter-build-responsive-layout`, `flutter-fix-layout-issues`, `flutter-implement-json-serialization`, `flutter-setup-declarative-routing`, `flutter-setup-localization`, `flutter-use-http-package`.
|
|
36
36
|
|
|
37
|
+
### Productivity & development utilities
|
|
38
|
+
|
|
39
|
+
Various utility skills for local environment setup, stress testing, refactoring, and code generation.
|
|
40
|
+
|
|
41
|
+
- `stress-test-plan` β interview the user relentlessly to stress-test their plan or design.
|
|
42
|
+
- `skill-generator` β create new agent skills with proper directory structures.
|
|
43
|
+
- `git-safety-guardrails` β set up Claude Code hooks to block dangerous git commands.
|
|
44
|
+
- `git-hook-setup` β set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests.
|
|
45
|
+
- `test-type-migration` β migrate test files from type assertions to clean TypeScript types.
|
|
46
|
+
- `exercise-scaffold` β create exercise directory structures with problems, solutions, and tests.
|
|
47
|
+
- `interactive-teaching` β teach the user a new skill or concept statefully within this workspace.
|
|
48
|
+
- `writing-flow` β shape an article as a journey of narrative beats.
|
|
49
|
+
- `raw-idea-collector` β collect ideas and fragments for a future article.
|
|
50
|
+
- `draft-shaper` β shape a rough draft into a publishable article.
|
|
51
|
+
- `workflow-navigator` β ask which skill or flow fits your situation.
|
|
52
|
+
- `project-config-wizard` β configure the issue tracker, triage labels, and domain doc layout.
|
|
53
|
+
- `skill-writing-guide` β guidelines and principles for writing great custom agent skills.
|
|
54
|
+
- `architecture-rules` β principles and boundaries for codebase modular design.
|
|
55
|
+
- `solution-decision-map` β capture key design decisions and manage fog of war.
|
|
56
|
+
- `task-implementation` β implement features cleanly using pre-agreed seams.
|
|
57
|
+
- `git-conflict-resolver` β resolve git conflicts statefully and systematically.
|
|
58
|
+
|
|
37
59
|
### MCP tools
|
|
38
60
|
|
|
39
61
|
Tool selection rules, index policies, memory conventions, and auto-skill activation. See `docs/agents/mcp-tools.md`.
|
package/src/templates/CLAUDE.md
CHANGED
|
@@ -49,10 +49,23 @@ Tool selection rules, index policies, memory conventions, and auto-skill activat
|
|
|
49
49
|
|
|
50
50
|
At the start of every session:
|
|
51
51
|
1. Read `.agents/ARCHITECTURE.md` to understand Agents, Skills, and Scripts.
|
|
52
|
-
2. Read `.agents/memory/MEMORY.md` to load persistent project conventions.
|
|
52
|
+
2. Read `.agents/memory/MEMORY.md` to load persistent project conventions, user preferences, and tech decisions.
|
|
53
53
|
3. Read `docs/agents/mcp-tools.md` to load MCP tool selection rules & memory conventions.
|
|
54
54
|
4. Call `read_knowledge` to load dynamic knowledge graph from memory.
|
|
55
55
|
|
|
56
|
+
### π οΈ DEVELOPER WORKFLOW PROTOCOL (MANDATORY 4-PHASE WORKFLOW)
|
|
57
|
+
|
|
58
|
+
Before writing any non-trivial code or implementing features, you MUST follow the closed-loop 4-Phase Agentic Workflow:
|
|
59
|
+
|
|
60
|
+
1. **Phase 01: Analysis**: Analyze requirements and specs. Run `/brainstorm`, `/grill-with-docs` (which routes to `spec-clarification`), or `/plan` first to clarify specs, identify edge cases, ask Socratic questions, and challenge requirements. **Once specs are clarified, you MUST run `/to-prd` (which routes to `prd-gen`) to extract and compile the Product Requirements Document (PRD) from context.**
|
|
61
|
+
2. **Phase 02: Planning**: Perform a task breakdown. Run `/to-issues` (which routes to `task-breakdown`) based on the generated PRD to slice the work into tracer-bullet tasks and automatically create the `{task-slug}.md` file to track execution progress.
|
|
62
|
+
3. **Phase 03: Solutioning**: Design the architecture and document decisions. Synchronize terms/definitions in the project glossary (`CONTEXT.md`) and write ADRs in `docs/adr/`.
|
|
63
|
+
- *CRITICAL CONSTRAINT*: **Strictly NO CODE logic** must be written during this phase (purely design and specification alignment).
|
|
64
|
+
- *MEMORY PERSISTENCE*: Whenever design or architectural decisions are finalized (across Dev, BA, QC, or PM), you MUST call `/remember` to persist these choices in `.agents/memory/MEMORY.md` and related topic files.
|
|
65
|
+
4. **Phase 04: Verification**: Implement test-first code and perform security/quality audits.
|
|
66
|
+
- Run `/tdd` (which routes to `tdd-loop`) to write tests and implement minimal code to pass under a RED-GREEN-REFACTOR cycle.
|
|
67
|
+
- Run `/verify` to execute quality and security scans (security scan, unit tests, linting, type-safety checks) before committing.
|
|
68
|
+
|
|
56
69
|
---
|
|
57
70
|
|
|
58
71
|
## Auto-Trigger Skills (MANDATORY)
|
|
@@ -78,6 +91,21 @@ At the start of every session:
|
|
|
78
91
|
| `mobile-rules` | Any mobile UI implementation: Flutter widget, screen, touch interaction | Load SKILL.md β Apply platform conventions, touch patterns |
|
|
79
92
|
| `flutter-*` | Flutter-specific tasks: layout fix, routing, serialization, testing | Auto-select matching flutter skill based on task type |
|
|
80
93
|
|
|
94
|
+
### Productivity & Utility Skills β auto-trigger based on task context:
|
|
95
|
+
|
|
96
|
+
| Skill | Trigger Conditions | Agent Action |
|
|
97
|
+
|---|---|---|
|
|
98
|
+
| `stress-test-plan` | "grill me", "challenge my plan", stress testing proposed plan | Load SKILL.md β Start interactive plan stress-testing session |
|
|
99
|
+
| `skill-generator` | "write skill", "create skill", building a new custom agent skill | Load SKILL.md β Generate new skill stub/directory |
|
|
100
|
+
| `git-safety-guardrails` | "git guardrails", "block dangerous git", protect git hooks | Load SKILL.md β Deploy Claude Code hooks to block push/hard-reset |
|
|
101
|
+
| `git-hook-setup` | "setup pre-commit", "configure husky", install pre-commit hooks | Load SKILL.md β Install Husky, lint-staged, Prettier hooks |
|
|
102
|
+
| `test-type-migration` | "migrate as in tests", "replace as assertions", shoehorn refactoring | Load SKILL.md β Refactor tests to remove unsafe type assertions |
|
|
103
|
+
| `exercise-scaffold` | "scaffold exercises", "exercise stubs", coding course setup | Load SKILL.md β Create problems, solutions, and tests stubs |
|
|
104
|
+
| `interactive-teaching` | "teach me", "tutorial", "learn Y", stateful workspace learning | Load SKILL.md β Create mission, lessons, and learning records |
|
|
105
|
+
| `writing-flow` | "writing beats", "narrative journey", write article step-by-step | Load SKILL.md β Guide user through choice of narrative beats |
|
|
106
|
+
| `raw-idea-collector` | "collect ideas", "writing fragments", ideate outline | Load SKILL.md β Collect heterogeneous claims, vignettes, and thoughts |
|
|
107
|
+
| `draft-shaper` | "shape draft", "edit notes", clean draft to publishable quality | Load SKILL.md β Iterate paragraph by paragraph to edit draft |
|
|
108
|
+
|
|
81
109
|
**Failure Conditions:**
|
|
82
110
|
- β Writing UI code without loading design skill = **SLOP RISK**
|
|
83
111
|
- β Creating mobile screen without `mobile-rules` = **PLATFORM VIOLATION**
|
|
@@ -105,4 +133,4 @@ Every user request must pass through the Socratic Gate before ANY implementation
|
|
|
105
133
|
|
|
106
134
|
### Quick Reference
|
|
107
135
|
- **Masters**: `orchestrator`, `project-planner`, `security-auditor`, `backend-specialist`, `frontend-specialist`, `mobile-developer`, `debugger`
|
|
108
|
-
- **Key Skills**: `clean-code`, `brainstorming`, `ui-style-rules`, `mobile-rules`, `web-mockup-gen`, `mobile-mockup-gen`, `bug-diagnostics`, `tdd-loop`, `spec-clarification`, `prd-gen`, `task-breakdown`, `prototype`
|
|
136
|
+
- **Key Skills**: `clean-code`, `brainstorming`, `ui-style-rules`, `mobile-rules`, `web-mockup-gen`, `mobile-mockup-gen`, `bug-diagnostics`, `tdd-loop`, `spec-clarification`, `prd-gen`, `task-breakdown`, `prototype`, `stress-test-plan`, `skill-generator`, `git-safety-guardrails`, `git-hook-setup`, `test-type-migration`, `exercise-scaffold`, `interactive-teaching`, `writing-flow`, `raw-idea-collector`, `draft-shaper`, `project-config-wizard`, `skill-writing-guide`, `architecture-rules`, `solution-decision-map`, `task-implementation`, `git-conflict-resolver`, `workflow-navigator`, `terse-communication`, `session-handoff`
|
package/src/templates/GEMINI.md
CHANGED
|
@@ -34,10 +34,23 @@ Single-context layout β one `CONTEXT.md` + `docs/adr/` at the repo root. See `
|
|
|
34
34
|
|
|
35
35
|
### πΊοΈ System Map & Memory Read (MANDATORY at session start)
|
|
36
36
|
1. Read `.agents/ARCHITECTURE.md` to understand Agents, Skills, and Scripts.
|
|
37
|
-
2. Read `.agents/memory/MEMORY.md` to load persistent project conventions.
|
|
37
|
+
2. Read `.agents/memory/MEMORY.md` to load persistent project conventions, user preferences, and tech decisions.
|
|
38
38
|
3. Read `docs/agents/mcp-tools.md` to load MCP tool selection rules & memory conventions.
|
|
39
39
|
4. Call `read_knowledge` to load dynamic knowledge graph from memory.
|
|
40
40
|
|
|
41
|
+
### π οΈ DEVELOPER WORKFLOW PROTOCOL (MANDATORY 4-PHASE WORKFLOW)
|
|
42
|
+
|
|
43
|
+
Before writing any non-trivial code or implementing features, you MUST follow the closed-loop 4-Phase Agentic Workflow:
|
|
44
|
+
|
|
45
|
+
1. **Phase 01: Analysis**: Analyze requirements and specs. Run `/brainstorm`, `/grill-with-docs` (which routes to `spec-clarification`), or `/plan` first to clarify specs, identify edge cases, ask Socratic questions, and challenge requirements. **Once specs are clarified, you MUST run `/to-prd` (which routes to `prd-gen`) to extract and compile the Product Requirements Document (PRD) from context.**
|
|
46
|
+
2. **Phase 02: Planning**: Perform a task breakdown. Run `/to-issues` (which routes to `task-breakdown`) based on the generated PRD to slice the work into tracer-bullet tasks and automatically create the `{task-slug}.md` file to track execution progress.
|
|
47
|
+
3. **Phase 03: Solutioning**: Design the architecture and document decisions. Synchronize terms/definitions in the project glossary (`CONTEXT.md`) and write ADRs in `docs/adr/`.
|
|
48
|
+
- *CRITICAL CONSTRAINT*: **Strictly NO CODE logic** must be written during this phase (purely design and specification alignment).
|
|
49
|
+
- *MEMORY PERSISTENCE*: Whenever design or architectural decisions are finalized (across Dev, BA, QC, or PM), you MUST call `/remember` to persist these choices in `.agents/memory/MEMORY.md` and related topic files.
|
|
50
|
+
4. **Phase 04: Verification**: Implement test-first code and perform security/quality audits.
|
|
51
|
+
- Run `/tdd` (which routes to `tdd-loop`) to write tests and implement minimal code to pass under a RED-GREEN-REFACTOR cycle.
|
|
52
|
+
- Run `/verify` to execute quality and security scans (security scan, unit tests, linting, type-safety checks) before committing.
|
|
53
|
+
|
|
41
54
|
---
|
|
42
55
|
|
|
43
56
|
## π€ INTELLIGENT AGENT ROUTING
|
|
@@ -77,6 +90,21 @@ UI/UX Design Skills β tα»± trigger khi touch UI/design:
|
|
|
77
90
|
| `mobile-rules` | Any mobile UI implementation: Flutter widget, screen, touch interaction | Load SKILL.md β Apply platform conventions, touch patterns, performance |
|
|
78
91
|
| `flutter-*` | Flutter-specific tasks: layout fix, routing, serialization, testing, etc. | Auto-select matching flutter skill based on task type |
|
|
79
92
|
|
|
93
|
+
Productivity & Utility Skills β tα»± trigger theo task context:
|
|
94
|
+
|
|
95
|
+
| Skill | Trigger Conditions | Agent Action |
|
|
96
|
+
|---|---|---|
|
|
97
|
+
| `stress-test-plan` | "grill me", "challenge my plan", stress testing proposed plan | Load SKILL.md β Start interactive plan stress-testing session |
|
|
98
|
+
| `skill-generator` | "write skill", "create skill", building a new custom agent skill | Load SKILL.md β Generate new skill stub/directory |
|
|
99
|
+
| `git-safety-guardrails` | "git guardrails", "block dangerous git", protect git hooks | Load SKILL.md β Deploy Claude Code hooks to block push/hard-reset |
|
|
100
|
+
| `git-hook-setup` | "setup pre-commit", "configure husky", install pre-commit hooks | Load SKILL.md β Install Husky, lint-staged, Prettier hooks |
|
|
101
|
+
| `test-type-migration` | "migrate as in tests", "replace as assertions", shoehorn refactoring | Load SKILL.md β Refactor tests to remove unsafe type assertions |
|
|
102
|
+
| `exercise-scaffold` | "scaffold exercises", "exercise stubs", coding course setup | Load SKILL.md β Create problems, solutions, and tests stubs |
|
|
103
|
+
| `interactive-teaching` | "teach me", "tutorial", "learn Y", stateful workspace learning | Load SKILL.md β Create mission, lessons, and learning records |
|
|
104
|
+
| `writing-flow` | "writing beats", "narrative journey", write article step-by-step | Load SKILL.md β Guide user through choice of narrative beats |
|
|
105
|
+
| `raw-idea-collector` | "collect ideas", "writing fragments", ideate outline | Load SKILL.md β Collect heterogeneous claims, vignettes, and thoughts |
|
|
106
|
+
| `draft-shaper` | "shape draft", "edit notes", clean draft to publishable quality | Load SKILL.md β Iterate paragraph by paragraph to edit draft |
|
|
107
|
+
|
|
80
108
|
### UI/UX Auto-Detection Rules
|
|
81
109
|
- **mobile-flutter preset**: Load `mobile-rules` + `ui-style-rules` (adapted) + `mobile-mockup-gen` + matching `flutter-*`
|
|
82
110
|
- **fe-react / fe-angular / fe-vue presets**: Load `ui-style-rules` + `web-mockup-gen`
|
|
@@ -113,4 +141,4 @@ Every user request must pass through the Socratic Gate before ANY tool use or im
|
|
|
113
141
|
|
|
114
142
|
### πΊοΈ Quick Reference
|
|
115
143
|
- **Masters**: `orchestrator`, `project-planner`, `security-auditor`, `backend-specialist`, `frontend-specialist`, `mobile-developer`, `aso-specialist`, `debugger`
|
|
116
|
-
- **Key Skills**: `clean-code`, `brainstorming`, `ui-style-rules`, `mobile-rules`, `web-mockup-gen`, `mobile-mockup-gen`, `bug-diagnostics`, `tdd-loop`, `spec-clarification`, `prd-gen`, `task-breakdown`, `prototype`, `aso-router`
|
|
144
|
+
- **Key Skills**: `clean-code`, `brainstorming`, `ui-style-rules`, `mobile-rules`, `web-mockup-gen`, `mobile-mockup-gen`, `bug-diagnostics`, `tdd-loop`, `spec-clarification`, `prd-gen`, `task-breakdown`, `prototype`, `aso-router`, `stress-test-plan`, `skill-generator`, `git-safety-guardrails`, `git-hook-setup`, `test-type-migration`, `exercise-scaffold`, `interactive-teaching`, `writing-flow`, `raw-idea-collector`, `draft-shaper`, `project-config-wizard`, `skill-writing-guide`, `architecture-rules`, `solution-decision-map`, `task-implementation`, `git-conflict-resolver`, `workflow-navigator`, `terse-communication`, `session-handoff`
|
|
@@ -25,10 +25,23 @@ Single-context layout β one `CONTEXT.md` + `docs/adr/` at the repo root. See `
|
|
|
25
25
|
## Session Start Protocol (MANDATORY)
|
|
26
26
|
|
|
27
27
|
1. Read `.agents/ARCHITECTURE.md` to understand Agents, Skills, and Scripts.
|
|
28
|
-
2. Read `.agents/memory/MEMORY.md` to load persistent project conventions.
|
|
28
|
+
2. Read `.agents/memory/MEMORY.md` to load persistent project conventions, user preferences, and tech decisions.
|
|
29
29
|
3. Read `docs/agents/mcp-tools.md` to load MCP tool selection rules & memory conventions.
|
|
30
30
|
4. Call `read_knowledge` to load dynamic knowledge graph from memory.
|
|
31
31
|
|
|
32
|
+
### π οΈ DEVELOPER WORKFLOW PROTOCOL (MANDATORY 4-PHASE WORKFLOW)
|
|
33
|
+
|
|
34
|
+
Before writing any non-trivial code or implementing features, you MUST follow the closed-loop 4-Phase Agentic Workflow:
|
|
35
|
+
|
|
36
|
+
1. **Phase 01: Analysis**: Analyze requirements and specs. Run `/brainstorm`, `/grill-with-docs` (which routes to `spec-clarification`), or `/plan` first to clarify specs, identify edge cases, ask Socratic questions, and challenge requirements. **Once specs are clarified, you MUST run `/to-prd` (which routes to `prd-gen`) to extract and compile the Product Requirements Document (PRD) from context.**
|
|
37
|
+
2. **Phase 02: Planning**: Perform a task breakdown. Run `/to-issues` (which routes to `task-breakdown`) based on the generated PRD to slice the work into tracer-bullet tasks and automatically create the `{task-slug}.md` file to track execution progress.
|
|
38
|
+
3. **Phase 03: Solutioning**: Design the architecture and document decisions. Synchronize terms/definitions in the project glossary (`CONTEXT.md`) and write ADRs in `docs/adr/`.
|
|
39
|
+
- *CRITICAL CONSTRAINT*: **Strictly NO CODE logic** must be written during this phase (purely design and specification alignment).
|
|
40
|
+
- *MEMORY PERSISTENCE*: Whenever design or architectural decisions are finalized (across Dev, BA, QC, or PM), you MUST call `/remember` to persist these choices in `.agents/memory/MEMORY.md` and related topic files.
|
|
41
|
+
4. **Phase 04: Verification**: Implement test-first code and perform security/quality audits.
|
|
42
|
+
- Run `/tdd` (which routes to `tdd-loop`) to write tests and implement minimal code to pass under a RED-GREEN-REFACTOR cycle.
|
|
43
|
+
- Run `/verify` to execute quality and security scans (security scan, unit tests, linting, type-safety checks) before committing.
|
|
44
|
+
|
|
32
45
|
---
|
|
33
46
|
|
|
34
47
|
## MCP Tool Selection
|
|
@@ -95,4 +108,4 @@ Every user request must pass through the Socratic Gate before ANY implementation
|
|
|
95
108
|
|
|
96
109
|
### Quick Reference
|
|
97
110
|
- **Masters**: `orchestrator`, `project-planner`, `security-auditor`, `backend-specialist`, `frontend-specialist`, `mobile-developer`, `debugger`
|
|
98
|
-
- **Key Skills**: `clean-code`, `brainstorming`, `ui-style-rules`, `mobile-rules`, `web-mockup-gen`, `mobile-mockup-gen`, `bug-diagnostics`, `tdd-loop`, `spec-clarification`, `prd-gen`, `task-breakdown`, `prototype`
|
|
111
|
+
- **Key Skills**: `clean-code`, `brainstorming`, `ui-style-rules`, `mobile-rules`, `web-mockup-gen`, `mobile-mockup-gen`, `bug-diagnostics`, `tdd-loop`, `spec-clarification`, `prd-gen`, `task-breakdown`, `prototype`, `stress-test-plan`, `skill-generator`, `git-safety-guardrails`, `git-hook-setup`, `test-type-migration`, `exercise-scaffold`, `interactive-teaching`, `writing-flow`, `raw-idea-collector`, `draft-shaper`, `project-config-wizard`, `skill-writing-guide`, `architecture-rules`, `solution-decision-map`, `task-implementation`, `git-conflict-resolver`, `workflow-navigator`, `terse-communication`, `session-handoff`
|
|
@@ -31,10 +31,23 @@ Single-context layout β one `CONTEXT.md` + `docs/adr/` at the repo root. See `
|
|
|
31
31
|
## πΊοΈ Session Start Protocol (MANDATORY)
|
|
32
32
|
|
|
33
33
|
1. Read `.agents/ARCHITECTURE.md` to understand Agents, Skills, and Scripts.
|
|
34
|
-
2. Read `.agents/memory/MEMORY.md` to load persistent project conventions.
|
|
34
|
+
2. Read `.agents/memory/MEMORY.md` to load persistent project conventions, user preferences, and tech decisions.
|
|
35
35
|
3. Read `docs/agents/mcp-tools.md` to load MCP tool selection rules & memory conventions.
|
|
36
36
|
4. Call `read_knowledge` to load dynamic knowledge graph from memory.
|
|
37
37
|
|
|
38
|
+
### π οΈ DEVELOPER WORKFLOW PROTOCOL (MANDATORY 4-PHASE WORKFLOW)
|
|
39
|
+
|
|
40
|
+
Before writing any non-trivial code or implementing features, you MUST follow the closed-loop 4-Phase Agentic Workflow:
|
|
41
|
+
|
|
42
|
+
1. **Phase 01: Analysis**: Analyze requirements and specs. Run `/brainstorm`, `/grill-with-docs` (which routes to `spec-clarification`), or `/plan` first to clarify specs, identify edge cases, ask Socratic questions, and challenge requirements. **Once specs are clarified, you MUST run `/to-prd` (which routes to `prd-gen`) to extract and compile the Product Requirements Document (PRD) from context.**
|
|
43
|
+
2. **Phase 02: Planning**: Perform a task breakdown. Run `/to-issues` (which routes to `task-breakdown`) based on the generated PRD to slice the work into tracer-bullet tasks and automatically create the `{task-slug}.md` file to track execution progress.
|
|
44
|
+
3. **Phase 03: Solutioning**: Design the architecture and document decisions. Synchronize terms/definitions in the project glossary (`CONTEXT.md`) and write ADRs in `docs/adr/`.
|
|
45
|
+
- *CRITICAL CONSTRAINT*: **Strictly NO CODE logic** must be written during this phase (purely design and specification alignment).
|
|
46
|
+
- *MEMORY PERSISTENCE*: Whenever design or architectural decisions are finalized (across Dev, BA, QC, or PM), you MUST call `/remember` to persist these choices in `.agents/memory/MEMORY.md` and related topic files.
|
|
47
|
+
4. **Phase 04: Verification**: Implement test-first code and perform security/quality audits.
|
|
48
|
+
- Run `/tdd` (which routes to `tdd-loop`) to write tests and implement minimal code to pass under a RED-GREEN-REFACTOR cycle.
|
|
49
|
+
- Run `/verify` to execute quality and security scans (security scan, unit tests, linting, type-safety checks) before committing.
|
|
50
|
+
|
|
38
51
|
---
|
|
39
52
|
|
|
40
53
|
## π MCP Tool Selection
|
|
@@ -105,4 +118,4 @@ Every user request must pass through the Socratic Gate before ANY implementation
|
|
|
105
118
|
|
|
106
119
|
### Quick Reference
|
|
107
120
|
- **Masters**: `orchestrator`, `project-planner`, `security-auditor`, `backend-specialist`, `frontend-specialist`, `mobile-developer`, `debugger`
|
|
108
|
-
- **Key Skills**: `clean-code`, `brainstorming`, `ui-style-rules`, `mobile-rules`, `web-mockup-gen`, `mobile-mockup-gen`, `bug-diagnostics`, `tdd-loop`, `spec-clarification`, `prd-gen`, `task-breakdown`, `prototype`
|
|
121
|
+
- **Key Skills**: `clean-code`, `brainstorming`, `ui-style-rules`, `mobile-rules`, `web-mockup-gen`, `mobile-mockup-gen`, `bug-diagnostics`, `tdd-loop`, `spec-clarification`, `prd-gen`, `task-breakdown`, `prototype`, `stress-test-plan`, `skill-generator`, `git-safety-guardrails`, `git-hook-setup`, `test-type-migration`, `exercise-scaffold`, `interactive-teaching`, `writing-flow`, `raw-idea-collector`, `draft-shaper`, `project-config-wizard`, `skill-writing-guide`, `architecture-rules`, `solution-decision-map`, `task-implementation`, `git-conflict-resolver`, `workflow-navigator`, `terse-communication`, `session-handoff`
|
|
@@ -25,10 +25,23 @@ Single-context layout β one `CONTEXT.md` + `docs/adr/` at the repo root. See `
|
|
|
25
25
|
## Session Start Protocol (MANDATORY)
|
|
26
26
|
|
|
27
27
|
1. Read `.agents/ARCHITECTURE.md` to understand Agents, Skills, and Scripts.
|
|
28
|
-
2. Read `.agents/memory/MEMORY.md` to load persistent project conventions.
|
|
28
|
+
2. Read `.agents/memory/MEMORY.md` to load persistent project conventions, user preferences, and tech decisions.
|
|
29
29
|
3. Read `docs/agents/mcp-tools.md` to load MCP tool selection rules & memory conventions.
|
|
30
30
|
4. Call `read_knowledge` to load dynamic knowledge graph from memory.
|
|
31
31
|
|
|
32
|
+
### π οΈ DEVELOPER WORKFLOW PROTOCOL (MANDATORY 4-PHASE WORKFLOW)
|
|
33
|
+
|
|
34
|
+
Before writing any non-trivial code or implementing features, you MUST follow the closed-loop 4-Phase Agentic Workflow:
|
|
35
|
+
|
|
36
|
+
1. **Phase 01: Analysis**: Analyze requirements and specs. Run `/brainstorm`, `/grill-with-docs` (which routes to `spec-clarification`), or `/plan` first to clarify specs, identify edge cases, ask Socratic questions, and challenge requirements. **Once specs are clarified, you MUST run `/to-prd` (which routes to `prd-gen`) to extract and compile the Product Requirements Document (PRD) from context.**
|
|
37
|
+
2. **Phase 02: Planning**: Perform a task breakdown. Run `/to-issues` (which routes to `task-breakdown`) based on the generated PRD to slice the work into tracer-bullet tasks and automatically create the `{task-slug}.md` file to track execution progress.
|
|
38
|
+
3. **Phase 03: Solutioning**: Design the architecture and document decisions. Synchronize terms/definitions in the project glossary (`CONTEXT.md`) and write ADRs in `docs/adr/`.
|
|
39
|
+
- *CRITICAL CONSTRAINT*: **Strictly NO CODE logic** must be written during this phase (purely design and specification alignment).
|
|
40
|
+
- *MEMORY PERSISTENCE*: Whenever design or architectural decisions are finalized (across Dev, BA, QC, or PM), you MUST call `/remember` to persist these choices in `.agents/memory/MEMORY.md` and related topic files.
|
|
41
|
+
4. **Phase 04: Verification**: Implement test-first code and perform security/quality audits.
|
|
42
|
+
- Run `/tdd` (which routes to `tdd-loop`) to write tests and implement minimal code to pass under a RED-GREEN-REFACTOR cycle.
|
|
43
|
+
- Run `/verify` to execute quality and security scans (security scan, unit tests, linting, type-safety checks) before committing.
|
|
44
|
+
|
|
32
45
|
---
|
|
33
46
|
|
|
34
47
|
## MCP Tool Selection
|
|
@@ -95,4 +108,4 @@ Every user request must pass through the Socratic Gate before ANY implementation
|
|
|
95
108
|
|
|
96
109
|
### Quick Reference
|
|
97
110
|
- **Masters**: `orchestrator`, `project-planner`, `security-auditor`, `backend-specialist`, `frontend-specialist`, `mobile-developer`, `debugger`
|
|
98
|
-
- **Key Skills**: `clean-code`, `brainstorming`, `ui-style-rules`, `mobile-rules`, `web-mockup-gen`, `mobile-mockup-gen`, `bug-diagnostics`, `tdd-loop`, `spec-clarification`, `prd-gen`, `task-breakdown`, `prototype`
|
|
111
|
+
- **Key Skills**: `clean-code`, `brainstorming`, `ui-style-rules`, `mobile-rules`, `web-mockup-gen`, `mobile-mockup-gen`, `bug-diagnostics`, `tdd-loop`, `spec-clarification`, `prd-gen`, `task-breakdown`, `prototype`, `stress-test-plan`, `skill-generator`, `git-safety-guardrails`, `git-hook-setup`, `test-type-migration`, `exercise-scaffold`, `interactive-teaching`, `writing-flow`, `raw-idea-collector`, `draft-shaper`, `project-config-wizard`, `skill-writing-guide`, `architecture-rules`, `solution-decision-map`, `task-implementation`, `git-conflict-resolver`, `workflow-navigator`, `terse-communication`, `session-handoff`
|