@lovrabet/lovrabet-cli 2.1.21-beta.1 → 2.1.21

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 (128) hide show
  1. package/lib/cli.js +1 -1
  2. package/lib/commands/api-doc/index.js +1 -1
  3. package/lib/commands/app/cache.js +1 -1
  4. package/lib/commands/app/definitions.js +1 -1
  5. package/lib/commands/app/eligibility.js +1 -1
  6. package/lib/commands/app/mock-loader.js +1 -1
  7. package/lib/commands/app/remote-source.js +1 -1
  8. package/lib/commands/app/shared.js +1 -1
  9. package/lib/commands/app-config/get.js +1 -1
  10. package/lib/commands/app-config/index.js +1 -1
  11. package/lib/commands/artifact/index.js +1 -1
  12. package/lib/commands/auth/device.js +1 -1
  13. package/lib/commands/auth/index.js +1 -1
  14. package/lib/commands/auth/prompt.js +1 -1
  15. package/lib/commands/bff/detail.js +1 -1
  16. package/lib/commands/bff/exec.js +1 -1
  17. package/lib/commands/bff/index.js +1 -1
  18. package/lib/commands/cli-skill/index.js +1 -1
  19. package/lib/commands/common/config-policy.js +1 -1
  20. package/lib/commands/common/constraints.js +1 -1
  21. package/lib/commands/common/flags.js +1 -1
  22. package/lib/commands/common/local-file.js +1 -1
  23. package/lib/commands/config/definitions.js +1 -1
  24. package/lib/commands/config/shared.js +1 -1
  25. package/lib/commands/data/index.js +1 -1
  26. package/lib/commands/dataset/detail.js +1 -1
  27. package/lib/commands/dataset/index.js +1 -1
  28. package/lib/commands/dataset/list.js +1 -1
  29. package/lib/commands/dataset/sdk-doc.js +1 -1
  30. package/lib/commands/doctor.js +1 -1
  31. package/lib/commands/file/index.js +1 -1
  32. package/lib/commands/init.js +1 -1
  33. package/lib/commands/kb/index.js +1 -1
  34. package/lib/commands/logs/index.js +1 -1
  35. package/lib/commands/ocr/index.js +1 -1
  36. package/lib/commands/personal-bff/index.js +1 -1
  37. package/lib/commands/registry.js +1 -1
  38. package/lib/commands/schedule/index.js +1 -1
  39. package/lib/commands/schema.js +1 -1
  40. package/lib/commands/service/dynamic.js +1 -1
  41. package/lib/commands/service/function-name-adapter.js +1 -1
  42. package/lib/commands/service/index.js +1 -1
  43. package/lib/commands/service/registry.js +1 -1
  44. package/lib/commands/skill/commands/create.js +1 -1
  45. package/lib/commands/skill/commands/install.js +1 -1
  46. package/lib/commands/skill/commands/list.js +1 -1
  47. package/lib/commands/skill/commands/push.js +1 -1
  48. package/lib/commands/skill/commands/validate.js +1 -1
  49. package/lib/commands/skill/flags.js +1 -1
  50. package/lib/commands/skill/index.js +1 -1
  51. package/lib/commands/skill/manifest-helpers.js +1 -1
  52. package/lib/commands/skill/push-execute.js +1 -1
  53. package/lib/commands/skill/push-flow-helpers.js +1 -1
  54. package/lib/commands/skill/push-retarget.js +1 -1
  55. package/lib/commands/skill/scopes.js +1 -1
  56. package/lib/commands/skill/summary.js +1 -1
  57. package/lib/commands/skill/templates.js +1 -1
  58. package/lib/commands/skill/validate.js +1 -1
  59. package/lib/commands/sql/detail.js +1 -1
  60. package/lib/commands/sql/exec.js +1 -1
  61. package/lib/commands/sql/index.js +1 -1
  62. package/lib/commands/update.js +1 -1
  63. package/lib/commands/workspace/index.js +1 -1
  64. package/lib/config/schema.js +1 -1
  65. package/lib/constant/app.js +1 -1
  66. package/lib/constant/auth-mode.js +1 -1
  67. package/lib/constant/cli.js +1 -1
  68. package/lib/constant/defaults.js +1 -1
  69. package/lib/constant/distribution.js +1 -1
  70. package/lib/constant/domain.js +1 -1
  71. package/lib/constant/env.js +1 -1
  72. package/lib/constant/output.js +1 -1
  73. package/lib/constant/product.js +1 -1
  74. package/lib/constant/risk.js +1 -1
  75. package/lib/constant/url.js +1 -1
  76. package/lib/context.js +1 -1
  77. package/lib/core/api-client.js +1 -1
  78. package/lib/core/db-resolver.js +1 -1
  79. package/lib/core/sdk-client.js +1 -1
  80. package/lib/errors.js +1 -1
  81. package/lib/framework/build-all-flags.js +1 -1
  82. package/lib/framework/dryrun.js +1 -1
  83. package/lib/framework/flags.js +1 -1
  84. package/lib/framework/help.js +1 -1
  85. package/lib/framework/index.js +1 -1
  86. package/lib/framework/output.js +1 -1
  87. package/lib/framework/preparse.js +1 -1
  88. package/lib/framework/rate-limit.js +1 -1
  89. package/lib/framework/raw-flags.js +1 -1
  90. package/lib/framework/response.js +1 -1
  91. package/lib/framework/runner-confirmation.js +1 -1
  92. package/lib/framework/runner-error.js +1 -1
  93. package/lib/framework/runner.js +1 -1
  94. package/lib/framework/schema-export.js +1 -1
  95. package/lib/framework/service-order.js +1 -1
  96. package/lib/framework/types.js +1 -1
  97. package/lib/generated/build-info.d.ts +4 -4
  98. package/lib/generated/build-info.js +1 -1
  99. package/lib/help.js +1 -1
  100. package/lib/runtime/event.js +1 -1
  101. package/lib/runtime/index.js +1 -1
  102. package/lib/runtime/queue.js +1 -1
  103. package/lib/runtime/resolve.js +1 -1
  104. package/lib/skills/npx-skills-add.js +1 -1
  105. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  106. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  107. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  108. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  109. package/lib/skills/runtime-skill-sync/links.js +1 -1
  110. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  111. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  112. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  113. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  114. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  115. package/lib/skills/runtime-skill-sync/push.js +1 -1
  116. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  117. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  118. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  119. package/lib/skills/runtime-skill-sync.js +1 -1
  120. package/lib/utils/apply-jq-filter.js +1 -1
  121. package/lib/utils/logger.js +1 -1
  122. package/lib/utils/lossless-json.js +1 -1
  123. package/lib/utils/params.js +1 -1
  124. package/lib/utils/platform.js +1 -1
  125. package/lib/utils/update-notice.js +1 -1
  126. package/lib/utils/version.js +1 -1
  127. package/lib/utils/write-cli-side-channel.js +1 -1
  128. package/package.json +1 -1
