@lovrabet/lovrabet-cli 2.3.0-beta.4 → 2.3.0-beta.5

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 (164) hide show
  1. package/lib/cli.js +1 -1
  2. package/lib/commands/api-doc/index.js +1 -1
  3. package/lib/commands/app/cache.js +1 -1
  4. package/lib/commands/app/definitions.js +1 -1
  5. package/lib/commands/app/eligibility.js +1 -1
  6. package/lib/commands/app/mock-loader.js +1 -1
  7. package/lib/commands/app/remote-source.js +1 -1
  8. package/lib/commands/app/shared.js +1 -1
  9. package/lib/commands/app-config/get.js +1 -1
  10. package/lib/commands/app-config/index.js +1 -1
  11. package/lib/commands/artifact/index.js +1 -1
  12. package/lib/commands/auth/device.js +1 -1
  13. package/lib/commands/auth/index.js +1 -1
  14. package/lib/commands/auth/prompt.js +1 -1
  15. package/lib/commands/bff/detail.js +1 -1
  16. package/lib/commands/bff/exec.js +1 -1
  17. package/lib/commands/bff/index.js +1 -1
  18. package/lib/commands/cli-skill/index.js +1 -1
  19. package/lib/commands/common/config-policy.js +1 -1
  20. package/lib/commands/common/constraints.js +1 -1
  21. package/lib/commands/common/flags.js +1 -1
  22. package/lib/commands/common/local-file.js +1 -1
  23. package/lib/commands/config/definitions.js +1 -1
  24. package/lib/commands/config/init.js +1 -1
  25. package/lib/commands/config/shared.js +1 -1
  26. package/lib/commands/data/index.js +1 -1
  27. package/lib/commands/dataset/detail.js +1 -1
  28. package/lib/commands/dataset/index.js +1 -1
  29. package/lib/commands/dataset/list.js +1 -1
  30. package/lib/commands/dataset/sdk-doc.js +1 -1
  31. package/lib/commands/doctor.js +1 -1
  32. package/lib/commands/file/index.js +1 -1
  33. package/lib/commands/init.js +1 -1
  34. package/lib/commands/kb/index.js +1 -1
  35. package/lib/commands/logs/index.js +1 -1
  36. package/lib/commands/notification/config-list.js +1 -1
  37. package/lib/commands/notification/index.js +1 -1
  38. package/lib/commands/notification/shared.js +1 -1
  39. package/lib/commands/ocr/index.js +1 -1
  40. package/lib/commands/permit/dataset-get.js +1 -1
  41. package/lib/commands/permit/dataset-set.js +1 -1
  42. package/lib/commands/permit/index.js +1 -1
  43. package/lib/commands/permit/page-get.js +1 -1
  44. package/lib/commands/permit/page-set.js +1 -1
  45. package/lib/commands/permit/role-menus-set.js +1 -1
  46. package/lib/commands/permit/role-menus.js +1 -1
  47. package/lib/commands/permit/shared.js +1 -1
  48. package/lib/commands/personal-bff/index.js +1 -1
  49. package/lib/commands/registry.js +1 -1
  50. package/lib/commands/role/create.js +1 -1
  51. package/lib/commands/role/delete.js +1 -1
  52. package/lib/commands/role/detail.js +1 -1
  53. package/lib/commands/role/index.js +1 -1
  54. package/lib/commands/role/list.js +1 -1
  55. package/lib/commands/role/shared.js +1 -1
  56. package/lib/commands/role/update.js +1 -1
  57. package/lib/commands/role/user-add.js +1 -1
  58. package/lib/commands/role/user-remove.js +1 -1
  59. package/lib/commands/schedule/index.js +1 -1
  60. package/lib/commands/schema.js +1 -1
  61. package/lib/commands/service/dynamic.js +1 -1
  62. package/lib/commands/service/function-name-adapter.js +1 -1
  63. package/lib/commands/service/index.js +1 -1
  64. package/lib/commands/service/registry.js +1 -1
  65. package/lib/commands/skill/commands/create.js +1 -1
  66. package/lib/commands/skill/commands/diagram.js +1 -1
  67. package/lib/commands/skill/commands/install.js +1 -1
  68. package/lib/commands/skill/commands/list.js +1 -1
  69. package/lib/commands/skill/commands/push.js +1 -1
  70. package/lib/commands/skill/commands/validate.js +1 -1
  71. package/lib/commands/skill/diagram.js +1 -1
  72. package/lib/commands/skill/flags.js +1 -1
  73. package/lib/commands/skill/index.js +1 -1
  74. package/lib/commands/skill/manifest-helpers.js +1 -1
  75. package/lib/commands/skill/push-execute.js +1 -1
  76. package/lib/commands/skill/push-flow-helpers.js +1 -1
  77. package/lib/commands/skill/push-retarget.js +1 -1
  78. package/lib/commands/skill/scopes.js +1 -1
  79. package/lib/commands/skill/summary.js +1 -1
  80. package/lib/commands/skill/templates.js +1 -1
  81. package/lib/commands/skill/validate.js +1 -1
  82. package/lib/commands/sql/detail.js +1 -1
  83. package/lib/commands/sql/exec.js +1 -1
  84. package/lib/commands/sql/index.js +1 -1
  85. package/lib/commands/update.js +1 -1
  86. package/lib/commands/user-account/bind.js +1 -1
  87. package/lib/commands/user-account/index.js +1 -1
  88. package/lib/commands/workspace/index.js +1 -1
  89. package/lib/config/domain-config.js +1 -1
  90. package/lib/config/schema.js +1 -1
  91. package/lib/constant/app.js +1 -1
  92. package/lib/constant/auth-mode.js +1 -1
  93. package/lib/constant/cli.js +1 -1
  94. package/lib/constant/defaults.js +1 -1
  95. package/lib/constant/distribution.js +1 -1
  96. package/lib/constant/domain.js +1 -1
  97. package/lib/constant/env.js +1 -1
  98. package/lib/constant/output.js +1 -1
  99. package/lib/constant/product.js +1 -1
  100. package/lib/constant/region.js +1 -1
  101. package/lib/constant/risk.js +1 -1
  102. package/lib/constant/url.js +1 -1
  103. package/lib/context.js +1 -1
  104. package/lib/core/api-client.js +1 -1
  105. package/lib/core/db-resolver.js +1 -1
  106. package/lib/core/sdk-client.js +1 -1
  107. package/lib/errors.js +1 -1
  108. package/lib/framework/build-all-flags.js +1 -1
  109. package/lib/framework/dryrun.js +1 -1
  110. package/lib/framework/flags.js +1 -1
  111. package/lib/framework/help.js +1 -1
  112. package/lib/framework/index.js +1 -1
  113. package/lib/framework/output.js +1 -1
  114. package/lib/framework/preparse.js +1 -1
  115. package/lib/framework/rate-limit.js +1 -1
  116. package/lib/framework/raw-flags.js +1 -1
  117. package/lib/framework/response.js +1 -1
  118. package/lib/framework/runner-confirmation.js +1 -1
  119. package/lib/framework/runner-error.js +1 -1
  120. package/lib/framework/runner.js +1 -1
  121. package/lib/framework/schema-export.js +1 -1
  122. package/lib/framework/service-order.js +1 -1
  123. package/lib/framework/types.js +1 -1
  124. package/lib/generated/build-info.d.ts +4 -4
  125. package/lib/generated/build-info.js +1 -1
  126. package/lib/help.js +1 -1
  127. package/lib/postinstall.js +1 -1
  128. package/lib/runtime/confirmation.js +1 -1
  129. package/lib/runtime/event.js +1 -1
  130. package/lib/runtime/index.js +1 -1
  131. package/lib/runtime/queue.js +1 -1
  132. package/lib/runtime/resolve.js +1 -1
  133. package/lib/skills/builtin-skill.js +1 -1
  134. package/lib/skills/npx-skills-add.js +1 -1
  135. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  136. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  137. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  138. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  139. package/lib/skills/runtime-skill-sync/links.js +1 -1
  140. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  141. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  142. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  143. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  144. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  145. package/lib/skills/runtime-skill-sync/push.js +1 -1
  146. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  147. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  148. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  149. package/lib/skills/runtime-skill-sync.js +1 -1
  150. package/lib/skills/skill-presence.js +1 -1
  151. package/lib/utils/access-key-redaction.js +1 -1
  152. package/lib/utils/apply-jq-filter.js +1 -1
  153. package/lib/utils/cli-version-check.js +1 -1
  154. package/lib/utils/cli-version-policy.js +1 -1
  155. package/lib/utils/logger.js +1 -1
  156. package/lib/utils/lossless-json.js +1 -1
  157. package/lib/utils/params.js +1 -1
  158. package/lib/utils/platform.js +1 -1
  159. package/lib/utils/update-notice.js +1 -1
  160. package/lib/utils/version.js +1 -1
  161. package/lib/utils/write-cli-side-channel.js +1 -1
  162. package/package.json +1 -1
  163. package/skills/lovrabet/SKILL.md +1 -1
  164. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- const a56_0x3bc9f4=a56_0x28f3;function a56_0x1b16(){const _0x3cb92c=['252570CGPyNI','14088KblwgQ','4bLJvjV','appCode','high-risk-write','role','POST','user-add','9448470mcCOQT','1922356NGLdzz','927xMUOih','358074itDxBj','description','/client/permit/user-role/update-user-list','warnings','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','shouldWrite','28OLvifo','465954HWdWPu','build','roleList','77187sAGENY','before'];a56_0x1b16=function(){return _0x3cb92c;};return a56_0x1b16();}(function(_0x3f4b67,_0x4ce121){const _0x150513=a56_0x28f3,_0x3d1647=_0x3f4b67();while(!![]){try{const _0x59f811=-parseInt(_0x150513(0x10f))/0x1*(-parseInt(_0x150513(0xfc))/0x2)+parseInt(_0x150513(0x105))/0x3+parseInt(_0x150513(0x103))/0x4+parseInt(_0x150513(0x111))/0x5+parseInt(_0x150513(0x10c))/0x6*(parseInt(_0x150513(0x10b))/0x7)+parseInt(_0x150513(0x112))/0x8*(parseInt(_0x150513(0x104))/0x9)+-parseInt(_0x150513(0x102))/0xa;if(_0x59f811===_0x4ce121)break;else _0x3d1647['push'](_0x3d1647['shift']());}catch(_0x7050d9){_0x3d1647['push'](_0x3d1647['shift']());}}}(a56_0x1b16,0x55f07));import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a56_0x28f3(_0xffe7c,_0x3f68b3){_0xffe7c=_0xffe7c-0xfc;const _0x1b16c4=a56_0x1b16();let _0x28f31b=_0x1b16c4[_0xffe7c];return _0x28f31b;}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_0x3bc9f4(0xff),'command':a56_0x3bc9f4(0x101),'description':'Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','risk':a56_0x3bc9f4(0xfe),'confirmationDescription':a56_0x3bc9f4(0x109),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x16942a){const _0x20cd16=a56_0x3bc9f4,_0x5b9022=await prepareRuntimeMemberMutation(_0x16942a,_0x20cd16(0x101));return dryRun(_0x20cd16(0x100),_0x20cd16(0x107))['body']({'appCode':_0x16942a['appCode'],'roleList':_0x5b9022[_0x20cd16(0x10e)]})[_0x20cd16(0x106)](_0x5b9022[_0x20cd16(0x10a)]?'Preview:\x20add\x20runtime\x20role\x20member':_0x5b9022[_0x20cd16(0x108)][0x0])[_0x20cd16(0x10d)]();},async 'execute'(_0x4b420f){const _0x1bf66e=a56_0x3bc9f4,_0x3b1e04=await prepareRuntimeMemberMutation(_0x4b420f,_0x1bf66e(0x101));return _0x3b1e04[_0x1bf66e(0x10a)]&&await updateRuntimeRoleUsers(_0x4b420f[_0x1bf66e(0xfd)],_0x3b1e04[_0x1bf66e(0x10e)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x1bf66e(0x101),{'roleId':_0x3b1e04[_0x1bf66e(0xff)]['id'],'userId':_0x3b1e04['userId']},_0x3b1e04[_0x1bf66e(0x110)],_0x3b1e04['after'],{'method':'POST','path':_0x1bf66e(0x107)},_0x3b1e04[_0x1bf66e(0x108)])};}};
