@lovrabet/lovrabet-cli 2.2.6 → 2.2.7

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 a57_0xa0a9e4=a57_0x1bda;(function(_0x153ad5,_0x20607f){const _0x269b13=a57_0x1bda,_0x205471=_0x153ad5();while(!![]){try{const _0x192418=-parseInt(_0x269b13(0x14f))/0x1+parseInt(_0x269b13(0x157))/0x2+-parseInt(_0x269b13(0x174))/0x3+-parseInt(_0x269b13(0x171))/0x4*(-parseInt(_0x269b13(0x162))/0x5)+parseInt(_0x269b13(0x154))/0x6*(parseInt(_0x269b13(0x164))/0x7)+-parseInt(_0x269b13(0x173))/0x8*(-parseInt(_0x269b13(0x170))/0x9)+parseInt(_0x269b13(0x17f))/0xa*(-parseInt(_0x269b13(0x155))/0xb);if(_0x192418===_0x20607f)break;else _0x205471['push'](_0x205471['shift']());}catch(_0x3c6b17){_0x205471['push'](_0x205471['shift']());}}}(a57_0x5543,0x4430d));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a57_0xa0a9e4(0x161),'type':a57_0xa0a9e4(0x16d),'required':!![],'enum':[a57_0xa0a9e4(0x168),a57_0xa0a9e4(0x179)],'description':a57_0xa0a9e4(0x145)},CRON_FLAG={'name':a57_0xa0a9e4(0x167),'type':a57_0xa0a9e4(0x16d),'description':a57_0xa0a9e4(0x158)},SCHEDULED_AT_FLAG={'name':a57_0xa0a9e4(0x14c),'type':a57_0xa0a9e4(0x16d),'description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a57_0xa0a9e4(0x172),'type':a57_0xa0a9e4(0x16d),'required':!![],'description':a57_0xa0a9e4(0x160)},PROMPT_FLAG={'name':'prompt','type':a57_0xa0a9e4(0x16d),'required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':a57_0xa0a9e4(0x188),'type':'string','enum':[a57_0xa0a9e4(0x178),a57_0xa0a9e4(0x15c),a57_0xa0a9e4(0x14d)],'default':'deepseek-v4-flash-0731','description':a57_0xa0a9e4(0x152)},SCHEDULE_ID_FLAG={'name':'schedule-id','type':a57_0xa0a9e4(0x16d),'required':!![],'description':a57_0xa0a9e4(0x185),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a57_0xa0a9e4(0x144)}},LIMIT_FLAG={'name':a57_0xa0a9e4(0x180),'type':a57_0xa0a9e4(0x17c),'default':0x14,'description':a57_0xa0a9e4(0x187)},CURSOR_FLAG={'name':a57_0xa0a9e4(0x177),'type':a57_0xa0a9e4(0x16d),'description':a57_0xa0a9e4(0x147)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function a57_0x5543(){const _0x2ca458=['isSafeInteger','str','立即运行一次定时任务并创建\x20Task','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Schedule\x20kind:\x20CRON\x20or\x20ONCE','--title\x20must\x20not\x20be\x20blank.','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','\x20schedule\x20','description','删除定时任务并停止其后续触发','run','scheduled-at','deepseek-v4-pro-0813','Queued\x20Task\x20','340636kfhfZp','high-risk-write','将永久删除该定时任务并停止后续自动触发;已经创建的历史\x20Task\x20不受影响。','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','DELETE','1146QaqCTa','3135IUjePN','schedule-id','1095972WMeNHo','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','read','UTC','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','deepseek-v4-flash-0731','validation','body','appCode','Schedule\x20title','kind','45370lWgSdw','将在当前应用中创建可自动触发\x20Agent\x20的定时任务;到达设定时间后会按任务内容创建并执行\x20Task。','19901aVAPXD','list','/schedules','cron','CRON','Created\x20','length','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','num','string','/api/harness/apps/','POST','9zoylkn','52KNLwQi','title','4137304EaJReh','304662vNsGht','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','prompt','cursor','kimi/k3','ONCE','trim','create','number','delete','schedule','35250WygsVf','limit','/run','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','build','Schedule\x20input\x20is\x20valid','Schedule\x20UUID','创建周期性或单次执行的\x20Agent\x20定时任务','Page\x20size\x20from\x201\x20to\x20100','model','scheduleId','Preview:\x20run\x20schedule\x20','Preview:\x20create\x20an\x20Agent\x20schedule'];a57_0x5543=function(){return _0x2ca458;};return a57_0x5543();}function readScheduleInput(_0x47baa1){const _0x172a8=a57_0xa0a9e4,_0x203337=_0x47baa1[_0x172a8(0x142)](_0x172a8(0x161)),_0x2484d3=_0x47baa1[_0x172a8(0x142)](_0x172a8(0x172))[_0x172a8(0x17a)](),_0x14159b=_0x47baa1[_0x172a8(0x142)](_0x172a8(0x176))['trim'](),_0x1f8187=_0x47baa1[_0x172a8(0x142)](_0x172a8(0x188)),_0x253cb3=_0x47baa1['str']('cron'),_0x1f0261=_0x47baa1[_0x172a8(0x142)](_0x172a8(0x14c));if(!_0x2484d3)throw CliErrors[_0x172a8(0x15d)](_0x172a8(0x146));if(!_0x14159b)throw CliErrors[_0x172a8(0x15d)]('--prompt\x20must\x20not\x20be\x20blank.');if(_0x203337===_0x172a8(0x168)){if(!_0x253cb3||_0x1f0261)throw CliErrors[_0x172a8(0x15d)]('CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.');return{'kind':_0x203337,'timezone':_0x172a8(0x15a),'cron':_0x253cb3,'title':_0x2484d3,'prompt':_0x14159b,'model':_0x1f8187};}if(_0x203337===_0x172a8(0x179)){if(!_0x1f0261||_0x253cb3)throw CliErrors['validation'](_0x172a8(0x15b));return{'kind':_0x203337,'timezone':'UTC','scheduledAt':_0x1f0261,'title':_0x2484d3,'prompt':_0x14159b,'model':_0x1f8187};}throw CliErrors[_0x172a8(0x15d)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x2afaf6){const _0x4d4ee0=a57_0xa0a9e4;return _0x4d4ee0(0x16e)+encodeURIComponent(_0x2afaf6)+_0x4d4ee0(0x166);}function a57_0x1bda(_0x3a86c2,_0x4b21e9){_0x3a86c2=_0x3a86c2-0x13e;const _0x554393=a57_0x5543();let _0x1bda51=_0x554393[_0x3a86c2];return _0x1bda51;}function scheduleItemPath(_0x474e54,_0x5d2012){return scheduleCollectionPath(_0x474e54)+'/'+encodeURIComponent(_0x5d2012);}const scheduleValidate={'service':a57_0xa0a9e4(0x17e),'command':'validate','description':'Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','risk':a57_0xa0a9e4(0x159),'flags':INPUT_FLAGS,async 'validate'(_0xae26b5){readScheduleInput(_0xae26b5);},async 'execute'(_0x59d799){const _0x23e288=a57_0xa0a9e4,_0x14f5f3=readScheduleInput(_0x59d799),_0x3ce1fd=await validateRuntimeSchedule(_0x59d799[_0x23e288(0x15f)],_0x14f5f3);return{'ok':!![],'data':_0x3ce1fd,'message':_0x23e288(0x184)};}},scheduleCreate={'service':a57_0xa0a9e4(0x17e),'command':a57_0xa0a9e4(0x17b),'description':a57_0xa0a9e4(0x186),'risk':a57_0xa0a9e4(0x150),'confirmationDescription':a57_0xa0a9e4(0x163),'flags':INPUT_FLAGS,async 'validate'(_0x2e54b4){readScheduleInput(_0x2e54b4);},async 'execute'(_0x49511b){const _0x48cff9=a57_0xa0a9e4,_0x46c2e7=readScheduleInput(_0x49511b),_0x326a9e=await validateRuntimeSchedule(_0x49511b[_0x48cff9(0x15f)],_0x46c2e7),_0x3c0e37=await createRuntimeSchedule(_0x49511b[_0x48cff9(0x15f)],_0x326a9e);return{'ok':!![],'data':_0x3c0e37,'message':_0x48cff9(0x169)+_0x3c0e37['kind']+_0x48cff9(0x148)+_0x3c0e37[_0x48cff9(0x13e)]};},async 'dryRun'(_0x59937e){const _0x4b169e=a57_0xa0a9e4,_0x28a697=readScheduleInput(_0x59937e);return dryRun(_0x4b169e(0x16f),scheduleCollectionPath(_0x59937e[_0x4b169e(0x15f)]))[_0x4b169e(0x15e)](_0x28a697)[_0x4b169e(0x149)](_0x4b169e(0x140))[_0x4b169e(0x183)]();}},scheduleList={'service':'schedule','command':a57_0xa0a9e4(0x165),'description':a57_0xa0a9e4(0x182),'risk':a57_0xa0a9e4(0x159),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x3747f0){const _0x197592=a57_0xa0a9e4,_0x2b37b7=_0x3747f0[_0x197592(0x16c)](_0x197592(0x180));if(!Number[_0x197592(0x141)](_0x2b37b7)||_0x2b37b7<0x1||_0x2b37b7>0x64)throw CliErrors[_0x197592(0x15d)](_0x197592(0x175));const _0x18e010=_0x3747f0[_0x197592(0x142)](_0x197592(0x177));if(_0x18e010&&(_0x18e010[_0x197592(0x16a)]>0x400||_0x18e010[_0x197592(0x17a)]()!==_0x18e010))throw CliErrors[_0x197592(0x15d)](_0x197592(0x16b));},async 'execute'(_0xed296b){const _0x56b97c=a57_0xa0a9e4,_0x40ac58=_0xed296b[_0x56b97c(0x142)](_0x56b97c(0x177)),_0x33249e=await listRuntimeSchedules(_0xed296b[_0x56b97c(0x15f)],{'kind':_0xed296b['str']('kind'),'limit':_0xed296b[_0x56b97c(0x16c)](_0x56b97c(0x180)),..._0x40ac58?{'cursor':_0x40ac58}:{}});return{'ok':!![],'data':_0x33249e};}},scheduleDetail={'service':a57_0xa0a9e4(0x17e),'command':'detail','description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a57_0xa0a9e4(0x159),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x412718){const _0x516eaa=a57_0xa0a9e4,_0x157ba3=await getRuntimeSchedule(_0x412718[_0x516eaa(0x15f)],_0x412718[_0x516eaa(0x142)](_0x516eaa(0x156)));return{'ok':!![],'data':_0x157ba3};}},scheduleRun={'service':a57_0xa0a9e4(0x17e),'command':a57_0xa0a9e4(0x14b),'description':a57_0xa0a9e4(0x143),'risk':a57_0xa0a9e4(0x150),'confirmationDescription':'将忽略原定触发时间,立即运行一次该定时任务并创建新的\x20Agent\x20Task。','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x594c3e){const _0x518852=a57_0xa0a9e4,_0x47a289=_0x594c3e[_0x518852(0x142)](_0x518852(0x156)),_0x5e69e6=await runRuntimeSchedule(_0x594c3e[_0x518852(0x15f)],_0x47a289);return{'ok':!![],'data':_0x5e69e6,'message':_0x518852(0x14e)+_0x5e69e6['taskId']+'\x20from\x20schedule\x20'+_0x47a289};},async 'dryRun'(_0x388c06){const _0x54c873=a57_0xa0a9e4,_0x14ca9c=_0x388c06[_0x54c873(0x142)](_0x54c873(0x156));return dryRun(_0x54c873(0x16f),scheduleItemPath(_0x388c06['appCode'],_0x14ca9c)+_0x54c873(0x181))[_0x54c873(0x149)](_0x54c873(0x13f)+_0x14ca9c+'\x20immediately')['build']();}},scheduleDelete={'service':a57_0xa0a9e4(0x17e),'command':a57_0xa0a9e4(0x17d),'description':a57_0xa0a9e4(0x14a),'risk':a57_0xa0a9e4(0x150),'confirmationDescription':a57_0xa0a9e4(0x151),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1672aa){const _0x290f02=a57_0xa0a9e4,_0x4b978d=_0x1672aa[_0x290f02(0x142)](_0x290f02(0x156)),_0x4add8e=await deleteRuntimeSchedule(_0x1672aa[_0x290f02(0x15f)],_0x4b978d);return{'ok':!![],'data':_0x4add8e,'message':'Deleted\x20schedule\x20'+_0x4b978d};},async 'dryRun'(_0x4e0127){const _0x47350c=a57_0xa0a9e4,_0x4008b0=_0x4e0127['str'](_0x47350c(0x156));return dryRun(_0x47350c(0x153),scheduleItemPath(_0x4e0127['appCode'],_0x4008b0))[_0x47350c(0x149)]('Preview:\x20delete\x20schedule\x20'+_0x4008b0)[_0x47350c(0x183)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
1
+ const a57_0x197a9a=a57_0x3346;function a57_0x46a5(){const _0x2bc475=['deepseek-v4-flash-0731','length','high-risk-write','prompt','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','\x20from\x20schedule\x20','model','UTC','delete','Preview:\x20create\x20an\x20Agent\x20schedule','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','3348147sLRtDh','build','/api/harness/apps/','--prompt\x20must\x20not\x20be\x20blank.','POST','217lnSpYQ','run','将在当前应用中创建可自动触发\x20Agent\x20的定时任务;到达设定时间后会按任务内容创建并执行\x20Task。','kind','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','DELETE','立即运行一次定时任务并创建\x20Task','Preview:\x20delete\x20schedule\x20','16781049ryiEub','86430EwhOEx','schedule-id','Schedule\x20UUID','CRON','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','scheduled-at','deepseek-v4-pro-0813','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','/run','\x20schedule\x20','create','trim','description','schedule','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','num','189172ykCiOX','isSafeInteger','ONCE','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','str','scheduleId','Show\x20one\x20schedule\x20by\x20schedule\x20ID','validate','创建周期性或单次执行的\x20Agent\x20定时任务','detail','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','validation','删除定时任务并停止其后续触发','406990erwyFW','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','将永久删除该定时任务并停止后续自动触发;已经创建的历史\x20Task\x20不受影响。','172525OkFDOx','title','string','cron','Created\x20','8VwJjLY','Schedule\x20kind:\x20CRON\x20or\x20ONCE','Queued\x20Task\x20','\x20immediately','limit','read','kimi/k3','1420208Bjgkcf','Schedule\x20title','appCode','cursor','Deleted\x20schedule\x20','/schedules','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','--title\x20must\x20not\x20be\x20blank.'];a57_0x46a5=function(){return _0x2bc475;};return a57_0x46a5();}(function(_0x6d61f0,_0x16f605){const _0x888294=a57_0x3346,_0x66f9dc=_0x6d61f0();while(!![]){try{const _0x3bdf1f=-parseInt(_0x888294(0x6f))/0x1+parseInt(_0x888294(0xac))/0x2+-parseInt(_0x888294(0x8e))/0x3+parseInt(_0x888294(0x74))/0x4*(-parseInt(_0x888294(0x6c))/0x5)+parseInt(_0x888294(0x9c))/0x6*(parseInt(_0x888294(0x93))/0x7)+-parseInt(_0x888294(0x7b))/0x8+parseInt(_0x888294(0x9b))/0x9;if(_0x3bdf1f===_0x16f605)break;else _0x66f9dc['push'](_0x66f9dc['shift']());}catch(_0x29856a){_0x66f9dc['push'](_0x66f9dc['shift']());}}}(a57_0x46a5,0xbda66));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a57_0x3346(_0x1fb020,_0x19eae6){_0x1fb020=_0x1fb020-0x66;const _0x46a5ac=a57_0x46a5();let _0x33460e=_0x46a5ac[_0x1fb020];return _0x33460e;}import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a57_0x197a9a(0x96),'type':a57_0x197a9a(0x71),'required':!![],'enum':[a57_0x197a9a(0x9f),'ONCE'],'description':a57_0x197a9a(0x75)},CRON_FLAG={'name':a57_0x197a9a(0x72),'type':'string','description':a57_0x197a9a(0x69)},SCHEDULED_AT_FLAG={'name':'scheduled-at','type':a57_0x197a9a(0x71),'description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a57_0x197a9a(0x70),'type':a57_0x197a9a(0x71),'required':!![],'description':a57_0x197a9a(0x7c)},PROMPT_FLAG={'name':a57_0x197a9a(0x86),'type':a57_0x197a9a(0x71),'required':!![],'description':a57_0x197a9a(0xaf)},MODEL_FLAG={'name':'model','type':a57_0x197a9a(0x71),'enum':[a57_0x197a9a(0x7a),a57_0x197a9a(0x83),a57_0x197a9a(0xa2)],'default':a57_0x197a9a(0x83),'description':a57_0x197a9a(0xa0)},SCHEDULE_ID_FLAG={'name':a57_0x197a9a(0x9d),'type':a57_0x197a9a(0x71),'required':!![],'description':a57_0x197a9a(0x9e),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a57_0x197a9a(0x8d)}},LIMIT_FLAG={'name':a57_0x197a9a(0x78),'type':'number','default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':a57_0x197a9a(0x7e),'type':a57_0x197a9a(0x71),'description':'Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call'},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x453b14){const _0x575e1b=a57_0x197a9a,_0x4efad1=_0x453b14[_0x575e1b(0xb0)](_0x575e1b(0x96)),_0x35cbf7=_0x453b14[_0x575e1b(0xb0)](_0x575e1b(0x70))[_0x575e1b(0xa7)](),_0x463d2a=_0x453b14[_0x575e1b(0xb0)]('prompt')['trim'](),_0x222d60=_0x453b14[_0x575e1b(0xb0)](_0x575e1b(0x89)),_0x39aa37=_0x453b14['str'](_0x575e1b(0x72)),_0x32a73b=_0x453b14['str'](_0x575e1b(0xa1));if(!_0x35cbf7)throw CliErrors[_0x575e1b(0x6a)](_0x575e1b(0x82));if(!_0x463d2a)throw CliErrors[_0x575e1b(0x6a)](_0x575e1b(0x91));if(_0x4efad1===_0x575e1b(0x9f)){if(!_0x39aa37||_0x32a73b)throw CliErrors['validation'](_0x575e1b(0x87));return{'kind':_0x4efad1,'timezone':'UTC','cron':_0x39aa37,'title':_0x35cbf7,'prompt':_0x463d2a,'model':_0x222d60};}if(_0x4efad1===_0x575e1b(0xae)){if(!_0x32a73b||_0x39aa37)throw CliErrors[_0x575e1b(0x6a)](_0x575e1b(0xa3));return{'kind':_0x4efad1,'timezone':_0x575e1b(0x8a),'scheduledAt':_0x32a73b,'title':_0x35cbf7,'prompt':_0x463d2a,'model':_0x222d60};}throw CliErrors['validation'](_0x575e1b(0x81));}function scheduleCollectionPath(_0x2e140f){const _0x4e1571=a57_0x197a9a;return _0x4e1571(0x90)+encodeURIComponent(_0x2e140f)+_0x4e1571(0x80);}function scheduleItemPath(_0x30475a,_0x753158){return scheduleCollectionPath(_0x30475a)+'/'+encodeURIComponent(_0x753158);}const scheduleValidate={'service':a57_0x197a9a(0xa9),'command':a57_0x197a9a(0x66),'description':a57_0x197a9a(0x97),'risk':'read','flags':INPUT_FLAGS,async 'validate'(_0x486898){readScheduleInput(_0x486898);},async 'execute'(_0x3a6e47){const _0x89b613=a57_0x197a9a,_0x21a801=readScheduleInput(_0x3a6e47),_0x173d19=await validateRuntimeSchedule(_0x3a6e47[_0x89b613(0x7d)],_0x21a801);return{'ok':!![],'data':_0x173d19,'message':'Schedule\x20input\x20is\x20valid'};}},scheduleCreate={'service':a57_0x197a9a(0xa9),'command':a57_0x197a9a(0xa6),'description':a57_0x197a9a(0x67),'risk':'high-risk-write','confirmationDescription':a57_0x197a9a(0x95),'flags':INPUT_FLAGS,async 'validate'(_0x21a948){readScheduleInput(_0x21a948);},async 'execute'(_0x459090){const _0x576f09=a57_0x197a9a,_0x450fe6=readScheduleInput(_0x459090),_0x121739=await validateRuntimeSchedule(_0x459090[_0x576f09(0x7d)],_0x450fe6),_0xb3e05e=await createRuntimeSchedule(_0x459090[_0x576f09(0x7d)],_0x121739);return{'ok':!![],'data':_0xb3e05e,'message':_0x576f09(0x73)+_0xb3e05e[_0x576f09(0x96)]+_0x576f09(0xa5)+_0xb3e05e[_0x576f09(0xb1)]};},async 'dryRun'(_0x5791a2){const _0x25a609=a57_0x197a9a,_0x1c137a=readScheduleInput(_0x5791a2);return dryRun(_0x25a609(0x92),scheduleCollectionPath(_0x5791a2[_0x25a609(0x7d)]))['body'](_0x1c137a)[_0x25a609(0xa8)](_0x25a609(0x8c))[_0x25a609(0x8f)]();}},scheduleList={'service':'schedule','command':'list','description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':a57_0x197a9a(0x79),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x106c5c){const _0x695e10=a57_0x197a9a,_0x4714be=_0x106c5c[_0x695e10(0xab)]('limit');if(!Number[_0x695e10(0xad)](_0x4714be)||_0x4714be<0x1||_0x4714be>0x64)throw CliErrors[_0x695e10(0x6a)](_0x695e10(0x6d));const _0x46e0b4=_0x106c5c[_0x695e10(0xb0)]('cursor');if(_0x46e0b4&&(_0x46e0b4[_0x695e10(0x84)]>0x400||_0x46e0b4['trim']()!==_0x46e0b4))throw CliErrors[_0x695e10(0x6a)](_0x695e10(0xaa));},async 'execute'(_0x4dfe6e){const _0x53c0d0=a57_0x197a9a,_0xf2bf75=_0x4dfe6e[_0x53c0d0(0xb0)](_0x53c0d0(0x7e)),_0x1bcf90=await listRuntimeSchedules(_0x4dfe6e[_0x53c0d0(0x7d)],{'kind':_0x4dfe6e['str'](_0x53c0d0(0x96)),'limit':_0x4dfe6e[_0x53c0d0(0xab)](_0x53c0d0(0x78)),..._0xf2bf75?{'cursor':_0xf2bf75}:{}});return{'ok':!![],'data':_0x1bcf90};}},scheduleDetail={'service':a57_0x197a9a(0xa9),'command':a57_0x197a9a(0x68),'description':a57_0x197a9a(0xb2),'risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1ff358){const _0x4629f3=a57_0x197a9a,_0x1bbba4=await getRuntimeSchedule(_0x1ff358[_0x4629f3(0x7d)],_0x1ff358[_0x4629f3(0xb0)]('schedule-id'));return{'ok':!![],'data':_0x1bbba4};}},scheduleRun={'service':a57_0x197a9a(0xa9),'command':a57_0x197a9a(0x94),'description':a57_0x197a9a(0x99),'risk':a57_0x197a9a(0x85),'confirmationDescription':'将忽略原定触发时间,立即运行一次该定时任务并创建新的\x20Agent\x20Task。','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x30dc96){const _0xff8513=a57_0x197a9a,_0x30be74=_0x30dc96[_0xff8513(0xb0)](_0xff8513(0x9d)),_0x3395b5=await runRuntimeSchedule(_0x30dc96[_0xff8513(0x7d)],_0x30be74);return{'ok':!![],'data':_0x3395b5,'message':_0xff8513(0x76)+_0x3395b5['taskId']+_0xff8513(0x88)+_0x30be74};},async 'dryRun'(_0x45ed4c){const _0x1ad39f=a57_0x197a9a,_0x554e53=_0x45ed4c[_0x1ad39f(0xb0)](_0x1ad39f(0x9d));return dryRun(_0x1ad39f(0x92),scheduleItemPath(_0x45ed4c[_0x1ad39f(0x7d)],_0x554e53)+_0x1ad39f(0xa4))[_0x1ad39f(0xa8)]('Preview:\x20run\x20schedule\x20'+_0x554e53+_0x1ad39f(0x77))['build']();}},scheduleDelete={'service':a57_0x197a9a(0xa9),'command':a57_0x197a9a(0x8b),'description':a57_0x197a9a(0x6b),'risk':a57_0x197a9a(0x85),'confirmationDescription':a57_0x197a9a(0x6e),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x585241){const _0x39f0a3=a57_0x197a9a,_0x35c53f=_0x585241[_0x39f0a3(0xb0)]('schedule-id'),_0x370374=await deleteRuntimeSchedule(_0x585241[_0x39f0a3(0x7d)],_0x35c53f);return{'ok':!![],'data':_0x370374,'message':_0x39f0a3(0x7f)+_0x35c53f};},async 'dryRun'(_0x31d87b){const _0x2bdc38=a57_0x197a9a,_0x1bf1ce=_0x31d87b['str'](_0x2bdc38(0x9d));return dryRun(_0x2bdc38(0x98),scheduleItemPath(_0x31d87b[_0x2bdc38(0x7d)],_0x1bf1ce))['description'](_0x2bdc38(0x9a)+_0x1bf1ce)[_0x2bdc38(0x8f)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
@@ -1 +1 @@
1
- const a58_0x4f14ee=a58_0x5b8a;(function(_0x213137,_0x24cfca){const _0x4584a2=a58_0x5b8a,_0x197ed0=_0x213137();while(!![]){try{const _0x58cbc8=-parseInt(_0x4584a2(0x1f4))/0x1+-parseInt(_0x4584a2(0x1f5))/0x2*(-parseInt(_0x4584a2(0x1f2))/0x3)+parseInt(_0x4584a2(0x1f7))/0x4+-parseInt(_0x4584a2(0x1f6))/0x5+parseInt(_0x4584a2(0x1fa))/0x6+parseInt(_0x4584a2(0x1f3))/0x7*(-parseInt(_0x4584a2(0x1f8))/0x8)+-parseInt(_0x4584a2(0x1f9))/0x9*(-parseInt(_0x4584a2(0x1fe))/0xa);if(_0x58cbc8===_0x24cfca)break;else _0x197ed0['push'](_0x197ed0['shift']());}catch(_0x1089bc){_0x197ed0['push'](_0x197ed0['shift']());}}}(a58_0x12d5,0x3e3f7));function a58_0x5b8a(_0x5587b6,_0x10157f){_0x5587b6=_0x5587b6-0x1f1;const _0x12d5f6=a58_0x12d5();let _0x5b8a52=_0x12d5f6[_0x5587b6];return _0x5b8a52;}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0xddd00f){const _0x1cc992=await buildSchemaPayload();return{'ok':!![],'data':_0x1cc992};}export const schemaDefinition={'service':a58_0x4f14ee(0x1f1),'command':a58_0x4f14ee(0x1fb),'description':a58_0x4f14ee(0x1fc),'risk':a58_0x4f14ee(0x1fd),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};function a58_0x12d5(){const _0x198618=['schema','2253GSmLTH','9051eiAxnF','73070iHFutT','838UQgEAC','2264030VcQufH','1814244KpVXtv','3008FSpRSr','614727nzyxML','123960YxSdWP','export','Export\x20machine-readable\x20command\x20schema\x20(JSON)','read','70wAIThx'];a58_0x12d5=function(){return _0x198618;};return a58_0x12d5();}
1
+ function a58_0x34d1(){const _0x37e1cd=['377923kfNuvp','2654092pqTbrZ','2902ndBTWA','read','1905288QoMqUS','5heqXAX','Export\x20machine-readable\x20command\x20schema\x20(JSON)','export','664jfWwuf','66IaKMEd','110PLSGVj','20188clsSUb','117126OHuRdR','schema','7698370NWmeYJ','897zxjjIj'];a58_0x34d1=function(){return _0x37e1cd;};return a58_0x34d1();}const a58_0x48c4d1=a58_0x4145;(function(_0x4d1aca,_0x4d9b61){const _0x901067=a58_0x4145,_0x229878=_0x4d1aca();while(!![]){try{const _0x2f51c5=parseInt(_0x901067(0xd7))/0x1+parseInt(_0x901067(0xde))/0x2*(-parseInt(_0x901067(0xdb))/0x3)+-parseInt(_0x901067(0xdd))/0x4*(-parseInt(_0x901067(0xd1))/0x5)+-parseInt(_0x901067(0xd5))/0x6*(parseInt(_0x901067(0xdc))/0x7)+parseInt(_0x901067(0xd4))/0x8*(-parseInt(_0x901067(0xd8))/0x9)+parseInt(_0x901067(0xda))/0xa+parseInt(_0x901067(0xd6))/0xb*(parseInt(_0x901067(0xe0))/0xc);if(_0x2f51c5===_0x4d9b61)break;else _0x229878['push'](_0x229878['shift']());}catch(_0x2c45cd){_0x229878['push'](_0x229878['shift']());}}}(a58_0x34d1,0xe3e16));function a58_0x4145(_0x11c264,_0x35466c){_0x11c264=_0x11c264-0xd1;const _0x34d1e1=a58_0x34d1();let _0x414569=_0x34d1e1[_0x11c264];return _0x414569;}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x3abf22){const _0x45a619=await buildSchemaPayload();return{'ok':!![],'data':_0x45a619};}export const schemaDefinition={'service':a58_0x48c4d1(0xd9),'command':a58_0x48c4d1(0xd3),'description':a58_0x48c4d1(0xd2),'risk':a58_0x48c4d1(0xdf),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
1
- function a59_0x40ca(_0x55eb25,_0x58cc35){_0x55eb25=_0x55eb25-0x118;const _0x1d30f7=a59_0x1d30();let _0x40ca6d=_0x1d30f7[_0x55eb25];return _0x40ca6d;}(function(_0x2d00bf,_0x696f91){const _0x369e21=a59_0x40ca,_0x23b65c=_0x2d00bf();while(!![]){try{const _0xffeed5=parseInt(_0x369e21(0x171))/0x1*(parseInt(_0x369e21(0x175))/0x2)+-parseInt(_0x369e21(0x12f))/0x3+parseInt(_0x369e21(0x17a))/0x4+parseInt(_0x369e21(0x170))/0x5+parseInt(_0x369e21(0x128))/0x6*(-parseInt(_0x369e21(0x148))/0x7)+-parseInt(_0x369e21(0x167))/0x8+parseInt(_0x369e21(0x164))/0x9*(parseInt(_0x369e21(0x177))/0xa);if(_0xffeed5===_0x696f91)break;else _0x23b65c['push'](_0x23b65c['shift']());}catch(_0x22f4ac){_0x23b65c['push'](_0x23b65c['shift']());}}}(a59_0x1d30,0x9c603));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(_0x27f2df,_0x4b050a){const _0x3e3367=a59_0x40ca,_0x295e8f=listLocalServiceTrees();let _0x429085;for(const _0x3ab033 of _0x295e8f){const _0x2bf049=matchServiceTreeCommand(_0x3ab033,_0x27f2df);if(!_0x2bf049)continue;(!_0x429085||_0x2bf049[_0x3e3367(0x168)][_0x3e3367(0x157)][_0x3e3367(0x135)]>_0x429085[_0x3e3367(0x168)][_0x3e3367(0x157)][_0x3e3367(0x135)])&&(_0x429085={'tree':_0x3ab033,'command':_0x2bf049[_0x3e3367(0x168)],'remainingArgs':_0x2bf049[_0x3e3367(0x141)]});}if(!_0x429085)return undefined;const _0x7599f0={..._0x4b050a};return applyAppBinding(_0x429085[_0x3e3367(0x130)],_0x429085[_0x3e3367(0x168)],_0x7599f0),{'definition':buildDynamicCommandDefinition(_0x429085['tree'],_0x429085[_0x3e3367(0x168)]),'args':_0x429085[_0x3e3367(0x141)],'flags':_0x7599f0,'tree':_0x429085[_0x3e3367(0x130)],'command':_0x429085[_0x3e3367(0x168)]};}export function generateDynamicServiceHelp(_0x24ca3f){const _0x2160be=a59_0x40ca,_0x4955d9=listLocalServiceTrees()[_0x2160be(0x149)](_0x576e8a=>_0x576e8a[_0x2160be(0x13c)][_0x2160be(0x163)]===_0x24ca3f);if(!_0x4955d9)return undefined;const _0x38a532=[CLI_BIN_NAME+'\x20'+_0x24ca3f+'\x20<command>\x20[flags]','',_0x4955d9[_0x2160be(0x13c)][_0x2160be(0x14c)]||_0x24ca3f,_0x4955d9[_0x2160be(0x13c)]['description']?'\x20\x20'+_0x4955d9['service'][_0x2160be(0x123)]:'','',_0x2160be(0x14e),..._0x4955d9[_0x2160be(0x178)][_0x2160be(0x142)](_0x680999=>{const _0x270c9a=_0x2160be,_0x46110a=_0x680999[_0x270c9a(0x157)][_0x270c9a(0x12e)](0x1)[_0x270c9a(0x137)]('\x20'),_0x2c67d0=_0x680999[_0x270c9a(0x179)]===_0x270c9a(0x166)?'':'\x20['+_0x680999[_0x270c9a(0x179)]+']';return'\x20\x20'+_0x46110a[_0x270c9a(0x127)](0x18)+'\x20'+(_0x680999[_0x270c9a(0x123)]||'')+_0x2c67d0;}),'','Use\x20`'+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x24ca3f+_0x2160be(0x15f)][_0x2160be(0x13f)](Boolean);return _0x38a532[_0x2160be(0x137)]('\x0a');}export function listDynamicServiceEntries(){const _0x50bee3=a59_0x40ca;return listLocalServices()[_0x50bee3(0x142)](_0x32c641=>{const _0x167afa=_0x50bee3,_0x1f1ec3=_0x32c641['normalizedManifest'];return{'service':_0x1f1ec3[_0x167afa(0x13c)]['code'],'label':_0x1f1ec3[_0x167afa(0x13c)]['name']||_0x1f1ec3[_0x167afa(0x13c)][_0x167afa(0x163)],'commands':_0x1f1ec3[_0x167afa(0x178)][_0x167afa(0x142)](_0x33c1fd=>({'command':dynamicCommandName(_0x33c1fd),'description':_0x33c1fd[_0x167afa(0x123)]||_0x167afa(0x11c)+_0x33c1fd['cliPath'],'tag':riskTag(_0x33c1fd['risk'])}))};});}export function getDynamicServiceEntry(_0x11196f){const _0x12bcea=a59_0x40ca;return listDynamicServiceEntries()[_0x12bcea(0x149)](_0x4aa54d=>_0x4aa54d[_0x12bcea(0x13c)]===_0x11196f);}export function listDynamicServiceDefinitions(_0x3ada17){const _0x469643=a59_0x40ca;return listLocalServiceTrees()[_0x469643(0x13f)](_0xc9b03f=>!_0x3ada17||_0xc9b03f[_0x469643(0x13c)][_0x469643(0x163)]===_0x3ada17)[_0x469643(0x138)](_0x2a926c=>_0x2a926c[_0x469643(0x178)][_0x469643(0x142)](_0x9fe3a8=>buildDynamicCommandDefinition(_0x2a926c,_0x9fe3a8)));}export function getDynamicServiceDefinitions(_0xd1f890){const _0x55fddc=listDynamicServiceDefinitions(_0xd1f890);return _0x55fddc['length']>0x0?_0x55fddc:undefined;}export function findDynamicServiceDefinition(_0x637b2d,_0x522b90){const _0x3d0ea5=a59_0x40ca;return listDynamicServiceDefinitions(_0x637b2d)[_0x3d0ea5(0x149)](_0x100d19=>_0x100d19[_0x3d0ea5(0x168)]===_0x522b90);}export function buildDynamicCommandDefinition(_0x49058d,_0x211c93){const _0x47b6ff=a59_0x40ca;return{'service':_0x49058d[_0x47b6ff(0x13c)][_0x47b6ff(0x163)],'command':dynamicCommandName(_0x211c93),'description':_0x211c93[_0x47b6ff(0x123)]||_0x47b6ff(0x11c)+_0x211c93[_0x47b6ff(0x15b)],'risk':_0x211c93['risk'],..._0x211c93['risk']===_0x47b6ff(0x166)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x211c93)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x211c93[_0x47b6ff(0x152)][_0x47b6ff(0x142)](_0x2133c8=>({'name':_0x2133c8['name'],'description':_0x2133c8['description']||_0x2133c8['name'],'required':_0x2133c8[_0x47b6ff(0x173)]})),'flags':_0x211c93[_0x47b6ff(0x17b)][_0x47b6ff(0x142)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x211c93),async 'dryRun'(_0x429da4){const _0x43cdef=_0x47b6ff,_0x4eb052=await compilePlan(_0x211c93,_0x429da4);return{'method':_0x43cdef(0x11a),'url':_0x211c93[_0x43cdef(0x15b)],'body':{'target':targetPreview(_0x4eb052),'params':_0x4eb052[_0x43cdef(0x133)]},'description':_0x43cdef(0x169)+_0x211c93[_0x43cdef(0x15b)]};},async 'execute'(_0x43cfd8){const _0x583ecc=_0x47b6ff,_0x234f97=await compilePlan(_0x211c93,_0x43cfd8),_0x25dd10=Date[_0x583ecc(0x12c)](),_0x3c29fe=await executePlan(_0x234f97,_0x211c93,_0x43cfd8),_0x3a16b7=Date[_0x583ecc(0x12c)]()-_0x25dd10;return{'ok':!![],'data':{'service':_0x49058d[_0x583ecc(0x13c)],'command':_0x211c93[_0x583ecc(0x15b)],'target':targetPreview(_0x234f97),'result':_0x3c29fe,'elapsed':_0x3a16b7},'message':_0x583ecc(0x14f)+_0x211c93[_0x583ecc(0x15b)]+_0x583ecc(0x174)+_0x3a16b7+'ms'};}};}function buildDynamicConfirmationDescription(_0x576ef2){const _0x340560=a59_0x40ca,_0x14d802=_0x576ef2[_0x340560(0x123)]||_0x576ef2[_0x340560(0x15b)],_0x5380ed=_0x576ef2[_0x340560(0x179)]==='high-risk-write'?_0x340560(0x120):'该命令被清单标记为写入,可能修改业务数据或服务状态。';return'将通过\x20Service\x20Tree\x20执行“'+_0x14d802+'”。'+_0x5380ed;}function dynamicCommandName(_0x3501ce){const _0x2bb2ac=a59_0x40ca;return _0x3501ce[_0x2bb2ac(0x157)][_0x2bb2ac(0x12e)](0x1)[_0x2bb2ac(0x137)]('\x20');}function riskTag(_0x3a222d){const _0x5781d0=a59_0x40ca;return _0x3a222d===_0x5781d0(0x166)?'':_0x5781d0(0x14a)+_0x3a222d+']';}function flagToCommandFlag(_0x4b77c1){const _0x21beec=a59_0x40ca;return{'name':_0x4b77c1[_0x21beec(0x140)],'type':_0x4b77c1[_0x21beec(0x12a)]===_0x21beec(0x119)?_0x21beec(0x126):_0x4b77c1['type'],'description':_0x4b77c1[_0x21beec(0x123)]||_0x4b77c1[_0x21beec(0x14c)],'required':_0x4b77c1['required'],'default':isPrimitiveFlagDefault(_0x4b77c1[_0x21beec(0x154)])?_0x4b77c1['default']:undefined,'enum':_0x4b77c1['enum']};}async function compilePlan(_0x1099ca,_0x114b4d){const _0x2da900=a59_0x40ca;return compileServiceTreeCommand(_0x1099ca,{'flags':_0x114b4d[_0x2da900(0x132)],'args':_0x114b4d[_0x2da900(0x152)],'context':await buildServiceContext(_0x1099ca,_0x114b4d)});}async function buildServiceContext(_0x354024,_0x1af6df){const _0x38bde9=a59_0x40ca,_0x2b22e5={'appCode':_0x1af6df['appCode'],'env':_0x1af6df[_0x38bde9(0x14d)],'envName':_0x1af6df[_0x38bde9(0x14d)]};if(!usesRuntimeContext(_0x354024))return _0x2b22e5;const _0x368c0c=await getLoginUserInfo(),_0xcd2d0d=pickFirst(_0x368c0c['userId'],_0x368c0c['id']);return{..._0x2b22e5,'user':_0x368c0c,'userId':_0xcd2d0d,'id':_0x368c0c['id'],'username':pickFirst(_0x368c0c[_0x38bde9(0x136)],_0x368c0c['userName'],_0x368c0c[_0x38bde9(0x16f)]),'userName':_0x368c0c[_0x38bde9(0x12d)],'nickname':pickFirst(_0x368c0c[_0x38bde9(0x176)],_0x368c0c[_0x38bde9(0x121)]),'nickName':_0x368c0c[_0x38bde9(0x121)],'tenantCode':_0x368c0c[_0x38bde9(0x122)],'employeeId':_0x368c0c[_0x38bde9(0x13d)]};}function usesRuntimeContext(_0x11c92e){const _0x2ab1c2=a59_0x40ca;return _0x11c92e[_0x2ab1c2(0x16b)][_0x2ab1c2(0x159)](_0x4e7b3d=>typeof _0x4e7b3d[_0x2ab1c2(0x16c)]==='string'&&(_0x4e7b3d[_0x2ab1c2(0x16c)][_0x2ab1c2(0x151)](_0x2ab1c2(0x153))||_0x4e7b3d[_0x2ab1c2(0x16c)][_0x2ab1c2(0x151)](_0x2ab1c2(0x11b))));}function pickFirst(..._0x86f937){const _0x4f1c38=a59_0x40ca;return _0x86f937[_0x4f1c38(0x149)](_0x5d80fe=>_0x5d80fe!==undefined&&_0x5d80fe!==null);}async function executePlan(_0x98d00d,_0x4dd2c8,_0x1efa02){const _0x1d61e0=a59_0x40ca;if(_0x98d00d[_0x1d61e0(0x162)]==='data'){const _0x60d4db=await resolveDatasetCode(_0x98d00d,_0x4dd2c8,_0x1efa02);return executeData(_0x60d4db,_0x98d00d[_0x1d61e0(0x168)],_0x98d00d['params']);}if(_0x98d00d[_0x1d61e0(0x162)]==='sql'){if(!_0x98d00d[_0x1d61e0(0x15d)])throw CliErrors[_0x1d61e0(0x144)]('Service\x20command\x20'+_0x4dd2c8[_0x1d61e0(0x15b)]+_0x1d61e0(0x139));return executeSdkSql(_0x98d00d[_0x1d61e0(0x15d)],normalizeScalarParams(_0x98d00d[_0x1d61e0(0x133)]));}if(_0x98d00d['kind']==='bff'){const _0xc197=_0x98d00d['scriptName']||_0x98d00d[_0x1d61e0(0x156)]||(_0x98d00d[_0x1d61e0(0x134)]==null?'':String(_0x98d00d[_0x1d61e0(0x134)]));if(!_0xc197)throw CliErrors[_0x1d61e0(0x144)](_0x1d61e0(0x14f)+_0x4dd2c8[_0x1d61e0(0x15b)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0xc197,_0x98d00d[_0x1d61e0(0x133)]);}throw CliErrors[_0x1d61e0(0x144)](_0x1d61e0(0x146)+_0x98d00d[_0x1d61e0(0x162)]);}function a59_0x1d30(){const _0x2d910f=['args','context.','default','fromEntries','bffCode','fullPath','\x20\x20\x20\x20kind:\x20\x20\x20\x20','some','const','cliPath','env','sqlCode','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','`\x20to\x20inspect\x20the\x20manifest.','Unknown\x20appRef\x20\x22','\x20\x20\x20\x20','kind','code','18ucuGBA','appCode','read','4094640lJWVDv','command','Preview\x20dynamic\x20service\x20command:\x20','appcode','mapTo','source','app','\x22\x20in\x20service\x20command\x20','loginName','5147625SjPGoi','26XhhDDT','number','required','\x20completed\x20in\x20','2854hQuNwD','nickname','717020pytGUb','commands','risk','3310160dJkpLl','flags','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','json','SERVICE_TREE','ctx.','Run\x20service\x20command\x20','\x20\x20SERVICE\x20TREE\x20TARGET','datasetCode','\x20\x20\x20\x20datasetCode:\x20','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','nickName','tenantCode','description','appRef','\x20\x20\x20\x20datatable:\x20','string','padEnd','569598zJgQzR','\x20->\x20','type','\x20\x20\x20\x20sqlCode:\x20','now','userName','slice','2370879PlUasX','tree','\x20\x20\x20\x20functionName:\x20','rawFlags','params','bffId','length','username','join','flatMap','\x20requires\x20target.sqlCode.','dbtableConfig','target','service','employeeId','\x20\x20MAP\x20TO','filter','cliName','remainingArgs','map','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','validation','scriptName','Unsupported\x20service\x20target\x20kind:\x20','boolean','7XsrUbR','find','\x20\x20[','datatable','name','envName','Commands:','Service\x20command\x20','push','startsWith'];a59_0x1d30=function(){return _0x2d910f;};return a59_0x1d30();}async function resolveDatasetCode(_0xa4f68d,_0x1dbb83,_0x191878){const _0x413642=a59_0x40ca;if(_0xa4f68d['datasetCode'])return _0xa4f68d[_0x413642(0x11e)];if(!_0xa4f68d[_0x413642(0x14b)])throw CliErrors['validation'](_0x413642(0x14f)+_0x1dbb83[_0x413642(0x15b)]+_0x413642(0x15e));const _0x3afa79=await listDatasets(_0x191878['appCode']),_0x3a3d70=_0x3afa79[_0x413642(0x149)](_0x529baf=>_0x529baf[_0x413642(0x13a)]?.['tableName']===_0xa4f68d[_0x413642(0x14b)]);if(!_0x3a3d70?.['code'])throw CliErrors[_0x413642(0x144)]('Cannot\x20resolve\x20datatable\x20\x22'+_0xa4f68d[_0x413642(0x14b)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x191878[_0x413642(0x165)]+'.',_0x413642(0x143));return _0x3a3d70[_0x413642(0x163)];}function applyAppBinding(_0x452f18,_0x2bb6ea,_0x39a94f){const _0xbcdfca=a59_0x40ca,_0x39c348=_0x2bb6ea[_0xbcdfca(0x13b)][_0xbcdfca(0x124)];if(!_0x39c348)return;const _0x19f90f=_0x452f18['appBindings'][_0x39c348];if(!_0x19f90f)throw CliErrors[_0xbcdfca(0x144)](_0xbcdfca(0x160)+_0x39c348+_0xbcdfca(0x16e)+_0x2bb6ea[_0xbcdfca(0x15b)]+'.',_0xbcdfca(0x118));const _0x47b4d2=_0x19f90f[_0xbcdfca(0x16a)]||_0x19f90f[_0xbcdfca(0x165)];_0x47b4d2&&!hasText(_0x39a94f[_0xbcdfca(0x16a)])&&(_0x39a94f['appcode']=_0x47b4d2),_0x19f90f['app']&&!hasText(_0x39a94f[_0xbcdfca(0x16d)])&&!hasText(_0x39a94f[_0xbcdfca(0x16a)])&&(_0x39a94f[_0xbcdfca(0x16d)]=_0x19f90f[_0xbcdfca(0x16d)]),_0x19f90f[_0xbcdfca(0x15c)]&&!hasText(_0x39a94f[_0xbcdfca(0x15c)])&&(_0x39a94f['env']=_0x19f90f['env']);}function renderDynamicCommandHelp(_0x54ead9){const _0x2c8855=a59_0x40ca,_0x481807=[_0x2c8855(0x11d),_0x2c8855(0x158)+_0x54ead9[_0x2c8855(0x13b)]['kind'],'\x20\x20\x20\x20command:\x20'+_0x54ead9[_0x2c8855(0x13b)][_0x2c8855(0x168)]];if(_0x54ead9['target'][_0x2c8855(0x11e)])_0x481807[_0x2c8855(0x150)](_0x2c8855(0x11f)+_0x54ead9[_0x2c8855(0x13b)][_0x2c8855(0x11e)]);if(_0x54ead9['target'][_0x2c8855(0x14b)])_0x481807['push'](_0x2c8855(0x125)+_0x54ead9[_0x2c8855(0x13b)][_0x2c8855(0x14b)]);if(_0x54ead9['target'][_0x2c8855(0x15d)])_0x481807['push'](_0x2c8855(0x12b)+_0x54ead9['target'][_0x2c8855(0x15d)]);if(_0x54ead9[_0x2c8855(0x13b)][_0x2c8855(0x145)])_0x481807[_0x2c8855(0x150)](_0x2c8855(0x131)+_0x54ead9[_0x2c8855(0x13b)]['scriptName']);if(_0x54ead9[_0x2c8855(0x16b)][_0x2c8855(0x135)]>0x0){_0x481807[_0x2c8855(0x150)]('',_0x2c8855(0x13e));for(const _0x1024b2 of _0x54ead9[_0x2c8855(0x16b)]){_0x481807['push'](_0x2c8855(0x161)+(_0x1024b2[_0x2c8855(0x16c)]||_0x2c8855(0x15a))+_0x2c8855(0x129)+_0x1024b2[_0x2c8855(0x13b)]+(_0x1024b2['operator']?'.'+_0x1024b2['operator']:''));}}return _0x481807[_0x2c8855(0x137)]('\x0a');}function targetPreview(_0x121825){const _0x405644=a59_0x40ca;return{'kind':_0x121825['kind'],'command':_0x121825[_0x405644(0x168)],'appRef':_0x121825[_0x405644(0x124)],'datasetCode':_0x121825[_0x405644(0x11e)],'datatable':_0x121825[_0x405644(0x14b)],'sqlCode':_0x121825['sqlCode'],'bffCode':_0x121825[_0x405644(0x156)],'bffId':_0x121825[_0x405644(0x134)],'functionName':_0x121825[_0x405644(0x145)]};}function normalizeScalarParams(_0x44a97f){const _0x21fe11=a59_0x40ca;return Object[_0x21fe11(0x155)](Object['entries'](_0x44a97f)[_0x21fe11(0x13f)](([,_0xb566f9])=>typeof _0xb566f9===_0x21fe11(0x126)||typeof _0xb566f9===_0x21fe11(0x172)));}function hasText(_0x10807e){const _0x5cdb15=a59_0x40ca;return typeof _0x10807e==='string'&&_0x10807e['trim']()[_0x5cdb15(0x135)]>0x0;}function isPrimitiveFlagDefault(_0x3c1c0d){const _0x39bf37=a59_0x40ca;return _0x3c1c0d===undefined||typeof _0x3c1c0d===_0x39bf37(0x126)||typeof _0x3c1c0d==='number'||typeof _0x3c1c0d===_0x39bf37(0x147);}
1
+ (function(_0x36810b,_0x16fcee){const _0x2de24c=a59_0x5852,_0x25d682=_0x36810b();while(!![]){try{const _0x1a228b=parseInt(_0x2de24c(0x17e))/0x1+parseInt(_0x2de24c(0x139))/0x2+parseInt(_0x2de24c(0x14e))/0x3*(parseInt(_0x2de24c(0x142))/0x4)+-parseInt(_0x2de24c(0x15e))/0x5*(-parseInt(_0x2de24c(0x17b))/0x6)+-parseInt(_0x2de24c(0x180))/0x7+parseInt(_0x2de24c(0x14c))/0x8*(parseInt(_0x2de24c(0x11d))/0x9)+-parseInt(_0x2de24c(0x159))/0xa;if(_0x1a228b===_0x16fcee)break;else _0x25d682['push'](_0x25d682['shift']());}catch(_0x40ae7a){_0x25d682['push'](_0x25d682['shift']());}}}(a59_0x3b18,0xad852));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(_0x461b88,_0x12482e){const _0x4d8f1d=a59_0x5852,_0x273fab=listLocalServiceTrees();let _0x259fd2;for(const _0x4f25d1 of _0x273fab){const _0x2f739f=matchServiceTreeCommand(_0x4f25d1,_0x461b88);if(!_0x2f739f)continue;(!_0x259fd2||_0x2f739f[_0x4d8f1d(0x17a)][_0x4d8f1d(0x123)][_0x4d8f1d(0x168)]>_0x259fd2[_0x4d8f1d(0x17a)][_0x4d8f1d(0x123)]['length'])&&(_0x259fd2={'tree':_0x4f25d1,'command':_0x2f739f['command'],'remainingArgs':_0x2f739f[_0x4d8f1d(0x11e)]});}if(!_0x259fd2)return undefined;const _0x587def={..._0x12482e};return applyAppBinding(_0x259fd2[_0x4d8f1d(0x128)],_0x259fd2[_0x4d8f1d(0x17a)],_0x587def),{'definition':buildDynamicCommandDefinition(_0x259fd2[_0x4d8f1d(0x128)],_0x259fd2[_0x4d8f1d(0x17a)]),'args':_0x259fd2[_0x4d8f1d(0x11e)],'flags':_0x587def,'tree':_0x259fd2[_0x4d8f1d(0x128)],'command':_0x259fd2['command']};}export function generateDynamicServiceHelp(_0x1e834f){const _0x195550=a59_0x5852,_0x4ac3a4=listLocalServiceTrees()[_0x195550(0x12c)](_0x3e7d01=>_0x3e7d01['service']['code']===_0x1e834f);if(!_0x4ac3a4)return undefined;const _0x42d790=[CLI_BIN_NAME+'\x20'+_0x1e834f+_0x195550(0x11c),'',_0x4ac3a4['service'][_0x195550(0x149)]||_0x1e834f,_0x4ac3a4['service'][_0x195550(0x15c)]?'\x20\x20'+_0x4ac3a4[_0x195550(0x140)]['description']:'','','Commands:',..._0x4ac3a4[_0x195550(0x15a)][_0x195550(0x132)](_0x56a700=>{const _0x266cd0=_0x195550,_0x142818=_0x56a700[_0x266cd0(0x123)][_0x266cd0(0x13a)](0x1)[_0x266cd0(0x176)]('\x20'),_0x52a02c=_0x56a700[_0x266cd0(0x175)]===_0x266cd0(0x124)?'':'\x20['+_0x56a700[_0x266cd0(0x175)]+']';return'\x20\x20'+_0x142818[_0x266cd0(0x145)](0x18)+'\x20'+(_0x56a700['description']||'')+_0x52a02c;}),'',_0x195550(0x160)+CLI_BIN_NAME+_0x195550(0x166)+_0x1e834f+_0x195550(0x12f)][_0x195550(0x173)](Boolean);return _0x42d790[_0x195550(0x176)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x2aed65=>{const _0x296c6f=a59_0x5852,_0x2f9bc0=_0x2aed65['normalizedManifest'];return{'service':_0x2f9bc0[_0x296c6f(0x140)][_0x296c6f(0x125)],'label':_0x2f9bc0[_0x296c6f(0x140)][_0x296c6f(0x149)]||_0x2f9bc0[_0x296c6f(0x140)][_0x296c6f(0x125)],'commands':_0x2f9bc0[_0x296c6f(0x15a)][_0x296c6f(0x132)](_0x4ccd54=>({'command':dynamicCommandName(_0x4ccd54),'description':_0x4ccd54[_0x296c6f(0x15c)]||_0x296c6f(0x16a)+_0x4ccd54[_0x296c6f(0x151)],'tag':riskTag(_0x4ccd54['risk'])}))};});}export function getDynamicServiceEntry(_0x57cf88){const _0x57ceb7=a59_0x5852;return listDynamicServiceEntries()[_0x57ceb7(0x12c)](_0x55dca3=>_0x55dca3['service']===_0x57cf88);}export function listDynamicServiceDefinitions(_0x52349f){const _0x4acdbd=a59_0x5852;return listLocalServiceTrees()[_0x4acdbd(0x173)](_0x1c29b1=>!_0x52349f||_0x1c29b1['service'][_0x4acdbd(0x125)]===_0x52349f)[_0x4acdbd(0x14d)](_0x26f7ba=>_0x26f7ba['commands']['map'](_0x3ff951=>buildDynamicCommandDefinition(_0x26f7ba,_0x3ff951)));}export function getDynamicServiceDefinitions(_0x1f9f60){const _0x3fbfd2=listDynamicServiceDefinitions(_0x1f9f60);return _0x3fbfd2['length']>0x0?_0x3fbfd2:undefined;}export function findDynamicServiceDefinition(_0x1bd76f,_0x2b00e0){const _0x36fa2c=a59_0x5852;return listDynamicServiceDefinitions(_0x1bd76f)[_0x36fa2c(0x12c)](_0x422b2f=>_0x422b2f[_0x36fa2c(0x17a)]===_0x2b00e0);}export function buildDynamicCommandDefinition(_0x3d09d9,_0xa1c5a4){const _0x259950=a59_0x5852;return{'service':_0x3d09d9[_0x259950(0x140)][_0x259950(0x125)],'command':dynamicCommandName(_0xa1c5a4),'description':_0xa1c5a4[_0x259950(0x15c)]||_0x259950(0x16a)+_0xa1c5a4[_0x259950(0x151)],'risk':_0xa1c5a4[_0x259950(0x175)],..._0xa1c5a4[_0x259950(0x175)]===_0x259950(0x124)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0xa1c5a4)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0xa1c5a4[_0x259950(0x165)][_0x259950(0x132)](_0xbdd406=>({'name':_0xbdd406[_0x259950(0x149)],'description':_0xbdd406[_0x259950(0x15c)]||_0xbdd406[_0x259950(0x149)],'required':_0xbdd406[_0x259950(0x155)]})),'flags':_0xa1c5a4[_0x259950(0x126)][_0x259950(0x132)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0xa1c5a4),async 'dryRun'(_0xd6308f){const _0x4e369a=_0x259950,_0x2e8654=await compilePlan(_0xa1c5a4,_0xd6308f);return{'method':_0x4e369a(0x13c),'url':_0xa1c5a4[_0x4e369a(0x151)],'body':{'target':targetPreview(_0x2e8654),'params':_0x2e8654[_0x4e369a(0x110)]},'description':_0x4e369a(0x162)+_0xa1c5a4[_0x4e369a(0x151)]};},async 'execute'(_0x1990c2){const _0x39fc8d=_0x259950,_0x310eaa=await compilePlan(_0xa1c5a4,_0x1990c2),_0x296797=Date[_0x39fc8d(0x154)](),_0x1c4851=await executePlan(_0x310eaa,_0xa1c5a4,_0x1990c2),_0x5e1c72=Date[_0x39fc8d(0x154)]()-_0x296797;return{'ok':!![],'data':{'service':_0x3d09d9[_0x39fc8d(0x140)],'command':_0xa1c5a4[_0x39fc8d(0x151)],'target':targetPreview(_0x310eaa),'result':_0x1c4851,'elapsed':_0x5e1c72},'message':'Service\x20command\x20'+_0xa1c5a4[_0x39fc8d(0x151)]+_0x39fc8d(0x16d)+_0x5e1c72+'ms'};}};}function buildDynamicConfirmationDescription(_0x635a2a){const _0x2de74c=a59_0x5852,_0x488462=_0x635a2a['description']||_0x635a2a[_0x2de74c(0x151)],_0x153a2c=_0x635a2a['risk']===_0x2de74c(0x137)?_0x2de74c(0x172):_0x2de74c(0x170);return _0x2de74c(0x17f)+_0x488462+'”。'+_0x153a2c;}function dynamicCommandName(_0x46b543){const _0x44c6aa=a59_0x5852;return _0x46b543[_0x44c6aa(0x123)][_0x44c6aa(0x13a)](0x1)['join']('\x20');}function riskTag(_0x43de24){const _0x4d90b5=a59_0x5852;return _0x43de24===_0x4d90b5(0x124)?'':'\x20\x20['+_0x43de24+']';}function flagToCommandFlag(_0x4b06a0){const _0x15a85f=a59_0x5852;return{'name':_0x4b06a0[_0x15a85f(0x158)],'type':_0x4b06a0[_0x15a85f(0x11a)]===_0x15a85f(0x17c)?'string':_0x4b06a0[_0x15a85f(0x11a)],'description':_0x4b06a0[_0x15a85f(0x15c)]||_0x4b06a0[_0x15a85f(0x149)],'required':_0x4b06a0[_0x15a85f(0x155)],'default':isPrimitiveFlagDefault(_0x4b06a0[_0x15a85f(0x148)])?_0x4b06a0[_0x15a85f(0x148)]:undefined,'enum':_0x4b06a0[_0x15a85f(0x147)]};}async function compilePlan(_0x270f59,_0x53334a){const _0x5552ab=a59_0x5852;return compileServiceTreeCommand(_0x270f59,{'flags':_0x53334a[_0x5552ab(0x156)],'args':_0x53334a[_0x5552ab(0x165)],'context':await buildServiceContext(_0x270f59,_0x53334a)});}async function buildServiceContext(_0x2188ea,_0x4a00d4){const _0x35201b=a59_0x5852,_0x39292b={'appCode':_0x4a00d4['appCode'],'env':_0x4a00d4[_0x35201b(0x153)],'envName':_0x4a00d4[_0x35201b(0x153)]};if(!usesRuntimeContext(_0x2188ea))return _0x39292b;const _0x42713c=await getLoginUserInfo(),_0x44c170=pickFirst(_0x42713c[_0x35201b(0x113)],_0x42713c['id']);return{..._0x39292b,'user':_0x42713c,'userId':_0x44c170,'id':_0x42713c['id'],'username':pickFirst(_0x42713c[_0x35201b(0x12d)],_0x42713c['userName'],_0x42713c[_0x35201b(0x16c)]),'userName':_0x42713c[_0x35201b(0x111)],'nickname':pickFirst(_0x42713c[_0x35201b(0x179)],_0x42713c[_0x35201b(0x129)]),'nickName':_0x42713c['nickName'],'tenantCode':_0x42713c[_0x35201b(0x119)],'employeeId':_0x42713c[_0x35201b(0x16f)]};}function usesRuntimeContext(_0x338cb8){const _0xb41f00=a59_0x5852;return _0x338cb8[_0xb41f00(0x164)][_0xb41f00(0x130)](_0x1c7485=>typeof _0x1c7485[_0xb41f00(0x135)]===_0xb41f00(0x15f)&&(_0x1c7485[_0xb41f00(0x135)]['startsWith'](_0xb41f00(0x120))||_0x1c7485['source'][_0xb41f00(0x12b)](_0xb41f00(0x167))));}function pickFirst(..._0x2e63f6){const _0x215f9a=a59_0x5852;return _0x2e63f6[_0x215f9a(0x12c)](_0x37ed8d=>_0x37ed8d!==undefined&&_0x37ed8d!==null);}async function executePlan(_0x54cb8a,_0x180081,_0x3ca877){const _0x3d5235=a59_0x5852;if(_0x54cb8a[_0x3d5235(0x17d)]===_0x3d5235(0x114)){const _0x8d3add=await resolveDatasetCode(_0x54cb8a,_0x180081,_0x3ca877);return executeData(_0x8d3add,_0x54cb8a['command'],_0x54cb8a['params']);}if(_0x54cb8a[_0x3d5235(0x17d)]===_0x3d5235(0x163)){if(!_0x54cb8a[_0x3d5235(0x12e)])throw CliErrors['validation'](_0x3d5235(0x15d)+_0x180081['cliPath']+_0x3d5235(0x121));return executeSdkSql(_0x54cb8a[_0x3d5235(0x12e)],normalizeScalarParams(_0x54cb8a['params']));}if(_0x54cb8a[_0x3d5235(0x17d)]===_0x3d5235(0x122)){const _0x4ef816=_0x54cb8a[_0x3d5235(0x13f)]||_0x54cb8a[_0x3d5235(0x152)]||(_0x54cb8a[_0x3d5235(0x16b)]==null?'':String(_0x54cb8a[_0x3d5235(0x16b)]));if(!_0x4ef816)throw CliErrors[_0x3d5235(0x112)](_0x3d5235(0x15d)+_0x180081['cliPath']+_0x3d5235(0x161));return executeSdkBff(_0x4ef816,_0x54cb8a[_0x3d5235(0x110)]);}throw CliErrors['validation']('Unsupported\x20service\x20target\x20kind:\x20'+_0x54cb8a[_0x3d5235(0x17d)]);}async function resolveDatasetCode(_0x171e93,_0x117ede,_0x52b756){const _0xef99af=a59_0x5852;if(_0x171e93['datasetCode'])return _0x171e93['datasetCode'];if(!_0x171e93['datatable'])throw CliErrors[_0xef99af(0x112)](_0xef99af(0x15d)+_0x117ede[_0xef99af(0x151)]+_0xef99af(0x174));const _0x229a12=await listDatasets(_0x52b756[_0xef99af(0x118)]),_0xf40a1c=_0x229a12[_0xef99af(0x12c)](_0x2df350=>_0x2df350[_0xef99af(0x146)]?.['tableName']===_0x171e93[_0xef99af(0x136)]);if(!_0xf40a1c?.[_0xef99af(0x125)])throw CliErrors[_0xef99af(0x112)](_0xef99af(0x13d)+_0x171e93['datatable']+_0xef99af(0x14b)+_0x52b756[_0xef99af(0x118)]+'.',_0xef99af(0x177));return _0xf40a1c[_0xef99af(0x125)];}function applyAppBinding(_0x2bf737,_0x6323af,_0x1c3a0d){const _0x5192fb=a59_0x5852,_0x55dbe8=_0x6323af[_0x5192fb(0x134)][_0x5192fb(0x115)];if(!_0x55dbe8)return;const _0x5a9661=_0x2bf737[_0x5192fb(0x117)][_0x55dbe8];if(!_0x5a9661)throw CliErrors[_0x5192fb(0x112)](_0x5192fb(0x11b)+_0x55dbe8+_0x5192fb(0x16e)+_0x6323af[_0x5192fb(0x151)]+'.',_0x5192fb(0x157));const _0x5486fd=_0x5a9661['appcode']||_0x5a9661[_0x5192fb(0x118)];_0x5486fd&&!hasText(_0x1c3a0d[_0x5192fb(0x150)])&&(_0x1c3a0d['appcode']=_0x5486fd),_0x5a9661[_0x5192fb(0x13e)]&&!hasText(_0x1c3a0d[_0x5192fb(0x13e)])&&!hasText(_0x1c3a0d['appcode'])&&(_0x1c3a0d['app']=_0x5a9661[_0x5192fb(0x13e)]),_0x5a9661[_0x5192fb(0x144)]&&!hasText(_0x1c3a0d[_0x5192fb(0x144)])&&(_0x1c3a0d['env']=_0x5a9661[_0x5192fb(0x144)]);}function renderDynamicCommandHelp(_0x226bcd){const _0x18b98a=a59_0x5852,_0x57ac9d=[_0x18b98a(0x14f),'\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x226bcd[_0x18b98a(0x134)]['kind'],_0x18b98a(0x116)+_0x226bcd[_0x18b98a(0x134)][_0x18b98a(0x17a)]];if(_0x226bcd[_0x18b98a(0x134)]['datasetCode'])_0x57ac9d['push']('\x20\x20\x20\x20datasetCode:\x20'+_0x226bcd[_0x18b98a(0x134)][_0x18b98a(0x171)]);if(_0x226bcd[_0x18b98a(0x134)][_0x18b98a(0x136)])_0x57ac9d['push'](_0x18b98a(0x138)+_0x226bcd['target'][_0x18b98a(0x136)]);if(_0x226bcd[_0x18b98a(0x134)]['sqlCode'])_0x57ac9d[_0x18b98a(0x131)](_0x18b98a(0x11f)+_0x226bcd[_0x18b98a(0x134)][_0x18b98a(0x12e)]);if(_0x226bcd['target']['scriptName'])_0x57ac9d['push'](_0x18b98a(0x133)+_0x226bcd[_0x18b98a(0x134)][_0x18b98a(0x13f)]);if(_0x226bcd[_0x18b98a(0x164)]['length']>0x0){_0x57ac9d[_0x18b98a(0x131)]('',_0x18b98a(0x127));for(const _0x1865ba of _0x226bcd[_0x18b98a(0x164)]){_0x57ac9d[_0x18b98a(0x131)](_0x18b98a(0x143)+(_0x1865ba[_0x18b98a(0x135)]||'const')+_0x18b98a(0x169)+_0x1865ba['target']+(_0x1865ba['operator']?'.'+_0x1865ba[_0x18b98a(0x14a)]:''));}}return _0x57ac9d[_0x18b98a(0x176)]('\x0a');}function a59_0x3b18(){const _0x48d76b=['\x20\x20\x20\x20sqlCode:\x20','context.','\x20requires\x20target.sqlCode.','bff','fullPath','read','code','flags','\x20\x20MAP\x20TO','tree','nickName','entries','startsWith','find','username','sqlCode','`\x20to\x20inspect\x20the\x20manifest.','some','push','map','\x20\x20\x20\x20functionName:\x20','target','source','datatable','high-risk-write','\x20\x20\x20\x20datatable:\x20','1276122XPhAKE','slice','trim','SERVICE_TREE','Cannot\x20resolve\x20datatable\x20\x22','app','scriptName','service','boolean','4226172hcLApH','\x20\x20\x20\x20','env','padEnd','dbtableConfig','enum','default','name','operator','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','791984RHJUZZ','flatMap','3EogAgs','\x20\x20SERVICE\x20TREE\x20TARGET','appcode','cliPath','bffCode','envName','now','required','rawFlags','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','cliName','21987130xVghTx','commands','number','description','Service\x20command\x20','600TgkAsC','string','Use\x20`','\x20requires\x20target.functionName.','Preview\x20dynamic\x20service\x20command:\x20','sql','mapTo','args','\x20service\x20detail\x20--service\x20','ctx.','length','\x20->\x20','Run\x20service\x20command\x20','bffId','loginName','\x20completed\x20in\x20','\x22\x20in\x20service\x20command\x20','employeeId','该命令被清单标记为写入,可能修改业务数据或服务状态。','datasetCode','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','filter','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','risk','join','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','fromEntries','nickname','command','23526cSNKou','json','kind','830712sRecEg','将通过\x20Service\x20Tree\x20执行“','3376639crHBRv','params','userName','validation','userId','data','appRef','\x20\x20\x20\x20command:\x20','appBindings','appCode','tenantCode','type','Unknown\x20appRef\x20\x22','\x20<command>\x20[flags]','36AopNQV','remainingArgs'];a59_0x3b18=function(){return _0x48d76b;};return a59_0x3b18();}function targetPreview(_0x2792fa){const _0x29538f=a59_0x5852;return{'kind':_0x2792fa[_0x29538f(0x17d)],'command':_0x2792fa[_0x29538f(0x17a)],'appRef':_0x2792fa['appRef'],'datasetCode':_0x2792fa[_0x29538f(0x171)],'datatable':_0x2792fa[_0x29538f(0x136)],'sqlCode':_0x2792fa[_0x29538f(0x12e)],'bffCode':_0x2792fa['bffCode'],'bffId':_0x2792fa[_0x29538f(0x16b)],'functionName':_0x2792fa[_0x29538f(0x13f)]};}function normalizeScalarParams(_0x17a212){const _0x5f1932=a59_0x5852;return Object[_0x5f1932(0x178)](Object[_0x5f1932(0x12a)](_0x17a212)[_0x5f1932(0x173)](([,_0x92a0de])=>typeof _0x92a0de===_0x5f1932(0x15f)||typeof _0x92a0de===_0x5f1932(0x15b)));}function a59_0x5852(_0xe913d3,_0x4e40b8){_0xe913d3=_0xe913d3-0x110;const _0x3b18e9=a59_0x3b18();let _0x5852a7=_0x3b18e9[_0xe913d3];return _0x5852a7;}function hasText(_0x1b7ff1){const _0xf76ce4=a59_0x5852;return typeof _0x1b7ff1===_0xf76ce4(0x15f)&&_0x1b7ff1[_0xf76ce4(0x13b)]()[_0xf76ce4(0x168)]>0x0;}function isPrimitiveFlagDefault(_0xf4ab82){const _0x42a50b=a59_0x5852;return _0xf4ab82===undefined||typeof _0xf4ab82===_0x42a50b(0x15f)||typeof _0xf4ab82==='number'||typeof _0xf4ab82===_0x42a50b(0x141);}
@@ -1 +1 @@
1
- (function(_0x430b18,_0xa94dd2){const _0x5d653c=a60_0x3072,_0x241799=_0x430b18();while(!![]){try{const _0x4d2336=parseInt(_0x5d653c(0x6c))/0x1+parseInt(_0x5d653c(0x82))/0x2+parseInt(_0x5d653c(0x79))/0x3*(parseInt(_0x5d653c(0x6e))/0x4)+-parseInt(_0x5d653c(0x72))/0x5*(parseInt(_0x5d653c(0x74))/0x6)+parseInt(_0x5d653c(0x84))/0x7*(parseInt(_0x5d653c(0x87))/0x8)+-parseInt(_0x5d653c(0x6b))/0x9+parseInt(_0x5d653c(0x7f))/0xa*(parseInt(_0x5d653c(0x70))/0xb);if(_0x4d2336===_0xa94dd2)break;else _0x241799['push'](_0x241799['shift']());}catch(_0x18c10f){_0x241799['push'](_0x241799['shift']());}}}(a60_0x261b,0x8653e));export function adaptServiceTreeManifestForLegacyFramework(_0x21171a){const _0x5b9569=a60_0x3072,_0x1ac2b1=cloneJsonValue(_0x21171a),_0x26e343=[];if(!isObjectRecord(_0x1ac2b1))return{'manifest':_0x1ac2b1,'errors':_0x26e343};return Array[_0x5b9569(0x7b)](_0x1ac2b1[_0x5b9569(0x68)])&&_0x1ac2b1['commands'][_0x5b9569(0x66)]((_0x136dd8,_0x387a2d)=>{const _0x4a3bf5=_0x5b9569;if(!isObjectRecord(_0x136dd8))return;adaptBffTarget(_0x136dd8['target'],_0x4a3bf5(0x80)+_0x387a2d+_0x4a3bf5(0x7c),_0x26e343);}),adaptResources(_0x1ac2b1[_0x5b9569(0x67)],_0x5b9569(0x86),_0x26e343),{'manifest':_0x1ac2b1,'errors':_0x26e343};}export function toPublicServiceTreeTarget(_0x4e34bc){const _0x5ef02e=a60_0x3072,{scriptName:_0x5bcd36,..._0x4662a5}=_0x4e34bc;return typeof _0x5bcd36===_0x5ef02e(0x77)&&_0x5bcd36[_0x5ef02e(0x7a)]()&&(_0x4662a5[_0x5ef02e(0x88)]=_0x5bcd36),_0x4662a5;}export function toPublicNormalizedServiceTree(_0x58cae5){const _0x4e3590=a60_0x3072;return{..._0x58cae5,'commands':_0x58cae5[_0x4e3590(0x68)][_0x4e3590(0x78)](_0x25666c=>({..._0x25666c,'target':toPublicServiceTreeTarget(_0x25666c[_0x4e3590(0x73)])}))};}function a60_0x3072(_0x462bfa,_0x3ca47e){_0x462bfa=_0x462bfa-0x65;const _0x261bb5=a60_0x261b();let _0x3072a8=_0x261bb5[_0x462bfa];return _0x3072a8;}function adaptResources(_0x4e1a97,_0x7450,_0x6ad096){const _0x3e5503=a60_0x3072;if(!isObjectRecord(_0x4e1a97))return;for(const [_0x12ad6a,_0x33700f]of Object['entries'](_0x4e1a97)){if(!isObjectRecord(_0x33700f))continue;const _0x4fdd69=_0x7450+'.'+_0x12ad6a;if(isObjectRecord(_0x33700f[_0x3e5503(0x81)]))for(const [_0x496c6f,_0x51a674]of Object[_0x3e5503(0x6f)](_0x33700f['actions'])){if(!isObjectRecord(_0x51a674))continue;const _0x24bab0=_0x4fdd69+_0x3e5503(0x75)+_0x496c6f,_0x21eafd=isObjectRecord(_0x51a674[_0x3e5503(0x73)])&&_0x51a674[_0x3e5503(0x73)][_0x3e5503(0x7e)]==='bff';adaptBffTarget(_0x51a674[_0x3e5503(0x73)],_0x24bab0+'.target',_0x6ad096),(_0x21eafd||isBffAction(_0x51a674))&&adaptFunctionNameField(_0x51a674,_0x24bab0,_0x6ad096);}adaptResources(_0x33700f[_0x3e5503(0x67)],_0x4fdd69+_0x3e5503(0x76),_0x6ad096);}}function adaptBffTarget(_0x2e555d,_0x1cf457,_0x874772){const _0x50e263=a60_0x3072;if(!isObjectRecord(_0x2e555d)||_0x2e555d[_0x50e263(0x7e)]!==_0x50e263(0x7d))return;adaptFunctionNameField(_0x2e555d,_0x1cf457,_0x874772);}function adaptFunctionNameField(_0x5c731a,_0x11184e,_0x422ba7){const _0x1d27ff=a60_0x3072;Object[_0x1d27ff(0x6d)]['hasOwnProperty'][_0x1d27ff(0x85)](_0x5c731a,'scriptName')&&_0x422ba7['push']({'level':_0x1d27ff(0x6a),'path':_0x11184e+_0x1d27ff(0x83),'message':_0x1d27ff(0x71)});if(Object[_0x1d27ff(0x6d)]['hasOwnProperty']['call'](_0x5c731a,_0x1d27ff(0x88))){if(typeof _0x5c731a[_0x1d27ff(0x88)]!==_0x1d27ff(0x77)||!_0x5c731a[_0x1d27ff(0x88)][_0x1d27ff(0x7a)]()){_0x422ba7['push']({'level':_0x1d27ff(0x6a),'path':_0x11184e+_0x1d27ff(0x69),'message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x5c731a[_0x1d27ff(0x88)];return;}_0x5c731a['scriptName']=_0x5c731a['functionName'],delete _0x5c731a[_0x1d27ff(0x88)];}}function isBffAction(_0x39c279){const _0x4c58bb=a60_0x3072;return _0x39c279[_0x4c58bb(0x7e)]==='bff'||_0x39c279['action']==='bff.exec'||_0x39c279['target']==='bff.exec';}function cloneJsonValue(_0x2705b1){const _0x2f676b=a60_0x3072;if(Array[_0x2f676b(0x7b)](_0x2705b1))return _0x2705b1[_0x2f676b(0x78)](_0x3f4187=>cloneJsonValue(_0x3f4187));if(isObjectRecord(_0x2705b1))return Object[_0x2f676b(0x65)](Object[_0x2f676b(0x6f)](_0x2705b1)[_0x2f676b(0x78)](([_0x5e2f26,_0x3ae6a9])=>[_0x5e2f26,cloneJsonValue(_0x3ae6a9)]));return _0x2705b1;}function a60_0x261b(){const _0x3b9f7d=['bff','kind','5576560nXEHOf','$.commands[','actions','617192cyuiKK','.scriptName','7fTIjOa','call','$.resources','192784lXmXOQ','functionName','fromEntries','forEach','resources','commands','.functionName','error','7680942nfhVVT','17881woqXxF','prototype','260xuqMjv','entries','11XRoLZH','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','137415zvoEEL','target','24DeapvQ','.actions.','.resources','string','map','27939AMfSjw','trim','isArray','].target'];a60_0x261b=function(){return _0x3b9f7d;};return a60_0x261b();}function isObjectRecord(_0x57b90d){return Boolean(_0x57b90d)&&typeof _0x57b90d==='object'&&!Array['isArray'](_0x57b90d);}
1
+ (function(_0x2bb466,_0x32d3d2){const _0x26d0b3=a60_0x6d6e,_0x49472e=_0x2bb466();while(!![]){try{const _0x456d59=parseInt(_0x26d0b3(0x166))/0x1*(-parseInt(_0x26d0b3(0x161))/0x2)+-parseInt(_0x26d0b3(0x185))/0x3+-parseInt(_0x26d0b3(0x160))/0x4*(-parseInt(_0x26d0b3(0x177))/0x5)+-parseInt(_0x26d0b3(0x16c))/0x6*(-parseInt(_0x26d0b3(0x184))/0x7)+-parseInt(_0x26d0b3(0x173))/0x8+parseInt(_0x26d0b3(0x183))/0x9+parseInt(_0x26d0b3(0x16d))/0xa;if(_0x456d59===_0x32d3d2)break;else _0x49472e['push'](_0x49472e['shift']());}catch(_0x40c9f5){_0x49472e['push'](_0x49472e['shift']());}}}(a60_0x3c3e,0x8845b));export function adaptServiceTreeManifestForLegacyFramework(_0x2548c9){const _0x5c371e=a60_0x6d6e,_0x33cbab=cloneJsonValue(_0x2548c9),_0x6875dd=[];if(!isObjectRecord(_0x33cbab))return{'manifest':_0x33cbab,'errors':_0x6875dd};return Array[_0x5c371e(0x17b)](_0x33cbab[_0x5c371e(0x180)])&&_0x33cbab[_0x5c371e(0x180)][_0x5c371e(0x182)]((_0x1bdcad,_0x576492)=>{const _0x396ce6=_0x5c371e;if(!isObjectRecord(_0x1bdcad))return;adaptBffTarget(_0x1bdcad[_0x396ce6(0x17d)],_0x396ce6(0x16e)+_0x576492+_0x396ce6(0x186),_0x6875dd);}),adaptResources(_0x33cbab[_0x5c371e(0x171)],_0x5c371e(0x174),_0x6875dd),{'manifest':_0x33cbab,'errors':_0x6875dd};}export function toPublicServiceTreeTarget(_0x172cb1){const _0x1a1c16=a60_0x6d6e,{scriptName:_0x47e8e6,..._0x15929b}=_0x172cb1;return typeof _0x47e8e6===_0x1a1c16(0x168)&&_0x47e8e6['trim']()&&(_0x15929b['functionName']=_0x47e8e6),_0x15929b;}export function toPublicNormalizedServiceTree(_0xcda4c6){const _0x12ec9d=a60_0x6d6e;return{..._0xcda4c6,'commands':_0xcda4c6[_0x12ec9d(0x180)][_0x12ec9d(0x175)](_0x5b0789=>({..._0x5b0789,'target':toPublicServiceTreeTarget(_0x5b0789[_0x12ec9d(0x17d)])}))};}function adaptResources(_0x5cff8a,_0x51fc3c,_0x323771){const _0x3a071f=a60_0x6d6e;if(!isObjectRecord(_0x5cff8a))return;for(const [_0x2b2324,_0x53f313]of Object[_0x3a071f(0x167)](_0x5cff8a)){if(!isObjectRecord(_0x53f313))continue;const _0x463616=_0x51fc3c+'.'+_0x2b2324;if(isObjectRecord(_0x53f313[_0x3a071f(0x16b)]))for(const [_0x5237aa,_0x4c56c3]of Object[_0x3a071f(0x167)](_0x53f313[_0x3a071f(0x16b)])){if(!isObjectRecord(_0x4c56c3))continue;const _0x36c652=_0x463616+_0x3a071f(0x178)+_0x5237aa,_0xccb51b=isObjectRecord(_0x4c56c3['target'])&&_0x4c56c3[_0x3a071f(0x17d)]['kind']===_0x3a071f(0x163);adaptBffTarget(_0x4c56c3[_0x3a071f(0x17d)],_0x36c652+_0x3a071f(0x16f),_0x323771),(_0xccb51b||isBffAction(_0x4c56c3))&&adaptFunctionNameField(_0x4c56c3,_0x36c652,_0x323771);}adaptResources(_0x53f313[_0x3a071f(0x171)],_0x463616+'.resources',_0x323771);}}function a60_0x6d6e(_0x4baab7,_0x1793be){_0x4baab7=_0x4baab7-0x15f;const _0x3c3ee9=a60_0x3c3e();let _0x6d6efb=_0x3c3ee9[_0x4baab7];return _0x6d6efb;}function adaptBffTarget(_0xca2d38,_0x304be4,_0x1a1d78){const _0x330af=a60_0x6d6e;if(!isObjectRecord(_0xca2d38)||_0xca2d38[_0x330af(0x170)]!==_0x330af(0x163))return;adaptFunctionNameField(_0xca2d38,_0x304be4,_0x1a1d78);}function adaptFunctionNameField(_0x4d0b14,_0x318f5d,_0x5cfb8c){const _0x44cb2b=a60_0x6d6e;Object['prototype'][_0x44cb2b(0x17e)][_0x44cb2b(0x162)](_0x4d0b14,_0x44cb2b(0x172))&&_0x5cfb8c[_0x44cb2b(0x16a)]({'level':'error','path':_0x318f5d+_0x44cb2b(0x181),'message':_0x44cb2b(0x17f)});if(Object[_0x44cb2b(0x17c)][_0x44cb2b(0x17e)][_0x44cb2b(0x162)](_0x4d0b14,_0x44cb2b(0x17a))){if(typeof _0x4d0b14[_0x44cb2b(0x17a)]!==_0x44cb2b(0x168)||!_0x4d0b14[_0x44cb2b(0x17a)][_0x44cb2b(0x15f)]()){_0x5cfb8c[_0x44cb2b(0x16a)]({'level':'error','path':_0x318f5d+_0x44cb2b(0x176),'message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x4d0b14['functionName'];return;}_0x4d0b14[_0x44cb2b(0x172)]=_0x4d0b14[_0x44cb2b(0x17a)],delete _0x4d0b14[_0x44cb2b(0x17a)];}}function isBffAction(_0x2c2a11){const _0x2d84a4=a60_0x6d6e;return _0x2c2a11[_0x2d84a4(0x170)]===_0x2d84a4(0x163)||_0x2c2a11[_0x2d84a4(0x164)]===_0x2d84a4(0x179)||_0x2c2a11[_0x2d84a4(0x17d)]===_0x2d84a4(0x179);}function a60_0x3c3e(){const _0x561075=['Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','commands','.scriptName','forEach','2742066qcPEmW','7JhsxUZ','2221578zfoclw','].target','trim','501668GyRMKH','1720234qSYnOK','call','bff','action','object','1WpVsKt','entries','string','fromEntries','push','actions','2191566BealUO','14516490jhJsdH','$.commands[','.target','kind','resources','scriptName','7728848onbqRP','$.resources','map','.functionName','40YrwxIg','.actions.','bff.exec','functionName','isArray','prototype','target','hasOwnProperty'];a60_0x3c3e=function(){return _0x561075;};return a60_0x3c3e();}function cloneJsonValue(_0x18dacf){const _0x4bbb3d=a60_0x6d6e;if(Array[_0x4bbb3d(0x17b)](_0x18dacf))return _0x18dacf[_0x4bbb3d(0x175)](_0x48f5ff=>cloneJsonValue(_0x48f5ff));if(isObjectRecord(_0x18dacf))return Object[_0x4bbb3d(0x169)](Object[_0x4bbb3d(0x167)](_0x18dacf)[_0x4bbb3d(0x175)](([_0x205903,_0xa4fb35])=>[_0x205903,cloneJsonValue(_0xa4fb35)]));return _0x18dacf;}function isObjectRecord(_0x55c0fd){const _0x224ef7=a60_0x6d6e;return Boolean(_0x55c0fd)&&typeof _0x55c0fd===_0x224ef7(0x165)&&!Array[_0x224ef7(0x17b)](_0x55c0fd);}
@@ -1 +1 @@
1
- const a61_0x4ab7ed=a61_0x1245;(function(_0x25432b,_0x17e1b8){const _0x335bd1=a61_0x1245,_0x2ac063=_0x25432b();while(!![]){try{const _0x4863d6=parseInt(_0x335bd1(0xed))/0x1+parseInt(_0x335bd1(0xd2))/0x2+parseInt(_0x335bd1(0xc6))/0x3*(parseInt(_0x335bd1(0xe4))/0x4)+parseInt(_0x335bd1(0xc5))/0x5*(-parseInt(_0x335bd1(0xc7))/0x6)+-parseInt(_0x335bd1(0xe1))/0x7*(-parseInt(_0x335bd1(0xcd))/0x8)+parseInt(_0x335bd1(0xce))/0x9*(parseInt(_0x335bd1(0xc3))/0xa)+-parseInt(_0x335bd1(0x104))/0xb*(parseInt(_0x335bd1(0xda))/0xc);if(_0x4863d6===_0x17e1b8)break;else _0x2ac063['push'](_0x2ac063['shift']());}catch(_0x1612b5){_0x2ac063['push'](_0x2ac063['shift']());}}}(a61_0x24e5,0x68176));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a61_0x4ab7ed(0xfc),'type':'string','required':!![],'description':a61_0x4ab7ed(0xf3)},SERVICE_FLAG={'name':a61_0x4ab7ed(0xe7),'type':a61_0x4ab7ed(0xc4),'required':!![],'description':a61_0x4ab7ed(0xe2),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x39e3c1){const _0xc14ec6=a61_0x4ab7ed;return{'serviceCode':_0x39e3c1['serviceCode'],'name':_0x39e3c1['normalizedManifest'][_0xc14ec6(0xe7)][_0xc14ec6(0xf5)],'version':_0x39e3c1[_0xc14ec6(0xd0)],'importedAt':_0x39e3c1['importedAt'],'source':_0x39e3c1[_0xc14ec6(0xfa)],'commandCount':_0x39e3c1[_0xc14ec6(0xdf)][_0xc14ec6(0xf1)][_0xc14ec6(0xdc)],'commands':_0x39e3c1[_0xc14ec6(0xdf)][_0xc14ec6(0xf1)][_0xc14ec6(0xf8)](_0x5e8eb5=>({'path':_0x5e8eb5[_0xc14ec6(0xfd)],'description':_0x5e8eb5[_0xc14ec6(0xea)],'risk':_0x5e8eb5['risk'],'target':toPublicServiceTreeTarget(_0x5e8eb5[_0xc14ec6(0xdd)]),'flags':_0x5e8eb5['flags'][_0xc14ec6(0xf8)](_0x43b095=>({'name':_0x43b095[_0xc14ec6(0xf5)],'cliName':_0x43b095['cliName'],'type':_0x43b095[_0xc14ec6(0xe6)],'required':_0x43b095[_0xc14ec6(0xd8)]===!![]}))}))};}function a61_0x1245(_0xb2c024,_0x4efcbc){_0xb2c024=_0xb2c024-0xc0;const _0x24e5c3=a61_0x24e5();let _0x124580=_0x24e5c3[_0xb2c024];return _0x124580;}function a61_0x24e5(){const _0x547903=['list','length','target','warnings','normalizedManifest','str','56ydsPCS','Local\x20service\x20code,\x20for\x20example\x20crm','Service\x20registry\x20validation\x20passed.','3868zLuSxe','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','type','service','remove','registryPath','description','write','read','99687DMknqI','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','WRITE','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','commands','serviceCount','Service\x20Tree\x20manifest\x20file\x20path','Updated','name','kind','Exported\x20service\x20','map','report','source','updated','file','cliPath','\x20service\x20','entry','entries','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','registryIndex','validate','31361QAWPFg','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','filePath','replaced','registry','2805610nishaX','string','638035LdOFkr','57xFQEQX','18CCzRlM','\x20service(s).','Local\x20service\x20not\x20found:\x20','errors','imported','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','207904PEBIyO','9PtmCDJ','\x20service(s),\x20updated\x20','version','Service\x20manifest\x20validation\x20passed.','650494NsTbFf','serviceCode','risk','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','manifests','import','required','hash','516MEyuYr'];a61_0x24e5=function(){return _0x547903;};return a61_0x24e5();}function summarizeLoadedManifest(_0x2fd440){const _0x12137f=a61_0x4ab7ed;return{'service':_0x2fd440[_0x12137f(0xdf)]?.['service'],'version':_0x2fd440['normalizedManifest']?.[_0x12137f(0xd0)],'commandCount':_0x2fd440['normalizedManifest']?.[_0x12137f(0xf1)][_0x12137f(0xdc)]??0x0,'commands':_0x2fd440[_0x12137f(0xdf)]?.[_0x12137f(0xf1)][_0x12137f(0xf8)](_0xd061df=>({'path':_0xd061df[_0x12137f(0xfd)],'risk':_0xd061df[_0x12137f(0xd4)],'target':toPublicServiceTreeTarget(_0xd061df[_0x12137f(0xdd)])}))??[],'registryIndex':_0x2fd440[_0x12137f(0x102)],'registryServiceCode':_0x2fd440['registryServiceCode'],'errors':_0x2fd440[_0x12137f(0xf9)][_0x12137f(0xca)],'warnings':_0x2fd440[_0x12137f(0xf9)][_0x12137f(0xde)]};}export const serviceDefinitions=[{'service':a61_0x4ab7ed(0xe7),'command':a61_0x4ab7ed(0x103),'description':a61_0x4ab7ed(0xee),'risk':a61_0x4ab7ed(0xec),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0xdead2b){const _0x1984d3=a61_0x4ab7ed,_0x5ac711=loadServiceManifestFromFile(_0xdead2b[_0x1984d3(0xe0)](_0x1984d3(0xfc)));if(!_0x5ac711['report']['ok'])return{'ok':![],'data':{'file':_0x5ac711[_0x1984d3(0xc0)],'hash':_0x5ac711[_0x1984d3(0xd9)],'kind':_0x5ac711[_0x1984d3(0xf6)],'serviceCount':_0x5ac711[_0x1984d3(0xd6)][_0x1984d3(0xdc)],'services':_0x5ac711[_0x1984d3(0xd6)][_0x1984d3(0xf8)](summarizeLoadedManifest),'errors':_0x5ac711[_0x1984d3(0xf9)][_0x1984d3(0xca)],'warnings':_0x5ac711[_0x1984d3(0xf9)][_0x1984d3(0xde)]},'message':formatValidationFailure(_0x5ac711[_0x1984d3(0xf9)])};if(_0x5ac711[_0x1984d3(0xf6)]===_0x1984d3(0xc2)||_0x5ac711[_0x1984d3(0xd6)][_0x1984d3(0xdc)]!==0x1)return{'ok':!![],'data':{'file':_0x5ac711[_0x1984d3(0xc0)],'hash':_0x5ac711[_0x1984d3(0xd9)],'kind':_0x5ac711[_0x1984d3(0xf6)],'serviceCount':_0x5ac711[_0x1984d3(0xd6)][_0x1984d3(0xdc)],'commandCount':_0x5ac711['manifests']['reduce']((_0x16f69e,_0x4bddaa)=>_0x16f69e+(_0x4bddaa[_0x1984d3(0xdf)]?.[_0x1984d3(0xf1)][_0x1984d3(0xdc)]??0x0),0x0),'services':_0x5ac711[_0x1984d3(0xd6)]['map'](summarizeLoadedManifest),'warnings':_0x5ac711[_0x1984d3(0xf9)][_0x1984d3(0xde)]},'message':_0x1984d3(0xe3)};return{'ok':!![],'data':{'file':_0x5ac711[_0x1984d3(0xc0)],'hash':_0x5ac711[_0x1984d3(0xd9)],'kind':_0x5ac711['kind'],'service':_0x5ac711[_0x1984d3(0xdf)]?.[_0x1984d3(0xe7)],'version':_0x5ac711[_0x1984d3(0xdf)]?.[_0x1984d3(0xd0)],'commandCount':_0x5ac711[_0x1984d3(0xdf)]?.[_0x1984d3(0xf1)]['length']??0x0,'commands':_0x5ac711[_0x1984d3(0xdf)]?.[_0x1984d3(0xf1)][_0x1984d3(0xf8)](_0x41a2df=>({'path':_0x41a2df[_0x1984d3(0xfd)],'risk':_0x41a2df[_0x1984d3(0xd4)],'target':toPublicServiceTreeTarget(_0x41a2df['target'])})),'warnings':_0x5ac711['report'][_0x1984d3(0xde)]},'message':_0x1984d3(0xd1)};}},{'service':'service','command':a61_0x4ab7ed(0xd7),'description':'将\x20Service\x20Tree\x20清单导入本地运行态注册表','risk':a61_0x4ab7ed(0xeb),'confirmationDescription':'将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x224aa6){const _0x1d6364=a61_0x4ab7ed,_0x38bd88=loadServiceManifestFromFile(_0x224aa6['str'](_0x1d6364(0xfc)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x38bd88[_0x1d6364(0xc0)],'hash':_0x38bd88[_0x1d6364(0xd9)],'kind':_0x38bd88[_0x1d6364(0xf6)],'ok':_0x38bd88[_0x1d6364(0xf9)]['ok'],'service':_0x38bd88[_0x1d6364(0xdf)]?.[_0x1d6364(0xe7)],'version':_0x38bd88[_0x1d6364(0xdf)]?.[_0x1d6364(0xd0)],'serviceCount':_0x38bd88[_0x1d6364(0xd6)][_0x1d6364(0xdc)],'services':_0x38bd88[_0x1d6364(0xd6)][_0x1d6364(0xf8)](_0xf17814=>({'service':_0xf17814[_0x1d6364(0xdf)]?.[_0x1d6364(0xe7)],'version':_0xf17814[_0x1d6364(0xdf)]?.[_0x1d6364(0xd0)],'commandCount':_0xf17814[_0x1d6364(0xdf)]?.[_0x1d6364(0xf1)]['length']??0x0,'errors':_0xf17814['report'][_0x1d6364(0xca)]})),'errors':_0x38bd88[_0x1d6364(0xf9)][_0x1d6364(0xca)],'commandCount':_0x38bd88[_0x1d6364(0xdf)]?.[_0x1d6364(0xf1)][_0x1d6364(0xdc)]??0x0},'description':_0x1d6364(0x105)};},async 'execute'(_0x1eee97){const _0x4ca2a6=a61_0x4ab7ed,_0x33ba76=importServiceManifest(_0x1eee97['str'](_0x4ca2a6(0xfc)));if(_0x33ba76[_0x4ca2a6(0x100)][_0x4ca2a6(0xdc)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x33ba76[_0x4ca2a6(0xe9)],'imported':_0x33ba76['imported'],'updated':_0x33ba76[_0x4ca2a6(0xfb)],'serviceCount':_0x33ba76[_0x4ca2a6(0xf2)],'services':_0x33ba76[_0x4ca2a6(0x100)][_0x4ca2a6(0xf8)](summarizeService)},'message':'Imported\x20'+_0x33ba76[_0x4ca2a6(0xcb)]+_0x4ca2a6(0xcf)+_0x33ba76[_0x4ca2a6(0xfb)]+_0x4ca2a6(0xc8)};return{'ok':!![],'data':{'registryPath':_0x33ba76[_0x4ca2a6(0xe9)],'replaced':_0x33ba76[_0x4ca2a6(0xc1)],'imported':_0x33ba76[_0x4ca2a6(0xcb)],'updated':_0x33ba76[_0x4ca2a6(0xfb)],'serviceCount':_0x33ba76[_0x4ca2a6(0xf2)],'service':summarizeService(_0x33ba76[_0x4ca2a6(0xff)])},'message':(_0x33ba76[_0x4ca2a6(0xc1)]?_0x4ca2a6(0xf4):'Imported')+_0x4ca2a6(0xfe)+_0x33ba76[_0x4ca2a6(0xff)][_0x4ca2a6(0xd3)]+'.'};}},{'service':a61_0x4ab7ed(0xe7),'command':'export','description':'将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','risk':'write','confirmationDescription':'将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x24ae40){const _0x16510f=a61_0x4ab7ed,_0x229fc8=getLocalServiceEntry(_0x24ae40['str'](_0x16510f(0xe7)));return{'method':_0x16510f(0xef),'url':_0x24ae40[_0x16510f(0xe0)]('file'),'body':{'service':_0x24ae40[_0x16510f(0xe0)](_0x16510f(0xe7)),'found':Boolean(_0x229fc8),'version':_0x229fc8?.['version'],'source':_0x229fc8?.[_0x16510f(0xfa)]},'description':_0x16510f(0xe5)};},async 'execute'(_0x7c76c4){const _0x3b2633=a61_0x4ab7ed,_0x2ff67a=exportServiceManifest(_0x7c76c4[_0x3b2633(0xe0)](_0x3b2633(0xe7)),_0x7c76c4[_0x3b2633(0xe0)](_0x3b2633(0xfc)));return{'ok':!![],'data':{'registryPath':_0x2ff67a['registryPath'],'file':_0x2ff67a[_0x3b2633(0xc0)],'service':summarizeService(_0x2ff67a[_0x3b2633(0xff)])},'message':_0x3b2633(0xf7)+_0x2ff67a[_0x3b2633(0xff)]['serviceCode']+'.'};}},{'service':a61_0x4ab7ed(0xe7),'command':a61_0x4ab7ed(0xdb),'description':a61_0x4ab7ed(0xf0),'risk':a61_0x4ab7ed(0xec),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0xcfdcd3=a61_0x4ab7ed,_0x1eee89=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x1eee89['length'],'services':_0x1eee89[_0xcfdcd3(0xf8)](summarizeService)}};}},{'service':a61_0x4ab7ed(0xe7),'command':a61_0x4ab7ed(0xe8),'description':'从本地运行态注册表移除\x20Service\x20Tree\x20清单','risk':a61_0x4ab7ed(0xeb),'confirmationDescription':a61_0x4ab7ed(0xd5),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x52e044){const _0x49e8b9=a61_0x4ab7ed,_0x4aa465=getLocalServiceEntry(_0x52e044['str'](_0x49e8b9(0xe7)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x52e044[_0x49e8b9(0xe0)](_0x49e8b9(0xe7)),'found':Boolean(_0x4aa465),'version':_0x4aa465?.[_0x49e8b9(0xd0)],'source':_0x4aa465?.[_0x49e8b9(0xfa)]},'description':_0x49e8b9(0x101)};},async 'execute'(_0x32022a){const _0x3fdaaa=a61_0x4ab7ed,_0x598ff8=removeServiceManifest(_0x32022a['str']('service'));return{'ok':!![],'data':{'registryPath':_0x598ff8['registryPath'],'serviceCount':_0x598ff8[_0x3fdaaa(0xf2)],'service':summarizeService(_0x598ff8[_0x3fdaaa(0xff)])},'message':'Removed\x20service\x20'+_0x598ff8[_0x3fdaaa(0xff)][_0x3fdaaa(0xd3)]+'.'};}},{'service':a61_0x4ab7ed(0xe7),'command':'detail','description':a61_0x4ab7ed(0xcc),'risk':a61_0x4ab7ed(0xec),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x3e7f44){const _0x459e78=a61_0x4ab7ed,_0x5f55f0=getLocalServiceEntry(_0x3e7f44[_0x459e78(0xe0)](_0x459e78(0xe7)));if(!_0x5f55f0)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x3e7f44[_0x459e78(0xe0)](_0x459e78(0xe7))},'message':_0x459e78(0xc9)+_0x3e7f44[_0x459e78(0xe0)](_0x459e78(0xe7))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x5f55f0),'manifest':_0x5f55f0['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x5f55f0[_0x459e78(0xdf)])}};}}];
1
+ const a61_0x2f77d7=a61_0x14d9;(function(_0x48769d,_0x404023){const _0x86c23f=a61_0x14d9,_0xce7b47=_0x48769d();while(!![]){try{const _0x484b4c=parseInt(_0x86c23f(0x14f))/0x1+parseInt(_0x86c23f(0x168))/0x2+parseInt(_0x86c23f(0x145))/0x3*(parseInt(_0x86c23f(0x154))/0x4)+parseInt(_0x86c23f(0x166))/0x5+parseInt(_0x86c23f(0x16a))/0x6+-parseInt(_0x86c23f(0x162))/0x7+-parseInt(_0x86c23f(0x155))/0x8;if(_0x484b4c===_0x404023)break;else _0xce7b47['push'](_0xce7b47['shift']());}catch(_0x35ea23){_0xce7b47['push'](_0xce7b47['shift']());}}}(a61_0x2865,0xe2bdb));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_0x14d9(_0x3c7b49,_0x422a33){_0x3c7b49=_0x3c7b49-0x12f;const _0x28655d=a61_0x2865();let _0x14d913=_0x28655d[_0x3c7b49];return _0x14d913;}const FILE_FLAG={'name':a61_0x2f77d7(0x171),'type':a61_0x2f77d7(0x15f),'required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':a61_0x2f77d7(0x16d),'type':a61_0x2f77d7(0x15f),'required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a61_0x2f77d7(0x131)}};function a61_0x2865(){const _0x289092=['updated','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','lower\x20kebab-case\x20service\x20code','read','commands','Updated','serviceCount','Imported','Removed\x20service\x20','\x20service\x20','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','manifests','detail','name','Imported\x20','将\x20Service\x20Tree\x20清单导入本地运行态注册表','risk','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','reduce','cliPath','705687wrVodt','filePath','list','registryPath','从本地运行态注册表移除\x20Service\x20Tree\x20清单','write','Local\x20service\x20not\x20found:\x20','warnings','str','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','147533YFdjuH','source','remove','report','serviceCode','12HzfbrA','32789472clgfQm','map','cliName','entries','errors','version','length','Service\x20manifest\x20validation\x20passed.','validate','target','string','registry','\x20service(s),\x20updated\x20','2677906WfLxHk','hash','import','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','5541275NFzJiF','kind','3706366PLQFet','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','9571890ncjJcA','normalizedManifest','\x20service(s).','service','entry','WRITE','imported','file','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','registryServiceCode'];a61_0x2865=function(){return _0x289092;};return a61_0x2865();}function summarizeService(_0xec4227){const _0x23e803=a61_0x2f77d7;return{'serviceCode':_0xec4227[_0x23e803(0x153)],'name':_0xec4227['normalizedManifest'][_0x23e803(0x16d)]['name'],'version':_0xec4227[_0x23e803(0x15a)],'importedAt':_0xec4227['importedAt'],'source':_0xec4227[_0x23e803(0x150)],'commandCount':_0xec4227[_0x23e803(0x16b)][_0x23e803(0x133)][_0x23e803(0x15b)],'commands':_0xec4227[_0x23e803(0x16b)][_0x23e803(0x133)][_0x23e803(0x156)](_0x1d70ed=>({'path':_0x1d70ed[_0x23e803(0x144)],'description':_0x1d70ed['description'],'risk':_0x1d70ed[_0x23e803(0x13f)],'target':toPublicServiceTreeTarget(_0x1d70ed[_0x23e803(0x15e)]),'flags':_0x1d70ed['flags']['map'](_0x526ace=>({'name':_0x526ace[_0x23e803(0x13c)],'cliName':_0x526ace[_0x23e803(0x157)],'type':_0x526ace['type'],'required':_0x526ace['required']===!![]}))}))};}function summarizeLoadedManifest(_0x43746){const _0x126ea0=a61_0x2f77d7;return{'service':_0x43746['normalizedManifest']?.[_0x126ea0(0x16d)],'version':_0x43746['normalizedManifest']?.[_0x126ea0(0x15a)],'commandCount':_0x43746[_0x126ea0(0x16b)]?.[_0x126ea0(0x133)]['length']??0x0,'commands':_0x43746[_0x126ea0(0x16b)]?.[_0x126ea0(0x133)][_0x126ea0(0x156)](_0x4e1fd2=>({'path':_0x4e1fd2[_0x126ea0(0x144)],'risk':_0x4e1fd2[_0x126ea0(0x13f)],'target':toPublicServiceTreeTarget(_0x4e1fd2[_0x126ea0(0x15e)])}))??[],'registryIndex':_0x43746['registryIndex'],'registryServiceCode':_0x43746[_0x126ea0(0x173)],'errors':_0x43746[_0x126ea0(0x152)][_0x126ea0(0x159)],'warnings':_0x43746[_0x126ea0(0x152)][_0x126ea0(0x14c)]};}export const serviceDefinitions=[{'service':'service','command':a61_0x2f77d7(0x15d),'description':a61_0x2f77d7(0x165),'risk':a61_0x2f77d7(0x132),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x484cf7){const _0x557321=a61_0x2f77d7,_0x18cd5e=loadServiceManifestFromFile(_0x484cf7['str'](_0x557321(0x171)));if(!_0x18cd5e[_0x557321(0x152)]['ok'])return{'ok':![],'data':{'file':_0x18cd5e[_0x557321(0x146)],'hash':_0x18cd5e[_0x557321(0x163)],'kind':_0x18cd5e[_0x557321(0x167)],'serviceCount':_0x18cd5e[_0x557321(0x13a)][_0x557321(0x15b)],'services':_0x18cd5e[_0x557321(0x13a)][_0x557321(0x156)](summarizeLoadedManifest),'errors':_0x18cd5e[_0x557321(0x152)][_0x557321(0x159)],'warnings':_0x18cd5e[_0x557321(0x152)]['warnings']},'message':formatValidationFailure(_0x18cd5e['report'])};if(_0x18cd5e[_0x557321(0x167)]===_0x557321(0x160)||_0x18cd5e['manifests'][_0x557321(0x15b)]!==0x1)return{'ok':!![],'data':{'file':_0x18cd5e[_0x557321(0x146)],'hash':_0x18cd5e[_0x557321(0x163)],'kind':_0x18cd5e[_0x557321(0x167)],'serviceCount':_0x18cd5e[_0x557321(0x13a)][_0x557321(0x15b)],'commandCount':_0x18cd5e[_0x557321(0x13a)][_0x557321(0x143)]((_0x56a11d,_0x1c24df)=>_0x56a11d+(_0x1c24df['normalizedManifest']?.[_0x557321(0x133)]['length']??0x0),0x0),'services':_0x18cd5e[_0x557321(0x13a)]['map'](summarizeLoadedManifest),'warnings':_0x18cd5e['report']['warnings']},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x18cd5e[_0x557321(0x146)],'hash':_0x18cd5e[_0x557321(0x163)],'kind':_0x18cd5e[_0x557321(0x167)],'service':_0x18cd5e[_0x557321(0x16b)]?.[_0x557321(0x16d)],'version':_0x18cd5e['normalizedManifest']?.[_0x557321(0x15a)],'commandCount':_0x18cd5e[_0x557321(0x16b)]?.['commands']['length']??0x0,'commands':_0x18cd5e[_0x557321(0x16b)]?.[_0x557321(0x133)][_0x557321(0x156)](_0x1dfa0c=>({'path':_0x1dfa0c[_0x557321(0x144)],'risk':_0x1dfa0c[_0x557321(0x13f)],'target':toPublicServiceTreeTarget(_0x1dfa0c[_0x557321(0x15e)])})),'warnings':_0x18cd5e[_0x557321(0x152)][_0x557321(0x14c)]},'message':_0x557321(0x15c)};}},{'service':a61_0x2f77d7(0x16d),'command':a61_0x2f77d7(0x164),'description':a61_0x2f77d7(0x13e),'risk':'write','confirmationDescription':a61_0x2f77d7(0x130),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x56109d){const _0x877aa1=a61_0x2f77d7,_0x7d4c9c=loadServiceManifestFromFile(_0x56109d[_0x877aa1(0x14d)](_0x877aa1(0x171)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x7d4c9c[_0x877aa1(0x146)],'hash':_0x7d4c9c[_0x877aa1(0x163)],'kind':_0x7d4c9c[_0x877aa1(0x167)],'ok':_0x7d4c9c['report']['ok'],'service':_0x7d4c9c[_0x877aa1(0x16b)]?.[_0x877aa1(0x16d)],'version':_0x7d4c9c['normalizedManifest']?.[_0x877aa1(0x15a)],'serviceCount':_0x7d4c9c['manifests']['length'],'services':_0x7d4c9c[_0x877aa1(0x13a)]['map'](_0xe2c936=>({'service':_0xe2c936[_0x877aa1(0x16b)]?.[_0x877aa1(0x16d)],'version':_0xe2c936[_0x877aa1(0x16b)]?.[_0x877aa1(0x15a)],'commandCount':_0xe2c936[_0x877aa1(0x16b)]?.[_0x877aa1(0x133)][_0x877aa1(0x15b)]??0x0,'errors':_0xe2c936[_0x877aa1(0x152)][_0x877aa1(0x159)]})),'errors':_0x7d4c9c[_0x877aa1(0x152)][_0x877aa1(0x159)],'commandCount':_0x7d4c9c['normalizedManifest']?.[_0x877aa1(0x133)][_0x877aa1(0x15b)]??0x0},'description':_0x877aa1(0x140)};},async 'execute'(_0x10b7ff){const _0x3695aa=a61_0x2f77d7,_0x1dc342=importServiceManifest(_0x10b7ff['str'](_0x3695aa(0x171)));if(_0x1dc342[_0x3695aa(0x158)][_0x3695aa(0x15b)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1dc342[_0x3695aa(0x148)],'imported':_0x1dc342[_0x3695aa(0x170)],'updated':_0x1dc342['updated'],'serviceCount':_0x1dc342[_0x3695aa(0x135)],'services':_0x1dc342['entries'][_0x3695aa(0x156)](summarizeService)},'message':_0x3695aa(0x13d)+_0x1dc342[_0x3695aa(0x170)]+_0x3695aa(0x161)+_0x1dc342[_0x3695aa(0x12f)]+_0x3695aa(0x16c)};return{'ok':!![],'data':{'registryPath':_0x1dc342[_0x3695aa(0x148)],'replaced':_0x1dc342['replaced'],'imported':_0x1dc342['imported'],'updated':_0x1dc342[_0x3695aa(0x12f)],'serviceCount':_0x1dc342['serviceCount'],'service':summarizeService(_0x1dc342['entry'])},'message':(_0x1dc342['replaced']?_0x3695aa(0x134):_0x3695aa(0x136))+_0x3695aa(0x138)+_0x1dc342[_0x3695aa(0x16e)][_0x3695aa(0x153)]+'.'};}},{'service':a61_0x2f77d7(0x16d),'command':'export','description':a61_0x2f77d7(0x172),'risk':'write','confirmationDescription':a61_0x2f77d7(0x14e),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x201808){const _0x51a806=a61_0x2f77d7,_0x5b4535=getLocalServiceEntry(_0x201808[_0x51a806(0x14d)](_0x51a806(0x16d)));return{'method':'WRITE','url':_0x201808['str'](_0x51a806(0x171)),'body':{'service':_0x201808[_0x51a806(0x14d)](_0x51a806(0x16d)),'found':Boolean(_0x5b4535),'version':_0x5b4535?.[_0x51a806(0x15a)],'source':_0x5b4535?.[_0x51a806(0x150)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x2335bc){const _0xa2804d=a61_0x2f77d7,_0x33f42f=exportServiceManifest(_0x2335bc['str'](_0xa2804d(0x16d)),_0x2335bc[_0xa2804d(0x14d)](_0xa2804d(0x171)));return{'ok':!![],'data':{'registryPath':_0x33f42f[_0xa2804d(0x148)],'file':_0x33f42f['filePath'],'service':summarizeService(_0x33f42f[_0xa2804d(0x16e)])},'message':'Exported\x20service\x20'+_0x33f42f['entry']['serviceCode']+'.'};}},{'service':'service','command':a61_0x2f77d7(0x147),'description':a61_0x2f77d7(0x139),'risk':a61_0x2f77d7(0x132),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x482b0a=a61_0x2f77d7,_0x312386=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x312386['length'],'services':_0x312386[_0x482b0a(0x156)](summarizeService)}};}},{'service':a61_0x2f77d7(0x16d),'command':a61_0x2f77d7(0x151),'description':a61_0x2f77d7(0x149),'risk':a61_0x2f77d7(0x14a),'confirmationDescription':a61_0x2f77d7(0x142),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x2b3eab){const _0x34b880=a61_0x2f77d7,_0x5ad8ff=getLocalServiceEntry(_0x2b3eab[_0x34b880(0x14d)](_0x34b880(0x16d)));return{'method':_0x34b880(0x16f),'url':getServiceRegistryPath(),'body':{'service':_0x2b3eab[_0x34b880(0x14d)](_0x34b880(0x16d)),'found':Boolean(_0x5ad8ff),'version':_0x5ad8ff?.[_0x34b880(0x15a)],'source':_0x5ad8ff?.[_0x34b880(0x150)]},'description':_0x34b880(0x169)};},async 'execute'(_0x3913ef){const _0x596b89=a61_0x2f77d7,_0x44efcb=removeServiceManifest(_0x3913ef['str']('service'));return{'ok':!![],'data':{'registryPath':_0x44efcb[_0x596b89(0x148)],'serviceCount':_0x44efcb['serviceCount'],'service':summarizeService(_0x44efcb[_0x596b89(0x16e)])},'message':_0x596b89(0x137)+_0x44efcb['entry'][_0x596b89(0x153)]+'.'};}},{'service':'service','command':a61_0x2f77d7(0x13b),'description':a61_0x2f77d7(0x141),'risk':a61_0x2f77d7(0x132),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x435abb){const _0x10a4be=a61_0x2f77d7,_0x147f5f=getLocalServiceEntry(_0x435abb[_0x10a4be(0x14d)](_0x10a4be(0x16d)));if(!_0x147f5f)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x435abb[_0x10a4be(0x14d)](_0x10a4be(0x16d))},'message':_0x10a4be(0x14b)+_0x435abb[_0x10a4be(0x14d)](_0x10a4be(0x16d))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x147f5f),'manifest':_0x147f5f['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x147f5f[_0x10a4be(0x16b)])}};}}];
@@ -1 +1 @@
1
- (function(_0x56c56a,_0x4cf880){const _0x5aeab0=a62_0x270a,_0x10a3e9=_0x56c56a();while(!![]){try{const _0x18e54c=parseInt(_0x5aeab0(0x144))/0x1+-parseInt(_0x5aeab0(0x108))/0x2*(parseInt(_0x5aeab0(0x10e))/0x3)+-parseInt(_0x5aeab0(0x143))/0x4*(parseInt(_0x5aeab0(0x138))/0x5)+-parseInt(_0x5aeab0(0x12e))/0x6*(parseInt(_0x5aeab0(0x153))/0x7)+parseInt(_0x5aeab0(0x10c))/0x8*(parseInt(_0x5aeab0(0x115))/0x9)+-parseInt(_0x5aeab0(0x158))/0xa*(parseInt(_0x5aeab0(0x136))/0xb)+parseInt(_0x5aeab0(0x147))/0xc;if(_0x18e54c===_0x4cf880)break;else _0x10a3e9['push'](_0x10a3e9['shift']());}catch(_0x5be897){_0x10a3e9['push'](_0x10a3e9['shift']());}}}(a62_0x5597,0xc4908));import{createHash}from'node:crypto';function a62_0x270a(_0xfde32c,_0x34739e){_0xfde32c=_0xfde32c-0x101;const _0x5597d7=a62_0x5597();let _0x270a1d=_0x5597d7[_0xfde32c];return _0x270a1d;}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(_0x2e4772={}){const _0x3e1cd2=a62_0x270a;return resolve(_0x2e4772[_0x3e1cd2(0x11e)]??homedir(),PRODUCT_CONFIG[_0x3e1cd2(0x140)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x1db4f9={}){const _0xb1f206=a62_0x270a,_0x530bc3=getServiceRegistryPath(_0x1db4f9);if(!existsSync(_0x530bc3))return emptyServiceRegistry();try{const _0x3d2480=readFileSync(_0x530bc3,'utf8');if(!_0x3d2480[_0xb1f206(0x13d)]())return emptyServiceRegistry();const _0x2ee147=JSON['parse'](_0x3d2480);if(_0x2ee147[_0xb1f206(0x101)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0xb1f206(0x118)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x2ee147[_0xb1f206(0x101)]),_0xb1f206(0x157)+_0x530bc3+'.');if(!Array[_0xb1f206(0x137)](_0x2ee147[_0xb1f206(0x12d)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2ee147[_0xb1f206(0x15a)],'services':_0x2ee147['services']};}catch(_0x4a1fcc){if(_0x4a1fcc instanceof Error&&_0x4a1fcc[_0xb1f206(0x14d)]===_0xb1f206(0x10a))throw _0x4a1fcc;throw CliErrors['validation'](_0xb1f206(0x152)+_0x530bc3,_0xb1f206(0x11b));}}export function writeServiceRegistry(_0xeda3f0,_0x535e06={}){const _0x1d53f0=a62_0x270a,_0x11f531=getServiceRegistryPath(_0x535e06),_0x222350=dirname(_0x11f531);!existsSync(_0x222350)&&mkdirSync(_0x222350,{'recursive':!![]});const _0x5098c7=_0x11f531+_0x1d53f0(0x131);try{writeFileSync(_0x5098c7,JSON[_0x1d53f0(0x102)](_0xeda3f0,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x5098c7,_0x11f531);}catch(_0x9ed08a){try{unlinkSync(_0x5098c7);}catch{}if(_0x9ed08a?.[_0x1d53f0(0x125)]===_0x1d53f0(0x132))throw CliErrors['validation'](_0x1d53f0(0x11d)+_0x11f531);throw _0x9ed08a;}return _0x11f531;}export function loadServiceManifestFromFile(_0x23d759){const _0x4dd3d0=a62_0x270a,_0x55fa0f=resolve(_0x23d759);if(!existsSync(_0x55fa0f))throw CliErrors[_0x4dd3d0(0x118)](_0x4dd3d0(0x134)+_0x23d759);let _0xdf1d0c;const _0x509cf7=readFileSync(_0x55fa0f,_0x4dd3d0(0x128));try{_0xdf1d0c=JSON[_0x4dd3d0(0x112)](_0x509cf7);}catch{throw CliErrors[_0x4dd3d0(0x118)](_0x4dd3d0(0x14f)+_0x23d759,_0x4dd3d0(0x156));}const _0x45341f=sha256(_0x509cf7),_0x1bf74c=extractLoadedServiceManifests(_0xdf1d0c,_0x45341f),_0x58b730=aggregateValidationReports(_0x1bf74c),_0x7be125=_0x1bf74c[0x0];return{'filePath':_0x55fa0f,'hash':_0x45341f,'kind':isServiceRegistryLike(_0xdf1d0c)?_0x4dd3d0(0x124):_0x4dd3d0(0x13a),'manifest':_0x7be125?.[_0x4dd3d0(0x13a)]??_0xdf1d0c,'report':_0x58b730,'normalizedManifest':_0x1bf74c[_0x4dd3d0(0x12a)]===0x1?_0x7be125?.[_0x4dd3d0(0x146)]:undefined,'manifests':_0x1bf74c};}export function importServiceManifest(_0x5177ec,_0x1a41e4={}){const _0x5693de=a62_0x270a,_0x5dbed0=loadServiceManifestFromFile(_0x5177ec);if(!_0x5dbed0[_0x5693de(0x109)]['ok'])throw CliErrors[_0x5693de(0x118)](formatValidationFailure(_0x5dbed0[_0x5693de(0x109)]),_0x5693de(0x11a));if(_0x5dbed0[_0x5693de(0x11c)][_0x5693de(0x12a)]===0x0)throw CliErrors[_0x5693de(0x118)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x5693de(0x12b));const _0x35ba95=readServiceRegistry(_0x1a41e4),_0xee6739=(_0x1a41e4[_0x5693de(0x13c)]??(()=>new Date()))()[_0x5693de(0x123)](),_0x35a991=[];let _0x2cb359=0x0,_0x321a57=0x0;for(const _0x256ee0 of _0x5dbed0[_0x5693de(0x11c)]){if(!_0x256ee0[_0x5693de(0x146)])continue;const _0x273d2d=_0x256ee0['normalizedManifest']['service'][_0x5693de(0x125)],_0x25c0e8={'serviceCode':_0x273d2d,'version':_0x256ee0[_0x5693de(0x146)]['version'],'importedAt':_0xee6739,'source':{'type':_0x5693de(0x110),'path':_0x5dbed0[_0x5693de(0x150)],'hash':_0x256ee0[_0x5693de(0x130)]},'manifest':_0x256ee0['manifest'],'normalizedManifest':_0x256ee0[_0x5693de(0x146)]},_0x16d939=_0x35ba95[_0x5693de(0x12d)][_0x5693de(0x12c)](_0x82e106=>_0x82e106[_0x5693de(0x126)]===_0x273d2d);_0x16d939>=0x0?(_0x35ba95[_0x5693de(0x12d)][_0x16d939]=_0x25c0e8,_0x321a57++):(_0x35ba95[_0x5693de(0x12d)][_0x5693de(0x155)](_0x25c0e8),_0x2cb359++),_0x35a991['push'](_0x25c0e8);}_0x35ba95[_0x5693de(0x12d)]['sort']((_0x3dd86b,_0x4bbb3c)=>_0x3dd86b[_0x5693de(0x126)][_0x5693de(0x135)](_0x4bbb3c['serviceCode'])),_0x35ba95[_0x5693de(0x15a)]=_0xee6739;const _0x163b7a=writeServiceRegistry(_0x35ba95,_0x1a41e4);return{'registryPath':_0x163b7a,'entry':_0x35a991[0x0],'replaced':_0x35a991[_0x5693de(0x12a)]===0x1?_0x321a57===0x1:_0x321a57>0x0,'entries':_0x35a991,'imported':_0x2cb359,'updated':_0x321a57,'serviceCount':_0x35ba95[_0x5693de(0x12d)]['length']};}export function exportServiceManifest(_0x45669e,_0x36e642,_0x59906d={}){const _0x42eb85=a62_0x270a,_0x11e4c0=getServiceRegistryPath(_0x59906d),_0x42d8c3=getLocalServiceEntry(_0x45669e,_0x59906d);if(!_0x42d8c3)throw CliErrors['validation'](_0x42eb85(0x151)+_0x45669e,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x4a9734=resolve(_0x36e642),_0x27e475=dirname(_0x4a9734);return!existsSync(_0x27e475)&&mkdirSync(_0x27e475,{'recursive':!![]}),writeFileSync(_0x4a9734,JSON[_0x42eb85(0x102)](_0x42d8c3[_0x42eb85(0x13a)],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x11e4c0,'filePath':_0x4a9734,'entry':_0x42d8c3};}export function removeServiceManifest(_0x129e13,_0x1fca5d={}){const _0x3d0ee3=a62_0x270a,_0x5e4f25=readServiceRegistry(_0x1fca5d),_0x3e19c7=_0x129e13['trim'](),_0xa82222=_0x5e4f25[_0x3d0ee3(0x12d)][_0x3d0ee3(0x12c)](_0x361535=>_0x361535[_0x3d0ee3(0x126)]===_0x3e19c7);if(_0xa82222<0x0)throw CliErrors[_0x3d0ee3(0x118)]('Local\x20service\x20not\x20found:\x20'+_0x3e19c7,_0x3d0ee3(0x11f));const [_0x2ac06]=_0x5e4f25[_0x3d0ee3(0x12d)][_0x3d0ee3(0x104)](_0xa82222,0x1),_0x59f294=(_0x1fca5d[_0x3d0ee3(0x13c)]??(()=>new Date()))()[_0x3d0ee3(0x123)]();_0x5e4f25['updatedAt']=_0x59f294;const _0x45651a=writeServiceRegistry(_0x5e4f25,_0x1fca5d);return{'registryPath':_0x45651a,'entry':_0x2ac06,'serviceCount':_0x5e4f25[_0x3d0ee3(0x12d)][_0x3d0ee3(0x12a)]};}export function listLocalServices(_0x59c36f={}){const _0x21e750=a62_0x270a;return readServiceRegistry(_0x59c36f)[_0x21e750(0x12d)];}export function getLocalServiceEntry(_0x18eb9c,_0x3e9aee={}){const _0x38937f=a62_0x270a;return readServiceRegistry(_0x3e9aee)[_0x38937f(0x12d)][_0x38937f(0x139)](_0x4a0293=>_0x4a0293[_0x38937f(0x126)]===_0x18eb9c['trim']());}export function listLocalServiceTrees(_0x138ed8={}){const _0x1131db=a62_0x270a;return readServiceRegistry(_0x138ed8)[_0x1131db(0x12d)][_0x1131db(0x145)](_0x1c5322=>_0x1c5322[_0x1131db(0x146)]);}export function inspectServiceRegistry(_0x526711={}){const _0x48ecb3=a62_0x270a,_0x362706=getServiceRegistryPath(_0x526711);if(!existsSync(_0x362706))return emptyServiceRegistryInspection(_0x362706,_0x48ecb3(0x10b),![]);try{const _0x23e2b4=readFileSync(_0x362706,_0x48ecb3(0x128));if(!_0x23e2b4[_0x48ecb3(0x13d)]())return emptyServiceRegistryInspection(_0x362706,_0x48ecb3(0x113),!![]);const _0x2efde5=JSON[_0x48ecb3(0x112)](_0x23e2b4);if(_0x2efde5[_0x48ecb3(0x101)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x362706,_0x48ecb3(0x141),!![]),'schemaVersion':_0x2efde5['schemaVersion'],'message':_0x48ecb3(0x119)+String(_0x2efde5[_0x48ecb3(0x101)])};if(!Array[_0x48ecb3(0x137)](_0x2efde5[_0x48ecb3(0x12d)]))return{...emptyServiceRegistryInspection(_0x362706,_0x48ecb3(0x141),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2efde5[_0x48ecb3(0x15a)],'message':_0x48ecb3(0x122)};const _0x38d46f=_0x2efde5[_0x48ecb3(0x12d)]['map'](summarizeLocalServiceEntry);return{'registryPath':_0x362706,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2efde5[_0x48ecb3(0x15a)],'serviceCount':_0x38d46f[_0x48ecb3(0x12a)],'commandCount':_0x38d46f[_0x48ecb3(0x14a)]((_0x42a5c8,_0x55ad44)=>_0x42a5c8+_0x55ad44[_0x48ecb3(0x14e)],0x0),'services':_0x38d46f};}catch(_0x1c64d1){return{...emptyServiceRegistryInspection(_0x362706,_0x48ecb3(0x141),!![]),'message':_0x1c64d1 instanceof Error?_0x1c64d1[_0x48ecb3(0x117)]:String(_0x1c64d1)};}}function a62_0x5597(){const _0x3829ce=['registry','code','serviceCode','command','utf8','importedAt','length','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','findIndex','services','6URSpRP','Service\x20manifest\x20validation\x20failed:\x0a','sourceHash','.tmp','ENOENT','$.services[','Service\x20manifest\x20file\x20not\x20found:\x20','localeCompare','3361391pSUVDK','isArray','10WIqzso','find','manifest','description','now','trim','target','warnings','homeDirName','invalid','version','2444460SGsHus','918931TZrhui','map','normalizedManifest','15970488XBHSaA','flatMap','join','reduce','slice','kind','name','commandCount','Invalid\x20service\x20manifest\x20JSON:\x20','filePath','Local\x20service\x20not\x20found:\x20','Invalid\x20service\x20registry\x20JSON:\x20','78967gktsxs','startsWith','push','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','Remove\x20or\x20migrate\x20','20kXAoeX','registryIndex','updatedAt','schemaVersion','stringify','cliPath','splice','service','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','errors','46zcRVrr','report','CliError','missing','16YIfbms','].manifest','20442JzwuNc','path','file','source','parse','empty','digest','2505231osAJuY','update','message','validation','Unsupported\x20schemaVersion:\x20','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','manifests','Cannot\x20write\x20service\x20registry:\x20','homeDir','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','bff\x20target\x20requires\x20functionName.','hex','services\x20must\x20be\x20an\x20array','toISOString'];a62_0x5597=function(){return _0x3829ce;};return a62_0x5597();}export function formatValidationFailure(_0x521cb5){const _0x491586=a62_0x270a,_0x425022=_0x521cb5[_0x491586(0x107)][_0x491586(0x145)](_0x565b6e=>_0x565b6e[_0x491586(0x10f)]+':\x20'+_0x565b6e[_0x491586(0x117)]);return _0x491586(0x12f)+_0x425022[_0x491586(0x149)]('\x0a');}function extractLoadedServiceManifests(_0x38e325,_0x5d71e5){const _0x1e5e88=a62_0x270a;if(!isServiceRegistryLike(_0x38e325)){const _0x57390f=_0x38e325,{manifest:_0x2089de,errors:_0x418e65}=adaptServiceTreeManifestForLegacyFramework(_0x57390f),_0x43538f=validateServiceTreeManifest(_0x2089de),_0x46d36b=mergeValidationErrors(_0x43538f,_0x418e65);return[{'manifest':_0x57390f,'report':_0x46d36b,'normalizedManifest':_0x46d36b['ok']?normalizeServiceTreeManifest(_0x2089de):undefined,'sourceHash':_0x5d71e5}];}return _0x38e325[_0x1e5e88(0x12d)][_0x1e5e88(0x145)]((_0x4d7aef,_0x330e35)=>{const _0x45e10a=_0x1e5e88,_0xe70bca=isObjectRecord(_0x4d7aef)?_0x4d7aef[_0x45e10a(0x13a)]:undefined,{manifest:_0x1a6cd2,errors:_0x397bfe}=adaptServiceTreeManifestForLegacyFramework(_0xe70bca),_0x68f2e4=validateServiceTreeManifest(_0x1a6cd2),_0x360f6f=mergeValidationErrors(_0x68f2e4,_0x397bfe),_0x4684d2=isObjectRecord(_0x4d7aef)&&typeof _0x4d7aef['serviceCode']==='string'?_0x4d7aef[_0x45e10a(0x126)]:undefined;return{'manifest':_0xe70bca,'report':_0x360f6f,'normalizedManifest':_0x360f6f['ok']?normalizeServiceTreeManifest(_0x1a6cd2):undefined,'sourceHash':sha256(JSON['stringify'](_0xe70bca,null,0x2)+'\x0a'),'registryIndex':_0x330e35,'registryServiceCode':_0x4684d2};});}function mergeValidationErrors(_0x40893e,_0x413f28){const _0x5d6e81=a62_0x270a,_0x5147c3=_0x40893e[_0x5d6e81(0x107)][_0x5d6e81(0x145)](_0x388fbf=>_0x388fbf[_0x5d6e81(0x117)]===_0x5d6e81(0x106)?{..._0x388fbf,'message':_0x5d6e81(0x120)}:_0x388fbf),_0x2c2606=[..._0x413f28,..._0x5147c3];return{'ok':_0x2c2606['length']===0x0,'errors':_0x2c2606,'warnings':_0x40893e['warnings']};}function aggregateValidationReports(_0x2f3599){const _0x4b0829=a62_0x270a,_0x5419f8=_0x2f3599['flatMap'](_0x5c8294=>_0x5c8294[_0x4b0829(0x159)]===undefined?_0x5c8294['report'][_0x4b0829(0x107)]:_0x5c8294['report'][_0x4b0829(0x107)][_0x4b0829(0x145)](_0x43fbc6=>({..._0x43fbc6,'path':prefixRegistryIssuePath(_0x5c8294[_0x4b0829(0x159)],_0x43fbc6['path'])}))),_0x14283a=_0x2f3599[_0x4b0829(0x148)](_0x29014d=>_0x29014d[_0x4b0829(0x159)]===undefined?_0x29014d[_0x4b0829(0x109)][_0x4b0829(0x13f)]:_0x29014d[_0x4b0829(0x109)][_0x4b0829(0x13f)][_0x4b0829(0x145)](_0x12a88c=>({..._0x12a88c,'path':prefixRegistryIssuePath(_0x29014d[_0x4b0829(0x159)],_0x12a88c[_0x4b0829(0x10f)])})));return{'ok':_0x5419f8['length']===0x0,'errors':_0x5419f8,'warnings':_0x14283a};}function prefixRegistryIssuePath(_0x238ea9,_0x4a822){const _0x3d29c7=a62_0x270a;if(_0x4a822==='$')return'$.services['+_0x238ea9+_0x3d29c7(0x10d);if(_0x4a822[_0x3d29c7(0x154)]('$.'))return _0x3d29c7(0x133)+_0x238ea9+_0x3d29c7(0x10d)+_0x4a822[_0x3d29c7(0x14b)](0x1);if(_0x4a822[_0x3d29c7(0x154)]('$['))return _0x3d29c7(0x133)+_0x238ea9+_0x3d29c7(0x10d)+_0x4a822[_0x3d29c7(0x14b)](0x1);return _0x3d29c7(0x133)+_0x238ea9+'].manifest.'+_0x4a822;}function isServiceRegistryLike(_0x2c8813){const _0x121e0a=a62_0x270a;return isObjectRecord(_0x2c8813)&&_0x2c8813['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x121e0a(0x137)](_0x2c8813[_0x121e0a(0x12d)]);}function isObjectRecord(_0x42310f){const _0x24ab84=a62_0x270a;return Boolean(_0x42310f)&&typeof _0x42310f==='object'&&!Array[_0x24ab84(0x137)](_0x42310f);}function emptyServiceRegistryInspection(_0x430198,_0x322678,_0x57eb53){return{'registryPath':_0x430198,'exists':_0x57eb53,'status':_0x322678,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x666ff9){const _0x11fe1e=a62_0x270a,_0x3a06a3=_0x666ff9[_0x11fe1e(0x146)],_0x268c3e=_0x3a06a3['commands']['map'](_0x2e0d56=>({'path':_0x2e0d56[_0x11fe1e(0x103)],'description':_0x2e0d56[_0x11fe1e(0x13b)],'risk':_0x2e0d56['risk'],'targetKind':_0x2e0d56[_0x11fe1e(0x13e)][_0x11fe1e(0x14c)],'targetCommand':_0x2e0d56[_0x11fe1e(0x13e)][_0x11fe1e(0x127)]}));return{'serviceCode':_0x666ff9['serviceCode'],'name':_0x3a06a3[_0x11fe1e(0x105)][_0x11fe1e(0x14d)],'description':_0x3a06a3[_0x11fe1e(0x105)][_0x11fe1e(0x13b)],'version':_0x666ff9[_0x11fe1e(0x142)],'importedAt':_0x666ff9[_0x11fe1e(0x129)],'source':_0x666ff9[_0x11fe1e(0x111)],'commandCount':_0x268c3e['length'],'commands':_0x268c3e};}function sha256(_0x408c46){const _0x193890=a62_0x270a;return createHash('sha256')[_0x193890(0x116)](_0x408c46)[_0x193890(0x114)](_0x193890(0x121));}
1
+ (function(_0x1648d7,_0x22fce9){const _0x130696=a62_0xd553,_0x96e728=_0x1648d7();while(!![]){try{const _0x133311=-parseInt(_0x130696(0x1c4))/0x1+parseInt(_0x130696(0x1ac))/0x2+parseInt(_0x130696(0x1f7))/0x3+-parseInt(_0x130696(0x1ea))/0x4+parseInt(_0x130696(0x1e7))/0x5+parseInt(_0x130696(0x1bb))/0x6+parseInt(_0x130696(0x1ba))/0x7*(parseInt(_0x130696(0x1be))/0x8);if(_0x133311===_0x22fce9)break;else _0x96e728['push'](_0x96e728['shift']());}catch(_0xdf5d29){_0x96e728['push'](_0x96e728['shift']());}}}(a62_0xa158,0xd42ff));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';function a62_0xa158(){const _0x45efa5=['Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','string','length','sha256','slice','description','manifest','map','Unsupported\x20schemaVersion:\x20','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','7izLqDH','2860956FIRxUy','now','bff\x20target\x20requires\x20functionName.','557880MoRrsi','localeCompare','push','join','code','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','435139ueXrPv','.tmp','errors','updatedAt','command','filePath','file','Service\x20manifest\x20validation\x20failed:\x0a','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','path','schemaVersion','homeDir','report','warnings','registryIndex','parse','Cannot\x20write\x20service\x20registry:\x20','commandCount','$.services[','Service\x20manifest\x20file\x20not\x20found:\x20','services\x20must\x20be\x20an\x20array','findIndex','ENOENT','serviceCode','CliError','isArray','toISOString','sort','validation','empty','].manifest','Local\x20service\x20not\x20found:\x20','version','digest','startsWith','6341080OYLCFz','splice','services','4876796BQMBVb','cliPath','kind','normalizedManifest','registry','utf8','sourceHash','invalid','Remove\x20or\x20migrate\x20','object','message','source','risk','1532964vMyydC','service','manifests','target','].manifest.','missing','395384QeYQyX','trim','hex','stringify'];a62_0xa158=function(){return _0x45efa5;};return a62_0xa158();}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(_0x4a98c9={}){const _0x526b43=a62_0xd553;return resolve(_0x4a98c9[_0x526b43(0x1cf)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x596069={}){const _0x5dab32=a62_0xd553,_0x5ba2fc=getServiceRegistryPath(_0x596069);if(!existsSync(_0x5ba2fc))return emptyServiceRegistry();try{const _0x48573b=readFileSync(_0x5ba2fc,'utf8');if(!_0x48573b[_0x5dab32(0x1ad)]())return emptyServiceRegistry();const _0xcc6acd=JSON[_0x5dab32(0x1d3)](_0x48573b);if(_0xcc6acd['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x5dab32(0x1e0)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0xcc6acd[_0x5dab32(0x1ce)]),_0x5dab32(0x1f2)+_0x5ba2fc+'.');if(!Array['isArray'](_0xcc6acd['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xcc6acd[_0x5dab32(0x1c7)],'services':_0xcc6acd[_0x5dab32(0x1e9)]};}catch(_0x4c3e5c){if(_0x4c3e5c instanceof Error&&_0x4c3e5c['name']===_0x5dab32(0x1dc))throw _0x4c3e5c;throw CliErrors[_0x5dab32(0x1e0)]('Invalid\x20service\x20registry\x20JSON:\x20'+_0x5ba2fc,_0x5dab32(0x1b9));}}export function writeServiceRegistry(_0x45b03c,_0x3da45b={}){const _0x1f68a8=a62_0xd553,_0x44f392=getServiceRegistryPath(_0x3da45b),_0x4b1282=dirname(_0x44f392);!existsSync(_0x4b1282)&&mkdirSync(_0x4b1282,{'recursive':!![]});const _0x3003d9=_0x44f392+_0x1f68a8(0x1c5);try{writeFileSync(_0x3003d9,JSON[_0x1f68a8(0x1af)](_0x45b03c,null,0x2)+'\x0a',{'encoding':_0x1f68a8(0x1ef),'mode':0x180}),renameSync(_0x3003d9,_0x44f392);}catch(_0x48ad84){try{unlinkSync(_0x3003d9);}catch{}if(_0x48ad84?.[_0x1f68a8(0x1c2)]===_0x1f68a8(0x1da))throw CliErrors[_0x1f68a8(0x1e0)](_0x1f68a8(0x1d4)+_0x44f392);throw _0x48ad84;}return _0x44f392;}export function loadServiceManifestFromFile(_0x577e7d){const _0x155640=a62_0xd553,_0x1bd149=resolve(_0x577e7d);if(!existsSync(_0x1bd149))throw CliErrors[_0x155640(0x1e0)](_0x155640(0x1d7)+_0x577e7d);let _0x454c81;const _0x1b7d25=readFileSync(_0x1bd149,'utf8');try{_0x454c81=JSON[_0x155640(0x1d3)](_0x1b7d25);}catch{throw CliErrors['validation']('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x577e7d,_0x155640(0x1b0));}const _0x3c94bc=sha256(_0x1b7d25),_0x504e88=extractLoadedServiceManifests(_0x454c81,_0x3c94bc),_0x4e3452=aggregateValidationReports(_0x504e88),_0x434b43=_0x504e88[0x0];return{'filePath':_0x1bd149,'hash':_0x3c94bc,'kind':isServiceRegistryLike(_0x454c81)?_0x155640(0x1ee):_0x155640(0x1b6),'manifest':_0x434b43?.['manifest']??_0x454c81,'report':_0x4e3452,'normalizedManifest':_0x504e88['length']===0x1?_0x434b43?.[_0x155640(0x1ed)]:undefined,'manifests':_0x504e88};}export function importServiceManifest(_0x5d3d15,_0x28a6d4={}){const _0x11f61e=a62_0xd553,_0x416738=loadServiceManifestFromFile(_0x5d3d15);if(!_0x416738['report']['ok'])throw CliErrors['validation'](formatValidationFailure(_0x416738[_0x11f61e(0x1d0)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x416738[_0x11f61e(0x1a8)]['length']===0x0)throw CliErrors[_0x11f61e(0x1e0)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x11f61e(0x1c3));const _0x40f554=readServiceRegistry(_0x28a6d4),_0x3be825=(_0x28a6d4[_0x11f61e(0x1bc)]??(()=>new Date()))()[_0x11f61e(0x1de)](),_0x1e93db=[];let _0x29b0ed=0x0,_0x599c19=0x0;for(const _0x126f1f of _0x416738[_0x11f61e(0x1a8)]){if(!_0x126f1f['normalizedManifest'])continue;const _0x3db3fd=_0x126f1f[_0x11f61e(0x1ed)]['service']['code'],_0x5efd65={'serviceCode':_0x3db3fd,'version':_0x126f1f[_0x11f61e(0x1ed)][_0x11f61e(0x1e4)],'importedAt':_0x3be825,'source':{'type':_0x11f61e(0x1ca),'path':_0x416738[_0x11f61e(0x1c9)],'hash':_0x126f1f[_0x11f61e(0x1f0)]},'manifest':_0x126f1f['manifest'],'normalizedManifest':_0x126f1f[_0x11f61e(0x1ed)]},_0x45865f=_0x40f554[_0x11f61e(0x1e9)][_0x11f61e(0x1d9)](_0x4393f=>_0x4393f['serviceCode']===_0x3db3fd);_0x45865f>=0x0?(_0x40f554['services'][_0x45865f]=_0x5efd65,_0x599c19++):(_0x40f554[_0x11f61e(0x1e9)][_0x11f61e(0x1c0)](_0x5efd65),_0x29b0ed++),_0x1e93db[_0x11f61e(0x1c0)](_0x5efd65);}_0x40f554['services'][_0x11f61e(0x1df)]((_0x2c0382,_0x171c7c)=>_0x2c0382[_0x11f61e(0x1db)][_0x11f61e(0x1bf)](_0x171c7c['serviceCode'])),_0x40f554['updatedAt']=_0x3be825;const _0x188168=writeServiceRegistry(_0x40f554,_0x28a6d4);return{'registryPath':_0x188168,'entry':_0x1e93db[0x0],'replaced':_0x1e93db['length']===0x1?_0x599c19===0x1:_0x599c19>0x0,'entries':_0x1e93db,'imported':_0x29b0ed,'updated':_0x599c19,'serviceCount':_0x40f554['services']['length']};}function a62_0xd553(_0x491906,_0xa38c56){_0x491906=_0x491906-0x1a8;const _0xa15834=a62_0xa158();let _0xd553eb=_0xa15834[_0x491906];return _0xd553eb;}export function exportServiceManifest(_0xd0f10a,_0x5bcead,_0xdc1d86={}){const _0x190de1=a62_0xd553,_0x136946=getServiceRegistryPath(_0xdc1d86),_0x584284=getLocalServiceEntry(_0xd0f10a,_0xdc1d86);if(!_0x584284)throw CliErrors[_0x190de1(0x1e0)](_0x190de1(0x1e3)+_0xd0f10a,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x5cda01=resolve(_0x5bcead),_0x5c50ce=dirname(_0x5cda01);return!existsSync(_0x5c50ce)&&mkdirSync(_0x5c50ce,{'recursive':!![]}),writeFileSync(_0x5cda01,JSON[_0x190de1(0x1af)](_0x584284[_0x190de1(0x1b6)],null,0x2)+'\x0a',{'encoding':_0x190de1(0x1ef),'mode':0x180}),{'registryPath':_0x136946,'filePath':_0x5cda01,'entry':_0x584284};}export function removeServiceManifest(_0x3b533d,_0x227f58={}){const _0x3a4fb2=a62_0xd553,_0x125dd0=readServiceRegistry(_0x227f58),_0x43ad33=_0x3b533d[_0x3a4fb2(0x1ad)](),_0x5c1301=_0x125dd0['services']['findIndex'](_0x189773=>_0x189773['serviceCode']===_0x43ad33);if(_0x5c1301<0x0)throw CliErrors[_0x3a4fb2(0x1e0)](_0x3a4fb2(0x1e3)+_0x43ad33,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x3d8197]=_0x125dd0[_0x3a4fb2(0x1e9)][_0x3a4fb2(0x1e8)](_0x5c1301,0x1),_0x1811e3=(_0x227f58['now']??(()=>new Date()))()[_0x3a4fb2(0x1de)]();_0x125dd0[_0x3a4fb2(0x1c7)]=_0x1811e3;const _0x533baf=writeServiceRegistry(_0x125dd0,_0x227f58);return{'registryPath':_0x533baf,'entry':_0x3d8197,'serviceCount':_0x125dd0['services']['length']};}export function listLocalServices(_0x4861ba={}){const _0x2b8425=a62_0xd553;return readServiceRegistry(_0x4861ba)[_0x2b8425(0x1e9)];}export function getLocalServiceEntry(_0x5a7f2a,_0x11d5f9={}){const _0x13b8ea=a62_0xd553;return readServiceRegistry(_0x11d5f9)[_0x13b8ea(0x1e9)]['find'](_0x289b03=>_0x289b03[_0x13b8ea(0x1db)]===_0x5a7f2a['trim']());}export function listLocalServiceTrees(_0x20aecf={}){const _0x27f64a=a62_0xd553;return readServiceRegistry(_0x20aecf)[_0x27f64a(0x1e9)][_0x27f64a(0x1b7)](_0x1f6fae=>_0x1f6fae[_0x27f64a(0x1ed)]);}export function inspectServiceRegistry(_0x222ee4={}){const _0x6addd=a62_0xd553,_0x44424a=getServiceRegistryPath(_0x222ee4);if(!existsSync(_0x44424a))return emptyServiceRegistryInspection(_0x44424a,_0x6addd(0x1ab),![]);try{const _0x345817=readFileSync(_0x44424a,_0x6addd(0x1ef));if(!_0x345817[_0x6addd(0x1ad)]())return emptyServiceRegistryInspection(_0x44424a,_0x6addd(0x1e1),!![]);const _0x3b3575=JSON[_0x6addd(0x1d3)](_0x345817);if(_0x3b3575[_0x6addd(0x1ce)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x44424a,'invalid',!![]),'schemaVersion':_0x3b3575[_0x6addd(0x1ce)],'message':_0x6addd(0x1b8)+String(_0x3b3575[_0x6addd(0x1ce)])};if(!Array['isArray'](_0x3b3575[_0x6addd(0x1e9)]))return{...emptyServiceRegistryInspection(_0x44424a,_0x6addd(0x1f1),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3b3575[_0x6addd(0x1c7)],'message':_0x6addd(0x1d8)};const _0xf0faa=_0x3b3575[_0x6addd(0x1e9)]['map'](summarizeLocalServiceEntry);return{'registryPath':_0x44424a,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3b3575[_0x6addd(0x1c7)],'serviceCount':_0xf0faa[_0x6addd(0x1b2)],'commandCount':_0xf0faa['reduce']((_0x44b3eb,_0x5ee901)=>_0x44b3eb+_0x5ee901[_0x6addd(0x1d5)],0x0),'services':_0xf0faa};}catch(_0x1fa81b){return{...emptyServiceRegistryInspection(_0x44424a,_0x6addd(0x1f1),!![]),'message':_0x1fa81b instanceof Error?_0x1fa81b[_0x6addd(0x1f4)]:String(_0x1fa81b)};}}export function formatValidationFailure(_0x3fa6c7){const _0xa21ff4=a62_0xd553,_0x23582f=_0x3fa6c7[_0xa21ff4(0x1c6)][_0xa21ff4(0x1b7)](_0x33b3ec=>_0x33b3ec[_0xa21ff4(0x1cd)]+':\x20'+_0x33b3ec[_0xa21ff4(0x1f4)]);return _0xa21ff4(0x1cb)+_0x23582f[_0xa21ff4(0x1c1)]('\x0a');}function extractLoadedServiceManifests(_0x400bdb,_0x2886b0){const _0x5c671b=a62_0xd553;if(!isServiceRegistryLike(_0x400bdb)){const _0x4f4b14=_0x400bdb,{manifest:_0x2013ff,errors:_0x125adc}=adaptServiceTreeManifestForLegacyFramework(_0x4f4b14),_0x19e023=validateServiceTreeManifest(_0x2013ff),_0x24aa45=mergeValidationErrors(_0x19e023,_0x125adc);return[{'manifest':_0x4f4b14,'report':_0x24aa45,'normalizedManifest':_0x24aa45['ok']?normalizeServiceTreeManifest(_0x2013ff):undefined,'sourceHash':_0x2886b0}];}return _0x400bdb['services'][_0x5c671b(0x1b7)]((_0x10cb4b,_0x1faf2a)=>{const _0x6a0891=_0x5c671b,_0x1c1bdc=isObjectRecord(_0x10cb4b)?_0x10cb4b[_0x6a0891(0x1b6)]:undefined,{manifest:_0x5cf5f4,errors:_0x728d60}=adaptServiceTreeManifestForLegacyFramework(_0x1c1bdc),_0x3ebe68=validateServiceTreeManifest(_0x5cf5f4),_0x738ec9=mergeValidationErrors(_0x3ebe68,_0x728d60),_0x3ef261=isObjectRecord(_0x10cb4b)&&typeof _0x10cb4b[_0x6a0891(0x1db)]===_0x6a0891(0x1b1)?_0x10cb4b[_0x6a0891(0x1db)]:undefined;return{'manifest':_0x1c1bdc,'report':_0x738ec9,'normalizedManifest':_0x738ec9['ok']?normalizeServiceTreeManifest(_0x5cf5f4):undefined,'sourceHash':sha256(JSON[_0x6a0891(0x1af)](_0x1c1bdc,null,0x2)+'\x0a'),'registryIndex':_0x1faf2a,'registryServiceCode':_0x3ef261};});}function mergeValidationErrors(_0x3dddbf,_0x183280){const _0x49adf5=a62_0xd553,_0x236304=_0x3dddbf[_0x49adf5(0x1c6)]['map'](_0x36d72d=>_0x36d72d['message']===_0x49adf5(0x1cc)?{..._0x36d72d,'message':_0x49adf5(0x1bd)}:_0x36d72d),_0x757f3a=[..._0x183280,..._0x236304];return{'ok':_0x757f3a[_0x49adf5(0x1b2)]===0x0,'errors':_0x757f3a,'warnings':_0x3dddbf[_0x49adf5(0x1d1)]};}function aggregateValidationReports(_0x37e12f){const _0x42f68d=a62_0xd553,_0x3242be=_0x37e12f['flatMap'](_0x31aaf4=>_0x31aaf4[_0x42f68d(0x1d2)]===undefined?_0x31aaf4[_0x42f68d(0x1d0)][_0x42f68d(0x1c6)]:_0x31aaf4[_0x42f68d(0x1d0)][_0x42f68d(0x1c6)]['map'](_0x1af7ae=>({..._0x1af7ae,'path':prefixRegistryIssuePath(_0x31aaf4[_0x42f68d(0x1d2)],_0x1af7ae[_0x42f68d(0x1cd)])}))),_0x3b55a8=_0x37e12f['flatMap'](_0x4a378f=>_0x4a378f[_0x42f68d(0x1d2)]===undefined?_0x4a378f['report'][_0x42f68d(0x1d1)]:_0x4a378f[_0x42f68d(0x1d0)]['warnings']['map'](_0x3ce263=>({..._0x3ce263,'path':prefixRegistryIssuePath(_0x4a378f[_0x42f68d(0x1d2)],_0x3ce263['path'])})));return{'ok':_0x3242be[_0x42f68d(0x1b2)]===0x0,'errors':_0x3242be,'warnings':_0x3b55a8};}function prefixRegistryIssuePath(_0x334411,_0x5defb7){const _0xab639d=a62_0xd553;if(_0x5defb7==='$')return'$.services['+_0x334411+'].manifest';if(_0x5defb7[_0xab639d(0x1e6)]('$.'))return _0xab639d(0x1d6)+_0x334411+_0xab639d(0x1e2)+_0x5defb7[_0xab639d(0x1b4)](0x1);if(_0x5defb7[_0xab639d(0x1e6)]('$['))return _0xab639d(0x1d6)+_0x334411+_0xab639d(0x1e2)+_0x5defb7[_0xab639d(0x1b4)](0x1);return'$.services['+_0x334411+_0xab639d(0x1aa)+_0x5defb7;}function isServiceRegistryLike(_0x1114a3){const _0x37bbec=a62_0xd553;return isObjectRecord(_0x1114a3)&&_0x1114a3[_0x37bbec(0x1ce)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x1114a3[_0x37bbec(0x1e9)]);}function isObjectRecord(_0x6c0768){const _0x1ab427=a62_0xd553;return Boolean(_0x6c0768)&&typeof _0x6c0768===_0x1ab427(0x1f3)&&!Array[_0x1ab427(0x1dd)](_0x6c0768);}function emptyServiceRegistryInspection(_0x386593,_0x2a1284,_0x19b519){return{'registryPath':_0x386593,'exists':_0x19b519,'status':_0x2a1284,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x3991ff){const _0x51f099=a62_0xd553,_0x5d0cd6=_0x3991ff[_0x51f099(0x1ed)],_0x184e48=_0x5d0cd6['commands']['map'](_0x41d5f2=>({'path':_0x41d5f2[_0x51f099(0x1eb)],'description':_0x41d5f2['description'],'risk':_0x41d5f2[_0x51f099(0x1f6)],'targetKind':_0x41d5f2[_0x51f099(0x1a9)][_0x51f099(0x1ec)],'targetCommand':_0x41d5f2[_0x51f099(0x1a9)][_0x51f099(0x1c8)]}));return{'serviceCode':_0x3991ff[_0x51f099(0x1db)],'name':_0x5d0cd6[_0x51f099(0x1f8)]['name'],'description':_0x5d0cd6[_0x51f099(0x1f8)][_0x51f099(0x1b5)],'version':_0x3991ff['version'],'importedAt':_0x3991ff['importedAt'],'source':_0x3991ff[_0x51f099(0x1f5)],'commandCount':_0x184e48[_0x51f099(0x1b2)],'commands':_0x184e48};}function sha256(_0x1f58e3){const _0xe44c60=a62_0xd553;return createHash(_0xe44c60(0x1b3))['update'](_0x1f58e3)[_0xe44c60(0x1e5)](_0xe44c60(0x1ae));}
@@ -1 +1 @@
1
- function a63_0x4ad9(_0x13296e,_0x20ea93){_0x13296e=_0x13296e-0x1be;const _0x17a593=a63_0x17a5();let _0x4ad96f=_0x17a593[_0x13296e];return _0x4ad96f;}const a63_0x1f99e3=a63_0x4ad9;(function(_0xf7b3da,_0x1b6c4f){const _0x10c0d8=a63_0x4ad9,_0x51daf6=_0xf7b3da();while(!![]){try{const _0x513d74=-parseInt(_0x10c0d8(0x1cc))/0x1+-parseInt(_0x10c0d8(0x1d3))/0x2*(parseInt(_0x10c0d8(0x1e1))/0x3)+-parseInt(_0x10c0d8(0x1df))/0x4+parseInt(_0x10c0d8(0x1dc))/0x5*(-parseInt(_0x10c0d8(0x1ce))/0x6)+parseInt(_0x10c0d8(0x1da))/0x7*(-parseInt(_0x10c0d8(0x1be))/0x8)+-parseInt(_0x10c0d8(0x1cb))/0x9*(parseInt(_0x10c0d8(0x1d6))/0xa)+parseInt(_0x10c0d8(0x1c1))/0xb;if(_0x513d74===_0x1b6c4f)break;else _0x51daf6['push'](_0x51daf6['shift']());}catch(_0x34988c){_0x51daf6['push'](_0x51daf6['shift']());}}}(a63_0x17a5,0xedb87));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_0x17a5(){const _0x456c4f=['target','4518DQXvSe','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','Refusing\x20to\x20overwrite\x20symlink:\x20','skillName','validation','2ULDOwo','str','skillDir','1586540xKfFWQ','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','files','trim','112UCbtBQ','content','9965jBvwYK','name','isSymbolicLink','6177644SwbWMn','map','3754299RHLVil','type','341128nBqJRo','path','create','80518185wyioKY','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','isDirectory','Created\x20local\x20Skill\x20draft\x20','bool','force','Skill\x20directory\x20already\x20exists:\x20','skill','rendered','创建本地自包含的运行态\x20Skill\x20草稿','18JdgrwN','1049995VQhzSW'];a63_0x17a5=function(){return _0x456c4f;};return a63_0x17a5();}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_0x1f99e3(0x1c8),'command':a63_0x1f99e3(0x1c0),'description':a63_0x1f99e3(0x1ca),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x196082){const _0x25a8c2=a63_0x1f99e3,_0x417fac=buildSkillCreatePlan(_0x196082[_0x25a8c2(0x1d4)]('name'),_0x196082['str'](_0x25a8c2(0x1e2)),_0x196082[_0x25a8c2(0x1d4)](_0x25a8c2(0x1cd)));return{'method':'WRITE','url':_0x417fac[_0x25a8c2(0x1d5)],'body':{'skillName':_0x417fac[_0x25a8c2(0x1c9)][_0x25a8c2(0x1d1)],'type':_0x417fac['rendered']['type'],'selfContained':!![],'files':_0x417fac['rendered'][_0x25a8c2(0x1d8)][_0x25a8c2(0x1e0)](_0x139610=>_0x139610['path'])},'description':_0x25a8c2(0x1d7)};},async 'execute'(_0x3a601d){const _0x648686=a63_0x1f99e3,_0x57d975=buildSkillCreatePlan(_0x3a601d[_0x648686(0x1d4)](_0x648686(0x1dd)),_0x3a601d[_0x648686(0x1d4)](_0x648686(0x1e2)),_0x3a601d[_0x648686(0x1d4)]('target'));return writeSkillDraft(_0x57d975,_0x3a601d[_0x648686(0x1c5)](_0x648686(0x1c6))),{'ok':!![],'data':{'skillName':_0x57d975['rendered'][_0x648686(0x1d1)],'type':_0x57d975[_0x648686(0x1c9)][_0x648686(0x1e2)],'dir':_0x57d975[_0x648686(0x1d5)],'files':_0x57d975[_0x648686(0x1c9)]['files'][_0x648686(0x1e0)](_0x7a9388=>_0x7a9388[_0x648686(0x1bf)])},'message':_0x648686(0x1c4)+_0x57d975[_0x648686(0x1c9)][_0x648686(0x1d1)]};}};function buildSkillCreatePlan(_0x39337a,_0x2926d2,_0x30579f){const _0x49b8be=a63_0x1f99e3,_0x1ddc3b=_0x2926d2[_0x49b8be(0x1d9)](),_0xb4314a=renderSkillTemplate({'skillName':_0x39337a,'type':_0x1ddc3b});!_0x1ddc3b&&writeCliSideChannelLine(_0x49b8be(0x1c2));const _0x4aaf2b=resolve(normalizeSkillTarget(_0x30579f));return{'rendered':_0xb4314a,'targetRoot':_0x4aaf2b,'skillDir':resolve(_0x4aaf2b,_0xb4314a['skillName'])};}function normalizeSkillTarget(_0x5e85da){return(_0x5e85da||DEFAULT_SKILL_TARGET)['trim']()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x361c30,_0x476ab7){const _0x243046=a63_0x1f99e3;if(existsSync(_0x361c30[_0x243046(0x1d5)])){const _0x47fcc0=lstatSync(_0x361c30[_0x243046(0x1d5)]);if(!_0x47fcc0[_0x243046(0x1c3)]()||_0x47fcc0[_0x243046(0x1de)]())throw CliErrors[_0x243046(0x1d2)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x361c30['skillDir']);if(!_0x476ab7)throw CliErrors[_0x243046(0x1d2)](_0x243046(0x1c7)+_0x361c30[_0x243046(0x1d5)],_0x243046(0x1cf));}for(const _0x5f0a67 of _0x361c30[_0x243046(0x1c9)]['files']){const _0xb367dc=resolve(_0x361c30[_0x243046(0x1d5)],_0x5f0a67[_0x243046(0x1bf)]),_0x41e709=dirname(_0xb367dc);mkdirSync(_0x41e709,{'recursive':!![]});if(existsSync(_0xb367dc)&&lstatSync(_0xb367dc)[_0x243046(0x1de)]())throw CliErrors[_0x243046(0x1d2)](_0x243046(0x1d0)+_0xb367dc);writeFileSync(_0xb367dc,_0x5f0a67[_0x243046(0x1db)],'utf8');}}
1
+ const a63_0x9452d3=a63_0x4c9b;(function(_0x13277b,_0x29a35d){const _0x4773d0=a63_0x4c9b,_0xea6177=_0x13277b();while(!![]){try{const _0x3bad21=-parseInt(_0x4773d0(0x18e))/0x1*(parseInt(_0x4773d0(0x188))/0x2)+parseInt(_0x4773d0(0x184))/0x3*(-parseInt(_0x4773d0(0x176))/0x4)+-parseInt(_0x4773d0(0x17d))/0x5+parseInt(_0x4773d0(0x16f))/0x6*(parseInt(_0x4773d0(0x185))/0x7)+parseInt(_0x4773d0(0x16e))/0x8*(-parseInt(_0x4773d0(0x18a))/0x9)+-parseInt(_0x4773d0(0x171))/0xa*(-parseInt(_0x4773d0(0x179))/0xb)+-parseInt(_0x4773d0(0x178))/0xc*(-parseInt(_0x4773d0(0x191))/0xd);if(_0x3bad21===_0x29a35d)break;else _0xea6177['push'](_0xea6177['shift']());}catch(_0xd427f8){_0xea6177['push'](_0xea6177['shift']());}}}(a63_0x1ed5,0x971ae));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';function a63_0x1ed5(){const _0x295d43=['str','6445218wkYUKy','Created\x20local\x20Skill\x20draft\x20','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','skillDir','72HcysQl','958746WDBslp','isSymbolicLink','505840sISdwD','force','skillName','create','path','180jcDnpv','bool','12wjfZay','154ICbumB','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','read','isDirectory','5000955ihlQSO','trim','files','name','Skill\x20directory\x20already\x20exists:\x20','type','target','1029uRAbNn','21GIPOLK','WRITE','创建本地自包含的运行态\x20Skill\x20草稿','42dBNMcL','rendered','43029RlIehi','map','skill','content','274plaeao','validation'];a63_0x1ed5=function(){return _0x295d43;};return a63_0x1ed5();}import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';function a63_0x4c9b(_0x5035e6,_0x5ed244){_0x5035e6=_0x5035e6-0x16e;const _0x1ed57b=a63_0x1ed5();let _0x4c9b0f=_0x1ed57b[_0x5035e6];return _0x4c9b0f;}import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a63_0x9452d3(0x18c),'command':a63_0x9452d3(0x174),'description':a63_0x9452d3(0x187),'risk':a63_0x9452d3(0x17b),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x4495cb){const _0xc2ef20=a63_0x9452d3,_0x174e3c=buildSkillCreatePlan(_0x4495cb[_0xc2ef20(0x190)]('name'),_0x4495cb[_0xc2ef20(0x190)](_0xc2ef20(0x182)),_0x4495cb['str']('target'));return{'method':_0xc2ef20(0x186),'url':_0x174e3c['skillDir'],'body':{'skillName':_0x174e3c[_0xc2ef20(0x189)][_0xc2ef20(0x173)],'type':_0x174e3c['rendered'][_0xc2ef20(0x182)],'selfContained':!![],'files':_0x174e3c[_0xc2ef20(0x189)][_0xc2ef20(0x17f)][_0xc2ef20(0x18b)](_0x40c087=>_0x40c087[_0xc2ef20(0x175)])},'description':_0xc2ef20(0x17a)};},async 'execute'(_0xfb5d4c){const _0x5bbece=a63_0x9452d3,_0x52012d=buildSkillCreatePlan(_0xfb5d4c[_0x5bbece(0x190)](_0x5bbece(0x180)),_0xfb5d4c[_0x5bbece(0x190)](_0x5bbece(0x182)),_0xfb5d4c['str'](_0x5bbece(0x183)));return writeSkillDraft(_0x52012d,_0xfb5d4c[_0x5bbece(0x177)](_0x5bbece(0x172))),{'ok':!![],'data':{'skillName':_0x52012d['rendered']['skillName'],'type':_0x52012d[_0x5bbece(0x189)][_0x5bbece(0x182)],'dir':_0x52012d[_0x5bbece(0x194)],'files':_0x52012d[_0x5bbece(0x189)][_0x5bbece(0x17f)]['map'](_0x13f62e=>_0x13f62e[_0x5bbece(0x175)])},'message':_0x5bbece(0x192)+_0x52012d[_0x5bbece(0x189)][_0x5bbece(0x173)]};}};function buildSkillCreatePlan(_0x3104ae,_0x80d48d,_0x4db6f7){const _0x183b49=a63_0x9452d3,_0x24740e=_0x80d48d[_0x183b49(0x17e)](),_0x3f8ce8=renderSkillTemplate({'skillName':_0x3104ae,'type':_0x24740e});!_0x24740e&&writeCliSideChannelLine(_0x183b49(0x193));const _0x2d370c=resolve(normalizeSkillTarget(_0x4db6f7));return{'rendered':_0x3f8ce8,'targetRoot':_0x2d370c,'skillDir':resolve(_0x2d370c,_0x3f8ce8['skillName'])};}function normalizeSkillTarget(_0x543339){const _0x1cdd01=a63_0x9452d3;return(_0x543339||DEFAULT_SKILL_TARGET)[_0x1cdd01(0x17e)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x19549d,_0x4682b7){const _0x4f29c2=a63_0x9452d3;if(existsSync(_0x19549d[_0x4f29c2(0x194)])){const _0x42c381=lstatSync(_0x19549d[_0x4f29c2(0x194)]);if(!_0x42c381[_0x4f29c2(0x17c)]()||_0x42c381[_0x4f29c2(0x170)]())throw CliErrors['validation']('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x19549d[_0x4f29c2(0x194)]);if(!_0x4682b7)throw CliErrors[_0x4f29c2(0x18f)](_0x4f29c2(0x181)+_0x19549d[_0x4f29c2(0x194)],'Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.');}for(const _0x2052b2 of _0x19549d[_0x4f29c2(0x189)][_0x4f29c2(0x17f)]){const _0x2de238=resolve(_0x19549d[_0x4f29c2(0x194)],_0x2052b2[_0x4f29c2(0x175)]),_0x34a560=dirname(_0x2de238);mkdirSync(_0x34a560,{'recursive':!![]});if(existsSync(_0x2de238)&&lstatSync(_0x2de238)[_0x4f29c2(0x170)]())throw CliErrors[_0x4f29c2(0x18f)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0x2de238);writeFileSync(_0x2de238,_0x2052b2[_0x4f29c2(0x18d)],'utf8');}}
@@ -1 +1 @@
1
- const a64_0x5926f6=a64_0x49be;(function(_0x130f1c,_0x1f7da3){const _0x13d22a=a64_0x49be,_0x27ccad=_0x130f1c();while(!![]){try{const _0x4dc39c=parseInt(_0x13d22a(0x125))/0x1+-parseInt(_0x13d22a(0x10c))/0x2*(parseInt(_0x13d22a(0x11c))/0x3)+-parseInt(_0x13d22a(0x10e))/0x4+-parseInt(_0x13d22a(0x120))/0x5*(-parseInt(_0x13d22a(0x102))/0x6)+-parseInt(_0x13d22a(0x119))/0x7+parseInt(_0x13d22a(0x10b))/0x8*(parseInt(_0x13d22a(0x106))/0x9)+parseInt(_0x13d22a(0x122))/0xa;if(_0x4dc39c===_0x1f7da3)break;else _0x27ccad['push'](_0x27ccad['shift']());}catch(_0x287548){_0x27ccad['push'](_0x27ccad['shift']());}}}(a64_0x36c0,0x83232));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';import{readRequiredSkillDiagram}from'../diagram.js';import{DIAGRAM_FILE_FLAG,DIAGRAM_SCOPE_FLAG,DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,SOURCE_FINGERPRINT_FLAG}from'../flags.js';const TARGET_FLAGS=[DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,DIAGRAM_SCOPE_FLAG],WRITE_FLAGS=[...TARGET_FLAGS,SOURCE_FINGERPRINT_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,DIAGRAM_FILE_FLAG];function a64_0x49be(_0x3cd646,_0x3b250d){_0x3cd646=_0x3cd646-0x101;const _0x36c055=a64_0x36c0();let _0x49be9d=_0x36c055[_0x3cd646];return _0x49be9d;}function readDiagramTarget(_0x289d60){const _0x172009=a64_0x49be,_0x192a59=_0x289d60['str'](_0x172009(0x104))[_0x172009(0x112)](),_0x9024c5=_0x289d60[_0x172009(0x10d)]('version')[_0x172009(0x112)](),_0x5605d9=_0x289d60[_0x172009(0x10d)]('scope');if(!_0x192a59||!_0x9024c5||_0x5605d9!==_0x172009(0x12a)&&_0x5605d9!=='company')throw CliErrors['validation']('--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.');return{'skillCode':_0x192a59,'version':_0x9024c5,'scope':_0x5605d9};}async function readDiagramWriteInput(_0x23d026){const _0xcba6fc=a64_0x49be,_0x1cf3dd=_0x23d026[_0xcba6fc(0x124)]('expected-diagram-revision'),_0x4830df=_0x23d026['str'](_0xcba6fc(0x10f))[_0xcba6fc(0x112)]();if(!Number[_0xcba6fc(0x12c)](_0x1cf3dd)||_0x1cf3dd<0x0)throw CliErrors[_0xcba6fc(0x103)](_0xcba6fc(0x126));if(!/^sha256:[0-9a-f]{64}$/[_0xcba6fc(0x111)](_0x4830df))throw CliErrors[_0xcba6fc(0x103)](_0xcba6fc(0x115));return{'expectedDiagramRevision':_0x1cf3dd,'sourceFingerprint':_0x4830df,'diagram':await readRequiredSkillDiagram(_0x23d026[_0xcba6fc(0x10d)]('diagram-file'))};}export const diagramValidateCommand={'service':'skill','command':'diagram-validate','description':a64_0x5926f6(0x116),'risk':a64_0x5926f6(0x10a),'flags':WRITE_FLAGS,async 'execute'(_0x5e4da1){const _0x581e70=a64_0x5926f6,_0x497c5d=readDiagramTarget(_0x5e4da1),_0x5ccd22=await validateRuntimeSkillVersionDiagram(_0x5e4da1[_0x581e70(0x110)],_0x497c5d[_0x581e70(0x123)],_0x497c5d[_0x581e70(0x128)],_0x497c5d[_0x581e70(0x129)],await readDiagramWriteInput(_0x5e4da1));return{'ok':!![],'data':_0x5ccd22,'message':_0x581e70(0x101)+_0x497c5d[_0x581e70(0x123)]+'@'+_0x497c5d[_0x581e70(0x128)]+'.'};}};export const diagramPushCommand={'service':a64_0x5926f6(0x118),'command':a64_0x5926f6(0x107),'description':'为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','risk':a64_0x5926f6(0x11f),'confirmationDescription':'将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','flags':WRITE_FLAGS,async 'execute'(_0x1032ff){const _0x31bd68=a64_0x5926f6,_0xba6383=readDiagramTarget(_0x1032ff),_0x313b6d=await putRuntimeSkillVersionDiagram(_0x1032ff[_0x31bd68(0x110)],_0xba6383[_0x31bd68(0x123)],_0xba6383['version'],_0xba6383['scope'],await readDiagramWriteInput(_0x1032ff));return{'ok':!![],'data':_0x313b6d,'message':_0x313b6d[_0x31bd68(0x11d)]===_0x31bd68(0x11b)?_0x31bd68(0x108)+_0xba6383[_0x31bd68(0x123)]+'@'+_0xba6383[_0x31bd68(0x128)]+_0x31bd68(0x105):(_0x313b6d[_0x31bd68(0x11d)]===_0x31bd68(0x121)?'Created':_0x31bd68(0x11a))+_0x31bd68(0x12b)+_0xba6383[_0x31bd68(0x123)]+'@'+_0xba6383['version']+'.'};}};export const diagramShowCommand={'service':a64_0x5926f6(0x118),'command':'diagram-show','description':'Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','risk':a64_0x5926f6(0x10a),'flags':TARGET_FLAGS,async 'execute'(_0x2be7b2){const _0x126daa=a64_0x5926f6,_0x41d008=readDiagramTarget(_0x2be7b2),_0x44eea1=await getRuntimeSkillVersionDiagram(_0x2be7b2['appCode'],_0x41d008[_0x126daa(0x123)],_0x41d008[_0x126daa(0x128)],_0x41d008['scope']);return{'ok':!![],'data':_0x44eea1,'message':_0x44eea1[_0x126daa(0x11e)]?_0x126daa(0x127)+_0x41d008['skillCode']+'@'+_0x41d008[_0x126daa(0x128)]+_0x126daa(0x114)+_0x44eea1['expectedDiagramRevision']+'.':_0x126daa(0x109)+_0x41d008['skillCode']+'@'+_0x41d008[_0x126daa(0x128)]+_0x126daa(0x117)+_0x44eea1[_0x126daa(0x113)]+'.'};}};function a64_0x36c0(){const _0x492c0d=['str','3296564SOQrIB','source-fingerprint','appCode','test','trim','expectedDiagramRevision',';\x20next\x20write\x20expects\x20revision\x20','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version',';\x20first\x20write\x20expects\x20revision\x20','skill','2983071WpjEtP','Updated','unchanged','48435VxBHlm','action','found','write','577975xhBNPK','created','20973090jpTGvx','skillCode','num','386127vbfcis','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','Found\x20Skill\x20diagram\x20for\x20','version','scope','personal','\x20Skill\x20diagram\x20for\x20','isInteger','Skill\x20diagram\x20validation\x20passed\x20for\x20','6RhrvSL','validation','skill-code','\x20is\x20unchanged.','9njFIxa','diagram-push','Skill\x20diagram\x20for\x20','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','read','223528JINAfp','104yESZbD'];a64_0x36c0=function(){return _0x492c0d;};return a64_0x36c0();}
1
+ const a64_0x2a7b30=a64_0x5e26;function a64_0x5e26(_0x23a3d7,_0xe2ff51){_0x23a3d7=_0x23a3d7-0xeb;const _0x5986b5=a64_0x5986();let _0x5e2604=_0x5986b5[_0x23a3d7];return _0x5e2604;}(function(_0x54c93d,_0x21ee0b){const _0x5e1eb8=a64_0x5e26,_0x224fb3=_0x54c93d();while(!![]){try{const _0x52e075=parseInt(_0x5e1eb8(0xf0))/0x1+-parseInt(_0x5e1eb8(0xff))/0x2+-parseInt(_0x5e1eb8(0xf2))/0x3*(parseInt(_0x5e1eb8(0xf4))/0x4)+-parseInt(_0x5e1eb8(0x116))/0x5+parseInt(_0x5e1eb8(0xeb))/0x6+parseInt(_0x5e1eb8(0x114))/0x7*(parseInt(_0x5e1eb8(0x104))/0x8)+-parseInt(_0x5e1eb8(0xfb))/0x9*(-parseInt(_0x5e1eb8(0xf6))/0xa);if(_0x52e075===_0x21ee0b)break;else _0x224fb3['push'](_0x224fb3['shift']());}catch(_0x11e0b5){_0x224fb3['push'](_0x224fb3['shift']());}}}(a64_0x5986,0x6fa9d));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';import{readRequiredSkillDiagram}from'../diagram.js';import{DIAGRAM_FILE_FLAG,DIAGRAM_SCOPE_FLAG,DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,SOURCE_FINGERPRINT_FLAG}from'../flags.js';const TARGET_FLAGS=[DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,DIAGRAM_SCOPE_FLAG],WRITE_FLAGS=[...TARGET_FLAGS,SOURCE_FINGERPRINT_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,DIAGRAM_FILE_FLAG];function readDiagramTarget(_0x3d0ba2){const _0xea549d=a64_0x5e26,_0x392f36=_0x3d0ba2['str'](_0xea549d(0xf7))[_0xea549d(0x115)](),_0x127532=_0x3d0ba2[_0xea549d(0x10b)](_0xea549d(0xf5))[_0xea549d(0x115)](),_0x3c73b4=_0x3d0ba2['str'](_0xea549d(0x112));if(!_0x392f36||!_0x127532||_0x3c73b4!=='personal'&&_0x3c73b4!==_0xea549d(0xf1))throw CliErrors[_0xea549d(0x105)](_0xea549d(0x10e));return{'skillCode':_0x392f36,'version':_0x127532,'scope':_0x3c73b4};}function a64_0x5986(){const _0x3463a0=['606224fUQGys','diagram-file','unchanged','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','diagram-show','432yymIiB','validation','expectedDiagramRevision','将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','diagram-validate','test','Found\x20Skill\x20diagram\x20for\x20','str','read','Skill\x20diagram\x20for\x20','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','found','skill',';\x20next\x20write\x20expects\x20revision\x20','scope','Created','87409JQYEwu','trim','3409080yUlPSU','source-fingerprint','2447202dLJtMo','\x20Skill\x20diagram\x20for\x20','diagram-push','Updated','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','380849UlBXse','company','1275lvYhzp','appCode','820HWeIEj','version','664120xcDBBO','skill-code','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','num','action','9nRaYcG','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.',';\x20first\x20write\x20expects\x20revision\x20','skillCode'];a64_0x5986=function(){return _0x3463a0;};return a64_0x5986();}async function readDiagramWriteInput(_0x3b5160){const _0x3cb093=a64_0x5e26,_0x4b07fa=_0x3b5160[_0x3cb093(0xf9)]('expected-diagram-revision'),_0x228cef=_0x3b5160[_0x3cb093(0x10b)](_0x3cb093(0x117))[_0x3cb093(0x115)]();if(!Number['isInteger'](_0x4b07fa)||_0x4b07fa<0x0)throw CliErrors[_0x3cb093(0x105)](_0x3cb093(0xfc));if(!/^sha256:[0-9a-f]{64}$/[_0x3cb093(0x109)](_0x228cef))throw CliErrors[_0x3cb093(0x105)]('--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.');return{'expectedDiagramRevision':_0x4b07fa,'sourceFingerprint':_0x228cef,'diagram':await readRequiredSkillDiagram(_0x3b5160['str'](_0x3cb093(0x100)))};}export const diagramValidateCommand={'service':a64_0x2a7b30(0x110),'command':a64_0x2a7b30(0x108),'description':a64_0x2a7b30(0x102),'risk':a64_0x2a7b30(0x10c),'flags':WRITE_FLAGS,async 'execute'(_0x2331d4){const _0x324b21=a64_0x2a7b30,_0x125c9c=readDiagramTarget(_0x2331d4),_0x120b71=await validateRuntimeSkillVersionDiagram(_0x2331d4[_0x324b21(0xf3)],_0x125c9c[_0x324b21(0xfe)],_0x125c9c[_0x324b21(0xf5)],_0x125c9c[_0x324b21(0x112)],await readDiagramWriteInput(_0x2331d4));return{'ok':!![],'data':_0x120b71,'message':'Skill\x20diagram\x20validation\x20passed\x20for\x20'+_0x125c9c['skillCode']+'@'+_0x125c9c['version']+'.'};}};export const diagramPushCommand={'service':a64_0x2a7b30(0x110),'command':a64_0x2a7b30(0xed),'description':'为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','risk':'write','confirmationDescription':a64_0x2a7b30(0x107),'flags':WRITE_FLAGS,async 'execute'(_0x5c3717){const _0x5bb6c6=a64_0x2a7b30,_0x35433b=readDiagramTarget(_0x5c3717),_0x41d4ac=await putRuntimeSkillVersionDiagram(_0x5c3717[_0x5bb6c6(0xf3)],_0x35433b['skillCode'],_0x35433b[_0x5bb6c6(0xf5)],_0x35433b[_0x5bb6c6(0x112)],await readDiagramWriteInput(_0x5c3717));return{'ok':!![],'data':_0x41d4ac,'message':_0x41d4ac[_0x5bb6c6(0xfa)]===_0x5bb6c6(0x101)?_0x5bb6c6(0x10d)+_0x35433b['skillCode']+'@'+_0x35433b[_0x5bb6c6(0xf5)]+'\x20is\x20unchanged.':(_0x41d4ac['action']==='created'?_0x5bb6c6(0x113):_0x5bb6c6(0xee))+_0x5bb6c6(0xec)+_0x35433b[_0x5bb6c6(0xfe)]+'@'+_0x35433b[_0x5bb6c6(0xf5)]+'.'};}};export const diagramShowCommand={'service':a64_0x2a7b30(0x110),'command':a64_0x2a7b30(0x103),'description':a64_0x2a7b30(0xef),'risk':a64_0x2a7b30(0x10c),'flags':TARGET_FLAGS,async 'execute'(_0x36f998){const _0x6503a5=a64_0x2a7b30,_0x4fc04e=readDiagramTarget(_0x36f998),_0x193fd3=await getRuntimeSkillVersionDiagram(_0x36f998[_0x6503a5(0xf3)],_0x4fc04e['skillCode'],_0x4fc04e[_0x6503a5(0xf5)],_0x4fc04e[_0x6503a5(0x112)]);return{'ok':!![],'data':_0x193fd3,'message':_0x193fd3[_0x6503a5(0x10f)]?_0x6503a5(0x10a)+_0x4fc04e[_0x6503a5(0xfe)]+'@'+_0x4fc04e[_0x6503a5(0xf5)]+_0x6503a5(0x111)+_0x193fd3['expectedDiagramRevision']+'.':_0x6503a5(0xf8)+_0x4fc04e[_0x6503a5(0xfe)]+'@'+_0x4fc04e[_0x6503a5(0xf5)]+_0x6503a5(0xfd)+_0x193fd3[_0x6503a5(0x106)]+'.'};}};
@@ -1 +1 @@
1
- function a65_0xa773(_0x1e6185,_0x2c04cd){_0x1e6185=_0x1e6185-0x18a;const _0x1a94ab=a65_0x1a94();let _0xa77374=_0x1a94ab[_0x1e6185];return _0xa77374;}const a65_0xdb1cc4=a65_0xa773;(function(_0x3f9347,_0x416350){const _0x48c1e6=a65_0xa773,_0x4ee3e2=_0x3f9347();while(!![]){try{const _0x3320c7=-parseInt(_0x48c1e6(0x192))/0x1*(-parseInt(_0x48c1e6(0x1a9))/0x2)+parseInt(_0x48c1e6(0x193))/0x3+parseInt(_0x48c1e6(0x1ae))/0x4+parseInt(_0x48c1e6(0x1af))/0x5+-parseInt(_0x48c1e6(0x19b))/0x6*(-parseInt(_0x48c1e6(0x1a1))/0x7)+parseInt(_0x48c1e6(0x1a2))/0x8*(parseInt(_0x48c1e6(0x18c))/0x9)+-parseInt(_0x48c1e6(0x194))/0xa;if(_0x3320c7===_0x416350)break;else _0x4ee3e2['push'](_0x4ee3e2['shift']());}catch(_0x33f1b9){_0x4ee3e2['push'](_0x4ee3e2['shift']());}}}(a65_0x1a94,0xb4d2a));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';const PACKAGE_DOWNLOAD_CONCURRENCY=0x4;export const installCommand={'service':a65_0xdb1cc4(0x1ac),'command':a65_0xdb1cc4(0x1b3),'description':a65_0xdb1cc4(0x1b0),'risk':'read','requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x49ec3a){return syncRuntimeSkills(_0x49ec3a);}};async function syncRuntimeSkills(_0x42c24e){const _0x5bc49e=a65_0xdb1cc4,{downloadRuntimeSkillPackage:_0x25f495,listRuntimeSkills:_0x138b94}=await import(_0x5bc49e(0x190)),{linkEffectiveRuntimeSkills:_0x4497ff,materializeRuntimeSkill:_0x29ef73,pruneStaleRuntimeSkillCache:_0x53db19,pruneStaleRuntimeSkillLinks:_0x1bb196,resolveRuntimeSkillInstallTarget:_0x412194,reuseMaterializedRuntimeSkill:_0x141615}=await import(_0x5bc49e(0x19e)),_0x2b9194=_0x42c24e['str']('code'),_0x35cd9a=normalizeSyncScopes(_0x42c24e[_0x5bc49e(0x191)](_0x5bc49e(0x199))),_0x2cb695=_0x42c24e['envName']??'production',_0x618d8b=_0x42c24e['accessKey'],_0x583511=_0x42c24e[_0x5bc49e(0x19d)]('force');if(!_0x618d8b)throw CliErrors['authRequired'](_0x5bc49e(0x1b4));const _0x28a98f=_0x412194(_0x42c24e[_0x5bc49e(0x1a6)],_0x42c24e['bool'](_0x5bc49e(0x18b))?_0x5bc49e(0x18b):_0x5bc49e(0x1a7)),_0x765670=_0x412194(_0x42c24e[_0x5bc49e(0x1a6)],_0x28a98f[_0x5bc49e(0x199)]===_0x5bc49e(0x18b)?_0x5bc49e(0x1a7):_0x5bc49e(0x18b)),_0x513003=await _0x138b94({'appCode':_0x42c24e[_0x5bc49e(0x1a6)],'scope':_0x35cd9a[_0x5bc49e(0x198)]===0x1?_0x35cd9a[0x0]:_0x5bc49e(0x18a),'code':_0x2b9194[_0x5bc49e(0x195)]()||undefined}),_0x436f7b=_0x35cd9a['includes'](_0x5bc49e(0x1a0))?_0x513003['personal']:[],_0x502844=_0x35cd9a[_0x5bc49e(0x19f)](_0x5bc49e(0x18f))?_0x513003[_0x5bc49e(0x18f)]:[],_0x25f222=new Set([..._0x436f7b[_0x5bc49e(0x1a5)](_0x7361a9=>_0x7361a9[_0x5bc49e(0x1a3)]?.[_0x5bc49e(0x195)]())[_0x5bc49e(0x1b2)](_0x3951d5=>Boolean(_0x3951d5)),..._0x502844['map'](_0xc1a5e=>_0xc1a5e['skillCode']?.[_0x5bc49e(0x195)]())[_0x5bc49e(0x1b2)](_0x206d08=>Boolean(_0x206d08))]),_0x27fe63=_0x2b9194['trim']()?[_0x2b9194[_0x5bc49e(0x195)]()]:undefined,_0x3836a1=_0x35cd9a[_0x5bc49e(0x198)]===0x2&&_0x35cd9a[_0x5bc49e(0x19f)](_0x5bc49e(0x1a0))&&_0x35cd9a['includes'](_0x5bc49e(0x18f)),_0xdd308c=_0x3836a1?_0x1bb196(_0x28a98f,_0x25f222,_0x27fe63):[],_0x55cf74=_0x53db19({'env':_0x2cb695,'accessKey':_0x618d8b,'appCode':_0x42c24e[_0x5bc49e(0x1a6)],'activeSkillCodes':_0x25f222,'pruneSkillCodes':_0x27fe63,'scopes':_0x35cd9a,'protectedLinkRoots':_0x765670[_0x5bc49e(0x1a8)]}),_0x1bdf67=[..._0x436f7b[_0x5bc49e(0x1a5)](_0xab2659=>({'skill':_0xab2659,'scope':_0x5bc49e(0x1a0)})),..._0x502844[_0x5bc49e(0x1a5)](_0x55584f=>({'skill':_0x55584f,'scope':_0x5bc49e(0x18f)}))],_0x58ea0b=await mapConcurrent(_0x1bdf67,PACKAGE_DOWNLOAD_CONCURRENCY,async({skill:_0x211892,scope:_0x5e1368})=>{const _0x5cf9fc=_0x5bc49e,_0x237910=_0x141615(_0x211892,_0x5e1368,{'env':_0x2cb695,'accessKey':_0x618d8b,'appCode':_0x42c24e[_0x5cf9fc(0x1a6)]});if(_0x237910)return _0x237910;return _0x29ef73(_0x211892,_0x5e1368,{'env':_0x2cb695,'accessKey':_0x618d8b,'appCode':_0x42c24e[_0x5cf9fc(0x1a6)],'force':_0x583511,'packageBytes':await downloadSkillPackage(_0x211892,_0x5e1368,_0x42c24e[_0x5cf9fc(0x1a6)],_0x25f495)});}),_0x568f1e=_0x4497ff(_0x58ea0b,_0x28a98f),_0x596477=countLinkActions(_0x568f1e);return{'ok':!![],'data':{'appCode':_0x42c24e[_0x5bc49e(0x1a6)],..._0x28a98f[_0x5bc49e(0x199)]==='project'?{'installTarget':{'scope':_0x28a98f[_0x5bc49e(0x199)],'skillRoots':[..._0x28a98f[_0x5bc49e(0x1a8)]]}}:{},'personal':_0x436f7b[_0x5bc49e(0x198)],'company':_0x502844[_0x5bc49e(0x198)],'materialized':_0x58ea0b['length'],'links':{'total':_0x568f1e['length'],'created':_0x596477[_0x5bc49e(0x1a4)]??0x0,'updated':_0x596477[_0x5bc49e(0x196)]??0x0,'unchanged':_0x596477[_0x5bc49e(0x19a)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0xdd308c[_0x5bc49e(0x1b2)](_0x2e5d8a=>_0x2e5d8a[_0x5bc49e(0x1b1)]===_0x5bc49e(0x18d))['length'],'cacheDirs':_0x55cf74[_0x5bc49e(0x1b2)](_0x47a6b1=>_0x47a6b1['action']===_0x5bc49e(0x18d))[_0x5bc49e(0x198)],'skipped':[..._0xdd308c,..._0x55cf74][_0x5bc49e(0x1b2)](_0x35acc7=>_0x35acc7['action']===_0x5bc49e(0x1ab))['length']},'skills':{'personal':_0x436f7b['map'](summarizeRuntimeSkill),'company':_0x502844['map'](summarizeRuntimeSkill)}},'message':_0x5bc49e(0x1ad)+_0x436f7b['length']+'\x20personal\x20and\x20'+_0x502844[_0x5bc49e(0x198)]+_0x5bc49e(0x197)};}async function mapConcurrent(_0x468eaa,_0x256406,_0x58176d){const _0x5e13c7=a65_0xdb1cc4,_0x25ee10=new Array(_0x468eaa[_0x5e13c7(0x198)]);let _0x5070c9=0x0;const _0x5bde44=Array[_0x5e13c7(0x19c)]({'length':Math[_0x5e13c7(0x18e)](_0x256406,_0x468eaa[_0x5e13c7(0x198)])},async()=>{const _0x1316a9=_0x5e13c7;while(_0x5070c9<_0x468eaa[_0x1316a9(0x198)]){const _0x2d75b4=_0x5070c9;_0x5070c9+=0x1,_0x25ee10[_0x2d75b4]=await _0x58176d(_0x468eaa[_0x2d75b4]);}});return await Promise[_0x5e13c7(0x18a)](_0x5bde44),_0x25ee10;}function a65_0x1a94(){const _0x5056bd=['Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','all','project','1065249ITXLiV','removed','min','company','../../../core/api-client.js','str','61316biftcw','976533aInQNh','44945210XemFPN','trim','updated','\x20company\x20Skill(s).','length','scope','unchanged','62754urPKnc','from','bool','../../../skills/runtime-skill-sync.js','includes','personal','917iEIaUK','40ZyChKW','skillCode','created','map','appCode','global','skillRoots','32dLfCBd','version','skipped','skill','Installed\x20','3323672IIhhrT','5678760WjELOv','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','action','filter','install'];a65_0x1a94=function(){return _0x5056bd;};return a65_0x1a94();}async function downloadSkillPackage(_0x3417c7,_0x2643c9,_0xd7400a,_0x4f917c){const _0x349064=a65_0xdb1cc4,_0x285573=_0x3417c7[_0x349064(0x1aa)]?.[_0x349064(0x195)]();return _0x285573?_0x4f917c(_0x2643c9,_0x3417c7[_0x349064(0x1a3)],_0xd7400a,_0x285573):_0x4f917c(_0x2643c9,_0x3417c7[_0x349064(0x1a3)],_0xd7400a);}function countLinkActions(_0x562b7a){return _0x562b7a['reduce']((_0xa0f706,_0x3fd051)=>{const _0x379dbc=a65_0xa773;return _0xa0f706[_0x3fd051[_0x379dbc(0x1b1)]]=(_0xa0f706[_0x3fd051[_0x379dbc(0x1b1)]]??0x0)+0x1,_0xa0f706;},{});}
1
+ const a65_0x46d4c6=a65_0x15e9;(function(_0x15966a,_0xc2cd94){const _0x559b6e=a65_0x15e9,_0xb3ef9e=_0x15966a();while(!![]){try{const _0x515576=parseInt(_0x559b6e(0x1f4))/0x1*(-parseInt(_0x559b6e(0x20f))/0x2)+-parseInt(_0x559b6e(0x214))/0x3*(-parseInt(_0x559b6e(0x1eb))/0x4)+parseInt(_0x559b6e(0x200))/0x5*(parseInt(_0x559b6e(0x1ff))/0x6)+parseInt(_0x559b6e(0x1e5))/0x7*(-parseInt(_0x559b6e(0x20b))/0x8)+-parseInt(_0x559b6e(0x1f1))/0x9+-parseInt(_0x559b6e(0x208))/0xa+-parseInt(_0x559b6e(0x1e2))/0xb*(-parseInt(_0x559b6e(0x1f0))/0xc);if(_0x515576===_0xc2cd94)break;else _0xb3ef9e['push'](_0xb3ef9e['shift']());}catch(_0x304af5){_0xb3ef9e['push'](_0xb3ef9e['shift']());}}}(a65_0xb5ee,0xd9761));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';function a65_0x15e9(_0x5e7c23,_0x580ac8){_0x5e7c23=_0x5e7c23-0x1e2;const _0xb5ee53=a65_0xb5ee();let _0x15e929=_0xb5ee53[_0x5e7c23];return _0x15e929;}import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';function a65_0xb5ee(){const _0x45bc80=['2EiOcCq','map','trim','skillRoots','scope','339erCWil','33BxrGZX','envName','length','7VdsJBn','from','skill','Installed\x20','production','../../../skills/runtime-skill-sync.js','43876lZuceY','skipped','\x20personal\x20and\x20','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','action','14164008tDmhoQ','9093969BQHzTP','\x20company\x20Skill(s).','authRequired','1768432VWgihP','company','created','project','unchanged','version','install','includes','../../../core/api-client.js','read','bool','3030Jymmcy','9760WnFUox','global','appCode','force','removed','personal','accessKey','all','11234840mEutPE','min','code','7785448hjRQvq','skillCode','filter','str'];a65_0xb5ee=function(){return _0x45bc80;};return a65_0xb5ee();}const PACKAGE_DOWNLOAD_CONCURRENCY=0x4;export const installCommand={'service':a65_0x46d4c6(0x1e7),'command':a65_0x46d4c6(0x1fa),'description':a65_0x46d4c6(0x1ee),'risk':a65_0x46d4c6(0x1fd),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0xc983e9){return syncRuntimeSkills(_0xc983e9);}};async function syncRuntimeSkills(_0x586596){const _0xa7731a=a65_0x46d4c6,{downloadRuntimeSkillPackage:_0x37eb29,listRuntimeSkills:_0x3c0ae9}=await import(_0xa7731a(0x1fc)),{linkEffectiveRuntimeSkills:_0x1875ae,materializeRuntimeSkill:_0x5628cc,pruneStaleRuntimeSkillCache:_0x3fef4f,pruneStaleRuntimeSkillLinks:_0x3373e3,resolveRuntimeSkillInstallTarget:_0x37f0a6,reuseMaterializedRuntimeSkill:_0x25fc67}=await import(_0xa7731a(0x1ea)),_0x2efe81=_0x586596[_0xa7731a(0x20e)](_0xa7731a(0x20a)),_0x435f4e=normalizeSyncScopes(_0x586596['str'](_0xa7731a(0x213))),_0x557413=_0x586596[_0xa7731a(0x1e3)]??_0xa7731a(0x1e9),_0x22dc75=_0x586596[_0xa7731a(0x206)],_0x972469=_0x586596['bool'](_0xa7731a(0x203));if(!_0x22dc75)throw CliErrors[_0xa7731a(0x1f3)]('Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.');const _0x398cd1=_0x37f0a6(_0x586596[_0xa7731a(0x202)],_0x586596[_0xa7731a(0x1fe)](_0xa7731a(0x1f7))?_0xa7731a(0x1f7):_0xa7731a(0x201)),_0x1ed985=_0x37f0a6(_0x586596[_0xa7731a(0x202)],_0x398cd1[_0xa7731a(0x213)]===_0xa7731a(0x1f7)?'global':'project'),_0x205528=await _0x3c0ae9({'appCode':_0x586596[_0xa7731a(0x202)],'scope':_0x435f4e[_0xa7731a(0x1e4)]===0x1?_0x435f4e[0x0]:_0xa7731a(0x207),'code':_0x2efe81[_0xa7731a(0x211)]()||undefined}),_0x2dbb39=_0x435f4e['includes'](_0xa7731a(0x205))?_0x205528[_0xa7731a(0x205)]:[],_0x645a68=_0x435f4e['includes']('company')?_0x205528['company']:[],_0x5f0438=new Set([..._0x2dbb39[_0xa7731a(0x210)](_0x58dc9f=>_0x58dc9f['skillCode']?.[_0xa7731a(0x211)]())[_0xa7731a(0x20d)](_0x5a9947=>Boolean(_0x5a9947)),..._0x645a68[_0xa7731a(0x210)](_0x2ead0e=>_0x2ead0e[_0xa7731a(0x20c)]?.[_0xa7731a(0x211)]())[_0xa7731a(0x20d)](_0x4ad0f5=>Boolean(_0x4ad0f5))]),_0x10cfec=_0x2efe81[_0xa7731a(0x211)]()?[_0x2efe81[_0xa7731a(0x211)]()]:undefined,_0x340f39=_0x435f4e[_0xa7731a(0x1e4)]===0x2&&_0x435f4e[_0xa7731a(0x1fb)](_0xa7731a(0x205))&&_0x435f4e['includes'](_0xa7731a(0x1f5)),_0x147278=_0x340f39?_0x3373e3(_0x398cd1,_0x5f0438,_0x10cfec):[],_0x4aef34=_0x3fef4f({'env':_0x557413,'accessKey':_0x22dc75,'appCode':_0x586596[_0xa7731a(0x202)],'activeSkillCodes':_0x5f0438,'pruneSkillCodes':_0x10cfec,'scopes':_0x435f4e,'protectedLinkRoots':_0x1ed985[_0xa7731a(0x212)]}),_0x23b0ca=[..._0x2dbb39[_0xa7731a(0x210)](_0x51453f=>({'skill':_0x51453f,'scope':_0xa7731a(0x205)})),..._0x645a68['map'](_0x41e4ef=>({'skill':_0x41e4ef,'scope':_0xa7731a(0x1f5)}))],_0x516a81=await mapConcurrent(_0x23b0ca,PACKAGE_DOWNLOAD_CONCURRENCY,async({skill:_0x3c3134,scope:_0x5d1f5e})=>{const _0x246eaf=_0xa7731a,_0x733399=_0x25fc67(_0x3c3134,_0x5d1f5e,{'env':_0x557413,'accessKey':_0x22dc75,'appCode':_0x586596[_0x246eaf(0x202)]});if(_0x733399)return _0x733399;return _0x5628cc(_0x3c3134,_0x5d1f5e,{'env':_0x557413,'accessKey':_0x22dc75,'appCode':_0x586596['appCode'],'force':_0x972469,'packageBytes':await downloadSkillPackage(_0x3c3134,_0x5d1f5e,_0x586596[_0x246eaf(0x202)],_0x37eb29)});}),_0x171866=_0x1875ae(_0x516a81,_0x398cd1),_0x4526a9=countLinkActions(_0x171866);return{'ok':!![],'data':{'appCode':_0x586596[_0xa7731a(0x202)],..._0x398cd1[_0xa7731a(0x213)]===_0xa7731a(0x1f7)?{'installTarget':{'scope':_0x398cd1[_0xa7731a(0x213)],'skillRoots':[..._0x398cd1[_0xa7731a(0x212)]]}}:{},'personal':_0x2dbb39['length'],'company':_0x645a68[_0xa7731a(0x1e4)],'materialized':_0x516a81['length'],'links':{'total':_0x171866['length'],'created':_0x4526a9[_0xa7731a(0x1f6)]??0x0,'updated':_0x4526a9['updated']??0x0,'unchanged':_0x4526a9[_0xa7731a(0x1f8)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x147278[_0xa7731a(0x20d)](_0x4392e3=>_0x4392e3[_0xa7731a(0x1ef)]===_0xa7731a(0x204))[_0xa7731a(0x1e4)],'cacheDirs':_0x4aef34[_0xa7731a(0x20d)](_0x3a2361=>_0x3a2361[_0xa7731a(0x1ef)]===_0xa7731a(0x204))['length'],'skipped':[..._0x147278,..._0x4aef34]['filter'](_0x5c8b64=>_0x5c8b64['action']===_0xa7731a(0x1ec))[_0xa7731a(0x1e4)]},'skills':{'personal':_0x2dbb39[_0xa7731a(0x210)](summarizeRuntimeSkill),'company':_0x645a68['map'](summarizeRuntimeSkill)}},'message':_0xa7731a(0x1e8)+_0x2dbb39[_0xa7731a(0x1e4)]+_0xa7731a(0x1ed)+_0x645a68[_0xa7731a(0x1e4)]+_0xa7731a(0x1f2)};}async function mapConcurrent(_0x505e70,_0x55fea5,_0x55d9da){const _0x148cd6=a65_0x46d4c6,_0x18cc68=new Array(_0x505e70[_0x148cd6(0x1e4)]);let _0x2669cc=0x0;const _0x3fcd76=Array[_0x148cd6(0x1e6)]({'length':Math[_0x148cd6(0x209)](_0x55fea5,_0x505e70['length'])},async()=>{const _0x1daf5a=_0x148cd6;while(_0x2669cc<_0x505e70[_0x1daf5a(0x1e4)]){const _0x2ce46c=_0x2669cc;_0x2669cc+=0x1,_0x18cc68[_0x2ce46c]=await _0x55d9da(_0x505e70[_0x2ce46c]);}});return await Promise[_0x148cd6(0x207)](_0x3fcd76),_0x18cc68;}async function downloadSkillPackage(_0xae0194,_0x836222,_0x3edc4d,_0x3404a9){const _0x5d80c3=a65_0x46d4c6,_0x1124dd=_0xae0194[_0x5d80c3(0x1f9)]?.[_0x5d80c3(0x211)]();return _0x1124dd?_0x3404a9(_0x836222,_0xae0194[_0x5d80c3(0x20c)],_0x3edc4d,_0x1124dd):_0x3404a9(_0x836222,_0xae0194[_0x5d80c3(0x20c)],_0x3edc4d);}function countLinkActions(_0x31871d){return _0x31871d['reduce']((_0xb12d99,_0x19e6f0)=>{const _0x58175a=a65_0x15e9;return _0xb12d99[_0x19e6f0[_0x58175a(0x1ef)]]=(_0xb12d99[_0x19e6f0[_0x58175a(0x1ef)]]??0x0)+0x1,_0xb12d99;},{});}
@@ -1 +1 @@
1
- function a66_0xf0c7(){const _0x5ea95e=['global','trim','personal','\x20local\x20Skill(s).','331362TugQSc','2665728jrzUfO','project','appCode','scope','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','25663sLOdnM','3411155jrfeOq','list','7044nkmRIl','production','../../../core/api-client.js','49188MSNcVC','map','1QHyfgy','length','filter','9NAUiIS','bool','8cphYjT','Listed\x20','4132220NWvInW','595pMRjnY','accessKey','725018LHGIEG','\x20remote\x20Skill(s).','local','company','remote','envName','skill','str'];a66_0xf0c7=function(){return _0x5ea95e;};return a66_0xf0c7();}const a66_0x34f11c=a66_0x1025;(function(_0x1ec0c0,_0x25236a){const _0x4cc1d9=a66_0x1025,_0x4d5062=_0x1ec0c0();while(!![]){try{const _0x537c5b=-parseInt(_0x4cc1d9(0x92))/0x1*(parseInt(_0x4cc1d9(0x78))/0x2)+parseInt(_0x4cc1d9(0x84))/0x3*(parseInt(_0x4cc1d9(0x73))/0x4)+parseInt(_0x4cc1d9(0x8b))/0x5+-parseInt(_0x4cc1d9(0x90))/0x6*(parseInt(_0x4cc1d9(0x76))/0x7)+-parseInt(_0x4cc1d9(0x85))/0x8+-parseInt(_0x4cc1d9(0x95))/0x9*(parseInt(_0x4cc1d9(0x75))/0xa)+-parseInt(_0x4cc1d9(0x8a))/0xb*(-parseInt(_0x4cc1d9(0x8d))/0xc);if(_0x537c5b===_0x25236a)break;else _0x4d5062['push'](_0x4d5062['shift']());}catch(_0x4e2251){_0x4d5062['push'](_0x4d5062['shift']());}}}(a66_0xf0c7,0x71f91));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';function a66_0x1025(_0x2e7974,_0x3d3f14){_0x2e7974=_0x2e7974-0x73;const _0xf0c771=a66_0xf0c7();let _0x102594=_0xf0c771[_0x2e7974];return _0x102594;}export const listCommand={'service':a66_0x34f11c(0x7e),'command':a66_0x34f11c(0x8c),'description':a66_0x34f11c(0x89),'risk':'read','flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x4f6c6c){const _0x36d296=a66_0x34f11c,_0x122002=_0x4f6c6c[_0x36d296(0x7f)]('code'),_0x1a0ac8=normalizeListScope(_0x4f6c6c[_0x36d296(0x7f)](_0x36d296(0x88)));if(_0x4f6c6c[_0x36d296(0x96)](_0x36d296(0x7a))){const _0x4b7f12=_0x4f6c6c[_0x36d296(0x77)];if(!_0x4b7f12)throw CliErrors['authRequired']();const {listLocalRuntimeSkills:_0x396276,resolveRuntimeSkillInstallTarget:_0x49ddfb}=await import('../../../skills/runtime-skill-sync.js'),_0xf67891=_0x49ddfb(_0x4f6c6c['appCode'],_0x4f6c6c[_0x36d296(0x96)](_0x36d296(0x86))?_0x36d296(0x86):_0x36d296(0x80)),_0x3ff8f9=_0x396276({'env':_0x4f6c6c[_0x36d296(0x7d)]??_0x36d296(0x8e),'accessKey':_0x4b7f12,'appCode':_0x4f6c6c[_0x36d296(0x87)],'scopes':listScopeToRuntimeScopes(_0x1a0ac8),'code':_0x122002[_0x36d296(0x81)]()||undefined},_0xf67891),_0x2a52cb=groupLocalRuntimeSkills(_0x3ff8f9);return{'ok':!![],'data':{'appCode':_0x4f6c6c[_0x36d296(0x87)],'source':'local',..._0xf67891[_0x36d296(0x88)]===_0x36d296(0x86)?{'installScope':_0xf67891[_0x36d296(0x88)]}:{},'scope':_0x1a0ac8,'total':_0x3ff8f9['length'],'personal':_0x2a52cb[_0x36d296(0x82)]['length'],'company':_0x2a52cb[_0x36d296(0x7b)]['length'],'items':_0x3ff8f9[_0x36d296(0x91)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x2a52cb[_0x36d296(0x82)][_0x36d296(0x91)](summarizeLocalRuntimeSkill),'company':_0x2a52cb[_0x36d296(0x7b)][_0x36d296(0x91)](summarizeLocalRuntimeSkill)}},'message':'Listed\x20'+_0x3ff8f9[_0x36d296(0x93)]+_0x36d296(0x83)};}const {listRuntimeSkills:_0x272a40}=await import(_0x36d296(0x8f)),_0x4dfe6b=await _0x272a40({'appCode':_0x4f6c6c[_0x36d296(0x87)],'scope':listScopeToRemoteScope(_0x1a0ac8),'code':_0x122002[_0x36d296(0x81)]()||undefined}),_0x38c50a=shouldListScope(_0x1a0ac8,_0x36d296(0x82))?_0x4dfe6b[_0x36d296(0x82)]??[]:[],_0x12b633=shouldListScope(_0x1a0ac8,'company')?_0x4dfe6b['company']??[]:[],_0x1e185d=[..._0x38c50a,..._0x12b633];return{'ok':!![],'data':{'appCode':_0x4f6c6c[_0x36d296(0x87)],'source':_0x36d296(0x7c),'scope':_0x1a0ac8,'total':_0x1e185d[_0x36d296(0x93)],'personal':_0x38c50a['length'],'company':_0x12b633['length'],'items':_0x1e185d[_0x36d296(0x91)](summarizeRuntimeSkill),'skills':{'personal':_0x38c50a[_0x36d296(0x91)](summarizeRuntimeSkill),'company':_0x12b633[_0x36d296(0x91)](summarizeRuntimeSkill)}},'message':_0x36d296(0x74)+_0x1e185d[_0x36d296(0x93)]+_0x36d296(0x79)};}};function groupLocalRuntimeSkills(_0x2bf583){const _0x2a2cbb=a66_0x34f11c;return{'personal':_0x2bf583[_0x2a2cbb(0x94)](_0x1fa8ce=>_0x1fa8ce[_0x2a2cbb(0x88)]===_0x2a2cbb(0x82)),'company':_0x2bf583['filter'](_0xf38613=>_0xf38613[_0x2a2cbb(0x88)]===_0x2a2cbb(0x7b)),'builtin':_0x2bf583[_0x2a2cbb(0x94)](_0x304131=>_0x304131['scope']==='builtin')};}
1
+ const a66_0xbf5a60=a66_0x53d0;(function(_0x7bffdc,_0x3b37bd){const _0x99fcc7=a66_0x53d0,_0x5ed156=_0x7bffdc();while(!![]){try{const _0x26d0de=-parseInt(_0x99fcc7(0x1b6))/0x1*(parseInt(_0x99fcc7(0x1bd))/0x2)+parseInt(_0x99fcc7(0x1c2))/0x3+-parseInt(_0x99fcc7(0x1ba))/0x4*(parseInt(_0x99fcc7(0x1c0))/0x5)+-parseInt(_0x99fcc7(0x1ae))/0x6+parseInt(_0x99fcc7(0x1ab))/0x7*(-parseInt(_0x99fcc7(0x1b5))/0x8)+-parseInt(_0x99fcc7(0x1b3))/0x9*(-parseInt(_0x99fcc7(0x1b1))/0xa)+parseInt(_0x99fcc7(0x1a4))/0xb;if(_0x26d0de===_0x3b37bd)break;else _0x5ed156['push'](_0x5ed156['shift']());}catch(_0x335540){_0x5ed156['push'](_0x5ed156['shift']());}}}(a66_0x200d,0xdbdcc));import{CliErrors}from'../../../errors.js';function a66_0x53d0(_0x538530,_0x4ab164){_0x538530=_0x538530-0x1a2;const _0x200da9=a66_0x200d();let _0x53d086=_0x200da9[_0x538530];return _0x53d086;}import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';function a66_0x200d(){const _0x52f27b=['Listed\x20','map','str','project','7cUMJht','envName','builtin','9598314MOHTKe','\x20local\x20Skill(s).','personal','11331510tYpDaw','appCode','9yfAYzj','trim','2152232kYuqwB','197LDqlYz','../../../core/api-client.js','read','skill','13388YMrdLJ','company','local','5454RPtXwZ','authRequired','filter','1795JQXzSo','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','1450341yFQaEF','code','../../../skills/runtime-skill-sync.js','scope','remote','length','31806478lImNBr','bool','production'];a66_0x200d=function(){return _0x52f27b;};return a66_0x200d();}import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':a66_0xbf5a60(0x1b9),'command':'list','description':a66_0xbf5a60(0x1c1),'risk':a66_0xbf5a60(0x1b8),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0xb5a5f7){const _0x56863f=a66_0xbf5a60,_0x3772c5=_0xb5a5f7[_0x56863f(0x1a9)](_0x56863f(0x1c3)),_0x5ac696=normalizeListScope(_0xb5a5f7[_0x56863f(0x1a9)]('scope'));if(_0xb5a5f7[_0x56863f(0x1a5)](_0x56863f(0x1bc))){const _0x154f0d=_0xb5a5f7['accessKey'];if(!_0x154f0d)throw CliErrors[_0x56863f(0x1be)]();const {listLocalRuntimeSkills:_0x25a9df,resolveRuntimeSkillInstallTarget:_0x4ab758}=await import(_0x56863f(0x1c4)),_0x1e4d09=_0x4ab758(_0xb5a5f7[_0x56863f(0x1b2)],_0xb5a5f7[_0x56863f(0x1a5)]('project')?_0x56863f(0x1aa):'global'),_0x2fcc42=_0x25a9df({'env':_0xb5a5f7[_0x56863f(0x1ac)]??_0x56863f(0x1a6),'accessKey':_0x154f0d,'appCode':_0xb5a5f7['appCode'],'scopes':listScopeToRuntimeScopes(_0x5ac696),'code':_0x3772c5[_0x56863f(0x1b4)]()||undefined},_0x1e4d09),_0xeb9b8b=groupLocalRuntimeSkills(_0x2fcc42);return{'ok':!![],'data':{'appCode':_0xb5a5f7[_0x56863f(0x1b2)],'source':_0x56863f(0x1bc),..._0x1e4d09[_0x56863f(0x1c5)]===_0x56863f(0x1aa)?{'installScope':_0x1e4d09[_0x56863f(0x1c5)]}:{},'scope':_0x5ac696,'total':_0x2fcc42['length'],'personal':_0xeb9b8b[_0x56863f(0x1b0)][_0x56863f(0x1a3)],'company':_0xeb9b8b[_0x56863f(0x1bb)][_0x56863f(0x1a3)],'items':_0x2fcc42[_0x56863f(0x1a8)](summarizeLocalRuntimeSkill),'skills':{'personal':_0xeb9b8b['personal']['map'](summarizeLocalRuntimeSkill),'company':_0xeb9b8b[_0x56863f(0x1bb)][_0x56863f(0x1a8)](summarizeLocalRuntimeSkill)}},'message':'Listed\x20'+_0x2fcc42[_0x56863f(0x1a3)]+_0x56863f(0x1af)};}const {listRuntimeSkills:_0x4d7eb}=await import(_0x56863f(0x1b7)),_0x437238=await _0x4d7eb({'appCode':_0xb5a5f7[_0x56863f(0x1b2)],'scope':listScopeToRemoteScope(_0x5ac696),'code':_0x3772c5[_0x56863f(0x1b4)]()||undefined}),_0x70da91=shouldListScope(_0x5ac696,_0x56863f(0x1b0))?_0x437238[_0x56863f(0x1b0)]??[]:[],_0x3b0f70=shouldListScope(_0x5ac696,_0x56863f(0x1bb))?_0x437238[_0x56863f(0x1bb)]??[]:[],_0x230324=[..._0x70da91,..._0x3b0f70];return{'ok':!![],'data':{'appCode':_0xb5a5f7['appCode'],'source':_0x56863f(0x1a2),'scope':_0x5ac696,'total':_0x230324['length'],'personal':_0x70da91['length'],'company':_0x3b0f70['length'],'items':_0x230324[_0x56863f(0x1a8)](summarizeRuntimeSkill),'skills':{'personal':_0x70da91['map'](summarizeRuntimeSkill),'company':_0x3b0f70['map'](summarizeRuntimeSkill)}},'message':_0x56863f(0x1a7)+_0x230324[_0x56863f(0x1a3)]+'\x20remote\x20Skill(s).'};}};function groupLocalRuntimeSkills(_0xa90b7d){const _0x54df00=a66_0xbf5a60;return{'personal':_0xa90b7d[_0x54df00(0x1bf)](_0x59a828=>_0x59a828[_0x54df00(0x1c5)]==='personal'),'company':_0xa90b7d[_0x54df00(0x1bf)](_0x5d4d8a=>_0x5d4d8a[_0x54df00(0x1c5)]===_0x54df00(0x1bb)),'builtin':_0xa90b7d['filter'](_0x4bcdff=>_0x4bcdff['scope']===_0x54df00(0x1ad))};}