apt-mcp-agent-setup 3.0.6 → 3.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/bin/cli.js +1 -1
  2. package/bundle/NOTICES.md +0 -0
  3. package/bundle/core.enc +0 -0
  4. package/bundle/mcp-rules.enc +0 -0
  5. package/bundle/skills-aso.enc +0 -0
  6. package/bundle/skills-ba.enc +0 -0
  7. package/bundle/skills-base.enc +0 -0
  8. package/bundle/skills-be.enc +0 -0
  9. package/bundle/skills-design.enc +0 -0
  10. package/bundle/skills-fe.enc +0 -0
  11. package/bundle/skills-mobile.enc +0 -0
  12. package/bundle/skills-pm.enc +0 -0
  13. package/integrity-manifest.json +61 -51
  14. package/package.json +1 -1
  15. package/release-check.js +70 -13
  16. package/src/backends/browser-tools-0.0.82.json +375 -0
  17. package/src/backends/browser-tools.js +1 -0
  18. package/src/backends/index-command.js +1 -0
  19. package/src/backends/index-store.js +1 -1
  20. package/src/backends/profiles.js +1 -1
  21. package/src/backends/review_graph.py +6 -5
  22. package/src/core/aso-import.js +1 -0
  23. package/src/core/catalog.js +1 -1
  24. package/src/core/context-metrics.js +1 -1
  25. package/src/core/doctor.js +1 -1
  26. package/src/core/execution.js +1 -1
  27. package/src/core/hook-bridge.js +1 -1
  28. package/src/core/host-adapters.js +1 -1
  29. package/src/core/memory-store.js +1 -1
  30. package/src/core/model-routing.js +1 -1
  31. package/src/core/owned-lock.js +1 -1
  32. package/src/core/presentations.js +1 -0
  33. package/src/core/session.js +1 -1
  34. package/src/core/skill-names.js +1 -1
  35. package/src/core/workspace-path.js +1 -1
  36. package/src/core/xlsx-reader.py +62 -0
  37. package/src/installer/bounded-command.js +1 -0
  38. package/src/installer/global-setup.js +1 -1
  39. package/src/installer/host-hooks.js +1 -1
  40. package/src/installer/managed-config.js +1 -1
  41. package/src/installer/platform-config.js +1 -1
  42. package/src/installer/prerequisites.js +1 -1
  43. package/src/installer/presentations-requirements.txt +14 -0
  44. package/src/installer/presentations.js +1 -0
  45. package/src/installer/project-setup.js +1 -1
  46. package/src/installer/runtime-lock.js +1 -1
  47. package/src/installer/runtime-store.js +1 -1
  48. package/src/installer/setup-wizard.js +1 -1
  49. package/src/license/crypto.js +1 -1
  50. package/src/license/fingerprint.js +1 -1
  51. package/src/license/terms.js +1 -1
  52. package/src/license/verify.js +1 -1
  53. package/src/presets/index.js +1 -1
  54. package/src/proxy/backends.js +1 -1
  55. package/src/proxy/browser-sessions.js +1 -0
  56. package/src/proxy/core-tools.js +1 -1
  57. package/src/proxy/pipeline.js +1 -1
  58. package/src/proxy/router.config.js +1 -1
  59. package/src/proxy/router.js +1 -1
  60. package/src/proxy/server.js +1 -1
  61. package/src/templates/mcp-tools.md +7 -2
