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

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/lib/cli.js +1 -1
  2. package/lib/commands/api-doc/index.js +1 -1
  3. package/lib/commands/app/cache.js +1 -1
  4. package/lib/commands/app/definitions.js +1 -1
  5. package/lib/commands/app/eligibility.js +1 -1
  6. package/lib/commands/app/mock-loader.js +1 -1
  7. package/lib/commands/app/remote-source.js +1 -1
  8. package/lib/commands/app/shared.js +1 -1
  9. package/lib/commands/app-config/get.js +1 -1
  10. package/lib/commands/app-config/index.js +1 -1
  11. package/lib/commands/artifact/index.js +1 -1
  12. package/lib/commands/auth/device.js +1 -1
  13. package/lib/commands/auth/index.js +1 -1
  14. package/lib/commands/auth/prompt.js +1 -1
  15. package/lib/commands/bff/detail.js +1 -1
  16. package/lib/commands/bff/exec.js +1 -1
  17. package/lib/commands/bff/index.js +1 -1
  18. package/lib/commands/cli-skill/index.js +1 -1
  19. package/lib/commands/common/config-policy.js +1 -1
  20. package/lib/commands/common/constraints.js +1 -1
  21. package/lib/commands/common/flags.js +1 -1
  22. package/lib/commands/common/local-file.js +1 -1
  23. package/lib/commands/config/definitions.js +1 -1
  24. package/lib/commands/config/shared.js +1 -1
  25. package/lib/commands/data/index.js +1 -1
  26. package/lib/commands/dataset/detail.js +1 -1
  27. package/lib/commands/dataset/index.js +1 -1
  28. package/lib/commands/dataset/list.js +1 -1
  29. package/lib/commands/dataset/sdk-doc.js +1 -1
  30. package/lib/commands/doctor.js +1 -1
  31. package/lib/commands/file/index.js +1 -1
  32. package/lib/commands/init.js +1 -1
  33. package/lib/commands/kb/index.js +1 -1
  34. package/lib/commands/logs/index.js +1 -1
  35. package/lib/commands/ocr/index.js +1 -1
  36. package/lib/commands/personal-bff/index.js +1 -1
  37. package/lib/commands/registry.js +1 -1
  38. package/lib/commands/schedule/index.js +1 -1
  39. package/lib/commands/schema.js +1 -1
  40. package/lib/commands/service/dynamic.js +1 -1
  41. package/lib/commands/service/function-name-adapter.js +1 -1
  42. package/lib/commands/service/index.js +1 -1
  43. package/lib/commands/service/registry.js +1 -1
  44. package/lib/commands/skill/commands/create.js +1 -1
  45. package/lib/commands/skill/commands/diagram.js +1 -1
  46. package/lib/commands/skill/commands/install.js +1 -1
  47. package/lib/commands/skill/commands/list.js +1 -1
  48. package/lib/commands/skill/commands/push.js +1 -1
  49. package/lib/commands/skill/commands/validate.js +1 -1
  50. package/lib/commands/skill/diagram.js +1 -1
  51. package/lib/commands/skill/flags.js +1 -1
  52. package/lib/commands/skill/index.js +1 -1
  53. package/lib/commands/skill/manifest-helpers.js +1 -1
  54. package/lib/commands/skill/push-execute.js +1 -1
  55. package/lib/commands/skill/push-flow-helpers.js +1 -1
  56. package/lib/commands/skill/push-retarget.js +1 -1
  57. package/lib/commands/skill/scopes.js +1 -1
  58. package/lib/commands/skill/summary.js +1 -1
  59. package/lib/commands/skill/templates.js +1 -1
  60. package/lib/commands/skill/validate.js +1 -1
  61. package/lib/commands/sql/detail.js +1 -1
  62. package/lib/commands/sql/exec.js +1 -1
  63. package/lib/commands/sql/index.js +1 -1
  64. package/lib/commands/update.js +1 -1
  65. package/lib/commands/workspace/index.js +1 -1
  66. package/lib/config/schema.js +1 -1
  67. package/lib/constant/app.js +1 -1
  68. package/lib/constant/auth-mode.js +1 -1
  69. package/lib/constant/cli.js +1 -1
  70. package/lib/constant/defaults.js +1 -1
  71. package/lib/constant/distribution.js +1 -1
  72. package/lib/constant/domain.js +1 -1
  73. package/lib/constant/env.js +1 -1
  74. package/lib/constant/output.js +1 -1
  75. package/lib/constant/product.js +1 -1
  76. package/lib/constant/risk.js +1 -1
  77. package/lib/constant/url.js +1 -1
  78. package/lib/context.js +1 -1
  79. package/lib/core/api-client.js +1 -1
  80. package/lib/core/db-resolver.js +1 -1
  81. package/lib/core/sdk-client.js +1 -1
  82. package/lib/errors.js +1 -1
  83. package/lib/framework/build-all-flags.js +1 -1
  84. package/lib/framework/dryrun.js +1 -1
  85. package/lib/framework/flags.js +1 -1
  86. package/lib/framework/help.js +1 -1
  87. package/lib/framework/index.js +1 -1
  88. package/lib/framework/output.js +1 -1
  89. package/lib/framework/preparse.js +1 -1
  90. package/lib/framework/rate-limit.js +1 -1
  91. package/lib/framework/raw-flags.js +1 -1
  92. package/lib/framework/response.js +1 -1
  93. package/lib/framework/runner-confirmation.js +1 -1
  94. package/lib/framework/runner-error.js +1 -1
  95. package/lib/framework/runner.js +1 -1
  96. package/lib/framework/schema-export.js +1 -1
  97. package/lib/framework/service-order.js +1 -1
  98. package/lib/framework/types.js +1 -1
  99. package/lib/generated/build-info.d.ts +4 -4
  100. package/lib/generated/build-info.js +1 -1
  101. package/lib/help.js +1 -1
  102. package/lib/postinstall.js +1 -1
  103. package/lib/runtime/confirmation.js +1 -1
  104. package/lib/runtime/event.js +1 -1
  105. package/lib/runtime/index.js +1 -1
  106. package/lib/runtime/queue.js +1 -1
  107. package/lib/runtime/resolve.js +1 -1
  108. package/lib/skills/builtin-skill.js +1 -1
  109. package/lib/skills/npx-skills-add.js +1 -1
  110. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  111. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  112. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  113. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  114. package/lib/skills/runtime-skill-sync/links.js +1 -1
  115. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  116. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  117. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  118. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  119. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  120. package/lib/skills/runtime-skill-sync/push.js +1 -1
  121. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  122. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  123. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  124. package/lib/skills/runtime-skill-sync.js +1 -1
  125. package/lib/skills/skill-presence.js +1 -1
  126. package/lib/utils/apply-jq-filter.js +1 -1
  127. package/lib/utils/logger.js +1 -1
  128. package/lib/utils/lossless-json.js +1 -1
  129. package/lib/utils/params.js +1 -1
  130. package/lib/utils/platform.js +1 -1
  131. package/lib/utils/update-notice.js +1 -1
  132. package/lib/utils/version.js +1 -1
  133. package/lib/utils/write-cli-side-channel.js +1 -1
  134. package/package.json +1 -1
  135. package/skills/lovrabet/SKILL.md +1 -1
  136. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- (function(_0x46938d,_0x52b6b9){const _0xc71d55=a39_0x1016,_0x310224=_0x46938d();while(!![]){try{const _0x494b17=parseInt(_0xc71d55(0xdd))/0x1*(-parseInt(_0xc71d55(0xe1))/0x2)+-parseInt(_0xc71d55(0x141))/0x3+parseInt(_0xc71d55(0x122))/0x4*(parseInt(_0xc71d55(0xee))/0x5)+parseInt(_0xc71d55(0x10b))/0x6*(parseInt(_0xc71d55(0x13c))/0x7)+-parseInt(_0xc71d55(0x13f))/0x8+-parseInt(_0xc71d55(0xfe))/0x9+parseInt(_0xc71d55(0x104))/0xa*(parseInt(_0xc71d55(0x116))/0xb);if(_0x494b17===_0x52b6b9)break;else _0x310224['push'](_0x310224['shift']());}catch(_0x57cd7e){_0x310224['push'](_0x310224['shift']());}}}(a39_0x4f93,0x4e3e8));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(_0x354352,_0x56fb86){const _0x506db6=a39_0x1016,_0x49ecfa=listLocalServiceTrees();let _0x5ac959;for(const _0x406513 of _0x49ecfa){const _0x3a5e35=matchServiceTreeCommand(_0x406513,_0x354352);if(!_0x3a5e35)continue;(!_0x5ac959||_0x3a5e35['command'][_0x506db6(0xe9)]['length']>_0x5ac959[_0x506db6(0x10d)][_0x506db6(0xe9)][_0x506db6(0x106)])&&(_0x5ac959={'tree':_0x406513,'command':_0x3a5e35[_0x506db6(0x10d)],'remainingArgs':_0x3a5e35[_0x506db6(0xfa)]});}if(!_0x5ac959)return undefined;const _0x355069={..._0x56fb86};return applyAppBinding(_0x5ac959[_0x506db6(0x136)],_0x5ac959['command'],_0x355069),{'definition':buildDynamicCommandDefinition(_0x5ac959['tree'],_0x5ac959[_0x506db6(0x10d)]),'args':_0x5ac959[_0x506db6(0xfa)],'flags':_0x355069,'tree':_0x5ac959['tree'],'command':_0x5ac959[_0x506db6(0x10d)]};}export function generateDynamicServiceHelp(_0x56f4fe){const _0x400d59=a39_0x1016,_0x22b4b2=listLocalServiceTrees()[_0x400d59(0x135)](_0x28e58a=>_0x28e58a[_0x400d59(0xf0)]['code']===_0x56f4fe);if(!_0x22b4b2)return undefined;const _0x26ca3f=[CLI_BIN_NAME+'\x20'+_0x56f4fe+'\x20<command>\x20[flags]','',_0x22b4b2[_0x400d59(0xf0)]['name']||_0x56f4fe,_0x22b4b2['service'][_0x400d59(0x13b)]?'\x20\x20'+_0x22b4b2[_0x400d59(0xf0)][_0x400d59(0x13b)]:'','','Commands:',..._0x22b4b2['commands'][_0x400d59(0xdb)](_0x509829=>{const _0x3a49ac=_0x400d59,_0x4c9ca6=_0x509829[_0x3a49ac(0xe9)][_0x3a49ac(0xe8)](0x1)[_0x3a49ac(0x12e)]('\x20'),_0x82cd35=_0x509829['risk']===_0x3a49ac(0x119)?'':'\x20['+_0x509829[_0x3a49ac(0xe2)]+']';return'\x20\x20'+_0x4c9ca6[_0x3a49ac(0x11f)](0x18)+'\x20'+(_0x509829[_0x3a49ac(0x13b)]||'')+_0x82cd35;}),'','Use\x20`'+CLI_BIN_NAME+_0x400d59(0x127)+_0x56f4fe+_0x400d59(0xe3)][_0x400d59(0xf6)](Boolean);return _0x26ca3f['join']('\x0a');}export function listDynamicServiceEntries(){const _0x3b8f44=a39_0x1016;return listLocalServices()[_0x3b8f44(0xdb)](_0x5c1d1d=>{const _0x5792d7=_0x3b8f44,_0x12bef9=_0x5c1d1d[_0x5792d7(0x117)];return{'service':_0x12bef9['service'][_0x5792d7(0x120)],'label':_0x12bef9[_0x5792d7(0xf0)][_0x5792d7(0xf1)]||_0x12bef9[_0x5792d7(0xf0)][_0x5792d7(0x120)],'commands':_0x12bef9[_0x5792d7(0x139)][_0x5792d7(0xdb)](_0x28870a=>({'command':dynamicCommandName(_0x28870a),'description':_0x28870a[_0x5792d7(0x13b)]||_0x5792d7(0xfb)+_0x28870a['cliPath'],'tag':riskTag(_0x28870a[_0x5792d7(0xe2)])}))};});}export function getDynamicServiceEntry(_0x4097bd){const _0x4cf4ac=a39_0x1016;return listDynamicServiceEntries()[_0x4cf4ac(0x135)](_0x21dbe3=>_0x21dbe3['service']===_0x4097bd);}export function listDynamicServiceDefinitions(_0x25d5b9){const _0x477a4c=a39_0x1016;return listLocalServiceTrees()[_0x477a4c(0xf6)](_0x14b5f0=>!_0x25d5b9||_0x14b5f0[_0x477a4c(0xf0)]['code']===_0x25d5b9)[_0x477a4c(0xf3)](_0x21767b=>_0x21767b[_0x477a4c(0x139)][_0x477a4c(0xdb)](_0x344881=>buildDynamicCommandDefinition(_0x21767b,_0x344881)));}export function getDynamicServiceDefinitions(_0x362362){const _0x4b4cca=a39_0x1016,_0x3f458d=listDynamicServiceDefinitions(_0x362362);return _0x3f458d[_0x4b4cca(0x106)]>0x0?_0x3f458d:undefined;}export function findDynamicServiceDefinition(_0x1fba3b,_0x5a6210){const _0x58bb96=a39_0x1016;return listDynamicServiceDefinitions(_0x1fba3b)[_0x58bb96(0x135)](_0x1b47e4=>_0x1b47e4[_0x58bb96(0x10d)]===_0x5a6210);}export function buildDynamicCommandDefinition(_0x1c0aa2,_0xd3f715){const _0x50e43c=a39_0x1016;return{'service':_0x1c0aa2[_0x50e43c(0xf0)][_0x50e43c(0x120)],'command':dynamicCommandName(_0xd3f715),'description':_0xd3f715['description']||_0x50e43c(0xfb)+_0xd3f715['cliPath'],'risk':_0xd3f715[_0x50e43c(0xe2)],..._0xd3f715[_0x50e43c(0xe2)]===_0x50e43c(0x119)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0xd3f715)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0xd3f715[_0x50e43c(0x109)][_0x50e43c(0xdb)](_0xeafe0e=>({'name':_0xeafe0e[_0x50e43c(0xf1)],'description':_0xeafe0e[_0x50e43c(0x13b)]||_0xeafe0e[_0x50e43c(0xf1)],'required':_0xeafe0e['required']})),'flags':_0xd3f715[_0x50e43c(0x124)][_0x50e43c(0xdb)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0xd3f715),async 'dryRun'(_0xcdb85e){const _0x1d8bc0=_0x50e43c,_0x1d478e=await compilePlan(_0xd3f715,_0xcdb85e);return{'method':'SERVICE_TREE','url':_0xd3f715[_0x1d8bc0(0x103)],'body':{'target':targetPreview(_0x1d478e),'params':_0x1d478e[_0x1d8bc0(0x123)]},'description':_0x1d8bc0(0x12a)+_0xd3f715[_0x1d8bc0(0x103)]};},async 'execute'(_0x56f6f8){const _0x22c0ae=_0x50e43c,_0xbdc88c=await compilePlan(_0xd3f715,_0x56f6f8),_0x1f1873=Date[_0x22c0ae(0xe0)](),_0x58aeab=await executePlan(_0xbdc88c,_0xd3f715,_0x56f6f8),_0x50c792=Date[_0x22c0ae(0xe0)]()-_0x1f1873;return{'ok':!![],'data':{'service':_0x1c0aa2[_0x22c0ae(0xf0)],'command':_0xd3f715[_0x22c0ae(0x103)],'target':targetPreview(_0xbdc88c),'result':_0x58aeab,'elapsed':_0x50c792},'message':_0x22c0ae(0x131)+_0xd3f715['cliPath']+_0x22c0ae(0x12c)+_0x50c792+'ms'};}};}function buildDynamicConfirmationDescription(_0x3f7f6e){const _0x3b1178=a39_0x1016,_0x4691fa=_0x3f7f6e[_0x3b1178(0x13b)]||_0x3f7f6e[_0x3b1178(0x103)],_0x1bcf8e=_0x3f7f6e[_0x3b1178(0xe2)]===_0x3b1178(0x145)?_0x3b1178(0xda):_0x3b1178(0xf5);return _0x3b1178(0x134)+_0x4691fa+'”。'+_0x1bcf8e;}function dynamicCommandName(_0x1adde1){const _0x277610=a39_0x1016;return _0x1adde1[_0x277610(0xe9)]['slice'](0x1)[_0x277610(0x12e)]('\x20');}function riskTag(_0x548c51){const _0x5310cd=a39_0x1016;return _0x548c51===_0x5310cd(0x119)?'':_0x5310cd(0x115)+_0x548c51+']';}function flagToCommandFlag(_0x362ee5){const _0x31dbc3=a39_0x1016;return{'name':_0x362ee5['cliName'],'type':_0x362ee5[_0x31dbc3(0x144)]===_0x31dbc3(0x143)?_0x31dbc3(0xef):_0x362ee5[_0x31dbc3(0x144)],'description':_0x362ee5[_0x31dbc3(0x13b)]||_0x362ee5[_0x31dbc3(0xf1)],'required':_0x362ee5[_0x31dbc3(0x10c)],'default':isPrimitiveFlagDefault(_0x362ee5[_0x31dbc3(0x10a)])?_0x362ee5['default']:undefined,'enum':_0x362ee5[_0x31dbc3(0xec)]};}function a39_0x4f93(){const _0x3f45bc=['Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','cliPath','210nLnfMY','data','length','operator','\x20\x20\x20\x20datasetCode:\x20','args','default','36olhmaf','required','command','bffId','Unknown\x20appRef\x20\x22','\x20\x20\x20\x20sqlCode:\x20','\x20->\x20','\x22\x20in\x20service\x20command\x20','kind','push','\x20\x20[','105688yUYmWx','normalizedManifest','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','read','mapTo','employeeId','\x20\x20\x20\x20functionName:\x20','\x20\x20\x20\x20','userId','padEnd','code','\x20requires\x20target.functionName.','676524OxFKio','params','flags','sqlCode','tableName','\x20service\x20detail\x20--service\x20','userName','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','Preview\x20dynamic\x20service\x20command:\x20','appBindings','\x20completed\x20in\x20','startsWith','join','username','bffCode','Service\x20command\x20','validation','number','将通过\x20Service\x20Tree\x20执行“','find','tree','appcode','dbtableConfig','commands','\x20\x20MAP\x20TO','description','312781GndXLU','fromEntries','entries','895728DXzRps','appCode','479226nNksxu','app','json','type','high-risk-write','source','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','map','\x20\x20\x20\x20command:\x20','167887KNjGIn','boolean','target','now','2LYMXub','risk','`\x20to\x20inspect\x20the\x20manifest.','ctx.','sql','datasetCode','nickName','slice','fullPath','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','datatable','enum','\x20\x20\x20\x20kind:\x20\x20\x20\x20','10MJcpyU','string','service','name','appRef','flatMap','tenantCode','该命令被清单标记为写入,可能修改业务数据或服务状态。','filter','bff','envName','env','remainingArgs','Run\x20service\x20command\x20','scriptName','rawFlags','432405Wrqgfn','\x20requires\x20target.sqlCode.','trim','Cannot\x20resolve\x20datatable\x20\x22'];a39_0x4f93=function(){return _0x3f45bc;};return a39_0x4f93();}async function compilePlan(_0x2ef3b2,_0xa690a2){const _0x278801=a39_0x1016;return compileServiceTreeCommand(_0x2ef3b2,{'flags':_0xa690a2[_0x278801(0xfd)],'args':_0xa690a2[_0x278801(0x109)],'context':await buildServiceContext(_0x2ef3b2,_0xa690a2)});}async function buildServiceContext(_0x451d21,_0xedc8dc){const _0x307f55=a39_0x1016,_0x3d0d0a={'appCode':_0xedc8dc[_0x307f55(0x140)],'env':_0xedc8dc[_0x307f55(0xf8)],'envName':_0xedc8dc[_0x307f55(0xf8)]};if(!usesRuntimeContext(_0x451d21))return _0x3d0d0a;const _0x5f3ff4=await getLoginUserInfo(),_0x4dc76b=pickFirst(_0x5f3ff4[_0x307f55(0x11e)],_0x5f3ff4['id']);return{..._0x3d0d0a,'user':_0x5f3ff4,'userId':_0x4dc76b,'id':_0x5f3ff4['id'],'username':pickFirst(_0x5f3ff4[_0x307f55(0x12f)],_0x5f3ff4[_0x307f55(0x128)],_0x5f3ff4['loginName']),'userName':_0x5f3ff4['userName'],'nickname':pickFirst(_0x5f3ff4['nickname'],_0x5f3ff4[_0x307f55(0xe7)]),'nickName':_0x5f3ff4['nickName'],'tenantCode':_0x5f3ff4[_0x307f55(0xf4)],'employeeId':_0x5f3ff4[_0x307f55(0x11b)]};}function usesRuntimeContext(_0x412bb4){const _0x32a6b2=a39_0x1016;return _0x412bb4[_0x32a6b2(0x11a)]['some'](_0x841ab0=>typeof _0x841ab0[_0x32a6b2(0x146)]===_0x32a6b2(0xef)&&(_0x841ab0[_0x32a6b2(0x146)][_0x32a6b2(0x12d)]('context.')||_0x841ab0[_0x32a6b2(0x146)][_0x32a6b2(0x12d)](_0x32a6b2(0xe4))));}function pickFirst(..._0xae17ec){const _0x4f2fac=a39_0x1016;return _0xae17ec[_0x4f2fac(0x135)](_0xfb2967=>_0xfb2967!==undefined&&_0xfb2967!==null);}async function executePlan(_0x288c87,_0x22a203,_0x16f007){const _0x3c2a6d=a39_0x1016;if(_0x288c87[_0x3c2a6d(0x113)]===_0x3c2a6d(0x105)){const _0x50f583=await resolveDatasetCode(_0x288c87,_0x22a203,_0x16f007);return executeData(_0x50f583,_0x288c87[_0x3c2a6d(0x10d)],_0x288c87['params']);}if(_0x288c87[_0x3c2a6d(0x113)]===_0x3c2a6d(0xe5)){if(!_0x288c87[_0x3c2a6d(0x125)])throw CliErrors[_0x3c2a6d(0x132)]('Service\x20command\x20'+_0x22a203[_0x3c2a6d(0x103)]+_0x3c2a6d(0xff));return executeSdkSql(_0x288c87[_0x3c2a6d(0x125)],normalizeScalarParams(_0x288c87['params']));}if(_0x288c87[_0x3c2a6d(0x113)]===_0x3c2a6d(0xf7)){const _0x47216e=_0x288c87[_0x3c2a6d(0xfc)]||_0x288c87[_0x3c2a6d(0x130)]||(_0x288c87[_0x3c2a6d(0x10e)]==null?'':String(_0x288c87[_0x3c2a6d(0x10e)]));if(!_0x47216e)throw CliErrors[_0x3c2a6d(0x132)]('Service\x20command\x20'+_0x22a203[_0x3c2a6d(0x103)]+_0x3c2a6d(0x121));return executeSdkBff(_0x47216e,_0x288c87[_0x3c2a6d(0x123)]);}throw CliErrors['validation']('Unsupported\x20service\x20target\x20kind:\x20'+_0x288c87[_0x3c2a6d(0x113)]);}async function resolveDatasetCode(_0xc62d41,_0x52978f,_0x4809ad){const _0x39eb0b=a39_0x1016;if(_0xc62d41['datasetCode'])return _0xc62d41[_0x39eb0b(0xe6)];if(!_0xc62d41[_0x39eb0b(0xeb)])throw CliErrors[_0x39eb0b(0x132)](_0x39eb0b(0x131)+_0x52978f[_0x39eb0b(0x103)]+_0x39eb0b(0x129));const _0x463bb9=await listDatasets(_0x4809ad['appCode']),_0x404696=_0x463bb9[_0x39eb0b(0x135)](_0x18f5c0=>_0x18f5c0[_0x39eb0b(0x138)]?.[_0x39eb0b(0x126)]===_0xc62d41['datatable']);if(!_0x404696?.['code'])throw CliErrors[_0x39eb0b(0x132)](_0x39eb0b(0x101)+_0xc62d41['datatable']+_0x39eb0b(0xea)+_0x4809ad[_0x39eb0b(0x140)]+'.',_0x39eb0b(0x102));return _0x404696['code'];}function applyAppBinding(_0x3fa58d,_0x50164f,_0x3343bd){const _0x13b52d=a39_0x1016,_0xfb76e=_0x50164f[_0x13b52d(0xdf)][_0x13b52d(0xf2)];if(!_0xfb76e)return;const _0x293469=_0x3fa58d[_0x13b52d(0x12b)][_0xfb76e];if(!_0x293469)throw CliErrors[_0x13b52d(0x132)](_0x13b52d(0x10f)+_0xfb76e+_0x13b52d(0x112)+_0x50164f[_0x13b52d(0x103)]+'.',_0x13b52d(0x118));const _0x16c270=_0x293469[_0x13b52d(0x137)]||_0x293469[_0x13b52d(0x140)];_0x16c270&&!hasText(_0x3343bd['appcode'])&&(_0x3343bd[_0x13b52d(0x137)]=_0x16c270),_0x293469[_0x13b52d(0x142)]&&!hasText(_0x3343bd[_0x13b52d(0x142)])&&!hasText(_0x3343bd[_0x13b52d(0x137)])&&(_0x3343bd[_0x13b52d(0x142)]=_0x293469['app']),_0x293469[_0x13b52d(0xf9)]&&!hasText(_0x3343bd['env'])&&(_0x3343bd[_0x13b52d(0xf9)]=_0x293469[_0x13b52d(0xf9)]);}function a39_0x1016(_0x25845f,_0x2c9f46){_0x25845f=_0x25845f-0xda;const _0x4f93aa=a39_0x4f93();let _0x1016b8=_0x4f93aa[_0x25845f];return _0x1016b8;}function renderDynamicCommandHelp(_0xe00eed){const _0x10def2=a39_0x1016,_0x107385=['\x20\x20SERVICE\x20TREE\x20TARGET',_0x10def2(0xed)+_0xe00eed[_0x10def2(0xdf)]['kind'],_0x10def2(0xdc)+_0xe00eed['target'][_0x10def2(0x10d)]];if(_0xe00eed[_0x10def2(0xdf)][_0x10def2(0xe6)])_0x107385[_0x10def2(0x114)](_0x10def2(0x108)+_0xe00eed[_0x10def2(0xdf)][_0x10def2(0xe6)]);if(_0xe00eed[_0x10def2(0xdf)][_0x10def2(0xeb)])_0x107385[_0x10def2(0x114)]('\x20\x20\x20\x20datatable:\x20'+_0xe00eed[_0x10def2(0xdf)][_0x10def2(0xeb)]);if(_0xe00eed['target']['sqlCode'])_0x107385['push'](_0x10def2(0x110)+_0xe00eed[_0x10def2(0xdf)][_0x10def2(0x125)]);if(_0xe00eed[_0x10def2(0xdf)][_0x10def2(0xfc)])_0x107385[_0x10def2(0x114)](_0x10def2(0x11c)+_0xe00eed[_0x10def2(0xdf)][_0x10def2(0xfc)]);if(_0xe00eed[_0x10def2(0x11a)][_0x10def2(0x106)]>0x0){_0x107385[_0x10def2(0x114)]('',_0x10def2(0x13a));for(const _0x5c8049 of _0xe00eed['mapTo']){_0x107385['push'](_0x10def2(0x11d)+(_0x5c8049[_0x10def2(0x146)]||'const')+_0x10def2(0x111)+_0x5c8049['target']+(_0x5c8049[_0x10def2(0x107)]?'.'+_0x5c8049[_0x10def2(0x107)]:''));}}return _0x107385['join']('\x0a');}function targetPreview(_0x1dfe26){const _0x4b45b0=a39_0x1016;return{'kind':_0x1dfe26[_0x4b45b0(0x113)],'command':_0x1dfe26['command'],'appRef':_0x1dfe26[_0x4b45b0(0xf2)],'datasetCode':_0x1dfe26['datasetCode'],'datatable':_0x1dfe26[_0x4b45b0(0xeb)],'sqlCode':_0x1dfe26[_0x4b45b0(0x125)],'bffCode':_0x1dfe26[_0x4b45b0(0x130)],'bffId':_0x1dfe26[_0x4b45b0(0x10e)],'functionName':_0x1dfe26[_0x4b45b0(0xfc)]};}function normalizeScalarParams(_0xdcdd63){const _0x4a09b4=a39_0x1016;return Object[_0x4a09b4(0x13d)](Object[_0x4a09b4(0x13e)](_0xdcdd63)[_0x4a09b4(0xf6)](([,_0x198cea])=>typeof _0x198cea===_0x4a09b4(0xef)||typeof _0x198cea===_0x4a09b4(0x133)));}function hasText(_0x1ef646){const _0x1bca89=a39_0x1016;return typeof _0x1ef646===_0x1bca89(0xef)&&_0x1ef646[_0x1bca89(0x100)]()[_0x1bca89(0x106)]>0x0;}function isPrimitiveFlagDefault(_0xe3162f){const _0x375a22=a39_0x1016;return _0xe3162f===undefined||typeof _0xe3162f===_0x375a22(0xef)||typeof _0xe3162f===_0x375a22(0x133)||typeof _0xe3162f===_0x375a22(0xde);}
