@lovrabet/lovrabet-cli 2.2.4-beta.3 → 2.2.4

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 (158) hide show
  1. package/lib/cli.js +1 -1
  2. package/lib/commands/api-doc/index.js +1 -1
  3. package/lib/commands/app/cache.js +1 -1
  4. package/lib/commands/app/definitions.js +1 -1
  5. package/lib/commands/app/eligibility.js +1 -1
  6. package/lib/commands/app/mock-loader.js +1 -1
  7. package/lib/commands/app/remote-source.js +1 -1
  8. package/lib/commands/app/shared.js +1 -1
  9. package/lib/commands/app-config/get.js +1 -1
  10. package/lib/commands/app-config/index.js +1 -1
  11. package/lib/commands/artifact/index.js +1 -1
  12. package/lib/commands/auth/device.js +1 -1
  13. package/lib/commands/auth/index.js +1 -1
  14. package/lib/commands/auth/prompt.js +1 -1
  15. package/lib/commands/bff/detail.js +1 -1
  16. package/lib/commands/bff/exec.js +1 -1
  17. package/lib/commands/bff/index.js +1 -1
  18. package/lib/commands/cli-skill/index.js +1 -1
  19. package/lib/commands/common/config-policy.js +1 -1
  20. package/lib/commands/common/constraints.js +1 -1
  21. package/lib/commands/common/flags.js +1 -1
  22. package/lib/commands/common/local-file.js +1 -1
  23. package/lib/commands/config/definitions.js +1 -1
  24. package/lib/commands/config/shared.js +1 -1
  25. package/lib/commands/data/index.js +1 -1
  26. package/lib/commands/dataset/detail.js +1 -1
  27. package/lib/commands/dataset/index.js +1 -1
  28. package/lib/commands/dataset/list.js +1 -1
  29. package/lib/commands/dataset/sdk-doc.js +1 -1
  30. package/lib/commands/doctor.js +1 -1
  31. package/lib/commands/file/index.js +1 -1
  32. package/lib/commands/init.js +1 -1
  33. package/lib/commands/kb/index.js +1 -1
  34. package/lib/commands/logs/index.js +1 -1
  35. package/lib/commands/notification/config-list.js +1 -1
  36. package/lib/commands/notification/index.js +1 -1
  37. package/lib/commands/notification/shared.js +1 -1
  38. package/lib/commands/ocr/index.js +1 -1
  39. package/lib/commands/permit/dataset-get.js +1 -1
  40. package/lib/commands/permit/dataset-set.js +1 -1
  41. package/lib/commands/permit/index.js +1 -1
  42. package/lib/commands/permit/page-get.js +1 -1
  43. package/lib/commands/permit/page-set.js +1 -1
  44. package/lib/commands/permit/role-menus-set.js +1 -1
  45. package/lib/commands/permit/role-menus.js +1 -1
  46. package/lib/commands/permit/shared.js +1 -1
  47. package/lib/commands/personal-bff/index.js +1 -1
  48. package/lib/commands/registry.js +1 -1
  49. package/lib/commands/role/create.js +1 -1
  50. package/lib/commands/role/delete.js +1 -1
  51. package/lib/commands/role/detail.js +1 -1
  52. package/lib/commands/role/index.js +1 -1
  53. package/lib/commands/role/list.js +1 -1
  54. package/lib/commands/role/shared.js +1 -1
  55. package/lib/commands/role/update.js +1 -1
  56. package/lib/commands/role/user-add.js +1 -1
  57. package/lib/commands/role/user-remove.js +1 -1
  58. package/lib/commands/schedule/index.js +1 -1
  59. package/lib/commands/schema.js +1 -1
  60. package/lib/commands/service/dynamic.js +1 -1
  61. package/lib/commands/service/function-name-adapter.js +1 -1
  62. package/lib/commands/service/index.js +1 -1
  63. package/lib/commands/service/registry.js +1 -1
  64. package/lib/commands/skill/commands/create.js +1 -1
  65. package/lib/commands/skill/commands/diagram.js +1 -1
  66. package/lib/commands/skill/commands/install.js +1 -1
  67. package/lib/commands/skill/commands/list.js +1 -1
  68. package/lib/commands/skill/commands/push.js +1 -1
  69. package/lib/commands/skill/commands/validate.js +1 -1
  70. package/lib/commands/skill/diagram.js +1 -1
  71. package/lib/commands/skill/flags.js +1 -1
  72. package/lib/commands/skill/index.js +1 -1
  73. package/lib/commands/skill/manifest-helpers.js +1 -1
  74. package/lib/commands/skill/push-execute.js +1 -1
  75. package/lib/commands/skill/push-flow-helpers.js +1 -1
  76. package/lib/commands/skill/push-retarget.js +1 -1
  77. package/lib/commands/skill/scopes.js +1 -1
  78. package/lib/commands/skill/summary.js +1 -1
  79. package/lib/commands/skill/templates.js +1 -1
  80. package/lib/commands/skill/validate.js +1 -1
  81. package/lib/commands/sql/detail.js +1 -1
  82. package/lib/commands/sql/exec.js +1 -1
  83. package/lib/commands/sql/index.js +1 -1
  84. package/lib/commands/update.js +1 -1
  85. package/lib/commands/user-account/bind.js +1 -1
  86. package/lib/commands/user-account/index.js +1 -1
  87. package/lib/commands/workspace/index.js +1 -1
  88. package/lib/config/schema.js +1 -1
  89. package/lib/constant/app.js +1 -1
  90. package/lib/constant/auth-mode.js +1 -1
  91. package/lib/constant/cli.js +1 -1
  92. package/lib/constant/defaults.js +1 -1
  93. package/lib/constant/distribution.js +1 -1
  94. package/lib/constant/domain.js +1 -1
  95. package/lib/constant/env.js +1 -1
  96. package/lib/constant/output.js +1 -1
  97. package/lib/constant/product.js +1 -1
  98. package/lib/constant/risk.js +1 -1
  99. package/lib/constant/url.js +1 -1
  100. package/lib/context.js +1 -1
  101. package/lib/core/api-client.js +1 -1
  102. package/lib/core/db-resolver.js +1 -1
  103. package/lib/core/sdk-client.js +1 -1
  104. package/lib/errors.js +1 -1
  105. package/lib/framework/build-all-flags.js +1 -1
  106. package/lib/framework/dryrun.js +1 -1
  107. package/lib/framework/flags.js +1 -1
  108. package/lib/framework/help.js +1 -1
  109. package/lib/framework/index.js +1 -1
  110. package/lib/framework/output.js +1 -1
  111. package/lib/framework/preparse.js +1 -1
  112. package/lib/framework/rate-limit.js +1 -1
  113. package/lib/framework/raw-flags.js +1 -1
  114. package/lib/framework/response.js +1 -1
  115. package/lib/framework/runner-confirmation.js +1 -1
  116. package/lib/framework/runner-error.js +1 -1
  117. package/lib/framework/runner.js +1 -1
  118. package/lib/framework/schema-export.js +1 -1
  119. package/lib/framework/service-order.js +1 -1
  120. package/lib/framework/types.js +1 -1
  121. package/lib/generated/build-info.d.ts +4 -4
  122. package/lib/generated/build-info.js +1 -1
  123. package/lib/help.js +1 -1
  124. package/lib/postinstall.js +1 -1
  125. package/lib/runtime/confirmation.js +1 -1
  126. package/lib/runtime/event.js +1 -1
  127. package/lib/runtime/index.js +1 -1
  128. package/lib/runtime/queue.js +1 -1
  129. package/lib/runtime/resolve.js +1 -1
  130. package/lib/skills/builtin-skill.js +1 -1
  131. package/lib/skills/npx-skills-add.js +1 -1
  132. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  133. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  134. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  135. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  136. package/lib/skills/runtime-skill-sync/links.js +1 -1
  137. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  138. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  139. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  140. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  141. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  142. package/lib/skills/runtime-skill-sync/push.js +1 -1
  143. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  144. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  145. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  146. package/lib/skills/runtime-skill-sync.js +1 -1
  147. package/lib/skills/skill-presence.js +1 -1
  148. package/lib/utils/apply-jq-filter.js +1 -1
  149. package/lib/utils/logger.js +1 -1
  150. package/lib/utils/lossless-json.js +1 -1
  151. package/lib/utils/params.js +1 -1
  152. package/lib/utils/platform.js +1 -1
  153. package/lib/utils/update-notice.js +1 -1
  154. package/lib/utils/version.js +1 -1
  155. package/lib/utils/write-cli-side-channel.js +1 -1
  156. package/package.json +1 -1
  157. package/skills/lovrabet/SKILL.md +1 -1
  158. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- const a58_0x390437=a58_0x5513;(function(_0x45f143,_0xe1992b){const _0x9815c0=a58_0x5513,_0x8c7bc=_0x45f143();while(!![]){try{const _0x6c82fd=-parseInt(_0x9815c0(0x190))/0x1*(-parseInt(_0x9815c0(0x186))/0x2)+-parseInt(_0x9815c0(0x187))/0x3*(-parseInt(_0x9815c0(0x18e))/0x4)+-parseInt(_0x9815c0(0x18f))/0x5*(-parseInt(_0x9815c0(0x189))/0x6)+-parseInt(_0x9815c0(0x18b))/0x7*(-parseInt(_0x9815c0(0x18d))/0x8)+-parseInt(_0x9815c0(0x191))/0x9+-parseInt(_0x9815c0(0x18c))/0xa+-parseInt(_0x9815c0(0x185))/0xb*(parseInt(_0x9815c0(0x18a))/0xc);if(_0x6c82fd===_0xe1992b)break;else _0x8c7bc['push'](_0x8c7bc['shift']());}catch(_0x20eae1){_0x8c7bc['push'](_0x8c7bc['shift']());}}}(a58_0x5312,0x89280));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x37c808){const _0x2571df=await buildSchemaPayload();return{'ok':!![],'data':_0x2571df};}function a58_0x5513(_0x2c5481,_0x36e648){_0x2c5481=_0x2c5481-0x185;const _0x531231=a58_0x5312();let _0x551309=_0x531231[_0x2c5481];return _0x551309;}function a58_0x5312(){const _0x467206=['6291972cjhWOP','Export\x20machine-readable\x20command\x20schema\x20(JSON)','read','schema','55pOiWCu','42Ftwbfj','9aumaad','export','3850698XmFguo','3099048LEyubG','105AdujIr','8271400Akoovz','475680EzBCjX','1386812ztKplE','5aJWIbU','38358lAnObH'];a58_0x5312=function(){return _0x467206;};return a58_0x5312();}export const schemaDefinition={'service':a58_0x390437(0x194),'command':a58_0x390437(0x188),'description':a58_0x390437(0x192),'risk':a58_0x390437(0x193),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
1
+ function a58_0x2d9d(_0x14d5d6,_0x5c14b8){_0x14d5d6=_0x14d5d6-0x120;const _0x31e752=a58_0x31e7();let _0x2d9dbb=_0x31e752[_0x14d5d6];return _0x2d9dbb;}const a58_0x343c9c=a58_0x2d9d;(function(_0x3bdd90,_0x4af48e){const _0x24314e=a58_0x2d9d,_0x5095d3=_0x3bdd90();while(!![]){try{const _0x4d7b22=-parseInt(_0x24314e(0x125))/0x1*(-parseInt(_0x24314e(0x128))/0x2)+-parseInt(_0x24314e(0x126))/0x3*(parseInt(_0x24314e(0x124))/0x4)+-parseInt(_0x24314e(0x127))/0x5*(-parseInt(_0x24314e(0x123))/0x6)+-parseInt(_0x24314e(0x121))/0x7*(parseInt(_0x24314e(0x129))/0x8)+-parseInt(_0x24314e(0x12a))/0x9*(-parseInt(_0x24314e(0x12c))/0xa)+parseInt(_0x24314e(0x120))/0xb+-parseInt(_0x24314e(0x12b))/0xc;if(_0x4d7b22===_0x4af48e)break;else _0x5095d3['push'](_0x5095d3['shift']());}catch(_0x215f28){_0x5095d3['push'](_0x5095d3['shift']());}}}(a58_0x31e7,0x1cdd8));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x11025c){const _0x185bef=await buildSchemaPayload();return{'ok':!![],'data':_0x185bef};}export const schemaDefinition={'service':a58_0x343c9c(0x122),'command':'export','description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};function a58_0x31e7(){const _0x144431=['58815iYfIhL','5310132pirEYP','130YMNArb','2425335rVltcV','809851UGYEuy','schema','456DaDfnZ','8URDVHH','1wmXPSc','55326gmfFke','12715qBkPcj','429224fyXbVH','8zQjkSe'];a58_0x31e7=function(){return _0x144431;};return a58_0x31e7();}
@@ -1 +1 @@
1
- (function(_0x138ee0,_0x1ac021){const _0x1fdc31=a59_0x315f,_0x21073c=_0x138ee0();while(!![]){try{const _0x190129=-parseInt(_0x1fdc31(0x15d))/0x1+parseInt(_0x1fdc31(0x135))/0x2*(-parseInt(_0x1fdc31(0x140))/0x3)+parseInt(_0x1fdc31(0x16d))/0x4+parseInt(_0x1fdc31(0x149))/0x5*(parseInt(_0x1fdc31(0x16f))/0x6)+-parseInt(_0x1fdc31(0x13b))/0x7*(-parseInt(_0x1fdc31(0x111))/0x8)+-parseInt(_0x1fdc31(0x14f))/0x9*(-parseInt(_0x1fdc31(0x10f))/0xa)+-parseInt(_0x1fdc31(0x14b))/0xb;if(_0x190129===_0x1ac021)break;else _0x21073c['push'](_0x21073c['shift']());}catch(_0x588f56){_0x21073c['push'](_0x21073c['shift']());}}}(a59_0x2480,0xaedca));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(_0x1da283,_0x3b49f4){const _0x4b698f=a59_0x315f,_0x4ce969=listLocalServiceTrees();let _0x1c8c47;for(const _0xa084d0 of _0x4ce969){const _0x4aa4c7=matchServiceTreeCommand(_0xa084d0,_0x1da283);if(!_0x4aa4c7)continue;(!_0x1c8c47||_0x4aa4c7[_0x4b698f(0x138)][_0x4b698f(0x10e)]['length']>_0x1c8c47[_0x4b698f(0x138)][_0x4b698f(0x10e)][_0x4b698f(0x154)])&&(_0x1c8c47={'tree':_0xa084d0,'command':_0x4aa4c7['command'],'remainingArgs':_0x4aa4c7[_0x4b698f(0x11a)]});}if(!_0x1c8c47)return undefined;const _0x12df95={..._0x3b49f4};return applyAppBinding(_0x1c8c47['tree'],_0x1c8c47[_0x4b698f(0x138)],_0x12df95),{'definition':buildDynamicCommandDefinition(_0x1c8c47[_0x4b698f(0x121)],_0x1c8c47[_0x4b698f(0x138)]),'args':_0x1c8c47[_0x4b698f(0x11a)],'flags':_0x12df95,'tree':_0x1c8c47[_0x4b698f(0x121)],'command':_0x1c8c47[_0x4b698f(0x138)]};}export function generateDynamicServiceHelp(_0x621b21){const _0x353375=a59_0x315f,_0xf521a8=listLocalServiceTrees()['find'](_0x5c8f66=>_0x5c8f66[_0x353375(0x150)][_0x353375(0x110)]===_0x621b21);if(!_0xf521a8)return undefined;const _0x2f8e52=[CLI_BIN_NAME+'\x20'+_0x621b21+'\x20<command>\x20[flags]','',_0xf521a8['service'][_0x353375(0x137)]||_0x621b21,_0xf521a8[_0x353375(0x150)][_0x353375(0x125)]?'\x20\x20'+_0xf521a8[_0x353375(0x150)]['description']:'','',_0x353375(0x109),..._0xf521a8['commands']['map'](_0x1938c8=>{const _0x3b66ef=_0x353375,_0x28c247=_0x1938c8[_0x3b66ef(0x10e)][_0x3b66ef(0x10c)](0x1)[_0x3b66ef(0x168)]('\x20'),_0x129b11=_0x1938c8[_0x3b66ef(0x164)]===_0x3b66ef(0x141)?'':'\x20['+_0x1938c8[_0x3b66ef(0x164)]+']';return'\x20\x20'+_0x28c247['padEnd'](0x18)+'\x20'+(_0x1938c8[_0x3b66ef(0x125)]||'')+_0x129b11;}),'',_0x353375(0x119)+CLI_BIN_NAME+_0x353375(0x126)+_0x621b21+_0x353375(0x15e)]['filter'](Boolean);return _0x2f8e52['join']('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x136678=>{const _0x3e1f59=a59_0x315f,_0x1e6728=_0x136678['normalizedManifest'];return{'service':_0x1e6728[_0x3e1f59(0x150)][_0x3e1f59(0x110)],'label':_0x1e6728[_0x3e1f59(0x150)][_0x3e1f59(0x137)]||_0x1e6728[_0x3e1f59(0x150)][_0x3e1f59(0x110)],'commands':_0x1e6728[_0x3e1f59(0x118)]['map'](_0x15100f=>({'command':dynamicCommandName(_0x15100f),'description':_0x15100f['description']||_0x3e1f59(0x11b)+_0x15100f[_0x3e1f59(0x148)],'tag':riskTag(_0x15100f[_0x3e1f59(0x164)])}))};});}export function getDynamicServiceEntry(_0x54e182){const _0x5817ad=a59_0x315f;return listDynamicServiceEntries()[_0x5817ad(0x108)](_0x4196f1=>_0x4196f1['service']===_0x54e182);}export function listDynamicServiceDefinitions(_0x53cf28){const _0x406a6b=a59_0x315f;return listLocalServiceTrees()[_0x406a6b(0x124)](_0x4fa0a0=>!_0x53cf28||_0x4fa0a0[_0x406a6b(0x150)][_0x406a6b(0x110)]===_0x53cf28)[_0x406a6b(0x147)](_0x34e5b6=>_0x34e5b6[_0x406a6b(0x118)][_0x406a6b(0x12c)](_0x5aaa9b=>buildDynamicCommandDefinition(_0x34e5b6,_0x5aaa9b)));}export function getDynamicServiceDefinitions(_0x295883){const _0x46689a=a59_0x315f,_0x3f5855=listDynamicServiceDefinitions(_0x295883);return _0x3f5855[_0x46689a(0x154)]>0x0?_0x3f5855:undefined;}function a59_0x2480(){const _0x55622d=['6FAgafa','startsWith','string','find','Commands:','Service\x20command\x20','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','slice','\x20completed\x20in\x20','fullPath','24770ZHACjE','code','2674664cqraNK','kind','type','required','\x20\x20\x20\x20sqlCode:\x20','entries','loginName','commands','Use\x20`','remainingArgs','Run\x20service\x20command\x20','source','sql','operator','cliName','app','tree','nickName','username','filter','description','\x20service\x20detail\x20--service\x20','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','datatable','args','Unsupported\x20service\x20target\x20kind:\x20','now','map','tenantCode','bffCode','params','bffId','scriptName','Unknown\x20appRef\x20\x22','trim','datasetCode','6qcVHUS','json','name','command','mapTo','default','21zlhzYL','env','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20[','SERVICE_TREE','64797yVNMha','read','\x20requires\x20target.sqlCode.','validation','\x20\x20MAP\x20TO','\x20\x20\x20\x20functionName:\x20','flags','flatMap','cliPath','1989125RvcAng','\x20\x20SERVICE\x20TREE\x20TARGET','24124562BfjzPE','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','employeeId','\x20\x20\x20\x20','2934GrxJEF','service','number','appcode','dbtableConfig','length','context.','appRef','\x20\x20\x20\x20datatable:\x20','userId','\x20\x20\x20\x20kind:\x20\x20\x20\x20','userName','target','envName','628236aSUOeA','`\x20to\x20inspect\x20the\x20manifest.','push','将通过\x20Service\x20Tree\x20执行“','high-risk-write','enum','sqlCode','risk','\x20\x20\x20\x20command:\x20','\x22\x20in\x20service\x20command\x20','Cannot\x20resolve\x20datatable\x20\x22','join','tableName','appCode','rawFlags','boolean','5576332ZeSwXZ','some'];a59_0x2480=function(){return _0x55622d;};return a59_0x2480();}export function findDynamicServiceDefinition(_0x519479,_0x1e9e3f){const _0x149513=a59_0x315f;return listDynamicServiceDefinitions(_0x519479)['find'](_0x55debc=>_0x55debc[_0x149513(0x138)]===_0x1e9e3f);}export function buildDynamicCommandDefinition(_0x3474c6,_0x2d87c8){const _0x313f1f=a59_0x315f;return{'service':_0x3474c6['service'][_0x313f1f(0x110)],'command':dynamicCommandName(_0x2d87c8),'description':_0x2d87c8[_0x313f1f(0x125)]||_0x313f1f(0x11b)+_0x2d87c8[_0x313f1f(0x148)],'risk':_0x2d87c8[_0x313f1f(0x164)],..._0x2d87c8['risk']==='read'?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x2d87c8)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x2d87c8[_0x313f1f(0x129)][_0x313f1f(0x12c)](_0x382430=>({'name':_0x382430[_0x313f1f(0x137)],'description':_0x382430[_0x313f1f(0x125)]||_0x382430[_0x313f1f(0x137)],'required':_0x382430[_0x313f1f(0x114)]})),'flags':_0x2d87c8[_0x313f1f(0x146)][_0x313f1f(0x12c)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x2d87c8),async 'dryRun'(_0x1f48d5){const _0x123b99=_0x313f1f,_0x2be8a9=await compilePlan(_0x2d87c8,_0x1f48d5);return{'method':_0x123b99(0x13f),'url':_0x2d87c8[_0x123b99(0x148)],'body':{'target':targetPreview(_0x2be8a9),'params':_0x2be8a9['params']},'description':'Preview\x20dynamic\x20service\x20command:\x20'+_0x2d87c8[_0x123b99(0x148)]};},async 'execute'(_0x461a92){const _0x3eb446=_0x313f1f,_0x5f01ba=await compilePlan(_0x2d87c8,_0x461a92),_0x3fd13c=Date[_0x3eb446(0x12b)](),_0x18c931=await executePlan(_0x5f01ba,_0x2d87c8,_0x461a92),_0xa1ee5d=Date[_0x3eb446(0x12b)]()-_0x3fd13c;return{'ok':!![],'data':{'service':_0x3474c6[_0x3eb446(0x150)],'command':_0x2d87c8['cliPath'],'target':targetPreview(_0x5f01ba),'result':_0x18c931,'elapsed':_0xa1ee5d},'message':_0x3eb446(0x10a)+_0x2d87c8[_0x3eb446(0x148)]+_0x3eb446(0x10d)+_0xa1ee5d+'ms'};}};}function buildDynamicConfirmationDescription(_0x5366fc){const _0x4c3ede=a59_0x315f,_0x5608e5=_0x5366fc[_0x4c3ede(0x125)]||_0x5366fc[_0x4c3ede(0x148)],_0x930f09=_0x5366fc[_0x4c3ede(0x164)]===_0x4c3ede(0x161)?_0x4c3ede(0x10b):'该命令被清单标记为写入,可能修改业务数据或服务状态。';return _0x4c3ede(0x160)+_0x5608e5+'”。'+_0x930f09;}function dynamicCommandName(_0x184348){const _0x4372e5=a59_0x315f;return _0x184348['fullPath'][_0x4372e5(0x10c)](0x1)[_0x4372e5(0x168)]('\x20');}function riskTag(_0x4dbd2c){const _0x5055cb=a59_0x315f;return _0x4dbd2c==='read'?'':_0x5055cb(0x13e)+_0x4dbd2c+']';}function flagToCommandFlag(_0x53f98c){const _0x450d47=a59_0x315f;return{'name':_0x53f98c[_0x450d47(0x11f)],'type':_0x53f98c[_0x450d47(0x113)]===_0x450d47(0x136)?_0x450d47(0x107):_0x53f98c['type'],'description':_0x53f98c[_0x450d47(0x125)]||_0x53f98c[_0x450d47(0x137)],'required':_0x53f98c[_0x450d47(0x114)],'default':isPrimitiveFlagDefault(_0x53f98c[_0x450d47(0x13a)])?_0x53f98c[_0x450d47(0x13a)]:undefined,'enum':_0x53f98c[_0x450d47(0x162)]};}async function compilePlan(_0x2b666d,_0x4c8b2b){const _0x573e45=a59_0x315f;return compileServiceTreeCommand(_0x2b666d,{'flags':_0x4c8b2b[_0x573e45(0x16b)],'args':_0x4c8b2b[_0x573e45(0x129)],'context':await buildServiceContext(_0x2b666d,_0x4c8b2b)});}async function buildServiceContext(_0x224aa4,_0x3bda20){const _0xedd9f7=a59_0x315f,_0x398935={'appCode':_0x3bda20['appCode'],'env':_0x3bda20[_0xedd9f7(0x15c)],'envName':_0x3bda20[_0xedd9f7(0x15c)]};if(!usesRuntimeContext(_0x224aa4))return _0x398935;const _0x55aac5=await getLoginUserInfo(),_0x4ccaeb=pickFirst(_0x55aac5[_0xedd9f7(0x158)],_0x55aac5['id']);return{..._0x398935,'user':_0x55aac5,'userId':_0x4ccaeb,'id':_0x55aac5['id'],'username':pickFirst(_0x55aac5[_0xedd9f7(0x123)],_0x55aac5[_0xedd9f7(0x15a)],_0x55aac5[_0xedd9f7(0x117)]),'userName':_0x55aac5[_0xedd9f7(0x15a)],'nickname':pickFirst(_0x55aac5['nickname'],_0x55aac5[_0xedd9f7(0x122)]),'nickName':_0x55aac5[_0xedd9f7(0x122)],'tenantCode':_0x55aac5[_0xedd9f7(0x12d)],'employeeId':_0x55aac5[_0xedd9f7(0x14d)]};}function usesRuntimeContext(_0x1c8c62){const _0x7ea457=a59_0x315f;return _0x1c8c62[_0x7ea457(0x139)][_0x7ea457(0x16e)](_0x30fa3f=>typeof _0x30fa3f['source']===_0x7ea457(0x107)&&(_0x30fa3f[_0x7ea457(0x11c)][_0x7ea457(0x170)](_0x7ea457(0x155))||_0x30fa3f[_0x7ea457(0x11c)][_0x7ea457(0x170)]('ctx.')));}function a59_0x315f(_0x58d483,_0x5b439e){_0x58d483=_0x58d483-0x107;const _0x2480ee=a59_0x2480();let _0x315ff4=_0x2480ee[_0x58d483];return _0x315ff4;}function pickFirst(..._0xb20bec){const _0x4af329=a59_0x315f;return _0xb20bec[_0x4af329(0x108)](_0x2686fc=>_0x2686fc!==undefined&&_0x2686fc!==null);}async function executePlan(_0x351dd1,_0x4df865,_0x362e96){const _0x218822=a59_0x315f;if(_0x351dd1[_0x218822(0x112)]==='data'){const _0x41ea68=await resolveDatasetCode(_0x351dd1,_0x4df865,_0x362e96);return executeData(_0x41ea68,_0x351dd1['command'],_0x351dd1['params']);}if(_0x351dd1[_0x218822(0x112)]===_0x218822(0x11d)){if(!_0x351dd1[_0x218822(0x163)])throw CliErrors[_0x218822(0x143)](_0x218822(0x10a)+_0x4df865['cliPath']+_0x218822(0x142));return executeSdkSql(_0x351dd1['sqlCode'],normalizeScalarParams(_0x351dd1[_0x218822(0x12f)]));}if(_0x351dd1['kind']==='bff'){const _0x864c4f=_0x351dd1[_0x218822(0x131)]||_0x351dd1[_0x218822(0x12e)]||(_0x351dd1[_0x218822(0x130)]==null?'':String(_0x351dd1[_0x218822(0x130)]));if(!_0x864c4f)throw CliErrors[_0x218822(0x143)](_0x218822(0x10a)+_0x4df865[_0x218822(0x148)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0x864c4f,_0x351dd1[_0x218822(0x12f)]);}throw CliErrors[_0x218822(0x143)](_0x218822(0x12a)+_0x351dd1[_0x218822(0x112)]);}async function resolveDatasetCode(_0x454872,_0xbadda0,_0x270a75){const _0x1a1300=a59_0x315f;if(_0x454872['datasetCode'])return _0x454872['datasetCode'];if(!_0x454872['datatable'])throw CliErrors[_0x1a1300(0x143)](_0x1a1300(0x10a)+_0xbadda0[_0x1a1300(0x148)]+_0x1a1300(0x14c));const _0x10fe90=await listDatasets(_0x270a75['appCode']),_0x570807=_0x10fe90[_0x1a1300(0x108)](_0x48e8b9=>_0x48e8b9[_0x1a1300(0x153)]?.[_0x1a1300(0x169)]===_0x454872[_0x1a1300(0x128)]);if(!_0x570807?.['code'])throw CliErrors[_0x1a1300(0x143)](_0x1a1300(0x167)+_0x454872[_0x1a1300(0x128)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x270a75[_0x1a1300(0x16a)]+'.',_0x1a1300(0x13d));return _0x570807[_0x1a1300(0x110)];}function applyAppBinding(_0x2dbc5e,_0xf991a,_0x232007){const _0x418200=a59_0x315f,_0x2f37f2=_0xf991a[_0x418200(0x15b)][_0x418200(0x156)];if(!_0x2f37f2)return;const _0x5c89a9=_0x2dbc5e['appBindings'][_0x2f37f2];if(!_0x5c89a9)throw CliErrors['validation'](_0x418200(0x132)+_0x2f37f2+_0x418200(0x166)+_0xf991a[_0x418200(0x148)]+'.',_0x418200(0x127));const _0x1d3df9=_0x5c89a9['appcode']||_0x5c89a9[_0x418200(0x16a)];_0x1d3df9&&!hasText(_0x232007['appcode'])&&(_0x232007[_0x418200(0x152)]=_0x1d3df9),_0x5c89a9[_0x418200(0x120)]&&!hasText(_0x232007[_0x418200(0x120)])&&!hasText(_0x232007['appcode'])&&(_0x232007['app']=_0x5c89a9[_0x418200(0x120)]),_0x5c89a9[_0x418200(0x13c)]&&!hasText(_0x232007[_0x418200(0x13c)])&&(_0x232007[_0x418200(0x13c)]=_0x5c89a9[_0x418200(0x13c)]);}function renderDynamicCommandHelp(_0x2d4cec){const _0x2abe3c=a59_0x315f,_0xf8ec12=[_0x2abe3c(0x14a),_0x2abe3c(0x159)+_0x2d4cec[_0x2abe3c(0x15b)][_0x2abe3c(0x112)],_0x2abe3c(0x165)+_0x2d4cec['target']['command']];if(_0x2d4cec[_0x2abe3c(0x15b)][_0x2abe3c(0x134)])_0xf8ec12[_0x2abe3c(0x15f)]('\x20\x20\x20\x20datasetCode:\x20'+_0x2d4cec['target']['datasetCode']);if(_0x2d4cec[_0x2abe3c(0x15b)][_0x2abe3c(0x128)])_0xf8ec12['push'](_0x2abe3c(0x157)+_0x2d4cec[_0x2abe3c(0x15b)]['datatable']);if(_0x2d4cec[_0x2abe3c(0x15b)][_0x2abe3c(0x163)])_0xf8ec12[_0x2abe3c(0x15f)](_0x2abe3c(0x115)+_0x2d4cec[_0x2abe3c(0x15b)][_0x2abe3c(0x163)]);if(_0x2d4cec['target'][_0x2abe3c(0x131)])_0xf8ec12[_0x2abe3c(0x15f)](_0x2abe3c(0x145)+_0x2d4cec[_0x2abe3c(0x15b)][_0x2abe3c(0x131)]);if(_0x2d4cec[_0x2abe3c(0x139)][_0x2abe3c(0x154)]>0x0){_0xf8ec12[_0x2abe3c(0x15f)]('',_0x2abe3c(0x144));for(const _0x19a487 of _0x2d4cec['mapTo']){_0xf8ec12['push'](_0x2abe3c(0x14e)+(_0x19a487['source']||'const')+'\x20->\x20'+_0x19a487[_0x2abe3c(0x15b)]+(_0x19a487['operator']?'.'+_0x19a487[_0x2abe3c(0x11e)]:''));}}return _0xf8ec12[_0x2abe3c(0x168)]('\x0a');}function targetPreview(_0x1377d7){const _0x206cae=a59_0x315f;return{'kind':_0x1377d7[_0x206cae(0x112)],'command':_0x1377d7[_0x206cae(0x138)],'appRef':_0x1377d7['appRef'],'datasetCode':_0x1377d7['datasetCode'],'datatable':_0x1377d7[_0x206cae(0x128)],'sqlCode':_0x1377d7[_0x206cae(0x163)],'bffCode':_0x1377d7[_0x206cae(0x12e)],'bffId':_0x1377d7[_0x206cae(0x130)],'functionName':_0x1377d7[_0x206cae(0x131)]};}function normalizeScalarParams(_0x5655fc){const _0x5070e7=a59_0x315f;return Object['fromEntries'](Object[_0x5070e7(0x116)](_0x5655fc)[_0x5070e7(0x124)](([,_0x236eff])=>typeof _0x236eff===_0x5070e7(0x107)||typeof _0x236eff===_0x5070e7(0x151)));}function hasText(_0x32d3c2){const _0x5949c8=a59_0x315f;return typeof _0x32d3c2==='string'&&_0x32d3c2[_0x5949c8(0x133)]()[_0x5949c8(0x154)]>0x0;}function isPrimitiveFlagDefault(_0x4d61d4){const _0x3907b6=a59_0x315f;return _0x4d61d4===undefined||typeof _0x4d61d4===_0x3907b6(0x107)||typeof _0x4d61d4==='number'||typeof _0x4d61d4===_0x3907b6(0x16c);}
1
+ (function(_0x28175f,_0x26b1cd){const _0x25f9b3=a59_0x56e5,_0x5477ed=_0x28175f();while(!![]){try{const _0x1f17b9=parseInt(_0x25f9b3(0xd0))/0x1+-parseInt(_0x25f9b3(0xb6))/0x2+-parseInt(_0x25f9b3(0xbc))/0x3+-parseInt(_0x25f9b3(0xba))/0x4+parseInt(_0x25f9b3(0xdb))/0x5+parseInt(_0x25f9b3(0xc7))/0x6+parseInt(_0x25f9b3(0xcf))/0x7;if(_0x1f17b9===_0x26b1cd)break;else _0x5477ed['push'](_0x5477ed['shift']());}catch(_0x2d8fd4){_0x5477ed['push'](_0x5477ed['shift']());}}}(a59_0xc87c,0x8946a));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(_0x4819b4,_0x6eed16){const _0x5636c3=a59_0x56e5,_0x4e75f6=listLocalServiceTrees();let _0x56b92d;for(const _0x20a77f of _0x4e75f6){const _0x5e178c=matchServiceTreeCommand(_0x20a77f,_0x4819b4);if(!_0x5e178c)continue;(!_0x56b92d||_0x5e178c['command']['fullPath'][_0x5636c3(0xda)]>_0x56b92d[_0x5636c3(0x102)][_0x5636c3(0xb9)][_0x5636c3(0xda)])&&(_0x56b92d={'tree':_0x20a77f,'command':_0x5e178c[_0x5636c3(0x102)],'remainingArgs':_0x5e178c[_0x5636c3(0xee)]});}if(!_0x56b92d)return undefined;const _0x440f76={..._0x6eed16};return applyAppBinding(_0x56b92d[_0x5636c3(0xec)],_0x56b92d[_0x5636c3(0x102)],_0x440f76),{'definition':buildDynamicCommandDefinition(_0x56b92d[_0x5636c3(0xec)],_0x56b92d[_0x5636c3(0x102)]),'args':_0x56b92d[_0x5636c3(0xee)],'flags':_0x440f76,'tree':_0x56b92d[_0x5636c3(0xec)],'command':_0x56b92d[_0x5636c3(0x102)]};}export function generateDynamicServiceHelp(_0x5401f5){const _0x5c73e8=a59_0x56e5,_0x40500e=listLocalServiceTrees()[_0x5c73e8(0xc8)](_0xad60f0=>_0xad60f0[_0x5c73e8(0xef)][_0x5c73e8(0xb7)]===_0x5401f5);if(!_0x40500e)return undefined;const _0x413ff9=[CLI_BIN_NAME+'\x20'+_0x5401f5+_0x5c73e8(0xe1),'',_0x40500e[_0x5c73e8(0xef)][_0x5c73e8(0xce)]||_0x5401f5,_0x40500e['service'][_0x5c73e8(0xf3)]?'\x20\x20'+_0x40500e[_0x5c73e8(0xef)]['description']:'','',_0x5c73e8(0xf1),..._0x40500e[_0x5c73e8(0x10a)][_0x5c73e8(0xfc)](_0x4bcfd3=>{const _0x38d9b4=_0x5c73e8,_0x125302=_0x4bcfd3[_0x38d9b4(0xb9)][_0x38d9b4(0xcb)](0x1)[_0x38d9b4(0x109)]('\x20'),_0x3862b4=_0x4bcfd3[_0x38d9b4(0xde)]==='read'?'':'\x20['+_0x4bcfd3['risk']+']';return'\x20\x20'+_0x125302[_0x38d9b4(0x107)](0x18)+'\x20'+(_0x4bcfd3[_0x38d9b4(0xf3)]||'')+_0x3862b4;}),'','Use\x20`'+CLI_BIN_NAME+_0x5c73e8(0xaf)+_0x5401f5+_0x5c73e8(0xf0)][_0x5c73e8(0x101)](Boolean);return _0x413ff9['join']('\x0a');}export function listDynamicServiceEntries(){const _0x3bbdd1=a59_0x56e5;return listLocalServices()[_0x3bbdd1(0xfc)](_0x5f14cd=>{const _0x630390=_0x3bbdd1,_0x301a98=_0x5f14cd['normalizedManifest'];return{'service':_0x301a98[_0x630390(0xef)]['code'],'label':_0x301a98[_0x630390(0xef)][_0x630390(0xce)]||_0x301a98[_0x630390(0xef)][_0x630390(0xb7)],'commands':_0x301a98[_0x630390(0x10a)][_0x630390(0xfc)](_0x3ee95f=>({'command':dynamicCommandName(_0x3ee95f),'description':_0x3ee95f[_0x630390(0xf3)]||'Run\x20service\x20command\x20'+_0x3ee95f['cliPath'],'tag':riskTag(_0x3ee95f[_0x630390(0xde)])}))};});}export function getDynamicServiceEntry(_0x47f81a){const _0x3b0ff9=a59_0x56e5;return listDynamicServiceEntries()[_0x3b0ff9(0xc8)](_0x44ae6a=>_0x44ae6a[_0x3b0ff9(0xef)]===_0x47f81a);}export function listDynamicServiceDefinitions(_0x3414a6){const _0x32cbbe=a59_0x56e5;return listLocalServiceTrees()[_0x32cbbe(0x101)](_0x181e20=>!_0x3414a6||_0x181e20[_0x32cbbe(0xef)]['code']===_0x3414a6)[_0x32cbbe(0xc9)](_0x1b88ba=>_0x1b88ba[_0x32cbbe(0x10a)][_0x32cbbe(0xfc)](_0x35c8a2=>buildDynamicCommandDefinition(_0x1b88ba,_0x35c8a2)));}export function getDynamicServiceDefinitions(_0x22a6ef){const _0x298a03=listDynamicServiceDefinitions(_0x22a6ef);return _0x298a03['length']>0x0?_0x298a03:undefined;}export function findDynamicServiceDefinition(_0x16b078,_0x4346cf){const _0x4fc0a1=a59_0x56e5;return listDynamicServiceDefinitions(_0x16b078)[_0x4fc0a1(0xc8)](_0x4f6326=>_0x4f6326['command']===_0x4346cf);}export function buildDynamicCommandDefinition(_0x5bd6e4,_0x3321b2){const _0x7aa1ff=a59_0x56e5;return{'service':_0x5bd6e4[_0x7aa1ff(0xef)][_0x7aa1ff(0xb7)],'command':dynamicCommandName(_0x3321b2),'description':_0x3321b2[_0x7aa1ff(0xf3)]||'Run\x20service\x20command\x20'+_0x3321b2[_0x7aa1ff(0xd2)],'risk':_0x3321b2[_0x7aa1ff(0xde)],..._0x3321b2[_0x7aa1ff(0xde)]===_0x7aa1ff(0xdd)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x3321b2)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x3321b2[_0x7aa1ff(0xac)][_0x7aa1ff(0xfc)](_0x46b0e8=>({'name':_0x46b0e8[_0x7aa1ff(0xce)],'description':_0x46b0e8['description']||_0x46b0e8[_0x7aa1ff(0xce)],'required':_0x46b0e8[_0x7aa1ff(0xfa)]})),'flags':_0x3321b2[_0x7aa1ff(0xb1)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x3321b2),async 'dryRun'(_0x7d8a68){const _0x23ea53=_0x7aa1ff,_0x59d388=await compilePlan(_0x3321b2,_0x7d8a68);return{'method':_0x23ea53(0xcd),'url':_0x3321b2[_0x23ea53(0xd2)],'body':{'target':targetPreview(_0x59d388),'params':_0x59d388[_0x23ea53(0xfe)]},'description':_0x23ea53(0xe9)+_0x3321b2[_0x23ea53(0xd2)]};},async 'execute'(_0x25d32c){const _0x3bd043=_0x7aa1ff,_0x503eea=await compilePlan(_0x3321b2,_0x25d32c),_0x235bcf=Date['now'](),_0x147df4=await executePlan(_0x503eea,_0x3321b2,_0x25d32c),_0x54727f=Date['now']()-_0x235bcf;return{'ok':!![],'data':{'service':_0x5bd6e4[_0x3bd043(0xef)],'command':_0x3321b2[_0x3bd043(0xd2)],'target':targetPreview(_0x503eea),'result':_0x147df4,'elapsed':_0x54727f},'message':'Service\x20command\x20'+_0x3321b2[_0x3bd043(0xd2)]+_0x3bd043(0xbf)+_0x54727f+'ms'};}};}function buildDynamicConfirmationDescription(_0x3b443e){const _0x287836=a59_0x56e5,_0x20d8dc=_0x3b443e[_0x287836(0xf3)]||_0x3b443e['cliPath'],_0x3656aa=_0x3b443e[_0x287836(0xde)]==='high-risk-write'?'该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。':_0x287836(0xc1);return _0x287836(0xe5)+_0x20d8dc+'”。'+_0x3656aa;}function dynamicCommandName(_0xb39c0f){const _0x197ba3=a59_0x56e5;return _0xb39c0f[_0x197ba3(0xb9)][_0x197ba3(0xcb)](0x1)[_0x197ba3(0x109)]('\x20');}function riskTag(_0x338f90){const _0x43fe06=a59_0x56e5;return _0x338f90===_0x43fe06(0xdd)?'':_0x43fe06(0xd3)+_0x338f90+']';}function flagToCommandFlag(_0x248a81){const _0x1a95e5=a59_0x56e5;return{'name':_0x248a81['cliName'],'type':_0x248a81[_0x1a95e5(0xd6)]===_0x1a95e5(0xb0)?_0x1a95e5(0xdf):_0x248a81['type'],'description':_0x248a81[_0x1a95e5(0xf3)]||_0x248a81[_0x1a95e5(0xce)],'required':_0x248a81[_0x1a95e5(0xfa)],'default':isPrimitiveFlagDefault(_0x248a81['default'])?_0x248a81[_0x1a95e5(0xc5)]:undefined,'enum':_0x248a81['enum']};}function a59_0x56e5(_0x12d084,_0x142960){_0x12d084=_0x12d084-0xac;const _0xc87c16=a59_0xc87c();let _0x56e5eb=_0xc87c16[_0x12d084];return _0x56e5eb;}async function compilePlan(_0x57fd48,_0x55f239){const _0x210b72=a59_0x56e5;return compileServiceTreeCommand(_0x57fd48,{'flags':_0x55f239['rawFlags'],'args':_0x55f239[_0x210b72(0xac)],'context':await buildServiceContext(_0x57fd48,_0x55f239)});}async function buildServiceContext(_0x4091c6,_0x1c1598){const _0x36fcac=a59_0x56e5,_0x372467={'appCode':_0x1c1598['appCode'],'env':_0x1c1598[_0x36fcac(0xc4)],'envName':_0x1c1598[_0x36fcac(0xc4)]};if(!usesRuntimeContext(_0x4091c6))return _0x372467;const _0x376d12=await getLoginUserInfo(),_0x5d9f49=pickFirst(_0x376d12[_0x36fcac(0xe7)],_0x376d12['id']);return{..._0x372467,'user':_0x376d12,'userId':_0x5d9f49,'id':_0x376d12['id'],'username':pickFirst(_0x376d12[_0x36fcac(0x104)],_0x376d12[_0x36fcac(0xf6)],_0x376d12['loginName']),'userName':_0x376d12[_0x36fcac(0xf6)],'nickname':pickFirst(_0x376d12[_0x36fcac(0xc0)],_0x376d12[_0x36fcac(0xed)]),'nickName':_0x376d12[_0x36fcac(0xed)],'tenantCode':_0x376d12[_0x36fcac(0xd9)],'employeeId':_0x376d12['employeeId']};}function usesRuntimeContext(_0x18abf3){const _0x23e304=a59_0x56e5;return _0x18abf3[_0x23e304(0xbb)]['some'](_0x2efca1=>typeof _0x2efca1[_0x23e304(0x108)]===_0x23e304(0xdf)&&(_0x2efca1[_0x23e304(0x108)][_0x23e304(0xf9)](_0x23e304(0xd8))||_0x2efca1[_0x23e304(0x108)]['startsWith'](_0x23e304(0xd5))));}function pickFirst(..._0x41fdd8){const _0x3ac0af=a59_0x56e5;return _0x41fdd8[_0x3ac0af(0xc8)](_0x22831d=>_0x22831d!==undefined&&_0x22831d!==null);}async function executePlan(_0x2048f5,_0x1be6e5,_0x4a3b5c){const _0x2ce59f=a59_0x56e5;if(_0x2048f5[_0x2ce59f(0xb2)]===_0x2ce59f(0x103)){const _0x50c81a=await resolveDatasetCode(_0x2048f5,_0x1be6e5,_0x4a3b5c);return executeData(_0x50c81a,_0x2048f5[_0x2ce59f(0x102)],_0x2048f5['params']);}if(_0x2048f5[_0x2ce59f(0xb2)]==='sql'){if(!_0x2048f5[_0x2ce59f(0xe0)])throw CliErrors['validation']('Service\x20command\x20'+_0x1be6e5[_0x2ce59f(0xd2)]+_0x2ce59f(0xe6));return executeSdkSql(_0x2048f5[_0x2ce59f(0xe0)],normalizeScalarParams(_0x2048f5[_0x2ce59f(0xfe)]));}if(_0x2048f5[_0x2ce59f(0xb2)]==='bff'){const _0x3a4411=_0x2048f5[_0x2ce59f(0xc3)]||_0x2048f5[_0x2ce59f(0x105)]||(_0x2048f5['bffId']==null?'':String(_0x2048f5[_0x2ce59f(0xea)]));if(!_0x3a4411)throw CliErrors['validation'](_0x2ce59f(0xb8)+_0x1be6e5[_0x2ce59f(0xd2)]+_0x2ce59f(0xe8));return executeSdkBff(_0x3a4411,_0x2048f5[_0x2ce59f(0xfe)]);}throw CliErrors['validation'](_0x2ce59f(0xf8)+_0x2048f5[_0x2ce59f(0xb2)]);}function a59_0xc87c(){const _0x38039b=['Service\x20command\x20','fullPath','4283024AQnoZp','mapTo','61887zXlgSE','validation','appBindings','\x20completed\x20in\x20','nickname','该命令被清单标记为写入,可能修改业务数据或服务状态。','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','scriptName','envName','default','dbtableConfig','1394916SoPjHZ','find','flatMap','\x20\x20\x20\x20datatable:\x20','slice','operator','SERVICE_TREE','name','10375869tqpYEM','2843AXhkYt','push','cliPath','\x20\x20[','appCode','ctx.','type','\x20\x20\x20\x20command:\x20','context.','tenantCode','length','4317820fzTvYs','appRef','read','risk','string','sqlCode','\x20<command>\x20[flags]','target','appcode','app','将通过\x20Service\x20Tree\x20执行“','\x20requires\x20target.sqlCode.','userId','\x20requires\x20target.functionName.','Preview\x20dynamic\x20service\x20command:\x20','bffId','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','tree','nickName','remainingArgs','service','`\x20to\x20inspect\x20the\x20manifest.','Commands:','\x20\x20\x20\x20sqlCode:\x20','description','\x20\x20MAP\x20TO','datatable','userName','\x20\x20\x20\x20','Unsupported\x20service\x20target\x20kind:\x20','startsWith','required','Cannot\x20resolve\x20datatable\x20\x22','map','trim','params','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','env','filter','command','data','username','bffCode','number','padEnd','source','join','commands','args','\x20\x20\x20\x20datasetCode:\x20','fromEntries','\x20service\x20detail\x20--service\x20','json','flags','kind','\x20->\x20','\x20\x20\x20\x20kind:\x20\x20\x20\x20','datasetCode','1854986VzETUz','code'];a59_0xc87c=function(){return _0x38039b;};return a59_0xc87c();}async function resolveDatasetCode(_0x426f19,_0x56c00a,_0xeae0d5){const _0x217aaf=a59_0x56e5;if(_0x426f19[_0x217aaf(0xb5)])return _0x426f19[_0x217aaf(0xb5)];if(!_0x426f19['datatable'])throw CliErrors[_0x217aaf(0xbd)](_0x217aaf(0xb8)+_0x56c00a[_0x217aaf(0xd2)]+_0x217aaf(0xff));const _0x3fb377=await listDatasets(_0xeae0d5[_0x217aaf(0xd4)]),_0x2d511f=_0x3fb377['find'](_0x2fc41f=>_0x2fc41f[_0x217aaf(0xc6)]?.['tableName']===_0x426f19[_0x217aaf(0xf5)]);if(!_0x2d511f?.[_0x217aaf(0xb7)])throw CliErrors['validation'](_0x217aaf(0xfb)+_0x426f19[_0x217aaf(0xf5)]+_0x217aaf(0xeb)+_0xeae0d5[_0x217aaf(0xd4)]+'.',_0x217aaf(0xc2));return _0x2d511f[_0x217aaf(0xb7)];}function applyAppBinding(_0x19d951,_0x51a60b,_0x1c6f64){const _0x4a828f=a59_0x56e5,_0x4031d6=_0x51a60b['target'][_0x4a828f(0xdc)];if(!_0x4031d6)return;const _0x13adc1=_0x19d951[_0x4a828f(0xbe)][_0x4031d6];if(!_0x13adc1)throw CliErrors[_0x4a828f(0xbd)]('Unknown\x20appRef\x20\x22'+_0x4031d6+'\x22\x20in\x20service\x20command\x20'+_0x51a60b[_0x4a828f(0xd2)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x330cb3=_0x13adc1[_0x4a828f(0xe3)]||_0x13adc1[_0x4a828f(0xd4)];_0x330cb3&&!hasText(_0x1c6f64[_0x4a828f(0xe3)])&&(_0x1c6f64['appcode']=_0x330cb3),_0x13adc1['app']&&!hasText(_0x1c6f64[_0x4a828f(0xe4)])&&!hasText(_0x1c6f64[_0x4a828f(0xe3)])&&(_0x1c6f64[_0x4a828f(0xe4)]=_0x13adc1[_0x4a828f(0xe4)]),_0x13adc1[_0x4a828f(0x100)]&&!hasText(_0x1c6f64['env'])&&(_0x1c6f64['env']=_0x13adc1['env']);}function renderDynamicCommandHelp(_0x98d907){const _0x453090=a59_0x56e5,_0x58a458=['\x20\x20SERVICE\x20TREE\x20TARGET',_0x453090(0xb4)+_0x98d907[_0x453090(0xe2)][_0x453090(0xb2)],_0x453090(0xd7)+_0x98d907['target'][_0x453090(0x102)]];if(_0x98d907[_0x453090(0xe2)][_0x453090(0xb5)])_0x58a458[_0x453090(0xd1)](_0x453090(0xad)+_0x98d907[_0x453090(0xe2)][_0x453090(0xb5)]);if(_0x98d907[_0x453090(0xe2)][_0x453090(0xf5)])_0x58a458['push'](_0x453090(0xca)+_0x98d907[_0x453090(0xe2)][_0x453090(0xf5)]);if(_0x98d907[_0x453090(0xe2)][_0x453090(0xe0)])_0x58a458[_0x453090(0xd1)](_0x453090(0xf2)+_0x98d907[_0x453090(0xe2)][_0x453090(0xe0)]);if(_0x98d907[_0x453090(0xe2)]['scriptName'])_0x58a458[_0x453090(0xd1)]('\x20\x20\x20\x20functionName:\x20'+_0x98d907[_0x453090(0xe2)][_0x453090(0xc3)]);if(_0x98d907['mapTo'][_0x453090(0xda)]>0x0){_0x58a458[_0x453090(0xd1)]('',_0x453090(0xf4));for(const _0x5d2d0b of _0x98d907['mapTo']){_0x58a458[_0x453090(0xd1)](_0x453090(0xf7)+(_0x5d2d0b[_0x453090(0x108)]||'const')+_0x453090(0xb3)+_0x5d2d0b[_0x453090(0xe2)]+(_0x5d2d0b[_0x453090(0xcc)]?'.'+_0x5d2d0b[_0x453090(0xcc)]:''));}}return _0x58a458[_0x453090(0x109)]('\x0a');}function targetPreview(_0x76c6dd){const _0x54cae7=a59_0x56e5;return{'kind':_0x76c6dd[_0x54cae7(0xb2)],'command':_0x76c6dd[_0x54cae7(0x102)],'appRef':_0x76c6dd[_0x54cae7(0xdc)],'datasetCode':_0x76c6dd[_0x54cae7(0xb5)],'datatable':_0x76c6dd[_0x54cae7(0xf5)],'sqlCode':_0x76c6dd['sqlCode'],'bffCode':_0x76c6dd['bffCode'],'bffId':_0x76c6dd[_0x54cae7(0xea)],'functionName':_0x76c6dd[_0x54cae7(0xc3)]};}function normalizeScalarParams(_0x432b6c){const _0x4e062b=a59_0x56e5;return Object[_0x4e062b(0xae)](Object['entries'](_0x432b6c)[_0x4e062b(0x101)](([,_0xca3b41])=>typeof _0xca3b41===_0x4e062b(0xdf)||typeof _0xca3b41===_0x4e062b(0x106)));}function hasText(_0x24a3bf){const _0x27033e=a59_0x56e5;return typeof _0x24a3bf===_0x27033e(0xdf)&&_0x24a3bf[_0x27033e(0xfd)]()['length']>0x0;}function isPrimitiveFlagDefault(_0x4a2555){const _0x3c2aa0=a59_0x56e5;return _0x4a2555===undefined||typeof _0x4a2555==='string'||typeof _0x4a2555===_0x3c2aa0(0x106)||typeof _0x4a2555==='boolean';}
@@ -1 +1 @@
1
- (function(_0x11a988,_0x5aaba4){const _0x1d70ce=a60_0x45d1,_0x52f556=_0x11a988();while(!![]){try{const _0x1546e3=parseInt(_0x1d70ce(0xbf))/0x1+-parseInt(_0x1d70ce(0xa9))/0x2*(parseInt(_0x1d70ce(0xa3))/0x3)+parseInt(_0x1d70ce(0xa1))/0x4+parseInt(_0x1d70ce(0xb1))/0x5*(parseInt(_0x1d70ce(0xbd))/0x6)+parseInt(_0x1d70ce(0xa4))/0x7+-parseInt(_0x1d70ce(0xaa))/0x8+parseInt(_0x1d70ce(0xc6))/0x9*(-parseInt(_0x1d70ce(0xb9))/0xa);if(_0x1546e3===_0x5aaba4)break;else _0x52f556['push'](_0x52f556['shift']());}catch(_0x2cf747){_0x52f556['push'](_0x52f556['shift']());}}}(a60_0x5c5c,0x9e0d9));export function adaptServiceTreeManifestForLegacyFramework(_0x4a1168){const _0x225db3=a60_0x45d1,_0x273890=cloneJsonValue(_0x4a1168),_0x1f38b3=[];if(!isObjectRecord(_0x273890))return{'manifest':_0x273890,'errors':_0x1f38b3};return Array[_0x225db3(0xc1)](_0x273890['commands'])&&_0x273890[_0x225db3(0xbc)][_0x225db3(0xab)]((_0x2b29db,_0x49261e)=>{const _0x5996d2=_0x225db3;if(!isObjectRecord(_0x2b29db))return;adaptBffTarget(_0x2b29db[_0x5996d2(0xb8)],'$.commands['+_0x49261e+_0x5996d2(0xa2),_0x1f38b3);}),adaptResources(_0x273890[_0x225db3(0xb4)],_0x225db3(0xae),_0x1f38b3),{'manifest':_0x273890,'errors':_0x1f38b3};}export function toPublicServiceTreeTarget(_0x45a635){const _0x2b78a7=a60_0x45d1,{scriptName:_0x295384,..._0x5bc363}=_0x45a635;return typeof _0x295384===_0x2b78a7(0xaf)&&_0x295384['trim']()&&(_0x5bc363[_0x2b78a7(0xb6)]=_0x295384),_0x5bc363;}export function toPublicNormalizedServiceTree(_0x5ef15a){const _0x441668=a60_0x45d1;return{..._0x5ef15a,'commands':_0x5ef15a[_0x441668(0xbc)][_0x441668(0xa5)](_0x332ef0=>({..._0x332ef0,'target':toPublicServiceTreeTarget(_0x332ef0[_0x441668(0xb8)])}))};}function a60_0x45d1(_0x32349f,_0x2be2ec){_0x32349f=_0x32349f-0xa1;const _0x5c5c5c=a60_0x5c5c();let _0x45d127=_0x5c5c5c[_0x32349f];return _0x45d127;}function adaptResources(_0x46cc60,_0x2a9aa3,_0x3460f4){const _0xfd32dd=a60_0x45d1;if(!isObjectRecord(_0x46cc60))return;for(const [_0x412196,_0x13cb45]of Object[_0xfd32dd(0xba)](_0x46cc60)){if(!isObjectRecord(_0x13cb45))continue;const _0xb6d3ff=_0x2a9aa3+'.'+_0x412196;if(isObjectRecord(_0x13cb45['actions']))for(const [_0x3b6a64,_0x364b4f]of Object[_0xfd32dd(0xba)](_0x13cb45[_0xfd32dd(0xc4)])){if(!isObjectRecord(_0x364b4f))continue;const _0x298336=_0xb6d3ff+_0xfd32dd(0xc5)+_0x3b6a64,_0xdd19ef=isObjectRecord(_0x364b4f['target'])&&_0x364b4f[_0xfd32dd(0xb8)][_0xfd32dd(0xb7)]===_0xfd32dd(0xc7);adaptBffTarget(_0x364b4f[_0xfd32dd(0xb8)],_0x298336+'.target',_0x3460f4),(_0xdd19ef||isBffAction(_0x364b4f))&&adaptFunctionNameField(_0x364b4f,_0x298336,_0x3460f4);}adaptResources(_0x13cb45['resources'],_0xb6d3ff+_0xfd32dd(0xbb),_0x3460f4);}}function a60_0x5c5c(){const _0xa3f927=['isArray','.functionName','hasOwnProperty','actions','.actions.','14475897XrHfJj','bff','4463416JPPBWW','].target','39XqQjTD','2104088NXfIeN','map','prototype','push','call','550TjRLnF','407544QmfRkL','forEach','object','error','$.resources','string','trim','45xylDIK','action','.scriptName','resources','bff.exec','functionName','kind','target','10IpGoDg','entries','.resources','commands','393726VPXCRq','scriptName','303309UZssfJ','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'];a60_0x5c5c=function(){return _0xa3f927;};return a60_0x5c5c();}function adaptBffTarget(_0x1f9b43,_0x35fbb7,_0x2d7a3a){const _0x4ffa80=a60_0x45d1;if(!isObjectRecord(_0x1f9b43)||_0x1f9b43[_0x4ffa80(0xb7)]!==_0x4ffa80(0xc7))return;adaptFunctionNameField(_0x1f9b43,_0x35fbb7,_0x2d7a3a);}function adaptFunctionNameField(_0x46cc08,_0x14a237,_0x489860){const _0x103b0a=a60_0x45d1;Object[_0x103b0a(0xa6)]['hasOwnProperty'][_0x103b0a(0xa8)](_0x46cc08,_0x103b0a(0xbe))&&_0x489860[_0x103b0a(0xa7)]({'level':_0x103b0a(0xad),'path':_0x14a237+_0x103b0a(0xb3),'message':_0x103b0a(0xc0)});if(Object['prototype'][_0x103b0a(0xc3)]['call'](_0x46cc08,'functionName')){if(typeof _0x46cc08[_0x103b0a(0xb6)]!=='string'||!_0x46cc08[_0x103b0a(0xb6)][_0x103b0a(0xb0)]()){_0x489860[_0x103b0a(0xa7)]({'level':_0x103b0a(0xad),'path':_0x14a237+_0x103b0a(0xc2),'message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x46cc08[_0x103b0a(0xb6)];return;}_0x46cc08['scriptName']=_0x46cc08[_0x103b0a(0xb6)],delete _0x46cc08['functionName'];}}function isBffAction(_0x24470c){const _0x3f6b2f=a60_0x45d1;return _0x24470c[_0x3f6b2f(0xb7)]===_0x3f6b2f(0xc7)||_0x24470c[_0x3f6b2f(0xb2)]===_0x3f6b2f(0xb5)||_0x24470c['target']===_0x3f6b2f(0xb5);}function cloneJsonValue(_0x3dca53){const _0x99d7dd=a60_0x45d1;if(Array[_0x99d7dd(0xc1)](_0x3dca53))return _0x3dca53[_0x99d7dd(0xa5)](_0x33c5e5=>cloneJsonValue(_0x33c5e5));if(isObjectRecord(_0x3dca53))return Object['fromEntries'](Object[_0x99d7dd(0xba)](_0x3dca53)[_0x99d7dd(0xa5)](([_0x386147,_0x36754d])=>[_0x386147,cloneJsonValue(_0x36754d)]));return _0x3dca53;}function isObjectRecord(_0x1cc517){const _0x38dbc1=a60_0x45d1;return Boolean(_0x1cc517)&&typeof _0x1cc517===_0x38dbc1(0xac)&&!Array[_0x38dbc1(0xc1)](_0x1cc517);}
1
+ (function(_0x4490a8,_0xf8c8e4){const _0x3195ab=a60_0x5beb,_0x13b202=_0x4490a8();while(!![]){try{const _0x1db556=-parseInt(_0x3195ab(0x151))/0x1*(parseInt(_0x3195ab(0x157))/0x2)+-parseInt(_0x3195ab(0x155))/0x3+parseInt(_0x3195ab(0x14b))/0x4*(-parseInt(_0x3195ab(0x148))/0x5)+-parseInt(_0x3195ab(0x146))/0x6+parseInt(_0x3195ab(0x138))/0x7+parseInt(_0x3195ab(0x137))/0x8+-parseInt(_0x3195ab(0x156))/0x9*(-parseInt(_0x3195ab(0x153))/0xa);if(_0x1db556===_0xf8c8e4)break;else _0x13b202['push'](_0x13b202['shift']());}catch(_0x55df42){_0x13b202['push'](_0x13b202['shift']());}}}(a60_0x3e2c,0x5d053));export function adaptServiceTreeManifestForLegacyFramework(_0x527848){const _0x928acb=a60_0x5beb,_0x372d3b=cloneJsonValue(_0x527848),_0x1016b8=[];if(!isObjectRecord(_0x372d3b))return{'manifest':_0x372d3b,'errors':_0x1016b8};return Array['isArray'](_0x372d3b['commands'])&&_0x372d3b[_0x928acb(0x143)]['forEach']((_0x2e8b95,_0x29dab2)=>{const _0x3355c8=_0x928acb;if(!isObjectRecord(_0x2e8b95))return;adaptBffTarget(_0x2e8b95[_0x3355c8(0x131)],_0x3355c8(0x154)+_0x29dab2+_0x3355c8(0x14c),_0x1016b8);}),adaptResources(_0x372d3b[_0x928acb(0x13b)],_0x928acb(0x134),_0x1016b8),{'manifest':_0x372d3b,'errors':_0x1016b8};}export function toPublicServiceTreeTarget(_0x444384){const _0x1c3218=a60_0x5beb,{scriptName:_0xabc80c,..._0xe2662e}=_0x444384;return typeof _0xabc80c==='string'&&_0xabc80c[_0x1c3218(0x136)]()&&(_0xe2662e[_0x1c3218(0x13f)]=_0xabc80c),_0xe2662e;}export function toPublicNormalizedServiceTree(_0x51f4ca){const _0x21e28d=a60_0x5beb;return{..._0x51f4ca,'commands':_0x51f4ca[_0x21e28d(0x143)]['map'](_0x56aa42=>({..._0x56aa42,'target':toPublicServiceTreeTarget(_0x56aa42[_0x21e28d(0x131)])}))};}function adaptResources(_0x414eb5,_0x500ddb,_0x1bd18d){const _0x3ce0c2=a60_0x5beb;if(!isObjectRecord(_0x414eb5))return;for(const [_0x5e6dec,_0x4bc3c1]of Object[_0x3ce0c2(0x149)](_0x414eb5)){if(!isObjectRecord(_0x4bc3c1))continue;const _0x453aa9=_0x500ddb+'.'+_0x5e6dec;if(isObjectRecord(_0x4bc3c1[_0x3ce0c2(0x13d)]))for(const [_0xb74e40,_0x2ed39a]of Object['entries'](_0x4bc3c1[_0x3ce0c2(0x13d)])){if(!isObjectRecord(_0x2ed39a))continue;const _0x58d47b=_0x453aa9+_0x3ce0c2(0x135)+_0xb74e40,_0x4990cc=isObjectRecord(_0x2ed39a[_0x3ce0c2(0x131)])&&_0x2ed39a[_0x3ce0c2(0x131)]['kind']===_0x3ce0c2(0x132);adaptBffTarget(_0x2ed39a[_0x3ce0c2(0x131)],_0x58d47b+'.target',_0x1bd18d),(_0x4990cc||isBffAction(_0x2ed39a))&&adaptFunctionNameField(_0x2ed39a,_0x58d47b,_0x1bd18d);}adaptResources(_0x4bc3c1['resources'],_0x453aa9+_0x3ce0c2(0x140),_0x1bd18d);}}function adaptBffTarget(_0x2fd894,_0x3ef614,_0x5adb4f){const _0x34ca7c=a60_0x5beb;if(!isObjectRecord(_0x2fd894)||_0x2fd894[_0x34ca7c(0x14f)]!==_0x34ca7c(0x132))return;adaptFunctionNameField(_0x2fd894,_0x3ef614,_0x5adb4f);}function a60_0x3e2c(){const _0x280792=['error','actions','string','functionName','.resources','push','object','commands','call','prototype','3209898MdaMpI','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','157405qOXviQ','entries','map','96KOvCCu','].target','action','hasOwnProperty','kind','.scriptName','5027sTjMwP','bff.exec','3630zmnbwW','$.commands[','17736KLzvkl','35658IfoyJO','286eciDoi','target','bff','.functionName','$.resources','.actions.','trim','3739608XVnqsI','3434578VIfhKL','functionName\x20must\x20be\x20a\x20non-empty\x20string.','isArray','resources'];a60_0x3e2c=function(){return _0x280792;};return a60_0x3e2c();}function adaptFunctionNameField(_0x17dc0b,_0x1bc12e,_0x580418){const _0x2ace59=a60_0x5beb;Object[_0x2ace59(0x145)][_0x2ace59(0x14e)][_0x2ace59(0x144)](_0x17dc0b,'scriptName')&&_0x580418[_0x2ace59(0x141)]({'level':_0x2ace59(0x13c),'path':_0x1bc12e+_0x2ace59(0x150),'message':_0x2ace59(0x147)});if(Object[_0x2ace59(0x145)][_0x2ace59(0x14e)][_0x2ace59(0x144)](_0x17dc0b,_0x2ace59(0x13f))){if(typeof _0x17dc0b[_0x2ace59(0x13f)]!==_0x2ace59(0x13e)||!_0x17dc0b[_0x2ace59(0x13f)][_0x2ace59(0x136)]()){_0x580418['push']({'level':'error','path':_0x1bc12e+_0x2ace59(0x133),'message':_0x2ace59(0x139)}),delete _0x17dc0b[_0x2ace59(0x13f)];return;}_0x17dc0b['scriptName']=_0x17dc0b[_0x2ace59(0x13f)],delete _0x17dc0b[_0x2ace59(0x13f)];}}function isBffAction(_0x24708d){const _0x2368b8=a60_0x5beb;return _0x24708d[_0x2368b8(0x14f)]===_0x2368b8(0x132)||_0x24708d[_0x2368b8(0x14d)]==='bff.exec'||_0x24708d[_0x2368b8(0x131)]===_0x2368b8(0x152);}function cloneJsonValue(_0x5bc8d3){const _0x26b687=a60_0x5beb;if(Array[_0x26b687(0x13a)](_0x5bc8d3))return _0x5bc8d3[_0x26b687(0x14a)](_0x469a76=>cloneJsonValue(_0x469a76));if(isObjectRecord(_0x5bc8d3))return Object['fromEntries'](Object[_0x26b687(0x149)](_0x5bc8d3)[_0x26b687(0x14a)](([_0xb93eef,_0x196965])=>[_0xb93eef,cloneJsonValue(_0x196965)]));return _0x5bc8d3;}function a60_0x5beb(_0x5ef94e,_0x5c39eb){_0x5ef94e=_0x5ef94e-0x131;const _0x3e2c3c=a60_0x3e2c();let _0x5beb28=_0x3e2c3c[_0x5ef94e];return _0x5beb28;}function isObjectRecord(_0x4f6d53){const _0x4848d6=a60_0x5beb;return Boolean(_0x4f6d53)&&typeof _0x4f6d53===_0x4848d6(0x142)&&!Array[_0x4848d6(0x13a)](_0x4f6d53);}
@@ -1 +1 @@
1
- const a61_0x46c72b=a61_0x512a;(function(_0x3222c5,_0x373571){const _0x9a5e54=a61_0x512a,_0x55646c=_0x3222c5();while(!![]){try{const _0x2703f5=-parseInt(_0x9a5e54(0xa0))/0x1+-parseInt(_0x9a5e54(0x71))/0x2+-parseInt(_0x9a5e54(0x90))/0x3+parseInt(_0x9a5e54(0xaa))/0x4+parseInt(_0x9a5e54(0xa1))/0x5+-parseInt(_0x9a5e54(0x7b))/0x6+parseInt(_0x9a5e54(0x73))/0x7*(parseInt(_0x9a5e54(0x7d))/0x8);if(_0x2703f5===_0x373571)break;else _0x55646c['push'](_0x55646c['shift']());}catch(_0x5c0294){_0x55646c['push'](_0x55646c['shift']());}}}(a61_0xafbc,0x6bf99));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 a61_0x512a(_0xefb9f5,_0x2f3520){_0xefb9f5=_0xefb9f5-0x6c;const _0xafbc9a=a61_0xafbc();let _0x512a45=_0xafbc9a[_0xefb9f5];return _0x512a45;}function a61_0xafbc(){const _0x10e4f5=['warnings','serviceCount','registryPath','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','1405275dRomeE','updated','imported','Service\x20manifest\x20validation\x20passed.','source','manifest','service','commands','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','\x20service(s).','target','string','map','hash','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','Service\x20Tree\x20manifest\x20file\x20path','457744JfgLps','800445vcuICJ','manifests','WRITE','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','type','serviceCode','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','registryServiceCode','从本地运行态注册表移除\x20Service\x20Tree\x20清单','2146808ZlRdBn','import','length','将\x20Service\x20Tree\x20清单导入本地运行态注册表','errors','Imported\x20','importedAt','lower\x20kebab-case\x20service\x20code','flags','Local\x20service\x20not\x20found:\x20','normalizedManifest','detail','Imported','entries','reduce','kind','cliPath','version','Updated','\x20service\x20','512026BRzRjP','\x20service(s),\x20updated\x20','203KFLtbb','replaced','risk','required','write','name','registry','read','2226132sONRtX','cliName','358256KgjBdV','export','filePath','entry','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','validate','registryIndex','remove','Removed\x20service\x20','Exported\x20service\x20','report','Service\x20registry\x20validation\x20passed.','str','list','file'];a61_0xafbc=function(){return _0x10e4f5;};return a61_0xafbc();}const FILE_FLAG={'name':a61_0x46c72b(0x8b),'type':a61_0x46c72b(0x9b),'required':!![],'description':a61_0x46c72b(0x9f)},SERVICE_FLAG={'name':'service','type':a61_0x46c72b(0x9b),'required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a61_0x46c72b(0xb1)}};function summarizeService(_0x31421c){const _0x3ed32d=a61_0x46c72b;return{'serviceCode':_0x31421c[_0x3ed32d(0xa6)],'name':_0x31421c[_0x3ed32d(0xb4)][_0x3ed32d(0x96)][_0x3ed32d(0x78)],'version':_0x31421c[_0x3ed32d(0x6e)],'importedAt':_0x31421c[_0x3ed32d(0xb0)],'source':_0x31421c['source'],'commandCount':_0x31421c['normalizedManifest']['commands'][_0x3ed32d(0xac)],'commands':_0x31421c[_0x3ed32d(0xb4)]['commands']['map'](_0x22c963=>({'path':_0x22c963[_0x3ed32d(0x6d)],'description':_0x22c963['description'],'risk':_0x22c963[_0x3ed32d(0x75)],'target':toPublicServiceTreeTarget(_0x22c963['target']),'flags':_0x22c963[_0x3ed32d(0xb2)]['map'](_0x7fbcea=>({'name':_0x7fbcea[_0x3ed32d(0x78)],'cliName':_0x7fbcea[_0x3ed32d(0x7c)],'type':_0x7fbcea[_0x3ed32d(0xa5)],'required':_0x7fbcea[_0x3ed32d(0x76)]===!![]}))}))};}function summarizeLoadedManifest(_0x20841a){const _0x575833=a61_0x46c72b;return{'service':_0x20841a[_0x575833(0xb4)]?.[_0x575833(0x96)],'version':_0x20841a['normalizedManifest']?.[_0x575833(0x6e)],'commandCount':_0x20841a[_0x575833(0xb4)]?.[_0x575833(0x97)][_0x575833(0xac)]??0x0,'commands':_0x20841a[_0x575833(0xb4)]?.['commands'][_0x575833(0x9c)](_0x325386=>({'path':_0x325386[_0x575833(0x6d)],'risk':_0x325386[_0x575833(0x75)],'target':toPublicServiceTreeTarget(_0x325386[_0x575833(0x9a)])}))??[],'registryIndex':_0x20841a[_0x575833(0x83)],'registryServiceCode':_0x20841a[_0x575833(0xa8)],'errors':_0x20841a[_0x575833(0x87)][_0x575833(0xae)],'warnings':_0x20841a['report'][_0x575833(0x8c)]};}export const serviceDefinitions=[{'service':'service','command':a61_0x46c72b(0x82),'description':a61_0x46c72b(0x81),'risk':a61_0x46c72b(0x7a),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x5be662){const _0x36569e=a61_0x46c72b,_0x4ae879=loadServiceManifestFromFile(_0x5be662[_0x36569e(0x89)]('file'));if(!_0x4ae879['report']['ok'])return{'ok':![],'data':{'file':_0x4ae879['filePath'],'hash':_0x4ae879[_0x36569e(0x9d)],'kind':_0x4ae879['kind'],'serviceCount':_0x4ae879['manifests']['length'],'services':_0x4ae879[_0x36569e(0xa2)][_0x36569e(0x9c)](summarizeLoadedManifest),'errors':_0x4ae879[_0x36569e(0x87)][_0x36569e(0xae)],'warnings':_0x4ae879['report'][_0x36569e(0x8c)]},'message':formatValidationFailure(_0x4ae879[_0x36569e(0x87)])};if(_0x4ae879['kind']===_0x36569e(0x79)||_0x4ae879[_0x36569e(0xa2)][_0x36569e(0xac)]!==0x1)return{'ok':!![],'data':{'file':_0x4ae879[_0x36569e(0x7f)],'hash':_0x4ae879[_0x36569e(0x9d)],'kind':_0x4ae879[_0x36569e(0x6c)],'serviceCount':_0x4ae879['manifests'][_0x36569e(0xac)],'commandCount':_0x4ae879[_0x36569e(0xa2)][_0x36569e(0xb8)]((_0x2a28b7,_0x452a03)=>_0x2a28b7+(_0x452a03['normalizedManifest']?.[_0x36569e(0x97)][_0x36569e(0xac)]??0x0),0x0),'services':_0x4ae879['manifests'][_0x36569e(0x9c)](summarizeLoadedManifest),'warnings':_0x4ae879['report'][_0x36569e(0x8c)]},'message':_0x36569e(0x88)};return{'ok':!![],'data':{'file':_0x4ae879['filePath'],'hash':_0x4ae879['hash'],'kind':_0x4ae879['kind'],'service':_0x4ae879[_0x36569e(0xb4)]?.[_0x36569e(0x96)],'version':_0x4ae879[_0x36569e(0xb4)]?.[_0x36569e(0x6e)],'commandCount':_0x4ae879['normalizedManifest']?.[_0x36569e(0x97)]['length']??0x0,'commands':_0x4ae879['normalizedManifest']?.['commands'][_0x36569e(0x9c)](_0x173784=>({'path':_0x173784[_0x36569e(0x6d)],'risk':_0x173784[_0x36569e(0x75)],'target':toPublicServiceTreeTarget(_0x173784[_0x36569e(0x9a)])})),'warnings':_0x4ae879['report'][_0x36569e(0x8c)]},'message':_0x36569e(0x93)};}},{'service':a61_0x46c72b(0x96),'command':a61_0x46c72b(0xab),'description':a61_0x46c72b(0xad),'risk':a61_0x46c72b(0x77),'confirmationDescription':a61_0x46c72b(0xa4),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x2aad4d){const _0x38ce8a=a61_0x46c72b,_0x3afc90=loadServiceManifestFromFile(_0x2aad4d['str'](_0x38ce8a(0x8b)));return{'method':_0x38ce8a(0xa3),'url':getServiceRegistryPath(),'body':{'file':_0x3afc90[_0x38ce8a(0x7f)],'hash':_0x3afc90[_0x38ce8a(0x9d)],'kind':_0x3afc90[_0x38ce8a(0x6c)],'ok':_0x3afc90[_0x38ce8a(0x87)]['ok'],'service':_0x3afc90[_0x38ce8a(0xb4)]?.[_0x38ce8a(0x96)],'version':_0x3afc90[_0x38ce8a(0xb4)]?.[_0x38ce8a(0x6e)],'serviceCount':_0x3afc90[_0x38ce8a(0xa2)][_0x38ce8a(0xac)],'services':_0x3afc90[_0x38ce8a(0xa2)][_0x38ce8a(0x9c)](_0x4e7359=>({'service':_0x4e7359[_0x38ce8a(0xb4)]?.[_0x38ce8a(0x96)],'version':_0x4e7359[_0x38ce8a(0xb4)]?.[_0x38ce8a(0x6e)],'commandCount':_0x4e7359['normalizedManifest']?.[_0x38ce8a(0x97)][_0x38ce8a(0xac)]??0x0,'errors':_0x4e7359[_0x38ce8a(0x87)][_0x38ce8a(0xae)]})),'errors':_0x3afc90[_0x38ce8a(0x87)][_0x38ce8a(0xae)],'commandCount':_0x3afc90[_0x38ce8a(0xb4)]?.[_0x38ce8a(0x97)][_0x38ce8a(0xac)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x4d4f41){const _0x4402ed=a61_0x46c72b,_0x2891b6=importServiceManifest(_0x4d4f41[_0x4402ed(0x89)](_0x4402ed(0x8b)));if(_0x2891b6['entries'][_0x4402ed(0xac)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x2891b6[_0x4402ed(0x8e)],'imported':_0x2891b6[_0x4402ed(0x92)],'updated':_0x2891b6[_0x4402ed(0x91)],'serviceCount':_0x2891b6['serviceCount'],'services':_0x2891b6[_0x4402ed(0xb7)][_0x4402ed(0x9c)](summarizeService)},'message':_0x4402ed(0xaf)+_0x2891b6[_0x4402ed(0x92)]+_0x4402ed(0x72)+_0x2891b6[_0x4402ed(0x91)]+_0x4402ed(0x99)};return{'ok':!![],'data':{'registryPath':_0x2891b6[_0x4402ed(0x8e)],'replaced':_0x2891b6[_0x4402ed(0x74)],'imported':_0x2891b6['imported'],'updated':_0x2891b6[_0x4402ed(0x91)],'serviceCount':_0x2891b6[_0x4402ed(0x8d)],'service':summarizeService(_0x2891b6[_0x4402ed(0x80)])},'message':(_0x2891b6[_0x4402ed(0x74)]?_0x4402ed(0x6f):_0x4402ed(0xb6))+_0x4402ed(0x70)+_0x2891b6['entry'][_0x4402ed(0xa6)]+'.'};}},{'service':a61_0x46c72b(0x96),'command':a61_0x46c72b(0x7e),'description':a61_0x46c72b(0x9e),'risk':'write','confirmationDescription':a61_0x46c72b(0x8f),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x35b733){const _0x5673ca=a61_0x46c72b,_0x214141=getLocalServiceEntry(_0x35b733['str']('service'));return{'method':'WRITE','url':_0x35b733[_0x5673ca(0x89)]('file'),'body':{'service':_0x35b733['str'](_0x5673ca(0x96)),'found':Boolean(_0x214141),'version':_0x214141?.['version'],'source':_0x214141?.[_0x5673ca(0x94)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x2e92c4){const _0x24d85d=a61_0x46c72b,_0x32f671=exportServiceManifest(_0x2e92c4[_0x24d85d(0x89)]('service'),_0x2e92c4['str'](_0x24d85d(0x8b)));return{'ok':!![],'data':{'registryPath':_0x32f671[_0x24d85d(0x8e)],'file':_0x32f671[_0x24d85d(0x7f)],'service':summarizeService(_0x32f671[_0x24d85d(0x80)])},'message':_0x24d85d(0x86)+_0x32f671['entry']['serviceCode']+'.'};}},{'service':a61_0x46c72b(0x96),'command':a61_0x46c72b(0x8a),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':a61_0x46c72b(0x7a),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x5d21e8=a61_0x46c72b,_0xe1de29=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0xe1de29[_0x5d21e8(0xac)],'services':_0xe1de29[_0x5d21e8(0x9c)](summarizeService)}};}},{'service':a61_0x46c72b(0x96),'command':a61_0x46c72b(0x84),'description':a61_0x46c72b(0xa9),'risk':a61_0x46c72b(0x77),'confirmationDescription':'将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x411223){const _0x50dc05=a61_0x46c72b,_0x437863=getLocalServiceEntry(_0x411223[_0x50dc05(0x89)](_0x50dc05(0x96)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x411223[_0x50dc05(0x89)](_0x50dc05(0x96)),'found':Boolean(_0x437863),'version':_0x437863?.['version'],'source':_0x437863?.[_0x50dc05(0x94)]},'description':_0x50dc05(0xa7)};},async 'execute'(_0x19c13a){const _0x20c255=a61_0x46c72b,_0xd10bb1=removeServiceManifest(_0x19c13a[_0x20c255(0x89)](_0x20c255(0x96)));return{'ok':!![],'data':{'registryPath':_0xd10bb1[_0x20c255(0x8e)],'serviceCount':_0xd10bb1[_0x20c255(0x8d)],'service':summarizeService(_0xd10bb1['entry'])},'message':_0x20c255(0x85)+_0xd10bb1[_0x20c255(0x80)][_0x20c255(0xa6)]+'.'};}},{'service':a61_0x46c72b(0x96),'command':a61_0x46c72b(0xb5),'description':a61_0x46c72b(0x98),'risk':a61_0x46c72b(0x7a),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x376cc3){const _0x547edb=a61_0x46c72b,_0x201e54=getLocalServiceEntry(_0x376cc3['str'](_0x547edb(0x96)));if(!_0x201e54)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x376cc3[_0x547edb(0x89)]('service')},'message':_0x547edb(0xb3)+_0x376cc3[_0x547edb(0x89)](_0x547edb(0x96))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x201e54),'manifest':_0x201e54[_0x547edb(0x95)],'normalizedManifest':toPublicNormalizedServiceTree(_0x201e54['normalizedManifest'])}};}}];
1
+ const a61_0x357366=a61_0x3044;(function(_0x75dfe5,_0x356ea2){const _0x4643e5=a61_0x3044,_0x425ef4=_0x75dfe5();while(!![]){try{const _0x163e38=parseInt(_0x4643e5(0x226))/0x1*(parseInt(_0x4643e5(0x21a))/0x2)+parseInt(_0x4643e5(0x1ed))/0x3+-parseInt(_0x4643e5(0x1fc))/0x4+parseInt(_0x4643e5(0x229))/0x5+parseInt(_0x4643e5(0x1fd))/0x6*(parseInt(_0x4643e5(0x228))/0x7)+-parseInt(_0x4643e5(0x205))/0x8*(-parseInt(_0x4643e5(0x224))/0x9)+parseInt(_0x4643e5(0x202))/0xa*(-parseInt(_0x4643e5(0x1f5))/0xb);if(_0x163e38===_0x356ea2)break;else _0x425ef4['push'](_0x425ef4['shift']());}catch(_0x2a372a){_0x425ef4['push'](_0x425ef4['shift']());}}}(a61_0x47c4,0xbbc4f));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 a61_0x47c4(){const _0x539fff=['Service\x20manifest\x20validation\x20passed.','entries','11XQBrCE','warnings','Service\x20registry\x20validation\x20passed.','registry','description','replaced','reduce','3040112xPAyNs','2238NiQGKm','cliName','serviceCount','type','remove','36955780IPYyWQ','Removed\x20service\x20','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','7502560gFHrYA','normalizedManifest','entry','file','filePath','source','cliPath','Exported\x20service\x20','read','\x20service\x20','Imported\x20','hash','\x20service(s),\x20updated\x20','imported','将\x20Service\x20Tree\x20清单导入本地运行态注册表','version','validate','Imported','length','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','service','213090DBhoyH','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','Updated','write','updated','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Service\x20Tree\x20manifest\x20file\x20path','required','str','string','9BuViBU','name','14FCksRn','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','6545BYDMWV','5299665IuFWCv','Local\x20service\x20code,\x20for\x20example\x20crm','manifests','kind','target','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','errors','report','\x20service(s).','risk','map','Local\x20service\x20not\x20found:\x20','export','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','registryServiceCode','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','commands','serviceCode','4159713ZQwvRq','list','WRITE','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','registryPath','lower\x20kebab-case\x20service\x20code'];a61_0x47c4=function(){return _0x539fff;};return a61_0x47c4();}const FILE_FLAG={'name':a61_0x357366(0x208),'type':a61_0x357366(0x223),'required':!![],'description':a61_0x357366(0x220)},SERVICE_FLAG={'name':a61_0x357366(0x219),'type':a61_0x357366(0x223),'required':!![],'description':a61_0x357366(0x22a),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a61_0x357366(0x1f2)}};function a61_0x3044(_0x284bec,_0x4077d4){_0x284bec=_0x284bec-0x1e4;const _0x47c491=a61_0x47c4();let _0x3044fa=_0x47c491[_0x284bec];return _0x3044fa;}function summarizeService(_0x4d0131){const _0x3d5660=a61_0x357366;return{'serviceCode':_0x4d0131[_0x3d5660(0x1ec)],'name':_0x4d0131[_0x3d5660(0x206)][_0x3d5660(0x219)]['name'],'version':_0x4d0131['version'],'importedAt':_0x4d0131['importedAt'],'source':_0x4d0131['source'],'commandCount':_0x4d0131[_0x3d5660(0x206)][_0x3d5660(0x1eb)]['length'],'commands':_0x4d0131[_0x3d5660(0x206)]['commands'][_0x3d5660(0x1e5)](_0x4c1618=>({'path':_0x4c1618[_0x3d5660(0x20b)],'description':_0x4c1618[_0x3d5660(0x1f9)],'risk':_0x4c1618[_0x3d5660(0x1e4)],'target':toPublicServiceTreeTarget(_0x4c1618['target']),'flags':_0x4c1618['flags'][_0x3d5660(0x1e5)](_0x3a9ef2=>({'name':_0x3a9ef2[_0x3d5660(0x225)],'cliName':_0x3a9ef2[_0x3d5660(0x1fe)],'type':_0x3a9ef2[_0x3d5660(0x200)],'required':_0x3a9ef2[_0x3d5660(0x221)]===!![]}))}))};}function summarizeLoadedManifest(_0x1c4236){const _0x291538=a61_0x357366;return{'service':_0x1c4236['normalizedManifest']?.[_0x291538(0x219)],'version':_0x1c4236[_0x291538(0x206)]?.[_0x291538(0x214)],'commandCount':_0x1c4236[_0x291538(0x206)]?.['commands'][_0x291538(0x217)]??0x0,'commands':_0x1c4236[_0x291538(0x206)]?.[_0x291538(0x1eb)][_0x291538(0x1e5)](_0x53393a=>({'path':_0x53393a[_0x291538(0x20b)],'risk':_0x53393a[_0x291538(0x1e4)],'target':toPublicServiceTreeTarget(_0x53393a['target'])}))??[],'registryIndex':_0x1c4236['registryIndex'],'registryServiceCode':_0x1c4236[_0x291538(0x1e9)],'errors':_0x1c4236[_0x291538(0x230)][_0x291538(0x22f)],'warnings':_0x1c4236['report'][_0x291538(0x1f6)]};}export const serviceDefinitions=[{'service':'service','command':a61_0x357366(0x215),'description':a61_0x357366(0x204),'risk':a61_0x357366(0x20d),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x47686c){const _0x48b276=a61_0x357366,_0x29772d=loadServiceManifestFromFile(_0x47686c['str'](_0x48b276(0x208)));if(!_0x29772d[_0x48b276(0x230)]['ok'])return{'ok':![],'data':{'file':_0x29772d[_0x48b276(0x209)],'hash':_0x29772d['hash'],'kind':_0x29772d['kind'],'serviceCount':_0x29772d[_0x48b276(0x22b)][_0x48b276(0x217)],'services':_0x29772d[_0x48b276(0x22b)][_0x48b276(0x1e5)](summarizeLoadedManifest),'errors':_0x29772d[_0x48b276(0x230)][_0x48b276(0x22f)],'warnings':_0x29772d[_0x48b276(0x230)]['warnings']},'message':formatValidationFailure(_0x29772d[_0x48b276(0x230)])};if(_0x29772d[_0x48b276(0x22c)]===_0x48b276(0x1f8)||_0x29772d['manifests'][_0x48b276(0x217)]!==0x1)return{'ok':!![],'data':{'file':_0x29772d['filePath'],'hash':_0x29772d[_0x48b276(0x210)],'kind':_0x29772d['kind'],'serviceCount':_0x29772d['manifests']['length'],'commandCount':_0x29772d[_0x48b276(0x22b)][_0x48b276(0x1fb)]((_0x2c56ae,_0x5d2605)=>_0x2c56ae+(_0x5d2605[_0x48b276(0x206)]?.['commands'][_0x48b276(0x217)]??0x0),0x0),'services':_0x29772d['manifests'][_0x48b276(0x1e5)](summarizeLoadedManifest),'warnings':_0x29772d[_0x48b276(0x230)][_0x48b276(0x1f6)]},'message':_0x48b276(0x1f7)};return{'ok':!![],'data':{'file':_0x29772d[_0x48b276(0x209)],'hash':_0x29772d[_0x48b276(0x210)],'kind':_0x29772d[_0x48b276(0x22c)],'service':_0x29772d[_0x48b276(0x206)]?.[_0x48b276(0x219)],'version':_0x29772d[_0x48b276(0x206)]?.[_0x48b276(0x214)],'commandCount':_0x29772d[_0x48b276(0x206)]?.[_0x48b276(0x1eb)]['length']??0x0,'commands':_0x29772d['normalizedManifest']?.['commands']['map'](_0x5baf3c=>({'path':_0x5baf3c['cliPath'],'risk':_0x5baf3c[_0x48b276(0x1e4)],'target':toPublicServiceTreeTarget(_0x5baf3c[_0x48b276(0x22d)])})),'warnings':_0x29772d[_0x48b276(0x230)][_0x48b276(0x1f6)]},'message':_0x48b276(0x1f3)};}},{'service':a61_0x357366(0x219),'command':'import','description':a61_0x357366(0x213),'risk':a61_0x357366(0x21d),'confirmationDescription':a61_0x357366(0x1ea),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x4bb071){const _0x219316=a61_0x357366,_0x322a36=loadServiceManifestFromFile(_0x4bb071['str'](_0x219316(0x208)));return{'method':_0x219316(0x1ef),'url':getServiceRegistryPath(),'body':{'file':_0x322a36[_0x219316(0x209)],'hash':_0x322a36[_0x219316(0x210)],'kind':_0x322a36[_0x219316(0x22c)],'ok':_0x322a36['report']['ok'],'service':_0x322a36[_0x219316(0x206)]?.[_0x219316(0x219)],'version':_0x322a36[_0x219316(0x206)]?.[_0x219316(0x214)],'serviceCount':_0x322a36[_0x219316(0x22b)][_0x219316(0x217)],'services':_0x322a36['manifests'][_0x219316(0x1e5)](_0x3d1947=>({'service':_0x3d1947['normalizedManifest']?.[_0x219316(0x219)],'version':_0x3d1947['normalizedManifest']?.[_0x219316(0x214)],'commandCount':_0x3d1947[_0x219316(0x206)]?.[_0x219316(0x1eb)][_0x219316(0x217)]??0x0,'errors':_0x3d1947['report']['errors']})),'errors':_0x322a36[_0x219316(0x230)]['errors'],'commandCount':_0x322a36[_0x219316(0x206)]?.[_0x219316(0x1eb)][_0x219316(0x217)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x2e2677){const _0x38eaf1=a61_0x357366,_0x5b60b1=importServiceManifest(_0x2e2677['str'](_0x38eaf1(0x208)));if(_0x5b60b1[_0x38eaf1(0x1f4)][_0x38eaf1(0x217)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x5b60b1[_0x38eaf1(0x1f1)],'imported':_0x5b60b1[_0x38eaf1(0x212)],'updated':_0x5b60b1[_0x38eaf1(0x21e)],'serviceCount':_0x5b60b1[_0x38eaf1(0x1ff)],'services':_0x5b60b1[_0x38eaf1(0x1f4)][_0x38eaf1(0x1e5)](summarizeService)},'message':_0x38eaf1(0x20f)+_0x5b60b1['imported']+_0x38eaf1(0x211)+_0x5b60b1[_0x38eaf1(0x21e)]+_0x38eaf1(0x231)};return{'ok':!![],'data':{'registryPath':_0x5b60b1[_0x38eaf1(0x1f1)],'replaced':_0x5b60b1[_0x38eaf1(0x1fa)],'imported':_0x5b60b1[_0x38eaf1(0x212)],'updated':_0x5b60b1[_0x38eaf1(0x21e)],'serviceCount':_0x5b60b1[_0x38eaf1(0x1ff)],'service':summarizeService(_0x5b60b1['entry'])},'message':(_0x5b60b1[_0x38eaf1(0x1fa)]?_0x38eaf1(0x21c):_0x38eaf1(0x216))+_0x38eaf1(0x20e)+_0x5b60b1[_0x38eaf1(0x207)]['serviceCode']+'.'};}},{'service':'service','command':a61_0x357366(0x1e7),'description':a61_0x357366(0x22e),'risk':a61_0x357366(0x21d),'confirmationDescription':a61_0x357366(0x21b),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x15ece3){const _0xc2f462=a61_0x357366,_0x2bd171=getLocalServiceEntry(_0x15ece3['str']('service'));return{'method':_0xc2f462(0x1ef),'url':_0x15ece3[_0xc2f462(0x222)](_0xc2f462(0x208)),'body':{'service':_0x15ece3[_0xc2f462(0x222)](_0xc2f462(0x219)),'found':Boolean(_0x2bd171),'version':_0x2bd171?.[_0xc2f462(0x214)],'source':_0x2bd171?.[_0xc2f462(0x20a)]},'description':_0xc2f462(0x227)};},async 'execute'(_0x114852){const _0x1b338f=a61_0x357366,_0x2c71ad=exportServiceManifest(_0x114852[_0x1b338f(0x222)](_0x1b338f(0x219)),_0x114852[_0x1b338f(0x222)](_0x1b338f(0x208)));return{'ok':!![],'data':{'registryPath':_0x2c71ad[_0x1b338f(0x1f1)],'file':_0x2c71ad[_0x1b338f(0x209)],'service':summarizeService(_0x2c71ad[_0x1b338f(0x207)])},'message':_0x1b338f(0x20c)+_0x2c71ad[_0x1b338f(0x207)][_0x1b338f(0x1ec)]+'.'};}},{'service':a61_0x357366(0x219),'command':a61_0x357366(0x1ee),'description':a61_0x357366(0x1f0),'risk':a61_0x357366(0x20d),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x41acfa=a61_0x357366,_0x2c1e31=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x2c1e31[_0x41acfa(0x217)],'services':_0x2c1e31['map'](summarizeService)}};}},{'service':a61_0x357366(0x219),'command':a61_0x357366(0x201),'description':'从本地运行态注册表移除\x20Service\x20Tree\x20清单','risk':a61_0x357366(0x21d),'confirmationDescription':a61_0x357366(0x1e8),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x548960){const _0xf1f97e=a61_0x357366,_0x2d309c=getLocalServiceEntry(_0x548960[_0xf1f97e(0x222)](_0xf1f97e(0x219)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x548960[_0xf1f97e(0x222)]('service'),'found':Boolean(_0x2d309c),'version':_0x2d309c?.['version'],'source':_0x2d309c?.[_0xf1f97e(0x20a)]},'description':_0xf1f97e(0x21f)};},async 'execute'(_0x395233){const _0x238118=a61_0x357366,_0x4c1ac0=removeServiceManifest(_0x395233[_0x238118(0x222)](_0x238118(0x219)));return{'ok':!![],'data':{'registryPath':_0x4c1ac0[_0x238118(0x1f1)],'serviceCount':_0x4c1ac0['serviceCount'],'service':summarizeService(_0x4c1ac0[_0x238118(0x207)])},'message':_0x238118(0x203)+_0x4c1ac0[_0x238118(0x207)][_0x238118(0x1ec)]+'.'};}},{'service':a61_0x357366(0x219),'command':'detail','description':a61_0x357366(0x218),'risk':a61_0x357366(0x20d),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x1b1625){const _0x3e69cf=a61_0x357366,_0x2847fa=getLocalServiceEntry(_0x1b1625[_0x3e69cf(0x222)](_0x3e69cf(0x219)));if(!_0x2847fa)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x1b1625['str']('service')},'message':_0x3e69cf(0x1e6)+_0x1b1625[_0x3e69cf(0x222)](_0x3e69cf(0x219))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x2847fa),'manifest':_0x2847fa['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x2847fa[_0x3e69cf(0x206)])}};}}];
@@ -1 +1 @@
1
- (function(_0x19d1b1,_0x55f7fe){const _0x3a1ce0=a62_0x2643,_0x288d13=_0x19d1b1();while(!![]){try{const _0x2d699d=parseInt(_0x3a1ce0(0x1fb))/0x1+-parseInt(_0x3a1ce0(0x1eb))/0x2+parseInt(_0x3a1ce0(0x1e6))/0x3*(-parseInt(_0x3a1ce0(0x1cf))/0x4)+parseInt(_0x3a1ce0(0x1ce))/0x5*(parseInt(_0x3a1ce0(0x1c8))/0x6)+parseInt(_0x3a1ce0(0x206))/0x7*(parseInt(_0x3a1ce0(0x1e9))/0x8)+parseInt(_0x3a1ce0(0x1d9))/0x9*(-parseInt(_0x3a1ce0(0x1dc))/0xa)+parseInt(_0x3a1ce0(0x1c6))/0xb*(parseInt(_0x3a1ce0(0x1bc))/0xc);if(_0x2d699d===_0x55f7fe)break;else _0x288d13['push'](_0x288d13['shift']());}catch(_0x47e8d2){_0x288d13['push'](_0x288d13['shift']());}}}(a62_0x3ce4,0xa040b));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME='service.json';export function getServiceRegistryPath(_0x25d37b={}){const _0x1304e4=a62_0x2643;return resolve(_0x25d37b['homeDir']??homedir(),PRODUCT_CONFIG[_0x1304e4(0x208)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x3c7ba2={}){const _0x5aef1b=a62_0x2643,_0x5da408=getServiceRegistryPath(_0x3c7ba2);if(!existsSync(_0x5da408))return emptyServiceRegistry();try{const _0x426679=readFileSync(_0x5da408,_0x5aef1b(0x1d6));if(!_0x426679[_0x5aef1b(0x1c9)]())return emptyServiceRegistry();const _0x4803b8=JSON[_0x5aef1b(0x1f6)](_0x426679);if(_0x4803b8['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x5aef1b(0x207)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x4803b8['schemaVersion']),_0x5aef1b(0x1d0)+_0x5da408+'.');if(!Array[_0x5aef1b(0x204)](_0x4803b8['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x4803b8[_0x5aef1b(0x1de)],'services':_0x4803b8[_0x5aef1b(0x20b)]};}catch(_0xfdb747){if(_0xfdb747 instanceof Error&&_0xfdb747[_0x5aef1b(0x1c5)]===_0x5aef1b(0x1e5))throw _0xfdb747;throw CliErrors['validation'](_0x5aef1b(0x1fd)+_0x5da408,_0x5aef1b(0x1e4));}}export function writeServiceRegistry(_0x1761aa,_0x5e1065={}){const _0x291966=a62_0x2643,_0x39430b=getServiceRegistryPath(_0x5e1065),_0x2f6236=dirname(_0x39430b);!existsSync(_0x2f6236)&&mkdirSync(_0x2f6236,{'recursive':!![]});const _0x2bd10b=_0x39430b+_0x291966(0x1d8);try{writeFileSync(_0x2bd10b,JSON[_0x291966(0x20a)](_0x1761aa,null,0x2)+'\x0a',{'encoding':_0x291966(0x1d6),'mode':0x180}),renameSync(_0x2bd10b,_0x39430b);}catch(_0x387fd1){try{unlinkSync(_0x2bd10b);}catch{}if(_0x387fd1?.['code']===_0x291966(0x1c1))throw CliErrors[_0x291966(0x207)](_0x291966(0x1f1)+_0x39430b);throw _0x387fd1;}return _0x39430b;}export function loadServiceManifestFromFile(_0x1ba22b){const _0x31a550=a62_0x2643,_0x94a8d0=resolve(_0x1ba22b);if(!existsSync(_0x94a8d0))throw CliErrors[_0x31a550(0x207)](_0x31a550(0x1df)+_0x1ba22b);let _0x12d146;const _0x42c6ef=readFileSync(_0x94a8d0,_0x31a550(0x1d6));try{_0x12d146=JSON[_0x31a550(0x1f6)](_0x42c6ef);}catch{throw CliErrors[_0x31a550(0x207)]('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x1ba22b,_0x31a550(0x205));}const _0x31b953=sha256(_0x42c6ef),_0x3c185c=extractLoadedServiceManifests(_0x12d146,_0x31b953),_0x19bda0=aggregateValidationReports(_0x3c185c),_0x4f1cb8=_0x3c185c[0x0];return{'filePath':_0x94a8d0,'hash':_0x31b953,'kind':isServiceRegistryLike(_0x12d146)?_0x31a550(0x1c0):'manifest','manifest':_0x4f1cb8?.['manifest']??_0x12d146,'report':_0x19bda0,'normalizedManifest':_0x3c185c[_0x31a550(0x1ea)]===0x1?_0x4f1cb8?.[_0x31a550(0x1fa)]:undefined,'manifests':_0x3c185c};}export function importServiceManifest(_0x1dec11,_0x11648f={}){const _0x4ce235=a62_0x2643,_0x5e4668=loadServiceManifestFromFile(_0x1dec11);if(!_0x5e4668[_0x4ce235(0x1ec)]['ok'])throw CliErrors[_0x4ce235(0x207)](formatValidationFailure(_0x5e4668['report']),_0x4ce235(0x1ef));if(_0x5e4668['manifests']['length']===0x0)throw CliErrors[_0x4ce235(0x207)](_0x4ce235(0x1f7),'Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x3de07e=readServiceRegistry(_0x11648f),_0x4e714b=(_0x11648f[_0x4ce235(0x1f0)]??(()=>new Date()))()[_0x4ce235(0x20d)](),_0xced61c=[];let _0x205dce=0x0,_0x184794=0x0;for(const _0x45fee4 of _0x5e4668[_0x4ce235(0x1f4)]){if(!_0x45fee4[_0x4ce235(0x1fa)])continue;const _0x5a914b=_0x45fee4[_0x4ce235(0x1fa)][_0x4ce235(0x1ff)][_0x4ce235(0x1fc)],_0x552db2={'serviceCode':_0x5a914b,'version':_0x45fee4[_0x4ce235(0x1fa)][_0x4ce235(0x203)],'importedAt':_0x4e714b,'source':{'type':'file','path':_0x5e4668[_0x4ce235(0x1e1)],'hash':_0x45fee4[_0x4ce235(0x1f3)]},'manifest':_0x45fee4[_0x4ce235(0x201)],'normalizedManifest':_0x45fee4[_0x4ce235(0x1fa)]},_0x475fa0=_0x3de07e[_0x4ce235(0x20b)][_0x4ce235(0x1e2)](_0x3aead5=>_0x3aead5['serviceCode']===_0x5a914b);_0x475fa0>=0x0?(_0x3de07e[_0x4ce235(0x20b)][_0x475fa0]=_0x552db2,_0x184794++):(_0x3de07e[_0x4ce235(0x20b)][_0x4ce235(0x1f8)](_0x552db2),_0x205dce++),_0xced61c[_0x4ce235(0x1f8)](_0x552db2);}_0x3de07e[_0x4ce235(0x20b)]['sort']((_0x5a481a,_0x497fbc)=>_0x5a481a[_0x4ce235(0x202)]['localeCompare'](_0x497fbc[_0x4ce235(0x202)])),_0x3de07e['updatedAt']=_0x4e714b;const _0x35b3bd=writeServiceRegistry(_0x3de07e,_0x11648f);return{'registryPath':_0x35b3bd,'entry':_0xced61c[0x0],'replaced':_0xced61c[_0x4ce235(0x1ea)]===0x1?_0x184794===0x1:_0x184794>0x0,'entries':_0xced61c,'imported':_0x205dce,'updated':_0x184794,'serviceCount':_0x3de07e[_0x4ce235(0x20b)][_0x4ce235(0x1ea)]};}export function exportServiceManifest(_0x5f4d2f,_0x2820c6,_0xf3c92b={}){const _0x440523=a62_0x2643,_0x21f923=getServiceRegistryPath(_0xf3c92b),_0x4bffd=getLocalServiceEntry(_0x5f4d2f,_0xf3c92b);if(!_0x4bffd)throw CliErrors[_0x440523(0x207)](_0x440523(0x1d7)+_0x5f4d2f,_0x440523(0x20e));const _0x17448c=resolve(_0x2820c6),_0x1d75bd=dirname(_0x17448c);return!existsSync(_0x1d75bd)&&mkdirSync(_0x1d75bd,{'recursive':!![]}),writeFileSync(_0x17448c,JSON[_0x440523(0x20a)](_0x4bffd['manifest'],null,0x2)+'\x0a',{'encoding':_0x440523(0x1d6),'mode':0x180}),{'registryPath':_0x21f923,'filePath':_0x17448c,'entry':_0x4bffd};}export function removeServiceManifest(_0x2ce18b,_0xf62d90={}){const _0x27cc17=a62_0x2643,_0x2a4ab5=readServiceRegistry(_0xf62d90),_0x113645=_0x2ce18b[_0x27cc17(0x1c9)](),_0x3be4b7=_0x2a4ab5[_0x27cc17(0x20b)][_0x27cc17(0x1e2)](_0x477a69=>_0x477a69[_0x27cc17(0x202)]===_0x113645);if(_0x3be4b7<0x0)throw CliErrors[_0x27cc17(0x207)]('Local\x20service\x20not\x20found:\x20'+_0x113645,_0x27cc17(0x20e));const [_0x2b918d]=_0x2a4ab5['services'][_0x27cc17(0x1cc)](_0x3be4b7,0x1),_0x5e51db=(_0xf62d90[_0x27cc17(0x1f0)]??(()=>new Date()))()['toISOString']();_0x2a4ab5['updatedAt']=_0x5e51db;const _0x1b8c03=writeServiceRegistry(_0x2a4ab5,_0xf62d90);return{'registryPath':_0x1b8c03,'entry':_0x2b918d,'serviceCount':_0x2a4ab5[_0x27cc17(0x20b)][_0x27cc17(0x1ea)]};}export function listLocalServices(_0x573405={}){return readServiceRegistry(_0x573405)['services'];}export function getLocalServiceEntry(_0x45347d,_0x47a1ad={}){const _0x3a58d6=a62_0x2643;return readServiceRegistry(_0x47a1ad)[_0x3a58d6(0x20b)]['find'](_0x2ffa6b=>_0x2ffa6b['serviceCode']===_0x45347d[_0x3a58d6(0x1c9)]());}export function listLocalServiceTrees(_0x7aa90f={}){const _0x4dc3ae=a62_0x2643;return readServiceRegistry(_0x7aa90f)[_0x4dc3ae(0x20b)][_0x4dc3ae(0x200)](_0x285941=>_0x285941['normalizedManifest']);}export function inspectServiceRegistry(_0x9d624a={}){const _0x56cce2=a62_0x2643,_0x545b9b=getServiceRegistryPath(_0x9d624a);if(!existsSync(_0x545b9b))return emptyServiceRegistryInspection(_0x545b9b,_0x56cce2(0x1ed),![]);try{const _0x5114a0=readFileSync(_0x545b9b,_0x56cce2(0x1d6));if(!_0x5114a0[_0x56cce2(0x1c9)]())return emptyServiceRegistryInspection(_0x545b9b,'empty',!![]);const _0x5668e5=JSON[_0x56cce2(0x1f6)](_0x5114a0);if(_0x5668e5[_0x56cce2(0x1ca)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x545b9b,_0x56cce2(0x1f9),!![]),'schemaVersion':_0x5668e5[_0x56cce2(0x1ca)],'message':_0x56cce2(0x1be)+String(_0x5668e5[_0x56cce2(0x1ca)])};if(!Array[_0x56cce2(0x204)](_0x5668e5['services']))return{...emptyServiceRegistryInspection(_0x545b9b,_0x56cce2(0x1f9),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5668e5[_0x56cce2(0x1de)],'message':_0x56cce2(0x1c4)};const _0x5c4489=_0x5668e5[_0x56cce2(0x20b)][_0x56cce2(0x200)](summarizeLocalServiceEntry);return{'registryPath':_0x545b9b,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5668e5[_0x56cce2(0x1de)],'serviceCount':_0x5c4489[_0x56cce2(0x1ea)],'commandCount':_0x5c4489['reduce']((_0x28cbc3,_0xd1a164)=>_0x28cbc3+_0xd1a164[_0x56cce2(0x1e7)],0x0),'services':_0x5c4489};}catch(_0x26c1b7){return{...emptyServiceRegistryInspection(_0x545b9b,_0x56cce2(0x1f9),!![]),'message':_0x26c1b7 instanceof Error?_0x26c1b7[_0x56cce2(0x1e3)]:String(_0x26c1b7)};}}export function formatValidationFailure(_0x5cc72c){const _0x2c457b=a62_0x2643,_0x1f44ee=_0x5cc72c[_0x2c457b(0x1d4)][_0x2c457b(0x200)](_0x5bd69d=>_0x5bd69d[_0x2c457b(0x1da)]+':\x20'+_0x5bd69d[_0x2c457b(0x1e3)]);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x1f44ee[_0x2c457b(0x20c)]('\x0a');}function extractLoadedServiceManifests(_0x5edb29,_0x2f705c){const _0x25a20c=a62_0x2643;if(!isServiceRegistryLike(_0x5edb29)){const _0x1e5dda=_0x5edb29,{manifest:_0x59bd2d,errors:_0x3648e6}=adaptServiceTreeManifestForLegacyFramework(_0x1e5dda),_0x6193b9=validateServiceTreeManifest(_0x59bd2d),_0x448d72=mergeValidationErrors(_0x6193b9,_0x3648e6);return[{'manifest':_0x1e5dda,'report':_0x448d72,'normalizedManifest':_0x448d72['ok']?normalizeServiceTreeManifest(_0x59bd2d):undefined,'sourceHash':_0x2f705c}];}return _0x5edb29[_0x25a20c(0x20b)][_0x25a20c(0x200)]((_0x1b9fb7,_0x4caea0)=>{const _0x237e40=_0x25a20c,_0x5f0cf7=isObjectRecord(_0x1b9fb7)?_0x1b9fb7['manifest']:undefined,{manifest:_0x1d4c2b,errors:_0x470916}=adaptServiceTreeManifestForLegacyFramework(_0x5f0cf7),_0x2ad3a5=validateServiceTreeManifest(_0x1d4c2b),_0x358ffc=mergeValidationErrors(_0x2ad3a5,_0x470916),_0x4183e2=isObjectRecord(_0x1b9fb7)&&typeof _0x1b9fb7[_0x237e40(0x202)]===_0x237e40(0x1f2)?_0x1b9fb7[_0x237e40(0x202)]:undefined;return{'manifest':_0x5f0cf7,'report':_0x358ffc,'normalizedManifest':_0x358ffc['ok']?normalizeServiceTreeManifest(_0x1d4c2b):undefined,'sourceHash':sha256(JSON[_0x237e40(0x20a)](_0x5f0cf7,null,0x2)+'\x0a'),'registryIndex':_0x4caea0,'registryServiceCode':_0x4183e2};});}function mergeValidationErrors(_0x152ed0,_0x60d7e0){const _0x5b99db=a62_0x2643,_0x1a4107=_0x152ed0['errors']['map'](_0x2e7c6d=>_0x2e7c6d[_0x5b99db(0x1e3)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x2e7c6d,'message':'bff\x20target\x20requires\x20functionName.'}:_0x2e7c6d),_0x386582=[..._0x60d7e0,..._0x1a4107];return{'ok':_0x386582[_0x5b99db(0x1ea)]===0x0,'errors':_0x386582,'warnings':_0x152ed0['warnings']};}function aggregateValidationReports(_0xa66ebe){const _0x16c7b2=a62_0x2643,_0x24707d=_0xa66ebe[_0x16c7b2(0x1ee)](_0xce209f=>_0xce209f['registryIndex']===undefined?_0xce209f[_0x16c7b2(0x1ec)]['errors']:_0xce209f[_0x16c7b2(0x1ec)]['errors']['map'](_0x3f7afa=>({..._0x3f7afa,'path':prefixRegistryIssuePath(_0xce209f[_0x16c7b2(0x1db)],_0x3f7afa['path'])}))),_0x4bc86d=_0xa66ebe[_0x16c7b2(0x1ee)](_0x373913=>_0x373913[_0x16c7b2(0x1db)]===undefined?_0x373913[_0x16c7b2(0x1ec)]['warnings']:_0x373913['report'][_0x16c7b2(0x1d2)][_0x16c7b2(0x200)](_0x14720d=>({..._0x14720d,'path':prefixRegistryIssuePath(_0x373913[_0x16c7b2(0x1db)],_0x14720d['path'])})));return{'ok':_0x24707d[_0x16c7b2(0x1ea)]===0x0,'errors':_0x24707d,'warnings':_0x4bc86d};}function prefixRegistryIssuePath(_0x3fb57b,_0x3ffba9){const _0x22b245=a62_0x2643;if(_0x3ffba9==='$')return _0x22b245(0x209)+_0x3fb57b+_0x22b245(0x1c3);if(_0x3ffba9[_0x22b245(0x1cd)]('$.'))return'$.services['+_0x3fb57b+'].manifest'+_0x3ffba9[_0x22b245(0x1d1)](0x1);if(_0x3ffba9[_0x22b245(0x1cd)]('$['))return _0x22b245(0x209)+_0x3fb57b+'].manifest'+_0x3ffba9[_0x22b245(0x1d1)](0x1);return _0x22b245(0x209)+_0x3fb57b+'].manifest.'+_0x3ffba9;}function isServiceRegistryLike(_0x36ad0f){const _0x3d5a6a=a62_0x2643;return isObjectRecord(_0x36ad0f)&&_0x36ad0f[_0x3d5a6a(0x1ca)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x3d5a6a(0x204)](_0x36ad0f['services']);}function isObjectRecord(_0x2d391c){const _0x1982b2=a62_0x2643;return Boolean(_0x2d391c)&&typeof _0x2d391c===_0x1982b2(0x1c7)&&!Array['isArray'](_0x2d391c);}function emptyServiceRegistryInspection(_0x32ab61,_0x4f648f,_0x19d53f){return{'registryPath':_0x32ab61,'exists':_0x19d53f,'status':_0x4f648f,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x3618cf){const _0x57be05=a62_0x2643,_0x452ca0=_0x3618cf[_0x57be05(0x1fa)],_0x3a25e3=_0x452ca0[_0x57be05(0x1dd)][_0x57be05(0x200)](_0x1c0072=>({'path':_0x1c0072[_0x57be05(0x1fe)],'description':_0x1c0072[_0x57be05(0x1d5)],'risk':_0x1c0072[_0x57be05(0x1bf)],'targetKind':_0x1c0072[_0x57be05(0x1c2)][_0x57be05(0x1bd)],'targetCommand':_0x1c0072[_0x57be05(0x1c2)][_0x57be05(0x1e8)]}));return{'serviceCode':_0x3618cf['serviceCode'],'name':_0x452ca0[_0x57be05(0x1ff)][_0x57be05(0x1c5)],'description':_0x452ca0[_0x57be05(0x1ff)]['description'],'version':_0x3618cf[_0x57be05(0x203)],'importedAt':_0x3618cf[_0x57be05(0x1d3)],'source':_0x3618cf['source'],'commandCount':_0x3a25e3[_0x57be05(0x1ea)],'commands':_0x3a25e3};}function a62_0x2643(_0x3ed361,_0x368214){_0x3ed361=_0x3ed361-0x1bc;const _0x3ce46c=a62_0x3ce4();let _0x264343=_0x3ce46c[_0x3ed361];return _0x264343;}function sha256(_0x583ba9){const _0x51ec2c=a62_0x2643;return createHash('sha256')[_0x51ec2c(0x1e0)](_0x583ba9)[_0x51ec2c(0x1cb)](_0x51ec2c(0x1f5));}function a62_0x3ce4(){const _0x456e79=['serviceCode','version','isArray','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','158060EnFxRQ','validation','homeDirName','$.services[','stringify','services','join','toISOString','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','12zZSbzl','kind','Unsupported\x20schemaVersion:\x20','risk','registry','ENOENT','target','].manifest','services\x20must\x20be\x20an\x20array','name','15870877APIyFg','object','155076znTtTR','trim','schemaVersion','digest','splice','startsWith','140mqggZC','1772604FehMvw','Remove\x20or\x20migrate\x20','slice','warnings','importedAt','errors','description','utf8','Local\x20service\x20not\x20found:\x20','.tmp','321813huHfum','path','registryIndex','80JGOWSc','commands','updatedAt','Service\x20manifest\x20file\x20not\x20found:\x20','update','filePath','findIndex','message','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','CliError','3TUQPwy','commandCount','command','40hDwMDJ','length','1962880usouSB','report','missing','flatMap','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','now','Cannot\x20write\x20service\x20registry:\x20','string','sourceHash','manifests','hex','parse','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','push','invalid','normalizedManifest','87647hOQSBk','code','Invalid\x20service\x20registry\x20JSON:\x20','cliPath','service','map','manifest'];a62_0x3ce4=function(){return _0x456e79;};return a62_0x3ce4();}
1
+ function a62_0x5125(_0xf2b6dd,_0xbcc518){_0xf2b6dd=_0xf2b6dd-0x1d6;const _0x57a384=a62_0x57a3();let _0x5125ab=_0x57a384[_0xf2b6dd];return _0x5125ab;}const a62_0x22ee08=a62_0x5125;(function(_0x179163,_0x60b7ff){const _0x5eb2f9=a62_0x5125,_0x110cec=_0x179163();while(!![]){try{const _0x552ef2=-parseInt(_0x5eb2f9(0x218))/0x1+parseInt(_0x5eb2f9(0x216))/0x2+-parseInt(_0x5eb2f9(0x207))/0x3+-parseInt(_0x5eb2f9(0x1db))/0x4+-parseInt(_0x5eb2f9(0x1ff))/0x5*(parseInt(_0x5eb2f9(0x1fe))/0x6)+-parseInt(_0x5eb2f9(0x1ed))/0x7*(-parseInt(_0x5eb2f9(0x1d8))/0x8)+parseInt(_0x5eb2f9(0x21f))/0x9*(parseInt(_0x5eb2f9(0x224))/0xa);if(_0x552ef2===_0x60b7ff)break;else _0x110cec['push'](_0x110cec['shift']());}catch(_0x4181d0){_0x110cec['push'](_0x110cec['shift']());}}}(a62_0x57a3,0x65a73));import{createHash}from'node:crypto';function a62_0x57a3(){const _0x5d81b8=['10AgsIqR','update','empty','62856dYQBCb','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','Cannot\x20write\x20service\x20registry:\x20','2678864iDspDb','errors','kind','string','description','].manifest.','digest','slice','service.json','registryIndex','Unsupported\x20schemaVersion:\x20','command','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','.tmp','Local\x20service\x20not\x20found:\x20','code','push','missing','581pwAXcL','name','updatedAt','findIndex','localeCompare','trim','homeDir','length','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','serviceCode','bff\x20target\x20requires\x20functionName.','Unsupported\x20service\x20registry\x20schemaVersion:\x20','schemaVersion','sourceHash','Service\x20manifest\x20file\x20not\x20found:\x20','file','parse','84jwRePQ','274610kwACeM','now','services','commands','sort','sha256','commandCount','invalid','2391912ZePxBi','isArray','map','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','path','validation','warnings','toISOString','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','Remove\x20or\x20migrate\x20','homeDirName','report','$.services[','flatMap','service','1592468ONhwZm','utf8','410495dDcKsA','manifest','message','risk','manifests','cliPath','source','14529861mdOpXb','normalizedManifest','stringify','hex','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.'];a62_0x57a3=function(){return _0x5d81b8;};return a62_0x57a3();}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=a62_0x22ee08(0x1e3);export function getServiceRegistryPath(_0x14b32b={}){const _0x7e77bf=a62_0x22ee08;return resolve(_0x14b32b[_0x7e77bf(0x1f3)]??homedir(),PRODUCT_CONFIG[_0x7e77bf(0x211)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x23e20a={}){const _0x11b1fa=a62_0x22ee08,_0x3f274e=getServiceRegistryPath(_0x23e20a);if(!existsSync(_0x3f274e))return emptyServiceRegistry();try{const _0x131f3a=readFileSync(_0x3f274e,_0x11b1fa(0x217));if(!_0x131f3a[_0x11b1fa(0x1f2)]())return emptyServiceRegistry();const _0x4ff258=JSON[_0x11b1fa(0x1fd)](_0x131f3a);if(_0x4ff258['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x11b1fa(0x1f8)+String(_0x4ff258[_0x11b1fa(0x1f9)]),_0x11b1fa(0x210)+_0x3f274e+'.');if(!Array[_0x11b1fa(0x208)](_0x4ff258[_0x11b1fa(0x201)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x4ff258[_0x11b1fa(0x1ef)],'services':_0x4ff258[_0x11b1fa(0x201)]};}catch(_0x7a8609){if(_0x7a8609 instanceof Error&&_0x7a8609[_0x11b1fa(0x1ee)]==='CliError')throw _0x7a8609;throw CliErrors['validation']('Invalid\x20service\x20registry\x20JSON:\x20'+_0x3f274e,_0x11b1fa(0x223));}}export function writeServiceRegistry(_0xaa3905,_0x2cf969={}){const _0x3a423c=a62_0x22ee08,_0x2a8bac=getServiceRegistryPath(_0x2cf969),_0x154e49=dirname(_0x2a8bac);!existsSync(_0x154e49)&&mkdirSync(_0x154e49,{'recursive':!![]});const _0x781c95=_0x2a8bac+_0x3a423c(0x1e8);try{writeFileSync(_0x781c95,JSON[_0x3a423c(0x221)](_0xaa3905,null,0x2)+'\x0a',{'encoding':_0x3a423c(0x217),'mode':0x180}),renameSync(_0x781c95,_0x2a8bac);}catch(_0x2a7a5f){try{unlinkSync(_0x781c95);}catch{}if(_0x2a7a5f?.[_0x3a423c(0x1ea)]==='ENOENT')throw CliErrors[_0x3a423c(0x20c)](_0x3a423c(0x1da)+_0x2a8bac);throw _0x2a7a5f;}return _0x2a8bac;}export function loadServiceManifestFromFile(_0x163a6a){const _0x3f6784=a62_0x22ee08,_0x5dc908=resolve(_0x163a6a);if(!existsSync(_0x5dc908))throw CliErrors[_0x3f6784(0x20c)](_0x3f6784(0x1fb)+_0x163a6a);let _0xb43dde;const _0x593613=readFileSync(_0x5dc908,_0x3f6784(0x217));try{_0xb43dde=JSON[_0x3f6784(0x1fd)](_0x593613);}catch{throw CliErrors[_0x3f6784(0x20c)]('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x163a6a,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x18b1d2=sha256(_0x593613),_0x23a1a5=extractLoadedServiceManifests(_0xb43dde,_0x18b1d2),_0x303e49=aggregateValidationReports(_0x23a1a5),_0x461807=_0x23a1a5[0x0];return{'filePath':_0x5dc908,'hash':_0x18b1d2,'kind':isServiceRegistryLike(_0xb43dde)?'registry':_0x3f6784(0x219),'manifest':_0x461807?.[_0x3f6784(0x219)]??_0xb43dde,'report':_0x303e49,'normalizedManifest':_0x23a1a5['length']===0x1?_0x461807?.[_0x3f6784(0x220)]:undefined,'manifests':_0x23a1a5};}export function importServiceManifest(_0x3b4cfb,_0x1bc3c1={}){const _0x54c57b=a62_0x22ee08,_0x3f5f39=loadServiceManifestFromFile(_0x3b4cfb);if(!_0x3f5f39[_0x54c57b(0x212)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x3f5f39[_0x54c57b(0x212)]),_0x54c57b(0x1d9));if(_0x3f5f39[_0x54c57b(0x21c)][_0x54c57b(0x1f4)]===0x0)throw CliErrors[_0x54c57b(0x20c)](_0x54c57b(0x20f),_0x54c57b(0x20a));const _0x2f2c81=readServiceRegistry(_0x1bc3c1),_0x44d209=(_0x1bc3c1[_0x54c57b(0x200)]??(()=>new Date()))()['toISOString'](),_0x51bef0=[];let _0x4723c8=0x0,_0x2e3534=0x0;for(const _0x4e1f4a of _0x3f5f39['manifests']){if(!_0x4e1f4a[_0x54c57b(0x220)])continue;const _0x2101fc=_0x4e1f4a[_0x54c57b(0x220)]['service'][_0x54c57b(0x1ea)],_0x4f7536={'serviceCode':_0x2101fc,'version':_0x4e1f4a['normalizedManifest']['version'],'importedAt':_0x44d209,'source':{'type':_0x54c57b(0x1fc),'path':_0x3f5f39['filePath'],'hash':_0x4e1f4a[_0x54c57b(0x1fa)]},'manifest':_0x4e1f4a[_0x54c57b(0x219)],'normalizedManifest':_0x4e1f4a['normalizedManifest']},_0x4b74fb=_0x2f2c81[_0x54c57b(0x201)]['findIndex'](_0x1911c5=>_0x1911c5[_0x54c57b(0x1f6)]===_0x2101fc);_0x4b74fb>=0x0?(_0x2f2c81[_0x54c57b(0x201)][_0x4b74fb]=_0x4f7536,_0x2e3534++):(_0x2f2c81[_0x54c57b(0x201)][_0x54c57b(0x1eb)](_0x4f7536),_0x4723c8++),_0x51bef0['push'](_0x4f7536);}_0x2f2c81[_0x54c57b(0x201)][_0x54c57b(0x203)]((_0x3be49a,_0x404e58)=>_0x3be49a[_0x54c57b(0x1f6)][_0x54c57b(0x1f1)](_0x404e58[_0x54c57b(0x1f6)])),_0x2f2c81['updatedAt']=_0x44d209;const _0xf5e6a9=writeServiceRegistry(_0x2f2c81,_0x1bc3c1);return{'registryPath':_0xf5e6a9,'entry':_0x51bef0[0x0],'replaced':_0x51bef0[_0x54c57b(0x1f4)]===0x1?_0x2e3534===0x1:_0x2e3534>0x0,'entries':_0x51bef0,'imported':_0x4723c8,'updated':_0x2e3534,'serviceCount':_0x2f2c81['services'][_0x54c57b(0x1f4)]};}export function exportServiceManifest(_0x1bcd87,_0x2a404f,_0x16d042={}){const _0x372cd7=a62_0x22ee08,_0x5392a6=getServiceRegistryPath(_0x16d042),_0x52a480=getLocalServiceEntry(_0x1bcd87,_0x16d042);if(!_0x52a480)throw CliErrors['validation'](_0x372cd7(0x1e9)+_0x1bcd87,_0x372cd7(0x1e7));const _0x47c9f4=resolve(_0x2a404f),_0x310afd=dirname(_0x47c9f4);return!existsSync(_0x310afd)&&mkdirSync(_0x310afd,{'recursive':!![]}),writeFileSync(_0x47c9f4,JSON[_0x372cd7(0x221)](_0x52a480[_0x372cd7(0x219)],null,0x2)+'\x0a',{'encoding':_0x372cd7(0x217),'mode':0x180}),{'registryPath':_0x5392a6,'filePath':_0x47c9f4,'entry':_0x52a480};}export function removeServiceManifest(_0x123e2f,_0x18a622={}){const _0xe83356=a62_0x22ee08,_0x4b889e=readServiceRegistry(_0x18a622),_0xe9bebd=_0x123e2f[_0xe83356(0x1f2)](),_0x5a0c2b=_0x4b889e[_0xe83356(0x201)][_0xe83356(0x1f0)](_0x244ad4=>_0x244ad4[_0xe83356(0x1f6)]===_0xe9bebd);if(_0x5a0c2b<0x0)throw CliErrors[_0xe83356(0x20c)](_0xe83356(0x1e9)+_0xe9bebd,_0xe83356(0x1e7));const [_0x2c5a57]=_0x4b889e[_0xe83356(0x201)]['splice'](_0x5a0c2b,0x1),_0x5dce42=(_0x18a622[_0xe83356(0x200)]??(()=>new Date()))()[_0xe83356(0x20e)]();_0x4b889e['updatedAt']=_0x5dce42;const _0xa5525c=writeServiceRegistry(_0x4b889e,_0x18a622);return{'registryPath':_0xa5525c,'entry':_0x2c5a57,'serviceCount':_0x4b889e[_0xe83356(0x201)][_0xe83356(0x1f4)]};}export function listLocalServices(_0x5f4e35={}){const _0x376384=a62_0x22ee08;return readServiceRegistry(_0x5f4e35)[_0x376384(0x201)];}export function getLocalServiceEntry(_0x217e8e,_0x11ce63={}){const _0x42afbe=a62_0x22ee08;return readServiceRegistry(_0x11ce63)[_0x42afbe(0x201)]['find'](_0x451803=>_0x451803[_0x42afbe(0x1f6)]===_0x217e8e[_0x42afbe(0x1f2)]());}export function listLocalServiceTrees(_0x3a3f04={}){const _0x2f45cd=a62_0x22ee08;return readServiceRegistry(_0x3a3f04)['services'][_0x2f45cd(0x209)](_0x4c6f94=>_0x4c6f94[_0x2f45cd(0x220)]);}export function inspectServiceRegistry(_0x330a7f={}){const _0x25209a=a62_0x22ee08,_0x7b6c00=getServiceRegistryPath(_0x330a7f);if(!existsSync(_0x7b6c00))return emptyServiceRegistryInspection(_0x7b6c00,_0x25209a(0x1ec),![]);try{const _0x376939=readFileSync(_0x7b6c00,'utf8');if(!_0x376939['trim']())return emptyServiceRegistryInspection(_0x7b6c00,_0x25209a(0x1d7),!![]);const _0x28d900=JSON[_0x25209a(0x1fd)](_0x376939);if(_0x28d900[_0x25209a(0x1f9)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x7b6c00,_0x25209a(0x206),!![]),'schemaVersion':_0x28d900[_0x25209a(0x1f9)],'message':_0x25209a(0x1e5)+String(_0x28d900[_0x25209a(0x1f9)])};if(!Array[_0x25209a(0x208)](_0x28d900['services']))return{...emptyServiceRegistryInspection(_0x7b6c00,_0x25209a(0x206),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x28d900[_0x25209a(0x1ef)],'message':'services\x20must\x20be\x20an\x20array'};const _0x19e5c3=_0x28d900[_0x25209a(0x201)]['map'](summarizeLocalServiceEntry);return{'registryPath':_0x7b6c00,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x28d900[_0x25209a(0x1ef)],'serviceCount':_0x19e5c3[_0x25209a(0x1f4)],'commandCount':_0x19e5c3['reduce']((_0x522bc7,_0x20925d)=>_0x522bc7+_0x20925d[_0x25209a(0x205)],0x0),'services':_0x19e5c3};}catch(_0xd85afb){return{...emptyServiceRegistryInspection(_0x7b6c00,_0x25209a(0x206),!![]),'message':_0xd85afb instanceof Error?_0xd85afb[_0x25209a(0x21a)]:String(_0xd85afb)};}}export function formatValidationFailure(_0x516ad1){const _0x3b9a44=a62_0x22ee08,_0x4b5294=_0x516ad1['errors'][_0x3b9a44(0x209)](_0x46d03f=>_0x46d03f[_0x3b9a44(0x20b)]+':\x20'+_0x46d03f[_0x3b9a44(0x21a)]);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x4b5294['join']('\x0a');}function extractLoadedServiceManifests(_0x41d3dd,_0x25bc95){const _0xce39dd=a62_0x22ee08;if(!isServiceRegistryLike(_0x41d3dd)){const _0x4366eb=_0x41d3dd,{manifest:_0x5bc3bf,errors:_0x45ced5}=adaptServiceTreeManifestForLegacyFramework(_0x4366eb),_0x4d9631=validateServiceTreeManifest(_0x5bc3bf),_0x3f1b21=mergeValidationErrors(_0x4d9631,_0x45ced5);return[{'manifest':_0x4366eb,'report':_0x3f1b21,'normalizedManifest':_0x3f1b21['ok']?normalizeServiceTreeManifest(_0x5bc3bf):undefined,'sourceHash':_0x25bc95}];}return _0x41d3dd['services'][_0xce39dd(0x209)]((_0x3c650e,_0x163fa6)=>{const _0x20f98e=_0xce39dd,_0x4f7d92=isObjectRecord(_0x3c650e)?_0x3c650e[_0x20f98e(0x219)]:undefined,{manifest:_0x2898d7,errors:_0x59dc09}=adaptServiceTreeManifestForLegacyFramework(_0x4f7d92),_0x4de403=validateServiceTreeManifest(_0x2898d7),_0x3780f8=mergeValidationErrors(_0x4de403,_0x59dc09),_0x235652=isObjectRecord(_0x3c650e)&&typeof _0x3c650e[_0x20f98e(0x1f6)]===_0x20f98e(0x1de)?_0x3c650e['serviceCode']:undefined;return{'manifest':_0x4f7d92,'report':_0x3780f8,'normalizedManifest':_0x3780f8['ok']?normalizeServiceTreeManifest(_0x2898d7):undefined,'sourceHash':sha256(JSON[_0x20f98e(0x221)](_0x4f7d92,null,0x2)+'\x0a'),'registryIndex':_0x163fa6,'registryServiceCode':_0x235652};});}function mergeValidationErrors(_0x39e94b,_0x22a72e){const _0x4afd71=a62_0x22ee08,_0x2ce339=_0x39e94b[_0x4afd71(0x1dc)]['map'](_0x32bcaa=>_0x32bcaa['message']===_0x4afd71(0x1f5)?{..._0x32bcaa,'message':_0x4afd71(0x1f7)}:_0x32bcaa),_0x36249b=[..._0x22a72e,..._0x2ce339];return{'ok':_0x36249b[_0x4afd71(0x1f4)]===0x0,'errors':_0x36249b,'warnings':_0x39e94b[_0x4afd71(0x20d)]};}function aggregateValidationReports(_0x4e9c79){const _0x4d4dbc=a62_0x22ee08,_0x4708de=_0x4e9c79[_0x4d4dbc(0x214)](_0x1fb715=>_0x1fb715['registryIndex']===undefined?_0x1fb715['report'][_0x4d4dbc(0x1dc)]:_0x1fb715['report'][_0x4d4dbc(0x1dc)][_0x4d4dbc(0x209)](_0x26c7f4=>({..._0x26c7f4,'path':prefixRegistryIssuePath(_0x1fb715[_0x4d4dbc(0x1e4)],_0x26c7f4[_0x4d4dbc(0x20b)])}))),_0x5a8d7a=_0x4e9c79[_0x4d4dbc(0x214)](_0x2af385=>_0x2af385['registryIndex']===undefined?_0x2af385[_0x4d4dbc(0x212)][_0x4d4dbc(0x20d)]:_0x2af385[_0x4d4dbc(0x212)][_0x4d4dbc(0x20d)]['map'](_0xa7aa42=>({..._0xa7aa42,'path':prefixRegistryIssuePath(_0x2af385[_0x4d4dbc(0x1e4)],_0xa7aa42[_0x4d4dbc(0x20b)])})));return{'ok':_0x4708de[_0x4d4dbc(0x1f4)]===0x0,'errors':_0x4708de,'warnings':_0x5a8d7a};}function prefixRegistryIssuePath(_0x32422f,_0xf64b59){const _0x56fff0=a62_0x22ee08;if(_0xf64b59==='$')return _0x56fff0(0x213)+_0x32422f+'].manifest';if(_0xf64b59['startsWith']('$.'))return _0x56fff0(0x213)+_0x32422f+'].manifest'+_0xf64b59[_0x56fff0(0x1e2)](0x1);if(_0xf64b59['startsWith']('$['))return'$.services['+_0x32422f+'].manifest'+_0xf64b59[_0x56fff0(0x1e2)](0x1);return _0x56fff0(0x213)+_0x32422f+_0x56fff0(0x1e0)+_0xf64b59;}function isServiceRegistryLike(_0x591418){const _0x3cd162=a62_0x22ee08;return isObjectRecord(_0x591418)&&_0x591418[_0x3cd162(0x1f9)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x591418['services']);}function isObjectRecord(_0x205cd0){return Boolean(_0x205cd0)&&typeof _0x205cd0==='object'&&!Array['isArray'](_0x205cd0);}function emptyServiceRegistryInspection(_0xfd360e,_0x2a0eda,_0x346c61){return{'registryPath':_0xfd360e,'exists':_0x346c61,'status':_0x2a0eda,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x4298d2){const _0x504789=a62_0x22ee08,_0x1b39d9=_0x4298d2[_0x504789(0x220)],_0x4afd95=_0x1b39d9[_0x504789(0x202)][_0x504789(0x209)](_0x379b56=>({'path':_0x379b56[_0x504789(0x21d)],'description':_0x379b56['description'],'risk':_0x379b56[_0x504789(0x21b)],'targetKind':_0x379b56['target'][_0x504789(0x1dd)],'targetCommand':_0x379b56['target'][_0x504789(0x1e6)]}));return{'serviceCode':_0x4298d2[_0x504789(0x1f6)],'name':_0x1b39d9['service'][_0x504789(0x1ee)],'description':_0x1b39d9[_0x504789(0x215)][_0x504789(0x1df)],'version':_0x4298d2['version'],'importedAt':_0x4298d2['importedAt'],'source':_0x4298d2[_0x504789(0x21e)],'commandCount':_0x4afd95[_0x504789(0x1f4)],'commands':_0x4afd95};}function sha256(_0x19bd05){const _0x363b2c=a62_0x22ee08;return createHash(_0x363b2c(0x204))[_0x363b2c(0x1d6)](_0x19bd05)[_0x363b2c(0x1e1)](_0x363b2c(0x222));}
@@ -1 +1 @@
1
- const a63_0x1db356=a63_0x3bf9;(function(_0xd51c6d,_0x5b6a96){const _0x21b58d=a63_0x3bf9,_0x465bb5=_0xd51c6d();while(!![]){try{const _0x1faf4a=parseInt(_0x21b58d(0x168))/0x1+parseInt(_0x21b58d(0x159))/0x2+parseInt(_0x21b58d(0x16c))/0x3+parseInt(_0x21b58d(0x173))/0x4*(-parseInt(_0x21b58d(0x165))/0x5)+parseInt(_0x21b58d(0x15a))/0x6*(parseInt(_0x21b58d(0x171))/0x7)+-parseInt(_0x21b58d(0x164))/0x8+parseInt(_0x21b58d(0x172))/0x9;if(_0x1faf4a===_0x5b6a96)break;else _0x465bb5['push'](_0x465bb5['shift']());}catch(_0x306e7e){_0x465bb5['push'](_0x465bb5['shift']());}}}(a63_0x228a,0x604ec));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';function a63_0x228a(){const _0x4ad3f2=['174316OPcUBE','78TUOuAV','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','WRITE','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','skill','isSymbolicLink','isDirectory','str','Skill\x20directory\x20already\x20exists:\x20','force','5109192dAExPm','61970wrnxeO','skillName','validation','62767XabYXx','type','map','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','1149117GwThUD','content','Refusing\x20to\x20overwrite\x20symlink:\x20','skillDir','files','406217hlQVWL','4739220cQHero','252YbYWRz','name','bool','rendered','创建本地自包含的运行态\x20Skill\x20草稿','path','target','trim','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.'];a63_0x228a=function(){return _0x4ad3f2;};return a63_0x228a();}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':a63_0x1db356(0x15e),'command':'create','description':a63_0x1db356(0x154),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x4a1140){const _0x41874d=a63_0x1db356,_0x789d1=buildSkillCreatePlan(_0x4a1140[_0x41874d(0x161)](_0x41874d(0x174)),_0x4a1140[_0x41874d(0x161)](_0x41874d(0x169)),_0x4a1140['str'](_0x41874d(0x156)));return{'method':_0x41874d(0x15c),'url':_0x789d1[_0x41874d(0x16f)],'body':{'skillName':_0x789d1[_0x41874d(0x153)][_0x41874d(0x166)],'type':_0x789d1[_0x41874d(0x153)][_0x41874d(0x169)],'selfContained':!![],'files':_0x789d1[_0x41874d(0x153)][_0x41874d(0x170)][_0x41874d(0x16a)](_0x475fd0=>_0x475fd0[_0x41874d(0x155)])},'description':_0x41874d(0x158)};},async 'execute'(_0x376d25){const _0x9cd8a5=a63_0x1db356,_0x499706=buildSkillCreatePlan(_0x376d25[_0x9cd8a5(0x161)]('name'),_0x376d25[_0x9cd8a5(0x161)](_0x9cd8a5(0x169)),_0x376d25[_0x9cd8a5(0x161)](_0x9cd8a5(0x156)));return writeSkillDraft(_0x499706,_0x376d25[_0x9cd8a5(0x175)](_0x9cd8a5(0x163))),{'ok':!![],'data':{'skillName':_0x499706[_0x9cd8a5(0x153)][_0x9cd8a5(0x166)],'type':_0x499706['rendered']['type'],'dir':_0x499706[_0x9cd8a5(0x16f)],'files':_0x499706[_0x9cd8a5(0x153)][_0x9cd8a5(0x170)][_0x9cd8a5(0x16a)](_0x172299=>_0x172299['path'])},'message':'Created\x20local\x20Skill\x20draft\x20'+_0x499706[_0x9cd8a5(0x153)][_0x9cd8a5(0x166)]};}};function buildSkillCreatePlan(_0x4c9eb8,_0x2b2209,_0x166691){const _0x4e8f2e=a63_0x1db356,_0x5617d1=_0x2b2209[_0x4e8f2e(0x157)](),_0x1c457a=renderSkillTemplate({'skillName':_0x4c9eb8,'type':_0x5617d1});!_0x5617d1&&writeCliSideChannelLine(_0x4e8f2e(0x16b));const _0x5c91ea=resolve(normalizeSkillTarget(_0x166691));return{'rendered':_0x1c457a,'targetRoot':_0x5c91ea,'skillDir':resolve(_0x5c91ea,_0x1c457a[_0x4e8f2e(0x166)])};}function normalizeSkillTarget(_0x393eae){const _0x46ea03=a63_0x1db356;return(_0x393eae||DEFAULT_SKILL_TARGET)[_0x46ea03(0x157)]()||DEFAULT_SKILL_TARGET;}function a63_0x3bf9(_0x3d1f89,_0x5c20a1){_0x3d1f89=_0x3d1f89-0x153;const _0x228aaa=a63_0x228a();let _0x3bf9a3=_0x228aaa[_0x3d1f89];return _0x3bf9a3;}function writeSkillDraft(_0x2ca679,_0x579352){const _0x44531f=a63_0x1db356;if(existsSync(_0x2ca679[_0x44531f(0x16f)])){const _0x2a991f=lstatSync(_0x2ca679[_0x44531f(0x16f)]);if(!_0x2a991f[_0x44531f(0x160)]()||_0x2a991f['isSymbolicLink']())throw CliErrors[_0x44531f(0x167)](_0x44531f(0x15b)+_0x2ca679[_0x44531f(0x16f)]);if(!_0x579352)throw CliErrors['validation'](_0x44531f(0x162)+_0x2ca679[_0x44531f(0x16f)],_0x44531f(0x15d));}for(const _0x103e35 of _0x2ca679[_0x44531f(0x153)][_0x44531f(0x170)]){const _0xb751fd=resolve(_0x2ca679['skillDir'],_0x103e35['path']),_0x13cbad=dirname(_0xb751fd);mkdirSync(_0x13cbad,{'recursive':!![]});if(existsSync(_0xb751fd)&&lstatSync(_0xb751fd)[_0x44531f(0x15f)]())throw CliErrors['validation'](_0x44531f(0x16e)+_0xb751fd);writeFileSync(_0xb751fd,_0x103e35[_0x44531f(0x16d)],'utf8');}}
1
+ const a63_0x148eb6=a63_0xb155;(function(_0x16a8a6,_0x1141c8){const _0x1c6392=a63_0xb155,_0x5d2b57=_0x16a8a6();while(!![]){try{const _0xc48bc1=-parseInt(_0x1c6392(0x167))/0x1*(-parseInt(_0x1c6392(0x168))/0x2)+-parseInt(_0x1c6392(0x155))/0x3*(parseInt(_0x1c6392(0x15d))/0x4)+-parseInt(_0x1c6392(0x15e))/0x5*(parseInt(_0x1c6392(0x16a))/0x6)+-parseInt(_0x1c6392(0x162))/0x7+parseInt(_0x1c6392(0x14a))/0x8*(-parseInt(_0x1c6392(0x146))/0x9)+parseInt(_0x1c6392(0x148))/0xa*(parseInt(_0x1c6392(0x158))/0xb)+parseInt(_0x1c6392(0x15a))/0xc;if(_0xc48bc1===_0x1141c8)break;else _0x5d2b57['push'](_0x5d2b57['shift']());}catch(_0x20d82a){_0x5d2b57['push'](_0x5d2b57['shift']());}}}(a63_0x1f76,0x85a08));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 a63_0xb155(_0x2679c0,_0x2b27ab){_0x2679c0=_0x2679c0-0x145;const _0x1f7613=a63_0x1f76();let _0xb15524=_0x1f7613[_0x2679c0];return _0xb15524;}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':a63_0x148eb6(0x153),'command':a63_0x148eb6(0x149),'description':a63_0x148eb6(0x160),'risk':a63_0x148eb6(0x154),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x3aadde){const _0x362803=a63_0x148eb6,_0x2fe4f6=buildSkillCreatePlan(_0x3aadde[_0x362803(0x166)]('name'),_0x3aadde[_0x362803(0x166)](_0x362803(0x14e)),_0x3aadde[_0x362803(0x166)]('target'));return{'method':_0x362803(0x156),'url':_0x2fe4f6[_0x362803(0x15c)],'body':{'skillName':_0x2fe4f6[_0x362803(0x163)][_0x362803(0x145)],'type':_0x2fe4f6[_0x362803(0x163)][_0x362803(0x14e)],'selfContained':!![],'files':_0x2fe4f6['rendered'][_0x362803(0x152)][_0x362803(0x151)](_0x40b279=>_0x40b279[_0x362803(0x15f)])},'description':_0x362803(0x159)};},async 'execute'(_0x6a283c){const _0x17d223=a63_0x148eb6,_0x4b9f18=buildSkillCreatePlan(_0x6a283c[_0x17d223(0x166)](_0x17d223(0x169)),_0x6a283c['str'](_0x17d223(0x14e)),_0x6a283c['str'](_0x17d223(0x157)));return writeSkillDraft(_0x4b9f18,_0x6a283c[_0x17d223(0x14c)](_0x17d223(0x165))),{'ok':!![],'data':{'skillName':_0x4b9f18['rendered'][_0x17d223(0x145)],'type':_0x4b9f18['rendered']['type'],'dir':_0x4b9f18[_0x17d223(0x15c)],'files':_0x4b9f18[_0x17d223(0x163)][_0x17d223(0x152)][_0x17d223(0x151)](_0x3cf471=>_0x3cf471['path'])},'message':_0x17d223(0x14f)+_0x4b9f18[_0x17d223(0x163)][_0x17d223(0x145)]};}};function a63_0x1f76(){const _0x39a734=['18pFhcGM','name','318nyeLkn','skillName','242775iWlgbq','isDirectory','450BtaoXE','create','16XZexTy','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','bool','utf8','type','Created\x20local\x20Skill\x20draft\x20','validation','map','files','skill','read','14925ohEVpF','WRITE','target','136950BalgcT','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','28063680vYIfws','isSymbolicLink','skillDir','764TyUWXi','65345gmAuvP','path','创建本地自包含的运行态\x20Skill\x20草稿','trim','7432733CnWcCX','rendered','content','force','str','45233TazZpL'];a63_0x1f76=function(){return _0x39a734;};return a63_0x1f76();}function buildSkillCreatePlan(_0x3f149c,_0x4c9bd4,_0x30ff46){const _0x52cc9=a63_0x148eb6,_0x48fc96=_0x4c9bd4[_0x52cc9(0x161)](),_0x50393e=renderSkillTemplate({'skillName':_0x3f149c,'type':_0x48fc96});!_0x48fc96&&writeCliSideChannelLine('Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.');const _0x196b1f=resolve(normalizeSkillTarget(_0x30ff46));return{'rendered':_0x50393e,'targetRoot':_0x196b1f,'skillDir':resolve(_0x196b1f,_0x50393e['skillName'])};}function normalizeSkillTarget(_0x3c9aba){const _0x24e2db=a63_0x148eb6;return(_0x3c9aba||DEFAULT_SKILL_TARGET)[_0x24e2db(0x161)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x2405d0,_0x329412){const _0x2ebf27=a63_0x148eb6;if(existsSync(_0x2405d0[_0x2ebf27(0x15c)])){const _0xad1dd1=lstatSync(_0x2405d0[_0x2ebf27(0x15c)]);if(!_0xad1dd1[_0x2ebf27(0x147)]()||_0xad1dd1[_0x2ebf27(0x15b)]())throw CliErrors[_0x2ebf27(0x150)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x2405d0[_0x2ebf27(0x15c)]);if(!_0x329412)throw CliErrors[_0x2ebf27(0x150)]('Skill\x20directory\x20already\x20exists:\x20'+_0x2405d0[_0x2ebf27(0x15c)],_0x2ebf27(0x14b));}for(const _0x1c1fb8 of _0x2405d0[_0x2ebf27(0x163)][_0x2ebf27(0x152)]){const _0xfe07e6=resolve(_0x2405d0['skillDir'],_0x1c1fb8[_0x2ebf27(0x15f)]),_0x2aa487=dirname(_0xfe07e6);mkdirSync(_0x2aa487,{'recursive':!![]});if(existsSync(_0xfe07e6)&&lstatSync(_0xfe07e6)[_0x2ebf27(0x15b)]())throw CliErrors[_0x2ebf27(0x150)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0xfe07e6);writeFileSync(_0xfe07e6,_0x1c1fb8[_0x2ebf27(0x164)],_0x2ebf27(0x14d));}}
@@ -1 +1 @@
1
- function a64_0x51d9(_0x4e6045,_0x50e256){_0x4e6045=_0x4e6045-0xfe;const _0x3a41d5=a64_0x3a41();let _0x51d9c1=_0x3a41d5[_0x4e6045];return _0x51d9c1;}const a64_0x2cc290=a64_0x51d9;(function(_0x435028,_0x29120d){const _0x241961=a64_0x51d9,_0x8b1626=_0x435028();while(!![]){try{const _0x12576e=-parseInt(_0x241961(0x119))/0x1*(parseInt(_0x241961(0x118))/0x2)+parseInt(_0x241961(0x102))/0x3+parseInt(_0x241961(0x113))/0x4+parseInt(_0x241961(0x11d))/0x5+-parseInt(_0x241961(0xfe))/0x6+-parseInt(_0x241961(0x10f))/0x7*(-parseInt(_0x241961(0x11f))/0x8)+-parseInt(_0x241961(0xff))/0x9;if(_0x12576e===_0x29120d)break;else _0x8b1626['push'](_0x8b1626['shift']());}catch(_0x228b17){_0x8b1626['push'](_0x8b1626['shift']());}}}(a64_0x3a41,0xccfba));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';function a64_0x3a41(){const _0x2839be=['skill','validation','write','created','test','Updated','source-fingerprint','1534239xdPksu','personal','action','\x20is\x20unchanged.','5475276dTGhHF','diagram-show','Skill\x20diagram\x20for\x20','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','company','2AieGSV','1610044HvfBJw','scope','appCode','Created','5780285jtrTXh','expected-diagram-revision','24lPtnZb','trim','Skill\x20diagram\x20validation\x20passed\x20for\x20','diagram-validate','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','version','\x20Skill\x20diagram\x20for\x20','skillCode','diagram-push',';\x20next\x20write\x20expects\x20revision\x20','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','5062968rvKfMO','10252764VEYNeu','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','str','3750813XtXxAj','diagram-file','Found\x20Skill\x20diagram\x20for\x20','num','found',';\x20first\x20write\x20expects\x20revision\x20'];a64_0x3a41=function(){return _0x2839be;};return a64_0x3a41();}import{CliErrors}from'../../../errors.js';import{readRequiredSkillDiagram}from'../diagram.js';import{DIAGRAM_FILE_FLAG,DIAGRAM_SCOPE_FLAG,DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,SOURCE_FINGERPRINT_FLAG}from'../flags.js';const TARGET_FLAGS=[DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,DIAGRAM_SCOPE_FLAG],WRITE_FLAGS=[...TARGET_FLAGS,SOURCE_FINGERPRINT_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,DIAGRAM_FILE_FLAG];function readDiagramTarget(_0x4c32f6){const _0x2097c1=a64_0x51d9,_0x978f9a=_0x4c32f6[_0x2097c1(0x101)]('skill-code')[_0x2097c1(0x120)](),_0x239a72=_0x4c32f6[_0x2097c1(0x101)]('version')[_0x2097c1(0x120)](),_0x4910c0=_0x4c32f6[_0x2097c1(0x101)]('scope');if(!_0x978f9a||!_0x239a72||_0x4910c0!==_0x2097c1(0x110)&&_0x4910c0!==_0x2097c1(0x117))throw CliErrors[_0x2097c1(0x109)](_0x2097c1(0x100));return{'skillCode':_0x978f9a,'version':_0x239a72,'scope':_0x4910c0};}async function readDiagramWriteInput(_0x65ac6b){const _0x29b3cc=a64_0x51d9,_0x284b94=_0x65ac6b[_0x29b3cc(0x105)](_0x29b3cc(0x11e)),_0x41117b=_0x65ac6b[_0x29b3cc(0x101)](_0x29b3cc(0x10e))[_0x29b3cc(0x120)]();if(!Number['isInteger'](_0x284b94)||_0x284b94<0x0)throw CliErrors[_0x29b3cc(0x109)](_0x29b3cc(0x116));if(!/^sha256:[0-9a-f]{64}$/[_0x29b3cc(0x10c)](_0x41117b))throw CliErrors[_0x29b3cc(0x109)](_0x29b3cc(0x123));return{'expectedDiagramRevision':_0x284b94,'sourceFingerprint':_0x41117b,'diagram':await readRequiredSkillDiagram(_0x65ac6b[_0x29b3cc(0x101)](_0x29b3cc(0x103)))};}export const diagramValidateCommand={'service':a64_0x2cc290(0x108),'command':a64_0x2cc290(0x122),'description':a64_0x2cc290(0x129),'risk':'read','flags':WRITE_FLAGS,async 'execute'(_0x3a2a88){const _0x5529c8=a64_0x2cc290,_0x435a61=readDiagramTarget(_0x3a2a88),_0x5bc4d=await validateRuntimeSkillVersionDiagram(_0x3a2a88['appCode'],_0x435a61['skillCode'],_0x435a61[_0x5529c8(0x124)],_0x435a61['scope'],await readDiagramWriteInput(_0x3a2a88));return{'ok':!![],'data':_0x5bc4d,'message':_0x5529c8(0x121)+_0x435a61[_0x5529c8(0x126)]+'@'+_0x435a61['version']+'.'};}};export const diagramPushCommand={'service':a64_0x2cc290(0x108),'command':a64_0x2cc290(0x127),'description':'为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','risk':a64_0x2cc290(0x10a),'confirmationDescription':'将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','flags':WRITE_FLAGS,async 'execute'(_0x2ce0b9){const _0x483c13=a64_0x2cc290,_0x339c00=readDiagramTarget(_0x2ce0b9),_0x3f33ca=await putRuntimeSkillVersionDiagram(_0x2ce0b9[_0x483c13(0x11b)],_0x339c00[_0x483c13(0x126)],_0x339c00[_0x483c13(0x124)],_0x339c00['scope'],await readDiagramWriteInput(_0x2ce0b9));return{'ok':!![],'data':_0x3f33ca,'message':_0x3f33ca[_0x483c13(0x111)]==='unchanged'?_0x483c13(0x115)+_0x339c00[_0x483c13(0x126)]+'@'+_0x339c00[_0x483c13(0x124)]+_0x483c13(0x112):(_0x3f33ca[_0x483c13(0x111)]===_0x483c13(0x10b)?_0x483c13(0x11c):_0x483c13(0x10d))+_0x483c13(0x125)+_0x339c00[_0x483c13(0x126)]+'@'+_0x339c00[_0x483c13(0x124)]+'.'};}};export const diagramShowCommand={'service':a64_0x2cc290(0x108),'command':a64_0x2cc290(0x114),'description':'Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','risk':'read','flags':TARGET_FLAGS,async 'execute'(_0x3a1566){const _0x57763c=a64_0x2cc290,_0x31cc23=readDiagramTarget(_0x3a1566),_0x1a00b9=await getRuntimeSkillVersionDiagram(_0x3a1566[_0x57763c(0x11b)],_0x31cc23[_0x57763c(0x126)],_0x31cc23[_0x57763c(0x124)],_0x31cc23[_0x57763c(0x11a)]);return{'ok':!![],'data':_0x1a00b9,'message':_0x1a00b9[_0x57763c(0x106)]?_0x57763c(0x104)+_0x31cc23['skillCode']+'@'+_0x31cc23[_0x57763c(0x124)]+_0x57763c(0x128)+_0x1a00b9['expectedDiagramRevision']+'.':'No\x20Skill\x20diagram\x20is\x20stored\x20for\x20'+_0x31cc23[_0x57763c(0x126)]+'@'+_0x31cc23[_0x57763c(0x124)]+_0x57763c(0x107)+_0x1a00b9['expectedDiagramRevision']+'.'};}};
1
+ const a64_0x291e78=a64_0x500a;(function(_0x2c7876,_0x107a34){const _0x386724=a64_0x500a,_0x462cc9=_0x2c7876();while(!![]){try{const _0x294aa9=-parseInt(_0x386724(0xb9))/0x1+parseInt(_0x386724(0xa6))/0x2*(-parseInt(_0x386724(0xa3))/0x3)+-parseInt(_0x386724(0xa9))/0x4+parseInt(_0x386724(0xbd))/0x5*(-parseInt(_0x386724(0xb5))/0x6)+-parseInt(_0x386724(0xc9))/0x7+-parseInt(_0x386724(0xac))/0x8*(parseInt(_0x386724(0xc3))/0x9)+parseInt(_0x386724(0xbb))/0xa;if(_0x294aa9===_0x107a34)break;else _0x462cc9['push'](_0x462cc9['shift']());}catch(_0x44d107){_0x462cc9['push'](_0x462cc9['shift']());}}}(a64_0x4170,0x3a8f4));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';function a64_0x4170(){const _0x19a568=['trim','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','720330bvBwow','Created','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','str','100191CofGeq','source-fingerprint','11503120Xypawo','read','15YMayPV','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','scope','skill','version','personal','48843pAtpxk','validation','\x20is\x20unchanged.','unchanged','skill-code','write','917441OqnFSj','Found\x20Skill\x20diagram\x20for\x20','Skill\x20diagram\x20validation\x20passed\x20for\x20',';\x20first\x20write\x20expects\x20revision\x20','expected-diagram-revision','company','3SoUucV','isInteger','found','406194tFEzxh','test','skillCode','311788Wqnhrq','num','Skill\x20diagram\x20for\x20','56WZXPdi','appCode','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','action','expectedDiagramRevision','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.'];a64_0x4170=function(){return _0x19a568;};return a64_0x4170();}function a64_0x500a(_0x21c9eb,_0x1797f3){_0x21c9eb=_0x21c9eb-0x9e;const _0x41702b=a64_0x4170();let _0x500a95=_0x41702b[_0x21c9eb];return _0x500a95;}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(_0x1460b2){const _0x2c3114=a64_0x500a,_0x3551cc=_0x1460b2['str'](_0x2c3114(0xc7))[_0x2c3114(0xb3)](),_0x5c1464=_0x1460b2[_0x2c3114(0xb8)](_0x2c3114(0xc1))['trim'](),_0x35717c=_0x1460b2[_0x2c3114(0xb8)](_0x2c3114(0xbf));if(!_0x3551cc||!_0x5c1464||_0x35717c!==_0x2c3114(0xc2)&&_0x35717c!==_0x2c3114(0xa2))throw CliErrors[_0x2c3114(0xc4)](_0x2c3114(0xb4));return{'skillCode':_0x3551cc,'version':_0x5c1464,'scope':_0x35717c};}async function readDiagramWriteInput(_0x4edd26){const _0xb63aea=a64_0x500a,_0x1dab8d=_0x4edd26[_0xb63aea(0xaa)](_0xb63aea(0xa1)),_0x45fa5b=_0x4edd26['str'](_0xb63aea(0xba))[_0xb63aea(0xb3)]();if(!Number[_0xb63aea(0xa4)](_0x1dab8d)||_0x1dab8d<0x0)throw CliErrors[_0xb63aea(0xc4)](_0xb63aea(0xb2));if(!/^sha256:[0-9a-f]{64}$/[_0xb63aea(0xa7)](_0x45fa5b))throw CliErrors[_0xb63aea(0xc4)](_0xb63aea(0xae));return{'expectedDiagramRevision':_0x1dab8d,'sourceFingerprint':_0x45fa5b,'diagram':await readRequiredSkillDiagram(_0x4edd26[_0xb63aea(0xb8)]('diagram-file'))};}export const diagramValidateCommand={'service':'skill','command':'diagram-validate','description':a64_0x291e78(0xb7),'risk':a64_0x291e78(0xbc),'flags':WRITE_FLAGS,async 'execute'(_0x59fda0){const _0x12dfa5=a64_0x291e78,_0x595139=readDiagramTarget(_0x59fda0),_0x4856d2=await validateRuntimeSkillVersionDiagram(_0x59fda0[_0x12dfa5(0xad)],_0x595139[_0x12dfa5(0xa8)],_0x595139['version'],_0x595139['scope'],await readDiagramWriteInput(_0x59fda0));return{'ok':!![],'data':_0x4856d2,'message':_0x12dfa5(0x9f)+_0x595139['skillCode']+'@'+_0x595139['version']+'.'};}};export const diagramPushCommand={'service':'skill','command':'diagram-push','description':'为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','risk':a64_0x291e78(0xc8),'confirmationDescription':a64_0x291e78(0xaf),'flags':WRITE_FLAGS,async 'execute'(_0x4c7755){const _0x26e7f6=a64_0x291e78,_0x582573=readDiagramTarget(_0x4c7755),_0x50db29=await putRuntimeSkillVersionDiagram(_0x4c7755['appCode'],_0x582573['skillCode'],_0x582573[_0x26e7f6(0xc1)],_0x582573[_0x26e7f6(0xbf)],await readDiagramWriteInput(_0x4c7755));return{'ok':!![],'data':_0x50db29,'message':_0x50db29[_0x26e7f6(0xb0)]===_0x26e7f6(0xc6)?_0x26e7f6(0xab)+_0x582573[_0x26e7f6(0xa8)]+'@'+_0x582573['version']+_0x26e7f6(0xc5):(_0x50db29['action']==='created'?_0x26e7f6(0xb6):'Updated')+'\x20Skill\x20diagram\x20for\x20'+_0x582573[_0x26e7f6(0xa8)]+'@'+_0x582573[_0x26e7f6(0xc1)]+'.'};}};export const diagramShowCommand={'service':a64_0x291e78(0xc0),'command':'diagram-show','description':'Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','risk':a64_0x291e78(0xbc),'flags':TARGET_FLAGS,async 'execute'(_0x128b2e){const _0x22e991=a64_0x291e78,_0x51eb5d=readDiagramTarget(_0x128b2e),_0x1b853c=await getRuntimeSkillVersionDiagram(_0x128b2e['appCode'],_0x51eb5d[_0x22e991(0xa8)],_0x51eb5d[_0x22e991(0xc1)],_0x51eb5d[_0x22e991(0xbf)]);return{'ok':!![],'data':_0x1b853c,'message':_0x1b853c[_0x22e991(0xa5)]?_0x22e991(0x9e)+_0x51eb5d['skillCode']+'@'+_0x51eb5d[_0x22e991(0xc1)]+';\x20next\x20write\x20expects\x20revision\x20'+_0x1b853c[_0x22e991(0xb1)]+'.':_0x22e991(0xbe)+_0x51eb5d[_0x22e991(0xa8)]+'@'+_0x51eb5d[_0x22e991(0xc1)]+_0x22e991(0xa0)+_0x1b853c[_0x22e991(0xb1)]+'.'};}};
@@ -1 +1 @@
1
- const a65_0x2ee19e=a65_0x5e86;(function(_0x5ce6d5,_0x347366){const _0x404586=a65_0x5e86,_0x9a1182=_0x5ce6d5();while(!![]){try{const _0x299acf=parseInt(_0x404586(0x7c))/0x1*(parseInt(_0x404586(0x86))/0x2)+-parseInt(_0x404586(0x9b))/0x3*(-parseInt(_0x404586(0x7b))/0x4)+parseInt(_0x404586(0x83))/0x5+parseInt(_0x404586(0x7f))/0x6+-parseInt(_0x404586(0x80))/0x7+-parseInt(_0x404586(0x85))/0x8*(parseInt(_0x404586(0x82))/0x9)+-parseInt(_0x404586(0x92))/0xa;if(_0x299acf===_0x347366)break;else _0x9a1182['push'](_0x9a1182['shift']());}catch(_0x1ffb76){_0x9a1182['push'](_0x9a1182['shift']());}}}(a65_0xb563,0xdf0f2));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';function a65_0xb563(){const _0x51418c=['2103WAjWLm','all','production','reduce','filter','skillRoots','length','created','removed','code','personal','appCode','force','../../../skills/runtime-skill-sync.js','6412NUzanq','82714qPfNhf','push','includes','9349494DkYBxz','12502686csbERo','updated','348237EVmrbO','5545180HlBhTI','flatMap','168EZugJu','2WoYJen','envName','bool','\x20company\x20Skill(s).','skillCode','version','scope','Installed\x20','map','str','authRequired','unchanged','3614010gUipWD','read','trim','company','action','skill','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','accessKey','project'];a65_0xb563=function(){return _0x51418c;};return a65_0xb563();}import{normalizeSyncScopes}from'../scopes.js';function a65_0x5e86(_0x3c377d,_0x2a485d){_0x3c377d=_0x3c377d-0x7b;const _0xb56303=a65_0xb563();let _0x5e862b=_0xb56303[_0x3c377d];return _0x5e862b;}import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':a65_0x2ee19e(0x97),'command':'install','description':a65_0x2ee19e(0x98),'risk':a65_0x2ee19e(0x93),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x834503){return syncRuntimeSkills(_0x834503);}};async function syncRuntimeSkills(_0x5c739b){const _0x51a8a4=a65_0x2ee19e,{downloadRuntimeSkillPackage:_0x27d84a,listRuntimeSkills:_0x1630de}=await import('../../../core/api-client.js'),{linkEffectiveRuntimeSkills:_0x1182a2,materializeRuntimeSkill:_0x5dc3eb,pruneStaleRuntimeSkillCache:_0xad5c06,pruneStaleRuntimeSkillLinks:_0x2cda4f,resolveRuntimeSkillInstallTarget:_0x57660a}=await import(_0x51a8a4(0xa8)),_0x1825db=_0x5c739b['str'](_0x51a8a4(0xa4)),_0xfd2aa0=normalizeSyncScopes(_0x5c739b[_0x51a8a4(0x8f)](_0x51a8a4(0x8c))),_0x151105=_0x5c739b[_0x51a8a4(0x87)]??_0x51a8a4(0x9d),_0x40b4ab=_0x5c739b[_0x51a8a4(0x99)],_0x5354e2=_0x5c739b[_0x51a8a4(0x88)](_0x51a8a4(0xa7));if(!_0x40b4ab)throw CliErrors[_0x51a8a4(0x90)]('Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.');const _0x8f8518=_0x57660a(_0x5c739b[_0x51a8a4(0xa6)],_0x5c739b['bool'](_0x51a8a4(0x9a))?_0x51a8a4(0x9a):'global'),_0x301616=_0x57660a(_0x5c739b[_0x51a8a4(0xa6)],_0x8f8518[_0x51a8a4(0x8c)]==='project'?'global':'project'),_0x5dd565=await Promise[_0x51a8a4(0x9c)](_0xfd2aa0[_0x51a8a4(0x8e)](_0x3fc097=>_0x1630de({'appCode':_0x5c739b['appCode'],'scope':_0x3fc097,'code':_0x1825db[_0x51a8a4(0x94)]()||undefined}))),_0x4ee934=_0xfd2aa0[_0x51a8a4(0x7e)](_0x51a8a4(0xa5))?_0x5dd565[_0x51a8a4(0x84)]((_0x263da3,_0x54f3de)=>_0xfd2aa0[_0x54f3de]===_0x51a8a4(0xa5)?_0x263da3[_0x51a8a4(0xa5)]:[]):[],_0x540270=_0xfd2aa0[_0x51a8a4(0x7e)](_0x51a8a4(0x95))?_0x5dd565[_0x51a8a4(0x84)]((_0x2c488f,_0x62be35)=>_0xfd2aa0[_0x62be35]==='company'?_0x2c488f[_0x51a8a4(0x95)]:[]):[],_0x53aafc=new Set([..._0x4ee934[_0x51a8a4(0x8e)](_0x4429fd=>_0x4429fd['skillCode']?.[_0x51a8a4(0x94)]())[_0x51a8a4(0x9f)](_0x41c7ce=>Boolean(_0x41c7ce)),..._0x540270[_0x51a8a4(0x8e)](_0x2b250d=>_0x2b250d[_0x51a8a4(0x8a)]?.[_0x51a8a4(0x94)]())[_0x51a8a4(0x9f)](_0x38972b=>Boolean(_0x38972b))]),_0x4e281d=_0x1825db[_0x51a8a4(0x94)]()?[_0x1825db['trim']()]:undefined,_0x97f5f6=_0xfd2aa0[_0x51a8a4(0xa1)]===0x2&&_0xfd2aa0[_0x51a8a4(0x7e)]('personal')&&_0xfd2aa0['includes'](_0x51a8a4(0x95)),_0xcfeddf=_0x97f5f6?_0x2cda4f(_0x8f8518,_0x53aafc,_0x4e281d):[],_0x136858=_0xad5c06({'env':_0x151105,'accessKey':_0x40b4ab,'appCode':_0x5c739b['appCode'],'activeSkillCodes':_0x53aafc,'pruneSkillCodes':_0x4e281d,'scopes':_0xfd2aa0,'protectedLinkRoots':_0x301616[_0x51a8a4(0xa0)]}),_0x3388db=[];for(const _0x265fba of _0x4ee934){_0x3388db[_0x51a8a4(0x7d)](_0x5dc3eb(_0x265fba,'personal',{'env':_0x151105,'accessKey':_0x40b4ab,'appCode':_0x5c739b[_0x51a8a4(0xa6)],'force':_0x5354e2,'packageBytes':await downloadSkillPackage(_0x265fba,'personal',_0x5c739b[_0x51a8a4(0xa6)],_0x27d84a)}));}for(const _0x2a9c2b of _0x540270){_0x3388db[_0x51a8a4(0x7d)](_0x5dc3eb(_0x2a9c2b,_0x51a8a4(0x95),{'env':_0x151105,'accessKey':_0x40b4ab,'appCode':_0x5c739b['appCode'],'force':_0x5354e2,'packageBytes':await downloadSkillPackage(_0x2a9c2b,_0x51a8a4(0x95),_0x5c739b[_0x51a8a4(0xa6)],_0x27d84a)}));}const _0x5b12b5=_0x1182a2(_0x3388db,_0x8f8518),_0x4e4b87=countLinkActions(_0x5b12b5);return{'ok':!![],'data':{'appCode':_0x5c739b[_0x51a8a4(0xa6)],..._0x8f8518[_0x51a8a4(0x8c)]===_0x51a8a4(0x9a)?{'installTarget':{'scope':_0x8f8518[_0x51a8a4(0x8c)],'skillRoots':[..._0x8f8518['skillRoots']]}}:{},'personal':_0x4ee934['length'],'company':_0x540270['length'],'materialized':_0x3388db[_0x51a8a4(0xa1)],'links':{'total':_0x5b12b5[_0x51a8a4(0xa1)],'created':_0x4e4b87[_0x51a8a4(0xa2)]??0x0,'updated':_0x4e4b87[_0x51a8a4(0x81)]??0x0,'unchanged':_0x4e4b87[_0x51a8a4(0x91)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0xcfeddf['filter'](_0x386909=>_0x386909[_0x51a8a4(0x96)]===_0x51a8a4(0xa3))[_0x51a8a4(0xa1)],'cacheDirs':_0x136858['filter'](_0xb4aaa6=>_0xb4aaa6['action']===_0x51a8a4(0xa3))[_0x51a8a4(0xa1)],'skipped':[..._0xcfeddf,..._0x136858]['filter'](_0x350de8=>_0x350de8['action']==='skipped')[_0x51a8a4(0xa1)]},'skills':{'personal':_0x4ee934[_0x51a8a4(0x8e)](summarizeRuntimeSkill),'company':_0x540270['map'](summarizeRuntimeSkill)}},'message':_0x51a8a4(0x8d)+_0x4ee934[_0x51a8a4(0xa1)]+'\x20personal\x20and\x20'+_0x540270[_0x51a8a4(0xa1)]+_0x51a8a4(0x89)};}async function downloadSkillPackage(_0x309dbd,_0x3e1f72,_0x395fdd,_0xc25d7b){const _0x592974=a65_0x2ee19e,_0x2ad31c=_0x309dbd[_0x592974(0x8b)]?.['trim']();return _0x2ad31c?_0xc25d7b(_0x3e1f72,_0x309dbd[_0x592974(0x8a)],_0x395fdd,_0x2ad31c):_0xc25d7b(_0x3e1f72,_0x309dbd[_0x592974(0x8a)],_0x395fdd);}function countLinkActions(_0x23f8eb){const _0x51568a=a65_0x2ee19e;return _0x23f8eb[_0x51568a(0x9e)]((_0x2156b6,_0x3a1a0f)=>{const _0x44a577=_0x51568a;return _0x2156b6[_0x3a1a0f[_0x44a577(0x96)]]=(_0x2156b6[_0x3a1a0f[_0x44a577(0x96)]]??0x0)+0x1,_0x2156b6;},{});}
1
+ const a65_0x4b684f=a65_0x5064;(function(_0x416b54,_0x2a576f){const _0x3cb2f2=a65_0x5064,_0x4a15e5=_0x416b54();while(!![]){try{const _0x4733a9=-parseInt(_0x3cb2f2(0x114))/0x1*(parseInt(_0x3cb2f2(0x10a))/0x2)+-parseInt(_0x3cb2f2(0xfd))/0x3*(parseInt(_0x3cb2f2(0x110))/0x4)+parseInt(_0x3cb2f2(0xf0))/0x5+-parseInt(_0x3cb2f2(0xe3))/0x6+parseInt(_0x3cb2f2(0xf3))/0x7*(-parseInt(_0x3cb2f2(0xf4))/0x8)+-parseInt(_0x3cb2f2(0xe9))/0x9+parseInt(_0x3cb2f2(0x10b))/0xa*(parseInt(_0x3cb2f2(0x10d))/0xb);if(_0x4733a9===_0x2a576f)break;else _0x4a15e5['push'](_0x4a15e5['shift']());}catch(_0x3f1c3e){_0x4a15e5['push'](_0x4a15e5['shift']());}}}(a65_0x2720,0x563de));import{CliErrors}from'../../../errors.js';function a65_0x5064(_0x4d3460,_0x569b39){_0x4d3460=_0x4d3460-0xe3;const _0x272061=a65_0x2720();let _0x50648f=_0x272061[_0x4d3460];return _0x50648f;}import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':a65_0x4b684f(0xe6),'command':a65_0x4b684f(0xf1),'description':a65_0x4b684f(0xe8),'risk':a65_0x4b684f(0x107),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x71d002){return syncRuntimeSkills(_0x71d002);}};function a65_0x2720(){const _0x1efadc=['3ouHSXY','company','skillRoots','map','all','push','project','bool','skillCode','includes','read','created','personal','22tYvmgB','250JuPaGK','force','889570waAFkX','production','../../../skills/runtime-skill-sync.js','2015852fXTQhs','length','unchanged','skipped','35503BHuzoL','trim','3852000gzTrSF','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','Installed\x20','skill','str','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','2054943pzupBy','\x20personal\x20and\x20','envName','accessKey','global','action','removed','1405275OraPgg','install','flatMap','644QHxWhN','16064YcgcIm','appCode','code','authRequired','scope','reduce','version','filter','updated'];a65_0x2720=function(){return _0x1efadc;};return a65_0x2720();}async function syncRuntimeSkills(_0x53e4b5){const _0x337b33=a65_0x4b684f,{downloadRuntimeSkillPackage:_0x5e5bf1,listRuntimeSkills:_0x165d1f}=await import('../../../core/api-client.js'),{linkEffectiveRuntimeSkills:_0x2ba97e,materializeRuntimeSkill:_0x5558f3,pruneStaleRuntimeSkillCache:_0x1dbce0,pruneStaleRuntimeSkillLinks:_0x3976dc,resolveRuntimeSkillInstallTarget:_0x15e4be}=await import(_0x337b33(0x10f)),_0x44e823=_0x53e4b5['str'](_0x337b33(0xf6)),_0x114588=normalizeSyncScopes(_0x53e4b5[_0x337b33(0xe7)](_0x337b33(0xf8))),_0xcb1b77=_0x53e4b5[_0x337b33(0xeb)]??_0x337b33(0x10e),_0x355ff6=_0x53e4b5[_0x337b33(0xec)],_0x2e919b=_0x53e4b5['bool'](_0x337b33(0x10c));if(!_0x355ff6)throw CliErrors[_0x337b33(0xf7)](_0x337b33(0xe4));const _0x32cd8c=_0x15e4be(_0x53e4b5['appCode'],_0x53e4b5[_0x337b33(0x104)](_0x337b33(0x103))?_0x337b33(0x103):_0x337b33(0xed)),_0x579e65=_0x15e4be(_0x53e4b5[_0x337b33(0xf5)],_0x32cd8c[_0x337b33(0xf8)]==='project'?_0x337b33(0xed):_0x337b33(0x103)),_0x807dce=await Promise[_0x337b33(0x101)](_0x114588['map'](_0x1d2fd1=>_0x165d1f({'appCode':_0x53e4b5[_0x337b33(0xf5)],'scope':_0x1d2fd1,'code':_0x44e823[_0x337b33(0x115)]()||undefined}))),_0x12d033=_0x114588[_0x337b33(0x106)](_0x337b33(0x109))?_0x807dce[_0x337b33(0xf2)]((_0x3f6211,_0xd8d3e3)=>_0x114588[_0xd8d3e3]==='personal'?_0x3f6211[_0x337b33(0x109)]:[]):[],_0x4b3240=_0x114588[_0x337b33(0x106)](_0x337b33(0xfe))?_0x807dce[_0x337b33(0xf2)]((_0x10d008,_0x1431d6)=>_0x114588[_0x1431d6]===_0x337b33(0xfe)?_0x10d008['company']:[]):[],_0x3b60a5=new Set([..._0x12d033[_0x337b33(0x100)](_0x8adc79=>_0x8adc79[_0x337b33(0x105)]?.[_0x337b33(0x115)]())['filter'](_0xede89c=>Boolean(_0xede89c)),..._0x4b3240['map'](_0x1262f8=>_0x1262f8['skillCode']?.[_0x337b33(0x115)]())['filter'](_0x3edf94=>Boolean(_0x3edf94))]),_0x46a8a3=_0x44e823[_0x337b33(0x115)]()?[_0x44e823[_0x337b33(0x115)]()]:undefined,_0x7ff7bb=_0x114588[_0x337b33(0x111)]===0x2&&_0x114588[_0x337b33(0x106)](_0x337b33(0x109))&&_0x114588[_0x337b33(0x106)](_0x337b33(0xfe)),_0x4a60af=_0x7ff7bb?_0x3976dc(_0x32cd8c,_0x3b60a5,_0x46a8a3):[],_0x5252ae=_0x1dbce0({'env':_0xcb1b77,'accessKey':_0x355ff6,'appCode':_0x53e4b5[_0x337b33(0xf5)],'activeSkillCodes':_0x3b60a5,'pruneSkillCodes':_0x46a8a3,'scopes':_0x114588,'protectedLinkRoots':_0x579e65[_0x337b33(0xff)]}),_0x5b2468=[];for(const _0x149a22 of _0x12d033){_0x5b2468['push'](_0x5558f3(_0x149a22,'personal',{'env':_0xcb1b77,'accessKey':_0x355ff6,'appCode':_0x53e4b5[_0x337b33(0xf5)],'force':_0x2e919b,'packageBytes':await downloadSkillPackage(_0x149a22,_0x337b33(0x109),_0x53e4b5['appCode'],_0x5e5bf1)}));}for(const _0x2175ad of _0x4b3240){_0x5b2468[_0x337b33(0x102)](_0x5558f3(_0x2175ad,'company',{'env':_0xcb1b77,'accessKey':_0x355ff6,'appCode':_0x53e4b5[_0x337b33(0xf5)],'force':_0x2e919b,'packageBytes':await downloadSkillPackage(_0x2175ad,_0x337b33(0xfe),_0x53e4b5[_0x337b33(0xf5)],_0x5e5bf1)}));}const _0x2b2288=_0x2ba97e(_0x5b2468,_0x32cd8c),_0x2a6e98=countLinkActions(_0x2b2288);return{'ok':!![],'data':{'appCode':_0x53e4b5[_0x337b33(0xf5)],..._0x32cd8c[_0x337b33(0xf8)]===_0x337b33(0x103)?{'installTarget':{'scope':_0x32cd8c[_0x337b33(0xf8)],'skillRoots':[..._0x32cd8c[_0x337b33(0xff)]]}}:{},'personal':_0x12d033[_0x337b33(0x111)],'company':_0x4b3240['length'],'materialized':_0x5b2468['length'],'links':{'total':_0x2b2288['length'],'created':_0x2a6e98[_0x337b33(0x108)]??0x0,'updated':_0x2a6e98[_0x337b33(0xfc)]??0x0,'unchanged':_0x2a6e98[_0x337b33(0x112)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x4a60af[_0x337b33(0xfb)](_0x48b88c=>_0x48b88c[_0x337b33(0xee)]===_0x337b33(0xef))[_0x337b33(0x111)],'cacheDirs':_0x5252ae[_0x337b33(0xfb)](_0x4fc30c=>_0x4fc30c['action']==='removed')[_0x337b33(0x111)],'skipped':[..._0x4a60af,..._0x5252ae]['filter'](_0x58c4e2=>_0x58c4e2[_0x337b33(0xee)]===_0x337b33(0x113))['length']},'skills':{'personal':_0x12d033[_0x337b33(0x100)](summarizeRuntimeSkill),'company':_0x4b3240['map'](summarizeRuntimeSkill)}},'message':_0x337b33(0xe5)+_0x12d033[_0x337b33(0x111)]+_0x337b33(0xea)+_0x4b3240[_0x337b33(0x111)]+'\x20company\x20Skill(s).'};}async function downloadSkillPackage(_0x8b5c3c,_0x383db4,_0x2c7505,_0x130d7d){const _0x1cfaed=a65_0x4b684f,_0x2f8250=_0x8b5c3c[_0x1cfaed(0xfa)]?.['trim']();return _0x2f8250?_0x130d7d(_0x383db4,_0x8b5c3c[_0x1cfaed(0x105)],_0x2c7505,_0x2f8250):_0x130d7d(_0x383db4,_0x8b5c3c[_0x1cfaed(0x105)],_0x2c7505);}function countLinkActions(_0x3e8663){const _0x29449e=a65_0x4b684f;return _0x3e8663[_0x29449e(0xf9)]((_0xbe0c77,_0x1db49d)=>{const _0x1a076a=_0x29449e;return _0xbe0c77[_0x1db49d[_0x1a076a(0xee)]]=(_0xbe0c77[_0x1db49d[_0x1a076a(0xee)]]??0x0)+0x1,_0xbe0c77;},{});}
@@ -1 +1 @@
1
- const a66_0x25b328=a66_0x2a21;(function(_0x5a7440,_0x137f02){const _0x239a64=a66_0x2a21,_0x3041d6=_0x5a7440();while(!![]){try{const _0x528986=-parseInt(_0x239a64(0x118))/0x1+parseInt(_0x239a64(0x135))/0x2+parseInt(_0x239a64(0x11c))/0x3+-parseInt(_0x239a64(0x132))/0x4+parseInt(_0x239a64(0x130))/0x5+parseInt(_0x239a64(0x12f))/0x6+parseInt(_0x239a64(0x128))/0x7*(parseInt(_0x239a64(0x12a))/0x8);if(_0x528986===_0x137f02)break;else _0x3041d6['push'](_0x3041d6['shift']());}catch(_0x6901af){_0x3041d6['push'](_0x3041d6['shift']());}}}(a66_0x4e3b,0xed46b));import{CliErrors}from'../../../errors.js';function a66_0x4e3b(){const _0x133b93=['bool','builtin','list','project','\x20local\x20Skill(s).','Listed\x20','accessKey','1323QZifYu','personal','3576DyxPua','filter','local','skill','global','5578392GlcgXp','5577600TeTjAj','company','3387960hCgHpB','map','../../../core/api-client.js','608132yCyqbv','scope','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','str','942574OUCPmC','appCode','length','read','982938NXWrUQ','production','authRequired','\x20remote\x20Skill(s).','trim'];a66_0x4e3b=function(){return _0x133b93;};return a66_0x4e3b();}import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';function a66_0x2a21(_0x1a949f,_0x46bb48){_0x1a949f=_0x1a949f-0x115;const _0x4e3b8d=a66_0x4e3b();let _0x2a21be=_0x4e3b8d[_0x1a949f];return _0x2a21be;}import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':a66_0x25b328(0x12d),'command':a66_0x25b328(0x123),'description':a66_0x25b328(0x116),'risk':a66_0x25b328(0x11b),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x1f54f4){const _0x249297=a66_0x25b328,_0x320307=_0x1f54f4[_0x249297(0x117)]('code'),_0x40d56f=normalizeListScope(_0x1f54f4['str'](_0x249297(0x115)));if(_0x1f54f4[_0x249297(0x121)]('local')){const _0x531a92=_0x1f54f4[_0x249297(0x127)];if(!_0x531a92)throw CliErrors[_0x249297(0x11e)]();const {listLocalRuntimeSkills:_0x3e7577,resolveRuntimeSkillInstallTarget:_0x54e838}=await import('../../../skills/runtime-skill-sync.js'),_0x4d7da1=_0x54e838(_0x1f54f4[_0x249297(0x119)],_0x1f54f4['bool'](_0x249297(0x124))?_0x249297(0x124):_0x249297(0x12e)),_0x3f627b=_0x3e7577({'env':_0x1f54f4['envName']??_0x249297(0x11d),'accessKey':_0x531a92,'appCode':_0x1f54f4[_0x249297(0x119)],'scopes':listScopeToRuntimeScopes(_0x40d56f),'code':_0x320307[_0x249297(0x120)]()||undefined},_0x4d7da1),_0x3081d5=groupLocalRuntimeSkills(_0x3f627b);return{'ok':!![],'data':{'appCode':_0x1f54f4[_0x249297(0x119)],'source':_0x249297(0x12c),..._0x4d7da1[_0x249297(0x115)]===_0x249297(0x124)?{'installScope':_0x4d7da1[_0x249297(0x115)]}:{},'scope':_0x40d56f,'total':_0x3f627b[_0x249297(0x11a)],'personal':_0x3081d5[_0x249297(0x129)][_0x249297(0x11a)],'company':_0x3081d5[_0x249297(0x131)]['length'],'items':_0x3f627b[_0x249297(0x133)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x3081d5[_0x249297(0x129)][_0x249297(0x133)](summarizeLocalRuntimeSkill),'company':_0x3081d5[_0x249297(0x131)][_0x249297(0x133)](summarizeLocalRuntimeSkill)}},'message':_0x249297(0x126)+_0x3f627b[_0x249297(0x11a)]+_0x249297(0x125)};}const {listRuntimeSkills:_0x4de29}=await import(_0x249297(0x134)),_0xa77cfb=await _0x4de29({'appCode':_0x1f54f4[_0x249297(0x119)],'scope':listScopeToRemoteScope(_0x40d56f),'code':_0x320307[_0x249297(0x120)]()||undefined}),_0x849231=shouldListScope(_0x40d56f,_0x249297(0x129))?_0xa77cfb['personal']??[]:[],_0x593c9a=shouldListScope(_0x40d56f,'company')?_0xa77cfb[_0x249297(0x131)]??[]:[],_0x5f1130=[..._0x849231,..._0x593c9a];return{'ok':!![],'data':{'appCode':_0x1f54f4['appCode'],'source':'remote','scope':_0x40d56f,'total':_0x5f1130[_0x249297(0x11a)],'personal':_0x849231[_0x249297(0x11a)],'company':_0x593c9a['length'],'items':_0x5f1130['map'](summarizeRuntimeSkill),'skills':{'personal':_0x849231[_0x249297(0x133)](summarizeRuntimeSkill),'company':_0x593c9a[_0x249297(0x133)](summarizeRuntimeSkill)}},'message':_0x249297(0x126)+_0x5f1130[_0x249297(0x11a)]+_0x249297(0x11f)};}};function groupLocalRuntimeSkills(_0x2a01ed){const _0x3a0092=a66_0x25b328;return{'personal':_0x2a01ed[_0x3a0092(0x12b)](_0x19eeda=>_0x19eeda[_0x3a0092(0x115)]===_0x3a0092(0x129)),'company':_0x2a01ed[_0x3a0092(0x12b)](_0x5e0d7a=>_0x5e0d7a[_0x3a0092(0x115)]===_0x3a0092(0x131)),'builtin':_0x2a01ed[_0x3a0092(0x12b)](_0x5a3f30=>_0x5a3f30[_0x3a0092(0x115)]===_0x3a0092(0x122))};}
1
+ const a66_0x2ddee2=a66_0x2230;(function(_0x1f6f48,_0x1f07d0){const _0x142afc=a66_0x2230,_0x596727=_0x1f6f48();while(!![]){try{const _0x2994cd=parseInt(_0x142afc(0x150))/0x1*(-parseInt(_0x142afc(0x152))/0x2)+-parseInt(_0x142afc(0x163))/0x3*(parseInt(_0x142afc(0x15d))/0x4)+parseInt(_0x142afc(0x149))/0x5*(parseInt(_0x142afc(0x14e))/0x6)+parseInt(_0x142afc(0x14b))/0x7+parseInt(_0x142afc(0x156))/0x8*(-parseInt(_0x142afc(0x162))/0x9)+-parseInt(_0x142afc(0x14c))/0xa*(parseInt(_0x142afc(0x154))/0xb)+-parseInt(_0x142afc(0x166))/0xc*(-parseInt(_0x142afc(0x15c))/0xd);if(_0x2994cd===_0x1f07d0)break;else _0x596727['push'](_0x596727['shift']());}catch(_0x5df34f){_0x596727['push'](_0x596727['shift']());}}}(a66_0x31a5,0x2d660));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';function a66_0x2230(_0xd4cc5b,_0x377b5f){_0xd4cc5b=_0xd4cc5b-0x145;const _0x31a549=a66_0x31a5();let _0x223032=_0x31a549[_0xd4cc5b];return _0x223032;}import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':a66_0x2ddee2(0x15e),'command':a66_0x2ddee2(0x160),'description':a66_0x2ddee2(0x14d),'risk':a66_0x2ddee2(0x169),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x2d9400){const _0x534055=a66_0x2ddee2,_0x68eb73=_0x2d9400[_0x534055(0x148)]('code'),_0xcd3d08=normalizeListScope(_0x2d9400[_0x534055(0x148)](_0x534055(0x16b)));if(_0x2d9400['bool']('local')){const _0x202209=_0x2d9400['accessKey'];if(!_0x202209)throw CliErrors[_0x534055(0x151)]();const {listLocalRuntimeSkills:_0x8619f4,resolveRuntimeSkillInstallTarget:_0x371181}=await import(_0x534055(0x159)),_0x624606=_0x371181(_0x2d9400[_0x534055(0x145)],_0x2d9400['bool']('project')?'project':_0x534055(0x15f)),_0x332e12=_0x8619f4({'env':_0x2d9400[_0x534055(0x155)]??_0x534055(0x167),'accessKey':_0x202209,'appCode':_0x2d9400[_0x534055(0x145)],'scopes':listScopeToRuntimeScopes(_0xcd3d08),'code':_0x68eb73['trim']()||undefined},_0x624606),_0x1f90f3=groupLocalRuntimeSkills(_0x332e12);return{'ok':!![],'data':{'appCode':_0x2d9400[_0x534055(0x145)],'source':_0x534055(0x14f),..._0x624606[_0x534055(0x16b)]===_0x534055(0x147)?{'installScope':_0x624606[_0x534055(0x16b)]}:{},'scope':_0xcd3d08,'total':_0x332e12[_0x534055(0x157)],'personal':_0x1f90f3[_0x534055(0x14a)][_0x534055(0x157)],'company':_0x1f90f3[_0x534055(0x164)]['length'],'items':_0x332e12[_0x534055(0x161)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x1f90f3[_0x534055(0x14a)][_0x534055(0x161)](summarizeLocalRuntimeSkill),'company':_0x1f90f3[_0x534055(0x164)][_0x534055(0x161)](summarizeLocalRuntimeSkill)}},'message':_0x534055(0x15b)+_0x332e12['length']+_0x534055(0x158)};}const {listRuntimeSkills:_0x4c4f8d}=await import(_0x534055(0x165)),_0xb5e96=await _0x4c4f8d({'appCode':_0x2d9400[_0x534055(0x145)],'scope':listScopeToRemoteScope(_0xcd3d08),'code':_0x68eb73[_0x534055(0x153)]()||undefined}),_0xb8f202=shouldListScope(_0xcd3d08,_0x534055(0x14a))?_0xb5e96[_0x534055(0x14a)]??[]:[],_0x41a8e0=shouldListScope(_0xcd3d08,_0x534055(0x164))?_0xb5e96[_0x534055(0x164)]??[]:[],_0x207f97=[..._0xb8f202,..._0x41a8e0];return{'ok':!![],'data':{'appCode':_0x2d9400[_0x534055(0x145)],'source':_0x534055(0x15a),'scope':_0xcd3d08,'total':_0x207f97['length'],'personal':_0xb8f202[_0x534055(0x157)],'company':_0x41a8e0[_0x534055(0x157)],'items':_0x207f97[_0x534055(0x161)](summarizeRuntimeSkill),'skills':{'personal':_0xb8f202[_0x534055(0x161)](summarizeRuntimeSkill),'company':_0x41a8e0['map'](summarizeRuntimeSkill)}},'message':_0x534055(0x15b)+_0x207f97[_0x534055(0x157)]+_0x534055(0x146)};}};function a66_0x31a5(){const _0x119569=['3565573Ojgusm','envName','288136xNgrSZ','length','\x20local\x20Skill(s).','../../../skills/runtime-skill-sync.js','remote','Listed\x20','65143GEeqVD','24DsLyiz','skill','global','list','map','27eUPYkJ','115713prrfrQ','company','../../../core/api-client.js','2280swDMDA','production','builtin','read','filter','scope','appCode','\x20remote\x20Skill(s).','project','str','5JcxHGW','personal','41713ksTIPx','10aMAjIZ','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','1566318sKkZIl','local','184765PgGfYb','authRequired','4fFvnND','trim'];a66_0x31a5=function(){return _0x119569;};return a66_0x31a5();}function groupLocalRuntimeSkills(_0x4f104f){const _0x470894=a66_0x2ddee2;return{'personal':_0x4f104f['filter'](_0x5af675=>_0x5af675[_0x470894(0x16b)]===_0x470894(0x14a)),'company':_0x4f104f[_0x470894(0x16a)](_0x18c2dd=>_0x18c2dd[_0x470894(0x16b)]===_0x470894(0x164)),'builtin':_0x4f104f[_0x470894(0x16a)](_0x11811f=>_0x11811f[_0x470894(0x16b)]===_0x470894(0x168))};}
@@ -1 +1 @@
1
- const a67_0x5bada1=a67_0xa879;function a67_0xa879(_0x18bf44,_0x23edc7){_0x18bf44=_0x18bf44-0x1d2;const _0x3faf79=a67_0x3faf();let _0xa879e4=_0x3faf79[_0x18bf44];return _0xa879e4;}(function(_0x276bc0,_0x485fb9){const _0x33dad8=a67_0xa879,_0x9f2959=_0x276bc0();while(!![]){try{const _0x320470=parseInt(_0x33dad8(0x1d3))/0x1*(parseInt(_0x33dad8(0x1d9))/0x2)+parseInt(_0x33dad8(0x1d5))/0x3+parseInt(_0x33dad8(0x1d4))/0x4+-parseInt(_0x33dad8(0x1d8))/0x5*(-parseInt(_0x33dad8(0x1dc))/0x6)+parseInt(_0x33dad8(0x1de))/0x7+-parseInt(_0x33dad8(0x1da))/0x8+-parseInt(_0x33dad8(0x1dd))/0x9*(parseInt(_0x33dad8(0x1d2))/0xa);if(_0x320470===_0x485fb9)break;else _0x9f2959['push'](_0x9f2959['shift']());}catch(_0x3937dd){_0x9f2959['push'](_0x9f2959['shift']());}}}(a67_0x3faf,0x6bdb5));function a67_0x3faf(){const _0x53686a=['4719672KOcslj','push','6vdZFth','9yBHBVk','2390745OenChp','skill','将本地\x20Skill\x20目录推送到个人范围,或提交公司范围版本审核','12897610NKehIC','37oihiBt','3198940CaFNun','1285425BJBdcJ','将读取本地\x20Skill\x20内容:个人范围会立即保存并生效,公司范围会提交一个新版本进入审核。确认界面不会展示目录路径或\x20Skill\x20正文。','write','147765yxKxvs','39038QtoBOP'];a67_0x3faf=function(){return _0x53686a;};return a67_0x3faf();}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':a67_0x5bada1(0x1df),'command':a67_0x5bada1(0x1db),'description':a67_0x5bada1(0x1e0),'risk':a67_0x5bada1(0x1d7),'confirmationDescription':a67_0x5bada1(0x1d6),'flags':[DIR_FLAG,DIAGRAM_FILE_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};
1
+ function a67_0x210b(_0x14ed36,_0x2a735c){_0x14ed36=_0x14ed36-0x66;const _0x44580a=a67_0x4458();let _0x210b57=_0x44580a[_0x14ed36];return _0x210b57;}const a67_0x5f1e97=a67_0x210b;(function(_0xb84e61,_0x28a15f){const _0x2b3e29=a67_0x210b,_0x4f57a4=_0xb84e61();while(!![]){try{const _0x5e9fa2=parseInt(_0x2b3e29(0x66))/0x1+parseInt(_0x2b3e29(0x70))/0x2*(-parseInt(_0x2b3e29(0x73))/0x3)+-parseInt(_0x2b3e29(0x6b))/0x4+parseInt(_0x2b3e29(0x6c))/0x5*(parseInt(_0x2b3e29(0x69))/0x6)+parseInt(_0x2b3e29(0x67))/0x7*(parseInt(_0x2b3e29(0x72))/0x8)+parseInt(_0x2b3e29(0x71))/0x9+parseInt(_0x2b3e29(0x6e))/0xa*(-parseInt(_0x2b3e29(0x6a))/0xb);if(_0x5e9fa2===_0x28a15f)break;else _0x4f57a4['push'](_0x4f57a4['shift']());}catch(_0x27a6b4){_0x4f57a4['push'](_0x4f57a4['shift']());}}}(a67_0x4458,0xd462c));import{CONFIRM_WARNINGS_FLAG,DIAGRAM_FILE_FLAG,DIR_FLAG,PUSH_SCOPE_FLAG}from'../flags.js';import{skillPushDryRun,skillPushExecute}from'../push-execute.js';function a67_0x4458(){const _0x52e41f=['47924hUQEYV','14406192VKfzlk','2660200xWQpcW','63AsHkUe','1091508AASXdI','35SpulfN','skill','3750jmTZJm','44YmrEOi','2455600hRstkz','11645MBssxq','将读取本地\x20Skill\x20内容:个人范围会立即保存并生效,公司范围会提交一个新版本进入审核。确认界面不会展示目录路径或\x20Skill\x20正文。','9558530feEyfA','write'];a67_0x4458=function(){return _0x52e41f;};return a67_0x4458();}export const pushCommand={'service':a67_0x5f1e97(0x68),'command':'push','description':'将本地\x20Skill\x20目录推送到个人范围,或提交公司范围版本审核','risk':a67_0x5f1e97(0x6f),'confirmationDescription':a67_0x5f1e97(0x6d),'flags':[DIR_FLAG,DIAGRAM_FILE_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};
@@ -1 +1 @@
1
- const a68_0x1504c2=a68_0x17b7;function a68_0x17b7(_0x2fc70a,_0x4c91cc){_0x2fc70a=_0x2fc70a-0x12c;const _0x99ee75=a68_0x99ee();let _0x17b7f0=_0x99ee75[_0x2fc70a];return _0x17b7f0;}(function(_0xb14f74,_0x285da1){const _0x40eb98=a68_0x17b7,_0x348fec=_0xb14f74();while(!![]){try{const _0x154c31=parseInt(_0x40eb98(0x12e))/0x1+-parseInt(_0x40eb98(0x137))/0x2+parseInt(_0x40eb98(0x139))/0x3*(-parseInt(_0x40eb98(0x12c))/0x4)+-parseInt(_0x40eb98(0x135))/0x5+-parseInt(_0x40eb98(0x13c))/0x6+parseInt(_0x40eb98(0x13a))/0x7*(-parseInt(_0x40eb98(0x130))/0x8)+parseInt(_0x40eb98(0x133))/0x9*(parseInt(_0x40eb98(0x12f))/0xa);if(_0x154c31===_0x285da1)break;else _0x348fec['push'](_0x348fec['shift']());}catch(_0x173830){_0x348fec['push'](_0x348fec['shift']());}}}(a68_0x99ee,0x27d84));import{DIR_FLAG,STRICT_FLAG}from'../flags.js';function a68_0x99ee(){const _0x3509c9=['validate','23862FddbsJ','12bPaNfO','Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','98739mBZmep','10gIzouW','1431912aNDuWo','read','dir','5013891wyrtyM','str','765245rOUMao','strict','251942fOyKSv','errors','30648mWkVnY','7sPaltz'];a68_0x99ee=function(){return _0x3509c9;};return a68_0x99ee();}import{throwIfSkillValidationFailed,validateSkillDirectory}from'../validate.js';export const validateCommand={'service':'skill','command':a68_0x1504c2(0x13b),'description':a68_0x1504c2(0x12d),'risk':a68_0x1504c2(0x131),'requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x286aa7){const _0x3dda75=a68_0x1504c2,_0x434cae=_0x286aa7['bool'](_0x3dda75(0x136)),_0xc991cf=validateSkillDirectory(_0x286aa7[_0x3dda75(0x134)]('dir'),{'strict':_0x434cae});return throwIfSkillValidationFailed(_0xc991cf,_0x434cae),{'ok':!![],'data':{'dir':_0xc991cf[_0x3dda75(0x132)],'type':_0xc991cf['type'],'errors':_0xc991cf[_0x3dda75(0x138)],'warnings':_0xc991cf['warnings']},'message':'Skill\x20validation\x20passed.'};}};
1
+ const a68_0x1960ed=a68_0x1cb6;function a68_0x1cb6(_0x397d03,_0x4655b0){_0x397d03=_0x397d03-0xc9;const _0x12f753=a68_0x12f7();let _0x1cb62c=_0x12f753[_0x397d03];return _0x1cb62c;}(function(_0x51ad4b,_0x532e35){const _0x12c3cf=a68_0x1cb6,_0x106f89=_0x51ad4b();while(!![]){try{const _0x3af8b0=parseInt(_0x12c3cf(0xcc))/0x1*(-parseInt(_0x12c3cf(0xd2))/0x2)+-parseInt(_0x12c3cf(0xd6))/0x3+parseInt(_0x12c3cf(0xd4))/0x4+-parseInt(_0x12c3cf(0xce))/0x5*(parseInt(_0x12c3cf(0xcd))/0x6)+-parseInt(_0x12c3cf(0xd7))/0x7+parseInt(_0x12c3cf(0xd5))/0x8*(-parseInt(_0x12c3cf(0xd9))/0x9)+parseInt(_0x12c3cf(0xcb))/0xa;if(_0x3af8b0===_0x532e35)break;else _0x106f89['push'](_0x106f89['shift']());}catch(_0x50c9e2){_0x106f89['push'](_0x106f89['shift']());}}}(a68_0x12f7,0xe57d0));import{DIR_FLAG,STRICT_FLAG}from'../flags.js';function a68_0x12f7(){const _0x5aa7a3=['dir','4118788EEmvRi','1484464rpwfYt','356688JfgibX','9331119ulFiYX','skill','36zEReIx','warnings','errors','51134810quuwqo','7441UmIjKg','6IvhiYd','7343810ADibdz','type','str','validate','414nNfhGm'];a68_0x12f7=function(){return _0x5aa7a3;};return a68_0x12f7();}import{throwIfSkillValidationFailed,validateSkillDirectory}from'../validate.js';export const validateCommand={'service':a68_0x1960ed(0xd8),'command':a68_0x1960ed(0xd1),'description':'Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x343233){const _0x4608c0=a68_0x1960ed,_0x51a0e8=_0x343233['bool']('strict'),_0x26a9c7=validateSkillDirectory(_0x343233[_0x4608c0(0xd0)]('dir'),{'strict':_0x51a0e8});return throwIfSkillValidationFailed(_0x26a9c7,_0x51a0e8),{'ok':!![],'data':{'dir':_0x26a9c7[_0x4608c0(0xd3)],'type':_0x26a9c7[_0x4608c0(0xcf)],'errors':_0x26a9c7[_0x4608c0(0xca)],'warnings':_0x26a9c7[_0x4608c0(0xc9)]},'message':'Skill\x20validation\x20passed.'};}};
@@ -1 +1 @@
1
- (function(_0x4b8a2c,_0x45d60a){const _0x5472c6=a69_0x3ac5,_0x2354fc=_0x4b8a2c();while(!![]){try{const _0x49eb33=-parseInt(_0x5472c6(0xfa))/0x1*(-parseInt(_0x5472c6(0xfd))/0x2)+parseInt(_0x5472c6(0x101))/0x3+parseInt(_0x5472c6(0xf5))/0x4+-parseInt(_0x5472c6(0xf9))/0x5+parseInt(_0x5472c6(0xee))/0x6+parseInt(_0x5472c6(0xf8))/0x7+-parseInt(_0x5472c6(0xf4))/0x8;if(_0x49eb33===_0x45d60a)break;else _0x2354fc['push'](_0x2354fc['shift']());}catch(_0x51f57a){_0x2354fc['push'](_0x2354fc['shift']());}}}(a69_0x39b3,0x2fc01));function a69_0x39b3(){const _0x18f603=['774484lqscDj','mermaid','Mermaid\x20flowchart\x20file\x20not\x20found:\x20','689871DpnAyI','1510675JgNvYi','95971wlOACJ','isFile','defineProperties','2eJoAWi','utf8','parse','replace','558087eDhiWa','validation','diagram','trim','1561080lAeqbF','Fix\x20the\x20Mermaid\x20syntax\x20reported\x20by\x20your\x20editor\x20or\x20preview\x20tool,\x20then\x20retry\x20with\x20the\x20same\x20file.','default','document','Mermaid\x20syntax\x20validation\x20failed.','window','2693072PhxPIP'];a69_0x39b3=function(){return _0x18f603;};return a69_0x39b3();}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(_0x143eef){const _0x5ac971=a69_0x3ac5;return(await readRequiredSkillDiagramInput(_0x143eef))[_0x5ac971(0xec)];}function a69_0x3ac5(_0x3b33a5,_0x5ea6d7){_0x3b33a5=_0x3b33a5-0xeb;const _0x39b309=a69_0x39b3();let _0x3ac579=_0x39b309[_0x3b33a5];return _0x3ac579;}export async function readRequiredSkillDiagramInput(_0x2b2a93){const _0x389e49=a69_0x3ac5,_0x1dd478=_0x2b2a93[_0x389e49(0xed)]();if(!_0x1dd478)throw CliErrors[_0x389e49(0xeb)]('--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.');let _0x5dca33,_0x38c2c2;if(_0x1dd478==='-')try{_0x5dca33=readFileSync(0x0,_0x389e49(0xfe));}catch{throw CliErrors[_0x389e49(0xeb)]('Unable\x20to\x20read\x20Mermaid\x20flowchart\x20from\x20standard\x20input.');}else{const _0x541b79=resolve(_0x1dd478);if(!existsSync(_0x541b79))throw CliErrors[_0x389e49(0xeb)](_0x389e49(0xf7)+_0x541b79);if(!statSync(_0x541b79)[_0x389e49(0xfb)]())throw CliErrors['validation']('Mermaid\x20flowchart\x20path\x20is\x20not\x20a\x20regular\x20file:\x20'+_0x541b79);_0x38c2c2=realpathSync(_0x541b79),_0x5dca33=readFileSync(_0x38c2c2,_0x389e49(0xfe));}return{'diagram':{'schemaVersion':0x1,'mermaid':await validateAndCanonicalizeMermaid(_0x5dca33)},'sourceFilePath':_0x38c2c2};}export async function validateAndCanonicalizeMermaid(_0x472120){const _0x274623=a69_0x3ac5,_0xd314a5=_0x472120[_0x274623(0x100)](/\r\n/g,'\x0a')['replace'](/\r/g,'\x0a')[_0x274623(0x100)](/\n+$/,'')+'\x0a';try{const _0x4e1e68=await loadMermaidApi();await _0x4e1e68[_0x274623(0xff)](_0xd314a5);}catch{throw diagramValidationError();}return _0xd314a5;}function loadMermaidApi(){return mermaidApiPromise??=((async()=>{const _0x42ce79=a69_0x3ac5;if(!(_0x42ce79(0xf3)in globalThis)||!(_0x42ce79(0xf1)in globalThis)){const _0x4ab282=new JSDOM('');Object[_0x42ce79(0xfc)](globalThis,{'window':{'configurable':!![],'value':_0x4ab282[_0x42ce79(0xf3)]},'document':{'configurable':!![],'value':_0x4ab282['window']['document']}});}return(await import(_0x42ce79(0xf6)))[_0x42ce79(0xf0)];})()),mermaidApiPromise;}function diagramValidationError(){const _0x4b55e8=a69_0x3ac5;return CliErrors[_0x4b55e8(0xeb)](_0x4b55e8(0xf2),_0x4b55e8(0xef));}
1
+ (function(_0x529f52,_0x2a9227){const _0xde907f=a69_0x5f2d,_0x3c16c3=_0x529f52();while(!![]){try{const _0xa58625=-parseInt(_0xde907f(0x12e))/0x1*(parseInt(_0xde907f(0x130))/0x2)+parseInt(_0xde907f(0x134))/0x3+parseInt(_0xde907f(0x13b))/0x4+-parseInt(_0xde907f(0x13d))/0x5+-parseInt(_0xde907f(0x135))/0x6+-parseInt(_0xde907f(0x131))/0x7*(parseInt(_0xde907f(0x13a))/0x8)+parseInt(_0xde907f(0x140))/0x9;if(_0xa58625===_0x2a9227)break;else _0x3c16c3['push'](_0x3c16c3['shift']());}catch(_0x464a24){_0x3c16c3['push'](_0x3c16c3['shift']());}}}(a69_0x4d47,0x2a761));function a69_0x5f2d(_0x12031f,_0x28b95f){_0x12031f=_0x12031f-0x12c;const _0x4d4775=a69_0x4d47();let _0x5f2d67=_0x4d4775[_0x12031f];return _0x5f2d67;}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(_0x5518e1){const _0x18e241=a69_0x5f2d;return(await readRequiredSkillDiagramInput(_0x5518e1))[_0x18e241(0x133)];}export async function readRequiredSkillDiagramInput(_0x39364a){const _0x25e2b9=a69_0x5f2d,_0xcc0884=_0x39364a['trim']();if(!_0xcc0884)throw CliErrors[_0x25e2b9(0x139)](_0x25e2b9(0x138),'Generate\x20a\x20Mermaid\x20flowchart\x20and\x20pass\x20--diagram-file\x20<path>,\x20or\x20use\x20--diagram-file\x20-\x20for\x20standard\x20input.');let _0x158fde,_0x31f941;if(_0xcc0884==='-')try{_0x158fde=readFileSync(0x0,_0x25e2b9(0x13e));}catch{throw CliErrors[_0x25e2b9(0x139)](_0x25e2b9(0x12d));}else{const _0x5b14be=resolve(_0xcc0884);if(!existsSync(_0x5b14be))throw CliErrors['validation'](_0x25e2b9(0x141)+_0x5b14be);if(!statSync(_0x5b14be)[_0x25e2b9(0x12f)]())throw CliErrors[_0x25e2b9(0x139)]('Mermaid\x20flowchart\x20path\x20is\x20not\x20a\x20regular\x20file:\x20'+_0x5b14be);_0x31f941=realpathSync(_0x5b14be),_0x158fde=readFileSync(_0x31f941,_0x25e2b9(0x13e));}return{'diagram':{'schemaVersion':0x1,'mermaid':await validateAndCanonicalizeMermaid(_0x158fde)},'sourceFilePath':_0x31f941};}export async function validateAndCanonicalizeMermaid(_0x6568d4){const _0x5bf64a=a69_0x5f2d,_0x2bb1bc=_0x6568d4[_0x5bf64a(0x132)](/\r\n/g,'\x0a')['replace'](/\r/g,'\x0a')['replace'](/\n+$/,'')+'\x0a';try{const _0x5323d9=await loadMermaidApi();await _0x5323d9['parse'](_0x2bb1bc);}catch{throw diagramValidationError();}return _0x2bb1bc;}function a69_0x4d47(){const _0x46d69b=['--diagram-file\x20is\x20required\x20when\x20publishing\x20a\x20Skill\x20version.','validation','13944yJIQYL','634660EPVHkD','mermaid','1057925CihEaQ','utf8','defineProperties','3092616zZIIxM','Mermaid\x20flowchart\x20file\x20not\x20found:\x20','document','window','Unable\x20to\x20read\x20Mermaid\x20flowchart\x20from\x20standard\x20input.','5VDrOza','isFile','35186MlEFuW','70KExylj','replace','diagram','762579DJlWVn','1593486fwOfmu','Mermaid\x20syntax\x20validation\x20failed.','Fix\x20the\x20Mermaid\x20syntax\x20reported\x20by\x20your\x20editor\x20or\x20preview\x20tool,\x20then\x20retry\x20with\x20the\x20same\x20file.'];a69_0x4d47=function(){return _0x46d69b;};return a69_0x4d47();}function loadMermaidApi(){return mermaidApiPromise??=((async()=>{const _0x15621e=a69_0x5f2d;if(!(_0x15621e(0x12c)in globalThis)||!(_0x15621e(0x142)in globalThis)){const _0x29991e=new JSDOM('');Object[_0x15621e(0x13f)](globalThis,{'window':{'configurable':!![],'value':_0x29991e['window']},'document':{'configurable':!![],'value':_0x29991e[_0x15621e(0x12c)][_0x15621e(0x142)]}});}return(await import(_0x15621e(0x13c)))['default'];})()),mermaidApiPromise;}function diagramValidationError(){const _0x51e9db=a69_0x5f2d;return CliErrors[_0x51e9db(0x139)](_0x51e9db(0x136),_0x51e9db(0x137));}