@lovrabet/lovrabet-cli 2.1.22-beta.5 → 2.1.22

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 (131) 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/runtime/confirmation.js +1 -1
  103. package/lib/runtime/event.js +1 -1
  104. package/lib/runtime/index.js +1 -1
  105. package/lib/runtime/queue.js +1 -1
  106. package/lib/runtime/resolve.js +1 -1
  107. package/lib/skills/npx-skills-add.js +1 -1
  108. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  109. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  110. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  111. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  112. package/lib/skills/runtime-skill-sync/links.js +1 -1
  113. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  114. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  115. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  116. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  117. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  118. package/lib/skills/runtime-skill-sync/push.js +1 -1
  119. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  120. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  121. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  122. package/lib/skills/runtime-skill-sync.js +1 -1
  123. package/lib/utils/apply-jq-filter.js +1 -1
  124. package/lib/utils/logger.js +1 -1
  125. package/lib/utils/lossless-json.js +1 -1
  126. package/lib/utils/params.js +1 -1
  127. package/lib/utils/platform.js +1 -1
  128. package/lib/utils/update-notice.js +1 -1
  129. package/lib/utils/version.js +1 -1
  130. package/lib/utils/write-cli-side-channel.js +1 -1
  131. package/package.json +1 -1
@@ -1 +1 @@
1
- (function(_0x4d8920,_0x5e5607){const _0x2f7fd4=a39_0x8aad,_0x1d7ea0=_0x4d8920();while(!![]){try{const _0x1106f4=parseInt(_0x2f7fd4(0x11d))/0x1*(parseInt(_0x2f7fd4(0x10e))/0x2)+parseInt(_0x2f7fd4(0xf8))/0x3+-parseInt(_0x2f7fd4(0xf3))/0x4*(-parseInt(_0x2f7fd4(0x107))/0x5)+parseInt(_0x2f7fd4(0xfe))/0x6+-parseInt(_0x2f7fd4(0x112))/0x7+-parseInt(_0x2f7fd4(0x100))/0x8*(-parseInt(_0x2f7fd4(0x129))/0x9)+-parseInt(_0x2f7fd4(0xde))/0xa*(parseInt(_0x2f7fd4(0xe3))/0xb);if(_0x1106f4===_0x5e5607)break;else _0x1d7ea0['push'](_0x1d7ea0['shift']());}catch(_0x1c0055){_0x1d7ea0['push'](_0x1d7ea0['shift']());}}}(a39_0x5c51,0x92085));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_0x8aad(_0x3e432d,_0x297b02){_0x3e432d=_0x3e432d-0xc9;const _0x5c51c4=a39_0x5c51();let _0x8aada7=_0x5c51c4[_0x3e432d];return _0x8aada7;}import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x55332d,_0x1faa16){const _0x5b1a0a=a39_0x8aad,_0x4d3c1a=listLocalServiceTrees();let _0x11a7f7;for(const _0x5d6789 of _0x4d3c1a){const _0x367a60=matchServiceTreeCommand(_0x5d6789,_0x55332d);if(!_0x367a60)continue;(!_0x11a7f7||_0x367a60[_0x5b1a0a(0xf7)][_0x5b1a0a(0x117)][_0x5b1a0a(0x108)]>_0x11a7f7[_0x5b1a0a(0xf7)]['fullPath'][_0x5b1a0a(0x108)])&&(_0x11a7f7={'tree':_0x5d6789,'command':_0x367a60[_0x5b1a0a(0xf7)],'remainingArgs':_0x367a60[_0x5b1a0a(0x128)]});}if(!_0x11a7f7)return undefined;const _0x30fee5={..._0x1faa16};return applyAppBinding(_0x11a7f7['tree'],_0x11a7f7[_0x5b1a0a(0xf7)],_0x30fee5),{'definition':buildDynamicCommandDefinition(_0x11a7f7[_0x5b1a0a(0x10a)],_0x11a7f7['command']),'args':_0x11a7f7[_0x5b1a0a(0x128)],'flags':_0x30fee5,'tree':_0x11a7f7['tree'],'command':_0x11a7f7['command']};}export function generateDynamicServiceHelp(_0x140cd5){const _0xd29e36=a39_0x8aad,_0x518ace=listLocalServiceTrees()[_0xd29e36(0x12f)](_0x100377=>_0x100377['service'][_0xd29e36(0x103)]===_0x140cd5);if(!_0x518ace)return undefined;const _0x32915a=[CLI_BIN_NAME+'\x20'+_0x140cd5+_0xd29e36(0xeb),'',_0x518ace[_0xd29e36(0xd5)][_0xd29e36(0x12d)]||_0x140cd5,_0x518ace[_0xd29e36(0xd5)][_0xd29e36(0x109)]?'\x20\x20'+_0x518ace['service']['description']:'','',_0xd29e36(0x113),..._0x518ace[_0xd29e36(0xf0)][_0xd29e36(0x106)](_0x1323d3=>{const _0x2a05e8=_0xd29e36,_0x1a9461=_0x1323d3[_0x2a05e8(0x117)][_0x2a05e8(0x11a)](0x1)[_0x2a05e8(0xdb)]('\x20'),_0x5132f4=_0x1323d3[_0x2a05e8(0x126)]===_0x2a05e8(0xd9)?'':'\x20['+_0x1323d3[_0x2a05e8(0x126)]+']';return'\x20\x20'+_0x1a9461[_0x2a05e8(0xd2)](0x18)+'\x20'+(_0x1323d3[_0x2a05e8(0x109)]||'')+_0x5132f4;}),'',_0xd29e36(0xd7)+CLI_BIN_NAME+_0xd29e36(0x12b)+_0x140cd5+_0xd29e36(0x119)][_0xd29e36(0xe1)](Boolean);return _0x32915a[_0xd29e36(0xdb)]('\x0a');}export function listDynamicServiceEntries(){const _0xd2688f=a39_0x8aad;return listLocalServices()[_0xd2688f(0x106)](_0x16213f=>{const _0x2f5392=_0xd2688f,_0x5f1a92=_0x16213f['normalizedManifest'];return{'service':_0x5f1a92['service'][_0x2f5392(0x103)],'label':_0x5f1a92[_0x2f5392(0xd5)][_0x2f5392(0x12d)]||_0x5f1a92[_0x2f5392(0xd5)]['code'],'commands':_0x5f1a92[_0x2f5392(0xf0)][_0x2f5392(0x106)](_0x155dee=>({'command':dynamicCommandName(_0x155dee),'description':_0x155dee[_0x2f5392(0x109)]||_0x2f5392(0xe6)+_0x155dee['cliPath'],'tag':riskTag(_0x155dee[_0x2f5392(0x126)])}))};});}export function getDynamicServiceEntry(_0xd7b97a){const _0x1b4d7e=a39_0x8aad;return listDynamicServiceEntries()[_0x1b4d7e(0x12f)](_0x47d908=>_0x47d908[_0x1b4d7e(0xd5)]===_0xd7b97a);}function a39_0x5c51(){const _0x5e2ad7=['\x20\x20\x20\x20functionName:\x20','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','source','envName','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','risk','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','remainingArgs','9KZJfnc','type','\x20service\x20detail\x20--service\x20','将通过\x20Service\x20Tree\x20执行“','name','tenantCode','find','target','Service\x20command\x20','default','scriptName','now','flags','\x20->\x20','rawFlags','some','Unknown\x20appRef\x20\x22','padEnd','tableName','bffId','service','string','Use\x20`','startsWith','read','employeeId','join','appcode','\x20\x20SERVICE\x20TREE\x20TARGET','648010ApfoVr','params','username','filter','该命令被清单标记为写入,可能修改业务数据或服务状态。','594DosQFq','appCode','enum','Run\x20service\x20command\x20','fromEntries','datatable','required','Unsupported\x20service\x20target\x20kind:\x20','\x20<command>\x20[flags]','number','\x20\x20MAP\x20TO','const','nickName','commands','sql','datasetCode','72532FRAyMV','flatMap','\x20\x20\x20\x20kind:\x20\x20\x20\x20','validation','command','3540390PlZvCk','env','loginName','app','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','cliPath','6485904zNXMAa','sqlCode','2849544XjWPCC','operator','bffCode','code','\x20completed\x20in\x20','SERVICE_TREE','map','165scTKnh','length','description','tree','trim','\x20\x20\x20\x20datasetCode:\x20','\x20\x20[','10euCCCU','Preview\x20dynamic\x20service\x20command:\x20','userName','kind','2194171DecqhM','Commands:','nickname','args','data','fullPath','userId','`\x20to\x20inspect\x20the\x20manifest.','slice','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','context.','239032RwOrjk','appBindings','push','appRef'];a39_0x5c51=function(){return _0x5e2ad7;};return a39_0x5c51();}export function listDynamicServiceDefinitions(_0x19bb5d){const _0x1508e7=a39_0x8aad;return listLocalServiceTrees()[_0x1508e7(0xe1)](_0x163803=>!_0x19bb5d||_0x163803[_0x1508e7(0xd5)][_0x1508e7(0x103)]===_0x19bb5d)[_0x1508e7(0xf4)](_0x842f1f=>_0x842f1f[_0x1508e7(0xf0)]['map'](_0x2b13f5=>buildDynamicCommandDefinition(_0x842f1f,_0x2b13f5)));}export function getDynamicServiceDefinitions(_0x395d15){const _0x1e6e54=a39_0x8aad,_0x20335c=listDynamicServiceDefinitions(_0x395d15);return _0x20335c[_0x1e6e54(0x108)]>0x0?_0x20335c:undefined;}export function findDynamicServiceDefinition(_0x4f0f5d,_0x5320a5){const _0xda809c=a39_0x8aad;return listDynamicServiceDefinitions(_0x4f0f5d)[_0xda809c(0x12f)](_0x5cad12=>_0x5cad12[_0xda809c(0xf7)]===_0x5320a5);}export function buildDynamicCommandDefinition(_0x57fd48,_0x310d8a){const _0x1fded8=a39_0x8aad;return{'service':_0x57fd48['service'][_0x1fded8(0x103)],'command':dynamicCommandName(_0x310d8a),'description':_0x310d8a[_0x1fded8(0x109)]||'Run\x20service\x20command\x20'+_0x310d8a['cliPath'],'risk':_0x310d8a[_0x1fded8(0x126)],..._0x310d8a[_0x1fded8(0x126)]===_0x1fded8(0xd9)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x310d8a)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x310d8a[_0x1fded8(0x115)][_0x1fded8(0x106)](_0x56147a=>({'name':_0x56147a[_0x1fded8(0x12d)],'description':_0x56147a['description']||_0x56147a[_0x1fded8(0x12d)],'required':_0x56147a[_0x1fded8(0xe9)]})),'flags':_0x310d8a[_0x1fded8(0xcd)][_0x1fded8(0x106)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x310d8a),async 'dryRun'(_0x2eeaf8){const _0x48aad6=_0x1fded8,_0x5adfa0=await compilePlan(_0x310d8a,_0x2eeaf8);return{'method':_0x48aad6(0x105),'url':_0x310d8a[_0x48aad6(0xfd)],'body':{'target':targetPreview(_0x5adfa0),'params':_0x5adfa0['params']},'description':_0x48aad6(0x10f)+_0x310d8a[_0x48aad6(0xfd)]};},async 'execute'(_0x351187){const _0x3ea456=_0x1fded8,_0x3f7601=await compilePlan(_0x310d8a,_0x351187),_0x318896=Date[_0x3ea456(0xcc)](),_0x106ebb=await executePlan(_0x3f7601,_0x310d8a,_0x351187),_0x3e63ae=Date['now']()-_0x318896;return{'ok':!![],'data':{'service':_0x57fd48[_0x3ea456(0xd5)],'command':_0x310d8a['cliPath'],'target':targetPreview(_0x3f7601),'result':_0x106ebb,'elapsed':_0x3e63ae},'message':'Service\x20command\x20'+_0x310d8a[_0x3ea456(0xfd)]+_0x3ea456(0x104)+_0x3e63ae+'ms'};}};}function buildDynamicConfirmationDescription(_0x50fbc5){const _0x257fcd=a39_0x8aad,_0x496620=_0x50fbc5[_0x257fcd(0x109)]||_0x50fbc5[_0x257fcd(0xfd)],_0x5822cc=_0x50fbc5['risk']==='high-risk-write'?_0x257fcd(0x11b):_0x257fcd(0xe2);return _0x257fcd(0x12c)+_0x496620+'”。'+_0x5822cc;}function dynamicCommandName(_0x575850){const _0x773ec4=a39_0x8aad;return _0x575850['fullPath']['slice'](0x1)[_0x773ec4(0xdb)]('\x20');}function riskTag(_0x135909){const _0x3a8f38=a39_0x8aad;return _0x135909===_0x3a8f38(0xd9)?'':_0x3a8f38(0x10d)+_0x135909+']';}function flagToCommandFlag(_0x3a1a68){const _0x2c626e=a39_0x8aad;return{'name':_0x3a1a68['cliName'],'type':_0x3a1a68[_0x2c626e(0x12a)]==='json'?_0x2c626e(0xd6):_0x3a1a68[_0x2c626e(0x12a)],'description':_0x3a1a68[_0x2c626e(0x109)]||_0x3a1a68[_0x2c626e(0x12d)],'required':_0x3a1a68[_0x2c626e(0xe9)],'default':isPrimitiveFlagDefault(_0x3a1a68[_0x2c626e(0xca)])?_0x3a1a68[_0x2c626e(0xca)]:undefined,'enum':_0x3a1a68[_0x2c626e(0xe5)]};}async function compilePlan(_0x212c38,_0x404639){const _0x257e17=a39_0x8aad;return compileServiceTreeCommand(_0x212c38,{'flags':_0x404639[_0x257e17(0xcf)],'args':_0x404639[_0x257e17(0x115)],'context':await buildServiceContext(_0x212c38,_0x404639)});}async function buildServiceContext(_0x165bb8,_0x5afc0e){const _0x27739f=a39_0x8aad,_0x2dc938={'appCode':_0x5afc0e['appCode'],'env':_0x5afc0e[_0x27739f(0x124)],'envName':_0x5afc0e[_0x27739f(0x124)]};if(!usesRuntimeContext(_0x165bb8))return _0x2dc938;const _0x538805=await getLoginUserInfo(),_0xefa15b=pickFirst(_0x538805[_0x27739f(0x118)],_0x538805['id']);return{..._0x2dc938,'user':_0x538805,'userId':_0xefa15b,'id':_0x538805['id'],'username':pickFirst(_0x538805[_0x27739f(0xe0)],_0x538805[_0x27739f(0x110)],_0x538805[_0x27739f(0xfa)]),'userName':_0x538805[_0x27739f(0x110)],'nickname':pickFirst(_0x538805[_0x27739f(0x114)],_0x538805[_0x27739f(0xef)]),'nickName':_0x538805['nickName'],'tenantCode':_0x538805[_0x27739f(0x12e)],'employeeId':_0x538805[_0x27739f(0xda)]};}function usesRuntimeContext(_0x155885){const _0x122c67=a39_0x8aad;return _0x155885['mapTo'][_0x122c67(0xd0)](_0x127689=>typeof _0x127689[_0x122c67(0x123)]===_0x122c67(0xd6)&&(_0x127689[_0x122c67(0x123)][_0x122c67(0xd8)](_0x122c67(0x11c))||_0x127689[_0x122c67(0x123)][_0x122c67(0xd8)]('ctx.')));}function pickFirst(..._0x2947a4){const _0x40ea30=a39_0x8aad;return _0x2947a4[_0x40ea30(0x12f)](_0xa186c1=>_0xa186c1!==undefined&&_0xa186c1!==null);}async function executePlan(_0xd5e6da,_0x2c5744,_0x5cb06c){const _0x1328d1=a39_0x8aad;if(_0xd5e6da[_0x1328d1(0x111)]===_0x1328d1(0x116)){const _0x2f7b60=await resolveDatasetCode(_0xd5e6da,_0x2c5744,_0x5cb06c);return executeData(_0x2f7b60,_0xd5e6da[_0x1328d1(0xf7)],_0xd5e6da[_0x1328d1(0xdf)]);}if(_0xd5e6da[_0x1328d1(0x111)]===_0x1328d1(0xf1)){if(!_0xd5e6da['sqlCode'])throw CliErrors[_0x1328d1(0xf6)](_0x1328d1(0xc9)+_0x2c5744[_0x1328d1(0xfd)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0xd5e6da['sqlCode'],normalizeScalarParams(_0xd5e6da[_0x1328d1(0xdf)]));}if(_0xd5e6da['kind']==='bff'){const _0x345259=_0xd5e6da[_0x1328d1(0xcb)]||_0xd5e6da[_0x1328d1(0x102)]||(_0xd5e6da['bffId']==null?'':String(_0xd5e6da[_0x1328d1(0xd4)]));if(!_0x345259)throw CliErrors['validation'](_0x1328d1(0xc9)+_0x2c5744[_0x1328d1(0xfd)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0x345259,_0xd5e6da[_0x1328d1(0xdf)]);}throw CliErrors[_0x1328d1(0xf6)](_0x1328d1(0xea)+_0xd5e6da[_0x1328d1(0x111)]);}async function resolveDatasetCode(_0x56af81,_0x4fddd8,_0x1c8fc6){const _0x2f7d26=a39_0x8aad;if(_0x56af81[_0x2f7d26(0xf2)])return _0x56af81[_0x2f7d26(0xf2)];if(!_0x56af81[_0x2f7d26(0xe8)])throw CliErrors[_0x2f7d26(0xf6)](_0x2f7d26(0xc9)+_0x4fddd8[_0x2f7d26(0xfd)]+_0x2f7d26(0xfc));const _0x184ae2=await listDatasets(_0x1c8fc6[_0x2f7d26(0xe4)]),_0x358db7=_0x184ae2[_0x2f7d26(0x12f)](_0x58f0df=>_0x58f0df['dbtableConfig']?.[_0x2f7d26(0xd3)]===_0x56af81['datatable']);if(!_0x358db7?.['code'])throw CliErrors['validation']('Cannot\x20resolve\x20datatable\x20\x22'+_0x56af81[_0x2f7d26(0xe8)]+_0x2f7d26(0x127)+_0x1c8fc6['appCode']+'.',_0x2f7d26(0x125));return _0x358db7[_0x2f7d26(0x103)];}function applyAppBinding(_0x47f7ca,_0x157ea1,_0x113f8b){const _0x292bc9=a39_0x8aad,_0x499ea3=_0x157ea1[_0x292bc9(0x130)][_0x292bc9(0x120)];if(!_0x499ea3)return;const _0x4a556e=_0x47f7ca[_0x292bc9(0x11e)][_0x499ea3];if(!_0x4a556e)throw CliErrors[_0x292bc9(0xf6)](_0x292bc9(0xd1)+_0x499ea3+'\x22\x20in\x20service\x20command\x20'+_0x157ea1[_0x292bc9(0xfd)]+'.',_0x292bc9(0x122));const _0x1f2800=_0x4a556e[_0x292bc9(0xdc)]||_0x4a556e[_0x292bc9(0xe4)];_0x1f2800&&!hasText(_0x113f8b['appcode'])&&(_0x113f8b[_0x292bc9(0xdc)]=_0x1f2800),_0x4a556e[_0x292bc9(0xfb)]&&!hasText(_0x113f8b[_0x292bc9(0xfb)])&&!hasText(_0x113f8b[_0x292bc9(0xdc)])&&(_0x113f8b[_0x292bc9(0xfb)]=_0x4a556e['app']),_0x4a556e[_0x292bc9(0xf9)]&&!hasText(_0x113f8b['env'])&&(_0x113f8b[_0x292bc9(0xf9)]=_0x4a556e['env']);}function renderDynamicCommandHelp(_0x51c654){const _0x48fa67=a39_0x8aad,_0x444850=[_0x48fa67(0xdd),_0x48fa67(0xf5)+_0x51c654[_0x48fa67(0x130)]['kind'],'\x20\x20\x20\x20command:\x20'+_0x51c654['target'][_0x48fa67(0xf7)]];if(_0x51c654[_0x48fa67(0x130)]['datasetCode'])_0x444850[_0x48fa67(0x11f)](_0x48fa67(0x10c)+_0x51c654['target'][_0x48fa67(0xf2)]);if(_0x51c654['target']['datatable'])_0x444850[_0x48fa67(0x11f)]('\x20\x20\x20\x20datatable:\x20'+_0x51c654[_0x48fa67(0x130)][_0x48fa67(0xe8)]);if(_0x51c654[_0x48fa67(0x130)]['sqlCode'])_0x444850[_0x48fa67(0x11f)]('\x20\x20\x20\x20sqlCode:\x20'+_0x51c654['target'][_0x48fa67(0xff)]);if(_0x51c654[_0x48fa67(0x130)][_0x48fa67(0xcb)])_0x444850[_0x48fa67(0x11f)](_0x48fa67(0x121)+_0x51c654['target'][_0x48fa67(0xcb)]);if(_0x51c654['mapTo'][_0x48fa67(0x108)]>0x0){_0x444850[_0x48fa67(0x11f)]('',_0x48fa67(0xed));for(const _0x349ae4 of _0x51c654['mapTo']){_0x444850[_0x48fa67(0x11f)]('\x20\x20\x20\x20'+(_0x349ae4[_0x48fa67(0x123)]||_0x48fa67(0xee))+_0x48fa67(0xce)+_0x349ae4[_0x48fa67(0x130)]+(_0x349ae4[_0x48fa67(0x101)]?'.'+_0x349ae4[_0x48fa67(0x101)]:''));}}return _0x444850['join']('\x0a');}function targetPreview(_0x1eb4f7){const _0x39c1f3=a39_0x8aad;return{'kind':_0x1eb4f7[_0x39c1f3(0x111)],'command':_0x1eb4f7[_0x39c1f3(0xf7)],'appRef':_0x1eb4f7[_0x39c1f3(0x120)],'datasetCode':_0x1eb4f7[_0x39c1f3(0xf2)],'datatable':_0x1eb4f7[_0x39c1f3(0xe8)],'sqlCode':_0x1eb4f7[_0x39c1f3(0xff)],'bffCode':_0x1eb4f7[_0x39c1f3(0x102)],'bffId':_0x1eb4f7['bffId'],'functionName':_0x1eb4f7[_0x39c1f3(0xcb)]};}function normalizeScalarParams(_0x23dbd6){const _0x3948de=a39_0x8aad;return Object[_0x3948de(0xe7)](Object['entries'](_0x23dbd6)[_0x3948de(0xe1)](([,_0xf7ac91])=>typeof _0xf7ac91===_0x3948de(0xd6)||typeof _0xf7ac91===_0x3948de(0xec)));}function hasText(_0x8b20e8){const _0x3dff2f=a39_0x8aad;return typeof _0x8b20e8===_0x3dff2f(0xd6)&&_0x8b20e8[_0x3dff2f(0x10b)]()[_0x3dff2f(0x108)]>0x0;}function isPrimitiveFlagDefault(_0x228b8b){const _0x1abb3d=a39_0x8aad;return _0x228b8b===undefined||typeof _0x228b8b===_0x1abb3d(0xd6)||typeof _0x228b8b===_0x1abb3d(0xec)||typeof _0x228b8b==='boolean';}
1
+ (function(_0x340451,_0x732c5b){const _0x25f7b5=a39_0x531e,_0x4a3181=_0x340451();while(!![]){try{const _0x4c2c12=-parseInt(_0x25f7b5(0x13c))/0x1*(-parseInt(_0x25f7b5(0x13d))/0x2)+parseInt(_0x25f7b5(0x170))/0x3+-parseInt(_0x25f7b5(0x18b))/0x4+-parseInt(_0x25f7b5(0x180))/0x5+parseInt(_0x25f7b5(0x15d))/0x6*(-parseInt(_0x25f7b5(0x193))/0x7)+-parseInt(_0x25f7b5(0x188))/0x8*(-parseInt(_0x25f7b5(0x12a))/0x9)+-parseInt(_0x25f7b5(0x185))/0xa*(-parseInt(_0x25f7b5(0x12b))/0xb);if(_0x4c2c12===_0x732c5b)break;else _0x4a3181['push'](_0x4a3181['shift']());}catch(_0x1e7ad5){_0x4a3181['push'](_0x4a3181['shift']());}}}(a39_0xa0dd,0x80ed4));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';function a39_0x531e(_0x1c7793,_0x28fb49){_0x1c7793=_0x1c7793-0x12a;const _0xa0dda0=a39_0xa0dd();let _0x531e3f=_0xa0dda0[_0x1c7793];return _0x531e3f;}export function resolveDynamicServiceCommand(_0x192deb,_0x582fe7){const _0x559916=a39_0x531e,_0x1e2863=listLocalServiceTrees();let _0x36b7d9;for(const _0x5d3cd6 of _0x1e2863){const _0x196a87=matchServiceTreeCommand(_0x5d3cd6,_0x192deb);if(!_0x196a87)continue;(!_0x36b7d9||_0x196a87['command']['fullPath']['length']>_0x36b7d9[_0x559916(0x14b)][_0x559916(0x12d)][_0x559916(0x13e)])&&(_0x36b7d9={'tree':_0x5d3cd6,'command':_0x196a87[_0x559916(0x14b)],'remainingArgs':_0x196a87[_0x559916(0x15a)]});}if(!_0x36b7d9)return undefined;const _0x57012a={..._0x582fe7};return applyAppBinding(_0x36b7d9['tree'],_0x36b7d9[_0x559916(0x14b)],_0x57012a),{'definition':buildDynamicCommandDefinition(_0x36b7d9[_0x559916(0x163)],_0x36b7d9[_0x559916(0x14b)]),'args':_0x36b7d9[_0x559916(0x15a)],'flags':_0x57012a,'tree':_0x36b7d9[_0x559916(0x163)],'command':_0x36b7d9[_0x559916(0x14b)]};}export function generateDynamicServiceHelp(_0xc6118f){const _0x2d7ba3=a39_0x531e,_0x40e6ef=listLocalServiceTrees()[_0x2d7ba3(0x138)](_0xccad21=>_0xccad21['service'][_0x2d7ba3(0x137)]===_0xc6118f);if(!_0x40e6ef)return undefined;const _0x7f4b95=[CLI_BIN_NAME+'\x20'+_0xc6118f+_0x2d7ba3(0x16a),'',_0x40e6ef[_0x2d7ba3(0x161)][_0x2d7ba3(0x18c)]||_0xc6118f,_0x40e6ef['service'][_0x2d7ba3(0x12e)]?'\x20\x20'+_0x40e6ef['service']['description']:'','',_0x2d7ba3(0x182),..._0x40e6ef['commands'][_0x2d7ba3(0x151)](_0x3a8323=>{const _0x469b64=_0x2d7ba3,_0x29a041=_0x3a8323[_0x469b64(0x12d)]['slice'](0x1)['join']('\x20'),_0x3c5caf=_0x3a8323[_0x469b64(0x17e)]===_0x469b64(0x159)?'':'\x20['+_0x3a8323[_0x469b64(0x17e)]+']';return'\x20\x20'+_0x29a041[_0x469b64(0x17d)](0x18)+'\x20'+(_0x3a8323[_0x469b64(0x12e)]||'')+_0x3c5caf;}),'',_0x2d7ba3(0x140)+CLI_BIN_NAME+_0x2d7ba3(0x186)+_0xc6118f+_0x2d7ba3(0x176)][_0x2d7ba3(0x158)](Boolean);return _0x7f4b95[_0x2d7ba3(0x191)]('\x0a');}export function listDynamicServiceEntries(){const _0x5792e0=a39_0x531e;return listLocalServices()[_0x5792e0(0x151)](_0x1cd65f=>{const _0x2fe41b=_0x5792e0,_0xbcb468=_0x1cd65f[_0x2fe41b(0x183)];return{'service':_0xbcb468[_0x2fe41b(0x161)]['code'],'label':_0xbcb468[_0x2fe41b(0x161)][_0x2fe41b(0x18c)]||_0xbcb468[_0x2fe41b(0x161)][_0x2fe41b(0x137)],'commands':_0xbcb468['commands'][_0x2fe41b(0x151)](_0x3cca15=>({'command':dynamicCommandName(_0x3cca15),'description':_0x3cca15[_0x2fe41b(0x12e)]||_0x2fe41b(0x192)+_0x3cca15[_0x2fe41b(0x148)],'tag':riskTag(_0x3cca15[_0x2fe41b(0x17e)])}))};});}export function getDynamicServiceEntry(_0x239019){const _0x5c13d3=a39_0x531e;return listDynamicServiceEntries()[_0x5c13d3(0x138)](_0x31712c=>_0x31712c[_0x5c13d3(0x161)]===_0x239019);}export function listDynamicServiceDefinitions(_0x28b9f8){const _0x3b5774=a39_0x531e;return listLocalServiceTrees()[_0x3b5774(0x158)](_0x19e654=>!_0x28b9f8||_0x19e654['service'][_0x3b5774(0x137)]===_0x28b9f8)['flatMap'](_0x38fbc7=>_0x38fbc7['commands'][_0x3b5774(0x151)](_0x1bced4=>buildDynamicCommandDefinition(_0x38fbc7,_0x1bced4)));}export function getDynamicServiceDefinitions(_0x4b549a){const _0x51fd2a=listDynamicServiceDefinitions(_0x4b549a);return _0x51fd2a['length']>0x0?_0x51fd2a:undefined;}export function findDynamicServiceDefinition(_0x1c7c2f,_0x1f52f8){const _0x559d40=a39_0x531e;return listDynamicServiceDefinitions(_0x1c7c2f)[_0x559d40(0x138)](_0x24b8a2=>_0x24b8a2[_0x559d40(0x14b)]===_0x1f52f8);}export function buildDynamicCommandDefinition(_0x2f2345,_0x378265){const _0x5a71ee=a39_0x531e;return{'service':_0x2f2345[_0x5a71ee(0x161)][_0x5a71ee(0x137)],'command':dynamicCommandName(_0x378265),'description':_0x378265[_0x5a71ee(0x12e)]||_0x5a71ee(0x192)+_0x378265[_0x5a71ee(0x148)],'risk':_0x378265['risk'],..._0x378265[_0x5a71ee(0x17e)]===_0x5a71ee(0x159)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x378265)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x378265[_0x5a71ee(0x16f)][_0x5a71ee(0x151)](_0x393193=>({'name':_0x393193[_0x5a71ee(0x18c)],'description':_0x393193[_0x5a71ee(0x12e)]||_0x393193[_0x5a71ee(0x18c)],'required':_0x393193['required']})),'flags':_0x378265['flags'][_0x5a71ee(0x151)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x378265),async 'dryRun'(_0x2bc7c4){const _0x8b09c5=_0x5a71ee,_0x10c519=await compilePlan(_0x378265,_0x2bc7c4);return{'method':_0x8b09c5(0x194),'url':_0x378265[_0x8b09c5(0x148)],'body':{'target':targetPreview(_0x10c519),'params':_0x10c519['params']},'description':_0x8b09c5(0x18d)+_0x378265[_0x8b09c5(0x148)]};},async 'execute'(_0x4eaf27){const _0x40acd3=_0x5a71ee,_0x3f500f=await compilePlan(_0x378265,_0x4eaf27),_0x91700c=Date[_0x40acd3(0x168)](),_0x10e789=await executePlan(_0x3f500f,_0x378265,_0x4eaf27),_0x41db00=Date['now']()-_0x91700c;return{'ok':!![],'data':{'service':_0x2f2345['service'],'command':_0x378265[_0x40acd3(0x148)],'target':targetPreview(_0x3f500f),'result':_0x10e789,'elapsed':_0x41db00},'message':'Service\x20command\x20'+_0x378265[_0x40acd3(0x148)]+_0x40acd3(0x14a)+_0x41db00+'ms'};}};}function buildDynamicConfirmationDescription(_0x2e5748){const _0x22e82d=a39_0x531e,_0xf970=_0x2e5748['description']||_0x2e5748[_0x22e82d(0x148)],_0x14aa16=_0x2e5748[_0x22e82d(0x17e)]===_0x22e82d(0x189)?_0x22e82d(0x152):_0x22e82d(0x155);return _0x22e82d(0x166)+_0xf970+'”。'+_0x14aa16;}function a39_0xa0dd(){const _0x2042b5=['Preview\x20dynamic\x20service\x20command:\x20','ctx.','Cannot\x20resolve\x20datatable\x20\x22','scriptName','join','Run\x20service\x20command\x20','1694NOXRyC','SERVICE_TREE','\x20\x20MAP\x20TO','423HpdRPF','11NuxhQi','bff','fullPath','description','employeeId','envName','cliName','required','json','\x20requires\x20target.functionName.','type','\x20\x20[','code','find','bffCode','\x20\x20SERVICE\x20TREE\x20TARGET','appcode','1WtRjhW','2858nuYiIx','length','appBindings','Use\x20`','default','rawFlags','sqlCode','bffId','env','\x20->\x20','loginName','cliPath','push','\x20completed\x20in\x20','command','app','appCode','slice','datasetCode','entries','map','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','\x20\x20\x20\x20','该命令被清单标记为写入,可能修改业务数据或服务状态。','mapTo','boolean','filter','read','remainingArgs','Service\x20command\x20','\x20\x20\x20\x20kind:\x20\x20\x20\x20','24618YZwANA','Unsupported\x20service\x20target\x20kind:\x20','trim','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','service','appRef','tree','datatable','operator','将通过\x20Service\x20Tree\x20执行“','source','now','const','\x20<command>\x20[flags]','data','string','Unknown\x20appRef\x20\x22','target','args','2705352gxIsEk','\x20\x20\x20\x20command:\x20','validation','number','userName','\x20\x20\x20\x20datatable:\x20','`\x20to\x20inspect\x20the\x20manifest.','startsWith','some','tenantCode','fromEntries','params','nickName','padEnd','risk','kind','4254000kRXJWe','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','Commands:','normalizedManifest','userId','16710630XqFspY','\x20service\x20detail\x20--service\x20','sql','7128MpXOHk','high-risk-write','\x20\x20\x20\x20functionName:\x20','977372kxHRHg','name'];a39_0xa0dd=function(){return _0x2042b5;};return a39_0xa0dd();}function dynamicCommandName(_0x1f8e52){const _0x54bd80=a39_0x531e;return _0x1f8e52[_0x54bd80(0x12d)][_0x54bd80(0x14e)](0x1)[_0x54bd80(0x191)]('\x20');}function riskTag(_0x936c44){const _0x543cc2=a39_0x531e;return _0x936c44===_0x543cc2(0x159)?'':_0x543cc2(0x136)+_0x936c44+']';}function flagToCommandFlag(_0x464068){const _0x46b52b=a39_0x531e;return{'name':_0x464068[_0x46b52b(0x131)],'type':_0x464068[_0x46b52b(0x135)]===_0x46b52b(0x133)?'string':_0x464068[_0x46b52b(0x135)],'description':_0x464068[_0x46b52b(0x12e)]||_0x464068['name'],'required':_0x464068[_0x46b52b(0x132)],'default':isPrimitiveFlagDefault(_0x464068[_0x46b52b(0x141)])?_0x464068[_0x46b52b(0x141)]:undefined,'enum':_0x464068['enum']};}async function compilePlan(_0x453c06,_0x41fb5a){const _0x54b0d8=a39_0x531e;return compileServiceTreeCommand(_0x453c06,{'flags':_0x41fb5a[_0x54b0d8(0x142)],'args':_0x41fb5a[_0x54b0d8(0x16f)],'context':await buildServiceContext(_0x453c06,_0x41fb5a)});}async function buildServiceContext(_0x47db1b,_0x5211b7){const _0x2b51ba=a39_0x531e,_0x4cf763={'appCode':_0x5211b7[_0x2b51ba(0x14d)],'env':_0x5211b7[_0x2b51ba(0x130)],'envName':_0x5211b7[_0x2b51ba(0x130)]};if(!usesRuntimeContext(_0x47db1b))return _0x4cf763;const _0x4ff008=await getLoginUserInfo(),_0x47f69d=pickFirst(_0x4ff008[_0x2b51ba(0x184)],_0x4ff008['id']);return{..._0x4cf763,'user':_0x4ff008,'userId':_0x47f69d,'id':_0x4ff008['id'],'username':pickFirst(_0x4ff008['username'],_0x4ff008[_0x2b51ba(0x174)],_0x4ff008[_0x2b51ba(0x147)]),'userName':_0x4ff008['userName'],'nickname':pickFirst(_0x4ff008['nickname'],_0x4ff008[_0x2b51ba(0x17c)]),'nickName':_0x4ff008['nickName'],'tenantCode':_0x4ff008[_0x2b51ba(0x179)],'employeeId':_0x4ff008[_0x2b51ba(0x12f)]};}function usesRuntimeContext(_0x19c380){const _0x3841cb=a39_0x531e;return _0x19c380[_0x3841cb(0x156)][_0x3841cb(0x178)](_0xd878a8=>typeof _0xd878a8['source']==='string'&&(_0xd878a8[_0x3841cb(0x167)][_0x3841cb(0x177)]('context.')||_0xd878a8[_0x3841cb(0x167)]['startsWith'](_0x3841cb(0x18e))));}function pickFirst(..._0x2435cb){return _0x2435cb['find'](_0x42f384=>_0x42f384!==undefined&&_0x42f384!==null);}async function executePlan(_0x10599b,_0x49bc2f,_0x885850){const _0x3502d0=a39_0x531e;if(_0x10599b['kind']===_0x3502d0(0x16b)){const _0x4304c4=await resolveDatasetCode(_0x10599b,_0x49bc2f,_0x885850);return executeData(_0x4304c4,_0x10599b['command'],_0x10599b[_0x3502d0(0x17b)]);}if(_0x10599b[_0x3502d0(0x17f)]===_0x3502d0(0x187)){if(!_0x10599b[_0x3502d0(0x143)])throw CliErrors[_0x3502d0(0x172)](_0x3502d0(0x15b)+_0x49bc2f['cliPath']+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x10599b[_0x3502d0(0x143)],normalizeScalarParams(_0x10599b[_0x3502d0(0x17b)]));}if(_0x10599b[_0x3502d0(0x17f)]===_0x3502d0(0x12c)){const _0x471420=_0x10599b['scriptName']||_0x10599b[_0x3502d0(0x139)]||(_0x10599b[_0x3502d0(0x144)]==null?'':String(_0x10599b[_0x3502d0(0x144)]));if(!_0x471420)throw CliErrors[_0x3502d0(0x172)](_0x3502d0(0x15b)+_0x49bc2f['cliPath']+_0x3502d0(0x134));return executeSdkBff(_0x471420,_0x10599b[_0x3502d0(0x17b)]);}throw CliErrors[_0x3502d0(0x172)](_0x3502d0(0x15e)+_0x10599b[_0x3502d0(0x17f)]);}async function resolveDatasetCode(_0x54a66,_0x457705,_0x5ac14a){const _0x360714=a39_0x531e;if(_0x54a66['datasetCode'])return _0x54a66[_0x360714(0x14f)];if(!_0x54a66[_0x360714(0x164)])throw CliErrors[_0x360714(0x172)](_0x360714(0x15b)+_0x457705[_0x360714(0x148)]+_0x360714(0x153));const _0x43faf9=await listDatasets(_0x5ac14a['appCode']),_0x24b989=_0x43faf9['find'](_0x12bee8=>_0x12bee8['dbtableConfig']?.['tableName']===_0x54a66[_0x360714(0x164)]);if(!_0x24b989?.[_0x360714(0x137)])throw CliErrors[_0x360714(0x172)](_0x360714(0x18f)+_0x54a66[_0x360714(0x164)]+_0x360714(0x160)+_0x5ac14a[_0x360714(0x14d)]+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x24b989[_0x360714(0x137)];}function applyAppBinding(_0x4ce63e,_0x12a53b,_0x4e5aa7){const _0x208307=a39_0x531e,_0x243c53=_0x12a53b['target'][_0x208307(0x162)];if(!_0x243c53)return;const _0x5dd3ce=_0x4ce63e[_0x208307(0x13f)][_0x243c53];if(!_0x5dd3ce)throw CliErrors[_0x208307(0x172)](_0x208307(0x16d)+_0x243c53+'\x22\x20in\x20service\x20command\x20'+_0x12a53b[_0x208307(0x148)]+'.',_0x208307(0x181));const _0x3de7d5=_0x5dd3ce[_0x208307(0x13b)]||_0x5dd3ce[_0x208307(0x14d)];_0x3de7d5&&!hasText(_0x4e5aa7[_0x208307(0x13b)])&&(_0x4e5aa7['appcode']=_0x3de7d5),_0x5dd3ce[_0x208307(0x14c)]&&!hasText(_0x4e5aa7[_0x208307(0x14c)])&&!hasText(_0x4e5aa7[_0x208307(0x13b)])&&(_0x4e5aa7['app']=_0x5dd3ce[_0x208307(0x14c)]),_0x5dd3ce['env']&&!hasText(_0x4e5aa7[_0x208307(0x145)])&&(_0x4e5aa7[_0x208307(0x145)]=_0x5dd3ce[_0x208307(0x145)]);}function renderDynamicCommandHelp(_0x320eae){const _0x2ae17d=a39_0x531e,_0x262b05=[_0x2ae17d(0x13a),_0x2ae17d(0x15c)+_0x320eae[_0x2ae17d(0x16e)][_0x2ae17d(0x17f)],_0x2ae17d(0x171)+_0x320eae[_0x2ae17d(0x16e)]['command']];if(_0x320eae[_0x2ae17d(0x16e)]['datasetCode'])_0x262b05['push']('\x20\x20\x20\x20datasetCode:\x20'+_0x320eae[_0x2ae17d(0x16e)][_0x2ae17d(0x14f)]);if(_0x320eae[_0x2ae17d(0x16e)][_0x2ae17d(0x164)])_0x262b05[_0x2ae17d(0x149)](_0x2ae17d(0x175)+_0x320eae[_0x2ae17d(0x16e)]['datatable']);if(_0x320eae[_0x2ae17d(0x16e)][_0x2ae17d(0x143)])_0x262b05['push']('\x20\x20\x20\x20sqlCode:\x20'+_0x320eae[_0x2ae17d(0x16e)]['sqlCode']);if(_0x320eae['target'][_0x2ae17d(0x190)])_0x262b05[_0x2ae17d(0x149)](_0x2ae17d(0x18a)+_0x320eae[_0x2ae17d(0x16e)]['scriptName']);if(_0x320eae[_0x2ae17d(0x156)][_0x2ae17d(0x13e)]>0x0){_0x262b05[_0x2ae17d(0x149)]('',_0x2ae17d(0x195));for(const _0x1fba9e of _0x320eae[_0x2ae17d(0x156)]){_0x262b05['push'](_0x2ae17d(0x154)+(_0x1fba9e['source']||_0x2ae17d(0x169))+_0x2ae17d(0x146)+_0x1fba9e['target']+(_0x1fba9e[_0x2ae17d(0x165)]?'.'+_0x1fba9e[_0x2ae17d(0x165)]:''));}}return _0x262b05[_0x2ae17d(0x191)]('\x0a');}function targetPreview(_0x5a09d4){const _0x2581dc=a39_0x531e;return{'kind':_0x5a09d4['kind'],'command':_0x5a09d4[_0x2581dc(0x14b)],'appRef':_0x5a09d4[_0x2581dc(0x162)],'datasetCode':_0x5a09d4['datasetCode'],'datatable':_0x5a09d4[_0x2581dc(0x164)],'sqlCode':_0x5a09d4['sqlCode'],'bffCode':_0x5a09d4[_0x2581dc(0x139)],'bffId':_0x5a09d4['bffId'],'functionName':_0x5a09d4[_0x2581dc(0x190)]};}function normalizeScalarParams(_0x278e86){const _0x4b7aae=a39_0x531e;return Object[_0x4b7aae(0x17a)](Object[_0x4b7aae(0x150)](_0x278e86)[_0x4b7aae(0x158)](([,_0x4c2b21])=>typeof _0x4c2b21===_0x4b7aae(0x16c)||typeof _0x4c2b21===_0x4b7aae(0x173)));}function hasText(_0x3befe9){const _0x20b73f=a39_0x531e;return typeof _0x3befe9===_0x20b73f(0x16c)&&_0x3befe9[_0x20b73f(0x15f)]()['length']>0x0;}function isPrimitiveFlagDefault(_0x435014){const _0x148261=a39_0x531e;return _0x435014===undefined||typeof _0x435014===_0x148261(0x16c)||typeof _0x435014===_0x148261(0x173)||typeof _0x435014===_0x148261(0x157);}
@@ -1 +1 @@
1
- function a40_0x3e1c(){const _0x302ad4=['object','scriptName','action','].target','595559QViiBC','error','bff','map','.scriptName','4EjAURo','3724260fZLbVS','8064584LmtLxp','30tyvLMy','$.resources','fromEntries','actions','5569435wIstjc','hasOwnProperty','call','1166706ZfTFsF','isArray','target','trim','7lscFcX','2zZzbbI','entries','functionName\x20must\x20be\x20a\x20non-empty\x20string.','5335638SJrnOZ','kind','string','.actions.','prototype','$.commands[','push','resources','commands','1155992pkmtMu','.resources','.target','functionName'];a40_0x3e1c=function(){return _0x302ad4;};return a40_0x3e1c();}(function(_0x38a1d7,_0x39fb00){const _0x620f5=a40_0x5be8,_0x64255f=_0x38a1d7();while(!![]){try{const _0x138752=-parseInt(_0x620f5(0x1b0))/0x1+parseInt(_0x620f5(0x19c))/0x2*(parseInt(_0x620f5(0x19f))/0x3)+-parseInt(_0x620f5(0x1b5))/0x4*(parseInt(_0x620f5(0x194))/0x5)+-parseInt(_0x620f5(0x1b6))/0x6*(-parseInt(_0x620f5(0x19b))/0x7)+-parseInt(_0x620f5(0x1a8))/0x8+parseInt(_0x620f5(0x197))/0x9*(-parseInt(_0x620f5(0x190))/0xa)+parseInt(_0x620f5(0x18f))/0xb;if(_0x138752===_0x39fb00)break;else _0x64255f['push'](_0x64255f['shift']());}catch(_0x32fb27){_0x64255f['push'](_0x64255f['shift']());}}}(a40_0x3e1c,0xd92d1));export function adaptServiceTreeManifestForLegacyFramework(_0x304592){const _0x2ced29=a40_0x5be8,_0x500322=cloneJsonValue(_0x304592),_0x5b12f6=[];if(!isObjectRecord(_0x500322))return{'manifest':_0x500322,'errors':_0x5b12f6};return Array[_0x2ced29(0x198)](_0x500322[_0x2ced29(0x1a7)])&&_0x500322[_0x2ced29(0x1a7)]['forEach']((_0x48707c,_0x624610)=>{const _0x2e8e67=_0x2ced29;if(!isObjectRecord(_0x48707c))return;adaptBffTarget(_0x48707c['target'],_0x2e8e67(0x1a4)+_0x624610+_0x2e8e67(0x1af),_0x5b12f6);}),adaptResources(_0x500322['resources'],_0x2ced29(0x191),_0x5b12f6),{'manifest':_0x500322,'errors':_0x5b12f6};}export function toPublicServiceTreeTarget(_0x2d701f){const _0x4fbf4b=a40_0x5be8,{scriptName:_0x370ecd,..._0x3f59bd}=_0x2d701f;return typeof _0x370ecd===_0x4fbf4b(0x1a1)&&_0x370ecd[_0x4fbf4b(0x19a)]()&&(_0x3f59bd['functionName']=_0x370ecd),_0x3f59bd;}export function toPublicNormalizedServiceTree(_0x538e60){const _0x9cc95e=a40_0x5be8;return{..._0x538e60,'commands':_0x538e60[_0x9cc95e(0x1a7)][_0x9cc95e(0x1b3)](_0x41c5cf=>({..._0x41c5cf,'target':toPublicServiceTreeTarget(_0x41c5cf['target'])}))};}function adaptResources(_0xdac8c9,_0x244674,_0x1946c3){const _0x5e4094=a40_0x5be8;if(!isObjectRecord(_0xdac8c9))return;for(const [_0x2f7cfc,_0x38021a]of Object[_0x5e4094(0x19d)](_0xdac8c9)){if(!isObjectRecord(_0x38021a))continue;const _0x3503e7=_0x244674+'.'+_0x2f7cfc;if(isObjectRecord(_0x38021a[_0x5e4094(0x193)]))for(const [_0x31bb9e,_0xc04e4b]of Object[_0x5e4094(0x19d)](_0x38021a[_0x5e4094(0x193)])){if(!isObjectRecord(_0xc04e4b))continue;const _0x35bb92=_0x3503e7+_0x5e4094(0x1a2)+_0x31bb9e,_0x5df6f0=isObjectRecord(_0xc04e4b[_0x5e4094(0x199)])&&_0xc04e4b[_0x5e4094(0x199)][_0x5e4094(0x1a0)]===_0x5e4094(0x1b2);adaptBffTarget(_0xc04e4b['target'],_0x35bb92+_0x5e4094(0x1aa),_0x1946c3),(_0x5df6f0||isBffAction(_0xc04e4b))&&adaptFunctionNameField(_0xc04e4b,_0x35bb92,_0x1946c3);}adaptResources(_0x38021a[_0x5e4094(0x1a6)],_0x3503e7+_0x5e4094(0x1a9),_0x1946c3);}}function adaptBffTarget(_0x4f18b4,_0x9c4bd5,_0x35e87e){const _0x346513=a40_0x5be8;if(!isObjectRecord(_0x4f18b4)||_0x4f18b4['kind']!==_0x346513(0x1b2))return;adaptFunctionNameField(_0x4f18b4,_0x9c4bd5,_0x35e87e);}function adaptFunctionNameField(_0x2ada57,_0x331dab,_0x33749a){const _0x2f722e=a40_0x5be8;Object[_0x2f722e(0x1a3)][_0x2f722e(0x195)][_0x2f722e(0x196)](_0x2ada57,_0x2f722e(0x1ad))&&_0x33749a[_0x2f722e(0x1a5)]({'level':_0x2f722e(0x1b1),'path':_0x331dab+_0x2f722e(0x1b4),'message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object[_0x2f722e(0x1a3)][_0x2f722e(0x195)][_0x2f722e(0x196)](_0x2ada57,_0x2f722e(0x1ab))){if(typeof _0x2ada57[_0x2f722e(0x1ab)]!=='string'||!_0x2ada57[_0x2f722e(0x1ab)][_0x2f722e(0x19a)]()){_0x33749a[_0x2f722e(0x1a5)]({'level':_0x2f722e(0x1b1),'path':_0x331dab+'.functionName','message':_0x2f722e(0x19e)}),delete _0x2ada57[_0x2f722e(0x1ab)];return;}_0x2ada57[_0x2f722e(0x1ad)]=_0x2ada57['functionName'],delete _0x2ada57[_0x2f722e(0x1ab)];}}function a40_0x5be8(_0x1a0ae4,_0x2f162f){_0x1a0ae4=_0x1a0ae4-0x18f;const _0x3e1c41=a40_0x3e1c();let _0x5be8b6=_0x3e1c41[_0x1a0ae4];return _0x5be8b6;}function isBffAction(_0x4fcd7e){const _0x27cab7=a40_0x5be8;return _0x4fcd7e[_0x27cab7(0x1a0)]===_0x27cab7(0x1b2)||_0x4fcd7e[_0x27cab7(0x1ae)]==='bff.exec'||_0x4fcd7e[_0x27cab7(0x199)]==='bff.exec';}function cloneJsonValue(_0x1aacfb){const _0x1f56ff=a40_0x5be8;if(Array[_0x1f56ff(0x198)](_0x1aacfb))return _0x1aacfb[_0x1f56ff(0x1b3)](_0x4d2239=>cloneJsonValue(_0x4d2239));if(isObjectRecord(_0x1aacfb))return Object[_0x1f56ff(0x192)](Object[_0x1f56ff(0x19d)](_0x1aacfb)[_0x1f56ff(0x1b3)](([_0x29e955,_0x498eda])=>[_0x29e955,cloneJsonValue(_0x498eda)]));return _0x1aacfb;}function isObjectRecord(_0x35219c){const _0x3b2be4=a40_0x5be8;return Boolean(_0x35219c)&&typeof _0x35219c===_0x3b2be4(0x1ac)&&!Array['isArray'](_0x35219c);}
1
+ (function(_0x1c9c8e,_0xebadea){const _0x2a88f6=a40_0x5a80,_0x32533c=_0x1c9c8e();while(!![]){try{const _0x3eb25f=-parseInt(_0x2a88f6(0x185))/0x1+parseInt(_0x2a88f6(0x18f))/0x2+-parseInt(_0x2a88f6(0x186))/0x3+parseInt(_0x2a88f6(0x17e))/0x4+parseInt(_0x2a88f6(0x18d))/0x5*(-parseInt(_0x2a88f6(0x18e))/0x6)+-parseInt(_0x2a88f6(0x187))/0x7*(parseInt(_0x2a88f6(0x17a))/0x8)+parseInt(_0x2a88f6(0x17f))/0x9;if(_0x3eb25f===_0xebadea)break;else _0x32533c['push'](_0x32533c['shift']());}catch(_0x1e44f3){_0x32533c['push'](_0x32533c['shift']());}}}(a40_0x37ce,0x6a263));export function adaptServiceTreeManifestForLegacyFramework(_0x19657c){const _0x2a134e=a40_0x5a80,_0x2c4376=cloneJsonValue(_0x19657c),_0xa80131=[];if(!isObjectRecord(_0x2c4376))return{'manifest':_0x2c4376,'errors':_0xa80131};return Array['isArray'](_0x2c4376['commands'])&&_0x2c4376[_0x2a134e(0x179)]['forEach']((_0x355865,_0x28a965)=>{const _0x4a3a1c=_0x2a134e;if(!isObjectRecord(_0x355865))return;adaptBffTarget(_0x355865[_0x4a3a1c(0x17d)],_0x4a3a1c(0x18a)+_0x28a965+_0x4a3a1c(0x178),_0xa80131);}),adaptResources(_0x2c4376[_0x2a134e(0x16c)],_0x2a134e(0x18c),_0xa80131),{'manifest':_0x2c4376,'errors':_0xa80131};}export function toPublicServiceTreeTarget(_0x87226d){const _0x4f7c58=a40_0x5a80,{scriptName:_0x4cfe48,..._0x2a483f}=_0x87226d;return typeof _0x4cfe48==='string'&&_0x4cfe48[_0x4f7c58(0x16d)]()&&(_0x2a483f[_0x4f7c58(0x172)]=_0x4cfe48),_0x2a483f;}export function toPublicNormalizedServiceTree(_0xc30e1){const _0x12f801=a40_0x5a80;return{..._0xc30e1,'commands':_0xc30e1[_0x12f801(0x179)][_0x12f801(0x174)](_0x4ebd5b=>({..._0x4ebd5b,'target':toPublicServiceTreeTarget(_0x4ebd5b[_0x12f801(0x17d)])}))};}function a40_0x5a80(_0x45bb16,_0x40b8e3){_0x45bb16=_0x45bb16-0x16c;const _0x37ce22=a40_0x37ce();let _0x5a8079=_0x37ce22[_0x45bb16];return _0x5a8079;}function adaptResources(_0x1be9b5,_0x153364,_0x4c8549){const _0x33d075=a40_0x5a80;if(!isObjectRecord(_0x1be9b5))return;for(const [_0x184fb6,_0x25654f]of Object[_0x33d075(0x189)](_0x1be9b5)){if(!isObjectRecord(_0x25654f))continue;const _0x47a324=_0x153364+'.'+_0x184fb6;if(isObjectRecord(_0x25654f['actions']))for(const [_0x4f73d9,_0x58ddb5]of Object['entries'](_0x25654f[_0x33d075(0x177)])){if(!isObjectRecord(_0x58ddb5))continue;const _0x5e8969=_0x47a324+'.actions.'+_0x4f73d9,_0x54b492=isObjectRecord(_0x58ddb5[_0x33d075(0x17d)])&&_0x58ddb5['target'][_0x33d075(0x182)]==='bff';adaptBffTarget(_0x58ddb5['target'],_0x5e8969+_0x33d075(0x180),_0x4c8549),(_0x54b492||isBffAction(_0x58ddb5))&&adaptFunctionNameField(_0x58ddb5,_0x5e8969,_0x4c8549);}adaptResources(_0x25654f[_0x33d075(0x16c)],_0x47a324+'.resources',_0x4c8549);}}function adaptBffTarget(_0x50a9e8,_0x1cc766,_0x3fafc2){if(!isObjectRecord(_0x50a9e8)||_0x50a9e8['kind']!=='bff')return;adaptFunctionNameField(_0x50a9e8,_0x1cc766,_0x3fafc2);}function adaptFunctionNameField(_0x1d8261,_0x1d639c,_0x26b02c){const _0x4d2d7e=a40_0x5a80;Object[_0x4d2d7e(0x181)]['hasOwnProperty'][_0x4d2d7e(0x171)](_0x1d8261,_0x4d2d7e(0x173))&&_0x26b02c['push']({'level':'error','path':_0x1d639c+_0x4d2d7e(0x188),'message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object[_0x4d2d7e(0x181)][_0x4d2d7e(0x16e)][_0x4d2d7e(0x171)](_0x1d8261,_0x4d2d7e(0x172))){if(typeof _0x1d8261['functionName']!==_0x4d2d7e(0x16f)||!_0x1d8261['functionName'][_0x4d2d7e(0x16d)]()){_0x26b02c['push']({'level':_0x4d2d7e(0x17c),'path':_0x1d639c+'.functionName','message':_0x4d2d7e(0x170)}),delete _0x1d8261[_0x4d2d7e(0x172)];return;}_0x1d8261[_0x4d2d7e(0x173)]=_0x1d8261[_0x4d2d7e(0x172)],delete _0x1d8261[_0x4d2d7e(0x172)];}}function isBffAction(_0x9d411a){const _0x5c6dbc=a40_0x5a80;return _0x9d411a[_0x5c6dbc(0x182)]===_0x5c6dbc(0x184)||_0x9d411a[_0x5c6dbc(0x175)]==='bff.exec'||_0x9d411a['target']===_0x5c6dbc(0x176);}function cloneJsonValue(_0x59ee1b){const _0x2fa546=a40_0x5a80;if(Array[_0x2fa546(0x183)](_0x59ee1b))return _0x59ee1b[_0x2fa546(0x174)](_0x308cde=>cloneJsonValue(_0x308cde));if(isObjectRecord(_0x59ee1b))return Object[_0x2fa546(0x18b)](Object[_0x2fa546(0x189)](_0x59ee1b)[_0x2fa546(0x174)](([_0x4c07a8,_0x4ce20c])=>[_0x4c07a8,cloneJsonValue(_0x4ce20c)]));return _0x59ee1b;}function a40_0x37ce(){const _0x25e0ef=['functionName','scriptName','map','action','bff.exec','actions','].target','commands','3127528wKPChm','object','error','target','2955604BhkFzP','8268012oevYCn','.target','prototype','kind','isArray','bff','269484vvuVqr','767280XAjykv','7fmByhQ','.scriptName','entries','$.commands[','fromEntries','$.resources','505qRPNPS','33360GjfIwB','509926YllXjn','resources','trim','hasOwnProperty','string','functionName\x20must\x20be\x20a\x20non-empty\x20string.','call'];a40_0x37ce=function(){return _0x25e0ef;};return a40_0x37ce();}function isObjectRecord(_0x2ca1b1){const _0x39ac71=a40_0x5a80;return Boolean(_0x2ca1b1)&&typeof _0x2ca1b1===_0x39ac71(0x17b)&&!Array[_0x39ac71(0x183)](_0x2ca1b1);}
@@ -1 +1 @@
1
- function a41_0x21a6(_0x2fbaea,_0x3fc82a){_0x2fbaea=_0x2fbaea-0x11d;const _0x275c5b=a41_0x275c();let _0x21a6f3=_0x275c5b[_0x2fbaea];return _0x21a6f3;}function a41_0x275c(){const _0x182889=['WRITE','replaced','registryPath','registryIndex','risk','import','length','Service\x20Tree\x20manifest\x20file\x20path','name','Local\x20service\x20not\x20found:\x20','imported','errors','flags','1565624Qejaiu','12ZuvHnB','kind','serviceCount','serviceCode','7096152hrtxRU','manifest','commands','Service\x20registry\x20validation\x20passed.','1292178HrBZKo','将\x20Service\x20Tree\x20清单导入本地运行态注册表','map','Local\x20service\x20code,\x20for\x20example\x20crm','Imported','2339582VBREjG','warnings','354405vDUQBg','file','version','entries','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','read','2053032bEpqkX','required','report','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','description','entry','hash','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','12437937tMUEeT','cliPath','write','detail','Updated','Service\x20manifest\x20validation\x20passed.','\x20service(s).','source','service','type','reduce','normalizedManifest','Removed\x20service\x20','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','42FbSKet','updated','string','从本地运行态注册表移除\x20Service\x20Tree\x20清单','manifests','filePath','str','importedAt','export','Imported\x20','target'];a41_0x275c=function(){return _0x182889;};return a41_0x275c();}const a41_0x6f4b93=a41_0x21a6;(function(_0x1c2103,_0x220074){const _0xf056e=a41_0x21a6,_0x47f171=_0x1c2103();while(!![]){try{const _0xc38e1=parseInt(_0xf056e(0x15a))/0x1+parseInt(_0xf056e(0x15f))/0x2+-parseInt(_0xf056e(0x152))/0x3*(-parseInt(_0xf056e(0x151))/0x4)+parseInt(_0xf056e(0x11d))/0x5*(-parseInt(_0xf056e(0x139))/0x6)+-parseInt(_0xf056e(0x156))/0x7+-parseInt(_0xf056e(0x123))/0x8+-parseInt(_0xf056e(0x12b))/0x9;if(_0xc38e1===_0x220074)break;else _0x47f171['push'](_0x47f171['shift']());}catch(_0x97031b){_0x47f171['push'](_0x47f171['shift']());}}}(a41_0x275c,0xd69dc));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a41_0x6f4b93(0x11e),'type':'string','required':!![],'description':a41_0x6f4b93(0x14b)},SERVICE_FLAG={'name':a41_0x6f4b93(0x133),'type':a41_0x6f4b93(0x13b),'required':!![],'description':a41_0x6f4b93(0x15d),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x7f18d7){const _0x586f96=a41_0x6f4b93;return{'serviceCode':_0x7f18d7[_0x586f96(0x155)],'name':_0x7f18d7[_0x586f96(0x136)][_0x586f96(0x133)]['name'],'version':_0x7f18d7[_0x586f96(0x11f)],'importedAt':_0x7f18d7[_0x586f96(0x140)],'source':_0x7f18d7[_0x586f96(0x132)],'commandCount':_0x7f18d7['normalizedManifest'][_0x586f96(0x158)]['length'],'commands':_0x7f18d7['normalizedManifest']['commands'][_0x586f96(0x15c)](_0x48b930=>({'path':_0x48b930['cliPath'],'description':_0x48b930[_0x586f96(0x127)],'risk':_0x48b930[_0x586f96(0x148)],'target':toPublicServiceTreeTarget(_0x48b930[_0x586f96(0x143)]),'flags':_0x48b930[_0x586f96(0x150)]['map'](_0x4174c1=>({'name':_0x4174c1[_0x586f96(0x14c)],'cliName':_0x4174c1['cliName'],'type':_0x4174c1[_0x586f96(0x134)],'required':_0x4174c1[_0x586f96(0x124)]===!![]}))}))};}function summarizeLoadedManifest(_0x4eb41d){const _0x2614f5=a41_0x6f4b93;return{'service':_0x4eb41d[_0x2614f5(0x136)]?.[_0x2614f5(0x133)],'version':_0x4eb41d[_0x2614f5(0x136)]?.[_0x2614f5(0x11f)],'commandCount':_0x4eb41d['normalizedManifest']?.['commands'][_0x2614f5(0x14a)]??0x0,'commands':_0x4eb41d[_0x2614f5(0x136)]?.['commands'][_0x2614f5(0x15c)](_0x38bf71=>({'path':_0x38bf71[_0x2614f5(0x12c)],'risk':_0x38bf71[_0x2614f5(0x148)],'target':toPublicServiceTreeTarget(_0x38bf71[_0x2614f5(0x143)])}))??[],'registryIndex':_0x4eb41d[_0x2614f5(0x147)],'registryServiceCode':_0x4eb41d['registryServiceCode'],'errors':_0x4eb41d[_0x2614f5(0x125)][_0x2614f5(0x14f)],'warnings':_0x4eb41d[_0x2614f5(0x125)]['warnings']};}export const serviceDefinitions=[{'service':'service','command':'validate','description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0xc5181b){const _0x49189e=a41_0x6f4b93,_0xe9abe7=loadServiceManifestFromFile(_0xc5181b[_0x49189e(0x13f)](_0x49189e(0x11e)));if(!_0xe9abe7[_0x49189e(0x125)]['ok'])return{'ok':![],'data':{'file':_0xe9abe7[_0x49189e(0x13e)],'hash':_0xe9abe7[_0x49189e(0x129)],'kind':_0xe9abe7[_0x49189e(0x153)],'serviceCount':_0xe9abe7['manifests'][_0x49189e(0x14a)],'services':_0xe9abe7['manifests']['map'](summarizeLoadedManifest),'errors':_0xe9abe7['report'][_0x49189e(0x14f)],'warnings':_0xe9abe7[_0x49189e(0x125)]['warnings']},'message':formatValidationFailure(_0xe9abe7['report'])};if(_0xe9abe7[_0x49189e(0x153)]==='registry'||_0xe9abe7['manifests'][_0x49189e(0x14a)]!==0x1)return{'ok':!![],'data':{'file':_0xe9abe7['filePath'],'hash':_0xe9abe7['hash'],'kind':_0xe9abe7['kind'],'serviceCount':_0xe9abe7[_0x49189e(0x13d)][_0x49189e(0x14a)],'commandCount':_0xe9abe7[_0x49189e(0x13d)][_0x49189e(0x135)]((_0x5daf5f,_0x30f7b0)=>_0x5daf5f+(_0x30f7b0[_0x49189e(0x136)]?.[_0x49189e(0x158)][_0x49189e(0x14a)]??0x0),0x0),'services':_0xe9abe7[_0x49189e(0x13d)][_0x49189e(0x15c)](summarizeLoadedManifest),'warnings':_0xe9abe7['report'][_0x49189e(0x160)]},'message':_0x49189e(0x159)};return{'ok':!![],'data':{'file':_0xe9abe7[_0x49189e(0x13e)],'hash':_0xe9abe7[_0x49189e(0x129)],'kind':_0xe9abe7[_0x49189e(0x153)],'service':_0xe9abe7[_0x49189e(0x136)]?.['service'],'version':_0xe9abe7[_0x49189e(0x136)]?.[_0x49189e(0x11f)],'commandCount':_0xe9abe7[_0x49189e(0x136)]?.['commands']['length']??0x0,'commands':_0xe9abe7[_0x49189e(0x136)]?.[_0x49189e(0x158)]['map'](_0x1aac5e=>({'path':_0x1aac5e['cliPath'],'risk':_0x1aac5e[_0x49189e(0x148)],'target':toPublicServiceTreeTarget(_0x1aac5e['target'])})),'warnings':_0xe9abe7['report']['warnings']},'message':_0x49189e(0x130)};}},{'service':a41_0x6f4b93(0x133),'command':a41_0x6f4b93(0x149),'description':a41_0x6f4b93(0x15b),'risk':a41_0x6f4b93(0x12d),'confirmationDescription':a41_0x6f4b93(0x126),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x5e22f4){const _0x5e10d0=a41_0x6f4b93,_0x6b6c2d=loadServiceManifestFromFile(_0x5e22f4['str']('file'));return{'method':_0x5e10d0(0x144),'url':getServiceRegistryPath(),'body':{'file':_0x6b6c2d[_0x5e10d0(0x13e)],'hash':_0x6b6c2d[_0x5e10d0(0x129)],'kind':_0x6b6c2d[_0x5e10d0(0x153)],'ok':_0x6b6c2d[_0x5e10d0(0x125)]['ok'],'service':_0x6b6c2d[_0x5e10d0(0x136)]?.[_0x5e10d0(0x133)],'version':_0x6b6c2d[_0x5e10d0(0x136)]?.[_0x5e10d0(0x11f)],'serviceCount':_0x6b6c2d[_0x5e10d0(0x13d)][_0x5e10d0(0x14a)],'services':_0x6b6c2d[_0x5e10d0(0x13d)][_0x5e10d0(0x15c)](_0x157db3=>({'service':_0x157db3['normalizedManifest']?.[_0x5e10d0(0x133)],'version':_0x157db3[_0x5e10d0(0x136)]?.[_0x5e10d0(0x11f)],'commandCount':_0x157db3[_0x5e10d0(0x136)]?.[_0x5e10d0(0x158)][_0x5e10d0(0x14a)]??0x0,'errors':_0x157db3[_0x5e10d0(0x125)][_0x5e10d0(0x14f)]})),'errors':_0x6b6c2d[_0x5e10d0(0x125)]['errors'],'commandCount':_0x6b6c2d[_0x5e10d0(0x136)]?.[_0x5e10d0(0x158)][_0x5e10d0(0x14a)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x4e3fa7){const _0x459933=a41_0x6f4b93,_0x454168=importServiceManifest(_0x4e3fa7['str'](_0x459933(0x11e)));if(_0x454168[_0x459933(0x120)][_0x459933(0x14a)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x454168[_0x459933(0x146)],'imported':_0x454168[_0x459933(0x14e)],'updated':_0x454168[_0x459933(0x13a)],'serviceCount':_0x454168['serviceCount'],'services':_0x454168[_0x459933(0x120)][_0x459933(0x15c)](summarizeService)},'message':_0x459933(0x142)+_0x454168['imported']+'\x20service(s),\x20updated\x20'+_0x454168['updated']+_0x459933(0x131)};return{'ok':!![],'data':{'registryPath':_0x454168[_0x459933(0x146)],'replaced':_0x454168[_0x459933(0x145)],'imported':_0x454168['imported'],'updated':_0x454168['updated'],'serviceCount':_0x454168[_0x459933(0x154)],'service':summarizeService(_0x454168[_0x459933(0x128)])},'message':(_0x454168['replaced']?_0x459933(0x12f):_0x459933(0x15e))+'\x20service\x20'+_0x454168[_0x459933(0x128)][_0x459933(0x155)]+'.'};}},{'service':a41_0x6f4b93(0x133),'command':a41_0x6f4b93(0x141),'description':'将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','risk':a41_0x6f4b93(0x12d),'confirmationDescription':'将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0xae32a5){const _0x11a59b=a41_0x6f4b93,_0x2aa23a=getLocalServiceEntry(_0xae32a5[_0x11a59b(0x13f)](_0x11a59b(0x133)));return{'method':'WRITE','url':_0xae32a5[_0x11a59b(0x13f)](_0x11a59b(0x11e)),'body':{'service':_0xae32a5[_0x11a59b(0x13f)]('service'),'found':Boolean(_0x2aa23a),'version':_0x2aa23a?.[_0x11a59b(0x11f)],'source':_0x2aa23a?.['source']},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x3ee1dc){const _0x26d962=a41_0x6f4b93,_0x5e3274=exportServiceManifest(_0x3ee1dc[_0x26d962(0x13f)](_0x26d962(0x133)),_0x3ee1dc['str'](_0x26d962(0x11e)));return{'ok':!![],'data':{'registryPath':_0x5e3274[_0x26d962(0x146)],'file':_0x5e3274[_0x26d962(0x13e)],'service':summarizeService(_0x5e3274[_0x26d962(0x128)])},'message':'Exported\x20service\x20'+_0x5e3274['entry'][_0x26d962(0x155)]+'.'};}},{'service':'service','command':'list','description':a41_0x6f4b93(0x12a),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x57770c=a41_0x6f4b93,_0x1666b1=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x1666b1[_0x57770c(0x14a)],'services':_0x1666b1[_0x57770c(0x15c)](summarizeService)}};}},{'service':a41_0x6f4b93(0x133),'command':'remove','description':a41_0x6f4b93(0x13c),'risk':a41_0x6f4b93(0x12d),'confirmationDescription':'将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x543c27){const _0x52eb0d=a41_0x6f4b93,_0x3ebcfc=getLocalServiceEntry(_0x543c27['str'](_0x52eb0d(0x133)));return{'method':_0x52eb0d(0x144),'url':getServiceRegistryPath(),'body':{'service':_0x543c27[_0x52eb0d(0x13f)](_0x52eb0d(0x133)),'found':Boolean(_0x3ebcfc),'version':_0x3ebcfc?.[_0x52eb0d(0x11f)],'source':_0x3ebcfc?.[_0x52eb0d(0x132)]},'description':_0x52eb0d(0x121)};},async 'execute'(_0xa71bd9){const _0x79549f=a41_0x6f4b93,_0x124d76=removeServiceManifest(_0xa71bd9[_0x79549f(0x13f)](_0x79549f(0x133)));return{'ok':!![],'data':{'registryPath':_0x124d76['registryPath'],'serviceCount':_0x124d76[_0x79549f(0x154)],'service':summarizeService(_0x124d76[_0x79549f(0x128)])},'message':_0x79549f(0x137)+_0x124d76[_0x79549f(0x128)][_0x79549f(0x155)]+'.'};}},{'service':'service','command':a41_0x6f4b93(0x12e),'description':a41_0x6f4b93(0x138),'risk':a41_0x6f4b93(0x122),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x54ebdd){const _0xc6b9a2=a41_0x6f4b93,_0x2c5cd4=getLocalServiceEntry(_0x54ebdd[_0xc6b9a2(0x13f)](_0xc6b9a2(0x133)));if(!_0x2c5cd4)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x54ebdd[_0xc6b9a2(0x13f)](_0xc6b9a2(0x133))},'message':_0xc6b9a2(0x14d)+_0x54ebdd[_0xc6b9a2(0x13f)](_0xc6b9a2(0x133))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x2c5cd4),'manifest':_0x2c5cd4[_0xc6b9a2(0x157)],'normalizedManifest':toPublicNormalizedServiceTree(_0x2c5cd4['normalizedManifest'])}};}}];
1
+ const a41_0x299fa2=a41_0x4c22;function a41_0x4c22(_0x572b5e,_0x5246e8){_0x572b5e=_0x572b5e-0xe0;const _0x1648a6=a41_0x1648();let _0x4c226b=_0x1648a6[_0x572b5e];return _0x4c226b;}(function(_0x4710c0,_0x294da9){const _0x12033d=a41_0x4c22,_0x2c2b80=_0x4710c0();while(!![]){try{const _0x2cdf4d=parseInt(_0x12033d(0x11d))/0x1+parseInt(_0x12033d(0xe7))/0x2+-parseInt(_0x12033d(0x128))/0x3*(parseInt(_0x12033d(0xf4))/0x4)+-parseInt(_0x12033d(0xf2))/0x5+-parseInt(_0x12033d(0x127))/0x6+-parseInt(_0x12033d(0xe5))/0x7+-parseInt(_0x12033d(0xeb))/0x8*(-parseInt(_0x12033d(0xf9))/0x9);if(_0x2cdf4d===_0x294da9)break;else _0x2c2b80['push'](_0x2c2b80['shift']());}catch(_0x27adbe){_0x2c2b80['push'](_0x2c2b80['shift']());}}}(a41_0x1648,0xedb70));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a41_0x1648(){const _0x3477fb=['description','92PhfRsJ','Imported\x20','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','replaced','3582tCeShl','file','从本地运行态注册表移除\x20Service\x20Tree\x20清单','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','serviceCode','updated','kind','Local\x20service\x20code,\x20for\x20example\x20crm','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','target','cliName','write','registryServiceCode','manifest','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','remove','map','Local\x20service\x20not\x20found:\x20','risk','length','importedAt','report','normalizedManifest','Service\x20Tree\x20manifest\x20file\x20path','\x20service\x20','registry','detail','filePath','required','entry','\x20service(s),\x20updated\x20','manifests','entries','Service\x20manifest\x20validation\x20passed.','type','Removed\x20service\x20','602490VZUYNT','hash','registryPath','serviceCount','registryIndex','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','errors','Updated','import','10260660ixsdxp','160299tIvIEy','\x20service(s).','service','cliPath','imported','str','10314248weEQLq','read','367404Wkgims','commands','string','source','94672QxtKQu','WRITE','version','export','warnings','validate','Service\x20registry\x20validation\x20passed.','549555IPufvF'];a41_0x1648=function(){return _0x3477fb;};return a41_0x1648();}import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a41_0x299fa2(0xfa),'type':a41_0x299fa2(0xe9),'required':!![],'description':a41_0x299fa2(0x110)},SERVICE_FLAG={'name':a41_0x299fa2(0xe1),'type':a41_0x299fa2(0xe9),'required':!![],'description':a41_0x299fa2(0x100),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0xcf80e){const _0x3b10df=a41_0x299fa2;return{'serviceCode':_0xcf80e['serviceCode'],'name':_0xcf80e[_0x3b10df(0x10f)][_0x3b10df(0xe1)]['name'],'version':_0xcf80e[_0x3b10df(0xed)],'importedAt':_0xcf80e[_0x3b10df(0x10d)],'source':_0xcf80e[_0x3b10df(0xea)],'commandCount':_0xcf80e[_0x3b10df(0x10f)][_0x3b10df(0xe8)][_0x3b10df(0x10c)],'commands':_0xcf80e[_0x3b10df(0x10f)][_0x3b10df(0xe8)][_0x3b10df(0x109)](_0x2561dc=>({'path':_0x2561dc[_0x3b10df(0xe2)],'description':_0x2561dc[_0x3b10df(0xf3)],'risk':_0x2561dc[_0x3b10df(0x10b)],'target':toPublicServiceTreeTarget(_0x2561dc['target']),'flags':_0x2561dc['flags']['map'](_0x3059d5=>({'name':_0x3059d5['name'],'cliName':_0x3059d5[_0x3b10df(0x103)],'type':_0x3059d5[_0x3b10df(0x11b)],'required':_0x3059d5[_0x3b10df(0x115)]===!![]}))}))};}function summarizeLoadedManifest(_0x272988){const _0x393e4a=a41_0x299fa2;return{'service':_0x272988[_0x393e4a(0x10f)]?.[_0x393e4a(0xe1)],'version':_0x272988['normalizedManifest']?.[_0x393e4a(0xed)],'commandCount':_0x272988[_0x393e4a(0x10f)]?.['commands'][_0x393e4a(0x10c)]??0x0,'commands':_0x272988[_0x393e4a(0x10f)]?.['commands'][_0x393e4a(0x109)](_0x36d1b3=>({'path':_0x36d1b3[_0x393e4a(0xe2)],'risk':_0x36d1b3[_0x393e4a(0x10b)],'target':toPublicServiceTreeTarget(_0x36d1b3[_0x393e4a(0x102)])}))??[],'registryIndex':_0x272988[_0x393e4a(0x121)],'registryServiceCode':_0x272988[_0x393e4a(0x105)],'errors':_0x272988['report'][_0x393e4a(0x124)],'warnings':_0x272988[_0x393e4a(0x10e)][_0x393e4a(0xef)]};}export const serviceDefinitions=[{'service':a41_0x299fa2(0xe1),'command':a41_0x299fa2(0xf0),'description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a41_0x299fa2(0xe6),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x2352c1){const _0x3e817b=a41_0x299fa2,_0x44507c=loadServiceManifestFromFile(_0x2352c1[_0x3e817b(0xe4)]('file'));if(!_0x44507c[_0x3e817b(0x10e)]['ok'])return{'ok':![],'data':{'file':_0x44507c[_0x3e817b(0x114)],'hash':_0x44507c[_0x3e817b(0x11e)],'kind':_0x44507c[_0x3e817b(0xff)],'serviceCount':_0x44507c['manifests'][_0x3e817b(0x10c)],'services':_0x44507c[_0x3e817b(0x118)][_0x3e817b(0x109)](summarizeLoadedManifest),'errors':_0x44507c['report'][_0x3e817b(0x124)],'warnings':_0x44507c[_0x3e817b(0x10e)]['warnings']},'message':formatValidationFailure(_0x44507c[_0x3e817b(0x10e)])};if(_0x44507c[_0x3e817b(0xff)]===_0x3e817b(0x112)||_0x44507c['manifests']['length']!==0x1)return{'ok':!![],'data':{'file':_0x44507c[_0x3e817b(0x114)],'hash':_0x44507c[_0x3e817b(0x11e)],'kind':_0x44507c[_0x3e817b(0xff)],'serviceCount':_0x44507c[_0x3e817b(0x118)][_0x3e817b(0x10c)],'commandCount':_0x44507c[_0x3e817b(0x118)]['reduce']((_0x328363,_0x56c04d)=>_0x328363+(_0x56c04d[_0x3e817b(0x10f)]?.[_0x3e817b(0xe8)][_0x3e817b(0x10c)]??0x0),0x0),'services':_0x44507c['manifests']['map'](summarizeLoadedManifest),'warnings':_0x44507c[_0x3e817b(0x10e)][_0x3e817b(0xef)]},'message':_0x3e817b(0xf1)};return{'ok':!![],'data':{'file':_0x44507c[_0x3e817b(0x114)],'hash':_0x44507c[_0x3e817b(0x11e)],'kind':_0x44507c['kind'],'service':_0x44507c[_0x3e817b(0x10f)]?.[_0x3e817b(0xe1)],'version':_0x44507c[_0x3e817b(0x10f)]?.[_0x3e817b(0xed)],'commandCount':_0x44507c['normalizedManifest']?.['commands'][_0x3e817b(0x10c)]??0x0,'commands':_0x44507c[_0x3e817b(0x10f)]?.['commands'][_0x3e817b(0x109)](_0xe2b1a=>({'path':_0xe2b1a[_0x3e817b(0xe2)],'risk':_0xe2b1a[_0x3e817b(0x10b)],'target':toPublicServiceTreeTarget(_0xe2b1a['target'])})),'warnings':_0x44507c[_0x3e817b(0x10e)][_0x3e817b(0xef)]},'message':_0x3e817b(0x11a)};}},{'service':a41_0x299fa2(0xe1),'command':a41_0x299fa2(0x126),'description':'将\x20Service\x20Tree\x20清单导入本地运行态注册表','risk':'write','confirmationDescription':a41_0x299fa2(0xf7),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x2f2033){const _0x26465f=a41_0x299fa2,_0x1e2254=loadServiceManifestFromFile(_0x2f2033['str'](_0x26465f(0xfa)));return{'method':_0x26465f(0xec),'url':getServiceRegistryPath(),'body':{'file':_0x1e2254[_0x26465f(0x114)],'hash':_0x1e2254[_0x26465f(0x11e)],'kind':_0x1e2254[_0x26465f(0xff)],'ok':_0x1e2254[_0x26465f(0x10e)]['ok'],'service':_0x1e2254[_0x26465f(0x10f)]?.['service'],'version':_0x1e2254[_0x26465f(0x10f)]?.[_0x26465f(0xed)],'serviceCount':_0x1e2254[_0x26465f(0x118)]['length'],'services':_0x1e2254[_0x26465f(0x118)][_0x26465f(0x109)](_0x4b143b=>({'service':_0x4b143b['normalizedManifest']?.[_0x26465f(0xe1)],'version':_0x4b143b[_0x26465f(0x10f)]?.[_0x26465f(0xed)],'commandCount':_0x4b143b[_0x26465f(0x10f)]?.[_0x26465f(0xe8)][_0x26465f(0x10c)]??0x0,'errors':_0x4b143b[_0x26465f(0x10e)]['errors']})),'errors':_0x1e2254[_0x26465f(0x10e)][_0x26465f(0x124)],'commandCount':_0x1e2254[_0x26465f(0x10f)]?.[_0x26465f(0xe8)]['length']??0x0},'description':_0x26465f(0xfc)};},async 'execute'(_0x35c7fb){const _0x218def=a41_0x299fa2,_0x25efb3=importServiceManifest(_0x35c7fb[_0x218def(0xe4)](_0x218def(0xfa)));if(_0x25efb3[_0x218def(0x119)][_0x218def(0x10c)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x25efb3['registryPath'],'imported':_0x25efb3[_0x218def(0xe3)],'updated':_0x25efb3[_0x218def(0xfe)],'serviceCount':_0x25efb3['serviceCount'],'services':_0x25efb3[_0x218def(0x119)][_0x218def(0x109)](summarizeService)},'message':_0x218def(0xf5)+_0x25efb3['imported']+_0x218def(0x117)+_0x25efb3[_0x218def(0xfe)]+_0x218def(0xe0)};return{'ok':!![],'data':{'registryPath':_0x25efb3[_0x218def(0x11f)],'replaced':_0x25efb3[_0x218def(0xf8)],'imported':_0x25efb3['imported'],'updated':_0x25efb3[_0x218def(0xfe)],'serviceCount':_0x25efb3[_0x218def(0x120)],'service':summarizeService(_0x25efb3[_0x218def(0x116)])},'message':(_0x25efb3[_0x218def(0xf8)]?_0x218def(0x125):'Imported')+_0x218def(0x111)+_0x25efb3[_0x218def(0x116)][_0x218def(0xfd)]+'.'};}},{'service':a41_0x299fa2(0xe1),'command':a41_0x299fa2(0xee),'description':a41_0x299fa2(0x122),'risk':a41_0x299fa2(0x104),'confirmationDescription':a41_0x299fa2(0xf6),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x3ad40d){const _0x92ef59=a41_0x299fa2,_0x15a3d7=getLocalServiceEntry(_0x3ad40d[_0x92ef59(0xe4)](_0x92ef59(0xe1)));return{'method':_0x92ef59(0xec),'url':_0x3ad40d['str']('file'),'body':{'service':_0x3ad40d[_0x92ef59(0xe4)](_0x92ef59(0xe1)),'found':Boolean(_0x15a3d7),'version':_0x15a3d7?.[_0x92ef59(0xed)],'source':_0x15a3d7?.[_0x92ef59(0xea)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x2566b9){const _0x1cf72b=a41_0x299fa2,_0x4eac16=exportServiceManifest(_0x2566b9['str'](_0x1cf72b(0xe1)),_0x2566b9[_0x1cf72b(0xe4)](_0x1cf72b(0xfa)));return{'ok':!![],'data':{'registryPath':_0x4eac16[_0x1cf72b(0x11f)],'file':_0x4eac16[_0x1cf72b(0x114)],'service':summarizeService(_0x4eac16[_0x1cf72b(0x116)])},'message':'Exported\x20service\x20'+_0x4eac16['entry'][_0x1cf72b(0xfd)]+'.'};}},{'service':a41_0x299fa2(0xe1),'command':'list','description':a41_0x299fa2(0x101),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x16ce2a=a41_0x299fa2,_0x56dd36=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x56dd36[_0x16ce2a(0x10c)],'services':_0x56dd36['map'](summarizeService)}};}},{'service':a41_0x299fa2(0xe1),'command':a41_0x299fa2(0x108),'description':a41_0x299fa2(0xfb),'risk':a41_0x299fa2(0x104),'confirmationDescription':a41_0x299fa2(0x107),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x1fc56a){const _0x365749=a41_0x299fa2,_0x53ff42=getLocalServiceEntry(_0x1fc56a[_0x365749(0xe4)]('service'));return{'method':_0x365749(0xec),'url':getServiceRegistryPath(),'body':{'service':_0x1fc56a[_0x365749(0xe4)]('service'),'found':Boolean(_0x53ff42),'version':_0x53ff42?.[_0x365749(0xed)],'source':_0x53ff42?.[_0x365749(0xea)]},'description':_0x365749(0x123)};},async 'execute'(_0xf82a32){const _0x4524c8=a41_0x299fa2,_0x566555=removeServiceManifest(_0xf82a32[_0x4524c8(0xe4)](_0x4524c8(0xe1)));return{'ok':!![],'data':{'registryPath':_0x566555[_0x4524c8(0x11f)],'serviceCount':_0x566555['serviceCount'],'service':summarizeService(_0x566555[_0x4524c8(0x116)])},'message':_0x4524c8(0x11c)+_0x566555[_0x4524c8(0x116)][_0x4524c8(0xfd)]+'.'};}},{'service':a41_0x299fa2(0xe1),'command':a41_0x299fa2(0x113),'description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x489227){const _0x5c4636=a41_0x299fa2,_0x375023=getLocalServiceEntry(_0x489227[_0x5c4636(0xe4)]('service'));if(!_0x375023)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x489227[_0x5c4636(0xe4)]('service')},'message':_0x5c4636(0x10a)+_0x489227[_0x5c4636(0xe4)](_0x5c4636(0xe1))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x375023),'manifest':_0x375023[_0x5c4636(0x106)],'normalizedManifest':toPublicNormalizedServiceTree(_0x375023[_0x5c4636(0x10f)])}};}}];
@@ -1 +1 @@
1
- (function(_0x5f5983,_0x35c148){const _0x528b64=a42_0x3309,_0x2ac3f6=_0x5f5983();while(!![]){try{const _0x19ba37=parseInt(_0x528b64(0x145))/0x1+parseInt(_0x528b64(0x136))/0x2*(-parseInt(_0x528b64(0x152))/0x3)+-parseInt(_0x528b64(0x131))/0x4*(parseInt(_0x528b64(0x148))/0x5)+parseInt(_0x528b64(0x10e))/0x6*(parseInt(_0x528b64(0x10b))/0x7)+parseInt(_0x528b64(0x12d))/0x8*(-parseInt(_0x528b64(0x124))/0x9)+parseInt(_0x528b64(0x14d))/0xa*(-parseInt(_0x528b64(0x150))/0xb)+-parseInt(_0x528b64(0x12f))/0xc*(-parseInt(_0x528b64(0x157))/0xd);if(_0x19ba37===_0x35c148)break;else _0x2ac3f6['push'](_0x2ac3f6['shift']());}catch(_0x4618fb){_0x2ac3f6['push'](_0x2ac3f6['shift']());}}}(a42_0x2c91,0xe92b6));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='service.json';export function getServiceRegistryPath(_0x463380={}){const _0x1d186c=a42_0x3309;return resolve(_0x463380['homeDir']??homedir(),PRODUCT_CONFIG[_0x1d186c(0x114)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x1f4d7d={}){const _0x4bf37f=a42_0x3309,_0x26777b=getServiceRegistryPath(_0x1f4d7d);if(!existsSync(_0x26777b))return emptyServiceRegistry();try{const _0xef2610=readFileSync(_0x26777b,_0x4bf37f(0x134));if(!_0xef2610[_0x4bf37f(0x156)]())return emptyServiceRegistry();const _0x39aa41=JSON['parse'](_0xef2610);if(_0x39aa41[_0x4bf37f(0x142)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x4bf37f(0x137)+String(_0x39aa41[_0x4bf37f(0x142)]),_0x4bf37f(0x12a)+_0x26777b+'.');if(!Array[_0x4bf37f(0x141)](_0x39aa41[_0x4bf37f(0x151)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x39aa41[_0x4bf37f(0x132)],'services':_0x39aa41[_0x4bf37f(0x151)]};}catch(_0x4ba5da){if(_0x4ba5da instanceof Error&&_0x4ba5da[_0x4bf37f(0x112)]===_0x4bf37f(0x146))throw _0x4ba5da;throw CliErrors[_0x4bf37f(0x13d)](_0x4bf37f(0x109)+_0x26777b,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x2365ac,_0x12b16e={}){const _0x5b57e6=a42_0x3309,_0x1f8476=getServiceRegistryPath(_0x12b16e),_0x547a93=dirname(_0x1f8476);!existsSync(_0x547a93)&&mkdirSync(_0x547a93,{'recursive':!![]});const _0x10320a=_0x1f8476+_0x5b57e6(0x135);try{writeFileSync(_0x10320a,JSON['stringify'](_0x2365ac,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x10320a,_0x1f8476);}catch(_0x4fc4d6){try{unlinkSync(_0x10320a);}catch{}if(_0x4fc4d6?.[_0x5b57e6(0x13b)]===_0x5b57e6(0x15b))throw CliErrors[_0x5b57e6(0x13d)]('Cannot\x20write\x20service\x20registry:\x20'+_0x1f8476);throw _0x4fc4d6;}return _0x1f8476;}export function loadServiceManifestFromFile(_0x211406){const _0x108672=a42_0x3309,_0x1883a1=resolve(_0x211406);if(!existsSync(_0x1883a1))throw CliErrors['validation'](_0x108672(0x155)+_0x211406);let _0x3232a7;const _0x2d335b=readFileSync(_0x1883a1,_0x108672(0x134));try{_0x3232a7=JSON[_0x108672(0x133)](_0x2d335b);}catch{throw CliErrors[_0x108672(0x13d)](_0x108672(0x154)+_0x211406,_0x108672(0x111));}const _0x148ddb=sha256(_0x2d335b),_0x203409=extractLoadedServiceManifests(_0x3232a7,_0x148ddb),_0x108934=aggregateValidationReports(_0x203409),_0x5bb8a3=_0x203409[0x0];return{'filePath':_0x1883a1,'hash':_0x148ddb,'kind':isServiceRegistryLike(_0x3232a7)?_0x108672(0x149):_0x108672(0x11b),'manifest':_0x5bb8a3?.[_0x108672(0x11b)]??_0x3232a7,'report':_0x108934,'normalizedManifest':_0x203409[_0x108672(0x144)]===0x1?_0x5bb8a3?.[_0x108672(0x10a)]:undefined,'manifests':_0x203409};}export function importServiceManifest(_0x2077dd,_0x31f017={}){const _0x203b62=a42_0x3309,_0x156579=loadServiceManifestFromFile(_0x2077dd);if(!_0x156579['report']['ok'])throw CliErrors[_0x203b62(0x13d)](formatValidationFailure(_0x156579[_0x203b62(0x147)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x156579[_0x203b62(0x158)][_0x203b62(0x144)]===0x0)throw CliErrors['validation']('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x203b62(0x14c));const _0x3cdaae=readServiceRegistry(_0x31f017),_0x38cd72=(_0x31f017['now']??(()=>new Date()))()[_0x203b62(0x143)](),_0x5bc3f8=[];let _0x224e7d=0x0,_0x2e4548=0x0;for(const _0x1c5fc3 of _0x156579[_0x203b62(0x158)]){if(!_0x1c5fc3[_0x203b62(0x10a)])continue;const _0x2db8a6=_0x1c5fc3[_0x203b62(0x10a)][_0x203b62(0x121)]['code'],_0x3a6545={'serviceCode':_0x2db8a6,'version':_0x1c5fc3[_0x203b62(0x10a)][_0x203b62(0x125)],'importedAt':_0x38cd72,'source':{'type':_0x203b62(0x108),'path':_0x156579[_0x203b62(0x130)],'hash':_0x1c5fc3[_0x203b62(0x115)]},'manifest':_0x1c5fc3[_0x203b62(0x11b)],'normalizedManifest':_0x1c5fc3['normalizedManifest']},_0x53c16f=_0x3cdaae[_0x203b62(0x151)][_0x203b62(0x14f)](_0x49b42b=>_0x49b42b[_0x203b62(0x11a)]===_0x2db8a6);_0x53c16f>=0x0?(_0x3cdaae[_0x203b62(0x151)][_0x53c16f]=_0x3a6545,_0x2e4548++):(_0x3cdaae[_0x203b62(0x151)][_0x203b62(0x13c)](_0x3a6545),_0x224e7d++),_0x5bc3f8[_0x203b62(0x13c)](_0x3a6545);}_0x3cdaae[_0x203b62(0x151)][_0x203b62(0x14a)]((_0x4735d0,_0x26ac99)=>_0x4735d0[_0x203b62(0x11a)][_0x203b62(0x153)](_0x26ac99[_0x203b62(0x11a)])),_0x3cdaae[_0x203b62(0x132)]=_0x38cd72;const _0x1902a6=writeServiceRegistry(_0x3cdaae,_0x31f017);return{'registryPath':_0x1902a6,'entry':_0x5bc3f8[0x0],'replaced':_0x5bc3f8[_0x203b62(0x144)]===0x1?_0x2e4548===0x1:_0x2e4548>0x0,'entries':_0x5bc3f8,'imported':_0x224e7d,'updated':_0x2e4548,'serviceCount':_0x3cdaae['services'][_0x203b62(0x144)]};}export function exportServiceManifest(_0x537a1c,_0x2255cb,_0x2b743d={}){const _0x14d47b=a42_0x3309,_0x30888b=getServiceRegistryPath(_0x2b743d),_0x4473ce=getLocalServiceEntry(_0x537a1c,_0x2b743d);if(!_0x4473ce)throw CliErrors['validation'](_0x14d47b(0x13e)+_0x537a1c,_0x14d47b(0x113));const _0xd27741=resolve(_0x2255cb),_0x464095=dirname(_0xd27741);return!existsSync(_0x464095)&&mkdirSync(_0x464095,{'recursive':!![]}),writeFileSync(_0xd27741,JSON['stringify'](_0x4473ce[_0x14d47b(0x11b)],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x30888b,'filePath':_0xd27741,'entry':_0x4473ce};}export function removeServiceManifest(_0x488cff,_0x3f41ac={}){const _0x504ed6=a42_0x3309,_0x12b315=readServiceRegistry(_0x3f41ac),_0x38af17=_0x488cff[_0x504ed6(0x156)](),_0x52c803=_0x12b315['services'][_0x504ed6(0x14f)](_0x449021=>_0x449021[_0x504ed6(0x11a)]===_0x38af17);if(_0x52c803<0x0)throw CliErrors[_0x504ed6(0x13d)]('Local\x20service\x20not\x20found:\x20'+_0x38af17,_0x504ed6(0x113));const [_0x1ba3ca]=_0x12b315[_0x504ed6(0x151)]['splice'](_0x52c803,0x1),_0x4acd14=(_0x3f41ac[_0x504ed6(0x11f)]??(()=>new Date()))()['toISOString']();_0x12b315[_0x504ed6(0x132)]=_0x4acd14;const _0x199d81=writeServiceRegistry(_0x12b315,_0x3f41ac);return{'registryPath':_0x199d81,'entry':_0x1ba3ca,'serviceCount':_0x12b315[_0x504ed6(0x151)][_0x504ed6(0x144)]};}export function listLocalServices(_0x32f97f={}){const _0x37dd7e=a42_0x3309;return readServiceRegistry(_0x32f97f)[_0x37dd7e(0x151)];}function a42_0x2c91(){const _0x17f73d=['now','startsWith','service','kind','warnings','711DWkWTE','version','description','empty','slice','map','Remove\x20or\x20migrate\x20','sha256','bff\x20target\x20requires\x20functionName.','162232BYKuFZ','flatMap','4644ksCNOa','filePath','10864laEVVb','updatedAt','parse','utf8','.tmp','142990JfSzkX','Unsupported\x20service\x20registry\x20schemaVersion:\x20','join','importedAt','path','code','push','validation','Local\x20service\x20not\x20found:\x20','command','].manifest','isArray','schemaVersion','toISOString','length','361797bAsRyz','CliError','report','2245JnrRxT','registry','sort','digest','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','211780AKLavN','risk','findIndex','11lySWfj','services','30GgDEPU','localeCompare','Invalid\x20service\x20manifest\x20JSON:\x20','Service\x20manifest\x20file\x20not\x20found:\x20','trim','120471ovjGQE','manifests','message','hex','ENOENT','registryIndex','errors','missing','services\x20must\x20be\x20an\x20array','file','Invalid\x20service\x20registry\x20JSON:\x20','normalizedManifest','7FnepqH','reduce','$.services[','3387534MxAanr','source','invalid','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','name','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','homeDirName','sourceHash','commandCount','object','Unsupported\x20schemaVersion:\x20','update','serviceCode','manifest','target','find','].manifest.'];a42_0x2c91=function(){return _0x17f73d;};return a42_0x2c91();}export function getLocalServiceEntry(_0x58c869,_0x3e2ac0={}){const _0x35ee95=a42_0x3309;return readServiceRegistry(_0x3e2ac0)['services'][_0x35ee95(0x11d)](_0x347eec=>_0x347eec[_0x35ee95(0x11a)]===_0x58c869[_0x35ee95(0x156)]());}export function listLocalServiceTrees(_0x2793a4={}){const _0x561ce0=a42_0x3309;return readServiceRegistry(_0x2793a4)[_0x561ce0(0x151)][_0x561ce0(0x129)](_0x51f476=>_0x51f476[_0x561ce0(0x10a)]);}export function inspectServiceRegistry(_0x3728b5={}){const _0x4d9450=a42_0x3309,_0x4f1a9d=getServiceRegistryPath(_0x3728b5);if(!existsSync(_0x4f1a9d))return emptyServiceRegistryInspection(_0x4f1a9d,_0x4d9450(0x106),![]);try{const _0xbebdd2=readFileSync(_0x4f1a9d,_0x4d9450(0x134));if(!_0xbebdd2[_0x4d9450(0x156)]())return emptyServiceRegistryInspection(_0x4f1a9d,_0x4d9450(0x127),!![]);const _0x284b6b=JSON[_0x4d9450(0x133)](_0xbebdd2);if(_0x284b6b['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x4f1a9d,'invalid',!![]),'schemaVersion':_0x284b6b[_0x4d9450(0x142)],'message':_0x4d9450(0x118)+String(_0x284b6b['schemaVersion'])};if(!Array[_0x4d9450(0x141)](_0x284b6b[_0x4d9450(0x151)]))return{...emptyServiceRegistryInspection(_0x4f1a9d,_0x4d9450(0x110),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x284b6b[_0x4d9450(0x132)],'message':_0x4d9450(0x107)};const _0x463528=_0x284b6b[_0x4d9450(0x151)]['map'](summarizeLocalServiceEntry);return{'registryPath':_0x4f1a9d,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x284b6b[_0x4d9450(0x132)],'serviceCount':_0x463528[_0x4d9450(0x144)],'commandCount':_0x463528[_0x4d9450(0x10c)]((_0x50dc66,_0x1e2d53)=>_0x50dc66+_0x1e2d53[_0x4d9450(0x116)],0x0),'services':_0x463528};}catch(_0x4ff9e9){return{...emptyServiceRegistryInspection(_0x4f1a9d,_0x4d9450(0x110),!![]),'message':_0x4ff9e9 instanceof Error?_0x4ff9e9[_0x4d9450(0x159)]:String(_0x4ff9e9)};}}export function formatValidationFailure(_0x2f287c){const _0x50a1b9=a42_0x3309,_0x40808a=_0x2f287c[_0x50a1b9(0x105)]['map'](_0x508347=>_0x508347[_0x50a1b9(0x13a)]+':\x20'+_0x508347[_0x50a1b9(0x159)]);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x40808a[_0x50a1b9(0x138)]('\x0a');}function extractLoadedServiceManifests(_0x50b488,_0x5810d9){const _0x2fdec1=a42_0x3309;if(!isServiceRegistryLike(_0x50b488)){const _0x2afb0b=_0x50b488,{manifest:_0x1628af,errors:_0x27f179}=adaptServiceTreeManifestForLegacyFramework(_0x2afb0b),_0x35caac=validateServiceTreeManifest(_0x1628af),_0x44652c=mergeValidationErrors(_0x35caac,_0x27f179);return[{'manifest':_0x2afb0b,'report':_0x44652c,'normalizedManifest':_0x44652c['ok']?normalizeServiceTreeManifest(_0x1628af):undefined,'sourceHash':_0x5810d9}];}return _0x50b488[_0x2fdec1(0x151)]['map']((_0x42ca9b,_0x2f4496)=>{const _0x1a8077=_0x2fdec1,_0x9bd6de=isObjectRecord(_0x42ca9b)?_0x42ca9b[_0x1a8077(0x11b)]:undefined,{manifest:_0x50b71d,errors:_0xb78191}=adaptServiceTreeManifestForLegacyFramework(_0x9bd6de),_0x274422=validateServiceTreeManifest(_0x50b71d),_0x79fbca=mergeValidationErrors(_0x274422,_0xb78191),_0x2d2e44=isObjectRecord(_0x42ca9b)&&typeof _0x42ca9b[_0x1a8077(0x11a)]==='string'?_0x42ca9b[_0x1a8077(0x11a)]:undefined;return{'manifest':_0x9bd6de,'report':_0x79fbca,'normalizedManifest':_0x79fbca['ok']?normalizeServiceTreeManifest(_0x50b71d):undefined,'sourceHash':sha256(JSON['stringify'](_0x9bd6de,null,0x2)+'\x0a'),'registryIndex':_0x2f4496,'registryServiceCode':_0x2d2e44};});}function a42_0x3309(_0xde08aa,_0x368b47){_0xde08aa=_0xde08aa-0x105;const _0x2c91f6=a42_0x2c91();let _0x3309cc=_0x2c91f6[_0xde08aa];return _0x3309cc;}function mergeValidationErrors(_0x264427,_0x3d01d1){const _0x379a77=a42_0x3309,_0x593f6f=_0x264427[_0x379a77(0x105)][_0x379a77(0x129)](_0x5001a3=>_0x5001a3['message']==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x5001a3,'message':_0x379a77(0x12c)}:_0x5001a3),_0x3204e9=[..._0x3d01d1,..._0x593f6f];return{'ok':_0x3204e9[_0x379a77(0x144)]===0x0,'errors':_0x3204e9,'warnings':_0x264427['warnings']};}function aggregateValidationReports(_0x5a7d4f){const _0x54dc4b=a42_0x3309,_0x5d13c8=_0x5a7d4f['flatMap'](_0x445099=>_0x445099['registryIndex']===undefined?_0x445099[_0x54dc4b(0x147)][_0x54dc4b(0x105)]:_0x445099[_0x54dc4b(0x147)][_0x54dc4b(0x105)][_0x54dc4b(0x129)](_0x3c6059=>({..._0x3c6059,'path':prefixRegistryIssuePath(_0x445099[_0x54dc4b(0x15c)],_0x3c6059[_0x54dc4b(0x13a)])}))),_0x104ddc=_0x5a7d4f[_0x54dc4b(0x12e)](_0x4f56bd=>_0x4f56bd[_0x54dc4b(0x15c)]===undefined?_0x4f56bd['report'][_0x54dc4b(0x123)]:_0x4f56bd['report'][_0x54dc4b(0x123)][_0x54dc4b(0x129)](_0x230b2b=>({..._0x230b2b,'path':prefixRegistryIssuePath(_0x4f56bd[_0x54dc4b(0x15c)],_0x230b2b[_0x54dc4b(0x13a)])})));return{'ok':_0x5d13c8[_0x54dc4b(0x144)]===0x0,'errors':_0x5d13c8,'warnings':_0x104ddc};}function prefixRegistryIssuePath(_0x546121,_0x1a4f61){const _0x4f10be=a42_0x3309;if(_0x1a4f61==='$')return'$.services['+_0x546121+_0x4f10be(0x140);if(_0x1a4f61[_0x4f10be(0x120)]('$.'))return _0x4f10be(0x10d)+_0x546121+_0x4f10be(0x140)+_0x1a4f61[_0x4f10be(0x128)](0x1);if(_0x1a4f61['startsWith']('$['))return _0x4f10be(0x10d)+_0x546121+'].manifest'+_0x1a4f61[_0x4f10be(0x128)](0x1);return'$.services['+_0x546121+_0x4f10be(0x11e)+_0x1a4f61;}function isServiceRegistryLike(_0x5e1281){const _0x322448=a42_0x3309;return isObjectRecord(_0x5e1281)&&_0x5e1281['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x322448(0x141)](_0x5e1281[_0x322448(0x151)]);}function isObjectRecord(_0x59536e){const _0x4ddba0=a42_0x3309;return Boolean(_0x59536e)&&typeof _0x59536e===_0x4ddba0(0x117)&&!Array['isArray'](_0x59536e);}function emptyServiceRegistryInspection(_0x9bf41f,_0x5415fc,_0x3e63fd){return{'registryPath':_0x9bf41f,'exists':_0x3e63fd,'status':_0x5415fc,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x2e5e9e){const _0xa0a93b=a42_0x3309,_0x5bbded=_0x2e5e9e['normalizedManifest'],_0x4b120a=_0x5bbded['commands'][_0xa0a93b(0x129)](_0x2fc520=>({'path':_0x2fc520['cliPath'],'description':_0x2fc520[_0xa0a93b(0x126)],'risk':_0x2fc520[_0xa0a93b(0x14e)],'targetKind':_0x2fc520[_0xa0a93b(0x11c)][_0xa0a93b(0x122)],'targetCommand':_0x2fc520[_0xa0a93b(0x11c)][_0xa0a93b(0x13f)]}));return{'serviceCode':_0x2e5e9e[_0xa0a93b(0x11a)],'name':_0x5bbded['service']['name'],'description':_0x5bbded[_0xa0a93b(0x121)][_0xa0a93b(0x126)],'version':_0x2e5e9e[_0xa0a93b(0x125)],'importedAt':_0x2e5e9e[_0xa0a93b(0x139)],'source':_0x2e5e9e[_0xa0a93b(0x10f)],'commandCount':_0x4b120a['length'],'commands':_0x4b120a};}function sha256(_0x189cf9){const _0x3f3215=a42_0x3309;return createHash(_0x3f3215(0x12b))[_0x3f3215(0x119)](_0x189cf9)[_0x3f3215(0x14b)](_0x3f3215(0x15a));}
1
+ (function(_0x4d73f2,_0x579435){const _0x4c1225=a42_0x2030,_0xf2457=_0x4d73f2();while(!![]){try{const _0x4f5d03=-parseInt(_0x4c1225(0x235))/0x1+parseInt(_0x4c1225(0x20c))/0x2+parseInt(_0x4c1225(0x20e))/0x3*(parseInt(_0x4c1225(0x1f5))/0x4)+parseInt(_0x4c1225(0x205))/0x5+-parseInt(_0x4c1225(0x223))/0x6*(-parseInt(_0x4c1225(0x202))/0x7)+parseInt(_0x4c1225(0x212))/0x8*(-parseInt(_0x4c1225(0x237))/0x9)+-parseInt(_0x4c1225(0x1f1))/0xa;if(_0x4f5d03===_0x579435)break;else _0xf2457['push'](_0xf2457['shift']());}catch(_0x5496f4){_0xf2457['push'](_0xf2457['shift']());}}}(a42_0x4e58,0xf1da8));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='service.json';export function getServiceRegistryPath(_0x4fa982={}){const _0xb6a927=a42_0x2030;return resolve(_0x4fa982['homeDir']??homedir(),PRODUCT_CONFIG[_0xb6a927(0x1f0)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}function a42_0x2030(_0x5570e4,_0x89d831){_0x5570e4=_0x5570e4-0x1e9;const _0x4e5839=a42_0x4e58();let _0x20305d=_0x4e5839[_0x5570e4];return _0x20305d;}export function readServiceRegistry(_0x1009e8={}){const _0x442341=a42_0x2030,_0x5a4cd7=getServiceRegistryPath(_0x1009e8);if(!existsSync(_0x5a4cd7))return emptyServiceRegistry();try{const _0xf5b686=readFileSync(_0x5a4cd7,'utf8');if(!_0xf5b686['trim']())return emptyServiceRegistry();const _0x4cad12=JSON['parse'](_0xf5b686);if(_0x4cad12[_0x442341(0x22c)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x442341(0x20a)](_0x442341(0x1fc)+String(_0x4cad12[_0x442341(0x22c)]),_0x442341(0x1ef)+_0x5a4cd7+'.');if(!Array[_0x442341(0x22e)](_0x4cad12[_0x442341(0x21c)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x4cad12[_0x442341(0x21a)],'services':_0x4cad12[_0x442341(0x21c)]};}catch(_0x1d5fb9){if(_0x1d5fb9 instanceof Error&&_0x1d5fb9[_0x442341(0x1f7)]==='CliError')throw _0x1d5fb9;throw CliErrors[_0x442341(0x20a)](_0x442341(0x208)+_0x5a4cd7,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x56b136,_0x35c5c8={}){const _0x4ae182=a42_0x2030,_0x5f4194=getServiceRegistryPath(_0x35c5c8),_0x5bf432=dirname(_0x5f4194);!existsSync(_0x5bf432)&&mkdirSync(_0x5bf432,{'recursive':!![]});const _0x1343c8=_0x5f4194+_0x4ae182(0x221);try{writeFileSync(_0x1343c8,JSON[_0x4ae182(0x224)](_0x56b136,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x1343c8,_0x5f4194);}catch(_0x17b7df){try{unlinkSync(_0x1343c8);}catch{}if(_0x17b7df?.[_0x4ae182(0x231)]===_0x4ae182(0x236))throw CliErrors[_0x4ae182(0x20a)](_0x4ae182(0x23b)+_0x5f4194);throw _0x17b7df;}return _0x5f4194;}export function loadServiceManifestFromFile(_0x439de6){const _0x4be528=a42_0x2030,_0x50b61=resolve(_0x439de6);if(!existsSync(_0x50b61))throw CliErrors[_0x4be528(0x20a)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x439de6);let _0x261c72;const _0x188778=readFileSync(_0x50b61,_0x4be528(0x1ec));try{_0x261c72=JSON['parse'](_0x188778);}catch{throw CliErrors[_0x4be528(0x20a)](_0x4be528(0x239)+_0x439de6,_0x4be528(0x225));}const _0x2c4b26=sha256(_0x188778),_0x436fb9=extractLoadedServiceManifests(_0x261c72,_0x2c4b26),_0x139c56=aggregateValidationReports(_0x436fb9),_0x13da14=_0x436fb9[0x0];return{'filePath':_0x50b61,'hash':_0x2c4b26,'kind':isServiceRegistryLike(_0x261c72)?_0x4be528(0x209):_0x4be528(0x210),'manifest':_0x13da14?.[_0x4be528(0x210)]??_0x261c72,'report':_0x139c56,'normalizedManifest':_0x436fb9[_0x4be528(0x226)]===0x1?_0x13da14?.['normalizedManifest']:undefined,'manifests':_0x436fb9};}export function importServiceManifest(_0x418d7f,_0x2c7f13={}){const _0x271c66=a42_0x2030,_0x448329=loadServiceManifestFromFile(_0x418d7f);if(!_0x448329['report']['ok'])throw CliErrors[_0x271c66(0x20a)](formatValidationFailure(_0x448329[_0x271c66(0x200)]),_0x271c66(0x1fa));if(_0x448329[_0x271c66(0x216)][_0x271c66(0x226)]===0x0)throw CliErrors['validation'](_0x271c66(0x1eb),_0x271c66(0x21f));const _0x21da5f=readServiceRegistry(_0x2c7f13),_0x1613dc=(_0x2c7f13[_0x271c66(0x1f2)]??(()=>new Date()))()[_0x271c66(0x201)](),_0x58410f=[];let _0x3572d3=0x0,_0x59243a=0x0;for(const _0x42847f of _0x448329['manifests']){if(!_0x42847f['normalizedManifest'])continue;const _0x4033e2=_0x42847f[_0x271c66(0x218)][_0x271c66(0x21b)]['code'],_0x26fc79={'serviceCode':_0x4033e2,'version':_0x42847f['normalizedManifest'][_0x271c66(0x21e)],'importedAt':_0x1613dc,'source':{'type':_0x271c66(0x214),'path':_0x448329[_0x271c66(0x1fd)],'hash':_0x42847f['sourceHash']},'manifest':_0x42847f['manifest'],'normalizedManifest':_0x42847f[_0x271c66(0x218)]},_0x9cd9c9=_0x21da5f['services'][_0x271c66(0x22d)](_0x5ce22e=>_0x5ce22e[_0x271c66(0x222)]===_0x4033e2);_0x9cd9c9>=0x0?(_0x21da5f['services'][_0x9cd9c9]=_0x26fc79,_0x59243a++):(_0x21da5f['services'][_0x271c66(0x206)](_0x26fc79),_0x3572d3++),_0x58410f[_0x271c66(0x206)](_0x26fc79);}_0x21da5f['services'][_0x271c66(0x20b)]((_0x8afa82,_0x21eaf5)=>_0x8afa82[_0x271c66(0x222)]['localeCompare'](_0x21eaf5[_0x271c66(0x222)])),_0x21da5f[_0x271c66(0x21a)]=_0x1613dc;const _0x2256b7=writeServiceRegistry(_0x21da5f,_0x2c7f13);return{'registryPath':_0x2256b7,'entry':_0x58410f[0x0],'replaced':_0x58410f['length']===0x1?_0x59243a===0x1:_0x59243a>0x0,'entries':_0x58410f,'imported':_0x3572d3,'updated':_0x59243a,'serviceCount':_0x21da5f[_0x271c66(0x21c)][_0x271c66(0x226)]};}function a42_0x4e58(){const _0x545334=['2435666HcnqWg','string','3MUWdLz','startsWith','manifest','empty','27640TbelaI','message','file','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','manifests','slice','normalizedManifest','map','updatedAt','service','services','command','version','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','flatMap','.tmp','serviceCode','183762WJjMCT','stringify','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','length','update','Local\x20service\x20not\x20found:\x20','target','errors','warnings','schemaVersion','findIndex','isArray','missing','hex','code','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','].manifest','reduce','1936462aqWRcv','ENOENT','531XJQOnC','$.services[','Invalid\x20service\x20manifest\x20JSON:\x20','risk','Cannot\x20write\x20service\x20registry:\x20','registryIndex','commands','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','utf8','].manifest.','description','Remove\x20or\x20migrate\x20','homeDirName','16790520HqPWoF','now','trim','Unsupported\x20schemaVersion:\x20','6499840gyNkdg','commandCount','name','importedAt','bff\x20target\x20requires\x20functionName.','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','join','Unsupported\x20service\x20registry\x20schemaVersion:\x20','filePath','kind','invalid','report','toISOString','49meHQNY','path','source','8764045vWxhfO','push','sha256','Invalid\x20service\x20registry\x20JSON:\x20','registry','validation','sort'];a42_0x4e58=function(){return _0x545334;};return a42_0x4e58();}export function exportServiceManifest(_0x2f4b6e,_0x5ab781,_0x13de42={}){const _0x236d2e=a42_0x2030,_0xfff8a4=getServiceRegistryPath(_0x13de42),_0x429ab0=getLocalServiceEntry(_0x2f4b6e,_0x13de42);if(!_0x429ab0)throw CliErrors[_0x236d2e(0x20a)](_0x236d2e(0x228)+_0x2f4b6e,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x550dfb=resolve(_0x5ab781),_0x4560ef=dirname(_0x550dfb);return!existsSync(_0x4560ef)&&mkdirSync(_0x4560ef,{'recursive':!![]}),writeFileSync(_0x550dfb,JSON[_0x236d2e(0x224)](_0x429ab0['manifest'],null,0x2)+'\x0a',{'encoding':_0x236d2e(0x1ec),'mode':0x180}),{'registryPath':_0xfff8a4,'filePath':_0x550dfb,'entry':_0x429ab0};}export function removeServiceManifest(_0x395027,_0x86c377={}){const _0xba64e0=a42_0x2030,_0x541322=readServiceRegistry(_0x86c377),_0x27259c=_0x395027['trim'](),_0x58739c=_0x541322['services'][_0xba64e0(0x22d)](_0x33c9cb=>_0x33c9cb[_0xba64e0(0x222)]===_0x27259c);if(_0x58739c<0x0)throw CliErrors[_0xba64e0(0x20a)](_0xba64e0(0x228)+_0x27259c,_0xba64e0(0x232));const [_0xa82902]=_0x541322['services']['splice'](_0x58739c,0x1),_0x52f0df=(_0x86c377['now']??(()=>new Date()))()[_0xba64e0(0x201)]();_0x541322[_0xba64e0(0x21a)]=_0x52f0df;const _0x5ced9c=writeServiceRegistry(_0x541322,_0x86c377);return{'registryPath':_0x5ced9c,'entry':_0xa82902,'serviceCount':_0x541322[_0xba64e0(0x21c)]['length']};}export function listLocalServices(_0x2f5c40={}){const _0x320d40=a42_0x2030;return readServiceRegistry(_0x2f5c40)[_0x320d40(0x21c)];}export function getLocalServiceEntry(_0x541116,_0x3080e8={}){const _0x243cd3=a42_0x2030;return readServiceRegistry(_0x3080e8)[_0x243cd3(0x21c)]['find'](_0x4706e7=>_0x4706e7[_0x243cd3(0x222)]===_0x541116[_0x243cd3(0x1f3)]());}export function listLocalServiceTrees(_0x110765={}){const _0x2cb705=a42_0x2030;return readServiceRegistry(_0x110765)[_0x2cb705(0x21c)][_0x2cb705(0x219)](_0x355715=>_0x355715[_0x2cb705(0x218)]);}export function inspectServiceRegistry(_0x1a6b36={}){const _0x98bb9=a42_0x2030,_0x5ba0cb=getServiceRegistryPath(_0x1a6b36);if(!existsSync(_0x5ba0cb))return emptyServiceRegistryInspection(_0x5ba0cb,_0x98bb9(0x22f),![]);try{const _0x56fbce=readFileSync(_0x5ba0cb,_0x98bb9(0x1ec));if(!_0x56fbce[_0x98bb9(0x1f3)]())return emptyServiceRegistryInspection(_0x5ba0cb,_0x98bb9(0x211),!![]);const _0x3176ae=JSON['parse'](_0x56fbce);if(_0x3176ae[_0x98bb9(0x22c)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x5ba0cb,_0x98bb9(0x1ff),!![]),'schemaVersion':_0x3176ae[_0x98bb9(0x22c)],'message':_0x98bb9(0x1f4)+String(_0x3176ae[_0x98bb9(0x22c)])};if(!Array[_0x98bb9(0x22e)](_0x3176ae[_0x98bb9(0x21c)]))return{...emptyServiceRegistryInspection(_0x5ba0cb,_0x98bb9(0x1ff),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3176ae[_0x98bb9(0x21a)],'message':'services\x20must\x20be\x20an\x20array'};const _0x4a5157=_0x3176ae[_0x98bb9(0x21c)][_0x98bb9(0x219)](summarizeLocalServiceEntry);return{'registryPath':_0x5ba0cb,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3176ae[_0x98bb9(0x21a)],'serviceCount':_0x4a5157[_0x98bb9(0x226)],'commandCount':_0x4a5157[_0x98bb9(0x234)]((_0x3dc0e7,_0x360682)=>_0x3dc0e7+_0x360682[_0x98bb9(0x1f6)],0x0),'services':_0x4a5157};}catch(_0x347d9d){return{...emptyServiceRegistryInspection(_0x5ba0cb,_0x98bb9(0x1ff),!![]),'message':_0x347d9d instanceof Error?_0x347d9d['message']:String(_0x347d9d)};}}export function formatValidationFailure(_0x2f6e9a){const _0x146d17=a42_0x2030,_0xdeb9fa=_0x2f6e9a[_0x146d17(0x22a)][_0x146d17(0x219)](_0x4f3d02=>_0x4f3d02[_0x146d17(0x203)]+':\x20'+_0x4f3d02['message']);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0xdeb9fa[_0x146d17(0x1fb)]('\x0a');}function extractLoadedServiceManifests(_0x5544c7,_0x4becc6){const _0x3f2541=a42_0x2030;if(!isServiceRegistryLike(_0x5544c7)){const _0x450322=_0x5544c7,{manifest:_0x11d07b,errors:_0x440c90}=adaptServiceTreeManifestForLegacyFramework(_0x450322),_0x27c839=validateServiceTreeManifest(_0x11d07b),_0x292817=mergeValidationErrors(_0x27c839,_0x440c90);return[{'manifest':_0x450322,'report':_0x292817,'normalizedManifest':_0x292817['ok']?normalizeServiceTreeManifest(_0x11d07b):undefined,'sourceHash':_0x4becc6}];}return _0x5544c7[_0x3f2541(0x21c)][_0x3f2541(0x219)]((_0x1a2d8a,_0x10d965)=>{const _0x5b57da=_0x3f2541,_0x5656ec=isObjectRecord(_0x1a2d8a)?_0x1a2d8a[_0x5b57da(0x210)]:undefined,{manifest:_0x3481ed,errors:_0x10dd08}=adaptServiceTreeManifestForLegacyFramework(_0x5656ec),_0x3fce91=validateServiceTreeManifest(_0x3481ed),_0xba5589=mergeValidationErrors(_0x3fce91,_0x10dd08),_0x1a5ff2=isObjectRecord(_0x1a2d8a)&&typeof _0x1a2d8a[_0x5b57da(0x222)]===_0x5b57da(0x20d)?_0x1a2d8a[_0x5b57da(0x222)]:undefined;return{'manifest':_0x5656ec,'report':_0xba5589,'normalizedManifest':_0xba5589['ok']?normalizeServiceTreeManifest(_0x3481ed):undefined,'sourceHash':sha256(JSON['stringify'](_0x5656ec,null,0x2)+'\x0a'),'registryIndex':_0x10d965,'registryServiceCode':_0x1a5ff2};});}function mergeValidationErrors(_0x24012c,_0x46ebc8){const _0x351380=a42_0x2030,_0x53f9f8=_0x24012c[_0x351380(0x22a)][_0x351380(0x219)](_0x43ed48=>_0x43ed48[_0x351380(0x213)]===_0x351380(0x215)?{..._0x43ed48,'message':_0x351380(0x1f9)}:_0x43ed48),_0x56aaa8=[..._0x46ebc8,..._0x53f9f8];return{'ok':_0x56aaa8[_0x351380(0x226)]===0x0,'errors':_0x56aaa8,'warnings':_0x24012c[_0x351380(0x22b)]};}function aggregateValidationReports(_0x5bd696){const _0x11cd47=a42_0x2030,_0x2de7d6=_0x5bd696[_0x11cd47(0x220)](_0x4c98f1=>_0x4c98f1['registryIndex']===undefined?_0x4c98f1[_0x11cd47(0x200)][_0x11cd47(0x22a)]:_0x4c98f1['report'][_0x11cd47(0x22a)][_0x11cd47(0x219)](_0x439057=>({..._0x439057,'path':prefixRegistryIssuePath(_0x4c98f1[_0x11cd47(0x1e9)],_0x439057['path'])}))),_0x48b7c8=_0x5bd696['flatMap'](_0x160639=>_0x160639['registryIndex']===undefined?_0x160639[_0x11cd47(0x200)]['warnings']:_0x160639['report'][_0x11cd47(0x22b)][_0x11cd47(0x219)](_0xefb594=>({..._0xefb594,'path':prefixRegistryIssuePath(_0x160639[_0x11cd47(0x1e9)],_0xefb594['path'])})));return{'ok':_0x2de7d6[_0x11cd47(0x226)]===0x0,'errors':_0x2de7d6,'warnings':_0x48b7c8};}function prefixRegistryIssuePath(_0x58cd0f,_0x3d4e83){const _0xec7a8a=a42_0x2030;if(_0x3d4e83==='$')return _0xec7a8a(0x238)+_0x58cd0f+'].manifest';if(_0x3d4e83[_0xec7a8a(0x20f)]('$.'))return _0xec7a8a(0x238)+_0x58cd0f+'].manifest'+_0x3d4e83[_0xec7a8a(0x217)](0x1);if(_0x3d4e83[_0xec7a8a(0x20f)]('$['))return _0xec7a8a(0x238)+_0x58cd0f+_0xec7a8a(0x233)+_0x3d4e83['slice'](0x1);return _0xec7a8a(0x238)+_0x58cd0f+_0xec7a8a(0x1ed)+_0x3d4e83;}function isServiceRegistryLike(_0x20e5fc){const _0x18c137=a42_0x2030;return isObjectRecord(_0x20e5fc)&&_0x20e5fc['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x18c137(0x22e)](_0x20e5fc['services']);}function isObjectRecord(_0x343c60){return Boolean(_0x343c60)&&typeof _0x343c60==='object'&&!Array['isArray'](_0x343c60);}function emptyServiceRegistryInspection(_0x31ba18,_0x41668e,_0x10e4f0){return{'registryPath':_0x31ba18,'exists':_0x10e4f0,'status':_0x41668e,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x43dd7b){const _0x4f354e=a42_0x2030,_0x5bd575=_0x43dd7b[_0x4f354e(0x218)],_0x147d3e=_0x5bd575[_0x4f354e(0x1ea)][_0x4f354e(0x219)](_0x4c52b2=>({'path':_0x4c52b2['cliPath'],'description':_0x4c52b2[_0x4f354e(0x1ee)],'risk':_0x4c52b2[_0x4f354e(0x23a)],'targetKind':_0x4c52b2[_0x4f354e(0x229)][_0x4f354e(0x1fe)],'targetCommand':_0x4c52b2[_0x4f354e(0x229)][_0x4f354e(0x21d)]}));return{'serviceCode':_0x43dd7b[_0x4f354e(0x222)],'name':_0x5bd575[_0x4f354e(0x21b)][_0x4f354e(0x1f7)],'description':_0x5bd575[_0x4f354e(0x21b)][_0x4f354e(0x1ee)],'version':_0x43dd7b['version'],'importedAt':_0x43dd7b[_0x4f354e(0x1f8)],'source':_0x43dd7b[_0x4f354e(0x204)],'commandCount':_0x147d3e[_0x4f354e(0x226)],'commands':_0x147d3e};}function sha256(_0x126279){const _0x10722d=a42_0x2030;return createHash(_0x10722d(0x207))[_0x10722d(0x227)](_0x126279)['digest'](_0x10722d(0x230));}
@@ -1 +1 @@
1
- function a43_0x44b2(_0x41ecd0,_0x8f3300){_0x41ecd0=_0x41ecd0-0x129;const _0x59246f=a43_0x5924();let _0x44b2c1=_0x59246f[_0x41ecd0];return _0x44b2c1;}const a43_0x1c38d6=a43_0x44b2;(function(_0x50812f,_0x4dc117){const _0x567a00=a43_0x44b2,_0x2d3f1b=_0x50812f();while(!![]){try{const _0x1f9374=-parseInt(_0x567a00(0x14c))/0x1*(parseInt(_0x567a00(0x149))/0x2)+parseInt(_0x567a00(0x13a))/0x3*(parseInt(_0x567a00(0x142))/0x4)+-parseInt(_0x567a00(0x150))/0x5*(-parseInt(_0x567a00(0x144))/0x6)+-parseInt(_0x567a00(0x141))/0x7*(parseInt(_0x567a00(0x13d))/0x8)+-parseInt(_0x567a00(0x13b))/0x9*(-parseInt(_0x567a00(0x139))/0xa)+parseInt(_0x567a00(0x137))/0xb+parseInt(_0x567a00(0x147))/0xc;if(_0x1f9374===_0x4dc117)break;else _0x2d3f1b['push'](_0x2d3f1b['shift']());}catch(_0x2dcc76){_0x2d3f1b['push'](_0x2d3f1b['shift']());}}}(a43_0x5924,0xb4caf));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';function a43_0x5924(){const _0x15d3b1=['1615780MpQgEs','Skill\x20directory\x20already\x20exists:\x20','6PophYY','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','skillDir','18378864NrFwJF','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','223206KKmPgN','Refusing\x20to\x20overwrite\x20symlink:\x20','WRITE','11xPxGSa','bool','str','trim','3770555VtIgKv','validation','force','rendered','创建本地自包含的运行态\x20Skill\x20草稿','path','isDirectory','utf8','skill','map','skillName','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','content','create','将在本地生成一个自包含的\x20Skill\x20草稿目录;使用\x20--force\x20时会覆盖目录中同名的模板文件。确认界面不会展示本地路径。','893365CEYPnR','type','148890wsqwEz','3PIlCnD','144iRAEWM','name','56sgJJhT','target','isSymbolicLink','write','1040907lIoAHp'];a43_0x5924=function(){return _0x15d3b1;};return a43_0x5924();}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_0x1c38d6(0x130),'command':a43_0x1c38d6(0x135),'description':a43_0x1c38d6(0x12c),'risk':a43_0x1c38d6(0x140),'confirmationDescription':a43_0x1c38d6(0x136),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x2aadac){const _0x533c00=a43_0x1c38d6,_0x5660d0=buildSkillCreatePlan(_0x2aadac['str'](_0x533c00(0x13c)),_0x2aadac[_0x533c00(0x14e)](_0x533c00(0x138)),_0x2aadac[_0x533c00(0x14e)](_0x533c00(0x13e)));return{'method':_0x533c00(0x14b),'url':_0x5660d0['skillDir'],'body':{'skillName':_0x5660d0[_0x533c00(0x12b)][_0x533c00(0x132)],'type':_0x5660d0[_0x533c00(0x12b)][_0x533c00(0x138)],'selfContained':!![],'files':_0x5660d0[_0x533c00(0x12b)]['files'][_0x533c00(0x131)](_0x2b56ec=>_0x2b56ec[_0x533c00(0x12d)])},'description':_0x533c00(0x133)};},async 'execute'(_0x397f1c){const _0x4cc49e=a43_0x1c38d6,_0x26dc51=buildSkillCreatePlan(_0x397f1c[_0x4cc49e(0x14e)]('name'),_0x397f1c[_0x4cc49e(0x14e)](_0x4cc49e(0x138)),_0x397f1c['str']('target'));return writeSkillDraft(_0x26dc51,_0x397f1c[_0x4cc49e(0x14d)](_0x4cc49e(0x12a))),{'ok':!![],'data':{'skillName':_0x26dc51[_0x4cc49e(0x12b)][_0x4cc49e(0x132)],'type':_0x26dc51[_0x4cc49e(0x12b)][_0x4cc49e(0x138)],'dir':_0x26dc51[_0x4cc49e(0x146)],'files':_0x26dc51[_0x4cc49e(0x12b)]['files'][_0x4cc49e(0x131)](_0x11753d=>_0x11753d[_0x4cc49e(0x12d)])},'message':'Created\x20local\x20Skill\x20draft\x20'+_0x26dc51['rendered']['skillName']};}};function buildSkillCreatePlan(_0x4b5f70,_0x4914e2,_0x3b42d4){const _0xc14c7d=a43_0x1c38d6,_0x1234c3=_0x4914e2[_0xc14c7d(0x14f)](),_0x474c61=renderSkillTemplate({'skillName':_0x4b5f70,'type':_0x1234c3});!_0x1234c3&&writeCliSideChannelLine(_0xc14c7d(0x148));const _0x104d42=resolve(normalizeSkillTarget(_0x3b42d4));return{'rendered':_0x474c61,'targetRoot':_0x104d42,'skillDir':resolve(_0x104d42,_0x474c61[_0xc14c7d(0x132)])};}function normalizeSkillTarget(_0x4a6b06){const _0x5ee2b9=a43_0x1c38d6;return(_0x4a6b06||DEFAULT_SKILL_TARGET)[_0x5ee2b9(0x14f)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x4c5fc7,_0x2ed7af){const _0x2920d8=a43_0x1c38d6;if(existsSync(_0x4c5fc7[_0x2920d8(0x146)])){const _0x33cfc8=lstatSync(_0x4c5fc7['skillDir']);if(!_0x33cfc8[_0x2920d8(0x12e)]()||_0x33cfc8[_0x2920d8(0x13f)]())throw CliErrors[_0x2920d8(0x129)](_0x2920d8(0x145)+_0x4c5fc7['skillDir']);if(!_0x2ed7af)throw CliErrors['validation'](_0x2920d8(0x143)+_0x4c5fc7[_0x2920d8(0x146)],'Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.');}for(const _0x1b32e5 of _0x4c5fc7[_0x2920d8(0x12b)]['files']){const _0x4c2102=resolve(_0x4c5fc7[_0x2920d8(0x146)],_0x1b32e5[_0x2920d8(0x12d)]),_0x3121df=dirname(_0x4c2102);mkdirSync(_0x3121df,{'recursive':!![]});if(existsSync(_0x4c2102)&&lstatSync(_0x4c2102)[_0x2920d8(0x13f)]())throw CliErrors[_0x2920d8(0x129)](_0x2920d8(0x14a)+_0x4c2102);writeFileSync(_0x4c2102,_0x1b32e5[_0x2920d8(0x134)],_0x2920d8(0x12f));}}
1
+ const a43_0x5780a9=a43_0x25fa;(function(_0x301ab3,_0x4516f8){const _0x261d40=a43_0x25fa,_0x57414c=_0x301ab3();while(!![]){try{const _0x3c3d5e=parseInt(_0x261d40(0x111))/0x1+-parseInt(_0x261d40(0x11b))/0x2*(parseInt(_0x261d40(0x109))/0x3)+parseInt(_0x261d40(0x117))/0x4+-parseInt(_0x261d40(0x126))/0x5*(parseInt(_0x261d40(0x11e))/0x6)+parseInt(_0x261d40(0x104))/0x7+-parseInt(_0x261d40(0x114))/0x8+parseInt(_0x261d40(0x10e))/0x9;if(_0x3c3d5e===_0x4516f8)break;else _0x57414c['push'](_0x57414c['shift']());}catch(_0x318aa5){_0x57414c['push'](_0x57414c['shift']());}}}(a43_0x5193,0xccb0f));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';function a43_0x25fa(_0x425511,_0x48c39f){_0x425511=_0x425511-0x104;const _0x519308=a43_0x5193();let _0x25fa96=_0x519308[_0x425511];return _0x25fa96;}import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';function a43_0x5193(){const _0x2270f7=['files','1291599mCbAJp','isDirectory','WRITE','1488739frzQOB','map','skill','1840408cSBUSw','Refusing\x20to\x20overwrite\x20symlink:\x20','bool','1315688bJCsas','target','validation','utf8','1207538HpgaNl','skillDir','Created\x20local\x20Skill\x20draft\x20','6NXzGNA','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','str','isSymbolicLink','skillName','rendered','path','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','3464155NKJYCI','name','write','2827258BkVTeI','content','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','create','创建本地自包含的运行态\x20Skill\x20草稿','3SYLFyh','trim','type','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.'];a43_0x5193=function(){return _0x2270f7;};return a43_0x5193();}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_0x5780a9(0x113),'command':a43_0x5780a9(0x107),'description':a43_0x5780a9(0x108),'risk':a43_0x5780a9(0x128),'confirmationDescription':'将在本地生成一个自包含的\x20Skill\x20草稿目录;使用\x20--force\x20时会覆盖目录中同名的模板文件。确认界面不会展示本地路径。','requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x5c5daa){const _0x12b1c8=a43_0x5780a9,_0x4664dc=buildSkillCreatePlan(_0x5c5daa['str'](_0x12b1c8(0x127)),_0x5c5daa[_0x12b1c8(0x120)]('type'),_0x5c5daa['str']('target'));return{'method':_0x12b1c8(0x110),'url':_0x4664dc[_0x12b1c8(0x11c)],'body':{'skillName':_0x4664dc[_0x12b1c8(0x123)][_0x12b1c8(0x122)],'type':_0x4664dc[_0x12b1c8(0x123)][_0x12b1c8(0x10b)],'selfContained':!![],'files':_0x4664dc[_0x12b1c8(0x123)][_0x12b1c8(0x10d)][_0x12b1c8(0x112)](_0x2781f4=>_0x2781f4[_0x12b1c8(0x124)])},'description':_0x12b1c8(0x106)};},async 'execute'(_0x3a96d1){const _0x2f940b=a43_0x5780a9,_0x5df894=buildSkillCreatePlan(_0x3a96d1['str'](_0x2f940b(0x127)),_0x3a96d1['str'](_0x2f940b(0x10b)),_0x3a96d1[_0x2f940b(0x120)](_0x2f940b(0x118)));return writeSkillDraft(_0x5df894,_0x3a96d1[_0x2f940b(0x116)]('force')),{'ok':!![],'data':{'skillName':_0x5df894['rendered'][_0x2f940b(0x122)],'type':_0x5df894['rendered'][_0x2f940b(0x10b)],'dir':_0x5df894['skillDir'],'files':_0x5df894[_0x2f940b(0x123)][_0x2f940b(0x10d)]['map'](_0xaec65a=>_0xaec65a[_0x2f940b(0x124)])},'message':_0x2f940b(0x11d)+_0x5df894[_0x2f940b(0x123)]['skillName']};}};function buildSkillCreatePlan(_0x52fc21,_0x30997c,_0x391b5d){const _0x160939=a43_0x5780a9,_0x4bfd3c=_0x30997c[_0x160939(0x10a)](),_0x271d1b=renderSkillTemplate({'skillName':_0x52fc21,'type':_0x4bfd3c});!_0x4bfd3c&&writeCliSideChannelLine(_0x160939(0x10c));const _0x5d2872=resolve(normalizeSkillTarget(_0x391b5d));return{'rendered':_0x271d1b,'targetRoot':_0x5d2872,'skillDir':resolve(_0x5d2872,_0x271d1b[_0x160939(0x122)])};}function normalizeSkillTarget(_0x30336a){const _0xf7a638=a43_0x5780a9;return(_0x30336a||DEFAULT_SKILL_TARGET)[_0xf7a638(0x10a)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0xe54bbe,_0x3846dc){const _0x4bce45=a43_0x5780a9;if(existsSync(_0xe54bbe[_0x4bce45(0x11c)])){const _0x21d2ec=lstatSync(_0xe54bbe[_0x4bce45(0x11c)]);if(!_0x21d2ec[_0x4bce45(0x10f)]()||_0x21d2ec[_0x4bce45(0x121)]())throw CliErrors[_0x4bce45(0x119)](_0x4bce45(0x11f)+_0xe54bbe['skillDir']);if(!_0x3846dc)throw CliErrors[_0x4bce45(0x119)]('Skill\x20directory\x20already\x20exists:\x20'+_0xe54bbe[_0x4bce45(0x11c)],_0x4bce45(0x125));}for(const _0xa9b650 of _0xe54bbe[_0x4bce45(0x123)][_0x4bce45(0x10d)]){const _0x3b7831=resolve(_0xe54bbe[_0x4bce45(0x11c)],_0xa9b650['path']),_0xefb4ab=dirname(_0x3b7831);mkdirSync(_0xefb4ab,{'recursive':!![]});if(existsSync(_0x3b7831)&&lstatSync(_0x3b7831)[_0x4bce45(0x121)]())throw CliErrors['validation'](_0x4bce45(0x115)+_0x3b7831);writeFileSync(_0x3b7831,_0xa9b650[_0x4bce45(0x105)],_0x4bce45(0x11a));}}
@@ -1 +1 @@
1
- const a44_0x39ee07=a44_0x513b;(function(_0x568a0e,_0x229f63){const _0x19a091=a44_0x513b,_0x4b89a2=_0x568a0e();while(!![]){try{const _0x2e1626=parseInt(_0x19a091(0x107))/0x1+-parseInt(_0x19a091(0x11b))/0x2+parseInt(_0x19a091(0x11e))/0x3*(parseInt(_0x19a091(0x11c))/0x4)+-parseInt(_0x19a091(0x10f))/0x5+parseInt(_0x19a091(0x111))/0x6+parseInt(_0x19a091(0x115))/0x7*(-parseInt(_0x19a091(0xff))/0x8)+-parseInt(_0x19a091(0x112))/0x9;if(_0x2e1626===_0x229f63)break;else _0x4b89a2['push'](_0x4b89a2['shift']());}catch(_0x579229){_0x4b89a2['push'](_0x4b89a2['shift']());}}}(a44_0x581c,0xc0ae8));function a44_0x581c(){const _0x4e3bdc=['expected-diagram-revision','isInteger','Skill\x20diagram\x20validation\x20passed\x20for\x20','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','831665zxnatd','num','version','read','created','\x20is\x20unchanged.','expectedDiagramRevision','Updated','1248840YZgIjT','skill','2909958uLScwd','1163736Sldkoz','company','skillCode','28mAswPr','diagram-push','action','validation',';\x20next\x20write\x20expects\x20revision\x20','skill-code','889632JmBYrw','20YtfMoN','str','671694xLpnOo','diagram-validate','source-fingerprint','\x20Skill\x20diagram\x20for\x20','appCode','Created','trim','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','scope','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','Found\x20Skill\x20diagram\x20for\x20','found','diagram-file','1646072LoQPyP','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','Skill\x20diagram\x20for\x20','为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图'];a44_0x581c=function(){return _0x4e3bdc;};return a44_0x581c();}import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';import{readRequiredSkillDiagram}from'../diagram.js';function a44_0x513b(_0x529f9d,_0x4146ea){_0x529f9d=_0x529f9d-0xf9;const _0x581cee=a44_0x581c();let _0x513b8f=_0x581cee[_0x529f9d];return _0x513b8f;}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(_0x451ddb){const _0x4da746=a44_0x513b,_0x4c540=_0x451ddb['str'](_0x4da746(0x11a))[_0x4da746(0x124)](),_0xf1a98c=_0x451ddb[_0x4da746(0x11d)](_0x4da746(0x109))[_0x4da746(0x124)](),_0x1cc626=_0x451ddb[_0x4da746(0x11d)](_0x4da746(0xfa));if(!_0x4c540||!_0xf1a98c||_0x1cc626!=='personal'&&_0x1cc626!==_0x4da746(0x113))throw CliErrors[_0x4da746(0x118)](_0x4da746(0x100));return{'skillCode':_0x4c540,'version':_0xf1a98c,'scope':_0x1cc626};}async function readDiagramWriteInput(_0x297bca){const _0x323801=a44_0x513b,_0x20c628=_0x297bca[_0x323801(0x108)](_0x323801(0x103)),_0x463e41=_0x297bca[_0x323801(0x11d)](_0x323801(0x120))[_0x323801(0x124)]();if(!Number[_0x323801(0x104)](_0x20c628)||_0x20c628<0x0)throw CliErrors[_0x323801(0x118)]('--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.');if(!/^sha256:[0-9a-f]{64}$/['test'](_0x463e41))throw CliErrors[_0x323801(0x118)](_0x323801(0xfb));return{'expectedDiagramRevision':_0x20c628,'sourceFingerprint':_0x463e41,'diagram':await readRequiredSkillDiagram(_0x297bca[_0x323801(0x11d)](_0x323801(0xfe)))};}export const diagramValidateCommand={'service':a44_0x39ee07(0x110),'command':a44_0x39ee07(0x11f),'description':'Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','risk':a44_0x39ee07(0x10a),'flags':WRITE_FLAGS,async 'execute'(_0x5b1822){const _0x435660=a44_0x39ee07,_0x5e0aaa=readDiagramTarget(_0x5b1822),_0x1853f3=await validateRuntimeSkillVersionDiagram(_0x5b1822['appCode'],_0x5e0aaa[_0x435660(0x114)],_0x5e0aaa['version'],_0x5e0aaa[_0x435660(0xfa)],await readDiagramWriteInput(_0x5b1822));return{'ok':!![],'data':_0x1853f3,'message':_0x435660(0x105)+_0x5e0aaa[_0x435660(0x114)]+'@'+_0x5e0aaa[_0x435660(0x109)]+'.'};}};export const diagramPushCommand={'service':a44_0x39ee07(0x110),'command':a44_0x39ee07(0x116),'description':a44_0x39ee07(0x102),'risk':'write','confirmationDescription':'将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','flags':WRITE_FLAGS,async 'execute'(_0x206d8f){const _0x35e680=a44_0x39ee07,_0x4988a1=readDiagramTarget(_0x206d8f),_0x2b3b09=await putRuntimeSkillVersionDiagram(_0x206d8f['appCode'],_0x4988a1[_0x35e680(0x114)],_0x4988a1[_0x35e680(0x109)],_0x4988a1[_0x35e680(0xfa)],await readDiagramWriteInput(_0x206d8f));return{'ok':!![],'data':_0x2b3b09,'message':_0x2b3b09[_0x35e680(0x117)]==='unchanged'?_0x35e680(0x101)+_0x4988a1[_0x35e680(0x114)]+'@'+_0x4988a1[_0x35e680(0x109)]+_0x35e680(0x10c):(_0x2b3b09['action']===_0x35e680(0x10b)?_0x35e680(0x123):_0x35e680(0x10e))+_0x35e680(0x121)+_0x4988a1['skillCode']+'@'+_0x4988a1[_0x35e680(0x109)]+'.'};}};export const diagramShowCommand={'service':a44_0x39ee07(0x110),'command':'diagram-show','description':a44_0x39ee07(0x106),'risk':a44_0x39ee07(0x10a),'flags':TARGET_FLAGS,async 'execute'(_0xb0aebe){const _0x18c9e4=a44_0x39ee07,_0x8d7abb=readDiagramTarget(_0xb0aebe),_0x2c7667=await getRuntimeSkillVersionDiagram(_0xb0aebe[_0x18c9e4(0x122)],_0x8d7abb[_0x18c9e4(0x114)],_0x8d7abb[_0x18c9e4(0x109)],_0x8d7abb[_0x18c9e4(0xfa)]);return{'ok':!![],'data':_0x2c7667,'message':_0x2c7667[_0x18c9e4(0xfd)]?_0x18c9e4(0xfc)+_0x8d7abb[_0x18c9e4(0x114)]+'@'+_0x8d7abb[_0x18c9e4(0x109)]+_0x18c9e4(0x119)+_0x2c7667['expectedDiagramRevision']+'.':_0x18c9e4(0xf9)+_0x8d7abb[_0x18c9e4(0x114)]+'@'+_0x8d7abb[_0x18c9e4(0x109)]+';\x20first\x20write\x20expects\x20revision\x20'+_0x2c7667[_0x18c9e4(0x10d)]+'.'};}};
1
+ const a44_0x35de59=a44_0xcbda;function a44_0x5155(){const _0x1ed8ce=['Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','\x20is\x20unchanged.','source-fingerprint','action','29379YTrDCt','Created','skillCode','diagram-push','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','created','scope','6pZoYRi',';\x20next\x20write\x20expects\x20revision\x20','test','12EgCcIE','\x20Skill\x20diagram\x20for\x20','validation','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','expected-diagram-revision','diagram-validate','found','9yfYTCV','expectedDiagramRevision','str','appCode','5243768clesjY','diagram-show','84wYFQsr','version','Skill\x20diagram\x20validation\x20passed\x20for\x20','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','558242sEXvpD','skill','num','company','28370tTIGCM','diagram-file','Updated','216PIwiBM','skill-code','trim','328653uQulRP','isInteger','1929BnMfUs','33AKuPtD','read','370970EqDqPQ','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version'];a44_0x5155=function(){return _0x1ed8ce;};return a44_0x5155();}(function(_0x1506f9,_0x2e23ae){const _0x3abd54=a44_0xcbda,_0x28bed5=_0x1506f9();while(!![]){try{const _0x226ffd=parseInt(_0x3abd54(0x1c5))/0x1+-parseInt(_0x3abd54(0x1b3))/0x2*(parseInt(_0x3abd54(0x1d1))/0x3)+parseInt(_0x3abd54(0x1c0))/0x4*(-parseInt(_0x3abd54(0x1c9))/0x5)+-parseInt(_0x3abd54(0x1b0))/0x6*(parseInt(_0x3abd54(0x1db))/0x7)+-parseInt(_0x3abd54(0x1be))/0x8*(parseInt(_0x3abd54(0x1ba))/0x9)+-parseInt(_0x3abd54(0x1d4))/0xa*(-parseInt(_0x3abd54(0x1d2))/0xb)+-parseInt(_0x3abd54(0x1cc))/0xc*(-parseInt(_0x3abd54(0x1cf))/0xd);if(_0x226ffd===_0x2e23ae)break;else _0x28bed5['push'](_0x28bed5['shift']());}catch(_0x3a9bee){_0x28bed5['push'](_0x28bed5['shift']());}}}(a44_0x5155,0x53797));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(_0x1f8b7f){const _0x14fd19=a44_0xcbda,_0x72439b=_0x1f8b7f[_0x14fd19(0x1bc)](_0x14fd19(0x1cd))[_0x14fd19(0x1ce)](),_0x2992b7=_0x1f8b7f[_0x14fd19(0x1bc)](_0x14fd19(0x1c1))[_0x14fd19(0x1ce)](),_0x323577=_0x1f8b7f[_0x14fd19(0x1bc)](_0x14fd19(0x1af));if(!_0x72439b||!_0x2992b7||_0x323577!=='personal'&&_0x323577!==_0x14fd19(0x1c8))throw CliErrors[_0x14fd19(0x1b5)](_0x14fd19(0x1b6));return{'skillCode':_0x72439b,'version':_0x2992b7,'scope':_0x323577};}function a44_0xcbda(_0x4b26a3,_0x2061ad){_0x4b26a3=_0x4b26a3-0x1ad;const _0x5155dd=a44_0x5155();let _0xcbda2f=_0x5155dd[_0x4b26a3];return _0xcbda2f;}async function readDiagramWriteInput(_0x3ce15a){const _0x2b73ef=a44_0xcbda,_0x5d3a9a=_0x3ce15a[_0x2b73ef(0x1c7)](_0x2b73ef(0x1b7)),_0x1ea05d=_0x3ce15a[_0x2b73ef(0x1bc)](_0x2b73ef(0x1d9))[_0x2b73ef(0x1ce)]();if(!Number[_0x2b73ef(0x1d0)](_0x5d3a9a)||_0x5d3a9a<0x0)throw CliErrors[_0x2b73ef(0x1b5)](_0x2b73ef(0x1ad));if(!/^sha256:[0-9a-f]{64}$/[_0x2b73ef(0x1b2)](_0x1ea05d))throw CliErrors[_0x2b73ef(0x1b5)](_0x2b73ef(0x1c3));return{'expectedDiagramRevision':_0x5d3a9a,'sourceFingerprint':_0x1ea05d,'diagram':await readRequiredSkillDiagram(_0x3ce15a[_0x2b73ef(0x1bc)](_0x2b73ef(0x1ca)))};}export const diagramValidateCommand={'service':a44_0x35de59(0x1c6),'command':a44_0x35de59(0x1b8),'description':a44_0x35de59(0x1d5),'risk':'read','flags':WRITE_FLAGS,async 'execute'(_0x3a12ec){const _0x41282c=a44_0x35de59,_0x52ded0=readDiagramTarget(_0x3a12ec),_0xc13c5d=await validateRuntimeSkillVersionDiagram(_0x3a12ec['appCode'],_0x52ded0[_0x41282c(0x1dd)],_0x52ded0[_0x41282c(0x1c1)],_0x52ded0['scope'],await readDiagramWriteInput(_0x3a12ec));return{'ok':!![],'data':_0xc13c5d,'message':_0x41282c(0x1c2)+_0x52ded0[_0x41282c(0x1dd)]+'@'+_0x52ded0[_0x41282c(0x1c1)]+'.'};}};export const diagramPushCommand={'service':a44_0x35de59(0x1c6),'command':a44_0x35de59(0x1de),'description':a44_0x35de59(0x1c4),'risk':'write','confirmationDescription':'将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','flags':WRITE_FLAGS,async 'execute'(_0x30a270){const _0x48b848=a44_0x35de59,_0x390141=readDiagramTarget(_0x30a270),_0x3a7397=await putRuntimeSkillVersionDiagram(_0x30a270[_0x48b848(0x1bd)],_0x390141[_0x48b848(0x1dd)],_0x390141['version'],_0x390141[_0x48b848(0x1af)],await readDiagramWriteInput(_0x30a270));return{'ok':!![],'data':_0x3a7397,'message':_0x3a7397[_0x48b848(0x1da)]==='unchanged'?'Skill\x20diagram\x20for\x20'+_0x390141[_0x48b848(0x1dd)]+'@'+_0x390141[_0x48b848(0x1c1)]+_0x48b848(0x1d8):(_0x3a7397['action']===_0x48b848(0x1ae)?_0x48b848(0x1dc):_0x48b848(0x1cb))+_0x48b848(0x1b4)+_0x390141['skillCode']+'@'+_0x390141[_0x48b848(0x1c1)]+'.'};}};export const diagramShowCommand={'service':a44_0x35de59(0x1c6),'command':a44_0x35de59(0x1bf),'description':a44_0x35de59(0x1d6),'risk':a44_0x35de59(0x1d3),'flags':TARGET_FLAGS,async 'execute'(_0x5418bc){const _0x24a892=a44_0x35de59,_0x11640b=readDiagramTarget(_0x5418bc),_0x327093=await getRuntimeSkillVersionDiagram(_0x5418bc[_0x24a892(0x1bd)],_0x11640b['skillCode'],_0x11640b[_0x24a892(0x1c1)],_0x11640b[_0x24a892(0x1af)]);return{'ok':!![],'data':_0x327093,'message':_0x327093[_0x24a892(0x1b9)]?'Found\x20Skill\x20diagram\x20for\x20'+_0x11640b['skillCode']+'@'+_0x11640b['version']+_0x24a892(0x1b1)+_0x327093[_0x24a892(0x1bb)]+'.':_0x24a892(0x1d7)+_0x11640b[_0x24a892(0x1dd)]+'@'+_0x11640b[_0x24a892(0x1c1)]+';\x20first\x20write\x20expects\x20revision\x20'+_0x327093[_0x24a892(0x1bb)]+'.'};}};
@@ -1 +1 @@
1
- const a45_0x44f881=a45_0x4239;(function(_0x19fbac,_0x1cad95){const _0x3b8cc1=a45_0x4239,_0x4a8ade=_0x19fbac();while(!![]){try{const _0x13b022=-parseInt(_0x3b8cc1(0x189))/0x1+-parseInt(_0x3b8cc1(0x17e))/0x2*(-parseInt(_0x3b8cc1(0x17b))/0x3)+-parseInt(_0x3b8cc1(0x180))/0x4+parseInt(_0x3b8cc1(0x17d))/0x5*(-parseInt(_0x3b8cc1(0x19d))/0x6)+-parseInt(_0x3b8cc1(0x181))/0x7*(parseInt(_0x3b8cc1(0x199))/0x8)+-parseInt(_0x3b8cc1(0x194))/0x9+parseInt(_0x3b8cc1(0x19c))/0xa;if(_0x13b022===_0x1cad95)break;else _0x4a8ade['push'](_0x4a8ade['shift']());}catch(_0x5007a1){_0x4a8ade['push'](_0x4a8ade['shift']());}}}(a45_0x46a1,0x70025));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':a45_0x44f881(0x198),'command':a45_0x44f881(0x193),'description':a45_0x44f881(0x190),'risk':a45_0x44f881(0x176),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x48d0c8){return syncRuntimeSkills(_0x48d0c8);}};function a45_0x4239(_0x290f11,_0x2f351c){_0x290f11=_0x290f11-0x16d;const _0x46a1e2=a45_0x46a1();let _0x4239a1=_0x46a1e2[_0x290f11];return _0x4239a1;}function a45_0x46a1(){const _0x4f5df9=['3324078rjCNub','company','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','global','skill','120gmpbJM','filter','production','22159710urLXWJ','3406206RAjyYJ','action','scope','includes','code','map','removed','skillCode','trim','length','read','Installed\x20','\x20personal\x20and\x20','skillRoots','version','2300751TnENop','../../../skills/runtime-skill-sync.js','5EIKcpe','2qGucOF','project','684536yEnIJd','342279uEiUrF','appCode','force','flatMap','authRequired','../../../core/api-client.js','personal','unchanged','682467OewneM','reduce','envName','push','\x20company\x20Skill(s).','str','updated','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','skipped','bool','install'];a45_0x46a1=function(){return _0x4f5df9;};return a45_0x46a1();}async function syncRuntimeSkills(_0x2fc6bc){const _0x4bc388=a45_0x44f881,{downloadRuntimeSkillPackage:_0x361216,listRuntimeSkills:_0xa04555}=await import(_0x4bc388(0x186)),{linkEffectiveRuntimeSkills:_0x3485f0,materializeRuntimeSkill:_0x68e30,pruneStaleRuntimeSkillCache:_0x44ae5a,pruneStaleRuntimeSkillLinks:_0x19c712,resolveRuntimeSkillInstallTarget:_0x393d2b}=await import(_0x4bc388(0x17c)),_0x1d712b=_0x2fc6bc['str'](_0x4bc388(0x170)),_0x5405ce=normalizeSyncScopes(_0x2fc6bc[_0x4bc388(0x18e)](_0x4bc388(0x16e))),_0x33202a=_0x2fc6bc[_0x4bc388(0x18b)]??_0x4bc388(0x19b),_0x5b3c1b=_0x2fc6bc['accessKey'],_0x145e80=_0x2fc6bc['bool'](_0x4bc388(0x183));if(!_0x5b3c1b)throw CliErrors[_0x4bc388(0x185)](_0x4bc388(0x196));const _0x679648=_0x393d2b(_0x2fc6bc['appCode'],_0x2fc6bc[_0x4bc388(0x192)](_0x4bc388(0x17f))?_0x4bc388(0x17f):_0x4bc388(0x197)),_0x4dedce=_0x393d2b(_0x2fc6bc['appCode'],_0x679648[_0x4bc388(0x16e)]===_0x4bc388(0x17f)?'global':_0x4bc388(0x17f)),_0x3c58c4=await Promise['all'](_0x5405ce[_0x4bc388(0x171)](_0xb8df1a=>_0xa04555({'appCode':_0x2fc6bc[_0x4bc388(0x182)],'scope':_0xb8df1a,'code':_0x1d712b[_0x4bc388(0x174)]()||undefined}))),_0x30b361=_0x5405ce['includes']('personal')?_0x3c58c4['flatMap']((_0x37c956,_0x16aebb)=>_0x5405ce[_0x16aebb]===_0x4bc388(0x187)?_0x37c956['personal']:[]):[],_0x471ff1=_0x5405ce['includes'](_0x4bc388(0x195))?_0x3c58c4[_0x4bc388(0x184)]((_0x210e73,_0x5f49dc)=>_0x5405ce[_0x5f49dc]==='company'?_0x210e73[_0x4bc388(0x195)]:[]):[],_0x472175=new Set([..._0x30b361[_0x4bc388(0x171)](_0x10890e=>_0x10890e['skillCode']?.[_0x4bc388(0x174)]())[_0x4bc388(0x19a)](_0x2d9464=>Boolean(_0x2d9464)),..._0x471ff1[_0x4bc388(0x171)](_0x5d8724=>_0x5d8724[_0x4bc388(0x173)]?.['trim']())[_0x4bc388(0x19a)](_0x460b2c=>Boolean(_0x460b2c))]),_0x357785=_0x1d712b[_0x4bc388(0x174)]()?[_0x1d712b[_0x4bc388(0x174)]()]:undefined,_0x4d2186=_0x5405ce['length']===0x2&&_0x5405ce[_0x4bc388(0x16f)]('personal')&&_0x5405ce[_0x4bc388(0x16f)](_0x4bc388(0x195)),_0x406c29=_0x4d2186?_0x19c712(_0x679648,_0x472175,_0x357785):[],_0x4238db=_0x44ae5a({'env':_0x33202a,'accessKey':_0x5b3c1b,'appCode':_0x2fc6bc[_0x4bc388(0x182)],'activeSkillCodes':_0x472175,'pruneSkillCodes':_0x357785,'scopes':_0x5405ce,'protectedLinkRoots':_0x4dedce[_0x4bc388(0x179)]}),_0x33def5=[];for(const _0x2344d5 of _0x30b361){_0x33def5['push'](_0x68e30(_0x2344d5,_0x4bc388(0x187),{'env':_0x33202a,'accessKey':_0x5b3c1b,'appCode':_0x2fc6bc['appCode'],'force':_0x145e80,'packageBytes':await downloadSkillPackage(_0x2344d5,_0x4bc388(0x187),_0x2fc6bc[_0x4bc388(0x182)],_0x361216)}));}for(const _0x2ad0c2 of _0x471ff1){_0x33def5[_0x4bc388(0x18c)](_0x68e30(_0x2ad0c2,_0x4bc388(0x195),{'env':_0x33202a,'accessKey':_0x5b3c1b,'appCode':_0x2fc6bc[_0x4bc388(0x182)],'force':_0x145e80,'packageBytes':await downloadSkillPackage(_0x2ad0c2,_0x4bc388(0x195),_0x2fc6bc['appCode'],_0x361216)}));}const _0x13769d=_0x3485f0(_0x33def5,_0x679648),_0x24311e=countLinkActions(_0x13769d);return{'ok':!![],'data':{'appCode':_0x2fc6bc[_0x4bc388(0x182)],..._0x679648['scope']===_0x4bc388(0x17f)?{'installTarget':{'scope':_0x679648[_0x4bc388(0x16e)],'skillRoots':[..._0x679648[_0x4bc388(0x179)]]}}:{},'personal':_0x30b361[_0x4bc388(0x175)],'company':_0x471ff1[_0x4bc388(0x175)],'materialized':_0x33def5[_0x4bc388(0x175)],'links':{'total':_0x13769d['length'],'created':_0x24311e['created']??0x0,'updated':_0x24311e[_0x4bc388(0x18f)]??0x0,'unchanged':_0x24311e[_0x4bc388(0x188)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x406c29[_0x4bc388(0x19a)](_0x34e304=>_0x34e304[_0x4bc388(0x16d)]===_0x4bc388(0x172))['length'],'cacheDirs':_0x4238db[_0x4bc388(0x19a)](_0x37e8f9=>_0x37e8f9[_0x4bc388(0x16d)]==='removed')[_0x4bc388(0x175)],'skipped':[..._0x406c29,..._0x4238db][_0x4bc388(0x19a)](_0x42ebbf=>_0x42ebbf[_0x4bc388(0x16d)]===_0x4bc388(0x191))[_0x4bc388(0x175)]},'skills':{'personal':_0x30b361[_0x4bc388(0x171)](summarizeRuntimeSkill),'company':_0x471ff1[_0x4bc388(0x171)](summarizeRuntimeSkill)}},'message':_0x4bc388(0x177)+_0x30b361[_0x4bc388(0x175)]+_0x4bc388(0x178)+_0x471ff1['length']+_0x4bc388(0x18d)};}async function downloadSkillPackage(_0xcd6bc5,_0x2b7a09,_0xb5c57a,_0x3f158f){const _0x530d0e=a45_0x44f881,_0x10d570=_0xcd6bc5[_0x530d0e(0x17a)]?.[_0x530d0e(0x174)]();return _0x10d570?_0x3f158f(_0x2b7a09,_0xcd6bc5[_0x530d0e(0x173)],_0xb5c57a,_0x10d570):_0x3f158f(_0x2b7a09,_0xcd6bc5[_0x530d0e(0x173)],_0xb5c57a);}function countLinkActions(_0x7b818d){const _0xa726ab=a45_0x44f881;return _0x7b818d[_0xa726ab(0x18a)]((_0xca66e5,_0x4af272)=>{const _0x56acc4=_0xa726ab;return _0xca66e5[_0x4af272['action']]=(_0xca66e5[_0x4af272[_0x56acc4(0x16d)]]??0x0)+0x1,_0xca66e5;},{});}
1
+ const a45_0x38002a=a45_0x4014;(function(_0x1e662d,_0x3de983){const _0x577258=a45_0x4014,_0x35e5f5=_0x1e662d();while(!![]){try{const _0x25b596=parseInt(_0x577258(0xd5))/0x1+-parseInt(_0x577258(0xc1))/0x2*(-parseInt(_0x577258(0xc0))/0x3)+-parseInt(_0x577258(0xd0))/0x4+-parseInt(_0x577258(0xc3))/0x5*(parseInt(_0x577258(0xd9))/0x6)+parseInt(_0x577258(0xbf))/0x7*(parseInt(_0x577258(0xc9))/0x8)+-parseInt(_0x577258(0xc7))/0x9*(-parseInt(_0x577258(0xba))/0xa)+-parseInt(_0x577258(0xc2))/0xb*(parseInt(_0x577258(0xb8))/0xc);if(_0x25b596===_0x3de983)break;else _0x35e5f5['push'](_0x35e5f5['shift']());}catch(_0x2e1fea){_0x35e5f5['push'](_0x35e5f5['shift']());}}}(a45_0x5488,0x43cab));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';function a45_0x4014(_0x380a7e,_0x2d0e7a){_0x380a7e=_0x380a7e-0xb6;const _0x5488ef=a45_0x5488();let _0x40144b=_0x5488ef[_0x380a7e];return _0x40144b;}import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':a45_0x38002a(0xbb),'command':a45_0x38002a(0xbc),'description':a45_0x38002a(0xda),'risk':'read','requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x3ce722){return syncRuntimeSkills(_0x3ce722);}};function a45_0x5488(){const _0x38cecf=['includes','2198680IckbrZ','skillRoots','project','personal','\x20company\x20Skill(s).','273843TEGIoM','skipped','force','global','75954kFgHQD','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','updated','code','bool','skillCode','trim','company','created','envName','removed','flatMap','production','1620AoXMhN','scope','41770McxxbV','skill','install','unchanged','map','7jEyLZr','75FYqdim','19538xZhuqk','9603bmCymQ','45Nnovtt','filter','length','push','963UdBeIZ','../../../skills/runtime-skill-sync.js','752992CiKNGD','appCode','all','action','version','str'];a45_0x5488=function(){return _0x38cecf;};return a45_0x5488();}async function syncRuntimeSkills(_0x182896){const _0x36df48=a45_0x38002a,{downloadRuntimeSkillPackage:_0x17eb4e,listRuntimeSkills:_0x511e84}=await import('../../../core/api-client.js'),{linkEffectiveRuntimeSkills:_0x2deff6,materializeRuntimeSkill:_0x36d978,pruneStaleRuntimeSkillCache:_0x1e7726,pruneStaleRuntimeSkillLinks:_0x1c0cb4,resolveRuntimeSkillInstallTarget:_0x587132}=await import(_0x36df48(0xc8)),_0x489cd9=_0x182896[_0x36df48(0xce)](_0x36df48(0xdc)),_0x465bbf=normalizeSyncScopes(_0x182896[_0x36df48(0xce)]('scope')),_0x227efb=_0x182896[_0x36df48(0xe2)]??_0x36df48(0xb7),_0x211e80=_0x182896['accessKey'],_0x22ac36=_0x182896['bool'](_0x36df48(0xd7));if(!_0x211e80)throw CliErrors['authRequired']('Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.');const _0x55b94d=_0x587132(_0x182896[_0x36df48(0xca)],_0x182896[_0x36df48(0xdd)](_0x36df48(0xd2))?'project':_0x36df48(0xd8)),_0x1395c9=_0x587132(_0x182896[_0x36df48(0xca)],_0x55b94d[_0x36df48(0xb9)]===_0x36df48(0xd2)?'global':_0x36df48(0xd2)),_0xfd8988=await Promise[_0x36df48(0xcb)](_0x465bbf['map'](_0x61cb3=>_0x511e84({'appCode':_0x182896[_0x36df48(0xca)],'scope':_0x61cb3,'code':_0x489cd9[_0x36df48(0xdf)]()||undefined}))),_0x3d24a5=_0x465bbf[_0x36df48(0xcf)](_0x36df48(0xd3))?_0xfd8988[_0x36df48(0xb6)]((_0x3da843,_0x290f6a)=>_0x465bbf[_0x290f6a]==='personal'?_0x3da843[_0x36df48(0xd3)]:[]):[],_0x1c0b19=_0x465bbf[_0x36df48(0xcf)](_0x36df48(0xe0))?_0xfd8988[_0x36df48(0xb6)]((_0x20117c,_0x45b7b9)=>_0x465bbf[_0x45b7b9]==='company'?_0x20117c[_0x36df48(0xe0)]:[]):[],_0x10ca14=new Set([..._0x3d24a5['map'](_0x146edb=>_0x146edb[_0x36df48(0xde)]?.[_0x36df48(0xdf)]())[_0x36df48(0xc4)](_0x1fab0f=>Boolean(_0x1fab0f)),..._0x1c0b19[_0x36df48(0xbe)](_0xaf59a4=>_0xaf59a4[_0x36df48(0xde)]?.['trim']())[_0x36df48(0xc4)](_0x326329=>Boolean(_0x326329))]),_0x4ad4d0=_0x489cd9[_0x36df48(0xdf)]()?[_0x489cd9[_0x36df48(0xdf)]()]:undefined,_0x39c5d6=_0x465bbf[_0x36df48(0xc5)]===0x2&&_0x465bbf[_0x36df48(0xcf)]('personal')&&_0x465bbf[_0x36df48(0xcf)](_0x36df48(0xe0)),_0x4eaf26=_0x39c5d6?_0x1c0cb4(_0x55b94d,_0x10ca14,_0x4ad4d0):[],_0x30566e=_0x1e7726({'env':_0x227efb,'accessKey':_0x211e80,'appCode':_0x182896[_0x36df48(0xca)],'activeSkillCodes':_0x10ca14,'pruneSkillCodes':_0x4ad4d0,'scopes':_0x465bbf,'protectedLinkRoots':_0x1395c9[_0x36df48(0xd1)]}),_0x47c41f=[];for(const _0x237c63 of _0x3d24a5){_0x47c41f[_0x36df48(0xc6)](_0x36d978(_0x237c63,'personal',{'env':_0x227efb,'accessKey':_0x211e80,'appCode':_0x182896[_0x36df48(0xca)],'force':_0x22ac36,'packageBytes':await downloadSkillPackage(_0x237c63,_0x36df48(0xd3),_0x182896[_0x36df48(0xca)],_0x17eb4e)}));}for(const _0x4a0144 of _0x1c0b19){_0x47c41f['push'](_0x36d978(_0x4a0144,'company',{'env':_0x227efb,'accessKey':_0x211e80,'appCode':_0x182896['appCode'],'force':_0x22ac36,'packageBytes':await downloadSkillPackage(_0x4a0144,_0x36df48(0xe0),_0x182896['appCode'],_0x17eb4e)}));}const _0x43cccb=_0x2deff6(_0x47c41f,_0x55b94d),_0xc1bd6e=countLinkActions(_0x43cccb);return{'ok':!![],'data':{'appCode':_0x182896[_0x36df48(0xca)],..._0x55b94d[_0x36df48(0xb9)]===_0x36df48(0xd2)?{'installTarget':{'scope':_0x55b94d['scope'],'skillRoots':[..._0x55b94d[_0x36df48(0xd1)]]}}:{},'personal':_0x3d24a5['length'],'company':_0x1c0b19['length'],'materialized':_0x47c41f[_0x36df48(0xc5)],'links':{'total':_0x43cccb[_0x36df48(0xc5)],'created':_0xc1bd6e[_0x36df48(0xe1)]??0x0,'updated':_0xc1bd6e[_0x36df48(0xdb)]??0x0,'unchanged':_0xc1bd6e[_0x36df48(0xbd)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x4eaf26[_0x36df48(0xc4)](_0x1d53f1=>_0x1d53f1[_0x36df48(0xcc)]===_0x36df48(0xe3))[_0x36df48(0xc5)],'cacheDirs':_0x30566e[_0x36df48(0xc4)](_0x50f8f1=>_0x50f8f1[_0x36df48(0xcc)]===_0x36df48(0xe3))[_0x36df48(0xc5)],'skipped':[..._0x4eaf26,..._0x30566e][_0x36df48(0xc4)](_0x1e8daa=>_0x1e8daa[_0x36df48(0xcc)]===_0x36df48(0xd6))[_0x36df48(0xc5)]},'skills':{'personal':_0x3d24a5['map'](summarizeRuntimeSkill),'company':_0x1c0b19[_0x36df48(0xbe)](summarizeRuntimeSkill)}},'message':'Installed\x20'+_0x3d24a5[_0x36df48(0xc5)]+'\x20personal\x20and\x20'+_0x1c0b19[_0x36df48(0xc5)]+_0x36df48(0xd4)};}async function downloadSkillPackage(_0x3ee42a,_0x5ed8b8,_0x1dead4,_0x2e163f){const _0x2f6bce=a45_0x38002a,_0x20964b=_0x3ee42a[_0x2f6bce(0xcd)]?.[_0x2f6bce(0xdf)]();return _0x20964b?_0x2e163f(_0x5ed8b8,_0x3ee42a[_0x2f6bce(0xde)],_0x1dead4,_0x20964b):_0x2e163f(_0x5ed8b8,_0x3ee42a[_0x2f6bce(0xde)],_0x1dead4);}function countLinkActions(_0x443e81){return _0x443e81['reduce']((_0x814da5,_0x41ca0c)=>{return _0x814da5[_0x41ca0c['action']]=(_0x814da5[_0x41ca0c['action']]??0x0)+0x1,_0x814da5;},{});}
@@ -1 +1 @@
1
- const a46_0x3654bd=a46_0x79e5;(function(_0xe06ae8,_0x34fd72){const _0x16eda1=a46_0x79e5,_0x3c14e3=_0xe06ae8();while(!![]){try{const _0x14403d=parseInt(_0x16eda1(0x1ad))/0x1+-parseInt(_0x16eda1(0x194))/0x2*(parseInt(_0x16eda1(0x195))/0x3)+parseInt(_0x16eda1(0x191))/0x4+-parseInt(_0x16eda1(0x1aa))/0x5+-parseInt(_0x16eda1(0x198))/0x6*(parseInt(_0x16eda1(0x18d))/0x7)+parseInt(_0x16eda1(0x19a))/0x8*(-parseInt(_0x16eda1(0x196))/0x9)+-parseInt(_0x16eda1(0x18e))/0xa*(-parseInt(_0x16eda1(0x190))/0xb);if(_0x14403d===_0x34fd72)break;else _0x3c14e3['push'](_0x3c14e3['shift']());}catch(_0xef8ec2){_0x3c14e3['push'](_0x3c14e3['shift']());}}}(a46_0x1e7f,0x90bba));function a46_0x79e5(_0x5d4dfb,_0x3bf167){_0x5d4dfb=_0x5d4dfb-0x18c;const _0x1e7fba=a46_0x1e7f();let _0x79e520=_0x1e7fba[_0x5d4dfb];return _0x79e520;}import{CliErrors}from'../../../errors.js';import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';function a46_0x1e7f(){const _0x3cea0d=['map','appCode','2723505wQldVv','global','length','101106OSwuol','str','filter','authRequired','28xQfEHv','70tKPVLy','local','2483459NXCTKy','2770580bryliy','accessKey','bool','2iGPFYF','1012617vURDer','15408LibsoJ','list','1251018BBcrqX','../../../core/api-client.js','304NvPhED','Listed\x20','\x20remote\x20Skill(s).','code','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','company','trim','skill','production','remote','personal','scope','../../../skills/runtime-skill-sync.js','project'];a46_0x1e7f=function(){return _0x3cea0d;};return a46_0x1e7f();}import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':a46_0x3654bd(0x1a1),'command':a46_0x3654bd(0x197),'description':a46_0x3654bd(0x19e),'risk':'read','flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x11ce43){const _0x5f26c6=a46_0x3654bd,_0x39d7b5=_0x11ce43[_0x5f26c6(0x1ae)](_0x5f26c6(0x19d)),_0x1eee77=normalizeListScope(_0x11ce43[_0x5f26c6(0x1ae)](_0x5f26c6(0x1a5)));if(_0x11ce43[_0x5f26c6(0x193)](_0x5f26c6(0x18f))){const _0x38564c=_0x11ce43[_0x5f26c6(0x192)];if(!_0x38564c)throw CliErrors[_0x5f26c6(0x18c)]();const {listLocalRuntimeSkills:_0x2a037a,resolveRuntimeSkillInstallTarget:_0x55cbcd}=await import(_0x5f26c6(0x1a6)),_0x2374e4=_0x55cbcd(_0x11ce43[_0x5f26c6(0x1a9)],_0x11ce43[_0x5f26c6(0x193)](_0x5f26c6(0x1a7))?_0x5f26c6(0x1a7):_0x5f26c6(0x1ab)),_0x11bfe5=_0x2a037a({'env':_0x11ce43['envName']??_0x5f26c6(0x1a2),'accessKey':_0x38564c,'appCode':_0x11ce43['appCode'],'scopes':listScopeToRuntimeScopes(_0x1eee77),'code':_0x39d7b5['trim']()||undefined},_0x2374e4),_0x380a14=groupLocalRuntimeSkills(_0x11bfe5);return{'ok':!![],'data':{'appCode':_0x11ce43[_0x5f26c6(0x1a9)],'source':_0x5f26c6(0x18f),..._0x2374e4['scope']===_0x5f26c6(0x1a7)?{'installScope':_0x2374e4[_0x5f26c6(0x1a5)]}:{},'scope':_0x1eee77,'total':_0x11bfe5[_0x5f26c6(0x1ac)],'personal':_0x380a14[_0x5f26c6(0x1a4)][_0x5f26c6(0x1ac)],'company':_0x380a14[_0x5f26c6(0x19f)][_0x5f26c6(0x1ac)],'items':_0x11bfe5[_0x5f26c6(0x1a8)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x380a14[_0x5f26c6(0x1a4)][_0x5f26c6(0x1a8)](summarizeLocalRuntimeSkill),'company':_0x380a14['company'][_0x5f26c6(0x1a8)](summarizeLocalRuntimeSkill)}},'message':_0x5f26c6(0x19b)+_0x11bfe5[_0x5f26c6(0x1ac)]+'\x20local\x20Skill(s).'};}const {listRuntimeSkills:_0x5f007f}=await import(_0x5f26c6(0x199)),_0xbd8035=await _0x5f007f({'appCode':_0x11ce43[_0x5f26c6(0x1a9)],'scope':listScopeToRemoteScope(_0x1eee77),'code':_0x39d7b5[_0x5f26c6(0x1a0)]()||undefined}),_0x28f469=shouldListScope(_0x1eee77,_0x5f26c6(0x1a4))?_0xbd8035[_0x5f26c6(0x1a4)]??[]:[],_0x52a035=shouldListScope(_0x1eee77,'company')?_0xbd8035[_0x5f26c6(0x19f)]??[]:[],_0x2ba8dd=[..._0x28f469,..._0x52a035];return{'ok':!![],'data':{'appCode':_0x11ce43[_0x5f26c6(0x1a9)],'source':_0x5f26c6(0x1a3),'scope':_0x1eee77,'total':_0x2ba8dd[_0x5f26c6(0x1ac)],'personal':_0x28f469[_0x5f26c6(0x1ac)],'company':_0x52a035['length'],'items':_0x2ba8dd[_0x5f26c6(0x1a8)](summarizeRuntimeSkill),'skills':{'personal':_0x28f469[_0x5f26c6(0x1a8)](summarizeRuntimeSkill),'company':_0x52a035[_0x5f26c6(0x1a8)](summarizeRuntimeSkill)}},'message':_0x5f26c6(0x19b)+_0x2ba8dd[_0x5f26c6(0x1ac)]+_0x5f26c6(0x19c)};}};function groupLocalRuntimeSkills(_0x434b05){const _0x11137c=a46_0x3654bd;return{'personal':_0x434b05['filter'](_0x5f55fd=>_0x5f55fd[_0x11137c(0x1a5)]===_0x11137c(0x1a4)),'company':_0x434b05[_0x11137c(0x1af)](_0x21ea26=>_0x21ea26['scope']===_0x11137c(0x19f)),'builtin':_0x434b05['filter'](_0x310116=>_0x310116['scope']==='builtin')};}
1
+ const a46_0x4fc6d9=a46_0x2d69;(function(_0xf5dfde,_0x2180d8){const _0x38b737=a46_0x2d69,_0x353ef4=_0xf5dfde();while(!![]){try{const _0x41c241=parseInt(_0x38b737(0x18a))/0x1*(parseInt(_0x38b737(0x188))/0x2)+-parseInt(_0x38b737(0x189))/0x3*(-parseInt(_0x38b737(0x176))/0x4)+parseInt(_0x38b737(0x18d))/0x5+parseInt(_0x38b737(0x18e))/0x6+parseInt(_0x38b737(0x17d))/0x7*(parseInt(_0x38b737(0x17e))/0x8)+-parseInt(_0x38b737(0x186))/0x9+-parseInt(_0x38b737(0x191))/0xa*(parseInt(_0x38b737(0x190))/0xb);if(_0x41c241===_0x2180d8)break;else _0x353ef4['push'](_0x353ef4['shift']());}catch(_0x16a1b1){_0x353ef4['push'](_0x353ef4['shift']());}}}(a46_0x483d,0x5006f));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';function a46_0x483d(){const _0x56eb70=['990545ZHQFap','829254SyrTjs','project','44RDfKnM','1164990ELXlXa','company','remote','accessKey','authRequired','builtin','1037156QwDmNr','../../../skills/runtime-skill-sync.js','str','filter','personal','trim','length','59318UcjdIn','416xisWfv','envName','read','scope','../../../core/api-client.js','local','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','map','2891817NimgJs','skill','10gfgmXY','3gQFHRa','15769nGzbDi','Listed\x20','appCode'];a46_0x483d=function(){return _0x56eb70;};return a46_0x483d();}import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';function a46_0x2d69(_0x18b18e,_0x3b1e3d){_0x18b18e=_0x18b18e-0x173;const _0x483d12=a46_0x483d();let _0x2d695b=_0x483d12[_0x18b18e];return _0x2d695b;}import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':a46_0x4fc6d9(0x187),'command':'list','description':a46_0x4fc6d9(0x184),'risk':a46_0x4fc6d9(0x180),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x2cc343){const _0x3f6eca=a46_0x4fc6d9,_0x443a03=_0x2cc343[_0x3f6eca(0x178)]('code'),_0x1b2bed=normalizeListScope(_0x2cc343[_0x3f6eca(0x178)](_0x3f6eca(0x181)));if(_0x2cc343['bool'](_0x3f6eca(0x183))){const _0xa4918e=_0x2cc343[_0x3f6eca(0x173)];if(!_0xa4918e)throw CliErrors[_0x3f6eca(0x174)]();const {listLocalRuntimeSkills:_0x86591f,resolveRuntimeSkillInstallTarget:_0xf2e0f8}=await import(_0x3f6eca(0x177)),_0x285de5=_0xf2e0f8(_0x2cc343[_0x3f6eca(0x18c)],_0x2cc343['bool']('project')?_0x3f6eca(0x18f):'global'),_0x248ac0=_0x86591f({'env':_0x2cc343[_0x3f6eca(0x17f)]??'production','accessKey':_0xa4918e,'appCode':_0x2cc343['appCode'],'scopes':listScopeToRuntimeScopes(_0x1b2bed),'code':_0x443a03[_0x3f6eca(0x17b)]()||undefined},_0x285de5),_0x26788b=groupLocalRuntimeSkills(_0x248ac0);return{'ok':!![],'data':{'appCode':_0x2cc343['appCode'],'source':_0x3f6eca(0x183),..._0x285de5['scope']===_0x3f6eca(0x18f)?{'installScope':_0x285de5['scope']}:{},'scope':_0x1b2bed,'total':_0x248ac0[_0x3f6eca(0x17c)],'personal':_0x26788b[_0x3f6eca(0x17a)][_0x3f6eca(0x17c)],'company':_0x26788b[_0x3f6eca(0x192)]['length'],'items':_0x248ac0['map'](summarizeLocalRuntimeSkill),'skills':{'personal':_0x26788b['personal'][_0x3f6eca(0x185)](summarizeLocalRuntimeSkill),'company':_0x26788b[_0x3f6eca(0x192)][_0x3f6eca(0x185)](summarizeLocalRuntimeSkill)}},'message':'Listed\x20'+_0x248ac0[_0x3f6eca(0x17c)]+'\x20local\x20Skill(s).'};}const {listRuntimeSkills:_0x31e078}=await import(_0x3f6eca(0x182)),_0x40b906=await _0x31e078({'appCode':_0x2cc343['appCode'],'scope':listScopeToRemoteScope(_0x1b2bed),'code':_0x443a03[_0x3f6eca(0x17b)]()||undefined}),_0x24a322=shouldListScope(_0x1b2bed,_0x3f6eca(0x17a))?_0x40b906[_0x3f6eca(0x17a)]??[]:[],_0x36e6f5=shouldListScope(_0x1b2bed,_0x3f6eca(0x192))?_0x40b906['company']??[]:[],_0x3790d7=[..._0x24a322,..._0x36e6f5];return{'ok':!![],'data':{'appCode':_0x2cc343[_0x3f6eca(0x18c)],'source':_0x3f6eca(0x193),'scope':_0x1b2bed,'total':_0x3790d7[_0x3f6eca(0x17c)],'personal':_0x24a322[_0x3f6eca(0x17c)],'company':_0x36e6f5['length'],'items':_0x3790d7[_0x3f6eca(0x185)](summarizeRuntimeSkill),'skills':{'personal':_0x24a322[_0x3f6eca(0x185)](summarizeRuntimeSkill),'company':_0x36e6f5['map'](summarizeRuntimeSkill)}},'message':_0x3f6eca(0x18b)+_0x3790d7[_0x3f6eca(0x17c)]+'\x20remote\x20Skill(s).'};}};function groupLocalRuntimeSkills(_0x142883){const _0x2c421a=a46_0x4fc6d9;return{'personal':_0x142883[_0x2c421a(0x179)](_0x31543a=>_0x31543a[_0x2c421a(0x181)]===_0x2c421a(0x17a)),'company':_0x142883['filter'](_0x4ef0d8=>_0x4ef0d8[_0x2c421a(0x181)]===_0x2c421a(0x192)),'builtin':_0x142883['filter'](_0x24fe5d=>_0x24fe5d['scope']===_0x2c421a(0x175))};}
@@ -1 +1 @@
1
- const a47_0x3bfa55=a47_0x4986;function a47_0x4986(_0x36f8a7,_0x449426){_0x36f8a7=_0x36f8a7-0x96;const _0x2ce985=a47_0x2ce9();let _0x49866e=_0x2ce985[_0x36f8a7];return _0x49866e;}(function(_0x123ad1,_0x573ad8){const _0x22a78f=a47_0x4986,_0x151bd1=_0x123ad1();while(!![]){try{const _0x18f4f2=parseInt(_0x22a78f(0x9c))/0x1*(-parseInt(_0x22a78f(0x9d))/0x2)+parseInt(_0x22a78f(0x9f))/0x3*(parseInt(_0x22a78f(0x99))/0x4)+-parseInt(_0x22a78f(0xa2))/0x5+-parseInt(_0x22a78f(0xa0))/0x6+parseInt(_0x22a78f(0xa1))/0x7+parseInt(_0x22a78f(0x9a))/0x8*(-parseInt(_0x22a78f(0x9e))/0x9)+-parseInt(_0x22a78f(0xa3))/0xa*(-parseInt(_0x22a78f(0x96))/0xb);if(_0x18f4f2===_0x573ad8)break;else _0x151bd1['push'](_0x151bd1['shift']());}catch(_0x46b8f1){_0x151bd1['push'](_0x151bd1['shift']());}}}(a47_0x2ce9,0x7c3ac));import{CONFIRM_WARNINGS_FLAG,DIAGRAM_FILE_FLAG,DIR_FLAG,PUSH_SCOPE_FLAG}from'../flags.js';function a47_0x2ce9(){const _0x10559e=['4249630oghgnh','410zJszeC','skill','376761fcVvHI','write','将读取本地\x20Skill\x20内容:个人范围会立即保存并生效,公司范围会提交一个新版本进入审核。确认界面不会展示目录路径或\x20Skill\x20正文。','1121548oxATSA','11920zfTZKp','push','351497wqKcuj','2efmsKz','2889xmduBC','3RCyFVv','2184972uxBChC','6076287OhuKwy'];a47_0x2ce9=function(){return _0x10559e;};return a47_0x2ce9();}import{skillPushDryRun,skillPushExecute}from'../push-execute.js';export const pushCommand={'service':a47_0x3bfa55(0xa4),'command':a47_0x3bfa55(0x9b),'description':'将本地\x20Skill\x20目录推送到个人范围,或提交公司范围版本审核','risk':a47_0x3bfa55(0x97),'confirmationDescription':a47_0x3bfa55(0x98),'flags':[DIR_FLAG,DIAGRAM_FILE_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};
1
+ const a47_0x28db83=a47_0x57e2;(function(_0x162eaa,_0x3e852c){const _0x142d73=a47_0x57e2,_0x36a749=_0x162eaa();while(!![]){try{const _0x37e457=-parseInt(_0x142d73(0x1bc))/0x1+parseInt(_0x142d73(0x1b6))/0x2+parseInt(_0x142d73(0x1b9))/0x3*(parseInt(_0x142d73(0x1bb))/0x4)+parseInt(_0x142d73(0x1c2))/0x5*(parseInt(_0x142d73(0x1ba))/0x6)+-parseInt(_0x142d73(0x1c3))/0x7+parseInt(_0x142d73(0x1b7))/0x8+-parseInt(_0x142d73(0x1bd))/0x9;if(_0x37e457===_0x3e852c)break;else _0x36a749['push'](_0x36a749['shift']());}catch(_0x315c2e){_0x36a749['push'](_0x36a749['shift']());}}}(a47_0x4990,0x4c7bc));function a47_0x4990(){const _0x138ba3=['将本地\x20Skill\x20目录推送到个人范围,或提交公司范围版本审核','1128807KcyWWO','23964rApdYm','4KDGAZQ','151949AeoUGk','632799hKJBiq','write','将读取本地\x20Skill\x20内容:个人范围会立即保存并生效,公司范围会提交一个新版本进入审核。确认界面不会展示目录路径或\x20Skill\x20正文。','skill','push','290nVBwnn','3716454eArLTI','101640RrViAK','3261736lbgewW'];a47_0x4990=function(){return _0x138ba3;};return a47_0x4990();}import{CONFIRM_WARNINGS_FLAG,DIAGRAM_FILE_FLAG,DIR_FLAG,PUSH_SCOPE_FLAG}from'../flags.js';function a47_0x57e2(_0x33fe70,_0x941ecf){_0x33fe70=_0x33fe70-0x1b6;const _0x499020=a47_0x4990();let _0x57e233=_0x499020[_0x33fe70];return _0x57e233;}import{skillPushDryRun,skillPushExecute}from'../push-execute.js';export const pushCommand={'service':a47_0x28db83(0x1c0),'command':a47_0x28db83(0x1c1),'description':a47_0x28db83(0x1b8),'risk':a47_0x28db83(0x1be),'confirmationDescription':a47_0x28db83(0x1bf),'flags':[DIR_FLAG,DIAGRAM_FILE_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};
@@ -1 +1 @@
1
- const a48_0x382136=a48_0x5ce4;(function(_0x1a9d7d,_0x1f5a42){const _0x383b72=a48_0x5ce4,_0x238860=_0x1a9d7d();while(!![]){try{const _0x33a041=parseInt(_0x383b72(0x86))/0x1+parseInt(_0x383b72(0x8b))/0x2+parseInt(_0x383b72(0x81))/0x3*(parseInt(_0x383b72(0x7c))/0x4)+parseInt(_0x383b72(0x7b))/0x5+parseInt(_0x383b72(0x7f))/0x6+-parseInt(_0x383b72(0x82))/0x7+-parseInt(_0x383b72(0x88))/0x8;if(_0x33a041===_0x1f5a42)break;else _0x238860['push'](_0x238860['shift']());}catch(_0x4cdb6e){_0x238860['push'](_0x238860['shift']());}}}(a48_0x4821,0xc0568));import{DIR_FLAG,STRICT_FLAG}from'../flags.js';import{throwIfSkillValidationFailed,validateSkillDirectory}from'../validate.js';function a48_0x5ce4(_0x4005b8,_0x504e52){_0x4005b8=_0x4005b8-0x7b;const _0x48214e=a48_0x4821();let _0x5ce42a=_0x48214e[_0x4005b8];return _0x5ce42a;}export const validateCommand={'service':'skill','command':a48_0x382136(0x8a),'description':a48_0x382136(0x85),'risk':a48_0x382136(0x83),'requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x4f28d9){const _0x343619=a48_0x382136,_0x473b6d=_0x4f28d9[_0x343619(0x80)]('strict'),_0x36010f=validateSkillDirectory(_0x4f28d9[_0x343619(0x87)](_0x343619(0x89)),{'strict':_0x473b6d});return throwIfSkillValidationFailed(_0x36010f,_0x473b6d),{'ok':!![],'data':{'dir':_0x36010f[_0x343619(0x89)],'type':_0x36010f[_0x343619(0x7d)],'errors':_0x36010f['errors'],'warnings':_0x36010f[_0x343619(0x84)]},'message':_0x343619(0x7e)};}};function a48_0x4821(){const _0x156194=['Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','1230936ZukaYO','str','29567592nNmIiZ','dir','validate','2767142EenhuI','4008705HsPZjI','30812RCgldJ','type','Skill\x20validation\x20passed.','1735350IlIJoQ','bool','507yUzRxT','3664605zzDjXV','read','warnings'];a48_0x4821=function(){return _0x156194;};return a48_0x4821();}
1
+ const a48_0x17e8d6=a48_0x1130;(function(_0xe0a5eb,_0x4a483b){const _0x3b090d=a48_0x1130,_0x202f68=_0xe0a5eb();while(!![]){try{const _0x4f8154=-parseInt(_0x3b090d(0xc1))/0x1+-parseInt(_0x3b090d(0xd1))/0x2+-parseInt(_0x3b090d(0xc3))/0x3*(parseInt(_0x3b090d(0xc5))/0x4)+-parseInt(_0x3b090d(0xd0))/0x5*(parseInt(_0x3b090d(0xc6))/0x6)+-parseInt(_0x3b090d(0xc8))/0x7+-parseInt(_0x3b090d(0xbf))/0x8+-parseInt(_0x3b090d(0xc7))/0x9*(-parseInt(_0x3b090d(0xd2))/0xa);if(_0x4f8154===_0x4a483b)break;else _0x202f68['push'](_0x202f68['shift']());}catch(_0x37b2d4){_0x202f68['push'](_0x202f68['shift']());}}}(a48_0x2a4b,0x327cb));function a48_0x1130(_0x312024,_0x548797){_0x312024=_0x312024-0xbf;const _0x2a4be1=a48_0x2a4b();let _0x1130a9=_0x2a4be1[_0x312024];return _0x1130a9;}function a48_0x2a4b(){const _0x42af6e=['dir','Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','str','Skill\x20validation\x20passed.','type','bool','warnings','1643465dnsXRk','231798UjKjjV','20fGKAkB','1821808pjwPNI','skill','313950PLKkwE','errors','401055mVDeQA','validate','12HrENqz','6iLALQx','7607943TgWQJv','675752dEyEHH'];a48_0x2a4b=function(){return _0x42af6e;};return a48_0x2a4b();}import{DIR_FLAG,STRICT_FLAG}from'../flags.js';import{throwIfSkillValidationFailed,validateSkillDirectory}from'../validate.js';export const validateCommand={'service':a48_0x17e8d6(0xc0),'command':a48_0x17e8d6(0xc4),'description':a48_0x17e8d6(0xca),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x599eaa){const _0xca9972=a48_0x17e8d6,_0x1361db=_0x599eaa[_0xca9972(0xce)]('strict'),_0xfcb7b9=validateSkillDirectory(_0x599eaa[_0xca9972(0xcb)](_0xca9972(0xc9)),{'strict':_0x1361db});return throwIfSkillValidationFailed(_0xfcb7b9,_0x1361db),{'ok':!![],'data':{'dir':_0xfcb7b9['dir'],'type':_0xfcb7b9[_0xca9972(0xcd)],'errors':_0xfcb7b9[_0xca9972(0xc2)],'warnings':_0xfcb7b9[_0xca9972(0xcf)]},'message':_0xca9972(0xcc)};}};
@@ -1 +1 @@
1
- (function(_0x1d7562,_0x3d4873){const _0x3fb05b=a49_0x7568,_0x58b259=_0x1d7562();while(!![]){try{const _0x18c8f8=-parseInt(_0x3fb05b(0x90))/0x1+-parseInt(_0x3fb05b(0x8d))/0x2*(parseInt(_0x3fb05b(0x7f))/0x3)+parseInt(_0x3fb05b(0x91))/0x4+parseInt(_0x3fb05b(0x8e))/0x5+-parseInt(_0x3fb05b(0x85))/0x6+-parseInt(_0x3fb05b(0x8f))/0x7+parseInt(_0x3fb05b(0x88))/0x8;if(_0x18c8f8===_0x3d4873)break;else _0x58b259['push'](_0x58b259['shift']());}catch(_0x4e2ec1){_0x58b259['push'](_0x58b259['shift']());}}}(a49_0x3978,0x82a40));import{existsSync,readFileSync,statSync}from'node:fs';import{resolve}from'node:path';function a49_0x7568(_0x3a5889,_0x209fa8){_0x3a5889=_0x3a5889-0x7d;const _0x397888=a49_0x3978();let _0x75681=_0x397888[_0x3a5889];return _0x75681;}import{JSDOM}from'jsdom';import{CliErrors}from'../../errors.js';let mermaidApiPromise;export async function readRequiredSkillDiagram(_0x562498){const _0x49d2a2=a49_0x7568,_0x248616=_0x562498[_0x49d2a2(0x83)]();if(!_0x248616)throw CliErrors[_0x49d2a2(0x7d)]('--diagram-file\x20is\x20required\x20when\x20publishing\x20a\x20Skill\x20version.',_0x49d2a2(0x8b));let _0x34286f;if(_0x248616==='-')try{_0x34286f=readFileSync(0x0,_0x49d2a2(0x80));}catch{throw CliErrors[_0x49d2a2(0x7d)]('Unable\x20to\x20read\x20Mermaid\x20flowchart\x20from\x20standard\x20input.');}else{const _0x5004eb=resolve(_0x248616);if(!existsSync(_0x5004eb))throw CliErrors[_0x49d2a2(0x7d)](_0x49d2a2(0x86)+_0x5004eb);if(!statSync(_0x5004eb)['isFile']())throw CliErrors[_0x49d2a2(0x7d)](_0x49d2a2(0x8c)+_0x5004eb);_0x34286f=readFileSync(_0x5004eb,_0x49d2a2(0x80));}return{'schemaVersion':0x1,'mermaid':await validateAndCanonicalizeMermaid(_0x34286f)};}export async function validateAndCanonicalizeMermaid(_0x289a67){const _0x240dce=a49_0x7568,_0x6d1e01=_0x289a67['replace'](/\r\n/g,'\x0a')['replace'](/\r/g,'\x0a')[_0x240dce(0x84)](/\n+$/,'')+'\x0a';try{const _0x2ce455=await loadMermaidApi();await _0x2ce455[_0x240dce(0x82)](_0x6d1e01);}catch{throw diagramValidationError();}return _0x6d1e01;}function loadMermaidApi(){return mermaidApiPromise??=((async()=>{const _0x359e1f=a49_0x7568;if(!(_0x359e1f(0x7e)in globalThis)||!(_0x359e1f(0x87)in globalThis)){const _0x4a27d3=new JSDOM('');Object[_0x359e1f(0x8a)](globalThis,{'window':{'configurable':!![],'value':_0x4a27d3[_0x359e1f(0x7e)]},'document':{'configurable':!![],'value':_0x4a27d3[_0x359e1f(0x7e)]['document']}});}return(await import('mermaid'))[_0x359e1f(0x92)];})()),mermaidApiPromise;}function a49_0x3978(){const _0x214eec=['Fix\x20the\x20Mermaid\x20syntax\x20reported\x20by\x20your\x20editor\x20or\x20preview\x20tool,\x20then\x20retry\x20with\x20the\x20same\x20file.','defineProperties','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','179752VdPiJH','148680SETjCa','2621500sPSDnf','570408zLYrfi','4144092XbuZqB','default','validation','window','30RnmbnZ','utf8','Mermaid\x20syntax\x20validation\x20failed.','parse','trim','replace','3463104uclWpT','Mermaid\x20flowchart\x20file\x20not\x20found:\x20','document','15121576QROTxc'];a49_0x3978=function(){return _0x214eec;};return a49_0x3978();}function diagramValidationError(){const _0x35c87f=a49_0x7568;return CliErrors[_0x35c87f(0x7d)](_0x35c87f(0x81),_0x35c87f(0x89));}
1
+ function a49_0x1c00(_0x190355,_0x2d3438){_0x190355=_0x190355-0x1bd;const _0xd1eb25=a49_0xd1eb();let _0x1c0065=_0xd1eb25[_0x190355];return _0x1c0065;}(function(_0x40f1d1,_0xfad583){const _0xe22442=a49_0x1c00,_0xe8ea5d=_0x40f1d1();while(!![]){try{const _0x1a3bef=-parseInt(_0xe22442(0x1be))/0x1*(-parseInt(_0xe22442(0x1c1))/0x2)+-parseInt(_0xe22442(0x1cf))/0x3*(parseInt(_0xe22442(0x1cb))/0x4)+parseInt(_0xe22442(0x1c2))/0x5+-parseInt(_0xe22442(0x1c5))/0x6+parseInt(_0xe22442(0x1c4))/0x7+parseInt(_0xe22442(0x1c0))/0x8+-parseInt(_0xe22442(0x1cc))/0x9;if(_0x1a3bef===_0xfad583)break;else _0xe8ea5d['push'](_0xe8ea5d['shift']());}catch(_0xcfbd12){_0xe8ea5d['push'](_0xe8ea5d['shift']());}}}(a49_0xd1eb,0x60783));import{existsSync,readFileSync,statSync}from'node:fs';import{resolve}from'node:path';import{JSDOM}from'jsdom';import{CliErrors}from'../../errors.js';function a49_0xd1eb(){const _0x4280b2=['mermaid','replace','validation','defineProperties','111044NUzmVB','4183389wkqPzl','Mermaid\x20flowchart\x20file\x20not\x20found:\x20','Unable\x20to\x20read\x20Mermaid\x20flowchart\x20from\x20standard\x20input.','57YWhOLk','isFile','parse','--diagram-file\x20is\x20required\x20when\x20publishing\x20a\x20Skill\x20version.','utf8','document','Mermaid\x20flowchart\x20path\x20is\x20not\x20a\x20regular\x20file:\x20','default','trim','1719JKbGAt','window','3920456rliHaM','674WKWpOU','1241715lWfsSs','Fix\x20the\x20Mermaid\x20syntax\x20reported\x20by\x20your\x20editor\x20or\x20preview\x20tool,\x20then\x20retry\x20with\x20the\x20same\x20file.','1439655ZSXsEe','815694PXMBDZ','Mermaid\x20syntax\x20validation\x20failed.'];a49_0xd1eb=function(){return _0x4280b2;};return a49_0xd1eb();}let mermaidApiPromise;export async function readRequiredSkillDiagram(_0x508ea3){const _0x24d60d=a49_0x1c00,_0x1ee26a=_0x508ea3[_0x24d60d(0x1bd)]();if(!_0x1ee26a)throw CliErrors[_0x24d60d(0x1c9)](_0x24d60d(0x1d2),'Generate\x20a\x20Mermaid\x20flowchart\x20and\x20pass\x20--diagram-file\x20<path>,\x20or\x20use\x20--diagram-file\x20-\x20for\x20standard\x20input.');let _0x42c062;if(_0x1ee26a==='-')try{_0x42c062=readFileSync(0x0,_0x24d60d(0x1d3));}catch{throw CliErrors['validation'](_0x24d60d(0x1ce));}else{const _0x401304=resolve(_0x1ee26a);if(!existsSync(_0x401304))throw CliErrors['validation'](_0x24d60d(0x1cd)+_0x401304);if(!statSync(_0x401304)[_0x24d60d(0x1d0)]())throw CliErrors['validation'](_0x24d60d(0x1d5)+_0x401304);_0x42c062=readFileSync(_0x401304,'utf8');}return{'schemaVersion':0x1,'mermaid':await validateAndCanonicalizeMermaid(_0x42c062)};}export async function validateAndCanonicalizeMermaid(_0x2daa3d){const _0x1eb6d4=a49_0x1c00,_0x7076a=_0x2daa3d[_0x1eb6d4(0x1c8)](/\r\n/g,'\x0a')[_0x1eb6d4(0x1c8)](/\r/g,'\x0a')[_0x1eb6d4(0x1c8)](/\n+$/,'')+'\x0a';try{const _0xc6b7c7=await loadMermaidApi();await _0xc6b7c7[_0x1eb6d4(0x1d1)](_0x7076a);}catch{throw diagramValidationError();}return _0x7076a;}function loadMermaidApi(){return mermaidApiPromise??=((async()=>{const _0x740c17=a49_0x1c00;if(!('window'in globalThis)||!('document'in globalThis)){const _0x4950d4=new JSDOM('');Object[_0x740c17(0x1ca)](globalThis,{'window':{'configurable':!![],'value':_0x4950d4[_0x740c17(0x1bf)]},'document':{'configurable':!![],'value':_0x4950d4[_0x740c17(0x1bf)][_0x740c17(0x1d4)]}});}return(await import(_0x740c17(0x1c7)))[_0x740c17(0x1d6)];})()),mermaidApiPromise;}function diagramValidationError(){const _0xe06fd1=a49_0x1c00;return CliErrors[_0xe06fd1(0x1c9)](_0xe06fd1(0x1c6),_0xe06fd1(0x1c3));}