@lovrabet/lovrabet-cli 2.1.23 → 2.2.0

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 (169) hide show
  1. package/README.md +13 -10
  2. package/lib/cli.js +1 -1
  3. package/lib/commands/api-doc/index.js +1 -1
  4. package/lib/commands/app/cache.js +1 -1
  5. package/lib/commands/app/definitions.js +1 -1
  6. package/lib/commands/app/eligibility.js +1 -1
  7. package/lib/commands/app/mock-loader.js +1 -1
  8. package/lib/commands/app/remote-source.js +1 -1
  9. package/lib/commands/app/shared.js +1 -1
  10. package/lib/commands/app-config/get.js +1 -1
  11. package/lib/commands/app-config/index.js +1 -1
  12. package/lib/commands/artifact/index.js +1 -1
  13. package/lib/commands/auth/device.js +1 -1
  14. package/lib/commands/auth/index.js +1 -1
  15. package/lib/commands/auth/prompt.js +1 -1
  16. package/lib/commands/bff/detail.js +1 -1
  17. package/lib/commands/bff/exec.js +1 -1
  18. package/lib/commands/bff/index.js +1 -1
  19. package/lib/commands/cli-skill/index.js +1 -1
  20. package/lib/commands/common/config-policy.js +1 -1
  21. package/lib/commands/common/constraints.js +1 -1
  22. package/lib/commands/common/flags.js +1 -1
  23. package/lib/commands/common/local-file.js +1 -1
  24. package/lib/commands/config/definitions.js +1 -1
  25. package/lib/commands/config/shared.js +1 -1
  26. package/lib/commands/data/index.js +1 -1
  27. package/lib/commands/dataset/detail.js +1 -1
  28. package/lib/commands/dataset/index.js +1 -1
  29. package/lib/commands/dataset/list.js +1 -1
  30. package/lib/commands/dataset/sdk-doc.js +1 -1
  31. package/lib/commands/doctor.js +1 -1
  32. package/lib/commands/file/index.js +1 -1
  33. package/lib/commands/init.js +1 -1
  34. package/lib/commands/kb/index.js +1 -1
  35. package/lib/commands/logs/index.js +1 -1
  36. package/lib/commands/ocr/index.js +1 -1
  37. package/lib/commands/personal-bff/index.js +1 -1
  38. package/lib/commands/registry.js +1 -1
  39. package/lib/commands/schedule/index.js +1 -1
  40. package/lib/commands/schema.js +1 -1
  41. package/lib/commands/service/dynamic.js +1 -1
  42. package/lib/commands/service/function-name-adapter.js +1 -1
  43. package/lib/commands/service/index.js +1 -1
  44. package/lib/commands/service/registry.js +1 -1
  45. package/lib/commands/skill/commands/create.js +1 -1
  46. package/lib/commands/skill/commands/diagram.js +1 -1
  47. package/lib/commands/skill/commands/install.js +1 -1
  48. package/lib/commands/skill/commands/list.js +1 -1
  49. package/lib/commands/skill/commands/push.js +1 -1
  50. package/lib/commands/skill/commands/validate.js +1 -1
  51. package/lib/commands/skill/diagram.js +1 -1
  52. package/lib/commands/skill/flags.js +1 -1
  53. package/lib/commands/skill/index.js +1 -1
  54. package/lib/commands/skill/manifest-helpers.js +1 -1
  55. package/lib/commands/skill/push-execute.js +1 -1
  56. package/lib/commands/skill/push-flow-helpers.js +1 -1
  57. package/lib/commands/skill/push-retarget.js +1 -1
  58. package/lib/commands/skill/scopes.js +1 -1
  59. package/lib/commands/skill/summary.js +1 -1
  60. package/lib/commands/skill/templates.js +1 -1
  61. package/lib/commands/skill/validate.js +1 -1
  62. package/lib/commands/sql/detail.js +1 -1
  63. package/lib/commands/sql/exec.js +1 -1
  64. package/lib/commands/sql/index.js +1 -1
  65. package/lib/commands/update.d.ts +2 -2
  66. package/lib/commands/update.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.d.ts +2 -0
  105. package/lib/postinstall.js +1 -0
  106. package/lib/runtime/confirmation.js +1 -1
  107. package/lib/runtime/event.js +1 -1
  108. package/lib/runtime/index.js +1 -1
  109. package/lib/runtime/queue.js +1 -1
  110. package/lib/runtime/resolve.js +1 -1
  111. package/lib/skills/builtin-skill.d.ts +37 -0
  112. package/lib/skills/builtin-skill.js +1 -0
  113. package/lib/skills/npx-skills-add.d.ts +3 -1
  114. package/lib/skills/npx-skills-add.js +1 -1
  115. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  116. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  117. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  118. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  119. package/lib/skills/runtime-skill-sync/links.js +1 -1
  120. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  121. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  122. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  123. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  124. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  125. package/lib/skills/runtime-skill-sync/push.js +1 -1
  126. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  127. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  128. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  129. package/lib/skills/runtime-skill-sync.js +1 -1
  130. package/lib/skills/skill-presence.js +1 -1
  131. package/lib/utils/apply-jq-filter.js +1 -1
  132. package/lib/utils/logger.js +1 -1
  133. package/lib/utils/lossless-json.js +1 -1
  134. package/lib/utils/params.js +1 -1
  135. package/lib/utils/platform.js +1 -1
  136. package/lib/utils/update-notice.js +1 -1
  137. package/lib/utils/version.js +1 -1
  138. package/lib/utils/write-cli-side-channel.js +1 -1
  139. package/package.json +14 -3
  140. package/scripts/postinstall.mjs +24 -0
  141. package/skills/lovrabet/SKILL.md +702 -0
  142. package/skills/lovrabet/guides/app-resolution.md +165 -0
  143. package/skills/lovrabet/guides/dataset-and-data-workflow.md +170 -0
  144. package/skills/lovrabet/guides/sql-and-bff-workflow.md +132 -0
  145. package/skills/lovrabet/guides/troubleshooting.md +91 -0
  146. package/skills/lovrabet/references/dataset-discovery-workflow.md +160 -0
  147. package/skills/lovrabet/references/instant-api-workflow.md +259 -0
  148. package/skills/lovrabet/references/lovrabet-app-config.md +51 -0
  149. package/skills/lovrabet/references/lovrabet-app.md +113 -0
  150. package/skills/lovrabet/references/lovrabet-auth.md +136 -0
  151. package/skills/lovrabet/references/lovrabet-bff-workflow.md +139 -0
  152. package/skills/lovrabet/references/lovrabet-config-commands.md +104 -0
  153. package/skills/lovrabet/references/lovrabet-config.md +124 -0
  154. package/skills/lovrabet/references/lovrabet-doctor.md +26 -0
  155. package/skills/lovrabet/references/lovrabet-file-workflow.md +62 -0
  156. package/skills/lovrabet/references/lovrabet-kb-workflow.md +78 -0
  157. package/skills/lovrabet/references/lovrabet-logs.md +19 -0
  158. package/skills/lovrabet/references/lovrabet-ocr-workflow.md +83 -0
  159. package/skills/lovrabet/references/lovrabet-output-format-jq.md +40 -0
  160. package/skills/lovrabet/references/lovrabet-personal-bff-workflow.md +108 -0
  161. package/skills/lovrabet/references/lovrabet-schedule-workflow.md +175 -0
  162. package/skills/lovrabet/references/lovrabet-service-tree.md +279 -0
  163. package/skills/lovrabet/references/lovrabet-skill-authoring.md +128 -0
  164. package/skills/lovrabet/references/lovrabet-skill-install.md +34 -0
  165. package/skills/lovrabet/references/lovrabet-skill-sync.md +146 -0
  166. package/skills/lovrabet/references/lovrabet-sql-workflow.md +111 -0
  167. package/skills/lovrabet/references/lovrabet-update.md +34 -0
  168. package/skills/lovrabet/references/lovrabet-workspace.md +82 -0
  169. package/skills/lovrabet.manifest.json +38 -0
