@lovrabet/lovrabet-cli 2.1.21 → 2.1.22-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +1 -1
  2. package/lib/cli.js +1 -1
  3. package/lib/commands/api-doc/index.js +1 -1
  4. package/lib/commands/app/cache.js +1 -1
  5. package/lib/commands/app/definitions.js +1 -1
  6. package/lib/commands/app/eligibility.js +1 -1
  7. package/lib/commands/app/mock-loader.js +1 -1
  8. package/lib/commands/app/remote-source.js +1 -1
  9. package/lib/commands/app/shared.js +1 -1
  10. package/lib/commands/app-config/get.js +1 -1
  11. package/lib/commands/app-config/index.js +1 -1
  12. package/lib/commands/artifact/index.js +1 -1
  13. package/lib/commands/auth/device.js +1 -1
  14. package/lib/commands/auth/index.js +1 -1
  15. package/lib/commands/auth/prompt.js +1 -1
  16. package/lib/commands/bff/detail.js +1 -1
  17. package/lib/commands/bff/exec.js +1 -1
  18. package/lib/commands/bff/index.js +1 -1
  19. package/lib/commands/cli-skill/index.js +1 -1
  20. package/lib/commands/common/config-policy.js +1 -1
  21. package/lib/commands/common/constraints.js +1 -1
  22. package/lib/commands/common/flags.js +1 -1
  23. package/lib/commands/common/local-file.js +1 -1
  24. package/lib/commands/config/definitions.js +1 -1
  25. package/lib/commands/config/shared.js +1 -1
  26. package/lib/commands/data/index.js +1 -1
  27. package/lib/commands/dataset/detail.js +1 -1
  28. package/lib/commands/dataset/index.js +1 -1
  29. package/lib/commands/dataset/list.js +1 -1
  30. package/lib/commands/dataset/sdk-doc.js +1 -1
  31. package/lib/commands/doctor.js +1 -1
  32. package/lib/commands/file/index.js +1 -1
  33. package/lib/commands/init.js +1 -1
  34. package/lib/commands/kb/index.js +1 -1
  35. package/lib/commands/logs/index.js +1 -1
  36. package/lib/commands/ocr/index.js +1 -1
  37. package/lib/commands/personal-bff/index.js +1 -1
  38. package/lib/commands/registry.js +1 -1
  39. package/lib/commands/schedule/index.js +1 -1
  40. package/lib/commands/schema.js +1 -1
  41. package/lib/commands/service/dynamic.js +1 -1
  42. package/lib/commands/service/function-name-adapter.js +1 -1
  43. package/lib/commands/service/index.js +1 -1
  44. package/lib/commands/service/registry.js +1 -1
  45. package/lib/commands/skill/commands/create.js +1 -1
  46. package/lib/commands/skill/commands/diagram.d.ts +4 -0
  47. package/lib/commands/skill/commands/diagram.js +1 -0
  48. package/lib/commands/skill/commands/install.js +1 -1
  49. package/lib/commands/skill/commands/list.js +1 -1
  50. package/lib/commands/skill/commands/push.js +1 -1
  51. package/lib/commands/skill/commands/validate.js +1 -1
  52. package/lib/commands/skill/diagram.d.ts +5 -0
  53. package/lib/commands/skill/diagram.js +1 -0
  54. package/lib/commands/skill/flags.d.ts +6 -0
  55. package/lib/commands/skill/flags.js +1 -1
  56. package/lib/commands/skill/index.js +1 -1
  57. package/lib/commands/skill/manifest-helpers.js +1 -1
  58. package/lib/commands/skill/push-execute.d.ts +4 -0
  59. package/lib/commands/skill/push-execute.js +1 -1
  60. package/lib/commands/skill/push-flow-helpers.js +1 -1
  61. package/lib/commands/skill/push-retarget.js +1 -1
  62. package/lib/commands/skill/scopes.js +1 -1
  63. package/lib/commands/skill/summary.js +1 -1
  64. package/lib/commands/skill/templates.js +1 -1
  65. package/lib/commands/skill/validate.js +1 -1
  66. package/lib/commands/sql/detail.js +1 -1
  67. package/lib/commands/sql/exec.js +1 -1
  68. package/lib/commands/sql/index.js +1 -1
  69. package/lib/commands/update.js +1 -1
  70. package/lib/commands/workspace/index.js +1 -1
  71. package/lib/config/schema.js +1 -1
  72. package/lib/constant/app.js +1 -1
  73. package/lib/constant/auth-mode.js +1 -1
  74. package/lib/constant/cli.js +1 -1
  75. package/lib/constant/defaults.js +1 -1
  76. package/lib/constant/distribution.js +1 -1
  77. package/lib/constant/domain.js +1 -1
  78. package/lib/constant/env.js +1 -1
  79. package/lib/constant/output.js +1 -1
  80. package/lib/constant/product.js +1 -1
  81. package/lib/constant/risk.js +1 -1
  82. package/lib/constant/url.js +1 -1
  83. package/lib/context.js +1 -1
  84. package/lib/core/api-client.d.ts +52 -0
  85. package/lib/core/api-client.js +1 -1
  86. package/lib/core/db-resolver.js +1 -1
  87. package/lib/core/sdk-client.js +1 -1
  88. package/lib/errors.js +1 -1
  89. package/lib/framework/build-all-flags.js +1 -1
  90. package/lib/framework/dryrun.js +1 -1
  91. package/lib/framework/flags.js +1 -1
  92. package/lib/framework/help.js +1 -1
  93. package/lib/framework/index.js +1 -1
  94. package/lib/framework/output.js +1 -1
  95. package/lib/framework/preparse.js +1 -1
  96. package/lib/framework/rate-limit.js +1 -1
  97. package/lib/framework/raw-flags.js +1 -1
  98. package/lib/framework/response.js +1 -1
  99. package/lib/framework/runner-confirmation.js +1 -1
  100. package/lib/framework/runner-error.js +1 -1
  101. package/lib/framework/runner.js +1 -1
  102. package/lib/framework/schema-export.js +1 -1
  103. package/lib/framework/service-order.js +1 -1
  104. package/lib/framework/types.js +1 -1
  105. package/lib/generated/build-info.d.ts +4 -4
  106. package/lib/generated/build-info.js +1 -1
  107. package/lib/help.js +1 -1
  108. package/lib/runtime/event.js +1 -1
  109. package/lib/runtime/index.js +1 -1
  110. package/lib/runtime/queue.js +1 -1
  111. package/lib/runtime/resolve.js +1 -1
  112. package/lib/skills/npx-skills-add.js +1 -1
  113. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  114. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  115. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  116. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  117. package/lib/skills/runtime-skill-sync/links.js +1 -1
  118. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  119. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  120. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  121. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  122. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  123. package/lib/skills/runtime-skill-sync/push.js +1 -1
  124. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  125. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  126. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  127. package/lib/skills/runtime-skill-sync.js +1 -1
  128. package/lib/utils/apply-jq-filter.js +1 -1
  129. package/lib/utils/logger.js +1 -1
  130. package/lib/utils/lossless-json.js +1 -1
  131. package/lib/utils/params.js +1 -1
  132. package/lib/utils/platform.js +1 -1
  133. package/lib/utils/update-notice.js +1 -1
  134. package/lib/utils/version.js +1 -1
  135. package/lib/utils/write-cli-side-channel.js +1 -1
  136. package/package.json +3 -1
