@wujie-shell/core 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/README.md +3 -3
  2. package/dist/bin/wujie-shell.mjs +1 -1
  3. package/dist/src/agents/bundled-agent-skills.mjs +1 -1
  4. package/dist/src/agents/bundled-agents.mjs +1 -1
  5. package/dist/src/chat/media-archive.mjs +1 -1
  6. package/dist/src/chat/queue.mjs +1 -1
  7. package/dist/src/common/diagnostics.mjs +1 -1
  8. package/dist/src/common/logging.mjs +1 -1
  9. package/dist/src/common/runtime-logger.mjs +1 -1
  10. package/dist/src/common/user-events.mjs +1 -1
  11. package/dist/src/common/utils.mjs +1 -1
  12. package/dist/src/config/controller.mjs +1 -1
  13. package/dist/src/connectors/config-utils.mjs +1 -1
  14. package/dist/src/connectors/constants.mjs +1 -1
  15. package/dist/src/connectors/controller.mjs +1 -1
  16. package/dist/src/connectors/kdocs-cli.mjs +1 -1
  17. package/dist/src/electron/main.mjs +1 -1
  18. package/dist/src/electron/preload.mjs +1 -1
  19. package/dist/src/files/generated-files-store.mjs +1 -1
  20. package/dist/src/files/handlers.mjs +1 -1
  21. package/dist/src/gateway/controller.mjs +1 -1
  22. package/dist/src/gateway/ws-client.mjs +1 -1
  23. package/dist/src/index.mjs +1 -1
  24. package/dist/src/log-reporting/handlers.mjs +1 -1
  25. package/dist/src/log-reporting/report-logs.mjs +1 -1
  26. package/dist/src/models/handlers.mjs +1 -1
  27. package/dist/src/preferences/store.mjs +1 -1
  28. package/dist/src/runtime/index.mjs +1 -1
  29. package/dist/src/runtime/patch-channel-plugin-runtime.mjs +1 -1
  30. package/dist/src/runtime/patch-chat-history-mixed-tool-content.mjs +1 -1
  31. package/dist/src/runtime/plugin-sync.mjs +1 -1
  32. package/dist/src/sessions/agent-sessions-map-store.mjs +1 -1
  33. package/dist/src/skills/import.mjs +1 -1
  34. package/dist/src/skills/market.mjs +1 -1
  35. package/dist/src/terminal/manager.mjs +1 -1
  36. package/package.json +3 -3
