@lovrabet/lovrabet-cli 2.1.22 → 2.1.23-beta.2

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 (140) 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.d.ts +4 -8
  5. package/lib/commands/app/definitions.js +1 -1
  6. package/lib/commands/app/eligibility.js +1 -1
  7. package/lib/commands/app/mock-loader.js +1 -1
  8. package/lib/commands/app/remote-source.js +1 -1
  9. package/lib/commands/app/shared.d.ts +1 -16
  10. package/lib/commands/app/shared.js +1 -1
  11. package/lib/commands/app-config/get.js +1 -1
  12. package/lib/commands/app-config/index.js +1 -1
  13. package/lib/commands/artifact/index.js +1 -1
  14. package/lib/commands/auth/device.js +1 -1
  15. package/lib/commands/auth/index.d.ts +2 -2
  16. package/lib/commands/auth/index.js +1 -1
  17. package/lib/commands/auth/prompt.js +1 -1
  18. package/lib/commands/bff/detail.js +1 -1
  19. package/lib/commands/bff/exec.js +1 -1
  20. package/lib/commands/bff/index.js +1 -1
  21. package/lib/commands/cli-skill/index.js +1 -1
  22. package/lib/commands/common/config-policy.d.ts +4 -8
  23. package/lib/commands/common/config-policy.js +1 -1
  24. package/lib/commands/common/constraints.js +1 -1
  25. package/lib/commands/common/flags.js +1 -1
  26. package/lib/commands/common/local-file.js +1 -1
  27. package/lib/commands/config/definitions.js +1 -1
  28. package/lib/commands/config/shared.js +1 -1
  29. package/lib/commands/data/index.js +1 -1
  30. package/lib/commands/dataset/detail.js +1 -1
  31. package/lib/commands/dataset/index.js +1 -1
  32. package/lib/commands/dataset/list.js +1 -1
  33. package/lib/commands/dataset/sdk-doc.js +1 -1
  34. package/lib/commands/doctor.js +1 -1
  35. package/lib/commands/file/index.js +1 -1
  36. package/lib/commands/init.d.ts +6 -24
  37. package/lib/commands/init.js +1 -1
  38. package/lib/commands/kb/index.js +1 -1
  39. package/lib/commands/logs/index.js +1 -1
  40. package/lib/commands/ocr/index.js +1 -1
  41. package/lib/commands/personal-bff/index.js +1 -1
  42. package/lib/commands/registry.d.ts +7 -0
  43. package/lib/commands/registry.js +1 -1
  44. package/lib/commands/schedule/index.js +1 -1
  45. package/lib/commands/schema.js +1 -1
  46. package/lib/commands/service/dynamic.js +1 -1
  47. package/lib/commands/service/function-name-adapter.js +1 -1
  48. package/lib/commands/service/index.js +1 -1
  49. package/lib/commands/service/registry.js +1 -1
  50. package/lib/commands/skill/commands/create.js +1 -1
  51. package/lib/commands/skill/commands/diagram.js +1 -1
  52. package/lib/commands/skill/commands/install.js +1 -1
  53. package/lib/commands/skill/commands/list.js +1 -1
  54. package/lib/commands/skill/commands/push.js +1 -1
  55. package/lib/commands/skill/commands/validate.js +1 -1
  56. package/lib/commands/skill/diagram.js +1 -1
  57. package/lib/commands/skill/flags.js +1 -1
  58. package/lib/commands/skill/index.js +1 -1
  59. package/lib/commands/skill/manifest-helpers.js +1 -1
  60. package/lib/commands/skill/push-execute.js +1 -1
  61. package/lib/commands/skill/push-flow-helpers.js +1 -1
  62. package/lib/commands/skill/push-retarget.js +1 -1
  63. package/lib/commands/skill/scopes.js +1 -1
  64. package/lib/commands/skill/summary.js +1 -1
  65. package/lib/commands/skill/templates.js +1 -1
  66. package/lib/commands/skill/validate.js +1 -1
  67. package/lib/commands/sql/detail.js +1 -1
  68. package/lib/commands/sql/exec.js +1 -1
  69. package/lib/commands/sql/index.js +1 -1
  70. package/lib/commands/update.js +1 -1
  71. package/lib/commands/workspace/index.js +1 -1
  72. package/lib/config/schema.js +1 -1
  73. package/lib/constant/app.js +1 -1
  74. package/lib/constant/auth-mode.js +1 -1
  75. package/lib/constant/cli.js +1 -1
  76. package/lib/constant/defaults.js +1 -1
  77. package/lib/constant/distribution.js +1 -1
  78. package/lib/constant/domain.js +1 -1
  79. package/lib/constant/env.js +1 -1
  80. package/lib/constant/output.js +1 -1
  81. package/lib/constant/product.js +1 -1
  82. package/lib/constant/risk.js +1 -1
  83. package/lib/constant/url.js +1 -1
  84. package/lib/context.d.ts +5 -5
  85. package/lib/context.js +1 -1
  86. package/lib/core/api-client.js +1 -1
  87. package/lib/core/db-resolver.js +1 -1
  88. package/lib/core/sdk-client.js +1 -1
  89. package/lib/errors.js +1 -1
  90. package/lib/framework/build-all-flags.js +1 -1
  91. package/lib/framework/dryrun.js +1 -1
  92. package/lib/framework/flags.js +1 -1
  93. package/lib/framework/help.js +1 -1
  94. package/lib/framework/index.js +1 -1
  95. package/lib/framework/output.js +1 -1
  96. package/lib/framework/preparse.js +1 -1
  97. package/lib/framework/rate-limit.js +1 -1
  98. package/lib/framework/raw-flags.js +1 -1
  99. package/lib/framework/response.js +1 -1
  100. package/lib/framework/runner-confirmation.js +1 -1
  101. package/lib/framework/runner-error.js +1 -1
  102. package/lib/framework/runner.js +1 -1
  103. package/lib/framework/schema-export.js +1 -1
  104. package/lib/framework/service-order.js +1 -1
  105. package/lib/framework/types.js +1 -1
  106. package/lib/generated/build-info.d.ts +4 -4
  107. package/lib/generated/build-info.js +1 -1
  108. package/lib/help.js +1 -1
  109. package/lib/runtime/confirmation.js +1 -1
  110. package/lib/runtime/event.js +1 -1
  111. package/lib/runtime/index.d.ts +1 -1
  112. package/lib/runtime/index.js +1 -1
  113. package/lib/runtime/queue.d.ts +2 -1
  114. package/lib/runtime/queue.js +1 -1
  115. package/lib/runtime/resolve.js +1 -1
  116. package/lib/skills/npx-skills-add.js +1 -1
  117. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  118. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  119. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  120. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  121. package/lib/skills/runtime-skill-sync/links.js +1 -1
  122. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  123. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  124. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  125. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  126. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  127. package/lib/skills/runtime-skill-sync/push.js +1 -1
  128. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  129. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  130. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  131. package/lib/skills/runtime-skill-sync.js +1 -1
  132. package/lib/utils/apply-jq-filter.js +1 -1
  133. package/lib/utils/logger.js +1 -1
  134. package/lib/utils/lossless-json.js +1 -1
  135. package/lib/utils/params.js +1 -1
  136. package/lib/utils/platform.js +1 -1
  137. package/lib/utils/update-notice.js +1 -1
  138. package/lib/utils/version.js +1 -1
  139. package/lib/utils/write-cli-side-channel.js +1 -1
  140. package/package.json +1 -1
