@lovrabet/lovrabet-cli 2.2.7 → 2.3.0-beta.1

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 (186) hide show
  1. package/lib/cli.js +1 -1
  2. package/lib/commands/api-doc/index.js +1 -1
  3. package/lib/commands/app/cache.js +1 -1
  4. package/lib/commands/app/definitions.js +1 -1
  5. package/lib/commands/app/eligibility.js +1 -1
  6. package/lib/commands/app/mock-loader.js +1 -1
  7. package/lib/commands/app/remote-source.js +1 -1
  8. package/lib/commands/app/shared.js +1 -1
  9. package/lib/commands/app-config/get.js +1 -1
  10. package/lib/commands/app-config/index.js +1 -1
  11. package/lib/commands/artifact/index.js +1 -1
  12. package/lib/commands/auth/device.js +1 -1
  13. package/lib/commands/auth/index.js +1 -1
  14. package/lib/commands/auth/prompt.js +1 -1
  15. package/lib/commands/bff/detail.js +1 -1
  16. package/lib/commands/bff/exec.js +1 -1
  17. package/lib/commands/bff/index.js +1 -1
  18. package/lib/commands/cli-skill/index.js +1 -1
  19. package/lib/commands/common/config-policy.d.ts +1 -1
  20. package/lib/commands/common/config-policy.js +1 -1
  21. package/lib/commands/common/constraints.js +1 -1
  22. package/lib/commands/common/flags.js +1 -1
  23. package/lib/commands/common/local-file.js +1 -1
  24. package/lib/commands/config/definitions.js +1 -1
  25. package/lib/commands/config/init.d.ts +12 -0
  26. package/lib/commands/config/init.js +1 -0
  27. package/lib/commands/config/shared.d.ts +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.js +1 -1
  37. package/lib/commands/kb/index.js +1 -1
  38. package/lib/commands/logs/index.js +1 -1
  39. package/lib/commands/notification/config-list.js +1 -1
  40. package/lib/commands/notification/index.js +1 -1
  41. package/lib/commands/notification/shared.js +1 -1
  42. package/lib/commands/ocr/index.js +1 -1
  43. package/lib/commands/permit/dataset-get.js +1 -1
  44. package/lib/commands/permit/dataset-set.js +1 -1
  45. package/lib/commands/permit/index.js +1 -1
  46. package/lib/commands/permit/page-get.js +1 -1
  47. package/lib/commands/permit/page-set.js +1 -1
  48. package/lib/commands/permit/role-menus-set.js +1 -1
  49. package/lib/commands/permit/role-menus.js +1 -1
  50. package/lib/commands/permit/shared.js +1 -1
  51. package/lib/commands/personal-bff/index.js +1 -1
  52. package/lib/commands/registry.js +1 -1
  53. package/lib/commands/role/create.js +1 -1
  54. package/lib/commands/role/delete.js +1 -1
  55. package/lib/commands/role/detail.js +1 -1
  56. package/lib/commands/role/index.js +1 -1
  57. package/lib/commands/role/list.js +1 -1
  58. package/lib/commands/role/shared.js +1 -1
  59. package/lib/commands/role/update.js +1 -1
  60. package/lib/commands/role/user-add.js +1 -1
  61. package/lib/commands/role/user-remove.js +1 -1
  62. package/lib/commands/schedule/index.js +1 -1
  63. package/lib/commands/schema.js +1 -1
  64. package/lib/commands/service/dynamic.js +1 -1
  65. package/lib/commands/service/function-name-adapter.js +1 -1
  66. package/lib/commands/service/index.js +1 -1
  67. package/lib/commands/service/registry.js +1 -1
  68. package/lib/commands/skill/commands/create.js +1 -1
  69. package/lib/commands/skill/commands/diagram.js +1 -1
  70. package/lib/commands/skill/commands/install.js +1 -1
  71. package/lib/commands/skill/commands/list.js +1 -1
  72. package/lib/commands/skill/commands/push.js +1 -1
  73. package/lib/commands/skill/commands/validate.js +1 -1
  74. package/lib/commands/skill/diagram.js +1 -1
  75. package/lib/commands/skill/flags.js +1 -1
  76. package/lib/commands/skill/index.js +1 -1
  77. package/lib/commands/skill/manifest-helpers.js +1 -1
  78. package/lib/commands/skill/push-execute.js +1 -1
  79. package/lib/commands/skill/push-flow-helpers.js +1 -1
  80. package/lib/commands/skill/push-retarget.js +1 -1
  81. package/lib/commands/skill/scopes.js +1 -1
  82. package/lib/commands/skill/summary.js +1 -1
  83. package/lib/commands/skill/templates.js +1 -1
  84. package/lib/commands/skill/validate.js +1 -1
  85. package/lib/commands/sql/detail.js +1 -1
  86. package/lib/commands/sql/exec.js +1 -1
  87. package/lib/commands/sql/index.js +1 -1
  88. package/lib/commands/update.js +1 -1
  89. package/lib/commands/user-account/bind.js +1 -1
  90. package/lib/commands/user-account/index.js +1 -1
  91. package/lib/commands/workspace/index.js +1 -1
  92. package/lib/config/domain-config.d.ts +11 -0
  93. package/lib/config/domain-config.js +1 -0
  94. package/lib/config/schema.d.ts +7 -1
  95. package/lib/config/schema.js +1 -1
  96. package/lib/constant/app.js +1 -1
  97. package/lib/constant/auth-mode.js +1 -1
  98. package/lib/constant/cli.js +1 -1
  99. package/lib/constant/defaults.js +1 -1
  100. package/lib/constant/distribution.d.ts +4 -0
  101. package/lib/constant/distribution.js +1 -1
  102. package/lib/constant/domain.d.ts +10 -3
  103. package/lib/constant/domain.js +1 -1
  104. package/lib/constant/env.js +1 -1
  105. package/lib/constant/output.js +1 -1
  106. package/lib/constant/product.d.ts +52 -14
  107. package/lib/constant/product.js +1 -1
  108. package/lib/constant/region.d.ts +15 -0
  109. package/lib/constant/region.js +1 -0
  110. package/lib/constant/risk.js +1 -1
  111. package/lib/constant/url.d.ts +2 -0
  112. package/lib/constant/url.js +1 -1
  113. package/lib/context.d.ts +2 -6
  114. package/lib/context.js +1 -1
  115. package/lib/core/api-client.js +1 -1
  116. package/lib/core/db-resolver.js +1 -1
  117. package/lib/core/sdk-client.d.ts +2 -0
  118. package/lib/core/sdk-client.js +1 -1
  119. package/lib/errors.js +1 -1
  120. package/lib/framework/build-all-flags.js +1 -1
  121. package/lib/framework/dryrun.js +1 -1
  122. package/lib/framework/flags.js +1 -1
  123. package/lib/framework/help.js +1 -1
  124. package/lib/framework/index.js +1 -1
  125. package/lib/framework/output.js +1 -1
  126. package/lib/framework/preparse.js +1 -1
  127. package/lib/framework/rate-limit.js +1 -1
  128. package/lib/framework/raw-flags.js +1 -1
  129. package/lib/framework/response.js +1 -1
  130. package/lib/framework/runner-confirmation.js +1 -1
  131. package/lib/framework/runner-error.js +1 -1
  132. package/lib/framework/runner.d.ts +3 -1
  133. package/lib/framework/runner.js +1 -1
  134. package/lib/framework/schema-export.js +1 -1
  135. package/lib/framework/service-order.js +1 -1
  136. package/lib/framework/types.js +1 -1
  137. package/lib/generated/build-info.d.ts +4 -4
  138. package/lib/generated/build-info.js +1 -1
  139. package/lib/help.js +1 -1
  140. package/lib/postinstall.js +1 -1
  141. package/lib/runtime/confirmation.js +1 -1
  142. package/lib/runtime/event.js +1 -1
  143. package/lib/runtime/index.js +1 -1
  144. package/lib/runtime/queue.js +1 -1
  145. package/lib/runtime/resolve.js +1 -1
  146. package/lib/skills/builtin-skill.js +1 -1
  147. package/lib/skills/npx-skills-add.js +1 -1
  148. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  149. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  150. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  151. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  152. package/lib/skills/runtime-skill-sync/links.js +1 -1
  153. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  154. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  155. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  156. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  157. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  158. package/lib/skills/runtime-skill-sync/push.js +1 -1
  159. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  160. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  161. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  162. package/lib/skills/runtime-skill-sync.js +1 -1
  163. package/lib/skills/skill-presence.js +1 -1
  164. package/lib/utils/access-key-redaction.d.ts +15 -0
  165. package/lib/utils/access-key-redaction.js +1 -0
  166. package/lib/utils/apply-jq-filter.js +1 -1
  167. package/lib/utils/cli-version-check.d.ts +12 -0
  168. package/lib/utils/cli-version-check.js +1 -0
  169. package/lib/utils/cli-version-policy.d.ts +12 -0
  170. package/lib/utils/cli-version-policy.js +1 -0
  171. package/lib/utils/logger.js +1 -1
  172. package/lib/utils/lossless-json.js +1 -1
  173. package/lib/utils/params.js +1 -1
  174. package/lib/utils/platform.js +1 -1
  175. package/lib/utils/update-notice.d.ts +2 -1
  176. package/lib/utils/update-notice.js +1 -1
  177. package/lib/utils/version.js +1 -1
  178. package/lib/utils/write-cli-side-channel.js +1 -1
  179. package/package.json +3 -1
  180. package/skills/lovrabet/SKILL.md +11 -12
  181. package/skills/lovrabet/guides/troubleshooting.md +12 -8
  182. package/skills/lovrabet/references/lovrabet-app.md +1 -1
  183. package/skills/lovrabet/references/lovrabet-auth.md +7 -25
  184. package/skills/lovrabet/references/lovrabet-config-commands.md +42 -5
  185. package/skills/lovrabet/references/lovrabet-config.md +25 -5
  186. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- const a53_0x1790ff=a53_0x3498;(function(_0x2c2643,_0x46b5d8){const _0x538973=a53_0x3498,_0xa38d77=_0x2c2643();while(!![]){try{const _0xd34ff7=-parseInt(_0x538973(0xbe))/0x1*(-parseInt(_0x538973(0xe2))/0x2)+parseInt(_0x538973(0xce))/0x3+-parseInt(_0x538973(0xf7))/0x4*(parseInt(_0x538973(0xb9))/0x5)+parseInt(_0x538973(0xcd))/0x6*(-parseInt(_0x538973(0xd4))/0x7)+parseInt(_0x538973(0xc5))/0x8*(parseInt(_0x538973(0xb5))/0x9)+parseInt(_0x538973(0xd9))/0xa+parseInt(_0x538973(0xe6))/0xb;if(_0xd34ff7===_0x46b5d8)break;else _0xa38d77['push'](_0xa38d77['shift']());}catch(_0x36b095){_0xa38d77['push'](_0xa38d77['shift']());}}}(a53_0x350c,0x9cce4));function a53_0x3498(_0x59bc3e,_0x17654c){_0x59bc3e=_0x59bc3e-0xb5;const _0x350cfd=a53_0x350c();let _0x349812=_0x350cfd[_0x59bc3e];return _0x349812;}import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';export const RUNTIME_ROLE_TYPES=[a53_0x1790ff(0xdf),a53_0x1790ff(0xcc),a53_0x1790ff(0xf1),'CUSTOM'];const BUILTIN_ROLE_TYPES=[a53_0x1790ff(0xdf),a53_0x1790ff(0xcc),a53_0x1790ff(0xf1)];export const ROLE_ID_FLAG={'name':'id','type':a53_0x1790ff(0xc9),'required':!![],'description':a53_0x1790ff(0xe7)};export const ROLE_REF_FLAG={'name':a53_0x1790ff(0xbd),'type':a53_0x1790ff(0xf3),'required':!![],'description':a53_0x1790ff(0xb7)};export const USER_ID_FLAG={'name':a53_0x1790ff(0xba),'type':a53_0x1790ff(0xf3),'required':!![],'description':a53_0x1790ff(0xdb)};export const EXPECT_USER_COUNT_FLAG={'name':a53_0x1790ff(0xf4),'type':'number','description':a53_0x1790ff(0xf6)};export function isBuiltinRuntimeRole(_0x378aa3){const _0x9b523d=a53_0x1790ff;return BUILTIN_ROLE_TYPES[_0x9b523d(0xb6)](_0x378aa3);}export function assertCustomRuntimeRole(_0x4ea0f3,_0x2b0cb7){const _0x273c5a=a53_0x1790ff;if(_0x4ea0f3[_0x273c5a(0xfd)]!==_0x273c5a(0xf2))throw CliErrors[_0x273c5a(0xc4)](_0x273c5a(0xc8)+_0x2b0cb7+'\x20built-in\x20runtime\x20role\x20'+_0x4ea0f3[_0x273c5a(0xf0)]+'\x20('+_0x4ea0f3['roleType']+').',_0x273c5a(0xff));}export function projectRuntimeRole(_0x2e5474){const _0x3389e0=a53_0x1790ff;return{'id':_0x2e5474['id'],'roleName':_0x2e5474['roleName'],'roleType':_0x2e5474[_0x3389e0(0xfd)],'remark':_0x2e5474[_0x3389e0(0xd7)],'userCount':_0x2e5474[_0x3389e0(0xfa)]??0x0,'permitCount':_0x2e5474[_0x3389e0(0xbf)]??0x0,'builtin':isBuiltinRuntimeRole(_0x2e5474[_0x3389e0(0xfd)])};}export async function getRuntimeRoleById(_0x4356a0,_0x15864b){const _0x402212=a53_0x1790ff;if(!Number[_0x402212(0xcb)](_0x15864b)||_0x15864b<=0x0)throw CliErrors[_0x402212(0xc4)](_0x402212(0xd8));const _0x865784=(await listAllRuntimeRoles(_0x4356a0))[_0x402212(0xd0)](_0x24965c=>_0x24965c['id']===_0x15864b&&(!_0x24965c['appCode']||_0x24965c['appCode']===_0x4356a0));if(_0x865784[_0x402212(0xe0)]!==0x1)throw CliErrors[_0x402212(0xc4)](_0x402212(0xde)+_0x15864b+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x4356a0+'.',_0x402212(0x101));return _0x865784[0x0];}export async function listAllRuntimeRoles(_0x13c330,_0x1faa49={}){const _0x9a09d1=a53_0x1790ff,_0x592dee=0x64,_0x21925e=[];for(let _0x91dcef=0x1;;_0x91dcef+=0x1){const _0x463634=await listRuntimeAppRoles(_0x13c330,{..._0x1faa49['roleName']?{'roleName':_0x1faa49['roleName']}:{},'currentPage':_0x91dcef,'pageSize':_0x592dee});_0x21925e['push'](..._0x463634[_0x9a09d1(0xdd)]);if(_0x463634[_0x9a09d1(0xdd)][_0x9a09d1(0xe0)]<_0x592dee||_0x463634[_0x9a09d1(0xda)]&&_0x21925e['length']>=_0x463634[_0x9a09d1(0xda)][_0x9a09d1(0xe4)])return _0x21925e;}}export async function resolveRuntimeRoleRef(_0x4b799c,_0x5b1099){const _0x3aa611=a53_0x1790ff,_0x747973=_0x5b1099[_0x3aa611(0xf5)]();if(!_0x747973)throw CliErrors[_0x3aa611(0xc4)](_0x3aa611(0xd5),'Pass\x20--role\x20<id|name>.');if(/^\d+$/[_0x3aa611(0xfe)](_0x747973))return getRuntimeRoleById(_0x4b799c,Number(_0x747973));const _0x209b3e=(await listAllRuntimeRoles(_0x4b799c))[_0x3aa611(0xd0)](_0x1196b1=>_0x1196b1[_0x3aa611(0xf0)]===_0x747973);if(_0x209b3e[_0x3aa611(0xe0)]===0x0)throw CliErrors['validation']('Runtime\x20role\x20name\x20\x22'+_0x747973+_0x3aa611(0xd1)+_0x4b799c+'.',_0x3aa611(0xbc));if(_0x209b3e[_0x3aa611(0xe0)]>0x1)throw CliErrors[_0x3aa611(0xc4)](_0x3aa611(0xca)+_0x747973+_0x3aa611(0xbb),_0x3aa611(0xee)+_0x209b3e['map'](_0xfcd077=>_0xfcd077['id'])[_0x3aa611(0xc7)](',\x20')+'.');return _0x209b3e[0x0];}function a53_0x350c(){const _0x385672=['14496JxwgNn','userId','join','Cannot\x20','number','Runtime\x20role\x20name\x20\x22','isSafeInteger','USER','186LDLSVQ','3160980YITYyw','Runtime\x20user\x20','filter','\x22\x20was\x20not\x20found\x20in\x20app\x20','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','\x20was\x20not\x20found\x20in\x20app\x20','249781lksyxJ','Missing\x20runtime\x20role\x20reference.','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','remark','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','1867490dupZMT','paging','Runtime\x20numeric\x20userId','runtime','items','Runtime\x20role\x20id\x20','ADMIN','length','User\x20','2Bqpkju','flag','totalCount','map','1273206AMoJeK','Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list','find',',\x20found\x20','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','user-add','Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.','Pass\x20one\x20role\x20ID:\x20','userList','roleName','OWNER','CUSTOM','string','expect-user-count','trim','Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed','875608CgFIji','Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.','code','userCount','\x20is\x20already\x20in\x20runtime\x20role\x20','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','roleType','test','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','str','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','495fvcyyc','includes','Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name','\x20is\x20not\x20in\x20runtime\x20role\x20','10XkYvoV','user','\x22\x20is\x20ambiguous.','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','role','730438FAOZHP','permitCount','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','appCode','userName','push','validation'];a53_0x350c=function(){return _0x385672;};return a53_0x350c();}function parseRuntimeUserId(_0x1935ea){const _0x539e6b=a53_0x1790ff,_0x4407a3=_0x1935ea[_0x539e6b(0xf5)]();if(!/^\d+$/[_0x539e6b(0xfe)](_0x4407a3))throw CliErrors[_0x539e6b(0xc4)](_0x539e6b(0xd6),'Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.');const _0x45ee8e=Number(_0x4407a3);if(!Number[_0x539e6b(0xcb)](_0x45ee8e)||_0x45ee8e<=0x0)throw CliErrors[_0x539e6b(0xc4)](_0x539e6b(0xf8));return _0x45ee8e;}export async function prepareRuntimeMemberMutation(_0x3c9b16,_0x3b7e92){const _0x214dbf=a53_0x1790ff,_0x3e7cef=await resolveRuntimeRoleRef(_0x3c9b16['appCode'],_0x3c9b16[_0x214dbf(0x100)]('role'));if(_0x3e7cef[_0x214dbf(0xfd)]==='OWNER')throw CliErrors[_0x214dbf(0xc4)]('OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.',_0x214dbf(0xfc));const _0x3b30ac=parseRuntimeUserId(_0x3c9b16[_0x214dbf(0x100)](_0x214dbf(0xba))),_0x48d5eb=(await listRuntimeRoleUsers(_0x3c9b16[_0x214dbf(0xc1)]))['map'](_0x596791=>({..._0x596791,'userList':[..._0x596791['userList']??[]],'applyUserList':[..._0x596791['applyUserList']??[]]})),_0x59cd22=_0x48d5eb[_0x214dbf(0xe8)](_0x16f09b=>_0x16f09b['id']===_0x3e7cef['id']);if(!_0x59cd22)throw CliErrors[_0x214dbf(0xc4)]('Runtime\x20role\x20'+_0x3e7cef['id']+_0x214dbf(0xeb),_0x214dbf(0xed));const _0x3529c1=_0x59cd22['userList'][_0x214dbf(0xe5)](_0x5b4d66=>_0x5b4d66[_0x214dbf(0xc6)]),_0x503e96=_0x3c9b16[_0x214dbf(0xe3)](_0x214dbf(0xf4));if(_0x503e96!==undefined&&_0x503e96!==null&&_0x503e96!==''){const _0x3c67db=_0x3c9b16['num'](_0x214dbf(0xf4));if(!Number[_0x214dbf(0xcb)](_0x3c67db)||_0x3c67db<0x0)throw CliErrors[_0x214dbf(0xc4)](_0x214dbf(0xc0));if(_0x3529c1[_0x214dbf(0xe0)]!==_0x3c67db)throw CliErrors[_0x214dbf(0xc4)](_0x214dbf(0xea)+_0x3c67db+_0x214dbf(0xe9)+_0x3529c1[_0x214dbf(0xe0)]+'.',_0x214dbf(0xd2));}const _0x5abf64=_0x3529c1['includes'](_0x3b30ac),_0x3c2f99=[];let _0x270f74=!![];if(_0x3b7e92===_0x214dbf(0xec)){const _0x53d251=await listRuntimeAppUsers(_0x3c9b16['appCode']),_0x162a8d=_0x53d251['filter'](_0x2ead08=>Number(_0x2ead08[_0x214dbf(0xf9)])===_0x3b30ac);if(_0x162a8d[_0x214dbf(0xe0)]!==0x1||!_0x162a8d[0x0][_0x214dbf(0xc2)]?.['trim']())throw CliErrors[_0x214dbf(0xc4)](_0x214dbf(0xcf)+_0x3b30ac+_0x214dbf(0xd3)+_0x3c9b16[_0x214dbf(0xc1)]+'.','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.');_0x5abf64?(_0x270f74=![],_0x3c2f99[_0x214dbf(0xc3)](_0x214dbf(0xe1)+_0x3b30ac+_0x214dbf(0xfb)+_0x3e7cef['id']+'.')):_0x59cd22['userList'][_0x214dbf(0xc3)]({'userId':_0x3b30ac,'username':_0x162a8d[0x0][_0x214dbf(0xc2)]});}else!_0x5abf64?(_0x270f74=![],_0x3c2f99[_0x214dbf(0xc3)](_0x214dbf(0xe1)+_0x3b30ac+_0x214dbf(0xb8)+_0x3e7cef['id']+'.')):_0x59cd22[_0x214dbf(0xef)]=_0x59cd22[_0x214dbf(0xef)][_0x214dbf(0xd0)](_0x4a7bb=>_0x4a7bb[_0x214dbf(0xc6)]!==_0x3b30ac);return{'role':_0x3e7cef,'userId':_0x3b30ac,'roleList':_0x48d5eb,'before':{'userIds':_0x3529c1},'after':{'userIds':_0x59cd22[_0x214dbf(0xef)][_0x214dbf(0xe5)](_0x42fe18=>_0x42fe18[_0x214dbf(0xc6)])},'shouldWrite':_0x270f74,'warnings':_0x3c2f99};}export function runtimeRoleWriteResult(_0x5f1fbf,_0x3ba453,_0x19019c,_0x4bac2d,_0x1489c0,_0x4b7e0b=[]){const _0x51810b=a53_0x1790ff;return{'operation':_0x5f1fbf,'scope':_0x51810b(0xdc),'selector':_0x3ba453,'before':_0x19019c,'after':_0x4bac2d,'dryRun':![],'backend':_0x1489c0,'warnings':_0x4b7e0b};}
