@lovrabet/lovrabet-cli 2.3.4-beta.1 → 2.3.4-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/README.md +8 -6
  2. package/lib/cli.js +1 -1
  3. package/lib/commands/api-doc/index.js +1 -1
  4. package/lib/commands/app/cache.js +1 -1
  5. package/lib/commands/app/definitions.js +1 -1
  6. package/lib/commands/app/eligibility.js +1 -1
  7. package/lib/commands/app/mock-loader.js +1 -1
  8. package/lib/commands/app/remote-source.js +1 -1
  9. package/lib/commands/app/shared.js +1 -1
  10. package/lib/commands/app-config/get.js +1 -1
  11. package/lib/commands/app-config/index.js +1 -1
  12. package/lib/commands/approval/index.js +1 -1
  13. package/lib/commands/artifact/index.js +1 -1
  14. package/lib/commands/auth/device.js +1 -1
  15. package/lib/commands/auth/index.js +1 -1
  16. package/lib/commands/auth/prompt.js +1 -1
  17. package/lib/commands/bff/detail.js +1 -1
  18. package/lib/commands/bff/exec.js +1 -1
  19. package/lib/commands/bff/index.js +1 -1
  20. package/lib/commands/cli-skill/index.js +1 -1
  21. package/lib/commands/common/config-policy.js +1 -1
  22. package/lib/commands/common/constraints.js +1 -1
  23. package/lib/commands/common/flags.js +1 -1
  24. package/lib/commands/common/local-file.js +1 -1
  25. package/lib/commands/config/definitions.js +1 -1
  26. package/lib/commands/config/init.d.ts +1 -1
  27. package/lib/commands/config/init.js +1 -1
  28. package/lib/commands/config/shared.js +1 -1
  29. package/lib/commands/data/index.js +1 -1
  30. package/lib/commands/dataset/detail.js +1 -1
  31. package/lib/commands/dataset/index.js +1 -1
  32. package/lib/commands/dataset/list.js +1 -1
  33. package/lib/commands/dataset/sdk-doc.js +1 -1
  34. package/lib/commands/doctor.js +1 -1
  35. package/lib/commands/file/index.js +1 -1
  36. package/lib/commands/init.js +1 -1
  37. package/lib/commands/kb/index.js +1 -1
  38. package/lib/commands/logs/index.js +1 -1
  39. package/lib/commands/notification/config-list.js +1 -1
  40. package/lib/commands/notification/index.js +1 -1
  41. package/lib/commands/notification/shared.js +1 -1
  42. package/lib/commands/ocr/index.js +1 -1
  43. package/lib/commands/permit/dataset-get.js +1 -1
  44. package/lib/commands/permit/dataset-set.js +1 -1
  45. package/lib/commands/permit/index.js +1 -1
  46. package/lib/commands/permit/page-get.js +1 -1
  47. package/lib/commands/permit/page-set.js +1 -1
  48. package/lib/commands/permit/role-menus-set.js +1 -1
  49. package/lib/commands/permit/role-menus.js +1 -1
  50. package/lib/commands/permit/shared.js +1 -1
  51. package/lib/commands/personal-bff/index.js +1 -1
  52. package/lib/commands/registry.js +1 -1
  53. package/lib/commands/role/create.js +1 -1
  54. package/lib/commands/role/delete.js +1 -1
  55. package/lib/commands/role/detail.js +1 -1
  56. package/lib/commands/role/index.js +1 -1
  57. package/lib/commands/role/list.js +1 -1
  58. package/lib/commands/role/shared.js +1 -1
  59. package/lib/commands/role/update.js +1 -1
  60. package/lib/commands/role/user-add.js +1 -1
  61. package/lib/commands/role/user-remove.js +1 -1
  62. package/lib/commands/schedule/index.js +1 -1
  63. package/lib/commands/schema.js +1 -1
  64. package/lib/commands/service/dynamic.js +1 -1
  65. package/lib/commands/service/function-name-adapter.js +1 -1
  66. package/lib/commands/service/index.js +1 -1
  67. package/lib/commands/service/registry.js +1 -1
  68. package/lib/commands/skill/commands/create.js +1 -1
  69. package/lib/commands/skill/commands/diagram.js +1 -1
  70. package/lib/commands/skill/commands/install.js +1 -1
  71. package/lib/commands/skill/commands/list.js +1 -1
  72. package/lib/commands/skill/commands/push.js +1 -1
  73. package/lib/commands/skill/commands/validate.js +1 -1
  74. package/lib/commands/skill/diagram.js +1 -1
  75. package/lib/commands/skill/flags.js +1 -1
  76. package/lib/commands/skill/index.js +1 -1
  77. package/lib/commands/skill/manifest-helpers.js +1 -1
  78. package/lib/commands/skill/push-execute.js +1 -1
  79. package/lib/commands/skill/push-flow-helpers.js +1 -1
  80. package/lib/commands/skill/push-retarget.js +1 -1
  81. package/lib/commands/skill/scopes.js +1 -1
  82. package/lib/commands/skill/summary.js +1 -1
  83. package/lib/commands/skill/templates.js +1 -1
  84. package/lib/commands/skill/validate.js +1 -1
  85. package/lib/commands/sql/detail.js +1 -1
  86. package/lib/commands/sql/exec.js +1 -1
  87. package/lib/commands/sql/index.js +1 -1
  88. package/lib/commands/update.js +1 -1
  89. package/lib/commands/user-account/bind.js +1 -1
  90. package/lib/commands/user-account/index.js +1 -1
  91. package/lib/commands/workspace/index.js +1 -1
  92. package/lib/config/domain-config.d.ts +2 -2
  93. package/lib/config/domain-config.js +1 -1
  94. package/lib/config/schema.d.ts +1 -1
  95. package/lib/config/schema.js +1 -1
  96. package/lib/constant/app.js +1 -1
  97. package/lib/constant/auth-mode.js +1 -1
  98. package/lib/constant/cli.js +1 -1
  99. package/lib/constant/defaults.js +1 -1
  100. package/lib/constant/distribution.js +1 -1
  101. package/lib/constant/domain.d.ts +4 -0
  102. package/lib/constant/domain.js +1 -1
  103. package/lib/constant/env.js +1 -1
  104. package/lib/constant/output.js +1 -1
  105. package/lib/constant/product.js +1 -1
  106. package/lib/constant/region.d.ts +1 -1
  107. package/lib/constant/region.js +1 -1
  108. package/lib/constant/risk.js +1 -1
  109. package/lib/constant/url.js +1 -1
  110. package/lib/context.js +1 -1
  111. package/lib/core/api-client.js +1 -1
  112. package/lib/core/db-resolver.js +1 -1
  113. package/lib/core/kb-search-client.js +1 -1
  114. package/lib/core/sdk-client.js +1 -1
  115. package/lib/errors.js +1 -1
  116. package/lib/framework/build-all-flags.js +1 -1
  117. package/lib/framework/dryrun.js +1 -1
  118. package/lib/framework/flags.js +1 -1
  119. package/lib/framework/help.js +1 -1
  120. package/lib/framework/index.js +1 -1
  121. package/lib/framework/output.js +1 -1
  122. package/lib/framework/preparse.js +1 -1
  123. package/lib/framework/rate-limit.js +1 -1
  124. package/lib/framework/raw-flags.js +1 -1
  125. package/lib/framework/response.js +1 -1
  126. package/lib/framework/runner-confirmation.js +1 -1
  127. package/lib/framework/runner-error.js +1 -1
  128. package/lib/framework/runner.js +1 -1
  129. package/lib/framework/schema-export.js +1 -1
  130. package/lib/framework/service-order.js +1 -1
  131. package/lib/framework/types.js +1 -1
  132. package/lib/generated/build-info.d.ts +4 -4
  133. package/lib/generated/build-info.js +1 -1
  134. package/lib/generated/official-routing.d.ts +12 -3
  135. package/lib/generated/official-routing.js +1 -1
  136. package/lib/generated/routing-contract.d.ts +2 -2
  137. package/lib/generated/routing-contract.js +1 -1
  138. package/lib/help.js +1 -1
  139. package/lib/postinstall.js +1 -1
  140. package/lib/runtime/confirmation.js +1 -1
  141. package/lib/runtime/event.js +1 -1
  142. package/lib/runtime/index.js +1 -1
  143. package/lib/runtime/queue.js +1 -1
  144. package/lib/runtime/resolve.js +1 -1
  145. package/lib/skills/builtin-skill.js +1 -1
  146. package/lib/skills/npx-skills-add.d.ts +5 -0
  147. package/lib/skills/npx-skills-add.js +1 -1
  148. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  149. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  150. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  151. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  152. package/lib/skills/runtime-skill-sync/links.js +1 -1
  153. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  154. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  155. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  156. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  157. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  158. package/lib/skills/runtime-skill-sync/push.js +1 -1
  159. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  160. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  161. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  162. package/lib/skills/runtime-skill-sync.js +1 -1
  163. package/lib/skills/skill-presence.js +1 -1
  164. package/lib/utils/access-key-redaction.js +1 -1
  165. package/lib/utils/apply-jq-filter.js +1 -1
  166. package/lib/utils/cli-version-check.js +1 -1
  167. package/lib/utils/cli-version-policy.js +1 -1
  168. package/lib/utils/logger.js +1 -1
  169. package/lib/utils/lossless-json.js +1 -1
  170. package/lib/utils/params.js +1 -1
  171. package/lib/utils/positive-safe-integer.js +1 -1
  172. package/lib/utils/redaction.js +1 -1
  173. package/lib/utils/update-notice.js +1 -1
  174. package/lib/utils/version.js +1 -1
  175. package/lib/utils/write-cli-side-channel.js +1 -1
  176. package/package.json +1 -1
  177. package/skills/lovrabet/SKILL.md +2 -2
  178. package/skills/lovrabet/guides/troubleshooting.md +1 -1
  179. package/skills/lovrabet/references/lovrabet-config-commands.md +8 -7
  180. package/skills/lovrabet/references/lovrabet-config.md +3 -2
  181. package/skills/lovrabet/references/lovrabet-doctor.md +1 -1
  182. package/skills/lovrabet/references/lovrabet-kb-workflow.md +8 -6
  183. package/skills/lovrabet/references/lovrabet-service-tree.md +1 -1
  184. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- const a56_0x57cfd2=a56_0x2dd0;(function(_0x328934,_0x48be30){const _0x2b2181=a56_0x2dd0,_0x283362=_0x328934();while(!![]){try{const _0x507475=-parseInt(_0x2b2181(0x13f))/0x1*(-parseInt(_0x2b2181(0x146))/0x2)+parseInt(_0x2b2181(0x149))/0x3+parseInt(_0x2b2181(0x137))/0x4*(parseInt(_0x2b2181(0x142))/0x5)+-parseInt(_0x2b2181(0x145))/0x6+-parseInt(_0x2b2181(0x13b))/0x7*(-parseInt(_0x2b2181(0x14a))/0x8)+-parseInt(_0x2b2181(0x141))/0x9+parseInt(_0x2b2181(0x140))/0xa*(-parseInt(_0x2b2181(0x134))/0xb);if(_0x507475===_0x48be30)break;else _0x283362['push'](_0x283362['shift']());}catch(_0x4b96c8){_0x283362['push'](_0x283362['shift']());}}}(a56_0x32dd,0x3c669));function a56_0x2dd0(_0x5d353e,_0x2abf86){_0x5d353e=_0x5d353e-0x134;const _0x32ddc4=a56_0x32dd();let _0x2dd0ba=_0x32ddc4[_0x5d353e];return _0x2dd0ba;}import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';function a56_0x32dd(){const _0xfd5369=['New\x20role\x20name','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','appCode','name','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','14993KAABSG','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','--name\x20must\x20not\x20be\x20blank.','1792wXnoKJ','str','trim','--remark\x20must\x20not\x20be\x20blank.','9387ozYonO','update','role-code','remark','706Kvuvlb','1390BeWGdX','654597foalkq','1780Uacxvp','Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','build','2056746HTDTTC','690jkTWBQ','flag','body','161187sdnipg','2360eKDfns','description','New\x20non-empty\x20role\x20remark','validation'];a56_0x32dd=function(){return _0xfd5369;};return a56_0x32dd();}import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x458266){const _0x27fc23=a56_0x2dd0,_0x11c9fd=_0x458266['flag'](_0x27fc23(0x13d))!==undefined,_0x265338=_0x458266[_0x27fc23(0x147)](_0x27fc23(0x151))!==undefined,_0x2ec2e6=_0x458266['flag'](_0x27fc23(0x13e))!==undefined;if(!_0x11c9fd&&!_0x265338&&!_0x2ec2e6)throw CliErrors[_0x27fc23(0x14d)]('Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.');const _0x3b54a9=readOptionalRuntimeRoleCode(_0x458266),_0x49fcde=_0x458266[_0x27fc23(0x138)](_0x27fc23(0x151))[_0x27fc23(0x139)](),_0x1e45c8=_0x458266['str'](_0x27fc23(0x13e))['trim']();if(_0x265338&&!_0x49fcde)throw CliErrors[_0x27fc23(0x14d)](_0x27fc23(0x136));if(_0x2ec2e6&&!_0x1e45c8)throw CliErrors['validation'](_0x27fc23(0x13a),_0x27fc23(0x14f));return{..._0x3b54a9?{'roleCode':_0x3b54a9}:{},..._0x265338?{'roleName':_0x49fcde}:{},..._0x2ec2e6?{'remark':_0x1e45c8}:{}};}async function prepare(_0x17e854){const _0x464026=a56_0x2dd0,_0x487cd6=await getRuntimeRoleById(_0x17e854[_0x464026(0x150)],_0x17e854['num']('id'));return assertCustomRuntimeRole(_0x487cd6,'update'),{'role':_0x487cd6,'body':{'id':_0x487cd6['id'],'appCode':_0x17e854[_0x464026(0x150)],...updateFields(_0x17e854)}};}export const roleUpdate={'service':'role','command':a56_0x57cfd2(0x13c),'description':a56_0x57cfd2(0x152),'risk':'high-risk-write','confirmationDescription':a56_0x57cfd2(0x143),'flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':a56_0x57cfd2(0x151),'type':'string','description':a56_0x57cfd2(0x14e)},{'name':a56_0x57cfd2(0x13e),'type':'string','description':a56_0x57cfd2(0x14c)}],async 'validate'(_0x124131){updateFields(_0x124131);},async 'dryRun'(_0x4218ed){const _0x253377=a56_0x57cfd2,{body:_0x163522}=await prepare(_0x4218ed);return dryRun('POST','/client/permit/role/update')[_0x253377(0x148)](_0x163522)[_0x253377(0x14b)](_0x253377(0x135))[_0x253377(0x144)]();},async 'execute'(_0x1c3e09){const _0x1846c7=a56_0x57cfd2,{role:_0x23c11e,body:_0x48c940}=await prepare(_0x1c3e09),_0xa5f0d7=await updateRuntimeAppRole(_0x48c940);return{'ok':!![],'data':runtimeRoleWriteResult(_0x1846c7(0x13c),{'roleId':_0x23c11e['id']},projectRuntimeRole(_0x23c11e),projectRuntimeRole(_0xa5f0d7),{'method':'POST','path':'/client/permit/role/update'})};}};