1
+ (function(_0x1c9013,_0x41fbe6){const _0x3ff093=a39_0x2a2a,_0x4b0377=_0x1c9013();while(!![]){try{const _0x47ddfe=parseInt(_0x3ff093(0x132))/0x1*(parseInt(_0x3ff093(0x115))/0x2)+-parseInt(_0x3ff093(0x121))/0x3*(-parseInt(_0x3ff093(0x122))/0x4)+parseInt(_0x3ff093(0x120))/0x5*(-parseInt(_0x3ff093(0x16d))/0x6)+parseInt(_0x3ff093(0x114))/0x7*(parseInt(_0x3ff093(0x116))/0x8)+parseInt(_0x3ff093(0x163))/0x9+-parseInt(_0x3ff093(0x129))/0xa*(-parseInt(_0x3ff093(0x149))/0xb)+-parseInt(_0x3ff093(0x152))/0xc;if(_0x47ddfe===_0x41fbe6)break;else _0x4b0377['push'](_0x4b0377['shift']());}catch(_0x534099){_0x4b0377['push'](_0x4b0377['shift']());}}}(a39_0x5d69,0xb6646));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';function a39_0x5d69(){const _0x4175cc=['\x20\x20MAP\x20TO','risk','find','12xhucQk','rawFlags','ctx.','source','employeeId','read','\x20requires\x20target.functionName.','length','loginName','cliPath','\x20completed\x20in\x20','bffCode','entries','startsWith','fullPath','string','required','dbtableConfig','commands','\x20\x20\x20\x20functionName:\x20','bffId','flatMap','filter','102905pycrwU','context.','join','command','scriptName','\x20\x20\x20\x20datasetCode:\x20','normalizedManifest','\x20\x20\x20\x20kind:\x20\x20\x20\x20','enum','7379556ZsydiD','Cannot\x20resolve\x20datatable\x20\x22','datasetCode','flags','json','name','env','SERVICE_TREE','trim','appCode','\x20service\x20detail\x20--service\x20','slice','tree','fromEntries','operator','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','2861298Xqlano','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x22\x20in\x20service\x20command\x20','Use\x20`','code','Unsupported\x20service\x20target\x20kind:\x20','kind','appBindings','datatable','\x20\x20SERVICE\x20TREE\x20TARGET','282bgBEfk','params','const','target','\x20\x20\x20\x20','validation','envName','Preview\x20dynamic\x20service\x20command:\x20','Unknown\x20appRef\x20\x22','\x20<command>\x20[flags]','sql','service','Run\x20service\x20command\x20','high-risk-write','args','\x20\x20\x20\x20command:\x20','default','1840706qlUPhZ','91234HsrknO','8njmBSB','map','sqlCode','boolean','remainingArgs','nickName','app','description','type','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','87685JkaOLa','2559XXyawm','48FsFVGy','mapTo','tableName','data','number','push','appcode','1120FzDmYV','userName','Service\x20command\x20','\x20\x20[','now','\x20requires\x20target.datasetCode\x20or\x20target.datatable.'];a39_0x5d69=function(){return _0x4175cc;};return a39_0x5d69();}import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x6fb0d8,_0x5d97da){const _0x33ac41=a39_0x2a2a,_0x2ed5ad=listLocalServiceTrees();let _0x3cba32;for(const _0x280f16 of _0x2ed5ad){const _0x466e24=matchServiceTreeCommand(_0x280f16,_0x6fb0d8);if(!_0x466e24)continue;(!_0x3cba32||_0x466e24['command']['fullPath'][_0x33ac41(0x139)]>_0x3cba32[_0x33ac41(0x14c)]['fullPath'][_0x33ac41(0x139)])&&(_0x3cba32={'tree':_0x280f16,'command':_0x466e24[_0x33ac41(0x14c)],'remainingArgs':_0x466e24[_0x33ac41(0x11a)]});}if(!_0x3cba32)return undefined;const _0x312c92={..._0x5d97da};return applyAppBinding(_0x3cba32[_0x33ac41(0x15e)],_0x3cba32[_0x33ac41(0x14c)],_0x312c92),{'definition':buildDynamicCommandDefinition(_0x3cba32[_0x33ac41(0x15e)],_0x3cba32[_0x33ac41(0x14c)]),'args':_0x3cba32[_0x33ac41(0x11a)],'flags':_0x312c92,'tree':_0x3cba32[_0x33ac41(0x15e)],'command':_0x3cba32[_0x33ac41(0x14c)]};}export function generateDynamicServiceHelp(_0x440602){const _0x1ad555=a39_0x2a2a,_0x442016=listLocalServiceTrees()[_0x1ad555(0x131)](_0x501fd3=>_0x501fd3[_0x1ad555(0x10e)][_0x1ad555(0x167)]===_0x440602);if(!_0x442016)return undefined;const _0x1e5616=[CLI_BIN_NAME+'\x20'+_0x440602+_0x1ad555(0x10c),'',_0x442016['service']['name']||_0x440602,_0x442016[_0x1ad555(0x10e)]['description']?'\x20\x20'+_0x442016[_0x1ad555(0x10e)][_0x1ad555(0x11d)]:'','','Commands:',..._0x442016[_0x1ad555(0x144)][_0x1ad555(0x117)](_0x42e7f8=>{const _0xd11701=_0x1ad555,_0x1a637d=_0x42e7f8[_0xd11701(0x140)][_0xd11701(0x15d)](0x1)['join']('\x20'),_0x44d965=_0x42e7f8[_0xd11701(0x130)]===_0xd11701(0x137)?'':'\x20['+_0x42e7f8[_0xd11701(0x130)]+']';return'\x20\x20'+_0x1a637d['padEnd'](0x18)+'\x20'+(_0x42e7f8[_0xd11701(0x11d)]||'')+_0x44d965;}),'',_0x1ad555(0x166)+CLI_BIN_NAME+_0x1ad555(0x15c)+_0x440602+'`\x20to\x20inspect\x20the\x20manifest.'][_0x1ad555(0x148)](Boolean);return _0x1e5616[_0x1ad555(0x14b)]('\x0a');}export function listDynamicServiceEntries(){const _0x33110f=a39_0x2a2a;return listLocalServices()[_0x33110f(0x117)](_0x41ed0a=>{const _0x373107=_0x33110f,_0x1e3eec=_0x41ed0a[_0x373107(0x14f)];return{'service':_0x1e3eec['service'][_0x373107(0x167)],'label':_0x1e3eec[_0x373107(0x10e)]['name']||_0x1e3eec[_0x373107(0x10e)][_0x373107(0x167)],'commands':_0x1e3eec[_0x373107(0x144)][_0x373107(0x117)](_0x564abf=>({'command':dynamicCommandName(_0x564abf),'description':_0x564abf[_0x373107(0x11d)]||'Run\x20service\x20command\x20'+_0x564abf[_0x373107(0x13b)],'tag':riskTag(_0x564abf[_0x373107(0x130)])}))};});}export function getDynamicServiceEntry(_0x26b649){const _0x16d3e5=a39_0x2a2a;return listDynamicServiceEntries()['find'](_0x21dc1b=>_0x21dc1b[_0x16d3e5(0x10e)]===_0x26b649);}export function listDynamicServiceDefinitions(_0x22503e){const _0x341910=a39_0x2a2a;return listLocalServiceTrees()[_0x341910(0x148)](_0x517b9f=>!_0x22503e||_0x517b9f['service'][_0x341910(0x167)]===_0x22503e)[_0x341910(0x147)](_0x2020b5=>_0x2020b5[_0x341910(0x144)]['map'](_0x1e01bf=>buildDynamicCommandDefinition(_0x2020b5,_0x1e01bf)));}export function getDynamicServiceDefinitions(_0x259ace){const _0x45f6c7=a39_0x2a2a,_0x1622bc=listDynamicServiceDefinitions(_0x259ace);return _0x1622bc[_0x45f6c7(0x139)]>0x0?_0x1622bc:undefined;}export function findDynamicServiceDefinition(_0x11ab3a,_0x276ae4){return listDynamicServiceDefinitions(_0x11ab3a)['find'](_0x2614ac=>_0x2614ac['command']===_0x276ae4);}export function buildDynamicCommandDefinition(_0x68cf76,_0x492c7c){const _0x158d9e=a39_0x2a2a;return{'service':_0x68cf76[_0x158d9e(0x10e)][_0x158d9e(0x167)],'command':dynamicCommandName(_0x492c7c),'description':_0x492c7c['description']||_0x158d9e(0x10f)+_0x492c7c[_0x158d9e(0x13b)],'risk':_0x492c7c[_0x158d9e(0x130)],..._0x492c7c[_0x158d9e(0x130)]===_0x158d9e(0x137)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x492c7c)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x492c7c[_0x158d9e(0x111)][_0x158d9e(0x117)](_0x83103=>({'name':_0x83103['name'],'description':_0x83103['description']||_0x83103[_0x158d9e(0x157)],'required':_0x83103[_0x158d9e(0x142)]})),'flags':_0x492c7c[_0x158d9e(0x155)][_0x158d9e(0x117)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x492c7c),async 'dryRun'(_0x244e93){const _0x59fbfe=_0x158d9e,_0x39b8f9=await compilePlan(_0x492c7c,_0x244e93);return{'method':_0x59fbfe(0x159),'url':_0x492c7c[_0x59fbfe(0x13b)],'body':{'target':targetPreview(_0x39b8f9),'params':_0x39b8f9[_0x59fbfe(0x104)]},'description':_0x59fbfe(0x10a)+_0x492c7c[_0x59fbfe(0x13b)]};},async 'execute'(_0x1825ee){const _0x83a7e1=_0x158d9e,_0x34a687=await compilePlan(_0x492c7c,_0x1825ee),_0x4bb982=Date[_0x83a7e1(0x12d)](),_0x3b8870=await executePlan(_0x34a687,_0x492c7c,_0x1825ee),_0x35b305=Date['now']()-_0x4bb982;return{'ok':!![],'data':{'service':_0x68cf76['service'],'command':_0x492c7c[_0x83a7e1(0x13b)],'target':targetPreview(_0x34a687),'result':_0x3b8870,'elapsed':_0x35b305},'message':'Service\x20command\x20'+_0x492c7c['cliPath']+_0x83a7e1(0x13c)+_0x35b305+'ms'};}};}function a39_0x2a2a(_0x4a8b59,_0x555ac0){_0x4a8b59=_0x4a8b59-0x104;const _0x5d696b=a39_0x5d69();let _0x2a2a80=_0x5d696b[_0x4a8b59];return _0x2a2a80;}function buildDynamicConfirmationDescription(_0x3a6562){const _0x43735e=a39_0x2a2a,_0x450e6c=_0x3a6562['description']||_0x3a6562['cliPath'],_0x39ab23=_0x3a6562[_0x43735e(0x130)]===_0x43735e(0x110)?_0x43735e(0x162):'该命令被清单标记为写入,可能修改业务数据或服务状态。';return'将通过\x20Service\x20Tree\x20执行“'+_0x450e6c+'”。'+_0x39ab23;}function dynamicCommandName(_0x3b6e2d){const _0x3f8c02=a39_0x2a2a;return _0x3b6e2d['fullPath'][_0x3f8c02(0x15d)](0x1)['join']('\x20');}function riskTag(_0x39df72){const _0x43ff0d=a39_0x2a2a;return _0x39df72===_0x43ff0d(0x137)?'':_0x43ff0d(0x12c)+_0x39df72+']';}function flagToCommandFlag(_0xbd97ea){const _0x50ea14=a39_0x2a2a;return{'name':_0xbd97ea['cliName'],'type':_0xbd97ea['type']===_0x50ea14(0x156)?'string':_0xbd97ea[_0x50ea14(0x11e)],'description':_0xbd97ea['description']||_0xbd97ea['name'],'required':_0xbd97ea['required'],'default':isPrimitiveFlagDefault(_0xbd97ea[_0x50ea14(0x113)])?_0xbd97ea[_0x50ea14(0x113)]:undefined,'enum':_0xbd97ea[_0x50ea14(0x151)]};}async function compilePlan(_0x1de236,_0x57f120){const _0x1b4d01=a39_0x2a2a;return compileServiceTreeCommand(_0x1de236,{'flags':_0x57f120[_0x1b4d01(0x133)],'args':_0x57f120['args'],'context':await buildServiceContext(_0x1de236,_0x57f120)});}async function buildServiceContext(_0x144d5b,_0x3c3901){const _0x4565a3=a39_0x2a2a,_0x1afddf={'appCode':_0x3c3901[_0x4565a3(0x15b)],'env':_0x3c3901[_0x4565a3(0x109)],'envName':_0x3c3901[_0x4565a3(0x109)]};if(!usesRuntimeContext(_0x144d5b))return _0x1afddf;const _0x3771f9=await getLoginUserInfo(),_0x4de957=pickFirst(_0x3771f9['userId'],_0x3771f9['id']);return{..._0x1afddf,'user':_0x3771f9,'userId':_0x4de957,'id':_0x3771f9['id'],'username':pickFirst(_0x3771f9['username'],_0x3771f9[_0x4565a3(0x12a)],_0x3771f9[_0x4565a3(0x13a)]),'userName':_0x3771f9[_0x4565a3(0x12a)],'nickname':pickFirst(_0x3771f9['nickname'],_0x3771f9[_0x4565a3(0x11b)]),'nickName':_0x3771f9[_0x4565a3(0x11b)],'tenantCode':_0x3771f9['tenantCode'],'employeeId':_0x3771f9[_0x4565a3(0x136)]};}function usesRuntimeContext(_0x178a5d){const _0x4ec600=a39_0x2a2a;return _0x178a5d[_0x4ec600(0x123)]['some'](_0x3dbadd=>typeof _0x3dbadd[_0x4ec600(0x135)]==='string'&&(_0x3dbadd[_0x4ec600(0x135)][_0x4ec600(0x13f)](_0x4ec600(0x14a))||_0x3dbadd[_0x4ec600(0x135)][_0x4ec600(0x13f)](_0x4ec600(0x134))));}function pickFirst(..._0x3446c7){const _0x4def41=a39_0x2a2a;return _0x3446c7[_0x4def41(0x131)](_0x52fc70=>_0x52fc70!==undefined&&_0x52fc70!==null);}async function executePlan(_0x262a55,_0xf66fb5,_0x2e2810){const _0x2b3f86=a39_0x2a2a;if(_0x262a55[_0x2b3f86(0x169)]===_0x2b3f86(0x125)){const _0x44cf1b=await resolveDatasetCode(_0x262a55,_0xf66fb5,_0x2e2810);return executeData(_0x44cf1b,_0x262a55[_0x2b3f86(0x14c)],_0x262a55['params']);}if(_0x262a55[_0x2b3f86(0x169)]===_0x2b3f86(0x10d)){if(!_0x262a55[_0x2b3f86(0x118)])throw CliErrors['validation'](_0x2b3f86(0x12b)+_0xf66fb5[_0x2b3f86(0x13b)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x262a55[_0x2b3f86(0x118)],normalizeScalarParams(_0x262a55[_0x2b3f86(0x104)]));}if(_0x262a55[_0x2b3f86(0x169)]==='bff'){const _0x15df31=_0x262a55[_0x2b3f86(0x14d)]||_0x262a55[_0x2b3f86(0x13d)]||(_0x262a55['bffId']==null?'':String(_0x262a55[_0x2b3f86(0x146)]));if(!_0x15df31)throw CliErrors[_0x2b3f86(0x108)]('Service\x20command\x20'+_0xf66fb5['cliPath']+_0x2b3f86(0x138));return executeSdkBff(_0x15df31,_0x262a55[_0x2b3f86(0x104)]);}throw CliErrors['validation'](_0x2b3f86(0x168)+_0x262a55[_0x2b3f86(0x169)]);}async function resolveDatasetCode(_0x2bd571,_0x2ab5c6,_0x42d334){const _0x1eb22c=a39_0x2a2a;if(_0x2bd571[_0x1eb22c(0x154)])return _0x2bd571[_0x1eb22c(0x154)];if(!_0x2bd571[_0x1eb22c(0x16b)])throw CliErrors[_0x1eb22c(0x108)]('Service\x20command\x20'+_0x2ab5c6[_0x1eb22c(0x13b)]+_0x1eb22c(0x12e));const _0x4f1b5a=await listDatasets(_0x42d334[_0x1eb22c(0x15b)]),_0x5c0437=_0x4f1b5a[_0x1eb22c(0x131)](_0x56130c=>_0x56130c[_0x1eb22c(0x143)]?.[_0x1eb22c(0x124)]===_0x2bd571[_0x1eb22c(0x16b)]);if(!_0x5c0437?.[_0x1eb22c(0x167)])throw CliErrors['validation'](_0x1eb22c(0x153)+_0x2bd571[_0x1eb22c(0x16b)]+_0x1eb22c(0x161)+_0x42d334[_0x1eb22c(0x15b)]+'.',_0x1eb22c(0x164));return _0x5c0437['code'];}function applyAppBinding(_0xc7103b,_0x11ac93,_0x4146bd){const _0x2fd387=a39_0x2a2a,_0x3962a4=_0x11ac93[_0x2fd387(0x106)]['appRef'];if(!_0x3962a4)return;const _0x5a778b=_0xc7103b[_0x2fd387(0x16a)][_0x3962a4];if(!_0x5a778b)throw CliErrors[_0x2fd387(0x108)](_0x2fd387(0x10b)+_0x3962a4+_0x2fd387(0x165)+_0x11ac93[_0x2fd387(0x13b)]+'.',_0x2fd387(0x11f));const _0x4e7372=_0x5a778b['appcode']||_0x5a778b[_0x2fd387(0x15b)];_0x4e7372&&!hasText(_0x4146bd[_0x2fd387(0x128)])&&(_0x4146bd['appcode']=_0x4e7372),_0x5a778b[_0x2fd387(0x11c)]&&!hasText(_0x4146bd['app'])&&!hasText(_0x4146bd[_0x2fd387(0x128)])&&(_0x4146bd['app']=_0x5a778b[_0x2fd387(0x11c)]),_0x5a778b['env']&&!hasText(_0x4146bd['env'])&&(_0x4146bd[_0x2fd387(0x158)]=_0x5a778b[_0x2fd387(0x158)]);}function renderDynamicCommandHelp(_0x209c0d){const _0x4155e3=a39_0x2a2a,_0xb1e0c9=[_0x4155e3(0x16c),_0x4155e3(0x150)+_0x209c0d[_0x4155e3(0x106)][_0x4155e3(0x169)],_0x4155e3(0x112)+_0x209c0d[_0x4155e3(0x106)]['command']];if(_0x209c0d[_0x4155e3(0x106)][_0x4155e3(0x154)])_0xb1e0c9[_0x4155e3(0x127)](_0x4155e3(0x14e)+_0x209c0d[_0x4155e3(0x106)][_0x4155e3(0x154)]);if(_0x209c0d['target'][_0x4155e3(0x16b)])_0xb1e0c9[_0x4155e3(0x127)]('\x20\x20\x20\x20datatable:\x20'+_0x209c0d[_0x4155e3(0x106)][_0x4155e3(0x16b)]);if(_0x209c0d[_0x4155e3(0x106)]['sqlCode'])_0xb1e0c9[_0x4155e3(0x127)]('\x20\x20\x20\x20sqlCode:\x20'+_0x209c0d[_0x4155e3(0x106)][_0x4155e3(0x118)]);if(_0x209c0d[_0x4155e3(0x106)][_0x4155e3(0x14d)])_0xb1e0c9[_0x4155e3(0x127)](_0x4155e3(0x145)+_0x209c0d[_0x4155e3(0x106)][_0x4155e3(0x14d)]);if(_0x209c0d[_0x4155e3(0x123)]['length']>0x0){_0xb1e0c9['push']('',_0x4155e3(0x12f));for(const _0x303618 of _0x209c0d[_0x4155e3(0x123)]){_0xb1e0c9['push'](_0x4155e3(0x107)+(_0x303618[_0x4155e3(0x135)]||_0x4155e3(0x105))+'\x20->\x20'+_0x303618[_0x4155e3(0x106)]+(_0x303618[_0x4155e3(0x160)]?'.'+_0x303618[_0x4155e3(0x160)]:''));}}return _0xb1e0c9['join']('\x0a');}function targetPreview(_0x16c27f){const _0x3a5a80=a39_0x2a2a;return{'kind':_0x16c27f[_0x3a5a80(0x169)],'command':_0x16c27f[_0x3a5a80(0x14c)],'appRef':_0x16c27f['appRef'],'datasetCode':_0x16c27f[_0x3a5a80(0x154)],'datatable':_0x16c27f[_0x3a5a80(0x16b)],'sqlCode':_0x16c27f[_0x3a5a80(0x118)],'bffCode':_0x16c27f[_0x3a5a80(0x13d)],'bffId':_0x16c27f[_0x3a5a80(0x146)],'functionName':_0x16c27f[_0x3a5a80(0x14d)]};}function normalizeScalarParams(_0x249988){const _0x1c25ea=a39_0x2a2a;return Object[_0x1c25ea(0x15f)](Object[_0x1c25ea(0x13e)](_0x249988)[_0x1c25ea(0x148)](([,_0x27bbc8])=>typeof _0x27bbc8===_0x1c25ea(0x141)||typeof _0x27bbc8===_0x1c25ea(0x126)));}function hasText(_0x41d165){const _0x46ea1c=a39_0x2a2a;return typeof _0x41d165==='string'&&_0x41d165[_0x46ea1c(0x15a)]()['length']>0x0;}function isPrimitiveFlagDefault(_0x4c6583){const _0x9f7d32=a39_0x2a2a;return _0x4c6583===undefined||typeof _0x4c6583===_0x9f7d32(0x141)||typeof _0x4c6583===_0x9f7d32(0x126)||typeof _0x4c6583===_0x9f7d32(0x119);}
@@ -1 +1 @@
1
- (function(_0x435519,_0x2b20d6){const _0x44ba5f=a40_0x414f,_0x53dde0=_0x435519();while(!![]){try{const _0x327981=parseInt(_0x44ba5f(0xd1))/0x1*(parseInt(_0x44ba5f(0xc8))/0x2)+-parseInt(_0x44ba5f(0xcf))/0x3+parseInt(_0x44ba5f(0xe5))/0x4*(parseInt(_0x44ba5f(0xcb))/0x5)+-parseInt(_0x44ba5f(0xe7))/0x6*(-parseInt(_0x44ba5f(0xde))/0x7)+parseInt(_0x44ba5f(0xda))/0x8+parseInt(_0x44ba5f(0xc5))/0x9+parseInt(_0x44ba5f(0xe8))/0xa*(-parseInt(_0x44ba5f(0xdd))/0xb);if(_0x327981===_0x2b20d6)break;else _0x53dde0['push'](_0x53dde0['shift']());}catch(_0x42e0ff){_0x53dde0['push'](_0x53dde0['shift']());}}}(a40_0x3728,0x48311));export function adaptServiceTreeManifestForLegacyFramework(_0x142e8b){const _0xcc168d=a40_0x414f,_0x3e7c28=cloneJsonValue(_0x142e8b),_0x49b2af=[];if(!isObjectRecord(_0x3e7c28))return{'manifest':_0x3e7c28,'errors':_0x49b2af};return Array[_0xcc168d(0xd8)](_0x3e7c28['commands'])&&_0x3e7c28[_0xcc168d(0xd7)]['forEach']((_0x368d7b,_0x2bbac0)=>{const _0x1e1095=_0xcc168d;if(!isObjectRecord(_0x368d7b))return;adaptBffTarget(_0x368d7b['target'],_0x1e1095(0xe1)+_0x2bbac0+_0x1e1095(0xd5),_0x49b2af);}),adaptResources(_0x3e7c28[_0xcc168d(0xc7)],'$.resources',_0x49b2af),{'manifest':_0x3e7c28,'errors':_0x49b2af};}export function toPublicServiceTreeTarget(_0x10df86){const _0x56a4a9=a40_0x414f,{scriptName:_0x2bd314,..._0x2707ff}=_0x10df86;return typeof _0x2bd314===_0x56a4a9(0xd6)&&_0x2bd314['trim']()&&(_0x2707ff[_0x56a4a9(0xe4)]=_0x2bd314),_0x2707ff;}export function toPublicNormalizedServiceTree(_0x4acbb8){const _0x4b2de1=a40_0x414f;return{..._0x4acbb8,'commands':_0x4acbb8[_0x4b2de1(0xd7)]['map'](_0x2553c2=>({..._0x2553c2,'target':toPublicServiceTreeTarget(_0x2553c2['target'])}))};}function adaptResources(_0x172caf,_0x368788,_0x28ec4b){const _0x1d6945=a40_0x414f;if(!isObjectRecord(_0x172caf))return;for(const [_0x1e35ea,_0x4b75c4]of Object['entries'](_0x172caf)){if(!isObjectRecord(_0x4b75c4))continue;const _0x2cc685=_0x368788+'.'+_0x1e35ea;if(isObjectRecord(_0x4b75c4[_0x1d6945(0xe3)]))for(const [_0x2d0e8b,_0x4db0ed]of Object['entries'](_0x4b75c4[_0x1d6945(0xe3)])){if(!isObjectRecord(_0x4db0ed))continue;const _0xd14291=_0x2cc685+_0x1d6945(0xd0)+_0x2d0e8b,_0x5059c1=isObjectRecord(_0x4db0ed[_0x1d6945(0xd2)])&&_0x4db0ed[_0x1d6945(0xd2)][_0x1d6945(0xe0)]===_0x1d6945(0xe9);adaptBffTarget(_0x4db0ed[_0x1d6945(0xd2)],_0xd14291+_0x1d6945(0xcc),_0x28ec4b),(_0x5059c1||isBffAction(_0x4db0ed))&&adaptFunctionNameField(_0x4db0ed,_0xd14291,_0x28ec4b);}adaptResources(_0x4b75c4['resources'],_0x2cc685+'.resources',_0x28ec4b);}}function adaptBffTarget(_0x58b194,_0x576622,_0x5b533){const _0x10f20d=a40_0x414f;if(!isObjectRecord(_0x58b194)||_0x58b194[_0x10f20d(0xe0)]!=='bff')return;adaptFunctionNameField(_0x58b194,_0x576622,_0x5b533);}function adaptFunctionNameField(_0x42c354,_0x1486ae,_0x705c6b){const _0x133802=a40_0x414f;Object[_0x133802(0xdb)][_0x133802(0xc9)][_0x133802(0xe6)](_0x42c354,_0x133802(0xdc))&&_0x705c6b[_0x133802(0xca)]({'level':_0x133802(0xd4),'path':_0x1486ae+_0x133802(0xc6),'message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object[_0x133802(0xdb)][_0x133802(0xc9)]['call'](_0x42c354,_0x133802(0xe4))){if(typeof _0x42c354[_0x133802(0xe4)]!==_0x133802(0xd6)||!_0x42c354[_0x133802(0xe4)]['trim']()){_0x705c6b[_0x133802(0xca)]({'level':_0x133802(0xd4),'path':_0x1486ae+_0x133802(0xcd),'message':_0x133802(0xdf)}),delete _0x42c354[_0x133802(0xe4)];return;}_0x42c354[_0x133802(0xdc)]=_0x42c354[_0x133802(0xe4)],delete _0x42c354[_0x133802(0xe4)];}}function isBffAction(_0x2b09d4){const _0x2bc636=a40_0x414f;return _0x2b09d4['kind']===_0x2bc636(0xe9)||_0x2b09d4[_0x2bc636(0xd3)]===_0x2bc636(0xea)||_0x2b09d4[_0x2bc636(0xd2)]==='bff.exec';}function a40_0x3728(){const _0x3bb778=['$.commands[','map','actions','functionName','739156AyuVRC','call','1292466waUNlg','270NFMLdj','bff','bff.exec','object','1518561viszig','.scriptName','resources','782XBKPIE','hasOwnProperty','push','10SIDkUs','.target','.functionName','fromEntries','78825CFTIMB','.actions.','1246ANRdYG','target','action','error','].target','string','commands','isArray','entries','2408072tWQJnI','prototype','scriptName','497013URJFWm','7FWvmNS','functionName\x20must\x20be\x20a\x20non-empty\x20string.','kind'];a40_0x3728=function(){return _0x3bb778;};return a40_0x3728();}function a40_0x414f(_0x39c9b7,_0x35be44){_0x39c9b7=_0x39c9b7-0xc5;const _0x372875=a40_0x3728();let _0x414fe1=_0x372875[_0x39c9b7];return _0x414fe1;}function cloneJsonValue(_0x2ea436){const _0x5a1a57=a40_0x414f;if(Array[_0x5a1a57(0xd8)](_0x2ea436))return _0x2ea436[_0x5a1a57(0xe2)](_0x3e22a2=>cloneJsonValue(_0x3e22a2));if(isObjectRecord(_0x2ea436))return Object[_0x5a1a57(0xce)](Object[_0x5a1a57(0xd9)](_0x2ea436)['map'](([_0x3721f6,_0x2fb72e])=>[_0x3721f6,cloneJsonValue(_0x2fb72e)]));return _0x2ea436;}function isObjectRecord(_0x5c0dd6){const _0xe0917=a40_0x414f;return Boolean(_0x5c0dd6)&&typeof _0x5c0dd6===_0xe0917(0xeb)&&!Array[_0xe0917(0xd8)](_0x5c0dd6);}
1
+ (function(_0x27bc4f,_0x31e9fc){const _0x44e5fe=a40_0x4298,_0x229585=_0x27bc4f();while(!![]){try{const _0x2d3d3d=parseInt(_0x44e5fe(0xbe))/0x1*(parseInt(_0x44e5fe(0xd8))/0x2)+parseInt(_0x44e5fe(0xdc))/0x3*(parseInt(_0x44e5fe(0xc3))/0x4)+-parseInt(_0x44e5fe(0xbf))/0x5*(parseInt(_0x44e5fe(0xc6))/0x6)+parseInt(_0x44e5fe(0xc0))/0x7+-parseInt(_0x44e5fe(0xd5))/0x8+-parseInt(_0x44e5fe(0xc7))/0x9+parseInt(_0x44e5fe(0xc8))/0xa;if(_0x2d3d3d===_0x31e9fc)break;else _0x229585['push'](_0x229585['shift']());}catch(_0x1c344f){_0x229585['push'](_0x229585['shift']());}}}(a40_0x11d2,0x379fd));export function adaptServiceTreeManifestForLegacyFramework(_0x47ac26){const _0x4c0501=a40_0x4298,_0x24bdab=cloneJsonValue(_0x47ac26),_0x1058ac=[];if(!isObjectRecord(_0x24bdab))return{'manifest':_0x24bdab,'errors':_0x1058ac};return Array['isArray'](_0x24bdab[_0x4c0501(0xde)])&&_0x24bdab['commands'][_0x4c0501(0xd3)]((_0x14aa81,_0x564e5a)=>{const _0x501576=_0x4c0501;if(!isObjectRecord(_0x14aa81))return;adaptBffTarget(_0x14aa81['target'],_0x501576(0xd4)+_0x564e5a+_0x501576(0xe1),_0x1058ac);}),adaptResources(_0x24bdab[_0x4c0501(0xd1)],_0x4c0501(0xc1),_0x1058ac),{'manifest':_0x24bdab,'errors':_0x1058ac};}function a40_0x11d2(){const _0x2b4f3e=['6SHTSaU','3507669QRpiVL','3142640ZfhNUi','hasOwnProperty','actions','push','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','string','error','bff','bff.exec','resources','entries','forEach','$.commands[','3332448kUagtM','prototype','trim','88JXVBYN','call','map','.target','12969dHqPdF','scriptName','commands','.scriptName','.functionName','].target','.actions.','target','.resources','functionName','7969uOgwNM','1182130QmfnNb','2635787VtbNSK','$.resources','kind','212yCnhYp','fromEntries','isArray'];a40_0x11d2=function(){return _0x2b4f3e;};return a40_0x11d2();}export function toPublicServiceTreeTarget(_0x7cf9e8){const _0x960a77=a40_0x4298,{scriptName:_0x5c454c,..._0x29f2f9}=_0x7cf9e8;return typeof _0x5c454c===_0x960a77(0xcd)&&_0x5c454c['trim']()&&(_0x29f2f9['functionName']=_0x5c454c),_0x29f2f9;}export function toPublicNormalizedServiceTree(_0x4e673c){const _0x1b05e8=a40_0x4298;return{..._0x4e673c,'commands':_0x4e673c[_0x1b05e8(0xde)][_0x1b05e8(0xda)](_0x9571bc=>({..._0x9571bc,'target':toPublicServiceTreeTarget(_0x9571bc[_0x1b05e8(0xe3)])}))};}function adaptResources(_0x113371,_0xfa6cc8,_0xbfa207){const _0x28a294=a40_0x4298;if(!isObjectRecord(_0x113371))return;for(const [_0xa63e5c,_0x4c574d]of Object[_0x28a294(0xd2)](_0x113371)){if(!isObjectRecord(_0x4c574d))continue;const _0x335bef=_0xfa6cc8+'.'+_0xa63e5c;if(isObjectRecord(_0x4c574d['actions']))for(const [_0x1dcac1,_0x3e3432]of Object['entries'](_0x4c574d[_0x28a294(0xca)])){if(!isObjectRecord(_0x3e3432))continue;const _0x59a189=_0x335bef+_0x28a294(0xe2)+_0x1dcac1,_0x2f516c=isObjectRecord(_0x3e3432[_0x28a294(0xe3)])&&_0x3e3432['target'][_0x28a294(0xc2)]==='bff';adaptBffTarget(_0x3e3432[_0x28a294(0xe3)],_0x59a189+_0x28a294(0xdb),_0xbfa207),(_0x2f516c||isBffAction(_0x3e3432))&&adaptFunctionNameField(_0x3e3432,_0x59a189,_0xbfa207);}adaptResources(_0x4c574d[_0x28a294(0xd1)],_0x335bef+_0x28a294(0xe4),_0xbfa207);}}function adaptBffTarget(_0x3ed718,_0x5c30bd,_0x51903d){const _0x5963dd=a40_0x4298;if(!isObjectRecord(_0x3ed718)||_0x3ed718[_0x5963dd(0xc2)]!=='bff')return;adaptFunctionNameField(_0x3ed718,_0x5c30bd,_0x51903d);}function adaptFunctionNameField(_0x5681cf,_0x346775,_0x26fdd5){const _0xf6c9a6=a40_0x4298;Object['prototype'][_0xf6c9a6(0xc9)]['call'](_0x5681cf,_0xf6c9a6(0xdd))&&_0x26fdd5[_0xf6c9a6(0xcb)]({'level':_0xf6c9a6(0xce),'path':_0x346775+_0xf6c9a6(0xdf),'message':_0xf6c9a6(0xcc)});if(Object[_0xf6c9a6(0xd6)][_0xf6c9a6(0xc9)][_0xf6c9a6(0xd9)](_0x5681cf,_0xf6c9a6(0xbd))){if(typeof _0x5681cf[_0xf6c9a6(0xbd)]!==_0xf6c9a6(0xcd)||!_0x5681cf[_0xf6c9a6(0xbd)][_0xf6c9a6(0xd7)]()){_0x26fdd5[_0xf6c9a6(0xcb)]({'level':_0xf6c9a6(0xce),'path':_0x346775+_0xf6c9a6(0xe0),'message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x5681cf[_0xf6c9a6(0xbd)];return;}_0x5681cf['scriptName']=_0x5681cf[_0xf6c9a6(0xbd)],delete _0x5681cf[_0xf6c9a6(0xbd)];}}function isBffAction(_0x313105){const _0x13cc92=a40_0x4298;return _0x313105['kind']===_0x13cc92(0xcf)||_0x313105['action']===_0x13cc92(0xd0)||_0x313105[_0x13cc92(0xe3)]===_0x13cc92(0xd0);}function cloneJsonValue(_0x27fbf2){const _0x198e06=a40_0x4298;if(Array[_0x198e06(0xc5)](_0x27fbf2))return _0x27fbf2[_0x198e06(0xda)](_0x4e8914=>cloneJsonValue(_0x4e8914));if(isObjectRecord(_0x27fbf2))return Object[_0x198e06(0xc4)](Object[_0x198e06(0xd2)](_0x27fbf2)[_0x198e06(0xda)](([_0x26ffbe,_0x57a60b])=>[_0x26ffbe,cloneJsonValue(_0x57a60b)]));return _0x27fbf2;}function a40_0x4298(_0x14f289,_0xee52bb){_0x14f289=_0x14f289-0xbd;const _0x11d2ab=a40_0x11d2();let _0x429842=_0x11d2ab[_0x14f289];return _0x429842;}function isObjectRecord(_0x3ee85c){const _0x260639=a40_0x4298;return Boolean(_0x3ee85c)&&typeof _0x3ee85c==='object'&&!Array[_0x260639(0xc5)](_0x3ee85c);}
@@ -1 +1 @@
1
- function a41_0x5e9f(_0x44957b,_0x15f79a){_0x44957b=_0x44957b-0xd4;const _0x6dd54f=a41_0x6dd5();let _0x5e9f10=_0x6dd54f[_0x44957b];return _0x5e9f10;}const a41_0x24a22f=a41_0x5e9f;(function(_0x1c5857,_0xf8ad19){const _0x6ee16=a41_0x5e9f,_0xbe76ea=_0x1c5857();while(!![]){try{const _0x5de52a=parseInt(_0x6ee16(0xfa))/0x1*(-parseInt(_0x6ee16(0x108))/0x2)+-parseInt(_0x6ee16(0xdb))/0x3+-parseInt(_0x6ee16(0x102))/0x4+parseInt(_0x6ee16(0x107))/0x5+parseInt(_0x6ee16(0xf4))/0x6*(parseInt(_0x6ee16(0xeb))/0x7)+-parseInt(_0x6ee16(0xf9))/0x8+parseInt(_0x6ee16(0xd8))/0x9;if(_0x5de52a===_0xf8ad19)break;else _0xbe76ea['push'](_0xbe76ea['shift']());}catch(_0x59b120){_0xbe76ea['push'](_0xbe76ea['shift']());}}}(a41_0x6dd5,0x23d97));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':'file','type':a41_0x24a22f(0x115),'required':!![],'description':a41_0x24a22f(0xee)},SERVICE_FLAG={'name':a41_0x24a22f(0xf7),'type':a41_0x24a22f(0x115),'required':!![],'description':a41_0x24a22f(0x10a),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a41_0x24a22f(0x112)}};function a41_0x6dd5(){const _0x502127=['547925ZyNZpA','34piXygm','target','Local\x20service\x20code,\x20for\x20example\x20crm','report','registry','kind','reduce','read','type','registryServiceCode','lower\x20kebab-case\x20service\x20code','\x20service\x20','filePath','string','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','cliPath','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','version','updated','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','registryPath','validate','1950822RFJEEh','description','export','598191NJSBbs','从本地运行态注册表移除\x20Service\x20Tree\x20清单','serviceCode','\x20service(s),\x20updated\x20','WRITE','Updated','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','cliName','serviceCount','manifests','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','commands','warnings','hash','imported','length','138446IRcmvn','Imported\x20','replaced','Service\x20Tree\x20manifest\x20file\x20path','entries','manifest','errors','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','name','30QfNRjL','str','flags','service','Exported\x20service\x20','107208lxflfi','1318wJPvIp','write','file','map','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','import','entry','normalizedManifest','172760kkJAfO','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','source','\x20service(s).','detail'];a41_0x6dd5=function(){return _0x502127;};return a41_0x6dd5();}function summarizeService(_0x441c1f){const _0x211dee=a41_0x24a22f;return{'serviceCode':_0x441c1f[_0x211dee(0xdd)],'name':_0x441c1f[_0x211dee(0x101)][_0x211dee(0xf7)][_0x211dee(0xf3)],'version':_0x441c1f[_0x211dee(0x11a)],'importedAt':_0x441c1f['importedAt'],'source':_0x441c1f['source'],'commandCount':_0x441c1f['normalizedManifest'][_0x211dee(0xe6)][_0x211dee(0xea)],'commands':_0x441c1f['normalizedManifest']['commands'][_0x211dee(0xfd)](_0x29813a=>({'path':_0x29813a['cliPath'],'description':_0x29813a[_0x211dee(0xd9)],'risk':_0x29813a['risk'],'target':toPublicServiceTreeTarget(_0x29813a[_0x211dee(0x109)]),'flags':_0x29813a[_0x211dee(0xf6)][_0x211dee(0xfd)](_0x12d032=>({'name':_0x12d032[_0x211dee(0xf3)],'cliName':_0x12d032[_0x211dee(0xe2)],'type':_0x12d032[_0x211dee(0x110)],'required':_0x12d032['required']===!![]}))}))};}function summarizeLoadedManifest(_0x35b433){const _0x56a77d=a41_0x24a22f;return{'service':_0x35b433[_0x56a77d(0x101)]?.[_0x56a77d(0xf7)],'version':_0x35b433[_0x56a77d(0x101)]?.['version'],'commandCount':_0x35b433[_0x56a77d(0x101)]?.['commands'][_0x56a77d(0xea)]??0x0,'commands':_0x35b433[_0x56a77d(0x101)]?.[_0x56a77d(0xe6)][_0x56a77d(0xfd)](_0x258f18=>({'path':_0x258f18['cliPath'],'risk':_0x258f18['risk'],'target':toPublicServiceTreeTarget(_0x258f18[_0x56a77d(0x109)])}))??[],'registryIndex':_0x35b433['registryIndex'],'registryServiceCode':_0x35b433[_0x56a77d(0x111)],'errors':_0x35b433[_0x56a77d(0x10b)]['errors'],'warnings':_0x35b433[_0x56a77d(0x10b)][_0x56a77d(0xe7)]};}export const serviceDefinitions=[{'service':'service','command':a41_0x24a22f(0xd7),'description':a41_0x24a22f(0x116),'risk':a41_0x24a22f(0x10f),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x22c085){const _0x2d8c29=a41_0x24a22f,_0x320272=loadServiceManifestFromFile(_0x22c085[_0x2d8c29(0xf5)](_0x2d8c29(0xfc)));if(!_0x320272[_0x2d8c29(0x10b)]['ok'])return{'ok':![],'data':{'file':_0x320272[_0x2d8c29(0x114)],'hash':_0x320272[_0x2d8c29(0xe8)],'kind':_0x320272[_0x2d8c29(0x10d)],'serviceCount':_0x320272[_0x2d8c29(0xe4)][_0x2d8c29(0xea)],'services':_0x320272['manifests'][_0x2d8c29(0xfd)](summarizeLoadedManifest),'errors':_0x320272[_0x2d8c29(0x10b)][_0x2d8c29(0xf1)],'warnings':_0x320272[_0x2d8c29(0x10b)][_0x2d8c29(0xe7)]},'message':formatValidationFailure(_0x320272[_0x2d8c29(0x10b)])};if(_0x320272['kind']===_0x2d8c29(0x10c)||_0x320272['manifests']['length']!==0x1)return{'ok':!![],'data':{'file':_0x320272[_0x2d8c29(0x114)],'hash':_0x320272['hash'],'kind':_0x320272['kind'],'serviceCount':_0x320272[_0x2d8c29(0xe4)][_0x2d8c29(0xea)],'commandCount':_0x320272[_0x2d8c29(0xe4)][_0x2d8c29(0x10e)]((_0x37718e,_0x43945a)=>_0x37718e+(_0x43945a['normalizedManifest']?.[_0x2d8c29(0xe6)][_0x2d8c29(0xea)]??0x0),0x0),'services':_0x320272['manifests'][_0x2d8c29(0xfd)](summarizeLoadedManifest),'warnings':_0x320272['report'][_0x2d8c29(0xe7)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x320272[_0x2d8c29(0x114)],'hash':_0x320272[_0x2d8c29(0xe8)],'kind':_0x320272['kind'],'service':_0x320272['normalizedManifest']?.[_0x2d8c29(0xf7)],'version':_0x320272[_0x2d8c29(0x101)]?.['version'],'commandCount':_0x320272[_0x2d8c29(0x101)]?.[_0x2d8c29(0xe6)][_0x2d8c29(0xea)]??0x0,'commands':_0x320272[_0x2d8c29(0x101)]?.[_0x2d8c29(0xe6)][_0x2d8c29(0xfd)](_0x11fe69=>({'path':_0x11fe69[_0x2d8c29(0x117)],'risk':_0x11fe69['risk'],'target':toPublicServiceTreeTarget(_0x11fe69[_0x2d8c29(0x109)])})),'warnings':_0x320272[_0x2d8c29(0x10b)][_0x2d8c29(0xe7)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a41_0x24a22f(0xf7),'command':a41_0x24a22f(0xff),'description':'将\x20Service\x20Tree\x20清单导入本地运行态注册表','risk':a41_0x24a22f(0xfb),'confirmationDescription':a41_0x24a22f(0x103),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x1aaaf6){const _0x395094=a41_0x24a22f,_0xd194ce=loadServiceManifestFromFile(_0x1aaaf6[_0x395094(0xf5)]('file'));return{'method':_0x395094(0xdf),'url':getServiceRegistryPath(),'body':{'file':_0xd194ce[_0x395094(0x114)],'hash':_0xd194ce[_0x395094(0xe8)],'kind':_0xd194ce[_0x395094(0x10d)],'ok':_0xd194ce['report']['ok'],'service':_0xd194ce[_0x395094(0x101)]?.[_0x395094(0xf7)],'version':_0xd194ce['normalizedManifest']?.[_0x395094(0x11a)],'serviceCount':_0xd194ce[_0x395094(0xe4)]['length'],'services':_0xd194ce[_0x395094(0xe4)][_0x395094(0xfd)](_0x5983cf=>({'service':_0x5983cf[_0x395094(0x101)]?.['service'],'version':_0x5983cf[_0x395094(0x101)]?.[_0x395094(0x11a)],'commandCount':_0x5983cf[_0x395094(0x101)]?.['commands'][_0x395094(0xea)]??0x0,'errors':_0x5983cf[_0x395094(0x10b)][_0x395094(0xf1)]})),'errors':_0xd194ce[_0x395094(0x10b)]['errors'],'commandCount':_0xd194ce[_0x395094(0x101)]?.[_0x395094(0xe6)][_0x395094(0xea)]??0x0},'description':_0x395094(0xe1)};},async 'execute'(_0x44203d){const _0x59ca2e=a41_0x24a22f,_0x55692c=importServiceManifest(_0x44203d[_0x59ca2e(0xf5)](_0x59ca2e(0xfc)));if(_0x55692c[_0x59ca2e(0xef)][_0x59ca2e(0xea)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x55692c[_0x59ca2e(0xd6)],'imported':_0x55692c[_0x59ca2e(0xe9)],'updated':_0x55692c[_0x59ca2e(0xd4)],'serviceCount':_0x55692c[_0x59ca2e(0xe3)],'services':_0x55692c['entries'][_0x59ca2e(0xfd)](summarizeService)},'message':_0x59ca2e(0xec)+_0x55692c[_0x59ca2e(0xe9)]+_0x59ca2e(0xde)+_0x55692c[_0x59ca2e(0xd4)]+_0x59ca2e(0x105)};return{'ok':!![],'data':{'registryPath':_0x55692c[_0x59ca2e(0xd6)],'replaced':_0x55692c[_0x59ca2e(0xed)],'imported':_0x55692c[_0x59ca2e(0xe9)],'updated':_0x55692c['updated'],'serviceCount':_0x55692c['serviceCount'],'service':summarizeService(_0x55692c[_0x59ca2e(0x100)])},'message':(_0x55692c['replaced']?_0x59ca2e(0xe0):'Imported')+_0x59ca2e(0x113)+_0x55692c['entry'][_0x59ca2e(0xdd)]+'.'};}},{'service':a41_0x24a22f(0xf7),'command':a41_0x24a22f(0xda),'description':a41_0x24a22f(0xf2),'risk':a41_0x24a22f(0xfb),'confirmationDescription':a41_0x24a22f(0x118),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x19936f){const _0x233f3c=a41_0x24a22f,_0x2648b4=getLocalServiceEntry(_0x19936f[_0x233f3c(0xf5)]('service'));return{'method':_0x233f3c(0xdf),'url':_0x19936f['str']('file'),'body':{'service':_0x19936f[_0x233f3c(0xf5)](_0x233f3c(0xf7)),'found':Boolean(_0x2648b4),'version':_0x2648b4?.['version'],'source':_0x2648b4?.[_0x233f3c(0x104)]},'description':_0x233f3c(0xfe)};},async 'execute'(_0x16ad04){const _0xbef7e1=a41_0x24a22f,_0x31017b=exportServiceManifest(_0x16ad04['str'](_0xbef7e1(0xf7)),_0x16ad04['str'](_0xbef7e1(0xfc)));return{'ok':!![],'data':{'registryPath':_0x31017b[_0xbef7e1(0xd6)],'file':_0x31017b[_0xbef7e1(0x114)],'service':summarizeService(_0x31017b[_0xbef7e1(0x100)])},'message':_0xbef7e1(0xf8)+_0x31017b['entry']['serviceCode']+'.'};}},{'service':a41_0x24a22f(0xf7),'command':'list','description':a41_0x24a22f(0xe5),'risk':a41_0x24a22f(0x10f),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x1ed6de=a41_0x24a22f,_0x52b9e7=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x52b9e7['length'],'services':_0x52b9e7[_0x1ed6de(0xfd)](summarizeService)}};}},{'service':a41_0x24a22f(0xf7),'command':'remove','description':a41_0x24a22f(0xdc),'risk':'write','confirmationDescription':a41_0x24a22f(0xd5),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x472a33){const _0x2f593a=a41_0x24a22f,_0x5aee54=getLocalServiceEntry(_0x472a33[_0x2f593a(0xf5)](_0x2f593a(0xf7)));return{'method':_0x2f593a(0xdf),'url':getServiceRegistryPath(),'body':{'service':_0x472a33[_0x2f593a(0xf5)](_0x2f593a(0xf7)),'found':Boolean(_0x5aee54),'version':_0x5aee54?.['version'],'source':_0x5aee54?.[_0x2f593a(0x104)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x415f5e){const _0x5d3c17=a41_0x24a22f,_0x550cd7=removeServiceManifest(_0x415f5e['str']('service'));return{'ok':!![],'data':{'registryPath':_0x550cd7[_0x5d3c17(0xd6)],'serviceCount':_0x550cd7['serviceCount'],'service':summarizeService(_0x550cd7[_0x5d3c17(0x100)])},'message':'Removed\x20service\x20'+_0x550cd7[_0x5d3c17(0x100)][_0x5d3c17(0xdd)]+'.'};}},{'service':a41_0x24a22f(0xf7),'command':a41_0x24a22f(0x106),'description':a41_0x24a22f(0x119),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x1bdec1){const _0x3498d2=a41_0x24a22f,_0x5630c2=getLocalServiceEntry(_0x1bdec1[_0x3498d2(0xf5)](_0x3498d2(0xf7)));if(!_0x5630c2)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x1bdec1[_0x3498d2(0xf5)](_0x3498d2(0xf7))},'message':'Local\x20service\x20not\x20found:\x20'+_0x1bdec1[_0x3498d2(0xf5)](_0x3498d2(0xf7))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x5630c2),'manifest':_0x5630c2[_0x3498d2(0xf0)],'normalizedManifest':toPublicNormalizedServiceTree(_0x5630c2[_0x3498d2(0x101)])}};}}];
1
+ const a41_0x372c56=a41_0xf9c1;function a41_0x2d56(){const _0x56ce6d=['service','replaced','type','read','manifests','validate','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','\x20service(s),\x20updated\x20','hash','502652aumZqh','import','length','warnings','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','cliPath','remove','kind','2HJIbwl','Removed\x20service\x20','risk','396849pPiviY','version','从本地运行态注册表移除\x20Service\x20Tree\x20清单','write','Service\x20registry\x20validation\x20passed.','Updated','required','406935zNfKPv','registryPath','cliName','name','registry','description','target','commands','5004171UXAxoi','updated','Local\x20service\x20not\x20found:\x20','detail','serviceCount','string','350838Oueiju','str','lower\x20kebab-case\x20service\x20code','report','registryServiceCode','filePath','Exported\x20service\x20','entries','568WwRFIc','WRITE','reduce','\x20service\x20','imported','entry','\x20service(s).','2191428GDmbIt','map','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','registryIndex','Local\x20service\x20code,\x20for\x20example\x20crm','file','normalizedManifest','273lKZGXD','Service\x20Tree\x20manifest\x20file\x20path','errors','Imported','list','serviceCode','source','将\x20Service\x20Tree\x20清单导入本地运行态注册表'];a41_0x2d56=function(){return _0x56ce6d;};return a41_0x2d56();}(function(_0x55fa33,_0x3489bb){const _0x204312=a41_0xf9c1,_0x232837=_0x55fa33();while(!![]){try{const _0x1195b7=parseInt(_0x204312(0xe4))/0x1+-parseInt(_0x204312(0xcc))/0x2*(parseInt(_0x204312(0xcf))/0x3)+parseInt(_0x204312(0xc3))/0x4+parseInt(_0x204312(0xd6))/0x5+parseInt(_0x204312(0xf3))/0x6+-parseInt(_0x204312(0xfa))/0x7*(parseInt(_0x204312(0xec))/0x8)+-parseInt(_0x204312(0xde))/0x9;if(_0x1195b7===_0x3489bb)break;else _0x232837['push'](_0x232837['shift']());}catch(_0x7d7b71){_0x232837['push'](_0x232837['shift']());}}}(a41_0x2d56,0x38a77));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';function a41_0xf9c1(_0x21c88b,_0x455ec7){_0x21c88b=_0x21c88b-0xbe;const _0x2d5619=a41_0x2d56();let _0xf9c1cd=_0x2d5619[_0x21c88b];return _0xf9c1cd;}const FILE_FLAG={'name':a41_0x372c56(0xf8),'type':a41_0x372c56(0xe3),'required':!![],'description':a41_0x372c56(0xfb)},SERVICE_FLAG={'name':'service','type':a41_0x372c56(0xe3),'required':!![],'description':a41_0x372c56(0xf7),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a41_0x372c56(0xe6)}};function summarizeService(_0x1e581a){const _0x4e08b1=a41_0x372c56;return{'serviceCode':_0x1e581a[_0x4e08b1(0xff)],'name':_0x1e581a[_0x4e08b1(0xf9)]['service'][_0x4e08b1(0xd9)],'version':_0x1e581a[_0x4e08b1(0xd0)],'importedAt':_0x1e581a['importedAt'],'source':_0x1e581a[_0x4e08b1(0x100)],'commandCount':_0x1e581a[_0x4e08b1(0xf9)][_0x4e08b1(0xdd)]['length'],'commands':_0x1e581a[_0x4e08b1(0xf9)][_0x4e08b1(0xdd)]['map'](_0x5761d9=>({'path':_0x5761d9[_0x4e08b1(0xc9)],'description':_0x5761d9[_0x4e08b1(0xdb)],'risk':_0x5761d9[_0x4e08b1(0xce)],'target':toPublicServiceTreeTarget(_0x5761d9[_0x4e08b1(0xdc)]),'flags':_0x5761d9['flags'][_0x4e08b1(0xf4)](_0x16e8a9=>({'name':_0x16e8a9[_0x4e08b1(0xd9)],'cliName':_0x16e8a9[_0x4e08b1(0xd8)],'type':_0x16e8a9[_0x4e08b1(0x104)],'required':_0x16e8a9[_0x4e08b1(0xd5)]===!![]}))}))};}function summarizeLoadedManifest(_0x478ab3){const _0x123327=a41_0x372c56;return{'service':_0x478ab3[_0x123327(0xf9)]?.['service'],'version':_0x478ab3['normalizedManifest']?.[_0x123327(0xd0)],'commandCount':_0x478ab3[_0x123327(0xf9)]?.['commands'][_0x123327(0xc5)]??0x0,'commands':_0x478ab3[_0x123327(0xf9)]?.[_0x123327(0xdd)][_0x123327(0xf4)](_0x12fe4e=>({'path':_0x12fe4e[_0x123327(0xc9)],'risk':_0x12fe4e[_0x123327(0xce)],'target':toPublicServiceTreeTarget(_0x12fe4e[_0x123327(0xdc)])}))??[],'registryIndex':_0x478ab3[_0x123327(0xf6)],'registryServiceCode':_0x478ab3[_0x123327(0xe8)],'errors':_0x478ab3[_0x123327(0xe7)][_0x123327(0xfc)],'warnings':_0x478ab3[_0x123327(0xe7)][_0x123327(0xc6)]};}export const serviceDefinitions=[{'service':a41_0x372c56(0x102),'command':a41_0x372c56(0xbf),'description':a41_0x372c56(0xf5),'risk':a41_0x372c56(0x105),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x54acbc){const _0x567144=a41_0x372c56,_0x362672=loadServiceManifestFromFile(_0x54acbc['str']('file'));if(!_0x362672[_0x567144(0xe7)]['ok'])return{'ok':![],'data':{'file':_0x362672[_0x567144(0xe9)],'hash':_0x362672[_0x567144(0xc2)],'kind':_0x362672[_0x567144(0xcb)],'serviceCount':_0x362672[_0x567144(0xbe)][_0x567144(0xc5)],'services':_0x362672[_0x567144(0xbe)][_0x567144(0xf4)](summarizeLoadedManifest),'errors':_0x362672[_0x567144(0xe7)][_0x567144(0xfc)],'warnings':_0x362672[_0x567144(0xe7)]['warnings']},'message':formatValidationFailure(_0x362672[_0x567144(0xe7)])};if(_0x362672[_0x567144(0xcb)]===_0x567144(0xda)||_0x362672[_0x567144(0xbe)]['length']!==0x1)return{'ok':!![],'data':{'file':_0x362672[_0x567144(0xe9)],'hash':_0x362672[_0x567144(0xc2)],'kind':_0x362672['kind'],'serviceCount':_0x362672[_0x567144(0xbe)][_0x567144(0xc5)],'commandCount':_0x362672['manifests'][_0x567144(0xee)]((_0x4a75c7,_0x1d9565)=>_0x4a75c7+(_0x1d9565[_0x567144(0xf9)]?.['commands']['length']??0x0),0x0),'services':_0x362672[_0x567144(0xbe)][_0x567144(0xf4)](summarizeLoadedManifest),'warnings':_0x362672[_0x567144(0xe7)][_0x567144(0xc6)]},'message':_0x567144(0xd3)};return{'ok':!![],'data':{'file':_0x362672[_0x567144(0xe9)],'hash':_0x362672[_0x567144(0xc2)],'kind':_0x362672[_0x567144(0xcb)],'service':_0x362672['normalizedManifest']?.[_0x567144(0x102)],'version':_0x362672[_0x567144(0xf9)]?.[_0x567144(0xd0)],'commandCount':_0x362672[_0x567144(0xf9)]?.[_0x567144(0xdd)][_0x567144(0xc5)]??0x0,'commands':_0x362672['normalizedManifest']?.['commands']['map'](_0x3bc620=>({'path':_0x3bc620[_0x567144(0xc9)],'risk':_0x3bc620[_0x567144(0xce)],'target':toPublicServiceTreeTarget(_0x3bc620[_0x567144(0xdc)])})),'warnings':_0x362672[_0x567144(0xe7)][_0x567144(0xc6)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':'service','command':a41_0x372c56(0xc4),'description':a41_0x372c56(0x101),'risk':a41_0x372c56(0xd2),'confirmationDescription':'将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x534d62){const _0x2ecec1=a41_0x372c56,_0x11bf6a=loadServiceManifestFromFile(_0x534d62[_0x2ecec1(0xe5)](_0x2ecec1(0xf8)));return{'method':_0x2ecec1(0xed),'url':getServiceRegistryPath(),'body':{'file':_0x11bf6a[_0x2ecec1(0xe9)],'hash':_0x11bf6a[_0x2ecec1(0xc2)],'kind':_0x11bf6a[_0x2ecec1(0xcb)],'ok':_0x11bf6a[_0x2ecec1(0xe7)]['ok'],'service':_0x11bf6a[_0x2ecec1(0xf9)]?.[_0x2ecec1(0x102)],'version':_0x11bf6a[_0x2ecec1(0xf9)]?.['version'],'serviceCount':_0x11bf6a['manifests'][_0x2ecec1(0xc5)],'services':_0x11bf6a[_0x2ecec1(0xbe)][_0x2ecec1(0xf4)](_0x599b40=>({'service':_0x599b40[_0x2ecec1(0xf9)]?.['service'],'version':_0x599b40[_0x2ecec1(0xf9)]?.[_0x2ecec1(0xd0)],'commandCount':_0x599b40[_0x2ecec1(0xf9)]?.[_0x2ecec1(0xdd)]['length']??0x0,'errors':_0x599b40[_0x2ecec1(0xe7)][_0x2ecec1(0xfc)]})),'errors':_0x11bf6a[_0x2ecec1(0xe7)][_0x2ecec1(0xfc)],'commandCount':_0x11bf6a[_0x2ecec1(0xf9)]?.[_0x2ecec1(0xdd)][_0x2ecec1(0xc5)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x45c3ad){const _0x267b9e=a41_0x372c56,_0x51112c=importServiceManifest(_0x45c3ad['str'](_0x267b9e(0xf8)));if(_0x51112c['entries'][_0x267b9e(0xc5)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x51112c[_0x267b9e(0xd7)],'imported':_0x51112c[_0x267b9e(0xf0)],'updated':_0x51112c[_0x267b9e(0xdf)],'serviceCount':_0x51112c[_0x267b9e(0xe2)],'services':_0x51112c[_0x267b9e(0xeb)][_0x267b9e(0xf4)](summarizeService)},'message':'Imported\x20'+_0x51112c[_0x267b9e(0xf0)]+_0x267b9e(0xc1)+_0x51112c['updated']+_0x267b9e(0xf2)};return{'ok':!![],'data':{'registryPath':_0x51112c[_0x267b9e(0xd7)],'replaced':_0x51112c[_0x267b9e(0x103)],'imported':_0x51112c['imported'],'updated':_0x51112c[_0x267b9e(0xdf)],'serviceCount':_0x51112c['serviceCount'],'service':summarizeService(_0x51112c[_0x267b9e(0xf1)])},'message':(_0x51112c[_0x267b9e(0x103)]?_0x267b9e(0xd4):_0x267b9e(0xfd))+_0x267b9e(0xef)+_0x51112c[_0x267b9e(0xf1)][_0x267b9e(0xff)]+'.'};}},{'service':a41_0x372c56(0x102),'command':'export','description':'将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','risk':a41_0x372c56(0xd2),'confirmationDescription':'将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0xa95e04){const _0x24d64c=a41_0x372c56,_0x4b7163=getLocalServiceEntry(_0xa95e04[_0x24d64c(0xe5)]('service'));return{'method':_0x24d64c(0xed),'url':_0xa95e04[_0x24d64c(0xe5)](_0x24d64c(0xf8)),'body':{'service':_0xa95e04[_0x24d64c(0xe5)]('service'),'found':Boolean(_0x4b7163),'version':_0x4b7163?.[_0x24d64c(0xd0)],'source':_0x4b7163?.[_0x24d64c(0x100)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0xb2a0fd){const _0x730249=a41_0x372c56,_0x21b6b6=exportServiceManifest(_0xb2a0fd[_0x730249(0xe5)](_0x730249(0x102)),_0xb2a0fd[_0x730249(0xe5)](_0x730249(0xf8)));return{'ok':!![],'data':{'registryPath':_0x21b6b6[_0x730249(0xd7)],'file':_0x21b6b6[_0x730249(0xe9)],'service':summarizeService(_0x21b6b6['entry'])},'message':_0x730249(0xea)+_0x21b6b6['entry'][_0x730249(0xff)]+'.'};}},{'service':a41_0x372c56(0x102),'command':a41_0x372c56(0xfe),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':a41_0x372c56(0x105),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x5e0920=a41_0x372c56,_0x16f918=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x16f918[_0x5e0920(0xc5)],'services':_0x16f918['map'](summarizeService)}};}},{'service':a41_0x372c56(0x102),'command':a41_0x372c56(0xca),'description':a41_0x372c56(0xd1),'risk':'write','confirmationDescription':a41_0x372c56(0xc8),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x33bc8c){const _0x3df8ed=a41_0x372c56,_0x3d86a2=getLocalServiceEntry(_0x33bc8c[_0x3df8ed(0xe5)](_0x3df8ed(0x102)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x33bc8c['str']('service'),'found':Boolean(_0x3d86a2),'version':_0x3d86a2?.[_0x3df8ed(0xd0)],'source':_0x3d86a2?.[_0x3df8ed(0x100)]},'description':_0x3df8ed(0xc7)};},async 'execute'(_0x40dfd0){const _0x3bf9a5=a41_0x372c56,_0x4481a5=removeServiceManifest(_0x40dfd0['str'](_0x3bf9a5(0x102)));return{'ok':!![],'data':{'registryPath':_0x4481a5['registryPath'],'serviceCount':_0x4481a5['serviceCount'],'service':summarizeService(_0x4481a5[_0x3bf9a5(0xf1)])},'message':_0x3bf9a5(0xcd)+_0x4481a5[_0x3bf9a5(0xf1)][_0x3bf9a5(0xff)]+'.'};}},{'service':a41_0x372c56(0x102),'command':a41_0x372c56(0xe1),'description':a41_0x372c56(0xc0),'risk':a41_0x372c56(0x105),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x284a66){const _0xb19204=a41_0x372c56,_0x5830a0=getLocalServiceEntry(_0x284a66[_0xb19204(0xe5)]('service'));if(!_0x5830a0)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x284a66[_0xb19204(0xe5)](_0xb19204(0x102))},'message':_0xb19204(0xe0)+_0x284a66['str'](_0xb19204(0x102))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x5830a0),'manifest':_0x5830a0['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x5830a0[_0xb19204(0xf9)])}};}}];
@@ -1 +1 @@
1
- const a42_0x4d4d36=a42_0x34b2;(function(_0x3f1224,_0x1b0420){const _0x5bb14f=a42_0x34b2,_0x112571=_0x3f1224();while(!![]){try{const _0x52224f=parseInt(_0x5bb14f(0x1ad))/0x1+parseInt(_0x5bb14f(0x1b1))/0x2*(parseInt(_0x5bb14f(0x1d5))/0x3)+parseInt(_0x5bb14f(0x1e4))/0x4+parseInt(_0x5bb14f(0x1b9))/0x5+parseInt(_0x5bb14f(0x1d1))/0x6+-parseInt(_0x5bb14f(0x1a9))/0x7*(parseInt(_0x5bb14f(0x1d9))/0x8)+-parseInt(_0x5bb14f(0x1e5))/0x9;if(_0x52224f===_0x1b0420)break;else _0x112571['push'](_0x112571['shift']());}catch(_0x405f9f){_0x112571['push'](_0x112571['shift']());}}}(a42_0x2e63,0x379b0));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_0x4d4d36(0x1c1);export function getServiceRegistryPath(_0x3794fa={}){return resolve(_0x3794fa['homeDir']??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x5a9fa6={}){const _0x1eb970=a42_0x4d4d36,_0x357acd=getServiceRegistryPath(_0x5a9fa6);if(!existsSync(_0x357acd))return emptyServiceRegistry();try{const _0x575a0a=readFileSync(_0x357acd,_0x1eb970(0x1be));if(!_0x575a0a['trim']())return emptyServiceRegistry();const _0x495576=JSON[_0x1eb970(0x1d0)](_0x575a0a);if(_0x495576[_0x1eb970(0x1c7)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x1eb970(0x1ec)+String(_0x495576[_0x1eb970(0x1c7)]),_0x1eb970(0x1da)+_0x357acd+'.');if(!Array['isArray'](_0x495576['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x495576[_0x1eb970(0x1d8)],'services':_0x495576['services']};}catch(_0x5695e9){if(_0x5695e9 instanceof Error&&_0x5695e9['name']===_0x1eb970(0x1b0))throw _0x5695e9;throw CliErrors['validation'](_0x1eb970(0x1f6)+_0x357acd,_0x1eb970(0x1b3));}}export function writeServiceRegistry(_0x25e2d8,_0x437b25={}){const _0x2758f6=a42_0x4d4d36,_0xae99e5=getServiceRegistryPath(_0x437b25),_0x1b64f7=dirname(_0xae99e5);!existsSync(_0x1b64f7)&&mkdirSync(_0x1b64f7,{'recursive':!![]});const _0x2128dc=_0xae99e5+_0x2758f6(0x1f2);try{writeFileSync(_0x2128dc,JSON[_0x2758f6(0x1c3)](_0x25e2d8,null,0x2)+'\x0a',{'encoding':_0x2758f6(0x1be),'mode':0x180}),renameSync(_0x2128dc,_0xae99e5);}catch(_0x2125ae){try{unlinkSync(_0x2128dc);}catch{}if(_0x2125ae?.[_0x2758f6(0x1c5)]===_0x2758f6(0x1de))throw CliErrors[_0x2758f6(0x1b4)](_0x2758f6(0x1ee)+_0xae99e5);throw _0x2125ae;}return _0xae99e5;}export function loadServiceManifestFromFile(_0x46a771){const _0x28880f=a42_0x4d4d36,_0x195a6a=resolve(_0x46a771);if(!existsSync(_0x195a6a))throw CliErrors[_0x28880f(0x1b4)](_0x28880f(0x1f0)+_0x46a771);let _0x2810f5;const _0x2824a8=readFileSync(_0x195a6a,'utf8');try{_0x2810f5=JSON[_0x28880f(0x1d0)](_0x2824a8);}catch{throw CliErrors[_0x28880f(0x1b4)]('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x46a771,_0x28880f(0x1f7));}const _0x2f1f5b=sha256(_0x2824a8),_0x1fcd5c=extractLoadedServiceManifests(_0x2810f5,_0x2f1f5b),_0x4bf12f=aggregateValidationReports(_0x1fcd5c),_0x5d3d17=_0x1fcd5c[0x0];return{'filePath':_0x195a6a,'hash':_0x2f1f5b,'kind':isServiceRegistryLike(_0x2810f5)?_0x28880f(0x1ac):_0x28880f(0x1f4),'manifest':_0x5d3d17?.['manifest']??_0x2810f5,'report':_0x4bf12f,'normalizedManifest':_0x1fcd5c[_0x28880f(0x1ce)]===0x1?_0x5d3d17?.[_0x28880f(0x1ef)]:undefined,'manifests':_0x1fcd5c};}export function importServiceManifest(_0x19478d,_0xff56d5={}){const _0x2a672c=a42_0x4d4d36,_0x4c274b=loadServiceManifestFromFile(_0x19478d);if(!_0x4c274b['report']['ok'])throw CliErrors[_0x2a672c(0x1b4)](formatValidationFailure(_0x4c274b[_0x2a672c(0x1d7)]),_0x2a672c(0x1d2));if(_0x4c274b[_0x2a672c(0x1e3)]['length']===0x0)throw CliErrors[_0x2a672c(0x1b4)](_0x2a672c(0x1eb),_0x2a672c(0x1ab));const _0x5c27fa=readServiceRegistry(_0xff56d5),_0xe3c41a=(_0xff56d5[_0x2a672c(0x1c8)]??(()=>new Date()))()[_0x2a672c(0x1ed)](),_0x39b404=[];let _0x243092=0x0,_0x209932=0x0;for(const _0x2d7a80 of _0x4c274b[_0x2a672c(0x1e3)]){if(!_0x2d7a80[_0x2a672c(0x1ef)])continue;const _0x74daf=_0x2d7a80[_0x2a672c(0x1ef)][_0x2a672c(0x1d3)]['code'],_0x1f0549={'serviceCode':_0x74daf,'version':_0x2d7a80['normalizedManifest'][_0x2a672c(0x1ae)],'importedAt':_0xe3c41a,'source':{'type':_0x2a672c(0x1e2),'path':_0x4c274b['filePath'],'hash':_0x2d7a80[_0x2a672c(0x1bb)]},'manifest':_0x2d7a80[_0x2a672c(0x1f4)],'normalizedManifest':_0x2d7a80['normalizedManifest']},_0x3e0fbb=_0x5c27fa[_0x2a672c(0x1cb)][_0x2a672c(0x1f8)](_0x46b823=>_0x46b823[_0x2a672c(0x1b7)]===_0x74daf);_0x3e0fbb>=0x0?(_0x5c27fa['services'][_0x3e0fbb]=_0x1f0549,_0x209932++):(_0x5c27fa[_0x2a672c(0x1cb)][_0x2a672c(0x1db)](_0x1f0549),_0x243092++),_0x39b404[_0x2a672c(0x1db)](_0x1f0549);}_0x5c27fa['services']['sort']((_0x12270,_0x1d6f8f)=>_0x12270[_0x2a672c(0x1b7)][_0x2a672c(0x1af)](_0x1d6f8f[_0x2a672c(0x1b7)])),_0x5c27fa[_0x2a672c(0x1d8)]=_0xe3c41a;const _0x164d38=writeServiceRegistry(_0x5c27fa,_0xff56d5);return{'registryPath':_0x164d38,'entry':_0x39b404[0x0],'replaced':_0x39b404[_0x2a672c(0x1ce)]===0x1?_0x209932===0x1:_0x209932>0x0,'entries':_0x39b404,'imported':_0x243092,'updated':_0x209932,'serviceCount':_0x5c27fa[_0x2a672c(0x1cb)][_0x2a672c(0x1ce)]};}export function exportServiceManifest(_0x5ab2e9,_0x3b0833,_0x3e9e12={}){const _0xa96cdd=a42_0x4d4d36,_0x1c254f=getServiceRegistryPath(_0x3e9e12),_0x51d094=getLocalServiceEntry(_0x5ab2e9,_0x3e9e12);if(!_0x51d094)throw CliErrors['validation']('Local\x20service\x20not\x20found:\x20'+_0x5ab2e9,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x4d4eb8=resolve(_0x3b0833),_0x313cb4=dirname(_0x4d4eb8);return!existsSync(_0x313cb4)&&mkdirSync(_0x313cb4,{'recursive':!![]}),writeFileSync(_0x4d4eb8,JSON[_0xa96cdd(0x1c3)](_0x51d094['manifest'],null,0x2)+'\x0a',{'encoding':_0xa96cdd(0x1be),'mode':0x180}),{'registryPath':_0x1c254f,'filePath':_0x4d4eb8,'entry':_0x51d094};}export function removeServiceManifest(_0x2898a5,_0x30e096={}){const _0x38516c=a42_0x4d4d36,_0x29f1ad=readServiceRegistry(_0x30e096),_0x10b317=_0x2898a5[_0x38516c(0x1e8)](),_0x181f40=_0x29f1ad[_0x38516c(0x1cb)][_0x38516c(0x1f8)](_0x3d0253=>_0x3d0253[_0x38516c(0x1b7)]===_0x10b317);if(_0x181f40<0x0)throw CliErrors[_0x38516c(0x1b4)]('Local\x20service\x20not\x20found:\x20'+_0x10b317,_0x38516c(0x1c2));const [_0x1e6073]=_0x29f1ad[_0x38516c(0x1cb)][_0x38516c(0x1e1)](_0x181f40,0x1),_0x170f3b=(_0x30e096[_0x38516c(0x1c8)]??(()=>new Date()))()[_0x38516c(0x1ed)]();_0x29f1ad[_0x38516c(0x1d8)]=_0x170f3b;const _0x4a9c1f=writeServiceRegistry(_0x29f1ad,_0x30e096);return{'registryPath':_0x4a9c1f,'entry':_0x1e6073,'serviceCount':_0x29f1ad[_0x38516c(0x1cb)]['length']};}export function listLocalServices(_0x67a4b2={}){const _0x485e88=a42_0x4d4d36;return readServiceRegistry(_0x67a4b2)[_0x485e88(0x1cb)];}export function getLocalServiceEntry(_0x353882,_0x1d96be={}){const _0x403ab4=a42_0x4d4d36;return readServiceRegistry(_0x1d96be)[_0x403ab4(0x1cb)][_0x403ab4(0x1ba)](_0x59d145=>_0x59d145['serviceCode']===_0x353882['trim']());}export function listLocalServiceTrees(_0x1e89af={}){const _0xc1d491=a42_0x4d4d36;return readServiceRegistry(_0x1e89af)[_0xc1d491(0x1cb)][_0xc1d491(0x1cf)](_0xf95d11=>_0xf95d11[_0xc1d491(0x1ef)]);}export function inspectServiceRegistry(_0x599b0d={}){const _0xd0b367=a42_0x4d4d36,_0x4f7fd3=getServiceRegistryPath(_0x599b0d);if(!existsSync(_0x4f7fd3))return emptyServiceRegistryInspection(_0x4f7fd3,'missing',![]);try{const _0x433755=readFileSync(_0x4f7fd3,'utf8');if(!_0x433755[_0xd0b367(0x1e8)]())return emptyServiceRegistryInspection(_0x4f7fd3,_0xd0b367(0x1f1),!![]);const _0x1c1fb8=JSON[_0xd0b367(0x1d0)](_0x433755);if(_0x1c1fb8[_0xd0b367(0x1c7)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x4f7fd3,'invalid',!![]),'schemaVersion':_0x1c1fb8[_0xd0b367(0x1c7)],'message':_0xd0b367(0x1c6)+String(_0x1c1fb8[_0xd0b367(0x1c7)])};if(!Array[_0xd0b367(0x1ca)](_0x1c1fb8['services']))return{...emptyServiceRegistryInspection(_0x4f7fd3,_0xd0b367(0x1c0),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1c1fb8[_0xd0b367(0x1d8)],'message':_0xd0b367(0x1bd)};const _0x2974b1=_0x1c1fb8[_0xd0b367(0x1cb)]['map'](summarizeLocalServiceEntry);return{'registryPath':_0x4f7fd3,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1c1fb8['updatedAt'],'serviceCount':_0x2974b1[_0xd0b367(0x1ce)],'commandCount':_0x2974b1['reduce']((_0x637cd6,_0x40984c)=>_0x637cd6+_0x40984c[_0xd0b367(0x1c9)],0x0),'services':_0x2974b1};}catch(_0x10abe0){return{...emptyServiceRegistryInspection(_0x4f7fd3,_0xd0b367(0x1c0),!![]),'message':_0x10abe0 instanceof Error?_0x10abe0[_0xd0b367(0x1b5)]:String(_0x10abe0)};}}export function formatValidationFailure(_0x5f4daa){const _0x2e257b=a42_0x4d4d36,_0x4fc38f=_0x5f4daa[_0x2e257b(0x1e0)][_0x2e257b(0x1cf)](_0x2f4b09=>_0x2f4b09['path']+':\x20'+_0x2f4b09[_0x2e257b(0x1b5)]);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x4fc38f[_0x2e257b(0x1aa)]('\x0a');}function a42_0x34b2(_0x5edc55,_0x3f04a7){_0x5edc55=_0x5edc55-0x1a9;const _0x2e636c=a42_0x2e63();let _0x34b2d4=_0x2e636c[_0x5edc55];return _0x34b2d4;}function extractLoadedServiceManifests(_0x168f72,_0x2be0be){const _0x19e958=a42_0x4d4d36;if(!isServiceRegistryLike(_0x168f72)){const _0xf9b6d8=_0x168f72,{manifest:_0x23d67b,errors:_0x32935d}=adaptServiceTreeManifestForLegacyFramework(_0xf9b6d8),_0x3ac93e=validateServiceTreeManifest(_0x23d67b),_0x432208=mergeValidationErrors(_0x3ac93e,_0x32935d);return[{'manifest':_0xf9b6d8,'report':_0x432208,'normalizedManifest':_0x432208['ok']?normalizeServiceTreeManifest(_0x23d67b):undefined,'sourceHash':_0x2be0be}];}return _0x168f72[_0x19e958(0x1cb)][_0x19e958(0x1cf)]((_0x5786eb,_0x5974d9)=>{const _0x296cb9=_0x19e958,_0x456504=isObjectRecord(_0x5786eb)?_0x5786eb[_0x296cb9(0x1f4)]:undefined,{manifest:_0x5577a5,errors:_0x1ac7b7}=adaptServiceTreeManifestForLegacyFramework(_0x456504),_0x5e51b2=validateServiceTreeManifest(_0x5577a5),_0x1511ed=mergeValidationErrors(_0x5e51b2,_0x1ac7b7),_0x309637=isObjectRecord(_0x5786eb)&&typeof _0x5786eb['serviceCode']===_0x296cb9(0x1cc)?_0x5786eb[_0x296cb9(0x1b7)]:undefined;return{'manifest':_0x456504,'report':_0x1511ed,'normalizedManifest':_0x1511ed['ok']?normalizeServiceTreeManifest(_0x5577a5):undefined,'sourceHash':sha256(JSON['stringify'](_0x456504,null,0x2)+'\x0a'),'registryIndex':_0x5974d9,'registryServiceCode':_0x309637};});}function mergeValidationErrors(_0x1e3ad0,_0x258a5f){const _0x43a67b=a42_0x4d4d36,_0x139bc5=_0x1e3ad0[_0x43a67b(0x1e0)]['map'](_0x575681=>_0x575681[_0x43a67b(0x1b5)]===_0x43a67b(0x1cd)?{..._0x575681,'message':'bff\x20target\x20requires\x20functionName.'}:_0x575681),_0x1bb7a2=[..._0x258a5f,..._0x139bc5];return{'ok':_0x1bb7a2[_0x43a67b(0x1ce)]===0x0,'errors':_0x1bb7a2,'warnings':_0x1e3ad0['warnings']};}function aggregateValidationReports(_0x106f44){const _0x5f0c3e=a42_0x4d4d36,_0x2bcd53=_0x106f44[_0x5f0c3e(0x1d6)](_0x148a48=>_0x148a48[_0x5f0c3e(0x1d4)]===undefined?_0x148a48[_0x5f0c3e(0x1d7)][_0x5f0c3e(0x1e0)]:_0x148a48[_0x5f0c3e(0x1d7)][_0x5f0c3e(0x1e0)]['map'](_0x25e12f=>({..._0x25e12f,'path':prefixRegistryIssuePath(_0x148a48['registryIndex'],_0x25e12f[_0x5f0c3e(0x1bc)])}))),_0x10b432=_0x106f44[_0x5f0c3e(0x1d6)](_0x4450a1=>_0x4450a1['registryIndex']===undefined?_0x4450a1[_0x5f0c3e(0x1d7)][_0x5f0c3e(0x1c4)]:_0x4450a1[_0x5f0c3e(0x1d7)][_0x5f0c3e(0x1c4)][_0x5f0c3e(0x1cf)](_0x43e621=>({..._0x43e621,'path':prefixRegistryIssuePath(_0x4450a1[_0x5f0c3e(0x1d4)],_0x43e621[_0x5f0c3e(0x1bc)])})));return{'ok':_0x2bcd53[_0x5f0c3e(0x1ce)]===0x0,'errors':_0x2bcd53,'warnings':_0x10b432};}function prefixRegistryIssuePath(_0x3114be,_0x1e1b4f){const _0x1c283e=a42_0x4d4d36;if(_0x1e1b4f==='$')return'$.services['+_0x3114be+_0x1c283e(0x1ea);if(_0x1e1b4f[_0x1c283e(0x1f3)]('$.'))return _0x1c283e(0x1dc)+_0x3114be+'].manifest'+_0x1e1b4f[_0x1c283e(0x1f5)](0x1);if(_0x1e1b4f[_0x1c283e(0x1f3)]('$['))return _0x1c283e(0x1dc)+_0x3114be+_0x1c283e(0x1ea)+_0x1e1b4f[_0x1c283e(0x1f5)](0x1);return'$.services['+_0x3114be+_0x1c283e(0x1b8)+_0x1e1b4f;}function a42_0x2e63(){const _0xe202c1=['schemaVersion','now','commandCount','isArray','services','string','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','length','map','parse','886926zuvluk','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','service','registryIndex','33KlkbJG','flatMap','report','updatedAt','1144DDjsdY','Remove\x20or\x20migrate\x20','push','$.services[','cliPath','ENOENT','target','errors','splice','file','manifests','960848mnLpoP','9347832MmXnej','command','sha256','trim','commands','].manifest','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','Unsupported\x20service\x20registry\x20schemaVersion:\x20','toISOString','Cannot\x20write\x20service\x20registry:\x20','normalizedManifest','Service\x20manifest\x20file\x20not\x20found:\x20','empty','.tmp','startsWith','manifest','slice','Invalid\x20service\x20registry\x20JSON:\x20','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','findIndex','2093ZklrwF','join','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','registry','347592RVDzYa','version','localeCompare','CliError','43166vSURxw','kind','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','validation','message','digest','serviceCode','].manifest.','1680635FZhrCS','find','sourceHash','path','services\x20must\x20be\x20an\x20array','utf8','source','invalid','service.json','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','stringify','warnings','code','Unsupported\x20schemaVersion:\x20'];a42_0x2e63=function(){return _0xe202c1;};return a42_0x2e63();}function isServiceRegistryLike(_0x4eeeb0){const _0x4933ab=a42_0x4d4d36;return isObjectRecord(_0x4eeeb0)&&_0x4eeeb0[_0x4933ab(0x1c7)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x4933ab(0x1ca)](_0x4eeeb0[_0x4933ab(0x1cb)]);}function isObjectRecord(_0x4bf9af){const _0x2277ef=a42_0x4d4d36;return Boolean(_0x4bf9af)&&typeof _0x4bf9af==='object'&&!Array[_0x2277ef(0x1ca)](_0x4bf9af);}function emptyServiceRegistryInspection(_0x112ef2,_0x4d67ef,_0x514820){return{'registryPath':_0x112ef2,'exists':_0x514820,'status':_0x4d67ef,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x9aaa23){const _0x1c99ca=a42_0x4d4d36,_0x12bfdc=_0x9aaa23[_0x1c99ca(0x1ef)],_0x26064a=_0x12bfdc[_0x1c99ca(0x1e9)]['map'](_0x104d6b=>({'path':_0x104d6b[_0x1c99ca(0x1dd)],'description':_0x104d6b['description'],'risk':_0x104d6b['risk'],'targetKind':_0x104d6b[_0x1c99ca(0x1df)][_0x1c99ca(0x1b2)],'targetCommand':_0x104d6b[_0x1c99ca(0x1df)][_0x1c99ca(0x1e6)]}));return{'serviceCode':_0x9aaa23['serviceCode'],'name':_0x12bfdc['service']['name'],'description':_0x12bfdc[_0x1c99ca(0x1d3)]['description'],'version':_0x9aaa23['version'],'importedAt':_0x9aaa23['importedAt'],'source':_0x9aaa23[_0x1c99ca(0x1bf)],'commandCount':_0x26064a[_0x1c99ca(0x1ce)],'commands':_0x26064a};}function sha256(_0x366e32){const _0x15e5a5=a42_0x4d4d36;return createHash(_0x15e5a5(0x1e7))['update'](_0x366e32)[_0x15e5a5(0x1b6)]('hex');}
1
+ const a42_0x2ce158=a42_0x1d3b;(function(_0x44940e,_0x818a7e){const _0x3a96e6=a42_0x1d3b,_0x25b3c1=_0x44940e();while(!![]){try{const _0x3ad898=parseInt(_0x3a96e6(0xe7))/0x1*(-parseInt(_0x3a96e6(0x12e))/0x2)+-parseInt(_0x3a96e6(0xf5))/0x3+-parseInt(_0x3a96e6(0xe6))/0x4+parseInt(_0x3a96e6(0x11d))/0x5*(-parseInt(_0x3a96e6(0x12f))/0x6)+parseInt(_0x3a96e6(0x104))/0x7*(-parseInt(_0x3a96e6(0x10d))/0x8)+parseInt(_0x3a96e6(0xdf))/0x9+parseInt(_0x3a96e6(0x127))/0xa*(parseInt(_0x3a96e6(0xe2))/0xb);if(_0x3ad898===_0x818a7e)break;else _0x25b3c1['push'](_0x25b3c1['shift']());}catch(_0x78d668){_0x25b3c1['push'](_0x25b3c1['shift']());}}}(a42_0x4dbf,0x33947));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_0x2ce158(0x101);export function getServiceRegistryPath(_0x5d4eab={}){const _0x137166=a42_0x2ce158;return resolve(_0x5d4eab[_0x137166(0x113)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x4dafd9={}){const _0x194764=a42_0x2ce158,_0x101360=getServiceRegistryPath(_0x4dafd9);if(!existsSync(_0x101360))return emptyServiceRegistry();try{const _0x28fb07=readFileSync(_0x101360,_0x194764(0x122));if(!_0x28fb07[_0x194764(0xed)]())return emptyServiceRegistry();const _0x3b6241=JSON[_0x194764(0xec)](_0x28fb07);if(_0x3b6241[_0x194764(0x120)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x194764(0x10f)](_0x194764(0x12a)+String(_0x3b6241[_0x194764(0x120)]),_0x194764(0x11f)+_0x101360+'.');if(!Array[_0x194764(0xf9)](_0x3b6241['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3b6241[_0x194764(0xf6)],'services':_0x3b6241[_0x194764(0xfa)]};}catch(_0x4ec97f){if(_0x4ec97f instanceof Error&&_0x4ec97f[_0x194764(0x123)]===_0x194764(0xdc))throw _0x4ec97f;throw CliErrors[_0x194764(0x10f)](_0x194764(0xe5)+_0x101360,_0x194764(0xe3));}}export function writeServiceRegistry(_0x1ef703,_0x29b58d={}){const _0x354cca=a42_0x2ce158,_0x12732d=getServiceRegistryPath(_0x29b58d),_0x1fc061=dirname(_0x12732d);!existsSync(_0x1fc061)&&mkdirSync(_0x1fc061,{'recursive':!![]});const _0x290115=_0x12732d+_0x354cca(0x110);try{writeFileSync(_0x290115,JSON[_0x354cca(0x112)](_0x1ef703,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x290115,_0x12732d);}catch(_0x3bd507){try{unlinkSync(_0x290115);}catch{}if(_0x3bd507?.[_0x354cca(0x115)]===_0x354cca(0xf4))throw CliErrors['validation'](_0x354cca(0x109)+_0x12732d);throw _0x3bd507;}return _0x12732d;}export function loadServiceManifestFromFile(_0x4fc2a7){const _0x2900b6=a42_0x2ce158,_0x12fcc3=resolve(_0x4fc2a7);if(!existsSync(_0x12fcc3))throw CliErrors[_0x2900b6(0x10f)](_0x2900b6(0xe0)+_0x4fc2a7);let _0x3db71f;const _0x47b115=readFileSync(_0x12fcc3,_0x2900b6(0x122));try{_0x3db71f=JSON[_0x2900b6(0xec)](_0x47b115);}catch{throw CliErrors[_0x2900b6(0x10f)](_0x2900b6(0xeb)+_0x4fc2a7,_0x2900b6(0x103));}const _0x310778=sha256(_0x47b115),_0x18b8e9=extractLoadedServiceManifests(_0x3db71f,_0x310778),_0x4ca6ff=aggregateValidationReports(_0x18b8e9),_0x322681=_0x18b8e9[0x0];return{'filePath':_0x12fcc3,'hash':_0x310778,'kind':isServiceRegistryLike(_0x3db71f)?'registry':_0x2900b6(0x126),'manifest':_0x322681?.[_0x2900b6(0x126)]??_0x3db71f,'report':_0x4ca6ff,'normalizedManifest':_0x18b8e9[_0x2900b6(0xde)]===0x1?_0x322681?.[_0x2900b6(0xea)]:undefined,'manifests':_0x18b8e9};}export function importServiceManifest(_0x2f00dc,_0x220478={}){const _0x151f76=a42_0x2ce158,_0xdddf0=loadServiceManifestFromFile(_0x2f00dc);if(!_0xdddf0[_0x151f76(0x111)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0xdddf0[_0x151f76(0x111)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0xdddf0[_0x151f76(0xee)][_0x151f76(0xde)]===0x0)throw CliErrors['validation'](_0x151f76(0x125),_0x151f76(0xdd));const _0x334292=readServiceRegistry(_0x220478),_0x488fdb=(_0x220478[_0x151f76(0xe4)]??(()=>new Date()))()[_0x151f76(0xe9)](),_0x33aa54=[];let _0x9a08ac=0x0,_0x38c045=0x0;for(const _0x3c2f3f of _0xdddf0[_0x151f76(0xee)]){if(!_0x3c2f3f['normalizedManifest'])continue;const _0x30f422=_0x3c2f3f[_0x151f76(0xea)][_0x151f76(0xfe)][_0x151f76(0x115)],_0x2c2171={'serviceCode':_0x30f422,'version':_0x3c2f3f[_0x151f76(0xea)][_0x151f76(0x12d)],'importedAt':_0x488fdb,'source':{'type':_0x151f76(0x12b),'path':_0xdddf0[_0x151f76(0xe8)],'hash':_0x3c2f3f[_0x151f76(0xda)]},'manifest':_0x3c2f3f[_0x151f76(0x126)],'normalizedManifest':_0x3c2f3f[_0x151f76(0xea)]},_0xb3c8cc=_0x334292[_0x151f76(0xfa)][_0x151f76(0x106)](_0x52a5b9=>_0x52a5b9[_0x151f76(0x107)]===_0x30f422);_0xb3c8cc>=0x0?(_0x334292[_0x151f76(0xfa)][_0xb3c8cc]=_0x2c2171,_0x38c045++):(_0x334292[_0x151f76(0xfa)]['push'](_0x2c2171),_0x9a08ac++),_0x33aa54[_0x151f76(0xfb)](_0x2c2171);}_0x334292[_0x151f76(0xfa)][_0x151f76(0x10e)]((_0x2dc060,_0x44a225)=>_0x2dc060[_0x151f76(0x107)][_0x151f76(0x11e)](_0x44a225[_0x151f76(0x107)])),_0x334292[_0x151f76(0xf6)]=_0x488fdb;const _0x1404de=writeServiceRegistry(_0x334292,_0x220478);return{'registryPath':_0x1404de,'entry':_0x33aa54[0x0],'replaced':_0x33aa54['length']===0x1?_0x38c045===0x1:_0x38c045>0x0,'entries':_0x33aa54,'imported':_0x9a08ac,'updated':_0x38c045,'serviceCount':_0x334292[_0x151f76(0xfa)][_0x151f76(0xde)]};}export function exportServiceManifest(_0x5a1726,_0x455b36,_0xc8121f={}){const _0x4ecd29=a42_0x2ce158,_0x16cc88=getServiceRegistryPath(_0xc8121f),_0x1422e6=getLocalServiceEntry(_0x5a1726,_0xc8121f);if(!_0x1422e6)throw CliErrors[_0x4ecd29(0x10f)]('Local\x20service\x20not\x20found:\x20'+_0x5a1726,_0x4ecd29(0xf3));const _0x489346=resolve(_0x455b36),_0x17d7d=dirname(_0x489346);return!existsSync(_0x17d7d)&&mkdirSync(_0x17d7d,{'recursive':!![]}),writeFileSync(_0x489346,JSON['stringify'](_0x1422e6[_0x4ecd29(0x126)],null,0x2)+'\x0a',{'encoding':_0x4ecd29(0x122),'mode':0x180}),{'registryPath':_0x16cc88,'filePath':_0x489346,'entry':_0x1422e6};}export function removeServiceManifest(_0x436697,_0x3645cd={}){const _0x43ca36=a42_0x2ce158,_0x5ac2b2=readServiceRegistry(_0x3645cd),_0x15e0f4=_0x436697[_0x43ca36(0xed)](),_0x506974=_0x5ac2b2['services'][_0x43ca36(0x106)](_0x1c734f=>_0x1c734f['serviceCode']===_0x15e0f4);if(_0x506974<0x0)throw CliErrors[_0x43ca36(0x10f)](_0x43ca36(0x117)+_0x15e0f4,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x5e167a]=_0x5ac2b2[_0x43ca36(0xfa)][_0x43ca36(0xe1)](_0x506974,0x1),_0x96ac98=(_0x3645cd[_0x43ca36(0xe4)]??(()=>new Date()))()[_0x43ca36(0xe9)]();_0x5ac2b2[_0x43ca36(0xf6)]=_0x96ac98;const _0x46ed58=writeServiceRegistry(_0x5ac2b2,_0x3645cd);return{'registryPath':_0x46ed58,'entry':_0x5e167a,'serviceCount':_0x5ac2b2[_0x43ca36(0xfa)][_0x43ca36(0xde)]};}function a42_0x4dbf(){const _0x708fbb=['update','Local\x20service\x20not\x20found:\x20','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','target','services\x20must\x20be\x20an\x20array','].manifest.','warnings','2097085mHkHeK','localeCompare','Remove\x20or\x20migrate\x20','schemaVersion','].manifest','utf8','name','missing','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','manifest','490SrwEIZ','empty','hex','Unsupported\x20service\x20registry\x20schemaVersion:\x20','file','importedAt','version','2XSTqEn','6viEyUq','map','description','bff\x20target\x20requires\x20functionName.','sourceHash','slice','CliError','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','length','261342YtCuMY','Service\x20manifest\x20file\x20not\x20found:\x20','splice','280357hyCwKh','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','now','Invalid\x20service\x20registry\x20JSON:\x20','295844lonYOO','134360MmAckp','filePath','toISOString','normalizedManifest','Invalid\x20service\x20manifest\x20JSON:\x20','parse','trim','manifests','$.services[','flatMap','reduce','commands','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','ENOENT','174687krCXQz','updatedAt','Unsupported\x20schemaVersion:\x20','invalid','isArray','services','push','sha256','startsWith','service','kind','join','service.json','find','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','2664641jXOxVG','message','findIndex','serviceCode','path','Cannot\x20write\x20service\x20registry:\x20','registryIndex','errors','object','8COtVOG','sort','validation','.tmp','report','stringify','homeDir','digest','code'];a42_0x4dbf=function(){return _0x708fbb;};return a42_0x4dbf();}export function listLocalServices(_0x2e847e={}){return readServiceRegistry(_0x2e847e)['services'];}export function getLocalServiceEntry(_0x460280,_0x1332f6={}){const _0x1d7b6f=a42_0x2ce158;return readServiceRegistry(_0x1332f6)[_0x1d7b6f(0xfa)][_0x1d7b6f(0x102)](_0x3ced52=>_0x3ced52['serviceCode']===_0x460280['trim']());}export function listLocalServiceTrees(_0x3daa8e={}){const _0x381330=a42_0x2ce158;return readServiceRegistry(_0x3daa8e)[_0x381330(0xfa)][_0x381330(0xd7)](_0x3dd2b8=>_0x3dd2b8[_0x381330(0xea)]);}export function inspectServiceRegistry(_0x566a22={}){const _0x1cac1f=a42_0x2ce158,_0x1916ff=getServiceRegistryPath(_0x566a22);if(!existsSync(_0x1916ff))return emptyServiceRegistryInspection(_0x1916ff,_0x1cac1f(0x124),![]);try{const _0x1081d5=readFileSync(_0x1916ff,_0x1cac1f(0x122));if(!_0x1081d5[_0x1cac1f(0xed)]())return emptyServiceRegistryInspection(_0x1916ff,_0x1cac1f(0x128),!![]);const _0x5aebd0=JSON[_0x1cac1f(0xec)](_0x1081d5);if(_0x5aebd0[_0x1cac1f(0x120)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x1916ff,'invalid',!![]),'schemaVersion':_0x5aebd0[_0x1cac1f(0x120)],'message':_0x1cac1f(0xf7)+String(_0x5aebd0[_0x1cac1f(0x120)])};if(!Array['isArray'](_0x5aebd0[_0x1cac1f(0xfa)]))return{...emptyServiceRegistryInspection(_0x1916ff,_0x1cac1f(0xf8),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5aebd0[_0x1cac1f(0xf6)],'message':_0x1cac1f(0x11a)};const _0x3fdf38=_0x5aebd0['services'][_0x1cac1f(0xd7)](summarizeLocalServiceEntry);return{'registryPath':_0x1916ff,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5aebd0[_0x1cac1f(0xf6)],'serviceCount':_0x3fdf38['length'],'commandCount':_0x3fdf38[_0x1cac1f(0xf1)]((_0x1f693b,_0x102651)=>_0x1f693b+_0x102651['commandCount'],0x0),'services':_0x3fdf38};}catch(_0x5e95ce){return{...emptyServiceRegistryInspection(_0x1916ff,_0x1cac1f(0xf8),!![]),'message':_0x5e95ce instanceof Error?_0x5e95ce[_0x1cac1f(0x105)]:String(_0x5e95ce)};}}export function formatValidationFailure(_0x2b5262){const _0x4478f7=a42_0x2ce158,_0x111f66=_0x2b5262[_0x4478f7(0x10b)]['map'](_0x41ae72=>_0x41ae72[_0x4478f7(0x108)]+':\x20'+_0x41ae72[_0x4478f7(0x105)]);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x111f66[_0x4478f7(0x100)]('\x0a');}function extractLoadedServiceManifests(_0x331166,_0x98e8e){const _0x5a071d=a42_0x2ce158;if(!isServiceRegistryLike(_0x331166)){const _0x6c88c6=_0x331166,{manifest:_0x19ecae,errors:_0x279e2c}=adaptServiceTreeManifestForLegacyFramework(_0x6c88c6),_0x588b7b=validateServiceTreeManifest(_0x19ecae),_0x4e56eb=mergeValidationErrors(_0x588b7b,_0x279e2c);return[{'manifest':_0x6c88c6,'report':_0x4e56eb,'normalizedManifest':_0x4e56eb['ok']?normalizeServiceTreeManifest(_0x19ecae):undefined,'sourceHash':_0x98e8e}];}return _0x331166[_0x5a071d(0xfa)][_0x5a071d(0xd7)]((_0x26eca8,_0x13fb50)=>{const _0x28745e=_0x5a071d,_0x160877=isObjectRecord(_0x26eca8)?_0x26eca8[_0x28745e(0x126)]:undefined,{manifest:_0x386f02,errors:_0x24b1ff}=adaptServiceTreeManifestForLegacyFramework(_0x160877),_0x323007=validateServiceTreeManifest(_0x386f02),_0x1d3534=mergeValidationErrors(_0x323007,_0x24b1ff),_0x25be3d=isObjectRecord(_0x26eca8)&&typeof _0x26eca8[_0x28745e(0x107)]==='string'?_0x26eca8['serviceCode']:undefined;return{'manifest':_0x160877,'report':_0x1d3534,'normalizedManifest':_0x1d3534['ok']?normalizeServiceTreeManifest(_0x386f02):undefined,'sourceHash':sha256(JSON['stringify'](_0x160877,null,0x2)+'\x0a'),'registryIndex':_0x13fb50,'registryServiceCode':_0x25be3d};});}function mergeValidationErrors(_0x4cbbb7,_0x10163f){const _0x2f36e7=a42_0x2ce158,_0x2a7aa9=_0x4cbbb7['errors'][_0x2f36e7(0xd7)](_0x5b028c=>_0x5b028c[_0x2f36e7(0x105)]===_0x2f36e7(0x118)?{..._0x5b028c,'message':_0x2f36e7(0xd9)}:_0x5b028c),_0x4bf534=[..._0x10163f,..._0x2a7aa9];return{'ok':_0x4bf534[_0x2f36e7(0xde)]===0x0,'errors':_0x4bf534,'warnings':_0x4cbbb7[_0x2f36e7(0x11c)]};}function aggregateValidationReports(_0x4c9183){const _0x56c2a6=a42_0x2ce158,_0x99262=_0x4c9183[_0x56c2a6(0xf0)](_0x88a655=>_0x88a655[_0x56c2a6(0x10a)]===undefined?_0x88a655['report']['errors']:_0x88a655[_0x56c2a6(0x111)]['errors'][_0x56c2a6(0xd7)](_0x2d85d5=>({..._0x2d85d5,'path':prefixRegistryIssuePath(_0x88a655[_0x56c2a6(0x10a)],_0x2d85d5[_0x56c2a6(0x108)])}))),_0x410c0e=_0x4c9183['flatMap'](_0x36214f=>_0x36214f['registryIndex']===undefined?_0x36214f[_0x56c2a6(0x111)]['warnings']:_0x36214f[_0x56c2a6(0x111)][_0x56c2a6(0x11c)][_0x56c2a6(0xd7)](_0x2c767f=>({..._0x2c767f,'path':prefixRegistryIssuePath(_0x36214f[_0x56c2a6(0x10a)],_0x2c767f[_0x56c2a6(0x108)])})));return{'ok':_0x99262[_0x56c2a6(0xde)]===0x0,'errors':_0x99262,'warnings':_0x410c0e};}function prefixRegistryIssuePath(_0x581366,_0x2b53d6){const _0x225bd5=a42_0x2ce158;if(_0x2b53d6==='$')return'$.services['+_0x581366+'].manifest';if(_0x2b53d6[_0x225bd5(0xfd)]('$.'))return _0x225bd5(0xef)+_0x581366+_0x225bd5(0x121)+_0x2b53d6[_0x225bd5(0xdb)](0x1);if(_0x2b53d6[_0x225bd5(0xfd)]('$['))return'$.services['+_0x581366+'].manifest'+_0x2b53d6[_0x225bd5(0xdb)](0x1);return'$.services['+_0x581366+_0x225bd5(0x11b)+_0x2b53d6;}function isServiceRegistryLike(_0xc5fda0){const _0x398010=a42_0x2ce158;return isObjectRecord(_0xc5fda0)&&_0xc5fda0[_0x398010(0x120)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x398010(0xf9)](_0xc5fda0['services']);}function isObjectRecord(_0x420e80){const _0x4ce663=a42_0x2ce158;return Boolean(_0x420e80)&&typeof _0x420e80===_0x4ce663(0x10c)&&!Array['isArray'](_0x420e80);}function emptyServiceRegistryInspection(_0x32d640,_0x404daa,_0x504f77){return{'registryPath':_0x32d640,'exists':_0x504f77,'status':_0x404daa,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function a42_0x1d3b(_0x5f1754,_0x4b9d06){_0x5f1754=_0x5f1754-0xd7;const _0x4dbfe9=a42_0x4dbf();let _0x1d3beb=_0x4dbfe9[_0x5f1754];return _0x1d3beb;}function summarizeLocalServiceEntry(_0x56e7c7){const _0x39ee19=a42_0x2ce158,_0x4d3d46=_0x56e7c7['normalizedManifest'],_0x53ab64=_0x4d3d46[_0x39ee19(0xf2)][_0x39ee19(0xd7)](_0x406b84=>({'path':_0x406b84['cliPath'],'description':_0x406b84[_0x39ee19(0xd8)],'risk':_0x406b84['risk'],'targetKind':_0x406b84[_0x39ee19(0x119)][_0x39ee19(0xff)],'targetCommand':_0x406b84['target']['command']}));return{'serviceCode':_0x56e7c7['serviceCode'],'name':_0x4d3d46[_0x39ee19(0xfe)][_0x39ee19(0x123)],'description':_0x4d3d46['service'][_0x39ee19(0xd8)],'version':_0x56e7c7[_0x39ee19(0x12d)],'importedAt':_0x56e7c7[_0x39ee19(0x12c)],'source':_0x56e7c7['source'],'commandCount':_0x53ab64[_0x39ee19(0xde)],'commands':_0x53ab64};}function sha256(_0x3557b8){const _0x17aa06=a42_0x2ce158;return createHash(_0x17aa06(0xfc))[_0x17aa06(0x116)](_0x3557b8)[_0x17aa06(0x114)](_0x17aa06(0x129));}
@@ -1 +1 @@
1
- const a43_0x3d27a2=a43_0x19e4;function a43_0xf52f(){const _0x7ce505=['bool','files','isDirectory','name','path','content','554558MPkQcw','419784fgHlgX','force','validation','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','Skill\x20directory\x20already\x20exists:\x20','48CdnwDb','skillDir','WRITE','str','type','utf8','trim','Created\x20local\x20Skill\x20draft\x20','isSymbolicLink','105444HdxidB','rendered','202447AAUxfO','create','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','8807248VIPWUO','map','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','skillName','read','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','target','创建本地自包含的运行态\x20Skill\x20草稿','1162310yfJMgT','Refusing\x20to\x20overwrite\x20symlink:\x20','478484JtxBsY'];a43_0xf52f=function(){return _0x7ce505;};return a43_0xf52f();}(function(_0x17c9f6,_0x4b0bd9){const _0x204774=a43_0x19e4,_0x3bfeb5=_0x17c9f6();while(!![]){try{const _0x53134a=-parseInt(_0x204774(0xe8))/0x1+parseInt(_0x204774(0xe9))/0x2+parseInt(_0x204774(0xf7))/0x3+parseInt(_0x204774(0x106))/0x4+-parseInt(_0x204774(0x104))/0x5+parseInt(_0x204774(0xee))/0x6*(-parseInt(_0x204774(0xf9))/0x7)+parseInt(_0x204774(0xfc))/0x8;if(_0x53134a===_0x4b0bd9)break;else _0x3bfeb5['push'](_0x3bfeb5['shift']());}catch(_0x59834b){_0x3bfeb5['push'](_0x3bfeb5['shift']());}}}(a43_0xf52f,0x6d2cb));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';function a43_0x19e4(_0x239936,_0x3b2472){_0x239936=_0x239936-0xe5;const _0xf52fa4=a43_0xf52f();let _0x19e4b8=_0xf52fa4[_0x239936];return _0x19e4b8;}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':'skill','command':a43_0x3d27a2(0xfa),'description':a43_0x3d27a2(0x103),'risk':a43_0x3d27a2(0x100),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x192a4e){const _0x5b63c6=a43_0x3d27a2,_0x32c544=buildSkillCreatePlan(_0x192a4e[_0x5b63c6(0xf1)]('name'),_0x192a4e[_0x5b63c6(0xf1)](_0x5b63c6(0xf2)),_0x192a4e['str'](_0x5b63c6(0x102)));return{'method':_0x5b63c6(0xf0),'url':_0x32c544[_0x5b63c6(0xef)],'body':{'skillName':_0x32c544[_0x5b63c6(0xf8)][_0x5b63c6(0xff)],'type':_0x32c544['rendered']['type'],'selfContained':!![],'files':_0x32c544[_0x5b63c6(0xf8)][_0x5b63c6(0x108)][_0x5b63c6(0xfd)](_0x496e31=>_0x496e31[_0x5b63c6(0xe6)])},'description':_0x5b63c6(0xfb)};},async 'execute'(_0xd05dad){const _0x1ca5d9=a43_0x3d27a2,_0x158229=buildSkillCreatePlan(_0xd05dad[_0x1ca5d9(0xf1)](_0x1ca5d9(0xe5)),_0xd05dad[_0x1ca5d9(0xf1)](_0x1ca5d9(0xf2)),_0xd05dad['str'](_0x1ca5d9(0x102)));return writeSkillDraft(_0x158229,_0xd05dad[_0x1ca5d9(0x107)](_0x1ca5d9(0xea))),{'ok':!![],'data':{'skillName':_0x158229[_0x1ca5d9(0xf8)][_0x1ca5d9(0xff)],'type':_0x158229['rendered'][_0x1ca5d9(0xf2)],'dir':_0x158229[_0x1ca5d9(0xef)],'files':_0x158229[_0x1ca5d9(0xf8)][_0x1ca5d9(0x108)]['map'](_0x14684e=>_0x14684e[_0x1ca5d9(0xe6)])},'message':_0x1ca5d9(0xf5)+_0x158229[_0x1ca5d9(0xf8)]['skillName']};}};function buildSkillCreatePlan(_0x409122,_0x972258,_0x597ed1){const _0x4e93d8=a43_0x3d27a2,_0x49b6c6=_0x972258[_0x4e93d8(0xf4)](),_0x3aaca6=renderSkillTemplate({'skillName':_0x409122,'type':_0x49b6c6});!_0x49b6c6&&writeCliSideChannelLine(_0x4e93d8(0xfe));const _0x8e7810=resolve(normalizeSkillTarget(_0x597ed1));return{'rendered':_0x3aaca6,'targetRoot':_0x8e7810,'skillDir':resolve(_0x8e7810,_0x3aaca6[_0x4e93d8(0xff)])};}function normalizeSkillTarget(_0x206cdd){const _0x37f9fc=a43_0x3d27a2;return(_0x206cdd||DEFAULT_SKILL_TARGET)[_0x37f9fc(0xf4)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x4f7af8,_0x3ed1a1){const _0xe45f97=a43_0x3d27a2;if(existsSync(_0x4f7af8['skillDir'])){const _0x24009d=lstatSync(_0x4f7af8[_0xe45f97(0xef)]);if(!_0x24009d[_0xe45f97(0x109)]()||_0x24009d[_0xe45f97(0xf6)]())throw CliErrors['validation'](_0xe45f97(0xec)+_0x4f7af8[_0xe45f97(0xef)]);if(!_0x3ed1a1)throw CliErrors[_0xe45f97(0xeb)](_0xe45f97(0xed)+_0x4f7af8[_0xe45f97(0xef)],_0xe45f97(0x101));}for(const _0x4b6434 of _0x4f7af8['rendered']['files']){const _0x384323=resolve(_0x4f7af8[_0xe45f97(0xef)],_0x4b6434['path']),_0x3ef6a0=dirname(_0x384323);mkdirSync(_0x3ef6a0,{'recursive':!![]});if(existsSync(_0x384323)&&lstatSync(_0x384323)[_0xe45f97(0xf6)]())throw CliErrors[_0xe45f97(0xeb)](_0xe45f97(0x105)+_0x384323);writeFileSync(_0x384323,_0x4b6434[_0xe45f97(0xe7)],_0xe45f97(0xf3));}}
1
+ function a43_0x4e67(_0x5cc7a3,_0x4aabba){_0x5cc7a3=_0x5cc7a3-0x161;const _0x21cbad=a43_0x21cb();let _0x4e67cf=_0x21cbad[_0x5cc7a3];return _0x4e67cf;}const a43_0x34602c=a43_0x4e67;(function(_0x1bda9a,_0x2c42c5){const _0x1500de=a43_0x4e67,_0x38a248=_0x1bda9a();while(!![]){try{const _0x346f86=-parseInt(_0x1500de(0x181))/0x1*(-parseInt(_0x1500de(0x16e))/0x2)+parseInt(_0x1500de(0x171))/0x3*(parseInt(_0x1500de(0x162))/0x4)+parseInt(_0x1500de(0x17e))/0x5+parseInt(_0x1500de(0x166))/0x6+parseInt(_0x1500de(0x161))/0x7*(-parseInt(_0x1500de(0x173))/0x8)+parseInt(_0x1500de(0x16c))/0x9+-parseInt(_0x1500de(0x177))/0xa*(parseInt(_0x1500de(0x16f))/0xb);if(_0x346f86===_0x2c42c5)break;else _0x38a248['push'](_0x38a248['shift']());}catch(_0x3e2711){_0x38a248['push'](_0x38a248['shift']());}}}(a43_0x21cb,0x3b59e));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_0x34602c(0x168),'command':a43_0x34602c(0x169),'description':'创建本地自包含的运行态\x20Skill\x20草稿','risk':a43_0x34602c(0x17f),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x25b807){const _0x1ab7f7=a43_0x34602c,_0x50da8c=buildSkillCreatePlan(_0x25b807[_0x1ab7f7(0x172)](_0x1ab7f7(0x164)),_0x25b807[_0x1ab7f7(0x172)]('type'),_0x25b807[_0x1ab7f7(0x172)](_0x1ab7f7(0x17a)));return{'method':_0x1ab7f7(0x175),'url':_0x50da8c[_0x1ab7f7(0x167)],'body':{'skillName':_0x50da8c[_0x1ab7f7(0x184)]['skillName'],'type':_0x50da8c[_0x1ab7f7(0x184)][_0x1ab7f7(0x170)],'selfContained':!![],'files':_0x50da8c['rendered'][_0x1ab7f7(0x16d)]['map'](_0xf092d4=>_0xf092d4[_0x1ab7f7(0x17c)])},'description':_0x1ab7f7(0x180)};},async 'execute'(_0x4acd6f){const _0x56a232=a43_0x34602c,_0x3d35cb=buildSkillCreatePlan(_0x4acd6f[_0x56a232(0x172)](_0x56a232(0x164)),_0x4acd6f[_0x56a232(0x172)](_0x56a232(0x170)),_0x4acd6f[_0x56a232(0x172)]('target'));return writeSkillDraft(_0x3d35cb,_0x4acd6f['bool'](_0x56a232(0x163))),{'ok':!![],'data':{'skillName':_0x3d35cb[_0x56a232(0x184)][_0x56a232(0x179)],'type':_0x3d35cb[_0x56a232(0x184)][_0x56a232(0x170)],'dir':_0x3d35cb['skillDir'],'files':_0x3d35cb[_0x56a232(0x184)][_0x56a232(0x16d)][_0x56a232(0x17b)](_0x3d4924=>_0x3d4924['path'])},'message':'Created\x20local\x20Skill\x20draft\x20'+_0x3d35cb['rendered'][_0x56a232(0x179)]};}};function buildSkillCreatePlan(_0x3b6fec,_0x1ef8a5,_0x479492){const _0x2e1a1f=a43_0x34602c,_0xce70f3=_0x1ef8a5['trim'](),_0x4e151f=renderSkillTemplate({'skillName':_0x3b6fec,'type':_0xce70f3});!_0xce70f3&&writeCliSideChannelLine(_0x2e1a1f(0x178));const _0x113d7b=resolve(normalizeSkillTarget(_0x479492));return{'rendered':_0x4e151f,'targetRoot':_0x113d7b,'skillDir':resolve(_0x113d7b,_0x4e151f[_0x2e1a1f(0x179)])};}function normalizeSkillTarget(_0x7e354){const _0x24ef4e=a43_0x34602c;return(_0x7e354||DEFAULT_SKILL_TARGET)[_0x24ef4e(0x174)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x1dde26,_0x33b5e5){const _0x4afb87=a43_0x34602c;if(existsSync(_0x1dde26[_0x4afb87(0x167)])){const _0x1eea6f=lstatSync(_0x1dde26[_0x4afb87(0x167)]);if(!_0x1eea6f[_0x4afb87(0x182)]()||_0x1eea6f[_0x4afb87(0x165)]())throw CliErrors[_0x4afb87(0x183)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x1dde26[_0x4afb87(0x167)]);if(!_0x33b5e5)throw CliErrors[_0x4afb87(0x183)](_0x4afb87(0x17d)+_0x1dde26[_0x4afb87(0x167)],_0x4afb87(0x16b));}for(const _0x2a5336 of _0x1dde26[_0x4afb87(0x184)][_0x4afb87(0x16d)]){const _0x7c996b=resolve(_0x1dde26[_0x4afb87(0x167)],_0x2a5336['path']),_0x2267fa=dirname(_0x7c996b);mkdirSync(_0x2267fa,{'recursive':!![]});if(existsSync(_0x7c996b)&&lstatSync(_0x7c996b)[_0x4afb87(0x165)]())throw CliErrors[_0x4afb87(0x183)](_0x4afb87(0x16a)+_0x7c996b);writeFileSync(_0x7c996b,_0x2a5336['content'],_0x4afb87(0x176));}}function a43_0x21cb(){const _0x4b4578=['name','isSymbolicLink','814320qOZveB','skillDir','skill','create','Refusing\x20to\x20overwrite\x20symlink:\x20','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','2605599asNyTT','files','14888bDrpwO','11BuqfUj','type','3SvuyqO','str','11896GKVSVK','trim','WRITE','utf8','8005940CRhupL','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','skillName','target','map','path','Skill\x20directory\x20already\x20exists:\x20','2370035tjmcYo','read','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','6sMpnQU','isDirectory','validation','rendered','637XWsxAE','940444AqLleW','force'];a43_0x21cb=function(){return _0x4b4578;};return a43_0x21cb();}
@@ -1 +1 @@
1
- function a44_0x3700(_0x37cae9,_0x2f8830){_0x37cae9=_0x37cae9-0xa1;const _0x1bec6b=a44_0x1bec();let _0x37006e=_0x1bec6b[_0x37cae9];return _0x37006e;}const a44_0xe83be5=a44_0x3700;(function(_0x4f7230,_0x2e9b2d){const _0x48172d=a44_0x3700,_0x4c8998=_0x4f7230();while(!![]){try{const _0x38a4bd=parseInt(_0x48172d(0xc7))/0x1*(parseInt(_0x48172d(0xa1))/0x2)+parseInt(_0x48172d(0xc3))/0x3*(-parseInt(_0x48172d(0xc2))/0x4)+-parseInt(_0x48172d(0xcb))/0x5+parseInt(_0x48172d(0xa9))/0x6+-parseInt(_0x48172d(0xca))/0x7+-parseInt(_0x48172d(0xba))/0x8+-parseInt(_0x48172d(0xa7))/0x9*(-parseInt(_0x48172d(0xb3))/0xa);if(_0x38a4bd===_0x2e9b2d)break;else _0x4c8998['push'](_0x4c8998['shift']());}catch(_0x2fc358){_0x4c8998['push'](_0x4c8998['shift']());}}}(a44_0x1bec,0x7114d));function a44_0x1bec(){const _0x5866db=['42xVtJKc','write','created','str','127npMKjZ','scope','read','5797617BDVNng','3419440lFyORq','found','expected-diagram-revision','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','8726vdQXwk','skill-code','appCode','validation','trim','\x20Skill\x20diagram\x20for\x20','5742846okHrmO','action','4742118xiJMlA','personal','Updated','将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。',';\x20next\x20write\x20expects\x20revision\x20','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','version','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','num','source-fingerprint','20BUOQkA','\x20is\x20unchanged.','isInteger','expectedDiagramRevision','diagram-file','Created','company','2574528FPHwtH','skillCode','skill','diagram-validate','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','Found\x20Skill\x20diagram\x20for\x20','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','diagram-push','92436mzrnFB'];a44_0x1bec=function(){return _0x5866db;};return a44_0x1bec();}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(_0x21b541){const _0x3a325e=a44_0x3700,_0x538b52=_0x21b541['str'](_0x3a325e(0xa2))[_0x3a325e(0xa5)](),_0x109d69=_0x21b541['str'](_0x3a325e(0xaf))[_0x3a325e(0xa5)](),_0x213a55=_0x21b541[_0x3a325e(0xc6)](_0x3a325e(0xc8));if(!_0x538b52||!_0x109d69||_0x213a55!==_0x3a325e(0xaa)&&_0x213a55!==_0x3a325e(0xb9))throw CliErrors['validation'](_0x3a325e(0xbe));return{'skillCode':_0x538b52,'version':_0x109d69,'scope':_0x213a55};}async function readDiagramWriteInput(_0x44a060){const _0x4c35e4=a44_0x3700,_0x455295=_0x44a060[_0x4c35e4(0xb1)](_0x4c35e4(0xcd)),_0x39b3ce=_0x44a060['str'](_0x4c35e4(0xb2))['trim']();if(!Number[_0x4c35e4(0xb5)](_0x455295)||_0x455295<0x0)throw CliErrors['validation'](_0x4c35e4(0xae));if(!/^sha256:[0-9a-f]{64}$/['test'](_0x39b3ce))throw CliErrors[_0x4c35e4(0xa4)](_0x4c35e4(0xc0));return{'expectedDiagramRevision':_0x455295,'sourceFingerprint':_0x39b3ce,'diagram':await readRequiredSkillDiagram(_0x44a060[_0x4c35e4(0xc6)](_0x4c35e4(0xb7)))};}export const diagramValidateCommand={'service':'skill','command':a44_0xe83be5(0xbd),'description':'Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','risk':'read','flags':WRITE_FLAGS,async 'execute'(_0x536fcd){const _0x16632e=a44_0xe83be5,_0x359ce4=readDiagramTarget(_0x536fcd),_0x21228c=await validateRuntimeSkillVersionDiagram(_0x536fcd[_0x16632e(0xa3)],_0x359ce4[_0x16632e(0xbb)],_0x359ce4['version'],_0x359ce4['scope'],await readDiagramWriteInput(_0x536fcd));return{'ok':!![],'data':_0x21228c,'message':'Skill\x20diagram\x20validation\x20passed\x20for\x20'+_0x359ce4[_0x16632e(0xbb)]+'@'+_0x359ce4['version']+'.'};}};export const diagramPushCommand={'service':a44_0xe83be5(0xbc),'command':a44_0xe83be5(0xc1),'description':'为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','risk':a44_0xe83be5(0xc4),'confirmationDescription':a44_0xe83be5(0xac),'flags':WRITE_FLAGS,async 'execute'(_0x5144bd){const _0x204181=a44_0xe83be5,_0x411cec=readDiagramTarget(_0x5144bd),_0x7ade8d=await putRuntimeSkillVersionDiagram(_0x5144bd[_0x204181(0xa3)],_0x411cec[_0x204181(0xbb)],_0x411cec[_0x204181(0xaf)],_0x411cec[_0x204181(0xc8)],await readDiagramWriteInput(_0x5144bd));return{'ok':!![],'data':_0x7ade8d,'message':_0x7ade8d[_0x204181(0xa8)]==='unchanged'?'Skill\x20diagram\x20for\x20'+_0x411cec['skillCode']+'@'+_0x411cec[_0x204181(0xaf)]+_0x204181(0xb4):(_0x7ade8d[_0x204181(0xa8)]===_0x204181(0xc5)?_0x204181(0xb8):_0x204181(0xab))+_0x204181(0xa6)+_0x411cec[_0x204181(0xbb)]+'@'+_0x411cec[_0x204181(0xaf)]+'.'};}};export const diagramShowCommand={'service':a44_0xe83be5(0xbc),'command':'diagram-show','description':a44_0xe83be5(0xb0),'risk':a44_0xe83be5(0xc9),'flags':TARGET_FLAGS,async 'execute'(_0x1d57f8){const _0x1cf7e3=a44_0xe83be5,_0x175fec=readDiagramTarget(_0x1d57f8),_0x1efb86=await getRuntimeSkillVersionDiagram(_0x1d57f8[_0x1cf7e3(0xa3)],_0x175fec[_0x1cf7e3(0xbb)],_0x175fec[_0x1cf7e3(0xaf)],_0x175fec[_0x1cf7e3(0xc8)]);return{'ok':!![],'data':_0x1efb86,'message':_0x1efb86[_0x1cf7e3(0xcc)]?_0x1cf7e3(0xbf)+_0x175fec[_0x1cf7e3(0xbb)]+'@'+_0x175fec[_0x1cf7e3(0xaf)]+_0x1cf7e3(0xad)+_0x1efb86[_0x1cf7e3(0xb6)]+'.':_0x1cf7e3(0xce)+_0x175fec['skillCode']+'@'+_0x175fec[_0x1cf7e3(0xaf)]+';\x20first\x20write\x20expects\x20revision\x20'+_0x1efb86[_0x1cf7e3(0xb6)]+'.'};}};
1
+ const a44_0x442248=a44_0xdb83;(function(_0x45a248,_0x786c5b){const _0x1276ca=a44_0xdb83,_0x3f284a=_0x45a248();while(!![]){try{const _0x51d666=-parseInt(_0x1276ca(0x10a))/0x1*(parseInt(_0x1276ca(0xec))/0x2)+-parseInt(_0x1276ca(0x10e))/0x3+parseInt(_0x1276ca(0x106))/0x4+parseInt(_0x1276ca(0x102))/0x5+parseInt(_0x1276ca(0xed))/0x6*(parseInt(_0x1276ca(0xf5))/0x7)+-parseInt(_0x1276ca(0xf7))/0x8*(-parseInt(_0x1276ca(0x10b))/0x9)+parseInt(_0x1276ca(0xe6))/0xa*(parseInt(_0x1276ca(0xf1))/0xb);if(_0x51d666===_0x786c5b)break;else _0x3f284a['push'](_0x3f284a['shift']());}catch(_0x4eb828){_0x3f284a['push'](_0x3f284a['shift']());}}}(a44_0xc0c9,0x303dd));function a44_0xc0c9(){const _0x2d4617=['446934jxxbuQ','Skill\x20diagram\x20for\x20','isInteger','diagram-push','10307goMLWi','diagram-show','Skill\x20diagram\x20validation\x20passed\x20for\x20','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','7DedlUu','trim','40RrJHeS','read','company','version','write','Created','str','action','skill-code','Found\x20Skill\x20diagram\x20for\x20',';\x20first\x20write\x20expects\x20revision\x20','1310290TITKGe','skillCode','found','skill','571308jNopqP','created','scope','unchanged','26479RNYshX','331191JBjevn','\x20is\x20unchanged.','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','637302aPcWKD','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','validation','Updated','source-fingerprint','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','test','appCode','为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','970tvZsoK','expectedDiagramRevision','\x20Skill\x20diagram\x20for\x20','diagram-file','expected-diagram-revision','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','26TekDrj'];a44_0xc0c9=function(){return _0x2d4617;};return a44_0xc0c9();}function a44_0xdb83(_0x2f3991,_0x268c9f){_0x2f3991=_0x2f3991-0xe1;const _0xc0c955=a44_0xc0c9();let _0xdb8342=_0xc0c955[_0x2f3991];return _0xdb8342;}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(_0x3c4959){const _0x12621c=a44_0xdb83,_0x377ef1=_0x3c4959[_0x12621c(0xfd)](_0x12621c(0xff))['trim'](),_0x187b60=_0x3c4959[_0x12621c(0xfd)](_0x12621c(0xfa))[_0x12621c(0xf6)](),_0x4028e1=_0x3c4959[_0x12621c(0xfd)](_0x12621c(0x108));if(!_0x377ef1||!_0x187b60||_0x4028e1!=='personal'&&_0x4028e1!==_0x12621c(0xf9))throw CliErrors[_0x12621c(0x110)](_0x12621c(0x10d));return{'skillCode':_0x377ef1,'version':_0x187b60,'scope':_0x4028e1};}async function readDiagramWriteInput(_0x103b81){const _0x3555a1=a44_0xdb83,_0x58495e=_0x103b81['num'](_0x3555a1(0xea)),_0x5d0f13=_0x103b81[_0x3555a1(0xfd)](_0x3555a1(0xe1))[_0x3555a1(0xf6)]();if(!Number[_0x3555a1(0xef)](_0x58495e)||_0x58495e<0x0)throw CliErrors['validation']('--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.');if(!/^sha256:[0-9a-f]{64}$/[_0x3555a1(0xe3)](_0x5d0f13))throw CliErrors[_0x3555a1(0x110)](_0x3555a1(0xf4));return{'expectedDiagramRevision':_0x58495e,'sourceFingerprint':_0x5d0f13,'diagram':await readRequiredSkillDiagram(_0x103b81[_0x3555a1(0xfd)](_0x3555a1(0xe9)))};}export const diagramValidateCommand={'service':a44_0x442248(0x105),'command':'diagram-validate','description':a44_0x442248(0xeb),'risk':'read','flags':WRITE_FLAGS,async 'execute'(_0x31ee4a){const _0x312d72=a44_0x442248,_0x3791bf=readDiagramTarget(_0x31ee4a),_0x214b94=await validateRuntimeSkillVersionDiagram(_0x31ee4a[_0x312d72(0xe4)],_0x3791bf[_0x312d72(0x103)],_0x3791bf['version'],_0x3791bf[_0x312d72(0x108)],await readDiagramWriteInput(_0x31ee4a));return{'ok':!![],'data':_0x214b94,'message':_0x312d72(0xf3)+_0x3791bf[_0x312d72(0x103)]+'@'+_0x3791bf[_0x312d72(0xfa)]+'.'};}};export const diagramPushCommand={'service':a44_0x442248(0x105),'command':a44_0x442248(0xf0),'description':a44_0x442248(0xe5),'risk':a44_0x442248(0xfb),'confirmationDescription':'将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','flags':WRITE_FLAGS,async 'execute'(_0x3347d0){const _0x59d3a2=a44_0x442248,_0x179b10=readDiagramTarget(_0x3347d0),_0x25d4d0=await putRuntimeSkillVersionDiagram(_0x3347d0[_0x59d3a2(0xe4)],_0x179b10[_0x59d3a2(0x103)],_0x179b10[_0x59d3a2(0xfa)],_0x179b10[_0x59d3a2(0x108)],await readDiagramWriteInput(_0x3347d0));return{'ok':!![],'data':_0x25d4d0,'message':_0x25d4d0['action']===_0x59d3a2(0x109)?_0x59d3a2(0xee)+_0x179b10[_0x59d3a2(0x103)]+'@'+_0x179b10['version']+_0x59d3a2(0x10c):(_0x25d4d0[_0x59d3a2(0xfe)]===_0x59d3a2(0x107)?_0x59d3a2(0xfc):_0x59d3a2(0x111))+_0x59d3a2(0xe8)+_0x179b10['skillCode']+'@'+_0x179b10['version']+'.'};}};export const diagramShowCommand={'service':a44_0x442248(0x105),'command':a44_0x442248(0xf2),'description':a44_0x442248(0x10f),'risk':a44_0x442248(0xf8),'flags':TARGET_FLAGS,async 'execute'(_0xfdacf2){const _0x5b0755=a44_0x442248,_0x25592c=readDiagramTarget(_0xfdacf2),_0x5ab4d8=await getRuntimeSkillVersionDiagram(_0xfdacf2[_0x5b0755(0xe4)],_0x25592c[_0x5b0755(0x103)],_0x25592c[_0x5b0755(0xfa)],_0x25592c[_0x5b0755(0x108)]);return{'ok':!![],'data':_0x5ab4d8,'message':_0x5ab4d8[_0x5b0755(0x104)]?_0x5b0755(0x100)+_0x25592c[_0x5b0755(0x103)]+'@'+_0x25592c['version']+';\x20next\x20write\x20expects\x20revision\x20'+_0x5ab4d8[_0x5b0755(0xe7)]+'.':_0x5b0755(0xe2)+_0x25592c[_0x5b0755(0x103)]+'@'+_0x25592c[_0x5b0755(0xfa)]+_0x5b0755(0x101)+_0x5ab4d8[_0x5b0755(0xe7)]+'.'};}};
@@ -1 +1 @@
1
- const a45_0x2314e4=a45_0x5478;(function(_0xfd4c8f,_0x26e82d){const _0x3740b8=a45_0x5478,_0x120fe=_0xfd4c8f();while(!![]){try{const _0x21847a=-parseInt(_0x3740b8(0x137))/0x1*(parseInt(_0x3740b8(0x15f))/0x2)+-parseInt(_0x3740b8(0x15b))/0x3*(parseInt(_0x3740b8(0x145))/0x4)+-parseInt(_0x3740b8(0x15a))/0x5+parseInt(_0x3740b8(0x158))/0x6+-parseInt(_0x3740b8(0x147))/0x7+parseInt(_0x3740b8(0x154))/0x8*(-parseInt(_0x3740b8(0x15e))/0x9)+parseInt(_0x3740b8(0x139))/0xa;if(_0x21847a===_0x26e82d)break;else _0x120fe['push'](_0x120fe['shift']());}catch(_0x30fa79){_0x120fe['push'](_0x120fe['shift']());}}}(a45_0x2c5d,0x5136c));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 a45_0x5478(_0x522ed0,_0x56d24f){_0x522ed0=_0x522ed0-0x136;const _0x2c5d96=a45_0x2c5d();let _0x547869=_0x2c5d96[_0x522ed0];return _0x547869;}export const installCommand={'service':a45_0x2314e4(0x138),'command':a45_0x2314e4(0x13d),'description':a45_0x2314e4(0x156),'risk':a45_0x2314e4(0x14d),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0xf9a62b){return syncRuntimeSkills(_0xf9a62b);}};async function syncRuntimeSkills(_0x599d27){const _0x3dc6c6=a45_0x2314e4,{downloadRuntimeSkillPackage:_0x4e5a49,listRuntimeSkills:_0x3a60d9}=await import('../../../core/api-client.js'),{linkEffectiveRuntimeSkills:_0x5005e5,materializeRuntimeSkill:_0x28d70b,pruneStaleRuntimeSkillCache:_0x4ee27d,pruneStaleRuntimeSkillLinks:_0x4c19de,resolveRuntimeSkillInstallTarget:_0x3aaf56}=await import('../../../skills/runtime-skill-sync.js'),_0x605752=_0x599d27[_0x3dc6c6(0x14e)](_0x3dc6c6(0x157)),_0x3d4f18=normalizeSyncScopes(_0x599d27[_0x3dc6c6(0x14e)](_0x3dc6c6(0x144))),_0x35317a=_0x599d27[_0x3dc6c6(0x155)]??_0x3dc6c6(0x14b),_0x39450a=_0x599d27[_0x3dc6c6(0x14c)],_0x538e04=_0x599d27[_0x3dc6c6(0x150)]('force');if(!_0x39450a)throw CliErrors[_0x3dc6c6(0x143)](_0x3dc6c6(0x13e));const _0x135579=_0x3aaf56(_0x599d27[_0x3dc6c6(0x146)],_0x599d27[_0x3dc6c6(0x150)](_0x3dc6c6(0x148))?_0x3dc6c6(0x148):_0x3dc6c6(0x15c)),_0x111118=_0x3aaf56(_0x599d27['appCode'],_0x135579[_0x3dc6c6(0x144)]===_0x3dc6c6(0x148)?_0x3dc6c6(0x15c):_0x3dc6c6(0x148)),_0x2a34ef=await Promise['all'](_0x3d4f18[_0x3dc6c6(0x13b)](_0x300ee7=>_0x3a60d9({'appCode':_0x599d27[_0x3dc6c6(0x146)],'scope':_0x300ee7,'code':_0x605752[_0x3dc6c6(0x159)]()||undefined}))),_0xf0ec97=_0x3d4f18[_0x3dc6c6(0x142)]('personal')?_0x2a34ef[_0x3dc6c6(0x140)]((_0x2b97e6,_0x4c3347)=>_0x3d4f18[_0x4c3347]===_0x3dc6c6(0x151)?_0x2b97e6[_0x3dc6c6(0x151)]:[]):[],_0x3657ac=_0x3d4f18[_0x3dc6c6(0x142)](_0x3dc6c6(0x13a))?_0x2a34ef[_0x3dc6c6(0x140)]((_0x6ed4d8,_0x5a300f)=>_0x3d4f18[_0x5a300f]===_0x3dc6c6(0x13a)?_0x6ed4d8[_0x3dc6c6(0x13a)]:[]):[],_0xc6f4cd=new Set([..._0xf0ec97[_0x3dc6c6(0x13b)](_0x52f50e=>_0x52f50e[_0x3dc6c6(0x13f)]?.['trim']())[_0x3dc6c6(0x163)](_0x444b65=>Boolean(_0x444b65)),..._0x3657ac[_0x3dc6c6(0x13b)](_0x183653=>_0x183653['skillCode']?.[_0x3dc6c6(0x159)]())[_0x3dc6c6(0x163)](_0x565597=>Boolean(_0x565597))]),_0x5be3fc=_0x605752[_0x3dc6c6(0x159)]()?[_0x605752[_0x3dc6c6(0x159)]()]:undefined,_0x5b81b6=_0x3d4f18['length']===0x2&&_0x3d4f18['includes'](_0x3dc6c6(0x151))&&_0x3d4f18[_0x3dc6c6(0x142)](_0x3dc6c6(0x13a)),_0xb569=_0x5b81b6?_0x4c19de(_0x135579,_0xc6f4cd,_0x5be3fc):[],_0x301a07=_0x4ee27d({'env':_0x35317a,'accessKey':_0x39450a,'appCode':_0x599d27[_0x3dc6c6(0x146)],'activeSkillCodes':_0xc6f4cd,'pruneSkillCodes':_0x5be3fc,'scopes':_0x3d4f18,'protectedLinkRoots':_0x111118[_0x3dc6c6(0x13c)]}),_0x32e501=[];for(const _0x54523c of _0xf0ec97){_0x32e501[_0x3dc6c6(0x136)](_0x28d70b(_0x54523c,_0x3dc6c6(0x151),{'env':_0x35317a,'accessKey':_0x39450a,'appCode':_0x599d27[_0x3dc6c6(0x146)],'force':_0x538e04,'packageBytes':await downloadSkillPackage(_0x54523c,_0x3dc6c6(0x151),_0x599d27[_0x3dc6c6(0x146)],_0x4e5a49)}));}for(const _0x5d5d82 of _0x3657ac){_0x32e501['push'](_0x28d70b(_0x5d5d82,_0x3dc6c6(0x13a),{'env':_0x35317a,'accessKey':_0x39450a,'appCode':_0x599d27['appCode'],'force':_0x538e04,'packageBytes':await downloadSkillPackage(_0x5d5d82,'company',_0x599d27['appCode'],_0x4e5a49)}));}const _0x2c36e5=_0x5005e5(_0x32e501,_0x135579),_0x2eeb4c=countLinkActions(_0x2c36e5);return{'ok':!![],'data':{'appCode':_0x599d27['appCode'],..._0x135579[_0x3dc6c6(0x144)]===_0x3dc6c6(0x148)?{'installTarget':{'scope':_0x135579[_0x3dc6c6(0x144)],'skillRoots':[..._0x135579[_0x3dc6c6(0x13c)]]}}:{},'personal':_0xf0ec97[_0x3dc6c6(0x153)],'company':_0x3657ac[_0x3dc6c6(0x153)],'materialized':_0x32e501['length'],'links':{'total':_0x2c36e5[_0x3dc6c6(0x153)],'created':_0x2eeb4c[_0x3dc6c6(0x160)]??0x0,'updated':_0x2eeb4c[_0x3dc6c6(0x152)]??0x0,'unchanged':_0x2eeb4c[_0x3dc6c6(0x14f)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0xb569['filter'](_0x40229e=>_0x40229e[_0x3dc6c6(0x15d)]===_0x3dc6c6(0x149))[_0x3dc6c6(0x153)],'cacheDirs':_0x301a07[_0x3dc6c6(0x163)](_0x3ce476=>_0x3ce476[_0x3dc6c6(0x15d)]===_0x3dc6c6(0x149))[_0x3dc6c6(0x153)],'skipped':[..._0xb569,..._0x301a07][_0x3dc6c6(0x163)](_0x482c78=>_0x482c78[_0x3dc6c6(0x15d)]==='skipped')[_0x3dc6c6(0x153)]},'skills':{'personal':_0xf0ec97[_0x3dc6c6(0x13b)](summarizeRuntimeSkill),'company':_0x3657ac[_0x3dc6c6(0x13b)](summarizeRuntimeSkill)}},'message':_0x3dc6c6(0x14a)+_0xf0ec97[_0x3dc6c6(0x153)]+_0x3dc6c6(0x161)+_0x3657ac['length']+_0x3dc6c6(0x162)};}async function downloadSkillPackage(_0x1697b1,_0x453f46,_0x310430,_0x529164){const _0x4ea268=a45_0x2314e4,_0x55d304=_0x1697b1[_0x4ea268(0x164)]?.['trim']();return _0x55d304?_0x529164(_0x453f46,_0x1697b1[_0x4ea268(0x13f)],_0x310430,_0x55d304):_0x529164(_0x453f46,_0x1697b1[_0x4ea268(0x13f)],_0x310430);}function countLinkActions(_0x1b725e){const _0x4b5ea1=a45_0x2314e4;return _0x1b725e[_0x4b5ea1(0x141)]((_0x4fd746,_0x2ae7b8)=>{const _0x4b94d5=_0x4b5ea1;return _0x4fd746[_0x2ae7b8[_0x4b94d5(0x15d)]]=(_0x4fd746[_0x2ae7b8[_0x4b94d5(0x15d)]]??0x0)+0x1,_0x4fd746;},{});}function a45_0x2c5d(){const _0x52396f=['462bLgNop','created','\x20personal\x20and\x20','\x20company\x20Skill(s).','filter','version','push','2611uQrDcM','skill','16933860KlRcBa','company','map','skillRoots','install','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','skillCode','flatMap','reduce','includes','authRequired','scope','1824412VKsOVX','appCode','1897294LnGokv','project','removed','Installed\x20','production','accessKey','read','str','unchanged','bool','personal','updated','length','4188776MhCteW','envName','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','code','3389076UOJnDb','trim','358485OpdOhg','3rObOrT','global','action','9qyqVes'];a45_0x2c5d=function(){return _0x52396f;};return a45_0x2c5d();}
1
+ function a45_0xe3b7(_0x2d77d5,_0x30c8f3){_0x2d77d5=_0x2d77d5-0xd7;const _0x4f52c0=a45_0x4f52();let _0xe3b7f2=_0x4f52c0[_0x2d77d5];return _0xe3b7f2;}const a45_0x236fad=a45_0xe3b7;(function(_0x3ea82e,_0x4316df){const _0x3abee6=a45_0xe3b7,_0x420828=_0x3ea82e();while(!![]){try{const _0x1148af=parseInt(_0x3abee6(0xde))/0x1*(-parseInt(_0x3abee6(0xee))/0x2)+parseInt(_0x3abee6(0xfd))/0x3*(parseInt(_0x3abee6(0xe9))/0x4)+parseInt(_0x3abee6(0xf0))/0x5*(parseInt(_0x3abee6(0xe4))/0x6)+parseInt(_0x3abee6(0xf5))/0x7*(parseInt(_0x3abee6(0xef))/0x8)+parseInt(_0x3abee6(0xe3))/0x9*(parseInt(_0x3abee6(0xe1))/0xa)+parseInt(_0x3abee6(0xe6))/0xb+-parseInt(_0x3abee6(0xfa))/0xc*(parseInt(_0x3abee6(0xdd))/0xd);if(_0x1148af===_0x4316df)break;else _0x420828['push'](_0x420828['shift']());}catch(_0x3120a0){_0x420828['push'](_0x420828['shift']());}}}(a45_0x4f52,0x5bb34));import{CliErrors}from'../../../errors.js';function a45_0x4f52(){const _0x54d083=['accessKey','3432726swdFvt','length','str','66392jFHJYm','company','code','install','scope','1456846KoqCfn','425456DyxeNa','1131015vHxhKO','authRequired','\x20personal\x20and\x20','flatMap','personal','42oEvhco','skill','skillRoots','includes','skillCode','100968qOLmDw','version','action','42CMWbNj','project','force','push','\x20company\x20Skill(s).','unchanged','reduce','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','updated','filter','trim','appCode','map','273xbxlgV','1CotAbX','bool','removed','3590iwwhxb','global','4788ENHFlJ','6TbXYXs'];a45_0x4f52=function(){return _0x54d083;};return a45_0x4f52();}import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':a45_0x236fad(0xf6),'command':a45_0x236fad(0xec),'description':a45_0x236fad(0xd7),'risk':'read','requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x57acd7){return syncRuntimeSkills(_0x57acd7);}};async function syncRuntimeSkills(_0x2fe765){const _0xfb5c41=a45_0x236fad,{downloadRuntimeSkillPackage:_0x3a7c68,listRuntimeSkills:_0x2f6463}=await import('../../../core/api-client.js'),{linkEffectiveRuntimeSkills:_0x47a858,materializeRuntimeSkill:_0xcd1447,pruneStaleRuntimeSkillCache:_0x3749f7,pruneStaleRuntimeSkillLinks:_0x4fe127,resolveRuntimeSkillInstallTarget:_0x361b2b}=await import('../../../skills/runtime-skill-sync.js'),_0x3e2072=_0x2fe765[_0xfb5c41(0xe8)](_0xfb5c41(0xeb)),_0x92a1=normalizeSyncScopes(_0x2fe765[_0xfb5c41(0xe8)](_0xfb5c41(0xed))),_0x44a8dd=_0x2fe765['envName']??'production',_0x45c594=_0x2fe765[_0xfb5c41(0xe5)],_0x35a759=_0x2fe765['bool'](_0xfb5c41(0xff));if(!_0x45c594)throw CliErrors[_0xfb5c41(0xf1)]('Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.');const _0x517777=_0x361b2b(_0x2fe765[_0xfb5c41(0xdb)],_0x2fe765[_0xfb5c41(0xdf)](_0xfb5c41(0xfe))?_0xfb5c41(0xfe):_0xfb5c41(0xe2)),_0x25c84f=_0x361b2b(_0x2fe765[_0xfb5c41(0xdb)],_0x517777[_0xfb5c41(0xed)]===_0xfb5c41(0xfe)?_0xfb5c41(0xe2):_0xfb5c41(0xfe)),_0x398932=await Promise['all'](_0x92a1['map'](_0x3a3cbe=>_0x2f6463({'appCode':_0x2fe765[_0xfb5c41(0xdb)],'scope':_0x3a3cbe,'code':_0x3e2072[_0xfb5c41(0xda)]()||undefined}))),_0x2bfcfb=_0x92a1['includes'](_0xfb5c41(0xf4))?_0x398932['flatMap']((_0x22c26f,_0x482e19)=>_0x92a1[_0x482e19]===_0xfb5c41(0xf4)?_0x22c26f[_0xfb5c41(0xf4)]:[]):[],_0x8d8b7f=_0x92a1['includes']('company')?_0x398932[_0xfb5c41(0xf3)]((_0x43ed5f,_0x4b8fbb)=>_0x92a1[_0x4b8fbb]===_0xfb5c41(0xea)?_0x43ed5f[_0xfb5c41(0xea)]:[]):[],_0x39c143=new Set([..._0x2bfcfb[_0xfb5c41(0xdc)](_0x97ecfa=>_0x97ecfa[_0xfb5c41(0xf9)]?.[_0xfb5c41(0xda)]())[_0xfb5c41(0xd9)](_0x322171=>Boolean(_0x322171)),..._0x8d8b7f['map'](_0x23423e=>_0x23423e[_0xfb5c41(0xf9)]?.['trim']())[_0xfb5c41(0xd9)](_0x387052=>Boolean(_0x387052))]),_0xf6a717=_0x3e2072[_0xfb5c41(0xda)]()?[_0x3e2072[_0xfb5c41(0xda)]()]:undefined,_0x45f9a1=_0x92a1[_0xfb5c41(0xe7)]===0x2&&_0x92a1[_0xfb5c41(0xf8)]('personal')&&_0x92a1[_0xfb5c41(0xf8)]('company'),_0x49ead8=_0x45f9a1?_0x4fe127(_0x517777,_0x39c143,_0xf6a717):[],_0x25fb14=_0x3749f7({'env':_0x44a8dd,'accessKey':_0x45c594,'appCode':_0x2fe765[_0xfb5c41(0xdb)],'activeSkillCodes':_0x39c143,'pruneSkillCodes':_0xf6a717,'scopes':_0x92a1,'protectedLinkRoots':_0x25c84f[_0xfb5c41(0xf7)]}),_0x10c075=[];for(const _0x14b8ca of _0x2bfcfb){_0x10c075[_0xfb5c41(0x100)](_0xcd1447(_0x14b8ca,'personal',{'env':_0x44a8dd,'accessKey':_0x45c594,'appCode':_0x2fe765['appCode'],'force':_0x35a759,'packageBytes':await downloadSkillPackage(_0x14b8ca,'personal',_0x2fe765[_0xfb5c41(0xdb)],_0x3a7c68)}));}for(const _0x1527ae of _0x8d8b7f){_0x10c075[_0xfb5c41(0x100)](_0xcd1447(_0x1527ae,'company',{'env':_0x44a8dd,'accessKey':_0x45c594,'appCode':_0x2fe765[_0xfb5c41(0xdb)],'force':_0x35a759,'packageBytes':await downloadSkillPackage(_0x1527ae,_0xfb5c41(0xea),_0x2fe765[_0xfb5c41(0xdb)],_0x3a7c68)}));}const _0x5e725c=_0x47a858(_0x10c075,_0x517777),_0x8da819=countLinkActions(_0x5e725c);return{'ok':!![],'data':{'appCode':_0x2fe765['appCode'],..._0x517777[_0xfb5c41(0xed)]===_0xfb5c41(0xfe)?{'installTarget':{'scope':_0x517777[_0xfb5c41(0xed)],'skillRoots':[..._0x517777[_0xfb5c41(0xf7)]]}}:{},'personal':_0x2bfcfb['length'],'company':_0x8d8b7f['length'],'materialized':_0x10c075[_0xfb5c41(0xe7)],'links':{'total':_0x5e725c['length'],'created':_0x8da819['created']??0x0,'updated':_0x8da819[_0xfb5c41(0xd8)]??0x0,'unchanged':_0x8da819[_0xfb5c41(0x102)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x49ead8[_0xfb5c41(0xd9)](_0x5ccc7e=>_0x5ccc7e[_0xfb5c41(0xfc)]===_0xfb5c41(0xe0))['length'],'cacheDirs':_0x25fb14[_0xfb5c41(0xd9)](_0xb75582=>_0xb75582[_0xfb5c41(0xfc)]===_0xfb5c41(0xe0))[_0xfb5c41(0xe7)],'skipped':[..._0x49ead8,..._0x25fb14][_0xfb5c41(0xd9)](_0x538454=>_0x538454['action']==='skipped')['length']},'skills':{'personal':_0x2bfcfb[_0xfb5c41(0xdc)](summarizeRuntimeSkill),'company':_0x8d8b7f[_0xfb5c41(0xdc)](summarizeRuntimeSkill)}},'message':'Installed\x20'+_0x2bfcfb[_0xfb5c41(0xe7)]+_0xfb5c41(0xf2)+_0x8d8b7f[_0xfb5c41(0xe7)]+_0xfb5c41(0x101)};}async function downloadSkillPackage(_0x260f43,_0x4abcab,_0x396bd8,_0x5d81ef){const _0xe8bdd5=a45_0x236fad,_0x2c6879=_0x260f43[_0xe8bdd5(0xfb)]?.[_0xe8bdd5(0xda)]();return _0x2c6879?_0x5d81ef(_0x4abcab,_0x260f43[_0xe8bdd5(0xf9)],_0x396bd8,_0x2c6879):_0x5d81ef(_0x4abcab,_0x260f43[_0xe8bdd5(0xf9)],_0x396bd8);}function countLinkActions(_0x59496c){const _0x5bf767=a45_0x236fad;return _0x59496c[_0x5bf767(0x103)]((_0x51d602,_0xc64d94)=>{const _0x1786a6=_0x5bf767;return _0x51d602[_0xc64d94['action']]=(_0x51d602[_0xc64d94[_0x1786a6(0xfc)]]??0x0)+0x1,_0x51d602;},{});}
@@ -1 +1 @@
1
- const a46_0x2443ae=a46_0x1744;(function(_0x39cacf,_0xa52c54){const _0x7be8ca=a46_0x1744,_0x12c60b=_0x39cacf();while(!![]){try{const _0x156a76=-parseInt(_0x7be8ca(0x1fe))/0x1*(-parseInt(_0x7be8ca(0x1f7))/0x2)+-parseInt(_0x7be8ca(0x203))/0x3*(-parseInt(_0x7be8ca(0x1eb))/0x4)+-parseInt(_0x7be8ca(0x207))/0x5*(-parseInt(_0x7be8ca(0x209))/0x6)+parseInt(_0x7be8ca(0x200))/0x7+parseInt(_0x7be8ca(0x20a))/0x8+parseInt(_0x7be8ca(0x20e))/0x9+parseInt(_0x7be8ca(0x1fd))/0xa*(-parseInt(_0x7be8ca(0x20b))/0xb);if(_0x156a76===_0xa52c54)break;else _0x12c60b['push'](_0x12c60b['shift']());}catch(_0x51665c){_0x12c60b['push'](_0x12c60b['shift']());}}}(a46_0x4189,0x33699));function a46_0x1744(_0x15c933,_0x2bf0e2){_0x15c933=_0x15c933-0x1eb;const _0x4189f7=a46_0x4189();let _0x174436=_0x4189f7[_0x15c933];return _0x174436;}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':a46_0x2443ae(0x1ef),'command':a46_0x2443ae(0x1f8),'description':a46_0x2443ae(0x1f6),'risk':a46_0x2443ae(0x1f4),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0xf04b1e){const _0x17fe8e=a46_0x2443ae,_0x2f7cf0=_0xf04b1e[_0x17fe8e(0x20f)](_0x17fe8e(0x208)),_0x238df4=normalizeListScope(_0xf04b1e['str'](_0x17fe8e(0x1f3)));if(_0xf04b1e[_0x17fe8e(0x20d)](_0x17fe8e(0x1f9))){const _0x58648a=_0xf04b1e['accessKey'];if(!_0x58648a)throw CliErrors[_0x17fe8e(0x201)]();const {listLocalRuntimeSkills:_0x1cd7c,resolveRuntimeSkillInstallTarget:_0x23a937}=await import(_0x17fe8e(0x1ed)),_0x56b658=_0x23a937(_0xf04b1e[_0x17fe8e(0x1f1)],_0xf04b1e[_0x17fe8e(0x20d)]('project')?_0x17fe8e(0x1f2):_0x17fe8e(0x1ee)),_0x1a35a0=_0x1cd7c({'env':_0xf04b1e[_0x17fe8e(0x1f5)]??_0x17fe8e(0x1ff),'accessKey':_0x58648a,'appCode':_0xf04b1e[_0x17fe8e(0x1f1)],'scopes':listScopeToRuntimeScopes(_0x238df4),'code':_0x2f7cf0[_0x17fe8e(0x1fb)]()||undefined},_0x56b658),_0x5837f1=groupLocalRuntimeSkills(_0x1a35a0);return{'ok':!![],'data':{'appCode':_0xf04b1e['appCode'],'source':_0x17fe8e(0x1f9),..._0x56b658[_0x17fe8e(0x1f3)]===_0x17fe8e(0x1f2)?{'installScope':_0x56b658[_0x17fe8e(0x1f3)]}:{},'scope':_0x238df4,'total':_0x1a35a0[_0x17fe8e(0x20c)],'personal':_0x5837f1[_0x17fe8e(0x206)][_0x17fe8e(0x20c)],'company':_0x5837f1[_0x17fe8e(0x202)][_0x17fe8e(0x20c)],'items':_0x1a35a0[_0x17fe8e(0x1fc)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x5837f1['personal'][_0x17fe8e(0x1fc)](summarizeLocalRuntimeSkill),'company':_0x5837f1[_0x17fe8e(0x202)][_0x17fe8e(0x1fc)](summarizeLocalRuntimeSkill)}},'message':_0x17fe8e(0x1ec)+_0x1a35a0[_0x17fe8e(0x20c)]+_0x17fe8e(0x1f0)};}const {listRuntimeSkills:_0x50ab39}=await import('../../../core/api-client.js'),_0x4f591d=await _0x50ab39({'appCode':_0xf04b1e[_0x17fe8e(0x1f1)],'scope':listScopeToRemoteScope(_0x238df4),'code':_0x2f7cf0[_0x17fe8e(0x1fb)]()||undefined}),_0x23ac36=shouldListScope(_0x238df4,_0x17fe8e(0x206))?_0x4f591d[_0x17fe8e(0x206)]??[]:[],_0x38435b=shouldListScope(_0x238df4,_0x17fe8e(0x202))?_0x4f591d[_0x17fe8e(0x202)]??[]:[],_0x357b36=[..._0x23ac36,..._0x38435b];return{'ok':!![],'data':{'appCode':_0xf04b1e[_0x17fe8e(0x1f1)],'source':_0x17fe8e(0x1fa),'scope':_0x238df4,'total':_0x357b36[_0x17fe8e(0x20c)],'personal':_0x23ac36[_0x17fe8e(0x20c)],'company':_0x38435b[_0x17fe8e(0x20c)],'items':_0x357b36[_0x17fe8e(0x1fc)](summarizeRuntimeSkill),'skills':{'personal':_0x23ac36[_0x17fe8e(0x1fc)](summarizeRuntimeSkill),'company':_0x38435b['map'](summarizeRuntimeSkill)}},'message':'Listed\x20'+_0x357b36['length']+_0x17fe8e(0x205)};}};function a46_0x4189(){const _0x441d88=['list','local','remote','trim','map','410Pjybml','94hpnBfR','production','2373721lzioDe','authRequired','company','145650zNSrjQ','filter','\x20remote\x20Skill(s).','personal','5eERfgM','code','2174292DavhqQ','1191632QgRyLD','368599VuNKNf','length','bool','2550843bhoDFH','str','4yVLKqa','Listed\x20','../../../skills/runtime-skill-sync.js','global','skill','\x20local\x20Skill(s).','appCode','project','scope','read','envName','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','8554EnFJke'];a46_0x4189=function(){return _0x441d88;};return a46_0x4189();}function groupLocalRuntimeSkills(_0xa05c9a){const _0x224c56=a46_0x2443ae;return{'personal':_0xa05c9a['filter'](_0x313216=>_0x313216[_0x224c56(0x1f3)]===_0x224c56(0x206)),'company':_0xa05c9a['filter'](_0x1c96da=>_0x1c96da[_0x224c56(0x1f3)]===_0x224c56(0x202)),'builtin':_0xa05c9a[_0x224c56(0x204)](_0x121e69=>_0x121e69[_0x224c56(0x1f3)]==='builtin')};}
1
+ function a46_0x2782(){const _0x4d5769=['922961goHvms','../../../core/api-client.js','\x20local\x20Skill(s).','bool','1912401NdhoJR','list','scope','1010TjPsPZ','envName','str','code','length','2lTOWxx','local','../../../skills/runtime-skill-sync.js','44067045iYFptc','appCode','global','company','personal','\x20remote\x20Skill(s).','filter','Listed\x20','skill','read','88520HauJTl','1000208UkJjDl','trim','49iEhgij','project','map','8849034earGNX','production','14346gZrHep','builtin','authRequired','remote','172hcCYCc','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache'];a46_0x2782=function(){return _0x4d5769;};return a46_0x2782();}const a46_0x290983=a46_0x8ef9;function a46_0x8ef9(_0x460e80,_0x5ecd47){_0x460e80=_0x460e80-0xbb;const _0x2782d9=a46_0x2782();let _0x8ef9ce=_0x2782d9[_0x460e80];return _0x8ef9ce;}(function(_0x1dfa27,_0x717436){const _0xac3bf4=a46_0x8ef9,_0x10f2a6=_0x1dfa27();while(!![]){try{const _0x317c1c=parseInt(_0xac3bf4(0xc8))/0x1*(-parseInt(_0xac3bf4(0xd4))/0x2)+parseInt(_0xac3bf4(0xcc))/0x3+parseInt(_0xac3bf4(0xc6))/0x4*(-parseInt(_0xac3bf4(0xe1))/0x5)+-parseInt(_0xac3bf4(0xc0))/0x6+parseInt(_0xac3bf4(0xbd))/0x7*(-parseInt(_0xac3bf4(0xbb))/0x8)+parseInt(_0xac3bf4(0xc2))/0x9*(parseInt(_0xac3bf4(0xcf))/0xa)+parseInt(_0xac3bf4(0xd7))/0xb;if(_0x317c1c===_0x717436)break;else _0x10f2a6['push'](_0x10f2a6['shift']());}catch(_0x177609){_0x10f2a6['push'](_0x10f2a6['shift']());}}}(a46_0x2782,0xbc0fe));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':a46_0x290983(0xdf),'command':a46_0x290983(0xcd),'description':a46_0x290983(0xc7),'risk':a46_0x290983(0xe0),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x2fef8f){const _0xdd931=a46_0x290983,_0x5309a4=_0x2fef8f[_0xdd931(0xd1)](_0xdd931(0xd2)),_0x102582=normalizeListScope(_0x2fef8f[_0xdd931(0xd1)](_0xdd931(0xce)));if(_0x2fef8f['bool']('local')){const _0x14975c=_0x2fef8f['accessKey'];if(!_0x14975c)throw CliErrors[_0xdd931(0xc4)]();const {listLocalRuntimeSkills:_0x478bfe,resolveRuntimeSkillInstallTarget:_0x573619}=await import(_0xdd931(0xd6)),_0x4120a8=_0x573619(_0x2fef8f[_0xdd931(0xd8)],_0x2fef8f[_0xdd931(0xcb)]('project')?_0xdd931(0xbe):_0xdd931(0xd9)),_0x391dfd=_0x478bfe({'env':_0x2fef8f[_0xdd931(0xd0)]??_0xdd931(0xc1),'accessKey':_0x14975c,'appCode':_0x2fef8f[_0xdd931(0xd8)],'scopes':listScopeToRuntimeScopes(_0x102582),'code':_0x5309a4[_0xdd931(0xbc)]()||undefined},_0x4120a8),_0x1819b9=groupLocalRuntimeSkills(_0x391dfd);return{'ok':!![],'data':{'appCode':_0x2fef8f[_0xdd931(0xd8)],'source':_0xdd931(0xd5),..._0x4120a8[_0xdd931(0xce)]===_0xdd931(0xbe)?{'installScope':_0x4120a8['scope']}:{},'scope':_0x102582,'total':_0x391dfd['length'],'personal':_0x1819b9[_0xdd931(0xdb)]['length'],'company':_0x1819b9[_0xdd931(0xda)][_0xdd931(0xd3)],'items':_0x391dfd[_0xdd931(0xbf)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x1819b9[_0xdd931(0xdb)][_0xdd931(0xbf)](summarizeLocalRuntimeSkill),'company':_0x1819b9[_0xdd931(0xda)][_0xdd931(0xbf)](summarizeLocalRuntimeSkill)}},'message':'Listed\x20'+_0x391dfd[_0xdd931(0xd3)]+_0xdd931(0xca)};}const {listRuntimeSkills:_0x6075de}=await import(_0xdd931(0xc9)),_0x55dc09=await _0x6075de({'appCode':_0x2fef8f[_0xdd931(0xd8)],'scope':listScopeToRemoteScope(_0x102582),'code':_0x5309a4[_0xdd931(0xbc)]()||undefined}),_0xec01ef=shouldListScope(_0x102582,_0xdd931(0xdb))?_0x55dc09['personal']??[]:[],_0x555f26=shouldListScope(_0x102582,'company')?_0x55dc09[_0xdd931(0xda)]??[]:[],_0x5c36c5=[..._0xec01ef,..._0x555f26];return{'ok':!![],'data':{'appCode':_0x2fef8f[_0xdd931(0xd8)],'source':_0xdd931(0xc5),'scope':_0x102582,'total':_0x5c36c5[_0xdd931(0xd3)],'personal':_0xec01ef[_0xdd931(0xd3)],'company':_0x555f26['length'],'items':_0x5c36c5[_0xdd931(0xbf)](summarizeRuntimeSkill),'skills':{'personal':_0xec01ef[_0xdd931(0xbf)](summarizeRuntimeSkill),'company':_0x555f26[_0xdd931(0xbf)](summarizeRuntimeSkill)}},'message':_0xdd931(0xde)+_0x5c36c5[_0xdd931(0xd3)]+_0xdd931(0xdc)};}};function groupLocalRuntimeSkills(_0x2909f9){const _0x1d68d1=a46_0x290983;return{'personal':_0x2909f9[_0x1d68d1(0xdd)](_0x5a02a5=>_0x5a02a5['scope']===_0x1d68d1(0xdb)),'company':_0x2909f9[_0x1d68d1(0xdd)](_0x3d0113=>_0x3d0113['scope']===_0x1d68d1(0xda)),'builtin':_0x2909f9[_0x1d68d1(0xdd)](_0x4f0867=>_0x4f0867[_0x1d68d1(0xce)]===_0x1d68d1(0xc3))};}
@@ -1 +1 @@
1
- const a47_0x3b855b=a47_0x5e79;(function(_0x12fcff,_0x2cd5ce){const _0x239f65=a47_0x5e79,_0x17ac18=_0x12fcff();while(!![]){try{const _0xf900e3=parseInt(_0x239f65(0x66))/0x1+parseInt(_0x239f65(0x67))/0x2+parseInt(_0x239f65(0x68))/0x3+-parseInt(_0x239f65(0x6f))/0x4+-parseInt(_0x239f65(0x64))/0x5+parseInt(_0x239f65(0x65))/0x6+-parseInt(_0x239f65(0x6b))/0x7;if(_0xf900e3===_0x2cd5ce)break;else _0x17ac18['push'](_0x17ac18['shift']());}catch(_0x5ac957){_0x17ac18['push'](_0x17ac18['shift']());}}}(a47_0x2891,0x622fb));function a47_0x5e79(_0x5b1c5f,_0x2520be){_0x5b1c5f=_0x5b1c5f-0x64;const _0x28914d=a47_0x2891();let _0x5e7901=_0x28914d[_0x5b1c5f];return _0x5e7901;}function a47_0x2891(){const _0x5e2e4d=['1450518XvBdni','将读取本地\x20Skill\x20内容:个人范围会立即保存并生效,公司范围会提交一个新版本进入审核。确认界面不会展示目录路径或\x20Skill\x20正文。','skill','7289485aWiehF','write','push','将本地\x20Skill\x20目录推送到个人范围,或提交公司范围版本审核','322732MjnzCP','1601940FuuCXz','3291552griBea','543690NgSpHH','537618qxJilA'];a47_0x2891=function(){return _0x5e2e4d;};return a47_0x2891();}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_0x3b855b(0x6a),'command':a47_0x3b855b(0x6d),'description':a47_0x3b855b(0x6e),'risk':a47_0x3b855b(0x6c),'confirmationDescription':a47_0x3b855b(0x69),'flags':[DIR_FLAG,DIAGRAM_FILE_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};
1
+ function a47_0x2a01(_0x341593,_0x3fe0fa){_0x341593=_0x341593-0x1af;const _0x6c0669=a47_0x6c06();let _0x2a0163=_0x6c0669[_0x341593];return _0x2a0163;}function a47_0x6c06(){const _0x1bde28=['1008536EaooQa','将读取本地\x20Skill\x20内容:个人范围会立即保存并生效,公司范围会提交一个新版本进入审核。确认界面不会展示目录路径或\x20Skill\x20正文。','22248018XyxwQA','70061iXLvKP','3TJufUR','541037pCSqwV','8310536JKFKaz','将本地\x20Skill\x20目录推送到个人范围,或提交公司范围版本审核','2328554tMLHTz','450175eziXCK','66DtkoPZ','skill','push'];a47_0x6c06=function(){return _0x1bde28;};return a47_0x6c06();}const a47_0x190fa8=a47_0x2a01;(function(_0x23efa4,_0x3c9c9f){const _0x3793d5=a47_0x2a01,_0x2466aa=_0x23efa4();while(!![]){try{const _0x7beefd=parseInt(_0x3793d5(0x1b6))/0x1+parseInt(_0x3793d5(0x1bb))/0x2+-parseInt(_0x3793d5(0x1b7))/0x3*(parseInt(_0x3793d5(0x1b3))/0x4)+-parseInt(_0x3793d5(0x1af))/0x5*(-parseInt(_0x3793d5(0x1b0))/0x6)+parseInt(_0x3793d5(0x1b8))/0x7+parseInt(_0x3793d5(0x1b9))/0x8+-parseInt(_0x3793d5(0x1b5))/0x9;if(_0x7beefd===_0x3c9c9f)break;else _0x2466aa['push'](_0x2466aa['shift']());}catch(_0x1329ea){_0x2466aa['push'](_0x2466aa['shift']());}}}(a47_0x6c06,0x968f7));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_0x190fa8(0x1b1),'command':a47_0x190fa8(0x1b2),'description':a47_0x190fa8(0x1ba),'risk':'write','confirmationDescription':a47_0x190fa8(0x1b4),'flags':[DIR_FLAG,DIAGRAM_FILE_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};
@@ -1 +1 @@
1
- const a48_0x68ca1=a48_0x5870;(function(_0x4201af,_0x9c68cd){const _0x2552c6=a48_0x5870,_0x1c0f21=_0x4201af();while(!![]){try{const _0x598aaf=parseInt(_0x2552c6(0x19b))/0x1*(parseInt(_0x2552c6(0x192))/0x2)+-parseInt(_0x2552c6(0x198))/0x3*(-parseInt(_0x2552c6(0x191))/0x4)+-parseInt(_0x2552c6(0x190))/0x5+-parseInt(_0x2552c6(0x19d))/0x6*(-parseInt(_0x2552c6(0x195))/0x7)+parseInt(_0x2552c6(0x19c))/0x8*(parseInt(_0x2552c6(0x1a1))/0x9)+parseInt(_0x2552c6(0x193))/0xa+-parseInt(_0x2552c6(0x19e))/0xb;if(_0x598aaf===_0x9c68cd)break;else _0x1c0f21['push'](_0x1c0f21['shift']());}catch(_0x4176d2){_0x1c0f21['push'](_0x1c0f21['shift']());}}}(a48_0x3e1d,0x1a6d8));function a48_0x3e1d(){const _0x15abf7=['1652470NSecUo','validate','21anyRIM','skill','str','123ZQWKeA','Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','type','1585XAiJob','1251448iZtgwb','248478UjrOsr','4186303tpnepZ','strict','errors','9fMKcCF','dir','952240fsGkVs','19828PJRuHC','38NQkEuh'];a48_0x3e1d=function(){return _0x15abf7;};return a48_0x3e1d();}import{DIR_FLAG,STRICT_FLAG}from'../flags.js';function a48_0x5870(_0x282b81,_0x525bb4){_0x282b81=_0x282b81-0x18f;const _0x3e1d96=a48_0x3e1d();let _0x587092=_0x3e1d96[_0x282b81];return _0x587092;}import{throwIfSkillValidationFailed,validateSkillDirectory}from'../validate.js';export const validateCommand={'service':a48_0x68ca1(0x196),'command':a48_0x68ca1(0x194),'description':a48_0x68ca1(0x199),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x4884be){const _0x25fcb7=a48_0x68ca1,_0x31154e=_0x4884be['bool'](_0x25fcb7(0x19f)),_0x3d7e93=validateSkillDirectory(_0x4884be[_0x25fcb7(0x197)]('dir'),{'strict':_0x31154e});return throwIfSkillValidationFailed(_0x3d7e93,_0x31154e),{'ok':!![],'data':{'dir':_0x3d7e93[_0x25fcb7(0x18f)],'type':_0x3d7e93[_0x25fcb7(0x19a)],'errors':_0x3d7e93[_0x25fcb7(0x1a0)],'warnings':_0x3d7e93['warnings']},'message':'Skill\x20validation\x20passed.'};}};
1
+ const a48_0x3e9144=a48_0x5b9a;(function(_0xe02bc8,_0x372ee4){const _0x1194aa=a48_0x5b9a,_0x3b83e2=_0xe02bc8();while(!![]){try{const _0x469c33=-parseInt(_0x1194aa(0xf7))/0x1*(parseInt(_0x1194aa(0x10b))/0x2)+parseInt(_0x1194aa(0xfa))/0x3+parseInt(_0x1194aa(0xfe))/0x4*(parseInt(_0x1194aa(0x106))/0x5)+parseInt(_0x1194aa(0x103))/0x6*(parseInt(_0x1194aa(0x101))/0x7)+parseInt(_0x1194aa(0x108))/0x8*(-parseInt(_0x1194aa(0x109))/0x9)+parseInt(_0x1194aa(0xf8))/0xa+parseInt(_0x1194aa(0x100))/0xb;if(_0x469c33===_0x372ee4)break;else _0x3b83e2['push'](_0x3b83e2['shift']());}catch(_0x652b12){_0x3b83e2['push'](_0x3b83e2['shift']());}}}(a48_0xe874,0x29de0));import{DIR_FLAG,STRICT_FLAG}from'../flags.js';function a48_0xe874(){const _0x40d801=['dir','4LECvdZ','validate','500929uNxXWd','1435784dovvzZ','warnings','6AcKBws','Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','strict','422690zMeWwU','type','40fXTtuH','371259RhhYnx','str','154802KmACze','4cYcSGT','2936020BvgICe','Skill\x20validation\x20passed.','175668uPVbTq','skill','errors'];a48_0xe874=function(){return _0x40d801;};return a48_0xe874();}function a48_0x5b9a(_0x463b34,_0x225cbb){_0x463b34=_0x463b34-0xf7;const _0xe874c4=a48_0xe874();let _0x5b9ab5=_0xe874c4[_0x463b34];return _0x5b9ab5;}import{throwIfSkillValidationFailed,validateSkillDirectory}from'../validate.js';export const validateCommand={'service':a48_0x3e9144(0xfb),'command':a48_0x3e9144(0xff),'description':a48_0x3e9144(0x104),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x52b816){const _0x25797f=a48_0x3e9144,_0x4b38cc=_0x52b816['bool'](_0x25797f(0x105)),_0x36fe49=validateSkillDirectory(_0x52b816[_0x25797f(0x10a)](_0x25797f(0xfd)),{'strict':_0x4b38cc});return throwIfSkillValidationFailed(_0x36fe49,_0x4b38cc),{'ok':!![],'data':{'dir':_0x36fe49['dir'],'type':_0x36fe49[_0x25797f(0x107)],'errors':_0x36fe49[_0x25797f(0xfc)],'warnings':_0x36fe49[_0x25797f(0x102)]},'message':_0x25797f(0xf9)};}};
@@ -1 +1 @@
1
- (function(_0x2b389b,_0x2d3404){const _0x425c0a=a49_0x564b,_0x1ec513=_0x2b389b();while(!![]){try{const _0x2813b5=-parseInt(_0x425c0a(0xff))/0x1+parseInt(_0x425c0a(0x100))/0x2*(-parseInt(_0x425c0a(0x103))/0x3)+-parseInt(_0x425c0a(0xf2))/0x4*(-parseInt(_0x425c0a(0xea))/0x5)+-parseInt(_0x425c0a(0xf1))/0x6*(parseInt(_0x425c0a(0xf3))/0x7)+-parseInt(_0x425c0a(0x107))/0x8+parseInt(_0x425c0a(0xfc))/0x9*(-parseInt(_0x425c0a(0xee))/0xa)+-parseInt(_0x425c0a(0xf6))/0xb*(-parseInt(_0x425c0a(0xed))/0xc);if(_0x2813b5===_0x2d3404)break;else _0x1ec513['push'](_0x1ec513['shift']());}catch(_0x27e24f){_0x1ec513['push'](_0x1ec513['shift']());}}}(a49_0x1cea,0x1e4b2));import{existsSync,readFileSync,realpathSync,statSync}from'node:fs';import{resolve}from'node:path';import{JSDOM}from'jsdom';function a49_0x564b(_0x223988,_0x1694d4){_0x223988=_0x223988-0xea;const _0x1cea8b=a49_0x1cea();let _0x564bab=_0x1cea8b[_0x223988];return _0x564bab;}import{CliErrors}from'../../errors.js';let mermaidApiPromise;export async function readRequiredSkillDiagram(_0x45fb76){const _0x3bc30e=a49_0x564b;return(await readRequiredSkillDiagramInput(_0x45fb76))[_0x3bc30e(0xf7)];}export async function readRequiredSkillDiagramInput(_0x1212a2){const _0xa7e6f4=a49_0x564b,_0x5080fc=_0x1212a2[_0xa7e6f4(0x104)]();if(!_0x5080fc)throw CliErrors[_0xa7e6f4(0xec)](_0xa7e6f4(0x106),_0xa7e6f4(0xf8));let _0x33b7c3,_0x298dbf;if(_0x5080fc==='-')try{_0x33b7c3=readFileSync(0x0,_0xa7e6f4(0xfa));}catch{throw CliErrors['validation'](_0xa7e6f4(0xfb));}else{const _0x4a3635=resolve(_0x5080fc);if(!existsSync(_0x4a3635))throw CliErrors[_0xa7e6f4(0xec)](_0xa7e6f4(0xef)+_0x4a3635);if(!statSync(_0x4a3635)[_0xa7e6f4(0xf0)]())throw CliErrors['validation'](_0xa7e6f4(0xf9)+_0x4a3635);_0x298dbf=realpathSync(_0x4a3635),_0x33b7c3=readFileSync(_0x298dbf,_0xa7e6f4(0xfa));}return{'diagram':{'schemaVersion':0x1,'mermaid':await validateAndCanonicalizeMermaid(_0x33b7c3)},'sourceFilePath':_0x298dbf};}export async function validateAndCanonicalizeMermaid(_0xb97fba){const _0x195776=a49_0x564b,_0x18f0de=_0xb97fba[_0x195776(0xfd)](/\r\n/g,'\x0a')['replace'](/\r/g,'\x0a')[_0x195776(0xfd)](/\n+$/,'')+'\x0a';try{const _0x4ccf2b=await loadMermaidApi();await _0x4ccf2b[_0x195776(0x101)](_0x18f0de);}catch{throw diagramValidationError();}return _0x18f0de;}function loadMermaidApi(){return mermaidApiPromise??=((async()=>{const _0x327a11=a49_0x564b;if(!(_0x327a11(0x102)in globalThis)||!('document'in globalThis)){const _0xcec2d4=new JSDOM('');Object[_0x327a11(0xf4)](globalThis,{'window':{'configurable':!![],'value':_0xcec2d4[_0x327a11(0x102)]},'document':{'configurable':!![],'value':_0xcec2d4[_0x327a11(0x102)][_0x327a11(0x105)]}});}return(await import(_0x327a11(0xfe)))['default'];})()),mermaidApiPromise;}function diagramValidationError(){const _0x1524ab=a49_0x564b;return CliErrors[_0x1524ab(0xec)](_0x1524ab(0xeb),_0x1524ab(0xf5));}function a49_0x1cea(){const _0x3e29a0=['4pyqftx','11417QreOsW','defineProperties','Fix\x20the\x20Mermaid\x20syntax\x20reported\x20by\x20your\x20editor\x20or\x20preview\x20tool,\x20then\x20retry\x20with\x20the\x20same\x20file.','6865342lTgbCN','diagram','Generate\x20a\x20Mermaid\x20flowchart\x20and\x20pass\x20--diagram-file\x20<path>,\x20or\x20use\x20--diagram-file\x20-\x20for\x20standard\x20input.','Mermaid\x20flowchart\x20path\x20is\x20not\x20a\x20regular\x20file:\x20','utf8','Unable\x20to\x20read\x20Mermaid\x20flowchart\x20from\x20standard\x20input.','18eTKEnQ','replace','mermaid','118698DAAneG','1660NfnwNm','parse','window','579cYFmmN','trim','document','--diagram-file\x20is\x20required\x20when\x20publishing\x20a\x20Skill\x20version.','9168aCcTQt','891265WRJypu','Mermaid\x20syntax\x20validation\x20failed.','validation','12GPkXvo','1037160rDcBvh','Mermaid\x20flowchart\x20file\x20not\x20found:\x20','isFile','702bSNjiV'];a49_0x1cea=function(){return _0x3e29a0;};return a49_0x1cea();}
1
+ function a49_0x235c(_0x516dde,_0x15def4){_0x516dde=_0x516dde-0xc4;const _0x3eeb9f=a49_0x3eeb();let _0x235c02=_0x3eeb9f[_0x516dde];return _0x235c02;}(function(_0x37e9db,_0x39a2bc){const _0xefcc48=a49_0x235c,_0x37212e=_0x37e9db();while(!![]){try{const _0x475609=-parseInt(_0xefcc48(0xd1))/0x1+-parseInt(_0xefcc48(0xc6))/0x2*(parseInt(_0xefcc48(0xd9))/0x3)+-parseInt(_0xefcc48(0xca))/0x4+-parseInt(_0xefcc48(0xc9))/0x5+-parseInt(_0xefcc48(0xd5))/0x6*(parseInt(_0xefcc48(0xda))/0x7)+-parseInt(_0xefcc48(0xcb))/0x8*(parseInt(_0xefcc48(0xc5))/0x9)+parseInt(_0xefcc48(0xd4))/0xa;if(_0x475609===_0x39a2bc)break;else _0x37212e['push'](_0x37212e['shift']());}catch(_0x18540e){_0x37212e['push'](_0x37212e['shift']());}}}(a49_0x3eeb,0x279fc));import{existsSync,readFileSync,realpathSync,statSync}from'node:fs';import{resolve}from'node:path';import{JSDOM}from'jsdom';function a49_0x3eeb(){const _0x5f375c=['isFile','default','trim','Mermaid\x20flowchart\x20file\x20not\x20found:\x20','9zRQrSK','66306stJiyh','Mermaid\x20flowchart\x20path\x20is\x20not\x20a\x20regular\x20file:\x20','document','926200pzKUXp','1170576FmsgQR','2480696wXZTaw','replace','Fix\x20the\x20Mermaid\x20syntax\x20reported\x20by\x20your\x20editor\x20or\x20preview\x20tool,\x20then\x20retry\x20with\x20the\x20same\x20file.','utf8','validation','mermaid','92119vsLytK','defineProperties','diagram','14794000PtuYNX','6CitjlY','parse','Unable\x20to\x20read\x20Mermaid\x20flowchart\x20from\x20standard\x20input.','--diagram-file\x20is\x20required\x20when\x20publishing\x20a\x20Skill\x20version.','27WYsMYs','970431fqnJlY','window','Mermaid\x20syntax\x20validation\x20failed.'];a49_0x3eeb=function(){return _0x5f375c;};return a49_0x3eeb();}import{CliErrors}from'../../errors.js';let mermaidApiPromise;export async function readRequiredSkillDiagram(_0x35c7aa){const _0x441bd9=a49_0x235c;return(await readRequiredSkillDiagramInput(_0x35c7aa))[_0x441bd9(0xd3)];}export async function readRequiredSkillDiagramInput(_0x266561){const _0x5bdc8f=a49_0x235c,_0x4fc7b9=_0x266561[_0x5bdc8f(0xdf)]();if(!_0x4fc7b9)throw CliErrors[_0x5bdc8f(0xcf)](_0x5bdc8f(0xd8),'Generate\x20a\x20Mermaid\x20flowchart\x20and\x20pass\x20--diagram-file\x20<path>,\x20or\x20use\x20--diagram-file\x20-\x20for\x20standard\x20input.');let _0x461657,_0x4e98a7;if(_0x4fc7b9==='-')try{_0x461657=readFileSync(0x0,_0x5bdc8f(0xce));}catch{throw CliErrors['validation'](_0x5bdc8f(0xd7));}else{const _0x3265b=resolve(_0x4fc7b9);if(!existsSync(_0x3265b))throw CliErrors[_0x5bdc8f(0xcf)](_0x5bdc8f(0xc4)+_0x3265b);if(!statSync(_0x3265b)[_0x5bdc8f(0xdd)]())throw CliErrors[_0x5bdc8f(0xcf)](_0x5bdc8f(0xc7)+_0x3265b);_0x4e98a7=realpathSync(_0x3265b),_0x461657=readFileSync(_0x4e98a7,_0x5bdc8f(0xce));}return{'diagram':{'schemaVersion':0x1,'mermaid':await validateAndCanonicalizeMermaid(_0x461657)},'sourceFilePath':_0x4e98a7};}export async function validateAndCanonicalizeMermaid(_0x12aa4f){const _0x49b313=a49_0x235c,_0x2f3163=_0x12aa4f['replace'](/\r\n/g,'\x0a')['replace'](/\r/g,'\x0a')[_0x49b313(0xcc)](/\n+$/,'')+'\x0a';try{const _0xbdae26=await loadMermaidApi();await _0xbdae26[_0x49b313(0xd6)](_0x2f3163);}catch{throw diagramValidationError();}return _0x2f3163;}function loadMermaidApi(){return mermaidApiPromise??=((async()=>{const _0x3a1618=a49_0x235c;if(!(_0x3a1618(0xdb)in globalThis)||!(_0x3a1618(0xc8)in globalThis)){const _0x2b9f25=new JSDOM('');Object[_0x3a1618(0xd2)](globalThis,{'window':{'configurable':!![],'value':_0x2b9f25['window']},'document':{'configurable':!![],'value':_0x2b9f25[_0x3a1618(0xdb)]['document']}});}return(await import(_0x3a1618(0xd0)))[_0x3a1618(0xde)];})()),mermaidApiPromise;}function diagramValidationError(){const _0x3b796f=a49_0x235c;return CliErrors[_0x3b796f(0xcf)](_0x3b796f(0xdc),_0x3b796f(0xcd));}