@@ -1 +1 @@
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
+ (function(_0x50fbcc,_0x26f8ef){const _0x5e474d=a39_0x137e,_0x2c1455=_0x50fbcc();while(!![]){try{const _0x186b9c=parseInt(_0x5e474d(0xe4))/0x1*(parseInt(_0x5e474d(0xcb))/0x2)+parseInt(_0x5e474d(0xc6))/0x3*(parseInt(_0x5e474d(0xbb))/0x4)+parseInt(_0x5e474d(0xca))/0x5*(parseInt(_0x5e474d(0xe9))/0x6)+-parseInt(_0x5e474d(0x105))/0x7*(parseInt(_0x5e474d(0x118))/0x8)+parseInt(_0x5e474d(0xb8))/0x9*(parseInt(_0x5e474d(0xd1))/0xa)+parseInt(_0x5e474d(0xe7))/0xb+-parseInt(_0x5e474d(0xee))/0xc*(parseInt(_0x5e474d(0x10d))/0xd);if(_0x186b9c===_0x26f8ef)break;else _0x2c1455['push'](_0x2c1455['shift']());}catch(_0x178444){_0x2c1455['push'](_0x2c1455['shift']());}}}(a39_0x43fb,0x8bf09));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(_0x34a4ac,_0x2c1b0d){const _0x17562a=a39_0x137e,_0x4c0aa1=listLocalServiceTrees();let _0x1640c0;for(const _0x33ee61 of _0x4c0aa1){const _0x32706d=matchServiceTreeCommand(_0x33ee61,_0x34a4ac);if(!_0x32706d)continue;(!_0x1640c0||_0x32706d[_0x17562a(0x109)]['fullPath'][_0x17562a(0xdf)]>_0x1640c0[_0x17562a(0x109)][_0x17562a(0xff)][_0x17562a(0xdf)])&&(_0x1640c0={'tree':_0x33ee61,'command':_0x32706d[_0x17562a(0x109)],'remainingArgs':_0x32706d[_0x17562a(0xc3)]});}if(!_0x1640c0)return undefined;const _0x1ceb7c={..._0x2c1b0d};return applyAppBinding(_0x1640c0[_0x17562a(0xe3)],_0x1640c0[_0x17562a(0x109)],_0x1ceb7c),{'definition':buildDynamicCommandDefinition(_0x1640c0[_0x17562a(0xe3)],_0x1640c0[_0x17562a(0x109)]),'args':_0x1640c0['remainingArgs'],'flags':_0x1ceb7c,'tree':_0x1640c0['tree'],'command':_0x1640c0[_0x17562a(0x109)]};}export function generateDynamicServiceHelp(_0x1bccaa){const _0x10e0d2=a39_0x137e,_0x2da328=listLocalServiceTrees()[_0x10e0d2(0xfa)](_0x493431=>_0x493431[_0x10e0d2(0xb9)]['code']===_0x1bccaa);if(!_0x2da328)return undefined;const _0x32a55c=[CLI_BIN_NAME+'\x20'+_0x1bccaa+_0x10e0d2(0xf7),'',_0x2da328[_0x10e0d2(0xb9)][_0x10e0d2(0xda)]||_0x1bccaa,_0x2da328[_0x10e0d2(0xb9)][_0x10e0d2(0x111)]?'\x20\x20'+_0x2da328[_0x10e0d2(0xb9)][_0x10e0d2(0x111)]:'','',_0x10e0d2(0xc2),..._0x2da328['commands'][_0x10e0d2(0xd8)](_0x3dc94f=>{const _0x1cf615=_0x10e0d2,_0x2b730d=_0x3dc94f[_0x1cf615(0xff)][_0x1cf615(0x115)](0x1)[_0x1cf615(0xc9)]('\x20'),_0x5bf004=_0x3dc94f['risk']===_0x1cf615(0xfc)?'':'\x20['+_0x3dc94f[_0x1cf615(0x114)]+']';return'\x20\x20'+_0x2b730d[_0x1cf615(0xf2)](0x18)+'\x20'+(_0x3dc94f[_0x1cf615(0x111)]||'')+_0x5bf004;}),'','Use\x20`'+CLI_BIN_NAME+_0x10e0d2(0x104)+_0x1bccaa+_0x10e0d2(0xc4)][_0x10e0d2(0xf1)](Boolean);return _0x32a55c['join']('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x4a9a8d=>{const _0x548b21=a39_0x137e,_0x1abedf=_0x4a9a8d[_0x548b21(0xfd)];return{'service':_0x1abedf['service'][_0x548b21(0xd0)],'label':_0x1abedf['service'][_0x548b21(0xda)]||_0x1abedf['service'][_0x548b21(0xd0)],'commands':_0x1abedf['commands'][_0x548b21(0xd8)](_0x45683d=>({'command':dynamicCommandName(_0x45683d),'description':_0x45683d[_0x548b21(0x111)]||'Run\x20service\x20command\x20'+_0x45683d[_0x548b21(0xf3)],'tag':riskTag(_0x45683d[_0x548b21(0x114)])}))};});}export function getDynamicServiceEntry(_0x41ff92){const _0x2ea695=a39_0x137e;return listDynamicServiceEntries()[_0x2ea695(0xfa)](_0x5192bc=>_0x5192bc['service']===_0x41ff92);}export function listDynamicServiceDefinitions(_0x4dd55b){const _0x17709f=a39_0x137e;return listLocalServiceTrees()[_0x17709f(0xf1)](_0x229d9e=>!_0x4dd55b||_0x229d9e['service'][_0x17709f(0xd0)]===_0x4dd55b)[_0x17709f(0xea)](_0x1357de=>_0x1357de[_0x17709f(0x10a)][_0x17709f(0xd8)](_0x46dd2a=>buildDynamicCommandDefinition(_0x1357de,_0x46dd2a)));}export function getDynamicServiceDefinitions(_0x5b144d){const _0x5012a7=a39_0x137e,_0x5c6a59=listDynamicServiceDefinitions(_0x5b144d);return _0x5c6a59[_0x5012a7(0xdf)]>0x0?_0x5c6a59:undefined;}export function findDynamicServiceDefinition(_0x13b504,_0x27732d){const _0x51a3e1=a39_0x137e;return listDynamicServiceDefinitions(_0x13b504)[_0x51a3e1(0xfa)](_0x48665f=>_0x48665f[_0x51a3e1(0x109)]===_0x27732d);}function a39_0x137e(_0x279414,_0x2102bc){_0x279414=_0x279414-0xb8;const _0x43fbf4=a39_0x43fb();let _0x137e8c=_0x43fbf4[_0x279414];return _0x137e8c;}export function buildDynamicCommandDefinition(_0x4f30c5,_0x21eb5d){const _0x54e693=a39_0x137e;return{'service':_0x4f30c5[_0x54e693(0xb9)]['code'],'command':dynamicCommandName(_0x21eb5d),'description':_0x21eb5d[_0x54e693(0x111)]||_0x54e693(0xcf)+_0x21eb5d['cliPath'],'risk':_0x21eb5d[_0x54e693(0x114)],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x21eb5d['args'][_0x54e693(0xd8)](_0x485833=>({'name':_0x485833[_0x54e693(0xda)],'description':_0x485833[_0x54e693(0x111)]||_0x485833[_0x54e693(0xda)],'required':_0x485833[_0x54e693(0xcd)]})),'flags':_0x21eb5d[_0x54e693(0xe8)][_0x54e693(0xd8)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x21eb5d),async 'dryRun'(_0x4d0aa5){const _0x4b0b6a=_0x54e693,_0xc9f272=await compilePlan(_0x21eb5d,_0x4d0aa5);return{'method':_0x4b0b6a(0xbf),'url':_0x21eb5d[_0x4b0b6a(0xf3)],'body':{'target':targetPreview(_0xc9f272),'params':_0xc9f272[_0x4b0b6a(0x119)]},'description':_0x4b0b6a(0xce)+_0x21eb5d[_0x4b0b6a(0xf3)]};},async 'execute'(_0x3e8460){const _0x6fc6bc=_0x54e693,_0x48c9c7=await compilePlan(_0x21eb5d,_0x3e8460),_0x1eeeb5=Date[_0x6fc6bc(0x102)](),_0x2645a5=await executePlan(_0x48c9c7,_0x21eb5d,_0x3e8460),_0x46f9a6=Date[_0x6fc6bc(0x102)]()-_0x1eeeb5;return{'ok':!![],'data':{'service':_0x4f30c5[_0x6fc6bc(0xb9)],'command':_0x21eb5d[_0x6fc6bc(0xf3)],'target':targetPreview(_0x48c9c7),'result':_0x2645a5,'elapsed':_0x46f9a6},'message':_0x6fc6bc(0xc0)+_0x21eb5d[_0x6fc6bc(0xf3)]+_0x6fc6bc(0xd2)+_0x46f9a6+'ms'};}};}function dynamicCommandName(_0x41775b){const _0x57224d=a39_0x137e;return _0x41775b['fullPath'][_0x57224d(0x115)](0x1)[_0x57224d(0xc9)]('\x20');}function riskTag(_0xf04fc3){const _0x3186f6=a39_0x137e;return _0xf04fc3===_0x3186f6(0xfc)?'':'\x20\x20['+_0xf04fc3+']';}function flagToCommandFlag(_0x448ab5){const _0x51de12=a39_0x137e;return{'name':_0x448ab5['cliName'],'type':_0x448ab5[_0x51de12(0xdc)]===_0x51de12(0x112)?'string':_0x448ab5[_0x51de12(0xdc)],'description':_0x448ab5['description']||_0x448ab5[_0x51de12(0xda)],'required':_0x448ab5[_0x51de12(0xcd)],'default':isPrimitiveFlagDefault(_0x448ab5['default'])?_0x448ab5[_0x51de12(0xf9)]:undefined,'enum':_0x448ab5['enum']};}async function compilePlan(_0x1cc4b5,_0x40afff){const _0x1c5052=a39_0x137e;return compileServiceTreeCommand(_0x1cc4b5,{'flags':_0x40afff[_0x1c5052(0xf5)],'args':_0x40afff['args'],'context':await buildServiceContext(_0x1cc4b5,_0x40afff)});}async function buildServiceContext(_0x3dc27,_0x20d5a2){const _0x1f5190=a39_0x137e,_0x46960e={'appCode':_0x20d5a2['appCode'],'env':_0x20d5a2[_0x1f5190(0x103)],'envName':_0x20d5a2['envName']};if(!usesRuntimeContext(_0x3dc27))return _0x46960e;const _0x2025b6=await getLoginUserInfo(),_0xfff729=pickFirst(_0x2025b6[_0x1f5190(0x107)],_0x2025b6['id']);return{..._0x46960e,'user':_0x2025b6,'userId':_0xfff729,'id':_0x2025b6['id'],'username':pickFirst(_0x2025b6[_0x1f5190(0x106)],_0x2025b6[_0x1f5190(0xfe)],_0x2025b6[_0x1f5190(0x117)]),'userName':_0x2025b6[_0x1f5190(0xfe)],'nickname':pickFirst(_0x2025b6[_0x1f5190(0xc5)],_0x2025b6[_0x1f5190(0xf4)]),'nickName':_0x2025b6[_0x1f5190(0xf4)],'tenantCode':_0x2025b6[_0x1f5190(0x10f)],'employeeId':_0x2025b6[_0x1f5190(0xf6)]};}function usesRuntimeContext(_0x1e17dc){const _0x287121=a39_0x137e;return _0x1e17dc['mapTo'][_0x287121(0x11a)](_0x57815d=>typeof _0x57815d['source']===_0x287121(0xc7)&&(_0x57815d[_0x287121(0xba)][_0x287121(0xde)](_0x287121(0x101))||_0x57815d[_0x287121(0xba)]['startsWith'](_0x287121(0x11c))));}function pickFirst(..._0x3b5e05){const _0x504ba2=a39_0x137e;return _0x3b5e05[_0x504ba2(0xfa)](_0x456176=>_0x456176!==undefined&&_0x456176!==null);}async function executePlan(_0x1aefab,_0x8bc0af,_0x250db2){const _0xc7f6cb=a39_0x137e;if(_0x1aefab[_0xc7f6cb(0xdb)]==='data'){const _0x599e48=await resolveDatasetCode(_0x1aefab,_0x8bc0af,_0x250db2);return executeData(_0x599e48,_0x1aefab['command'],_0x1aefab[_0xc7f6cb(0x119)]);}if(_0x1aefab['kind']===_0xc7f6cb(0xe5)){if(!_0x1aefab[_0xc7f6cb(0x10e)])throw CliErrors[_0xc7f6cb(0xbc)](_0xc7f6cb(0xc0)+_0x8bc0af['cliPath']+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x1aefab[_0xc7f6cb(0x10e)],normalizeScalarParams(_0x1aefab[_0xc7f6cb(0x119)]));}if(_0x1aefab[_0xc7f6cb(0xdb)]===_0xc7f6cb(0xd3)){const _0x25a332=_0x1aefab['scriptName']||_0x1aefab['bffCode']||(_0x1aefab[_0xc7f6cb(0xfb)]==null?'':String(_0x1aefab[_0xc7f6cb(0xfb)]));if(!_0x25a332)throw CliErrors[_0xc7f6cb(0xbc)]('Service\x20command\x20'+_0x8bc0af[_0xc7f6cb(0xf3)]+_0xc7f6cb(0xef));return executeSdkBff(_0x25a332,_0x1aefab[_0xc7f6cb(0x119)]);}throw CliErrors['validation']('Unsupported\x20service\x20target\x20kind:\x20'+_0x1aefab[_0xc7f6cb(0xdb)]);}async function resolveDatasetCode(_0x3bbd67,_0x1ca1cc,_0x25ce66){const _0x54ac77=a39_0x137e;if(_0x3bbd67['datasetCode'])return _0x3bbd67[_0x54ac77(0x10c)];if(!_0x3bbd67[_0x54ac77(0x113)])throw CliErrors[_0x54ac77(0xbc)](_0x54ac77(0xc0)+_0x1ca1cc[_0x54ac77(0xf3)]+_0x54ac77(0x10b));const _0x221bf9=await listDatasets(_0x25ce66[_0x54ac77(0xe0)]),_0xe2a758=_0x221bf9['find'](_0x535416=>_0x535416[_0x54ac77(0xbe)]?.[_0x54ac77(0xec)]===_0x3bbd67[_0x54ac77(0x113)]);if(!_0xe2a758?.[_0x54ac77(0xd0)])throw CliErrors[_0x54ac77(0xbc)](_0x54ac77(0x108)+_0x3bbd67[_0x54ac77(0x113)]+_0x54ac77(0xd5)+_0x25ce66[_0x54ac77(0xe0)]+'.',_0x54ac77(0x110));return _0xe2a758['code'];}function a39_0x43fb(){const _0x2244c0=['find','bffId','read','normalizedManifest','userName','fullPath','\x20\x20\x20\x20command:\x20','context.','now','envName','\x20service\x20detail\x20--service\x20','28WuXNXY','username','userId','Cannot\x20resolve\x20datatable\x20\x22','command','commands','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','datasetCode','39blZGhq','sqlCode','tenantCode','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','description','json','datatable','risk','slice','\x20\x20\x20\x20functionName:\x20','loginName','1683584pOJpBn','params','some','\x20\x20\x20\x20','ctx.','4635693KjZvDJ','service','source','8jYLmKf','validation','\x22\x20in\x20service\x20command\x20','dbtableConfig','SERVICE_TREE','Service\x20command\x20','trim','Commands:','remainingArgs','`\x20to\x20inspect\x20the\x20manifest.','nickname','501726EAPxgV','string','app','join','5mIhgDw','225122vNsuZE','env','required','Preview\x20dynamic\x20service\x20command:\x20','Run\x20service\x20command\x20','code','10FaSJoC','\x20completed\x20in\x20','bff','appcode','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','\x20->\x20','target','map','\x20\x20\x20\x20datatable:\x20','name','kind','type','number','startsWith','length','appCode','appRef','scriptName','tree','3krAqTg','sql','mapTo','4332163wXaoMY','flags','6199614wXDKGZ','flatMap','push','tableName','appBindings','4797444ekHzXE','\x20requires\x20target.functionName.','Unknown\x20appRef\x20\x22','filter','padEnd','cliPath','nickName','rawFlags','employeeId','\x20<command>\x20[flags]','\x20\x20\x20\x20sqlCode:\x20','default'];a39_0x43fb=function(){return _0x2244c0;};return a39_0x43fb();}function applyAppBinding(_0x3045b3,_0x5b7c42,_0x109ef7){const _0x3c747a=a39_0x137e,_0x3f6f33=_0x5b7c42[_0x3c747a(0xd7)]['appRef'];if(!_0x3f6f33)return;const _0x298f91=_0x3045b3[_0x3c747a(0xed)][_0x3f6f33];if(!_0x298f91)throw CliErrors['validation'](_0x3c747a(0xf0)+_0x3f6f33+_0x3c747a(0xbd)+_0x5b7c42['cliPath']+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x19de95=_0x298f91[_0x3c747a(0xd4)]||_0x298f91[_0x3c747a(0xe0)];_0x19de95&&!hasText(_0x109ef7[_0x3c747a(0xd4)])&&(_0x109ef7[_0x3c747a(0xd4)]=_0x19de95),_0x298f91['app']&&!hasText(_0x109ef7[_0x3c747a(0xc8)])&&!hasText(_0x109ef7[_0x3c747a(0xd4)])&&(_0x109ef7['app']=_0x298f91[_0x3c747a(0xc8)]),_0x298f91[_0x3c747a(0xcc)]&&!hasText(_0x109ef7['env'])&&(_0x109ef7[_0x3c747a(0xcc)]=_0x298f91[_0x3c747a(0xcc)]);}function renderDynamicCommandHelp(_0xd23a73){const _0x34e458=a39_0x137e,_0x355f02=['\x20\x20SERVICE\x20TREE\x20TARGET','\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0xd23a73[_0x34e458(0xd7)]['kind'],_0x34e458(0x100)+_0xd23a73['target'][_0x34e458(0x109)]];if(_0xd23a73['target']['datasetCode'])_0x355f02[_0x34e458(0xeb)]('\x20\x20\x20\x20datasetCode:\x20'+_0xd23a73[_0x34e458(0xd7)][_0x34e458(0x10c)]);if(_0xd23a73[_0x34e458(0xd7)][_0x34e458(0x113)])_0x355f02[_0x34e458(0xeb)](_0x34e458(0xd9)+_0xd23a73[_0x34e458(0xd7)]['datatable']);if(_0xd23a73[_0x34e458(0xd7)]['sqlCode'])_0x355f02[_0x34e458(0xeb)](_0x34e458(0xf8)+_0xd23a73[_0x34e458(0xd7)][_0x34e458(0x10e)]);if(_0xd23a73['target'][_0x34e458(0xe2)])_0x355f02[_0x34e458(0xeb)](_0x34e458(0x116)+_0xd23a73[_0x34e458(0xd7)][_0x34e458(0xe2)]);if(_0xd23a73['mapTo'][_0x34e458(0xdf)]>0x0){_0x355f02[_0x34e458(0xeb)]('','\x20\x20MAP\x20TO');for(const _0x362176 of _0xd23a73[_0x34e458(0xe6)]){_0x355f02[_0x34e458(0xeb)](_0x34e458(0x11b)+(_0x362176['source']||'const')+_0x34e458(0xd6)+_0x362176['target']+(_0x362176['operator']?'.'+_0x362176['operator']:''));}}return _0x355f02[_0x34e458(0xc9)]('\x0a');}function targetPreview(_0x9e4bc1){const _0x419cf0=a39_0x137e;return{'kind':_0x9e4bc1[_0x419cf0(0xdb)],'command':_0x9e4bc1['command'],'appRef':_0x9e4bc1[_0x419cf0(0xe1)],'datasetCode':_0x9e4bc1[_0x419cf0(0x10c)],'datatable':_0x9e4bc1[_0x419cf0(0x113)],'sqlCode':_0x9e4bc1[_0x419cf0(0x10e)],'bffCode':_0x9e4bc1['bffCode'],'bffId':_0x9e4bc1[_0x419cf0(0xfb)],'functionName':_0x9e4bc1[_0x419cf0(0xe2)]};}function normalizeScalarParams(_0x28dd42){const _0x3d6a76=a39_0x137e;return Object['fromEntries'](Object['entries'](_0x28dd42)['filter'](([,_0x2b35d3])=>typeof _0x2b35d3===_0x3d6a76(0xc7)||typeof _0x2b35d3==='number'));}function hasText(_0x171314){const _0x36b795=a39_0x137e;return typeof _0x171314===_0x36b795(0xc7)&&_0x171314[_0x36b795(0xc1)]()[_0x36b795(0xdf)]>0x0;}function isPrimitiveFlagDefault(_0x107cec){const _0x57a680=a39_0x137e;return _0x107cec===undefined||typeof _0x107cec===_0x57a680(0xc7)||typeof _0x107cec===_0x57a680(0xdd)||typeof _0x107cec==='boolean';}
@@ -1 +1 @@
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
+ (function(_0x2d2def,_0x5861e7){const _0x146b6e=a40_0x4e6f,_0x5013d1=_0x2d2def();while(!![]){try{const _0x22c611=parseInt(_0x146b6e(0xca))/0x1+-parseInt(_0x146b6e(0xbd))/0x2*(-parseInt(_0x146b6e(0xbc))/0x3)+parseInt(_0x146b6e(0xcf))/0x4+parseInt(_0x146b6e(0xdf))/0x5*(-parseInt(_0x146b6e(0xd5))/0x6)+-parseInt(_0x146b6e(0xbe))/0x7*(parseInt(_0x146b6e(0xc2))/0x8)+parseInt(_0x146b6e(0xe3))/0x9*(-parseInt(_0x146b6e(0xc0))/0xa)+parseInt(_0x146b6e(0xd7))/0xb*(-parseInt(_0x146b6e(0xd9))/0xc);if(_0x22c611===_0x5861e7)break;else _0x5013d1['push'](_0x5013d1['shift']());}catch(_0x131fcc){_0x5013d1['push'](_0x5013d1['shift']());}}}(a40_0x4a8b,0x4d1e7));export function adaptServiceTreeManifestForLegacyFramework(_0x2b473d){const _0x1a9c14=a40_0x4e6f,_0x5a5ecb=cloneJsonValue(_0x2b473d),_0x1cb4f0=[];if(!isObjectRecord(_0x5a5ecb))return{'manifest':_0x5a5ecb,'errors':_0x1cb4f0};return Array[_0x1a9c14(0xcb)](_0x5a5ecb['commands'])&&_0x5a5ecb[_0x1a9c14(0xe1)][_0x1a9c14(0xe0)]((_0x811dcf,_0x385f3d)=>{const _0x46d8a5=_0x1a9c14;if(!isObjectRecord(_0x811dcf))return;adaptBffTarget(_0x811dcf['target'],_0x46d8a5(0xde)+_0x385f3d+'].target',_0x1cb4f0);}),adaptResources(_0x5a5ecb[_0x1a9c14(0xd4)],_0x1a9c14(0xe2),_0x1cb4f0),{'manifest':_0x5a5ecb,'errors':_0x1cb4f0};}function a40_0x4a8b(){const _0x8a3d60=['bff.exec','bff','string','resources','12IkuDEW','target','1007677Hlaniq','.functionName','12RWEgbH','error','hasOwnProperty','.actions.','fromEntries','$.commands[','1086995GtLXiX','forEach','commands','$.resources','2718DebBeh','push','functionName','1563RlmdBM','1434oJoCJl','394569xkFErQ','action','3730TpVOtq','actions','56ZfZmWM','.resources','trim','prototype','kind','entries','scriptName','call','551826uMcrMi','isArray','map','functionName\x20must\x20be\x20a\x20non-empty\x20string.','object','1696464VBLSwN','.scriptName'];a40_0x4a8b=function(){return _0x8a3d60;};return a40_0x4a8b();}export function toPublicServiceTreeTarget(_0x2a0f0d){const _0x4bbddc=a40_0x4e6f,{scriptName:_0x1b0bf2,..._0x5c3e08}=_0x2a0f0d;return typeof _0x1b0bf2===_0x4bbddc(0xd3)&&_0x1b0bf2[_0x4bbddc(0xc4)]()&&(_0x5c3e08[_0x4bbddc(0xe5)]=_0x1b0bf2),_0x5c3e08;}function a40_0x4e6f(_0x1a072c,_0x10fd66){_0x1a072c=_0x1a072c-0xbc;const _0x4a8b35=a40_0x4a8b();let _0x4e6fa4=_0x4a8b35[_0x1a072c];return _0x4e6fa4;}export function toPublicNormalizedServiceTree(_0x1eb8f5){const _0x3d7c15=a40_0x4e6f;return{..._0x1eb8f5,'commands':_0x1eb8f5[_0x3d7c15(0xe1)][_0x3d7c15(0xcc)](_0x585787=>({..._0x585787,'target':toPublicServiceTreeTarget(_0x585787[_0x3d7c15(0xd6)])}))};}function adaptResources(_0x40f782,_0x4be949,_0x164b93){const _0x49c684=a40_0x4e6f;if(!isObjectRecord(_0x40f782))return;for(const [_0x5b862f,_0xf8b80f]of Object[_0x49c684(0xc7)](_0x40f782)){if(!isObjectRecord(_0xf8b80f))continue;const _0x30ac62=_0x4be949+'.'+_0x5b862f;if(isObjectRecord(_0xf8b80f[_0x49c684(0xc1)]))for(const [_0x1cad8b,_0x5869ba]of Object['entries'](_0xf8b80f[_0x49c684(0xc1)])){if(!isObjectRecord(_0x5869ba))continue;const _0x1aaaa0=_0x30ac62+_0x49c684(0xdc)+_0x1cad8b,_0x155b8a=isObjectRecord(_0x5869ba[_0x49c684(0xd6)])&&_0x5869ba[_0x49c684(0xd6)][_0x49c684(0xc6)]===_0x49c684(0xd2);adaptBffTarget(_0x5869ba[_0x49c684(0xd6)],_0x1aaaa0+'.target',_0x164b93),(_0x155b8a||isBffAction(_0x5869ba))&&adaptFunctionNameField(_0x5869ba,_0x1aaaa0,_0x164b93);}adaptResources(_0xf8b80f[_0x49c684(0xd4)],_0x30ac62+_0x49c684(0xc3),_0x164b93);}}function adaptBffTarget(_0x4bc313,_0x210ef0,_0x4cb9ec){const _0x3b287d=a40_0x4e6f;if(!isObjectRecord(_0x4bc313)||_0x4bc313[_0x3b287d(0xc6)]!==_0x3b287d(0xd2))return;adaptFunctionNameField(_0x4bc313,_0x210ef0,_0x4cb9ec);}function adaptFunctionNameField(_0x4bc96b,_0x29dab4,_0x320410){const _0x1a42c7=a40_0x4e6f;Object[_0x1a42c7(0xc5)][_0x1a42c7(0xdb)][_0x1a42c7(0xc9)](_0x4bc96b,_0x1a42c7(0xc8))&&_0x320410[_0x1a42c7(0xe4)]({'level':_0x1a42c7(0xda),'path':_0x29dab4+_0x1a42c7(0xd0),'message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object[_0x1a42c7(0xc5)][_0x1a42c7(0xdb)][_0x1a42c7(0xc9)](_0x4bc96b,'functionName')){if(typeof _0x4bc96b[_0x1a42c7(0xe5)]!==_0x1a42c7(0xd3)||!_0x4bc96b[_0x1a42c7(0xe5)][_0x1a42c7(0xc4)]()){_0x320410['push']({'level':_0x1a42c7(0xda),'path':_0x29dab4+_0x1a42c7(0xd8),'message':_0x1a42c7(0xcd)}),delete _0x4bc96b[_0x1a42c7(0xe5)];return;}_0x4bc96b['scriptName']=_0x4bc96b['functionName'],delete _0x4bc96b[_0x1a42c7(0xe5)];}}function isBffAction(_0x327652){const _0x3321f8=a40_0x4e6f;return _0x327652[_0x3321f8(0xc6)]===_0x3321f8(0xd2)||_0x327652[_0x3321f8(0xbf)]===_0x3321f8(0xd1)||_0x327652[_0x3321f8(0xd6)]===_0x3321f8(0xd1);}function cloneJsonValue(_0x28f991){const _0x4c86e7=a40_0x4e6f;if(Array[_0x4c86e7(0xcb)](_0x28f991))return _0x28f991['map'](_0x194973=>cloneJsonValue(_0x194973));if(isObjectRecord(_0x28f991))return Object[_0x4c86e7(0xdd)](Object[_0x4c86e7(0xc7)](_0x28f991)[_0x4c86e7(0xcc)](([_0x35ab6e,_0x175ca5])=>[_0x35ab6e,cloneJsonValue(_0x175ca5)]));return _0x28f991;}function isObjectRecord(_0x9a1a99){const _0x342d3f=a40_0x4e6f;return Boolean(_0x9a1a99)&&typeof _0x9a1a99===_0x342d3f(0xce)&&!Array[_0x342d3f(0xcb)](_0x9a1a99);}
@@ -1 +1 @@
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
+ const a41_0x2f13ef=a41_0x31ee;(function(_0x4f3e2e,_0x52e239){const _0x3a4c94=a41_0x31ee,_0x69f690=_0x4f3e2e();while(!![]){try{const _0x59e360=-parseInt(_0x3a4c94(0x112))/0x1*(parseInt(_0x3a4c94(0x103))/0x2)+parseInt(_0x3a4c94(0x105))/0x3+parseInt(_0x3a4c94(0xdb))/0x4+-parseInt(_0x3a4c94(0xfa))/0x5+-parseInt(_0x3a4c94(0x111))/0x6+-parseInt(_0x3a4c94(0x109))/0x7+parseInt(_0x3a4c94(0xfb))/0x8*(parseInt(_0x3a4c94(0xeb))/0x9);if(_0x59e360===_0x52e239)break;else _0x69f690['push'](_0x69f690['shift']());}catch(_0x565ff0){_0x69f690['push'](_0x69f690['shift']());}}}(a41_0x1f19,0x5c56a));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a41_0x1f19(){const _0x33a7c8=['Updated','length','Local\x20service\x20code,\x20for\x20example\x20crm','WRITE','string','type','name','1505336GekfxP','registryPath','Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','remove','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','\x20service(s).','risk','manifests','map','updated','source','registry','registryIndex','registryServiceCode','validate','import','999PLouXK','cliName','description','Service\x20manifest\x20validation\x20passed.','read','report','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','reduce','normalizedManifest','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','Service\x20Tree\x20manifest\x20file\x20path','detail','entry','commands','imported','2262530ZMxiDI','132576UEsxni','\x20service\x20','importedAt','Removed\x20service\x20','Service\x20registry\x20validation\x20passed.','Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','\x20service(s),\x20updated\x20','service','2494SIIGcm','version','1039575VAbQlK','serviceCount','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','errors','3878959CPTFss','kind','required','filePath','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','entries','str','target','4348974robGDa','363XyMjGJ','write','warnings','cliPath','hash','serviceCode','file'];a41_0x1f19=function(){return _0x33a7c8;};return a41_0x1f19();}import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';function a41_0x31ee(_0x3ae360,_0x3d3c88){_0x3ae360=_0x3ae360-0xda;const _0x1f19a0=a41_0x1f19();let _0x31ee3e=_0x1f19a0[_0x3ae360];return _0x31ee3e;}const FILE_FLAG={'name':a41_0x2f13ef(0x118),'type':a41_0x2f13ef(0x11d),'required':!![],'description':a41_0x2f13ef(0xf5)},SERVICE_FLAG={'name':'service','type':a41_0x2f13ef(0x11d),'required':!![],'description':a41_0x2f13ef(0x11b),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x1b61e3){const _0x4dd66a=a41_0x2f13ef;return{'serviceCode':_0x1b61e3[_0x4dd66a(0x117)],'name':_0x1b61e3[_0x4dd66a(0xf3)][_0x4dd66a(0x102)][_0x4dd66a(0xda)],'version':_0x1b61e3[_0x4dd66a(0x104)],'importedAt':_0x1b61e3[_0x4dd66a(0xfd)],'source':_0x1b61e3[_0x4dd66a(0xe5)],'commandCount':_0x1b61e3[_0x4dd66a(0xf3)]['commands'][_0x4dd66a(0x11a)],'commands':_0x1b61e3[_0x4dd66a(0xf3)][_0x4dd66a(0xf8)][_0x4dd66a(0xe3)](_0x4ff78a=>({'path':_0x4ff78a[_0x4dd66a(0x115)],'description':_0x4ff78a[_0x4dd66a(0xed)],'risk':_0x4ff78a[_0x4dd66a(0xe1)],'target':toPublicServiceTreeTarget(_0x4ff78a['target']),'flags':_0x4ff78a['flags'][_0x4dd66a(0xe3)](_0x3a66d0=>({'name':_0x3a66d0['name'],'cliName':_0x3a66d0[_0x4dd66a(0xec)],'type':_0x3a66d0[_0x4dd66a(0x11e)],'required':_0x3a66d0[_0x4dd66a(0x10b)]===!![]}))}))};}function summarizeLoadedManifest(_0x349236){const _0x1bb998=a41_0x2f13ef;return{'service':_0x349236[_0x1bb998(0xf3)]?.[_0x1bb998(0x102)],'version':_0x349236[_0x1bb998(0xf3)]?.[_0x1bb998(0x104)],'commandCount':_0x349236[_0x1bb998(0xf3)]?.[_0x1bb998(0xf8)][_0x1bb998(0x11a)]??0x0,'commands':_0x349236[_0x1bb998(0xf3)]?.[_0x1bb998(0xf8)][_0x1bb998(0xe3)](_0x1236c3=>({'path':_0x1236c3[_0x1bb998(0x115)],'risk':_0x1236c3[_0x1bb998(0xe1)],'target':toPublicServiceTreeTarget(_0x1236c3[_0x1bb998(0x110)])}))??[],'registryIndex':_0x349236[_0x1bb998(0xe7)],'registryServiceCode':_0x349236[_0x1bb998(0xe8)],'errors':_0x349236[_0x1bb998(0xf0)][_0x1bb998(0x108)],'warnings':_0x349236[_0x1bb998(0xf0)][_0x1bb998(0x114)]};}export const serviceDefinitions=[{'service':a41_0x2f13ef(0x102),'command':a41_0x2f13ef(0xe9),'description':a41_0x2f13ef(0xf4),'risk':a41_0x2f13ef(0xef),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x473211){const _0x533808=a41_0x2f13ef,_0x48dc20=loadServiceManifestFromFile(_0x473211[_0x533808(0x10f)](_0x533808(0x118)));if(!_0x48dc20['report']['ok'])return{'ok':![],'data':{'file':_0x48dc20[_0x533808(0x10c)],'hash':_0x48dc20[_0x533808(0x116)],'kind':_0x48dc20[_0x533808(0x10a)],'serviceCount':_0x48dc20[_0x533808(0xe2)][_0x533808(0x11a)],'services':_0x48dc20[_0x533808(0xe2)][_0x533808(0xe3)](summarizeLoadedManifest),'errors':_0x48dc20[_0x533808(0xf0)][_0x533808(0x108)],'warnings':_0x48dc20[_0x533808(0xf0)][_0x533808(0x114)]},'message':formatValidationFailure(_0x48dc20[_0x533808(0xf0)])};if(_0x48dc20[_0x533808(0x10a)]===_0x533808(0xe6)||_0x48dc20[_0x533808(0xe2)][_0x533808(0x11a)]!==0x1)return{'ok':!![],'data':{'file':_0x48dc20[_0x533808(0x10c)],'hash':_0x48dc20[_0x533808(0x116)],'kind':_0x48dc20[_0x533808(0x10a)],'serviceCount':_0x48dc20[_0x533808(0xe2)][_0x533808(0x11a)],'commandCount':_0x48dc20[_0x533808(0xe2)][_0x533808(0xf2)]((_0x23ec1b,_0x2603b8)=>_0x23ec1b+(_0x2603b8[_0x533808(0xf3)]?.[_0x533808(0xf8)][_0x533808(0x11a)]??0x0),0x0),'services':_0x48dc20[_0x533808(0xe2)][_0x533808(0xe3)](summarizeLoadedManifest),'warnings':_0x48dc20[_0x533808(0xf0)][_0x533808(0x114)]},'message':_0x533808(0xff)};return{'ok':!![],'data':{'file':_0x48dc20[_0x533808(0x10c)],'hash':_0x48dc20[_0x533808(0x116)],'kind':_0x48dc20[_0x533808(0x10a)],'service':_0x48dc20[_0x533808(0xf3)]?.[_0x533808(0x102)],'version':_0x48dc20[_0x533808(0xf3)]?.[_0x533808(0x104)],'commandCount':_0x48dc20[_0x533808(0xf3)]?.[_0x533808(0xf8)][_0x533808(0x11a)]??0x0,'commands':_0x48dc20[_0x533808(0xf3)]?.[_0x533808(0xf8)]['map'](_0x4c40ae=>({'path':_0x4c40ae[_0x533808(0x115)],'risk':_0x4c40ae[_0x533808(0xe1)],'target':toPublicServiceTreeTarget(_0x4c40ae['target'])})),'warnings':_0x48dc20[_0x533808(0xf0)][_0x533808(0x114)]},'message':_0x533808(0xee)};}},{'service':a41_0x2f13ef(0x102),'command':a41_0x2f13ef(0xea),'description':a41_0x2f13ef(0x107),'risk':a41_0x2f13ef(0x113),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x380a4d){const _0x27a4b8=a41_0x2f13ef,_0x4cd0d0=loadServiceManifestFromFile(_0x380a4d[_0x27a4b8(0x10f)]('file'));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x4cd0d0['filePath'],'hash':_0x4cd0d0[_0x27a4b8(0x116)],'kind':_0x4cd0d0['kind'],'ok':_0x4cd0d0[_0x27a4b8(0xf0)]['ok'],'service':_0x4cd0d0[_0x27a4b8(0xf3)]?.[_0x27a4b8(0x102)],'version':_0x4cd0d0[_0x27a4b8(0xf3)]?.['version'],'serviceCount':_0x4cd0d0['manifests'][_0x27a4b8(0x11a)],'services':_0x4cd0d0[_0x27a4b8(0xe2)]['map'](_0x193242=>({'service':_0x193242[_0x27a4b8(0xf3)]?.[_0x27a4b8(0x102)],'version':_0x193242[_0x27a4b8(0xf3)]?.[_0x27a4b8(0x104)],'commandCount':_0x193242['normalizedManifest']?.['commands'][_0x27a4b8(0x11a)]??0x0,'errors':_0x193242[_0x27a4b8(0xf0)][_0x27a4b8(0x108)]})),'errors':_0x4cd0d0[_0x27a4b8(0xf0)][_0x27a4b8(0x108)],'commandCount':_0x4cd0d0[_0x27a4b8(0xf3)]?.[_0x27a4b8(0xf8)][_0x27a4b8(0x11a)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x1f66b3){const _0x2c204e=a41_0x2f13ef,_0x3916ac=importServiceManifest(_0x1f66b3[_0x2c204e(0x10f)](_0x2c204e(0x118)));if(_0x3916ac[_0x2c204e(0x10e)][_0x2c204e(0x11a)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x3916ac[_0x2c204e(0xdc)],'imported':_0x3916ac[_0x2c204e(0xf9)],'updated':_0x3916ac['updated'],'serviceCount':_0x3916ac[_0x2c204e(0x106)],'services':_0x3916ac[_0x2c204e(0x10e)][_0x2c204e(0xe3)](summarizeService)},'message':'Imported\x20'+_0x3916ac[_0x2c204e(0xf9)]+_0x2c204e(0x101)+_0x3916ac[_0x2c204e(0xe4)]+_0x2c204e(0xe0)};return{'ok':!![],'data':{'registryPath':_0x3916ac[_0x2c204e(0xdc)],'replaced':_0x3916ac['replaced'],'imported':_0x3916ac[_0x2c204e(0xf9)],'updated':_0x3916ac['updated'],'serviceCount':_0x3916ac[_0x2c204e(0x106)],'service':summarizeService(_0x3916ac[_0x2c204e(0xf7)])},'message':(_0x3916ac['replaced']?_0x2c204e(0x119):'Imported')+_0x2c204e(0xfc)+_0x3916ac['entry'][_0x2c204e(0x117)]+'.'};}},{'service':a41_0x2f13ef(0x102),'command':'export','description':a41_0x2f13ef(0x100),'risk':a41_0x2f13ef(0x113),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0xd2590d){const _0x192143=a41_0x2f13ef,_0x29c001=getLocalServiceEntry(_0xd2590d[_0x192143(0x10f)](_0x192143(0x102)));return{'method':_0x192143(0x11c),'url':_0xd2590d[_0x192143(0x10f)]('file'),'body':{'service':_0xd2590d[_0x192143(0x10f)]('service'),'found':Boolean(_0x29c001),'version':_0x29c001?.['version'],'source':_0x29c001?.[_0x192143(0xe5)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x1a8f31){const _0x4e45a7=a41_0x2f13ef,_0x191a5b=exportServiceManifest(_0x1a8f31[_0x4e45a7(0x10f)](_0x4e45a7(0x102)),_0x1a8f31[_0x4e45a7(0x10f)](_0x4e45a7(0x118)));return{'ok':!![],'data':{'registryPath':_0x191a5b['registryPath'],'file':_0x191a5b['filePath'],'service':summarizeService(_0x191a5b[_0x4e45a7(0xf7)])},'message':'Exported\x20service\x20'+_0x191a5b[_0x4e45a7(0xf7)][_0x4e45a7(0x117)]+'.'};}},{'service':a41_0x2f13ef(0x102),'command':'list','description':a41_0x2f13ef(0xdf),'risk':a41_0x2f13ef(0xef),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x30f303=a41_0x2f13ef,_0x55adef=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x55adef[_0x30f303(0x11a)],'services':_0x55adef[_0x30f303(0xe3)](summarizeService)}};}},{'service':'service','command':a41_0x2f13ef(0xde),'description':a41_0x2f13ef(0xdd),'risk':a41_0x2f13ef(0x113),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x859ec0){const _0x41107c=a41_0x2f13ef,_0x24793b=getLocalServiceEntry(_0x859ec0['str'](_0x41107c(0x102)));return{'method':_0x41107c(0x11c),'url':getServiceRegistryPath(),'body':{'service':_0x859ec0['str'](_0x41107c(0x102)),'found':Boolean(_0x24793b),'version':_0x24793b?.[_0x41107c(0x104)],'source':_0x24793b?.['source']},'description':_0x41107c(0xf1)};},async 'execute'(_0x3e4c76){const _0x5e80c6=a41_0x2f13ef,_0x1a5856=removeServiceManifest(_0x3e4c76[_0x5e80c6(0x10f)]('service'));return{'ok':!![],'data':{'registryPath':_0x1a5856[_0x5e80c6(0xdc)],'serviceCount':_0x1a5856[_0x5e80c6(0x106)],'service':summarizeService(_0x1a5856[_0x5e80c6(0xf7)])},'message':_0x5e80c6(0xfe)+_0x1a5856['entry'][_0x5e80c6(0x117)]+'.'};}},{'service':a41_0x2f13ef(0x102),'command':a41_0x2f13ef(0xf6),'description':a41_0x2f13ef(0x10d),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x477b7b){const _0x139ea5=a41_0x2f13ef,_0x223e2c=getLocalServiceEntry(_0x477b7b[_0x139ea5(0x10f)](_0x139ea5(0x102)));if(!_0x223e2c)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x477b7b['str']('service')},'message':'Local\x20service\x20not\x20found:\x20'+_0x477b7b[_0x139ea5(0x10f)](_0x139ea5(0x102))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x223e2c),'manifest':_0x223e2c['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x223e2c[_0x139ea5(0xf3)])}};}}];
@@ -1 +1 @@
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
+ const a42_0x14f98a=a42_0x115a;(function(_0x1676c1,_0x2ada09){const _0x3e0c95=a42_0x115a,_0x10bff7=_0x1676c1();while(!![]){try{const _0x2444b7=-parseInt(_0x3e0c95(0xe5))/0x1*(-parseInt(_0x3e0c95(0xb2))/0x2)+-parseInt(_0x3e0c95(0xe4))/0x3+-parseInt(_0x3e0c95(0xf0))/0x4+parseInt(_0x3e0c95(0xc4))/0x5+-parseInt(_0x3e0c95(0xb5))/0x6+parseInt(_0x3e0c95(0xdb))/0x7+parseInt(_0x3e0c95(0xbd))/0x8*(parseInt(_0x3e0c95(0xe7))/0x9);if(_0x2444b7===_0x2ada09)break;else _0x10bff7['push'](_0x10bff7['shift']());}catch(_0x4dbaf7){_0x10bff7['push'](_0x10bff7['shift']());}}}(a42_0x38d7,0xc92fe));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';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a42_0x14f98a(0xd7);export function getServiceRegistryPath(_0x4ffc2f={}){const _0x59ca84=a42_0x14f98a;return resolve(_0x4ffc2f[_0x59ca84(0xca)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x3dc6b0={}){const _0x195e2d=a42_0x14f98a,_0x16e7d6=getServiceRegistryPath(_0x3dc6b0);if(!existsSync(_0x16e7d6))return emptyServiceRegistry();try{const _0x578693=readFileSync(_0x16e7d6,'utf8');if(!_0x578693[_0x195e2d(0xda)]())return emptyServiceRegistry();const _0x325e40=JSON['parse'](_0x578693);if(_0x325e40[_0x195e2d(0xf6)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x195e2d(0xd0)+String(_0x325e40[_0x195e2d(0xf6)]),'Remove\x20or\x20migrate\x20'+_0x16e7d6+'.');if(!Array[_0x195e2d(0xc9)](_0x325e40['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x325e40[_0x195e2d(0xba)],'services':_0x325e40[_0x195e2d(0xd6)]};}catch(_0x455a81){if(_0x455a81 instanceof Error&&_0x455a81[_0x195e2d(0xf7)]==='CliError')throw _0x455a81;throw CliErrors['validation'](_0x195e2d(0xf1)+_0x16e7d6,_0x195e2d(0xde));}}export function writeServiceRegistry(_0x22ca30,_0x2b6c78={}){const _0x13557e=a42_0x14f98a,_0x5dd5ba=getServiceRegistryPath(_0x2b6c78),_0x33cb8d=dirname(_0x5dd5ba);!existsSync(_0x33cb8d)&&mkdirSync(_0x33cb8d,{'recursive':!![]});const _0x4e72e4=_0x5dd5ba+_0x13557e(0xd9);try{writeFileSync(_0x4e72e4,JSON[_0x13557e(0xbb)](_0x22ca30,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x4e72e4,_0x5dd5ba);}catch(_0x9f7dfd){try{unlinkSync(_0x4e72e4);}catch{}if(_0x9f7dfd?.[_0x13557e(0xb1)]==='ENOENT')throw CliErrors['validation'](_0x13557e(0xc2)+_0x5dd5ba);throw _0x9f7dfd;}return _0x5dd5ba;}export function loadServiceManifestFromFile(_0x18bfab){const _0x1ab3ab=a42_0x14f98a,_0x1eaa42=resolve(_0x18bfab);if(!existsSync(_0x1eaa42))throw CliErrors[_0x1ab3ab(0xdf)](_0x1ab3ab(0xef)+_0x18bfab);let _0x5b2eb2;const _0x17e619=readFileSync(_0x1eaa42,_0x1ab3ab(0xe0));try{_0x5b2eb2=JSON[_0x1ab3ab(0xec)](_0x17e619);}catch{throw CliErrors[_0x1ab3ab(0xdf)]('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x18bfab,_0x1ab3ab(0xeb));}const _0x64eb13=sha256(_0x17e619),_0x5e8799=extractLoadedServiceManifests(_0x5b2eb2,_0x64eb13),_0x39f3a6=aggregateValidationReports(_0x5e8799),_0x3c6a6b=_0x5e8799[0x0];return{'filePath':_0x1eaa42,'hash':_0x64eb13,'kind':isServiceRegistryLike(_0x5b2eb2)?'registry':_0x1ab3ab(0xb4),'manifest':_0x3c6a6b?.[_0x1ab3ab(0xb4)]??_0x5b2eb2,'report':_0x39f3a6,'normalizedManifest':_0x5e8799[_0x1ab3ab(0xcc)]===0x1?_0x3c6a6b?.[_0x1ab3ab(0xce)]:undefined,'manifests':_0x5e8799};}export function importServiceManifest(_0x49fc9a,_0x1c6203={}){const _0x5821fd=a42_0x14f98a,_0x21ae4f=loadServiceManifestFromFile(_0x49fc9a);if(!_0x21ae4f[_0x5821fd(0xac)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x21ae4f[_0x5821fd(0xac)]),_0x5821fd(0xd1));if(_0x21ae4f[_0x5821fd(0xb8)][_0x5821fd(0xcc)]===0x0)throw CliErrors['validation'](_0x5821fd(0xcf),_0x5821fd(0xc7));const _0x3a89ee=readServiceRegistry(_0x1c6203),_0x331cdd=(_0x1c6203[_0x5821fd(0xf5)]??(()=>new Date()))()['toISOString'](),_0x167b5f=[];let _0x4feed9=0x0,_0x3f8868=0x0;for(const _0x499738 of _0x21ae4f['manifests']){if(!_0x499738['normalizedManifest'])continue;const _0x249795=_0x499738[_0x5821fd(0xce)][_0x5821fd(0xe3)]['code'],_0x2aa873={'serviceCode':_0x249795,'version':_0x499738[_0x5821fd(0xce)]['version'],'importedAt':_0x331cdd,'source':{'type':_0x5821fd(0xe1),'path':_0x21ae4f['filePath'],'hash':_0x499738[_0x5821fd(0xb3)]},'manifest':_0x499738[_0x5821fd(0xb4)],'normalizedManifest':_0x499738['normalizedManifest']},_0x1d632c=_0x3a89ee['services'][_0x5821fd(0xea)](_0x23fdbf=>_0x23fdbf['serviceCode']===_0x249795);_0x1d632c>=0x0?(_0x3a89ee[_0x5821fd(0xd6)][_0x1d632c]=_0x2aa873,_0x3f8868++):(_0x3a89ee[_0x5821fd(0xd6)][_0x5821fd(0xb9)](_0x2aa873),_0x4feed9++),_0x167b5f[_0x5821fd(0xb9)](_0x2aa873);}_0x3a89ee[_0x5821fd(0xd6)]['sort']((_0x6a02a,_0x288d10)=>_0x6a02a['serviceCode']['localeCompare'](_0x288d10['serviceCode'])),_0x3a89ee[_0x5821fd(0xba)]=_0x331cdd;const _0x2c126a=writeServiceRegistry(_0x3a89ee,_0x1c6203);return{'registryPath':_0x2c126a,'entry':_0x167b5f[0x0],'replaced':_0x167b5f['length']===0x1?_0x3f8868===0x1:_0x3f8868>0x0,'entries':_0x167b5f,'imported':_0x4feed9,'updated':_0x3f8868,'serviceCount':_0x3a89ee['services'][_0x5821fd(0xcc)]};}export function exportServiceManifest(_0x562ab8,_0x5261ac,_0x57eca7={}){const _0x37cf5c=a42_0x14f98a,_0x4f7906=getServiceRegistryPath(_0x57eca7),_0x4f96ac=getLocalServiceEntry(_0x562ab8,_0x57eca7);if(!_0x4f96ac)throw CliErrors['validation'](_0x37cf5c(0xf3)+_0x562ab8,_0x37cf5c(0xb7));const _0x383106=resolve(_0x5261ac),_0x5d04e8=dirname(_0x383106);return!existsSync(_0x5d04e8)&&mkdirSync(_0x5d04e8,{'recursive':!![]}),writeFileSync(_0x383106,JSON['stringify'](_0x4f96ac[_0x37cf5c(0xb4)],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x4f7906,'filePath':_0x383106,'entry':_0x4f96ac};}export function removeServiceManifest(_0x25ffa9,_0x24254c={}){const _0x21301f=a42_0x14f98a,_0x224d52=readServiceRegistry(_0x24254c),_0x166b9f=_0x25ffa9[_0x21301f(0xda)](),_0x5e718c=_0x224d52['services'][_0x21301f(0xea)](_0x4e9924=>_0x4e9924['serviceCode']===_0x166b9f);if(_0x5e718c<0x0)throw CliErrors[_0x21301f(0xdf)](_0x21301f(0xf3)+_0x166b9f,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x3bd59c]=_0x224d52[_0x21301f(0xd6)]['splice'](_0x5e718c,0x1),_0x2f6a78=(_0x24254c['now']??(()=>new Date()))()['toISOString']();_0x224d52[_0x21301f(0xba)]=_0x2f6a78;const _0x51419d=writeServiceRegistry(_0x224d52,_0x24254c);return{'registryPath':_0x51419d,'entry':_0x3bd59c,'serviceCount':_0x224d52[_0x21301f(0xd6)][_0x21301f(0xcc)]};}export function listLocalServices(_0x4aa523={}){const _0x56ebb5=a42_0x14f98a;return readServiceRegistry(_0x4aa523)[_0x56ebb5(0xd6)];}export function getLocalServiceEntry(_0x4758d7,_0x4fe42e={}){const _0x33028c=a42_0x14f98a;return readServiceRegistry(_0x4fe42e)[_0x33028c(0xd6)]['find'](_0x1e7b0c=>_0x1e7b0c[_0x33028c(0xed)]===_0x4758d7[_0x33028c(0xda)]());}export function listLocalServiceTrees(_0x1888d1={}){const _0x5313c1=a42_0x14f98a;return readServiceRegistry(_0x1888d1)['services'][_0x5313c1(0xe6)](_0x1f3d04=>_0x1f3d04[_0x5313c1(0xce)]);}export function inspectServiceRegistry(_0x4be558={}){const _0x3ad03e=a42_0x14f98a,_0x4ecaf3=getServiceRegistryPath(_0x4be558);if(!existsSync(_0x4ecaf3))return emptyServiceRegistryInspection(_0x4ecaf3,_0x3ad03e(0xc5),![]);try{const _0x19252d=readFileSync(_0x4ecaf3,_0x3ad03e(0xe0));if(!_0x19252d[_0x3ad03e(0xda)]())return emptyServiceRegistryInspection(_0x4ecaf3,_0x3ad03e(0xdc),!![]);const _0x3387bc=JSON[_0x3ad03e(0xec)](_0x19252d);if(_0x3387bc[_0x3ad03e(0xf6)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x4ecaf3,'invalid',!![]),'schemaVersion':_0x3387bc['schemaVersion'],'message':_0x3ad03e(0xc1)+String(_0x3387bc['schemaVersion'])};if(!Array[_0x3ad03e(0xc9)](_0x3387bc[_0x3ad03e(0xd6)]))return{...emptyServiceRegistryInspection(_0x4ecaf3,_0x3ad03e(0xc0),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3387bc['updatedAt'],'message':'services\x20must\x20be\x20an\x20array'};const _0x1aa647=_0x3387bc[_0x3ad03e(0xd6)][_0x3ad03e(0xe6)](summarizeLocalServiceEntry);return{'registryPath':_0x4ecaf3,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3387bc[_0x3ad03e(0xba)],'serviceCount':_0x1aa647[_0x3ad03e(0xcc)],'commandCount':_0x1aa647[_0x3ad03e(0xd2)]((_0xa30e2f,_0x2d250e)=>_0xa30e2f+_0x2d250e[_0x3ad03e(0xb0)],0x0),'services':_0x1aa647};}catch(_0x83e87b){return{...emptyServiceRegistryInspection(_0x4ecaf3,_0x3ad03e(0xc0),!![]),'message':_0x83e87b instanceof Error?_0x83e87b['message']:String(_0x83e87b)};}}export function formatValidationFailure(_0x9b77d0){const _0x3a8f68=a42_0x14f98a,_0x60433c=_0x9b77d0[_0x3a8f68(0xe8)]['map'](_0x2698d0=>_0x2698d0[_0x3a8f68(0xe9)]+':\x20'+_0x2698d0[_0x3a8f68(0xb6)]);return _0x3a8f68(0xf4)+_0x60433c[_0x3a8f68(0xd4)]('\x0a');}function extractLoadedServiceManifests(_0x1c0d00,_0xef4567){const _0x4d9302=a42_0x14f98a;if(!isServiceRegistryLike(_0x1c0d00)){const _0x3cf306=_0x1c0d00,{manifest:_0x277899,errors:_0x516b4f}=adaptServiceTreeManifestForLegacyFramework(_0x3cf306),_0x185fcd=validateServiceTreeManifest(_0x277899),_0x33983e=mergeValidationErrors(_0x185fcd,_0x516b4f);return[{'manifest':_0x3cf306,'report':_0x33983e,'normalizedManifest':_0x33983e['ok']?normalizeServiceTreeManifest(_0x277899):undefined,'sourceHash':_0xef4567}];}return _0x1c0d00['services'][_0x4d9302(0xe6)]((_0x418b2e,_0xe3a6bf)=>{const _0x9b310b=_0x4d9302,_0x1a6560=isObjectRecord(_0x418b2e)?_0x418b2e[_0x9b310b(0xb4)]:undefined,{manifest:_0x2b7e62,errors:_0x5b713b}=adaptServiceTreeManifestForLegacyFramework(_0x1a6560),_0x41227c=validateServiceTreeManifest(_0x2b7e62),_0x55815f=mergeValidationErrors(_0x41227c,_0x5b713b),_0x3baf00=isObjectRecord(_0x418b2e)&&typeof _0x418b2e['serviceCode']===_0x9b310b(0xee)?_0x418b2e['serviceCode']:undefined;return{'manifest':_0x1a6560,'report':_0x55815f,'normalizedManifest':_0x55815f['ok']?normalizeServiceTreeManifest(_0x2b7e62):undefined,'sourceHash':sha256(JSON[_0x9b310b(0xbb)](_0x1a6560,null,0x2)+'\x0a'),'registryIndex':_0xe3a6bf,'registryServiceCode':_0x3baf00};});}function mergeValidationErrors(_0x95ff19,_0x2492e5){const _0x289038=a42_0x14f98a,_0x3f3f8e=_0x95ff19[_0x289038(0xe8)]['map'](_0x72cb52=>_0x72cb52[_0x289038(0xb6)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x72cb52,'message':_0x289038(0xcb)}:_0x72cb52),_0x1f51b1=[..._0x2492e5,..._0x3f3f8e];return{'ok':_0x1f51b1['length']===0x0,'errors':_0x1f51b1,'warnings':_0x95ff19[_0x289038(0xaf)]};}function a42_0x115a(_0x4e4187,_0x3bec70){_0x4e4187=_0x4e4187-0xac;const _0x38d765=a42_0x38d7();let _0x115a8c=_0x38d765[_0x4e4187];return _0x115a8c;}function aggregateValidationReports(_0x2569f0){const _0x1d7e5f=a42_0x14f98a,_0x376358=_0x2569f0['flatMap'](_0xe2e7dd=>_0xe2e7dd[_0x1d7e5f(0xc8)]===undefined?_0xe2e7dd[_0x1d7e5f(0xac)]['errors']:_0xe2e7dd['report']['errors']['map'](_0x3b91fd=>({..._0x3b91fd,'path':prefixRegistryIssuePath(_0xe2e7dd[_0x1d7e5f(0xc8)],_0x3b91fd[_0x1d7e5f(0xe9)])}))),_0x38cea0=_0x2569f0['flatMap'](_0x43e36d=>_0x43e36d[_0x1d7e5f(0xc8)]===undefined?_0x43e36d['report'][_0x1d7e5f(0xaf)]:_0x43e36d[_0x1d7e5f(0xac)][_0x1d7e5f(0xaf)][_0x1d7e5f(0xe6)](_0x1c6584=>({..._0x1c6584,'path':prefixRegistryIssuePath(_0x43e36d['registryIndex'],_0x1c6584[_0x1d7e5f(0xe9)])})));return{'ok':_0x376358['length']===0x0,'errors':_0x376358,'warnings':_0x38cea0};}function prefixRegistryIssuePath(_0xb771b2,_0x5021ff){const _0xb438de=a42_0x14f98a;if(_0x5021ff==='$')return _0xb438de(0xd5)+_0xb771b2+_0xb438de(0xad);if(_0x5021ff['startsWith']('$.'))return _0xb438de(0xd5)+_0xb771b2+'].manifest'+_0x5021ff[_0xb438de(0xc3)](0x1);if(_0x5021ff[_0xb438de(0xf2)]('$['))return _0xb438de(0xd5)+_0xb771b2+_0xb438de(0xad)+_0x5021ff[_0xb438de(0xc3)](0x1);return _0xb438de(0xd5)+_0xb771b2+_0xb438de(0xe2)+_0x5021ff;}function isServiceRegistryLike(_0x1232b6){const _0x31938a=a42_0x14f98a;return isObjectRecord(_0x1232b6)&&_0x1232b6[_0x31938a(0xf6)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x31938a(0xc9)](_0x1232b6['services']);}function a42_0x38d7(){const _0x16da23=['.tmp','trim','4105192PlumQe','empty','target','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','validation','utf8','file','].manifest.','service','3939819vJwkZW','2824ZoVCtU','map','9051102OvQthY','errors','path','findIndex','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','parse','serviceCode','string','Service\x20manifest\x20file\x20not\x20found:\x20','2060796kujPly','Invalid\x20service\x20registry\x20JSON:\x20','startsWith','Local\x20service\x20not\x20found:\x20','Service\x20manifest\x20validation\x20failed:\x0a','now','schemaVersion','name','report','].manifest','source','warnings','commandCount','code','912Eogshc','sourceHash','manifest','1501218SYdoUd','message','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','manifests','push','updatedAt','stringify','risk','8EwEpdo','sha256','object','invalid','Unsupported\x20schemaVersion:\x20','Cannot\x20write\x20service\x20registry:\x20','slice','114295ycbVHf','missing','command','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','registryIndex','isArray','homeDir','bff\x20target\x20requires\x20functionName.','length','version','normalizedManifest','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','Unsupported\x20service\x20registry\x20schemaVersion:\x20','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','reduce','importedAt','join','$.services[','services','service.json','cliPath'];a42_0x38d7=function(){return _0x16da23;};return a42_0x38d7();}function isObjectRecord(_0x37b7d3){const _0x456471=a42_0x14f98a;return Boolean(_0x37b7d3)&&typeof _0x37b7d3===_0x456471(0xbf)&&!Array[_0x456471(0xc9)](_0x37b7d3);}function emptyServiceRegistryInspection(_0x733e13,_0x1eb9dc,_0x1045d2){return{'registryPath':_0x733e13,'exists':_0x1045d2,'status':_0x1eb9dc,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x10ad44){const _0x4263ec=a42_0x14f98a,_0x39b3d3=_0x10ad44['normalizedManifest'],_0x12de14=_0x39b3d3['commands'][_0x4263ec(0xe6)](_0x24e4b2=>({'path':_0x24e4b2[_0x4263ec(0xd8)],'description':_0x24e4b2['description'],'risk':_0x24e4b2[_0x4263ec(0xbc)],'targetKind':_0x24e4b2[_0x4263ec(0xdd)]['kind'],'targetCommand':_0x24e4b2[_0x4263ec(0xdd)][_0x4263ec(0xc6)]}));return{'serviceCode':_0x10ad44[_0x4263ec(0xed)],'name':_0x39b3d3[_0x4263ec(0xe3)][_0x4263ec(0xf7)],'description':_0x39b3d3['service']['description'],'version':_0x10ad44[_0x4263ec(0xcd)],'importedAt':_0x10ad44[_0x4263ec(0xd3)],'source':_0x10ad44[_0x4263ec(0xae)],'commandCount':_0x12de14[_0x4263ec(0xcc)],'commands':_0x12de14};}function sha256(_0x17101b){const _0x4cbbd5=a42_0x14f98a;return createHash(_0x4cbbd5(0xbe))['update'](_0x17101b)['digest']('hex');}
@@ -1 +1 @@
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
+ const a43_0x52e2bd=a43_0x57eb;(function(_0x28b199,_0x36d144){const _0x380b07=a43_0x57eb,_0x280872=_0x28b199();while(!![]){try{const _0x188170=parseInt(_0x380b07(0x1b1))/0x1+parseInt(_0x380b07(0x1be))/0x2+parseInt(_0x380b07(0x1b0))/0x3+-parseInt(_0x380b07(0x1a5))/0x4*(-parseInt(_0x380b07(0x1af))/0x5)+parseInt(_0x380b07(0x1ae))/0x6*(-parseInt(_0x380b07(0x1b7))/0x7)+parseInt(_0x380b07(0x1b2))/0x8*(-parseInt(_0x380b07(0x1a8))/0x9)+-parseInt(_0x380b07(0x19d))/0xa*(parseInt(_0x380b07(0x1b8))/0xb);if(_0x188170===_0x36d144)break;else _0x280872['push'](_0x280872['shift']());}catch(_0x51efe3){_0x280872['push'](_0x280872['shift']());}}}(a43_0x2a03,0x1efd2));function a43_0x2a03(){const _0x5bc482=['type','Refusing\x20to\x20overwrite\x20symlink:\x20','12348CrCrId','skillName','validation','isSymbolicLink','trim','map','78PEzokz','50lRofJN','246642IYZhWR','41854AAcacB','416cMksRr','WRITE','isDirectory','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','skillDir','87409GJUaLp','1595xWukBz','write','target','Created\x20local\x20Skill\x20draft\x20','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','path','854vbwNBs','str','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','220hUmiXS','rendered','Skill\x20directory\x20already\x20exists:\x20','skill','bool','force','files','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','95720uFYBsT'];a43_0x2a03=function(){return _0x5bc482;};return a43_0x2a03();}import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';function a43_0x57eb(_0x2f8900,_0x4f418c){_0x2f8900=_0x2f8900-0x19d;const _0x2a03e6=a43_0x2a03();let _0x57eb51=_0x2a03e6[_0x2f8900];return _0x57eb51;}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_0x52e2bd(0x1a0),'command':'create','description':a43_0x52e2bd(0x1a4),'risk':a43_0x52e2bd(0x1b9),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x3aee07){const _0x1b9612=a43_0x52e2bd,_0x45b4cb=buildSkillCreatePlan(_0x3aee07[_0x1b9612(0x1bf)]('name'),_0x3aee07[_0x1b9612(0x1bf)]('type'),_0x3aee07[_0x1b9612(0x1bf)](_0x1b9612(0x1ba)));return{'method':_0x1b9612(0x1b3),'url':_0x45b4cb['skillDir'],'body':{'skillName':_0x45b4cb[_0x1b9612(0x19e)][_0x1b9612(0x1a9)],'type':_0x45b4cb[_0x1b9612(0x19e)]['type'],'selfContained':!![],'files':_0x45b4cb[_0x1b9612(0x19e)][_0x1b9612(0x1a3)][_0x1b9612(0x1ad)](_0x5c75f4=>_0x5c75f4[_0x1b9612(0x1bd)])},'description':_0x1b9612(0x1b5)};},async 'execute'(_0x4a0b17){const _0x131798=a43_0x52e2bd,_0x4a484d=buildSkillCreatePlan(_0x4a0b17['str']('name'),_0x4a0b17['str'](_0x131798(0x1a6)),_0x4a0b17[_0x131798(0x1bf)]('target'));return writeSkillDraft(_0x4a484d,_0x4a0b17[_0x131798(0x1a1)](_0x131798(0x1a2))),{'ok':!![],'data':{'skillName':_0x4a484d[_0x131798(0x19e)][_0x131798(0x1a9)],'type':_0x4a484d[_0x131798(0x19e)][_0x131798(0x1a6)],'dir':_0x4a484d[_0x131798(0x1b6)],'files':_0x4a484d[_0x131798(0x19e)][_0x131798(0x1a3)][_0x131798(0x1ad)](_0x37cd59=>_0x37cd59[_0x131798(0x1bd)])},'message':_0x131798(0x1bb)+_0x4a484d[_0x131798(0x19e)][_0x131798(0x1a9)]};}};function buildSkillCreatePlan(_0x488459,_0x1af805,_0x3a1fdc){const _0x2761f5=a43_0x52e2bd,_0x1560bd=_0x1af805[_0x2761f5(0x1ac)](),_0x3fc182=renderSkillTemplate({'skillName':_0x488459,'type':_0x1560bd});!_0x1560bd&&writeCliSideChannelLine('Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.');const _0x29db39=resolve(normalizeSkillTarget(_0x3a1fdc));return{'rendered':_0x3fc182,'targetRoot':_0x29db39,'skillDir':resolve(_0x29db39,_0x3fc182[_0x2761f5(0x1a9)])};}function normalizeSkillTarget(_0x5b1922){return(_0x5b1922||DEFAULT_SKILL_TARGET)['trim']()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x86ef6d,_0x3e603d){const _0x2417f9=a43_0x52e2bd;if(existsSync(_0x86ef6d['skillDir'])){const _0x5c57f5=lstatSync(_0x86ef6d[_0x2417f9(0x1b6)]);if(!_0x5c57f5[_0x2417f9(0x1b4)]()||_0x5c57f5[_0x2417f9(0x1ab)]())throw CliErrors['validation'](_0x2417f9(0x1c0)+_0x86ef6d['skillDir']);if(!_0x3e603d)throw CliErrors[_0x2417f9(0x1aa)](_0x2417f9(0x19f)+_0x86ef6d[_0x2417f9(0x1b6)],_0x2417f9(0x1bc));}for(const _0x5ac9d4 of _0x86ef6d[_0x2417f9(0x19e)][_0x2417f9(0x1a3)]){const _0x4691d4=resolve(_0x86ef6d[_0x2417f9(0x1b6)],_0x5ac9d4['path']),_0x1905ae=dirname(_0x4691d4);mkdirSync(_0x1905ae,{'recursive':!![]});if(existsSync(_0x4691d4)&&lstatSync(_0x4691d4)[_0x2417f9(0x1ab)]())throw CliErrors['validation'](_0x2417f9(0x1a7)+_0x4691d4);writeFileSync(_0x4691d4,_0x5ac9d4['content'],'utf8');}}
@@ -0,0 +1,4 @@
1
+ import type { CommandDefinition } from "../../../framework/types.js";
2
+ export declare const diagramValidateCommand: CommandDefinition;
3
+ export declare const diagramPushCommand: CommandDefinition;
4
+ export declare const diagramShowCommand: CommandDefinition;
@@ -0,0 +1 @@
1
+ const a44_0x22860e=a44_0x1020;(function(_0x227c8e,_0x36e5c8){const _0x446a6c=a44_0x1020,_0x2d4839=_0x227c8e();while(!![]){try{const _0x12b5b4=parseInt(_0x446a6c(0xed))/0x1*(parseInt(_0x446a6c(0xef))/0x2)+-parseInt(_0x446a6c(0xfb))/0x3*(parseInt(_0x446a6c(0xfc))/0x4)+-parseInt(_0x446a6c(0xd4))/0x5+-parseInt(_0x446a6c(0xeb))/0x6+-parseInt(_0x446a6c(0xe7))/0x7*(-parseInt(_0x446a6c(0xf0))/0x8)+-parseInt(_0x446a6c(0xf9))/0x9+parseInt(_0x446a6c(0xf2))/0xa;if(_0x12b5b4===_0x36e5c8)break;else _0x2d4839['push'](_0x2d4839['shift']());}catch(_0x10beaf){_0x2d4839['push'](_0x2d4839['shift']());}}}(a44_0x1e4c,0xf0253));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';import{readRequiredSkillDiagram}from'../diagram.js';import{DIAGRAM_FILE_FLAG,DIAGRAM_SCOPE_FLAG,DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,SOURCE_FINGERPRINT_FLAG}from'../flags.js';const TARGET_FLAGS=[DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,DIAGRAM_SCOPE_FLAG],WRITE_FLAGS=[...TARGET_FLAGS,SOURCE_FINGERPRINT_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,DIAGRAM_FILE_FLAG];function readDiagramTarget(_0x39973a){const _0xf489be=a44_0x1020,_0xeb9418=_0x39973a[_0xf489be(0xf6)](_0xf489be(0xe6))['trim'](),_0x942d9e=_0x39973a['str'](_0xf489be(0xe9))[_0xf489be(0xcf)](),_0x4f4d2e=_0x39973a[_0xf489be(0xf6)](_0xf489be(0xd5));if(!_0xeb9418||!_0x942d9e||_0x4f4d2e!==_0xf489be(0xd6)&&_0x4f4d2e!==_0xf489be(0xfa))throw CliErrors['validation']('--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.');return{'skillCode':_0xeb9418,'version':_0x942d9e,'scope':_0x4f4d2e};}function a44_0x1020(_0x2c1e83,_0x25d665){_0x2c1e83=_0x2c1e83-0xcf;const _0x1e4c0b=a44_0x1e4c();let _0x10206d=_0x1e4c0b[_0x2c1e83];return _0x10206d;}function a44_0x1e4c(){const _0x1cf070=['found','read','Skill\x20diagram\x20for\x20','8915950LdDoBh','scope','personal','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','unchanged','test','skillCode','diagram-validate','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','Created','source-fingerprint',';\x20first\x20write\x20expects\x20revision\x20','num','appCode',';\x20next\x20write\x20expects\x20revision\x20','expectedDiagramRevision','diagram-push','diagram-show','skill-code','13958LAxVop','validation','version','action','8945562SQqqvE','isInteger','14mYFawV','write','273338fOsHOq','7688VPCLmH','created','36054730LffLcO','Found\x20Skill\x20diagram\x20for\x20','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','skill','str','Updated','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','11879316HLmROd','company','2859DkFNob','7796mwBgGa','trim','expected-diagram-revision'];a44_0x1e4c=function(){return _0x1cf070;};return a44_0x1e4c();}async function readDiagramWriteInput(_0x219c72){const _0x14d1e5=a44_0x1020,_0x46ddc8=_0x219c72[_0x14d1e5(0xe0)](_0x14d1e5(0xd0)),_0x2fbaf4=_0x219c72[_0x14d1e5(0xf6)](_0x14d1e5(0xde))[_0x14d1e5(0xcf)]();if(!Number[_0x14d1e5(0xec)](_0x46ddc8)||_0x46ddc8<0x0)throw CliErrors[_0x14d1e5(0xe8)]('--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.');if(!/^sha256:[0-9a-f]{64}$/[_0x14d1e5(0xd9)](_0x2fbaf4))throw CliErrors[_0x14d1e5(0xe8)](_0x14d1e5(0xdc));return{'expectedDiagramRevision':_0x46ddc8,'sourceFingerprint':_0x2fbaf4,'diagram':await readRequiredSkillDiagram(_0x219c72['str']('diagram-file'))};}export const diagramValidateCommand={'service':a44_0x22860e(0xf5),'command':a44_0x22860e(0xdb),'description':a44_0x22860e(0xd7),'risk':'read','flags':WRITE_FLAGS,async 'execute'(_0x2a83fc){const _0x21014a=a44_0x22860e,_0x1042d4=readDiagramTarget(_0x2a83fc),_0x29f62a=await validateRuntimeSkillVersionDiagram(_0x2a83fc[_0x21014a(0xe1)],_0x1042d4[_0x21014a(0xda)],_0x1042d4['version'],_0x1042d4['scope'],await readDiagramWriteInput(_0x2a83fc));return{'ok':!![],'data':_0x29f62a,'message':'Skill\x20diagram\x20validation\x20passed\x20for\x20'+_0x1042d4[_0x21014a(0xda)]+'@'+_0x1042d4[_0x21014a(0xe9)]+'.'};}};export const diagramPushCommand={'service':'skill','command':a44_0x22860e(0xe4),'description':'Create\x20or\x20replace\x20the\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','risk':a44_0x22860e(0xee),'flags':WRITE_FLAGS,async 'execute'(_0x10e1c4){const _0x5901d6=a44_0x22860e,_0x868450=readDiagramTarget(_0x10e1c4),_0x3a0500=await putRuntimeSkillVersionDiagram(_0x10e1c4['appCode'],_0x868450[_0x5901d6(0xda)],_0x868450[_0x5901d6(0xe9)],_0x868450['scope'],await readDiagramWriteInput(_0x10e1c4));return{'ok':!![],'data':_0x3a0500,'message':_0x3a0500['action']===_0x5901d6(0xd8)?_0x5901d6(0xd3)+_0x868450[_0x5901d6(0xda)]+'@'+_0x868450['version']+'\x20is\x20unchanged.':(_0x3a0500[_0x5901d6(0xea)]===_0x5901d6(0xf1)?_0x5901d6(0xdd):_0x5901d6(0xf7))+'\x20Skill\x20diagram\x20for\x20'+_0x868450['skillCode']+'@'+_0x868450[_0x5901d6(0xe9)]+'.'};}};export const diagramShowCommand={'service':a44_0x22860e(0xf5),'command':a44_0x22860e(0xe5),'description':a44_0x22860e(0xf4),'risk':a44_0x22860e(0xd2),'flags':TARGET_FLAGS,async 'execute'(_0x2cc834){const _0x147593=a44_0x22860e,_0xf4b413=readDiagramTarget(_0x2cc834),_0x1737fd=await getRuntimeSkillVersionDiagram(_0x2cc834[_0x147593(0xe1)],_0xf4b413[_0x147593(0xda)],_0xf4b413[_0x147593(0xe9)],_0xf4b413['scope']);return{'ok':!![],'data':_0x1737fd,'message':_0x1737fd[_0x147593(0xd1)]?_0x147593(0xf3)+_0xf4b413[_0x147593(0xda)]+'@'+_0xf4b413[_0x147593(0xe9)]+_0x147593(0xe2)+_0x1737fd[_0x147593(0xe3)]+'.':_0x147593(0xf8)+_0xf4b413[_0x147593(0xda)]+'@'+_0xf4b413[_0x147593(0xe9)]+_0x147593(0xdf)+_0x1737fd[_0x147593(0xe3)]+'.'};}};
@@ -1 +1 @@
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
+ const a45_0x207e10=a45_0x2b7c;(function(_0x539ccb,_0x33dcb2){const _0x32dcc4=a45_0x2b7c,_0x91c3b8=_0x539ccb();while(!![]){try{const _0x1a6a7d=parseInt(_0x32dcc4(0x139))/0x1*(-parseInt(_0x32dcc4(0x129))/0x2)+-parseInt(_0x32dcc4(0x134))/0x3*(parseInt(_0x32dcc4(0x10d))/0x4)+parseInt(_0x32dcc4(0x12b))/0x5*(parseInt(_0x32dcc4(0x12e))/0x6)+parseInt(_0x32dcc4(0x10c))/0x7+-parseInt(_0x32dcc4(0x110))/0x8*(-parseInt(_0x32dcc4(0x123))/0x9)+-parseInt(_0x32dcc4(0x113))/0xa*(parseInt(_0x32dcc4(0x119))/0xb)+-parseInt(_0x32dcc4(0x132))/0xc*(parseInt(_0x32dcc4(0x135))/0xd);if(_0x1a6a7d===_0x33dcb2)break;else _0x91c3b8['push'](_0x91c3b8['shift']());}catch(_0x521f1d){_0x91c3b8['push'](_0x91c3b8['shift']());}}}(a45_0x3544,0xe9eb7));import{CliErrors}from'../../../errors.js';function a45_0x2b7c(_0x3b9c48,_0x588d82){_0x3b9c48=_0x3b9c48-0x10c;const _0x354438=a45_0x3544();let _0x2b7c8e=_0x354438[_0x3b9c48];return _0x2b7c8e;}import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';function a45_0x3544(){const _0x45115e=['push','444CORXdB','../../../skills/runtime-skill-sync.js','23631MINAlX','420953nszZKO','filter','install','skillRoots','359EnPBtt','envName','4008389ktdQms','212Sjwtvs','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','skillCode','877328WAMEJO','action','flatMap','10XcitQZ','str','skipped','all','trim','map','6286621wRpBlt','scope','bool','removed','appCode','updated','reduce','unchanged','company','\x20personal\x20and\x20','81PLyGgY','personal','length','version','authRequired','write','426zDAcfP','\x20company\x20Skill(s).','50oZiVgC','skill','includes','997242OwhZpP','project','production'];a45_0x3544=function(){return _0x45115e;};return a45_0x3544();}import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':a45_0x207e10(0x12c),'command':a45_0x207e10(0x137),'description':'Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','risk':a45_0x207e10(0x128),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x3d5c8d){return syncRuntimeSkills(_0x3d5c8d);}};async function syncRuntimeSkills(_0x1a029e){const _0x21b969=a45_0x207e10,{downloadRuntimeSkillPackage:_0x3abe80,listRuntimeSkills:_0x442dc2}=await import('../../../core/api-client.js'),{linkEffectiveRuntimeSkills:_0x52387d,materializeRuntimeSkill:_0x1447ab,pruneStaleRuntimeSkillCache:_0x3144bd,pruneStaleRuntimeSkillLinks:_0xeaed6d,resolveRuntimeSkillInstallTarget:_0x1185ef}=await import(_0x21b969(0x133)),_0x333ac7=_0x1a029e[_0x21b969(0x114)]('code'),_0xad459b=normalizeSyncScopes(_0x1a029e[_0x21b969(0x114)](_0x21b969(0x11a))),_0x17f4e6=_0x1a029e[_0x21b969(0x13a)]??_0x21b969(0x130),_0xe39719=_0x1a029e['accessKey'],_0x4e385a=_0x1a029e[_0x21b969(0x11b)]('force');if(!_0xe39719)throw CliErrors[_0x21b969(0x127)](_0x21b969(0x10e));const _0x4a7725=_0x1185ef(_0x1a029e['appCode'],_0x1a029e['bool']('project')?'project':'global'),_0x245bcf=_0x1185ef(_0x1a029e[_0x21b969(0x11d)],_0x4a7725[_0x21b969(0x11a)]===_0x21b969(0x12f)?'global':_0x21b969(0x12f)),_0x2761a3=await Promise[_0x21b969(0x116)](_0xad459b[_0x21b969(0x118)](_0x43af0f=>_0x442dc2({'appCode':_0x1a029e[_0x21b969(0x11d)],'scope':_0x43af0f,'code':_0x333ac7[_0x21b969(0x117)]()||undefined}))),_0xac4d70=_0xad459b[_0x21b969(0x12d)](_0x21b969(0x124))?_0x2761a3[_0x21b969(0x112)]((_0x31091c,_0x3e2fdb)=>_0xad459b[_0x3e2fdb]===_0x21b969(0x124)?_0x31091c[_0x21b969(0x124)]:[]):[],_0x3b7cec=_0xad459b[_0x21b969(0x12d)](_0x21b969(0x121))?_0x2761a3[_0x21b969(0x112)]((_0x44d28c,_0x173174)=>_0xad459b[_0x173174]===_0x21b969(0x121)?_0x44d28c['company']:[]):[],_0x4d9355=new Set([..._0xac4d70[_0x21b969(0x118)](_0x455486=>_0x455486['skillCode']?.[_0x21b969(0x117)]())[_0x21b969(0x136)](_0x90273b=>Boolean(_0x90273b)),..._0x3b7cec['map'](_0x58c8c4=>_0x58c8c4['skillCode']?.[_0x21b969(0x117)]())['filter'](_0x35533a=>Boolean(_0x35533a))]),_0x955d22=_0x333ac7[_0x21b969(0x117)]()?[_0x333ac7[_0x21b969(0x117)]()]:undefined,_0x172361=_0xad459b[_0x21b969(0x125)]===0x2&&_0xad459b[_0x21b969(0x12d)]('personal')&&_0xad459b[_0x21b969(0x12d)](_0x21b969(0x121)),_0x2c8eea=_0x172361?_0xeaed6d(_0x4a7725,_0x4d9355,_0x955d22):[],_0x2bd534=_0x3144bd({'env':_0x17f4e6,'accessKey':_0xe39719,'appCode':_0x1a029e[_0x21b969(0x11d)],'activeSkillCodes':_0x4d9355,'pruneSkillCodes':_0x955d22,'scopes':_0xad459b,'protectedLinkRoots':_0x245bcf['skillRoots']}),_0xe6894e=[];for(const _0x371f66 of _0xac4d70){_0xe6894e[_0x21b969(0x131)](_0x1447ab(_0x371f66,_0x21b969(0x124),{'env':_0x17f4e6,'accessKey':_0xe39719,'appCode':_0x1a029e[_0x21b969(0x11d)],'force':_0x4e385a,'packageBytes':await downloadSkillPackage(_0x371f66,_0x21b969(0x124),_0x1a029e['appCode'],_0x3abe80)}));}for(const _0x1d1dc9 of _0x3b7cec){_0xe6894e[_0x21b969(0x131)](_0x1447ab(_0x1d1dc9,_0x21b969(0x121),{'env':_0x17f4e6,'accessKey':_0xe39719,'appCode':_0x1a029e[_0x21b969(0x11d)],'force':_0x4e385a,'packageBytes':await downloadSkillPackage(_0x1d1dc9,_0x21b969(0x121),_0x1a029e[_0x21b969(0x11d)],_0x3abe80)}));}const _0x26f054=_0x52387d(_0xe6894e,_0x4a7725),_0x57b2d5=countLinkActions(_0x26f054);return{'ok':!![],'data':{'appCode':_0x1a029e[_0x21b969(0x11d)],..._0x4a7725['scope']===_0x21b969(0x12f)?{'installTarget':{'scope':_0x4a7725[_0x21b969(0x11a)],'skillRoots':[..._0x4a7725[_0x21b969(0x138)]]}}:{},'personal':_0xac4d70[_0x21b969(0x125)],'company':_0x3b7cec['length'],'materialized':_0xe6894e[_0x21b969(0x125)],'links':{'total':_0x26f054[_0x21b969(0x125)],'created':_0x57b2d5['created']??0x0,'updated':_0x57b2d5[_0x21b969(0x11e)]??0x0,'unchanged':_0x57b2d5[_0x21b969(0x120)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x2c8eea['filter'](_0x5b35f8=>_0x5b35f8[_0x21b969(0x111)]==='removed')[_0x21b969(0x125)],'cacheDirs':_0x2bd534[_0x21b969(0x136)](_0x3f53bf=>_0x3f53bf[_0x21b969(0x111)]===_0x21b969(0x11c))[_0x21b969(0x125)],'skipped':[..._0x2c8eea,..._0x2bd534][_0x21b969(0x136)](_0x1128bc=>_0x1128bc['action']===_0x21b969(0x115))[_0x21b969(0x125)]},'skills':{'personal':_0xac4d70[_0x21b969(0x118)](summarizeRuntimeSkill),'company':_0x3b7cec[_0x21b969(0x118)](summarizeRuntimeSkill)}},'message':'Installed\x20'+_0xac4d70[_0x21b969(0x125)]+_0x21b969(0x122)+_0x3b7cec[_0x21b969(0x125)]+_0x21b969(0x12a)};}async function downloadSkillPackage(_0x3562ac,_0x530efc,_0x202bd3,_0x40da3d){const _0x1fd81d=a45_0x207e10,_0x20b980=_0x3562ac[_0x1fd81d(0x126)]?.[_0x1fd81d(0x117)]();return _0x20b980?_0x40da3d(_0x530efc,_0x3562ac['skillCode'],_0x202bd3,_0x20b980):_0x40da3d(_0x530efc,_0x3562ac[_0x1fd81d(0x10f)],_0x202bd3);}function countLinkActions(_0x462657){const _0x511520=a45_0x207e10;return _0x462657[_0x511520(0x11f)]((_0x3e0060,_0x4570fa)=>{return _0x3e0060[_0x4570fa['action']]=(_0x3e0060[_0x4570fa['action']]??0x0)+0x1,_0x3e0060;},{});}
@@ -1 +1 @@
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
+ const a46_0x4cea5d=a46_0x44d0;(function(_0x4e0a86,_0x45d1a4){const _0x3ecc63=a46_0x44d0,_0x4985bd=_0x4e0a86();while(!![]){try{const _0x4359b2=parseInt(_0x3ecc63(0x167))/0x1+parseInt(_0x3ecc63(0x169))/0x2+-parseInt(_0x3ecc63(0x15b))/0x3+-parseInt(_0x3ecc63(0x164))/0x4+parseInt(_0x3ecc63(0x15f))/0x5+-parseInt(_0x3ecc63(0x151))/0x6*(-parseInt(_0x3ecc63(0x160))/0x7)+parseInt(_0x3ecc63(0x153))/0x8*(-parseInt(_0x3ecc63(0x16e))/0x9);if(_0x4359b2===_0x45d1a4)break;else _0x4985bd['push'](_0x4985bd['shift']());}catch(_0x3871c9){_0x4985bd['push'](_0x4985bd['shift']());}}}(a46_0x3dcc,0xf3a0c));function a46_0x3dcc(){const _0x4b686d=['\x20remote\x20Skill(s).','Listed\x20','1444455ohOVmd','envName','2112358LfjtNq','builtin','personal','length','remote','4671NqEKzP','appCode','local','skill','\x20local\x20Skill(s).','project','23784oogadS','bool','10448igCkoT','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','map','../../../skills/runtime-skill-sync.js','production','company','accessKey','filter','3521994hSMvwG','authRequired','str','trim','4114715oIeGxf','931sTkeZQ','read','scope','list','4004308QSyJHP'];a46_0x3dcc=function(){return _0x4b686d;};return a46_0x3dcc();}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';function a46_0x44d0(_0x44b7e4,_0x228987){_0x44b7e4=_0x44b7e4-0x14d;const _0x3dcc30=a46_0x3dcc();let _0x44d08f=_0x3dcc30[_0x44b7e4];return _0x44d08f;}export const listCommand={'service':a46_0x4cea5d(0x14e),'command':a46_0x4cea5d(0x163),'description':a46_0x4cea5d(0x154),'risk':a46_0x4cea5d(0x161),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x95069){const _0x28a0c7=a46_0x4cea5d,_0x20ce4c=_0x95069[_0x28a0c7(0x15d)]('code'),_0x899eba=normalizeListScope(_0x95069[_0x28a0c7(0x15d)](_0x28a0c7(0x162)));if(_0x95069[_0x28a0c7(0x152)]('local')){const _0x52c2d4=_0x95069[_0x28a0c7(0x159)];if(!_0x52c2d4)throw CliErrors[_0x28a0c7(0x15c)]();const {listLocalRuntimeSkills:_0x45a370,resolveRuntimeSkillInstallTarget:_0x336533}=await import(_0x28a0c7(0x156)),_0xf95310=_0x336533(_0x95069[_0x28a0c7(0x16f)],_0x95069['bool']('project')?_0x28a0c7(0x150):'global'),_0x365065=_0x45a370({'env':_0x95069[_0x28a0c7(0x168)]??_0x28a0c7(0x157),'accessKey':_0x52c2d4,'appCode':_0x95069[_0x28a0c7(0x16f)],'scopes':listScopeToRuntimeScopes(_0x899eba),'code':_0x20ce4c['trim']()||undefined},_0xf95310),_0x3d5f94=groupLocalRuntimeSkills(_0x365065);return{'ok':!![],'data':{'appCode':_0x95069[_0x28a0c7(0x16f)],'source':_0x28a0c7(0x14d),..._0xf95310[_0x28a0c7(0x162)]===_0x28a0c7(0x150)?{'installScope':_0xf95310[_0x28a0c7(0x162)]}:{},'scope':_0x899eba,'total':_0x365065[_0x28a0c7(0x16c)],'personal':_0x3d5f94[_0x28a0c7(0x16b)][_0x28a0c7(0x16c)],'company':_0x3d5f94[_0x28a0c7(0x158)][_0x28a0c7(0x16c)],'items':_0x365065[_0x28a0c7(0x155)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x3d5f94['personal'][_0x28a0c7(0x155)](summarizeLocalRuntimeSkill),'company':_0x3d5f94['company'][_0x28a0c7(0x155)](summarizeLocalRuntimeSkill)}},'message':_0x28a0c7(0x166)+_0x365065[_0x28a0c7(0x16c)]+_0x28a0c7(0x14f)};}const {listRuntimeSkills:_0x2cb26f}=await import('../../../core/api-client.js'),_0x31a589=await _0x2cb26f({'appCode':_0x95069[_0x28a0c7(0x16f)],'scope':listScopeToRemoteScope(_0x899eba),'code':_0x20ce4c[_0x28a0c7(0x15e)]()||undefined}),_0x3ddae1=shouldListScope(_0x899eba,_0x28a0c7(0x16b))?_0x31a589[_0x28a0c7(0x16b)]??[]:[],_0x478a88=shouldListScope(_0x899eba,_0x28a0c7(0x158))?_0x31a589[_0x28a0c7(0x158)]??[]:[],_0x409f47=[..._0x3ddae1,..._0x478a88];return{'ok':!![],'data':{'appCode':_0x95069[_0x28a0c7(0x16f)],'source':_0x28a0c7(0x16d),'scope':_0x899eba,'total':_0x409f47[_0x28a0c7(0x16c)],'personal':_0x3ddae1[_0x28a0c7(0x16c)],'company':_0x478a88[_0x28a0c7(0x16c)],'items':_0x409f47[_0x28a0c7(0x155)](summarizeRuntimeSkill),'skills':{'personal':_0x3ddae1['map'](summarizeRuntimeSkill),'company':_0x478a88['map'](summarizeRuntimeSkill)}},'message':_0x28a0c7(0x166)+_0x409f47[_0x28a0c7(0x16c)]+_0x28a0c7(0x165)};}};function groupLocalRuntimeSkills(_0x1abd1b){const _0x4dec25=a46_0x4cea5d;return{'personal':_0x1abd1b[_0x4dec25(0x15a)](_0x29f3df=>_0x29f3df[_0x4dec25(0x162)]===_0x4dec25(0x16b)),'company':_0x1abd1b[_0x4dec25(0x15a)](_0x4b3c0a=>_0x4b3c0a[_0x4dec25(0x162)]===_0x4dec25(0x158)),'builtin':_0x1abd1b[_0x4dec25(0x15a)](_0x200538=>_0x200538[_0x4dec25(0x162)]===_0x4dec25(0x16a))};}
@@ -1 +1 @@
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
+ function a47_0x10c6(_0x5a2b8,_0x4ece4a){_0x5a2b8=_0x5a2b8-0xe5;const _0x437da3=a47_0x437d();let _0x10c657=_0x437da3[_0x5a2b8];return _0x10c657;}const a47_0x175c41=a47_0x10c6;(function(_0x58efc7,_0x46d763){const _0x6d57b5=a47_0x10c6,_0x3d6277=_0x58efc7();while(!![]){try{const _0x153d0d=parseInt(_0x6d57b5(0xeb))/0x1*(-parseInt(_0x6d57b5(0xe8))/0x2)+parseInt(_0x6d57b5(0xed))/0x3+-parseInt(_0x6d57b5(0xee))/0x4*(parseInt(_0x6d57b5(0xf1))/0x5)+parseInt(_0x6d57b5(0xe7))/0x6+-parseInt(_0x6d57b5(0xec))/0x7*(parseInt(_0x6d57b5(0xea))/0x8)+-parseInt(_0x6d57b5(0xe5))/0x9+-parseInt(_0x6d57b5(0xf2))/0xa*(-parseInt(_0x6d57b5(0xe6))/0xb);if(_0x153d0d===_0x46d763)break;else _0x3d6277['push'](_0x3d6277['shift']());}catch(_0xe782fa){_0x3d6277['push'](_0x3d6277['shift']());}}}(a47_0x437d,0x7935a));import{CONFIRM_WARNINGS_FLAG,DIAGRAM_FILE_FLAG,DIR_FLAG,PUSH_SCOPE_FLAG}from'../flags.js';import{skillPushDryRun,skillPushExecute}from'../push-execute.js';export const pushCommand={'service':a47_0x175c41(0xe9),'command':a47_0x175c41(0xef),'description':'Push\x20a\x20local\x20Skill\x20directory\x20to\x20personal\x20scope\x20or\x20submit\x20company\x20scope\x20for\x20review','risk':a47_0x175c41(0xf0),'flags':[DIR_FLAG,DIAGRAM_FILE_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};function a47_0x437d(){const _0x5250a3=['1957896Bcidhf','20PlcsvW','push','write','785405CKaoIj','13031750WJLmMa','1745217MbEeta','11bYzbme','4391232cyApNG','4tDMXSa','skill','458872UwvXvG','405187SsoWSj','49WxEkPn'];a47_0x437d=function(){return _0x5250a3;};return a47_0x437d();}
@@ -1 +1 @@
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
+ const a48_0x5be67c=a48_0x805a;(function(_0x2260da,_0x40c4cb){const _0xcfb163=a48_0x805a,_0x4b2b51=_0x2260da();while(!![]){try{const _0x4dbaca=-parseInt(_0xcfb163(0x1b6))/0x1+parseInt(_0xcfb163(0x1bf))/0x2+parseInt(_0xcfb163(0x1ba))/0x3*(parseInt(_0xcfb163(0x1ae))/0x4)+-parseInt(_0xcfb163(0x1b5))/0x5+-parseInt(_0xcfb163(0x1b9))/0x6+parseInt(_0xcfb163(0x1be))/0x7+parseInt(_0xcfb163(0x1b4))/0x8;if(_0x4dbaca===_0x40c4cb)break;else _0x4b2b51['push'](_0x4b2b51['shift']());}catch(_0x43ebf0){_0x4b2b51['push'](_0x4b2b51['shift']());}}}(a48_0xac6c,0xd8f20));import{DIR_FLAG,STRICT_FLAG}from'../flags.js';function a48_0x805a(_0x42000d,_0x10131c){_0x42000d=_0x42000d-0x1ad;const _0xac6c86=a48_0xac6c();let _0x805a1=_0xac6c86[_0x42000d];return _0x805a1;}import{throwIfSkillValidationFailed,validateSkillDirectory}from'../validate.js';function a48_0xac6c(){const _0x451afa=['217326ItDGcB','bool','skill','7174788RypqZe','100347Lajrqz','str','warnings','read','7607544NqxQJL','620320cwWaje','errors','136FAmQtK','strict','Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','Skill\x20validation\x20passed.','dir','validate','11391216KMXESZ','8281940RKPwOS'];a48_0xac6c=function(){return _0x451afa;};return a48_0xac6c();}export const validateCommand={'service':a48_0x5be67c(0x1b8),'command':a48_0x5be67c(0x1b3),'description':a48_0x5be67c(0x1b0),'risk':a48_0x5be67c(0x1bd),'requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x4090ab){const _0x4b145b=a48_0x5be67c,_0x2e881f=_0x4090ab[_0x4b145b(0x1b7)](_0x4b145b(0x1af)),_0x446172=validateSkillDirectory(_0x4090ab[_0x4b145b(0x1bb)](_0x4b145b(0x1b2)),{'strict':_0x2e881f});return throwIfSkillValidationFailed(_0x446172,_0x2e881f),{'ok':!![],'data':{'dir':_0x446172[_0x4b145b(0x1b2)],'type':_0x446172['type'],'errors':_0x446172[_0x4b145b(0x1ad)],'warnings':_0x446172[_0x4b145b(0x1bc)]},'message':_0x4b145b(0x1b1)};}};
@@ -0,0 +1,5 @@
1
+ import type { RuntimeSkillDiagramSubmission } from "../../core/api-client.js";
2
+ /** Reads and validates the direct Mermaid payload required by Skill publication. */
3
+ export declare function readRequiredSkillDiagram(path: string): Promise<RuntimeSkillDiagramSubmission>;
4
+ /** Canonicalizes line endings and validates the source with Mermaid's official parser. */
5
+ export declare function validateAndCanonicalizeMermaid(source: string): Promise<string>;
@@ -0,0 +1 @@
1
+ (function(_0xcbd2da,_0x4b826d){const _0x1b9724=a49_0x1eed,_0x54b095=_0xcbd2da();while(!![]){try{const _0x2f5a80=parseInt(_0x1b9724(0x1be))/0x1+-parseInt(_0x1b9724(0x1c8))/0x2+parseInt(_0x1b9724(0x1c3))/0x3*(parseInt(_0x1b9724(0x1b3))/0x4)+parseInt(_0x1b9724(0x1bb))/0x5*(-parseInt(_0x1b9724(0x1ca))/0x6)+-parseInt(_0x1b9724(0x1c2))/0x7+-parseInt(_0x1b9724(0x1c1))/0x8*(parseInt(_0x1b9724(0x1b8))/0x9)+parseInt(_0x1b9724(0x1c0))/0xa;if(_0x2f5a80===_0x4b826d)break;else _0x54b095['push'](_0x54b095['shift']());}catch(_0x463f16){_0x54b095['push'](_0x54b095['shift']());}}}(a49_0x88c6,0xd0e5a));function a49_0x1eed(_0x11c5b6,_0x2b3205){_0x11c5b6=_0x11c5b6-0x1b3;const _0x88c64e=a49_0x88c6();let _0x1eedcc=_0x88c64e[_0x11c5b6];return _0x1eedcc;}import{existsSync,readFileSync,statSync}from'node:fs';import{resolve}from'node:path';import{JSDOM}from'jsdom';import{CliErrors}from'../../errors.js';let mermaidApiPromise;export async function readRequiredSkillDiagram(_0x26aa9c){const _0x16cd84=a49_0x1eed,_0x325ee7=_0x26aa9c[_0x16cd84(0x1c4)]();if(!_0x325ee7)throw CliErrors['validation'](_0x16cd84(0x1bd),'Generate\x20a\x20Mermaid\x20flowchart\x20and\x20pass\x20--diagram-file\x20<path>,\x20or\x20use\x20--diagram-file\x20-\x20for\x20standard\x20input.');let _0x25d2b;if(_0x325ee7==='-')try{_0x25d2b=readFileSync(0x0,_0x16cd84(0x1c9));}catch{throw CliErrors[_0x16cd84(0x1c7)](_0x16cd84(0x1bf));}else{const _0x167d0a=resolve(_0x325ee7);if(!existsSync(_0x167d0a))throw CliErrors[_0x16cd84(0x1c7)]('Mermaid\x20flowchart\x20file\x20not\x20found:\x20'+_0x167d0a);if(!statSync(_0x167d0a)[_0x16cd84(0x1b7)]())throw CliErrors[_0x16cd84(0x1c7)]('Mermaid\x20flowchart\x20path\x20is\x20not\x20a\x20regular\x20file:\x20'+_0x167d0a);_0x25d2b=readFileSync(_0x167d0a,_0x16cd84(0x1c9));}return{'schemaVersion':0x1,'mermaid':await validateAndCanonicalizeMermaid(_0x25d2b)};}export async function validateAndCanonicalizeMermaid(_0x16de02){const _0x49f1a8=a49_0x1eed,_0x42a4c0=_0x16de02[_0x49f1a8(0x1b4)](/\r\n/g,'\x0a')[_0x49f1a8(0x1b4)](/\r/g,'\x0a')[_0x49f1a8(0x1b4)](/\n+$/,'')+'\x0a';try{const _0x29bb09=await loadMermaidApi();await _0x29bb09['parse'](_0x42a4c0);}catch{throw diagramValidationError();}return _0x42a4c0;}function a49_0x88c6(){const _0x53c9df=['defineProperties','Fix\x20the\x20Mermaid\x20syntax\x20reported\x20by\x20your\x20editor\x20or\x20preview\x20tool,\x20then\x20retry\x20with\x20the\x20same\x20file.','isFile','963PEcFwh','window','mermaid','4145mdFUye','default','--diagram-file\x20is\x20required\x20when\x20publishing\x20a\x20Skill\x20version.','182960thCeEA','Unable\x20to\x20read\x20Mermaid\x20flowchart\x20from\x20standard\x20input.','41679640DOIgAA','43240YRvWMY','10213630VZVicC','3851823RHdgeb','trim','document','Mermaid\x20syntax\x20validation\x20failed.','validation','2736290kausDW','utf8','9942sKKByd','4uYTQko','replace'];a49_0x88c6=function(){return _0x53c9df;};return a49_0x88c6();}function loadMermaidApi(){return mermaidApiPromise??=((async()=>{const _0x4b12eb=a49_0x1eed;if(!(_0x4b12eb(0x1b9)in globalThis)||!(_0x4b12eb(0x1c5)in globalThis)){const _0x581a33=new JSDOM('');Object[_0x4b12eb(0x1b5)](globalThis,{'window':{'configurable':!![],'value':_0x581a33[_0x4b12eb(0x1b9)]},'document':{'configurable':!![],'value':_0x581a33[_0x4b12eb(0x1b9)][_0x4b12eb(0x1c5)]}});}return(await import(_0x4b12eb(0x1ba)))[_0x4b12eb(0x1bc)];})()),mermaidApiPromise;}function diagramValidationError(){const _0x4dc70a=a49_0x1eed;return CliErrors[_0x4dc70a(0x1c7)](_0x4dc70a(0x1c6),_0x4dc70a(0x1b6));}
@@ -5,6 +5,12 @@ export declare const PUSH_SCOPE_FLAG: FlagDef;
5
5
  export declare const LIST_SCOPE_FLAG: FlagDef;
6
6
  export declare const LOCAL_FLAG: FlagDef;
7
7
  export declare const DIR_FLAG: FlagDef;
8
+ export declare const DIAGRAM_FILE_FLAG: FlagDef;
9
+ export declare const DIAGRAM_SKILL_CODE_FLAG: FlagDef;
10
+ export declare const DIAGRAM_VERSION_FLAG: FlagDef;
11
+ export declare const DIAGRAM_SCOPE_FLAG: FlagDef;
12
+ export declare const SOURCE_FINGERPRINT_FLAG: FlagDef;
13
+ export declare const EXPECTED_DIAGRAM_REVISION_FLAG: FlagDef;
8
14
  export declare const CREATE_NAME_FLAG: FlagDef;
9
15
  export declare const TYPE_FLAG: FlagDef;
10
16
  export declare const TARGET_FLAG: FlagDef;
@@ -1 +1 @@
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
+ const a50_0x45c3ef=a50_0x50d4;(function(_0xada909,_0x2233f7){const _0x14655e=a50_0x50d4,_0x2b3340=_0xada909();while(!![]){try{const _0x5292cc=-parseInt(_0x14655e(0x1d9))/0x1*(parseInt(_0x14655e(0x1bc))/0x2)+parseInt(_0x14655e(0x1ce))/0x3+parseInt(_0x14655e(0x1bf))/0x4+-parseInt(_0x14655e(0x1de))/0x5+parseInt(_0x14655e(0x1d4))/0x6+-parseInt(_0x14655e(0x1c7))/0x7+parseInt(_0x14655e(0x1d2))/0x8;if(_0x5292cc===_0x2233f7)break;else _0x2b3340['push'](_0x2b3340['shift']());}catch(_0x184ab9){_0x2b3340['push'](_0x2b3340['shift']());}}}(a50_0x419b,0x4c43d));import{DEFAULT_SKILL_TARGET,SKILL_NAME_PATTERN,SKILL_TYPES}from'./templates.js';export const CODE_FLAG={'name':'code','type':'string','description':a50_0x45c3ef(0x1b6)};export const SCOPE_FLAG={'name':a50_0x45c3ef(0x1dd),'type':'string','description':a50_0x45c3ef(0x1c3),'enum':[a50_0x45c3ef(0x1b8),a50_0x45c3ef(0x1b7),a50_0x45c3ef(0x1cc)]};export const PUSH_SCOPE_FLAG={'name':a50_0x45c3ef(0x1dd),'type':'string','description':a50_0x45c3ef(0x1d8),'default':'personal','enum':[a50_0x45c3ef(0x1b7),'company']};function a50_0x50d4(_0x5605ec,_0x1bbbb6){_0x5605ec=_0x5605ec-0x1b5;const _0x419b6b=a50_0x419b();let _0x50d446=_0x419b6b[_0x5605ec];return _0x50d446;}export const LIST_SCOPE_FLAG={'name':'scope','type':a50_0x45c3ef(0x1b5),'description':a50_0x45c3ef(0x1d3),'enum':[a50_0x45c3ef(0x1b8),a50_0x45c3ef(0x1b7),a50_0x45c3ef(0x1cc)]};export const LOCAL_FLAG={'name':a50_0x45c3ef(0x1d5),'type':a50_0x45c3ef(0x1db),'description':a50_0x45c3ef(0x1c9)};export const DIR_FLAG={'name':a50_0x45c3ef(0x1c8),'type':'string','required':!![],'description':a50_0x45c3ef(0x1cb)};export const DIAGRAM_FILE_FLAG={'name':'diagram-file','type':a50_0x45c3ef(0x1b5),'required':!![],'description':a50_0x45c3ef(0x1bd)};export const DIAGRAM_SKILL_CODE_FLAG={'name':'skill-code','type':a50_0x45c3ef(0x1b5),'required':!![],'description':a50_0x45c3ef(0x1c0)};export const DIAGRAM_VERSION_FLAG={'name':a50_0x45c3ef(0x1dc),'type':'string','required':!![],'description':a50_0x45c3ef(0x1ba)};export const DIAGRAM_SCOPE_FLAG={'name':a50_0x45c3ef(0x1dd),'type':a50_0x45c3ef(0x1b5),'required':!![],'enum':['personal','company'],'description':'Exact\x20Skill\x20scope:\x20personal\x20or\x20company'};export const SOURCE_FINGERPRINT_FLAG={'name':a50_0x45c3ef(0x1b9),'type':a50_0x45c3ef(0x1b5),'required':!![],'description':a50_0x45c3ef(0x1d1),'pattern':{'regex':/^sha256:[0-9a-f]{64}$/,'description':a50_0x45c3ef(0x1cf)}};export const EXPECTED_DIAGRAM_REVISION_FLAG={'name':'expected-diagram-revision','type':a50_0x45c3ef(0x1d6),'required':!![],'description':a50_0x45c3ef(0x1c4)};export const CREATE_NAME_FLAG={'name':a50_0x45c3ef(0x1cd),'type':'string','required':!![],'description':'Skill\x20name\x20using\x20lowercase\x20letters,\x20numbers,\x20and\x20hyphens','pattern':{'regex':SKILL_NAME_PATTERN,'description':a50_0x45c3ef(0x1d7)}};export const TYPE_FLAG={'name':'type','type':a50_0x45c3ef(0x1b5),'description':'Skill\x20template\x20type:\x20pass\x20read\x20or\x20write\x20explicitly\x20(omission\x20is\x20deprecated)','enum':[...SKILL_TYPES]};export const TARGET_FLAG={'name':a50_0x45c3ef(0x1da),'type':a50_0x45c3ef(0x1b5),'description':a50_0x45c3ef(0x1c1),'default':DEFAULT_SKILL_TARGET};export const FORCE_FLAG={'name':a50_0x45c3ef(0x1c2),'type':a50_0x45c3ef(0x1db),'description':a50_0x45c3ef(0x1bb)};function a50_0x419b(){const _0x478767=['Use\x20the\x20current\x20project\x27s\x20.agents/skills\x20instead\x20of\x20user-level\x20Agent\x20Skill\x20directories','3300150IyXijb','dir','Read\x20CLI-managed\x20local\x20Skill\x20cache\x20and\x20links\x20instead\x20of\x20remote\x20lists','Confirm\x20reviewed\x20personal\x20or\x20company\x20Skill\x20publish\x20warnings','Local\x20Skill\x20directory\x20containing\x20SKILL.md','company','name','1604928ztgBvr','a\x20lowercase\x20sha256:<64\x20hex\x20characters>\x20fingerprint','confirm-warnings','Server-reported\x20SkillVersion\x20source\x20fingerprint','4576056Ibcfdt','Skill\x20list\x20scope:\x20all,\x20personal,\x20or\x20company','2565630sSOhXc','local','number','lowercase\x20letters,\x20numbers,\x20and\x20single\x20hyphens','Skill\x20push\x20target\x20scope:\x20personal\x20saves\x20immediately,\x20company\x20submits\x20a\x20new\x20version\x20for\x20review','462475TYAbLU','target','boolean','version','scope','1719660dQFQGW','string','Only\x20target\x20a\x20specific\x20runtime\x20Skill\x20code','personal','all','source-fingerprint','Exact\x20Skill\x20version\x20whose\x20diagram\x20is\x20being\x20managed','Overwrite\x20generated\x20or\x20CLI-managed\x20Skill\x20files\x20when\x20the\x20target\x20already\x20exists','2LbNLQp','UTF-8\x20Mermaid\x20flowchart\x20file;\x20use\x20-\x20to\x20read\x20from\x20standard\x20input','project','222600YPILWw','Exact\x20Skill\x20code\x20whose\x20version\x20diagram\x20is\x20being\x20managed','Directory\x20that\x20will\x20contain\x20the\x20generated\x20Skill\x20directory','force','Skill\x20sync\x20scope:\x20all\x20(personal/company),\x20personal,\x20or\x20company','Expected\x20current\x20diagram\x20revision;\x20use\x200\x20for\x20the\x20first\x20diagram','strict'];a50_0x419b=function(){return _0x478767;};return a50_0x419b();}export const PROJECT_TARGET_FLAG={'name':a50_0x45c3ef(0x1be),'type':a50_0x45c3ef(0x1db),'description':a50_0x45c3ef(0x1c6)};export const CONFIRM_WARNINGS_FLAG={'name':a50_0x45c3ef(0x1d0),'type':a50_0x45c3ef(0x1db),'description':a50_0x45c3ef(0x1ca)};export const STRICT_FLAG={'name':a50_0x45c3ef(0x1c5),'type':a50_0x45c3ef(0x1db),'description':'Compatibility\x20flag;\x20no\x20extra\x20checks\x20are\x20enabled'};
@@ -1 +1 @@
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
+ (function(_0x50e596,_0x19778b){const _0x33ed31=a51_0x42e4,_0x1dcc8d=_0x50e596();while(!![]){try{const _0x42fa9b=parseInt(_0x33ed31(0x16b))/0x1*(-parseInt(_0x33ed31(0x161))/0x2)+-parseInt(_0x33ed31(0x16a))/0x3*(parseInt(_0x33ed31(0x164))/0x4)+parseInt(_0x33ed31(0x162))/0x5*(parseInt(_0x33ed31(0x166))/0x6)+parseInt(_0x33ed31(0x163))/0x7+parseInt(_0x33ed31(0x168))/0x8+-parseInt(_0x33ed31(0x169))/0x9*(parseInt(_0x33ed31(0x167))/0xa)+-parseInt(_0x33ed31(0x165))/0xb;if(_0x42fa9b===_0x19778b)break;else _0x1dcc8d['push'](_0x1dcc8d['shift']());}catch(_0x1bcb68){_0x1dcc8d['push'](_0x1dcc8d['shift']());}}}(a51_0x539e,0xb7b94));import{createCommand}from'./commands/create.js';import{diagramPushCommand,diagramShowCommand,diagramValidateCommand}from'./commands/diagram.js';function a51_0x42e4(_0x573dde,_0x1f3669){_0x573dde=_0x573dde-0x161;const _0x539e3e=a51_0x539e();let _0x42e409=_0x539e3e[_0x573dde];return _0x42e409;}function a51_0x539e(){const _0x48d0b9=['10883408wHYjTB','83511mhsUQO','713301IVmMjc','1951iNTzEL','60wqIeDp','5DGohKl','4059104GhnPBv','20RsuYbr','2282192cRQdmW','8004936awHYFg','1150DrNZQF'];a51_0x539e=function(){return _0x48d0b9;};return a51_0x539e();}import{installCommand}from'./commands/install.js';import{listCommand}from'./commands/list.js';import{pushCommand}from'./commands/push.js';import{validateCommand}from'./commands/validate.js';export const skillDefinitions=[installCommand,createCommand,validateCommand,listCommand,pushCommand,diagramValidateCommand,diagramPushCommand,diagramShowCommand];