@@ -1 +1 @@
1
- (function(_0x2a7b6a,_0x1edad7){const _0x9417e8=a39_0x2190,_0x247fa5=_0x2a7b6a();while(!![]){try{const _0x17915e=parseInt(_0x9417e8(0x182))/0x1*(parseInt(_0x9417e8(0x14b))/0x2)+parseInt(_0x9417e8(0x17e))/0x3*(parseInt(_0x9417e8(0x14e))/0x4)+-parseInt(_0x9417e8(0x14c))/0x5+parseInt(_0x9417e8(0x14d))/0x6+parseInt(_0x9417e8(0x18f))/0x7+-parseInt(_0x9417e8(0x153))/0x8+-parseInt(_0x9417e8(0x1a4))/0x9;if(_0x17915e===_0x1edad7)break;else _0x247fa5['push'](_0x247fa5['shift']());}catch(_0x53501a){_0x247fa5['push'](_0x247fa5['shift']());}}}(a39_0x29f5,0x38e68));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(_0x2e0420,_0x55af71){const _0x47b3c4=a39_0x2190,_0x36ad50=listLocalServiceTrees();let _0x247753;for(const _0x3231cd of _0x36ad50){const _0xb2d06b=matchServiceTreeCommand(_0x3231cd,_0x2e0420);if(!_0xb2d06b)continue;(!_0x247753||_0xb2d06b[_0x47b3c4(0x15e)][_0x47b3c4(0x19b)]['length']>_0x247753[_0x47b3c4(0x15e)][_0x47b3c4(0x19b)][_0x47b3c4(0x1a2)])&&(_0x247753={'tree':_0x3231cd,'command':_0xb2d06b[_0x47b3c4(0x15e)],'remainingArgs':_0xb2d06b['remainingArgs']});}if(!_0x247753)return undefined;const _0x40390c={..._0x55af71};return applyAppBinding(_0x247753[_0x47b3c4(0x187)],_0x247753[_0x47b3c4(0x15e)],_0x40390c),{'definition':buildDynamicCommandDefinition(_0x247753[_0x47b3c4(0x187)],_0x247753[_0x47b3c4(0x15e)]),'args':_0x247753[_0x47b3c4(0x164)],'flags':_0x40390c,'tree':_0x247753[_0x47b3c4(0x187)],'command':_0x247753[_0x47b3c4(0x15e)]};}export function generateDynamicServiceHelp(_0x4759a4){const _0x19af62=a39_0x2190,_0xf3db1=listLocalServiceTrees()[_0x19af62(0x18b)](_0x3904c8=>_0x3904c8['service'][_0x19af62(0x19f)]===_0x4759a4);if(!_0xf3db1)return undefined;const _0x572408=[CLI_BIN_NAME+'\x20'+_0x4759a4+_0x19af62(0x157),'',_0xf3db1[_0x19af62(0x172)][_0x19af62(0x162)]||_0x4759a4,_0xf3db1['service'][_0x19af62(0x1ad)]?'\x20\x20'+_0xf3db1[_0x19af62(0x172)][_0x19af62(0x1ad)]:'','',_0x19af62(0x18e),..._0xf3db1[_0x19af62(0x1a8)]['map'](_0x352e77=>{const _0x40cf1a=_0x19af62,_0x2990e8=_0x352e77[_0x40cf1a(0x19b)][_0x40cf1a(0x19a)](0x1)[_0x40cf1a(0x18c)]('\x20'),_0x4a6e76=_0x352e77[_0x40cf1a(0x173)]===_0x40cf1a(0x170)?'':'\x20['+_0x352e77[_0x40cf1a(0x173)]+']';return'\x20\x20'+_0x2990e8[_0x40cf1a(0x14f)](0x18)+'\x20'+(_0x352e77[_0x40cf1a(0x1ad)]||'')+_0x4a6e76;}),'',_0x19af62(0x181)+CLI_BIN_NAME+_0x19af62(0x1a6)+_0x4759a4+_0x19af62(0x1a7)][_0x19af62(0x179)](Boolean);return _0x572408['join']('\x0a');}export function listDynamicServiceEntries(){const _0x3fd618=a39_0x2190;return listLocalServices()[_0x3fd618(0x18d)](_0x28626b=>{const _0x4a12fc=_0x3fd618,_0x245427=_0x28626b['normalizedManifest'];return{'service':_0x245427[_0x4a12fc(0x172)]['code'],'label':_0x245427[_0x4a12fc(0x172)][_0x4a12fc(0x162)]||_0x245427[_0x4a12fc(0x172)]['code'],'commands':_0x245427[_0x4a12fc(0x1a8)][_0x4a12fc(0x18d)](_0x4df866=>({'command':dynamicCommandName(_0x4df866),'description':_0x4df866['description']||_0x4a12fc(0x148)+_0x4df866[_0x4a12fc(0x195)],'tag':riskTag(_0x4df866['risk'])}))};});}export function getDynamicServiceEntry(_0x33f68f){const _0x25037a=a39_0x2190;return listDynamicServiceEntries()['find'](_0x3b364a=>_0x3b364a[_0x25037a(0x172)]===_0x33f68f);}export function listDynamicServiceDefinitions(_0x4bb146){const _0x52da2a=a39_0x2190;return listLocalServiceTrees()[_0x52da2a(0x179)](_0x138436=>!_0x4bb146||_0x138436[_0x52da2a(0x172)][_0x52da2a(0x19f)]===_0x4bb146)['flatMap'](_0x450b60=>_0x450b60[_0x52da2a(0x1a8)]['map'](_0x3a7ed9=>buildDynamicCommandDefinition(_0x450b60,_0x3a7ed9)));}export function getDynamicServiceDefinitions(_0x393cab){const _0x431e8b=a39_0x2190,_0x738b3d=listDynamicServiceDefinitions(_0x393cab);return _0x738b3d[_0x431e8b(0x1a2)]>0x0?_0x738b3d:undefined;}export function findDynamicServiceDefinition(_0x1164de,_0x5edbb4){const _0x2b4d4f=a39_0x2190;return listDynamicServiceDefinitions(_0x1164de)[_0x2b4d4f(0x18b)](_0x2dfd54=>_0x2dfd54['command']===_0x5edbb4);}export function buildDynamicCommandDefinition(_0x1ad484,_0x127bf7){const _0x4c0d59=a39_0x2190;return{'service':_0x1ad484[_0x4c0d59(0x172)]['code'],'command':dynamicCommandName(_0x127bf7),'description':_0x127bf7[_0x4c0d59(0x1ad)]||'Run\x20service\x20command\x20'+_0x127bf7[_0x4c0d59(0x195)],'risk':_0x127bf7[_0x4c0d59(0x173)],..._0x127bf7['risk']===_0x4c0d59(0x170)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x127bf7)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x127bf7['args']['map'](_0x2d74bf=>({'name':_0x2d74bf[_0x4c0d59(0x162)],'description':_0x2d74bf['description']||_0x2d74bf[_0x4c0d59(0x162)],'required':_0x2d74bf[_0x4c0d59(0x165)]})),'flags':_0x127bf7[_0x4c0d59(0x184)][_0x4c0d59(0x18d)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x127bf7),async 'dryRun'(_0x5122f4){const _0x41bcfa=_0x4c0d59,_0x381e7d=await compilePlan(_0x127bf7,_0x5122f4);return{'method':'SERVICE_TREE','url':_0x127bf7[_0x41bcfa(0x195)],'body':{'target':targetPreview(_0x381e7d),'params':_0x381e7d[_0x41bcfa(0x190)]},'description':_0x41bcfa(0x199)+_0x127bf7[_0x41bcfa(0x195)]};},async 'execute'(_0x174b99){const _0x5ac65d=_0x4c0d59,_0x1f7862=await compilePlan(_0x127bf7,_0x174b99),_0x29bb70=Date[_0x5ac65d(0x193)](),_0x545102=await executePlan(_0x1f7862,_0x127bf7,_0x174b99),_0xbf26c8=Date[_0x5ac65d(0x193)]()-_0x29bb70;return{'ok':!![],'data':{'service':_0x1ad484[_0x5ac65d(0x172)],'command':_0x127bf7[_0x5ac65d(0x195)],'target':targetPreview(_0x1f7862),'result':_0x545102,'elapsed':_0xbf26c8},'message':'Service\x20command\x20'+_0x127bf7['cliPath']+_0x5ac65d(0x176)+_0xbf26c8+'ms'};}};}function buildDynamicConfirmationDescription(_0x134e4c){const _0x30c84b=a39_0x2190,_0x358065=_0x134e4c[_0x30c84b(0x1ad)]||_0x134e4c[_0x30c84b(0x195)],_0xc3bc02=_0x134e4c[_0x30c84b(0x173)]==='high-risk-write'?_0x30c84b(0x1ac):_0x30c84b(0x152);return _0x30c84b(0x161)+_0x358065+'”。'+_0xc3bc02;}function dynamicCommandName(_0x29ab24){const _0x27fab9=a39_0x2190;return _0x29ab24[_0x27fab9(0x19b)][_0x27fab9(0x19a)](0x1)[_0x27fab9(0x18c)]('\x20');}function a39_0x2190(_0x1fbd29,_0x379c31){_0x1fbd29=_0x1fbd29-0x147;const _0x29f5ac=a39_0x29f5();let _0x2190c7=_0x29f5ac[_0x1fbd29];return _0x2190c7;}function riskTag(_0x484932){const _0x1601c2=a39_0x2190;return _0x484932===_0x1601c2(0x170)?'':_0x1601c2(0x159)+_0x484932+']';}function flagToCommandFlag(_0x4d6df2){const _0x18093b=a39_0x2190;return{'name':_0x4d6df2[_0x18093b(0x15f)],'type':_0x4d6df2[_0x18093b(0x1aa)]===_0x18093b(0x16d)?'string':_0x4d6df2[_0x18093b(0x1aa)],'description':_0x4d6df2[_0x18093b(0x1ad)]||_0x4d6df2['name'],'required':_0x4d6df2[_0x18093b(0x165)],'default':isPrimitiveFlagDefault(_0x4d6df2[_0x18093b(0x15c)])?_0x4d6df2['default']:undefined,'enum':_0x4d6df2[_0x18093b(0x186)]};}async function compilePlan(_0x2fb7b6,_0x524c72){const _0x58279d=a39_0x2190;return compileServiceTreeCommand(_0x2fb7b6,{'flags':_0x524c72[_0x58279d(0x1a1)],'args':_0x524c72[_0x58279d(0x147)],'context':await buildServiceContext(_0x2fb7b6,_0x524c72)});}async function buildServiceContext(_0x28fbba,_0x32e64e){const _0x451723=a39_0x2190,_0x86c90d={'appCode':_0x32e64e['appCode'],'env':_0x32e64e[_0x451723(0x166)],'envName':_0x32e64e['envName']};if(!usesRuntimeContext(_0x28fbba))return _0x86c90d;const _0x14c2c6=await getLoginUserInfo(),_0x396d93=pickFirst(_0x14c2c6['userId'],_0x14c2c6['id']);return{..._0x86c90d,'user':_0x14c2c6,'userId':_0x396d93,'id':_0x14c2c6['id'],'username':pickFirst(_0x14c2c6[_0x451723(0x15d)],_0x14c2c6[_0x451723(0x178)],_0x14c2c6['loginName']),'userName':_0x14c2c6[_0x451723(0x178)],'nickname':pickFirst(_0x14c2c6[_0x451723(0x17b)],_0x14c2c6[_0x451723(0x16e)]),'nickName':_0x14c2c6[_0x451723(0x16e)],'tenantCode':_0x14c2c6[_0x451723(0x17d)],'employeeId':_0x14c2c6['employeeId']};}function a39_0x29f5(){const _0x473311=['\x20requires\x20target.functionName.','\x20->\x20','Use\x20`','3088kLLNdT','fromEntries','flags','mapTo','enum','tree','\x20\x20\x20\x20command:\x20','push','bffCode','find','join','map','Commands:','2806209QVPuAx','params','some','Cannot\x20resolve\x20datatable\x20\x22','now','sqlCode','cliPath','scriptName','target','bffId','Preview\x20dynamic\x20service\x20command:\x20','slice','fullPath','sql','number','env','code','Service\x20command\x20','rawFlags','length','Unsupported\x20service\x20target\x20kind:\x20','6789663KmwPFd','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','\x20service\x20detail\x20--service\x20','`\x20to\x20inspect\x20the\x20manifest.','commands','context.','type','source','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','description','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','\x20\x20SERVICE\x20TREE\x20TARGET','startsWith','args','Run\x20service\x20command\x20','datasetCode','Unknown\x20appRef\x20\x22','146iWiZma','708710zGzTpF','1486518PoAWVK','13796xtjORt','padEnd','string','kind','该命令被清单标记为写入,可能修改业务数据或服务状态。','745600LTCeSc','\x20\x20\x20\x20kind:\x20\x20\x20\x20','datatable','dbtableConfig','\x20<command>\x20[flags]','appBindings','\x20\x20[','appCode','validation','default','username','command','cliName','const','将通过\x20Service\x20Tree\x20执行“','name','\x20\x20\x20\x20datatable:\x20','remainingArgs','required','envName','tableName','\x20\x20\x20\x20functionName:\x20','appRef','app','boolean','trim','json','nickName','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','read','appcode','service','risk','bff','operator','\x20completed\x20in\x20','ctx.','userName','filter','data','nickname','\x20\x20MAP\x20TO','tenantCode','303OrGllF'];a39_0x29f5=function(){return _0x473311;};return a39_0x29f5();}function usesRuntimeContext(_0x1b1d3e){const _0x383c93=a39_0x2190;return _0x1b1d3e[_0x383c93(0x185)][_0x383c93(0x191)](_0x51454a=>typeof _0x51454a[_0x383c93(0x1ab)]===_0x383c93(0x150)&&(_0x51454a[_0x383c93(0x1ab)][_0x383c93(0x1b0)](_0x383c93(0x1a9))||_0x51454a[_0x383c93(0x1ab)][_0x383c93(0x1b0)](_0x383c93(0x177))));}function pickFirst(..._0x7e2e7c){return _0x7e2e7c['find'](_0x4e0a18=>_0x4e0a18!==undefined&&_0x4e0a18!==null);}async function executePlan(_0x474723,_0x1dfc75,_0x1d2a53){const _0x3a6bd7=a39_0x2190;if(_0x474723['kind']===_0x3a6bd7(0x17a)){const _0x4816f3=await resolveDatasetCode(_0x474723,_0x1dfc75,_0x1d2a53);return executeData(_0x4816f3,_0x474723[_0x3a6bd7(0x15e)],_0x474723[_0x3a6bd7(0x190)]);}if(_0x474723[_0x3a6bd7(0x151)]===_0x3a6bd7(0x19c)){if(!_0x474723['sqlCode'])throw CliErrors[_0x3a6bd7(0x15b)]('Service\x20command\x20'+_0x1dfc75['cliPath']+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x474723[_0x3a6bd7(0x194)],normalizeScalarParams(_0x474723['params']));}if(_0x474723['kind']===_0x3a6bd7(0x174)){const _0x1e6e35=_0x474723[_0x3a6bd7(0x196)]||_0x474723[_0x3a6bd7(0x18a)]||(_0x474723[_0x3a6bd7(0x198)]==null?'':String(_0x474723[_0x3a6bd7(0x198)]));if(!_0x1e6e35)throw CliErrors[_0x3a6bd7(0x15b)](_0x3a6bd7(0x1a0)+_0x1dfc75[_0x3a6bd7(0x195)]+_0x3a6bd7(0x17f));return executeSdkBff(_0x1e6e35,_0x474723[_0x3a6bd7(0x190)]);}throw CliErrors['validation'](_0x3a6bd7(0x1a3)+_0x474723[_0x3a6bd7(0x151)]);}async function resolveDatasetCode(_0x2b904a,_0x119e23,_0x4f559b){const _0x3909b8=a39_0x2190;if(_0x2b904a['datasetCode'])return _0x2b904a['datasetCode'];if(!_0x2b904a['datatable'])throw CliErrors[_0x3909b8(0x15b)](_0x3909b8(0x1a0)+_0x119e23[_0x3909b8(0x195)]+_0x3909b8(0x1ae));const _0x62302=await listDatasets(_0x4f559b['appCode']),_0x4467aa=_0x62302[_0x3909b8(0x18b)](_0x492cc1=>_0x492cc1[_0x3909b8(0x156)]?.[_0x3909b8(0x167)]===_0x2b904a[_0x3909b8(0x155)]);if(!_0x4467aa?.[_0x3909b8(0x19f)])throw CliErrors['validation'](_0x3909b8(0x192)+_0x2b904a[_0x3909b8(0x155)]+_0x3909b8(0x16f)+_0x4f559b[_0x3909b8(0x15a)]+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x4467aa[_0x3909b8(0x19f)];}function applyAppBinding(_0x49a2d6,_0x3ddb85,_0x34d690){const _0x3c88b4=a39_0x2190,_0x1f69af=_0x3ddb85[_0x3c88b4(0x197)][_0x3c88b4(0x169)];if(!_0x1f69af)return;const _0x45b23b=_0x49a2d6[_0x3c88b4(0x158)][_0x1f69af];if(!_0x45b23b)throw CliErrors[_0x3c88b4(0x15b)](_0x3c88b4(0x14a)+_0x1f69af+'\x22\x20in\x20service\x20command\x20'+_0x3ddb85[_0x3c88b4(0x195)]+'.',_0x3c88b4(0x1a5));const _0x47d1ab=_0x45b23b[_0x3c88b4(0x171)]||_0x45b23b[_0x3c88b4(0x15a)];_0x47d1ab&&!hasText(_0x34d690['appcode'])&&(_0x34d690[_0x3c88b4(0x171)]=_0x47d1ab),_0x45b23b[_0x3c88b4(0x16a)]&&!hasText(_0x34d690[_0x3c88b4(0x16a)])&&!hasText(_0x34d690['appcode'])&&(_0x34d690[_0x3c88b4(0x16a)]=_0x45b23b[_0x3c88b4(0x16a)]),_0x45b23b['env']&&!hasText(_0x34d690[_0x3c88b4(0x19e)])&&(_0x34d690['env']=_0x45b23b[_0x3c88b4(0x19e)]);}function renderDynamicCommandHelp(_0x19a86b){const _0x3c5de8=a39_0x2190,_0x2bf22c=[_0x3c5de8(0x1af),_0x3c5de8(0x154)+_0x19a86b[_0x3c5de8(0x197)][_0x3c5de8(0x151)],_0x3c5de8(0x188)+_0x19a86b['target'][_0x3c5de8(0x15e)]];if(_0x19a86b['target'][_0x3c5de8(0x149)])_0x2bf22c[_0x3c5de8(0x189)]('\x20\x20\x20\x20datasetCode:\x20'+_0x19a86b[_0x3c5de8(0x197)][_0x3c5de8(0x149)]);if(_0x19a86b['target'][_0x3c5de8(0x155)])_0x2bf22c[_0x3c5de8(0x189)](_0x3c5de8(0x163)+_0x19a86b[_0x3c5de8(0x197)][_0x3c5de8(0x155)]);if(_0x19a86b[_0x3c5de8(0x197)]['sqlCode'])_0x2bf22c[_0x3c5de8(0x189)]('\x20\x20\x20\x20sqlCode:\x20'+_0x19a86b[_0x3c5de8(0x197)][_0x3c5de8(0x194)]);if(_0x19a86b[_0x3c5de8(0x197)]['scriptName'])_0x2bf22c['push'](_0x3c5de8(0x168)+_0x19a86b[_0x3c5de8(0x197)][_0x3c5de8(0x196)]);if(_0x19a86b[_0x3c5de8(0x185)][_0x3c5de8(0x1a2)]>0x0){_0x2bf22c['push']('',_0x3c5de8(0x17c));for(const _0x4a3836 of _0x19a86b[_0x3c5de8(0x185)]){_0x2bf22c['push']('\x20\x20\x20\x20'+(_0x4a3836['source']||_0x3c5de8(0x160))+_0x3c5de8(0x180)+_0x4a3836[_0x3c5de8(0x197)]+(_0x4a3836[_0x3c5de8(0x175)]?'.'+_0x4a3836[_0x3c5de8(0x175)]:''));}}return _0x2bf22c[_0x3c5de8(0x18c)]('\x0a');}function targetPreview(_0x330077){const _0x15bf50=a39_0x2190;return{'kind':_0x330077[_0x15bf50(0x151)],'command':_0x330077[_0x15bf50(0x15e)],'appRef':_0x330077[_0x15bf50(0x169)],'datasetCode':_0x330077[_0x15bf50(0x149)],'datatable':_0x330077['datatable'],'sqlCode':_0x330077[_0x15bf50(0x194)],'bffCode':_0x330077['bffCode'],'bffId':_0x330077['bffId'],'functionName':_0x330077[_0x15bf50(0x196)]};}function normalizeScalarParams(_0xbc3ac9){const _0x46ea46=a39_0x2190;return Object[_0x46ea46(0x183)](Object['entries'](_0xbc3ac9)[_0x46ea46(0x179)](([,_0x33f968])=>typeof _0x33f968===_0x46ea46(0x150)||typeof _0x33f968===_0x46ea46(0x19d)));}function hasText(_0x2d947d){const _0x1d2c8b=a39_0x2190;return typeof _0x2d947d===_0x1d2c8b(0x150)&&_0x2d947d[_0x1d2c8b(0x16c)]()['length']>0x0;}function isPrimitiveFlagDefault(_0x46d586){const _0x1e77c5=a39_0x2190;return _0x46d586===undefined||typeof _0x46d586===_0x1e77c5(0x150)||typeof _0x46d586===_0x1e77c5(0x19d)||typeof _0x46d586===_0x1e77c5(0x16b);}
1
+ (function(_0x1735c1,_0x1c87b1){const _0x25e708=a39_0x28d6,_0x4b88ba=_0x1735c1();while(!![]){try{const _0x42e2b7=-parseInt(_0x25e708(0x204))/0x1*(-parseInt(_0x25e708(0x1f1))/0x2)+-parseInt(_0x25e708(0x1b4))/0x3*(parseInt(_0x25e708(0x214))/0x4)+-parseInt(_0x25e708(0x1db))/0x5+parseInt(_0x25e708(0x215))/0x6*(-parseInt(_0x25e708(0x216))/0x7)+parseInt(_0x25e708(0x20b))/0x8+parseInt(_0x25e708(0x1fc))/0x9+parseInt(_0x25e708(0x1d3))/0xa;if(_0x42e2b7===_0x1c87b1)break;else _0x4b88ba['push'](_0x4b88ba['shift']());}catch(_0x3e06b4){_0x4b88ba['push'](_0x4b88ba['shift']());}}}(a39_0x472c,0xd2aa1));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(_0x166bea,_0x532cac){const _0x560768=a39_0x28d6,_0x5f2a05=listLocalServiceTrees();let _0xcddb7c;for(const _0x164387 of _0x5f2a05){const _0x14a2a0=matchServiceTreeCommand(_0x164387,_0x166bea);if(!_0x14a2a0)continue;(!_0xcddb7c||_0x14a2a0[_0x560768(0x201)][_0x560768(0x1ba)][_0x560768(0x213)]>_0xcddb7c[_0x560768(0x201)][_0x560768(0x1ba)][_0x560768(0x213)])&&(_0xcddb7c={'tree':_0x164387,'command':_0x14a2a0[_0x560768(0x201)],'remainingArgs':_0x14a2a0['remainingArgs']});}if(!_0xcddb7c)return undefined;const _0x3a3fd0={..._0x532cac};return applyAppBinding(_0xcddb7c[_0x560768(0x1c4)],_0xcddb7c[_0x560768(0x201)],_0x3a3fd0),{'definition':buildDynamicCommandDefinition(_0xcddb7c[_0x560768(0x1c4)],_0xcddb7c[_0x560768(0x201)]),'args':_0xcddb7c[_0x560768(0x219)],'flags':_0x3a3fd0,'tree':_0xcddb7c[_0x560768(0x1c4)],'command':_0xcddb7c['command']};}export function generateDynamicServiceHelp(_0x56781b){const _0x49600d=a39_0x28d6,_0x2deb51=listLocalServiceTrees()['find'](_0x5cc10b=>_0x5cc10b[_0x49600d(0x21a)][_0x49600d(0x1e1)]===_0x56781b);if(!_0x2deb51)return undefined;const _0x2aa8b0=[CLI_BIN_NAME+'\x20'+_0x56781b+_0x49600d(0x1bd),'',_0x2deb51[_0x49600d(0x21a)]['name']||_0x56781b,_0x2deb51['service'][_0x49600d(0x1e5)]?'\x20\x20'+_0x2deb51[_0x49600d(0x21a)][_0x49600d(0x1e5)]:'','',_0x49600d(0x1e3),..._0x2deb51['commands'][_0x49600d(0x1bf)](_0x1ea813=>{const _0x540420=_0x49600d,_0x529aee=_0x1ea813[_0x540420(0x1ba)][_0x540420(0x217)](0x1)['join']('\x20'),_0x23b664=_0x1ea813[_0x540420(0x1cb)]==='read'?'':'\x20['+_0x1ea813[_0x540420(0x1cb)]+']';return'\x20\x20'+_0x529aee[_0x540420(0x1df)](0x18)+'\x20'+(_0x1ea813['description']||'')+_0x23b664;}),'',_0x49600d(0x1fa)+CLI_BIN_NAME+_0x49600d(0x1d1)+_0x56781b+'`\x20to\x20inspect\x20the\x20manifest.'][_0x49600d(0x1d0)](Boolean);return _0x2aa8b0[_0x49600d(0x1e0)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x1b2e92=>{const _0x562117=a39_0x28d6,_0xff1a1=_0x1b2e92[_0x562117(0x1b0)];return{'service':_0xff1a1['service'][_0x562117(0x1e1)],'label':_0xff1a1[_0x562117(0x21a)][_0x562117(0x1fb)]||_0xff1a1[_0x562117(0x21a)][_0x562117(0x1e1)],'commands':_0xff1a1['commands'][_0x562117(0x1bf)](_0x39c43f=>({'command':dynamicCommandName(_0x39c43f),'description':_0x39c43f[_0x562117(0x1e5)]||'Run\x20service\x20command\x20'+_0x39c43f[_0x562117(0x20c)],'tag':riskTag(_0x39c43f[_0x562117(0x1cb)])}))};});}export function getDynamicServiceEntry(_0x4f21f8){const _0x21e866=a39_0x28d6;return listDynamicServiceEntries()[_0x21e866(0x1ce)](_0x2158ac=>_0x2158ac[_0x21e866(0x21a)]===_0x4f21f8);}export function listDynamicServiceDefinitions(_0x53649a){const _0x25513d=a39_0x28d6;return listLocalServiceTrees()[_0x25513d(0x1d0)](_0x171ac6=>!_0x53649a||_0x171ac6[_0x25513d(0x21a)][_0x25513d(0x1e1)]===_0x53649a)[_0x25513d(0x1bb)](_0x27480c=>_0x27480c['commands']['map'](_0x3f0e4c=>buildDynamicCommandDefinition(_0x27480c,_0x3f0e4c)));}export function getDynamicServiceDefinitions(_0x1187f5){const _0x3a3b79=listDynamicServiceDefinitions(_0x1187f5);return _0x3a3b79['length']>0x0?_0x3a3b79:undefined;}export function findDynamicServiceDefinition(_0x7b5d8d,_0x3da34b){const _0x2f3770=a39_0x28d6;return listDynamicServiceDefinitions(_0x7b5d8d)[_0x2f3770(0x1ce)](_0x1938a5=>_0x1938a5[_0x2f3770(0x201)]===_0x3da34b);}export function buildDynamicCommandDefinition(_0x2fb29e,_0x49d274){const _0x593319=a39_0x28d6;return{'service':_0x2fb29e[_0x593319(0x21a)][_0x593319(0x1e1)],'command':dynamicCommandName(_0x49d274),'description':_0x49d274['description']||_0x593319(0x1eb)+_0x49d274[_0x593319(0x20c)],'risk':_0x49d274[_0x593319(0x1cb)],..._0x49d274[_0x593319(0x1cb)]===_0x593319(0x1bc)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x49d274)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x49d274[_0x593319(0x1fe)][_0x593319(0x1bf)](_0x294c38=>({'name':_0x294c38[_0x593319(0x1fb)],'description':_0x294c38['description']||_0x294c38[_0x593319(0x1fb)],'required':_0x294c38[_0x593319(0x1b6)]})),'flags':_0x49d274['flags'][_0x593319(0x1bf)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x49d274),async 'dryRun'(_0x216e74){const _0x23c0ee=_0x593319,_0x151ca8=await compilePlan(_0x49d274,_0x216e74);return{'method':_0x23c0ee(0x208),'url':_0x49d274[_0x23c0ee(0x20c)],'body':{'target':targetPreview(_0x151ca8),'params':_0x151ca8[_0x23c0ee(0x1c6)]},'description':_0x23c0ee(0x1ff)+_0x49d274[_0x23c0ee(0x20c)]};},async 'execute'(_0x123b70){const _0x5d41de=_0x593319,_0x463e03=await compilePlan(_0x49d274,_0x123b70),_0x5f0a72=Date[_0x5d41de(0x200)](),_0x42e28f=await executePlan(_0x463e03,_0x49d274,_0x123b70),_0x1f3abb=Date[_0x5d41de(0x200)]()-_0x5f0a72;return{'ok':!![],'data':{'service':_0x2fb29e[_0x5d41de(0x21a)],'command':_0x49d274[_0x5d41de(0x20c)],'target':targetPreview(_0x463e03),'result':_0x42e28f,'elapsed':_0x1f3abb},'message':_0x5d41de(0x1e6)+_0x49d274[_0x5d41de(0x20c)]+_0x5d41de(0x20f)+_0x1f3abb+'ms'};}};}function buildDynamicConfirmationDescription(_0x4162cb){const _0x42915=a39_0x28d6,_0x3e59fb=_0x4162cb[_0x42915(0x1e5)]||_0x4162cb[_0x42915(0x20c)],_0x2f16a4=_0x4162cb[_0x42915(0x1cb)]===_0x42915(0x1f6)?_0x42915(0x205):_0x42915(0x1d6);return _0x42915(0x1e9)+_0x3e59fb+'”。'+_0x2f16a4;}function dynamicCommandName(_0x1e6d44){const _0x42875c=a39_0x28d6;return _0x1e6d44[_0x42875c(0x1ba)][_0x42875c(0x217)](0x1)[_0x42875c(0x1e0)]('\x20');}function riskTag(_0x5a6e08){return _0x5a6e08==='read'?'':'\x20\x20['+_0x5a6e08+']';}function flagToCommandFlag(_0x24102a){const _0x15cd9f=a39_0x28d6;return{'name':_0x24102a[_0x15cd9f(0x1c3)],'type':_0x24102a[_0x15cd9f(0x1b1)]===_0x15cd9f(0x1c7)?_0x15cd9f(0x1e2):_0x24102a['type'],'description':_0x24102a[_0x15cd9f(0x1e5)]||_0x24102a['name'],'required':_0x24102a[_0x15cd9f(0x1b6)],'default':isPrimitiveFlagDefault(_0x24102a[_0x15cd9f(0x1b8)])?_0x24102a[_0x15cd9f(0x1b8)]:undefined,'enum':_0x24102a[_0x15cd9f(0x1d2)]};}async function compilePlan(_0x12368d,_0x3a710d){const _0x112817=a39_0x28d6;return compileServiceTreeCommand(_0x12368d,{'flags':_0x3a710d['rawFlags'],'args':_0x3a710d[_0x112817(0x1fe)],'context':await buildServiceContext(_0x12368d,_0x3a710d)});}async function buildServiceContext(_0x13dd8c,_0x345c6b){const _0x25ee28=a39_0x28d6,_0x3c9bf8={'appCode':_0x345c6b[_0x25ee28(0x203)],'env':_0x345c6b['envName'],'envName':_0x345c6b[_0x25ee28(0x1b3)]};if(!usesRuntimeContext(_0x13dd8c))return _0x3c9bf8;const _0x42cbc9=await getLoginUserInfo(),_0x2cda82=pickFirst(_0x42cbc9[_0x25ee28(0x1fd)],_0x42cbc9['id']);return{..._0x3c9bf8,'user':_0x42cbc9,'userId':_0x2cda82,'id':_0x42cbc9['id'],'username':pickFirst(_0x42cbc9[_0x25ee28(0x209)],_0x42cbc9[_0x25ee28(0x1ef)],_0x42cbc9[_0x25ee28(0x211)]),'userName':_0x42cbc9[_0x25ee28(0x1ef)],'nickname':pickFirst(_0x42cbc9[_0x25ee28(0x210)],_0x42cbc9[_0x25ee28(0x1ca)]),'nickName':_0x42cbc9[_0x25ee28(0x1ca)],'tenantCode':_0x42cbc9[_0x25ee28(0x218)],'employeeId':_0x42cbc9['employeeId']};}function a39_0x472c(){const _0x15a503=['SERVICE_TREE','username','source','3667632PEpjQV','cliPath','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','validation','\x20completed\x20in\x20','nickname','loginName','app','length','1590152GqMHJw','326982qDSRTJ','98SEyfLs','slice','tenantCode','remainingArgs','service','push','normalizedManifest','type','trim','envName','12XPpuUy','\x20\x20\x20\x20','required','\x20\x20SERVICE\x20TREE\x20TARGET','default','\x22\x20in\x20service\x20command\x20','fullPath','flatMap','read','\x20<command>\x20[flags]','datatable','map','boolean','data','\x20\x20\x20\x20kind:\x20\x20\x20\x20','cliName','tree','ctx.','params','json','startsWith','operator','nickName','risk','bffId','const','find','bff','filter','\x20service\x20detail\x20--service\x20','enum','22593200nhPuSS','\x20->\x20','sqlCode','该命令被清单标记为写入,可能修改业务数据或服务状态。','dbtableConfig','appcode','\x20\x20\x20\x20datasetCode:\x20','kind','3414425GlbFiX','some','tableName','\x20\x20\x20\x20sqlCode:\x20','padEnd','join','code','string','Commands:','Cannot\x20resolve\x20datatable\x20\x22','description','Service\x20command\x20','Unknown\x20appRef\x20\x22','scriptName','将通过\x20Service\x20Tree\x20执行“','\x20requires\x20target.sqlCode.','Run\x20service\x20command\x20','datasetCode','appBindings','fromEntries','userName','\x20\x20\x20\x20command:\x20','4922cjiDlh','bffCode','context.','number','Unsupported\x20service\x20target\x20kind:\x20','high-risk-write','\x20\x20\x20\x20functionName:\x20','\x20\x20\x20\x20datatable:\x20','appRef','Use\x20`','name','9721809zBfpxf','userId','args','Preview\x20dynamic\x20service\x20command:\x20','now','command','target','appCode','41HiBGNE','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','env','mapTo'];a39_0x472c=function(){return _0x15a503;};return a39_0x472c();}function a39_0x28d6(_0x50b84c,_0x3fad92){_0x50b84c=_0x50b84c-0x1b0;const _0x472c8f=a39_0x472c();let _0x28d606=_0x472c8f[_0x50b84c];return _0x28d606;}function usesRuntimeContext(_0x2c7dfb){const _0x2ad4ab=a39_0x28d6;return _0x2c7dfb[_0x2ad4ab(0x207)][_0x2ad4ab(0x1dc)](_0x37d8c1=>typeof _0x37d8c1[_0x2ad4ab(0x20a)]===_0x2ad4ab(0x1e2)&&(_0x37d8c1['source'][_0x2ad4ab(0x1c8)](_0x2ad4ab(0x1f3))||_0x37d8c1[_0x2ad4ab(0x20a)][_0x2ad4ab(0x1c8)](_0x2ad4ab(0x1c5))));}function pickFirst(..._0x1bd7d7){return _0x1bd7d7['find'](_0x4eec5e=>_0x4eec5e!==undefined&&_0x4eec5e!==null);}async function executePlan(_0x525cfa,_0xe3d6dc,_0x5abbe4){const _0x43d6c9=a39_0x28d6;if(_0x525cfa[_0x43d6c9(0x1da)]===_0x43d6c9(0x1c1)){const _0x116743=await resolveDatasetCode(_0x525cfa,_0xe3d6dc,_0x5abbe4);return executeData(_0x116743,_0x525cfa[_0x43d6c9(0x201)],_0x525cfa[_0x43d6c9(0x1c6)]);}if(_0x525cfa[_0x43d6c9(0x1da)]==='sql'){if(!_0x525cfa[_0x43d6c9(0x1d5)])throw CliErrors[_0x43d6c9(0x20e)](_0x43d6c9(0x1e6)+_0xe3d6dc[_0x43d6c9(0x20c)]+_0x43d6c9(0x1ea));return executeSdkSql(_0x525cfa[_0x43d6c9(0x1d5)],normalizeScalarParams(_0x525cfa[_0x43d6c9(0x1c6)]));}if(_0x525cfa[_0x43d6c9(0x1da)]===_0x43d6c9(0x1cf)){const _0x443a0f=_0x525cfa['scriptName']||_0x525cfa[_0x43d6c9(0x1f2)]||(_0x525cfa[_0x43d6c9(0x1cc)]==null?'':String(_0x525cfa[_0x43d6c9(0x1cc)]));if(!_0x443a0f)throw CliErrors[_0x43d6c9(0x20e)](_0x43d6c9(0x1e6)+_0xe3d6dc[_0x43d6c9(0x20c)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0x443a0f,_0x525cfa['params']);}throw CliErrors[_0x43d6c9(0x20e)](_0x43d6c9(0x1f5)+_0x525cfa[_0x43d6c9(0x1da)]);}async function resolveDatasetCode(_0x114a48,_0x5753b0,_0x3a5976){const _0x12ee24=a39_0x28d6;if(_0x114a48[_0x12ee24(0x1ec)])return _0x114a48['datasetCode'];if(!_0x114a48[_0x12ee24(0x1be)])throw CliErrors[_0x12ee24(0x20e)](_0x12ee24(0x1e6)+_0x5753b0[_0x12ee24(0x20c)]+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x4b2325=await listDatasets(_0x3a5976[_0x12ee24(0x203)]),_0x1604ff=_0x4b2325[_0x12ee24(0x1ce)](_0x193ff6=>_0x193ff6[_0x12ee24(0x1d7)]?.[_0x12ee24(0x1dd)]===_0x114a48[_0x12ee24(0x1be)]);if(!_0x1604ff?.[_0x12ee24(0x1e1)])throw CliErrors['validation'](_0x12ee24(0x1e4)+_0x114a48[_0x12ee24(0x1be)]+_0x12ee24(0x20d)+_0x3a5976['appCode']+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x1604ff['code'];}function applyAppBinding(_0x2c946a,_0x326394,_0x56c7e5){const _0xdd351b=a39_0x28d6,_0x235c15=_0x326394[_0xdd351b(0x202)][_0xdd351b(0x1f9)];if(!_0x235c15)return;const _0x16b468=_0x2c946a[_0xdd351b(0x1ed)][_0x235c15];if(!_0x16b468)throw CliErrors['validation'](_0xdd351b(0x1e7)+_0x235c15+_0xdd351b(0x1b9)+_0x326394[_0xdd351b(0x20c)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x1f710b=_0x16b468[_0xdd351b(0x1d8)]||_0x16b468[_0xdd351b(0x203)];_0x1f710b&&!hasText(_0x56c7e5[_0xdd351b(0x1d8)])&&(_0x56c7e5[_0xdd351b(0x1d8)]=_0x1f710b),_0x16b468[_0xdd351b(0x212)]&&!hasText(_0x56c7e5['app'])&&!hasText(_0x56c7e5[_0xdd351b(0x1d8)])&&(_0x56c7e5[_0xdd351b(0x212)]=_0x16b468[_0xdd351b(0x212)]),_0x16b468[_0xdd351b(0x206)]&&!hasText(_0x56c7e5[_0xdd351b(0x206)])&&(_0x56c7e5[_0xdd351b(0x206)]=_0x16b468['env']);}function renderDynamicCommandHelp(_0x3bdff8){const _0xceff32=a39_0x28d6,_0x3807dc=[_0xceff32(0x1b7),_0xceff32(0x1c2)+_0x3bdff8[_0xceff32(0x202)][_0xceff32(0x1da)],_0xceff32(0x1f0)+_0x3bdff8[_0xceff32(0x202)]['command']];if(_0x3bdff8['target']['datasetCode'])_0x3807dc['push'](_0xceff32(0x1d9)+_0x3bdff8[_0xceff32(0x202)][_0xceff32(0x1ec)]);if(_0x3bdff8['target'][_0xceff32(0x1be)])_0x3807dc['push'](_0xceff32(0x1f8)+_0x3bdff8['target'][_0xceff32(0x1be)]);if(_0x3bdff8[_0xceff32(0x202)][_0xceff32(0x1d5)])_0x3807dc[_0xceff32(0x21b)](_0xceff32(0x1de)+_0x3bdff8[_0xceff32(0x202)][_0xceff32(0x1d5)]);if(_0x3bdff8['target']['scriptName'])_0x3807dc['push'](_0xceff32(0x1f7)+_0x3bdff8[_0xceff32(0x202)]['scriptName']);if(_0x3bdff8['mapTo']['length']>0x0){_0x3807dc['push']('','\x20\x20MAP\x20TO');for(const _0x116e59 of _0x3bdff8[_0xceff32(0x207)]){_0x3807dc[_0xceff32(0x21b)](_0xceff32(0x1b5)+(_0x116e59['source']||_0xceff32(0x1cd))+_0xceff32(0x1d4)+_0x116e59[_0xceff32(0x202)]+(_0x116e59[_0xceff32(0x1c9)]?'.'+_0x116e59[_0xceff32(0x1c9)]:''));}}return _0x3807dc[_0xceff32(0x1e0)]('\x0a');}function targetPreview(_0x14c909){const _0x189205=a39_0x28d6;return{'kind':_0x14c909['kind'],'command':_0x14c909[_0x189205(0x201)],'appRef':_0x14c909['appRef'],'datasetCode':_0x14c909['datasetCode'],'datatable':_0x14c909[_0x189205(0x1be)],'sqlCode':_0x14c909[_0x189205(0x1d5)],'bffCode':_0x14c909[_0x189205(0x1f2)],'bffId':_0x14c909['bffId'],'functionName':_0x14c909[_0x189205(0x1e8)]};}function normalizeScalarParams(_0x4cd8b4){const _0x338d61=a39_0x28d6;return Object[_0x338d61(0x1ee)](Object['entries'](_0x4cd8b4)[_0x338d61(0x1d0)](([,_0x1550cb])=>typeof _0x1550cb===_0x338d61(0x1e2)||typeof _0x1550cb===_0x338d61(0x1f4)));}function hasText(_0xd53dc4){const _0x3098ec=a39_0x28d6;return typeof _0xd53dc4===_0x3098ec(0x1e2)&&_0xd53dc4[_0x3098ec(0x1b2)]()['length']>0x0;}function isPrimitiveFlagDefault(_0x21559d){const _0x14189e=a39_0x28d6;return _0x21559d===undefined||typeof _0x21559d==='string'||typeof _0x21559d==='number'||typeof _0x21559d===_0x14189e(0x1c0);}
@@ -1 +1 @@
1
- (function(_0x168b9f,_0x13f83b){const _0x56bf32=a40_0x5aa2,_0x458c17=_0x168b9f();while(!![]){try{const _0x284a7d=parseInt(_0x56bf32(0x82))/0x1+parseInt(_0x56bf32(0x6f))/0x2+parseInt(_0x56bf32(0x80))/0x3*(parseInt(_0x56bf32(0x78))/0x4)+-parseInt(_0x56bf32(0x7a))/0x5+-parseInt(_0x56bf32(0x88))/0x6+parseInt(_0x56bf32(0x74))/0x7+-parseInt(_0x56bf32(0x8b))/0x8;if(_0x284a7d===_0x13f83b)break;else _0x458c17['push'](_0x458c17['shift']());}catch(_0x26789e){_0x458c17['push'](_0x458c17['shift']());}}}(a40_0x2d4b,0xb581d));export function adaptServiceTreeManifestForLegacyFramework(_0x5b6beb){const _0x2d77a1=a40_0x5aa2,_0x10b343=cloneJsonValue(_0x5b6beb),_0x28833a=[];if(!isObjectRecord(_0x10b343))return{'manifest':_0x10b343,'errors':_0x28833a};return Array[_0x2d77a1(0x84)](_0x10b343[_0x2d77a1(0x81)])&&_0x10b343['commands'][_0x2d77a1(0x73)]((_0xad64f4,_0x24084d)=>{const _0x5db6e4=_0x2d77a1;if(!isObjectRecord(_0xad64f4))return;adaptBffTarget(_0xad64f4[_0x5db6e4(0x8f)],_0x5db6e4(0x92)+_0x24084d+_0x5db6e4(0x8c),_0x28833a);}),adaptResources(_0x10b343[_0x2d77a1(0x8d)],_0x2d77a1(0x7d),_0x28833a),{'manifest':_0x10b343,'errors':_0x28833a};}export function toPublicServiceTreeTarget(_0x5dd03b){const _0x318086=a40_0x5aa2,{scriptName:_0x413987,..._0x497e51}=_0x5dd03b;return typeof _0x413987===_0x318086(0x83)&&_0x413987[_0x318086(0x85)]()&&(_0x497e51[_0x318086(0x7c)]=_0x413987),_0x497e51;}export function toPublicNormalizedServiceTree(_0x19e883){const _0x52e33f=a40_0x5aa2;return{..._0x19e883,'commands':_0x19e883[_0x52e33f(0x81)][_0x52e33f(0x89)](_0x59e779=>({..._0x59e779,'target':toPublicServiceTreeTarget(_0x59e779[_0x52e33f(0x8f)])}))};}function adaptResources(_0x5814ae,_0xf64dba,_0x30cb5f){const _0x376c0b=a40_0x5aa2;if(!isObjectRecord(_0x5814ae))return;for(const [_0x2be88c,_0x2240f9]of Object['entries'](_0x5814ae)){if(!isObjectRecord(_0x2240f9))continue;const _0x5d86a2=_0xf64dba+'.'+_0x2be88c;if(isObjectRecord(_0x2240f9['actions']))for(const [_0x25358a,_0x15ac45]of Object['entries'](_0x2240f9[_0x376c0b(0x6e)])){if(!isObjectRecord(_0x15ac45))continue;const _0x1edd10=_0x5d86a2+_0x376c0b(0x91)+_0x25358a,_0x1230f4=isObjectRecord(_0x15ac45['target'])&&_0x15ac45[_0x376c0b(0x8f)][_0x376c0b(0x8a)]===_0x376c0b(0x70);adaptBffTarget(_0x15ac45[_0x376c0b(0x8f)],_0x1edd10+_0x376c0b(0x77),_0x30cb5f),(_0x1230f4||isBffAction(_0x15ac45))&&adaptFunctionNameField(_0x15ac45,_0x1edd10,_0x30cb5f);}adaptResources(_0x2240f9['resources'],_0x5d86a2+_0x376c0b(0x7f),_0x30cb5f);}}function adaptBffTarget(_0x56dc47,_0x5e0b25,_0x132cc9){const _0x10a7dc=a40_0x5aa2;if(!isObjectRecord(_0x56dc47)||_0x56dc47[_0x10a7dc(0x8a)]!==_0x10a7dc(0x70))return;adaptFunctionNameField(_0x56dc47,_0x5e0b25,_0x132cc9);}function a40_0x5aa2(_0x1ce88b,_0x13769a){_0x1ce88b=_0x1ce88b-0x6e;const _0x2d4b55=a40_0x2d4b();let _0x5aa266=_0x2d4b55[_0x1ce88b];return _0x5aa266;}function a40_0x2d4b(){const _0x2fa555=['map','kind','3620440DCqmDN','].target','resources','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','target','push','.actions.','$.commands[','actions','297106BlHmDD','bff','call','.scriptName','forEach','2066589TwgOLk','scriptName','action','.target','60ZEaOaB','bff.exec','595990kxDvUk','entries','functionName','$.resources','functionName\x20must\x20be\x20a\x20non-empty\x20string.','.resources','251001mMEexw','commands','169527JlAUjq','string','isArray','trim','error','prototype','3318636StmkRI'];a40_0x2d4b=function(){return _0x2fa555;};return a40_0x2d4b();}function adaptFunctionNameField(_0x21d09b,_0x5b6716,_0x525a8f){const _0x1ee6a3=a40_0x5aa2;Object[_0x1ee6a3(0x87)]['hasOwnProperty'][_0x1ee6a3(0x71)](_0x21d09b,_0x1ee6a3(0x75))&&_0x525a8f[_0x1ee6a3(0x90)]({'level':_0x1ee6a3(0x86),'path':_0x5b6716+_0x1ee6a3(0x72),'message':_0x1ee6a3(0x8e)});if(Object['prototype']['hasOwnProperty']['call'](_0x21d09b,_0x1ee6a3(0x7c))){if(typeof _0x21d09b['functionName']!==_0x1ee6a3(0x83)||!_0x21d09b[_0x1ee6a3(0x7c)][_0x1ee6a3(0x85)]()){_0x525a8f[_0x1ee6a3(0x90)]({'level':'error','path':_0x5b6716+'.functionName','message':_0x1ee6a3(0x7e)}),delete _0x21d09b['functionName'];return;}_0x21d09b[_0x1ee6a3(0x75)]=_0x21d09b[_0x1ee6a3(0x7c)],delete _0x21d09b[_0x1ee6a3(0x7c)];}}function isBffAction(_0x102549){const _0x5af158=a40_0x5aa2;return _0x102549['kind']==='bff'||_0x102549[_0x5af158(0x76)]===_0x5af158(0x79)||_0x102549[_0x5af158(0x8f)]===_0x5af158(0x79);}function cloneJsonValue(_0x29ad12){const _0x388dec=a40_0x5aa2;if(Array['isArray'](_0x29ad12))return _0x29ad12[_0x388dec(0x89)](_0x146eb2=>cloneJsonValue(_0x146eb2));if(isObjectRecord(_0x29ad12))return Object['fromEntries'](Object[_0x388dec(0x7b)](_0x29ad12)[_0x388dec(0x89)](([_0x224dd3,_0x1eb487])=>[_0x224dd3,cloneJsonValue(_0x1eb487)]));return _0x29ad12;}function isObjectRecord(_0x136887){return Boolean(_0x136887)&&typeof _0x136887==='object'&&!Array['isArray'](_0x136887);}
1
+ (function(_0x578e73,_0x20e3f9){const _0x411019=a40_0x8279,_0x3a7a31=_0x578e73();while(!![]){try{const _0x4c3760=parseInt(_0x411019(0x16b))/0x1+-parseInt(_0x411019(0x15f))/0x2+parseInt(_0x411019(0x14e))/0x3+-parseInt(_0x411019(0x167))/0x4+parseInt(_0x411019(0x168))/0x5*(-parseInt(_0x411019(0x160))/0x6)+parseInt(_0x411019(0x157))/0x7+parseInt(_0x411019(0x164))/0x8*(parseInt(_0x411019(0x156))/0x9);if(_0x4c3760===_0x20e3f9)break;else _0x3a7a31['push'](_0x3a7a31['shift']());}catch(_0x5a008d){_0x3a7a31['push'](_0x3a7a31['shift']());}}}(a40_0x4e42,0xa26b9));export function adaptServiceTreeManifestForLegacyFramework(_0x27168e){const _0x23c1dc=a40_0x8279,_0x189df8=cloneJsonValue(_0x27168e),_0x3d784c=[];if(!isObjectRecord(_0x189df8))return{'manifest':_0x189df8,'errors':_0x3d784c};return Array[_0x23c1dc(0x15c)](_0x189df8[_0x23c1dc(0x16a)])&&_0x189df8['commands'][_0x23c1dc(0x165)]((_0x50efc6,_0x2fb6d9)=>{const _0x57d592=_0x23c1dc;if(!isObjectRecord(_0x50efc6))return;adaptBffTarget(_0x50efc6[_0x57d592(0x170)],_0x57d592(0x15d)+_0x2fb6d9+'].target',_0x3d784c);}),adaptResources(_0x189df8[_0x23c1dc(0x16d)],_0x23c1dc(0x150),_0x3d784c),{'manifest':_0x189df8,'errors':_0x3d784c};}export function toPublicServiceTreeTarget(_0x48e1bb){const _0x145058=a40_0x8279,{scriptName:_0x5570e9,..._0x4abaef}=_0x48e1bb;return typeof _0x5570e9===_0x145058(0x15a)&&_0x5570e9['trim']()&&(_0x4abaef[_0x145058(0x154)]=_0x5570e9),_0x4abaef;}export function toPublicNormalizedServiceTree(_0x30b0e6){const _0x3c90b6=a40_0x8279;return{..._0x30b0e6,'commands':_0x30b0e6[_0x3c90b6(0x16a)][_0x3c90b6(0x14d)](_0x28373e=>({..._0x28373e,'target':toPublicServiceTreeTarget(_0x28373e[_0x3c90b6(0x170)])}))};}function adaptResources(_0xce9e1,_0x161eb7,_0x38f55d){const _0x22831e=a40_0x8279;if(!isObjectRecord(_0xce9e1))return;for(const [_0x2614b4,_0x5b801f]of Object['entries'](_0xce9e1)){if(!isObjectRecord(_0x5b801f))continue;const _0x30b5a8=_0x161eb7+'.'+_0x2614b4;if(isObjectRecord(_0x5b801f[_0x22831e(0x16c)]))for(const [_0x481774,_0x2856c8]of Object[_0x22831e(0x14f)](_0x5b801f[_0x22831e(0x16c)])){if(!isObjectRecord(_0x2856c8))continue;const _0x55ceeb=_0x30b5a8+_0x22831e(0x153)+_0x481774,_0x1c1554=isObjectRecord(_0x2856c8[_0x22831e(0x170)])&&_0x2856c8[_0x22831e(0x170)][_0x22831e(0x152)]==='bff';adaptBffTarget(_0x2856c8['target'],_0x55ceeb+_0x22831e(0x166),_0x38f55d),(_0x1c1554||isBffAction(_0x2856c8))&&adaptFunctionNameField(_0x2856c8,_0x55ceeb,_0x38f55d);}adaptResources(_0x5b801f[_0x22831e(0x16d)],_0x30b5a8+_0x22831e(0x163),_0x38f55d);}}function adaptBffTarget(_0x5baf56,_0x1e03c9,_0x320b2b){const _0x180c11=a40_0x8279;if(!isObjectRecord(_0x5baf56)||_0x5baf56[_0x180c11(0x152)]!==_0x180c11(0x161))return;adaptFunctionNameField(_0x5baf56,_0x1e03c9,_0x320b2b);}function adaptFunctionNameField(_0x5030e9,_0x8ed62f,_0xbe2a8d){const _0x5ddabd=a40_0x8279;Object[_0x5ddabd(0x15b)][_0x5ddabd(0x162)]['call'](_0x5030e9,_0x5ddabd(0x16f))&&_0xbe2a8d['push']({'level':_0x5ddabd(0x159),'path':_0x8ed62f+_0x5ddabd(0x155),'message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object[_0x5ddabd(0x15b)][_0x5ddabd(0x162)][_0x5ddabd(0x151)](_0x5030e9,_0x5ddabd(0x154))){if(typeof _0x5030e9['functionName']!==_0x5ddabd(0x15a)||!_0x5030e9[_0x5ddabd(0x154)]['trim']()){_0xbe2a8d['push']({'level':_0x5ddabd(0x159),'path':_0x8ed62f+'.functionName','message':_0x5ddabd(0x169)}),delete _0x5030e9['functionName'];return;}_0x5030e9['scriptName']=_0x5030e9['functionName'],delete _0x5030e9['functionName'];}}function isBffAction(_0x49f09b){const _0x334e30=a40_0x8279;return _0x49f09b[_0x334e30(0x152)]===_0x334e30(0x161)||_0x49f09b['action']===_0x334e30(0x158)||_0x49f09b['target']==='bff.exec';}function cloneJsonValue(_0x39f2bb){const _0xa2bcc1=a40_0x8279;if(Array[_0xa2bcc1(0x15c)](_0x39f2bb))return _0x39f2bb[_0xa2bcc1(0x14d)](_0x4793c4=>cloneJsonValue(_0x4793c4));if(isObjectRecord(_0x39f2bb))return Object[_0xa2bcc1(0x16e)](Object[_0xa2bcc1(0x14f)](_0x39f2bb)[_0xa2bcc1(0x14d)](([_0x16c128,_0x3d6e90])=>[_0x16c128,cloneJsonValue(_0x3d6e90)]));return _0x39f2bb;}function a40_0x4e42(){const _0x503f37=['call','kind','.actions.','functionName','.scriptName','1335393zcmZQS','2568566teUbED','bff.exec','error','string','prototype','isArray','$.commands[','object','252398XvJOCq','198672ZgGpQb','bff','hasOwnProperty','.resources','16PQcFAM','forEach','.target','485244UgtxlQ','65CdkiJA','functionName\x20must\x20be\x20a\x20non-empty\x20string.','commands','207871vmZlWW','actions','resources','fromEntries','scriptName','target','map','1415028anPscb','entries','$.resources'];a40_0x4e42=function(){return _0x503f37;};return a40_0x4e42();}function a40_0x8279(_0xb426b6,_0x1b5858){_0xb426b6=_0xb426b6-0x14d;const _0x4e4241=a40_0x4e42();let _0x827905=_0x4e4241[_0xb426b6];return _0x827905;}function isObjectRecord(_0x22e118){const _0x3b4941=a40_0x8279;return Boolean(_0x22e118)&&typeof _0x22e118===_0x3b4941(0x15e)&&!Array['isArray'](_0x22e118);}
@@ -1 +1 @@
1
- const a41_0x3f2c2e=a41_0x3931;(function(_0x589659,_0x32bd6c){const _0x521eee=a41_0x3931,_0x4ed8be=_0x589659();while(!![]){try{const _0x2ec08a=parseInt(_0x521eee(0x7d))/0x1+-parseInt(_0x521eee(0xb4))/0x2*(parseInt(_0x521eee(0x9b))/0x3)+-parseInt(_0x521eee(0x98))/0x4+parseInt(_0x521eee(0xaa))/0x5+-parseInt(_0x521eee(0xb2))/0x6+parseInt(_0x521eee(0x76))/0x7+-parseInt(_0x521eee(0x89))/0x8;if(_0x2ec08a===_0x32bd6c)break;else _0x4ed8be['push'](_0x4ed8be['shift']());}catch(_0x4be5ef){_0x4ed8be['push'](_0x4ed8be['shift']());}}}(a41_0x494e,0xe408c));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a41_0x494e(){const _0x434cc8=['\x20service\x20','452700jHcYBQ','registryServiceCode','4RugxqS','entries','serviceCode','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','str','errors','registryIndex','write','service','cliPath','2206589WEfHrB','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','map','imported','filePath','serviceCount','commands','246731aeTiek','source','read','reduce','kind','manifest','report','validate','required','description','WRITE','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','2115704tkacNs','从本地运行态注册表移除\x20Service\x20Tree\x20清单','cliName','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','detail','target','entry','type','replaced','manifests','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','updated','export','version','将\x20Service\x20Tree\x20清单导入本地运行态注册表','12572oxfecq','Service\x20manifest\x20validation\x20passed.','importedAt','1528971LbuYnw','registryPath','Removed\x20service\x20','risk','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','list','string','Exported\x20service\x20','import','Local\x20service\x20not\x20found:\x20','warnings','registry','flags','hash','Imported\x20','8672200aYSrHt','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','file','normalizedManifest','Updated','length'];a41_0x494e=function(){return _0x434cc8;};return a41_0x494e();}import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a41_0x3f2c2e(0xad),'type':a41_0x3f2c2e(0xa1),'required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':a41_0x3f2c2e(0x74),'type':a41_0x3f2c2e(0xa1),'required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x1816d3){const _0x355527=a41_0x3f2c2e;return{'serviceCode':_0x1816d3[_0x355527(0xb6)],'name':_0x1816d3[_0x355527(0xae)][_0x355527(0x74)]['name'],'version':_0x1816d3[_0x355527(0x96)],'importedAt':_0x1816d3[_0x355527(0x9a)],'source':_0x1816d3[_0x355527(0x7e)],'commandCount':_0x1816d3[_0x355527(0xae)][_0x355527(0x7c)][_0x355527(0xb0)],'commands':_0x1816d3[_0x355527(0xae)][_0x355527(0x7c)][_0x355527(0x78)](_0x4a06ff=>({'path':_0x4a06ff[_0x355527(0x75)],'description':_0x4a06ff[_0x355527(0x86)],'risk':_0x4a06ff[_0x355527(0x9e)],'target':toPublicServiceTreeTarget(_0x4a06ff[_0x355527(0x8e)]),'flags':_0x4a06ff[_0x355527(0xa7)]['map'](_0x16dcb7=>({'name':_0x16dcb7['name'],'cliName':_0x16dcb7[_0x355527(0x8b)],'type':_0x16dcb7[_0x355527(0x90)],'required':_0x16dcb7[_0x355527(0x85)]===!![]}))}))};}function summarizeLoadedManifest(_0x2c829d){const _0x2da0c5=a41_0x3f2c2e;return{'service':_0x2c829d[_0x2da0c5(0xae)]?.[_0x2da0c5(0x74)],'version':_0x2c829d['normalizedManifest']?.[_0x2da0c5(0x96)],'commandCount':_0x2c829d[_0x2da0c5(0xae)]?.[_0x2da0c5(0x7c)][_0x2da0c5(0xb0)]??0x0,'commands':_0x2c829d[_0x2da0c5(0xae)]?.['commands'][_0x2da0c5(0x78)](_0x394d92=>({'path':_0x394d92[_0x2da0c5(0x75)],'risk':_0x394d92[_0x2da0c5(0x9e)],'target':toPublicServiceTreeTarget(_0x394d92['target'])}))??[],'registryIndex':_0x2c829d[_0x2da0c5(0xbb)],'registryServiceCode':_0x2c829d[_0x2da0c5(0xb3)],'errors':_0x2c829d['report']['errors'],'warnings':_0x2c829d[_0x2da0c5(0x83)][_0x2da0c5(0xa5)]};}function a41_0x3931(_0x4b745d,_0x2a4d34){_0x4b745d=_0x4b745d-0x73;const _0x494e3a=a41_0x494e();let _0x393120=_0x494e3a[_0x4b745d];return _0x393120;}export const serviceDefinitions=[{'service':a41_0x3f2c2e(0x74),'command':a41_0x3f2c2e(0x84),'description':a41_0x3f2c2e(0x9f),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x620fb5){const _0x59b7f0=a41_0x3f2c2e,_0x8822bb=loadServiceManifestFromFile(_0x620fb5['str'](_0x59b7f0(0xad)));if(!_0x8822bb[_0x59b7f0(0x83)]['ok'])return{'ok':![],'data':{'file':_0x8822bb['filePath'],'hash':_0x8822bb[_0x59b7f0(0xa8)],'kind':_0x8822bb['kind'],'serviceCount':_0x8822bb[_0x59b7f0(0x92)][_0x59b7f0(0xb0)],'services':_0x8822bb[_0x59b7f0(0x92)][_0x59b7f0(0x78)](summarizeLoadedManifest),'errors':_0x8822bb[_0x59b7f0(0x83)][_0x59b7f0(0xba)],'warnings':_0x8822bb[_0x59b7f0(0x83)][_0x59b7f0(0xa5)]},'message':formatValidationFailure(_0x8822bb['report'])};if(_0x8822bb[_0x59b7f0(0x81)]===_0x59b7f0(0xa6)||_0x8822bb[_0x59b7f0(0x92)]['length']!==0x1)return{'ok':!![],'data':{'file':_0x8822bb[_0x59b7f0(0x7a)],'hash':_0x8822bb['hash'],'kind':_0x8822bb['kind'],'serviceCount':_0x8822bb[_0x59b7f0(0x92)][_0x59b7f0(0xb0)],'commandCount':_0x8822bb[_0x59b7f0(0x92)][_0x59b7f0(0x80)]((_0x4dcd83,_0x306d9d)=>_0x4dcd83+(_0x306d9d[_0x59b7f0(0xae)]?.[_0x59b7f0(0x7c)][_0x59b7f0(0xb0)]??0x0),0x0),'services':_0x8822bb[_0x59b7f0(0x92)][_0x59b7f0(0x78)](summarizeLoadedManifest),'warnings':_0x8822bb[_0x59b7f0(0x83)][_0x59b7f0(0xa5)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x8822bb[_0x59b7f0(0x7a)],'hash':_0x8822bb[_0x59b7f0(0xa8)],'kind':_0x8822bb[_0x59b7f0(0x81)],'service':_0x8822bb[_0x59b7f0(0xae)]?.['service'],'version':_0x8822bb[_0x59b7f0(0xae)]?.[_0x59b7f0(0x96)],'commandCount':_0x8822bb[_0x59b7f0(0xae)]?.[_0x59b7f0(0x7c)][_0x59b7f0(0xb0)]??0x0,'commands':_0x8822bb[_0x59b7f0(0xae)]?.[_0x59b7f0(0x7c)][_0x59b7f0(0x78)](_0x28ec82=>({'path':_0x28ec82[_0x59b7f0(0x75)],'risk':_0x28ec82['risk'],'target':toPublicServiceTreeTarget(_0x28ec82[_0x59b7f0(0x8e)])})),'warnings':_0x8822bb[_0x59b7f0(0x83)]['warnings']},'message':_0x59b7f0(0x99)};}},{'service':a41_0x3f2c2e(0x74),'command':a41_0x3f2c2e(0xa3),'description':a41_0x3f2c2e(0x97),'risk':a41_0x3f2c2e(0x73),'confirmationDescription':a41_0x3f2c2e(0x8c),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0xc9b5d9){const _0x22a742=a41_0x3f2c2e,_0x43e90f=loadServiceManifestFromFile(_0xc9b5d9[_0x22a742(0xb9)](_0x22a742(0xad)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x43e90f[_0x22a742(0x7a)],'hash':_0x43e90f[_0x22a742(0xa8)],'kind':_0x43e90f[_0x22a742(0x81)],'ok':_0x43e90f[_0x22a742(0x83)]['ok'],'service':_0x43e90f[_0x22a742(0xae)]?.[_0x22a742(0x74)],'version':_0x43e90f[_0x22a742(0xae)]?.[_0x22a742(0x96)],'serviceCount':_0x43e90f[_0x22a742(0x92)][_0x22a742(0xb0)],'services':_0x43e90f['manifests'][_0x22a742(0x78)](_0x4e4aba=>({'service':_0x4e4aba[_0x22a742(0xae)]?.[_0x22a742(0x74)],'version':_0x4e4aba[_0x22a742(0xae)]?.[_0x22a742(0x96)],'commandCount':_0x4e4aba[_0x22a742(0xae)]?.[_0x22a742(0x7c)][_0x22a742(0xb0)]??0x0,'errors':_0x4e4aba[_0x22a742(0x83)][_0x22a742(0xba)]})),'errors':_0x43e90f['report']['errors'],'commandCount':_0x43e90f[_0x22a742(0xae)]?.[_0x22a742(0x7c)]['length']??0x0},'description':_0x22a742(0x93)};},async 'execute'(_0x19e281){const _0x32557c=a41_0x3f2c2e,_0x1bf6d9=importServiceManifest(_0x19e281[_0x32557c(0xb9)](_0x32557c(0xad)));if(_0x1bf6d9['entries'][_0x32557c(0xb0)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1bf6d9[_0x32557c(0x9c)],'imported':_0x1bf6d9[_0x32557c(0x79)],'updated':_0x1bf6d9[_0x32557c(0x94)],'serviceCount':_0x1bf6d9[_0x32557c(0x7b)],'services':_0x1bf6d9[_0x32557c(0xb5)][_0x32557c(0x78)](summarizeService)},'message':_0x32557c(0xa9)+_0x1bf6d9[_0x32557c(0x79)]+'\x20service(s),\x20updated\x20'+_0x1bf6d9['updated']+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x1bf6d9['registryPath'],'replaced':_0x1bf6d9[_0x32557c(0x91)],'imported':_0x1bf6d9['imported'],'updated':_0x1bf6d9['updated'],'serviceCount':_0x1bf6d9['serviceCount'],'service':summarizeService(_0x1bf6d9[_0x32557c(0x8f)])},'message':(_0x1bf6d9[_0x32557c(0x91)]?_0x32557c(0xaf):'Imported')+_0x32557c(0xb1)+_0x1bf6d9[_0x32557c(0x8f)][_0x32557c(0xb6)]+'.'};}},{'service':'service','command':a41_0x3f2c2e(0x95),'description':a41_0x3f2c2e(0xb7),'risk':'write','confirmationDescription':'将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0xf2831d){const _0x5a7413=a41_0x3f2c2e,_0x44c9bd=getLocalServiceEntry(_0xf2831d[_0x5a7413(0xb9)](_0x5a7413(0x74)));return{'method':_0x5a7413(0x87),'url':_0xf2831d[_0x5a7413(0xb9)](_0x5a7413(0xad)),'body':{'service':_0xf2831d[_0x5a7413(0xb9)]('service'),'found':Boolean(_0x44c9bd),'version':_0x44c9bd?.[_0x5a7413(0x96)],'source':_0x44c9bd?.[_0x5a7413(0x7e)]},'description':_0x5a7413(0xb8)};},async 'execute'(_0x56b561){const _0xa7b085=a41_0x3f2c2e,_0x363160=exportServiceManifest(_0x56b561['str'](_0xa7b085(0x74)),_0x56b561['str'](_0xa7b085(0xad)));return{'ok':!![],'data':{'registryPath':_0x363160[_0xa7b085(0x9c)],'file':_0x363160[_0xa7b085(0x7a)],'service':summarizeService(_0x363160['entry'])},'message':_0xa7b085(0xa2)+_0x363160[_0xa7b085(0x8f)][_0xa7b085(0xb6)]+'.'};}},{'service':a41_0x3f2c2e(0x74),'command':a41_0x3f2c2e(0xa0),'description':a41_0x3f2c2e(0xab),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x570c4e=a41_0x3f2c2e,_0x2952c2=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x2952c2[_0x570c4e(0xb0)],'services':_0x2952c2['map'](summarizeService)}};}},{'service':a41_0x3f2c2e(0x74),'command':'remove','description':a41_0x3f2c2e(0x8a),'risk':'write','confirmationDescription':a41_0x3f2c2e(0x77),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x4ac7fb){const _0x485d1f=a41_0x3f2c2e,_0x446b5d=getLocalServiceEntry(_0x4ac7fb[_0x485d1f(0xb9)]('service'));return{'method':_0x485d1f(0x87),'url':getServiceRegistryPath(),'body':{'service':_0x4ac7fb['str'](_0x485d1f(0x74)),'found':Boolean(_0x446b5d),'version':_0x446b5d?.['version'],'source':_0x446b5d?.['source']},'description':_0x485d1f(0xac)};},async 'execute'(_0x4c7f88){const _0x4f09f4=a41_0x3f2c2e,_0x537c0c=removeServiceManifest(_0x4c7f88[_0x4f09f4(0xb9)](_0x4f09f4(0x74)));return{'ok':!![],'data':{'registryPath':_0x537c0c[_0x4f09f4(0x9c)],'serviceCount':_0x537c0c[_0x4f09f4(0x7b)],'service':summarizeService(_0x537c0c[_0x4f09f4(0x8f)])},'message':_0x4f09f4(0x9d)+_0x537c0c[_0x4f09f4(0x8f)][_0x4f09f4(0xb6)]+'.'};}},{'service':a41_0x3f2c2e(0x74),'command':a41_0x3f2c2e(0x8d),'description':a41_0x3f2c2e(0x88),'risk':a41_0x3f2c2e(0x7f),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x149f19){const _0x5a1cfc=a41_0x3f2c2e,_0xd672b3=getLocalServiceEntry(_0x149f19['str'](_0x5a1cfc(0x74)));if(!_0xd672b3)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x149f19[_0x5a1cfc(0xb9)](_0x5a1cfc(0x74))},'message':_0x5a1cfc(0xa4)+_0x149f19[_0x5a1cfc(0xb9)](_0x5a1cfc(0x74))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0xd672b3),'manifest':_0xd672b3[_0x5a1cfc(0x82)],'normalizedManifest':toPublicNormalizedServiceTree(_0xd672b3['normalizedManifest'])}};}}];
1
+ const a41_0x28f2c1=a41_0x65a0;(function(_0x1aa4d8,_0x455fe1){const _0x5bbdf9=a41_0x65a0,_0x1e66bd=_0x1aa4d8();while(!![]){try{const _0x440b19=-parseInt(_0x5bbdf9(0x12a))/0x1*(parseInt(_0x5bbdf9(0x146))/0x2)+-parseInt(_0x5bbdf9(0x151))/0x3*(-parseInt(_0x5bbdf9(0x150))/0x4)+-parseInt(_0x5bbdf9(0x13d))/0x5*(-parseInt(_0x5bbdf9(0x10b))/0x6)+-parseInt(_0x5bbdf9(0x14b))/0x7*(parseInt(_0x5bbdf9(0x121))/0x8)+parseInt(_0x5bbdf9(0x129))/0x9*(parseInt(_0x5bbdf9(0x14d))/0xa)+-parseInt(_0x5bbdf9(0x13a))/0xb+-parseInt(_0x5bbdf9(0x138))/0xc;if(_0x440b19===_0x455fe1)break;else _0x1e66bd['push'](_0x1e66bd['shift']());}catch(_0x182bca){_0x1e66bd['push'](_0x1e66bd['shift']());}}}(a41_0x2574,0xbcb0e));function a41_0x2574(){const _0x345d18=['filePath','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','warnings','cliName','map','1716FWQiZD','lower\x20kebab-case\x20service\x20code','str','import','length','21938FamvEV','write','940LXspOy','detail','Imported\x20','100GpmSnS','176298MboGZB','type','service','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','replaced','8472DeLlpH','file','remove','flags','hash','Imported','\x20service(s),\x20updated\x20','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','Service\x20Tree\x20manifest\x20file\x20path','risk','Exported\x20service\x20','report','manifests','name','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','entries','errors','kind','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','read','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','从本地运行态注册表移除\x20Service\x20Tree\x20清单','728KKmgru','entry','string','target','normalizedManifest','imported','registry','commands','99738RxyiPj','116YVRzIK','Service\x20manifest\x20validation\x20passed.','registryIndex','registryPath','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','importedAt','Removed\x20service\x20','validate','export','updated','serviceCode','serviceCount','version','Local\x20service\x20code,\x20for\x20example\x20crm','19933416LjMETv','WRITE','7874240ztgtWZ','source','cliPath','3625SpPqfY','Local\x20service\x20not\x20found:\x20','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','将\x20Service\x20Tree\x20清单导入本地运行态注册表'];a41_0x2574=function(){return _0x345d18;};return a41_0x2574();}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';function a41_0x65a0(_0x1d3d59,_0x1a2bf6){_0x1d3d59=_0x1d3d59-0x109;const _0x2574d1=a41_0x2574();let _0x65a00a=_0x2574d1[_0x1d3d59];return _0x65a00a;}const FILE_FLAG={'name':a41_0x28f2c1(0x10c),'type':a41_0x28f2c1(0x123),'required':!![],'description':a41_0x28f2c1(0x113)},SERVICE_FLAG={'name':a41_0x28f2c1(0x153),'type':a41_0x28f2c1(0x123),'required':!![],'description':a41_0x28f2c1(0x137),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a41_0x28f2c1(0x147)}};function summarizeService(_0xb24c58){const _0x3e3d0d=a41_0x28f2c1;return{'serviceCode':_0xb24c58[_0x3e3d0d(0x134)],'name':_0xb24c58[_0x3e3d0d(0x125)][_0x3e3d0d(0x153)][_0x3e3d0d(0x118)],'version':_0xb24c58[_0x3e3d0d(0x136)],'importedAt':_0xb24c58[_0x3e3d0d(0x12f)],'source':_0xb24c58['source'],'commandCount':_0xb24c58[_0x3e3d0d(0x125)][_0x3e3d0d(0x128)][_0x3e3d0d(0x14a)],'commands':_0xb24c58[_0x3e3d0d(0x125)][_0x3e3d0d(0x128)][_0x3e3d0d(0x145)](_0x261ad8=>({'path':_0x261ad8['cliPath'],'description':_0x261ad8['description'],'risk':_0x261ad8['risk'],'target':toPublicServiceTreeTarget(_0x261ad8[_0x3e3d0d(0x124)]),'flags':_0x261ad8[_0x3e3d0d(0x10e)][_0x3e3d0d(0x145)](_0x60a351=>({'name':_0x60a351[_0x3e3d0d(0x118)],'cliName':_0x60a351[_0x3e3d0d(0x144)],'type':_0x60a351[_0x3e3d0d(0x152)],'required':_0x60a351['required']===!![]}))}))};}function summarizeLoadedManifest(_0x4741a0){const _0x217186=a41_0x28f2c1;return{'service':_0x4741a0[_0x217186(0x125)]?.[_0x217186(0x153)],'version':_0x4741a0[_0x217186(0x125)]?.['version'],'commandCount':_0x4741a0['normalizedManifest']?.[_0x217186(0x128)][_0x217186(0x14a)]??0x0,'commands':_0x4741a0['normalizedManifest']?.[_0x217186(0x128)][_0x217186(0x145)](_0xcb6bc4=>({'path':_0xcb6bc4[_0x217186(0x13c)],'risk':_0xcb6bc4[_0x217186(0x114)],'target':toPublicServiceTreeTarget(_0xcb6bc4[_0x217186(0x124)])}))??[],'registryIndex':_0x4741a0[_0x217186(0x12c)],'registryServiceCode':_0x4741a0['registryServiceCode'],'errors':_0x4741a0[_0x217186(0x116)][_0x217186(0x11b)],'warnings':_0x4741a0[_0x217186(0x116)][_0x217186(0x143)]};}export const serviceDefinitions=[{'service':'service','command':a41_0x28f2c1(0x131),'description':a41_0x28f2c1(0x12e),'risk':a41_0x28f2c1(0x11e),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x3e8595){const _0x349437=a41_0x28f2c1,_0x5f3505=loadServiceManifestFromFile(_0x3e8595[_0x349437(0x148)](_0x349437(0x10c)));if(!_0x5f3505[_0x349437(0x116)]['ok'])return{'ok':![],'data':{'file':_0x5f3505['filePath'],'hash':_0x5f3505[_0x349437(0x10f)],'kind':_0x5f3505[_0x349437(0x11c)],'serviceCount':_0x5f3505['manifests'][_0x349437(0x14a)],'services':_0x5f3505['manifests'][_0x349437(0x145)](summarizeLoadedManifest),'errors':_0x5f3505[_0x349437(0x116)][_0x349437(0x11b)],'warnings':_0x5f3505[_0x349437(0x116)][_0x349437(0x143)]},'message':formatValidationFailure(_0x5f3505[_0x349437(0x116)])};if(_0x5f3505['kind']===_0x349437(0x127)||_0x5f3505[_0x349437(0x117)][_0x349437(0x14a)]!==0x1)return{'ok':!![],'data':{'file':_0x5f3505[_0x349437(0x141)],'hash':_0x5f3505[_0x349437(0x10f)],'kind':_0x5f3505['kind'],'serviceCount':_0x5f3505[_0x349437(0x117)][_0x349437(0x14a)],'commandCount':_0x5f3505[_0x349437(0x117)]['reduce']((_0x4266c7,_0x16193f)=>_0x4266c7+(_0x16193f['normalizedManifest']?.['commands'][_0x349437(0x14a)]??0x0),0x0),'services':_0x5f3505[_0x349437(0x117)][_0x349437(0x145)](summarizeLoadedManifest),'warnings':_0x5f3505[_0x349437(0x116)][_0x349437(0x143)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x5f3505['filePath'],'hash':_0x5f3505[_0x349437(0x10f)],'kind':_0x5f3505[_0x349437(0x11c)],'service':_0x5f3505[_0x349437(0x125)]?.[_0x349437(0x153)],'version':_0x5f3505[_0x349437(0x125)]?.['version'],'commandCount':_0x5f3505['normalizedManifest']?.[_0x349437(0x128)][_0x349437(0x14a)]??0x0,'commands':_0x5f3505[_0x349437(0x125)]?.[_0x349437(0x128)][_0x349437(0x145)](_0x2db1e1=>({'path':_0x2db1e1['cliPath'],'risk':_0x2db1e1['risk'],'target':toPublicServiceTreeTarget(_0x2db1e1[_0x349437(0x124)])})),'warnings':_0x5f3505[_0x349437(0x116)][_0x349437(0x143)]},'message':_0x349437(0x12b)};}},{'service':a41_0x28f2c1(0x153),'command':a41_0x28f2c1(0x149),'description':a41_0x28f2c1(0x140),'risk':a41_0x28f2c1(0x14c),'confirmationDescription':a41_0x28f2c1(0x119),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x35723f){const _0x5bcec6=a41_0x28f2c1,_0x5e6ca7=loadServiceManifestFromFile(_0x35723f['str'](_0x5bcec6(0x10c)));return{'method':_0x5bcec6(0x139),'url':getServiceRegistryPath(),'body':{'file':_0x5e6ca7[_0x5bcec6(0x141)],'hash':_0x5e6ca7[_0x5bcec6(0x10f)],'kind':_0x5e6ca7[_0x5bcec6(0x11c)],'ok':_0x5e6ca7[_0x5bcec6(0x116)]['ok'],'service':_0x5e6ca7[_0x5bcec6(0x125)]?.[_0x5bcec6(0x153)],'version':_0x5e6ca7[_0x5bcec6(0x125)]?.['version'],'serviceCount':_0x5e6ca7[_0x5bcec6(0x117)][_0x5bcec6(0x14a)],'services':_0x5e6ca7[_0x5bcec6(0x117)][_0x5bcec6(0x145)](_0x246ce1=>({'service':_0x246ce1[_0x5bcec6(0x125)]?.[_0x5bcec6(0x153)],'version':_0x246ce1['normalizedManifest']?.[_0x5bcec6(0x136)],'commandCount':_0x246ce1[_0x5bcec6(0x125)]?.[_0x5bcec6(0x128)][_0x5bcec6(0x14a)]??0x0,'errors':_0x246ce1[_0x5bcec6(0x116)][_0x5bcec6(0x11b)]})),'errors':_0x5e6ca7[_0x5bcec6(0x116)][_0x5bcec6(0x11b)],'commandCount':_0x5e6ca7[_0x5bcec6(0x125)]?.[_0x5bcec6(0x128)][_0x5bcec6(0x14a)]??0x0},'description':_0x5bcec6(0x11f)};},async 'execute'(_0x480184){const _0x2c18c7=a41_0x28f2c1,_0x4dbc9d=importServiceManifest(_0x480184['str'](_0x2c18c7(0x10c)));if(_0x4dbc9d['entries'][_0x2c18c7(0x14a)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x4dbc9d['registryPath'],'imported':_0x4dbc9d['imported'],'updated':_0x4dbc9d[_0x2c18c7(0x133)],'serviceCount':_0x4dbc9d[_0x2c18c7(0x135)],'services':_0x4dbc9d[_0x2c18c7(0x11a)][_0x2c18c7(0x145)](summarizeService)},'message':_0x2c18c7(0x14f)+_0x4dbc9d['imported']+_0x2c18c7(0x111)+_0x4dbc9d[_0x2c18c7(0x133)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x4dbc9d[_0x2c18c7(0x12d)],'replaced':_0x4dbc9d[_0x2c18c7(0x10a)],'imported':_0x4dbc9d[_0x2c18c7(0x126)],'updated':_0x4dbc9d[_0x2c18c7(0x133)],'serviceCount':_0x4dbc9d[_0x2c18c7(0x135)],'service':summarizeService(_0x4dbc9d[_0x2c18c7(0x122)])},'message':(_0x4dbc9d['replaced']?'Updated':_0x2c18c7(0x110))+'\x20service\x20'+_0x4dbc9d['entry'][_0x2c18c7(0x134)]+'.'};}},{'service':'service','command':a41_0x28f2c1(0x132),'description':a41_0x28f2c1(0x112),'risk':a41_0x28f2c1(0x14c),'confirmationDescription':a41_0x28f2c1(0x142),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x451da8){const _0x16fafd=a41_0x28f2c1,_0x1e7060=getLocalServiceEntry(_0x451da8['str']('service'));return{'method':_0x16fafd(0x139),'url':_0x451da8[_0x16fafd(0x148)]('file'),'body':{'service':_0x451da8[_0x16fafd(0x148)](_0x16fafd(0x153)),'found':Boolean(_0x1e7060),'version':_0x1e7060?.['version'],'source':_0x1e7060?.[_0x16fafd(0x13b)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x4178e4){const _0x3adf3c=a41_0x28f2c1,_0x318dcd=exportServiceManifest(_0x4178e4[_0x3adf3c(0x148)]('service'),_0x4178e4[_0x3adf3c(0x148)](_0x3adf3c(0x10c)));return{'ok':!![],'data':{'registryPath':_0x318dcd[_0x3adf3c(0x12d)],'file':_0x318dcd[_0x3adf3c(0x141)],'service':summarizeService(_0x318dcd[_0x3adf3c(0x122)])},'message':_0x3adf3c(0x115)+_0x318dcd[_0x3adf3c(0x122)][_0x3adf3c(0x134)]+'.'};}},{'service':'service','command':'list','description':a41_0x28f2c1(0x13f),'risk':a41_0x28f2c1(0x11e),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x2742c9=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x2742c9['length'],'services':_0x2742c9['map'](summarizeService)}};}},{'service':a41_0x28f2c1(0x153),'command':a41_0x28f2c1(0x10d),'description':a41_0x28f2c1(0x120),'risk':a41_0x28f2c1(0x14c),'confirmationDescription':a41_0x28f2c1(0x11d),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x2544ba){const _0x1472b9=a41_0x28f2c1,_0x25f679=getLocalServiceEntry(_0x2544ba['str'](_0x1472b9(0x153)));return{'method':_0x1472b9(0x139),'url':getServiceRegistryPath(),'body':{'service':_0x2544ba[_0x1472b9(0x148)]('service'),'found':Boolean(_0x25f679),'version':_0x25f679?.[_0x1472b9(0x136)],'source':_0x25f679?.[_0x1472b9(0x13b)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0xea61a7){const _0x37ada6=a41_0x28f2c1,_0x4b9509=removeServiceManifest(_0xea61a7[_0x37ada6(0x148)](_0x37ada6(0x153)));return{'ok':!![],'data':{'registryPath':_0x4b9509[_0x37ada6(0x12d)],'serviceCount':_0x4b9509[_0x37ada6(0x135)],'service':summarizeService(_0x4b9509[_0x37ada6(0x122)])},'message':_0x37ada6(0x130)+_0x4b9509[_0x37ada6(0x122)][_0x37ada6(0x134)]+'.'};}},{'service':a41_0x28f2c1(0x153),'command':a41_0x28f2c1(0x14e),'description':a41_0x28f2c1(0x109),'risk':a41_0x28f2c1(0x11e),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x23cc6d){const _0x5cdb0e=a41_0x28f2c1,_0x142b89=getLocalServiceEntry(_0x23cc6d[_0x5cdb0e(0x148)](_0x5cdb0e(0x153)));if(!_0x142b89)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x23cc6d['str'](_0x5cdb0e(0x153))},'message':_0x5cdb0e(0x13e)+_0x23cc6d[_0x5cdb0e(0x148)](_0x5cdb0e(0x153))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x142b89),'manifest':_0x142b89['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x142b89[_0x5cdb0e(0x125)])}};}}];
@@ -1 +1 @@
1
- const a42_0x355a1f=a42_0x41c9;(function(_0x497f4a,_0x4b0bf5){const _0x1bea82=a42_0x41c9,_0x234643=_0x497f4a();while(!![]){try{const _0x391c3a=parseInt(_0x1bea82(0xc1))/0x1*(-parseInt(_0x1bea82(0xae))/0x2)+-parseInt(_0x1bea82(0x89))/0x3*(-parseInt(_0x1bea82(0xd7))/0x4)+parseInt(_0x1bea82(0xa2))/0x5*(-parseInt(_0x1bea82(0xb4))/0x6)+-parseInt(_0x1bea82(0xcc))/0x7*(-parseInt(_0x1bea82(0xd2))/0x8)+-parseInt(_0x1bea82(0xc0))/0x9*(-parseInt(_0x1bea82(0xa6))/0xa)+parseInt(_0x1bea82(0x92))/0xb+-parseInt(_0x1bea82(0xbc))/0xc;if(_0x391c3a===_0x4b0bf5)break;else _0x234643['push'](_0x234643['shift']());}catch(_0x27cf2a){_0x234643['push'](_0x234643['shift']());}}}(a42_0x3104,0x1f960));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';function a42_0x41c9(_0x164305,_0x1650e4){_0x164305=_0x164305-0x81;const _0x3104c0=a42_0x3104();let _0x41c976=_0x3104c0[_0x164305];return _0x41c976;}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_0x355a1f(0xa9);export function getServiceRegistryPath(_0x210ae6={}){const _0x544475=a42_0x355a1f;return resolve(_0x210ae6[_0x544475(0x90)]??homedir(),PRODUCT_CONFIG[_0x544475(0x84)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x274337={}){const _0x1d8f5b=a42_0x355a1f,_0x31b6f1=getServiceRegistryPath(_0x274337);if(!existsSync(_0x31b6f1))return emptyServiceRegistry();try{const _0x213a73=readFileSync(_0x31b6f1,_0x1d8f5b(0xa3));if(!_0x213a73[_0x1d8f5b(0xd8)]())return emptyServiceRegistry();const _0x473f94=JSON[_0x1d8f5b(0x8c)](_0x213a73);if(_0x473f94[_0x1d8f5b(0xcf)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x1d8f5b(0xc6)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x473f94[_0x1d8f5b(0xcf)]),_0x1d8f5b(0xaf)+_0x31b6f1+'.');if(!Array[_0x1d8f5b(0xc7)](_0x473f94['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x473f94[_0x1d8f5b(0x86)],'services':_0x473f94['services']};}catch(_0x322616){if(_0x322616 instanceof Error&&_0x322616['name']===_0x1d8f5b(0xc4))throw _0x322616;throw CliErrors[_0x1d8f5b(0xc6)]('Invalid\x20service\x20registry\x20JSON:\x20'+_0x31b6f1,_0x1d8f5b(0xa8));}}export function writeServiceRegistry(_0x1bb565,_0x50def1={}){const _0x2df7f2=a42_0x355a1f,_0x557f31=getServiceRegistryPath(_0x50def1),_0x4153a6=dirname(_0x557f31);!existsSync(_0x4153a6)&&mkdirSync(_0x4153a6,{'recursive':!![]});const _0x2b4325=_0x557f31+_0x2df7f2(0x97);try{writeFileSync(_0x2b4325,JSON[_0x2df7f2(0xc8)](_0x1bb565,null,0x2)+'\x0a',{'encoding':_0x2df7f2(0xa3),'mode':0x180}),renameSync(_0x2b4325,_0x557f31);}catch(_0x49fbf2){try{unlinkSync(_0x2b4325);}catch{}if(_0x49fbf2?.[_0x2df7f2(0x9d)]===_0x2df7f2(0xc2))throw CliErrors[_0x2df7f2(0xc6)](_0x2df7f2(0x98)+_0x557f31);throw _0x49fbf2;}return _0x557f31;}export function loadServiceManifestFromFile(_0x9d8779){const _0x1d9f6d=a42_0x355a1f,_0x5989d7=resolve(_0x9d8779);if(!existsSync(_0x5989d7))throw CliErrors['validation'](_0x1d9f6d(0x9e)+_0x9d8779);let _0x853b85;const _0x11a191=readFileSync(_0x5989d7,_0x1d9f6d(0xa3));try{_0x853b85=JSON[_0x1d9f6d(0x8c)](_0x11a191);}catch{throw CliErrors[_0x1d9f6d(0xc6)]('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x9d8779,_0x1d9f6d(0x8a));}const _0x4a1148=sha256(_0x11a191),_0x399928=extractLoadedServiceManifests(_0x853b85,_0x4a1148),_0x287fcd=aggregateValidationReports(_0x399928),_0xbbb4d5=_0x399928[0x0];return{'filePath':_0x5989d7,'hash':_0x4a1148,'kind':isServiceRegistryLike(_0x853b85)?_0x1d9f6d(0x88):'manifest','manifest':_0xbbb4d5?.[_0x1d9f6d(0xa4)]??_0x853b85,'report':_0x287fcd,'normalizedManifest':_0x399928['length']===0x1?_0xbbb4d5?.['normalizedManifest']:undefined,'manifests':_0x399928};}export function importServiceManifest(_0x5aa3a9,_0x1a123b={}){const _0x36b6ef=a42_0x355a1f,_0x5bb0f1=loadServiceManifestFromFile(_0x5aa3a9);if(!_0x5bb0f1[_0x36b6ef(0xb0)]['ok'])throw CliErrors[_0x36b6ef(0xc6)](formatValidationFailure(_0x5bb0f1[_0x36b6ef(0xb0)]),_0x36b6ef(0xb6));if(_0x5bb0f1[_0x36b6ef(0x96)][_0x36b6ef(0x93)]===0x0)throw CliErrors[_0x36b6ef(0xc6)](_0x36b6ef(0xce),_0x36b6ef(0x95));const _0x4c2c75=readServiceRegistry(_0x1a123b),_0x3d490c=(_0x1a123b[_0x36b6ef(0x81)]??(()=>new Date()))()[_0x36b6ef(0xc5)](),_0x27a4bc=[];let _0x4a25f5=0x0,_0x1a5991=0x0;for(const _0x3d74f5 of _0x5bb0f1['manifests']){if(!_0x3d74f5['normalizedManifest'])continue;const _0x111b59=_0x3d74f5[_0x36b6ef(0xc3)][_0x36b6ef(0x82)][_0x36b6ef(0x9d)],_0x5a9ceb={'serviceCode':_0x111b59,'version':_0x3d74f5[_0x36b6ef(0xc3)][_0x36b6ef(0xc9)],'importedAt':_0x3d490c,'source':{'type':_0x36b6ef(0xca),'path':_0x5bb0f1[_0x36b6ef(0xb9)],'hash':_0x3d74f5[_0x36b6ef(0xab)]},'manifest':_0x3d74f5[_0x36b6ef(0xa4)],'normalizedManifest':_0x3d74f5[_0x36b6ef(0xc3)]},_0x7c0e3=_0x4c2c75[_0x36b6ef(0xbf)][_0x36b6ef(0xcb)](_0x51edec=>_0x51edec[_0x36b6ef(0x99)]===_0x111b59);_0x7c0e3>=0x0?(_0x4c2c75[_0x36b6ef(0xbf)][_0x7c0e3]=_0x5a9ceb,_0x1a5991++):(_0x4c2c75[_0x36b6ef(0xbf)][_0x36b6ef(0xbe)](_0x5a9ceb),_0x4a25f5++),_0x27a4bc[_0x36b6ef(0xbe)](_0x5a9ceb);}_0x4c2c75[_0x36b6ef(0xbf)][_0x36b6ef(0xbb)]((_0x1a185c,_0x1bce02)=>_0x1a185c[_0x36b6ef(0x99)][_0x36b6ef(0x8b)](_0x1bce02[_0x36b6ef(0x99)])),_0x4c2c75[_0x36b6ef(0x86)]=_0x3d490c;const _0x511619=writeServiceRegistry(_0x4c2c75,_0x1a123b);return{'registryPath':_0x511619,'entry':_0x27a4bc[0x0],'replaced':_0x27a4bc[_0x36b6ef(0x93)]===0x1?_0x1a5991===0x1:_0x1a5991>0x0,'entries':_0x27a4bc,'imported':_0x4a25f5,'updated':_0x1a5991,'serviceCount':_0x4c2c75['services']['length']};}export function exportServiceManifest(_0x37acb5,_0xe4641d,_0x714bb6={}){const _0x568e5d=a42_0x355a1f,_0x5cda3b=getServiceRegistryPath(_0x714bb6),_0x3fad18=getLocalServiceEntry(_0x37acb5,_0x714bb6);if(!_0x3fad18)throw CliErrors[_0x568e5d(0xc6)](_0x568e5d(0x83)+_0x37acb5,_0x568e5d(0xa5));const _0x56eb80=resolve(_0xe4641d),_0x349b85=dirname(_0x56eb80);return!existsSync(_0x349b85)&&mkdirSync(_0x349b85,{'recursive':!![]}),writeFileSync(_0x56eb80,JSON[_0x568e5d(0xc8)](_0x3fad18['manifest'],null,0x2)+'\x0a',{'encoding':_0x568e5d(0xa3),'mode':0x180}),{'registryPath':_0x5cda3b,'filePath':_0x56eb80,'entry':_0x3fad18};}export function removeServiceManifest(_0x38c411,_0x46d927={}){const _0x1948a9=a42_0x355a1f,_0x5d31a0=readServiceRegistry(_0x46d927),_0x540c7b=_0x38c411[_0x1948a9(0xd8)](),_0x52fbb0=_0x5d31a0[_0x1948a9(0xbf)][_0x1948a9(0xcb)](_0x56da72=>_0x56da72[_0x1948a9(0x99)]===_0x540c7b);if(_0x52fbb0<0x0)throw CliErrors[_0x1948a9(0xc6)]('Local\x20service\x20not\x20found:\x20'+_0x540c7b,_0x1948a9(0xa5));const [_0x4b10e1]=_0x5d31a0[_0x1948a9(0xbf)]['splice'](_0x52fbb0,0x1),_0x1300c1=(_0x46d927['now']??(()=>new Date()))()[_0x1948a9(0xc5)]();_0x5d31a0['updatedAt']=_0x1300c1;const _0xa565f0=writeServiceRegistry(_0x5d31a0,_0x46d927);return{'registryPath':_0xa565f0,'entry':_0x4b10e1,'serviceCount':_0x5d31a0[_0x1948a9(0xbf)]['length']};}export function listLocalServices(_0x1e6bc3={}){const _0x187771=a42_0x355a1f;return readServiceRegistry(_0x1e6bc3)[_0x187771(0xbf)];}export function getLocalServiceEntry(_0xfce9e9,_0x178440={}){const _0x3be18f=a42_0x355a1f;return readServiceRegistry(_0x178440)[_0x3be18f(0xbf)][_0x3be18f(0xa0)](_0x24710e=>_0x24710e[_0x3be18f(0x99)]===_0xfce9e9[_0x3be18f(0xd8)]());}export function listLocalServiceTrees(_0x20a46b={}){const _0x313ba8=a42_0x355a1f;return readServiceRegistry(_0x20a46b)[_0x313ba8(0xbf)][_0x313ba8(0x85)](_0x17c8f7=>_0x17c8f7[_0x313ba8(0xc3)]);}export function inspectServiceRegistry(_0x574fe1={}){const _0x5019ad=a42_0x355a1f,_0x23f30e=getServiceRegistryPath(_0x574fe1);if(!existsSync(_0x23f30e))return emptyServiceRegistryInspection(_0x23f30e,'missing',![]);try{const _0x490433=readFileSync(_0x23f30e,_0x5019ad(0xa3));if(!_0x490433[_0x5019ad(0xd8)]())return emptyServiceRegistryInspection(_0x23f30e,_0x5019ad(0xd4),!![]);const _0x176d8b=JSON['parse'](_0x490433);if(_0x176d8b[_0x5019ad(0xcf)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x23f30e,'invalid',!![]),'schemaVersion':_0x176d8b[_0x5019ad(0xcf)],'message':_0x5019ad(0xbd)+String(_0x176d8b[_0x5019ad(0xcf)])};if(!Array[_0x5019ad(0xc7)](_0x176d8b['services']))return{...emptyServiceRegistryInspection(_0x23f30e,_0x5019ad(0xb8),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x176d8b['updatedAt'],'message':'services\x20must\x20be\x20an\x20array'};const _0x10b162=_0x176d8b[_0x5019ad(0xbf)][_0x5019ad(0x85)](summarizeLocalServiceEntry);return{'registryPath':_0x23f30e,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x176d8b[_0x5019ad(0x86)],'serviceCount':_0x10b162[_0x5019ad(0x93)],'commandCount':_0x10b162[_0x5019ad(0x8e)]((_0x2f1222,_0x11fefa)=>_0x2f1222+_0x11fefa[_0x5019ad(0xb7)],0x0),'services':_0x10b162};}catch(_0x5a2ba8){return{...emptyServiceRegistryInspection(_0x23f30e,'invalid',!![]),'message':_0x5a2ba8 instanceof Error?_0x5a2ba8['message']:String(_0x5a2ba8)};}}export function formatValidationFailure(_0x200ee0){const _0x2a7b94=a42_0x355a1f,_0x5d4faf=_0x200ee0[_0x2a7b94(0x8d)][_0x2a7b94(0x85)](_0x6c0b8d=>_0x6c0b8d[_0x2a7b94(0xba)]+':\x20'+_0x6c0b8d[_0x2a7b94(0xcd)]);return _0x2a7b94(0xd1)+_0x5d4faf[_0x2a7b94(0x9f)]('\x0a');}function extractLoadedServiceManifests(_0x494826,_0x1e0f24){const _0x43eb49=a42_0x355a1f;if(!isServiceRegistryLike(_0x494826)){const _0x5a495e=_0x494826,{manifest:_0x4c91b5,errors:_0x1cc2b6}=adaptServiceTreeManifestForLegacyFramework(_0x5a495e),_0x3b5b63=validateServiceTreeManifest(_0x4c91b5),_0x23d897=mergeValidationErrors(_0x3b5b63,_0x1cc2b6);return[{'manifest':_0x5a495e,'report':_0x23d897,'normalizedManifest':_0x23d897['ok']?normalizeServiceTreeManifest(_0x4c91b5):undefined,'sourceHash':_0x1e0f24}];}return _0x494826[_0x43eb49(0xbf)][_0x43eb49(0x85)]((_0x5da62d,_0x1d1dad)=>{const _0x250936=_0x43eb49,_0x2146af=isObjectRecord(_0x5da62d)?_0x5da62d[_0x250936(0xa4)]:undefined,{manifest:_0x18cfa4,errors:_0x46c773}=adaptServiceTreeManifestForLegacyFramework(_0x2146af),_0x438c5e=validateServiceTreeManifest(_0x18cfa4),_0x1d3c16=mergeValidationErrors(_0x438c5e,_0x46c773),_0x32899e=isObjectRecord(_0x5da62d)&&typeof _0x5da62d[_0x250936(0x99)]==='string'?_0x5da62d[_0x250936(0x99)]:undefined;return{'manifest':_0x2146af,'report':_0x1d3c16,'normalizedManifest':_0x1d3c16['ok']?normalizeServiceTreeManifest(_0x18cfa4):undefined,'sourceHash':sha256(JSON['stringify'](_0x2146af,null,0x2)+'\x0a'),'registryIndex':_0x1d1dad,'registryServiceCode':_0x32899e};});}function mergeValidationErrors(_0x2133e3,_0x70e39d){const _0x32f42b=a42_0x355a1f,_0x5df8f3=_0x2133e3[_0x32f42b(0x8d)][_0x32f42b(0x85)](_0xaf5299=>_0xaf5299[_0x32f42b(0xcd)]===_0x32f42b(0xaa)?{..._0xaf5299,'message':_0x32f42b(0xb3)}:_0xaf5299),_0x6a53c7=[..._0x70e39d,..._0x5df8f3];return{'ok':_0x6a53c7['length']===0x0,'errors':_0x6a53c7,'warnings':_0x2133e3[_0x32f42b(0xd5)]};}function aggregateValidationReports(_0x37d680){const _0x5d2c7c=a42_0x355a1f,_0xdfb329=_0x37d680[_0x5d2c7c(0x87)](_0x2ea3a4=>_0x2ea3a4[_0x5d2c7c(0x9c)]===undefined?_0x2ea3a4[_0x5d2c7c(0xb0)][_0x5d2c7c(0x8d)]:_0x2ea3a4[_0x5d2c7c(0xb0)][_0x5d2c7c(0x8d)][_0x5d2c7c(0x85)](_0x3fad86=>({..._0x3fad86,'path':prefixRegistryIssuePath(_0x2ea3a4[_0x5d2c7c(0x9c)],_0x3fad86[_0x5d2c7c(0xba)])}))),_0x7ee28=_0x37d680['flatMap'](_0x5fe6df=>_0x5fe6df[_0x5d2c7c(0x9c)]===undefined?_0x5fe6df[_0x5d2c7c(0xb0)]['warnings']:_0x5fe6df['report'][_0x5d2c7c(0xd5)][_0x5d2c7c(0x85)](_0x26b144=>({..._0x26b144,'path':prefixRegistryIssuePath(_0x5fe6df[_0x5d2c7c(0x9c)],_0x26b144[_0x5d2c7c(0xba)])})));return{'ok':_0xdfb329['length']===0x0,'errors':_0xdfb329,'warnings':_0x7ee28};}function a42_0x3104(){const _0x36a26d=['startsWith','homeDir','importedAt','1449525WRHyVK','length','risk','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','manifests','.tmp','Cannot\x20write\x20service\x20registry:\x20','serviceCode','command','].manifest.','registryIndex','code','Service\x20manifest\x20file\x20not\x20found:\x20','join','find','target','1113935KlqUZW','utf8','manifest','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','1280NOeRHK','description','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','service.json','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','sourceHash','].manifest','update','9202aPGiDr','Remove\x20or\x20migrate\x20','report','$.services[','object','bff\x20target\x20requires\x20functionName.','6hDYDgt','sha256','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','commandCount','invalid','filePath','path','sort','2106168uSxjQw','Unsupported\x20schemaVersion:\x20','push','services','16641tUHyBV','49iAeihp','ENOENT','normalizedManifest','CliError','toISOString','validation','isArray','stringify','version','file','findIndex','154vcTAIl','message','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','schemaVersion','digest','Service\x20manifest\x20validation\x20failed:\x0a','56096bgzzfB','slice','empty','warnings','name','20DKCvli','trim','now','service','Local\x20service\x20not\x20found:\x20','homeDirName','map','updatedAt','flatMap','registry','138249JFjJGS','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','localeCompare','parse','errors','reduce'];a42_0x3104=function(){return _0x36a26d;};return a42_0x3104();}function prefixRegistryIssuePath(_0x21e786,_0x2f05c4){const _0x2d987c=a42_0x355a1f;if(_0x2f05c4==='$')return'$.services['+_0x21e786+_0x2d987c(0xac);if(_0x2f05c4[_0x2d987c(0x8f)]('$.'))return'$.services['+_0x21e786+_0x2d987c(0xac)+_0x2f05c4['slice'](0x1);if(_0x2f05c4[_0x2d987c(0x8f)]('$['))return _0x2d987c(0xb1)+_0x21e786+_0x2d987c(0xac)+_0x2f05c4[_0x2d987c(0xd3)](0x1);return _0x2d987c(0xb1)+_0x21e786+_0x2d987c(0x9b)+_0x2f05c4;}function isServiceRegistryLike(_0x33724b){const _0x29c2e3=a42_0x355a1f;return isObjectRecord(_0x33724b)&&_0x33724b['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x29c2e3(0xc7)](_0x33724b[_0x29c2e3(0xbf)]);}function isObjectRecord(_0x38be87){const _0x393784=a42_0x355a1f;return Boolean(_0x38be87)&&typeof _0x38be87===_0x393784(0xb2)&&!Array[_0x393784(0xc7)](_0x38be87);}function emptyServiceRegistryInspection(_0x3780f8,_0x507af5,_0x5b7103){return{'registryPath':_0x3780f8,'exists':_0x5b7103,'status':_0x507af5,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x23d25a){const _0x5b3e8f=a42_0x355a1f,_0x204432=_0x23d25a[_0x5b3e8f(0xc3)],_0x1c196a=_0x204432['commands'][_0x5b3e8f(0x85)](_0x30d155=>({'path':_0x30d155['cliPath'],'description':_0x30d155[_0x5b3e8f(0xa7)],'risk':_0x30d155[_0x5b3e8f(0x94)],'targetKind':_0x30d155[_0x5b3e8f(0xa1)]['kind'],'targetCommand':_0x30d155['target'][_0x5b3e8f(0x9a)]}));return{'serviceCode':_0x23d25a[_0x5b3e8f(0x99)],'name':_0x204432[_0x5b3e8f(0x82)][_0x5b3e8f(0xd6)],'description':_0x204432[_0x5b3e8f(0x82)][_0x5b3e8f(0xa7)],'version':_0x23d25a[_0x5b3e8f(0xc9)],'importedAt':_0x23d25a[_0x5b3e8f(0x91)],'source':_0x23d25a['source'],'commandCount':_0x1c196a[_0x5b3e8f(0x93)],'commands':_0x1c196a};}function sha256(_0xa38ed5){const _0x25c478=a42_0x355a1f;return createHash(_0x25c478(0xb5))[_0x25c478(0xad)](_0xa38ed5)[_0x25c478(0xd0)]('hex');}
1
+ const a42_0x396d6c=a42_0x14e6;(function(_0x4170af,_0x2c1618){const _0x4fc1a9=a42_0x14e6,_0x1b82f2=_0x4170af();while(!![]){try{const _0x20da6f=-parseInt(_0x4fc1a9(0x1b9))/0x1*(parseInt(_0x4fc1a9(0x1e9))/0x2)+-parseInt(_0x4fc1a9(0x1bf))/0x3+parseInt(_0x4fc1a9(0x1ad))/0x4*(-parseInt(_0x4fc1a9(0x1b4))/0x5)+parseInt(_0x4fc1a9(0x1bc))/0x6*(-parseInt(_0x4fc1a9(0x1c5))/0x7)+-parseInt(_0x4fc1a9(0x1ab))/0x8*(-parseInt(_0x4fc1a9(0x1f0))/0x9)+-parseInt(_0x4fc1a9(0x1bb))/0xa*(-parseInt(_0x4fc1a9(0x1a3))/0xb)+-parseInt(_0x4fc1a9(0x1d5))/0xc*(-parseInt(_0x4fc1a9(0x1c8))/0xd);if(_0x20da6f===_0x2c1618)break;else _0x1b82f2['push'](_0x1b82f2['shift']());}catch(_0x5c500c){_0x1b82f2['push'](_0x1b82f2['shift']());}}}(a42_0xb23e,0xc045a));import{createHash}from'node:crypto';function a42_0x14e6(_0x1eb823,_0x2d9c9f){_0x1eb823=_0x1eb823-0x19f;const _0xb23ef=a42_0xb23e();let _0x14e67d=_0xb23ef[_0x1eb823];return _0x14e67d;}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_0x396d6c(0x1a8);export function getServiceRegistryPath(_0x5b95a2={}){const _0x1e9764=a42_0x396d6c;return resolve(_0x5b95a2['homeDir']??homedir(),PRODUCT_CONFIG[_0x1e9764(0x1c4)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x2259ab={}){const _0x2c5eda=a42_0x396d6c,_0x155973=getServiceRegistryPath(_0x2259ab);if(!existsSync(_0x155973))return emptyServiceRegistry();try{const _0x3eb660=readFileSync(_0x155973,_0x2c5eda(0x1c7));if(!_0x3eb660[_0x2c5eda(0x1df)]())return emptyServiceRegistry();const _0x486222=JSON[_0x2c5eda(0x1d7)](_0x3eb660);if(_0x486222[_0x2c5eda(0x1f1)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x2c5eda(0x1d4)+String(_0x486222['schemaVersion']),_0x2c5eda(0x1bd)+_0x155973+'.');if(!Array[_0x2c5eda(0x1b1)](_0x486222[_0x2c5eda(0x1ea)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x486222[_0x2c5eda(0x19f)],'services':_0x486222[_0x2c5eda(0x1ea)]};}catch(_0x4ec042){if(_0x4ec042 instanceof Error&&_0x4ec042[_0x2c5eda(0x1d3)]===_0x2c5eda(0x1eb))throw _0x4ec042;throw CliErrors[_0x2c5eda(0x1f5)](_0x2c5eda(0x1e6)+_0x155973,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x2c2777,_0x2a8503={}){const _0x63c0f0=a42_0x396d6c,_0x17fcbb=getServiceRegistryPath(_0x2a8503),_0x4641b2=dirname(_0x17fcbb);!existsSync(_0x4641b2)&&mkdirSync(_0x4641b2,{'recursive':!![]});const _0x4de232=_0x17fcbb+_0x63c0f0(0x1cd);try{writeFileSync(_0x4de232,JSON[_0x63c0f0(0x1d8)](_0x2c2777,null,0x2)+'\x0a',{'encoding':_0x63c0f0(0x1c7),'mode':0x180}),renameSync(_0x4de232,_0x17fcbb);}catch(_0x59055e){try{unlinkSync(_0x4de232);}catch{}if(_0x59055e?.[_0x63c0f0(0x1b7)]===_0x63c0f0(0x1cc))throw CliErrors['validation'](_0x63c0f0(0x1b0)+_0x17fcbb);throw _0x59055e;}return _0x17fcbb;}export function loadServiceManifestFromFile(_0x2cdf2c){const _0x4c4da4=a42_0x396d6c,_0x38d6bd=resolve(_0x2cdf2c);if(!existsSync(_0x38d6bd))throw CliErrors['validation'](_0x4c4da4(0x1d9)+_0x2cdf2c);let _0x3a7916;const _0x1f2911=readFileSync(_0x38d6bd,'utf8');try{_0x3a7916=JSON[_0x4c4da4(0x1d7)](_0x1f2911);}catch{throw CliErrors[_0x4c4da4(0x1f5)](_0x4c4da4(0x1c3)+_0x2cdf2c,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0xe6d6e9=sha256(_0x1f2911),_0x59f778=extractLoadedServiceManifests(_0x3a7916,_0xe6d6e9),_0x40229c=aggregateValidationReports(_0x59f778),_0x3e5af1=_0x59f778[0x0];return{'filePath':_0x38d6bd,'hash':_0xe6d6e9,'kind':isServiceRegistryLike(_0x3a7916)?_0x4c4da4(0x1a6):'manifest','manifest':_0x3e5af1?.['manifest']??_0x3a7916,'report':_0x40229c,'normalizedManifest':_0x59f778['length']===0x1?_0x3e5af1?.[_0x4c4da4(0x1db)]:undefined,'manifests':_0x59f778};}export function importServiceManifest(_0x1d5174,_0x4cc452={}){const _0x1ff964=a42_0x396d6c,_0x1152fc=loadServiceManifestFromFile(_0x1d5174);if(!_0x1152fc['report']['ok'])throw CliErrors[_0x1ff964(0x1f5)](formatValidationFailure(_0x1152fc[_0x1ff964(0x1e4)]),_0x1ff964(0x1cf));if(_0x1152fc['manifests'][_0x1ff964(0x1a5)]===0x0)throw CliErrors[_0x1ff964(0x1f5)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x1ff964(0x1a1));const _0xfeab=readServiceRegistry(_0x4cc452),_0x1a3d42=(_0x4cc452[_0x1ff964(0x1a4)]??(()=>new Date()))()[_0x1ff964(0x1aa)](),_0x13f702=[];let _0x46a7fb=0x0,_0x63cca0=0x0;for(const _0x5b09f1 of _0x1152fc[_0x1ff964(0x1d2)]){if(!_0x5b09f1[_0x1ff964(0x1db)])continue;const _0x100846=_0x5b09f1[_0x1ff964(0x1db)][_0x1ff964(0x1c0)][_0x1ff964(0x1b7)],_0x39bd1c={'serviceCode':_0x100846,'version':_0x5b09f1[_0x1ff964(0x1db)][_0x1ff964(0x1ba)],'importedAt':_0x1a3d42,'source':{'type':_0x1ff964(0x1e8),'path':_0x1152fc[_0x1ff964(0x1a2)],'hash':_0x5b09f1['sourceHash']},'manifest':_0x5b09f1['manifest'],'normalizedManifest':_0x5b09f1[_0x1ff964(0x1db)]},_0x5b3848=_0xfeab[_0x1ff964(0x1ea)]['findIndex'](_0x4e1b80=>_0x4e1b80['serviceCode']===_0x100846);_0x5b3848>=0x0?(_0xfeab[_0x1ff964(0x1ea)][_0x5b3848]=_0x39bd1c,_0x63cca0++):(_0xfeab[_0x1ff964(0x1ea)][_0x1ff964(0x1c9)](_0x39bd1c),_0x46a7fb++),_0x13f702[_0x1ff964(0x1c9)](_0x39bd1c);}_0xfeab[_0x1ff964(0x1ea)][_0x1ff964(0x1f3)]((_0xeaa279,_0x413cfd)=>_0xeaa279[_0x1ff964(0x1f6)][_0x1ff964(0x1de)](_0x413cfd['serviceCode'])),_0xfeab[_0x1ff964(0x19f)]=_0x1a3d42;const _0x3d37e8=writeServiceRegistry(_0xfeab,_0x4cc452);return{'registryPath':_0x3d37e8,'entry':_0x13f702[0x0],'replaced':_0x13f702[_0x1ff964(0x1a5)]===0x1?_0x63cca0===0x1:_0x63cca0>0x0,'entries':_0x13f702,'imported':_0x46a7fb,'updated':_0x63cca0,'serviceCount':_0xfeab['services']['length']};}export function exportServiceManifest(_0x20c0d0,_0x3c0682,_0xfbc136={}){const _0x3c3646=a42_0x396d6c,_0x38cea4=getServiceRegistryPath(_0xfbc136),_0x39862f=getLocalServiceEntry(_0x20c0d0,_0xfbc136);if(!_0x39862f)throw CliErrors[_0x3c3646(0x1f5)](_0x3c3646(0x1ef)+_0x20c0d0,_0x3c3646(0x1a0));const _0x3ed786=resolve(_0x3c0682),_0x5f5ab3=dirname(_0x3ed786);return!existsSync(_0x5f5ab3)&&mkdirSync(_0x5f5ab3,{'recursive':!![]}),writeFileSync(_0x3ed786,JSON['stringify'](_0x39862f[_0x3c3646(0x1c6)],null,0x2)+'\x0a',{'encoding':_0x3c3646(0x1c7),'mode':0x180}),{'registryPath':_0x38cea4,'filePath':_0x3ed786,'entry':_0x39862f};}export function removeServiceManifest(_0x2c2f6d,_0x17fa87={}){const _0x37dcf7=a42_0x396d6c,_0x7b921e=readServiceRegistry(_0x17fa87),_0x4747d9=_0x2c2f6d['trim'](),_0x4cbc3b=_0x7b921e[_0x37dcf7(0x1ea)][_0x37dcf7(0x1ae)](_0x102942=>_0x102942[_0x37dcf7(0x1f6)]===_0x4747d9);if(_0x4cbc3b<0x0)throw CliErrors[_0x37dcf7(0x1f5)](_0x37dcf7(0x1ef)+_0x4747d9,_0x37dcf7(0x1a0));const [_0x5ca032]=_0x7b921e['services'][_0x37dcf7(0x1da)](_0x4cbc3b,0x1),_0x3ae495=(_0x17fa87[_0x37dcf7(0x1a4)]??(()=>new Date()))()[_0x37dcf7(0x1aa)]();_0x7b921e[_0x37dcf7(0x19f)]=_0x3ae495;const _0x14d757=writeServiceRegistry(_0x7b921e,_0x17fa87);return{'registryPath':_0x14d757,'entry':_0x5ca032,'serviceCount':_0x7b921e['services'][_0x37dcf7(0x1a5)]};}export function listLocalServices(_0x1b3e24={}){return readServiceRegistry(_0x1b3e24)['services'];}export function getLocalServiceEntry(_0x3f6e0f,_0x2fb1d8={}){const _0xf65316=a42_0x396d6c;return readServiceRegistry(_0x2fb1d8)[_0xf65316(0x1ea)][_0xf65316(0x1ca)](_0x211f65=>_0x211f65[_0xf65316(0x1f6)]===_0x3f6e0f[_0xf65316(0x1df)]());}export function listLocalServiceTrees(_0x3bb1c5={}){const _0x22037e=a42_0x396d6c;return readServiceRegistry(_0x3bb1c5)[_0x22037e(0x1ea)]['map'](_0x398ea9=>_0x398ea9[_0x22037e(0x1db)]);}export function inspectServiceRegistry(_0x5ee139={}){const _0x52b55f=a42_0x396d6c,_0x414bda=getServiceRegistryPath(_0x5ee139);if(!existsSync(_0x414bda))return emptyServiceRegistryInspection(_0x414bda,_0x52b55f(0x1c2),![]);try{const _0x87588c=readFileSync(_0x414bda,_0x52b55f(0x1c7));if(!_0x87588c[_0x52b55f(0x1df)]())return emptyServiceRegistryInspection(_0x414bda,'empty',!![]);const _0x2066d2=JSON[_0x52b55f(0x1d7)](_0x87588c);if(_0x2066d2[_0x52b55f(0x1f1)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x414bda,_0x52b55f(0x1ac),!![]),'schemaVersion':_0x2066d2[_0x52b55f(0x1f1)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x2066d2[_0x52b55f(0x1f1)])};if(!Array[_0x52b55f(0x1b1)](_0x2066d2[_0x52b55f(0x1ea)]))return{...emptyServiceRegistryInspection(_0x414bda,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2066d2[_0x52b55f(0x19f)],'message':_0x52b55f(0x1d1)};const _0xbc5f94=_0x2066d2['services'][_0x52b55f(0x1ed)](summarizeLocalServiceEntry);return{'registryPath':_0x414bda,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2066d2[_0x52b55f(0x19f)],'serviceCount':_0xbc5f94[_0x52b55f(0x1a5)],'commandCount':_0xbc5f94[_0x52b55f(0x1e3)]((_0x43e88e,_0xb92d7d)=>_0x43e88e+_0xb92d7d['commandCount'],0x0),'services':_0xbc5f94};}catch(_0x5dfb5f){return{...emptyServiceRegistryInspection(_0x414bda,_0x52b55f(0x1ac),!![]),'message':_0x5dfb5f instanceof Error?_0x5dfb5f['message']:String(_0x5dfb5f)};}}export function formatValidationFailure(_0x2524a2){const _0x1a1146=a42_0x396d6c,_0x281513=_0x2524a2[_0x1a1146(0x1f4)]['map'](_0xbb113e=>_0xbb113e[_0x1a1146(0x1e2)]+':\x20'+_0xbb113e[_0x1a1146(0x1e7)]);return _0x1a1146(0x1c1)+_0x281513[_0x1a1146(0x1ee)]('\x0a');}function extractLoadedServiceManifests(_0x15bb61,_0x12e73e){const _0x1c40d3=a42_0x396d6c;if(!isServiceRegistryLike(_0x15bb61)){const _0x52d7b8=_0x15bb61,{manifest:_0x3e3911,errors:_0x43f634}=adaptServiceTreeManifestForLegacyFramework(_0x52d7b8),_0x49d891=validateServiceTreeManifest(_0x3e3911),_0x5274eb=mergeValidationErrors(_0x49d891,_0x43f634);return[{'manifest':_0x52d7b8,'report':_0x5274eb,'normalizedManifest':_0x5274eb['ok']?normalizeServiceTreeManifest(_0x3e3911):undefined,'sourceHash':_0x12e73e}];}return _0x15bb61[_0x1c40d3(0x1ea)]['map']((_0x476978,_0x46bbcf)=>{const _0x2063ae=_0x1c40d3,_0x3ba492=isObjectRecord(_0x476978)?_0x476978[_0x2063ae(0x1c6)]:undefined,{manifest:_0x192a83,errors:_0x5558b9}=adaptServiceTreeManifestForLegacyFramework(_0x3ba492),_0x50bffa=validateServiceTreeManifest(_0x192a83),_0x4289a8=mergeValidationErrors(_0x50bffa,_0x5558b9),_0x6e72=isObjectRecord(_0x476978)&&typeof _0x476978[_0x2063ae(0x1f6)]===_0x2063ae(0x1dd)?_0x476978[_0x2063ae(0x1f6)]:undefined;return{'manifest':_0x3ba492,'report':_0x4289a8,'normalizedManifest':_0x4289a8['ok']?normalizeServiceTreeManifest(_0x192a83):undefined,'sourceHash':sha256(JSON[_0x2063ae(0x1d8)](_0x3ba492,null,0x2)+'\x0a'),'registryIndex':_0x46bbcf,'registryServiceCode':_0x6e72};});}function mergeValidationErrors(_0x47c5b2,_0x1754ba){const _0x4137f3=a42_0x396d6c,_0x15f7cd=_0x47c5b2[_0x4137f3(0x1f4)]['map'](_0x440750=>_0x440750[_0x4137f3(0x1e7)]===_0x4137f3(0x1e0)?{..._0x440750,'message':_0x4137f3(0x1dc)}:_0x440750),_0x136943=[..._0x1754ba,..._0x15f7cd];return{'ok':_0x136943[_0x4137f3(0x1a5)]===0x0,'errors':_0x136943,'warnings':_0x47c5b2[_0x4137f3(0x1a9)]};}function aggregateValidationReports(_0x48b19d){const _0x28b632=a42_0x396d6c,_0x5248ee=_0x48b19d[_0x28b632(0x1b5)](_0x1c5aef=>_0x1c5aef[_0x28b632(0x1d0)]===undefined?_0x1c5aef['report'][_0x28b632(0x1f4)]:_0x1c5aef[_0x28b632(0x1e4)][_0x28b632(0x1f4)][_0x28b632(0x1ed)](_0x126820=>({..._0x126820,'path':prefixRegistryIssuePath(_0x1c5aef['registryIndex'],_0x126820[_0x28b632(0x1e2)])}))),_0x9d7022=_0x48b19d[_0x28b632(0x1b5)](_0x50740e=>_0x50740e['registryIndex']===undefined?_0x50740e['report'][_0x28b632(0x1a9)]:_0x50740e[_0x28b632(0x1e4)][_0x28b632(0x1a9)][_0x28b632(0x1ed)](_0x4a2bd9=>({..._0x4a2bd9,'path':prefixRegistryIssuePath(_0x50740e['registryIndex'],_0x4a2bd9[_0x28b632(0x1e2)])})));return{'ok':_0x5248ee['length']===0x0,'errors':_0x5248ee,'warnings':_0x9d7022};}function prefixRegistryIssuePath(_0x3cbb90,_0x455a52){const _0x15f7f9=a42_0x396d6c;if(_0x455a52==='$')return _0x15f7f9(0x1ec)+_0x3cbb90+_0x15f7f9(0x1f2);if(_0x455a52[_0x15f7f9(0x1b2)]('$.'))return _0x15f7f9(0x1ec)+_0x3cbb90+_0x15f7f9(0x1f2)+_0x455a52[_0x15f7f9(0x1d6)](0x1);if(_0x455a52['startsWith']('$['))return _0x15f7f9(0x1ec)+_0x3cbb90+_0x15f7f9(0x1f2)+_0x455a52[_0x15f7f9(0x1d6)](0x1);return _0x15f7f9(0x1ec)+_0x3cbb90+'].manifest.'+_0x455a52;}function isServiceRegistryLike(_0x4cb75d){const _0x10f04e=a42_0x396d6c;return isObjectRecord(_0x4cb75d)&&_0x4cb75d[_0x10f04e(0x1f1)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x10f04e(0x1b1)](_0x4cb75d[_0x10f04e(0x1ea)]);}function isObjectRecord(_0x5deaeb){const _0x42de77=a42_0x396d6c;return Boolean(_0x5deaeb)&&typeof _0x5deaeb===_0x42de77(0x1af)&&!Array[_0x42de77(0x1b1)](_0x5deaeb);}function emptyServiceRegistryInspection(_0x2b4cc1,_0x27bcf6,_0x394458){return{'registryPath':_0x2b4cc1,'exists':_0x394458,'status':_0x27bcf6,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x175f0b){const _0x44367d=a42_0x396d6c,_0x86ce53=_0x175f0b[_0x44367d(0x1db)],_0x42a55e=_0x86ce53[_0x44367d(0x1e5)]['map'](_0x1c9fa4=>({'path':_0x1c9fa4[_0x44367d(0x1ce)],'description':_0x1c9fa4[_0x44367d(0x1e1)],'risk':_0x1c9fa4['risk'],'targetKind':_0x1c9fa4[_0x44367d(0x1b6)]['kind'],'targetCommand':_0x1c9fa4[_0x44367d(0x1b6)][_0x44367d(0x1b8)]}));return{'serviceCode':_0x175f0b[_0x44367d(0x1f6)],'name':_0x86ce53[_0x44367d(0x1c0)][_0x44367d(0x1d3)],'description':_0x86ce53[_0x44367d(0x1c0)][_0x44367d(0x1e1)],'version':_0x175f0b[_0x44367d(0x1ba)],'importedAt':_0x175f0b[_0x44367d(0x1a7)],'source':_0x175f0b[_0x44367d(0x1be)],'commandCount':_0x42a55e['length'],'commands':_0x42a55e};}function a42_0xb23e(){const _0x1856c6=['splice','normalizedManifest','bff\x20target\x20requires\x20functionName.','string','localeCompare','trim','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','description','path','reduce','report','commands','Invalid\x20service\x20registry\x20JSON:\x20','message','file','4LISGTk','services','CliError','$.services[','map','join','Local\x20service\x20not\x20found:\x20','9WsIHcu','schemaVersion','].manifest','sort','errors','validation','serviceCode','updatedAt','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','filePath','37972halDtO','now','length','registry','importedAt','service.json','warnings','toISOString','286176YAurEb','invalid','52148okhZCp','findIndex','object','Cannot\x20write\x20service\x20registry:\x20','isArray','startsWith','hex','430dNJCQU','flatMap','target','code','command','499633FthCYC','version','2020PqrwYN','41706IJueXI','Remove\x20or\x20migrate\x20','source','1637847MvVFby','service','Service\x20manifest\x20validation\x20failed:\x0a','missing','Invalid\x20service\x20manifest\x20JSON:\x20','homeDirName','826ROlypD','manifest','utf8','481PavZGU','push','find','sha256','ENOENT','.tmp','cliPath','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','registryIndex','services\x20must\x20be\x20an\x20array','manifests','name','Unsupported\x20service\x20registry\x20schemaVersion:\x20','1148460yYELuy','slice','parse','stringify','Service\x20manifest\x20file\x20not\x20found:\x20'];a42_0xb23e=function(){return _0x1856c6;};return a42_0xb23e();}function sha256(_0x20661a){const _0x5fee7d=a42_0x396d6c;return createHash(_0x5fee7d(0x1cb))['update'](_0x20661a)['digest'](_0x5fee7d(0x1b3));}
@@ -1 +1 @@
1
- const a43_0x5745f2=a43_0x23c6;function a43_0x1d7b(){const _0x29ab75=['path','Created\x20local\x20Skill\x20draft\x20','Refusing\x20to\x20overwrite\x20symlink:\x20','skill','skillName','skillDir','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','48501AWDSmK','target','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','2045193FaLtsj','validation','创建本地自包含的运行态\x20Skill\x20草稿','read','4017461trmWeI','files','2420RPlOhd','2020SNDfJi','force','trim','type','2226FZRQLM','3354140MPxxfc','199574fWzeqJ','WRITE','str','isSymbolicLink','bool','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','name','rendered','15IGqPgN','map','836752WKkrNu','create'];a43_0x1d7b=function(){return _0x29ab75;};return a43_0x1d7b();}(function(_0x452871,_0x4f8799){const _0x579b03=a43_0x23c6,_0x386a1b=_0x452871();while(!![]){try{const _0x4df172=-parseInt(_0x579b03(0x172))/0x1*(-parseInt(_0x579b03(0x16a))/0x2)+-parseInt(_0x579b03(0x15d))/0x3+-parseInt(_0x579b03(0x169))/0x4+parseInt(_0x579b03(0x163))/0x5*(parseInt(_0x579b03(0x168))/0x6)+-parseInt(_0x579b03(0x161))/0x7+parseInt(_0x579b03(0x174))/0x8+-parseInt(_0x579b03(0x15a))/0x9*(-parseInt(_0x579b03(0x164))/0xa);if(_0x4df172===_0x4f8799)break;else _0x386a1b['push'](_0x386a1b['shift']());}catch(_0x362a88){_0x386a1b['push'](_0x386a1b['shift']());}}}(a43_0x1d7b,0xbd4b8));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a43_0x5745f2(0x179),'command':a43_0x5745f2(0x175),'description':a43_0x5745f2(0x15f),'risk':a43_0x5745f2(0x160),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x4f2df4){const _0xac97e3=a43_0x5745f2,_0x33cbc5=buildSkillCreatePlan(_0x4f2df4['str']('name'),_0x4f2df4['str'](_0xac97e3(0x167)),_0x4f2df4['str'](_0xac97e3(0x15b)));return{'method':_0xac97e3(0x16b),'url':_0x33cbc5[_0xac97e3(0x158)],'body':{'skillName':_0x33cbc5[_0xac97e3(0x171)][_0xac97e3(0x157)],'type':_0x33cbc5[_0xac97e3(0x171)]['type'],'selfContained':!![],'files':_0x33cbc5[_0xac97e3(0x171)][_0xac97e3(0x162)][_0xac97e3(0x173)](_0x5220dd=>_0x5220dd[_0xac97e3(0x176)])},'description':_0xac97e3(0x15c)};},async 'execute'(_0x223f3e){const _0x1f5008=a43_0x5745f2,_0x24264e=buildSkillCreatePlan(_0x223f3e['str'](_0x1f5008(0x170)),_0x223f3e[_0x1f5008(0x16c)](_0x1f5008(0x167)),_0x223f3e[_0x1f5008(0x16c)](_0x1f5008(0x15b)));return writeSkillDraft(_0x24264e,_0x223f3e[_0x1f5008(0x16e)](_0x1f5008(0x165))),{'ok':!![],'data':{'skillName':_0x24264e[_0x1f5008(0x171)][_0x1f5008(0x157)],'type':_0x24264e[_0x1f5008(0x171)]['type'],'dir':_0x24264e[_0x1f5008(0x158)],'files':_0x24264e[_0x1f5008(0x171)][_0x1f5008(0x162)][_0x1f5008(0x173)](_0x47c02a=>_0x47c02a[_0x1f5008(0x176)])},'message':_0x1f5008(0x177)+_0x24264e[_0x1f5008(0x171)]['skillName']};}};function buildSkillCreatePlan(_0xe259c3,_0x3038db,_0x26515b){const _0x4656a3=a43_0x5745f2,_0x5309eb=_0x3038db[_0x4656a3(0x166)](),_0x30b3de=renderSkillTemplate({'skillName':_0xe259c3,'type':_0x5309eb});!_0x5309eb&&writeCliSideChannelLine(_0x4656a3(0x159));const _0x3e7cbf=resolve(normalizeSkillTarget(_0x26515b));return{'rendered':_0x30b3de,'targetRoot':_0x3e7cbf,'skillDir':resolve(_0x3e7cbf,_0x30b3de[_0x4656a3(0x157)])};}function a43_0x23c6(_0x1a5137,_0x5d4712){_0x1a5137=_0x1a5137-0x157;const _0x1d7b4d=a43_0x1d7b();let _0x23c648=_0x1d7b4d[_0x1a5137];return _0x23c648;}function normalizeSkillTarget(_0x1ff972){const _0x38c01a=a43_0x5745f2;return(_0x1ff972||DEFAULT_SKILL_TARGET)[_0x38c01a(0x166)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x37e359,_0x4b6b02){const _0x42e30e=a43_0x5745f2;if(existsSync(_0x37e359[_0x42e30e(0x158)])){const _0x244b02=lstatSync(_0x37e359['skillDir']);if(!_0x244b02['isDirectory']()||_0x244b02[_0x42e30e(0x16d)]())throw CliErrors[_0x42e30e(0x15e)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x37e359[_0x42e30e(0x158)]);if(!_0x4b6b02)throw CliErrors[_0x42e30e(0x15e)]('Skill\x20directory\x20already\x20exists:\x20'+_0x37e359['skillDir'],_0x42e30e(0x16f));}for(const _0x304368 of _0x37e359[_0x42e30e(0x171)][_0x42e30e(0x162)]){const _0x1adca3=resolve(_0x37e359['skillDir'],_0x304368[_0x42e30e(0x176)]),_0x4b88b9=dirname(_0x1adca3);mkdirSync(_0x4b88b9,{'recursive':!![]});if(existsSync(_0x1adca3)&&lstatSync(_0x1adca3)['isSymbolicLink']())throw CliErrors[_0x42e30e(0x15e)](_0x42e30e(0x178)+_0x1adca3);writeFileSync(_0x1adca3,_0x304368['content'],'utf8');}}
1
+ const a43_0x4116a5=a43_0x20f0;function a43_0x20f0(_0x5e7bff,_0x1f133e){_0x5e7bff=_0x5e7bff-0xe1;const _0x47047e=a43_0x4704();let _0x20f0dd=_0x47047e[_0x5e7bff];return _0x20f0dd;}(function(_0x2be82b,_0x4e6499){const _0x10581f=a43_0x20f0,_0xeb29e6=_0x2be82b();while(!![]){try{const _0x1c9ff7=-parseInt(_0x10581f(0xf9))/0x1+parseInt(_0x10581f(0xe8))/0x2*(-parseInt(_0x10581f(0xf4))/0x3)+parseInt(_0x10581f(0xea))/0x4+-parseInt(_0x10581f(0xfa))/0x5+parseInt(_0x10581f(0xf0))/0x6+parseInt(_0x10581f(0xf1))/0x7*(parseInt(_0x10581f(0xf3))/0x8)+parseInt(_0x10581f(0xe5))/0x9;if(_0x1c9ff7===_0x4e6499)break;else _0xeb29e6['push'](_0xeb29e6['shift']());}catch(_0x1fe9a9){_0xeb29e6['push'](_0xeb29e6['shift']());}}}(a43_0x4704,0xae6e2));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';function a43_0x4704(){const _0x8a1ab2=['rendered','isDirectory','Skill\x20directory\x20already\x20exists:\x20','isSymbolicLink','12930813FrCwRc','Refusing\x20to\x20overwrite\x20symlink:\x20','path','150MgFbrG','map','2782948VMdQzy','str','创建本地自包含的运行态\x20Skill\x20草稿','trim','files','validation','7987512iIVhPM','70MXTnfy','name','197528BhKaEJ','23514BaNPOA','WRITE','force','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','1381204vKQRin','5135680dyaRGc','create','utf8','target','content','read','bool','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','skillDir','skill','type','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','skillName'];a43_0x4704=function(){return _0x8a1ab2;};return a43_0x4704();}import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a43_0x4116a5(0x103),'command':a43_0x4116a5(0xfb),'description':a43_0x4116a5(0xec),'risk':a43_0x4116a5(0xff),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x420e2a){const _0x572f10=a43_0x4116a5,_0x9001c=buildSkillCreatePlan(_0x420e2a['str'](_0x572f10(0xf2)),_0x420e2a[_0x572f10(0xeb)](_0x572f10(0x104)),_0x420e2a[_0x572f10(0xeb)](_0x572f10(0xfd)));return{'method':_0x572f10(0xf5),'url':_0x9001c[_0x572f10(0x102)],'body':{'skillName':_0x9001c[_0x572f10(0xe1)]['skillName'],'type':_0x9001c[_0x572f10(0xe1)][_0x572f10(0x104)],'selfContained':!![],'files':_0x9001c[_0x572f10(0xe1)][_0x572f10(0xee)][_0x572f10(0xe9)](_0x2799b0=>_0x2799b0[_0x572f10(0xe7)])},'description':_0x572f10(0xf7)};},async 'execute'(_0x179f42){const _0x546e9a=a43_0x4116a5,_0x13aed5=buildSkillCreatePlan(_0x179f42[_0x546e9a(0xeb)](_0x546e9a(0xf2)),_0x179f42[_0x546e9a(0xeb)](_0x546e9a(0x104)),_0x179f42['str'](_0x546e9a(0xfd)));return writeSkillDraft(_0x13aed5,_0x179f42[_0x546e9a(0x100)](_0x546e9a(0xf6))),{'ok':!![],'data':{'skillName':_0x13aed5[_0x546e9a(0xe1)][_0x546e9a(0x106)],'type':_0x13aed5[_0x546e9a(0xe1)][_0x546e9a(0x104)],'dir':_0x13aed5[_0x546e9a(0x102)],'files':_0x13aed5[_0x546e9a(0xe1)]['files'][_0x546e9a(0xe9)](_0x2de122=>_0x2de122[_0x546e9a(0xe7)])},'message':'Created\x20local\x20Skill\x20draft\x20'+_0x13aed5[_0x546e9a(0xe1)][_0x546e9a(0x106)]};}};function buildSkillCreatePlan(_0x5b3c3f,_0xdea71,_0xe58dff){const _0x11cef3=a43_0x4116a5,_0x3f8265=_0xdea71['trim'](),_0x2a5b6a=renderSkillTemplate({'skillName':_0x5b3c3f,'type':_0x3f8265});!_0x3f8265&&writeCliSideChannelLine(_0x11cef3(0x101));const _0x491655=resolve(normalizeSkillTarget(_0xe58dff));return{'rendered':_0x2a5b6a,'targetRoot':_0x491655,'skillDir':resolve(_0x491655,_0x2a5b6a[_0x11cef3(0x106)])};}function normalizeSkillTarget(_0x4af42e){const _0x27f8ec=a43_0x4116a5;return(_0x4af42e||DEFAULT_SKILL_TARGET)[_0x27f8ec(0xed)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x2e7576,_0x5eafca){const _0x319e05=a43_0x4116a5;if(existsSync(_0x2e7576[_0x319e05(0x102)])){const _0x8ae8b6=lstatSync(_0x2e7576[_0x319e05(0x102)]);if(!_0x8ae8b6[_0x319e05(0xe2)]()||_0x8ae8b6['isSymbolicLink']())throw CliErrors[_0x319e05(0xef)](_0x319e05(0xf8)+_0x2e7576[_0x319e05(0x102)]);if(!_0x5eafca)throw CliErrors[_0x319e05(0xef)](_0x319e05(0xe3)+_0x2e7576[_0x319e05(0x102)],_0x319e05(0x105));}for(const _0x416845 of _0x2e7576['rendered'][_0x319e05(0xee)]){const _0x9a2e93=resolve(_0x2e7576['skillDir'],_0x416845[_0x319e05(0xe7)]),_0x528c22=dirname(_0x9a2e93);mkdirSync(_0x528c22,{'recursive':!![]});if(existsSync(_0x9a2e93)&&lstatSync(_0x9a2e93)[_0x319e05(0xe4)]())throw CliErrors[_0x319e05(0xef)](_0x319e05(0xe6)+_0x9a2e93);writeFileSync(_0x9a2e93,_0x416845[_0x319e05(0xfe)],_0x319e05(0xfc));}}
@@ -1 +1 @@
1
- const a44_0x25fd45=a44_0x49b5;(function(_0x2ae274,_0x260c6b){const _0x990c0f=a44_0x49b5,_0x4cd81d=_0x2ae274();while(!![]){try{const _0x40f220=parseInt(_0x990c0f(0x13b))/0x1*(parseInt(_0x990c0f(0x113))/0x2)+parseInt(_0x990c0f(0x11f))/0x3*(-parseInt(_0x990c0f(0x134))/0x4)+-parseInt(_0x990c0f(0x10a))/0x5*(-parseInt(_0x990c0f(0x121))/0x6)+-parseInt(_0x990c0f(0x12a))/0x7+parseInt(_0x990c0f(0x114))/0x8*(parseInt(_0x990c0f(0x11e))/0x9)+parseInt(_0x990c0f(0x119))/0xa*(-parseInt(_0x990c0f(0x120))/0xb)+parseInt(_0x990c0f(0x10e))/0xc*(parseInt(_0x990c0f(0x11d))/0xd);if(_0x40f220===_0x260c6b)break;else _0x4cd81d['push'](_0x4cd81d['shift']());}catch(_0x1b3458){_0x4cd81d['push'](_0x4cd81d['shift']());}}}(a44_0x2c8f,0xb7d0f));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';import{readRequiredSkillDiagram}from'../diagram.js';function a44_0x49b5(_0x3422cf,_0x56e29d){_0x3422cf=_0x3422cf-0x108;const _0x2c8f9a=a44_0x2c8f();let _0x49b5b3=_0x2c8f9a[_0x3422cf];return _0x49b5b3;}function a44_0x2c8f(){const _0x3ca72b=['appCode','38839nPGaTu','created','read','30wGdEtO','diagram-file','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','skill','1356FXbkfu','str','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','company','skillCode','10ABsTky','4756408lGezqw','source-fingerprint','为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','version','diagram-push','36070OuzlLA','expectedDiagramRevision','found','personal','204971CTgFVi','9xvUkpA','1131690QfpNaF','1089vejxga','1101036ihPQWc','unchanged','Created','\x20is\x20unchanged.','expected-diagram-revision','isInteger','scope','skill-code','将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','10008313hPQruo','action','Updated','validation',';\x20next\x20write\x20expects\x20revision\x20','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','write','\x20Skill\x20diagram\x20for\x20','trim',';\x20first\x20write\x20expects\x20revision\x20','12AhmpVS','diagram-validate','Skill\x20diagram\x20for\x20','Skill\x20diagram\x20validation\x20passed\x20for\x20','Found\x20Skill\x20diagram\x20for\x20','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.'];a44_0x2c8f=function(){return _0x3ca72b;};return a44_0x2c8f();}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(_0x37cac8){const _0x3923bf=a44_0x49b5,_0x42b0d1=_0x37cac8[_0x3923bf(0x10f)](_0x3923bf(0x128))[_0x3923bf(0x132)](),_0x28f153=_0x37cac8[_0x3923bf(0x10f)]('version')[_0x3923bf(0x132)](),_0x4f6692=_0x37cac8[_0x3923bf(0x10f)](_0x3923bf(0x127));if(!_0x42b0d1||!_0x28f153||_0x4f6692!==_0x3923bf(0x11c)&&_0x4f6692!==_0x3923bf(0x111))throw CliErrors[_0x3923bf(0x12d)]('--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.');return{'skillCode':_0x42b0d1,'version':_0x28f153,'scope':_0x4f6692};}async function readDiagramWriteInput(_0x49acc5){const _0x21dae5=a44_0x49b5,_0x333a6d=_0x49acc5['num'](_0x21dae5(0x125)),_0x4d2841=_0x49acc5['str'](_0x21dae5(0x115))[_0x21dae5(0x132)]();if(!Number[_0x21dae5(0x126)](_0x333a6d)||_0x333a6d<0x0)throw CliErrors['validation']('--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.');if(!/^sha256:[0-9a-f]{64}$/['test'](_0x4d2841))throw CliErrors[_0x21dae5(0x12d)](_0x21dae5(0x139));return{'expectedDiagramRevision':_0x333a6d,'sourceFingerprint':_0x4d2841,'diagram':await readRequiredSkillDiagram(_0x49acc5[_0x21dae5(0x10f)](_0x21dae5(0x10b)))};}export const diagramValidateCommand={'service':a44_0x25fd45(0x10d),'command':a44_0x25fd45(0x135),'description':a44_0x25fd45(0x110),'risk':a44_0x25fd45(0x109),'flags':WRITE_FLAGS,async 'execute'(_0x2fbdbe){const _0x1343af=a44_0x25fd45,_0x5770f9=readDiagramTarget(_0x2fbdbe),_0x44edf7=await validateRuntimeSkillVersionDiagram(_0x2fbdbe[_0x1343af(0x13a)],_0x5770f9[_0x1343af(0x112)],_0x5770f9['version'],_0x5770f9['scope'],await readDiagramWriteInput(_0x2fbdbe));return{'ok':!![],'data':_0x44edf7,'message':_0x1343af(0x137)+_0x5770f9[_0x1343af(0x112)]+'@'+_0x5770f9[_0x1343af(0x117)]+'.'};}};export const diagramPushCommand={'service':a44_0x25fd45(0x10d),'command':a44_0x25fd45(0x118),'description':a44_0x25fd45(0x116),'risk':a44_0x25fd45(0x130),'confirmationDescription':a44_0x25fd45(0x129),'flags':WRITE_FLAGS,async 'execute'(_0x46d391){const _0x17e117=a44_0x25fd45,_0x499a46=readDiagramTarget(_0x46d391),_0x35e75c=await putRuntimeSkillVersionDiagram(_0x46d391['appCode'],_0x499a46[_0x17e117(0x112)],_0x499a46['version'],_0x499a46[_0x17e117(0x127)],await readDiagramWriteInput(_0x46d391));return{'ok':!![],'data':_0x35e75c,'message':_0x35e75c[_0x17e117(0x12b)]===_0x17e117(0x122)?_0x17e117(0x136)+_0x499a46[_0x17e117(0x112)]+'@'+_0x499a46['version']+_0x17e117(0x124):(_0x35e75c[_0x17e117(0x12b)]===_0x17e117(0x108)?_0x17e117(0x123):_0x17e117(0x12c))+_0x17e117(0x131)+_0x499a46[_0x17e117(0x112)]+'@'+_0x499a46[_0x17e117(0x117)]+'.'};}};export const diagramShowCommand={'service':'skill','command':'diagram-show','description':a44_0x25fd45(0x12f),'risk':a44_0x25fd45(0x109),'flags':TARGET_FLAGS,async 'execute'(_0x674027){const _0x419dfc=a44_0x25fd45,_0x311b09=readDiagramTarget(_0x674027),_0x1b1e45=await getRuntimeSkillVersionDiagram(_0x674027[_0x419dfc(0x13a)],_0x311b09[_0x419dfc(0x112)],_0x311b09[_0x419dfc(0x117)],_0x311b09[_0x419dfc(0x127)]);return{'ok':!![],'data':_0x1b1e45,'message':_0x1b1e45[_0x419dfc(0x11b)]?_0x419dfc(0x138)+_0x311b09[_0x419dfc(0x112)]+'@'+_0x311b09[_0x419dfc(0x117)]+_0x419dfc(0x12e)+_0x1b1e45['expectedDiagramRevision']+'.':_0x419dfc(0x10c)+_0x311b09[_0x419dfc(0x112)]+'@'+_0x311b09[_0x419dfc(0x117)]+_0x419dfc(0x133)+_0x1b1e45[_0x419dfc(0x11a)]+'.'};}};
1
+ const a44_0x4ad64e=a44_0x13ae;(function(_0x28b59c,_0x2cbf70){const _0x39bcba=a44_0x13ae,_0x471b5c=_0x28b59c();while(!![]){try{const _0x59e49f=parseInt(_0x39bcba(0x1ba))/0x1+parseInt(_0x39bcba(0x1b6))/0x2*(parseInt(_0x39bcba(0x1cd))/0x3)+parseInt(_0x39bcba(0x1bc))/0x4+parseInt(_0x39bcba(0x1c7))/0x5+parseInt(_0x39bcba(0x1bb))/0x6*(-parseInt(_0x39bcba(0x1ca))/0x7)+parseInt(_0x39bcba(0x1bd))/0x8+-parseInt(_0x39bcba(0x1c9))/0x9;if(_0x59e49f===_0x2cbf70)break;else _0x471b5c['push'](_0x471b5c['shift']());}catch(_0x4e5487){_0x471b5c['push'](_0x471b5c['shift']());}}}(a44_0x1f6b,0xcdf66));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';function a44_0x13ae(_0x2a4951,_0x1cd8c7){_0x2a4951=_0x2a4951-0x1a4;const _0x1f6bf9=a44_0x1f6b();let _0x13ae27=_0x1f6bf9[_0x2a4951];return _0x13ae27;}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(_0x57c6d1){const _0x417208=a44_0x13ae,_0x30c7b8=_0x57c6d1[_0x417208(0x1b5)]('skill-code')[_0x417208(0x1a8)](),_0x5a8057=_0x57c6d1[_0x417208(0x1b5)]('version')[_0x417208(0x1a8)](),_0x1d3983=_0x57c6d1[_0x417208(0x1b5)](_0x417208(0x1b4));if(!_0x30c7b8||!_0x5a8057||_0x1d3983!==_0x417208(0x1b8)&&_0x1d3983!=='company')throw CliErrors['validation'](_0x417208(0x1cb));return{'skillCode':_0x30c7b8,'version':_0x5a8057,'scope':_0x1d3983};}async function readDiagramWriteInput(_0x55ee22){const _0x2660a5=a44_0x13ae,_0x3c8697=_0x55ee22[_0x2660a5(0x1c4)]('expected-diagram-revision'),_0xaed545=_0x55ee22[_0x2660a5(0x1b5)](_0x2660a5(0x1b3))['trim']();if(!Number[_0x2660a5(0x1cc)](_0x3c8697)||_0x3c8697<0x0)throw CliErrors[_0x2660a5(0x1cf)](_0x2660a5(0x1a4));if(!/^sha256:[0-9a-f]{64}$/[_0x2660a5(0x1c8)](_0xaed545))throw CliErrors[_0x2660a5(0x1cf)](_0x2660a5(0x1ce));return{'expectedDiagramRevision':_0x3c8697,'sourceFingerprint':_0xaed545,'diagram':await readRequiredSkillDiagram(_0x55ee22[_0x2660a5(0x1b5)](_0x2660a5(0x1c2)))};}function a44_0x1f6b(){const _0x543963=['scope','str','70EZUYEi',';\x20first\x20write\x20expects\x20revision\x20','personal','Created','907706NkdiWq','57366ViFHdB','1157888yOGlWg','1728200GAxVxj','\x20Skill\x20diagram\x20for\x20','Found\x20Skill\x20diagram\x20for\x20','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','unchanged','diagram-file','skill','num','write','diagram-show','1938340iBUaHD','test','9632853CELDoS','714fMFrhW','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','isInteger','93282dUDFWJ','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','validation','created','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.',';\x20next\x20write\x20expects\x20revision\x20','diagram-validate','skillCode','trim','expectedDiagramRevision','found','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','appCode','read','为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','version','Skill\x20diagram\x20validation\x20passed\x20for\x20','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','action','source-fingerprint'];a44_0x1f6b=function(){return _0x543963;};return a44_0x1f6b();}export const diagramValidateCommand={'service':a44_0x4ad64e(0x1c3),'command':a44_0x4ad64e(0x1a6),'description':a44_0x4ad64e(0x1b1),'risk':a44_0x4ad64e(0x1ad),'flags':WRITE_FLAGS,async 'execute'(_0x4b5efe){const _0x57b23e=a44_0x4ad64e,_0x33ba16=readDiagramTarget(_0x4b5efe),_0xdfae0f=await validateRuntimeSkillVersionDiagram(_0x4b5efe[_0x57b23e(0x1ac)],_0x33ba16[_0x57b23e(0x1a7)],_0x33ba16['version'],_0x33ba16['scope'],await readDiagramWriteInput(_0x4b5efe));return{'ok':!![],'data':_0xdfae0f,'message':_0x57b23e(0x1b0)+_0x33ba16[_0x57b23e(0x1a7)]+'@'+_0x33ba16[_0x57b23e(0x1af)]+'.'};}};export const diagramPushCommand={'service':a44_0x4ad64e(0x1c3),'command':'diagram-push','description':a44_0x4ad64e(0x1ae),'risk':a44_0x4ad64e(0x1c5),'confirmationDescription':'将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','flags':WRITE_FLAGS,async 'execute'(_0x58da01){const _0x2f6ef6=a44_0x4ad64e,_0x2eb375=readDiagramTarget(_0x58da01),_0x280fc4=await putRuntimeSkillVersionDiagram(_0x58da01[_0x2f6ef6(0x1ac)],_0x2eb375['skillCode'],_0x2eb375[_0x2f6ef6(0x1af)],_0x2eb375[_0x2f6ef6(0x1b4)],await readDiagramWriteInput(_0x58da01));return{'ok':!![],'data':_0x280fc4,'message':_0x280fc4[_0x2f6ef6(0x1b2)]===_0x2f6ef6(0x1c1)?'Skill\x20diagram\x20for\x20'+_0x2eb375['skillCode']+'@'+_0x2eb375[_0x2f6ef6(0x1af)]+'\x20is\x20unchanged.':(_0x280fc4[_0x2f6ef6(0x1b2)]===_0x2f6ef6(0x1d0)?_0x2f6ef6(0x1b9):'Updated')+_0x2f6ef6(0x1be)+_0x2eb375[_0x2f6ef6(0x1a7)]+'@'+_0x2eb375['version']+'.'};}};export const diagramShowCommand={'service':a44_0x4ad64e(0x1c3),'command':a44_0x4ad64e(0x1c6),'description':a44_0x4ad64e(0x1c0),'risk':a44_0x4ad64e(0x1ad),'flags':TARGET_FLAGS,async 'execute'(_0x395565){const _0x972eca=a44_0x4ad64e,_0x33412c=readDiagramTarget(_0x395565),_0x587901=await getRuntimeSkillVersionDiagram(_0x395565[_0x972eca(0x1ac)],_0x33412c[_0x972eca(0x1a7)],_0x33412c[_0x972eca(0x1af)],_0x33412c['scope']);return{'ok':!![],'data':_0x587901,'message':_0x587901[_0x972eca(0x1aa)]?_0x972eca(0x1bf)+_0x33412c[_0x972eca(0x1a7)]+'@'+_0x33412c[_0x972eca(0x1af)]+_0x972eca(0x1a5)+_0x587901[_0x972eca(0x1a9)]+'.':_0x972eca(0x1ab)+_0x33412c['skillCode']+'@'+_0x33412c['version']+_0x972eca(0x1b7)+_0x587901[_0x972eca(0x1a9)]+'.'};}};
@@ -1 +1 @@
1
- const a45_0x2a64b8=a45_0x31b4;(function(_0x13e566,_0x57cf25){const _0x8694cd=a45_0x31b4,_0x51b92a=_0x13e566();while(!![]){try{const _0x5b8533=parseInt(_0x8694cd(0x8d))/0x1*(parseInt(_0x8694cd(0x7c))/0x2)+-parseInt(_0x8694cd(0x68))/0x3*(-parseInt(_0x8694cd(0x81))/0x4)+parseInt(_0x8694cd(0x8f))/0x5+parseInt(_0x8694cd(0x80))/0x6+-parseInt(_0x8694cd(0x65))/0x7+-parseInt(_0x8694cd(0x7d))/0x8+parseInt(_0x8694cd(0x69))/0x9*(parseInt(_0x8694cd(0x79))/0xa);if(_0x5b8533===_0x57cf25)break;else _0x51b92a['push'](_0x51b92a['shift']());}catch(_0x2684ab){_0x51b92a['push'](_0x51b92a['shift']());}}}(a45_0x1a5f,0xbb876));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';function a45_0x1a5f(){const _0x2dfd46=['Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','company','\x20personal\x20and\x20','skillCode','scope','unchanged','trim','version','read','push','62910ZoEVin','\x20company\x20Skill(s).','606180dXrgAP','all','reduce','code','../../../skills/runtime-skill-sync.js','10378970eslYsw','project','action','1791szIpiP','1864170OEnvBS','length','accessKey','created','updated','skillRoots','bool','includes','install','flatMap','map','str','personal','envName','global','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','50fzwHvC','filter','appCode','10HDmmYR','9253112ItZIwZ','force','Installed\x20','2929836JUYpaO','9700apvtPt','skipped'];a45_0x1a5f=function(){return _0x2dfd46;};return a45_0x1a5f();}function a45_0x31b4(_0xaf786,_0x9db806){_0xaf786=_0xaf786-0x65;const _0x1a5f90=a45_0x1a5f();let _0x31b424=_0x1a5f90[_0xaf786];return _0x31b424;}import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':'skill','command':a45_0x2a64b8(0x71),'description':a45_0x2a64b8(0x78),'risk':a45_0x2a64b8(0x8b),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x16a3b2){return syncRuntimeSkills(_0x16a3b2);}};async function syncRuntimeSkills(_0x70a832){const _0x3c8ee2=a45_0x2a64b8,{downloadRuntimeSkillPackage:_0x4efe49,listRuntimeSkills:_0x16e34e}=await import('../../../core/api-client.js'),{linkEffectiveRuntimeSkills:_0xf9cffa,materializeRuntimeSkill:_0x34cca7,pruneStaleRuntimeSkillCache:_0xfed17f,pruneStaleRuntimeSkillLinks:_0x5c4c25,resolveRuntimeSkillInstallTarget:_0x303e70}=await import(_0x3c8ee2(0x93)),_0x3c5d38=_0x70a832[_0x3c8ee2(0x74)](_0x3c8ee2(0x92)),_0x25540c=normalizeSyncScopes(_0x70a832[_0x3c8ee2(0x74)]('scope')),_0x55dd9f=_0x70a832[_0x3c8ee2(0x76)]??'production',_0x5050fa=_0x70a832[_0x3c8ee2(0x6b)],_0x131af3=_0x70a832[_0x3c8ee2(0x6f)](_0x3c8ee2(0x7e));if(!_0x5050fa)throw CliErrors['authRequired'](_0x3c8ee2(0x83));const _0x2f08e0=_0x303e70(_0x70a832['appCode'],_0x70a832[_0x3c8ee2(0x6f)](_0x3c8ee2(0x66))?_0x3c8ee2(0x66):_0x3c8ee2(0x77)),_0xc065af=_0x303e70(_0x70a832[_0x3c8ee2(0x7b)],_0x2f08e0[_0x3c8ee2(0x87)]===_0x3c8ee2(0x66)?_0x3c8ee2(0x77):'project'),_0x4b6b58=await Promise[_0x3c8ee2(0x90)](_0x25540c[_0x3c8ee2(0x73)](_0x597218=>_0x16e34e({'appCode':_0x70a832[_0x3c8ee2(0x7b)],'scope':_0x597218,'code':_0x3c5d38[_0x3c8ee2(0x89)]()||undefined}))),_0x286183=_0x25540c[_0x3c8ee2(0x70)](_0x3c8ee2(0x75))?_0x4b6b58['flatMap']((_0x2d16bb,_0x94419e)=>_0x25540c[_0x94419e]===_0x3c8ee2(0x75)?_0x2d16bb['personal']:[]):[],_0x3ae431=_0x25540c[_0x3c8ee2(0x70)](_0x3c8ee2(0x84))?_0x4b6b58[_0x3c8ee2(0x72)]((_0x38d9c0,_0x4e213c)=>_0x25540c[_0x4e213c]==='company'?_0x38d9c0[_0x3c8ee2(0x84)]:[]):[],_0xc81d11=new Set([..._0x286183[_0x3c8ee2(0x73)](_0xfcee8c=>_0xfcee8c[_0x3c8ee2(0x86)]?.['trim']())[_0x3c8ee2(0x7a)](_0x5867fd=>Boolean(_0x5867fd)),..._0x3ae431[_0x3c8ee2(0x73)](_0xee3840=>_0xee3840[_0x3c8ee2(0x86)]?.[_0x3c8ee2(0x89)]())[_0x3c8ee2(0x7a)](_0x49e7e3=>Boolean(_0x49e7e3))]),_0x292b4c=_0x3c5d38['trim']()?[_0x3c5d38['trim']()]:undefined,_0xc2ee0a=_0x25540c[_0x3c8ee2(0x6a)]===0x2&&_0x25540c[_0x3c8ee2(0x70)](_0x3c8ee2(0x75))&&_0x25540c[_0x3c8ee2(0x70)]('company'),_0x4c58c7=_0xc2ee0a?_0x5c4c25(_0x2f08e0,_0xc81d11,_0x292b4c):[],_0x56f727=_0xfed17f({'env':_0x55dd9f,'accessKey':_0x5050fa,'appCode':_0x70a832[_0x3c8ee2(0x7b)],'activeSkillCodes':_0xc81d11,'pruneSkillCodes':_0x292b4c,'scopes':_0x25540c,'protectedLinkRoots':_0xc065af['skillRoots']}),_0x5ca198=[];for(const _0x23afbd of _0x286183){_0x5ca198[_0x3c8ee2(0x8c)](_0x34cca7(_0x23afbd,'personal',{'env':_0x55dd9f,'accessKey':_0x5050fa,'appCode':_0x70a832[_0x3c8ee2(0x7b)],'force':_0x131af3,'packageBytes':await downloadSkillPackage(_0x23afbd,_0x3c8ee2(0x75),_0x70a832[_0x3c8ee2(0x7b)],_0x4efe49)}));}for(const _0x3d760c of _0x3ae431){_0x5ca198[_0x3c8ee2(0x8c)](_0x34cca7(_0x3d760c,_0x3c8ee2(0x84),{'env':_0x55dd9f,'accessKey':_0x5050fa,'appCode':_0x70a832['appCode'],'force':_0x131af3,'packageBytes':await downloadSkillPackage(_0x3d760c,'company',_0x70a832[_0x3c8ee2(0x7b)],_0x4efe49)}));}const _0x4bbf1f=_0xf9cffa(_0x5ca198,_0x2f08e0),_0x2bc5d1=countLinkActions(_0x4bbf1f);return{'ok':!![],'data':{'appCode':_0x70a832[_0x3c8ee2(0x7b)],..._0x2f08e0[_0x3c8ee2(0x87)]===_0x3c8ee2(0x66)?{'installTarget':{'scope':_0x2f08e0[_0x3c8ee2(0x87)],'skillRoots':[..._0x2f08e0[_0x3c8ee2(0x6e)]]}}:{},'personal':_0x286183[_0x3c8ee2(0x6a)],'company':_0x3ae431['length'],'materialized':_0x5ca198[_0x3c8ee2(0x6a)],'links':{'total':_0x4bbf1f[_0x3c8ee2(0x6a)],'created':_0x2bc5d1[_0x3c8ee2(0x6c)]??0x0,'updated':_0x2bc5d1[_0x3c8ee2(0x6d)]??0x0,'unchanged':_0x2bc5d1[_0x3c8ee2(0x88)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x4c58c7[_0x3c8ee2(0x7a)](_0x12442b=>_0x12442b[_0x3c8ee2(0x67)]==='removed')[_0x3c8ee2(0x6a)],'cacheDirs':_0x56f727[_0x3c8ee2(0x7a)](_0x4c8c38=>_0x4c8c38[_0x3c8ee2(0x67)]==='removed')[_0x3c8ee2(0x6a)],'skipped':[..._0x4c58c7,..._0x56f727][_0x3c8ee2(0x7a)](_0x5cbdd5=>_0x5cbdd5[_0x3c8ee2(0x67)]===_0x3c8ee2(0x82))['length']},'skills':{'personal':_0x286183['map'](summarizeRuntimeSkill),'company':_0x3ae431['map'](summarizeRuntimeSkill)}},'message':_0x3c8ee2(0x7f)+_0x286183['length']+_0x3c8ee2(0x85)+_0x3ae431[_0x3c8ee2(0x6a)]+_0x3c8ee2(0x8e)};}async function downloadSkillPackage(_0x175da6,_0x2b6387,_0x5f3fb9,_0x4c0c43){const _0x4c705c=a45_0x2a64b8,_0xc07b0b=_0x175da6[_0x4c705c(0x8a)]?.[_0x4c705c(0x89)]();return _0xc07b0b?_0x4c0c43(_0x2b6387,_0x175da6['skillCode'],_0x5f3fb9,_0xc07b0b):_0x4c0c43(_0x2b6387,_0x175da6['skillCode'],_0x5f3fb9);}function countLinkActions(_0x1170df){const _0x1f675f=a45_0x2a64b8;return _0x1170df[_0x1f675f(0x91)]((_0x12f99c,_0x40d4ef)=>{const _0x11dd1e=_0x1f675f;return _0x12f99c[_0x40d4ef[_0x11dd1e(0x67)]]=(_0x12f99c[_0x40d4ef[_0x11dd1e(0x67)]]??0x0)+0x1,_0x12f99c;},{});}
1
+ const a45_0x5df074=a45_0x26f9;(function(_0x70979f,_0x2502a4){const _0x269c81=a45_0x26f9,_0x3c7390=_0x70979f();while(!![]){try{const _0x17c5a5=parseInt(_0x269c81(0x12e))/0x1*(-parseInt(_0x269c81(0x12c))/0x2)+parseInt(_0x269c81(0x133))/0x3+-parseInt(_0x269c81(0x126))/0x4+parseInt(_0x269c81(0x134))/0x5*(parseInt(_0x269c81(0x132))/0x6)+parseInt(_0x269c81(0x13a))/0x7+-parseInt(_0x269c81(0x12a))/0x8*(-parseInt(_0x269c81(0x128))/0x9)+parseInt(_0x269c81(0x131))/0xa;if(_0x17c5a5===_0x2502a4)break;else _0x3c7390['push'](_0x3c7390['shift']());}catch(_0x336fd4){_0x3c7390['push'](_0x3c7390['shift']());}}}(a45_0x18c8,0x9abb6));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';function a45_0x26f9(_0xdc52a,_0x1771ec){_0xdc52a=_0xdc52a-0x114;const _0x18c8a6=a45_0x18c8();let _0x26f95d=_0x18c8a6[_0xdc52a];return _0x26f95d;}import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':a45_0x5df074(0x13f),'command':'install','description':'Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','risk':a45_0x5df074(0x139),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x1773b4){return syncRuntimeSkills(_0x1773b4);}};async function syncRuntimeSkills(_0x1ee368){const _0x7bf78b=a45_0x5df074,{downloadRuntimeSkillPackage:_0x4308d9,listRuntimeSkills:_0x135746}=await import(_0x7bf78b(0x12b)),{linkEffectiveRuntimeSkills:_0x54592f,materializeRuntimeSkill:_0x4f352,pruneStaleRuntimeSkillCache:_0xd608e4,pruneStaleRuntimeSkillLinks:_0x3444d1,resolveRuntimeSkillInstallTarget:_0x11c18b}=await import('../../../skills/runtime-skill-sync.js'),_0x104c5=_0x1ee368[_0x7bf78b(0x11f)](_0x7bf78b(0x141)),_0x3e87fc=normalizeSyncScopes(_0x1ee368[_0x7bf78b(0x11f)](_0x7bf78b(0x13e))),_0xba9dad=_0x1ee368[_0x7bf78b(0x123)]??_0x7bf78b(0x114),_0x11b3c7=_0x1ee368[_0x7bf78b(0x122)],_0x3c962b=_0x1ee368['bool'](_0x7bf78b(0x119));if(!_0x11b3c7)throw CliErrors[_0x7bf78b(0x11a)](_0x7bf78b(0x120));const _0x3c4534=_0x11c18b(_0x1ee368[_0x7bf78b(0x127)],_0x1ee368['bool'](_0x7bf78b(0x12d))?_0x7bf78b(0x12d):_0x7bf78b(0x13c)),_0x5567f9=_0x11c18b(_0x1ee368[_0x7bf78b(0x127)],_0x3c4534[_0x7bf78b(0x13e)]===_0x7bf78b(0x12d)?_0x7bf78b(0x13c):_0x7bf78b(0x12d)),_0x1a243b=await Promise[_0x7bf78b(0x115)](_0x3e87fc[_0x7bf78b(0x130)](_0x5489f4=>_0x135746({'appCode':_0x1ee368[_0x7bf78b(0x127)],'scope':_0x5489f4,'code':_0x104c5['trim']()||undefined}))),_0x2334b7=_0x3e87fc[_0x7bf78b(0x116)]('personal')?_0x1a243b['flatMap']((_0x216b89,_0x509403)=>_0x3e87fc[_0x509403]===_0x7bf78b(0x140)?_0x216b89[_0x7bf78b(0x140)]:[]):[],_0x1da4f8=_0x3e87fc[_0x7bf78b(0x116)]('company')?_0x1a243b[_0x7bf78b(0x135)]((_0x455339,_0x4afc0e)=>_0x3e87fc[_0x4afc0e]===_0x7bf78b(0x117)?_0x455339[_0x7bf78b(0x117)]:[]):[],_0x41732f=new Set([..._0x2334b7[_0x7bf78b(0x130)](_0x4cb504=>_0x4cb504['skillCode']?.[_0x7bf78b(0x13b)]())[_0x7bf78b(0x121)](_0x53b822=>Boolean(_0x53b822)),..._0x1da4f8[_0x7bf78b(0x130)](_0x16997b=>_0x16997b['skillCode']?.[_0x7bf78b(0x13b)]())[_0x7bf78b(0x121)](_0x11e9ad=>Boolean(_0x11e9ad))]),_0x666f41=_0x104c5[_0x7bf78b(0x13b)]()?[_0x104c5[_0x7bf78b(0x13b)]()]:undefined,_0x4a7f88=_0x3e87fc[_0x7bf78b(0x11c)]===0x2&&_0x3e87fc['includes']('personal')&&_0x3e87fc[_0x7bf78b(0x116)](_0x7bf78b(0x117)),_0x646a0c=_0x4a7f88?_0x3444d1(_0x3c4534,_0x41732f,_0x666f41):[],_0x540b8a=_0xd608e4({'env':_0xba9dad,'accessKey':_0x11b3c7,'appCode':_0x1ee368[_0x7bf78b(0x127)],'activeSkillCodes':_0x41732f,'pruneSkillCodes':_0x666f41,'scopes':_0x3e87fc,'protectedLinkRoots':_0x5567f9['skillRoots']}),_0x1c637d=[];for(const _0x2a4c6a of _0x2334b7){_0x1c637d[_0x7bf78b(0x124)](_0x4f352(_0x2a4c6a,_0x7bf78b(0x140),{'env':_0xba9dad,'accessKey':_0x11b3c7,'appCode':_0x1ee368[_0x7bf78b(0x127)],'force':_0x3c962b,'packageBytes':await downloadSkillPackage(_0x2a4c6a,_0x7bf78b(0x140),_0x1ee368[_0x7bf78b(0x127)],_0x4308d9)}));}for(const _0x3bb11a of _0x1da4f8){_0x1c637d[_0x7bf78b(0x124)](_0x4f352(_0x3bb11a,'company',{'env':_0xba9dad,'accessKey':_0x11b3c7,'appCode':_0x1ee368[_0x7bf78b(0x127)],'force':_0x3c962b,'packageBytes':await downloadSkillPackage(_0x3bb11a,_0x7bf78b(0x117),_0x1ee368[_0x7bf78b(0x127)],_0x4308d9)}));}const _0x53b834=_0x54592f(_0x1c637d,_0x3c4534),_0x1f7337=countLinkActions(_0x53b834);return{'ok':!![],'data':{'appCode':_0x1ee368[_0x7bf78b(0x127)],..._0x3c4534[_0x7bf78b(0x13e)]===_0x7bf78b(0x12d)?{'installTarget':{'scope':_0x3c4534['scope'],'skillRoots':[..._0x3c4534['skillRoots']]}}:{},'personal':_0x2334b7['length'],'company':_0x1da4f8[_0x7bf78b(0x11c)],'materialized':_0x1c637d[_0x7bf78b(0x11c)],'links':{'total':_0x53b834[_0x7bf78b(0x11c)],'created':_0x1f7337[_0x7bf78b(0x118)]??0x0,'updated':_0x1f7337[_0x7bf78b(0x137)]??0x0,'unchanged':_0x1f7337['unchanged']??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x646a0c['filter'](_0x458e7c=>_0x458e7c[_0x7bf78b(0x12f)]===_0x7bf78b(0x11d))[_0x7bf78b(0x11c)],'cacheDirs':_0x540b8a[_0x7bf78b(0x121)](_0x17d4f7=>_0x17d4f7['action']===_0x7bf78b(0x11d))[_0x7bf78b(0x11c)],'skipped':[..._0x646a0c,..._0x540b8a][_0x7bf78b(0x121)](_0x32160f=>_0x32160f[_0x7bf78b(0x12f)]===_0x7bf78b(0x129))[_0x7bf78b(0x11c)]},'skills':{'personal':_0x2334b7[_0x7bf78b(0x130)](summarizeRuntimeSkill),'company':_0x1da4f8[_0x7bf78b(0x130)](summarizeRuntimeSkill)}},'message':_0x7bf78b(0x138)+_0x2334b7[_0x7bf78b(0x11c)]+_0x7bf78b(0x13d)+_0x1da4f8[_0x7bf78b(0x11c)]+_0x7bf78b(0x11e)};}function a45_0x18c8(){const _0x6cead8=['version','length','removed','\x20company\x20Skill(s).','str','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','filter','accessKey','envName','push','reduce','4973216IDCNGO','appCode','431460nmtoYr','skipped','104oDMHuc','../../../core/api-client.js','38344qrMqRm','project','7BFAPHV','action','map','4655220DKyrdZ','18rbMDCp','285423vnAhua','714995tGuAPb','flatMap','skillCode','updated','Installed\x20','read','2788870ojRebD','trim','global','\x20personal\x20and\x20','scope','skill','personal','code','production','all','includes','company','created','force','authRequired'];a45_0x18c8=function(){return _0x6cead8;};return a45_0x18c8();}async function downloadSkillPackage(_0x52cc78,_0x472a25,_0x50fbc9,_0x33b8c1){const _0x40e0e3=a45_0x5df074,_0xbfaaf1=_0x52cc78[_0x40e0e3(0x11b)]?.[_0x40e0e3(0x13b)]();return _0xbfaaf1?_0x33b8c1(_0x472a25,_0x52cc78[_0x40e0e3(0x136)],_0x50fbc9,_0xbfaaf1):_0x33b8c1(_0x472a25,_0x52cc78['skillCode'],_0x50fbc9);}function countLinkActions(_0x2687f1){const _0xd09d15=a45_0x5df074;return _0x2687f1[_0xd09d15(0x125)]((_0x1281fa,_0x5b98a0)=>{const _0x58aafd=_0xd09d15;return _0x1281fa[_0x5b98a0[_0x58aafd(0x12f)]]=(_0x1281fa[_0x5b98a0[_0x58aafd(0x12f)]]??0x0)+0x1,_0x1281fa;},{});}
@@ -1 +1 @@
1
- const a46_0x5c9907=a46_0x2780;(function(_0x406ba7,_0x239c31){const _0x13babb=a46_0x2780,_0x550f04=_0x406ba7();while(!![]){try{const _0x2ce7ba=-parseInt(_0x13babb(0xb3))/0x1*(-parseInt(_0x13babb(0x9f))/0x2)+-parseInt(_0x13babb(0xab))/0x3*(-parseInt(_0x13babb(0xb4))/0x4)+parseInt(_0x13babb(0x99))/0x5+parseInt(_0x13babb(0xb0))/0x6+-parseInt(_0x13babb(0x96))/0x7*(parseInt(_0x13babb(0xa1))/0x8)+-parseInt(_0x13babb(0xb2))/0x9+parseInt(_0x13babb(0x98))/0xa*(-parseInt(_0x13babb(0xae))/0xb);if(_0x2ce7ba===_0x239c31)break;else _0x550f04['push'](_0x550f04['shift']());}catch(_0x435f3a){_0x550f04['push'](_0x550f04['shift']());}}}(a46_0x25d1,0x5e0e9));import{CliErrors}from'../../../errors.js';function a46_0x25d1(){const _0x54c092=['trim','scope','personal','global','list','6OvaIys','\x20remote\x20Skill(s).','company','2529769HUAmGL','Listed\x20','3152232HVJuXA','../../../core/api-client.js','5533470eXFnZj','4188HFHSym','207520nEtPQZ','code','../../../skills/runtime-skill-sync.js','length','7kNbKhT','appCode','10ICYFYH','3124900BcHnog','project','skill','str','remote','authRequired','276iEqkuu','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','4815920niCdiZ','\x20local\x20Skill(s).','map','builtin','filter'];a46_0x25d1=function(){return _0x54c092;};return a46_0x25d1();}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_0x5c9907(0x9b),'command':a46_0x5c9907(0xaa),'description':a46_0x5c9907(0xa0),'risk':'read','flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x5207a0){const _0x17cea7=a46_0x5c9907,_0x2ecaf8=_0x5207a0[_0x17cea7(0x9c)](_0x17cea7(0xb5)),_0x3eb38b=normalizeListScope(_0x5207a0[_0x17cea7(0x9c)](_0x17cea7(0xa7)));if(_0x5207a0['bool']('local')){const _0x2aad54=_0x5207a0['accessKey'];if(!_0x2aad54)throw CliErrors[_0x17cea7(0x9e)]();const {listLocalRuntimeSkills:_0x40b3c3,resolveRuntimeSkillInstallTarget:_0x253fac}=await import(_0x17cea7(0x94)),_0x1f863c=_0x253fac(_0x5207a0[_0x17cea7(0x97)],_0x5207a0['bool'](_0x17cea7(0x9a))?_0x17cea7(0x9a):_0x17cea7(0xa9)),_0x500b8b=_0x40b3c3({'env':_0x5207a0['envName']??'production','accessKey':_0x2aad54,'appCode':_0x5207a0[_0x17cea7(0x97)],'scopes':listScopeToRuntimeScopes(_0x3eb38b),'code':_0x2ecaf8[_0x17cea7(0xa6)]()||undefined},_0x1f863c),_0x4197f8=groupLocalRuntimeSkills(_0x500b8b);return{'ok':!![],'data':{'appCode':_0x5207a0[_0x17cea7(0x97)],'source':'local',..._0x1f863c[_0x17cea7(0xa7)]===_0x17cea7(0x9a)?{'installScope':_0x1f863c['scope']}:{},'scope':_0x3eb38b,'total':_0x500b8b[_0x17cea7(0x95)],'personal':_0x4197f8['personal'][_0x17cea7(0x95)],'company':_0x4197f8[_0x17cea7(0xad)]['length'],'items':_0x500b8b[_0x17cea7(0xa3)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x4197f8[_0x17cea7(0xa8)][_0x17cea7(0xa3)](summarizeLocalRuntimeSkill),'company':_0x4197f8[_0x17cea7(0xad)]['map'](summarizeLocalRuntimeSkill)}},'message':_0x17cea7(0xaf)+_0x500b8b[_0x17cea7(0x95)]+_0x17cea7(0xa2)};}const {listRuntimeSkills:_0x2eab3e}=await import(_0x17cea7(0xb1)),_0x287ac9=await _0x2eab3e({'appCode':_0x5207a0[_0x17cea7(0x97)],'scope':listScopeToRemoteScope(_0x3eb38b),'code':_0x2ecaf8[_0x17cea7(0xa6)]()||undefined}),_0x11dfa7=shouldListScope(_0x3eb38b,_0x17cea7(0xa8))?_0x287ac9[_0x17cea7(0xa8)]??[]:[],_0x32b543=shouldListScope(_0x3eb38b,_0x17cea7(0xad))?_0x287ac9[_0x17cea7(0xad)]??[]:[],_0x1f8755=[..._0x11dfa7,..._0x32b543];return{'ok':!![],'data':{'appCode':_0x5207a0[_0x17cea7(0x97)],'source':_0x17cea7(0x9d),'scope':_0x3eb38b,'total':_0x1f8755[_0x17cea7(0x95)],'personal':_0x11dfa7[_0x17cea7(0x95)],'company':_0x32b543[_0x17cea7(0x95)],'items':_0x1f8755[_0x17cea7(0xa3)](summarizeRuntimeSkill),'skills':{'personal':_0x11dfa7[_0x17cea7(0xa3)](summarizeRuntimeSkill),'company':_0x32b543[_0x17cea7(0xa3)](summarizeRuntimeSkill)}},'message':_0x17cea7(0xaf)+_0x1f8755[_0x17cea7(0x95)]+_0x17cea7(0xac)};}};function a46_0x2780(_0x123dae,_0x3052dc){_0x123dae=_0x123dae-0x94;const _0x25d1ea=a46_0x25d1();let _0x2780=_0x25d1ea[_0x123dae];return _0x2780;}function groupLocalRuntimeSkills(_0x517afc){const _0x3c51fe=a46_0x5c9907;return{'personal':_0x517afc[_0x3c51fe(0xa5)](_0x5ecb17=>_0x5ecb17['scope']==='personal'),'company':_0x517afc[_0x3c51fe(0xa5)](_0x55bd7c=>_0x55bd7c['scope']===_0x3c51fe(0xad)),'builtin':_0x517afc['filter'](_0x227d40=>_0x227d40['scope']===_0x3c51fe(0xa4))};}
1
+ const a46_0x445ce6=a46_0x2873;(function(_0x7ce7d6,_0x344a59){const _0x519b4e=a46_0x2873,_0x3f97e4=_0x7ce7d6();while(!![]){try{const _0x19e927=-parseInt(_0x519b4e(0x192))/0x1+-parseInt(_0x519b4e(0x19c))/0x2+-parseInt(_0x519b4e(0x196))/0x3+-parseInt(_0x519b4e(0x19e))/0x4*(-parseInt(_0x519b4e(0x187))/0x5)+-parseInt(_0x519b4e(0x19b))/0x6+parseInt(_0x519b4e(0x18a))/0x7*(-parseInt(_0x519b4e(0x18c))/0x8)+parseInt(_0x519b4e(0x189))/0x9*(parseInt(_0x519b4e(0x18e))/0xa);if(_0x19e927===_0x344a59)break;else _0x3f97e4['push'](_0x3f97e4['shift']());}catch(_0x4db714){_0x3f97e4['push'](_0x3f97e4['shift']());}}}(a46_0x6f5c,0x62b33));function a46_0x2873(_0x400556,_0x550244){_0x400556=_0x400556-0x182;const _0x6f5c91=a46_0x6f5c();let _0x2873d4=_0x6f5c91[_0x400556];return _0x2873d4;}import{CliErrors}from'../../../errors.js';import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':'skill','command':a46_0x445ce6(0x18f),'description':a46_0x445ce6(0x183),'risk':a46_0x445ce6(0x195),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x6db728){const _0x22d803=a46_0x445ce6,_0x33ef3b=_0x6db728['str']('code'),_0x1d6f59=normalizeListScope(_0x6db728['str'](_0x22d803(0x191)));if(_0x6db728[_0x22d803(0x19f)]('local')){const _0x1c2374=_0x6db728[_0x22d803(0x190)];if(!_0x1c2374)throw CliErrors[_0x22d803(0x19a)]();const {listLocalRuntimeSkills:_0x36122a,resolveRuntimeSkillInstallTarget:_0x2a76e5}=await import('../../../skills/runtime-skill-sync.js'),_0x1c5171=_0x2a76e5(_0x6db728['appCode'],_0x6db728[_0x22d803(0x19f)]('project')?_0x22d803(0x193):_0x22d803(0x199)),_0xb2d11e=_0x36122a({'env':_0x6db728[_0x22d803(0x1a1)]??_0x22d803(0x194),'accessKey':_0x1c2374,'appCode':_0x6db728['appCode'],'scopes':listScopeToRuntimeScopes(_0x1d6f59),'code':_0x33ef3b['trim']()||undefined},_0x1c5171),_0x4e986b=groupLocalRuntimeSkills(_0xb2d11e);return{'ok':!![],'data':{'appCode':_0x6db728[_0x22d803(0x18d)],'source':'local',..._0x1c5171['scope']===_0x22d803(0x193)?{'installScope':_0x1c5171[_0x22d803(0x191)]}:{},'scope':_0x1d6f59,'total':_0xb2d11e[_0x22d803(0x19d)],'personal':_0x4e986b[_0x22d803(0x185)][_0x22d803(0x19d)],'company':_0x4e986b[_0x22d803(0x1a0)][_0x22d803(0x19d)],'items':_0xb2d11e[_0x22d803(0x188)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x4e986b[_0x22d803(0x185)][_0x22d803(0x188)](summarizeLocalRuntimeSkill),'company':_0x4e986b[_0x22d803(0x1a0)][_0x22d803(0x188)](summarizeLocalRuntimeSkill)}},'message':'Listed\x20'+_0xb2d11e[_0x22d803(0x19d)]+_0x22d803(0x186)};}const {listRuntimeSkills:_0x3523d3}=await import(_0x22d803(0x184)),_0x40b50d=await _0x3523d3({'appCode':_0x6db728['appCode'],'scope':listScopeToRemoteScope(_0x1d6f59),'code':_0x33ef3b[_0x22d803(0x1a2)]()||undefined}),_0x1b7dd0=shouldListScope(_0x1d6f59,_0x22d803(0x185))?_0x40b50d[_0x22d803(0x185)]??[]:[],_0x15fb43=shouldListScope(_0x1d6f59,_0x22d803(0x1a0))?_0x40b50d['company']??[]:[],_0x37ca9e=[..._0x1b7dd0,..._0x15fb43];return{'ok':!![],'data':{'appCode':_0x6db728[_0x22d803(0x18d)],'source':'remote','scope':_0x1d6f59,'total':_0x37ca9e['length'],'personal':_0x1b7dd0[_0x22d803(0x19d)],'company':_0x15fb43[_0x22d803(0x19d)],'items':_0x37ca9e[_0x22d803(0x188)](summarizeRuntimeSkill),'skills':{'personal':_0x1b7dd0[_0x22d803(0x188)](summarizeRuntimeSkill),'company':_0x15fb43[_0x22d803(0x188)](summarizeRuntimeSkill)}},'message':_0x22d803(0x197)+_0x37ca9e[_0x22d803(0x19d)]+_0x22d803(0x182)};}};function a46_0x6f5c(){const _0x410bf7=['production','read','2247294OeJopJ','Listed\x20','filter','global','authRequired','4653600OkceuS','1073114wxwNfO','length','276652CNCXhO','bool','company','envName','trim','\x20remote\x20Skill(s).','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','../../../core/api-client.js','personal','\x20local\x20Skill(s).','15ZnvRKD','map','918306DSqyeY','370601tZQFrU','builtin','64NrWDtY','appCode','290TuuJPd','list','accessKey','scope','277401lndNLD','project'];a46_0x6f5c=function(){return _0x410bf7;};return a46_0x6f5c();}function groupLocalRuntimeSkills(_0x322681){const _0x210d45=a46_0x445ce6;return{'personal':_0x322681[_0x210d45(0x198)](_0x525da7=>_0x525da7[_0x210d45(0x191)]==='personal'),'company':_0x322681[_0x210d45(0x198)](_0x4ccbd1=>_0x4ccbd1[_0x210d45(0x191)]===_0x210d45(0x1a0)),'builtin':_0x322681[_0x210d45(0x198)](_0x56a30a=>_0x56a30a[_0x210d45(0x191)]===_0x210d45(0x18b))};}
@@ -1 +1 @@
1
- const a47_0x1e8aa8=a47_0x4f18;(function(_0x56408e,_0x1ce18a){const _0x9371e7=a47_0x4f18,_0x18a6cb=_0x56408e();while(!![]){try{const _0x1145eb=parseInt(_0x9371e7(0x13a))/0x1+-parseInt(_0x9371e7(0x139))/0x2*(parseInt(_0x9371e7(0x130))/0x3)+parseInt(_0x9371e7(0x134))/0x4+-parseInt(_0x9371e7(0x136))/0x5+-parseInt(_0x9371e7(0x13c))/0x6*(-parseInt(_0x9371e7(0x137))/0x7)+-parseInt(_0x9371e7(0x133))/0x8+parseInt(_0x9371e7(0x138))/0x9*(parseInt(_0x9371e7(0x132))/0xa);if(_0x1145eb===_0x1ce18a)break;else _0x18a6cb['push'](_0x18a6cb['shift']());}catch(_0x35e30b){_0x18a6cb['push'](_0x18a6cb['shift']());}}}(a47_0x1a04,0xd3bdb));function a47_0x4f18(_0x2532a2,_0x3ed351){_0x2532a2=_0x2532a2-0x130;const _0x1a04fd=a47_0x1a04();let _0x4f18c9=_0x1a04fd[_0x2532a2];return _0x4f18c9;}import{CONFIRM_WARNINGS_FLAG,DIAGRAM_FILE_FLAG,DIR_FLAG,PUSH_SCOPE_FLAG}from'../flags.js';import{skillPushDryRun,skillPushExecute}from'../push-execute.js';export const pushCommand={'service':a47_0x1e8aa8(0x135),'command':a47_0x1e8aa8(0x131),'description':'将本地\x20Skill\x20目录推送到个人范围,或提交公司范围版本审核','risk':a47_0x1e8aa8(0x13b),'confirmationDescription':'将读取本地\x20Skill\x20内容:个人范围会立即保存并生效,公司范围会提交一个新版本进入审核。确认界面不会展示目录路径或\x20Skill\x20正文。','flags':[DIR_FLAG,DIAGRAM_FILE_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};function a47_0x1a04(){const _0x117f8c=['132iUzyiN','741669qRQcIM','push','935210jsKhQh','4095504IjYTFf','1230908jaxFGY','skill','5756680GxVxqu','411523neXXht','36vANvKS','2HkWamE','802619vAPgII','write'];a47_0x1a04=function(){return _0x117f8c;};return a47_0x1a04();}
1
+ const a47_0x526717=a47_0x3532;function a47_0x3532(_0x2f54d6,_0x21738a){_0x2f54d6=_0x2f54d6-0x115;const _0xff1fd3=a47_0xff1f();let _0x35320a=_0xff1fd3[_0x2f54d6];return _0x35320a;}(function(_0x5d8f53,_0x4be201){const _0x564542=a47_0x3532,_0x606042=_0x5d8f53();while(!![]){try{const _0x1338ec=parseInt(_0x564542(0x117))/0x1+-parseInt(_0x564542(0x119))/0x2+parseInt(_0x564542(0x11c))/0x3*(-parseInt(_0x564542(0x11f))/0x4)+parseInt(_0x564542(0x11b))/0x5*(parseInt(_0x564542(0x115))/0x6)+parseInt(_0x564542(0x11d))/0x7+-parseInt(_0x564542(0x11e))/0x8+-parseInt(_0x564542(0x118))/0x9;if(_0x1338ec===_0x4be201)break;else _0x606042['push'](_0x606042['shift']());}catch(_0x3b96e6){_0x606042['push'](_0x606042['shift']());}}}(a47_0xff1f,0x86120));import{CONFIRM_WARNINGS_FLAG,DIAGRAM_FILE_FLAG,DIR_FLAG,PUSH_SCOPE_FLAG}from'../flags.js';function a47_0xff1f(){const _0x38193a=['将本地\x20Skill\x20目录推送到个人范围,或提交公司范围版本审核','2538385OHkLNW','207156VPoyZV','5698854yTTvhL','2734496peMhZl','60pmJjnY','push','write','12lbPRXf','将读取本地\x20Skill\x20内容:个人范围会立即保存并生效,公司范围会提交一个新版本进入审核。确认界面不会展示目录路径或\x20Skill\x20正文。','1017635bqMKQZ','6545115vqdNQI','386264kZxxAT'];a47_0xff1f=function(){return _0x38193a;};return a47_0xff1f();}import{skillPushDryRun,skillPushExecute}from'../push-execute.js';export const pushCommand={'service':'skill','command':a47_0x526717(0x120),'description':a47_0x526717(0x11a),'risk':a47_0x526717(0x121),'confirmationDescription':a47_0x526717(0x116),'flags':[DIR_FLAG,DIAGRAM_FILE_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};
@@ -1 +1 @@
1
- function a48_0x58b8(){const _0x3308b3=['9441800pioTlw','46345MeVhdg','1053717TovOOl','752013NJAoKH','366KxGGrd','Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','Skill\x20validation\x20passed.','str','40tPvEfL','28691916Mkcctb','3RRLaIY','17324wagvlO','strict','36ZueYDF','dir','630732hPjwhc','skill','read','warnings','bool'];a48_0x58b8=function(){return _0x3308b3;};return a48_0x58b8();}function a48_0x2274(_0x8a1453,_0x2ceb2a){_0x8a1453=_0x8a1453-0xe7;const _0x58b8d5=a48_0x58b8();let _0x227475=_0x58b8d5[_0x8a1453];return _0x227475;}const a48_0x32ef66=a48_0x2274;(function(_0x5ed76b,_0x192d96){const _0x1eef1c=a48_0x2274,_0x39155b=_0x5ed76b();while(!![]){try{const _0x21bee2=-parseInt(_0x1eef1c(0xed))/0x1*(-parseInt(_0x1eef1c(0xef))/0x2)+parseInt(_0x1eef1c(0xec))/0x3*(-parseInt(_0x1eef1c(0xf1))/0x4)+parseInt(_0x1eef1c(0xf7))/0x5*(-parseInt(_0x1eef1c(0xfa))/0x6)+-parseInt(_0x1eef1c(0xf8))/0x7+-parseInt(_0x1eef1c(0xea))/0x8*(parseInt(_0x1eef1c(0xf9))/0x9)+-parseInt(_0x1eef1c(0xf6))/0xa+parseInt(_0x1eef1c(0xeb))/0xb;if(_0x21bee2===_0x192d96)break;else _0x39155b['push'](_0x39155b['shift']());}catch(_0x56355e){_0x39155b['push'](_0x39155b['shift']());}}}(a48_0x58b8,0xa7238));import{DIR_FLAG,STRICT_FLAG}from'../flags.js';import{throwIfSkillValidationFailed,validateSkillDirectory}from'../validate.js';export const validateCommand={'service':a48_0x32ef66(0xf2),'command':'validate','description':a48_0x32ef66(0xe7),'risk':a48_0x32ef66(0xf3),'requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x39dfd5){const _0x2aae7e=a48_0x32ef66,_0x539f78=_0x39dfd5[_0x2aae7e(0xf5)](_0x2aae7e(0xee)),_0x415e1c=validateSkillDirectory(_0x39dfd5[_0x2aae7e(0xe9)]('dir'),{'strict':_0x539f78});return throwIfSkillValidationFailed(_0x415e1c,_0x539f78),{'ok':!![],'data':{'dir':_0x415e1c[_0x2aae7e(0xf0)],'type':_0x415e1c['type'],'errors':_0x415e1c['errors'],'warnings':_0x415e1c[_0x2aae7e(0xf4)]},'message':_0x2aae7e(0xe8)};}};
1
+ const a48_0x1c2699=a48_0x2d94;(function(_0x334755,_0x203c53){const _0x11e151=a48_0x2d94,_0x4f80bb=_0x334755();while(!![]){try{const _0x230c27=-parseInt(_0x11e151(0x103))/0x1+-parseInt(_0x11e151(0x10a))/0x2*(parseInt(_0x11e151(0x101))/0x3)+parseInt(_0x11e151(0x102))/0x4+parseInt(_0x11e151(0xff))/0x5*(parseInt(_0x11e151(0xfe))/0x6)+parseInt(_0x11e151(0x10b))/0x7*(parseInt(_0x11e151(0x108))/0x8)+parseInt(_0x11e151(0xfc))/0x9+-parseInt(_0x11e151(0xfb))/0xa;if(_0x230c27===_0x203c53)break;else _0x4f80bb['push'](_0x4f80bb['shift']());}catch(_0x515680){_0x4f80bb['push'](_0x4f80bb['shift']());}}}(a48_0x15d7,0x71abe));function a48_0x15d7(){const _0x457c42=['2326636KfOFqn','238172jLaIIk','bool','Skill\x20validation\x20passed.','type','Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','2026600JbZNoU','read','4jdIUtU','7NOSRTD','str','strict','1083830VaTqYN','2694168VaBfan','validate','126dannBN','97675YbIoEt','warnings','1098627oJZGcP'];a48_0x15d7=function(){return _0x457c42;};return a48_0x15d7();}import{DIR_FLAG,STRICT_FLAG}from'../flags.js';function a48_0x2d94(_0x2dde8d,_0x4391bf){_0x2dde8d=_0x2dde8d-0xfa;const _0x15d724=a48_0x15d7();let _0x2d9408=_0x15d724[_0x2dde8d];return _0x2d9408;}import{throwIfSkillValidationFailed,validateSkillDirectory}from'../validate.js';export const validateCommand={'service':'skill','command':a48_0x1c2699(0xfd),'description':a48_0x1c2699(0x107),'risk':a48_0x1c2699(0x109),'requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x4772ae){const _0x1208f3=a48_0x1c2699,_0x5bff80=_0x4772ae[_0x1208f3(0x104)](_0x1208f3(0xfa)),_0x452718=validateSkillDirectory(_0x4772ae[_0x1208f3(0x10c)]('dir'),{'strict':_0x5bff80});return throwIfSkillValidationFailed(_0x452718,_0x5bff80),{'ok':!![],'data':{'dir':_0x452718['dir'],'type':_0x452718[_0x1208f3(0x106)],'errors':_0x452718['errors'],'warnings':_0x452718[_0x1208f3(0x100)]},'message':_0x1208f3(0x105)};}};
@@ -1 +1 @@
1
- (function(_0x10c147,_0x31db12){const _0x33deda=a49_0x2c0b,_0x7a1bd7=_0x10c147();while(!![]){try{const _0x4bd54a=parseInt(_0x33deda(0x7a))/0x1*(parseInt(_0x33deda(0x6d))/0x2)+-parseInt(_0x33deda(0x70))/0x3+parseInt(_0x33deda(0x72))/0x4*(-parseInt(_0x33deda(0x73))/0x5)+parseInt(_0x33deda(0x84))/0x6+parseInt(_0x33deda(0x7e))/0x7+parseInt(_0x33deda(0x71))/0x8*(parseInt(_0x33deda(0x83))/0x9)+-parseInt(_0x33deda(0x6f))/0xa*(parseInt(_0x33deda(0x6c))/0xb);if(_0x4bd54a===_0x31db12)break;else _0x7a1bd7['push'](_0x7a1bd7['shift']());}catch(_0x108a73){_0x7a1bd7['push'](_0x7a1bd7['shift']());}}}(a49_0x38ee,0xe2396));import{existsSync,readFileSync,realpathSync,statSync}from'node:fs';import{resolve}from'node:path';function a49_0x38ee(){const _0x1b3520=['3887055TQxyGx','7302870TjRgxt','isFile','Mermaid\x20syntax\x20validation\x20failed.','2167HySnTm','2ZnVrBg','Mermaid\x20flowchart\x20file\x20not\x20found:\x20','76930qHRHRn','1444242mqSZCE','8BBiFky','1256LxEQtE','6790BHUKvQ','mermaid','parse','validation','replace','trim','Generate\x20a\x20Mermaid\x20flowchart\x20and\x20pass\x20--diagram-file\x20<path>,\x20or\x20use\x20--diagram-file\x20-\x20for\x20standard\x20input.','127647LnOvMg','utf8','window','default','11012918XOIwqZ','diagram','document','Mermaid\x20flowchart\x20path\x20is\x20not\x20a\x20regular\x20file:\x20','defineProperties'];a49_0x38ee=function(){return _0x1b3520;};return a49_0x38ee();}import{JSDOM}from'jsdom';import{CliErrors}from'../../errors.js';let mermaidApiPromise;export async function readRequiredSkillDiagram(_0x261981){const _0x2e0f94=a49_0x2c0b;return(await readRequiredSkillDiagramInput(_0x261981))[_0x2e0f94(0x7f)];}export async function readRequiredSkillDiagramInput(_0x1a72cf){const _0x11ae2c=a49_0x2c0b,_0x2115e8=_0x1a72cf[_0x11ae2c(0x78)]();if(!_0x2115e8)throw CliErrors[_0x11ae2c(0x76)]('--diagram-file\x20is\x20required\x20when\x20publishing\x20a\x20Skill\x20version.',_0x11ae2c(0x79));let _0x496f37,_0x396000;if(_0x2115e8==='-')try{_0x496f37=readFileSync(0x0,_0x11ae2c(0x7b));}catch{throw CliErrors['validation']('Unable\x20to\x20read\x20Mermaid\x20flowchart\x20from\x20standard\x20input.');}else{const _0x33a0f4=resolve(_0x2115e8);if(!existsSync(_0x33a0f4))throw CliErrors[_0x11ae2c(0x76)](_0x11ae2c(0x6e)+_0x33a0f4);if(!statSync(_0x33a0f4)[_0x11ae2c(0x6a)]())throw CliErrors[_0x11ae2c(0x76)](_0x11ae2c(0x81)+_0x33a0f4);_0x396000=realpathSync(_0x33a0f4),_0x496f37=readFileSync(_0x396000,_0x11ae2c(0x7b));}return{'diagram':{'schemaVersion':0x1,'mermaid':await validateAndCanonicalizeMermaid(_0x496f37)},'sourceFilePath':_0x396000};}export async function validateAndCanonicalizeMermaid(_0x2b19e5){const _0x45ad74=a49_0x2c0b,_0x9f674a=_0x2b19e5[_0x45ad74(0x77)](/\r\n/g,'\x0a')['replace'](/\r/g,'\x0a')[_0x45ad74(0x77)](/\n+$/,'')+'\x0a';try{const _0x33d376=await loadMermaidApi();await _0x33d376[_0x45ad74(0x75)](_0x9f674a);}catch{throw diagramValidationError();}return _0x9f674a;}function loadMermaidApi(){return mermaidApiPromise??=((async()=>{const _0x36b538=a49_0x2c0b;if(!(_0x36b538(0x7c)in globalThis)||!(_0x36b538(0x80)in globalThis)){const _0x234f09=new JSDOM('');Object[_0x36b538(0x82)](globalThis,{'window':{'configurable':!![],'value':_0x234f09[_0x36b538(0x7c)]},'document':{'configurable':!![],'value':_0x234f09['window'][_0x36b538(0x80)]}});}return(await import(_0x36b538(0x74)))[_0x36b538(0x7d)];})()),mermaidApiPromise;}function a49_0x2c0b(_0x22eb8b,_0x521104){_0x22eb8b=_0x22eb8b-0x6a;const _0x38ee77=a49_0x38ee();let _0x2c0b7b=_0x38ee77[_0x22eb8b];return _0x2c0b7b;}function diagramValidationError(){const _0x33bcd9=a49_0x2c0b;return CliErrors[_0x33bcd9(0x76)](_0x33bcd9(0x6b),'Fix\x20the\x20Mermaid\x20syntax\x20reported\x20by\x20your\x20editor\x20or\x20preview\x20tool,\x20then\x20retry\x20with\x20the\x20same\x20file.');}
1
+ function a49_0x1289(_0x1a6934,_0x3e06ca){_0x1a6934=_0x1a6934-0x121;const _0x5c31c6=a49_0x5c31();let _0x128943=_0x5c31c6[_0x1a6934];return _0x128943;}(function(_0x338f17,_0x40c16c){const _0x1c3273=a49_0x1289,_0x49995c=_0x338f17();while(!![]){try{const _0x193772=parseInt(_0x1c3273(0x12b))/0x1*(parseInt(_0x1c3273(0x126))/0x2)+parseInt(_0x1c3273(0x137))/0x3*(parseInt(_0x1c3273(0x13a))/0x4)+-parseInt(_0x1c3273(0x123))/0x5*(parseInt(_0x1c3273(0x12f))/0x6)+-parseInt(_0x1c3273(0x124))/0x7*(parseInt(_0x1c3273(0x125))/0x8)+-parseInt(_0x1c3273(0x12d))/0x9+parseInt(_0x1c3273(0x12c))/0xa+-parseInt(_0x1c3273(0x12e))/0xb*(-parseInt(_0x1c3273(0x139))/0xc);if(_0x193772===_0x40c16c)break;else _0x49995c['push'](_0x49995c['shift']());}catch(_0x2e82b9){_0x49995c['push'](_0x49995c['shift']());}}}(a49_0x5c31,0x5d4ee));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(_0xc54f57){const _0x3a7b47=a49_0x1289;return(await readRequiredSkillDiagramInput(_0xc54f57))[_0x3a7b47(0x122)];}function a49_0x5c31(){const _0x55d19c=['114712SSLjOR','4670VQklET','parse','Mermaid\x20syntax\x20validation\x20failed.','trim','document','65IagoRg','5839460hEmbex','4037454ggaiaw','44WnXPHz','766638KLOsdd','window','Unable\x20to\x20read\x20Mermaid\x20flowchart\x20from\x20standard\x20input.','--diagram-file\x20is\x20required\x20when\x20publishing\x20a\x20Skill\x20version.','Generate\x20a\x20Mermaid\x20flowchart\x20and\x20pass\x20--diagram-file\x20<path>,\x20or\x20use\x20--diagram-file\x20-\x20for\x20standard\x20input.','isFile','replace','validation','22989dMkTCr','Fix\x20the\x20Mermaid\x20syntax\x20reported\x20by\x20your\x20editor\x20or\x20preview\x20tool,\x20then\x20retry\x20with\x20the\x20same\x20file.','2205312sxWGmU','32lufxnD','mermaid','Mermaid\x20flowchart\x20file\x20not\x20found:\x20','diagram','5yfigTd','280PVtKiK'];a49_0x5c31=function(){return _0x55d19c;};return a49_0x5c31();}export async function readRequiredSkillDiagramInput(_0x23acb0){const _0x14f464=a49_0x1289,_0x33a9b6=_0x23acb0[_0x14f464(0x129)]();if(!_0x33a9b6)throw CliErrors[_0x14f464(0x136)](_0x14f464(0x132),_0x14f464(0x133));let _0x182ab5,_0x56c763;if(_0x33a9b6==='-')try{_0x182ab5=readFileSync(0x0,'utf8');}catch{throw CliErrors[_0x14f464(0x136)](_0x14f464(0x131));}else{const _0x3e8541=resolve(_0x33a9b6);if(!existsSync(_0x3e8541))throw CliErrors[_0x14f464(0x136)](_0x14f464(0x121)+_0x3e8541);if(!statSync(_0x3e8541)[_0x14f464(0x134)]())throw CliErrors[_0x14f464(0x136)]('Mermaid\x20flowchart\x20path\x20is\x20not\x20a\x20regular\x20file:\x20'+_0x3e8541);_0x56c763=realpathSync(_0x3e8541),_0x182ab5=readFileSync(_0x56c763,'utf8');}return{'diagram':{'schemaVersion':0x1,'mermaid':await validateAndCanonicalizeMermaid(_0x182ab5)},'sourceFilePath':_0x56c763};}export async function validateAndCanonicalizeMermaid(_0x1e41db){const _0x3f821f=a49_0x1289,_0x54bbf1=_0x1e41db['replace'](/\r\n/g,'\x0a')['replace'](/\r/g,'\x0a')[_0x3f821f(0x135)](/\n+$/,'')+'\x0a';try{const _0x20b0c8=await loadMermaidApi();await _0x20b0c8[_0x3f821f(0x127)](_0x54bbf1);}catch{throw diagramValidationError();}return _0x54bbf1;}function loadMermaidApi(){return mermaidApiPromise??=((async()=>{const _0x14a3bb=a49_0x1289;if(!(_0x14a3bb(0x130)in globalThis)||!('document'in globalThis)){const _0x280360=new JSDOM('');Object['defineProperties'](globalThis,{'window':{'configurable':!![],'value':_0x280360[_0x14a3bb(0x130)]},'document':{'configurable':!![],'value':_0x280360[_0x14a3bb(0x130)][_0x14a3bb(0x12a)]}});}return(await import(_0x14a3bb(0x13b)))['default'];})()),mermaidApiPromise;}function diagramValidationError(){const _0x31fe1a=a49_0x1289;return CliErrors[_0x31fe1a(0x136)](_0x31fe1a(0x128),_0x31fe1a(0x138));}