1
+ function a56_0x15ef(){const _0x3d221f=['roleList','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','build','user-add','userId','appCode','441RwpopX','3187065qKYNYp','820904bCCMcC','shouldWrite','28088EtSraB','POST','body','Preview:\x20add\x20runtime\x20role\x20member','warnings','high-risk-write','238953djOaMg','description','573582qyEDHD','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','before','549076IFTnuO','1473686mEMqNe','3juhort','role'];a56_0x15ef=function(){return _0x3d221f;};return a56_0x15ef();}function a56_0x1164(_0x472ad4,_0x343302){_0x472ad4=_0x472ad4-0x10d;const _0x15ef81=a56_0x15ef();let _0x1164af=_0x15ef81[_0x472ad4];return _0x1164af;}const a56_0x24f885=a56_0x1164;(function(_0x172aa5,_0xcdeeee){const _0xa34819=a56_0x1164,_0x2f6b70=_0x172aa5();while(!![]){try{const _0xf8dc5b=parseInt(_0xa34819(0x113))/0x1+parseInt(_0xa34819(0x119))/0x2*(parseInt(_0xa34819(0x11a))/0x3)+parseInt(_0xa34819(0x118))/0x4+-parseInt(_0xa34819(0x123))/0x5+-parseInt(_0xa34819(0x115))/0x6+-parseInt(_0xa34819(0x124))/0x7+-parseInt(_0xa34819(0x10d))/0x8*(-parseInt(_0xa34819(0x122))/0x9);if(_0xf8dc5b===_0xcdeeee)break;else _0x2f6b70['push'](_0x2f6b70['shift']());}catch(_0x1d7c77){_0x2f6b70['push'](_0x2f6b70['shift']());}}}(a56_0x15ef,0x6a286));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_0x24f885(0x11b),'command':a56_0x24f885(0x11f),'description':a56_0x24f885(0x116),'risk':a56_0x24f885(0x112),'confirmationDescription':a56_0x24f885(0x11d),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x202e25){const _0x4734b0=a56_0x24f885,_0x1dafc5=await prepareRuntimeMemberMutation(_0x202e25,'user-add');return dryRun(_0x4734b0(0x10e),'/client/permit/user-role/update-user-list')[_0x4734b0(0x10f)]({'appCode':_0x202e25[_0x4734b0(0x121)],'roleList':_0x1dafc5['roleList']})[_0x4734b0(0x114)](_0x1dafc5[_0x4734b0(0x125)]?_0x4734b0(0x110):_0x1dafc5[_0x4734b0(0x111)][0x0])[_0x4734b0(0x11e)]();},async 'execute'(_0x2cf636){const _0x5b9403=a56_0x24f885,_0x3c063d=await prepareRuntimeMemberMutation(_0x2cf636,_0x5b9403(0x11f));return _0x3c063d[_0x5b9403(0x125)]&&await updateRuntimeRoleUsers(_0x2cf636['appCode'],_0x3c063d[_0x5b9403(0x11c)]),{'ok':!![],'data':runtimeRoleWriteResult('user-add',{'roleId':_0x3c063d['role']['id'],'userId':_0x3c063d[_0x5b9403(0x120)]},_0x3c063d[_0x5b9403(0x117)],_0x3c063d['after'],{'method':'POST','path':'/client/permit/user-role/update-user-list'},_0x3c063d['warnings'])};}};
@@ -1 +1 @@
1
- function a57_0x3bb2(){const _0x1b003e=['role','758050OLsGGc','description','warnings','15WAPJZM','4483936QDrICX','appCode','userId','4298751zXyJeX','1287004MozvTv','27WNsuGV','852532MbyjyN','1lCGWlo','build','POST','user-remove','body','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','34203873WkiFkU','Preview:\x20remove\x20runtime\x20role\x20member','/client/permit/user-role/update-user-list','before','14ATCAjf','high-risk-write','2179182jlBvVn','roleList'];a57_0x3bb2=function(){return _0x1b003e;};return a57_0x3bb2();}const a57_0x3810d1=a57_0x4013;(function(_0x561305,_0x4dbecc){const _0x478cdd=a57_0x4013,_0x3a45c1=_0x561305();while(!![]){try{const _0x5191d4=parseInt(_0x478cdd(0x1f5))/0x1*(parseInt(_0x478cdd(0x1f4))/0x2)+parseInt(_0x478cdd(0x1f1))/0x3+parseInt(_0x478cdd(0x1f2))/0x4*(parseInt(_0x478cdd(0x207))/0x5)+parseInt(_0x478cdd(0x201))/0x6*(parseInt(_0x478cdd(0x1ff))/0x7)+parseInt(_0x478cdd(0x208))/0x8+-parseInt(_0x478cdd(0x1f3))/0x9*(parseInt(_0x478cdd(0x204))/0xa)+-parseInt(_0x478cdd(0x1fb))/0xb;if(_0x5191d4===_0x4dbecc)break;else _0x3a45c1['push'](_0x3a45c1['shift']());}catch(_0x562338){_0x3a45c1['push'](_0x3a45c1['shift']());}}}(a57_0x3bb2,0xbd140));import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a57_0x4013(_0x201663,_0x46d57d){_0x201663=_0x201663-0x1ef;const _0x3bb2cc=a57_0x3bb2();let _0x4013be=_0x3bb2cc[_0x201663];return _0x4013be;}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':a57_0x3810d1(0x203),'command':a57_0x3810d1(0x1f8),'description':'Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','risk':a57_0x3810d1(0x200),'confirmationDescription':a57_0x3810d1(0x1fa),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x339f47){const _0x284c24=a57_0x3810d1,_0x56d59e=await prepareRuntimeMemberMutation(_0x339f47,_0x284c24(0x1f8));return dryRun(_0x284c24(0x1f7),'/client/permit/user-role/update-user-list')[_0x284c24(0x1f9)]({'appCode':_0x339f47[_0x284c24(0x1ef)],'roleList':_0x56d59e['roleList']})[_0x284c24(0x205)](_0x56d59e['shouldWrite']?_0x284c24(0x1fc):_0x56d59e['warnings'][0x0])[_0x284c24(0x1f6)]();},async 'execute'(_0x19d4f8){const _0x188e10=a57_0x3810d1,_0x53f41b=await prepareRuntimeMemberMutation(_0x19d4f8,_0x188e10(0x1f8));return _0x53f41b['shouldWrite']&&await updateRuntimeRoleUsers(_0x19d4f8[_0x188e10(0x1ef)],_0x53f41b[_0x188e10(0x202)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x188e10(0x1f8),{'roleId':_0x53f41b[_0x188e10(0x203)]['id'],'userId':_0x53f41b[_0x188e10(0x1f0)]},_0x53f41b[_0x188e10(0x1fe)],_0x53f41b['after'],{'method':_0x188e10(0x1f7),'path':_0x188e10(0x1fd)},_0x53f41b[_0x188e10(0x206)])};}};
1
+ function a57_0x2809(){const _0x403699=['description','2347765EZuXbo','1044690NnWUBw','roleList','userId','2699874DArfUk','12dCCEor','Preview:\x20remove\x20runtime\x20role\x20member','appCode','warnings','892503gLGPJj','body','14zVJyuG','/client/permit/user-role/update-user-list','1531593DGqFbR','role','20gMsGqA','4AwfvpO','32260316KBZgLt','POST','3967936kvURvV','user-remove','shouldWrite'];a57_0x2809=function(){return _0x403699;};return a57_0x2809();}const a57_0x2caa3d=a57_0x4595;function a57_0x4595(_0x390a3d,_0x486941){_0x390a3d=_0x390a3d-0x108;const _0x2809fd=a57_0x2809();let _0x4595de=_0x2809fd[_0x390a3d];return _0x4595de;}(function(_0x563b4b,_0x31518b){const _0x2526b9=a57_0x4595,_0x2b4a37=_0x563b4b();while(!![]){try{const _0x505cc3=parseInt(_0x2526b9(0x111))/0x1+parseInt(_0x2526b9(0x109))/0x2*(parseInt(_0x2526b9(0x119))/0x3)+-parseInt(_0x2526b9(0x115))/0x4*(-parseInt(_0x2526b9(0x110))/0x5)+parseInt(_0x2526b9(0x114))/0x6*(parseInt(_0x2526b9(0x11b))/0x7)+-parseInt(_0x2526b9(0x10c))/0x8+parseInt(_0x2526b9(0x11d))/0x9*(parseInt(_0x2526b9(0x108))/0xa)+-parseInt(_0x2526b9(0x10a))/0xb;if(_0x505cc3===_0x31518b)break;else _0x2b4a37['push'](_0x2b4a37['shift']());}catch(_0x5121f4){_0x2b4a37['push'](_0x2b4a37['shift']());}}}(a57_0x2809,0xd1f0b));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':'role','command':a57_0x2caa3d(0x10d),'description':'Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','risk':'high-risk-write','confirmationDescription':'Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x7eeb2a){const _0x105deb=a57_0x2caa3d,_0x1c04ec=await prepareRuntimeMemberMutation(_0x7eeb2a,_0x105deb(0x10d));return dryRun('POST',_0x105deb(0x11c))[_0x105deb(0x11a)]({'appCode':_0x7eeb2a[_0x105deb(0x117)],'roleList':_0x1c04ec['roleList']})[_0x105deb(0x10f)](_0x1c04ec[_0x105deb(0x10e)]?_0x105deb(0x116):_0x1c04ec[_0x105deb(0x118)][0x0])['build']();},async 'execute'(_0x4ddb05){const _0x5db855=a57_0x2caa3d,_0x39b1d1=await prepareRuntimeMemberMutation(_0x4ddb05,_0x5db855(0x10d));return _0x39b1d1[_0x5db855(0x10e)]&&await updateRuntimeRoleUsers(_0x4ddb05[_0x5db855(0x117)],_0x39b1d1[_0x5db855(0x112)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x5db855(0x10d),{'roleId':_0x39b1d1[_0x5db855(0x11e)]['id'],'userId':_0x39b1d1[_0x5db855(0x113)]},_0x39b1d1['before'],_0x39b1d1['after'],{'method':_0x5db855(0x10b),'path':_0x5db855(0x11c)},_0x39b1d1[_0x5db855(0x118)])};}};
@@ -1 +1 @@
1
- const a58_0x464476=a58_0x49a5;(function(_0x34fcd1,_0x25df9c){const _0x55788e=a58_0x49a5,_0x45ff4a=_0x34fcd1();while(!![]){try{const _0x4872ab=parseInt(_0x55788e(0x121))/0x1+-parseInt(_0x55788e(0x10a))/0x2+-parseInt(_0x55788e(0xfb))/0x3*(-parseInt(_0x55788e(0x124))/0x4)+parseInt(_0x55788e(0x114))/0x5*(-parseInt(_0x55788e(0x100))/0x6)+parseInt(_0x55788e(0x110))/0x7*(-parseInt(_0x55788e(0xea))/0x8)+parseInt(_0x55788e(0xe7))/0x9*(parseInt(_0x55788e(0x111))/0xa)+-parseInt(_0x55788e(0x115))/0xb*(-parseInt(_0x55788e(0xf9))/0xc);if(_0x4872ab===_0x25df9c)break;else _0x45ff4a['push'](_0x45ff4a['shift']());}catch(_0x423a35){_0x45ff4a['push'](_0x45ff4a['shift']());}}}(a58_0x79de,0xf33ce));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a58_0x464476(0xfd),'type':a58_0x464476(0x107),'required':!![],'enum':[a58_0x464476(0x103),a58_0x464476(0x112)],'description':a58_0x464476(0x120)},CRON_FLAG={'name':a58_0x464476(0x106),'type':a58_0x464476(0x107),'description':a58_0x464476(0xe2)},SCHEDULED_AT_FLAG={'name':a58_0x464476(0xef),'type':a58_0x464476(0x107),'description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a58_0x464476(0xed),'type':'string','required':!![],'description':a58_0x464476(0xf2)},PROMPT_FLAG={'name':a58_0x464476(0xe0),'type':a58_0x464476(0x107),'required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':'model','type':a58_0x464476(0x107),'enum':[a58_0x464476(0x113),a58_0x464476(0xdc),a58_0x464476(0x117)],'default':a58_0x464476(0xdc),'description':'Task\x20model\x20used\x20when\x20the\x20schedule\x20runs'},SCHEDULE_ID_FLAG={'name':'schedule-id','type':a58_0x464476(0x107),'required':!![],'description':a58_0x464476(0xf0),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0x464476(0xe5)}},LIMIT_FLAG={'name':a58_0x464476(0x11a),'type':a58_0x464476(0xeb),'default':0x14,'description':a58_0x464476(0x11e)},CURSOR_FLAG={'name':a58_0x464476(0xfe),'type':a58_0x464476(0x107),'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(_0x3bad2b){const _0x182734=a58_0x464476,_0x3e8c6c=_0x3bad2b[_0x182734(0xe8)](_0x182734(0xfd)),_0x52782f=_0x3bad2b['str'](_0x182734(0xed))[_0x182734(0xf8)](),_0x2545a4=_0x3bad2b[_0x182734(0xe8)](_0x182734(0xe0))[_0x182734(0xf8)](),_0xc6f341=_0x3bad2b[_0x182734(0xe8)](_0x182734(0x105)),_0x3961e9=_0x3bad2b[_0x182734(0xe8)]('cron'),_0x27f322=_0x3bad2b[_0x182734(0xe8)]('scheduled-at');if(!_0x52782f)throw CliErrors['validation'](_0x182734(0xe3));if(!_0x2545a4)throw CliErrors[_0x182734(0xfa)](_0x182734(0xe6));if(_0x3e8c6c==='CRON'){if(!_0x3961e9||_0x27f322)throw CliErrors[_0x182734(0xfa)](_0x182734(0xf4));return{'kind':_0x3e8c6c,'timezone':_0x182734(0xf6),'cron':_0x3961e9,'title':_0x52782f,'prompt':_0x2545a4,'model':_0xc6f341};}if(_0x3e8c6c===_0x182734(0x112)){if(!_0x27f322||_0x3961e9)throw CliErrors[_0x182734(0xfa)](_0x182734(0x11f));return{'kind':_0x3e8c6c,'timezone':_0x182734(0xf6),'scheduledAt':_0x27f322,'title':_0x52782f,'prompt':_0x2545a4,'model':_0xc6f341};}throw CliErrors[_0x182734(0xfa)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function a58_0x79de(){const _0x216252=['CRON','Preview:\x20delete\x20schedule\x20','model','cron','string','length','/run','3389308rrabYr','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','DELETE','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','scheduleId','\x20schedule\x20','7XpHaPJ','53440lFfuVB','ONCE','kimi/k3','40wUSDSy','20537UCXWxb','taskId','deepseek-v4-pro-0813','body','Queued\x20Task\x20','limit','description','POST','Show\x20one\x20schedule\x20by\x20schedule\x20ID','Page\x20size\x20from\x201\x20to\x20100','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','Schedule\x20kind:\x20CRON\x20or\x20ONCE','427224LHlmIv','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','appCode','13544BWpsum','deepseek-v4-flash-0731','read','create','Schedule\x20input\x20is\x20valid','prompt','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','--title\x20must\x20not\x20be\x20blank.','high-risk-write','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','--prompt\x20must\x20not\x20be\x20blank.','1476sJXpAH','str','detail','15470984WCjgdq','number','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','title','build','scheduled-at','Schedule\x20UUID','\x20from\x20schedule\x20','Schedule\x20title','schedule','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','Created\x20','UTC','delete','trim','15804VfuhZz','validation','1557xvUQkK','schedule-id','kind','cursor','Preview:\x20run\x20schedule\x20','671238aUoPVd','Deleted\x20schedule\x20','\x20immediately'];a58_0x79de=function(){return _0x216252;};return a58_0x79de();}function scheduleCollectionPath(_0x3e17f7){return'/api/harness/apps/'+encodeURIComponent(_0x3e17f7)+'/schedules';}function scheduleItemPath(_0x3f80c1,_0x1e2b16){return scheduleCollectionPath(_0x3f80c1)+'/'+encodeURIComponent(_0x1e2b16);}function a58_0x49a5(_0x2b3d4e,_0x277d8a){_0x2b3d4e=_0x2b3d4e-0xdc;const _0x79de18=a58_0x79de();let _0x49a53=_0x79de18[_0x2b3d4e];return _0x49a53;}const scheduleValidate={'service':'schedule','command':'validate','description':a58_0x464476(0x10d),'risk':a58_0x464476(0xdd),'flags':INPUT_FLAGS,async 'validate'(_0x41c930){readScheduleInput(_0x41c930);},async 'execute'(_0x2647e2){const _0x198c1d=a58_0x464476,_0x440ea8=readScheduleInput(_0x2647e2),_0x515420=await validateRuntimeSchedule(_0x2647e2[_0x198c1d(0x123)],_0x440ea8);return{'ok':!![],'data':_0x515420,'message':_0x198c1d(0xdf)};}},scheduleCreate={'service':a58_0x464476(0xf3),'command':a58_0x464476(0xde),'description':'Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','risk':'high-risk-write','confirmationDescription':'Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','flags':INPUT_FLAGS,async 'validate'(_0x567df7){readScheduleInput(_0x567df7);},async 'execute'(_0xd9328b){const _0x3c4fd9=a58_0x464476,_0x20fd6c=readScheduleInput(_0xd9328b),_0xa0d56=await validateRuntimeSchedule(_0xd9328b[_0x3c4fd9(0x123)],_0x20fd6c),_0x2ab319=await createRuntimeSchedule(_0xd9328b[_0x3c4fd9(0x123)],_0xa0d56);return{'ok':!![],'data':_0x2ab319,'message':_0x3c4fd9(0xf5)+_0x2ab319[_0x3c4fd9(0xfd)]+_0x3c4fd9(0x10f)+_0x2ab319[_0x3c4fd9(0x10e)]};},async 'dryRun'(_0x5e22d5){const _0x68d751=a58_0x464476,_0x3b7d4b=readScheduleInput(_0x5e22d5);return dryRun(_0x68d751(0x11c),scheduleCollectionPath(_0x5e22d5[_0x68d751(0x123)]))[_0x68d751(0x118)](_0x3b7d4b)['description']('Preview:\x20create\x20an\x20Agent\x20schedule')[_0x68d751(0xee)]();}},scheduleList={'service':a58_0x464476(0xf3),'command':'list','description':a58_0x464476(0x10b),'risk':a58_0x464476(0xdd),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x274f00){const _0x4125fb=a58_0x464476,_0x18b990=_0x274f00['num']('limit');if(!Number['isSafeInteger'](_0x18b990)||_0x18b990<0x1||_0x18b990>0x64)throw CliErrors[_0x4125fb(0xfa)](_0x4125fb(0xe1));const _0x449d21=_0x274f00['str']('cursor');if(_0x449d21&&(_0x449d21[_0x4125fb(0x108)]>0x400||_0x449d21[_0x4125fb(0xf8)]()!==_0x449d21))throw CliErrors[_0x4125fb(0xfa)](_0x4125fb(0x122));},async 'execute'(_0x59c0c1){const _0xdd209c=a58_0x464476,_0x1d73cb=_0x59c0c1[_0xdd209c(0xe8)]('cursor'),_0x3153f2=await listRuntimeSchedules(_0x59c0c1[_0xdd209c(0x123)],{'kind':_0x59c0c1[_0xdd209c(0xe8)]('kind'),'limit':_0x59c0c1['num'](_0xdd209c(0x11a)),..._0x1d73cb?{'cursor':_0x1d73cb}:{}});return{'ok':!![],'data':_0x3153f2};}},scheduleDetail={'service':'schedule','command':a58_0x464476(0xe9),'description':a58_0x464476(0x11d),'risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1e84c7){const _0x522978=a58_0x464476,_0xcbb78d=await getRuntimeSchedule(_0x1e84c7['appCode'],_0x1e84c7[_0x522978(0xe8)](_0x522978(0xfc)));return{'ok':!![],'data':_0xcbb78d};}},scheduleRun={'service':a58_0x464476(0xf3),'command':'run','description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':'high-risk-write','confirmationDescription':'Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xee86a7){const _0x281121=a58_0x464476,_0x16772b=_0xee86a7[_0x281121(0xe8)](_0x281121(0xfc)),_0x1179c8=await runRuntimeSchedule(_0xee86a7[_0x281121(0x123)],_0x16772b);return{'ok':!![],'data':_0x1179c8,'message':_0x281121(0x119)+_0x1179c8[_0x281121(0x116)]+_0x281121(0xf1)+_0x16772b};},async 'dryRun'(_0x2fc9b6){const _0x2d7fd0=a58_0x464476,_0x3d6213=_0x2fc9b6[_0x2d7fd0(0xe8)]('schedule-id');return dryRun(_0x2d7fd0(0x11c),scheduleItemPath(_0x2fc9b6['appCode'],_0x3d6213)+_0x2d7fd0(0x109))[_0x2d7fd0(0x11b)](_0x2d7fd0(0xff)+_0x3d6213+_0x2d7fd0(0x102))[_0x2d7fd0(0xee)]();}},scheduleDelete={'service':a58_0x464476(0xf3),'command':a58_0x464476(0xf7),'description':a58_0x464476(0xec),'risk':a58_0x464476(0xe4),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x2ad95c){const _0x37792e=a58_0x464476,_0x1c4472=_0x2ad95c[_0x37792e(0xe8)](_0x37792e(0xfc)),_0x42f9ee=await deleteRuntimeSchedule(_0x2ad95c[_0x37792e(0x123)],_0x1c4472);return{'ok':!![],'data':_0x42f9ee,'message':_0x37792e(0x101)+_0x1c4472};},async 'dryRun'(_0x485036){const _0x58aaec=a58_0x464476,_0x153459=_0x485036[_0x58aaec(0xe8)]('schedule-id');return dryRun(_0x58aaec(0x10c),scheduleItemPath(_0x485036[_0x58aaec(0x123)],_0x153459))['description'](_0x58aaec(0x104)+_0x153459)['build']();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
1
+ const a58_0xf58dc8=a58_0x5a57;(function(_0x157d82,_0xe2f02a){const _0x3b4bf3=a58_0x5a57,_0x5c7f85=_0x157d82();while(!![]){try{const _0x36b5db=parseInt(_0x3b4bf3(0x1b7))/0x1*(parseInt(_0x3b4bf3(0x1da))/0x2)+parseInt(_0x3b4bf3(0x1d3))/0x3+-parseInt(_0x3b4bf3(0x1f2))/0x4+-parseInt(_0x3b4bf3(0x1e4))/0x5*(-parseInt(_0x3b4bf3(0x1b3))/0x6)+parseInt(_0x3b4bf3(0x1c7))/0x7*(-parseInt(_0x3b4bf3(0x1c5))/0x8)+-parseInt(_0x3b4bf3(0x1c1))/0x9*(parseInt(_0x3b4bf3(0x1b9))/0xa)+-parseInt(_0x3b4bf3(0x1e3))/0xb*(-parseInt(_0x3b4bf3(0x1ea))/0xc);if(_0x36b5db===_0xe2f02a)break;else _0x5c7f85['push'](_0x5c7f85['shift']());}catch(_0x167eb3){_0x5c7f85['push'](_0x5c7f85['shift']());}}}(a58_0xd195,0x1aca1));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a58_0xd195(){const _0x3cec3c=['high-risk-write','kind','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','list','Deleted\x20schedule\x20','body','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','trim','998826HDCGxe','build','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','2AaCEAs','\x20from\x20schedule\x20','6860MozUWK','create','appCode','cron','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','UTC','Preview:\x20create\x20an\x20Agent\x20schedule','2826bJBcxJ','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Schedule\x20title','str','148216LXfrtS','Queued\x20Task\x20','49cfmPPj','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','limit','validation','Preview:\x20run\x20schedule\x20','schedule-id','taskId','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','Preview:\x20delete\x20schedule\x20','deepseek-v4-pro-0813','num','schedule','37095wFUdAG','length','Schedule\x20kind:\x20CRON\x20or\x20ONCE','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','ONCE','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','157426OapYbX','--title\x20must\x20not\x20be\x20blank.','description','DELETE','kimi/k3','read','/run','scheduleId','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','22DKTrDW','5VMNQmc','delete','prompt','Created\x20','cursor','validate','1200612QEHhrd','/api/harness/apps/','title','detail','scheduled-at','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','CRON','deepseek-v4-flash-0731','326168JIVyWL','--prompt\x20must\x20not\x20be\x20blank.','run','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','string','Schedule\x20input\x20is\x20valid'];a58_0xd195=function(){return _0x3cec3c;};return a58_0xd195();}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_0xf58dc8(0x1fa),'type':a58_0xf58dc8(0x1f7),'required':!![],'enum':[a58_0xf58dc8(0x1f0),'ONCE'],'description':a58_0xf58dc8(0x1d5)},CRON_FLAG={'name':'cron','type':a58_0xf58dc8(0x1f7),'description':a58_0xf58dc8(0x1f6)},SCHEDULED_AT_FLAG={'name':a58_0xf58dc8(0x1ee),'type':a58_0xf58dc8(0x1f7),'description':a58_0xf58dc8(0x1b5)},TITLE_FLAG={'name':a58_0xf58dc8(0x1ec),'type':'string','required':!![],'description':a58_0xf58dc8(0x1c3)},PROMPT_FLAG={'name':a58_0xf58dc8(0x1e6),'type':a58_0xf58dc8(0x1f7),'required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':'model','type':a58_0xf58dc8(0x1f7),'enum':[a58_0xf58dc8(0x1de),a58_0xf58dc8(0x1f1),a58_0xf58dc8(0x1d0)],'default':a58_0xf58dc8(0x1f1),'description':a58_0xf58dc8(0x1b6)},SCHEDULE_ID_FLAG={'name':a58_0xf58dc8(0x1cc),'type':'string','required':!![],'description':'Schedule\x20UUID','pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0xf58dc8(0x1c2)}},LIMIT_FLAG={'name':a58_0xf58dc8(0x1c9),'type':'number','default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':a58_0xf58dc8(0x1e8),'type':'string','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(_0x12164f){const _0x420f66=a58_0xf58dc8,_0x4083ef=_0x12164f[_0x420f66(0x1c4)](_0x420f66(0x1fa)),_0x9403e=_0x12164f['str'](_0x420f66(0x1ec))[_0x420f66(0x1b2)](),_0x6f028f=_0x12164f[_0x420f66(0x1c4)](_0x420f66(0x1e6))[_0x420f66(0x1b2)](),_0x3fe5ee=_0x12164f[_0x420f66(0x1c4)]('model'),_0x2681a7=_0x12164f[_0x420f66(0x1c4)](_0x420f66(0x1bc)),_0x5f388a=_0x12164f['str'](_0x420f66(0x1ee));if(!_0x9403e)throw CliErrors[_0x420f66(0x1ca)](_0x420f66(0x1db));if(!_0x6f028f)throw CliErrors['validation'](_0x420f66(0x1f3));if(_0x4083ef===_0x420f66(0x1f0)){if(!_0x2681a7||_0x5f388a)throw CliErrors['validation'](_0x420f66(0x1d6));return{'kind':_0x4083ef,'timezone':_0x420f66(0x1bf),'cron':_0x2681a7,'title':_0x9403e,'prompt':_0x6f028f,'model':_0x3fe5ee};}if(_0x4083ef===_0x420f66(0x1d8)){if(!_0x5f388a||_0x2681a7)throw CliErrors[_0x420f66(0x1ca)](_0x420f66(0x1f5));return{'kind':_0x4083ef,'timezone':_0x420f66(0x1bf),'scheduledAt':_0x5f388a,'title':_0x9403e,'prompt':_0x6f028f,'model':_0x3fe5ee};}throw CliErrors[_0x420f66(0x1ca)](_0x420f66(0x1b1));}function scheduleCollectionPath(_0x515dd1){const _0xb4db3f=a58_0xf58dc8;return _0xb4db3f(0x1eb)+encodeURIComponent(_0x515dd1)+'/schedules';}function scheduleItemPath(_0x2a10e6,_0x4c42a2){return scheduleCollectionPath(_0x2a10e6)+'/'+encodeURIComponent(_0x4c42a2);}const scheduleValidate={'service':'schedule','command':a58_0xf58dc8(0x1e9),'description':a58_0xf58dc8(0x1d9),'risk':a58_0xf58dc8(0x1df),'flags':INPUT_FLAGS,async 'validate'(_0x1dc133){readScheduleInput(_0x1dc133);},async 'execute'(_0x36a582){const _0x505393=a58_0xf58dc8,_0x360a2c=readScheduleInput(_0x36a582),_0x2bfea8=await validateRuntimeSchedule(_0x36a582[_0x505393(0x1bb)],_0x360a2c);return{'ok':!![],'data':_0x2bfea8,'message':_0x505393(0x1f8)};}},scheduleCreate={'service':'schedule','command':a58_0xf58dc8(0x1ba),'description':a58_0xf58dc8(0x1ef),'risk':'high-risk-write','confirmationDescription':a58_0xf58dc8(0x1fb),'flags':INPUT_FLAGS,async 'validate'(_0x3eabc1){readScheduleInput(_0x3eabc1);},async 'execute'(_0x258bcc){const _0xf0c438=a58_0xf58dc8,_0xe1b12a=readScheduleInput(_0x258bcc),_0x5198c7=await validateRuntimeSchedule(_0x258bcc[_0xf0c438(0x1bb)],_0xe1b12a),_0x545d27=await createRuntimeSchedule(_0x258bcc[_0xf0c438(0x1bb)],_0x5198c7);return{'ok':!![],'data':_0x545d27,'message':_0xf0c438(0x1e7)+_0x545d27[_0xf0c438(0x1fa)]+'\x20schedule\x20'+_0x545d27[_0xf0c438(0x1e1)]};},async 'dryRun'(_0x2d2ece){const _0xecea40=a58_0xf58dc8,_0x296ed6=readScheduleInput(_0x2d2ece);return dryRun('POST',scheduleCollectionPath(_0x2d2ece[_0xecea40(0x1bb)]))[_0xecea40(0x1b0)](_0x296ed6)[_0xecea40(0x1dc)](_0xecea40(0x1c0))[_0xecea40(0x1b4)]();}},scheduleList={'service':a58_0xf58dc8(0x1d2),'command':a58_0xf58dc8(0x1ae),'description':a58_0xf58dc8(0x1ce),'risk':a58_0xf58dc8(0x1df),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x3463eb){const _0x38fd68=a58_0xf58dc8,_0x6988f=_0x3463eb[_0x38fd68(0x1d1)](_0x38fd68(0x1c9));if(!Number['isSafeInteger'](_0x6988f)||_0x6988f<0x1||_0x6988f>0x64)throw CliErrors['validation'](_0x38fd68(0x1e2));const _0x8f64cd=_0x3463eb[_0x38fd68(0x1c4)](_0x38fd68(0x1e8));if(_0x8f64cd&&(_0x8f64cd[_0x38fd68(0x1d4)]>0x400||_0x8f64cd[_0x38fd68(0x1b2)]()!==_0x8f64cd))throw CliErrors[_0x38fd68(0x1ca)](_0x38fd68(0x1c8));},async 'execute'(_0x4f4501){const _0x5ae9ef=a58_0xf58dc8,_0x3d6abf=_0x4f4501['str']('cursor'),_0x280ad6=await listRuntimeSchedules(_0x4f4501[_0x5ae9ef(0x1bb)],{'kind':_0x4f4501[_0x5ae9ef(0x1c4)](_0x5ae9ef(0x1fa)),'limit':_0x4f4501['num'](_0x5ae9ef(0x1c9)),..._0x3d6abf?{'cursor':_0x3d6abf}:{}});return{'ok':!![],'data':_0x280ad6};}},scheduleDetail={'service':a58_0xf58dc8(0x1d2),'command':a58_0xf58dc8(0x1ed),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a58_0xf58dc8(0x1df),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x83fe29){const _0x526dc1=a58_0xf58dc8,_0x53d701=await getRuntimeSchedule(_0x83fe29['appCode'],_0x83fe29[_0x526dc1(0x1c4)](_0x526dc1(0x1cc)));return{'ok':!![],'data':_0x53d701};}},scheduleRun={'service':a58_0xf58dc8(0x1d2),'command':a58_0xf58dc8(0x1f4),'description':a58_0xf58dc8(0x1bd),'risk':a58_0xf58dc8(0x1f9),'confirmationDescription':'Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x3ee2a4){const _0x27c461=a58_0xf58dc8,_0x1ef2a3=_0x3ee2a4[_0x27c461(0x1c4)](_0x27c461(0x1cc)),_0x1c0c17=await runRuntimeSchedule(_0x3ee2a4[_0x27c461(0x1bb)],_0x1ef2a3);return{'ok':!![],'data':_0x1c0c17,'message':_0x27c461(0x1c6)+_0x1c0c17[_0x27c461(0x1cd)]+_0x27c461(0x1b8)+_0x1ef2a3};},async 'dryRun'(_0xb89ba2){const _0x332a70=a58_0xf58dc8,_0x4262a2=_0xb89ba2[_0x332a70(0x1c4)](_0x332a70(0x1cc));return dryRun('POST',scheduleItemPath(_0xb89ba2[_0x332a70(0x1bb)],_0x4262a2)+_0x332a70(0x1e0))[_0x332a70(0x1dc)](_0x332a70(0x1cb)+_0x4262a2+'\x20immediately')[_0x332a70(0x1b4)]();}},scheduleDelete={'service':a58_0xf58dc8(0x1d2),'command':a58_0xf58dc8(0x1e5),'description':a58_0xf58dc8(0x1d7),'risk':a58_0xf58dc8(0x1f9),'confirmationDescription':a58_0xf58dc8(0x1be),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x278372){const _0x522641=a58_0xf58dc8,_0x316e95=_0x278372[_0x522641(0x1c4)](_0x522641(0x1cc)),_0x532dbd=await deleteRuntimeSchedule(_0x278372['appCode'],_0x316e95);return{'ok':!![],'data':_0x532dbd,'message':_0x522641(0x1af)+_0x316e95};},async 'dryRun'(_0x55fad2){const _0x4fb841=a58_0xf58dc8,_0x1c36c5=_0x55fad2[_0x4fb841(0x1c4)](_0x4fb841(0x1cc));return dryRun(_0x4fb841(0x1dd),scheduleItemPath(_0x55fad2[_0x4fb841(0x1bb)],_0x1c36c5))[_0x4fb841(0x1dc)](_0x4fb841(0x1cf)+_0x1c36c5)[_0x4fb841(0x1b4)]();}};function a58_0x5a57(_0xfd8485,_0x40a45b){_0xfd8485=_0xfd8485-0x1ae;const _0xd195b1=a58_0xd195();let _0x5a5799=_0xd195b1[_0xfd8485];return _0x5a5799;}export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
@@ -1 +1 @@
1
- const a59_0x40bc20=a59_0x24cb;(function(_0x242bcc,_0x49b39c){const _0x2c16d5=a59_0x24cb,_0xdcc754=_0x242bcc();while(!![]){try{const _0x2638c2=-parseInt(_0x2c16d5(0x191))/0x1+-parseInt(_0x2c16d5(0x197))/0x2+-parseInt(_0x2c16d5(0x194))/0x3+-parseInt(_0x2c16d5(0x196))/0x4+-parseInt(_0x2c16d5(0x193))/0x5+-parseInt(_0x2c16d5(0x195))/0x6+parseInt(_0x2c16d5(0x190))/0x7;if(_0x2638c2===_0x49b39c)break;else _0xdcc754['push'](_0xdcc754['shift']());}catch(_0x33e5ce){_0xdcc754['push'](_0xdcc754['shift']());}}}(a59_0x1344,0xa6286));function a59_0x24cb(_0x505362,_0x3555a6){_0x505362=_0x505362-0x190;const _0x13447c=a59_0x1344();let _0x24cb86=_0x13447c[_0x505362];return _0x24cb86;}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0xc27964){const _0x422441=await buildSchemaPayload();return{'ok':!![],'data':_0x422441};}function a59_0x1344(){const _0x1d5974=['849617UXIikB','schema','4103420KEJUns','2655078LNUcEv','4628286tgaWjX','2506052iBHPmS','2335888qeIILf','40612229sjLnOb'];a59_0x1344=function(){return _0x1d5974;};return a59_0x1344();}export const schemaDefinition={'service':a59_0x40bc20(0x192),'command':'export','description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
1
+ const a59_0x348bbb=a59_0x3702;(function(_0x3d8ec1,_0x32ff73){const _0x3bb852=a59_0x3702,_0xd8c961=_0x3d8ec1();while(!![]){try{const _0x5553e0=-parseInt(_0x3bb852(0x185))/0x1+parseInt(_0x3bb852(0x17e))/0x2+parseInt(_0x3bb852(0x181))/0x3*(-parseInt(_0x3bb852(0x17a))/0x4)+-parseInt(_0x3bb852(0x17d))/0x5*(-parseInt(_0x3bb852(0x179))/0x6)+-parseInt(_0x3bb852(0x182))/0x7*(-parseInt(_0x3bb852(0x17f))/0x8)+-parseInt(_0x3bb852(0x186))/0x9+-parseInt(_0x3bb852(0x180))/0xa*(-parseInt(_0x3bb852(0x183))/0xb);if(_0x5553e0===_0x32ff73)break;else _0xd8c961['push'](_0xd8c961['shift']());}catch(_0x4e9c66){_0xd8c961['push'](_0xd8c961['shift']());}}}(a59_0x139c,0xdb120));function a59_0x3702(_0x24204c,_0xb27a2d){_0x24204c=_0x24204c-0x179;const _0x139c58=a59_0x139c();let _0x3702bd=_0x139c58[_0x24204c];return _0x3702bd;}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x457d3d){const _0x15acc1=await buildSchemaPayload();return{'ok':!![],'data':_0x15acc1};}function a59_0x139c(){const _0x1f54c7=['12095100SfQiHq','4602LhJqgX','1724RZKzRE','export','read','4955sDQXXE','3444746wAxpvl','8NDZEgG','10mKrrQZ','10365GEHroA','567427pRNgeY','18911167jgWqXz','schema','552411rHmGdI'];a59_0x139c=function(){return _0x1f54c7;};return a59_0x139c();}export const schemaDefinition={'service':a59_0x348bbb(0x184),'command':a59_0x348bbb(0x17b),'description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':a59_0x348bbb(0x17c),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
1
- (function(_0x2e6ff5,_0x274423){const _0x4c2854=a60_0x24a8,_0x352f98=_0x2e6ff5();while(!![]){try{const _0x43ecbc=-parseInt(_0x4c2854(0x21d))/0x1+-parseInt(_0x4c2854(0x1de))/0x2*(parseInt(_0x4c2854(0x1e4))/0x3)+parseInt(_0x4c2854(0x205))/0x4*(parseInt(_0x4c2854(0x1ba))/0x5)+-parseInt(_0x4c2854(0x1f1))/0x6+-parseInt(_0x4c2854(0x1ee))/0x7*(parseInt(_0x4c2854(0x209))/0x8)+-parseInt(_0x4c2854(0x1ea))/0x9*(parseInt(_0x4c2854(0x1bd))/0xa)+parseInt(_0x4c2854(0x1c1))/0xb;if(_0x43ecbc===_0x274423)break;else _0x352f98['push'](_0x352f98['shift']());}catch(_0x200f36){_0x352f98['push'](_0x352f98['shift']());}}}(a60_0x4de0,0x37c97));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(_0x5e6bb7,_0x8ee7da){const _0x51ef0a=a60_0x24a8,_0x3bec3e=listLocalServiceTrees();let _0x2b7bc1;for(const _0x14c6c9 of _0x3bec3e){const _0x5274d6=matchServiceTreeCommand(_0x14c6c9,_0x5e6bb7);if(!_0x5274d6)continue;(!_0x2b7bc1||_0x5274d6[_0x51ef0a(0x1d9)][_0x51ef0a(0x1c2)]['length']>_0x2b7bc1[_0x51ef0a(0x1d9)]['fullPath']['length'])&&(_0x2b7bc1={'tree':_0x14c6c9,'command':_0x5274d6[_0x51ef0a(0x1d9)],'remainingArgs':_0x5274d6[_0x51ef0a(0x1e7)]});}if(!_0x2b7bc1)return undefined;const _0x11afcc={..._0x8ee7da};return applyAppBinding(_0x2b7bc1['tree'],_0x2b7bc1[_0x51ef0a(0x1d9)],_0x11afcc),{'definition':buildDynamicCommandDefinition(_0x2b7bc1['tree'],_0x2b7bc1[_0x51ef0a(0x1d9)]),'args':_0x2b7bc1[_0x51ef0a(0x1e7)],'flags':_0x11afcc,'tree':_0x2b7bc1[_0x51ef0a(0x21c)],'command':_0x2b7bc1['command']};}function a60_0x4de0(){const _0x43cfc2=['risk','flatMap','1785028QqxhoO','normalizedManifest','context.','1521900yuvAAf','number','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','join','nickName','scriptName','description','required','startsWith','Run\x20service\x20command\x20','trim','\x20\x20SERVICE\x20TREE\x20TARGET','Unknown\x20appRef\x20\x22','cliPath','username','Use\x20`','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','name','\x20\x20\x20\x20datatable:\x20','nickname','121372pqnyMd','datasetCode','boolean','appCode','8kLsGDA','read','tableName','high-risk-write','entries','\x22.\x20','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','sqlCode','userName','padEnd','length','tenantCode','source','type','map','envName','\x20\x20\x20\x20command:\x20','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20\x20\x20','tree','380035ESkkxq','commands','mapTo','service','filter','\x20\x20\x20\x20sqlCode:\x20','args','\x20\x20MAP\x20TO','string','push','\x20service\x20detail\x20--service\x20','default','5YufbAj','bffId','rawFlags','1780sxueBL','app','now','datatable','14692392UHTbUq','fullPath','target','find','employeeId','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','some','Commands:','fromEntries','operator','ctx.','dbtableConfig','env','\x20\x20\x20\x20functionName:\x20','kind','\x20\x20[','data','cliName','bff','appRef','\x22\x20in\x20service\x20command\x20','flags','enum','\x20requires\x20target.functionName.','command','\x20requires\x20target.sqlCode.','appcode','validation','\x20\x20\x20\x20datasetCode:\x20','10xLAOmV','SERVICE_TREE','Preview\x20dynamic\x20service\x20command:\x20','params','bffCode','code','39183rhvDvJ','`\x20to\x20inspect\x20the\x20manifest.','\x20\x20\x20\x20kind:\x20\x20\x20\x20','remainingArgs','Service\x20command\x20','const','9279LLCzpi','slice'];a60_0x4de0=function(){return _0x43cfc2;};return a60_0x4de0();}export function generateDynamicServiceHelp(_0x1ec305){const _0x2046a2=a60_0x24a8,_0x2c9fab=listLocalServiceTrees()[_0x2046a2(0x1c4)](_0x314028=>_0x314028[_0x2046a2(0x220)][_0x2046a2(0x1e3)]===_0x1ec305);if(!_0x2c9fab)return undefined;const _0x553bd2=[CLI_BIN_NAME+'\x20'+_0x1ec305+'\x20<command>\x20[flags]','',_0x2c9fab[_0x2046a2(0x220)][_0x2046a2(0x202)]||_0x1ec305,_0x2c9fab[_0x2046a2(0x220)]['description']?'\x20\x20'+_0x2c9fab[_0x2046a2(0x220)]['description']:'','',_0x2046a2(0x1c8),..._0x2c9fab['commands'][_0x2046a2(0x217)](_0x4217c0=>{const _0xf77f9d=_0x2046a2,_0x25ae83=_0x4217c0[_0xf77f9d(0x1c2)][_0xf77f9d(0x1eb)](0x1)[_0xf77f9d(0x1f4)]('\x20'),_0x318d67=_0x4217c0[_0xf77f9d(0x1ec)]===_0xf77f9d(0x20a)?'':'\x20['+_0x4217c0[_0xf77f9d(0x1ec)]+']';return'\x20\x20'+_0x25ae83[_0xf77f9d(0x212)](0x18)+'\x20'+(_0x4217c0[_0xf77f9d(0x1f7)]||'')+_0x318d67;}),'',_0x2046a2(0x200)+CLI_BIN_NAME+_0x2046a2(0x1b8)+_0x1ec305+_0x2046a2(0x1e5)]['filter'](Boolean);return _0x553bd2[_0x2046a2(0x1f4)]('\x0a');}export function listDynamicServiceEntries(){const _0x30b5c6=a60_0x24a8;return listLocalServices()[_0x30b5c6(0x217)](_0x3dbcfd=>{const _0x3a3075=_0x30b5c6,_0x3bac75=_0x3dbcfd[_0x3a3075(0x1ef)];return{'service':_0x3bac75[_0x3a3075(0x220)]['code'],'label':_0x3bac75[_0x3a3075(0x220)][_0x3a3075(0x202)]||_0x3bac75[_0x3a3075(0x220)][_0x3a3075(0x1e3)],'commands':_0x3bac75[_0x3a3075(0x21e)][_0x3a3075(0x217)](_0x1d1be6=>({'command':dynamicCommandName(_0x1d1be6),'description':_0x1d1be6[_0x3a3075(0x1f7)]||'Run\x20service\x20command\x20'+_0x1d1be6['cliPath'],'tag':riskTag(_0x1d1be6[_0x3a3075(0x1ec)])}))};});}export function getDynamicServiceEntry(_0x2786b7){const _0x570a94=a60_0x24a8;return listDynamicServiceEntries()[_0x570a94(0x1c4)](_0x19d291=>_0x19d291['service']===_0x2786b7);}export function listDynamicServiceDefinitions(_0x5e5116){const _0x2b727d=a60_0x24a8;return listLocalServiceTrees()[_0x2b727d(0x221)](_0x443a8f=>!_0x5e5116||_0x443a8f[_0x2b727d(0x220)][_0x2b727d(0x1e3)]===_0x5e5116)[_0x2b727d(0x1ed)](_0x48eadc=>_0x48eadc[_0x2b727d(0x21e)]['map'](_0x377d59=>buildDynamicCommandDefinition(_0x48eadc,_0x377d59)));}export function getDynamicServiceDefinitions(_0x4824bc){const _0x1dfd4f=a60_0x24a8,_0x136930=listDynamicServiceDefinitions(_0x4824bc);return _0x136930[_0x1dfd4f(0x213)]>0x0?_0x136930:undefined;}function a60_0x24a8(_0x5dc525,_0x4c651f){_0x5dc525=_0x5dc525-0x1b5;const _0x4de0b2=a60_0x4de0();let _0x24a85a=_0x4de0b2[_0x5dc525];return _0x24a85a;}export function findDynamicServiceDefinition(_0x2a5059,_0x2f7c9d){const _0xf4c7c5=a60_0x24a8;return listDynamicServiceDefinitions(_0x2a5059)['find'](_0x37bcd1=>_0x37bcd1[_0xf4c7c5(0x1d9)]===_0x2f7c9d);}export function buildDynamicCommandDefinition(_0x2b64fb,_0x1c64f4){const _0x5e376c=a60_0x24a8;return{'service':_0x2b64fb[_0x5e376c(0x220)]['code'],'command':dynamicCommandName(_0x1c64f4),'description':_0x1c64f4['description']||_0x5e376c(0x1fa)+_0x1c64f4['cliPath'],'risk':_0x1c64f4[_0x5e376c(0x1ec)],..._0x1c64f4[_0x5e376c(0x1ec)]===_0x5e376c(0x20a)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x1c64f4)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x1c64f4[_0x5e376c(0x223)][_0x5e376c(0x217)](_0xa201e2=>({'name':_0xa201e2[_0x5e376c(0x202)],'description':_0xa201e2[_0x5e376c(0x1f7)]||_0xa201e2[_0x5e376c(0x202)],'required':_0xa201e2[_0x5e376c(0x1f8)]})),'flags':_0x1c64f4[_0x5e376c(0x1d6)][_0x5e376c(0x217)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x1c64f4),async 'dryRun'(_0x27bda0){const _0x2efdea=_0x5e376c,_0xd9d031=await compilePlan(_0x1c64f4,_0x27bda0);return{'method':_0x2efdea(0x1df),'url':_0x1c64f4['cliPath'],'body':{'target':targetPreview(_0xd9d031),'params':_0xd9d031['params']},'description':_0x2efdea(0x1e0)+_0x1c64f4[_0x2efdea(0x1fe)]};},async 'execute'(_0x22bf17){const _0x5ecf57=_0x5e376c,_0x3e3825=await compilePlan(_0x1c64f4,_0x22bf17),_0x31b3a1=Date[_0x5ecf57(0x1bf)](),_0x1a7589=await executePlan(_0x3e3825,_0x1c64f4,_0x22bf17),_0x185acb=Date['now']()-_0x31b3a1;return{'ok':!![],'data':{'service':_0x2b64fb[_0x5ecf57(0x220)],'command':_0x1c64f4[_0x5ecf57(0x1fe)],'target':targetPreview(_0x3e3825),'result':_0x1a7589,'elapsed':_0x185acb},'message':'Service\x20command\x20'+_0x1c64f4[_0x5ecf57(0x1fe)]+'\x20completed\x20in\x20'+_0x185acb+'ms'};}};}function buildDynamicConfirmationDescription(_0x5c9c4b){const _0x9c73c7=a60_0x24a8,_0x5c7b77=_0x5c9c4b[_0x9c73c7(0x1f7)]||_0x5c9c4b[_0x9c73c7(0x1fe)],_0x216817=_0x5c9c4b[_0x9c73c7(0x1ec)]===_0x9c73c7(0x20c)?_0x9c73c7(0x201):'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.';return _0x9c73c7(0x1f3)+_0x5c7b77+_0x9c73c7(0x20e)+_0x216817;}function dynamicCommandName(_0x5d4ece){const _0x516dec=a60_0x24a8;return _0x5d4ece[_0x516dec(0x1c2)][_0x516dec(0x1eb)](0x1)[_0x516dec(0x1f4)]('\x20');}function riskTag(_0x288c83){const _0xdc0e5f=a60_0x24a8;return _0x288c83===_0xdc0e5f(0x20a)?'':_0xdc0e5f(0x1d0)+_0x288c83+']';}function flagToCommandFlag(_0x5318ef){const _0x33df50=a60_0x24a8;return{'name':_0x5318ef[_0x33df50(0x1d2)],'type':_0x5318ef[_0x33df50(0x216)]==='json'?'string':_0x5318ef[_0x33df50(0x216)],'description':_0x5318ef['description']||_0x5318ef[_0x33df50(0x202)],'required':_0x5318ef[_0x33df50(0x1f8)],'default':isPrimitiveFlagDefault(_0x5318ef[_0x33df50(0x1b9)])?_0x5318ef[_0x33df50(0x1b9)]:undefined,'enum':_0x5318ef[_0x33df50(0x1d7)]};}async function compilePlan(_0x1b0df4,_0x13c0f4){const _0x203735=a60_0x24a8;return compileServiceTreeCommand(_0x1b0df4,{'flags':_0x13c0f4[_0x203735(0x1bc)],'args':_0x13c0f4[_0x203735(0x223)],'context':await buildServiceContext(_0x1b0df4,_0x13c0f4)});}async function buildServiceContext(_0x196756,_0x354ec9){const _0x48fb4e=a60_0x24a8,_0x44fab6={'appCode':_0x354ec9['appCode'],'env':_0x354ec9[_0x48fb4e(0x218)],'envName':_0x354ec9[_0x48fb4e(0x218)]};if(!usesRuntimeContext(_0x196756))return _0x44fab6;const _0x3a3968=await getLoginUserInfo(),_0x305f92=pickFirst(_0x3a3968['userId'],_0x3a3968['id']);return{..._0x44fab6,'user':_0x3a3968,'userId':_0x305f92,'id':_0x3a3968['id'],'username':pickFirst(_0x3a3968[_0x48fb4e(0x1ff)],_0x3a3968[_0x48fb4e(0x211)],_0x3a3968['loginName']),'userName':_0x3a3968[_0x48fb4e(0x211)],'nickname':pickFirst(_0x3a3968[_0x48fb4e(0x204)],_0x3a3968[_0x48fb4e(0x1f5)]),'nickName':_0x3a3968[_0x48fb4e(0x1f5)],'tenantCode':_0x3a3968[_0x48fb4e(0x214)],'employeeId':_0x3a3968[_0x48fb4e(0x1c5)]};}function usesRuntimeContext(_0x442970){const _0x5062d2=a60_0x24a8;return _0x442970[_0x5062d2(0x21f)][_0x5062d2(0x1c7)](_0x405c54=>typeof _0x405c54['source']==='string'&&(_0x405c54[_0x5062d2(0x215)][_0x5062d2(0x1f9)](_0x5062d2(0x1f0))||_0x405c54[_0x5062d2(0x215)]['startsWith'](_0x5062d2(0x1cb))));}function pickFirst(..._0x4cabdf){const _0xda4169=a60_0x24a8;return _0x4cabdf[_0xda4169(0x1c4)](_0x5b68ce=>_0x5b68ce!==undefined&&_0x5b68ce!==null);}async function executePlan(_0x5df072,_0xa7d494,_0x4435b2){const _0x281938=a60_0x24a8;if(_0x5df072[_0x281938(0x1cf)]===_0x281938(0x1d1)){const _0x3a951e=await resolveDatasetCode(_0x5df072,_0xa7d494,_0x4435b2);return executeData(_0x3a951e,_0x5df072[_0x281938(0x1d9)],_0x5df072[_0x281938(0x1e1)]);}if(_0x5df072[_0x281938(0x1cf)]==='sql'){if(!_0x5df072[_0x281938(0x210)])throw CliErrors['validation']('Service\x20command\x20'+_0xa7d494[_0x281938(0x1fe)]+_0x281938(0x1da));return executeSdkSql(_0x5df072[_0x281938(0x210)],normalizeScalarParams(_0x5df072[_0x281938(0x1e1)]));}if(_0x5df072[_0x281938(0x1cf)]===_0x281938(0x1d3)){const _0x19eaa0=_0x5df072[_0x281938(0x1f6)]||_0x5df072[_0x281938(0x1e2)]||(_0x5df072[_0x281938(0x1bb)]==null?'':String(_0x5df072[_0x281938(0x1bb)]));if(!_0x19eaa0)throw CliErrors[_0x281938(0x1dc)]('Service\x20command\x20'+_0xa7d494['cliPath']+_0x281938(0x1d8));return executeSdkBff(_0x19eaa0,_0x5df072[_0x281938(0x1e1)]);}throw CliErrors[_0x281938(0x1dc)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x5df072[_0x281938(0x1cf)]);}async function resolveDatasetCode(_0x2d5272,_0x1e0539,_0x2f1fe2){const _0x2be205=a60_0x24a8;if(_0x2d5272[_0x2be205(0x206)])return _0x2d5272['datasetCode'];if(!_0x2d5272['datatable'])throw CliErrors[_0x2be205(0x1dc)](_0x2be205(0x1e8)+_0x1e0539['cliPath']+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x381aa7=await listDatasets(_0x2f1fe2['appCode']),_0x16f5d2=_0x381aa7['find'](_0x4822c1=>_0x4822c1[_0x2be205(0x1cc)]?.[_0x2be205(0x20b)]===_0x2d5272['datatable']);if(!_0x16f5d2?.['code'])throw CliErrors['validation']('Cannot\x20resolve\x20datatable\x20\x22'+_0x2d5272['datatable']+_0x2be205(0x20f)+_0x2f1fe2[_0x2be205(0x208)]+'.',_0x2be205(0x21a));return _0x16f5d2[_0x2be205(0x1e3)];}function applyAppBinding(_0x1c77f1,_0x2ca310,_0x31def9){const _0x3f07b=a60_0x24a8,_0x37a25c=_0x2ca310[_0x3f07b(0x1c3)][_0x3f07b(0x1d4)];if(!_0x37a25c)return;const _0xe1931=_0x1c77f1['appBindings'][_0x37a25c];if(!_0xe1931)throw CliErrors[_0x3f07b(0x1dc)](_0x3f07b(0x1fd)+_0x37a25c+_0x3f07b(0x1d5)+_0x2ca310[_0x3f07b(0x1fe)]+'.',_0x3f07b(0x1c6));const _0x3a3491=_0xe1931[_0x3f07b(0x1db)]||_0xe1931['appCode'];_0x3a3491&&!hasText(_0x31def9['appcode'])&&(_0x31def9[_0x3f07b(0x1db)]=_0x3a3491),_0xe1931[_0x3f07b(0x1be)]&&!hasText(_0x31def9[_0x3f07b(0x1be)])&&!hasText(_0x31def9[_0x3f07b(0x1db)])&&(_0x31def9['app']=_0xe1931[_0x3f07b(0x1be)]),_0xe1931[_0x3f07b(0x1cd)]&&!hasText(_0x31def9[_0x3f07b(0x1cd)])&&(_0x31def9[_0x3f07b(0x1cd)]=_0xe1931[_0x3f07b(0x1cd)]);}function renderDynamicCommandHelp(_0x39e431){const _0x59dfc6=a60_0x24a8,_0x34b5c2=[_0x59dfc6(0x1fc),_0x59dfc6(0x1e6)+_0x39e431[_0x59dfc6(0x1c3)][_0x59dfc6(0x1cf)],_0x59dfc6(0x219)+_0x39e431[_0x59dfc6(0x1c3)][_0x59dfc6(0x1d9)]];if(_0x39e431['target'][_0x59dfc6(0x206)])_0x34b5c2['push'](_0x59dfc6(0x1dd)+_0x39e431[_0x59dfc6(0x1c3)]['datasetCode']);if(_0x39e431[_0x59dfc6(0x1c3)]['datatable'])_0x34b5c2[_0x59dfc6(0x1b7)](_0x59dfc6(0x203)+_0x39e431[_0x59dfc6(0x1c3)][_0x59dfc6(0x1c0)]);if(_0x39e431[_0x59dfc6(0x1c3)][_0x59dfc6(0x210)])_0x34b5c2[_0x59dfc6(0x1b7)](_0x59dfc6(0x222)+_0x39e431[_0x59dfc6(0x1c3)][_0x59dfc6(0x210)]);if(_0x39e431['target'][_0x59dfc6(0x1f6)])_0x34b5c2['push'](_0x59dfc6(0x1ce)+_0x39e431['target'][_0x59dfc6(0x1f6)]);if(_0x39e431[_0x59dfc6(0x21f)][_0x59dfc6(0x213)]>0x0){_0x34b5c2[_0x59dfc6(0x1b7)]('',_0x59dfc6(0x1b5));for(const _0x24f0a6 of _0x39e431[_0x59dfc6(0x21f)]){_0x34b5c2[_0x59dfc6(0x1b7)](_0x59dfc6(0x21b)+(_0x24f0a6[_0x59dfc6(0x215)]||_0x59dfc6(0x1e9))+'\x20->\x20'+_0x24f0a6[_0x59dfc6(0x1c3)]+(_0x24f0a6[_0x59dfc6(0x1ca)]?'.'+_0x24f0a6['operator']:''));}}return _0x34b5c2[_0x59dfc6(0x1f4)]('\x0a');}function targetPreview(_0x1114bd){const _0x3cedab=a60_0x24a8;return{'kind':_0x1114bd['kind'],'command':_0x1114bd[_0x3cedab(0x1d9)],'appRef':_0x1114bd[_0x3cedab(0x1d4)],'datasetCode':_0x1114bd[_0x3cedab(0x206)],'datatable':_0x1114bd[_0x3cedab(0x1c0)],'sqlCode':_0x1114bd[_0x3cedab(0x210)],'bffCode':_0x1114bd['bffCode'],'bffId':_0x1114bd[_0x3cedab(0x1bb)],'functionName':_0x1114bd['scriptName']};}function normalizeScalarParams(_0x386378){const _0x29083f=a60_0x24a8;return Object[_0x29083f(0x1c9)](Object[_0x29083f(0x20d)](_0x386378)['filter'](([,_0x3f79ee])=>typeof _0x3f79ee===_0x29083f(0x1b6)||typeof _0x3f79ee===_0x29083f(0x1f2)));}function hasText(_0x51146a){const _0x7dce63=a60_0x24a8;return typeof _0x51146a===_0x7dce63(0x1b6)&&_0x51146a[_0x7dce63(0x1fb)]()[_0x7dce63(0x213)]>0x0;}function isPrimitiveFlagDefault(_0x3856e9){const _0x4c0a53=a60_0x24a8;return _0x3856e9===undefined||typeof _0x3856e9===_0x4c0a53(0x1b6)||typeof _0x3856e9==='number'||typeof _0x3856e9===_0x4c0a53(0x207);}
1
+ (function(_0x58f663,_0x29a7c1){const _0x409d74=a60_0xb3d3,_0x269d37=_0x58f663();while(!![]){try{const _0x2d08c9=-parseInt(_0x409d74(0xb9))/0x1*(-parseInt(_0x409d74(0xf4))/0x2)+-parseInt(_0x409d74(0xf7))/0x3*(parseInt(_0x409d74(0x108))/0x4)+-parseInt(_0x409d74(0xf6))/0x5+-parseInt(_0x409d74(0xc0))/0x6+parseInt(_0x409d74(0xff))/0x7*(-parseInt(_0x409d74(0xb6))/0x8)+-parseInt(_0x409d74(0xf8))/0x9*(parseInt(_0x409d74(0xd7))/0xa)+parseInt(_0x409d74(0xb5))/0xb;if(_0x2d08c9===_0x29a7c1)break;else _0x269d37['push'](_0x269d37['shift']());}catch(_0x3ab1f1){_0x269d37['push'](_0x269d37['shift']());}}}(a60_0xf812,0x494f5));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(_0x540f9b,_0x1347f8){const _0xb2040a=a60_0xb3d3,_0x4f1a78=listLocalServiceTrees();let _0x2c7c69;for(const _0x4db2b6 of _0x4f1a78){const _0x162e0b=matchServiceTreeCommand(_0x4db2b6,_0x540f9b);if(!_0x162e0b)continue;(!_0x2c7c69||_0x162e0b[_0xb2040a(0xdf)][_0xb2040a(0xce)][_0xb2040a(0x10a)]>_0x2c7c69['command'][_0xb2040a(0xce)][_0xb2040a(0x10a)])&&(_0x2c7c69={'tree':_0x4db2b6,'command':_0x162e0b[_0xb2040a(0xdf)],'remainingArgs':_0x162e0b[_0xb2040a(0xc2)]});}if(!_0x2c7c69)return undefined;const _0xfa770c={..._0x1347f8};return applyAppBinding(_0x2c7c69[_0xb2040a(0xd4)],_0x2c7c69[_0xb2040a(0xdf)],_0xfa770c),{'definition':buildDynamicCommandDefinition(_0x2c7c69[_0xb2040a(0xd4)],_0x2c7c69[_0xb2040a(0xdf)]),'args':_0x2c7c69[_0xb2040a(0xc2)],'flags':_0xfa770c,'tree':_0x2c7c69[_0xb2040a(0xd4)],'command':_0x2c7c69[_0xb2040a(0xdf)]};}export function generateDynamicServiceHelp(_0x3abeb8){const _0x1304ca=a60_0xb3d3,_0x1d1679=listLocalServiceTrees()[_0x1304ca(0xbf)](_0x516a34=>_0x516a34['service'][_0x1304ca(0xf9)]===_0x3abeb8);if(!_0x1d1679)return undefined;const _0x2e8c7a=[CLI_BIN_NAME+'\x20'+_0x3abeb8+_0x1304ca(0x113),'',_0x1d1679['service'][_0x1304ca(0xf0)]||_0x3abeb8,_0x1d1679[_0x1304ca(0xfd)][_0x1304ca(0xcd)]?'\x20\x20'+_0x1d1679['service'][_0x1304ca(0xcd)]:'','',_0x1304ca(0x116),..._0x1d1679['commands'][_0x1304ca(0x10f)](_0x3adfcc=>{const _0x39865=_0x1304ca,_0x4ce2a6=_0x3adfcc['fullPath'][_0x39865(0xe5)](0x1)['join']('\x20'),_0x2be5b8=_0x3adfcc[_0x39865(0x106)]===_0x39865(0xd6)?'':'\x20['+_0x3adfcc[_0x39865(0x106)]+']';return'\x20\x20'+_0x4ce2a6[_0x39865(0xb7)](0x18)+'\x20'+(_0x3adfcc['description']||'')+_0x2be5b8;}),'',_0x1304ca(0x100)+CLI_BIN_NAME+_0x1304ca(0xef)+_0x3abeb8+_0x1304ca(0xc8)][_0x1304ca(0x10e)](Boolean);return _0x2e8c7a[_0x1304ca(0xde)]('\x0a');}export function listDynamicServiceEntries(){const _0x1325c8=a60_0xb3d3;return listLocalServices()[_0x1325c8(0x10f)](_0x3c1cac=>{const _0xe01089=_0x1325c8,_0x275621=_0x3c1cac[_0xe01089(0xca)];return{'service':_0x275621[_0xe01089(0xfd)]['code'],'label':_0x275621[_0xe01089(0xfd)][_0xe01089(0xf0)]||_0x275621[_0xe01089(0xfd)][_0xe01089(0xf9)],'commands':_0x275621['commands'][_0xe01089(0x10f)](_0x5af959=>({'command':dynamicCommandName(_0x5af959),'description':_0x5af959[_0xe01089(0xcd)]||_0xe01089(0xee)+_0x5af959[_0xe01089(0x119)],'tag':riskTag(_0x5af959[_0xe01089(0x106)])}))};});}export function getDynamicServiceEntry(_0x2c8da2){return listDynamicServiceEntries()['find'](_0x595000=>_0x595000['service']===_0x2c8da2);}export function listDynamicServiceDefinitions(_0x4eacce){const _0x2bdded=a60_0xb3d3;return listLocalServiceTrees()[_0x2bdded(0x10e)](_0x480ccb=>!_0x4eacce||_0x480ccb[_0x2bdded(0xfd)][_0x2bdded(0xf9)]===_0x4eacce)[_0x2bdded(0xbd)](_0x58e73b=>_0x58e73b['commands'][_0x2bdded(0x10f)](_0x500d29=>buildDynamicCommandDefinition(_0x58e73b,_0x500d29)));}export function getDynamicServiceDefinitions(_0x40c12d){const _0x39865e=listDynamicServiceDefinitions(_0x40c12d);return _0x39865e['length']>0x0?_0x39865e:undefined;}export function findDynamicServiceDefinition(_0x101260,_0x9b8025){const _0x5208de=a60_0xb3d3;return listDynamicServiceDefinitions(_0x101260)[_0x5208de(0xbf)](_0x1c31a2=>_0x1c31a2[_0x5208de(0xdf)]===_0x9b8025);}export function buildDynamicCommandDefinition(_0x2e4b36,_0x1c8474){const _0x315dd7=a60_0xb3d3;return{'service':_0x2e4b36[_0x315dd7(0xfd)][_0x315dd7(0xf9)],'command':dynamicCommandName(_0x1c8474),'description':_0x1c8474[_0x315dd7(0xcd)]||'Run\x20service\x20command\x20'+_0x1c8474[_0x315dd7(0x119)],'risk':_0x1c8474[_0x315dd7(0x106)],..._0x1c8474[_0x315dd7(0x106)]===_0x315dd7(0xd6)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x1c8474)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x1c8474[_0x315dd7(0xcf)][_0x315dd7(0x10f)](_0x66a72=>({'name':_0x66a72[_0x315dd7(0xf0)],'description':_0x66a72[_0x315dd7(0xcd)]||_0x66a72[_0x315dd7(0xf0)],'required':_0x66a72[_0x315dd7(0xba)]})),'flags':_0x1c8474['flags'][_0x315dd7(0x10f)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x1c8474),async 'dryRun'(_0x349e11){const _0x5b52ec=_0x315dd7,_0x357cfe=await compilePlan(_0x1c8474,_0x349e11);return{'method':_0x5b52ec(0xbc),'url':_0x1c8474[_0x5b52ec(0x119)],'body':{'target':targetPreview(_0x357cfe),'params':_0x357cfe[_0x5b52ec(0xcb)]},'description':_0x5b52ec(0x103)+_0x1c8474[_0x5b52ec(0x119)]};},async 'execute'(_0x127869){const _0x3f405b=_0x315dd7,_0x17c3b0=await compilePlan(_0x1c8474,_0x127869),_0x5c7745=Date[_0x3f405b(0xc9)](),_0x57c38e=await executePlan(_0x17c3b0,_0x1c8474,_0x127869),_0xd54de5=Date[_0x3f405b(0xc9)]()-_0x5c7745;return{'ok':!![],'data':{'service':_0x2e4b36[_0x3f405b(0xfd)],'command':_0x1c8474[_0x3f405b(0x119)],'target':targetPreview(_0x17c3b0),'result':_0x57c38e,'elapsed':_0xd54de5},'message':_0x3f405b(0xed)+_0x1c8474[_0x3f405b(0x119)]+'\x20completed\x20in\x20'+_0xd54de5+'ms'};}};}function a60_0xb3d3(_0x291b98,_0x1d7fe5){_0x291b98=_0x291b98-0xb2;const _0xf812ab=a60_0xf812();let _0xb3d345=_0xf812ab[_0x291b98];return _0xb3d345;}function buildDynamicConfirmationDescription(_0x26e325){const _0x3a99dc=a60_0xb3d3,_0x28aa4b=_0x26e325[_0x3a99dc(0xcd)]||_0x26e325['cliPath'],_0xbc02f=_0x26e325[_0x3a99dc(0x106)]===_0x3a99dc(0xe6)?'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.':_0x3a99dc(0x109);return _0x3a99dc(0xc6)+_0x28aa4b+_0x3a99dc(0xe2)+_0xbc02f;}function dynamicCommandName(_0x462085){const _0x2b6cb8=a60_0xb3d3;return _0x462085[_0x2b6cb8(0xce)][_0x2b6cb8(0xe5)](0x1)[_0x2b6cb8(0xde)]('\x20');}function riskTag(_0x3e400a){return _0x3e400a==='read'?'':'\x20\x20['+_0x3e400a+']';}function flagToCommandFlag(_0x286be3){const _0x33ddf7=a60_0xb3d3;return{'name':_0x286be3[_0x33ddf7(0xbb)],'type':_0x286be3[_0x33ddf7(0xb2)]===_0x33ddf7(0x117)?_0x33ddf7(0xe8):_0x286be3[_0x33ddf7(0xb2)],'description':_0x286be3[_0x33ddf7(0xcd)]||_0x286be3[_0x33ddf7(0xf0)],'required':_0x286be3['required'],'default':isPrimitiveFlagDefault(_0x286be3[_0x33ddf7(0xf2)])?_0x286be3[_0x33ddf7(0xf2)]:undefined,'enum':_0x286be3[_0x33ddf7(0x102)]};}async function compilePlan(_0x256d22,_0x3ee8b5){const _0x30fc9b=a60_0xb3d3;return compileServiceTreeCommand(_0x256d22,{'flags':_0x3ee8b5[_0x30fc9b(0xdd)],'args':_0x3ee8b5[_0x30fc9b(0xcf)],'context':await buildServiceContext(_0x256d22,_0x3ee8b5)});}async function buildServiceContext(_0x2ef500,_0x11e36d){const _0x4aa5a4=a60_0xb3d3,_0x57f128={'appCode':_0x11e36d['appCode'],'env':_0x11e36d[_0x4aa5a4(0xc7)],'envName':_0x11e36d[_0x4aa5a4(0xc7)]};if(!usesRuntimeContext(_0x2ef500))return _0x57f128;const _0x5958c1=await getLoginUserInfo(),_0x2f77e4=pickFirst(_0x5958c1[_0x4aa5a4(0xea)],_0x5958c1['id']);return{..._0x57f128,'user':_0x5958c1,'userId':_0x2f77e4,'id':_0x5958c1['id'],'username':pickFirst(_0x5958c1[_0x4aa5a4(0xf1)],_0x5958c1['userName'],_0x5958c1[_0x4aa5a4(0xc4)]),'userName':_0x5958c1['userName'],'nickname':pickFirst(_0x5958c1[_0x4aa5a4(0xb8)],_0x5958c1[_0x4aa5a4(0x118)]),'nickName':_0x5958c1[_0x4aa5a4(0x118)],'tenantCode':_0x5958c1['tenantCode'],'employeeId':_0x5958c1[_0x4aa5a4(0x101)]};}function usesRuntimeContext(_0x1fd305){const _0x3bf1c8=a60_0xb3d3;return _0x1fd305[_0x3bf1c8(0xd2)]['some'](_0x3e4fa6=>typeof _0x3e4fa6[_0x3bf1c8(0xeb)]==='string'&&(_0x3e4fa6['source'][_0x3bf1c8(0x115)]('context.')||_0x3e4fa6['source'][_0x3bf1c8(0x115)](_0x3bf1c8(0xf3))));}function pickFirst(..._0x3e5ff4){const _0x52ccc3=a60_0xb3d3;return _0x3e5ff4[_0x52ccc3(0xbf)](_0x2aae1d=>_0x2aae1d!==undefined&&_0x2aae1d!==null);}async function executePlan(_0x3adf64,_0x13976d,_0x5697e9){const _0xff1894=a60_0xb3d3;if(_0x3adf64[_0xff1894(0xe0)]===_0xff1894(0xfe)){const _0x2665a5=await resolveDatasetCode(_0x3adf64,_0x13976d,_0x5697e9);return executeData(_0x2665a5,_0x3adf64[_0xff1894(0xdf)],_0x3adf64['params']);}if(_0x3adf64[_0xff1894(0xe0)]==='sql'){if(!_0x3adf64[_0xff1894(0xbe)])throw CliErrors[_0xff1894(0x104)](_0xff1894(0xed)+_0x13976d[_0xff1894(0x119)]+_0xff1894(0xd5));return executeSdkSql(_0x3adf64[_0xff1894(0xbe)],normalizeScalarParams(_0x3adf64['params']));}if(_0x3adf64[_0xff1894(0xe0)]==='bff'){const _0x498468=_0x3adf64[_0xff1894(0xe9)]||_0x3adf64[_0xff1894(0xc1)]||(_0x3adf64[_0xff1894(0xd8)]==null?'':String(_0x3adf64[_0xff1894(0xd8)]));if(!_0x498468)throw CliErrors['validation'](_0xff1894(0xed)+_0x13976d[_0xff1894(0x119)]+_0xff1894(0x10d));return executeSdkBff(_0x498468,_0x3adf64['params']);}throw CliErrors[_0xff1894(0x104)](_0xff1894(0xfc)+_0x3adf64[_0xff1894(0xe0)]);}async function resolveDatasetCode(_0x5f4429,_0x4180a8,_0xa2852c){const _0x2c4693=a60_0xb3d3;if(_0x5f4429[_0x2c4693(0xe7)])return _0x5f4429[_0x2c4693(0xe7)];if(!_0x5f4429[_0x2c4693(0xfb)])throw CliErrors[_0x2c4693(0x104)](_0x2c4693(0xed)+_0x4180a8[_0x2c4693(0x119)]+_0x2c4693(0xf5));const _0x2e2ed4=await listDatasets(_0xa2852c[_0x2c4693(0xe4)]),_0x4ad16e=_0x2e2ed4[_0x2c4693(0xbf)](_0x1f83af=>_0x1f83af[_0x2c4693(0x107)]?.[_0x2c4693(0xd1)]===_0x5f4429[_0x2c4693(0xfb)]);if(!_0x4ad16e?.[_0x2c4693(0xf9)])throw CliErrors['validation'](_0x2c4693(0x105)+_0x5f4429[_0x2c4693(0xfb)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0xa2852c[_0x2c4693(0xe4)]+'.',_0x2c4693(0x110));return _0x4ad16e['code'];}function applyAppBinding(_0x16e3a9,_0x331efa,_0x38cb49){const _0x5cd38a=a60_0xb3d3,_0x4b8ac5=_0x331efa[_0x5cd38a(0xda)][_0x5cd38a(0xb4)];if(!_0x4b8ac5)return;const _0x519f07=_0x16e3a9['appBindings'][_0x4b8ac5];if(!_0x519f07)throw CliErrors[_0x5cd38a(0x104)]('Unknown\x20appRef\x20\x22'+_0x4b8ac5+_0x5cd38a(0xd3)+_0x331efa[_0x5cd38a(0x119)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x25f11d=_0x519f07[_0x5cd38a(0x114)]||_0x519f07[_0x5cd38a(0xe4)];_0x25f11d&&!hasText(_0x38cb49[_0x5cd38a(0x114)])&&(_0x38cb49[_0x5cd38a(0x114)]=_0x25f11d),_0x519f07['app']&&!hasText(_0x38cb49[_0x5cd38a(0xb3)])&&!hasText(_0x38cb49[_0x5cd38a(0x114)])&&(_0x38cb49[_0x5cd38a(0xb3)]=_0x519f07[_0x5cd38a(0xb3)]),_0x519f07['env']&&!hasText(_0x38cb49['env'])&&(_0x38cb49[_0x5cd38a(0xc3)]=_0x519f07[_0x5cd38a(0xc3)]);}function renderDynamicCommandHelp(_0x1c4860){const _0x363cfe=a60_0xb3d3,_0x46f96f=[_0x363cfe(0x10b),'\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x1c4860[_0x363cfe(0xda)][_0x363cfe(0xe0)],_0x363cfe(0x111)+_0x1c4860[_0x363cfe(0xda)][_0x363cfe(0xdf)]];if(_0x1c4860[_0x363cfe(0xda)][_0x363cfe(0xe7)])_0x46f96f['push'](_0x363cfe(0xdb)+_0x1c4860[_0x363cfe(0xda)]['datasetCode']);if(_0x1c4860[_0x363cfe(0xda)][_0x363cfe(0xfb)])_0x46f96f[_0x363cfe(0xfa)](_0x363cfe(0xc5)+_0x1c4860['target'][_0x363cfe(0xfb)]);if(_0x1c4860[_0x363cfe(0xda)]['sqlCode'])_0x46f96f['push'](_0x363cfe(0xd0)+_0x1c4860[_0x363cfe(0xda)][_0x363cfe(0xbe)]);if(_0x1c4860[_0x363cfe(0xda)]['scriptName'])_0x46f96f['push'](_0x363cfe(0xd9)+_0x1c4860[_0x363cfe(0xda)]['scriptName']);if(_0x1c4860[_0x363cfe(0xd2)]['length']>0x0){_0x46f96f[_0x363cfe(0xfa)]('','\x20\x20MAP\x20TO');for(const _0x479d36 of _0x1c4860[_0x363cfe(0xd2)]){_0x46f96f['push']('\x20\x20\x20\x20'+(_0x479d36[_0x363cfe(0xeb)]||_0x363cfe(0x10c))+_0x363cfe(0xe3)+_0x479d36[_0x363cfe(0xda)]+(_0x479d36[_0x363cfe(0x112)]?'.'+_0x479d36['operator']:''));}}return _0x46f96f[_0x363cfe(0xde)]('\x0a');}function targetPreview(_0x6cb80b){const _0x3fe9e7=a60_0xb3d3;return{'kind':_0x6cb80b[_0x3fe9e7(0xe0)],'command':_0x6cb80b['command'],'appRef':_0x6cb80b['appRef'],'datasetCode':_0x6cb80b[_0x3fe9e7(0xe7)],'datatable':_0x6cb80b['datatable'],'sqlCode':_0x6cb80b['sqlCode'],'bffCode':_0x6cb80b[_0x3fe9e7(0xc1)],'bffId':_0x6cb80b['bffId'],'functionName':_0x6cb80b[_0x3fe9e7(0xe9)]};}function normalizeScalarParams(_0x417c65){const _0x29ecbe=a60_0xb3d3;return Object[_0x29ecbe(0xec)](Object['entries'](_0x417c65)[_0x29ecbe(0x10e)](([,_0x2dc6fb])=>typeof _0x2dc6fb===_0x29ecbe(0xe8)||typeof _0x2dc6fb===_0x29ecbe(0xdc)));}function hasText(_0x15e3e6){const _0x322a63=a60_0xb3d3;return typeof _0x15e3e6===_0x322a63(0xe8)&&_0x15e3e6[_0x322a63(0xcc)]()[_0x322a63(0x10a)]>0x0;}function isPrimitiveFlagDefault(_0x4c3425){const _0x30c781=a60_0xb3d3;return _0x4c3425===undefined||typeof _0x4c3425==='string'||typeof _0x4c3425==='number'||typeof _0x4c3425===_0x30c781(0xe1);}function a60_0xf812(){const _0x42f7f5=['json','nickName','cliPath','type','app','appRef','10507761WwFgBQ','200EcXUXr','padEnd','nickname','1QCrcFU','required','cliName','SERVICE_TREE','flatMap','sqlCode','find','132330GrJsdQ','bffCode','remainingArgs','env','loginName','\x20\x20\x20\x20datatable:\x20','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','envName','`\x20to\x20inspect\x20the\x20manifest.','now','normalizedManifest','params','trim','description','fullPath','args','\x20\x20\x20\x20sqlCode:\x20','tableName','mapTo','\x22\x20in\x20service\x20command\x20','tree','\x20requires\x20target.sqlCode.','read','1329760MDLzzh','bffId','\x20\x20\x20\x20functionName:\x20','target','\x20\x20\x20\x20datasetCode:\x20','number','rawFlags','join','command','kind','boolean','\x22.\x20','\x20->\x20','appCode','slice','high-risk-write','datasetCode','string','scriptName','userId','source','fromEntries','Service\x20command\x20','Run\x20service\x20command\x20','\x20service\x20detail\x20--service\x20','name','username','default','ctx.','596368ShUMpP','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','1104195HoGkIM','3SEEpzA','9bVLNEY','code','push','datatable','Unsupported\x20service\x20target\x20kind:\x20','service','data','105441XqzNNp','Use\x20`','employeeId','enum','Preview\x20dynamic\x20service\x20command:\x20','validation','Cannot\x20resolve\x20datatable\x20\x22','risk','dbtableConfig','802852EillTC','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','length','\x20\x20SERVICE\x20TREE\x20TARGET','const','\x20requires\x20target.functionName.','filter','map','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20\x20\x20command:\x20','operator','\x20<command>\x20[flags]','appcode','startsWith','Commands:'];a60_0xf812=function(){return _0x42f7f5;};return a60_0xf812();}
@@ -1 +1 @@
1
- function a61_0xdb40(){const _0x19f2c8=['.scriptName','$.resources','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','4rJzLrc','string','actions','5242016fcnWhr','call','functionName','9pWHKjh','.resources','map','fromEntries','420462nAsMLF','commands','bff','error','5470730tAIJmr','isArray','push','trim','resources','action','3442188GltNpy','6eofQHB','5497cmASIQ','1335VmWXoF','.actions.','entries','prototype','11010wzplBl','55nyWFic','target','1729293rjBGSP','kind','object','scriptName','bff.exec','hasOwnProperty'];a61_0xdb40=function(){return _0x19f2c8;};return a61_0xdb40();}(function(_0x22e36b,_0x271ee1){const _0x53ecfe=a61_0x3c3e,_0x327d6d=_0x22e36b();while(!![]){try{const _0x261cce=-parseInt(_0x53ecfe(0x177))/0x1*(-parseInt(_0x53ecfe(0x176))/0x2)+parseInt(_0x53ecfe(0x17f))/0x3*(-parseInt(_0x53ecfe(0x188))/0x4)+-parseInt(_0x53ecfe(0x178))/0x5*(parseInt(_0x53ecfe(0x17c))/0x6)+parseInt(_0x53ecfe(0x192))/0x7+-parseInt(_0x53ecfe(0x18b))/0x8+-parseInt(_0x53ecfe(0x18e))/0x9*(-parseInt(_0x53ecfe(0x16f))/0xa)+-parseInt(_0x53ecfe(0x17d))/0xb*(-parseInt(_0x53ecfe(0x175))/0xc);if(_0x261cce===_0x271ee1)break;else _0x327d6d['push'](_0x327d6d['shift']());}catch(_0x142dcf){_0x327d6d['push'](_0x327d6d['shift']());}}}(a61_0xdb40,0x52177));export function adaptServiceTreeManifestForLegacyFramework(_0x5df586){const _0x48d3df=a61_0x3c3e,_0x45a1b1=cloneJsonValue(_0x5df586),_0x5aab0f=[];if(!isObjectRecord(_0x45a1b1))return{'manifest':_0x45a1b1,'errors':_0x5aab0f};return Array[_0x48d3df(0x170)](_0x45a1b1[_0x48d3df(0x16c)])&&_0x45a1b1[_0x48d3df(0x16c)]['forEach']((_0x56a6a4,_0x5cbb85)=>{const _0x2b49d3=_0x48d3df;if(!isObjectRecord(_0x56a6a4))return;adaptBffTarget(_0x56a6a4[_0x2b49d3(0x17e)],'$.commands['+_0x5cbb85+'].target',_0x5aab0f);}),adaptResources(_0x45a1b1[_0x48d3df(0x173)],_0x48d3df(0x186),_0x5aab0f),{'manifest':_0x45a1b1,'errors':_0x5aab0f};}export function toPublicServiceTreeTarget(_0x293a4a){const _0x57ce48=a61_0x3c3e,{scriptName:_0x2eaa5e,..._0x236d0d}=_0x293a4a;return typeof _0x2eaa5e===_0x57ce48(0x189)&&_0x2eaa5e[_0x57ce48(0x172)]()&&(_0x236d0d[_0x57ce48(0x18d)]=_0x2eaa5e),_0x236d0d;}export function toPublicNormalizedServiceTree(_0x3ac66d){const _0x579a8a=a61_0x3c3e;return{..._0x3ac66d,'commands':_0x3ac66d['commands']['map'](_0x4e43f5=>({..._0x4e43f5,'target':toPublicServiceTreeTarget(_0x4e43f5[_0x579a8a(0x17e)])}))};}function adaptResources(_0x32c1e6,_0x568e2e,_0xc09e98){const _0x4e6aec=a61_0x3c3e;if(!isObjectRecord(_0x32c1e6))return;for(const [_0x3835c5,_0x5b821b]of Object[_0x4e6aec(0x17a)](_0x32c1e6)){if(!isObjectRecord(_0x5b821b))continue;const _0xf87cd=_0x568e2e+'.'+_0x3835c5;if(isObjectRecord(_0x5b821b[_0x4e6aec(0x18a)]))for(const [_0x27e715,_0x480c05]of Object[_0x4e6aec(0x17a)](_0x5b821b[_0x4e6aec(0x18a)])){if(!isObjectRecord(_0x480c05))continue;const _0xfb4cc3=_0xf87cd+_0x4e6aec(0x179)+_0x27e715,_0x2078b2=isObjectRecord(_0x480c05['target'])&&_0x480c05['target'][_0x4e6aec(0x180)]===_0x4e6aec(0x16d);adaptBffTarget(_0x480c05['target'],_0xfb4cc3+'.target',_0xc09e98),(_0x2078b2||isBffAction(_0x480c05))&&adaptFunctionNameField(_0x480c05,_0xfb4cc3,_0xc09e98);}adaptResources(_0x5b821b[_0x4e6aec(0x173)],_0xf87cd+_0x4e6aec(0x18f),_0xc09e98);}}function adaptBffTarget(_0x2838c8,_0x48540a,_0x44cde3){const _0x5c3efb=a61_0x3c3e;if(!isObjectRecord(_0x2838c8)||_0x2838c8[_0x5c3efb(0x180)]!=='bff')return;adaptFunctionNameField(_0x2838c8,_0x48540a,_0x44cde3);}function a61_0x3c3e(_0x31a891,_0x1d7c20){_0x31a891=_0x31a891-0x16c;const _0xdb4065=a61_0xdb40();let _0x3c3e71=_0xdb4065[_0x31a891];return _0x3c3e71;}function adaptFunctionNameField(_0x1d40c4,_0x28149b,_0x2722b1){const _0x4c0a24=a61_0x3c3e;Object['prototype'][_0x4c0a24(0x184)][_0x4c0a24(0x18c)](_0x1d40c4,_0x4c0a24(0x182))&&_0x2722b1[_0x4c0a24(0x171)]({'level':_0x4c0a24(0x16e),'path':_0x28149b+_0x4c0a24(0x185),'message':_0x4c0a24(0x187)});if(Object[_0x4c0a24(0x17b)][_0x4c0a24(0x184)][_0x4c0a24(0x18c)](_0x1d40c4,_0x4c0a24(0x18d))){if(typeof _0x1d40c4[_0x4c0a24(0x18d)]!==_0x4c0a24(0x189)||!_0x1d40c4[_0x4c0a24(0x18d)][_0x4c0a24(0x172)]()){_0x2722b1[_0x4c0a24(0x171)]({'level':_0x4c0a24(0x16e),'path':_0x28149b+'.functionName','message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x1d40c4[_0x4c0a24(0x18d)];return;}_0x1d40c4['scriptName']=_0x1d40c4[_0x4c0a24(0x18d)],delete _0x1d40c4[_0x4c0a24(0x18d)];}}function isBffAction(_0x297124){const _0x55b7ca=a61_0x3c3e;return _0x297124['kind']===_0x55b7ca(0x16d)||_0x297124[_0x55b7ca(0x174)]==='bff.exec'||_0x297124['target']===_0x55b7ca(0x183);}function cloneJsonValue(_0x43dc94){const _0x4b252f=a61_0x3c3e;if(Array[_0x4b252f(0x170)](_0x43dc94))return _0x43dc94[_0x4b252f(0x190)](_0x3d8ed1=>cloneJsonValue(_0x3d8ed1));if(isObjectRecord(_0x43dc94))return Object[_0x4b252f(0x191)](Object[_0x4b252f(0x17a)](_0x43dc94)[_0x4b252f(0x190)](([_0x3570ff,_0x2e2993])=>[_0x3570ff,cloneJsonValue(_0x2e2993)]));return _0x43dc94;}function isObjectRecord(_0x1f7052){const _0x24a571=a61_0x3c3e;return Boolean(_0x1f7052)&&typeof _0x1f7052===_0x24a571(0x181)&&!Array[_0x24a571(0x170)](_0x1f7052);}
1
+ (function(_0x54521c,_0x1654b5){const _0xb002a=a61_0x13b7,_0x4a5489=_0x54521c();while(!![]){try{const _0x33acc0=-parseInt(_0xb002a(0x89))/0x1+parseInt(_0xb002a(0x72))/0x2*(-parseInt(_0xb002a(0x76))/0x3)+parseInt(_0xb002a(0x7e))/0x4+-parseInt(_0xb002a(0x7f))/0x5+parseInt(_0xb002a(0x83))/0x6+parseInt(_0xb002a(0x81))/0x7+parseInt(_0xb002a(0x7b))/0x8;if(_0x33acc0===_0x1654b5)break;else _0x4a5489['push'](_0x4a5489['shift']());}catch(_0x33dbbc){_0x4a5489['push'](_0x4a5489['shift']());}}}(a61_0x41b8,0x2bde6));export function adaptServiceTreeManifestForLegacyFramework(_0x1963ee){const _0x344cbe=a61_0x13b7,_0x2788ef=cloneJsonValue(_0x1963ee),_0x2afc87=[];if(!isObjectRecord(_0x2788ef))return{'manifest':_0x2788ef,'errors':_0x2afc87};return Array[_0x344cbe(0x86)](_0x2788ef[_0x344cbe(0x8f)])&&_0x2788ef['commands'][_0x344cbe(0x92)]((_0x38d1d9,_0x21f523)=>{const _0x3094b6=_0x344cbe;if(!isObjectRecord(_0x38d1d9))return;adaptBffTarget(_0x38d1d9['target'],_0x3094b6(0x90)+_0x21f523+'].target',_0x2afc87);}),adaptResources(_0x2788ef['resources'],_0x344cbe(0x82),_0x2afc87),{'manifest':_0x2788ef,'errors':_0x2afc87};}function a61_0x41b8(){const _0x4f0462=['entries','.target','commands','$.commands[','bff','forEach','.actions.','resources','functionName\x20must\x20be\x20a\x20non-empty\x20string.','3346rVkHCm','kind','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','prototype','303IVGUvr','map','trim','string','object','976168tEYgxh','functionName','error','453852uNwihX','64935nOGQyT','hasOwnProperty','1217643ThOXsU','$.resources','90954PCvKni','bff.exec','target','isArray','.resources','scriptName','62946lEQxPX','actions','action','call'];a61_0x41b8=function(){return _0x4f0462;};return a61_0x41b8();}export function toPublicServiceTreeTarget(_0x11433f){const _0x7b78cd=a61_0x13b7,{scriptName:_0x16fb60,..._0x125ce5}=_0x11433f;return typeof _0x16fb60==='string'&&_0x16fb60[_0x7b78cd(0x78)]()&&(_0x125ce5['functionName']=_0x16fb60),_0x125ce5;}export function toPublicNormalizedServiceTree(_0x4a16fa){const _0x172070=a61_0x13b7;return{..._0x4a16fa,'commands':_0x4a16fa[_0x172070(0x8f)][_0x172070(0x77)](_0x50ca49=>({..._0x50ca49,'target':toPublicServiceTreeTarget(_0x50ca49['target'])}))};}function adaptResources(_0x1e21ea,_0x13ee78,_0x5e9950){const _0x2d1f0c=a61_0x13b7;if(!isObjectRecord(_0x1e21ea))return;for(const [_0x59deba,_0x45688f]of Object[_0x2d1f0c(0x8d)](_0x1e21ea)){if(!isObjectRecord(_0x45688f))continue;const _0x571a9a=_0x13ee78+'.'+_0x59deba;if(isObjectRecord(_0x45688f[_0x2d1f0c(0x8a)]))for(const [_0x2c7073,_0x496931]of Object[_0x2d1f0c(0x8d)](_0x45688f[_0x2d1f0c(0x8a)])){if(!isObjectRecord(_0x496931))continue;const _0x53f2ce=_0x571a9a+_0x2d1f0c(0x93)+_0x2c7073,_0x560dcb=isObjectRecord(_0x496931[_0x2d1f0c(0x85)])&&_0x496931['target'][_0x2d1f0c(0x73)]===_0x2d1f0c(0x91);adaptBffTarget(_0x496931[_0x2d1f0c(0x85)],_0x53f2ce+_0x2d1f0c(0x8e),_0x5e9950),(_0x560dcb||isBffAction(_0x496931))&&adaptFunctionNameField(_0x496931,_0x53f2ce,_0x5e9950);}adaptResources(_0x45688f[_0x2d1f0c(0x94)],_0x571a9a+_0x2d1f0c(0x87),_0x5e9950);}}function adaptBffTarget(_0x8e1e9b,_0x3a0e1d,_0x805bec){const _0x2ce405=a61_0x13b7;if(!isObjectRecord(_0x8e1e9b)||_0x8e1e9b['kind']!==_0x2ce405(0x91))return;adaptFunctionNameField(_0x8e1e9b,_0x3a0e1d,_0x805bec);}function adaptFunctionNameField(_0x28d4b2,_0x1605db,_0x59b0d4){const _0x2af7bf=a61_0x13b7;Object[_0x2af7bf(0x75)]['hasOwnProperty'][_0x2af7bf(0x8c)](_0x28d4b2,_0x2af7bf(0x88))&&_0x59b0d4['push']({'level':_0x2af7bf(0x7d),'path':_0x1605db+'.scriptName','message':_0x2af7bf(0x74)});if(Object[_0x2af7bf(0x75)][_0x2af7bf(0x80)]['call'](_0x28d4b2,_0x2af7bf(0x7c))){if(typeof _0x28d4b2[_0x2af7bf(0x7c)]!==_0x2af7bf(0x79)||!_0x28d4b2[_0x2af7bf(0x7c)][_0x2af7bf(0x78)]()){_0x59b0d4['push']({'level':_0x2af7bf(0x7d),'path':_0x1605db+'.functionName','message':_0x2af7bf(0x95)}),delete _0x28d4b2['functionName'];return;}_0x28d4b2[_0x2af7bf(0x88)]=_0x28d4b2[_0x2af7bf(0x7c)],delete _0x28d4b2['functionName'];}}function a61_0x13b7(_0x1b160e,_0x41d6e3){_0x1b160e=_0x1b160e-0x72;const _0x41b82f=a61_0x41b8();let _0x13b71f=_0x41b82f[_0x1b160e];return _0x13b71f;}function isBffAction(_0x3bc4d3){const _0x3afdad=a61_0x13b7;return _0x3bc4d3[_0x3afdad(0x73)]==='bff'||_0x3bc4d3[_0x3afdad(0x8b)]==='bff.exec'||_0x3bc4d3[_0x3afdad(0x85)]===_0x3afdad(0x84);}function cloneJsonValue(_0x35e36c){const _0x46af33=a61_0x13b7;if(Array[_0x46af33(0x86)](_0x35e36c))return _0x35e36c[_0x46af33(0x77)](_0x18ac9a=>cloneJsonValue(_0x18ac9a));if(isObjectRecord(_0x35e36c))return Object['fromEntries'](Object[_0x46af33(0x8d)](_0x35e36c)['map'](([_0x5576e7,_0x486ef0])=>[_0x5576e7,cloneJsonValue(_0x486ef0)]));return _0x35e36c;}function isObjectRecord(_0x57212e){const _0x2bc9c2=a61_0x13b7;return Boolean(_0x57212e)&&typeof _0x57212e===_0x2bc9c2(0x7a)&&!Array[_0x2bc9c2(0x86)](_0x57212e);}
@@ -1 +1 @@
1
- const a62_0x4078be=a62_0x255d;(function(_0x701721,_0x15d331){const _0x1e92f5=a62_0x255d,_0x381ac6=_0x701721();while(!![]){try{const _0x39befb=-parseInt(_0x1e92f5(0xeb))/0x1*(parseInt(_0x1e92f5(0xf4))/0x2)+-parseInt(_0x1e92f5(0xfe))/0x3*(-parseInt(_0x1e92f5(0xec))/0x4)+parseInt(_0x1e92f5(0xe2))/0x5*(-parseInt(_0x1e92f5(0x10a))/0x6)+parseInt(_0x1e92f5(0x119))/0x7+-parseInt(_0x1e92f5(0xf2))/0x8+parseInt(_0x1e92f5(0x118))/0x9+-parseInt(_0x1e92f5(0x10c))/0xa*(parseInt(_0x1e92f5(0xd8))/0xb);if(_0x39befb===_0x15d331)break;else _0x381ac6['push'](_0x381ac6['shift']());}catch(_0x165831){_0x381ac6['push'](_0x381ac6['shift']());}}}(a62_0x8718,0xcae9d));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_0x255d(_0x1e53b2,_0x372689){_0x1e53b2=_0x1e53b2-0xd3;const _0x871879=a62_0x8718();let _0x255dc2=_0x871879[_0x1e53b2];return _0x255dc2;}function a62_0x8718(){const _0x2699dc=['240484sgGWOU','serviceCode','import','Local\x20service\x20code,\x20for\x20example\x20crm','description','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','5542760iMVTbe','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','64858LfmREU','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.','target','warnings','entries','Exported\x20service\x20','service','list','commands','kind','69HiiKyG','Removed\x20service\x20','detail','entry','Imported\x20','serviceCount','normalizedManifest','cliPath','string','flags','cliName','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','6RHtxfe','file','1130qTPrRS','\x20service(s).','errors','imported','type','report','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','registryPath','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','importedAt','write','map','6761430KzNLxt','11087832BvNFRP','version','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','reduce','validate','hash','10813XpFxFc','lower\x20kebab-case\x20service\x20code','WRITE','manifests','length','Service\x20Tree\x20manifest\x20file\x20path','export','remove','source','updated','7982685TSfeCH','replaced','name','read','filePath','str','Imported','risk','registryServiceCode','15Axsukv'];a62_0x8718=function(){return _0x2699dc;};return a62_0x8718();}const FILE_FLAG={'name':a62_0x4078be(0x10b),'type':a62_0x4078be(0x106),'required':!![],'description':a62_0x4078be(0xdd)},SERVICE_FLAG={'name':a62_0x4078be(0xfa),'type':a62_0x4078be(0x106),'required':!![],'description':a62_0x4078be(0xef),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x4078be(0xd9)}};function summarizeService(_0x2e89fa){const _0x53788f=a62_0x4078be;return{'serviceCode':_0x2e89fa[_0x53788f(0xed)],'name':_0x2e89fa[_0x53788f(0x104)][_0x53788f(0xfa)][_0x53788f(0xe4)],'version':_0x2e89fa[_0x53788f(0x11a)],'importedAt':_0x2e89fa[_0x53788f(0x115)],'source':_0x2e89fa[_0x53788f(0xe0)],'commandCount':_0x2e89fa['normalizedManifest']['commands'][_0x53788f(0xdc)],'commands':_0x2e89fa[_0x53788f(0x104)][_0x53788f(0xfc)]['map'](_0x3246da=>({'path':_0x3246da[_0x53788f(0x105)],'description':_0x3246da[_0x53788f(0xf0)],'risk':_0x3246da[_0x53788f(0xe9)],'target':toPublicServiceTreeTarget(_0x3246da[_0x53788f(0xf6)]),'flags':_0x3246da[_0x53788f(0x107)][_0x53788f(0x117)](_0x3e61ac=>({'name':_0x3e61ac[_0x53788f(0xe4)],'cliName':_0x3e61ac[_0x53788f(0x108)],'type':_0x3e61ac[_0x53788f(0x110)],'required':_0x3e61ac['required']===!![]}))}))};}function summarizeLoadedManifest(_0x55e2a9){const _0x1455de=a62_0x4078be;return{'service':_0x55e2a9[_0x1455de(0x104)]?.[_0x1455de(0xfa)],'version':_0x55e2a9['normalizedManifest']?.[_0x1455de(0x11a)],'commandCount':_0x55e2a9['normalizedManifest']?.['commands'][_0x1455de(0xdc)]??0x0,'commands':_0x55e2a9['normalizedManifest']?.[_0x1455de(0xfc)][_0x1455de(0x117)](_0x5ecbf7=>({'path':_0x5ecbf7[_0x1455de(0x105)],'risk':_0x5ecbf7[_0x1455de(0xe9)],'target':toPublicServiceTreeTarget(_0x5ecbf7['target'])}))??[],'registryIndex':_0x55e2a9['registryIndex'],'registryServiceCode':_0x55e2a9[_0x1455de(0xea)],'errors':_0x55e2a9[_0x1455de(0x111)][_0x1455de(0x10e)],'warnings':_0x55e2a9[_0x1455de(0x111)][_0x1455de(0xf7)]};}export const serviceDefinitions=[{'service':a62_0x4078be(0xfa),'command':a62_0x4078be(0xd6),'description':a62_0x4078be(0xd4),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x503e19){const _0x2203f5=a62_0x4078be,_0x1bcab3=loadServiceManifestFromFile(_0x503e19[_0x2203f5(0xe7)]('file'));if(!_0x1bcab3[_0x2203f5(0x111)]['ok'])return{'ok':![],'data':{'file':_0x1bcab3['filePath'],'hash':_0x1bcab3[_0x2203f5(0xd7)],'kind':_0x1bcab3[_0x2203f5(0xfd)],'serviceCount':_0x1bcab3[_0x2203f5(0xdb)][_0x2203f5(0xdc)],'services':_0x1bcab3[_0x2203f5(0xdb)]['map'](summarizeLoadedManifest),'errors':_0x1bcab3[_0x2203f5(0x111)]['errors'],'warnings':_0x1bcab3['report'][_0x2203f5(0xf7)]},'message':formatValidationFailure(_0x1bcab3[_0x2203f5(0x111)])};if(_0x1bcab3[_0x2203f5(0xfd)]==='registry'||_0x1bcab3[_0x2203f5(0xdb)][_0x2203f5(0xdc)]!==0x1)return{'ok':!![],'data':{'file':_0x1bcab3[_0x2203f5(0xe6)],'hash':_0x1bcab3[_0x2203f5(0xd7)],'kind':_0x1bcab3[_0x2203f5(0xfd)],'serviceCount':_0x1bcab3[_0x2203f5(0xdb)][_0x2203f5(0xdc)],'commandCount':_0x1bcab3['manifests'][_0x2203f5(0xd5)]((_0x3175bd,_0xdb51ae)=>_0x3175bd+(_0xdb51ae[_0x2203f5(0x104)]?.['commands'][_0x2203f5(0xdc)]??0x0),0x0),'services':_0x1bcab3['manifests'][_0x2203f5(0x117)](summarizeLoadedManifest),'warnings':_0x1bcab3['report'][_0x2203f5(0xf7)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x1bcab3[_0x2203f5(0xe6)],'hash':_0x1bcab3[_0x2203f5(0xd7)],'kind':_0x1bcab3[_0x2203f5(0xfd)],'service':_0x1bcab3[_0x2203f5(0x104)]?.[_0x2203f5(0xfa)],'version':_0x1bcab3[_0x2203f5(0x104)]?.['version'],'commandCount':_0x1bcab3[_0x2203f5(0x104)]?.['commands']['length']??0x0,'commands':_0x1bcab3[_0x2203f5(0x104)]?.[_0x2203f5(0xfc)]['map'](_0x5cd654=>({'path':_0x5cd654[_0x2203f5(0x105)],'risk':_0x5cd654[_0x2203f5(0xe9)],'target':toPublicServiceTreeTarget(_0x5cd654['target'])})),'warnings':_0x1bcab3[_0x2203f5(0x111)][_0x2203f5(0xf7)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a62_0x4078be(0xfa),'command':a62_0x4078be(0xee),'description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':'write','confirmationDescription':'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.','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x2c75df){const _0x5b14fe=a62_0x4078be,_0x5aaaca=loadServiceManifestFromFile(_0x2c75df[_0x5b14fe(0xe7)](_0x5b14fe(0x10b)));return{'method':_0x5b14fe(0xda),'url':getServiceRegistryPath(),'body':{'file':_0x5aaaca[_0x5b14fe(0xe6)],'hash':_0x5aaaca[_0x5b14fe(0xd7)],'kind':_0x5aaaca[_0x5b14fe(0xfd)],'ok':_0x5aaaca[_0x5b14fe(0x111)]['ok'],'service':_0x5aaaca['normalizedManifest']?.[_0x5b14fe(0xfa)],'version':_0x5aaaca['normalizedManifest']?.[_0x5b14fe(0x11a)],'serviceCount':_0x5aaaca[_0x5b14fe(0xdb)]['length'],'services':_0x5aaaca[_0x5b14fe(0xdb)]['map'](_0x3f9ade=>({'service':_0x3f9ade[_0x5b14fe(0x104)]?.['service'],'version':_0x3f9ade[_0x5b14fe(0x104)]?.[_0x5b14fe(0x11a)],'commandCount':_0x3f9ade[_0x5b14fe(0x104)]?.[_0x5b14fe(0xfc)]['length']??0x0,'errors':_0x3f9ade[_0x5b14fe(0x111)]['errors']})),'errors':_0x5aaaca[_0x5b14fe(0x111)][_0x5b14fe(0x10e)],'commandCount':_0x5aaaca[_0x5b14fe(0x104)]?.['commands']['length']??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x4bc7eb){const _0x4d705e=a62_0x4078be,_0x4d81c5=importServiceManifest(_0x4bc7eb[_0x4d705e(0xe7)](_0x4d705e(0x10b)));if(_0x4d81c5[_0x4d705e(0xf8)][_0x4d705e(0xdc)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x4d81c5[_0x4d705e(0x113)],'imported':_0x4d81c5[_0x4d705e(0x10f)],'updated':_0x4d81c5[_0x4d705e(0xe1)],'serviceCount':_0x4d81c5[_0x4d705e(0x103)],'services':_0x4d81c5[_0x4d705e(0xf8)]['map'](summarizeService)},'message':_0x4d705e(0x102)+_0x4d81c5[_0x4d705e(0x10f)]+'\x20service(s),\x20updated\x20'+_0x4d81c5[_0x4d705e(0xe1)]+_0x4d705e(0x10d)};return{'ok':!![],'data':{'registryPath':_0x4d81c5[_0x4d705e(0x113)],'replaced':_0x4d81c5['replaced'],'imported':_0x4d81c5[_0x4d705e(0x10f)],'updated':_0x4d81c5[_0x4d705e(0xe1)],'serviceCount':_0x4d81c5[_0x4d705e(0x103)],'service':summarizeService(_0x4d81c5[_0x4d705e(0x101)])},'message':(_0x4d81c5[_0x4d705e(0xe3)]?'Updated':_0x4d705e(0xe8))+'\x20service\x20'+_0x4d81c5[_0x4d705e(0x101)][_0x4d705e(0xed)]+'.'};}},{'service':a62_0x4078be(0xfa),'command':a62_0x4078be(0xde),'description':a62_0x4078be(0xf1),'risk':a62_0x4078be(0x116),'confirmationDescription':a62_0x4078be(0xf5),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x1be4fa){const _0x5b586a=a62_0x4078be,_0x2bb162=getLocalServiceEntry(_0x1be4fa[_0x5b586a(0xe7)](_0x5b586a(0xfa)));return{'method':_0x5b586a(0xda),'url':_0x1be4fa[_0x5b586a(0xe7)](_0x5b586a(0x10b)),'body':{'service':_0x1be4fa[_0x5b586a(0xe7)]('service'),'found':Boolean(_0x2bb162),'version':_0x2bb162?.[_0x5b586a(0x11a)],'source':_0x2bb162?.['source']},'description':_0x5b586a(0x114)};},async 'execute'(_0x242a28){const _0x16aaea=a62_0x4078be,_0x565d53=exportServiceManifest(_0x242a28[_0x16aaea(0xe7)]('service'),_0x242a28[_0x16aaea(0xe7)](_0x16aaea(0x10b)));return{'ok':!![],'data':{'registryPath':_0x565d53[_0x16aaea(0x113)],'file':_0x565d53[_0x16aaea(0xe6)],'service':summarizeService(_0x565d53['entry'])},'message':_0x16aaea(0xf9)+_0x565d53[_0x16aaea(0x101)][_0x16aaea(0xed)]+'.'};}},{'service':a62_0x4078be(0xfa),'command':a62_0x4078be(0xfb),'description':a62_0x4078be(0xd3),'risk':a62_0x4078be(0xe5),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x1819c6=a62_0x4078be,_0x3249c0=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x3249c0['length'],'services':_0x3249c0[_0x1819c6(0x117)](summarizeService)}};}},{'service':a62_0x4078be(0xfa),'command':a62_0x4078be(0xdf),'description':a62_0x4078be(0x112),'risk':a62_0x4078be(0x116),'confirmationDescription':'Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x15af3b){const _0x64e78e=a62_0x4078be,_0x1a82ab=getLocalServiceEntry(_0x15af3b['str'](_0x64e78e(0xfa)));return{'method':_0x64e78e(0xda),'url':getServiceRegistryPath(),'body':{'service':_0x15af3b[_0x64e78e(0xe7)](_0x64e78e(0xfa)),'found':Boolean(_0x1a82ab),'version':_0x1a82ab?.['version'],'source':_0x1a82ab?.[_0x64e78e(0xe0)]},'description':_0x64e78e(0x109)};},async 'execute'(_0x2c8cbf){const _0x4a543f=a62_0x4078be,_0x2ac1c6=removeServiceManifest(_0x2c8cbf[_0x4a543f(0xe7)](_0x4a543f(0xfa)));return{'ok':!![],'data':{'registryPath':_0x2ac1c6[_0x4a543f(0x113)],'serviceCount':_0x2ac1c6['serviceCount'],'service':summarizeService(_0x2ac1c6[_0x4a543f(0x101)])},'message':_0x4a543f(0xff)+_0x2ac1c6[_0x4a543f(0x101)][_0x4a543f(0xed)]+'.'};}},{'service':'service','command':a62_0x4078be(0x100),'description':a62_0x4078be(0xf3),'risk':a62_0x4078be(0xe5),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x51c852){const _0x12d5ca=a62_0x4078be,_0x2a23a6=getLocalServiceEntry(_0x51c852[_0x12d5ca(0xe7)](_0x12d5ca(0xfa)));if(!_0x2a23a6)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x51c852[_0x12d5ca(0xe7)]('service')},'message':'Local\x20service\x20not\x20found:\x20'+_0x51c852[_0x12d5ca(0xe7)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x2a23a6),'manifest':_0x2a23a6['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x2a23a6[_0x12d5ca(0x104)])}};}}];
1
+ const a62_0xba388b=a62_0x9cf6;(function(_0x4102ec,_0x413af9){const _0xfa27dc=a62_0x9cf6,_0x25b4c6=_0x4102ec();while(!![]){try{const _0x2d6a2c=parseInt(_0xfa27dc(0x214))/0x1*(parseInt(_0xfa27dc(0x222))/0x2)+-parseInt(_0xfa27dc(0x1fd))/0x3*(parseInt(_0xfa27dc(0x227))/0x4)+parseInt(_0xfa27dc(0x1ea))/0x5*(-parseInt(_0xfa27dc(0x216))/0x6)+-parseInt(_0xfa27dc(0x228))/0x7*(parseInt(_0xfa27dc(0x1ec))/0x8)+-parseInt(_0xfa27dc(0x1fc))/0x9+parseInt(_0xfa27dc(0x225))/0xa*(-parseInt(_0xfa27dc(0x1f6))/0xb)+parseInt(_0xfa27dc(0x1ed))/0xc;if(_0x2d6a2c===_0x413af9)break;else _0x25b4c6['push'](_0x25b4c6['shift']());}catch(_0x3769c5){_0x25b4c6['push'](_0x25b4c6['shift']());}}}(a62_0x2821,0x59b15));function a62_0x2821(){const _0x120dd7=['file','length','detail','2Vhsxnq','normalizedManifest','14754pFOmVF','Removed\x20service\x20','Updated','list','description','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','risk','write','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.','updated','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','cliName','12344gQIMBe','map','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','110DDlGtA','commands','400588JmlVUD','7ydWQrJ','kind','validate','read','entry','flags','service','lower\x20kebab-case\x20service\x20code','Imported\x20','registryServiceCode','importedAt','manifest','WRITE','manifests','registry','535JziDUQ','source','207608tkMClL','24067296QIJaOo','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','report','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.','target','type','warnings','errors','filePath','617276SFOfdJ','hash','string','serviceCount','version','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','5796756jmKWYU','3AFxKiR','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','\x20service\x20','cliPath','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','Service\x20Tree\x20manifest\x20file\x20path','Service\x20registry\x20validation\x20passed.','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','Service\x20manifest\x20validation\x20passed.','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','replaced','registryPath','serviceCode','str','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','reduce','name','export','Local\x20service\x20code,\x20for\x20example\x20crm','imported'];a62_0x2821=function(){return _0x120dd7;};return a62_0x2821();}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a62_0x9cf6(_0x2852bd,_0x30bf7f){_0x2852bd=_0x2852bd-0x1e9;const _0x282174=a62_0x2821();let _0x9cf6fd=_0x282174[_0x2852bd];return _0x9cf6fd;}import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a62_0xba388b(0x211),'type':a62_0xba388b(0x1f8),'required':!![],'description':a62_0xba388b(0x202)},SERVICE_FLAG={'name':'service','type':a62_0xba388b(0x1f8),'required':!![],'description':a62_0xba388b(0x20f),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0xba388b(0x22f)}};function summarizeService(_0x505d92){const _0x48d2f4=a62_0xba388b;return{'serviceCode':_0x505d92[_0x48d2f4(0x209)],'name':_0x505d92[_0x48d2f4(0x215)][_0x48d2f4(0x22e)][_0x48d2f4(0x20d)],'version':_0x505d92[_0x48d2f4(0x1fa)],'importedAt':_0x505d92[_0x48d2f4(0x232)],'source':_0x505d92[_0x48d2f4(0x1eb)],'commandCount':_0x505d92['normalizedManifest'][_0x48d2f4(0x226)]['length'],'commands':_0x505d92['normalizedManifest'][_0x48d2f4(0x226)][_0x48d2f4(0x223)](_0x29cd5a=>({'path':_0x29cd5a[_0x48d2f4(0x200)],'description':_0x29cd5a[_0x48d2f4(0x21a)],'risk':_0x29cd5a[_0x48d2f4(0x21c)],'target':toPublicServiceTreeTarget(_0x29cd5a[_0x48d2f4(0x1f1)]),'flags':_0x29cd5a[_0x48d2f4(0x22d)][_0x48d2f4(0x223)](_0x2efb78=>({'name':_0x2efb78[_0x48d2f4(0x20d)],'cliName':_0x2efb78[_0x48d2f4(0x221)],'type':_0x2efb78[_0x48d2f4(0x1f2)],'required':_0x2efb78['required']===!![]}))}))};}function summarizeLoadedManifest(_0x57d36d){const _0x35d2e6=a62_0xba388b;return{'service':_0x57d36d[_0x35d2e6(0x215)]?.[_0x35d2e6(0x22e)],'version':_0x57d36d[_0x35d2e6(0x215)]?.[_0x35d2e6(0x1fa)],'commandCount':_0x57d36d[_0x35d2e6(0x215)]?.[_0x35d2e6(0x226)][_0x35d2e6(0x212)]??0x0,'commands':_0x57d36d['normalizedManifest']?.['commands'][_0x35d2e6(0x223)](_0x3b6d3d=>({'path':_0x3b6d3d[_0x35d2e6(0x200)],'risk':_0x3b6d3d[_0x35d2e6(0x21c)],'target':toPublicServiceTreeTarget(_0x3b6d3d[_0x35d2e6(0x1f1)])}))??[],'registryIndex':_0x57d36d['registryIndex'],'registryServiceCode':_0x57d36d[_0x35d2e6(0x231)],'errors':_0x57d36d[_0x35d2e6(0x1ef)][_0x35d2e6(0x1f4)],'warnings':_0x57d36d['report'][_0x35d2e6(0x1f3)]};}export const serviceDefinitions=[{'service':a62_0xba388b(0x22e),'command':a62_0xba388b(0x22a),'description':a62_0xba388b(0x220),'risk':a62_0xba388b(0x22b),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x16d622){const _0x1326d7=a62_0xba388b,_0x29140d=loadServiceManifestFromFile(_0x16d622[_0x1326d7(0x20a)]('file'));if(!_0x29140d['report']['ok'])return{'ok':![],'data':{'file':_0x29140d[_0x1326d7(0x1f5)],'hash':_0x29140d['hash'],'kind':_0x29140d[_0x1326d7(0x229)],'serviceCount':_0x29140d[_0x1326d7(0x235)][_0x1326d7(0x212)],'services':_0x29140d['manifests'][_0x1326d7(0x223)](summarizeLoadedManifest),'errors':_0x29140d[_0x1326d7(0x1ef)][_0x1326d7(0x1f4)],'warnings':_0x29140d[_0x1326d7(0x1ef)][_0x1326d7(0x1f3)]},'message':formatValidationFailure(_0x29140d[_0x1326d7(0x1ef)])};if(_0x29140d[_0x1326d7(0x229)]===_0x1326d7(0x1e9)||_0x29140d[_0x1326d7(0x235)][_0x1326d7(0x212)]!==0x1)return{'ok':!![],'data':{'file':_0x29140d[_0x1326d7(0x1f5)],'hash':_0x29140d['hash'],'kind':_0x29140d['kind'],'serviceCount':_0x29140d['manifests'][_0x1326d7(0x212)],'commandCount':_0x29140d[_0x1326d7(0x235)][_0x1326d7(0x20c)]((_0x183eaf,_0x54ec87)=>_0x183eaf+(_0x54ec87['normalizedManifest']?.[_0x1326d7(0x226)]['length']??0x0),0x0),'services':_0x29140d[_0x1326d7(0x235)][_0x1326d7(0x223)](summarizeLoadedManifest),'warnings':_0x29140d['report'][_0x1326d7(0x1f3)]},'message':_0x1326d7(0x203)};return{'ok':!![],'data':{'file':_0x29140d[_0x1326d7(0x1f5)],'hash':_0x29140d['hash'],'kind':_0x29140d[_0x1326d7(0x229)],'service':_0x29140d[_0x1326d7(0x215)]?.[_0x1326d7(0x22e)],'version':_0x29140d[_0x1326d7(0x215)]?.['version'],'commandCount':_0x29140d[_0x1326d7(0x215)]?.['commands'][_0x1326d7(0x212)]??0x0,'commands':_0x29140d[_0x1326d7(0x215)]?.[_0x1326d7(0x226)]['map'](_0x116571=>({'path':_0x116571[_0x1326d7(0x200)],'risk':_0x116571[_0x1326d7(0x21c)],'target':toPublicServiceTreeTarget(_0x116571[_0x1326d7(0x1f1)])})),'warnings':_0x29140d[_0x1326d7(0x1ef)][_0x1326d7(0x1f3)]},'message':_0x1326d7(0x205)};}},{'service':a62_0xba388b(0x22e),'command':'import','description':a62_0xba388b(0x20b),'risk':a62_0xba388b(0x21d),'confirmationDescription':a62_0xba388b(0x21e),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0xde0fb){const _0x45eedb=a62_0xba388b,_0x145430=loadServiceManifestFromFile(_0xde0fb[_0x45eedb(0x20a)](_0x45eedb(0x211)));return{'method':_0x45eedb(0x234),'url':getServiceRegistryPath(),'body':{'file':_0x145430[_0x45eedb(0x1f5)],'hash':_0x145430[_0x45eedb(0x1f7)],'kind':_0x145430['kind'],'ok':_0x145430[_0x45eedb(0x1ef)]['ok'],'service':_0x145430[_0x45eedb(0x215)]?.[_0x45eedb(0x22e)],'version':_0x145430[_0x45eedb(0x215)]?.[_0x45eedb(0x1fa)],'serviceCount':_0x145430[_0x45eedb(0x235)][_0x45eedb(0x212)],'services':_0x145430['manifests']['map'](_0x30e96e=>({'service':_0x30e96e[_0x45eedb(0x215)]?.[_0x45eedb(0x22e)],'version':_0x30e96e[_0x45eedb(0x215)]?.[_0x45eedb(0x1fa)],'commandCount':_0x30e96e[_0x45eedb(0x215)]?.[_0x45eedb(0x226)][_0x45eedb(0x212)]??0x0,'errors':_0x30e96e[_0x45eedb(0x1ef)][_0x45eedb(0x1f4)]})),'errors':_0x145430[_0x45eedb(0x1ef)]['errors'],'commandCount':_0x145430['normalizedManifest']?.[_0x45eedb(0x226)][_0x45eedb(0x212)]??0x0},'description':_0x45eedb(0x201)};},async 'execute'(_0x502e9f){const _0x37fdd7=a62_0xba388b,_0x1b723c=importServiceManifest(_0x502e9f['str'](_0x37fdd7(0x211)));if(_0x1b723c['entries'][_0x37fdd7(0x212)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1b723c[_0x37fdd7(0x208)],'imported':_0x1b723c[_0x37fdd7(0x210)],'updated':_0x1b723c[_0x37fdd7(0x21f)],'serviceCount':_0x1b723c[_0x37fdd7(0x1f9)],'services':_0x1b723c['entries'][_0x37fdd7(0x223)](summarizeService)},'message':_0x37fdd7(0x230)+_0x1b723c[_0x37fdd7(0x210)]+'\x20service(s),\x20updated\x20'+_0x1b723c['updated']+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x1b723c[_0x37fdd7(0x208)],'replaced':_0x1b723c[_0x37fdd7(0x207)],'imported':_0x1b723c['imported'],'updated':_0x1b723c[_0x37fdd7(0x21f)],'serviceCount':_0x1b723c[_0x37fdd7(0x1f9)],'service':summarizeService(_0x1b723c[_0x37fdd7(0x22c)])},'message':(_0x1b723c[_0x37fdd7(0x207)]?_0x37fdd7(0x218):'Imported')+_0x37fdd7(0x1ff)+_0x1b723c[_0x37fdd7(0x22c)]['serviceCode']+'.'};}},{'service':a62_0xba388b(0x22e),'command':a62_0xba388b(0x20e),'description':a62_0xba388b(0x1ee),'risk':a62_0xba388b(0x21d),'confirmationDescription':a62_0xba388b(0x1f0),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x4144e6){const _0x308289=a62_0xba388b,_0x3add5c=getLocalServiceEntry(_0x4144e6[_0x308289(0x20a)](_0x308289(0x22e)));return{'method':_0x308289(0x234),'url':_0x4144e6[_0x308289(0x20a)](_0x308289(0x211)),'body':{'service':_0x4144e6['str']('service'),'found':Boolean(_0x3add5c),'version':_0x3add5c?.[_0x308289(0x1fa)],'source':_0x3add5c?.[_0x308289(0x1eb)]},'description':_0x308289(0x1fe)};},async 'execute'(_0x1ad5fb){const _0x5f0e60=a62_0xba388b,_0x577db9=exportServiceManifest(_0x1ad5fb[_0x5f0e60(0x20a)]('service'),_0x1ad5fb[_0x5f0e60(0x20a)]('file'));return{'ok':!![],'data':{'registryPath':_0x577db9[_0x5f0e60(0x208)],'file':_0x577db9[_0x5f0e60(0x1f5)],'service':summarizeService(_0x577db9[_0x5f0e60(0x22c)])},'message':'Exported\x20service\x20'+_0x577db9[_0x5f0e60(0x22c)][_0x5f0e60(0x209)]+'.'};}},{'service':a62_0xba388b(0x22e),'command':a62_0xba388b(0x219),'description':a62_0xba388b(0x224),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0xfef007=a62_0xba388b,_0x2a510c=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x2a510c['length'],'services':_0x2a510c[_0xfef007(0x223)](summarizeService)}};}},{'service':a62_0xba388b(0x22e),'command':'remove','description':a62_0xba388b(0x204),'risk':'write','confirmationDescription':a62_0xba388b(0x21b),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x5c2d27){const _0x5a3fb4=a62_0xba388b,_0x550793=getLocalServiceEntry(_0x5c2d27['str'](_0x5a3fb4(0x22e)));return{'method':_0x5a3fb4(0x234),'url':getServiceRegistryPath(),'body':{'service':_0x5c2d27['str'](_0x5a3fb4(0x22e)),'found':Boolean(_0x550793),'version':_0x550793?.[_0x5a3fb4(0x1fa)],'source':_0x550793?.[_0x5a3fb4(0x1eb)]},'description':_0x5a3fb4(0x206)};},async 'execute'(_0x391ace){const _0x302903=a62_0xba388b,_0x532919=removeServiceManifest(_0x391ace[_0x302903(0x20a)](_0x302903(0x22e)));return{'ok':!![],'data':{'registryPath':_0x532919[_0x302903(0x208)],'serviceCount':_0x532919[_0x302903(0x1f9)],'service':summarizeService(_0x532919[_0x302903(0x22c)])},'message':_0x302903(0x217)+_0x532919[_0x302903(0x22c)][_0x302903(0x209)]+'.'};}},{'service':a62_0xba388b(0x22e),'command':a62_0xba388b(0x213),'description':a62_0xba388b(0x1fb),'risk':a62_0xba388b(0x22b),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x2adca6){const _0x166c52=a62_0xba388b,_0x30ce29=getLocalServiceEntry(_0x2adca6['str']('service'));if(!_0x30ce29)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x2adca6[_0x166c52(0x20a)]('service')},'message':'Local\x20service\x20not\x20found:\x20'+_0x2adca6[_0x166c52(0x20a)](_0x166c52(0x22e))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x30ce29),'manifest':_0x30ce29[_0x166c52(0x233)],'normalizedManifest':toPublicNormalizedServiceTree(_0x30ce29[_0x166c52(0x215)])}};}}];
@@ -1 +1 @@
1
- const a63_0xe12cb7=a63_0x4879;(function(_0x4ac71c,_0x2e57fd){const _0x1d0db2=a63_0x4879,_0x154c48=_0x4ac71c();while(!![]){try{const _0x429bc7=-parseInt(_0x1d0db2(0x11e))/0x1+-parseInt(_0x1d0db2(0x119))/0x2+-parseInt(_0x1d0db2(0x148))/0x3+parseInt(_0x1d0db2(0x11f))/0x4*(parseInt(_0x1d0db2(0x103))/0x5)+-parseInt(_0x1d0db2(0x138))/0x6*(-parseInt(_0x1d0db2(0x144))/0x7)+parseInt(_0x1d0db2(0x10b))/0x8*(-parseInt(_0x1d0db2(0x13b))/0x9)+-parseInt(_0x1d0db2(0x118))/0xa*(-parseInt(_0x1d0db2(0x156))/0xb);if(_0x429bc7===_0x2e57fd)break;else _0x154c48['push'](_0x154c48['shift']());}catch(_0x33d9f2){_0x154c48['push'](_0x154c48['shift']());}}}(a63_0x150c,0x20f90));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a63_0xe12cb7(0x13a);export function getServiceRegistryPath(_0x251b2f={}){const _0x16b876=a63_0xe12cb7;return resolve(_0x251b2f[_0x16b876(0x12d)]??homedir(),PRODUCT_CONFIG[_0x16b876(0x136)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x212662={}){const _0x503326=a63_0xe12cb7,_0x274cdc=getServiceRegistryPath(_0x212662);if(!existsSync(_0x274cdc))return emptyServiceRegistry();try{const _0x5eefb2=readFileSync(_0x274cdc,_0x503326(0x123));if(!_0x5eefb2[_0x503326(0x104)]())return emptyServiceRegistry();const _0xbdaa41=JSON[_0x503326(0x110)](_0x5eefb2);if(_0xbdaa41[_0x503326(0x126)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x503326(0x130)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0xbdaa41[_0x503326(0x126)]),_0x503326(0x112)+_0x274cdc+'.');if(!Array[_0x503326(0x108)](_0xbdaa41[_0x503326(0x146)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xbdaa41[_0x503326(0x13e)],'services':_0xbdaa41[_0x503326(0x146)]};}catch(_0x47671e){if(_0x47671e instanceof Error&&_0x47671e[_0x503326(0x129)]===_0x503326(0x117))throw _0x47671e;throw CliErrors['validation']('Invalid\x20service\x20registry\x20JSON:\x20'+_0x274cdc,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x574a51,_0x561b10={}){const _0x3c0164=a63_0xe12cb7,_0x55133c=getServiceRegistryPath(_0x561b10),_0x5e9d66=dirname(_0x55133c);!existsSync(_0x5e9d66)&&mkdirSync(_0x5e9d66,{'recursive':!![]});const _0xf6b067=_0x55133c+_0x3c0164(0x125);try{writeFileSync(_0xf6b067,JSON[_0x3c0164(0x141)](_0x574a51,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0xf6b067,_0x55133c);}catch(_0x483b43){try{unlinkSync(_0xf6b067);}catch{}if(_0x483b43?.[_0x3c0164(0x150)]===_0x3c0164(0x154))throw CliErrors[_0x3c0164(0x130)]('Cannot\x20write\x20service\x20registry:\x20'+_0x55133c);throw _0x483b43;}return _0x55133c;}export function loadServiceManifestFromFile(_0x1c03aa){const _0x589673=a63_0xe12cb7,_0x41688d=resolve(_0x1c03aa);if(!existsSync(_0x41688d))throw CliErrors[_0x589673(0x130)](_0x589673(0x143)+_0x1c03aa);let _0x51705a;const _0x225e7e=readFileSync(_0x41688d,_0x589673(0x123));try{_0x51705a=JSON[_0x589673(0x110)](_0x225e7e);}catch{throw CliErrors[_0x589673(0x130)]('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x1c03aa,_0x589673(0x10c));}const _0xd01dfc=sha256(_0x225e7e),_0x172a7e=extractLoadedServiceManifests(_0x51705a,_0xd01dfc),_0x1a7bc4=aggregateValidationReports(_0x172a7e),_0x575fc5=_0x172a7e[0x0];return{'filePath':_0x41688d,'hash':_0xd01dfc,'kind':isServiceRegistryLike(_0x51705a)?_0x589673(0x128):'manifest','manifest':_0x575fc5?.[_0x589673(0x10f)]??_0x51705a,'report':_0x1a7bc4,'normalizedManifest':_0x172a7e[_0x589673(0x10e)]===0x1?_0x575fc5?.[_0x589673(0x121)]:undefined,'manifests':_0x172a7e};}export function importServiceManifest(_0x2abd48,_0x5bb3e6={}){const _0x263bfe=a63_0xe12cb7,_0x187379=loadServiceManifestFromFile(_0x2abd48);if(!_0x187379['report']['ok'])throw CliErrors['validation'](formatValidationFailure(_0x187379[_0x263bfe(0x147)]),_0x263bfe(0x14c));if(_0x187379[_0x263bfe(0x12b)][_0x263bfe(0x10e)]===0x0)throw CliErrors[_0x263bfe(0x130)](_0x263bfe(0x111),_0x263bfe(0x11c));const _0x2c4f2c=readServiceRegistry(_0x5bb3e6),_0x411ed5=(_0x5bb3e6[_0x263bfe(0x149)]??(()=>new Date()))()[_0x263bfe(0x13c)](),_0x475902=[];let _0x3c26b5=0x0,_0x4f882a=0x0;for(const _0x714a05 of _0x187379[_0x263bfe(0x12b)]){if(!_0x714a05[_0x263bfe(0x121)])continue;const _0x18d25d=_0x714a05['normalizedManifest'][_0x263bfe(0x152)]['code'],_0x2d4408={'serviceCode':_0x18d25d,'version':_0x714a05[_0x263bfe(0x121)][_0x263bfe(0x12c)],'importedAt':_0x411ed5,'source':{'type':_0x263bfe(0x11d),'path':_0x187379[_0x263bfe(0x14f)],'hash':_0x714a05[_0x263bfe(0x134)]},'manifest':_0x714a05[_0x263bfe(0x10f)],'normalizedManifest':_0x714a05[_0x263bfe(0x121)]},_0x1fe004=_0x2c4f2c[_0x263bfe(0x146)][_0x263bfe(0x12a)](_0x57aebb=>_0x57aebb[_0x263bfe(0x14b)]===_0x18d25d);_0x1fe004>=0x0?(_0x2c4f2c[_0x263bfe(0x146)][_0x1fe004]=_0x2d4408,_0x4f882a++):(_0x2c4f2c[_0x263bfe(0x146)][_0x263bfe(0x106)](_0x2d4408),_0x3c26b5++),_0x475902[_0x263bfe(0x106)](_0x2d4408);}_0x2c4f2c['services'][_0x263bfe(0x14d)]((_0x442930,_0x351d7c)=>_0x442930['serviceCode'][_0x263bfe(0x13d)](_0x351d7c['serviceCode'])),_0x2c4f2c[_0x263bfe(0x13e)]=_0x411ed5;const _0x2c39aa=writeServiceRegistry(_0x2c4f2c,_0x5bb3e6);return{'registryPath':_0x2c39aa,'entry':_0x475902[0x0],'replaced':_0x475902[_0x263bfe(0x10e)]===0x1?_0x4f882a===0x1:_0x4f882a>0x0,'entries':_0x475902,'imported':_0x3c26b5,'updated':_0x4f882a,'serviceCount':_0x2c4f2c[_0x263bfe(0x146)][_0x263bfe(0x10e)]};}function a63_0x150c(){const _0x1cb5c4=['sort','splice','filePath','code','path','service','description','ENOENT','message','55oQBHMG','295005fomMRc','trim','target','push','kind','isArray','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','commands','16qJMWQH','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','join','length','manifest','parse','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','Remove\x20or\x20migrate\x20','invalid','commandCount','find','flatMap','CliError','1537600CrYeSZ','280400AUPIEI','hex','source','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','file','119973ogEbIA','4DbagFh','$.services[','normalizedManifest','].manifest','utf8','empty','.tmp','schemaVersion','registryIndex','registry','name','findIndex','manifests','version','homeDir','startsWith','].manifest.','validation','Local\x20service\x20not\x20found:\x20','errors','importedAt','sourceHash','cliPath','homeDirName','services\x20must\x20be\x20an\x20array','6yaUhjl','string','service.json','1074204RlBFwj','toISOString','localeCompare','updatedAt','warnings','Service\x20manifest\x20validation\x20failed:\x0a','stringify','risk','Service\x20manifest\x20file\x20not\x20found:\x20','518847BEsPZU','map','services','report','803943dnUeya','now','missing','serviceCode','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.'];a63_0x150c=function(){return _0x1cb5c4;};return a63_0x150c();}export function exportServiceManifest(_0x1d8aa4,_0x505e5d,_0x37975b={}){const _0x1ba897=a63_0xe12cb7,_0x59a14c=getServiceRegistryPath(_0x37975b),_0x48d4a4=getLocalServiceEntry(_0x1d8aa4,_0x37975b);if(!_0x48d4a4)throw CliErrors[_0x1ba897(0x130)](_0x1ba897(0x131)+_0x1d8aa4,_0x1ba897(0x109));const _0x369098=resolve(_0x505e5d),_0x4baa88=dirname(_0x369098);return!existsSync(_0x4baa88)&&mkdirSync(_0x4baa88,{'recursive':!![]}),writeFileSync(_0x369098,JSON['stringify'](_0x48d4a4['manifest'],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x59a14c,'filePath':_0x369098,'entry':_0x48d4a4};}function a63_0x4879(_0x2629e7,_0x360a52){_0x2629e7=_0x2629e7-0x103;const _0x150c20=a63_0x150c();let _0x48795d=_0x150c20[_0x2629e7];return _0x48795d;}export function removeServiceManifest(_0x11a009,_0xa739fc={}){const _0x383012=a63_0xe12cb7,_0x24474a=readServiceRegistry(_0xa739fc),_0x3e4621=_0x11a009[_0x383012(0x104)](),_0x47b6ad=_0x24474a[_0x383012(0x146)][_0x383012(0x12a)](_0x1e5376=>_0x1e5376[_0x383012(0x14b)]===_0x3e4621);if(_0x47b6ad<0x0)throw CliErrors[_0x383012(0x130)]('Local\x20service\x20not\x20found:\x20'+_0x3e4621,_0x383012(0x109));const [_0xc051b2]=_0x24474a[_0x383012(0x146)][_0x383012(0x14e)](_0x47b6ad,0x1),_0x44c461=(_0xa739fc['now']??(()=>new Date()))()[_0x383012(0x13c)]();_0x24474a['updatedAt']=_0x44c461;const _0x308a82=writeServiceRegistry(_0x24474a,_0xa739fc);return{'registryPath':_0x308a82,'entry':_0xc051b2,'serviceCount':_0x24474a[_0x383012(0x146)][_0x383012(0x10e)]};}export function listLocalServices(_0x42978d={}){const _0x1a07c8=a63_0xe12cb7;return readServiceRegistry(_0x42978d)[_0x1a07c8(0x146)];}export function getLocalServiceEntry(_0x468efb,_0x2885c9={}){const _0x2985ab=a63_0xe12cb7;return readServiceRegistry(_0x2885c9)[_0x2985ab(0x146)][_0x2985ab(0x115)](_0x4ad9f5=>_0x4ad9f5[_0x2985ab(0x14b)]===_0x468efb['trim']());}export function listLocalServiceTrees(_0x40a912={}){const _0x2f6f83=a63_0xe12cb7;return readServiceRegistry(_0x40a912)['services'][_0x2f6f83(0x145)](_0x244bb1=>_0x244bb1[_0x2f6f83(0x121)]);}export function inspectServiceRegistry(_0x3825a1={}){const _0x3037aa=a63_0xe12cb7,_0x1d6a37=getServiceRegistryPath(_0x3825a1);if(!existsSync(_0x1d6a37))return emptyServiceRegistryInspection(_0x1d6a37,_0x3037aa(0x14a),![]);try{const _0x33d7ac=readFileSync(_0x1d6a37,_0x3037aa(0x123));if(!_0x33d7ac[_0x3037aa(0x104)]())return emptyServiceRegistryInspection(_0x1d6a37,_0x3037aa(0x124),!![]);const _0xd6f593=JSON[_0x3037aa(0x110)](_0x33d7ac);if(_0xd6f593[_0x3037aa(0x126)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x1d6a37,_0x3037aa(0x113),!![]),'schemaVersion':_0xd6f593[_0x3037aa(0x126)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0xd6f593['schemaVersion'])};if(!Array[_0x3037aa(0x108)](_0xd6f593[_0x3037aa(0x146)]))return{...emptyServiceRegistryInspection(_0x1d6a37,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xd6f593[_0x3037aa(0x13e)],'message':_0x3037aa(0x137)};const _0x154d69=_0xd6f593[_0x3037aa(0x146)][_0x3037aa(0x145)](summarizeLocalServiceEntry);return{'registryPath':_0x1d6a37,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xd6f593[_0x3037aa(0x13e)],'serviceCount':_0x154d69[_0x3037aa(0x10e)],'commandCount':_0x154d69['reduce']((_0x7a3988,_0x16618b)=>_0x7a3988+_0x16618b[_0x3037aa(0x114)],0x0),'services':_0x154d69};}catch(_0x4d320a){return{...emptyServiceRegistryInspection(_0x1d6a37,_0x3037aa(0x113),!![]),'message':_0x4d320a instanceof Error?_0x4d320a[_0x3037aa(0x155)]:String(_0x4d320a)};}}export function formatValidationFailure(_0x41dfa7){const _0x403a44=a63_0xe12cb7,_0x27a304=_0x41dfa7[_0x403a44(0x132)]['map'](_0x362d7e=>_0x362d7e[_0x403a44(0x151)]+':\x20'+_0x362d7e[_0x403a44(0x155)]);return _0x403a44(0x140)+_0x27a304[_0x403a44(0x10d)]('\x0a');}function extractLoadedServiceManifests(_0x5bf83b,_0x2b4f65){const _0x36724e=a63_0xe12cb7;if(!isServiceRegistryLike(_0x5bf83b)){const _0x4a168c=_0x5bf83b,{manifest:_0x1342ee,errors:_0x3bbb3f}=adaptServiceTreeManifestForLegacyFramework(_0x4a168c),_0x1158a1=validateServiceTreeManifest(_0x1342ee),_0x4edd3c=mergeValidationErrors(_0x1158a1,_0x3bbb3f);return[{'manifest':_0x4a168c,'report':_0x4edd3c,'normalizedManifest':_0x4edd3c['ok']?normalizeServiceTreeManifest(_0x1342ee):undefined,'sourceHash':_0x2b4f65}];}return _0x5bf83b[_0x36724e(0x146)][_0x36724e(0x145)]((_0x4ff976,_0x19e188)=>{const _0x46093d=_0x36724e,_0x3821c5=isObjectRecord(_0x4ff976)?_0x4ff976[_0x46093d(0x10f)]:undefined,{manifest:_0x5a6241,errors:_0x5e7dec}=adaptServiceTreeManifestForLegacyFramework(_0x3821c5),_0x1c3495=validateServiceTreeManifest(_0x5a6241),_0x164e76=mergeValidationErrors(_0x1c3495,_0x5e7dec),_0x18d44a=isObjectRecord(_0x4ff976)&&typeof _0x4ff976[_0x46093d(0x14b)]===_0x46093d(0x139)?_0x4ff976[_0x46093d(0x14b)]:undefined;return{'manifest':_0x3821c5,'report':_0x164e76,'normalizedManifest':_0x164e76['ok']?normalizeServiceTreeManifest(_0x5a6241):undefined,'sourceHash':sha256(JSON[_0x46093d(0x141)](_0x3821c5,null,0x2)+'\x0a'),'registryIndex':_0x19e188,'registryServiceCode':_0x18d44a};});}function mergeValidationErrors(_0x32c843,_0x56e6cd){const _0x13521d=a63_0xe12cb7,_0x2bc328=_0x32c843[_0x13521d(0x132)][_0x13521d(0x145)](_0x8dce27=>_0x8dce27[_0x13521d(0x155)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x8dce27,'message':'bff\x20target\x20requires\x20functionName.'}:_0x8dce27),_0x51f885=[..._0x56e6cd,..._0x2bc328];return{'ok':_0x51f885[_0x13521d(0x10e)]===0x0,'errors':_0x51f885,'warnings':_0x32c843['warnings']};}function aggregateValidationReports(_0x2eb406){const _0x1c2d33=a63_0xe12cb7,_0x11435a=_0x2eb406['flatMap'](_0x381cad=>_0x381cad['registryIndex']===undefined?_0x381cad['report'][_0x1c2d33(0x132)]:_0x381cad['report']['errors']['map'](_0x529f60=>({..._0x529f60,'path':prefixRegistryIssuePath(_0x381cad[_0x1c2d33(0x127)],_0x529f60[_0x1c2d33(0x151)])}))),_0x2a043d=_0x2eb406[_0x1c2d33(0x116)](_0x5ae762=>_0x5ae762[_0x1c2d33(0x127)]===undefined?_0x5ae762[_0x1c2d33(0x147)][_0x1c2d33(0x13f)]:_0x5ae762[_0x1c2d33(0x147)][_0x1c2d33(0x13f)][_0x1c2d33(0x145)](_0x238223=>({..._0x238223,'path':prefixRegistryIssuePath(_0x5ae762['registryIndex'],_0x238223[_0x1c2d33(0x151)])})));return{'ok':_0x11435a['length']===0x0,'errors':_0x11435a,'warnings':_0x2a043d};}function prefixRegistryIssuePath(_0x542148,_0x1bf238){const _0x1841bb=a63_0xe12cb7;if(_0x1bf238==='$')return _0x1841bb(0x120)+_0x542148+_0x1841bb(0x122);if(_0x1bf238[_0x1841bb(0x12e)]('$.'))return'$.services['+_0x542148+_0x1841bb(0x122)+_0x1bf238['slice'](0x1);if(_0x1bf238[_0x1841bb(0x12e)]('$['))return _0x1841bb(0x120)+_0x542148+_0x1841bb(0x122)+_0x1bf238['slice'](0x1);return'$.services['+_0x542148+_0x1841bb(0x12f)+_0x1bf238;}function isServiceRegistryLike(_0x4381be){const _0x25134a=a63_0xe12cb7;return isObjectRecord(_0x4381be)&&_0x4381be[_0x25134a(0x126)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x25134a(0x108)](_0x4381be[_0x25134a(0x146)]);}function isObjectRecord(_0x358548){return Boolean(_0x358548)&&typeof _0x358548==='object'&&!Array['isArray'](_0x358548);}function emptyServiceRegistryInspection(_0x4c5a46,_0x582288,_0x1f3095){return{'registryPath':_0x4c5a46,'exists':_0x1f3095,'status':_0x582288,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x172fec){const _0x30c64f=a63_0xe12cb7,_0x3981e2=_0x172fec['normalizedManifest'],_0x3f4a06=_0x3981e2[_0x30c64f(0x10a)][_0x30c64f(0x145)](_0x324a24=>({'path':_0x324a24[_0x30c64f(0x135)],'description':_0x324a24['description'],'risk':_0x324a24[_0x30c64f(0x142)],'targetKind':_0x324a24[_0x30c64f(0x105)][_0x30c64f(0x107)],'targetCommand':_0x324a24[_0x30c64f(0x105)]['command']}));return{'serviceCode':_0x172fec[_0x30c64f(0x14b)],'name':_0x3981e2[_0x30c64f(0x152)][_0x30c64f(0x129)],'description':_0x3981e2['service'][_0x30c64f(0x153)],'version':_0x172fec[_0x30c64f(0x12c)],'importedAt':_0x172fec[_0x30c64f(0x133)],'source':_0x172fec[_0x30c64f(0x11b)],'commandCount':_0x3f4a06[_0x30c64f(0x10e)],'commands':_0x3f4a06};}function sha256(_0x175900){const _0x5c2716=a63_0xe12cb7;return createHash('sha256')['update'](_0x175900)['digest'](_0x5c2716(0x11a));}
1
+ (function(_0x6a205c,_0x1be0fe){const _0x4a0000=a63_0x3d1e,_0x54d3fd=_0x6a205c();while(!![]){try{const _0x3cb2bb=parseInt(_0x4a0000(0x1a4))/0x1+-parseInt(_0x4a0000(0x1f7))/0x2+parseInt(_0x4a0000(0x1b2))/0x3*(parseInt(_0x4a0000(0x1c4))/0x4)+parseInt(_0x4a0000(0x1b5))/0x5+-parseInt(_0x4a0000(0x1c6))/0x6*(parseInt(_0x4a0000(0x1d8))/0x7)+-parseInt(_0x4a0000(0x1a9))/0x8+parseInt(_0x4a0000(0x1ae))/0x9*(parseInt(_0x4a0000(0x1f1))/0xa);if(_0x3cb2bb===_0x1be0fe)break;else _0x54d3fd['push'](_0x54d3fd['shift']());}catch(_0x44b236){_0x54d3fd['push'](_0x54d3fd['shift']());}}}(a63_0x4cc4,0xd4a0c));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME='service.json';function a63_0x4cc4(){const _0x5e97f3=['1782905SjPGFY','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','description','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','parse','services\x20must\x20be\x20an\x20array','command','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','Remove\x20or\x20migrate\x20','manifests','length','serviceCode','splice','source','updatedAt','6040372XAyubn','version','79188HVEbMr','bff\x20target\x20requires\x20functionName.','importedAt','Service\x20manifest\x20validation\x20failed:\x0a','sha256','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','].manifest.','path','.tmp','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','service','flatMap','errors','map','code','commands','startsWith','services','658uLHVsb','message','name','validation','].manifest','hex','report','Invalid\x20service\x20manifest\x20JSON:\x20','CliError','string','filePath','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','Service\x20manifest\x20file\x20not\x20found:\x20','missing','kind','warnings','stringify','push','now','homeDir','Cannot\x20write\x20service\x20registry:\x20','target','findIndex','Unsupported\x20schemaVersion:\x20','invalid','3937420wWtXwe','schemaVersion','join','sort','manifest','sourceHash','1377360IzdfiK','Unsupported\x20service\x20registry\x20schemaVersion:\x20','reduce','slice','empty','update','registryIndex','object','256343ACokcT','cliPath','localeCompare','Local\x20service\x20not\x20found:\x20','$.services[','10332088HjmsKQ','utf8','find','file','normalizedManifest','45WbVpFA','Invalid\x20service\x20registry\x20JSON:\x20','trim','ENOENT','3NoBoZd','toISOString','isArray'];a63_0x4cc4=function(){return _0x5e97f3;};return a63_0x4cc4();}export function getServiceRegistryPath(_0x3d92ee={}){const _0x5ef5a5=a63_0x3d1e;return resolve(_0x3d92ee[_0x5ef5a5(0x1eb)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}function a63_0x3d1e(_0x1ecb44,_0x23043b){_0x1ecb44=_0x1ecb44-0x19d;const _0x4cc4a4=a63_0x4cc4();let _0x3d1edf=_0x4cc4a4[_0x1ecb44];return _0x3d1edf;}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x3e5525={}){const _0x503d93=a63_0x3d1e,_0x2ba3bb=getServiceRegistryPath(_0x3e5525);if(!existsSync(_0x2ba3bb))return emptyServiceRegistry();try{const _0x325447=readFileSync(_0x2ba3bb,_0x503d93(0x1aa));if(!_0x325447[_0x503d93(0x1b0)]())return emptyServiceRegistry();const _0x381d66=JSON['parse'](_0x325447);if(_0x381d66[_0x503d93(0x1f2)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x503d93(0x1db)](_0x503d93(0x19d)+String(_0x381d66[_0x503d93(0x1f2)]),_0x503d93(0x1bd)+_0x2ba3bb+'.');if(!Array[_0x503d93(0x1b4)](_0x381d66[_0x503d93(0x1d7)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x381d66[_0x503d93(0x1c3)],'services':_0x381d66[_0x503d93(0x1d7)]};}catch(_0xd7f4a3){if(_0xd7f4a3 instanceof Error&&_0xd7f4a3[_0x503d93(0x1da)]===_0x503d93(0x1e0))throw _0xd7f4a3;throw CliErrors[_0x503d93(0x1db)](_0x503d93(0x1af)+_0x2ba3bb,_0x503d93(0x1bc));}}export function writeServiceRegistry(_0x518bdc,_0x1e5295={}){const _0x2dcaa5=a63_0x3d1e,_0x5c27ab=getServiceRegistryPath(_0x1e5295),_0x1114ac=dirname(_0x5c27ab);!existsSync(_0x1114ac)&&mkdirSync(_0x1114ac,{'recursive':!![]});const _0x1eee40=_0x5c27ab+_0x2dcaa5(0x1ce);try{writeFileSync(_0x1eee40,JSON[_0x2dcaa5(0x1e8)](_0x518bdc,null,0x2)+'\x0a',{'encoding':_0x2dcaa5(0x1aa),'mode':0x180}),renameSync(_0x1eee40,_0x5c27ab);}catch(_0x7f2c47){try{unlinkSync(_0x1eee40);}catch{}if(_0x7f2c47?.[_0x2dcaa5(0x1d4)]===_0x2dcaa5(0x1b1))throw CliErrors[_0x2dcaa5(0x1db)](_0x2dcaa5(0x1ec)+_0x5c27ab);throw _0x7f2c47;}return _0x5c27ab;}export function loadServiceManifestFromFile(_0x1c82d7){const _0x223a6b=a63_0x3d1e,_0x4d4a0e=resolve(_0x1c82d7);if(!existsSync(_0x4d4a0e))throw CliErrors['validation'](_0x223a6b(0x1e4)+_0x1c82d7);let _0x4b3346;const _0x5d6cc3=readFileSync(_0x4d4a0e,_0x223a6b(0x1aa));try{_0x4b3346=JSON[_0x223a6b(0x1b9)](_0x5d6cc3);}catch{throw CliErrors[_0x223a6b(0x1db)](_0x223a6b(0x1df)+_0x1c82d7,_0x223a6b(0x1cf));}const _0x214719=sha256(_0x5d6cc3),_0x1d6326=extractLoadedServiceManifests(_0x4b3346,_0x214719),_0x3fcd3a=aggregateValidationReports(_0x1d6326),_0x3e9da5=_0x1d6326[0x0];return{'filePath':_0x4d4a0e,'hash':_0x214719,'kind':isServiceRegistryLike(_0x4b3346)?'registry':'manifest','manifest':_0x3e9da5?.[_0x223a6b(0x1f5)]??_0x4b3346,'report':_0x3fcd3a,'normalizedManifest':_0x1d6326[_0x223a6b(0x1bf)]===0x1?_0x3e9da5?.[_0x223a6b(0x1ad)]:undefined,'manifests':_0x1d6326};}export function importServiceManifest(_0x5c1d63,_0x3b6cbc={}){const _0x546929=a63_0x3d1e,_0x574826=loadServiceManifestFromFile(_0x5c1d63);if(!_0x574826[_0x546929(0x1de)]['ok'])throw CliErrors[_0x546929(0x1db)](formatValidationFailure(_0x574826[_0x546929(0x1de)]),_0x546929(0x1b8));if(_0x574826[_0x546929(0x1be)][_0x546929(0x1bf)]===0x0)throw CliErrors[_0x546929(0x1db)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x546929(0x1cb));const _0x4c6c01=readServiceRegistry(_0x3b6cbc),_0x355580=(_0x3b6cbc[_0x546929(0x1ea)]??(()=>new Date()))()[_0x546929(0x1b3)](),_0x44de96=[];let _0x38da2a=0x0,_0x4d28c3=0x0;for(const _0x1b6ca4 of _0x574826[_0x546929(0x1be)]){if(!_0x1b6ca4[_0x546929(0x1ad)])continue;const _0x3e307c=_0x1b6ca4[_0x546929(0x1ad)][_0x546929(0x1d0)][_0x546929(0x1d4)],_0x5abec6={'serviceCode':_0x3e307c,'version':_0x1b6ca4['normalizedManifest'][_0x546929(0x1c5)],'importedAt':_0x355580,'source':{'type':_0x546929(0x1ac),'path':_0x574826[_0x546929(0x1e2)],'hash':_0x1b6ca4[_0x546929(0x1f6)]},'manifest':_0x1b6ca4[_0x546929(0x1f5)],'normalizedManifest':_0x1b6ca4['normalizedManifest']},_0x2ef65c=_0x4c6c01[_0x546929(0x1d7)]['findIndex'](_0x1ecd58=>_0x1ecd58[_0x546929(0x1c0)]===_0x3e307c);_0x2ef65c>=0x0?(_0x4c6c01['services'][_0x2ef65c]=_0x5abec6,_0x4d28c3++):(_0x4c6c01[_0x546929(0x1d7)][_0x546929(0x1e9)](_0x5abec6),_0x38da2a++),_0x44de96['push'](_0x5abec6);}_0x4c6c01[_0x546929(0x1d7)][_0x546929(0x1f4)]((_0x5ce57e,_0x1d5d60)=>_0x5ce57e['serviceCode'][_0x546929(0x1a6)](_0x1d5d60[_0x546929(0x1c0)])),_0x4c6c01['updatedAt']=_0x355580;const _0x4dcb2c=writeServiceRegistry(_0x4c6c01,_0x3b6cbc);return{'registryPath':_0x4dcb2c,'entry':_0x44de96[0x0],'replaced':_0x44de96[_0x546929(0x1bf)]===0x1?_0x4d28c3===0x1:_0x4d28c3>0x0,'entries':_0x44de96,'imported':_0x38da2a,'updated':_0x4d28c3,'serviceCount':_0x4c6c01[_0x546929(0x1d7)]['length']};}export function exportServiceManifest(_0x465608,_0x53107a,_0x55406c={}){const _0x4df261=a63_0x3d1e,_0x4dd956=getServiceRegistryPath(_0x55406c),_0x2a8629=getLocalServiceEntry(_0x465608,_0x55406c);if(!_0x2a8629)throw CliErrors[_0x4df261(0x1db)](_0x4df261(0x1a7)+_0x465608,_0x4df261(0x1b6));const _0x547170=resolve(_0x53107a),_0x45a9d9=dirname(_0x547170);return!existsSync(_0x45a9d9)&&mkdirSync(_0x45a9d9,{'recursive':!![]}),writeFileSync(_0x547170,JSON['stringify'](_0x2a8629[_0x4df261(0x1f5)],null,0x2)+'\x0a',{'encoding':_0x4df261(0x1aa),'mode':0x180}),{'registryPath':_0x4dd956,'filePath':_0x547170,'entry':_0x2a8629};}export function removeServiceManifest(_0x403dbc,_0x372d6c={}){const _0x5a02e2=a63_0x3d1e,_0x3c0118=readServiceRegistry(_0x372d6c),_0x4d5fe9=_0x403dbc[_0x5a02e2(0x1b0)](),_0x589540=_0x3c0118[_0x5a02e2(0x1d7)][_0x5a02e2(0x1ee)](_0x47524a=>_0x47524a[_0x5a02e2(0x1c0)]===_0x4d5fe9);if(_0x589540<0x0)throw CliErrors[_0x5a02e2(0x1db)](_0x5a02e2(0x1a7)+_0x4d5fe9,_0x5a02e2(0x1b6));const [_0x29d712]=_0x3c0118[_0x5a02e2(0x1d7)][_0x5a02e2(0x1c1)](_0x589540,0x1),_0x2e3ada=(_0x372d6c['now']??(()=>new Date()))()['toISOString']();_0x3c0118[_0x5a02e2(0x1c3)]=_0x2e3ada;const _0x56859a=writeServiceRegistry(_0x3c0118,_0x372d6c);return{'registryPath':_0x56859a,'entry':_0x29d712,'serviceCount':_0x3c0118['services'][_0x5a02e2(0x1bf)]};}export function listLocalServices(_0x4df3e9={}){return readServiceRegistry(_0x4df3e9)['services'];}export function getLocalServiceEntry(_0x5535f5,_0x4cfae3={}){const _0x55f738=a63_0x3d1e;return readServiceRegistry(_0x4cfae3)[_0x55f738(0x1d7)][_0x55f738(0x1ab)](_0xc8edb1=>_0xc8edb1[_0x55f738(0x1c0)]===_0x5535f5[_0x55f738(0x1b0)]());}export function listLocalServiceTrees(_0xa42bc9={}){const _0x3023ec=a63_0x3d1e;return readServiceRegistry(_0xa42bc9)[_0x3023ec(0x1d7)][_0x3023ec(0x1d3)](_0x450661=>_0x450661[_0x3023ec(0x1ad)]);}export function inspectServiceRegistry(_0x3fd7ed={}){const _0x6038a8=a63_0x3d1e,_0x362250=getServiceRegistryPath(_0x3fd7ed);if(!existsSync(_0x362250))return emptyServiceRegistryInspection(_0x362250,_0x6038a8(0x1e5),![]);try{const _0x46c70c=readFileSync(_0x362250,_0x6038a8(0x1aa));if(!_0x46c70c[_0x6038a8(0x1b0)]())return emptyServiceRegistryInspection(_0x362250,_0x6038a8(0x1a0),!![]);const _0x14428b=JSON['parse'](_0x46c70c);if(_0x14428b['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x362250,_0x6038a8(0x1f0),!![]),'schemaVersion':_0x14428b[_0x6038a8(0x1f2)],'message':_0x6038a8(0x1ef)+String(_0x14428b['schemaVersion'])};if(!Array[_0x6038a8(0x1b4)](_0x14428b['services']))return{...emptyServiceRegistryInspection(_0x362250,_0x6038a8(0x1f0),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x14428b['updatedAt'],'message':_0x6038a8(0x1ba)};const _0x2e2d26=_0x14428b['services'][_0x6038a8(0x1d3)](summarizeLocalServiceEntry);return{'registryPath':_0x362250,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x14428b[_0x6038a8(0x1c3)],'serviceCount':_0x2e2d26[_0x6038a8(0x1bf)],'commandCount':_0x2e2d26[_0x6038a8(0x19e)]((_0x3f7398,_0x45afa2)=>_0x3f7398+_0x45afa2['commandCount'],0x0),'services':_0x2e2d26};}catch(_0x5c6971){return{...emptyServiceRegistryInspection(_0x362250,_0x6038a8(0x1f0),!![]),'message':_0x5c6971 instanceof Error?_0x5c6971[_0x6038a8(0x1d9)]:String(_0x5c6971)};}}export function formatValidationFailure(_0x356e41){const _0x340a76=a63_0x3d1e,_0x3029c7=_0x356e41[_0x340a76(0x1d2)][_0x340a76(0x1d3)](_0x4f832e=>_0x4f832e[_0x340a76(0x1cd)]+':\x20'+_0x4f832e['message']);return _0x340a76(0x1c9)+_0x3029c7[_0x340a76(0x1f3)]('\x0a');}function extractLoadedServiceManifests(_0x47d6fe,_0x3e4908){const _0x29bacd=a63_0x3d1e;if(!isServiceRegistryLike(_0x47d6fe)){const _0x19e3b2=_0x47d6fe,{manifest:_0x461b85,errors:_0x4a8f0c}=adaptServiceTreeManifestForLegacyFramework(_0x19e3b2),_0x24080d=validateServiceTreeManifest(_0x461b85),_0x771057=mergeValidationErrors(_0x24080d,_0x4a8f0c);return[{'manifest':_0x19e3b2,'report':_0x771057,'normalizedManifest':_0x771057['ok']?normalizeServiceTreeManifest(_0x461b85):undefined,'sourceHash':_0x3e4908}];}return _0x47d6fe[_0x29bacd(0x1d7)][_0x29bacd(0x1d3)]((_0x1977c1,_0x5839ce)=>{const _0x5586ca=_0x29bacd,_0x2fda70=isObjectRecord(_0x1977c1)?_0x1977c1[_0x5586ca(0x1f5)]:undefined,{manifest:_0x37796f,errors:_0x49d1df}=adaptServiceTreeManifestForLegacyFramework(_0x2fda70),_0x4ab013=validateServiceTreeManifest(_0x37796f),_0x1df018=mergeValidationErrors(_0x4ab013,_0x49d1df),_0x2a20f4=isObjectRecord(_0x1977c1)&&typeof _0x1977c1['serviceCode']===_0x5586ca(0x1e1)?_0x1977c1[_0x5586ca(0x1c0)]:undefined;return{'manifest':_0x2fda70,'report':_0x1df018,'normalizedManifest':_0x1df018['ok']?normalizeServiceTreeManifest(_0x37796f):undefined,'sourceHash':sha256(JSON[_0x5586ca(0x1e8)](_0x2fda70,null,0x2)+'\x0a'),'registryIndex':_0x5839ce,'registryServiceCode':_0x2a20f4};});}function mergeValidationErrors(_0x3efbc7,_0x95f612){const _0x2bea74=a63_0x3d1e,_0x3a401e=_0x3efbc7[_0x2bea74(0x1d2)][_0x2bea74(0x1d3)](_0x424e05=>_0x424e05[_0x2bea74(0x1d9)]===_0x2bea74(0x1e3)?{..._0x424e05,'message':_0x2bea74(0x1c7)}:_0x424e05),_0x5e22e5=[..._0x95f612,..._0x3a401e];return{'ok':_0x5e22e5[_0x2bea74(0x1bf)]===0x0,'errors':_0x5e22e5,'warnings':_0x3efbc7['warnings']};}function aggregateValidationReports(_0x2e5413){const _0x2ce941=a63_0x3d1e,_0x4b592c=_0x2e5413[_0x2ce941(0x1d1)](_0x160170=>_0x160170[_0x2ce941(0x1a2)]===undefined?_0x160170[_0x2ce941(0x1de)][_0x2ce941(0x1d2)]:_0x160170[_0x2ce941(0x1de)]['errors'][_0x2ce941(0x1d3)](_0x4971a2=>({..._0x4971a2,'path':prefixRegistryIssuePath(_0x160170[_0x2ce941(0x1a2)],_0x4971a2['path'])}))),_0x5e2adc=_0x2e5413[_0x2ce941(0x1d1)](_0x2d6e6c=>_0x2d6e6c[_0x2ce941(0x1a2)]===undefined?_0x2d6e6c['report'][_0x2ce941(0x1e7)]:_0x2d6e6c[_0x2ce941(0x1de)][_0x2ce941(0x1e7)][_0x2ce941(0x1d3)](_0x57b23e=>({..._0x57b23e,'path':prefixRegistryIssuePath(_0x2d6e6c[_0x2ce941(0x1a2)],_0x57b23e[_0x2ce941(0x1cd)])})));return{'ok':_0x4b592c[_0x2ce941(0x1bf)]===0x0,'errors':_0x4b592c,'warnings':_0x5e2adc};}function prefixRegistryIssuePath(_0x2666e0,_0x2e4d5a){const _0xabd49f=a63_0x3d1e;if(_0x2e4d5a==='$')return _0xabd49f(0x1a8)+_0x2666e0+'].manifest';if(_0x2e4d5a[_0xabd49f(0x1d6)]('$.'))return _0xabd49f(0x1a8)+_0x2666e0+_0xabd49f(0x1dc)+_0x2e4d5a[_0xabd49f(0x19f)](0x1);if(_0x2e4d5a[_0xabd49f(0x1d6)]('$['))return _0xabd49f(0x1a8)+_0x2666e0+'].manifest'+_0x2e4d5a['slice'](0x1);return'$.services['+_0x2666e0+_0xabd49f(0x1cc)+_0x2e4d5a;}function isServiceRegistryLike(_0x175987){const _0x1acf9b=a63_0x3d1e;return isObjectRecord(_0x175987)&&_0x175987['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x175987[_0x1acf9b(0x1d7)]);}function isObjectRecord(_0x85bb00){const _0x4f8e5e=a63_0x3d1e;return Boolean(_0x85bb00)&&typeof _0x85bb00===_0x4f8e5e(0x1a3)&&!Array['isArray'](_0x85bb00);}function emptyServiceRegistryInspection(_0xf87c68,_0x1c7ee0,_0x1e22f0){return{'registryPath':_0xf87c68,'exists':_0x1e22f0,'status':_0x1c7ee0,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x733adc){const _0x2c672e=a63_0x3d1e,_0x3e44a1=_0x733adc['normalizedManifest'],_0x3aebac=_0x3e44a1[_0x2c672e(0x1d5)][_0x2c672e(0x1d3)](_0x40deaa=>({'path':_0x40deaa[_0x2c672e(0x1a5)],'description':_0x40deaa[_0x2c672e(0x1b7)],'risk':_0x40deaa['risk'],'targetKind':_0x40deaa[_0x2c672e(0x1ed)][_0x2c672e(0x1e6)],'targetCommand':_0x40deaa['target'][_0x2c672e(0x1bb)]}));return{'serviceCode':_0x733adc[_0x2c672e(0x1c0)],'name':_0x3e44a1[_0x2c672e(0x1d0)]['name'],'description':_0x3e44a1[_0x2c672e(0x1d0)][_0x2c672e(0x1b7)],'version':_0x733adc['version'],'importedAt':_0x733adc[_0x2c672e(0x1c8)],'source':_0x733adc[_0x2c672e(0x1c2)],'commandCount':_0x3aebac[_0x2c672e(0x1bf)],'commands':_0x3aebac};}function sha256(_0x3e8399){const _0x28a286=a63_0x3d1e;return createHash(_0x28a286(0x1ca))[_0x28a286(0x1a1)](_0x3e8399)['digest'](_0x28a286(0x1dd));}
@@ -1 +1 @@
1
- const a64_0x3daaac=a64_0x1d93;(function(_0x24443c,_0x47c669){const _0x11a0a1=a64_0x1d93,_0x263fe2=_0x24443c();while(!![]){try{const _0x14af5e=parseInt(_0x11a0a1(0xdf))/0x1+parseInt(_0x11a0a1(0xd8))/0x2+-parseInt(_0x11a0a1(0xc7))/0x3+parseInt(_0x11a0a1(0xbc))/0x4*(-parseInt(_0x11a0a1(0xc5))/0x5)+-parseInt(_0x11a0a1(0xd5))/0x6*(-parseInt(_0x11a0a1(0xbb))/0x7)+-parseInt(_0x11a0a1(0xd1))/0x8*(-parseInt(_0x11a0a1(0xd2))/0x9)+-parseInt(_0x11a0a1(0xce))/0xa;if(_0x14af5e===_0x47c669)break;else _0x263fe2['push'](_0x263fe2['shift']());}catch(_0x2501d2){_0x263fe2['push'](_0x263fe2['shift']());}}}(a64_0x5ff3,0x46bff));function a64_0x1d93(_0xae1903,_0x57eb3f){_0xae1903=_0xae1903-0xba;const _0x5ff3fc=a64_0x5ff3();let _0x1d939c=_0x5ff3fc[_0xae1903];return _0x1d939c;}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':a64_0x3daaac(0xd3),'command':a64_0x3daaac(0xdd),'description':'Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','risk':a64_0x3daaac(0xcc),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x394dc0){const _0x6574ba=a64_0x3daaac,_0x1554ff=buildSkillCreatePlan(_0x394dc0[_0x6574ba(0xd9)]('name'),_0x394dc0[_0x6574ba(0xd9)](_0x6574ba(0xcd)),_0x394dc0[_0x6574ba(0xd9)]('target'));return{'method':_0x6574ba(0xba),'url':_0x1554ff[_0x6574ba(0xca)],'body':{'skillName':_0x1554ff[_0x6574ba(0xdb)][_0x6574ba(0xc6)],'type':_0x1554ff[_0x6574ba(0xdb)][_0x6574ba(0xcd)],'selfContained':!![],'files':_0x1554ff[_0x6574ba(0xdb)][_0x6574ba(0xc4)][_0x6574ba(0xde)](_0x2a5b21=>_0x2a5b21[_0x6574ba(0xd7)])},'description':_0x6574ba(0xcb)};},async 'execute'(_0x414267){const _0x4e1477=a64_0x3daaac,_0x42169a=buildSkillCreatePlan(_0x414267[_0x4e1477(0xd9)](_0x4e1477(0xbe)),_0x414267[_0x4e1477(0xd9)](_0x4e1477(0xcd)),_0x414267[_0x4e1477(0xd9)](_0x4e1477(0xc3)));return writeSkillDraft(_0x42169a,_0x414267[_0x4e1477(0xdc)](_0x4e1477(0xd4))),{'ok':!![],'data':{'skillName':_0x42169a['rendered'][_0x4e1477(0xc6)],'type':_0x42169a[_0x4e1477(0xdb)][_0x4e1477(0xcd)],'dir':_0x42169a['skillDir'],'files':_0x42169a[_0x4e1477(0xdb)][_0x4e1477(0xc4)][_0x4e1477(0xde)](_0x160751=>_0x160751[_0x4e1477(0xd7)])},'message':_0x4e1477(0xc8)+_0x42169a[_0x4e1477(0xdb)][_0x4e1477(0xc6)]};}};function buildSkillCreatePlan(_0x3f215a,_0x1ea4f9,_0x453663){const _0x4d68a6=a64_0x3daaac,_0x1132a8=_0x1ea4f9['trim'](),_0x20bdc1=renderSkillTemplate({'skillName':_0x3f215a,'type':_0x1132a8});!_0x1132a8&&writeCliSideChannelLine(_0x4d68a6(0xd0));const _0x145513=resolve(normalizeSkillTarget(_0x453663));return{'rendered':_0x20bdc1,'targetRoot':_0x145513,'skillDir':resolve(_0x145513,_0x20bdc1[_0x4d68a6(0xc6)])};}function normalizeSkillTarget(_0x3dc47c){const _0x158a05=a64_0x3daaac;return(_0x3dc47c||DEFAULT_SKILL_TARGET)[_0x158a05(0xbf)]()||DEFAULT_SKILL_TARGET;}function a64_0x5ff3(){const _0x26c08b=['Refusing\x20to\x20overwrite\x20symlink:\x20','rendered','bool','create','map','35463JUdZBw','WRITE','133DYWtCi','777756JmzrtG','isDirectory','name','trim','content','Skill\x20directory\x20already\x20exists:\x20','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','target','files','5ITFtDP','skillName','295074QgiLef','Created\x20local\x20Skill\x20draft\x20','isSymbolicLink','skillDir','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','read','type','6141790lFFMAG','validation','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','104lSWqDx','316233tIttaU','skill','force','97842Rlncfq','utf8','path','789380wNFWPs','str'];a64_0x5ff3=function(){return _0x26c08b;};return a64_0x5ff3();}function writeSkillDraft(_0x177127,_0x372e2a){const _0x15491a=a64_0x3daaac;if(existsSync(_0x177127[_0x15491a(0xca)])){const _0x304585=lstatSync(_0x177127['skillDir']);if(!_0x304585[_0x15491a(0xbd)]()||_0x304585['isSymbolicLink']())throw CliErrors[_0x15491a(0xcf)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x177127[_0x15491a(0xca)]);if(!_0x372e2a)throw CliErrors[_0x15491a(0xcf)](_0x15491a(0xc1)+_0x177127[_0x15491a(0xca)],_0x15491a(0xc2));}for(const _0x4b1c68 of _0x177127[_0x15491a(0xdb)][_0x15491a(0xc4)]){const _0x4a3e72=resolve(_0x177127[_0x15491a(0xca)],_0x4b1c68[_0x15491a(0xd7)]),_0x1b7d63=dirname(_0x4a3e72);mkdirSync(_0x1b7d63,{'recursive':!![]});if(existsSync(_0x4a3e72)&&lstatSync(_0x4a3e72)[_0x15491a(0xc9)]())throw CliErrors[_0x15491a(0xcf)](_0x15491a(0xda)+_0x4a3e72);writeFileSync(_0x4a3e72,_0x4b1c68[_0x15491a(0xc0)],_0x15491a(0xd6));}}
1
+ const a64_0x1dd959=a64_0x4d86;(function(_0x1e4143,_0x45e8d6){const _0x29bdaa=a64_0x4d86,_0x3da450=_0x1e4143();while(!![]){try{const _0x26631d=-parseInt(_0x29bdaa(0x140))/0x1+parseInt(_0x29bdaa(0x152))/0x2+-parseInt(_0x29bdaa(0x151))/0x3*(-parseInt(_0x29bdaa(0x154))/0x4)+-parseInt(_0x29bdaa(0x14b))/0x5*(parseInt(_0x29bdaa(0x138))/0x6)+parseInt(_0x29bdaa(0x143))/0x7*(parseInt(_0x29bdaa(0x146))/0x8)+parseInt(_0x29bdaa(0x14c))/0x9*(-parseInt(_0x29bdaa(0x14d))/0xa)+parseInt(_0x29bdaa(0x155))/0xb;if(_0x26631d===_0x45e8d6)break;else _0x3da450['push'](_0x3da450['shift']());}catch(_0x4b9758){_0x3da450['push'](_0x3da450['shift']());}}}(a64_0x2783,0xbefc3));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';function a64_0x2783(){const _0x5eb5bb=['force','7TzGkOF','str','rendered','412896xglSyt','isSymbolicLink','validation','files','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','5cfbZgt','3411mbMBhx','20210Egprrx','map','skill','WRITE','296358OTtLMV','2851860hmWMAR','trim','56LCOKPU','6365766USQYMu','target','skillName','Skill\x20directory\x20already\x20exists:\x20','8185908xhnsaa','Created\x20local\x20Skill\x20draft\x20','content','type','path','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','name','utf8','526700dVLiuz','skillDir'];a64_0x2783=function(){return _0x5eb5bb;};return a64_0x2783();}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';function a64_0x4d86(_0xc86d0c,_0x2cae2a){_0xc86d0c=_0xc86d0c-0x135;const _0x278389=a64_0x2783();let _0x4d86d2=_0x278389[_0xc86d0c];return _0x4d86d2;}export const createCommand={'service':a64_0x1dd959(0x14f),'command':'create','description':a64_0x1dd959(0x14a),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x16c4ec){const _0x214c49=a64_0x1dd959,_0xde599=buildSkillCreatePlan(_0x16c4ec[_0x214c49(0x144)](_0x214c49(0x13e)),_0x16c4ec[_0x214c49(0x144)](_0x214c49(0x13b)),_0x16c4ec['str'](_0x214c49(0x135)));return{'method':_0x214c49(0x150),'url':_0xde599[_0x214c49(0x141)],'body':{'skillName':_0xde599[_0x214c49(0x145)][_0x214c49(0x136)],'type':_0xde599[_0x214c49(0x145)][_0x214c49(0x13b)],'selfContained':!![],'files':_0xde599[_0x214c49(0x145)][_0x214c49(0x149)][_0x214c49(0x14e)](_0x3bcd43=>_0x3bcd43[_0x214c49(0x13c)])},'description':'Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.'};},async 'execute'(_0x572fdc){const _0xb16e8=a64_0x1dd959,_0x402cdf=buildSkillCreatePlan(_0x572fdc['str'](_0xb16e8(0x13e)),_0x572fdc[_0xb16e8(0x144)](_0xb16e8(0x13b)),_0x572fdc[_0xb16e8(0x144)](_0xb16e8(0x135)));return writeSkillDraft(_0x402cdf,_0x572fdc['bool'](_0xb16e8(0x142))),{'ok':!![],'data':{'skillName':_0x402cdf[_0xb16e8(0x145)]['skillName'],'type':_0x402cdf['rendered'][_0xb16e8(0x13b)],'dir':_0x402cdf[_0xb16e8(0x141)],'files':_0x402cdf[_0xb16e8(0x145)]['files'][_0xb16e8(0x14e)](_0x5df83e=>_0x5df83e[_0xb16e8(0x13c)])},'message':_0xb16e8(0x139)+_0x402cdf[_0xb16e8(0x145)][_0xb16e8(0x136)]};}};function buildSkillCreatePlan(_0x50ebbe,_0x5ff76f,_0x30e2ea){const _0x55643e=a64_0x1dd959,_0x165865=_0x5ff76f[_0x55643e(0x153)](),_0x13561e=renderSkillTemplate({'skillName':_0x50ebbe,'type':_0x165865});!_0x165865&&writeCliSideChannelLine('Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.');const _0x51a3ce=resolve(normalizeSkillTarget(_0x30e2ea));return{'rendered':_0x13561e,'targetRoot':_0x51a3ce,'skillDir':resolve(_0x51a3ce,_0x13561e[_0x55643e(0x136)])};}function normalizeSkillTarget(_0x5760ce){const _0x1a1b3a=a64_0x1dd959;return(_0x5760ce||DEFAULT_SKILL_TARGET)[_0x1a1b3a(0x153)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x32bfdf,_0x536462){const _0x40aee8=a64_0x1dd959;if(existsSync(_0x32bfdf['skillDir'])){const _0x19edd8=lstatSync(_0x32bfdf[_0x40aee8(0x141)]);if(!_0x19edd8['isDirectory']()||_0x19edd8[_0x40aee8(0x147)]())throw CliErrors[_0x40aee8(0x148)](_0x40aee8(0x13d)+_0x32bfdf[_0x40aee8(0x141)]);if(!_0x536462)throw CliErrors[_0x40aee8(0x148)](_0x40aee8(0x137)+_0x32bfdf[_0x40aee8(0x141)],'Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.');}for(const _0x39d054 of _0x32bfdf['rendered']['files']){const _0x3b3660=resolve(_0x32bfdf[_0x40aee8(0x141)],_0x39d054[_0x40aee8(0x13c)]),_0x48302f=dirname(_0x3b3660);mkdirSync(_0x48302f,{'recursive':!![]});if(existsSync(_0x3b3660)&&lstatSync(_0x3b3660)['isSymbolicLink']())throw CliErrors[_0x40aee8(0x148)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0x3b3660);writeFileSync(_0x3b3660,_0x39d054[_0x40aee8(0x13a)],_0x40aee8(0x13f));}}
@@ -1 +1 @@
1
- function a65_0xf0b2(){const _0xd44e71=['validation','Skill\x20diagram\x20validation\x20passed\x20for\x20','diagram-file','action','Found\x20Skill\x20diagram\x20for\x20','unchanged','4458BrlpVR','expectedDiagramRevision','version','2179810ihpGMo',';\x20first\x20write\x20expects\x20revision\x20','diagram-show','1148288hFVcbj','isInteger','expected-diagram-revision','found','2513EdJujO','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','Creates\x20or\x20replaces\x20a\x20Mermaid\x20diagram\x20for\x20an\x20exact\x20Skill\x20version.\x20The\x20write\x20is\x20rejected\x20if\x20the\x20server\x20version\x20has\x20changed.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20the\x20diagram\x20body.','diagram-push','appCode','8783566gfcwnQ','11861mGnOne','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','read','source-fingerprint','5ijBVYi','Updated','str',';\x20next\x20write\x20expects\x20revision\x20','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','personal','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','scope','1855660WazGme','942558tgnSQH','18hCGrLZ','24CpuCyn','skill','test','trim','Create\x20or\x20replace\x20a\x20Mermaid\x20diagram\x20for\x20a\x20specific\x20Skill\x20version','created','skill-code','\x20is\x20unchanged.','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','skillCode'];a65_0xf0b2=function(){return _0xd44e71;};return a65_0xf0b2();}const a65_0x3e2fef=a65_0x5d92;(function(_0x1cd227,_0x4ce1c1){const _0x1697bd=a65_0x5d92,_0x31729d=_0x1cd227();while(!![]){try{const _0x22f580=parseInt(_0x1697bd(0xe7))/0x1*(parseInt(_0x1697bd(0xc7))/0x2)+-parseInt(_0x1697bd(0xc5))/0x3+-parseInt(_0x1697bd(0xf3))/0x4*(-parseInt(_0x1697bd(0xeb))/0x5)+parseInt(_0x1697bd(0xd7))/0x6*(-parseInt(_0x1697bd(0xe1))/0x7)+-parseInt(_0x1697bd(0xdd))/0x8+parseInt(_0x1697bd(0xc6))/0x9*(-parseInt(_0x1697bd(0xda))/0xa)+parseInt(_0x1697bd(0xe6))/0xb;if(_0x22f580===_0x4ce1c1)break;else _0x31729d['push'](_0x31729d['shift']());}catch(_0x1e0c7f){_0x31729d['push'](_0x31729d['shift']());}}}(a65_0xf0b2,0x3ba6c));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';import{readRequiredSkillDiagram}from'../diagram.js';import{DIAGRAM_FILE_FLAG,DIAGRAM_SCOPE_FLAG,DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,SOURCE_FINGERPRINT_FLAG}from'../flags.js';const TARGET_FLAGS=[DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,DIAGRAM_SCOPE_FLAG],WRITE_FLAGS=[...TARGET_FLAGS,SOURCE_FINGERPRINT_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,DIAGRAM_FILE_FLAG];function readDiagramTarget(_0x7d7a48){const _0x5a213b=a65_0x5d92,_0x59b3a5=_0x7d7a48[_0x5a213b(0xed)](_0x5a213b(0xcd))['trim'](),_0x355d4b=_0x7d7a48[_0x5a213b(0xed)](_0x5a213b(0xd9))[_0x5a213b(0xca)](),_0x3f06de=_0x7d7a48['str'](_0x5a213b(0xf2));if(!_0x59b3a5||!_0x355d4b||_0x3f06de!==_0x5a213b(0xf0)&&_0x3f06de!=='company')throw CliErrors[_0x5a213b(0xd1)](_0x5a213b(0xcf));return{'skillCode':_0x59b3a5,'version':_0x355d4b,'scope':_0x3f06de};}async function readDiagramWriteInput(_0x5e3f7b){const _0x41809d=a65_0x5d92,_0x22ee0e=_0x5e3f7b['num'](_0x41809d(0xdf)),_0x9acdc1=_0x5e3f7b[_0x41809d(0xed)](_0x41809d(0xea))[_0x41809d(0xca)]();if(!Number[_0x41809d(0xde)](_0x22ee0e)||_0x22ee0e<0x0)throw CliErrors[_0x41809d(0xd1)](_0x41809d(0xef));if(!/^sha256:[0-9a-f]{64}$/[_0x41809d(0xc9)](_0x9acdc1))throw CliErrors['validation'](_0x41809d(0xe2));return{'expectedDiagramRevision':_0x22ee0e,'sourceFingerprint':_0x9acdc1,'diagram':await readRequiredSkillDiagram(_0x5e3f7b['str'](_0x41809d(0xd3)))};}function a65_0x5d92(_0x54a168,_0x34abb5){_0x54a168=_0x54a168-0xc5;const _0xf0b253=a65_0xf0b2();let _0x5d92f6=_0xf0b253[_0x54a168];return _0x5d92f6;}export const diagramValidateCommand={'service':'skill','command':'diagram-validate','description':a65_0x3e2fef(0xf1),'risk':a65_0x3e2fef(0xe9),'flags':WRITE_FLAGS,async 'execute'(_0x7b0fd3){const _0x4e6172=a65_0x3e2fef,_0x4a6288=readDiagramTarget(_0x7b0fd3),_0x3e3ff5=await validateRuntimeSkillVersionDiagram(_0x7b0fd3[_0x4e6172(0xe5)],_0x4a6288[_0x4e6172(0xd0)],_0x4a6288[_0x4e6172(0xd9)],_0x4a6288[_0x4e6172(0xf2)],await readDiagramWriteInput(_0x7b0fd3));return{'ok':!![],'data':_0x3e3ff5,'message':_0x4e6172(0xd2)+_0x4a6288[_0x4e6172(0xd0)]+'@'+_0x4a6288[_0x4e6172(0xd9)]+'.'};}};export const diagramPushCommand={'service':'skill','command':a65_0x3e2fef(0xe4),'description':a65_0x3e2fef(0xcb),'risk':'write','confirmationDescription':a65_0x3e2fef(0xe3),'flags':WRITE_FLAGS,async 'execute'(_0x2e5f00){const _0x399202=a65_0x3e2fef,_0x3db488=readDiagramTarget(_0x2e5f00),_0x5c85e2=await putRuntimeSkillVersionDiagram(_0x2e5f00['appCode'],_0x3db488[_0x399202(0xd0)],_0x3db488['version'],_0x3db488['scope'],await readDiagramWriteInput(_0x2e5f00));return{'ok':!![],'data':_0x5c85e2,'message':_0x5c85e2[_0x399202(0xd4)]===_0x399202(0xd6)?'Skill\x20diagram\x20for\x20'+_0x3db488[_0x399202(0xd0)]+'@'+_0x3db488['version']+_0x399202(0xce):(_0x5c85e2[_0x399202(0xd4)]===_0x399202(0xcc)?'Created':_0x399202(0xec))+'\x20Skill\x20diagram\x20for\x20'+_0x3db488['skillCode']+'@'+_0x3db488[_0x399202(0xd9)]+'.'};}};export const diagramShowCommand={'service':a65_0x3e2fef(0xc8),'command':a65_0x3e2fef(0xdc),'description':a65_0x3e2fef(0xe8),'risk':'read','flags':TARGET_FLAGS,async 'execute'(_0x490d09){const _0x40486f=a65_0x3e2fef,_0x64978d=readDiagramTarget(_0x490d09),_0x1ec19a=await getRuntimeSkillVersionDiagram(_0x490d09[_0x40486f(0xe5)],_0x64978d[_0x40486f(0xd0)],_0x64978d[_0x40486f(0xd9)],_0x64978d['scope']);return{'ok':!![],'data':_0x1ec19a,'message':_0x1ec19a[_0x40486f(0xe0)]?_0x40486f(0xd5)+_0x64978d[_0x40486f(0xd0)]+'@'+_0x64978d['version']+_0x40486f(0xee)+_0x1ec19a['expectedDiagramRevision']+'.':'No\x20Skill\x20diagram\x20is\x20stored\x20for\x20'+_0x64978d[_0x40486f(0xd0)]+'@'+_0x64978d[_0x40486f(0xd9)]+_0x40486f(0xdb)+_0x1ec19a[_0x40486f(0xd8)]+'.'};}};
1
+ const a65_0x4e7f63=a65_0x4d93;(function(_0x57f2d1,_0x4c2f22){const _0x450913=a65_0x4d93,_0x5a085b=_0x57f2d1();while(!![]){try{const _0x1f3d3c=parseInt(_0x450913(0xac))/0x1+parseInt(_0x450913(0xb9))/0x2+-parseInt(_0x450913(0xb6))/0x3*(parseInt(_0x450913(0xbf))/0x4)+parseInt(_0x450913(0xd0))/0x5+-parseInt(_0x450913(0xcc))/0x6*(-parseInt(_0x450913(0xce))/0x7)+-parseInt(_0x450913(0xb5))/0x8+-parseInt(_0x450913(0xb1))/0x9;if(_0x1f3d3c===_0x4c2f22)break;else _0x5a085b['push'](_0x5a085b['shift']());}catch(_0x201df4){_0x5a085b['push'](_0x5a085b['shift']());}}}(a65_0x5597,0xd2ff2));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';function a65_0x4d93(_0x3c9045,_0x1ff990){_0x3c9045=_0x3c9045-0xa9;const _0x559777=a65_0x5597();let _0x4d9358=_0x559777[_0x3c9045];return _0x4d9358;}import{CliErrors}from'../../../errors.js';import{readRequiredSkillDiagram}from'../diagram.js';import{DIAGRAM_FILE_FLAG,DIAGRAM_SCOPE_FLAG,DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,SOURCE_FINGERPRINT_FLAG}from'../flags.js';function a65_0x5597(){const _0x4234b1=['unchanged','\x20is\x20unchanged.','232184znvpUH',';\x20first\x20write\x20expects\x20revision\x20','found','expected-diagram-revision','Updated','15269733JLZImY','Creates\x20or\x20replaces\x20a\x20Mermaid\x20diagram\x20for\x20an\x20exact\x20Skill\x20version.\x20The\x20write\x20is\x20rejected\x20if\x20the\x20server\x20version\x20has\x20changed.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20the\x20diagram\x20body.','test','isInteger','1790728dPbjBZ','106986fLymAg','Skill\x20diagram\x20validation\x20passed\x20for\x20','diagram-push','2867272GTtWAC','Found\x20Skill\x20diagram\x20for\x20','version','appCode','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','personal','160SxkJOL','num','Created','source-fingerprint','trim','action','Create\x20or\x20replace\x20a\x20Mermaid\x20diagram\x20for\x20a\x20specific\x20Skill\x20version','validation','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','diagram-file','str','read','skill-code','6483498ekPfXS','\x20Skill\x20diagram\x20for\x20','7QcnhwL','Skill\x20diagram\x20for\x20','7323985jbEdwS','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','scope','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','skillCode','skill','diagram-show','diagram-validate','expectedDiagramRevision'];a65_0x5597=function(){return _0x4234b1;};return a65_0x5597();}const TARGET_FLAGS=[DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,DIAGRAM_SCOPE_FLAG],WRITE_FLAGS=[...TARGET_FLAGS,SOURCE_FINGERPRINT_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,DIAGRAM_FILE_FLAG];function readDiagramTarget(_0x1a86a5){const _0x57abc6=a65_0x4d93,_0x2c556a=_0x1a86a5[_0x57abc6(0xc9)](_0x57abc6(0xcb))[_0x57abc6(0xc3)](),_0x286773=_0x1a86a5['str']('version')['trim'](),_0x2e5f60=_0x1a86a5['str']('scope');if(!_0x2c556a||!_0x286773||_0x2e5f60!==_0x57abc6(0xbe)&&_0x2e5f60!=='company')throw CliErrors[_0x57abc6(0xc6)](_0x57abc6(0xd1));return{'skillCode':_0x2c556a,'version':_0x286773,'scope':_0x2e5f60};}async function readDiagramWriteInput(_0x29d64c){const _0x3f5928=a65_0x4d93,_0x1c6db6=_0x29d64c[_0x3f5928(0xc0)](_0x3f5928(0xaf)),_0x4dc775=_0x29d64c[_0x3f5928(0xc9)](_0x3f5928(0xc2))['trim']();if(!Number[_0x3f5928(0xb4)](_0x1c6db6)||_0x1c6db6<0x0)throw CliErrors['validation'](_0x3f5928(0xd3));if(!/^sha256:[0-9a-f]{64}$/[_0x3f5928(0xb3)](_0x4dc775))throw CliErrors[_0x3f5928(0xc6)]('--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.');return{'expectedDiagramRevision':_0x1c6db6,'sourceFingerprint':_0x4dc775,'diagram':await readRequiredSkillDiagram(_0x29d64c[_0x3f5928(0xc9)](_0x3f5928(0xc8)))};}export const diagramValidateCommand={'service':'skill','command':a65_0x4e7f63(0xd7),'description':a65_0x4e7f63(0xbd),'risk':a65_0x4e7f63(0xca),'flags':WRITE_FLAGS,async 'execute'(_0xf8ff0b){const _0x3cc208=a65_0x4e7f63,_0x49e28d=readDiagramTarget(_0xf8ff0b),_0x714481=await validateRuntimeSkillVersionDiagram(_0xf8ff0b[_0x3cc208(0xbc)],_0x49e28d[_0x3cc208(0xd4)],_0x49e28d[_0x3cc208(0xbb)],_0x49e28d['scope'],await readDiagramWriteInput(_0xf8ff0b));return{'ok':!![],'data':_0x714481,'message':_0x3cc208(0xb7)+_0x49e28d[_0x3cc208(0xd4)]+'@'+_0x49e28d[_0x3cc208(0xbb)]+'.'};}};export const diagramPushCommand={'service':a65_0x4e7f63(0xd5),'command':a65_0x4e7f63(0xb8),'description':a65_0x4e7f63(0xc5),'risk':'write','confirmationDescription':a65_0x4e7f63(0xb2),'flags':WRITE_FLAGS,async 'execute'(_0x4b60b7){const _0x57a0ba=a65_0x4e7f63,_0xc8262f=readDiagramTarget(_0x4b60b7),_0x59b7c1=await putRuntimeSkillVersionDiagram(_0x4b60b7[_0x57a0ba(0xbc)],_0xc8262f[_0x57a0ba(0xd4)],_0xc8262f[_0x57a0ba(0xbb)],_0xc8262f[_0x57a0ba(0xd2)],await readDiagramWriteInput(_0x4b60b7));return{'ok':!![],'data':_0x59b7c1,'message':_0x59b7c1[_0x57a0ba(0xc4)]===_0x57a0ba(0xaa)?_0x57a0ba(0xcf)+_0xc8262f['skillCode']+'@'+_0xc8262f['version']+_0x57a0ba(0xab):(_0x59b7c1[_0x57a0ba(0xc4)]==='created'?_0x57a0ba(0xc1):_0x57a0ba(0xb0))+_0x57a0ba(0xcd)+_0xc8262f[_0x57a0ba(0xd4)]+'@'+_0xc8262f['version']+'.'};}};export const diagramShowCommand={'service':a65_0x4e7f63(0xd5),'command':a65_0x4e7f63(0xd6),'description':'Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','risk':a65_0x4e7f63(0xca),'flags':TARGET_FLAGS,async 'execute'(_0x223e55){const _0x3589d0=a65_0x4e7f63,_0x2f2612=readDiagramTarget(_0x223e55),_0x32db40=await getRuntimeSkillVersionDiagram(_0x223e55[_0x3589d0(0xbc)],_0x2f2612[_0x3589d0(0xd4)],_0x2f2612[_0x3589d0(0xbb)],_0x2f2612[_0x3589d0(0xd2)]);return{'ok':!![],'data':_0x32db40,'message':_0x32db40[_0x3589d0(0xae)]?_0x3589d0(0xba)+_0x2f2612[_0x3589d0(0xd4)]+'@'+_0x2f2612[_0x3589d0(0xbb)]+';\x20next\x20write\x20expects\x20revision\x20'+_0x32db40['expectedDiagramRevision']+'.':_0x3589d0(0xc7)+_0x2f2612[_0x3589d0(0xd4)]+'@'+_0x2f2612[_0x3589d0(0xbb)]+_0x3589d0(0xad)+_0x32db40[_0x3589d0(0xa9)]+'.'};}};
@@ -1 +1 @@
1
- const a66_0x24c729=a66_0x3c24;(function(_0xf86ff7,_0x403f8a){const _0x59c278=a66_0x3c24,_0x5728b8=_0xf86ff7();while(!![]){try{const _0xbe2ba3=parseInt(_0x59c278(0x203))/0x1+parseInt(_0x59c278(0x1e7))/0x2*(parseInt(_0x59c278(0x1f0))/0x3)+-parseInt(_0x59c278(0x1ea))/0x4*(parseInt(_0x59c278(0x1f6))/0x5)+parseInt(_0x59c278(0x1f3))/0x6*(parseInt(_0x59c278(0x1e5))/0x7)+parseInt(_0x59c278(0x1e4))/0x8*(-parseInt(_0x59c278(0x1ec))/0x9)+parseInt(_0x59c278(0x20a))/0xa+parseInt(_0x59c278(0x1f2))/0xb;if(_0xbe2ba3===_0x403f8a)break;else _0x5728b8['push'](_0x5728b8['shift']());}catch(_0x403d32){_0x5728b8['push'](_0x5728b8['shift']());}}}(a66_0x1ccc,0xc9aeb));function a66_0x1ccc(){const _0x58fc28=['3934548yagtMd','personal','261AAIMTY','scope','trim','version','158031zdizaF','length','5693886RnUDYt','42joGLzH','force','updated','5sXOYpg','project','bool','map','min','global','accessKey','filter','skipped','install','production','str','skill','1145462QOFICh','removed','../../../skills/runtime-skill-sync.js','skillRoots','appCode','company','code','615120ADkFMC','unchanged','action','all','232664wdVzPD','33026KqZvWT','envName','34TwitKb','includes','skillCode'];a66_0x1ccc=function(){return _0x58fc28;};return a66_0x1ccc();}function a66_0x3c24(_0x4ae57f,_0x29bafb){_0x4ae57f=_0x4ae57f-0x1e1;const _0x1cccd9=a66_0x1ccc();let _0x3c2468=_0x1cccd9[_0x4ae57f];return _0x3c2468;}import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';const PACKAGE_DOWNLOAD_CONCURRENCY=0x4;export const installCommand={'service':a66_0x24c729(0x202),'command':a66_0x24c729(0x1ff),'description':'Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','risk':'read','requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x1c0ef9){return syncRuntimeSkills(_0x1c0ef9);}};async function syncRuntimeSkills(_0x280d10){const _0x2dd961=a66_0x24c729,{downloadRuntimeSkillPackage:_0x58deb6,listRuntimeSkills:_0x5dd205}=await import('../../../core/api-client.js'),{linkEffectiveRuntimeSkills:_0x47c0e1,materializeRuntimeSkill:_0x5c9202,pruneStaleRuntimeSkillCache:_0x4bc069,pruneStaleRuntimeSkillLinks:_0x182979,resolveRuntimeSkillInstallTarget:_0x581ddc,reuseMaterializedRuntimeSkill:_0x430ac5}=await import(_0x2dd961(0x205)),_0x1282e2=_0x280d10['str'](_0x2dd961(0x209)),_0x3903cb=normalizeSyncScopes(_0x280d10[_0x2dd961(0x201)](_0x2dd961(0x1ed))),_0x53f078=_0x280d10[_0x2dd961(0x1e6)]??_0x2dd961(0x200),_0x587fad=_0x280d10[_0x2dd961(0x1fc)],_0x36f435=_0x280d10[_0x2dd961(0x1f8)](_0x2dd961(0x1f4));if(!_0x587fad)throw CliErrors['authRequired']('Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.');const _0x235065=_0x581ddc(_0x280d10[_0x2dd961(0x207)],_0x280d10[_0x2dd961(0x1f8)](_0x2dd961(0x1f7))?_0x2dd961(0x1f7):_0x2dd961(0x1fb)),_0xb72476=_0x581ddc(_0x280d10[_0x2dd961(0x207)],_0x235065[_0x2dd961(0x1ed)]===_0x2dd961(0x1f7)?_0x2dd961(0x1fb):_0x2dd961(0x1f7)),_0x396e26=await _0x5dd205({'appCode':_0x280d10['appCode'],'scope':_0x3903cb['length']===0x1?_0x3903cb[0x0]:_0x2dd961(0x1e3),'code':_0x1282e2[_0x2dd961(0x1ee)]()||undefined}),_0xa0e3bb=_0x3903cb[_0x2dd961(0x1e8)](_0x2dd961(0x1eb))?_0x396e26[_0x2dd961(0x1eb)]:[],_0x3b0178=_0x3903cb[_0x2dd961(0x1e8)](_0x2dd961(0x208))?_0x396e26[_0x2dd961(0x208)]:[],_0x3d5b46=new Set([..._0xa0e3bb['map'](_0x2448a2=>_0x2448a2[_0x2dd961(0x1e9)]?.['trim']())[_0x2dd961(0x1fd)](_0x47716a=>Boolean(_0x47716a)),..._0x3b0178[_0x2dd961(0x1f9)](_0xdf50b1=>_0xdf50b1[_0x2dd961(0x1e9)]?.[_0x2dd961(0x1ee)]())[_0x2dd961(0x1fd)](_0x3ff52e=>Boolean(_0x3ff52e))]),_0x4ad85b=_0x1282e2[_0x2dd961(0x1ee)]()?[_0x1282e2[_0x2dd961(0x1ee)]()]:undefined,_0xc61842=_0x3903cb[_0x2dd961(0x1f1)]===0x2&&_0x3903cb[_0x2dd961(0x1e8)](_0x2dd961(0x1eb))&&_0x3903cb[_0x2dd961(0x1e8)](_0x2dd961(0x208)),_0x2bb73a=_0xc61842?_0x182979(_0x235065,_0x3d5b46,_0x4ad85b):[],_0x5537aa=_0x4bc069({'env':_0x53f078,'accessKey':_0x587fad,'appCode':_0x280d10[_0x2dd961(0x207)],'activeSkillCodes':_0x3d5b46,'pruneSkillCodes':_0x4ad85b,'scopes':_0x3903cb,'protectedLinkRoots':_0xb72476[_0x2dd961(0x206)]}),_0x33fc54=[..._0xa0e3bb[_0x2dd961(0x1f9)](_0x966211=>({'skill':_0x966211,'scope':_0x2dd961(0x1eb)})),..._0x3b0178[_0x2dd961(0x1f9)](_0x2c938c=>({'skill':_0x2c938c,'scope':_0x2dd961(0x208)}))],_0x62c932=await mapConcurrent(_0x33fc54,PACKAGE_DOWNLOAD_CONCURRENCY,async({skill:_0x42b5e5,scope:_0x57ce66})=>{const _0x37d7b7=_0x2dd961,_0xfd3436=_0x430ac5(_0x42b5e5,_0x57ce66,{'env':_0x53f078,'accessKey':_0x587fad,'appCode':_0x280d10[_0x37d7b7(0x207)]});if(_0xfd3436)return _0xfd3436;return _0x5c9202(_0x42b5e5,_0x57ce66,{'env':_0x53f078,'accessKey':_0x587fad,'appCode':_0x280d10[_0x37d7b7(0x207)],'force':_0x36f435,'packageBytes':await downloadSkillPackage(_0x42b5e5,_0x57ce66,_0x280d10[_0x37d7b7(0x207)],_0x58deb6)});}),_0x272814=_0x47c0e1(_0x62c932,_0x235065),_0x2fa02b=countLinkActions(_0x272814);return{'ok':!![],'data':{'appCode':_0x280d10[_0x2dd961(0x207)],..._0x235065[_0x2dd961(0x1ed)]==='project'?{'installTarget':{'scope':_0x235065[_0x2dd961(0x1ed)],'skillRoots':[..._0x235065[_0x2dd961(0x206)]]}}:{},'personal':_0xa0e3bb['length'],'company':_0x3b0178[_0x2dd961(0x1f1)],'materialized':_0x62c932[_0x2dd961(0x1f1)],'links':{'total':_0x272814[_0x2dd961(0x1f1)],'created':_0x2fa02b['created']??0x0,'updated':_0x2fa02b[_0x2dd961(0x1f5)]??0x0,'unchanged':_0x2fa02b[_0x2dd961(0x1e1)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x2bb73a[_0x2dd961(0x1fd)](_0x3e704c=>_0x3e704c[_0x2dd961(0x1e2)]===_0x2dd961(0x204))['length'],'cacheDirs':_0x5537aa['filter'](_0x3e354b=>_0x3e354b[_0x2dd961(0x1e2)]===_0x2dd961(0x204))[_0x2dd961(0x1f1)],'skipped':[..._0x2bb73a,..._0x5537aa][_0x2dd961(0x1fd)](_0x403fc7=>_0x403fc7['action']===_0x2dd961(0x1fe))[_0x2dd961(0x1f1)]},'skills':{'personal':_0xa0e3bb[_0x2dd961(0x1f9)](summarizeRuntimeSkill),'company':_0x3b0178[_0x2dd961(0x1f9)](summarizeRuntimeSkill)}},'message':'Installed\x20'+_0xa0e3bb[_0x2dd961(0x1f1)]+'\x20personal\x20and\x20'+_0x3b0178['length']+'\x20company\x20Skill(s).'};}async function mapConcurrent(_0x1d097e,_0x392fb7,_0xd54080){const _0x21af85=a66_0x24c729,_0x198a2b=new Array(_0x1d097e[_0x21af85(0x1f1)]);let _0x589e58=0x0;const _0x13a1f5=Array['from']({'length':Math[_0x21af85(0x1fa)](_0x392fb7,_0x1d097e[_0x21af85(0x1f1)])},async()=>{const _0x3f85ac=_0x21af85;while(_0x589e58<_0x1d097e[_0x3f85ac(0x1f1)]){const _0x1a4e62=_0x589e58;_0x589e58+=0x1,_0x198a2b[_0x1a4e62]=await _0xd54080(_0x1d097e[_0x1a4e62]);}});return await Promise[_0x21af85(0x1e3)](_0x13a1f5),_0x198a2b;}async function downloadSkillPackage(_0x8a0747,_0x412e06,_0x3c1a6a,_0x1d3330){const _0x4f637d=a66_0x24c729,_0x3e53df=_0x8a0747[_0x4f637d(0x1ef)]?.[_0x4f637d(0x1ee)]();return _0x3e53df?_0x1d3330(_0x412e06,_0x8a0747[_0x4f637d(0x1e9)],_0x3c1a6a,_0x3e53df):_0x1d3330(_0x412e06,_0x8a0747['skillCode'],_0x3c1a6a);}function countLinkActions(_0x2258d3){return _0x2258d3['reduce']((_0xcbee43,_0x3ff742)=>{const _0x68621c=a66_0x3c24;return _0xcbee43[_0x3ff742[_0x68621c(0x1e2)]]=(_0xcbee43[_0x3ff742[_0x68621c(0x1e2)]]??0x0)+0x1,_0xcbee43;},{});}
1
+ const a66_0x51901c=a66_0x7b35;function a66_0x36bc(){const _0x18c288=['676504TvdyYT','action','all','scope','41308HvocAs','1314360WStGyx','read','includes','51339nJGGpj','authRequired','created','project','company','skillRoots','updated','filter','5nhgjUW','str','\x20company\x20Skill(s).','production','appCode','global','../../../core/api-client.js','unchanged','reduce','3457719JDWFCk','skillCode','394506xTHSBc','envName','14DoMiAm','skipped','trim','force','accessKey','map','version','skill','43212tsHKkl','length','bool','\x20personal\x20and\x20','Installed\x20','code','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','min','from','personal'];a66_0x36bc=function(){return _0x18c288;};return a66_0x36bc();}(function(_0x3e834b,_0xca701f){const _0x2d419d=a66_0x7b35,_0x364274=_0x3e834b();while(!![]){try{const _0x2d94ed=-parseInt(_0x2d419d(0x165))/0x1+-parseInt(_0x2d419d(0x15b))/0x2+parseInt(_0x2d419d(0x177))/0x3+-parseInt(_0x2d419d(0x173))/0x4*(-parseInt(_0x2d419d(0x17f))/0x5)+-parseInt(_0x2d419d(0x174))/0x6+parseInt(_0x2d419d(0x15d))/0x7*(parseInt(_0x2d419d(0x16f))/0x8)+parseInt(_0x2d419d(0x159))/0x9;if(_0x2d94ed===_0xca701f)break;else _0x364274['push'](_0x364274['shift']());}catch(_0x4b5408){_0x364274['push'](_0x364274['shift']());}}}(a66_0x36bc,0x1d990));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';function a66_0x7b35(_0x46b878,_0x2e4595){_0x46b878=_0x46b878-0x157;const _0x36bca1=a66_0x36bc();let _0x7b350=_0x36bca1[_0x46b878];return _0x7b350;}import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';const PACKAGE_DOWNLOAD_CONCURRENCY=0x4;export const installCommand={'service':a66_0x51901c(0x164),'command':'install','description':a66_0x51901c(0x16b),'risk':a66_0x51901c(0x175),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x47528f){return syncRuntimeSkills(_0x47528f);}};async function syncRuntimeSkills(_0x1ec692){const _0x2a7bae=a66_0x51901c,{downloadRuntimeSkillPackage:_0x11232a,listRuntimeSkills:_0x1d4c10}=await import(_0x2a7bae(0x185)),{linkEffectiveRuntimeSkills:_0x366588,materializeRuntimeSkill:_0x4d88c9,pruneStaleRuntimeSkillCache:_0x885c2b,pruneStaleRuntimeSkillLinks:_0x2ed2ca,resolveRuntimeSkillInstallTarget:_0x14e945,reuseMaterializedRuntimeSkill:_0x2c1c94}=await import('../../../skills/runtime-skill-sync.js'),_0x2b861a=_0x1ec692[_0x2a7bae(0x180)](_0x2a7bae(0x16a)),_0x210883=normalizeSyncScopes(_0x1ec692[_0x2a7bae(0x180)](_0x2a7bae(0x172))),_0x1e5322=_0x1ec692[_0x2a7bae(0x15c)]??_0x2a7bae(0x182),_0x58e51b=_0x1ec692[_0x2a7bae(0x161)],_0x56c9f9=_0x1ec692['bool'](_0x2a7bae(0x160));if(!_0x58e51b)throw CliErrors[_0x2a7bae(0x178)]('Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.');const _0x22069e=_0x14e945(_0x1ec692[_0x2a7bae(0x183)],_0x1ec692[_0x2a7bae(0x167)]('project')?_0x2a7bae(0x17a):'global'),_0x43db7b=_0x14e945(_0x1ec692[_0x2a7bae(0x183)],_0x22069e['scope']==='project'?_0x2a7bae(0x184):_0x2a7bae(0x17a)),_0x526b9c=await _0x1d4c10({'appCode':_0x1ec692['appCode'],'scope':_0x210883['length']===0x1?_0x210883[0x0]:'all','code':_0x2b861a[_0x2a7bae(0x15f)]()||undefined}),_0x49bb15=_0x210883[_0x2a7bae(0x176)](_0x2a7bae(0x16e))?_0x526b9c[_0x2a7bae(0x16e)]:[],_0x453584=_0x210883[_0x2a7bae(0x176)]('company')?_0x526b9c[_0x2a7bae(0x17b)]:[],_0x135c05=new Set([..._0x49bb15[_0x2a7bae(0x162)](_0x14bead=>_0x14bead['skillCode']?.[_0x2a7bae(0x15f)]())[_0x2a7bae(0x17e)](_0x10e27a=>Boolean(_0x10e27a)),..._0x453584[_0x2a7bae(0x162)](_0x39617b=>_0x39617b[_0x2a7bae(0x15a)]?.[_0x2a7bae(0x15f)]())[_0x2a7bae(0x17e)](_0x1108e6=>Boolean(_0x1108e6))]),_0xb18d65=_0x2b861a[_0x2a7bae(0x15f)]()?[_0x2b861a[_0x2a7bae(0x15f)]()]:undefined,_0x2604f0=_0x210883['length']===0x2&&_0x210883[_0x2a7bae(0x176)](_0x2a7bae(0x16e))&&_0x210883[_0x2a7bae(0x176)](_0x2a7bae(0x17b)),_0x1834f8=_0x2604f0?_0x2ed2ca(_0x22069e,_0x135c05,_0xb18d65):[],_0x4cea27=_0x885c2b({'env':_0x1e5322,'accessKey':_0x58e51b,'appCode':_0x1ec692['appCode'],'activeSkillCodes':_0x135c05,'pruneSkillCodes':_0xb18d65,'scopes':_0x210883,'protectedLinkRoots':_0x43db7b['skillRoots']}),_0x4a4689=[..._0x49bb15[_0x2a7bae(0x162)](_0x3b91f2=>({'skill':_0x3b91f2,'scope':_0x2a7bae(0x16e)})),..._0x453584[_0x2a7bae(0x162)](_0x485e59=>({'skill':_0x485e59,'scope':_0x2a7bae(0x17b)}))],_0x42c078=await mapConcurrent(_0x4a4689,PACKAGE_DOWNLOAD_CONCURRENCY,async({skill:_0x2ece82,scope:_0x3311e4})=>{const _0x4b805a=_0x2a7bae,_0x9e45c0=_0x2c1c94(_0x2ece82,_0x3311e4,{'env':_0x1e5322,'accessKey':_0x58e51b,'appCode':_0x1ec692[_0x4b805a(0x183)]});if(_0x9e45c0)return _0x9e45c0;return _0x4d88c9(_0x2ece82,_0x3311e4,{'env':_0x1e5322,'accessKey':_0x58e51b,'appCode':_0x1ec692[_0x4b805a(0x183)],'force':_0x56c9f9,'packageBytes':await downloadSkillPackage(_0x2ece82,_0x3311e4,_0x1ec692[_0x4b805a(0x183)],_0x11232a)});}),_0x53160c=_0x366588(_0x42c078,_0x22069e),_0x1a77cf=countLinkActions(_0x53160c);return{'ok':!![],'data':{'appCode':_0x1ec692[_0x2a7bae(0x183)],..._0x22069e[_0x2a7bae(0x172)]===_0x2a7bae(0x17a)?{'installTarget':{'scope':_0x22069e[_0x2a7bae(0x172)],'skillRoots':[..._0x22069e[_0x2a7bae(0x17c)]]}}:{},'personal':_0x49bb15['length'],'company':_0x453584[_0x2a7bae(0x166)],'materialized':_0x42c078[_0x2a7bae(0x166)],'links':{'total':_0x53160c[_0x2a7bae(0x166)],'created':_0x1a77cf[_0x2a7bae(0x179)]??0x0,'updated':_0x1a77cf[_0x2a7bae(0x17d)]??0x0,'unchanged':_0x1a77cf[_0x2a7bae(0x157)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x1834f8[_0x2a7bae(0x17e)](_0x1e360b=>_0x1e360b['action']==='removed')[_0x2a7bae(0x166)],'cacheDirs':_0x4cea27[_0x2a7bae(0x17e)](_0x2fe3c4=>_0x2fe3c4[_0x2a7bae(0x170)]==='removed')[_0x2a7bae(0x166)],'skipped':[..._0x1834f8,..._0x4cea27][_0x2a7bae(0x17e)](_0x1aa84f=>_0x1aa84f['action']===_0x2a7bae(0x15e))[_0x2a7bae(0x166)]},'skills':{'personal':_0x49bb15[_0x2a7bae(0x162)](summarizeRuntimeSkill),'company':_0x453584[_0x2a7bae(0x162)](summarizeRuntimeSkill)}},'message':_0x2a7bae(0x169)+_0x49bb15[_0x2a7bae(0x166)]+_0x2a7bae(0x168)+_0x453584[_0x2a7bae(0x166)]+_0x2a7bae(0x181)};}async function mapConcurrent(_0x45958d,_0x7c9806,_0x5c0e84){const _0x138f9e=a66_0x51901c,_0x592296=new Array(_0x45958d['length']);let _0x545880=0x0;const _0x473886=Array[_0x138f9e(0x16d)]({'length':Math[_0x138f9e(0x16c)](_0x7c9806,_0x45958d[_0x138f9e(0x166)])},async()=>{const _0xfd287=_0x138f9e;while(_0x545880<_0x45958d[_0xfd287(0x166)]){const _0x25e70b=_0x545880;_0x545880+=0x1,_0x592296[_0x25e70b]=await _0x5c0e84(_0x45958d[_0x25e70b]);}});return await Promise[_0x138f9e(0x171)](_0x473886),_0x592296;}async function downloadSkillPackage(_0x46a379,_0x388dbe,_0x93d0b7,_0x1cbe0e){const _0x5ce5ef=a66_0x51901c,_0x519fcc=_0x46a379[_0x5ce5ef(0x163)]?.[_0x5ce5ef(0x15f)]();return _0x519fcc?_0x1cbe0e(_0x388dbe,_0x46a379[_0x5ce5ef(0x15a)],_0x93d0b7,_0x519fcc):_0x1cbe0e(_0x388dbe,_0x46a379['skillCode'],_0x93d0b7);}function countLinkActions(_0x45b878){const _0xa6cf71=a66_0x51901c;return _0x45b878[_0xa6cf71(0x158)]((_0x5b3307,_0x3c3a95)=>{const _0x76e306=_0xa6cf71;return _0x5b3307[_0x3c3a95[_0x76e306(0x170)]]=(_0x5b3307[_0x3c3a95['action']]??0x0)+0x1,_0x5b3307;},{});}