@lovrabet/lovrabet-cli 2.2.7-beta.1 → 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_0x5db85d=a57_0x5182;(function(_0x4922ef,_0x2cb4d1){const _0x1e9d14=a57_0x5182,_0x116bc4=_0x4922ef();while(!![]){try{const _0x91b45=parseInt(_0x1e9d14(0x10d))/0x1+parseInt(_0x1e9d14(0x101))/0x2*(-parseInt(_0x1e9d14(0x136))/0x3)+-parseInt(_0x1e9d14(0x131))/0x4*(-parseInt(_0x1e9d14(0x10a))/0x5)+parseInt(_0x1e9d14(0x122))/0x6+-parseInt(_0x1e9d14(0x108))/0x7+-parseInt(_0x1e9d14(0x138))/0x8+parseInt(_0x1e9d14(0xf7))/0x9;if(_0x91b45===_0x2cb4d1)break;else _0x116bc4['push'](_0x116bc4['shift']());}catch(_0x36eb04){_0x116bc4['push'](_0x116bc4['shift']());}}}(a57_0x1a05,0x74e34));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';function a57_0x5182(_0x5d67e2,_0x1838ed){_0x5d67e2=_0x5d67e2-0xee;const _0x1a05dc=a57_0x1a05();let _0x5182ce=_0x1a05dc[_0x5d67e2];return _0x5182ce;}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_0x5db85d(0xfe),'type':'string','required':!![],'enum':[a57_0x5db85d(0x126),'ONCE'],'description':a57_0x5db85d(0x129)},CRON_FLAG={'name':'cron','type':a57_0x5db85d(0x11e),'description':a57_0x5db85d(0x128)},SCHEDULED_AT_FLAG={'name':a57_0x5db85d(0x11a),'type':a57_0x5db85d(0x11e),'description':a57_0x5db85d(0x12f)},TITLE_FLAG={'name':'title','type':'string','required':!![],'description':'Schedule\x20title'},PROMPT_FLAG={'name':'prompt','type':a57_0x5db85d(0x11e),'required':!![],'description':a57_0x5db85d(0x12c)},MODEL_FLAG={'name':a57_0x5db85d(0x10c),'type':a57_0x5db85d(0x11e),'enum':[a57_0x5db85d(0x120),a57_0x5db85d(0x127),a57_0x5db85d(0xfd)],'default':a57_0x5db85d(0x127),'description':'Task\x20model\x20used\x20when\x20the\x20schedule\x20runs'},SCHEDULE_ID_FLAG={'name':a57_0x5db85d(0x10e),'type':a57_0x5db85d(0x11e),'required':!![],'description':a57_0x5db85d(0x116),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a57_0x5db85d(0x113)}},LIMIT_FLAG={'name':'limit','type':a57_0x5db85d(0x133),'default':0x14,'description':a57_0x5db85d(0xf0)},CURSOR_FLAG={'name':a57_0x5db85d(0x130),'type':a57_0x5db85d(0x11e),'description':a57_0x5db85d(0x111)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x2f095f){const _0x296744=a57_0x5db85d,_0x38b6cc=_0x2f095f[_0x296744(0xff)](_0x296744(0xfe)),_0x5ae793=_0x2f095f[_0x296744(0xff)](_0x296744(0xf4))[_0x296744(0xf6)](),_0x2bcc44=_0x2f095f[_0x296744(0xff)](_0x296744(0x103))[_0x296744(0xf6)](),_0x2881e6=_0x2f095f[_0x296744(0xff)]('model'),_0x216f8b=_0x2f095f['str'](_0x296744(0x125)),_0x4ff7fb=_0x2f095f[_0x296744(0xff)](_0x296744(0x11a));if(!_0x5ae793)throw CliErrors['validation']('--title\x20must\x20not\x20be\x20blank.');if(!_0x2bcc44)throw CliErrors[_0x296744(0xfc)](_0x296744(0x11d));if(_0x38b6cc===_0x296744(0x126)){if(!_0x216f8b||_0x4ff7fb)throw CliErrors[_0x296744(0xfc)]('CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.');return{'kind':_0x38b6cc,'timezone':_0x296744(0x121),'cron':_0x216f8b,'title':_0x5ae793,'prompt':_0x2bcc44,'model':_0x2881e6};}if(_0x38b6cc==='ONCE'){if(!_0x4ff7fb||_0x216f8b)throw CliErrors[_0x296744(0xfc)](_0x296744(0xf2));return{'kind':_0x38b6cc,'timezone':_0x296744(0x121),'scheduledAt':_0x4ff7fb,'title':_0x5ae793,'prompt':_0x2bcc44,'model':_0x2881e6};}throw CliErrors[_0x296744(0xfc)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x39352d){const _0x1d80c6=a57_0x5db85d;return _0x1d80c6(0x118)+encodeURIComponent(_0x39352d)+_0x1d80c6(0x107);}function a57_0x1a05(){const _0x2a95f1=['325923XEYusk','schedule-id','description','/run','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','POST','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Show\x20one\x20schedule\x20by\x20schedule\x20ID','detail','Schedule\x20UUID','scheduleId','/api/harness/apps/','build','scheduled-at','list','\x20immediately','--prompt\x20must\x20not\x20be\x20blank.','string','Deleted\x20schedule\x20','kimi/k3','UTC','1759740ubGPJU','validate','appCode','cron','CRON','deepseek-v4-flash-0731','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','Schedule\x20kind:\x20CRON\x20or\x20ONCE','创建周期性或单次执行的\x20Agent\x20定时任务','read','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','limit','schedule','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','cursor','42644pSwpMv','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','number','Schedule\x20input\x20is\x20valid','Preview:\x20run\x20schedule\x20','14190FqlNsw','将在当前应用中创建可自动触发\x20Agent\x20的定时任务;到达设定时间后会按任务内容创建并执行\x20Task。','6305120IySmhB','将永久删除该定时任务并停止后续自动触发;已经创建的历史\x20Task\x20不受影响。','taskId','Page\x20size\x20from\x201\x20to\x20100','Queued\x20Task\x20','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','high-risk-write','title','\x20schedule\x20','trim','11365839ZxUERj','body','run','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','删除定时任务并停止其后续触发','validation','deepseek-v4-pro-0813','kind','str','num','16tYzLKw','length','prompt','DELETE','isSafeInteger','Created\x20','/schedules','4414459dKbiBv','立即运行一次定时任务并创建\x20Task','25JFSEiU','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','model'];a57_0x1a05=function(){return _0x2a95f1;};return a57_0x1a05();}function scheduleItemPath(_0x5d6551,_0x1f6c2b){return scheduleCollectionPath(_0x5d6551)+'/'+encodeURIComponent(_0x1f6c2b);}const scheduleValidate={'service':'schedule','command':a57_0x5db85d(0x123),'description':a57_0x5db85d(0x10b),'risk':a57_0x5db85d(0x12b),'flags':INPUT_FLAGS,async 'validate'(_0x52f4d4){readScheduleInput(_0x52f4d4);},async 'execute'(_0x4bd127){const _0xc2fa8c=a57_0x5db85d,_0x3e7c71=readScheduleInput(_0x4bd127),_0x3d2c16=await validateRuntimeSchedule(_0x4bd127[_0xc2fa8c(0x124)],_0x3e7c71);return{'ok':!![],'data':_0x3d2c16,'message':_0xc2fa8c(0x134)};}},scheduleCreate={'service':a57_0x5db85d(0x12e),'command':'create','description':a57_0x5db85d(0x12a),'risk':a57_0x5db85d(0xf3),'confirmationDescription':a57_0x5db85d(0x137),'flags':INPUT_FLAGS,async 'validate'(_0x40fbac){readScheduleInput(_0x40fbac);},async 'execute'(_0x3d0c65){const _0x5e01cc=a57_0x5db85d,_0x5d023c=readScheduleInput(_0x3d0c65),_0x22587a=await validateRuntimeSchedule(_0x3d0c65['appCode'],_0x5d023c),_0x55f40d=await createRuntimeSchedule(_0x3d0c65[_0x5e01cc(0x124)],_0x22587a);return{'ok':!![],'data':_0x55f40d,'message':_0x5e01cc(0x106)+_0x55f40d[_0x5e01cc(0xfe)]+_0x5e01cc(0xf5)+_0x55f40d[_0x5e01cc(0x117)]};},async 'dryRun'(_0xb75378){const _0x3ec375=a57_0x5db85d,_0x3cb001=readScheduleInput(_0xb75378);return dryRun(_0x3ec375(0x112),scheduleCollectionPath(_0xb75378[_0x3ec375(0x124)]))[_0x3ec375(0xf8)](_0x3cb001)[_0x3ec375(0x10f)]('Preview:\x20create\x20an\x20Agent\x20schedule')[_0x3ec375(0x119)]();}},scheduleList={'service':'schedule','command':a57_0x5db85d(0x11b),'description':a57_0x5db85d(0x132),'risk':a57_0x5db85d(0x12b),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x3ccbf1){const _0x47f599=a57_0x5db85d,_0x5c392c=_0x3ccbf1[_0x47f599(0x100)](_0x47f599(0x12d));if(!Number[_0x47f599(0x105)](_0x5c392c)||_0x5c392c<0x1||_0x5c392c>0x64)throw CliErrors[_0x47f599(0xfc)](_0x47f599(0xfa));const _0x20de90=_0x3ccbf1[_0x47f599(0xff)]('cursor');if(_0x20de90&&(_0x20de90[_0x47f599(0x102)]>0x400||_0x20de90[_0x47f599(0xf6)]()!==_0x20de90))throw CliErrors[_0x47f599(0xfc)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0x3726b6){const _0x18f163=a57_0x5db85d,_0x53c988=_0x3726b6[_0x18f163(0xff)](_0x18f163(0x130)),_0x2f4987=await listRuntimeSchedules(_0x3726b6[_0x18f163(0x124)],{'kind':_0x3726b6['str'](_0x18f163(0xfe)),'limit':_0x3726b6[_0x18f163(0x100)](_0x18f163(0x12d)),..._0x53c988?{'cursor':_0x53c988}:{}});return{'ok':!![],'data':_0x2f4987};}},scheduleDetail={'service':a57_0x5db85d(0x12e),'command':a57_0x5db85d(0x115),'description':a57_0x5db85d(0x114),'risk':a57_0x5db85d(0x12b),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xb67334){const _0x22ce8c=a57_0x5db85d,_0x34a7cd=await getRuntimeSchedule(_0xb67334[_0x22ce8c(0x124)],_0xb67334[_0x22ce8c(0xff)](_0x22ce8c(0x10e)));return{'ok':!![],'data':_0x34a7cd};}},scheduleRun={'service':a57_0x5db85d(0x12e),'command':a57_0x5db85d(0xf9),'description':a57_0x5db85d(0x109),'risk':'high-risk-write','confirmationDescription':'将忽略原定触发时间,立即运行一次该定时任务并创建新的\x20Agent\x20Task。','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x41d078){const _0x566f42=a57_0x5db85d,_0x27df20=_0x41d078[_0x566f42(0xff)]('schedule-id'),_0x48ec8f=await runRuntimeSchedule(_0x41d078[_0x566f42(0x124)],_0x27df20);return{'ok':!![],'data':_0x48ec8f,'message':_0x566f42(0xf1)+_0x48ec8f[_0x566f42(0xef)]+'\x20from\x20schedule\x20'+_0x27df20};},async 'dryRun'(_0x4ce664){const _0x573e80=a57_0x5db85d,_0x49f696=_0x4ce664[_0x573e80(0xff)](_0x573e80(0x10e));return dryRun(_0x573e80(0x112),scheduleItemPath(_0x4ce664[_0x573e80(0x124)],_0x49f696)+_0x573e80(0x110))['description'](_0x573e80(0x135)+_0x49f696+_0x573e80(0x11c))[_0x573e80(0x119)]();}},scheduleDelete={'service':a57_0x5db85d(0x12e),'command':'delete','description':a57_0x5db85d(0xfb),'risk':a57_0x5db85d(0xf3),'confirmationDescription':a57_0x5db85d(0xee),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1ab890){const _0x8c2ff0=a57_0x5db85d,_0x12b31e=_0x1ab890['str']('schedule-id'),_0x1f61ee=await deleteRuntimeSchedule(_0x1ab890['appCode'],_0x12b31e);return{'ok':!![],'data':_0x1f61ee,'message':_0x8c2ff0(0x11f)+_0x12b31e};},async 'dryRun'(_0x3cf9b4){const _0x3e8fe9=a57_0x5db85d,_0x717fed=_0x3cf9b4[_0x3e8fe9(0xff)](_0x3e8fe9(0x10e));return dryRun(_0x3e8fe9(0x104),scheduleItemPath(_0x3cf9b4[_0x3e8fe9(0x124)],_0x717fed))['description']('Preview:\x20delete\x20schedule\x20'+_0x717fed)['build']();}};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_0x13d54e=a58_0x565d;function a58_0x14ea(){const _0x1fb1cb=['Export\x20machine-readable\x20command\x20schema\x20(JSON)','10xCjquJ','196648JAbxuN','4ZEHlou','243EhXUSu','9sHLbaf','212997DSmkVO','read','2164371YsLAjt','5130279eroxUz','614440jPfbHG','318AHoLBt','schema','72235wqYkSG','15256428DOCvqd'];a58_0x14ea=function(){return _0x1fb1cb;};return a58_0x14ea();}(function(_0x18a62e,_0x401d50){const _0x5d712a=a58_0x565d,_0xe215e=_0x18a62e();while(!![]){try{const _0x1541a8=parseInt(_0x5d712a(0xa6))/0x1*(parseInt(_0x5d712a(0xa3))/0x2)+parseInt(_0x5d712a(0xa5))/0x3*(-parseInt(_0x5d712a(0xaa))/0x4)+parseInt(_0x5d712a(0x9e))/0x5*(parseInt(_0x5d712a(0x9c))/0x6)+-parseInt(_0x5d712a(0xa9))/0x7+parseInt(_0x5d712a(0xa2))/0x8*(-parseInt(_0x5d712a(0xa4))/0x9)+-parseInt(_0x5d712a(0xa1))/0xa*(parseInt(_0x5d712a(0xa8))/0xb)+parseInt(_0x5d712a(0x9f))/0xc;if(_0x1541a8===_0x401d50)break;else _0xe215e['push'](_0xe215e['shift']());}catch(_0x37f26d){_0xe215e['push'](_0xe215e['shift']());}}}(a58_0x14ea,0x63d2f));import{buildSchemaPayload}from'../framework/schema-export.js';function a58_0x565d(_0xbffc09,_0x517638){_0xbffc09=_0xbffc09-0x9c;const _0x14ea7f=a58_0x14ea();let _0x565d20=_0x14ea7f[_0xbffc09];return _0x565d20;}async function execute(_0x32d4e4){const _0x52052e=await buildSchemaPayload();return{'ok':!![],'data':_0x52052e};}export const schemaDefinition={'service':a58_0x13d54e(0x9d),'command':'export','description':a58_0x13d54e(0xa0),'risk':a58_0x13d54e(0xa7),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
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(_0x2f3f95,_0x4415a0){const _0x5f1391=a59_0x5684,_0x3df406=_0x2f3f95();while(!![]){try{const _0x50f23a=-parseInt(_0x5f1391(0x1fd))/0x1*(parseInt(_0x5f1391(0x1dd))/0x2)+-parseInt(_0x5f1391(0x213))/0x3*(-parseInt(_0x5f1391(0x225))/0x4)+-parseInt(_0x5f1391(0x202))/0x5+-parseInt(_0x5f1391(0x1f2))/0x6+parseInt(_0x5f1391(0x201))/0x7+-parseInt(_0x5f1391(0x206))/0x8+-parseInt(_0x5f1391(0x219))/0x9*(-parseInt(_0x5f1391(0x1e2))/0xa);if(_0x50f23a===_0x4415a0)break;else _0x3df406['push'](_0x3df406['shift']());}catch(_0x115430){_0x3df406['push'](_0x3df406['shift']());}}}(a59_0x17cc,0xf19db));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(_0x3ed5ff,_0x592cad){const _0x9061db=a59_0x5684,_0x355d9e=listLocalServiceTrees();let _0x765426;for(const _0xda8e8c of _0x355d9e){const _0x408ac4=matchServiceTreeCommand(_0xda8e8c,_0x3ed5ff);if(!_0x408ac4)continue;(!_0x765426||_0x408ac4[_0x9061db(0x200)][_0x9061db(0x222)][_0x9061db(0x1ef)]>_0x765426['command'][_0x9061db(0x222)][_0x9061db(0x1ef)])&&(_0x765426={'tree':_0xda8e8c,'command':_0x408ac4[_0x9061db(0x200)],'remainingArgs':_0x408ac4['remainingArgs']});}if(!_0x765426)return undefined;const _0x35c1d5={..._0x592cad};return applyAppBinding(_0x765426[_0x9061db(0x20d)],_0x765426[_0x9061db(0x200)],_0x35c1d5),{'definition':buildDynamicCommandDefinition(_0x765426[_0x9061db(0x20d)],_0x765426[_0x9061db(0x200)]),'args':_0x765426[_0x9061db(0x1e0)],'flags':_0x35c1d5,'tree':_0x765426[_0x9061db(0x20d)],'command':_0x765426[_0x9061db(0x200)]};}export function generateDynamicServiceHelp(_0x14dd11){const _0x37015e=a59_0x5684,_0x31b5e0=listLocalServiceTrees()[_0x37015e(0x22a)](_0x45dd04=>_0x45dd04['service'][_0x37015e(0x1fa)]===_0x14dd11);if(!_0x31b5e0)return undefined;const _0x503b1f=[CLI_BIN_NAME+'\x20'+_0x14dd11+_0x37015e(0x233),'',_0x31b5e0[_0x37015e(0x1d7)][_0x37015e(0x1ed)]||_0x14dd11,_0x31b5e0[_0x37015e(0x1d7)]['description']?'\x20\x20'+_0x31b5e0[_0x37015e(0x1d7)]['description']:'','',_0x37015e(0x1e1),..._0x31b5e0['commands']['map'](_0x12e54a=>{const _0x4d8472=_0x37015e,_0x58d9fb=_0x12e54a[_0x4d8472(0x222)][_0x4d8472(0x1f5)](0x1)['join']('\x20'),_0x20d0b0=_0x12e54a['risk']===_0x4d8472(0x21e)?'':'\x20['+_0x12e54a['risk']+']';return'\x20\x20'+_0x58d9fb['padEnd'](0x18)+'\x20'+(_0x12e54a[_0x4d8472(0x21c)]||'')+_0x20d0b0;}),'',_0x37015e(0x207)+CLI_BIN_NAME+_0x37015e(0x1f9)+_0x14dd11+_0x37015e(0x21d)][_0x37015e(0x1ea)](Boolean);return _0x503b1f['join']('\x0a');}export function listDynamicServiceEntries(){const _0x46e408=a59_0x5684;return listLocalServices()[_0x46e408(0x226)](_0x5083d0=>{const _0x2534b3=_0x46e408,_0x1de208=_0x5083d0['normalizedManifest'];return{'service':_0x1de208[_0x2534b3(0x1d7)][_0x2534b3(0x1fa)],'label':_0x1de208['service'][_0x2534b3(0x1ed)]||_0x1de208[_0x2534b3(0x1d7)][_0x2534b3(0x1fa)],'commands':_0x1de208[_0x2534b3(0x218)][_0x2534b3(0x226)](_0xb25149=>({'command':dynamicCommandName(_0xb25149),'description':_0xb25149[_0x2534b3(0x21c)]||'Run\x20service\x20command\x20'+_0xb25149[_0x2534b3(0x212)],'tag':riskTag(_0xb25149[_0x2534b3(0x217)])}))};});}export function getDynamicServiceEntry(_0x44a30b){const _0x5abce5=a59_0x5684;return listDynamicServiceEntries()[_0x5abce5(0x22a)](_0x34479a=>_0x34479a[_0x5abce5(0x1d7)]===_0x44a30b);}export function listDynamicServiceDefinitions(_0x3e5a11){const _0x6fa358=a59_0x5684;return listLocalServiceTrees()[_0x6fa358(0x1ea)](_0x23f893=>!_0x3e5a11||_0x23f893[_0x6fa358(0x1d7)][_0x6fa358(0x1fa)]===_0x3e5a11)[_0x6fa358(0x1ec)](_0x3643fe=>_0x3643fe['commands']['map'](_0x93252=>buildDynamicCommandDefinition(_0x3643fe,_0x93252)));}export function getDynamicServiceDefinitions(_0x552827){const _0x34a032=a59_0x5684,_0x42432a=listDynamicServiceDefinitions(_0x552827);return _0x42432a[_0x34a032(0x1ef)]>0x0?_0x42432a:undefined;}export function findDynamicServiceDefinition(_0x12a8c0,_0x1e339f){const _0x2d438a=a59_0x5684;return listDynamicServiceDefinitions(_0x12a8c0)[_0x2d438a(0x22a)](_0x339d4b=>_0x339d4b[_0x2d438a(0x200)]===_0x1e339f);}export function buildDynamicCommandDefinition(_0x260fd8,_0x36447b){const _0x588551=a59_0x5684;return{'service':_0x260fd8[_0x588551(0x1d7)][_0x588551(0x1fa)],'command':dynamicCommandName(_0x36447b),'description':_0x36447b['description']||_0x588551(0x1da)+_0x36447b[_0x588551(0x212)],'risk':_0x36447b['risk'],..._0x36447b[_0x588551(0x217)]==='read'?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x36447b)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x36447b[_0x588551(0x1e8)][_0x588551(0x226)](_0x46b875=>({'name':_0x46b875[_0x588551(0x1ed)],'description':_0x46b875[_0x588551(0x21c)]||_0x46b875[_0x588551(0x1ed)],'required':_0x46b875[_0x588551(0x205)]})),'flags':_0x36447b[_0x588551(0x1f8)][_0x588551(0x226)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x36447b),async 'dryRun'(_0x59f98c){const _0x567a38=_0x588551,_0x25b066=await compilePlan(_0x36447b,_0x59f98c);return{'method':_0x567a38(0x21b),'url':_0x36447b[_0x567a38(0x212)],'body':{'target':targetPreview(_0x25b066),'params':_0x25b066['params']},'description':_0x567a38(0x1f3)+_0x36447b[_0x567a38(0x212)]};},async 'execute'(_0x493b4a){const _0x467bb6=_0x588551,_0x5ebbd5=await compilePlan(_0x36447b,_0x493b4a),_0x4f751e=Date['now'](),_0x288656=await executePlan(_0x5ebbd5,_0x36447b,_0x493b4a),_0x2ccdd0=Date[_0x467bb6(0x1f0)]()-_0x4f751e;return{'ok':!![],'data':{'service':_0x260fd8[_0x467bb6(0x1d7)],'command':_0x36447b[_0x467bb6(0x212)],'target':targetPreview(_0x5ebbd5),'result':_0x288656,'elapsed':_0x2ccdd0},'message':_0x467bb6(0x231)+_0x36447b[_0x467bb6(0x212)]+_0x467bb6(0x211)+_0x2ccdd0+'ms'};}};}function buildDynamicConfirmationDescription(_0x1818a1){const _0x512ea4=a59_0x5684,_0x5b0a9c=_0x1818a1[_0x512ea4(0x21c)]||_0x1818a1[_0x512ea4(0x212)],_0x5d0a5c=_0x1818a1[_0x512ea4(0x217)]===_0x512ea4(0x1e3)?_0x512ea4(0x1e5):'该命令被清单标记为写入,可能修改业务数据或服务状态。';return'将通过\x20Service\x20Tree\x20执行“'+_0x5b0a9c+'”。'+_0x5d0a5c;}function dynamicCommandName(_0x19d081){const _0x38be40=a59_0x5684;return _0x19d081[_0x38be40(0x222)][_0x38be40(0x1f5)](0x1)[_0x38be40(0x1f6)]('\x20');}function riskTag(_0x1d2e6f){return _0x1d2e6f==='read'?'':'\x20\x20['+_0x1d2e6f+']';}function a59_0x17cc(){const _0x36ed75=['该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','appCode','tenantCode','args','bff','filter','fromEntries','flatMap','name','\x20requires\x20target.sqlCode.','length','now','source','2518326CpEhAe','Preview\x20dynamic\x20service\x20command:\x20','startsWith','slice','join','app','flags','\x20service\x20detail\x20--service\x20','code','env','employeeId','18QOPomE','bffCode','appRef','command','5116496StQROB','3692945bYtvPF','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','envName','required','3694408npYqKF','Use\x20`','string','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','datasetCode','context.','Unknown\x20appRef\x20\x22','tree','Cannot\x20resolve\x20datatable\x20\x22','sqlCode','appcode','\x20completed\x20in\x20','cliPath','6OmCDTr','scriptName','bffId','operator','risk','commands','21267234smcruZ','target','SERVICE_TREE','description','`\x20to\x20inspect\x20the\x20manifest.','read','\x20requires\x20target.functionName.','validation','const','fullPath','kind','rawFlags','425660AgDNJz','map','default','push','\x20\x20MAP\x20TO','find','username','datatable','nickName','params','number','type','Service\x20command\x20','json','\x20<command>\x20[flags]','tableName','service','enum','userName','Run\x20service\x20command\x20','mapTo','data','77446tbWRaU','\x20\x20\x20\x20command:\x20','loginName','remainingArgs','Commands:','10ptYDRg','high-risk-write','\x20\x20\x20\x20sqlCode:\x20'];a59_0x17cc=function(){return _0x36ed75;};return a59_0x17cc();}function flagToCommandFlag(_0x444bc9){const _0x51ce4f=a59_0x5684;return{'name':_0x444bc9['cliName'],'type':_0x444bc9[_0x51ce4f(0x230)]===_0x51ce4f(0x232)?_0x51ce4f(0x208):_0x444bc9[_0x51ce4f(0x230)],'description':_0x444bc9[_0x51ce4f(0x21c)]||_0x444bc9[_0x51ce4f(0x1ed)],'required':_0x444bc9['required'],'default':isPrimitiveFlagDefault(_0x444bc9['default'])?_0x444bc9[_0x51ce4f(0x227)]:undefined,'enum':_0x444bc9[_0x51ce4f(0x1d8)]};}async function compilePlan(_0x3df752,_0x269889){const _0xf1f769=a59_0x5684;return compileServiceTreeCommand(_0x3df752,{'flags':_0x269889[_0xf1f769(0x224)],'args':_0x269889['args'],'context':await buildServiceContext(_0x3df752,_0x269889)});}async function buildServiceContext(_0x22a024,_0x4aa6d6){const _0x389a2f=a59_0x5684,_0x9159c7={'appCode':_0x4aa6d6[_0x389a2f(0x1e6)],'env':_0x4aa6d6[_0x389a2f(0x204)],'envName':_0x4aa6d6[_0x389a2f(0x204)]};if(!usesRuntimeContext(_0x22a024))return _0x9159c7;const _0x2de449=await getLoginUserInfo(),_0x267138=pickFirst(_0x2de449['userId'],_0x2de449['id']);return{..._0x9159c7,'user':_0x2de449,'userId':_0x267138,'id':_0x2de449['id'],'username':pickFirst(_0x2de449[_0x389a2f(0x22b)],_0x2de449[_0x389a2f(0x1d9)],_0x2de449[_0x389a2f(0x1df)]),'userName':_0x2de449[_0x389a2f(0x1d9)],'nickname':pickFirst(_0x2de449['nickname'],_0x2de449['nickName']),'nickName':_0x2de449[_0x389a2f(0x22d)],'tenantCode':_0x2de449[_0x389a2f(0x1e7)],'employeeId':_0x2de449[_0x389a2f(0x1fc)]};}function usesRuntimeContext(_0x5dc573){const _0x2ddbb0=a59_0x5684;return _0x5dc573[_0x2ddbb0(0x1db)]['some'](_0x483f7c=>typeof _0x483f7c['source']==='string'&&(_0x483f7c[_0x2ddbb0(0x1f1)][_0x2ddbb0(0x1f4)](_0x2ddbb0(0x20b))||_0x483f7c[_0x2ddbb0(0x1f1)][_0x2ddbb0(0x1f4)]('ctx.')));}function pickFirst(..._0x32b2fb){const _0x51b9ea=a59_0x5684;return _0x32b2fb[_0x51b9ea(0x22a)](_0x3bffe3=>_0x3bffe3!==undefined&&_0x3bffe3!==null);}async function executePlan(_0x470316,_0x44e279,_0x25d1b2){const _0xb5cd0d=a59_0x5684;if(_0x470316[_0xb5cd0d(0x223)]===_0xb5cd0d(0x1dc)){const _0x4ad92a=await resolveDatasetCode(_0x470316,_0x44e279,_0x25d1b2);return executeData(_0x4ad92a,_0x470316[_0xb5cd0d(0x200)],_0x470316['params']);}if(_0x470316[_0xb5cd0d(0x223)]==='sql'){if(!_0x470316[_0xb5cd0d(0x20f)])throw CliErrors[_0xb5cd0d(0x220)](_0xb5cd0d(0x231)+_0x44e279['cliPath']+_0xb5cd0d(0x1ee));return executeSdkSql(_0x470316['sqlCode'],normalizeScalarParams(_0x470316['params']));}if(_0x470316[_0xb5cd0d(0x223)]===_0xb5cd0d(0x1e9)){const _0x5a2629=_0x470316[_0xb5cd0d(0x214)]||_0x470316['bffCode']||(_0x470316[_0xb5cd0d(0x215)]==null?'':String(_0x470316[_0xb5cd0d(0x215)]));if(!_0x5a2629)throw CliErrors[_0xb5cd0d(0x220)](_0xb5cd0d(0x231)+_0x44e279[_0xb5cd0d(0x212)]+_0xb5cd0d(0x21f));return executeSdkBff(_0x5a2629,_0x470316[_0xb5cd0d(0x22e)]);}throw CliErrors['validation']('Unsupported\x20service\x20target\x20kind:\x20'+_0x470316[_0xb5cd0d(0x223)]);}function a59_0x5684(_0x351631,_0x321ad0){_0x351631=_0x351631-0x1d6;const _0x17ccdf=a59_0x17cc();let _0x568436=_0x17ccdf[_0x351631];return _0x568436;}async function resolveDatasetCode(_0x16be0e,_0x1ae009,_0x2cb340){const _0xe92b75=a59_0x5684;if(_0x16be0e[_0xe92b75(0x20a)])return _0x16be0e[_0xe92b75(0x20a)];if(!_0x16be0e[_0xe92b75(0x22c)])throw CliErrors[_0xe92b75(0x220)](_0xe92b75(0x231)+_0x1ae009[_0xe92b75(0x212)]+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x44782b=await listDatasets(_0x2cb340['appCode']),_0x2636d9=_0x44782b[_0xe92b75(0x22a)](_0x423373=>_0x423373['dbtableConfig']?.[_0xe92b75(0x1d6)]===_0x16be0e[_0xe92b75(0x22c)]);if(!_0x2636d9?.[_0xe92b75(0x1fa)])throw CliErrors[_0xe92b75(0x220)](_0xe92b75(0x20e)+_0x16be0e['datatable']+_0xe92b75(0x209)+_0x2cb340[_0xe92b75(0x1e6)]+'.',_0xe92b75(0x203));return _0x2636d9['code'];}function applyAppBinding(_0x34c944,_0x401953,_0x551f66){const _0x4d15f6=a59_0x5684,_0x221214=_0x401953['target'][_0x4d15f6(0x1ff)];if(!_0x221214)return;const _0x8df6cf=_0x34c944['appBindings'][_0x221214];if(!_0x8df6cf)throw CliErrors[_0x4d15f6(0x220)](_0x4d15f6(0x20c)+_0x221214+'\x22\x20in\x20service\x20command\x20'+_0x401953[_0x4d15f6(0x212)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x257b8d=_0x8df6cf['appcode']||_0x8df6cf['appCode'];_0x257b8d&&!hasText(_0x551f66[_0x4d15f6(0x210)])&&(_0x551f66[_0x4d15f6(0x210)]=_0x257b8d),_0x8df6cf[_0x4d15f6(0x1f7)]&&!hasText(_0x551f66[_0x4d15f6(0x1f7)])&&!hasText(_0x551f66[_0x4d15f6(0x210)])&&(_0x551f66['app']=_0x8df6cf[_0x4d15f6(0x1f7)]),_0x8df6cf[_0x4d15f6(0x1fb)]&&!hasText(_0x551f66[_0x4d15f6(0x1fb)])&&(_0x551f66[_0x4d15f6(0x1fb)]=_0x8df6cf[_0x4d15f6(0x1fb)]);}function renderDynamicCommandHelp(_0x2b4585){const _0x30e670=a59_0x5684,_0x4d9c69=['\x20\x20SERVICE\x20TREE\x20TARGET','\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x2b4585['target'][_0x30e670(0x223)],_0x30e670(0x1de)+_0x2b4585[_0x30e670(0x21a)][_0x30e670(0x200)]];if(_0x2b4585[_0x30e670(0x21a)][_0x30e670(0x20a)])_0x4d9c69['push']('\x20\x20\x20\x20datasetCode:\x20'+_0x2b4585[_0x30e670(0x21a)]['datasetCode']);if(_0x2b4585[_0x30e670(0x21a)]['datatable'])_0x4d9c69[_0x30e670(0x228)]('\x20\x20\x20\x20datatable:\x20'+_0x2b4585[_0x30e670(0x21a)][_0x30e670(0x22c)]);if(_0x2b4585[_0x30e670(0x21a)]['sqlCode'])_0x4d9c69['push'](_0x30e670(0x1e4)+_0x2b4585[_0x30e670(0x21a)]['sqlCode']);if(_0x2b4585[_0x30e670(0x21a)][_0x30e670(0x214)])_0x4d9c69[_0x30e670(0x228)]('\x20\x20\x20\x20functionName:\x20'+_0x2b4585[_0x30e670(0x21a)][_0x30e670(0x214)]);if(_0x2b4585[_0x30e670(0x1db)]['length']>0x0){_0x4d9c69[_0x30e670(0x228)]('',_0x30e670(0x229));for(const _0x2eca1c of _0x2b4585[_0x30e670(0x1db)]){_0x4d9c69['push']('\x20\x20\x20\x20'+(_0x2eca1c[_0x30e670(0x1f1)]||_0x30e670(0x221))+'\x20->\x20'+_0x2eca1c[_0x30e670(0x21a)]+(_0x2eca1c[_0x30e670(0x216)]?'.'+_0x2eca1c[_0x30e670(0x216)]:''));}}return _0x4d9c69[_0x30e670(0x1f6)]('\x0a');}function targetPreview(_0x1b7e0a){const _0x238869=a59_0x5684;return{'kind':_0x1b7e0a[_0x238869(0x223)],'command':_0x1b7e0a['command'],'appRef':_0x1b7e0a[_0x238869(0x1ff)],'datasetCode':_0x1b7e0a[_0x238869(0x20a)],'datatable':_0x1b7e0a[_0x238869(0x22c)],'sqlCode':_0x1b7e0a['sqlCode'],'bffCode':_0x1b7e0a[_0x238869(0x1fe)],'bffId':_0x1b7e0a[_0x238869(0x215)],'functionName':_0x1b7e0a[_0x238869(0x214)]};}function normalizeScalarParams(_0x49f5fd){const _0x57ffb5=a59_0x5684;return Object[_0x57ffb5(0x1eb)](Object['entries'](_0x49f5fd)['filter'](([,_0x5df994])=>typeof _0x5df994==='string'||typeof _0x5df994==='number'));}function hasText(_0x4c6120){const _0x3e21a9=a59_0x5684;return typeof _0x4c6120===_0x3e21a9(0x208)&&_0x4c6120['trim']()[_0x3e21a9(0x1ef)]>0x0;}function isPrimitiveFlagDefault(_0x136e80){const _0x4a0947=a59_0x5684;return _0x136e80===undefined||typeof _0x136e80===_0x4a0947(0x208)||typeof _0x136e80===_0x4a0947(0x22f)||typeof _0x136e80==='boolean';}
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 a60_0x3bfd(){const _0x3b2998=['7xBoMsi','commands','call','$.resources','60716EGMCDl','isArray','1655888cmnjlf','functionName','1615180vAtLIG','.resources','6pDMVQf','.actions.','564303qmUimm','fromEntries','target','44HaxiqE','hasOwnProperty','prototype','351162XYjAAV','bff','40KzunuQ','object','bff.exec','string','error','2377495hbyYhw','].target','resources','functionName\x20must\x20be\x20a\x20non-empty\x20string.','kind','push','trim','.target','scriptName','3014328ASSwBj','$.commands[','action','map','entries'];a60_0x3bfd=function(){return _0x3b2998;};return a60_0x3bfd();}function a60_0x54b6(_0x22ca81,_0x57e353){_0x22ca81=_0x22ca81-0xf2;const _0x3bfd31=a60_0x3bfd();let _0x54b66a=_0x3bfd31[_0x22ca81];return _0x54b66a;}(function(_0x5854c8,_0x2b6190){const _0x13fea2=a60_0x54b6,_0x55b667=_0x5854c8();while(!![]){try{const _0x424960=-parseInt(_0x13fea2(0x105))/0x1*(-parseInt(_0x13fea2(0xff))/0x2)+parseInt(_0x13fea2(0x107))/0x3+parseInt(_0x13fea2(0x101))/0x4+-parseInt(_0x13fea2(0x114))/0x5+parseInt(_0x13fea2(0xf6))/0x6*(-parseInt(_0x13fea2(0xfb))/0x7)+-parseInt(_0x13fea2(0x10f))/0x8*(parseInt(_0x13fea2(0x10d))/0x9)+-parseInt(_0x13fea2(0x103))/0xa*(-parseInt(_0x13fea2(0x10a))/0xb);if(_0x424960===_0x2b6190)break;else _0x55b667['push'](_0x55b667['shift']());}catch(_0x43dc08){_0x55b667['push'](_0x55b667['shift']());}}}(a60_0x3bfd,0x3ed24));export function adaptServiceTreeManifestForLegacyFramework(_0x5a9a82){const _0x9347ae=a60_0x54b6,_0x560ebb=cloneJsonValue(_0x5a9a82),_0x3eee45=[];if(!isObjectRecord(_0x560ebb))return{'manifest':_0x560ebb,'errors':_0x3eee45};return Array[_0x9347ae(0x100)](_0x560ebb[_0x9347ae(0xfc)])&&_0x560ebb[_0x9347ae(0xfc)]['forEach']((_0x147fbc,_0x8fd613)=>{const _0x8f507b=_0x9347ae;if(!isObjectRecord(_0x147fbc))return;adaptBffTarget(_0x147fbc['target'],_0x8f507b(0xf7)+_0x8fd613+_0x8f507b(0x115),_0x3eee45);}),adaptResources(_0x560ebb[_0x9347ae(0x116)],_0x9347ae(0xfe),_0x3eee45),{'manifest':_0x560ebb,'errors':_0x3eee45};}export function toPublicServiceTreeTarget(_0x567706){const _0x3f413b=a60_0x54b6,{scriptName:_0x3cd4d0,..._0x1821ea}=_0x567706;return typeof _0x3cd4d0===_0x3f413b(0x112)&&_0x3cd4d0['trim']()&&(_0x1821ea[_0x3f413b(0x102)]=_0x3cd4d0),_0x1821ea;}export function toPublicNormalizedServiceTree(_0xc66b8f){const _0x589f58=a60_0x54b6;return{..._0xc66b8f,'commands':_0xc66b8f[_0x589f58(0xfc)][_0x589f58(0xf9)](_0x132db9=>({..._0x132db9,'target':toPublicServiceTreeTarget(_0x132db9[_0x589f58(0x109)])}))};}function adaptResources(_0x2e8c7f,_0x180637,_0x5c56ef){const _0x26f114=a60_0x54b6;if(!isObjectRecord(_0x2e8c7f))return;for(const [_0x4fb70a,_0x244ac6]of Object[_0x26f114(0xfa)](_0x2e8c7f)){if(!isObjectRecord(_0x244ac6))continue;const _0x2b5511=_0x180637+'.'+_0x4fb70a;if(isObjectRecord(_0x244ac6['actions']))for(const [_0x1d06ca,_0xd40186]of Object[_0x26f114(0xfa)](_0x244ac6['actions'])){if(!isObjectRecord(_0xd40186))continue;const _0x4373cd=_0x2b5511+_0x26f114(0x106)+_0x1d06ca,_0x44928b=isObjectRecord(_0xd40186['target'])&&_0xd40186['target'][_0x26f114(0x118)]===_0x26f114(0x10e);adaptBffTarget(_0xd40186['target'],_0x4373cd+_0x26f114(0xf4),_0x5c56ef),(_0x44928b||isBffAction(_0xd40186))&&adaptFunctionNameField(_0xd40186,_0x4373cd,_0x5c56ef);}adaptResources(_0x244ac6[_0x26f114(0x116)],_0x2b5511+_0x26f114(0x104),_0x5c56ef);}}function adaptBffTarget(_0x3ca956,_0xdaa8ba,_0x3c297e){const _0x4dafe3=a60_0x54b6;if(!isObjectRecord(_0x3ca956)||_0x3ca956['kind']!==_0x4dafe3(0x10e))return;adaptFunctionNameField(_0x3ca956,_0xdaa8ba,_0x3c297e);}function adaptFunctionNameField(_0x551e25,_0x4700b0,_0x529b97){const _0x5df95e=a60_0x54b6;Object[_0x5df95e(0x10c)][_0x5df95e(0x10b)][_0x5df95e(0xfd)](_0x551e25,_0x5df95e(0xf5))&&_0x529b97[_0x5df95e(0xf2)]({'level':_0x5df95e(0x113),'path':_0x4700b0+'.scriptName','message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object['prototype']['hasOwnProperty']['call'](_0x551e25,'functionName')){if(typeof _0x551e25[_0x5df95e(0x102)]!==_0x5df95e(0x112)||!_0x551e25[_0x5df95e(0x102)][_0x5df95e(0xf3)]()){_0x529b97[_0x5df95e(0xf2)]({'level':_0x5df95e(0x113),'path':_0x4700b0+'.functionName','message':_0x5df95e(0x117)}),delete _0x551e25['functionName'];return;}_0x551e25[_0x5df95e(0xf5)]=_0x551e25[_0x5df95e(0x102)],delete _0x551e25[_0x5df95e(0x102)];}}function isBffAction(_0x450ce7){const _0x5b66ce=a60_0x54b6;return _0x450ce7[_0x5b66ce(0x118)]==='bff'||_0x450ce7[_0x5b66ce(0xf8)]==='bff.exec'||_0x450ce7[_0x5b66ce(0x109)]===_0x5b66ce(0x111);}function cloneJsonValue(_0x36473d){const _0x1bef95=a60_0x54b6;if(Array[_0x1bef95(0x100)](_0x36473d))return _0x36473d[_0x1bef95(0xf9)](_0x4ffb8c=>cloneJsonValue(_0x4ffb8c));if(isObjectRecord(_0x36473d))return Object[_0x1bef95(0x108)](Object[_0x1bef95(0xfa)](_0x36473d)[_0x1bef95(0xf9)](([_0x5d4a5f,_0x517290])=>[_0x5d4a5f,cloneJsonValue(_0x517290)]));return _0x36473d;}function isObjectRecord(_0x2d47a8){const _0x155c2e=a60_0x54b6;return Boolean(_0x2d47a8)&&typeof _0x2d47a8===_0x155c2e(0x110)&&!Array[_0x155c2e(0x100)](_0x2d47a8);}
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_0x3efeb2=a61_0xa9a7;(function(_0x42f15a,_0x1fbd33){const _0x2a0ce9=a61_0xa9a7,_0x3c4a03=_0x42f15a();while(!![]){try{const _0x22f164=parseInt(_0x2a0ce9(0x103))/0x1*(-parseInt(_0x2a0ce9(0x105))/0x2)+parseInt(_0x2a0ce9(0x133))/0x3+-parseInt(_0x2a0ce9(0x12e))/0x4+parseInt(_0x2a0ce9(0x11c))/0x5+parseInt(_0x2a0ce9(0x126))/0x6+parseInt(_0x2a0ce9(0x125))/0x7*(parseInt(_0x2a0ce9(0x12b))/0x8)+-parseInt(_0x2a0ce9(0x120))/0x9*(parseInt(_0x2a0ce9(0x111))/0xa);if(_0x22f164===_0x1fbd33)break;else _0x3c4a03['push'](_0x3c4a03['shift']());}catch(_0x347b4f){_0x3c4a03['push'](_0x3c4a03['shift']());}}}(a61_0x4837,0xc66ef));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_0x3efeb2(0x106),'type':a61_0x3efeb2(0x13c),'required':!![],'description':a61_0x3efeb2(0xff)},SERVICE_FLAG={'name':a61_0x3efeb2(0x117),'type':a61_0x3efeb2(0x13c),'required':!![],'description':a61_0x3efeb2(0x110),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function a61_0xa9a7(_0x5a7209,_0x34f3be){_0x5a7209=_0x5a7209-0xfa;const _0x483705=a61_0x4837();let _0xa9a71f=_0x483705[_0x5a7209];return _0xa9a71f;}function a61_0x4837(){const _0x29003f=['Imported\x20','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','294532GUYxIr','1571892eeNDwD','import','errors','entries','Imported','208HWZVdG','manifest','commands','2040680xErjLe','flags','name','target','从本地运行态注册表移除\x20Service\x20Tree\x20清单','4337562qtxbbx','registryPath','report','str','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','hash','validate','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','string','filePath','version','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','export','risk','cliName','read','list','write','\x20service\x20','serviceCode','Service\x20Tree\x20manifest\x20file\x20path','warnings','serviceCount','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','20OGHHdx','registry','62436enAXDB','file','Exported\x20service\x20','map','length','normalizedManifest','imported','Local\x20service\x20not\x20found:\x20','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','type','\x20service(s).','Local\x20service\x20code,\x20for\x20example\x20crm','10ScFAOr','importedAt','cliPath','updated','required','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','service','\x20service(s),\x20updated\x20','replaced','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','detail','4317420OZCgKS','manifests','source','WRITE','15461847GtcHQj','entry','kind'];a61_0x4837=function(){return _0x29003f;};return a61_0x4837();}function summarizeService(_0x4c9b72){const _0x3b690d=a61_0x3efeb2;return{'serviceCode':_0x4c9b72['serviceCode'],'name':_0x4c9b72[_0x3b690d(0x10a)][_0x3b690d(0x117)][_0x3b690d(0x130)],'version':_0x4c9b72['version'],'importedAt':_0x4c9b72[_0x3b690d(0x112)],'source':_0x4c9b72['source'],'commandCount':_0x4c9b72['normalizedManifest'][_0x3b690d(0x12d)][_0x3b690d(0x109)],'commands':_0x4c9b72[_0x3b690d(0x10a)][_0x3b690d(0x12d)][_0x3b690d(0x108)](_0x4e6365=>({'path':_0x4e6365[_0x3b690d(0x113)],'description':_0x4e6365['description'],'risk':_0x4e6365[_0x3b690d(0x141)],'target':toPublicServiceTreeTarget(_0x4e6365[_0x3b690d(0x131)]),'flags':_0x4e6365[_0x3b690d(0x12f)][_0x3b690d(0x108)](_0x4e75d0=>({'name':_0x4e75d0[_0x3b690d(0x130)],'cliName':_0x4e75d0[_0x3b690d(0x142)],'type':_0x4e75d0[_0x3b690d(0x10e)],'required':_0x4e75d0[_0x3b690d(0x115)]===!![]}))}))};}function summarizeLoadedManifest(_0x9841e3){const _0x217074=a61_0x3efeb2;return{'service':_0x9841e3['normalizedManifest']?.[_0x217074(0x117)],'version':_0x9841e3[_0x217074(0x10a)]?.[_0x217074(0x13e)],'commandCount':_0x9841e3[_0x217074(0x10a)]?.[_0x217074(0x12d)][_0x217074(0x109)]??0x0,'commands':_0x9841e3['normalizedManifest']?.[_0x217074(0x12d)]['map'](_0x244b80=>({'path':_0x244b80[_0x217074(0x113)],'risk':_0x244b80[_0x217074(0x141)],'target':toPublicServiceTreeTarget(_0x244b80[_0x217074(0x131)])}))??[],'registryIndex':_0x9841e3['registryIndex'],'registryServiceCode':_0x9841e3['registryServiceCode'],'errors':_0x9841e3[_0x217074(0x135)][_0x217074(0x128)],'warnings':_0x9841e3[_0x217074(0x135)]['warnings']};}export const serviceDefinitions=[{'service':a61_0x3efeb2(0x117),'command':a61_0x3efeb2(0x13a),'description':a61_0x3efeb2(0x11a),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x2c84dc){const _0x5ae730=a61_0x3efeb2,_0x35393d=loadServiceManifestFromFile(_0x2c84dc['str'](_0x5ae730(0x106)));if(!_0x35393d['report']['ok'])return{'ok':![],'data':{'file':_0x35393d[_0x5ae730(0x13d)],'hash':_0x35393d[_0x5ae730(0x139)],'kind':_0x35393d[_0x5ae730(0x122)],'serviceCount':_0x35393d[_0x5ae730(0x11d)][_0x5ae730(0x109)],'services':_0x35393d['manifests'][_0x5ae730(0x108)](summarizeLoadedManifest),'errors':_0x35393d[_0x5ae730(0x135)]['errors'],'warnings':_0x35393d[_0x5ae730(0x135)][_0x5ae730(0x100)]},'message':formatValidationFailure(_0x35393d['report'])};if(_0x35393d['kind']===_0x5ae730(0x104)||_0x35393d[_0x5ae730(0x11d)][_0x5ae730(0x109)]!==0x1)return{'ok':!![],'data':{'file':_0x35393d[_0x5ae730(0x13d)],'hash':_0x35393d['hash'],'kind':_0x35393d[_0x5ae730(0x122)],'serviceCount':_0x35393d[_0x5ae730(0x11d)][_0x5ae730(0x109)],'commandCount':_0x35393d[_0x5ae730(0x11d)]['reduce']((_0x3fa1fa,_0x30853a)=>_0x3fa1fa+(_0x30853a[_0x5ae730(0x10a)]?.['commands'][_0x5ae730(0x109)]??0x0),0x0),'services':_0x35393d[_0x5ae730(0x11d)][_0x5ae730(0x108)](summarizeLoadedManifest),'warnings':_0x35393d[_0x5ae730(0x135)][_0x5ae730(0x100)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x35393d['filePath'],'hash':_0x35393d['hash'],'kind':_0x35393d[_0x5ae730(0x122)],'service':_0x35393d[_0x5ae730(0x10a)]?.[_0x5ae730(0x117)],'version':_0x35393d[_0x5ae730(0x10a)]?.['version'],'commandCount':_0x35393d['normalizedManifest']?.[_0x5ae730(0x12d)][_0x5ae730(0x109)]??0x0,'commands':_0x35393d[_0x5ae730(0x10a)]?.[_0x5ae730(0x12d)][_0x5ae730(0x108)](_0x269ff1=>({'path':_0x269ff1[_0x5ae730(0x113)],'risk':_0x269ff1[_0x5ae730(0x141)],'target':toPublicServiceTreeTarget(_0x269ff1[_0x5ae730(0x131)])})),'warnings':_0x35393d[_0x5ae730(0x135)]['warnings']},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a61_0x3efeb2(0x117),'command':a61_0x3efeb2(0x127),'description':'将\x20Service\x20Tree\x20清单导入本地运行态注册表','risk':a61_0x3efeb2(0xfc),'confirmationDescription':a61_0x3efeb2(0x137),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x20604a){const _0x52017c=a61_0x3efeb2,_0x102d40=loadServiceManifestFromFile(_0x20604a[_0x52017c(0x136)](_0x52017c(0x106)));return{'method':_0x52017c(0x11f),'url':getServiceRegistryPath(),'body':{'file':_0x102d40['filePath'],'hash':_0x102d40[_0x52017c(0x139)],'kind':_0x102d40[_0x52017c(0x122)],'ok':_0x102d40[_0x52017c(0x135)]['ok'],'service':_0x102d40['normalizedManifest']?.[_0x52017c(0x117)],'version':_0x102d40[_0x52017c(0x10a)]?.[_0x52017c(0x13e)],'serviceCount':_0x102d40[_0x52017c(0x11d)][_0x52017c(0x109)],'services':_0x102d40[_0x52017c(0x11d)][_0x52017c(0x108)](_0x41ca19=>({'service':_0x41ca19[_0x52017c(0x10a)]?.['service'],'version':_0x41ca19['normalizedManifest']?.[_0x52017c(0x13e)],'commandCount':_0x41ca19[_0x52017c(0x10a)]?.[_0x52017c(0x12d)][_0x52017c(0x109)]??0x0,'errors':_0x41ca19[_0x52017c(0x135)]['errors']})),'errors':_0x102d40['report'][_0x52017c(0x128)],'commandCount':_0x102d40[_0x52017c(0x10a)]?.[_0x52017c(0x12d)][_0x52017c(0x109)]??0x0},'description':_0x52017c(0x13f)};},async 'execute'(_0x135bce){const _0x21d3c6=a61_0x3efeb2,_0x19afca=importServiceManifest(_0x135bce[_0x21d3c6(0x136)](_0x21d3c6(0x106)));if(_0x19afca[_0x21d3c6(0x129)][_0x21d3c6(0x109)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x19afca[_0x21d3c6(0x134)],'imported':_0x19afca[_0x21d3c6(0x10b)],'updated':_0x19afca[_0x21d3c6(0x114)],'serviceCount':_0x19afca[_0x21d3c6(0x101)],'services':_0x19afca[_0x21d3c6(0x129)][_0x21d3c6(0x108)](summarizeService)},'message':_0x21d3c6(0x123)+_0x19afca[_0x21d3c6(0x10b)]+_0x21d3c6(0x118)+_0x19afca[_0x21d3c6(0x114)]+_0x21d3c6(0x10f)};return{'ok':!![],'data':{'registryPath':_0x19afca[_0x21d3c6(0x134)],'replaced':_0x19afca['replaced'],'imported':_0x19afca[_0x21d3c6(0x10b)],'updated':_0x19afca[_0x21d3c6(0x114)],'serviceCount':_0x19afca[_0x21d3c6(0x101)],'service':summarizeService(_0x19afca['entry'])},'message':(_0x19afca[_0x21d3c6(0x119)]?'Updated':_0x21d3c6(0x12a))+_0x21d3c6(0xfd)+_0x19afca[_0x21d3c6(0x121)]['serviceCode']+'.'};}},{'service':'service','command':a61_0x3efeb2(0x140),'description':a61_0x3efeb2(0x138),'risk':a61_0x3efeb2(0xfc),'confirmationDescription':'将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x31ab5c){const _0x5ebad4=a61_0x3efeb2,_0x46fdfc=getLocalServiceEntry(_0x31ab5c['str'](_0x5ebad4(0x117)));return{'method':_0x5ebad4(0x11f),'url':_0x31ab5c[_0x5ebad4(0x136)]('file'),'body':{'service':_0x31ab5c[_0x5ebad4(0x136)](_0x5ebad4(0x117)),'found':Boolean(_0x46fdfc),'version':_0x46fdfc?.[_0x5ebad4(0x13e)],'source':_0x46fdfc?.[_0x5ebad4(0x11e)]},'description':_0x5ebad4(0x13b)};},async 'execute'(_0x114480){const _0x225efc=a61_0x3efeb2,_0x55a117=exportServiceManifest(_0x114480[_0x225efc(0x136)](_0x225efc(0x117)),_0x114480[_0x225efc(0x136)](_0x225efc(0x106)));return{'ok':!![],'data':{'registryPath':_0x55a117[_0x225efc(0x134)],'file':_0x55a117[_0x225efc(0x13d)],'service':summarizeService(_0x55a117[_0x225efc(0x121)])},'message':_0x225efc(0x107)+_0x55a117[_0x225efc(0x121)][_0x225efc(0xfe)]+'.'};}},{'service':a61_0x3efeb2(0x117),'command':a61_0x3efeb2(0xfb),'description':a61_0x3efeb2(0x102),'risk':a61_0x3efeb2(0xfa),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x3b521e=a61_0x3efeb2,_0x345f04=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x345f04[_0x3b521e(0x109)],'services':_0x345f04['map'](summarizeService)}};}},{'service':'service','command':'remove','description':a61_0x3efeb2(0x132),'risk':a61_0x3efeb2(0xfc),'confirmationDescription':a61_0x3efeb2(0x124),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x1049f2){const _0x47fde8=a61_0x3efeb2,_0x229a44=getLocalServiceEntry(_0x1049f2[_0x47fde8(0x136)](_0x47fde8(0x117)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x1049f2['str'](_0x47fde8(0x117)),'found':Boolean(_0x229a44),'version':_0x229a44?.[_0x47fde8(0x13e)],'source':_0x229a44?.[_0x47fde8(0x11e)]},'description':_0x47fde8(0x116)};},async 'execute'(_0x1279be){const _0x4f1164=a61_0x3efeb2,_0x58ddd4=removeServiceManifest(_0x1279be[_0x4f1164(0x136)](_0x4f1164(0x117)));return{'ok':!![],'data':{'registryPath':_0x58ddd4['registryPath'],'serviceCount':_0x58ddd4['serviceCount'],'service':summarizeService(_0x58ddd4[_0x4f1164(0x121)])},'message':'Removed\x20service\x20'+_0x58ddd4[_0x4f1164(0x121)][_0x4f1164(0xfe)]+'.'};}},{'service':a61_0x3efeb2(0x117),'command':a61_0x3efeb2(0x11b),'description':a61_0x3efeb2(0x10d),'risk':a61_0x3efeb2(0xfa),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x2c438a){const _0x3d953a=a61_0x3efeb2,_0x27e0bf=getLocalServiceEntry(_0x2c438a['str'](_0x3d953a(0x117)));if(!_0x27e0bf)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x2c438a[_0x3d953a(0x136)](_0x3d953a(0x117))},'message':_0x3d953a(0x10c)+_0x2c438a[_0x3d953a(0x136)](_0x3d953a(0x117))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x27e0bf),'manifest':_0x27e0bf[_0x3d953a(0x12c)],'normalizedManifest':toPublicNormalizedServiceTree(_0x27e0bf[_0x3d953a(0x10a)])}};}}];
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(_0xb584ab,_0x207058){const _0x38f348=a62_0x25be,_0xba007b=_0xb584ab();while(!![]){try{const _0x5daccc=parseInt(_0x38f348(0x1e3))/0x1+-parseInt(_0x38f348(0x1ca))/0x2*(-parseInt(_0x38f348(0x1ef))/0x3)+-parseInt(_0x38f348(0x200))/0x4*(-parseInt(_0x38f348(0x1ea))/0x5)+-parseInt(_0x38f348(0x1ed))/0x6+-parseInt(_0x38f348(0x209))/0x7*(-parseInt(_0x38f348(0x1bf))/0x8)+parseInt(_0x38f348(0x1fc))/0x9+-parseInt(_0x38f348(0x204))/0xa;if(_0x5daccc===_0x207058)break;else _0xba007b['push'](_0xba007b['shift']());}catch(_0x5dc8bc){_0xba007b['push'](_0xba007b['shift']());}}}(a62_0x1ade,0x94811));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME='service.json';export function getServiceRegistryPath(_0x44efb9={}){const _0x4f3d75=a62_0x25be;return resolve(_0x44efb9[_0x4f3d75(0x1cf)]??homedir(),PRODUCT_CONFIG[_0x4f3d75(0x1e8)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0xe1c754={}){const _0x1c088e=a62_0x25be,_0x3b8e7e=getServiceRegistryPath(_0xe1c754);if(!existsSync(_0x3b8e7e))return emptyServiceRegistry();try{const _0x633d3a=readFileSync(_0x3b8e7e,_0x1c088e(0x1d2));if(!_0x633d3a[_0x1c088e(0x208)]())return emptyServiceRegistry();const _0x51ee58=JSON[_0x1c088e(0x1c3)](_0x633d3a);if(_0x51ee58[_0x1c088e(0x1be)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x1c088e(0x1c7)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x51ee58[_0x1c088e(0x1be)]),_0x1c088e(0x1f7)+_0x3b8e7e+'.');if(!Array[_0x1c088e(0x206)](_0x51ee58[_0x1c088e(0x1d5)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x51ee58[_0x1c088e(0x1fb)],'services':_0x51ee58[_0x1c088e(0x1d5)]};}catch(_0x36b9b8){if(_0x36b9b8 instanceof Error&&_0x36b9b8[_0x1c088e(0x1e5)]==='CliError')throw _0x36b9b8;throw CliErrors[_0x1c088e(0x1c7)](_0x1c088e(0x1e6)+_0x3b8e7e,_0x1c088e(0x1fe));}}export function writeServiceRegistry(_0x196261,_0x22e4ce={}){const _0x1f8f91=a62_0x25be,_0x264cf6=getServiceRegistryPath(_0x22e4ce),_0x429ce=dirname(_0x264cf6);!existsSync(_0x429ce)&&mkdirSync(_0x429ce,{'recursive':!![]});const _0x30edcc=_0x264cf6+_0x1f8f91(0x1bc);try{writeFileSync(_0x30edcc,JSON[_0x1f8f91(0x20d)](_0x196261,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x30edcc,_0x264cf6);}catch(_0x4540bd){try{unlinkSync(_0x30edcc);}catch{}if(_0x4540bd?.['code']===_0x1f8f91(0x1da))throw CliErrors[_0x1f8f91(0x1c7)](_0x1f8f91(0x1f9)+_0x264cf6);throw _0x4540bd;}return _0x264cf6;}export function loadServiceManifestFromFile(_0x351dac){const _0x20966f=a62_0x25be,_0x5c1711=resolve(_0x351dac);if(!existsSync(_0x5c1711))throw CliErrors[_0x20966f(0x1c7)](_0x20966f(0x205)+_0x351dac);let _0x3550ed;const _0x41d4db=readFileSync(_0x5c1711,_0x20966f(0x1d2));try{_0x3550ed=JSON['parse'](_0x41d4db);}catch{throw CliErrors[_0x20966f(0x1c7)](_0x20966f(0x1db)+_0x351dac,_0x20966f(0x1f2));}const _0x1cd35d=sha256(_0x41d4db),_0x541657=extractLoadedServiceManifests(_0x3550ed,_0x1cd35d),_0x79d100=aggregateValidationReports(_0x541657),_0x3c697f=_0x541657[0x0];return{'filePath':_0x5c1711,'hash':_0x1cd35d,'kind':isServiceRegistryLike(_0x3550ed)?_0x20966f(0x20e):_0x20966f(0x20c),'manifest':_0x3c697f?.[_0x20966f(0x20c)]??_0x3550ed,'report':_0x79d100,'normalizedManifest':_0x541657[_0x20966f(0x1dd)]===0x1?_0x3c697f?.[_0x20966f(0x1ee)]:undefined,'manifests':_0x541657};}export function importServiceManifest(_0x1412e3,_0x12d189={}){const _0x5033f0=a62_0x25be,_0x36213f=loadServiceManifestFromFile(_0x1412e3);if(!_0x36213f['report']['ok'])throw CliErrors['validation'](formatValidationFailure(_0x36213f[_0x5033f0(0x1cb)]),_0x5033f0(0x1e4));if(_0x36213f[_0x5033f0(0x1f8)][_0x5033f0(0x1dd)]===0x0)throw CliErrors[_0x5033f0(0x1c7)](_0x5033f0(0x1ce),'Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x3fdcfa=readServiceRegistry(_0x12d189),_0x4d7cc6=(_0x12d189['now']??(()=>new Date()))()[_0x5033f0(0x1cd)](),_0x420342=[];let _0x39ce1d=0x0,_0x38cd37=0x0;for(const _0x1bd486 of _0x36213f['manifests']){if(!_0x1bd486['normalizedManifest'])continue;const _0x554f99=_0x1bd486['normalizedManifest'][_0x5033f0(0x1dc)][_0x5033f0(0x1c9)],_0x2d3797={'serviceCode':_0x554f99,'version':_0x1bd486['normalizedManifest'][_0x5033f0(0x20b)],'importedAt':_0x4d7cc6,'source':{'type':'file','path':_0x36213f[_0x5033f0(0x1ba)],'hash':_0x1bd486['sourceHash']},'manifest':_0x1bd486[_0x5033f0(0x20c)],'normalizedManifest':_0x1bd486[_0x5033f0(0x1ee)]},_0xc22d02=_0x3fdcfa['services'][_0x5033f0(0x1f3)](_0x121d98=>_0x121d98['serviceCode']===_0x554f99);_0xc22d02>=0x0?(_0x3fdcfa['services'][_0xc22d02]=_0x2d3797,_0x38cd37++):(_0x3fdcfa[_0x5033f0(0x1d5)][_0x5033f0(0x201)](_0x2d3797),_0x39ce1d++),_0x420342['push'](_0x2d3797);}_0x3fdcfa[_0x5033f0(0x1d5)][_0x5033f0(0x1e7)]((_0x2ba424,_0x12b23b)=>_0x2ba424[_0x5033f0(0x1d1)][_0x5033f0(0x1d4)](_0x12b23b[_0x5033f0(0x1d1)])),_0x3fdcfa[_0x5033f0(0x1fb)]=_0x4d7cc6;const _0x126bbd=writeServiceRegistry(_0x3fdcfa,_0x12d189);return{'registryPath':_0x126bbd,'entry':_0x420342[0x0],'replaced':_0x420342[_0x5033f0(0x1dd)]===0x1?_0x38cd37===0x1:_0x38cd37>0x0,'entries':_0x420342,'imported':_0x39ce1d,'updated':_0x38cd37,'serviceCount':_0x3fdcfa[_0x5033f0(0x1d5)]['length']};}export function exportServiceManifest(_0x47c025,_0x956912,_0x3b330b={}){const _0x5f0a2c=a62_0x25be,_0x46287c=getServiceRegistryPath(_0x3b330b),_0xe66ce9=getLocalServiceEntry(_0x47c025,_0x3b330b);if(!_0xe66ce9)throw CliErrors[_0x5f0a2c(0x1c7)](_0x5f0a2c(0x1f0)+_0x47c025,_0x5f0a2c(0x1f1));const _0x48f04e=resolve(_0x956912),_0x28183d=dirname(_0x48f04e);return!existsSync(_0x28183d)&&mkdirSync(_0x28183d,{'recursive':!![]}),writeFileSync(_0x48f04e,JSON[_0x5f0a2c(0x20d)](_0xe66ce9[_0x5f0a2c(0x20c)],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x46287c,'filePath':_0x48f04e,'entry':_0xe66ce9};}export function removeServiceManifest(_0x16b2f7,_0x8bfacb={}){const _0x8b2ace=a62_0x25be,_0x30eb2b=readServiceRegistry(_0x8bfacb),_0x3ef3cb=_0x16b2f7[_0x8b2ace(0x208)](),_0x555ab2=_0x30eb2b[_0x8b2ace(0x1d5)]['findIndex'](_0x3527a6=>_0x3527a6['serviceCode']===_0x3ef3cb);if(_0x555ab2<0x0)throw CliErrors[_0x8b2ace(0x1c7)](_0x8b2ace(0x1f0)+_0x3ef3cb,_0x8b2ace(0x1f1));const [_0x41d4dc]=_0x30eb2b['services']['splice'](_0x555ab2,0x1),_0x1acff6=(_0x8bfacb[_0x8b2ace(0x1d0)]??(()=>new Date()))()[_0x8b2ace(0x1cd)]();_0x30eb2b[_0x8b2ace(0x1fb)]=_0x1acff6;const _0x4bf712=writeServiceRegistry(_0x30eb2b,_0x8bfacb);return{'registryPath':_0x4bf712,'entry':_0x41d4dc,'serviceCount':_0x30eb2b[_0x8b2ace(0x1d5)][_0x8b2ace(0x1dd)]};}export function listLocalServices(_0x211f3f={}){const _0x325bf2=a62_0x25be;return readServiceRegistry(_0x211f3f)[_0x325bf2(0x1d5)];}function a62_0x1ade(){const _0x59fefb=['push','$.services[','slice','12742840WZPkul','Service\x20manifest\x20file\x20not\x20found:\x20','isArray','reduce','trim','7HQMDjK','target','version','manifest','stringify','registry','filePath','registryIndex','.tmp','description','schemaVersion','4367048bcSNFe','object','startsWith','kind','parse','map','services\x20must\x20be\x20an\x20array','invalid','validation','flatMap','code','7430yhrKUe','report','path','toISOString','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','homeDir','now','serviceCode','utf8','hex','localeCompare','services','command','].manifest.','update','warnings','ENOENT','Invalid\x20service\x20manifest\x20JSON:\x20','service','length','Unsupported\x20schemaVersion:\x20','errors','risk','].manifest','missing','242108OwtmIe','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','name','Invalid\x20service\x20registry\x20JSON:\x20','sort','homeDirName','message','60995jFOMDJ','importedAt','string','5439102sMhubQ','normalizedManifest','801uXTQfr','Local\x20service\x20not\x20found:\x20','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','findIndex','sha256','source','commandCount','Remove\x20or\x20migrate\x20','manifests','Cannot\x20write\x20service\x20registry:\x20','cliPath','updatedAt','2604951uHewHa','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','digest','236ykQuSf'];a62_0x1ade=function(){return _0x59fefb;};return a62_0x1ade();}export function getLocalServiceEntry(_0x46a35d,_0x453de4={}){const _0x5111a9=a62_0x25be;return readServiceRegistry(_0x453de4)[_0x5111a9(0x1d5)]['find'](_0x471231=>_0x471231[_0x5111a9(0x1d1)]===_0x46a35d[_0x5111a9(0x208)]());}export function listLocalServiceTrees(_0x3f2fe2={}){const _0x2242a2=a62_0x25be;return readServiceRegistry(_0x3f2fe2)[_0x2242a2(0x1d5)][_0x2242a2(0x1c4)](_0x5b9f84=>_0x5b9f84[_0x2242a2(0x1ee)]);}function a62_0x25be(_0x180c51,_0x3865fb){_0x180c51=_0x180c51-0x1ba;const _0x1adeac=a62_0x1ade();let _0x25bed7=_0x1adeac[_0x180c51];return _0x25bed7;}export function inspectServiceRegistry(_0x3894a4={}){const _0x1be8d5=a62_0x25be,_0x4c021f=getServiceRegistryPath(_0x3894a4);if(!existsSync(_0x4c021f))return emptyServiceRegistryInspection(_0x4c021f,_0x1be8d5(0x1e2),![]);try{const _0x4b40b7=readFileSync(_0x4c021f,'utf8');if(!_0x4b40b7[_0x1be8d5(0x208)]())return emptyServiceRegistryInspection(_0x4c021f,'empty',!![]);const _0x7b5add=JSON['parse'](_0x4b40b7);if(_0x7b5add[_0x1be8d5(0x1be)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x4c021f,_0x1be8d5(0x1c6),!![]),'schemaVersion':_0x7b5add[_0x1be8d5(0x1be)],'message':_0x1be8d5(0x1de)+String(_0x7b5add['schemaVersion'])};if(!Array[_0x1be8d5(0x206)](_0x7b5add[_0x1be8d5(0x1d5)]))return{...emptyServiceRegistryInspection(_0x4c021f,_0x1be8d5(0x1c6),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x7b5add[_0x1be8d5(0x1fb)],'message':_0x1be8d5(0x1c5)};const _0x589f6a=_0x7b5add[_0x1be8d5(0x1d5)][_0x1be8d5(0x1c4)](summarizeLocalServiceEntry);return{'registryPath':_0x4c021f,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x7b5add['updatedAt'],'serviceCount':_0x589f6a[_0x1be8d5(0x1dd)],'commandCount':_0x589f6a[_0x1be8d5(0x207)]((_0x3ec214,_0x5c515e)=>_0x3ec214+_0x5c515e[_0x1be8d5(0x1f6)],0x0),'services':_0x589f6a};}catch(_0x108c2f){return{...emptyServiceRegistryInspection(_0x4c021f,_0x1be8d5(0x1c6),!![]),'message':_0x108c2f instanceof Error?_0x108c2f['message']:String(_0x108c2f)};}}export function formatValidationFailure(_0x4298f9){const _0x25c7ec=a62_0x25be,_0x14f293=_0x4298f9['errors'][_0x25c7ec(0x1c4)](_0x1631cf=>_0x1631cf[_0x25c7ec(0x1cc)]+':\x20'+_0x1631cf[_0x25c7ec(0x1e9)]);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x14f293['join']('\x0a');}function extractLoadedServiceManifests(_0x552c9d,_0x15499f){const _0x41a4b2=a62_0x25be;if(!isServiceRegistryLike(_0x552c9d)){const _0x206693=_0x552c9d,{manifest:_0x49cf9e,errors:_0x42df1d}=adaptServiceTreeManifestForLegacyFramework(_0x206693),_0x297981=validateServiceTreeManifest(_0x49cf9e),_0x8ba25c=mergeValidationErrors(_0x297981,_0x42df1d);return[{'manifest':_0x206693,'report':_0x8ba25c,'normalizedManifest':_0x8ba25c['ok']?normalizeServiceTreeManifest(_0x49cf9e):undefined,'sourceHash':_0x15499f}];}return _0x552c9d[_0x41a4b2(0x1d5)][_0x41a4b2(0x1c4)]((_0x5c64b3,_0x3b8907)=>{const _0x41d30a=_0x41a4b2,_0x4ecf29=isObjectRecord(_0x5c64b3)?_0x5c64b3[_0x41d30a(0x20c)]:undefined,{manifest:_0x20d48f,errors:_0x4e08f5}=adaptServiceTreeManifestForLegacyFramework(_0x4ecf29),_0x2a3d13=validateServiceTreeManifest(_0x20d48f),_0x5bb8c3=mergeValidationErrors(_0x2a3d13,_0x4e08f5),_0x2d4d1e=isObjectRecord(_0x5c64b3)&&typeof _0x5c64b3[_0x41d30a(0x1d1)]===_0x41d30a(0x1ec)?_0x5c64b3[_0x41d30a(0x1d1)]:undefined;return{'manifest':_0x4ecf29,'report':_0x5bb8c3,'normalizedManifest':_0x5bb8c3['ok']?normalizeServiceTreeManifest(_0x20d48f):undefined,'sourceHash':sha256(JSON['stringify'](_0x4ecf29,null,0x2)+'\x0a'),'registryIndex':_0x3b8907,'registryServiceCode':_0x2d4d1e};});}function mergeValidationErrors(_0x553d4c,_0x525da8){const _0x525ad1=a62_0x25be,_0x140e60=_0x553d4c[_0x525ad1(0x1df)][_0x525ad1(0x1c4)](_0x240adc=>_0x240adc[_0x525ad1(0x1e9)]===_0x525ad1(0x1fd)?{..._0x240adc,'message':'bff\x20target\x20requires\x20functionName.'}:_0x240adc),_0x3f9354=[..._0x525da8,..._0x140e60];return{'ok':_0x3f9354[_0x525ad1(0x1dd)]===0x0,'errors':_0x3f9354,'warnings':_0x553d4c[_0x525ad1(0x1d9)]};}function aggregateValidationReports(_0x229ae7){const _0x37082e=a62_0x25be,_0x1ef657=_0x229ae7[_0x37082e(0x1c8)](_0x4487a9=>_0x4487a9[_0x37082e(0x1bb)]===undefined?_0x4487a9['report'][_0x37082e(0x1df)]:_0x4487a9[_0x37082e(0x1cb)][_0x37082e(0x1df)][_0x37082e(0x1c4)](_0x562eeb=>({..._0x562eeb,'path':prefixRegistryIssuePath(_0x4487a9[_0x37082e(0x1bb)],_0x562eeb[_0x37082e(0x1cc)])}))),_0x209c8a=_0x229ae7[_0x37082e(0x1c8)](_0xab2b8d=>_0xab2b8d[_0x37082e(0x1bb)]===undefined?_0xab2b8d['report'][_0x37082e(0x1d9)]:_0xab2b8d[_0x37082e(0x1cb)][_0x37082e(0x1d9)]['map'](_0x14165d=>({..._0x14165d,'path':prefixRegistryIssuePath(_0xab2b8d['registryIndex'],_0x14165d[_0x37082e(0x1cc)])})));return{'ok':_0x1ef657[_0x37082e(0x1dd)]===0x0,'errors':_0x1ef657,'warnings':_0x209c8a};}function prefixRegistryIssuePath(_0x5aa8c5,_0x41ef85){const _0x46e63c=a62_0x25be;if(_0x41ef85==='$')return _0x46e63c(0x202)+_0x5aa8c5+_0x46e63c(0x1e1);if(_0x41ef85[_0x46e63c(0x1c1)]('$.'))return _0x46e63c(0x202)+_0x5aa8c5+_0x46e63c(0x1e1)+_0x41ef85[_0x46e63c(0x203)](0x1);if(_0x41ef85[_0x46e63c(0x1c1)]('$['))return'$.services['+_0x5aa8c5+_0x46e63c(0x1e1)+_0x41ef85[_0x46e63c(0x203)](0x1);return _0x46e63c(0x202)+_0x5aa8c5+_0x46e63c(0x1d7)+_0x41ef85;}function isServiceRegistryLike(_0x4e7388){const _0x36c81c=a62_0x25be;return isObjectRecord(_0x4e7388)&&_0x4e7388[_0x36c81c(0x1be)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x36c81c(0x206)](_0x4e7388[_0x36c81c(0x1d5)]);}function isObjectRecord(_0xd6107c){const _0x548c60=a62_0x25be;return Boolean(_0xd6107c)&&typeof _0xd6107c===_0x548c60(0x1c0)&&!Array[_0x548c60(0x206)](_0xd6107c);}function emptyServiceRegistryInspection(_0x1e569e,_0x3c0f6c,_0x21da18){return{'registryPath':_0x1e569e,'exists':_0x21da18,'status':_0x3c0f6c,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x1cfa0f){const _0x2ae278=a62_0x25be,_0x54f668=_0x1cfa0f[_0x2ae278(0x1ee)],_0x211425=_0x54f668['commands']['map'](_0x428f00=>({'path':_0x428f00[_0x2ae278(0x1fa)],'description':_0x428f00[_0x2ae278(0x1bd)],'risk':_0x428f00[_0x2ae278(0x1e0)],'targetKind':_0x428f00[_0x2ae278(0x20a)][_0x2ae278(0x1c2)],'targetCommand':_0x428f00[_0x2ae278(0x20a)][_0x2ae278(0x1d6)]}));return{'serviceCode':_0x1cfa0f['serviceCode'],'name':_0x54f668[_0x2ae278(0x1dc)][_0x2ae278(0x1e5)],'description':_0x54f668[_0x2ae278(0x1dc)][_0x2ae278(0x1bd)],'version':_0x1cfa0f[_0x2ae278(0x20b)],'importedAt':_0x1cfa0f[_0x2ae278(0x1eb)],'source':_0x1cfa0f[_0x2ae278(0x1f5)],'commandCount':_0x211425[_0x2ae278(0x1dd)],'commands':_0x211425};}function sha256(_0x22b4c7){const _0x7c2356=a62_0x25be;return createHash(_0x7c2356(0x1f4))[_0x7c2356(0x1d8)](_0x22b4c7)[_0x7c2356(0x1ff)](_0x7c2356(0x1d3));}
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
- const a63_0x413112=a63_0x5db5;(function(_0x4eedc0,_0x31228a){const _0x4dd2d6=a63_0x5db5,_0x43c32f=_0x4eedc0();while(!![]){try{const _0x1decae=parseInt(_0x4dd2d6(0x1bf))/0x1*(parseInt(_0x4dd2d6(0x1cb))/0x2)+parseInt(_0x4dd2d6(0x1c3))/0x3+-parseInt(_0x4dd2d6(0x1ad))/0x4*(-parseInt(_0x4dd2d6(0x1bc))/0x5)+parseInt(_0x4dd2d6(0x1c0))/0x6+parseInt(_0x4dd2d6(0x1bb))/0x7*(-parseInt(_0x4dd2d6(0x1c8))/0x8)+parseInt(_0x4dd2d6(0x1ca))/0x9*(-parseInt(_0x4dd2d6(0x1be))/0xa)+parseInt(_0x4dd2d6(0x1b6))/0xb*(-parseInt(_0x4dd2d6(0x1ab))/0xc);if(_0x1decae===_0x31228a)break;else _0x43c32f['push'](_0x43c32f['shift']());}catch(_0x35e5f0){_0x43c32f['push'](_0x43c32f['shift']());}}}(a63_0x53b6,0x787be));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_0x53b6(){const _0x2a8cb8=['9592VZXpvd','validation','9aMbMxH','135832XqWsZk','skill','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','path','name','read','Refusing\x20to\x20overwrite\x20symlink:\x20','21264ItZtRl','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','1636436Dtzjcn','utf8','创建本地自包含的运行态\x20Skill\x20草稿','type','Created\x20local\x20Skill\x20draft\x20','map','rendered','create','str','5522HJFgml','trim','content','skillDir','WRITE','3787PVASeX','5rgkwGZ','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','2950680PSMeQy','8fKbNmQ','3723060pQbliN','isSymbolicLink','files','2261478roazQD','target','bool','skillName','force'];a63_0x53b6=function(){return _0x2a8cb8;};return a63_0x53b6();}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_0x413112(0x1a5),'command':a63_0x413112(0x1b4),'description':a63_0x413112(0x1af),'risk':a63_0x413112(0x1a9),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x328f96){const _0x5b2737=a63_0x413112,_0x336c68=buildSkillCreatePlan(_0x328f96[_0x5b2737(0x1b5)]('name'),_0x328f96['str'](_0x5b2737(0x1b0)),_0x328f96[_0x5b2737(0x1b5)](_0x5b2737(0x1c4)));return{'method':_0x5b2737(0x1ba),'url':_0x336c68[_0x5b2737(0x1b9)],'body':{'skillName':_0x336c68[_0x5b2737(0x1b3)][_0x5b2737(0x1c6)],'type':_0x336c68[_0x5b2737(0x1b3)][_0x5b2737(0x1b0)],'selfContained':!![],'files':_0x336c68[_0x5b2737(0x1b3)][_0x5b2737(0x1c2)][_0x5b2737(0x1b2)](_0x4ee14a=>_0x4ee14a[_0x5b2737(0x1a7)])},'description':_0x5b2737(0x1ac)};},async 'execute'(_0xbbe828){const _0x3025b0=a63_0x413112,_0xcd0f49=buildSkillCreatePlan(_0xbbe828[_0x3025b0(0x1b5)](_0x3025b0(0x1a8)),_0xbbe828[_0x3025b0(0x1b5)](_0x3025b0(0x1b0)),_0xbbe828[_0x3025b0(0x1b5)](_0x3025b0(0x1c4)));return writeSkillDraft(_0xcd0f49,_0xbbe828[_0x3025b0(0x1c5)](_0x3025b0(0x1c7))),{'ok':!![],'data':{'skillName':_0xcd0f49[_0x3025b0(0x1b3)][_0x3025b0(0x1c6)],'type':_0xcd0f49[_0x3025b0(0x1b3)][_0x3025b0(0x1b0)],'dir':_0xcd0f49['skillDir'],'files':_0xcd0f49[_0x3025b0(0x1b3)][_0x3025b0(0x1c2)][_0x3025b0(0x1b2)](_0x44b27e=>_0x44b27e[_0x3025b0(0x1a7)])},'message':_0x3025b0(0x1b1)+_0xcd0f49['rendered'][_0x3025b0(0x1c6)]};}};function buildSkillCreatePlan(_0x174c3c,_0x577e37,_0x193632){const _0x178569=a63_0x413112,_0x3d50fb=_0x577e37[_0x178569(0x1b7)](),_0x766769=renderSkillTemplate({'skillName':_0x174c3c,'type':_0x3d50fb});!_0x3d50fb&&writeCliSideChannelLine(_0x178569(0x1a6));const _0x2ef7b8=resolve(normalizeSkillTarget(_0x193632));return{'rendered':_0x766769,'targetRoot':_0x2ef7b8,'skillDir':resolve(_0x2ef7b8,_0x766769[_0x178569(0x1c6)])};}function a63_0x5db5(_0x14dc53,_0x39d7f5){_0x14dc53=_0x14dc53-0x1a5;const _0x53b6ad=a63_0x53b6();let _0x5db5c4=_0x53b6ad[_0x14dc53];return _0x5db5c4;}function normalizeSkillTarget(_0x4ff2c4){const _0x1815a8=a63_0x413112;return(_0x4ff2c4||DEFAULT_SKILL_TARGET)[_0x1815a8(0x1b7)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x21efbc,_0x3e0580){const _0x175afb=a63_0x413112;if(existsSync(_0x21efbc[_0x175afb(0x1b9)])){const _0xe52707=lstatSync(_0x21efbc['skillDir']);if(!_0xe52707['isDirectory']()||_0xe52707[_0x175afb(0x1c1)]())throw CliErrors[_0x175afb(0x1c9)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x21efbc[_0x175afb(0x1b9)]);if(!_0x3e0580)throw CliErrors[_0x175afb(0x1c9)]('Skill\x20directory\x20already\x20exists:\x20'+_0x21efbc[_0x175afb(0x1b9)],_0x175afb(0x1bd));}for(const _0x4ba491 of _0x21efbc[_0x175afb(0x1b3)][_0x175afb(0x1c2)]){const _0xae0b72=resolve(_0x21efbc[_0x175afb(0x1b9)],_0x4ba491[_0x175afb(0x1a7)]),_0x1cb49d=dirname(_0xae0b72);mkdirSync(_0x1cb49d,{'recursive':!![]});if(existsSync(_0xae0b72)&&lstatSync(_0xae0b72)[_0x175afb(0x1c1)]())throw CliErrors[_0x175afb(0x1c9)](_0x175afb(0x1aa)+_0xae0b72);writeFileSync(_0xae0b72,_0x4ba491[_0x175afb(0x1b8)],_0x175afb(0x1ae));}}
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
- function a64_0x58d7(){const _0x10ac15=['scope','2497AMasUr','\x20is\x20unchanged.','skill-code','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','4521128avfDyE','Skill\x20diagram\x20validation\x20passed\x20for\x20','88130HPuvjn','created','expected-diagram-revision','expectedDiagramRevision','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','Skill\x20diagram\x20for\x20','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','personal','source-fingerprint','\x20Skill\x20diagram\x20for\x20','version','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','2648376HOdJrM','126607MYsnTl','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','diagram-show','company','isInteger','validation','12yrtbyW','1267143YTHFYD','4fSYrvG','diagram-file','954685HmrUdQ','Updated','test','unchanged','12vjjuMm','skillCode','diagram-push','1783131kDVgIz','str','trim','skill','diagram-validate',';\x20first\x20write\x20expects\x20revision\x20','read'];a64_0x58d7=function(){return _0x10ac15;};return a64_0x58d7();}const a64_0x337037=a64_0x48be;(function(_0x264b38,_0x56af2f){const _0x153fc5=a64_0x48be,_0x8ccbc0=_0x264b38();while(!![]){try{const _0x51cced=parseInt(_0x153fc5(0x9f))/0x1*(-parseInt(_0x153fc5(0xad))/0x2)+parseInt(_0x153fc5(0xa6))/0x3*(-parseInt(_0x153fc5(0xa7))/0x4)+parseInt(_0x153fc5(0xa9))/0x5*(-parseInt(_0x153fc5(0xa5))/0x6)+-parseInt(_0x153fc5(0xb0))/0x7+parseInt(_0x153fc5(0x90))/0x8+-parseInt(_0x153fc5(0x9e))/0x9+parseInt(_0x153fc5(0x92))/0xa*(parseInt(_0x153fc5(0x8b))/0xb);if(_0x51cced===_0x56af2f)break;else _0x8ccbc0['push'](_0x8ccbc0['shift']());}catch(_0x15a1f5){_0x8ccbc0['push'](_0x8ccbc0['shift']());}}}(a64_0x58d7,0x6e8be));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(_0x5178d0){const _0x2378ab=a64_0x48be,_0x202627=_0x5178d0['str'](_0x2378ab(0x8d))[_0x2378ab(0xb2)](),_0x5ab2bb=_0x5178d0[_0x2378ab(0xb1)]('version')[_0x2378ab(0xb2)](),_0x515e7c=_0x5178d0['str']('scope');if(!_0x202627||!_0x5ab2bb||_0x515e7c!==_0x2378ab(0x99)&&_0x515e7c!==_0x2378ab(0xa2))throw CliErrors[_0x2378ab(0xa4)](_0x2378ab(0x96));return{'skillCode':_0x202627,'version':_0x5ab2bb,'scope':_0x515e7c};}async function readDiagramWriteInput(_0x330716){const _0x3b5b10=a64_0x48be,_0x10774c=_0x330716['num'](_0x3b5b10(0x94)),_0x10f649=_0x330716['str'](_0x3b5b10(0x9a))[_0x3b5b10(0xb2)]();if(!Number[_0x3b5b10(0xa3)](_0x10774c)||_0x10774c<0x0)throw CliErrors[_0x3b5b10(0xa4)](_0x3b5b10(0xa0));if(!/^sha256:[0-9a-f]{64}$/[_0x3b5b10(0xab)](_0x10f649))throw CliErrors['validation'](_0x3b5b10(0x8e));return{'expectedDiagramRevision':_0x10774c,'sourceFingerprint':_0x10f649,'diagram':await readRequiredSkillDiagram(_0x330716[_0x3b5b10(0xb1)](_0x3b5b10(0xa8)))};}export const diagramValidateCommand={'service':a64_0x337037(0xb3),'command':a64_0x337037(0x87),'description':'Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','risk':'read','flags':WRITE_FLAGS,async 'execute'(_0x2808e9){const _0x311052=a64_0x337037,_0xab56aa=readDiagramTarget(_0x2808e9),_0x34609f=await validateRuntimeSkillVersionDiagram(_0x2808e9['appCode'],_0xab56aa['skillCode'],_0xab56aa[_0x311052(0x9c)],_0xab56aa['scope'],await readDiagramWriteInput(_0x2808e9));return{'ok':!![],'data':_0x34609f,'message':_0x311052(0x91)+_0xab56aa[_0x311052(0xae)]+'@'+_0xab56aa['version']+'.'};}};function a64_0x48be(_0x1a5a0c,_0xbbbbdc){_0x1a5a0c=_0x1a5a0c-0x87;const _0x58d790=a64_0x58d7();let _0x48bea4=_0x58d790[_0x1a5a0c];return _0x48bea4;}export const diagramPushCommand={'service':'skill','command':a64_0x337037(0xaf),'description':a64_0x337037(0x8f),'risk':'write','confirmationDescription':'将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','flags':WRITE_FLAGS,async 'execute'(_0x8d2e69){const _0x51e20b=a64_0x337037,_0x43d7c4=readDiagramTarget(_0x8d2e69),_0x365ab2=await putRuntimeSkillVersionDiagram(_0x8d2e69['appCode'],_0x43d7c4['skillCode'],_0x43d7c4[_0x51e20b(0x9c)],_0x43d7c4[_0x51e20b(0x8a)],await readDiagramWriteInput(_0x8d2e69));return{'ok':!![],'data':_0x365ab2,'message':_0x365ab2['action']===_0x51e20b(0xac)?_0x51e20b(0x97)+_0x43d7c4[_0x51e20b(0xae)]+'@'+_0x43d7c4[_0x51e20b(0x9c)]+_0x51e20b(0x8c):(_0x365ab2['action']===_0x51e20b(0x93)?'Created':_0x51e20b(0xaa))+_0x51e20b(0x9b)+_0x43d7c4[_0x51e20b(0xae)]+'@'+_0x43d7c4[_0x51e20b(0x9c)]+'.'};}};export const diagramShowCommand={'service':a64_0x337037(0xb3),'command':a64_0x337037(0xa1),'description':a64_0x337037(0x9d),'risk':a64_0x337037(0x89),'flags':TARGET_FLAGS,async 'execute'(_0x3d2600){const _0x125df2=a64_0x337037,_0x474062=readDiagramTarget(_0x3d2600),_0x42f108=await getRuntimeSkillVersionDiagram(_0x3d2600['appCode'],_0x474062['skillCode'],_0x474062[_0x125df2(0x9c)],_0x474062[_0x125df2(0x8a)]);return{'ok':!![],'data':_0x42f108,'message':_0x42f108['found']?'Found\x20Skill\x20diagram\x20for\x20'+_0x474062[_0x125df2(0xae)]+'@'+_0x474062[_0x125df2(0x9c)]+';\x20next\x20write\x20expects\x20revision\x20'+_0x42f108['expectedDiagramRevision']+'.':_0x125df2(0x98)+_0x474062[_0x125df2(0xae)]+'@'+_0x474062['version']+_0x125df2(0x88)+_0x42f108[_0x125df2(0x95)]+'.'};}};
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
- const a65_0x86bb93=a65_0x5704;(function(_0x1cba2,_0x3bbbd5){const _0x356d58=a65_0x5704,_0x14ce82=_0x1cba2();while(!![]){try{const _0x52b74e=-parseInt(_0x356d58(0x1c2))/0x1*(-parseInt(_0x356d58(0x19c))/0x2)+parseInt(_0x356d58(0x1b0))/0x3+-parseInt(_0x356d58(0x1ba))/0x4*(parseInt(_0x356d58(0x1b7))/0x5)+parseInt(_0x356d58(0x1bb))/0x6*(parseInt(_0x356d58(0x1b1))/0x7)+-parseInt(_0x356d58(0x1aa))/0x8+parseInt(_0x356d58(0x1a3))/0x9*(parseInt(_0x356d58(0x1ad))/0xa)+parseInt(_0x356d58(0x1b3))/0xb;if(_0x52b74e===_0x3bbbd5)break;else _0x14ce82['push'](_0x14ce82['shift']());}catch(_0x4b2b31){_0x14ce82['push'](_0x14ce82['shift']());}}}(a65_0x3f0c,0xec132));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_0x86bb93(0x1b9),'command':a65_0x86bb93(0x1a7),'description':'Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','risk':a65_0x86bb93(0x1c5),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x1727e7){return syncRuntimeSkills(_0x1727e7);}};function a65_0x3f0c(){const _0x401482=['action','258OuAMGN','reduce','trim','version','created','../../../skills/runtime-skill-sync.js','\x20personal\x20and\x20','4311045fnHncP','force','project','map','install','from','company','8113664tuOAyw','str','bool','10MqjVDj','min','scope','3129375NmxKoY','57841bpJoOE','production','2036276cYiSSs','length','Installed\x20','personal','115ekMMVx','all','skill','204272incOPb','618ircANk','removed','appCode','skillCode','authRequired','skipped','../../../core/api-client.js','4631SpyUUQ','filter','includes','read','envName','unchanged','skillRoots','global'];a65_0x3f0c=function(){return _0x401482;};return a65_0x3f0c();}function a65_0x5704(_0x14160c,_0x3984f3){_0x14160c=_0x14160c-0x199;const _0x3f0cfa=a65_0x3f0c();let _0x5704d0=_0x3f0cfa[_0x14160c];return _0x5704d0;}async function syncRuntimeSkills(_0x1b15c1){const _0x1552f0=a65_0x86bb93,{downloadRuntimeSkillPackage:_0x92b940,listRuntimeSkills:_0xc0f7f6}=await import(_0x1552f0(0x1c1)),{linkEffectiveRuntimeSkills:_0x471405,materializeRuntimeSkill:_0x2ec637,pruneStaleRuntimeSkillCache:_0x491eb9,pruneStaleRuntimeSkillLinks:_0x327bee,resolveRuntimeSkillInstallTarget:_0x2c5ab3,reuseMaterializedRuntimeSkill:_0x1814d9}=await import(_0x1552f0(0x1a1)),_0x4d10a7=_0x1b15c1['str']('code'),_0x536a37=normalizeSyncScopes(_0x1b15c1[_0x1552f0(0x1ab)](_0x1552f0(0x1af))),_0x14528f=_0x1b15c1[_0x1552f0(0x1c6)]??_0x1552f0(0x1b2),_0x478763=_0x1b15c1['accessKey'],_0x584e11=_0x1b15c1[_0x1552f0(0x1ac)](_0x1552f0(0x1a4));if(!_0x478763)throw CliErrors[_0x1552f0(0x1bf)]('Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.');const _0x2553a8=_0x2c5ab3(_0x1b15c1['appCode'],_0x1b15c1['bool'](_0x1552f0(0x1a5))?'project':_0x1552f0(0x19a)),_0x45d40d=_0x2c5ab3(_0x1b15c1['appCode'],_0x2553a8[_0x1552f0(0x1af)]===_0x1552f0(0x1a5)?_0x1552f0(0x19a):_0x1552f0(0x1a5)),_0x38880d=await _0xc0f7f6({'appCode':_0x1b15c1[_0x1552f0(0x1bd)],'scope':_0x536a37[_0x1552f0(0x1b4)]===0x1?_0x536a37[0x0]:_0x1552f0(0x1b8),'code':_0x4d10a7['trim']()||undefined}),_0x2bc9bf=_0x536a37[_0x1552f0(0x1c4)](_0x1552f0(0x1b6))?_0x38880d[_0x1552f0(0x1b6)]:[],_0x24aeb2=_0x536a37[_0x1552f0(0x1c4)](_0x1552f0(0x1a9))?_0x38880d[_0x1552f0(0x1a9)]:[],_0x3a69da=new Set([..._0x2bc9bf[_0x1552f0(0x1a6)](_0xf09f7d=>_0xf09f7d[_0x1552f0(0x1be)]?.[_0x1552f0(0x19e)]())['filter'](_0x34822b=>Boolean(_0x34822b)),..._0x24aeb2[_0x1552f0(0x1a6)](_0x2efa47=>_0x2efa47[_0x1552f0(0x1be)]?.['trim']())[_0x1552f0(0x1c3)](_0x1846e5=>Boolean(_0x1846e5))]),_0x1b58f3=_0x4d10a7[_0x1552f0(0x19e)]()?[_0x4d10a7[_0x1552f0(0x19e)]()]:undefined,_0x2e2b83=_0x536a37[_0x1552f0(0x1b4)]===0x2&&_0x536a37[_0x1552f0(0x1c4)]('personal')&&_0x536a37[_0x1552f0(0x1c4)](_0x1552f0(0x1a9)),_0x2f1d17=_0x2e2b83?_0x327bee(_0x2553a8,_0x3a69da,_0x1b58f3):[],_0x158f59=_0x491eb9({'env':_0x14528f,'accessKey':_0x478763,'appCode':_0x1b15c1['appCode'],'activeSkillCodes':_0x3a69da,'pruneSkillCodes':_0x1b58f3,'scopes':_0x536a37,'protectedLinkRoots':_0x45d40d[_0x1552f0(0x199)]}),_0x11e409=[..._0x2bc9bf[_0x1552f0(0x1a6)](_0x693c26=>({'skill':_0x693c26,'scope':_0x1552f0(0x1b6)})),..._0x24aeb2['map'](_0x23eb99=>({'skill':_0x23eb99,'scope':_0x1552f0(0x1a9)}))],_0xe1065a=await mapConcurrent(_0x11e409,PACKAGE_DOWNLOAD_CONCURRENCY,async({skill:_0x202097,scope:_0x35889b})=>{const _0x164d50=_0x1552f0,_0x532607=_0x1814d9(_0x202097,_0x35889b,{'env':_0x14528f,'accessKey':_0x478763,'appCode':_0x1b15c1['appCode']});if(_0x532607)return _0x532607;return _0x2ec637(_0x202097,_0x35889b,{'env':_0x14528f,'accessKey':_0x478763,'appCode':_0x1b15c1[_0x164d50(0x1bd)],'force':_0x584e11,'packageBytes':await downloadSkillPackage(_0x202097,_0x35889b,_0x1b15c1[_0x164d50(0x1bd)],_0x92b940)});}),_0x4783f5=_0x471405(_0xe1065a,_0x2553a8),_0x120b34=countLinkActions(_0x4783f5);return{'ok':!![],'data':{'appCode':_0x1b15c1[_0x1552f0(0x1bd)],..._0x2553a8[_0x1552f0(0x1af)]===_0x1552f0(0x1a5)?{'installTarget':{'scope':_0x2553a8[_0x1552f0(0x1af)],'skillRoots':[..._0x2553a8[_0x1552f0(0x199)]]}}:{},'personal':_0x2bc9bf[_0x1552f0(0x1b4)],'company':_0x24aeb2[_0x1552f0(0x1b4)],'materialized':_0xe1065a['length'],'links':{'total':_0x4783f5[_0x1552f0(0x1b4)],'created':_0x120b34[_0x1552f0(0x1a0)]??0x0,'updated':_0x120b34['updated']??0x0,'unchanged':_0x120b34[_0x1552f0(0x1c7)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x2f1d17[_0x1552f0(0x1c3)](_0x5ae2e9=>_0x5ae2e9[_0x1552f0(0x19b)]===_0x1552f0(0x1bc))[_0x1552f0(0x1b4)],'cacheDirs':_0x158f59[_0x1552f0(0x1c3)](_0x144b48=>_0x144b48[_0x1552f0(0x19b)]==='removed')[_0x1552f0(0x1b4)],'skipped':[..._0x2f1d17,..._0x158f59][_0x1552f0(0x1c3)](_0x2a0dd1=>_0x2a0dd1[_0x1552f0(0x19b)]===_0x1552f0(0x1c0))[_0x1552f0(0x1b4)]},'skills':{'personal':_0x2bc9bf[_0x1552f0(0x1a6)](summarizeRuntimeSkill),'company':_0x24aeb2[_0x1552f0(0x1a6)](summarizeRuntimeSkill)}},'message':_0x1552f0(0x1b5)+_0x2bc9bf[_0x1552f0(0x1b4)]+_0x1552f0(0x1a2)+_0x24aeb2[_0x1552f0(0x1b4)]+'\x20company\x20Skill(s).'};}async function mapConcurrent(_0x5ec2f1,_0x15d2e1,_0x29b46c){const _0xf04778=a65_0x86bb93,_0x8ebbb0=new Array(_0x5ec2f1[_0xf04778(0x1b4)]);let _0x408ab1=0x0;const _0x5544ba=Array[_0xf04778(0x1a8)]({'length':Math[_0xf04778(0x1ae)](_0x15d2e1,_0x5ec2f1['length'])},async()=>{while(_0x408ab1<_0x5ec2f1['length']){const _0x1353fb=_0x408ab1;_0x408ab1+=0x1,_0x8ebbb0[_0x1353fb]=await _0x29b46c(_0x5ec2f1[_0x1353fb]);}});return await Promise['all'](_0x5544ba),_0x8ebbb0;}async function downloadSkillPackage(_0x45cb82,_0x208969,_0x27148d,_0x5895cb){const _0x32c95e=a65_0x86bb93,_0x291df4=_0x45cb82[_0x32c95e(0x19f)]?.[_0x32c95e(0x19e)]();return _0x291df4?_0x5895cb(_0x208969,_0x45cb82[_0x32c95e(0x1be)],_0x27148d,_0x291df4):_0x5895cb(_0x208969,_0x45cb82[_0x32c95e(0x1be)],_0x27148d);}function countLinkActions(_0xfd5ce5){const _0x1d28ca=a65_0x86bb93;return _0xfd5ce5[_0x1d28ca(0x19d)]((_0x146291,_0x47df79)=>{return _0x146291[_0x47df79['action']]=(_0x146291[_0x47df79['action']]??0x0)+0x1,_0x146291;},{});}
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
- const a66_0x2543a2=a66_0x2615;(function(_0x3dc54d,_0x3de367){const _0x190bb=a66_0x2615,_0x1182f3=_0x3dc54d();while(!![]){try{const _0x2313d5=-parseInt(_0x190bb(0x11a))/0x1+-parseInt(_0x190bb(0x13b))/0x2*(-parseInt(_0x190bb(0x126))/0x3)+parseInt(_0x190bb(0x11b))/0x4+-parseInt(_0x190bb(0x133))/0x5*(-parseInt(_0x190bb(0x12e))/0x6)+-parseInt(_0x190bb(0x122))/0x7*(parseInt(_0x190bb(0x129))/0x8)+-parseInt(_0x190bb(0x139))/0x9+-parseInt(_0x190bb(0x12b))/0xa*(parseInt(_0x190bb(0x11c))/0xb);if(_0x2313d5===_0x3de367)break;else _0x1182f3['push'](_0x1182f3['shift']());}catch(_0x981810){_0x1182f3['push'](_0x1182f3['shift']());}}}(a66_0x4cb5,0xda9cf));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';function a66_0x4cb5(){const _0x4663f3=['bool','266JHNGZP','scope','project','length','244518DVpGgl','remote','list','26608znuaGm','local','940GyUXup','map','production','9122538iSgxzO','skill','appCode','../../../skills/runtime-skill-sync.js','\x20local\x20Skill(s).','5XjMvEj','company','personal','envName','Listed\x20','code','282537aqIGvB','str','18aEzIIE','filter','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','trim','global','517338BDlpbb','3236076YnsbYI','174647KKQPZw','accessKey','\x20remote\x20Skill(s).','../../../core/api-client.js','builtin'];a66_0x4cb5=function(){return _0x4663f3;};return a66_0x4cb5();}import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':a66_0x2543a2(0x12f),'command':a66_0x2543a2(0x128),'description':a66_0x2543a2(0x13d),'risk':'read','flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0xe6857f){const _0x1d9bd5=a66_0x2543a2,_0x59767e=_0xe6857f[_0x1d9bd5(0x13a)](_0x1d9bd5(0x138)),_0x1b71b1=normalizeListScope(_0xe6857f[_0x1d9bd5(0x13a)](_0x1d9bd5(0x123)));if(_0xe6857f[_0x1d9bd5(0x121)]('local')){const _0x3c51dd=_0xe6857f[_0x1d9bd5(0x11d)];if(!_0x3c51dd)throw CliErrors['authRequired']();const {listLocalRuntimeSkills:_0x2bbe97,resolveRuntimeSkillInstallTarget:_0x3e5824}=await import(_0x1d9bd5(0x131)),_0x2da4fe=_0x3e5824(_0xe6857f['appCode'],_0xe6857f[_0x1d9bd5(0x121)](_0x1d9bd5(0x124))?'project':_0x1d9bd5(0x119)),_0x152176=_0x2bbe97({'env':_0xe6857f[_0x1d9bd5(0x136)]??_0x1d9bd5(0x12d),'accessKey':_0x3c51dd,'appCode':_0xe6857f['appCode'],'scopes':listScopeToRuntimeScopes(_0x1b71b1),'code':_0x59767e[_0x1d9bd5(0x118)]()||undefined},_0x2da4fe),_0x5d14f0=groupLocalRuntimeSkills(_0x152176);return{'ok':!![],'data':{'appCode':_0xe6857f[_0x1d9bd5(0x130)],'source':_0x1d9bd5(0x12a),..._0x2da4fe[_0x1d9bd5(0x123)]==='project'?{'installScope':_0x2da4fe[_0x1d9bd5(0x123)]}:{},'scope':_0x1b71b1,'total':_0x152176['length'],'personal':_0x5d14f0[_0x1d9bd5(0x135)][_0x1d9bd5(0x125)],'company':_0x5d14f0[_0x1d9bd5(0x134)]['length'],'items':_0x152176[_0x1d9bd5(0x12c)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x5d14f0[_0x1d9bd5(0x135)][_0x1d9bd5(0x12c)](summarizeLocalRuntimeSkill),'company':_0x5d14f0[_0x1d9bd5(0x134)]['map'](summarizeLocalRuntimeSkill)}},'message':_0x1d9bd5(0x137)+_0x152176[_0x1d9bd5(0x125)]+_0x1d9bd5(0x132)};}const {listRuntimeSkills:_0x2d6747}=await import(_0x1d9bd5(0x11f)),_0x5eb635=await _0x2d6747({'appCode':_0xe6857f[_0x1d9bd5(0x130)],'scope':listScopeToRemoteScope(_0x1b71b1),'code':_0x59767e[_0x1d9bd5(0x118)]()||undefined}),_0x51a2ed=shouldListScope(_0x1b71b1,_0x1d9bd5(0x135))?_0x5eb635[_0x1d9bd5(0x135)]??[]:[],_0xce316b=shouldListScope(_0x1b71b1,'company')?_0x5eb635[_0x1d9bd5(0x134)]??[]:[],_0x4a2be5=[..._0x51a2ed,..._0xce316b];return{'ok':!![],'data':{'appCode':_0xe6857f[_0x1d9bd5(0x130)],'source':_0x1d9bd5(0x127),'scope':_0x1b71b1,'total':_0x4a2be5[_0x1d9bd5(0x125)],'personal':_0x51a2ed[_0x1d9bd5(0x125)],'company':_0xce316b[_0x1d9bd5(0x125)],'items':_0x4a2be5[_0x1d9bd5(0x12c)](summarizeRuntimeSkill),'skills':{'personal':_0x51a2ed[_0x1d9bd5(0x12c)](summarizeRuntimeSkill),'company':_0xce316b['map'](summarizeRuntimeSkill)}},'message':_0x1d9bd5(0x137)+_0x4a2be5[_0x1d9bd5(0x125)]+_0x1d9bd5(0x11e)};}};function a66_0x2615(_0x5b80db,_0xddb1c3){_0x5b80db=_0x5b80db-0x118;const _0x4cb598=a66_0x4cb5();let _0x2615fa=_0x4cb598[_0x5b80db];return _0x2615fa;}function groupLocalRuntimeSkills(_0x53e444){const _0x1d0874=a66_0x2543a2;return{'personal':_0x53e444['filter'](_0x1d2a4f=>_0x1d2a4f[_0x1d0874(0x123)]===_0x1d0874(0x135)),'company':_0x53e444[_0x1d0874(0x13c)](_0x137a99=>_0x137a99['scope']==='company'),'builtin':_0x53e444[_0x1d0874(0x13c)](_0x4efb4a=>_0x4efb4a[_0x1d0874(0x123)]===_0x1d0874(0x120))};}
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))};}