@@ -1 +1 @@
1
- (function(_0x319a32,_0x330c82){const _0x4d30e0=_0x2821,_0x40aef9=_0x319a32();while(!![]){try{const _0x17c0aa=parseInt(_0x4d30e0(0x183))/0x1*(parseInt(_0x4d30e0(0x19a))/0x2)+parseInt(_0x4d30e0(0x1ed))/0x3*(parseInt(_0x4d30e0(0x1cb))/0x4)+-parseInt(_0x4d30e0(0x195))/0x5*(parseInt(_0x4d30e0(0x1ae))/0x6)+-parseInt(_0x4d30e0(0x1e8))/0x7*(-parseInt(_0x4d30e0(0x1c2))/0x8)+-parseInt(_0x4d30e0(0x18b))/0x9+-parseInt(_0x4d30e0(0x1d1))/0xa*(-parseInt(_0x4d30e0(0x1f2))/0xb)+-parseInt(_0x4d30e0(0x1f3))/0xc;if(_0x17c0aa===_0x330c82)break;else _0x40aef9['push'](_0x40aef9['shift']());}catch(_0xfb32e9){_0x40aef9['push'](_0x40aef9['shift']());}}}(_0x463c,0xe8b45));function _0x2821(_0x3d059e,_0x4782c2){_0x3d059e=_0x3d059e-0x16d;const _0x463cae=_0x463c();let _0x2821fa=_0x463cae[_0x3d059e];return _0x2821fa;}import{execFile}from'node:child_process';import{existsSync}from'node:fs';import{cp,mkdir,mkdtemp,readFile,readdir,rename,rm,writeFile}from'node:fs/promises';import{basename,dirname,join,parse}from'node:path';import{asRecord,dedupeStrings,getTrimmedString}from'../common/utils.mjs';function sanitizeManagedSkillDirSegment(_0x81f901){const _0x500f4f=_0x2821;let _0xb192a8=getTrimmedString(_0x81f901)[_0x500f4f(0x1ef)](/[<>:"/\\|?*\u0000-\u001f]/g,'-');return _0xb192a8=_0xb192a8[_0x500f4f(0x1ef)](/-+/g,'-')[_0x500f4f(0x1ef)](/^[-.]+|[-.]+$/g,''),_0xb192a8[_0x500f4f(0x1a3)](0x0,0x78);}function buildManagedSkillDirectoryName(_0x24451c,_0x165ce3,_0x16c318){const _0x26fa18=_0x2821,_0x47ac51=sanitizeManagedSkillDirSegment(_0x24451c)||sanitizeManagedSkillDirSegment(_0x16c318)||_0x26fa18(0x171)+_0x26fa18(0x1f7),_0x1c9f91=sanitizeManagedSkillDirSegment(_0x165ce3),_0xd05269=_0x1c9f91?_0x47ac51+'-'+_0x1c9f91:_0x47ac51;return _0xd05269[_0x26fa18(0x1a3)](0x0,0xc8)||'imported'+_0x26fa18(0x1f7);}function extractVersionFromZipUrl(_0x4c78c6){const _0x49646e=_0x2821;if(!getTrimmedString(_0x4c78c6))return null;try{const _0x51e1c8=basename(new URL(_0x4c78c6)['pathname']),_0x5084dc=_0x51e1c8[_0x49646e(0x1ef)](/\.zip$/i,'');return _0x5084dc[_0x49646e(0x1d7)](/(?:^|[-_v])(\d+\.\d+\.\d+(?:[-+][\w.-]+)?)(?:$|[-_])/i)?.[0x1]??null;}catch{return null;}}async function extractZipToDirectory(_0x22d66d,_0x50df82){await new Promise((_0x3d8ecd,_0x4fb7b1)=>{const _0x57dc3e=_0x2821;let _0x44717f;if(process[_0x57dc3e(0x1da)]==='win32'){const _0x1e89de=_0x22d66d[_0x57dc3e(0x1ef)](/'/g,'\x27\x27'),_0x2be096=_0x50df82['replace'](/'/g,'\x27\x27');_0x44717f=execFile('powershe'+_0x57dc3e(0x1b5),[_0x57dc3e(0x1b2)+'le',_0x57dc3e(0x1cf)+'ractive','-Command',_0x57dc3e(0x176)+_0x57dc3e(0x1a5)+_0x57dc3e(0x16f)+'ath\x20\x27'+_0x1e89de+(_0x57dc3e(0x1d2)+_0x57dc3e(0x1f1)+'th\x20\x27')+_0x2be096+_0x57dc3e(0x17b)],_0x7dc6f0=>_0x7dc6f0?_0x4fb7b1(_0x7dc6f0):_0x3d8ecd());}else _0x44717f=execFile(_0x57dc3e(0x1ba),['-q',_0x22d66d,'-d',_0x50df82],_0x2d6643=>_0x2d6643?_0x4fb7b1(_0x2d6643):_0x3d8ecd());_0x44717f['on']('error',_0x4fb7b1);});}async function findSkillManifestDirectories(_0x2c6820){const _0x512196=[];async function _0x53514c(_0x4f96db){const _0x225b5b=_0x2821,_0x1ec1d5=await readdir(_0x4f96db,{'withFileTypes':!![]}),_0x2b6341=new Set(_0x1ec1d5[_0x225b5b(0x180)](_0x5f40b3=>_0x5f40b3['name'][_0x225b5b(0x1a6)+'ase']()));if(_0x2b6341[_0x225b5b(0x1ad)](_0x225b5b(0x1b3))||_0x2b6341['has']('SKILLS.M'+'D')){_0x512196[_0x225b5b(0x1aa)](_0x4f96db);return;}for(const _0x2311b4 of _0x1ec1d5){if(!_0x2311b4[_0x225b5b(0x173)+'ory']()||_0x2311b4[_0x225b5b(0x194)]===_0x225b5b(0x1c7)||_0x2311b4[_0x225b5b(0x194)][_0x225b5b(0x1bf)+'th']('.'))continue;await _0x53514c(join(_0x4f96db,_0x2311b4[_0x225b5b(0x194)]));}}return await _0x53514c(_0x2c6820),_0x512196;}async function normalizeImportedSkillManifest(_0x3489bf){const _0x4ce14b=_0x2821,_0x4df801=join(_0x3489bf,_0x4ce14b(0x1a4)),_0x1fa069=await readdir(_0x3489bf,{'withFileTypes':!![]})[_0x4ce14b(0x175)](()=>[]);let _0x426e8e=null,_0x466ee6=null;for(const _0x1baf57 of _0x1fa069){if(!_0x1baf57[_0x4ce14b(0x1a0)]())continue;const _0x1ea812=_0x1baf57[_0x4ce14b(0x194)][_0x4ce14b(0x1a6)+_0x4ce14b(0x18d)]();if(_0x1ea812===_0x4ce14b(0x1b3))_0x426e8e=_0x1baf57['name'];else{if(_0x1ea812===_0x4ce14b(0x1b7)+'D')_0x466ee6=_0x1baf57[_0x4ce14b(0x194)];}}if(_0x426e8e===_0x4ce14b(0x1a4))return;const _0x314006=_0x426e8e??_0x466ee6;if(!_0x314006)return;const _0x591aa0=join(_0x3489bf,_0x314006);if(_0x591aa0!==_0x4df801)await rename(_0x591aa0,_0x4df801);}async function moveDirectoryWithOverwrite(_0x32a0f9,_0x4450e2){const _0x11339d=_0x2821;await mkdir(dirname(_0x4450e2),{'recursive':!![]});try{await rename(_0x32a0f9,_0x4450e2);return;}catch(_0xd0cf18){if(_0xd0cf18?.['code']!==_0x11339d(0x196))throw _0xd0cf18;}await cp(_0x32a0f9,_0x4450e2,{'recursive':!![],'force':!![]}),await rm(_0x32a0f9,{'recursive':!![],'force':!![]});}async function readManifestText(_0x30e785){const _0x33639a=_0x2821,_0x48c38d=[join(_0x30e785,_0x33639a(0x1a4)),join(_0x30e785,_0x33639a(0x1f9)+'d')][_0x33639a(0x1e3)](_0x4ecf4a=>existsSync(_0x4ecf4a));if(!_0x48c38d)return'';return await readFile(_0x48c38d,'utf8')[_0x33639a(0x175)](()=>'');}function resolveFrontmatterValue(_0x2e23f8,_0x5f4586){const _0x5bc785=_0x2821,_0x5332c3=_0x2e23f8[_0x5bc785(0x1d7)](/^---\s*\r?\n([\s\S]*?)\r?\n---/),_0x3e52d4=_0x5332c3?.[0x1]??'',_0xd8454d=_0x3e52d4['match'](new RegExp(_0x5bc785(0x1cc)+_0x5f4586+(_0x5bc785(0x1b0)+'$'),'m'))?.[0x1];return getTrimmedString(_0xd8454d)['replace'](/^["']|["']$/g,'')||null;}async function resolveSkillKeyFromManifest(_0x960af1){const _0x23e1a8=_0x2821,_0x3ce81f=await readManifestText(_0x960af1);if(!_0x3ce81f['trim']())return null;const _0x29a9ec=_0x3ce81f['match'](/"skillKey"\s*:\s*"([^"]+)"/);if(_0x29a9ec?.[0x1])return getTrimmedString(_0x29a9ec[0x1]);return resolveFrontmatterValue(_0x3ce81f,_0x23e1a8(0x197))||resolveFrontmatterValue(_0x3ce81f,_0x23e1a8(0x194));}async function resolveSkillVersionFromManifest(_0x4c597c){const _0x1727a0=_0x2821,_0x41dd53=await readManifestText(_0x4c597c);if(!_0x41dd53[_0x1727a0(0x1c3)]())return null;const _0x1466c5=_0x41dd53['match'](/"version"\s*:\s*"([^"]+)"/);if(_0x1466c5?.[0x1])return getTrimmedString(_0x1466c5[0x1]);return resolveFrontmatterValue(_0x41dd53,'version');}async function collectSkillDirsUnderRoot(_0x5101ee,_0x38465a,_0x4e6674){const _0x280ac8=_0x2821;if(!existsSync(_0x5101ee))return;for(const _0x33e4ba of await readdir(_0x5101ee,{'withFileTypes':!![]})[_0x280ac8(0x175)](()=>[])){if(!_0x33e4ba[_0x280ac8(0x173)+_0x280ac8(0x1f5)]())continue;const _0x51f0f3=join(_0x5101ee,_0x33e4ba[_0x280ac8(0x194)]),_0x9bc1cb=await resolveSkillKeyFromManifest(_0x51f0f3);if(_0x9bc1cb&&_0x38465a[_0x280ac8(0x1ad)](_0x9bc1cb))_0x4e6674[_0x280ac8(0x1bc)](_0x51f0f3);}}async function removeSkillConfigEntries(_0x253492,_0x3de17c){const _0x4259ff=_0x2821,_0x581636=new Set(_0x3de17c[_0x4259ff(0x180)](getTrimmedString)[_0x4259ff(0x1e2)](Boolean));if(_0x581636[_0x4259ff(0x19d)]===0x0)return;const _0x40679f=await _0x253492[_0x4259ff(0x1c5)+'ig']()['catch'](()=>({})),_0x2a37db=asRecord(_0x40679f[_0x4259ff(0x198)]),_0x284d09={...asRecord(_0x2a37db[_0x4259ff(0x1d4)])};let _0x4b2330=![];for(const _0x25f2bb of _0x581636){Object[_0x4259ff(0x1db)+'e'][_0x4259ff(0x1d9)+_0x4259ff(0x1be)]['call'](_0x284d09,_0x25f2bb)&&(delete _0x284d09[_0x25f2bb],_0x4b2330=!![]);}if(!_0x4b2330)return;_0x2a37db[_0x4259ff(0x1d4)]=_0x284d09,_0x40679f['skills']=_0x2a37db,_0x253492['markConf'+_0x4259ff(0x1af)+_0x4259ff(0x1f4)+_0x4259ff(0x17c)]?.(),await _0x253492['writeCon'+_0x4259ff(0x191)](_0x40679f,_0x4259ff(0x19c)+_0x4259ff(0x1c6)+_0x4259ff(0x1ee)+_0x4259ff(0x1b1));}export async function deleteManagedSkill({payload:payload={},gateway:_0x375b34,configController:_0x4b2285}){const _0x4862c9=_0x2821,_0x2cd62e=asRecord(payload),_0x32b108=getTrimmedString(_0x2cd62e['skillKey']??_0x2cd62e[_0x4862c9(0x194)]);if(!_0x32b108)throw new Error(_0x4862c9(0x1eb)+'y\x20is\x20req'+_0x4862c9(0x17e));const _0x456d21=await _0x375b34[_0x4862c9(0x198)]['status']()[_0x4862c9(0x175)](()=>({'skills':[]})),_0x4a7d31=Array[_0x4862c9(0x1ce)](asRecord(_0x456d21)[_0x4862c9(0x198)])?asRecord(_0x456d21)[_0x4862c9(0x198)]:[],_0x175990=_0x4a7d31['map'](asRecord)[_0x4862c9(0x1e3)](_0x5bb63f=>{const _0x577bed=_0x4862c9;return getTrimmedString(_0x5bb63f[_0x577bed(0x197)])===_0x32b108||getTrimmedString(_0x5bb63f[_0x577bed(0x1a8)+_0x577bed(0x188)])===_0x32b108||getTrimmedString(_0x5bb63f[_0x577bed(0x194)])===_0x32b108;});if(!_0x175990)throw new Error(_0x4862c9(0x17d)+'除');if(_0x175990[_0x4862c9(0x1e6)])throw new Error(_0x4862c9(0x1dc));if(_0x175990[_0x4862c9(0x170)]||_0x175990[_0x4862c9(0x1f6)]==='openclaw'+_0x4862c9(0x182)||_0x175990[_0x4862c9(0x1f6)]===_0x4862c9(0x189)+_0x4862c9(0x19e))throw new Error(_0x4862c9(0x187)+_0x4862c9(0x1e5));if(!_0x175990['disabled'])throw new Error(_0x4862c9(0x1a9)+'删除');const _0x27279d=getTrimmedString(_0x175990['gatewayS'+_0x4862c9(0x188)])||_0x32b108,_0x5840f1=new Set([_0x32b108,_0x27279d,getTrimmedString(_0x175990[_0x4862c9(0x194)])][_0x4862c9(0x1e2)](Boolean)),_0x3f2011=new Set([join(_0x4b2285['resolveS'+'tateDir'](),'skills'),join(_0x4b2285[_0x4862c9(0x1cd)+'tateDir'](),_0x4862c9(0x1fb)+'e',_0x4862c9(0x198))]),_0x33130a=new Set();for(const _0x3f1f25 of _0x3f2011)await collectSkillDirsUnderRoot(_0x3f1f25,_0x5840f1,_0x33130a);if(_0x33130a['size']===0x0)throw new Error(_0x4862c9(0x1a2)+_0x4862c9(0x1e9)+'位于自定义\x20sk'+_0x4862c9(0x1fa)+'请手动删除');for(const _0x16f918 of _0x33130a)await rm(_0x16f918,{'recursive':!![],'force':!![]});return await removeSkillConfigEntries(_0x4b2285,[..._0x5840f1]),{'ok':!![],'skillKey':_0x32b108};}export async function updateManagedSkillConfig({payload:payload={},configController:_0x4d5a84}){const _0x3826c6=_0x2821,_0x49e58b=asRecord(payload),_0x247fe8=getTrimmedString(_0x49e58b[_0x3826c6(0x197)]??_0x49e58b['name']);if(!_0x247fe8)throw new Error(_0x3826c6(0x1eb)+_0x3826c6(0x174)+_0x3826c6(0x17e));const _0x5e8388=await _0x4d5a84[_0x3826c6(0x1c5)+'ig']()[_0x3826c6(0x175)](()=>({})),_0x1c7c07=asRecord(_0x5e8388['skills']),_0x1f9f41={...asRecord(_0x1c7c07['entries'])},_0x224566=asRecord(_0x1f9f41[_0x247fe8]),_0x304e9c={..._0x224566};typeof _0x49e58b[_0x3826c6(0x1bb)]===_0x3826c6(0x1d0)&&(_0x304e9c[_0x3826c6(0x1bb)]=_0x49e58b['enabled']);const _0x51260={...asRecord(_0x49e58b[_0x3826c6(0x1ac)])},_0x1d7059=getTrimmedString(_0x49e58b[_0x3826c6(0x177)]);if(_0x1d7059)_0x51260[_0x3826c6(0x177)]=_0x1d7059;Object[_0x3826c6(0x1e0)](_0x51260)[_0x3826c6(0x16d)]>0x0&&(_0x304e9c[_0x3826c6(0x1ac)]={...asRecord(_0x224566[_0x3826c6(0x1ac)]),..._0x51260});const _0x5d54bb=asRecord(_0x49e58b[_0x3826c6(0x1ca)]);return Object[_0x3826c6(0x1e0)](_0x5d54bb)[_0x3826c6(0x16d)]>0x0&&(_0x304e9c['config']={...asRecord(_0x224566[_0x3826c6(0x1ca)]),..._0x5d54bb}),_0x1f9f41[_0x247fe8]=_0x304e9c,_0x1c7c07[_0x3826c6(0x1d4)]=_0x1f9f41,_0x5e8388[_0x3826c6(0x198)]=_0x1c7c07,_0x4d5a84['markConf'+_0x3826c6(0x1af)+'andledIn'+'ternally']?.(),await _0x4d5a84[_0x3826c6(0x1d8)+_0x3826c6(0x191)](_0x5e8388,_0x3826c6(0x19c)+_0x3826c6(0x178)+'ated'),{'ok':!![],'skillKey':_0x247fe8};}async function ensureManagedSkillsConfig(_0x4931d8,_0xc34519=[]){const _0x22f3cb=_0x2821,_0x570156=await _0x4931d8[_0x22f3cb(0x1c5)+'ig']()[_0x22f3cb(0x175)](()=>({})),_0x2368c2=asRecord(_0x570156[_0x22f3cb(0x198)]),_0x598633=asRecord(_0x2368c2[_0x22f3cb(0x18a)]),_0x131e40=Array['isArray'](_0x598633['extraDir'+'s'])?_0x598633[_0x22f3cb(0x192)+'s']:[],_0x13b396=join(_0x4931d8[_0x22f3cb(0x1cd)+_0x22f3cb(0x19f)](),_0x22f3cb(0x198)),_0xd78cdc=dedupeStrings([..._0x131e40,_0x13b396]),_0x75f77f={...asRecord(_0x2368c2[_0x22f3cb(0x1d4)])};let _0x25c523=JSON[_0x22f3cb(0x19b)+'y'](_0x131e40)!==JSON[_0x22f3cb(0x19b)+'y'](_0xd78cdc);for(const _0x18c67f of _0xc34519[_0x22f3cb(0x180)](getTrimmedString)['filter'](Boolean)){if(Object[_0x22f3cb(0x1db)+'e'][_0x22f3cb(0x1d9)+'operty']['call'](_0x75f77f,_0x18c67f))continue;_0x75f77f[_0x18c67f]={'enabled':!![]},_0x25c523=!![];}if(!_0x25c523)return;_0x598633[_0x22f3cb(0x192)+'s']=_0xd78cdc,_0x2368c2[_0x22f3cb(0x18a)]=_0x598633,_0x2368c2[_0x22f3cb(0x1d4)]=_0x75f77f,_0x570156[_0x22f3cb(0x198)]=_0x2368c2,_0x4931d8['markConf'+_0x22f3cb(0x1af)+_0x22f3cb(0x1f4)+'ternally']?.(),await _0x4931d8[_0x22f3cb(0x1d8)+_0x22f3cb(0x191)](_0x570156,_0x22f3cb(0x193)+_0x22f3cb(0x179)+_0x22f3cb(0x1e1)+_0x22f3cb(0x184));}export async function syncManagedSkillsToConfig(_0x5e7c99){const _0x48ad32=_0x2821,_0x48426b=join(_0x5e7c99[_0x48ad32(0x1cd)+_0x48ad32(0x19f)](),_0x48ad32(0x198)),_0xea555e=[];for(const _0x509c48 of await readdir(_0x48426b,{'withFileTypes':!![]})[_0x48ad32(0x175)](()=>[])){if(!_0x509c48[_0x48ad32(0x173)+'ory']())continue;const _0xeef2de=await resolveSkillKeyFromManifest(join(_0x48426b,_0x509c48[_0x48ad32(0x194)]));if(_0xeef2de)_0xea555e['push'](_0xeef2de);}return await ensureManagedSkillsConfig(_0x5e7c99,_0xea555e),{'skillKeys':_0xea555e};}async function resolveZipPath({payload:_0x513c34,app:_0x4ea40c,dialog:_0x1113ef,dialogWindow:_0x2f8eae}){const _0xa6b685=_0x2821,_0x1770b7=getTrimmedString(_0x513c34['zipUrl']);let _0x7942e0=getTrimmedString(_0x513c34[_0xa6b685(0x1ea)+'ZipPath']),_0x5af1a0=null;if(!_0x7942e0&&_0x1770b7){const _0x27d9f5=new URL(_0x1770b7);_0x5af1a0=await mkdtemp(join(_0x4ea40c[_0xa6b685(0x1f0)]('temp'),_0xa6b685(0x18c)+_0xa6b685(0x1e7)+_0xa6b685(0x181))),_0x7942e0=join(_0x5af1a0,basename(_0x27d9f5['pathname'])||_0xa6b685(0x1de)+'ed-skill'+_0xa6b685(0x1dd));const _0xdf6ab9=await fetch(_0x27d9f5[_0xa6b685(0x1f8)]());if(!_0xdf6ab9['ok'])throw new Error(_0xa6b685(0x1b6)+_0xa6b685(0x1bd)+'\x20'+_0xdf6ab9[_0xa6b685(0x18f)]+')');await writeFile(_0x7942e0,Buffer['from'](await _0xdf6ab9['arrayBuf'+_0xa6b685(0x1c4)]()));}if(!_0x7942e0){const _0x5eac21={'title':'导入技能\x20ZIP','properties':[_0xa6b685(0x172)],'filters':[{'name':_0xa6b685(0x1ec)+_0xa6b685(0x1c8),'extensions':[_0xa6b685(0x1d3)]}]},_0x2c836c=_0x2f8eae?await _0x1113ef[_0xa6b685(0x17f)+_0xa6b685(0x186)](_0x2f8eae,_0x5eac21):await _0x1113ef[_0xa6b685(0x17f)+_0xa6b685(0x186)](_0x5eac21);if(_0x2c836c[_0xa6b685(0x1b9)]||_0x2c836c['filePath'+'s'][_0xa6b685(0x16d)]===0x0)return{'cancelled':!![],'zipPath':null,'downloadedZipDir':_0x5af1a0};_0x7942e0=_0x2c836c[_0xa6b685(0x1e4)+'s'][0x0];}return{'cancelled':![],'zipPath':_0x7942e0,'downloadedZipDir':_0x5af1a0};}export async function importSkillZip({payload:payload={},app:_0x19b1cd,dialog:_0x4170d7,dialogWindow:_0x58c05e,configController:_0x405c0f}){const _0x701904=_0x2821,_0xf99ed=asRecord(payload),_0x1466c7=getTrimmedString(_0xf99ed[_0x701904(0x1a1)]),{cancelled:_0x5a466b,zipPath:_0x431050,downloadedZipDir:_0x5bb28a}=await resolveZipPath({'payload':_0xf99ed,'app':_0x19b1cd,'dialog':_0x4170d7,'dialogWindow':_0x58c05e});if(_0x5a466b)return{'cancelled':!![],'imported':![],'overwritten':![],'skillDirName':null,'selectedZipPath':null,'zipUrl':_0x1466c7||null,'message':_0x701904(0x1b8)};const _0x510bf2=await mkdtemp(join(_0x19b1cd[_0x701904(0x1f0)](_0x701904(0x1ab)),'wujie-sk'+_0x701904(0x1b4)+_0x701904(0x185))),_0xbac694=join(_0x510bf2,'extracte'+'d');try{await mkdir(_0xbac694,{'recursive':!![]}),await extractZipToDirectory(_0x431050,_0xbac694);const _0x5b066b=await findSkillManifestDirectories(_0xbac694);if(_0x5b066b[_0x701904(0x16d)]===0x0)throw new Error('ZIP\x20中未找到'+_0x701904(0x1c1)+'d\x20或\x20SKIL'+_0x701904(0x1a7));if(_0x5b066b[_0x701904(0x16d)]>0x1)throw new Error(_0x701904(0x18e)+'个\x20skill\x20'+_0x701904(0x17a)+_0x701904(0x1c9));const _0x591f35=_0x5b066b[0x0];await normalizeImportedSkillManifest(_0x591f35);const _0x2341b3=basename(_0x591f35),_0x1b5233=parse(_0x431050)['name'][_0x701904(0x1c3)]()||'imported'+_0x701904(0x1f7),_0x1a3175=_0x2341b3===_0x701904(0x199)+'d'?_0x1b5233:_0x2341b3,_0x460df5=await resolveSkillKeyFromManifest(_0x591f35)??_0x1a3175,_0x45ed9c=await resolveSkillVersionFromManifest(_0x591f35)??(getTrimmedString(_0xf99ed[_0x701904(0x1df)])||extractVersionFromZipUrl(_0x1466c7)),_0x281ef2=buildManagedSkillDirectoryName(_0x460df5,_0x45ed9c,_0x1a3175),_0x2f6d2a=join(_0x405c0f[_0x701904(0x1cd)+_0x701904(0x19f)](),_0x701904(0x198)),_0x34acbb=join(_0x2f6d2a,_0x281ef2);if(existsSync(_0x34acbb)){if(_0xf99ed[_0x701904(0x1d6)+'e']!==!![])return{'cancelled':![],'imported':![],'overwritten':![],'needConfirmOverwrite':!![],'skillDirName':_0x281ef2,'overwriteTargetPath':_0x34acbb,'selectedZipPath':_0x431050,'zipUrl':_0x1466c7||null,'message':_0x701904(0x1c0)+_0x281ef2+(_0x701904(0x190)+_0x701904(0x16e))};await rm(_0x34acbb,{'recursive':!![],'force':!![]});}let _0x11c005=_0x591f35;return _0x2341b3===_0x701904(0x199)+'d'&&(_0x11c005=join(_0x510bf2,_0x281ef2),await rename(_0x591f35,_0x11c005)),await moveDirectoryWithOverwrite(_0x11c005,_0x34acbb),await ensureManagedSkillsConfig(_0x405c0f,[_0x460df5]),{'cancelled':![],'imported':!![],'overwritten':_0xf99ed[_0x701904(0x1d6)+'e']===!![],'skillKey':_0x460df5,'manifestKey':_0x460df5,'skillDirName':_0x281ef2,'targetPath':_0x34acbb,'selectedZipPath':_0x431050,'zipUrl':_0x1466c7||null,'message':_0x281ef2+_0x701904(0x1d5)};}finally{await rm(_0x510bf2,{'recursive':!![],'force':!![]});if(_0x5bb28a)await rm(_0x5bb28a,{'recursive':!![],'force':!![]});}}function _0x463c(){const _0xd60ae9=['overwrit','match','writeCon','hasOwnPr','platform','prototyp','该技能不允许删除','.zip','download','version','keys','onfig\x20en','filter','find','filePath','法删除','always','ill-down','46935vmOkha','盘上的目录,可能','selected','Skill\x20ke','ZIP\x20Arch','111cSZFQi','ries\x20rem','replace','getPath','nationPa','3867919TmGpHq','1690308hifpry','andledIn','ory','source','-skill','toString','SKILLS.m','ills\x20路径,','workspac','length','是否覆盖','LiteralP','bundled','imported','openFile','isDirect','y\x20is\x20req','catch','Expand-A','apiKey','nfig\x20upd','skills\x20c','目录,当前一次只','\x27\x20-Force','ternally','技能不存在或已移','uired','showOpen','map','load-','-bundled','49956NOteHo','sured','rt-','Dialog','内置/扩展技能无','killKey','openclaw','load','5248404YszPcT','wujie-sk','ase','ZIP\x20中包含多','status','\x22已存在,请确认','fig','extraDir','managed\x20','name','7772685FLZRWd','EXDEV','skillKey','skills','extracte','14vtTtok','stringif','skill\x20co','size','-extra','tateDir','isFile','zipUrl','未找到该技能在磁','slice','SKILL.md','rchive\x20-','toUpperC','LS.md','gatewayS','请先关闭技能后再','push','temp','env','has','6NWzxVD','igWriteH',':\x5cs*(.+)','oved','-NoProfi','SKILL.MD','ill-impo','ll.exe','下载技能\x20ZIP','SKILLS.M','已取消导入','canceled','unzip','enabled','add','\x20失败(HTTP','operty','startsWi','技能目录\x22','\x20SKILL.m','920TDjIQf','trim','fer','readConf','nfig\x20ent','__MACOSX','ive','能导入一个','config','190196ZCYqzP','^\x5cs*','resolveS','isArray','-NonInte','boolean','10bCyXXX','\x27\x20-Desti','zip','entries','\x20添加成功'];_0x463c=function(){return _0xd60ae9;};return _0x463c();}
1
+ function _0x1317(){const _0x444792=['download','8TszHPx','.zip','tateDir','内置/扩展技能无','config','version','ZIP\x20中未找到','push','Expand-A','369520TxsMGC','盘上的目录,可能','ries\x20rem','nfig\x20upd','operty','find','3ifGjlH','workspac','ed-skill','markConf','EXDEV','ath\x20\x27','hasOwnPr','isDirect','ternally','match','bundled','load','from','fer','length','7734fHtFHV','fig','zipUrl','下载技能\x20ZIP','zip','能导入一个','writeCon','openFile','848889SqaYQF','个\x20skill\x20','call','arrayBuf','skillKey','nationPa','该技能不允许删除','imported','boolean','igWriteH','toUpperC','name','canceled','onfig\x20en','filter','-skill','skills\x20c','startsWi','error','isFile','trim','技能目录\x22','resolveS','SKILL.MD','-Command','技能不存在或已移','size','法删除','3549yBSUss','showOpen','openclaw','selected','enabled','rt-','apiKey','\x20失败(HTTP','pathname','andledIn','status','platform','2080685DcHpVv','env','keys','位于自定义\x20sk','892712BGuhXj','未找到该技能在磁','temp','y\x20is\x20req','disabled','ractive','LS.md','slice','getPath','gatewayS','ill-down','432873BXnFKS','win32','SKILL.md','Dialog','^\x5cs*','add','isArray','map','entries','ZIP\x20中包含多','th\x20\x27','-NonInte','导入技能\x20ZIP','-extra','code','extracte','Skill\x20ke','has','-bundled','d\x20或\x20SKIL','catch','replace','managed\x20','killKey','overwrit','filePath','prototyp','unzip','wujie-sk','extraDir','ase','SKILLS.M','__MACOSX','readConf','skills','source','ory','\x20SKILL.m','\x27\x20-Desti','utf8','ive','stringif','已取消导入','uired','31852wawGlt','rchive\x20-','目录,当前一次只','请手动删除','是否覆盖','skill\x20co','always','powershe'];_0x1317=function(){return _0x444792;};return _0x1317();}(function(_0x496664,_0x224950){const _0x4d387d=_0x26df,_0x562158=_0x496664();while(!![]){try{const _0x568a06=-parseInt(_0x4d387d(0x25f))/0x1+-parseInt(_0x4d387d(0x1f9))/0x2*(-parseInt(_0x4d387d(0x211))/0x3)+-parseInt(_0x4d387d(0x254))/0x4+parseInt(_0x4d387d(0x250))/0x5+parseInt(_0x4d387d(0x220))/0x6*(parseInt(_0x4d387d(0x244))/0x7)+-parseInt(_0x4d387d(0x202))/0x8*(parseInt(_0x4d387d(0x228))/0x9)+parseInt(_0x4d387d(0x20b))/0xa;if(_0x568a06===_0x224950)break;else _0x562158['push'](_0x562158['shift']());}catch(_0x291f11){_0x562158['push'](_0x562158['shift']());}}}(_0x1317,0x5adc6));import{execFile}from'node:child_process';import{existsSync}from'node:fs';function _0x26df(_0x1c42c6,_0x2eb6ec){_0x1c42c6=_0x1c42c6-0x1eb;const _0x13177f=_0x1317();let _0x26df64=_0x13177f[_0x1c42c6];return _0x26df64;}import{cp,mkdir,mkdtemp,readFile,readdir,rename,rm,writeFile}from'node:fs/promises';import{basename,dirname,join,parse}from'node:path';import{asRecord,dedupeStrings,getTrimmedString}from'../common/utils.mjs';function sanitizeManagedSkillDirSegment(_0x44b0e1){const _0x1d9032=_0x26df;let _0x315b17=getTrimmedString(_0x44b0e1)[_0x1d9032(0x274)](/[<>:"/\\|?*\u0000-\u001f]/g,'-');return _0x315b17=_0x315b17[_0x1d9032(0x274)](/-+/g,'-')[_0x1d9032(0x274)](/^[-.]+|[-.]+$/g,''),_0x315b17['slice'](0x0,0x78);}function buildManagedSkillDirectoryName(_0x44cafb,_0x424c2f,_0x2d40b8){const _0x572687=_0x26df,_0x1f9e75=sanitizeManagedSkillDirSegment(_0x44cafb)||sanitizeManagedSkillDirSegment(_0x2d40b8)||'imported'+_0x572687(0x237),_0x54c37b=sanitizeManagedSkillDirSegment(_0x424c2f),_0xe828c4=_0x54c37b?_0x1f9e75+'-'+_0x54c37b:_0x1f9e75;return _0xe828c4[_0x572687(0x25b)](0x0,0xc8)||_0x572687(0x22f)+'-skill';}function extractVersionFromZipUrl(_0x25d421){const _0x334504=_0x26df;if(!getTrimmedString(_0x25d421))return null;try{const _0x258bd3=basename(new URL(_0x25d421)[_0x334504(0x24c)]),_0x2dd8c8=_0x258bd3[_0x334504(0x274)](/\.zip$/i,'');return _0x2dd8c8[_0x334504(0x21a)](/(?:^|[-_v])(\d+\.\d+\.\d+(?:[-+][\w.-]+)?)(?:$|[-_])/i)?.[0x1]??null;}catch{return null;}}async function extractZipToDirectory(_0x5604e2,_0x31a076){await new Promise((_0x28ea36,_0x28f607)=>{const _0x142a16=_0x26df;let _0x49f9c0;if(process[_0x142a16(0x24f)]===_0x142a16(0x260)){const _0x549b47=_0x5604e2[_0x142a16(0x274)](/'/g,'\x27\x27'),_0x17993c=_0x31a076[_0x142a16(0x274)](/'/g,'\x27\x27');_0x49f9c0=execFile(_0x142a16(0x200)+'ll.exe',['-NoProfi'+'le',_0x142a16(0x26a)+_0x142a16(0x259),_0x142a16(0x240),_0x142a16(0x20a)+_0x142a16(0x1fa)+'LiteralP'+_0x142a16(0x216)+_0x549b47+(_0x142a16(0x1f3)+_0x142a16(0x22d)+_0x142a16(0x269))+_0x17993c+'\x27\x20-Force'],_0x1d034b=>_0x1d034b?_0x28f607(_0x1d034b):_0x28ea36());}else _0x49f9c0=execFile(_0x142a16(0x27a),['-q',_0x5604e2,'-d',_0x31a076],_0x585d39=>_0x585d39?_0x28f607(_0x585d39):_0x28ea36());_0x49f9c0['on'](_0x142a16(0x23a),_0x28f607);});}async function findSkillManifestDirectories(_0x3646c4){const _0x488c02=[];async function _0xba99c7(_0x29676e){const _0x4f6e6f=_0x26df,_0x156e41=await readdir(_0x29676e,{'withFileTypes':!![]}),_0x3c11a6=new Set(_0x156e41[_0x4f6e6f(0x266)](_0x4a4e81=>_0x4a4e81[_0x4f6e6f(0x233)][_0x4f6e6f(0x232)+'ase']()));if(_0x3c11a6[_0x4f6e6f(0x270)](_0x4f6e6f(0x23f))||_0x3c11a6['has'](_0x4f6e6f(0x1ec)+'D')){_0x488c02[_0x4f6e6f(0x209)](_0x29676e);return;}for(const _0x4dcd01 of _0x156e41){if(!_0x4dcd01[_0x4f6e6f(0x218)+_0x4f6e6f(0x1f1)]()||_0x4dcd01[_0x4f6e6f(0x233)]===_0x4f6e6f(0x1ed)||_0x4dcd01[_0x4f6e6f(0x233)][_0x4f6e6f(0x239)+'th']('.'))continue;await _0xba99c7(join(_0x29676e,_0x4dcd01[_0x4f6e6f(0x233)]));}}return await _0xba99c7(_0x3646c4),_0x488c02;}async function normalizeImportedSkillManifest(_0xc8085e){const _0x32aac6=_0x26df,_0xfc0b3d=join(_0xc8085e,'SKILL.md'),_0x52435c=await readdir(_0xc8085e,{'withFileTypes':!![]})['catch'](()=>[]);let _0x3207c1=null,_0x3e37ca=null;for(const _0x2bb35c of _0x52435c){if(!_0x2bb35c[_0x32aac6(0x23b)]())continue;const _0x3829d0=_0x2bb35c[_0x32aac6(0x233)][_0x32aac6(0x232)+_0x32aac6(0x1eb)]();if(_0x3829d0===_0x32aac6(0x23f))_0x3207c1=_0x2bb35c[_0x32aac6(0x233)];else{if(_0x3829d0==='SKILLS.M'+'D')_0x3e37ca=_0x2bb35c[_0x32aac6(0x233)];}}if(_0x3207c1===_0x32aac6(0x261))return;const _0x1ad8f8=_0x3207c1??_0x3e37ca;if(!_0x1ad8f8)return;const _0x370a3d=join(_0xc8085e,_0x1ad8f8);if(_0x370a3d!==_0xfc0b3d)await rename(_0x370a3d,_0xfc0b3d);}async function moveDirectoryWithOverwrite(_0x38d246,_0x2dc1fd){const _0x512b86=_0x26df;await mkdir(dirname(_0x2dc1fd),{'recursive':!![]});try{await rename(_0x38d246,_0x2dc1fd);return;}catch(_0x1f4c82){if(_0x1f4c82?.[_0x512b86(0x26d)]!==_0x512b86(0x215))throw _0x1f4c82;}await cp(_0x38d246,_0x2dc1fd,{'recursive':!![],'force':!![]}),await rm(_0x38d246,{'recursive':!![],'force':!![]});}async function readManifestText(_0x172a2f){const _0x5a352f=_0x26df,_0x1e2ab0=[join(_0x172a2f,_0x5a352f(0x261)),join(_0x172a2f,'SKILLS.m'+'d')][_0x5a352f(0x210)](_0x2870ab=>existsSync(_0x2870ab));if(!_0x1e2ab0)return'';return await readFile(_0x1e2ab0,_0x5a352f(0x1f4))['catch'](()=>'');}function resolveFrontmatterValue(_0x3abfd7,_0x61dc75){const _0x27a12f=_0x26df,_0x32460e=_0x3abfd7[_0x27a12f(0x21a)](/^---\s*\r?\n([\s\S]*?)\r?\n---/),_0x17226d=_0x32460e?.[0x1]??'',_0x4e9037=_0x17226d[_0x27a12f(0x21a)](new RegExp(_0x27a12f(0x263)+_0x61dc75+(':\x5cs*(.+)'+'$'),'m'))?.[0x1];return getTrimmedString(_0x4e9037)['replace'](/^["']|["']$/g,'')||null;}async function resolveSkillKeyFromManifest(_0x491332){const _0x21ab52=_0x26df,_0x5da22a=await readManifestText(_0x491332);if(!_0x5da22a[_0x21ab52(0x23c)]())return null;const _0x1f1022=_0x5da22a['match'](/"skillKey"\s*:\s*"([^"]+)"/);if(_0x1f1022?.[0x1])return getTrimmedString(_0x1f1022[0x1]);return resolveFrontmatterValue(_0x5da22a,'skillKey')||resolveFrontmatterValue(_0x5da22a,_0x21ab52(0x233));}async function resolveSkillVersionFromManifest(_0x198d42){const _0x4b5452=_0x26df,_0x2e9a08=await readManifestText(_0x198d42);if(!_0x2e9a08[_0x4b5452(0x23c)]())return null;const _0x13f4c2=_0x2e9a08[_0x4b5452(0x21a)](/"version"\s*:\s*"([^"]+)"/);if(_0x13f4c2?.[0x1])return getTrimmedString(_0x13f4c2[0x1]);return resolveFrontmatterValue(_0x2e9a08,_0x4b5452(0x207));}async function collectSkillDirsUnderRoot(_0xadb5b2,_0x50b598,_0x4d27d5){const _0x1da192=_0x26df;if(!existsSync(_0xadb5b2))return;for(const _0x104dfe of await readdir(_0xadb5b2,{'withFileTypes':!![]})[_0x1da192(0x273)](()=>[])){if(!_0x104dfe[_0x1da192(0x218)+_0x1da192(0x1f1)]())continue;const _0x69aa31=join(_0xadb5b2,_0x104dfe[_0x1da192(0x233)]),_0x483cf9=await resolveSkillKeyFromManifest(_0x69aa31);if(_0x483cf9&&_0x50b598['has'](_0x483cf9))_0x4d27d5[_0x1da192(0x264)](_0x69aa31);}}async function removeSkillConfigEntries(_0x464aaa,_0x3ef327){const _0x382759=_0x26df,_0x3d1d50=new Set(_0x3ef327[_0x382759(0x266)](getTrimmedString)['filter'](Boolean));if(_0x3d1d50['size']===0x0)return;const _0x455d1d=await _0x464aaa[_0x382759(0x1ee)+'ig']()[_0x382759(0x273)](()=>({})),_0x160874=asRecord(_0x455d1d[_0x382759(0x1ef)]),_0x555a7e={...asRecord(_0x160874[_0x382759(0x267)])};let _0x227edb=![];for(const _0xf5e9cb of _0x3d1d50){Object[_0x382759(0x279)+'e'][_0x382759(0x217)+'operty'][_0x382759(0x22a)](_0x555a7e,_0xf5e9cb)&&(delete _0x555a7e[_0xf5e9cb],_0x227edb=!![]);}if(!_0x227edb)return;_0x160874[_0x382759(0x267)]=_0x555a7e,_0x455d1d[_0x382759(0x1ef)]=_0x160874,_0x464aaa[_0x382759(0x214)+_0x382759(0x231)+_0x382759(0x24d)+_0x382759(0x219)]?.(),await _0x464aaa[_0x382759(0x226)+_0x382759(0x221)](_0x455d1d,_0x382759(0x1fe)+'nfig\x20ent'+_0x382759(0x20d)+'oved');}export async function deleteManagedSkill({payload:payload={},gateway:_0x4b910e,configController:_0x4bd4a1}){const _0x5115de=_0x26df,_0x133471=asRecord(payload),_0x526fc7=getTrimmedString(_0x133471[_0x5115de(0x22c)]??_0x133471['name']);if(!_0x526fc7)throw new Error(_0x5115de(0x26f)+_0x5115de(0x257)+_0x5115de(0x1f8));const _0x183fb9=await _0x4b910e[_0x5115de(0x1ef)][_0x5115de(0x24e)]()['catch'](()=>({'skills':[]})),_0x163a8e=Array['isArray'](asRecord(_0x183fb9)[_0x5115de(0x1ef)])?asRecord(_0x183fb9)[_0x5115de(0x1ef)]:[],_0x2124a9=_0x163a8e[_0x5115de(0x266)](asRecord)[_0x5115de(0x210)](_0x229cb3=>{const _0x8154e1=_0x5115de;return getTrimmedString(_0x229cb3[_0x8154e1(0x22c)])===_0x526fc7||getTrimmedString(_0x229cb3['gatewayS'+_0x8154e1(0x276)])===_0x526fc7||getTrimmedString(_0x229cb3[_0x8154e1(0x233)])===_0x526fc7;});if(!_0x2124a9)throw new Error(_0x5115de(0x241)+'除');if(_0x2124a9[_0x5115de(0x1ff)])throw new Error(_0x5115de(0x22e));if(_0x2124a9[_0x5115de(0x21b)]||_0x2124a9[_0x5115de(0x1f0)]===_0x5115de(0x246)+_0x5115de(0x271)||_0x2124a9[_0x5115de(0x1f0)]===_0x5115de(0x246)+_0x5115de(0x26c))throw new Error(_0x5115de(0x205)+_0x5115de(0x243));if(!_0x2124a9[_0x5115de(0x258)])throw new Error('请先关闭技能后再'+'删除');const _0x14a61e=getTrimmedString(_0x2124a9[_0x5115de(0x25d)+_0x5115de(0x276)])||_0x526fc7,_0x2ed62c=new Set([_0x526fc7,_0x14a61e,getTrimmedString(_0x2124a9[_0x5115de(0x233)])][_0x5115de(0x236)](Boolean)),_0x5024d8=new Set([join(_0x4bd4a1[_0x5115de(0x23e)+'tateDir'](),'skills'),join(_0x4bd4a1[_0x5115de(0x23e)+'tateDir'](),_0x5115de(0x212)+'e',_0x5115de(0x1ef))]),_0x37a92a=new Set();for(const _0x17581a of _0x5024d8)await collectSkillDirsUnderRoot(_0x17581a,_0x2ed62c,_0x37a92a);if(_0x37a92a[_0x5115de(0x242)]===0x0)throw new Error(_0x5115de(0x255)+_0x5115de(0x20c)+_0x5115de(0x253)+'ills\x20路径,'+_0x5115de(0x1fc));for(const _0x1ad5d9 of _0x37a92a)await rm(_0x1ad5d9,{'recursive':!![],'force':!![]});return await removeSkillConfigEntries(_0x4bd4a1,[..._0x2ed62c]),{'ok':!![],'skillKey':_0x526fc7};}export async function updateManagedSkillConfig({payload:payload={},configController:_0x4f5c89}){const _0x1463e3=_0x26df,_0x520d04=asRecord(payload),_0x3556b1=getTrimmedString(_0x520d04[_0x1463e3(0x22c)]??_0x520d04[_0x1463e3(0x233)]);if(!_0x3556b1)throw new Error('Skill\x20ke'+_0x1463e3(0x257)+_0x1463e3(0x1f8));const _0x57814a=await _0x4f5c89[_0x1463e3(0x1ee)+'ig']()[_0x1463e3(0x273)](()=>({})),_0x1e3a8b=asRecord(_0x57814a[_0x1463e3(0x1ef)]),_0x39d8e8={...asRecord(_0x1e3a8b[_0x1463e3(0x267)])},_0x5a1c10=asRecord(_0x39d8e8[_0x3556b1]),_0xac6142={..._0x5a1c10};typeof _0x520d04[_0x1463e3(0x248)]===_0x1463e3(0x230)&&(_0xac6142[_0x1463e3(0x248)]=_0x520d04[_0x1463e3(0x248)]);const _0x159373={...asRecord(_0x520d04[_0x1463e3(0x251)])},_0x2de991=getTrimmedString(_0x520d04[_0x1463e3(0x24a)]);if(_0x2de991)_0x159373[_0x1463e3(0x24a)]=_0x2de991;Object['keys'](_0x159373)[_0x1463e3(0x21f)]>0x0&&(_0xac6142[_0x1463e3(0x251)]={...asRecord(_0x5a1c10[_0x1463e3(0x251)]),..._0x159373});const _0x333a67=asRecord(_0x520d04[_0x1463e3(0x206)]);return Object[_0x1463e3(0x252)](_0x333a67)[_0x1463e3(0x21f)]>0x0&&(_0xac6142[_0x1463e3(0x206)]={...asRecord(_0x5a1c10[_0x1463e3(0x206)]),..._0x333a67}),_0x39d8e8[_0x3556b1]=_0xac6142,_0x1e3a8b[_0x1463e3(0x267)]=_0x39d8e8,_0x57814a[_0x1463e3(0x1ef)]=_0x1e3a8b,_0x4f5c89[_0x1463e3(0x214)+_0x1463e3(0x231)+'andledIn'+'ternally']?.(),await _0x4f5c89[_0x1463e3(0x226)+_0x1463e3(0x221)](_0x57814a,_0x1463e3(0x1fe)+_0x1463e3(0x20e)+'ated'),{'ok':!![],'skillKey':_0x3556b1};}async function ensureManagedSkillsConfig(_0x5b6431,_0x43a3c4=[]){const _0x23e938=_0x26df,_0x1c26ec=await _0x5b6431['readConf'+'ig']()['catch'](()=>({})),_0x101ed5=asRecord(_0x1c26ec[_0x23e938(0x1ef)]),_0x254b66=asRecord(_0x101ed5[_0x23e938(0x21c)]),_0x30e3c1=Array[_0x23e938(0x265)](_0x254b66['extraDir'+'s'])?_0x254b66[_0x23e938(0x27c)+'s']:[],_0x1e6b3f=join(_0x5b6431[_0x23e938(0x23e)+'tateDir'](),_0x23e938(0x1ef)),_0x457f1d=dedupeStrings([..._0x30e3c1,_0x1e6b3f]),_0x28098d={...asRecord(_0x101ed5[_0x23e938(0x267)])};let _0xb85904=JSON['stringif'+'y'](_0x30e3c1)!==JSON[_0x23e938(0x1f6)+'y'](_0x457f1d);for(const _0x4ee884 of _0x43a3c4['map'](getTrimmedString)[_0x23e938(0x236)](Boolean)){if(Object[_0x23e938(0x279)+'e'][_0x23e938(0x217)+_0x23e938(0x20f)]['call'](_0x28098d,_0x4ee884))continue;_0x28098d[_0x4ee884]={'enabled':!![]},_0xb85904=!![];}if(!_0xb85904)return;_0x254b66[_0x23e938(0x27c)+'s']=_0x457f1d,_0x101ed5['load']=_0x254b66,_0x101ed5['entries']=_0x28098d,_0x1c26ec[_0x23e938(0x1ef)]=_0x101ed5,_0x5b6431[_0x23e938(0x214)+_0x23e938(0x231)+_0x23e938(0x24d)+_0x23e938(0x219)]?.(),await _0x5b6431[_0x23e938(0x226)+_0x23e938(0x221)](_0x1c26ec,_0x23e938(0x275)+_0x23e938(0x238)+_0x23e938(0x235)+'sured');}export async function syncManagedSkillsToConfig(_0x3370a1){const _0x1a5db4=_0x26df,_0x8cf38a=join(_0x3370a1[_0x1a5db4(0x23e)+_0x1a5db4(0x204)](),'skills'),_0x1a8a30=[];for(const _0x5f5964 of await readdir(_0x8cf38a,{'withFileTypes':!![]})['catch'](()=>[])){if(!_0x5f5964[_0x1a5db4(0x218)+_0x1a5db4(0x1f1)]())continue;const _0x27b569=await resolveSkillKeyFromManifest(join(_0x8cf38a,_0x5f5964[_0x1a5db4(0x233)]));if(_0x27b569)_0x1a8a30['push'](_0x27b569);}return await ensureManagedSkillsConfig(_0x3370a1,_0x1a8a30),{'skillKeys':_0x1a8a30};}async function resolveZipPath({payload:_0x44588a,app:_0x5eec23,dialog:_0x44ade7,dialogWindow:_0x240fde}){const _0x52fe7f=_0x26df,_0x42bec0=getTrimmedString(_0x44588a[_0x52fe7f(0x222)]);let _0x3f441b=getTrimmedString(_0x44588a[_0x52fe7f(0x247)+'ZipPath']),_0x2cad7a=null;if(!_0x3f441b&&_0x42bec0){const _0x22450c=new URL(_0x42bec0);_0x2cad7a=await mkdtemp(join(_0x5eec23[_0x52fe7f(0x25c)](_0x52fe7f(0x256)),_0x52fe7f(0x27b)+_0x52fe7f(0x25e)+'load-')),_0x3f441b=join(_0x2cad7a,basename(_0x22450c['pathname'])||_0x52fe7f(0x201)+_0x52fe7f(0x213)+_0x52fe7f(0x203));const _0x138864=await fetch(_0x22450c['toString']());if(!_0x138864['ok'])throw new Error(_0x52fe7f(0x223)+_0x52fe7f(0x24b)+'\x20'+_0x138864['status']+')');await writeFile(_0x3f441b,Buffer[_0x52fe7f(0x21d)](await _0x138864[_0x52fe7f(0x22b)+_0x52fe7f(0x21e)]()));}if(!_0x3f441b){const _0x5d45ed={'title':_0x52fe7f(0x26b),'properties':[_0x52fe7f(0x227)],'filters':[{'name':'ZIP\x20Arch'+_0x52fe7f(0x1f5),'extensions':[_0x52fe7f(0x224)]}]},_0x4ccc22=_0x240fde?await _0x44ade7[_0x52fe7f(0x245)+_0x52fe7f(0x262)](_0x240fde,_0x5d45ed):await _0x44ade7[_0x52fe7f(0x245)+_0x52fe7f(0x262)](_0x5d45ed);if(_0x4ccc22[_0x52fe7f(0x234)]||_0x4ccc22[_0x52fe7f(0x278)+'s'][_0x52fe7f(0x21f)]===0x0)return{'cancelled':!![],'zipPath':null,'downloadedZipDir':_0x2cad7a};_0x3f441b=_0x4ccc22[_0x52fe7f(0x278)+'s'][0x0];}return{'cancelled':![],'zipPath':_0x3f441b,'downloadedZipDir':_0x2cad7a};}export async function importSkillZip({payload:payload={},app:_0x1d2ada,dialog:_0xc71216,dialogWindow:_0x44db7d,configController:_0x5a1198}){const _0x56e0ab=_0x26df,_0x4a660a=asRecord(payload),_0x4caf64=getTrimmedString(_0x4a660a['zipUrl']),{cancelled:_0x2f58f5,zipPath:_0x1653c0,downloadedZipDir:_0x94f754}=await resolveZipPath({'payload':_0x4a660a,'app':_0x1d2ada,'dialog':_0xc71216,'dialogWindow':_0x44db7d});if(_0x2f58f5)return{'cancelled':!![],'imported':![],'overwritten':![],'skillDirName':null,'selectedZipPath':null,'zipUrl':_0x4caf64||null,'message':_0x56e0ab(0x1f7)};const _0x4a108e=await mkdtemp(join(_0x1d2ada[_0x56e0ab(0x25c)](_0x56e0ab(0x256)),_0x56e0ab(0x27b)+'ill-impo'+_0x56e0ab(0x249))),_0x116491=join(_0x4a108e,_0x56e0ab(0x26e)+'d');try{await mkdir(_0x116491,{'recursive':!![]}),await extractZipToDirectory(_0x1653c0,_0x116491);const _0x5b44d6=await findSkillManifestDirectories(_0x116491);if(_0x5b44d6[_0x56e0ab(0x21f)]===0x0)throw new Error(_0x56e0ab(0x208)+_0x56e0ab(0x1f2)+_0x56e0ab(0x272)+_0x56e0ab(0x25a));if(_0x5b44d6[_0x56e0ab(0x21f)]>0x1)throw new Error(_0x56e0ab(0x268)+_0x56e0ab(0x229)+_0x56e0ab(0x1fb)+_0x56e0ab(0x225));const _0x2941a0=_0x5b44d6[0x0];await normalizeImportedSkillManifest(_0x2941a0);const _0x1c6a79=basename(_0x2941a0),_0x1eb787=parse(_0x1653c0)[_0x56e0ab(0x233)][_0x56e0ab(0x23c)]()||'imported'+_0x56e0ab(0x237),_0x33d780=_0x1c6a79==='extracte'+'d'?_0x1eb787:_0x1c6a79,_0x51a5e8=await resolveSkillKeyFromManifest(_0x2941a0)??_0x33d780,_0xd44737=await resolveSkillVersionFromManifest(_0x2941a0)??(getTrimmedString(_0x4a660a['version'])||extractVersionFromZipUrl(_0x4caf64)),_0x18bac3=buildManagedSkillDirectoryName(_0x51a5e8,_0xd44737,_0x33d780),_0x17fc5a=join(_0x5a1198[_0x56e0ab(0x23e)+_0x56e0ab(0x204)](),_0x56e0ab(0x1ef)),_0x3a1375=join(_0x17fc5a,_0x18bac3);if(existsSync(_0x3a1375)){if(_0x4a660a[_0x56e0ab(0x277)+'e']!==!![])return{'cancelled':![],'imported':![],'overwritten':![],'needConfirmOverwrite':!![],'skillDirName':_0x18bac3,'overwriteTargetPath':_0x3a1375,'selectedZipPath':_0x1653c0,'zipUrl':_0x4caf64||null,'message':_0x56e0ab(0x23d)+_0x18bac3+('\x22已存在,请确认'+_0x56e0ab(0x1fd))};await rm(_0x3a1375,{'recursive':!![],'force':!![]});}let _0xaad42c=_0x2941a0;return _0x1c6a79==='extracte'+'d'&&(_0xaad42c=join(_0x4a108e,_0x18bac3),await rename(_0x2941a0,_0xaad42c)),await moveDirectoryWithOverwrite(_0xaad42c,_0x3a1375),await ensureManagedSkillsConfig(_0x5a1198,[_0x51a5e8]),{'cancelled':![],'imported':!![],'overwritten':_0x4a660a[_0x56e0ab(0x277)+'e']===!![],'skillKey':_0x51a5e8,'manifestKey':_0x51a5e8,'skillDirName':_0x18bac3,'targetPath':_0x3a1375,'selectedZipPath':_0x1653c0,'zipUrl':_0x4caf64||null,'message':_0x18bac3+'\x20添加成功'};}finally{await rm(_0x4a108e,{'recursive':!![],'force':!![]});if(_0x94f754)await rm(_0x94f754,{'recursive':!![],'force':!![]});}}
@@ -1 +1 @@
1
- const _0x5c93ca=_0x244b;(function(_0x5734ce,_0x470c24){const _0x53047b=_0x244b,_0x3e788e=_0x5734ce();while(!![]){try{const _0x24e141=-parseInt(_0x53047b(0x1e0))/0x1*(parseInt(_0x53047b(0x1f9))/0x2)+-parseInt(_0x53047b(0x1d7))/0x3+-parseInt(_0x53047b(0x1db))/0x4+-parseInt(_0x53047b(0x209))/0x5*(-parseInt(_0x53047b(0x1de))/0x6)+-parseInt(_0x53047b(0x1f0))/0x7*(parseInt(_0x53047b(0x1eb))/0x8)+-parseInt(_0x53047b(0x1d9))/0x9*(parseInt(_0x53047b(0x20f))/0xa)+parseInt(_0x53047b(0x20d))/0xb*(parseInt(_0x53047b(0x206))/0xc);if(_0x24e141===_0x470c24)break;else _0x3e788e['push'](_0x3e788e['shift']());}catch(_0x544dbc){_0x3e788e['push'](_0x3e788e['shift']());}}}(_0x4e84,0x1d099));import{readFile,readdir,rm}from'node:fs/promises';import{join}from'node:path';import{asRecord,getTrimmedString,writeJson}from'../common/utils.mjs';const SKILL_SOURCE_MARKET=_0x5c93ca(0x1e9)+_0x5c93ca(0x200);async function readMarketSkillRegistry(_0x28eb58){const _0x2b0f13=_0x5c93ca;try{const _0xddf0ba=JSON['parse'](await readFile(_0x28eb58,_0x2b0f13(0x201)));if(!_0xddf0ba||typeof _0xddf0ba!==_0x2b0f13(0x1f2)||Array[_0x2b0f13(0x1fb)](_0xddf0ba))return{};return _0xddf0ba;}catch{return{};}}export async function readSkillMarketRegistry(_0x3298f9){const _0x4933c9=_0x5c93ca;return await readMarketSkillRegistry(join(_0x3298f9,_0x4933c9(0x1e1)+'kills.js'+'on'));}async function upsertMarketSkillRegistryEntry(_0x2cbfad,_0x35c6ea,_0x114afa,_0x3e31cb,_0x2d446f={}){const _0xd88772=_0x5c93ca,_0x2488f0=getTrimmedString(_0x35c6ea),_0x43b583=getTrimmedString(_0x114afa),_0xf8eaac=getTrimmedString(_0x3e31cb);if(!_0x2488f0||!_0x43b583||!_0xf8eaac)return;const _0x2bd1f6=await readMarketSkillRegistry(_0x2cbfad);_0x2bd1f6[_0x2488f0]={'version':_0xf8eaac,'code':_0x43b583,...getTrimmedString(_0x2d446f[_0xd88772(0x1f5)])?{'name':getTrimmedString(_0x2d446f['name'])}:{},...getTrimmedString(_0x2d446f[_0xd88772(0x208)])?{'logo_url':getTrimmedString(_0x2d446f[_0xd88772(0x208)])}:{},...getTrimmedString(_0x2d446f[_0xd88772(0x1e3)+_0xd88772(0x1d6)])?{'description':getTrimmedString(_0x2d446f[_0xd88772(0x1e3)+_0xd88772(0x1d6)])}:{}};if(_0x2bd1f6[_0x43b583]&&_0x43b583!==_0x2488f0)delete _0x2bd1f6[_0x43b583];for(const [_0x2d4ffd,_0x8b0dc8]of Object[_0xd88772(0x1ef)](_0x2bd1f6)){if(_0x2d4ffd!==_0x2488f0&&asRecord(_0x8b0dc8)[_0xd88772(0x1da)]===_0x43b583)delete _0x2bd1f6[_0x2d4ffd];}const _0x5bf9c5=Object[_0xd88772(0x1e5)+_0xd88772(0x1df)](Object[_0xd88772(0x1ef)](_0x2bd1f6)[_0xd88772(0x1f4)](([_0x57db34],[_0x2f370d])=>_0x57db34[_0xd88772(0x1ee)+'mpare'](_0x2f370d)));await writeJson(_0x2cbfad,_0x5bf9c5);}async function removeMarketSkillRegistryKeys(_0x90258e,_0x5eae7c){const _0xe10794=_0x5c93ca,_0x50a300=new Set(_0x5eae7c['map'](getTrimmedString)['filter'](Boolean));if(_0x50a300[_0xe10794(0x1e2)]===0x0)return;const _0x346aa3=await readMarketSkillRegistry(_0x90258e);let _0x195c4b=![];for(const _0x413fa9 of Object['keys'](_0x346aa3)){const _0x1a46f1=asRecord(_0x346aa3[_0x413fa9]);(_0x50a300[_0xe10794(0x1ed)](_0x413fa9)||_0x50a300[_0xe10794(0x1ed)](getTrimmedString(_0x1a46f1[_0xe10794(0x1da)])))&&(delete _0x346aa3[_0x413fa9],_0x195c4b=!![]);}if(_0x195c4b){const _0x3c5162=Object['fromEntr'+_0xe10794(0x1df)](Object[_0xe10794(0x1ef)](_0x346aa3)[_0xe10794(0x1f4)](([_0x3e8483],[_0x56d7fb])=>_0x3e8483[_0xe10794(0x1ee)+_0xe10794(0x1f8)](_0x56d7fb)));await writeJson(_0x90258e,_0x3c5162);}}async function readSkillManifestText(_0x3ecb0b){const _0x54425d=_0x5c93ca,_0x336dd6=[join(_0x3ecb0b,_0x54425d(0x1fc)),join(_0x3ecb0b,'SKILLS.m'+'d')];for(const _0x50187b of _0x336dd6){const _0x14003e=await readFile(_0x50187b,_0x54425d(0x201))[_0x54425d(0x1f6)](()=>'');if(_0x14003e[_0x54425d(0x20c)]())return _0x14003e;}return'';}function resolveFrontmatterValue(_0x2440b9,_0x53ef41){const _0x5b09da=_0x5c93ca,_0xb3b59a=_0x2440b9['match'](/^---\s*\r?\n([\s\S]*?)\r?\n---/),_0x3f6913=_0xb3b59a?.[0x1]??'',_0x535d56=_0x3f6913[_0x5b09da(0x20b)](new RegExp(_0x5b09da(0x1dd)+_0x53ef41+(_0x5b09da(0x203)+'$'),'m'))?.[0x1];return getTrimmedString(_0x535d56)['replace'](/^["']|["']$/g,'')||null;}async function resolveSkillKeyFromManifest(_0x14d492){const _0x5d3ac8=_0x5c93ca,_0x55d8a9=await readSkillManifestText(_0x14d492);if(!_0x55d8a9['trim']())return null;const _0x298320=_0x55d8a9[_0x5d3ac8(0x20b)](/"skillKey"\s*:\s*"([^"]+)"/);if(_0x298320?.[0x1])return getTrimmedString(_0x298320[0x1]);return resolveFrontmatterValue(_0x55d8a9,_0x5d3ac8(0x1e6))||resolveFrontmatterValue(_0x55d8a9,_0x5d3ac8(0x1f5));}async function removeOtherMarketSkillVersions(_0x203b99,_0x3efada,_0x529f5a){const _0x2457f0=_0x5c93ca,_0xa464a9=getTrimmedString(_0x529f5a);if(!_0xa464a9)return;for(const _0x5db4c3 of await readdir(_0x203b99,{'withFileTypes':!![]})['catch'](()=>[])){if(!_0x5db4c3[_0x2457f0(0x1f7)+_0x2457f0(0x1ff)]())continue;const _0x2e16a9=join(_0x203b99,_0x5db4c3[_0x2457f0(0x1f5)]);if(_0x2e16a9===_0x3efada)continue;const _0x2eec6e=await resolveSkillKeyFromManifest(_0x2e16a9);_0x2eec6e&&_0x2eec6e['trim']()===_0xa464a9&&await rm(_0x2e16a9,{'recursive':!![],'force':!![]});}}export async function importMarketSkillZip({payload:payload={},importSkillZip:_0x35bd99,configController:_0x3310c5}={}){const _0x5855a9=_0x5c93ca,_0x2a4c69=asRecord(payload);if(_0x2a4c69['source']!==_0x5855a9(0x20a))return _0x35bd99({'payload':payload});const _0x4c409f=getTrimmedString(_0x2a4c69[_0x5855a9(0x1da)]),_0x1cb90d=getTrimmedString(_0x2a4c69[_0x5855a9(0x205)]),_0x138c3a=getTrimmedString(_0x2a4c69['name']);if(!_0x4c409f)throw new Error(_0x5855a9(0x204)+_0x5855a9(0x20e)+'de');if(!_0x1cb90d)throw new Error(_0x5855a9(0x204)+_0x5855a9(0x1fd)+_0x5855a9(0x202));if(!_0x138c3a)throw new Error(_0x5855a9(0x204)+'接口返回的\x20na'+'me');const _0x60aa6d=await _0x35bd99({'payload':{..._0x2a4c69,'version':_0x1cb90d}});if(!_0x60aa6d?.[_0x5855a9(0x1e7)])return _0x60aa6d;const _0x199686=getTrimmedString(_0x60aa6d[_0x5855a9(0x1e6)])||getTrimmedString(_0x60aa6d[_0x5855a9(0x1ea)+_0x5855a9(0x1ec)])||getTrimmedString(_0x60aa6d[_0x5855a9(0x207)+_0x5855a9(0x1f3)]);return await removeOtherMarketSkillVersions(join(_0x3310c5[_0x5855a9(0x1e4)+'tateDir'](),_0x5855a9(0x1fe)),_0x60aa6d[_0x5855a9(0x1f1)+'th'],_0x199686),await upsertMarketSkillRegistryEntry(join(_0x3310c5[_0x5855a9(0x1e4)+_0x5855a9(0x1d8)](),_0x5855a9(0x1e1)+'kills.js'+'on'),_0x199686,_0x4c409f,_0x1cb90d,{'name':_0x138c3a,'logoUrl':getTrimmedString(_0x2a4c69[_0x5855a9(0x208)]),'description':getTrimmedString(_0x2a4c69[_0x5855a9(0x1e3)+_0x5855a9(0x1d6)])}),_0x60aa6d;}export async function deleteMarketSkillRegistryEntry({payload:payload={},deleteManagedSkill:_0x4da9c7,configController:_0x5184c0}={}){const _0x4a6698=_0x5c93ca,_0x3af117=await _0x4da9c7({'payload':payload}),_0x41553c=asRecord(payload),_0x1a57d2=getTrimmedString(_0x3af117?.['skillKey']??_0x41553c[_0x4a6698(0x1e6)]??_0x41553c[_0x4a6698(0x1f5)]),_0x3e06d6=[_0x1a57d2,getTrimmedString(_0x41553c[_0x4a6698(0x1fa)+'killKey']),getTrimmedString(_0x41553c[_0x4a6698(0x1f5)])];return await removeMarketSkillRegistryKeys(join(_0x5184c0[_0x4a6698(0x1e4)+_0x4a6698(0x1d8)](),_0x4a6698(0x1e1)+'kills.js'+'on'),_0x3e06d6),_0x3af117;}export function mapMarketRegisteredSkills(_0x125eb3,_0x19b747){const _0x113073=_0x5c93ca,_0x5dd98b=Array[_0x113073(0x1fb)](asRecord(_0x125eb3)[_0x113073(0x1fe)])?asRecord(_0x125eb3)[_0x113073(0x1fe)]:[];if(_0x5dd98b[_0x113073(0x1dc)]===0x0||Object[_0x113073(0x1e8)](_0x19b747)[_0x113073(0x1dc)]===0x0)return _0x125eb3;const _0x75a30c=_0x5dd98b['map'](_0x2d4125=>{const _0x175f8a=_0x113073,_0x237929=asRecord(_0x2d4125),_0x3751ef=getTrimmedString(_0x237929[_0x175f8a(0x1e6)])||getTrimmedString(_0x237929[_0x175f8a(0x1f5)]);let _0x316838=_0x3751ef,_0x52a274=asRecord(_0x19b747[_0x3751ef]);if(!Object['keys'](_0x52a274)['length'])for(const [_0x1ba8a0,_0x465bc8]of Object['entries'](_0x19b747)){const _0x5b12c=asRecord(_0x465bc8);if(getTrimmedString(_0x5b12c[_0x175f8a(0x1da)])===_0x3751ef){_0x316838=_0x1ba8a0,_0x52a274=_0x5b12c;break;}}if(!Object[_0x175f8a(0x1e8)](_0x52a274)[_0x175f8a(0x1dc)])return _0x2d4125;const _0x7e95f3=getTrimmedString(_0x52a274[_0x175f8a(0x1da)]),_0x396735=getTrimmedString(_0x52a274[_0x175f8a(0x1f5)]),_0x10e9fb=getTrimmedString(_0x52a274[_0x175f8a(0x1e3)+'ion']),_0x59f771=getTrimmedString(_0x52a274['logo_url']),_0x52fa17=getTrimmedString(_0x52a274['version']);return{..._0x237929,'source':SKILL_SOURCE_MARKET,'skillKey':_0x7e95f3||_0x3751ef,'gatewaySkillKey':_0x7e95f3?_0x316838:null,'marketInstalledVersion':_0x52fa17||null,..._0x396735?{'name':_0x396735}:{},..._0x10e9fb?{'description':_0x10e9fb}:{},..._0x59f771?{'logoUrl':_0x59f771}:{}};});return{...asRecord(_0x125eb3),'skills':_0x75a30c};}export function createMarketSkillRuntime({configController:_0x2dad4e}){return{'mapSkillsStatus':async _0x514178=>{const _0x2f4336=_0x244b,_0x9be75b=await readSkillMarketRegistry(_0x2dad4e[_0x2f4336(0x1e4)+_0x2f4336(0x1d8)]())[_0x2f4336(0x1f6)](()=>({}));return mapMarketRegisteredSkills(_0x514178,_0x9be75b);}};}function _0x244b(_0x1cd695,_0x4fee72){_0x1cd695=_0x1cd695-0x1d6;const _0x4e84d9=_0x4e84();let _0x244b2e=_0x4e84d9[_0x1cd695];return _0x244b2e;}function _0x4e84(){const _0x3990fc=[':\x5cs*(.+)','技能商店安装需要','version','4700460SvwizW','skillDir','logoUrl','6845HrJTXV','market','match','trim','22DGEHJq','接口返回的\x20co','671320kKEqMS','ion','700353lMNUre','tateDir','27nZvoJM','code','903208gqXimD','length','^\x5cs*','498zlSUbH','ies','1MgXnYj','market-s','size','descript','resolveS','fromEntr','skillKey','imported','keys','aipc-mar','manifest','504wsasXd','Key','has','localeCo','entries','11907xiEKKG','targetPa','object','Name','sort','name','catch','isDirect','mpare','20576PSzrgf','gatewayS','isArray','SKILL.md','接口返回的\x20ve','skills','ory','ket','utf8','rsion'];_0x4e84=function(){return _0x3990fc;};return _0x4e84();}
1
+ const _0x2b2970=_0x4011;function _0xb6b4(){const _0x1e88d5=['ory','logo_url','logoUrl','fromEntr','isDirect','sort','ion','isArray','keys','code','^\x5cs*','has','19344NmwRxr','trim','gatewayS','21640sJgXVh','tateDir','length','68708vdbNGO','killKey','localeCo','skillKey','name','接口返回的\x20na','entries','descript','map','3087RxmgxT','19OLOCZV','535678YUSiKP','SKILL.md','ies','match','skills','7217441eILUUt','version','接口返回的\x20co','8xqBfVO','catch','aipc-mar','skillDir','201969PansuD','targetPa','mpare','parse','object','kills.js','utf8','1665khdMle','ket','market-s','source','接口返回的\x20ve','resolveS','filter','36WJyPHj',':\x5cs*(.+)','191841yOVzAI','manifest','SKILLS.m','market','12rjwOyg','技能商店安装需要'];_0xb6b4=function(){return _0x1e88d5;};return _0xb6b4();}(function(_0x16c2e6,_0x208c3e){const _0x2a6a9d=_0x4011,_0x3d6c55=_0x16c2e6();while(!![]){try{const _0x28cc8c=parseInt(_0x2a6a9d(0x1ce))/0x1*(parseInt(_0x2a6a9d(0x1c4))/0x2)+parseInt(_0x2a6a9d(0x1db))/0x3*(parseInt(_0x2a6a9d(0x1e9))/0x4)+-parseInt(_0x2a6a9d(0x1e2))/0x5*(-parseInt(_0x2a6a9d(0x1fd))/0x6)+-parseInt(_0x2a6a9d(0x1d4))/0x7*(parseInt(_0x2a6a9d(0x1d7))/0x8)+parseInt(_0x2a6a9d(0x1cd))/0x9*(-parseInt(_0x2a6a9d(0x200))/0xa)+parseInt(_0x2a6a9d(0x1cf))/0xb+-parseInt(_0x2a6a9d(0x1ef))/0xc*(parseInt(_0x2a6a9d(0x1eb))/0xd);if(_0x28cc8c===_0x208c3e)break;else _0x3d6c55['push'](_0x3d6c55['shift']());}catch(_0xf6b449){_0x3d6c55['push'](_0x3d6c55['shift']());}}}(_0xb6b4,0x90bd3));import{readFile,readdir,rm}from'node:fs/promises';import{join}from'node:path';import{asRecord,getTrimmedString,writeJson}from'../common/utils.mjs';const SKILL_SOURCE_MARKET=_0x2b2970(0x1d9)+_0x2b2970(0x1e3);async function readMarketSkillRegistry(_0x13eca3){const _0x577463=_0x2b2970;try{const _0x55af91=JSON[_0x577463(0x1de)](await readFile(_0x13eca3,'utf8'));if(!_0x55af91||typeof _0x55af91!==_0x577463(0x1df)||Array['isArray'](_0x55af91))return{};return _0x55af91;}catch{return{};}}export async function readSkillMarketRegistry(_0x3dc483){const _0x1e732e=_0x2b2970;return await readMarketSkillRegistry(join(_0x3dc483,_0x1e732e(0x1e4)+'kills.js'+'on'));}async function upsertMarketSkillRegistryEntry(_0x224979,_0x94b019,_0x393bea,_0x566942,_0x1fe183={}){const _0x1a892d=_0x2b2970,_0x2fa946=getTrimmedString(_0x94b019),_0xef0574=getTrimmedString(_0x393bea),_0x2ad117=getTrimmedString(_0x566942);if(!_0x2fa946||!_0xef0574||!_0x2ad117)return;const _0x43ebf8=await readMarketSkillRegistry(_0x224979);_0x43ebf8[_0x2fa946]={'version':_0x2ad117,'code':_0xef0574,...getTrimmedString(_0x1fe183[_0x1a892d(0x1c8)])?{'name':getTrimmedString(_0x1fe183[_0x1a892d(0x1c8)])}:{},...getTrimmedString(_0x1fe183[_0x1a892d(0x1f3)])?{'logo_url':getTrimmedString(_0x1fe183[_0x1a892d(0x1f3)])}:{},...getTrimmedString(_0x1fe183[_0x1a892d(0x1cb)+'ion'])?{'description':getTrimmedString(_0x1fe183[_0x1a892d(0x1cb)+_0x1a892d(0x1f7)])}:{}};if(_0x43ebf8[_0xef0574]&&_0xef0574!==_0x2fa946)delete _0x43ebf8[_0xef0574];for(const [_0x3e9cdf,_0x1c61a6]of Object['entries'](_0x43ebf8)){if(_0x3e9cdf!==_0x2fa946&&asRecord(_0x1c61a6)[_0x1a892d(0x1fa)]===_0xef0574)delete _0x43ebf8[_0x3e9cdf];}const _0x3be82=Object[_0x1a892d(0x1f4)+_0x1a892d(0x1d1)](Object[_0x1a892d(0x1ca)](_0x43ebf8)['sort'](([_0x29f2cf],[_0x54ea1b])=>_0x29f2cf['localeCo'+_0x1a892d(0x1dd)](_0x54ea1b)));await writeJson(_0x224979,_0x3be82);}async function removeMarketSkillRegistryKeys(_0x3ad19b,_0x185f5c){const _0x4cd43e=_0x2b2970,_0xd8bb9b=new Set(_0x185f5c['map'](getTrimmedString)[_0x4cd43e(0x1e8)](Boolean));if(_0xd8bb9b['size']===0x0)return;const _0x3c0f24=await readMarketSkillRegistry(_0x3ad19b);let _0x4fd013=![];for(const _0x47048a of Object[_0x4cd43e(0x1f9)](_0x3c0f24)){const _0x50571c=asRecord(_0x3c0f24[_0x47048a]);(_0xd8bb9b[_0x4cd43e(0x1fc)](_0x47048a)||_0xd8bb9b['has'](getTrimmedString(_0x50571c[_0x4cd43e(0x1fa)])))&&(delete _0x3c0f24[_0x47048a],_0x4fd013=!![]);}if(_0x4fd013){const _0x27e81e=Object[_0x4cd43e(0x1f4)+'ies'](Object[_0x4cd43e(0x1ca)](_0x3c0f24)[_0x4cd43e(0x1f6)](([_0x342586],[_0x143e80])=>_0x342586[_0x4cd43e(0x1c6)+_0x4cd43e(0x1dd)](_0x143e80)));await writeJson(_0x3ad19b,_0x27e81e);}}async function readSkillManifestText(_0x3b2fd4){const _0x440867=_0x2b2970,_0x4d2d34=[join(_0x3b2fd4,_0x440867(0x1d0)),join(_0x3b2fd4,_0x440867(0x1ed)+'d')];for(const _0x39a3b0 of _0x4d2d34){const _0x186c85=await readFile(_0x39a3b0,_0x440867(0x1e1))['catch'](()=>'');if(_0x186c85[_0x440867(0x1fe)]())return _0x186c85;}return'';}function _0x4011(_0x54b66c,_0x25b989){_0x54b66c=_0x54b66c-0x1c4;const _0xb6b48c=_0xb6b4();let _0x4011c1=_0xb6b48c[_0x54b66c];return _0x4011c1;}function resolveFrontmatterValue(_0x41cf4e,_0x5579c9){const _0x19c340=_0x2b2970,_0x1f583f=_0x41cf4e[_0x19c340(0x1d2)](/^---\s*\r?\n([\s\S]*?)\r?\n---/),_0x227064=_0x1f583f?.[0x1]??'',_0x508dc1=_0x227064[_0x19c340(0x1d2)](new RegExp(_0x19c340(0x1fb)+_0x5579c9+(_0x19c340(0x1ea)+'$'),'m'))?.[0x1];return getTrimmedString(_0x508dc1)['replace'](/^["']|["']$/g,'')||null;}async function resolveSkillKeyFromManifest(_0x1ce565){const _0x1600a5=_0x2b2970,_0x5cbe37=await readSkillManifestText(_0x1ce565);if(!_0x5cbe37['trim']())return null;const _0x5a1bf8=_0x5cbe37['match'](/"skillKey"\s*:\s*"([^"]+)"/);if(_0x5a1bf8?.[0x1])return getTrimmedString(_0x5a1bf8[0x1]);return resolveFrontmatterValue(_0x5cbe37,_0x1600a5(0x1c7))||resolveFrontmatterValue(_0x5cbe37,_0x1600a5(0x1c8));}async function removeOtherMarketSkillVersions(_0xd1da1a,_0x1d4581,_0x54ff00){const _0x344045=_0x2b2970,_0x273877=getTrimmedString(_0x54ff00);if(!_0x273877)return;for(const _0xcf08ad of await readdir(_0xd1da1a,{'withFileTypes':!![]})[_0x344045(0x1d8)](()=>[])){if(!_0xcf08ad[_0x344045(0x1f5)+_0x344045(0x1f1)]())continue;const _0x1c7cdd=join(_0xd1da1a,_0xcf08ad['name']);if(_0x1c7cdd===_0x1d4581)continue;const _0x5a684a=await resolveSkillKeyFromManifest(_0x1c7cdd);_0x5a684a&&_0x5a684a[_0x344045(0x1fe)]()===_0x273877&&await rm(_0x1c7cdd,{'recursive':!![],'force':!![]});}}export async function importMarketSkillZip({payload:payload={},importSkillZip:_0x524a23,configController:_0x374079}={}){const _0x1abd81=_0x2b2970,_0xce87e8=asRecord(payload);if(_0xce87e8[_0x1abd81(0x1e5)]!==_0x1abd81(0x1ee))return _0x524a23({'payload':payload});const _0x436d0b=getTrimmedString(_0xce87e8['code']),_0x8a36f9=getTrimmedString(_0xce87e8[_0x1abd81(0x1d5)]),_0x1af858=getTrimmedString(_0xce87e8[_0x1abd81(0x1c8)]);if(!_0x436d0b)throw new Error(_0x1abd81(0x1f0)+_0x1abd81(0x1d6)+'de');if(!_0x8a36f9)throw new Error(_0x1abd81(0x1f0)+_0x1abd81(0x1e6)+'rsion');if(!_0x1af858)throw new Error(_0x1abd81(0x1f0)+_0x1abd81(0x1c9)+'me');const _0x28b2a2=await _0x524a23({'payload':{..._0xce87e8,'version':_0x8a36f9}});if(!_0x28b2a2?.['imported'])return _0x28b2a2;const _0x5062bd=getTrimmedString(_0x28b2a2[_0x1abd81(0x1c7)])||getTrimmedString(_0x28b2a2[_0x1abd81(0x1ec)+'Key'])||getTrimmedString(_0x28b2a2[_0x1abd81(0x1da)+'Name']);return await removeOtherMarketSkillVersions(join(_0x374079[_0x1abd81(0x1e7)+_0x1abd81(0x201)](),'skills'),_0x28b2a2[_0x1abd81(0x1dc)+'th'],_0x5062bd),await upsertMarketSkillRegistryEntry(join(_0x374079[_0x1abd81(0x1e7)+_0x1abd81(0x201)](),_0x1abd81(0x1e4)+_0x1abd81(0x1e0)+'on'),_0x5062bd,_0x436d0b,_0x8a36f9,{'name':_0x1af858,'logoUrl':getTrimmedString(_0xce87e8[_0x1abd81(0x1f3)]),'description':getTrimmedString(_0xce87e8['descript'+_0x1abd81(0x1f7)])}),_0x28b2a2;}export async function deleteMarketSkillRegistryEntry({payload:payload={},deleteManagedSkill:_0x2139b3,configController:_0x1f6f2e}={}){const _0x5437c8=_0x2b2970,_0x30dd6a=await _0x2139b3({'payload':payload}),_0x1d35e6=asRecord(payload),_0x990f4e=getTrimmedString(_0x30dd6a?.['skillKey']??_0x1d35e6['skillKey']??_0x1d35e6[_0x5437c8(0x1c8)]),_0x1b4a73=[_0x990f4e,getTrimmedString(_0x1d35e6[_0x5437c8(0x1ff)+_0x5437c8(0x1c5)]),getTrimmedString(_0x1d35e6['name'])];return await removeMarketSkillRegistryKeys(join(_0x1f6f2e[_0x5437c8(0x1e7)+_0x5437c8(0x201)](),_0x5437c8(0x1e4)+_0x5437c8(0x1e0)+'on'),_0x1b4a73),_0x30dd6a;}export function mapMarketRegisteredSkills(_0x15f9c9,_0x4a396c){const _0x778d7a=_0x2b2970,_0x8377de=Array[_0x778d7a(0x1f8)](asRecord(_0x15f9c9)[_0x778d7a(0x1d3)])?asRecord(_0x15f9c9)['skills']:[];if(_0x8377de[_0x778d7a(0x202)]===0x0||Object[_0x778d7a(0x1f9)](_0x4a396c)['length']===0x0)return _0x15f9c9;const _0x5be593=_0x8377de[_0x778d7a(0x1cc)](_0x34cc82=>{const _0x4b76cc=_0x778d7a,_0x579f31=asRecord(_0x34cc82),_0x254790=getTrimmedString(_0x579f31['skillKey'])||getTrimmedString(_0x579f31[_0x4b76cc(0x1c8)]);let _0x578852=_0x254790,_0x47df9b=asRecord(_0x4a396c[_0x254790]);if(!Object[_0x4b76cc(0x1f9)](_0x47df9b)['length'])for(const [_0x38767f,_0x2b70ca]of Object[_0x4b76cc(0x1ca)](_0x4a396c)){const _0x39b2d5=asRecord(_0x2b70ca);if(getTrimmedString(_0x39b2d5[_0x4b76cc(0x1fa)])===_0x254790){_0x578852=_0x38767f,_0x47df9b=_0x39b2d5;break;}}if(!Object[_0x4b76cc(0x1f9)](_0x47df9b)['length'])return _0x34cc82;const _0xbef7f2=getTrimmedString(_0x47df9b[_0x4b76cc(0x1fa)]),_0x1a2a56=getTrimmedString(_0x47df9b[_0x4b76cc(0x1c8)]),_0x531cf5=getTrimmedString(_0x47df9b[_0x4b76cc(0x1cb)+_0x4b76cc(0x1f7)]),_0x37e7ed=getTrimmedString(_0x47df9b[_0x4b76cc(0x1f2)]),_0x28d93b=getTrimmedString(_0x47df9b[_0x4b76cc(0x1d5)]);return{..._0x579f31,'source':SKILL_SOURCE_MARKET,'skillKey':_0xbef7f2||_0x254790,'gatewaySkillKey':_0xbef7f2?_0x578852:null,'marketInstalledVersion':_0x28d93b||null,..._0x1a2a56?{'name':_0x1a2a56}:{},..._0x531cf5?{'description':_0x531cf5}:{},..._0x37e7ed?{'logoUrl':_0x37e7ed}:{}};});return{...asRecord(_0x15f9c9),'skills':_0x5be593};}export function createMarketSkillRuntime({configController:_0x46e322}){return{'mapSkillsStatus':async _0x47eb33=>{const _0x37e714=_0x4011,_0x115746=await readSkillMarketRegistry(_0x46e322['resolveS'+'tateDir']())[_0x37e714(0x1d8)](()=>({}));return mapMarketRegisteredSkills(_0x47eb33,_0x115746);}};}
@@ -1 +1 @@
1
- (function(_0x3813f8,_0x352067){const _0x3d8323=_0xee44,_0x48053a=_0x3813f8();while(!![]){try{const _0x109aff=-parseInt(_0x3d8323(0x15c))/0x1+parseInt(_0x3d8323(0x134))/0x2*(-parseInt(_0x3d8323(0x15d))/0x3)+parseInt(_0x3d8323(0x14e))/0x4+parseInt(_0x3d8323(0x16e))/0x5*(parseInt(_0x3d8323(0x16b))/0x6)+parseInt(_0x3d8323(0x164))/0x7*(-parseInt(_0x3d8323(0x130))/0x8)+-parseInt(_0x3d8323(0x15a))/0x9+parseInt(_0x3d8323(0x167))/0xa*(parseInt(_0x3d8323(0x141))/0xb);if(_0x109aff===_0x352067)break;else _0x48053a['push'](_0x48053a['shift']());}catch(_0x5a8eda){_0x48053a['push'](_0x48053a['shift']());}}}(_0x3362,0x62c54));import{spawn}from'node:child_process';import{randomUUID}from'node:crypto';import{accessSync,constants,existsSync}from'node:fs';import{mkdir}from'node:fs/promises';import{basename,delimiter,join}from'node:path';const FILE_EXTENSION_REGEX=/\.[a-z0-9]+$/i;function resolvePathEntries(_0x112193){const _0x4aec50=_0xee44,_0x2c6c89=Object['keys'](_0x112193)['find'](_0x19b596=>_0x19b596[_0x4aec50(0x15b)+_0x4aec50(0x171)]()===_0x4aec50(0x154))??'PATH';return String(_0x112193[_0x2c6c89]||'')[_0x4aec50(0x15e)](delimiter)[_0x4aec50(0x143)](Boolean);}function canExecute(_0x2c52aa){const _0x5f0268=_0xee44;try{return accessSync(_0x2c52aa,process['platform']==='win32'?constants[_0x5f0268(0x160)]:constants[_0x5f0268(0x158)]),!![];}catch{return![];}}function resolveExecutableOnPath(_0x1b2a9e,_0x151105){const _0x3e9861=_0xee44,_0xdac597=String(_0x1b2a9e||'')[_0x3e9861(0x13e)]();if(!_0xdac597)return null;if(_0xdac597[_0x3e9861(0x12f)]('/')||_0xdac597[_0x3e9861(0x12f)]('\x5c'))return existsSync(_0xdac597)?_0xdac597:null;const _0x5b45f1=[_0xdac597];process[_0x3e9861(0x149)]==='win32'&&!FILE_EXTENSION_REGEX[_0x3e9861(0x163)](_0xdac597)&&_0x5b45f1[_0x3e9861(0x140)](_0xdac597+_0x3e9861(0x148),_0xdac597+_0x3e9861(0x14d),_0xdac597+_0x3e9861(0x166));for(const _0x3b2c9c of resolvePathEntries(_0x151105)){for(const _0x5fdc5a of _0x5b45f1){const _0x2658a7=join(_0x3b2c9c,_0x5fdc5a);if(canExecute(_0x2658a7))return _0x2658a7;}}return null;}function _0x3362(){const _0xad5b10=['delete','string','write','/opt/hom','stderr','al/bin/z','trim','message','push','11KjUjde','No\x20suppo','filter','ash','al/bin/b','darwin','object','.exe','platform','powershe','truecolo','--login','.cmd','1468396Qiolfc','rted\x20Win','Terminal','data','stdout','values','path','\x20not\x20fou','/bin/zsh','/bin/bas','X_OK','find','2413980WGyfnT','toLowerC','264084moUTMA','60bUILAH','split','env','F_OK','pipe','ebrew/bi','test','684110khNUlN','kill','.bat','14747470nRRhpE','6color','close','win32','6ELKUmC','dows\x20she','/usr/loc','792010coXOrw','n/bash','cmd','ase','stdin','\x20session','includes','32VvSbJr','ll\x20found','child','xterm-25','67246MTdkUM','sessionI','get','cwd'];_0x3362=function(){return _0xad5b10;};return _0x3362();}function resolveShellLaunchConfig(_0x18f871){const _0xd6dbf4=_0xee44;if(process['platform']===_0xd6dbf4(0x16a)){const _0x5f4f15=resolveExecutableOnPath('pwsh',_0x18f871)??resolveExecutableOnPath(_0xd6dbf4(0x14a)+'ll',_0x18f871);if(_0x5f4f15)return{'command':_0x5f4f15,'args':['-NoLogo']};const _0x22f455=resolveExecutableOnPath(_0xd6dbf4(0x170),_0x18f871);if(_0x22f455)return{'command':_0x22f455,'args':['/Q']};throw new Error(_0xd6dbf4(0x142)+_0xd6dbf4(0x14f)+_0xd6dbf4(0x16c)+_0xd6dbf4(0x131));}if(process['platform']===_0xd6dbf4(0x146)){const _0x34279b=[_0xd6dbf4(0x156),'/usr/loc'+_0xd6dbf4(0x13d)+'sh',_0xd6dbf4(0x13b)+_0xd6dbf4(0x162)+'n/zsh']['find'](canExecute);if(_0x34279b)return{'command':_0x34279b,'args':['-i']};const _0xbd37ea=[_0xd6dbf4(0x157)+'h',_0xd6dbf4(0x16d)+_0xd6dbf4(0x145)+_0xd6dbf4(0x144),_0xd6dbf4(0x13b)+_0xd6dbf4(0x162)+_0xd6dbf4(0x16f)][_0xd6dbf4(0x159)](canExecute);if(_0xbd37ea)return{'command':_0xbd37ea,'args':[_0xd6dbf4(0x14c),'-i']};}const _0x150f23=resolveExecutableOnPath(process.env.SHELL||'',_0x18f871)??resolveExecutableOnPath('bash',_0x18f871)??resolveExecutableOnPath('sh',_0x18f871);if(!_0x150f23)throw new Error('No\x20suppo'+'rted\x20she'+'ll\x20found');return{'command':_0x150f23,'args':['-l','-i']};}function _0xee44(_0x2494f5,_0x14aff6){_0x2494f5=_0x2494f5-0x12e;const _0x3362bd=_0x3362();let _0xee442=_0x3362bd[_0x2494f5];return _0xee442;}export function createTerminalManager({cwd:_0x121275,emitData:_0x30bbce,emitExit:_0x4634ef}){const _0x492ce9=new Map();function _0x54c2e9(_0x2360db){const _0x465f5e=_0xee44,_0x159edb=_0x492ce9[_0x465f5e(0x136)](_0x2360db);if(!_0x159edb)throw new Error(_0x465f5e(0x150)+_0x465f5e(0x12e)+_0x465f5e(0x155)+'nd');return _0x159edb;}async function _0x547f21(_0x1818ca={}){const _0x43b6f3=_0xee44,_0x27f6de={...process.env,'TERM':_0x43b6f3(0x133)+_0x43b6f3(0x168),'COLORTERM':_0x43b6f3(0x14b)+'r',..._0x1818ca[_0x43b6f3(0x15f)]&&typeof _0x1818ca[_0x43b6f3(0x15f)]===_0x43b6f3(0x147)?_0x1818ca['env']:{}},_0x4b06f4=typeof _0x1818ca['cwd']===_0x43b6f3(0x139)&&_0x1818ca[_0x43b6f3(0x137)][_0x43b6f3(0x13e)]()?_0x1818ca['cwd']:'',_0x962197=_0x4b06f4||_0x121275;await mkdir(_0x962197,{'recursive':!![]});const {command:_0x415320,args:_0x289e46}=resolveShellLaunchConfig(_0x27f6de),_0x14b86b=randomUUID(),_0x30e425=spawn(_0x415320,_0x289e46,{'cwd':_0x962197,'env':_0x27f6de,'stdio':_0x43b6f3(0x161)});return _0x492ce9['set'](_0x14b86b,{'sessionId':_0x14b86b,'child':_0x30e425}),_0x30e425[_0x43b6f3(0x152)]['on']('data',_0x354e4a=>_0x30bbce({'sessionId':_0x14b86b,'data':_0x354e4a['toString']()})),_0x30e425[_0x43b6f3(0x13c)]['on']('data',_0x1bac28=>_0x30bbce({'sessionId':_0x14b86b,'data':_0x1bac28['toString']()})),_0x30e425['on'](_0x43b6f3(0x169),(_0x1f56c9,_0x149bc4)=>{const _0x2feb5f=_0x43b6f3;_0x492ce9[_0x2feb5f(0x138)](_0x14b86b),_0x4634ef({'sessionId':_0x14b86b,'exitCode':_0x1f56c9,'signal':_0x149bc4});}),_0x30e425['on']('error',_0x241fba=>{const _0x2f79eb=_0x43b6f3;_0x30bbce({'sessionId':_0x14b86b,'data':_0x241fba[_0x2f79eb(0x13f)]+'\x0a'});}),{'sessionId':_0x14b86b,'shell':basename(_0x415320),'cwd':_0x962197};}function _0x1a2604(_0x4fd482={}){const _0x1532d3=_0xee44,_0x10c711=_0x54c2e9(String(_0x4fd482[_0x1532d3(0x135)+'d']||''));return _0x10c711['child'][_0x1532d3(0x172)][_0x1532d3(0x13a)](String(_0x4fd482[_0x1532d3(0x151)]||'')),{'ok':!![]};}function _0x23c62c(_0x3e2090={}){const _0x3b35b2=_0xee44,_0x50d91c=String(_0x3e2090[_0x3b35b2(0x135)+'d']||'');return _0x54c2e9(_0x50d91c),{'ok':!![],'ignored':!![]};}function _0x2d06e4(_0x3a7490={}){const _0xbf2a52=_0xee44,_0x3c07b7=String(_0x3a7490[_0xbf2a52(0x135)+'d']||''),_0x1511dc=_0x492ce9[_0xbf2a52(0x136)](_0x3c07b7);if(!_0x1511dc)return{'ok':!![],'closed':![]};return _0x492ce9['delete'](_0x3c07b7),_0x1511dc[_0xbf2a52(0x132)][_0xbf2a52(0x165)](),{'ok':!![],'closed':!![]};}function _0x2d28fd(){const _0x134e8e=_0xee44;for(const _0xf6d2db of _0x492ce9[_0x134e8e(0x153)]())_0xf6d2db[_0x134e8e(0x132)][_0x134e8e(0x165)]();_0x492ce9['clear']();}return{'create':_0x547f21,'input':_0x1a2604,'resize':_0x23c62c,'close':_0x2d06e4,'dispose':_0x2d28fd};}
1
+ (function(_0x3f8c34,_0x20ec18){const _0xf1e169=_0x186d,_0x1f36b4=_0x3f8c34();while(!![]){try{const _0xac69eb=-parseInt(_0xf1e169(0x218))/0x1*(-parseInt(_0xf1e169(0x21b))/0x2)+parseInt(_0xf1e169(0x225))/0x3+-parseInt(_0xf1e169(0x209))/0x4+parseInt(_0xf1e169(0x1ed))/0x5*(-parseInt(_0xf1e169(0x202))/0x6)+-parseInt(_0xf1e169(0x1e9))/0x7*(-parseInt(_0xf1e169(0x1ea))/0x8)+parseInt(_0xf1e169(0x20e))/0x9*(parseInt(_0xf1e169(0x21c))/0xa)+-parseInt(_0xf1e169(0x1ec))/0xb*(parseInt(_0xf1e169(0x1e8))/0xc);if(_0xac69eb===_0x20ec18)break;else _0x1f36b4['push'](_0x1f36b4['shift']());}catch(_0x150aef){_0x1f36b4['push'](_0x1f36b4['shift']());}}}(_0x4efe,0x509e4));import{spawn}from'node:child_process';function _0x186d(_0x2bdd0c,_0x5dda74){_0x2bdd0c=_0x2bdd0c-0x1e2;const _0x4efe13=_0x4efe();let _0x186ddb=_0x4efe13[_0x2bdd0c];return _0x186ddb;}import{randomUUID}from'node:crypto';import{accessSync,constants,existsSync}from'node:fs';import{mkdir}from'node:fs/promises';import{basename,delimiter,join}from'node:path';const FILE_EXTENSION_REGEX=/\.[a-z0-9]+$/i;function resolvePathEntries(_0x2a203c){const _0x4c7483=_0x186d,_0x37d558=Object[_0x4c7483(0x214)](_0x2a203c)[_0x4c7483(0x208)](_0x58111b=>_0x58111b[_0x4c7483(0x1ff)+_0x4c7483(0x229)]()===_0x4c7483(0x1f2))??_0x4c7483(0x1f0);return String(_0x2a203c[_0x37d558]||'')[_0x4c7483(0x206)](delimiter)[_0x4c7483(0x1f9)](Boolean);}function canExecute(_0x4498f6){const _0x5d9c9e=_0x186d;try{return accessSync(_0x4498f6,process['platform']===_0x5d9c9e(0x1f6)?constants['F_OK']:constants[_0x5d9c9e(0x20d)]),!![];}catch{return![];}}function resolveExecutableOnPath(_0x50bcce,_0x37df8c){const _0x5cf76b=_0x186d,_0x38ca7f=String(_0x50bcce||'')[_0x5cf76b(0x215)]();if(!_0x38ca7f)return null;if(_0x38ca7f[_0x5cf76b(0x1eb)]('/')||_0x38ca7f[_0x5cf76b(0x1eb)]('\x5c'))return existsSync(_0x38ca7f)?_0x38ca7f:null;const _0x1d411f=[_0x38ca7f];process['platform']===_0x5cf76b(0x1f6)&&!FILE_EXTENSION_REGEX['test'](_0x38ca7f)&&_0x1d411f[_0x5cf76b(0x204)](_0x38ca7f+_0x5cf76b(0x21d),_0x38ca7f+_0x5cf76b(0x200),_0x38ca7f+_0x5cf76b(0x1fc));for(const _0x318703 of resolvePathEntries(_0x37df8c)){for(const _0x1d8bf2 of _0x1d411f){const _0xd603c3=join(_0x318703,_0x1d8bf2);if(canExecute(_0xd603c3))return _0xd603c3;}}return null;}function resolveShellLaunchConfig(_0x1f6c89){const _0x45765a=_0x186d;if(process[_0x45765a(0x1e3)]===_0x45765a(0x1f6)){const _0x4151b5=resolveExecutableOnPath(_0x45765a(0x201),_0x1f6c89)??resolveExecutableOnPath(_0x45765a(0x1f5)+'ll',_0x1f6c89);if(_0x4151b5)return{'command':_0x4151b5,'args':[_0x45765a(0x213)]};const _0x5105d4=resolveExecutableOnPath(_0x45765a(0x1e6),_0x1f6c89);if(_0x5105d4)return{'command':_0x5105d4,'args':['/Q']};throw new Error(_0x45765a(0x1f8)+_0x45765a(0x1ef)+_0x45765a(0x221)+'ll\x20found');}if(process[_0x45765a(0x1e3)]===_0x45765a(0x1f4)){const _0x34f49f=[_0x45765a(0x1f3),'/usr/loc'+_0x45765a(0x20c)+'sh',_0x45765a(0x21a)+_0x45765a(0x20f)+_0x45765a(0x21f)]['find'](canExecute);if(_0x34f49f)return{'command':_0x34f49f,'args':['-i']};const _0x1f7ce6=[_0x45765a(0x21e)+'h','/usr/loc'+_0x45765a(0x1fa)+_0x45765a(0x20a),_0x45765a(0x21a)+_0x45765a(0x20f)+_0x45765a(0x20b)]['find'](canExecute);if(_0x1f7ce6)return{'command':_0x1f7ce6,'args':[_0x45765a(0x220),'-i']};}const _0x1af691=resolveExecutableOnPath(process.env.SHELL||'',_0x1f6c89)??resolveExecutableOnPath(_0x45765a(0x1ee),_0x1f6c89)??resolveExecutableOnPath('sh',_0x1f6c89);if(!_0x1af691)throw new Error(_0x45765a(0x1f8)+'rted\x20she'+_0x45765a(0x219));return{'command':_0x1af691,'args':['-l','-i']};}function _0x4efe(){const _0x8e5227=['push','object','split','child','find','978864RIitlT','ash','n/bash','al/bin/z','X_OK','9pHRSQQ','ebrew/bi','data','values','get','-NoLogo','keys','trim','close','6color','649kWXdkj','ll\x20found','/opt/hom','1714GqCOsm','1223190IlGsNx','.exe','/bin/bas','n/zsh','--login','dows\x20she','\x20session','Terminal','string','1547466zNKweQ','write','xterm-25','set','ase','stdin','platform','error','clear','cmd','toString','977172gmTAkA','28YSRVIP','493264vCeAre','includes','44vluSOU','10XxUoUb','bash','rted\x20Win','PATH','\x20not\x20fou','path','/bin/zsh','darwin','powershe','win32','env','No\x20suppo','filter','al/bin/b','cwd','.bat','message','sessionI','toLowerC','.cmd','pwsh','1620942JBsaus','truecolo'];_0x4efe=function(){return _0x8e5227;};return _0x4efe();}export function createTerminalManager({cwd:_0x7a6b8,emitData:_0x11322c,emitExit:_0x3b89d6}){const _0x5056d9=new Map();function _0x2eff4d(_0x442de9){const _0x38b56d=_0x186d,_0x3d822a=_0x5056d9[_0x38b56d(0x212)](_0x442de9);if(!_0x3d822a)throw new Error(_0x38b56d(0x223)+_0x38b56d(0x222)+_0x38b56d(0x1f1)+'nd');return _0x3d822a;}async function _0x1513f9(_0x3597b1={}){const _0x56e4b8=_0x186d,_0x420b56={...process.env,'TERM':_0x56e4b8(0x227)+_0x56e4b8(0x217),'COLORTERM':_0x56e4b8(0x203)+'r',..._0x3597b1[_0x56e4b8(0x1f7)]&&typeof _0x3597b1[_0x56e4b8(0x1f7)]===_0x56e4b8(0x205)?_0x3597b1[_0x56e4b8(0x1f7)]:{}},_0x8415d2=typeof _0x3597b1[_0x56e4b8(0x1fb)]===_0x56e4b8(0x224)&&_0x3597b1[_0x56e4b8(0x1fb)][_0x56e4b8(0x215)]()?_0x3597b1[_0x56e4b8(0x1fb)]:'',_0x55e769=_0x8415d2||_0x7a6b8;await mkdir(_0x55e769,{'recursive':!![]});const {command:_0x5d9027,args:_0x272397}=resolveShellLaunchConfig(_0x420b56),_0x3548a7=randomUUID(),_0x2d4a73=spawn(_0x5d9027,_0x272397,{'cwd':_0x55e769,'env':_0x420b56,'stdio':'pipe'});return _0x5056d9[_0x56e4b8(0x228)](_0x3548a7,{'sessionId':_0x3548a7,'child':_0x2d4a73}),_0x2d4a73['stdout']['on']('data',_0x4fc103=>_0x11322c({'sessionId':_0x3548a7,'data':_0x4fc103[_0x56e4b8(0x1e7)]()})),_0x2d4a73['stderr']['on'](_0x56e4b8(0x210),_0x34222b=>_0x11322c({'sessionId':_0x3548a7,'data':_0x34222b[_0x56e4b8(0x1e7)]()})),_0x2d4a73['on'](_0x56e4b8(0x216),(_0x4622e8,_0x3211e9)=>{_0x5056d9['delete'](_0x3548a7),_0x3b89d6({'sessionId':_0x3548a7,'exitCode':_0x4622e8,'signal':_0x3211e9});}),_0x2d4a73['on'](_0x56e4b8(0x1e4),_0x32dc47=>{const _0x5c37e7=_0x56e4b8;_0x11322c({'sessionId':_0x3548a7,'data':_0x32dc47[_0x5c37e7(0x1fd)]+'\x0a'});}),{'sessionId':_0x3548a7,'shell':basename(_0x5d9027),'cwd':_0x55e769};}function _0x454dc8(_0x46ea00={}){const _0x1d7fe3=_0x186d,_0x49d77c=_0x2eff4d(String(_0x46ea00[_0x1d7fe3(0x1fe)+'d']||''));return _0x49d77c[_0x1d7fe3(0x207)][_0x1d7fe3(0x1e2)][_0x1d7fe3(0x226)](String(_0x46ea00['data']||'')),{'ok':!![]};}function _0xd103fa(_0x34ad98={}){const _0x5bd1d5=String(_0x34ad98['sessionI'+'d']||'');return _0x2eff4d(_0x5bd1d5),{'ok':!![],'ignored':!![]};}function _0x2523a1(_0x1c9a4f={}){const _0x161ca8=_0x186d,_0x256ace=String(_0x1c9a4f['sessionI'+'d']||''),_0x46c219=_0x5056d9[_0x161ca8(0x212)](_0x256ace);if(!_0x46c219)return{'ok':!![],'closed':![]};return _0x5056d9['delete'](_0x256ace),_0x46c219[_0x161ca8(0x207)]['kill'](),{'ok':!![],'closed':!![]};}function _0x9aa09a(){const _0x2e0b71=_0x186d;for(const _0x161d56 of _0x5056d9[_0x2e0b71(0x211)]())_0x161d56['child']['kill']();_0x5056d9[_0x2e0b71(0x1e5)]();}return{'create':_0x1513f9,'input':_0x454dc8,'resize':_0xd103fa,'close':_0x2523a1,'dispose':_0x9aa09a};}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wujie-shell/core",
3
- "version": "2.0.1",
3
+ "version": "2.0.2",
4
4
  "type": "module",
5
5
  "main": "dist/src/index.mjs",
6
6
  "exports": {
@@ -27,8 +27,8 @@
27
27
  "dependencies": {
28
28
  "get-port": "^7.2.0",
29
29
  "ws": "^8.20.0",
30
- "@wujie-shell/config": "2.0.1",
31
- "@wujie-shell/logger": "2.0.1"
30
+ "@wujie-shell/config": "2.0.2",
31
+ "@wujie-shell/logger": "2.0.2"
32
32
  },
33
33
  "scripts": {
34
34
  "build": "node ../../scripts/build-packages.mjs --package @wujie-shell/core"