@@ -1 +1 @@
1
- function a37_0x2c4a(_0x27b623,_0x4677de){_0x27b623=_0x27b623-0x159;const _0x25984c=a37_0x2598();let _0x2c4a44=_0x25984c[_0x27b623];return _0x2c4a44;}const a37_0x1bcf94=a37_0x2c4a;function a37_0x2598(){const _0x43acd7=['2QeJQJe','validation','3296nPiStH','title','创建周期性或单次执行的\x20Agent\x20定时任务','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','Deleted\x20schedule\x20','377439DWkaaC','ONCE','\x20schedule\x20','将在当前应用中创建可自动触发\x20Agent\x20的定时任务;到达设定时间后会按任务内容创建并执行\x20Task。','Preview:\x20run\x20schedule\x20','212124DXTfTy','\x20immediately','45WprOqw','Show\x20one\x20schedule\x20by\x20schedule\x20ID','117480JPCivP','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','Page\x20size\x20from\x201\x20to\x20100','body','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','detail','\x20from\x20schedule\x20','Schedule\x20title','Schedule\x20UUID','prompt','235834HrjlMO','taskId','create','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','build','list','cursor','read','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','立即运行一次定时任务并创建\x20Task','scheduled-at','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','319401HMmOCH','10675VeTqOu','CRON','Created\x20','schedule','30RfbzRP','/schedules','appCode','POST','Preview:\x20delete\x20schedule\x20','validate','kind','isSafeInteger','cron','schedule-id','--prompt\x20must\x20not\x20be\x20blank.','premium','str','number','string','high-risk-write','limit','trim','/run','Schedule\x20input\x20is\x20valid','删除定时任务并停止其后续触发','Preview:\x20create\x20an\x20Agent\x20schedule','UTC','description','num','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','channel','2015934OeRwqJ','scheduleId','671GuXwBF','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','length'];a37_0x2598=function(){return _0x43acd7;};return a37_0x2598();}(function(_0x43fa2e,_0x477bb8){const _0x304726=a37_0x2c4a,_0x3e8bc4=_0x43fa2e();while(!![]){try{const _0x15fccd=parseInt(_0x304726(0x183))/0x1+-parseInt(_0x304726(0x169))/0x2*(-parseInt(_0x304726(0x170))/0x3)+parseInt(_0x304726(0x175))/0x4*(parseInt(_0x304726(0x177))/0x5)+-parseInt(_0x304726(0x164))/0x6+-parseInt(_0x304726(0x190))/0x7*(-parseInt(_0x304726(0x16b))/0x8)+parseInt(_0x304726(0x18f))/0x9*(-parseInt(_0x304726(0x194))/0xa)+parseInt(_0x304726(0x166))/0xb*(-parseInt(_0x304726(0x179))/0xc);if(_0x15fccd===_0x477bb8)break;else _0x3e8bc4['push'](_0x3e8bc4['shift']());}catch(_0x42f57a){_0x3e8bc4['push'](_0x3e8bc4['shift']());}}}(a37_0x2598,0x6863c));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a37_0x1bcf94(0x19a),'type':a37_0x1bcf94(0x1a2),'required':!![],'enum':[a37_0x1bcf94(0x191),a37_0x1bcf94(0x171)],'description':'Schedule\x20kind:\x20CRON\x20or\x20ONCE'},CRON_FLAG={'name':a37_0x1bcf94(0x19c),'type':a37_0x1bcf94(0x1a2),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':a37_0x1bcf94(0x18d),'type':a37_0x1bcf94(0x1a2),'description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a37_0x1bcf94(0x16c),'type':'string','required':!![],'description':a37_0x1bcf94(0x180)},PROMPT_FLAG={'name':a37_0x1bcf94(0x182),'type':a37_0x1bcf94(0x1a2),'required':!![],'description':a37_0x1bcf94(0x16e)},CHANNEL_FLAG={'name':a37_0x1bcf94(0x163),'type':a37_0x1bcf94(0x1a2),'enum':['auto',a37_0x1bcf94(0x19f)],'default':'premium','description':'Task\x20channel:\x20auto\x20or\x20premium'},SCHEDULE_ID_FLAG={'name':a37_0x1bcf94(0x19d),'type':a37_0x1bcf94(0x1a2),'required':!![],'description':a37_0x1bcf94(0x181),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':'a\x20UUID\x20returned\x20by\x20schedule\x20create/list'}},LIMIT_FLAG={'name':a37_0x1bcf94(0x159),'type':a37_0x1bcf94(0x1a1),'default':0x14,'description':a37_0x1bcf94(0x17b)},CURSOR_FLAG={'name':a37_0x1bcf94(0x189),'type':'string','description':a37_0x1bcf94(0x18b)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,CHANNEL_FLAG];function readScheduleInput(_0x1ec360){const _0x317870=a37_0x1bcf94,_0x4b7501=_0x1ec360['str']('kind'),_0x4b37a1=_0x1ec360[_0x317870(0x1a0)]('title')[_0x317870(0x15a)](),_0x7ecfd4=_0x1ec360['str'](_0x317870(0x182))[_0x317870(0x15a)](),_0x37b547=_0x1ec360['str'](_0x317870(0x163)),_0x1cca6c=_0x1ec360['str'](_0x317870(0x19c)),_0x207ff9=_0x1ec360[_0x317870(0x1a0)](_0x317870(0x18d));if(!_0x4b37a1)throw CliErrors[_0x317870(0x16a)]('--title\x20must\x20not\x20be\x20blank.');if(!_0x7ecfd4)throw CliErrors[_0x317870(0x16a)](_0x317870(0x19e));if(_0x4b7501===_0x317870(0x191)){if(!_0x1cca6c||_0x207ff9)throw CliErrors[_0x317870(0x16a)](_0x317870(0x167));return{'kind':_0x4b7501,'timezone':'UTC','cron':_0x1cca6c,'title':_0x4b37a1,'prompt':_0x7ecfd4,'channel':_0x37b547};}if(_0x4b7501===_0x317870(0x171)){if(!_0x207ff9||_0x1cca6c)throw CliErrors[_0x317870(0x16a)](_0x317870(0x18e));return{'kind':_0x4b7501,'timezone':_0x317870(0x15f),'scheduledAt':_0x207ff9,'title':_0x4b37a1,'prompt':_0x7ecfd4,'channel':_0x37b547};}throw CliErrors[_0x317870(0x16a)](_0x317870(0x186));}function scheduleCollectionPath(_0x35aa19){const _0x23d63c=a37_0x1bcf94;return'/api/harness/apps/'+encodeURIComponent(_0x35aa19)+_0x23d63c(0x195);}function scheduleItemPath(_0x28d57b,_0x43a0f9){return scheduleCollectionPath(_0x28d57b)+'/'+encodeURIComponent(_0x43a0f9);}const scheduleValidate={'service':a37_0x1bcf94(0x193),'command':a37_0x1bcf94(0x199),'description':a37_0x1bcf94(0x162),'risk':a37_0x1bcf94(0x18a),'flags':INPUT_FLAGS,async 'validate'(_0x282747){readScheduleInput(_0x282747);},async 'execute'(_0x3fda32){const _0x1ae924=a37_0x1bcf94,_0xb889da=readScheduleInput(_0x3fda32),_0x1d0592=await validateRuntimeSchedule(_0x3fda32['appCode'],_0xb889da);return{'ok':!![],'data':_0x1d0592,'message':_0x1ae924(0x15c)};}},scheduleCreate={'service':a37_0x1bcf94(0x193),'command':a37_0x1bcf94(0x185),'description':a37_0x1bcf94(0x16d),'risk':a37_0x1bcf94(0x1a3),'confirmationDescription':a37_0x1bcf94(0x173),'flags':INPUT_FLAGS,async 'validate'(_0x59f5d1){readScheduleInput(_0x59f5d1);},async 'execute'(_0x57f3c){const _0x58453a=a37_0x1bcf94,_0x17356e=readScheduleInput(_0x57f3c),_0x4c0910=await validateRuntimeSchedule(_0x57f3c[_0x58453a(0x196)],_0x17356e),_0x2f36db=await createRuntimeSchedule(_0x57f3c[_0x58453a(0x196)],_0x4c0910);return{'ok':!![],'data':_0x2f36db,'message':_0x58453a(0x192)+_0x2f36db[_0x58453a(0x19a)]+_0x58453a(0x172)+_0x2f36db[_0x58453a(0x165)]};},async 'dryRun'(_0x5f185a){const _0x57626a=a37_0x1bcf94,_0x30e929=readScheduleInput(_0x5f185a);return dryRun(_0x57626a(0x197),scheduleCollectionPath(_0x5f185a[_0x57626a(0x196)]))[_0x57626a(0x17c)](_0x30e929)[_0x57626a(0x160)](_0x57626a(0x15e))[_0x57626a(0x187)]();}},scheduleList={'service':'schedule','command':a37_0x1bcf94(0x188),'description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':a37_0x1bcf94(0x18a),'flags':[LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x47c8a7){const _0xf6351a=a37_0x1bcf94,_0x464243=_0x47c8a7['num']('limit');if(!Number[_0xf6351a(0x19b)](_0x464243)||_0x464243<0x1||_0x464243>0x64)throw CliErrors[_0xf6351a(0x16a)](_0xf6351a(0x17d));const _0x300888=_0x47c8a7[_0xf6351a(0x1a0)](_0xf6351a(0x189));if(_0x300888&&(_0x300888[_0xf6351a(0x168)]>0x400||_0x300888[_0xf6351a(0x15a)]()!==_0x300888))throw CliErrors[_0xf6351a(0x16a)](_0xf6351a(0x17a));},async 'execute'(_0x419757){const _0x3c6967=a37_0x1bcf94,_0x4bd508=_0x419757[_0x3c6967(0x1a0)]('cursor'),_0x34eb7d=await listRuntimeSchedules(_0x419757[_0x3c6967(0x196)],{'limit':_0x419757[_0x3c6967(0x161)](_0x3c6967(0x159)),..._0x4bd508?{'cursor':_0x4bd508}:{}});return{'ok':!![],'data':_0x34eb7d};}},scheduleDetail={'service':a37_0x1bcf94(0x193),'command':a37_0x1bcf94(0x17e),'description':a37_0x1bcf94(0x178),'risk':a37_0x1bcf94(0x18a),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1c6920){const _0x44e87e=a37_0x1bcf94,_0x414e21=await getRuntimeSchedule(_0x1c6920[_0x44e87e(0x196)],_0x1c6920[_0x44e87e(0x1a0)](_0x44e87e(0x19d)));return{'ok':!![],'data':_0x414e21};}},scheduleRun={'service':a37_0x1bcf94(0x193),'command':'run','description':a37_0x1bcf94(0x18c),'risk':a37_0x1bcf94(0x1a3),'confirmationDescription':'将忽略原定触发时间,立即运行一次该定时任务并创建新的\x20Agent\x20Task。','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x24b7ee){const _0xe3d4a8=a37_0x1bcf94,_0xc7618=_0x24b7ee['str'](_0xe3d4a8(0x19d)),_0x3b1396=await runRuntimeSchedule(_0x24b7ee[_0xe3d4a8(0x196)],_0xc7618);return{'ok':!![],'data':_0x3b1396,'message':'Queued\x20Task\x20'+_0x3b1396[_0xe3d4a8(0x184)]+_0xe3d4a8(0x17f)+_0xc7618};},async 'dryRun'(_0x3dfbb0){const _0x5154d8=a37_0x1bcf94,_0x2b33ce=_0x3dfbb0[_0x5154d8(0x1a0)]('schedule-id');return dryRun('POST',scheduleItemPath(_0x3dfbb0['appCode'],_0x2b33ce)+_0x5154d8(0x15b))[_0x5154d8(0x160)](_0x5154d8(0x174)+_0x2b33ce+_0x5154d8(0x176))[_0x5154d8(0x187)]();}},scheduleDelete={'service':'schedule','command':'delete','description':a37_0x1bcf94(0x15d),'risk':a37_0x1bcf94(0x1a3),'confirmationDescription':'将永久删除该定时任务并停止后续自动触发;已经创建的历史\x20Task\x20不受影响。','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x3b5f6c){const _0x17e72b=a37_0x1bcf94,_0x4b15a4=_0x3b5f6c[_0x17e72b(0x1a0)]('schedule-id'),_0x27c3c6=await deleteRuntimeSchedule(_0x3b5f6c[_0x17e72b(0x196)],_0x4b15a4);return{'ok':!![],'data':_0x27c3c6,'message':_0x17e72b(0x16f)+_0x4b15a4};},async 'dryRun'(_0x13ccbe){const _0x4c8db3=a37_0x1bcf94,_0x12490e=_0x13ccbe[_0x4c8db3(0x1a0)](_0x4c8db3(0x19d));return dryRun('DELETE',scheduleItemPath(_0x13ccbe[_0x4c8db3(0x196)],_0x12490e))['description'](_0x4c8db3(0x198)+_0x12490e)[_0x4c8db3(0x187)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
1
+ const a37_0x55887b=a37_0x5d25;(function(_0x56f577,_0x55c33b){const _0xee403c=a37_0x5d25,_0x1593b5=_0x56f577();while(!![]){try{const _0x2af0e3=-parseInt(_0xee403c(0x1ab))/0x1*(-parseInt(_0xee403c(0x1ba))/0x2)+parseInt(_0xee403c(0x1c4))/0x3+parseInt(_0xee403c(0x1ae))/0x4*(-parseInt(_0xee403c(0x193))/0x5)+parseInt(_0xee403c(0x19e))/0x6+parseInt(_0xee403c(0x1c0))/0x7*(parseInt(_0xee403c(0x1b7))/0x8)+-parseInt(_0xee403c(0x18b))/0x9+-parseInt(_0xee403c(0x19f))/0xa;if(_0x2af0e3===_0x55c33b)break;else _0x1593b5['push'](_0x1593b5['shift']());}catch(_0x2cd59e){_0x1593b5['push'](_0x1593b5['shift']());}}}(a37_0xf0a7,0x260e6));function a37_0x5d25(_0x1303de,_0x541f70){_0x1303de=_0x1303de-0x182;const _0xf0a70=a37_0xf0a7();let _0x5d2563=_0xf0a70[_0x1303de];return _0x5d2563;}import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':'kind','type':'string','required':!![],'enum':['CRON',a37_0x55887b(0x19b)],'description':a37_0x55887b(0x1c1)},CRON_FLAG={'name':a37_0x55887b(0x1bb),'type':'string','description':a37_0x55887b(0x190)},SCHEDULED_AT_FLAG={'name':a37_0x55887b(0x185),'type':'string','description':a37_0x55887b(0x1a0)},TITLE_FLAG={'name':'title','type':a37_0x55887b(0x1a2),'required':!![],'description':'Schedule\x20title'},PROMPT_FLAG={'name':a37_0x55887b(0x1ad),'type':'string','required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},CHANNEL_FLAG={'name':a37_0x55887b(0x1ac),'type':'string','enum':[a37_0x55887b(0x1c7),a37_0x55887b(0x1a5)],'default':a37_0x55887b(0x1a5),'description':'Task\x20channel:\x20auto\x20or\x20premium'},SCHEDULE_ID_FLAG={'name':a37_0x55887b(0x1a4),'type':'string','required':!![],'description':a37_0x55887b(0x1be),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':'a\x20UUID\x20returned\x20by\x20schedule\x20create/list'}},LIMIT_FLAG={'name':a37_0x55887b(0x19c),'type':a37_0x55887b(0x1a6),'default':0x14,'description':a37_0x55887b(0x18c)},CURSOR_FLAG={'name':'cursor','type':a37_0x55887b(0x1a2),'description':a37_0x55887b(0x1b0)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,CHANNEL_FLAG];function a37_0xf0a7(){const _0x3239c9=['body','run','--title\x20must\x20not\x20be\x20blank.','trim','214504AXwHtJ','Show\x20one\x20schedule\x20by\x20schedule\x20ID','将忽略原定触发时间,立即运行一次该定时任务并创建新的\x20Agent\x20Task。','166038dbNHPB','cron','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','num','Schedule\x20UUID','build','7rrrAwa','Schedule\x20kind:\x20CRON\x20or\x20ONCE','\x20schedule\x20','DELETE','922257UGutRY','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','appCode','auto','kind','UTC','Queued\x20Task\x20','scheduled-at','validation','description','Preview:\x20create\x20an\x20Agent\x20schedule','cursor','taskId','1363005pEBbKh','Page\x20size\x20from\x201\x20to\x20100','--prompt\x20must\x20not\x20be\x20blank.','high-risk-write','str','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','schedule','Created\x20','37165HrlzKq','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','Preview:\x20run\x20schedule\x20','Preview:\x20delete\x20schedule\x20','删除定时任务并停止其后续触发','/schedules','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','read','ONCE','limit','/run','804180sgutfg','1621950NTtyoe','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','/api/harness/apps/','string','length','schedule-id','premium','number','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','立即运行一次定时任务并创建\x20Task','validate','\x20from\x20schedule\x20','1agHgcQ','channel','prompt','44PKIOdD','CRON','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','list','创建周期性或单次执行的\x20Agent\x20定时任务'];a37_0xf0a7=function(){return _0x3239c9;};return a37_0xf0a7();}function readScheduleInput(_0x169d1b){const _0x52ec7c=a37_0x55887b,_0x31c43a=_0x169d1b[_0x52ec7c(0x18f)](_0x52ec7c(0x182)),_0x14b7ae=_0x169d1b[_0x52ec7c(0x18f)]('title')[_0x52ec7c(0x1b6)](),_0x200163=_0x169d1b[_0x52ec7c(0x18f)]('prompt')[_0x52ec7c(0x1b6)](),_0x23e11f=_0x169d1b[_0x52ec7c(0x18f)](_0x52ec7c(0x1ac)),_0x1494db=_0x169d1b[_0x52ec7c(0x18f)]('cron'),_0x4b7767=_0x169d1b['str'](_0x52ec7c(0x185));if(!_0x14b7ae)throw CliErrors[_0x52ec7c(0x186)](_0x52ec7c(0x1b5));if(!_0x200163)throw CliErrors[_0x52ec7c(0x186)](_0x52ec7c(0x18d));if(_0x31c43a===_0x52ec7c(0x1af)){if(!_0x1494db||_0x4b7767)throw CliErrors['validation']('CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.');return{'kind':_0x31c43a,'timezone':_0x52ec7c(0x183),'cron':_0x1494db,'title':_0x14b7ae,'prompt':_0x200163,'channel':_0x23e11f};}if(_0x31c43a===_0x52ec7c(0x19b)){if(!_0x4b7767||_0x1494db)throw CliErrors[_0x52ec7c(0x186)]('ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.');return{'kind':_0x31c43a,'timezone':'UTC','scheduledAt':_0x4b7767,'title':_0x14b7ae,'prompt':_0x200163,'channel':_0x23e11f};}throw CliErrors[_0x52ec7c(0x186)](_0x52ec7c(0x1a7));}function scheduleCollectionPath(_0x64025e){const _0x4339c8=a37_0x55887b;return _0x4339c8(0x1a1)+encodeURIComponent(_0x64025e)+_0x4339c8(0x198);}function scheduleItemPath(_0x1ce830,_0x3cef46){return scheduleCollectionPath(_0x1ce830)+'/'+encodeURIComponent(_0x3cef46);}const scheduleValidate={'service':'schedule','command':a37_0x55887b(0x1a9),'description':a37_0x55887b(0x194),'risk':a37_0x55887b(0x19a),'flags':INPUT_FLAGS,async 'validate'(_0x3d9de2){readScheduleInput(_0x3d9de2);},async 'execute'(_0x1f2622){const _0x44620a=a37_0x55887b,_0x1e54a4=readScheduleInput(_0x1f2622),_0x1153b5=await validateRuntimeSchedule(_0x1f2622[_0x44620a(0x1c6)],_0x1e54a4);return{'ok':!![],'data':_0x1153b5,'message':'Schedule\x20input\x20is\x20valid'};}},scheduleCreate={'service':a37_0x55887b(0x191),'command':'create','description':a37_0x55887b(0x1b2),'risk':a37_0x55887b(0x18e),'confirmationDescription':'将在当前应用中创建可自动触发\x20Agent\x20的定时任务;到达设定时间后会按任务内容创建并执行\x20Task。','flags':INPUT_FLAGS,async 'validate'(_0x8a9b59){readScheduleInput(_0x8a9b59);},async 'execute'(_0x17c1df){const _0xf44156=a37_0x55887b,_0x59fea7=readScheduleInput(_0x17c1df),_0x384898=await validateRuntimeSchedule(_0x17c1df[_0xf44156(0x1c6)],_0x59fea7),_0x5e4fb0=await createRuntimeSchedule(_0x17c1df['appCode'],_0x384898);return{'ok':!![],'data':_0x5e4fb0,'message':_0xf44156(0x192)+_0x5e4fb0[_0xf44156(0x182)]+_0xf44156(0x1c2)+_0x5e4fb0['scheduleId']};},async 'dryRun'(_0x21e2d1){const _0x29bf7e=a37_0x55887b,_0x40ac28=readScheduleInput(_0x21e2d1);return dryRun('POST',scheduleCollectionPath(_0x21e2d1[_0x29bf7e(0x1c6)]))[_0x29bf7e(0x1b3)](_0x40ac28)[_0x29bf7e(0x187)](_0x29bf7e(0x188))['build']();}},scheduleList={'service':'schedule','command':a37_0x55887b(0x1b1),'description':a37_0x55887b(0x199),'risk':a37_0x55887b(0x19a),'flags':[LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x129ceb){const _0xad69a5=a37_0x55887b,_0x4fc368=_0x129ceb[_0xad69a5(0x1bd)]('limit');if(!Number['isSafeInteger'](_0x4fc368)||_0x4fc368<0x1||_0x4fc368>0x64)throw CliErrors[_0xad69a5(0x186)](_0xad69a5(0x1bc));const _0x34a72c=_0x129ceb[_0xad69a5(0x18f)](_0xad69a5(0x189));if(_0x34a72c&&(_0x34a72c[_0xad69a5(0x1a3)]>0x400||_0x34a72c['trim']()!==_0x34a72c))throw CliErrors[_0xad69a5(0x186)](_0xad69a5(0x1c5));},async 'execute'(_0x230cc7){const _0x36e0db=a37_0x55887b,_0x4e83ec=_0x230cc7['str'](_0x36e0db(0x189)),_0x42a085=await listRuntimeSchedules(_0x230cc7[_0x36e0db(0x1c6)],{'limit':_0x230cc7[_0x36e0db(0x1bd)]('limit'),..._0x4e83ec?{'cursor':_0x4e83ec}:{}});return{'ok':!![],'data':_0x42a085};}},scheduleDetail={'service':'schedule','command':'detail','description':a37_0x55887b(0x1b8),'risk':a37_0x55887b(0x19a),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x25f783){const _0x5e5752=a37_0x55887b,_0x1d2af6=await getRuntimeSchedule(_0x25f783[_0x5e5752(0x1c6)],_0x25f783[_0x5e5752(0x18f)]('schedule-id'));return{'ok':!![],'data':_0x1d2af6};}},scheduleRun={'service':a37_0x55887b(0x191),'command':a37_0x55887b(0x1b4),'description':a37_0x55887b(0x1a8),'risk':a37_0x55887b(0x18e),'confirmationDescription':a37_0x55887b(0x1b9),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x104bfc){const _0x535731=a37_0x55887b,_0x28cce3=_0x104bfc[_0x535731(0x18f)]('schedule-id'),_0x17cd5b=await runRuntimeSchedule(_0x104bfc[_0x535731(0x1c6)],_0x28cce3);return{'ok':!![],'data':_0x17cd5b,'message':_0x535731(0x184)+_0x17cd5b[_0x535731(0x18a)]+_0x535731(0x1aa)+_0x28cce3};},async 'dryRun'(_0xa38fdc){const _0x1a4ccf=a37_0x55887b,_0x5cef6e=_0xa38fdc['str'](_0x1a4ccf(0x1a4));return dryRun('POST',scheduleItemPath(_0xa38fdc[_0x1a4ccf(0x1c6)],_0x5cef6e)+_0x1a4ccf(0x19d))['description'](_0x1a4ccf(0x195)+_0x5cef6e+'\x20immediately')[_0x1a4ccf(0x1bf)]();}},scheduleDelete={'service':a37_0x55887b(0x191),'command':'delete','description':a37_0x55887b(0x197),'risk':a37_0x55887b(0x18e),'confirmationDescription':'将永久删除该定时任务并停止后续自动触发;已经创建的历史\x20Task\x20不受影响。','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x43f4f3){const _0x3a05a1=a37_0x55887b,_0x4bbe8e=_0x43f4f3['str'](_0x3a05a1(0x1a4)),_0x4e3938=await deleteRuntimeSchedule(_0x43f4f3['appCode'],_0x4bbe8e);return{'ok':!![],'data':_0x4e3938,'message':'Deleted\x20schedule\x20'+_0x4bbe8e};},async 'dryRun'(_0x372993){const _0x1896b5=a37_0x55887b,_0x48413e=_0x372993[_0x1896b5(0x18f)]('schedule-id');return dryRun(_0x1896b5(0x1c3),scheduleItemPath(_0x372993[_0x1896b5(0x1c6)],_0x48413e))['description'](_0x1896b5(0x196)+_0x48413e)[_0x1896b5(0x1bf)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
@@ -1 +1 @@
1
- function a38_0x4265(){const _0x2792a1=['22270BYIzvZ','8487gTtCqa','6723688PQhHeo','618136zNafew','2148pthjwZ','300054VMMXBt','17005YWZUsz','3628632jCUrUS','616817QzRNSv','read','32BCCtXE'];a38_0x4265=function(){return _0x2792a1;};return a38_0x4265();}const a38_0x3e50db=a38_0x4b5d;(function(_0x2dda8c,_0x5557b1){const _0x5ddc99=a38_0x4b5d,_0x5e86a3=_0x2dda8c();while(!![]){try{const _0x5505f2=parseInt(_0x5ddc99(0x106))/0x1+-parseInt(_0x5ddc99(0x10c))/0x2+-parseInt(_0x5ddc99(0x10e))/0x3*(parseInt(_0x5ddc99(0x108))/0x4)+-parseInt(_0x5ddc99(0x10f))/0x5*(parseInt(_0x5ddc99(0x10d))/0x6)+-parseInt(_0x5ddc99(0x110))/0x7+parseInt(_0x5ddc99(0x10b))/0x8+parseInt(_0x5ddc99(0x10a))/0x9*(parseInt(_0x5ddc99(0x109))/0xa);if(_0x5505f2===_0x5557b1)break;else _0x5e86a3['push'](_0x5e86a3['shift']());}catch(_0x40060e){_0x5e86a3['push'](_0x5e86a3['shift']());}}}(a38_0x4265,0xade01));import{buildSchemaPayload}from'../framework/schema-export.js';function a38_0x4b5d(_0x328a28,_0x9c2bb6){_0x328a28=_0x328a28-0x106;const _0x426510=a38_0x4265();let _0x4b5d2e=_0x426510[_0x328a28];return _0x4b5d2e;}async function execute(_0x1a8164){const _0x2aa8c1=await buildSchemaPayload();return{'ok':!![],'data':_0x2aa8c1};}export const schemaDefinition={'service':'schema','command':'export','description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':a38_0x3e50db(0x107),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
1
+ const a38_0x58fa45=a38_0x1a12;(function(_0x153fae,_0x4d159b){const _0x1a4596=a38_0x1a12,_0x466b73=_0x153fae();while(!![]){try{const _0x82c497=-parseInt(_0x1a4596(0x105))/0x1*(-parseInt(_0x1a4596(0xfe))/0x2)+-parseInt(_0x1a4596(0x101))/0x3*(-parseInt(_0x1a4596(0x104))/0x4)+-parseInt(_0x1a4596(0x102))/0x5+parseInt(_0x1a4596(0x100))/0x6+parseInt(_0x1a4596(0x103))/0x7+parseInt(_0x1a4596(0xff))/0x8+-parseInt(_0x1a4596(0x106))/0x9;if(_0x82c497===_0x4d159b)break;else _0x466b73['push'](_0x466b73['shift']());}catch(_0x5724c3){_0x466b73['push'](_0x466b73['shift']());}}}(a38_0x23bb,0x91324));import{buildSchemaPayload}from'../framework/schema-export.js';function a38_0x1a12(_0x32d03d,_0x2e4dfd){_0x32d03d=_0x32d03d-0xfe;const _0x23bbfc=a38_0x23bb();let _0x1a1228=_0x23bbfc[_0x32d03d];return _0x1a1228;}async function execute(_0x40901a){const _0x3dc21d=await buildSchemaPayload();return{'ok':!![],'data':_0x3dc21d};}function a38_0x23bb(){const _0x1b9eb3=['6628146kYbuYM','123WxLlAC','3818410tiBrDL','6354943DKRgcU','46616xdAeHo','2AUdcZR','21493260QNPzEC','schema','read','839368ongeSZ','3334592yEzOUt'];a38_0x23bb=function(){return _0x1b9eb3;};return a38_0x23bb();}export const schemaDefinition={'service':a38_0x58fa45(0x107),'command':'export','description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':a38_0x58fa45(0x108),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
1
- (function(_0x340451,_0x732c5b){const _0x25f7b5=a39_0x531e,_0x4a3181=_0x340451();while(!![]){try{const _0x4c2c12=-parseInt(_0x25f7b5(0x13c))/0x1*(-parseInt(_0x25f7b5(0x13d))/0x2)+parseInt(_0x25f7b5(0x170))/0x3+-parseInt(_0x25f7b5(0x18b))/0x4+-parseInt(_0x25f7b5(0x180))/0x5+parseInt(_0x25f7b5(0x15d))/0x6*(-parseInt(_0x25f7b5(0x193))/0x7)+-parseInt(_0x25f7b5(0x188))/0x8*(-parseInt(_0x25f7b5(0x12a))/0x9)+-parseInt(_0x25f7b5(0x185))/0xa*(-parseInt(_0x25f7b5(0x12b))/0xb);if(_0x4c2c12===_0x732c5b)break;else _0x4a3181['push'](_0x4a3181['shift']());}catch(_0x1e7ad5){_0x4a3181['push'](_0x4a3181['shift']());}}}(a39_0xa0dd,0x80ed4));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';function a39_0x531e(_0x1c7793,_0x28fb49){_0x1c7793=_0x1c7793-0x12a;const _0xa0dda0=a39_0xa0dd();let _0x531e3f=_0xa0dda0[_0x1c7793];return _0x531e3f;}export function resolveDynamicServiceCommand(_0x192deb,_0x582fe7){const _0x559916=a39_0x531e,_0x1e2863=listLocalServiceTrees();let _0x36b7d9;for(const _0x5d3cd6 of _0x1e2863){const _0x196a87=matchServiceTreeCommand(_0x5d3cd6,_0x192deb);if(!_0x196a87)continue;(!_0x36b7d9||_0x196a87['command']['fullPath']['length']>_0x36b7d9[_0x559916(0x14b)][_0x559916(0x12d)][_0x559916(0x13e)])&&(_0x36b7d9={'tree':_0x5d3cd6,'command':_0x196a87[_0x559916(0x14b)],'remainingArgs':_0x196a87[_0x559916(0x15a)]});}if(!_0x36b7d9)return undefined;const _0x57012a={..._0x582fe7};return applyAppBinding(_0x36b7d9['tree'],_0x36b7d9[_0x559916(0x14b)],_0x57012a),{'definition':buildDynamicCommandDefinition(_0x36b7d9[_0x559916(0x163)],_0x36b7d9[_0x559916(0x14b)]),'args':_0x36b7d9[_0x559916(0x15a)],'flags':_0x57012a,'tree':_0x36b7d9[_0x559916(0x163)],'command':_0x36b7d9[_0x559916(0x14b)]};}export function generateDynamicServiceHelp(_0xc6118f){const _0x2d7ba3=a39_0x531e,_0x40e6ef=listLocalServiceTrees()[_0x2d7ba3(0x138)](_0xccad21=>_0xccad21['service'][_0x2d7ba3(0x137)]===_0xc6118f);if(!_0x40e6ef)return undefined;const _0x7f4b95=[CLI_BIN_NAME+'\x20'+_0xc6118f+_0x2d7ba3(0x16a),'',_0x40e6ef[_0x2d7ba3(0x161)][_0x2d7ba3(0x18c)]||_0xc6118f,_0x40e6ef['service'][_0x2d7ba3(0x12e)]?'\x20\x20'+_0x40e6ef['service']['description']:'','',_0x2d7ba3(0x182),..._0x40e6ef['commands'][_0x2d7ba3(0x151)](_0x3a8323=>{const _0x469b64=_0x2d7ba3,_0x29a041=_0x3a8323[_0x469b64(0x12d)]['slice'](0x1)['join']('\x20'),_0x3c5caf=_0x3a8323[_0x469b64(0x17e)]===_0x469b64(0x159)?'':'\x20['+_0x3a8323[_0x469b64(0x17e)]+']';return'\x20\x20'+_0x29a041[_0x469b64(0x17d)](0x18)+'\x20'+(_0x3a8323[_0x469b64(0x12e)]||'')+_0x3c5caf;}),'',_0x2d7ba3(0x140)+CLI_BIN_NAME+_0x2d7ba3(0x186)+_0xc6118f+_0x2d7ba3(0x176)][_0x2d7ba3(0x158)](Boolean);return _0x7f4b95[_0x2d7ba3(0x191)]('\x0a');}export function listDynamicServiceEntries(){const _0x5792e0=a39_0x531e;return listLocalServices()[_0x5792e0(0x151)](_0x1cd65f=>{const _0x2fe41b=_0x5792e0,_0xbcb468=_0x1cd65f[_0x2fe41b(0x183)];return{'service':_0xbcb468[_0x2fe41b(0x161)]['code'],'label':_0xbcb468[_0x2fe41b(0x161)][_0x2fe41b(0x18c)]||_0xbcb468[_0x2fe41b(0x161)][_0x2fe41b(0x137)],'commands':_0xbcb468['commands'][_0x2fe41b(0x151)](_0x3cca15=>({'command':dynamicCommandName(_0x3cca15),'description':_0x3cca15[_0x2fe41b(0x12e)]||_0x2fe41b(0x192)+_0x3cca15[_0x2fe41b(0x148)],'tag':riskTag(_0x3cca15[_0x2fe41b(0x17e)])}))};});}export function getDynamicServiceEntry(_0x239019){const _0x5c13d3=a39_0x531e;return listDynamicServiceEntries()[_0x5c13d3(0x138)](_0x31712c=>_0x31712c[_0x5c13d3(0x161)]===_0x239019);}export function listDynamicServiceDefinitions(_0x28b9f8){const _0x3b5774=a39_0x531e;return listLocalServiceTrees()[_0x3b5774(0x158)](_0x19e654=>!_0x28b9f8||_0x19e654['service'][_0x3b5774(0x137)]===_0x28b9f8)['flatMap'](_0x38fbc7=>_0x38fbc7['commands'][_0x3b5774(0x151)](_0x1bced4=>buildDynamicCommandDefinition(_0x38fbc7,_0x1bced4)));}export function getDynamicServiceDefinitions(_0x4b549a){const _0x51fd2a=listDynamicServiceDefinitions(_0x4b549a);return _0x51fd2a['length']>0x0?_0x51fd2a:undefined;}export function findDynamicServiceDefinition(_0x1c7c2f,_0x1f52f8){const _0x559d40=a39_0x531e;return listDynamicServiceDefinitions(_0x1c7c2f)[_0x559d40(0x138)](_0x24b8a2=>_0x24b8a2[_0x559d40(0x14b)]===_0x1f52f8);}export function buildDynamicCommandDefinition(_0x2f2345,_0x378265){const _0x5a71ee=a39_0x531e;return{'service':_0x2f2345[_0x5a71ee(0x161)][_0x5a71ee(0x137)],'command':dynamicCommandName(_0x378265),'description':_0x378265[_0x5a71ee(0x12e)]||_0x5a71ee(0x192)+_0x378265[_0x5a71ee(0x148)],'risk':_0x378265['risk'],..._0x378265[_0x5a71ee(0x17e)]===_0x5a71ee(0x159)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x378265)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x378265[_0x5a71ee(0x16f)][_0x5a71ee(0x151)](_0x393193=>({'name':_0x393193[_0x5a71ee(0x18c)],'description':_0x393193[_0x5a71ee(0x12e)]||_0x393193[_0x5a71ee(0x18c)],'required':_0x393193['required']})),'flags':_0x378265['flags'][_0x5a71ee(0x151)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x378265),async 'dryRun'(_0x2bc7c4){const _0x8b09c5=_0x5a71ee,_0x10c519=await compilePlan(_0x378265,_0x2bc7c4);return{'method':_0x8b09c5(0x194),'url':_0x378265[_0x8b09c5(0x148)],'body':{'target':targetPreview(_0x10c519),'params':_0x10c519['params']},'description':_0x8b09c5(0x18d)+_0x378265[_0x8b09c5(0x148)]};},async 'execute'(_0x4eaf27){const _0x40acd3=_0x5a71ee,_0x3f500f=await compilePlan(_0x378265,_0x4eaf27),_0x91700c=Date[_0x40acd3(0x168)](),_0x10e789=await executePlan(_0x3f500f,_0x378265,_0x4eaf27),_0x41db00=Date['now']()-_0x91700c;return{'ok':!![],'data':{'service':_0x2f2345['service'],'command':_0x378265[_0x40acd3(0x148)],'target':targetPreview(_0x3f500f),'result':_0x10e789,'elapsed':_0x41db00},'message':'Service\x20command\x20'+_0x378265[_0x40acd3(0x148)]+_0x40acd3(0x14a)+_0x41db00+'ms'};}};}function buildDynamicConfirmationDescription(_0x2e5748){const _0x22e82d=a39_0x531e,_0xf970=_0x2e5748['description']||_0x2e5748[_0x22e82d(0x148)],_0x14aa16=_0x2e5748[_0x22e82d(0x17e)]===_0x22e82d(0x189)?_0x22e82d(0x152):_0x22e82d(0x155);return _0x22e82d(0x166)+_0xf970+'”。'+_0x14aa16;}function a39_0xa0dd(){const _0x2042b5=['Preview\x20dynamic\x20service\x20command:\x20','ctx.','Cannot\x20resolve\x20datatable\x20\x22','scriptName','join','Run\x20service\x20command\x20','1694NOXRyC','SERVICE_TREE','\x20\x20MAP\x20TO','423HpdRPF','11NuxhQi','bff','fullPath','description','employeeId','envName','cliName','required','json','\x20requires\x20target.functionName.','type','\x20\x20[','code','find','bffCode','\x20\x20SERVICE\x20TREE\x20TARGET','appcode','1WtRjhW','2858nuYiIx','length','appBindings','Use\x20`','default','rawFlags','sqlCode','bffId','env','\x20->\x20','loginName','cliPath','push','\x20completed\x20in\x20','command','app','appCode','slice','datasetCode','entries','map','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','\x20\x20\x20\x20','该命令被清单标记为写入,可能修改业务数据或服务状态。','mapTo','boolean','filter','read','remainingArgs','Service\x20command\x20','\x20\x20\x20\x20kind:\x20\x20\x20\x20','24618YZwANA','Unsupported\x20service\x20target\x20kind:\x20','trim','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','service','appRef','tree','datatable','operator','将通过\x20Service\x20Tree\x20执行“','source','now','const','\x20<command>\x20[flags]','data','string','Unknown\x20appRef\x20\x22','target','args','2705352gxIsEk','\x20\x20\x20\x20command:\x20','validation','number','userName','\x20\x20\x20\x20datatable:\x20','`\x20to\x20inspect\x20the\x20manifest.','startsWith','some','tenantCode','fromEntries','params','nickName','padEnd','risk','kind','4254000kRXJWe','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','Commands:','normalizedManifest','userId','16710630XqFspY','\x20service\x20detail\x20--service\x20','sql','7128MpXOHk','high-risk-write','\x20\x20\x20\x20functionName:\x20','977372kxHRHg','name'];a39_0xa0dd=function(){return _0x2042b5;};return a39_0xa0dd();}function dynamicCommandName(_0x1f8e52){const _0x54bd80=a39_0x531e;return _0x1f8e52[_0x54bd80(0x12d)][_0x54bd80(0x14e)](0x1)[_0x54bd80(0x191)]('\x20');}function riskTag(_0x936c44){const _0x543cc2=a39_0x531e;return _0x936c44===_0x543cc2(0x159)?'':_0x543cc2(0x136)+_0x936c44+']';}function flagToCommandFlag(_0x464068){const _0x46b52b=a39_0x531e;return{'name':_0x464068[_0x46b52b(0x131)],'type':_0x464068[_0x46b52b(0x135)]===_0x46b52b(0x133)?'string':_0x464068[_0x46b52b(0x135)],'description':_0x464068[_0x46b52b(0x12e)]||_0x464068['name'],'required':_0x464068[_0x46b52b(0x132)],'default':isPrimitiveFlagDefault(_0x464068[_0x46b52b(0x141)])?_0x464068[_0x46b52b(0x141)]:undefined,'enum':_0x464068['enum']};}async function compilePlan(_0x453c06,_0x41fb5a){const _0x54b0d8=a39_0x531e;return compileServiceTreeCommand(_0x453c06,{'flags':_0x41fb5a[_0x54b0d8(0x142)],'args':_0x41fb5a[_0x54b0d8(0x16f)],'context':await buildServiceContext(_0x453c06,_0x41fb5a)});}async function buildServiceContext(_0x47db1b,_0x5211b7){const _0x2b51ba=a39_0x531e,_0x4cf763={'appCode':_0x5211b7[_0x2b51ba(0x14d)],'env':_0x5211b7[_0x2b51ba(0x130)],'envName':_0x5211b7[_0x2b51ba(0x130)]};if(!usesRuntimeContext(_0x47db1b))return _0x4cf763;const _0x4ff008=await getLoginUserInfo(),_0x47f69d=pickFirst(_0x4ff008[_0x2b51ba(0x184)],_0x4ff008['id']);return{..._0x4cf763,'user':_0x4ff008,'userId':_0x47f69d,'id':_0x4ff008['id'],'username':pickFirst(_0x4ff008['username'],_0x4ff008[_0x2b51ba(0x174)],_0x4ff008[_0x2b51ba(0x147)]),'userName':_0x4ff008['userName'],'nickname':pickFirst(_0x4ff008['nickname'],_0x4ff008[_0x2b51ba(0x17c)]),'nickName':_0x4ff008['nickName'],'tenantCode':_0x4ff008[_0x2b51ba(0x179)],'employeeId':_0x4ff008[_0x2b51ba(0x12f)]};}function usesRuntimeContext(_0x19c380){const _0x3841cb=a39_0x531e;return _0x19c380[_0x3841cb(0x156)][_0x3841cb(0x178)](_0xd878a8=>typeof _0xd878a8['source']==='string'&&(_0xd878a8[_0x3841cb(0x167)][_0x3841cb(0x177)]('context.')||_0xd878a8[_0x3841cb(0x167)]['startsWith'](_0x3841cb(0x18e))));}function pickFirst(..._0x2435cb){return _0x2435cb['find'](_0x42f384=>_0x42f384!==undefined&&_0x42f384!==null);}async function executePlan(_0x10599b,_0x49bc2f,_0x885850){const _0x3502d0=a39_0x531e;if(_0x10599b['kind']===_0x3502d0(0x16b)){const _0x4304c4=await resolveDatasetCode(_0x10599b,_0x49bc2f,_0x885850);return executeData(_0x4304c4,_0x10599b['command'],_0x10599b[_0x3502d0(0x17b)]);}if(_0x10599b[_0x3502d0(0x17f)]===_0x3502d0(0x187)){if(!_0x10599b[_0x3502d0(0x143)])throw CliErrors[_0x3502d0(0x172)](_0x3502d0(0x15b)+_0x49bc2f['cliPath']+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x10599b[_0x3502d0(0x143)],normalizeScalarParams(_0x10599b[_0x3502d0(0x17b)]));}if(_0x10599b[_0x3502d0(0x17f)]===_0x3502d0(0x12c)){const _0x471420=_0x10599b['scriptName']||_0x10599b[_0x3502d0(0x139)]||(_0x10599b[_0x3502d0(0x144)]==null?'':String(_0x10599b[_0x3502d0(0x144)]));if(!_0x471420)throw CliErrors[_0x3502d0(0x172)](_0x3502d0(0x15b)+_0x49bc2f['cliPath']+_0x3502d0(0x134));return executeSdkBff(_0x471420,_0x10599b[_0x3502d0(0x17b)]);}throw CliErrors[_0x3502d0(0x172)](_0x3502d0(0x15e)+_0x10599b[_0x3502d0(0x17f)]);}async function resolveDatasetCode(_0x54a66,_0x457705,_0x5ac14a){const _0x360714=a39_0x531e;if(_0x54a66['datasetCode'])return _0x54a66[_0x360714(0x14f)];if(!_0x54a66[_0x360714(0x164)])throw CliErrors[_0x360714(0x172)](_0x360714(0x15b)+_0x457705[_0x360714(0x148)]+_0x360714(0x153));const _0x43faf9=await listDatasets(_0x5ac14a['appCode']),_0x24b989=_0x43faf9['find'](_0x12bee8=>_0x12bee8['dbtableConfig']?.['tableName']===_0x54a66[_0x360714(0x164)]);if(!_0x24b989?.[_0x360714(0x137)])throw CliErrors[_0x360714(0x172)](_0x360714(0x18f)+_0x54a66[_0x360714(0x164)]+_0x360714(0x160)+_0x5ac14a[_0x360714(0x14d)]+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x24b989[_0x360714(0x137)];}function applyAppBinding(_0x4ce63e,_0x12a53b,_0x4e5aa7){const _0x208307=a39_0x531e,_0x243c53=_0x12a53b['target'][_0x208307(0x162)];if(!_0x243c53)return;const _0x5dd3ce=_0x4ce63e[_0x208307(0x13f)][_0x243c53];if(!_0x5dd3ce)throw CliErrors[_0x208307(0x172)](_0x208307(0x16d)+_0x243c53+'\x22\x20in\x20service\x20command\x20'+_0x12a53b[_0x208307(0x148)]+'.',_0x208307(0x181));const _0x3de7d5=_0x5dd3ce[_0x208307(0x13b)]||_0x5dd3ce[_0x208307(0x14d)];_0x3de7d5&&!hasText(_0x4e5aa7[_0x208307(0x13b)])&&(_0x4e5aa7['appcode']=_0x3de7d5),_0x5dd3ce[_0x208307(0x14c)]&&!hasText(_0x4e5aa7[_0x208307(0x14c)])&&!hasText(_0x4e5aa7[_0x208307(0x13b)])&&(_0x4e5aa7['app']=_0x5dd3ce[_0x208307(0x14c)]),_0x5dd3ce['env']&&!hasText(_0x4e5aa7[_0x208307(0x145)])&&(_0x4e5aa7[_0x208307(0x145)]=_0x5dd3ce[_0x208307(0x145)]);}function renderDynamicCommandHelp(_0x320eae){const _0x2ae17d=a39_0x531e,_0x262b05=[_0x2ae17d(0x13a),_0x2ae17d(0x15c)+_0x320eae[_0x2ae17d(0x16e)][_0x2ae17d(0x17f)],_0x2ae17d(0x171)+_0x320eae[_0x2ae17d(0x16e)]['command']];if(_0x320eae[_0x2ae17d(0x16e)]['datasetCode'])_0x262b05['push']('\x20\x20\x20\x20datasetCode:\x20'+_0x320eae[_0x2ae17d(0x16e)][_0x2ae17d(0x14f)]);if(_0x320eae[_0x2ae17d(0x16e)][_0x2ae17d(0x164)])_0x262b05[_0x2ae17d(0x149)](_0x2ae17d(0x175)+_0x320eae[_0x2ae17d(0x16e)]['datatable']);if(_0x320eae[_0x2ae17d(0x16e)][_0x2ae17d(0x143)])_0x262b05['push']('\x20\x20\x20\x20sqlCode:\x20'+_0x320eae[_0x2ae17d(0x16e)]['sqlCode']);if(_0x320eae['target'][_0x2ae17d(0x190)])_0x262b05[_0x2ae17d(0x149)](_0x2ae17d(0x18a)+_0x320eae[_0x2ae17d(0x16e)]['scriptName']);if(_0x320eae[_0x2ae17d(0x156)][_0x2ae17d(0x13e)]>0x0){_0x262b05[_0x2ae17d(0x149)]('',_0x2ae17d(0x195));for(const _0x1fba9e of _0x320eae[_0x2ae17d(0x156)]){_0x262b05['push'](_0x2ae17d(0x154)+(_0x1fba9e['source']||_0x2ae17d(0x169))+_0x2ae17d(0x146)+_0x1fba9e['target']+(_0x1fba9e[_0x2ae17d(0x165)]?'.'+_0x1fba9e[_0x2ae17d(0x165)]:''));}}return _0x262b05[_0x2ae17d(0x191)]('\x0a');}function targetPreview(_0x5a09d4){const _0x2581dc=a39_0x531e;return{'kind':_0x5a09d4['kind'],'command':_0x5a09d4[_0x2581dc(0x14b)],'appRef':_0x5a09d4[_0x2581dc(0x162)],'datasetCode':_0x5a09d4['datasetCode'],'datatable':_0x5a09d4[_0x2581dc(0x164)],'sqlCode':_0x5a09d4['sqlCode'],'bffCode':_0x5a09d4[_0x2581dc(0x139)],'bffId':_0x5a09d4['bffId'],'functionName':_0x5a09d4[_0x2581dc(0x190)]};}function normalizeScalarParams(_0x278e86){const _0x4b7aae=a39_0x531e;return Object[_0x4b7aae(0x17a)](Object[_0x4b7aae(0x150)](_0x278e86)[_0x4b7aae(0x158)](([,_0x4c2b21])=>typeof _0x4c2b21===_0x4b7aae(0x16c)||typeof _0x4c2b21===_0x4b7aae(0x173)));}function hasText(_0x3befe9){const _0x20b73f=a39_0x531e;return typeof _0x3befe9===_0x20b73f(0x16c)&&_0x3befe9[_0x20b73f(0x15f)]()['length']>0x0;}function isPrimitiveFlagDefault(_0x435014){const _0x148261=a39_0x531e;return _0x435014===undefined||typeof _0x435014===_0x148261(0x16c)||typeof _0x435014===_0x148261(0x173)||typeof _0x435014===_0x148261(0x157);}
1
+ (function(_0x8df488,_0x3b141f){const _0x105b46=a39_0x414e,_0x5bb71e=_0x8df488();while(!![]){try{const _0x507db7=parseInt(_0x105b46(0x1b0))/0x1+parseInt(_0x105b46(0x1eb))/0x2+-parseInt(_0x105b46(0x1ed))/0x3*(parseInt(_0x105b46(0x1e7))/0x4)+-parseInt(_0x105b46(0x1cf))/0x5+parseInt(_0x105b46(0x207))/0x6*(-parseInt(_0x105b46(0x1e5))/0x7)+-parseInt(_0x105b46(0x1f5))/0x8+parseInt(_0x105b46(0x1e0))/0x9*(parseInt(_0x105b46(0x1ce))/0xa);if(_0x507db7===_0x3b141f)break;else _0x5bb71e['push'](_0x5bb71e['shift']());}catch(_0x3a9282){_0x5bb71e['push'](_0x5bb71e['shift']());}}}(a39_0x3d0e,0x6a7c3));function a39_0x414e(_0xdcec69,_0x446358){_0xdcec69=_0xdcec69-0x1aa;const _0x3d0e3e=a39_0x3d0e();let _0x414e72=_0x3d0e3e[_0xdcec69];return _0x414e72;}import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';function a39_0x3d0e(){const _0x139d50=['filter','tenantCode','find','userName','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','padEnd','bffCode','env','180SzHGye','2171030ZcrxsQ','entries','sql','scriptName','high-risk-write','command','description','data','SERVICE_TREE','const','join','username','sqlCode','bffId','source','fromEntries','length','946395wvZINB','bff','envName','flags','json','1099hnaDMB','default','444LfZxgJ','commands','Preview\x20dynamic\x20service\x20command:\x20','service','1067614nEbhVF','string','16521qJJqQP','map','Service\x20command\x20','该命令被清单标记为写入,可能修改业务数据或服务状态。','`\x20to\x20inspect\x20the\x20manifest.','nickName','\x20\x20\x20\x20datasetCode:\x20','\x20->\x20','5121216lXwOUY','risk','normalizedManifest','mapTo','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','tree','userId','datatable','now','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','target','rawFlags','boolean','type','number','appRef','push','context.','12006DwiwgL','kind','appCode','nickname','slice','Use\x20`','\x20\x20\x20\x20sqlCode:\x20','name','\x20\x20MAP\x20TO','args','params','9358nrKqdB','\x20\x20\x20\x20','Run\x20service\x20command\x20','validation','\x20\x20\x20\x20functionName:\x20','read','app','some','appcode','flatMap','fullPath','\x20\x20\x20\x20command:\x20','\x20\x20\x20\x20kind:\x20\x20\x20\x20','datasetCode','cliPath','code','startsWith','remainingArgs','operator','cliName','\x20\x20SERVICE\x20TREE\x20TARGET'];a39_0x3d0e=function(){return _0x139d50;};return a39_0x3d0e();}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(_0x327f1c,_0x355364){const _0x3ac9ed=a39_0x414e,_0x3556cc=listLocalServiceTrees();let _0x542754;for(const _0x200412 of _0x3556cc){const _0x482bb2=matchServiceTreeCommand(_0x200412,_0x327f1c);if(!_0x482bb2)continue;(!_0x542754||_0x482bb2[_0x3ac9ed(0x1d4)]['fullPath'][_0x3ac9ed(0x1df)]>_0x542754[_0x3ac9ed(0x1d4)][_0x3ac9ed(0x1ba)]['length'])&&(_0x542754={'tree':_0x200412,'command':_0x482bb2[_0x3ac9ed(0x1d4)],'remainingArgs':_0x482bb2[_0x3ac9ed(0x1c1)]});}if(!_0x542754)return undefined;const _0x50f74e={..._0x355364};return applyAppBinding(_0x542754['tree'],_0x542754[_0x3ac9ed(0x1d4)],_0x50f74e),{'definition':buildDynamicCommandDefinition(_0x542754[_0x3ac9ed(0x1fa)],_0x542754[_0x3ac9ed(0x1d4)]),'args':_0x542754[_0x3ac9ed(0x1c1)],'flags':_0x50f74e,'tree':_0x542754['tree'],'command':_0x542754[_0x3ac9ed(0x1d4)]};}export function generateDynamicServiceHelp(_0x1c45d7){const _0xbb6dab=a39_0x414e,_0x2fa1f6=listLocalServiceTrees()['find'](_0x35a714=>_0x35a714[_0xbb6dab(0x1ea)][_0xbb6dab(0x1bf)]===_0x1c45d7);if(!_0x2fa1f6)return undefined;const _0x2cb6ba=[CLI_BIN_NAME+'\x20'+_0x1c45d7+'\x20<command>\x20[flags]','',_0x2fa1f6['service'][_0xbb6dab(0x1ac)]||_0x1c45d7,_0x2fa1f6['service'][_0xbb6dab(0x1d5)]?'\x20\x20'+_0x2fa1f6['service']['description']:'','','Commands:',..._0x2fa1f6[_0xbb6dab(0x1e8)]['map'](_0x1b66b8=>{const _0x128ae7=_0xbb6dab,_0x410900=_0x1b66b8[_0x128ae7(0x1ba)][_0x128ae7(0x20b)](0x1)[_0x128ae7(0x1d9)]('\x20'),_0x544ac0=_0x1b66b8['risk']===_0x128ae7(0x1b5)?'':'\x20['+_0x1b66b8[_0x128ae7(0x1f6)]+']';return'\x20\x20'+_0x410900[_0x128ae7(0x1cb)](0x18)+'\x20'+(_0x1b66b8[_0x128ae7(0x1d5)]||'')+_0x544ac0;}),'',_0xbb6dab(0x1aa)+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x1c45d7+_0xbb6dab(0x1f1)][_0xbb6dab(0x1c5)](Boolean);return _0x2cb6ba[_0xbb6dab(0x1d9)]('\x0a');}export function listDynamicServiceEntries(){const _0x13c577=a39_0x414e;return listLocalServices()[_0x13c577(0x1ee)](_0xebe951=>{const _0x263840=_0x13c577,_0x5920fa=_0xebe951[_0x263840(0x1f7)];return{'service':_0x5920fa[_0x263840(0x1ea)][_0x263840(0x1bf)],'label':_0x5920fa['service'][_0x263840(0x1ac)]||_0x5920fa[_0x263840(0x1ea)][_0x263840(0x1bf)],'commands':_0x5920fa['commands'][_0x263840(0x1ee)](_0x1bcabd=>({'command':dynamicCommandName(_0x1bcabd),'description':_0x1bcabd['description']||'Run\x20service\x20command\x20'+_0x1bcabd[_0x263840(0x1be)],'tag':riskTag(_0x1bcabd[_0x263840(0x1f6)])}))};});}export function getDynamicServiceEntry(_0x42cfb3){const _0x18c7c2=a39_0x414e;return listDynamicServiceEntries()[_0x18c7c2(0x1c7)](_0xe0a25d=>_0xe0a25d[_0x18c7c2(0x1ea)]===_0x42cfb3);}export function listDynamicServiceDefinitions(_0x3d07b8){const _0x30c22f=a39_0x414e;return listLocalServiceTrees()['filter'](_0x5b83b9=>!_0x3d07b8||_0x5b83b9[_0x30c22f(0x1ea)]['code']===_0x3d07b8)[_0x30c22f(0x1b9)](_0xb8768d=>_0xb8768d['commands']['map'](_0x4f076e=>buildDynamicCommandDefinition(_0xb8768d,_0x4f076e)));}export function getDynamicServiceDefinitions(_0x350e4c){const _0x30863c=a39_0x414e,_0x42c8b2=listDynamicServiceDefinitions(_0x350e4c);return _0x42c8b2[_0x30863c(0x1df)]>0x0?_0x42c8b2:undefined;}export function findDynamicServiceDefinition(_0x1e2201,_0x3eecbb){const _0x4a0a7c=a39_0x414e;return listDynamicServiceDefinitions(_0x1e2201)['find'](_0x5145eb=>_0x5145eb[_0x4a0a7c(0x1d4)]===_0x3eecbb);}export function buildDynamicCommandDefinition(_0x552810,_0x37db4d){const _0x361401=a39_0x414e;return{'service':_0x552810[_0x361401(0x1ea)][_0x361401(0x1bf)],'command':dynamicCommandName(_0x37db4d),'description':_0x37db4d[_0x361401(0x1d5)]||_0x361401(0x1b2)+_0x37db4d[_0x361401(0x1be)],'risk':_0x37db4d['risk'],..._0x37db4d[_0x361401(0x1f6)]===_0x361401(0x1b5)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x37db4d)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x37db4d[_0x361401(0x1ae)][_0x361401(0x1ee)](_0x304be5=>({'name':_0x304be5[_0x361401(0x1ac)],'description':_0x304be5[_0x361401(0x1d5)]||_0x304be5['name'],'required':_0x304be5['required']})),'flags':_0x37db4d[_0x361401(0x1e3)][_0x361401(0x1ee)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x37db4d),async 'dryRun'(_0x35c2a3){const _0x5352f7=_0x361401,_0x22d9a2=await compilePlan(_0x37db4d,_0x35c2a3);return{'method':_0x5352f7(0x1d7),'url':_0x37db4d[_0x5352f7(0x1be)],'body':{'target':targetPreview(_0x22d9a2),'params':_0x22d9a2[_0x5352f7(0x1af)]},'description':_0x5352f7(0x1e9)+_0x37db4d[_0x5352f7(0x1be)]};},async 'execute'(_0x2c8e71){const _0x272ac0=_0x361401,_0x22194b=await compilePlan(_0x37db4d,_0x2c8e71),_0x214439=Date[_0x272ac0(0x1fd)](),_0x2d3eb5=await executePlan(_0x22194b,_0x37db4d,_0x2c8e71),_0x299c99=Date[_0x272ac0(0x1fd)]()-_0x214439;return{'ok':!![],'data':{'service':_0x552810[_0x272ac0(0x1ea)],'command':_0x37db4d[_0x272ac0(0x1be)],'target':targetPreview(_0x22194b),'result':_0x2d3eb5,'elapsed':_0x299c99},'message':_0x272ac0(0x1ef)+_0x37db4d[_0x272ac0(0x1be)]+'\x20completed\x20in\x20'+_0x299c99+'ms'};}};}function buildDynamicConfirmationDescription(_0x2d13b8){const _0x2af84c=a39_0x414e,_0xec9508=_0x2d13b8[_0x2af84c(0x1d5)]||_0x2d13b8[_0x2af84c(0x1be)],_0x14b1f0=_0x2d13b8[_0x2af84c(0x1f6)]===_0x2af84c(0x1d3)?_0x2af84c(0x1fe):_0x2af84c(0x1f0);return'将通过\x20Service\x20Tree\x20执行“'+_0xec9508+'”。'+_0x14b1f0;}function dynamicCommandName(_0x10840a){const _0x4e80ec=a39_0x414e;return _0x10840a[_0x4e80ec(0x1ba)][_0x4e80ec(0x20b)](0x1)['join']('\x20');}function riskTag(_0x3c7281){const _0x457dd5=a39_0x414e;return _0x3c7281===_0x457dd5(0x1b5)?'':'\x20\x20['+_0x3c7281+']';}function flagToCommandFlag(_0x2451c0){const _0x716039=a39_0x414e;return{'name':_0x2451c0[_0x716039(0x1c3)],'type':_0x2451c0[_0x716039(0x202)]===_0x716039(0x1e4)?_0x716039(0x1ec):_0x2451c0[_0x716039(0x202)],'description':_0x2451c0[_0x716039(0x1d5)]||_0x2451c0[_0x716039(0x1ac)],'required':_0x2451c0['required'],'default':isPrimitiveFlagDefault(_0x2451c0[_0x716039(0x1e6)])?_0x2451c0['default']:undefined,'enum':_0x2451c0['enum']};}async function compilePlan(_0x52c26c,_0x48f691){const _0x5ce31d=a39_0x414e;return compileServiceTreeCommand(_0x52c26c,{'flags':_0x48f691[_0x5ce31d(0x200)],'args':_0x48f691['args'],'context':await buildServiceContext(_0x52c26c,_0x48f691)});}async function buildServiceContext(_0x14fcdd,_0x4973bd){const _0x54008e=a39_0x414e,_0xed3c6={'appCode':_0x4973bd['appCode'],'env':_0x4973bd[_0x54008e(0x1e2)],'envName':_0x4973bd['envName']};if(!usesRuntimeContext(_0x14fcdd))return _0xed3c6;const _0x6fca98=await getLoginUserInfo(),_0x24843c=pickFirst(_0x6fca98[_0x54008e(0x1fb)],_0x6fca98['id']);return{..._0xed3c6,'user':_0x6fca98,'userId':_0x24843c,'id':_0x6fca98['id'],'username':pickFirst(_0x6fca98[_0x54008e(0x1da)],_0x6fca98[_0x54008e(0x1c8)],_0x6fca98['loginName']),'userName':_0x6fca98[_0x54008e(0x1c8)],'nickname':pickFirst(_0x6fca98[_0x54008e(0x20a)],_0x6fca98['nickName']),'nickName':_0x6fca98[_0x54008e(0x1f2)],'tenantCode':_0x6fca98[_0x54008e(0x1c6)],'employeeId':_0x6fca98['employeeId']};}function usesRuntimeContext(_0x167e02){const _0x2f17c3=a39_0x414e;return _0x167e02[_0x2f17c3(0x1f8)][_0x2f17c3(0x1b7)](_0x3acac9=>typeof _0x3acac9['source']==='string'&&(_0x3acac9[_0x2f17c3(0x1dd)][_0x2f17c3(0x1c0)](_0x2f17c3(0x206))||_0x3acac9[_0x2f17c3(0x1dd)][_0x2f17c3(0x1c0)]('ctx.')));}function pickFirst(..._0x381266){return _0x381266['find'](_0x5bb5ac=>_0x5bb5ac!==undefined&&_0x5bb5ac!==null);}async function executePlan(_0x9c5276,_0xe95598,_0x41a23b){const _0x17d2cc=a39_0x414e;if(_0x9c5276['kind']===_0x17d2cc(0x1d6)){const _0xcd6f5d=await resolveDatasetCode(_0x9c5276,_0xe95598,_0x41a23b);return executeData(_0xcd6f5d,_0x9c5276['command'],_0x9c5276['params']);}if(_0x9c5276[_0x17d2cc(0x208)]===_0x17d2cc(0x1d1)){if(!_0x9c5276[_0x17d2cc(0x1db)])throw CliErrors[_0x17d2cc(0x1b3)]('Service\x20command\x20'+_0xe95598[_0x17d2cc(0x1be)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x9c5276[_0x17d2cc(0x1db)],normalizeScalarParams(_0x9c5276['params']));}if(_0x9c5276[_0x17d2cc(0x208)]===_0x17d2cc(0x1e1)){const _0x1c0751=_0x9c5276['scriptName']||_0x9c5276[_0x17d2cc(0x1cc)]||(_0x9c5276[_0x17d2cc(0x1dc)]==null?'':String(_0x9c5276['bffId']));if(!_0x1c0751)throw CliErrors[_0x17d2cc(0x1b3)](_0x17d2cc(0x1ef)+_0xe95598['cliPath']+'\x20requires\x20target.functionName.');return executeSdkBff(_0x1c0751,_0x9c5276[_0x17d2cc(0x1af)]);}throw CliErrors[_0x17d2cc(0x1b3)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x9c5276[_0x17d2cc(0x208)]);}async function resolveDatasetCode(_0x5372ba,_0x285718,_0x19515a){const _0x3a76bc=a39_0x414e;if(_0x5372ba['datasetCode'])return _0x5372ba['datasetCode'];if(!_0x5372ba[_0x3a76bc(0x1fc)])throw CliErrors[_0x3a76bc(0x1b3)](_0x3a76bc(0x1ef)+_0x285718[_0x3a76bc(0x1be)]+_0x3a76bc(0x1c9));const _0x36d632=await listDatasets(_0x19515a[_0x3a76bc(0x209)]),_0x167718=_0x36d632[_0x3a76bc(0x1c7)](_0x14361d=>_0x14361d['dbtableConfig']?.['tableName']===_0x5372ba[_0x3a76bc(0x1fc)]);if(!_0x167718?.[_0x3a76bc(0x1bf)])throw CliErrors[_0x3a76bc(0x1b3)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x5372ba[_0x3a76bc(0x1fc)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x19515a[_0x3a76bc(0x209)]+'.',_0x3a76bc(0x1f9));return _0x167718['code'];}function applyAppBinding(_0x6f1db3,_0x4fecae,_0x4f6ec3){const _0x46826c=a39_0x414e,_0x39381c=_0x4fecae['target'][_0x46826c(0x204)];if(!_0x39381c)return;const _0x27a074=_0x6f1db3['appBindings'][_0x39381c];if(!_0x27a074)throw CliErrors[_0x46826c(0x1b3)]('Unknown\x20appRef\x20\x22'+_0x39381c+'\x22\x20in\x20service\x20command\x20'+_0x4fecae[_0x46826c(0x1be)]+'.',_0x46826c(0x1ca));const _0xcdd628=_0x27a074[_0x46826c(0x1b8)]||_0x27a074[_0x46826c(0x209)];_0xcdd628&&!hasText(_0x4f6ec3[_0x46826c(0x1b8)])&&(_0x4f6ec3[_0x46826c(0x1b8)]=_0xcdd628),_0x27a074[_0x46826c(0x1b6)]&&!hasText(_0x4f6ec3[_0x46826c(0x1b6)])&&!hasText(_0x4f6ec3['appcode'])&&(_0x4f6ec3['app']=_0x27a074[_0x46826c(0x1b6)]),_0x27a074[_0x46826c(0x1cd)]&&!hasText(_0x4f6ec3['env'])&&(_0x4f6ec3['env']=_0x27a074[_0x46826c(0x1cd)]);}function renderDynamicCommandHelp(_0x2d51bd){const _0x4ea79f=a39_0x414e,_0x7d8a3d=[_0x4ea79f(0x1c4),_0x4ea79f(0x1bc)+_0x2d51bd[_0x4ea79f(0x1ff)][_0x4ea79f(0x208)],_0x4ea79f(0x1bb)+_0x2d51bd[_0x4ea79f(0x1ff)][_0x4ea79f(0x1d4)]];if(_0x2d51bd[_0x4ea79f(0x1ff)][_0x4ea79f(0x1bd)])_0x7d8a3d[_0x4ea79f(0x205)](_0x4ea79f(0x1f3)+_0x2d51bd[_0x4ea79f(0x1ff)][_0x4ea79f(0x1bd)]);if(_0x2d51bd[_0x4ea79f(0x1ff)][_0x4ea79f(0x1fc)])_0x7d8a3d[_0x4ea79f(0x205)]('\x20\x20\x20\x20datatable:\x20'+_0x2d51bd[_0x4ea79f(0x1ff)][_0x4ea79f(0x1fc)]);if(_0x2d51bd['target'][_0x4ea79f(0x1db)])_0x7d8a3d[_0x4ea79f(0x205)](_0x4ea79f(0x1ab)+_0x2d51bd[_0x4ea79f(0x1ff)][_0x4ea79f(0x1db)]);if(_0x2d51bd[_0x4ea79f(0x1ff)][_0x4ea79f(0x1d2)])_0x7d8a3d[_0x4ea79f(0x205)](_0x4ea79f(0x1b4)+_0x2d51bd[_0x4ea79f(0x1ff)]['scriptName']);if(_0x2d51bd[_0x4ea79f(0x1f8)][_0x4ea79f(0x1df)]>0x0){_0x7d8a3d[_0x4ea79f(0x205)]('',_0x4ea79f(0x1ad));for(const _0x27a14c of _0x2d51bd[_0x4ea79f(0x1f8)]){_0x7d8a3d['push'](_0x4ea79f(0x1b1)+(_0x27a14c[_0x4ea79f(0x1dd)]||_0x4ea79f(0x1d8))+_0x4ea79f(0x1f4)+_0x27a14c[_0x4ea79f(0x1ff)]+(_0x27a14c[_0x4ea79f(0x1c2)]?'.'+_0x27a14c[_0x4ea79f(0x1c2)]:''));}}return _0x7d8a3d[_0x4ea79f(0x1d9)]('\x0a');}function targetPreview(_0x174faf){const _0x22da90=a39_0x414e;return{'kind':_0x174faf[_0x22da90(0x208)],'command':_0x174faf[_0x22da90(0x1d4)],'appRef':_0x174faf[_0x22da90(0x204)],'datasetCode':_0x174faf['datasetCode'],'datatable':_0x174faf[_0x22da90(0x1fc)],'sqlCode':_0x174faf['sqlCode'],'bffCode':_0x174faf[_0x22da90(0x1cc)],'bffId':_0x174faf[_0x22da90(0x1dc)],'functionName':_0x174faf[_0x22da90(0x1d2)]};}function normalizeScalarParams(_0x2b1031){const _0x5ccb55=a39_0x414e;return Object[_0x5ccb55(0x1de)](Object[_0x5ccb55(0x1d0)](_0x2b1031)[_0x5ccb55(0x1c5)](([,_0x41661e])=>typeof _0x41661e===_0x5ccb55(0x1ec)||typeof _0x41661e===_0x5ccb55(0x203)));}function hasText(_0x25de85){const _0x2660f6=a39_0x414e;return typeof _0x25de85===_0x2660f6(0x1ec)&&_0x25de85['trim']()[_0x2660f6(0x1df)]>0x0;}function isPrimitiveFlagDefault(_0x20f34e){const _0x32fe9b=a39_0x414e;return _0x20f34e===undefined||typeof _0x20f34e==='string'||typeof _0x20f34e===_0x32fe9b(0x203)||typeof _0x20f34e===_0x32fe9b(0x201);}
@@ -1 +1 @@
1
- (function(_0x1c9c8e,_0xebadea){const _0x2a88f6=a40_0x5a80,_0x32533c=_0x1c9c8e();while(!![]){try{const _0x3eb25f=-parseInt(_0x2a88f6(0x185))/0x1+parseInt(_0x2a88f6(0x18f))/0x2+-parseInt(_0x2a88f6(0x186))/0x3+parseInt(_0x2a88f6(0x17e))/0x4+parseInt(_0x2a88f6(0x18d))/0x5*(-parseInt(_0x2a88f6(0x18e))/0x6)+-parseInt(_0x2a88f6(0x187))/0x7*(parseInt(_0x2a88f6(0x17a))/0x8)+parseInt(_0x2a88f6(0x17f))/0x9;if(_0x3eb25f===_0xebadea)break;else _0x32533c['push'](_0x32533c['shift']());}catch(_0x1e44f3){_0x32533c['push'](_0x32533c['shift']());}}}(a40_0x37ce,0x6a263));export function adaptServiceTreeManifestForLegacyFramework(_0x19657c){const _0x2a134e=a40_0x5a80,_0x2c4376=cloneJsonValue(_0x19657c),_0xa80131=[];if(!isObjectRecord(_0x2c4376))return{'manifest':_0x2c4376,'errors':_0xa80131};return Array['isArray'](_0x2c4376['commands'])&&_0x2c4376[_0x2a134e(0x179)]['forEach']((_0x355865,_0x28a965)=>{const _0x4a3a1c=_0x2a134e;if(!isObjectRecord(_0x355865))return;adaptBffTarget(_0x355865[_0x4a3a1c(0x17d)],_0x4a3a1c(0x18a)+_0x28a965+_0x4a3a1c(0x178),_0xa80131);}),adaptResources(_0x2c4376[_0x2a134e(0x16c)],_0x2a134e(0x18c),_0xa80131),{'manifest':_0x2c4376,'errors':_0xa80131};}export function toPublicServiceTreeTarget(_0x87226d){const _0x4f7c58=a40_0x5a80,{scriptName:_0x4cfe48,..._0x2a483f}=_0x87226d;return typeof _0x4cfe48==='string'&&_0x4cfe48[_0x4f7c58(0x16d)]()&&(_0x2a483f[_0x4f7c58(0x172)]=_0x4cfe48),_0x2a483f;}export function toPublicNormalizedServiceTree(_0xc30e1){const _0x12f801=a40_0x5a80;return{..._0xc30e1,'commands':_0xc30e1[_0x12f801(0x179)][_0x12f801(0x174)](_0x4ebd5b=>({..._0x4ebd5b,'target':toPublicServiceTreeTarget(_0x4ebd5b[_0x12f801(0x17d)])}))};}function a40_0x5a80(_0x45bb16,_0x40b8e3){_0x45bb16=_0x45bb16-0x16c;const _0x37ce22=a40_0x37ce();let _0x5a8079=_0x37ce22[_0x45bb16];return _0x5a8079;}function adaptResources(_0x1be9b5,_0x153364,_0x4c8549){const _0x33d075=a40_0x5a80;if(!isObjectRecord(_0x1be9b5))return;for(const [_0x184fb6,_0x25654f]of Object[_0x33d075(0x189)](_0x1be9b5)){if(!isObjectRecord(_0x25654f))continue;const _0x47a324=_0x153364+'.'+_0x184fb6;if(isObjectRecord(_0x25654f['actions']))for(const [_0x4f73d9,_0x58ddb5]of Object['entries'](_0x25654f[_0x33d075(0x177)])){if(!isObjectRecord(_0x58ddb5))continue;const _0x5e8969=_0x47a324+'.actions.'+_0x4f73d9,_0x54b492=isObjectRecord(_0x58ddb5[_0x33d075(0x17d)])&&_0x58ddb5['target'][_0x33d075(0x182)]==='bff';adaptBffTarget(_0x58ddb5['target'],_0x5e8969+_0x33d075(0x180),_0x4c8549),(_0x54b492||isBffAction(_0x58ddb5))&&adaptFunctionNameField(_0x58ddb5,_0x5e8969,_0x4c8549);}adaptResources(_0x25654f[_0x33d075(0x16c)],_0x47a324+'.resources',_0x4c8549);}}function adaptBffTarget(_0x50a9e8,_0x1cc766,_0x3fafc2){if(!isObjectRecord(_0x50a9e8)||_0x50a9e8['kind']!=='bff')return;adaptFunctionNameField(_0x50a9e8,_0x1cc766,_0x3fafc2);}function adaptFunctionNameField(_0x1d8261,_0x1d639c,_0x26b02c){const _0x4d2d7e=a40_0x5a80;Object[_0x4d2d7e(0x181)]['hasOwnProperty'][_0x4d2d7e(0x171)](_0x1d8261,_0x4d2d7e(0x173))&&_0x26b02c['push']({'level':'error','path':_0x1d639c+_0x4d2d7e(0x188),'message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object[_0x4d2d7e(0x181)][_0x4d2d7e(0x16e)][_0x4d2d7e(0x171)](_0x1d8261,_0x4d2d7e(0x172))){if(typeof _0x1d8261['functionName']!==_0x4d2d7e(0x16f)||!_0x1d8261['functionName'][_0x4d2d7e(0x16d)]()){_0x26b02c['push']({'level':_0x4d2d7e(0x17c),'path':_0x1d639c+'.functionName','message':_0x4d2d7e(0x170)}),delete _0x1d8261[_0x4d2d7e(0x172)];return;}_0x1d8261[_0x4d2d7e(0x173)]=_0x1d8261[_0x4d2d7e(0x172)],delete _0x1d8261[_0x4d2d7e(0x172)];}}function isBffAction(_0x9d411a){const _0x5c6dbc=a40_0x5a80;return _0x9d411a[_0x5c6dbc(0x182)]===_0x5c6dbc(0x184)||_0x9d411a[_0x5c6dbc(0x175)]==='bff.exec'||_0x9d411a['target']===_0x5c6dbc(0x176);}function cloneJsonValue(_0x59ee1b){const _0x2fa546=a40_0x5a80;if(Array[_0x2fa546(0x183)](_0x59ee1b))return _0x59ee1b[_0x2fa546(0x174)](_0x308cde=>cloneJsonValue(_0x308cde));if(isObjectRecord(_0x59ee1b))return Object[_0x2fa546(0x18b)](Object[_0x2fa546(0x189)](_0x59ee1b)[_0x2fa546(0x174)](([_0x4c07a8,_0x4ce20c])=>[_0x4c07a8,cloneJsonValue(_0x4ce20c)]));return _0x59ee1b;}function a40_0x37ce(){const _0x25e0ef=['functionName','scriptName','map','action','bff.exec','actions','].target','commands','3127528wKPChm','object','error','target','2955604BhkFzP','8268012oevYCn','.target','prototype','kind','isArray','bff','269484vvuVqr','767280XAjykv','7fmByhQ','.scriptName','entries','$.commands[','fromEntries','$.resources','505qRPNPS','33360GjfIwB','509926YllXjn','resources','trim','hasOwnProperty','string','functionName\x20must\x20be\x20a\x20non-empty\x20string.','call'];a40_0x37ce=function(){return _0x25e0ef;};return a40_0x37ce();}function isObjectRecord(_0x2ca1b1){const _0x39ac71=a40_0x5a80;return Boolean(_0x2ca1b1)&&typeof _0x2ca1b1===_0x39ac71(0x17b)&&!Array[_0x39ac71(0x183)](_0x2ca1b1);}
1
+ (function(_0x5ce8ef,_0x453937){const _0x5e97c1=a40_0x4b55,_0x15bfe0=_0x5ce8ef();while(!![]){try{const _0x29607c=-parseInt(_0x5e97c1(0xea))/0x1*(parseInt(_0x5e97c1(0xf5))/0x2)+-parseInt(_0x5e97c1(0xff))/0x3+parseInt(_0x5e97c1(0xe6))/0x4*(-parseInt(_0x5e97c1(0xeb))/0x5)+-parseInt(_0x5e97c1(0x100))/0x6+parseInt(_0x5e97c1(0xed))/0x7+-parseInt(_0x5e97c1(0xfc))/0x8*(parseInt(_0x5e97c1(0xf9))/0x9)+parseInt(_0x5e97c1(0xe8))/0xa*(parseInt(_0x5e97c1(0xde))/0xb);if(_0x29607c===_0x453937)break;else _0x15bfe0['push'](_0x15bfe0['shift']());}catch(_0xadc7b9){_0x15bfe0['push'](_0x15bfe0['shift']());}}}(a40_0x6b17,0x99d70));function a40_0x6b17(){const _0x4d0d94=['83209eGkYQZ','25xvyzOv','fromEntries','6022471TGAEXx','forEach','.actions.','.functionName','bff.exec','prototype','actions','map','6hdrYLC','.resources','trim','action','15291yFUowO','entries','$.commands[','1824pSIWAP','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','target','2141166HeShWH','2517498IMPvQT','isArray','object','].target','scriptName','1728298VfDqSU','error','string','resources','push','commands','functionName','bff','401964POpECr','kind','130ZjrESN','call'];a40_0x6b17=function(){return _0x4d0d94;};return a40_0x6b17();}export function adaptServiceTreeManifestForLegacyFramework(_0x2fcad4){const _0x3a7117=a40_0x4b55,_0x4a0ead=cloneJsonValue(_0x2fcad4),_0xe0fee5=[];if(!isObjectRecord(_0x4a0ead))return{'manifest':_0x4a0ead,'errors':_0xe0fee5};return Array[_0x3a7117(0x101)](_0x4a0ead[_0x3a7117(0xe3)])&&_0x4a0ead[_0x3a7117(0xe3)][_0x3a7117(0xee)]((_0x8dbad6,_0x5bcf63)=>{const _0x52c656=_0x3a7117;if(!isObjectRecord(_0x8dbad6))return;adaptBffTarget(_0x8dbad6[_0x52c656(0xfe)],_0x52c656(0xfb)+_0x5bcf63+_0x52c656(0xdc),_0xe0fee5);}),adaptResources(_0x4a0ead[_0x3a7117(0xe1)],'$.resources',_0xe0fee5),{'manifest':_0x4a0ead,'errors':_0xe0fee5};}export function toPublicServiceTreeTarget(_0x1a79c6){const _0x8b48c8=a40_0x4b55,{scriptName:_0x1dec2a,..._0x2acc22}=_0x1a79c6;return typeof _0x1dec2a===_0x8b48c8(0xe0)&&_0x1dec2a[_0x8b48c8(0xf7)]()&&(_0x2acc22['functionName']=_0x1dec2a),_0x2acc22;}export function toPublicNormalizedServiceTree(_0x59602f){const _0x4ac9d4=a40_0x4b55;return{..._0x59602f,'commands':_0x59602f[_0x4ac9d4(0xe3)][_0x4ac9d4(0xf4)](_0x464d51=>({..._0x464d51,'target':toPublicServiceTreeTarget(_0x464d51[_0x4ac9d4(0xfe)])}))};}function adaptResources(_0x3eacfd,_0xbf612f,_0x523521){const _0x2258aa=a40_0x4b55;if(!isObjectRecord(_0x3eacfd))return;for(const [_0xa44409,_0x14c7c2]of Object[_0x2258aa(0xfa)](_0x3eacfd)){if(!isObjectRecord(_0x14c7c2))continue;const _0x4b6bcc=_0xbf612f+'.'+_0xa44409;if(isObjectRecord(_0x14c7c2[_0x2258aa(0xf3)]))for(const [_0x3aab4d,_0x43ade5]of Object[_0x2258aa(0xfa)](_0x14c7c2['actions'])){if(!isObjectRecord(_0x43ade5))continue;const _0x301aca=_0x4b6bcc+_0x2258aa(0xef)+_0x3aab4d,_0x9bd567=isObjectRecord(_0x43ade5[_0x2258aa(0xfe)])&&_0x43ade5[_0x2258aa(0xfe)][_0x2258aa(0xe7)]===_0x2258aa(0xe5);adaptBffTarget(_0x43ade5[_0x2258aa(0xfe)],_0x301aca+'.target',_0x523521),(_0x9bd567||isBffAction(_0x43ade5))&&adaptFunctionNameField(_0x43ade5,_0x301aca,_0x523521);}adaptResources(_0x14c7c2['resources'],_0x4b6bcc+_0x2258aa(0xf6),_0x523521);}}function adaptBffTarget(_0x46d152,_0x1d5cd0,_0x4c9af9){const _0x5ddafb=a40_0x4b55;if(!isObjectRecord(_0x46d152)||_0x46d152[_0x5ddafb(0xe7)]!==_0x5ddafb(0xe5))return;adaptFunctionNameField(_0x46d152,_0x1d5cd0,_0x4c9af9);}function adaptFunctionNameField(_0x5725f5,_0x10ad31,_0x552f8b){const _0x37456e=a40_0x4b55;Object[_0x37456e(0xf2)]['hasOwnProperty']['call'](_0x5725f5,'scriptName')&&_0x552f8b['push']({'level':_0x37456e(0xdf),'path':_0x10ad31+'.scriptName','message':_0x37456e(0xfd)});if(Object[_0x37456e(0xf2)]['hasOwnProperty'][_0x37456e(0xe9)](_0x5725f5,_0x37456e(0xe4))){if(typeof _0x5725f5[_0x37456e(0xe4)]!==_0x37456e(0xe0)||!_0x5725f5['functionName'][_0x37456e(0xf7)]()){_0x552f8b[_0x37456e(0xe2)]({'level':_0x37456e(0xdf),'path':_0x10ad31+_0x37456e(0xf0),'message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x5725f5[_0x37456e(0xe4)];return;}_0x5725f5[_0x37456e(0xdd)]=_0x5725f5['functionName'],delete _0x5725f5[_0x37456e(0xe4)];}}function isBffAction(_0x5c306a){const _0xe1ef63=a40_0x4b55;return _0x5c306a[_0xe1ef63(0xe7)]==='bff'||_0x5c306a[_0xe1ef63(0xf8)]===_0xe1ef63(0xf1)||_0x5c306a['target']===_0xe1ef63(0xf1);}function cloneJsonValue(_0x260c0e){const _0x502ca2=a40_0x4b55;if(Array[_0x502ca2(0x101)](_0x260c0e))return _0x260c0e[_0x502ca2(0xf4)](_0x59d6b6=>cloneJsonValue(_0x59d6b6));if(isObjectRecord(_0x260c0e))return Object[_0x502ca2(0xec)](Object[_0x502ca2(0xfa)](_0x260c0e)[_0x502ca2(0xf4)](([_0x1d2413,_0x4a04f8])=>[_0x1d2413,cloneJsonValue(_0x4a04f8)]));return _0x260c0e;}function a40_0x4b55(_0x2e7e26,_0x2bfb25){_0x2e7e26=_0x2e7e26-0xdb;const _0x6b178a=a40_0x6b17();let _0x4b55f3=_0x6b178a[_0x2e7e26];return _0x4b55f3;}function isObjectRecord(_0x437695){const _0x248b8e=a40_0x4b55;return Boolean(_0x437695)&&typeof _0x437695===_0x248b8e(0xdb)&&!Array[_0x248b8e(0x101)](_0x437695);}
@@ -1 +1 @@
1
- const a41_0x299fa2=a41_0x4c22;function a41_0x4c22(_0x572b5e,_0x5246e8){_0x572b5e=_0x572b5e-0xe0;const _0x1648a6=a41_0x1648();let _0x4c226b=_0x1648a6[_0x572b5e];return _0x4c226b;}(function(_0x4710c0,_0x294da9){const _0x12033d=a41_0x4c22,_0x2c2b80=_0x4710c0();while(!![]){try{const _0x2cdf4d=parseInt(_0x12033d(0x11d))/0x1+parseInt(_0x12033d(0xe7))/0x2+-parseInt(_0x12033d(0x128))/0x3*(parseInt(_0x12033d(0xf4))/0x4)+-parseInt(_0x12033d(0xf2))/0x5+-parseInt(_0x12033d(0x127))/0x6+-parseInt(_0x12033d(0xe5))/0x7+-parseInt(_0x12033d(0xeb))/0x8*(-parseInt(_0x12033d(0xf9))/0x9);if(_0x2cdf4d===_0x294da9)break;else _0x2c2b80['push'](_0x2c2b80['shift']());}catch(_0x27adbe){_0x2c2b80['push'](_0x2c2b80['shift']());}}}(a41_0x1648,0xedb70));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a41_0x1648(){const _0x3477fb=['description','92PhfRsJ','Imported\x20','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','replaced','3582tCeShl','file','从本地运行态注册表移除\x20Service\x20Tree\x20清单','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','serviceCode','updated','kind','Local\x20service\x20code,\x20for\x20example\x20crm','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','target','cliName','write','registryServiceCode','manifest','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','remove','map','Local\x20service\x20not\x20found:\x20','risk','length','importedAt','report','normalizedManifest','Service\x20Tree\x20manifest\x20file\x20path','\x20service\x20','registry','detail','filePath','required','entry','\x20service(s),\x20updated\x20','manifests','entries','Service\x20manifest\x20validation\x20passed.','type','Removed\x20service\x20','602490VZUYNT','hash','registryPath','serviceCount','registryIndex','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','errors','Updated','import','10260660ixsdxp','160299tIvIEy','\x20service(s).','service','cliPath','imported','str','10314248weEQLq','read','367404Wkgims','commands','string','source','94672QxtKQu','WRITE','version','export','warnings','validate','Service\x20registry\x20validation\x20passed.','549555IPufvF'];a41_0x1648=function(){return _0x3477fb;};return a41_0x1648();}import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a41_0x299fa2(0xfa),'type':a41_0x299fa2(0xe9),'required':!![],'description':a41_0x299fa2(0x110)},SERVICE_FLAG={'name':a41_0x299fa2(0xe1),'type':a41_0x299fa2(0xe9),'required':!![],'description':a41_0x299fa2(0x100),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0xcf80e){const _0x3b10df=a41_0x299fa2;return{'serviceCode':_0xcf80e['serviceCode'],'name':_0xcf80e[_0x3b10df(0x10f)][_0x3b10df(0xe1)]['name'],'version':_0xcf80e[_0x3b10df(0xed)],'importedAt':_0xcf80e[_0x3b10df(0x10d)],'source':_0xcf80e[_0x3b10df(0xea)],'commandCount':_0xcf80e[_0x3b10df(0x10f)][_0x3b10df(0xe8)][_0x3b10df(0x10c)],'commands':_0xcf80e[_0x3b10df(0x10f)][_0x3b10df(0xe8)][_0x3b10df(0x109)](_0x2561dc=>({'path':_0x2561dc[_0x3b10df(0xe2)],'description':_0x2561dc[_0x3b10df(0xf3)],'risk':_0x2561dc[_0x3b10df(0x10b)],'target':toPublicServiceTreeTarget(_0x2561dc['target']),'flags':_0x2561dc['flags']['map'](_0x3059d5=>({'name':_0x3059d5['name'],'cliName':_0x3059d5[_0x3b10df(0x103)],'type':_0x3059d5[_0x3b10df(0x11b)],'required':_0x3059d5[_0x3b10df(0x115)]===!![]}))}))};}function summarizeLoadedManifest(_0x272988){const _0x393e4a=a41_0x299fa2;return{'service':_0x272988[_0x393e4a(0x10f)]?.[_0x393e4a(0xe1)],'version':_0x272988['normalizedManifest']?.[_0x393e4a(0xed)],'commandCount':_0x272988[_0x393e4a(0x10f)]?.['commands'][_0x393e4a(0x10c)]??0x0,'commands':_0x272988[_0x393e4a(0x10f)]?.['commands'][_0x393e4a(0x109)](_0x36d1b3=>({'path':_0x36d1b3[_0x393e4a(0xe2)],'risk':_0x36d1b3[_0x393e4a(0x10b)],'target':toPublicServiceTreeTarget(_0x36d1b3[_0x393e4a(0x102)])}))??[],'registryIndex':_0x272988[_0x393e4a(0x121)],'registryServiceCode':_0x272988[_0x393e4a(0x105)],'errors':_0x272988['report'][_0x393e4a(0x124)],'warnings':_0x272988[_0x393e4a(0x10e)][_0x393e4a(0xef)]};}export const serviceDefinitions=[{'service':a41_0x299fa2(0xe1),'command':a41_0x299fa2(0xf0),'description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a41_0x299fa2(0xe6),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x2352c1){const _0x3e817b=a41_0x299fa2,_0x44507c=loadServiceManifestFromFile(_0x2352c1[_0x3e817b(0xe4)]('file'));if(!_0x44507c[_0x3e817b(0x10e)]['ok'])return{'ok':![],'data':{'file':_0x44507c[_0x3e817b(0x114)],'hash':_0x44507c[_0x3e817b(0x11e)],'kind':_0x44507c[_0x3e817b(0xff)],'serviceCount':_0x44507c['manifests'][_0x3e817b(0x10c)],'services':_0x44507c[_0x3e817b(0x118)][_0x3e817b(0x109)](summarizeLoadedManifest),'errors':_0x44507c['report'][_0x3e817b(0x124)],'warnings':_0x44507c[_0x3e817b(0x10e)]['warnings']},'message':formatValidationFailure(_0x44507c[_0x3e817b(0x10e)])};if(_0x44507c[_0x3e817b(0xff)]===_0x3e817b(0x112)||_0x44507c['manifests']['length']!==0x1)return{'ok':!![],'data':{'file':_0x44507c[_0x3e817b(0x114)],'hash':_0x44507c[_0x3e817b(0x11e)],'kind':_0x44507c[_0x3e817b(0xff)],'serviceCount':_0x44507c[_0x3e817b(0x118)][_0x3e817b(0x10c)],'commandCount':_0x44507c[_0x3e817b(0x118)]['reduce']((_0x328363,_0x56c04d)=>_0x328363+(_0x56c04d[_0x3e817b(0x10f)]?.[_0x3e817b(0xe8)][_0x3e817b(0x10c)]??0x0),0x0),'services':_0x44507c['manifests']['map'](summarizeLoadedManifest),'warnings':_0x44507c[_0x3e817b(0x10e)][_0x3e817b(0xef)]},'message':_0x3e817b(0xf1)};return{'ok':!![],'data':{'file':_0x44507c[_0x3e817b(0x114)],'hash':_0x44507c[_0x3e817b(0x11e)],'kind':_0x44507c['kind'],'service':_0x44507c[_0x3e817b(0x10f)]?.[_0x3e817b(0xe1)],'version':_0x44507c[_0x3e817b(0x10f)]?.[_0x3e817b(0xed)],'commandCount':_0x44507c['normalizedManifest']?.['commands'][_0x3e817b(0x10c)]??0x0,'commands':_0x44507c[_0x3e817b(0x10f)]?.['commands'][_0x3e817b(0x109)](_0xe2b1a=>({'path':_0xe2b1a[_0x3e817b(0xe2)],'risk':_0xe2b1a[_0x3e817b(0x10b)],'target':toPublicServiceTreeTarget(_0xe2b1a['target'])})),'warnings':_0x44507c[_0x3e817b(0x10e)][_0x3e817b(0xef)]},'message':_0x3e817b(0x11a)};}},{'service':a41_0x299fa2(0xe1),'command':a41_0x299fa2(0x126),'description':'将\x20Service\x20Tree\x20清单导入本地运行态注册表','risk':'write','confirmationDescription':a41_0x299fa2(0xf7),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x2f2033){const _0x26465f=a41_0x299fa2,_0x1e2254=loadServiceManifestFromFile(_0x2f2033['str'](_0x26465f(0xfa)));return{'method':_0x26465f(0xec),'url':getServiceRegistryPath(),'body':{'file':_0x1e2254[_0x26465f(0x114)],'hash':_0x1e2254[_0x26465f(0x11e)],'kind':_0x1e2254[_0x26465f(0xff)],'ok':_0x1e2254[_0x26465f(0x10e)]['ok'],'service':_0x1e2254[_0x26465f(0x10f)]?.['service'],'version':_0x1e2254[_0x26465f(0x10f)]?.[_0x26465f(0xed)],'serviceCount':_0x1e2254[_0x26465f(0x118)]['length'],'services':_0x1e2254[_0x26465f(0x118)][_0x26465f(0x109)](_0x4b143b=>({'service':_0x4b143b['normalizedManifest']?.[_0x26465f(0xe1)],'version':_0x4b143b[_0x26465f(0x10f)]?.[_0x26465f(0xed)],'commandCount':_0x4b143b[_0x26465f(0x10f)]?.[_0x26465f(0xe8)][_0x26465f(0x10c)]??0x0,'errors':_0x4b143b[_0x26465f(0x10e)]['errors']})),'errors':_0x1e2254[_0x26465f(0x10e)][_0x26465f(0x124)],'commandCount':_0x1e2254[_0x26465f(0x10f)]?.[_0x26465f(0xe8)]['length']??0x0},'description':_0x26465f(0xfc)};},async 'execute'(_0x35c7fb){const _0x218def=a41_0x299fa2,_0x25efb3=importServiceManifest(_0x35c7fb[_0x218def(0xe4)](_0x218def(0xfa)));if(_0x25efb3[_0x218def(0x119)][_0x218def(0x10c)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x25efb3['registryPath'],'imported':_0x25efb3[_0x218def(0xe3)],'updated':_0x25efb3[_0x218def(0xfe)],'serviceCount':_0x25efb3['serviceCount'],'services':_0x25efb3[_0x218def(0x119)][_0x218def(0x109)](summarizeService)},'message':_0x218def(0xf5)+_0x25efb3['imported']+_0x218def(0x117)+_0x25efb3[_0x218def(0xfe)]+_0x218def(0xe0)};return{'ok':!![],'data':{'registryPath':_0x25efb3[_0x218def(0x11f)],'replaced':_0x25efb3[_0x218def(0xf8)],'imported':_0x25efb3['imported'],'updated':_0x25efb3[_0x218def(0xfe)],'serviceCount':_0x25efb3[_0x218def(0x120)],'service':summarizeService(_0x25efb3[_0x218def(0x116)])},'message':(_0x25efb3[_0x218def(0xf8)]?_0x218def(0x125):'Imported')+_0x218def(0x111)+_0x25efb3[_0x218def(0x116)][_0x218def(0xfd)]+'.'};}},{'service':a41_0x299fa2(0xe1),'command':a41_0x299fa2(0xee),'description':a41_0x299fa2(0x122),'risk':a41_0x299fa2(0x104),'confirmationDescription':a41_0x299fa2(0xf6),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x3ad40d){const _0x92ef59=a41_0x299fa2,_0x15a3d7=getLocalServiceEntry(_0x3ad40d[_0x92ef59(0xe4)](_0x92ef59(0xe1)));return{'method':_0x92ef59(0xec),'url':_0x3ad40d['str']('file'),'body':{'service':_0x3ad40d[_0x92ef59(0xe4)](_0x92ef59(0xe1)),'found':Boolean(_0x15a3d7),'version':_0x15a3d7?.[_0x92ef59(0xed)],'source':_0x15a3d7?.[_0x92ef59(0xea)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x2566b9){const _0x1cf72b=a41_0x299fa2,_0x4eac16=exportServiceManifest(_0x2566b9['str'](_0x1cf72b(0xe1)),_0x2566b9[_0x1cf72b(0xe4)](_0x1cf72b(0xfa)));return{'ok':!![],'data':{'registryPath':_0x4eac16[_0x1cf72b(0x11f)],'file':_0x4eac16[_0x1cf72b(0x114)],'service':summarizeService(_0x4eac16[_0x1cf72b(0x116)])},'message':'Exported\x20service\x20'+_0x4eac16['entry'][_0x1cf72b(0xfd)]+'.'};}},{'service':a41_0x299fa2(0xe1),'command':'list','description':a41_0x299fa2(0x101),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x16ce2a=a41_0x299fa2,_0x56dd36=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x56dd36[_0x16ce2a(0x10c)],'services':_0x56dd36['map'](summarizeService)}};}},{'service':a41_0x299fa2(0xe1),'command':a41_0x299fa2(0x108),'description':a41_0x299fa2(0xfb),'risk':a41_0x299fa2(0x104),'confirmationDescription':a41_0x299fa2(0x107),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x1fc56a){const _0x365749=a41_0x299fa2,_0x53ff42=getLocalServiceEntry(_0x1fc56a[_0x365749(0xe4)]('service'));return{'method':_0x365749(0xec),'url':getServiceRegistryPath(),'body':{'service':_0x1fc56a[_0x365749(0xe4)]('service'),'found':Boolean(_0x53ff42),'version':_0x53ff42?.[_0x365749(0xed)],'source':_0x53ff42?.[_0x365749(0xea)]},'description':_0x365749(0x123)};},async 'execute'(_0xf82a32){const _0x4524c8=a41_0x299fa2,_0x566555=removeServiceManifest(_0xf82a32[_0x4524c8(0xe4)](_0x4524c8(0xe1)));return{'ok':!![],'data':{'registryPath':_0x566555[_0x4524c8(0x11f)],'serviceCount':_0x566555['serviceCount'],'service':summarizeService(_0x566555[_0x4524c8(0x116)])},'message':_0x4524c8(0x11c)+_0x566555[_0x4524c8(0x116)][_0x4524c8(0xfd)]+'.'};}},{'service':a41_0x299fa2(0xe1),'command':a41_0x299fa2(0x113),'description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x489227){const _0x5c4636=a41_0x299fa2,_0x375023=getLocalServiceEntry(_0x489227[_0x5c4636(0xe4)]('service'));if(!_0x375023)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x489227[_0x5c4636(0xe4)]('service')},'message':_0x5c4636(0x10a)+_0x489227[_0x5c4636(0xe4)](_0x5c4636(0xe1))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x375023),'manifest':_0x375023[_0x5c4636(0x106)],'normalizedManifest':toPublicNormalizedServiceTree(_0x375023[_0x5c4636(0x10f)])}};}}];
1
+ const a41_0x42c04e=a41_0x5270;(function(_0x44ab3f,_0x3c312e){const _0x445e7d=a41_0x5270,_0x4974e8=_0x44ab3f();while(!![]){try{const _0x5a8912=parseInt(_0x445e7d(0x1c6))/0x1*(parseInt(_0x445e7d(0x1de))/0x2)+parseInt(_0x445e7d(0x1af))/0x3*(-parseInt(_0x445e7d(0x1b5))/0x4)+parseInt(_0x445e7d(0x1a3))/0x5+-parseInt(_0x445e7d(0x1ca))/0x6+-parseInt(_0x445e7d(0x1e8))/0x7*(parseInt(_0x445e7d(0x1d0))/0x8)+parseInt(_0x445e7d(0x1ad))/0x9*(-parseInt(_0x445e7d(0x1d4))/0xa)+parseInt(_0x445e7d(0x1ac))/0xb*(parseInt(_0x445e7d(0x1d7))/0xc);if(_0x5a8912===_0x3c312e)break;else _0x4974e8['push'](_0x4974e8['shift']());}catch(_0x3fe5c8){_0x4974e8['push'](_0x4974e8['shift']());}}}(a41_0x3b82,0x6e1b0));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';function a41_0x5270(_0x7506f5,_0x1bd1c1){_0x7506f5=_0x7506f5-0x19e;const _0x3b82d1=a41_0x3b82();let _0x52707f=_0x3b82d1[_0x7506f5];return _0x52707f;}const FILE_FLAG={'name':a41_0x42c04e(0x1e7),'type':a41_0x42c04e(0x1b8),'required':!![],'description':a41_0x42c04e(0x1d3)},SERVICE_FLAG={'name':a41_0x42c04e(0x1cf),'type':a41_0x42c04e(0x1b8),'required':!![],'description':a41_0x42c04e(0x1b3),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x5d820f){const _0x3617d6=a41_0x42c04e;return{'serviceCode':_0x5d820f[_0x3617d6(0x1c8)],'name':_0x5d820f[_0x3617d6(0x1a4)][_0x3617d6(0x1cf)]['name'],'version':_0x5d820f[_0x3617d6(0x1a9)],'importedAt':_0x5d820f[_0x3617d6(0x1a1)],'source':_0x5d820f[_0x3617d6(0x1bc)],'commandCount':_0x5d820f['normalizedManifest'][_0x3617d6(0x1b1)][_0x3617d6(0x1da)],'commands':_0x5d820f[_0x3617d6(0x1a4)]['commands']['map'](_0x172852=>({'path':_0x172852['cliPath'],'description':_0x172852['description'],'risk':_0x172852[_0x3617d6(0x1b9)],'target':toPublicServiceTreeTarget(_0x172852[_0x3617d6(0x1dd)]),'flags':_0x172852[_0x3617d6(0x1a5)][_0x3617d6(0x1c0)](_0x244e75=>({'name':_0x244e75['name'],'cliName':_0x244e75[_0x3617d6(0x1d5)],'type':_0x244e75[_0x3617d6(0x1d2)],'required':_0x244e75['required']===!![]}))}))};}function a41_0x3b82(){const _0x4d3060=['detail','12pardHO','replaced','kind','length','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','warnings','target','459686IZjlJB','entry','validate','read','errors','export','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','\x20service\x20','\x20service(s),\x20updated\x20','file','126lPfbul','registryServiceCode','filePath','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','Service\x20manifest\x20validation\x20passed.','importedAt','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','4032240uArmJF','normalizedManifest','flags','Imported','str','WRITE','version','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','Imported\x20','5450478koylvw','63iYPHNi','registryPath','222918vcYUCY','hash','commands','updated','Local\x20service\x20code,\x20for\x20example\x20crm','Exported\x20service\x20','8jxQVyO','reduce','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','string','risk','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','manifests','source','report','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','manifest','map','remove','serviceCount','imported','将\x20Service\x20Tree\x20清单导入本地运行态注册表','Local\x20service\x20not\x20found:\x20','3FziIAb','registry','serviceCode','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','3947706ojKiGq','从本地运行态注册表移除\x20Service\x20Tree\x20清单','Service\x20registry\x20validation\x20passed.','write','entries','service','277224vzhyyz','import','type','Service\x20Tree\x20manifest\x20file\x20path','157380eHTSdL','cliName'];a41_0x3b82=function(){return _0x4d3060;};return a41_0x3b82();}function summarizeLoadedManifest(_0x20e29c){const _0x26d8b7=a41_0x42c04e;return{'service':_0x20e29c[_0x26d8b7(0x1a4)]?.[_0x26d8b7(0x1cf)],'version':_0x20e29c[_0x26d8b7(0x1a4)]?.[_0x26d8b7(0x1a9)],'commandCount':_0x20e29c['normalizedManifest']?.['commands']['length']??0x0,'commands':_0x20e29c[_0x26d8b7(0x1a4)]?.['commands'][_0x26d8b7(0x1c0)](_0x22aded=>({'path':_0x22aded['cliPath'],'risk':_0x22aded[_0x26d8b7(0x1b9)],'target':toPublicServiceTreeTarget(_0x22aded['target'])}))??[],'registryIndex':_0x20e29c['registryIndex'],'registryServiceCode':_0x20e29c[_0x26d8b7(0x1e9)],'errors':_0x20e29c[_0x26d8b7(0x1bd)][_0x26d8b7(0x1e2)],'warnings':_0x20e29c[_0x26d8b7(0x1bd)][_0x26d8b7(0x1dc)]};}export const serviceDefinitions=[{'service':a41_0x42c04e(0x1cf),'command':a41_0x42c04e(0x1e0),'description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a41_0x42c04e(0x1e1),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x4a8d10){const _0x315571=a41_0x42c04e,_0x22db9c=loadServiceManifestFromFile(_0x4a8d10[_0x315571(0x1a7)](_0x315571(0x1e7)));if(!_0x22db9c[_0x315571(0x1bd)]['ok'])return{'ok':![],'data':{'file':_0x22db9c[_0x315571(0x19e)],'hash':_0x22db9c['hash'],'kind':_0x22db9c[_0x315571(0x1d9)],'serviceCount':_0x22db9c['manifests'][_0x315571(0x1da)],'services':_0x22db9c['manifests'][_0x315571(0x1c0)](summarizeLoadedManifest),'errors':_0x22db9c[_0x315571(0x1bd)][_0x315571(0x1e2)],'warnings':_0x22db9c['report'][_0x315571(0x1dc)]},'message':formatValidationFailure(_0x22db9c[_0x315571(0x1bd)])};if(_0x22db9c[_0x315571(0x1d9)]===_0x315571(0x1c7)||_0x22db9c['manifests'][_0x315571(0x1da)]!==0x1)return{'ok':!![],'data':{'file':_0x22db9c[_0x315571(0x19e)],'hash':_0x22db9c[_0x315571(0x1b0)],'kind':_0x22db9c[_0x315571(0x1d9)],'serviceCount':_0x22db9c[_0x315571(0x1bb)][_0x315571(0x1da)],'commandCount':_0x22db9c[_0x315571(0x1bb)][_0x315571(0x1b6)]((_0x356474,_0x11c0b0)=>_0x356474+(_0x11c0b0[_0x315571(0x1a4)]?.['commands'][_0x315571(0x1da)]??0x0),0x0),'services':_0x22db9c['manifests'][_0x315571(0x1c0)](summarizeLoadedManifest),'warnings':_0x22db9c[_0x315571(0x1bd)][_0x315571(0x1dc)]},'message':_0x315571(0x1cc)};return{'ok':!![],'data':{'file':_0x22db9c['filePath'],'hash':_0x22db9c['hash'],'kind':_0x22db9c[_0x315571(0x1d9)],'service':_0x22db9c[_0x315571(0x1a4)]?.[_0x315571(0x1cf)],'version':_0x22db9c['normalizedManifest']?.['version'],'commandCount':_0x22db9c[_0x315571(0x1a4)]?.[_0x315571(0x1b1)][_0x315571(0x1da)]??0x0,'commands':_0x22db9c[_0x315571(0x1a4)]?.[_0x315571(0x1b1)][_0x315571(0x1c0)](_0x178e89=>({'path':_0x178e89['cliPath'],'risk':_0x178e89['risk'],'target':toPublicServiceTreeTarget(_0x178e89[_0x315571(0x1dd)])})),'warnings':_0x22db9c[_0x315571(0x1bd)]['warnings']},'message':_0x315571(0x1a0)};}},{'service':a41_0x42c04e(0x1cf),'command':a41_0x42c04e(0x1d1),'description':a41_0x42c04e(0x1c4),'risk':a41_0x42c04e(0x1cd),'confirmationDescription':a41_0x42c04e(0x1b7),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0xbbeb07){const _0x2d6f55=a41_0x42c04e,_0x1ba5d0=loadServiceManifestFromFile(_0xbbeb07[_0x2d6f55(0x1a7)](_0x2d6f55(0x1e7)));return{'method':_0x2d6f55(0x1a8),'url':getServiceRegistryPath(),'body':{'file':_0x1ba5d0[_0x2d6f55(0x19e)],'hash':_0x1ba5d0[_0x2d6f55(0x1b0)],'kind':_0x1ba5d0['kind'],'ok':_0x1ba5d0['report']['ok'],'service':_0x1ba5d0[_0x2d6f55(0x1a4)]?.['service'],'version':_0x1ba5d0[_0x2d6f55(0x1a4)]?.[_0x2d6f55(0x1a9)],'serviceCount':_0x1ba5d0['manifests'][_0x2d6f55(0x1da)],'services':_0x1ba5d0[_0x2d6f55(0x1bb)][_0x2d6f55(0x1c0)](_0x2e4afc=>({'service':_0x2e4afc[_0x2d6f55(0x1a4)]?.[_0x2d6f55(0x1cf)],'version':_0x2e4afc[_0x2d6f55(0x1a4)]?.['version'],'commandCount':_0x2e4afc[_0x2d6f55(0x1a4)]?.[_0x2d6f55(0x1b1)][_0x2d6f55(0x1da)]??0x0,'errors':_0x2e4afc[_0x2d6f55(0x1bd)][_0x2d6f55(0x1e2)]})),'errors':_0x1ba5d0[_0x2d6f55(0x1bd)][_0x2d6f55(0x1e2)],'commandCount':_0x1ba5d0[_0x2d6f55(0x1a4)]?.['commands']['length']??0x0},'description':_0x2d6f55(0x1db)};},async 'execute'(_0x52e0b3){const _0x3ba75a=a41_0x42c04e,_0x2fc96a=importServiceManifest(_0x52e0b3['str'](_0x3ba75a(0x1e7)));if(_0x2fc96a[_0x3ba75a(0x1ce)][_0x3ba75a(0x1da)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x2fc96a[_0x3ba75a(0x1ae)],'imported':_0x2fc96a[_0x3ba75a(0x1c3)],'updated':_0x2fc96a['updated'],'serviceCount':_0x2fc96a[_0x3ba75a(0x1c2)],'services':_0x2fc96a['entries'][_0x3ba75a(0x1c0)](summarizeService)},'message':_0x3ba75a(0x1ab)+_0x2fc96a[_0x3ba75a(0x1c3)]+_0x3ba75a(0x1e6)+_0x2fc96a[_0x3ba75a(0x1b2)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x2fc96a[_0x3ba75a(0x1ae)],'replaced':_0x2fc96a[_0x3ba75a(0x1d8)],'imported':_0x2fc96a[_0x3ba75a(0x1c3)],'updated':_0x2fc96a[_0x3ba75a(0x1b2)],'serviceCount':_0x2fc96a['serviceCount'],'service':summarizeService(_0x2fc96a[_0x3ba75a(0x1df)])},'message':(_0x2fc96a[_0x3ba75a(0x1d8)]?'Updated':_0x3ba75a(0x1a6))+_0x3ba75a(0x1e5)+_0x2fc96a[_0x3ba75a(0x1df)]['serviceCode']+'.'};}},{'service':'service','command':a41_0x42c04e(0x1e3),'description':a41_0x42c04e(0x1c9),'risk':a41_0x42c04e(0x1cd),'confirmationDescription':a41_0x42c04e(0x19f),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x48a0d1){const _0x2dbf38=a41_0x42c04e,_0x35f36d=getLocalServiceEntry(_0x48a0d1[_0x2dbf38(0x1a7)]('service'));return{'method':_0x2dbf38(0x1a8),'url':_0x48a0d1[_0x2dbf38(0x1a7)]('file'),'body':{'service':_0x48a0d1['str']('service'),'found':Boolean(_0x35f36d),'version':_0x35f36d?.[_0x2dbf38(0x1a9)],'source':_0x35f36d?.[_0x2dbf38(0x1bc)]},'description':_0x2dbf38(0x1aa)};},async 'execute'(_0x41cca8){const _0x19e58e=a41_0x42c04e,_0x2d8814=exportServiceManifest(_0x41cca8[_0x19e58e(0x1a7)](_0x19e58e(0x1cf)),_0x41cca8[_0x19e58e(0x1a7)](_0x19e58e(0x1e7)));return{'ok':!![],'data':{'registryPath':_0x2d8814[_0x19e58e(0x1ae)],'file':_0x2d8814[_0x19e58e(0x19e)],'service':summarizeService(_0x2d8814[_0x19e58e(0x1df)])},'message':_0x19e58e(0x1b4)+_0x2d8814[_0x19e58e(0x1df)]['serviceCode']+'.'};}},{'service':a41_0x42c04e(0x1cf),'command':'list','description':a41_0x42c04e(0x1be),'risk':a41_0x42c04e(0x1e1),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x998c09=a41_0x42c04e,_0x386d35=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x386d35[_0x998c09(0x1da)],'services':_0x386d35[_0x998c09(0x1c0)](summarizeService)}};}},{'service':a41_0x42c04e(0x1cf),'command':a41_0x42c04e(0x1c1),'description':a41_0x42c04e(0x1cb),'risk':'write','confirmationDescription':a41_0x42c04e(0x1a2),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x25ba84){const _0x5cacbf=a41_0x42c04e,_0x166c5f=getLocalServiceEntry(_0x25ba84[_0x5cacbf(0x1a7)](_0x5cacbf(0x1cf)));return{'method':_0x5cacbf(0x1a8),'url':getServiceRegistryPath(),'body':{'service':_0x25ba84[_0x5cacbf(0x1a7)](_0x5cacbf(0x1cf)),'found':Boolean(_0x166c5f),'version':_0x166c5f?.[_0x5cacbf(0x1a9)],'source':_0x166c5f?.['source']},'description':_0x5cacbf(0x1e4)};},async 'execute'(_0x49ecf8){const _0x135b39=a41_0x42c04e,_0x41d0a1=removeServiceManifest(_0x49ecf8[_0x135b39(0x1a7)](_0x135b39(0x1cf)));return{'ok':!![],'data':{'registryPath':_0x41d0a1[_0x135b39(0x1ae)],'serviceCount':_0x41d0a1[_0x135b39(0x1c2)],'service':summarizeService(_0x41d0a1[_0x135b39(0x1df)])},'message':'Removed\x20service\x20'+_0x41d0a1['entry'][_0x135b39(0x1c8)]+'.'};}},{'service':a41_0x42c04e(0x1cf),'command':a41_0x42c04e(0x1d6),'description':a41_0x42c04e(0x1ba),'risk':a41_0x42c04e(0x1e1),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x1293ce){const _0x2eaae1=a41_0x42c04e,_0x3ad793=getLocalServiceEntry(_0x1293ce['str'](_0x2eaae1(0x1cf)));if(!_0x3ad793)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x1293ce['str'](_0x2eaae1(0x1cf))},'message':_0x2eaae1(0x1c5)+_0x1293ce[_0x2eaae1(0x1a7)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x3ad793),'manifest':_0x3ad793[_0x2eaae1(0x1bf)],'normalizedManifest':toPublicNormalizedServiceTree(_0x3ad793['normalizedManifest'])}};}}];
@@ -1 +1 @@
1
- (function(_0x4d73f2,_0x579435){const _0x4c1225=a42_0x2030,_0xf2457=_0x4d73f2();while(!![]){try{const _0x4f5d03=-parseInt(_0x4c1225(0x235))/0x1+parseInt(_0x4c1225(0x20c))/0x2+parseInt(_0x4c1225(0x20e))/0x3*(parseInt(_0x4c1225(0x1f5))/0x4)+parseInt(_0x4c1225(0x205))/0x5+-parseInt(_0x4c1225(0x223))/0x6*(-parseInt(_0x4c1225(0x202))/0x7)+parseInt(_0x4c1225(0x212))/0x8*(-parseInt(_0x4c1225(0x237))/0x9)+-parseInt(_0x4c1225(0x1f1))/0xa;if(_0x4f5d03===_0x579435)break;else _0xf2457['push'](_0xf2457['shift']());}catch(_0x5496f4){_0xf2457['push'](_0xf2457['shift']());}}}(a42_0x4e58,0xf1da8));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(_0x4fa982={}){const _0xb6a927=a42_0x2030;return resolve(_0x4fa982['homeDir']??homedir(),PRODUCT_CONFIG[_0xb6a927(0x1f0)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}function a42_0x2030(_0x5570e4,_0x89d831){_0x5570e4=_0x5570e4-0x1e9;const _0x4e5839=a42_0x4e58();let _0x20305d=_0x4e5839[_0x5570e4];return _0x20305d;}export function readServiceRegistry(_0x1009e8={}){const _0x442341=a42_0x2030,_0x5a4cd7=getServiceRegistryPath(_0x1009e8);if(!existsSync(_0x5a4cd7))return emptyServiceRegistry();try{const _0xf5b686=readFileSync(_0x5a4cd7,'utf8');if(!_0xf5b686['trim']())return emptyServiceRegistry();const _0x4cad12=JSON['parse'](_0xf5b686);if(_0x4cad12[_0x442341(0x22c)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x442341(0x20a)](_0x442341(0x1fc)+String(_0x4cad12[_0x442341(0x22c)]),_0x442341(0x1ef)+_0x5a4cd7+'.');if(!Array[_0x442341(0x22e)](_0x4cad12[_0x442341(0x21c)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x4cad12[_0x442341(0x21a)],'services':_0x4cad12[_0x442341(0x21c)]};}catch(_0x1d5fb9){if(_0x1d5fb9 instanceof Error&&_0x1d5fb9[_0x442341(0x1f7)]==='CliError')throw _0x1d5fb9;throw CliErrors[_0x442341(0x20a)](_0x442341(0x208)+_0x5a4cd7,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x56b136,_0x35c5c8={}){const _0x4ae182=a42_0x2030,_0x5f4194=getServiceRegistryPath(_0x35c5c8),_0x5bf432=dirname(_0x5f4194);!existsSync(_0x5bf432)&&mkdirSync(_0x5bf432,{'recursive':!![]});const _0x1343c8=_0x5f4194+_0x4ae182(0x221);try{writeFileSync(_0x1343c8,JSON[_0x4ae182(0x224)](_0x56b136,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x1343c8,_0x5f4194);}catch(_0x17b7df){try{unlinkSync(_0x1343c8);}catch{}if(_0x17b7df?.[_0x4ae182(0x231)]===_0x4ae182(0x236))throw CliErrors[_0x4ae182(0x20a)](_0x4ae182(0x23b)+_0x5f4194);throw _0x17b7df;}return _0x5f4194;}export function loadServiceManifestFromFile(_0x439de6){const _0x4be528=a42_0x2030,_0x50b61=resolve(_0x439de6);if(!existsSync(_0x50b61))throw CliErrors[_0x4be528(0x20a)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x439de6);let _0x261c72;const _0x188778=readFileSync(_0x50b61,_0x4be528(0x1ec));try{_0x261c72=JSON['parse'](_0x188778);}catch{throw CliErrors[_0x4be528(0x20a)](_0x4be528(0x239)+_0x439de6,_0x4be528(0x225));}const _0x2c4b26=sha256(_0x188778),_0x436fb9=extractLoadedServiceManifests(_0x261c72,_0x2c4b26),_0x139c56=aggregateValidationReports(_0x436fb9),_0x13da14=_0x436fb9[0x0];return{'filePath':_0x50b61,'hash':_0x2c4b26,'kind':isServiceRegistryLike(_0x261c72)?_0x4be528(0x209):_0x4be528(0x210),'manifest':_0x13da14?.[_0x4be528(0x210)]??_0x261c72,'report':_0x139c56,'normalizedManifest':_0x436fb9[_0x4be528(0x226)]===0x1?_0x13da14?.['normalizedManifest']:undefined,'manifests':_0x436fb9};}export function importServiceManifest(_0x418d7f,_0x2c7f13={}){const _0x271c66=a42_0x2030,_0x448329=loadServiceManifestFromFile(_0x418d7f);if(!_0x448329['report']['ok'])throw CliErrors[_0x271c66(0x20a)](formatValidationFailure(_0x448329[_0x271c66(0x200)]),_0x271c66(0x1fa));if(_0x448329[_0x271c66(0x216)][_0x271c66(0x226)]===0x0)throw CliErrors['validation'](_0x271c66(0x1eb),_0x271c66(0x21f));const _0x21da5f=readServiceRegistry(_0x2c7f13),_0x1613dc=(_0x2c7f13[_0x271c66(0x1f2)]??(()=>new Date()))()[_0x271c66(0x201)](),_0x58410f=[];let _0x3572d3=0x0,_0x59243a=0x0;for(const _0x42847f of _0x448329['manifests']){if(!_0x42847f['normalizedManifest'])continue;const _0x4033e2=_0x42847f[_0x271c66(0x218)][_0x271c66(0x21b)]['code'],_0x26fc79={'serviceCode':_0x4033e2,'version':_0x42847f['normalizedManifest'][_0x271c66(0x21e)],'importedAt':_0x1613dc,'source':{'type':_0x271c66(0x214),'path':_0x448329[_0x271c66(0x1fd)],'hash':_0x42847f['sourceHash']},'manifest':_0x42847f['manifest'],'normalizedManifest':_0x42847f[_0x271c66(0x218)]},_0x9cd9c9=_0x21da5f['services'][_0x271c66(0x22d)](_0x5ce22e=>_0x5ce22e[_0x271c66(0x222)]===_0x4033e2);_0x9cd9c9>=0x0?(_0x21da5f['services'][_0x9cd9c9]=_0x26fc79,_0x59243a++):(_0x21da5f['services'][_0x271c66(0x206)](_0x26fc79),_0x3572d3++),_0x58410f[_0x271c66(0x206)](_0x26fc79);}_0x21da5f['services'][_0x271c66(0x20b)]((_0x8afa82,_0x21eaf5)=>_0x8afa82[_0x271c66(0x222)]['localeCompare'](_0x21eaf5[_0x271c66(0x222)])),_0x21da5f[_0x271c66(0x21a)]=_0x1613dc;const _0x2256b7=writeServiceRegistry(_0x21da5f,_0x2c7f13);return{'registryPath':_0x2256b7,'entry':_0x58410f[0x0],'replaced':_0x58410f['length']===0x1?_0x59243a===0x1:_0x59243a>0x0,'entries':_0x58410f,'imported':_0x3572d3,'updated':_0x59243a,'serviceCount':_0x21da5f[_0x271c66(0x21c)][_0x271c66(0x226)]};}function a42_0x4e58(){const _0x545334=['2435666HcnqWg','string','3MUWdLz','startsWith','manifest','empty','27640TbelaI','message','file','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','manifests','slice','normalizedManifest','map','updatedAt','service','services','command','version','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','flatMap','.tmp','serviceCode','183762WJjMCT','stringify','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','length','update','Local\x20service\x20not\x20found:\x20','target','errors','warnings','schemaVersion','findIndex','isArray','missing','hex','code','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','].manifest','reduce','1936462aqWRcv','ENOENT','531XJQOnC','$.services[','Invalid\x20service\x20manifest\x20JSON:\x20','risk','Cannot\x20write\x20service\x20registry:\x20','registryIndex','commands','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','utf8','].manifest.','description','Remove\x20or\x20migrate\x20','homeDirName','16790520HqPWoF','now','trim','Unsupported\x20schemaVersion:\x20','6499840gyNkdg','commandCount','name','importedAt','bff\x20target\x20requires\x20functionName.','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','join','Unsupported\x20service\x20registry\x20schemaVersion:\x20','filePath','kind','invalid','report','toISOString','49meHQNY','path','source','8764045vWxhfO','push','sha256','Invalid\x20service\x20registry\x20JSON:\x20','registry','validation','sort'];a42_0x4e58=function(){return _0x545334;};return a42_0x4e58();}export function exportServiceManifest(_0x2f4b6e,_0x5ab781,_0x13de42={}){const _0x236d2e=a42_0x2030,_0xfff8a4=getServiceRegistryPath(_0x13de42),_0x429ab0=getLocalServiceEntry(_0x2f4b6e,_0x13de42);if(!_0x429ab0)throw CliErrors[_0x236d2e(0x20a)](_0x236d2e(0x228)+_0x2f4b6e,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x550dfb=resolve(_0x5ab781),_0x4560ef=dirname(_0x550dfb);return!existsSync(_0x4560ef)&&mkdirSync(_0x4560ef,{'recursive':!![]}),writeFileSync(_0x550dfb,JSON[_0x236d2e(0x224)](_0x429ab0['manifest'],null,0x2)+'\x0a',{'encoding':_0x236d2e(0x1ec),'mode':0x180}),{'registryPath':_0xfff8a4,'filePath':_0x550dfb,'entry':_0x429ab0};}export function removeServiceManifest(_0x395027,_0x86c377={}){const _0xba64e0=a42_0x2030,_0x541322=readServiceRegistry(_0x86c377),_0x27259c=_0x395027['trim'](),_0x58739c=_0x541322['services'][_0xba64e0(0x22d)](_0x33c9cb=>_0x33c9cb[_0xba64e0(0x222)]===_0x27259c);if(_0x58739c<0x0)throw CliErrors[_0xba64e0(0x20a)](_0xba64e0(0x228)+_0x27259c,_0xba64e0(0x232));const [_0xa82902]=_0x541322['services']['splice'](_0x58739c,0x1),_0x52f0df=(_0x86c377['now']??(()=>new Date()))()[_0xba64e0(0x201)]();_0x541322[_0xba64e0(0x21a)]=_0x52f0df;const _0x5ced9c=writeServiceRegistry(_0x541322,_0x86c377);return{'registryPath':_0x5ced9c,'entry':_0xa82902,'serviceCount':_0x541322[_0xba64e0(0x21c)]['length']};}export function listLocalServices(_0x2f5c40={}){const _0x320d40=a42_0x2030;return readServiceRegistry(_0x2f5c40)[_0x320d40(0x21c)];}export function getLocalServiceEntry(_0x541116,_0x3080e8={}){const _0x243cd3=a42_0x2030;return readServiceRegistry(_0x3080e8)[_0x243cd3(0x21c)]['find'](_0x4706e7=>_0x4706e7[_0x243cd3(0x222)]===_0x541116[_0x243cd3(0x1f3)]());}export function listLocalServiceTrees(_0x110765={}){const _0x2cb705=a42_0x2030;return readServiceRegistry(_0x110765)[_0x2cb705(0x21c)][_0x2cb705(0x219)](_0x355715=>_0x355715[_0x2cb705(0x218)]);}export function inspectServiceRegistry(_0x1a6b36={}){const _0x98bb9=a42_0x2030,_0x5ba0cb=getServiceRegistryPath(_0x1a6b36);if(!existsSync(_0x5ba0cb))return emptyServiceRegistryInspection(_0x5ba0cb,_0x98bb9(0x22f),![]);try{const _0x56fbce=readFileSync(_0x5ba0cb,_0x98bb9(0x1ec));if(!_0x56fbce[_0x98bb9(0x1f3)]())return emptyServiceRegistryInspection(_0x5ba0cb,_0x98bb9(0x211),!![]);const _0x3176ae=JSON['parse'](_0x56fbce);if(_0x3176ae[_0x98bb9(0x22c)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x5ba0cb,_0x98bb9(0x1ff),!![]),'schemaVersion':_0x3176ae[_0x98bb9(0x22c)],'message':_0x98bb9(0x1f4)+String(_0x3176ae[_0x98bb9(0x22c)])};if(!Array[_0x98bb9(0x22e)](_0x3176ae[_0x98bb9(0x21c)]))return{...emptyServiceRegistryInspection(_0x5ba0cb,_0x98bb9(0x1ff),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3176ae[_0x98bb9(0x21a)],'message':'services\x20must\x20be\x20an\x20array'};const _0x4a5157=_0x3176ae[_0x98bb9(0x21c)][_0x98bb9(0x219)](summarizeLocalServiceEntry);return{'registryPath':_0x5ba0cb,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3176ae[_0x98bb9(0x21a)],'serviceCount':_0x4a5157[_0x98bb9(0x226)],'commandCount':_0x4a5157[_0x98bb9(0x234)]((_0x3dc0e7,_0x360682)=>_0x3dc0e7+_0x360682[_0x98bb9(0x1f6)],0x0),'services':_0x4a5157};}catch(_0x347d9d){return{...emptyServiceRegistryInspection(_0x5ba0cb,_0x98bb9(0x1ff),!![]),'message':_0x347d9d instanceof Error?_0x347d9d['message']:String(_0x347d9d)};}}export function formatValidationFailure(_0x2f6e9a){const _0x146d17=a42_0x2030,_0xdeb9fa=_0x2f6e9a[_0x146d17(0x22a)][_0x146d17(0x219)](_0x4f3d02=>_0x4f3d02[_0x146d17(0x203)]+':\x20'+_0x4f3d02['message']);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0xdeb9fa[_0x146d17(0x1fb)]('\x0a');}function extractLoadedServiceManifests(_0x5544c7,_0x4becc6){const _0x3f2541=a42_0x2030;if(!isServiceRegistryLike(_0x5544c7)){const _0x450322=_0x5544c7,{manifest:_0x11d07b,errors:_0x440c90}=adaptServiceTreeManifestForLegacyFramework(_0x450322),_0x27c839=validateServiceTreeManifest(_0x11d07b),_0x292817=mergeValidationErrors(_0x27c839,_0x440c90);return[{'manifest':_0x450322,'report':_0x292817,'normalizedManifest':_0x292817['ok']?normalizeServiceTreeManifest(_0x11d07b):undefined,'sourceHash':_0x4becc6}];}return _0x5544c7[_0x3f2541(0x21c)][_0x3f2541(0x219)]((_0x1a2d8a,_0x10d965)=>{const _0x5b57da=_0x3f2541,_0x5656ec=isObjectRecord(_0x1a2d8a)?_0x1a2d8a[_0x5b57da(0x210)]:undefined,{manifest:_0x3481ed,errors:_0x10dd08}=adaptServiceTreeManifestForLegacyFramework(_0x5656ec),_0x3fce91=validateServiceTreeManifest(_0x3481ed),_0xba5589=mergeValidationErrors(_0x3fce91,_0x10dd08),_0x1a5ff2=isObjectRecord(_0x1a2d8a)&&typeof _0x1a2d8a[_0x5b57da(0x222)]===_0x5b57da(0x20d)?_0x1a2d8a[_0x5b57da(0x222)]:undefined;return{'manifest':_0x5656ec,'report':_0xba5589,'normalizedManifest':_0xba5589['ok']?normalizeServiceTreeManifest(_0x3481ed):undefined,'sourceHash':sha256(JSON['stringify'](_0x5656ec,null,0x2)+'\x0a'),'registryIndex':_0x10d965,'registryServiceCode':_0x1a5ff2};});}function mergeValidationErrors(_0x24012c,_0x46ebc8){const _0x351380=a42_0x2030,_0x53f9f8=_0x24012c[_0x351380(0x22a)][_0x351380(0x219)](_0x43ed48=>_0x43ed48[_0x351380(0x213)]===_0x351380(0x215)?{..._0x43ed48,'message':_0x351380(0x1f9)}:_0x43ed48),_0x56aaa8=[..._0x46ebc8,..._0x53f9f8];return{'ok':_0x56aaa8[_0x351380(0x226)]===0x0,'errors':_0x56aaa8,'warnings':_0x24012c[_0x351380(0x22b)]};}function aggregateValidationReports(_0x5bd696){const _0x11cd47=a42_0x2030,_0x2de7d6=_0x5bd696[_0x11cd47(0x220)](_0x4c98f1=>_0x4c98f1['registryIndex']===undefined?_0x4c98f1[_0x11cd47(0x200)][_0x11cd47(0x22a)]:_0x4c98f1['report'][_0x11cd47(0x22a)][_0x11cd47(0x219)](_0x439057=>({..._0x439057,'path':prefixRegistryIssuePath(_0x4c98f1[_0x11cd47(0x1e9)],_0x439057['path'])}))),_0x48b7c8=_0x5bd696['flatMap'](_0x160639=>_0x160639['registryIndex']===undefined?_0x160639[_0x11cd47(0x200)]['warnings']:_0x160639['report'][_0x11cd47(0x22b)][_0x11cd47(0x219)](_0xefb594=>({..._0xefb594,'path':prefixRegistryIssuePath(_0x160639[_0x11cd47(0x1e9)],_0xefb594['path'])})));return{'ok':_0x2de7d6[_0x11cd47(0x226)]===0x0,'errors':_0x2de7d6,'warnings':_0x48b7c8};}function prefixRegistryIssuePath(_0x58cd0f,_0x3d4e83){const _0xec7a8a=a42_0x2030;if(_0x3d4e83==='$')return _0xec7a8a(0x238)+_0x58cd0f+'].manifest';if(_0x3d4e83[_0xec7a8a(0x20f)]('$.'))return _0xec7a8a(0x238)+_0x58cd0f+'].manifest'+_0x3d4e83[_0xec7a8a(0x217)](0x1);if(_0x3d4e83[_0xec7a8a(0x20f)]('$['))return _0xec7a8a(0x238)+_0x58cd0f+_0xec7a8a(0x233)+_0x3d4e83['slice'](0x1);return _0xec7a8a(0x238)+_0x58cd0f+_0xec7a8a(0x1ed)+_0x3d4e83;}function isServiceRegistryLike(_0x20e5fc){const _0x18c137=a42_0x2030;return isObjectRecord(_0x20e5fc)&&_0x20e5fc['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x18c137(0x22e)](_0x20e5fc['services']);}function isObjectRecord(_0x343c60){return Boolean(_0x343c60)&&typeof _0x343c60==='object'&&!Array['isArray'](_0x343c60);}function emptyServiceRegistryInspection(_0x31ba18,_0x41668e,_0x10e4f0){return{'registryPath':_0x31ba18,'exists':_0x10e4f0,'status':_0x41668e,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x43dd7b){const _0x4f354e=a42_0x2030,_0x5bd575=_0x43dd7b[_0x4f354e(0x218)],_0x147d3e=_0x5bd575[_0x4f354e(0x1ea)][_0x4f354e(0x219)](_0x4c52b2=>({'path':_0x4c52b2['cliPath'],'description':_0x4c52b2[_0x4f354e(0x1ee)],'risk':_0x4c52b2[_0x4f354e(0x23a)],'targetKind':_0x4c52b2[_0x4f354e(0x229)][_0x4f354e(0x1fe)],'targetCommand':_0x4c52b2[_0x4f354e(0x229)][_0x4f354e(0x21d)]}));return{'serviceCode':_0x43dd7b[_0x4f354e(0x222)],'name':_0x5bd575[_0x4f354e(0x21b)][_0x4f354e(0x1f7)],'description':_0x5bd575[_0x4f354e(0x21b)][_0x4f354e(0x1ee)],'version':_0x43dd7b['version'],'importedAt':_0x43dd7b[_0x4f354e(0x1f8)],'source':_0x43dd7b[_0x4f354e(0x204)],'commandCount':_0x147d3e[_0x4f354e(0x226)],'commands':_0x147d3e};}function sha256(_0x126279){const _0x10722d=a42_0x2030;return createHash(_0x10722d(0x207))[_0x10722d(0x227)](_0x126279)['digest'](_0x10722d(0x230));}
1
+ const a42_0x30ec34=a42_0x28a4;function a42_0x2382(){const _0xb859c7=['Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','Invalid\x20service\x20registry\x20JSON:\x20','updatedAt','Service\x20manifest\x20validation\x20failed:\x0a','$.services[','].manifest','command','145EMtzFe','string','homeDirName','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','slice','length','10298080QBdyiA','invalid','isArray','986USYEan','join','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','target','source','manifests','schemaVersion','warnings','service','services\x20must\x20be\x20an\x20array','map','parse','startsWith','risk','Local\x20service\x20not\x20found:\x20','flatMap','registryIndex','digest','553216QaMKio','errors','file','empty','homeDir','40932TfdtBh','object','description','64Mdpaci','3042486ORvblW','cliPath','Invalid\x20service\x20manifest\x20JSON:\x20','registry','commandCount','missing','toISOString','CliError','reduce','push','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','4337494ipJWBv','validation','normalizedManifest','trim','message','localeCompare','find','splice','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','15rrqmOJ','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','bff\x20target\x20requires\x20functionName.','Remove\x20or\x20migrate\x20','Cannot\x20write\x20service\x20registry:\x20','now','manifest','Service\x20manifest\x20file\x20not\x20found:\x20','filePath','code','report','stringify','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','utf8','path','commands','215328DPHvhc','kind','services','service.json','version','hex','serviceCode'];a42_0x2382=function(){return _0xb859c7;};return a42_0x2382();}(function(_0x9b503d,_0x4776a8){const _0x5cc45f=a42_0x28a4,_0x34f7f2=_0x9b503d();while(!![]){try{const _0x547dce=-parseInt(_0x5cc45f(0x1fb))/0x1*(parseInt(_0x5cc45f(0x204))/0x2)+parseInt(_0x5cc45f(0x1ed))/0x3+-parseInt(_0x5cc45f(0x216))/0x4*(-parseInt(_0x5cc45f(0x1dd))/0x5)+-parseInt(_0x5cc45f(0x21f))/0x6+-parseInt(_0x5cc45f(0x1d4))/0x7+parseInt(_0x5cc45f(0x21e))/0x8*(parseInt(_0x5cc45f(0x21b))/0x9)+parseInt(_0x5cc45f(0x201))/0xa;if(_0x547dce===_0x4776a8)break;else _0x34f7f2['push'](_0x34f7f2['shift']());}catch(_0x324a7a){_0x34f7f2['push'](_0x34f7f2['shift']());}}}(a42_0x2382,0x56970));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a42_0x30ec34(0x1f0);export function getServiceRegistryPath(_0x2a65d0={}){const _0x101fa3=a42_0x30ec34;return resolve(_0x2a65d0[_0x101fa3(0x21a)]??homedir(),PRODUCT_CONFIG[_0x101fa3(0x1fd)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x4b15f6={}){const _0x4222b5=a42_0x30ec34,_0x9433eb=getServiceRegistryPath(_0x4b15f6);if(!existsSync(_0x9433eb))return emptyServiceRegistry();try{const _0x422921=readFileSync(_0x9433eb,_0x4222b5(0x1ea));if(!_0x422921[_0x4222b5(0x1d7)]())return emptyServiceRegistry();const _0xb45b32=JSON[_0x4222b5(0x20f)](_0x422921);if(_0xb45b32['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x4222b5(0x1d5)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0xb45b32[_0x4222b5(0x20a)]),_0x4222b5(0x1e0)+_0x9433eb+'.');if(!Array[_0x4222b5(0x203)](_0xb45b32['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xb45b32[_0x4222b5(0x1f6)],'services':_0xb45b32[_0x4222b5(0x1ef)]};}catch(_0xa081a7){if(_0xa081a7 instanceof Error&&_0xa081a7['name']===_0x4222b5(0x226))throw _0xa081a7;throw CliErrors['validation'](_0x4222b5(0x1f5)+_0x9433eb,_0x4222b5(0x1de));}}export function writeServiceRegistry(_0x2de49e,_0x1b6e87={}){const _0x3866e3=a42_0x30ec34,_0x171746=getServiceRegistryPath(_0x1b6e87),_0x2a0ca4=dirname(_0x171746);!existsSync(_0x2a0ca4)&&mkdirSync(_0x2a0ca4,{'recursive':!![]});const _0x414075=_0x171746+'.tmp';try{writeFileSync(_0x414075,JSON['stringify'](_0x2de49e,null,0x2)+'\x0a',{'encoding':_0x3866e3(0x1ea),'mode':0x180}),renameSync(_0x414075,_0x171746);}catch(_0x24a31e){try{unlinkSync(_0x414075);}catch{}if(_0x24a31e?.[_0x3866e3(0x1e6)]==='ENOENT')throw CliErrors[_0x3866e3(0x1d5)](_0x3866e3(0x1e1)+_0x171746);throw _0x24a31e;}return _0x171746;}export function loadServiceManifestFromFile(_0xca5301){const _0x3ec13d=a42_0x30ec34,_0x16cfd9=resolve(_0xca5301);if(!existsSync(_0x16cfd9))throw CliErrors[_0x3ec13d(0x1d5)](_0x3ec13d(0x1e4)+_0xca5301);let _0x4aa70d;const _0xdce742=readFileSync(_0x16cfd9,_0x3ec13d(0x1ea));try{_0x4aa70d=JSON[_0x3ec13d(0x20f)](_0xdce742);}catch{throw CliErrors['validation'](_0x3ec13d(0x221)+_0xca5301,_0x3ec13d(0x1fe));}const _0x2848e5=sha256(_0xdce742),_0x3bcc83=extractLoadedServiceManifests(_0x4aa70d,_0x2848e5),_0x35c2fe=aggregateValidationReports(_0x3bcc83),_0x35d684=_0x3bcc83[0x0];return{'filePath':_0x16cfd9,'hash':_0x2848e5,'kind':isServiceRegistryLike(_0x4aa70d)?_0x3ec13d(0x222):'manifest','manifest':_0x35d684?.[_0x3ec13d(0x1e3)]??_0x4aa70d,'report':_0x35c2fe,'normalizedManifest':_0x3bcc83[_0x3ec13d(0x200)]===0x1?_0x35d684?.['normalizedManifest']:undefined,'manifests':_0x3bcc83};}export function importServiceManifest(_0x489182,_0x221cbd={}){const _0x18f7ce=a42_0x30ec34,_0x4fd937=loadServiceManifestFromFile(_0x489182);if(!_0x4fd937['report']['ok'])throw CliErrors['validation'](formatValidationFailure(_0x4fd937[_0x18f7ce(0x1e7)]),_0x18f7ce(0x1f4));if(_0x4fd937[_0x18f7ce(0x209)][_0x18f7ce(0x200)]===0x0)throw CliErrors[_0x18f7ce(0x1d5)](_0x18f7ce(0x1d3),_0x18f7ce(0x206));const _0x40b9b2=readServiceRegistry(_0x221cbd),_0x3b47e7=(_0x221cbd[_0x18f7ce(0x1e2)]??(()=>new Date()))()[_0x18f7ce(0x225)](),_0x4f141b=[];let _0xc2e64=0x0,_0x5c282e=0x0;for(const _0x433f57 of _0x4fd937['manifests']){if(!_0x433f57['normalizedManifest'])continue;const _0x564852=_0x433f57[_0x18f7ce(0x1d6)][_0x18f7ce(0x20c)][_0x18f7ce(0x1e6)],_0x3bc0a7={'serviceCode':_0x564852,'version':_0x433f57[_0x18f7ce(0x1d6)][_0x18f7ce(0x1f1)],'importedAt':_0x3b47e7,'source':{'type':_0x18f7ce(0x218),'path':_0x4fd937[_0x18f7ce(0x1e5)],'hash':_0x433f57['sourceHash']},'manifest':_0x433f57[_0x18f7ce(0x1e3)],'normalizedManifest':_0x433f57[_0x18f7ce(0x1d6)]},_0x2a32fe=_0x40b9b2['services']['findIndex'](_0x3fc37a=>_0x3fc37a[_0x18f7ce(0x1f3)]===_0x564852);_0x2a32fe>=0x0?(_0x40b9b2[_0x18f7ce(0x1ef)][_0x2a32fe]=_0x3bc0a7,_0x5c282e++):(_0x40b9b2[_0x18f7ce(0x1ef)][_0x18f7ce(0x228)](_0x3bc0a7),_0xc2e64++),_0x4f141b['push'](_0x3bc0a7);}_0x40b9b2['services']['sort']((_0x4d215d,_0x470ca5)=>_0x4d215d[_0x18f7ce(0x1f3)][_0x18f7ce(0x1d9)](_0x470ca5['serviceCode'])),_0x40b9b2[_0x18f7ce(0x1f6)]=_0x3b47e7;const _0x42c58e=writeServiceRegistry(_0x40b9b2,_0x221cbd);return{'registryPath':_0x42c58e,'entry':_0x4f141b[0x0],'replaced':_0x4f141b[_0x18f7ce(0x200)]===0x1?_0x5c282e===0x1:_0x5c282e>0x0,'entries':_0x4f141b,'imported':_0xc2e64,'updated':_0x5c282e,'serviceCount':_0x40b9b2['services'][_0x18f7ce(0x200)]};}function a42_0x28a4(_0x57c20b,_0x4c6771){_0x57c20b=_0x57c20b-0x1d3;const _0x2382ee=a42_0x2382();let _0x28a4ad=_0x2382ee[_0x57c20b];return _0x28a4ad;}export function exportServiceManifest(_0x31dcee,_0x8e10d3,_0x1d692c={}){const _0x2d6641=a42_0x30ec34,_0x36402e=getServiceRegistryPath(_0x1d692c),_0x200b50=getLocalServiceEntry(_0x31dcee,_0x1d692c);if(!_0x200b50)throw CliErrors[_0x2d6641(0x1d5)](_0x2d6641(0x212)+_0x31dcee,_0x2d6641(0x1dc));const _0x348a3c=resolve(_0x8e10d3),_0x39af43=dirname(_0x348a3c);return!existsSync(_0x39af43)&&mkdirSync(_0x39af43,{'recursive':!![]}),writeFileSync(_0x348a3c,JSON[_0x2d6641(0x1e8)](_0x200b50['manifest'],null,0x2)+'\x0a',{'encoding':_0x2d6641(0x1ea),'mode':0x180}),{'registryPath':_0x36402e,'filePath':_0x348a3c,'entry':_0x200b50};}export function removeServiceManifest(_0x112785,_0x4b2ac3={}){const _0x37641e=a42_0x30ec34,_0x2f7539=readServiceRegistry(_0x4b2ac3),_0x286539=_0x112785[_0x37641e(0x1d7)](),_0x12ce62=_0x2f7539[_0x37641e(0x1ef)]['findIndex'](_0x50e63d=>_0x50e63d[_0x37641e(0x1f3)]===_0x286539);if(_0x12ce62<0x0)throw CliErrors[_0x37641e(0x1d5)](_0x37641e(0x212)+_0x286539,_0x37641e(0x1dc));const [_0x5bd4e4]=_0x2f7539['services'][_0x37641e(0x1db)](_0x12ce62,0x1),_0x10c808=(_0x4b2ac3[_0x37641e(0x1e2)]??(()=>new Date()))()[_0x37641e(0x225)]();_0x2f7539['updatedAt']=_0x10c808;const _0x695136=writeServiceRegistry(_0x2f7539,_0x4b2ac3);return{'registryPath':_0x695136,'entry':_0x5bd4e4,'serviceCount':_0x2f7539[_0x37641e(0x1ef)][_0x37641e(0x200)]};}export function listLocalServices(_0x343803={}){const _0x4652ab=a42_0x30ec34;return readServiceRegistry(_0x343803)[_0x4652ab(0x1ef)];}export function getLocalServiceEntry(_0x4c127b,_0x5c8433={}){const _0x502647=a42_0x30ec34;return readServiceRegistry(_0x5c8433)['services'][_0x502647(0x1da)](_0xad4d56=>_0xad4d56['serviceCode']===_0x4c127b[_0x502647(0x1d7)]());}export function listLocalServiceTrees(_0xe92af1={}){const _0x2c1138=a42_0x30ec34;return readServiceRegistry(_0xe92af1)[_0x2c1138(0x1ef)]['map'](_0x3763ee=>_0x3763ee[_0x2c1138(0x1d6)]);}export function inspectServiceRegistry(_0x4e3884={}){const _0x167f54=a42_0x30ec34,_0x1e6f94=getServiceRegistryPath(_0x4e3884);if(!existsSync(_0x1e6f94))return emptyServiceRegistryInspection(_0x1e6f94,_0x167f54(0x224),![]);try{const _0x536aaa=readFileSync(_0x1e6f94,_0x167f54(0x1ea));if(!_0x536aaa[_0x167f54(0x1d7)]())return emptyServiceRegistryInspection(_0x1e6f94,_0x167f54(0x219),!![]);const _0x1b084c=JSON['parse'](_0x536aaa);if(_0x1b084c[_0x167f54(0x20a)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x1e6f94,_0x167f54(0x202),!![]),'schemaVersion':_0x1b084c[_0x167f54(0x20a)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x1b084c[_0x167f54(0x20a)])};if(!Array[_0x167f54(0x203)](_0x1b084c[_0x167f54(0x1ef)]))return{...emptyServiceRegistryInspection(_0x1e6f94,_0x167f54(0x202),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1b084c[_0x167f54(0x1f6)],'message':_0x167f54(0x20d)};const _0x5f5943=_0x1b084c[_0x167f54(0x1ef)][_0x167f54(0x20e)](summarizeLocalServiceEntry);return{'registryPath':_0x1e6f94,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1b084c[_0x167f54(0x1f6)],'serviceCount':_0x5f5943[_0x167f54(0x200)],'commandCount':_0x5f5943[_0x167f54(0x227)]((_0x377857,_0x254030)=>_0x377857+_0x254030[_0x167f54(0x223)],0x0),'services':_0x5f5943};}catch(_0x3a2c6c){return{...emptyServiceRegistryInspection(_0x1e6f94,_0x167f54(0x202),!![]),'message':_0x3a2c6c instanceof Error?_0x3a2c6c[_0x167f54(0x1d8)]:String(_0x3a2c6c)};}}export function formatValidationFailure(_0x3357df){const _0x1920de=a42_0x30ec34,_0x2271fc=_0x3357df[_0x1920de(0x217)][_0x1920de(0x20e)](_0x5680fc=>_0x5680fc[_0x1920de(0x1eb)]+':\x20'+_0x5680fc[_0x1920de(0x1d8)]);return _0x1920de(0x1f7)+_0x2271fc[_0x1920de(0x205)]('\x0a');}function extractLoadedServiceManifests(_0x2e49a0,_0x4f2e01){const _0x13f878=a42_0x30ec34;if(!isServiceRegistryLike(_0x2e49a0)){const _0x11d196=_0x2e49a0,{manifest:_0x4a37b8,errors:_0x590449}=adaptServiceTreeManifestForLegacyFramework(_0x11d196),_0x1a0bed=validateServiceTreeManifest(_0x4a37b8),_0x2695ee=mergeValidationErrors(_0x1a0bed,_0x590449);return[{'manifest':_0x11d196,'report':_0x2695ee,'normalizedManifest':_0x2695ee['ok']?normalizeServiceTreeManifest(_0x4a37b8):undefined,'sourceHash':_0x4f2e01}];}return _0x2e49a0[_0x13f878(0x1ef)]['map']((_0x3c52d1,_0x1b5344)=>{const _0x1ea4b9=_0x13f878,_0x1d506e=isObjectRecord(_0x3c52d1)?_0x3c52d1[_0x1ea4b9(0x1e3)]:undefined,{manifest:_0x62cb04,errors:_0x450378}=adaptServiceTreeManifestForLegacyFramework(_0x1d506e),_0x1c50a8=validateServiceTreeManifest(_0x62cb04),_0x589a6c=mergeValidationErrors(_0x1c50a8,_0x450378),_0x2828fe=isObjectRecord(_0x3c52d1)&&typeof _0x3c52d1['serviceCode']===_0x1ea4b9(0x1fc)?_0x3c52d1[_0x1ea4b9(0x1f3)]:undefined;return{'manifest':_0x1d506e,'report':_0x589a6c,'normalizedManifest':_0x589a6c['ok']?normalizeServiceTreeManifest(_0x62cb04):undefined,'sourceHash':sha256(JSON[_0x1ea4b9(0x1e8)](_0x1d506e,null,0x2)+'\x0a'),'registryIndex':_0x1b5344,'registryServiceCode':_0x2828fe};});}function mergeValidationErrors(_0x5109c3,_0xff91fa){const _0x28b25a=a42_0x30ec34,_0x3dd6b7=_0x5109c3[_0x28b25a(0x217)]['map'](_0x586641=>_0x586641[_0x28b25a(0x1d8)]===_0x28b25a(0x1e9)?{..._0x586641,'message':_0x28b25a(0x1df)}:_0x586641),_0x12a70b=[..._0xff91fa,..._0x3dd6b7];return{'ok':_0x12a70b[_0x28b25a(0x200)]===0x0,'errors':_0x12a70b,'warnings':_0x5109c3[_0x28b25a(0x20b)]};}function aggregateValidationReports(_0x1cc79f){const _0x4f293b=a42_0x30ec34,_0x40667f=_0x1cc79f[_0x4f293b(0x213)](_0x3ce43c=>_0x3ce43c[_0x4f293b(0x214)]===undefined?_0x3ce43c[_0x4f293b(0x1e7)][_0x4f293b(0x217)]:_0x3ce43c[_0x4f293b(0x1e7)]['errors'][_0x4f293b(0x20e)](_0xca913a=>({..._0xca913a,'path':prefixRegistryIssuePath(_0x3ce43c[_0x4f293b(0x214)],_0xca913a['path'])}))),_0x1fb67a=_0x1cc79f[_0x4f293b(0x213)](_0x50ef88=>_0x50ef88[_0x4f293b(0x214)]===undefined?_0x50ef88[_0x4f293b(0x1e7)][_0x4f293b(0x20b)]:_0x50ef88['report'][_0x4f293b(0x20b)][_0x4f293b(0x20e)](_0x3c510b=>({..._0x3c510b,'path':prefixRegistryIssuePath(_0x50ef88['registryIndex'],_0x3c510b[_0x4f293b(0x1eb)])})));return{'ok':_0x40667f['length']===0x0,'errors':_0x40667f,'warnings':_0x1fb67a};}function prefixRegistryIssuePath(_0x263f62,_0x3e272e){const _0x560be6=a42_0x30ec34;if(_0x3e272e==='$')return _0x560be6(0x1f8)+_0x263f62+_0x560be6(0x1f9);if(_0x3e272e[_0x560be6(0x210)]('$.'))return _0x560be6(0x1f8)+_0x263f62+_0x560be6(0x1f9)+_0x3e272e[_0x560be6(0x1ff)](0x1);if(_0x3e272e[_0x560be6(0x210)]('$['))return _0x560be6(0x1f8)+_0x263f62+_0x560be6(0x1f9)+_0x3e272e[_0x560be6(0x1ff)](0x1);return _0x560be6(0x1f8)+_0x263f62+'].manifest.'+_0x3e272e;}function isServiceRegistryLike(_0x476b91){const _0x1cf82b=a42_0x30ec34;return isObjectRecord(_0x476b91)&&_0x476b91[_0x1cf82b(0x20a)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x476b91[_0x1cf82b(0x1ef)]);}function isObjectRecord(_0x5adb4f){const _0x139d66=a42_0x30ec34;return Boolean(_0x5adb4f)&&typeof _0x5adb4f===_0x139d66(0x21c)&&!Array[_0x139d66(0x203)](_0x5adb4f);}function emptyServiceRegistryInspection(_0x4a1f05,_0xc7e236,_0x296b3a){return{'registryPath':_0x4a1f05,'exists':_0x296b3a,'status':_0xc7e236,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x499061){const _0x51492f=a42_0x30ec34,_0x5b29cb=_0x499061[_0x51492f(0x1d6)],_0x15cb0d=_0x5b29cb[_0x51492f(0x1ec)]['map'](_0x4de657=>({'path':_0x4de657[_0x51492f(0x220)],'description':_0x4de657['description'],'risk':_0x4de657[_0x51492f(0x211)],'targetKind':_0x4de657[_0x51492f(0x207)][_0x51492f(0x1ee)],'targetCommand':_0x4de657[_0x51492f(0x207)][_0x51492f(0x1fa)]}));return{'serviceCode':_0x499061[_0x51492f(0x1f3)],'name':_0x5b29cb['service']['name'],'description':_0x5b29cb[_0x51492f(0x20c)][_0x51492f(0x21d)],'version':_0x499061[_0x51492f(0x1f1)],'importedAt':_0x499061['importedAt'],'source':_0x499061[_0x51492f(0x208)],'commandCount':_0x15cb0d[_0x51492f(0x200)],'commands':_0x15cb0d};}function sha256(_0x549cd9){const _0x457bdf=a42_0x30ec34;return createHash('sha256')['update'](_0x549cd9)[_0x457bdf(0x215)](_0x457bdf(0x1f2));}
@@ -1 +1 @@
1
- const a43_0x5780a9=a43_0x25fa;(function(_0x301ab3,_0x4516f8){const _0x261d40=a43_0x25fa,_0x57414c=_0x301ab3();while(!![]){try{const _0x3c3d5e=parseInt(_0x261d40(0x111))/0x1+-parseInt(_0x261d40(0x11b))/0x2*(parseInt(_0x261d40(0x109))/0x3)+parseInt(_0x261d40(0x117))/0x4+-parseInt(_0x261d40(0x126))/0x5*(parseInt(_0x261d40(0x11e))/0x6)+parseInt(_0x261d40(0x104))/0x7+-parseInt(_0x261d40(0x114))/0x8+parseInt(_0x261d40(0x10e))/0x9;if(_0x3c3d5e===_0x4516f8)break;else _0x57414c['push'](_0x57414c['shift']());}catch(_0x318aa5){_0x57414c['push'](_0x57414c['shift']());}}}(a43_0x5193,0xccb0f));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';function a43_0x25fa(_0x425511,_0x48c39f){_0x425511=_0x425511-0x104;const _0x519308=a43_0x5193();let _0x25fa96=_0x519308[_0x425511];return _0x25fa96;}import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';function a43_0x5193(){const _0x2270f7=['files','1291599mCbAJp','isDirectory','WRITE','1488739frzQOB','map','skill','1840408cSBUSw','Refusing\x20to\x20overwrite\x20symlink:\x20','bool','1315688bJCsas','target','validation','utf8','1207538HpgaNl','skillDir','Created\x20local\x20Skill\x20draft\x20','6NXzGNA','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','str','isSymbolicLink','skillName','rendered','path','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','3464155NKJYCI','name','write','2827258BkVTeI','content','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','create','创建本地自包含的运行态\x20Skill\x20草稿','3SYLFyh','trim','type','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.'];a43_0x5193=function(){return _0x2270f7;};return a43_0x5193();}import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a43_0x5780a9(0x113),'command':a43_0x5780a9(0x107),'description':a43_0x5780a9(0x108),'risk':a43_0x5780a9(0x128),'confirmationDescription':'将在本地生成一个自包含的\x20Skill\x20草稿目录;使用\x20--force\x20时会覆盖目录中同名的模板文件。确认界面不会展示本地路径。','requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x5c5daa){const _0x12b1c8=a43_0x5780a9,_0x4664dc=buildSkillCreatePlan(_0x5c5daa['str'](_0x12b1c8(0x127)),_0x5c5daa[_0x12b1c8(0x120)]('type'),_0x5c5daa['str']('target'));return{'method':_0x12b1c8(0x110),'url':_0x4664dc[_0x12b1c8(0x11c)],'body':{'skillName':_0x4664dc[_0x12b1c8(0x123)][_0x12b1c8(0x122)],'type':_0x4664dc[_0x12b1c8(0x123)][_0x12b1c8(0x10b)],'selfContained':!![],'files':_0x4664dc[_0x12b1c8(0x123)][_0x12b1c8(0x10d)][_0x12b1c8(0x112)](_0x2781f4=>_0x2781f4[_0x12b1c8(0x124)])},'description':_0x12b1c8(0x106)};},async 'execute'(_0x3a96d1){const _0x2f940b=a43_0x5780a9,_0x5df894=buildSkillCreatePlan(_0x3a96d1['str'](_0x2f940b(0x127)),_0x3a96d1['str'](_0x2f940b(0x10b)),_0x3a96d1[_0x2f940b(0x120)](_0x2f940b(0x118)));return writeSkillDraft(_0x5df894,_0x3a96d1[_0x2f940b(0x116)]('force')),{'ok':!![],'data':{'skillName':_0x5df894['rendered'][_0x2f940b(0x122)],'type':_0x5df894['rendered'][_0x2f940b(0x10b)],'dir':_0x5df894['skillDir'],'files':_0x5df894[_0x2f940b(0x123)][_0x2f940b(0x10d)]['map'](_0xaec65a=>_0xaec65a[_0x2f940b(0x124)])},'message':_0x2f940b(0x11d)+_0x5df894[_0x2f940b(0x123)]['skillName']};}};function buildSkillCreatePlan(_0x52fc21,_0x30997c,_0x391b5d){const _0x160939=a43_0x5780a9,_0x4bfd3c=_0x30997c[_0x160939(0x10a)](),_0x271d1b=renderSkillTemplate({'skillName':_0x52fc21,'type':_0x4bfd3c});!_0x4bfd3c&&writeCliSideChannelLine(_0x160939(0x10c));const _0x5d2872=resolve(normalizeSkillTarget(_0x391b5d));return{'rendered':_0x271d1b,'targetRoot':_0x5d2872,'skillDir':resolve(_0x5d2872,_0x271d1b[_0x160939(0x122)])};}function normalizeSkillTarget(_0x30336a){const _0xf7a638=a43_0x5780a9;return(_0x30336a||DEFAULT_SKILL_TARGET)[_0xf7a638(0x10a)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0xe54bbe,_0x3846dc){const _0x4bce45=a43_0x5780a9;if(existsSync(_0xe54bbe[_0x4bce45(0x11c)])){const _0x21d2ec=lstatSync(_0xe54bbe[_0x4bce45(0x11c)]);if(!_0x21d2ec[_0x4bce45(0x10f)]()||_0x21d2ec[_0x4bce45(0x121)]())throw CliErrors[_0x4bce45(0x119)](_0x4bce45(0x11f)+_0xe54bbe['skillDir']);if(!_0x3846dc)throw CliErrors[_0x4bce45(0x119)]('Skill\x20directory\x20already\x20exists:\x20'+_0xe54bbe[_0x4bce45(0x11c)],_0x4bce45(0x125));}for(const _0xa9b650 of _0xe54bbe[_0x4bce45(0x123)][_0x4bce45(0x10d)]){const _0x3b7831=resolve(_0xe54bbe[_0x4bce45(0x11c)],_0xa9b650['path']),_0xefb4ab=dirname(_0x3b7831);mkdirSync(_0xefb4ab,{'recursive':!![]});if(existsSync(_0x3b7831)&&lstatSync(_0x3b7831)[_0x4bce45(0x121)]())throw CliErrors['validation'](_0x4bce45(0x115)+_0x3b7831);writeFileSync(_0x3b7831,_0xa9b650[_0x4bce45(0x105)],_0x4bce45(0x11a));}}
1
+ const a43_0x2a2004=a43_0x332f;function a43_0x5339(){const _0x2e16bb=['Created\x20local\x20Skill\x20draft\x20','path','create','map','1197942WFhSOg','type','Refusing\x20to\x20overwrite\x20symlink:\x20','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','name','validation','force','6702372dQUvaP','content','target','32935oAAisH','556UxWIVz','608560qdHxqT','rendered','files','str','Skill\x20directory\x20already\x20exists:\x20','414857QnLwch','isDirectory','skillDir','7135345hmriUN','trim','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','write','bool','891660nOXgyU','2lMlLmM','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','创建本地自包含的运行态\x20Skill\x20草稿','将在本地生成一个自包含的\x20Skill\x20草稿目录;使用\x20--force\x20时会覆盖目录中同名的模板文件。确认界面不会展示本地路径。','skillName','isSymbolicLink','WRITE'];a43_0x5339=function(){return _0x2e16bb;};return a43_0x5339();}(function(_0x38eea1,_0x7ff744){const _0x1e24a5=a43_0x332f,_0x26340e=_0x38eea1();while(!![]){try{const _0x5c1647=-parseInt(_0x1e24a5(0x1d6))/0x1+parseInt(_0x1e24a5(0x1ba))/0x2*(parseInt(_0x1e24a5(0x1c5))/0x3)+parseInt(_0x1e24a5(0x1d0))/0x4*(parseInt(_0x1e24a5(0x1cf))/0x5)+parseInt(_0x1e24a5(0x1b9))/0x6+-parseInt(_0x1e24a5(0x1d9))/0x7+-parseInt(_0x1e24a5(0x1d1))/0x8+parseInt(_0x1e24a5(0x1cc))/0x9;if(_0x5c1647===_0x7ff744)break;else _0x26340e['push'](_0x26340e['shift']());}catch(_0x252f9e){_0x26340e['push'](_0x26340e['shift']());}}}(a43_0x5339,0xaa66b));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';function a43_0x332f(_0x4e4525,_0x1b06ab){_0x4e4525=_0x4e4525-0x1b8;const _0x53391c=a43_0x5339();let _0x332f67=_0x53391c[_0x4e4525];return _0x332f67;}import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':'skill','command':a43_0x2a2004(0x1c3),'description':a43_0x2a2004(0x1bc),'risk':a43_0x2a2004(0x1dc),'confirmationDescription':a43_0x2a2004(0x1bd),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x3808af){const _0x41cc61=a43_0x2a2004,_0x1fd77b=buildSkillCreatePlan(_0x3808af[_0x41cc61(0x1d4)](_0x41cc61(0x1c9)),_0x3808af[_0x41cc61(0x1d4)]('type'),_0x3808af['str'](_0x41cc61(0x1ce)));return{'method':_0x41cc61(0x1c0),'url':_0x1fd77b[_0x41cc61(0x1d8)],'body':{'skillName':_0x1fd77b[_0x41cc61(0x1d2)][_0x41cc61(0x1be)],'type':_0x1fd77b[_0x41cc61(0x1d2)]['type'],'selfContained':!![],'files':_0x1fd77b[_0x41cc61(0x1d2)][_0x41cc61(0x1d3)][_0x41cc61(0x1c4)](_0x2087d9=>_0x2087d9[_0x41cc61(0x1c2)])},'description':_0x41cc61(0x1bb)};},async 'execute'(_0x6ddd26){const _0x100eda=a43_0x2a2004,_0x58149c=buildSkillCreatePlan(_0x6ddd26[_0x100eda(0x1d4)]('name'),_0x6ddd26['str'](_0x100eda(0x1c6)),_0x6ddd26[_0x100eda(0x1d4)](_0x100eda(0x1ce)));return writeSkillDraft(_0x58149c,_0x6ddd26[_0x100eda(0x1b8)](_0x100eda(0x1cb))),{'ok':!![],'data':{'skillName':_0x58149c[_0x100eda(0x1d2)][_0x100eda(0x1be)],'type':_0x58149c[_0x100eda(0x1d2)][_0x100eda(0x1c6)],'dir':_0x58149c[_0x100eda(0x1d8)],'files':_0x58149c[_0x100eda(0x1d2)][_0x100eda(0x1d3)]['map'](_0x42e147=>_0x42e147['path'])},'message':_0x100eda(0x1c1)+_0x58149c['rendered'][_0x100eda(0x1be)]};}};function buildSkillCreatePlan(_0x4d0e67,_0x7f31ec,_0x111b25){const _0x4c1f45=a43_0x2a2004,_0x4cd2d3=_0x7f31ec[_0x4c1f45(0x1da)](),_0x1565d8=renderSkillTemplate({'skillName':_0x4d0e67,'type':_0x4cd2d3});!_0x4cd2d3&&writeCliSideChannelLine(_0x4c1f45(0x1db));const _0x2aa4ff=resolve(normalizeSkillTarget(_0x111b25));return{'rendered':_0x1565d8,'targetRoot':_0x2aa4ff,'skillDir':resolve(_0x2aa4ff,_0x1565d8[_0x4c1f45(0x1be)])};}function normalizeSkillTarget(_0x354d11){const _0x35ff0a=a43_0x2a2004;return(_0x354d11||DEFAULT_SKILL_TARGET)[_0x35ff0a(0x1da)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x157f99,_0x336e83){const _0x6ba652=a43_0x2a2004;if(existsSync(_0x157f99[_0x6ba652(0x1d8)])){const _0x2bb63c=lstatSync(_0x157f99['skillDir']);if(!_0x2bb63c[_0x6ba652(0x1d7)]()||_0x2bb63c[_0x6ba652(0x1bf)]())throw CliErrors[_0x6ba652(0x1ca)](_0x6ba652(0x1c8)+_0x157f99[_0x6ba652(0x1d8)]);if(!_0x336e83)throw CliErrors[_0x6ba652(0x1ca)](_0x6ba652(0x1d5)+_0x157f99[_0x6ba652(0x1d8)],'Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.');}for(const _0x284d5a of _0x157f99[_0x6ba652(0x1d2)][_0x6ba652(0x1d3)]){const _0x14fe2f=resolve(_0x157f99[_0x6ba652(0x1d8)],_0x284d5a['path']),_0x1038f5=dirname(_0x14fe2f);mkdirSync(_0x1038f5,{'recursive':!![]});if(existsSync(_0x14fe2f)&&lstatSync(_0x14fe2f)[_0x6ba652(0x1bf)]())throw CliErrors[_0x6ba652(0x1ca)](_0x6ba652(0x1c7)+_0x14fe2f);writeFileSync(_0x14fe2f,_0x284d5a[_0x6ba652(0x1cd)],'utf8');}}
@@ -1 +1 @@
1
- const a44_0x35de59=a44_0xcbda;function a44_0x5155(){const _0x1ed8ce=['Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','\x20is\x20unchanged.','source-fingerprint','action','29379YTrDCt','Created','skillCode','diagram-push','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','created','scope','6pZoYRi',';\x20next\x20write\x20expects\x20revision\x20','test','12EgCcIE','\x20Skill\x20diagram\x20for\x20','validation','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','expected-diagram-revision','diagram-validate','found','9yfYTCV','expectedDiagramRevision','str','appCode','5243768clesjY','diagram-show','84wYFQsr','version','Skill\x20diagram\x20validation\x20passed\x20for\x20','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','558242sEXvpD','skill','num','company','28370tTIGCM','diagram-file','Updated','216PIwiBM','skill-code','trim','328653uQulRP','isInteger','1929BnMfUs','33AKuPtD','read','370970EqDqPQ','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version'];a44_0x5155=function(){return _0x1ed8ce;};return a44_0x5155();}(function(_0x1506f9,_0x2e23ae){const _0x3abd54=a44_0xcbda,_0x28bed5=_0x1506f9();while(!![]){try{const _0x226ffd=parseInt(_0x3abd54(0x1c5))/0x1+-parseInt(_0x3abd54(0x1b3))/0x2*(parseInt(_0x3abd54(0x1d1))/0x3)+parseInt(_0x3abd54(0x1c0))/0x4*(-parseInt(_0x3abd54(0x1c9))/0x5)+-parseInt(_0x3abd54(0x1b0))/0x6*(parseInt(_0x3abd54(0x1db))/0x7)+-parseInt(_0x3abd54(0x1be))/0x8*(parseInt(_0x3abd54(0x1ba))/0x9)+-parseInt(_0x3abd54(0x1d4))/0xa*(-parseInt(_0x3abd54(0x1d2))/0xb)+-parseInt(_0x3abd54(0x1cc))/0xc*(-parseInt(_0x3abd54(0x1cf))/0xd);if(_0x226ffd===_0x2e23ae)break;else _0x28bed5['push'](_0x28bed5['shift']());}catch(_0x3a9bee){_0x28bed5['push'](_0x28bed5['shift']());}}}(a44_0x5155,0x53797));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(_0x1f8b7f){const _0x14fd19=a44_0xcbda,_0x72439b=_0x1f8b7f[_0x14fd19(0x1bc)](_0x14fd19(0x1cd))[_0x14fd19(0x1ce)](),_0x2992b7=_0x1f8b7f[_0x14fd19(0x1bc)](_0x14fd19(0x1c1))[_0x14fd19(0x1ce)](),_0x323577=_0x1f8b7f[_0x14fd19(0x1bc)](_0x14fd19(0x1af));if(!_0x72439b||!_0x2992b7||_0x323577!=='personal'&&_0x323577!==_0x14fd19(0x1c8))throw CliErrors[_0x14fd19(0x1b5)](_0x14fd19(0x1b6));return{'skillCode':_0x72439b,'version':_0x2992b7,'scope':_0x323577};}function a44_0xcbda(_0x4b26a3,_0x2061ad){_0x4b26a3=_0x4b26a3-0x1ad;const _0x5155dd=a44_0x5155();let _0xcbda2f=_0x5155dd[_0x4b26a3];return _0xcbda2f;}async function readDiagramWriteInput(_0x3ce15a){const _0x2b73ef=a44_0xcbda,_0x5d3a9a=_0x3ce15a[_0x2b73ef(0x1c7)](_0x2b73ef(0x1b7)),_0x1ea05d=_0x3ce15a[_0x2b73ef(0x1bc)](_0x2b73ef(0x1d9))[_0x2b73ef(0x1ce)]();if(!Number[_0x2b73ef(0x1d0)](_0x5d3a9a)||_0x5d3a9a<0x0)throw CliErrors[_0x2b73ef(0x1b5)](_0x2b73ef(0x1ad));if(!/^sha256:[0-9a-f]{64}$/[_0x2b73ef(0x1b2)](_0x1ea05d))throw CliErrors[_0x2b73ef(0x1b5)](_0x2b73ef(0x1c3));return{'expectedDiagramRevision':_0x5d3a9a,'sourceFingerprint':_0x1ea05d,'diagram':await readRequiredSkillDiagram(_0x3ce15a[_0x2b73ef(0x1bc)](_0x2b73ef(0x1ca)))};}export const diagramValidateCommand={'service':a44_0x35de59(0x1c6),'command':a44_0x35de59(0x1b8),'description':a44_0x35de59(0x1d5),'risk':'read','flags':WRITE_FLAGS,async 'execute'(_0x3a12ec){const _0x41282c=a44_0x35de59,_0x52ded0=readDiagramTarget(_0x3a12ec),_0xc13c5d=await validateRuntimeSkillVersionDiagram(_0x3a12ec['appCode'],_0x52ded0[_0x41282c(0x1dd)],_0x52ded0[_0x41282c(0x1c1)],_0x52ded0['scope'],await readDiagramWriteInput(_0x3a12ec));return{'ok':!![],'data':_0xc13c5d,'message':_0x41282c(0x1c2)+_0x52ded0[_0x41282c(0x1dd)]+'@'+_0x52ded0[_0x41282c(0x1c1)]+'.'};}};export const diagramPushCommand={'service':a44_0x35de59(0x1c6),'command':a44_0x35de59(0x1de),'description':a44_0x35de59(0x1c4),'risk':'write','confirmationDescription':'将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','flags':WRITE_FLAGS,async 'execute'(_0x30a270){const _0x48b848=a44_0x35de59,_0x390141=readDiagramTarget(_0x30a270),_0x3a7397=await putRuntimeSkillVersionDiagram(_0x30a270[_0x48b848(0x1bd)],_0x390141[_0x48b848(0x1dd)],_0x390141['version'],_0x390141[_0x48b848(0x1af)],await readDiagramWriteInput(_0x30a270));return{'ok':!![],'data':_0x3a7397,'message':_0x3a7397[_0x48b848(0x1da)]==='unchanged'?'Skill\x20diagram\x20for\x20'+_0x390141[_0x48b848(0x1dd)]+'@'+_0x390141[_0x48b848(0x1c1)]+_0x48b848(0x1d8):(_0x3a7397['action']===_0x48b848(0x1ae)?_0x48b848(0x1dc):_0x48b848(0x1cb))+_0x48b848(0x1b4)+_0x390141['skillCode']+'@'+_0x390141[_0x48b848(0x1c1)]+'.'};}};export const diagramShowCommand={'service':a44_0x35de59(0x1c6),'command':a44_0x35de59(0x1bf),'description':a44_0x35de59(0x1d6),'risk':a44_0x35de59(0x1d3),'flags':TARGET_FLAGS,async 'execute'(_0x5418bc){const _0x24a892=a44_0x35de59,_0x11640b=readDiagramTarget(_0x5418bc),_0x327093=await getRuntimeSkillVersionDiagram(_0x5418bc[_0x24a892(0x1bd)],_0x11640b['skillCode'],_0x11640b[_0x24a892(0x1c1)],_0x11640b[_0x24a892(0x1af)]);return{'ok':!![],'data':_0x327093,'message':_0x327093[_0x24a892(0x1b9)]?'Found\x20Skill\x20diagram\x20for\x20'+_0x11640b['skillCode']+'@'+_0x11640b['version']+_0x24a892(0x1b1)+_0x327093[_0x24a892(0x1bb)]+'.':_0x24a892(0x1d7)+_0x11640b[_0x24a892(0x1dd)]+'@'+_0x11640b[_0x24a892(0x1c1)]+';\x20first\x20write\x20expects\x20revision\x20'+_0x327093[_0x24a892(0x1bb)]+'.'};}};
1
+ const a44_0x12fdce=a44_0xf3d9;(function(_0x1292fd,_0x20fa2c){const _0x42c85f=a44_0xf3d9,_0x2783c8=_0x1292fd();while(!![]){try{const _0x45846e=-parseInt(_0x42c85f(0x13b))/0x1*(parseInt(_0x42c85f(0x12c))/0x2)+parseInt(_0x42c85f(0x140))/0x3*(parseInt(_0x42c85f(0x12f))/0x4)+parseInt(_0x42c85f(0x122))/0x5*(-parseInt(_0x42c85f(0x127))/0x6)+parseInt(_0x42c85f(0x11f))/0x7+-parseInt(_0x42c85f(0x13f))/0x8*(-parseInt(_0x42c85f(0x14f))/0x9)+-parseInt(_0x42c85f(0x13c))/0xa*(parseInt(_0x42c85f(0x132))/0xb)+parseInt(_0x42c85f(0x11e))/0xc;if(_0x45846e===_0x20fa2c)break;else _0x2783c8['push'](_0x2783c8['shift']());}catch(_0x5f3cff){_0x2783c8['push'](_0x2783c8['shift']());}}}(a44_0x2e17,0xf24c6));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';function a44_0xf3d9(_0x393bf3,_0x30f0d1){_0x393bf3=_0x393bf3-0x11e;const _0x2e17ec=a44_0x2e17();let _0xf3d97d=_0x2e17ec[_0x393bf3];return _0xf3d97d;}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(_0x5038ef){const _0x5d7c0a=a44_0xf3d9,_0x473700=_0x5038ef[_0x5d7c0a(0x135)](_0x5d7c0a(0x144))[_0x5d7c0a(0x138)](),_0xc15788=_0x5038ef['str'](_0x5d7c0a(0x136))['trim'](),_0x490f1c=_0x5038ef[_0x5d7c0a(0x135)](_0x5d7c0a(0x13d));if(!_0x473700||!_0xc15788||_0x490f1c!==_0x5d7c0a(0x14c)&&_0x490f1c!==_0x5d7c0a(0x12b))throw CliErrors[_0x5d7c0a(0x134)](_0x5d7c0a(0x121));return{'skillCode':_0x473700,'version':_0xc15788,'scope':_0x490f1c};}async function readDiagramWriteInput(_0x55af92){const _0x164d9c=a44_0xf3d9,_0x9fa93e=_0x55af92[_0x164d9c(0x12a)](_0x164d9c(0x14a)),_0x4ec78f=_0x55af92[_0x164d9c(0x135)](_0x164d9c(0x124))['trim']();if(!Number[_0x164d9c(0x14b)](_0x9fa93e)||_0x9fa93e<0x0)throw CliErrors['validation']('--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.');if(!/^sha256:[0-9a-f]{64}$/[_0x164d9c(0x131)](_0x4ec78f))throw CliErrors[_0x164d9c(0x134)](_0x164d9c(0x139));return{'expectedDiagramRevision':_0x9fa93e,'sourceFingerprint':_0x4ec78f,'diagram':await readRequiredSkillDiagram(_0x55af92[_0x164d9c(0x135)](_0x164d9c(0x137)))};}export const diagramValidateCommand={'service':a44_0x12fdce(0x130),'command':'diagram-validate','description':a44_0x12fdce(0x128),'risk':'read','flags':WRITE_FLAGS,async 'execute'(_0xb6eaa4){const _0x163f46=a44_0x12fdce,_0x245545=readDiagramTarget(_0xb6eaa4),_0x5e90f=await validateRuntimeSkillVersionDiagram(_0xb6eaa4[_0x163f46(0x14d)],_0x245545[_0x163f46(0x13a)],_0x245545[_0x163f46(0x136)],_0x245545[_0x163f46(0x13d)],await readDiagramWriteInput(_0xb6eaa4));return{'ok':!![],'data':_0x5e90f,'message':_0x163f46(0x146)+_0x245545[_0x163f46(0x13a)]+'@'+_0x245545['version']+'.'};}};export const diagramPushCommand={'service':a44_0x12fdce(0x130),'command':a44_0x12fdce(0x12e),'description':a44_0x12fdce(0x125),'risk':a44_0x12fdce(0x12d),'confirmationDescription':a44_0x12fdce(0x120),'flags':WRITE_FLAGS,async 'execute'(_0x56c507){const _0x37eb83=a44_0x12fdce,_0x125237=readDiagramTarget(_0x56c507),_0x1a9e61=await putRuntimeSkillVersionDiagram(_0x56c507[_0x37eb83(0x14d)],_0x125237[_0x37eb83(0x13a)],_0x125237['version'],_0x125237['scope'],await readDiagramWriteInput(_0x56c507));return{'ok':!![],'data':_0x1a9e61,'message':_0x1a9e61[_0x37eb83(0x147)]==='unchanged'?_0x37eb83(0x14e)+_0x125237['skillCode']+'@'+_0x125237[_0x37eb83(0x136)]+_0x37eb83(0x145):(_0x1a9e61[_0x37eb83(0x147)]===_0x37eb83(0x133)?_0x37eb83(0x129):_0x37eb83(0x141))+_0x37eb83(0x142)+_0x125237[_0x37eb83(0x13a)]+'@'+_0x125237[_0x37eb83(0x136)]+'.'};}};export const diagramShowCommand={'service':a44_0x12fdce(0x130),'command':a44_0x12fdce(0x149),'description':'Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','risk':a44_0x12fdce(0x148),'flags':TARGET_FLAGS,async 'execute'(_0x3131cd){const _0x3681d8=a44_0x12fdce,_0x27d726=readDiagramTarget(_0x3131cd),_0x45d2c5=await getRuntimeSkillVersionDiagram(_0x3131cd[_0x3681d8(0x14d)],_0x27d726[_0x3681d8(0x13a)],_0x27d726[_0x3681d8(0x136)],_0x27d726['scope']);return{'ok':!![],'data':_0x45d2c5,'message':_0x45d2c5[_0x3681d8(0x126)]?_0x3681d8(0x143)+_0x27d726['skillCode']+'@'+_0x27d726[_0x3681d8(0x136)]+_0x3681d8(0x150)+_0x45d2c5[_0x3681d8(0x123)]+'.':_0x3681d8(0x13e)+_0x27d726['skillCode']+'@'+_0x27d726[_0x3681d8(0x136)]+';\x20first\x20write\x20expects\x20revision\x20'+_0x45d2c5[_0x3681d8(0x123)]+'.'};}};function a44_0x2e17(){const _0x40aa90=['found','6hmeahh','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','Created','num','company','2582eVEXdQ','write','diagram-push','4ZKQjOZ','skill','test','11OUHWnp','created','validation','str','version','diagram-file','trim','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','skillCode','361ZdoLsJ','10479370AgDapt','scope','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','18264CaoAfQ','2159187IyHZkd','Updated','\x20Skill\x20diagram\x20for\x20','Found\x20Skill\x20diagram\x20for\x20','skill-code','\x20is\x20unchanged.','Skill\x20diagram\x20validation\x20passed\x20for\x20','action','read','diagram-show','expected-diagram-revision','isInteger','personal','appCode','Skill\x20diagram\x20for\x20','747ZNzhMb',';\x20next\x20write\x20expects\x20revision\x20','19055376rNRlaK','6582065yuEhCQ','将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','4655095BWycCC','expectedDiagramRevision','source-fingerprint','为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图'];a44_0x2e17=function(){return _0x40aa90;};return a44_0x2e17();}
@@ -1 +1 @@
1
- const a45_0x38002a=a45_0x4014;(function(_0x1e662d,_0x3de983){const _0x577258=a45_0x4014,_0x35e5f5=_0x1e662d();while(!![]){try{const _0x25b596=parseInt(_0x577258(0xd5))/0x1+-parseInt(_0x577258(0xc1))/0x2*(-parseInt(_0x577258(0xc0))/0x3)+-parseInt(_0x577258(0xd0))/0x4+-parseInt(_0x577258(0xc3))/0x5*(parseInt(_0x577258(0xd9))/0x6)+parseInt(_0x577258(0xbf))/0x7*(parseInt(_0x577258(0xc9))/0x8)+-parseInt(_0x577258(0xc7))/0x9*(-parseInt(_0x577258(0xba))/0xa)+-parseInt(_0x577258(0xc2))/0xb*(parseInt(_0x577258(0xb8))/0xc);if(_0x25b596===_0x3de983)break;else _0x35e5f5['push'](_0x35e5f5['shift']());}catch(_0x2e1fea){_0x35e5f5['push'](_0x35e5f5['shift']());}}}(a45_0x5488,0x43cab));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';function a45_0x4014(_0x380a7e,_0x2d0e7a){_0x380a7e=_0x380a7e-0xb6;const _0x5488ef=a45_0x5488();let _0x40144b=_0x5488ef[_0x380a7e];return _0x40144b;}import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':a45_0x38002a(0xbb),'command':a45_0x38002a(0xbc),'description':a45_0x38002a(0xda),'risk':'read','requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x3ce722){return syncRuntimeSkills(_0x3ce722);}};function a45_0x5488(){const _0x38cecf=['includes','2198680IckbrZ','skillRoots','project','personal','\x20company\x20Skill(s).','273843TEGIoM','skipped','force','global','75954kFgHQD','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','updated','code','bool','skillCode','trim','company','created','envName','removed','flatMap','production','1620AoXMhN','scope','41770McxxbV','skill','install','unchanged','map','7jEyLZr','75FYqdim','19538xZhuqk','9603bmCymQ','45Nnovtt','filter','length','push','963UdBeIZ','../../../skills/runtime-skill-sync.js','752992CiKNGD','appCode','all','action','version','str'];a45_0x5488=function(){return _0x38cecf;};return a45_0x5488();}async function syncRuntimeSkills(_0x182896){const _0x36df48=a45_0x38002a,{downloadRuntimeSkillPackage:_0x17eb4e,listRuntimeSkills:_0x511e84}=await import('../../../core/api-client.js'),{linkEffectiveRuntimeSkills:_0x2deff6,materializeRuntimeSkill:_0x36d978,pruneStaleRuntimeSkillCache:_0x1e7726,pruneStaleRuntimeSkillLinks:_0x1c0cb4,resolveRuntimeSkillInstallTarget:_0x587132}=await import(_0x36df48(0xc8)),_0x489cd9=_0x182896[_0x36df48(0xce)](_0x36df48(0xdc)),_0x465bbf=normalizeSyncScopes(_0x182896[_0x36df48(0xce)]('scope')),_0x227efb=_0x182896[_0x36df48(0xe2)]??_0x36df48(0xb7),_0x211e80=_0x182896['accessKey'],_0x22ac36=_0x182896['bool'](_0x36df48(0xd7));if(!_0x211e80)throw CliErrors['authRequired']('Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.');const _0x55b94d=_0x587132(_0x182896[_0x36df48(0xca)],_0x182896[_0x36df48(0xdd)](_0x36df48(0xd2))?'project':_0x36df48(0xd8)),_0x1395c9=_0x587132(_0x182896[_0x36df48(0xca)],_0x55b94d[_0x36df48(0xb9)]===_0x36df48(0xd2)?'global':_0x36df48(0xd2)),_0xfd8988=await Promise[_0x36df48(0xcb)](_0x465bbf['map'](_0x61cb3=>_0x511e84({'appCode':_0x182896[_0x36df48(0xca)],'scope':_0x61cb3,'code':_0x489cd9[_0x36df48(0xdf)]()||undefined}))),_0x3d24a5=_0x465bbf[_0x36df48(0xcf)](_0x36df48(0xd3))?_0xfd8988[_0x36df48(0xb6)]((_0x3da843,_0x290f6a)=>_0x465bbf[_0x290f6a]==='personal'?_0x3da843[_0x36df48(0xd3)]:[]):[],_0x1c0b19=_0x465bbf[_0x36df48(0xcf)](_0x36df48(0xe0))?_0xfd8988[_0x36df48(0xb6)]((_0x20117c,_0x45b7b9)=>_0x465bbf[_0x45b7b9]==='company'?_0x20117c[_0x36df48(0xe0)]:[]):[],_0x10ca14=new Set([..._0x3d24a5['map'](_0x146edb=>_0x146edb[_0x36df48(0xde)]?.[_0x36df48(0xdf)]())[_0x36df48(0xc4)](_0x1fab0f=>Boolean(_0x1fab0f)),..._0x1c0b19[_0x36df48(0xbe)](_0xaf59a4=>_0xaf59a4[_0x36df48(0xde)]?.['trim']())[_0x36df48(0xc4)](_0x326329=>Boolean(_0x326329))]),_0x4ad4d0=_0x489cd9[_0x36df48(0xdf)]()?[_0x489cd9[_0x36df48(0xdf)]()]:undefined,_0x39c5d6=_0x465bbf[_0x36df48(0xc5)]===0x2&&_0x465bbf[_0x36df48(0xcf)]('personal')&&_0x465bbf[_0x36df48(0xcf)](_0x36df48(0xe0)),_0x4eaf26=_0x39c5d6?_0x1c0cb4(_0x55b94d,_0x10ca14,_0x4ad4d0):[],_0x30566e=_0x1e7726({'env':_0x227efb,'accessKey':_0x211e80,'appCode':_0x182896[_0x36df48(0xca)],'activeSkillCodes':_0x10ca14,'pruneSkillCodes':_0x4ad4d0,'scopes':_0x465bbf,'protectedLinkRoots':_0x1395c9[_0x36df48(0xd1)]}),_0x47c41f=[];for(const _0x237c63 of _0x3d24a5){_0x47c41f[_0x36df48(0xc6)](_0x36d978(_0x237c63,'personal',{'env':_0x227efb,'accessKey':_0x211e80,'appCode':_0x182896[_0x36df48(0xca)],'force':_0x22ac36,'packageBytes':await downloadSkillPackage(_0x237c63,_0x36df48(0xd3),_0x182896[_0x36df48(0xca)],_0x17eb4e)}));}for(const _0x4a0144 of _0x1c0b19){_0x47c41f['push'](_0x36d978(_0x4a0144,'company',{'env':_0x227efb,'accessKey':_0x211e80,'appCode':_0x182896['appCode'],'force':_0x22ac36,'packageBytes':await downloadSkillPackage(_0x4a0144,_0x36df48(0xe0),_0x182896['appCode'],_0x17eb4e)}));}const _0x43cccb=_0x2deff6(_0x47c41f,_0x55b94d),_0xc1bd6e=countLinkActions(_0x43cccb);return{'ok':!![],'data':{'appCode':_0x182896[_0x36df48(0xca)],..._0x55b94d[_0x36df48(0xb9)]===_0x36df48(0xd2)?{'installTarget':{'scope':_0x55b94d['scope'],'skillRoots':[..._0x55b94d[_0x36df48(0xd1)]]}}:{},'personal':_0x3d24a5['length'],'company':_0x1c0b19['length'],'materialized':_0x47c41f[_0x36df48(0xc5)],'links':{'total':_0x43cccb[_0x36df48(0xc5)],'created':_0xc1bd6e[_0x36df48(0xe1)]??0x0,'updated':_0xc1bd6e[_0x36df48(0xdb)]??0x0,'unchanged':_0xc1bd6e[_0x36df48(0xbd)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x4eaf26[_0x36df48(0xc4)](_0x1d53f1=>_0x1d53f1[_0x36df48(0xcc)]===_0x36df48(0xe3))[_0x36df48(0xc5)],'cacheDirs':_0x30566e[_0x36df48(0xc4)](_0x50f8f1=>_0x50f8f1[_0x36df48(0xcc)]===_0x36df48(0xe3))[_0x36df48(0xc5)],'skipped':[..._0x4eaf26,..._0x30566e][_0x36df48(0xc4)](_0x1e8daa=>_0x1e8daa[_0x36df48(0xcc)]===_0x36df48(0xd6))[_0x36df48(0xc5)]},'skills':{'personal':_0x3d24a5['map'](summarizeRuntimeSkill),'company':_0x1c0b19[_0x36df48(0xbe)](summarizeRuntimeSkill)}},'message':'Installed\x20'+_0x3d24a5[_0x36df48(0xc5)]+'\x20personal\x20and\x20'+_0x1c0b19[_0x36df48(0xc5)]+_0x36df48(0xd4)};}async function downloadSkillPackage(_0x3ee42a,_0x5ed8b8,_0x1dead4,_0x2e163f){const _0x2f6bce=a45_0x38002a,_0x20964b=_0x3ee42a[_0x2f6bce(0xcd)]?.[_0x2f6bce(0xdf)]();return _0x20964b?_0x2e163f(_0x5ed8b8,_0x3ee42a[_0x2f6bce(0xde)],_0x1dead4,_0x20964b):_0x2e163f(_0x5ed8b8,_0x3ee42a[_0x2f6bce(0xde)],_0x1dead4);}function countLinkActions(_0x443e81){return _0x443e81['reduce']((_0x814da5,_0x41ca0c)=>{return _0x814da5[_0x41ca0c['action']]=(_0x814da5[_0x41ca0c['action']]??0x0)+0x1,_0x814da5;},{});}
1
+ function a45_0x1ba9(){const _0xce6389=['1059738epIylf','filter','flatMap','action','code','read','install','removed','6hJnSnc','force','trim','includes','unchanged','7879752zMRnbE','86261zYejTX','skillCode','envName','5rxSAbc','all','company','\x20company\x20Skill(s).','bool','2497OXHlIn','personal','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','../../../core/api-client.js','appCode','created','length','project','8710fdUMLi','../../../skills/runtime-skill-sync.js','22341LlePDp','global','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','push','scope','updated','map','1045071zqVxJi','4eoQkIF','authRequired','362241YHSsaH','skill','120nroDVl'];a45_0x1ba9=function(){return _0xce6389;};return a45_0x1ba9();}const a45_0x307601=a45_0x3f8a;(function(_0x3a074e,_0x470f6d){const _0x288330=a45_0x3f8a,_0x579d00=_0x3a074e();while(!![]){try{const _0x5913d6=parseInt(_0x288330(0x102))/0x1*(-parseInt(_0x288330(0x117))/0x2)+-parseInt(_0x288330(0x109))/0x3*(parseInt(_0x288330(0x10a))/0x4)+-parseInt(_0x288330(0x120))/0x5*(parseInt(_0x288330(0x10f))/0x6)+parseInt(_0x288330(0x11d))/0x7*(parseInt(_0x288330(0x10e))/0x8)+-parseInt(_0x288330(0x10c))/0x9+parseInt(_0x288330(0x100))/0xa*(parseInt(_0x288330(0x125))/0xb)+parseInt(_0x288330(0x11c))/0xc;if(_0x5913d6===_0x470f6d)break;else _0x579d00['push'](_0x579d00['shift']());}catch(_0x3ff08b){_0x579d00['push'](_0x579d00['shift']());}}}(a45_0x1ba9,0x635ac));import{CliErrors}from'../../../errors.js';function a45_0x3f8a(_0x155a19,_0x385587){_0x155a19=_0x155a19-0xf9;const _0x1ba92a=a45_0x1ba9();let _0x3f8a54=_0x1ba92a[_0x155a19];return _0x3f8a54;}import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':a45_0x307601(0x10d),'command':a45_0x307601(0x115),'description':a45_0x307601(0x104),'risk':a45_0x307601(0x114),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x4ae050){return syncRuntimeSkills(_0x4ae050);}};async function syncRuntimeSkills(_0x377abb){const _0x7c0134=a45_0x307601,{downloadRuntimeSkillPackage:_0x161358,listRuntimeSkills:_0x2d580a}=await import(_0x7c0134(0xfb)),{linkEffectiveRuntimeSkills:_0x438c9a,materializeRuntimeSkill:_0x5e3591,pruneStaleRuntimeSkillCache:_0x26cb0b,pruneStaleRuntimeSkillLinks:_0x588061,resolveRuntimeSkillInstallTarget:_0x483523}=await import(_0x7c0134(0x101)),_0x3a29ae=_0x377abb['str'](_0x7c0134(0x113)),_0x3f6d97=normalizeSyncScopes(_0x377abb['str'](_0x7c0134(0x106))),_0x4844ca=_0x377abb[_0x7c0134(0x11f)]??'production',_0x2a2dd7=_0x377abb['accessKey'],_0x13cc28=_0x377abb[_0x7c0134(0x124)](_0x7c0134(0x118));if(!_0x2a2dd7)throw CliErrors[_0x7c0134(0x10b)](_0x7c0134(0xfa));const _0x25508d=_0x483523(_0x377abb[_0x7c0134(0xfc)],_0x377abb[_0x7c0134(0x124)](_0x7c0134(0xff))?'project':_0x7c0134(0x103)),_0x42af44=_0x483523(_0x377abb['appCode'],_0x25508d[_0x7c0134(0x106)]===_0x7c0134(0xff)?_0x7c0134(0x103):_0x7c0134(0xff)),_0x411300=await Promise[_0x7c0134(0x121)](_0x3f6d97['map'](_0x2e5a83=>_0x2d580a({'appCode':_0x377abb[_0x7c0134(0xfc)],'scope':_0x2e5a83,'code':_0x3a29ae[_0x7c0134(0x119)]()||undefined}))),_0x594774=_0x3f6d97[_0x7c0134(0x11a)](_0x7c0134(0xf9))?_0x411300[_0x7c0134(0x111)]((_0xb3a09,_0x108381)=>_0x3f6d97[_0x108381]==='personal'?_0xb3a09['personal']:[]):[],_0x4a41ed=_0x3f6d97['includes']('company')?_0x411300[_0x7c0134(0x111)]((_0x28dca8,_0x16e04c)=>_0x3f6d97[_0x16e04c]===_0x7c0134(0x122)?_0x28dca8[_0x7c0134(0x122)]:[]):[],_0x403815=new Set([..._0x594774[_0x7c0134(0x108)](_0xd63e8b=>_0xd63e8b['skillCode']?.['trim']())[_0x7c0134(0x110)](_0x27552f=>Boolean(_0x27552f)),..._0x4a41ed[_0x7c0134(0x108)](_0x36dcf2=>_0x36dcf2[_0x7c0134(0x11e)]?.[_0x7c0134(0x119)]())['filter'](_0x1b6956=>Boolean(_0x1b6956))]),_0x17e367=_0x3a29ae['trim']()?[_0x3a29ae[_0x7c0134(0x119)]()]:undefined,_0x1e7021=_0x3f6d97[_0x7c0134(0xfe)]===0x2&&_0x3f6d97[_0x7c0134(0x11a)]('personal')&&_0x3f6d97[_0x7c0134(0x11a)](_0x7c0134(0x122)),_0x3c1755=_0x1e7021?_0x588061(_0x25508d,_0x403815,_0x17e367):[],_0x3e2be3=_0x26cb0b({'env':_0x4844ca,'accessKey':_0x2a2dd7,'appCode':_0x377abb[_0x7c0134(0xfc)],'activeSkillCodes':_0x403815,'pruneSkillCodes':_0x17e367,'scopes':_0x3f6d97,'protectedLinkRoots':_0x42af44['skillRoots']}),_0x384ee5=[];for(const _0x3179a5 of _0x594774){_0x384ee5[_0x7c0134(0x105)](_0x5e3591(_0x3179a5,_0x7c0134(0xf9),{'env':_0x4844ca,'accessKey':_0x2a2dd7,'appCode':_0x377abb[_0x7c0134(0xfc)],'force':_0x13cc28,'packageBytes':await downloadSkillPackage(_0x3179a5,_0x7c0134(0xf9),_0x377abb[_0x7c0134(0xfc)],_0x161358)}));}for(const _0x568baa of _0x4a41ed){_0x384ee5[_0x7c0134(0x105)](_0x5e3591(_0x568baa,_0x7c0134(0x122),{'env':_0x4844ca,'accessKey':_0x2a2dd7,'appCode':_0x377abb['appCode'],'force':_0x13cc28,'packageBytes':await downloadSkillPackage(_0x568baa,_0x7c0134(0x122),_0x377abb[_0x7c0134(0xfc)],_0x161358)}));}const _0x2c1731=_0x438c9a(_0x384ee5,_0x25508d),_0x2aa538=countLinkActions(_0x2c1731);return{'ok':!![],'data':{'appCode':_0x377abb[_0x7c0134(0xfc)],..._0x25508d['scope']===_0x7c0134(0xff)?{'installTarget':{'scope':_0x25508d[_0x7c0134(0x106)],'skillRoots':[..._0x25508d['skillRoots']]}}:{},'personal':_0x594774[_0x7c0134(0xfe)],'company':_0x4a41ed[_0x7c0134(0xfe)],'materialized':_0x384ee5[_0x7c0134(0xfe)],'links':{'total':_0x2c1731[_0x7c0134(0xfe)],'created':_0x2aa538[_0x7c0134(0xfd)]??0x0,'updated':_0x2aa538[_0x7c0134(0x107)]??0x0,'unchanged':_0x2aa538[_0x7c0134(0x11b)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x3c1755[_0x7c0134(0x110)](_0x340f0f=>_0x340f0f[_0x7c0134(0x112)]===_0x7c0134(0x116))[_0x7c0134(0xfe)],'cacheDirs':_0x3e2be3[_0x7c0134(0x110)](_0x3c9e9b=>_0x3c9e9b[_0x7c0134(0x112)]===_0x7c0134(0x116))[_0x7c0134(0xfe)],'skipped':[..._0x3c1755,..._0x3e2be3][_0x7c0134(0x110)](_0x53588f=>_0x53588f[_0x7c0134(0x112)]==='skipped')[_0x7c0134(0xfe)]},'skills':{'personal':_0x594774['map'](summarizeRuntimeSkill),'company':_0x4a41ed[_0x7c0134(0x108)](summarizeRuntimeSkill)}},'message':'Installed\x20'+_0x594774[_0x7c0134(0xfe)]+'\x20personal\x20and\x20'+_0x4a41ed['length']+_0x7c0134(0x123)};}async function downloadSkillPackage(_0x3b9b6e,_0x163dce,_0x10ee24,_0xe845d){const _0x1f2392=_0x3b9b6e['version']?.['trim']();return _0x1f2392?_0xe845d(_0x163dce,_0x3b9b6e['skillCode'],_0x10ee24,_0x1f2392):_0xe845d(_0x163dce,_0x3b9b6e['skillCode'],_0x10ee24);}function countLinkActions(_0x5d5692){return _0x5d5692['reduce']((_0x1bb2e7,_0x805753)=>{const _0x130a2d=a45_0x3f8a;return _0x1bb2e7[_0x805753['action']]=(_0x1bb2e7[_0x805753[_0x130a2d(0x112)]]??0x0)+0x1,_0x1bb2e7;},{});}
@@ -1 +1 @@
1
- const a46_0x4fc6d9=a46_0x2d69;(function(_0xf5dfde,_0x2180d8){const _0x38b737=a46_0x2d69,_0x353ef4=_0xf5dfde();while(!![]){try{const _0x41c241=parseInt(_0x38b737(0x18a))/0x1*(parseInt(_0x38b737(0x188))/0x2)+-parseInt(_0x38b737(0x189))/0x3*(-parseInt(_0x38b737(0x176))/0x4)+parseInt(_0x38b737(0x18d))/0x5+parseInt(_0x38b737(0x18e))/0x6+parseInt(_0x38b737(0x17d))/0x7*(parseInt(_0x38b737(0x17e))/0x8)+-parseInt(_0x38b737(0x186))/0x9+-parseInt(_0x38b737(0x191))/0xa*(parseInt(_0x38b737(0x190))/0xb);if(_0x41c241===_0x2180d8)break;else _0x353ef4['push'](_0x353ef4['shift']());}catch(_0x16a1b1){_0x353ef4['push'](_0x353ef4['shift']());}}}(a46_0x483d,0x5006f));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';function a46_0x483d(){const _0x56eb70=['990545ZHQFap','829254SyrTjs','project','44RDfKnM','1164990ELXlXa','company','remote','accessKey','authRequired','builtin','1037156QwDmNr','../../../skills/runtime-skill-sync.js','str','filter','personal','trim','length','59318UcjdIn','416xisWfv','envName','read','scope','../../../core/api-client.js','local','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','map','2891817NimgJs','skill','10gfgmXY','3gQFHRa','15769nGzbDi','Listed\x20','appCode'];a46_0x483d=function(){return _0x56eb70;};return a46_0x483d();}import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';function a46_0x2d69(_0x18b18e,_0x3b1e3d){_0x18b18e=_0x18b18e-0x173;const _0x483d12=a46_0x483d();let _0x2d695b=_0x483d12[_0x18b18e];return _0x2d695b;}import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':a46_0x4fc6d9(0x187),'command':'list','description':a46_0x4fc6d9(0x184),'risk':a46_0x4fc6d9(0x180),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x2cc343){const _0x3f6eca=a46_0x4fc6d9,_0x443a03=_0x2cc343[_0x3f6eca(0x178)]('code'),_0x1b2bed=normalizeListScope(_0x2cc343[_0x3f6eca(0x178)](_0x3f6eca(0x181)));if(_0x2cc343['bool'](_0x3f6eca(0x183))){const _0xa4918e=_0x2cc343[_0x3f6eca(0x173)];if(!_0xa4918e)throw CliErrors[_0x3f6eca(0x174)]();const {listLocalRuntimeSkills:_0x86591f,resolveRuntimeSkillInstallTarget:_0xf2e0f8}=await import(_0x3f6eca(0x177)),_0x285de5=_0xf2e0f8(_0x2cc343[_0x3f6eca(0x18c)],_0x2cc343['bool']('project')?_0x3f6eca(0x18f):'global'),_0x248ac0=_0x86591f({'env':_0x2cc343[_0x3f6eca(0x17f)]??'production','accessKey':_0xa4918e,'appCode':_0x2cc343['appCode'],'scopes':listScopeToRuntimeScopes(_0x1b2bed),'code':_0x443a03[_0x3f6eca(0x17b)]()||undefined},_0x285de5),_0x26788b=groupLocalRuntimeSkills(_0x248ac0);return{'ok':!![],'data':{'appCode':_0x2cc343['appCode'],'source':_0x3f6eca(0x183),..._0x285de5['scope']===_0x3f6eca(0x18f)?{'installScope':_0x285de5['scope']}:{},'scope':_0x1b2bed,'total':_0x248ac0[_0x3f6eca(0x17c)],'personal':_0x26788b[_0x3f6eca(0x17a)][_0x3f6eca(0x17c)],'company':_0x26788b[_0x3f6eca(0x192)]['length'],'items':_0x248ac0['map'](summarizeLocalRuntimeSkill),'skills':{'personal':_0x26788b['personal'][_0x3f6eca(0x185)](summarizeLocalRuntimeSkill),'company':_0x26788b[_0x3f6eca(0x192)][_0x3f6eca(0x185)](summarizeLocalRuntimeSkill)}},'message':'Listed\x20'+_0x248ac0[_0x3f6eca(0x17c)]+'\x20local\x20Skill(s).'};}const {listRuntimeSkills:_0x31e078}=await import(_0x3f6eca(0x182)),_0x40b906=await _0x31e078({'appCode':_0x2cc343['appCode'],'scope':listScopeToRemoteScope(_0x1b2bed),'code':_0x443a03[_0x3f6eca(0x17b)]()||undefined}),_0x24a322=shouldListScope(_0x1b2bed,_0x3f6eca(0x17a))?_0x40b906[_0x3f6eca(0x17a)]??[]:[],_0x36e6f5=shouldListScope(_0x1b2bed,_0x3f6eca(0x192))?_0x40b906['company']??[]:[],_0x3790d7=[..._0x24a322,..._0x36e6f5];return{'ok':!![],'data':{'appCode':_0x2cc343[_0x3f6eca(0x18c)],'source':_0x3f6eca(0x193),'scope':_0x1b2bed,'total':_0x3790d7[_0x3f6eca(0x17c)],'personal':_0x24a322[_0x3f6eca(0x17c)],'company':_0x36e6f5['length'],'items':_0x3790d7[_0x3f6eca(0x185)](summarizeRuntimeSkill),'skills':{'personal':_0x24a322[_0x3f6eca(0x185)](summarizeRuntimeSkill),'company':_0x36e6f5['map'](summarizeRuntimeSkill)}},'message':_0x3f6eca(0x18b)+_0x3790d7[_0x3f6eca(0x17c)]+'\x20remote\x20Skill(s).'};}};function groupLocalRuntimeSkills(_0x142883){const _0x2c421a=a46_0x4fc6d9;return{'personal':_0x142883[_0x2c421a(0x179)](_0x31543a=>_0x31543a[_0x2c421a(0x181)]===_0x2c421a(0x17a)),'company':_0x142883['filter'](_0x4ef0d8=>_0x4ef0d8[_0x2c421a(0x181)]===_0x2c421a(0x192)),'builtin':_0x142883['filter'](_0x24fe5d=>_0x24fe5d['scope']===_0x2c421a(0x175))};}
1
+ const a46_0x2ee495=a46_0x5d71;(function(_0x190094,_0x3e6da3){const _0x59cce3=a46_0x5d71,_0x511cb0=_0x190094();while(!![]){try{const _0x5ef5c2=-parseInt(_0x59cce3(0x183))/0x1*(-parseInt(_0x59cce3(0x168))/0x2)+-parseInt(_0x59cce3(0x16b))/0x3*(parseInt(_0x59cce3(0x173))/0x4)+-parseInt(_0x59cce3(0x17b))/0x5*(-parseInt(_0x59cce3(0x162))/0x6)+parseInt(_0x59cce3(0x172))/0x7+parseInt(_0x59cce3(0x182))/0x8*(-parseInt(_0x59cce3(0x17d))/0x9)+-parseInt(_0x59cce3(0x17a))/0xa*(-parseInt(_0x59cce3(0x16e))/0xb)+parseInt(_0x59cce3(0x187))/0xc*(-parseInt(_0x59cce3(0x180))/0xd);if(_0x5ef5c2===_0x3e6da3)break;else _0x511cb0['push'](_0x511cb0['shift']());}catch(_0x3e0f0d){_0x511cb0['push'](_0x511cb0['shift']());}}}(a46_0x20f3,0xbd01a));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';function a46_0x5d71(_0x1abef2,_0x393ee0){_0x1abef2=_0x1abef2-0x162;const _0x20f33c=a46_0x20f3();let _0x5d719f=_0x20f33c[_0x1abef2];return _0x5d719f;}function a46_0x20f3(){const _0x1d9d5e=['List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','5628RCXmfa','18078beuPEA','list','../../../core/api-client.js','appCode','trim','length','419194qKUAkV','\x20local\x20Skill(s).','bool','3UUUiiq','read','map','73348LGVmtn','project','remote','builtin','2843260zCJhps','2576524zWivgJ','authRequired','personal','code','scope','\x20remote\x20Skill(s).','local','750GHjANe','585xyBuIw','company','9KqSIXj','accessKey','filter','16861JCytwb','envName','5595088UgXaql','7lWMMtt','str','skill'];a46_0x20f3=function(){return _0x1d9d5e;};return a46_0x20f3();}import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':a46_0x2ee495(0x185),'command':a46_0x2ee495(0x163),'description':a46_0x2ee495(0x186),'risk':a46_0x2ee495(0x16c),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x1e952c){const _0x1e5dac=a46_0x2ee495,_0x59f591=_0x1e952c['str'](_0x1e5dac(0x176)),_0x72548=normalizeListScope(_0x1e952c[_0x1e5dac(0x184)](_0x1e5dac(0x177)));if(_0x1e952c[_0x1e5dac(0x16a)](_0x1e5dac(0x179))){const _0x11bba6=_0x1e952c[_0x1e5dac(0x17e)];if(!_0x11bba6)throw CliErrors[_0x1e5dac(0x174)]();const {listLocalRuntimeSkills:_0x2b816e,resolveRuntimeSkillInstallTarget:_0x2b1a99}=await import('../../../skills/runtime-skill-sync.js'),_0x1d08ff=_0x2b1a99(_0x1e952c[_0x1e5dac(0x165)],_0x1e952c[_0x1e5dac(0x16a)](_0x1e5dac(0x16f))?_0x1e5dac(0x16f):'global'),_0x5f1f60=_0x2b816e({'env':_0x1e952c[_0x1e5dac(0x181)]??'production','accessKey':_0x11bba6,'appCode':_0x1e952c[_0x1e5dac(0x165)],'scopes':listScopeToRuntimeScopes(_0x72548),'code':_0x59f591[_0x1e5dac(0x166)]()||undefined},_0x1d08ff),_0xeb1693=groupLocalRuntimeSkills(_0x5f1f60);return{'ok':!![],'data':{'appCode':_0x1e952c['appCode'],'source':_0x1e5dac(0x179),..._0x1d08ff['scope']===_0x1e5dac(0x16f)?{'installScope':_0x1d08ff[_0x1e5dac(0x177)]}:{},'scope':_0x72548,'total':_0x5f1f60['length'],'personal':_0xeb1693[_0x1e5dac(0x175)]['length'],'company':_0xeb1693[_0x1e5dac(0x17c)]['length'],'items':_0x5f1f60[_0x1e5dac(0x16d)](summarizeLocalRuntimeSkill),'skills':{'personal':_0xeb1693[_0x1e5dac(0x175)][_0x1e5dac(0x16d)](summarizeLocalRuntimeSkill),'company':_0xeb1693[_0x1e5dac(0x17c)]['map'](summarizeLocalRuntimeSkill)}},'message':'Listed\x20'+_0x5f1f60[_0x1e5dac(0x167)]+_0x1e5dac(0x169)};}const {listRuntimeSkills:_0x8ab8a9}=await import(_0x1e5dac(0x164)),_0x35f98b=await _0x8ab8a9({'appCode':_0x1e952c[_0x1e5dac(0x165)],'scope':listScopeToRemoteScope(_0x72548),'code':_0x59f591[_0x1e5dac(0x166)]()||undefined}),_0x499d77=shouldListScope(_0x72548,_0x1e5dac(0x175))?_0x35f98b[_0x1e5dac(0x175)]??[]:[],_0x491ffe=shouldListScope(_0x72548,_0x1e5dac(0x17c))?_0x35f98b[_0x1e5dac(0x17c)]??[]:[],_0x3335bd=[..._0x499d77,..._0x491ffe];return{'ok':!![],'data':{'appCode':_0x1e952c[_0x1e5dac(0x165)],'source':_0x1e5dac(0x170),'scope':_0x72548,'total':_0x3335bd[_0x1e5dac(0x167)],'personal':_0x499d77[_0x1e5dac(0x167)],'company':_0x491ffe[_0x1e5dac(0x167)],'items':_0x3335bd[_0x1e5dac(0x16d)](summarizeRuntimeSkill),'skills':{'personal':_0x499d77[_0x1e5dac(0x16d)](summarizeRuntimeSkill),'company':_0x491ffe[_0x1e5dac(0x16d)](summarizeRuntimeSkill)}},'message':'Listed\x20'+_0x3335bd['length']+_0x1e5dac(0x178)};}};function groupLocalRuntimeSkills(_0x176747){const _0x14dfd5=a46_0x2ee495;return{'personal':_0x176747[_0x14dfd5(0x17f)](_0x1a6f54=>_0x1a6f54['scope']===_0x14dfd5(0x175)),'company':_0x176747[_0x14dfd5(0x17f)](_0x32857e=>_0x32857e[_0x14dfd5(0x177)]===_0x14dfd5(0x17c)),'builtin':_0x176747['filter'](_0xfdb175=>_0xfdb175[_0x14dfd5(0x177)]===_0x14dfd5(0x171))};}
@@ -1 +1 @@
1
- const a47_0x28db83=a47_0x57e2;(function(_0x162eaa,_0x3e852c){const _0x142d73=a47_0x57e2,_0x36a749=_0x162eaa();while(!![]){try{const _0x37e457=-parseInt(_0x142d73(0x1bc))/0x1+parseInt(_0x142d73(0x1b6))/0x2+parseInt(_0x142d73(0x1b9))/0x3*(parseInt(_0x142d73(0x1bb))/0x4)+parseInt(_0x142d73(0x1c2))/0x5*(parseInt(_0x142d73(0x1ba))/0x6)+-parseInt(_0x142d73(0x1c3))/0x7+parseInt(_0x142d73(0x1b7))/0x8+-parseInt(_0x142d73(0x1bd))/0x9;if(_0x37e457===_0x3e852c)break;else _0x36a749['push'](_0x36a749['shift']());}catch(_0x315c2e){_0x36a749['push'](_0x36a749['shift']());}}}(a47_0x4990,0x4c7bc));function a47_0x4990(){const _0x138ba3=['将本地\x20Skill\x20目录推送到个人范围,或提交公司范围版本审核','1128807KcyWWO','23964rApdYm','4KDGAZQ','151949AeoUGk','632799hKJBiq','write','将读取本地\x20Skill\x20内容:个人范围会立即保存并生效,公司范围会提交一个新版本进入审核。确认界面不会展示目录路径或\x20Skill\x20正文。','skill','push','290nVBwnn','3716454eArLTI','101640RrViAK','3261736lbgewW'];a47_0x4990=function(){return _0x138ba3;};return a47_0x4990();}import{CONFIRM_WARNINGS_FLAG,DIAGRAM_FILE_FLAG,DIR_FLAG,PUSH_SCOPE_FLAG}from'../flags.js';function a47_0x57e2(_0x33fe70,_0x941ecf){_0x33fe70=_0x33fe70-0x1b6;const _0x499020=a47_0x4990();let _0x57e233=_0x499020[_0x33fe70];return _0x57e233;}import{skillPushDryRun,skillPushExecute}from'../push-execute.js';export const pushCommand={'service':a47_0x28db83(0x1c0),'command':a47_0x28db83(0x1c1),'description':a47_0x28db83(0x1b8),'risk':a47_0x28db83(0x1be),'confirmationDescription':a47_0x28db83(0x1bf),'flags':[DIR_FLAG,DIAGRAM_FILE_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};
1
+ const a47_0x3be54f=a47_0x3a7c;function a47_0x3a7c(_0x7b3902,_0x408cef){_0x7b3902=_0x7b3902-0x183;const _0x590ad8=a47_0x590a();let _0x3a7cf4=_0x590ad8[_0x7b3902];return _0x3a7cf4;}(function(_0x3ac356,_0x3e9e61){const _0x3cb687=a47_0x3a7c,_0x15f5f4=_0x3ac356();while(!![]){try{const _0x5f0451=parseInt(_0x3cb687(0x183))/0x1+parseInt(_0x3cb687(0x184))/0x2+-parseInt(_0x3cb687(0x18f))/0x3*(parseInt(_0x3cb687(0x186))/0x4)+parseInt(_0x3cb687(0x187))/0x5+-parseInt(_0x3cb687(0x190))/0x6*(-parseInt(_0x3cb687(0x18d))/0x7)+parseInt(_0x3cb687(0x188))/0x8+-parseInt(_0x3cb687(0x18c))/0x9;if(_0x5f0451===_0x3e9e61)break;else _0x15f5f4['push'](_0x15f5f4['shift']());}catch(_0x2e31d9){_0x15f5f4['push'](_0x15f5f4['shift']());}}}(a47_0x590a,0x7c079));import{CONFIRM_WARNINGS_FLAG,DIAGRAM_FILE_FLAG,DIR_FLAG,PUSH_SCOPE_FLAG}from'../flags.js';import{skillPushDryRun,skillPushExecute}from'../push-execute.js';export const pushCommand={'service':a47_0x3be54f(0x18b),'command':a47_0x3be54f(0x18a),'description':a47_0x3be54f(0x185),'risk':a47_0x3be54f(0x189),'confirmationDescription':a47_0x3be54f(0x18e),'flags':[DIR_FLAG,DIAGRAM_FILE_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};function a47_0x590a(){const _0x21c4c4=['1195749nGLFvn','7nvbOqE','将读取本地\x20Skill\x20内容:个人范围会立即保存并生效,公司范围会提交一个新版本进入审核。确认界面不会展示目录路径或\x20Skill\x20正文。','21pPzOVP','95406xbbOUi','149558hsbbCc','137150HdQvbo','将本地\x20Skill\x20目录推送到个人范围,或提交公司范围版本审核','123468sQvBXe','2768865ExrQky','553184GCIeJp','write','push','skill'];a47_0x590a=function(){return _0x21c4c4;};return a47_0x590a();}