1
+ const a56_0x36b402=a56_0x33d0;(function(_0x3b43b1,_0x3ddb3c){const _0x2e3ab7=a56_0x33d0,_0x1f7e81=_0x3b43b1();while(!![]){try{const _0x2c3f7c=-parseInt(_0x2e3ab7(0x1f5))/0x1+parseInt(_0x2e3ab7(0x1fa))/0x2+parseInt(_0x2e3ab7(0x1f8))/0x3*(-parseInt(_0x2e3ab7(0x1fc))/0x4)+parseInt(_0x2e3ab7(0x1e3))/0x5*(parseInt(_0x2e3ab7(0x1ec))/0x6)+-parseInt(_0x2e3ab7(0x1ed))/0x7*(-parseInt(_0x2e3ab7(0x1e0))/0x8)+-parseInt(_0x2e3ab7(0x1f4))/0x9*(-parseInt(_0x2e3ab7(0x1e7))/0xa)+-parseInt(_0x2e3ab7(0x1df))/0xb;if(_0x2c3f7c===_0x3ddb3c)break;else _0x1f7e81['push'](_0x1f7e81['shift']());}catch(_0x862882){_0x1f7e81['push'](_0x1f7e81['shift']());}}}(a56_0x2a0e,0x4ef46));function a56_0x33d0(_0x328dcd,_0x59b362){_0x328dcd=_0x328dcd-0x1db;const _0x2a0e4d=a56_0x2a0e();let _0x33d0e3=_0x2a0e4d[_0x328dcd];return _0x33d0e3;}import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0xa42edd){const _0x5ab2a5=a56_0x33d0,_0x3878a3=_0xa42edd[_0x5ab2a5(0x1f1)](_0x5ab2a5(0x1e1))!==undefined,_0x571b48=_0xa42edd[_0x5ab2a5(0x1f1)](_0x5ab2a5(0x1f2))!==undefined,_0x522669=_0xa42edd[_0x5ab2a5(0x1f1)](_0x5ab2a5(0x1dd))!==undefined;if(!_0x3878a3&&!_0x571b48&&!_0x522669)throw CliErrors[_0x5ab2a5(0x1dc)]('Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.');const _0x5615b7=readOptionalRuntimeRoleCode(_0xa42edd),_0x46963c=_0xa42edd[_0x5ab2a5(0x1ee)](_0x5ab2a5(0x1f2))[_0x5ab2a5(0x1e9)](),_0x3c456b=_0xa42edd[_0x5ab2a5(0x1ee)]('remark')[_0x5ab2a5(0x1e9)]();if(_0x571b48&&!_0x46963c)throw CliErrors['validation'](_0x5ab2a5(0x1ea));if(_0x522669&&!_0x3c456b)throw CliErrors[_0x5ab2a5(0x1dc)]('--remark\x20must\x20not\x20be\x20blank.',_0x5ab2a5(0x1db));return{..._0x5615b7?{'roleCode':_0x5615b7}:{},..._0x571b48?{'roleName':_0x46963c}:{},..._0x522669?{'remark':_0x3c456b}:{}};}function a56_0x2a0e(){const _0x40954e=['role-code','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','2688155eCIHSd','body','New\x20non-empty\x20role\x20remark','build','10BpYdqj','Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','trim','--name\x20must\x20not\x20be\x20blank.','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','6MeaLzm','4415327XCOZoJ','str','New\x20role\x20name','string','flag','name','update','1398159yHNdCJ','258787dNyhiQ','POST','num','3XzurOj','appCode','842310oRDXyb','role','354252qLplPd','/client/permit/role/update','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','validation','remark','high-risk-write','11815650QOXkbz','8uEkUzo'];a56_0x2a0e=function(){return _0x40954e;};return a56_0x2a0e();}async function prepare(_0x48dfe1){const _0x53fbc9=a56_0x33d0,_0x3fd72f=await getRuntimeRoleById(_0x48dfe1[_0x53fbc9(0x1f9)],_0x48dfe1[_0x53fbc9(0x1f7)]('id'));return assertCustomRuntimeRole(_0x3fd72f,_0x53fbc9(0x1f3)),{'role':_0x3fd72f,'body':{'id':_0x3fd72f['id'],'appCode':_0x48dfe1[_0x53fbc9(0x1f9)],...updateFields(_0x48dfe1)}};}export const roleUpdate={'service':a56_0x36b402(0x1fb),'command':'update','description':a56_0x36b402(0x1e2),'risk':a56_0x36b402(0x1de),'confirmationDescription':a56_0x36b402(0x1e8),'flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':'name','type':a56_0x36b402(0x1f0),'description':a56_0x36b402(0x1ef)},{'name':'remark','type':a56_0x36b402(0x1f0),'description':a56_0x36b402(0x1e5)}],async 'validate'(_0x38d7cd){updateFields(_0x38d7cd);},async 'dryRun'(_0x2c6672){const _0x18cc13=a56_0x36b402,{body:_0x444c55}=await prepare(_0x2c6672);return dryRun(_0x18cc13(0x1f6),_0x18cc13(0x1fd))[_0x18cc13(0x1e4)](_0x444c55)['description'](_0x18cc13(0x1eb))[_0x18cc13(0x1e6)]();},async 'execute'(_0x16c903){const _0x3caa43=a56_0x36b402,{role:_0xf38017,body:_0x324606}=await prepare(_0x16c903),_0x531bae=await updateRuntimeAppRole(_0x324606);return{'ok':!![],'data':runtimeRoleWriteResult(_0x3caa43(0x1f3),{'roleId':_0xf38017['id']},projectRuntimeRole(_0xf38017),projectRuntimeRole(_0x531bae),{'method':'POST','path':_0x3caa43(0x1fd)})};}};
@@ -1 +1 @@
1
- const a57_0x691f2f=a57_0x187c;(function(_0xb39624,_0x41d5b0){const _0x67d196=a57_0x187c,_0x2160cd=_0xb39624();while(!![]){try{const _0x3513ea=-parseInt(_0x67d196(0xc9))/0x1*(-parseInt(_0x67d196(0xcc))/0x2)+parseInt(_0x67d196(0xc1))/0x3+-parseInt(_0x67d196(0xc4))/0x4*(-parseInt(_0x67d196(0xc3))/0x5)+parseInt(_0x67d196(0xcd))/0x6+-parseInt(_0x67d196(0xbf))/0x7*(-parseInt(_0x67d196(0xca))/0x8)+parseInt(_0x67d196(0xcf))/0x9*(-parseInt(_0x67d196(0xd8))/0xa)+-parseInt(_0x67d196(0xc6))/0xb;if(_0x3513ea===_0x41d5b0)break;else _0x2160cd['push'](_0x2160cd['shift']());}catch(_0x4debe5){_0x2160cd['push'](_0x2160cd['shift']());}}}(a57_0x407e,0x2d3cd));function a57_0x187c(_0xd5b72,_0x2063bc){_0xd5b72=_0xd5b72-0xbf;const _0x407ed9=a57_0x407e();let _0x187c02=_0x407ed9[_0xd5b72];return _0x187c02;}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';function a57_0x407e(){const _0x120887=['Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','10KxmaSf','16303yVWCji','shouldWrite','584376IoRWIa','POST','349885McidNq','16RaiOVK','/client/permit/user-role/update-user-list','9949324UaiqOA','before','warnings','36843bKmQTQ','816mrElHN','appCode','16ykemHJ','2015262GYBXTW','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','2277918xiJqiN','userId','role','body','user-add','build','after','roleList'];a57_0x407e=function(){return _0x120887;};return a57_0x407e();}export const roleUserAdd={'service':a57_0x691f2f(0xd1),'command':a57_0x691f2f(0xd3),'description':a57_0x691f2f(0xce),'risk':'high-risk-write','confirmationDescription':a57_0x691f2f(0xd7),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x28b158){const _0x42b55b=a57_0x691f2f,_0x44d29b=await prepareRuntimeMemberMutation(_0x28b158,'user-add');return dryRun('POST','/client/permit/user-role/update-user-list')[_0x42b55b(0xd2)]({'appCode':_0x28b158[_0x42b55b(0xcb)],'roleList':_0x44d29b[_0x42b55b(0xd6)]})['description'](_0x44d29b[_0x42b55b(0xc0)]?'Preview:\x20add\x20runtime\x20role\x20member':_0x44d29b['warnings'][0x0])[_0x42b55b(0xd4)]();},async 'execute'(_0x2a4338){const _0x243795=a57_0x691f2f,_0x2c16c7=await prepareRuntimeMemberMutation(_0x2a4338,'user-add');return _0x2c16c7[_0x243795(0xc0)]&&await updateRuntimeRoleUsers(_0x2a4338['appCode'],_0x2c16c7[_0x243795(0xd6)]),{'ok':!![],'data':runtimeRoleWriteResult('user-add',{'roleId':_0x2c16c7[_0x243795(0xd1)]['id'],'userId':_0x2c16c7[_0x243795(0xd0)]},_0x2c16c7[_0x243795(0xc7)],_0x2c16c7[_0x243795(0xd5)],{'method':_0x243795(0xc2),'path':_0x243795(0xc5)},_0x2c16c7[_0x243795(0xc8)])};}};
1
+ function a57_0x4d5a(_0x29f917,_0x22c636){_0x29f917=_0x29f917-0xda;const _0x47a604=a57_0x47a6();let _0x4d5a95=_0x47a604[_0x29f917];return _0x4d5a95;}const a57_0x547703=a57_0x4d5a;function a57_0x47a6(){const _0x443bfc=['22315EejRJg','appCode','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','role','Preview:\x20add\x20runtime\x20role\x20member','6hHlUdT','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','roleList','1454143vZzgcp','6891864XIVqbn','434358PxnIhR','after','description','9bfFvJA','POST','warnings','high-risk-write','/client/permit/user-role/update-user-list','152bEObUE','before','7688984sPkVta','22hsIJIw','10900470hyPOVb','shouldWrite','user-add','3573894irWhMh'];a57_0x47a6=function(){return _0x443bfc;};return a57_0x47a6();}(function(_0x3c36fe,_0x535dd8){const _0x34219b=a57_0x4d5a,_0x361bde=_0x3c36fe();while(!![]){try{const _0x6a2fc2=parseInt(_0x34219b(0xdd))/0x1+parseInt(_0x34219b(0xdf))/0x2+parseInt(_0x34219b(0xee))/0x3+parseInt(_0x34219b(0xe7))/0x4*(parseInt(_0x34219b(0xef))/0x5)+-parseInt(_0x34219b(0xda))/0x6*(-parseInt(_0x34219b(0xde))/0x7)+-parseInt(_0x34219b(0xe9))/0x8*(parseInt(_0x34219b(0xe2))/0x9)+-parseInt(_0x34219b(0xeb))/0xa*(parseInt(_0x34219b(0xea))/0xb);if(_0x6a2fc2===_0x535dd8)break;else _0x361bde['push'](_0x361bde['shift']());}catch(_0x3d7ac4){_0x361bde['push'](_0x361bde['shift']());}}}(a57_0x47a6,0xd5c1d));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':a57_0x547703(0xf2),'command':a57_0x547703(0xed),'description':a57_0x547703(0xf1),'risk':a57_0x547703(0xe5),'confirmationDescription':a57_0x547703(0xdb),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x4240c1){const _0x3e9145=a57_0x547703,_0x370dec=await prepareRuntimeMemberMutation(_0x4240c1,_0x3e9145(0xed));return dryRun('POST','/client/permit/user-role/update-user-list')['body']({'appCode':_0x4240c1[_0x3e9145(0xf0)],'roleList':_0x370dec[_0x3e9145(0xdc)]})[_0x3e9145(0xe1)](_0x370dec[_0x3e9145(0xec)]?_0x3e9145(0xf3):_0x370dec[_0x3e9145(0xe4)][0x0])['build']();},async 'execute'(_0x3cf5ae){const _0x4fe91d=a57_0x547703,_0x36343c=await prepareRuntimeMemberMutation(_0x3cf5ae,_0x4fe91d(0xed));return _0x36343c[_0x4fe91d(0xec)]&&await updateRuntimeRoleUsers(_0x3cf5ae[_0x4fe91d(0xf0)],_0x36343c[_0x4fe91d(0xdc)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x4fe91d(0xed),{'roleId':_0x36343c['role']['id'],'userId':_0x36343c['userId']},_0x36343c[_0x4fe91d(0xe8)],_0x36343c[_0x4fe91d(0xe0)],{'method':_0x4fe91d(0xe3),'path':_0x4fe91d(0xe6)},_0x36343c[_0x4fe91d(0xe4)])};}};
@@ -1 +1 @@
1
- function a58_0x2e7d(_0x5f1684,_0x31d64c){_0x5f1684=_0x5f1684-0x179;const _0x548d3c=a58_0x548d();let _0x2e7df2=_0x548d3c[_0x5f1684];return _0x2e7df2;}const a58_0x3a9e51=a58_0x2e7d;(function(_0x7e2615,_0x1b435a){const _0xdf8b29=a58_0x2e7d,_0x143b7e=_0x7e2615();while(!![]){try{const _0xd295e9=-parseInt(_0xdf8b29(0x188))/0x1+-parseInt(_0xdf8b29(0x18c))/0x2+-parseInt(_0xdf8b29(0x184))/0x3+-parseInt(_0xdf8b29(0x17c))/0x4+-parseInt(_0xdf8b29(0x18d))/0x5*(-parseInt(_0xdf8b29(0x17b))/0x6)+-parseInt(_0xdf8b29(0x181))/0x7+parseInt(_0xdf8b29(0x18b))/0x8;if(_0xd295e9===_0x1b435a)break;else _0x143b7e['push'](_0x143b7e['shift']());}catch(_0x16c154){_0x143b7e['push'](_0x143b7e['shift']());}}}(a58_0x548d,0x3254e));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';function a58_0x548d(){const _0x378b29=['Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','shouldWrite','154859QaKKWx','appCode','body','5026704ULkvUe','449862HRTPgs','30uAPEuK','userId','build','roleList','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','user-remove','description','307728ekYaVj','650024nUOiTU','before','POST','warnings','role','511518YIBKSz','/client/permit/user-role/update-user-list','Preview:\x20remove\x20runtime\x20role\x20member','343614beQzbW','after'];a58_0x548d=function(){return _0x378b29;};return a58_0x548d();}export const roleUserRemove={'service':'role','command':'user-remove','description':a58_0x3a9e51(0x191),'risk':'high-risk-write','confirmationDescription':a58_0x3a9e51(0x186),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x5dd049){const _0xbd3289=a58_0x3a9e51,_0x1abbc9=await prepareRuntimeMemberMutation(_0x5dd049,_0xbd3289(0x179));return dryRun(_0xbd3289(0x17e),_0xbd3289(0x182))[_0xbd3289(0x18a)]({'appCode':_0x5dd049[_0xbd3289(0x189)],'roleList':_0x1abbc9[_0xbd3289(0x190)]})[_0xbd3289(0x17a)](_0x1abbc9[_0xbd3289(0x187)]?_0xbd3289(0x183):_0x1abbc9[_0xbd3289(0x17f)][0x0])[_0xbd3289(0x18f)]();},async 'execute'(_0x3143dc){const _0x27f939=a58_0x3a9e51,_0x4625c6=await prepareRuntimeMemberMutation(_0x3143dc,'user-remove');return _0x4625c6[_0x27f939(0x187)]&&await updateRuntimeRoleUsers(_0x3143dc[_0x27f939(0x189)],_0x4625c6[_0x27f939(0x190)]),{'ok':!![],'data':runtimeRoleWriteResult('user-remove',{'roleId':_0x4625c6[_0x27f939(0x180)]['id'],'userId':_0x4625c6[_0x27f939(0x18e)]},_0x4625c6[_0x27f939(0x17d)],_0x4625c6[_0x27f939(0x185)],{'method':_0x27f939(0x17e),'path':_0x27f939(0x182)},_0x4625c6[_0x27f939(0x17f)])};}};
1
+ const a58_0x2a96c2=a58_0x1ea8;function a58_0x5a97(){const _0xd95774=['before','Preview:\x20remove\x20runtime\x20role\x20member','after','84GqaAYN','role','warnings','roleList','user-remove','shouldWrite','3201136KrkKIs','12OJDsmK','7315315OQDJxb','18484848fnrXjP','50974txOLHk','userId','appCode','1207525crXnZs','3230852CXLZJA','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','description','70252MluETD','/client/permit/user-role/update-user-list','high-risk-write'];a58_0x5a97=function(){return _0xd95774;};return a58_0x5a97();}function a58_0x1ea8(_0x5f45f3,_0x4a6dec){_0x5f45f3=_0x5f45f3-0x1d4;const _0x5a974f=a58_0x5a97();let _0x1ea804=_0x5a974f[_0x5f45f3];return _0x1ea804;}(function(_0x374862,_0x5b818a){const _0x3ca2ec=a58_0x1ea8,_0xdc724d=_0x374862();while(!![]){try{const _0x53785d=-parseInt(_0x3ca2ec(0x1e5))/0x1+parseInt(_0x3ca2ec(0x1de))/0x2*(parseInt(_0x3ca2ec(0x1d4))/0x3)+parseInt(_0x3ca2ec(0x1e2))/0x4+-parseInt(_0x3ca2ec(0x1e1))/0x5*(-parseInt(_0x3ca2ec(0x1db))/0x6)+parseInt(_0x3ca2ec(0x1dc))/0x7+-parseInt(_0x3ca2ec(0x1da))/0x8+-parseInt(_0x3ca2ec(0x1dd))/0x9;if(_0x53785d===_0x5b818a)break;else _0xdc724d['push'](_0xdc724d['shift']());}catch(_0x20f266){_0xdc724d['push'](_0xdc724d['shift']());}}}(a58_0x5a97,0x80352));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':a58_0x2a96c2(0x1d5),'command':a58_0x2a96c2(0x1d8),'description':'Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','risk':a58_0x2a96c2(0x1e7),'confirmationDescription':a58_0x2a96c2(0x1e3),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0xe3c15b){const _0x23c6e7=a58_0x2a96c2,_0x3db9a1=await prepareRuntimeMemberMutation(_0xe3c15b,_0x23c6e7(0x1d8));return dryRun('POST',_0x23c6e7(0x1e6))['body']({'appCode':_0xe3c15b[_0x23c6e7(0x1e0)],'roleList':_0x3db9a1[_0x23c6e7(0x1d7)]})[_0x23c6e7(0x1e4)](_0x3db9a1[_0x23c6e7(0x1d9)]?_0x23c6e7(0x1e9):_0x3db9a1[_0x23c6e7(0x1d6)][0x0])['build']();},async 'execute'(_0xab9f5){const _0x5c585c=a58_0x2a96c2,_0x876c9=await prepareRuntimeMemberMutation(_0xab9f5,_0x5c585c(0x1d8));return _0x876c9[_0x5c585c(0x1d9)]&&await updateRuntimeRoleUsers(_0xab9f5[_0x5c585c(0x1e0)],_0x876c9[_0x5c585c(0x1d7)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x5c585c(0x1d8),{'roleId':_0x876c9[_0x5c585c(0x1d5)]['id'],'userId':_0x876c9[_0x5c585c(0x1df)]},_0x876c9[_0x5c585c(0x1e8)],_0x876c9[_0x5c585c(0x1ea)],{'method':'POST','path':'/client/permit/user-role/update-user-list'},_0x876c9[_0x5c585c(0x1d6)])};}};
@@ -1 +1 @@
1
- const a59_0x1c3407=a59_0x5398;function a59_0x3279(){const _0x539462=['List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','prompt','POST','str','appCode','\x20immediately','Page\x20size\x20from\x201\x20to\x20100','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','Preview:\x20delete\x20schedule\x20','\x20from\x20schedule\x20','taskId','high-risk-write','scheduled-at','create','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','/api/harness/apps/','637160kQeleS','scheduleId','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','schedule','cron','validation','Queued\x20Task\x20','CRON','trim','build','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','run','num','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','136TFJfgF','string','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','model','112089mMOqdR','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','Show\x20one\x20schedule\x20by\x20schedule\x20ID','\x20schedule\x20','number','body','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','list','Schedule\x20title','description','23736420zndHjA','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','deepseek-v4-flash-0731','/schedules','20fnJWcz','schedule-id','isSafeInteger','2784816lMlGQG','Schedule\x20kind:\x20CRON\x20or\x20ONCE','Deleted\x20schedule\x20','length','Created\x20','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','cursor','title','limit','ONCE','UTC','--prompt\x20must\x20not\x20be\x20blank.','4311340GCYDkz','Preview:\x20create\x20an\x20Agent\x20schedule','45SgSrqK','kimi/k3','1439788ycLfST','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','/run','--title\x20must\x20not\x20be\x20blank.','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','kind','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','12907OupkGQ','read','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','detail'];a59_0x3279=function(){return _0x539462;};return a59_0x3279();}(function(_0x49f409,_0x4c31d9){const _0xdecc3=a59_0x5398,_0x3580ba=_0x49f409();while(!![]){try{const _0x2b4fb6=parseInt(_0xdecc3(0x1ff))/0x1*(-parseInt(_0xdecc3(0x221))/0x2)+parseInt(_0xdecc3(0x226))/0x3*(parseInt(_0xdecc3(0x234))/0x4)+-parseInt(_0xdecc3(0x1f4))/0x5+-parseInt(_0xdecc3(0x237))/0x6+-parseInt(_0xdecc3(0x1f8))/0x7+parseInt(_0xdecc3(0x213))/0x8*(parseInt(_0xdecc3(0x1f6))/0x9)+parseInt(_0xdecc3(0x230))/0xa;if(_0x2b4fb6===_0x4c31d9)break;else _0x3580ba['push'](_0x3580ba['shift']());}catch(_0x2613ce){_0x3580ba['push'](_0x3580ba['shift']());}}}(a59_0x3279,0x86036));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':a59_0x1c3407(0x1fd),'type':a59_0x1c3407(0x222),'required':!![],'enum':[a59_0x1c3407(0x21a),a59_0x1c3407(0x1f1)],'description':a59_0x1c3407(0x238)},CRON_FLAG={'name':a59_0x1c3407(0x217),'type':a59_0x1c3407(0x222),'description':a59_0x1c3407(0x1fe)},SCHEDULED_AT_FLAG={'name':a59_0x1c3407(0x20f),'type':a59_0x1c3407(0x222),'description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a59_0x1c3407(0x1ef),'type':'string','required':!![],'description':a59_0x1c3407(0x22e)},PROMPT_FLAG={'name':a59_0x1c3407(0x204),'type':a59_0x1c3407(0x222),'required':!![],'description':a59_0x1c3407(0x201)},MODEL_FLAG={'name':a59_0x1c3407(0x225),'type':a59_0x1c3407(0x222),'enum':[a59_0x1c3407(0x1f7),a59_0x1c3407(0x232),'deepseek-v4-pro-0813'],'default':a59_0x1c3407(0x232),'description':a59_0x1c3407(0x220)},SCHEDULE_ID_FLAG={'name':a59_0x1c3407(0x235),'type':a59_0x1c3407(0x222),'required':!![],'description':'Schedule\x20UUID','pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a59_0x1c3407(0x211)}},LIMIT_FLAG={'name':'limit','type':a59_0x1c3407(0x22a),'default':0x14,'description':a59_0x1c3407(0x209)},CURSOR_FLAG={'name':a59_0x1c3407(0x1ee),'type':a59_0x1c3407(0x222),'description':a59_0x1c3407(0x1fc)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x1bd1d3){const _0x352589=a59_0x1c3407,_0x428c8f=_0x1bd1d3['str'](_0x352589(0x1fd)),_0x194e62=_0x1bd1d3[_0x352589(0x206)](_0x352589(0x1ef))[_0x352589(0x21b)](),_0x39b989=_0x1bd1d3[_0x352589(0x206)](_0x352589(0x204))[_0x352589(0x21b)](),_0x24f7d7=_0x1bd1d3[_0x352589(0x206)](_0x352589(0x225)),_0x5865a5=_0x1bd1d3[_0x352589(0x206)](_0x352589(0x217)),_0x5745ca=_0x1bd1d3[_0x352589(0x206)](_0x352589(0x20f));if(!_0x194e62)throw CliErrors[_0x352589(0x218)](_0x352589(0x1fb));if(!_0x39b989)throw CliErrors[_0x352589(0x218)](_0x352589(0x1f3));if(_0x428c8f===_0x352589(0x21a)){if(!_0x5865a5||_0x5745ca)throw CliErrors[_0x352589(0x218)](_0x352589(0x224));return{'kind':_0x428c8f,'timezone':_0x352589(0x1f2),'cron':_0x5865a5,'title':_0x194e62,'prompt':_0x39b989,'model':_0x24f7d7};}if(_0x428c8f===_0x352589(0x1f1)){if(!_0x5745ca||_0x5865a5)throw CliErrors[_0x352589(0x218)](_0x352589(0x223));return{'kind':_0x428c8f,'timezone':'UTC','scheduledAt':_0x5745ca,'title':_0x194e62,'prompt':_0x39b989,'model':_0x24f7d7};}throw CliErrors[_0x352589(0x218)](_0x352589(0x1ed));}function scheduleCollectionPath(_0x3c6d7d){const _0xd93219=a59_0x1c3407;return _0xd93219(0x212)+encodeURIComponent(_0x3c6d7d)+_0xd93219(0x233);}function a59_0x5398(_0x5d2505,_0x30ae66){_0x5d2505=_0x5d2505-0x1ec;const _0x327930=a59_0x3279();let _0x53988b=_0x327930[_0x5d2505];return _0x53988b;}function scheduleItemPath(_0x185534,_0x324342){return scheduleCollectionPath(_0x185534)+'/'+encodeURIComponent(_0x324342);}const scheduleValidate={'service':a59_0x1c3407(0x216),'command':'validate','description':'Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','risk':a59_0x1c3407(0x200),'flags':INPUT_FLAGS,async 'validate'(_0x17255e){readScheduleInput(_0x17255e);},async 'execute'(_0x8f2a57){const _0x1b6e86=readScheduleInput(_0x8f2a57),_0x479c1e=await validateRuntimeSchedule(_0x8f2a57['appCode'],_0x1b6e86);return{'ok':!![],'data':_0x479c1e,'message':'Schedule\x20input\x20is\x20valid'};}},scheduleCreate={'service':'schedule','command':a59_0x1c3407(0x210),'description':a59_0x1c3407(0x1f9),'risk':a59_0x1c3407(0x20e),'confirmationDescription':a59_0x1c3407(0x20a),'flags':INPUT_FLAGS,async 'validate'(_0x4348c5){readScheduleInput(_0x4348c5);},async 'execute'(_0xf2d925){const _0x1e55ff=a59_0x1c3407,_0x3c728a=readScheduleInput(_0xf2d925),_0x2a60c2=await validateRuntimeSchedule(_0xf2d925['appCode'],_0x3c728a),_0x152eef=await createRuntimeSchedule(_0xf2d925['appCode'],_0x2a60c2);return{'ok':!![],'data':_0x152eef,'message':_0x1e55ff(0x1ec)+_0x152eef[_0x1e55ff(0x1fd)]+_0x1e55ff(0x229)+_0x152eef[_0x1e55ff(0x214)]};},async 'dryRun'(_0x42a47d){const _0x16dc77=a59_0x1c3407,_0x231cdf=readScheduleInput(_0x42a47d);return dryRun(_0x16dc77(0x205),scheduleCollectionPath(_0x42a47d['appCode']))[_0x16dc77(0x22b)](_0x231cdf)[_0x16dc77(0x22f)](_0x16dc77(0x1f5))[_0x16dc77(0x21c)]();}},scheduleList={'service':a59_0x1c3407(0x216),'command':a59_0x1c3407(0x22d),'description':a59_0x1c3407(0x203),'risk':a59_0x1c3407(0x200),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x36cd21){const _0x2c2170=a59_0x1c3407,_0x1bd291=_0x36cd21[_0x2c2170(0x21f)](_0x2c2170(0x1f0));if(!Number[_0x2c2170(0x236)](_0x1bd291)||_0x1bd291<0x1||_0x1bd291>0x64)throw CliErrors[_0x2c2170(0x218)](_0x2c2170(0x231));const _0xaca1c1=_0x36cd21[_0x2c2170(0x206)](_0x2c2170(0x1ee));if(_0xaca1c1&&(_0xaca1c1[_0x2c2170(0x23a)]>0x400||_0xaca1c1[_0x2c2170(0x21b)]()!==_0xaca1c1))throw CliErrors[_0x2c2170(0x218)](_0x2c2170(0x22c));},async 'execute'(_0x4d7c44){const _0x5641b4=a59_0x1c3407,_0xe86f41=_0x4d7c44[_0x5641b4(0x206)](_0x5641b4(0x1ee)),_0x32005b=await listRuntimeSchedules(_0x4d7c44[_0x5641b4(0x207)],{'kind':_0x4d7c44[_0x5641b4(0x206)](_0x5641b4(0x1fd)),'limit':_0x4d7c44[_0x5641b4(0x21f)](_0x5641b4(0x1f0)),..._0xe86f41?{'cursor':_0xe86f41}:{}});return{'ok':!![],'data':_0x32005b};}},scheduleDetail={'service':'schedule','command':a59_0x1c3407(0x202),'description':a59_0x1c3407(0x228),'risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x57ee46){const _0x4ed17f=a59_0x1c3407,_0x42e9a2=await getRuntimeSchedule(_0x57ee46[_0x4ed17f(0x207)],_0x57ee46[_0x4ed17f(0x206)](_0x4ed17f(0x235)));return{'ok':!![],'data':_0x42e9a2};}},scheduleRun={'service':a59_0x1c3407(0x216),'command':a59_0x1c3407(0x21e),'description':a59_0x1c3407(0x215),'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'(_0x84914){const _0xf7e256=a59_0x1c3407,_0x425321=_0x84914[_0xf7e256(0x206)](_0xf7e256(0x235)),_0x39393d=await runRuntimeSchedule(_0x84914[_0xf7e256(0x207)],_0x425321);return{'ok':!![],'data':_0x39393d,'message':_0xf7e256(0x219)+_0x39393d[_0xf7e256(0x20d)]+_0xf7e256(0x20c)+_0x425321};},async 'dryRun'(_0x3437d8){const _0x2becde=a59_0x1c3407,_0x3e732a=_0x3437d8[_0x2becde(0x206)](_0x2becde(0x235));return dryRun(_0x2becde(0x205),scheduleItemPath(_0x3437d8[_0x2becde(0x207)],_0x3e732a)+_0x2becde(0x1fa))[_0x2becde(0x22f)]('Preview:\x20run\x20schedule\x20'+_0x3e732a+_0x2becde(0x208))['build']();}},scheduleDelete={'service':a59_0x1c3407(0x216),'command':'delete','description':a59_0x1c3407(0x227),'risk':a59_0x1c3407(0x20e),'confirmationDescription':a59_0x1c3407(0x21d),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x31a43b){const _0x306f83=a59_0x1c3407,_0x305287=_0x31a43b[_0x306f83(0x206)]('schedule-id'),_0x1902a6=await deleteRuntimeSchedule(_0x31a43b['appCode'],_0x305287);return{'ok':!![],'data':_0x1902a6,'message':_0x306f83(0x239)+_0x305287};},async 'dryRun'(_0x15f624){const _0x1806e8=a59_0x1c3407,_0x326795=_0x15f624[_0x1806e8(0x206)](_0x1806e8(0x235));return dryRun('DELETE',scheduleItemPath(_0x15f624[_0x1806e8(0x207)],_0x326795))[_0x1806e8(0x22f)](_0x1806e8(0x20b)+_0x326795)['build']();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
1
+ function a59_0x16d7(){const _0x3353f0=['num','132871ryeqYt','isSafeInteger','Show\x20one\x20schedule\x20by\x20schedule\x20ID','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','body','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','Schedule\x20kind:\x20CRON\x20or\x20ONCE','detail','Queued\x20Task\x20','length','model','751610CAFrjA','appCode','/run','Preview:\x20delete\x20schedule\x20','/schedules','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','description','schedule-id','cron','Schedule\x20UUID','\x20schedule\x20','scheduled-at','765177tUpjwC','read','/api/harness/apps/','Schedule\x20title','list','Created\x20','validation','\x20from\x20schedule\x20','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','kind','string','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','CRON','POST','build','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','number','run','trim','7XOqVcp','scheduleId','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','create','Page\x20size\x20from\x201\x20to\x20100','4okRYtd','2106492mRgDyz','limit','schedule','prompt','Preview:\x20run\x20schedule\x20','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','--prompt\x20must\x20not\x20be\x20blank.','Preview:\x20create\x20an\x20Agent\x20schedule','ONCE','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','\x20immediately','30879855mXflWu','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','kimi/k3','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','deepseek-v4-flash-0731','title','8310955DySzla','high-risk-write','4141416iBfRhB','str','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','cursor'];a59_0x16d7=function(){return _0x3353f0;};return a59_0x16d7();}const a59_0x1df674=a59_0x3631;(function(_0x362c54,_0x428527){const _0x6b6384=a59_0x3631,_0x194aff=_0x362c54();while(!![]){try{const _0x5c3177=-parseInt(_0x6b6384(0xe0))/0x1+-parseInt(_0x6b6384(0xeb))/0x2+-parseInt(_0x6b6384(0xae))/0x3+parseInt(_0x6b6384(0xc6))/0x4*(-parseInt(_0x6b6384(0xd9))/0x5)+parseInt(_0x6b6384(0xc7))/0x6*(parseInt(_0x6b6384(0xc1))/0x7)+-parseInt(_0x6b6384(0xdb))/0x8+parseInt(_0x6b6384(0xd2))/0x9;if(_0x5c3177===_0x428527)break;else _0x194aff['push'](_0x194aff['shift']());}catch(_0x5d2932){_0x194aff['push'](_0x194aff['shift']());}}}(a59_0x16d7,0xccbae));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';function a59_0x3631(_0x1e36a7,_0x5b16bc){_0x1e36a7=_0x1e36a7-0xa9;const _0x16d78e=a59_0x16d7();let _0x363199=_0x16d78e[_0x1e36a7];return _0x363199;}const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':'kind','type':a59_0x1df674(0xb8),'required':!![],'enum':[a59_0x1df674(0xba),a59_0x1df674(0xcf)],'description':a59_0x1df674(0xe6)},CRON_FLAG={'name':'cron','type':'string','description':a59_0x1df674(0xd0)},SCHEDULED_AT_FLAG={'name':a59_0x1df674(0xad),'type':'string','description':a59_0x1df674(0xd4)},TITLE_FLAG={'name':a59_0x1df674(0xd8),'type':a59_0x1df674(0xb8),'required':!![],'description':a59_0x1df674(0xb1)},PROMPT_FLAG={'name':a59_0x1df674(0xca),'type':a59_0x1df674(0xb8),'required':!![],'description':a59_0x1df674(0xb6)},MODEL_FLAG={'name':a59_0x1df674(0xea),'type':a59_0x1df674(0xb8),'enum':[a59_0x1df674(0xd5),'deepseek-v4-flash-0731','deepseek-v4-pro-0813'],'default':a59_0x1df674(0xd7),'description':'Task\x20model\x20used\x20when\x20the\x20schedule\x20runs'},SCHEDULE_ID_FLAG={'name':'schedule-id','type':a59_0x1df674(0xb8),'required':!![],'description':a59_0x1df674(0xab),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a59_0x1df674(0xcc)}},LIMIT_FLAG={'name':a59_0x1df674(0xc8),'type':a59_0x1df674(0xbe),'default':0x14,'description':a59_0x1df674(0xc5)},CURSOR_FLAG={'name':'cursor','type':a59_0x1df674(0xb8),'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(_0x193e85){const _0x587b54=a59_0x1df674,_0x4f3aaa=_0x193e85[_0x587b54(0xdc)](_0x587b54(0xb7)),_0x14e365=_0x193e85['str']('title')[_0x587b54(0xc0)](),_0x1990b3=_0x193e85[_0x587b54(0xdc)](_0x587b54(0xca))[_0x587b54(0xc0)](),_0x43c8b7=_0x193e85[_0x587b54(0xdc)](_0x587b54(0xea)),_0x5f2528=_0x193e85[_0x587b54(0xdc)](_0x587b54(0xaa)),_0x35a1a2=_0x193e85[_0x587b54(0xdc)](_0x587b54(0xad));if(!_0x14e365)throw CliErrors[_0x587b54(0xb4)]('--title\x20must\x20not\x20be\x20blank.');if(!_0x1990b3)throw CliErrors[_0x587b54(0xb4)](_0x587b54(0xcd));if(_0x4f3aaa==='CRON'){if(!_0x5f2528||_0x35a1a2)throw CliErrors['validation'](_0x587b54(0xf0));return{'kind':_0x4f3aaa,'timezone':'UTC','cron':_0x5f2528,'title':_0x14e365,'prompt':_0x1990b3,'model':_0x43c8b7};}if(_0x4f3aaa===_0x587b54(0xcf)){if(!_0x35a1a2||_0x5f2528)throw CliErrors[_0x587b54(0xb4)](_0x587b54(0xbd));return{'kind':_0x4f3aaa,'timezone':'UTC','scheduledAt':_0x35a1a2,'title':_0x14e365,'prompt':_0x1990b3,'model':_0x43c8b7};}throw CliErrors[_0x587b54(0xb4)](_0x587b54(0xb9));}function scheduleCollectionPath(_0x19d4da){const _0x52f25f=a59_0x1df674;return _0x52f25f(0xb0)+encodeURIComponent(_0x19d4da)+_0x52f25f(0xef);}function scheduleItemPath(_0x1161c5,_0x570ce8){return scheduleCollectionPath(_0x1161c5)+'/'+encodeURIComponent(_0x570ce8);}const scheduleValidate={'service':a59_0x1df674(0xc9),'command':'validate','description':'Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','risk':a59_0x1df674(0xaf),'flags':INPUT_FLAGS,async 'validate'(_0xaa2f9d){readScheduleInput(_0xaa2f9d);},async 'execute'(_0x171208){const _0x5f84fb=readScheduleInput(_0x171208),_0x20286d=await validateRuntimeSchedule(_0x171208['appCode'],_0x5f84fb);return{'ok':!![],'data':_0x20286d,'message':'Schedule\x20input\x20is\x20valid'};}},scheduleCreate={'service':a59_0x1df674(0xc9),'command':a59_0x1df674(0xc4),'description':a59_0x1df674(0xe3),'risk':a59_0x1df674(0xda),'confirmationDescription':a59_0x1df674(0xd3),'flags':INPUT_FLAGS,async 'validate'(_0x9a93da){readScheduleInput(_0x9a93da);},async 'execute'(_0x516586){const _0x280f4f=a59_0x1df674,_0x3e4a8a=readScheduleInput(_0x516586),_0x54e7fa=await validateRuntimeSchedule(_0x516586[_0x280f4f(0xec)],_0x3e4a8a),_0x57cd13=await createRuntimeSchedule(_0x516586[_0x280f4f(0xec)],_0x54e7fa);return{'ok':!![],'data':_0x57cd13,'message':_0x280f4f(0xb3)+_0x57cd13[_0x280f4f(0xb7)]+_0x280f4f(0xac)+_0x57cd13[_0x280f4f(0xc2)]};},async 'dryRun'(_0x1318c4){const _0x349aa2=a59_0x1df674,_0x3f3734=readScheduleInput(_0x1318c4);return dryRun('POST',scheduleCollectionPath(_0x1318c4[_0x349aa2(0xec)]))[_0x349aa2(0xe4)](_0x3f3734)[_0x349aa2(0xf1)](_0x349aa2(0xce))[_0x349aa2(0xbc)]();}},scheduleList={'service':'schedule','command':a59_0x1df674(0xb2),'description':a59_0x1df674(0xd6),'risk':a59_0x1df674(0xaf),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x108722){const _0x212ae0=a59_0x1df674,_0x4b8f2b=_0x108722['num']('limit');if(!Number[_0x212ae0(0xe1)](_0x4b8f2b)||_0x4b8f2b<0x1||_0x4b8f2b>0x64)throw CliErrors[_0x212ae0(0xb4)](_0x212ae0(0xdd));const _0x61146b=_0x108722[_0x212ae0(0xdc)](_0x212ae0(0xde));if(_0x61146b&&(_0x61146b[_0x212ae0(0xe9)]>0x400||_0x61146b[_0x212ae0(0xc0)]()!==_0x61146b))throw CliErrors[_0x212ae0(0xb4)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0x9b86e6){const _0x523739=a59_0x1df674,_0x30347b=_0x9b86e6[_0x523739(0xdc)]('cursor'),_0x438aaa=await listRuntimeSchedules(_0x9b86e6[_0x523739(0xec)],{'kind':_0x9b86e6[_0x523739(0xdc)]('kind'),'limit':_0x9b86e6[_0x523739(0xdf)](_0x523739(0xc8)),..._0x30347b?{'cursor':_0x30347b}:{}});return{'ok':!![],'data':_0x438aaa};}},scheduleDetail={'service':'schedule','command':a59_0x1df674(0xe7),'description':a59_0x1df674(0xe2),'risk':a59_0x1df674(0xaf),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x338326){const _0x3eeb2f=a59_0x1df674,_0x2cb18d=await getRuntimeSchedule(_0x338326['appCode'],_0x338326[_0x3eeb2f(0xdc)](_0x3eeb2f(0xa9)));return{'ok':!![],'data':_0x2cb18d};}},scheduleRun={'service':'schedule','command':a59_0x1df674(0xbf),'description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':a59_0x1df674(0xda),'confirmationDescription':'Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xd5d461){const _0xe68196=a59_0x1df674,_0x3bc2c8=_0xd5d461[_0xe68196(0xdc)](_0xe68196(0xa9)),_0x418e67=await runRuntimeSchedule(_0xd5d461[_0xe68196(0xec)],_0x3bc2c8);return{'ok':!![],'data':_0x418e67,'message':_0xe68196(0xe8)+_0x418e67['taskId']+_0xe68196(0xb5)+_0x3bc2c8};},async 'dryRun'(_0x489d33){const _0x387d0d=a59_0x1df674,_0x971359=_0x489d33[_0x387d0d(0xdc)](_0x387d0d(0xa9));return dryRun(_0x387d0d(0xbb),scheduleItemPath(_0x489d33[_0x387d0d(0xec)],_0x971359)+_0x387d0d(0xed))[_0x387d0d(0xf1)](_0x387d0d(0xcb)+_0x971359+_0x387d0d(0xd1))[_0x387d0d(0xbc)]();}},scheduleDelete={'service':a59_0x1df674(0xc9),'command':'delete','description':a59_0x1df674(0xc3),'risk':a59_0x1df674(0xda),'confirmationDescription':a59_0x1df674(0xe5),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x50358d){const _0x221cdb=a59_0x1df674,_0x45984e=_0x50358d['str'](_0x221cdb(0xa9)),_0x21e910=await deleteRuntimeSchedule(_0x50358d[_0x221cdb(0xec)],_0x45984e);return{'ok':!![],'data':_0x21e910,'message':'Deleted\x20schedule\x20'+_0x45984e};},async 'dryRun'(_0x2ffa55){const _0x26df6c=a59_0x1df674,_0x4b39af=_0x2ffa55[_0x26df6c(0xdc)](_0x26df6c(0xa9));return dryRun('DELETE',scheduleItemPath(_0x2ffa55[_0x26df6c(0xec)],_0x4b39af))['description'](_0x26df6c(0xee)+_0x4b39af)[_0x26df6c(0xbc)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
@@ -1 +1 @@
1
- function a60_0x53f5(_0x893efe,_0x51222c){_0x893efe=_0x893efe-0x172;const _0x12a873=a60_0x12a8();let _0x53f562=_0x12a873[_0x893efe];return _0x53f562;}const a60_0x192d2c=a60_0x53f5;(function(_0x522927,_0x42f2fc){const _0x4a15fc=a60_0x53f5,_0x26d32d=_0x522927();while(!![]){try{const _0xc8cb15=parseInt(_0x4a15fc(0x174))/0x1*(parseInt(_0x4a15fc(0x177))/0x2)+parseInt(_0x4a15fc(0x173))/0x3*(-parseInt(_0x4a15fc(0x175))/0x4)+-parseInt(_0x4a15fc(0x17e))/0x5*(parseInt(_0x4a15fc(0x172))/0x6)+-parseInt(_0x4a15fc(0x178))/0x7+parseInt(_0x4a15fc(0x17c))/0x8+-parseInt(_0x4a15fc(0x17b))/0x9*(parseInt(_0x4a15fc(0x17f))/0xa)+parseInt(_0x4a15fc(0x17a))/0xb;if(_0xc8cb15===_0x42f2fc)break;else _0x26d32d['push'](_0x26d32d['shift']());}catch(_0x5ca686){_0x26d32d['push'](_0x26d32d['shift']());}}}(a60_0x12a8,0xc57c2));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x1afa81){const _0x3d8cd6=await buildSchemaPayload();return{'ok':!![],'data':_0x3d8cd6};}export const schemaDefinition={'service':a60_0x192d2c(0x179),'command':a60_0x192d2c(0x17d),'description':a60_0x192d2c(0x176),'risk':a60_0x192d2c(0x180),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};function a60_0x12a8(){const _0x53c68b=['19732IyRCyH','Export\x20machine-readable\x20command\x20schema\x20(JSON)','2SpPHWu','367339oZngMD','schema','27604082QccJsg','9dRqcDa','2065448xzaaZl','export','5WrmjgB','6904050ahqAnL','read','7946694IFWeod','210uyyBrC','453896UitzHL'];a60_0x12a8=function(){return _0x53c68b;};return a60_0x12a8();}
1
+ const a60_0xdc3d3e=a60_0x384f;(function(_0x11a475,_0x27db97){const _0x26d707=a60_0x384f,_0x4f3393=_0x11a475();while(!![]){try{const _0x540dfc=-parseInt(_0x26d707(0x1b9))/0x1+-parseInt(_0x26d707(0x1c3))/0x2*(-parseInt(_0x26d707(0x1c7))/0x3)+parseInt(_0x26d707(0x1c1))/0x4+-parseInt(_0x26d707(0x1ba))/0x5+parseInt(_0x26d707(0x1bf))/0x6*(parseInt(_0x26d707(0x1bc))/0x7)+-parseInt(_0x26d707(0x1be))/0x8*(-parseInt(_0x26d707(0x1c2))/0x9)+-parseInt(_0x26d707(0x1c4))/0xa*(parseInt(_0x26d707(0x1bb))/0xb);if(_0x540dfc===_0x27db97)break;else _0x4f3393['push'](_0x4f3393['shift']());}catch(_0x153cd4){_0x4f3393['push'](_0x4f3393['shift']());}}}(a60_0x4a6a,0x27163));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x1dc409){const _0x182060=await buildSchemaPayload();return{'ok':!![],'data':_0x182060};}function a60_0x4a6a(){const _0x4f9dfb=['680388QZufiw','export','1066372kJqfAQ','3051goiPUe','2PZBFMP','3451490tMcGqb','schema','read','75783KLHQSs','129487LFfmHd','536580rDuNtT','11RtgbOU','14DrQwTC','Export\x20machine-readable\x20command\x20schema\x20(JSON)','5272FhyJzi'];a60_0x4a6a=function(){return _0x4f9dfb;};return a60_0x4a6a();}function a60_0x384f(_0x5a3873,_0x3b02bc){_0x5a3873=_0x5a3873-0x1b9;const _0x4a6a3e=a60_0x4a6a();let _0x384fa2=_0x4a6a3e[_0x5a3873];return _0x384fa2;}export const schemaDefinition={'service':a60_0xdc3d3e(0x1c5),'command':a60_0xdc3d3e(0x1c0),'description':a60_0xdc3d3e(0x1bd),'risk':a60_0xdc3d3e(0x1c6),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
1
- (function(_0x38e85f,_0xe5540e){const _0x5a8809=a61_0x4183,_0x114d7d=_0x38e85f();while(!![]){try{const _0x258375=parseInt(_0x5a8809(0x12d))/0x1+parseInt(_0x5a8809(0x145))/0x2*(-parseInt(_0x5a8809(0x13a))/0x3)+-parseInt(_0x5a8809(0x13c))/0x4+-parseInt(_0x5a8809(0x12c))/0x5+parseInt(_0x5a8809(0x169))/0x6*(parseInt(_0x5a8809(0x18e))/0x7)+-parseInt(_0x5a8809(0x127))/0x8+parseInt(_0x5a8809(0x181))/0x9*(parseInt(_0x5a8809(0x15c))/0xa);if(_0x258375===_0xe5540e)break;else _0x114d7d['push'](_0x114d7d['shift']());}catch(_0xc2ed4e){_0x114d7d['push'](_0x114d7d['shift']());}}}(a61_0x529b,0x5c0ac));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(_0x2f3f52,_0x32926f){const _0x9a7ec7=a61_0x4183,_0x1d884a=listLocalServiceTrees();let _0x57f2cb;for(const _0x4ef9aa of _0x1d884a){const _0x199a98=matchServiceTreeCommand(_0x4ef9aa,_0x2f3f52);if(!_0x199a98)continue;(!_0x57f2cb||_0x199a98[_0x9a7ec7(0x17d)][_0x9a7ec7(0x12a)][_0x9a7ec7(0x165)]>_0x57f2cb['command'][_0x9a7ec7(0x12a)][_0x9a7ec7(0x165)])&&(_0x57f2cb={'tree':_0x4ef9aa,'command':_0x199a98[_0x9a7ec7(0x17d)],'remainingArgs':_0x199a98['remainingArgs']});}if(!_0x57f2cb)return undefined;const _0x3dcb03={..._0x32926f};return applyAppBinding(_0x57f2cb['tree'],_0x57f2cb[_0x9a7ec7(0x17d)],_0x3dcb03),{'definition':buildDynamicCommandDefinition(_0x57f2cb[_0x9a7ec7(0x14f)],_0x57f2cb[_0x9a7ec7(0x17d)]),'args':_0x57f2cb[_0x9a7ec7(0x161)],'flags':_0x3dcb03,'tree':_0x57f2cb['tree'],'command':_0x57f2cb[_0x9a7ec7(0x17d)]};}export function generateDynamicServiceHelp(_0x267eb3){const _0x4a3cfc=a61_0x4183,_0x471938=listLocalServiceTrees()['find'](_0x68ae35=>_0x68ae35[_0x4a3cfc(0x14e)][_0x4a3cfc(0x136)]===_0x267eb3);if(!_0x471938)return undefined;const _0x4c15a1=[CLI_BIN_NAME+'\x20'+_0x267eb3+_0x4a3cfc(0x128),'',_0x471938['service']['name']||_0x267eb3,_0x471938[_0x4a3cfc(0x14e)][_0x4a3cfc(0x143)]?'\x20\x20'+_0x471938[_0x4a3cfc(0x14e)][_0x4a3cfc(0x143)]:'','',_0x4a3cfc(0x174),..._0x471938[_0x4a3cfc(0x156)][_0x4a3cfc(0x12e)](_0x5464de=>{const _0x956096=_0x4a3cfc,_0xca2ae3=_0x5464de[_0x956096(0x12a)]['slice'](0x1)['join']('\x20'),_0x57448b=_0x5464de['risk']===_0x956096(0x148)?'':'\x20['+_0x5464de[_0x956096(0x162)]+']';return'\x20\x20'+_0xca2ae3[_0x956096(0x149)](0x18)+'\x20'+(_0x5464de[_0x956096(0x143)]||'')+_0x57448b;}),'',_0x4a3cfc(0x18c)+CLI_BIN_NAME+_0x4a3cfc(0x14a)+_0x267eb3+_0x4a3cfc(0x15a)][_0x4a3cfc(0x144)](Boolean);return _0x4c15a1[_0x4a3cfc(0x151)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x3382c6=>{const _0x49dede=a61_0x4183,_0x4aaba7=_0x3382c6['normalizedManifest'];return{'service':_0x4aaba7[_0x49dede(0x14e)]['code'],'label':_0x4aaba7[_0x49dede(0x14e)][_0x49dede(0x150)]||_0x4aaba7[_0x49dede(0x14e)][_0x49dede(0x136)],'commands':_0x4aaba7[_0x49dede(0x156)]['map'](_0x58bdf7=>({'command':dynamicCommandName(_0x58bdf7),'description':_0x58bdf7[_0x49dede(0x143)]||_0x49dede(0x154)+_0x58bdf7[_0x49dede(0x18d)],'tag':riskTag(_0x58bdf7[_0x49dede(0x162)])}))};});}export function getDynamicServiceEntry(_0x5410bb){const _0x1cc91a=a61_0x4183;return listDynamicServiceEntries()[_0x1cc91a(0x18a)](_0xc67ffa=>_0xc67ffa[_0x1cc91a(0x14e)]===_0x5410bb);}export function listDynamicServiceDefinitions(_0x14ef0a){const _0x282632=a61_0x4183;return listLocalServiceTrees()['filter'](_0xab607d=>!_0x14ef0a||_0xab607d[_0x282632(0x14e)][_0x282632(0x136)]===_0x14ef0a)[_0x282632(0x129)](_0x4cc71b=>_0x4cc71b[_0x282632(0x156)]['map'](_0x436c00=>buildDynamicCommandDefinition(_0x4cc71b,_0x436c00)));}export function getDynamicServiceDefinitions(_0x1064b8){const _0x4f4432=a61_0x4183,_0x3e5256=listDynamicServiceDefinitions(_0x1064b8);return _0x3e5256[_0x4f4432(0x165)]>0x0?_0x3e5256:undefined;}export function findDynamicServiceDefinition(_0x2c6d36,_0x5b43a0){const _0x54a26a=a61_0x4183;return listDynamicServiceDefinitions(_0x2c6d36)[_0x54a26a(0x18a)](_0x3ca824=>_0x3ca824['command']===_0x5b43a0);}function a61_0x4183(_0x1ee4b1,_0x33bde4){_0x1ee4b1=_0x1ee4b1-0x126;const _0x529b3f=a61_0x529b();let _0x418353=_0x529b3f[_0x1ee4b1];return _0x418353;}export function buildDynamicCommandDefinition(_0x2eecd2,_0x3d30e3){const _0x146d7c=a61_0x4183;return{'service':_0x2eecd2[_0x146d7c(0x14e)][_0x146d7c(0x136)],'command':dynamicCommandName(_0x3d30e3),'description':_0x3d30e3[_0x146d7c(0x143)]||_0x146d7c(0x154)+_0x3d30e3['cliPath'],'risk':_0x3d30e3[_0x146d7c(0x162)],..._0x3d30e3['risk']==='read'?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x3d30e3)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x3d30e3[_0x146d7c(0x171)][_0x146d7c(0x12e)](_0xfae20=>({'name':_0xfae20[_0x146d7c(0x150)],'description':_0xfae20['description']||_0xfae20[_0x146d7c(0x150)],'required':_0xfae20['required']})),'flags':_0x3d30e3[_0x146d7c(0x133)][_0x146d7c(0x12e)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x3d30e3),async 'dryRun'(_0x21d190){const _0x4a92e9=_0x146d7c,_0x3c58ea=await compilePlan(_0x3d30e3,_0x21d190);return{'method':_0x4a92e9(0x188),'url':_0x3d30e3['cliPath'],'body':{'target':targetPreview(_0x3c58ea),'params':_0x3c58ea['params']},'description':_0x4a92e9(0x158)+_0x3d30e3['cliPath']};},async 'execute'(_0x12671f){const _0x4705cb=_0x146d7c,_0x341680=await compilePlan(_0x3d30e3,_0x12671f),_0x3cf2b2=Date['now'](),_0x17dc2e=await executePlan(_0x341680,_0x3d30e3,_0x12671f),_0x55b186=Date[_0x4705cb(0x157)]()-_0x3cf2b2;return{'ok':!![],'data':{'service':_0x2eecd2[_0x4705cb(0x14e)],'command':_0x3d30e3[_0x4705cb(0x18d)],'target':targetPreview(_0x341680),'result':_0x17dc2e,'elapsed':_0x55b186},'message':_0x4705cb(0x17f)+_0x3d30e3['cliPath']+'\x20completed\x20in\x20'+_0x55b186+'ms'};}};}function buildDynamicConfirmationDescription(_0x250d8b){const _0x229656=a61_0x4183,_0x1f2019=_0x250d8b[_0x229656(0x143)]||_0x250d8b[_0x229656(0x18d)],_0x2cfd99=_0x250d8b['risk']===_0x229656(0x13b)?_0x229656(0x134):_0x229656(0x15d);return _0x229656(0x153)+_0x1f2019+'\x22.\x20'+_0x2cfd99;}function dynamicCommandName(_0x8bc1c9){const _0x2d17d8=a61_0x4183;return _0x8bc1c9['fullPath'][_0x2d17d8(0x16d)](0x1)[_0x2d17d8(0x151)]('\x20');}function riskTag(_0x1fc357){const _0x45405a=a61_0x4183;return _0x1fc357===_0x45405a(0x148)?'':'\x20\x20['+_0x1fc357+']';}function flagToCommandFlag(_0x2cadd9){const _0x24d831=a61_0x4183;return{'name':_0x2cadd9[_0x24d831(0x166)],'type':_0x2cadd9['type']===_0x24d831(0x163)?_0x24d831(0x164):_0x2cadd9[_0x24d831(0x159)],'description':_0x2cadd9['description']||_0x2cadd9[_0x24d831(0x150)],'required':_0x2cadd9[_0x24d831(0x141)],'default':isPrimitiveFlagDefault(_0x2cadd9['default'])?_0x2cadd9[_0x24d831(0x16f)]:undefined,'enum':_0x2cadd9['enum']};}async function compilePlan(_0x415e3c,_0x4d5dfe){const _0x126ead=a61_0x4183;return compileServiceTreeCommand(_0x415e3c,{'flags':_0x4d5dfe[_0x126ead(0x130)],'args':_0x4d5dfe[_0x126ead(0x171)],'context':await buildServiceContext(_0x415e3c,_0x4d5dfe)});}async function buildServiceContext(_0x4a3b28,_0xf1d417){const _0x2637b1=a61_0x4183,_0x58249f={'appCode':_0xf1d417['appCode'],'env':_0xf1d417['envName'],'envName':_0xf1d417['envName']};if(!usesRuntimeContext(_0x4a3b28))return _0x58249f;const _0x22a483=await getLoginUserInfo(),_0x18465d=pickFirst(_0x22a483[_0x2637b1(0x152)],_0x22a483['id']);return{..._0x58249f,'user':_0x22a483,'userId':_0x18465d,'id':_0x22a483['id'],'username':pickFirst(_0x22a483[_0x2637b1(0x178)],_0x22a483[_0x2637b1(0x180)],_0x22a483[_0x2637b1(0x168)]),'userName':_0x22a483['userName'],'nickname':pickFirst(_0x22a483[_0x2637b1(0x190)],_0x22a483['nickName']),'nickName':_0x22a483['nickName'],'tenantCode':_0x22a483[_0x2637b1(0x14c)],'employeeId':_0x22a483[_0x2637b1(0x16b)]};}function usesRuntimeContext(_0x4a3de0){const _0x1b489e=a61_0x4183;return _0x4a3de0[_0x1b489e(0x170)]['some'](_0x14f31d=>typeof _0x14f31d[_0x1b489e(0x17e)]==='string'&&(_0x14f31d[_0x1b489e(0x17e)][_0x1b489e(0x16c)](_0x1b489e(0x16e))||_0x14f31d[_0x1b489e(0x17e)][_0x1b489e(0x16c)](_0x1b489e(0x176))));}function pickFirst(..._0x587ca9){const _0x290a64=a61_0x4183;return _0x587ca9[_0x290a64(0x18a)](_0x27d376=>_0x27d376!==undefined&&_0x27d376!==null);}async function executePlan(_0xe7a842,_0x2daa68,_0xd21c97){const _0x455c1d=a61_0x4183;if(_0xe7a842[_0x455c1d(0x17b)]===_0x455c1d(0x172)){const _0x307bf3=await resolveDatasetCode(_0xe7a842,_0x2daa68,_0xd21c97);return executeData(_0x307bf3,_0xe7a842[_0x455c1d(0x17d)],_0xe7a842[_0x455c1d(0x131)]);}if(_0xe7a842[_0x455c1d(0x17b)]===_0x455c1d(0x126)){if(!_0xe7a842[_0x455c1d(0x18b)])throw CliErrors[_0x455c1d(0x179)]('Service\x20command\x20'+_0x2daa68[_0x455c1d(0x18d)]+_0x455c1d(0x175));return executeSdkSql(_0xe7a842[_0x455c1d(0x18b)],normalizeScalarParams(_0xe7a842['params']));}if(_0xe7a842[_0x455c1d(0x17b)]==='bff'){const _0x5001d2=_0xe7a842[_0x455c1d(0x140)]||_0xe7a842[_0x455c1d(0x173)]||(_0xe7a842['bffId']==null?'':String(_0xe7a842[_0x455c1d(0x183)]));if(!_0x5001d2)throw CliErrors[_0x455c1d(0x179)](_0x455c1d(0x17f)+_0x2daa68['cliPath']+_0x455c1d(0x137));return executeSdkBff(_0x5001d2,_0xe7a842[_0x455c1d(0x131)]);}throw CliErrors[_0x455c1d(0x179)](_0x455c1d(0x138)+_0xe7a842[_0x455c1d(0x17b)]);}async function resolveDatasetCode(_0x4b2144,_0x58d60b,_0x3c1065){const _0x451ab5=a61_0x4183;if(_0x4b2144[_0x451ab5(0x14b)])return _0x4b2144['datasetCode'];if(!_0x4b2144['datatable'])throw CliErrors[_0x451ab5(0x179)](_0x451ab5(0x17f)+_0x58d60b[_0x451ab5(0x18d)]+_0x451ab5(0x13d));const _0x3d3928=await listDatasets(_0x3c1065['appCode']),_0x3bdc00=_0x3d3928[_0x451ab5(0x18a)](_0x1a6c3d=>_0x1a6c3d[_0x451ab5(0x17a)]?.[_0x451ab5(0x142)]===_0x4b2144[_0x451ab5(0x12f)]);if(!_0x3bdc00?.[_0x451ab5(0x136)])throw CliErrors[_0x451ab5(0x179)](_0x451ab5(0x184)+_0x4b2144[_0x451ab5(0x12f)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x3c1065[_0x451ab5(0x186)]+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x3bdc00[_0x451ab5(0x136)];}function applyAppBinding(_0x306d90,_0x30ddd5,_0xeb80d3){const _0x261e63=a61_0x4183,_0x4f9e90=_0x30ddd5[_0x261e63(0x177)][_0x261e63(0x15f)];if(!_0x4f9e90)return;const _0x432a46=_0x306d90['appBindings'][_0x4f9e90];if(!_0x432a46)throw CliErrors[_0x261e63(0x179)](_0x261e63(0x14d)+_0x4f9e90+_0x261e63(0x139)+_0x30ddd5[_0x261e63(0x18d)]+'.',_0x261e63(0x13e));const _0xf5b7d1=_0x432a46[_0x261e63(0x160)]||_0x432a46['appCode'];_0xf5b7d1&&!hasText(_0xeb80d3[_0x261e63(0x160)])&&(_0xeb80d3[_0x261e63(0x160)]=_0xf5b7d1),_0x432a46[_0x261e63(0x15b)]&&!hasText(_0xeb80d3['app'])&&!hasText(_0xeb80d3[_0x261e63(0x160)])&&(_0xeb80d3[_0x261e63(0x15b)]=_0x432a46[_0x261e63(0x15b)]),_0x432a46[_0x261e63(0x155)]&&!hasText(_0xeb80d3[_0x261e63(0x155)])&&(_0xeb80d3['env']=_0x432a46['env']);}function renderDynamicCommandHelp(_0x457b6e){const _0x321981=a61_0x4183,_0x4ec179=[_0x321981(0x132),_0x321981(0x182)+_0x457b6e['target'][_0x321981(0x17b)],_0x321981(0x16a)+_0x457b6e[_0x321981(0x177)][_0x321981(0x17d)]];if(_0x457b6e[_0x321981(0x177)][_0x321981(0x14b)])_0x4ec179[_0x321981(0x13f)](_0x321981(0x17c)+_0x457b6e[_0x321981(0x177)][_0x321981(0x14b)]);if(_0x457b6e[_0x321981(0x177)][_0x321981(0x12f)])_0x4ec179[_0x321981(0x13f)](_0x321981(0x146)+_0x457b6e[_0x321981(0x177)][_0x321981(0x12f)]);if(_0x457b6e[_0x321981(0x177)][_0x321981(0x18b)])_0x4ec179[_0x321981(0x13f)](_0x321981(0x135)+_0x457b6e['target'][_0x321981(0x18b)]);if(_0x457b6e[_0x321981(0x177)][_0x321981(0x140)])_0x4ec179[_0x321981(0x13f)]('\x20\x20\x20\x20functionName:\x20'+_0x457b6e[_0x321981(0x177)][_0x321981(0x140)]);if(_0x457b6e[_0x321981(0x170)][_0x321981(0x165)]>0x0){_0x4ec179[_0x321981(0x13f)]('','\x20\x20MAP\x20TO');for(const _0x5cd3a0 of _0x457b6e[_0x321981(0x170)]){_0x4ec179[_0x321981(0x13f)](_0x321981(0x15e)+(_0x5cd3a0['source']||_0x321981(0x12b))+_0x321981(0x185)+_0x5cd3a0[_0x321981(0x177)]+(_0x5cd3a0['operator']?'.'+_0x5cd3a0[_0x321981(0x147)]:''));}}return _0x4ec179[_0x321981(0x151)]('\x0a');}function targetPreview(_0x3b79f7){const _0x1320b2=a61_0x4183;return{'kind':_0x3b79f7[_0x1320b2(0x17b)],'command':_0x3b79f7[_0x1320b2(0x17d)],'appRef':_0x3b79f7['appRef'],'datasetCode':_0x3b79f7[_0x1320b2(0x14b)],'datatable':_0x3b79f7[_0x1320b2(0x12f)],'sqlCode':_0x3b79f7['sqlCode'],'bffCode':_0x3b79f7[_0x1320b2(0x173)],'bffId':_0x3b79f7['bffId'],'functionName':_0x3b79f7['scriptName']};}function normalizeScalarParams(_0x1c6c26){const _0x2e9e30=a61_0x4183;return Object[_0x2e9e30(0x18f)](Object[_0x2e9e30(0x187)](_0x1c6c26)[_0x2e9e30(0x144)](([,_0x30e2a8])=>typeof _0x30e2a8===_0x2e9e30(0x164)||typeof _0x30e2a8===_0x2e9e30(0x167)));}function hasText(_0x7d8657){const _0x1f4dc8=a61_0x4183;return typeof _0x7d8657===_0x1f4dc8(0x164)&&_0x7d8657[_0x1f4dc8(0x189)]()[_0x1f4dc8(0x165)]>0x0;}function a61_0x529b(){const _0x569b9c=['flags','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','\x20\x20\x20\x20sqlCode:\x20','code','\x20requires\x20target.functionName.','Unsupported\x20service\x20target\x20kind:\x20','\x22\x20in\x20service\x20command\x20','634722JwYTpa','high-risk-write','513220CzpGds','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','push','scriptName','required','tableName','description','filter','4WRNHEF','\x20\x20\x20\x20datatable:\x20','operator','read','padEnd','\x20service\x20detail\x20--service\x20','datasetCode','tenantCode','Unknown\x20appRef\x20\x22','service','tree','name','join','userId','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','Run\x20service\x20command\x20','env','commands','now','Preview\x20dynamic\x20service\x20command:\x20','type','`\x20to\x20inspect\x20the\x20manifest.','app','2810cTaVkH','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','\x20\x20\x20\x20','appRef','appcode','remainingArgs','risk','json','string','length','cliName','number','loginName','6gVjyxe','\x20\x20\x20\x20command:\x20','employeeId','startsWith','slice','context.','default','mapTo','args','data','bffCode','Commands:','\x20requires\x20target.sqlCode.','ctx.','target','username','validation','dbtableConfig','kind','\x20\x20\x20\x20datasetCode:\x20','command','source','Service\x20command\x20','userName','46611uJludE','\x20\x20\x20\x20kind:\x20\x20\x20\x20','bffId','Cannot\x20resolve\x20datatable\x20\x22','\x20->\x20','appCode','entries','SERVICE_TREE','trim','find','sqlCode','Use\x20`','cliPath','1631644gKlMdx','fromEntries','nickname','sql','5305096eWzhJY','\x20<command>\x20[flags]','flatMap','fullPath','const','3389245KYvpTT','581052KsyULC','map','datatable','rawFlags','params','\x20\x20SERVICE\x20TREE\x20TARGET'];a61_0x529b=function(){return _0x569b9c;};return a61_0x529b();}function isPrimitiveFlagDefault(_0x358192){const _0x2d9e29=a61_0x4183;return _0x358192===undefined||typeof _0x358192===_0x2d9e29(0x164)||typeof _0x358192===_0x2d9e29(0x167)||typeof _0x358192==='boolean';}
1
+ function a61_0xf62e(_0x5992ee,_0x2ea312){_0x5992ee=_0x5992ee-0x1bf;const _0x36f512=a61_0x36f5();let _0xf62e3b=_0x36f512[_0x5992ee];return _0xf62e3b;}(function(_0x64e6a1,_0x303623){const _0x5e97e2=a61_0xf62e,_0x3b198f=_0x64e6a1();while(!![]){try{const _0x1e55dd=parseInt(_0x5e97e2(0x216))/0x1*(parseInt(_0x5e97e2(0x203))/0x2)+-parseInt(_0x5e97e2(0x1d7))/0x3+-parseInt(_0x5e97e2(0x20c))/0x4+-parseInt(_0x5e97e2(0x20e))/0x5*(parseInt(_0x5e97e2(0x202))/0x6)+parseInt(_0x5e97e2(0x21e))/0x7+parseInt(_0x5e97e2(0x1ff))/0x8+parseInt(_0x5e97e2(0x214))/0x9;if(_0x1e55dd===_0x303623)break;else _0x3b198f['push'](_0x3b198f['shift']());}catch(_0x3958b2){_0x3b198f['push'](_0x3b198f['shift']());}}}(a61_0x36f5,0x8e630));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';function a61_0x36f5(){const _0x12bcf5=['data','args','description','context.','kind','appcode','startsWith','\x22\x20in\x20service\x20command\x20','push','bff','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','userName','join','\x20completed\x20in\x20','username','tree','type','\x20\x20\x20\x20functionName:\x20','datasetCode','Unsupported\x20service\x20target\x20kind:\x20','service','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','`\x20to\x20inspect\x20the\x20manifest.','\x20\x20[','ctx.','datatable','1319223gLAZIc','operator','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','commands','Preview\x20dynamic\x20service\x20command:\x20','length','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','rawFlags','tenantCode','now','filter','tableName','default','trim','target','nickname','cliName','cliPath','flags','\x20->\x20','loginName','env','employeeId','sqlCode','slice','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','name','number','scriptName','\x20service\x20detail\x20--service\x20','appCode','\x20\x20\x20\x20kind:\x20\x20\x20\x20','risk','find','enum','padEnd','fullPath','map','source','1739280gnZWsC','code','\x20\x20\x20\x20','6kvIhvd','517394tpaImu','Commands:','Cannot\x20resolve\x20datatable\x20\x22','high-risk-write','mapTo','\x20\x20SERVICE\x20TREE\x20TARGET','SERVICE_TREE','required','appRef','3740088fBxGRH','normalizedManifest','3954180NVYbSD','string','Service\x20command\x20','app','some','const','10650186tCRyNi','\x20requires\x20target.sqlCode.','1jOQuqx','params','remainingArgs','\x20\x20\x20\x20command:\x20','Run\x20service\x20command\x20','command','appBindings','read','7625478NwweTP','bffId','validation','flatMap','envName','nickName','Use\x20`'];a61_0x36f5=function(){return _0x12bcf5;};return a61_0x36f5();}import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x240b47,_0x3b7f86){const _0x3e4204=a61_0xf62e,_0x1e8a9e=listLocalServiceTrees();let _0x2e2199;for(const _0x529707 of _0x1e8a9e){const _0xc6d404=matchServiceTreeCommand(_0x529707,_0x240b47);if(!_0xc6d404)continue;(!_0x2e2199||_0xc6d404['command'][_0x3e4204(0x1fc)][_0x3e4204(0x1dc)]>_0x2e2199[_0x3e4204(0x21b)][_0x3e4204(0x1fc)][_0x3e4204(0x1dc)])&&(_0x2e2199={'tree':_0x529707,'command':_0xc6d404['command'],'remainingArgs':_0xc6d404[_0x3e4204(0x218)]});}if(!_0x2e2199)return undefined;const _0x2dee08={..._0x3b7f86};return applyAppBinding(_0x2e2199[_0x3e4204(0x1cc)],_0x2e2199[_0x3e4204(0x21b)],_0x2dee08),{'definition':buildDynamicCommandDefinition(_0x2e2199[_0x3e4204(0x1cc)],_0x2e2199[_0x3e4204(0x21b)]),'args':_0x2e2199[_0x3e4204(0x218)],'flags':_0x2dee08,'tree':_0x2e2199[_0x3e4204(0x1cc)],'command':_0x2e2199[_0x3e4204(0x21b)]};}export function generateDynamicServiceHelp(_0x124eeb){const _0x55a724=a61_0xf62e,_0x2d0aef=listLocalServiceTrees()[_0x55a724(0x1f9)](_0x5cf2e5=>_0x5cf2e5[_0x55a724(0x1d1)][_0x55a724(0x200)]===_0x124eeb);if(!_0x2d0aef)return undefined;const _0x2c342c=[CLI_BIN_NAME+'\x20'+_0x124eeb+'\x20<command>\x20[flags]','',_0x2d0aef[_0x55a724(0x1d1)][_0x55a724(0x1f2)]||_0x124eeb,_0x2d0aef[_0x55a724(0x1d1)][_0x55a724(0x1bf)]?'\x20\x20'+_0x2d0aef['service'][_0x55a724(0x1bf)]:'','',_0x55a724(0x204),..._0x2d0aef[_0x55a724(0x1da)][_0x55a724(0x1fd)](_0x1d595d=>{const _0x58d965=_0x55a724,_0x1011b1=_0x1d595d['fullPath'][_0x58d965(0x1ef)](0x1)[_0x58d965(0x1c9)]('\x20'),_0xafc44c=_0x1d595d[_0x58d965(0x1f8)]===_0x58d965(0x21d)?'':'\x20['+_0x1d595d[_0x58d965(0x1f8)]+']';return'\x20\x20'+_0x1011b1[_0x58d965(0x1fb)](0x18)+'\x20'+(_0x1d595d[_0x58d965(0x1bf)]||'')+_0xafc44c;}),'',_0x55a724(0x224)+CLI_BIN_NAME+_0x55a724(0x1f5)+_0x124eeb+_0x55a724(0x1d3)][_0x55a724(0x1e1)](Boolean);return _0x2c342c[_0x55a724(0x1c9)]('\x0a');}export function listDynamicServiceEntries(){const _0x2ef27b=a61_0xf62e;return listLocalServices()[_0x2ef27b(0x1fd)](_0x403d64=>{const _0x5cbd4d=_0x2ef27b,_0x512492=_0x403d64[_0x5cbd4d(0x20d)];return{'service':_0x512492[_0x5cbd4d(0x1d1)]['code'],'label':_0x512492['service'][_0x5cbd4d(0x1f2)]||_0x512492[_0x5cbd4d(0x1d1)][_0x5cbd4d(0x200)],'commands':_0x512492[_0x5cbd4d(0x1da)][_0x5cbd4d(0x1fd)](_0x388bac=>({'command':dynamicCommandName(_0x388bac),'description':_0x388bac[_0x5cbd4d(0x1bf)]||_0x5cbd4d(0x21a)+_0x388bac[_0x5cbd4d(0x1e8)],'tag':riskTag(_0x388bac[_0x5cbd4d(0x1f8)])}))};});}export function getDynamicServiceEntry(_0x19d4e8){const _0x113f9a=a61_0xf62e;return listDynamicServiceEntries()[_0x113f9a(0x1f9)](_0x1c5d27=>_0x1c5d27[_0x113f9a(0x1d1)]===_0x19d4e8);}export function listDynamicServiceDefinitions(_0x3f1981){const _0x1fe045=a61_0xf62e;return listLocalServiceTrees()['filter'](_0x58dee1=>!_0x3f1981||_0x58dee1[_0x1fe045(0x1d1)][_0x1fe045(0x200)]===_0x3f1981)[_0x1fe045(0x221)](_0x517d92=>_0x517d92['commands'][_0x1fe045(0x1fd)](_0x1a96f1=>buildDynamicCommandDefinition(_0x517d92,_0x1a96f1)));}export function getDynamicServiceDefinitions(_0x2ef7a4){const _0x3f206d=a61_0xf62e,_0x53c77d=listDynamicServiceDefinitions(_0x2ef7a4);return _0x53c77d[_0x3f206d(0x1dc)]>0x0?_0x53c77d:undefined;}export function findDynamicServiceDefinition(_0x29d796,_0x3949f8){const _0x1917a2=a61_0xf62e;return listDynamicServiceDefinitions(_0x29d796)[_0x1917a2(0x1f9)](_0xfd27fc=>_0xfd27fc[_0x1917a2(0x21b)]===_0x3949f8);}export function buildDynamicCommandDefinition(_0x419857,_0x33bbae){const _0x14e84e=a61_0xf62e;return{'service':_0x419857[_0x14e84e(0x1d1)][_0x14e84e(0x200)],'command':dynamicCommandName(_0x33bbae),'description':_0x33bbae[_0x14e84e(0x1bf)]||'Run\x20service\x20command\x20'+_0x33bbae[_0x14e84e(0x1e8)],'risk':_0x33bbae[_0x14e84e(0x1f8)],..._0x33bbae[_0x14e84e(0x1f8)]===_0x14e84e(0x21d)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x33bbae)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x33bbae[_0x14e84e(0x226)][_0x14e84e(0x1fd)](_0x1c0910=>({'name':_0x1c0910[_0x14e84e(0x1f2)],'description':_0x1c0910[_0x14e84e(0x1bf)]||_0x1c0910[_0x14e84e(0x1f2)],'required':_0x1c0910[_0x14e84e(0x20a)]})),'flags':_0x33bbae[_0x14e84e(0x1e9)][_0x14e84e(0x1fd)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x33bbae),async 'dryRun'(_0x6deff6){const _0x5dde8b=_0x14e84e,_0x5b95e6=await compilePlan(_0x33bbae,_0x6deff6);return{'method':_0x5dde8b(0x209),'url':_0x33bbae[_0x5dde8b(0x1e8)],'body':{'target':targetPreview(_0x5b95e6),'params':_0x5b95e6[_0x5dde8b(0x217)]},'description':_0x5dde8b(0x1db)+_0x33bbae['cliPath']};},async 'execute'(_0x2b388a){const _0x339c7f=_0x14e84e,_0x47d585=await compilePlan(_0x33bbae,_0x2b388a),_0x208f5c=Date[_0x339c7f(0x1e0)](),_0x51e6f7=await executePlan(_0x47d585,_0x33bbae,_0x2b388a),_0x278de4=Date[_0x339c7f(0x1e0)]()-_0x208f5c;return{'ok':!![],'data':{'service':_0x419857[_0x339c7f(0x1d1)],'command':_0x33bbae[_0x339c7f(0x1e8)],'target':targetPreview(_0x47d585),'result':_0x51e6f7,'elapsed':_0x278de4},'message':'Service\x20command\x20'+_0x33bbae[_0x339c7f(0x1e8)]+_0x339c7f(0x1ca)+_0x278de4+'ms'};}};}function buildDynamicConfirmationDescription(_0x1d4156){const _0x4fde6f=a61_0xf62e,_0x286f8e=_0x1d4156[_0x4fde6f(0x1bf)]||_0x1d4156[_0x4fde6f(0x1e8)],_0x4a3465=_0x1d4156[_0x4fde6f(0x1f8)]===_0x4fde6f(0x206)?'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.':_0x4fde6f(0x1d2);return _0x4fde6f(0x1dd)+_0x286f8e+'\x22.\x20'+_0x4a3465;}function dynamicCommandName(_0x177c76){const _0x1d0895=a61_0xf62e;return _0x177c76[_0x1d0895(0x1fc)][_0x1d0895(0x1ef)](0x1)['join']('\x20');}function riskTag(_0x570f58){const _0x35ffc1=a61_0xf62e;return _0x570f58===_0x35ffc1(0x21d)?'':_0x35ffc1(0x1d4)+_0x570f58+']';}function flagToCommandFlag(_0x30cdaf){const _0x207c94=a61_0xf62e;return{'name':_0x30cdaf[_0x207c94(0x1e7)],'type':_0x30cdaf[_0x207c94(0x1cd)]==='json'?_0x207c94(0x20f):_0x30cdaf[_0x207c94(0x1cd)],'description':_0x30cdaf[_0x207c94(0x1bf)]||_0x30cdaf[_0x207c94(0x1f2)],'required':_0x30cdaf[_0x207c94(0x20a)],'default':isPrimitiveFlagDefault(_0x30cdaf[_0x207c94(0x1e3)])?_0x30cdaf[_0x207c94(0x1e3)]:undefined,'enum':_0x30cdaf[_0x207c94(0x1fa)]};}async function compilePlan(_0x1636eb,_0x368d33){const _0x43045a=a61_0xf62e;return compileServiceTreeCommand(_0x1636eb,{'flags':_0x368d33[_0x43045a(0x1de)],'args':_0x368d33[_0x43045a(0x226)],'context':await buildServiceContext(_0x1636eb,_0x368d33)});}async function buildServiceContext(_0x210b95,_0x2cc009){const _0x55694e=a61_0xf62e,_0x474aea={'appCode':_0x2cc009['appCode'],'env':_0x2cc009[_0x55694e(0x222)],'envName':_0x2cc009['envName']};if(!usesRuntimeContext(_0x210b95))return _0x474aea;const _0x11d107=await getLoginUserInfo(),_0x3665f8=pickFirst(_0x11d107['userId'],_0x11d107['id']);return{..._0x474aea,'user':_0x11d107,'userId':_0x3665f8,'id':_0x11d107['id'],'username':pickFirst(_0x11d107[_0x55694e(0x1cb)],_0x11d107['userName'],_0x11d107[_0x55694e(0x1eb)]),'userName':_0x11d107[_0x55694e(0x1c8)],'nickname':pickFirst(_0x11d107[_0x55694e(0x1e6)],_0x11d107[_0x55694e(0x223)]),'nickName':_0x11d107[_0x55694e(0x223)],'tenantCode':_0x11d107[_0x55694e(0x1df)],'employeeId':_0x11d107[_0x55694e(0x1ed)]};}function usesRuntimeContext(_0x3d62cd){const _0x26796a=a61_0xf62e;return _0x3d62cd[_0x26796a(0x207)][_0x26796a(0x212)](_0x1de0da=>typeof _0x1de0da['source']===_0x26796a(0x20f)&&(_0x1de0da['source'][_0x26796a(0x1c3)](_0x26796a(0x1c0))||_0x1de0da[_0x26796a(0x1fe)][_0x26796a(0x1c3)](_0x26796a(0x1d5))));}function pickFirst(..._0x1fa719){const _0x12bce3=a61_0xf62e;return _0x1fa719[_0x12bce3(0x1f9)](_0x469ec1=>_0x469ec1!==undefined&&_0x469ec1!==null);}async function executePlan(_0x2c80f3,_0x10f8b3,_0x526047){const _0x107576=a61_0xf62e;if(_0x2c80f3[_0x107576(0x1c1)]===_0x107576(0x225)){const _0xc54d83=await resolveDatasetCode(_0x2c80f3,_0x10f8b3,_0x526047);return executeData(_0xc54d83,_0x2c80f3[_0x107576(0x21b)],_0x2c80f3[_0x107576(0x217)]);}if(_0x2c80f3[_0x107576(0x1c1)]==='sql'){if(!_0x2c80f3[_0x107576(0x1ee)])throw CliErrors[_0x107576(0x220)]('Service\x20command\x20'+_0x10f8b3[_0x107576(0x1e8)]+_0x107576(0x215));return executeSdkSql(_0x2c80f3['sqlCode'],normalizeScalarParams(_0x2c80f3[_0x107576(0x217)]));}if(_0x2c80f3[_0x107576(0x1c1)]===_0x107576(0x1c6)){const _0x21a3e9=_0x2c80f3[_0x107576(0x1f4)]||_0x2c80f3['bffCode']||(_0x2c80f3[_0x107576(0x21f)]==null?'':String(_0x2c80f3[_0x107576(0x21f)]));if(!_0x21a3e9)throw CliErrors[_0x107576(0x220)]('Service\x20command\x20'+_0x10f8b3[_0x107576(0x1e8)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0x21a3e9,_0x2c80f3[_0x107576(0x217)]);}throw CliErrors[_0x107576(0x220)](_0x107576(0x1d0)+_0x2c80f3[_0x107576(0x1c1)]);}async function resolveDatasetCode(_0xf64742,_0x5b41c3,_0x17ba57){const _0x5a3b33=a61_0xf62e;if(_0xf64742[_0x5a3b33(0x1cf)])return _0xf64742[_0x5a3b33(0x1cf)];if(!_0xf64742[_0x5a3b33(0x1d6)])throw CliErrors['validation'](_0x5a3b33(0x210)+_0x5b41c3[_0x5a3b33(0x1e8)]+_0x5a3b33(0x1c7));const _0x221f27=await listDatasets(_0x17ba57[_0x5a3b33(0x1f6)]),_0x105414=_0x221f27[_0x5a3b33(0x1f9)](_0x59ea64=>_0x59ea64['dbtableConfig']?.[_0x5a3b33(0x1e2)]===_0xf64742[_0x5a3b33(0x1d6)]);if(!_0x105414?.[_0x5a3b33(0x200)])throw CliErrors['validation'](_0x5a3b33(0x205)+_0xf64742[_0x5a3b33(0x1d6)]+_0x5a3b33(0x1d9)+_0x17ba57['appCode']+'.',_0x5a3b33(0x1f0));return _0x105414[_0x5a3b33(0x200)];}function applyAppBinding(_0x5a9245,_0x24fa96,_0x3d9b80){const _0x5a406e=a61_0xf62e,_0x135e80=_0x24fa96[_0x5a406e(0x1e5)][_0x5a406e(0x20b)];if(!_0x135e80)return;const _0x4f777e=_0x5a9245[_0x5a406e(0x21c)][_0x135e80];if(!_0x4f777e)throw CliErrors[_0x5a406e(0x220)]('Unknown\x20appRef\x20\x22'+_0x135e80+_0x5a406e(0x1c4)+_0x24fa96['cliPath']+'.',_0x5a406e(0x1f1));const _0x37a42e=_0x4f777e['appcode']||_0x4f777e[_0x5a406e(0x1f6)];_0x37a42e&&!hasText(_0x3d9b80[_0x5a406e(0x1c2)])&&(_0x3d9b80[_0x5a406e(0x1c2)]=_0x37a42e),_0x4f777e[_0x5a406e(0x211)]&&!hasText(_0x3d9b80[_0x5a406e(0x211)])&&!hasText(_0x3d9b80[_0x5a406e(0x1c2)])&&(_0x3d9b80[_0x5a406e(0x211)]=_0x4f777e[_0x5a406e(0x211)]),_0x4f777e[_0x5a406e(0x1ec)]&&!hasText(_0x3d9b80[_0x5a406e(0x1ec)])&&(_0x3d9b80[_0x5a406e(0x1ec)]=_0x4f777e['env']);}function renderDynamicCommandHelp(_0x2a95a0){const _0x435e40=a61_0xf62e,_0x444abb=[_0x435e40(0x208),_0x435e40(0x1f7)+_0x2a95a0[_0x435e40(0x1e5)][_0x435e40(0x1c1)],_0x435e40(0x219)+_0x2a95a0[_0x435e40(0x1e5)]['command']];if(_0x2a95a0['target'][_0x435e40(0x1cf)])_0x444abb[_0x435e40(0x1c5)]('\x20\x20\x20\x20datasetCode:\x20'+_0x2a95a0['target'][_0x435e40(0x1cf)]);if(_0x2a95a0[_0x435e40(0x1e5)]['datatable'])_0x444abb[_0x435e40(0x1c5)]('\x20\x20\x20\x20datatable:\x20'+_0x2a95a0[_0x435e40(0x1e5)][_0x435e40(0x1d6)]);if(_0x2a95a0['target'][_0x435e40(0x1ee)])_0x444abb[_0x435e40(0x1c5)]('\x20\x20\x20\x20sqlCode:\x20'+_0x2a95a0[_0x435e40(0x1e5)][_0x435e40(0x1ee)]);if(_0x2a95a0[_0x435e40(0x1e5)]['scriptName'])_0x444abb[_0x435e40(0x1c5)](_0x435e40(0x1ce)+_0x2a95a0[_0x435e40(0x1e5)][_0x435e40(0x1f4)]);if(_0x2a95a0['mapTo']['length']>0x0){_0x444abb['push']('','\x20\x20MAP\x20TO');for(const _0x34c626 of _0x2a95a0[_0x435e40(0x207)]){_0x444abb[_0x435e40(0x1c5)](_0x435e40(0x201)+(_0x34c626['source']||_0x435e40(0x213))+_0x435e40(0x1ea)+_0x34c626[_0x435e40(0x1e5)]+(_0x34c626['operator']?'.'+_0x34c626[_0x435e40(0x1d8)]:''));}}return _0x444abb[_0x435e40(0x1c9)]('\x0a');}function targetPreview(_0x29fa71){const _0x2f6b3a=a61_0xf62e;return{'kind':_0x29fa71[_0x2f6b3a(0x1c1)],'command':_0x29fa71[_0x2f6b3a(0x21b)],'appRef':_0x29fa71[_0x2f6b3a(0x20b)],'datasetCode':_0x29fa71[_0x2f6b3a(0x1cf)],'datatable':_0x29fa71['datatable'],'sqlCode':_0x29fa71['sqlCode'],'bffCode':_0x29fa71['bffCode'],'bffId':_0x29fa71[_0x2f6b3a(0x21f)],'functionName':_0x29fa71[_0x2f6b3a(0x1f4)]};}function normalizeScalarParams(_0x2b1019){const _0x4d0454=a61_0xf62e;return Object['fromEntries'](Object['entries'](_0x2b1019)[_0x4d0454(0x1e1)](([,_0x4eb5cb])=>typeof _0x4eb5cb===_0x4d0454(0x20f)||typeof _0x4eb5cb===_0x4d0454(0x1f3)));}function hasText(_0x5a651c){const _0x3f12e7=a61_0xf62e;return typeof _0x5a651c===_0x3f12e7(0x20f)&&_0x5a651c[_0x3f12e7(0x1e4)]()[_0x3f12e7(0x1dc)]>0x0;}function isPrimitiveFlagDefault(_0x422821){const _0x18a3f5=a61_0xf62e;return _0x422821===undefined||typeof _0x422821===_0x18a3f5(0x20f)||typeof _0x422821==='number'||typeof _0x422821==='boolean';}
@@ -1 +1 @@
1
- (function(_0x282429,_0x86b88c){const _0x10cdf8=a62_0x33fb,_0x259c27=_0x282429();while(!![]){try{const _0x3c28da=parseInt(_0x10cdf8(0x184))/0x1*(parseInt(_0x10cdf8(0x179))/0x2)+parseInt(_0x10cdf8(0x18e))/0x3*(parseInt(_0x10cdf8(0x18a))/0x4)+-parseInt(_0x10cdf8(0x180))/0x5+parseInt(_0x10cdf8(0x186))/0x6+parseInt(_0x10cdf8(0x173))/0x7*(-parseInt(_0x10cdf8(0x178))/0x8)+parseInt(_0x10cdf8(0x18f))/0x9*(-parseInt(_0x10cdf8(0x183))/0xa)+parseInt(_0x10cdf8(0x17b))/0xb;if(_0x3c28da===_0x86b88c)break;else _0x259c27['push'](_0x259c27['shift']());}catch(_0x1981e5){_0x259c27['push'](_0x259c27['shift']());}}}(a62_0x9293,0x7b124));export function adaptServiceTreeManifestForLegacyFramework(_0x3ac79e){const _0x2da24a=a62_0x33fb,_0x2fb9e6=cloneJsonValue(_0x3ac79e),_0x47e158=[];if(!isObjectRecord(_0x2fb9e6))return{'manifest':_0x2fb9e6,'errors':_0x47e158};return Array[_0x2da24a(0x174)](_0x2fb9e6['commands'])&&_0x2fb9e6[_0x2da24a(0x175)][_0x2da24a(0x193)]((_0x34b390,_0x4522f3)=>{const _0x3a68c0=_0x2da24a;if(!isObjectRecord(_0x34b390))return;adaptBffTarget(_0x34b390[_0x3a68c0(0x189)],'$.commands['+_0x4522f3+'].target',_0x47e158);}),adaptResources(_0x2fb9e6['resources'],'$.resources',_0x47e158),{'manifest':_0x2fb9e6,'errors':_0x47e158};}export function toPublicServiceTreeTarget(_0xc0aa80){const _0x4ec7dc=a62_0x33fb,{scriptName:_0x41f1e4,..._0x374bed}=_0xc0aa80;return typeof _0x41f1e4===_0x4ec7dc(0x17a)&&_0x41f1e4[_0x4ec7dc(0x187)]()&&(_0x374bed[_0x4ec7dc(0x181)]=_0x41f1e4),_0x374bed;}export function toPublicNormalizedServiceTree(_0x23c30d){const _0x5297b9=a62_0x33fb;return{..._0x23c30d,'commands':_0x23c30d[_0x5297b9(0x175)]['map'](_0x3feba9=>({..._0x3feba9,'target':toPublicServiceTreeTarget(_0x3feba9[_0x5297b9(0x189)])}))};}function adaptResources(_0x1fd671,_0x4cf04a,_0x5414e8){const _0x57fbed=a62_0x33fb;if(!isObjectRecord(_0x1fd671))return;for(const [_0x1231cc,_0x4fbe0c]of Object[_0x57fbed(0x192)](_0x1fd671)){if(!isObjectRecord(_0x4fbe0c))continue;const _0x24cc5d=_0x4cf04a+'.'+_0x1231cc;if(isObjectRecord(_0x4fbe0c['actions']))for(const [_0x5e1d5a,_0x106ecf]of Object['entries'](_0x4fbe0c[_0x57fbed(0x177)])){if(!isObjectRecord(_0x106ecf))continue;const _0x4f5bb1=_0x24cc5d+_0x57fbed(0x17c)+_0x5e1d5a,_0x121425=isObjectRecord(_0x106ecf[_0x57fbed(0x189)])&&_0x106ecf['target'][_0x57fbed(0x17e)]===_0x57fbed(0x17d);adaptBffTarget(_0x106ecf[_0x57fbed(0x189)],_0x4f5bb1+'.target',_0x5414e8),(_0x121425||isBffAction(_0x106ecf))&&adaptFunctionNameField(_0x106ecf,_0x4f5bb1,_0x5414e8);}adaptResources(_0x4fbe0c['resources'],_0x24cc5d+'.resources',_0x5414e8);}}function a62_0x33fb(_0x4237af,_0x5adcbb){_0x4237af=_0x4237af-0x172;const _0x9293b2=a62_0x9293();let _0x33fba4=_0x9293b2[_0x4237af];return _0x33fba4;}function adaptBffTarget(_0x2fc857,_0x293332,_0x3128cd){const _0x5d0b80=a62_0x33fb;if(!isObjectRecord(_0x2fc857)||_0x2fc857[_0x5d0b80(0x17e)]!==_0x5d0b80(0x17d))return;adaptFunctionNameField(_0x2fc857,_0x293332,_0x3128cd);}function a62_0x9293(){const _0x51b463=['193627RPfBLn','error','222252YuJGFY','trim','call','target','8GGdQHN','hasOwnProperty','functionName\x20must\x20be\x20a\x20non-empty\x20string.','prototype','298734AwEhQQ','5265mDpyxo','object','action','entries','forEach','bff.exec','.scriptName','42OoPXHc','isArray','commands','map','actions','775096xRXKZv','10cIZACS','string','13964302SSKmtZ','.actions.','bff','kind','push','2001640GkjaAY','functionName','scriptName','16890IPLVQP'];a62_0x9293=function(){return _0x51b463;};return a62_0x9293();}function adaptFunctionNameField(_0x2e396f,_0x512761,_0x505e2d){const _0x517afb=a62_0x33fb;Object[_0x517afb(0x18d)][_0x517afb(0x18b)][_0x517afb(0x188)](_0x2e396f,_0x517afb(0x182))&&_0x505e2d[_0x517afb(0x17f)]({'level':_0x517afb(0x185),'path':_0x512761+_0x517afb(0x172),'message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object['prototype']['hasOwnProperty'][_0x517afb(0x188)](_0x2e396f,_0x517afb(0x181))){if(typeof _0x2e396f[_0x517afb(0x181)]!=='string'||!_0x2e396f[_0x517afb(0x181)]['trim']()){_0x505e2d['push']({'level':_0x517afb(0x185),'path':_0x512761+'.functionName','message':_0x517afb(0x18c)}),delete _0x2e396f[_0x517afb(0x181)];return;}_0x2e396f[_0x517afb(0x182)]=_0x2e396f[_0x517afb(0x181)],delete _0x2e396f[_0x517afb(0x181)];}}function isBffAction(_0x2658c0){const _0x19f854=a62_0x33fb;return _0x2658c0['kind']==='bff'||_0x2658c0[_0x19f854(0x191)]===_0x19f854(0x194)||_0x2658c0['target']===_0x19f854(0x194);}function cloneJsonValue(_0x55bf54){const _0x156a43=a62_0x33fb;if(Array[_0x156a43(0x174)](_0x55bf54))return _0x55bf54[_0x156a43(0x176)](_0x4143f6=>cloneJsonValue(_0x4143f6));if(isObjectRecord(_0x55bf54))return Object['fromEntries'](Object[_0x156a43(0x192)](_0x55bf54)[_0x156a43(0x176)](([_0x3fc6eb,_0x382dd6])=>[_0x3fc6eb,cloneJsonValue(_0x382dd6)]));return _0x55bf54;}function isObjectRecord(_0x4886b3){const _0x586069=a62_0x33fb;return Boolean(_0x4886b3)&&typeof _0x4886b3===_0x586069(0x190)&&!Array['isArray'](_0x4886b3);}
1
+ (function(_0x3e3d99,_0x55ec20){const _0x323148=a62_0x8198,_0x517f46=_0x3e3d99();while(!![]){try{const _0x138f00=parseInt(_0x323148(0xd1))/0x1*(parseInt(_0x323148(0xab))/0x2)+parseInt(_0x323148(0xce))/0x3+parseInt(_0x323148(0xc2))/0x4*(parseInt(_0x323148(0xc7))/0x5)+parseInt(_0x323148(0xad))/0x6+-parseInt(_0x323148(0xc5))/0x7*(-parseInt(_0x323148(0xc4))/0x8)+-parseInt(_0x323148(0xb6))/0x9*(parseInt(_0x323148(0xc6))/0xa)+-parseInt(_0x323148(0xc0))/0xb*(parseInt(_0x323148(0xb8))/0xc);if(_0x138f00===_0x55ec20)break;else _0x517f46['push'](_0x517f46['shift']());}catch(_0x820f52){_0x517f46['push'](_0x517f46['shift']());}}}(a62_0x4ecd,0x82b57));export function adaptServiceTreeManifestForLegacyFramework(_0x99642f){const _0x17f6f9=a62_0x8198,_0x46cac9=cloneJsonValue(_0x99642f),_0xb94a30=[];if(!isObjectRecord(_0x46cac9))return{'manifest':_0x46cac9,'errors':_0xb94a30};return Array[_0x17f6f9(0xb4)](_0x46cac9['commands'])&&_0x46cac9['commands'][_0x17f6f9(0xbf)]((_0x39efc9,_0xdc1c13)=>{const _0x562175=_0x17f6f9;if(!isObjectRecord(_0x39efc9))return;adaptBffTarget(_0x39efc9['target'],_0x562175(0xb5)+_0xdc1c13+_0x562175(0xcc),_0xb94a30);}),adaptResources(_0x46cac9[_0x17f6f9(0xae)],_0x17f6f9(0xaf),_0xb94a30),{'manifest':_0x46cac9,'errors':_0xb94a30};}export function toPublicServiceTreeTarget(_0x4eeb56){const _0x3447c8=a62_0x8198,{scriptName:_0x57340e,..._0x252221}=_0x4eeb56;return typeof _0x57340e===_0x3447c8(0xb9)&&_0x57340e[_0x3447c8(0xcf)]()&&(_0x252221[_0x3447c8(0xcb)]=_0x57340e),_0x252221;}export function toPublicNormalizedServiceTree(_0x252713){const _0x140a9c=a62_0x8198;return{..._0x252713,'commands':_0x252713['commands'][_0x140a9c(0xd3)](_0xbdc1e=>({..._0xbdc1e,'target':toPublicServiceTreeTarget(_0xbdc1e[_0x140a9c(0xc8)])}))};}function a62_0x8198(_0xa7875e,_0x6bebcc){_0xa7875e=_0xa7875e-0xaa;const _0x4ecd04=a62_0x4ecd();let _0x8198f8=_0x4ecd04[_0xa7875e];return _0x8198f8;}function adaptResources(_0x4b9328,_0x6d33dd,_0x12d0ff){const _0x4051ec=a62_0x8198;if(!isObjectRecord(_0x4b9328))return;for(const [_0x344b44,_0x18c211]of Object[_0x4051ec(0xd0)](_0x4b9328)){if(!isObjectRecord(_0x18c211))continue;const _0x4eb2f7=_0x6d33dd+'.'+_0x344b44;if(isObjectRecord(_0x18c211['actions']))for(const [_0x324b1c,_0x551e0b]of Object[_0x4051ec(0xd0)](_0x18c211[_0x4051ec(0xc1)])){if(!isObjectRecord(_0x551e0b))continue;const _0x1a903a=_0x4eb2f7+_0x4051ec(0xd2)+_0x324b1c,_0x459986=isObjectRecord(_0x551e0b[_0x4051ec(0xc8)])&&_0x551e0b[_0x4051ec(0xc8)][_0x4051ec(0xb3)]===_0x4051ec(0xbc);adaptBffTarget(_0x551e0b[_0x4051ec(0xc8)],_0x1a903a+_0x4051ec(0xcd),_0x12d0ff),(_0x459986||isBffAction(_0x551e0b))&&adaptFunctionNameField(_0x551e0b,_0x1a903a,_0x12d0ff);}adaptResources(_0x18c211['resources'],_0x4eb2f7+_0x4051ec(0xb0),_0x12d0ff);}}function adaptBffTarget(_0x45ca2f,_0x470ba9,_0x5337a3){const _0x23d737=a62_0x8198;if(!isObjectRecord(_0x45ca2f)||_0x45ca2f[_0x23d737(0xb3)]!==_0x23d737(0xbc))return;adaptFunctionNameField(_0x45ca2f,_0x470ba9,_0x5337a3);}function adaptFunctionNameField(_0x40fde9,_0x5be3d2,_0x4c913c){const _0x5d1730=a62_0x8198;Object[_0x5d1730(0xb2)][_0x5d1730(0xb7)]['call'](_0x40fde9,_0x5d1730(0xbe))&&_0x4c913c[_0x5d1730(0xb1)]({'level':_0x5d1730(0xbd),'path':_0x5be3d2+'.scriptName','message':_0x5d1730(0xbb)});if(Object['prototype']['hasOwnProperty'][_0x5d1730(0xac)](_0x40fde9,_0x5d1730(0xcb))){if(typeof _0x40fde9[_0x5d1730(0xcb)]!=='string'||!_0x40fde9[_0x5d1730(0xcb)][_0x5d1730(0xcf)]()){_0x4c913c['push']({'level':_0x5d1730(0xbd),'path':_0x5be3d2+_0x5d1730(0xc3),'message':_0x5d1730(0xba)}),delete _0x40fde9['functionName'];return;}_0x40fde9[_0x5d1730(0xbe)]=_0x40fde9[_0x5d1730(0xcb)],delete _0x40fde9[_0x5d1730(0xcb)];}}function isBffAction(_0x39f53f){const _0x147c23=a62_0x8198;return _0x39f53f[_0x147c23(0xb3)]===_0x147c23(0xbc)||_0x39f53f[_0x147c23(0xc9)]==='bff.exec'||_0x39f53f[_0x147c23(0xc8)]==='bff.exec';}function a62_0x4ecd(){const _0x4d66f2=['string','functionName\x20must\x20be\x20a\x20non-empty\x20string.','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','bff','error','scriptName','forEach','580877UKHfPa','actions','103528mhBjpy','.functionName','48xZtmrJ','807387OdCWLO','12080hSFsgY','15RSFLwM','target','action','fromEntries','functionName','].target','.target','2583321MUxgum','trim','entries','211657ThGqsG','.actions.','map','object','8QkHLdS','call','4500450MoxrMz','resources','$.resources','.resources','push','prototype','kind','isArray','$.commands[','7074poOXZD','hasOwnProperty','396SPkdGO'];a62_0x4ecd=function(){return _0x4d66f2;};return a62_0x4ecd();}function cloneJsonValue(_0x98e574){const _0x5e7cb8=a62_0x8198;if(Array[_0x5e7cb8(0xb4)](_0x98e574))return _0x98e574[_0x5e7cb8(0xd3)](_0x45a678=>cloneJsonValue(_0x45a678));if(isObjectRecord(_0x98e574))return Object[_0x5e7cb8(0xca)](Object[_0x5e7cb8(0xd0)](_0x98e574)[_0x5e7cb8(0xd3)](([_0x10f572,_0x36c7ce])=>[_0x10f572,cloneJsonValue(_0x36c7ce)]));return _0x98e574;}function isObjectRecord(_0x239eed){const _0x415d22=a62_0x8198;return Boolean(_0x239eed)&&typeof _0x239eed===_0x415d22(0xaa)&&!Array[_0x415d22(0xb4)](_0x239eed);}
@@ -1 +1 @@
1
- const a63_0x267ca=a63_0x3c66;function a63_0x3c66(_0x32f0f8,_0x2e1ce4){_0x32f0f8=_0x32f0f8-0x1e6;const _0x1a78cb=a63_0x1a78();let _0x3c66f4=_0x1a78cb[_0x32f0f8];return _0x3c66f4;}function a63_0x1a78(){const _0x14ff91=['serviceCount','manifests','report','manifest','entry','7437256FxhJuS','str','35zGbHnS','warnings','Service\x20manifest\x20validation\x20passed.','remove','593022JDOmEP','WRITE','8wMWzyg','replaced','risk','validate','496722XkPyEb','write','map','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.','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Service\x20Tree\x20manifest\x20file\x20path','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','source','serviceCode','name','detail','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','kind','imported','version','read','file','\x20service(s).','820ybXDbY','registryIndex','Removed\x20service\x20','import','string','Updated','updated','filePath','length','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','\x20service(s),\x20updated\x20','Exported\x20service\x20','cliName','cliPath','Service\x20registry\x20validation\x20passed.','60207VDCmfI','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','export','76851hKrheY','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','Local\x20service\x20code,\x20for\x20example\x20crm','commands','registryPath','14jdkGlO','service','normalizedManifest','460395JqIlsG','target','list','registryServiceCode','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.','11523127BZAHVi','reduce','flags','hash','errors','importedAt'];a63_0x1a78=function(){return _0x14ff91;};return a63_0x1a78();}(function(_0x46a66c,_0x9ba498){const _0x4a3b07=a63_0x3c66,_0x1d77db=_0x46a66c();while(!![]){try{const _0x302bbc=parseInt(_0x4a3b07(0x200))/0x1*(-parseInt(_0x4a3b07(0x208))/0x2)+-parseInt(_0x4a3b07(0x221))/0x3*(parseInt(_0x4a3b07(0x223))/0x4)+parseInt(_0x4a3b07(0x20b))/0x5+-parseInt(_0x4a3b07(0x227))/0x6*(-parseInt(_0x4a3b07(0x21d))/0x7)+-parseInt(_0x4a3b07(0x21b))/0x8+-parseInt(_0x4a3b07(0x203))/0x9*(-parseInt(_0x4a3b07(0x1f1))/0xa)+parseInt(_0x4a3b07(0x210))/0xb;if(_0x302bbc===_0x9ba498)break;else _0x1d77db['push'](_0x1d77db['shift']());}catch(_0x2dd3c0){_0x1d77db['push'](_0x1d77db['shift']());}}}(a63_0x1a78,0x7bdb3));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a63_0x267ca(0x1ef),'type':'string','required':!![],'description':a63_0x267ca(0x22d)},SERVICE_FLAG={'name':'service','type':a63_0x267ca(0x1f5),'required':!![],'description':a63_0x267ca(0x205),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0xcdec65){const _0x21ba1e=a63_0x267ca;return{'serviceCode':_0xcdec65['serviceCode'],'name':_0xcdec65['normalizedManifest'][_0x21ba1e(0x209)]['name'],'version':_0xcdec65[_0x21ba1e(0x1ed)],'importedAt':_0xcdec65[_0x21ba1e(0x215)],'source':_0xcdec65[_0x21ba1e(0x22f)],'commandCount':_0xcdec65[_0x21ba1e(0x20a)][_0x21ba1e(0x206)][_0x21ba1e(0x1f9)],'commands':_0xcdec65[_0x21ba1e(0x20a)]['commands'][_0x21ba1e(0x229)](_0x39b738=>({'path':_0x39b738[_0x21ba1e(0x1fe)],'description':_0x39b738['description'],'risk':_0x39b738[_0x21ba1e(0x225)],'target':toPublicServiceTreeTarget(_0x39b738['target']),'flags':_0x39b738[_0x21ba1e(0x212)][_0x21ba1e(0x229)](_0xa49e3e=>({'name':_0xa49e3e[_0x21ba1e(0x1e7)],'cliName':_0xa49e3e[_0x21ba1e(0x1fd)],'type':_0xa49e3e['type'],'required':_0xa49e3e['required']===!![]}))}))};}function summarizeLoadedManifest(_0x1f18d5){const _0x2dc2ac=a63_0x267ca;return{'service':_0x1f18d5[_0x2dc2ac(0x20a)]?.[_0x2dc2ac(0x209)],'version':_0x1f18d5[_0x2dc2ac(0x20a)]?.['version'],'commandCount':_0x1f18d5[_0x2dc2ac(0x20a)]?.[_0x2dc2ac(0x206)][_0x2dc2ac(0x1f9)]??0x0,'commands':_0x1f18d5[_0x2dc2ac(0x20a)]?.['commands']['map'](_0x2f09c7=>({'path':_0x2f09c7['cliPath'],'risk':_0x2f09c7[_0x2dc2ac(0x225)],'target':toPublicServiceTreeTarget(_0x2f09c7[_0x2dc2ac(0x20c)])}))??[],'registryIndex':_0x1f18d5[_0x2dc2ac(0x1f2)],'registryServiceCode':_0x1f18d5[_0x2dc2ac(0x20e)],'errors':_0x1f18d5[_0x2dc2ac(0x218)][_0x2dc2ac(0x214)],'warnings':_0x1f18d5['report'][_0x2dc2ac(0x21e)]};}export const serviceDefinitions=[{'service':a63_0x267ca(0x209),'command':a63_0x267ca(0x226),'description':a63_0x267ca(0x204),'risk':a63_0x267ca(0x1ee),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x4b3542){const _0x1bac1b=a63_0x267ca,_0x370113=loadServiceManifestFromFile(_0x4b3542[_0x1bac1b(0x21c)](_0x1bac1b(0x1ef)));if(!_0x370113[_0x1bac1b(0x218)]['ok'])return{'ok':![],'data':{'file':_0x370113['filePath'],'hash':_0x370113[_0x1bac1b(0x213)],'kind':_0x370113[_0x1bac1b(0x1eb)],'serviceCount':_0x370113['manifests'][_0x1bac1b(0x1f9)],'services':_0x370113['manifests'][_0x1bac1b(0x229)](summarizeLoadedManifest),'errors':_0x370113[_0x1bac1b(0x218)][_0x1bac1b(0x214)],'warnings':_0x370113[_0x1bac1b(0x218)][_0x1bac1b(0x21e)]},'message':formatValidationFailure(_0x370113[_0x1bac1b(0x218)])};if(_0x370113[_0x1bac1b(0x1eb)]==='registry'||_0x370113[_0x1bac1b(0x217)][_0x1bac1b(0x1f9)]!==0x1)return{'ok':!![],'data':{'file':_0x370113[_0x1bac1b(0x1f8)],'hash':_0x370113[_0x1bac1b(0x213)],'kind':_0x370113[_0x1bac1b(0x1eb)],'serviceCount':_0x370113[_0x1bac1b(0x217)][_0x1bac1b(0x1f9)],'commandCount':_0x370113[_0x1bac1b(0x217)][_0x1bac1b(0x211)]((_0x5e48de,_0x103cf5)=>_0x5e48de+(_0x103cf5[_0x1bac1b(0x20a)]?.[_0x1bac1b(0x206)][_0x1bac1b(0x1f9)]??0x0),0x0),'services':_0x370113[_0x1bac1b(0x217)][_0x1bac1b(0x229)](summarizeLoadedManifest),'warnings':_0x370113[_0x1bac1b(0x218)]['warnings']},'message':_0x1bac1b(0x1ff)};return{'ok':!![],'data':{'file':_0x370113[_0x1bac1b(0x1f8)],'hash':_0x370113[_0x1bac1b(0x213)],'kind':_0x370113[_0x1bac1b(0x1eb)],'service':_0x370113[_0x1bac1b(0x20a)]?.[_0x1bac1b(0x209)],'version':_0x370113[_0x1bac1b(0x20a)]?.[_0x1bac1b(0x1ed)],'commandCount':_0x370113[_0x1bac1b(0x20a)]?.[_0x1bac1b(0x206)]['length']??0x0,'commands':_0x370113[_0x1bac1b(0x20a)]?.['commands'][_0x1bac1b(0x229)](_0x2da5cd=>({'path':_0x2da5cd['cliPath'],'risk':_0x2da5cd[_0x1bac1b(0x225)],'target':toPublicServiceTreeTarget(_0x2da5cd['target'])})),'warnings':_0x370113['report'][_0x1bac1b(0x21e)]},'message':_0x1bac1b(0x21f)};}},{'service':a63_0x267ca(0x209),'command':a63_0x267ca(0x1f4),'description':a63_0x267ca(0x1ea),'risk':a63_0x267ca(0x228),'confirmationDescription':a63_0x267ca(0x22a),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x48367f){const _0x1e84ba=a63_0x267ca,_0x234049=loadServiceManifestFromFile(_0x48367f['str']('file'));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x234049['filePath'],'hash':_0x234049[_0x1e84ba(0x213)],'kind':_0x234049['kind'],'ok':_0x234049[_0x1e84ba(0x218)]['ok'],'service':_0x234049[_0x1e84ba(0x20a)]?.[_0x1e84ba(0x209)],'version':_0x234049[_0x1e84ba(0x20a)]?.[_0x1e84ba(0x1ed)],'serviceCount':_0x234049['manifests']['length'],'services':_0x234049[_0x1e84ba(0x217)]['map'](_0x5000b3=>({'service':_0x5000b3[_0x1e84ba(0x20a)]?.[_0x1e84ba(0x209)],'version':_0x5000b3[_0x1e84ba(0x20a)]?.[_0x1e84ba(0x1ed)],'commandCount':_0x5000b3[_0x1e84ba(0x20a)]?.[_0x1e84ba(0x206)][_0x1e84ba(0x1f9)]??0x0,'errors':_0x5000b3[_0x1e84ba(0x218)]['errors']})),'errors':_0x234049[_0x1e84ba(0x218)][_0x1e84ba(0x214)],'commandCount':_0x234049[_0x1e84ba(0x20a)]?.['commands'][_0x1e84ba(0x1f9)]??0x0},'description':_0x1e84ba(0x1fa)};},async 'execute'(_0x2acb48){const _0x51d98d=a63_0x267ca,_0xad9f04=importServiceManifest(_0x2acb48[_0x51d98d(0x21c)](_0x51d98d(0x1ef)));if(_0xad9f04['entries']['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0xad9f04[_0x51d98d(0x207)],'imported':_0xad9f04['imported'],'updated':_0xad9f04[_0x51d98d(0x1f7)],'serviceCount':_0xad9f04['serviceCount'],'services':_0xad9f04['entries'][_0x51d98d(0x229)](summarizeService)},'message':'Imported\x20'+_0xad9f04[_0x51d98d(0x1ec)]+_0x51d98d(0x1fb)+_0xad9f04[_0x51d98d(0x1f7)]+_0x51d98d(0x1f0)};return{'ok':!![],'data':{'registryPath':_0xad9f04[_0x51d98d(0x207)],'replaced':_0xad9f04[_0x51d98d(0x224)],'imported':_0xad9f04[_0x51d98d(0x1ec)],'updated':_0xad9f04[_0x51d98d(0x1f7)],'serviceCount':_0xad9f04[_0x51d98d(0x216)],'service':summarizeService(_0xad9f04['entry'])},'message':(_0xad9f04[_0x51d98d(0x224)]?_0x51d98d(0x1f6):'Imported')+'\x20service\x20'+_0xad9f04[_0x51d98d(0x21a)][_0x51d98d(0x1e6)]+'.'};}},{'service':a63_0x267ca(0x209),'command':a63_0x267ca(0x202),'description':a63_0x267ca(0x201),'risk':'write','confirmationDescription':a63_0x267ca(0x20f),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x12d3fd){const _0x5057ff=a63_0x267ca,_0x9e600a=getLocalServiceEntry(_0x12d3fd['str'](_0x5057ff(0x209)));return{'method':_0x5057ff(0x222),'url':_0x12d3fd[_0x5057ff(0x21c)](_0x5057ff(0x1ef)),'body':{'service':_0x12d3fd[_0x5057ff(0x21c)]('service'),'found':Boolean(_0x9e600a),'version':_0x9e600a?.[_0x5057ff(0x1ed)],'source':_0x9e600a?.[_0x5057ff(0x22f)]},'description':_0x5057ff(0x1e9)};},async 'execute'(_0x2d2cb4){const _0x51ed7c=a63_0x267ca,_0x4d1c34=exportServiceManifest(_0x2d2cb4['str'](_0x51ed7c(0x209)),_0x2d2cb4['str'](_0x51ed7c(0x1ef)));return{'ok':!![],'data':{'registryPath':_0x4d1c34[_0x51ed7c(0x207)],'file':_0x4d1c34[_0x51ed7c(0x1f8)],'service':summarizeService(_0x4d1c34[_0x51ed7c(0x21a)])},'message':_0x51ed7c(0x1fc)+_0x4d1c34[_0x51ed7c(0x21a)]['serviceCode']+'.'};}},{'service':'service','command':a63_0x267ca(0x20d),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':a63_0x267ca(0x1ee),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x10d364=a63_0x267ca,_0xb5b342=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0xb5b342[_0x10d364(0x1f9)],'services':_0xb5b342[_0x10d364(0x229)](summarizeService)}};}},{'service':a63_0x267ca(0x209),'command':a63_0x267ca(0x220),'description':'Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','risk':a63_0x267ca(0x228),'confirmationDescription':a63_0x267ca(0x22b),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x415342){const _0x18136d=a63_0x267ca,_0x45dccd=getLocalServiceEntry(_0x415342[_0x18136d(0x21c)](_0x18136d(0x209)));return{'method':_0x18136d(0x222),'url':getServiceRegistryPath(),'body':{'service':_0x415342[_0x18136d(0x21c)](_0x18136d(0x209)),'found':Boolean(_0x45dccd),'version':_0x45dccd?.['version'],'source':_0x45dccd?.[_0x18136d(0x22f)]},'description':_0x18136d(0x22c)};},async 'execute'(_0x2235b1){const _0x1dd52f=a63_0x267ca,_0x5040a3=removeServiceManifest(_0x2235b1[_0x1dd52f(0x21c)](_0x1dd52f(0x209)));return{'ok':!![],'data':{'registryPath':_0x5040a3['registryPath'],'serviceCount':_0x5040a3[_0x1dd52f(0x216)],'service':summarizeService(_0x5040a3[_0x1dd52f(0x21a)])},'message':_0x1dd52f(0x1f3)+_0x5040a3['entry'][_0x1dd52f(0x1e6)]+'.'};}},{'service':a63_0x267ca(0x209),'command':a63_0x267ca(0x1e8),'description':a63_0x267ca(0x22e),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x416132){const _0x1c70cc=a63_0x267ca,_0x37a810=getLocalServiceEntry(_0x416132[_0x1c70cc(0x21c)](_0x1c70cc(0x209)));if(!_0x37a810)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x416132[_0x1c70cc(0x21c)](_0x1c70cc(0x209))},'message':'Local\x20service\x20not\x20found:\x20'+_0x416132[_0x1c70cc(0x21c)](_0x1c70cc(0x209))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x37a810),'manifest':_0x37a810[_0x1c70cc(0x219)],'normalizedManifest':toPublicNormalizedServiceTree(_0x37a810['normalizedManifest'])}};}}];
1
+ const a63_0x6b6460=a63_0x64ff;(function(_0x4ded50,_0xbaeefc){const _0x2dfebd=a63_0x64ff,_0x2be13d=_0x4ded50();while(!![]){try{const _0x58964f=parseInt(_0x2dfebd(0x1e9))/0x1+-parseInt(_0x2dfebd(0x1c7))/0x2*(-parseInt(_0x2dfebd(0x1f7))/0x3)+-parseInt(_0x2dfebd(0x1b8))/0x4+-parseInt(_0x2dfebd(0x1d9))/0x5+parseInt(_0x2dfebd(0x1f5))/0x6+parseInt(_0x2dfebd(0x1f6))/0x7*(parseInt(_0x2dfebd(0x1ba))/0x8)+parseInt(_0x2dfebd(0x1e5))/0x9;if(_0x58964f===_0xbaeefc)break;else _0x2be13d['push'](_0x2be13d['shift']());}catch(_0x3878d6){_0x2be13d['push'](_0x2be13d['shift']());}}}(a63_0x443f,0x4b255));function a63_0x443f(){const _0x118032=['WRITE','lower\x20kebab-case\x20service\x20code','validate','registry','string','manifests','kind','entry','636355zBcHMg','manifest','write','service','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','\x20service(s),\x20updated\x20','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.','registryPath','cliPath','Local\x20service\x20code,\x20for\x20example\x20crm','errors','file','634023uYyiOd','report','remove','Local\x20service\x20not\x20found:\x20','211084PvmFEL','length','warnings','imported','Exported\x20service\x20','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','version','Removed\x20service\x20','source','reduce','entries','str','966210NaaIaZ','3010akFGyM','37683cybkmd','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','target','flags','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','filePath','name','\x20service\x20','1430208vJkGvM','export','904zYfRuq','normalizedManifest','replaced','description','map','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','importedAt','Imported','risk','Service\x20Tree\x20manifest\x20file\x20path','import','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','Service\x20manifest\x20validation\x20passed.','48QSsuCT','detail','hash','serviceCode','read','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','Service\x20registry\x20validation\x20passed.','serviceCount','updated','commands'];a63_0x443f=function(){return _0x118032;};return a63_0x443f();}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a63_0x6b6460(0x1e4),'type':a63_0x6b6460(0x1d5),'required':!![],'description':a63_0x6b6460(0x1c3)},SERVICE_FLAG={'name':a63_0x6b6460(0x1dc),'type':a63_0x6b6460(0x1d5),'required':!![],'description':a63_0x6b6460(0x1e2),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a63_0x6b6460(0x1d2)}};function summarizeService(_0x22a791){const _0x14acde=a63_0x6b6460;return{'serviceCode':_0x22a791['serviceCode'],'name':_0x22a791[_0x14acde(0x1bb)][_0x14acde(0x1dc)][_0x14acde(0x1b6)],'version':_0x22a791['version'],'importedAt':_0x22a791[_0x14acde(0x1c0)],'source':_0x22a791[_0x14acde(0x1f1)],'commandCount':_0x22a791['normalizedManifest'][_0x14acde(0x1d0)]['length'],'commands':_0x22a791[_0x14acde(0x1bb)][_0x14acde(0x1d0)][_0x14acde(0x1be)](_0x58b528=>({'path':_0x58b528[_0x14acde(0x1e1)],'description':_0x58b528[_0x14acde(0x1bd)],'risk':_0x58b528[_0x14acde(0x1c2)],'target':toPublicServiceTreeTarget(_0x58b528[_0x14acde(0x1f9)]),'flags':_0x58b528[_0x14acde(0x1fa)][_0x14acde(0x1be)](_0x4543f3=>({'name':_0x4543f3['name'],'cliName':_0x4543f3['cliName'],'type':_0x4543f3['type'],'required':_0x4543f3['required']===!![]}))}))};}function summarizeLoadedManifest(_0x40c850){const _0x5c58a5=a63_0x6b6460;return{'service':_0x40c850[_0x5c58a5(0x1bb)]?.[_0x5c58a5(0x1dc)],'version':_0x40c850[_0x5c58a5(0x1bb)]?.[_0x5c58a5(0x1ef)],'commandCount':_0x40c850[_0x5c58a5(0x1bb)]?.[_0x5c58a5(0x1d0)]['length']??0x0,'commands':_0x40c850['normalizedManifest']?.[_0x5c58a5(0x1d0)][_0x5c58a5(0x1be)](_0x11e316=>({'path':_0x11e316[_0x5c58a5(0x1e1)],'risk':_0x11e316[_0x5c58a5(0x1c2)],'target':toPublicServiceTreeTarget(_0x11e316[_0x5c58a5(0x1f9)])}))??[],'registryIndex':_0x40c850['registryIndex'],'registryServiceCode':_0x40c850['registryServiceCode'],'errors':_0x40c850[_0x5c58a5(0x1e6)]['errors'],'warnings':_0x40c850[_0x5c58a5(0x1e6)][_0x5c58a5(0x1eb)]};}function a63_0x64ff(_0x3804d8,_0x2c0197){_0x3804d8=_0x3804d8-0x1b5;const _0x443fbe=a63_0x443f();let _0x64ff5a=_0x443fbe[_0x3804d8];return _0x64ff5a;}export const serviceDefinitions=[{'service':'service','command':a63_0x6b6460(0x1d3),'description':a63_0x6b6460(0x1dd),'risk':a63_0x6b6460(0x1cb),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x2a8740){const _0x130df7=a63_0x6b6460,_0x672957=loadServiceManifestFromFile(_0x2a8740[_0x130df7(0x1f4)]('file'));if(!_0x672957[_0x130df7(0x1e6)]['ok'])return{'ok':![],'data':{'file':_0x672957[_0x130df7(0x1b5)],'hash':_0x672957['hash'],'kind':_0x672957[_0x130df7(0x1d7)],'serviceCount':_0x672957[_0x130df7(0x1d6)][_0x130df7(0x1ea)],'services':_0x672957['manifests']['map'](summarizeLoadedManifest),'errors':_0x672957[_0x130df7(0x1e6)][_0x130df7(0x1e3)],'warnings':_0x672957[_0x130df7(0x1e6)]['warnings']},'message':formatValidationFailure(_0x672957['report'])};if(_0x672957[_0x130df7(0x1d7)]===_0x130df7(0x1d4)||_0x672957[_0x130df7(0x1d6)][_0x130df7(0x1ea)]!==0x1)return{'ok':!![],'data':{'file':_0x672957[_0x130df7(0x1b5)],'hash':_0x672957['hash'],'kind':_0x672957['kind'],'serviceCount':_0x672957[_0x130df7(0x1d6)][_0x130df7(0x1ea)],'commandCount':_0x672957[_0x130df7(0x1d6)][_0x130df7(0x1f2)]((_0x38446c,_0x2ff4b6)=>_0x38446c+(_0x2ff4b6[_0x130df7(0x1bb)]?.[_0x130df7(0x1d0)][_0x130df7(0x1ea)]??0x0),0x0),'services':_0x672957[_0x130df7(0x1d6)]['map'](summarizeLoadedManifest),'warnings':_0x672957[_0x130df7(0x1e6)][_0x130df7(0x1eb)]},'message':_0x130df7(0x1cd)};return{'ok':!![],'data':{'file':_0x672957['filePath'],'hash':_0x672957[_0x130df7(0x1c9)],'kind':_0x672957[_0x130df7(0x1d7)],'service':_0x672957[_0x130df7(0x1bb)]?.['service'],'version':_0x672957[_0x130df7(0x1bb)]?.[_0x130df7(0x1ef)],'commandCount':_0x672957[_0x130df7(0x1bb)]?.[_0x130df7(0x1d0)][_0x130df7(0x1ea)]??0x0,'commands':_0x672957[_0x130df7(0x1bb)]?.[_0x130df7(0x1d0)][_0x130df7(0x1be)](_0x56c0a1=>({'path':_0x56c0a1['cliPath'],'risk':_0x56c0a1['risk'],'target':toPublicServiceTreeTarget(_0x56c0a1[_0x130df7(0x1f9)])})),'warnings':_0x672957[_0x130df7(0x1e6)][_0x130df7(0x1eb)]},'message':_0x130df7(0x1c6)};}},{'service':a63_0x6b6460(0x1dc),'command':a63_0x6b6460(0x1c4),'description':a63_0x6b6460(0x1fb),'risk':a63_0x6b6460(0x1db),'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'(_0x53080e){const _0x250a7a=a63_0x6b6460,_0x69e0c8=loadServiceManifestFromFile(_0x53080e['str'](_0x250a7a(0x1e4)));return{'method':_0x250a7a(0x1d1),'url':getServiceRegistryPath(),'body':{'file':_0x69e0c8[_0x250a7a(0x1b5)],'hash':_0x69e0c8[_0x250a7a(0x1c9)],'kind':_0x69e0c8['kind'],'ok':_0x69e0c8[_0x250a7a(0x1e6)]['ok'],'service':_0x69e0c8['normalizedManifest']?.[_0x250a7a(0x1dc)],'version':_0x69e0c8['normalizedManifest']?.[_0x250a7a(0x1ef)],'serviceCount':_0x69e0c8['manifests'][_0x250a7a(0x1ea)],'services':_0x69e0c8['manifests']['map'](_0x342094=>({'service':_0x342094[_0x250a7a(0x1bb)]?.[_0x250a7a(0x1dc)],'version':_0x342094[_0x250a7a(0x1bb)]?.[_0x250a7a(0x1ef)],'commandCount':_0x342094[_0x250a7a(0x1bb)]?.[_0x250a7a(0x1d0)][_0x250a7a(0x1ea)]??0x0,'errors':_0x342094[_0x250a7a(0x1e6)][_0x250a7a(0x1e3)]})),'errors':_0x69e0c8[_0x250a7a(0x1e6)][_0x250a7a(0x1e3)],'commandCount':_0x69e0c8[_0x250a7a(0x1bb)]?.['commands']['length']??0x0},'description':_0x250a7a(0x1c5)};},async 'execute'(_0x41c621){const _0x37c1a7=a63_0x6b6460,_0x42ed19=importServiceManifest(_0x41c621[_0x37c1a7(0x1f4)]('file'));if(_0x42ed19[_0x37c1a7(0x1f3)][_0x37c1a7(0x1ea)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x42ed19[_0x37c1a7(0x1e0)],'imported':_0x42ed19[_0x37c1a7(0x1ec)],'updated':_0x42ed19['updated'],'serviceCount':_0x42ed19[_0x37c1a7(0x1ce)],'services':_0x42ed19['entries'][_0x37c1a7(0x1be)](summarizeService)},'message':'Imported\x20'+_0x42ed19[_0x37c1a7(0x1ec)]+_0x37c1a7(0x1de)+_0x42ed19[_0x37c1a7(0x1cf)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x42ed19['registryPath'],'replaced':_0x42ed19[_0x37c1a7(0x1bc)],'imported':_0x42ed19[_0x37c1a7(0x1ec)],'updated':_0x42ed19[_0x37c1a7(0x1cf)],'serviceCount':_0x42ed19[_0x37c1a7(0x1ce)],'service':summarizeService(_0x42ed19[_0x37c1a7(0x1d8)])},'message':(_0x42ed19['replaced']?'Updated':_0x37c1a7(0x1c1))+_0x37c1a7(0x1b7)+_0x42ed19[_0x37c1a7(0x1d8)]['serviceCode']+'.'};}},{'service':'service','command':a63_0x6b6460(0x1b9),'description':'Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':a63_0x6b6460(0x1db),'confirmationDescription':a63_0x6b6460(0x1df),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x18c257){const _0x1ebcab=a63_0x6b6460,_0x935569=getLocalServiceEntry(_0x18c257['str']('service'));return{'method':'WRITE','url':_0x18c257[_0x1ebcab(0x1f4)](_0x1ebcab(0x1e4)),'body':{'service':_0x18c257[_0x1ebcab(0x1f4)](_0x1ebcab(0x1dc)),'found':Boolean(_0x935569),'version':_0x935569?.['version'],'source':_0x935569?.[_0x1ebcab(0x1f1)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x212d68){const _0x166b04=a63_0x6b6460,_0x1a1590=exportServiceManifest(_0x212d68[_0x166b04(0x1f4)](_0x166b04(0x1dc)),_0x212d68[_0x166b04(0x1f4)](_0x166b04(0x1e4)));return{'ok':!![],'data':{'registryPath':_0x1a1590[_0x166b04(0x1e0)],'file':_0x1a1590[_0x166b04(0x1b5)],'service':summarizeService(_0x1a1590[_0x166b04(0x1d8)])},'message':_0x166b04(0x1ed)+_0x1a1590[_0x166b04(0x1d8)][_0x166b04(0x1ca)]+'.'};}},{'service':a63_0x6b6460(0x1dc),'command':'list','description':a63_0x6b6460(0x1f8),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x49bbfb=a63_0x6b6460,_0xb1abc9=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0xb1abc9[_0x49bbfb(0x1ea)],'services':_0xb1abc9['map'](summarizeService)}};}},{'service':'service','command':a63_0x6b6460(0x1e7),'description':a63_0x6b6460(0x1fc),'risk':a63_0x6b6460(0x1db),'confirmationDescription':a63_0x6b6460(0x1bf),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x1059c8){const _0x40f7fb=a63_0x6b6460,_0x8d5c5d=getLocalServiceEntry(_0x1059c8[_0x40f7fb(0x1f4)]('service'));return{'method':_0x40f7fb(0x1d1),'url':getServiceRegistryPath(),'body':{'service':_0x1059c8[_0x40f7fb(0x1f4)](_0x40f7fb(0x1dc)),'found':Boolean(_0x8d5c5d),'version':_0x8d5c5d?.[_0x40f7fb(0x1ef)],'source':_0x8d5c5d?.[_0x40f7fb(0x1f1)]},'description':_0x40f7fb(0x1ee)};},async 'execute'(_0xe906b6){const _0x5c0f09=a63_0x6b6460,_0x1c3788=removeServiceManifest(_0xe906b6[_0x5c0f09(0x1f4)]('service'));return{'ok':!![],'data':{'registryPath':_0x1c3788[_0x5c0f09(0x1e0)],'serviceCount':_0x1c3788['serviceCount'],'service':summarizeService(_0x1c3788[_0x5c0f09(0x1d8)])},'message':_0x5c0f09(0x1f0)+_0x1c3788[_0x5c0f09(0x1d8)]['serviceCode']+'.'};}},{'service':a63_0x6b6460(0x1dc),'command':a63_0x6b6460(0x1c8),'description':a63_0x6b6460(0x1cc),'risk':a63_0x6b6460(0x1cb),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x15eff0){const _0x21852f=a63_0x6b6460,_0x3d6533=getLocalServiceEntry(_0x15eff0[_0x21852f(0x1f4)](_0x21852f(0x1dc)));if(!_0x3d6533)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x15eff0['str'](_0x21852f(0x1dc))},'message':_0x21852f(0x1e8)+_0x15eff0['str'](_0x21852f(0x1dc))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x3d6533),'manifest':_0x3d6533[_0x21852f(0x1da)],'normalizedManifest':toPublicNormalizedServiceTree(_0x3d6533[_0x21852f(0x1bb)])}};}}];
@@ -1 +1 @@
1
- (function(_0x4b9244,_0x25824f){const _0x4283fe=a64_0x20a6,_0x405123=_0x4b9244();while(!![]){try{const _0x524afa=parseInt(_0x4283fe(0xbb))/0x1+parseInt(_0x4283fe(0xda))/0x2*(-parseInt(_0x4283fe(0xc6))/0x3)+-parseInt(_0x4283fe(0xd1))/0x4+-parseInt(_0x4283fe(0xd2))/0x5+parseInt(_0x4283fe(0x9d))/0x6*(-parseInt(_0x4283fe(0xed))/0x7)+-parseInt(_0x4283fe(0xce))/0x8*(-parseInt(_0x4283fe(0xdd))/0x9)+-parseInt(_0x4283fe(0xe8))/0xa*(-parseInt(_0x4283fe(0xd9))/0xb);if(_0x524afa===_0x25824f)break;else _0x405123['push'](_0x405123['shift']());}catch(_0x4d120d){_0x405123['push'](_0x405123['shift']());}}}(a64_0x1119,0x7e7e3));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME='service.json';export function getServiceRegistryPath(_0x40fac0={}){const _0x27abc3=a64_0x20a6;return resolve(_0x40fac0[_0x27abc3(0xe9)]??homedir(),PRODUCT_CONFIG[_0x27abc3(0x9e)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x9aadea={}){const _0xd4e8f4=a64_0x20a6,_0x5b1685=getServiceRegistryPath(_0x9aadea);if(!existsSync(_0x5b1685))return emptyServiceRegistry();try{const _0x474a82=readFileSync(_0x5b1685,_0xd4e8f4(0xe0));if(!_0x474a82[_0xd4e8f4(0xbf)]())return emptyServiceRegistry();const _0x2e9919=JSON[_0xd4e8f4(0xb8)](_0x474a82);if(_0x2e9919[_0xd4e8f4(0xd8)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0xd4e8f4(0xb7)](_0xd4e8f4(0xd0)+String(_0x2e9919[_0xd4e8f4(0xd8)]),_0xd4e8f4(0xba)+_0x5b1685+'.');if(!Array[_0xd4e8f4(0xaa)](_0x2e9919['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2e9919[_0xd4e8f4(0xe4)],'services':_0x2e9919[_0xd4e8f4(0xe1)]};}catch(_0xc64578){if(_0xc64578 instanceof Error&&_0xc64578[_0xd4e8f4(0xc3)]===_0xd4e8f4(0xb1))throw _0xc64578;throw CliErrors[_0xd4e8f4(0xb7)]('Invalid\x20service\x20registry\x20JSON:\x20'+_0x5b1685,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x29bebc,_0xa285a8={}){const _0x24e94e=a64_0x20a6,_0x79b113=getServiceRegistryPath(_0xa285a8),_0x487b33=dirname(_0x79b113);!existsSync(_0x487b33)&&mkdirSync(_0x487b33,{'recursive':!![]});const _0x76d3a4=_0x79b113+_0x24e94e(0x9f);try{writeFileSync(_0x76d3a4,JSON[_0x24e94e(0xb2)](_0x29bebc,null,0x2)+'\x0a',{'encoding':_0x24e94e(0xe0),'mode':0x180}),renameSync(_0x76d3a4,_0x79b113);}catch(_0x169f0f){try{unlinkSync(_0x76d3a4);}catch{}if(_0x169f0f?.[_0x24e94e(0xea)]===_0x24e94e(0xc5))throw CliErrors[_0x24e94e(0xb7)](_0x24e94e(0xc7)+_0x79b113);throw _0x169f0f;}return _0x79b113;}export function loadServiceManifestFromFile(_0x2cb86b){const _0x2fcb1b=a64_0x20a6,_0x161743=resolve(_0x2cb86b);if(!existsSync(_0x161743))throw CliErrors[_0x2fcb1b(0xb7)](_0x2fcb1b(0xa0)+_0x2cb86b);let _0x521a32;const _0x27cf6b=readFileSync(_0x161743,_0x2fcb1b(0xe0));try{_0x521a32=JSON['parse'](_0x27cf6b);}catch{throw CliErrors[_0x2fcb1b(0xb7)](_0x2fcb1b(0xcc)+_0x2cb86b,_0x2fcb1b(0xa9));}const _0xc908a8=sha256(_0x27cf6b),_0x599bdc=extractLoadedServiceManifests(_0x521a32,_0xc908a8),_0x5bd1d1=aggregateValidationReports(_0x599bdc),_0x5def3e=_0x599bdc[0x0];return{'filePath':_0x161743,'hash':_0xc908a8,'kind':isServiceRegistryLike(_0x521a32)?'registry':'manifest','manifest':_0x5def3e?.[_0x2fcb1b(0xbd)]??_0x521a32,'report':_0x5bd1d1,'normalizedManifest':_0x599bdc[_0x2fcb1b(0x9a)]===0x1?_0x5def3e?.['normalizedManifest']:undefined,'manifests':_0x599bdc};}export function importServiceManifest(_0x1a9837,_0x4746b2={}){const _0x1bb8e2=a64_0x20a6,_0x1f8e36=loadServiceManifestFromFile(_0x1a9837);if(!_0x1f8e36[_0x1bb8e2(0xb6)]['ok'])throw CliErrors[_0x1bb8e2(0xb7)](formatValidationFailure(_0x1f8e36['report']),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x1f8e36[_0x1bb8e2(0xc0)][_0x1bb8e2(0x9a)]===0x0)throw CliErrors[_0x1bb8e2(0xb7)](_0x1bb8e2(0xa1),_0x1bb8e2(0xe3));const _0x3cbb05=readServiceRegistry(_0x4746b2),_0x25977f=(_0x4746b2[_0x1bb8e2(0xd4)]??(()=>new Date()))()[_0x1bb8e2(0x97)](),_0x6fb378=[];let _0x43f3a2=0x0,_0x34d3e6=0x0;for(const _0x370409 of _0x1f8e36[_0x1bb8e2(0xc0)]){if(!_0x370409['normalizedManifest'])continue;const _0x370896=_0x370409[_0x1bb8e2(0xec)][_0x1bb8e2(0xb9)][_0x1bb8e2(0xea)],_0x4cd5b7={'serviceCode':_0x370896,'version':_0x370409[_0x1bb8e2(0xec)][_0x1bb8e2(0xd5)],'importedAt':_0x25977f,'source':{'type':_0x1bb8e2(0xcf),'path':_0x1f8e36[_0x1bb8e2(0xa8)],'hash':_0x370409[_0x1bb8e2(0xd3)]},'manifest':_0x370409[_0x1bb8e2(0xbd)],'normalizedManifest':_0x370409['normalizedManifest']},_0x5f5458=_0x3cbb05[_0x1bb8e2(0xe1)]['findIndex'](_0x31e645=>_0x31e645[_0x1bb8e2(0xeb)]===_0x370896);_0x5f5458>=0x0?(_0x3cbb05[_0x1bb8e2(0xe1)][_0x5f5458]=_0x4cd5b7,_0x34d3e6++):(_0x3cbb05[_0x1bb8e2(0xe1)][_0x1bb8e2(0xcd)](_0x4cd5b7),_0x43f3a2++),_0x6fb378[_0x1bb8e2(0xcd)](_0x4cd5b7);}_0x3cbb05[_0x1bb8e2(0xe1)][_0x1bb8e2(0xa2)]((_0x2c631c,_0x452862)=>_0x2c631c[_0x1bb8e2(0xeb)]['localeCompare'](_0x452862['serviceCode'])),_0x3cbb05[_0x1bb8e2(0xe4)]=_0x25977f;const _0x13b48e=writeServiceRegistry(_0x3cbb05,_0x4746b2);return{'registryPath':_0x13b48e,'entry':_0x6fb378[0x0],'replaced':_0x6fb378[_0x1bb8e2(0x9a)]===0x1?_0x34d3e6===0x1:_0x34d3e6>0x0,'entries':_0x6fb378,'imported':_0x43f3a2,'updated':_0x34d3e6,'serviceCount':_0x3cbb05[_0x1bb8e2(0xe1)]['length']};}function a64_0x20a6(_0x1d0a8f,_0x4096f1){_0x1d0a8f=_0x1d0a8f-0x97;const _0x111919=a64_0x1119();let _0x20a6d4=_0x111919[_0x1d0a8f];return _0x20a6d4;}export function exportServiceManifest(_0x5e8ca1,_0x1c458f,_0x2aed82={}){const _0x43db31=a64_0x20a6,_0x25597c=getServiceRegistryPath(_0x2aed82),_0x4424b5=getLocalServiceEntry(_0x5e8ca1,_0x2aed82);if(!_0x4424b5)throw CliErrors[_0x43db31(0xb7)]('Local\x20service\x20not\x20found:\x20'+_0x5e8ca1,_0x43db31(0xe6));const _0x431ab5=resolve(_0x1c458f),_0x41921c=dirname(_0x431ab5);return!existsSync(_0x41921c)&&mkdirSync(_0x41921c,{'recursive':!![]}),writeFileSync(_0x431ab5,JSON[_0x43db31(0xb2)](_0x4424b5[_0x43db31(0xbd)],null,0x2)+'\x0a',{'encoding':_0x43db31(0xe0),'mode':0x180}),{'registryPath':_0x25597c,'filePath':_0x431ab5,'entry':_0x4424b5};}export function removeServiceManifest(_0x2feaa1,_0x84f2={}){const _0x3c3045=a64_0x20a6,_0x343a3d=readServiceRegistry(_0x84f2),_0x633742=_0x2feaa1[_0x3c3045(0xbf)](),_0xd596db=_0x343a3d[_0x3c3045(0xe1)][_0x3c3045(0xbc)](_0x5224f3=>_0x5224f3[_0x3c3045(0xeb)]===_0x633742);if(_0xd596db<0x0)throw CliErrors[_0x3c3045(0xb7)](_0x3c3045(0xab)+_0x633742,_0x3c3045(0xe6));const [_0x53896f]=_0x343a3d[_0x3c3045(0xe1)]['splice'](_0xd596db,0x1),_0x118144=(_0x84f2[_0x3c3045(0xd4)]??(()=>new Date()))()[_0x3c3045(0x97)]();_0x343a3d['updatedAt']=_0x118144;const _0xc6af25=writeServiceRegistry(_0x343a3d,_0x84f2);return{'registryPath':_0xc6af25,'entry':_0x53896f,'serviceCount':_0x343a3d[_0x3c3045(0xe1)]['length']};}export function listLocalServices(_0xfd2abd={}){const _0x45ae9e=a64_0x20a6;return readServiceRegistry(_0xfd2abd)[_0x45ae9e(0xe1)];}export function getLocalServiceEntry(_0x5078c2,_0x24dcaa={}){const _0x37af8e=a64_0x20a6;return readServiceRegistry(_0x24dcaa)[_0x37af8e(0xe1)][_0x37af8e(0xd6)](_0xeaa7a=>_0xeaa7a[_0x37af8e(0xeb)]===_0x5078c2['trim']());}export function listLocalServiceTrees(_0x544f0b={}){const _0x5c3cc1=a64_0x20a6;return readServiceRegistry(_0x544f0b)[_0x5c3cc1(0xe1)][_0x5c3cc1(0x9c)](_0xeffc2a=>_0xeffc2a[_0x5c3cc1(0xec)]);}export function inspectServiceRegistry(_0x19ed18={}){const _0x12a7f9=a64_0x20a6,_0xbf55c4=getServiceRegistryPath(_0x19ed18);if(!existsSync(_0xbf55c4))return emptyServiceRegistryInspection(_0xbf55c4,_0x12a7f9(0xa7),![]);try{const _0x10d3d5=readFileSync(_0xbf55c4,_0x12a7f9(0xe0));if(!_0x10d3d5['trim']())return emptyServiceRegistryInspection(_0xbf55c4,_0x12a7f9(0xac),!![]);const _0x40d128=JSON[_0x12a7f9(0xb8)](_0x10d3d5);if(_0x40d128[_0x12a7f9(0xd8)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0xbf55c4,_0x12a7f9(0xa5),!![]),'schemaVersion':_0x40d128[_0x12a7f9(0xd8)],'message':_0x12a7f9(0xa6)+String(_0x40d128[_0x12a7f9(0xd8)])};if(!Array['isArray'](_0x40d128[_0x12a7f9(0xe1)]))return{...emptyServiceRegistryInspection(_0xbf55c4,_0x12a7f9(0xa5),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x40d128[_0x12a7f9(0xe4)],'message':_0x12a7f9(0xa4)};const _0x242332=_0x40d128[_0x12a7f9(0xe1)][_0x12a7f9(0x9c)](summarizeLocalServiceEntry);return{'registryPath':_0xbf55c4,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x40d128[_0x12a7f9(0xe4)],'serviceCount':_0x242332[_0x12a7f9(0x9a)],'commandCount':_0x242332[_0x12a7f9(0xde)]((_0x3f23ca,_0xd9eede)=>_0x3f23ca+_0xd9eede[_0x12a7f9(0xb0)],0x0),'services':_0x242332};}catch(_0x306912){return{...emptyServiceRegistryInspection(_0xbf55c4,_0x12a7f9(0xa5),!![]),'message':_0x306912 instanceof Error?_0x306912[_0x12a7f9(0xee)]:String(_0x306912)};}}export function formatValidationFailure(_0x5d0212){const _0x42c244=a64_0x20a6,_0x2717ba=_0x5d0212[_0x42c244(0xaf)][_0x42c244(0x9c)](_0x465d1a=>_0x465d1a[_0x42c244(0xc2)]+':\x20'+_0x465d1a[_0x42c244(0xee)]);return _0x42c244(0x98)+_0x2717ba[_0x42c244(0xcb)]('\x0a');}function extractLoadedServiceManifests(_0x3e215d,_0x56b0db){const _0x2fede8=a64_0x20a6;if(!isServiceRegistryLike(_0x3e215d)){const _0x8a1a80=_0x3e215d,{manifest:_0x1232ef,errors:_0x14839e}=adaptServiceTreeManifestForLegacyFramework(_0x8a1a80),_0x2745ff=validateServiceTreeManifest(_0x1232ef),_0x422082=mergeValidationErrors(_0x2745ff,_0x14839e);return[{'manifest':_0x8a1a80,'report':_0x422082,'normalizedManifest':_0x422082['ok']?normalizeServiceTreeManifest(_0x1232ef):undefined,'sourceHash':_0x56b0db}];}return _0x3e215d[_0x2fede8(0xe1)][_0x2fede8(0x9c)]((_0x31bcec,_0x5c71e5)=>{const _0x343703=_0x2fede8,_0x119ec3=isObjectRecord(_0x31bcec)?_0x31bcec['manifest']:undefined,{manifest:_0x2db275,errors:_0x28dbc9}=adaptServiceTreeManifestForLegacyFramework(_0x119ec3),_0x2688a4=validateServiceTreeManifest(_0x2db275),_0x13ffdc=mergeValidationErrors(_0x2688a4,_0x28dbc9),_0x2184c7=isObjectRecord(_0x31bcec)&&typeof _0x31bcec[_0x343703(0xeb)]===_0x343703(0xe2)?_0x31bcec[_0x343703(0xeb)]:undefined;return{'manifest':_0x119ec3,'report':_0x13ffdc,'normalizedManifest':_0x13ffdc['ok']?normalizeServiceTreeManifest(_0x2db275):undefined,'sourceHash':sha256(JSON[_0x343703(0xb2)](_0x119ec3,null,0x2)+'\x0a'),'registryIndex':_0x5c71e5,'registryServiceCode':_0x2184c7};});}function mergeValidationErrors(_0x473117,_0x321e82){const _0x415f1f=a64_0x20a6,_0x48e777=_0x473117[_0x415f1f(0xaf)][_0x415f1f(0x9c)](_0x4f3652=>_0x4f3652[_0x415f1f(0xee)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x4f3652,'message':_0x415f1f(0xca)}:_0x4f3652),_0x3430cf=[..._0x321e82,..._0x48e777];return{'ok':_0x3430cf['length']===0x0,'errors':_0x3430cf,'warnings':_0x473117[_0x415f1f(0x9b)]};}function aggregateValidationReports(_0x1c39a2){const _0x1b085f=a64_0x20a6,_0x13ea07=_0x1c39a2[_0x1b085f(0xae)](_0x31b600=>_0x31b600['registryIndex']===undefined?_0x31b600[_0x1b085f(0xb6)][_0x1b085f(0xaf)]:_0x31b600['report'][_0x1b085f(0xaf)]['map'](_0x141b35=>({..._0x141b35,'path':prefixRegistryIssuePath(_0x31b600[_0x1b085f(0xa3)],_0x141b35[_0x1b085f(0xc2)])}))),_0xfb5dff=_0x1c39a2['flatMap'](_0x83f729=>_0x83f729['registryIndex']===undefined?_0x83f729[_0x1b085f(0xb6)][_0x1b085f(0x9b)]:_0x83f729[_0x1b085f(0xb6)][_0x1b085f(0x9b)][_0x1b085f(0x9c)](_0x75234d=>({..._0x75234d,'path':prefixRegistryIssuePath(_0x83f729[_0x1b085f(0xa3)],_0x75234d[_0x1b085f(0xc2)])})));return{'ok':_0x13ea07[_0x1b085f(0x9a)]===0x0,'errors':_0x13ea07,'warnings':_0xfb5dff};}function prefixRegistryIssuePath(_0x4c7bfc,_0xa60f4b){const _0x1d9d32=a64_0x20a6;if(_0xa60f4b==='$')return _0x1d9d32(0xdc)+_0x4c7bfc+'].manifest';if(_0xa60f4b[_0x1d9d32(0xb4)]('$.'))return'$.services['+_0x4c7bfc+_0x1d9d32(0xc9)+_0xa60f4b[_0x1d9d32(0xc8)](0x1);if(_0xa60f4b[_0x1d9d32(0xb4)]('$['))return'$.services['+_0x4c7bfc+_0x1d9d32(0xc9)+_0xa60f4b['slice'](0x1);return _0x1d9d32(0xdc)+_0x4c7bfc+_0x1d9d32(0xc1)+_0xa60f4b;}function isServiceRegistryLike(_0x344610){const _0x30bed6=a64_0x20a6;return isObjectRecord(_0x344610)&&_0x344610[_0x30bed6(0xd8)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x30bed6(0xaa)](_0x344610['services']);}function isObjectRecord(_0x351116){const _0xb9c0c3=a64_0x20a6;return Boolean(_0x351116)&&typeof _0x351116===_0xb9c0c3(0xbe)&&!Array[_0xb9c0c3(0xaa)](_0x351116);}function emptyServiceRegistryInspection(_0x221d30,_0xf76c63,_0x2e1743){return{'registryPath':_0x221d30,'exists':_0x2e1743,'status':_0xf76c63,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x27f4ca){const _0x2bee09=a64_0x20a6,_0x8c8b4d=_0x27f4ca[_0x2bee09(0xec)],_0x580256=_0x8c8b4d[_0x2bee09(0xe7)][_0x2bee09(0x9c)](_0x4fff2e=>({'path':_0x4fff2e['cliPath'],'description':_0x4fff2e[_0x2bee09(0xb3)],'risk':_0x4fff2e[_0x2bee09(0xdb)],'targetKind':_0x4fff2e['target'][_0x2bee09(0xd7)],'targetCommand':_0x4fff2e[_0x2bee09(0xdf)]['command']}));return{'serviceCode':_0x27f4ca['serviceCode'],'name':_0x8c8b4d[_0x2bee09(0xb9)][_0x2bee09(0xc3)],'description':_0x8c8b4d['service'][_0x2bee09(0xb3)],'version':_0x27f4ca[_0x2bee09(0xd5)],'importedAt':_0x27f4ca[_0x2bee09(0x99)],'source':_0x27f4ca[_0x2bee09(0xe5)],'commandCount':_0x580256[_0x2bee09(0x9a)],'commands':_0x580256};}function sha256(_0x6527b4){const _0x5b7aac=a64_0x20a6;return createHash(_0x5b7aac(0xc4))['update'](_0x6527b4)[_0x5b7aac(0xb5)](_0x5b7aac(0xad));}function a64_0x1119(){const _0xff0617=['Local\x20service\x20not\x20found:\x20','empty','hex','flatMap','errors','commandCount','CliError','stringify','description','startsWith','digest','report','validation','parse','service','Remove\x20or\x20migrate\x20','333526BiHaFH','findIndex','manifest','object','trim','manifests','].manifest.','path','name','sha256','ENOENT','362982XUsxiN','Cannot\x20write\x20service\x20registry:\x20','slice','].manifest','bff\x20target\x20requires\x20functionName.','join','Invalid\x20service\x20manifest\x20JSON:\x20','push','846904zSdQkU','file','Unsupported\x20service\x20registry\x20schemaVersion:\x20','2156192ONlggZ','1666215lAPOEy','sourceHash','now','version','find','kind','schemaVersion','55WpLqXJ','16PpeGPJ','risk','$.services[','9lcmeuL','reduce','target','utf8','services','string','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','updatedAt','source','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','commands','5796970rGGVDE','homeDir','code','serviceCode','normalizedManifest','96572VJznpS','message','toISOString','Service\x20manifest\x20validation\x20failed:\x0a','importedAt','length','warnings','map','426nBNbsl','homeDirName','.tmp','Service\x20manifest\x20file\x20not\x20found:\x20','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','sort','registryIndex','services\x20must\x20be\x20an\x20array','invalid','Unsupported\x20schemaVersion:\x20','missing','filePath','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','isArray'];a64_0x1119=function(){return _0xff0617;};return a64_0x1119();}
1
+ const a64_0x26d2f9=a64_0x1cbb;(function(_0x2d2e96,_0x373be1){const _0x212778=a64_0x1cbb,_0x11eb85=_0x2d2e96();while(!![]){try{const _0x1a2110=-parseInt(_0x212778(0x1ee))/0x1+parseInt(_0x212778(0x21a))/0x2*(-parseInt(_0x212778(0x1dc))/0x3)+-parseInt(_0x212778(0x1e0))/0x4+parseInt(_0x212778(0x201))/0x5*(parseInt(_0x212778(0x1e5))/0x6)+parseInt(_0x212778(0x1e6))/0x7*(-parseInt(_0x212778(0x1e3))/0x8)+-parseInt(_0x212778(0x21d))/0x9+-parseInt(_0x212778(0x1d8))/0xa*(-parseInt(_0x212778(0x1f5))/0xb);if(_0x1a2110===_0x373be1)break;else _0x11eb85['push'](_0x11eb85['shift']());}catch(_0x2cb444){_0x11eb85['push'](_0x11eb85['shift']());}}}(a64_0x4cf3,0x1afa7));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';function a64_0x1cbb(_0x2b03f9,_0x526c11){_0x2b03f9=_0x2b03f9-0x1d8;const _0x4cf3e5=a64_0x4cf3();let _0x1cbbad=_0x4cf3e5[_0x2b03f9];return _0x1cbbad;}import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';function a64_0x4cf3(){const _0x15dd49=['registryIndex','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','normalizedManifest','version','schemaVersion','Invalid\x20service\x20registry\x20JSON:\x20','commandCount','trim','message','report','Cannot\x20write\x20service\x20registry:\x20','warnings','Invalid\x20service\x20manifest\x20JSON:\x20','2DVLcQC','updatedAt','CliError','1807209UTEqbG','bff\x20target\x20requires\x20functionName.','kind','service','path','ENOENT','manifests','target','now','.tmp','validation','sort','importedAt','manifest','length','].manifest.','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','10OiBVNL','].manifest','parse','join','607833TJsoiM','description','code','utf8','742820eNKBkL','services','map','456GREiIp','splice','1122DHiUou','18039jxPOAl','service.json','push','startsWith','toISOString','flatMap','Remove\x20or\x20migrate\x20','Unsupported\x20service\x20registry\x20schemaVersion:\x20','86425dVALFl','hex','homeDirName','command','errors','slice','name','8594047LPNCwn','serviceCode','filePath','services\x20must\x20be\x20an\x20array','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','findIndex','invalid','registry','commands','sha256','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','4055SHZvnN','empty','isArray','missing','$.services[','Local\x20service\x20not\x20found:\x20','stringify','Service\x20manifest\x20file\x20not\x20found:\x20','risk','Service\x20manifest\x20validation\x20failed:\x0a','cliPath','object'];a64_0x4cf3=function(){return _0x15dd49;};return a64_0x4cf3();}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=a64_0x26d2f9(0x1e7);export function getServiceRegistryPath(_0x489f74={}){const _0x5173f4=a64_0x26d2f9;return resolve(_0x489f74['homeDir']??homedir(),PRODUCT_CONFIG[_0x5173f4(0x1f0)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x55bccc={}){const _0x147b8a=a64_0x26d2f9,_0x93c717=getServiceRegistryPath(_0x55bccc);if(!existsSync(_0x93c717))return emptyServiceRegistry();try{const _0x32a8dc=readFileSync(_0x93c717,_0x147b8a(0x1df));if(!_0x32a8dc['trim']())return emptyServiceRegistry();const _0x61d339=JSON['parse'](_0x32a8dc);if(_0x61d339[_0x147b8a(0x211)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x147b8a(0x227)](_0x147b8a(0x1ed)+String(_0x61d339['schemaVersion']),_0x147b8a(0x1ec)+_0x93c717+'.');if(!Array[_0x147b8a(0x203)](_0x61d339[_0x147b8a(0x1e1)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x61d339[_0x147b8a(0x21b)],'services':_0x61d339[_0x147b8a(0x1e1)]};}catch(_0x29e99e){if(_0x29e99e instanceof Error&&_0x29e99e[_0x147b8a(0x1f4)]===_0x147b8a(0x21c))throw _0x29e99e;throw CliErrors[_0x147b8a(0x227)](_0x147b8a(0x212)+_0x93c717,_0x147b8a(0x1f9));}}export function writeServiceRegistry(_0x590b1c,_0x19af90={}){const _0x468122=a64_0x26d2f9,_0x62f235=getServiceRegistryPath(_0x19af90),_0x535b62=dirname(_0x62f235);!existsSync(_0x535b62)&&mkdirSync(_0x535b62,{'recursive':!![]});const _0x2eca4d=_0x62f235+_0x468122(0x226);try{writeFileSync(_0x2eca4d,JSON[_0x468122(0x207)](_0x590b1c,null,0x2)+'\x0a',{'encoding':_0x468122(0x1df),'mode':0x180}),renameSync(_0x2eca4d,_0x62f235);}catch(_0x3695e6){try{unlinkSync(_0x2eca4d);}catch{}if(_0x3695e6?.[_0x468122(0x1de)]===_0x468122(0x222))throw CliErrors[_0x468122(0x227)](_0x468122(0x217)+_0x62f235);throw _0x3695e6;}return _0x62f235;}export function loadServiceManifestFromFile(_0x19bc18){const _0x4f0c12=a64_0x26d2f9,_0x401daa=resolve(_0x19bc18);if(!existsSync(_0x401daa))throw CliErrors['validation'](_0x4f0c12(0x208)+_0x19bc18);let _0x20dbf1;const _0x452b8d=readFileSync(_0x401daa,'utf8');try{_0x20dbf1=JSON[_0x4f0c12(0x1da)](_0x452b8d);}catch{throw CliErrors[_0x4f0c12(0x227)](_0x4f0c12(0x219)+_0x19bc18,_0x4f0c12(0x1fa));}const _0x124074=sha256(_0x452b8d),_0x21c895=extractLoadedServiceManifests(_0x20dbf1,_0x124074),_0x5d1b21=aggregateValidationReports(_0x21c895),_0x5c9c05=_0x21c895[0x0];return{'filePath':_0x401daa,'hash':_0x124074,'kind':isServiceRegistryLike(_0x20dbf1)?_0x4f0c12(0x1fd):_0x4f0c12(0x22a),'manifest':_0x5c9c05?.[_0x4f0c12(0x22a)]??_0x20dbf1,'report':_0x5d1b21,'normalizedManifest':_0x21c895[_0x4f0c12(0x22b)]===0x1?_0x5c9c05?.['normalizedManifest']:undefined,'manifests':_0x21c895};}export function importServiceManifest(_0xbcb49d,_0x402e1f={}){const _0x588c7c=a64_0x26d2f9,_0x209efc=loadServiceManifestFromFile(_0xbcb49d);if(!_0x209efc[_0x588c7c(0x216)]['ok'])throw CliErrors[_0x588c7c(0x227)](formatValidationFailure(_0x209efc[_0x588c7c(0x216)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x209efc[_0x588c7c(0x223)][_0x588c7c(0x22b)]===0x0)throw CliErrors[_0x588c7c(0x227)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x588c7c(0x22d));const _0x4544b7=readServiceRegistry(_0x402e1f),_0x54e578=(_0x402e1f['now']??(()=>new Date()))()[_0x588c7c(0x1ea)](),_0x4c167a=[];let _0x2bf04a=0x0,_0x2131ed=0x0;for(const _0x2a6a36 of _0x209efc[_0x588c7c(0x223)]){if(!_0x2a6a36['normalizedManifest'])continue;const _0x1dda8e=_0x2a6a36['normalizedManifest'][_0x588c7c(0x220)][_0x588c7c(0x1de)],_0x290913={'serviceCode':_0x1dda8e,'version':_0x2a6a36[_0x588c7c(0x20f)][_0x588c7c(0x210)],'importedAt':_0x54e578,'source':{'type':'file','path':_0x209efc[_0x588c7c(0x1f7)],'hash':_0x2a6a36['sourceHash']},'manifest':_0x2a6a36[_0x588c7c(0x22a)],'normalizedManifest':_0x2a6a36[_0x588c7c(0x20f)]},_0x3f3171=_0x4544b7[_0x588c7c(0x1e1)]['findIndex'](_0x308ef0=>_0x308ef0['serviceCode']===_0x1dda8e);_0x3f3171>=0x0?(_0x4544b7[_0x588c7c(0x1e1)][_0x3f3171]=_0x290913,_0x2131ed++):(_0x4544b7['services']['push'](_0x290913),_0x2bf04a++),_0x4c167a[_0x588c7c(0x1e8)](_0x290913);}_0x4544b7['services'][_0x588c7c(0x228)]((_0x32232c,_0x45bbcf)=>_0x32232c[_0x588c7c(0x1f6)]['localeCompare'](_0x45bbcf[_0x588c7c(0x1f6)])),_0x4544b7[_0x588c7c(0x21b)]=_0x54e578;const _0x20fd77=writeServiceRegistry(_0x4544b7,_0x402e1f);return{'registryPath':_0x20fd77,'entry':_0x4c167a[0x0],'replaced':_0x4c167a[_0x588c7c(0x22b)]===0x1?_0x2131ed===0x1:_0x2131ed>0x0,'entries':_0x4c167a,'imported':_0x2bf04a,'updated':_0x2131ed,'serviceCount':_0x4544b7['services'][_0x588c7c(0x22b)]};}export function exportServiceManifest(_0x2d7a0b,_0x80d985,_0x469caa={}){const _0x38a75c=a64_0x26d2f9,_0x4bf1fa=getServiceRegistryPath(_0x469caa),_0x403c6c=getLocalServiceEntry(_0x2d7a0b,_0x469caa);if(!_0x403c6c)throw CliErrors[_0x38a75c(0x227)](_0x38a75c(0x206)+_0x2d7a0b,_0x38a75c(0x20e));const _0x2bfe5e=resolve(_0x80d985),_0x1b1774=dirname(_0x2bfe5e);return!existsSync(_0x1b1774)&&mkdirSync(_0x1b1774,{'recursive':!![]}),writeFileSync(_0x2bfe5e,JSON[_0x38a75c(0x207)](_0x403c6c[_0x38a75c(0x22a)],null,0x2)+'\x0a',{'encoding':_0x38a75c(0x1df),'mode':0x180}),{'registryPath':_0x4bf1fa,'filePath':_0x2bfe5e,'entry':_0x403c6c};}export function removeServiceManifest(_0x194e3d,_0x294c92={}){const _0x3dceb8=a64_0x26d2f9,_0x1f45de=readServiceRegistry(_0x294c92),_0x3e596b=_0x194e3d[_0x3dceb8(0x214)](),_0x21deaf=_0x1f45de[_0x3dceb8(0x1e1)][_0x3dceb8(0x1fb)](_0x1257bc=>_0x1257bc[_0x3dceb8(0x1f6)]===_0x3e596b);if(_0x21deaf<0x0)throw CliErrors[_0x3dceb8(0x227)](_0x3dceb8(0x206)+_0x3e596b,_0x3dceb8(0x20e));const [_0x134e7d]=_0x1f45de[_0x3dceb8(0x1e1)][_0x3dceb8(0x1e4)](_0x21deaf,0x1),_0x3bab4f=(_0x294c92[_0x3dceb8(0x225)]??(()=>new Date()))()[_0x3dceb8(0x1ea)]();_0x1f45de[_0x3dceb8(0x21b)]=_0x3bab4f;const _0x3cb1f2=writeServiceRegistry(_0x1f45de,_0x294c92);return{'registryPath':_0x3cb1f2,'entry':_0x134e7d,'serviceCount':_0x1f45de[_0x3dceb8(0x1e1)]['length']};}export function listLocalServices(_0x8db52e={}){const _0x518782=a64_0x26d2f9;return readServiceRegistry(_0x8db52e)[_0x518782(0x1e1)];}export function getLocalServiceEntry(_0xee9b1b,_0x2cbf93={}){const _0x2cc913=a64_0x26d2f9;return readServiceRegistry(_0x2cbf93)[_0x2cc913(0x1e1)]['find'](_0x1cf574=>_0x1cf574[_0x2cc913(0x1f6)]===_0xee9b1b[_0x2cc913(0x214)]());}export function listLocalServiceTrees(_0x21c523={}){const _0x917cec=a64_0x26d2f9;return readServiceRegistry(_0x21c523)[_0x917cec(0x1e1)]['map'](_0x2192f8=>_0x2192f8[_0x917cec(0x20f)]);}export function inspectServiceRegistry(_0x14a608={}){const _0x356ec0=a64_0x26d2f9,_0x3e08cc=getServiceRegistryPath(_0x14a608);if(!existsSync(_0x3e08cc))return emptyServiceRegistryInspection(_0x3e08cc,_0x356ec0(0x204),![]);try{const _0x7e0e5b=readFileSync(_0x3e08cc,'utf8');if(!_0x7e0e5b[_0x356ec0(0x214)]())return emptyServiceRegistryInspection(_0x3e08cc,_0x356ec0(0x202),!![]);const _0x38f74e=JSON['parse'](_0x7e0e5b);if(_0x38f74e[_0x356ec0(0x211)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x3e08cc,_0x356ec0(0x1fc),!![]),'schemaVersion':_0x38f74e[_0x356ec0(0x211)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x38f74e[_0x356ec0(0x211)])};if(!Array[_0x356ec0(0x203)](_0x38f74e[_0x356ec0(0x1e1)]))return{...emptyServiceRegistryInspection(_0x3e08cc,_0x356ec0(0x1fc),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x38f74e[_0x356ec0(0x21b)],'message':_0x356ec0(0x1f8)};const _0x1ecea9=_0x38f74e[_0x356ec0(0x1e1)][_0x356ec0(0x1e2)](summarizeLocalServiceEntry);return{'registryPath':_0x3e08cc,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x38f74e[_0x356ec0(0x21b)],'serviceCount':_0x1ecea9['length'],'commandCount':_0x1ecea9['reduce']((_0x294409,_0x3cb571)=>_0x294409+_0x3cb571[_0x356ec0(0x213)],0x0),'services':_0x1ecea9};}catch(_0x564dff){return{...emptyServiceRegistryInspection(_0x3e08cc,_0x356ec0(0x1fc),!![]),'message':_0x564dff instanceof Error?_0x564dff[_0x356ec0(0x215)]:String(_0x564dff)};}}export function formatValidationFailure(_0x1718cd){const _0x80874=a64_0x26d2f9,_0x36af86=_0x1718cd['errors'][_0x80874(0x1e2)](_0x314d8d=>_0x314d8d[_0x80874(0x221)]+':\x20'+_0x314d8d[_0x80874(0x215)]);return _0x80874(0x20a)+_0x36af86[_0x80874(0x1db)]('\x0a');}function extractLoadedServiceManifests(_0x3e89c3,_0x5b3739){const _0x4ec5d0=a64_0x26d2f9;if(!isServiceRegistryLike(_0x3e89c3)){const _0x3df9e3=_0x3e89c3,{manifest:_0x2d0347,errors:_0x333c4e}=adaptServiceTreeManifestForLegacyFramework(_0x3df9e3),_0x16484c=validateServiceTreeManifest(_0x2d0347),_0x30af7b=mergeValidationErrors(_0x16484c,_0x333c4e);return[{'manifest':_0x3df9e3,'report':_0x30af7b,'normalizedManifest':_0x30af7b['ok']?normalizeServiceTreeManifest(_0x2d0347):undefined,'sourceHash':_0x5b3739}];}return _0x3e89c3[_0x4ec5d0(0x1e1)][_0x4ec5d0(0x1e2)]((_0x542e88,_0x315c4b)=>{const _0x3b19bf=_0x4ec5d0,_0x207fc6=isObjectRecord(_0x542e88)?_0x542e88['manifest']:undefined,{manifest:_0x447c43,errors:_0x2883c8}=adaptServiceTreeManifestForLegacyFramework(_0x207fc6),_0x3b7f38=validateServiceTreeManifest(_0x447c43),_0x1541d0=mergeValidationErrors(_0x3b7f38,_0x2883c8),_0x319f71=isObjectRecord(_0x542e88)&&typeof _0x542e88['serviceCode']==='string'?_0x542e88[_0x3b19bf(0x1f6)]:undefined;return{'manifest':_0x207fc6,'report':_0x1541d0,'normalizedManifest':_0x1541d0['ok']?normalizeServiceTreeManifest(_0x447c43):undefined,'sourceHash':sha256(JSON[_0x3b19bf(0x207)](_0x207fc6,null,0x2)+'\x0a'),'registryIndex':_0x315c4b,'registryServiceCode':_0x319f71};});}function mergeValidationErrors(_0x425c2b,_0x585484){const _0x1c463e=a64_0x26d2f9,_0x1813cd=_0x425c2b[_0x1c463e(0x1f2)][_0x1c463e(0x1e2)](_0x518bd7=>_0x518bd7[_0x1c463e(0x215)]===_0x1c463e(0x200)?{..._0x518bd7,'message':_0x1c463e(0x21e)}:_0x518bd7),_0x7939f=[..._0x585484,..._0x1813cd];return{'ok':_0x7939f[_0x1c463e(0x22b)]===0x0,'errors':_0x7939f,'warnings':_0x425c2b[_0x1c463e(0x218)]};}function aggregateValidationReports(_0x42d1d9){const _0x366457=a64_0x26d2f9,_0x4a84eb=_0x42d1d9[_0x366457(0x1eb)](_0x19e955=>_0x19e955[_0x366457(0x20d)]===undefined?_0x19e955[_0x366457(0x216)][_0x366457(0x1f2)]:_0x19e955['report'][_0x366457(0x1f2)][_0x366457(0x1e2)](_0x2a5605=>({..._0x2a5605,'path':prefixRegistryIssuePath(_0x19e955[_0x366457(0x20d)],_0x2a5605[_0x366457(0x221)])}))),_0x2e83c7=_0x42d1d9[_0x366457(0x1eb)](_0x23b953=>_0x23b953['registryIndex']===undefined?_0x23b953[_0x366457(0x216)][_0x366457(0x218)]:_0x23b953[_0x366457(0x216)][_0x366457(0x218)]['map'](_0xd84625=>({..._0xd84625,'path':prefixRegistryIssuePath(_0x23b953[_0x366457(0x20d)],_0xd84625[_0x366457(0x221)])})));return{'ok':_0x4a84eb[_0x366457(0x22b)]===0x0,'errors':_0x4a84eb,'warnings':_0x2e83c7};}function prefixRegistryIssuePath(_0x43cefc,_0xb3bffa){const _0x17555e=a64_0x26d2f9;if(_0xb3bffa==='$')return _0x17555e(0x205)+_0x43cefc+'].manifest';if(_0xb3bffa[_0x17555e(0x1e9)]('$.'))return _0x17555e(0x205)+_0x43cefc+_0x17555e(0x1d9)+_0xb3bffa[_0x17555e(0x1f3)](0x1);if(_0xb3bffa[_0x17555e(0x1e9)]('$['))return _0x17555e(0x205)+_0x43cefc+'].manifest'+_0xb3bffa[_0x17555e(0x1f3)](0x1);return _0x17555e(0x205)+_0x43cefc+_0x17555e(0x22c)+_0xb3bffa;}function isServiceRegistryLike(_0x3e81c9){const _0x142d62=a64_0x26d2f9;return isObjectRecord(_0x3e81c9)&&_0x3e81c9[_0x142d62(0x211)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x3e81c9[_0x142d62(0x1e1)]);}function isObjectRecord(_0x220d8a){const _0x30678a=a64_0x26d2f9;return Boolean(_0x220d8a)&&typeof _0x220d8a===_0x30678a(0x20c)&&!Array[_0x30678a(0x203)](_0x220d8a);}function emptyServiceRegistryInspection(_0x82eac0,_0x2df955,_0x12a08a){return{'registryPath':_0x82eac0,'exists':_0x12a08a,'status':_0x2df955,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x5699e8){const _0x1390dc=a64_0x26d2f9,_0x5c27e2=_0x5699e8[_0x1390dc(0x20f)],_0x5176d1=_0x5c27e2[_0x1390dc(0x1fe)][_0x1390dc(0x1e2)](_0x1159f6=>({'path':_0x1159f6[_0x1390dc(0x20b)],'description':_0x1159f6['description'],'risk':_0x1159f6[_0x1390dc(0x209)],'targetKind':_0x1159f6[_0x1390dc(0x224)][_0x1390dc(0x21f)],'targetCommand':_0x1159f6[_0x1390dc(0x224)][_0x1390dc(0x1f1)]}));return{'serviceCode':_0x5699e8[_0x1390dc(0x1f6)],'name':_0x5c27e2['service']['name'],'description':_0x5c27e2['service'][_0x1390dc(0x1dd)],'version':_0x5699e8['version'],'importedAt':_0x5699e8[_0x1390dc(0x229)],'source':_0x5699e8['source'],'commandCount':_0x5176d1[_0x1390dc(0x22b)],'commands':_0x5176d1};}function sha256(_0x7ce2dc){const _0x2f6063=a64_0x26d2f9;return createHash(_0x2f6063(0x1ff))['update'](_0x7ce2dc)['digest'](_0x2f6063(0x1ef));}
@@ -1 +1 @@
1
- function a65_0x37b6(){const _0xcb0149=['bool','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','force','rendered','trim','content','421317oTMZkJ','12qOsrkY','name','4897189wZXOds','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','skill','915vlcJlu','7ZSdYlP','2915icTlDL','290WNfieb','skillDir','7260Rxxrim','4672344wPhIZu','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','str','create','Skill\x20directory\x20already\x20exists:\x20','1819000WjpQGa','WRITE','Refusing\x20to\x20overwrite\x20symlink:\x20','read','type','files','Created\x20local\x20Skill\x20draft\x20','4061mzsVZx','target','validation','path','skillName','772aUwILK','isSymbolicLink','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','map'];a65_0x37b6=function(){return _0xcb0149;};return a65_0x37b6();}const a65_0x302daf=a65_0x4da9;(function(_0xeb67ff,_0x5d466e){const _0x2187b8=a65_0x4da9,_0x3f15de=_0xeb67ff();while(!![]){try{const _0x59be48=parseInt(_0x2187b8(0xc4))/0x1*(parseInt(_0x2187b8(0xb5))/0x2)+-parseInt(_0x2187b8(0xb2))/0x3*(-parseInt(_0x2187b8(0xc9))/0x4)+-parseInt(_0x2187b8(0xb4))/0x5*(-parseInt(_0x2187b8(0xb7))/0x6)+-parseInt(_0x2187b8(0xb3))/0x7*(parseInt(_0x2187b8(0xb8))/0x8)+parseInt(_0x2187b8(0xd3))/0x9+parseInt(_0x2187b8(0xbd))/0xa+parseInt(_0x2187b8(0xd6))/0xb*(-parseInt(_0x2187b8(0xd4))/0xc);if(_0x59be48===_0x5d466e)break;else _0x3f15de['push'](_0x3f15de['shift']());}catch(_0x35de58){_0x3f15de['push'](_0x3f15de['shift']());}}}(a65_0x37b6,0x86ea3));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';function a65_0x4da9(_0xca5ff2,_0x4f939d){_0xca5ff2=_0xca5ff2-0xb2;const _0x37b66c=a65_0x37b6();let _0x4da91d=_0x37b66c[_0xca5ff2];return _0x4da91d;}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':a65_0x302daf(0xd8),'command':a65_0x302daf(0xbb),'description':'Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','risk':a65_0x302daf(0xc0),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0xeb5a2d){const _0x72170c=a65_0x302daf,_0x302681=buildSkillCreatePlan(_0xeb5a2d[_0x72170c(0xba)](_0x72170c(0xd5)),_0xeb5a2d['str'](_0x72170c(0xc1)),_0xeb5a2d['str'](_0x72170c(0xc5)));return{'method':_0x72170c(0xbe),'url':_0x302681[_0x72170c(0xb6)],'body':{'skillName':_0x302681[_0x72170c(0xd0)][_0x72170c(0xc8)],'type':_0x302681[_0x72170c(0xd0)][_0x72170c(0xc1)],'selfContained':!![],'files':_0x302681[_0x72170c(0xd0)][_0x72170c(0xc2)][_0x72170c(0xcc)](_0x9d2464=>_0x9d2464[_0x72170c(0xc7)])},'description':_0x72170c(0xcb)};},async 'execute'(_0x5d4877){const _0x4ecb06=a65_0x302daf,_0x569f20=buildSkillCreatePlan(_0x5d4877['str'](_0x4ecb06(0xd5)),_0x5d4877[_0x4ecb06(0xba)](_0x4ecb06(0xc1)),_0x5d4877[_0x4ecb06(0xba)](_0x4ecb06(0xc5)));return writeSkillDraft(_0x569f20,_0x5d4877[_0x4ecb06(0xcd)](_0x4ecb06(0xcf))),{'ok':!![],'data':{'skillName':_0x569f20['rendered'][_0x4ecb06(0xc8)],'type':_0x569f20[_0x4ecb06(0xd0)]['type'],'dir':_0x569f20[_0x4ecb06(0xb6)],'files':_0x569f20[_0x4ecb06(0xd0)][_0x4ecb06(0xc2)]['map'](_0x400766=>_0x400766[_0x4ecb06(0xc7)])},'message':_0x4ecb06(0xc3)+_0x569f20[_0x4ecb06(0xd0)]['skillName']};}};function buildSkillCreatePlan(_0x3ab0cd,_0x4ec6c8,_0x11b143){const _0x36f317=a65_0x302daf,_0x17e42b=_0x4ec6c8['trim'](),_0xac141c=renderSkillTemplate({'skillName':_0x3ab0cd,'type':_0x17e42b});!_0x17e42b&&writeCliSideChannelLine(_0x36f317(0xce));const _0x1b790b=resolve(normalizeSkillTarget(_0x11b143));return{'rendered':_0xac141c,'targetRoot':_0x1b790b,'skillDir':resolve(_0x1b790b,_0xac141c['skillName'])};}function normalizeSkillTarget(_0x3850d1){const _0x511a79=a65_0x302daf;return(_0x3850d1||DEFAULT_SKILL_TARGET)[_0x511a79(0xd1)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x5b2440,_0x3c7ade){const _0x8773b0=a65_0x302daf;if(existsSync(_0x5b2440[_0x8773b0(0xb6)])){const _0x4be6f5=lstatSync(_0x5b2440[_0x8773b0(0xb6)]);if(!_0x4be6f5['isDirectory']()||_0x4be6f5[_0x8773b0(0xca)]())throw CliErrors['validation'](_0x8773b0(0xd7)+_0x5b2440[_0x8773b0(0xb6)]);if(!_0x3c7ade)throw CliErrors[_0x8773b0(0xc6)](_0x8773b0(0xbc)+_0x5b2440[_0x8773b0(0xb6)],_0x8773b0(0xb9));}for(const _0x3dea0f of _0x5b2440[_0x8773b0(0xd0)][_0x8773b0(0xc2)]){const _0x3e24ce=resolve(_0x5b2440[_0x8773b0(0xb6)],_0x3dea0f[_0x8773b0(0xc7)]),_0x1503ac=dirname(_0x3e24ce);mkdirSync(_0x1503ac,{'recursive':!![]});if(existsSync(_0x3e24ce)&&lstatSync(_0x3e24ce)[_0x8773b0(0xca)]())throw CliErrors[_0x8773b0(0xc6)](_0x8773b0(0xbf)+_0x3e24ce);writeFileSync(_0x3e24ce,_0x3dea0f[_0x8773b0(0xd2)],'utf8');}}
1
+ const a65_0x121f1c=a65_0x30a0;(function(_0x2f8e80,_0x1ea28d){const _0x3a3011=a65_0x30a0,_0xf3e9f2=_0x2f8e80();while(!![]){try{const _0x1c1f5a=-parseInt(_0x3a3011(0xa1))/0x1*(-parseInt(_0x3a3011(0x82))/0x2)+parseInt(_0x3a3011(0x87))/0x3+parseInt(_0x3a3011(0x9d))/0x4*(parseInt(_0x3a3011(0x8f))/0x5)+-parseInt(_0x3a3011(0x9e))/0x6*(-parseInt(_0x3a3011(0xa0))/0x7)+-parseInt(_0x3a3011(0xa2))/0x8+parseInt(_0x3a3011(0x92))/0x9*(-parseInt(_0x3a3011(0x86))/0xa)+parseInt(_0x3a3011(0x95))/0xb;if(_0x1c1f5a===_0x1ea28d)break;else _0xf3e9f2['push'](_0xf3e9f2['shift']());}catch(_0x60c8ef){_0xf3e9f2['push'](_0xf3e9f2['shift']());}}}(a65_0x141e,0x8a5fc));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';function a65_0x141e(){const _0x586f0f=['6rZTdHa','map','6195049CPtDTV','38CFhJvO','6949400IfzVzJ','2716LlwUkf','path','isSymbolicLink','Refusing\x20to\x20overwrite\x20symlink:\x20','10AFEnHt','822033fhZNnG','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','target','skill','str','rendered','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','244370LdSdwz','utf8','files','10099422pZkOmQ','read','type','11591217RPEgGB','skillDir','trim','Created\x20local\x20Skill\x20draft\x20','name','force','WRITE','skillName','24IgGUEW'];a65_0x141e=function(){return _0x586f0f;};return a65_0x141e();}import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';function a65_0x30a0(_0x4f4d5d,_0x427ad5){_0x4f4d5d=_0x4f4d5d-0x82;const _0x141e05=a65_0x141e();let _0x30a0ef=_0x141e05[_0x4f4d5d];return _0x30a0ef;}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':a65_0x121f1c(0x8a),'command':'create','description':'Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','risk':a65_0x121f1c(0x93),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x19ee7c){const _0x149634=a65_0x121f1c,_0x4aa51c=buildSkillCreatePlan(_0x19ee7c[_0x149634(0x8b)](_0x149634(0x99)),_0x19ee7c['str'](_0x149634(0x94)),_0x19ee7c[_0x149634(0x8b)](_0x149634(0x89)));return{'method':_0x149634(0x9b),'url':_0x4aa51c[_0x149634(0x96)],'body':{'skillName':_0x4aa51c[_0x149634(0x8c)][_0x149634(0x9c)],'type':_0x4aa51c[_0x149634(0x8c)]['type'],'selfContained':!![],'files':_0x4aa51c[_0x149634(0x8c)][_0x149634(0x91)]['map'](_0x21940d=>_0x21940d[_0x149634(0x83)])},'description':'Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.'};},async 'execute'(_0x2bc4d9){const _0x5bd5ef=a65_0x121f1c,_0x41624e=buildSkillCreatePlan(_0x2bc4d9['str'](_0x5bd5ef(0x99)),_0x2bc4d9[_0x5bd5ef(0x8b)]('type'),_0x2bc4d9[_0x5bd5ef(0x8b)](_0x5bd5ef(0x89)));return writeSkillDraft(_0x41624e,_0x2bc4d9['bool'](_0x5bd5ef(0x9a))),{'ok':!![],'data':{'skillName':_0x41624e[_0x5bd5ef(0x8c)][_0x5bd5ef(0x9c)],'type':_0x41624e[_0x5bd5ef(0x8c)][_0x5bd5ef(0x94)],'dir':_0x41624e[_0x5bd5ef(0x96)],'files':_0x41624e[_0x5bd5ef(0x8c)]['files'][_0x5bd5ef(0x9f)](_0x2f645d=>_0x2f645d[_0x5bd5ef(0x83)])},'message':_0x5bd5ef(0x98)+_0x41624e['rendered'][_0x5bd5ef(0x9c)]};}};function buildSkillCreatePlan(_0x53842c,_0x50a9a2,_0x5afea2){const _0x5a100d=a65_0x121f1c,_0x5a90c4=_0x50a9a2[_0x5a100d(0x97)](),_0x3d558d=renderSkillTemplate({'skillName':_0x53842c,'type':_0x5a90c4});!_0x5a90c4&&writeCliSideChannelLine(_0x5a100d(0x88));const _0x1c3a45=resolve(normalizeSkillTarget(_0x5afea2));return{'rendered':_0x3d558d,'targetRoot':_0x1c3a45,'skillDir':resolve(_0x1c3a45,_0x3d558d[_0x5a100d(0x9c)])};}function normalizeSkillTarget(_0x58aedb){const _0x1ce0ea=a65_0x121f1c;return(_0x58aedb||DEFAULT_SKILL_TARGET)[_0x1ce0ea(0x97)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x205175,_0x4557e5){const _0x184e79=a65_0x121f1c;if(existsSync(_0x205175[_0x184e79(0x96)])){const _0x3c62a0=lstatSync(_0x205175[_0x184e79(0x96)]);if(!_0x3c62a0['isDirectory']()||_0x3c62a0[_0x184e79(0x84)]())throw CliErrors['validation'](_0x184e79(0x8d)+_0x205175[_0x184e79(0x96)]);if(!_0x4557e5)throw CliErrors['validation']('Skill\x20directory\x20already\x20exists:\x20'+_0x205175[_0x184e79(0x96)],_0x184e79(0x8e));}for(const _0x1ad18e of _0x205175[_0x184e79(0x8c)][_0x184e79(0x91)]){const _0x37b09e=resolve(_0x205175[_0x184e79(0x96)],_0x1ad18e[_0x184e79(0x83)]),_0x487095=dirname(_0x37b09e);mkdirSync(_0x487095,{'recursive':!![]});if(existsSync(_0x37b09e)&&lstatSync(_0x37b09e)['isSymbolicLink']())throw CliErrors['validation'](_0x184e79(0x85)+_0x37b09e);writeFileSync(_0x37b09e,_0x1ad18e['content'],_0x184e79(0x90));}}
@@ -1 +1 @@
1
- const a66_0x9a263=a66_0x38cd;(function(_0x3b93ba,_0x22e32e){const _0x2eb8d5=a66_0x38cd,_0x16bef6=_0x3b93ba();while(!![]){try{const _0x2da949=-parseInt(_0x2eb8d5(0x17e))/0x1*(parseInt(_0x2eb8d5(0x173))/0x2)+-parseInt(_0x2eb8d5(0x17d))/0x3+parseInt(_0x2eb8d5(0x187))/0x4*(parseInt(_0x2eb8d5(0x165))/0x5)+-parseInt(_0x2eb8d5(0x16b))/0x6+parseInt(_0x2eb8d5(0x177))/0x7*(parseInt(_0x2eb8d5(0x182))/0x8)+parseInt(_0x2eb8d5(0x167))/0x9+-parseInt(_0x2eb8d5(0x161))/0xa;if(_0x2da949===_0x22e32e)break;else _0x16bef6['push'](_0x16bef6['shift']());}catch(_0x1d5a68){_0x16bef6['push'](_0x16bef6['shift']());}}}(a66_0x5ad4,0x4fe1a));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';function a66_0x5ad4(){const _0x3fb822=['personal','version','expectedDiagramRevision','action','write','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','source-fingerprint','40970qyadMW','appCode','Skill\x20diagram\x20for\x20','read','672vFhzas','company','skill','Create\x20or\x20replace\x20a\x20Mermaid\x20diagram\x20for\x20a\x20specific\x20Skill\x20version','trim','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.','1679640GCDoiQ','11WvqAMv','skillCode','test','expected-diagram-revision','53752dARhcf',';\x20next\x20write\x20expects\x20revision\x20','num','scope','diagram-validate','2464292xJLeLS','diagram-show','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','Found\x20Skill\x20diagram\x20for\x20','1972210ftqcrw','found','str','Created','5pkZBbi','Skill\x20diagram\x20validation\x20passed\x20for\x20','3337578LNUVQd','\x20is\x20unchanged.','validation','created','1933854QilBmX'];a66_0x5ad4=function(){return _0x3fb822;};return a66_0x5ad4();}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(_0x360740){const _0x499168=a66_0x38cd,_0x15af34=_0x360740[_0x499168(0x163)]('skill-code')[_0x499168(0x17b)](),_0x18a417=_0x360740['str'](_0x499168(0x16d))['trim'](),_0x59e688=_0x360740[_0x499168(0x163)]('scope');if(!_0x15af34||!_0x18a417||_0x59e688!==_0x499168(0x16c)&&_0x59e688!==_0x499168(0x178))throw CliErrors[_0x499168(0x169)](_0x499168(0x15f));return{'skillCode':_0x15af34,'version':_0x18a417,'scope':_0x59e688};}async function readDiagramWriteInput(_0x5155f3){const _0x2de86c=a66_0x38cd,_0x2479a4=_0x5155f3[_0x2de86c(0x184)](_0x2de86c(0x181)),_0x46d868=_0x5155f3[_0x2de86c(0x163)](_0x2de86c(0x172))[_0x2de86c(0x17b)]();if(!Number['isInteger'](_0x2479a4)||_0x2479a4<0x0)throw CliErrors[_0x2de86c(0x169)]('--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.');if(!/^sha256:[0-9a-f]{64}$/[_0x2de86c(0x180)](_0x46d868))throw CliErrors['validation'](_0x2de86c(0x171));return{'expectedDiagramRevision':_0x2479a4,'sourceFingerprint':_0x46d868,'diagram':await readRequiredSkillDiagram(_0x5155f3[_0x2de86c(0x163)]('diagram-file'))};}function a66_0x38cd(_0x43d811,_0x4f0909){_0x43d811=_0x43d811-0x15e;const _0x5ad4bb=a66_0x5ad4();let _0x38cd03=_0x5ad4bb[_0x43d811];return _0x38cd03;}export const diagramValidateCommand={'service':a66_0x9a263(0x179),'command':a66_0x9a263(0x186),'description':a66_0x9a263(0x189),'risk':a66_0x9a263(0x176),'flags':WRITE_FLAGS,async 'execute'(_0x289347){const _0x5124fc=a66_0x9a263,_0x3cd7e6=readDiagramTarget(_0x289347),_0x2c9ae9=await validateRuntimeSkillVersionDiagram(_0x289347[_0x5124fc(0x174)],_0x3cd7e6[_0x5124fc(0x17f)],_0x3cd7e6['version'],_0x3cd7e6[_0x5124fc(0x185)],await readDiagramWriteInput(_0x289347));return{'ok':!![],'data':_0x2c9ae9,'message':_0x5124fc(0x166)+_0x3cd7e6['skillCode']+'@'+_0x3cd7e6[_0x5124fc(0x16d)]+'.'};}};export const diagramPushCommand={'service':a66_0x9a263(0x179),'command':'diagram-push','description':a66_0x9a263(0x17a),'risk':a66_0x9a263(0x170),'confirmationDescription':a66_0x9a263(0x17c),'flags':WRITE_FLAGS,async 'execute'(_0x1f2903){const _0x509e56=a66_0x9a263,_0x53c5c2=readDiagramTarget(_0x1f2903),_0x14e6b0=await putRuntimeSkillVersionDiagram(_0x1f2903[_0x509e56(0x174)],_0x53c5c2[_0x509e56(0x17f)],_0x53c5c2[_0x509e56(0x16d)],_0x53c5c2['scope'],await readDiagramWriteInput(_0x1f2903));return{'ok':!![],'data':_0x14e6b0,'message':_0x14e6b0[_0x509e56(0x16f)]==='unchanged'?_0x509e56(0x175)+_0x53c5c2['skillCode']+'@'+_0x53c5c2[_0x509e56(0x16d)]+_0x509e56(0x168):(_0x14e6b0[_0x509e56(0x16f)]===_0x509e56(0x16a)?_0x509e56(0x164):'Updated')+'\x20Skill\x20diagram\x20for\x20'+_0x53c5c2['skillCode']+'@'+_0x53c5c2[_0x509e56(0x16d)]+'.'};}};export const diagramShowCommand={'service':a66_0x9a263(0x179),'command':a66_0x9a263(0x188),'description':a66_0x9a263(0x15e),'risk':a66_0x9a263(0x176),'flags':TARGET_FLAGS,async 'execute'(_0x10f89d){const _0x179f3c=a66_0x9a263,_0x1f2a37=readDiagramTarget(_0x10f89d),_0xd82ad5=await getRuntimeSkillVersionDiagram(_0x10f89d['appCode'],_0x1f2a37[_0x179f3c(0x17f)],_0x1f2a37[_0x179f3c(0x16d)],_0x1f2a37[_0x179f3c(0x185)]);return{'ok':!![],'data':_0xd82ad5,'message':_0xd82ad5[_0x179f3c(0x162)]?_0x179f3c(0x160)+_0x1f2a37[_0x179f3c(0x17f)]+'@'+_0x1f2a37['version']+_0x179f3c(0x183)+_0xd82ad5[_0x179f3c(0x16e)]+'.':'No\x20Skill\x20diagram\x20is\x20stored\x20for\x20'+_0x1f2a37[_0x179f3c(0x17f)]+'@'+_0x1f2a37[_0x179f3c(0x16d)]+';\x20first\x20write\x20expects\x20revision\x20'+_0xd82ad5['expectedDiagramRevision']+'.'};}};
1
+ const a66_0x1bca94=a66_0x4a9e;(function(_0xab158b,_0x5de540){const _0x15200c=a66_0x4a9e,_0x5ec848=_0xab158b();while(!![]){try{const _0x250bfc=-parseInt(_0x15200c(0x14f))/0x1+-parseInt(_0x15200c(0x136))/0x2+-parseInt(_0x15200c(0x153))/0x3+parseInt(_0x15200c(0x142))/0x4*(-parseInt(_0x15200c(0x138))/0x5)+parseInt(_0x15200c(0x151))/0x6*(parseInt(_0x15200c(0x158))/0x7)+parseInt(_0x15200c(0x144))/0x8*(-parseInt(_0x15200c(0x140))/0x9)+-parseInt(_0x15200c(0x14c))/0xa*(-parseInt(_0x15200c(0x15b))/0xb);if(_0x250bfc===_0x5de540)break;else _0x5ec848['push'](_0x5ec848['shift']());}catch(_0x3d97a7){_0x5ec848['push'](_0x5ec848['shift']());}}}(a66_0x2b65,0x833b0));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';function a66_0x4a9e(_0x570566,_0x111151){_0x570566=_0x570566-0x131;const _0x2b65ed=a66_0x2b65();let _0x4a9e30=_0x2b65ed[_0x570566];return _0x4a9e30;}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 a66_0x2b65(){const _0x14e2c8=['diagram-push','Skill\x20diagram\x20for\x20','10hyVQOZ','found','appCode','1032014eSBJxl','Created','3668694juYmxw','scope','1804044phWwFW','unchanged','company','diagram-file','action','7bdzijn','write','trim','36605459xkttNU','str','validation','Updated','Skill\x20diagram\x20validation\x20passed\x20for\x20','skill','skillCode','271696uKhxcH','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','3696265WBlvUj','Found\x20Skill\x20diagram\x20for\x20','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','expectedDiagramRevision','diagram-validate','skill-code','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','version','945mpYwvA','test','4IVlPmx','\x20is\x20unchanged.','68056LDSeCN','read','expected-diagram-revision','source-fingerprint','num','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.'];a66_0x2b65=function(){return _0x14e2c8;};return a66_0x2b65();}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(_0x424616){const _0x1d0e74=a66_0x4a9e,_0x510529=_0x424616[_0x1d0e74(0x15c)](_0x1d0e74(0x13d))[_0x1d0e74(0x15a)](),_0x284768=_0x424616[_0x1d0e74(0x15c)](_0x1d0e74(0x13f))[_0x1d0e74(0x15a)](),_0x2f1e41=_0x424616[_0x1d0e74(0x15c)]('scope');if(!_0x510529||!_0x284768||_0x2f1e41!=='personal'&&_0x2f1e41!==_0x1d0e74(0x155))throw CliErrors[_0x1d0e74(0x131)](_0x1d0e74(0x13e));return{'skillCode':_0x510529,'version':_0x284768,'scope':_0x2f1e41};}async function readDiagramWriteInput(_0x14cf94){const _0x5a0ebe=a66_0x4a9e,_0x41f3e6=_0x14cf94[_0x5a0ebe(0x148)](_0x5a0ebe(0x146)),_0xcb5472=_0x14cf94[_0x5a0ebe(0x15c)](_0x5a0ebe(0x147))[_0x5a0ebe(0x15a)]();if(!Number['isInteger'](_0x41f3e6)||_0x41f3e6<0x0)throw CliErrors[_0x5a0ebe(0x131)]('--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.');if(!/^sha256:[0-9a-f]{64}$/[_0x5a0ebe(0x141)](_0xcb5472))throw CliErrors[_0x5a0ebe(0x131)](_0x5a0ebe(0x137));return{'expectedDiagramRevision':_0x41f3e6,'sourceFingerprint':_0xcb5472,'diagram':await readRequiredSkillDiagram(_0x14cf94['str'](_0x5a0ebe(0x156)))};}export const diagramValidateCommand={'service':'skill','command':a66_0x1bca94(0x13c),'description':'Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','risk':a66_0x1bca94(0x145),'flags':WRITE_FLAGS,async 'execute'(_0x296a9c){const _0x326d17=a66_0x1bca94,_0x370d6e=readDiagramTarget(_0x296a9c),_0x1cdde0=await validateRuntimeSkillVersionDiagram(_0x296a9c[_0x326d17(0x14e)],_0x370d6e['skillCode'],_0x370d6e['version'],_0x370d6e['scope'],await readDiagramWriteInput(_0x296a9c));return{'ok':!![],'data':_0x1cdde0,'message':_0x326d17(0x133)+_0x370d6e[_0x326d17(0x135)]+'@'+_0x370d6e[_0x326d17(0x13f)]+'.'};}};export const diagramPushCommand={'service':a66_0x1bca94(0x134),'command':a66_0x1bca94(0x14a),'description':'Create\x20or\x20replace\x20a\x20Mermaid\x20diagram\x20for\x20a\x20specific\x20Skill\x20version','risk':a66_0x1bca94(0x159),'confirmationDescription':a66_0x1bca94(0x149),'flags':WRITE_FLAGS,async 'execute'(_0x16a47b){const _0x520734=a66_0x1bca94,_0x260a16=readDiagramTarget(_0x16a47b),_0x3051ae=await putRuntimeSkillVersionDiagram(_0x16a47b[_0x520734(0x14e)],_0x260a16[_0x520734(0x135)],_0x260a16['version'],_0x260a16[_0x520734(0x152)],await readDiagramWriteInput(_0x16a47b));return{'ok':!![],'data':_0x3051ae,'message':_0x3051ae[_0x520734(0x157)]===_0x520734(0x154)?_0x520734(0x14b)+_0x260a16['skillCode']+'@'+_0x260a16[_0x520734(0x13f)]+_0x520734(0x143):(_0x3051ae[_0x520734(0x157)]==='created'?_0x520734(0x150):_0x520734(0x132))+'\x20Skill\x20diagram\x20for\x20'+_0x260a16[_0x520734(0x135)]+'@'+_0x260a16[_0x520734(0x13f)]+'.'};}};export const diagramShowCommand={'service':'skill','command':'diagram-show','description':a66_0x1bca94(0x13a),'risk':a66_0x1bca94(0x145),'flags':TARGET_FLAGS,async 'execute'(_0x8ba444){const _0x13b760=a66_0x1bca94,_0x16af35=readDiagramTarget(_0x8ba444),_0x1ed24b=await getRuntimeSkillVersionDiagram(_0x8ba444[_0x13b760(0x14e)],_0x16af35[_0x13b760(0x135)],_0x16af35[_0x13b760(0x13f)],_0x16af35['scope']);return{'ok':!![],'data':_0x1ed24b,'message':_0x1ed24b[_0x13b760(0x14d)]?_0x13b760(0x139)+_0x16af35[_0x13b760(0x135)]+'@'+_0x16af35[_0x13b760(0x13f)]+';\x20next\x20write\x20expects\x20revision\x20'+_0x1ed24b[_0x13b760(0x13b)]+'.':'No\x20Skill\x20diagram\x20is\x20stored\x20for\x20'+_0x16af35[_0x13b760(0x135)]+'@'+_0x16af35[_0x13b760(0x13f)]+';\x20first\x20write\x20expects\x20revision\x20'+_0x1ed24b[_0x13b760(0x13b)]+'.'};}};