package/bin/cli.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- const _0x152fb6=_0x1955;(function(_0x211084,_0x362b7e){const _0x45d9f5=_0x1955,_0x2982bd=_0x211084();while(!![]){try{const _0x21c13c=parseInt(_0x45d9f5(0x1a0))/0x1*(parseInt(_0x45d9f5(0x18a))/0x2)+-parseInt(_0x45d9f5(0x1c8))/0x3+parseInt(_0x45d9f5(0x170))/0x4+-parseInt(_0x45d9f5(0x1ab))/0x5*(-parseInt(_0x45d9f5(0x180))/0x6)+parseInt(_0x45d9f5(0x1f7))/0x7*(-parseInt(_0x45d9f5(0x1ec))/0x8)+parseInt(_0x45d9f5(0x1d7))/0x9+-parseInt(_0x45d9f5(0x1af))/0xa;if(_0x21c13c===_0x362b7e)break;else _0x2982bd['push'](_0x2982bd['shift']());}catch(_0x14879d){_0x2982bd['push'](_0x2982bd['shift']());}}}(_0x9077,0x98c47));const fs=require('fs'),path=require('path'),os=require('os'),readline=require(_0x152fb6(0x1c7)),http=require('http'),https=require(_0x152fb6(0x1f6)),{getFingerprint}=require(_0x152fb6(0x214)),{verifyLicense}=require('../src/license/verify.js'),{checkPrerequisites}=require(_0x152fb6(0x1c4)),{installGlobalTools}=require(_0x152fb6(0x210)),{deployProject,ensureStitchAuthentication}=require('../src/installer/project-setup.js'),{configureIDE,configureMultipleIDEs,detectInstalledIDEs}=require(_0x152fb6(0x1bc)),{runSetupWizard}=require(_0x152fb6(0x176));function runtimeLauncher(_0x3e6e44){const _0x4befe2=_0x152fb6,_0xabf985=path[_0x4befe2(0x1e2)](__dirname,'..');if(!fs[_0x4befe2(0x17d)](path[_0x4befe2(0x19f)](_0xabf985,_0x4befe2(0x1c1))))return console['warn'](_0x4befe2(0x196)),path['join'](_0xabf985,_0x4befe2(0x16d));const _0x20549c={};return _0x20549c[_0x4befe2(0x1e6)]=_0x3e6e44,require(_0x4befe2(0x15f))[_0x4befe2(0x1e8)](_0xabf985,_0x20549c)['launcherPath'];}function parseArgs(){const _0x5548df=_0x152fb6,_0x38a3f1=process['argv']['slice'](0x2),_0x3b7b82=_0x38a3f1[0x0],_0x17644d={};for(let _0x1822f8=0x1;_0x1822f8<_0x38a3f1[_0x5548df(0x1f4)];_0x1822f8++){if(_0x38a3f1[_0x1822f8]===_0x5548df(0x20d)||_0x38a3f1[_0x1822f8]==='-k')_0x17644d[_0x5548df(0x1f8)]=_0x38a3f1[_0x1822f8+0x1],_0x1822f8++;else{if(_0x38a3f1[_0x1822f8]===_0x5548df(0x173)||_0x38a3f1[_0x1822f8]==='-p')_0x17644d[_0x5548df(0x1dd)]=_0x38a3f1[_0x1822f8+0x1],_0x1822f8++;else{if(_0x38a3f1[_0x1822f8]==='--project')_0x17644d['project']=_0x38a3f1[_0x1822f8+0x1],_0x1822f8++;else _0x38a3f1[_0x1822f8]===_0x5548df(0x188)&&(_0x17644d[_0x5548df(0x1fd)]=!![]);}}}const _0x688051={};return _0x688051['command']=_0x3b7b82,_0x688051[_0x5548df(0x183)]=_0x17644d,_0x688051;}function getPublicKey(){const _0x429e81=_0x152fb6;if(process.env.MCP_ADMIN_DIR){const _0xbc419b=path['join'](process.env.MCP_ADMIN_DIR,'master.public.pem');if(fs[_0x429e81(0x17d)](_0xbc419b))return fs[_0x429e81(0x1d5)](_0xbc419b,_0x429e81(0x167))['trim']();}let _0xa112d2=path[_0x429e81(0x19f)](__dirname,_0x429e81(0x1ad));if(fs[_0x429e81(0x17d)](_0xa112d2))return fs[_0x429e81(0x1d5)](_0xa112d2,_0x429e81(0x167))[_0x429e81(0x172)]();_0xa112d2=path[_0x429e81(0x19f)](__dirname,_0x429e81(0x17e));if(fs['existsSync'](_0xa112d2))return fs['readFileSync'](_0xa112d2,_0x429e81(0x167))[_0x429e81(0x172)]();return null;}function handleInit(){const _0x37b5b7=_0x152fb6,_0x45177c=getFingerprint();console[_0x37b5b7(0x1e7)](_0x37b5b7(0x1cb)+_0x45177c);}function handleStatus(){const _0x371dc7=_0x152fb6,_0x57877e=path[_0x371dc7(0x19f)](os[_0x371dc7(0x178)](),'.anhdh',_0x371dc7(0x19c));let _0x111a39;try{_0x111a39=fs[_0x371dc7(0x1d5)](_0x57877e,_0x371dc7(0x167))[_0x371dc7(0x172)]();}catch(_0x26dccf){console[_0x371dc7(0x1f0)](_0x371dc7(0x17a)),process['exit'](0x1);return;}const _0x172e87=getFingerprint(),_0x520257=getPublicKey(),_0xbf6c4=verifyLicense(_0x111a39,_0x172e87,_0x520257);!_0xbf6c4['valid']&&(console[_0x371dc7(0x1f0)](_0x371dc7(0x1ee)+_0xbf6c4[_0x371dc7(0x15e)]),process[_0x371dc7(0x1d6)](0x1));const _0x385af8=_0xbf6c4['payload'];console['log'](_0x371dc7(0x212)),console[_0x371dc7(0x1e7)](_0x371dc7(0x1c5)),console[_0x371dc7(0x1e7)]('Status:\x20\x20\x20\x20\x20\x20Valid\x20/\x20Active'),console['log'](_0x371dc7(0x1a6)+_0x385af8[_0x371dc7(0x207)]),console[_0x371dc7(0x1e7)](_0x371dc7(0x1aa)+_0x385af8['preset']),console['log']('Device\x20ID:\x20\x20\x20'+_0x385af8['device']),console[_0x371dc7(0x1e7)](_0x371dc7(0x179)+new Date(_0x385af8[_0x371dc7(0x1b4)])['toISOString']());}function extractKeyId(_0x3542cf){const _0x26cf01=_0x152fb6;try{const _0x165007=_0x3542cf[_0x26cf01(0x1b9)]('.'),_0x4ddc45=JSON[_0x26cf01(0x18d)](Buffer[_0x26cf01(0x1ea)](_0x165007[0x1],'base64url')[_0x26cf01(0x18e)](_0x26cf01(0x167)));return _0x4ddc45[_0x26cf01(0x203)]||_0x4ddc45[_0x26cf01(0x1e3)];}catch(_0xf64336){return null;}}function httpRequest(_0x5c410a,_0x553917={}){return new Promise((_0x4273b2,_0x2dd917)=>{const _0x225a00=_0x1955;try{const _0x41c6c3=new URL(_0x5c410a),_0x54d762=_0x41c6c3[_0x225a00(0x1f1)]==='https:'?https:http,_0x4f9abd={'User-Agent':_0x225a00(0x1f5)+process[_0x225a00(0x20e)]+')',..._0x553917[_0x225a00(0x16e)]},_0x412f1f=_0x4f9abd;if(_0x553917[_0x225a00(0x164)]){const _0x250bf3=typeof _0x553917[_0x225a00(0x164)]===_0x225a00(0x1de)?_0x553917['body']:JSON['stringify'](_0x553917['body']);!_0x412f1f[_0x225a00(0x191)]&&!_0x412f1f['content-length']&&(_0x412f1f[_0x225a00(0x191)]=Buffer['byteLength'](_0x250bf3));}const _0x3d02b7={};_0x3d02b7['method']=_0x553917[_0x225a00(0x1ef)]||_0x225a00(0x19e),_0x3d02b7[_0x225a00(0x190)]=_0x41c6c3[_0x225a00(0x190)],_0x3d02b7[_0x225a00(0x1eb)]=_0x41c6c3[_0x225a00(0x1eb)]||(_0x41c6c3[_0x225a00(0x1f1)]==='https:'?0x1bb:0x50),_0x3d02b7[_0x225a00(0x1c6)]=_0x41c6c3[_0x225a00(0x18b)]+_0x41c6c3[_0x225a00(0x1ac)],_0x3d02b7[_0x225a00(0x16e)]=_0x412f1f;const _0x50b692=_0x3d02b7,_0x386a2e=_0x54d762['request'](_0x50b692,_0x4055da=>{const _0x5bd02d=_0x225a00;let _0x312286='';_0x4055da['on'](_0x5bd02d(0x1cc),_0x86f4cb=>{_0x312286+=_0x86f4cb;}),_0x4055da['on'](_0x5bd02d(0x1db),()=>{const _0x38e16e=_0x5bd02d;_0x4273b2({'ok':_0x4055da['statusCode']>=0xc8&&_0x4055da[_0x38e16e(0x1a4)]<0x12c,'status':_0x4055da[_0x38e16e(0x1a4)],'json':async()=>JSON[_0x38e16e(0x18d)](_0x312286),'text':async()=>_0x312286});});});_0x386a2e['on'](_0x225a00(0x1f0),_0x8e3bb9=>{_0x2dd917(_0x8e3bb9);}),_0x553917[_0x225a00(0x164)]&&_0x386a2e[_0x225a00(0x1e0)](_0x553917[_0x225a00(0x164)]),_0x386a2e[_0x225a00(0x1db)]();}catch(_0x311f1c){_0x2dd917(_0x311f1c);}});}async function activateLicense(_0x5a62de,_0x4b7528){const _0x221e9c=_0x152fb6,_0x257fd7=extractKeyId(_0x5a62de);if(!_0x257fd7)throw new Error(_0x221e9c(0x1a3));const _0x22a14d=process.env.MCP_ACTIVATION_URL||_0x221e9c(0x175),_0x5d7ddf=_0x22a14d+_0x221e9c(0x165),_0x4a1645={};_0x4a1645[_0x221e9c(0x1a8)]='application/json';const _0x1c5e58={};_0x1c5e58[_0x221e9c(0x1e3)]=_0x257fd7,_0x1c5e58[_0x221e9c(0x182)]=_0x4b7528;const _0x390e1e=await httpRequest(_0x5d7ddf,{'method':_0x221e9c(0x16f),'headers':_0x4a1645,'body':JSON[_0x221e9c(0x1fb)](_0x1c5e58)});if(!_0x390e1e['ok']){let _0x325c49=_0x221e9c(0x199)+_0x390e1e[_0x221e9c(0x15c)];try{const _0x217a5d=await _0x390e1e['json']();if(_0x217a5d&&_0x217a5d['error'])_0x325c49=_0x217a5d['error'];}catch(_0xc4d06e){}throw new Error(_0x325c49);}const _0xa089da=await _0x390e1e[_0x221e9c(0x18c)]();if(!_0xa089da||!_0xa089da[_0x221e9c(0x1fa)])throw new Error(_0x221e9c(0x1bb));return _0xa089da[_0x221e9c(0x1fa)];}async function handleActivate(_0x2ed4e1){const _0x2a244c=_0x152fb6,_0x236aae=_0x2ed4e1[_0x2a244c(0x1f8)];!_0x236aae&&(console['error'](_0x2a244c(0x15a)),console[_0x2a244c(0x1e7)](_0x2a244c(0x1ca)),console[_0x2a244c(0x1e7)](_0x2a244c(0x184)),process[_0x2a244c(0x1d6)](0x1));const _0x299b60=getFingerprint(),_0x10f45d=getPublicKey(),_0x3b4558=verifyLicense(_0x236aae,null,_0x10f45d);!_0x3b4558['valid']&&(console[_0x2a244c(0x1f0)]('License\x20verification\x20failed:\x20'+_0x3b4558['reason']),process[_0x2a244c(0x1d6)](0x1));try{console[_0x2a244c(0x1e7)](_0x2a244c(0x19d));const _0x502128=await activateLicense(_0x236aae,_0x299b60),_0x3fd734=path[_0x2a244c(0x19f)](os[_0x2a244c(0x178)](),_0x2a244c(0x1b2),'license.key'),_0xbf316e={};_0xbf316e[_0x2a244c(0x187)]=!![],fs[_0x2a244c(0x1cf)](path[_0x2a244c(0x166)](_0x3fd734),_0xbf316e),fs[_0x2a244c(0x18f)](_0x3fd734,_0x502128,'utf8'),console['log']('License\x20key\x20activated\x20and\x20saved\x20to:\x20'+_0x3fd734);}catch(_0x325778){console[_0x2a244c(0x1f0)](_0x2a244c(0x1c9)+_0x325778[_0x2a244c(0x1ae)]),process[_0x2a244c(0x1d6)](0x1);}}function askQuestion(_0x562bce){const _0x3e5789=_0x152fb6,_0x3ee280={};_0x3ee280['input']=process[_0x3e5789(0x1b6)],_0x3ee280['output']=process['stdout'];const _0x2562dc=readline[_0x3e5789(0x20a)](_0x3ee280);return new Promise(_0xd9591f=>_0x2562dc[_0x3e5789(0x177)](_0x562bce,_0x271191=>{const _0x7cb52e=_0x3e5789;_0x2562dc['close'](),process[_0x7cb52e(0x1b6)][_0x7cb52e(0x19b)](),_0xd9591f(_0x271191);}));}async function handleInstall(_0x23a21f){const _0x1217a5=_0x152fb6,_0x37c27a=_0x23a21f[_0x1217a5(0x1f8)];if(!_0x37c27a){console[_0x1217a5(0x1f0)](_0x1217a5(0x15a)),console[_0x1217a5(0x1e7)](_0x1217a5(0x1ca)),console[_0x1217a5(0x1e7)](_0x1217a5(0x1b7)),process[_0x1217a5(0x1d6)](0x1);return;}console[_0x1217a5(0x1e7)](_0x1217a5(0x1d1));const _0x50f442=await askQuestion('Type\x20\x27yes\x27\x20to\x20accept:\x20');if(_0x50f442['trim']()[_0x1217a5(0x1bf)]()!==_0x1217a5(0x1b3)){console[_0x1217a5(0x1f0)]('Installation\x20aborted.\x20You\x20must\x20accept\x20the\x20terms\x20to\x20install.'),process['exit'](0x1);return;}const _0x24179d=extractKeyId(_0x37c27a),_0x449c8d=path[_0x1217a5(0x19f)](os['homedir'](),_0x1217a5(0x1b2),_0x1217a5(0x197)),_0x441334=new Date()[_0x1217a5(0x185)]()+_0x1217a5(0x171)+(_0x24179d||_0x1217a5(0x157))+_0x1217a5(0x1f9);try{const _0x3b6777={};_0x3b6777[_0x1217a5(0x187)]=!![],fs[_0x1217a5(0x1cf)](path[_0x1217a5(0x166)](_0x449c8d),_0x3b6777),fs['appendFileSync'](_0x449c8d,_0x441334,_0x1217a5(0x167));}catch(_0x38a854){console[_0x1217a5(0x181)](_0x1217a5(0x156)+_0x38a854[_0x1217a5(0x1ae)]);}const _0x3911fe=getFingerprint(),_0x54ac49=getPublicKey(),_0x1d882a=verifyLicense(_0x37c27a,null,_0x54ac49);!_0x1d882a['valid']&&(console['error'](_0x1217a5(0x195)+_0x1d882a[_0x1217a5(0x15e)]),process[_0x1217a5(0x1d6)](0x1));let _0xfade22;try{console['log'](_0x1217a5(0x19d)),_0xfade22=await activateLicense(_0x37c27a,_0x3911fe);}catch(_0x5d1b48){console[_0x1217a5(0x1f0)](_0x1217a5(0x194)+_0x5d1b48[_0x1217a5(0x1ae)]),process['exit'](0x1);}const _0x222985=verifyLicense(_0xfade22,_0x3911fe,_0x54ac49);!_0x222985['valid']&&(console[_0x1217a5(0x1f0)](_0x1217a5(0x1e4)+_0x222985[_0x1217a5(0x15e)]),process[_0x1217a5(0x1d6)](0x1));const _0x75e2dd=checkPrerequisites();!_0x75e2dd[_0x1217a5(0x1d2)]&&(console['error'](_0x1217a5(0x1df)),_0x75e2dd['errors'][_0x1217a5(0x1ba)](_0x263265=>console[_0x1217a5(0x1f0)]('-\x20'+_0x263265)),process[_0x1217a5(0x1d6)](0x1));try{installGlobalTools();}catch(_0x2241ed){console['error'](_0x1217a5(0x168)+_0x2241ed[_0x1217a5(0x1ae)]),process['exit'](0x1);}const _0x2736aa=_0x23a21f[_0x1217a5(0x20b)]||process[_0x1217a5(0x17b)](),_0x39a570=_0x23a21f[_0x1217a5(0x1dd)]||_0x222985[_0x1217a5(0x16c)]['preset'],_0x498953=runtimeLauncher(_0x54ac49);try{deployProject({'licenseKey':_0xfade22,'projectPath':_0x2736aa,'presetName':_0x39a570,'deviceId':_0x3911fe,'masterSecret':_0x54ac49,'runtimeLauncherPath':_0x498953,'bundleDir':path[_0x1217a5(0x19f)](__dirname,'../bundle')});}catch(_0x27510d){console['error']('Project\x20setup\x20deployment\x20failed:\x20'+_0x27510d[_0x1217a5(0x1ae)]),process[_0x1217a5(0x1d6)](0x1);}try{console[_0x1217a5(0x1e7)](_0x1217a5(0x15d));const _0x382ae9=detectInstalledIDEs(),_0x4c88bf=[],_0xe06754=[];for(const [_0x3481c8,_0x2cc5b2]of Object[_0x1217a5(0x189)](_0x382ae9)){_0x2cc5b2[_0x1217a5(0x1b0)]?(_0x4c88bf[_0x1217a5(0x200)](_0x3481c8),console[_0x1217a5(0x1e7)](_0x1217a5(0x208)+_0x2cc5b2['displayName']+_0x1217a5(0x16a)+_0x2cc5b2[_0x1217a5(0x1ef)])):(_0xe06754[_0x1217a5(0x200)](_0x3481c8),console[_0x1217a5(0x1e7)](_0x1217a5(0x161)+_0x2cc5b2['displayName']+_0x1217a5(0x1fe)));}let _0x115a4a=_0x4c88bf;if(_0x4c88bf['length']>0x0){console[_0x1217a5(0x1e7)](_0x1217a5(0x163)+_0x4c88bf['map'](_0x3828a4=>_0x382ae9[_0x3828a4]['displayName'])[_0x1217a5(0x19f)](',\x20'));const _0x503fdd=await askQuestion(_0x1217a5(0x1ff)),_0x570074=_0x503fdd[_0x1217a5(0x172)]()[_0x1217a5(0x1bf)]();if(_0x570074==='n'||_0x570074==='no')console[_0x1217a5(0x1e7)](_0x1217a5(0x160)),_0x115a4a=[];else{if(_0x570074===_0x1217a5(0x1c3)){const _0x31978f=Object['entries'](_0x382ae9);console[_0x1217a5(0x1e7)](_0x1217a5(0x213)),_0x31978f[_0x1217a5(0x1ba)](([_0x2d322c,_0x1c1a24],_0x32434b)=>{const _0x4b0ba4=_0x1217a5,_0x500916=_0x1c1a24['detected']?'✅':'❌';console[_0x4b0ba4(0x1e7)]('\x20\x20'+(_0x32434b+0x1)+')\x20'+_0x500916+'\x20'+_0x1c1a24['displayName']);});const _0x3b6bad=await askQuestion(_0x1217a5(0x20c));_0x115a4a=_0x3b6bad[_0x1217a5(0x1b9)](',')['map'](_0x167461=>{const _0x5dd3c7=parseInt(_0x167461['trim'](),0xa)-0x1;return _0x31978f[_0x5dd3c7]?_0x31978f[_0x5dd3c7][0x0]:null;})[_0x1217a5(0x1ce)](Boolean);}}}else console[_0x1217a5(0x1e7)](_0x1217a5(0x1e9)),console[_0x1217a5(0x1e7)](_0x1217a5(0x1cd));if(_0x115a4a[_0x1217a5(0x1f4)]>0x0){const _0x5b5ce1=configureMultipleIDEs(_0x115a4a,_0x498953),_0x50011a=_0x5b5ce1[_0x1217a5(0x1ce)](_0x57ca7e=>_0x57ca7e[_0x1217a5(0x1d2)])['length'];console[_0x1217a5(0x1e7)]('\x0a'+_0x50011a+'/'+_0x115a4a[_0x1217a5(0x1f4)]+_0x1217a5(0x193));}}catch(_0x214859){console[_0x1217a5(0x181)]('Warning:\x20IDE\x20auto-detection\x20failed:\x20'+_0x214859[_0x1217a5(0x1ae)]);try{configureIDE(_0x1217a5(0x1d3),_0x498953),configureIDE(_0x1217a5(0x211),_0x498953);}catch(_0x29b6b9){console[_0x1217a5(0x181)](_0x1217a5(0x198)+_0x29b6b9['message']);}}const _0xa58339=path[_0x1217a5(0x19f)](os[_0x1217a5(0x178)](),'.anhdh',_0x1217a5(0x19c));try{const _0x14c3d3={};_0x14c3d3['recursive']=!![],fs[_0x1217a5(0x1cf)](path[_0x1217a5(0x166)](_0xa58339),_0x14c3d3),fs[_0x1217a5(0x18f)](_0xa58339,_0xfade22,_0x1217a5(0x167)),console[_0x1217a5(0x1e7)](_0x1217a5(0x17c)+_0xa58339);}catch(_0x48d2cb){console[_0x1217a5(0x1f0)]('Failed\x20to\x20save\x20license\x20key\x20file:\x20'+_0x48d2cb['message']),process[_0x1217a5(0x1d6)](0x1);}console[_0x1217a5(0x1e7)](_0x1217a5(0x158)),console[_0x1217a5(0x1e7)](''),console[_0x1217a5(0x1e7)](_0x1217a5(0x1c0)),console['log'](_0x1217a5(0x1d9));}async function handleUpdate(_0xbeb52){const _0xf8a1fe=_0x152fb6,_0x2083b6=path[_0xf8a1fe(0x19f)](os[_0xf8a1fe(0x178)](),'.anhdh',_0xf8a1fe(0x19c));let _0x264688;try{_0x264688=fs[_0xf8a1fe(0x1d5)](_0x2083b6,_0xf8a1fe(0x167))[_0xf8a1fe(0x172)]();}catch(_0x180a1d){console[_0xf8a1fe(0x1f0)]('License\x20key\x20not\x20found.\x20Please\x20run\x20\x22install\x22\x20first:'),console[_0xf8a1fe(0x1e7)](_0xf8a1fe(0x186)),process[_0xf8a1fe(0x1d6)](0x1);return;}const _0x47a857=getFingerprint(),_0x2efe12=getPublicKey(),_0x24c6a8=verifyLicense(_0x264688,_0x47a857,_0x2efe12);if(!_0x24c6a8[_0xf8a1fe(0x1b1)]){_0x24c6a8[_0xf8a1fe(0x15e)]&&_0x24c6a8['reason'][_0xf8a1fe(0x1b8)]('expired')?console['error'](_0xf8a1fe(0x192)):console[_0xf8a1fe(0x1f0)](_0xf8a1fe(0x195)+_0x24c6a8[_0xf8a1fe(0x15e)]);process[_0xf8a1fe(0x1d6)](0x1);return;}const _0x5b6476=_0x24c6a8['payload'],_0x2b25c7=_0xbeb52['project']||process[_0xf8a1fe(0x17b)](),_0xe63f79=_0xbeb52[_0xf8a1fe(0x1dd)]||_0x5b6476['preset'],_0x97fe88=path[_0xf8a1fe(0x19f)](_0x2b25c7,'.agents',_0xf8a1fe(0x1be));if(!fs[_0xf8a1fe(0x17d)](_0x97fe88)){console[_0xf8a1fe(0x1f0)](_0xf8a1fe(0x205)),console['log'](_0xf8a1fe(0x1bd)),console[_0xf8a1fe(0x1e7)](_0xf8a1fe(0x15b)+_0x2b25c7+'\x22'),process[_0xf8a1fe(0x1d6)](0x1);return;}console[_0xf8a1fe(0x1e7)](_0xf8a1fe(0x1a7)),console[_0xf8a1fe(0x1e7)](_0xf8a1fe(0x162)),console[_0xf8a1fe(0x1e7)](_0xf8a1fe(0x1c2)),console[_0xf8a1fe(0x1e7)](_0xf8a1fe(0x216)+_0x5b6476[_0xf8a1fe(0x207)]),console[_0xf8a1fe(0x1e7)](_0xf8a1fe(0x1f2)+_0xe63f79),console[_0xf8a1fe(0x1e7)]('Project:\x20'+_0x2b25c7),console['log']('');try{installGlobalTools();}catch(_0x25d199){console[_0xf8a1fe(0x1f0)]('Global\x20tools\x20update\x20failed:\x20'+_0x25d199[_0xf8a1fe(0x1ae)]),process[_0xf8a1fe(0x1d6)](0x1);}const _0x43fe0e=runtimeLauncher(_0x2efe12);try{deployProject({'licenseKey':_0x264688,'projectPath':_0x2b25c7,'presetName':_0xe63f79,'deviceId':_0x47a857,'masterSecret':_0x2efe12,'runtimeLauncherPath':_0x43fe0e,'bundleDir':path[_0xf8a1fe(0x19f)](__dirname,_0xf8a1fe(0x215)),'isUpdate':!![],'rebuildIndex':_0xbeb52[_0xf8a1fe(0x1fd)]||![]});}catch(_0x3dc072){console[_0xf8a1fe(0x1f0)]('Update\x20failed:\x20'+_0x3dc072[_0xf8a1fe(0x1ae)]),process[_0xf8a1fe(0x1d6)](0x1);}const _0x440717={};_0x440717['presetName']=_0xe63f79,ensureStitchAuthentication(_0x440717);try{console[_0xf8a1fe(0x1e7)]('\x0aUpdating\x20global\x20IDE\x20configurations\x20to\x20use\x20the\x20new\x20proxy\x20version...');const _0x3a87d7=detectInstalledIDEs(),_0x2486d8=Object[_0xf8a1fe(0x1a1)](_0x3a87d7)[_0xf8a1fe(0x1ce)](_0x315970=>_0x3a87d7[_0x315970]['detected']);if(_0x2486d8[_0xf8a1fe(0x1f4)]>0x0){const _0x37d6fc=configureMultipleIDEs(_0x2486d8,_0x43fe0e),_0x59900d=_0x37d6fc[_0xf8a1fe(0x1ce)](_0x3db5f5=>_0x3db5f5[_0xf8a1fe(0x1d2)])[_0xf8a1fe(0x1f4)];console[_0xf8a1fe(0x1e7)]('\x20\x20'+_0x59900d+'/'+_0x2486d8['length']+_0xf8a1fe(0x1a9));}}catch(_0x51f7ff){console['warn'](_0xf8a1fe(0x16b)+_0x51f7ff['message']);}console['log'](''),console[_0xf8a1fe(0x1e7)]('💡\x20Tip:\x20Run\x20\x22npx\x20apt-mcp-agent-setup\x20setup\x22\x20to\x20reconfigure\x20project\x20settings.');}function _0x1955(_0x52e34d,_0x3289d5){_0x52e34d=_0x52e34d-0x156;const _0x907709=_0x9077();let _0x1955ef=_0x907709[_0x52e34d];if(_0x1955['GqCdLU']===undefined){var _0x1c5448=function(_0xfc570c){const _0x55ce49='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x359c36='',_0x1e1d9a='';for(let _0x1b802c=0x0,_0x12b467,_0x455550,_0x20253f=0x0;_0x455550=_0xfc570c['charAt'](_0x20253f++);~_0x455550&&(_0x12b467=_0x1b802c%0x4?_0x12b467*0x40+_0x455550:_0x455550,_0x1b802c++%0x4)?_0x359c36+=String['fromCharCode'](0xff&_0x12b467>>(-0x2*_0x1b802c&0x6)):0x0){_0x455550=_0x55ce49['indexOf'](_0x455550);}for(let _0x4d3c36=0x0,_0x11a0ad=_0x359c36['length'];_0x4d3c36<_0x11a0ad;_0x4d3c36++){_0x1e1d9a+='%'+('00'+_0x359c36['charCodeAt'](_0x4d3c36)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1e1d9a);};_0x1955['HTliUq']=_0x1c5448,_0x1955['PSuTTx']={},_0x1955['GqCdLU']=!![];}const _0x4ccd9e=_0x907709[0x0],_0x4c9c1c=_0x52e34d+_0x4ccd9e,_0x199216=_0x1955['PSuTTx'][_0x4c9c1c];return!_0x199216?(_0x1955ef=_0x1955['HTliUq'](_0x1955ef),_0x1955['PSuTTx'][_0x4c9c1c]=_0x1955ef):_0x1955ef=_0x199216,_0x1955ef;}async function handleNotices(){const _0x516782=_0x152fb6,{decrypt:_0x19957f}=require(_0x516782(0x201)),_0xe52986=path[_0x516782(0x19f)](__dirname,'../bundle/NOTICES.md');if(!fs[_0x516782(0x17d)](_0xe52986)){console[_0x516782(0x1f0)](_0x516782(0x206)),process[_0x516782(0x1d6)](0x1);return;}try{const _0x3652cf=fs['readFileSync'](_0xe52986),_0x103c64=_0x19957f(_0x3652cf,_0x516782(0x20f));console[_0x516782(0x1e7)](_0x103c64[_0x516782(0x18e)](_0x516782(0x167)));}catch(_0x2ed203){console[_0x516782(0x1f0)](_0x516782(0x209),_0x2ed203['message']),process[_0x516782(0x1d6)](0x1);}}function _0x9077(){const _0x542313=['mZC1nxHer01MDq','C2vHCMnO','lI4VywrTAw4VBwfZDgvYlNb1yMXPyY5Wzw0','BwvZC2fNzq','mtu5nJCZodbcCK55rNq','zgv0zwn0zwq','DMfSAwq','lMfUAgrO','EwvZ','zxHW','DgHLBG','C3rKAw4','icbUB2rLigjPBI9JBgKUANmGAw5ZDgfSBcaTlwTLEsa8teLdru5trv9lrvK+ifSTlxbYzxnLDca8ufjfu0vupL0GwY0TChjVAMvJDca8uefusd5D','Aw5JBhvKzxm','C3bSAxq','zM9YrwfJAa','u2vYDMvYihjLC3bVBNnLig1PC3nPBMCGDg9Rzw4','lI4VC3jJl2LUC3rHBgXLCI9WBgf0zM9YBs1JB25MAwCUANm','uNvUicjPBNn0ywXSiIbMAxjZDcb0BYbZzxqGDxaGDgHPCYbWCM9Qzwn0oG','BwfUAwzLC3qUANnVBG','Dg9mB3DLCKnHC2u','8j+sOsbuAxa6ifj1BIbGBNb4igfWDc1Ty3aTywDLBNqTC2v0DxaGC2v0DxbGihrVign1C3rVBwL6zsb5B3vYigLZC3vLihrYywnRzxiS','Aw50zwDYAxr5lw1HBMLMzxn0lMPZB24','4PwA4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4PwD','zwrPDa','lI4VC3jJl2LUC3rHBgXLCI9WCMvYzxf1AxnPDgvZlMPZ','pt09pt09pt09pt09pt09pt09pt09pt09pt09pt09pt0','Cgf0Aa','CMvHzgXPBMu','ndG2nde0rLHfs3nQ','qwn0AxzHDgLVBIbMywLSzwq6ia','vxnHz2u6','ww91CIbezxzPy2uGsuq6ia','zgf0yq','ww91ignHBIbTyw51ywXSEsbJB25MAwD1CMuGBgf0zxiGD2L0AdOGBNb4igfWDc1Ty3aTywDLBNqTC2v0DxaGC2v0Dxa','zMLSDgvY','BwTKAxjtEw5J','ls10zxjTCW','qNKGy29UDgLUDwLUzYWGEw91igfNCMvLihrVihrOzsbuzxjTCYbVzIbtzxj2AwnLigf0igH0DhbZoI8VywDLBNrRAxqUywXWAgf0zwnOCY5HAs90zxjTCY4','C3vJy2vZCW','yw50AwDYyxzPDhK','lI4VC3jJl2XPy2vUC2uVDgvYBxmUANm','CMvHzezPBgvtEw5J','zxHPDa','mJi2ntG0mfrJtxLVAq','q0Xjigv4zwn1DgLVBIbLCNjVCJO','icaGDhjPywDLigXHyMvSCYWGyw5KigrVBwfPBIbKB2nZigXHEw91DcbMB3iGDgHPCYbWCM9Qzwn0lG','Aw5PDa','zw5K','C2v0Dxa','ChjLC2v0','C3rYAw5N','uhjLCMvXDwLZAxrLCYbJAgvJAYbMywLSzwq6','D3jPDgu','icbUChGGyxb0lw1JCc1Hz2vUDc1Zzxr1CcbPBML0','CMvZB2X2zq','A2v5x2LK','qwn0AxzHDgvKihrVA2vUihzHBgLKyxrPB24GzMfPBgvKoIa','cLvZywDLoG','ChvIBgLJs2v5','Bg9N','Aw5ZDgfSBfj1BNrPBwu','cK5ViefjlxbVD2vYzwqGsurfCYbKzxrLy3rLzc4Gu2TPChbPBMCGz2XVyMfSieLersbJB25MAwD1CMf0Aw9UlG','zNjVBq','Cg9YDa','ndiZntjOBNDbzhK','vw5RBM93BIbJB21Tyw5KoIa','tgLJzw5ZzsbRzxKGDMvYAwzPy2f0Aw9UigzHAwXLzdOG','Bwv0Ag9K','zxjYB3i','ChjVDg9JB2W','uhjLC2v0oIaG','Aw5ZDgfSBa','BgvUz3rO','tw96AwXSys81lJaGkgnVBxbHDgLIBgu7ie5VzguV','Ahr0Chm','odrluNvREuy','A2v5','ihWGqwnJzxb0zwqGvgvYBxmGB2yGu2vYDMLJzqO','Dg9Rzw4','C3rYAw5NAwz5','icbUChGGyxb0lw1JCc1Hz2vUDc1Zzxr1CcaTlw5VDgLJzxm','CMvIDwLSzeLUzgv4','iokaLcboB3qGzM91BMq','q29UzMLYBt8Gw1KVBI9LzgL0xsaOzgvMyxvSDdOGwsK6ia','ChvZAa','lI4VC3jJl2XPy2vUC2uVy3j5ChrVlMPZ','icbUChGGyxb0lw1JCc1Hz2vUDc1Zzxr1CcbKB2n0B3iGwY0TChjVAMvJDca8uefusd5D','A2v5swq','yxjNDG','tM8GChjLDMLVDxmGAw5ZDgfSBgf0Aw9UigzVDw5KigLUihrOAxmGChjVAMvJDc4','qxr0CMLIDxrPB25ZigzPBguGke5pveLdrvmUBwqPig5VDcbMB3vUzc4','DxnLCG','icdINiuG','rMfPBgvKihrVigrLy3j5ChqGyxr0CMLIDxrPB25ZoG','y3jLyxrLsw50zxjMywnL','ChjVAMvJDa','q2HVB3nLoIa','ls1RzxK','DMvYC2LVBG','yw5OzgGTB3bLBI1ZB3vYy2uTyxr0CMLIDxrPB25Z','lI4VC3jJl2LUC3rHBgXLCI9NBg9IywWTC2v0DxaUANm','y2XHDwrL','qMfZzsbnq1aGquKGqwDLBNqG4OcuifnLDhvWifn0yxr1CW','cLnLBgvJDcbjrevZihrVignVBMzPz3vYzsaOy29TBweTC2vWyxjHDgvKig51BwjLCNmPoG','lI4VC3jJl2XPy2vUC2uVzMLUz2vYChjPBNqUANm','lI4VyNvUzgXL','vxnLCJOGicaG','v2fYBMLUzZOGrMfPBgvKihrVigXVzYbfvuXbigfJy2vWDgfUy2u6ia','Dw5RBM93BG','sw5ZDgfSBgf0Aw9UignVBxbSzxrLzcbZDwnJzxnZzNvSBhKH','icbUChGGyxb0lw1JCc1Hz2vUDc1Zzxr1CcbZzxr1CcbBls1WCM9Qzwn0idXqqvripL0','rxjYB3i6ie1PC3nPBMCGCMvXDwLYzwqGyxjNDw1LBNqGls1RzxK','icbUChGGyxb0lw1JCc1Hz2vUDc1Zzxr1CcbPBNn0ywXSic0TA2v5idXmsunftLnfx0Tfwt4Gls1WCM9Qzwn0ici','C3rHDhvZ','cLnJyw5UAw5NigzVCIbPBNn0ywXSzwqGquKTCg93zxjLzcbjrevZlI4U','CMvHC29U','lI4VC3jJl2LUC3rHBgXLCI9YDw50Aw1Llxn0B3jL','u2TPChbPBMCGsurfignVBMzPz3vYyxrPB24U','icdINyWG','4PwricaGtunqiefNzw50iokaLcbvCgrHDguGicaGicaGicaGicaGicaGicaGicdILze','cLDPBgWGy29UzMLNDxjLie1ducbMB3i6ia','yM9KEq','l2fJDgL2yxrL','zgLYBMfTzq','DxrMoa','r2XVyMfSihrVB2XZigLUC3rHBgXHDgLVBIbMywLSzwq6ia','lI4VC3jJl2nVCMuVzg9JDg9Y','iokaLca','v2fYBMLUzZOGrMfPBgvKihrVihvWzgf0zsbNBg9IywWGsurfignVBMzPz3vYyxrPB25ZoIa','Cgf5Bg9Hza','C3jJl3bYB3H5l3nLCNzLCI5QCW','AgvHzgvYCW','ue9tva','mJKYntC4ngvizurnqW','ihWGs2v5oIa','DhjPBq','ls1WCMvZzxq','y2f0y2G','Ahr0Chm6lY9Hz2vUDgTPDc5HBhbOyxrLy2HZlMfPl2fWAq','lI4VC3jJl2LUC3rHBgXLCI9Zzxr1Cc13AxPHCMqUANm','CxvLC3rPB24','Ag9TzwrPCG','rxHWAxjLCZOGicaGia','tgLJzw5ZzsbRzxKGzMLSzsbUB3qGzM91BMq','y3DK','tgLJzw5ZzsbRzxKGC2f2zwqGDg86ia','zxHPC3rZu3LUyW','lI4VlI4VywrTAw4VBwfZDgvYlNb1yMXPyY5Wzw0','ls1UB3rPy2vZ','nZKZmMHbrwPeCG','D2fYBG','zMLUz2vYChjPBNq','B3b0Aw9UCW','icbUB2rLigjPBI9JBgKUANmGywn0AxzHDguGls1RzxKGpeXjq0vou0vFs0vzpG','Dg9ju09tDhjPBMC','icbUChGGyxb0lw1JCc1Hz2vUDc1Zzxr1CcbPBNn0ywXSic0TA2v5idXmsunftLnfx0Tfwt4','CMvJDxjZAxzL','ls1Yzwj1AwXKlwLUzgv4','zw50CMLLCW','mKLiug1IqG','Cgf0Ag5HBwu','ANnVBG','CgfYC2u','Dg9tDhjPBMC','D3jPDgvgAwXLu3LUyW','Ag9ZDg5HBwu','q29UDgvUDc1mzw5NDgG','tgLJzw5ZzsbRzxKGAgfZigv4CgLYzwqUienVBNrHy3qGEw91CIbbzg1PBIbMB3iGysbUzxCGA2v5lG','ieLersHZksbJB25MAwD1CMvKihn1y2nLC3nMDwXSEs4','t25SAw5LigfJDgL2yxrPB24GzMfPBgvKoIa','tgLJzw5Zzsb2zxjPzMLJyxrPB24GzMfPBgvKoIa','rgv2zwXVCg1LBNqGy2HLy2TVDxq6igf1Dg9TyxrPyYbYDw50Aw1LihvWzgf0zxmGCMvXDwLYzsbHihnPz25LzcbWywnRywDLlG','ywnJzxb0yw5Jzs5SB2C','v2fYBMLUzZOGrMfSBgjHy2SGsurfignVBMzPz3vYyxrPB24GywXZBYbMywLSzwq6ia','u2vYDMvYihjLDhvYBMvKihn0yxr1CYa','icbUChGGyxb0lw1JCc1Hz2vUDc1Zzxr1CcbPBNn0ywXSic0TA2v5idXmsunftLnfx0Tfwt4GwY0TChjLC2v0idXquKvtrvq+xsbBls1WCM9Qzwn0idXqqvripL0','Cgf1C2u','BgLJzw5Zzs5RzxK','qwn0AxzHDgLUzYbSAwnLBNnLigTLEsbVBMXPBMuUlI4','r0vu','AM9PBG','ndCYmteXD1zStLPA','A2v5CW','icbUChGGyxb0lw1JCc1Hz2vUDc1Zzxr1CcbHy3rPDMf0zsaTlwTLEsa8teLdru5trv9lrvK+','sw52ywXPzcbSAwnLBNnLigTLEsbMB3jTyxq','C3rHDhvZq29Kzq','icbUChGGyxb0lw1JCc1Hz2vUDc1Zzxr1Ccb1CgrHDguGwY0TChjVAMvJDca8uefusd5DifSTlxjLyNvPBgqTAw5KzxHD','vxnLCJOGicaGicaGia','4Pwu4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwx','q29UDgvUDc1uExbL','ieLersHZksb1CgrHDgvKihn1y2nLC3nMDwXSEs4','uhjLC2v0oIaGicaGia'];_0x9077=function(){return _0x542313;};return _0x9077();}async function main(){const _0x187f04=_0x152fb6;if(process['argv'][_0x187f04(0x1b8)](_0x187f04(0x1d0))){const {EULA_TEXT:_0x45a816}=require(_0x187f04(0x1d4));console[_0x187f04(0x1e7)](_0x45a816);return;}if(process[_0x187f04(0x204)][_0x187f04(0x1b8)](_0x187f04(0x17f))){await handleNotices();return;}const {command:_0x44df6a,options:_0x39280f}=parseArgs();switch(_0x44df6a){case _0x187f04(0x1d0):const {EULA_TEXT:_0x5501bf}=require('../src/license/terms.js');console[_0x187f04(0x1e7)](_0x5501bf);break;case'--notices':await handleNotices();break;case _0x187f04(0x1da):handleInit();break;case'doctor':console[_0x187f04(0x1e7)](JSON[_0x187f04(0x1fb)](require(_0x187f04(0x169))['doctor'](_0x39280f[_0x187f04(0x20b)]||process[_0x187f04(0x17b)]()),null,0x2));break;case _0x187f04(0x15c):handleStatus();break;case _0x187f04(0x1f3):await handleInstall(_0x39280f);break;case'activate':await handleActivate(_0x39280f);break;case'update':await handleUpdate(_0x39280f);break;case _0x187f04(0x1dc):await runSetupWizard(_0x39280f[_0x187f04(0x20b)]||process[_0x187f04(0x17b)]());break;default:console[_0x187f04(0x1f0)](_0x187f04(0x1ed)+(_0x44df6a||'')),console[_0x187f04(0x1e7)](_0x187f04(0x1e5)),console[_0x187f04(0x1e7)](_0x187f04(0x1e1)),console['log']('\x20\x20npx\x20apt-mcp-agent-setup\x20status'),console['log'](_0x187f04(0x202)),console[_0x187f04(0x1e7)](_0x187f04(0x19a)),console[_0x187f04(0x1e7)](_0x187f04(0x1a5)),console[_0x187f04(0x1e7)](_0x187f04(0x1a2)),console[_0x187f04(0x1e7)](_0x187f04(0x159)),console[_0x187f04(0x1e7)](_0x187f04(0x1fc)),console[_0x187f04(0x1e7)]('\x20\x20npx\x20apt-mcp-agent-setup\x20--terms'),process[_0x187f04(0x1d6)](0x1);}}main()[_0x152fb6(0x1b5)](()=>{process['exit'](0x0);})[_0x152fb6(0x174)](_0x59c48f=>{const _0x54b3df=_0x152fb6;console[_0x54b3df(0x1f0)](_0x54b3df(0x1d8),_0x59c48f[_0x54b3df(0x1ae)]),process[_0x54b3df(0x1d6)](0x1);});
2
+ const _0x548baa=_0xac07;(function(_0x1726ee,_0x585824){const _0xd20e35=_0xac07,_0x200ea8=_0x1726ee();while(!![]){try{const _0x44e88b=-parseInt(_0xd20e35(0x1c4))/0x1*(parseInt(_0xd20e35(0x1aa))/0x2)+parseInt(_0xd20e35(0x180))/0x3+parseInt(_0xd20e35(0x1ab))/0x4+parseInt(_0xd20e35(0x1cb))/0x5*(-parseInt(_0xd20e35(0x184))/0x6)+parseInt(_0xd20e35(0x1d9))/0x7+parseInt(_0xd20e35(0x1ae))/0x8+-parseInt(_0xd20e35(0x178))/0x9*(parseInt(_0xd20e35(0x1b6))/0xa);if(_0x44e88b===_0x585824)break;else _0x200ea8['push'](_0x200ea8['shift']());}catch(_0x53c790){_0x200ea8['push'](_0x200ea8['shift']());}}}(_0x2c88,0x53b6c));const fs=require('fs'),path=require(_0x548baa(0x175)),os=require('os'),readline=require(_0x548baa(0x174)),http=require(_0x548baa(0x161)),https=require(_0x548baa(0x182)),{getFingerprint}=require(_0x548baa(0x1d0)),{verifyLicense}=require(_0x548baa(0x15a)),{checkPrerequisites}=require(_0x548baa(0x18b)),{installGlobalTools}=require(_0x548baa(0x1c6)),{deployProject,ensureStitchAuthentication}=require(_0x548baa(0x1a0)),{configureIDE,configureMultipleIDEs,detectInstalledIDEs}=require(_0x548baa(0x16b)),{runSetupWizard}=require(_0x548baa(0x166));function runtimeLauncher(_0x2805b5){const _0x52c183=_0x548baa,_0x3cebc2=path[_0x52c183(0x16a)](__dirname,'..');if(!fs[_0x52c183(0x1c3)](path[_0x52c183(0x19b)](_0x3cebc2,_0x52c183(0x13b))))return console[_0x52c183(0x1d2)](_0x52c183(0x18e)),path[_0x52c183(0x19b)](_0x3cebc2,'src/proxy/server.js');const _0xb6ea5={};return _0xb6ea5[_0x52c183(0x135)]=_0x2805b5,require(_0x52c183(0x1e1))['installRuntime'](_0x3cebc2,_0xb6ea5)[_0x52c183(0x19a)];}function parseArgs(){const _0x7f493e=_0x548baa,_0x1a3c89=process[_0x7f493e(0x167)]['slice'](0x2),_0x62425c=_0x1a3c89[0x0],_0x280b1c={};for(let _0x57776e=0x1;_0x57776e<_0x1a3c89[_0x7f493e(0x1da)];_0x57776e++){if(_0x1a3c89[_0x57776e]===_0x7f493e(0x1ba)||_0x1a3c89[_0x57776e]==='-k')_0x280b1c[_0x7f493e(0x18d)]=_0x1a3c89[_0x57776e+0x1],_0x57776e++;else{if(_0x1a3c89[_0x57776e]===_0x7f493e(0x187)||_0x1a3c89[_0x57776e]==='-p')_0x280b1c[_0x7f493e(0x186)]=_0x1a3c89[_0x57776e+0x1],_0x57776e++;else{if(_0x1a3c89[_0x57776e]===_0x7f493e(0x183))_0x280b1c[_0x7f493e(0x143)]=_0x1a3c89[_0x57776e+0x1],_0x57776e++;else _0x1a3c89[_0x57776e]===_0x7f493e(0x18f)&&(_0x280b1c[_0x7f493e(0x1d1)]=!![]);}}}const _0xf12833={};return _0xf12833[_0x7f493e(0x1be)]=_0x62425c,_0xf12833[_0x7f493e(0x1bc)]=_0x280b1c,_0xf12833;}function getPublicKey(){const _0x364478=_0x548baa;if(process.env.MCP_ADMIN_DIR){const _0x146740=path[_0x364478(0x19b)](process.env.MCP_ADMIN_DIR,'master.public.pem');if(fs['existsSync'](_0x146740))return fs['readFileSync'](_0x146740,_0x364478(0x192))[_0x364478(0x1ca)]();}let _0x15073b=path['join'](__dirname,_0x364478(0x134));if(fs[_0x364478(0x1c3)](_0x15073b))return fs[_0x364478(0x1b7)](_0x15073b,_0x364478(0x192))[_0x364478(0x1ca)]();_0x15073b=path[_0x364478(0x19b)](__dirname,_0x364478(0x1d3));if(fs[_0x364478(0x1c3)](_0x15073b))return fs[_0x364478(0x1b7)](_0x15073b,'utf8')[_0x364478(0x1ca)]();return null;}function handleInit(){const _0x5570ac=_0x548baa,_0x7d67e5=getFingerprint();console[_0x5570ac(0x172)]('Your\x20Device\x20ID:\x20'+_0x7d67e5);}function handleStatus(){const _0x55767a=_0x548baa,_0x14ff93=path[_0x55767a(0x19b)](os[_0x55767a(0x1cc)](),_0x55767a(0x14b),_0x55767a(0x153));let _0x3adca4;try{_0x3adca4=fs[_0x55767a(0x1b7)](_0x14ff93,_0x55767a(0x192))['trim']();}catch(_0x5d4dca){console[_0x55767a(0x13a)](_0x55767a(0x142)),process[_0x55767a(0x12f)](0x1);return;}const _0x2401e6=getFingerprint(),_0x2e9b66=getPublicKey(),_0x2de64b=verifyLicense(_0x3adca4,_0x2401e6,_0x2e9b66);!_0x2de64b[_0x55767a(0x16f)]&&(console[_0x55767a(0x13a)](_0x55767a(0x154)+_0x2de64b[_0x55767a(0x188)]),process[_0x55767a(0x12f)](0x1));const _0x448af3=_0x2de64b[_0x55767a(0x1a6)];console[_0x55767a(0x172)](_0x55767a(0x1d6)),console[_0x55767a(0x172)](_0x55767a(0x1b8)),console[_0x55767a(0x172)](_0x55767a(0x1eb)),console[_0x55767a(0x172)](_0x55767a(0x1b2)+_0x448af3[_0x55767a(0x1bf)]),console[_0x55767a(0x172)]('Preset:\x20\x20\x20\x20\x20\x20'+_0x448af3['preset']),console[_0x55767a(0x172)](_0x55767a(0x1d4)+_0x448af3[_0x55767a(0x13e)]),console[_0x55767a(0x172)](_0x55767a(0x159)+new Date(_0x448af3[_0x55767a(0x177)])[_0x55767a(0x189)]());}function extractKeyId(_0x4ed982){const _0x3751bf=_0x548baa;try{const _0x174800=_0x4ed982[_0x3751bf(0x17c)]('.'),_0x225a2d=JSON[_0x3751bf(0x128)](Buffer['from'](_0x174800[0x1],'base64url')[_0x3751bf(0x149)]('utf8'));return _0x225a2d[_0x3751bf(0x150)]||_0x225a2d['key_id'];}catch(_0x2b9da3){return null;}}function _0xac07(_0x5949a4,_0x5a1b27){_0x5949a4=_0x5949a4-0x121;const _0x2c88a6=_0x2c88();let _0xac07a4=_0x2c88a6[_0x5949a4];if(_0xac07['GEYzNT']===undefined){var _0x36fcfd=function(_0x211037){const _0x1521bf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3b7da2='',_0x163686='';for(let _0x742981=0x0,_0x1e6a5f,_0x335d94,_0x1a01f9=0x0;_0x335d94=_0x211037['charAt'](_0x1a01f9++);~_0x335d94&&(_0x1e6a5f=_0x742981%0x4?_0x1e6a5f*0x40+_0x335d94:_0x335d94,_0x742981++%0x4)?_0x3b7da2+=String['fromCharCode'](0xff&_0x1e6a5f>>(-0x2*_0x742981&0x6)):0x0){_0x335d94=_0x1521bf['indexOf'](_0x335d94);}for(let _0x1111fb=0x0,_0x8c3f5f=_0x3b7da2['length'];_0x1111fb<_0x8c3f5f;_0x1111fb++){_0x163686+='%'+('00'+_0x3b7da2['charCodeAt'](_0x1111fb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x163686);};_0xac07['UDhIfA']=_0x36fcfd,_0xac07['zWpzrg']={},_0xac07['GEYzNT']=!![];}const _0x5b7ef4=_0x2c88a6[0x0],_0x461378=_0x5949a4+_0x5b7ef4,_0x3d6f03=_0xac07['zWpzrg'][_0x461378];return!_0x3d6f03?(_0xac07a4=_0xac07['UDhIfA'](_0xac07a4),_0xac07['zWpzrg'][_0x461378]=_0xac07a4):_0xac07a4=_0x3d6f03,_0xac07a4;}function httpRequest(_0x1ab13a,_0x3bf852={}){return new Promise((_0x3ba99c,_0xf83445)=>{const _0x1f9c46=_0xac07;try{const _0x15983d=new URL(_0x1ab13a),_0x11cc32=_0x15983d[_0x1f9c46(0x1a8)]==='https:'?https:http,_0xa8a641={'User-Agent':_0x1f9c46(0x1bb)+process[_0x1f9c46(0x17e)]+')',..._0x3bf852[_0x1f9c46(0x197)]},_0x14661d=_0xa8a641;if(_0x3bf852[_0x1f9c46(0x1df)]){const _0x2e3a2c=typeof _0x3bf852[_0x1f9c46(0x1df)]===_0x1f9c46(0x12c)?_0x3bf852[_0x1f9c46(0x1df)]:JSON[_0x1f9c46(0x1b9)](_0x3bf852['body']);!_0x14661d['Content-Length']&&!_0x14661d[_0x1f9c46(0x127)]&&(_0x14661d[_0x1f9c46(0x1a2)]=Buffer[_0x1f9c46(0x13c)](_0x2e3a2c));}const _0xe8a39f={};_0xe8a39f[_0x1f9c46(0x144)]=_0x3bf852[_0x1f9c46(0x144)]||_0x1f9c46(0x1e7),_0xe8a39f[_0x1f9c46(0x129)]=_0x15983d['hostname'],_0xe8a39f['port']=_0x15983d[_0x1f9c46(0x185)]||(_0x15983d[_0x1f9c46(0x1a8)]===_0x1f9c46(0x19f)?0x1bb:0x50),_0xe8a39f[_0x1f9c46(0x175)]=_0x15983d[_0x1f9c46(0x193)]+_0x15983d['search'],_0xe8a39f['headers']=_0x14661d;const _0x3b968f=_0xe8a39f,_0xd989f5=_0x11cc32[_0x1f9c46(0x1c5)](_0x3b968f,_0x3da60b=>{const _0xc91737=_0x1f9c46;let _0x197002='';_0x3da60b['on'](_0xc91737(0x17b),_0x496611=>{_0x197002+=_0x496611;}),_0x3da60b['on'](_0xc91737(0x155),()=>{const _0x430958=_0xc91737;_0x3ba99c({'ok':_0x3da60b[_0x430958(0x190)]>=0xc8&&_0x3da60b[_0x430958(0x190)]<0x12c,'status':_0x3da60b[_0x430958(0x190)],'json':async()=>JSON[_0x430958(0x128)](_0x197002),'text':async()=>_0x197002});});});_0xd989f5['on']('error',_0x59871b=>{_0xf83445(_0x59871b);}),_0x3bf852[_0x1f9c46(0x1df)]&&_0xd989f5[_0x1f9c46(0x15e)](_0x3bf852[_0x1f9c46(0x1df)]),_0xd989f5[_0x1f9c46(0x155)]();}catch(_0x5b25d1){_0xf83445(_0x5b25d1);}});}async function activateLicense(_0x583e89,_0x1cd12f){const _0x3520a9=_0x548baa,_0x4d41fa=extractKeyId(_0x583e89);if(!_0x4d41fa)throw new Error(_0x3520a9(0x164));const _0x4b05bc=process.env.MCP_ACTIVATION_URL||_0x3520a9(0x1ce),_0x1050b3=_0x4b05bc+_0x3520a9(0x162),_0x2e9dd0={};_0x2e9dd0['Content-Type']='application/json';const _0x1eba73={};_0x1eba73[_0x3520a9(0x170)]=_0x4d41fa,_0x1eba73[_0x3520a9(0x14c)]=_0x1cd12f;const _0x4d804b=await httpRequest(_0x1050b3,{'method':_0x3520a9(0x17a),'headers':_0x2e9dd0,'body':JSON[_0x3520a9(0x1b9)](_0x1eba73)});if(!_0x4d804b['ok']){let _0x3fcb49='Server\x20returned\x20status\x20'+_0x4d804b[_0x3520a9(0x16d)];try{const _0x4da9eb=await _0x4d804b[_0x3520a9(0x1e9)]();if(_0x4da9eb&&_0x4da9eb[_0x3520a9(0x13a)])_0x3fcb49=_0x4da9eb[_0x3520a9(0x13a)];}catch(_0x519a06){}throw new Error(_0x3fcb49);}const _0x39f163=await _0x4d804b[_0x3520a9(0x1e9)]();if(!_0x39f163||!_0x39f163[_0x3520a9(0x1de)])throw new Error(_0x3520a9(0x1af));return _0x39f163[_0x3520a9(0x1de)];}async function handleActivate(_0x39759d){const _0x4ba18a=_0x548baa,_0x233bb7=_0x39759d[_0x4ba18a(0x18d)];!_0x233bb7&&(console[_0x4ba18a(0x13a)]('Error:\x20Missing\x20required\x20argument\x20--key'),console[_0x4ba18a(0x172)](_0x4ba18a(0x1d7)),console['log']('\x20\x20node\x20bin/cli.js\x20activate\x20--key\x20<LICENSE_KEY>'),process[_0x4ba18a(0x12f)](0x1));const _0x317114=getFingerprint(),_0x1396bf=getPublicKey(),_0x26efe4=verifyLicense(_0x233bb7,null,_0x1396bf);!_0x26efe4[_0x4ba18a(0x16f)]&&(console[_0x4ba18a(0x13a)]('License\x20verification\x20failed:\x20'+_0x26efe4['reason']),process[_0x4ba18a(0x12f)](0x1));try{console['log'](_0x4ba18a(0x1dc));const _0x91a2f2=await activateLicense(_0x233bb7,_0x317114),_0x1742e7=path[_0x4ba18a(0x19b)](os['homedir'](),_0x4ba18a(0x14b),_0x4ba18a(0x153)),_0x421349={};_0x421349[_0x4ba18a(0x1c8)]=!![],fs[_0x4ba18a(0x124)](path[_0x4ba18a(0x151)](_0x1742e7),_0x421349),fs['writeFileSync'](_0x1742e7,_0x91a2f2,_0x4ba18a(0x192)),console[_0x4ba18a(0x172)](_0x4ba18a(0x12b)+_0x1742e7);}catch(_0x549b63){console[_0x4ba18a(0x13a)](_0x4ba18a(0x1e4)+_0x549b63['message']),process['exit'](0x1);}}function askQuestion(_0x293831){const _0xcaf4cd=_0x548baa,_0x32da51={};_0x32da51[_0xcaf4cd(0x15c)]=process[_0xcaf4cd(0x195)],_0x32da51[_0xcaf4cd(0x138)]=process[_0xcaf4cd(0x136)];const _0x3fdc5c=readline[_0xcaf4cd(0x15b)](_0x32da51);return new Promise(_0x828f3d=>_0x3fdc5c[_0xcaf4cd(0x19d)](_0x293831,_0x16a23b=>{const _0x2fef69=_0xcaf4cd;_0x3fdc5c['close'](),process['stdin'][_0x2fef69(0x1b3)](),_0x828f3d(_0x16a23b);}));}async function handleInstall(_0x18ec94){const _0x395521=_0x548baa,_0x390993=_0x18ec94[_0x395521(0x18d)];if(!_0x390993){console[_0x395521(0x13a)](_0x395521(0x1b0)),console[_0x395521(0x172)](_0x395521(0x1d7)),console[_0x395521(0x172)](_0x395521(0x1b4)),process[_0x395521(0x12f)](0x1);return;}console[_0x395521(0x172)]('By\x20continuing,\x20you\x20agree\x20to\x20the\x20Terms\x20of\x20Service\x20at\x20https://agentkit.alphatechs.ai/terms.');const _0x1079ce=await askQuestion(_0x395521(0x1e2));if(_0x1079ce[_0x395521(0x1ca)]()[_0x395521(0x176)]()!==_0x395521(0x131)){console[_0x395521(0x13a)](_0x395521(0x18c)),process['exit'](0x1);return;}const _0x1ae6d6=extractKeyId(_0x390993),_0x941e94=path['join'](os[_0x395521(0x1cc)](),_0x395521(0x14b),_0x395521(0x191)),_0x2f4622=new Date()[_0x395521(0x189)]()+_0x395521(0x123)+(_0x1ae6d6||_0x395521(0x1a3))+'\x20|\x20Accepted\x20Terms\x20of\x20Service\x0a';try{const _0x3f1cac={};_0x3f1cac[_0x395521(0x1c8)]=!![],fs[_0x395521(0x124)](path[_0x395521(0x151)](_0x941e94),_0x3f1cac),fs[_0x395521(0x141)](_0x941e94,_0x2f4622,_0x395521(0x192));}catch(_0x5e0e77){console['warn'](_0x395521(0x173)+_0x5e0e77['message']);}const _0x33469e=getFingerprint(),_0x20d492=getPublicKey(),_0x5a7a2a=verifyLicense(_0x390993,null,_0x20d492);!_0x5a7a2a['valid']&&(console[_0x395521(0x13a)](_0x395521(0x1e5)+_0x5a7a2a[_0x395521(0x188)]),process[_0x395521(0x12f)](0x1));let _0x1c3d6a;try{console[_0x395521(0x172)]('Activating\x20license\x20key\x20online...'),_0x1c3d6a=await activateLicense(_0x390993,_0x33469e);}catch(_0x3b6726){console[_0x395521(0x13a)](_0x395521(0x12d)+_0x3b6726[_0x395521(0x126)]),process[_0x395521(0x12f)](0x1);}const _0x27a9c5=verifyLicense(_0x1c3d6a,_0x33469e,_0x20d492);!_0x27a9c5[_0x395521(0x16f)]&&(console['error'](_0x395521(0x17f)+_0x27a9c5[_0x395521(0x188)]),process[_0x395521(0x12f)](0x1));const _0x30b276=checkPrerequisites();!_0x30b276[_0x395521(0x1d8)]&&(console[_0x395521(0x13a)](_0x395521(0x165)),_0x30b276[_0x395521(0x181)][_0x395521(0x14f)](_0xcf7b9b=>console[_0x395521(0x13a)]('-\x20'+_0xcf7b9b)),process[_0x395521(0x12f)](0x1));try{installGlobalTools();}catch(_0x1c0817){console['error']('Global\x20tools\x20installation\x20failed:\x20'+_0x1c0817[_0x395521(0x126)]),process[_0x395521(0x12f)](0x1);}const _0x25e1e0=_0x18ec94[_0x395521(0x143)]||process[_0x395521(0x171)](),_0x55ec5a=_0x18ec94[_0x395521(0x186)]||_0x27a9c5[_0x395521(0x1a6)]['preset'],_0x2db364=runtimeLauncher(_0x20d492);try{deployProject({'licenseKey':_0x1c3d6a,'projectPath':_0x25e1e0,'presetName':_0x55ec5a,'deviceId':_0x33469e,'masterSecret':_0x20d492,'runtimeLauncherPath':_0x2db364,'bundleDir':path[_0x395521(0x19b)](__dirname,_0x395521(0x122))});}catch(_0x11c22f){console[_0x395521(0x13a)](_0x395521(0x14e)+_0x11c22f[_0x395521(0x126)]),process[_0x395521(0x12f)](0x1);}try{console['log']('\x0aScanning\x20for\x20installed\x20AI-powered\x20IDEs...');const _0x46d3d0=detectInstalledIDEs(),_0x14222f=[],_0xe38b80=[];for(const [_0x2d655c,_0x34761c]of Object['entries'](_0x46d3d0)){_0x34761c['detected']?(_0x14222f['push'](_0x2d655c),console['log']('\x20\x20✅\x20'+_0x34761c[_0x395521(0x19c)]+_0x395521(0x148)+_0x34761c['method'])):(_0xe38b80[_0x395521(0x14d)](_0x2d655c),console[_0x395521(0x172)]('\x20\x20❌\x20'+_0x34761c['displayName']+'\x20—\x20Not\x20found'));}let _0x220387=_0x14222f;if(_0x14222f[_0x395521(0x1da)]>0x0){console[_0x395521(0x172)](_0x395521(0x1cd)+_0x14222f['map'](_0x15bb4e=>_0x46d3d0[_0x15bb4e][_0x395521(0x19c)])[_0x395521(0x19b)](',\x20'));const _0x41b2ed=await askQuestion('Confirm?\x20[Y/n/edit]\x20(default:\x20Y):\x20'),_0x23b051=_0x41b2ed[_0x395521(0x1ca)]()[_0x395521(0x176)]();if(_0x23b051==='n'||_0x23b051==='no')console['log'](_0x395521(0x14a)),_0x220387=[];else{if(_0x23b051===_0x395521(0x125)){const _0x4a3c07=Object[_0x395521(0x160)](_0x46d3d0);console[_0x395521(0x172)](_0x395521(0x13d)),_0x4a3c07[_0x395521(0x14f)](([_0x1856ee,_0x4296c6],_0x5807ce)=>{const _0x220d20=_0x395521,_0x28025b=_0x4296c6[_0x220d20(0x1a1)]?'✅':'❌';console['log']('\x20\x20'+(_0x5807ce+0x1)+')\x20'+_0x28025b+'\x20'+_0x4296c6[_0x220d20(0x19c)]);});const _0x4d82fd=await askQuestion(_0x395521(0x1ea));_0x220387=_0x4d82fd['split'](',')[_0x395521(0x1db)](_0xf2eeae=>{const _0x2cf5de=parseInt(_0xf2eeae['trim'](),0xa)-0x1;return _0x4a3c07[_0x2cf5de]?_0x4a3c07[_0x2cf5de][0x0]:null;})['filter'](Boolean);}}}else console['log'](_0x395521(0x1bd)),console[_0x395521(0x172)]('You\x20can\x20manually\x20configure\x20later\x20with:\x20npx\x20apt-mcp-agent-setup\x20setup');if(_0x220387[_0x395521(0x1da)]>0x0){const _0x10e714=configureMultipleIDEs(_0x220387,_0x2db364),_0x4afbd0=_0x10e714[_0x395521(0x1a5)](_0x8332a7=>_0x8332a7[_0x395521(0x1d8)])['length'];console[_0x395521(0x172)]('\x0a'+_0x4afbd0+'/'+_0x220387[_0x395521(0x1da)]+_0x395521(0x139));}}catch(_0x39038f){console[_0x395521(0x1d2)](_0x395521(0x12e)+_0x39038f[_0x395521(0x126)]);try{configureIDE(_0x395521(0x1a4),_0x2db364),configureIDE(_0x395521(0x1c9),_0x2db364);}catch(_0x4564a0){console[_0x395521(0x1d2)]('Warning:\x20Fallback\x20IDE\x20configuration\x20also\x20failed:\x20'+_0x4564a0[_0x395521(0x126)]);}}const _0x1a90c4=path[_0x395521(0x19b)](os[_0x395521(0x1cc)](),_0x395521(0x14b),_0x395521(0x153));try{const _0x4ecabb={};_0x4ecabb[_0x395521(0x1c8)]=!![],fs['mkdirSync'](path['dirname'](_0x1a90c4),_0x4ecabb),fs['writeFileSync'](_0x1a90c4,_0x1c3d6a,_0x395521(0x192)),console[_0x395521(0x172)](_0x395521(0x1c7)+_0x1a90c4);}catch(_0x22fa6b){console[_0x395521(0x13a)](_0x395521(0x12a)+_0x22fa6b[_0x395521(0x126)]),process[_0x395521(0x12f)](0x1);}console[_0x395521(0x172)]('Installation\x20completed\x20successfully!'),console['log'](''),console[_0x395521(0x172)]('💡\x20Tip:\x20Run\x20`npx\x20apt-mcp-agent-setup\x20setup`\x20to\x20customize\x20your\x20issue\x20tracker,'),console[_0x395521(0x172)](_0x395521(0x1e0));}async function handleUpdate(_0x532c2c){const _0xba4c6a=_0x548baa,_0x5b3af1=path[_0xba4c6a(0x19b)](os[_0xba4c6a(0x1cc)](),_0xba4c6a(0x14b),_0xba4c6a(0x153));let _0x1c6cb7;try{_0x1c6cb7=fs['readFileSync'](_0x5b3af1,_0xba4c6a(0x192))[_0xba4c6a(0x1ca)]();}catch(_0x892c5f){console[_0xba4c6a(0x13a)]('License\x20key\x20not\x20found.\x20Please\x20run\x20\x22install\x22\x20first:'),console['log'](_0xba4c6a(0x1ad)),process[_0xba4c6a(0x12f)](0x1);return;}const _0x49aadc=getFingerprint(),_0x2d4045=getPublicKey(),_0x438f48=verifyLicense(_0x1c6cb7,_0x49aadc,_0x2d4045);if(!_0x438f48[_0xba4c6a(0x16f)]){_0x438f48[_0xba4c6a(0x188)]&&_0x438f48[_0xba4c6a(0x188)][_0xba4c6a(0x121)](_0xba4c6a(0x18a))?console[_0xba4c6a(0x13a)]('License\x20key\x20has\x20expired.\x20Contact\x20your\x20Admin\x20for\x20a\x20new\x20key.'):console[_0xba4c6a(0x13a)](_0xba4c6a(0x1e5)+_0x438f48[_0xba4c6a(0x188)]);process[_0xba4c6a(0x12f)](0x1);return;}const _0x4c44af=_0x438f48[_0xba4c6a(0x1a6)],_0x9e3823=_0x532c2c[_0xba4c6a(0x143)]||process[_0xba4c6a(0x171)](),_0x4d38cf=_0x532c2c[_0xba4c6a(0x186)]||_0x4c44af['preset'],_0x5759d4=path[_0xba4c6a(0x19b)](_0x9e3823,_0xba4c6a(0x145),_0xba4c6a(0x1a7));if(!fs[_0xba4c6a(0x1c3)](_0x5759d4)){console[_0xba4c6a(0x13a)](_0xba4c6a(0x16c)),console['log']('Run\x20\x22install\x22\x20first\x20to\x20set\x20up\x20this\x20project:'),console['log']('\x20\x20npx\x20apt-mcp-agent-setup\x20install\x20--key\x20<LICENSE_KEY>\x20--project\x20\x22'+_0x9e3823+'\x22'),process[_0xba4c6a(0x12f)](0x1);return;}console[_0xba4c6a(0x172)](_0xba4c6a(0x1c1)),console[_0xba4c6a(0x172)](_0xba4c6a(0x199)),console[_0xba4c6a(0x172)]('╚══════════════════════════════════════════╝'),console[_0xba4c6a(0x172)](_0xba4c6a(0x1e8)+_0x4c44af[_0xba4c6a(0x1bf)]),console[_0xba4c6a(0x172)](_0xba4c6a(0x1e6)+_0x4d38cf),console[_0xba4c6a(0x172)]('Project:\x20'+_0x9e3823),console[_0xba4c6a(0x172)]('');try{installGlobalTools();}catch(_0x51d503){console[_0xba4c6a(0x13a)]('Global\x20tools\x20update\x20failed:\x20'+_0x51d503[_0xba4c6a(0x126)]),process[_0xba4c6a(0x12f)](0x1);}const _0x87d441=runtimeLauncher(_0x2d4045);try{const _0x1adc85=deployProject({'licenseKey':_0x1c6cb7,'projectPath':_0x9e3823,'presetName':_0x4d38cf,'deviceId':_0x49aadc,'masterSecret':_0x2d4045,'runtimeLauncherPath':_0x87d441,'bundleDir':path[_0xba4c6a(0x19b)](__dirname,_0xba4c6a(0x122)),'isUpdate':!![],'rebuildIndex':_0x532c2c[_0xba4c6a(0x1d1)]||![]});if(_0x532c2c[_0xba4c6a(0x1d1)]){if(_0x1adc85[_0xba4c6a(0x169)]?.[_0xba4c6a(0x16d)]!==_0xba4c6a(0x132))process['exitCode']=0x2;}}catch(_0x20a400){console[_0xba4c6a(0x13a)](_0xba4c6a(0x15f)+_0x20a400[_0xba4c6a(0x126)]),process[_0xba4c6a(0x12f)](0x1);}const _0x3be241={};_0x3be241[_0xba4c6a(0x198)]=_0x4d38cf,ensureStitchAuthentication(_0x3be241);try{console[_0xba4c6a(0x172)]('\x0aUpdating\x20global\x20IDE\x20configurations\x20to\x20use\x20the\x20new\x20proxy\x20version...');const _0x2f2a66=detectInstalledIDEs(),_0x5e0ec3=Object[_0xba4c6a(0x19e)](_0x2f2a66)[_0xba4c6a(0x1a5)](_0x47c62e=>_0x2f2a66[_0x47c62e][_0xba4c6a(0x1a1)]);if(_0x5e0ec3['length']>0x0){const _0x5686a9=configureMultipleIDEs(_0x5e0ec3,_0x87d441),_0xf4f77b=_0x5686a9[_0xba4c6a(0x1a5)](_0xa7c71e=>_0xa7c71e[_0xba4c6a(0x1d8)])['length'];console[_0xba4c6a(0x172)]('\x20\x20'+_0xf4f77b+'/'+_0x5e0ec3[_0xba4c6a(0x1da)]+'\x20IDE(s)\x20updated\x20successfully.');}}catch(_0x1c8b08){console[_0xba4c6a(0x1d2)](_0xba4c6a(0x196)+_0x1c8b08[_0xba4c6a(0x126)]);}console['log'](''),console[_0xba4c6a(0x172)](_0xba4c6a(0x16e));}async function handleNotices(){const _0xc40ac4=_0x548baa,{decrypt:_0x3eb35a}=require(_0xc40ac4(0x179)),_0x270832=path[_0xc40ac4(0x19b)](__dirname,_0xc40ac4(0x140));if(!fs['existsSync'](_0x270832)){console['error'](_0xc40ac4(0x146)),process[_0xc40ac4(0x12f)](0x1);return;}try{const _0x21c095=fs[_0xc40ac4(0x1b7)](_0x270832),_0x590caf=_0x3eb35a(_0x21c095,_0xc40ac4(0x1a9));console[_0xc40ac4(0x172)](_0x590caf[_0xc40ac4(0x149)](_0xc40ac4(0x192)));}catch(_0x1ca7d5){console[_0xc40ac4(0x13a)](_0xc40ac4(0x130),_0x1ca7d5[_0xc40ac4(0x126)]),process[_0xc40ac4(0x12f)](0x1);}}function _0x2c88(){const _0x26e5a1=['CxvLC3rPB24','A2v5CW','Ahr0Chm6','lI4VC3jJl2LUC3rHBgXLCI9WCM9Qzwn0lxnLDhvWlMPZ','zgv0zwn0zwq','q29UDgvUDc1mzw5NDgG','Dw5RBM93BG','yw50AwDYyxzPDhK','zMLSDgvY','Cgf5Bg9Hza','BwfUAwzLC3qUANnVBG','ChjVDg9JB2W','yw5OzgGTB3bLBI1ZB3vYy2uTyxr0CMLIDxrPB25Z','mJiYntHzBuTwy3m','mta5nZq0nfbxwg9Xva','icbUChGGyxb0lw1JCc1Hz2vUDc1Zzxr1CcbPBML0','icbUChGGyxb0lw1JCc1Hz2vUDc1Zzxr1CcbPBNn0ywXSic0TA2v5idXmsunftLnfx0Tfwt4','ndKYntyZmLPIu0PRvq','u2vYDMvYihjLC3bVBNnLig1PC3nPBMCGDg9Rzw4','rxjYB3i6ie1PC3nPBMCGCMvXDwLYzwqGyxjNDw1LBNqGls1RzxK','DgHLBG','vxnLCJOGicaGicaGia','Cgf1C2u','icbUB2rLigjPBI9JBgKUANmGAw5ZDgfSBcaTlwTLEsa8teLdru5trv9lrvK+ifSTlxbYzxnLDca8ufjfu0vupL0GwY0TChjVAMvJDca8uefusd5D','DxbKyxrL','nteWtfriqvb2','CMvHzezPBgvtEw5J','pt09pt09pt09pt09pt09pt09pt09pt09pt09pt09pt0','C3rYAw5NAwz5','ls1RzxK','tw96AwXSys81lJaGkgnVBxbHDgLIBgu7ie5VzguV','B3b0Aw9UCW','cK5ViefjlxbVD2vYzwqGsurfCYbKzxrLy3rLzc4Gu2TPChbPBMCGz2XVyMfSieLersbJB25MAwD1CMf0Aw9UlG','y29TBwfUza','DxnLCG','icbUChGGyxb0lw1JCc1Hz2vUDc1Zzxr1CcbHy3rPDMf0zsaTlwTLEsa8teLdru5trv9lrvK+','4Pwu4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwx','zxHPDenVzgu','zxHPC3rZu3LUyW','ndDgBeXqvLi','CMvXDwvZDa','lI4VC3jJl2LUC3rHBgXLCI9NBg9IywWTC2v0DxaUANm','tgLJzw5ZzsbRzxKGC2f2zwqGDg86ia','CMvJDxjZAxzL','y2XHDwrL','DhjPBq','mZyZnvbLsfHjzq','Ag9TzwrPCG','cLDPBgWGy29UzMLNDxjLie1ducbMB3i6ia','Ahr0Chm6lY9Hz2vUDgTPDc5HBhbOyxrLy2HZlMfPl2fWAq','vw5RBM93BIbJB21Tyw5KoIa','lI4VC3jJl2XPy2vUC2uVzMLUz2vYChjPBNqUANm','CMvIDwLSzeLUzgv4','D2fYBG','lI4VlI4VywrTAw4VBwfZDgvYlNb1yMXPyY5Wzw0','rgv2AwnLieLeoIaGia','icbUChGGyxb0lw1JCc1Hz2vUDc1Zzxr1CcbZDgf0Dxm','qMfZzsbnq1aGquKGqwDLBNqG4OcuifnLDhvWifn0yxr1CW','vxnHz2u6','C3vJy2vZCW','mZq3nZKYmLfovwLfyq','BgvUz3rO','BwfW','qwn0AxzHDgLUzYbSAwnLBNnLigTLEsbVBMXPBMuUlI4','Aw5PDa','Dg9Rzw4','yM9KEq','icaGDhjPywDLigXHyMvSCYWGyw5KigrVBwfPBIbKB2nZigXHEw91DcbMB3iGDgHPCYbWCM9Qzwn0lG','lI4VC3jJl2LUC3rHBgXLCI9YDw50Aw1Llxn0B3jL','vhLWzsaNEwvZjYb0BYbHy2nLChq6ia','cLvZywDLoG','qwn0AxzHDgLVBIbMywLSzwq6ia','tgLJzw5Zzsb2zxjPzMLJyxrPB24GzMfPBgvKoIa','uhjLC2v0oIaG','r0vu','vxnLCJOGicaG','ANnVBG','q2HVB3nLoIa','u3rHDhvZoIaGicaGifzHBgLKic8Gqwn0AxzL','Aw5JBhvKzxm','lI4VyNvUzgXL','ihWGs2v5oIa','BwTKAxjtEw5J','zwrPDa','BwvZC2fNzq','y29UDgvUDc1Szw5NDgG','CgfYC2u','Ag9ZDg5HBwu','rMfPBgvKihrVihnHDMuGBgLJzw5ZzsbRzxKGzMLSztOG','tgLJzw5ZzsbRzxKGywn0AxzHDgvKigfUzcbZyxzLzcb0BZOG','C3rYAw5N','t25SAw5LigfJDgL2yxrPB24GzMfPBgvKoIa','v2fYBMLUzZOGsurfigf1Dg8Tzgv0zwn0Aw9UigzHAwXLzdOG','zxHPDa','rMfPBgvKihrVigrLy3j5ChqGyxr0CMLIDxrPB25ZoG','EwvZ','yNvPBhq','ls1UB3rPy2vZ','lI4VywrTAw4VBwfZDgvYlNb1yMXPyY5Wzw0','ChvIBgLJs2v5','C3rKB3v0','y2f0y2G','B3v0Chv0','ieLersHZksbJB25MAwD1CMvKihn1y2nLC3nMDwXSEs4','zxjYB3i','Aw50zwDYAxr5lw1HBMLMzxn0lMPZB24','yNL0zuXLBMD0Aa','cLnLBgvJDcbjrevZihrVignVBMzPz3vYzsaOy29TBweTC2vWyxjHDgvKig51BwjLCNmPoG','zgv2AwnL','lI4VC3jJl2nVCMuVzg9JDg9Y','lI4VyNvUzgXLl05pveLdrvmUBwq','yxbWzw5KrMLSzvn5BMm','tgLJzw5ZzsbRzxKGzMLSzsbUB3qGzM91BMq','ChjVAMvJDa','Bwv0Ag9K','lMfNzw50CW','qxr0CMLIDxrPB25ZigzPBguGke5pveLdrvmUBwqPig5VDcbMB3vUzc4','Aw5ZDgfSBa','iokaLca','Dg9tDhjPBMC','u2TPChbPBMCGsurfignVBMzPz3vYyxrPB24U','lMfUAgrO','zMLUz2vYChjPBNq','ChvZAa','uhjVAMvJDcbZzxr1CcbKzxbSB3LTzw50igzHAwXLzdOG','zM9YrwfJAa','A2v5swq','zgLYBMfTzq','icbUChGGyxb0lw1JCc1Hz2vUDc1Zzxr1CcaTlw5VDgLJzxm','BgLJzw5Zzs5RzxK','tgLJzw5ZzsbRzxKGDMvYAwzPy2f0Aw9UigzHAwXLzdOG','zw5K','zg9JDg9Y','icbUChGGyxb0lw1JCc1Hz2vUDc1Zzxr1CcbZzxr1CcbBls1WCM9Qzwn0idXqqvripL0','ls10zxjTCW','rxHWAxjLCZOGicaGia','lI4VC3jJl2XPy2vUC2uVDMvYAwz5lMPZ','y3jLyxrLsw50zxjMywnL','Aw5WDxq','lI4VC3jJl2XPy2vUC2uVDgvYBxmUANm','D3jPDgu','vxbKyxrLigzHAwXLzdOG','zw50CMLLCW','Ahr0Ca','l2fJDgL2yxrL','q0Xjigv4zwn1DgLVBIbLCNjVCJO','sw52ywXPzcbSAwnLBNnLigTLEsbMB3jTyxq','uhjLCMvXDwLZAxrLCYbJAgvJAYbMywLSzwq6','lI4VC3jJl2LUC3rHBgXLCI9Zzxr1Cc13AxPHCMqUANm','yxjNDG','C2v0Dxa','Aw5KzxHtzxr1Ca','CMvZB2X2zq','lI4VC3jJl2LUC3rHBgXLCI9WBgf0zM9YBs1JB25MAwCUANm','tM8GChjLDMLVDxmGAw5ZDgfSBgf0Aw9UigzVDw5KigLUihrOAxmGChjVAMvJDc4','C3rHDhvZ','8j+sOsbuAxa6ifj1BIaIBNb4igfWDc1Ty3aTywDLBNqTC2v0DxaGC2v0DxaIihrVihjLy29UzMLNDxjLihbYB2PLy3qGC2v0DgLUz3mU','DMfSAwq','A2v5x2LK','y3DK','Bg9N','v2fYBMLUzZOGrMfPBgvKihrVigXVzYbfvuXbigfJy2vWDgfUy2u6ia','CMvHzgXPBMu','Cgf0Aa','Dg9mB3DLCKnHC2u','zxHW','mtaZmtq5qu91CLvi','lI4VC3jJl2XPy2vUC2uVy3j5ChrVlMPZ','ue9tva','zgf0yq','C3bSAxq','icbUChGGyxb0lw1JCc1Hz2vUDc1Zzxr1CcaTlxrLCM1Z','DMvYC2LVBG','qwn0AxzHDgvKihrVA2vUihzHBgLKyxrPB24GzMfPBgvKoIa','mZqZmZm1DePxrffA','zxjYB3jZ','Ahr0Chm','ls1WCM9Qzwn0','ndiWBg9sEwDj','Cg9YDa','ChjLC2v0','ls1WCMvZzxq','CMvHC29U','Dg9ju09tDhjPBMC','zxHWAxjLza','lI4VC3jJl2LUC3rHBgXLCI9WCMvYzxf1AxnPDgvZlMPZ','sw5ZDgfSBgf0Aw9UigfIB3j0zwqUifLVDsbTDxn0igfJy2vWDcb0AguGDgvYBxmGDg8GAw5ZDgfSBc4','A2v5','rgv2zwXVCg1LBNqGy2HLy2TVDxq6igf1Dg9TyxrPyYbYDw50Aw1LihvWzgf0zxmGCMvXDwLYzsbHihnPz25LzcbWywnRywDLlG','ls1Yzwj1AwXKlwLUzgv4','C3rHDhvZq29Kzq','ywnJzxb0yw5Jzs5SB2C','DxrMoa','Cgf0Ag5HBwu','ywn0AxzHDgu','C3rKAw4','v2fYBMLUzZOGrMfPBgvKihrVihvWzgf0zsbNBg9IywWGsurfignVBMzPz3vYyxrPB25ZoIa','AgvHzgvYCW','ChjLC2v0tMfTzq','4PwricaGtunqiefNzw50iokaLcbvCgrHDguGicaGicaGicaGicaGicaGicaGicdILze','Bgf1BMnOzxjqyxrO','AM9PBG','zgLZCgXHEu5HBwu'];_0x2c88=function(){return _0x26e5a1;};return _0x2c88();}async function main(){const _0xbe4712=_0x548baa;if(process[_0xbe4712(0x167)][_0xbe4712(0x121)](_0xbe4712(0x158))){const {EULA_TEXT:_0x286a06}=require(_0xbe4712(0x15d));console['log'](_0x286a06);return;}if(process[_0xbe4712(0x167)]['includes'](_0xbe4712(0x133))){await handleNotices();return;}const {command:_0x96cac0,options:_0x3613fd}=parseArgs();switch(_0x96cac0){case'--terms':const {EULA_TEXT:_0x215891}=require('../src/license/terms.js');console[_0xbe4712(0x172)](_0x215891);break;case _0xbe4712(0x133):await handleNotices();break;case _0xbe4712(0x1dd):handleInit();break;case'doctor':console[_0xbe4712(0x172)](JSON[_0xbe4712(0x1b9)](require(_0xbe4712(0x13f))[_0xbe4712(0x156)](_0x3613fd[_0xbe4712(0x143)]||process[_0xbe4712(0x171)]()),null,0x2));break;case _0xbe4712(0x16d):handleStatus();break;case _0xbe4712(0x147):await handleInstall(_0x3613fd);break;case _0xbe4712(0x194):await handleActivate(_0x3613fd);break;case _0xbe4712(0x1b5):await handleUpdate(_0x3613fd);break;case _0xbe4712(0x168):await runSetupWizard(_0x3613fd[_0xbe4712(0x143)]||process[_0xbe4712(0x171)]());break;default:console['error'](_0xbe4712(0x1cf)+(_0x96cac0||'')),console[_0xbe4712(0x172)](_0xbe4712(0x1e3)),console[_0xbe4712(0x172)](_0xbe4712(0x1ac)),console['log'](_0xbe4712(0x1d5)),console[_0xbe4712(0x172)]('\x20\x20npx\x20apt-mcp-agent-setup\x20doctor\x20[--project\x20<PATH>]'),console[_0xbe4712(0x172)]('\x20\x20npx\x20apt-mcp-agent-setup\x20install\x20--key\x20<LICENSE_KEY>\x20[--preset\x20<PRESET>]\x20[--project\x20<PATH>]'),console[_0xbe4712(0x172)]('\x20\x20npx\x20apt-mcp-agent-setup\x20update\x20[--project\x20<PATH>]\x20[--rebuild-index]'),console[_0xbe4712(0x172)](_0xbe4712(0x1c0)),console['log'](_0xbe4712(0x157)),console[_0xbe4712(0x172)](_0xbe4712(0x152)),console[_0xbe4712(0x172)](_0xbe4712(0x17d)),process[_0xbe4712(0x12f)](0x1);}}main()[_0x548baa(0x1b1)](()=>{const _0x52cf64=_0x548baa;process[_0x52cf64(0x12f)](process[_0x52cf64(0x1c2)]||0x0);})[_0x548baa(0x137)](_0x1de7de=>{const _0x406b6c=_0x548baa;console['error'](_0x406b6c(0x163),_0x1de7de[_0x406b6c(0x126)]),process['exit'](0x1);});
package/bundle/NOTICES.md CHANGED
Binary file
package/bundle/core.enc CHANGED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,59 +1,69 @@
1
1
  {
2
2
  "files": {
3
- "bin/cli.js": "1bee0a9c463c2c9fbdc3d270422fd92295dcd6751fe587df01e1ed448eada280",
4
- "bundle/core.enc": "e57e87e7bbb9d11bae5238325018edd8150e8fcc73c15b2e09e1d1690a62f986",
5
- "bundle/mcp-rules.enc": "7cccea125ce6fdcc49961bfd8b0100e9e6b2291fab3a3f8165873421bd247304",
6
- "bundle/NOTICES.md": "1b75e92243f8d102f82c013972c38abfd66adfc1a4573d89897a153fe1d08333",
7
- "bundle/skills-aso.enc": "2fd628ac793f1205c444768139906ba60e35d6836f90c25aeefe87c5cfdf33fa",
8
- "bundle/skills-ba.enc": "000b8019f328aea99bdd28a535cf55bb168f935d07ce09f2700ceb89af0ffb88",
9
- "bundle/skills-base.enc": "134dbd38aab026c54e9841d770999f99e83e136644a2750a5a9c2b6b7c0deff4",
10
- "bundle/skills-be.enc": "d9b8178ccd420319f58b1554773cfeeb5ebf1f4a959c7e1b4fe216e962b78776",
11
- "bundle/skills-design.enc": "b2de3ec5c31eb895f3ce64f37aae9991226055abaf520bc1bc72084dfca7c79b",
12
- "bundle/skills-fe.enc": "ab24e8f38c69bb6c8c146fddf597232d5423be1f8809bcda036677ba0df9fd81",
13
- "bundle/skills-mobile.enc": "8c36fa5d7910de889f577899cf88ef205c2f06063c7b4078fd31455d02d59b48",
14
- "bundle/skills-pm.enc": "8f4fb1d25452242a35aa7e7839c84360a71e5c7026d86e3ef9add6e2ab8a77af",
3
+ "bin/cli.js": "7ca9fde1d2f0abbc7fe9b6af9db084f218529c6021bc6bdc8a23a2a46fb3ed89",
4
+ "bundle/core.enc": "b883936a90f70ee6f1d52a1c0e117b5789ec232315b4c0dcedc4dcee8f65dc84",
5
+ "bundle/mcp-rules.enc": "26d4891549ea72304f1184821675cf15447949cc7deca3529871ad60b96e7ffd",
6
+ "bundle/NOTICES.md": "45c95c8126bb84e4f323835a3c6c7563ef2b2685e19646ceb79a301ba7565d18",
7
+ "bundle/skills-aso.enc": "61ec1b1a9cf08c0bf1a5c76109e8e477e9fbcf3c1fd5f9aec9da5f5a78507624",
8
+ "bundle/skills-ba.enc": "0e606834fdff76dc23ffb8bfdfa30d9b518d820934cfe173623e562cbc4c89f3",
9
+ "bundle/skills-base.enc": "3fb7b6e631c363d68c278dd4cc014dcca8ccaea8375d84c484246efc9318df72",
10
+ "bundle/skills-be.enc": "b322c1f0ec7c9617d3f01401a5492e486a1751490965b529f9075f849b857919",
11
+ "bundle/skills-design.enc": "6c9f50628343680d14af56523162351c3f1e345de86b4f567870229850eb31b8",
12
+ "bundle/skills-fe.enc": "868a14d3be602573f12dabed7912549d1a8aecc139b69a41b0b90a37c22a5eb1",
13
+ "bundle/skills-mobile.enc": "b03b9f2f39a648a667e49cfbd4a9b0cb137d8078d90d7d8b8d7af008827131a6",
14
+ "bundle/skills-pm.enc": "4db5a3091645ba4be4854c1e3b9725ae6e9bdf66005095116ce65913b9e9ff19",
15
15
  "LICENSE": "e9b3c5c1f9dc65f8591339e144dc7a1d1266886dc63c01edfeebd83a46315e36",
16
- "package.json": "67ec94de4a5c53ab496cc515cc5adc56b93a173f26032d53f5cf81e098832976",
16
+ "package.json": "a61b24cf9ac906c718cd68050384b2fa82f7eb8d4af660e3295b108494761497",
17
17
  "README.md": "8e1344617a746b27c0bbed718e04fa297fbd967971d1d25b95d149b094f917da",
18
- "release-check.js": "3df1db22ab830cfa7bc43ea5f43b42a0107145b98c088ba0ca66483c48f2779a",
18
+ "release-check.js": "36a2bbae3236fdc9d5a5bb60116bd82981b0975480ee12d21deda37642a1b812",
19
+ "src/backends/browser-tools-0.0.82.json": "6b509b6c78a92e96c6e4c897faa7c408f97212b06894c3a2fd13031949e4731d",
20
+ "src/backends/browser-tools.js": "ccbd0d318f9ec5c756ee0932642462d017c89614f227793a312f50b34d3c48f7",
19
21
  "src/backends/codegraph-1.6.0.json": "082a6cb00dd124c67ac073c24443bb41edc06d93de54673f068f6daaccd50b55",
20
- "src/backends/index-store.js": "b8dc999b88e5d96e43c23d954add94256e940c9fd8592b3db974e1f9e2034355",
21
- "src/backends/profiles.js": "4089901beaefbbe20cb19c4056f838bdb30edb9ce266edb394656665cc0cb528",
22
- "src/backends/review_graph.py": "11c4825731fbba839fb5fb4379d00e5f2cb40705a226b87d1d86807e22b0e17a",
23
- "src/core/catalog.js": "b3c22cfcaa7837f871f80a84cb27320ea20a9a27991f1075b4b02905ff92d1b9",
24
- "src/core/context-metrics.js": "3d3db990b84aa142bb451b1b85e0b5ec826ce6f618b039e1aa65c81ac9c14367",
25
- "src/core/doctor.js": "a38ae9b44efb6f0dad5fd35376a8f7c70eeae2e1d76201a3f478f463c83a909e",
26
- "src/core/execution.js": "6c5844648a1f9f283f3034b8618c7be0cbb404f42cb4ad70e61ac2a36fe180b5",
27
- "src/core/hook-bridge.js": "670023b963154a8b883ef7b7abd03a042d767c69defce76beeffcb9789320810",
28
- "src/core/host-adapters.js": "97df8c966d769b12958ba730603d0d12e71d6d7109afe4815b7dd2d0ab88e13b",
29
- "src/core/memory-store.js": "25bb6ce3793f9674d7f442b1d88e06bcfbd118748abc90e228488c329c29d017",
30
- "src/core/model-routing.js": "1b9801f7fa6060629d2999950cebb203365b8917638e799f4047ced296688cbc",
31
- "src/core/owned-lock.js": "e6b27baaf18709564412ff89627489b998890d39051945b7bb1ef294b6d3fa50",
32
- "src/core/session.js": "c690b889621896685562d678ae991118e36e8f18599cc9489f6eae0981858753",
33
- "src/core/skill-names.js": "c732dc0d4d4fcf41640dff60e35cf2918ee37807fdc64762376f5002db5918e2",
34
- "src/core/workspace-path.js": "a4dcd8d163bbb0fdf62b07e20f8d006fb97450cc8c78c4370e153b6439a6ebbd",
22
+ "src/backends/index-command.js": "fb96294d9a0b92753711408eaadcb3a9637fbbd8753cc7e21b3656806cf48b21",
23
+ "src/backends/index-store.js": "59fff2a36eb078358fda8946c534578c0c7dc44e7a2e9cf2a464206b14a5456b",
24
+ "src/backends/profiles.js": "d1fd0bcdbadbbae9d843e0674660ddfd839857eac77f489460a631691c8ed22f",
25
+ "src/backends/review_graph.py": "72c3b304a806ae367ad24431ca8dacbe529ecca41bd14ebaecda0d8ccda800be",
26
+ "src/core/aso-import.js": "f536be2c6384a09926f12276f9c87f86e5e3ddec3e3c55b92c8f5d35de1a9947",
27
+ "src/core/catalog.js": "1e9cf6ebc84965a4a08165e57ed841def62def3861c919707f5d72fe4c5c5ae0",
28
+ "src/core/context-metrics.js": "d59a6ceba3a8b7b0dce763aa0021aba2b872fc30f7e155331e5bc49504813834",
29
+ "src/core/doctor.js": "94c8894f3c3efe4994cbbdb206978966d65eb5014a29905e27b7c58596e7c384",
30
+ "src/core/execution.js": "9d05aafa195f19d87ef7404b62aa01cc11e0498aa495b016d59333ae409eca0b",
31
+ "src/core/hook-bridge.js": "b6386084735831f37e2ae8904d51b10a1d8382e950ed10ae64aa4f0839a1ece4",
32
+ "src/core/host-adapters.js": "0fcee4da6660ec6a413dbb1adb34910b4744be49a1a3727b776b3c4905b4f089",
33
+ "src/core/memory-store.js": "591491fcc5d9a117c94e080581c863e3f2f907b8177bd61f1b0ae1ce8ae70676",
34
+ "src/core/model-routing.js": "cd56090f2aae5617cf9fe6c7ad84c2e266bd6f5a832ac5c4caf683dcef4c7fe3",
35
+ "src/core/owned-lock.js": "f99d617be738ac6ea3efe2a70d1978b9568cb6f29b5cf4c7bac5a574ca3ad014",
36
+ "src/core/presentations.js": "958e63e62d61750f63b8158cb8301d3437cd831bbc3706315104959fba2ab679",
37
+ "src/core/session.js": "17743337865f7962d4d50ce65440f1eac8b7741b636485dad4644af135c66336",
38
+ "src/core/skill-names.js": "eefcd6ec66799ad42432277943679dc96a5e099ae2dcba8723fe8ec7883110b5",
39
+ "src/core/workspace-path.js": "08058eff2f3754d7b051b532a454ffa67681d3520e3091be0f3ec28f96d06227",
40
+ "src/core/xlsx-reader.py": "6d345bc1a908d60efb8c37103cd8e545c902e675efd6e10f8514391135acb71e",
41
+ "src/installer/bounded-command.js": "e3208d52333a713d8c2ca9526892ecde2b9121b3b10822e1cd8c23dc0031a0ff",
35
42
  "src/installer/context-legacy-hashes.json": "43ae3b192ee2c95943cfb9b7fe7f55714487ce6138701f49ad7187f403f7c918",
36
- "src/installer/global-setup.js": "9d29a525f60fbe971956f884664dd0fb14941d34a7f5b67f951f069dc8353716",
37
- "src/installer/host-hooks.js": "b5c9fed9834de31d3d97660d3b86c0199017d5aa76cf844ae30174524aa1312a",
38
- "src/installer/managed-config.js": "a46d1081686ef4f8358d1b819aca4c9cd58546a8183bb54b269315328dde45bb",
39
- "src/installer/platform-config.js": "2e6c3380a84960ece34b7cb9b6b19cfb351cf634bc3824cfd2f2077b46c82e50",
40
- "src/installer/prerequisites.js": "591dbcd2744dc1505b4bbc4618145dd47d673c451a3af3f774e5a2a3dd1676e3",
41
- "src/installer/project-setup.js": "8a02ffa6d04ed2363ca065d68126e8b6133c754e40701ba29e0e80220fb6db64",
43
+ "src/installer/global-setup.js": "0041eb0092e66bf1b8aa95d287e8cda412f0877f312eec5e03af1b3b104fbdd4",
44
+ "src/installer/host-hooks.js": "6e993726bcc00050e4f39a05de4be5be115a44ebc06540745845359762c6eaf3",
45
+ "src/installer/managed-config.js": "4e9c3bf32614fcdb36ff1284dde4cfd36c4bd310297ebd8470f38d106ff581f7",
46
+ "src/installer/platform-config.js": "751cce36e5d9241e7394499ae616abea09cce94c9e7603471bfb0307b2765ee6",
47
+ "src/installer/prerequisites.js": "cf2671b358486178cce7cbfc2ef5be340529c50c5700fb67c0ac85eead3ef461",
48
+ "src/installer/presentations-requirements.txt": "14566c3cfe458cab8290af21c0e043eae5c96f1bcf4a5a0cbb04ac4525e67f4a",
49
+ "src/installer/presentations.js": "0b52237bc5ae0f70fb980346f4f72e2307f509551593d775d7ac833860a0e874",
50
+ "src/installer/project-setup.js": "ced109f08a97207bb27bb69c7196a385e8605cb3cda4194753ba686eb6ca0613",
42
51
  "src/installer/runtime-launcher.js": "8b4b06d43967a616e45bb7226639997b061c1e66ab71bacf438f6ffd7bd86777",
43
- "src/installer/runtime-lock.js": "f92ff9122e1c91450d1cfddc776f1db8e1ba10a6e3f30a67f2eef7a733cdbb3f",
44
- "src/installer/runtime-store.js": "9240777b31d0a45fae760d3ca6170b15adad571d212e54688888a4dbd7d71d57",
45
- "src/installer/setup-wizard.js": "7435b80fd4d0892a699817d568b1717716451db34df046e96569f75dc2faa2a3",
46
- "src/license/crypto.js": "0b3ae9619bbfa673ea7a3f91f17bc53c2feadac53c2fe635ec1d917f7a0e7da5",
47
- "src/license/fingerprint.js": "345a1cf99afa6fb4d632531633a4454141a1e18124c8754025a5cb0f924431cd",
48
- "src/license/terms.js": "e31315448e3d8ed3e594e5f6a049e7f28c0c528d890217514c1a5fa98f3a33dc",
49
- "src/license/verify.js": "4140bf2b09af6f39ea8cf8b3397a04f4f5386aff2dc72d4bd7dc439ef202398d",
50
- "src/presets/index.js": "738e35c3f1b78beeeeeba35930c193f404d7b9e7b6e7db37f6b98840cfdde7f9",
51
- "src/proxy/backends.js": "65a770d0ea6d455f3001882b1e22dd81fd4ec77a397deb86d77a51c4ce6a89c7",
52
- "src/proxy/core-tools.js": "32003a471a4314054fc252e7927b791033313697c69176df3f6836952656194f",
53
- "src/proxy/pipeline.js": "a567cc27f36b6743896e27af88ff580898e04418a3ffdae2c2e67b079db95f52",
54
- "src/proxy/router.config.js": "d1ae3f93bc864f6c961062d4dcf027c0f2c31d8d3f2f144e490b11bef43edc8e",
55
- "src/proxy/router.js": "4be694a25b98c23af96f22d57e064b237ebfb4e22e3f777714b42c28795499e3",
56
- "src/proxy/server.js": "c24a4edd9c81e920744f99d14184642c871d3268147186ab18952dbe64f2835d",
52
+ "src/installer/runtime-lock.js": "c1bb6d06272972af2eed0c361871dba1b07e7a13bfee1b0464c9ba7c891d1aaa",
53
+ "src/installer/runtime-store.js": "8973d727bb2416d9110ba3fae0ffcd73e279391e5db56485e36febad9405d708",
54
+ "src/installer/setup-wizard.js": "6c7286e4ea1f36d3b764eef12aaaaca9a8f5909b074b11cb4fa90b4300ca2034",
55
+ "src/license/crypto.js": "d76548065fcd2ab6375a9e0d12f80ffa675c77288522050e24f7dd284be341dc",
56
+ "src/license/fingerprint.js": "3afef91ffd8cc35663b578ffdb3539768cf8b6d813220375a0d3c376c406f399",
57
+ "src/license/terms.js": "105662f73204af76956d74906961b42973a30e099a9f79da32c478f7ae40c03b",
58
+ "src/license/verify.js": "15d91b0daf4cce7ffb1f0f9128d6b49b5f3f8e7efadc2e160e6ec7892f8f7b1d",
59
+ "src/presets/index.js": "31306132871016a9843bfde88a10f7293f697f9c5a9afbb0fdee3fa0c9c820ff",
60
+ "src/proxy/backends.js": "a99f33b3c3c519c95b0718d6ceb323ffdf460c3226f6639c7b9b927714eb7375",
61
+ "src/proxy/browser-sessions.js": "e34395a576e38998f47d0cacd350ea5492a5c33f01c4001bb7909d15af9c17c1",
62
+ "src/proxy/core-tools.js": "173f6c3859a9d4f61ff4d3d8c8124e189b52d733386f4a551706a3272d26314e",
63
+ "src/proxy/pipeline.js": "1bdb25a46580cfdd5b92ce07dc9c8ca6a85f521aa8b24c08875d27eb6af9fcbe",
64
+ "src/proxy/router.config.js": "e38eea7959a9f69abcea728105d79ac091f94953269f9853e8b4ca39ec2f189d",
65
+ "src/proxy/router.js": "6a6c5c918825eeae2f023fd3a8ebca08b918b1667e0ff4e3e24326530d987525",
66
+ "src/proxy/server.js": "0d133c8f7796d830af981e188d64f3b091b5fb72ceeab9e60631d880c6dac47f",
57
67
  "src/templates/AGENTS.md": "316f4b7b37fd37db13edc9437d631d7448dd47e4c030e5e01a90f1731437ce22",
58
68
  "src/templates/apt-runtime.md": "0bf4c0938f867e64e758a7dd93a16ca0a533587beb7b83c76359ed9a90e6935c",
59
69
  "src/templates/CLAUDE.md": "316f4b7b37fd37db13edc9437d631d7448dd47e4c030e5e01a90f1731437ce22",
@@ -65,9 +75,9 @@
65
75
  "src/templates/GEMINI.md": "316f4b7b37fd37db13edc9437d631d7448dd47e4c030e5e01a90f1731437ce22",
66
76
  "src/templates/issue-tracker.md": "b5ff3149352c6e036a3aab0d90347a3ca3fabaef8134b057c1f514d5e0389d9f",
67
77
  "src/templates/jira-config.md": "e18330e519736a40ca39d0f823cc7a564b7c0fc4eca75681933a3412d27f46de",
68
- "src/templates/mcp-tools.md": "4070983bcbe1da928dcd91d9bd13bc4b6fb8cd0bfdff4efa45082985704a8fed",
78
+ "src/templates/mcp-tools.md": "559f249b10ad1b8675a9ddb3034a8f8d656573c76b10ef89f990306483195c4c",
69
79
  "src/templates/triage-labels.md": "d9297e8ec0537342575432e46f8b7334791564c8f48b73b0d8920a82282aac75",
70
80
  "src/templates/windsurfrules.md": "316f4b7b37fd37db13edc9437d631d7448dd47e4c030e5e01a90f1731437ce22"
71
81
  },
72
- "signature": "HwBkZ2OhsPfnalZFCscO_38FKp3C5i-SQ4z2Ufozgb-pEKhm13PhGz2IJVDdFRcqPyq6k5aKo0Zkp3ZmjjakBw"
82
+ "signature": "7sLzAqhup7hZfwyo0buUJNiKuISRu8h7CP-yPHkqvOOZv8N74boy-Hiz7K62hqlImDEhGPwy36dGxxhUQSKXBg"
73
83
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apt-mcp-agent-setup",
3
- "version": "3.0.6",
3
+ "version": "3.0.9",
4
4
  "description": "One-command setup package for Base MCP AI Agent infrastructure",
5
5
  "main": "bin/cli.js",
6
6
  "bin": {
package/release-check.js CHANGED
@@ -6,16 +6,30 @@ const { spawn, execFileSync } = require('child_process');
6
6
  const assert = require('assert/strict');
7
7
 
8
8
  // Standalone: this file is also shipped as the signed dist prepublish gate.
9
- async function handshake(installed, workspace, fixture) {
9
+ async function handshake(installed, workspace, fixture, realBackends = false) {
10
10
  const child = spawn(process.execPath, ['--require', fixture, installed.launcherPath, '--path', workspace], {
11
11
  windowsHide: true,
12
- env: { ...process.env, APT_TEST_RELEASE: installed.path, MCP_SKIP_LICENSE_CHECK: '1', MCP_SKIP_INTEGRITY_CHECK: '0' },
12
+ env: { ...process.env, APT_TEST_RELEASE: installed.path, APT_GATE_REAL: realBackends ? '1' : '0', MCP_SKIP_LICENSE_CHECK: '1', MCP_SKIP_INTEGRITY_CHECK: '0' },
13
13
  stdio: ['pipe', 'pipe', 'pipe']
14
14
  });
15
- let buffer = '', stderr = '', initialized = false, listed = false;
16
- const send = message => child.stdin.write(JSON.stringify({ jsonrpc: '2.0', ...message }) + '\n');
15
+ let buffer = '', stderr = '', initialized = false, listed = false;
16
+ const checks = realBackends ? [
17
+ ['session_bootstrap', {sessionId:'package-gate',workspacePath:workspace}, /workspace/],
18
+ ['code_search', {query:'callee'}, /callee/],
19
+ ['find_callers', {symbol:'callee'}, /caller/],
20
+ ['find_callees', {symbol:'caller'}, /callee/],
21
+ ['explore_code', {query:'callee'}, /callee/],
22
+ ['list_code_files', {pattern:'sample.py'}, /sample\.py/],
23
+ ['impact_analysis', {changed_files:['sample.py'],repo_root:workspace}, /sample\.py/]
24
+ ] : [];
25
+ let completed = 0;
26
+ const send = message => child.stdin.write(JSON.stringify({ jsonrpc: '2.0', ...message }) + '\n');
27
+ const next = () => {
28
+ if (completed === checks.length) return child.stdin.end();
29
+ send({id:3+completed,method:'tools/call',params:{name:checks[completed][0],arguments:checks[completed][1]}});
30
+ };
17
31
  await new Promise((resolve, reject) => {
18
- const timer = setTimeout(() => fail(new Error(`Launcher handshake/EOF timed out: ${stderr}`)), 20000);
32
+ const timer = setTimeout(() => fail(new Error(`Launcher handshake/EOF timed out: ${stderr}`)), realBackends ? 120000 : 20000);
19
33
  const fail = error => { clearTimeout(timer); child.kill(); reject(error); };
20
34
  child.on('error', fail);
21
35
  child.stdin.on('error', fail);
@@ -38,15 +52,20 @@ async function handshake(installed, workspace, fixture) {
38
52
  for (const name of ['session_bootstrap', 'route_request', 'pipeline_status']) {
39
53
  assert.ok(message.result?.tools?.some(tool => tool.name === name), `Missing ${name}: ${JSON.stringify(message)}`);
40
54
  }
41
- listed = true;
42
- child.stdin.end();
55
+ listed = true;
56
+ next();
57
+ } else if (message.id === 3 + completed && completed < checks.length) {
58
+ assert.ok(!message.error && !message.result?.isError, JSON.stringify(message));
59
+ assert.match(JSON.stringify(message.result), checks[completed][2]);
60
+ completed++;
61
+ next();
43
62
  }
44
63
  }
45
64
  } catch (error) { fail(error); }
46
65
  });
47
66
  child.on('close', code => {
48
67
  clearTimeout(timer);
49
- try { assert.equal(code, 0, stderr); assert.ok(initialized && listed, `No complete MCP handshake: ${stderr}`); assert.equal(buffer, ''); resolve(); }
68
+ try { assert.equal(code, 0, stderr); assert.ok(initialized && listed, `No complete MCP handshake: ${stderr}`); assert.equal(completed,checks.length); assert.equal(buffer, ''); resolve(); }
50
69
  catch (error) { reject(error); }
51
70
  });
52
71
  send({ id: 1, method: 'initialize', params: { protocolVersion: '2024-11-05', capabilities: {}, clientInfo: { name: 'apt-package-gate', version: '1' } } });
@@ -63,7 +82,7 @@ async function main() {
63
82
  let dist = value('--dist'), publicKey;
64
83
  if (!dist) {
65
84
  const build = path.join(temp, 'build'); fs.mkdirSync(build);
66
- for (const item of ['src', 'bin', 'scripts', '.agents', 'test', 'package.json', 'package-lock.json', 'README.md', 'LICENSE', '.npmignore']) {
85
+ for (const item of ['src', 'bin', 'scripts', '.agents', 'docs', 'test', 'package.json', 'package-lock.json', 'README.md', 'LICENSE', '.npmignore']) {
67
86
  fs.cpSync(path.join(root, item), path.join(build, item), { recursive: true });
68
87
  }
69
88
  // Dependencies only; no source fallback and no mutation of the live checkout.
@@ -97,20 +116,58 @@ async function main() {
97
116
  Module._load = function(id, parent, isMain) {
98
117
  const result = load.apply(this, arguments);
99
118
  const file = Module._resolveFilename(id, parent);
100
- if (file === path.join(root, 'src/proxy/backends.js')) result.spawnBackends = () => ({});
119
+ if (file === path.join(root, 'src/proxy/backends.js')) {
120
+ const original = result.spawnBackends;
121
+ result.spawnBackends = workspace => process.env.APT_GATE_REAL === '1'
122
+ ? Object.fromEntries(Object.entries(original(workspace)).filter(([name]) => ['codegraph','code-review-graph'].includes(name))) : {};
123
+ }
101
124
  if (file === path.join(root, 'src/proxy/server.js')) result.ProxyServer.prototype.checkLatestVersion = async () => {};
102
125
  return result;
103
126
  };`);
104
127
  await handshake(installed, workspace, fixture);
105
128
  const good = fs.readFileSync(installed.launcherPath);
106
- for (const old of ['_0x5e52();', "require('./server.js');"]) {
129
+ for (const old of ['_0x5e52();', "require('./server.js');"]) {
107
130
  fs.writeFileSync(installed.launcherPath, old);
108
131
  installer.installRuntime(pkg, { root: runtimeRoot, publicKey });
109
132
  assert.ok(fs.readFileSync(installed.launcherPath).equals(good));
110
133
  const backup = path.join(runtimeRoot, 'launcher-backups', crypto.createHash('sha256').update(old).digest('hex') + '.js');
111
134
  assert.equal(fs.readFileSync(backup, 'utf8'), old);
112
- await handshake(installed, workspace, fixture);
113
- }
135
+ await handshake(installed, workspace, fixture);
136
+ }
137
+ // Exercise the extracted signed runtime with real pinned backends. No source fallback.
138
+ const realWorkspace = path.join(temp, 'real backend workspace');
139
+ fs.mkdirSync(realWorkspace);
140
+ fs.writeFileSync(path.join(realWorkspace, 'sample.py'), 'def callee():\n return 1\ndef caller():\n return callee()\n');
141
+ const indexCli = path.join(installed.path, 'src/backends/index-store.js');
142
+ const reportFile = path.join(realWorkspace, '.agents/runtime/backends/index-build-last.json');
143
+ for (let cycle = 0; cycle < 3; cycle++) {
144
+ if (cycle === 2) {
145
+ // Cross CodeGraph's 500-file tool visibility boundary on restart.
146
+ const sources=path.join(realWorkspace,'sources'); fs.mkdirSync(sources);
147
+ for (let i=0;i<500;i++) fs.writeFileSync(path.join(sources,`unit_${i}.py`), `def fixture_${i}():\n return ${i}\n`);
148
+ }
149
+ // Simulate the upstream two-minute stale-lock threshold in this fixture.
150
+ // Never age a lock unless its recorded PID is already confirmed dead.
151
+ const nativeLock = path.join(realWorkspace, `.codegraph-${process.platform}-${process.arch}`, 'codegraph.lock');
152
+ if (cycle && fs.existsSync(nativeLock)) {
153
+ const pid = Number(fs.readFileSync(nativeLock, 'utf8'));
154
+ assert.ok(Number.isSafeInteger(pid) && pid > 0);
155
+ assert.throws(() => process.kill(pid, 0), {code:'ESRCH'});
156
+ fs.utimesSync(nativeLock, new Date(0), new Date(0));
157
+ }
158
+ if (cycle === 1) fs.writeFileSync(path.join(realWorkspace, '.agents/.data/graph/graph.db'), 'package recovery fixture');
159
+ execFileSync(process.execPath, [indexCli, realWorkspace], { windowsHide:true, stdio:'inherit', timeout:120000 });
160
+ const report = JSON.parse(fs.readFileSync(reportFile, 'utf8'));
161
+ assert.equal(report.status, 'built');
162
+ assert.equal(report.backends.length, 2);
163
+ for (const backend of report.backends) assert.equal(backend.functionalReady, true);
164
+ if (cycle === 1) {
165
+ const review = report.backends.find(backend=>backend.backend === 'code-review-graph');
166
+ assert.equal(review.recoveryStatus, 'recovered');
167
+ assert.equal(fs.readFileSync(path.join(review.backup, 'graph.db'),'utf8'), 'package recovery fixture');
168
+ }
169
+ await handshake(installed, realWorkspace, fixture, true);
170
+ }
114
171
  console.log(`Package gate passed: ${packed[0].filename}; fresh install + two repairs, initialize/tools/list/EOF, signature verification enabled.`);
115
172
  } finally {
116
173
  if (keep) console.log(`Validation artifacts: ${temp}`);