@lovrabet/lovrabet-cli 2.2.3-beta.2 → 2.2.3

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 (138) 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/user-account/bind.js +1 -1
  66. package/lib/commands/user-account/index.js +1 -1
  67. package/lib/commands/workspace/index.js +1 -1
  68. package/lib/config/schema.js +1 -1
  69. package/lib/constant/app.js +1 -1
  70. package/lib/constant/auth-mode.js +1 -1
  71. package/lib/constant/cli.js +1 -1
  72. package/lib/constant/defaults.js +1 -1
  73. package/lib/constant/distribution.js +1 -1
  74. package/lib/constant/domain.js +1 -1
  75. package/lib/constant/env.js +1 -1
  76. package/lib/constant/output.js +1 -1
  77. package/lib/constant/product.js +1 -1
  78. package/lib/constant/risk.js +1 -1
  79. package/lib/constant/url.js +1 -1
  80. package/lib/context.js +1 -1
  81. package/lib/core/api-client.js +1 -1
  82. package/lib/core/db-resolver.js +1 -1
  83. package/lib/core/sdk-client.js +1 -1
  84. package/lib/errors.js +1 -1
  85. package/lib/framework/build-all-flags.js +1 -1
  86. package/lib/framework/dryrun.js +1 -1
  87. package/lib/framework/flags.js +1 -1
  88. package/lib/framework/help.js +1 -1
  89. package/lib/framework/index.js +1 -1
  90. package/lib/framework/output.js +1 -1
  91. package/lib/framework/preparse.js +1 -1
  92. package/lib/framework/rate-limit.js +1 -1
  93. package/lib/framework/raw-flags.js +1 -1
  94. package/lib/framework/response.js +1 -1
  95. package/lib/framework/runner-confirmation.js +1 -1
  96. package/lib/framework/runner-error.js +1 -1
  97. package/lib/framework/runner.js +1 -1
  98. package/lib/framework/schema-export.js +1 -1
  99. package/lib/framework/service-order.js +1 -1
  100. package/lib/framework/types.js +1 -1
  101. package/lib/generated/build-info.d.ts +4 -4
  102. package/lib/generated/build-info.js +1 -1
  103. package/lib/help.js +1 -1
  104. package/lib/postinstall.js +1 -1
  105. package/lib/runtime/confirmation.js +1 -1
  106. package/lib/runtime/event.js +1 -1
  107. package/lib/runtime/index.js +1 -1
  108. package/lib/runtime/queue.js +1 -1
  109. package/lib/runtime/resolve.js +1 -1
  110. package/lib/skills/builtin-skill.js +1 -1
  111. package/lib/skills/npx-skills-add.js +1 -1
  112. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  113. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  114. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  115. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  116. package/lib/skills/runtime-skill-sync/links.js +1 -1
  117. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  118. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  119. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  120. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  121. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  122. package/lib/skills/runtime-skill-sync/push.js +1 -1
  123. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  124. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  125. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  126. package/lib/skills/runtime-skill-sync.js +1 -1
  127. package/lib/skills/skill-presence.js +1 -1
  128. package/lib/utils/apply-jq-filter.js +1 -1
  129. package/lib/utils/logger.js +1 -1
  130. package/lib/utils/lossless-json.js +1 -1
  131. package/lib/utils/params.js +1 -1
  132. package/lib/utils/platform.js +1 -1
  133. package/lib/utils/update-notice.js +1 -1
  134. package/lib/utils/version.js +1 -1
  135. package/lib/utils/write-cli-side-channel.js +1 -1
  136. package/package.json +1 -1
  137. package/skills/lovrabet/SKILL.md +1 -1
  138. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- (function(_0x3c6422,_0x4b9c0b){const _0x45296e=a39_0x1893,_0x23de02=_0x3c6422();while(!![]){try{const _0x16beb4=parseInt(_0x45296e(0x1fe))/0x1+parseInt(_0x45296e(0x252))/0x2*(-parseInt(_0x45296e(0x248))/0x3)+-parseInt(_0x45296e(0x230))/0x4*(parseInt(_0x45296e(0x256))/0x5)+parseInt(_0x45296e(0x217))/0x6+-parseInt(_0x45296e(0x225))/0x7*(-parseInt(_0x45296e(0x229))/0x8)+parseInt(_0x45296e(0x201))/0x9+-parseInt(_0x45296e(0x241))/0xa;if(_0x16beb4===_0x4b9c0b)break;else _0x23de02['push'](_0x23de02['shift']());}catch(_0x23c4ee){_0x23de02['push'](_0x23de02['shift']());}}}(a39_0x4eb2,0x9f78e));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x566d0d,_0x1cdd18){const _0x56fccf=a39_0x1893,_0x53e920=listLocalServiceTrees();let _0x6949b2;for(const _0x1380b7 of _0x53e920){const _0x2fc83c=matchServiceTreeCommand(_0x1380b7,_0x566d0d);if(!_0x2fc83c)continue;(!_0x6949b2||_0x2fc83c[_0x56fccf(0x218)]['fullPath'][_0x56fccf(0x242)]>_0x6949b2[_0x56fccf(0x218)]['fullPath'][_0x56fccf(0x242)])&&(_0x6949b2={'tree':_0x1380b7,'command':_0x2fc83c['command'],'remainingArgs':_0x2fc83c[_0x56fccf(0x25d)]});}if(!_0x6949b2)return undefined;const _0x40c8e7={..._0x1cdd18};return applyAppBinding(_0x6949b2[_0x56fccf(0x250)],_0x6949b2[_0x56fccf(0x218)],_0x40c8e7),{'definition':buildDynamicCommandDefinition(_0x6949b2['tree'],_0x6949b2['command']),'args':_0x6949b2[_0x56fccf(0x25d)],'flags':_0x40c8e7,'tree':_0x6949b2[_0x56fccf(0x250)],'command':_0x6949b2['command']};}export function generateDynamicServiceHelp(_0x269808){const _0x4cccbd=a39_0x1893,_0x3e734f=listLocalServiceTrees()['find'](_0x4b3e2f=>_0x4b3e2f[_0x4cccbd(0x214)]['code']===_0x269808);if(!_0x3e734f)return undefined;const _0x87a584=[CLI_BIN_NAME+'\x20'+_0x269808+'\x20<command>\x20[flags]','',_0x3e734f[_0x4cccbd(0x214)]['name']||_0x269808,_0x3e734f['service']['description']?'\x20\x20'+_0x3e734f[_0x4cccbd(0x214)]['description']:'','',_0x4cccbd(0x1fc),..._0x3e734f['commands'][_0x4cccbd(0x1f5)](_0x29c773=>{const _0x4d8a00=_0x4cccbd,_0x458271=_0x29c773[_0x4d8a00(0x1fb)][_0x4d8a00(0x22e)](0x1)[_0x4d8a00(0x25b)]('\x20'),_0xad6f88=_0x29c773[_0x4d8a00(0x24c)]===_0x4d8a00(0x23d)?'':'\x20['+_0x29c773[_0x4d8a00(0x24c)]+']';return'\x20\x20'+_0x458271[_0x4d8a00(0x23f)](0x18)+'\x20'+(_0x29c773[_0x4d8a00(0x234)]||'')+_0xad6f88;}),'',_0x4cccbd(0x22d)+CLI_BIN_NAME+_0x4cccbd(0x228)+_0x269808+_0x4cccbd(0x208)][_0x4cccbd(0x1f9)](Boolean);return _0x87a584['join']('\x0a');}export function listDynamicServiceEntries(){const _0x3686a9=a39_0x1893;return listLocalServices()[_0x3686a9(0x1f5)](_0x5d7b84=>{const _0x145e79=_0x3686a9,_0x11659c=_0x5d7b84[_0x145e79(0x216)];return{'service':_0x11659c[_0x145e79(0x214)][_0x145e79(0x21e)],'label':_0x11659c[_0x145e79(0x214)][_0x145e79(0x205)]||_0x11659c[_0x145e79(0x214)][_0x145e79(0x21e)],'commands':_0x11659c[_0x145e79(0x212)][_0x145e79(0x1f5)](_0x5672a7=>({'command':dynamicCommandName(_0x5672a7),'description':_0x5672a7['description']||_0x145e79(0x24f)+_0x5672a7[_0x145e79(0x25c)],'tag':riskTag(_0x5672a7[_0x145e79(0x24c)])}))};});}export function getDynamicServiceEntry(_0x41be6d){const _0x4094e0=a39_0x1893;return listDynamicServiceEntries()[_0x4094e0(0x21a)](_0x26b95d=>_0x26b95d['service']===_0x41be6d);}export function listDynamicServiceDefinitions(_0x25057c){const _0x47b14c=a39_0x1893;return listLocalServiceTrees()['filter'](_0x32a1b8=>!_0x25057c||_0x32a1b8['service'][_0x47b14c(0x21e)]===_0x25057c)[_0x47b14c(0x20f)](_0x5a3007=>_0x5a3007[_0x47b14c(0x212)][_0x47b14c(0x1f5)](_0x4e103a=>buildDynamicCommandDefinition(_0x5a3007,_0x4e103a)));}export function getDynamicServiceDefinitions(_0x134940){const _0x36e9d8=a39_0x1893,_0x458a3a=listDynamicServiceDefinitions(_0x134940);return _0x458a3a[_0x36e9d8(0x242)]>0x0?_0x458a3a:undefined;}export function findDynamicServiceDefinition(_0x417b66,_0x28c3f2){const _0x37e090=a39_0x1893;return listDynamicServiceDefinitions(_0x417b66)[_0x37e090(0x21a)](_0x3ff45a=>_0x3ff45a[_0x37e090(0x218)]===_0x28c3f2);}export function buildDynamicCommandDefinition(_0x1d4fa1,_0x31c208){const _0x3b5012=a39_0x1893;return{'service':_0x1d4fa1[_0x3b5012(0x214)]['code'],'command':dynamicCommandName(_0x31c208),'description':_0x31c208[_0x3b5012(0x234)]||_0x3b5012(0x24f)+_0x31c208[_0x3b5012(0x25c)],'risk':_0x31c208[_0x3b5012(0x24c)],..._0x31c208[_0x3b5012(0x24c)]===_0x3b5012(0x23d)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x31c208)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x31c208[_0x3b5012(0x249)][_0x3b5012(0x1f5)](_0x55b4a6=>({'name':_0x55b4a6[_0x3b5012(0x205)],'description':_0x55b4a6['description']||_0x55b4a6['name'],'required':_0x55b4a6[_0x3b5012(0x23b)]})),'flags':_0x31c208[_0x3b5012(0x222)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x31c208),async 'dryRun'(_0x494388){const _0x47b2f2=_0x3b5012,_0x3fe3b1=await compilePlan(_0x31c208,_0x494388);return{'method':_0x47b2f2(0x22a),'url':_0x31c208[_0x47b2f2(0x25c)],'body':{'target':targetPreview(_0x3fe3b1),'params':_0x3fe3b1[_0x47b2f2(0x219)]},'description':_0x47b2f2(0x259)+_0x31c208[_0x47b2f2(0x25c)]};},async 'execute'(_0x542665){const _0x5337e4=_0x3b5012,_0x155868=await compilePlan(_0x31c208,_0x542665),_0x5883c3=Date['now'](),_0x1a13ad=await executePlan(_0x155868,_0x31c208,_0x542665),_0x57a689=Date['now']()-_0x5883c3;return{'ok':!![],'data':{'service':_0x1d4fa1[_0x5337e4(0x214)],'command':_0x31c208[_0x5337e4(0x25c)],'target':targetPreview(_0x155868),'result':_0x1a13ad,'elapsed':_0x57a689},'message':'Service\x20command\x20'+_0x31c208[_0x5337e4(0x25c)]+_0x5337e4(0x1f4)+_0x57a689+'ms'};}};}function buildDynamicConfirmationDescription(_0x4ad6a6){const _0x237de5=a39_0x1893,_0x13c3ef=_0x4ad6a6[_0x237de5(0x234)]||_0x4ad6a6['cliPath'],_0x38b49b=_0x4ad6a6['risk']===_0x237de5(0x251)?_0x237de5(0x1f8):_0x237de5(0x221);return _0x237de5(0x240)+_0x13c3ef+'”。'+_0x38b49b;}function a39_0x4eb2(){const _0x12ea48=['Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','datasetCode','Use\x20`','slice','ctx.','3196292WbcikL','appBindings','\x20\x20\x20\x20','json','description','boolean','some','data','\x20\x20\x20\x20datatable:\x20','mapTo','datatable','required','\x20->\x20','read','sqlCode','padEnd','将通过\x20Service\x20Tree\x20执行“','12451770sFChve','length','kind','appRef','\x20\x20\x20\x20datasetCode:\x20','env','appCode','3477qhbncJ','args','app','cliName','risk','push','scriptName','Run\x20service\x20command\x20','tree','high-risk-write','210nNMfOK','source','\x20\x20\x20\x20kind:\x20\x20\x20\x20','const','5NbGjpo','bffCode','target','Preview\x20dynamic\x20service\x20command:\x20','userId','join','cliPath','remainingArgs','\x20completed\x20in\x20','map','sql','entries','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','filter','enum','fullPath','Commands:','rawFlags','1051348KyMAIp','userName','fromEntries','1718865qxOPBz','bffId','string','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','name','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','bff','`\x20to\x20inspect\x20the\x20manifest.','appcode','\x20\x20SERVICE\x20TREE\x20TARGET','envName','default','number','operator','flatMap','\x20\x20[','Unknown\x20appRef\x20\x22','commands','startsWith','service','validation','normalizedManifest','7651266MjbewZ','command','params','find','\x22\x20in\x20service\x20command\x20','dbtableConfig','context.','code','Unsupported\x20service\x20target\x20kind:\x20','Service\x20command\x20','该命令被清单标记为写入,可能修改业务数据或服务状态。','flags','type','employeeId','44919XYOQph','\x20\x20\x20\x20command:\x20','nickName','\x20service\x20detail\x20--service\x20','376PTvgoL','SERVICE_TREE'];a39_0x4eb2=function(){return _0x12ea48;};return a39_0x4eb2();}function dynamicCommandName(_0x2292ef){const _0x2c928f=a39_0x1893;return _0x2292ef['fullPath'][_0x2c928f(0x22e)](0x1)[_0x2c928f(0x25b)]('\x20');}function riskTag(_0x546ea7){const _0xf0b22c=a39_0x1893;return _0x546ea7===_0xf0b22c(0x23d)?'':_0xf0b22c(0x210)+_0x546ea7+']';}function flagToCommandFlag(_0x1040aa){const _0x59b73f=a39_0x1893;return{'name':_0x1040aa[_0x59b73f(0x24b)],'type':_0x1040aa[_0x59b73f(0x223)]===_0x59b73f(0x233)?'string':_0x1040aa[_0x59b73f(0x223)],'description':_0x1040aa[_0x59b73f(0x234)]||_0x1040aa[_0x59b73f(0x205)],'required':_0x1040aa['required'],'default':isPrimitiveFlagDefault(_0x1040aa['default'])?_0x1040aa[_0x59b73f(0x20c)]:undefined,'enum':_0x1040aa[_0x59b73f(0x1fa)]};}async function compilePlan(_0x42d36f,_0x15f85b){const _0xde5b95=a39_0x1893;return compileServiceTreeCommand(_0x42d36f,{'flags':_0x15f85b[_0xde5b95(0x1fd)],'args':_0x15f85b[_0xde5b95(0x249)],'context':await buildServiceContext(_0x42d36f,_0x15f85b)});}async function buildServiceContext(_0x10c3d3,_0x7a042){const _0x47565e=a39_0x1893,_0x4f14f4={'appCode':_0x7a042['appCode'],'env':_0x7a042[_0x47565e(0x20b)],'envName':_0x7a042['envName']};if(!usesRuntimeContext(_0x10c3d3))return _0x4f14f4;const _0x41552a=await getLoginUserInfo(),_0x2217ec=pickFirst(_0x41552a[_0x47565e(0x25a)],_0x41552a['id']);return{..._0x4f14f4,'user':_0x41552a,'userId':_0x2217ec,'id':_0x41552a['id'],'username':pickFirst(_0x41552a['username'],_0x41552a['userName'],_0x41552a['loginName']),'userName':_0x41552a[_0x47565e(0x1ff)],'nickname':pickFirst(_0x41552a['nickname'],_0x41552a['nickName']),'nickName':_0x41552a[_0x47565e(0x227)],'tenantCode':_0x41552a['tenantCode'],'employeeId':_0x41552a[_0x47565e(0x224)]};}function usesRuntimeContext(_0x514196){const _0x305eb7=a39_0x1893;return _0x514196[_0x305eb7(0x239)][_0x305eb7(0x236)](_0x222fd7=>typeof _0x222fd7[_0x305eb7(0x253)]===_0x305eb7(0x203)&&(_0x222fd7[_0x305eb7(0x253)][_0x305eb7(0x213)](_0x305eb7(0x21d))||_0x222fd7[_0x305eb7(0x253)][_0x305eb7(0x213)](_0x305eb7(0x22f))));}function pickFirst(..._0xc4f8ef){return _0xc4f8ef['find'](_0x503d55=>_0x503d55!==undefined&&_0x503d55!==null);}async function executePlan(_0x3ebddb,_0x15622b,_0x40c036){const _0xb2ae45=a39_0x1893;if(_0x3ebddb[_0xb2ae45(0x243)]===_0xb2ae45(0x237)){const _0x3eeaaa=await resolveDatasetCode(_0x3ebddb,_0x15622b,_0x40c036);return executeData(_0x3eeaaa,_0x3ebddb[_0xb2ae45(0x218)],_0x3ebddb[_0xb2ae45(0x219)]);}if(_0x3ebddb[_0xb2ae45(0x243)]===_0xb2ae45(0x1f6)){if(!_0x3ebddb[_0xb2ae45(0x23e)])throw CliErrors[_0xb2ae45(0x215)](_0xb2ae45(0x220)+_0x15622b[_0xb2ae45(0x25c)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x3ebddb[_0xb2ae45(0x23e)],normalizeScalarParams(_0x3ebddb['params']));}if(_0x3ebddb['kind']===_0xb2ae45(0x207)){const _0x4f2344=_0x3ebddb[_0xb2ae45(0x24e)]||_0x3ebddb[_0xb2ae45(0x257)]||(_0x3ebddb['bffId']==null?'':String(_0x3ebddb[_0xb2ae45(0x202)]));if(!_0x4f2344)throw CliErrors[_0xb2ae45(0x215)](_0xb2ae45(0x220)+_0x15622b[_0xb2ae45(0x25c)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0x4f2344,_0x3ebddb[_0xb2ae45(0x219)]);}throw CliErrors[_0xb2ae45(0x215)](_0xb2ae45(0x21f)+_0x3ebddb[_0xb2ae45(0x243)]);}async function resolveDatasetCode(_0x37c319,_0x392025,_0x5b5427){const _0x3f8a85=a39_0x1893;if(_0x37c319[_0x3f8a85(0x22c)])return _0x37c319[_0x3f8a85(0x22c)];if(!_0x37c319[_0x3f8a85(0x23a)])throw CliErrors[_0x3f8a85(0x215)](_0x3f8a85(0x220)+_0x392025[_0x3f8a85(0x25c)]+_0x3f8a85(0x206));const _0x59bbea=await listDatasets(_0x5b5427['appCode']),_0x123168=_0x59bbea[_0x3f8a85(0x21a)](_0xc3a858=>_0xc3a858[_0x3f8a85(0x21c)]?.['tableName']===_0x37c319[_0x3f8a85(0x23a)]);if(!_0x123168?.[_0x3f8a85(0x21e)])throw CliErrors['validation']('Cannot\x20resolve\x20datatable\x20\x22'+_0x37c319[_0x3f8a85(0x23a)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x5b5427[_0x3f8a85(0x247)]+'.',_0x3f8a85(0x204));return _0x123168[_0x3f8a85(0x21e)];}function applyAppBinding(_0x30736a,_0x5dafc1,_0xa1e234){const _0x5b5760=a39_0x1893,_0x2201ca=_0x5dafc1[_0x5b5760(0x258)]['appRef'];if(!_0x2201ca)return;const _0x37aabf=_0x30736a[_0x5b5760(0x231)][_0x2201ca];if(!_0x37aabf)throw CliErrors[_0x5b5760(0x215)](_0x5b5760(0x211)+_0x2201ca+_0x5b5760(0x21b)+_0x5dafc1['cliPath']+'.',_0x5b5760(0x22b));const _0x5ea953=_0x37aabf['appcode']||_0x37aabf[_0x5b5760(0x247)];_0x5ea953&&!hasText(_0xa1e234['appcode'])&&(_0xa1e234['appcode']=_0x5ea953),_0x37aabf[_0x5b5760(0x24a)]&&!hasText(_0xa1e234['app'])&&!hasText(_0xa1e234[_0x5b5760(0x209)])&&(_0xa1e234[_0x5b5760(0x24a)]=_0x37aabf[_0x5b5760(0x24a)]),_0x37aabf[_0x5b5760(0x246)]&&!hasText(_0xa1e234[_0x5b5760(0x246)])&&(_0xa1e234['env']=_0x37aabf[_0x5b5760(0x246)]);}function renderDynamicCommandHelp(_0x1edbd1){const _0x13b87c=a39_0x1893,_0x34a88b=[_0x13b87c(0x20a),_0x13b87c(0x254)+_0x1edbd1[_0x13b87c(0x258)][_0x13b87c(0x243)],_0x13b87c(0x226)+_0x1edbd1[_0x13b87c(0x258)][_0x13b87c(0x218)]];if(_0x1edbd1['target'][_0x13b87c(0x22c)])_0x34a88b[_0x13b87c(0x24d)](_0x13b87c(0x245)+_0x1edbd1[_0x13b87c(0x258)][_0x13b87c(0x22c)]);if(_0x1edbd1['target'][_0x13b87c(0x23a)])_0x34a88b[_0x13b87c(0x24d)](_0x13b87c(0x238)+_0x1edbd1[_0x13b87c(0x258)][_0x13b87c(0x23a)]);if(_0x1edbd1[_0x13b87c(0x258)]['sqlCode'])_0x34a88b[_0x13b87c(0x24d)]('\x20\x20\x20\x20sqlCode:\x20'+_0x1edbd1[_0x13b87c(0x258)][_0x13b87c(0x23e)]);if(_0x1edbd1[_0x13b87c(0x258)][_0x13b87c(0x24e)])_0x34a88b[_0x13b87c(0x24d)]('\x20\x20\x20\x20functionName:\x20'+_0x1edbd1[_0x13b87c(0x258)][_0x13b87c(0x24e)]);if(_0x1edbd1[_0x13b87c(0x239)]['length']>0x0){_0x34a88b['push']('','\x20\x20MAP\x20TO');for(const _0x28ebe9 of _0x1edbd1[_0x13b87c(0x239)]){_0x34a88b[_0x13b87c(0x24d)](_0x13b87c(0x232)+(_0x28ebe9[_0x13b87c(0x253)]||_0x13b87c(0x255))+_0x13b87c(0x23c)+_0x28ebe9[_0x13b87c(0x258)]+(_0x28ebe9[_0x13b87c(0x20e)]?'.'+_0x28ebe9[_0x13b87c(0x20e)]:''));}}return _0x34a88b['join']('\x0a');}function targetPreview(_0x48c040){const _0x216a4=a39_0x1893;return{'kind':_0x48c040[_0x216a4(0x243)],'command':_0x48c040[_0x216a4(0x218)],'appRef':_0x48c040[_0x216a4(0x244)],'datasetCode':_0x48c040['datasetCode'],'datatable':_0x48c040[_0x216a4(0x23a)],'sqlCode':_0x48c040['sqlCode'],'bffCode':_0x48c040['bffCode'],'bffId':_0x48c040['bffId'],'functionName':_0x48c040[_0x216a4(0x24e)]};}function normalizeScalarParams(_0x3b9885){const _0x158bc5=a39_0x1893;return Object[_0x158bc5(0x200)](Object[_0x158bc5(0x1f7)](_0x3b9885)['filter'](([,_0x5a7c5f])=>typeof _0x5a7c5f===_0x158bc5(0x203)||typeof _0x5a7c5f==='number'));}function hasText(_0x17586c){const _0x8c62fc=a39_0x1893;return typeof _0x17586c==='string'&&_0x17586c['trim']()[_0x8c62fc(0x242)]>0x0;}function a39_0x1893(_0x45c361,_0x51633f){_0x45c361=_0x45c361-0x1f4;const _0x4eb257=a39_0x4eb2();let _0x1893f1=_0x4eb257[_0x45c361];return _0x1893f1;}function isPrimitiveFlagDefault(_0x1afd16){const _0x1113c4=a39_0x1893;return _0x1afd16===undefined||typeof _0x1afd16===_0x1113c4(0x203)||typeof _0x1afd16===_0x1113c4(0x20d)||typeof _0x1afd16===_0x1113c4(0x235);}
1
+ (function(_0x37aaeb,_0x4193c2){const _0xcbd582=a39_0x4052,_0x331b44=_0x37aaeb();while(!![]){try{const _0xd5f61d=-parseInt(_0xcbd582(0x72))/0x1*(-parseInt(_0xcbd582(0xb2))/0x2)+-parseInt(_0xcbd582(0xa8))/0x3+parseInt(_0xcbd582(0x71))/0x4*(parseInt(_0xcbd582(0xba))/0x5)+-parseInt(_0xcbd582(0xc7))/0x6*(parseInt(_0xcbd582(0xa4))/0x7)+-parseInt(_0xcbd582(0x95))/0x8*(parseInt(_0xcbd582(0x8f))/0x9)+parseInt(_0xcbd582(0xb6))/0xa+parseInt(_0xcbd582(0xb4))/0xb;if(_0xd5f61d===_0x4193c2)break;else _0x331b44['push'](_0x331b44['shift']());}catch(_0x106a68){_0x331b44['push'](_0x331b44['shift']());}}}(a39_0x29c3,0x83389));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0xe3efa7,_0x1ed0a1){const _0x480b65=a39_0x4052,_0x4ada93=listLocalServiceTrees();let _0x4f21df;for(const _0x253cac of _0x4ada93){const _0x4070dd=matchServiceTreeCommand(_0x253cac,_0xe3efa7);if(!_0x4070dd)continue;(!_0x4f21df||_0x4070dd['command'][_0x480b65(0x6d)][_0x480b65(0xca)]>_0x4f21df[_0x480b65(0xc0)][_0x480b65(0x6d)]['length'])&&(_0x4f21df={'tree':_0x253cac,'command':_0x4070dd[_0x480b65(0xc0)],'remainingArgs':_0x4070dd[_0x480b65(0xa3)]});}if(!_0x4f21df)return undefined;const _0x4664a6={..._0x1ed0a1};return applyAppBinding(_0x4f21df[_0x480b65(0xb7)],_0x4f21df[_0x480b65(0xc0)],_0x4664a6),{'definition':buildDynamicCommandDefinition(_0x4f21df[_0x480b65(0xb7)],_0x4f21df[_0x480b65(0xc0)]),'args':_0x4f21df['remainingArgs'],'flags':_0x4664a6,'tree':_0x4f21df[_0x480b65(0xb7)],'command':_0x4f21df[_0x480b65(0xc0)]};}export function generateDynamicServiceHelp(_0x5eba03){const _0x459455=a39_0x4052,_0x21778c=listLocalServiceTrees()['find'](_0x20be7b=>_0x20be7b[_0x459455(0x69)][_0x459455(0x90)]===_0x5eba03);if(!_0x21778c)return undefined;const _0x23efec=[CLI_BIN_NAME+'\x20'+_0x5eba03+'\x20<command>\x20[flags]','',_0x21778c['service'][_0x459455(0xac)]||_0x5eba03,_0x21778c[_0x459455(0x69)]['description']?'\x20\x20'+_0x21778c['service'][_0x459455(0x7a)]:'','',_0x459455(0x88),..._0x21778c[_0x459455(0x96)][_0x459455(0xb5)](_0x23de4f=>{const _0x27ed25=_0x459455,_0x47030c=_0x23de4f[_0x27ed25(0x6d)][_0x27ed25(0x84)](0x1)[_0x27ed25(0xc8)]('\x20'),_0x40f678=_0x23de4f[_0x27ed25(0x83)]==='read'?'':'\x20['+_0x23de4f['risk']+']';return'\x20\x20'+_0x47030c[_0x27ed25(0x82)](0x18)+'\x20'+(_0x23de4f[_0x27ed25(0x7a)]||'')+_0x40f678;}),'',_0x459455(0x7e)+CLI_BIN_NAME+_0x459455(0xaa)+_0x5eba03+_0x459455(0x6e)]['filter'](Boolean);return _0x23efec['join']('\x0a');}export function listDynamicServiceEntries(){const _0xdfbbe=a39_0x4052;return listLocalServices()[_0xdfbbe(0xb5)](_0x2c7d3a=>{const _0x5026c0=_0xdfbbe,_0x54ff49=_0x2c7d3a['normalizedManifest'];return{'service':_0x54ff49[_0x5026c0(0x69)][_0x5026c0(0x90)],'label':_0x54ff49[_0x5026c0(0x69)][_0x5026c0(0xac)]||_0x54ff49[_0x5026c0(0x69)][_0x5026c0(0x90)],'commands':_0x54ff49[_0x5026c0(0x96)][_0x5026c0(0xb5)](_0x19ccf9=>({'command':dynamicCommandName(_0x19ccf9),'description':_0x19ccf9['description']||_0x5026c0(0x99)+_0x19ccf9[_0x5026c0(0x77)],'tag':riskTag(_0x19ccf9['risk'])}))};});}export function getDynamicServiceEntry(_0x4bfe04){return listDynamicServiceEntries()['find'](_0x5891e0=>_0x5891e0['service']===_0x4bfe04);}export function listDynamicServiceDefinitions(_0x5ae29e){const _0x351015=a39_0x4052;return listLocalServiceTrees()[_0x351015(0xcc)](_0xfc47b4=>!_0x5ae29e||_0xfc47b4['service']['code']===_0x5ae29e)[_0x351015(0xa7)](_0x5ce291=>_0x5ce291['commands'][_0x351015(0xb5)](_0x5c20e5=>buildDynamicCommandDefinition(_0x5ce291,_0x5c20e5)));}export function getDynamicServiceDefinitions(_0x1e8fe){const _0x3f638c=a39_0x4052,_0x46eeff=listDynamicServiceDefinitions(_0x1e8fe);return _0x46eeff[_0x3f638c(0xca)]>0x0?_0x46eeff:undefined;}function a39_0x4052(_0x166f4e,_0x58ee78){_0x166f4e=_0x166f4e-0x66;const _0x29c35d=a39_0x29c3();let _0x405273=_0x29c35d[_0x166f4e];return _0x405273;}export function findDynamicServiceDefinition(_0xf74e61,_0x4882bc){const _0x5a9996=a39_0x4052;return listDynamicServiceDefinitions(_0xf74e61)[_0x5a9996(0x91)](_0x3c1df0=>_0x3c1df0[_0x5a9996(0xc0)]===_0x4882bc);}export function buildDynamicCommandDefinition(_0xd199ca,_0x512749){const _0xaa5527=a39_0x4052;return{'service':_0xd199ca[_0xaa5527(0x69)][_0xaa5527(0x90)],'command':dynamicCommandName(_0x512749),'description':_0x512749[_0xaa5527(0x7a)]||_0xaa5527(0x99)+_0x512749[_0xaa5527(0x77)],'risk':_0x512749[_0xaa5527(0x83)],..._0x512749['risk']===_0xaa5527(0xb8)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x512749)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x512749['args'][_0xaa5527(0xb5)](_0x231740=>({'name':_0x231740[_0xaa5527(0xac)],'description':_0x231740[_0xaa5527(0x7a)]||_0x231740[_0xaa5527(0xac)],'required':_0x231740[_0xaa5527(0x87)]})),'flags':_0x512749[_0xaa5527(0x6c)][_0xaa5527(0xb5)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x512749),async 'dryRun'(_0xf3db4a){const _0x33573c=_0xaa5527,_0x4aa784=await compilePlan(_0x512749,_0xf3db4a);return{'method':_0x33573c(0x70),'url':_0x512749['cliPath'],'body':{'target':targetPreview(_0x4aa784),'params':_0x4aa784[_0x33573c(0xc1)]},'description':'Preview\x20dynamic\x20service\x20command:\x20'+_0x512749[_0x33573c(0x77)]};},async 'execute'(_0x34cdf8){const _0x35244d=_0xaa5527,_0x577a4e=await compilePlan(_0x512749,_0x34cdf8),_0x3832fb=Date[_0x35244d(0xb0)](),_0x11d8a0=await executePlan(_0x577a4e,_0x512749,_0x34cdf8),_0x2bc867=Date[_0x35244d(0xb0)]()-_0x3832fb;return{'ok':!![],'data':{'service':_0xd199ca[_0x35244d(0x69)],'command':_0x512749[_0x35244d(0x77)],'target':targetPreview(_0x577a4e),'result':_0x11d8a0,'elapsed':_0x2bc867},'message':'Service\x20command\x20'+_0x512749[_0x35244d(0x77)]+_0x35244d(0x7b)+_0x2bc867+'ms'};}};}function buildDynamicConfirmationDescription(_0x5e1861){const _0x132268=a39_0x4052,_0x22ed6f=_0x5e1861[_0x132268(0x7a)]||_0x5e1861[_0x132268(0x77)],_0x470572=_0x5e1861[_0x132268(0x83)]===_0x132268(0x6b)?_0x132268(0x74):'该命令被清单标记为写入,可能修改业务数据或服务状态。';return'将通过\x20Service\x20Tree\x20执行“'+_0x22ed6f+'”。'+_0x470572;}function dynamicCommandName(_0x37b1c0){const _0x22f402=a39_0x4052;return _0x37b1c0[_0x22f402(0x6d)][_0x22f402(0x84)](0x1)[_0x22f402(0xc8)]('\x20');}function riskTag(_0x23b56b){const _0x253cd6=a39_0x4052;return _0x23b56b===_0x253cd6(0xb8)?'':'\x20\x20['+_0x23b56b+']';}function flagToCommandFlag(_0x3a8088){const _0x20f153=a39_0x4052;return{'name':_0x3a8088[_0x20f153(0x98)],'type':_0x3a8088[_0x20f153(0x81)]==='json'?'string':_0x3a8088[_0x20f153(0x81)],'description':_0x3a8088[_0x20f153(0x7a)]||_0x3a8088[_0x20f153(0xac)],'required':_0x3a8088['required'],'default':isPrimitiveFlagDefault(_0x3a8088[_0x20f153(0xa9)])?_0x3a8088[_0x20f153(0xa9)]:undefined,'enum':_0x3a8088[_0x20f153(0xc6)]};}async function compilePlan(_0x345381,_0x63b04a){const _0x3b108e=a39_0x4052;return compileServiceTreeCommand(_0x345381,{'flags':_0x63b04a[_0x3b108e(0x85)],'args':_0x63b04a[_0x3b108e(0x9b)],'context':await buildServiceContext(_0x345381,_0x63b04a)});}async function buildServiceContext(_0x3bdb18,_0x10d2ce){const _0x1e7979=a39_0x4052,_0x4eca91={'appCode':_0x10d2ce['appCode'],'env':_0x10d2ce[_0x1e7979(0xc3)],'envName':_0x10d2ce[_0x1e7979(0xc3)]};if(!usesRuntimeContext(_0x3bdb18))return _0x4eca91;const _0x31152e=await getLoginUserInfo(),_0x7b7d7b=pickFirst(_0x31152e[_0x1e7979(0x7f)],_0x31152e['id']);return{..._0x4eca91,'user':_0x31152e,'userId':_0x7b7d7b,'id':_0x31152e['id'],'username':pickFirst(_0x31152e[_0x1e7979(0x66)],_0x31152e['userName'],_0x31152e[_0x1e7979(0x7c)]),'userName':_0x31152e[_0x1e7979(0xb9)],'nickname':pickFirst(_0x31152e[_0x1e7979(0x8c)],_0x31152e['nickName']),'nickName':_0x31152e[_0x1e7979(0xa1)],'tenantCode':_0x31152e[_0x1e7979(0x68)],'employeeId':_0x31152e['employeeId']};}function usesRuntimeContext(_0x4de98c){const _0x577c50=a39_0x4052;return _0x4de98c[_0x577c50(0x7d)][_0x577c50(0x73)](_0x538302=>typeof _0x538302['source']==='string'&&(_0x538302[_0x577c50(0x92)][_0x577c50(0xad)](_0x577c50(0xc9))||_0x538302[_0x577c50(0x92)][_0x577c50(0xad)](_0x577c50(0x94))));}function pickFirst(..._0x242b6d){return _0x242b6d['find'](_0x148333=>_0x148333!==undefined&&_0x148333!==null);}async function executePlan(_0x3c2d08,_0x4f3bb3,_0x50f99d){const _0x109b6f=a39_0x4052;if(_0x3c2d08[_0x109b6f(0xb1)]===_0x109b6f(0x6a)){const _0x874c9c=await resolveDatasetCode(_0x3c2d08,_0x4f3bb3,_0x50f99d);return executeData(_0x874c9c,_0x3c2d08[_0x109b6f(0xc0)],_0x3c2d08[_0x109b6f(0xc1)]);}if(_0x3c2d08[_0x109b6f(0xb1)]===_0x109b6f(0x79)){if(!_0x3c2d08[_0x109b6f(0x9c)])throw CliErrors[_0x109b6f(0xbb)](_0x109b6f(0x8d)+_0x4f3bb3[_0x109b6f(0x77)]+_0x109b6f(0xbe));return executeSdkSql(_0x3c2d08[_0x109b6f(0x9c)],normalizeScalarParams(_0x3c2d08[_0x109b6f(0xc1)]));}if(_0x3c2d08['kind']===_0x109b6f(0x8a)){const _0x595dd3=_0x3c2d08['scriptName']||_0x3c2d08['bffCode']||(_0x3c2d08[_0x109b6f(0x97)]==null?'':String(_0x3c2d08[_0x109b6f(0x97)]));if(!_0x595dd3)throw CliErrors[_0x109b6f(0xbb)](_0x109b6f(0x8d)+_0x4f3bb3[_0x109b6f(0x77)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0x595dd3,_0x3c2d08[_0x109b6f(0xc1)]);}throw CliErrors[_0x109b6f(0xbb)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x3c2d08[_0x109b6f(0xb1)]);}async function resolveDatasetCode(_0x59246d,_0xdf6447,_0x3ac48f){const _0x3fc9da=a39_0x4052;if(_0x59246d[_0x3fc9da(0x9f)])return _0x59246d[_0x3fc9da(0x9f)];if(!_0x59246d['datatable'])throw CliErrors[_0x3fc9da(0xbb)]('Service\x20command\x20'+_0xdf6447[_0x3fc9da(0x77)]+_0x3fc9da(0x8b));const _0x66293f=await listDatasets(_0x3ac48f[_0x3fc9da(0x75)]),_0xbcaff4=_0x66293f['find'](_0x58dc9d=>_0x58dc9d[_0x3fc9da(0x67)]?.[_0x3fc9da(0xbc)]===_0x59246d[_0x3fc9da(0x76)]);if(!_0xbcaff4?.['code'])throw CliErrors[_0x3fc9da(0xbb)](_0x3fc9da(0xaf)+_0x59246d[_0x3fc9da(0x76)]+_0x3fc9da(0xb3)+_0x3ac48f['appCode']+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0xbcaff4[_0x3fc9da(0x90)];}function a39_0x29c3(){const _0x4d47b4=['trim','enum','1273872NTyjwr','join','context.','length','appBindings','filter','username','dbtableConfig','tenantCode','service','data','high-risk-write','flags','fullPath','`\x20to\x20inspect\x20the\x20manifest.','\x20\x20\x20\x20','SERVICE_TREE','196hGPmgB','58xODLUS','some','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','appCode','datatable','cliPath','\x20\x20\x20\x20command:\x20','sql','description','\x20completed\x20in\x20','loginName','mapTo','Use\x20`','userId','appcode','type','padEnd','risk','slice','rawFlags','bffCode','required','Commands:','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','bff','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','nickname','Service\x20command\x20','\x20\x20\x20\x20datatable:\x20','18WFPNvQ','code','find','source','target','ctx.','3939616fzZMqc','commands','bffId','cliName','Run\x20service\x20command\x20','operator','args','sqlCode','boolean','env','datasetCode','\x20\x20\x20\x20kind:\x20\x20\x20\x20','nickName','\x20->\x20','remainingArgs','28gJBGSG','fromEntries','string','flatMap','2053326HNdAGg','default','\x20service\x20detail\x20--service\x20','Unknown\x20appRef\x20\x22','name','startsWith','\x20\x20\x20\x20functionName:\x20','Cannot\x20resolve\x20datatable\x20\x22','now','kind','19178toeACn','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','15896089XtBAPy','map','9192310jKuoYO','tree','read','userName','13835WLAovs','validation','tableName','\x20\x20\x20\x20datasetCode:\x20','\x20requires\x20target.sqlCode.','app','command','params','\x20\x20MAP\x20TO','envName','push'];a39_0x29c3=function(){return _0x4d47b4;};return a39_0x29c3();}function applyAppBinding(_0x3f7d8c,_0x7c32d3,_0x461567){const _0x581631=a39_0x4052,_0x440920=_0x7c32d3['target']['appRef'];if(!_0x440920)return;const _0x5638d6=_0x3f7d8c[_0x581631(0xcb)][_0x440920];if(!_0x5638d6)throw CliErrors['validation'](_0x581631(0xab)+_0x440920+'\x22\x20in\x20service\x20command\x20'+_0x7c32d3['cliPath']+'.',_0x581631(0x89));const _0x1f7e4b=_0x5638d6[_0x581631(0x80)]||_0x5638d6['appCode'];_0x1f7e4b&&!hasText(_0x461567[_0x581631(0x80)])&&(_0x461567[_0x581631(0x80)]=_0x1f7e4b),_0x5638d6[_0x581631(0xbf)]&&!hasText(_0x461567[_0x581631(0xbf)])&&!hasText(_0x461567[_0x581631(0x80)])&&(_0x461567[_0x581631(0xbf)]=_0x5638d6[_0x581631(0xbf)]),_0x5638d6[_0x581631(0x9e)]&&!hasText(_0x461567['env'])&&(_0x461567['env']=_0x5638d6[_0x581631(0x9e)]);}function renderDynamicCommandHelp(_0x433a6d){const _0x1c3404=a39_0x4052,_0x2b15f5=['\x20\x20SERVICE\x20TREE\x20TARGET',_0x1c3404(0xa0)+_0x433a6d[_0x1c3404(0x93)][_0x1c3404(0xb1)],_0x1c3404(0x78)+_0x433a6d[_0x1c3404(0x93)]['command']];if(_0x433a6d[_0x1c3404(0x93)][_0x1c3404(0x9f)])_0x2b15f5['push'](_0x1c3404(0xbd)+_0x433a6d['target'][_0x1c3404(0x9f)]);if(_0x433a6d[_0x1c3404(0x93)][_0x1c3404(0x76)])_0x2b15f5[_0x1c3404(0xc4)](_0x1c3404(0x8e)+_0x433a6d[_0x1c3404(0x93)][_0x1c3404(0x76)]);if(_0x433a6d[_0x1c3404(0x93)][_0x1c3404(0x9c)])_0x2b15f5['push']('\x20\x20\x20\x20sqlCode:\x20'+_0x433a6d[_0x1c3404(0x93)][_0x1c3404(0x9c)]);if(_0x433a6d[_0x1c3404(0x93)]['scriptName'])_0x2b15f5[_0x1c3404(0xc4)](_0x1c3404(0xae)+_0x433a6d['target']['scriptName']);if(_0x433a6d[_0x1c3404(0x7d)][_0x1c3404(0xca)]>0x0){_0x2b15f5[_0x1c3404(0xc4)]('',_0x1c3404(0xc2));for(const _0x167e97 of _0x433a6d[_0x1c3404(0x7d)]){_0x2b15f5[_0x1c3404(0xc4)](_0x1c3404(0x6f)+(_0x167e97['source']||'const')+_0x1c3404(0xa2)+_0x167e97[_0x1c3404(0x93)]+(_0x167e97['operator']?'.'+_0x167e97[_0x1c3404(0x9a)]:''));}}return _0x2b15f5[_0x1c3404(0xc8)]('\x0a');}function targetPreview(_0x70d29d){const _0x2494fd=a39_0x4052;return{'kind':_0x70d29d['kind'],'command':_0x70d29d[_0x2494fd(0xc0)],'appRef':_0x70d29d['appRef'],'datasetCode':_0x70d29d[_0x2494fd(0x9f)],'datatable':_0x70d29d['datatable'],'sqlCode':_0x70d29d[_0x2494fd(0x9c)],'bffCode':_0x70d29d[_0x2494fd(0x86)],'bffId':_0x70d29d[_0x2494fd(0x97)],'functionName':_0x70d29d['scriptName']};}function normalizeScalarParams(_0x40697a){const _0x4745f2=a39_0x4052;return Object[_0x4745f2(0xa5)](Object['entries'](_0x40697a)[_0x4745f2(0xcc)](([,_0x24c7e5])=>typeof _0x24c7e5===_0x4745f2(0xa6)||typeof _0x24c7e5==='number'));}function hasText(_0x2cec7a){const _0x57a060=a39_0x4052;return typeof _0x2cec7a===_0x57a060(0xa6)&&_0x2cec7a[_0x57a060(0xc5)]()[_0x57a060(0xca)]>0x0;}function isPrimitiveFlagDefault(_0x4eaf3f){const _0x4027db=a39_0x4052;return _0x4eaf3f===undefined||typeof _0x4eaf3f===_0x4027db(0xa6)||typeof _0x4eaf3f==='number'||typeof _0x4eaf3f===_0x4027db(0x9d);}
@@ -1 +1 @@
1
- (function(_0x3c1108,_0x18b5dd){const _0x4c0b98=a40_0x52a5,_0x492368=_0x3c1108();while(!![]){try{const _0x784c43=parseInt(_0x4c0b98(0x11d))/0x1+-parseInt(_0x4c0b98(0x11b))/0x2+parseInt(_0x4c0b98(0x124))/0x3+parseInt(_0x4c0b98(0x109))/0x4*(parseInt(_0x4c0b98(0x10d))/0x5)+parseInt(_0x4c0b98(0x115))/0x6*(-parseInt(_0x4c0b98(0x119))/0x7)+parseInt(_0x4c0b98(0x121))/0x8+parseInt(_0x4c0b98(0x116))/0x9;if(_0x784c43===_0x18b5dd)break;else _0x492368['push'](_0x492368['shift']());}catch(_0xb53b28){_0x492368['push'](_0x492368['shift']());}}}(a40_0x5e82,0x523c3));export function adaptServiceTreeManifestForLegacyFramework(_0x4ce484){const _0x438195=a40_0x52a5,_0x55e299=cloneJsonValue(_0x4ce484),_0x5dd9d4=[];if(!isObjectRecord(_0x55e299))return{'manifest':_0x55e299,'errors':_0x5dd9d4};return Array[_0x438195(0x128)](_0x55e299[_0x438195(0x11e)])&&_0x55e299[_0x438195(0x11e)][_0x438195(0x11c)]((_0x2782e4,_0x66bed5)=>{const _0x28fb3f=_0x438195;if(!isObjectRecord(_0x2782e4))return;adaptBffTarget(_0x2782e4[_0x28fb3f(0x126)],_0x28fb3f(0x10b)+_0x66bed5+_0x28fb3f(0x120),_0x5dd9d4);}),adaptResources(_0x55e299[_0x438195(0x122)],'$.resources',_0x5dd9d4),{'manifest':_0x55e299,'errors':_0x5dd9d4};}export function toPublicServiceTreeTarget(_0x55e02d){const _0x4c44e0=a40_0x52a5,{scriptName:_0x3c38f5,..._0x227038}=_0x55e02d;return typeof _0x3c38f5===_0x4c44e0(0x127)&&_0x3c38f5[_0x4c44e0(0x10a)]()&&(_0x227038[_0x4c44e0(0x108)]=_0x3c38f5),_0x227038;}export function toPublicNormalizedServiceTree(_0x29f4fa){const _0xf1232b=a40_0x52a5;return{..._0x29f4fa,'commands':_0x29f4fa['commands'][_0xf1232b(0x112)](_0x478d9b=>({..._0x478d9b,'target':toPublicServiceTreeTarget(_0x478d9b[_0xf1232b(0x126)])}))};}function adaptResources(_0x1b26ec,_0x5a3e6f,_0x98c14b){const _0x3a90c9=a40_0x52a5;if(!isObjectRecord(_0x1b26ec))return;for(const [_0x2a8f3f,_0x3190a0]of Object[_0x3a90c9(0x125)](_0x1b26ec)){if(!isObjectRecord(_0x3190a0))continue;const _0x4fce64=_0x5a3e6f+'.'+_0x2a8f3f;if(isObjectRecord(_0x3190a0[_0x3a90c9(0x11f)]))for(const [_0x6f83cd,_0x498419]of Object[_0x3a90c9(0x125)](_0x3190a0[_0x3a90c9(0x11f)])){if(!isObjectRecord(_0x498419))continue;const _0x16ee8a=_0x4fce64+'.actions.'+_0x6f83cd,_0x5e1734=isObjectRecord(_0x498419[_0x3a90c9(0x126)])&&_0x498419['target']['kind']===_0x3a90c9(0x123);adaptBffTarget(_0x498419[_0x3a90c9(0x126)],_0x16ee8a+'.target',_0x98c14b),(_0x5e1734||isBffAction(_0x498419))&&adaptFunctionNameField(_0x498419,_0x16ee8a,_0x98c14b);}adaptResources(_0x3190a0['resources'],_0x4fce64+'.resources',_0x98c14b);}}function adaptBffTarget(_0x12bcf2,_0x5140e2,_0x3bea9a){const _0x4c0752=a40_0x52a5;if(!isObjectRecord(_0x12bcf2)||_0x12bcf2['kind']!==_0x4c0752(0x123))return;adaptFunctionNameField(_0x12bcf2,_0x5140e2,_0x3bea9a);}function adaptFunctionNameField(_0x58ee43,_0x4810e9,_0x294a09){const _0x5abc12=a40_0x52a5;Object[_0x5abc12(0x113)][_0x5abc12(0x118)][_0x5abc12(0x11a)](_0x58ee43,_0x5abc12(0x10c))&&_0x294a09[_0x5abc12(0x110)]({'level':'error','path':_0x4810e9+'.scriptName','message':_0x5abc12(0x117)});if(Object[_0x5abc12(0x113)][_0x5abc12(0x118)][_0x5abc12(0x11a)](_0x58ee43,_0x5abc12(0x108))){if(typeof _0x58ee43[_0x5abc12(0x108)]!==_0x5abc12(0x127)||!_0x58ee43['functionName']['trim']()){_0x294a09[_0x5abc12(0x110)]({'level':_0x5abc12(0x129),'path':_0x4810e9+_0x5abc12(0x10e),'message':_0x5abc12(0x114)}),delete _0x58ee43[_0x5abc12(0x108)];return;}_0x58ee43[_0x5abc12(0x10c)]=_0x58ee43[_0x5abc12(0x108)],delete _0x58ee43[_0x5abc12(0x108)];}}function a40_0x5e82(){const _0x409ac1=['4692592UQFgJw','resources','bff','832257SyxhXs','entries','target','string','isArray','error','functionName','14684jiJHjk','trim','$.commands[','scriptName','50ispKQu','.functionName','bff.exec','push','kind','map','prototype','functionName\x20must\x20be\x20a\x20non-empty\x20string.','6htiWSC','3199482GFGXDj','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','hasOwnProperty','2512797tEMMtD','call','1233918dxIfac','forEach','56564qRJTtc','commands','actions','].target'];a40_0x5e82=function(){return _0x409ac1;};return a40_0x5e82();}function a40_0x52a5(_0xee3503,_0x263dcc){_0xee3503=_0xee3503-0x108;const _0x5e829c=a40_0x5e82();let _0x52a5c9=_0x5e829c[_0xee3503];return _0x52a5c9;}function isBffAction(_0x1fc67d){const _0x1f0997=a40_0x52a5;return _0x1fc67d[_0x1f0997(0x111)]===_0x1f0997(0x123)||_0x1fc67d['action']===_0x1f0997(0x10f)||_0x1fc67d[_0x1f0997(0x126)]==='bff.exec';}function cloneJsonValue(_0x3f2779){const _0x2d0273=a40_0x52a5;if(Array['isArray'](_0x3f2779))return _0x3f2779[_0x2d0273(0x112)](_0x5f0f52=>cloneJsonValue(_0x5f0f52));if(isObjectRecord(_0x3f2779))return Object['fromEntries'](Object[_0x2d0273(0x125)](_0x3f2779)[_0x2d0273(0x112)](([_0x249feb,_0x5cd3ce])=>[_0x249feb,cloneJsonValue(_0x5cd3ce)]));return _0x3f2779;}function isObjectRecord(_0x4388ff){return Boolean(_0x4388ff)&&typeof _0x4388ff==='object'&&!Array['isArray'](_0x4388ff);}
1
+ (function(_0xab03fd,_0x3d6123){const _0x125d59=a40_0x2ca7,_0x2ad205=_0xab03fd();while(!![]){try{const _0x1e8e9d=parseInt(_0x125d59(0xea))/0x1*(-parseInt(_0x125d59(0xf1))/0x2)+-parseInt(_0x125d59(0xe4))/0x3+parseInt(_0x125d59(0xe0))/0x4+parseInt(_0x125d59(0xfe))/0x5*(-parseInt(_0x125d59(0xdd))/0x6)+parseInt(_0x125d59(0xf3))/0x7*(parseInt(_0x125d59(0xdb))/0x8)+-parseInt(_0x125d59(0xfd))/0x9+parseInt(_0x125d59(0xdf))/0xa*(parseInt(_0x125d59(0xe8))/0xb);if(_0x1e8e9d===_0x3d6123)break;else _0x2ad205['push'](_0x2ad205['shift']());}catch(_0xa230b7){_0x2ad205['push'](_0x2ad205['shift']());}}}(a40_0x2e0e,0x91abb));export function adaptServiceTreeManifestForLegacyFramework(_0x16cd28){const _0x334c55=a40_0x2ca7,_0x32fb23=cloneJsonValue(_0x16cd28),_0x40925f=[];if(!isObjectRecord(_0x32fb23))return{'manifest':_0x32fb23,'errors':_0x40925f};return Array[_0x334c55(0xe1)](_0x32fb23[_0x334c55(0xec)])&&_0x32fb23[_0x334c55(0xec)][_0x334c55(0xfa)]((_0x1fedc9,_0x268a5e)=>{const _0x3b49d5=_0x334c55;if(!isObjectRecord(_0x1fedc9))return;adaptBffTarget(_0x1fedc9[_0x3b49d5(0xee)],_0x3b49d5(0xeb)+_0x268a5e+_0x3b49d5(0xf2),_0x40925f);}),adaptResources(_0x32fb23[_0x334c55(0x100)],_0x334c55(0xfc),_0x40925f),{'manifest':_0x32fb23,'errors':_0x40925f};}export function toPublicServiceTreeTarget(_0x3f59a3){const _0x29a922=a40_0x2ca7,{scriptName:_0x37b274,..._0x227009}=_0x3f59a3;return typeof _0x37b274===_0x29a922(0xda)&&_0x37b274[_0x29a922(0xef)]()&&(_0x227009[_0x29a922(0xde)]=_0x37b274),_0x227009;}export function toPublicNormalizedServiceTree(_0x3dc9dc){const _0x453288=a40_0x2ca7;return{..._0x3dc9dc,'commands':_0x3dc9dc[_0x453288(0xec)][_0x453288(0xf6)](_0x3957e9=>({..._0x3957e9,'target':toPublicServiceTreeTarget(_0x3957e9[_0x453288(0xee)])}))};}function adaptResources(_0x1f94a7,_0x4eb14c,_0x540f07){const _0x5cdbb9=a40_0x2ca7;if(!isObjectRecord(_0x1f94a7))return;for(const [_0xf2bbd8,_0x23c321]of Object[_0x5cdbb9(0xe6)](_0x1f94a7)){if(!isObjectRecord(_0x23c321))continue;const _0x32f58b=_0x4eb14c+'.'+_0xf2bbd8;if(isObjectRecord(_0x23c321[_0x5cdbb9(0xe7)]))for(const [_0x1e8298,_0x573d43]of Object[_0x5cdbb9(0xe6)](_0x23c321['actions'])){if(!isObjectRecord(_0x573d43))continue;const _0x5b8008=_0x32f58b+'.actions.'+_0x1e8298,_0x3bc83c=isObjectRecord(_0x573d43[_0x5cdbb9(0xee)])&&_0x573d43[_0x5cdbb9(0xee)][_0x5cdbb9(0xfb)]===_0x5cdbb9(0xf9);adaptBffTarget(_0x573d43[_0x5cdbb9(0xee)],_0x5b8008+_0x5cdbb9(0xf7),_0x540f07),(_0x3bc83c||isBffAction(_0x573d43))&&adaptFunctionNameField(_0x573d43,_0x5b8008,_0x540f07);}adaptResources(_0x23c321[_0x5cdbb9(0x100)],_0x32f58b+'.resources',_0x540f07);}}function adaptBffTarget(_0x13c1cb,_0x10876c,_0x20a778){const _0x21273b=a40_0x2ca7;if(!isObjectRecord(_0x13c1cb)||_0x13c1cb['kind']!==_0x21273b(0xf9))return;adaptFunctionNameField(_0x13c1cb,_0x10876c,_0x20a778);}function a40_0x2e0e(){const _0x283a5f=['error','map','.target','bff.exec','bff','forEach','kind','$.resources','951399dztonI','5TqAPfY','.functionName','resources','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','string','8dHhPit','functionName\x20must\x20be\x20a\x20non-empty\x20string.','4736550NiesTA','functionName','4754830PVDxQn','3244524itwLAB','isArray','scriptName','prototype','598425UjwxWE','call','entries','actions','22FLkHeL','.scriptName','54189gKQimW','$.commands[','commands','push','target','trim','hasOwnProperty','18lKppRt','].target','2918174rHqntt','fromEntries'];a40_0x2e0e=function(){return _0x283a5f;};return a40_0x2e0e();}function adaptFunctionNameField(_0x2b2a54,_0x2f6ecf,_0x3a3cc8){const _0x7f47b1=a40_0x2ca7;Object[_0x7f47b1(0xe3)][_0x7f47b1(0xf0)]['call'](_0x2b2a54,_0x7f47b1(0xe2))&&_0x3a3cc8[_0x7f47b1(0xed)]({'level':_0x7f47b1(0xf5),'path':_0x2f6ecf+_0x7f47b1(0xe9),'message':_0x7f47b1(0x101)});if(Object['prototype'][_0x7f47b1(0xf0)][_0x7f47b1(0xe5)](_0x2b2a54,'functionName')){if(typeof _0x2b2a54[_0x7f47b1(0xde)]!==_0x7f47b1(0xda)||!_0x2b2a54[_0x7f47b1(0xde)][_0x7f47b1(0xef)]()){_0x3a3cc8[_0x7f47b1(0xed)]({'level':_0x7f47b1(0xf5),'path':_0x2f6ecf+_0x7f47b1(0xff),'message':_0x7f47b1(0xdc)}),delete _0x2b2a54[_0x7f47b1(0xde)];return;}_0x2b2a54[_0x7f47b1(0xe2)]=_0x2b2a54[_0x7f47b1(0xde)],delete _0x2b2a54[_0x7f47b1(0xde)];}}function isBffAction(_0x5a8657){const _0x3f7be5=a40_0x2ca7;return _0x5a8657[_0x3f7be5(0xfb)]===_0x3f7be5(0xf9)||_0x5a8657['action']==='bff.exec'||_0x5a8657[_0x3f7be5(0xee)]===_0x3f7be5(0xf8);}function cloneJsonValue(_0x37abbd){const _0x5ed9be=a40_0x2ca7;if(Array[_0x5ed9be(0xe1)](_0x37abbd))return _0x37abbd['map'](_0x50f330=>cloneJsonValue(_0x50f330));if(isObjectRecord(_0x37abbd))return Object[_0x5ed9be(0xf4)](Object[_0x5ed9be(0xe6)](_0x37abbd)['map'](([_0x477c64,_0x2a4ce5])=>[_0x477c64,cloneJsonValue(_0x2a4ce5)]));return _0x37abbd;}function a40_0x2ca7(_0xa96a3,_0x299ef7){_0xa96a3=_0xa96a3-0xda;const _0x2e0e32=a40_0x2e0e();let _0x2ca7ab=_0x2e0e32[_0xa96a3];return _0x2ca7ab;}function isObjectRecord(_0x207d5e){const _0x3e18a6=a40_0x2ca7;return Boolean(_0x207d5e)&&typeof _0x207d5e==='object'&&!Array[_0x3e18a6(0xe1)](_0x207d5e);}
@@ -1 +1 @@
1
- function a41_0xb7c3(_0x3b40e2,_0x5d58bd){_0x3b40e2=_0x3b40e2-0xbe;const _0x4fd633=a41_0x4fd6();let _0xb7c3b6=_0x4fd633[_0x3b40e2];return _0xb7c3b6;}const a41_0x569d0f=a41_0xb7c3;(function(_0x3393f8,_0x4a1d2b){const _0x315bae=a41_0xb7c3,_0x3c21f7=_0x3393f8();while(!![]){try{const _0x326e81=parseInt(_0x315bae(0xe4))/0x1*(parseInt(_0x315bae(0xd8))/0x2)+parseInt(_0x315bae(0xde))/0x3+-parseInt(_0x315bae(0x102))/0x4*(-parseInt(_0x315bae(0xe1))/0x5)+parseInt(_0x315bae(0x103))/0x6+-parseInt(_0x315bae(0xf7))/0x7*(parseInt(_0x315bae(0xdb))/0x8)+parseInt(_0x315bae(0xca))/0x9*(parseInt(_0x315bae(0xcf))/0xa)+-parseInt(_0x315bae(0xcc))/0xb;if(_0x326e81===_0x4a1d2b)break;else _0x3c21f7['push'](_0x3c21f7['shift']());}catch(_0x1de5eb){_0x3c21f7['push'](_0x3c21f7['shift']());}}}(a41_0x4fd6,0x8819d));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':'file','type':'string','required':!![],'description':a41_0x569d0f(0x104)},SERVICE_FLAG={'name':a41_0x569d0f(0xe6),'type':a41_0x569d0f(0xbe),'required':!![],'description':a41_0x569d0f(0xf0),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a41_0x569d0f(0xd2)}};function a41_0x4fd6(){const _0x5ebda8=['Service\x20Tree\x20manifest\x20file\x20path','warnings','string','name','list','registryPath','risk','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','report','\x20service(s).','map','file','serviceCode','42426Bozvhk','Local\x20service\x20not\x20found:\x20','26800807QiWuuQ','export','registry','1810atnCTq','\x20service\x20','hash','lower\x20kebab-case\x20service\x20code','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','registryServiceCode','required','registryIndex','updated','10TXdBVC','kind','detail','3654704Ckcefh','commands','str','1935633IGxvlm','manifests','entry','6170XkKNrF','Service\x20manifest\x20validation\x20passed.','importedAt','56765NIdPso','version','service','将\x20Service\x20Tree\x20清单导入本地运行态注册表','normalizedManifest','import','Removed\x20service\x20','replaced','filePath','target','errors','write','Local\x20service\x20code,\x20for\x20example\x20crm','cliName','source','serviceCount','从本地运行态注册表移除\x20Service\x20Tree\x20清单','Service\x20registry\x20validation\x20passed.','length','7MMRZoT','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','cliPath','read','imported','\x20service(s),\x20updated\x20','Imported','reduce','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','WRITE','3064WGhFbD','4339380PbZYnd'];a41_0x4fd6=function(){return _0x5ebda8;};return a41_0x4fd6();}function summarizeService(_0x1b48fb){const _0x36803e=a41_0x569d0f;return{'serviceCode':_0x1b48fb[_0x36803e(0xc9)],'name':_0x1b48fb[_0x36803e(0xe8)][_0x36803e(0xe6)]['name'],'version':_0x1b48fb[_0x36803e(0xe5)],'importedAt':_0x1b48fb[_0x36803e(0xe3)],'source':_0x1b48fb[_0x36803e(0xf2)],'commandCount':_0x1b48fb['normalizedManifest']['commands'][_0x36803e(0xf6)],'commands':_0x1b48fb[_0x36803e(0xe8)]['commands'][_0x36803e(0xc7)](_0x4a56a2=>({'path':_0x4a56a2[_0x36803e(0xfa)],'description':_0x4a56a2['description'],'risk':_0x4a56a2[_0x36803e(0xc2)],'target':toPublicServiceTreeTarget(_0x4a56a2[_0x36803e(0xed)]),'flags':_0x4a56a2['flags'][_0x36803e(0xc7)](_0x3618a2=>({'name':_0x3618a2[_0x36803e(0xbf)],'cliName':_0x3618a2[_0x36803e(0xf1)],'type':_0x3618a2['type'],'required':_0x3618a2[_0x36803e(0xd5)]===!![]}))}))};}function summarizeLoadedManifest(_0x588d28){const _0x46aedc=a41_0x569d0f;return{'service':_0x588d28['normalizedManifest']?.[_0x46aedc(0xe6)],'version':_0x588d28[_0x46aedc(0xe8)]?.[_0x46aedc(0xe5)],'commandCount':_0x588d28[_0x46aedc(0xe8)]?.[_0x46aedc(0xdc)][_0x46aedc(0xf6)]??0x0,'commands':_0x588d28[_0x46aedc(0xe8)]?.['commands'][_0x46aedc(0xc7)](_0x3e295a=>({'path':_0x3e295a[_0x46aedc(0xfa)],'risk':_0x3e295a[_0x46aedc(0xc2)],'target':toPublicServiceTreeTarget(_0x3e295a[_0x46aedc(0xed)])}))??[],'registryIndex':_0x588d28[_0x46aedc(0xd6)],'registryServiceCode':_0x588d28[_0x46aedc(0xd4)],'errors':_0x588d28[_0x46aedc(0xc5)]['errors'],'warnings':_0x588d28[_0x46aedc(0xc5)][_0x46aedc(0x105)]};}export const serviceDefinitions=[{'service':a41_0x569d0f(0xe6),'command':'validate','description':a41_0x569d0f(0x100),'risk':a41_0x569d0f(0xfb),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x373620){const _0x50eead=a41_0x569d0f,_0x4594aa=loadServiceManifestFromFile(_0x373620[_0x50eead(0xdd)](_0x50eead(0xc8)));if(!_0x4594aa['report']['ok'])return{'ok':![],'data':{'file':_0x4594aa[_0x50eead(0xec)],'hash':_0x4594aa[_0x50eead(0xd1)],'kind':_0x4594aa[_0x50eead(0xd9)],'serviceCount':_0x4594aa[_0x50eead(0xdf)][_0x50eead(0xf6)],'services':_0x4594aa[_0x50eead(0xdf)][_0x50eead(0xc7)](summarizeLoadedManifest),'errors':_0x4594aa[_0x50eead(0xc5)]['errors'],'warnings':_0x4594aa[_0x50eead(0xc5)][_0x50eead(0x105)]},'message':formatValidationFailure(_0x4594aa[_0x50eead(0xc5)])};if(_0x4594aa[_0x50eead(0xd9)]===_0x50eead(0xce)||_0x4594aa[_0x50eead(0xdf)][_0x50eead(0xf6)]!==0x1)return{'ok':!![],'data':{'file':_0x4594aa[_0x50eead(0xec)],'hash':_0x4594aa[_0x50eead(0xd1)],'kind':_0x4594aa['kind'],'serviceCount':_0x4594aa[_0x50eead(0xdf)][_0x50eead(0xf6)],'commandCount':_0x4594aa[_0x50eead(0xdf)][_0x50eead(0xff)]((_0x3169bf,_0x4a3a5a)=>_0x3169bf+(_0x4a3a5a[_0x50eead(0xe8)]?.['commands'][_0x50eead(0xf6)]??0x0),0x0),'services':_0x4594aa[_0x50eead(0xdf)][_0x50eead(0xc7)](summarizeLoadedManifest),'warnings':_0x4594aa[_0x50eead(0xc5)]['warnings']},'message':_0x50eead(0xf5)};return{'ok':!![],'data':{'file':_0x4594aa[_0x50eead(0xec)],'hash':_0x4594aa[_0x50eead(0xd1)],'kind':_0x4594aa[_0x50eead(0xd9)],'service':_0x4594aa[_0x50eead(0xe8)]?.['service'],'version':_0x4594aa[_0x50eead(0xe8)]?.[_0x50eead(0xe5)],'commandCount':_0x4594aa['normalizedManifest']?.[_0x50eead(0xdc)][_0x50eead(0xf6)]??0x0,'commands':_0x4594aa[_0x50eead(0xe8)]?.['commands'][_0x50eead(0xc7)](_0x50ca37=>({'path':_0x50ca37[_0x50eead(0xfa)],'risk':_0x50ca37['risk'],'target':toPublicServiceTreeTarget(_0x50ca37[_0x50eead(0xed)])})),'warnings':_0x4594aa['report'][_0x50eead(0x105)]},'message':_0x50eead(0xe2)};}},{'service':a41_0x569d0f(0xe6),'command':a41_0x569d0f(0xe9),'description':a41_0x569d0f(0xe7),'risk':'write','confirmationDescription':'将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x1c23f3){const _0x299b21=a41_0x569d0f,_0x5b2972=loadServiceManifestFromFile(_0x1c23f3['str'](_0x299b21(0xc8)));return{'method':_0x299b21(0x101),'url':getServiceRegistryPath(),'body':{'file':_0x5b2972['filePath'],'hash':_0x5b2972[_0x299b21(0xd1)],'kind':_0x5b2972[_0x299b21(0xd9)],'ok':_0x5b2972['report']['ok'],'service':_0x5b2972['normalizedManifest']?.[_0x299b21(0xe6)],'version':_0x5b2972[_0x299b21(0xe8)]?.[_0x299b21(0xe5)],'serviceCount':_0x5b2972['manifests'][_0x299b21(0xf6)],'services':_0x5b2972['manifests'][_0x299b21(0xc7)](_0x224714=>({'service':_0x224714[_0x299b21(0xe8)]?.['service'],'version':_0x224714[_0x299b21(0xe8)]?.['version'],'commandCount':_0x224714[_0x299b21(0xe8)]?.['commands'][_0x299b21(0xf6)]??0x0,'errors':_0x224714[_0x299b21(0xc5)][_0x299b21(0xee)]})),'errors':_0x5b2972[_0x299b21(0xc5)][_0x299b21(0xee)],'commandCount':_0x5b2972[_0x299b21(0xe8)]?.['commands'][_0x299b21(0xf6)]??0x0},'description':_0x299b21(0xd3)};},async 'execute'(_0x30ccd2){const _0x5e9358=a41_0x569d0f,_0x120874=importServiceManifest(_0x30ccd2[_0x5e9358(0xdd)]('file'));if(_0x120874['entries'][_0x5e9358(0xf6)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x120874[_0x5e9358(0xc1)],'imported':_0x120874[_0x5e9358(0xfc)],'updated':_0x120874[_0x5e9358(0xd7)],'serviceCount':_0x120874[_0x5e9358(0xf3)],'services':_0x120874['entries'][_0x5e9358(0xc7)](summarizeService)},'message':'Imported\x20'+_0x120874[_0x5e9358(0xfc)]+_0x5e9358(0xfd)+_0x120874[_0x5e9358(0xd7)]+_0x5e9358(0xc6)};return{'ok':!![],'data':{'registryPath':_0x120874[_0x5e9358(0xc1)],'replaced':_0x120874[_0x5e9358(0xeb)],'imported':_0x120874[_0x5e9358(0xfc)],'updated':_0x120874[_0x5e9358(0xd7)],'serviceCount':_0x120874[_0x5e9358(0xf3)],'service':summarizeService(_0x120874['entry'])},'message':(_0x120874[_0x5e9358(0xeb)]?'Updated':_0x5e9358(0xfe))+_0x5e9358(0xd0)+_0x120874[_0x5e9358(0xe0)]['serviceCode']+'.'};}},{'service':'service','command':a41_0x569d0f(0xcd),'description':'将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','risk':a41_0x569d0f(0xef),'confirmationDescription':a41_0x569d0f(0xc3),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x50e5a7){const _0x1bbec6=a41_0x569d0f,_0x46e7bf=getLocalServiceEntry(_0x50e5a7[_0x1bbec6(0xdd)](_0x1bbec6(0xe6)));return{'method':'WRITE','url':_0x50e5a7[_0x1bbec6(0xdd)](_0x1bbec6(0xc8)),'body':{'service':_0x50e5a7['str']('service'),'found':Boolean(_0x46e7bf),'version':_0x46e7bf?.[_0x1bbec6(0xe5)],'source':_0x46e7bf?.[_0x1bbec6(0xf2)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0xa089bb){const _0x174324=a41_0x569d0f,_0x868159=exportServiceManifest(_0xa089bb['str'](_0x174324(0xe6)),_0xa089bb[_0x174324(0xdd)](_0x174324(0xc8)));return{'ok':!![],'data':{'registryPath':_0x868159['registryPath'],'file':_0x868159['filePath'],'service':summarizeService(_0x868159[_0x174324(0xe0)])},'message':'Exported\x20service\x20'+_0x868159['entry']['serviceCode']+'.'};}},{'service':'service','command':a41_0x569d0f(0xc0),'description':a41_0x569d0f(0xf9),'risk':a41_0x569d0f(0xfb),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x28c95c=a41_0x569d0f,_0x25bbd2=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x25bbd2[_0x28c95c(0xf6)],'services':_0x25bbd2[_0x28c95c(0xc7)](summarizeService)}};}},{'service':a41_0x569d0f(0xe6),'command':'remove','description':a41_0x569d0f(0xf4),'risk':a41_0x569d0f(0xef),'confirmationDescription':a41_0x569d0f(0xc4),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x4c05e9){const _0x52c914=a41_0x569d0f,_0x1fdeba=getLocalServiceEntry(_0x4c05e9[_0x52c914(0xdd)](_0x52c914(0xe6)));return{'method':_0x52c914(0x101),'url':getServiceRegistryPath(),'body':{'service':_0x4c05e9[_0x52c914(0xdd)]('service'),'found':Boolean(_0x1fdeba),'version':_0x1fdeba?.[_0x52c914(0xe5)],'source':_0x1fdeba?.[_0x52c914(0xf2)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x43ec21){const _0x5660da=a41_0x569d0f,_0x1c94ba=removeServiceManifest(_0x43ec21['str'](_0x5660da(0xe6)));return{'ok':!![],'data':{'registryPath':_0x1c94ba[_0x5660da(0xc1)],'serviceCount':_0x1c94ba['serviceCount'],'service':summarizeService(_0x1c94ba['entry'])},'message':_0x5660da(0xea)+_0x1c94ba['entry'][_0x5660da(0xc9)]+'.'};}},{'service':a41_0x569d0f(0xe6),'command':a41_0x569d0f(0xda),'description':a41_0x569d0f(0xf8),'risk':a41_0x569d0f(0xfb),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x2879c6){const _0xbd0d90=a41_0x569d0f,_0x4a4d77=getLocalServiceEntry(_0x2879c6['str'](_0xbd0d90(0xe6)));if(!_0x4a4d77)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x2879c6['str'](_0xbd0d90(0xe6))},'message':_0xbd0d90(0xcb)+_0x2879c6['str'](_0xbd0d90(0xe6))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x4a4d77),'manifest':_0x4a4d77['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x4a4d77[_0xbd0d90(0xe8)])}};}}];
1
+ const a41_0x37c540=a41_0x2f3e;(function(_0x2939bc,_0x8eb1bc){const _0x55e5e7=a41_0x2f3e,_0x4a9be2=_0x2939bc();while(!![]){try{const _0x180915=-parseInt(_0x55e5e7(0x160))/0x1*(-parseInt(_0x55e5e7(0x17d))/0x2)+-parseInt(_0x55e5e7(0x177))/0x3+parseInt(_0x55e5e7(0x19b))/0x4*(-parseInt(_0x55e5e7(0x157))/0x5)+-parseInt(_0x55e5e7(0x15c))/0x6*(parseInt(_0x55e5e7(0x167))/0x7)+parseInt(_0x55e5e7(0x165))/0x8*(parseInt(_0x55e5e7(0x15d))/0x9)+parseInt(_0x55e5e7(0x183))/0xa*(-parseInt(_0x55e5e7(0x15f))/0xb)+parseInt(_0x55e5e7(0x16c))/0xc;if(_0x180915===_0x8eb1bc)break;else _0x4a9be2['push'](_0x4a9be2['shift']());}catch(_0x293a70){_0x4a9be2['push'](_0x4a9be2['shift']());}}}(a41_0x5410,0x21a4e));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_0x37c540(0x194),'type':'string','required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':a41_0x37c540(0x155),'type':a41_0x37c540(0x18f),'required':!![],'description':a41_0x37c540(0x19a),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function a41_0x2f3e(_0x48f758,_0x57a320){_0x48f758=_0x48f758-0x14f;const _0x5410ae=a41_0x5410();let _0x2f3e09=_0x5410ae[_0x48f758];return _0x2f3e09;}function summarizeService(_0x198554){const _0x2aa2b4=a41_0x37c540;return{'serviceCode':_0x198554[_0x2aa2b4(0x18a)],'name':_0x198554[_0x2aa2b4(0x173)][_0x2aa2b4(0x155)][_0x2aa2b4(0x16f)],'version':_0x198554[_0x2aa2b4(0x156)],'importedAt':_0x198554[_0x2aa2b4(0x189)],'source':_0x198554[_0x2aa2b4(0x158)],'commandCount':_0x198554[_0x2aa2b4(0x173)]['commands'][_0x2aa2b4(0x15b)],'commands':_0x198554[_0x2aa2b4(0x173)][_0x2aa2b4(0x191)][_0x2aa2b4(0x180)](_0x26bac1=>({'path':_0x26bac1[_0x2aa2b4(0x17a)],'description':_0x26bac1[_0x2aa2b4(0x16d)],'risk':_0x26bac1['risk'],'target':toPublicServiceTreeTarget(_0x26bac1[_0x2aa2b4(0x16b)]),'flags':_0x26bac1['flags'][_0x2aa2b4(0x180)](_0x5b6988=>({'name':_0x5b6988[_0x2aa2b4(0x16f)],'cliName':_0x5b6988[_0x2aa2b4(0x151)],'type':_0x5b6988['type'],'required':_0x5b6988[_0x2aa2b4(0x196)]===!![]}))}))};}function a41_0x5410(){const _0x534206=['Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','Local\x20service\x20code,\x20for\x20example\x20crm','219988FpumMA','manifest','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','cliName','import','entries','read','service','version','25uQntBw','source','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','\x20service\x20','length','6nWTDtF','63QeuFuh','Exported\x20service\x20','11YAMOmT','8689NBSIoQ','errors','report','export','str','233552ySkwVR','detail','1303757plksHM','updated','replaced','entry','target','4013568mwqolZ','description','将\x20Service\x20Tree\x20清单导入本地运行态注册表','name','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','Service\x20manifest\x20validation\x20passed.','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','normalizedManifest','write','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','从本地运行态注册表移除\x20Service\x20Tree\x20清单','176535rdJMjf','Imported\x20','\x20service(s).','cliPath','WRITE','serviceCount','38WWUztx','warnings','registry','map','manifests','imported','460260lEeWct','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','validate','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','Service\x20registry\x20validation\x20passed.','registryPath','importedAt','serviceCode','reduce','\x20service(s),\x20updated\x20','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','hash','string','filePath','commands','kind','risk','file','remove','required','Updated','registryIndex'];a41_0x5410=function(){return _0x534206;};return a41_0x5410();}function summarizeLoadedManifest(_0x308bb4){const _0x47d14f=a41_0x37c540;return{'service':_0x308bb4['normalizedManifest']?.[_0x47d14f(0x155)],'version':_0x308bb4[_0x47d14f(0x173)]?.[_0x47d14f(0x156)],'commandCount':_0x308bb4[_0x47d14f(0x173)]?.['commands'][_0x47d14f(0x15b)]??0x0,'commands':_0x308bb4['normalizedManifest']?.['commands'][_0x47d14f(0x180)](_0x370424=>({'path':_0x370424[_0x47d14f(0x17a)],'risk':_0x370424[_0x47d14f(0x193)],'target':toPublicServiceTreeTarget(_0x370424['target'])}))??[],'registryIndex':_0x308bb4[_0x47d14f(0x198)],'registryServiceCode':_0x308bb4['registryServiceCode'],'errors':_0x308bb4['report'][_0x47d14f(0x161)],'warnings':_0x308bb4[_0x47d14f(0x162)]['warnings']};}export const serviceDefinitions=[{'service':a41_0x37c540(0x155),'command':a41_0x37c540(0x185),'description':a41_0x37c540(0x175),'risk':a41_0x37c540(0x154),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x569ebd){const _0x226053=a41_0x37c540,_0x399826=loadServiceManifestFromFile(_0x569ebd[_0x226053(0x164)](_0x226053(0x194)));if(!_0x399826['report']['ok'])return{'ok':![],'data':{'file':_0x399826[_0x226053(0x190)],'hash':_0x399826[_0x226053(0x18e)],'kind':_0x399826[_0x226053(0x192)],'serviceCount':_0x399826['manifests'][_0x226053(0x15b)],'services':_0x399826['manifests']['map'](summarizeLoadedManifest),'errors':_0x399826[_0x226053(0x162)]['errors'],'warnings':_0x399826[_0x226053(0x162)][_0x226053(0x17e)]},'message':formatValidationFailure(_0x399826[_0x226053(0x162)])};if(_0x399826[_0x226053(0x192)]===_0x226053(0x17f)||_0x399826[_0x226053(0x181)][_0x226053(0x15b)]!==0x1)return{'ok':!![],'data':{'file':_0x399826[_0x226053(0x190)],'hash':_0x399826[_0x226053(0x18e)],'kind':_0x399826[_0x226053(0x192)],'serviceCount':_0x399826[_0x226053(0x181)][_0x226053(0x15b)],'commandCount':_0x399826[_0x226053(0x181)][_0x226053(0x18b)]((_0x7192b8,_0x12e049)=>_0x7192b8+(_0x12e049[_0x226053(0x173)]?.[_0x226053(0x191)]['length']??0x0),0x0),'services':_0x399826['manifests'][_0x226053(0x180)](summarizeLoadedManifest),'warnings':_0x399826[_0x226053(0x162)][_0x226053(0x17e)]},'message':_0x226053(0x187)};return{'ok':!![],'data':{'file':_0x399826[_0x226053(0x190)],'hash':_0x399826[_0x226053(0x18e)],'kind':_0x399826['kind'],'service':_0x399826['normalizedManifest']?.[_0x226053(0x155)],'version':_0x399826[_0x226053(0x173)]?.[_0x226053(0x156)],'commandCount':_0x399826['normalizedManifest']?.['commands'][_0x226053(0x15b)]??0x0,'commands':_0x399826[_0x226053(0x173)]?.[_0x226053(0x191)][_0x226053(0x180)](_0xd52596=>({'path':_0xd52596[_0x226053(0x17a)],'risk':_0xd52596['risk'],'target':toPublicServiceTreeTarget(_0xd52596['target'])})),'warnings':_0x399826[_0x226053(0x162)][_0x226053(0x17e)]},'message':_0x226053(0x171)};}},{'service':'service','command':a41_0x37c540(0x152),'description':a41_0x37c540(0x16e),'risk':a41_0x37c540(0x174),'confirmationDescription':a41_0x37c540(0x172),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x8f1991){const _0x1c496e=a41_0x37c540,_0x1fd18d=loadServiceManifestFromFile(_0x8f1991[_0x1c496e(0x164)](_0x1c496e(0x194)));return{'method':_0x1c496e(0x17b),'url':getServiceRegistryPath(),'body':{'file':_0x1fd18d[_0x1c496e(0x190)],'hash':_0x1fd18d['hash'],'kind':_0x1fd18d[_0x1c496e(0x192)],'ok':_0x1fd18d[_0x1c496e(0x162)]['ok'],'service':_0x1fd18d[_0x1c496e(0x173)]?.['service'],'version':_0x1fd18d[_0x1c496e(0x173)]?.['version'],'serviceCount':_0x1fd18d[_0x1c496e(0x181)]['length'],'services':_0x1fd18d['manifests'][_0x1c496e(0x180)](_0x424417=>({'service':_0x424417['normalizedManifest']?.[_0x1c496e(0x155)],'version':_0x424417[_0x1c496e(0x173)]?.[_0x1c496e(0x156)],'commandCount':_0x424417[_0x1c496e(0x173)]?.[_0x1c496e(0x191)][_0x1c496e(0x15b)]??0x0,'errors':_0x424417[_0x1c496e(0x162)][_0x1c496e(0x161)]})),'errors':_0x1fd18d[_0x1c496e(0x162)][_0x1c496e(0x161)],'commandCount':_0x1fd18d[_0x1c496e(0x173)]?.['commands'][_0x1c496e(0x15b)]??0x0},'description':_0x1c496e(0x184)};},async 'execute'(_0x23dedf){const _0x3960ce=a41_0x37c540,_0x45f860=importServiceManifest(_0x23dedf[_0x3960ce(0x164)](_0x3960ce(0x194)));if(_0x45f860[_0x3960ce(0x153)][_0x3960ce(0x15b)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x45f860['registryPath'],'imported':_0x45f860['imported'],'updated':_0x45f860['updated'],'serviceCount':_0x45f860['serviceCount'],'services':_0x45f860['entries']['map'](summarizeService)},'message':_0x3960ce(0x178)+_0x45f860['imported']+_0x3960ce(0x18c)+_0x45f860['updated']+_0x3960ce(0x179)};return{'ok':!![],'data':{'registryPath':_0x45f860[_0x3960ce(0x188)],'replaced':_0x45f860[_0x3960ce(0x169)],'imported':_0x45f860[_0x3960ce(0x182)],'updated':_0x45f860[_0x3960ce(0x168)],'serviceCount':_0x45f860['serviceCount'],'service':summarizeService(_0x45f860['entry'])},'message':(_0x45f860['replaced']?_0x3960ce(0x197):'Imported')+_0x3960ce(0x15a)+_0x45f860['entry'][_0x3960ce(0x18a)]+'.'};}},{'service':a41_0x37c540(0x155),'command':a41_0x37c540(0x163),'description':a41_0x37c540(0x18d),'risk':'write','confirmationDescription':a41_0x37c540(0x14f),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x332825){const _0x3b9487=a41_0x37c540,_0x3d6334=getLocalServiceEntry(_0x332825['str'](_0x3b9487(0x155)));return{'method':_0x3b9487(0x17b),'url':_0x332825[_0x3b9487(0x164)](_0x3b9487(0x194)),'body':{'service':_0x332825[_0x3b9487(0x164)](_0x3b9487(0x155)),'found':Boolean(_0x3d6334),'version':_0x3d6334?.[_0x3b9487(0x156)],'source':_0x3d6334?.[_0x3b9487(0x158)]},'description':_0x3b9487(0x199)};},async 'execute'(_0xad12b3){const _0x2e39e4=a41_0x37c540,_0x52e5c6=exportServiceManifest(_0xad12b3['str'](_0x2e39e4(0x155)),_0xad12b3['str']('file'));return{'ok':!![],'data':{'registryPath':_0x52e5c6[_0x2e39e4(0x188)],'file':_0x52e5c6[_0x2e39e4(0x190)],'service':summarizeService(_0x52e5c6[_0x2e39e4(0x16a)])},'message':_0x2e39e4(0x15e)+_0x52e5c6[_0x2e39e4(0x16a)][_0x2e39e4(0x18a)]+'.'};}},{'service':a41_0x37c540(0x155),'command':'list','description':a41_0x37c540(0x186),'risk':a41_0x37c540(0x154),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x3e72f5=a41_0x37c540,_0x370be2=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x370be2[_0x3e72f5(0x15b)],'services':_0x370be2[_0x3e72f5(0x180)](summarizeService)}};}},{'service':'service','command':a41_0x37c540(0x195),'description':a41_0x37c540(0x176),'risk':a41_0x37c540(0x174),'confirmationDescription':a41_0x37c540(0x159),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x2015fc){const _0x56cb30=a41_0x37c540,_0x455b2b=getLocalServiceEntry(_0x2015fc[_0x56cb30(0x164)](_0x56cb30(0x155)));return{'method':_0x56cb30(0x17b),'url':getServiceRegistryPath(),'body':{'service':_0x2015fc[_0x56cb30(0x164)](_0x56cb30(0x155)),'found':Boolean(_0x455b2b),'version':_0x455b2b?.[_0x56cb30(0x156)],'source':_0x455b2b?.[_0x56cb30(0x158)]},'description':_0x56cb30(0x150)};},async 'execute'(_0x20beae){const _0x582169=a41_0x37c540,_0x35679f=removeServiceManifest(_0x20beae[_0x582169(0x164)]('service'));return{'ok':!![],'data':{'registryPath':_0x35679f[_0x582169(0x188)],'serviceCount':_0x35679f[_0x582169(0x17c)],'service':summarizeService(_0x35679f[_0x582169(0x16a)])},'message':'Removed\x20service\x20'+_0x35679f['entry'][_0x582169(0x18a)]+'.'};}},{'service':a41_0x37c540(0x155),'command':a41_0x37c540(0x166),'description':a41_0x37c540(0x170),'risk':a41_0x37c540(0x154),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x14ba64){const _0x318325=a41_0x37c540,_0x457c3e=getLocalServiceEntry(_0x14ba64[_0x318325(0x164)](_0x318325(0x155)));if(!_0x457c3e)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x14ba64['str'](_0x318325(0x155))},'message':'Local\x20service\x20not\x20found:\x20'+_0x14ba64[_0x318325(0x164)](_0x318325(0x155))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x457c3e),'manifest':_0x457c3e[_0x318325(0x19c)],'normalizedManifest':toPublicNormalizedServiceTree(_0x457c3e[_0x318325(0x173)])}};}}];
@@ -1 +1 @@
1
- const a42_0x3a3caa=a42_0x3a72;(function(_0x253f3f,_0x112752){const _0x28bfa8=a42_0x3a72,_0x475090=_0x253f3f();while(!![]){try{const _0x117450=parseInt(_0x28bfa8(0xe6))/0x1+parseInt(_0x28bfa8(0xfb))/0x2*(parseInt(_0x28bfa8(0xc1))/0x3)+-parseInt(_0x28bfa8(0xcf))/0x4*(parseInt(_0x28bfa8(0xc0))/0x5)+parseInt(_0x28bfa8(0xff))/0x6*(parseInt(_0x28bfa8(0xe1))/0x7)+parseInt(_0x28bfa8(0xe7))/0x8*(parseInt(_0x28bfa8(0xf0))/0x9)+parseInt(_0x28bfa8(0xf4))/0xa*(-parseInt(_0x28bfa8(0x108))/0xb)+parseInt(_0x28bfa8(0xe5))/0xc;if(_0x117450===_0x112752)break;else _0x475090['push'](_0x475090['shift']());}catch(_0x11205f){_0x475090['push'](_0x475090['shift']());}}}(a42_0x17f1,0x3e8a1));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a42_0x3a3caa(0xfe);function a42_0x3a72(_0x44430b,_0x546408){_0x44430b=_0x44430b-0xb5;const _0x17f170=a42_0x17f1();let _0x3a7279=_0x17f170[_0x44430b];return _0x3a7279;}export function getServiceRegistryPath(_0x35bff2={}){const _0x43f450=a42_0x3a3caa;return resolve(_0x35bff2[_0x43f450(0xd1)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x4d28ce={}){const _0x536e9e=a42_0x3a3caa,_0x4e59e4=getServiceRegistryPath(_0x4d28ce);if(!existsSync(_0x4e59e4))return emptyServiceRegistry();try{const _0x5fb11a=readFileSync(_0x4e59e4,_0x536e9e(0xdc));if(!_0x5fb11a[_0x536e9e(0xca)]())return emptyServiceRegistry();const _0x26d5b2=JSON[_0x536e9e(0xd0)](_0x5fb11a);if(_0x26d5b2[_0x536e9e(0xb6)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x536e9e(0x102)](_0x536e9e(0xdd)+String(_0x26d5b2[_0x536e9e(0xb6)]),_0x536e9e(0xd2)+_0x4e59e4+'.');if(!Array[_0x536e9e(0xed)](_0x26d5b2[_0x536e9e(0xfa)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x26d5b2[_0x536e9e(0xec)],'services':_0x26d5b2[_0x536e9e(0xfa)]};}catch(_0x1b4fcf){if(_0x1b4fcf instanceof Error&&_0x1b4fcf[_0x536e9e(0xf9)]===_0x536e9e(0xbc))throw _0x1b4fcf;throw CliErrors[_0x536e9e(0x102)](_0x536e9e(0xfc)+_0x4e59e4,_0x536e9e(0xd9));}}export function writeServiceRegistry(_0x53de2c,_0x9fd900={}){const _0x49d598=a42_0x3a3caa,_0x32a8e4=getServiceRegistryPath(_0x9fd900),_0x5a350b=dirname(_0x32a8e4);!existsSync(_0x5a350b)&&mkdirSync(_0x5a350b,{'recursive':!![]});const _0x540b45=_0x32a8e4+_0x49d598(0xeb);try{writeFileSync(_0x540b45,JSON['stringify'](_0x53de2c,null,0x2)+'\x0a',{'encoding':_0x49d598(0xdc),'mode':0x180}),renameSync(_0x540b45,_0x32a8e4);}catch(_0xc8c7b2){try{unlinkSync(_0x540b45);}catch{}if(_0xc8c7b2?.[_0x49d598(0xb9)]==='ENOENT')throw CliErrors[_0x49d598(0x102)]('Cannot\x20write\x20service\x20registry:\x20'+_0x32a8e4);throw _0xc8c7b2;}return _0x32a8e4;}export function loadServiceManifestFromFile(_0x1c2c6d){const _0x49646b=a42_0x3a3caa,_0x2387df=resolve(_0x1c2c6d);if(!existsSync(_0x2387df))throw CliErrors['validation'](_0x49646b(0x106)+_0x1c2c6d);let _0x5213da;const _0x5c574e=readFileSync(_0x2387df,'utf8');try{_0x5213da=JSON[_0x49646b(0xd0)](_0x5c574e);}catch{throw CliErrors[_0x49646b(0x102)](_0x49646b(0xde)+_0x1c2c6d,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x27a975=sha256(_0x5c574e),_0x12a953=extractLoadedServiceManifests(_0x5213da,_0x27a975),_0x3456e6=aggregateValidationReports(_0x12a953),_0x3ef93d=_0x12a953[0x0];return{'filePath':_0x2387df,'hash':_0x27a975,'kind':isServiceRegistryLike(_0x5213da)?_0x49646b(0x100):'manifest','manifest':_0x3ef93d?.[_0x49646b(0xba)]??_0x5213da,'report':_0x3456e6,'normalizedManifest':_0x12a953[_0x49646b(0xd7)]===0x1?_0x3ef93d?.[_0x49646b(0xbb)]:undefined,'manifests':_0x12a953};}export function importServiceManifest(_0x27812b,_0x25290c={}){const _0xcdd141=a42_0x3a3caa,_0x4a3d9f=loadServiceManifestFromFile(_0x27812b);if(!_0x4a3d9f[_0xcdd141(0xe0)]['ok'])throw CliErrors[_0xcdd141(0x102)](formatValidationFailure(_0x4a3d9f[_0xcdd141(0xe0)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x4a3d9f['manifests'][_0xcdd141(0xd7)]===0x0)throw CliErrors[_0xcdd141(0x102)](_0xcdd141(0xc2),_0xcdd141(0xf8));const _0x35b37f=readServiceRegistry(_0x25290c),_0xfa76cf=(_0x25290c['now']??(()=>new Date()))()[_0xcdd141(0x109)](),_0xa26407=[];let _0x460984=0x0,_0x2605b6=0x0;for(const _0xfeaf9 of _0x4a3d9f['manifests']){if(!_0xfeaf9[_0xcdd141(0xbb)])continue;const _0x1bb934=_0xfeaf9['normalizedManifest'][_0xcdd141(0xe4)][_0xcdd141(0xb9)],_0x57dda9={'serviceCode':_0x1bb934,'version':_0xfeaf9[_0xcdd141(0xbb)][_0xcdd141(0xf1)],'importedAt':_0xfa76cf,'source':{'type':_0xcdd141(0xbe),'path':_0x4a3d9f[_0xcdd141(0xd3)],'hash':_0xfeaf9[_0xcdd141(0xf5)]},'manifest':_0xfeaf9[_0xcdd141(0xba)],'normalizedManifest':_0xfeaf9[_0xcdd141(0xbb)]},_0x59c313=_0x35b37f[_0xcdd141(0xfa)][_0xcdd141(0xdf)](_0x1253ce=>_0x1253ce[_0xcdd141(0xb5)]===_0x1bb934);_0x59c313>=0x0?(_0x35b37f['services'][_0x59c313]=_0x57dda9,_0x2605b6++):(_0x35b37f[_0xcdd141(0xfa)]['push'](_0x57dda9),_0x460984++),_0xa26407[_0xcdd141(0x101)](_0x57dda9);}_0x35b37f['services'][_0xcdd141(0xc8)]((_0x3de468,_0xfd0c01)=>_0x3de468['serviceCode']['localeCompare'](_0xfd0c01[_0xcdd141(0xb5)])),_0x35b37f[_0xcdd141(0xec)]=_0xfa76cf;const _0x19a2d3=writeServiceRegistry(_0x35b37f,_0x25290c);return{'registryPath':_0x19a2d3,'entry':_0xa26407[0x0],'replaced':_0xa26407[_0xcdd141(0xd7)]===0x1?_0x2605b6===0x1:_0x2605b6>0x0,'entries':_0xa26407,'imported':_0x460984,'updated':_0x2605b6,'serviceCount':_0x35b37f[_0xcdd141(0xfa)][_0xcdd141(0xd7)]};}export function exportServiceManifest(_0x2e2e97,_0x38a274,_0x3bf1ea={}){const _0x5a4cb5=a42_0x3a3caa,_0x4da34c=getServiceRegistryPath(_0x3bf1ea),_0x54c40c=getLocalServiceEntry(_0x2e2e97,_0x3bf1ea);if(!_0x54c40c)throw CliErrors[_0x5a4cb5(0x102)]('Local\x20service\x20not\x20found:\x20'+_0x2e2e97,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x10e198=resolve(_0x38a274),_0x1f9a05=dirname(_0x10e198);return!existsSync(_0x1f9a05)&&mkdirSync(_0x1f9a05,{'recursive':!![]}),writeFileSync(_0x10e198,JSON[_0x5a4cb5(0xc3)](_0x54c40c[_0x5a4cb5(0xba)],null,0x2)+'\x0a',{'encoding':_0x5a4cb5(0xdc),'mode':0x180}),{'registryPath':_0x4da34c,'filePath':_0x10e198,'entry':_0x54c40c};}export function removeServiceManifest(_0x3b1bbe,_0xa5ee6={}){const _0x3a76f1=a42_0x3a3caa,_0x32247b=readServiceRegistry(_0xa5ee6),_0x386773=_0x3b1bbe[_0x3a76f1(0xca)](),_0xece2ad=_0x32247b[_0x3a76f1(0xfa)][_0x3a76f1(0xdf)](_0x173232=>_0x173232['serviceCode']===_0x386773);if(_0xece2ad<0x0)throw CliErrors[_0x3a76f1(0x102)](_0x3a76f1(0xfd)+_0x386773,_0x3a76f1(0xef));const [_0x34ccfd]=_0x32247b[_0x3a76f1(0xfa)][_0x3a76f1(0xd6)](_0xece2ad,0x1),_0x67a9ce=(_0xa5ee6[_0x3a76f1(0xcc)]??(()=>new Date()))()[_0x3a76f1(0x109)]();_0x32247b[_0x3a76f1(0xec)]=_0x67a9ce;const _0x2fde32=writeServiceRegistry(_0x32247b,_0xa5ee6);return{'registryPath':_0x2fde32,'entry':_0x34ccfd,'serviceCount':_0x32247b[_0x3a76f1(0xfa)][_0x3a76f1(0xd7)]};}export function listLocalServices(_0x4c865c={}){const _0x69772=a42_0x3a3caa;return readServiceRegistry(_0x4c865c)[_0x69772(0xfa)];}export function getLocalServiceEntry(_0x19746b,_0x133bb6={}){const _0x206a33=a42_0x3a3caa;return readServiceRegistry(_0x133bb6)['services']['find'](_0x44108c=>_0x44108c[_0x206a33(0xb5)]===_0x19746b[_0x206a33(0xca)]());}export function listLocalServiceTrees(_0x2d69ac={}){const _0x4f6619=a42_0x3a3caa;return readServiceRegistry(_0x2d69ac)[_0x4f6619(0xfa)][_0x4f6619(0xb8)](_0x2a5f5f=>_0x2a5f5f[_0x4f6619(0xbb)]);}export function inspectServiceRegistry(_0x874924={}){const _0x27b340=a42_0x3a3caa,_0xb38e0e=getServiceRegistryPath(_0x874924);if(!existsSync(_0xb38e0e))return emptyServiceRegistryInspection(_0xb38e0e,'missing',![]);try{const _0x72f80b=readFileSync(_0xb38e0e,_0x27b340(0xdc));if(!_0x72f80b[_0x27b340(0xca)]())return emptyServiceRegistryInspection(_0xb38e0e,_0x27b340(0xcb),!![]);const _0x110c47=JSON[_0x27b340(0xd0)](_0x72f80b);if(_0x110c47[_0x27b340(0xb6)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0xb38e0e,_0x27b340(0xd5),!![]),'schemaVersion':_0x110c47['schemaVersion'],'message':_0x27b340(0xc5)+String(_0x110c47[_0x27b340(0xb6)])};if(!Array[_0x27b340(0xed)](_0x110c47[_0x27b340(0xfa)]))return{...emptyServiceRegistryInspection(_0xb38e0e,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x110c47['updatedAt'],'message':'services\x20must\x20be\x20an\x20array'};const _0x3f5e63=_0x110c47['services'][_0x27b340(0xb8)](summarizeLocalServiceEntry);return{'registryPath':_0xb38e0e,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x110c47['updatedAt'],'serviceCount':_0x3f5e63[_0x27b340(0xd7)],'commandCount':_0x3f5e63[_0x27b340(0xea)]((_0x2dcb13,_0x15cda6)=>_0x2dcb13+_0x15cda6['commandCount'],0x0),'services':_0x3f5e63};}catch(_0x423e6a){return{...emptyServiceRegistryInspection(_0xb38e0e,_0x27b340(0xd5),!![]),'message':_0x423e6a instanceof Error?_0x423e6a[_0x27b340(0xc6)]:String(_0x423e6a)};}}export function formatValidationFailure(_0x58616e){const _0x23e2d1=a42_0x3a3caa,_0xcee6d6=_0x58616e['errors'][_0x23e2d1(0xb8)](_0x14224a=>_0x14224a[_0x23e2d1(0xda)]+':\x20'+_0x14224a[_0x23e2d1(0xc6)]);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0xcee6d6[_0x23e2d1(0x104)]('\x0a');}function extractLoadedServiceManifests(_0x451dd0,_0x183a2d){const _0x52f9db=a42_0x3a3caa;if(!isServiceRegistryLike(_0x451dd0)){const _0x5868cd=_0x451dd0,{manifest:_0x151ce2,errors:_0x4d9fb0}=adaptServiceTreeManifestForLegacyFramework(_0x5868cd),_0x5dfb25=validateServiceTreeManifest(_0x151ce2),_0x1aede9=mergeValidationErrors(_0x5dfb25,_0x4d9fb0);return[{'manifest':_0x5868cd,'report':_0x1aede9,'normalizedManifest':_0x1aede9['ok']?normalizeServiceTreeManifest(_0x151ce2):undefined,'sourceHash':_0x183a2d}];}return _0x451dd0[_0x52f9db(0xfa)][_0x52f9db(0xb8)]((_0x900935,_0x2ddd32)=>{const _0x132360=_0x52f9db,_0x4cfaac=isObjectRecord(_0x900935)?_0x900935[_0x132360(0xba)]:undefined,{manifest:_0x16f1f9,errors:_0x57313f}=adaptServiceTreeManifestForLegacyFramework(_0x4cfaac),_0x39f227=validateServiceTreeManifest(_0x16f1f9),_0x4a95f5=mergeValidationErrors(_0x39f227,_0x57313f),_0x412a02=isObjectRecord(_0x900935)&&typeof _0x900935['serviceCode']===_0x132360(0x103)?_0x900935[_0x132360(0xb5)]:undefined;return{'manifest':_0x4cfaac,'report':_0x4a95f5,'normalizedManifest':_0x4a95f5['ok']?normalizeServiceTreeManifest(_0x16f1f9):undefined,'sourceHash':sha256(JSON[_0x132360(0xc3)](_0x4cfaac,null,0x2)+'\x0a'),'registryIndex':_0x2ddd32,'registryServiceCode':_0x412a02};});}function mergeValidationErrors(_0x207ae7,_0x22cceb){const _0x49b549=a42_0x3a3caa,_0x629d04=_0x207ae7[_0x49b549(0xbf)][_0x49b549(0xb8)](_0x1f0e6f=>_0x1f0e6f[_0x49b549(0xc6)]===_0x49b549(0xce)?{..._0x1f0e6f,'message':_0x49b549(0xc7)}:_0x1f0e6f),_0x4a601c=[..._0x22cceb,..._0x629d04];return{'ok':_0x4a601c['length']===0x0,'errors':_0x4a601c,'warnings':_0x207ae7[_0x49b549(0xbd)]};}function a42_0x17f1(){const _0xe95e55=['10tPMeXh','sourceHash','kind','description','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','name','services','2GqjhMi','Invalid\x20service\x20registry\x20JSON:\x20','Local\x20service\x20not\x20found:\x20','service.json','96wUmMKg','registry','push','validation','string','join','sha256','Service\x20manifest\x20file\x20not\x20found:\x20','update','4507591YGVakV','toISOString','serviceCode','schemaVersion','target','map','code','manifest','normalizedManifest','CliError','warnings','file','errors','115RhQNKs','384357fPQUhH','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','stringify','].manifest.','Unsupported\x20schemaVersion:\x20','message','bff\x20target\x20requires\x20functionName.','sort','flatMap','trim','empty','now','startsWith','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','80708mZjmFT','parse','homeDir','Remove\x20or\x20migrate\x20','filePath','digest','invalid','splice','length','slice','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','path','risk','utf8','Unsupported\x20service\x20registry\x20schemaVersion:\x20','Invalid\x20service\x20manifest\x20JSON:\x20','findIndex','report','45332XWUZED','hex','object','service','3982008OpIGfm','356984AZnoDS','558560akQPJT','registryIndex','cliPath','reduce','.tmp','updatedAt','isArray','].manifest','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','27JjCxHZ','version','$.services[','command'];a42_0x17f1=function(){return _0xe95e55;};return a42_0x17f1();}function aggregateValidationReports(_0x2f5c4d){const _0x3600e6=a42_0x3a3caa,_0x3c441a=_0x2f5c4d['flatMap'](_0x4828cc=>_0x4828cc[_0x3600e6(0xe8)]===undefined?_0x4828cc[_0x3600e6(0xe0)][_0x3600e6(0xbf)]:_0x4828cc[_0x3600e6(0xe0)][_0x3600e6(0xbf)]['map'](_0x33a420=>({..._0x33a420,'path':prefixRegistryIssuePath(_0x4828cc[_0x3600e6(0xe8)],_0x33a420['path'])}))),_0x415f2c=_0x2f5c4d[_0x3600e6(0xc9)](_0x39fe62=>_0x39fe62[_0x3600e6(0xe8)]===undefined?_0x39fe62['report'][_0x3600e6(0xbd)]:_0x39fe62[_0x3600e6(0xe0)][_0x3600e6(0xbd)][_0x3600e6(0xb8)](_0x370cea=>({..._0x370cea,'path':prefixRegistryIssuePath(_0x39fe62[_0x3600e6(0xe8)],_0x370cea[_0x3600e6(0xda)])})));return{'ok':_0x3c441a['length']===0x0,'errors':_0x3c441a,'warnings':_0x415f2c};}function prefixRegistryIssuePath(_0xc39624,_0x51e4ba){const _0x862c92=a42_0x3a3caa;if(_0x51e4ba==='$')return _0x862c92(0xf2)+_0xc39624+_0x862c92(0xee);if(_0x51e4ba['startsWith']('$.'))return'$.services['+_0xc39624+_0x862c92(0xee)+_0x51e4ba[_0x862c92(0xd8)](0x1);if(_0x51e4ba[_0x862c92(0xcd)]('$['))return _0x862c92(0xf2)+_0xc39624+_0x862c92(0xee)+_0x51e4ba[_0x862c92(0xd8)](0x1);return _0x862c92(0xf2)+_0xc39624+_0x862c92(0xc4)+_0x51e4ba;}function isServiceRegistryLike(_0x3d53c2){const _0x1739df=a42_0x3a3caa;return isObjectRecord(_0x3d53c2)&&_0x3d53c2[_0x1739df(0xb6)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x1739df(0xed)](_0x3d53c2[_0x1739df(0xfa)]);}function isObjectRecord(_0x24bcac){const _0x2aeb92=a42_0x3a3caa;return Boolean(_0x24bcac)&&typeof _0x24bcac===_0x2aeb92(0xe3)&&!Array['isArray'](_0x24bcac);}function emptyServiceRegistryInspection(_0x2b7ca4,_0x35d3b4,_0x5bac98){return{'registryPath':_0x2b7ca4,'exists':_0x5bac98,'status':_0x35d3b4,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x2877b0){const _0x5646d3=a42_0x3a3caa,_0x1a4f35=_0x2877b0['normalizedManifest'],_0xc7a077=_0x1a4f35['commands'][_0x5646d3(0xb8)](_0x3e25ca=>({'path':_0x3e25ca[_0x5646d3(0xe9)],'description':_0x3e25ca[_0x5646d3(0xf7)],'risk':_0x3e25ca[_0x5646d3(0xdb)],'targetKind':_0x3e25ca[_0x5646d3(0xb7)][_0x5646d3(0xf6)],'targetCommand':_0x3e25ca[_0x5646d3(0xb7)][_0x5646d3(0xf3)]}));return{'serviceCode':_0x2877b0[_0x5646d3(0xb5)],'name':_0x1a4f35['service']['name'],'description':_0x1a4f35['service']['description'],'version':_0x2877b0[_0x5646d3(0xf1)],'importedAt':_0x2877b0['importedAt'],'source':_0x2877b0['source'],'commandCount':_0xc7a077['length'],'commands':_0xc7a077};}function sha256(_0x18c0ef){const _0x208d53=a42_0x3a3caa;return createHash(_0x208d53(0x105))[_0x208d53(0x107)](_0x18c0ef)[_0x208d53(0xd4)](_0x208d53(0xe2));}
1
+ const a42_0x466574=a42_0x38dc;(function(_0x561963,_0x2e9016){const _0x5b781a=a42_0x38dc,_0x38b85f=_0x561963();while(!![]){try{const _0x56e7a0=parseInt(_0x5b781a(0x121))/0x1+parseInt(_0x5b781a(0x122))/0x2+parseInt(_0x5b781a(0xf7))/0x3*(parseInt(_0x5b781a(0xf9))/0x4)+parseInt(_0x5b781a(0x10e))/0x5*(-parseInt(_0x5b781a(0x11a))/0x6)+parseInt(_0x5b781a(0xd5))/0x7+parseInt(_0x5b781a(0x104))/0x8+-parseInt(_0x5b781a(0xf8))/0x9;if(_0x56e7a0===_0x2e9016)break;else _0x38b85f['push'](_0x38b85f['shift']());}catch(_0x502580){_0x38b85f['push'](_0x38b85f['shift']());}}}(a42_0x43bb,0xe4867));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';function a42_0x38dc(_0x4dcfe2,_0x192f7c){_0x4dcfe2=_0x4dcfe2-0xd5;const _0x43bb33=a42_0x43bb();let _0x38dc52=_0x43bb33[_0x4dcfe2];return _0x38dc52;}import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a42_0x466574(0xed);export function getServiceRegistryPath(_0x35c5a7={}){const _0x1fc1a4=a42_0x466574;return resolve(_0x35c5a7[_0x1fc1a4(0x105)]??homedir(),PRODUCT_CONFIG[_0x1fc1a4(0xff)],SERVICE_REGISTRY_FILE_NAME);}function a42_0x43bb(){const _0x44716f=['19989eCwlYL','42147306keLfHE','820wlLbJw','invalid','localeCompare','].manifest.','target','report','homeDirName','validation','map','errors','description','9388040sGdWxN','homeDir','warnings','version','digest','flatMap','now','startsWith','commands','string','414590OjwiOb','length','Remove\x20or\x20migrate\x20','stringify','hex','filePath','update','trim','join','service','registryIndex','Unsupported\x20schemaVersion:\x20','30tVFQmx','object','parse','findIndex','empty','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','isArray','1305435IFVcjv','3402072UdkfQW','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','sha256','utf8','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','Service\x20manifest\x20validation\x20failed:\x0a','manifest','manifests','schemaVersion','3414404qdBytL','sourceHash','updatedAt','Cannot\x20write\x20service\x20registry:\x20','find','services','push','code','risk','Local\x20service\x20not\x20found:\x20','CliError','missing','sort','serviceCode','Invalid\x20service\x20manifest\x20JSON:\x20','bff\x20target\x20requires\x20functionName.','toISOString','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','command','message','slice','normalizedManifest','cliPath','].manifest','service.json','path','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','name','$.services[','source','kind','.tmp','services\x20must\x20be\x20an\x20array','file'];a42_0x43bb=function(){return _0x44716f;};return a42_0x43bb();}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x1da0e2={}){const _0x36540a=a42_0x466574,_0x291464=getServiceRegistryPath(_0x1da0e2);if(!existsSync(_0x291464))return emptyServiceRegistry();try{const _0x183746=readFileSync(_0x291464,_0x36540a(0x125));if(!_0x183746['trim']())return emptyServiceRegistry();const _0x2a5f53=JSON[_0x36540a(0x11c)](_0x183746);if(_0x2a5f53[_0x36540a(0x12a)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x36540a(0x100)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x2a5f53[_0x36540a(0x12a)]),_0x36540a(0x110)+_0x291464+'.');if(!Array[_0x36540a(0x120)](_0x2a5f53['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2a5f53[_0x36540a(0xd7)],'services':_0x2a5f53[_0x36540a(0xda)]};}catch(_0x5180f9){if(_0x5180f9 instanceof Error&&_0x5180f9[_0x36540a(0xf0)]===_0x36540a(0xdf))throw _0x5180f9;throw CliErrors[_0x36540a(0x100)]('Invalid\x20service\x20registry\x20JSON:\x20'+_0x291464,_0x36540a(0x11f));}}export function writeServiceRegistry(_0x58a7b1,_0x50b676={}){const _0x4c065e=a42_0x466574,_0x666fdd=getServiceRegistryPath(_0x50b676),_0x17b183=dirname(_0x666fdd);!existsSync(_0x17b183)&&mkdirSync(_0x17b183,{'recursive':!![]});const _0x44f467=_0x666fdd+_0x4c065e(0xf4);try{writeFileSync(_0x44f467,JSON[_0x4c065e(0x111)](_0x58a7b1,null,0x2)+'\x0a',{'encoding':_0x4c065e(0x125),'mode':0x180}),renameSync(_0x44f467,_0x666fdd);}catch(_0x5cdfa8){try{unlinkSync(_0x44f467);}catch{}if(_0x5cdfa8?.[_0x4c065e(0xdc)]==='ENOENT')throw CliErrors[_0x4c065e(0x100)](_0x4c065e(0xd8)+_0x666fdd);throw _0x5cdfa8;}return _0x666fdd;}export function loadServiceManifestFromFile(_0x1aa277){const _0x8b1590=a42_0x466574,_0x42e2a9=resolve(_0x1aa277);if(!existsSync(_0x42e2a9))throw CliErrors['validation']('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x1aa277);let _0x1be86c;const _0x43aba3=readFileSync(_0x42e2a9,'utf8');try{_0x1be86c=JSON[_0x8b1590(0x11c)](_0x43aba3);}catch{throw CliErrors[_0x8b1590(0x100)](_0x8b1590(0xe3)+_0x1aa277,_0x8b1590(0x126));}const _0x3a564e=sha256(_0x43aba3),_0x5dc159=extractLoadedServiceManifests(_0x1be86c,_0x3a564e),_0x393589=aggregateValidationReports(_0x5dc159),_0x45ae99=_0x5dc159[0x0];return{'filePath':_0x42e2a9,'hash':_0x3a564e,'kind':isServiceRegistryLike(_0x1be86c)?'registry':'manifest','manifest':_0x45ae99?.['manifest']??_0x1be86c,'report':_0x393589,'normalizedManifest':_0x5dc159['length']===0x1?_0x45ae99?.[_0x8b1590(0xea)]:undefined,'manifests':_0x5dc159};}export function importServiceManifest(_0x3ee132,_0x4d9ca6={}){const _0x12af5e=a42_0x466574,_0x39b0d6=loadServiceManifestFromFile(_0x3ee132);if(!_0x39b0d6[_0x12af5e(0xfe)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x39b0d6['report']),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x39b0d6[_0x12af5e(0x129)][_0x12af5e(0x10f)]===0x0)throw CliErrors[_0x12af5e(0x100)](_0x12af5e(0xe6),_0x12af5e(0xef));const _0x4d7393=readServiceRegistry(_0x4d9ca6),_0x2d2f4d=(_0x4d9ca6['now']??(()=>new Date()))()[_0x12af5e(0xe5)](),_0x3b9d3c=[];let _0x4e5c6d=0x0,_0x525c6e=0x0;for(const _0x2740bf of _0x39b0d6['manifests']){if(!_0x2740bf['normalizedManifest'])continue;const _0x4892d9=_0x2740bf[_0x12af5e(0xea)]['service'][_0x12af5e(0xdc)],_0x136e07={'serviceCode':_0x4892d9,'version':_0x2740bf[_0x12af5e(0xea)][_0x12af5e(0x107)],'importedAt':_0x2d2f4d,'source':{'type':_0x12af5e(0xf6),'path':_0x39b0d6[_0x12af5e(0x113)],'hash':_0x2740bf[_0x12af5e(0xd6)]},'manifest':_0x2740bf[_0x12af5e(0x128)],'normalizedManifest':_0x2740bf[_0x12af5e(0xea)]},_0x576043=_0x4d7393['services'][_0x12af5e(0x11d)](_0x2b9978=>_0x2b9978[_0x12af5e(0xe2)]===_0x4892d9);_0x576043>=0x0?(_0x4d7393['services'][_0x576043]=_0x136e07,_0x525c6e++):(_0x4d7393[_0x12af5e(0xda)][_0x12af5e(0xdb)](_0x136e07),_0x4e5c6d++),_0x3b9d3c[_0x12af5e(0xdb)](_0x136e07);}_0x4d7393[_0x12af5e(0xda)][_0x12af5e(0xe1)]((_0x40ce6d,_0x3f4d41)=>_0x40ce6d[_0x12af5e(0xe2)][_0x12af5e(0xfb)](_0x3f4d41[_0x12af5e(0xe2)])),_0x4d7393['updatedAt']=_0x2d2f4d;const _0x351fce=writeServiceRegistry(_0x4d7393,_0x4d9ca6);return{'registryPath':_0x351fce,'entry':_0x3b9d3c[0x0],'replaced':_0x3b9d3c['length']===0x1?_0x525c6e===0x1:_0x525c6e>0x0,'entries':_0x3b9d3c,'imported':_0x4e5c6d,'updated':_0x525c6e,'serviceCount':_0x4d7393['services'][_0x12af5e(0x10f)]};}export function exportServiceManifest(_0x3e195d,_0x10ab75,_0x1837f5={}){const _0x540cfc=a42_0x466574,_0x1a63dd=getServiceRegistryPath(_0x1837f5),_0x5a5995=getLocalServiceEntry(_0x3e195d,_0x1837f5);if(!_0x5a5995)throw CliErrors[_0x540cfc(0x100)](_0x540cfc(0xde)+_0x3e195d,_0x540cfc(0x123));const _0x55d530=resolve(_0x10ab75),_0x62b057=dirname(_0x55d530);return!existsSync(_0x62b057)&&mkdirSync(_0x62b057,{'recursive':!![]}),writeFileSync(_0x55d530,JSON[_0x540cfc(0x111)](_0x5a5995['manifest'],null,0x2)+'\x0a',{'encoding':_0x540cfc(0x125),'mode':0x180}),{'registryPath':_0x1a63dd,'filePath':_0x55d530,'entry':_0x5a5995};}export function removeServiceManifest(_0x5cb4ae,_0x3ea6c8={}){const _0x2c61a6=a42_0x466574,_0x6c6191=readServiceRegistry(_0x3ea6c8),_0x6b8fa1=_0x5cb4ae[_0x2c61a6(0x115)](),_0x1966b8=_0x6c6191[_0x2c61a6(0xda)][_0x2c61a6(0x11d)](_0x4e5cc5=>_0x4e5cc5['serviceCode']===_0x6b8fa1);if(_0x1966b8<0x0)throw CliErrors[_0x2c61a6(0x100)](_0x2c61a6(0xde)+_0x6b8fa1,_0x2c61a6(0x123));const [_0x3a0d40]=_0x6c6191[_0x2c61a6(0xda)]['splice'](_0x1966b8,0x1),_0x569d36=(_0x3ea6c8[_0x2c61a6(0x10a)]??(()=>new Date()))()['toISOString']();_0x6c6191[_0x2c61a6(0xd7)]=_0x569d36;const _0x5764c0=writeServiceRegistry(_0x6c6191,_0x3ea6c8);return{'registryPath':_0x5764c0,'entry':_0x3a0d40,'serviceCount':_0x6c6191[_0x2c61a6(0xda)][_0x2c61a6(0x10f)]};}export function listLocalServices(_0x23d9ab={}){const _0x48632e=a42_0x466574;return readServiceRegistry(_0x23d9ab)[_0x48632e(0xda)];}export function getLocalServiceEntry(_0xe6c076,_0x59f49b={}){const _0x361778=a42_0x466574;return readServiceRegistry(_0x59f49b)[_0x361778(0xda)][_0x361778(0xd9)](_0x5c4891=>_0x5c4891[_0x361778(0xe2)]===_0xe6c076['trim']());}export function listLocalServiceTrees(_0x1402e4={}){const _0x5b3adf=a42_0x466574;return readServiceRegistry(_0x1402e4)[_0x5b3adf(0xda)][_0x5b3adf(0x101)](_0x1e5b02=>_0x1e5b02['normalizedManifest']);}export function inspectServiceRegistry(_0x245f02={}){const _0x3fc4ee=a42_0x466574,_0x8c402f=getServiceRegistryPath(_0x245f02);if(!existsSync(_0x8c402f))return emptyServiceRegistryInspection(_0x8c402f,_0x3fc4ee(0xe0),![]);try{const _0x336bd1=readFileSync(_0x8c402f,_0x3fc4ee(0x125));if(!_0x336bd1['trim']())return emptyServiceRegistryInspection(_0x8c402f,_0x3fc4ee(0x11e),!![]);const _0x4767d9=JSON['parse'](_0x336bd1);if(_0x4767d9[_0x3fc4ee(0x12a)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x8c402f,_0x3fc4ee(0xfa),!![]),'schemaVersion':_0x4767d9[_0x3fc4ee(0x12a)],'message':_0x3fc4ee(0x119)+String(_0x4767d9[_0x3fc4ee(0x12a)])};if(!Array[_0x3fc4ee(0x120)](_0x4767d9[_0x3fc4ee(0xda)]))return{...emptyServiceRegistryInspection(_0x8c402f,_0x3fc4ee(0xfa),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x4767d9[_0x3fc4ee(0xd7)],'message':_0x3fc4ee(0xf5)};const _0x418027=_0x4767d9[_0x3fc4ee(0xda)][_0x3fc4ee(0x101)](summarizeLocalServiceEntry);return{'registryPath':_0x8c402f,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x4767d9['updatedAt'],'serviceCount':_0x418027[_0x3fc4ee(0x10f)],'commandCount':_0x418027['reduce']((_0x525998,_0x4d5952)=>_0x525998+_0x4d5952['commandCount'],0x0),'services':_0x418027};}catch(_0x5bbe7a){return{...emptyServiceRegistryInspection(_0x8c402f,_0x3fc4ee(0xfa),!![]),'message':_0x5bbe7a instanceof Error?_0x5bbe7a['message']:String(_0x5bbe7a)};}}export function formatValidationFailure(_0x3b8bcd){const _0x5c42f6=a42_0x466574,_0x29bfdf=_0x3b8bcd[_0x5c42f6(0x102)][_0x5c42f6(0x101)](_0x4c6d28=>_0x4c6d28[_0x5c42f6(0xee)]+':\x20'+_0x4c6d28[_0x5c42f6(0xe8)]);return _0x5c42f6(0x127)+_0x29bfdf[_0x5c42f6(0x116)]('\x0a');}function extractLoadedServiceManifests(_0x410a19,_0x5a6454){const _0x25387b=a42_0x466574;if(!isServiceRegistryLike(_0x410a19)){const _0x128279=_0x410a19,{manifest:_0x2ecdf9,errors:_0x18c4a2}=adaptServiceTreeManifestForLegacyFramework(_0x128279),_0x61415f=validateServiceTreeManifest(_0x2ecdf9),_0x3195a0=mergeValidationErrors(_0x61415f,_0x18c4a2);return[{'manifest':_0x128279,'report':_0x3195a0,'normalizedManifest':_0x3195a0['ok']?normalizeServiceTreeManifest(_0x2ecdf9):undefined,'sourceHash':_0x5a6454}];}return _0x410a19[_0x25387b(0xda)]['map']((_0x76b96b,_0x1c841c)=>{const _0x602a5d=_0x25387b,_0x55a4ce=isObjectRecord(_0x76b96b)?_0x76b96b[_0x602a5d(0x128)]:undefined,{manifest:_0x5c8636,errors:_0x137183}=adaptServiceTreeManifestForLegacyFramework(_0x55a4ce),_0x22fd91=validateServiceTreeManifest(_0x5c8636),_0x6e207f=mergeValidationErrors(_0x22fd91,_0x137183),_0x260098=isObjectRecord(_0x76b96b)&&typeof _0x76b96b['serviceCode']===_0x602a5d(0x10d)?_0x76b96b[_0x602a5d(0xe2)]:undefined;return{'manifest':_0x55a4ce,'report':_0x6e207f,'normalizedManifest':_0x6e207f['ok']?normalizeServiceTreeManifest(_0x5c8636):undefined,'sourceHash':sha256(JSON[_0x602a5d(0x111)](_0x55a4ce,null,0x2)+'\x0a'),'registryIndex':_0x1c841c,'registryServiceCode':_0x260098};});}function mergeValidationErrors(_0x1d4f63,_0xb099d5){const _0x161f0e=a42_0x466574,_0x21bba8=_0x1d4f63[_0x161f0e(0x102)][_0x161f0e(0x101)](_0xae16b2=>_0xae16b2[_0x161f0e(0xe8)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0xae16b2,'message':_0x161f0e(0xe4)}:_0xae16b2),_0x46eab7=[..._0xb099d5,..._0x21bba8];return{'ok':_0x46eab7['length']===0x0,'errors':_0x46eab7,'warnings':_0x1d4f63[_0x161f0e(0x106)]};}function aggregateValidationReports(_0x292747){const _0x51de11=a42_0x466574,_0x13ca42=_0x292747['flatMap'](_0x4ef3a3=>_0x4ef3a3[_0x51de11(0x118)]===undefined?_0x4ef3a3['report'][_0x51de11(0x102)]:_0x4ef3a3[_0x51de11(0xfe)][_0x51de11(0x102)][_0x51de11(0x101)](_0x3e3aba=>({..._0x3e3aba,'path':prefixRegistryIssuePath(_0x4ef3a3['registryIndex'],_0x3e3aba[_0x51de11(0xee)])}))),_0x70544=_0x292747[_0x51de11(0x109)](_0x5dd91f=>_0x5dd91f[_0x51de11(0x118)]===undefined?_0x5dd91f['report'][_0x51de11(0x106)]:_0x5dd91f['report']['warnings'][_0x51de11(0x101)](_0x4016ae=>({..._0x4016ae,'path':prefixRegistryIssuePath(_0x5dd91f[_0x51de11(0x118)],_0x4016ae['path'])})));return{'ok':_0x13ca42[_0x51de11(0x10f)]===0x0,'errors':_0x13ca42,'warnings':_0x70544};}function prefixRegistryIssuePath(_0x540ba8,_0x22a284){const _0x51bab3=a42_0x466574;if(_0x22a284==='$')return _0x51bab3(0xf1)+_0x540ba8+_0x51bab3(0xec);if(_0x22a284[_0x51bab3(0x10b)]('$.'))return _0x51bab3(0xf1)+_0x540ba8+_0x51bab3(0xec)+_0x22a284[_0x51bab3(0xe9)](0x1);if(_0x22a284[_0x51bab3(0x10b)]('$['))return'$.services['+_0x540ba8+_0x51bab3(0xec)+_0x22a284[_0x51bab3(0xe9)](0x1);return _0x51bab3(0xf1)+_0x540ba8+_0x51bab3(0xfc)+_0x22a284;}function isServiceRegistryLike(_0x2d4d15){const _0x13b2e8=a42_0x466574;return isObjectRecord(_0x2d4d15)&&_0x2d4d15[_0x13b2e8(0x12a)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x13b2e8(0x120)](_0x2d4d15[_0x13b2e8(0xda)]);}function isObjectRecord(_0x2992d5){const _0x243700=a42_0x466574;return Boolean(_0x2992d5)&&typeof _0x2992d5===_0x243700(0x11b)&&!Array[_0x243700(0x120)](_0x2992d5);}function emptyServiceRegistryInspection(_0x2202eb,_0x67a2ee,_0x3f2bd0){return{'registryPath':_0x2202eb,'exists':_0x3f2bd0,'status':_0x67a2ee,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x1269ee){const _0x3f246f=a42_0x466574,_0x342f81=_0x1269ee[_0x3f246f(0xea)],_0x321479=_0x342f81[_0x3f246f(0x10c)]['map'](_0x2b74c2=>({'path':_0x2b74c2[_0x3f246f(0xeb)],'description':_0x2b74c2[_0x3f246f(0x103)],'risk':_0x2b74c2[_0x3f246f(0xdd)],'targetKind':_0x2b74c2[_0x3f246f(0xfd)][_0x3f246f(0xf3)],'targetCommand':_0x2b74c2[_0x3f246f(0xfd)][_0x3f246f(0xe7)]}));return{'serviceCode':_0x1269ee[_0x3f246f(0xe2)],'name':_0x342f81[_0x3f246f(0x117)]['name'],'description':_0x342f81[_0x3f246f(0x117)][_0x3f246f(0x103)],'version':_0x1269ee[_0x3f246f(0x107)],'importedAt':_0x1269ee['importedAt'],'source':_0x1269ee[_0x3f246f(0xf2)],'commandCount':_0x321479[_0x3f246f(0x10f)],'commands':_0x321479};}function sha256(_0xc86d80){const _0x520232=a42_0x466574;return createHash(_0x520232(0x124))[_0x520232(0x114)](_0xc86d80)[_0x520232(0x108)](_0x520232(0x112));}
@@ -1 +1 @@
1
- const a43_0x451ff0=a43_0x3785;(function(_0x410ffe,_0x28a75c){const _0x54090b=a43_0x3785,_0x17196c=_0x410ffe();while(!![]){try{const _0x4b0cda=parseInt(_0x54090b(0x1d9))/0x1+parseInt(_0x54090b(0x1e3))/0x2+parseInt(_0x54090b(0x1f0))/0x3+parseInt(_0x54090b(0x1ef))/0x4*(parseInt(_0x54090b(0x1e5))/0x5)+parseInt(_0x54090b(0x1de))/0x6+parseInt(_0x54090b(0x1ee))/0x7+-parseInt(_0x54090b(0x1df))/0x8;if(_0x4b0cda===_0x28a75c)break;else _0x17196c['push'](_0x17196c['shift']());}catch(_0x210424){_0x17196c['push'](_0x17196c['shift']());}}}(a43_0x586f,0x6ea98));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';function a43_0x586f(){const _0x5407c0=['Skill\x20directory\x20already\x20exists:\x20','255986ATwvhN','name','str','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','2731734BrWECL','18088680OXLzak','files','utf8','path','1356174KjkLxe','rendered','5CpZvrV','skillDir','trim','validation','WRITE','bool','isSymbolicLink','read','skillName','1134896wpuGGG','1768204OTOvmp','2162448VATuCt','type','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','创建本地自包含的运行态\x20Skill\x20草稿','Refusing\x20to\x20overwrite\x20symlink:\x20','create','content','isDirectory','map','target'];a43_0x586f=function(){return _0x5407c0;};return a43_0x586f();}import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';function a43_0x3785(_0x510288,_0x478758){_0x510288=_0x510288-0x1d0;const _0x586f8f=a43_0x586f();let _0x37855d=_0x586f8f[_0x510288];return _0x37855d;}import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':'skill','command':a43_0x451ff0(0x1d3),'description':a43_0x451ff0(0x1d1),'risk':a43_0x451ff0(0x1ec),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x10591e){const _0x280f3f=a43_0x451ff0,_0x24ca19=buildSkillCreatePlan(_0x10591e[_0x280f3f(0x1db)]('name'),_0x10591e[_0x280f3f(0x1db)]('type'),_0x10591e[_0x280f3f(0x1db)]('target'));return{'method':_0x280f3f(0x1e9),'url':_0x24ca19['skillDir'],'body':{'skillName':_0x24ca19[_0x280f3f(0x1e4)]['skillName'],'type':_0x24ca19[_0x280f3f(0x1e4)][_0x280f3f(0x1f1)],'selfContained':!![],'files':_0x24ca19[_0x280f3f(0x1e4)][_0x280f3f(0x1e0)][_0x280f3f(0x1d6)](_0x59641b=>_0x59641b[_0x280f3f(0x1e2)])},'description':'Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.'};},async 'execute'(_0x44360f){const _0x4380c7=a43_0x451ff0,_0x60e392=buildSkillCreatePlan(_0x44360f[_0x4380c7(0x1db)](_0x4380c7(0x1da)),_0x44360f[_0x4380c7(0x1db)](_0x4380c7(0x1f1)),_0x44360f[_0x4380c7(0x1db)](_0x4380c7(0x1d7)));return writeSkillDraft(_0x60e392,_0x44360f[_0x4380c7(0x1ea)]('force')),{'ok':!![],'data':{'skillName':_0x60e392['rendered'][_0x4380c7(0x1ed)],'type':_0x60e392[_0x4380c7(0x1e4)][_0x4380c7(0x1f1)],'dir':_0x60e392[_0x4380c7(0x1e6)],'files':_0x60e392[_0x4380c7(0x1e4)][_0x4380c7(0x1e0)][_0x4380c7(0x1d6)](_0x5daea0=>_0x5daea0[_0x4380c7(0x1e2)])},'message':'Created\x20local\x20Skill\x20draft\x20'+_0x60e392[_0x4380c7(0x1e4)]['skillName']};}};function buildSkillCreatePlan(_0x286ca1,_0x581272,_0x2bfbcc){const _0x3b5c1f=a43_0x451ff0,_0x137335=_0x581272['trim'](),_0x5b0e7b=renderSkillTemplate({'skillName':_0x286ca1,'type':_0x137335});!_0x137335&&writeCliSideChannelLine(_0x3b5c1f(0x1dc));const _0x1f1a5d=resolve(normalizeSkillTarget(_0x2bfbcc));return{'rendered':_0x5b0e7b,'targetRoot':_0x1f1a5d,'skillDir':resolve(_0x1f1a5d,_0x5b0e7b[_0x3b5c1f(0x1ed)])};}function normalizeSkillTarget(_0x107302){const _0x2ff6f3=a43_0x451ff0;return(_0x107302||DEFAULT_SKILL_TARGET)[_0x2ff6f3(0x1e7)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x3ea6b7,_0x400d40){const _0x2a9a18=a43_0x451ff0;if(existsSync(_0x3ea6b7['skillDir'])){const _0x1f7944=lstatSync(_0x3ea6b7[_0x2a9a18(0x1e6)]);if(!_0x1f7944[_0x2a9a18(0x1d5)]()||_0x1f7944[_0x2a9a18(0x1eb)]())throw CliErrors[_0x2a9a18(0x1e8)](_0x2a9a18(0x1d0)+_0x3ea6b7['skillDir']);if(!_0x400d40)throw CliErrors[_0x2a9a18(0x1e8)](_0x2a9a18(0x1d8)+_0x3ea6b7[_0x2a9a18(0x1e6)],_0x2a9a18(0x1dd));}for(const _0x1a6edb of _0x3ea6b7[_0x2a9a18(0x1e4)][_0x2a9a18(0x1e0)]){const _0x30be05=resolve(_0x3ea6b7[_0x2a9a18(0x1e6)],_0x1a6edb[_0x2a9a18(0x1e2)]),_0x29f26f=dirname(_0x30be05);mkdirSync(_0x29f26f,{'recursive':!![]});if(existsSync(_0x30be05)&&lstatSync(_0x30be05)[_0x2a9a18(0x1eb)]())throw CliErrors[_0x2a9a18(0x1e8)](_0x2a9a18(0x1d2)+_0x30be05);writeFileSync(_0x30be05,_0x1a6edb[_0x2a9a18(0x1d4)],_0x2a9a18(0x1e1));}}
1
+ function a43_0x5022(){const _0x187f41=['files','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','9816pNQAri','525490Bpdefa','skillName','target','content','Created\x20local\x20Skill\x20draft\x20','path','209UrvOpJ','1509666LoyDZV','name','2GrHOlE','isDirectory','创建本地自包含的运行态\x20Skill\x20草稿','7cPuzcy','1674nJKPHD','68kXxmsA','skillDir','type','1051668OipwqB','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','Refusing\x20to\x20overwrite\x20symlink:\x20','skill','1301367SAbsmJ','trim','140485FSsaed','validation','Skill\x20directory\x20already\x20exists:\x20','bool','14208852FpEYBf','force','str','rendered','isSymbolicLink','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.'];a43_0x5022=function(){return _0x187f41;};return a43_0x5022();}const a43_0x3b179b=a43_0x27e9;(function(_0x48bf4d,_0x126096){const _0x131510=a43_0x27e9,_0x43ab79=_0x48bf4d();while(!![]){try{const _0x2c9b00=parseInt(_0x131510(0x175))/0x1+parseInt(_0x131510(0x18e))/0x2*(-parseInt(_0x131510(0x196))/0x3)+parseInt(_0x131510(0x193))/0x4*(parseInt(_0x131510(0x177))/0x5)+-parseInt(_0x131510(0x18c))/0x6*(parseInt(_0x131510(0x191))/0x7)+-parseInt(_0x131510(0x184))/0x8*(parseInt(_0x131510(0x192))/0x9)+parseInt(_0x131510(0x185))/0xa*(parseInt(_0x131510(0x18b))/0xb)+-parseInt(_0x131510(0x17b))/0xc;if(_0x2c9b00===_0x126096)break;else _0x43ab79['push'](_0x43ab79['shift']());}catch(_0x4e3974){_0x43ab79['push'](_0x43ab79['shift']());}}}(a43_0x5022,0xba46b));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';function a43_0x27e9(_0xc1b04d,_0x441aa9){_0xc1b04d=_0xc1b04d-0x174;const _0x50227b=a43_0x5022();let _0x27e981=_0x50227b[_0xc1b04d];return _0x27e981;}import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a43_0x3b179b(0x174),'command':'create','description':a43_0x3b179b(0x190),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x436383){const _0xbe3062=a43_0x3b179b,_0x4a2309=buildSkillCreatePlan(_0x436383['str'](_0xbe3062(0x18d)),_0x436383[_0xbe3062(0x17d)](_0xbe3062(0x195)),_0x436383[_0xbe3062(0x17d)]('target'));return{'method':'WRITE','url':_0x4a2309[_0xbe3062(0x194)],'body':{'skillName':_0x4a2309[_0xbe3062(0x17e)]['skillName'],'type':_0x4a2309[_0xbe3062(0x17e)][_0xbe3062(0x195)],'selfContained':!![],'files':_0x4a2309[_0xbe3062(0x17e)]['files']['map'](_0x43115c=>_0x43115c[_0xbe3062(0x18a)])},'description':_0xbe3062(0x180)};},async 'execute'(_0xf5eb31){const _0xf71794=a43_0x3b179b,_0x3f1226=buildSkillCreatePlan(_0xf5eb31[_0xf71794(0x17d)](_0xf71794(0x18d)),_0xf5eb31['str'](_0xf71794(0x195)),_0xf5eb31[_0xf71794(0x17d)](_0xf71794(0x187)));return writeSkillDraft(_0x3f1226,_0xf5eb31[_0xf71794(0x17a)](_0xf71794(0x17c))),{'ok':!![],'data':{'skillName':_0x3f1226[_0xf71794(0x17e)]['skillName'],'type':_0x3f1226[_0xf71794(0x17e)][_0xf71794(0x195)],'dir':_0x3f1226['skillDir'],'files':_0x3f1226[_0xf71794(0x17e)][_0xf71794(0x181)]['map'](_0x28b5b2=>_0x28b5b2[_0xf71794(0x18a)])},'message':_0xf71794(0x189)+_0x3f1226[_0xf71794(0x17e)]['skillName']};}};function buildSkillCreatePlan(_0x3102e9,_0x1e4537,_0x1558c0){const _0x38715e=a43_0x3b179b,_0x56b441=_0x1e4537['trim'](),_0x3489a0=renderSkillTemplate({'skillName':_0x3102e9,'type':_0x56b441});!_0x56b441&&writeCliSideChannelLine(_0x38715e(0x197));const _0xff0e2f=resolve(normalizeSkillTarget(_0x1558c0));return{'rendered':_0x3489a0,'targetRoot':_0xff0e2f,'skillDir':resolve(_0xff0e2f,_0x3489a0[_0x38715e(0x186)])};}function normalizeSkillTarget(_0x5400ea){const _0x317bdf=a43_0x3b179b;return(_0x5400ea||DEFAULT_SKILL_TARGET)[_0x317bdf(0x176)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x4d3b8d,_0x24a7af){const _0x547bde=a43_0x3b179b;if(existsSync(_0x4d3b8d[_0x547bde(0x194)])){const _0x139f17=lstatSync(_0x4d3b8d[_0x547bde(0x194)]);if(!_0x139f17[_0x547bde(0x18f)]()||_0x139f17[_0x547bde(0x17f)]())throw CliErrors[_0x547bde(0x178)](_0x547bde(0x182)+_0x4d3b8d[_0x547bde(0x194)]);if(!_0x24a7af)throw CliErrors[_0x547bde(0x178)](_0x547bde(0x179)+_0x4d3b8d[_0x547bde(0x194)],_0x547bde(0x183));}for(const _0x3a69e6 of _0x4d3b8d[_0x547bde(0x17e)][_0x547bde(0x181)]){const _0x32500b=resolve(_0x4d3b8d[_0x547bde(0x194)],_0x3a69e6['path']),_0xc11e26=dirname(_0x32500b);mkdirSync(_0xc11e26,{'recursive':!![]});if(existsSync(_0x32500b)&&lstatSync(_0x32500b)[_0x547bde(0x17f)]())throw CliErrors[_0x547bde(0x178)](_0x547bde(0x198)+_0x32500b);writeFileSync(_0x32500b,_0x3a69e6[_0x547bde(0x188)],'utf8');}}
@@ -1 +1 @@
1
- const a44_0x16e9f4=a44_0x1e33;(function(_0x42bd13,_0xbda83){const _0x1c4f0a=a44_0x1e33,_0x377bc2=_0x42bd13();while(!![]){try{const _0x29a8dc=parseInt(_0x1c4f0a(0x1f2))/0x1+parseInt(_0x1c4f0a(0x1d5))/0x2*(parseInt(_0x1c4f0a(0x1f3))/0x3)+-parseInt(_0x1c4f0a(0x1df))/0x4*(-parseInt(_0x1c4f0a(0x1d8))/0x5)+parseInt(_0x1c4f0a(0x1d6))/0x6+-parseInt(_0x1c4f0a(0x1ca))/0x7*(parseInt(_0x1c4f0a(0x1db))/0x8)+parseInt(_0x1c4f0a(0x1eb))/0x9+-parseInt(_0x1c4f0a(0x1c9))/0xa;if(_0x29a8dc===_0xbda83)break;else _0x377bc2['push'](_0x377bc2['shift']());}catch(_0x1adf7b){_0x377bc2['push'](_0x377bc2['shift']());}}}(a44_0x4dc6,0xd8844));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(_0x158613){const _0x4ec447=a44_0x1e33,_0x21b932=_0x158613[_0x4ec447(0x1d0)]('skill-code')[_0x4ec447(0x1cc)](),_0x352ed5=_0x158613[_0x4ec447(0x1d0)](_0x4ec447(0x1d7))['trim'](),_0x165a81=_0x158613['str']('scope');if(!_0x21b932||!_0x352ed5||_0x165a81!==_0x4ec447(0x1e4)&&_0x165a81!=='company')throw CliErrors['validation'](_0x4ec447(0x1dd));return{'skillCode':_0x21b932,'version':_0x352ed5,'scope':_0x165a81};}async function readDiagramWriteInput(_0x26cf59){const _0x139e99=a44_0x1e33,_0x32df29=_0x26cf59[_0x139e99(0x1f1)](_0x139e99(0x1ce)),_0x3231d0=_0x26cf59[_0x139e99(0x1d0)](_0x139e99(0x1e9))[_0x139e99(0x1cc)]();if(!Number['isInteger'](_0x32df29)||_0x32df29<0x0)throw CliErrors['validation']('--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.');if(!/^sha256:[0-9a-f]{64}$/[_0x139e99(0x1e3)](_0x3231d0))throw CliErrors[_0x139e99(0x1e1)](_0x139e99(0x1cf));return{'expectedDiagramRevision':_0x32df29,'sourceFingerprint':_0x3231d0,'diagram':await readRequiredSkillDiagram(_0x26cf59[_0x139e99(0x1d0)](_0x139e99(0x1ee)))};}export const diagramValidateCommand={'service':a44_0x16e9f4(0x1e7),'command':'diagram-validate','description':a44_0x16e9f4(0x1e6),'risk':a44_0x16e9f4(0x1dc),'flags':WRITE_FLAGS,async 'execute'(_0xb4b2f1){const _0x1741c5=a44_0x16e9f4,_0xdcf2f7=readDiagramTarget(_0xb4b2f1),_0x16ec7b=await validateRuntimeSkillVersionDiagram(_0xb4b2f1[_0x1741c5(0x1ec)],_0xdcf2f7['skillCode'],_0xdcf2f7[_0x1741c5(0x1d7)],_0xdcf2f7[_0x1741c5(0x1d2)],await readDiagramWriteInput(_0xb4b2f1));return{'ok':!![],'data':_0x16ec7b,'message':_0x1741c5(0x1cb)+_0xdcf2f7['skillCode']+'@'+_0xdcf2f7[_0x1741c5(0x1d7)]+'.'};}};export const diagramPushCommand={'service':'skill','command':a44_0x16e9f4(0x1d4),'description':a44_0x16e9f4(0x1d9),'risk':'write','confirmationDescription':a44_0x16e9f4(0x1ea),'flags':WRITE_FLAGS,async 'execute'(_0x3ca0ac){const _0xc7007a=a44_0x16e9f4,_0x99a3b3=readDiagramTarget(_0x3ca0ac),_0x27dc27=await putRuntimeSkillVersionDiagram(_0x3ca0ac[_0xc7007a(0x1ec)],_0x99a3b3[_0xc7007a(0x1ed)],_0x99a3b3[_0xc7007a(0x1d7)],_0x99a3b3[_0xc7007a(0x1d2)],await readDiagramWriteInput(_0x3ca0ac));return{'ok':!![],'data':_0x27dc27,'message':_0x27dc27[_0xc7007a(0x1d1)]===_0xc7007a(0x1e5)?_0xc7007a(0x1e2)+_0x99a3b3[_0xc7007a(0x1ed)]+'@'+_0x99a3b3['version']+_0xc7007a(0x1cd):(_0x27dc27[_0xc7007a(0x1d1)]===_0xc7007a(0x1de)?_0xc7007a(0x1ef):'Updated')+_0xc7007a(0x1f5)+_0x99a3b3[_0xc7007a(0x1ed)]+'@'+_0x99a3b3['version']+'.'};}};export const diagramShowCommand={'service':a44_0x16e9f4(0x1e7),'command':a44_0x16e9f4(0x1e8),'description':a44_0x16e9f4(0x1d3),'risk':a44_0x16e9f4(0x1dc),'flags':TARGET_FLAGS,async 'execute'(_0x5c20ef){const _0xeeb08=a44_0x16e9f4,_0xba060b=readDiagramTarget(_0x5c20ef),_0x283182=await getRuntimeSkillVersionDiagram(_0x5c20ef['appCode'],_0xba060b[_0xeeb08(0x1ed)],_0xba060b[_0xeeb08(0x1d7)],_0xba060b[_0xeeb08(0x1d2)]);return{'ok':!![],'data':_0x283182,'message':_0x283182[_0xeeb08(0x1f6)]?_0xeeb08(0x1f4)+_0xba060b[_0xeeb08(0x1ed)]+'@'+_0xba060b[_0xeeb08(0x1d7)]+_0xeeb08(0x1e0)+_0x283182[_0xeeb08(0x1da)]+'.':_0xeeb08(0x1f0)+_0xba060b[_0xeeb08(0x1ed)]+'@'+_0xba060b['version']+';\x20first\x20write\x20expects\x20revision\x20'+_0x283182[_0xeeb08(0x1da)]+'.'};}};function a44_0x1e33(_0x17bf07,_0x2a8e5c){_0x17bf07=_0x17bf07-0x1c9;const _0x4dc6d7=a44_0x4dc6();let _0x1e333b=_0x4dc6d7[_0x17bf07];return _0x1e333b;}function a44_0x4dc6(){const _0x2351a2=['Found\x20Skill\x20diagram\x20for\x20','\x20Skill\x20diagram\x20for\x20','found','23634710RaaUQy','3325glSUwq','Skill\x20diagram\x20validation\x20passed\x20for\x20','trim','\x20is\x20unchanged.','expected-diagram-revision','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','str','action','scope','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','diagram-push','47246PulQNu','1347588StxyvT','version','10VLOhba','为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','expectedDiagramRevision','17168RHsBiu','read','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','created','2663280DKfZRm',';\x20next\x20write\x20expects\x20revision\x20','validation','Skill\x20diagram\x20for\x20','test','personal','unchanged','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','skill','diagram-show','source-fingerprint','将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','1371150SrxwmQ','appCode','skillCode','diagram-file','Created','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','num','1096459SbGqCm','186tBNLUi'];a44_0x4dc6=function(){return _0x2351a2;};return a44_0x4dc6();}
1
+ const a44_0x14031d=a44_0x2d36;(function(_0x2041f4,_0x10a67b){const _0x565c8a=a44_0x2d36,_0x5496a5=_0x2041f4();while(!![]){try{const _0x3416e0=-parseInt(_0x565c8a(0x140))/0x1*(-parseInt(_0x565c8a(0x13a))/0x2)+-parseInt(_0x565c8a(0x11d))/0x3+-parseInt(_0x565c8a(0x13b))/0x4+parseInt(_0x565c8a(0x12d))/0x5*(-parseInt(_0x565c8a(0x117))/0x6)+parseInt(_0x565c8a(0x11f))/0x7*(-parseInt(_0x565c8a(0x131))/0x8)+parseInt(_0x565c8a(0x11e))/0x9+parseInt(_0x565c8a(0x133))/0xa;if(_0x3416e0===_0x10a67b)break;else _0x5496a5['push'](_0x5496a5['shift']());}catch(_0x21db14){_0x5496a5['push'](_0x5496a5['shift']());}}}(a44_0x4805,0xedfe3));function a44_0x4805(){const _0x2372ea=['write','unchanged','personal','skill','48935tRfbEt','source-fingerprint','diagram-validate','diagram-show','182808EXLMDo','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','12123400ZFsuIY','Updated','diagram-file','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','num','\x20is\x20unchanged.','diagram-push','40008ctFeWY','1535608FDpphz','action','expected-diagram-revision','version','Skill\x20diagram\x20for\x20','76NFhNrY','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','skillCode','Found\x20Skill\x20diagram\x20for\x20','company','834NxNVcg','validation','为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','found','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','299427IVJcLs','16817913enKQWE','546EqhgsC','Skill\x20diagram\x20validation\x20passed\x20for\x20','skill-code','read',';\x20next\x20write\x20expects\x20revision\x20','isInteger','appCode','str','expectedDiagramRevision','scope'];a44_0x4805=function(){return _0x2372ea;};return a44_0x4805();}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';function a44_0x2d36(_0x55a407,_0x1a174b){_0x55a407=_0x55a407-0x115;const _0x4805b7=a44_0x4805();let _0x2d36a7=_0x4805b7[_0x55a407];return _0x2d36a7;}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(_0x4750eb){const _0xed6be7=a44_0x2d36,_0x21f0e9=_0x4750eb['str'](_0xed6be7(0x121))['trim'](),_0x28eaea=_0x4750eb['str']('version')['trim'](),_0x1d1c4c=_0x4750eb[_0xed6be7(0x126)](_0xed6be7(0x128));if(!_0x21f0e9||!_0x28eaea||_0x1d1c4c!==_0xed6be7(0x12b)&&_0x1d1c4c!==_0xed6be7(0x116))throw CliErrors[_0xed6be7(0x118)]('--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.');return{'skillCode':_0x21f0e9,'version':_0x28eaea,'scope':_0x1d1c4c};}async function readDiagramWriteInput(_0x349012){const _0x5eacbc=a44_0x2d36,_0x255f89=_0x349012[_0x5eacbc(0x137)](_0x5eacbc(0x13d)),_0x491503=_0x349012[_0x5eacbc(0x126)](_0x5eacbc(0x12e))['trim']();if(!Number[_0x5eacbc(0x124)](_0x255f89)||_0x255f89<0x0)throw CliErrors[_0x5eacbc(0x118)](_0x5eacbc(0x141));if(!/^sha256:[0-9a-f]{64}$/['test'](_0x491503))throw CliErrors['validation'](_0x5eacbc(0x11c));return{'expectedDiagramRevision':_0x255f89,'sourceFingerprint':_0x491503,'diagram':await readRequiredSkillDiagram(_0x349012[_0x5eacbc(0x126)](_0x5eacbc(0x135)))};}export const diagramValidateCommand={'service':'skill','command':a44_0x14031d(0x12f),'description':a44_0x14031d(0x11a),'risk':a44_0x14031d(0x122),'flags':WRITE_FLAGS,async 'execute'(_0x561c3b){const _0x5a9d38=a44_0x14031d,_0x54fa60=readDiagramTarget(_0x561c3b),_0x392b06=await validateRuntimeSkillVersionDiagram(_0x561c3b[_0x5a9d38(0x125)],_0x54fa60[_0x5a9d38(0x142)],_0x54fa60['version'],_0x54fa60[_0x5a9d38(0x128)],await readDiagramWriteInput(_0x561c3b));return{'ok':!![],'data':_0x392b06,'message':_0x5a9d38(0x120)+_0x54fa60['skillCode']+'@'+_0x54fa60['version']+'.'};}};export const diagramPushCommand={'service':a44_0x14031d(0x12c),'command':a44_0x14031d(0x139),'description':a44_0x14031d(0x119),'risk':a44_0x14031d(0x129),'confirmationDescription':'将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','flags':WRITE_FLAGS,async 'execute'(_0x4cd30a){const _0x12ddd9=a44_0x14031d,_0x5716c7=readDiagramTarget(_0x4cd30a),_0x32ee65=await putRuntimeSkillVersionDiagram(_0x4cd30a[_0x12ddd9(0x125)],_0x5716c7[_0x12ddd9(0x142)],_0x5716c7[_0x12ddd9(0x13e)],_0x5716c7[_0x12ddd9(0x128)],await readDiagramWriteInput(_0x4cd30a));return{'ok':!![],'data':_0x32ee65,'message':_0x32ee65[_0x12ddd9(0x13c)]===_0x12ddd9(0x12a)?_0x12ddd9(0x13f)+_0x5716c7[_0x12ddd9(0x142)]+'@'+_0x5716c7[_0x12ddd9(0x13e)]+_0x12ddd9(0x138):(_0x32ee65[_0x12ddd9(0x13c)]==='created'?'Created':_0x12ddd9(0x134))+'\x20Skill\x20diagram\x20for\x20'+_0x5716c7[_0x12ddd9(0x142)]+'@'+_0x5716c7[_0x12ddd9(0x13e)]+'.'};}};export const diagramShowCommand={'service':a44_0x14031d(0x12c),'command':a44_0x14031d(0x130),'description':a44_0x14031d(0x136),'risk':a44_0x14031d(0x122),'flags':TARGET_FLAGS,async 'execute'(_0x456559){const _0xed0bd5=a44_0x14031d,_0x3f8e96=readDiagramTarget(_0x456559),_0x55ef7f=await getRuntimeSkillVersionDiagram(_0x456559[_0xed0bd5(0x125)],_0x3f8e96['skillCode'],_0x3f8e96[_0xed0bd5(0x13e)],_0x3f8e96['scope']);return{'ok':!![],'data':_0x55ef7f,'message':_0x55ef7f[_0xed0bd5(0x11b)]?_0xed0bd5(0x115)+_0x3f8e96[_0xed0bd5(0x142)]+'@'+_0x3f8e96[_0xed0bd5(0x13e)]+_0xed0bd5(0x123)+_0x55ef7f['expectedDiagramRevision']+'.':_0xed0bd5(0x132)+_0x3f8e96[_0xed0bd5(0x142)]+'@'+_0x3f8e96[_0xed0bd5(0x13e)]+';\x20first\x20write\x20expects\x20revision\x20'+_0x55ef7f[_0xed0bd5(0x127)]+'.'};}};
@@ -1 +1 @@
1
- const a45_0x52a54b=a45_0x523f;(function(_0x4ecc97,_0x3fc96c){const _0x10cb1b=a45_0x523f,_0x386fb7=_0x4ecc97();while(!![]){try{const _0x34eba2=parseInt(_0x10cb1b(0x11a))/0x1*(-parseInt(_0x10cb1b(0x110))/0x2)+parseInt(_0x10cb1b(0x132))/0x3+parseInt(_0x10cb1b(0x109))/0x4+-parseInt(_0x10cb1b(0x12e))/0x5*(parseInt(_0x10cb1b(0x10b))/0x6)+parseInt(_0x10cb1b(0x126))/0x7*(parseInt(_0x10cb1b(0x111))/0x8)+-parseInt(_0x10cb1b(0x134))/0x9+parseInt(_0x10cb1b(0x133))/0xa*(parseInt(_0x10cb1b(0x11b))/0xb);if(_0x34eba2===_0x3fc96c)break;else _0x386fb7['push'](_0x386fb7['shift']());}catch(_0x5b58af){_0x386fb7['push'](_0x386fb7['shift']());}}}(a45_0x2950,0x530d2));function a45_0x2950(){const _0x26d829=['length','516069qezyio','1877370PLquIn','5362920opSqxl','map','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','global','926264VAcpTZ','appCode','1018914wpBbez','removed','action','push','../../../core/api-client.js','4hAgRDw','56Qmvjxm','install','filter','bool','authRequired','project','includes','reduce','skillCode','206964Uwupmx','44TrZfsX','accessKey','str','read','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','code','version','unchanged','updated','created','Installed\x20','535087kjSDXp','production','../../../skills/runtime-skill-sync.js','all','scope','trim','\x20personal\x20and\x20','flatMap','10xMjfEg','company','personal'];a45_0x2950=function(){return _0x26d829;};return a45_0x2950();}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':'skill','command':a45_0x52a54b(0x112),'description':a45_0x52a54b(0x107),'risk':a45_0x52a54b(0x11e),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x5c012e){return syncRuntimeSkills(_0x5c012e);}};async function syncRuntimeSkills(_0x3df612){const _0x38e807=a45_0x52a54b,{downloadRuntimeSkillPackage:_0x3316c8,listRuntimeSkills:_0x2ffab7}=await import(_0x38e807(0x10f)),{linkEffectiveRuntimeSkills:_0xe9c227,materializeRuntimeSkill:_0x53880c,pruneStaleRuntimeSkillCache:_0x32076a,pruneStaleRuntimeSkillLinks:_0x4cbdf7,resolveRuntimeSkillInstallTarget:_0x289b80}=await import(_0x38e807(0x128)),_0x14f790=_0x3df612[_0x38e807(0x11d)](_0x38e807(0x120)),_0x32ab26=normalizeSyncScopes(_0x3df612[_0x38e807(0x11d)](_0x38e807(0x12a))),_0x4085a9=_0x3df612['envName']??_0x38e807(0x127),_0x3951a3=_0x3df612[_0x38e807(0x11c)],_0x2f2aa5=_0x3df612[_0x38e807(0x114)]('force');if(!_0x3951a3)throw CliErrors[_0x38e807(0x115)](_0x38e807(0x11f));const _0x55206e=_0x289b80(_0x3df612[_0x38e807(0x10a)],_0x3df612['bool'](_0x38e807(0x116))?_0x38e807(0x116):'global'),_0x461a35=_0x289b80(_0x3df612['appCode'],_0x55206e[_0x38e807(0x12a)]===_0x38e807(0x116)?_0x38e807(0x108):'project'),_0x313da8=await Promise[_0x38e807(0x129)](_0x32ab26[_0x38e807(0x135)](_0x3653a9=>_0x2ffab7({'appCode':_0x3df612[_0x38e807(0x10a)],'scope':_0x3653a9,'code':_0x14f790['trim']()||undefined}))),_0x274672=_0x32ab26[_0x38e807(0x117)]('personal')?_0x313da8['flatMap']((_0xd00be5,_0x1a79a5)=>_0x32ab26[_0x1a79a5]===_0x38e807(0x130)?_0xd00be5[_0x38e807(0x130)]:[]):[],_0x35a37f=_0x32ab26['includes'](_0x38e807(0x12f))?_0x313da8[_0x38e807(0x12d)]((_0x53cd9b,_0x287704)=>_0x32ab26[_0x287704]===_0x38e807(0x12f)?_0x53cd9b[_0x38e807(0x12f)]:[]):[],_0x1f23d8=new Set([..._0x274672['map'](_0x35cd34=>_0x35cd34['skillCode']?.[_0x38e807(0x12b)]())[_0x38e807(0x113)](_0x532e6f=>Boolean(_0x532e6f)),..._0x35a37f[_0x38e807(0x135)](_0x34639b=>_0x34639b[_0x38e807(0x119)]?.[_0x38e807(0x12b)]())[_0x38e807(0x113)](_0x3a06ee=>Boolean(_0x3a06ee))]),_0x1c3c1b=_0x14f790[_0x38e807(0x12b)]()?[_0x14f790['trim']()]:undefined,_0x176c7b=_0x32ab26[_0x38e807(0x131)]===0x2&&_0x32ab26['includes']('personal')&&_0x32ab26[_0x38e807(0x117)]('company'),_0x56756f=_0x176c7b?_0x4cbdf7(_0x55206e,_0x1f23d8,_0x1c3c1b):[],_0x201bc6=_0x32076a({'env':_0x4085a9,'accessKey':_0x3951a3,'appCode':_0x3df612[_0x38e807(0x10a)],'activeSkillCodes':_0x1f23d8,'pruneSkillCodes':_0x1c3c1b,'scopes':_0x32ab26,'protectedLinkRoots':_0x461a35['skillRoots']}),_0x44634a=[];for(const _0x3be3c0 of _0x274672){_0x44634a[_0x38e807(0x10e)](_0x53880c(_0x3be3c0,_0x38e807(0x130),{'env':_0x4085a9,'accessKey':_0x3951a3,'appCode':_0x3df612[_0x38e807(0x10a)],'force':_0x2f2aa5,'packageBytes':await downloadSkillPackage(_0x3be3c0,_0x38e807(0x130),_0x3df612[_0x38e807(0x10a)],_0x3316c8)}));}for(const _0x1dffdc of _0x35a37f){_0x44634a[_0x38e807(0x10e)](_0x53880c(_0x1dffdc,'company',{'env':_0x4085a9,'accessKey':_0x3951a3,'appCode':_0x3df612[_0x38e807(0x10a)],'force':_0x2f2aa5,'packageBytes':await downloadSkillPackage(_0x1dffdc,_0x38e807(0x12f),_0x3df612[_0x38e807(0x10a)],_0x3316c8)}));}const _0x368dae=_0xe9c227(_0x44634a,_0x55206e),_0x1b2678=countLinkActions(_0x368dae);return{'ok':!![],'data':{'appCode':_0x3df612[_0x38e807(0x10a)],..._0x55206e[_0x38e807(0x12a)]===_0x38e807(0x116)?{'installTarget':{'scope':_0x55206e[_0x38e807(0x12a)],'skillRoots':[..._0x55206e['skillRoots']]}}:{},'personal':_0x274672['length'],'company':_0x35a37f['length'],'materialized':_0x44634a[_0x38e807(0x131)],'links':{'total':_0x368dae[_0x38e807(0x131)],'created':_0x1b2678[_0x38e807(0x124)]??0x0,'updated':_0x1b2678[_0x38e807(0x123)]??0x0,'unchanged':_0x1b2678[_0x38e807(0x122)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x56756f[_0x38e807(0x113)](_0x13258c=>_0x13258c['action']===_0x38e807(0x10c))['length'],'cacheDirs':_0x201bc6['filter'](_0x41f3fe=>_0x41f3fe[_0x38e807(0x10d)]===_0x38e807(0x10c))['length'],'skipped':[..._0x56756f,..._0x201bc6][_0x38e807(0x113)](_0x400403=>_0x400403[_0x38e807(0x10d)]==='skipped')[_0x38e807(0x131)]},'skills':{'personal':_0x274672[_0x38e807(0x135)](summarizeRuntimeSkill),'company':_0x35a37f[_0x38e807(0x135)](summarizeRuntimeSkill)}},'message':_0x38e807(0x125)+_0x274672[_0x38e807(0x131)]+_0x38e807(0x12c)+_0x35a37f['length']+'\x20company\x20Skill(s).'};}async function downloadSkillPackage(_0x125c47,_0x5c0155,_0xd1e255,_0x3b5d48){const _0xd4156b=a45_0x52a54b,_0x10a43d=_0x125c47[_0xd4156b(0x121)]?.[_0xd4156b(0x12b)]();return _0x10a43d?_0x3b5d48(_0x5c0155,_0x125c47[_0xd4156b(0x119)],_0xd1e255,_0x10a43d):_0x3b5d48(_0x5c0155,_0x125c47[_0xd4156b(0x119)],_0xd1e255);}function a45_0x523f(_0x4da82e,_0x3af7e2){_0x4da82e=_0x4da82e-0x107;const _0x295008=a45_0x2950();let _0x523fd5=_0x295008[_0x4da82e];return _0x523fd5;}function countLinkActions(_0x4cc784){const _0x334c95=a45_0x52a54b;return _0x4cc784[_0x334c95(0x118)]((_0x4f5a58,_0x3fcc73)=>{const _0x1a4185=_0x334c95;return _0x4f5a58[_0x3fcc73['action']]=(_0x4f5a58[_0x3fcc73[_0x1a4185(0x10d)]]??0x0)+0x1,_0x4f5a58;},{});}
1
+ const a45_0x27e9c3=a45_0x2ca4;(function(_0x59e7e0,_0x3e6083){const _0x40e2be=a45_0x2ca4,_0x492eb8=_0x59e7e0();while(!![]){try{const _0x2bb47b=parseInt(_0x40e2be(0xdd))/0x1*(-parseInt(_0x40e2be(0xe5))/0x2)+parseInt(_0x40e2be(0xda))/0x3*(-parseInt(_0x40e2be(0xd2))/0x4)+-parseInt(_0x40e2be(0xea))/0x5*(parseInt(_0x40e2be(0xc6))/0x6)+parseInt(_0x40e2be(0xc7))/0x7*(parseInt(_0x40e2be(0xd9))/0x8)+parseInt(_0x40e2be(0xc0))/0x9+-parseInt(_0x40e2be(0xd4))/0xa*(parseInt(_0x40e2be(0xcd))/0xb)+parseInt(_0x40e2be(0xe9))/0xc;if(_0x2bb47b===_0x3e6083)break;else _0x492eb8['push'](_0x492eb8['shift']());}catch(_0xed5a1a){_0x492eb8['push'](_0x492eb8['shift']());}}}(a45_0x6c0e,0xa20c3));function a45_0x2ca4(_0x2a72ee,_0x43a352){_0x2a72ee=_0x2a72ee-0xbf;const _0x6c0efe=a45_0x6c0e();let _0x2ca485=_0x6c0efe[_0x2a72ee];return _0x2ca485;}import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';function a45_0x6c0e(){const _0x2a0f0f=['skillRoots','10625020QvtjCf','action','includes','project','scope','192FerRan','15vtZoHC','Installed\x20','install','432056IQJval','skipped','\x20personal\x20and\x20','all','production','reduce','authRequired','map','2pecaQy','code','str','version','25253772uyWRlu','5yKdboV','length','filter','skill','../../../skills/runtime-skill-sync.js','global','personal','trim','4648122CCsTiP','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','push','company','appCode','bool','5408274PshzLV','200935LVVDuv','force','unchanged','accessKey','skillCode','flatMap','11ebXpmN','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','updated','removed','created','200140EUQAzA'];a45_0x6c0e=function(){return _0x2a0f0f;};return a45_0x6c0e();}import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':a45_0x27e9c3(0xed),'command':a45_0x27e9c3(0xdc),'description':a45_0x27e9c3(0xc1),'risk':'read','requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x253551){return syncRuntimeSkills(_0x253551);}};async function syncRuntimeSkills(_0x40a77c){const _0x18824d=a45_0x27e9c3,{downloadRuntimeSkillPackage:_0x2e60f0,listRuntimeSkills:_0x1b8495}=await import('../../../core/api-client.js'),{linkEffectiveRuntimeSkills:_0x52a577,materializeRuntimeSkill:_0x3fe8b7,pruneStaleRuntimeSkillCache:_0x4b7300,pruneStaleRuntimeSkillLinks:_0x1f0693,resolveRuntimeSkillInstallTarget:_0x5918ab}=await import(_0x18824d(0xee)),_0x5093f8=_0x40a77c[_0x18824d(0xe7)](_0x18824d(0xe6)),_0x1119a8=normalizeSyncScopes(_0x40a77c[_0x18824d(0xe7)](_0x18824d(0xd8))),_0x326bf9=_0x40a77c['envName']??_0x18824d(0xe1),_0x299243=_0x40a77c[_0x18824d(0xca)],_0x853a2d=_0x40a77c[_0x18824d(0xc5)](_0x18824d(0xc8));if(!_0x299243)throw CliErrors[_0x18824d(0xe3)](_0x18824d(0xce));const _0x2f610d=_0x5918ab(_0x40a77c[_0x18824d(0xc4)],_0x40a77c['bool']('project')?_0x18824d(0xd7):_0x18824d(0xef)),_0x5d2e2d=_0x5918ab(_0x40a77c[_0x18824d(0xc4)],_0x2f610d[_0x18824d(0xd8)]===_0x18824d(0xd7)?_0x18824d(0xef):_0x18824d(0xd7)),_0x4cb4bb=await Promise[_0x18824d(0xe0)](_0x1119a8['map'](_0x23b8ce=>_0x1b8495({'appCode':_0x40a77c[_0x18824d(0xc4)],'scope':_0x23b8ce,'code':_0x5093f8['trim']()||undefined}))),_0x511589=_0x1119a8[_0x18824d(0xd6)](_0x18824d(0xf0))?_0x4cb4bb['flatMap']((_0x348c1f,_0x48db34)=>_0x1119a8[_0x48db34]===_0x18824d(0xf0)?_0x348c1f[_0x18824d(0xf0)]:[]):[],_0x5bfd53=_0x1119a8[_0x18824d(0xd6)]('company')?_0x4cb4bb[_0x18824d(0xcc)]((_0x6ff0f5,_0x4c1633)=>_0x1119a8[_0x4c1633]==='company'?_0x6ff0f5[_0x18824d(0xc3)]:[]):[],_0x5c78a2=new Set([..._0x511589['map'](_0x449633=>_0x449633[_0x18824d(0xcb)]?.[_0x18824d(0xbf)]())[_0x18824d(0xec)](_0x1eebc0=>Boolean(_0x1eebc0)),..._0x5bfd53[_0x18824d(0xe4)](_0x3585dd=>_0x3585dd[_0x18824d(0xcb)]?.['trim']())[_0x18824d(0xec)](_0x335cc7=>Boolean(_0x335cc7))]),_0x419d94=_0x5093f8[_0x18824d(0xbf)]()?[_0x5093f8[_0x18824d(0xbf)]()]:undefined,_0x334237=_0x1119a8['length']===0x2&&_0x1119a8[_0x18824d(0xd6)]('personal')&&_0x1119a8[_0x18824d(0xd6)]('company'),_0x5d6565=_0x334237?_0x1f0693(_0x2f610d,_0x5c78a2,_0x419d94):[],_0x3da44b=_0x4b7300({'env':_0x326bf9,'accessKey':_0x299243,'appCode':_0x40a77c[_0x18824d(0xc4)],'activeSkillCodes':_0x5c78a2,'pruneSkillCodes':_0x419d94,'scopes':_0x1119a8,'protectedLinkRoots':_0x5d2e2d[_0x18824d(0xd3)]}),_0x51395e=[];for(const _0x930341 of _0x511589){_0x51395e[_0x18824d(0xc2)](_0x3fe8b7(_0x930341,_0x18824d(0xf0),{'env':_0x326bf9,'accessKey':_0x299243,'appCode':_0x40a77c[_0x18824d(0xc4)],'force':_0x853a2d,'packageBytes':await downloadSkillPackage(_0x930341,'personal',_0x40a77c[_0x18824d(0xc4)],_0x2e60f0)}));}for(const _0xd3e44a of _0x5bfd53){_0x51395e[_0x18824d(0xc2)](_0x3fe8b7(_0xd3e44a,_0x18824d(0xc3),{'env':_0x326bf9,'accessKey':_0x299243,'appCode':_0x40a77c[_0x18824d(0xc4)],'force':_0x853a2d,'packageBytes':await downloadSkillPackage(_0xd3e44a,'company',_0x40a77c[_0x18824d(0xc4)],_0x2e60f0)}));}const _0x53be2b=_0x52a577(_0x51395e,_0x2f610d),_0x4009ee=countLinkActions(_0x53be2b);return{'ok':!![],'data':{'appCode':_0x40a77c['appCode'],..._0x2f610d[_0x18824d(0xd8)]==='project'?{'installTarget':{'scope':_0x2f610d['scope'],'skillRoots':[..._0x2f610d[_0x18824d(0xd3)]]}}:{},'personal':_0x511589['length'],'company':_0x5bfd53[_0x18824d(0xeb)],'materialized':_0x51395e[_0x18824d(0xeb)],'links':{'total':_0x53be2b[_0x18824d(0xeb)],'created':_0x4009ee[_0x18824d(0xd1)]??0x0,'updated':_0x4009ee[_0x18824d(0xcf)]??0x0,'unchanged':_0x4009ee[_0x18824d(0xc9)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x5d6565['filter'](_0x509256=>_0x509256['action']==='removed')[_0x18824d(0xeb)],'cacheDirs':_0x3da44b[_0x18824d(0xec)](_0x2e6375=>_0x2e6375[_0x18824d(0xd5)]===_0x18824d(0xd0))[_0x18824d(0xeb)],'skipped':[..._0x5d6565,..._0x3da44b][_0x18824d(0xec)](_0x2a7320=>_0x2a7320['action']===_0x18824d(0xde))[_0x18824d(0xeb)]},'skills':{'personal':_0x511589[_0x18824d(0xe4)](summarizeRuntimeSkill),'company':_0x5bfd53[_0x18824d(0xe4)](summarizeRuntimeSkill)}},'message':_0x18824d(0xdb)+_0x511589[_0x18824d(0xeb)]+_0x18824d(0xdf)+_0x5bfd53['length']+'\x20company\x20Skill(s).'};}async function downloadSkillPackage(_0x3ad9a5,_0x2d54e2,_0x6d4f38,_0x20455b){const _0x2ad4f0=a45_0x27e9c3,_0x99351b=_0x3ad9a5[_0x2ad4f0(0xe8)]?.[_0x2ad4f0(0xbf)]();return _0x99351b?_0x20455b(_0x2d54e2,_0x3ad9a5[_0x2ad4f0(0xcb)],_0x6d4f38,_0x99351b):_0x20455b(_0x2d54e2,_0x3ad9a5[_0x2ad4f0(0xcb)],_0x6d4f38);}function countLinkActions(_0xa90f98){const _0x2ca2c9=a45_0x27e9c3;return _0xa90f98[_0x2ca2c9(0xe2)]((_0x45a5fe,_0x35d36f)=>{const _0x31633d=_0x2ca2c9;return _0x45a5fe[_0x35d36f['action']]=(_0x45a5fe[_0x35d36f[_0x31633d(0xd5)]]??0x0)+0x1,_0x45a5fe;},{});}
@@ -1 +1 @@
1
- const a46_0x1284f2=a46_0x344d;function a46_0x32e9(){const _0x21a801=['authRequired','builtin','length','production','read','remote','list','243kdJARK','3641ksZqGW','bool','company','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','../../../core/api-client.js','code','10wEZSje','Listed\x20','3155iGbfFD','local','6002563BlXPLG','scope','skill','appCode','\x20remote\x20Skill(s).','25000WYWaaC','53047RSocEk','2376228IQgpXc','1313152CqzkpH','trim','str','project','280408ZnFMFr','map','filter','personal','1002NKoYeE'];a46_0x32e9=function(){return _0x21a801;};return a46_0x32e9();}(function(_0x43554a,_0x417f1d){const _0x28c25d=a46_0x344d,_0x245f85=_0x43554a();while(!![]){try{const _0x2f6c55=-parseInt(_0x28c25d(0x6b))/0x1*(-parseInt(_0x28c25d(0x84))/0x2)+parseInt(_0x28c25d(0x6c))/0x3+parseInt(_0x28c25d(0x6d))/0x4+parseInt(_0x28c25d(0x86))/0x5*(parseInt(_0x28c25d(0x75))/0x6)+parseInt(_0x28c25d(0x88))/0x7+-parseInt(_0x28c25d(0x71))/0x8*(parseInt(_0x28c25d(0x7d))/0x9)+parseInt(_0x28c25d(0x6a))/0xa*(-parseInt(_0x28c25d(0x7e))/0xb);if(_0x2f6c55===_0x417f1d)break;else _0x245f85['push'](_0x245f85['shift']());}catch(_0x350154){_0x245f85['push'](_0x245f85['shift']());}}}(a46_0x32e9,0x8c490));import{CliErrors}from'../../../errors.js';function a46_0x344d(_0x2cfd1a,_0x3aad92){_0x2cfd1a=_0x2cfd1a-0x66;const _0x32e9dd=a46_0x32e9();let _0x344dbe=_0x32e9dd[_0x2cfd1a];return _0x344dbe;}import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':a46_0x1284f2(0x67),'command':a46_0x1284f2(0x7c),'description':a46_0x1284f2(0x81),'risk':a46_0x1284f2(0x7a),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x444c21){const _0xc35df1=a46_0x1284f2,_0x4ab9ad=_0x444c21[_0xc35df1(0x6f)](_0xc35df1(0x83)),_0x53ad12=normalizeListScope(_0x444c21[_0xc35df1(0x6f)](_0xc35df1(0x66)));if(_0x444c21[_0xc35df1(0x7f)](_0xc35df1(0x87))){const _0x15bc81=_0x444c21['accessKey'];if(!_0x15bc81)throw CliErrors[_0xc35df1(0x76)]();const {listLocalRuntimeSkills:_0xa62e03,resolveRuntimeSkillInstallTarget:_0x46f009}=await import('../../../skills/runtime-skill-sync.js'),_0x3de18c=_0x46f009(_0x444c21[_0xc35df1(0x68)],_0x444c21[_0xc35df1(0x7f)](_0xc35df1(0x70))?_0xc35df1(0x70):'global'),_0x5000f8=_0xa62e03({'env':_0x444c21['envName']??_0xc35df1(0x79),'accessKey':_0x15bc81,'appCode':_0x444c21[_0xc35df1(0x68)],'scopes':listScopeToRuntimeScopes(_0x53ad12),'code':_0x4ab9ad[_0xc35df1(0x6e)]()||undefined},_0x3de18c),_0x31079e=groupLocalRuntimeSkills(_0x5000f8);return{'ok':!![],'data':{'appCode':_0x444c21[_0xc35df1(0x68)],'source':_0xc35df1(0x87),..._0x3de18c[_0xc35df1(0x66)]===_0xc35df1(0x70)?{'installScope':_0x3de18c[_0xc35df1(0x66)]}:{},'scope':_0x53ad12,'total':_0x5000f8[_0xc35df1(0x78)],'personal':_0x31079e['personal'][_0xc35df1(0x78)],'company':_0x31079e['company']['length'],'items':_0x5000f8['map'](summarizeLocalRuntimeSkill),'skills':{'personal':_0x31079e[_0xc35df1(0x74)][_0xc35df1(0x72)](summarizeLocalRuntimeSkill),'company':_0x31079e[_0xc35df1(0x80)][_0xc35df1(0x72)](summarizeLocalRuntimeSkill)}},'message':_0xc35df1(0x85)+_0x5000f8['length']+'\x20local\x20Skill(s).'};}const {listRuntimeSkills:_0x3b95f8}=await import(_0xc35df1(0x82)),_0x32aa88=await _0x3b95f8({'appCode':_0x444c21[_0xc35df1(0x68)],'scope':listScopeToRemoteScope(_0x53ad12),'code':_0x4ab9ad[_0xc35df1(0x6e)]()||undefined}),_0x485a0d=shouldListScope(_0x53ad12,_0xc35df1(0x74))?_0x32aa88['personal']??[]:[],_0x507e7d=shouldListScope(_0x53ad12,'company')?_0x32aa88['company']??[]:[],_0x4b9ece=[..._0x485a0d,..._0x507e7d];return{'ok':!![],'data':{'appCode':_0x444c21[_0xc35df1(0x68)],'source':_0xc35df1(0x7b),'scope':_0x53ad12,'total':_0x4b9ece[_0xc35df1(0x78)],'personal':_0x485a0d[_0xc35df1(0x78)],'company':_0x507e7d['length'],'items':_0x4b9ece['map'](summarizeRuntimeSkill),'skills':{'personal':_0x485a0d[_0xc35df1(0x72)](summarizeRuntimeSkill),'company':_0x507e7d[_0xc35df1(0x72)](summarizeRuntimeSkill)}},'message':_0xc35df1(0x85)+_0x4b9ece['length']+_0xc35df1(0x69)};}};function groupLocalRuntimeSkills(_0x22d1e9){const _0x271a29=a46_0x1284f2;return{'personal':_0x22d1e9[_0x271a29(0x73)](_0x12566b=>_0x12566b[_0x271a29(0x66)]==='personal'),'company':_0x22d1e9[_0x271a29(0x73)](_0x16ccca=>_0x16ccca[_0x271a29(0x66)]===_0x271a29(0x80)),'builtin':_0x22d1e9[_0x271a29(0x73)](_0x2ba573=>_0x2ba573[_0x271a29(0x66)]===_0x271a29(0x77))};}
1
+ function a46_0x1dba(){const _0x30112a=['66SAWhHi','remote','\x20local\x20Skill(s).','envName','745497cpUhHF','bool','map','company','production','2bURaYY','accessKey','global','authRequired','\x20remote\x20Skill(s).','read','appCode','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','../../../core/api-client.js','str','363070ZIBMbW','length','personal','../../../skills/runtime-skill-sync.js','11717224KLNctB','2561992dgmUDs','trim','local','2087964fhgYXd','project','1409001xvGVdV','9930354FvbVAt','Listed\x20','filter','list','scope','code'];a46_0x1dba=function(){return _0x30112a;};return a46_0x1dba();}const a46_0x4424e5=a46_0x3539;(function(_0xa4cb08,_0x1472c7){const _0x35bbb4=a46_0x3539,_0x116acb=_0xa4cb08();while(!![]){try{const _0x45ddcf=parseInt(_0x35bbb4(0x1d4))/0x1+parseInt(_0x35bbb4(0x1d9))/0x2*(parseInt(_0x35bbb4(0x1c9))/0x3)+parseInt(_0x35bbb4(0x1c4))/0x4+-parseInt(_0x35bbb4(0x1bf))/0x5*(parseInt(_0x35bbb4(0x1d0))/0x6)+parseInt(_0x35bbb4(0x1ca))/0x7+-parseInt(_0x35bbb4(0x1c3))/0x8+-parseInt(_0x35bbb4(0x1c7))/0x9;if(_0x45ddcf===_0x1472c7)break;else _0x116acb['push'](_0x116acb['shift']());}catch(_0x2d98f6){_0x116acb['push'](_0x116acb['shift']());}}}(a46_0x1dba,0xbe281));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';function a46_0x3539(_0x4793e4,_0x3c52b8){_0x4793e4=_0x4793e4-0x1b8;const _0x1dba8f=a46_0x1dba();let _0x3539c1=_0x1dba8f[_0x4793e4];return _0x3539c1;}import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':'skill','command':a46_0x4424e5(0x1cd),'description':a46_0x4424e5(0x1bc),'risk':a46_0x4424e5(0x1ba),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x519feb){const _0x7805ba=a46_0x4424e5,_0xfe3a7a=_0x519feb[_0x7805ba(0x1be)](_0x7805ba(0x1cf)),_0x46a5d2=normalizeListScope(_0x519feb[_0x7805ba(0x1be)]('scope'));if(_0x519feb[_0x7805ba(0x1d5)]('local')){const _0x23b578=_0x519feb[_0x7805ba(0x1da)];if(!_0x23b578)throw CliErrors[_0x7805ba(0x1b8)]();const {listLocalRuntimeSkills:_0x243263,resolveRuntimeSkillInstallTarget:_0x58a065}=await import(_0x7805ba(0x1c2)),_0x3b4b4c=_0x58a065(_0x519feb[_0x7805ba(0x1bb)],_0x519feb[_0x7805ba(0x1d5)](_0x7805ba(0x1c8))?'project':_0x7805ba(0x1db)),_0x14c5db=_0x243263({'env':_0x519feb[_0x7805ba(0x1d3)]??_0x7805ba(0x1d8),'accessKey':_0x23b578,'appCode':_0x519feb[_0x7805ba(0x1bb)],'scopes':listScopeToRuntimeScopes(_0x46a5d2),'code':_0xfe3a7a[_0x7805ba(0x1c5)]()||undefined},_0x3b4b4c),_0x4f0910=groupLocalRuntimeSkills(_0x14c5db);return{'ok':!![],'data':{'appCode':_0x519feb['appCode'],'source':_0x7805ba(0x1c6),..._0x3b4b4c[_0x7805ba(0x1ce)]===_0x7805ba(0x1c8)?{'installScope':_0x3b4b4c[_0x7805ba(0x1ce)]}:{},'scope':_0x46a5d2,'total':_0x14c5db[_0x7805ba(0x1c0)],'personal':_0x4f0910[_0x7805ba(0x1c1)][_0x7805ba(0x1c0)],'company':_0x4f0910[_0x7805ba(0x1d7)][_0x7805ba(0x1c0)],'items':_0x14c5db['map'](summarizeLocalRuntimeSkill),'skills':{'personal':_0x4f0910[_0x7805ba(0x1c1)][_0x7805ba(0x1d6)](summarizeLocalRuntimeSkill),'company':_0x4f0910[_0x7805ba(0x1d7)][_0x7805ba(0x1d6)](summarizeLocalRuntimeSkill)}},'message':_0x7805ba(0x1cb)+_0x14c5db[_0x7805ba(0x1c0)]+_0x7805ba(0x1d2)};}const {listRuntimeSkills:_0xb39e2e}=await import(_0x7805ba(0x1bd)),_0x5943dc=await _0xb39e2e({'appCode':_0x519feb['appCode'],'scope':listScopeToRemoteScope(_0x46a5d2),'code':_0xfe3a7a[_0x7805ba(0x1c5)]()||undefined}),_0x45b8e9=shouldListScope(_0x46a5d2,_0x7805ba(0x1c1))?_0x5943dc[_0x7805ba(0x1c1)]??[]:[],_0x35f92d=shouldListScope(_0x46a5d2,'company')?_0x5943dc[_0x7805ba(0x1d7)]??[]:[],_0x2f0bcb=[..._0x45b8e9,..._0x35f92d];return{'ok':!![],'data':{'appCode':_0x519feb[_0x7805ba(0x1bb)],'source':_0x7805ba(0x1d1),'scope':_0x46a5d2,'total':_0x2f0bcb['length'],'personal':_0x45b8e9[_0x7805ba(0x1c0)],'company':_0x35f92d[_0x7805ba(0x1c0)],'items':_0x2f0bcb['map'](summarizeRuntimeSkill),'skills':{'personal':_0x45b8e9['map'](summarizeRuntimeSkill),'company':_0x35f92d['map'](summarizeRuntimeSkill)}},'message':_0x7805ba(0x1cb)+_0x2f0bcb[_0x7805ba(0x1c0)]+_0x7805ba(0x1b9)};}};function groupLocalRuntimeSkills(_0x23d71a){const _0x552b70=a46_0x4424e5;return{'personal':_0x23d71a['filter'](_0x1a8222=>_0x1a8222[_0x552b70(0x1ce)]===_0x552b70(0x1c1)),'company':_0x23d71a[_0x552b70(0x1cc)](_0x2a7a57=>_0x2a7a57['scope']==='company'),'builtin':_0x23d71a[_0x552b70(0x1cc)](_0x239251=>_0x239251[_0x552b70(0x1ce)]==='builtin')};}
@@ -1 +1 @@
1
- const a47_0x2fbdaf=a47_0x742c;(function(_0x184467,_0x3e1db1){const _0x5631d1=a47_0x742c,_0xb12ebc=_0x184467();while(!![]){try{const _0x33d239=parseInt(_0x5631d1(0x149))/0x1*(parseInt(_0x5631d1(0x13b))/0x2)+-parseInt(_0x5631d1(0x140))/0x3+parseInt(_0x5631d1(0x145))/0x4+-parseInt(_0x5631d1(0x13f))/0x5*(parseInt(_0x5631d1(0x143))/0x6)+parseInt(_0x5631d1(0x144))/0x7*(parseInt(_0x5631d1(0x13e))/0x8)+-parseInt(_0x5631d1(0x146))/0x9+parseInt(_0x5631d1(0x141))/0xa;if(_0x33d239===_0x3e1db1)break;else _0xb12ebc['push'](_0xb12ebc['shift']());}catch(_0x96503e){_0xb12ebc['push'](_0xb12ebc['shift']());}}}(a47_0x138e,0x339fa));import{CONFIRM_WARNINGS_FLAG,DIAGRAM_FILE_FLAG,DIR_FLAG,PUSH_SCOPE_FLAG}from'../flags.js';import{skillPushDryRun,skillPushExecute}from'../push-execute.js';function a47_0x138e(){const _0x4abfd3=['451852nZNgnD','2502180wWafdX','将读取本地\x20Skill\x20内容:个人范围会立即保存并生效,公司范围会提交一个新版本进入审核。确认界面不会展示目录路径或\x20Skill\x20正文。','skill','1778AEqHGF','116EavJou','将本地\x20Skill\x20目录推送到个人范围,或提交公司范围版本审核','write','1632056JHAyJW','1680910KVdsjF','849012ZnfEAj','4845550cswEVx','push','6GAKIso','14eByulu'];a47_0x138e=function(){return _0x4abfd3;};return a47_0x138e();}function a47_0x742c(_0x1f35ae,_0x211175){_0x1f35ae=_0x1f35ae-0x13b;const _0x138e6d=a47_0x138e();let _0x742c08=_0x138e6d[_0x1f35ae];return _0x742c08;}export const pushCommand={'service':a47_0x2fbdaf(0x148),'command':a47_0x2fbdaf(0x142),'description':a47_0x2fbdaf(0x13c),'risk':a47_0x2fbdaf(0x13d),'confirmationDescription':a47_0x2fbdaf(0x147),'flags':[DIR_FLAG,DIAGRAM_FILE_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};
1
+ const a47_0x2e14d7=a47_0x37fe;(function(_0x1bf83d,_0x56a813){const _0x5b39a6=a47_0x37fe,_0x3544ca=_0x1bf83d();while(!![]){try{const _0x40d62c=parseInt(_0x5b39a6(0x100))/0x1+parseInt(_0x5b39a6(0xfc))/0x2*(parseInt(_0x5b39a6(0x105))/0x3)+-parseInt(_0x5b39a6(0x103))/0x4*(parseInt(_0x5b39a6(0xfe))/0x5)+-parseInt(_0x5b39a6(0x10a))/0x6*(parseInt(_0x5b39a6(0x101))/0x7)+-parseInt(_0x5b39a6(0x106))/0x8+-parseInt(_0x5b39a6(0xfd))/0x9*(-parseInt(_0x5b39a6(0x107))/0xa)+parseInt(_0x5b39a6(0x102))/0xb*(-parseInt(_0x5b39a6(0xff))/0xc);if(_0x40d62c===_0x56a813)break;else _0x3544ca['push'](_0x3544ca['shift']());}catch(_0x36153e){_0x3544ca['push'](_0x3544ca['shift']());}}}(a47_0x5e13,0x758f4));import{CONFIRM_WARNINGS_FLAG,DIAGRAM_FILE_FLAG,DIR_FLAG,PUSH_SCOPE_FLAG}from'../flags.js';import{skillPushDryRun,skillPushExecute}from'../push-execute.js';function a47_0x37fe(_0xf289b2,_0x2e8818){_0xf289b2=_0xf289b2-0xfc;const _0x5e13f1=a47_0x5e13();let _0x37fe88=_0x5e13f1[_0xf289b2];return _0x37fe88;}function a47_0x5e13(){const _0x5d9f8e=['7661322jJCIkn','10TrnHeM','3912MFUYKN','943017vBemcM','14KHbSix','15917DzxTCC','1300464INYPmr','将本地\x20Skill\x20目录推送到个人范围,或提交公司范围版本审核','3YaOPXU','1932576pyozBJ','10OrohJb','skill','将读取本地\x20Skill\x20内容:个人范围会立即保存并生效,公司范围会提交一个新版本进入审核。确认界面不会展示目录路径或\x20Skill\x20正文。','1496532Jtarmo','1099238fuZzVG'];a47_0x5e13=function(){return _0x5d9f8e;};return a47_0x5e13();}export const pushCommand={'service':a47_0x2e14d7(0x108),'command':'push','description':a47_0x2e14d7(0x104),'risk':'write','confirmationDescription':a47_0x2e14d7(0x109),'flags':[DIR_FLAG,DIAGRAM_FILE_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};
@@ -1 +1 @@
1
- const a48_0x1b4028=a48_0x3e4c;function a48_0x2635(){const _0x5eaf77=['1242180rdsrGa','type','10614PHbdOK','errors','validate','1409426VGKTRE','dir','warnings','9djcYdm','bool','16omgICg','read','Skill\x20validation\x20passed.','956544YpUZne','1475JqjdrK','Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','1308223LMqPkB','811506LFDvqf','10834730haEcmI','str'];a48_0x2635=function(){return _0x5eaf77;};return a48_0x2635();}(function(_0x4a5968,_0x3b733c){const _0x30ed05=a48_0x3e4c,_0x4e36af=_0x4a5968();while(!![]){try{const _0x45b5d5=parseInt(_0x30ed05(0x1c9))/0x1+parseInt(_0x30ed05(0x1d1))/0x2+-parseInt(_0x30ed05(0x1cc))/0x3+parseInt(_0x30ed05(0x1d9))/0x4+parseInt(_0x30ed05(0x1c6))/0x5*(parseInt(_0x30ed05(0x1ce))/0x6)+-parseInt(_0x30ed05(0x1c8))/0x7*(parseInt(_0x30ed05(0x1d6))/0x8)+parseInt(_0x30ed05(0x1d4))/0x9*(-parseInt(_0x30ed05(0x1ca))/0xa);if(_0x45b5d5===_0x3b733c)break;else _0x4e36af['push'](_0x4e36af['shift']());}catch(_0x5a3a79){_0x4e36af['push'](_0x4e36af['shift']());}}}(a48_0x2635,0x6318b));import{DIR_FLAG,STRICT_FLAG}from'../flags.js';function a48_0x3e4c(_0x11274b,_0x36bf47){_0x11274b=_0x11274b-0x1c6;const _0x263552=a48_0x2635();let _0x3e4c94=_0x263552[_0x11274b];return _0x3e4c94;}import{throwIfSkillValidationFailed,validateSkillDirectory}from'../validate.js';export const validateCommand={'service':'skill','command':a48_0x1b4028(0x1d0),'description':a48_0x1b4028(0x1c7),'risk':a48_0x1b4028(0x1d7),'requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x26ac52){const _0x2ebe49=a48_0x1b4028,_0x5a5d1f=_0x26ac52[_0x2ebe49(0x1d5)]('strict'),_0x15893b=validateSkillDirectory(_0x26ac52[_0x2ebe49(0x1cb)](_0x2ebe49(0x1d2)),{'strict':_0x5a5d1f});return throwIfSkillValidationFailed(_0x15893b,_0x5a5d1f),{'ok':!![],'data':{'dir':_0x15893b[_0x2ebe49(0x1d2)],'type':_0x15893b[_0x2ebe49(0x1cd)],'errors':_0x15893b[_0x2ebe49(0x1cf)],'warnings':_0x15893b[_0x2ebe49(0x1d3)]},'message':_0x2ebe49(0x1d8)};}};
1
+ const a48_0xbdaae4=a48_0x85a9;function a48_0x11ab(){const _0xdee402=['12091150IrFdqu','5096850NfVJZq','9ZGOeLB','64sejZQM','18375MenSvK','5905680xNabAn','str','dir','258736tyHyPF','72QZgAvE','953574PbAdzK','820708TtFJws','read','type','warnings','3fAyJfg','errors','Skill\x20validation\x20passed.'];a48_0x11ab=function(){return _0xdee402;};return a48_0x11ab();}(function(_0x11febc,_0x12bb54){const _0x47fa47=a48_0x85a9,_0x231a17=_0x11febc();while(!![]){try{const _0x378614=-parseInt(_0x47fa47(0x124))/0x1+-parseInt(_0x47fa47(0x134))/0x2*(parseInt(_0x47fa47(0x129))/0x3)+parseInt(_0x47fa47(0x135))/0x4*(parseInt(_0x47fa47(0x130))/0x5)+-parseInt(_0x47fa47(0x131))/0x6+parseInt(_0x47fa47(0x125))/0x7*(parseInt(_0x47fa47(0x12f))/0x8)+parseInt(_0x47fa47(0x12e))/0x9*(parseInt(_0x47fa47(0x12c))/0xa)+parseInt(_0x47fa47(0x12d))/0xb;if(_0x378614===_0x12bb54)break;else _0x231a17['push'](_0x231a17['shift']());}catch(_0x32449c){_0x231a17['push'](_0x231a17['shift']());}}}(a48_0x11ab,0x94c41));import{DIR_FLAG,STRICT_FLAG}from'../flags.js';import{throwIfSkillValidationFailed,validateSkillDirectory}from'../validate.js';function a48_0x85a9(_0x5e90d1,_0x379b9e){_0x5e90d1=_0x5e90d1-0x124;const _0x11aba1=a48_0x11ab();let _0x85a91=_0x11aba1[_0x5e90d1];return _0x85a91;}export const validateCommand={'service':'skill','command':'validate','description':'Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','risk':a48_0xbdaae4(0x126),'requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x2b4bc1){const _0x2dc51a=a48_0xbdaae4,_0x434c39=_0x2b4bc1['bool']('strict'),_0x41dd5a=validateSkillDirectory(_0x2b4bc1[_0x2dc51a(0x132)](_0x2dc51a(0x133)),{'strict':_0x434c39});return throwIfSkillValidationFailed(_0x41dd5a,_0x434c39),{'ok':!![],'data':{'dir':_0x41dd5a['dir'],'type':_0x41dd5a[_0x2dc51a(0x127)],'errors':_0x41dd5a[_0x2dc51a(0x12a)],'warnings':_0x41dd5a[_0x2dc51a(0x128)]},'message':_0x2dc51a(0x12b)};}};
@@ -1 +1 @@
1
- (function(_0x4b3ad7,_0x71cf88){const _0x571e96=a49_0x3647,_0xd6a2c8=_0x4b3ad7();while(!![]){try{const _0x40a2a4=-parseInt(_0x571e96(0x82))/0x1+-parseInt(_0x571e96(0x8f))/0x2+parseInt(_0x571e96(0x84))/0x3+-parseInt(_0x571e96(0x80))/0x4+-parseInt(_0x571e96(0x81))/0x5*(-parseInt(_0x571e96(0x86))/0x6)+-parseInt(_0x571e96(0x83))/0x7*(parseInt(_0x571e96(0x85))/0x8)+-parseInt(_0x571e96(0x87))/0x9*(-parseInt(_0x571e96(0x89))/0xa);if(_0x40a2a4===_0x71cf88)break;else _0xd6a2c8['push'](_0xd6a2c8['shift']());}catch(_0x5330dd){_0xd6a2c8['push'](_0xd6a2c8['shift']());}}}(a49_0x24ac,0x1acfc));function a49_0x3647(_0x3ac576,_0x5210f0){_0x3ac576=_0x3ac576-0x78;const _0x24ac38=a49_0x24ac();let _0x364762=_0x24ac38[_0x3ac576];return _0x364762;}function a49_0x24ac(){const _0x4bbf20=['8ricDOz','117438DJmLcR','680904mCVYNm','--diagram-file\x20is\x20required\x20when\x20publishing\x20a\x20Skill\x20version.','40kDHUMZ','replace','utf8','trim','Mermaid\x20flowchart\x20path\x20is\x20not\x20a\x20regular\x20file:\x20','diagram','51402WwQakc','defineProperties','Unable\x20to\x20read\x20Mermaid\x20flowchart\x20from\x20standard\x20input.','isFile','parse','mermaid','window','default','Mermaid\x20flowchart\x20file\x20not\x20found:\x20','Generate\x20a\x20Mermaid\x20flowchart\x20and\x20pass\x20--diagram-file\x20<path>,\x20or\x20use\x20--diagram-file\x20-\x20for\x20standard\x20input.','document','Fix\x20the\x20Mermaid\x20syntax\x20reported\x20by\x20your\x20editor\x20or\x20preview\x20tool,\x20then\x20retry\x20with\x20the\x20same\x20file.','validation','623056uEiaWg','5WBaRuA','111659aLiCuY','720482WcRlYZ','551019gznfyj'];a49_0x24ac=function(){return _0x4bbf20;};return a49_0x24ac();}import{existsSync,readFileSync,realpathSync,statSync}from'node:fs';import{resolve}from'node:path';import{JSDOM}from'jsdom';import{CliErrors}from'../../errors.js';let mermaidApiPromise;export async function readRequiredSkillDiagram(_0x408bc3){const _0x8bd932=a49_0x3647;return(await readRequiredSkillDiagramInput(_0x408bc3))[_0x8bd932(0x8e)];}export async function readRequiredSkillDiagramInput(_0xddb575){const _0xd2291a=a49_0x3647,_0x19e3fe=_0xddb575[_0xd2291a(0x8c)]();if(!_0x19e3fe)throw CliErrors[_0xd2291a(0x7f)](_0xd2291a(0x88),_0xd2291a(0x7c));let _0x395d63,_0x242813;if(_0x19e3fe==='-')try{_0x395d63=readFileSync(0x0,_0xd2291a(0x8b));}catch{throw CliErrors[_0xd2291a(0x7f)](_0xd2291a(0x91));}else{const _0x58859c=resolve(_0x19e3fe);if(!existsSync(_0x58859c))throw CliErrors[_0xd2291a(0x7f)](_0xd2291a(0x7b)+_0x58859c);if(!statSync(_0x58859c)[_0xd2291a(0x92)]())throw CliErrors[_0xd2291a(0x7f)](_0xd2291a(0x8d)+_0x58859c);_0x242813=realpathSync(_0x58859c),_0x395d63=readFileSync(_0x242813,_0xd2291a(0x8b));}return{'diagram':{'schemaVersion':0x1,'mermaid':await validateAndCanonicalizeMermaid(_0x395d63)},'sourceFilePath':_0x242813};}export async function validateAndCanonicalizeMermaid(_0x5eb15d){const _0x37a665=a49_0x3647,_0x35ecfc=_0x5eb15d[_0x37a665(0x8a)](/\r\n/g,'\x0a')[_0x37a665(0x8a)](/\r/g,'\x0a')[_0x37a665(0x8a)](/\n+$/,'')+'\x0a';try{const _0xf498b4=await loadMermaidApi();await _0xf498b4[_0x37a665(0x93)](_0x35ecfc);}catch{throw diagramValidationError();}return _0x35ecfc;}function loadMermaidApi(){return mermaidApiPromise??=((async()=>{const _0x312524=a49_0x3647;if(!(_0x312524(0x79)in globalThis)||!(_0x312524(0x7d)in globalThis)){const _0x4aa0d1=new JSDOM('');Object[_0x312524(0x90)](globalThis,{'window':{'configurable':!![],'value':_0x4aa0d1[_0x312524(0x79)]},'document':{'configurable':!![],'value':_0x4aa0d1['window']['document']}});}return(await import(_0x312524(0x78)))[_0x312524(0x7a)];})()),mermaidApiPromise;}function diagramValidationError(){const _0x29e3ab=a49_0x3647;return CliErrors[_0x29e3ab(0x7f)]('Mermaid\x20syntax\x20validation\x20failed.',_0x29e3ab(0x7e));}
1
+ (function(_0x8f4782,_0x3d0997){const _0x48c13f=a49_0x2ea2,_0x24487d=_0x8f4782();while(!![]){try{const _0x1f8d0a=-parseInt(_0x48c13f(0x115))/0x1+parseInt(_0x48c13f(0x11f))/0x2+parseInt(_0x48c13f(0x11c))/0x3+-parseInt(_0x48c13f(0x127))/0x4+parseInt(_0x48c13f(0x12b))/0x5+-parseInt(_0x48c13f(0x113))/0x6*(parseInt(_0x48c13f(0x11b))/0x7)+-parseInt(_0x48c13f(0x120))/0x8*(-parseInt(_0x48c13f(0x124))/0x9);if(_0x1f8d0a===_0x3d0997)break;else _0x24487d['push'](_0x24487d['shift']());}catch(_0x1d1c15){_0x24487d['push'](_0x24487d['shift']());}}}(a49_0x632b,0x46a0a));import{existsSync,readFileSync,realpathSync,statSync}from'node:fs';function a49_0x632b(){const _0x21af0c=['7HxThXS','69210HDPvmV','replace','Mermaid\x20syntax\x20validation\x20failed.','374396BXEcaA','64576dFjLUP','window','Generate\x20a\x20Mermaid\x20flowchart\x20and\x20pass\x20--diagram-file\x20<path>,\x20or\x20use\x20--diagram-file\x20-\x20for\x20standard\x20input.','--diagram-file\x20is\x20required\x20when\x20publishing\x20a\x20Skill\x20version.','477IAegGT','trim','validation','1059964aBPsKK','parse','utf8','default','2892310wimWMQ','1725342vhczWN','Mermaid\x20flowchart\x20file\x20not\x20found:\x20','374708kBjEXm','diagram','mermaid','Fix\x20the\x20Mermaid\x20syntax\x20reported\x20by\x20your\x20editor\x20or\x20preview\x20tool,\x20then\x20retry\x20with\x20the\x20same\x20file.','Unable\x20to\x20read\x20Mermaid\x20flowchart\x20from\x20standard\x20input.','defineProperties'];a49_0x632b=function(){return _0x21af0c;};return a49_0x632b();}import{resolve}from'node:path';import{JSDOM}from'jsdom';import{CliErrors}from'../../errors.js';let mermaidApiPromise;export async function readRequiredSkillDiagram(_0x3de374){const _0xfad32d=a49_0x2ea2;return(await readRequiredSkillDiagramInput(_0x3de374))[_0xfad32d(0x116)];}export async function readRequiredSkillDiagramInput(_0x1cb1c6){const _0x172424=a49_0x2ea2,_0x5e0a9e=_0x1cb1c6[_0x172424(0x125)]();if(!_0x5e0a9e)throw CliErrors[_0x172424(0x126)](_0x172424(0x123),_0x172424(0x122));let _0x47071c,_0x1d83f9;if(_0x5e0a9e==='-')try{_0x47071c=readFileSync(0x0,'utf8');}catch{throw CliErrors[_0x172424(0x126)](_0x172424(0x119));}else{const _0x14d0bb=resolve(_0x5e0a9e);if(!existsSync(_0x14d0bb))throw CliErrors[_0x172424(0x126)](_0x172424(0x114)+_0x14d0bb);if(!statSync(_0x14d0bb)['isFile']())throw CliErrors[_0x172424(0x126)]('Mermaid\x20flowchart\x20path\x20is\x20not\x20a\x20regular\x20file:\x20'+_0x14d0bb);_0x1d83f9=realpathSync(_0x14d0bb),_0x47071c=readFileSync(_0x1d83f9,_0x172424(0x129));}return{'diagram':{'schemaVersion':0x1,'mermaid':await validateAndCanonicalizeMermaid(_0x47071c)},'sourceFilePath':_0x1d83f9};}export async function validateAndCanonicalizeMermaid(_0x13319c){const _0x1bc94e=a49_0x2ea2,_0x493f10=_0x13319c[_0x1bc94e(0x11d)](/\r\n/g,'\x0a')[_0x1bc94e(0x11d)](/\r/g,'\x0a')[_0x1bc94e(0x11d)](/\n+$/,'')+'\x0a';try{const _0x37a03b=await loadMermaidApi();await _0x37a03b[_0x1bc94e(0x128)](_0x493f10);}catch{throw diagramValidationError();}return _0x493f10;}function a49_0x2ea2(_0x32d42e,_0x270ca0){_0x32d42e=_0x32d42e-0x113;const _0x632b1b=a49_0x632b();let _0x2ea26a=_0x632b1b[_0x32d42e];return _0x2ea26a;}function loadMermaidApi(){return mermaidApiPromise??=((async()=>{const _0x38872b=a49_0x2ea2;if(!(_0x38872b(0x121)in globalThis)||!('document'in globalThis)){const _0x127732=new JSDOM('');Object[_0x38872b(0x11a)](globalThis,{'window':{'configurable':!![],'value':_0x127732['window']},'document':{'configurable':!![],'value':_0x127732['window']['document']}});}return(await import(_0x38872b(0x117)))[_0x38872b(0x12a)];})()),mermaidApiPromise;}function diagramValidationError(){const _0x4ebb0c=a49_0x2ea2;return CliErrors[_0x4ebb0c(0x126)](_0x4ebb0c(0x11e),_0x4ebb0c(0x118));}