@@ -1 +1 @@
1
- (function(_0x286592,_0xeba760){const _0x54b091=a39_0x3752,_0x5c5fe0=_0x286592();while(!![]){try{const _0x2ee004=-parseInt(_0x54b091(0x11d))/0x1*(parseInt(_0x54b091(0x135))/0x2)+-parseInt(_0x54b091(0x140))/0x3*(parseInt(_0x54b091(0x141))/0x4)+parseInt(_0x54b091(0x127))/0x5*(parseInt(_0x54b091(0x14c))/0x6)+parseInt(_0x54b091(0x12f))/0x7*(-parseInt(_0x54b091(0x116))/0x8)+-parseInt(_0x54b091(0x10c))/0x9+parseInt(_0x54b091(0x133))/0xa+parseInt(_0x54b091(0x11a))/0xb;if(_0x2ee004===_0xeba760)break;else _0x5c5fe0['push'](_0x5c5fe0['shift']());}catch(_0x12dcfa){_0x5c5fe0['push'](_0x5c5fe0['shift']());}}}(a39_0x49d8,0x2637f));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x261fca,_0x13a2d5){const _0x380146=a39_0x3752,_0x3bf393=listLocalServiceTrees();let _0x316313;for(const _0x79662 of _0x3bf393){const _0x24c1ea=matchServiceTreeCommand(_0x79662,_0x261fca);if(!_0x24c1ea)continue;(!_0x316313||_0x24c1ea['command'][_0x380146(0x134)][_0x380146(0x10b)]>_0x316313[_0x380146(0x168)][_0x380146(0x134)]['length'])&&(_0x316313={'tree':_0x79662,'command':_0x24c1ea[_0x380146(0x168)],'remainingArgs':_0x24c1ea[_0x380146(0x16c)]});}if(!_0x316313)return undefined;const _0x4f97ac={..._0x13a2d5};return applyAppBinding(_0x316313[_0x380146(0x121)],_0x316313['command'],_0x4f97ac),{'definition':buildDynamicCommandDefinition(_0x316313[_0x380146(0x121)],_0x316313[_0x380146(0x168)]),'args':_0x316313[_0x380146(0x16c)],'flags':_0x4f97ac,'tree':_0x316313[_0x380146(0x121)],'command':_0x316313['command']};}export function generateDynamicServiceHelp(_0x3d08fd){const _0x333f26=a39_0x3752,_0x2561f7=listLocalServiceTrees()['find'](_0x4cc791=>_0x4cc791[_0x333f26(0x112)][_0x333f26(0x131)]===_0x3d08fd);if(!_0x2561f7)return undefined;const _0x47ad5f=[CLI_BIN_NAME+'\x20'+_0x3d08fd+_0x333f26(0x15b),'',_0x2561f7['service']['name']||_0x3d08fd,_0x2561f7['service'][_0x333f26(0x156)]?'\x20\x20'+_0x2561f7[_0x333f26(0x112)][_0x333f26(0x156)]:'','',_0x333f26(0x124),..._0x2561f7['commands'][_0x333f26(0x158)](_0x10665c=>{const _0x418a1b=_0x333f26,_0x34f3d4=_0x10665c['fullPath'][_0x418a1b(0x11c)](0x1)[_0x418a1b(0x14f)]('\x20'),_0x42c01c=_0x10665c['risk']===_0x418a1b(0x167)?'':'\x20['+_0x10665c[_0x418a1b(0x16a)]+']';return'\x20\x20'+_0x34f3d4[_0x418a1b(0x12e)](0x18)+'\x20'+(_0x10665c[_0x418a1b(0x156)]||'')+_0x42c01c;}),'','Use\x20`'+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x3d08fd+'`\x20to\x20inspect\x20the\x20manifest.']['filter'](Boolean);return _0x47ad5f[_0x333f26(0x14f)]('\x0a');}function a39_0x3752(_0x1b463a,_0x5e4156){_0x1b463a=_0x1b463a-0x10a;const _0x49d8f1=a39_0x49d8();let _0x3752b7=_0x49d8f1[_0x1b463a];return _0x3752b7;}export function listDynamicServiceEntries(){const _0x184ec9=a39_0x3752;return listLocalServices()[_0x184ec9(0x158)](_0x15f9a1=>{const _0x111b95=_0x184ec9,_0x2c4eb1=_0x15f9a1['normalizedManifest'];return{'service':_0x2c4eb1[_0x111b95(0x112)][_0x111b95(0x131)],'label':_0x2c4eb1[_0x111b95(0x112)][_0x111b95(0x169)]||_0x2c4eb1[_0x111b95(0x112)][_0x111b95(0x131)],'commands':_0x2c4eb1[_0x111b95(0x119)][_0x111b95(0x158)](_0x160e4d=>({'command':dynamicCommandName(_0x160e4d),'description':_0x160e4d[_0x111b95(0x156)]||'Run\x20service\x20command\x20'+_0x160e4d[_0x111b95(0x16d)],'tag':riskTag(_0x160e4d[_0x111b95(0x16a)])}))};});}export function getDynamicServiceEntry(_0x4c1da0){const _0x1b3307=a39_0x3752;return listDynamicServiceEntries()[_0x1b3307(0x125)](_0x5edac6=>_0x5edac6[_0x1b3307(0x112)]===_0x4c1da0);}export function listDynamicServiceDefinitions(_0x532d50){const _0x1eec0f=a39_0x3752;return listLocalServiceTrees()[_0x1eec0f(0x153)](_0x128afb=>!_0x532d50||_0x128afb[_0x1eec0f(0x112)][_0x1eec0f(0x131)]===_0x532d50)[_0x1eec0f(0x11f)](_0x911950=>_0x911950[_0x1eec0f(0x119)][_0x1eec0f(0x158)](_0x3d0dd1=>buildDynamicCommandDefinition(_0x911950,_0x3d0dd1)));}export function getDynamicServiceDefinitions(_0x760e72){const _0x32844e=a39_0x3752,_0x37fa92=listDynamicServiceDefinitions(_0x760e72);return _0x37fa92[_0x32844e(0x10b)]>0x0?_0x37fa92:undefined;}export function findDynamicServiceDefinition(_0x2c8c02,_0x5aa072){const _0x5e381d=a39_0x3752;return listDynamicServiceDefinitions(_0x2c8c02)['find'](_0x29677f=>_0x29677f[_0x5e381d(0x168)]===_0x5aa072);}export function buildDynamicCommandDefinition(_0x1329f5,_0x482270){const _0x368e3e=a39_0x3752;return{'service':_0x1329f5[_0x368e3e(0x112)][_0x368e3e(0x131)],'command':dynamicCommandName(_0x482270),'description':_0x482270[_0x368e3e(0x156)]||_0x368e3e(0x13b)+_0x482270[_0x368e3e(0x16d)],'risk':_0x482270[_0x368e3e(0x16a)],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x482270[_0x368e3e(0x130)][_0x368e3e(0x158)](_0x3ce28a=>({'name':_0x3ce28a[_0x368e3e(0x169)],'description':_0x3ce28a[_0x368e3e(0x156)]||_0x3ce28a[_0x368e3e(0x169)],'required':_0x3ce28a[_0x368e3e(0x126)]})),'flags':_0x482270['flags']['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x482270),async 'dryRun'(_0x2d21bc){const _0x1215ed=_0x368e3e,_0x2cc504=await compilePlan(_0x482270,_0x2d21bc);return{'method':_0x1215ed(0x15a),'url':_0x482270['cliPath'],'body':{'target':targetPreview(_0x2cc504),'params':_0x2cc504['params']},'description':_0x1215ed(0x10e)+_0x482270['cliPath']};},async 'execute'(_0x505ccd){const _0x358291=_0x368e3e,_0x47f117=await compilePlan(_0x482270,_0x505ccd),_0x4e8197=Date[_0x358291(0x11e)](),_0x33f9f6=await executePlan(_0x47f117,_0x482270,_0x505ccd),_0x3dafd9=Date[_0x358291(0x11e)]()-_0x4e8197;return{'ok':!![],'data':{'service':_0x1329f5[_0x358291(0x112)],'command':_0x482270[_0x358291(0x16d)],'target':targetPreview(_0x47f117),'result':_0x33f9f6,'elapsed':_0x3dafd9},'message':_0x358291(0x161)+_0x482270[_0x358291(0x16d)]+_0x358291(0x13d)+_0x3dafd9+'ms'};}};}function dynamicCommandName(_0x51efee){const _0x20b815=a39_0x3752;return _0x51efee[_0x20b815(0x134)][_0x20b815(0x11c)](0x1)['join']('\x20');}function riskTag(_0x37a361){const _0x52513c=a39_0x3752;return _0x37a361===_0x52513c(0x167)?'':_0x52513c(0x122)+_0x37a361+']';}function a39_0x49d8(){const _0x15ff29=['entries','employeeId','appcode','bffId','Service\x20command\x20','nickName','operator','appCode','number','userId','read','command','name','risk','tenantCode','remainingArgs','cliPath','target','\x20\x20\x20\x20','tableName','datatable','length','326178OdZBhl','\x20\x20\x20\x20datasetCode:\x20','Preview\x20dynamic\x20service\x20command:\x20','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','kind','service','validation','sqlCode','boolean','2309656nJfqbn','default','bffCode','commands','8609271JJMMul','rawFlags','slice','7empagw','now','flatMap','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','tree','\x20\x20[','\x20\x20SERVICE\x20TREE\x20TARGET','Commands:','find','required','5XeGddf','fromEntries','nickname','context.','\x20\x20\x20\x20command:\x20','appBindings','env','padEnd','7afPtSI','args','code','appRef','933520BYXIMu','fullPath','69266rdzcKc','\x20\x20\x20\x20kind:\x20\x20\x20\x20','sql','\x22\x20in\x20service\x20command\x20','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','source','Run\x20service\x20command\x20','Unsupported\x20service\x20target\x20kind:\x20','\x20completed\x20in\x20','enum','envName','798081EMXlpc','4crGPXF','\x20\x20\x20\x20datatable:\x20','dbtableConfig','\x20\x20\x20\x20sqlCode:\x20','datasetCode','some','cliName','data','\x20\x20MAP\x20TO','loginName','app','683622gyjVYc','push','mapTo','join','\x20->\x20','scriptName','params','filter','type','string','description','ctx.','map','startsWith','SERVICE_TREE','\x20<command>\x20[flags]','userName'];a39_0x49d8=function(){return _0x15ff29;};return a39_0x49d8();}function flagToCommandFlag(_0x56de9d){const _0x5dca28=a39_0x3752;return{'name':_0x56de9d[_0x5dca28(0x147)],'type':_0x56de9d[_0x5dca28(0x154)]==='json'?_0x5dca28(0x155):_0x56de9d['type'],'description':_0x56de9d[_0x5dca28(0x156)]||_0x56de9d[_0x5dca28(0x169)],'required':_0x56de9d[_0x5dca28(0x126)],'default':isPrimitiveFlagDefault(_0x56de9d[_0x5dca28(0x117)])?_0x56de9d[_0x5dca28(0x117)]:undefined,'enum':_0x56de9d[_0x5dca28(0x13e)]};}async function compilePlan(_0xda057d,_0x5db3a1){const _0x32c33e=a39_0x3752;return compileServiceTreeCommand(_0xda057d,{'flags':_0x5db3a1[_0x32c33e(0x11b)],'args':_0x5db3a1['args'],'context':await buildServiceContext(_0xda057d,_0x5db3a1)});}async function buildServiceContext(_0x463f6f,_0x2c0b2b){const _0x284d39=a39_0x3752,_0x38646a={'appCode':_0x2c0b2b[_0x284d39(0x164)],'env':_0x2c0b2b[_0x284d39(0x13f)],'envName':_0x2c0b2b[_0x284d39(0x13f)]};if(!usesRuntimeContext(_0x463f6f))return _0x38646a;const _0x29962d=await getLoginUserInfo(),_0x1ce637=pickFirst(_0x29962d[_0x284d39(0x166)],_0x29962d['id']);return{..._0x38646a,'user':_0x29962d,'userId':_0x1ce637,'id':_0x29962d['id'],'username':pickFirst(_0x29962d['username'],_0x29962d['userName'],_0x29962d[_0x284d39(0x14a)]),'userName':_0x29962d[_0x284d39(0x15c)],'nickname':pickFirst(_0x29962d[_0x284d39(0x129)],_0x29962d[_0x284d39(0x162)]),'nickName':_0x29962d[_0x284d39(0x162)],'tenantCode':_0x29962d[_0x284d39(0x16b)],'employeeId':_0x29962d[_0x284d39(0x15e)]};}function usesRuntimeContext(_0x21b4cf){const _0x385fb5=a39_0x3752;return _0x21b4cf['mapTo'][_0x385fb5(0x146)](_0xabac84=>typeof _0xabac84[_0x385fb5(0x13a)]===_0x385fb5(0x155)&&(_0xabac84[_0x385fb5(0x13a)][_0x385fb5(0x159)](_0x385fb5(0x12a))||_0xabac84[_0x385fb5(0x13a)]['startsWith'](_0x385fb5(0x157))));}function pickFirst(..._0xd329f5){return _0xd329f5['find'](_0x33b00f=>_0x33b00f!==undefined&&_0x33b00f!==null);}async function executePlan(_0x3509da,_0x31ce4e,_0xc37256){const _0xd0f44d=a39_0x3752;if(_0x3509da[_0xd0f44d(0x111)]===_0xd0f44d(0x148)){const _0xdada42=await resolveDatasetCode(_0x3509da,_0x31ce4e,_0xc37256);return executeData(_0xdada42,_0x3509da['command'],_0x3509da[_0xd0f44d(0x152)]);}if(_0x3509da['kind']===_0xd0f44d(0x137)){if(!_0x3509da[_0xd0f44d(0x114)])throw CliErrors['validation'](_0xd0f44d(0x161)+_0x31ce4e[_0xd0f44d(0x16d)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x3509da[_0xd0f44d(0x114)],normalizeScalarParams(_0x3509da[_0xd0f44d(0x152)]));}if(_0x3509da[_0xd0f44d(0x111)]==='bff'){const _0x469837=_0x3509da['scriptName']||_0x3509da[_0xd0f44d(0x118)]||(_0x3509da['bffId']==null?'':String(_0x3509da[_0xd0f44d(0x160)]));if(!_0x469837)throw CliErrors['validation'](_0xd0f44d(0x161)+_0x31ce4e[_0xd0f44d(0x16d)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0x469837,_0x3509da[_0xd0f44d(0x152)]);}throw CliErrors[_0xd0f44d(0x113)](_0xd0f44d(0x13c)+_0x3509da[_0xd0f44d(0x111)]);}async function resolveDatasetCode(_0x109e7b,_0x34dbb1,_0x71194a){const _0x290390=a39_0x3752;if(_0x109e7b[_0x290390(0x145)])return _0x109e7b['datasetCode'];if(!_0x109e7b[_0x290390(0x10a)])throw CliErrors[_0x290390(0x113)]('Service\x20command\x20'+_0x34dbb1[_0x290390(0x16d)]+_0x290390(0x120));const _0x131dac=await listDatasets(_0x71194a[_0x290390(0x164)]),_0x2cb410=_0x131dac[_0x290390(0x125)](_0x21eb92=>_0x21eb92[_0x290390(0x143)]?.[_0x290390(0x170)]===_0x109e7b[_0x290390(0x10a)]);if(!_0x2cb410?.[_0x290390(0x131)])throw CliErrors[_0x290390(0x113)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x109e7b[_0x290390(0x10a)]+_0x290390(0x110)+_0x71194a[_0x290390(0x164)]+'.',_0x290390(0x139));return _0x2cb410[_0x290390(0x131)];}function applyAppBinding(_0x2b1f28,_0x1e86a9,_0x24bd9d){const _0x27c35d=a39_0x3752,_0x52f23d=_0x1e86a9[_0x27c35d(0x16e)][_0x27c35d(0x132)];if(!_0x52f23d)return;const _0x382e2c=_0x2b1f28[_0x27c35d(0x12c)][_0x52f23d];if(!_0x382e2c)throw CliErrors[_0x27c35d(0x113)]('Unknown\x20appRef\x20\x22'+_0x52f23d+_0x27c35d(0x138)+_0x1e86a9['cliPath']+'.',_0x27c35d(0x10f));const _0xd6d1b5=_0x382e2c['appcode']||_0x382e2c[_0x27c35d(0x164)];_0xd6d1b5&&!hasText(_0x24bd9d['appcode'])&&(_0x24bd9d[_0x27c35d(0x15f)]=_0xd6d1b5),_0x382e2c[_0x27c35d(0x14b)]&&!hasText(_0x24bd9d['app'])&&!hasText(_0x24bd9d[_0x27c35d(0x15f)])&&(_0x24bd9d['app']=_0x382e2c[_0x27c35d(0x14b)]),_0x382e2c[_0x27c35d(0x12d)]&&!hasText(_0x24bd9d[_0x27c35d(0x12d)])&&(_0x24bd9d[_0x27c35d(0x12d)]=_0x382e2c['env']);}function renderDynamicCommandHelp(_0x397568){const _0x57156a=a39_0x3752,_0x16a8e2=[_0x57156a(0x123),_0x57156a(0x136)+_0x397568['target']['kind'],_0x57156a(0x12b)+_0x397568['target'][_0x57156a(0x168)]];if(_0x397568[_0x57156a(0x16e)]['datasetCode'])_0x16a8e2[_0x57156a(0x14d)](_0x57156a(0x10d)+_0x397568[_0x57156a(0x16e)]['datasetCode']);if(_0x397568[_0x57156a(0x16e)][_0x57156a(0x10a)])_0x16a8e2[_0x57156a(0x14d)](_0x57156a(0x142)+_0x397568[_0x57156a(0x16e)][_0x57156a(0x10a)]);if(_0x397568['target']['sqlCode'])_0x16a8e2['push'](_0x57156a(0x144)+_0x397568[_0x57156a(0x16e)]['sqlCode']);if(_0x397568['target']['scriptName'])_0x16a8e2[_0x57156a(0x14d)]('\x20\x20\x20\x20functionName:\x20'+_0x397568[_0x57156a(0x16e)]['scriptName']);if(_0x397568[_0x57156a(0x14e)][_0x57156a(0x10b)]>0x0){_0x16a8e2[_0x57156a(0x14d)]('',_0x57156a(0x149));for(const _0x5bd37a of _0x397568[_0x57156a(0x14e)]){_0x16a8e2[_0x57156a(0x14d)](_0x57156a(0x16f)+(_0x5bd37a[_0x57156a(0x13a)]||'const')+_0x57156a(0x150)+_0x5bd37a[_0x57156a(0x16e)]+(_0x5bd37a[_0x57156a(0x163)]?'.'+_0x5bd37a[_0x57156a(0x163)]:''));}}return _0x16a8e2[_0x57156a(0x14f)]('\x0a');}function targetPreview(_0x5cadf6){const _0x38c8e2=a39_0x3752;return{'kind':_0x5cadf6[_0x38c8e2(0x111)],'command':_0x5cadf6['command'],'appRef':_0x5cadf6[_0x38c8e2(0x132)],'datasetCode':_0x5cadf6[_0x38c8e2(0x145)],'datatable':_0x5cadf6['datatable'],'sqlCode':_0x5cadf6[_0x38c8e2(0x114)],'bffCode':_0x5cadf6['bffCode'],'bffId':_0x5cadf6[_0x38c8e2(0x160)],'functionName':_0x5cadf6[_0x38c8e2(0x151)]};}function normalizeScalarParams(_0x1ea78c){const _0x3509f9=a39_0x3752;return Object[_0x3509f9(0x128)](Object[_0x3509f9(0x15d)](_0x1ea78c)[_0x3509f9(0x153)](([,_0x157fd5])=>typeof _0x157fd5==='string'||typeof _0x157fd5===_0x3509f9(0x165)));}function hasText(_0x46ad65){const _0x218b51=a39_0x3752;return typeof _0x46ad65==='string'&&_0x46ad65['trim']()[_0x218b51(0x10b)]>0x0;}function isPrimitiveFlagDefault(_0x56bb0d){const _0x5081e2=a39_0x3752;return _0x56bb0d===undefined||typeof _0x56bb0d==='string'||typeof _0x56bb0d===_0x5081e2(0x165)||typeof _0x56bb0d===_0x5081e2(0x115);}
1
+ (function(_0x5bfc08,_0x17164a){const _0x133ea6=a39_0x2c9e,_0x3568ff=_0x5bfc08();while(!![]){try{const _0x54c12f=parseInt(_0x133ea6(0x1a4))/0x1*(-parseInt(_0x133ea6(0x1da))/0x2)+-parseInt(_0x133ea6(0x17d))/0x3+-parseInt(_0x133ea6(0x1ca))/0x4+parseInt(_0x133ea6(0x1c6))/0x5*(-parseInt(_0x133ea6(0x1a8))/0x6)+-parseInt(_0x133ea6(0x190))/0x7*(parseInt(_0x133ea6(0x1c4))/0x8)+parseInt(_0x133ea6(0x184))/0x9*(parseInt(_0x133ea6(0x1a9))/0xa)+parseInt(_0x133ea6(0x18c))/0xb;if(_0x54c12f===_0x17164a)break;else _0x3568ff['push'](_0x3568ff['shift']());}catch(_0xb932d7){_0x3568ff['push'](_0x3568ff['shift']());}}}(a39_0x5763,0xedf27));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x2e993d,_0xc7fed1){const _0x53ce67=a39_0x2c9e,_0x319dea=listLocalServiceTrees();let _0x5c2b22;for(const _0x915fe8 of _0x319dea){const _0x3de6fe=matchServiceTreeCommand(_0x915fe8,_0x2e993d);if(!_0x3de6fe)continue;(!_0x5c2b22||_0x3de6fe[_0x53ce67(0x17a)][_0x53ce67(0x1c2)][_0x53ce67(0x19b)]>_0x5c2b22['command'][_0x53ce67(0x1c2)][_0x53ce67(0x19b)])&&(_0x5c2b22={'tree':_0x915fe8,'command':_0x3de6fe['command'],'remainingArgs':_0x3de6fe[_0x53ce67(0x1bb)]});}if(!_0x5c2b22)return undefined;const _0x518c34={..._0xc7fed1};return applyAppBinding(_0x5c2b22['tree'],_0x5c2b22[_0x53ce67(0x17a)],_0x518c34),{'definition':buildDynamicCommandDefinition(_0x5c2b22[_0x53ce67(0x18d)],_0x5c2b22[_0x53ce67(0x17a)]),'args':_0x5c2b22[_0x53ce67(0x1bb)],'flags':_0x518c34,'tree':_0x5c2b22[_0x53ce67(0x18d)],'command':_0x5c2b22[_0x53ce67(0x17a)]};}export function generateDynamicServiceHelp(_0x3b1135){const _0x91bab7=a39_0x2c9e,_0x72b2dc=listLocalServiceTrees()[_0x91bab7(0x1c8)](_0x43901f=>_0x43901f[_0x91bab7(0x1cb)][_0x91bab7(0x1ba)]===_0x3b1135);if(!_0x72b2dc)return undefined;const _0x5dd686=[CLI_BIN_NAME+'\x20'+_0x3b1135+'\x20<command>\x20[flags]','',_0x72b2dc[_0x91bab7(0x1cb)][_0x91bab7(0x17c)]||_0x3b1135,_0x72b2dc[_0x91bab7(0x1cb)]['description']?'\x20\x20'+_0x72b2dc[_0x91bab7(0x1cb)][_0x91bab7(0x1c7)]:'','','Commands:',..._0x72b2dc[_0x91bab7(0x1df)][_0x91bab7(0x1be)](_0x5c9fe0=>{const _0x5dc322=_0x91bab7,_0x216bb5=_0x5c9fe0[_0x5dc322(0x1c2)][_0x5dc322(0x1c0)](0x1)['join']('\x20'),_0x546622=_0x5c9fe0['risk']==='read'?'':'\x20['+_0x5c9fe0['risk']+']';return'\x20\x20'+_0x216bb5['padEnd'](0x18)+'\x20'+(_0x5c9fe0[_0x5dc322(0x1c7)]||'')+_0x546622;}),'',_0x91bab7(0x1a2)+CLI_BIN_NAME+_0x91bab7(0x193)+_0x3b1135+_0x91bab7(0x1e1)][_0x91bab7(0x1a7)](Boolean);return _0x5dd686[_0x91bab7(0x1ce)]('\x0a');}export function listDynamicServiceEntries(){const _0xff3634=a39_0x2c9e;return listLocalServices()[_0xff3634(0x1be)](_0x54fcd5=>{const _0x52c764=_0xff3634,_0x58e05c=_0x54fcd5[_0x52c764(0x1dd)];return{'service':_0x58e05c[_0x52c764(0x1cb)][_0x52c764(0x1ba)],'label':_0x58e05c['service'][_0x52c764(0x17c)]||_0x58e05c[_0x52c764(0x1cb)][_0x52c764(0x1ba)],'commands':_0x58e05c[_0x52c764(0x1df)]['map'](_0x18e042=>({'command':dynamicCommandName(_0x18e042),'description':_0x18e042['description']||_0x52c764(0x1bd)+_0x18e042[_0x52c764(0x18e)],'tag':riskTag(_0x18e042[_0x52c764(0x1d1)])}))};});}export function getDynamicServiceEntry(_0x5c93bb){const _0x1fed24=a39_0x2c9e;return listDynamicServiceEntries()[_0x1fed24(0x1c8)](_0x1b3967=>_0x1b3967['service']===_0x5c93bb);}export function listDynamicServiceDefinitions(_0x2a21ff){const _0x58dbef=a39_0x2c9e;return listLocalServiceTrees()[_0x58dbef(0x1a7)](_0x3f4a98=>!_0x2a21ff||_0x3f4a98[_0x58dbef(0x1cb)]['code']===_0x2a21ff)[_0x58dbef(0x1b5)](_0x1cd439=>_0x1cd439[_0x58dbef(0x1df)][_0x58dbef(0x1be)](_0xaf5318=>buildDynamicCommandDefinition(_0x1cd439,_0xaf5318)));}export function getDynamicServiceDefinitions(_0x39da6b){const _0x11b8cb=listDynamicServiceDefinitions(_0x39da6b);return _0x11b8cb['length']>0x0?_0x11b8cb:undefined;}export function findDynamicServiceDefinition(_0x3b629c,_0x1b01ef){const _0x46c341=a39_0x2c9e;return listDynamicServiceDefinitions(_0x3b629c)['find'](_0x199160=>_0x199160[_0x46c341(0x17a)]===_0x1b01ef);}export function buildDynamicCommandDefinition(_0x51588b,_0x4f73ec){const _0x277862=a39_0x2c9e;return{'service':_0x51588b['service'][_0x277862(0x1ba)],'command':dynamicCommandName(_0x4f73ec),'description':_0x4f73ec['description']||'Run\x20service\x20command\x20'+_0x4f73ec['cliPath'],'risk':_0x4f73ec['risk'],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x4f73ec['args']['map'](_0x11bfc9=>({'name':_0x11bfc9[_0x277862(0x17c)],'description':_0x11bfc9[_0x277862(0x1c7)]||_0x11bfc9[_0x277862(0x17c)],'required':_0x11bfc9[_0x277862(0x1ae)]})),'flags':_0x4f73ec[_0x277862(0x1dc)][_0x277862(0x1be)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x4f73ec),async 'dryRun'(_0x339d9d){const _0xeb96c2=_0x277862,_0x25cf0e=await compilePlan(_0x4f73ec,_0x339d9d);return{'method':_0xeb96c2(0x1cc),'url':_0x4f73ec[_0xeb96c2(0x18e)],'body':{'target':targetPreview(_0x25cf0e),'params':_0x25cf0e[_0xeb96c2(0x1d5)]},'description':_0xeb96c2(0x18b)+_0x4f73ec[_0xeb96c2(0x18e)]};},async 'execute'(_0x32f766){const _0x3dea95=_0x277862,_0x67eca7=await compilePlan(_0x4f73ec,_0x32f766),_0x19bca6=Date[_0x3dea95(0x192)](),_0x257398=await executePlan(_0x67eca7,_0x4f73ec,_0x32f766),_0x3f527a=Date[_0x3dea95(0x192)]()-_0x19bca6;return{'ok':!![],'data':{'service':_0x51588b[_0x3dea95(0x1cb)],'command':_0x4f73ec[_0x3dea95(0x18e)],'target':targetPreview(_0x67eca7),'result':_0x257398,'elapsed':_0x3f527a},'message':_0x3dea95(0x1c9)+_0x4f73ec[_0x3dea95(0x18e)]+_0x3dea95(0x181)+_0x3f527a+'ms'};}};}function dynamicCommandName(_0x256fdf){const _0x377c12=a39_0x2c9e;return _0x256fdf[_0x377c12(0x1c2)][_0x377c12(0x1c0)](0x1)[_0x377c12(0x1ce)]('\x20');}function riskTag(_0x2077d){return _0x2077d==='read'?'':'\x20\x20['+_0x2077d+']';}function flagToCommandFlag(_0x106255){const _0x2ab627=a39_0x2c9e;return{'name':_0x106255[_0x2ab627(0x17f)],'type':_0x106255[_0x2ab627(0x1b4)]===_0x2ab627(0x1c5)?_0x2ab627(0x186):_0x106255[_0x2ab627(0x1b4)],'description':_0x106255[_0x2ab627(0x1c7)]||_0x106255[_0x2ab627(0x17c)],'required':_0x106255[_0x2ab627(0x1ae)],'default':isPrimitiveFlagDefault(_0x106255['default'])?_0x106255[_0x2ab627(0x1b9)]:undefined,'enum':_0x106255[_0x2ab627(0x1ab)]};}function a39_0x2c9e(_0x34b06d,_0xe2832f){_0x34b06d=_0x34b06d-0x17a;const _0x57636c=a39_0x5763();let _0x2c9e1b=_0x57636c[_0x34b06d];return _0x2c9e1b;}async function compilePlan(_0x311210,_0x28761b){const _0xea6e70=a39_0x2c9e;return compileServiceTreeCommand(_0x311210,{'flags':_0x28761b['rawFlags'],'args':_0x28761b[_0xea6e70(0x1b2)],'context':await buildServiceContext(_0x311210,_0x28761b)});}async function buildServiceContext(_0x49e98d,_0x3ab248){const _0x2e3369=a39_0x2c9e,_0x339dbd={'appCode':_0x3ab248['appCode'],'env':_0x3ab248[_0x2e3369(0x19e)],'envName':_0x3ab248['envName']};if(!usesRuntimeContext(_0x49e98d))return _0x339dbd;const _0x358a9e=await getLoginUserInfo(),_0x2f3c9e=pickFirst(_0x358a9e['userId'],_0x358a9e['id']);return{..._0x339dbd,'user':_0x358a9e,'userId':_0x2f3c9e,'id':_0x358a9e['id'],'username':pickFirst(_0x358a9e[_0x2e3369(0x188)],_0x358a9e[_0x2e3369(0x18a)],_0x358a9e[_0x2e3369(0x197)]),'userName':_0x358a9e[_0x2e3369(0x18a)],'nickname':pickFirst(_0x358a9e[_0x2e3369(0x1b0)],_0x358a9e['nickName']),'nickName':_0x358a9e['nickName'],'tenantCode':_0x358a9e[_0x2e3369(0x1e0)],'employeeId':_0x358a9e[_0x2e3369(0x196)]};}function usesRuntimeContext(_0x46cf70){const _0x4cd592=a39_0x2c9e;return _0x46cf70[_0x4cd592(0x1ad)][_0x4cd592(0x1db)](_0x224b2c=>typeof _0x224b2c[_0x4cd592(0x1d6)]==='string'&&(_0x224b2c[_0x4cd592(0x1d6)][_0x4cd592(0x180)](_0x4cd592(0x189))||_0x224b2c[_0x4cd592(0x1d6)][_0x4cd592(0x180)](_0x4cd592(0x1d2))));}function a39_0x5763(){const _0x3a04c5=['params','source','sql','appCode','\x20\x20SERVICE\x20TREE\x20TARGET','2bfLRSA','some','flags','normalizedManifest','\x20\x20\x20\x20kind:\x20\x20\x20\x20','commands','tenantCode','`\x20to\x20inspect\x20the\x20manifest.','command','env','name','5718225TUsGwm','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','cliName','startsWith','\x20completed\x20in\x20','number','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','9dkKNId','\x20\x20MAP\x20TO','string','\x20requires\x20target.functionName.','username','context.','userName','Preview\x20dynamic\x20service\x20command:\x20','63735760QVEDSl','tree','cliPath','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','7OGcMDz','\x20\x20\x20\x20command:\x20','now','\x20service\x20detail\x20--service\x20','Unsupported\x20service\x20target\x20kind:\x20','bff','employeeId','loginName','\x20\x20\x20\x20datatable:\x20','Cannot\x20resolve\x20datatable\x20\x22','boolean','length','bffId','datasetCode','envName','\x20requires\x20target.sqlCode.','\x20\x20\x20\x20','push','Use\x20`','bffCode','701707XsKCDF','const','target','filter','746958DxIJnc','13763930VYKLzO','\x20\x20\x20\x20datasetCode:\x20','enum','dbtableConfig','mapTo','required','\x20\x20\x20\x20sqlCode:\x20','nickname','appcode','args','entries','type','flatMap','fromEntries','data','appRef','default','code','remainingArgs','\x22\x20in\x20service\x20command\x20','Run\x20service\x20command\x20','map','validation','slice','appBindings','fullPath','app','12370960DhEjuJ','json','30HIExHA','description','find','Service\x20command\x20','5179248nFTcCL','service','SERVICE_TREE','kind','join','operator','sqlCode','risk','ctx.','scriptName','datatable'];a39_0x5763=function(){return _0x3a04c5;};return a39_0x5763();}function pickFirst(..._0x5a0e51){const _0x264429=a39_0x2c9e;return _0x5a0e51[_0x264429(0x1c8)](_0x3e7b7c=>_0x3e7b7c!==undefined&&_0x3e7b7c!==null);}async function executePlan(_0x6d2c4e,_0x32004d,_0x1149d3){const _0x202a45=a39_0x2c9e;if(_0x6d2c4e[_0x202a45(0x1cd)]===_0x202a45(0x1b7)){const _0x12c2d6=await resolveDatasetCode(_0x6d2c4e,_0x32004d,_0x1149d3);return executeData(_0x12c2d6,_0x6d2c4e['command'],_0x6d2c4e[_0x202a45(0x1d5)]);}if(_0x6d2c4e[_0x202a45(0x1cd)]===_0x202a45(0x1d7)){if(!_0x6d2c4e['sqlCode'])throw CliErrors[_0x202a45(0x1bf)]('Service\x20command\x20'+_0x32004d['cliPath']+_0x202a45(0x19f));return executeSdkSql(_0x6d2c4e[_0x202a45(0x1d0)],normalizeScalarParams(_0x6d2c4e[_0x202a45(0x1d5)]));}if(_0x6d2c4e[_0x202a45(0x1cd)]===_0x202a45(0x195)){const _0x7b1654=_0x6d2c4e[_0x202a45(0x1d3)]||_0x6d2c4e[_0x202a45(0x1a3)]||(_0x6d2c4e[_0x202a45(0x19c)]==null?'':String(_0x6d2c4e[_0x202a45(0x19c)]));if(!_0x7b1654)throw CliErrors[_0x202a45(0x1bf)](_0x202a45(0x1c9)+_0x32004d[_0x202a45(0x18e)]+_0x202a45(0x187));return executeSdkBff(_0x7b1654,_0x6d2c4e[_0x202a45(0x1d5)]);}throw CliErrors[_0x202a45(0x1bf)](_0x202a45(0x194)+_0x6d2c4e['kind']);}async function resolveDatasetCode(_0x260adb,_0x178032,_0x5099e5){const _0x1eb7a1=a39_0x2c9e;if(_0x260adb[_0x1eb7a1(0x19d)])return _0x260adb[_0x1eb7a1(0x19d)];if(!_0x260adb[_0x1eb7a1(0x1d4)])throw CliErrors[_0x1eb7a1(0x1bf)](_0x1eb7a1(0x1c9)+_0x178032[_0x1eb7a1(0x18e)]+_0x1eb7a1(0x17e));const _0x13df7a=await listDatasets(_0x5099e5['appCode']),_0x2fc9db=_0x13df7a[_0x1eb7a1(0x1c8)](_0x1d70ec=>_0x1d70ec[_0x1eb7a1(0x1ac)]?.['tableName']===_0x260adb['datatable']);if(!_0x2fc9db?.[_0x1eb7a1(0x1ba)])throw CliErrors[_0x1eb7a1(0x1bf)](_0x1eb7a1(0x199)+_0x260adb[_0x1eb7a1(0x1d4)]+_0x1eb7a1(0x18f)+_0x5099e5[_0x1eb7a1(0x1d8)]+'.',_0x1eb7a1(0x183));return _0x2fc9db[_0x1eb7a1(0x1ba)];}function applyAppBinding(_0x232bec,_0x50c409,_0x1b1f35){const _0x4e69a6=a39_0x2c9e,_0x5d67f5=_0x50c409['target'][_0x4e69a6(0x1b8)];if(!_0x5d67f5)return;const _0x316900=_0x232bec[_0x4e69a6(0x1c1)][_0x5d67f5];if(!_0x316900)throw CliErrors[_0x4e69a6(0x1bf)]('Unknown\x20appRef\x20\x22'+_0x5d67f5+_0x4e69a6(0x1bc)+_0x50c409['cliPath']+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x3c24d3=_0x316900[_0x4e69a6(0x1b1)]||_0x316900['appCode'];_0x3c24d3&&!hasText(_0x1b1f35[_0x4e69a6(0x1b1)])&&(_0x1b1f35['appcode']=_0x3c24d3),_0x316900[_0x4e69a6(0x1c3)]&&!hasText(_0x1b1f35[_0x4e69a6(0x1c3)])&&!hasText(_0x1b1f35['appcode'])&&(_0x1b1f35[_0x4e69a6(0x1c3)]=_0x316900[_0x4e69a6(0x1c3)]),_0x316900[_0x4e69a6(0x17b)]&&!hasText(_0x1b1f35[_0x4e69a6(0x17b)])&&(_0x1b1f35[_0x4e69a6(0x17b)]=_0x316900['env']);}function renderDynamicCommandHelp(_0x21a497){const _0x5820ab=a39_0x2c9e,_0xe5c939=[_0x5820ab(0x1d9),_0x5820ab(0x1de)+_0x21a497[_0x5820ab(0x1a6)][_0x5820ab(0x1cd)],_0x5820ab(0x191)+_0x21a497['target'][_0x5820ab(0x17a)]];if(_0x21a497[_0x5820ab(0x1a6)][_0x5820ab(0x19d)])_0xe5c939['push'](_0x5820ab(0x1aa)+_0x21a497[_0x5820ab(0x1a6)][_0x5820ab(0x19d)]);if(_0x21a497[_0x5820ab(0x1a6)][_0x5820ab(0x1d4)])_0xe5c939['push'](_0x5820ab(0x198)+_0x21a497[_0x5820ab(0x1a6)][_0x5820ab(0x1d4)]);if(_0x21a497[_0x5820ab(0x1a6)]['sqlCode'])_0xe5c939['push'](_0x5820ab(0x1af)+_0x21a497[_0x5820ab(0x1a6)]['sqlCode']);if(_0x21a497['target']['scriptName'])_0xe5c939[_0x5820ab(0x1a1)]('\x20\x20\x20\x20functionName:\x20'+_0x21a497[_0x5820ab(0x1a6)][_0x5820ab(0x1d3)]);if(_0x21a497[_0x5820ab(0x1ad)][_0x5820ab(0x19b)]>0x0){_0xe5c939[_0x5820ab(0x1a1)]('',_0x5820ab(0x185));for(const _0xb834b2 of _0x21a497['mapTo']){_0xe5c939[_0x5820ab(0x1a1)](_0x5820ab(0x1a0)+(_0xb834b2[_0x5820ab(0x1d6)]||_0x5820ab(0x1a5))+'\x20->\x20'+_0xb834b2['target']+(_0xb834b2['operator']?'.'+_0xb834b2[_0x5820ab(0x1cf)]:''));}}return _0xe5c939[_0x5820ab(0x1ce)]('\x0a');}function targetPreview(_0x188b3e){const _0x4ffeec=a39_0x2c9e;return{'kind':_0x188b3e[_0x4ffeec(0x1cd)],'command':_0x188b3e[_0x4ffeec(0x17a)],'appRef':_0x188b3e[_0x4ffeec(0x1b8)],'datasetCode':_0x188b3e[_0x4ffeec(0x19d)],'datatable':_0x188b3e[_0x4ffeec(0x1d4)],'sqlCode':_0x188b3e['sqlCode'],'bffCode':_0x188b3e['bffCode'],'bffId':_0x188b3e[_0x4ffeec(0x19c)],'functionName':_0x188b3e['scriptName']};}function normalizeScalarParams(_0x1f1951){const _0x37f31c=a39_0x2c9e;return Object[_0x37f31c(0x1b6)](Object[_0x37f31c(0x1b3)](_0x1f1951)[_0x37f31c(0x1a7)](([,_0x3b4e44])=>typeof _0x3b4e44===_0x37f31c(0x186)||typeof _0x3b4e44===_0x37f31c(0x182)));}function hasText(_0x2594dc){const _0x39c761=a39_0x2c9e;return typeof _0x2594dc==='string'&&_0x2594dc['trim']()[_0x39c761(0x19b)]>0x0;}function isPrimitiveFlagDefault(_0x36d8ff){const _0xd469b1=a39_0x2c9e;return _0x36d8ff===undefined||typeof _0x36d8ff===_0xd469b1(0x186)||typeof _0x36d8ff===_0xd469b1(0x182)||typeof _0x36d8ff===_0xd469b1(0x19a);}
@@ -1 +1 @@
1
- (function(_0x2f0975,_0x4c94f9){const _0x376ef8=a40_0x30a4,_0x9f412a=_0x2f0975();while(!![]){try{const _0x41f095=-parseInt(_0x376ef8(0x1bc))/0x1+parseInt(_0x376ef8(0x1c7))/0x2+parseInt(_0x376ef8(0x1c1))/0x3+-parseInt(_0x376ef8(0x1b4))/0x4+parseInt(_0x376ef8(0x1c3))/0x5+-parseInt(_0x376ef8(0x1b9))/0x6*(-parseInt(_0x376ef8(0x1ab))/0x7)+-parseInt(_0x376ef8(0x1af))/0x8*(-parseInt(_0x376ef8(0x1c2))/0x9);if(_0x41f095===_0x4c94f9)break;else _0x9f412a['push'](_0x9f412a['shift']());}catch(_0x245068){_0x9f412a['push'](_0x9f412a['shift']());}}}(a40_0x715b,0x73f3a));export function adaptServiceTreeManifestForLegacyFramework(_0x1d74a4){const _0x280a57=a40_0x30a4,_0xc5162f=cloneJsonValue(_0x1d74a4),_0x598500=[];if(!isObjectRecord(_0xc5162f))return{'manifest':_0xc5162f,'errors':_0x598500};return Array[_0x280a57(0x1c9)](_0xc5162f['commands'])&&_0xc5162f['commands'][_0x280a57(0x1ac)]((_0x25a3bc,_0x1a350e)=>{const _0x40d753=_0x280a57;if(!isObjectRecord(_0x25a3bc))return;adaptBffTarget(_0x25a3bc[_0x40d753(0x1b7)],_0x40d753(0x1b0)+_0x1a350e+'].target',_0x598500);}),adaptResources(_0xc5162f['resources'],'$.resources',_0x598500),{'manifest':_0xc5162f,'errors':_0x598500};}export function toPublicServiceTreeTarget(_0x26ea6d){const _0x3f1955=a40_0x30a4,{scriptName:_0x795c0f,..._0x230bf2}=_0x26ea6d;return typeof _0x795c0f===_0x3f1955(0x1b2)&&_0x795c0f[_0x3f1955(0x1c6)]()&&(_0x230bf2['functionName']=_0x795c0f),_0x230bf2;}export function toPublicNormalizedServiceTree(_0x2857ea){const _0x5b09c5=a40_0x30a4;return{..._0x2857ea,'commands':_0x2857ea[_0x5b09c5(0x1b6)][_0x5b09c5(0x1c5)](_0x341b7f=>({..._0x341b7f,'target':toPublicServiceTreeTarget(_0x341b7f['target'])}))};}function adaptResources(_0x56989c,_0x1630aa,_0x1a07b6){const _0x5d1382=a40_0x30a4;if(!isObjectRecord(_0x56989c))return;for(const [_0x41fa37,_0x31b2b1]of Object[_0x5d1382(0x1ca)](_0x56989c)){if(!isObjectRecord(_0x31b2b1))continue;const _0x5ab27f=_0x1630aa+'.'+_0x41fa37;if(isObjectRecord(_0x31b2b1['actions']))for(const [_0x1b04be,_0x4cc220]of Object['entries'](_0x31b2b1['actions'])){if(!isObjectRecord(_0x4cc220))continue;const _0x4dce5c=_0x5ab27f+_0x5d1382(0x1ae)+_0x1b04be,_0x1bc0dd=isObjectRecord(_0x4cc220['target'])&&_0x4cc220['target'][_0x5d1382(0x1b8)]===_0x5d1382(0x1bf);adaptBffTarget(_0x4cc220['target'],_0x4dce5c+_0x5d1382(0x1cf),_0x1a07b6),(_0x1bc0dd||isBffAction(_0x4cc220))&&adaptFunctionNameField(_0x4cc220,_0x4dce5c,_0x1a07b6);}adaptResources(_0x31b2b1[_0x5d1382(0x1c4)],_0x5ab27f+_0x5d1382(0x1ad),_0x1a07b6);}}function a40_0x30a4(_0x21631a,_0x34c876){_0x21631a=_0x21631a-0x1ab;const _0x715bd=a40_0x715b();let _0x30a4fa=_0x715bd[_0x21631a];return _0x30a4fa;}function adaptBffTarget(_0x51877a,_0x13ba66,_0x2f164c){const _0x228f1a=a40_0x30a4;if(!isObjectRecord(_0x51877a)||_0x51877a[_0x228f1a(0x1b8)]!=='bff')return;adaptFunctionNameField(_0x51877a,_0x13ba66,_0x2f164c);}function a40_0x715b(){const _0x404397=['.actions.','470608txEuTb','$.commands[','push','string','error','3505388FOdZWa','bff.exec','commands','target','kind','138PsCkPz','hasOwnProperty','.functionName','615476FaaVKg','scriptName','.scriptName','bff','functionName\x20must\x20be\x20a\x20non-empty\x20string.','2341152ZAjacU','9iPdsvH','1257100CCDcDm','resources','map','trim','624756TQQlqW','action','isArray','entries','functionName','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','object','prototype','.target','171577TfagNy','forEach','.resources'];a40_0x715b=function(){return _0x404397;};return a40_0x715b();}function adaptFunctionNameField(_0x3f2d92,_0x101f9a,_0x400b21){const _0x1408bb=a40_0x30a4;Object[_0x1408bb(0x1ce)][_0x1408bb(0x1ba)]['call'](_0x3f2d92,_0x1408bb(0x1bd))&&_0x400b21[_0x1408bb(0x1b1)]({'level':_0x1408bb(0x1b3),'path':_0x101f9a+_0x1408bb(0x1be),'message':_0x1408bb(0x1cc)});if(Object[_0x1408bb(0x1ce)][_0x1408bb(0x1ba)]['call'](_0x3f2d92,_0x1408bb(0x1cb))){if(typeof _0x3f2d92[_0x1408bb(0x1cb)]!==_0x1408bb(0x1b2)||!_0x3f2d92[_0x1408bb(0x1cb)]['trim']()){_0x400b21['push']({'level':_0x1408bb(0x1b3),'path':_0x101f9a+_0x1408bb(0x1bb),'message':_0x1408bb(0x1c0)}),delete _0x3f2d92['functionName'];return;}_0x3f2d92[_0x1408bb(0x1bd)]=_0x3f2d92[_0x1408bb(0x1cb)],delete _0x3f2d92[_0x1408bb(0x1cb)];}}function isBffAction(_0x1d9e95){const _0x1595cf=a40_0x30a4;return _0x1d9e95[_0x1595cf(0x1b8)]==='bff'||_0x1d9e95[_0x1595cf(0x1c8)]===_0x1595cf(0x1b5)||_0x1d9e95[_0x1595cf(0x1b7)]===_0x1595cf(0x1b5);}function cloneJsonValue(_0x3c0b8c){const _0x36b5=a40_0x30a4;if(Array[_0x36b5(0x1c9)](_0x3c0b8c))return _0x3c0b8c[_0x36b5(0x1c5)](_0x12fe09=>cloneJsonValue(_0x12fe09));if(isObjectRecord(_0x3c0b8c))return Object['fromEntries'](Object[_0x36b5(0x1ca)](_0x3c0b8c)[_0x36b5(0x1c5)](([_0x35e8d8,_0x5d54e1])=>[_0x35e8d8,cloneJsonValue(_0x5d54e1)]));return _0x3c0b8c;}function isObjectRecord(_0x41d71a){const _0x424101=a40_0x30a4;return Boolean(_0x41d71a)&&typeof _0x41d71a===_0x424101(0x1cd)&&!Array['isArray'](_0x41d71a);}
1
+ function a40_0x4465(_0x3e4209,_0x3c0f67){_0x3e4209=_0x3e4209-0x14e;const _0x21911d=a40_0x2191();let _0x446543=_0x21911d[_0x3e4209];return _0x446543;}(function(_0x50a252,_0x45b0d4){const _0x2b6b55=a40_0x4465,_0x45f989=_0x50a252();while(!![]){try{const _0x13b1f9=-parseInt(_0x2b6b55(0x164))/0x1*(parseInt(_0x2b6b55(0x153))/0x2)+parseInt(_0x2b6b55(0x16e))/0x3*(parseInt(_0x2b6b55(0x163))/0x4)+-parseInt(_0x2b6b55(0x156))/0x5+parseInt(_0x2b6b55(0x172))/0x6*(-parseInt(_0x2b6b55(0x16f))/0x7)+parseInt(_0x2b6b55(0x160))/0x8+parseInt(_0x2b6b55(0x169))/0x9+-parseInt(_0x2b6b55(0x167))/0xa;if(_0x13b1f9===_0x45b0d4)break;else _0x45f989['push'](_0x45f989['shift']());}catch(_0x2996f9){_0x45f989['push'](_0x45f989['shift']());}}}(a40_0x2191,0xb7592));export function adaptServiceTreeManifestForLegacyFramework(_0x192f55){const _0x11ea19=a40_0x4465,_0x101b66=cloneJsonValue(_0x192f55),_0x5a772a=[];if(!isObjectRecord(_0x101b66))return{'manifest':_0x101b66,'errors':_0x5a772a};return Array[_0x11ea19(0x150)](_0x101b66[_0x11ea19(0x15d)])&&_0x101b66[_0x11ea19(0x15d)]['forEach']((_0x3cb10a,_0x71c7fc)=>{const _0x4f8b29=_0x11ea19;if(!isObjectRecord(_0x3cb10a))return;adaptBffTarget(_0x3cb10a[_0x4f8b29(0x15e)],_0x4f8b29(0x155)+_0x71c7fc+_0x4f8b29(0x161),_0x5a772a);}),adaptResources(_0x101b66[_0x11ea19(0x14e)],'$.resources',_0x5a772a),{'manifest':_0x101b66,'errors':_0x5a772a};}export function toPublicServiceTreeTarget(_0x304745){const _0x515dbb=a40_0x4465,{scriptName:_0x29b65a,..._0x2a216b}=_0x304745;return typeof _0x29b65a===_0x515dbb(0x151)&&_0x29b65a[_0x515dbb(0x158)]()&&(_0x2a216b[_0x515dbb(0x16d)]=_0x29b65a),_0x2a216b;}export function toPublicNormalizedServiceTree(_0x5a3624){const _0xaf9435=a40_0x4465;return{..._0x5a3624,'commands':_0x5a3624[_0xaf9435(0x15d)][_0xaf9435(0x16b)](_0x335860=>({..._0x335860,'target':toPublicServiceTreeTarget(_0x335860[_0xaf9435(0x15e)])}))};}function adaptResources(_0x581a69,_0x505c2d,_0x1b8acd){const _0x3101c2=a40_0x4465;if(!isObjectRecord(_0x581a69))return;for(const [_0x1aaa87,_0x4399d1]of Object[_0x3101c2(0x159)](_0x581a69)){if(!isObjectRecord(_0x4399d1))continue;const _0x31453e=_0x505c2d+'.'+_0x1aaa87;if(isObjectRecord(_0x4399d1[_0x3101c2(0x15a)]))for(const [_0x2a2faa,_0x72002d]of Object[_0x3101c2(0x159)](_0x4399d1[_0x3101c2(0x15a)])){if(!isObjectRecord(_0x72002d))continue;const _0x2d3d3f=_0x31453e+'.actions.'+_0x2a2faa,_0x246da8=isObjectRecord(_0x72002d[_0x3101c2(0x15e)])&&_0x72002d[_0x3101c2(0x15e)]['kind']===_0x3101c2(0x162);adaptBffTarget(_0x72002d[_0x3101c2(0x15e)],_0x2d3d3f+_0x3101c2(0x154),_0x1b8acd),(_0x246da8||isBffAction(_0x72002d))&&adaptFunctionNameField(_0x72002d,_0x2d3d3f,_0x1b8acd);}adaptResources(_0x4399d1[_0x3101c2(0x14e)],_0x31453e+_0x3101c2(0x14f),_0x1b8acd);}}function a40_0x2191(){const _0x123be8=['resources','.resources','isArray','string','push','131420JxIXzh','.target','$.commands[','4019520WKcxqv','scriptName','trim','entries','actions','bff.exec','prototype','commands','target','fromEntries','9223752wrullf','].target','bff','955744bISMdw','15ChBxZs','.functionName','call','2522350ntUnCX','functionName\x20must\x20be\x20a\x20non-empty\x20string.','11729952ThCTkZ','error','map','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','functionName','12dzdipm','4334806mItrLQ','object','kind','6nPVKLJ','hasOwnProperty'];a40_0x2191=function(){return _0x123be8;};return a40_0x2191();}function adaptBffTarget(_0x5a69a5,_0x34523e,_0x407c69){const _0x57b8c3=a40_0x4465;if(!isObjectRecord(_0x5a69a5)||_0x5a69a5['kind']!==_0x57b8c3(0x162))return;adaptFunctionNameField(_0x5a69a5,_0x34523e,_0x407c69);}function adaptFunctionNameField(_0x5383fe,_0xa261b4,_0x24ff5d){const _0x96cb49=a40_0x4465;Object[_0x96cb49(0x15c)][_0x96cb49(0x173)][_0x96cb49(0x166)](_0x5383fe,_0x96cb49(0x157))&&_0x24ff5d[_0x96cb49(0x152)]({'level':_0x96cb49(0x16a),'path':_0xa261b4+'.scriptName','message':_0x96cb49(0x16c)});if(Object['prototype'][_0x96cb49(0x173)][_0x96cb49(0x166)](_0x5383fe,_0x96cb49(0x16d))){if(typeof _0x5383fe[_0x96cb49(0x16d)]!==_0x96cb49(0x151)||!_0x5383fe[_0x96cb49(0x16d)][_0x96cb49(0x158)]()){_0x24ff5d['push']({'level':'error','path':_0xa261b4+_0x96cb49(0x165),'message':_0x96cb49(0x168)}),delete _0x5383fe[_0x96cb49(0x16d)];return;}_0x5383fe[_0x96cb49(0x157)]=_0x5383fe[_0x96cb49(0x16d)],delete _0x5383fe[_0x96cb49(0x16d)];}}function isBffAction(_0x50da60){const _0x627c07=a40_0x4465;return _0x50da60[_0x627c07(0x171)]===_0x627c07(0x162)||_0x50da60['action']==='bff.exec'||_0x50da60[_0x627c07(0x15e)]===_0x627c07(0x15b);}function cloneJsonValue(_0x10b564){const _0x59a414=a40_0x4465;if(Array['isArray'](_0x10b564))return _0x10b564['map'](_0x58da41=>cloneJsonValue(_0x58da41));if(isObjectRecord(_0x10b564))return Object[_0x59a414(0x15f)](Object[_0x59a414(0x159)](_0x10b564)[_0x59a414(0x16b)](([_0x568d99,_0x478350])=>[_0x568d99,cloneJsonValue(_0x478350)]));return _0x10b564;}function isObjectRecord(_0x52374f){const _0x4de446=a40_0x4465;return Boolean(_0x52374f)&&typeof _0x52374f===_0x4de446(0x170)&&!Array['isArray'](_0x52374f);}
@@ -1 +1 @@
1
- const a41_0x4427d9=a41_0x2fbb;(function(_0xec100d,_0x598ce6){const _0x543406=a41_0x2fbb,_0x4bdcef=_0xec100d();while(!![]){try{const _0x56fa04=-parseInt(_0x543406(0x157))/0x1+parseInt(_0x543406(0x188))/0x2+-parseInt(_0x543406(0x186))/0x3*(parseInt(_0x543406(0x17f))/0x4)+parseInt(_0x543406(0x172))/0x5+parseInt(_0x543406(0x183))/0x6+-parseInt(_0x543406(0x15a))/0x7+parseInt(_0x543406(0x16f))/0x8;if(_0x56fa04===_0x598ce6)break;else _0x4bdcef['push'](_0x4bdcef['shift']());}catch(_0x50a5a8){_0x4bdcef['push'](_0x4bdcef['shift']());}}}(a41_0x4eef,0x2fc5e));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a41_0x2fbb(_0x180e4b,_0x5c609c){_0x180e4b=_0x180e4b-0x148;const _0x4eef83=a41_0x4eef();let _0x2fbb1e=_0x4eef83[_0x180e4b];return _0x2fbb1e;}function a41_0x4eef(){const _0x1ac771=['Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','name','cliPath','serviceCode','Updated','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','Removed\x20service\x20','description','manifest','serviceCount','hash','Service\x20manifest\x20validation\x20passed.','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','target','report','commands','flags','\x20service(s),\x20updated\x20','3291072dTSrSY','service','detail','625405gKCICg','map','updated','file','entries','registryPath','replaced','length','Imported\x20','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','errors','manifests','Exported\x20service\x20','4LMSibi','registryServiceCode','list','\x20service(s).','924696SDDyNV','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','Local\x20service\x20code,\x20for\x20example\x20crm','753873cFnmer','write','341736QLyVTK','normalizedManifest','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','Local\x20service\x20not\x20found:\x20','required','Service\x20Tree\x20manifest\x20file\x20path','kind','str','registry','import','imported','registryIndex','Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','\x20service\x20','WRITE','entry','read','risk','source','validate','string','280178pfszYe','reduce','version','940114BfXhhL','warnings','filePath'];a41_0x4eef=function(){return _0x1ac771;};return a41_0x4eef();}import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a41_0x4427d9(0x175),'type':'string','required':!![],'description':a41_0x4427d9(0x18d)},SERVICE_FLAG={'name':a41_0x4427d9(0x170),'type':a41_0x4427d9(0x156),'required':!![],'description':a41_0x4427d9(0x185),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x5433f5){const _0x3d9374=a41_0x4427d9;return{'serviceCode':_0x5433f5[_0x3d9374(0x160)],'name':_0x5433f5[_0x3d9374(0x189)]['service'][_0x3d9374(0x15e)],'version':_0x5433f5[_0x3d9374(0x159)],'importedAt':_0x5433f5['importedAt'],'source':_0x5433f5[_0x3d9374(0x154)],'commandCount':_0x5433f5[_0x3d9374(0x189)][_0x3d9374(0x16c)][_0x3d9374(0x179)],'commands':_0x5433f5[_0x3d9374(0x189)][_0x3d9374(0x16c)][_0x3d9374(0x173)](_0x303816=>({'path':_0x303816['cliPath'],'description':_0x303816[_0x3d9374(0x164)],'risk':_0x303816[_0x3d9374(0x153)],'target':toPublicServiceTreeTarget(_0x303816[_0x3d9374(0x16a)]),'flags':_0x303816[_0x3d9374(0x16d)]['map'](_0x414f7d=>({'name':_0x414f7d[_0x3d9374(0x15e)],'cliName':_0x414f7d['cliName'],'type':_0x414f7d['type'],'required':_0x414f7d[_0x3d9374(0x18c)]===!![]}))}))};}function summarizeLoadedManifest(_0x701409){const _0x4500e1=a41_0x4427d9;return{'service':_0x701409[_0x4500e1(0x189)]?.[_0x4500e1(0x170)],'version':_0x701409[_0x4500e1(0x189)]?.[_0x4500e1(0x159)],'commandCount':_0x701409[_0x4500e1(0x189)]?.[_0x4500e1(0x16c)][_0x4500e1(0x179)]??0x0,'commands':_0x701409[_0x4500e1(0x189)]?.[_0x4500e1(0x16c)]['map'](_0x496c28=>({'path':_0x496c28[_0x4500e1(0x15f)],'risk':_0x496c28['risk'],'target':toPublicServiceTreeTarget(_0x496c28[_0x4500e1(0x16a)])}))??[],'registryIndex':_0x701409[_0x4500e1(0x14d)],'registryServiceCode':_0x701409[_0x4500e1(0x180)],'errors':_0x701409[_0x4500e1(0x16b)]['errors'],'warnings':_0x701409['report'][_0x4500e1(0x15b)]};}export const serviceDefinitions=[{'service':'service','command':a41_0x4427d9(0x155),'description':a41_0x4427d9(0x15d),'risk':a41_0x4427d9(0x152),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x3db0ed){const _0x1f6600=a41_0x4427d9,_0x4851f2=loadServiceManifestFromFile(_0x3db0ed[_0x1f6600(0x149)](_0x1f6600(0x175)));if(!_0x4851f2[_0x1f6600(0x16b)]['ok'])return{'ok':![],'data':{'file':_0x4851f2[_0x1f6600(0x15c)],'hash':_0x4851f2['hash'],'kind':_0x4851f2[_0x1f6600(0x148)],'serviceCount':_0x4851f2[_0x1f6600(0x17d)]['length'],'services':_0x4851f2['manifests'][_0x1f6600(0x173)](summarizeLoadedManifest),'errors':_0x4851f2[_0x1f6600(0x16b)][_0x1f6600(0x17c)],'warnings':_0x4851f2[_0x1f6600(0x16b)]['warnings']},'message':formatValidationFailure(_0x4851f2[_0x1f6600(0x16b)])};if(_0x4851f2[_0x1f6600(0x148)]===_0x1f6600(0x14a)||_0x4851f2[_0x1f6600(0x17d)][_0x1f6600(0x179)]!==0x1)return{'ok':!![],'data':{'file':_0x4851f2[_0x1f6600(0x15c)],'hash':_0x4851f2[_0x1f6600(0x167)],'kind':_0x4851f2[_0x1f6600(0x148)],'serviceCount':_0x4851f2[_0x1f6600(0x17d)][_0x1f6600(0x179)],'commandCount':_0x4851f2['manifests'][_0x1f6600(0x158)]((_0x2796d3,_0x21106a)=>_0x2796d3+(_0x21106a[_0x1f6600(0x189)]?.[_0x1f6600(0x16c)][_0x1f6600(0x179)]??0x0),0x0),'services':_0x4851f2['manifests']['map'](summarizeLoadedManifest),'warnings':_0x4851f2['report'][_0x1f6600(0x15b)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x4851f2['filePath'],'hash':_0x4851f2[_0x1f6600(0x167)],'kind':_0x4851f2[_0x1f6600(0x148)],'service':_0x4851f2['normalizedManifest']?.[_0x1f6600(0x170)],'version':_0x4851f2[_0x1f6600(0x189)]?.['version'],'commandCount':_0x4851f2[_0x1f6600(0x189)]?.[_0x1f6600(0x16c)][_0x1f6600(0x179)]??0x0,'commands':_0x4851f2[_0x1f6600(0x189)]?.[_0x1f6600(0x16c)]['map'](_0x824328=>({'path':_0x824328[_0x1f6600(0x15f)],'risk':_0x824328[_0x1f6600(0x153)],'target':toPublicServiceTreeTarget(_0x824328[_0x1f6600(0x16a)])})),'warnings':_0x4851f2[_0x1f6600(0x16b)][_0x1f6600(0x15b)]},'message':_0x1f6600(0x168)};}},{'service':a41_0x4427d9(0x170),'command':a41_0x4427d9(0x14b),'description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':a41_0x4427d9(0x187),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x2c7536){const _0x4a276b=a41_0x4427d9,_0x3704d0=loadServiceManifestFromFile(_0x2c7536['str'](_0x4a276b(0x175)));return{'method':_0x4a276b(0x150),'url':getServiceRegistryPath(),'body':{'file':_0x3704d0[_0x4a276b(0x15c)],'hash':_0x3704d0['hash'],'kind':_0x3704d0[_0x4a276b(0x148)],'ok':_0x3704d0['report']['ok'],'service':_0x3704d0[_0x4a276b(0x189)]?.['service'],'version':_0x3704d0[_0x4a276b(0x189)]?.['version'],'serviceCount':_0x3704d0['manifests'][_0x4a276b(0x179)],'services':_0x3704d0['manifests'][_0x4a276b(0x173)](_0x214b10=>({'service':_0x214b10['normalizedManifest']?.[_0x4a276b(0x170)],'version':_0x214b10['normalizedManifest']?.[_0x4a276b(0x159)],'commandCount':_0x214b10[_0x4a276b(0x189)]?.[_0x4a276b(0x16c)][_0x4a276b(0x179)]??0x0,'errors':_0x214b10[_0x4a276b(0x16b)][_0x4a276b(0x17c)]})),'errors':_0x3704d0[_0x4a276b(0x16b)][_0x4a276b(0x17c)],'commandCount':_0x3704d0[_0x4a276b(0x189)]?.['commands'][_0x4a276b(0x179)]??0x0},'description':_0x4a276b(0x18a)};},async 'execute'(_0x47c24b){const _0x5583f3=a41_0x4427d9,_0x9f55c6=importServiceManifest(_0x47c24b[_0x5583f3(0x149)](_0x5583f3(0x175)));if(_0x9f55c6[_0x5583f3(0x176)][_0x5583f3(0x179)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x9f55c6['registryPath'],'imported':_0x9f55c6[_0x5583f3(0x14c)],'updated':_0x9f55c6[_0x5583f3(0x174)],'serviceCount':_0x9f55c6[_0x5583f3(0x166)],'services':_0x9f55c6[_0x5583f3(0x176)][_0x5583f3(0x173)](summarizeService)},'message':_0x5583f3(0x17a)+_0x9f55c6['imported']+_0x5583f3(0x16e)+_0x9f55c6[_0x5583f3(0x174)]+_0x5583f3(0x182)};return{'ok':!![],'data':{'registryPath':_0x9f55c6[_0x5583f3(0x177)],'replaced':_0x9f55c6[_0x5583f3(0x178)],'imported':_0x9f55c6[_0x5583f3(0x14c)],'updated':_0x9f55c6[_0x5583f3(0x174)],'serviceCount':_0x9f55c6[_0x5583f3(0x166)],'service':summarizeService(_0x9f55c6['entry'])},'message':(_0x9f55c6[_0x5583f3(0x178)]?_0x5583f3(0x161):'Imported')+_0x5583f3(0x14f)+_0x9f55c6[_0x5583f3(0x151)][_0x5583f3(0x160)]+'.'};}},{'service':a41_0x4427d9(0x170),'command':'export','description':'Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':a41_0x4427d9(0x187),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x293cc2){const _0x1ebcd=a41_0x4427d9,_0x58dffd=getLocalServiceEntry(_0x293cc2[_0x1ebcd(0x149)](_0x1ebcd(0x170)));return{'method':'WRITE','url':_0x293cc2[_0x1ebcd(0x149)](_0x1ebcd(0x175)),'body':{'service':_0x293cc2['str'](_0x1ebcd(0x170)),'found':Boolean(_0x58dffd),'version':_0x58dffd?.[_0x1ebcd(0x159)],'source':_0x58dffd?.['source']},'description':_0x1ebcd(0x162)};},async 'execute'(_0x576292){const _0x4865db=a41_0x4427d9,_0x5eaa97=exportServiceManifest(_0x576292[_0x4865db(0x149)]('service'),_0x576292[_0x4865db(0x149)]('file'));return{'ok':!![],'data':{'registryPath':_0x5eaa97['registryPath'],'file':_0x5eaa97[_0x4865db(0x15c)],'service':summarizeService(_0x5eaa97[_0x4865db(0x151)])},'message':_0x4865db(0x17e)+_0x5eaa97[_0x4865db(0x151)][_0x4865db(0x160)]+'.'};}},{'service':a41_0x4427d9(0x170),'command':a41_0x4427d9(0x181),'description':a41_0x4427d9(0x184),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x3a2362=a41_0x4427d9,_0x4346ff=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x4346ff[_0x3a2362(0x179)],'services':_0x4346ff[_0x3a2362(0x173)](summarizeService)}};}},{'service':a41_0x4427d9(0x170),'command':'remove','description':a41_0x4427d9(0x14e),'risk':a41_0x4427d9(0x187),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x3df6f8){const _0x31b686=a41_0x4427d9,_0x50d00e=getLocalServiceEntry(_0x3df6f8[_0x31b686(0x149)](_0x31b686(0x170)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x3df6f8[_0x31b686(0x149)]('service'),'found':Boolean(_0x50d00e),'version':_0x50d00e?.[_0x31b686(0x159)],'source':_0x50d00e?.[_0x31b686(0x154)]},'description':_0x31b686(0x169)};},async 'execute'(_0xa7515f){const _0x57f123=a41_0x4427d9,_0x50d7a2=removeServiceManifest(_0xa7515f['str'](_0x57f123(0x170)));return{'ok':!![],'data':{'registryPath':_0x50d7a2[_0x57f123(0x177)],'serviceCount':_0x50d7a2[_0x57f123(0x166)],'service':summarizeService(_0x50d7a2[_0x57f123(0x151)])},'message':_0x57f123(0x163)+_0x50d7a2['entry'][_0x57f123(0x160)]+'.'};}},{'service':'service','command':a41_0x4427d9(0x171),'description':a41_0x4427d9(0x17b),'risk':a41_0x4427d9(0x152),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x1e7237){const _0x1e403b=a41_0x4427d9,_0x11adfa=getLocalServiceEntry(_0x1e7237[_0x1e403b(0x149)](_0x1e403b(0x170)));if(!_0x11adfa)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x1e7237[_0x1e403b(0x149)]('service')},'message':_0x1e403b(0x18b)+_0x1e7237[_0x1e403b(0x149)](_0x1e403b(0x170))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x11adfa),'manifest':_0x11adfa[_0x1e403b(0x165)],'normalizedManifest':toPublicNormalizedServiceTree(_0x11adfa[_0x1e403b(0x189)])}};}}];
1
+ const a41_0x2b684f=a41_0x3131;(function(_0x927abe,_0x3303ee){const _0x870ada=a41_0x3131,_0xc820d0=_0x927abe();while(!![]){try{const _0x1d6f04=-parseInt(_0x870ada(0x1f6))/0x1+-parseInt(_0x870ada(0x1fb))/0x2*(-parseInt(_0x870ada(0x1e6))/0x3)+parseInt(_0x870ada(0x214))/0x4*(parseInt(_0x870ada(0x1e8))/0x5)+parseInt(_0x870ada(0x1f7))/0x6+-parseInt(_0x870ada(0x1f8))/0x7+parseInt(_0x870ada(0x1fa))/0x8*(-parseInt(_0x870ada(0x202))/0x9)+parseInt(_0x870ada(0x207))/0xa;if(_0x1d6f04===_0x3303ee)break;else _0xc820d0['push'](_0xc820d0['shift']());}catch(_0x4b3fe5){_0xc820d0['push'](_0xc820d0['shift']());}}}(a41_0x320d,0xcbc48));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a41_0x2b684f(0x1fe),'type':'string','required':!![],'description':a41_0x2b684f(0x1e5)},SERVICE_FLAG={'name':a41_0x2b684f(0x205),'type':'string','required':!![],'description':a41_0x2b684f(0x219),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a41_0x2b684f(0x1df)}};function summarizeService(_0x36d84f){const _0x579810=a41_0x2b684f;return{'serviceCode':_0x36d84f[_0x579810(0x1e2)],'name':_0x36d84f[_0x579810(0x20f)][_0x579810(0x205)][_0x579810(0x203)],'version':_0x36d84f[_0x579810(0x1de)],'importedAt':_0x36d84f[_0x579810(0x211)],'source':_0x36d84f['source'],'commandCount':_0x36d84f[_0x579810(0x20f)][_0x579810(0x201)][_0x579810(0x1fc)],'commands':_0x36d84f[_0x579810(0x20f)][_0x579810(0x201)][_0x579810(0x204)](_0x304933=>({'path':_0x304933[_0x579810(0x1fd)],'description':_0x304933[_0x579810(0x20b)],'risk':_0x304933[_0x579810(0x20c)],'target':toPublicServiceTreeTarget(_0x304933[_0x579810(0x1f2)]),'flags':_0x304933[_0x579810(0x1d8)]['map'](_0x1f4ce7=>({'name':_0x1f4ce7['name'],'cliName':_0x1f4ce7[_0x579810(0x1f5)],'type':_0x1f4ce7[_0x579810(0x1d7)],'required':_0x1f4ce7['required']===!![]}))}))};}function a41_0x320d(){const _0x1e20df=['registryPath','target','\x20service(s),\x20updated\x20','manifests','cliName','1067217igOMcL','7200804gfPbrB','10465259HchiHg','validate','144TXmafH','68tIOesq','length','cliPath','file','report','Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','commands','159183HKdkkY','name','map','service','\x20service(s).','7851350TPtkBE','hash','Imported','Removed\x20service\x20','description','risk','registry','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','normalizedManifest','import','importedAt','Service\x20registry\x20validation\x20passed.','errors','92HXkCUE','Imported\x20','export','remove','updated','Local\x20service\x20code,\x20for\x20example\x20crm','serviceCount','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','read','entries','Service\x20manifest\x20validation\x20passed.','imported','type','flags','registryIndex','\x20service\x20','str','source','warnings','version','lower\x20kebab-case\x20service\x20code','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','registryServiceCode','serviceCode','kind','WRITE','Service\x20Tree\x20manifest\x20file\x20path','110379DTlkmx','filePath','104135doptQV','detail','write','Local\x20service\x20not\x20found:\x20','replaced','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','reduce','Exported\x20service\x20','entry'];a41_0x320d=function(){return _0x1e20df;};return a41_0x320d();}function summarizeLoadedManifest(_0x3470ee){const _0x2752e3=a41_0x2b684f;return{'service':_0x3470ee[_0x2752e3(0x20f)]?.[_0x2752e3(0x205)],'version':_0x3470ee['normalizedManifest']?.['version'],'commandCount':_0x3470ee[_0x2752e3(0x20f)]?.['commands']['length']??0x0,'commands':_0x3470ee[_0x2752e3(0x20f)]?.[_0x2752e3(0x201)][_0x2752e3(0x204)](_0x39831c=>({'path':_0x39831c[_0x2752e3(0x1fd)],'risk':_0x39831c[_0x2752e3(0x20c)],'target':toPublicServiceTreeTarget(_0x39831c[_0x2752e3(0x1f2)])}))??[],'registryIndex':_0x3470ee[_0x2752e3(0x1d9)],'registryServiceCode':_0x3470ee[_0x2752e3(0x1e1)],'errors':_0x3470ee[_0x2752e3(0x1ff)][_0x2752e3(0x213)],'warnings':_0x3470ee[_0x2752e3(0x1ff)][_0x2752e3(0x1dd)]};}function a41_0x3131(_0x303e0a,_0xb74c54){_0x303e0a=_0x303e0a-0x1d3;const _0x320d6a=a41_0x320d();let _0x31314e=_0x320d6a[_0x303e0a];return _0x31314e;}export const serviceDefinitions=[{'service':a41_0x2b684f(0x205),'command':a41_0x2b684f(0x1f9),'description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a41_0x2b684f(0x1d3),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x5872d5){const _0x50ddda=a41_0x2b684f,_0x559ed=loadServiceManifestFromFile(_0x5872d5[_0x50ddda(0x1db)]('file'));if(!_0x559ed['report']['ok'])return{'ok':![],'data':{'file':_0x559ed[_0x50ddda(0x1e7)],'hash':_0x559ed[_0x50ddda(0x208)],'kind':_0x559ed[_0x50ddda(0x1e3)],'serviceCount':_0x559ed['manifests'][_0x50ddda(0x1fc)],'services':_0x559ed[_0x50ddda(0x1f4)][_0x50ddda(0x204)](summarizeLoadedManifest),'errors':_0x559ed[_0x50ddda(0x1ff)][_0x50ddda(0x213)],'warnings':_0x559ed['report'][_0x50ddda(0x1dd)]},'message':formatValidationFailure(_0x559ed[_0x50ddda(0x1ff)])};if(_0x559ed[_0x50ddda(0x1e3)]===_0x50ddda(0x20d)||_0x559ed[_0x50ddda(0x1f4)][_0x50ddda(0x1fc)]!==0x1)return{'ok':!![],'data':{'file':_0x559ed[_0x50ddda(0x1e7)],'hash':_0x559ed['hash'],'kind':_0x559ed['kind'],'serviceCount':_0x559ed[_0x50ddda(0x1f4)][_0x50ddda(0x1fc)],'commandCount':_0x559ed[_0x50ddda(0x1f4)][_0x50ddda(0x1ee)]((_0x3d6924,_0x339c49)=>_0x3d6924+(_0x339c49[_0x50ddda(0x20f)]?.[_0x50ddda(0x201)][_0x50ddda(0x1fc)]??0x0),0x0),'services':_0x559ed[_0x50ddda(0x1f4)][_0x50ddda(0x204)](summarizeLoadedManifest),'warnings':_0x559ed['report'][_0x50ddda(0x1dd)]},'message':_0x50ddda(0x212)};return{'ok':!![],'data':{'file':_0x559ed[_0x50ddda(0x1e7)],'hash':_0x559ed['hash'],'kind':_0x559ed['kind'],'service':_0x559ed[_0x50ddda(0x20f)]?.['service'],'version':_0x559ed[_0x50ddda(0x20f)]?.[_0x50ddda(0x1de)],'commandCount':_0x559ed['normalizedManifest']?.[_0x50ddda(0x201)][_0x50ddda(0x1fc)]??0x0,'commands':_0x559ed[_0x50ddda(0x20f)]?.[_0x50ddda(0x201)][_0x50ddda(0x204)](_0x3d4a88=>({'path':_0x3d4a88[_0x50ddda(0x1fd)],'risk':_0x3d4a88[_0x50ddda(0x20c)],'target':toPublicServiceTreeTarget(_0x3d4a88['target'])})),'warnings':_0x559ed[_0x50ddda(0x1ff)]['warnings']},'message':_0x50ddda(0x1d5)};}},{'service':a41_0x2b684f(0x205),'command':a41_0x2b684f(0x210),'description':a41_0x2b684f(0x1e0),'risk':a41_0x2b684f(0x1ea),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x23678e){const _0x311eaf=a41_0x2b684f,_0x2f8620=loadServiceManifestFromFile(_0x23678e[_0x311eaf(0x1db)]('file'));return{'method':_0x311eaf(0x1e4),'url':getServiceRegistryPath(),'body':{'file':_0x2f8620['filePath'],'hash':_0x2f8620[_0x311eaf(0x208)],'kind':_0x2f8620['kind'],'ok':_0x2f8620[_0x311eaf(0x1ff)]['ok'],'service':_0x2f8620[_0x311eaf(0x20f)]?.[_0x311eaf(0x205)],'version':_0x2f8620[_0x311eaf(0x20f)]?.[_0x311eaf(0x1de)],'serviceCount':_0x2f8620['manifests'][_0x311eaf(0x1fc)],'services':_0x2f8620[_0x311eaf(0x1f4)][_0x311eaf(0x204)](_0x32c2cc=>({'service':_0x32c2cc[_0x311eaf(0x20f)]?.[_0x311eaf(0x205)],'version':_0x32c2cc[_0x311eaf(0x20f)]?.[_0x311eaf(0x1de)],'commandCount':_0x32c2cc[_0x311eaf(0x20f)]?.['commands'][_0x311eaf(0x1fc)]??0x0,'errors':_0x32c2cc[_0x311eaf(0x1ff)]['errors']})),'errors':_0x2f8620[_0x311eaf(0x1ff)][_0x311eaf(0x213)],'commandCount':_0x2f8620[_0x311eaf(0x20f)]?.[_0x311eaf(0x201)][_0x311eaf(0x1fc)]??0x0},'description':_0x311eaf(0x20e)};},async 'execute'(_0x114fe5){const _0xf90c33=a41_0x2b684f,_0x7b811e=importServiceManifest(_0x114fe5['str'](_0xf90c33(0x1fe)));if(_0x7b811e[_0xf90c33(0x1d4)][_0xf90c33(0x1fc)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x7b811e[_0xf90c33(0x1f1)],'imported':_0x7b811e[_0xf90c33(0x1d6)],'updated':_0x7b811e['updated'],'serviceCount':_0x7b811e[_0xf90c33(0x21a)],'services':_0x7b811e[_0xf90c33(0x1d4)][_0xf90c33(0x204)](summarizeService)},'message':_0xf90c33(0x215)+_0x7b811e[_0xf90c33(0x1d6)]+_0xf90c33(0x1f3)+_0x7b811e['updated']+_0xf90c33(0x206)};return{'ok':!![],'data':{'registryPath':_0x7b811e[_0xf90c33(0x1f1)],'replaced':_0x7b811e[_0xf90c33(0x1ec)],'imported':_0x7b811e[_0xf90c33(0x1d6)],'updated':_0x7b811e[_0xf90c33(0x218)],'serviceCount':_0x7b811e[_0xf90c33(0x21a)],'service':summarizeService(_0x7b811e[_0xf90c33(0x1f0)])},'message':(_0x7b811e[_0xf90c33(0x1ec)]?'Updated':_0xf90c33(0x209))+_0xf90c33(0x1da)+_0x7b811e[_0xf90c33(0x1f0)][_0xf90c33(0x1e2)]+'.'};}},{'service':a41_0x2b684f(0x205),'command':a41_0x2b684f(0x216),'description':a41_0x2b684f(0x200),'risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x5e9dbb){const _0x522052=a41_0x2b684f,_0x40f6d2=getLocalServiceEntry(_0x5e9dbb[_0x522052(0x1db)](_0x522052(0x205)));return{'method':_0x522052(0x1e4),'url':_0x5e9dbb['str']('file'),'body':{'service':_0x5e9dbb[_0x522052(0x1db)]('service'),'found':Boolean(_0x40f6d2),'version':_0x40f6d2?.[_0x522052(0x1de)],'source':_0x40f6d2?.[_0x522052(0x1dc)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x2bba51){const _0x18b6a1=a41_0x2b684f,_0xc5a772=exportServiceManifest(_0x2bba51[_0x18b6a1(0x1db)](_0x18b6a1(0x205)),_0x2bba51['str']('file'));return{'ok':!![],'data':{'registryPath':_0xc5a772[_0x18b6a1(0x1f1)],'file':_0xc5a772[_0x18b6a1(0x1e7)],'service':summarizeService(_0xc5a772['entry'])},'message':_0x18b6a1(0x1ef)+_0xc5a772['entry']['serviceCode']+'.'};}},{'service':a41_0x2b684f(0x205),'command':'list','description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':a41_0x2b684f(0x1d3),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x53088b=a41_0x2b684f,_0x358dd1=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x358dd1[_0x53088b(0x1fc)],'services':_0x358dd1[_0x53088b(0x204)](summarizeService)}};}},{'service':a41_0x2b684f(0x205),'command':a41_0x2b684f(0x217),'description':'Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','risk':a41_0x2b684f(0x1ea),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x52d7c9){const _0x1f5d43=a41_0x2b684f,_0x7fdee5=getLocalServiceEntry(_0x52d7c9[_0x1f5d43(0x1db)](_0x1f5d43(0x205)));return{'method':_0x1f5d43(0x1e4),'url':getServiceRegistryPath(),'body':{'service':_0x52d7c9[_0x1f5d43(0x1db)](_0x1f5d43(0x205)),'found':Boolean(_0x7fdee5),'version':_0x7fdee5?.['version'],'source':_0x7fdee5?.[_0x1f5d43(0x1dc)]},'description':_0x1f5d43(0x1ed)};},async 'execute'(_0x16a014){const _0x2a2000=a41_0x2b684f,_0x47b7dc=removeServiceManifest(_0x16a014['str'](_0x2a2000(0x205)));return{'ok':!![],'data':{'registryPath':_0x47b7dc[_0x2a2000(0x1f1)],'serviceCount':_0x47b7dc[_0x2a2000(0x21a)],'service':summarizeService(_0x47b7dc['entry'])},'message':_0x2a2000(0x20a)+_0x47b7dc['entry']['serviceCode']+'.'};}},{'service':a41_0x2b684f(0x205),'command':a41_0x2b684f(0x1e9),'description':a41_0x2b684f(0x21b),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x5dbec1){const _0x344739=a41_0x2b684f,_0x49431e=getLocalServiceEntry(_0x5dbec1[_0x344739(0x1db)](_0x344739(0x205)));if(!_0x49431e)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x5dbec1['str'](_0x344739(0x205))},'message':_0x344739(0x1eb)+_0x5dbec1[_0x344739(0x1db)](_0x344739(0x205))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x49431e),'manifest':_0x49431e['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x49431e[_0x344739(0x20f)])}};}}];
@@ -1 +1 @@
1
- const a42_0x3e7a92=a42_0x113b;(function(_0x273633,_0x3a3603){const _0x4225df=a42_0x113b,_0x236042=_0x273633();while(!![]){try{const _0x2f00c0=parseInt(_0x4225df(0x104))/0x1+parseInt(_0x4225df(0x13d))/0x2+parseInt(_0x4225df(0x135))/0x3*(parseInt(_0x4225df(0x149))/0x4)+parseInt(_0x4225df(0x13b))/0x5*(-parseInt(_0x4225df(0x12a))/0x6)+-parseInt(_0x4225df(0x101))/0x7+-parseInt(_0x4225df(0x140))/0x8*(-parseInt(_0x4225df(0x14a))/0x9)+parseInt(_0x4225df(0x113))/0xa;if(_0x2f00c0===_0x3a3603)break;else _0x236042['push'](_0x236042['shift']());}catch(_0x5c008a){_0x236042['push'](_0x236042['shift']());}}}(a42_0x28e2,0x5e5d8));import{createHash}from'node:crypto';function a42_0x28e2(){const _0x43e0de=['toISOString','manifests','homeDirName','serviceCode','errors','importedAt','2739YRLXWK','digest','string','normalizedManifest','stringify','sourceHash','10LAWtfK','path','398566KtyumG','].manifest.','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','8pYYlHv','services\x20must\x20be\x20an\x20array','version','reduce','Local\x20service\x20not\x20found:\x20','schemaVersion','source','length','empty','556kBjrYN','1562877emmESb','validation','code','slice','trim','.tmp','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','registryIndex','invalid','sort','report','sha256','description','isArray','cliPath','utf8','5291223zHALIN','target','].manifest','63622owKOQt','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','Service\x20manifest\x20validation\x20failed:\x0a','findIndex','map','Invalid\x20service\x20registry\x20JSON:\x20','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','$.services[','service','Cannot\x20write\x20service\x20registry:\x20','flatMap','command','join','name','localeCompare','12754380JzrCXu','ENOENT','registry','update','message','commands','kind','file','object','manifest','warnings','Invalid\x20service\x20manifest\x20JSON:\x20','risk','hex','startsWith','push','services','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','Remove\x20or\x20migrate\x20','Unsupported\x20schemaVersion:\x20','updatedAt','missing','Service\x20manifest\x20file\x20not\x20found:\x20','2089482pvuhiy','now','parse','splice','service.json'];a42_0x28e2=function(){return _0x43e0de;};return a42_0x28e2();}import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a42_0x3e7a92(0x12e);export function getServiceRegistryPath(_0x1458dc={}){const _0x369e4e=a42_0x3e7a92;return resolve(_0x1458dc['homeDir']??homedir(),PRODUCT_CONFIG[_0x369e4e(0x131)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x2e6dff={}){const _0x2eaa14=a42_0x3e7a92,_0x1fd34=getServiceRegistryPath(_0x2e6dff);if(!existsSync(_0x1fd34))return emptyServiceRegistry();try{const _0x454f4f=readFileSync(_0x1fd34,_0x2eaa14(0x100));if(!_0x454f4f['trim']())return emptyServiceRegistry();const _0x45273c=JSON[_0x2eaa14(0x12c)](_0x454f4f);if(_0x45273c[_0x2eaa14(0x145)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x2eaa14(0x14b)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x45273c[_0x2eaa14(0x145)]),_0x2eaa14(0x125)+_0x1fd34+'.');if(!Array[_0x2eaa14(0xfe)](_0x45273c['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x45273c['updatedAt'],'services':_0x45273c[_0x2eaa14(0x123)]};}catch(_0x22a80){if(_0x22a80 instanceof Error&&_0x22a80[_0x2eaa14(0x111)]==='CliError')throw _0x22a80;throw CliErrors[_0x2eaa14(0x14b)](_0x2eaa14(0x109)+_0x1fd34,_0x2eaa14(0x13f));}}export function writeServiceRegistry(_0x4ad34c,_0xa980fd={}){const _0x119475=a42_0x3e7a92,_0x12ef5a=getServiceRegistryPath(_0xa980fd),_0x1e1911=dirname(_0x12ef5a);!existsSync(_0x1e1911)&&mkdirSync(_0x1e1911,{'recursive':!![]});const _0x2d3fed=_0x12ef5a+_0x119475(0x14f);try{writeFileSync(_0x2d3fed,JSON['stringify'](_0x4ad34c,null,0x2)+'\x0a',{'encoding':_0x119475(0x100),'mode':0x180}),renameSync(_0x2d3fed,_0x12ef5a);}catch(_0x294442){try{unlinkSync(_0x2d3fed);}catch{}if(_0x294442?.['code']===_0x119475(0x114))throw CliErrors[_0x119475(0x14b)](_0x119475(0x10d)+_0x12ef5a);throw _0x294442;}return _0x12ef5a;}export function loadServiceManifestFromFile(_0x2821c1){const _0x3789d0=a42_0x3e7a92,_0x33aed1=resolve(_0x2821c1);if(!existsSync(_0x33aed1))throw CliErrors[_0x3789d0(0x14b)](_0x3789d0(0x129)+_0x2821c1);let _0x2fa359;const _0x2784fa=readFileSync(_0x33aed1,_0x3789d0(0x100));try{_0x2fa359=JSON['parse'](_0x2784fa);}catch{throw CliErrors[_0x3789d0(0x14b)](_0x3789d0(0x11e)+_0x2821c1,_0x3789d0(0x150));}const _0x56e78f=sha256(_0x2784fa),_0x55d3e3=extractLoadedServiceManifests(_0x2fa359,_0x56e78f),_0x51793a=aggregateValidationReports(_0x55d3e3),_0x209c0=_0x55d3e3[0x0];return{'filePath':_0x33aed1,'hash':_0x56e78f,'kind':isServiceRegistryLike(_0x2fa359)?_0x3789d0(0x115):_0x3789d0(0x11c),'manifest':_0x209c0?.['manifest']??_0x2fa359,'report':_0x51793a,'normalizedManifest':_0x55d3e3[_0x3789d0(0x147)]===0x1?_0x209c0?.['normalizedManifest']:undefined,'manifests':_0x55d3e3};}export function importServiceManifest(_0x4c881a,_0x4cebcc={}){const _0x15331d=a42_0x3e7a92,_0x26ebc5=loadServiceManifestFromFile(_0x4c881a);if(!_0x26ebc5[_0x15331d(0xfb)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x26ebc5['report']),_0x15331d(0x105));if(_0x26ebc5[_0x15331d(0x130)][_0x15331d(0x147)]===0x0)throw CliErrors[_0x15331d(0x14b)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x15331d(0x10a));const _0xe7e70=readServiceRegistry(_0x4cebcc),_0x2bb1c1=(_0x4cebcc[_0x15331d(0x12b)]??(()=>new Date()))()['toISOString'](),_0x448429=[];let _0x2480e9=0x0,_0x14ba2c=0x0;for(const _0x51d8b7 of _0x26ebc5[_0x15331d(0x130)]){if(!_0x51d8b7[_0x15331d(0x138)])continue;const _0x329b99=_0x51d8b7['normalizedManifest']['service'][_0x15331d(0x14c)],_0xa41d66={'serviceCode':_0x329b99,'version':_0x51d8b7[_0x15331d(0x138)][_0x15331d(0x142)],'importedAt':_0x2bb1c1,'source':{'type':_0x15331d(0x11a),'path':_0x26ebc5['filePath'],'hash':_0x51d8b7[_0x15331d(0x13a)]},'manifest':_0x51d8b7[_0x15331d(0x11c)],'normalizedManifest':_0x51d8b7['normalizedManifest']},_0x45bd90=_0xe7e70['services'][_0x15331d(0x107)](_0x2ba832=>_0x2ba832[_0x15331d(0x132)]===_0x329b99);_0x45bd90>=0x0?(_0xe7e70['services'][_0x45bd90]=_0xa41d66,_0x14ba2c++):(_0xe7e70['services'][_0x15331d(0x122)](_0xa41d66),_0x2480e9++),_0x448429[_0x15331d(0x122)](_0xa41d66);}_0xe7e70['services'][_0x15331d(0xfa)]((_0x5cf286,_0x5743e0)=>_0x5cf286['serviceCode'][_0x15331d(0x112)](_0x5743e0[_0x15331d(0x132)])),_0xe7e70[_0x15331d(0x127)]=_0x2bb1c1;const _0x55fac6=writeServiceRegistry(_0xe7e70,_0x4cebcc);return{'registryPath':_0x55fac6,'entry':_0x448429[0x0],'replaced':_0x448429[_0x15331d(0x147)]===0x1?_0x14ba2c===0x1:_0x14ba2c>0x0,'entries':_0x448429,'imported':_0x2480e9,'updated':_0x14ba2c,'serviceCount':_0xe7e70[_0x15331d(0x123)][_0x15331d(0x147)]};}export function exportServiceManifest(_0x3ab875,_0x410d82,_0x3d35aa={}){const _0x3d7541=a42_0x3e7a92,_0xebbb2e=getServiceRegistryPath(_0x3d35aa),_0xa28cb=getLocalServiceEntry(_0x3ab875,_0x3d35aa);if(!_0xa28cb)throw CliErrors[_0x3d7541(0x14b)](_0x3d7541(0x144)+_0x3ab875,_0x3d7541(0x124));const _0x847e09=resolve(_0x410d82),_0x11b3fe=dirname(_0x847e09);return!existsSync(_0x11b3fe)&&mkdirSync(_0x11b3fe,{'recursive':!![]}),writeFileSync(_0x847e09,JSON['stringify'](_0xa28cb[_0x3d7541(0x11c)],null,0x2)+'\x0a',{'encoding':_0x3d7541(0x100),'mode':0x180}),{'registryPath':_0xebbb2e,'filePath':_0x847e09,'entry':_0xa28cb};}export function removeServiceManifest(_0xce583f,_0x5a6993={}){const _0x20a284=a42_0x3e7a92,_0x538de8=readServiceRegistry(_0x5a6993),_0x20e4fe=_0xce583f[_0x20a284(0x14e)](),_0x3b100a=_0x538de8[_0x20a284(0x123)][_0x20a284(0x107)](_0xae3064=>_0xae3064[_0x20a284(0x132)]===_0x20e4fe);if(_0x3b100a<0x0)throw CliErrors[_0x20a284(0x14b)]('Local\x20service\x20not\x20found:\x20'+_0x20e4fe,_0x20a284(0x124));const [_0xd7c3cf]=_0x538de8[_0x20a284(0x123)][_0x20a284(0x12d)](_0x3b100a,0x1),_0x76350d=(_0x5a6993[_0x20a284(0x12b)]??(()=>new Date()))()[_0x20a284(0x12f)]();_0x538de8[_0x20a284(0x127)]=_0x76350d;const _0x51328a=writeServiceRegistry(_0x538de8,_0x5a6993);return{'registryPath':_0x51328a,'entry':_0xd7c3cf,'serviceCount':_0x538de8['services'][_0x20a284(0x147)]};}export function listLocalServices(_0x3460d1={}){const _0x49e0ff=a42_0x3e7a92;return readServiceRegistry(_0x3460d1)[_0x49e0ff(0x123)];}export function getLocalServiceEntry(_0x41428d,_0x50ec95={}){const _0x2ce001=a42_0x3e7a92;return readServiceRegistry(_0x50ec95)[_0x2ce001(0x123)]['find'](_0x10a5e8=>_0x10a5e8[_0x2ce001(0x132)]===_0x41428d[_0x2ce001(0x14e)]());}export function listLocalServiceTrees(_0x5a74e2={}){const _0x315577=a42_0x3e7a92;return readServiceRegistry(_0x5a74e2)[_0x315577(0x123)]['map'](_0x16362b=>_0x16362b[_0x315577(0x138)]);}export function inspectServiceRegistry(_0x1f6399={}){const _0x48ecba=a42_0x3e7a92,_0x490ac7=getServiceRegistryPath(_0x1f6399);if(!existsSync(_0x490ac7))return emptyServiceRegistryInspection(_0x490ac7,_0x48ecba(0x128),![]);try{const _0xce89c7=readFileSync(_0x490ac7,'utf8');if(!_0xce89c7[_0x48ecba(0x14e)]())return emptyServiceRegistryInspection(_0x490ac7,_0x48ecba(0x148),!![]);const _0x265e72=JSON[_0x48ecba(0x12c)](_0xce89c7);if(_0x265e72[_0x48ecba(0x145)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x490ac7,_0x48ecba(0xf9),!![]),'schemaVersion':_0x265e72[_0x48ecba(0x145)],'message':_0x48ecba(0x126)+String(_0x265e72[_0x48ecba(0x145)])};if(!Array[_0x48ecba(0xfe)](_0x265e72[_0x48ecba(0x123)]))return{...emptyServiceRegistryInspection(_0x490ac7,_0x48ecba(0xf9),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x265e72[_0x48ecba(0x127)],'message':_0x48ecba(0x141)};const _0xadc363=_0x265e72[_0x48ecba(0x123)][_0x48ecba(0x108)](summarizeLocalServiceEntry);return{'registryPath':_0x490ac7,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x265e72[_0x48ecba(0x127)],'serviceCount':_0xadc363[_0x48ecba(0x147)],'commandCount':_0xadc363[_0x48ecba(0x143)]((_0x4650f9,_0x5579df)=>_0x4650f9+_0x5579df['commandCount'],0x0),'services':_0xadc363};}catch(_0x53f3c6){return{...emptyServiceRegistryInspection(_0x490ac7,_0x48ecba(0xf9),!![]),'message':_0x53f3c6 instanceof Error?_0x53f3c6[_0x48ecba(0x117)]:String(_0x53f3c6)};}}export function formatValidationFailure(_0x354d81){const _0x2d1c89=a42_0x3e7a92,_0x51a007=_0x354d81[_0x2d1c89(0x133)][_0x2d1c89(0x108)](_0x2c6c61=>_0x2c6c61[_0x2d1c89(0x13c)]+':\x20'+_0x2c6c61[_0x2d1c89(0x117)]);return _0x2d1c89(0x106)+_0x51a007[_0x2d1c89(0x110)]('\x0a');}function extractLoadedServiceManifests(_0x1786c7,_0x519df2){const _0x4ac39e=a42_0x3e7a92;if(!isServiceRegistryLike(_0x1786c7)){const _0x2e7e42=_0x1786c7,{manifest:_0x154557,errors:_0x46816e}=adaptServiceTreeManifestForLegacyFramework(_0x2e7e42),_0x538b1f=validateServiceTreeManifest(_0x154557),_0x4b47ad=mergeValidationErrors(_0x538b1f,_0x46816e);return[{'manifest':_0x2e7e42,'report':_0x4b47ad,'normalizedManifest':_0x4b47ad['ok']?normalizeServiceTreeManifest(_0x154557):undefined,'sourceHash':_0x519df2}];}return _0x1786c7[_0x4ac39e(0x123)]['map']((_0x45b218,_0x12fd01)=>{const _0xc6ccf1=_0x4ac39e,_0x40f0ab=isObjectRecord(_0x45b218)?_0x45b218[_0xc6ccf1(0x11c)]:undefined,{manifest:_0x2d236f,errors:_0xa4f2d6}=adaptServiceTreeManifestForLegacyFramework(_0x40f0ab),_0x3c4a2d=validateServiceTreeManifest(_0x2d236f),_0x4489fd=mergeValidationErrors(_0x3c4a2d,_0xa4f2d6),_0x2090b0=isObjectRecord(_0x45b218)&&typeof _0x45b218[_0xc6ccf1(0x132)]===_0xc6ccf1(0x137)?_0x45b218['serviceCode']:undefined;return{'manifest':_0x40f0ab,'report':_0x4489fd,'normalizedManifest':_0x4489fd['ok']?normalizeServiceTreeManifest(_0x2d236f):undefined,'sourceHash':sha256(JSON[_0xc6ccf1(0x139)](_0x40f0ab,null,0x2)+'\x0a'),'registryIndex':_0x12fd01,'registryServiceCode':_0x2090b0};});}function a42_0x113b(_0x3ea7f5,_0xb05e4e){_0x3ea7f5=_0x3ea7f5-0xf8;const _0x28e24e=a42_0x28e2();let _0x113b13=_0x28e24e[_0x3ea7f5];return _0x113b13;}function mergeValidationErrors(_0x64502,_0x464957){const _0xac5004=a42_0x3e7a92,_0x3e7d54=_0x64502['errors'][_0xac5004(0x108)](_0x4bba26=>_0x4bba26[_0xac5004(0x117)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x4bba26,'message':'bff\x20target\x20requires\x20functionName.'}:_0x4bba26),_0x18f96b=[..._0x464957,..._0x3e7d54];return{'ok':_0x18f96b[_0xac5004(0x147)]===0x0,'errors':_0x18f96b,'warnings':_0x64502['warnings']};}function aggregateValidationReports(_0x4c6a44){const _0x21a0d9=a42_0x3e7a92,_0xb705ef=_0x4c6a44['flatMap'](_0x7cea01=>_0x7cea01[_0x21a0d9(0xf8)]===undefined?_0x7cea01['report'][_0x21a0d9(0x133)]:_0x7cea01[_0x21a0d9(0xfb)][_0x21a0d9(0x133)][_0x21a0d9(0x108)](_0xd7bcde=>({..._0xd7bcde,'path':prefixRegistryIssuePath(_0x7cea01[_0x21a0d9(0xf8)],_0xd7bcde[_0x21a0d9(0x13c)])}))),_0xd5649=_0x4c6a44[_0x21a0d9(0x10e)](_0x160be4=>_0x160be4[_0x21a0d9(0xf8)]===undefined?_0x160be4['report'][_0x21a0d9(0x11d)]:_0x160be4[_0x21a0d9(0xfb)][_0x21a0d9(0x11d)][_0x21a0d9(0x108)](_0x4fcb9c=>({..._0x4fcb9c,'path':prefixRegistryIssuePath(_0x160be4[_0x21a0d9(0xf8)],_0x4fcb9c[_0x21a0d9(0x13c)])})));return{'ok':_0xb705ef[_0x21a0d9(0x147)]===0x0,'errors':_0xb705ef,'warnings':_0xd5649};}function prefixRegistryIssuePath(_0x51f1b9,_0x13a8b3){const _0x5ee5ce=a42_0x3e7a92;if(_0x13a8b3==='$')return _0x5ee5ce(0x10b)+_0x51f1b9+_0x5ee5ce(0x103);if(_0x13a8b3[_0x5ee5ce(0x121)]('$.'))return _0x5ee5ce(0x10b)+_0x51f1b9+_0x5ee5ce(0x103)+_0x13a8b3[_0x5ee5ce(0x14d)](0x1);if(_0x13a8b3['startsWith']('$['))return'$.services['+_0x51f1b9+_0x5ee5ce(0x103)+_0x13a8b3[_0x5ee5ce(0x14d)](0x1);return'$.services['+_0x51f1b9+_0x5ee5ce(0x13e)+_0x13a8b3;}function isServiceRegistryLike(_0x153c1e){const _0x33d6d6=a42_0x3e7a92;return isObjectRecord(_0x153c1e)&&_0x153c1e['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x153c1e[_0x33d6d6(0x123)]);}function isObjectRecord(_0x47a1cd){const _0x479025=a42_0x3e7a92;return Boolean(_0x47a1cd)&&typeof _0x47a1cd===_0x479025(0x11b)&&!Array[_0x479025(0xfe)](_0x47a1cd);}function emptyServiceRegistryInspection(_0xa8adab,_0x406301,_0x48f5ad){return{'registryPath':_0xa8adab,'exists':_0x48f5ad,'status':_0x406301,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x3e48ed){const _0xaa9e9d=a42_0x3e7a92,_0x16831c=_0x3e48ed['normalizedManifest'],_0x22437d=_0x16831c[_0xaa9e9d(0x118)][_0xaa9e9d(0x108)](_0x4f43c7=>({'path':_0x4f43c7[_0xaa9e9d(0xff)],'description':_0x4f43c7[_0xaa9e9d(0xfd)],'risk':_0x4f43c7[_0xaa9e9d(0x11f)],'targetKind':_0x4f43c7[_0xaa9e9d(0x102)][_0xaa9e9d(0x119)],'targetCommand':_0x4f43c7[_0xaa9e9d(0x102)][_0xaa9e9d(0x10f)]}));return{'serviceCode':_0x3e48ed['serviceCode'],'name':_0x16831c[_0xaa9e9d(0x10c)][_0xaa9e9d(0x111)],'description':_0x16831c[_0xaa9e9d(0x10c)][_0xaa9e9d(0xfd)],'version':_0x3e48ed[_0xaa9e9d(0x142)],'importedAt':_0x3e48ed[_0xaa9e9d(0x134)],'source':_0x3e48ed[_0xaa9e9d(0x146)],'commandCount':_0x22437d[_0xaa9e9d(0x147)],'commands':_0x22437d};}function sha256(_0x574173){const _0x31194e=a42_0x3e7a92;return createHash(_0x31194e(0xfc))[_0x31194e(0x116)](_0x574173)[_0x31194e(0x136)](_0x31194e(0x120));}
1
+ const a42_0x384f82=a42_0x5730;function a42_0x3219(){const _0x294d41=['registryIndex','findIndex','find','report','hex','1034034wFfaKr','localeCompare','Service\x20manifest\x20validation\x20failed:\x0a','Service\x20manifest\x20file\x20not\x20found:\x20','service','startsWith','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','sort','splice','ENOENT','services\x20must\x20be\x20an\x20array','warnings','join','path','now','trim','kind','parse','schemaVersion','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','target','registry','serviceCode','homeDir','Local\x20service\x20not\x20found:\x20','service.json','.tmp','utf8','map','push','message','code','source','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','stringify','Invalid\x20service\x20registry\x20JSON:\x20','reduce','object','homeDirName','risk','1154436cZBelA','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','errors','version','5644324DDApHB','validation','].manifest','isArray','normalizedManifest','2960664XGWwth','574056MojQsv','sourceHash','7250526ayMyZz','name','updatedAt','Cannot\x20write\x20service\x20registry:\x20','length','Unsupported\x20service\x20registry\x20schemaVersion:\x20','missing','5098360VkwWsb','empty','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','commandCount','slice','services','manifests','toISOString','6HOhRsZ','invalid','$.services[','manifest'];a42_0x3219=function(){return _0x294d41;};return a42_0x3219();}(function(_0x24ebcd,_0x5ba0ec){const _0x27c00d=a42_0x5730,_0x5162ba=_0x24ebcd();while(!![]){try{const _0x256052=-parseInt(_0x27c00d(0x124))/0x1+-parseInt(_0x27c00d(0xf2))/0x2*(-parseInt(_0x27c00d(0xfb))/0x3)+-parseInt(_0x27c00d(0xe1))/0x4+parseInt(_0x27c00d(0xea))/0x5+-parseInt(_0x27c00d(0xe3))/0x6+parseInt(_0x27c00d(0x128))/0x7+parseInt(_0x27c00d(0xe0))/0x8;if(_0x256052===_0x5ba0ec)break;else _0x5162ba['push'](_0x5162ba['shift']());}catch(_0x2d2d9a){_0x5162ba['push'](_0x5162ba['shift']());}}}(a42_0x3219,0xb0b26));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';function a42_0x5730(_0x4e3378,_0x2419c3){_0x4e3378=_0x4e3378-0xde;const _0x32192e=a42_0x3219();let _0x57303c=_0x32192e[_0x4e3378];return _0x57303c;}import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a42_0x384f82(0x115);export function getServiceRegistryPath(_0x3be005={}){const _0x3bb2bd=a42_0x384f82;return resolve(_0x3be005[_0x3bb2bd(0x113)]??homedir(),PRODUCT_CONFIG[_0x3bb2bd(0x122)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x394abb={}){const _0x2fe138=a42_0x384f82,_0x5b8a30=getServiceRegistryPath(_0x394abb);if(!existsSync(_0x5b8a30))return emptyServiceRegistry();try{const _0x20f0d7=readFileSync(_0x5b8a30,_0x2fe138(0x117));if(!_0x20f0d7[_0x2fe138(0x10a)]())return emptyServiceRegistry();const _0x5674bf=JSON[_0x2fe138(0x10c)](_0x20f0d7);if(_0x5674bf[_0x2fe138(0x10d)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x2fe138(0x129)](_0x2fe138(0xe8)+String(_0x5674bf[_0x2fe138(0x10d)]),'Remove\x20or\x20migrate\x20'+_0x5b8a30+'.');if(!Array['isArray'](_0x5674bf[_0x2fe138(0xef)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5674bf[_0x2fe138(0xe5)],'services':_0x5674bf['services']};}catch(_0x5c2659){if(_0x5c2659 instanceof Error&&_0x5c2659[_0x2fe138(0xe4)]==='CliError')throw _0x5c2659;throw CliErrors[_0x2fe138(0x129)](_0x2fe138(0x11f)+_0x5b8a30,_0x2fe138(0x10f));}}export function writeServiceRegistry(_0x379c80,_0x335dac={}){const _0x3ec91e=a42_0x384f82,_0x5888c9=getServiceRegistryPath(_0x335dac),_0x3e0d8b=dirname(_0x5888c9);!existsSync(_0x3e0d8b)&&mkdirSync(_0x3e0d8b,{'recursive':!![]});const _0x128f5d=_0x5888c9+_0x3ec91e(0x116);try{writeFileSync(_0x128f5d,JSON['stringify'](_0x379c80,null,0x2)+'\x0a',{'encoding':_0x3ec91e(0x117),'mode':0x180}),renameSync(_0x128f5d,_0x5888c9);}catch(_0x3e2f6d){try{unlinkSync(_0x128f5d);}catch{}if(_0x3e2f6d?.[_0x3ec91e(0x11b)]===_0x3ec91e(0x104))throw CliErrors[_0x3ec91e(0x129)](_0x3ec91e(0xe6)+_0x5888c9);throw _0x3e2f6d;}return _0x5888c9;}export function loadServiceManifestFromFile(_0x1f680b){const _0x10ed29=a42_0x384f82,_0xbcae79=resolve(_0x1f680b);if(!existsSync(_0xbcae79))throw CliErrors[_0x10ed29(0x129)](_0x10ed29(0xfe)+_0x1f680b);let _0x272b67;const _0x34dcb4=readFileSync(_0xbcae79,_0x10ed29(0x117));try{_0x272b67=JSON['parse'](_0x34dcb4);}catch{throw CliErrors[_0x10ed29(0x129)]('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x1f680b,_0x10ed29(0x101));}const _0x553115=sha256(_0x34dcb4),_0xc0f860=extractLoadedServiceManifests(_0x272b67,_0x553115),_0x5ac039=aggregateValidationReports(_0xc0f860),_0x55b60d=_0xc0f860[0x0];return{'filePath':_0xbcae79,'hash':_0x553115,'kind':isServiceRegistryLike(_0x272b67)?_0x10ed29(0x111):_0x10ed29(0xf5),'manifest':_0x55b60d?.[_0x10ed29(0xf5)]??_0x272b67,'report':_0x5ac039,'normalizedManifest':_0xc0f860[_0x10ed29(0xe7)]===0x1?_0x55b60d?.['normalizedManifest']:undefined,'manifests':_0xc0f860};}export function importServiceManifest(_0x8545a2,_0x4646b8={}){const _0x5d25d0=a42_0x384f82,_0x1a2379=loadServiceManifestFromFile(_0x8545a2);if(!_0x1a2379[_0x5d25d0(0xf9)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x1a2379[_0x5d25d0(0xf9)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x1a2379[_0x5d25d0(0xf0)]['length']===0x0)throw CliErrors['validation'](_0x5d25d0(0xec),_0x5d25d0(0x10e));const _0x57947a=readServiceRegistry(_0x4646b8),_0x5f35ce=(_0x4646b8['now']??(()=>new Date()))()['toISOString'](),_0x1f25e1=[];let _0xed4311=0x0,_0x574db6=0x0;for(const _0x58977e of _0x1a2379['manifests']){if(!_0x58977e[_0x5d25d0(0xdf)])continue;const _0xf21f6a=_0x58977e[_0x5d25d0(0xdf)][_0x5d25d0(0xff)][_0x5d25d0(0x11b)],_0x3e12b7={'serviceCode':_0xf21f6a,'version':_0x58977e[_0x5d25d0(0xdf)][_0x5d25d0(0x127)],'importedAt':_0x5f35ce,'source':{'type':'file','path':_0x1a2379['filePath'],'hash':_0x58977e[_0x5d25d0(0xe2)]},'manifest':_0x58977e['manifest'],'normalizedManifest':_0x58977e['normalizedManifest']},_0x19afbe=_0x57947a['services'][_0x5d25d0(0xf7)](_0x136313=>_0x136313[_0x5d25d0(0x112)]===_0xf21f6a);_0x19afbe>=0x0?(_0x57947a[_0x5d25d0(0xef)][_0x19afbe]=_0x3e12b7,_0x574db6++):(_0x57947a['services'][_0x5d25d0(0x119)](_0x3e12b7),_0xed4311++),_0x1f25e1['push'](_0x3e12b7);}_0x57947a['services'][_0x5d25d0(0x102)]((_0x372689,_0x18c015)=>_0x372689[_0x5d25d0(0x112)][_0x5d25d0(0xfc)](_0x18c015[_0x5d25d0(0x112)])),_0x57947a[_0x5d25d0(0xe5)]=_0x5f35ce;const _0x1a0b2a=writeServiceRegistry(_0x57947a,_0x4646b8);return{'registryPath':_0x1a0b2a,'entry':_0x1f25e1[0x0],'replaced':_0x1f25e1[_0x5d25d0(0xe7)]===0x1?_0x574db6===0x1:_0x574db6>0x0,'entries':_0x1f25e1,'imported':_0xed4311,'updated':_0x574db6,'serviceCount':_0x57947a[_0x5d25d0(0xef)]['length']};}export function exportServiceManifest(_0x363a36,_0xbcecc5,_0x5998ed={}){const _0x2b1920=a42_0x384f82,_0x4a1e16=getServiceRegistryPath(_0x5998ed),_0x47264a=getLocalServiceEntry(_0x363a36,_0x5998ed);if(!_0x47264a)throw CliErrors['validation'](_0x2b1920(0x114)+_0x363a36,_0x2b1920(0x11d));const _0x8c9189=resolve(_0xbcecc5),_0x9ece98=dirname(_0x8c9189);return!existsSync(_0x9ece98)&&mkdirSync(_0x9ece98,{'recursive':!![]}),writeFileSync(_0x8c9189,JSON[_0x2b1920(0x11e)](_0x47264a[_0x2b1920(0xf5)],null,0x2)+'\x0a',{'encoding':_0x2b1920(0x117),'mode':0x180}),{'registryPath':_0x4a1e16,'filePath':_0x8c9189,'entry':_0x47264a};}export function removeServiceManifest(_0x5d6257,_0x27e842={}){const _0x1c20fb=a42_0x384f82,_0x4eadf3=readServiceRegistry(_0x27e842),_0x3ef444=_0x5d6257[_0x1c20fb(0x10a)](),_0x8f9ba5=_0x4eadf3['services'][_0x1c20fb(0xf7)](_0x54405f=>_0x54405f['serviceCode']===_0x3ef444);if(_0x8f9ba5<0x0)throw CliErrors[_0x1c20fb(0x129)](_0x1c20fb(0x114)+_0x3ef444,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x1efc01]=_0x4eadf3[_0x1c20fb(0xef)][_0x1c20fb(0x103)](_0x8f9ba5,0x1),_0x284847=(_0x27e842[_0x1c20fb(0x109)]??(()=>new Date()))()[_0x1c20fb(0xf1)]();_0x4eadf3['updatedAt']=_0x284847;const _0x45c3ed=writeServiceRegistry(_0x4eadf3,_0x27e842);return{'registryPath':_0x45c3ed,'entry':_0x1efc01,'serviceCount':_0x4eadf3[_0x1c20fb(0xef)][_0x1c20fb(0xe7)]};}export function listLocalServices(_0x51a1e9={}){const _0x55dd9d=a42_0x384f82;return readServiceRegistry(_0x51a1e9)[_0x55dd9d(0xef)];}export function getLocalServiceEntry(_0x334bbc,_0x2345f9={}){const _0x25ed89=a42_0x384f82;return readServiceRegistry(_0x2345f9)['services'][_0x25ed89(0xf8)](_0x1aec6f=>_0x1aec6f[_0x25ed89(0x112)]===_0x334bbc['trim']());}export function listLocalServiceTrees(_0x1c254c={}){const _0x32e6af=a42_0x384f82;return readServiceRegistry(_0x1c254c)[_0x32e6af(0xef)][_0x32e6af(0x118)](_0x3cad0c=>_0x3cad0c[_0x32e6af(0xdf)]);}export function inspectServiceRegistry(_0x18eeb8={}){const _0x29ad4d=a42_0x384f82,_0x24d604=getServiceRegistryPath(_0x18eeb8);if(!existsSync(_0x24d604))return emptyServiceRegistryInspection(_0x24d604,_0x29ad4d(0xe9),![]);try{const _0x3bdda4=readFileSync(_0x24d604,_0x29ad4d(0x117));if(!_0x3bdda4[_0x29ad4d(0x10a)]())return emptyServiceRegistryInspection(_0x24d604,_0x29ad4d(0xeb),!![]);const _0x5414c4=JSON[_0x29ad4d(0x10c)](_0x3bdda4);if(_0x5414c4[_0x29ad4d(0x10d)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x24d604,_0x29ad4d(0xf3),!![]),'schemaVersion':_0x5414c4[_0x29ad4d(0x10d)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x5414c4['schemaVersion'])};if(!Array['isArray'](_0x5414c4[_0x29ad4d(0xef)]))return{...emptyServiceRegistryInspection(_0x24d604,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5414c4['updatedAt'],'message':_0x29ad4d(0x105)};const _0x2ec93a=_0x5414c4[_0x29ad4d(0xef)][_0x29ad4d(0x118)](summarizeLocalServiceEntry);return{'registryPath':_0x24d604,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5414c4[_0x29ad4d(0xe5)],'serviceCount':_0x2ec93a[_0x29ad4d(0xe7)],'commandCount':_0x2ec93a[_0x29ad4d(0x120)]((_0x585f81,_0x39c1bf)=>_0x585f81+_0x39c1bf[_0x29ad4d(0xed)],0x0),'services':_0x2ec93a};}catch(_0x32c30d){return{...emptyServiceRegistryInspection(_0x24d604,_0x29ad4d(0xf3),!![]),'message':_0x32c30d instanceof Error?_0x32c30d['message']:String(_0x32c30d)};}}export function formatValidationFailure(_0x2d5059){const _0x62429d=a42_0x384f82,_0xbeaf4e=_0x2d5059[_0x62429d(0x126)][_0x62429d(0x118)](_0x5cc6bf=>_0x5cc6bf[_0x62429d(0x108)]+':\x20'+_0x5cc6bf[_0x62429d(0x11a)]);return _0x62429d(0xfd)+_0xbeaf4e[_0x62429d(0x107)]('\x0a');}function extractLoadedServiceManifests(_0x8e756e,_0x533c4f){const _0x242fed=a42_0x384f82;if(!isServiceRegistryLike(_0x8e756e)){const _0x380bec=_0x8e756e,{manifest:_0x41a3a9,errors:_0x1f222b}=adaptServiceTreeManifestForLegacyFramework(_0x380bec),_0x270240=validateServiceTreeManifest(_0x41a3a9),_0x28a676=mergeValidationErrors(_0x270240,_0x1f222b);return[{'manifest':_0x380bec,'report':_0x28a676,'normalizedManifest':_0x28a676['ok']?normalizeServiceTreeManifest(_0x41a3a9):undefined,'sourceHash':_0x533c4f}];}return _0x8e756e[_0x242fed(0xef)]['map']((_0x31cadc,_0x335394)=>{const _0x4c861a=_0x242fed,_0xf78771=isObjectRecord(_0x31cadc)?_0x31cadc[_0x4c861a(0xf5)]:undefined,{manifest:_0x140054,errors:_0x1021a0}=adaptServiceTreeManifestForLegacyFramework(_0xf78771),_0x4c4629=validateServiceTreeManifest(_0x140054),_0x54693a=mergeValidationErrors(_0x4c4629,_0x1021a0),_0x7703f4=isObjectRecord(_0x31cadc)&&typeof _0x31cadc[_0x4c861a(0x112)]==='string'?_0x31cadc[_0x4c861a(0x112)]:undefined;return{'manifest':_0xf78771,'report':_0x54693a,'normalizedManifest':_0x54693a['ok']?normalizeServiceTreeManifest(_0x140054):undefined,'sourceHash':sha256(JSON['stringify'](_0xf78771,null,0x2)+'\x0a'),'registryIndex':_0x335394,'registryServiceCode':_0x7703f4};});}function mergeValidationErrors(_0x2abd55,_0x317bf6){const _0x1eb46a=a42_0x384f82,_0x176437=_0x2abd55[_0x1eb46a(0x126)][_0x1eb46a(0x118)](_0x508e3f=>_0x508e3f[_0x1eb46a(0x11a)]===_0x1eb46a(0x125)?{..._0x508e3f,'message':'bff\x20target\x20requires\x20functionName.'}:_0x508e3f),_0x551e6b=[..._0x317bf6,..._0x176437];return{'ok':_0x551e6b[_0x1eb46a(0xe7)]===0x0,'errors':_0x551e6b,'warnings':_0x2abd55[_0x1eb46a(0x106)]};}function aggregateValidationReports(_0x2728b1){const _0x1782b5=a42_0x384f82,_0x50b1bd=_0x2728b1['flatMap'](_0x1e7a3d=>_0x1e7a3d[_0x1782b5(0xf6)]===undefined?_0x1e7a3d['report']['errors']:_0x1e7a3d[_0x1782b5(0xf9)][_0x1782b5(0x126)]['map'](_0x30ca9a=>({..._0x30ca9a,'path':prefixRegistryIssuePath(_0x1e7a3d[_0x1782b5(0xf6)],_0x30ca9a[_0x1782b5(0x108)])}))),_0x5a5688=_0x2728b1['flatMap'](_0x591c10=>_0x591c10[_0x1782b5(0xf6)]===undefined?_0x591c10[_0x1782b5(0xf9)][_0x1782b5(0x106)]:_0x591c10[_0x1782b5(0xf9)][_0x1782b5(0x106)]['map'](_0x40f181=>({..._0x40f181,'path':prefixRegistryIssuePath(_0x591c10['registryIndex'],_0x40f181['path'])})));return{'ok':_0x50b1bd[_0x1782b5(0xe7)]===0x0,'errors':_0x50b1bd,'warnings':_0x5a5688};}function prefixRegistryIssuePath(_0x2d480e,_0x222a77){const _0x1ecaf7=a42_0x384f82;if(_0x222a77==='$')return _0x1ecaf7(0xf4)+_0x2d480e+'].manifest';if(_0x222a77[_0x1ecaf7(0x100)]('$.'))return _0x1ecaf7(0xf4)+_0x2d480e+_0x1ecaf7(0x12a)+_0x222a77[_0x1ecaf7(0xee)](0x1);if(_0x222a77[_0x1ecaf7(0x100)]('$['))return'$.services['+_0x2d480e+_0x1ecaf7(0x12a)+_0x222a77[_0x1ecaf7(0xee)](0x1);return _0x1ecaf7(0xf4)+_0x2d480e+'].manifest.'+_0x222a77;}function isServiceRegistryLike(_0x6eaf1){const _0x6f21e6=a42_0x384f82;return isObjectRecord(_0x6eaf1)&&_0x6eaf1[_0x6f21e6(0x10d)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x6f21e6(0xde)](_0x6eaf1['services']);}function isObjectRecord(_0x4027a2){const _0x18bec2=a42_0x384f82;return Boolean(_0x4027a2)&&typeof _0x4027a2===_0x18bec2(0x121)&&!Array['isArray'](_0x4027a2);}function emptyServiceRegistryInspection(_0x59cb46,_0x32bd72,_0x2d42c0){return{'registryPath':_0x59cb46,'exists':_0x2d42c0,'status':_0x32bd72,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x4bf3e2){const _0x5dfa96=a42_0x384f82,_0x2ddd29=_0x4bf3e2[_0x5dfa96(0xdf)],_0x3ff893=_0x2ddd29['commands'][_0x5dfa96(0x118)](_0x4a103c=>({'path':_0x4a103c['cliPath'],'description':_0x4a103c['description'],'risk':_0x4a103c[_0x5dfa96(0x123)],'targetKind':_0x4a103c[_0x5dfa96(0x110)][_0x5dfa96(0x10b)],'targetCommand':_0x4a103c[_0x5dfa96(0x110)]['command']}));return{'serviceCode':_0x4bf3e2[_0x5dfa96(0x112)],'name':_0x2ddd29['service'][_0x5dfa96(0xe4)],'description':_0x2ddd29[_0x5dfa96(0xff)]['description'],'version':_0x4bf3e2['version'],'importedAt':_0x4bf3e2['importedAt'],'source':_0x4bf3e2[_0x5dfa96(0x11c)],'commandCount':_0x3ff893[_0x5dfa96(0xe7)],'commands':_0x3ff893};}function sha256(_0x3a52d9){const _0x3a6d80=a42_0x384f82;return createHash('sha256')['update'](_0x3a52d9)['digest'](_0x3a6d80(0xfa));}
@@ -1 +1 @@
1
- const a43_0x47aab6=a43_0x5673;(function(_0x35a0c0,_0xb77029){const _0x4ec347=a43_0x5673,_0x4e0b87=_0x35a0c0();while(!![]){try{const _0x122007=-parseInt(_0x4ec347(0x1e1))/0x1*(-parseInt(_0x4ec347(0x1cc))/0x2)+-parseInt(_0x4ec347(0x1cf))/0x3+-parseInt(_0x4ec347(0x1d0))/0x4*(-parseInt(_0x4ec347(0x1c1))/0x5)+-parseInt(_0x4ec347(0x1cd))/0x6+parseInt(_0x4ec347(0x1d8))/0x7*(-parseInt(_0x4ec347(0x1c9))/0x8)+parseInt(_0x4ec347(0x1cb))/0x9*(parseInt(_0x4ec347(0x1df))/0xa)+parseInt(_0x4ec347(0x1d4))/0xb*(-parseInt(_0x4ec347(0x1c4))/0xc);if(_0x122007===_0xb77029)break;else _0x4e0b87['push'](_0x4e0b87['shift']());}catch(_0x16087d){_0x4e0b87['push'](_0x4e0b87['shift']());}}}(a43_0x2c98,0xe592c));function a43_0x5673(_0x33e274,_0x50e2b3){_0x33e274=_0x33e274-0x1c0;const _0x2c9867=a43_0x2c98();let _0x567387=_0x2c9867[_0x33e274];return _0x567387;}import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a43_0x47aab6(0x1ce),'command':a43_0x47aab6(0x1e2),'description':'Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','risk':a43_0x47aab6(0x1c7),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x259173){const _0x1aacaa=a43_0x47aab6,_0x17400e=buildSkillCreatePlan(_0x259173[_0x1aacaa(0x1dc)](_0x1aacaa(0x1c6)),_0x259173[_0x1aacaa(0x1dc)](_0x1aacaa(0x1db)),_0x259173[_0x1aacaa(0x1dc)](_0x1aacaa(0x1de)));return{'method':_0x1aacaa(0x1d6),'url':_0x17400e['skillDir'],'body':{'skillName':_0x17400e[_0x1aacaa(0x1d1)][_0x1aacaa(0x1ca)],'type':_0x17400e['rendered'][_0x1aacaa(0x1db)],'selfContained':!![],'files':_0x17400e[_0x1aacaa(0x1d1)][_0x1aacaa(0x1c3)]['map'](_0x4a22e2=>_0x4a22e2[_0x1aacaa(0x1c2)])},'description':_0x1aacaa(0x1dd)};},async 'execute'(_0x3dd914){const _0xb7a677=a43_0x47aab6,_0x5d1132=buildSkillCreatePlan(_0x3dd914['str'](_0xb7a677(0x1c6)),_0x3dd914[_0xb7a677(0x1dc)](_0xb7a677(0x1db)),_0x3dd914[_0xb7a677(0x1dc)](_0xb7a677(0x1de)));return writeSkillDraft(_0x5d1132,_0x3dd914[_0xb7a677(0x1d7)](_0xb7a677(0x1d3))),{'ok':!![],'data':{'skillName':_0x5d1132[_0xb7a677(0x1d1)][_0xb7a677(0x1ca)],'type':_0x5d1132[_0xb7a677(0x1d1)]['type'],'dir':_0x5d1132['skillDir'],'files':_0x5d1132[_0xb7a677(0x1d1)][_0xb7a677(0x1c3)][_0xb7a677(0x1c5)](_0xb00383=>_0xb00383[_0xb7a677(0x1c2)])},'message':_0xb7a677(0x1e0)+_0x5d1132[_0xb7a677(0x1d1)][_0xb7a677(0x1ca)]};}};function buildSkillCreatePlan(_0x48cf51,_0x56c056,_0x4931f3){const _0x374f5e=a43_0x47aab6,_0x58fb30=_0x56c056[_0x374f5e(0x1c0)](),_0x3d610c=renderSkillTemplate({'skillName':_0x48cf51,'type':_0x58fb30});!_0x58fb30&&writeCliSideChannelLine(_0x374f5e(0x1d5));const _0x2dfc13=resolve(normalizeSkillTarget(_0x4931f3));return{'rendered':_0x3d610c,'targetRoot':_0x2dfc13,'skillDir':resolve(_0x2dfc13,_0x3d610c[_0x374f5e(0x1ca)])};}function a43_0x2c98(){const _0x2cdca3=['files','189336OWDkQj','map','name','write','isSymbolicLink','1134936yIoIni','skillName','3519tCxXry','2KNDYTB','9553200CmErSa','skill','3544197XtSDIE','4Kazpyv','rendered','skillDir','force','836YooAGW','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','WRITE','bool','7SSfvwW','Skill\x20directory\x20already\x20exists:\x20','validation','type','str','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','target','45330zqmsen','Created\x20local\x20Skill\x20draft\x20','1464253ylSEVn','create','trim','9091350nbsIAW','path'];a43_0x2c98=function(){return _0x2cdca3;};return a43_0x2c98();}function normalizeSkillTarget(_0x14ee88){const _0xa98457=a43_0x47aab6;return(_0x14ee88||DEFAULT_SKILL_TARGET)[_0xa98457(0x1c0)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x38350b,_0x5a2628){const _0x1bf177=a43_0x47aab6;if(existsSync(_0x38350b[_0x1bf177(0x1d2)])){const _0x555571=lstatSync(_0x38350b[_0x1bf177(0x1d2)]);if(!_0x555571['isDirectory']()||_0x555571[_0x1bf177(0x1c8)]())throw CliErrors[_0x1bf177(0x1da)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x38350b['skillDir']);if(!_0x5a2628)throw CliErrors[_0x1bf177(0x1da)](_0x1bf177(0x1d9)+_0x38350b[_0x1bf177(0x1d2)],'Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.');}for(const _0x44f9aa of _0x38350b[_0x1bf177(0x1d1)][_0x1bf177(0x1c3)]){const _0x334098=resolve(_0x38350b[_0x1bf177(0x1d2)],_0x44f9aa[_0x1bf177(0x1c2)]),_0x935c3a=dirname(_0x334098);mkdirSync(_0x935c3a,{'recursive':!![]});if(existsSync(_0x334098)&&lstatSync(_0x334098)[_0x1bf177(0x1c8)]())throw CliErrors[_0x1bf177(0x1da)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0x334098);writeFileSync(_0x334098,_0x44f9aa['content'],'utf8');}}
1
+ function a43_0x4e81(_0xe7899,_0x193e59){_0xe7899=_0xe7899-0x1dd;const _0x3f7f67=a43_0x3f7f();let _0x4e81c0=_0x3f7f67[_0xe7899];return _0x4e81c0;}function a43_0x3f7f(){const _0x14cf37=['str','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','9eRLmKZ','isSymbolicLink','trim','name','737790ECzWpO','skillDir','type','path','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','skillName','62QFGLcq','433OwFwcM','validation','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','996234tHBEDm','rendered','2350624rDJsEg','154278WZPfZi','map','target','WRITE','create','files','isDirectory','1465604auYQIC','bool','20UNUkoX','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','skill','417915AhBjkj','content','Created\x20local\x20Skill\x20draft\x20'];a43_0x3f7f=function(){return _0x14cf37;};return a43_0x3f7f();}const a43_0x25759a=a43_0x4e81;(function(_0x1f01e1,_0x327195){const _0x5bd004=a43_0x4e81,_0x4ec229=_0x1f01e1();while(!![]){try{const _0x271053=-parseInt(_0x5bd004(0x1e5))/0x1*(parseInt(_0x5bd004(0x1e4))/0x2)+parseInt(_0x5bd004(0x1eb))/0x3*(parseInt(_0x5bd004(0x1f4))/0x4)+-parseInt(_0x5bd004(0x1f8))/0x5+-parseInt(_0x5bd004(0x1e8))/0x6+-parseInt(_0x5bd004(0x1f2))/0x7+parseInt(_0x5bd004(0x1ea))/0x8+-parseInt(_0x5bd004(0x1fd))/0x9*(-parseInt(_0x5bd004(0x1de))/0xa);if(_0x271053===_0x327195)break;else _0x4ec229['push'](_0x4ec229['shift']());}catch(_0x41da31){_0x4ec229['push'](_0x4ec229['shift']());}}}(a43_0x3f7f,0x25300));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a43_0x25759a(0x1f7),'command':a43_0x25759a(0x1ef),'description':a43_0x25759a(0x1e7),'risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x222022){const _0x46fe67=a43_0x25759a,_0xfbe216=buildSkillCreatePlan(_0x222022[_0x46fe67(0x1fb)](_0x46fe67(0x1dd)),_0x222022['str'](_0x46fe67(0x1e0)),_0x222022['str'](_0x46fe67(0x1ed)));return{'method':_0x46fe67(0x1ee),'url':_0xfbe216['skillDir'],'body':{'skillName':_0xfbe216[_0x46fe67(0x1e9)][_0x46fe67(0x1e3)],'type':_0xfbe216[_0x46fe67(0x1e9)][_0x46fe67(0x1e0)],'selfContained':!![],'files':_0xfbe216[_0x46fe67(0x1e9)][_0x46fe67(0x1f0)]['map'](_0x476820=>_0x476820[_0x46fe67(0x1e1)])},'description':_0x46fe67(0x1f6)};},async 'execute'(_0x49a8d8){const _0x38f13a=a43_0x25759a,_0x389f6d=buildSkillCreatePlan(_0x49a8d8[_0x38f13a(0x1fb)]('name'),_0x49a8d8[_0x38f13a(0x1fb)](_0x38f13a(0x1e0)),_0x49a8d8[_0x38f13a(0x1fb)](_0x38f13a(0x1ed)));return writeSkillDraft(_0x389f6d,_0x49a8d8[_0x38f13a(0x1f3)]('force')),{'ok':!![],'data':{'skillName':_0x389f6d[_0x38f13a(0x1e9)]['skillName'],'type':_0x389f6d['rendered'][_0x38f13a(0x1e0)],'dir':_0x389f6d[_0x38f13a(0x1df)],'files':_0x389f6d[_0x38f13a(0x1e9)][_0x38f13a(0x1f0)][_0x38f13a(0x1ec)](_0x3a3fa9=>_0x3a3fa9[_0x38f13a(0x1e1)])},'message':_0x38f13a(0x1fa)+_0x389f6d[_0x38f13a(0x1e9)][_0x38f13a(0x1e3)]};}};function buildSkillCreatePlan(_0x4c3eb5,_0x2b6148,_0xc0ffab){const _0x2525ca=a43_0x25759a,_0x1f5500=_0x2b6148[_0x2525ca(0x1ff)](),_0x19cec3=renderSkillTemplate({'skillName':_0x4c3eb5,'type':_0x1f5500});!_0x1f5500&&writeCliSideChannelLine(_0x2525ca(0x1fc));const _0x35076d=resolve(normalizeSkillTarget(_0xc0ffab));return{'rendered':_0x19cec3,'targetRoot':_0x35076d,'skillDir':resolve(_0x35076d,_0x19cec3[_0x2525ca(0x1e3)])};}function normalizeSkillTarget(_0x52f81e){const _0x3d5c1c=a43_0x25759a;return(_0x52f81e||DEFAULT_SKILL_TARGET)[_0x3d5c1c(0x1ff)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x3357f4,_0x2237c4){const _0xcbf378=a43_0x25759a;if(existsSync(_0x3357f4[_0xcbf378(0x1df)])){const _0x51db46=lstatSync(_0x3357f4['skillDir']);if(!_0x51db46[_0xcbf378(0x1f1)]()||_0x51db46[_0xcbf378(0x1fe)]())throw CliErrors[_0xcbf378(0x1e6)](_0xcbf378(0x1e2)+_0x3357f4[_0xcbf378(0x1df)]);if(!_0x2237c4)throw CliErrors[_0xcbf378(0x1e6)]('Skill\x20directory\x20already\x20exists:\x20'+_0x3357f4[_0xcbf378(0x1df)],_0xcbf378(0x1f5));}for(const _0x59fa89 of _0x3357f4[_0xcbf378(0x1e9)][_0xcbf378(0x1f0)]){const _0x1f79be=resolve(_0x3357f4['skillDir'],_0x59fa89[_0xcbf378(0x1e1)]),_0x566bf1=dirname(_0x1f79be);mkdirSync(_0x566bf1,{'recursive':!![]});if(existsSync(_0x1f79be)&&lstatSync(_0x1f79be)['isSymbolicLink']())throw CliErrors[_0xcbf378(0x1e6)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0x1f79be);writeFileSync(_0x1f79be,_0x59fa89[_0xcbf378(0x1f9)],'utf8');}}
@@ -1 +1 @@
1
- const a44_0x331e81=a44_0x1401;function a44_0x5cfc(){const _0x1870f6=['25qVBuvi','279768fdDhzw','includes','10073091RQNvLC','length','install','production','14543100ABSWyh','authRequired','153bpDTgE','company','2409pDEGON','accessKey','personal','project','scope','\x20personal\x20and\x20','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','Installed\x20','2HwaTSi','action','filter','bool','updated','force','../../../core/api-client.js','envName','created','2542563wGRDbc','skipped','6PdKmbC','182324PtBxzI','global','skillCode','removed','\x20company\x20Skill(s).','map','1131060vMAzum','all','str','445272nXoNWQ','skillRoots','../../../skills/runtime-skill-sync.js','skill','trim','appCode'];a44_0x5cfc=function(){return _0x1870f6;};return a44_0x5cfc();}(function(_0x369be5,_0x27db2d){const _0x4ca059=a44_0x1401,_0x12f63f=_0x369be5();while(!![]){try{const _0x382c06=-parseInt(_0x4ca059(0x176))/0x1+parseInt(_0x4ca059(0x164))/0x2*(parseInt(_0x4ca059(0x16d))/0x3)+parseInt(_0x4ca059(0x170))/0x4*(-parseInt(_0x4ca059(0x17f))/0x5)+parseInt(_0x4ca059(0x16f))/0x6*(-parseInt(_0x4ca059(0x182))/0x7)+-parseInt(_0x4ca059(0x179))/0x8*(parseInt(_0x4ca059(0x188))/0x9)+-parseInt(_0x4ca059(0x186))/0xa+parseInt(_0x4ca059(0x18a))/0xb*(parseInt(_0x4ca059(0x180))/0xc);if(_0x382c06===_0x27db2d)break;else _0x12f63f['push'](_0x12f63f['shift']());}catch(_0x3dbffa){_0x12f63f['push'](_0x12f63f['shift']());}}}(a44_0x5cfc,0xb846c));function a44_0x1401(_0x18026d,_0x541756){_0x18026d=_0x18026d-0x163;const _0x5cfcf3=a44_0x5cfc();let _0x140155=_0x5cfcf3[_0x18026d];return _0x140155;}import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':a44_0x331e81(0x17c),'command':a44_0x331e81(0x184),'description':a44_0x331e81(0x190),'risk':'write','requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x48f163){return syncRuntimeSkills(_0x48f163);}};async function syncRuntimeSkills(_0x352e04){const _0x501d68=a44_0x331e81,{downloadRuntimeSkillPackage:_0x1de7a2,listRuntimeSkills:_0x2b973c}=await import(_0x501d68(0x16a)),{linkEffectiveRuntimeSkills:_0xf7d686,materializeRuntimeSkill:_0x3ce18e,pruneStaleRuntimeSkillCache:_0x5b4f5a,pruneStaleRuntimeSkillLinks:_0x509042,resolveRuntimeSkillInstallTarget:_0x411420}=await import(_0x501d68(0x17b)),_0x3e2cde=_0x352e04[_0x501d68(0x178)]('code'),_0x45f3f4=normalizeSyncScopes(_0x352e04[_0x501d68(0x178)](_0x501d68(0x18e))),_0x319ee6=_0x352e04[_0x501d68(0x16b)]??_0x501d68(0x185),_0xad4f3c=_0x352e04[_0x501d68(0x18b)],_0x2a28bb=_0x352e04[_0x501d68(0x167)](_0x501d68(0x169));if(!_0xad4f3c)throw CliErrors[_0x501d68(0x187)]('Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.');const _0x55ca73=_0x411420(_0x352e04[_0x501d68(0x17e)],_0x352e04['bool'](_0x501d68(0x18d))?_0x501d68(0x18d):_0x501d68(0x171)),_0xe545cd=_0x411420(_0x352e04[_0x501d68(0x17e)],_0x55ca73['scope']===_0x501d68(0x18d)?_0x501d68(0x171):'project'),_0x45512f=await Promise[_0x501d68(0x177)](_0x45f3f4[_0x501d68(0x175)](_0x2c001f=>_0x2b973c({'appCode':_0x352e04[_0x501d68(0x17e)],'scope':_0x2c001f,'code':_0x3e2cde['trim']()||undefined}))),_0x1d7552=_0x45f3f4['includes']('personal')?_0x45512f['flatMap']((_0x39ec7d,_0x1685bb)=>_0x45f3f4[_0x1685bb]==='personal'?_0x39ec7d['personal']:[]):[],_0x2ddf8f=_0x45f3f4[_0x501d68(0x181)](_0x501d68(0x189))?_0x45512f['flatMap']((_0x3e9ca6,_0x5bfdb2)=>_0x45f3f4[_0x5bfdb2]==='company'?_0x3e9ca6[_0x501d68(0x189)]:[]):[],_0x193405=new Set([..._0x1d7552['map'](_0x32116c=>_0x32116c[_0x501d68(0x172)]?.[_0x501d68(0x17d)]())['filter'](_0x69f8ef=>Boolean(_0x69f8ef)),..._0x2ddf8f[_0x501d68(0x175)](_0x595aeb=>_0x595aeb['skillCode']?.[_0x501d68(0x17d)]())['filter'](_0x4562d6=>Boolean(_0x4562d6))]),_0x1387cc=_0x3e2cde['trim']()?[_0x3e2cde[_0x501d68(0x17d)]()]:undefined,_0xc6e937=_0x45f3f4[_0x501d68(0x183)]===0x2&&_0x45f3f4['includes'](_0x501d68(0x18c))&&_0x45f3f4[_0x501d68(0x181)]('company'),_0x30f6fe=_0xc6e937?_0x509042(_0x55ca73,_0x193405,_0x1387cc):[],_0x4ee666=_0x5b4f5a({'env':_0x319ee6,'accessKey':_0xad4f3c,'appCode':_0x352e04[_0x501d68(0x17e)],'activeSkillCodes':_0x193405,'pruneSkillCodes':_0x1387cc,'scopes':_0x45f3f4,'protectedLinkRoots':_0xe545cd[_0x501d68(0x17a)]}),_0x28d2e3=[];for(const _0x54033f of _0x1d7552){_0x28d2e3['push'](_0x3ce18e(_0x54033f,_0x501d68(0x18c),{'env':_0x319ee6,'accessKey':_0xad4f3c,'appCode':_0x352e04[_0x501d68(0x17e)],'force':_0x2a28bb,'packageBytes':await downloadSkillPackage(_0x54033f,_0x501d68(0x18c),_0x352e04['appCode'],_0x1de7a2)}));}for(const _0x10bb50 of _0x2ddf8f){_0x28d2e3['push'](_0x3ce18e(_0x10bb50,_0x501d68(0x189),{'env':_0x319ee6,'accessKey':_0xad4f3c,'appCode':_0x352e04[_0x501d68(0x17e)],'force':_0x2a28bb,'packageBytes':await downloadSkillPackage(_0x10bb50,_0x501d68(0x189),_0x352e04[_0x501d68(0x17e)],_0x1de7a2)}));}const _0x5c022b=_0xf7d686(_0x28d2e3,_0x55ca73),_0x30e1a7=countLinkActions(_0x5c022b);return{'ok':!![],'data':{'appCode':_0x352e04[_0x501d68(0x17e)],..._0x55ca73['scope']==='project'?{'installTarget':{'scope':_0x55ca73['scope'],'skillRoots':[..._0x55ca73[_0x501d68(0x17a)]]}}:{},'personal':_0x1d7552[_0x501d68(0x183)],'company':_0x2ddf8f[_0x501d68(0x183)],'materialized':_0x28d2e3[_0x501d68(0x183)],'links':{'total':_0x5c022b[_0x501d68(0x183)],'created':_0x30e1a7[_0x501d68(0x16c)]??0x0,'updated':_0x30e1a7[_0x501d68(0x168)]??0x0,'unchanged':_0x30e1a7['unchanged']??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x30f6fe['filter'](_0x1e8067=>_0x1e8067[_0x501d68(0x165)]===_0x501d68(0x173))[_0x501d68(0x183)],'cacheDirs':_0x4ee666[_0x501d68(0x166)](_0x10d8d5=>_0x10d8d5[_0x501d68(0x165)]===_0x501d68(0x173))[_0x501d68(0x183)],'skipped':[..._0x30f6fe,..._0x4ee666][_0x501d68(0x166)](_0x5cafcd=>_0x5cafcd[_0x501d68(0x165)]===_0x501d68(0x16e))['length']},'skills':{'personal':_0x1d7552[_0x501d68(0x175)](summarizeRuntimeSkill),'company':_0x2ddf8f[_0x501d68(0x175)](summarizeRuntimeSkill)}},'message':_0x501d68(0x163)+_0x1d7552[_0x501d68(0x183)]+_0x501d68(0x18f)+_0x2ddf8f[_0x501d68(0x183)]+_0x501d68(0x174)};}async function downloadSkillPackage(_0x54ad84,_0x3f8500,_0x28f4ad,_0x109a06){const _0x2cdffa=a44_0x331e81,_0x1dd64e=_0x54ad84['version']?.[_0x2cdffa(0x17d)]();return _0x1dd64e?_0x109a06(_0x3f8500,_0x54ad84[_0x2cdffa(0x172)],_0x28f4ad,_0x1dd64e):_0x109a06(_0x3f8500,_0x54ad84[_0x2cdffa(0x172)],_0x28f4ad);}function countLinkActions(_0x1cae40){return _0x1cae40['reduce']((_0xcc928c,_0xf5a992)=>{return _0xcc928c[_0xf5a992['action']]=(_0xcc928c[_0xf5a992['action']]??0x0)+0x1,_0xcc928c;},{});}
1
+ const a44_0x42e5c9=a44_0x51e9;(function(_0x4bee89,_0x5e15e1){const _0xc6e2b3=a44_0x51e9,_0x1d9fc6=_0x4bee89();while(!![]){try{const _0x3aa744=parseInt(_0xc6e2b3(0xf4))/0x1*(-parseInt(_0xc6e2b3(0xfa))/0x2)+-parseInt(_0xc6e2b3(0xed))/0x3*(-parseInt(_0xc6e2b3(0xef))/0x4)+parseInt(_0xc6e2b3(0x10b))/0x5+-parseInt(_0xc6e2b3(0xf7))/0x6*(-parseInt(_0xc6e2b3(0xf9))/0x7)+-parseInt(_0xc6e2b3(0xe6))/0x8*(-parseInt(_0xc6e2b3(0xe9))/0x9)+-parseInt(_0xc6e2b3(0xf8))/0xa*(parseInt(_0xc6e2b3(0x10e))/0xb)+parseInt(_0xc6e2b3(0x100))/0xc*(-parseInt(_0xc6e2b3(0xfc))/0xd);if(_0x3aa744===_0x5e15e1)break;else _0x1d9fc6['push'](_0x1d9fc6['shift']());}catch(_0x391fec){_0x1d9fc6['push'](_0x1d9fc6['shift']());}}}(a44_0x8f5e,0x9312d));function a44_0x51e9(_0x122275,_0x324f6e){_0x122275=_0x122275-0xdf;const _0x8f5ec6=a44_0x8f5e();let _0x51e9c2=_0x8f5ec6[_0x122275];return _0x51e9c2;}import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';function a44_0x8f5e(){const _0x417e16=['str','envName','appCode','427368GGhArV','removed','project','../../../core/api-client.js','map','\x20company\x20Skill(s).','scope','trim','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','personal','authRequired','4863660YipnXB','includes','../../../skills/runtime-skill-sync.js','22kpmhwU','created','accessKey','push','write','\x20personal\x20and\x20','Installed\x20','unchanged','filter','bool','96DrjYHV','length','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','820269CIHEof','skillRoots','skillCode','code','147513eAXdFg','action','32fkniOl','reduce','flatMap','version','updated','1PmFVMp','company','force','1894818tQwkJD','428200GSzQAP','14TPMyBl','1031606FQFwfF','global','689VzDCnp'];a44_0x8f5e=function(){return _0x417e16;};return a44_0x8f5e();}export const installCommand={'service':'skill','command':'install','description':a44_0x42e5c9(0xe8),'risk':a44_0x42e5c9(0xe0),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x19c200){return syncRuntimeSkills(_0x19c200);}};async function syncRuntimeSkills(_0x3775a0){const _0x5e8de2=a44_0x42e5c9,{downloadRuntimeSkillPackage:_0x3f595d,listRuntimeSkills:_0xe6418c}=await import(_0x5e8de2(0x103)),{linkEffectiveRuntimeSkills:_0x5ec77e,materializeRuntimeSkill:_0x14e47c,pruneStaleRuntimeSkillCache:_0x1bf77a,pruneStaleRuntimeSkillLinks:_0x5042c7,resolveRuntimeSkillInstallTarget:_0x493eea}=await import(_0x5e8de2(0x10d)),_0x42e9be=_0x3775a0[_0x5e8de2(0xfd)](_0x5e8de2(0xec)),_0x53d398=normalizeSyncScopes(_0x3775a0['str']('scope')),_0x39ac41=_0x3775a0[_0x5e8de2(0xfe)]??'production',_0x1c2b2e=_0x3775a0[_0x5e8de2(0x110)],_0x3758cb=_0x3775a0[_0x5e8de2(0xe5)](_0x5e8de2(0xf6));if(!_0x1c2b2e)throw CliErrors[_0x5e8de2(0x10a)](_0x5e8de2(0x108));const _0x87a43c=_0x493eea(_0x3775a0[_0x5e8de2(0xff)],_0x3775a0[_0x5e8de2(0xe5)](_0x5e8de2(0x102))?_0x5e8de2(0x102):_0x5e8de2(0xfb)),_0x16f888=_0x493eea(_0x3775a0[_0x5e8de2(0xff)],_0x87a43c[_0x5e8de2(0x106)]===_0x5e8de2(0x102)?_0x5e8de2(0xfb):_0x5e8de2(0x102)),_0x4b9ada=await Promise['all'](_0x53d398[_0x5e8de2(0x104)](_0x2c7b41=>_0xe6418c({'appCode':_0x3775a0[_0x5e8de2(0xff)],'scope':_0x2c7b41,'code':_0x42e9be[_0x5e8de2(0x107)]()||undefined}))),_0x5e0373=_0x53d398['includes'](_0x5e8de2(0x109))?_0x4b9ada[_0x5e8de2(0xf1)]((_0x713213,_0x97221f)=>_0x53d398[_0x97221f]==='personal'?_0x713213['personal']:[]):[],_0x1a2b9d=_0x53d398[_0x5e8de2(0x10c)](_0x5e8de2(0xf5))?_0x4b9ada[_0x5e8de2(0xf1)]((_0x494721,_0x4e79ae)=>_0x53d398[_0x4e79ae]===_0x5e8de2(0xf5)?_0x494721[_0x5e8de2(0xf5)]:[]):[],_0xc20198=new Set([..._0x5e0373['map'](_0x1343a3=>_0x1343a3['skillCode']?.[_0x5e8de2(0x107)]())[_0x5e8de2(0xe4)](_0x4038eb=>Boolean(_0x4038eb)),..._0x1a2b9d['map'](_0x9e3f61=>_0x9e3f61['skillCode']?.[_0x5e8de2(0x107)]())[_0x5e8de2(0xe4)](_0x5ca7f1=>Boolean(_0x5ca7f1))]),_0x2e75dc=_0x42e9be['trim']()?[_0x42e9be[_0x5e8de2(0x107)]()]:undefined,_0x2a2ccf=_0x53d398[_0x5e8de2(0xe7)]===0x2&&_0x53d398[_0x5e8de2(0x10c)]('personal')&&_0x53d398[_0x5e8de2(0x10c)](_0x5e8de2(0xf5)),_0x38211a=_0x2a2ccf?_0x5042c7(_0x87a43c,_0xc20198,_0x2e75dc):[],_0x1112cb=_0x1bf77a({'env':_0x39ac41,'accessKey':_0x1c2b2e,'appCode':_0x3775a0[_0x5e8de2(0xff)],'activeSkillCodes':_0xc20198,'pruneSkillCodes':_0x2e75dc,'scopes':_0x53d398,'protectedLinkRoots':_0x16f888[_0x5e8de2(0xea)]}),_0x3596d4=[];for(const _0x4eeaf9 of _0x5e0373){_0x3596d4['push'](_0x14e47c(_0x4eeaf9,'personal',{'env':_0x39ac41,'accessKey':_0x1c2b2e,'appCode':_0x3775a0[_0x5e8de2(0xff)],'force':_0x3758cb,'packageBytes':await downloadSkillPackage(_0x4eeaf9,_0x5e8de2(0x109),_0x3775a0['appCode'],_0x3f595d)}));}for(const _0x4377f1 of _0x1a2b9d){_0x3596d4[_0x5e8de2(0xdf)](_0x14e47c(_0x4377f1,_0x5e8de2(0xf5),{'env':_0x39ac41,'accessKey':_0x1c2b2e,'appCode':_0x3775a0[_0x5e8de2(0xff)],'force':_0x3758cb,'packageBytes':await downloadSkillPackage(_0x4377f1,_0x5e8de2(0xf5),_0x3775a0[_0x5e8de2(0xff)],_0x3f595d)}));}const _0x537256=_0x5ec77e(_0x3596d4,_0x87a43c),_0x8fcb0=countLinkActions(_0x537256);return{'ok':!![],'data':{'appCode':_0x3775a0['appCode'],..._0x87a43c[_0x5e8de2(0x106)]==='project'?{'installTarget':{'scope':_0x87a43c[_0x5e8de2(0x106)],'skillRoots':[..._0x87a43c[_0x5e8de2(0xea)]]}}:{},'personal':_0x5e0373[_0x5e8de2(0xe7)],'company':_0x1a2b9d['length'],'materialized':_0x3596d4[_0x5e8de2(0xe7)],'links':{'total':_0x537256[_0x5e8de2(0xe7)],'created':_0x8fcb0[_0x5e8de2(0x10f)]??0x0,'updated':_0x8fcb0[_0x5e8de2(0xf3)]??0x0,'unchanged':_0x8fcb0[_0x5e8de2(0xe3)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x38211a[_0x5e8de2(0xe4)](_0x8b9d32=>_0x8b9d32[_0x5e8de2(0xee)]==='removed')[_0x5e8de2(0xe7)],'cacheDirs':_0x1112cb[_0x5e8de2(0xe4)](_0x2413df=>_0x2413df[_0x5e8de2(0xee)]===_0x5e8de2(0x101))[_0x5e8de2(0xe7)],'skipped':[..._0x38211a,..._0x1112cb][_0x5e8de2(0xe4)](_0x447a2f=>_0x447a2f[_0x5e8de2(0xee)]==='skipped')['length']},'skills':{'personal':_0x5e0373[_0x5e8de2(0x104)](summarizeRuntimeSkill),'company':_0x1a2b9d['map'](summarizeRuntimeSkill)}},'message':_0x5e8de2(0xe2)+_0x5e0373[_0x5e8de2(0xe7)]+_0x5e8de2(0xe1)+_0x1a2b9d[_0x5e8de2(0xe7)]+_0x5e8de2(0x105)};}async function downloadSkillPackage(_0x2534ab,_0x3c267c,_0x6b736d,_0xf5ae35){const _0x57657f=a44_0x42e5c9,_0x4c1dc7=_0x2534ab[_0x57657f(0xf2)]?.['trim']();return _0x4c1dc7?_0xf5ae35(_0x3c267c,_0x2534ab[_0x57657f(0xeb)],_0x6b736d,_0x4c1dc7):_0xf5ae35(_0x3c267c,_0x2534ab[_0x57657f(0xeb)],_0x6b736d);}function countLinkActions(_0x2328b1){const _0x4d9d16=a44_0x42e5c9;return _0x2328b1[_0x4d9d16(0xf0)]((_0x381ccc,_0x3bcdd6)=>{const _0x252f57=_0x4d9d16;return _0x381ccc[_0x3bcdd6['action']]=(_0x381ccc[_0x3bcdd6[_0x252f57(0xee)]]??0x0)+0x1,_0x381ccc;},{});}
@@ -1 +1 @@
1
- const a45_0x37407e=a45_0x49e3;(function(_0x43be51,_0xd9e72d){const _0x27d09e=a45_0x49e3,_0x3f91b9=_0x43be51();while(!![]){try{const _0x3634d0=-parseInt(_0x27d09e(0x192))/0x1*(parseInt(_0x27d09e(0x191))/0x2)+parseInt(_0x27d09e(0x195))/0x3+parseInt(_0x27d09e(0x1a1))/0x4+parseInt(_0x27d09e(0x197))/0x5+-parseInt(_0x27d09e(0x1a9))/0x6*(parseInt(_0x27d09e(0x19d))/0x7)+parseInt(_0x27d09e(0x19a))/0x8*(-parseInt(_0x27d09e(0x193))/0x9)+-parseInt(_0x27d09e(0x1a4))/0xa;if(_0x3634d0===_0xd9e72d)break;else _0x3f91b9['push'](_0x3f91b9['shift']());}catch(_0x3c8aec){_0x3f91b9['push'](_0x3f91b9['shift']());}}}(a45_0x228a,0x83c4b));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';function a45_0x49e3(_0x405394,_0x2b2e33){_0x405394=_0x405394-0x191;const _0x228a48=a45_0x228a();let _0x49e37a=_0x228a48[_0x405394];return _0x49e37a;}import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':a45_0x37407e(0x194),'command':a45_0x37407e(0x19b),'description':a45_0x37407e(0x1b2),'risk':a45_0x37407e(0x1b0),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x196822){const _0xd7fd66=a45_0x37407e,_0x28b6af=_0x196822[_0xd7fd66(0x1a7)](_0xd7fd66(0x198)),_0x43f7c1=normalizeListScope(_0x196822['str']('scope'));if(_0x196822[_0xd7fd66(0x1b1)](_0xd7fd66(0x19f))){const _0x3b92a3=_0x196822[_0xd7fd66(0x199)];if(!_0x3b92a3)throw CliErrors[_0xd7fd66(0x1aa)]();const {listLocalRuntimeSkills:_0x23000e,resolveRuntimeSkillInstallTarget:_0x1891b8}=await import(_0xd7fd66(0x1ae)),_0x34bede=_0x1891b8(_0x196822['appCode'],_0x196822[_0xd7fd66(0x1b1)](_0xd7fd66(0x19c))?_0xd7fd66(0x19c):'global'),_0x48eddc=_0x23000e({'env':_0x196822['envName']??_0xd7fd66(0x1ab),'accessKey':_0x3b92a3,'appCode':_0x196822['appCode'],'scopes':listScopeToRuntimeScopes(_0x43f7c1),'code':_0x28b6af[_0xd7fd66(0x1a8)]()||undefined},_0x34bede),_0x54a01c=groupLocalRuntimeSkills(_0x48eddc);return{'ok':!![],'data':{'appCode':_0x196822[_0xd7fd66(0x1b3)],'source':_0xd7fd66(0x19f),..._0x34bede['scope']==='project'?{'installScope':_0x34bede['scope']}:{},'scope':_0x43f7c1,'total':_0x48eddc['length'],'personal':_0x54a01c[_0xd7fd66(0x1a0)][_0xd7fd66(0x19e)],'company':_0x54a01c[_0xd7fd66(0x1a2)][_0xd7fd66(0x19e)],'items':_0x48eddc[_0xd7fd66(0x1a5)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x54a01c[_0xd7fd66(0x1a0)][_0xd7fd66(0x1a5)](summarizeLocalRuntimeSkill),'company':_0x54a01c[_0xd7fd66(0x1a2)][_0xd7fd66(0x1a5)](summarizeLocalRuntimeSkill)}},'message':'Listed\x20'+_0x48eddc[_0xd7fd66(0x19e)]+'\x20local\x20Skill(s).'};}const {listRuntimeSkills:_0x2ed7cb}=await import(_0xd7fd66(0x1ac)),_0x3795ef=await _0x2ed7cb({'appCode':_0x196822[_0xd7fd66(0x1b3)],'scope':listScopeToRemoteScope(_0x43f7c1),'code':_0x28b6af[_0xd7fd66(0x1a8)]()||undefined}),_0x31b546=shouldListScope(_0x43f7c1,_0xd7fd66(0x1a0))?_0x3795ef[_0xd7fd66(0x1a0)]??[]:[],_0x32e0c3=shouldListScope(_0x43f7c1,'company')?_0x3795ef[_0xd7fd66(0x1a2)]??[]:[],_0xa5e9c8=[..._0x31b546,..._0x32e0c3];return{'ok':!![],'data':{'appCode':_0x196822[_0xd7fd66(0x1b3)],'source':_0xd7fd66(0x1b4),'scope':_0x43f7c1,'total':_0xa5e9c8[_0xd7fd66(0x19e)],'personal':_0x31b546[_0xd7fd66(0x19e)],'company':_0x32e0c3[_0xd7fd66(0x19e)],'items':_0xa5e9c8[_0xd7fd66(0x1a5)](summarizeRuntimeSkill),'skills':{'personal':_0x31b546['map'](summarizeRuntimeSkill),'company':_0x32e0c3['map'](summarizeRuntimeSkill)}},'message':_0xd7fd66(0x1af)+_0xa5e9c8[_0xd7fd66(0x19e)]+_0xd7fd66(0x1ad)};}};function a45_0x228a(){const _0x513902=['1274IrOOsw','length','local','personal','2957192FbpcDh','company','scope','8038210xPirhw','map','filter','str','trim','618xuZEpF','authRequired','production','../../../core/api-client.js','\x20remote\x20Skill(s).','../../../skills/runtime-skill-sync.js','Listed\x20','read','bool','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','appCode','remote','410LHiCBs','2qRHfNM','3921093UDEqqV','skill','3068367dDjjFv','builtin','181450esJJey','code','accessKey','8borNgX','list','project'];a45_0x228a=function(){return _0x513902;};return a45_0x228a();}function groupLocalRuntimeSkills(_0x18f80d){const _0x40eb6c=a45_0x37407e;return{'personal':_0x18f80d[_0x40eb6c(0x1a6)](_0x9cd35a=>_0x9cd35a['scope']===_0x40eb6c(0x1a0)),'company':_0x18f80d[_0x40eb6c(0x1a6)](_0x1ea8eb=>_0x1ea8eb['scope']===_0x40eb6c(0x1a2)),'builtin':_0x18f80d[_0x40eb6c(0x1a6)](_0x1d9abc=>_0x1d9abc[_0x40eb6c(0x1a3)]===_0x40eb6c(0x196))};}
1
+ const a45_0x3857b0=a45_0x1148;function a45_0x1c98(){const _0x4f728d=['scope','\x20local\x20Skill(s).','skill','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','appCode','envName','map','str','global','4882CswNRG','1869140mSRgcf','filter','code','authRequired','length','list','read','project','613932aIapBA','117WHlqTd','2747339mSlONW','1411952WtLIGV','builtin','company','personal','trim','\x20remote\x20Skill(s).','accessKey','../../../skills/runtime-skill-sync.js','36cdYbFO','remote','9eVomqI','5UdKXWX','4AcdQIY','production','bool','2325763OGnDlr','1220514KLcbBT','local','Listed\x20'];a45_0x1c98=function(){return _0x4f728d;};return a45_0x1c98();}function a45_0x1148(_0x57189e,_0x5869c4){_0x57189e=_0x57189e-0xde;const _0x1c9873=a45_0x1c98();let _0x114817=_0x1c9873[_0x57189e];return _0x114817;}(function(_0x38126d,_0x2b3bbd){const _0x535461=a45_0x1148,_0xb7d4f0=_0x38126d();while(!![]){try{const _0x238b26=parseInt(_0x535461(0x102))/0x1*(parseInt(_0x535461(0xf8))/0x2)+-parseInt(_0x535461(0xec))/0x3*(parseInt(_0x535461(0xe8))/0x4)+parseInt(_0x535461(0xe7))/0x5*(parseInt(_0x535461(0x101))/0x6)+-parseInt(_0x535461(0x103))/0x7+parseInt(_0x535461(0x104))/0x8*(-parseInt(_0x535461(0xe6))/0x9)+parseInt(_0x535461(0xf9))/0xa+-parseInt(_0x535461(0xeb))/0xb*(-parseInt(_0x535461(0xe4))/0xc);if(_0x238b26===_0x2b3bbd)break;else _0xb7d4f0['push'](_0xb7d4f0['shift']());}catch(_0x478336){_0xb7d4f0['push'](_0xb7d4f0['shift']());}}}(a45_0x1c98,0x38f6b));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':a45_0x3857b0(0xf1),'command':a45_0x3857b0(0xfe),'description':a45_0x3857b0(0xf2),'risk':a45_0x3857b0(0xff),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x270011){const _0xdbd8d1=a45_0x3857b0,_0x509e4e=_0x270011[_0xdbd8d1(0xf6)](_0xdbd8d1(0xfb)),_0x3b57cf=normalizeListScope(_0x270011[_0xdbd8d1(0xf6)](_0xdbd8d1(0xef)));if(_0x270011[_0xdbd8d1(0xea)](_0xdbd8d1(0xed))){const _0x25d767=_0x270011[_0xdbd8d1(0xe2)];if(!_0x25d767)throw CliErrors[_0xdbd8d1(0xfc)]();const {listLocalRuntimeSkills:_0x40e73b,resolveRuntimeSkillInstallTarget:_0x272c98}=await import(_0xdbd8d1(0xe3)),_0x26d76e=_0x272c98(_0x270011['appCode'],_0x270011['bool']('project')?_0xdbd8d1(0x100):_0xdbd8d1(0xf7)),_0x58007d=_0x40e73b({'env':_0x270011[_0xdbd8d1(0xf4)]??_0xdbd8d1(0xe9),'accessKey':_0x25d767,'appCode':_0x270011['appCode'],'scopes':listScopeToRuntimeScopes(_0x3b57cf),'code':_0x509e4e[_0xdbd8d1(0xe0)]()||undefined},_0x26d76e),_0x4a1a06=groupLocalRuntimeSkills(_0x58007d);return{'ok':!![],'data':{'appCode':_0x270011[_0xdbd8d1(0xf3)],'source':_0xdbd8d1(0xed),..._0x26d76e[_0xdbd8d1(0xef)]==='project'?{'installScope':_0x26d76e[_0xdbd8d1(0xef)]}:{},'scope':_0x3b57cf,'total':_0x58007d[_0xdbd8d1(0xfd)],'personal':_0x4a1a06[_0xdbd8d1(0xdf)][_0xdbd8d1(0xfd)],'company':_0x4a1a06[_0xdbd8d1(0xde)]['length'],'items':_0x58007d['map'](summarizeLocalRuntimeSkill),'skills':{'personal':_0x4a1a06['personal'][_0xdbd8d1(0xf5)](summarizeLocalRuntimeSkill),'company':_0x4a1a06[_0xdbd8d1(0xde)]['map'](summarizeLocalRuntimeSkill)}},'message':_0xdbd8d1(0xee)+_0x58007d['length']+_0xdbd8d1(0xf0)};}const {listRuntimeSkills:_0x593dd2}=await import('../../../core/api-client.js'),_0x546af9=await _0x593dd2({'appCode':_0x270011[_0xdbd8d1(0xf3)],'scope':listScopeToRemoteScope(_0x3b57cf),'code':_0x509e4e[_0xdbd8d1(0xe0)]()||undefined}),_0x52e384=shouldListScope(_0x3b57cf,_0xdbd8d1(0xdf))?_0x546af9[_0xdbd8d1(0xdf)]??[]:[],_0x3ec469=shouldListScope(_0x3b57cf,_0xdbd8d1(0xde))?_0x546af9['company']??[]:[],_0x555b46=[..._0x52e384,..._0x3ec469];return{'ok':!![],'data':{'appCode':_0x270011[_0xdbd8d1(0xf3)],'source':_0xdbd8d1(0xe5),'scope':_0x3b57cf,'total':_0x555b46['length'],'personal':_0x52e384[_0xdbd8d1(0xfd)],'company':_0x3ec469['length'],'items':_0x555b46[_0xdbd8d1(0xf5)](summarizeRuntimeSkill),'skills':{'personal':_0x52e384['map'](summarizeRuntimeSkill),'company':_0x3ec469['map'](summarizeRuntimeSkill)}},'message':'Listed\x20'+_0x555b46[_0xdbd8d1(0xfd)]+_0xdbd8d1(0xe1)};}};function groupLocalRuntimeSkills(_0x460428){const _0x5286f9=a45_0x3857b0;return{'personal':_0x460428[_0x5286f9(0xfa)](_0x12fdf7=>_0x12fdf7[_0x5286f9(0xef)]===_0x5286f9(0xdf)),'company':_0x460428['filter'](_0x551c8c=>_0x551c8c[_0x5286f9(0xef)]===_0x5286f9(0xde)),'builtin':_0x460428['filter'](_0x1331a0=>_0x1331a0[_0x5286f9(0xef)]===_0x5286f9(0x105))};}
@@ -1 +1 @@
1
- const a46_0x269649=a46_0x1c4d;(function(_0x15845d,_0x175730){const _0x4fbfaf=a46_0x1c4d,_0x22947c=_0x15845d();while(!![]){try{const _0x3ffad0=parseInt(_0x4fbfaf(0x1e1))/0x1+-parseInt(_0x4fbfaf(0x1e5))/0x2*(parseInt(_0x4fbfaf(0x1e3))/0x3)+-parseInt(_0x4fbfaf(0x1ea))/0x4*(parseInt(_0x4fbfaf(0x1e6))/0x5)+parseInt(_0x4fbfaf(0x1e7))/0x6+-parseInt(_0x4fbfaf(0x1e8))/0x7+parseInt(_0x4fbfaf(0x1e9))/0x8+-parseInt(_0x4fbfaf(0x1e4))/0x9;if(_0x3ffad0===_0x175730)break;else _0x22947c['push'](_0x22947c['shift']());}catch(_0x15058a){_0x22947c['push'](_0x22947c['shift']());}}}(a46_0x4944,0xc76e9));function a46_0x1c4d(_0x122949,_0x37e771){_0x122949=_0x122949-0x1e0;const _0x4944fb=a46_0x4944();let _0x1c4d1c=_0x4944fb[_0x122949];return _0x1c4d1c;}import{CONFIRM_WARNINGS_FLAG,DIR_FLAG,PUSH_SCOPE_FLAG}from'../flags.js';function a46_0x4944(){const _0x3cf3fd=['skill','write','Push\x20a\x20local\x20Skill\x20directory\x20to\x20personal\x20scope\x20or\x20submit\x20company\x20scope\x20for\x20review','1361123XznaoG','push','2346zbMkeX','2323836FeaKlz','3826FIabqI','5ZAToPW','9583236WWTROj','9227043YRbaGD','8265888bLSMuH','409492pBXsIX'];a46_0x4944=function(){return _0x3cf3fd;};return a46_0x4944();}import{skillPushDryRun,skillPushExecute}from'../push-execute.js';export const pushCommand={'service':a46_0x269649(0x1eb),'command':a46_0x269649(0x1e2),'description':a46_0x269649(0x1e0),'risk':a46_0x269649(0x1ec),'flags':[DIR_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};
1
+ const a46_0x1f4ffc=a46_0x572b;(function(_0x21cb39,_0x2c59c3){const _0x214c76=a46_0x572b,_0x3cba80=_0x21cb39();while(!![]){try{const _0x18de08=-parseInt(_0x214c76(0x16f))/0x1+-parseInt(_0x214c76(0x172))/0x2*(parseInt(_0x214c76(0x176))/0x3)+parseInt(_0x214c76(0x173))/0x4*(-parseInt(_0x214c76(0x175))/0x5)+-parseInt(_0x214c76(0x174))/0x6+-parseInt(_0x214c76(0x16b))/0x7*(-parseInt(_0x214c76(0x171))/0x8)+-parseInt(_0x214c76(0x170))/0x9+parseInt(_0x214c76(0x16c))/0xa;if(_0x18de08===_0x2c59c3)break;else _0x3cba80['push'](_0x3cba80['shift']());}catch(_0x2c7061){_0x3cba80['push'](_0x3cba80['shift']());}}}(a46_0x4a7e,0xa637e));import{CONFIRM_WARNINGS_FLAG,DIR_FLAG,PUSH_SCOPE_FLAG}from'../flags.js';function a46_0x572b(_0x420dfc,_0x22f779){_0x420dfc=_0x420dfc-0x16b;const _0x4a7e9b=a46_0x4a7e();let _0x572b2c=_0x4a7e9b[_0x420dfc];return _0x572b2c;}import{skillPushDryRun,skillPushExecute}from'../push-execute.js';export const pushCommand={'service':'skill','command':a46_0x1f4ffc(0x16d),'description':a46_0x1f4ffc(0x16e),'risk':'write','flags':[DIR_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};function a46_0x4a7e(){const _0x96fef3=['3jMZyFI','21sGgepv','20900950wyHJyN','push','Push\x20a\x20local\x20Skill\x20directory\x20to\x20personal\x20scope\x20or\x20submit\x20company\x20scope\x20for\x20review','1344677JglHow','991422BolXAT','3410296TRRPPG','1330586jSzite','12tNujPG','117714nFdKYV','913965muUFPf'];a46_0x4a7e=function(){return _0x96fef3;};return a46_0x4a7e();}
@@ -1 +1 @@
1
- const a47_0x24599c=a47_0x1f52;(function(_0x8d151f,_0x5e978a){const _0x1d2f94=a47_0x1f52,_0x19dc51=_0x8d151f();while(!![]){try{const _0x7713b5=parseInt(_0x1d2f94(0x14f))/0x1+-parseInt(_0x1d2f94(0x160))/0x2+parseInt(_0x1d2f94(0x151))/0x3*(parseInt(_0x1d2f94(0x14e))/0x4)+-parseInt(_0x1d2f94(0x155))/0x5*(parseInt(_0x1d2f94(0x15b))/0x6)+-parseInt(_0x1d2f94(0x159))/0x7+-parseInt(_0x1d2f94(0x158))/0x8+-parseInt(_0x1d2f94(0x150))/0x9*(-parseInt(_0x1d2f94(0x154))/0xa);if(_0x7713b5===_0x5e978a)break;else _0x19dc51['push'](_0x19dc51['shift']());}catch(_0x1a1a41){_0x19dc51['push'](_0x19dc51['shift']());}}}(a47_0x1f4a,0xe96d8));import{DIR_FLAG,STRICT_FLAG}from'../flags.js';function a47_0x1f52(_0x2946d5,_0x447647){_0x2946d5=_0x2946d5-0x14e;const _0x1f4ad1=a47_0x1f4a();let _0x1f523a=_0x1f4ad1[_0x2946d5];return _0x1f523a;}import{throwIfSkillValidationFailed,validateSkillDirectory}from'../validate.js';function a47_0x1f4a(){const _0x126fd3=['skill','1081758vONXVM','589884INTiCj','1380900sQVLHz','36rmrtcX','21sYJntV','dir','read','1009230OkwuRu','5570255rTyYLS','strict','str','1589280WzSpry','50253nfRbPG','Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','6moRaYv','validate','errors','type'];a47_0x1f4a=function(){return _0x126fd3;};return a47_0x1f4a();}export const validateCommand={'service':a47_0x24599c(0x15f),'command':a47_0x24599c(0x15c),'description':a47_0x24599c(0x15a),'risk':a47_0x24599c(0x153),'requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x366a4b){const _0x598478=a47_0x24599c,_0x194cc1=_0x366a4b['bool'](_0x598478(0x156)),_0x5561f4=validateSkillDirectory(_0x366a4b[_0x598478(0x157)](_0x598478(0x152)),{'strict':_0x194cc1});return throwIfSkillValidationFailed(_0x5561f4,_0x194cc1),{'ok':!![],'data':{'dir':_0x5561f4[_0x598478(0x152)],'type':_0x5561f4[_0x598478(0x15e)],'errors':_0x5561f4[_0x598478(0x15d)],'warnings':_0x5561f4['warnings']},'message':'Skill\x20validation\x20passed.'};}};
1
+ const a47_0x275dcc=a47_0x38fb;(function(_0x2a263a,_0x37cb96){const _0x203cf3=a47_0x38fb,_0x36742d=_0x2a263a();while(!![]){try{const _0x3ce5b7=-parseInt(_0x203cf3(0x12c))/0x1*(-parseInt(_0x203cf3(0x12a))/0x2)+-parseInt(_0x203cf3(0x123))/0x3+parseInt(_0x203cf3(0x12d))/0x4+parseInt(_0x203cf3(0x127))/0x5*(parseInt(_0x203cf3(0x120))/0x6)+parseInt(_0x203cf3(0x11d))/0x7+parseInt(_0x203cf3(0x129))/0x8+-parseInt(_0x203cf3(0x121))/0x9;if(_0x3ce5b7===_0x37cb96)break;else _0x36742d['push'](_0x36742d['shift']());}catch(_0x2addf5){_0x36742d['push'](_0x36742d['shift']());}}}(a47_0x36fb,0x2b15c));import{DIR_FLAG,STRICT_FLAG}from'../flags.js';function a47_0x38fb(_0x123257,_0x57b9ef){_0x123257=_0x123257-0x11d;const _0x36fb0b=a47_0x36fb();let _0x38fb34=_0x36fb0b[_0x123257];return _0x38fb34;}import{throwIfSkillValidationFailed,validateSkillDirectory}from'../validate.js';export const validateCommand={'service':'skill','command':a47_0x275dcc(0x125),'description':a47_0x275dcc(0x124),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x165096){const _0xb51d5=a47_0x275dcc,_0x185b03=_0x165096[_0xb51d5(0x128)]('strict'),_0x17f280=validateSkillDirectory(_0x165096[_0xb51d5(0x11f)](_0xb51d5(0x12b)),{'strict':_0x185b03});return throwIfSkillValidationFailed(_0x17f280,_0x185b03),{'ok':!![],'data':{'dir':_0x17f280['dir'],'type':_0x17f280['type'],'errors':_0x17f280[_0xb51d5(0x126)],'warnings':_0x17f280[_0xb51d5(0x11e)]},'message':_0xb51d5(0x122)};}};function a47_0x36fb(){const _0x5ae734=['validate','errors','25zZBWEH','bool','1848648AhkxOU','22IwWjjI','dir','20285zOEkbe','659552McaIQO','2469719xRjJmb','warnings','str','60168zbTUxA','6262038AvaeOj','Skill\x20validation\x20passed.','449409qppYDy','Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package'];a47_0x36fb=function(){return _0x5ae734;};return a47_0x36fb();}
@@ -1 +1 @@
1
- function a48_0x4b3b(_0x3c88d0,_0x1f7b43){_0x3c88d0=_0x3c88d0-0x1e2;const _0x383417=a48_0x3834();let _0x4b3b0d=_0x383417[_0x3c88d0];return _0x4b3b0d;}const a48_0x3c4d48=a48_0x4b3b;(function(_0x259410,_0x3721ce){const _0x1d4b92=a48_0x4b3b,_0x14fd26=_0x259410();while(!![]){try{const _0x1c8be8=parseInt(_0x1d4b92(0x1f2))/0x1*(parseInt(_0x1d4b92(0x1ef))/0x2)+parseInt(_0x1d4b92(0x1fd))/0x3+-parseInt(_0x1d4b92(0x1f9))/0x4*(parseInt(_0x1d4b92(0x1f7))/0x5)+-parseInt(_0x1d4b92(0x1f8))/0x6+-parseInt(_0x1d4b92(0x1fe))/0x7+parseInt(_0x1d4b92(0x1e2))/0x8*(parseInt(_0x1d4b92(0x1e9))/0x9)+-parseInt(_0x1d4b92(0x1f5))/0xa;if(_0x1c8be8===_0x3721ce)break;else _0x14fd26['push'](_0x14fd26['shift']());}catch(_0x38a2cc){_0x14fd26['push'](_0x14fd26['shift']());}}}(a48_0x3834,0x21088));import{DEFAULT_SKILL_TARGET,SKILL_NAME_PATTERN,SKILL_TYPES}from'./templates.js';export const CODE_FLAG={'name':a48_0x3c4d48(0x1f3),'type':a48_0x3c4d48(0x205),'description':a48_0x3c4d48(0x1f6)};export const SCOPE_FLAG={'name':a48_0x3c4d48(0x1e5),'type':'string','description':a48_0x3c4d48(0x1ee),'enum':[a48_0x3c4d48(0x1ea),a48_0x3c4d48(0x1f0),a48_0x3c4d48(0x202)]};export const PUSH_SCOPE_FLAG={'name':'scope','type':a48_0x3c4d48(0x205),'description':a48_0x3c4d48(0x200),'default':'personal','enum':[a48_0x3c4d48(0x1f0),a48_0x3c4d48(0x202)]};export const LIST_SCOPE_FLAG={'name':a48_0x3c4d48(0x1e5),'type':a48_0x3c4d48(0x205),'description':a48_0x3c4d48(0x204),'enum':[a48_0x3c4d48(0x1ea),'personal','company']};export const LOCAL_FLAG={'name':a48_0x3c4d48(0x1ff),'type':a48_0x3c4d48(0x1ec),'description':a48_0x3c4d48(0x1fb)};export const DIR_FLAG={'name':a48_0x3c4d48(0x1fa),'type':a48_0x3c4d48(0x205),'required':!![],'description':'Local\x20Skill\x20directory\x20containing\x20SKILL.md'};export const CREATE_NAME_FLAG={'name':a48_0x3c4d48(0x1f1),'type':a48_0x3c4d48(0x205),'required':!![],'description':a48_0x3c4d48(0x1eb),'pattern':{'regex':SKILL_NAME_PATTERN,'description':a48_0x3c4d48(0x1f4)}};export const TYPE_FLAG={'name':a48_0x3c4d48(0x1e7),'type':'string','description':a48_0x3c4d48(0x201),'enum':[...SKILL_TYPES]};export const TARGET_FLAG={'name':a48_0x3c4d48(0x1e8),'type':a48_0x3c4d48(0x205),'description':a48_0x3c4d48(0x1e6),'default':DEFAULT_SKILL_TARGET};export const FORCE_FLAG={'name':a48_0x3c4d48(0x1e4),'type':'boolean','description':a48_0x3c4d48(0x1fc)};export const PROJECT_TARGET_FLAG={'name':a48_0x3c4d48(0x1ed),'type':a48_0x3c4d48(0x1ec),'description':a48_0x3c4d48(0x203)};function a48_0x3834(){const _0x11224b=['force','scope','Directory\x20that\x20will\x20contain\x20the\x20generated\x20Skill\x20directory','type','target','117XIGDRy','all','Skill\x20name\x20using\x20lowercase\x20letters,\x20numbers,\x20and\x20hyphens','boolean','project','Skill\x20sync\x20scope:\x20all\x20(personal/company),\x20personal,\x20or\x20company','10laJvTg','personal','name','34263ttxEyv','code','lowercase\x20letters,\x20numbers,\x20and\x20single\x20hyphens','1798260qucjWE','Only\x20target\x20a\x20specific\x20runtime\x20Skill\x20code','5HnuvRT','121266BAOrCZ','13564bnJSPc','dir','Read\x20CLI-managed\x20local\x20Skill\x20cache\x20and\x20links\x20instead\x20of\x20remote\x20lists','Overwrite\x20generated\x20or\x20CLI-managed\x20Skill\x20files\x20when\x20the\x20target\x20already\x20exists','804891LLUuWY','917826AcCfJr','local','Skill\x20push\x20target\x20scope:\x20personal\x20saves\x20immediately,\x20company\x20submits\x20a\x20new\x20version\x20for\x20review','Skill\x20template\x20type:\x20pass\x20read\x20or\x20write\x20explicitly\x20(omission\x20is\x20deprecated)','company','Use\x20the\x20current\x20project\x27s\x20.agents/skills\x20instead\x20of\x20user-level\x20Agent\x20Skill\x20directories','Skill\x20list\x20scope:\x20all,\x20personal,\x20or\x20company','string','18608xdnsPk','Compatibility\x20flag;\x20no\x20extra\x20checks\x20are\x20enabled'];a48_0x3834=function(){return _0x11224b;};return a48_0x3834();}export const CONFIRM_WARNINGS_FLAG={'name':'confirm-warnings','type':a48_0x3c4d48(0x1ec),'description':'Confirm\x20reviewed\x20personal\x20or\x20company\x20Skill\x20publish\x20warnings'};export const STRICT_FLAG={'name':'strict','type':'boolean','description':a48_0x3c4d48(0x1e3)};
1
+ const a48_0x3949f6=a48_0x3247;function a48_0x3247(_0x4aa61b,_0x237a30){_0x4aa61b=_0x4aa61b-0x16a;const _0x20f655=a48_0x20f6();let _0x32479a=_0x20f655[_0x4aa61b];return _0x32479a;}(function(_0x3dc73d,_0x2d59e0){const _0x13fb36=a48_0x3247,_0x25d06b=_0x3dc73d();while(!![]){try{const _0x1d249e=parseInt(_0x13fb36(0x17e))/0x1*(-parseInt(_0x13fb36(0x16a))/0x2)+parseInt(_0x13fb36(0x17b))/0x3+-parseInt(_0x13fb36(0x185))/0x4+parseInt(_0x13fb36(0x17d))/0x5*(parseInt(_0x13fb36(0x177))/0x6)+-parseInt(_0x13fb36(0x16c))/0x7+parseInt(_0x13fb36(0x174))/0x8*(-parseInt(_0x13fb36(0x184))/0x9)+parseInt(_0x13fb36(0x179))/0xa;if(_0x1d249e===_0x2d59e0)break;else _0x25d06b['push'](_0x25d06b['shift']());}catch(_0x494a82){_0x25d06b['push'](_0x25d06b['shift']());}}}(a48_0x20f6,0xda924));function a48_0x20f6(){const _0x766dd7=['746242NOEIIU','Skill\x20template\x20type:\x20pass\x20read\x20or\x20write\x20explicitly\x20(omission\x20is\x20deprecated)','Directory\x20that\x20will\x20contain\x20the\x20generated\x20Skill\x20directory','type','Local\x20Skill\x20directory\x20containing\x20SKILL.md','Read\x20CLI-managed\x20local\x20Skill\x20cache\x20and\x20links\x20instead\x20of\x20remote\x20lists','boolean','company','2906888SvOlyv','dir','Skill\x20sync\x20scope:\x20all\x20(personal/company),\x20personal,\x20or\x20company','942mjvDCN','Confirm\x20reviewed\x20personal\x20or\x20company\x20Skill\x20publish\x20warnings','6103950NvAcFp','Skill\x20push\x20target\x20scope:\x20personal\x20saves\x20immediately,\x20company\x20submits\x20a\x20new\x20version\x20for\x20review','1996770vIzwSq','Compatibility\x20flag;\x20no\x20extra\x20checks\x20are\x20enabled','32405Qxyspd','22017SxhWHO','confirm-warnings','local','Skill\x20list\x20scope:\x20all,\x20personal,\x20or\x20company','personal','Overwrite\x20generated\x20or\x20CLI-managed\x20Skill\x20files\x20when\x20the\x20target\x20already\x20exists','9aWgpIc','102280ZKOnEL','force','Skill\x20name\x20using\x20lowercase\x20letters,\x20numbers,\x20and\x20hyphens','scope','82GqmPwp','string'];a48_0x20f6=function(){return _0x766dd7;};return a48_0x20f6();}import{DEFAULT_SKILL_TARGET,SKILL_NAME_PATTERN,SKILL_TYPES}from'./templates.js';export const CODE_FLAG={'name':'code','type':a48_0x3949f6(0x16b),'description':'Only\x20target\x20a\x20specific\x20runtime\x20Skill\x20code'};export const SCOPE_FLAG={'name':a48_0x3949f6(0x188),'type':a48_0x3949f6(0x16b),'description':a48_0x3949f6(0x176),'enum':['all',a48_0x3949f6(0x182),a48_0x3949f6(0x173)]};export const PUSH_SCOPE_FLAG={'name':a48_0x3949f6(0x188),'type':a48_0x3949f6(0x16b),'description':a48_0x3949f6(0x17a),'default':a48_0x3949f6(0x182),'enum':[a48_0x3949f6(0x182),'company']};export const LIST_SCOPE_FLAG={'name':a48_0x3949f6(0x188),'type':a48_0x3949f6(0x16b),'description':a48_0x3949f6(0x181),'enum':['all','personal',a48_0x3949f6(0x173)]};export const LOCAL_FLAG={'name':a48_0x3949f6(0x180),'type':a48_0x3949f6(0x172),'description':a48_0x3949f6(0x171)};export const DIR_FLAG={'name':a48_0x3949f6(0x175),'type':a48_0x3949f6(0x16b),'required':!![],'description':a48_0x3949f6(0x170)};export const CREATE_NAME_FLAG={'name':'name','type':a48_0x3949f6(0x16b),'required':!![],'description':a48_0x3949f6(0x187),'pattern':{'regex':SKILL_NAME_PATTERN,'description':'lowercase\x20letters,\x20numbers,\x20and\x20single\x20hyphens'}};export const TYPE_FLAG={'name':a48_0x3949f6(0x16f),'type':'string','description':a48_0x3949f6(0x16d),'enum':[...SKILL_TYPES]};export const TARGET_FLAG={'name':'target','type':a48_0x3949f6(0x16b),'description':a48_0x3949f6(0x16e),'default':DEFAULT_SKILL_TARGET};export const FORCE_FLAG={'name':a48_0x3949f6(0x186),'type':'boolean','description':a48_0x3949f6(0x183)};export const PROJECT_TARGET_FLAG={'name':'project','type':a48_0x3949f6(0x172),'description':'Use\x20the\x20current\x20project\x27s\x20.agents/skills\x20instead\x20of\x20user-level\x20Agent\x20Skill\x20directories'};export const CONFIRM_WARNINGS_FLAG={'name':a48_0x3949f6(0x17f),'type':a48_0x3949f6(0x172),'description':a48_0x3949f6(0x178)};export const STRICT_FLAG={'name':'strict','type':a48_0x3949f6(0x172),'description':a48_0x3949f6(0x17c)};
@@ -1 +1 @@
1
- (function(_0x5a2787,_0x43af24){const _0x4afe77=a49_0xabbd,_0x2488d2=_0x5a2787();while(!![]){try{const _0x536884=-parseInt(_0x4afe77(0xef))/0x1*(-parseInt(_0x4afe77(0xeb))/0x2)+parseInt(_0x4afe77(0xee))/0x3+parseInt(_0x4afe77(0xec))/0x4*(-parseInt(_0x4afe77(0xed))/0x5)+-parseInt(_0x4afe77(0xf4))/0x6*(-parseInt(_0x4afe77(0xf3))/0x7)+parseInt(_0x4afe77(0xea))/0x8+parseInt(_0x4afe77(0xf1))/0x9+parseInt(_0x4afe77(0xf2))/0xa*(-parseInt(_0x4afe77(0xf0))/0xb);if(_0x536884===_0x43af24)break;else _0x2488d2['push'](_0x2488d2['shift']());}catch(_0x3d85c2){_0x2488d2['push'](_0x2488d2['shift']());}}}(a49_0x4b67,0x8f16f));import{createCommand}from'./commands/create.js';import{installCommand}from'./commands/install.js';import{listCommand}from'./commands/list.js';import{pushCommand}from'./commands/push.js';import{validateCommand}from'./commands/validate.js';function a49_0xabbd(_0x194820,_0x4d8865){_0x194820=_0x194820-0xea;const _0x4b67e7=a49_0x4b67();let _0xabbde1=_0x4b67e7[_0x194820];return _0xabbde1;}function a49_0x4b67(){const _0x104364=['3469062pYCxUz','1mInLwb','11TftoIe','2569338OFPPFW','26048290NHfYaS','3997tJJKgY','7674gfKncl','1918672eUpbyD','1585838seZKdk','136rlSjsJ','2055vzlwzf'];a49_0x4b67=function(){return _0x104364;};return a49_0x4b67();}export const skillDefinitions=[installCommand,createCommand,validateCommand,listCommand,pushCommand];
1
+ function a49_0x5422(_0x28b613,_0x5302fe){_0x28b613=_0x28b613-0xe9;const _0x52a27c=a49_0x52a2();let _0x542244=_0x52a27c[_0x28b613];return _0x542244;}(function(_0x2b768a,_0x5e75d2){const _0x5f2c72=a49_0x5422,_0x564557=_0x2b768a();while(!![]){try{const _0x4df420=parseInt(_0x5f2c72(0xeb))/0x1+-parseInt(_0x5f2c72(0xed))/0x2+parseInt(_0x5f2c72(0xec))/0x3+-parseInt(_0x5f2c72(0xef))/0x4*(parseInt(_0x5f2c72(0xf0))/0x5)+-parseInt(_0x5f2c72(0xea))/0x6+-parseInt(_0x5f2c72(0xee))/0x7+parseInt(_0x5f2c72(0xe9))/0x8;if(_0x4df420===_0x5e75d2)break;else _0x564557['push'](_0x564557['shift']());}catch(_0x2ba0c0){_0x564557['push'](_0x564557['shift']());}}}(a49_0x52a2,0xe8c96));import{createCommand}from'./commands/create.js';import{installCommand}from'./commands/install.js';import{listCommand}from'./commands/list.js';import{pushCommand}from'./commands/push.js';import{validateCommand}from'./commands/validate.js';function a49_0x52a2(){const _0x7ea023=['2819784QRVbsj','916195MhTIJN','20VTTscc','1535855BSdTvv','13942448cVHtZV','3494694HViunY','1232413zrIynb','4912068lGpdgB'];a49_0x52a2=function(){return _0x7ea023;};return a49_0x52a2();}export const skillDefinitions=[installCommand,createCommand,validateCommand,listCommand,pushCommand];
@@ -1 +1 @@
1
- function a50_0x541f(_0x1da11a,_0x233a6c){_0x1da11a=_0x1da11a-0xec;var _0x124821=a50_0x1248();var _0x541f00=_0x124821[_0x1da11a];return _0x541f00;}(function(_0x31e4b5,_0x54a6a5){var _0x32c9ae=a50_0x541f,_0xead7f8=_0x31e4b5();while(!![]){try{var _0x5760c7=-parseInt(_0x32c9ae(0xef))/0x1*(-parseInt(_0x32c9ae(0xf7))/0x2)+-parseInt(_0x32c9ae(0xf1))/0x3*(parseInt(_0x32c9ae(0xf3))/0x4)+-parseInt(_0x32c9ae(0xec))/0x5+-parseInt(_0x32c9ae(0xfb))/0x6*(parseInt(_0x32c9ae(0xf9))/0x7)+-parseInt(_0x32c9ae(0xf4))/0x8+parseInt(_0x32c9ae(0xf8))/0x9+parseInt(_0x32c9ae(0xf5))/0xa;if(_0x5760c7===_0x54a6a5)break;else _0xead7f8['push'](_0xead7f8['shift']());}catch(_0x10404a){_0xead7f8['push'](_0xead7f8['shift']());}}}(a50_0x1248,0x8edee));export function isPackageBackedManifest(_0x2af74a){var _0x45a0fc=a50_0x541f;return!!_0x2af74a&&typeof _0x2af74a===_0x45a0fc(0xf2)&&!Array[_0x45a0fc(0xed)](_0x2af74a)&&typeof _0x2af74a[_0x45a0fc(0xee)]==='string'&&_0x2af74a[_0x45a0fc(0xee)][_0x45a0fc(0xfa)]>0x0&&Array[_0x45a0fc(0xed)](_0x2af74a['files']);}export function isMultiFileManifest(_0x531770){var _0x3f43c7=a50_0x541f;return!!_0x531770&&typeof _0x531770===_0x3f43c7(0xf2)&&!Array[_0x3f43c7(0xed)](_0x531770)&&Array[_0x3f43c7(0xed)](_0x531770[_0x3f43c7(0xf0)])&&_0x531770[_0x3f43c7(0xf0)][_0x3f43c7(0xf6)](_0x2ec308=>_0x2ec308['path']!=='SKILL.md');}function a50_0x1248(){var _0x25e898=['25239510wJbCJs','some','750rUQMmB','7743591zYjHNa','119uWLxDP','length','401358inguey','4576765hfZtZV','isArray','ossPath','613leZWLU','files','3FyqNid','object','3705320LEKTyZ','401304xmYnHz'];a50_0x1248=function(){return _0x25e898;};return a50_0x1248();}
1
+ (function(_0x166ba0,_0x1b520a){var _0x74af66=a50_0x4e73,_0x41d9a4=_0x166ba0();while(!![]){try{var _0xd12be5=-parseInt(_0x74af66(0x1ef))/0x1*(-parseInt(_0x74af66(0x1ee))/0x2)+-parseInt(_0x74af66(0x1eb))/0x3+-parseInt(_0x74af66(0x1ea))/0x4*(parseInt(_0x74af66(0x1e8))/0x5)+-parseInt(_0x74af66(0x1e0))/0x6+-parseInt(_0x74af66(0x1e9))/0x7+parseInt(_0x74af66(0x1ed))/0x8*(-parseInt(_0x74af66(0x1e6))/0x9)+parseInt(_0x74af66(0x1e4))/0xa;if(_0xd12be5===_0x1b520a)break;else _0x41d9a4['push'](_0x41d9a4['shift']());}catch(_0x3bdabd){_0x41d9a4['push'](_0x41d9a4['shift']());}}}(a50_0x1b93,0x7f05e));export function isPackageBackedManifest(_0x5cd935){var _0x5c31d9=a50_0x4e73;return!!_0x5cd935&&typeof _0x5cd935==='object'&&!Array[_0x5c31d9(0x1de)](_0x5cd935)&&typeof _0x5cd935[_0x5c31d9(0x1df)]===_0x5c31d9(0x1dd)&&_0x5cd935[_0x5c31d9(0x1df)][_0x5c31d9(0x1e1)]>0x0&&Array[_0x5c31d9(0x1de)](_0x5cd935[_0x5c31d9(0x1e7)]);}function a50_0x4e73(_0x2c5c13,_0x42447c){_0x2c5c13=_0x2c5c13-0x1dd;var _0x1b93a6=a50_0x1b93();var _0x4e73cd=_0x1b93a6[_0x2c5c13];return _0x4e73cd;}function a50_0x1b93(){var _0x2d1ebe=['SKILL.md','17451YEKnwB','files','5aOcqCM','6533373pclFHB','594436QKUNtT','2563194LgabKe','object','712DaDgGa','2OPWUvH','648793saeyvP','string','isArray','ossPath','5721366KLyQQW','length','path','some','29339710ghykGb'];a50_0x1b93=function(){return _0x2d1ebe;};return a50_0x1b93();}export function isMultiFileManifest(_0x47b4e2){var _0x23a1f4=a50_0x4e73;return!!_0x47b4e2&&typeof _0x47b4e2===_0x23a1f4(0x1ec)&&!Array['isArray'](_0x47b4e2)&&Array[_0x23a1f4(0x1de)](_0x47b4e2['files'])&&_0x47b4e2[_0x23a1f4(0x1e7)][_0x23a1f4(0x1e3)](_0x632a8e=>_0x632a8e[_0x23a1f4(0x1e2)]!==_0x23a1f4(0x1e5));}