1
+ const a54_0x22766e=a54_0x3148;(function(_0x238dd4,_0xa68c95){const _0x41ed60=a54_0x3148,_0x2659c9=_0x238dd4();while(!![]){try{const _0x13f15a=parseInt(_0x41ed60(0x11d))/0x1*(-parseInt(_0x41ed60(0x110))/0x2)+-parseInt(_0x41ed60(0x117))/0x3*(-parseInt(_0x41ed60(0x12e))/0x4)+-parseInt(_0x41ed60(0x118))/0x5+parseInt(_0x41ed60(0x115))/0x6+parseInt(_0x41ed60(0x121))/0x7*(-parseInt(_0x41ed60(0x137))/0x8)+-parseInt(_0x41ed60(0x12b))/0x9*(parseInt(_0x41ed60(0x156))/0xa)+parseInt(_0x41ed60(0x13a))/0xb*(parseInt(_0x41ed60(0x124))/0xc);if(_0x13f15a===_0xa68c95)break;else _0x2659c9['push'](_0x2659c9['shift']());}catch(_0x4c6dd2){_0x2659c9['push'](_0x2659c9['shift']());}}}(a54_0x11c9,0xa9fe2));import{listRuntimeAppUsers,listRuntimeAppRoles,listRuntimeRoleUsers}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a54_0x11c9(){const _0xa3d13a=['role','Run\x20`lovrabet\x20role\x20list`\x20and\x20use\x20a\x20role\x20from\x20the\x20current\x20app.','code','2030oiTczz','runtime','test','12lksZwX','roleType','USER','Read\x20the\x20current\x20members\x20and\x20retry\x20with\x20the\x20new\x20expected\x20count.','flag','Pass\x20--user\x20<userId>;\x20name\x20and\x20account\x20lookup\x20are\x20not\x20available\x20in\x20runtime\x20scope.','appCode','3286485PUVNig','expect-user-count','\x22\x20is\x20ambiguous.','668WZlwmL','filter','user-add','length','items','validation','OWNER','paging','Pass\x20--role\x20<id|name>.','36552oGKfAo','userName','Runtime\x20numeric\x20userId','33107701dvpGzF','Runtime\x20user\x20','trim','Run\x20`lovrabet\x20role\x20list`\x20or\x20pass\x20--role\x20<id>.','roleName','Runtime\x20role\x20membership\x20requires\x20a\x20numeric\x20userId.','Runtime\x20role\x20member\x20count\x20changed:\x20expected\x20','userId','\x20is\x20already\x20in\x20runtime\x20role\x20',',\x20found\x20','string','Only\x20CUSTOM\x20runtime\x20roles\x20can\x20be\x20modified\x20or\x20deleted.','map','Reject\x20when\x20the\x20target\x20role\x20member\x20count\x20has\x20changed','userList','applyUserList','Missing\x20runtime\x20role\x20reference.','User\x20','isSafeInteger','Role\x20ID\x20must\x20be\x20a\x20positive\x20integer.','\x20was\x20not\x20found\x20in\x20app\x20','number','join','CUSTOM','permitCount','push','includes','totalCount','30kWCtHm','12UuDYWk','remark','\x22\x20was\x20not\x20found\x20in\x20app\x20','--expect-user-count\x20must\x20be\x20a\x20non-negative\x20integer.','\x20is\x20not\x20in\x20runtime\x20role\x20','4255182XgEPrJ','OWNER\x20runtime\x20role\x20membership\x20cannot\x20be\x20changed\x20with\x20this\x20command.','17061UZcQYU','3304220nIUgWr','user','str','\x20is\x20missing\x20from\x20the\x20grouped\x20member\x20snapshot.','Transfer\x20or\x20manage\x20application\x20ownership\x20through\x20the\x20dedicated\x20application\x20workflow.','148513MWzErz'];a54_0x11c9=function(){return _0xa3d13a;};return a54_0x11c9();}export const RUNTIME_ROLE_TYPES=['ADMIN',a54_0x22766e(0x126),a54_0x22766e(0x134),a54_0x22766e(0x151)];const BUILTIN_ROLE_TYPES=['ADMIN','USER',a54_0x22766e(0x134)];export const ROLE_ID_FLAG={'name':'id','type':a54_0x22766e(0x14f),'required':!![],'description':'Runtime\x20role\x20ID\x20returned\x20by\x20role\x20list'};export const ROLE_REF_FLAG={'name':a54_0x22766e(0x11e),'type':a54_0x22766e(0x144),'required':!![],'description':'Runtime\x20role\x20ID\x20or\x20exact\x20role\x20name'};export const USER_ID_FLAG={'name':a54_0x22766e(0x119),'type':a54_0x22766e(0x144),'required':!![],'description':a54_0x22766e(0x139)};export const EXPECT_USER_COUNT_FLAG={'name':'expect-user-count','type':'number','description':a54_0x22766e(0x147)};export function isBuiltinRuntimeRole(_0x3b0625){const _0x5a966e=a54_0x22766e;return BUILTIN_ROLE_TYPES[_0x5a966e(0x154)](_0x3b0625);}export function assertCustomRuntimeRole(_0x25819e,_0x4bee22){const _0x444e5f=a54_0x22766e;if(_0x25819e[_0x444e5f(0x125)]!==_0x444e5f(0x151))throw CliErrors[_0x444e5f(0x133)]('Cannot\x20'+_0x4bee22+'\x20built-in\x20runtime\x20role\x20'+_0x25819e[_0x444e5f(0x13e)]+'\x20('+_0x25819e['roleType']+').',_0x444e5f(0x145));}export function projectRuntimeRole(_0x5938ec){const _0x4972a2=a54_0x22766e;return{'id':_0x5938ec['id'],'roleName':_0x5938ec[_0x4972a2(0x13e)],'roleType':_0x5938ec[_0x4972a2(0x125)],'remark':_0x5938ec[_0x4972a2(0x111)],'userCount':_0x5938ec['userCount']??0x0,'permitCount':_0x5938ec[_0x4972a2(0x152)]??0x0,'builtin':isBuiltinRuntimeRole(_0x5938ec[_0x4972a2(0x125)])};}export async function getRuntimeRoleById(_0x28671d,_0x1a6eac){const _0x53cca2=a54_0x22766e;if(!Number[_0x53cca2(0x14c)](_0x1a6eac)||_0x1a6eac<=0x0)throw CliErrors[_0x53cca2(0x133)](_0x53cca2(0x14d));const _0x203fa0=(await listAllRuntimeRoles(_0x28671d))[_0x53cca2(0x12f)](_0x17097e=>_0x17097e['id']===_0x1a6eac&&(!_0x17097e[_0x53cca2(0x12a)]||_0x17097e[_0x53cca2(0x12a)]===_0x28671d));if(_0x203fa0[_0x53cca2(0x131)]!==0x1)throw CliErrors['validation']('Runtime\x20role\x20id\x20'+_0x1a6eac+'\x20was\x20not\x20found\x20in\x20app\x20'+_0x28671d+'.',_0x53cca2(0x11f));return _0x203fa0[0x0];}export async function listAllRuntimeRoles(_0x44504a,_0x5da89a={}){const _0x3b2af3=a54_0x22766e,_0x1f127b=0x64,_0x211196=[];for(let _0x29683b=0x1;;_0x29683b+=0x1){const _0x13272f=await listRuntimeAppRoles(_0x44504a,{..._0x5da89a['roleName']?{'roleName':_0x5da89a[_0x3b2af3(0x13e)]}:{},'currentPage':_0x29683b,'pageSize':_0x1f127b});_0x211196[_0x3b2af3(0x153)](..._0x13272f['items']);if(_0x13272f[_0x3b2af3(0x132)]['length']<_0x1f127b||_0x13272f[_0x3b2af3(0x135)]&&_0x211196['length']>=_0x13272f[_0x3b2af3(0x135)][_0x3b2af3(0x155)])return _0x211196;}}export async function resolveRuntimeRoleRef(_0x2f2876,_0x34f15d){const _0x59939b=a54_0x22766e,_0x5e586c=_0x34f15d[_0x59939b(0x13c)]();if(!_0x5e586c)throw CliErrors[_0x59939b(0x133)](_0x59939b(0x14a),_0x59939b(0x136));if(/^\d+$/['test'](_0x5e586c))return getRuntimeRoleById(_0x2f2876,Number(_0x5e586c));const _0x42aa34=(await listAllRuntimeRoles(_0x2f2876))[_0x59939b(0x12f)](_0x2d7bff=>_0x2d7bff[_0x59939b(0x13e)]===_0x5e586c);if(_0x42aa34[_0x59939b(0x131)]===0x0)throw CliErrors[_0x59939b(0x133)]('Runtime\x20role\x20name\x20\x22'+_0x5e586c+_0x59939b(0x112)+_0x2f2876+'.',_0x59939b(0x13d));if(_0x42aa34['length']>0x1)throw CliErrors[_0x59939b(0x133)]('Runtime\x20role\x20name\x20\x22'+_0x5e586c+_0x59939b(0x12d),'Pass\x20one\x20role\x20ID:\x20'+_0x42aa34[_0x59939b(0x146)](_0x2fab3f=>_0x2fab3f['id'])[_0x59939b(0x150)](',\x20')+'.');return _0x42aa34[0x0];}function parseRuntimeUserId(_0x943204){const _0x15c953=a54_0x22766e,_0x1162e3=_0x943204[_0x15c953(0x13c)]();if(!/^\d+$/[_0x15c953(0x123)](_0x1162e3))throw CliErrors[_0x15c953(0x133)](_0x15c953(0x13f),_0x15c953(0x129));const _0xd4e747=Number(_0x1162e3);if(!Number['isSafeInteger'](_0xd4e747)||_0xd4e747<=0x0)throw CliErrors[_0x15c953(0x133)]('Runtime\x20userId\x20must\x20be\x20a\x20positive\x20safe\x20integer.');return _0xd4e747;}export async function prepareRuntimeMemberMutation(_0x188a2a,_0x47d4ee){const _0x3f99f9=a54_0x22766e,_0x3e3956=await resolveRuntimeRoleRef(_0x188a2a['appCode'],_0x188a2a['str'](_0x3f99f9(0x11e)));if(_0x3e3956[_0x3f99f9(0x125)]===_0x3f99f9(0x134))throw CliErrors[_0x3f99f9(0x133)](_0x3f99f9(0x116),_0x3f99f9(0x11c));const _0x4057a1=parseRuntimeUserId(_0x188a2a[_0x3f99f9(0x11a)](_0x3f99f9(0x119))),_0x6698bb=(await listRuntimeRoleUsers(_0x188a2a['appCode']))[_0x3f99f9(0x146)](_0x2a34da=>({..._0x2a34da,'userList':[..._0x2a34da[_0x3f99f9(0x148)]??[]],'applyUserList':[..._0x2a34da[_0x3f99f9(0x149)]??[]]})),_0x37c886=_0x6698bb['find'](_0x4fda49=>_0x4fda49['id']===_0x3e3956['id']);if(!_0x37c886)throw CliErrors[_0x3f99f9(0x133)]('Runtime\x20role\x20'+_0x3e3956['id']+_0x3f99f9(0x11b),'Reload\x20the\x20role\x20list\x20and\x20retry\x20after\x20the\x20server\x20state\x20is\x20consistent.');const _0x2b09bb=_0x37c886[_0x3f99f9(0x148)][_0x3f99f9(0x146)](_0x44df22=>_0x44df22[_0x3f99f9(0x141)]),_0x10ff5f=_0x188a2a[_0x3f99f9(0x128)](_0x3f99f9(0x12c));if(_0x10ff5f!==undefined&&_0x10ff5f!==null&&_0x10ff5f!==''){const _0x1d7d25=_0x188a2a['num']('expect-user-count');if(!Number['isSafeInteger'](_0x1d7d25)||_0x1d7d25<0x0)throw CliErrors[_0x3f99f9(0x133)](_0x3f99f9(0x113));if(_0x2b09bb[_0x3f99f9(0x131)]!==_0x1d7d25)throw CliErrors[_0x3f99f9(0x133)](_0x3f99f9(0x140)+_0x1d7d25+_0x3f99f9(0x143)+_0x2b09bb[_0x3f99f9(0x131)]+'.',_0x3f99f9(0x127));}const _0x1cf07a=_0x2b09bb[_0x3f99f9(0x154)](_0x4057a1),_0x2c42cc=[];let _0x49c07b=!![];if(_0x47d4ee===_0x3f99f9(0x130)){const _0x528499=await listRuntimeAppUsers(_0x188a2a[_0x3f99f9(0x12a)]),_0x2c1a98=_0x528499[_0x3f99f9(0x12f)](_0xeef395=>Number(_0xeef395[_0x3f99f9(0x120)])===_0x4057a1);if(_0x2c1a98[_0x3f99f9(0x131)]!==0x1||!_0x2c1a98[0x0][_0x3f99f9(0x138)]?.[_0x3f99f9(0x13c)]())throw CliErrors[_0x3f99f9(0x133)](_0x3f99f9(0x13b)+_0x4057a1+_0x3f99f9(0x14e)+_0x188a2a[_0x3f99f9(0x12a)]+'.','Use\x20a\x20numeric\x20userId\x20returned\x20by\x20the\x20current\x20application\x27s\x20personnel\x20list.');_0x1cf07a?(_0x49c07b=![],_0x2c42cc[_0x3f99f9(0x153)](_0x3f99f9(0x14b)+_0x4057a1+_0x3f99f9(0x142)+_0x3e3956['id']+'.')):_0x37c886[_0x3f99f9(0x148)]['push']({'userId':_0x4057a1,'username':_0x2c1a98[0x0][_0x3f99f9(0x138)]});}else!_0x1cf07a?(_0x49c07b=![],_0x2c42cc[_0x3f99f9(0x153)]('User\x20'+_0x4057a1+_0x3f99f9(0x114)+_0x3e3956['id']+'.')):_0x37c886['userList']=_0x37c886[_0x3f99f9(0x148)][_0x3f99f9(0x12f)](_0x13c45b=>_0x13c45b[_0x3f99f9(0x141)]!==_0x4057a1);return{'role':_0x3e3956,'userId':_0x4057a1,'roleList':_0x6698bb,'before':{'userIds':_0x2b09bb},'after':{'userIds':_0x37c886[_0x3f99f9(0x148)][_0x3f99f9(0x146)](_0x3f732e=>_0x3f732e[_0x3f99f9(0x141)])},'shouldWrite':_0x49c07b,'warnings':_0x2c42cc};}function a54_0x3148(_0xc588d,_0x136d87){_0xc588d=_0xc588d-0x110;const _0x11c97b=a54_0x11c9();let _0x3148e4=_0x11c97b[_0xc588d];return _0x3148e4;}export function runtimeRoleWriteResult(_0x16ef0d,_0x1e91bf,_0x404f17,_0x6636fe,_0x49cb4a,_0x1fc12a=[]){const _0x2a591e=a54_0x22766e;return{'operation':_0x16ef0d,'scope':_0x2a591e(0x122),'selector':_0x1e91bf,'before':_0x404f17,'after':_0x6636fe,'dryRun':![],'backend':_0x49cb4a,'warnings':_0x1fc12a};}
@@ -1 +1 @@
1
- const a54_0x409fba=a54_0x23d9;(function(_0x2a613e,_0x1f7ee0){const _0x47437d=a54_0x23d9,_0x3ac4b7=_0x2a613e();while(!![]){try{const _0x1bf336=-parseInt(_0x47437d(0xb7))/0x1+parseInt(_0x47437d(0xa9))/0x2*(-parseInt(_0x47437d(0xa1))/0x3)+-parseInt(_0x47437d(0xa2))/0x4+-parseInt(_0x47437d(0xbe))/0x5+parseInt(_0x47437d(0xac))/0x6*(-parseInt(_0x47437d(0xbc))/0x7)+parseInt(_0x47437d(0xa3))/0x8+parseInt(_0x47437d(0xbf))/0x9;if(_0x1bf336===_0x1f7ee0)break;else _0x3ac4b7['push'](_0x3ac4b7['shift']());}catch(_0x190dec){_0x3ac4b7['push'](_0x3ac4b7['shift']());}}}(a54_0x442e,0xe7fca));function a54_0x23d9(_0x30b3c9,_0x548b2f){_0x30b3c9=_0x30b3c9-0xa1;const _0x442e20=a54_0x442e();let _0x23d987=_0x442e20[_0x30b3c9];return _0x23d987;}import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x212183){const _0x3a864d=a54_0x23d9,_0x441f68=_0x212183[_0x3a864d(0xb6)](_0x3a864d(0xbd))!==undefined,_0xd53d73=_0x212183['flag'](_0x3a864d(0xae))!==undefined;if(!_0x441f68&&!_0xd53d73)throw CliErrors[_0x3a864d(0xa5)](_0x3a864d(0xba));const _0x153d81=_0x212183[_0x3a864d(0xb8)](_0x3a864d(0xbd))[_0x3a864d(0xaf)](),_0x2db897=_0x212183['str'](_0x3a864d(0xae))[_0x3a864d(0xaf)]();if(_0x441f68&&!_0x153d81)throw CliErrors['validation'](_0x3a864d(0xb9));if(_0xd53d73&&!_0x2db897)throw CliErrors[_0x3a864d(0xa5)]('--remark\x20must\x20not\x20be\x20blank.',_0x3a864d(0xb1));return{..._0x441f68?{'roleName':_0x153d81}:{},..._0xd53d73?{'remark':_0x2db897}:{}};}async function prepare(_0x49699d){const _0xeddff=a54_0x23d9,_0x436956=await getRuntimeRoleById(_0x49699d[_0xeddff(0xa4)],_0x49699d[_0xeddff(0xa8)]('id'));return assertCustomRuntimeRole(_0x436956,_0xeddff(0xb4)),{'role':_0x436956,'body':{'id':_0x436956['id'],'appCode':_0x49699d[_0xeddff(0xa4)],...updateFields(_0x49699d)}};}function a54_0x442e(){const _0x5b9425=['45912rnuVUc','role','remark','trim','修改当前运行应用中的自定义角色名称或备注;变更会立即影响角色展示。','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','body','New\x20non-empty\x20role\x20remark','update','/client/permit/role/update','flag','149453ZIiyEK','str','--name\x20must\x20not\x20be\x20blank.','Pass\x20--name\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','New\x20role\x20name','203MkKjNf','name','1507515nOJbXs','20098881lKfKXf','741594vicDCW','4633048mZgdFM','10317832ntIupm','appCode','validation','description','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','num','6qRLTgI','string','POST'];a54_0x442e=function(){return _0x5b9425;};return a54_0x442e();}export const roleUpdate={'service':a54_0x409fba(0xad),'command':a54_0x409fba(0xb4),'description':'Update\x20a\x20runtime\x20CUSTOM\x20role','risk':'high-risk-write','confirmationDescription':a54_0x409fba(0xb0),'flags':[ROLE_ID_FLAG,{'name':a54_0x409fba(0xbd),'type':a54_0x409fba(0xaa),'description':a54_0x409fba(0xbb)},{'name':'remark','type':'string','description':a54_0x409fba(0xb3)}],async 'validate'(_0x2cedd9){updateFields(_0x2cedd9);},async 'dryRun'(_0x30296d){const _0x134291=a54_0x409fba,{body:_0x3fddbf}=await prepare(_0x30296d);return dryRun(_0x134291(0xab),_0x134291(0xb5))[_0x134291(0xb2)](_0x3fddbf)[_0x134291(0xa6)](_0x134291(0xa7))['build']();},async 'execute'(_0x7146c7){const _0x4b8792=a54_0x409fba,{role:_0xa15f14,body:_0x22f901}=await prepare(_0x7146c7),_0x14df46=await updateRuntimeAppRole(_0x22f901);return{'ok':!![],'data':runtimeRoleWriteResult(_0x4b8792(0xb4),{'roleId':_0xa15f14['id']},projectRuntimeRole(_0xa15f14),projectRuntimeRole(_0x14df46),{'method':'POST','path':'/client/permit/role/update'})};}};
1
+ const a55_0x6192e8=a55_0x4e54;(function(_0x1b04e7,_0xaa8821){const _0x2606e2=a55_0x4e54,_0x43378c=_0x1b04e7();while(!![]){try{const _0x392bc8=parseInt(_0x2606e2(0x205))/0x1*(-parseInt(_0x2606e2(0x1f2))/0x2)+-parseInt(_0x2606e2(0x1f3))/0x3*(-parseInt(_0x2606e2(0x1fe))/0x4)+parseInt(_0x2606e2(0x1f5))/0x5*(-parseInt(_0x2606e2(0x20a))/0x6)+parseInt(_0x2606e2(0x202))/0x7*(parseInt(_0x2606e2(0x1fb))/0x8)+parseInt(_0x2606e2(0x1ed))/0x9+parseInt(_0x2606e2(0x1eb))/0xa+-parseInt(_0x2606e2(0x1f1))/0xb;if(_0x392bc8===_0xaa8821)break;else _0x43378c['push'](_0x43378c['shift']());}catch(_0x2ae688){_0x43378c['push'](_0x43378c['shift']());}}}(a55_0x1bb8,0x908af));import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x5f4b29){const _0x2a650f=a55_0x4e54,_0x1dcd68=_0x5f4b29[_0x2a650f(0x1ee)](_0x2a650f(0x1f9))!==undefined,_0x5a9ecb=_0x5f4b29[_0x2a650f(0x1ee)](_0x2a650f(0x1f0))!==undefined;if(!_0x1dcd68&&!_0x5a9ecb)throw CliErrors[_0x2a650f(0x208)](_0x2a650f(0x206));const _0x1165e4=_0x5f4b29[_0x2a650f(0x1f8)](_0x2a650f(0x1f9))[_0x2a650f(0x1fc)](),_0x40f3f7=_0x5f4b29[_0x2a650f(0x1f8)](_0x2a650f(0x1f0))[_0x2a650f(0x1fc)]();if(_0x1dcd68&&!_0x1165e4)throw CliErrors[_0x2a650f(0x208)]('--name\x20must\x20not\x20be\x20blank.');if(_0x5a9ecb&&!_0x40f3f7)throw CliErrors[_0x2a650f(0x208)](_0x2a650f(0x1ff),_0x2a650f(0x1f4));return{..._0x1dcd68?{'roleName':_0x1165e4}:{},..._0x5a9ecb?{'remark':_0x40f3f7}:{}};}function a55_0x4e54(_0x507ca2,_0x527b49){_0x507ca2=_0x507ca2-0x1eb;const _0x1bb8c5=a55_0x1bb8();let _0x4e5464=_0x1bb8c5[_0x507ca2];return _0x4e5464;}function a55_0x1bb8(){const _0xd0d214=['validation','build','42414vQCNff','1202110batMZb','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','3340656oDYJYx','flag','high-risk-write','remark','664367qaSdvY','359926OQIfgF','3Qtivpf','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','635AXUqBi','POST','description','str','name','appCode','8cmemOY','trim','Changes\x20the\x20custom\x20role\x20name\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20display\x20updates\x20immediately.','2714496LeyXwj','--remark\x20must\x20not\x20be\x20blank.','body','/client/permit/role/update','5180798DiaWXG','string','New\x20non-empty\x20role\x20remark','2sakswJ','Pass\x20--name\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','update'];a55_0x1bb8=function(){return _0xd0d214;};return a55_0x1bb8();}async function prepare(_0xee153b){const _0x45e4d2=a55_0x4e54,_0x1a82bc=await getRuntimeRoleById(_0xee153b[_0x45e4d2(0x1fa)],_0xee153b['num']('id'));return assertCustomRuntimeRole(_0x1a82bc,'update'),{'role':_0x1a82bc,'body':{'id':_0x1a82bc['id'],'appCode':_0xee153b['appCode'],...updateFields(_0xee153b)}};}export const roleUpdate={'service':'role','command':a55_0x6192e8(0x207),'description':'Update\x20a\x20runtime\x20CUSTOM\x20role','risk':a55_0x6192e8(0x1ef),'confirmationDescription':a55_0x6192e8(0x1fd),'flags':[ROLE_ID_FLAG,{'name':a55_0x6192e8(0x1f9),'type':a55_0x6192e8(0x203),'description':'New\x20role\x20name'},{'name':a55_0x6192e8(0x1f0),'type':a55_0x6192e8(0x203),'description':a55_0x6192e8(0x204)}],async 'validate'(_0x3f924f){updateFields(_0x3f924f);},async 'dryRun'(_0x4b0e75){const _0x4c4b3e=a55_0x6192e8,{body:_0x3d0a5c}=await prepare(_0x4b0e75);return dryRun(_0x4c4b3e(0x1f6),_0x4c4b3e(0x201))[_0x4c4b3e(0x200)](_0x3d0a5c)[_0x4c4b3e(0x1f7)](_0x4c4b3e(0x1ec))[_0x4c4b3e(0x209)]();},async 'execute'(_0x5b4c63){const _0x1894d4=a55_0x6192e8,{role:_0x1de5c6,body:_0xb89d09}=await prepare(_0x5b4c63),_0x3164bb=await updateRuntimeAppRole(_0xb89d09);return{'ok':!![],'data':runtimeRoleWriteResult(_0x1894d4(0x207),{'roleId':_0x1de5c6['id']},projectRuntimeRole(_0x1de5c6),projectRuntimeRole(_0x3164bb),{'method':'POST','path':_0x1894d4(0x201)})};}};
@@ -1 +1 @@
1
- const a55_0x229948=a55_0x41c0;function a55_0xc893(){const _0xf3de40=['Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','1464552xOaWOq','roleList','/client/permit/user-role/update-user-list','1326171HowRKi','after','high-risk-write','725607wBcvkT','2267IiVSax','appCode','6JdEENW','role','POST','186170LxqPth','description','480DmegHr','body','build','130pQlKKZ','把指定运行用户加入目标角色;该用户将获得该角色对应的运行权限。','shouldWrite','before','Preview:\x20add\x20runtime\x20role\x20member','7788ZulrdV','762768sRrOXR','user-add','warnings'];a55_0xc893=function(){return _0xf3de40;};return a55_0xc893();}(function(_0x275841,_0x2fb680){const _0x108e0e=a55_0x41c0,_0x54ecf6=_0x275841();while(!![]){try{const _0x978b8c=parseInt(_0x108e0e(0x139))/0x1*(parseInt(_0x108e0e(0x143))/0x2)+-parseInt(_0x108e0e(0x13b))/0x3*(parseInt(_0x108e0e(0x149))/0x4)+parseInt(_0x108e0e(0x140))/0x5*(parseInt(_0x108e0e(0x148))/0x6)+parseInt(_0x108e0e(0x135))/0x7+parseInt(_0x108e0e(0x14d))/0x8+-parseInt(_0x108e0e(0x138))/0x9+parseInt(_0x108e0e(0x13e))/0xa;if(_0x978b8c===_0x2fb680)break;else _0x54ecf6['push'](_0x54ecf6['shift']());}catch(_0x1eb688){_0x54ecf6['push'](_0x54ecf6['shift']());}}}(a55_0xc893,0x31187));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';function a55_0x41c0(_0x16587b,_0x2318d2){_0x16587b=_0x16587b-0x134;const _0xc893a3=a55_0xc893();let _0x41c03a=_0xc893a3[_0x16587b];return _0x41c03a;}import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserAdd={'service':a55_0x229948(0x13c),'command':a55_0x229948(0x14a),'description':a55_0x229948(0x14c),'risk':a55_0x229948(0x137),'confirmationDescription':a55_0x229948(0x144),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x40cedd){const _0x497c16=a55_0x229948,_0x2997c9=await prepareRuntimeMemberMutation(_0x40cedd,_0x497c16(0x14a));return dryRun(_0x497c16(0x13d),'/client/permit/user-role/update-user-list')[_0x497c16(0x141)]({'appCode':_0x40cedd[_0x497c16(0x13a)],'roleList':_0x2997c9[_0x497c16(0x14e)]})[_0x497c16(0x13f)](_0x2997c9[_0x497c16(0x145)]?_0x497c16(0x147):_0x2997c9[_0x497c16(0x14b)][0x0])[_0x497c16(0x142)]();},async 'execute'(_0xe97deb){const _0x2822be=a55_0x229948,_0x10ba18=await prepareRuntimeMemberMutation(_0xe97deb,_0x2822be(0x14a));return _0x10ba18[_0x2822be(0x145)]&&await updateRuntimeRoleUsers(_0xe97deb[_0x2822be(0x13a)],_0x10ba18[_0x2822be(0x14e)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x2822be(0x14a),{'roleId':_0x10ba18[_0x2822be(0x13c)]['id'],'userId':_0x10ba18['userId']},_0x10ba18[_0x2822be(0x146)],_0x10ba18[_0x2822be(0x136)],{'method':_0x2822be(0x13d),'path':_0x2822be(0x134)},_0x10ba18[_0x2822be(0x14b)])};}};
1
+ function a56_0x5f23(){const _0x238f16=['27900158fWLAtp','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','1717080BHyDeX','warnings','role','appCode','3228112cdyarg','shouldWrite','POST','before','1337472qpHgzF','16dBjTsQ','/client/permit/user-role/update-user-list','high-risk-write','build','4017600dgNUtI','after','277990denQAF','6NICDAS','5FiwWnQ','body','roleList','10AWxYME','description','user-add','7373765msoJdP'];a56_0x5f23=function(){return _0x238f16;};return a56_0x5f23();}const a56_0x45667a=a56_0x1908;(function(_0x44daae,_0x5ed336){const _0x990033=a56_0x1908,_0x8814f1=_0x44daae();while(!![]){try{const _0xe0acb1=parseInt(_0x990033(0xaa))/0x1*(parseInt(_0x990033(0xab))/0x2)+-parseInt(_0x990033(0x9b))/0x3+-parseInt(_0x990033(0x9f))/0x4*(parseInt(_0x990033(0xac))/0x5)+-parseInt(_0x990033(0xa8))/0x6+-parseInt(_0x990033(0x97))/0x7+-parseInt(_0x990033(0xa4))/0x8*(-parseInt(_0x990033(0xa3))/0x9)+parseInt(_0x990033(0x94))/0xa*(parseInt(_0x990033(0x98))/0xb);if(_0xe0acb1===_0x5ed336)break;else _0x8814f1['push'](_0x8814f1['shift']());}catch(_0xf73644){_0x8814f1['push'](_0x8814f1['shift']());}}}(a56_0x5f23,0x89fbd));function a56_0x1908(_0x3a8805,_0x521ffd){_0x3a8805=_0x3a8805-0x94;const _0x5f23cd=a56_0x5f23();let _0x190872=_0x5f23cd[_0x3a8805];return _0x190872;}import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserAdd={'service':a56_0x45667a(0x9d),'command':a56_0x45667a(0x96),'description':a56_0x45667a(0x9a),'risk':a56_0x45667a(0xa6),'confirmationDescription':a56_0x45667a(0x99),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x522a66){const _0x18ad16=a56_0x45667a,_0x59c597=await prepareRuntimeMemberMutation(_0x522a66,_0x18ad16(0x96));return dryRun('POST',_0x18ad16(0xa5))[_0x18ad16(0xad)]({'appCode':_0x522a66[_0x18ad16(0x9e)],'roleList':_0x59c597[_0x18ad16(0xae)]})[_0x18ad16(0x95)](_0x59c597[_0x18ad16(0xa0)]?'Preview:\x20add\x20runtime\x20role\x20member':_0x59c597[_0x18ad16(0x9c)][0x0])[_0x18ad16(0xa7)]();},async 'execute'(_0x528c2a){const _0x15daac=a56_0x45667a,_0x3b3e96=await prepareRuntimeMemberMutation(_0x528c2a,_0x15daac(0x96));return _0x3b3e96[_0x15daac(0xa0)]&&await updateRuntimeRoleUsers(_0x528c2a[_0x15daac(0x9e)],_0x3b3e96[_0x15daac(0xae)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x15daac(0x96),{'roleId':_0x3b3e96[_0x15daac(0x9d)]['id'],'userId':_0x3b3e96['userId']},_0x3b3e96[_0x15daac(0xa2)],_0x3b3e96[_0x15daac(0xa9)],{'method':_0x15daac(0xa1),'path':_0x15daac(0xa5)},_0x3b3e96[_0x15daac(0x9c)])};}};
@@ -1 +1 @@
1
- function a56_0x41d7(_0xa42729,_0x42422e){_0xa42729=_0xa42729-0x1b1;const _0x466c3c=a56_0x466c();let _0x41d74a=_0x466c3c[_0xa42729];return _0x41d74a;}const a56_0x4fc5a1=a56_0x41d7;(function(_0xa1415f,_0x114bed){const _0x83fbff=a56_0x41d7,_0x34794a=_0xa1415f();while(!![]){try{const _0x41def7=parseInt(_0x83fbff(0x1c4))/0x1+-parseInt(_0x83fbff(0x1b7))/0x2+-parseInt(_0x83fbff(0x1c6))/0x3+parseInt(_0x83fbff(0x1bb))/0x4*(-parseInt(_0x83fbff(0x1ba))/0x5)+parseInt(_0x83fbff(0x1c2))/0x6*(parseInt(_0x83fbff(0x1c1))/0x7)+parseInt(_0x83fbff(0x1b9))/0x8*(parseInt(_0x83fbff(0x1c3))/0x9)+-parseInt(_0x83fbff(0x1b2))/0xa*(-parseInt(_0x83fbff(0x1b4))/0xb);if(_0x41def7===_0x114bed)break;else _0x34794a['push'](_0x34794a['shift']());}catch(_0x5f445c){_0x34794a['push'](_0x34794a['shift']());}}}(a56_0x466c,0x62a44));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':a56_0x4fc5a1(0x1b5),'command':a56_0x4fc5a1(0x1b1),'description':a56_0x4fc5a1(0x1bc),'risk':a56_0x4fc5a1(0x1b8),'confirmationDescription':'把指定运行用户移出目标角色;该用户将失去仅由该角色授予的运行权限。','flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x1c8bbe){const _0x164b6a=a56_0x4fc5a1,_0x3cc0eb=await prepareRuntimeMemberMutation(_0x1c8bbe,_0x164b6a(0x1b1));return dryRun(_0x164b6a(0x1be),_0x164b6a(0x1c5))[_0x164b6a(0x1b6)]({'appCode':_0x1c8bbe[_0x164b6a(0x1b3)],'roleList':_0x3cc0eb[_0x164b6a(0x1bd)]})['description'](_0x3cc0eb[_0x164b6a(0x1c0)]?'Preview:\x20remove\x20runtime\x20role\x20member':_0x3cc0eb[_0x164b6a(0x1bf)][0x0])['build']();},async 'execute'(_0x3e2167){const _0x3ac865=a56_0x4fc5a1,_0x5b5f93=await prepareRuntimeMemberMutation(_0x3e2167,'user-remove');return _0x5b5f93[_0x3ac865(0x1c0)]&&await updateRuntimeRoleUsers(_0x3e2167[_0x3ac865(0x1b3)],_0x5b5f93[_0x3ac865(0x1bd)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x3ac865(0x1b1),{'roleId':_0x5b5f93[_0x3ac865(0x1b5)]['id'],'userId':_0x5b5f93['userId']},_0x5b5f93['before'],_0x5b5f93['after'],{'method':'POST','path':_0x3ac865(0x1c5)},_0x5b5f93[_0x3ac865(0x1bf)])};}};function a56_0x466c(){const _0x412bf1=['1100786jHpymF','high-risk-write','1603024lsfMya','10FZEmDJ','816580fnnxpe','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','roleList','POST','warnings','shouldWrite','112168BhimsL','12bXTiVv','9PyiDvO','535745miCmOG','/client/permit/user-role/update-user-list','421074JGbawm','user-remove','20NWBRWZ','appCode','4041983kONvdf','role','body'];a56_0x466c=function(){return _0x412bf1;};return a56_0x466c();}
1
+ const a57_0x36df7f=a57_0x1069;(function(_0x5a9bf7,_0x2fd9c3){const _0x3e7987=a57_0x1069,_0x39b25c=_0x5a9bf7();while(!![]){try{const _0xcd85f9=parseInt(_0x3e7987(0x168))/0x1+-parseInt(_0x3e7987(0x17d))/0x2+parseInt(_0x3e7987(0x176))/0x3+parseInt(_0x3e7987(0x17c))/0x4+parseInt(_0x3e7987(0x175))/0x5*(-parseInt(_0x3e7987(0x165))/0x6)+-parseInt(_0x3e7987(0x167))/0x7*(-parseInt(_0x3e7987(0x17b))/0x8)+parseInt(_0x3e7987(0x16e))/0x9;if(_0xcd85f9===_0x2fd9c3)break;else _0x39b25c['push'](_0x39b25c['shift']());}catch(_0x1ccd7a){_0x39b25c['push'](_0x39b25c['shift']());}}}(a57_0x46d4,0x40e78));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';function a57_0x1069(_0x3f02f9,_0x3ffa97){_0x3f02f9=_0x3f02f9-0x165;const _0x46d465=a57_0x46d4();let _0x1069f8=_0x46d465[_0x3f02f9];return _0x1069f8;}import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';function a57_0x46d4(){const _0x1023ae=['656224PIKFhN','606420CVeBHc','role','7bBgWhN','111814clsrBx','appCode','body','after','before','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','531171iGEdQM','user-remove','shouldWrite','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','userId','POST','warnings','10tExpVG','872319HaAqFW','/client/permit/user-role/update-user-list','high-risk-write','roleList','Preview:\x20remove\x20runtime\x20role\x20member','939152zpFKCW','868400jAFYEI'];a57_0x46d4=function(){return _0x1023ae;};return a57_0x46d4();}export const roleUserRemove={'service':a57_0x36df7f(0x166),'command':'user-remove','description':a57_0x36df7f(0x16d),'risk':a57_0x36df7f(0x178),'confirmationDescription':a57_0x36df7f(0x171),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x18c248){const _0xc5aa0c=a57_0x36df7f,_0x17c2c2=await prepareRuntimeMemberMutation(_0x18c248,_0xc5aa0c(0x16f));return dryRun(_0xc5aa0c(0x173),_0xc5aa0c(0x177))[_0xc5aa0c(0x16a)]({'appCode':_0x18c248[_0xc5aa0c(0x169)],'roleList':_0x17c2c2[_0xc5aa0c(0x179)]})['description'](_0x17c2c2[_0xc5aa0c(0x170)]?_0xc5aa0c(0x17a):_0x17c2c2[_0xc5aa0c(0x174)][0x0])['build']();},async 'execute'(_0x3c876d){const _0x5a4e18=a57_0x36df7f,_0x4db0fe=await prepareRuntimeMemberMutation(_0x3c876d,'user-remove');return _0x4db0fe['shouldWrite']&&await updateRuntimeRoleUsers(_0x3c876d[_0x5a4e18(0x169)],_0x4db0fe[_0x5a4e18(0x179)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x5a4e18(0x16f),{'roleId':_0x4db0fe[_0x5a4e18(0x166)]['id'],'userId':_0x4db0fe[_0x5a4e18(0x172)]},_0x4db0fe[_0x5a4e18(0x16c)],_0x4db0fe[_0x5a4e18(0x16b)],{'method':_0x5a4e18(0x173),'path':_0x5a4e18(0x177)},_0x4db0fe[_0x5a4e18(0x174)])};}};
@@ -1 +1 @@
1
- const a57_0x197a9a=a57_0x3346;function a57_0x46a5(){const _0x2bc475=['deepseek-v4-flash-0731','length','high-risk-write','prompt','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','\x20from\x20schedule\x20','model','UTC','delete','Preview:\x20create\x20an\x20Agent\x20schedule','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','3348147sLRtDh','build','/api/harness/apps/','--prompt\x20must\x20not\x20be\x20blank.','POST','217lnSpYQ','run','将在当前应用中创建可自动触发\x20Agent\x20的定时任务;到达设定时间后会按任务内容创建并执行\x20Task。','kind','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','DELETE','立即运行一次定时任务并创建\x20Task','Preview:\x20delete\x20schedule\x20','16781049ryiEub','86430EwhOEx','schedule-id','Schedule\x20UUID','CRON','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','scheduled-at','deepseek-v4-pro-0813','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','/run','\x20schedule\x20','create','trim','description','schedule','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','num','189172ykCiOX','isSafeInteger','ONCE','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','str','scheduleId','Show\x20one\x20schedule\x20by\x20schedule\x20ID','validate','创建周期性或单次执行的\x20Agent\x20定时任务','detail','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','validation','删除定时任务并停止其后续触发','406990erwyFW','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','将永久删除该定时任务并停止后续自动触发;已经创建的历史\x20Task\x20不受影响。','172525OkFDOx','title','string','cron','Created\x20','8VwJjLY','Schedule\x20kind:\x20CRON\x20or\x20ONCE','Queued\x20Task\x20','\x20immediately','limit','read','kimi/k3','1420208Bjgkcf','Schedule\x20title','appCode','cursor','Deleted\x20schedule\x20','/schedules','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','--title\x20must\x20not\x20be\x20blank.'];a57_0x46a5=function(){return _0x2bc475;};return a57_0x46a5();}(function(_0x6d61f0,_0x16f605){const _0x888294=a57_0x3346,_0x66f9dc=_0x6d61f0();while(!![]){try{const _0x3bdf1f=-parseInt(_0x888294(0x6f))/0x1+parseInt(_0x888294(0xac))/0x2+-parseInt(_0x888294(0x8e))/0x3+parseInt(_0x888294(0x74))/0x4*(-parseInt(_0x888294(0x6c))/0x5)+parseInt(_0x888294(0x9c))/0x6*(parseInt(_0x888294(0x93))/0x7)+-parseInt(_0x888294(0x7b))/0x8+parseInt(_0x888294(0x9b))/0x9;if(_0x3bdf1f===_0x16f605)break;else _0x66f9dc['push'](_0x66f9dc['shift']());}catch(_0x29856a){_0x66f9dc['push'](_0x66f9dc['shift']());}}}(a57_0x46a5,0xbda66));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a57_0x3346(_0x1fb020,_0x19eae6){_0x1fb020=_0x1fb020-0x66;const _0x46a5ac=a57_0x46a5();let _0x33460e=_0x46a5ac[_0x1fb020];return _0x33460e;}import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a57_0x197a9a(0x96),'type':a57_0x197a9a(0x71),'required':!![],'enum':[a57_0x197a9a(0x9f),'ONCE'],'description':a57_0x197a9a(0x75)},CRON_FLAG={'name':a57_0x197a9a(0x72),'type':'string','description':a57_0x197a9a(0x69)},SCHEDULED_AT_FLAG={'name':'scheduled-at','type':a57_0x197a9a(0x71),'description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a57_0x197a9a(0x70),'type':a57_0x197a9a(0x71),'required':!![],'description':a57_0x197a9a(0x7c)},PROMPT_FLAG={'name':a57_0x197a9a(0x86),'type':a57_0x197a9a(0x71),'required':!![],'description':a57_0x197a9a(0xaf)},MODEL_FLAG={'name':'model','type':a57_0x197a9a(0x71),'enum':[a57_0x197a9a(0x7a),a57_0x197a9a(0x83),a57_0x197a9a(0xa2)],'default':a57_0x197a9a(0x83),'description':a57_0x197a9a(0xa0)},SCHEDULE_ID_FLAG={'name':a57_0x197a9a(0x9d),'type':a57_0x197a9a(0x71),'required':!![],'description':a57_0x197a9a(0x9e),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a57_0x197a9a(0x8d)}},LIMIT_FLAG={'name':a57_0x197a9a(0x78),'type':'number','default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':a57_0x197a9a(0x7e),'type':a57_0x197a9a(0x71),'description':'Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call'},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x453b14){const _0x575e1b=a57_0x197a9a,_0x4efad1=_0x453b14[_0x575e1b(0xb0)](_0x575e1b(0x96)),_0x35cbf7=_0x453b14[_0x575e1b(0xb0)](_0x575e1b(0x70))[_0x575e1b(0xa7)](),_0x463d2a=_0x453b14[_0x575e1b(0xb0)]('prompt')['trim'](),_0x222d60=_0x453b14[_0x575e1b(0xb0)](_0x575e1b(0x89)),_0x39aa37=_0x453b14['str'](_0x575e1b(0x72)),_0x32a73b=_0x453b14['str'](_0x575e1b(0xa1));if(!_0x35cbf7)throw CliErrors[_0x575e1b(0x6a)](_0x575e1b(0x82));if(!_0x463d2a)throw CliErrors[_0x575e1b(0x6a)](_0x575e1b(0x91));if(_0x4efad1===_0x575e1b(0x9f)){if(!_0x39aa37||_0x32a73b)throw CliErrors['validation'](_0x575e1b(0x87));return{'kind':_0x4efad1,'timezone':'UTC','cron':_0x39aa37,'title':_0x35cbf7,'prompt':_0x463d2a,'model':_0x222d60};}if(_0x4efad1===_0x575e1b(0xae)){if(!_0x32a73b||_0x39aa37)throw CliErrors[_0x575e1b(0x6a)](_0x575e1b(0xa3));return{'kind':_0x4efad1,'timezone':_0x575e1b(0x8a),'scheduledAt':_0x32a73b,'title':_0x35cbf7,'prompt':_0x463d2a,'model':_0x222d60};}throw CliErrors['validation'](_0x575e1b(0x81));}function scheduleCollectionPath(_0x2e140f){const _0x4e1571=a57_0x197a9a;return _0x4e1571(0x90)+encodeURIComponent(_0x2e140f)+_0x4e1571(0x80);}function scheduleItemPath(_0x30475a,_0x753158){return scheduleCollectionPath(_0x30475a)+'/'+encodeURIComponent(_0x753158);}const scheduleValidate={'service':a57_0x197a9a(0xa9),'command':a57_0x197a9a(0x66),'description':a57_0x197a9a(0x97),'risk':'read','flags':INPUT_FLAGS,async 'validate'(_0x486898){readScheduleInput(_0x486898);},async 'execute'(_0x3a6e47){const _0x89b613=a57_0x197a9a,_0x21a801=readScheduleInput(_0x3a6e47),_0x173d19=await validateRuntimeSchedule(_0x3a6e47[_0x89b613(0x7d)],_0x21a801);return{'ok':!![],'data':_0x173d19,'message':'Schedule\x20input\x20is\x20valid'};}},scheduleCreate={'service':a57_0x197a9a(0xa9),'command':a57_0x197a9a(0xa6),'description':a57_0x197a9a(0x67),'risk':'high-risk-write','confirmationDescription':a57_0x197a9a(0x95),'flags':INPUT_FLAGS,async 'validate'(_0x21a948){readScheduleInput(_0x21a948);},async 'execute'(_0x459090){const _0x576f09=a57_0x197a9a,_0x450fe6=readScheduleInput(_0x459090),_0x121739=await validateRuntimeSchedule(_0x459090[_0x576f09(0x7d)],_0x450fe6),_0xb3e05e=await createRuntimeSchedule(_0x459090[_0x576f09(0x7d)],_0x121739);return{'ok':!![],'data':_0xb3e05e,'message':_0x576f09(0x73)+_0xb3e05e[_0x576f09(0x96)]+_0x576f09(0xa5)+_0xb3e05e[_0x576f09(0xb1)]};},async 'dryRun'(_0x5791a2){const _0x25a609=a57_0x197a9a,_0x1c137a=readScheduleInput(_0x5791a2);return dryRun(_0x25a609(0x92),scheduleCollectionPath(_0x5791a2[_0x25a609(0x7d)]))['body'](_0x1c137a)[_0x25a609(0xa8)](_0x25a609(0x8c))[_0x25a609(0x8f)]();}},scheduleList={'service':'schedule','command':'list','description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':a57_0x197a9a(0x79),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x106c5c){const _0x695e10=a57_0x197a9a,_0x4714be=_0x106c5c[_0x695e10(0xab)]('limit');if(!Number[_0x695e10(0xad)](_0x4714be)||_0x4714be<0x1||_0x4714be>0x64)throw CliErrors[_0x695e10(0x6a)](_0x695e10(0x6d));const _0x46e0b4=_0x106c5c[_0x695e10(0xb0)]('cursor');if(_0x46e0b4&&(_0x46e0b4[_0x695e10(0x84)]>0x400||_0x46e0b4['trim']()!==_0x46e0b4))throw CliErrors[_0x695e10(0x6a)](_0x695e10(0xaa));},async 'execute'(_0x4dfe6e){const _0x53c0d0=a57_0x197a9a,_0xf2bf75=_0x4dfe6e[_0x53c0d0(0xb0)](_0x53c0d0(0x7e)),_0x1bcf90=await listRuntimeSchedules(_0x4dfe6e[_0x53c0d0(0x7d)],{'kind':_0x4dfe6e['str'](_0x53c0d0(0x96)),'limit':_0x4dfe6e[_0x53c0d0(0xab)](_0x53c0d0(0x78)),..._0xf2bf75?{'cursor':_0xf2bf75}:{}});return{'ok':!![],'data':_0x1bcf90};}},scheduleDetail={'service':a57_0x197a9a(0xa9),'command':a57_0x197a9a(0x68),'description':a57_0x197a9a(0xb2),'risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1ff358){const _0x4629f3=a57_0x197a9a,_0x1bbba4=await getRuntimeSchedule(_0x1ff358[_0x4629f3(0x7d)],_0x1ff358[_0x4629f3(0xb0)]('schedule-id'));return{'ok':!![],'data':_0x1bbba4};}},scheduleRun={'service':a57_0x197a9a(0xa9),'command':a57_0x197a9a(0x94),'description':a57_0x197a9a(0x99),'risk':a57_0x197a9a(0x85),'confirmationDescription':'将忽略原定触发时间,立即运行一次该定时任务并创建新的\x20Agent\x20Task。','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x30dc96){const _0xff8513=a57_0x197a9a,_0x30be74=_0x30dc96[_0xff8513(0xb0)](_0xff8513(0x9d)),_0x3395b5=await runRuntimeSchedule(_0x30dc96[_0xff8513(0x7d)],_0x30be74);return{'ok':!![],'data':_0x3395b5,'message':_0xff8513(0x76)+_0x3395b5['taskId']+_0xff8513(0x88)+_0x30be74};},async 'dryRun'(_0x45ed4c){const _0x1ad39f=a57_0x197a9a,_0x554e53=_0x45ed4c[_0x1ad39f(0xb0)](_0x1ad39f(0x9d));return dryRun(_0x1ad39f(0x92),scheduleItemPath(_0x45ed4c[_0x1ad39f(0x7d)],_0x554e53)+_0x1ad39f(0xa4))[_0x1ad39f(0xa8)]('Preview:\x20run\x20schedule\x20'+_0x554e53+_0x1ad39f(0x77))['build']();}},scheduleDelete={'service':a57_0x197a9a(0xa9),'command':a57_0x197a9a(0x8b),'description':a57_0x197a9a(0x6b),'risk':a57_0x197a9a(0x85),'confirmationDescription':a57_0x197a9a(0x6e),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x585241){const _0x39f0a3=a57_0x197a9a,_0x35c53f=_0x585241[_0x39f0a3(0xb0)]('schedule-id'),_0x370374=await deleteRuntimeSchedule(_0x585241[_0x39f0a3(0x7d)],_0x35c53f);return{'ok':!![],'data':_0x370374,'message':_0x39f0a3(0x7f)+_0x35c53f};},async 'dryRun'(_0x31d87b){const _0x2bdc38=a57_0x197a9a,_0x1bf1ce=_0x31d87b['str'](_0x2bdc38(0x9d));return dryRun(_0x2bdc38(0x98),scheduleItemPath(_0x31d87b[_0x2bdc38(0x7d)],_0x1bf1ce))['description'](_0x2bdc38(0x9a)+_0x1bf1ce)[_0x2bdc38(0x8f)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
1
+ const a58_0x156875=a58_0x5ea1;(function(_0x58751d,_0x588590){const _0x527898=a58_0x5ea1,_0x435864=_0x58751d();while(!![]){try{const _0x5fe50b=-parseInt(_0x527898(0xdd))/0x1+parseInt(_0x527898(0x105))/0x2*(-parseInt(_0x527898(0xd1))/0x3)+parseInt(_0x527898(0xca))/0x4*(-parseInt(_0x527898(0xcc))/0x5)+-parseInt(_0x527898(0x100))/0x6*(parseInt(_0x527898(0xe5))/0x7)+parseInt(_0x527898(0xed))/0x8*(parseInt(_0x527898(0xf1))/0x9)+-parseInt(_0x527898(0x10b))/0xa+parseInt(_0x527898(0xce))/0xb*(parseInt(_0x527898(0xe6))/0xc);if(_0x5fe50b===_0x588590)break;else _0x435864['push'](_0x435864['shift']());}catch(_0x5e3705){_0x435864['push'](_0x435864['shift']());}}}(a58_0xb2c6,0x51301));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';function a58_0x5ea1(_0x51e2f5,_0x4c5632){_0x51e2f5=_0x51e2f5-0xca;const _0xb2c6ff=a58_0xb2c6();let _0x5ea13f=_0xb2c6ff[_0x51e2f5];return _0x5ea13f;}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':a58_0x156875(0xfb),'type':'string','required':!![],'enum':[a58_0x156875(0x10a),a58_0x156875(0xf6)],'description':'Schedule\x20kind:\x20CRON\x20or\x20ONCE'},CRON_FLAG={'name':'cron','type':'string','description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':a58_0x156875(0x109),'type':'string','description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a58_0x156875(0xdb),'type':a58_0x156875(0x10c),'required':!![],'description':a58_0x156875(0xd9)},PROMPT_FLAG={'name':a58_0x156875(0xfe),'type':a58_0x156875(0x10c),'required':!![],'description':a58_0x156875(0xef)},MODEL_FLAG={'name':a58_0x156875(0xcd),'type':a58_0x156875(0x10c),'enum':[a58_0x156875(0xd8),'deepseek-v4-flash-0731','deepseek-v4-pro-0813'],'default':a58_0x156875(0xee),'description':'Task\x20model\x20used\x20when\x20the\x20schedule\x20runs'},SCHEDULE_ID_FLAG={'name':a58_0x156875(0xcf),'type':a58_0x156875(0x10c),'required':!![],'description':'Schedule\x20UUID','pattern':{'regex':SCHEDULE_ID_PATTERN,'description':'a\x20UUID\x20returned\x20by\x20schedule\x20create/list'}},LIMIT_FLAG={'name':a58_0x156875(0xe4),'type':a58_0x156875(0xd5),'default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':'cursor','type':a58_0x156875(0x10c),'description':a58_0x156875(0xf5)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x4c12dc){const _0x59fd10=a58_0x156875,_0x330117=_0x4c12dc['str']('kind'),_0x47a8c0=_0x4c12dc[_0x59fd10(0xd0)]('title')[_0x59fd10(0xf0)](),_0x5d221b=_0x4c12dc['str']('prompt')[_0x59fd10(0xf0)](),_0x404f8f=_0x4c12dc[_0x59fd10(0xd0)]('model'),_0xf929a=_0x4c12dc[_0x59fd10(0xd0)](_0x59fd10(0xd2)),_0xe420f6=_0x4c12dc[_0x59fd10(0xd0)]('scheduled-at');if(!_0x47a8c0)throw CliErrors['validation'](_0x59fd10(0xd6));if(!_0x5d221b)throw CliErrors['validation'](_0x59fd10(0xfc));if(_0x330117===_0x59fd10(0x10a)){if(!_0xf929a||_0xe420f6)throw CliErrors[_0x59fd10(0xf9)]('CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.');return{'kind':_0x330117,'timezone':'UTC','cron':_0xf929a,'title':_0x47a8c0,'prompt':_0x5d221b,'model':_0x404f8f};}if(_0x330117===_0x59fd10(0xf6)){if(!_0xe420f6||_0xf929a)throw CliErrors[_0x59fd10(0xf9)](_0x59fd10(0xfa));return{'kind':_0x330117,'timezone':_0x59fd10(0x108),'scheduledAt':_0xe420f6,'title':_0x47a8c0,'prompt':_0x5d221b,'model':_0x404f8f};}throw CliErrors[_0x59fd10(0xf9)](_0x59fd10(0x103));}function scheduleCollectionPath(_0x31ab51){const _0x416a16=a58_0x156875;return _0x416a16(0xe1)+encodeURIComponent(_0x31ab51)+_0x416a16(0xcb);}function scheduleItemPath(_0x653916,_0xb7052b){return scheduleCollectionPath(_0x653916)+'/'+encodeURIComponent(_0xb7052b);}const scheduleValidate={'service':a58_0x156875(0xda),'command':a58_0x156875(0xea),'description':a58_0x156875(0x106),'risk':a58_0x156875(0xeb),'flags':INPUT_FLAGS,async 'validate'(_0x250674){readScheduleInput(_0x250674);},async 'execute'(_0xc8dc63){const _0x330c0a=a58_0x156875,_0x2c5164=readScheduleInput(_0xc8dc63),_0x3b8ebc=await validateRuntimeSchedule(_0xc8dc63[_0x330c0a(0xfd)],_0x2c5164);return{'ok':!![],'data':_0x3b8ebc,'message':_0x330c0a(0x10d)};}},scheduleCreate={'service':a58_0x156875(0xda),'command':'create','description':a58_0x156875(0x10f),'risk':a58_0x156875(0xf7),'confirmationDescription':a58_0x156875(0xf4),'flags':INPUT_FLAGS,async 'validate'(_0x1e98f5){readScheduleInput(_0x1e98f5);},async 'execute'(_0x5ebad6){const _0x215a0f=a58_0x156875,_0x5a5e21=readScheduleInput(_0x5ebad6),_0x3078d8=await validateRuntimeSchedule(_0x5ebad6[_0x215a0f(0xfd)],_0x5a5e21),_0x24759c=await createRuntimeSchedule(_0x5ebad6[_0x215a0f(0xfd)],_0x3078d8);return{'ok':!![],'data':_0x24759c,'message':_0x215a0f(0x10e)+_0x24759c[_0x215a0f(0xfb)]+'\x20schedule\x20'+_0x24759c['scheduleId']};},async 'dryRun'(_0x44fca3){const _0x1ffacd=a58_0x156875,_0x365fd2=readScheduleInput(_0x44fca3);return dryRun('POST',scheduleCollectionPath(_0x44fca3['appCode']))[_0x1ffacd(0xdc)](_0x365fd2)['description'](_0x1ffacd(0x101))[_0x1ffacd(0xe3)]();}},scheduleList={'service':a58_0x156875(0xda),'command':a58_0x156875(0xdf),'description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':a58_0x156875(0xeb),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x5933a9){const _0x4f8736=a58_0x156875,_0x2b584c=_0x5933a9[_0x4f8736(0x107)](_0x4f8736(0xe4));if(!Number[_0x4f8736(0xf3)](_0x2b584c)||_0x2b584c<0x1||_0x2b584c>0x64)throw CliErrors[_0x4f8736(0xf9)](_0x4f8736(0xe9));const _0x369acd=_0x5933a9[_0x4f8736(0xd0)]('cursor');if(_0x369acd&&(_0x369acd[_0x4f8736(0x102)]>0x400||_0x369acd[_0x4f8736(0xf0)]()!==_0x369acd))throw CliErrors[_0x4f8736(0xf9)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0x1e6f4d){const _0x2ea725=a58_0x156875,_0x4c2907=_0x1e6f4d[_0x2ea725(0xd0)](_0x2ea725(0xe7)),_0x6338a9=await listRuntimeSchedules(_0x1e6f4d[_0x2ea725(0xfd)],{'kind':_0x1e6f4d[_0x2ea725(0xd0)](_0x2ea725(0xfb)),'limit':_0x1e6f4d['num'](_0x2ea725(0xe4)),..._0x4c2907?{'cursor':_0x4c2907}:{}});return{'ok':!![],'data':_0x6338a9};}},scheduleDetail={'service':a58_0x156875(0xda),'command':a58_0x156875(0xe8),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x37cd8a){const _0x50e3c0=a58_0x156875,_0x3ecefd=await getRuntimeSchedule(_0x37cd8a[_0x50e3c0(0xfd)],_0x37cd8a[_0x50e3c0(0xd0)]('schedule-id'));return{'ok':!![],'data':_0x3ecefd};}},scheduleRun={'service':a58_0x156875(0xda),'command':'run','description':a58_0x156875(0xe2),'risk':a58_0x156875(0xf7),'confirmationDescription':a58_0x156875(0xff),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x9dd6cd){const _0x42f840=a58_0x156875,_0xb37915=_0x9dd6cd[_0x42f840(0xd0)]('schedule-id'),_0x2c132e=await runRuntimeSchedule(_0x9dd6cd[_0x42f840(0xfd)],_0xb37915);return{'ok':!![],'data':_0x2c132e,'message':'Queued\x20Task\x20'+_0x2c132e['taskId']+_0x42f840(0xd4)+_0xb37915};},async 'dryRun'(_0x1da7c2){const _0x136335=a58_0x156875,_0x47b1f6=_0x1da7c2[_0x136335(0xd0)](_0x136335(0xcf));return dryRun('POST',scheduleItemPath(_0x1da7c2[_0x136335(0xfd)],_0x47b1f6)+'/run')['description'](_0x136335(0xf2)+_0x47b1f6+_0x136335(0x104))[_0x136335(0xe3)]();}},scheduleDelete={'service':a58_0x156875(0xda),'command':a58_0x156875(0xd7),'description':a58_0x156875(0xde),'risk':a58_0x156875(0xf7),'confirmationDescription':a58_0x156875(0xd3),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x13d3a1){const _0x5c1558=a58_0x156875,_0x403b30=_0x13d3a1[_0x5c1558(0xd0)](_0x5c1558(0xcf)),_0x2bb553=await deleteRuntimeSchedule(_0x13d3a1[_0x5c1558(0xfd)],_0x403b30);return{'ok':!![],'data':_0x2bb553,'message':_0x5c1558(0xf8)+_0x403b30};},async 'dryRun'(_0x2e5b68){const _0x1b6b54=a58_0x156875,_0x322466=_0x2e5b68[_0x1b6b54(0xd0)](_0x1b6b54(0xcf));return dryRun('DELETE',scheduleItemPath(_0x2e5b68['appCode'],_0x322466))[_0x1b6b54(0xec)](_0x1b6b54(0xe0)+_0x322466)[_0x1b6b54(0xe3)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];function a58_0xb2c6(){const _0x35e7ec=['Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','409196WHiozo','/schedules','10eNWnDj','model','44lMjizm','schedule-id','str','2022BfAFEB','cron','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','\x20from\x20schedule\x20','number','--title\x20must\x20not\x20be\x20blank.','delete','kimi/k3','Schedule\x20title','schedule','title','body','470792dMjeKz','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','list','Preview:\x20delete\x20schedule\x20','/api/harness/apps/','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','build','limit','128191qiKNrC','3283704xhsJUV','cursor','detail','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','validate','read','description','1140848bLAeFr','deepseek-v4-flash-0731','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','trim','36XKnXdJ','Preview:\x20run\x20schedule\x20','isSafeInteger','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','ONCE','high-risk-write','Deleted\x20schedule\x20','validation','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','kind','--prompt\x20must\x20not\x20be\x20blank.','appCode','prompt','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','102cGxXph','Preview:\x20create\x20an\x20Agent\x20schedule','length','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','\x20immediately','106UVRNtK','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','num','UTC','scheduled-at','CRON','3100140TIaUbf','string','Schedule\x20input\x20is\x20valid','Created\x20'];a58_0xb2c6=function(){return _0x35e7ec;};return a58_0xb2c6();}
@@ -1 +1 @@
1
- function a58_0x34d1(){const _0x37e1cd=['377923kfNuvp','2654092pqTbrZ','2902ndBTWA','read','1905288QoMqUS','5heqXAX','Export\x20machine-readable\x20command\x20schema\x20(JSON)','export','664jfWwuf','66IaKMEd','110PLSGVj','20188clsSUb','117126OHuRdR','schema','7698370NWmeYJ','897zxjjIj'];a58_0x34d1=function(){return _0x37e1cd;};return a58_0x34d1();}const a58_0x48c4d1=a58_0x4145;(function(_0x4d1aca,_0x4d9b61){const _0x901067=a58_0x4145,_0x229878=_0x4d1aca();while(!![]){try{const _0x2f51c5=parseInt(_0x901067(0xd7))/0x1+parseInt(_0x901067(0xde))/0x2*(-parseInt(_0x901067(0xdb))/0x3)+-parseInt(_0x901067(0xdd))/0x4*(-parseInt(_0x901067(0xd1))/0x5)+-parseInt(_0x901067(0xd5))/0x6*(parseInt(_0x901067(0xdc))/0x7)+parseInt(_0x901067(0xd4))/0x8*(-parseInt(_0x901067(0xd8))/0x9)+parseInt(_0x901067(0xda))/0xa+parseInt(_0x901067(0xd6))/0xb*(parseInt(_0x901067(0xe0))/0xc);if(_0x2f51c5===_0x4d9b61)break;else _0x229878['push'](_0x229878['shift']());}catch(_0x2c45cd){_0x229878['push'](_0x229878['shift']());}}}(a58_0x34d1,0xe3e16));function a58_0x4145(_0x11c264,_0x35466c){_0x11c264=_0x11c264-0xd1;const _0x34d1e1=a58_0x34d1();let _0x414569=_0x34d1e1[_0x11c264];return _0x414569;}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x3abf22){const _0x45a619=await buildSchemaPayload();return{'ok':!![],'data':_0x45a619};}export const schemaDefinition={'service':a58_0x48c4d1(0xd9),'command':a58_0x48c4d1(0xd3),'description':a58_0x48c4d1(0xd2),'risk':a58_0x48c4d1(0xdf),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
1
+ const a59_0x317b07=a59_0x331c;(function(_0x5434be,_0x3c5d83){const _0x2d8dd3=a59_0x331c,_0x9ba16f=_0x5434be();while(!![]){try{const _0x3896e=-parseInt(_0x2d8dd3(0x14f))/0x1+-parseInt(_0x2d8dd3(0x153))/0x2*(-parseInt(_0x2d8dd3(0x156))/0x3)+parseInt(_0x2d8dd3(0x151))/0x4+-parseInt(_0x2d8dd3(0x152))/0x5*(-parseInt(_0x2d8dd3(0x14e))/0x6)+-parseInt(_0x2d8dd3(0x150))/0x7+-parseInt(_0x2d8dd3(0x155))/0x8+-parseInt(_0x2d8dd3(0x154))/0x9*(-parseInt(_0x2d8dd3(0x14c))/0xa);if(_0x3896e===_0x3c5d83)break;else _0x9ba16f['push'](_0x9ba16f['shift']());}catch(_0xd01fa9){_0x9ba16f['push'](_0x9ba16f['shift']());}}}(a59_0x1851,0x765bf));import{buildSchemaPayload}from'../framework/schema-export.js';function a59_0x331c(_0x5b32df,_0x2d4236){_0x5b32df=_0x5b32df-0x14c;const _0x185180=a59_0x1851();let _0x331caf=_0x185180[_0x5b32df];return _0x331caf;}function a59_0x1851(){const _0x5da34e=['17401RvNjrQ','5168541litfcO','3184504DIIkTj','1367645NxFYxp','119166FXnGdU','4491DWMNWh','997616umlsbf','3wkqkBI','schema','4730IpoPpN','read','6ENjXos'];a59_0x1851=function(){return _0x5da34e;};return a59_0x1851();}async function execute(_0x4231ec){const _0x5e1dbe=await buildSchemaPayload();return{'ok':!![],'data':_0x5e1dbe};}export const schemaDefinition={'service':a59_0x317b07(0x157),'command':'export','description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':a59_0x317b07(0x14d),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
1
- (function(_0x36810b,_0x16fcee){const _0x2de24c=a59_0x5852,_0x25d682=_0x36810b();while(!![]){try{const _0x1a228b=parseInt(_0x2de24c(0x17e))/0x1+parseInt(_0x2de24c(0x139))/0x2+parseInt(_0x2de24c(0x14e))/0x3*(parseInt(_0x2de24c(0x142))/0x4)+-parseInt(_0x2de24c(0x15e))/0x5*(-parseInt(_0x2de24c(0x17b))/0x6)+-parseInt(_0x2de24c(0x180))/0x7+parseInt(_0x2de24c(0x14c))/0x8*(parseInt(_0x2de24c(0x11d))/0x9)+-parseInt(_0x2de24c(0x159))/0xa;if(_0x1a228b===_0x16fcee)break;else _0x25d682['push'](_0x25d682['shift']());}catch(_0x40ae7a){_0x25d682['push'](_0x25d682['shift']());}}}(a59_0x3b18,0xad852));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x461b88,_0x12482e){const _0x4d8f1d=a59_0x5852,_0x273fab=listLocalServiceTrees();let _0x259fd2;for(const _0x4f25d1 of _0x273fab){const _0x2f739f=matchServiceTreeCommand(_0x4f25d1,_0x461b88);if(!_0x2f739f)continue;(!_0x259fd2||_0x2f739f[_0x4d8f1d(0x17a)][_0x4d8f1d(0x123)][_0x4d8f1d(0x168)]>_0x259fd2[_0x4d8f1d(0x17a)][_0x4d8f1d(0x123)]['length'])&&(_0x259fd2={'tree':_0x4f25d1,'command':_0x2f739f['command'],'remainingArgs':_0x2f739f[_0x4d8f1d(0x11e)]});}if(!_0x259fd2)return undefined;const _0x587def={..._0x12482e};return applyAppBinding(_0x259fd2[_0x4d8f1d(0x128)],_0x259fd2[_0x4d8f1d(0x17a)],_0x587def),{'definition':buildDynamicCommandDefinition(_0x259fd2[_0x4d8f1d(0x128)],_0x259fd2[_0x4d8f1d(0x17a)]),'args':_0x259fd2[_0x4d8f1d(0x11e)],'flags':_0x587def,'tree':_0x259fd2[_0x4d8f1d(0x128)],'command':_0x259fd2['command']};}export function generateDynamicServiceHelp(_0x1e834f){const _0x195550=a59_0x5852,_0x4ac3a4=listLocalServiceTrees()[_0x195550(0x12c)](_0x3e7d01=>_0x3e7d01['service']['code']===_0x1e834f);if(!_0x4ac3a4)return undefined;const _0x42d790=[CLI_BIN_NAME+'\x20'+_0x1e834f+_0x195550(0x11c),'',_0x4ac3a4['service'][_0x195550(0x149)]||_0x1e834f,_0x4ac3a4['service'][_0x195550(0x15c)]?'\x20\x20'+_0x4ac3a4[_0x195550(0x140)]['description']:'','','Commands:',..._0x4ac3a4[_0x195550(0x15a)][_0x195550(0x132)](_0x56a700=>{const _0x266cd0=_0x195550,_0x142818=_0x56a700[_0x266cd0(0x123)][_0x266cd0(0x13a)](0x1)[_0x266cd0(0x176)]('\x20'),_0x52a02c=_0x56a700[_0x266cd0(0x175)]===_0x266cd0(0x124)?'':'\x20['+_0x56a700[_0x266cd0(0x175)]+']';return'\x20\x20'+_0x142818[_0x266cd0(0x145)](0x18)+'\x20'+(_0x56a700['description']||'')+_0x52a02c;}),'',_0x195550(0x160)+CLI_BIN_NAME+_0x195550(0x166)+_0x1e834f+_0x195550(0x12f)][_0x195550(0x173)](Boolean);return _0x42d790[_0x195550(0x176)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x2aed65=>{const _0x296c6f=a59_0x5852,_0x2f9bc0=_0x2aed65['normalizedManifest'];return{'service':_0x2f9bc0[_0x296c6f(0x140)][_0x296c6f(0x125)],'label':_0x2f9bc0[_0x296c6f(0x140)][_0x296c6f(0x149)]||_0x2f9bc0[_0x296c6f(0x140)][_0x296c6f(0x125)],'commands':_0x2f9bc0[_0x296c6f(0x15a)][_0x296c6f(0x132)](_0x4ccd54=>({'command':dynamicCommandName(_0x4ccd54),'description':_0x4ccd54[_0x296c6f(0x15c)]||_0x296c6f(0x16a)+_0x4ccd54[_0x296c6f(0x151)],'tag':riskTag(_0x4ccd54['risk'])}))};});}export function getDynamicServiceEntry(_0x57cf88){const _0x57ceb7=a59_0x5852;return listDynamicServiceEntries()[_0x57ceb7(0x12c)](_0x55dca3=>_0x55dca3['service']===_0x57cf88);}export function listDynamicServiceDefinitions(_0x52349f){const _0x4acdbd=a59_0x5852;return listLocalServiceTrees()[_0x4acdbd(0x173)](_0x1c29b1=>!_0x52349f||_0x1c29b1['service'][_0x4acdbd(0x125)]===_0x52349f)[_0x4acdbd(0x14d)](_0x26f7ba=>_0x26f7ba['commands']['map'](_0x3ff951=>buildDynamicCommandDefinition(_0x26f7ba,_0x3ff951)));}export function getDynamicServiceDefinitions(_0x1f9f60){const _0x3fbfd2=listDynamicServiceDefinitions(_0x1f9f60);return _0x3fbfd2['length']>0x0?_0x3fbfd2:undefined;}export function findDynamicServiceDefinition(_0x1bd76f,_0x2b00e0){const _0x36fa2c=a59_0x5852;return listDynamicServiceDefinitions(_0x1bd76f)[_0x36fa2c(0x12c)](_0x422b2f=>_0x422b2f[_0x36fa2c(0x17a)]===_0x2b00e0);}export function buildDynamicCommandDefinition(_0x3d09d9,_0xa1c5a4){const _0x259950=a59_0x5852;return{'service':_0x3d09d9[_0x259950(0x140)][_0x259950(0x125)],'command':dynamicCommandName(_0xa1c5a4),'description':_0xa1c5a4[_0x259950(0x15c)]||_0x259950(0x16a)+_0xa1c5a4[_0x259950(0x151)],'risk':_0xa1c5a4[_0x259950(0x175)],..._0xa1c5a4[_0x259950(0x175)]===_0x259950(0x124)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0xa1c5a4)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0xa1c5a4[_0x259950(0x165)][_0x259950(0x132)](_0xbdd406=>({'name':_0xbdd406[_0x259950(0x149)],'description':_0xbdd406[_0x259950(0x15c)]||_0xbdd406[_0x259950(0x149)],'required':_0xbdd406[_0x259950(0x155)]})),'flags':_0xa1c5a4[_0x259950(0x126)][_0x259950(0x132)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0xa1c5a4),async 'dryRun'(_0xd6308f){const _0x4e369a=_0x259950,_0x2e8654=await compilePlan(_0xa1c5a4,_0xd6308f);return{'method':_0x4e369a(0x13c),'url':_0xa1c5a4[_0x4e369a(0x151)],'body':{'target':targetPreview(_0x2e8654),'params':_0x2e8654[_0x4e369a(0x110)]},'description':_0x4e369a(0x162)+_0xa1c5a4[_0x4e369a(0x151)]};},async 'execute'(_0x1990c2){const _0x39fc8d=_0x259950,_0x310eaa=await compilePlan(_0xa1c5a4,_0x1990c2),_0x296797=Date[_0x39fc8d(0x154)](),_0x1c4851=await executePlan(_0x310eaa,_0xa1c5a4,_0x1990c2),_0x5e1c72=Date[_0x39fc8d(0x154)]()-_0x296797;return{'ok':!![],'data':{'service':_0x3d09d9[_0x39fc8d(0x140)],'command':_0xa1c5a4[_0x39fc8d(0x151)],'target':targetPreview(_0x310eaa),'result':_0x1c4851,'elapsed':_0x5e1c72},'message':'Service\x20command\x20'+_0xa1c5a4[_0x39fc8d(0x151)]+_0x39fc8d(0x16d)+_0x5e1c72+'ms'};}};}function buildDynamicConfirmationDescription(_0x635a2a){const _0x2de74c=a59_0x5852,_0x488462=_0x635a2a['description']||_0x635a2a[_0x2de74c(0x151)],_0x153a2c=_0x635a2a['risk']===_0x2de74c(0x137)?_0x2de74c(0x172):_0x2de74c(0x170);return _0x2de74c(0x17f)+_0x488462+'”。'+_0x153a2c;}function dynamicCommandName(_0x46b543){const _0x44c6aa=a59_0x5852;return _0x46b543[_0x44c6aa(0x123)][_0x44c6aa(0x13a)](0x1)['join']('\x20');}function riskTag(_0x43de24){const _0x4d90b5=a59_0x5852;return _0x43de24===_0x4d90b5(0x124)?'':'\x20\x20['+_0x43de24+']';}function flagToCommandFlag(_0x4b06a0){const _0x15a85f=a59_0x5852;return{'name':_0x4b06a0[_0x15a85f(0x158)],'type':_0x4b06a0[_0x15a85f(0x11a)]===_0x15a85f(0x17c)?'string':_0x4b06a0[_0x15a85f(0x11a)],'description':_0x4b06a0[_0x15a85f(0x15c)]||_0x4b06a0[_0x15a85f(0x149)],'required':_0x4b06a0[_0x15a85f(0x155)],'default':isPrimitiveFlagDefault(_0x4b06a0[_0x15a85f(0x148)])?_0x4b06a0[_0x15a85f(0x148)]:undefined,'enum':_0x4b06a0[_0x15a85f(0x147)]};}async function compilePlan(_0x270f59,_0x53334a){const _0x5552ab=a59_0x5852;return compileServiceTreeCommand(_0x270f59,{'flags':_0x53334a[_0x5552ab(0x156)],'args':_0x53334a[_0x5552ab(0x165)],'context':await buildServiceContext(_0x270f59,_0x53334a)});}async function buildServiceContext(_0x2188ea,_0x4a00d4){const _0x35201b=a59_0x5852,_0x39292b={'appCode':_0x4a00d4['appCode'],'env':_0x4a00d4[_0x35201b(0x153)],'envName':_0x4a00d4[_0x35201b(0x153)]};if(!usesRuntimeContext(_0x2188ea))return _0x39292b;const _0x42713c=await getLoginUserInfo(),_0x44c170=pickFirst(_0x42713c[_0x35201b(0x113)],_0x42713c['id']);return{..._0x39292b,'user':_0x42713c,'userId':_0x44c170,'id':_0x42713c['id'],'username':pickFirst(_0x42713c[_0x35201b(0x12d)],_0x42713c['userName'],_0x42713c[_0x35201b(0x16c)]),'userName':_0x42713c[_0x35201b(0x111)],'nickname':pickFirst(_0x42713c[_0x35201b(0x179)],_0x42713c[_0x35201b(0x129)]),'nickName':_0x42713c['nickName'],'tenantCode':_0x42713c[_0x35201b(0x119)],'employeeId':_0x42713c[_0x35201b(0x16f)]};}function usesRuntimeContext(_0x338cb8){const _0xb41f00=a59_0x5852;return _0x338cb8[_0xb41f00(0x164)][_0xb41f00(0x130)](_0x1c7485=>typeof _0x1c7485[_0xb41f00(0x135)]===_0xb41f00(0x15f)&&(_0x1c7485[_0xb41f00(0x135)]['startsWith'](_0xb41f00(0x120))||_0x1c7485['source'][_0xb41f00(0x12b)](_0xb41f00(0x167))));}function pickFirst(..._0x2e63f6){const _0x215f9a=a59_0x5852;return _0x2e63f6[_0x215f9a(0x12c)](_0x37ed8d=>_0x37ed8d!==undefined&&_0x37ed8d!==null);}async function executePlan(_0x54cb8a,_0x180081,_0x3ca877){const _0x3d5235=a59_0x5852;if(_0x54cb8a[_0x3d5235(0x17d)]===_0x3d5235(0x114)){const _0x8d3add=await resolveDatasetCode(_0x54cb8a,_0x180081,_0x3ca877);return executeData(_0x8d3add,_0x54cb8a['command'],_0x54cb8a['params']);}if(_0x54cb8a[_0x3d5235(0x17d)]===_0x3d5235(0x163)){if(!_0x54cb8a[_0x3d5235(0x12e)])throw CliErrors['validation'](_0x3d5235(0x15d)+_0x180081['cliPath']+_0x3d5235(0x121));return executeSdkSql(_0x54cb8a[_0x3d5235(0x12e)],normalizeScalarParams(_0x54cb8a['params']));}if(_0x54cb8a[_0x3d5235(0x17d)]===_0x3d5235(0x122)){const _0x4ef816=_0x54cb8a[_0x3d5235(0x13f)]||_0x54cb8a[_0x3d5235(0x152)]||(_0x54cb8a[_0x3d5235(0x16b)]==null?'':String(_0x54cb8a[_0x3d5235(0x16b)]));if(!_0x4ef816)throw CliErrors[_0x3d5235(0x112)](_0x3d5235(0x15d)+_0x180081['cliPath']+_0x3d5235(0x161));return executeSdkBff(_0x4ef816,_0x54cb8a[_0x3d5235(0x110)]);}throw CliErrors['validation']('Unsupported\x20service\x20target\x20kind:\x20'+_0x54cb8a[_0x3d5235(0x17d)]);}async function resolveDatasetCode(_0x171e93,_0x117ede,_0x52b756){const _0xef99af=a59_0x5852;if(_0x171e93['datasetCode'])return _0x171e93['datasetCode'];if(!_0x171e93['datatable'])throw CliErrors[_0xef99af(0x112)](_0xef99af(0x15d)+_0x117ede[_0xef99af(0x151)]+_0xef99af(0x174));const _0x229a12=await listDatasets(_0x52b756[_0xef99af(0x118)]),_0xf40a1c=_0x229a12[_0xef99af(0x12c)](_0x2df350=>_0x2df350[_0xef99af(0x146)]?.['tableName']===_0x171e93[_0xef99af(0x136)]);if(!_0xf40a1c?.[_0xef99af(0x125)])throw CliErrors[_0xef99af(0x112)](_0xef99af(0x13d)+_0x171e93['datatable']+_0xef99af(0x14b)+_0x52b756[_0xef99af(0x118)]+'.',_0xef99af(0x177));return _0xf40a1c[_0xef99af(0x125)];}function applyAppBinding(_0x2bf737,_0x6323af,_0x1c3a0d){const _0x5192fb=a59_0x5852,_0x55dbe8=_0x6323af[_0x5192fb(0x134)][_0x5192fb(0x115)];if(!_0x55dbe8)return;const _0x5a9661=_0x2bf737[_0x5192fb(0x117)][_0x55dbe8];if(!_0x5a9661)throw CliErrors[_0x5192fb(0x112)](_0x5192fb(0x11b)+_0x55dbe8+_0x5192fb(0x16e)+_0x6323af[_0x5192fb(0x151)]+'.',_0x5192fb(0x157));const _0x5486fd=_0x5a9661['appcode']||_0x5a9661[_0x5192fb(0x118)];_0x5486fd&&!hasText(_0x1c3a0d[_0x5192fb(0x150)])&&(_0x1c3a0d['appcode']=_0x5486fd),_0x5a9661[_0x5192fb(0x13e)]&&!hasText(_0x1c3a0d[_0x5192fb(0x13e)])&&!hasText(_0x1c3a0d['appcode'])&&(_0x1c3a0d['app']=_0x5a9661[_0x5192fb(0x13e)]),_0x5a9661[_0x5192fb(0x144)]&&!hasText(_0x1c3a0d[_0x5192fb(0x144)])&&(_0x1c3a0d['env']=_0x5a9661[_0x5192fb(0x144)]);}function renderDynamicCommandHelp(_0x226bcd){const _0x18b98a=a59_0x5852,_0x57ac9d=[_0x18b98a(0x14f),'\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x226bcd[_0x18b98a(0x134)]['kind'],_0x18b98a(0x116)+_0x226bcd[_0x18b98a(0x134)][_0x18b98a(0x17a)]];if(_0x226bcd[_0x18b98a(0x134)]['datasetCode'])_0x57ac9d['push']('\x20\x20\x20\x20datasetCode:\x20'+_0x226bcd[_0x18b98a(0x134)][_0x18b98a(0x171)]);if(_0x226bcd[_0x18b98a(0x134)][_0x18b98a(0x136)])_0x57ac9d['push'](_0x18b98a(0x138)+_0x226bcd['target'][_0x18b98a(0x136)]);if(_0x226bcd[_0x18b98a(0x134)]['sqlCode'])_0x57ac9d[_0x18b98a(0x131)](_0x18b98a(0x11f)+_0x226bcd[_0x18b98a(0x134)][_0x18b98a(0x12e)]);if(_0x226bcd['target']['scriptName'])_0x57ac9d['push'](_0x18b98a(0x133)+_0x226bcd[_0x18b98a(0x134)][_0x18b98a(0x13f)]);if(_0x226bcd[_0x18b98a(0x164)]['length']>0x0){_0x57ac9d[_0x18b98a(0x131)]('',_0x18b98a(0x127));for(const _0x1865ba of _0x226bcd[_0x18b98a(0x164)]){_0x57ac9d[_0x18b98a(0x131)](_0x18b98a(0x143)+(_0x1865ba[_0x18b98a(0x135)]||'const')+_0x18b98a(0x169)+_0x1865ba['target']+(_0x1865ba['operator']?'.'+_0x1865ba[_0x18b98a(0x14a)]:''));}}return _0x57ac9d[_0x18b98a(0x176)]('\x0a');}function a59_0x3b18(){const _0x48d76b=['\x20\x20\x20\x20sqlCode:\x20','context.','\x20requires\x20target.sqlCode.','bff','fullPath','read','code','flags','\x20\x20MAP\x20TO','tree','nickName','entries','startsWith','find','username','sqlCode','`\x20to\x20inspect\x20the\x20manifest.','some','push','map','\x20\x20\x20\x20functionName:\x20','target','source','datatable','high-risk-write','\x20\x20\x20\x20datatable:\x20','1276122XPhAKE','slice','trim','SERVICE_TREE','Cannot\x20resolve\x20datatable\x20\x22','app','scriptName','service','boolean','4226172hcLApH','\x20\x20\x20\x20','env','padEnd','dbtableConfig','enum','default','name','operator','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','791984RHJUZZ','flatMap','3EogAgs','\x20\x20SERVICE\x20TREE\x20TARGET','appcode','cliPath','bffCode','envName','now','required','rawFlags','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','cliName','21987130xVghTx','commands','number','description','Service\x20command\x20','600TgkAsC','string','Use\x20`','\x20requires\x20target.functionName.','Preview\x20dynamic\x20service\x20command:\x20','sql','mapTo','args','\x20service\x20detail\x20--service\x20','ctx.','length','\x20->\x20','Run\x20service\x20command\x20','bffId','loginName','\x20completed\x20in\x20','\x22\x20in\x20service\x20command\x20','employeeId','该命令被清单标记为写入,可能修改业务数据或服务状态。','datasetCode','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','filter','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','risk','join','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','fromEntries','nickname','command','23526cSNKou','json','kind','830712sRecEg','将通过\x20Service\x20Tree\x20执行“','3376639crHBRv','params','userName','validation','userId','data','appRef','\x20\x20\x20\x20command:\x20','appBindings','appCode','tenantCode','type','Unknown\x20appRef\x20\x22','\x20<command>\x20[flags]','36AopNQV','remainingArgs'];a59_0x3b18=function(){return _0x48d76b;};return a59_0x3b18();}function targetPreview(_0x2792fa){const _0x29538f=a59_0x5852;return{'kind':_0x2792fa[_0x29538f(0x17d)],'command':_0x2792fa[_0x29538f(0x17a)],'appRef':_0x2792fa['appRef'],'datasetCode':_0x2792fa[_0x29538f(0x171)],'datatable':_0x2792fa[_0x29538f(0x136)],'sqlCode':_0x2792fa[_0x29538f(0x12e)],'bffCode':_0x2792fa['bffCode'],'bffId':_0x2792fa[_0x29538f(0x16b)],'functionName':_0x2792fa[_0x29538f(0x13f)]};}function normalizeScalarParams(_0x17a212){const _0x5f1932=a59_0x5852;return Object[_0x5f1932(0x178)](Object[_0x5f1932(0x12a)](_0x17a212)[_0x5f1932(0x173)](([,_0x92a0de])=>typeof _0x92a0de===_0x5f1932(0x15f)||typeof _0x92a0de===_0x5f1932(0x15b)));}function a59_0x5852(_0xe913d3,_0x4e40b8){_0xe913d3=_0xe913d3-0x110;const _0x3b18e9=a59_0x3b18();let _0x5852a7=_0x3b18e9[_0xe913d3];return _0x5852a7;}function hasText(_0x1b7ff1){const _0xf76ce4=a59_0x5852;return typeof _0x1b7ff1===_0xf76ce4(0x15f)&&_0x1b7ff1[_0xf76ce4(0x13b)]()[_0xf76ce4(0x168)]>0x0;}function isPrimitiveFlagDefault(_0xf4ab82){const _0x42a50b=a59_0x5852;return _0xf4ab82===undefined||typeof _0xf4ab82===_0x42a50b(0x15f)||typeof _0xf4ab82==='number'||typeof _0xf4ab82===_0x42a50b(0x141);}
1
+ (function(_0x140884,_0x548c64){const _0x12429b=a60_0x3218,_0x5ed051=_0x140884();while(!![]){try{const _0x4ee538=parseInt(_0x12429b(0x17f))/0x1+parseInt(_0x12429b(0x11b))/0x2+parseInt(_0x12429b(0x14f))/0x3+-parseInt(_0x12429b(0x181))/0x4*(-parseInt(_0x12429b(0x146))/0x5)+-parseInt(_0x12429b(0x12c))/0x6+parseInt(_0x12429b(0x15c))/0x7*(parseInt(_0x12429b(0x166))/0x8)+-parseInt(_0x12429b(0x11c))/0x9;if(_0x4ee538===_0x548c64)break;else _0x5ed051['push'](_0x5ed051['shift']());}catch(_0x199b50){_0x5ed051['push'](_0x5ed051['shift']());}}}(a60_0x332b,0xb9163));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';function a60_0x3218(_0x558424,_0x429b98){_0x558424=_0x558424-0x118;const _0x332b5b=a60_0x332b();let _0x3218ba=_0x332b5b[_0x558424];return _0x3218ba;}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(_0x31ade1,_0x46fbee){const _0x5dcb22=a60_0x3218,_0xdcdcaf=listLocalServiceTrees();let _0x53424a;for(const _0x3b2710 of _0xdcdcaf){const _0x59dc22=matchServiceTreeCommand(_0x3b2710,_0x31ade1);if(!_0x59dc22)continue;(!_0x53424a||_0x59dc22['command']['fullPath'][_0x5dcb22(0x134)]>_0x53424a[_0x5dcb22(0x17c)]['fullPath'][_0x5dcb22(0x134)])&&(_0x53424a={'tree':_0x3b2710,'command':_0x59dc22[_0x5dcb22(0x17c)],'remainingArgs':_0x59dc22[_0x5dcb22(0x12a)]});}if(!_0x53424a)return undefined;const _0x4a411a={..._0x46fbee};return applyAppBinding(_0x53424a[_0x5dcb22(0x133)],_0x53424a[_0x5dcb22(0x17c)],_0x4a411a),{'definition':buildDynamicCommandDefinition(_0x53424a['tree'],_0x53424a[_0x5dcb22(0x17c)]),'args':_0x53424a[_0x5dcb22(0x12a)],'flags':_0x4a411a,'tree':_0x53424a[_0x5dcb22(0x133)],'command':_0x53424a[_0x5dcb22(0x17c)]};}export function generateDynamicServiceHelp(_0x45e2d5){const _0x4cee64=a60_0x3218,_0x33c37b=listLocalServiceTrees()[_0x4cee64(0x123)](_0x237a18=>_0x237a18[_0x4cee64(0x12b)][_0x4cee64(0x15f)]===_0x45e2d5);if(!_0x33c37b)return undefined;const _0x48b375=[CLI_BIN_NAME+'\x20'+_0x45e2d5+_0x4cee64(0x16e),'',_0x33c37b[_0x4cee64(0x12b)][_0x4cee64(0x15a)]||_0x45e2d5,_0x33c37b[_0x4cee64(0x12b)]['description']?'\x20\x20'+_0x33c37b[_0x4cee64(0x12b)][_0x4cee64(0x137)]:'','',_0x4cee64(0x165),..._0x33c37b['commands']['map'](_0x42df36=>{const _0x161803=_0x4cee64,_0x52ec81=_0x42df36[_0x161803(0x136)][_0x161803(0x141)](0x1)[_0x161803(0x121)]('\x20'),_0x333fa7=_0x42df36[_0x161803(0x156)]===_0x161803(0x122)?'':'\x20['+_0x42df36[_0x161803(0x156)]+']';return'\x20\x20'+_0x52ec81['padEnd'](0x18)+'\x20'+(_0x42df36[_0x161803(0x137)]||'')+_0x333fa7;}),'',_0x4cee64(0x163)+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x45e2d5+_0x4cee64(0x149)][_0x4cee64(0x177)](Boolean);return _0x48b375[_0x4cee64(0x121)]('\x0a');}export function listDynamicServiceEntries(){const _0x3eb399=a60_0x3218;return listLocalServices()[_0x3eb399(0x139)](_0x346369=>{const _0x583cbe=_0x3eb399,_0x29a20e=_0x346369[_0x583cbe(0x16b)];return{'service':_0x29a20e[_0x583cbe(0x12b)][_0x583cbe(0x15f)],'label':_0x29a20e[_0x583cbe(0x12b)][_0x583cbe(0x15a)]||_0x29a20e[_0x583cbe(0x12b)]['code'],'commands':_0x29a20e[_0x583cbe(0x171)][_0x583cbe(0x139)](_0xae6aa5=>({'command':dynamicCommandName(_0xae6aa5),'description':_0xae6aa5[_0x583cbe(0x137)]||_0x583cbe(0x124)+_0xae6aa5[_0x583cbe(0x15b)],'tag':riskTag(_0xae6aa5[_0x583cbe(0x156)])}))};});}export function getDynamicServiceEntry(_0x6f2351){const _0x531b15=a60_0x3218;return listDynamicServiceEntries()[_0x531b15(0x123)](_0x1189f6=>_0x1189f6[_0x531b15(0x12b)]===_0x6f2351);}export function listDynamicServiceDefinitions(_0x2a571d){const _0x3e5452=a60_0x3218;return listLocalServiceTrees()['filter'](_0x349f66=>!_0x2a571d||_0x349f66[_0x3e5452(0x12b)][_0x3e5452(0x15f)]===_0x2a571d)['flatMap'](_0x2424fa=>_0x2424fa[_0x3e5452(0x171)]['map'](_0x5a579b=>buildDynamicCommandDefinition(_0x2424fa,_0x5a579b)));}export function getDynamicServiceDefinitions(_0x315f8f){const _0x589113=a60_0x3218,_0x15cabe=listDynamicServiceDefinitions(_0x315f8f);return _0x15cabe[_0x589113(0x134)]>0x0?_0x15cabe:undefined;}export function findDynamicServiceDefinition(_0x4b395a,_0x3d3baa){const _0x43377d=a60_0x3218;return listDynamicServiceDefinitions(_0x4b395a)['find'](_0x43fe81=>_0x43fe81[_0x43377d(0x17c)]===_0x3d3baa);}export function buildDynamicCommandDefinition(_0x1c3919,_0x57d642){const _0x5d34fc=a60_0x3218;return{'service':_0x1c3919[_0x5d34fc(0x12b)][_0x5d34fc(0x15f)],'command':dynamicCommandName(_0x57d642),'description':_0x57d642[_0x5d34fc(0x137)]||_0x5d34fc(0x124)+_0x57d642[_0x5d34fc(0x15b)],'risk':_0x57d642[_0x5d34fc(0x156)],..._0x57d642[_0x5d34fc(0x156)]==='read'?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x57d642)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x57d642[_0x5d34fc(0x173)][_0x5d34fc(0x139)](_0x24209c=>({'name':_0x24209c['name'],'description':_0x24209c['description']||_0x24209c[_0x5d34fc(0x15a)],'required':_0x24209c[_0x5d34fc(0x145)]})),'flags':_0x57d642[_0x5d34fc(0x148)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x57d642),async 'dryRun'(_0x88ff7a){const _0x1bba47=_0x5d34fc,_0x537069=await compilePlan(_0x57d642,_0x88ff7a);return{'method':_0x1bba47(0x16a),'url':_0x57d642[_0x1bba47(0x15b)],'body':{'target':targetPreview(_0x537069),'params':_0x537069[_0x1bba47(0x17e)]},'description':_0x1bba47(0x160)+_0x57d642[_0x1bba47(0x15b)]};},async 'execute'(_0x14a84a){const _0x18111b=_0x5d34fc,_0x5817d5=await compilePlan(_0x57d642,_0x14a84a),_0x550c4e=Date[_0x18111b(0x168)](),_0x44c54b=await executePlan(_0x5817d5,_0x57d642,_0x14a84a),_0x20fb72=Date[_0x18111b(0x168)]()-_0x550c4e;return{'ok':!![],'data':{'service':_0x1c3919[_0x18111b(0x12b)],'command':_0x57d642[_0x18111b(0x15b)],'target':targetPreview(_0x5817d5),'result':_0x44c54b,'elapsed':_0x20fb72},'message':'Service\x20command\x20'+_0x57d642[_0x18111b(0x15b)]+_0x18111b(0x140)+_0x20fb72+'ms'};}};}function buildDynamicConfirmationDescription(_0x5344ba){const _0x1ccc11=a60_0x3218,_0x57f7c7=_0x5344ba[_0x1ccc11(0x137)]||_0x5344ba[_0x1ccc11(0x15b)],_0x5a73ed=_0x5344ba[_0x1ccc11(0x156)]===_0x1ccc11(0x11f)?_0x1ccc11(0x14d):_0x1ccc11(0x11e);return _0x1ccc11(0x12d)+_0x57f7c7+_0x1ccc11(0x14a)+_0x5a73ed;}function dynamicCommandName(_0x9d4992){const _0x2fbb89=a60_0x3218;return _0x9d4992[_0x2fbb89(0x136)]['slice'](0x1)[_0x2fbb89(0x121)]('\x20');}function riskTag(_0x4fcede){const _0x2837e7=a60_0x3218;return _0x4fcede===_0x2837e7(0x122)?'':'\x20\x20['+_0x4fcede+']';}function flagToCommandFlag(_0x279ede){const _0x283be0=a60_0x3218;return{'name':_0x279ede[_0x283be0(0x143)],'type':_0x279ede[_0x283be0(0x154)]==='json'?_0x283be0(0x130):_0x279ede[_0x283be0(0x154)],'description':_0x279ede[_0x283be0(0x137)]||_0x279ede[_0x283be0(0x15a)],'required':_0x279ede[_0x283be0(0x145)],'default':isPrimitiveFlagDefault(_0x279ede['default'])?_0x279ede['default']:undefined,'enum':_0x279ede[_0x283be0(0x118)]};}async function compilePlan(_0x125f0c,_0x114b9a){const _0x58f3d2=a60_0x3218;return compileServiceTreeCommand(_0x125f0c,{'flags':_0x114b9a[_0x58f3d2(0x16f)],'args':_0x114b9a[_0x58f3d2(0x173)],'context':await buildServiceContext(_0x125f0c,_0x114b9a)});}async function buildServiceContext(_0x24da79,_0x44aa32){const _0x2776cd=a60_0x3218,_0x30b193={'appCode':_0x44aa32[_0x2776cd(0x153)],'env':_0x44aa32[_0x2776cd(0x144)],'envName':_0x44aa32[_0x2776cd(0x144)]};if(!usesRuntimeContext(_0x24da79))return _0x30b193;const _0x4049da=await getLoginUserInfo(),_0x38187a=pickFirst(_0x4049da['userId'],_0x4049da['id']);return{..._0x30b193,'user':_0x4049da,'userId':_0x38187a,'id':_0x4049da['id'],'username':pickFirst(_0x4049da[_0x2776cd(0x15e)],_0x4049da[_0x2776cd(0x16d)],_0x4049da[_0x2776cd(0x150)]),'userName':_0x4049da[_0x2776cd(0x16d)],'nickname':pickFirst(_0x4049da[_0x2776cd(0x17d)],_0x4049da[_0x2776cd(0x162)]),'nickName':_0x4049da[_0x2776cd(0x162)],'tenantCode':_0x4049da[_0x2776cd(0x164)],'employeeId':_0x4049da[_0x2776cd(0x120)]};}function usesRuntimeContext(_0x176d41){const _0x1c6dd0=a60_0x3218;return _0x176d41[_0x1c6dd0(0x11d)]['some'](_0x20435a=>typeof _0x20435a['source']===_0x1c6dd0(0x130)&&(_0x20435a[_0x1c6dd0(0x125)][_0x1c6dd0(0x126)](_0x1c6dd0(0x12f))||_0x20435a[_0x1c6dd0(0x125)][_0x1c6dd0(0x126)](_0x1c6dd0(0x161))));}function pickFirst(..._0x3666bb){const _0x2b8090=a60_0x3218;return _0x3666bb[_0x2b8090(0x123)](_0x185111=>_0x185111!==undefined&&_0x185111!==null);}async function executePlan(_0x4d4784,_0x8bdf10,_0x55be3c){const _0x7d0d47=a60_0x3218;if(_0x4d4784[_0x7d0d47(0x159)]===_0x7d0d47(0x176)){const _0x4689ed=await resolveDatasetCode(_0x4d4784,_0x8bdf10,_0x55be3c);return executeData(_0x4689ed,_0x4d4784[_0x7d0d47(0x17c)],_0x4d4784[_0x7d0d47(0x17e)]);}if(_0x4d4784[_0x7d0d47(0x159)]===_0x7d0d47(0x142)){if(!_0x4d4784[_0x7d0d47(0x11a)])throw CliErrors['validation'](_0x7d0d47(0x175)+_0x8bdf10[_0x7d0d47(0x15b)]+_0x7d0d47(0x14e));return executeSdkSql(_0x4d4784['sqlCode'],normalizeScalarParams(_0x4d4784[_0x7d0d47(0x17e)]));}if(_0x4d4784[_0x7d0d47(0x159)]===_0x7d0d47(0x13b)){const _0x573b6f=_0x4d4784[_0x7d0d47(0x17b)]||_0x4d4784[_0x7d0d47(0x147)]||(_0x4d4784[_0x7d0d47(0x152)]==null?'':String(_0x4d4784['bffId']));if(!_0x573b6f)throw CliErrors[_0x7d0d47(0x172)](_0x7d0d47(0x175)+_0x8bdf10[_0x7d0d47(0x15b)]+_0x7d0d47(0x127));return executeSdkBff(_0x573b6f,_0x4d4784[_0x7d0d47(0x17e)]);}throw CliErrors[_0x7d0d47(0x172)](_0x7d0d47(0x13d)+_0x4d4784['kind']);}async function resolveDatasetCode(_0x4fdece,_0x3055d1,_0x226e97){const _0x217971=a60_0x3218;if(_0x4fdece[_0x217971(0x13a)])return _0x4fdece[_0x217971(0x13a)];if(!_0x4fdece['datatable'])throw CliErrors[_0x217971(0x172)](_0x217971(0x175)+_0x3055d1[_0x217971(0x15b)]+_0x217971(0x17a));const _0x20dbd0=await listDatasets(_0x226e97['appCode']),_0x13c01f=_0x20dbd0[_0x217971(0x123)](_0x2583d9=>_0x2583d9[_0x217971(0x170)]?.[_0x217971(0x167)]===_0x4fdece[_0x217971(0x129)]);if(!_0x13c01f?.[_0x217971(0x15f)])throw CliErrors[_0x217971(0x172)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x4fdece[_0x217971(0x129)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x226e97[_0x217971(0x153)]+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x13c01f[_0x217971(0x15f)];}function applyAppBinding(_0x167622,_0x5b4309,_0x237012){const _0x2948bb=a60_0x3218,_0xc4d1ac=_0x5b4309['target'][_0x2948bb(0x128)];if(!_0xc4d1ac)return;const _0x3bf0ba=_0x167622[_0x2948bb(0x16c)][_0xc4d1ac];if(!_0x3bf0ba)throw CliErrors[_0x2948bb(0x172)](_0x2948bb(0x174)+_0xc4d1ac+_0x2948bb(0x151)+_0x5b4309[_0x2948bb(0x15b)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x58cd8d=_0x3bf0ba['appcode']||_0x3bf0ba[_0x2948bb(0x153)];_0x58cd8d&&!hasText(_0x237012[_0x2948bb(0x14c)])&&(_0x237012[_0x2948bb(0x14c)]=_0x58cd8d),_0x3bf0ba[_0x2948bb(0x169)]&&!hasText(_0x237012[_0x2948bb(0x169)])&&!hasText(_0x237012[_0x2948bb(0x14c)])&&(_0x237012[_0x2948bb(0x169)]=_0x3bf0ba[_0x2948bb(0x169)]),_0x3bf0ba[_0x2948bb(0x13f)]&&!hasText(_0x237012[_0x2948bb(0x13f)])&&(_0x237012[_0x2948bb(0x13f)]=_0x3bf0ba['env']);}function renderDynamicCommandHelp(_0x43bb80){const _0x3a02c6=a60_0x3218,_0x37e8cc=[_0x3a02c6(0x119),_0x3a02c6(0x132)+_0x43bb80[_0x3a02c6(0x180)][_0x3a02c6(0x159)],'\x20\x20\x20\x20command:\x20'+_0x43bb80[_0x3a02c6(0x180)][_0x3a02c6(0x17c)]];if(_0x43bb80[_0x3a02c6(0x180)][_0x3a02c6(0x13a)])_0x37e8cc[_0x3a02c6(0x135)]('\x20\x20\x20\x20datasetCode:\x20'+_0x43bb80[_0x3a02c6(0x180)]['datasetCode']);if(_0x43bb80[_0x3a02c6(0x180)][_0x3a02c6(0x129)])_0x37e8cc['push']('\x20\x20\x20\x20datatable:\x20'+_0x43bb80[_0x3a02c6(0x180)][_0x3a02c6(0x129)]);if(_0x43bb80[_0x3a02c6(0x180)][_0x3a02c6(0x11a)])_0x37e8cc['push'](_0x3a02c6(0x13e)+_0x43bb80[_0x3a02c6(0x180)]['sqlCode']);if(_0x43bb80['target'][_0x3a02c6(0x17b)])_0x37e8cc[_0x3a02c6(0x135)](_0x3a02c6(0x155)+_0x43bb80['target']['scriptName']);if(_0x43bb80[_0x3a02c6(0x11d)][_0x3a02c6(0x134)]>0x0){_0x37e8cc[_0x3a02c6(0x135)]('',_0x3a02c6(0x178));for(const _0x741729 of _0x43bb80[_0x3a02c6(0x11d)]){_0x37e8cc[_0x3a02c6(0x135)](_0x3a02c6(0x12e)+(_0x741729[_0x3a02c6(0x125)]||_0x3a02c6(0x13c))+_0x3a02c6(0x131)+_0x741729['target']+(_0x741729[_0x3a02c6(0x15d)]?'.'+_0x741729[_0x3a02c6(0x15d)]:''));}}return _0x37e8cc['join']('\x0a');}function targetPreview(_0x383c9c){const _0x19de18=a60_0x3218;return{'kind':_0x383c9c['kind'],'command':_0x383c9c[_0x19de18(0x17c)],'appRef':_0x383c9c[_0x19de18(0x128)],'datasetCode':_0x383c9c['datasetCode'],'datatable':_0x383c9c[_0x19de18(0x129)],'sqlCode':_0x383c9c[_0x19de18(0x11a)],'bffCode':_0x383c9c[_0x19de18(0x147)],'bffId':_0x383c9c[_0x19de18(0x152)],'functionName':_0x383c9c['scriptName']};}function normalizeScalarParams(_0x1a14de){const _0x2387d8=a60_0x3218;return Object[_0x2387d8(0x179)](Object[_0x2387d8(0x14b)](_0x1a14de)['filter'](([,_0x201559])=>typeof _0x201559==='string'||typeof _0x201559===_0x2387d8(0x138)));}function hasText(_0x33ae4d){const _0xea442b=a60_0x3218;return typeof _0x33ae4d===_0xea442b(0x130)&&_0x33ae4d[_0xea442b(0x158)]()[_0xea442b(0x134)]>0x0;}function a60_0x332b(){const _0x1b2a9b=['target','15788muboLR','enum','\x20\x20SERVICE\x20TREE\x20TARGET','sqlCode','356958ZssCLL','5924898MltbMI','mapTo','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','high-risk-write','employeeId','join','read','find','Run\x20service\x20command\x20','source','startsWith','\x20requires\x20target.functionName.','appRef','datatable','remainingArgs','service','5011692CfZkmR','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','\x20\x20\x20\x20','context.','string','\x20->\x20','\x20\x20\x20\x20kind:\x20\x20\x20\x20','tree','length','push','fullPath','description','number','map','datasetCode','bff','const','Unsupported\x20service\x20target\x20kind:\x20','\x20\x20\x20\x20sqlCode:\x20','env','\x20completed\x20in\x20','slice','sql','cliName','envName','required','55EYNnxI','bffCode','flags','`\x20to\x20inspect\x20the\x20manifest.','\x22.\x20','entries','appcode','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','\x20requires\x20target.sqlCode.','277641IUzlzw','loginName','\x22\x20in\x20service\x20command\x20','bffId','appCode','type','\x20\x20\x20\x20functionName:\x20','risk','boolean','trim','kind','name','cliPath','7qhzqwv','operator','username','code','Preview\x20dynamic\x20service\x20command:\x20','ctx.','nickName','Use\x20`','tenantCode','Commands:','6241016EgxOhk','tableName','now','app','SERVICE_TREE','normalizedManifest','appBindings','userName','\x20<command>\x20[flags]','rawFlags','dbtableConfig','commands','validation','args','Unknown\x20appRef\x20\x22','Service\x20command\x20','data','filter','\x20\x20MAP\x20TO','fromEntries','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','scriptName','command','nickname','params','1157149pIjIMG'];a60_0x332b=function(){return _0x1b2a9b;};return a60_0x332b();}function isPrimitiveFlagDefault(_0x13395c){const _0x58664c=a60_0x3218;return _0x13395c===undefined||typeof _0x13395c===_0x58664c(0x130)||typeof _0x13395c==='number'||typeof _0x13395c===_0x58664c(0x157);}
@@ -1 +1 @@
1
- (function(_0x2bb466,_0x32d3d2){const _0x26d0b3=a60_0x6d6e,_0x49472e=_0x2bb466();while(!![]){try{const _0x456d59=parseInt(_0x26d0b3(0x166))/0x1*(-parseInt(_0x26d0b3(0x161))/0x2)+-parseInt(_0x26d0b3(0x185))/0x3+-parseInt(_0x26d0b3(0x160))/0x4*(-parseInt(_0x26d0b3(0x177))/0x5)+-parseInt(_0x26d0b3(0x16c))/0x6*(-parseInt(_0x26d0b3(0x184))/0x7)+-parseInt(_0x26d0b3(0x173))/0x8+parseInt(_0x26d0b3(0x183))/0x9+parseInt(_0x26d0b3(0x16d))/0xa;if(_0x456d59===_0x32d3d2)break;else _0x49472e['push'](_0x49472e['shift']());}catch(_0x40c9f5){_0x49472e['push'](_0x49472e['shift']());}}}(a60_0x3c3e,0x8845b));export function adaptServiceTreeManifestForLegacyFramework(_0x2548c9){const _0x5c371e=a60_0x6d6e,_0x33cbab=cloneJsonValue(_0x2548c9),_0x6875dd=[];if(!isObjectRecord(_0x33cbab))return{'manifest':_0x33cbab,'errors':_0x6875dd};return Array[_0x5c371e(0x17b)](_0x33cbab[_0x5c371e(0x180)])&&_0x33cbab[_0x5c371e(0x180)][_0x5c371e(0x182)]((_0x1bdcad,_0x576492)=>{const _0x396ce6=_0x5c371e;if(!isObjectRecord(_0x1bdcad))return;adaptBffTarget(_0x1bdcad[_0x396ce6(0x17d)],_0x396ce6(0x16e)+_0x576492+_0x396ce6(0x186),_0x6875dd);}),adaptResources(_0x33cbab[_0x5c371e(0x171)],_0x5c371e(0x174),_0x6875dd),{'manifest':_0x33cbab,'errors':_0x6875dd};}export function toPublicServiceTreeTarget(_0x172cb1){const _0x1a1c16=a60_0x6d6e,{scriptName:_0x47e8e6,..._0x15929b}=_0x172cb1;return typeof _0x47e8e6===_0x1a1c16(0x168)&&_0x47e8e6['trim']()&&(_0x15929b['functionName']=_0x47e8e6),_0x15929b;}export function toPublicNormalizedServiceTree(_0xcda4c6){const _0x12ec9d=a60_0x6d6e;return{..._0xcda4c6,'commands':_0xcda4c6[_0x12ec9d(0x180)][_0x12ec9d(0x175)](_0x5b0789=>({..._0x5b0789,'target':toPublicServiceTreeTarget(_0x5b0789[_0x12ec9d(0x17d)])}))};}function adaptResources(_0x5cff8a,_0x51fc3c,_0x323771){const _0x3a071f=a60_0x6d6e;if(!isObjectRecord(_0x5cff8a))return;for(const [_0x2b2324,_0x53f313]of Object[_0x3a071f(0x167)](_0x5cff8a)){if(!isObjectRecord(_0x53f313))continue;const _0x463616=_0x51fc3c+'.'+_0x2b2324;if(isObjectRecord(_0x53f313[_0x3a071f(0x16b)]))for(const [_0x5237aa,_0x4c56c3]of Object[_0x3a071f(0x167)](_0x53f313[_0x3a071f(0x16b)])){if(!isObjectRecord(_0x4c56c3))continue;const _0x36c652=_0x463616+_0x3a071f(0x178)+_0x5237aa,_0xccb51b=isObjectRecord(_0x4c56c3['target'])&&_0x4c56c3[_0x3a071f(0x17d)]['kind']===_0x3a071f(0x163);adaptBffTarget(_0x4c56c3[_0x3a071f(0x17d)],_0x36c652+_0x3a071f(0x16f),_0x323771),(_0xccb51b||isBffAction(_0x4c56c3))&&adaptFunctionNameField(_0x4c56c3,_0x36c652,_0x323771);}adaptResources(_0x53f313[_0x3a071f(0x171)],_0x463616+'.resources',_0x323771);}}function a60_0x6d6e(_0x4baab7,_0x1793be){_0x4baab7=_0x4baab7-0x15f;const _0x3c3ee9=a60_0x3c3e();let _0x6d6efb=_0x3c3ee9[_0x4baab7];return _0x6d6efb;}function adaptBffTarget(_0xca2d38,_0x304be4,_0x1a1d78){const _0x330af=a60_0x6d6e;if(!isObjectRecord(_0xca2d38)||_0xca2d38[_0x330af(0x170)]!==_0x330af(0x163))return;adaptFunctionNameField(_0xca2d38,_0x304be4,_0x1a1d78);}function adaptFunctionNameField(_0x4d0b14,_0x318f5d,_0x5cfb8c){const _0x44cb2b=a60_0x6d6e;Object['prototype'][_0x44cb2b(0x17e)][_0x44cb2b(0x162)](_0x4d0b14,_0x44cb2b(0x172))&&_0x5cfb8c[_0x44cb2b(0x16a)]({'level':'error','path':_0x318f5d+_0x44cb2b(0x181),'message':_0x44cb2b(0x17f)});if(Object[_0x44cb2b(0x17c)][_0x44cb2b(0x17e)][_0x44cb2b(0x162)](_0x4d0b14,_0x44cb2b(0x17a))){if(typeof _0x4d0b14[_0x44cb2b(0x17a)]!==_0x44cb2b(0x168)||!_0x4d0b14[_0x44cb2b(0x17a)][_0x44cb2b(0x15f)]()){_0x5cfb8c[_0x44cb2b(0x16a)]({'level':'error','path':_0x318f5d+_0x44cb2b(0x176),'message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x4d0b14['functionName'];return;}_0x4d0b14[_0x44cb2b(0x172)]=_0x4d0b14[_0x44cb2b(0x17a)],delete _0x4d0b14[_0x44cb2b(0x17a)];}}function isBffAction(_0x2c2a11){const _0x2d84a4=a60_0x6d6e;return _0x2c2a11[_0x2d84a4(0x170)]===_0x2d84a4(0x163)||_0x2c2a11[_0x2d84a4(0x164)]===_0x2d84a4(0x179)||_0x2c2a11[_0x2d84a4(0x17d)]===_0x2d84a4(0x179);}function a60_0x3c3e(){const _0x561075=['Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','commands','.scriptName','forEach','2742066qcPEmW','7JhsxUZ','2221578zfoclw','].target','trim','501668GyRMKH','1720234qSYnOK','call','bff','action','object','1WpVsKt','entries','string','fromEntries','push','actions','2191566BealUO','14516490jhJsdH','$.commands[','.target','kind','resources','scriptName','7728848onbqRP','$.resources','map','.functionName','40YrwxIg','.actions.','bff.exec','functionName','isArray','prototype','target','hasOwnProperty'];a60_0x3c3e=function(){return _0x561075;};return a60_0x3c3e();}function cloneJsonValue(_0x18dacf){const _0x4bbb3d=a60_0x6d6e;if(Array[_0x4bbb3d(0x17b)](_0x18dacf))return _0x18dacf[_0x4bbb3d(0x175)](_0x48f5ff=>cloneJsonValue(_0x48f5ff));if(isObjectRecord(_0x18dacf))return Object[_0x4bbb3d(0x169)](Object[_0x4bbb3d(0x167)](_0x18dacf)[_0x4bbb3d(0x175)](([_0x205903,_0xa4fb35])=>[_0x205903,cloneJsonValue(_0xa4fb35)]));return _0x18dacf;}function isObjectRecord(_0x55c0fd){const _0x224ef7=a60_0x6d6e;return Boolean(_0x55c0fd)&&typeof _0x55c0fd===_0x224ef7(0x165)&&!Array[_0x224ef7(0x17b)](_0x55c0fd);}
1
+ function a61_0x4f34(_0x47ce41,_0x7091d1){_0x47ce41=_0x47ce41-0x198;const _0x32080c=a61_0x3208();let _0x4f344e=_0x32080c[_0x47ce41];return _0x4f344e;}(function(_0x327ffa,_0x4ccf65){const _0x116cf6=a61_0x4f34,_0x238a81=_0x327ffa();while(!![]){try{const _0x2fecb7=parseInt(_0x116cf6(0x1af))/0x1+-parseInt(_0x116cf6(0x1b9))/0x2+parseInt(_0x116cf6(0x1a1))/0x3+-parseInt(_0x116cf6(0x1b5))/0x4+-parseInt(_0x116cf6(0x1a8))/0x5+parseInt(_0x116cf6(0x1b2))/0x6+parseInt(_0x116cf6(0x1b8))/0x7*(parseInt(_0x116cf6(0x199))/0x8);if(_0x2fecb7===_0x4ccf65)break;else _0x238a81['push'](_0x238a81['shift']());}catch(_0x516111){_0x238a81['push'](_0x238a81['shift']());}}}(a61_0x3208,0xbe6e8));export function adaptServiceTreeManifestForLegacyFramework(_0x1f4c2c){const _0x5aa5f5=a61_0x4f34,_0x4bb47d=cloneJsonValue(_0x1f4c2c),_0x56cc06=[];if(!isObjectRecord(_0x4bb47d))return{'manifest':_0x4bb47d,'errors':_0x56cc06};return Array['isArray'](_0x4bb47d['commands'])&&_0x4bb47d[_0x5aa5f5(0x1b4)][_0x5aa5f5(0x1b0)]((_0x2d6e21,_0x175c4a)=>{const _0x540905=_0x5aa5f5;if(!isObjectRecord(_0x2d6e21))return;adaptBffTarget(_0x2d6e21[_0x540905(0x19b)],_0x540905(0x198)+_0x175c4a+'].target',_0x56cc06);}),adaptResources(_0x4bb47d[_0x5aa5f5(0x1ae)],'$.resources',_0x56cc06),{'manifest':_0x4bb47d,'errors':_0x56cc06};}export function toPublicServiceTreeTarget(_0xb1574b){const _0x26c7a0=a61_0x4f34,{scriptName:_0x4bac0e,..._0x2f070a}=_0xb1574b;return typeof _0x4bac0e==='string'&&_0x4bac0e[_0x26c7a0(0x1b7)]()&&(_0x2f070a[_0x26c7a0(0x1ac)]=_0x4bac0e),_0x2f070a;}export function toPublicNormalizedServiceTree(_0x2adac4){const _0x3081e8=a61_0x4f34;return{..._0x2adac4,'commands':_0x2adac4[_0x3081e8(0x1b4)][_0x3081e8(0x1b1)](_0x1d6fe=>({..._0x1d6fe,'target':toPublicServiceTreeTarget(_0x1d6fe['target'])}))};}function adaptResources(_0x646c7c,_0x486b05,_0x5881ab){const _0x40d89b=a61_0x4f34;if(!isObjectRecord(_0x646c7c))return;for(const [_0x4db845,_0x21ddf9]of Object['entries'](_0x646c7c)){if(!isObjectRecord(_0x21ddf9))continue;const _0xa8ae46=_0x486b05+'.'+_0x4db845;if(isObjectRecord(_0x21ddf9[_0x40d89b(0x1aa)]))for(const [_0x27227b,_0x483e37]of Object[_0x40d89b(0x1a0)](_0x21ddf9[_0x40d89b(0x1aa)])){if(!isObjectRecord(_0x483e37))continue;const _0x1b2b8d=_0xa8ae46+_0x40d89b(0x1ad)+_0x27227b,_0x3383f4=isObjectRecord(_0x483e37['target'])&&_0x483e37[_0x40d89b(0x19b)][_0x40d89b(0x1b6)]==='bff';adaptBffTarget(_0x483e37[_0x40d89b(0x19b)],_0x1b2b8d+_0x40d89b(0x1a2),_0x5881ab),(_0x3383f4||isBffAction(_0x483e37))&&adaptFunctionNameField(_0x483e37,_0x1b2b8d,_0x5881ab);}adaptResources(_0x21ddf9[_0x40d89b(0x1ae)],_0xa8ae46+_0x40d89b(0x19c),_0x5881ab);}}function adaptBffTarget(_0x1d789a,_0x5d4e02,_0xdf5587){const _0x5dc96a=a61_0x4f34;if(!isObjectRecord(_0x1d789a)||_0x1d789a[_0x5dc96a(0x1b6)]!==_0x5dc96a(0x1a3))return;adaptFunctionNameField(_0x1d789a,_0x5d4e02,_0xdf5587);}function a61_0x3208(){const _0x57e9d3=['$.commands[','24ylqvpr','error','target','.resources','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','prototype','object','entries','4372503UIBrRg','.target','bff','functionName\x20must\x20be\x20a\x20non-empty\x20string.','isArray','push','hasOwnProperty','6634955BLCqhm','string','actions','bff.exec','functionName','.actions.','resources','1358864ShmmOu','forEach','map','1396620fkOnlF','.scriptName','commands','1049588ybcUvl','kind','trim','1525153OGggHK','2666752hMLBND','call','scriptName','.functionName'];a61_0x3208=function(){return _0x57e9d3;};return a61_0x3208();}function adaptFunctionNameField(_0x46b88b,_0x1c0449,_0x2132a1){const _0x322d31=a61_0x4f34;Object[_0x322d31(0x19e)]['hasOwnProperty'][_0x322d31(0x1ba)](_0x46b88b,'scriptName')&&_0x2132a1['push']({'level':_0x322d31(0x19a),'path':_0x1c0449+_0x322d31(0x1b3),'message':_0x322d31(0x19d)});if(Object[_0x322d31(0x19e)][_0x322d31(0x1a7)][_0x322d31(0x1ba)](_0x46b88b,_0x322d31(0x1ac))){if(typeof _0x46b88b[_0x322d31(0x1ac)]!==_0x322d31(0x1a9)||!_0x46b88b[_0x322d31(0x1ac)][_0x322d31(0x1b7)]()){_0x2132a1[_0x322d31(0x1a6)]({'level':'error','path':_0x1c0449+_0x322d31(0x1bc),'message':_0x322d31(0x1a4)}),delete _0x46b88b[_0x322d31(0x1ac)];return;}_0x46b88b[_0x322d31(0x1bb)]=_0x46b88b[_0x322d31(0x1ac)],delete _0x46b88b[_0x322d31(0x1ac)];}}function isBffAction(_0x54dc34){const _0x57c686=a61_0x4f34;return _0x54dc34[_0x57c686(0x1b6)]===_0x57c686(0x1a3)||_0x54dc34['action']===_0x57c686(0x1ab)||_0x54dc34[_0x57c686(0x19b)]===_0x57c686(0x1ab);}function cloneJsonValue(_0x2fd16b){const _0x350e9e=a61_0x4f34;if(Array['isArray'](_0x2fd16b))return _0x2fd16b[_0x350e9e(0x1b1)](_0x4c390b=>cloneJsonValue(_0x4c390b));if(isObjectRecord(_0x2fd16b))return Object['fromEntries'](Object['entries'](_0x2fd16b)['map'](([_0x2ca489,_0x9db7c7])=>[_0x2ca489,cloneJsonValue(_0x9db7c7)]));return _0x2fd16b;}function isObjectRecord(_0x521dd3){const _0x5bbc9d=a61_0x4f34;return Boolean(_0x521dd3)&&typeof _0x521dd3===_0x5bbc9d(0x19f)&&!Array[_0x5bbc9d(0x1a5)](_0x521dd3);}
@@ -1 +1 @@
1
- const a61_0x2f77d7=a61_0x14d9;(function(_0x48769d,_0x404023){const _0x86c23f=a61_0x14d9,_0xce7b47=_0x48769d();while(!![]){try{const _0x484b4c=parseInt(_0x86c23f(0x14f))/0x1+parseInt(_0x86c23f(0x168))/0x2+parseInt(_0x86c23f(0x145))/0x3*(parseInt(_0x86c23f(0x154))/0x4)+parseInt(_0x86c23f(0x166))/0x5+parseInt(_0x86c23f(0x16a))/0x6+-parseInt(_0x86c23f(0x162))/0x7+-parseInt(_0x86c23f(0x155))/0x8;if(_0x484b4c===_0x404023)break;else _0xce7b47['push'](_0xce7b47['shift']());}catch(_0x35ea23){_0xce7b47['push'](_0xce7b47['shift']());}}}(a61_0x2865,0xe2bdb));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';function a61_0x14d9(_0x3c7b49,_0x422a33){_0x3c7b49=_0x3c7b49-0x12f;const _0x28655d=a61_0x2865();let _0x14d913=_0x28655d[_0x3c7b49];return _0x14d913;}const FILE_FLAG={'name':a61_0x2f77d7(0x171),'type':a61_0x2f77d7(0x15f),'required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':a61_0x2f77d7(0x16d),'type':a61_0x2f77d7(0x15f),'required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a61_0x2f77d7(0x131)}};function a61_0x2865(){const _0x289092=['updated','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','lower\x20kebab-case\x20service\x20code','read','commands','Updated','serviceCount','Imported','Removed\x20service\x20','\x20service\x20','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','manifests','detail','name','Imported\x20','将\x20Service\x20Tree\x20清单导入本地运行态注册表','risk','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','reduce','cliPath','705687wrVodt','filePath','list','registryPath','从本地运行态注册表移除\x20Service\x20Tree\x20清单','write','Local\x20service\x20not\x20found:\x20','warnings','str','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','147533YFdjuH','source','remove','report','serviceCode','12HzfbrA','32789472clgfQm','map','cliName','entries','errors','version','length','Service\x20manifest\x20validation\x20passed.','validate','target','string','registry','\x20service(s),\x20updated\x20','2677906WfLxHk','hash','import','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','5541275NFzJiF','kind','3706366PLQFet','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','9571890ncjJcA','normalizedManifest','\x20service(s).','service','entry','WRITE','imported','file','将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','registryServiceCode'];a61_0x2865=function(){return _0x289092;};return a61_0x2865();}function summarizeService(_0xec4227){const _0x23e803=a61_0x2f77d7;return{'serviceCode':_0xec4227[_0x23e803(0x153)],'name':_0xec4227['normalizedManifest'][_0x23e803(0x16d)]['name'],'version':_0xec4227[_0x23e803(0x15a)],'importedAt':_0xec4227['importedAt'],'source':_0xec4227[_0x23e803(0x150)],'commandCount':_0xec4227[_0x23e803(0x16b)][_0x23e803(0x133)][_0x23e803(0x15b)],'commands':_0xec4227[_0x23e803(0x16b)][_0x23e803(0x133)][_0x23e803(0x156)](_0x1d70ed=>({'path':_0x1d70ed[_0x23e803(0x144)],'description':_0x1d70ed['description'],'risk':_0x1d70ed[_0x23e803(0x13f)],'target':toPublicServiceTreeTarget(_0x1d70ed[_0x23e803(0x15e)]),'flags':_0x1d70ed['flags']['map'](_0x526ace=>({'name':_0x526ace[_0x23e803(0x13c)],'cliName':_0x526ace[_0x23e803(0x157)],'type':_0x526ace['type'],'required':_0x526ace['required']===!![]}))}))};}function summarizeLoadedManifest(_0x43746){const _0x126ea0=a61_0x2f77d7;return{'service':_0x43746['normalizedManifest']?.[_0x126ea0(0x16d)],'version':_0x43746['normalizedManifest']?.[_0x126ea0(0x15a)],'commandCount':_0x43746[_0x126ea0(0x16b)]?.[_0x126ea0(0x133)]['length']??0x0,'commands':_0x43746[_0x126ea0(0x16b)]?.[_0x126ea0(0x133)][_0x126ea0(0x156)](_0x4e1fd2=>({'path':_0x4e1fd2[_0x126ea0(0x144)],'risk':_0x4e1fd2[_0x126ea0(0x13f)],'target':toPublicServiceTreeTarget(_0x4e1fd2[_0x126ea0(0x15e)])}))??[],'registryIndex':_0x43746['registryIndex'],'registryServiceCode':_0x43746[_0x126ea0(0x173)],'errors':_0x43746[_0x126ea0(0x152)][_0x126ea0(0x159)],'warnings':_0x43746[_0x126ea0(0x152)][_0x126ea0(0x14c)]};}export const serviceDefinitions=[{'service':'service','command':a61_0x2f77d7(0x15d),'description':a61_0x2f77d7(0x165),'risk':a61_0x2f77d7(0x132),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x484cf7){const _0x557321=a61_0x2f77d7,_0x18cd5e=loadServiceManifestFromFile(_0x484cf7['str'](_0x557321(0x171)));if(!_0x18cd5e[_0x557321(0x152)]['ok'])return{'ok':![],'data':{'file':_0x18cd5e[_0x557321(0x146)],'hash':_0x18cd5e[_0x557321(0x163)],'kind':_0x18cd5e[_0x557321(0x167)],'serviceCount':_0x18cd5e[_0x557321(0x13a)][_0x557321(0x15b)],'services':_0x18cd5e[_0x557321(0x13a)][_0x557321(0x156)](summarizeLoadedManifest),'errors':_0x18cd5e[_0x557321(0x152)][_0x557321(0x159)],'warnings':_0x18cd5e[_0x557321(0x152)]['warnings']},'message':formatValidationFailure(_0x18cd5e['report'])};if(_0x18cd5e[_0x557321(0x167)]===_0x557321(0x160)||_0x18cd5e['manifests'][_0x557321(0x15b)]!==0x1)return{'ok':!![],'data':{'file':_0x18cd5e[_0x557321(0x146)],'hash':_0x18cd5e[_0x557321(0x163)],'kind':_0x18cd5e[_0x557321(0x167)],'serviceCount':_0x18cd5e[_0x557321(0x13a)][_0x557321(0x15b)],'commandCount':_0x18cd5e[_0x557321(0x13a)][_0x557321(0x143)]((_0x56a11d,_0x1c24df)=>_0x56a11d+(_0x1c24df['normalizedManifest']?.[_0x557321(0x133)]['length']??0x0),0x0),'services':_0x18cd5e[_0x557321(0x13a)]['map'](summarizeLoadedManifest),'warnings':_0x18cd5e['report']['warnings']},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x18cd5e[_0x557321(0x146)],'hash':_0x18cd5e[_0x557321(0x163)],'kind':_0x18cd5e[_0x557321(0x167)],'service':_0x18cd5e[_0x557321(0x16b)]?.[_0x557321(0x16d)],'version':_0x18cd5e['normalizedManifest']?.[_0x557321(0x15a)],'commandCount':_0x18cd5e[_0x557321(0x16b)]?.['commands']['length']??0x0,'commands':_0x18cd5e[_0x557321(0x16b)]?.[_0x557321(0x133)][_0x557321(0x156)](_0x1dfa0c=>({'path':_0x1dfa0c[_0x557321(0x144)],'risk':_0x1dfa0c[_0x557321(0x13f)],'target':toPublicServiceTreeTarget(_0x1dfa0c[_0x557321(0x15e)])})),'warnings':_0x18cd5e[_0x557321(0x152)][_0x557321(0x14c)]},'message':_0x557321(0x15c)};}},{'service':a61_0x2f77d7(0x16d),'command':a61_0x2f77d7(0x164),'description':a61_0x2f77d7(0x13e),'risk':'write','confirmationDescription':a61_0x2f77d7(0x130),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x56109d){const _0x877aa1=a61_0x2f77d7,_0x7d4c9c=loadServiceManifestFromFile(_0x56109d[_0x877aa1(0x14d)](_0x877aa1(0x171)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x7d4c9c[_0x877aa1(0x146)],'hash':_0x7d4c9c[_0x877aa1(0x163)],'kind':_0x7d4c9c[_0x877aa1(0x167)],'ok':_0x7d4c9c['report']['ok'],'service':_0x7d4c9c[_0x877aa1(0x16b)]?.[_0x877aa1(0x16d)],'version':_0x7d4c9c['normalizedManifest']?.[_0x877aa1(0x15a)],'serviceCount':_0x7d4c9c['manifests']['length'],'services':_0x7d4c9c[_0x877aa1(0x13a)]['map'](_0xe2c936=>({'service':_0xe2c936[_0x877aa1(0x16b)]?.[_0x877aa1(0x16d)],'version':_0xe2c936[_0x877aa1(0x16b)]?.[_0x877aa1(0x15a)],'commandCount':_0xe2c936[_0x877aa1(0x16b)]?.[_0x877aa1(0x133)][_0x877aa1(0x15b)]??0x0,'errors':_0xe2c936[_0x877aa1(0x152)][_0x877aa1(0x159)]})),'errors':_0x7d4c9c[_0x877aa1(0x152)][_0x877aa1(0x159)],'commandCount':_0x7d4c9c['normalizedManifest']?.[_0x877aa1(0x133)][_0x877aa1(0x15b)]??0x0},'description':_0x877aa1(0x140)};},async 'execute'(_0x10b7ff){const _0x3695aa=a61_0x2f77d7,_0x1dc342=importServiceManifest(_0x10b7ff['str'](_0x3695aa(0x171)));if(_0x1dc342[_0x3695aa(0x158)][_0x3695aa(0x15b)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1dc342[_0x3695aa(0x148)],'imported':_0x1dc342[_0x3695aa(0x170)],'updated':_0x1dc342['updated'],'serviceCount':_0x1dc342[_0x3695aa(0x135)],'services':_0x1dc342['entries'][_0x3695aa(0x156)](summarizeService)},'message':_0x3695aa(0x13d)+_0x1dc342[_0x3695aa(0x170)]+_0x3695aa(0x161)+_0x1dc342[_0x3695aa(0x12f)]+_0x3695aa(0x16c)};return{'ok':!![],'data':{'registryPath':_0x1dc342[_0x3695aa(0x148)],'replaced':_0x1dc342['replaced'],'imported':_0x1dc342['imported'],'updated':_0x1dc342[_0x3695aa(0x12f)],'serviceCount':_0x1dc342['serviceCount'],'service':summarizeService(_0x1dc342['entry'])},'message':(_0x1dc342['replaced']?_0x3695aa(0x134):_0x3695aa(0x136))+_0x3695aa(0x138)+_0x1dc342[_0x3695aa(0x16e)][_0x3695aa(0x153)]+'.'};}},{'service':a61_0x2f77d7(0x16d),'command':'export','description':a61_0x2f77d7(0x172),'risk':'write','confirmationDescription':a61_0x2f77d7(0x14e),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x201808){const _0x51a806=a61_0x2f77d7,_0x5b4535=getLocalServiceEntry(_0x201808[_0x51a806(0x14d)](_0x51a806(0x16d)));return{'method':'WRITE','url':_0x201808['str'](_0x51a806(0x171)),'body':{'service':_0x201808[_0x51a806(0x14d)](_0x51a806(0x16d)),'found':Boolean(_0x5b4535),'version':_0x5b4535?.[_0x51a806(0x15a)],'source':_0x5b4535?.[_0x51a806(0x150)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x2335bc){const _0xa2804d=a61_0x2f77d7,_0x33f42f=exportServiceManifest(_0x2335bc['str'](_0xa2804d(0x16d)),_0x2335bc[_0xa2804d(0x14d)](_0xa2804d(0x171)));return{'ok':!![],'data':{'registryPath':_0x33f42f[_0xa2804d(0x148)],'file':_0x33f42f['filePath'],'service':summarizeService(_0x33f42f[_0xa2804d(0x16e)])},'message':'Exported\x20service\x20'+_0x33f42f['entry']['serviceCode']+'.'};}},{'service':'service','command':a61_0x2f77d7(0x147),'description':a61_0x2f77d7(0x139),'risk':a61_0x2f77d7(0x132),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x482b0a=a61_0x2f77d7,_0x312386=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x312386['length'],'services':_0x312386[_0x482b0a(0x156)](summarizeService)}};}},{'service':a61_0x2f77d7(0x16d),'command':a61_0x2f77d7(0x151),'description':a61_0x2f77d7(0x149),'risk':a61_0x2f77d7(0x14a),'confirmationDescription':a61_0x2f77d7(0x142),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x2b3eab){const _0x34b880=a61_0x2f77d7,_0x5ad8ff=getLocalServiceEntry(_0x2b3eab[_0x34b880(0x14d)](_0x34b880(0x16d)));return{'method':_0x34b880(0x16f),'url':getServiceRegistryPath(),'body':{'service':_0x2b3eab[_0x34b880(0x14d)](_0x34b880(0x16d)),'found':Boolean(_0x5ad8ff),'version':_0x5ad8ff?.[_0x34b880(0x15a)],'source':_0x5ad8ff?.[_0x34b880(0x150)]},'description':_0x34b880(0x169)};},async 'execute'(_0x3913ef){const _0x596b89=a61_0x2f77d7,_0x44efcb=removeServiceManifest(_0x3913ef['str']('service'));return{'ok':!![],'data':{'registryPath':_0x44efcb[_0x596b89(0x148)],'serviceCount':_0x44efcb['serviceCount'],'service':summarizeService(_0x44efcb[_0x596b89(0x16e)])},'message':_0x596b89(0x137)+_0x44efcb['entry'][_0x596b89(0x153)]+'.'};}},{'service':'service','command':a61_0x2f77d7(0x13b),'description':a61_0x2f77d7(0x141),'risk':a61_0x2f77d7(0x132),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x435abb){const _0x10a4be=a61_0x2f77d7,_0x147f5f=getLocalServiceEntry(_0x435abb[_0x10a4be(0x14d)](_0x10a4be(0x16d)));if(!_0x147f5f)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x435abb[_0x10a4be(0x14d)](_0x10a4be(0x16d))},'message':_0x10a4be(0x14b)+_0x435abb[_0x10a4be(0x14d)](_0x10a4be(0x16d))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x147f5f),'manifest':_0x147f5f['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x147f5f[_0x10a4be(0x16b)])}};}}];
1
+ const a62_0x41cbda=a62_0x2b04;(function(_0x1d829c,_0x58ad21){const _0x171547=a62_0x2b04,_0x38de33=_0x1d829c();while(!![]){try{const _0x20bc1a=-parseInt(_0x171547(0x13e))/0x1+parseInt(_0x171547(0x174))/0x2*(-parseInt(_0x171547(0x15a))/0x3)+-parseInt(_0x171547(0x146))/0x4+parseInt(_0x171547(0x15e))/0x5+-parseInt(_0x171547(0x14d))/0x6+parseInt(_0x171547(0x15d))/0x7*(-parseInt(_0x171547(0x12b))/0x8)+-parseInt(_0x171547(0x158))/0x9*(-parseInt(_0x171547(0x15b))/0xa);if(_0x20bc1a===_0x58ad21)break;else _0x38de33['push'](_0x38de33['shift']());}catch(_0x33e60a){_0x38de33['push'](_0x38de33['shift']());}}}(a62_0x52e3,0x51018));function a62_0x2b04(_0xa37a8,_0x38edad){_0xa37a8=_0xa37a8-0x12a;const _0x52e329=a62_0x52e3();let _0x2b04f8=_0x52e329[_0xa37a8];return _0x2b04f8;}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 a62_0x52e3(){const _0x473f4d=['44262yULjNZ','Removed\x20service\x20','210153vcTUnC','1790chHTtw','source','518eWxgJb','2238350YlMVOe','serviceCount','remove','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','WRITE','replaced','registryServiceCode','\x20service(s),\x20updated\x20','Service\x20manifest\x20validation\x20passed.','entry','version','Service\x20Tree\x20manifest\x20file\x20path','report','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','filePath','map','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','Local\x20service\x20not\x20found:\x20','lower\x20kebab-case\x20service\x20code','Imported\x20','hash','updated','6qBrdxn','cliPath','1176ofyQoK','flags','Updated','manifest','Imported','entries','risk','registry','description','warnings','normalizedManifest','target','export','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','\x20service(s).','\x20service\x20','cliName','errors','99211cXzFLy','Local\x20service\x20code,\x20for\x20example\x20crm','file','importedAt','read','write','service','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','2342908xaRnya','commands','Writes\x20the\x20local\x20Service\x20Tree\x20manifest\x20for\x20the\x20given\x20service\x20to\x20a\x20JSON\x20file.\x20An\x20existing\x20file\x20at\x20the\x20target\x20may\x20be\x20overwritten.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','length','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','serviceCode','manifests','541338tSEHIp','registryPath','reduce','kind','string','imported','registryIndex','Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','str','required'];a62_0x52e3=function(){return _0x473f4d;};return a62_0x52e3();}const FILE_FLAG={'name':'file','type':'string','required':!![],'description':a62_0x41cbda(0x169)},SERVICE_FLAG={'name':a62_0x41cbda(0x144),'type':a62_0x41cbda(0x151),'required':!![],'description':a62_0x41cbda(0x13f),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x41cbda(0x170)}};function summarizeService(_0x4bc435){const _0x3784c5=a62_0x41cbda;return{'serviceCode':_0x4bc435[_0x3784c5(0x14b)],'name':_0x4bc435[_0x3784c5(0x135)][_0x3784c5(0x144)]['name'],'version':_0x4bc435[_0x3784c5(0x168)],'importedAt':_0x4bc435[_0x3784c5(0x141)],'source':_0x4bc435['source'],'commandCount':_0x4bc435[_0x3784c5(0x135)][_0x3784c5(0x147)][_0x3784c5(0x149)],'commands':_0x4bc435[_0x3784c5(0x135)][_0x3784c5(0x147)][_0x3784c5(0x16d)](_0x24328c=>({'path':_0x24328c[_0x3784c5(0x12a)],'description':_0x24328c[_0x3784c5(0x133)],'risk':_0x24328c[_0x3784c5(0x131)],'target':toPublicServiceTreeTarget(_0x24328c[_0x3784c5(0x136)]),'flags':_0x24328c[_0x3784c5(0x12c)][_0x3784c5(0x16d)](_0x1aa54=>({'name':_0x1aa54['name'],'cliName':_0x1aa54[_0x3784c5(0x13c)],'type':_0x1aa54['type'],'required':_0x1aa54[_0x3784c5(0x157)]===!![]}))}))};}function summarizeLoadedManifest(_0x3dad57){const _0x4fea9f=a62_0x41cbda;return{'service':_0x3dad57['normalizedManifest']?.[_0x4fea9f(0x144)],'version':_0x3dad57[_0x4fea9f(0x135)]?.[_0x4fea9f(0x168)],'commandCount':_0x3dad57['normalizedManifest']?.[_0x4fea9f(0x147)][_0x4fea9f(0x149)]??0x0,'commands':_0x3dad57[_0x4fea9f(0x135)]?.['commands'][_0x4fea9f(0x16d)](_0x5c02fc=>({'path':_0x5c02fc[_0x4fea9f(0x12a)],'risk':_0x5c02fc[_0x4fea9f(0x131)],'target':toPublicServiceTreeTarget(_0x5c02fc['target'])}))??[],'registryIndex':_0x3dad57[_0x4fea9f(0x153)],'registryServiceCode':_0x3dad57[_0x4fea9f(0x164)],'errors':_0x3dad57[_0x4fea9f(0x16a)][_0x4fea9f(0x13d)],'warnings':_0x3dad57[_0x4fea9f(0x16a)]['warnings']};}export const serviceDefinitions=[{'service':'service','command':'validate','description':a62_0x41cbda(0x16e),'risk':a62_0x41cbda(0x142),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x3dfe88){const _0x50d1c4=a62_0x41cbda,_0x502166=loadServiceManifestFromFile(_0x3dfe88[_0x50d1c4(0x156)](_0x50d1c4(0x140)));if(!_0x502166[_0x50d1c4(0x16a)]['ok'])return{'ok':![],'data':{'file':_0x502166['filePath'],'hash':_0x502166[_0x50d1c4(0x172)],'kind':_0x502166[_0x50d1c4(0x150)],'serviceCount':_0x502166[_0x50d1c4(0x14c)]['length'],'services':_0x502166[_0x50d1c4(0x14c)][_0x50d1c4(0x16d)](summarizeLoadedManifest),'errors':_0x502166[_0x50d1c4(0x16a)]['errors'],'warnings':_0x502166[_0x50d1c4(0x16a)]['warnings']},'message':formatValidationFailure(_0x502166[_0x50d1c4(0x16a)])};if(_0x502166[_0x50d1c4(0x150)]===_0x50d1c4(0x132)||_0x502166['manifests'][_0x50d1c4(0x149)]!==0x1)return{'ok':!![],'data':{'file':_0x502166[_0x50d1c4(0x16c)],'hash':_0x502166['hash'],'kind':_0x502166['kind'],'serviceCount':_0x502166[_0x50d1c4(0x14c)]['length'],'commandCount':_0x502166[_0x50d1c4(0x14c)][_0x50d1c4(0x14f)]((_0x18cd4a,_0xc97a01)=>_0x18cd4a+(_0xc97a01[_0x50d1c4(0x135)]?.[_0x50d1c4(0x147)][_0x50d1c4(0x149)]??0x0),0x0),'services':_0x502166[_0x50d1c4(0x14c)][_0x50d1c4(0x16d)](summarizeLoadedManifest),'warnings':_0x502166[_0x50d1c4(0x16a)][_0x50d1c4(0x134)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x502166[_0x50d1c4(0x16c)],'hash':_0x502166[_0x50d1c4(0x172)],'kind':_0x502166['kind'],'service':_0x502166[_0x50d1c4(0x135)]?.[_0x50d1c4(0x144)],'version':_0x502166[_0x50d1c4(0x135)]?.[_0x50d1c4(0x168)],'commandCount':_0x502166[_0x50d1c4(0x135)]?.[_0x50d1c4(0x147)][_0x50d1c4(0x149)]??0x0,'commands':_0x502166[_0x50d1c4(0x135)]?.[_0x50d1c4(0x147)][_0x50d1c4(0x16d)](_0x4a86ee=>({'path':_0x4a86ee[_0x50d1c4(0x12a)],'risk':_0x4a86ee[_0x50d1c4(0x131)],'target':toPublicServiceTreeTarget(_0x4a86ee[_0x50d1c4(0x136)])})),'warnings':_0x502166[_0x50d1c4(0x16a)]['warnings']},'message':_0x50d1c4(0x166)};}},{'service':a62_0x41cbda(0x144),'command':'import','description':a62_0x41cbda(0x145),'risk':a62_0x41cbda(0x143),'confirmationDescription':a62_0x41cbda(0x154),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x36ae08){const _0x172770=a62_0x41cbda,_0x2377da=loadServiceManifestFromFile(_0x36ae08['str'](_0x172770(0x140)));return{'method':_0x172770(0x162),'url':getServiceRegistryPath(),'body':{'file':_0x2377da[_0x172770(0x16c)],'hash':_0x2377da[_0x172770(0x172)],'kind':_0x2377da[_0x172770(0x150)],'ok':_0x2377da['report']['ok'],'service':_0x2377da[_0x172770(0x135)]?.['service'],'version':_0x2377da[_0x172770(0x135)]?.['version'],'serviceCount':_0x2377da[_0x172770(0x14c)][_0x172770(0x149)],'services':_0x2377da['manifests'][_0x172770(0x16d)](_0x217020=>({'service':_0x217020[_0x172770(0x135)]?.[_0x172770(0x144)],'version':_0x217020[_0x172770(0x135)]?.[_0x172770(0x168)],'commandCount':_0x217020[_0x172770(0x135)]?.[_0x172770(0x147)][_0x172770(0x149)]??0x0,'errors':_0x217020['report'][_0x172770(0x13d)]})),'errors':_0x2377da[_0x172770(0x16a)]['errors'],'commandCount':_0x2377da[_0x172770(0x135)]?.[_0x172770(0x147)][_0x172770(0x149)]??0x0},'description':_0x172770(0x138)};},async 'execute'(_0x285e8b){const _0x325ebd=a62_0x41cbda,_0x5c41df=importServiceManifest(_0x285e8b[_0x325ebd(0x156)](_0x325ebd(0x140)));if(_0x5c41df[_0x325ebd(0x130)][_0x325ebd(0x149)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x5c41df[_0x325ebd(0x14e)],'imported':_0x5c41df['imported'],'updated':_0x5c41df[_0x325ebd(0x173)],'serviceCount':_0x5c41df[_0x325ebd(0x15f)],'services':_0x5c41df[_0x325ebd(0x130)][_0x325ebd(0x16d)](summarizeService)},'message':_0x325ebd(0x171)+_0x5c41df[_0x325ebd(0x152)]+_0x325ebd(0x165)+_0x5c41df[_0x325ebd(0x173)]+_0x325ebd(0x13a)};return{'ok':!![],'data':{'registryPath':_0x5c41df[_0x325ebd(0x14e)],'replaced':_0x5c41df[_0x325ebd(0x163)],'imported':_0x5c41df[_0x325ebd(0x152)],'updated':_0x5c41df[_0x325ebd(0x173)],'serviceCount':_0x5c41df['serviceCount'],'service':summarizeService(_0x5c41df[_0x325ebd(0x167)])},'message':(_0x5c41df[_0x325ebd(0x163)]?_0x325ebd(0x12d):_0x325ebd(0x12f))+_0x325ebd(0x13b)+_0x5c41df['entry'][_0x325ebd(0x14b)]+'.'};}},{'service':a62_0x41cbda(0x144),'command':a62_0x41cbda(0x137),'description':a62_0x41cbda(0x139),'risk':a62_0x41cbda(0x143),'confirmationDescription':a62_0x41cbda(0x148),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x1e7ad1){const _0x15c73d=a62_0x41cbda,_0x114832=getLocalServiceEntry(_0x1e7ad1[_0x15c73d(0x156)](_0x15c73d(0x144)));return{'method':_0x15c73d(0x162),'url':_0x1e7ad1[_0x15c73d(0x156)](_0x15c73d(0x140)),'body':{'service':_0x1e7ad1[_0x15c73d(0x156)](_0x15c73d(0x144)),'found':Boolean(_0x114832),'version':_0x114832?.[_0x15c73d(0x168)],'source':_0x114832?.[_0x15c73d(0x15c)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x1a4a3b){const _0x194dc0=a62_0x41cbda,_0x3eec81=exportServiceManifest(_0x1a4a3b[_0x194dc0(0x156)](_0x194dc0(0x144)),_0x1a4a3b['str'](_0x194dc0(0x140)));return{'ok':!![],'data':{'registryPath':_0x3eec81['registryPath'],'file':_0x3eec81[_0x194dc0(0x16c)],'service':summarizeService(_0x3eec81['entry'])},'message':'Exported\x20service\x20'+_0x3eec81[_0x194dc0(0x167)][_0x194dc0(0x14b)]+'.'};}},{'service':a62_0x41cbda(0x144),'command':'list','description':a62_0x41cbda(0x155),'risk':a62_0x41cbda(0x142),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x5b3b11=a62_0x41cbda,_0x3ec428=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x3ec428[_0x5b3b11(0x149)],'services':_0x3ec428[_0x5b3b11(0x16d)](summarizeService)}};}},{'service':'service','command':a62_0x41cbda(0x160),'description':'Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','risk':'write','confirmationDescription':a62_0x41cbda(0x14a),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x3e8a04){const _0x512eb1=a62_0x41cbda,_0x178524=getLocalServiceEntry(_0x3e8a04[_0x512eb1(0x156)](_0x512eb1(0x144)));return{'method':_0x512eb1(0x162),'url':getServiceRegistryPath(),'body':{'service':_0x3e8a04[_0x512eb1(0x156)]('service'),'found':Boolean(_0x178524),'version':_0x178524?.[_0x512eb1(0x168)],'source':_0x178524?.[_0x512eb1(0x15c)]},'description':_0x512eb1(0x16b)};},async 'execute'(_0xf24cb2){const _0x57c556=a62_0x41cbda,_0x36d464=removeServiceManifest(_0xf24cb2['str'](_0x57c556(0x144)));return{'ok':!![],'data':{'registryPath':_0x36d464[_0x57c556(0x14e)],'serviceCount':_0x36d464['serviceCount'],'service':summarizeService(_0x36d464[_0x57c556(0x167)])},'message':_0x57c556(0x159)+_0x36d464[_0x57c556(0x167)]['serviceCode']+'.'};}},{'service':a62_0x41cbda(0x144),'command':'detail','description':a62_0x41cbda(0x161),'risk':a62_0x41cbda(0x142),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x34e4e3){const _0x3e1991=a62_0x41cbda,_0x1f5a9d=getLocalServiceEntry(_0x34e4e3[_0x3e1991(0x156)](_0x3e1991(0x144)));if(!_0x1f5a9d)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x34e4e3[_0x3e1991(0x156)](_0x3e1991(0x144))},'message':_0x3e1991(0x16f)+_0x34e4e3[_0x3e1991(0x156)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x1f5a9d),'manifest':_0x1f5a9d[_0x3e1991(0x12e)],'normalizedManifest':toPublicNormalizedServiceTree(_0x1f5a9d[_0x3e1991(0x135)])}};}}];
@@ -1 +1 @@
1
- (function(_0x1648d7,_0x22fce9){const _0x130696=a62_0xd553,_0x96e728=_0x1648d7();while(!![]){try{const _0x133311=-parseInt(_0x130696(0x1c4))/0x1+parseInt(_0x130696(0x1ac))/0x2+parseInt(_0x130696(0x1f7))/0x3+-parseInt(_0x130696(0x1ea))/0x4+parseInt(_0x130696(0x1e7))/0x5+parseInt(_0x130696(0x1bb))/0x6+parseInt(_0x130696(0x1ba))/0x7*(parseInt(_0x130696(0x1be))/0x8);if(_0x133311===_0x22fce9)break;else _0x96e728['push'](_0x96e728['shift']());}catch(_0xdf5d29){_0x96e728['push'](_0x96e728['shift']());}}}(a62_0xa158,0xd42ff));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';function a62_0xa158(){const _0x45efa5=['Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','string','length','sha256','slice','description','manifest','map','Unsupported\x20schemaVersion:\x20','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','7izLqDH','2860956FIRxUy','now','bff\x20target\x20requires\x20functionName.','557880MoRrsi','localeCompare','push','join','code','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','435139ueXrPv','.tmp','errors','updatedAt','command','filePath','file','Service\x20manifest\x20validation\x20failed:\x0a','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','path','schemaVersion','homeDir','report','warnings','registryIndex','parse','Cannot\x20write\x20service\x20registry:\x20','commandCount','$.services[','Service\x20manifest\x20file\x20not\x20found:\x20','services\x20must\x20be\x20an\x20array','findIndex','ENOENT','serviceCode','CliError','isArray','toISOString','sort','validation','empty','].manifest','Local\x20service\x20not\x20found:\x20','version','digest','startsWith','6341080OYLCFz','splice','services','4876796BQMBVb','cliPath','kind','normalizedManifest','registry','utf8','sourceHash','invalid','Remove\x20or\x20migrate\x20','object','message','source','risk','1532964vMyydC','service','manifests','target','].manifest.','missing','395384QeYQyX','trim','hex','stringify'];a62_0xa158=function(){return _0x45efa5;};return a62_0xa158();}import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME='service.json';export function getServiceRegistryPath(_0x4a98c9={}){const _0x526b43=a62_0xd553;return resolve(_0x4a98c9[_0x526b43(0x1cf)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x596069={}){const _0x5dab32=a62_0xd553,_0x5ba2fc=getServiceRegistryPath(_0x596069);if(!existsSync(_0x5ba2fc))return emptyServiceRegistry();try{const _0x48573b=readFileSync(_0x5ba2fc,'utf8');if(!_0x48573b[_0x5dab32(0x1ad)]())return emptyServiceRegistry();const _0xcc6acd=JSON[_0x5dab32(0x1d3)](_0x48573b);if(_0xcc6acd['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x5dab32(0x1e0)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0xcc6acd[_0x5dab32(0x1ce)]),_0x5dab32(0x1f2)+_0x5ba2fc+'.');if(!Array['isArray'](_0xcc6acd['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xcc6acd[_0x5dab32(0x1c7)],'services':_0xcc6acd[_0x5dab32(0x1e9)]};}catch(_0x4c3e5c){if(_0x4c3e5c instanceof Error&&_0x4c3e5c['name']===_0x5dab32(0x1dc))throw _0x4c3e5c;throw CliErrors[_0x5dab32(0x1e0)]('Invalid\x20service\x20registry\x20JSON:\x20'+_0x5ba2fc,_0x5dab32(0x1b9));}}export function writeServiceRegistry(_0x45b03c,_0x3da45b={}){const _0x1f68a8=a62_0xd553,_0x44f392=getServiceRegistryPath(_0x3da45b),_0x4b1282=dirname(_0x44f392);!existsSync(_0x4b1282)&&mkdirSync(_0x4b1282,{'recursive':!![]});const _0x3003d9=_0x44f392+_0x1f68a8(0x1c5);try{writeFileSync(_0x3003d9,JSON[_0x1f68a8(0x1af)](_0x45b03c,null,0x2)+'\x0a',{'encoding':_0x1f68a8(0x1ef),'mode':0x180}),renameSync(_0x3003d9,_0x44f392);}catch(_0x48ad84){try{unlinkSync(_0x3003d9);}catch{}if(_0x48ad84?.[_0x1f68a8(0x1c2)]===_0x1f68a8(0x1da))throw CliErrors[_0x1f68a8(0x1e0)](_0x1f68a8(0x1d4)+_0x44f392);throw _0x48ad84;}return _0x44f392;}export function loadServiceManifestFromFile(_0x577e7d){const _0x155640=a62_0xd553,_0x1bd149=resolve(_0x577e7d);if(!existsSync(_0x1bd149))throw CliErrors[_0x155640(0x1e0)](_0x155640(0x1d7)+_0x577e7d);let _0x454c81;const _0x1b7d25=readFileSync(_0x1bd149,'utf8');try{_0x454c81=JSON[_0x155640(0x1d3)](_0x1b7d25);}catch{throw CliErrors['validation']('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x577e7d,_0x155640(0x1b0));}const _0x3c94bc=sha256(_0x1b7d25),_0x504e88=extractLoadedServiceManifests(_0x454c81,_0x3c94bc),_0x4e3452=aggregateValidationReports(_0x504e88),_0x434b43=_0x504e88[0x0];return{'filePath':_0x1bd149,'hash':_0x3c94bc,'kind':isServiceRegistryLike(_0x454c81)?_0x155640(0x1ee):_0x155640(0x1b6),'manifest':_0x434b43?.['manifest']??_0x454c81,'report':_0x4e3452,'normalizedManifest':_0x504e88['length']===0x1?_0x434b43?.[_0x155640(0x1ed)]:undefined,'manifests':_0x504e88};}export function importServiceManifest(_0x5d3d15,_0x28a6d4={}){const _0x11f61e=a62_0xd553,_0x416738=loadServiceManifestFromFile(_0x5d3d15);if(!_0x416738['report']['ok'])throw CliErrors['validation'](formatValidationFailure(_0x416738[_0x11f61e(0x1d0)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x416738[_0x11f61e(0x1a8)]['length']===0x0)throw CliErrors[_0x11f61e(0x1e0)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x11f61e(0x1c3));const _0x40f554=readServiceRegistry(_0x28a6d4),_0x3be825=(_0x28a6d4[_0x11f61e(0x1bc)]??(()=>new Date()))()[_0x11f61e(0x1de)](),_0x1e93db=[];let _0x29b0ed=0x0,_0x599c19=0x0;for(const _0x126f1f of _0x416738[_0x11f61e(0x1a8)]){if(!_0x126f1f['normalizedManifest'])continue;const _0x3db3fd=_0x126f1f[_0x11f61e(0x1ed)]['service']['code'],_0x5efd65={'serviceCode':_0x3db3fd,'version':_0x126f1f[_0x11f61e(0x1ed)][_0x11f61e(0x1e4)],'importedAt':_0x3be825,'source':{'type':_0x11f61e(0x1ca),'path':_0x416738[_0x11f61e(0x1c9)],'hash':_0x126f1f[_0x11f61e(0x1f0)]},'manifest':_0x126f1f['manifest'],'normalizedManifest':_0x126f1f[_0x11f61e(0x1ed)]},_0x45865f=_0x40f554[_0x11f61e(0x1e9)][_0x11f61e(0x1d9)](_0x4393f=>_0x4393f['serviceCode']===_0x3db3fd);_0x45865f>=0x0?(_0x40f554['services'][_0x45865f]=_0x5efd65,_0x599c19++):(_0x40f554[_0x11f61e(0x1e9)][_0x11f61e(0x1c0)](_0x5efd65),_0x29b0ed++),_0x1e93db[_0x11f61e(0x1c0)](_0x5efd65);}_0x40f554['services'][_0x11f61e(0x1df)]((_0x2c0382,_0x171c7c)=>_0x2c0382[_0x11f61e(0x1db)][_0x11f61e(0x1bf)](_0x171c7c['serviceCode'])),_0x40f554['updatedAt']=_0x3be825;const _0x188168=writeServiceRegistry(_0x40f554,_0x28a6d4);return{'registryPath':_0x188168,'entry':_0x1e93db[0x0],'replaced':_0x1e93db['length']===0x1?_0x599c19===0x1:_0x599c19>0x0,'entries':_0x1e93db,'imported':_0x29b0ed,'updated':_0x599c19,'serviceCount':_0x40f554['services']['length']};}function a62_0xd553(_0x491906,_0xa38c56){_0x491906=_0x491906-0x1a8;const _0xa15834=a62_0xa158();let _0xd553eb=_0xa15834[_0x491906];return _0xd553eb;}export function exportServiceManifest(_0xd0f10a,_0x5bcead,_0xdc1d86={}){const _0x190de1=a62_0xd553,_0x136946=getServiceRegistryPath(_0xdc1d86),_0x584284=getLocalServiceEntry(_0xd0f10a,_0xdc1d86);if(!_0x584284)throw CliErrors[_0x190de1(0x1e0)](_0x190de1(0x1e3)+_0xd0f10a,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x5cda01=resolve(_0x5bcead),_0x5c50ce=dirname(_0x5cda01);return!existsSync(_0x5c50ce)&&mkdirSync(_0x5c50ce,{'recursive':!![]}),writeFileSync(_0x5cda01,JSON[_0x190de1(0x1af)](_0x584284[_0x190de1(0x1b6)],null,0x2)+'\x0a',{'encoding':_0x190de1(0x1ef),'mode':0x180}),{'registryPath':_0x136946,'filePath':_0x5cda01,'entry':_0x584284};}export function removeServiceManifest(_0x3b533d,_0x227f58={}){const _0x3a4fb2=a62_0xd553,_0x125dd0=readServiceRegistry(_0x227f58),_0x43ad33=_0x3b533d[_0x3a4fb2(0x1ad)](),_0x5c1301=_0x125dd0['services']['findIndex'](_0x189773=>_0x189773['serviceCode']===_0x43ad33);if(_0x5c1301<0x0)throw CliErrors[_0x3a4fb2(0x1e0)](_0x3a4fb2(0x1e3)+_0x43ad33,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x3d8197]=_0x125dd0[_0x3a4fb2(0x1e9)][_0x3a4fb2(0x1e8)](_0x5c1301,0x1),_0x1811e3=(_0x227f58['now']??(()=>new Date()))()[_0x3a4fb2(0x1de)]();_0x125dd0[_0x3a4fb2(0x1c7)]=_0x1811e3;const _0x533baf=writeServiceRegistry(_0x125dd0,_0x227f58);return{'registryPath':_0x533baf,'entry':_0x3d8197,'serviceCount':_0x125dd0['services']['length']};}export function listLocalServices(_0x4861ba={}){const _0x2b8425=a62_0xd553;return readServiceRegistry(_0x4861ba)[_0x2b8425(0x1e9)];}export function getLocalServiceEntry(_0x5a7f2a,_0x11d5f9={}){const _0x13b8ea=a62_0xd553;return readServiceRegistry(_0x11d5f9)[_0x13b8ea(0x1e9)]['find'](_0x289b03=>_0x289b03[_0x13b8ea(0x1db)]===_0x5a7f2a['trim']());}export function listLocalServiceTrees(_0x20aecf={}){const _0x27f64a=a62_0xd553;return readServiceRegistry(_0x20aecf)[_0x27f64a(0x1e9)][_0x27f64a(0x1b7)](_0x1f6fae=>_0x1f6fae[_0x27f64a(0x1ed)]);}export function inspectServiceRegistry(_0x222ee4={}){const _0x6addd=a62_0xd553,_0x44424a=getServiceRegistryPath(_0x222ee4);if(!existsSync(_0x44424a))return emptyServiceRegistryInspection(_0x44424a,_0x6addd(0x1ab),![]);try{const _0x345817=readFileSync(_0x44424a,_0x6addd(0x1ef));if(!_0x345817[_0x6addd(0x1ad)]())return emptyServiceRegistryInspection(_0x44424a,_0x6addd(0x1e1),!![]);const _0x3b3575=JSON[_0x6addd(0x1d3)](_0x345817);if(_0x3b3575[_0x6addd(0x1ce)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x44424a,'invalid',!![]),'schemaVersion':_0x3b3575[_0x6addd(0x1ce)],'message':_0x6addd(0x1b8)+String(_0x3b3575[_0x6addd(0x1ce)])};if(!Array['isArray'](_0x3b3575[_0x6addd(0x1e9)]))return{...emptyServiceRegistryInspection(_0x44424a,_0x6addd(0x1f1),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3b3575[_0x6addd(0x1c7)],'message':_0x6addd(0x1d8)};const _0xf0faa=_0x3b3575[_0x6addd(0x1e9)]['map'](summarizeLocalServiceEntry);return{'registryPath':_0x44424a,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3b3575[_0x6addd(0x1c7)],'serviceCount':_0xf0faa[_0x6addd(0x1b2)],'commandCount':_0xf0faa['reduce']((_0x44b3eb,_0x5ee901)=>_0x44b3eb+_0x5ee901[_0x6addd(0x1d5)],0x0),'services':_0xf0faa};}catch(_0x1fa81b){return{...emptyServiceRegistryInspection(_0x44424a,_0x6addd(0x1f1),!![]),'message':_0x1fa81b instanceof Error?_0x1fa81b[_0x6addd(0x1f4)]:String(_0x1fa81b)};}}export function formatValidationFailure(_0x3fa6c7){const _0xa21ff4=a62_0xd553,_0x23582f=_0x3fa6c7[_0xa21ff4(0x1c6)][_0xa21ff4(0x1b7)](_0x33b3ec=>_0x33b3ec[_0xa21ff4(0x1cd)]+':\x20'+_0x33b3ec[_0xa21ff4(0x1f4)]);return _0xa21ff4(0x1cb)+_0x23582f[_0xa21ff4(0x1c1)]('\x0a');}function extractLoadedServiceManifests(_0x400bdb,_0x2886b0){const _0x5c671b=a62_0xd553;if(!isServiceRegistryLike(_0x400bdb)){const _0x4f4b14=_0x400bdb,{manifest:_0x2013ff,errors:_0x125adc}=adaptServiceTreeManifestForLegacyFramework(_0x4f4b14),_0x19e023=validateServiceTreeManifest(_0x2013ff),_0x24aa45=mergeValidationErrors(_0x19e023,_0x125adc);return[{'manifest':_0x4f4b14,'report':_0x24aa45,'normalizedManifest':_0x24aa45['ok']?normalizeServiceTreeManifest(_0x2013ff):undefined,'sourceHash':_0x2886b0}];}return _0x400bdb['services'][_0x5c671b(0x1b7)]((_0x10cb4b,_0x1faf2a)=>{const _0x6a0891=_0x5c671b,_0x1c1bdc=isObjectRecord(_0x10cb4b)?_0x10cb4b[_0x6a0891(0x1b6)]:undefined,{manifest:_0x5cf5f4,errors:_0x728d60}=adaptServiceTreeManifestForLegacyFramework(_0x1c1bdc),_0x3ebe68=validateServiceTreeManifest(_0x5cf5f4),_0x738ec9=mergeValidationErrors(_0x3ebe68,_0x728d60),_0x3ef261=isObjectRecord(_0x10cb4b)&&typeof _0x10cb4b[_0x6a0891(0x1db)]===_0x6a0891(0x1b1)?_0x10cb4b[_0x6a0891(0x1db)]:undefined;return{'manifest':_0x1c1bdc,'report':_0x738ec9,'normalizedManifest':_0x738ec9['ok']?normalizeServiceTreeManifest(_0x5cf5f4):undefined,'sourceHash':sha256(JSON[_0x6a0891(0x1af)](_0x1c1bdc,null,0x2)+'\x0a'),'registryIndex':_0x1faf2a,'registryServiceCode':_0x3ef261};});}function mergeValidationErrors(_0x3dddbf,_0x183280){const _0x49adf5=a62_0xd553,_0x236304=_0x3dddbf[_0x49adf5(0x1c6)]['map'](_0x36d72d=>_0x36d72d['message']===_0x49adf5(0x1cc)?{..._0x36d72d,'message':_0x49adf5(0x1bd)}:_0x36d72d),_0x757f3a=[..._0x183280,..._0x236304];return{'ok':_0x757f3a[_0x49adf5(0x1b2)]===0x0,'errors':_0x757f3a,'warnings':_0x3dddbf[_0x49adf5(0x1d1)]};}function aggregateValidationReports(_0x37e12f){const _0x42f68d=a62_0xd553,_0x3242be=_0x37e12f['flatMap'](_0x31aaf4=>_0x31aaf4[_0x42f68d(0x1d2)]===undefined?_0x31aaf4[_0x42f68d(0x1d0)][_0x42f68d(0x1c6)]:_0x31aaf4[_0x42f68d(0x1d0)][_0x42f68d(0x1c6)]['map'](_0x1af7ae=>({..._0x1af7ae,'path':prefixRegistryIssuePath(_0x31aaf4[_0x42f68d(0x1d2)],_0x1af7ae[_0x42f68d(0x1cd)])}))),_0x3b55a8=_0x37e12f['flatMap'](_0x4a378f=>_0x4a378f[_0x42f68d(0x1d2)]===undefined?_0x4a378f['report'][_0x42f68d(0x1d1)]:_0x4a378f[_0x42f68d(0x1d0)]['warnings']['map'](_0x3ce263=>({..._0x3ce263,'path':prefixRegistryIssuePath(_0x4a378f[_0x42f68d(0x1d2)],_0x3ce263['path'])})));return{'ok':_0x3242be[_0x42f68d(0x1b2)]===0x0,'errors':_0x3242be,'warnings':_0x3b55a8};}function prefixRegistryIssuePath(_0x334411,_0x5defb7){const _0xab639d=a62_0xd553;if(_0x5defb7==='$')return'$.services['+_0x334411+'].manifest';if(_0x5defb7[_0xab639d(0x1e6)]('$.'))return _0xab639d(0x1d6)+_0x334411+_0xab639d(0x1e2)+_0x5defb7[_0xab639d(0x1b4)](0x1);if(_0x5defb7[_0xab639d(0x1e6)]('$['))return _0xab639d(0x1d6)+_0x334411+_0xab639d(0x1e2)+_0x5defb7[_0xab639d(0x1b4)](0x1);return'$.services['+_0x334411+_0xab639d(0x1aa)+_0x5defb7;}function isServiceRegistryLike(_0x1114a3){const _0x37bbec=a62_0xd553;return isObjectRecord(_0x1114a3)&&_0x1114a3[_0x37bbec(0x1ce)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x1114a3[_0x37bbec(0x1e9)]);}function isObjectRecord(_0x6c0768){const _0x1ab427=a62_0xd553;return Boolean(_0x6c0768)&&typeof _0x6c0768===_0x1ab427(0x1f3)&&!Array[_0x1ab427(0x1dd)](_0x6c0768);}function emptyServiceRegistryInspection(_0x386593,_0x2a1284,_0x19b519){return{'registryPath':_0x386593,'exists':_0x19b519,'status':_0x2a1284,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x3991ff){const _0x51f099=a62_0xd553,_0x5d0cd6=_0x3991ff[_0x51f099(0x1ed)],_0x184e48=_0x5d0cd6['commands']['map'](_0x41d5f2=>({'path':_0x41d5f2[_0x51f099(0x1eb)],'description':_0x41d5f2['description'],'risk':_0x41d5f2[_0x51f099(0x1f6)],'targetKind':_0x41d5f2[_0x51f099(0x1a9)][_0x51f099(0x1ec)],'targetCommand':_0x41d5f2[_0x51f099(0x1a9)][_0x51f099(0x1c8)]}));return{'serviceCode':_0x3991ff[_0x51f099(0x1db)],'name':_0x5d0cd6[_0x51f099(0x1f8)]['name'],'description':_0x5d0cd6[_0x51f099(0x1f8)][_0x51f099(0x1b5)],'version':_0x3991ff['version'],'importedAt':_0x3991ff['importedAt'],'source':_0x3991ff[_0x51f099(0x1f5)],'commandCount':_0x184e48[_0x51f099(0x1b2)],'commands':_0x184e48};}function sha256(_0x1f58e3){const _0xe44c60=a62_0xd553;return createHash(_0xe44c60(0x1b3))['update'](_0x1f58e3)[_0xe44c60(0x1e5)](_0xe44c60(0x1ae));}
1
+ const a63_0xb19b1f=a63_0x511b;(function(_0x59ff48,_0xed8fec){const _0x3a2800=a63_0x511b,_0x4144ee=_0x59ff48();while(!![]){try{const _0x171222=parseInt(_0x3a2800(0x110))/0x1*(parseInt(_0x3a2800(0x109))/0x2)+parseInt(_0x3a2800(0xe3))/0x3+parseInt(_0x3a2800(0xea))/0x4+-parseInt(_0x3a2800(0x107))/0x5*(parseInt(_0x3a2800(0x101))/0x6)+parseInt(_0x3a2800(0x100))/0x7+parseInt(_0x3a2800(0xeb))/0x8+-parseInt(_0x3a2800(0xf6))/0x9;if(_0x171222===_0xed8fec)break;else _0x4144ee['push'](_0x4144ee['shift']());}catch(_0x20a74d){_0x4144ee['push'](_0x4144ee['shift']());}}}(a63_0xb60a,0xc407d));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';function a63_0x511b(_0x34b6d0,_0xcf3843){_0x34b6d0=_0x34b6d0-0xe1;const _0xb60aba=a63_0xb60a();let _0x511bbd=_0xb60aba[_0x34b6d0];return _0x511bbd;}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=a63_0xb19b1f(0xf9);function a63_0xb60a(){const _0x501a87=['updatedAt','commands','manifest','homeDir','file','hex','version','schemaVersion','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','digest','cliPath','Service\x20manifest\x20validation\x20failed:\x0a','bff\x20target\x20requires\x20functionName.','serviceCode','trim','manifests','map','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','stringify','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','utf8','isArray','target','command','report','importedAt','Service\x20manifest\x20file\x20not\x20found:\x20','path','update','Unsupported\x20service\x20registry\x20schemaVersion:\x20','string','sha256','warnings','code','157158ItBPbs','message','$.services[','commandCount','flatMap','slice','normalizedManifest','3542652YzSgty','7404560wqtZEc','name','].manifest','registryIndex','parse','object','find','].manifest.','length','kind','Local\x20service\x20not\x20found:\x20','17419104wPHDKQ','toISOString','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','service.json','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','push','registry','service','services','errors','4225837zoRvhd','11208nKuZfx','description','startsWith','empty','now','services\x20must\x20be\x20an\x20array','155AKsuna','validation','219330sXHRpC','reduce','Invalid\x20service\x20registry\x20JSON:\x20','sort','Cannot\x20write\x20service\x20registry:\x20','invalid','risk','3rRhCEW'];a63_0xb60a=function(){return _0x501a87;};return a63_0xb60a();}export function getServiceRegistryPath(_0x328734={}){const _0x4c100c=a63_0xb19b1f;return resolve(_0x328734[_0x4c100c(0x114)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x54e307={}){const _0x3cbc29=a63_0xb19b1f,_0x4449ea=getServiceRegistryPath(_0x54e307);if(!existsSync(_0x4449ea))return emptyServiceRegistry();try{const _0x47c601=readFileSync(_0x4449ea,_0x3cbc29(0x125));if(!_0x47c601[_0x3cbc29(0x11f)]())return emptyServiceRegistry();const _0x5120d3=JSON['parse'](_0x47c601);if(_0x5120d3[_0x3cbc29(0x118)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x3cbc29(0x108)](_0x3cbc29(0x12e)+String(_0x5120d3[_0x3cbc29(0x118)]),'Remove\x20or\x20migrate\x20'+_0x4449ea+'.');if(!Array[_0x3cbc29(0x126)](_0x5120d3[_0x3cbc29(0xfe)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5120d3['updatedAt'],'services':_0x5120d3[_0x3cbc29(0xfe)]};}catch(_0x456f10){if(_0x456f10 instanceof Error&&_0x456f10['name']==='CliError')throw _0x456f10;throw CliErrors[_0x3cbc29(0x108)](_0x3cbc29(0x10b)+_0x4449ea,_0x3cbc29(0x119));}}export function writeServiceRegistry(_0x52b5a7,_0x5927b2={}){const _0x2bf497=a63_0xb19b1f,_0x2d9b12=getServiceRegistryPath(_0x5927b2),_0x5aaece=dirname(_0x2d9b12);!existsSync(_0x5aaece)&&mkdirSync(_0x5aaece,{'recursive':!![]});const _0xd58679=_0x2d9b12+'.tmp';try{writeFileSync(_0xd58679,JSON['stringify'](_0x52b5a7,null,0x2)+'\x0a',{'encoding':_0x2bf497(0x125),'mode':0x180}),renameSync(_0xd58679,_0x2d9b12);}catch(_0x49e538){try{unlinkSync(_0xd58679);}catch{}if(_0x49e538?.[_0x2bf497(0xe2)]==='ENOENT')throw CliErrors[_0x2bf497(0x108)](_0x2bf497(0x10d)+_0x2d9b12);throw _0x49e538;}return _0x2d9b12;}export function loadServiceManifestFromFile(_0x133b17){const _0x3b003f=a63_0xb19b1f,_0x254d2a=resolve(_0x133b17);if(!existsSync(_0x254d2a))throw CliErrors[_0x3b003f(0x108)](_0x3b003f(0x12b)+_0x133b17);let _0x1896bd;const _0x3887a9=readFileSync(_0x254d2a,_0x3b003f(0x125));try{_0x1896bd=JSON[_0x3b003f(0xef)](_0x3887a9);}catch{throw CliErrors[_0x3b003f(0x108)]('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x133b17,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x5698d2=sha256(_0x3887a9),_0xf0dc4f=extractLoadedServiceManifests(_0x1896bd,_0x5698d2),_0x13360a=aggregateValidationReports(_0xf0dc4f),_0x40442b=_0xf0dc4f[0x0];return{'filePath':_0x254d2a,'hash':_0x5698d2,'kind':isServiceRegistryLike(_0x1896bd)?_0x3b003f(0xfc):_0x3b003f(0x113),'manifest':_0x40442b?.['manifest']??_0x1896bd,'report':_0x13360a,'normalizedManifest':_0xf0dc4f[_0x3b003f(0xf3)]===0x1?_0x40442b?.[_0x3b003f(0xe9)]:undefined,'manifests':_0xf0dc4f};}export function importServiceManifest(_0x33088a,_0x17a631={}){const _0x2b545b=a63_0xb19b1f,_0x5180b8=loadServiceManifestFromFile(_0x33088a);if(!_0x5180b8[_0x2b545b(0x129)]['ok'])throw CliErrors[_0x2b545b(0x108)](formatValidationFailure(_0x5180b8[_0x2b545b(0x129)]),_0x2b545b(0x122));if(_0x5180b8['manifests']['length']===0x0)throw CliErrors[_0x2b545b(0x108)](_0x2b545b(0x124),'Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x373fae=readServiceRegistry(_0x17a631),_0x1f93d2=(_0x17a631[_0x2b545b(0x105)]??(()=>new Date()))()[_0x2b545b(0xf7)](),_0x2e0647=[];let _0x50b059=0x0,_0x1c71c7=0x0;for(const _0x441de2 of _0x5180b8[_0x2b545b(0x120)]){if(!_0x441de2[_0x2b545b(0xe9)])continue;const _0x3ced7e=_0x441de2[_0x2b545b(0xe9)][_0x2b545b(0xfd)]['code'],_0x246ece={'serviceCode':_0x3ced7e,'version':_0x441de2['normalizedManifest'][_0x2b545b(0x117)],'importedAt':_0x1f93d2,'source':{'type':_0x2b545b(0x115),'path':_0x5180b8['filePath'],'hash':_0x441de2['sourceHash']},'manifest':_0x441de2[_0x2b545b(0x113)],'normalizedManifest':_0x441de2[_0x2b545b(0xe9)]},_0x4c4978=_0x373fae[_0x2b545b(0xfe)]['findIndex'](_0x34ea98=>_0x34ea98[_0x2b545b(0x11e)]===_0x3ced7e);_0x4c4978>=0x0?(_0x373fae[_0x2b545b(0xfe)][_0x4c4978]=_0x246ece,_0x1c71c7++):(_0x373fae['services'][_0x2b545b(0xfb)](_0x246ece),_0x50b059++),_0x2e0647[_0x2b545b(0xfb)](_0x246ece);}_0x373fae[_0x2b545b(0xfe)][_0x2b545b(0x10c)]((_0x4b938d,_0x50fd05)=>_0x4b938d[_0x2b545b(0x11e)]['localeCompare'](_0x50fd05[_0x2b545b(0x11e)])),_0x373fae[_0x2b545b(0x111)]=_0x1f93d2;const _0x242a78=writeServiceRegistry(_0x373fae,_0x17a631);return{'registryPath':_0x242a78,'entry':_0x2e0647[0x0],'replaced':_0x2e0647[_0x2b545b(0xf3)]===0x1?_0x1c71c7===0x1:_0x1c71c7>0x0,'entries':_0x2e0647,'imported':_0x50b059,'updated':_0x1c71c7,'serviceCount':_0x373fae[_0x2b545b(0xfe)][_0x2b545b(0xf3)]};}export function exportServiceManifest(_0x29a25e,_0x563f45,_0x35bcfb={}){const _0x1138fd=a63_0xb19b1f,_0xd0a34=getServiceRegistryPath(_0x35bcfb),_0x2fa4ba=getLocalServiceEntry(_0x29a25e,_0x35bcfb);if(!_0x2fa4ba)throw CliErrors['validation'](_0x1138fd(0xf5)+_0x29a25e,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x45bb12=resolve(_0x563f45),_0x83923f=dirname(_0x45bb12);return!existsSync(_0x83923f)&&mkdirSync(_0x83923f,{'recursive':!![]}),writeFileSync(_0x45bb12,JSON[_0x1138fd(0x123)](_0x2fa4ba['manifest'],null,0x2)+'\x0a',{'encoding':_0x1138fd(0x125),'mode':0x180}),{'registryPath':_0xd0a34,'filePath':_0x45bb12,'entry':_0x2fa4ba};}export function removeServiceManifest(_0x165854,_0x4591f8={}){const _0x1f70be=a63_0xb19b1f,_0x4f7744=readServiceRegistry(_0x4591f8),_0x12c4da=_0x165854[_0x1f70be(0x11f)](),_0x527e9b=_0x4f7744[_0x1f70be(0xfe)]['findIndex'](_0x133500=>_0x133500['serviceCode']===_0x12c4da);if(_0x527e9b<0x0)throw CliErrors[_0x1f70be(0x108)](_0x1f70be(0xf5)+_0x12c4da,_0x1f70be(0xf8));const [_0x17d8c1]=_0x4f7744[_0x1f70be(0xfe)]['splice'](_0x527e9b,0x1),_0x4f5a8f=(_0x4591f8[_0x1f70be(0x105)]??(()=>new Date()))()['toISOString']();_0x4f7744[_0x1f70be(0x111)]=_0x4f5a8f;const _0x4c4015=writeServiceRegistry(_0x4f7744,_0x4591f8);return{'registryPath':_0x4c4015,'entry':_0x17d8c1,'serviceCount':_0x4f7744[_0x1f70be(0xfe)]['length']};}export function listLocalServices(_0x4c10d7={}){const _0x3c91d1=a63_0xb19b1f;return readServiceRegistry(_0x4c10d7)[_0x3c91d1(0xfe)];}export function getLocalServiceEntry(_0xac7442,_0x583969={}){const _0xaa5bfc=a63_0xb19b1f;return readServiceRegistry(_0x583969)[_0xaa5bfc(0xfe)][_0xaa5bfc(0xf1)](_0x4ad2bb=>_0x4ad2bb[_0xaa5bfc(0x11e)]===_0xac7442[_0xaa5bfc(0x11f)]());}export function listLocalServiceTrees(_0x515b86={}){const _0x979b34=a63_0xb19b1f;return readServiceRegistry(_0x515b86)[_0x979b34(0xfe)]['map'](_0x3bbe54=>_0x3bbe54[_0x979b34(0xe9)]);}export function inspectServiceRegistry(_0x33cad2={}){const _0x164d58=a63_0xb19b1f,_0x1e611f=getServiceRegistryPath(_0x33cad2);if(!existsSync(_0x1e611f))return emptyServiceRegistryInspection(_0x1e611f,'missing',![]);try{const _0x407c5f=readFileSync(_0x1e611f,'utf8');if(!_0x407c5f['trim']())return emptyServiceRegistryInspection(_0x1e611f,_0x164d58(0x104),!![]);const _0xf59a2d=JSON[_0x164d58(0xef)](_0x407c5f);if(_0xf59a2d[_0x164d58(0x118)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x1e611f,_0x164d58(0x10e),!![]),'schemaVersion':_0xf59a2d[_0x164d58(0x118)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0xf59a2d[_0x164d58(0x118)])};if(!Array[_0x164d58(0x126)](_0xf59a2d[_0x164d58(0xfe)]))return{...emptyServiceRegistryInspection(_0x1e611f,_0x164d58(0x10e),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xf59a2d[_0x164d58(0x111)],'message':_0x164d58(0x106)};const _0x3cec06=_0xf59a2d[_0x164d58(0xfe)][_0x164d58(0x121)](summarizeLocalServiceEntry);return{'registryPath':_0x1e611f,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xf59a2d[_0x164d58(0x111)],'serviceCount':_0x3cec06[_0x164d58(0xf3)],'commandCount':_0x3cec06[_0x164d58(0x10a)]((_0x148071,_0xc2b1ff)=>_0x148071+_0xc2b1ff[_0x164d58(0xe6)],0x0),'services':_0x3cec06};}catch(_0x4544f8){return{...emptyServiceRegistryInspection(_0x1e611f,_0x164d58(0x10e),!![]),'message':_0x4544f8 instanceof Error?_0x4544f8[_0x164d58(0xe4)]:String(_0x4544f8)};}}export function formatValidationFailure(_0x120b1a){const _0x41ef08=a63_0xb19b1f,_0x41865b=_0x120b1a['errors'][_0x41ef08(0x121)](_0x5e7c3c=>_0x5e7c3c[_0x41ef08(0x12c)]+':\x20'+_0x5e7c3c[_0x41ef08(0xe4)]);return _0x41ef08(0x11c)+_0x41865b['join']('\x0a');}function extractLoadedServiceManifests(_0x1a19d8,_0x92b1c7){const _0x334dd0=a63_0xb19b1f;if(!isServiceRegistryLike(_0x1a19d8)){const _0x3fac32=_0x1a19d8,{manifest:_0x49bae3,errors:_0x7ef477}=adaptServiceTreeManifestForLegacyFramework(_0x3fac32),_0x3592c2=validateServiceTreeManifest(_0x49bae3),_0x447ae0=mergeValidationErrors(_0x3592c2,_0x7ef477);return[{'manifest':_0x3fac32,'report':_0x447ae0,'normalizedManifest':_0x447ae0['ok']?normalizeServiceTreeManifest(_0x49bae3):undefined,'sourceHash':_0x92b1c7}];}return _0x1a19d8[_0x334dd0(0xfe)][_0x334dd0(0x121)]((_0x2ebedb,_0xbf77fc)=>{const _0x442312=_0x334dd0,_0x40e9bc=isObjectRecord(_0x2ebedb)?_0x2ebedb[_0x442312(0x113)]:undefined,{manifest:_0x388dd5,errors:_0x2a906d}=adaptServiceTreeManifestForLegacyFramework(_0x40e9bc),_0x5ab9e1=validateServiceTreeManifest(_0x388dd5),_0x4fc3a3=mergeValidationErrors(_0x5ab9e1,_0x2a906d),_0x1fed92=isObjectRecord(_0x2ebedb)&&typeof _0x2ebedb[_0x442312(0x11e)]===_0x442312(0x12f)?_0x2ebedb[_0x442312(0x11e)]:undefined;return{'manifest':_0x40e9bc,'report':_0x4fc3a3,'normalizedManifest':_0x4fc3a3['ok']?normalizeServiceTreeManifest(_0x388dd5):undefined,'sourceHash':sha256(JSON[_0x442312(0x123)](_0x40e9bc,null,0x2)+'\x0a'),'registryIndex':_0xbf77fc,'registryServiceCode':_0x1fed92};});}function mergeValidationErrors(_0x4d1964,_0x11bd04){const _0x8f057b=a63_0xb19b1f,_0x2918ca=_0x4d1964[_0x8f057b(0xff)][_0x8f057b(0x121)](_0x404633=>_0x404633[_0x8f057b(0xe4)]===_0x8f057b(0xfa)?{..._0x404633,'message':_0x8f057b(0x11d)}:_0x404633),_0x30688b=[..._0x11bd04,..._0x2918ca];return{'ok':_0x30688b[_0x8f057b(0xf3)]===0x0,'errors':_0x30688b,'warnings':_0x4d1964[_0x8f057b(0xe1)]};}function aggregateValidationReports(_0x512702){const _0x4e9b3f=a63_0xb19b1f,_0x266959=_0x512702[_0x4e9b3f(0xe7)](_0x4b49a7=>_0x4b49a7[_0x4e9b3f(0xee)]===undefined?_0x4b49a7[_0x4e9b3f(0x129)][_0x4e9b3f(0xff)]:_0x4b49a7[_0x4e9b3f(0x129)][_0x4e9b3f(0xff)][_0x4e9b3f(0x121)](_0x552b0f=>({..._0x552b0f,'path':prefixRegistryIssuePath(_0x4b49a7[_0x4e9b3f(0xee)],_0x552b0f[_0x4e9b3f(0x12c)])}))),_0x279313=_0x512702['flatMap'](_0x2bdc96=>_0x2bdc96[_0x4e9b3f(0xee)]===undefined?_0x2bdc96[_0x4e9b3f(0x129)][_0x4e9b3f(0xe1)]:_0x2bdc96['report'][_0x4e9b3f(0xe1)][_0x4e9b3f(0x121)](_0x24c4cb=>({..._0x24c4cb,'path':prefixRegistryIssuePath(_0x2bdc96[_0x4e9b3f(0xee)],_0x24c4cb['path'])})));return{'ok':_0x266959[_0x4e9b3f(0xf3)]===0x0,'errors':_0x266959,'warnings':_0x279313};}function prefixRegistryIssuePath(_0x594791,_0x453872){const _0x560d67=a63_0xb19b1f;if(_0x453872==='$')return _0x560d67(0xe5)+_0x594791+_0x560d67(0xed);if(_0x453872[_0x560d67(0x103)]('$.'))return _0x560d67(0xe5)+_0x594791+'].manifest'+_0x453872[_0x560d67(0xe8)](0x1);if(_0x453872['startsWith']('$['))return _0x560d67(0xe5)+_0x594791+_0x560d67(0xed)+_0x453872[_0x560d67(0xe8)](0x1);return _0x560d67(0xe5)+_0x594791+_0x560d67(0xf2)+_0x453872;}function isServiceRegistryLike(_0x3cb4d9){const _0x3d141a=a63_0xb19b1f;return isObjectRecord(_0x3cb4d9)&&_0x3cb4d9['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x3d141a(0x126)](_0x3cb4d9['services']);}function isObjectRecord(_0x267f67){const _0x7ba7a7=a63_0xb19b1f;return Boolean(_0x267f67)&&typeof _0x267f67===_0x7ba7a7(0xf0)&&!Array['isArray'](_0x267f67);}function emptyServiceRegistryInspection(_0x4fd620,_0x522fc2,_0x3f57fb){return{'registryPath':_0x4fd620,'exists':_0x3f57fb,'status':_0x522fc2,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x16e2ea){const _0x383ea5=a63_0xb19b1f,_0x274cf4=_0x16e2ea[_0x383ea5(0xe9)],_0x392d07=_0x274cf4[_0x383ea5(0x112)][_0x383ea5(0x121)](_0xdab20c=>({'path':_0xdab20c[_0x383ea5(0x11b)],'description':_0xdab20c[_0x383ea5(0x102)],'risk':_0xdab20c[_0x383ea5(0x10f)],'targetKind':_0xdab20c[_0x383ea5(0x127)][_0x383ea5(0xf4)],'targetCommand':_0xdab20c['target'][_0x383ea5(0x128)]}));return{'serviceCode':_0x16e2ea[_0x383ea5(0x11e)],'name':_0x274cf4[_0x383ea5(0xfd)][_0x383ea5(0xec)],'description':_0x274cf4[_0x383ea5(0xfd)][_0x383ea5(0x102)],'version':_0x16e2ea[_0x383ea5(0x117)],'importedAt':_0x16e2ea[_0x383ea5(0x12a)],'source':_0x16e2ea['source'],'commandCount':_0x392d07[_0x383ea5(0xf3)],'commands':_0x392d07};}function sha256(_0x152be4){const _0x50cd58=a63_0xb19b1f;return createHash(_0x50cd58(0x130))[_0x50cd58(0x12d)](_0x152be4)[_0x50cd58(0x11a)](_0x50cd58(0x116));}
@@ -1 +1 @@
1
- const a63_0x9452d3=a63_0x4c9b;(function(_0x13277b,_0x29a35d){const _0x4773d0=a63_0x4c9b,_0xea6177=_0x13277b();while(!![]){try{const _0x3bad21=-parseInt(_0x4773d0(0x18e))/0x1*(parseInt(_0x4773d0(0x188))/0x2)+parseInt(_0x4773d0(0x184))/0x3*(-parseInt(_0x4773d0(0x176))/0x4)+-parseInt(_0x4773d0(0x17d))/0x5+parseInt(_0x4773d0(0x16f))/0x6*(parseInt(_0x4773d0(0x185))/0x7)+parseInt(_0x4773d0(0x16e))/0x8*(-parseInt(_0x4773d0(0x18a))/0x9)+-parseInt(_0x4773d0(0x171))/0xa*(-parseInt(_0x4773d0(0x179))/0xb)+-parseInt(_0x4773d0(0x178))/0xc*(-parseInt(_0x4773d0(0x191))/0xd);if(_0x3bad21===_0x29a35d)break;else _0xea6177['push'](_0xea6177['shift']());}catch(_0xd427f8){_0xea6177['push'](_0xea6177['shift']());}}}(a63_0x1ed5,0x971ae));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';function a63_0x1ed5(){const _0x295d43=['str','6445218wkYUKy','Created\x20local\x20Skill\x20draft\x20','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','skillDir','72HcysQl','958746WDBslp','isSymbolicLink','505840sISdwD','force','skillName','create','path','180jcDnpv','bool','12wjfZay','154ICbumB','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','read','isDirectory','5000955ihlQSO','trim','files','name','Skill\x20directory\x20already\x20exists:\x20','type','target','1029uRAbNn','21GIPOLK','WRITE','创建本地自包含的运行态\x20Skill\x20草稿','42dBNMcL','rendered','43029RlIehi','map','skill','content','274plaeao','validation'];a63_0x1ed5=function(){return _0x295d43;};return a63_0x1ed5();}import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';function a63_0x4c9b(_0x5035e6,_0x5ed244){_0x5035e6=_0x5035e6-0x16e;const _0x1ed57b=a63_0x1ed5();let _0x4c9b0f=_0x1ed57b[_0x5035e6];return _0x4c9b0f;}import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a63_0x9452d3(0x18c),'command':a63_0x9452d3(0x174),'description':a63_0x9452d3(0x187),'risk':a63_0x9452d3(0x17b),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x4495cb){const _0xc2ef20=a63_0x9452d3,_0x174e3c=buildSkillCreatePlan(_0x4495cb[_0xc2ef20(0x190)]('name'),_0x4495cb[_0xc2ef20(0x190)](_0xc2ef20(0x182)),_0x4495cb['str']('target'));return{'method':_0xc2ef20(0x186),'url':_0x174e3c['skillDir'],'body':{'skillName':_0x174e3c[_0xc2ef20(0x189)][_0xc2ef20(0x173)],'type':_0x174e3c['rendered'][_0xc2ef20(0x182)],'selfContained':!![],'files':_0x174e3c[_0xc2ef20(0x189)][_0xc2ef20(0x17f)][_0xc2ef20(0x18b)](_0x40c087=>_0x40c087[_0xc2ef20(0x175)])},'description':_0xc2ef20(0x17a)};},async 'execute'(_0xfb5d4c){const _0x5bbece=a63_0x9452d3,_0x52012d=buildSkillCreatePlan(_0xfb5d4c[_0x5bbece(0x190)](_0x5bbece(0x180)),_0xfb5d4c[_0x5bbece(0x190)](_0x5bbece(0x182)),_0xfb5d4c['str'](_0x5bbece(0x183)));return writeSkillDraft(_0x52012d,_0xfb5d4c[_0x5bbece(0x177)](_0x5bbece(0x172))),{'ok':!![],'data':{'skillName':_0x52012d['rendered']['skillName'],'type':_0x52012d[_0x5bbece(0x189)][_0x5bbece(0x182)],'dir':_0x52012d[_0x5bbece(0x194)],'files':_0x52012d[_0x5bbece(0x189)][_0x5bbece(0x17f)]['map'](_0x13f62e=>_0x13f62e[_0x5bbece(0x175)])},'message':_0x5bbece(0x192)+_0x52012d[_0x5bbece(0x189)][_0x5bbece(0x173)]};}};function buildSkillCreatePlan(_0x3104ae,_0x80d48d,_0x4db6f7){const _0x183b49=a63_0x9452d3,_0x24740e=_0x80d48d[_0x183b49(0x17e)](),_0x3f8ce8=renderSkillTemplate({'skillName':_0x3104ae,'type':_0x24740e});!_0x24740e&&writeCliSideChannelLine(_0x183b49(0x193));const _0x2d370c=resolve(normalizeSkillTarget(_0x4db6f7));return{'rendered':_0x3f8ce8,'targetRoot':_0x2d370c,'skillDir':resolve(_0x2d370c,_0x3f8ce8['skillName'])};}function normalizeSkillTarget(_0x543339){const _0x1cdd01=a63_0x9452d3;return(_0x543339||DEFAULT_SKILL_TARGET)[_0x1cdd01(0x17e)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x19549d,_0x4682b7){const _0x4f29c2=a63_0x9452d3;if(existsSync(_0x19549d[_0x4f29c2(0x194)])){const _0x42c381=lstatSync(_0x19549d[_0x4f29c2(0x194)]);if(!_0x42c381[_0x4f29c2(0x17c)]()||_0x42c381[_0x4f29c2(0x170)]())throw CliErrors['validation']('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x19549d[_0x4f29c2(0x194)]);if(!_0x4682b7)throw CliErrors[_0x4f29c2(0x18f)](_0x4f29c2(0x181)+_0x19549d[_0x4f29c2(0x194)],'Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.');}for(const _0x2052b2 of _0x19549d[_0x4f29c2(0x189)][_0x4f29c2(0x17f)]){const _0x2de238=resolve(_0x19549d[_0x4f29c2(0x194)],_0x2052b2[_0x4f29c2(0x175)]),_0x34a560=dirname(_0x2de238);mkdirSync(_0x34a560,{'recursive':!![]});if(existsSync(_0x2de238)&&lstatSync(_0x2de238)[_0x4f29c2(0x170)]())throw CliErrors[_0x4f29c2(0x18f)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0x2de238);writeFileSync(_0x2de238,_0x2052b2[_0x4f29c2(0x18d)],'utf8');}}
1
+ function a64_0x6571(_0xd0c464,_0x4e8615){_0xd0c464=_0xd0c464-0xcb;const _0x40c180=a64_0x40c1();let _0x657134=_0x40c180[_0xd0c464];return _0x657134;}const a64_0x56439e=a64_0x6571;(function(_0x4a95c6,_0x35d4eb){const _0x45dd2d=a64_0x6571,_0x279c82=_0x4a95c6();while(!![]){try{const _0x526126=-parseInt(_0x45dd2d(0xe3))/0x1*(-parseInt(_0x45dd2d(0xe2))/0x2)+parseInt(_0x45dd2d(0xd4))/0x3*(parseInt(_0x45dd2d(0xe9))/0x4)+parseInt(_0x45dd2d(0xe4))/0x5+parseInt(_0x45dd2d(0xcf))/0x6*(-parseInt(_0x45dd2d(0xdd))/0x7)+-parseInt(_0x45dd2d(0xd0))/0x8*(-parseInt(_0x45dd2d(0xd9))/0x9)+-parseInt(_0x45dd2d(0xec))/0xa+parseInt(_0x45dd2d(0xcd))/0xb*(-parseInt(_0x45dd2d(0xde))/0xc);if(_0x526126===_0x35d4eb)break;else _0x279c82['push'](_0x279c82['shift']());}catch(_0x138ba7){_0x279c82['push'](_0x279c82['shift']());}}}(a64_0x40c1,0x9f1a0));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':'skill','command':a64_0x56439e(0xe8),'description':'Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','risk':a64_0x56439e(0xdc),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x4e0835){const _0x24cf69=a64_0x56439e,_0x169ad0=buildSkillCreatePlan(_0x4e0835[_0x24cf69(0xe5)](_0x24cf69(0xda)),_0x4e0835[_0x24cf69(0xe5)](_0x24cf69(0xe7)),_0x4e0835[_0x24cf69(0xe5)]('target'));return{'method':_0x24cf69(0xeb),'url':_0x169ad0[_0x24cf69(0xe0)],'body':{'skillName':_0x169ad0[_0x24cf69(0xe1)]['skillName'],'type':_0x169ad0[_0x24cf69(0xe1)]['type'],'selfContained':!![],'files':_0x169ad0[_0x24cf69(0xe1)]['files'][_0x24cf69(0xd7)](_0x53ac25=>_0x53ac25[_0x24cf69(0xcc)])},'description':'Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.'};},async 'execute'(_0x3da346){const _0x1852d2=a64_0x56439e,_0x1e88ed=buildSkillCreatePlan(_0x3da346[_0x1852d2(0xe5)]('name'),_0x3da346[_0x1852d2(0xe5)]('type'),_0x3da346[_0x1852d2(0xe5)]('target'));return writeSkillDraft(_0x1e88ed,_0x3da346[_0x1852d2(0xdf)](_0x1852d2(0xd8))),{'ok':!![],'data':{'skillName':_0x1e88ed[_0x1852d2(0xe1)]['skillName'],'type':_0x1e88ed[_0x1852d2(0xe1)][_0x1852d2(0xe7)],'dir':_0x1e88ed[_0x1852d2(0xe0)],'files':_0x1e88ed[_0x1852d2(0xe1)][_0x1852d2(0xcb)][_0x1852d2(0xd7)](_0x1b8a70=>_0x1b8a70[_0x1852d2(0xcc)])},'message':_0x1852d2(0xe6)+_0x1e88ed[_0x1852d2(0xe1)][_0x1852d2(0xee)]};}};function a64_0x40c1(){const _0x3109ed=['61569TsIVWi','name','utf8','read','27013zjyVtI','5877876NIlbCH','bool','skillDir','rendered','4CSmPqw','472281LgnFye','6217865tmKWzE','str','Created\x20local\x20Skill\x20draft\x20','type','create','18556HczaoC','content','WRITE','12227460UtZFWk','Skill\x20directory\x20already\x20exists:\x20','skillName','files','path','44ZQAfaF','validation','204enPJII','944IZvrlv','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','isSymbolicLink','isDirectory','627AuXUBQ','trim','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','map','force'];a64_0x40c1=function(){return _0x3109ed;};return a64_0x40c1();}function buildSkillCreatePlan(_0xaaabe1,_0x4ff98e,_0x16b3aa){const _0x5cc274=a64_0x56439e,_0xd31982=_0x4ff98e[_0x5cc274(0xd5)](),_0x2a4b40=renderSkillTemplate({'skillName':_0xaaabe1,'type':_0xd31982});!_0xd31982&&writeCliSideChannelLine(_0x5cc274(0xd6));const _0x1afbea=resolve(normalizeSkillTarget(_0x16b3aa));return{'rendered':_0x2a4b40,'targetRoot':_0x1afbea,'skillDir':resolve(_0x1afbea,_0x2a4b40[_0x5cc274(0xee)])};}function normalizeSkillTarget(_0x28b318){const _0x284303=a64_0x56439e;return(_0x28b318||DEFAULT_SKILL_TARGET)[_0x284303(0xd5)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0xeaedc9,_0x195d2e){const _0x1a2afe=a64_0x56439e;if(existsSync(_0xeaedc9[_0x1a2afe(0xe0)])){const _0x45d680=lstatSync(_0xeaedc9[_0x1a2afe(0xe0)]);if(!_0x45d680[_0x1a2afe(0xd3)]()||_0x45d680['isSymbolicLink']())throw CliErrors['validation']('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0xeaedc9[_0x1a2afe(0xe0)]);if(!_0x195d2e)throw CliErrors[_0x1a2afe(0xce)](_0x1a2afe(0xed)+_0xeaedc9[_0x1a2afe(0xe0)],_0x1a2afe(0xd1));}for(const _0x23bb50 of _0xeaedc9[_0x1a2afe(0xe1)][_0x1a2afe(0xcb)]){const _0x56608e=resolve(_0xeaedc9['skillDir'],_0x23bb50['path']),_0x51243f=dirname(_0x56608e);mkdirSync(_0x51243f,{'recursive':!![]});if(existsSync(_0x56608e)&&lstatSync(_0x56608e)[_0x1a2afe(0xd2)]())throw CliErrors[_0x1a2afe(0xce)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0x56608e);writeFileSync(_0x56608e,_0x23bb50[_0x1a2afe(0xea)],_0x1a2afe(0xdb));}}