@lovrabet/lovrabet-cli 2.3.5-beta.1 → 2.3.5-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 (177) hide show
  1. package/lib/cli.js +1 -1
  2. package/lib/commands/api-doc/index.js +1 -1
  3. package/lib/commands/app/cache.js +1 -1
  4. package/lib/commands/app/definitions.js +1 -1
  5. package/lib/commands/app/eligibility.js +1 -1
  6. package/lib/commands/app/mock-loader.js +1 -1
  7. package/lib/commands/app/remote-source.js +1 -1
  8. package/lib/commands/app/shared.js +1 -1
  9. package/lib/commands/app-config/get.js +1 -1
  10. package/lib/commands/app-config/index.js +1 -1
  11. package/lib/commands/approval/index.js +1 -1
  12. package/lib/commands/artifact/index.js +1 -1
  13. package/lib/commands/auth/device.js +1 -1
  14. package/lib/commands/auth/index.js +1 -1
  15. package/lib/commands/auth/prompt.js +1 -1
  16. package/lib/commands/bff/detail.js +1 -1
  17. package/lib/commands/bff/exec.js +1 -1
  18. package/lib/commands/bff/index.js +1 -1
  19. package/lib/commands/cli-skill/index.js +1 -1
  20. package/lib/commands/common/config-policy.js +1 -1
  21. package/lib/commands/common/constraints.js +1 -1
  22. package/lib/commands/common/flags.js +1 -1
  23. package/lib/commands/common/local-file.js +1 -1
  24. package/lib/commands/config/definitions.js +1 -1
  25. package/lib/commands/config/init.js +1 -1
  26. package/lib/commands/config/shared.js +1 -1
  27. package/lib/commands/data/import-excel.js +1 -1
  28. package/lib/commands/data/index.js +1 -1
  29. package/lib/commands/dataset/detail.js +1 -1
  30. package/lib/commands/dataset/index.js +1 -1
  31. package/lib/commands/dataset/list.js +1 -1
  32. package/lib/commands/dataset/sdk-doc.js +1 -1
  33. package/lib/commands/doctor.js +1 -1
  34. package/lib/commands/file/index.js +1 -1
  35. package/lib/commands/init.js +1 -1
  36. package/lib/commands/kb/index.js +1 -1
  37. package/lib/commands/logs/index.js +1 -1
  38. package/lib/commands/notification/config-list.js +1 -1
  39. package/lib/commands/notification/index.js +1 -1
  40. package/lib/commands/notification/shared.js +1 -1
  41. package/lib/commands/ocr/index.js +1 -1
  42. package/lib/commands/permit/dataset-get.js +1 -1
  43. package/lib/commands/permit/dataset-set.js +1 -1
  44. package/lib/commands/permit/index.js +1 -1
  45. package/lib/commands/permit/page-get.js +1 -1
  46. package/lib/commands/permit/page-set.js +1 -1
  47. package/lib/commands/permit/role-menus-set.js +1 -1
  48. package/lib/commands/permit/role-menus.js +1 -1
  49. package/lib/commands/permit/shared.js +1 -1
  50. package/lib/commands/personal-bff/index.js +1 -1
  51. package/lib/commands/registry.js +1 -1
  52. package/lib/commands/role/create.js +1 -1
  53. package/lib/commands/role/delete.js +1 -1
  54. package/lib/commands/role/detail.js +1 -1
  55. package/lib/commands/role/index.js +1 -1
  56. package/lib/commands/role/list.js +1 -1
  57. package/lib/commands/role/shared.js +1 -1
  58. package/lib/commands/role/update.js +1 -1
  59. package/lib/commands/role/user-add.js +1 -1
  60. package/lib/commands/role/user-remove.js +1 -1
  61. package/lib/commands/schedule/index.js +1 -1
  62. package/lib/commands/schema.js +1 -1
  63. package/lib/commands/service/dynamic.js +1 -1
  64. package/lib/commands/service/function-name-adapter.js +1 -1
  65. package/lib/commands/service/index.js +1 -1
  66. package/lib/commands/service/registry.js +1 -1
  67. package/lib/commands/skill/commands/create.js +1 -1
  68. package/lib/commands/skill/commands/diagram.js +1 -1
  69. package/lib/commands/skill/commands/install.js +1 -1
  70. package/lib/commands/skill/commands/list.js +1 -1
  71. package/lib/commands/skill/commands/push.js +1 -1
  72. package/lib/commands/skill/commands/validate.js +1 -1
  73. package/lib/commands/skill/diagram.js +1 -1
  74. package/lib/commands/skill/flags.js +1 -1
  75. package/lib/commands/skill/index.js +1 -1
  76. package/lib/commands/skill/manifest-helpers.js +1 -1
  77. package/lib/commands/skill/push-execute.js +1 -1
  78. package/lib/commands/skill/push-flow-helpers.js +1 -1
  79. package/lib/commands/skill/push-retarget.js +1 -1
  80. package/lib/commands/skill/scopes.js +1 -1
  81. package/lib/commands/skill/summary.js +1 -1
  82. package/lib/commands/skill/templates.js +1 -1
  83. package/lib/commands/skill/validate.js +1 -1
  84. package/lib/commands/sql/detail.js +1 -1
  85. package/lib/commands/sql/exec.js +1 -1
  86. package/lib/commands/sql/index.js +1 -1
  87. package/lib/commands/update.js +1 -1
  88. package/lib/commands/user-account/bind.js +1 -1
  89. package/lib/commands/user-account/index.js +1 -1
  90. package/lib/commands/workspace/index.js +1 -1
  91. package/lib/config/domain-config.js +1 -1
  92. package/lib/config/schema.js +1 -1
  93. package/lib/constant/app.js +1 -1
  94. package/lib/constant/auth-mode.js +1 -1
  95. package/lib/constant/cli.js +1 -1
  96. package/lib/constant/defaults.js +1 -1
  97. package/lib/constant/distribution.js +1 -1
  98. package/lib/constant/domain.js +1 -1
  99. package/lib/constant/env.js +1 -1
  100. package/lib/constant/output.js +1 -1
  101. package/lib/constant/product.js +1 -1
  102. package/lib/constant/region.js +1 -1
  103. package/lib/constant/risk.js +1 -1
  104. package/lib/constant/url.js +1 -1
  105. package/lib/context.js +1 -1
  106. package/lib/core/api-client.d.ts +2 -0
  107. package/lib/core/api-client.js +1 -1
  108. package/lib/core/db-resolver.js +1 -1
  109. package/lib/core/kb-search-client.js +1 -1
  110. package/lib/core/sdk-client.js +1 -1
  111. package/lib/errors.js +1 -1
  112. package/lib/framework/access-error.js +1 -1
  113. package/lib/framework/build-all-flags.js +1 -1
  114. package/lib/framework/dryrun.js +1 -1
  115. package/lib/framework/flags.js +1 -1
  116. package/lib/framework/help.js +1 -1
  117. package/lib/framework/index.js +1 -1
  118. package/lib/framework/output.js +1 -1
  119. package/lib/framework/preparse.js +1 -1
  120. package/lib/framework/rate-limit.js +1 -1
  121. package/lib/framework/raw-flags.js +1 -1
  122. package/lib/framework/response.js +1 -1
  123. package/lib/framework/runner-confirmation.js +1 -1
  124. package/lib/framework/runner-error.js +1 -1
  125. package/lib/framework/runner.js +1 -1
  126. package/lib/framework/schema-export.js +1 -1
  127. package/lib/framework/service-order.js +1 -1
  128. package/lib/framework/types.js +1 -1
  129. package/lib/generated/build-info.d.ts +4 -4
  130. package/lib/generated/build-info.js +1 -1
  131. package/lib/generated/official-routing.js +1 -1
  132. package/lib/generated/routing-contract.js +1 -1
  133. package/lib/help.js +1 -1
  134. package/lib/postinstall.js +1 -1
  135. package/lib/runtime/confirmation.js +1 -1
  136. package/lib/runtime/event.js +1 -1
  137. package/lib/runtime/index.js +1 -1
  138. package/lib/runtime/queue.js +1 -1
  139. package/lib/runtime/resolve.js +1 -1
  140. package/lib/services/dataset-import/auto-id-runner.js +1 -1
  141. package/lib/services/dataset-import/excel-reader.js +1 -1
  142. package/lib/services/dataset-import/metadata.js +1 -1
  143. package/lib/services/dataset-import/preview.js +1 -1
  144. package/lib/services/dataset-import/runner.js +1 -1
  145. package/lib/skills/builtin-skill.js +1 -1
  146. package/lib/skills/npx-skills-add.js +1 -1
  147. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  148. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  149. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  150. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  151. package/lib/skills/runtime-skill-sync/links.js +1 -1
  152. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  153. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  154. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  155. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  156. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  157. package/lib/skills/runtime-skill-sync/push.js +1 -1
  158. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  159. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  160. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  161. package/lib/skills/runtime-skill-sync.js +1 -1
  162. package/lib/skills/skill-presence.js +1 -1
  163. package/lib/utils/access-key-redaction.js +1 -1
  164. package/lib/utils/apply-jq-filter.js +1 -1
  165. package/lib/utils/cli-version-check.js +1 -1
  166. package/lib/utils/cli-version-policy.js +1 -1
  167. package/lib/utils/logger.js +1 -1
  168. package/lib/utils/lossless-json.js +1 -1
  169. package/lib/utils/params.js +1 -1
  170. package/lib/utils/positive-safe-integer.js +1 -1
  171. package/lib/utils/redaction.js +1 -1
  172. package/lib/utils/update-notice.js +1 -1
  173. package/lib/utils/version.js +1 -1
  174. package/lib/utils/write-cli-side-channel.js +1 -1
  175. package/package.json +1 -1
  176. package/skills/lovrabet/SKILL.md +1 -1
  177. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- const a57_0xc21953=a57_0x2b8b;(function(_0x5b2e2c,_0x2c48c4){const _0x1a7c4a=a57_0x2b8b,_0x5e934b=_0x5b2e2c();while(!![]){try{const _0x2459e1=parseInt(_0x1a7c4a(0x12a))/0x1*(parseInt(_0x1a7c4a(0x125))/0x2)+-parseInt(_0x1a7c4a(0x123))/0x3*(-parseInt(_0x1a7c4a(0x137))/0x4)+parseInt(_0x1a7c4a(0x11e))/0x5+-parseInt(_0x1a7c4a(0x11c))/0x6*(-parseInt(_0x1a7c4a(0x11f))/0x7)+parseInt(_0x1a7c4a(0x136))/0x8*(parseInt(_0x1a7c4a(0x134))/0x9)+parseInt(_0x1a7c4a(0x124))/0xa+-parseInt(_0x1a7c4a(0x12e))/0xb;if(_0x2459e1===_0x2c48c4)break;else _0x5e934b['push'](_0x5e934b['shift']());}catch(_0x56b1f5){_0x5e934b['push'](_0x5e934b['shift']());}}}(a57_0x3aef,0x921d9));import{updateRuntimeAppRole}from'../../core/api-client.js';function a57_0x3aef(){const _0x504e0f=['--remark\x20must\x20not\x20be\x20blank.','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','string','20530411YynEXP','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','body','appCode','trim','validation','4166559EbAfmT','high-risk-write','8rMQLBo','472cObILi','name','update','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','role-code','build','num','remark','2461854rRZiGf','New\x20non-empty\x20role\x20remark','2631480WldnLB','7hMhEWT','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','str','flag','4629IhnSfe','2782150salNlH','14tnrkRJ','/client/permit/role/update','New\x20role\x20name','POST','role','86435eCBlzj'];a57_0x3aef=function(){return _0x504e0f;};return a57_0x3aef();}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(_0x4a9976){const _0x7b5e08=a57_0x2b8b,_0x48ea82=_0x4a9976['flag'](_0x7b5e08(0x118))!==undefined,_0x4113e7=_0x4a9976[_0x7b5e08(0x122)](_0x7b5e08(0x115))!==undefined,_0x4b71b6=_0x4a9976[_0x7b5e08(0x122)]('remark')!==undefined;if(!_0x48ea82&&!_0x4113e7&&!_0x4b71b6)throw CliErrors[_0x7b5e08(0x133)](_0x7b5e08(0x12f));const _0x32a583=readOptionalRuntimeRoleCode(_0x4a9976),_0x8a55f9=_0x4a9976[_0x7b5e08(0x121)](_0x7b5e08(0x115))[_0x7b5e08(0x132)](),_0x5205d6=_0x4a9976['str']('remark')[_0x7b5e08(0x132)]();if(_0x4113e7&&!_0x8a55f9)throw CliErrors['validation']('--name\x20must\x20not\x20be\x20blank.');if(_0x4b71b6&&!_0x5205d6)throw CliErrors[_0x7b5e08(0x133)](_0x7b5e08(0x12b),_0x7b5e08(0x117));return{..._0x32a583?{'roleCode':_0x32a583}:{},..._0x4113e7?{'roleName':_0x8a55f9}:{},..._0x4b71b6?{'remark':_0x5205d6}:{}};}async function prepare(_0x1ebeb8){const _0xecc680=a57_0x2b8b,_0x1bb999=await getRuntimeRoleById(_0x1ebeb8['appCode'],_0x1ebeb8[_0xecc680(0x11a)]('id'));return assertCustomRuntimeRole(_0x1bb999,'update'),{'role':_0x1bb999,'body':{'id':_0x1bb999['id'],'appCode':_0x1ebeb8[_0xecc680(0x131)],...updateFields(_0x1ebeb8)}};}function a57_0x2b8b(_0x5f27b5,_0x44689f){_0x5f27b5=_0x5f27b5-0x115;const _0x3aefc7=a57_0x3aef();let _0x2b8b89=_0x3aefc7[_0x5f27b5];return _0x2b8b89;}export const roleUpdate={'service':a57_0xc21953(0x129),'command':'update','description':a57_0xc21953(0x120),'risk':a57_0xc21953(0x135),'confirmationDescription':'Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':'name','type':a57_0xc21953(0x12d),'description':a57_0xc21953(0x127)},{'name':a57_0xc21953(0x11b),'type':a57_0xc21953(0x12d),'description':a57_0xc21953(0x11d)}],async 'validate'(_0x2a09ed){updateFields(_0x2a09ed);},async 'dryRun'(_0xef2495){const _0x32efd0=a57_0xc21953,{body:_0xf3b53e}=await prepare(_0xef2495);return dryRun(_0x32efd0(0x128),_0x32efd0(0x126))[_0x32efd0(0x130)](_0xf3b53e)['description'](_0x32efd0(0x12c))[_0x32efd0(0x119)]();},async 'execute'(_0x393505){const _0x5ac96c=a57_0xc21953,{role:_0xf646e5,body:_0x238cff}=await prepare(_0x393505),_0x4a515e=await updateRuntimeAppRole(_0x238cff);return{'ok':!![],'data':runtimeRoleWriteResult(_0x5ac96c(0x116),{'roleId':_0xf646e5['id']},projectRuntimeRole(_0xf646e5),projectRuntimeRole(_0x4a515e),{'method':_0x5ac96c(0x128),'path':_0x5ac96c(0x126)})};}};
1
+ const a57_0x5847cd=a57_0x5bb1;function a57_0x3372(){const _0x547cd4=['body','190Azndnw','New\x20role\x20name','2hmDKOo','New\x20non-empty\x20role\x20remark','548340KvpLWj','appCode','POST','1966071asMCRo','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','name','291119gqtyWq','update','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','role-code','description','string','trim','/client/permit/role/update','1897ypVZwN','validation','4824zGUZfl','55hMiBuV','str','5634rqqssX','1094550JwyXZH','remark','120cAgmOm','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','high-risk-write','5994eWbIMk','--remark\x20must\x20not\x20be\x20blank.','--name\x20must\x20not\x20be\x20blank.','29948mNyrWJ','Changes\x20the\x20custom\x20role\x20code,\x20name,\x20or\x20note\x20in\x20the\x20current\x20runtime\x20app.\x20The\x20role\x20updates\x20immediately.','build'];a57_0x3372=function(){return _0x547cd4;};return a57_0x3372();}(function(_0x367e93,_0x42cf9a){const _0x296591=a57_0x5bb1,_0x64cf4f=_0x367e93();while(!![]){try{const _0x2f4b5f=parseInt(_0x296591(0xde))/0x1+parseInt(_0x296591(0xd6))/0x2*(parseInt(_0x296591(0xdb))/0x3)+parseInt(_0x296591(0xd0))/0x4*(-parseInt(_0x296591(0xd4))/0x5)+-parseInt(_0x296591(0xcd))/0x6*(-parseInt(_0x296591(0xe6))/0x7)+parseInt(_0x296591(0xe8))/0x8*(parseInt(_0x296591(0xc6))/0x9)+parseInt(_0x296591(0xc7))/0xa*(-parseInt(_0x296591(0xe9))/0xb)+-parseInt(_0x296591(0xc9))/0xc*(parseInt(_0x296591(0xd8))/0xd);if(_0x2f4b5f===_0x42cf9a)break;else _0x64cf4f['push'](_0x64cf4f['shift']());}catch(_0x5cde8e){_0x64cf4f['push'](_0x64cf4f['shift']());}}}(a57_0x3372,0x5346e));import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';function a57_0x5bb1(_0x244c9e,_0x1590ec){_0x244c9e=_0x244c9e-0xc6;const _0x337231=a57_0x3372();let _0x5bb179=_0x337231[_0x244c9e];return _0x5bb179;}import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x2726dc){const _0x409b20=a57_0x5bb1,_0x39f4f4=_0x2726dc['flag'](_0x409b20(0xe1))!==undefined,_0x4fe395=_0x2726dc['flag'](_0x409b20(0xdd))!==undefined,_0x57b9b5=_0x2726dc['flag'](_0x409b20(0xc8))!==undefined;if(!_0x39f4f4&&!_0x4fe395&&!_0x57b9b5)throw CliErrors['validation'](_0x409b20(0xcb));const _0x2c0da6=readOptionalRuntimeRoleCode(_0x2726dc),_0x4e981f=_0x2726dc[_0x409b20(0xea)](_0x409b20(0xdd))[_0x409b20(0xe4)](),_0x534111=_0x2726dc[_0x409b20(0xea)](_0x409b20(0xc8))['trim']();if(_0x4fe395&&!_0x4e981f)throw CliErrors[_0x409b20(0xe7)](_0x409b20(0xcf));if(_0x57b9b5&&!_0x534111)throw CliErrors['validation'](_0x409b20(0xce),_0x409b20(0xdc));return{..._0x2c0da6?{'roleCode':_0x2c0da6}:{},..._0x4fe395?{'roleName':_0x4e981f}:{},..._0x57b9b5?{'remark':_0x534111}:{}};}async function prepare(_0x1dc5bb){const _0x4a0ca0=a57_0x5bb1,_0x105dae=await getRuntimeRoleById(_0x1dc5bb[_0x4a0ca0(0xd9)],_0x1dc5bb['num']('id'));return assertCustomRuntimeRole(_0x105dae,_0x4a0ca0(0xdf)),{'role':_0x105dae,'body':{'id':_0x105dae['id'],'appCode':_0x1dc5bb[_0x4a0ca0(0xd9)],...updateFields(_0x1dc5bb)}};}export const roleUpdate={'service':'role','command':'update','description':a57_0x5847cd(0xe0),'risk':a57_0x5847cd(0xcc),'confirmationDescription':a57_0x5847cd(0xd1),'flags':[ROLE_ID_FLAG,ROLE_CODE_FLAG,{'name':a57_0x5847cd(0xdd),'type':a57_0x5847cd(0xe3),'description':a57_0x5847cd(0xd5)},{'name':a57_0x5847cd(0xc8),'type':a57_0x5847cd(0xe3),'description':a57_0x5847cd(0xd7)}],async 'validate'(_0x26c35f){updateFields(_0x26c35f);},async 'dryRun'(_0x85b7fb){const _0xa95c6e=a57_0x5847cd,{body:_0xcb32c2}=await prepare(_0x85b7fb);return dryRun(_0xa95c6e(0xda),'/client/permit/role/update')[_0xa95c6e(0xd3)](_0xcb32c2)[_0xa95c6e(0xe2)](_0xa95c6e(0xca))[_0xa95c6e(0xd2)]();},async 'execute'(_0x5e49a0){const _0x1aa283=a57_0x5847cd,{role:_0x1472f3,body:_0x31ce71}=await prepare(_0x5e49a0),_0x1eb6a9=await updateRuntimeAppRole(_0x31ce71);return{'ok':!![],'data':runtimeRoleWriteResult(_0x1aa283(0xdf),{'roleId':_0x1472f3['id']},projectRuntimeRole(_0x1472f3),projectRuntimeRole(_0x1eb6a9),{'method':_0x1aa283(0xda),'path':_0x1aa283(0xe5)})};}};
@@ -1 +1 @@
1
- function a58_0x3b27(){const _0x23f385=['/client/permit/user-role/update-user-list','build','1729MyPdOl','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','177699ekAqKm','user-add','15208JZxLOM','high-risk-write','2264562uaQhvj','POST','appCode','Preview:\x20add\x20runtime\x20role\x20member','10861236kUQFOc','20hFKGFA','roleList','1170654VdzSKM','userId','shouldWrite','role','warnings','80218lHvHwT','3415304NfanYu','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','description'];a58_0x3b27=function(){return _0x23f385;};return a58_0x3b27();}const a58_0x2597cf=a58_0x17c5;(function(_0x3cd287,_0x493068){const _0x16f5ec=a58_0x17c5,_0x13e4b8=_0x3cd287();while(!![]){try{const _0x2a8ee6=-parseInt(_0x16f5ec(0x9b))/0x1+-parseInt(_0x16f5ec(0x93))/0x2+-parseInt(_0x16f5ec(0x9f))/0x3+-parseInt(_0x16f5ec(0x94))/0x4+parseInt(_0x16f5ec(0xa4))/0x5*(parseInt(_0x16f5ec(0xa6))/0x6)+-parseInt(_0x16f5ec(0x99))/0x7*(-parseInt(_0x16f5ec(0x9d))/0x8)+parseInt(_0x16f5ec(0xa3))/0x9;if(_0x2a8ee6===_0x493068)break;else _0x13e4b8['push'](_0x13e4b8['shift']());}catch(_0x4c18e8){_0x13e4b8['push'](_0x13e4b8['shift']());}}}(a58_0x3b27,0x99e1b));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_0x17c5(_0x18f22a,_0x158b74){_0x18f22a=_0x18f22a-0x93;const _0x3b27f5=a58_0x3b27();let _0x17c553=_0x3b27f5[_0x18f22a];return _0x17c553;}export const roleUserAdd={'service':a58_0x2597cf(0xa9),'command':a58_0x2597cf(0x9c),'description':a58_0x2597cf(0x9a),'risk':a58_0x2597cf(0x9e),'confirmationDescription':a58_0x2597cf(0x95),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0xff83d9){const _0x34cb84=a58_0x2597cf,_0x340d21=await prepareRuntimeMemberMutation(_0xff83d9,_0x34cb84(0x9c));return dryRun(_0x34cb84(0xa0),_0x34cb84(0x97))['body']({'appCode':_0xff83d9[_0x34cb84(0xa1)],'roleList':_0x340d21[_0x34cb84(0xa5)]})[_0x34cb84(0x96)](_0x340d21[_0x34cb84(0xa8)]?_0x34cb84(0xa2):_0x340d21[_0x34cb84(0xaa)][0x0])[_0x34cb84(0x98)]();},async 'execute'(_0x4218c8){const _0x186f28=a58_0x2597cf,_0x50f925=await prepareRuntimeMemberMutation(_0x4218c8,'user-add');return _0x50f925[_0x186f28(0xa8)]&&await updateRuntimeRoleUsers(_0x4218c8[_0x186f28(0xa1)],_0x50f925[_0x186f28(0xa5)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x186f28(0x9c),{'roleId':_0x50f925['role']['id'],'userId':_0x50f925[_0x186f28(0xa7)]},_0x50f925['before'],_0x50f925['after'],{'method':'POST','path':_0x186f28(0x97)},_0x50f925[_0x186f28(0xaa)])};}};
1
+ const a58_0x741e24=a58_0x166b;(function(_0x495395,_0x356d6e){const _0x19b56d=a58_0x166b,_0x2b003a=_0x495395();while(!![]){try{const _0x2aa509=-parseInt(_0x19b56d(0x8a))/0x1+parseInt(_0x19b56d(0x80))/0x2*(-parseInt(_0x19b56d(0x83))/0x3)+-parseInt(_0x19b56d(0x8e))/0x4+parseInt(_0x19b56d(0x8f))/0x5+-parseInt(_0x19b56d(0x84))/0x6+-parseInt(_0x19b56d(0x7f))/0x7+parseInt(_0x19b56d(0x85))/0x8;if(_0x2aa509===_0x356d6e)break;else _0x2b003a['push'](_0x2b003a['shift']());}catch(_0xee5dc){_0x2b003a['push'](_0x2b003a['shift']());}}}(a58_0x527a,0xc9022));import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a58_0x527a(){const _0x4de3c1=['user-add','559856OErycb','6985295gHCUML','build','appCode','roleList','warnings','description','Preview:\x20add\x20runtime\x20role\x20member','role','1965670QlejWT','8nGWQfI','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','before','894594TkdssL','9553260hamkBN','22220920pJybbb','body','shouldWrite','/client/permit/user-role/update-user-list','userId','145568mYHmVp','high-risk-write','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.'];a58_0x527a=function(){return _0x4de3c1;};return a58_0x527a();}function a58_0x166b(_0x365ae1,_0x5a96af){_0x365ae1=_0x365ae1-0x7c;const _0x527ae9=a58_0x527a();let _0x166b08=_0x527ae9[_0x365ae1];return _0x166b08;}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':a58_0x741e24(0x7e),'command':a58_0x741e24(0x8d),'description':a58_0x741e24(0x81),'risk':a58_0x741e24(0x8b),'confirmationDescription':a58_0x741e24(0x8c),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x2b14bc){const _0x247a5d=a58_0x741e24,_0x3ba70b=await prepareRuntimeMemberMutation(_0x2b14bc,_0x247a5d(0x8d));return dryRun('POST',_0x247a5d(0x88))[_0x247a5d(0x86)]({'appCode':_0x2b14bc['appCode'],'roleList':_0x3ba70b['roleList']})[_0x247a5d(0x7c)](_0x3ba70b[_0x247a5d(0x87)]?_0x247a5d(0x7d):_0x3ba70b['warnings'][0x0])[_0x247a5d(0x90)]();},async 'execute'(_0x3858be){const _0xcb8e6f=a58_0x741e24,_0x5dcd75=await prepareRuntimeMemberMutation(_0x3858be,_0xcb8e6f(0x8d));return _0x5dcd75[_0xcb8e6f(0x87)]&&await updateRuntimeRoleUsers(_0x3858be[_0xcb8e6f(0x91)],_0x5dcd75[_0xcb8e6f(0x92)]),{'ok':!![],'data':runtimeRoleWriteResult(_0xcb8e6f(0x8d),{'roleId':_0x5dcd75[_0xcb8e6f(0x7e)]['id'],'userId':_0x5dcd75[_0xcb8e6f(0x89)]},_0x5dcd75[_0xcb8e6f(0x82)],_0x5dcd75['after'],{'method':'POST','path':'/client/permit/user-role/update-user-list'},_0x5dcd75[_0xcb8e6f(0x93)])};}};
@@ -1 +1 @@
1
- const a59_0x462802=a59_0x2e59;(function(_0x1e5e35,_0x43f86a){const _0x2d6cee=a59_0x2e59,_0x359996=_0x1e5e35();while(!![]){try{const _0x303c8b=-parseInt(_0x2d6cee(0x1c0))/0x1+parseInt(_0x2d6cee(0x1ba))/0x2*(-parseInt(_0x2d6cee(0x1b7))/0x3)+parseInt(_0x2d6cee(0x1c1))/0x4+-parseInt(_0x2d6cee(0x1bb))/0x5*(-parseInt(_0x2d6cee(0x1c9))/0x6)+-parseInt(_0x2d6cee(0x1b6))/0x7*(parseInt(_0x2d6cee(0x1c5))/0x8)+-parseInt(_0x2d6cee(0x1b5))/0x9*(-parseInt(_0x2d6cee(0x1b8))/0xa)+parseInt(_0x2d6cee(0x1c7))/0xb*(-parseInt(_0x2d6cee(0x1cc))/0xc);if(_0x303c8b===_0x43f86a)break;else _0x359996['push'](_0x359996['shift']());}catch(_0xd8896){_0x359996['push'](_0x359996['shift']());}}}(a59_0x5d70,0x676ad));function a59_0x5d70(){const _0x5c4503=['high-risk-write','22YMctlr','before','2754BxlrLd','role','warnings','1397652HcPqvg','POST','build','2224593KwmetU','1148rSOYna','108483MhegxH','30soLRUv','appCode','24HJvnWw','4475ZFpUeT','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','shouldWrite','roleList','description','447529AyZsbk','1649584GoCdvg','user-remove','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','/client/permit/user-role/update-user-list','1304dFWjIo'];a59_0x5d70=function(){return _0x5c4503;};return a59_0x5d70();}import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a59_0x2e59(_0x148454,_0x43331e){_0x148454=_0x148454-0x1b3;const _0x5d700c=a59_0x5d70();let _0x2e595d=_0x5d700c[_0x148454];return _0x2e595d;}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':a59_0x462802(0x1ca),'command':'user-remove','description':a59_0x462802(0x1bc),'risk':a59_0x462802(0x1c6),'confirmationDescription':a59_0x462802(0x1c3),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x2d1887){const _0x24e2b7=a59_0x462802,_0x52446a=await prepareRuntimeMemberMutation(_0x2d1887,_0x24e2b7(0x1c2));return dryRun(_0x24e2b7(0x1b3),_0x24e2b7(0x1c4))['body']({'appCode':_0x2d1887['appCode'],'roleList':_0x52446a['roleList']})[_0x24e2b7(0x1bf)](_0x52446a[_0x24e2b7(0x1bd)]?'Preview:\x20remove\x20runtime\x20role\x20member':_0x52446a[_0x24e2b7(0x1cb)][0x0])[_0x24e2b7(0x1b4)]();},async 'execute'(_0x23ae57){const _0x445c32=a59_0x462802,_0x375ebf=await prepareRuntimeMemberMutation(_0x23ae57,_0x445c32(0x1c2));return _0x375ebf['shouldWrite']&&await updateRuntimeRoleUsers(_0x23ae57[_0x445c32(0x1b9)],_0x375ebf[_0x445c32(0x1be)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x445c32(0x1c2),{'roleId':_0x375ebf[_0x445c32(0x1ca)]['id'],'userId':_0x375ebf['userId']},_0x375ebf[_0x445c32(0x1c8)],_0x375ebf['after'],{'method':'POST','path':'/client/permit/user-role/update-user-list'},_0x375ebf[_0x445c32(0x1cb)])};}};
1
+ const a59_0xd45c8=a59_0x242c;(function(_0x105203,_0x1c6e26){const _0x240f48=a59_0x242c,_0x39b85a=_0x105203();while(!![]){try{const _0x3749e2=parseInt(_0x240f48(0x7f))/0x1+-parseInt(_0x240f48(0x6a))/0x2*(-parseInt(_0x240f48(0x6d))/0x3)+parseInt(_0x240f48(0x7e))/0x4*(-parseInt(_0x240f48(0x78))/0x5)+parseInt(_0x240f48(0x72))/0x6+parseInt(_0x240f48(0x6b))/0x7*(parseInt(_0x240f48(0x73))/0x8)+parseInt(_0x240f48(0x71))/0x9+-parseInt(_0x240f48(0x6f))/0xa;if(_0x3749e2===_0x1c6e26)break;else _0x39b85a['push'](_0x39b85a['shift']());}catch(_0x185372){_0x39b85a['push'](_0x39b85a['shift']());}}}(a59_0x217c,0x9fc9f));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':a59_0xd45c8(0x74),'command':a59_0xd45c8(0x7d),'description':a59_0xd45c8(0x7b),'risk':a59_0xd45c8(0x6c),'confirmationDescription':a59_0xd45c8(0x70),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x42ecdf){const _0x203f38=a59_0xd45c8,_0x116516=await prepareRuntimeMemberMutation(_0x42ecdf,_0x203f38(0x7d));return dryRun(_0x203f38(0x76),_0x203f38(0x77))[_0x203f38(0x75)]({'appCode':_0x42ecdf[_0x203f38(0x80)],'roleList':_0x116516[_0x203f38(0x6e)]})['description'](_0x116516['shouldWrite']?_0x203f38(0x79):_0x116516[_0x203f38(0x7a)][0x0])[_0x203f38(0x69)]();},async 'execute'(_0xe1b8c2){const _0x11d946=a59_0xd45c8,_0x2e690c=await prepareRuntimeMemberMutation(_0xe1b8c2,_0x11d946(0x7d));return _0x2e690c[_0x11d946(0x82)]&&await updateRuntimeRoleUsers(_0xe1b8c2['appCode'],_0x2e690c[_0x11d946(0x6e)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x11d946(0x7d),{'roleId':_0x2e690c[_0x11d946(0x74)]['id'],'userId':_0x2e690c[_0x11d946(0x7c)]},_0x2e690c[_0x11d946(0x81)],_0x2e690c['after'],{'method':_0x11d946(0x76),'path':_0x11d946(0x77)},_0x2e690c[_0x11d946(0x7a)])};}};function a59_0x242c(_0x33a09d,_0x32b9ef){_0x33a09d=_0x33a09d-0x69;const _0x217c5d=a59_0x217c();let _0x242c57=_0x217c5d[_0x33a09d];return _0x242c57;}function a59_0x217c(){const _0x9d5ae1=['roleList','24799770INYHyt','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','762210iLrdpO','4741590oOfkKm','16RBIjRC','role','body','POST','/client/permit/user-role/update-user-list','1843375JCOJUG','Preview:\x20remove\x20runtime\x20role\x20member','warnings','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','userId','user-remove','4yhmnBg','1013118uYPxZE','appCode','before','shouldWrite','build','2sosNEi','1603952VLtFRV','high-risk-write','3470406ZKnuGl'];a59_0x217c=function(){return _0x9d5ae1;};return a59_0x217c();}
@@ -1 +1 @@
1
- const a60_0x45b416=a60_0x3b7f;function a60_0x12a1(){const _0x2ca912=['Schedule\x20kind:\x20CRON\x20or\x20ONCE','schedule','run','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','--prompt\x20must\x20not\x20be\x20blank.','/run','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','scheduled-at','validation','2841126aRiAlv','368823rFXUDf','create','validate','isSafeInteger','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','342mCVZtS','appCode','\x20schedule\x20','cron','kind','Preview:\x20create\x20an\x20Agent\x20schedule','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','detail','--title\x20must\x20not\x20be\x20blank.','model','5032PStjDK','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','trim','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Schedule\x20title','/api/harness/apps/','2AGuEig','Created\x20','schedule-id','description','4jCtvVd','819366TKJFWA','num','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','/schedules','list','deepseek-v4-flash-0731','ONCE','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','\x20immediately','Preview:\x20run\x20schedule\x20','str','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','length','130849llcQBG','string','POST','2347030nGSjqI','\x20from\x20schedule\x20','build','Deleted\x20schedule\x20','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','prompt','Schedule\x20UUID','Page\x20size\x20from\x201\x20to\x20100','cursor','13924500KCvqgr','high-risk-write','Show\x20one\x20schedule\x20by\x20schedule\x20ID','CRON','limit','Queued\x20Task\x20','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','taskId','UTC','read'];a60_0x12a1=function(){return _0x2ca912;};return a60_0x12a1();}(function(_0x1991e9,_0x5dda00){const _0x324d32=a60_0x3b7f,_0x4a0404=_0x1991e9();while(!![]){try{const _0x167ec4=parseInt(_0x324d32(0xf4))/0x1+parseInt(_0x324d32(0xe1))/0x2*(-parseInt(_0x324d32(0xe6))/0x3)+-parseInt(_0x324d32(0xe5))/0x4*(parseInt(_0x324d32(0xf7))/0x5)+-parseInt(_0x324d32(0xca))/0x6+-parseInt(_0x324d32(0xcb))/0x7+parseInt(_0x324d32(0xda))/0x8*(parseInt(_0x324d32(0xd0))/0x9)+parseInt(_0x324d32(0x100))/0xa;if(_0x167ec4===_0x5dda00)break;else _0x4a0404['push'](_0x4a0404['shift']());}catch(_0x161507){_0x4a0404['push'](_0x4a0404['shift']());}}}(a60_0x12a1,0x43fbf));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':a60_0x45b416(0xd4),'type':a60_0x45b416(0xf5),'required':!![],'enum':[a60_0x45b416(0x103),a60_0x45b416(0xec)],'description':a60_0x45b416(0x10a)},CRON_FLAG={'name':'cron','type':a60_0x45b416(0xf5),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':a60_0x45b416(0xc8),'type':'string','description':a60_0x45b416(0xfb)},TITLE_FLAG={'name':'title','type':'string','required':!![],'description':a60_0x45b416(0xdf)},PROMPT_FLAG={'name':a60_0x45b416(0xfc),'type':'string','required':!![],'description':a60_0x45b416(0xc7)},MODEL_FLAG={'name':a60_0x45b416(0xd9),'type':'string','enum':['kimi/k3','deepseek-v4-flash-0731','deepseek-v4-pro-0813'],'default':a60_0x45b416(0xeb),'description':'Task\x20model\x20used\x20when\x20the\x20schedule\x20runs'},SCHEDULE_ID_FLAG={'name':a60_0x45b416(0xe3),'type':'string','required':!![],'description':a60_0x45b416(0xfd),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a60_0x45b416(0xf2)}},LIMIT_FLAG={'name':'limit','type':'number','default':0x14,'description':a60_0x45b416(0xfe)},CURSOR_FLAG={'name':a60_0x45b416(0xff),'type':a60_0x45b416(0xf5),'description':a60_0x45b416(0xde)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x317c7c){const _0x1277c9=a60_0x45b416,_0x2f47e6=_0x317c7c[_0x1277c9(0xf0)]('kind'),_0xf2d7a5=_0x317c7c[_0x1277c9(0xf0)]('title')['trim'](),_0x283c7b=_0x317c7c['str'](_0x1277c9(0xfc))['trim'](),_0x139065=_0x317c7c[_0x1277c9(0xf0)](_0x1277c9(0xd9)),_0x26da1a=_0x317c7c[_0x1277c9(0xf0)](_0x1277c9(0xd3)),_0x219e99=_0x317c7c[_0x1277c9(0xf0)](_0x1277c9(0xc8));if(!_0xf2d7a5)throw CliErrors[_0x1277c9(0xc9)](_0x1277c9(0xd8));if(!_0x283c7b)throw CliErrors[_0x1277c9(0xc9)](_0x1277c9(0xc5));if(_0x2f47e6===_0x1277c9(0x103)){if(!_0x26da1a||_0x219e99)throw CliErrors['validation'](_0x1277c9(0xdd));return{'kind':_0x2f47e6,'timezone':_0x1277c9(0x108),'cron':_0x26da1a,'title':_0xf2d7a5,'prompt':_0x283c7b,'model':_0x139065};}if(_0x2f47e6===_0x1277c9(0xec)){if(!_0x219e99||_0x26da1a)throw CliErrors[_0x1277c9(0xc9)](_0x1277c9(0xd6));return{'kind':_0x2f47e6,'timezone':_0x1277c9(0x108),'scheduledAt':_0x219e99,'title':_0xf2d7a5,'prompt':_0x283c7b,'model':_0x139065};}throw CliErrors[_0x1277c9(0xc9)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x2c3708){const _0x14487b=a60_0x45b416;return _0x14487b(0xe0)+encodeURIComponent(_0x2c3708)+_0x14487b(0xe9);}function scheduleItemPath(_0x2ea928,_0x19a623){return scheduleCollectionPath(_0x2ea928)+'/'+encodeURIComponent(_0x19a623);}function a60_0x3b7f(_0x2b3426,_0x310767){_0x2b3426=_0x2b3426-0xc2;const _0x12a1fc=a60_0x12a1();let _0x3b7f74=_0x12a1fc[_0x2b3426];return _0x3b7f74;}const scheduleValidate={'service':a60_0x45b416(0xc2),'command':a60_0x45b416(0xcd),'description':a60_0x45b416(0xf1),'risk':a60_0x45b416(0x109),'flags':INPUT_FLAGS,async 'validate'(_0x3c6fe0){readScheduleInput(_0x3c6fe0);},async 'execute'(_0x40d9f3){const _0x44f9de=a60_0x45b416,_0x37cb35=readScheduleInput(_0x40d9f3),_0x196dc9=await validateRuntimeSchedule(_0x40d9f3[_0x44f9de(0xd1)],_0x37cb35);return{'ok':!![],'data':_0x196dc9,'message':'Schedule\x20input\x20is\x20valid'};}},scheduleCreate={'service':a60_0x45b416(0xc2),'command':a60_0x45b416(0xcc),'description':'Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','risk':a60_0x45b416(0x101),'confirmationDescription':a60_0x45b416(0x106),'flags':INPUT_FLAGS,async 'validate'(_0x4eb273){readScheduleInput(_0x4eb273);},async 'execute'(_0x15e4f0){const _0x40ecef=a60_0x45b416,_0x1b9c4c=readScheduleInput(_0x15e4f0),_0x4581bb=await validateRuntimeSchedule(_0x15e4f0[_0x40ecef(0xd1)],_0x1b9c4c),_0x4cc489=await createRuntimeSchedule(_0x15e4f0[_0x40ecef(0xd1)],_0x4581bb);return{'ok':!![],'data':_0x4cc489,'message':_0x40ecef(0xe2)+_0x4cc489['kind']+_0x40ecef(0xd2)+_0x4cc489['scheduleId']};},async 'dryRun'(_0x470f13){const _0x3bedf7=a60_0x45b416,_0x4a415f=readScheduleInput(_0x470f13);return dryRun(_0x3bedf7(0xf6),scheduleCollectionPath(_0x470f13[_0x3bedf7(0xd1)]))['body'](_0x4a415f)[_0x3bedf7(0xe4)](_0x3bedf7(0xd5))[_0x3bedf7(0xf9)]();}},scheduleList={'service':'schedule','command':a60_0x45b416(0xea),'description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':a60_0x45b416(0x109),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x1d9f5c){const _0x1b5539=a60_0x45b416,_0x1edf38=_0x1d9f5c[_0x1b5539(0xe7)](_0x1b5539(0x104));if(!Number[_0x1b5539(0xce)](_0x1edf38)||_0x1edf38<0x1||_0x1edf38>0x64)throw CliErrors[_0x1b5539(0xc9)](_0x1b5539(0xc4));const _0x280f98=_0x1d9f5c[_0x1b5539(0xf0)](_0x1b5539(0xff));if(_0x280f98&&(_0x280f98[_0x1b5539(0xf3)]>0x400||_0x280f98[_0x1b5539(0xdc)]()!==_0x280f98))throw CliErrors['validation'](_0x1b5539(0xcf));},async 'execute'(_0x59f5b2){const _0x10838a=a60_0x45b416,_0x38fc61=_0x59f5b2['str'](_0x10838a(0xff)),_0x2edca9=await listRuntimeSchedules(_0x59f5b2[_0x10838a(0xd1)],{'kind':_0x59f5b2[_0x10838a(0xf0)](_0x10838a(0xd4)),'limit':_0x59f5b2[_0x10838a(0xe7)]('limit'),..._0x38fc61?{'cursor':_0x38fc61}:{}});return{'ok':!![],'data':_0x2edca9};}},scheduleDetail={'service':a60_0x45b416(0xc2),'command':a60_0x45b416(0xd7),'description':a60_0x45b416(0x102),'risk':a60_0x45b416(0x109),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x2f59c5){const _0xa17444=a60_0x45b416,_0x282349=await getRuntimeSchedule(_0x2f59c5[_0xa17444(0xd1)],_0x2f59c5[_0xa17444(0xf0)](_0xa17444(0xe3)));return{'ok':!![],'data':_0x282349};}},scheduleRun={'service':a60_0x45b416(0xc2),'command':a60_0x45b416(0xc3),'description':a60_0x45b416(0xdb),'risk':a60_0x45b416(0x101),'confirmationDescription':a60_0x45b416(0xe8),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x21c661){const _0x2e25f1=a60_0x45b416,_0x24132d=_0x21c661[_0x2e25f1(0xf0)](_0x2e25f1(0xe3)),_0x474d57=await runRuntimeSchedule(_0x21c661[_0x2e25f1(0xd1)],_0x24132d);return{'ok':!![],'data':_0x474d57,'message':_0x2e25f1(0x105)+_0x474d57[_0x2e25f1(0x107)]+_0x2e25f1(0xf8)+_0x24132d};},async 'dryRun'(_0x3d98a1){const _0x188795=a60_0x45b416,_0x55134e=_0x3d98a1[_0x188795(0xf0)](_0x188795(0xe3));return dryRun(_0x188795(0xf6),scheduleItemPath(_0x3d98a1['appCode'],_0x55134e)+_0x188795(0xc6))[_0x188795(0xe4)](_0x188795(0xef)+_0x55134e+_0x188795(0xee))['build']();}},scheduleDelete={'service':a60_0x45b416(0xc2),'command':'delete','description':a60_0x45b416(0xed),'risk':a60_0x45b416(0x101),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1121c5){const _0x24c2e8=a60_0x45b416,_0x2d698c=_0x1121c5[_0x24c2e8(0xf0)](_0x24c2e8(0xe3)),_0x14a45b=await deleteRuntimeSchedule(_0x1121c5[_0x24c2e8(0xd1)],_0x2d698c);return{'ok':!![],'data':_0x14a45b,'message':_0x24c2e8(0xfa)+_0x2d698c};},async 'dryRun'(_0x4afd29){const _0x26e616=a60_0x45b416,_0x4b21ff=_0x4afd29[_0x26e616(0xf0)](_0x26e616(0xe3));return dryRun('DELETE',scheduleItemPath(_0x4afd29[_0x26e616(0xd1)],_0x4b21ff))[_0x26e616(0xe4)]('Preview:\x20delete\x20schedule\x20'+_0x4b21ff)[_0x26e616(0xf9)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
1
+ const a60_0x5b07a5=a60_0x11f0;(function(_0x1f0199,_0x286df1){const _0x1897fc=a60_0x11f0,_0xf12a87=_0x1f0199();while(!![]){try{const _0xc4d0a9=parseInt(_0x1897fc(0xb1))/0x1+parseInt(_0x1897fc(0xca))/0x2*(-parseInt(_0x1897fc(0xe5))/0x3)+-parseInt(_0x1897fc(0xbb))/0x4+-parseInt(_0x1897fc(0xe4))/0x5*(parseInt(_0x1897fc(0xae))/0x6)+parseInt(_0x1897fc(0xc4))/0x7+parseInt(_0x1897fc(0xd4))/0x8*(parseInt(_0x1897fc(0xba))/0x9)+parseInt(_0x1897fc(0xcf))/0xa;if(_0xc4d0a9===_0x286df1)break;else _0xf12a87['push'](_0xf12a87['shift']());}catch(_0x38199a){_0xf12a87['push'](_0xf12a87['shift']());}}}(a60_0xd285,0x6d83e));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':a60_0x5b07a5(0xbf),'type':'string','required':!![],'enum':[a60_0x5b07a5(0xc7),a60_0x5b07a5(0xd7)],'description':a60_0x5b07a5(0xe3)},CRON_FLAG={'name':a60_0x5b07a5(0xd8),'type':a60_0x5b07a5(0xdf),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':a60_0x5b07a5(0xda),'type':a60_0x5b07a5(0xdf),'description':a60_0x5b07a5(0xde)},TITLE_FLAG={'name':'title','type':a60_0x5b07a5(0xdf),'required':!![],'description':a60_0x5b07a5(0xe9)},PROMPT_FLAG={'name':a60_0x5b07a5(0xa4),'type':'string','required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':a60_0x5b07a5(0xc1),'type':a60_0x5b07a5(0xdf),'enum':[a60_0x5b07a5(0xe6),'deepseek-v4-flash-0731',a60_0x5b07a5(0xd2)],'default':a60_0x5b07a5(0xe7),'description':a60_0x5b07a5(0xc5)},SCHEDULE_ID_FLAG={'name':a60_0x5b07a5(0xe1),'type':a60_0x5b07a5(0xdf),'required':!![],'description':'Schedule\x20UUID','pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a60_0x5b07a5(0xd5)}},LIMIT_FLAG={'name':a60_0x5b07a5(0xed),'type':a60_0x5b07a5(0xc2),'default':0x14,'description':a60_0x5b07a5(0xc9)},CURSOR_FLAG={'name':'cursor','type':a60_0x5b07a5(0xdf),'description':a60_0x5b07a5(0xd3)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function a60_0x11f0(_0x2a9c15,_0x197c32){_0x2a9c15=_0x2a9c15-0xa3;const _0xd28551=a60_0xd285();let _0x11f086=_0xd28551[_0x2a9c15];return _0x11f086;}function readScheduleInput(_0x4d899d){const _0x77ab27=a60_0x5b07a5,_0x104989=_0x4d899d[_0x77ab27(0xb3)](_0x77ab27(0xbf)),_0x4b3136=_0x4d899d[_0x77ab27(0xb3)]('title')['trim'](),_0x4b4a83=_0x4d899d['str']('prompt')[_0x77ab27(0xa7)](),_0x45d893=_0x4d899d['str'](_0x77ab27(0xc1)),_0x4f6d64=_0x4d899d[_0x77ab27(0xb3)](_0x77ab27(0xd8)),_0x319dc3=_0x4d899d['str']('scheduled-at');if(!_0x4b3136)throw CliErrors[_0x77ab27(0xd0)](_0x77ab27(0xdb));if(!_0x4b4a83)throw CliErrors[_0x77ab27(0xd0)](_0x77ab27(0xd1));if(_0x104989==='CRON'){if(!_0x4f6d64||_0x319dc3)throw CliErrors['validation'](_0x77ab27(0xd6));return{'kind':_0x104989,'timezone':_0x77ab27(0xce),'cron':_0x4f6d64,'title':_0x4b3136,'prompt':_0x4b4a83,'model':_0x45d893};}if(_0x104989===_0x77ab27(0xd7)){if(!_0x319dc3||_0x4f6d64)throw CliErrors[_0x77ab27(0xd0)](_0x77ab27(0xe0));return{'kind':_0x104989,'timezone':_0x77ab27(0xce),'scheduledAt':_0x319dc3,'title':_0x4b3136,'prompt':_0x4b4a83,'model':_0x45d893};}throw CliErrors[_0x77ab27(0xd0)](_0x77ab27(0xab));}function a60_0xd285(){const _0x36204a=['Deleted\x20schedule\x20','read','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','UTC','4147420nUhPOH','validation','--prompt\x20must\x20not\x20be\x20blank.','deepseek-v4-pro-0813','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','888ZFinYP','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','ONCE','cron','taskId','scheduled-at','--title\x20must\x20not\x20be\x20blank.','cursor','create','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','string','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','schedule-id','Preview:\x20run\x20schedule\x20','Schedule\x20kind:\x20CRON\x20or\x20ONCE','340phTUuV','4881EQPRjO','kimi/k3','deepseek-v4-flash-0731','Schedule\x20input\x20is\x20valid','Schedule\x20title','\x20immediately','isSafeInteger','high-risk-write','limit','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','prompt','description','/schedules','trim','Created\x20','appCode','schedule','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','POST','/run','66678ZHVoLG','build','num','407612TTOstK','Preview:\x20create\x20an\x20Agent\x20schedule','str','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','run','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','length','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','detail','20241moelAx','1675032GtiXpp','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','\x20from\x20schedule\x20','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','kind','validate','model','number','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','6032460ccLvSR','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','Show\x20one\x20schedule\x20by\x20schedule\x20ID','CRON','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','Page\x20size\x20from\x201\x20to\x20100','382hcabzd'];a60_0xd285=function(){return _0x36204a;};return a60_0xd285();}function scheduleCollectionPath(_0xbb2e35){const _0x33dd02=a60_0x5b07a5;return'/api/harness/apps/'+encodeURIComponent(_0xbb2e35)+_0x33dd02(0xa6);}function scheduleItemPath(_0x3e2740,_0x5b805f){return scheduleCollectionPath(_0x3e2740)+'/'+encodeURIComponent(_0x5b805f);}const scheduleValidate={'service':a60_0x5b07a5(0xaa),'command':a60_0x5b07a5(0xc0),'description':a60_0x5b07a5(0xb6),'risk':a60_0x5b07a5(0xcc),'flags':INPUT_FLAGS,async 'validate'(_0xdc0181){readScheduleInput(_0xdc0181);},async 'execute'(_0x10004f){const _0x360b07=a60_0x5b07a5,_0x46db3e=readScheduleInput(_0x10004f),_0x143054=await validateRuntimeSchedule(_0x10004f['appCode'],_0x46db3e);return{'ok':!![],'data':_0x143054,'message':_0x360b07(0xe8)};}},scheduleCreate={'service':a60_0x5b07a5(0xaa),'command':a60_0x5b07a5(0xdd),'description':a60_0x5b07a5(0xbe),'risk':a60_0x5b07a5(0xec),'confirmationDescription':a60_0x5b07a5(0xb8),'flags':INPUT_FLAGS,async 'validate'(_0x5daaa1){readScheduleInput(_0x5daaa1);},async 'execute'(_0x3dfadd){const _0x3e984b=a60_0x5b07a5,_0x24eeb7=readScheduleInput(_0x3dfadd),_0x259325=await validateRuntimeSchedule(_0x3dfadd['appCode'],_0x24eeb7),_0xc4a7b8=await createRuntimeSchedule(_0x3dfadd[_0x3e984b(0xa9)],_0x259325);return{'ok':!![],'data':_0xc4a7b8,'message':_0x3e984b(0xa8)+_0xc4a7b8[_0x3e984b(0xbf)]+'\x20schedule\x20'+_0xc4a7b8['scheduleId']};},async 'dryRun'(_0x5093f5){const _0x562c3a=a60_0x5b07a5,_0x1a6fd7=readScheduleInput(_0x5093f5);return dryRun(_0x562c3a(0xac),scheduleCollectionPath(_0x5093f5['appCode']))['body'](_0x1a6fd7)[_0x562c3a(0xa5)](_0x562c3a(0xb2))['build']();}},scheduleList={'service':a60_0x5b07a5(0xaa),'command':'list','description':a60_0x5b07a5(0xc3),'risk':a60_0x5b07a5(0xcc),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x1058af){const _0x95a7e3=a60_0x5b07a5,_0x1b2888=_0x1058af[_0x95a7e3(0xb0)](_0x95a7e3(0xed));if(!Number[_0x95a7e3(0xeb)](_0x1b2888)||_0x1b2888<0x1||_0x1b2888>0x64)throw CliErrors[_0x95a7e3(0xd0)](_0x95a7e3(0xcd));const _0x4a6aba=_0x1058af[_0x95a7e3(0xb3)](_0x95a7e3(0xdc));if(_0x4a6aba&&(_0x4a6aba[_0x95a7e3(0xb7)]>0x400||_0x4a6aba[_0x95a7e3(0xa7)]()!==_0x4a6aba))throw CliErrors[_0x95a7e3(0xd0)](_0x95a7e3(0xc8));},async 'execute'(_0x29f19c){const _0x233bf8=a60_0x5b07a5,_0x55ca8e=_0x29f19c[_0x233bf8(0xb3)](_0x233bf8(0xdc)),_0x1f4b23=await listRuntimeSchedules(_0x29f19c['appCode'],{'kind':_0x29f19c[_0x233bf8(0xb3)](_0x233bf8(0xbf)),'limit':_0x29f19c[_0x233bf8(0xb0)](_0x233bf8(0xed)),..._0x55ca8e?{'cursor':_0x55ca8e}:{}});return{'ok':!![],'data':_0x1f4b23};}},scheduleDetail={'service':a60_0x5b07a5(0xaa),'command':a60_0x5b07a5(0xb9),'description':a60_0x5b07a5(0xc6),'risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xca62ed){const _0x46c5c0=a60_0x5b07a5,_0x304e7e=await getRuntimeSchedule(_0xca62ed['appCode'],_0xca62ed[_0x46c5c0(0xb3)]('schedule-id'));return{'ok':!![],'data':_0x304e7e};}},scheduleRun={'service':a60_0x5b07a5(0xaa),'command':a60_0x5b07a5(0xb5),'description':a60_0x5b07a5(0xbc),'risk':a60_0x5b07a5(0xec),'confirmationDescription':'Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x2700b9){const _0x4fe699=a60_0x5b07a5,_0xeb175c=_0x2700b9['str'](_0x4fe699(0xe1)),_0x24e3cb=await runRuntimeSchedule(_0x2700b9[_0x4fe699(0xa9)],_0xeb175c);return{'ok':!![],'data':_0x24e3cb,'message':'Queued\x20Task\x20'+_0x24e3cb[_0x4fe699(0xd9)]+_0x4fe699(0xbd)+_0xeb175c};},async 'dryRun'(_0x4e81f8){const _0x577027=a60_0x5b07a5,_0x4a8980=_0x4e81f8['str'](_0x577027(0xe1));return dryRun(_0x577027(0xac),scheduleItemPath(_0x4e81f8[_0x577027(0xa9)],_0x4a8980)+_0x577027(0xad))[_0x577027(0xa5)](_0x577027(0xe2)+_0x4a8980+_0x577027(0xea))[_0x577027(0xaf)]();}},scheduleDelete={'service':'schedule','command':'delete','description':a60_0x5b07a5(0xb4),'risk':a60_0x5b07a5(0xec),'confirmationDescription':a60_0x5b07a5(0xa3),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x5bdd86){const _0x5d7413=a60_0x5b07a5,_0x143c17=_0x5bdd86[_0x5d7413(0xb3)]('schedule-id'),_0x13a027=await deleteRuntimeSchedule(_0x5bdd86[_0x5d7413(0xa9)],_0x143c17);return{'ok':!![],'data':_0x13a027,'message':_0x5d7413(0xcb)+_0x143c17};},async 'dryRun'(_0x69896b){const _0xd03e63=a60_0x5b07a5,_0x248058=_0x69896b['str'](_0xd03e63(0xe1));return dryRun('DELETE',scheduleItemPath(_0x69896b[_0xd03e63(0xa9)],_0x248058))['description']('Preview:\x20delete\x20schedule\x20'+_0x248058)['build']();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
@@ -1 +1 @@
1
- const a61_0x1d9792=a61_0x4742;(function(_0x489110,_0x341b42){const _0x4fdd85=a61_0x4742,_0x4fbb25=_0x489110();while(!![]){try{const _0x20c769=-parseInt(_0x4fdd85(0xe7))/0x1*(-parseInt(_0x4fdd85(0xe8))/0x2)+-parseInt(_0x4fdd85(0xe6))/0x3*(-parseInt(_0x4fdd85(0xe5))/0x4)+parseInt(_0x4fdd85(0xdf))/0x5*(parseInt(_0x4fdd85(0xe0))/0x6)+-parseInt(_0x4fdd85(0xe3))/0x7+-parseInt(_0x4fdd85(0xe4))/0x8+parseInt(_0x4fdd85(0xde))/0x9+parseInt(_0x4fdd85(0xdc))/0xa;if(_0x20c769===_0x341b42)break;else _0x4fbb25['push'](_0x4fbb25['shift']());}catch(_0x429d31){_0x4fbb25['push'](_0x4fbb25['shift']());}}}(a61_0xad12,0xe315d));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x1712aa){const _0x584a25=await buildSchemaPayload();return{'ok':!![],'data':_0x584a25};}export const schemaDefinition={'service':a61_0x1d9792(0xe2),'command':a61_0x1d9792(0xe1),'description':a61_0x1d9792(0xdb),'risk':a61_0x1d9792(0xdd),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};function a61_0x4742(_0x1d830b,_0x193cff){_0x1d830b=_0x1d830b-0xdb;const _0xad1249=a61_0xad12();let _0x4742ac=_0xad1249[_0x1d830b];return _0x4742ac;}function a61_0xad12(){const _0x23dde6=['1134cLeLUh','export','schema','12428948taWtGY','8202456YKefAh','608OiEGJC','8499iincfF','2zoGPNT','952492eibRmu','Export\x20machine-readable\x20command\x20schema\x20(JSON)','13279900lfkIBa','read','4537197uUnqby','13645uZqPSa'];a61_0xad12=function(){return _0x23dde6;};return a61_0xad12();}
1
+ const a61_0x49cae9=a61_0x6fe0;function a61_0x6fe0(_0x131330,_0x3f36dc){_0x131330=_0x131330-0xa8;const _0x225899=a61_0x2258();let _0x6fe04f=_0x225899[_0x131330];return _0x6fe04f;}(function(_0x37ead9,_0x3921f8){const _0x12c287=a61_0x6fe0,_0x4e7901=_0x37ead9();while(!![]){try{const _0x55da50=-parseInt(_0x12c287(0xb4))/0x1*(-parseInt(_0x12c287(0xaf))/0x2)+parseInt(_0x12c287(0xb0))/0x3+-parseInt(_0x12c287(0xa8))/0x4*(parseInt(_0x12c287(0xab))/0x5)+-parseInt(_0x12c287(0xb5))/0x6*(-parseInt(_0x12c287(0xac))/0x7)+parseInt(_0x12c287(0xad))/0x8+parseInt(_0x12c287(0xb3))/0x9*(parseInt(_0x12c287(0xb2))/0xa)+parseInt(_0x12c287(0xa9))/0xb*(-parseInt(_0x12c287(0xb6))/0xc);if(_0x55da50===_0x3921f8)break;else _0x4e7901['push'](_0x4e7901['shift']());}catch(_0x508ac9){_0x4e7901['push'](_0x4e7901['shift']());}}}(a61_0x2258,0xdd952));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x3b2cf4){const _0x486c9d=await buildSchemaPayload();return{'ok':!![],'data':_0x486c9d};}function a61_0x2258(){const _0x22d426=['38240HVxwbA','Export\x20machine-readable\x20command\x20schema\x20(JSON)','2946IEvSuH','2616612hWIUGZ','schema','30NYCJdM','2723778GsCiiX','229IJwqPB','6TEsSmn','84tfXewQ','4qxuZuk','581141ZmSpWs','export','5519070QABLQL','1813042sJECgy'];a61_0x2258=function(){return _0x22d426;};return a61_0x2258();}export const schemaDefinition={'service':a61_0x49cae9(0xb1),'command':a61_0x49cae9(0xaa),'description':a61_0x49cae9(0xae),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
1
- (function(_0xde45f2,_0x1dc565){const _0x1765b0=a62_0x4cc8,_0x232d2b=_0xde45f2();while(!![]){try{const _0x42ee4b=parseInt(_0x1765b0(0x14c))/0x1+-parseInt(_0x1765b0(0x149))/0x2*(-parseInt(_0x1765b0(0x16a))/0x3)+parseInt(_0x1765b0(0x12d))/0x4*(-parseInt(_0x1765b0(0x163))/0x5)+-parseInt(_0x1765b0(0x126))/0x6+parseInt(_0x1765b0(0x140))/0x7*(-parseInt(_0x1765b0(0x129))/0x8)+parseInt(_0x1765b0(0x17b))/0x9+parseInt(_0x1765b0(0x188))/0xa;if(_0x42ee4b===_0x1dc565)break;else _0x232d2b['push'](_0x232d2b['shift']());}catch(_0x350d15){_0x232d2b['push'](_0x232d2b['shift']());}}}(a62_0x37f4,0x90c79));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 a62_0x4cc8(_0x57d531,_0x469c9b){_0x57d531=_0x57d531-0x123;const _0x37f486=a62_0x37f4();let _0x4cc8fe=_0x37f486[_0x57d531];return _0x4cc8fe;}import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x3a4106,_0x280be5){const _0x322828=a62_0x4cc8,_0x5dc8e9=listLocalServiceTrees();let _0x28ee30;for(const _0x39ad9c of _0x5dc8e9){const _0x5119f7=matchServiceTreeCommand(_0x39ad9c,_0x3a4106);if(!_0x5119f7)continue;(!_0x28ee30||_0x5119f7['command'][_0x322828(0x139)][_0x322828(0x16b)]>_0x28ee30[_0x322828(0x138)]['fullPath'][_0x322828(0x16b)])&&(_0x28ee30={'tree':_0x39ad9c,'command':_0x5119f7['command'],'remainingArgs':_0x5119f7[_0x322828(0x152)]});}if(!_0x28ee30)return undefined;const _0x4361d2={..._0x280be5};return applyAppBinding(_0x28ee30['tree'],_0x28ee30[_0x322828(0x138)],_0x4361d2),{'definition':buildDynamicCommandDefinition(_0x28ee30[_0x322828(0x136)],_0x28ee30[_0x322828(0x138)]),'args':_0x28ee30['remainingArgs'],'flags':_0x4361d2,'tree':_0x28ee30[_0x322828(0x136)],'command':_0x28ee30[_0x322828(0x138)]};}export function generateDynamicServiceHelp(_0x5b0aa3){const _0x3ab3a8=a62_0x4cc8,_0x371cf5=listLocalServiceTrees()[_0x3ab3a8(0x16e)](_0x4be0b5=>_0x4be0b5[_0x3ab3a8(0x176)][_0x3ab3a8(0x172)]===_0x5b0aa3);if(!_0x371cf5)return undefined;const _0x285653=[CLI_BIN_NAME+'\x20'+_0x5b0aa3+_0x3ab3a8(0x161),'',_0x371cf5[_0x3ab3a8(0x176)][_0x3ab3a8(0x13a)]||_0x5b0aa3,_0x371cf5[_0x3ab3a8(0x176)][_0x3ab3a8(0x156)]?'\x20\x20'+_0x371cf5[_0x3ab3a8(0x176)][_0x3ab3a8(0x156)]:'','',_0x3ab3a8(0x144),..._0x371cf5[_0x3ab3a8(0x125)][_0x3ab3a8(0x148)](_0x477468=>{const _0x3083fe=_0x3ab3a8,_0x2a534e=_0x477468['fullPath'][_0x3083fe(0x160)](0x1)[_0x3083fe(0x128)]('\x20'),_0x26bd88=_0x477468['risk']===_0x3083fe(0x168)?'':'\x20['+_0x477468[_0x3083fe(0x12a)]+']';return'\x20\x20'+_0x2a534e[_0x3083fe(0x14e)](0x18)+'\x20'+(_0x477468['description']||'')+_0x26bd88;}),'',_0x3ab3a8(0x133)+CLI_BIN_NAME+_0x3ab3a8(0x14b)+_0x5b0aa3+'`\x20to\x20inspect\x20the\x20manifest.'][_0x3ab3a8(0x143)](Boolean);return _0x285653[_0x3ab3a8(0x128)]('\x0a');}export function listDynamicServiceEntries(){const _0x44d36b=a62_0x4cc8;return listLocalServices()[_0x44d36b(0x148)](_0xf5b787=>{const _0x4a1eaa=_0x44d36b,_0x3d183a=_0xf5b787[_0x4a1eaa(0x169)];return{'service':_0x3d183a[_0x4a1eaa(0x176)][_0x4a1eaa(0x172)],'label':_0x3d183a[_0x4a1eaa(0x176)][_0x4a1eaa(0x13a)]||_0x3d183a['service'][_0x4a1eaa(0x172)],'commands':_0x3d183a[_0x4a1eaa(0x125)][_0x4a1eaa(0x148)](_0x4d5871=>({'command':dynamicCommandName(_0x4d5871),'description':_0x4d5871['description']||_0x4a1eaa(0x13d)+_0x4d5871[_0x4a1eaa(0x16c)],'tag':riskTag(_0x4d5871[_0x4a1eaa(0x12a)])}))};});}export function getDynamicServiceEntry(_0x21c932){const _0x496898=a62_0x4cc8;return listDynamicServiceEntries()[_0x496898(0x16e)](_0x26dc10=>_0x26dc10['service']===_0x21c932);}export function listDynamicServiceDefinitions(_0x334312){const _0x41b826=a62_0x4cc8;return listLocalServiceTrees()['filter'](_0x43a467=>!_0x334312||_0x43a467[_0x41b826(0x176)][_0x41b826(0x172)]===_0x334312)[_0x41b826(0x13c)](_0x5021d4=>_0x5021d4[_0x41b826(0x125)][_0x41b826(0x148)](_0xc14154=>buildDynamicCommandDefinition(_0x5021d4,_0xc14154)));}export function getDynamicServiceDefinitions(_0x4e1231){const _0x577fff=a62_0x4cc8,_0x45f2ed=listDynamicServiceDefinitions(_0x4e1231);return _0x45f2ed[_0x577fff(0x16b)]>0x0?_0x45f2ed:undefined;}export function findDynamicServiceDefinition(_0x41e719,_0x526925){const _0x5ed16e=a62_0x4cc8;return listDynamicServiceDefinitions(_0x41e719)[_0x5ed16e(0x16e)](_0x2dadf4=>_0x2dadf4[_0x5ed16e(0x138)]===_0x526925);}export function buildDynamicCommandDefinition(_0x8758b6,_0x452090){const _0x1ccef9=a62_0x4cc8;return{'service':_0x8758b6['service'][_0x1ccef9(0x172)],'command':dynamicCommandName(_0x452090),'description':_0x452090[_0x1ccef9(0x156)]||_0x1ccef9(0x13d)+_0x452090['cliPath'],'risk':_0x452090[_0x1ccef9(0x12a)],..._0x452090[_0x1ccef9(0x12a)]===_0x1ccef9(0x168)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x452090)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x452090['args'][_0x1ccef9(0x148)](_0x1a9370=>({'name':_0x1a9370['name'],'description':_0x1a9370['description']||_0x1a9370[_0x1ccef9(0x13a)],'required':_0x1a9370[_0x1ccef9(0x17e)]})),'flags':_0x452090[_0x1ccef9(0x12b)][_0x1ccef9(0x148)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x452090),async 'dryRun'(_0x28e80a){const _0x123a45=_0x1ccef9,_0x37e008=await compilePlan(_0x452090,_0x28e80a);return{'method':_0x123a45(0x145),'url':_0x452090[_0x123a45(0x16c)],'body':{'target':targetPreview(_0x37e008),'params':_0x37e008[_0x123a45(0x13e)]},'description':_0x123a45(0x137)+_0x452090['cliPath']};},async 'execute'(_0x36671a){const _0x4e3f13=_0x1ccef9,_0x25c6a9=await compilePlan(_0x452090,_0x36671a),_0x35b92b=Date[_0x4e3f13(0x177)](),_0x4ce442=await executePlan(_0x25c6a9,_0x452090,_0x36671a),_0x498ba3=Date['now']()-_0x35b92b;return{'ok':!![],'data':{'service':_0x8758b6[_0x4e3f13(0x176)],'command':_0x452090[_0x4e3f13(0x16c)],'target':targetPreview(_0x25c6a9),'result':_0x4ce442,'elapsed':_0x498ba3},'message':_0x4e3f13(0x179)+_0x452090[_0x4e3f13(0x16c)]+_0x4e3f13(0x15e)+_0x498ba3+'ms'};}};}function buildDynamicConfirmationDescription(_0x397d9c){const _0x10e31b=a62_0x4cc8,_0xe3b9c=_0x397d9c['description']||_0x397d9c['cliPath'],_0x52493b=_0x397d9c[_0x10e31b(0x12a)]==='high-risk-write'?_0x10e31b(0x185):_0x10e31b(0x147);return'This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22'+_0xe3b9c+_0x10e31b(0x14a)+_0x52493b;}function dynamicCommandName(_0x23b1a5){const _0x349882=a62_0x4cc8;return _0x23b1a5[_0x349882(0x139)][_0x349882(0x160)](0x1)[_0x349882(0x128)]('\x20');}function riskTag(_0xc3311b){const _0x3fa393=a62_0x4cc8;return _0xc3311b===_0x3fa393(0x168)?'':_0x3fa393(0x175)+_0xc3311b+']';}function flagToCommandFlag(_0x2fb0b1){const _0x10f02d=a62_0x4cc8;return{'name':_0x2fb0b1['cliName'],'type':_0x2fb0b1['type']===_0x10f02d(0x15f)?'string':_0x2fb0b1[_0x10f02d(0x166)],'description':_0x2fb0b1[_0x10f02d(0x156)]||_0x2fb0b1[_0x10f02d(0x13a)],'required':_0x2fb0b1[_0x10f02d(0x17e)],'default':isPrimitiveFlagDefault(_0x2fb0b1['default'])?_0x2fb0b1[_0x10f02d(0x17a)]:undefined,'enum':_0x2fb0b1[_0x10f02d(0x150)]};}async function compilePlan(_0x3d1029,_0x339241){const _0x4c1441=a62_0x4cc8;return compileServiceTreeCommand(_0x3d1029,{'flags':_0x339241['rawFlags'],'args':_0x339241[_0x4c1441(0x162)],'context':await buildServiceContext(_0x3d1029,_0x339241)});}async function buildServiceContext(_0x5b319d,_0x26296b){const _0x337d99=a62_0x4cc8,_0x350e75={'appCode':_0x26296b[_0x337d99(0x16d)],'env':_0x26296b['envName'],'envName':_0x26296b[_0x337d99(0x15a)]};if(!usesRuntimeContext(_0x5b319d))return _0x350e75;const _0x494113=await getLoginUserInfo(),_0x194dca=pickFirst(_0x494113[_0x337d99(0x184)],_0x494113['id']);return{..._0x350e75,'user':_0x494113,'userId':_0x194dca,'id':_0x494113['id'],'username':pickFirst(_0x494113[_0x337d99(0x158)],_0x494113[_0x337d99(0x134)],_0x494113[_0x337d99(0x187)]),'userName':_0x494113[_0x337d99(0x134)],'nickname':pickFirst(_0x494113['nickname'],_0x494113[_0x337d99(0x132)]),'nickName':_0x494113[_0x337d99(0x132)],'tenantCode':_0x494113['tenantCode'],'employeeId':_0x494113['employeeId']};}function usesRuntimeContext(_0x1eae89){const _0x527fbc=a62_0x4cc8;return _0x1eae89['mapTo'][_0x527fbc(0x155)](_0x2fcb84=>typeof _0x2fcb84[_0x527fbc(0x141)]==='string'&&(_0x2fcb84['source'][_0x527fbc(0x12f)]('context.')||_0x2fcb84['source'][_0x527fbc(0x12f)]('ctx.')));}function pickFirst(..._0x37bfdd){const _0x27b74b=a62_0x4cc8;return _0x37bfdd[_0x27b74b(0x16e)](_0x24cbef=>_0x24cbef!==undefined&&_0x24cbef!==null);}async function executePlan(_0x32051e,_0x58fb12,_0x29105e){const _0x3a2948=a62_0x4cc8;if(_0x32051e[_0x3a2948(0x180)]==='data'){const _0x5b4a50=await resolveDatasetCode(_0x32051e,_0x58fb12,_0x29105e);return executeData(_0x5b4a50,_0x32051e[_0x3a2948(0x138)],_0x32051e[_0x3a2948(0x13e)]);}if(_0x32051e['kind']==='sql'){if(!_0x32051e[_0x3a2948(0x182)])throw CliErrors[_0x3a2948(0x171)](_0x3a2948(0x179)+_0x58fb12[_0x3a2948(0x16c)]+_0x3a2948(0x15b));return executeSdkSql(_0x32051e[_0x3a2948(0x182)],normalizeScalarParams(_0x32051e['params']));}if(_0x32051e['kind']===_0x3a2948(0x167)){const _0x195d35=_0x32051e['scriptName']||_0x32051e['bffCode']||(_0x32051e[_0x3a2948(0x165)]==null?'':String(_0x32051e[_0x3a2948(0x165)]));if(!_0x195d35)throw CliErrors['validation'](_0x3a2948(0x179)+_0x58fb12['cliPath']+_0x3a2948(0x164));return executeSdkBff(_0x195d35,_0x32051e[_0x3a2948(0x13e)]);}throw CliErrors[_0x3a2948(0x171)](_0x3a2948(0x170)+_0x32051e[_0x3a2948(0x180)]);}async function resolveDatasetCode(_0x47b630,_0x3c8dc0,_0x4ab802){const _0x3c6d70=a62_0x4cc8;if(_0x47b630['datasetCode'])return _0x47b630[_0x3c6d70(0x13b)];if(!_0x47b630[_0x3c6d70(0x15c)])throw CliErrors[_0x3c6d70(0x171)](_0x3c6d70(0x179)+_0x3c8dc0[_0x3c6d70(0x16c)]+_0x3c6d70(0x146));const _0x2ba232=await listDatasets(_0x4ab802[_0x3c6d70(0x16d)]),_0x1980ea=_0x2ba232[_0x3c6d70(0x16e)](_0x4668d9=>_0x4668d9['dbtableConfig']?.[_0x3c6d70(0x131)]===_0x47b630[_0x3c6d70(0x15c)]);if(!_0x1980ea?.[_0x3c6d70(0x172)])throw CliErrors[_0x3c6d70(0x171)](_0x3c6d70(0x178)+_0x47b630[_0x3c6d70(0x15c)]+_0x3c6d70(0x17c)+_0x4ab802[_0x3c6d70(0x16d)]+'.',_0x3c6d70(0x123));return _0x1980ea[_0x3c6d70(0x172)];}function applyAppBinding(_0x4a38de,_0x525516,_0x25ed73){const _0x2bbd1b=a62_0x4cc8,_0x40bb32=_0x525516[_0x2bbd1b(0x17d)][_0x2bbd1b(0x127)];if(!_0x40bb32)return;const _0x485cc2=_0x4a38de[_0x2bbd1b(0x17f)][_0x40bb32];if(!_0x485cc2)throw CliErrors[_0x2bbd1b(0x171)]('Unknown\x20appRef\x20\x22'+_0x40bb32+_0x2bbd1b(0x135)+_0x525516[_0x2bbd1b(0x16c)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0xd817e=_0x485cc2[_0x2bbd1b(0x16f)]||_0x485cc2[_0x2bbd1b(0x16d)];_0xd817e&&!hasText(_0x25ed73['appcode'])&&(_0x25ed73[_0x2bbd1b(0x16f)]=_0xd817e),_0x485cc2[_0x2bbd1b(0x12e)]&&!hasText(_0x25ed73[_0x2bbd1b(0x12e)])&&!hasText(_0x25ed73[_0x2bbd1b(0x16f)])&&(_0x25ed73['app']=_0x485cc2[_0x2bbd1b(0x12e)]),_0x485cc2[_0x2bbd1b(0x12c)]&&!hasText(_0x25ed73[_0x2bbd1b(0x12c)])&&(_0x25ed73[_0x2bbd1b(0x12c)]=_0x485cc2[_0x2bbd1b(0x12c)]);}function renderDynamicCommandHelp(_0x5bc849){const _0x263e92=a62_0x4cc8,_0x3b9f91=[_0x263e92(0x124),_0x263e92(0x15d)+_0x5bc849['target'][_0x263e92(0x180)],_0x263e92(0x173)+_0x5bc849[_0x263e92(0x17d)][_0x263e92(0x138)]];if(_0x5bc849[_0x263e92(0x17d)]['datasetCode'])_0x3b9f91[_0x263e92(0x13f)](_0x263e92(0x130)+_0x5bc849['target'][_0x263e92(0x13b)]);if(_0x5bc849['target']['datatable'])_0x3b9f91['push'](_0x263e92(0x174)+_0x5bc849[_0x263e92(0x17d)][_0x263e92(0x15c)]);if(_0x5bc849[_0x263e92(0x17d)][_0x263e92(0x182)])_0x3b9f91[_0x263e92(0x13f)](_0x263e92(0x186)+_0x5bc849[_0x263e92(0x17d)][_0x263e92(0x182)]);if(_0x5bc849[_0x263e92(0x17d)]['scriptName'])_0x3b9f91[_0x263e92(0x13f)]('\x20\x20\x20\x20functionName:\x20'+_0x5bc849[_0x263e92(0x17d)][_0x263e92(0x14d)]);if(_0x5bc849[_0x263e92(0x181)][_0x263e92(0x16b)]>0x0){_0x3b9f91[_0x263e92(0x13f)]('','\x20\x20MAP\x20TO');for(const _0x13d8b1 of _0x5bc849[_0x263e92(0x181)]){_0x3b9f91[_0x263e92(0x13f)](_0x263e92(0x157)+(_0x13d8b1[_0x263e92(0x141)]||_0x263e92(0x153))+'\x20->\x20'+_0x13d8b1['target']+(_0x13d8b1[_0x263e92(0x189)]?'.'+_0x13d8b1[_0x263e92(0x189)]:''));}}return _0x3b9f91[_0x263e92(0x128)]('\x0a');}function a62_0x37f4(){const _0x2e85f9=['tree','Preview\x20dynamic\x20service\x20command:\x20','command','fullPath','name','datasetCode','flatMap','Run\x20service\x20command\x20','params','push','5991293SoOUyS','source','boolean','filter','Commands:','SERVICE_TREE','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','map','10oPrtBe','\x22.\x20','\x20service\x20detail\x20--service\x20','250338FlWDwY','scriptName','padEnd','string','enum','entries','remainingArgs','const','trim','some','description','\x20\x20\x20\x20','username','number','envName','\x20requires\x20target.sqlCode.','datatable','\x20\x20\x20\x20kind:\x20\x20\x20\x20','\x20completed\x20in\x20','json','slice','\x20<command>\x20[flags]','args','643475bRoFhr','\x20requires\x20target.functionName.','bffId','type','bff','read','normalizedManifest','258180OGKnST','length','cliPath','appCode','find','appcode','Unsupported\x20service\x20target\x20kind:\x20','validation','code','\x20\x20\x20\x20command:\x20','\x20\x20\x20\x20datatable:\x20','\x20\x20[','service','now','Cannot\x20resolve\x20datatable\x20\x22','Service\x20command\x20','default','758988bdtTUo','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','target','required','appBindings','kind','mapTo','sqlCode','bffCode','userId','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','loginName','25798030gUpDmw','operator','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20SERVICE\x20TREE\x20TARGET','commands','5969952bwlISk','appRef','join','8MgZvHH','risk','flags','env','28zYBLGC','app','startsWith','\x20\x20\x20\x20datasetCode:\x20','tableName','nickName','Use\x20`','userName','\x22\x20in\x20service\x20command\x20'];a62_0x37f4=function(){return _0x2e85f9;};return a62_0x37f4();}function targetPreview(_0x452b3f){const _0x4ba091=a62_0x4cc8;return{'kind':_0x452b3f[_0x4ba091(0x180)],'command':_0x452b3f[_0x4ba091(0x138)],'appRef':_0x452b3f[_0x4ba091(0x127)],'datasetCode':_0x452b3f[_0x4ba091(0x13b)],'datatable':_0x452b3f[_0x4ba091(0x15c)],'sqlCode':_0x452b3f['sqlCode'],'bffCode':_0x452b3f[_0x4ba091(0x183)],'bffId':_0x452b3f[_0x4ba091(0x165)],'functionName':_0x452b3f[_0x4ba091(0x14d)]};}function normalizeScalarParams(_0x334cf4){const _0x3d53aa=a62_0x4cc8;return Object['fromEntries'](Object[_0x3d53aa(0x151)](_0x334cf4)['filter'](([,_0x320596])=>typeof _0x320596===_0x3d53aa(0x14f)||typeof _0x320596===_0x3d53aa(0x159)));}function hasText(_0x323612){const _0x104d16=a62_0x4cc8;return typeof _0x323612==='string'&&_0x323612[_0x104d16(0x154)]()[_0x104d16(0x16b)]>0x0;}function isPrimitiveFlagDefault(_0x2f2130){const _0x4786c3=a62_0x4cc8;return _0x2f2130===undefined||typeof _0x2f2130==='string'||typeof _0x2f2130==='number'||typeof _0x2f2130===_0x4786c3(0x142);}
1
+ (function(_0x28495e,_0x507116){const _0x31c1f9=a62_0xb4f4,_0x2d4427=_0x28495e();while(!![]){try{const _0x5d93ec=-parseInt(_0x31c1f9(0x1f6))/0x1+-parseInt(_0x31c1f9(0x1f3))/0x2*(parseInt(_0x31c1f9(0x1c1))/0x3)+-parseInt(_0x31c1f9(0x204))/0x4*(-parseInt(_0x31c1f9(0x1f5))/0x5)+-parseInt(_0x31c1f9(0x1e6))/0x6+parseInt(_0x31c1f9(0x1ec))/0x7*(-parseInt(_0x31c1f9(0x201))/0x8)+parseInt(_0x31c1f9(0x1b0))/0x9+parseInt(_0x31c1f9(0x1e2))/0xa;if(_0x5d93ec===_0x507116)break;else _0x2d4427['push'](_0x2d4427['shift']());}catch(_0x45e1e6){_0x2d4427['push'](_0x2d4427['shift']());}}}(a62_0x4b7c,0x23993));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(_0x9103bd,_0x12df80){const _0x32d6b5=a62_0xb4f4,_0x37f879=listLocalServiceTrees();let _0x36ac08;for(const _0x154cf0 of _0x37f879){const _0x1f64cd=matchServiceTreeCommand(_0x154cf0,_0x9103bd);if(!_0x1f64cd)continue;(!_0x36ac08||_0x1f64cd[_0x32d6b5(0x1ff)][_0x32d6b5(0x1ef)][_0x32d6b5(0x1da)]>_0x36ac08[_0x32d6b5(0x1ff)][_0x32d6b5(0x1ef)][_0x32d6b5(0x1da)])&&(_0x36ac08={'tree':_0x154cf0,'command':_0x1f64cd[_0x32d6b5(0x1ff)],'remainingArgs':_0x1f64cd['remainingArgs']});}if(!_0x36ac08)return undefined;const _0x386587={..._0x12df80};return applyAppBinding(_0x36ac08['tree'],_0x36ac08['command'],_0x386587),{'definition':buildDynamicCommandDefinition(_0x36ac08[_0x32d6b5(0x202)],_0x36ac08['command']),'args':_0x36ac08[_0x32d6b5(0x1d5)],'flags':_0x386587,'tree':_0x36ac08[_0x32d6b5(0x202)],'command':_0x36ac08[_0x32d6b5(0x1ff)]};}export function generateDynamicServiceHelp(_0x5b8dfa){const _0x18761b=a62_0xb4f4,_0x2d80d6=listLocalServiceTrees()[_0x18761b(0x1c4)](_0x12fea4=>_0x12fea4[_0x18761b(0x1ba)][_0x18761b(0x1b4)]===_0x5b8dfa);if(!_0x2d80d6)return undefined;const _0x2b1152=[CLI_BIN_NAME+'\x20'+_0x5b8dfa+'\x20<command>\x20[flags]','',_0x2d80d6['service'][_0x18761b(0x1b9)]||_0x5b8dfa,_0x2d80d6[_0x18761b(0x1ba)][_0x18761b(0x1fa)]?'\x20\x20'+_0x2d80d6[_0x18761b(0x1ba)][_0x18761b(0x1fa)]:'','',_0x18761b(0x1cb),..._0x2d80d6[_0x18761b(0x1be)]['map'](_0x421472=>{const _0x4024c3=_0x18761b,_0x533109=_0x421472['fullPath'][_0x4024c3(0x1e1)](0x1)[_0x4024c3(0x1c2)]('\x20'),_0x155110=_0x421472[_0x4024c3(0x1e5)]===_0x4024c3(0x1f9)?'':'\x20['+_0x421472[_0x4024c3(0x1e5)]+']';return'\x20\x20'+_0x533109[_0x4024c3(0x1bf)](0x18)+'\x20'+(_0x421472[_0x4024c3(0x1fa)]||'')+_0x155110;}),'','Use\x20`'+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x5b8dfa+_0x18761b(0x1fd)][_0x18761b(0x200)](Boolean);return _0x2b1152[_0x18761b(0x1c2)]('\x0a');}export function listDynamicServiceEntries(){const _0x52cc95=a62_0xb4f4;return listLocalServices()[_0x52cc95(0x1a4)](_0x49f630=>{const _0x834a73=_0x52cc95,_0x566964=_0x49f630['normalizedManifest'];return{'service':_0x566964['service']['code'],'label':_0x566964[_0x834a73(0x1ba)]['name']||_0x566964[_0x834a73(0x1ba)]['code'],'commands':_0x566964[_0x834a73(0x1be)][_0x834a73(0x1a4)](_0x3a09e1=>({'command':dynamicCommandName(_0x3a09e1),'description':_0x3a09e1['description']||'Run\x20service\x20command\x20'+_0x3a09e1[_0x834a73(0x1d4)],'tag':riskTag(_0x3a09e1['risk'])}))};});}export function getDynamicServiceEntry(_0x174aa8){const _0x68814f=a62_0xb4f4;return listDynamicServiceEntries()[_0x68814f(0x1c4)](_0x203503=>_0x203503[_0x68814f(0x1ba)]===_0x174aa8);}export function listDynamicServiceDefinitions(_0x12450e){const _0x2618fb=a62_0xb4f4;return listLocalServiceTrees()[_0x2618fb(0x200)](_0x31f337=>!_0x12450e||_0x31f337[_0x2618fb(0x1ba)][_0x2618fb(0x1b4)]===_0x12450e)[_0x2618fb(0x209)](_0x369ad0=>_0x369ad0[_0x2618fb(0x1be)][_0x2618fb(0x1a4)](_0x409e61=>buildDynamicCommandDefinition(_0x369ad0,_0x409e61)));}export function getDynamicServiceDefinitions(_0x17beb9){const _0x1f1215=a62_0xb4f4,_0xb154e7=listDynamicServiceDefinitions(_0x17beb9);return _0xb154e7[_0x1f1215(0x1da)]>0x0?_0xb154e7:undefined;}export function findDynamicServiceDefinition(_0x4027d3,_0xbbbe2){const _0xe64701=a62_0xb4f4;return listDynamicServiceDefinitions(_0x4027d3)[_0xe64701(0x1c4)](_0x13fd72=>_0x13fd72[_0xe64701(0x1ff)]===_0xbbbe2);}export function buildDynamicCommandDefinition(_0xd998c0,_0x113552){const _0xe56bc6=a62_0xb4f4;return{'service':_0xd998c0['service'][_0xe56bc6(0x1b4)],'command':dynamicCommandName(_0x113552),'description':_0x113552[_0xe56bc6(0x1fa)]||_0xe56bc6(0x1f7)+_0x113552['cliPath'],'risk':_0x113552[_0xe56bc6(0x1e5)],..._0x113552[_0xe56bc6(0x1e5)]===_0xe56bc6(0x1f9)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x113552)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x113552['args'][_0xe56bc6(0x1a4)](_0x2e10b5=>({'name':_0x2e10b5[_0xe56bc6(0x1b9)],'description':_0x2e10b5['description']||_0x2e10b5[_0xe56bc6(0x1b9)],'required':_0x2e10b5['required']})),'flags':_0x113552['flags']['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x113552),async 'dryRun'(_0xb44457){const _0x1a78da=_0xe56bc6,_0x330319=await compilePlan(_0x113552,_0xb44457);return{'method':_0x1a78da(0x1f1),'url':_0x113552[_0x1a78da(0x1d4)],'body':{'target':targetPreview(_0x330319),'params':_0x330319[_0x1a78da(0x1c3)]},'description':_0x1a78da(0x1d1)+_0x113552[_0x1a78da(0x1d4)]};},async 'execute'(_0x4c14c6){const _0x48c1af=_0xe56bc6,_0x176675=await compilePlan(_0x113552,_0x4c14c6),_0x4cb385=Date[_0x48c1af(0x1e4)](),_0x18ead7=await executePlan(_0x176675,_0x113552,_0x4c14c6),_0x2766d8=Date[_0x48c1af(0x1e4)]()-_0x4cb385;return{'ok':!![],'data':{'service':_0xd998c0[_0x48c1af(0x1ba)],'command':_0x113552[_0x48c1af(0x1d4)],'target':targetPreview(_0x176675),'result':_0x18ead7,'elapsed':_0x2766d8},'message':'Service\x20command\x20'+_0x113552['cliPath']+_0x48c1af(0x1a9)+_0x2766d8+'ms'};}};}function buildDynamicConfirmationDescription(_0x45de03){const _0x34e618=a62_0xb4f4,_0x3c70ae=_0x45de03[_0x34e618(0x1fa)]||_0x45de03[_0x34e618(0x1d4)],_0x550ab4=_0x45de03[_0x34e618(0x1e5)]===_0x34e618(0x1db)?_0x34e618(0x1c9):_0x34e618(0x1c5);return'This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22'+_0x3c70ae+'\x22.\x20'+_0x550ab4;}function dynamicCommandName(_0x4f4aa1){const _0x19afeb=a62_0xb4f4;return _0x4f4aa1[_0x19afeb(0x1ef)][_0x19afeb(0x1e1)](0x1)['join']('\x20');}function riskTag(_0x1d6fdf){const _0x427473=a62_0xb4f4;return _0x1d6fdf===_0x427473(0x1f9)?'':_0x427473(0x1ca)+_0x1d6fdf+']';}function a62_0x4b7c(){const _0x1af967=['Preview\x20dynamic\x20service\x20command:\x20','\x20\x20\x20\x20kind:\x20\x20\x20\x20','target','cliPath','remainingArgs','trim','push','envName','\x20\x20MAP\x20TO','length','high-risk-write','datasetCode','source','datatable','const','kind','slice','4351070wwYvNY','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','now','risk','428886jXvdIz','nickName','\x20\x20\x20\x20functionName:\x20','entries','operator','bff','3647aJhTFA','tenantCode','appcode','fullPath','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','SERVICE_TREE','\x20requires\x20target.sqlCode.','274580yhoiHi','ctx.','995qKpuuQ','185302DDhdSw','Run\x20service\x20command\x20','bffCode','read','description','loginName','validation','`\x20to\x20inspect\x20the\x20manifest.','bffId','command','filter','3032PHSaZp','tree','app','1556eQxAah','appCode','userId','rawFlags','Service\x20command\x20','flatMap','Unsupported\x20service\x20target\x20kind:\x20','string','map','scriptName','\x22\x20in\x20service\x20command\x20','type','default','\x20completed\x20in\x20','\x20\x20\x20\x20datatable:\x20','fromEntries','\x20->\x20','sql','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','data','2023425GAKxgB','enum','some','\x20\x20\x20\x20command:\x20','code','sqlCode','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','tableName','boolean','name','service','Unknown\x20appRef\x20\x22','userName','env','commands','padEnd','context.','3mlXJdB','join','params','find','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','json','mapTo','required','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','\x20\x20[','Commands:','\x20\x20SERVICE\x20TREE\x20TARGET','appBindings','number','nickname','cliName'];a62_0x4b7c=function(){return _0x1af967;};return a62_0x4b7c();}function flagToCommandFlag(_0x26a904){const _0x3be176=a62_0xb4f4;return{'name':_0x26a904[_0x3be176(0x1d0)],'type':_0x26a904['type']===_0x3be176(0x1c6)?_0x3be176(0x1a3):_0x26a904[_0x3be176(0x1a7)],'description':_0x26a904[_0x3be176(0x1fa)]||_0x26a904[_0x3be176(0x1b9)],'required':_0x26a904[_0x3be176(0x1c8)],'default':isPrimitiveFlagDefault(_0x26a904[_0x3be176(0x1a8)])?_0x26a904[_0x3be176(0x1a8)]:undefined,'enum':_0x26a904[_0x3be176(0x1b1)]};}async function compilePlan(_0x2d2359,_0x2dad0c){const _0x2f52fa=a62_0xb4f4;return compileServiceTreeCommand(_0x2d2359,{'flags':_0x2dad0c[_0x2f52fa(0x207)],'args':_0x2dad0c['args'],'context':await buildServiceContext(_0x2d2359,_0x2dad0c)});}async function buildServiceContext(_0x59b8c9,_0x4c6023){const _0x549e90=a62_0xb4f4,_0x29639b={'appCode':_0x4c6023[_0x549e90(0x205)],'env':_0x4c6023[_0x549e90(0x1d8)],'envName':_0x4c6023[_0x549e90(0x1d8)]};if(!usesRuntimeContext(_0x59b8c9))return _0x29639b;const _0x31e48d=await getLoginUserInfo(),_0x324810=pickFirst(_0x31e48d[_0x549e90(0x206)],_0x31e48d['id']);return{..._0x29639b,'user':_0x31e48d,'userId':_0x324810,'id':_0x31e48d['id'],'username':pickFirst(_0x31e48d['username'],_0x31e48d[_0x549e90(0x1bc)],_0x31e48d[_0x549e90(0x1fb)]),'userName':_0x31e48d[_0x549e90(0x1bc)],'nickname':pickFirst(_0x31e48d[_0x549e90(0x1cf)],_0x31e48d['nickName']),'nickName':_0x31e48d[_0x549e90(0x1e7)],'tenantCode':_0x31e48d[_0x549e90(0x1ed)],'employeeId':_0x31e48d['employeeId']};}function usesRuntimeContext(_0x102981){const _0x3cfbb2=a62_0xb4f4;return _0x102981['mapTo'][_0x3cfbb2(0x1b2)](_0x1d90b8=>typeof _0x1d90b8[_0x3cfbb2(0x1dd)]===_0x3cfbb2(0x1a3)&&(_0x1d90b8[_0x3cfbb2(0x1dd)]['startsWith'](_0x3cfbb2(0x1c0))||_0x1d90b8[_0x3cfbb2(0x1dd)]['startsWith'](_0x3cfbb2(0x1f4))));}function a62_0xb4f4(_0x3e1c64,_0x72fd97){_0x3e1c64=_0x3e1c64-0x1a2;const _0x4b7cd0=a62_0x4b7c();let _0xb4f4e8=_0x4b7cd0[_0x3e1c64];return _0xb4f4e8;}function pickFirst(..._0x3465bf){return _0x3465bf['find'](_0x37b213=>_0x37b213!==undefined&&_0x37b213!==null);}async function executePlan(_0x3d27f9,_0x39ff5a,_0x40acec){const _0x21ba41=a62_0xb4f4;if(_0x3d27f9['kind']===_0x21ba41(0x1af)){const _0x1562d6=await resolveDatasetCode(_0x3d27f9,_0x39ff5a,_0x40acec);return executeData(_0x1562d6,_0x3d27f9['command'],_0x3d27f9[_0x21ba41(0x1c3)]);}if(_0x3d27f9[_0x21ba41(0x1e0)]===_0x21ba41(0x1ad)){if(!_0x3d27f9['sqlCode'])throw CliErrors[_0x21ba41(0x1fc)](_0x21ba41(0x208)+_0x39ff5a[_0x21ba41(0x1d4)]+_0x21ba41(0x1f2));return executeSdkSql(_0x3d27f9[_0x21ba41(0x1b5)],normalizeScalarParams(_0x3d27f9['params']));}if(_0x3d27f9[_0x21ba41(0x1e0)]===_0x21ba41(0x1eb)){const _0x128ad7=_0x3d27f9['scriptName']||_0x3d27f9[_0x21ba41(0x1f8)]||(_0x3d27f9['bffId']==null?'':String(_0x3d27f9[_0x21ba41(0x1fe)]));if(!_0x128ad7)throw CliErrors[_0x21ba41(0x1fc)](_0x21ba41(0x208)+_0x39ff5a['cliPath']+'\x20requires\x20target.functionName.');return executeSdkBff(_0x128ad7,_0x3d27f9[_0x21ba41(0x1c3)]);}throw CliErrors[_0x21ba41(0x1fc)](_0x21ba41(0x1a2)+_0x3d27f9[_0x21ba41(0x1e0)]);}async function resolveDatasetCode(_0x29d863,_0x165554,_0x556439){const _0x1159fb=a62_0xb4f4;if(_0x29d863['datasetCode'])return _0x29d863[_0x1159fb(0x1dc)];if(!_0x29d863['datatable'])throw CliErrors[_0x1159fb(0x1fc)](_0x1159fb(0x208)+_0x165554[_0x1159fb(0x1d4)]+_0x1159fb(0x1e3));const _0x1621b8=await listDatasets(_0x556439[_0x1159fb(0x205)]),_0x48cb97=_0x1621b8['find'](_0x738645=>_0x738645['dbtableConfig']?.[_0x1159fb(0x1b7)]===_0x29d863['datatable']);if(!_0x48cb97?.[_0x1159fb(0x1b4)])throw CliErrors[_0x1159fb(0x1fc)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x29d863['datatable']+_0x1159fb(0x1b6)+_0x556439['appCode']+'.',_0x1159fb(0x1f0));return _0x48cb97['code'];}function applyAppBinding(_0x68bbe3,_0x2925b7,_0x821e0c){const _0x17687a=a62_0xb4f4,_0x1bc5ef=_0x2925b7[_0x17687a(0x1d3)]['appRef'];if(!_0x1bc5ef)return;const _0x344790=_0x68bbe3[_0x17687a(0x1cd)][_0x1bc5ef];if(!_0x344790)throw CliErrors[_0x17687a(0x1fc)](_0x17687a(0x1bb)+_0x1bc5ef+_0x17687a(0x1a6)+_0x2925b7['cliPath']+'.',_0x17687a(0x1ae));const _0x2c7f99=_0x344790[_0x17687a(0x1ee)]||_0x344790[_0x17687a(0x205)];_0x2c7f99&&!hasText(_0x821e0c[_0x17687a(0x1ee)])&&(_0x821e0c[_0x17687a(0x1ee)]=_0x2c7f99),_0x344790['app']&&!hasText(_0x821e0c[_0x17687a(0x203)])&&!hasText(_0x821e0c[_0x17687a(0x1ee)])&&(_0x821e0c[_0x17687a(0x203)]=_0x344790[_0x17687a(0x203)]),_0x344790['env']&&!hasText(_0x821e0c[_0x17687a(0x1bd)])&&(_0x821e0c['env']=_0x344790[_0x17687a(0x1bd)]);}function renderDynamicCommandHelp(_0x57bbeb){const _0x4578bb=a62_0xb4f4,_0x3dba6d=[_0x4578bb(0x1cc),_0x4578bb(0x1d2)+_0x57bbeb['target'][_0x4578bb(0x1e0)],_0x4578bb(0x1b3)+_0x57bbeb[_0x4578bb(0x1d3)][_0x4578bb(0x1ff)]];if(_0x57bbeb[_0x4578bb(0x1d3)][_0x4578bb(0x1dc)])_0x3dba6d['push']('\x20\x20\x20\x20datasetCode:\x20'+_0x57bbeb['target']['datasetCode']);if(_0x57bbeb[_0x4578bb(0x1d3)][_0x4578bb(0x1de)])_0x3dba6d[_0x4578bb(0x1d7)](_0x4578bb(0x1aa)+_0x57bbeb['target']['datatable']);if(_0x57bbeb[_0x4578bb(0x1d3)]['sqlCode'])_0x3dba6d['push']('\x20\x20\x20\x20sqlCode:\x20'+_0x57bbeb['target'][_0x4578bb(0x1b5)]);if(_0x57bbeb[_0x4578bb(0x1d3)][_0x4578bb(0x1a5)])_0x3dba6d[_0x4578bb(0x1d7)](_0x4578bb(0x1e8)+_0x57bbeb[_0x4578bb(0x1d3)][_0x4578bb(0x1a5)]);if(_0x57bbeb[_0x4578bb(0x1c7)]['length']>0x0){_0x3dba6d[_0x4578bb(0x1d7)]('',_0x4578bb(0x1d9));for(const _0x431eee of _0x57bbeb[_0x4578bb(0x1c7)]){_0x3dba6d[_0x4578bb(0x1d7)]('\x20\x20\x20\x20'+(_0x431eee[_0x4578bb(0x1dd)]||_0x4578bb(0x1df))+_0x4578bb(0x1ac)+_0x431eee[_0x4578bb(0x1d3)]+(_0x431eee[_0x4578bb(0x1ea)]?'.'+_0x431eee[_0x4578bb(0x1ea)]:''));}}return _0x3dba6d[_0x4578bb(0x1c2)]('\x0a');}function targetPreview(_0x13b086){const _0x190a48=a62_0xb4f4;return{'kind':_0x13b086['kind'],'command':_0x13b086[_0x190a48(0x1ff)],'appRef':_0x13b086['appRef'],'datasetCode':_0x13b086[_0x190a48(0x1dc)],'datatable':_0x13b086[_0x190a48(0x1de)],'sqlCode':_0x13b086[_0x190a48(0x1b5)],'bffCode':_0x13b086['bffCode'],'bffId':_0x13b086[_0x190a48(0x1fe)],'functionName':_0x13b086[_0x190a48(0x1a5)]};}function normalizeScalarParams(_0x454006){const _0x5de9af=a62_0xb4f4;return Object[_0x5de9af(0x1ab)](Object[_0x5de9af(0x1e9)](_0x454006)[_0x5de9af(0x200)](([,_0x5ba127])=>typeof _0x5ba127===_0x5de9af(0x1a3)||typeof _0x5ba127===_0x5de9af(0x1ce)));}function hasText(_0x11af4b){const _0x5d459b=a62_0xb4f4;return typeof _0x11af4b==='string'&&_0x11af4b[_0x5d459b(0x1d6)]()[_0x5d459b(0x1da)]>0x0;}function isPrimitiveFlagDefault(_0x3ae72a){const _0x1ca6f0=a62_0xb4f4;return _0x3ae72a===undefined||typeof _0x3ae72a===_0x1ca6f0(0x1a3)||typeof _0x3ae72a===_0x1ca6f0(0x1ce)||typeof _0x3ae72a===_0x1ca6f0(0x1b8);}
@@ -1 +1 @@
1
- function a63_0x5d8b(_0xdf2350,_0x2b7824){_0xdf2350=_0xdf2350-0xb0;const _0x2cfe28=a63_0x2cfe();let _0x5d8b4=_0x2cfe28[_0xdf2350];return _0x5d8b4;}(function(_0x13e45c,_0x17b425){const _0x30c15e=a63_0x5d8b,_0x35dfc7=_0x13e45c();while(!![]){try{const _0xa6f3c5=-parseInt(_0x30c15e(0xba))/0x1+parseInt(_0x30c15e(0xb7))/0x2+parseInt(_0x30c15e(0xc8))/0x3+parseInt(_0x30c15e(0xd2))/0x4*(parseInt(_0x30c15e(0xb1))/0x5)+parseInt(_0x30c15e(0xb5))/0x6+parseInt(_0x30c15e(0xd5))/0x7+-parseInt(_0x30c15e(0xb0))/0x8;if(_0xa6f3c5===_0x17b425)break;else _0x35dfc7['push'](_0x35dfc7['shift']());}catch(_0x239dfb){_0x35dfc7['push'](_0x35dfc7['shift']());}}}(a63_0x2cfe,0x52037));export function adaptServiceTreeManifestForLegacyFramework(_0x49119a){const _0x3325ca=a63_0x5d8b,_0x235061=cloneJsonValue(_0x49119a),_0x21cbf1=[];if(!isObjectRecord(_0x235061))return{'manifest':_0x235061,'errors':_0x21cbf1};return Array['isArray'](_0x235061[_0x3325ca(0xbe)])&&_0x235061[_0x3325ca(0xbe)][_0x3325ca(0xc6)]((_0x31ce29,_0x2b5785)=>{const _0x2b72e4=_0x3325ca;if(!isObjectRecord(_0x31ce29))return;adaptBffTarget(_0x31ce29[_0x2b72e4(0xd3)],_0x2b72e4(0xb6)+_0x2b5785+_0x2b72e4(0xcb),_0x21cbf1);}),adaptResources(_0x235061[_0x3325ca(0xc3)],_0x3325ca(0xc2),_0x21cbf1),{'manifest':_0x235061,'errors':_0x21cbf1};}export function toPublicServiceTreeTarget(_0x5dba48){const _0x13e8f5=a63_0x5d8b,{scriptName:_0xbdd8ac,..._0x4e2502}=_0x5dba48;return typeof _0xbdd8ac===_0x13e8f5(0xbd)&&_0xbdd8ac['trim']()&&(_0x4e2502[_0x13e8f5(0xca)]=_0xbdd8ac),_0x4e2502;}export function toPublicNormalizedServiceTree(_0x7c6435){const _0x2bb4d4=a63_0x5d8b;return{..._0x7c6435,'commands':_0x7c6435[_0x2bb4d4(0xbe)][_0x2bb4d4(0xc1)](_0x5dad5c=>({..._0x5dad5c,'target':toPublicServiceTreeTarget(_0x5dad5c[_0x2bb4d4(0xd3)])}))};}function adaptResources(_0x436750,_0x1ba6c1,_0x5e467a){const _0x2e1de0=a63_0x5d8b;if(!isObjectRecord(_0x436750))return;for(const [_0x424d70,_0x102104]of Object[_0x2e1de0(0xb9)](_0x436750)){if(!isObjectRecord(_0x102104))continue;const _0x1e20ce=_0x1ba6c1+'.'+_0x424d70;if(isObjectRecord(_0x102104['actions']))for(const [_0x108161,_0x2ea5c7]of Object[_0x2e1de0(0xb9)](_0x102104[_0x2e1de0(0xc0)])){if(!isObjectRecord(_0x2ea5c7))continue;const _0x1f7a2f=_0x1e20ce+_0x2e1de0(0xd0)+_0x108161,_0x3f7461=isObjectRecord(_0x2ea5c7[_0x2e1de0(0xd3)])&&_0x2ea5c7['target']['kind']===_0x2e1de0(0xc5);adaptBffTarget(_0x2ea5c7[_0x2e1de0(0xd3)],_0x1f7a2f+'.target',_0x5e467a),(_0x3f7461||isBffAction(_0x2ea5c7))&&adaptFunctionNameField(_0x2ea5c7,_0x1f7a2f,_0x5e467a);}adaptResources(_0x102104[_0x2e1de0(0xc3)],_0x1e20ce+_0x2e1de0(0xb2),_0x5e467a);}}function a63_0x2cfe(){const _0xfe837e=['entries','345578PKjlgx','hasOwnProperty','push','string','commands','prototype','actions','map','$.resources','resources','functionName\x20must\x20be\x20a\x20non-empty\x20string.','bff','forEach','action','651117mAvjxA','isArray','functionName','].target','trim','bff.exec','.scriptName','fromEntries','.actions.','error','45072WDpoHk','target','scriptName','89453WdhzqG','1446008EjWXqQ','140IVBILO','.resources','call','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','1747062tSQwOC','$.commands[','51514cBlRfj','object'];a63_0x2cfe=function(){return _0xfe837e;};return a63_0x2cfe();}function adaptBffTarget(_0x45e822,_0x5bc2d8,_0x1871af){if(!isObjectRecord(_0x45e822)||_0x45e822['kind']!=='bff')return;adaptFunctionNameField(_0x45e822,_0x5bc2d8,_0x1871af);}function adaptFunctionNameField(_0x209d93,_0x594022,_0x5607b5){const _0x19baaf=a63_0x5d8b;Object[_0x19baaf(0xbf)]['hasOwnProperty'][_0x19baaf(0xb3)](_0x209d93,'scriptName')&&_0x5607b5['push']({'level':_0x19baaf(0xd1),'path':_0x594022+_0x19baaf(0xce),'message':_0x19baaf(0xb4)});if(Object[_0x19baaf(0xbf)][_0x19baaf(0xbb)][_0x19baaf(0xb3)](_0x209d93,_0x19baaf(0xca))){if(typeof _0x209d93[_0x19baaf(0xca)]!==_0x19baaf(0xbd)||!_0x209d93[_0x19baaf(0xca)][_0x19baaf(0xcc)]()){_0x5607b5[_0x19baaf(0xbc)]({'level':_0x19baaf(0xd1),'path':_0x594022+'.functionName','message':_0x19baaf(0xc4)}),delete _0x209d93['functionName'];return;}_0x209d93[_0x19baaf(0xd4)]=_0x209d93[_0x19baaf(0xca)],delete _0x209d93[_0x19baaf(0xca)];}}function isBffAction(_0x18afc4){const _0x19e2d4=a63_0x5d8b;return _0x18afc4['kind']===_0x19e2d4(0xc5)||_0x18afc4[_0x19e2d4(0xc7)]===_0x19e2d4(0xcd)||_0x18afc4[_0x19e2d4(0xd3)]==='bff.exec';}function cloneJsonValue(_0x1b6226){const _0x473cd2=a63_0x5d8b;if(Array['isArray'](_0x1b6226))return _0x1b6226[_0x473cd2(0xc1)](_0x23fc99=>cloneJsonValue(_0x23fc99));if(isObjectRecord(_0x1b6226))return Object[_0x473cd2(0xcf)](Object[_0x473cd2(0xb9)](_0x1b6226)['map'](([_0x2464b9,_0x44adf5])=>[_0x2464b9,cloneJsonValue(_0x44adf5)]));return _0x1b6226;}function isObjectRecord(_0x484b41){const _0x1e3b0c=a63_0x5d8b;return Boolean(_0x484b41)&&typeof _0x484b41===_0x1e3b0c(0xb8)&&!Array[_0x1e3b0c(0xc9)](_0x484b41);}
1
+ (function(_0x225c06,_0x1444ff){const _0x5e0f72=a63_0x2891,_0x2e1e1f=_0x225c06();while(!![]){try{const _0xd806b0=parseInt(_0x5e0f72(0x1a2))/0x1+-parseInt(_0x5e0f72(0x1ad))/0x2*(parseInt(_0x5e0f72(0x198))/0x3)+parseInt(_0x5e0f72(0x1a0))/0x4*(-parseInt(_0x5e0f72(0x1b7))/0x5)+parseInt(_0x5e0f72(0x197))/0x6*(-parseInt(_0x5e0f72(0x1aa))/0x7)+-parseInt(_0x5e0f72(0x1b5))/0x8+parseInt(_0x5e0f72(0x1b1))/0x9+parseInt(_0x5e0f72(0x1af))/0xa;if(_0xd806b0===_0x1444ff)break;else _0x2e1e1f['push'](_0x2e1e1f['shift']());}catch(_0x152bc7){_0x2e1e1f['push'](_0x2e1e1f['shift']());}}}(a63_0x2f04,0x9de1d));export function adaptServiceTreeManifestForLegacyFramework(_0x3cc120){const _0x2b6a43=a63_0x2891,_0x1c2327=cloneJsonValue(_0x3cc120),_0x41803f=[];if(!isObjectRecord(_0x1c2327))return{'manifest':_0x1c2327,'errors':_0x41803f};return Array[_0x2b6a43(0x19c)](_0x1c2327['commands'])&&_0x1c2327[_0x2b6a43(0x19e)]['forEach']((_0x471ba7,_0x1b3352)=>{const _0x3614c3=_0x2b6a43;if(!isObjectRecord(_0x471ba7))return;adaptBffTarget(_0x471ba7[_0x3614c3(0x19b)],_0x3614c3(0x1a4)+_0x1b3352+'].target',_0x41803f);}),adaptResources(_0x1c2327[_0x2b6a43(0x19f)],_0x2b6a43(0x1ae),_0x41803f),{'manifest':_0x1c2327,'errors':_0x41803f};}export function toPublicServiceTreeTarget(_0x392e8d){const _0x5e9b40=a63_0x2891,{scriptName:_0x22d479,..._0x1b785c}=_0x392e8d;return typeof _0x22d479===_0x5e9b40(0x1b3)&&_0x22d479[_0x5e9b40(0x19d)]()&&(_0x1b785c['functionName']=_0x22d479),_0x1b785c;}export function toPublicNormalizedServiceTree(_0x245350){const _0xcf9274=a63_0x2891;return{..._0x245350,'commands':_0x245350[_0xcf9274(0x19e)][_0xcf9274(0x1b8)](_0x3a7d23=>({..._0x3a7d23,'target':toPublicServiceTreeTarget(_0x3a7d23[_0xcf9274(0x19b)])}))};}function a63_0x2f04(){const _0x9fcb0=['kind','1650wViLCt','3339861WHamSE','actions','entries','target','isArray','trim','commands','resources','4VwXWwd','action','1179402DmBAcd','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','$.commands[','functionName','.scriptName','bff.exec','fromEntries','push','23597oBLOeu','prototype','functionName\x20must\x20be\x20a\x20non-empty\x20string.','2zGKrJF','$.resources','6307560vvJfGC','hasOwnProperty','10905768vWUdvc','call','string','.target','247600pIxwXK','bff','1519815UbzZKb','map'];a63_0x2f04=function(){return _0x9fcb0;};return a63_0x2f04();}function adaptResources(_0x5dfd48,_0x1127ba,_0x43f264){const _0x55ed7c=a63_0x2891;if(!isObjectRecord(_0x5dfd48))return;for(const [_0x5eda59,_0x242bd1]of Object['entries'](_0x5dfd48)){if(!isObjectRecord(_0x242bd1))continue;const _0x36a17d=_0x1127ba+'.'+_0x5eda59;if(isObjectRecord(_0x242bd1['actions']))for(const [_0x4afcd5,_0x247e21]of Object[_0x55ed7c(0x19a)](_0x242bd1[_0x55ed7c(0x199)])){if(!isObjectRecord(_0x247e21))continue;const _0x54c5eb=_0x36a17d+'.actions.'+_0x4afcd5,_0x5121a8=isObjectRecord(_0x247e21[_0x55ed7c(0x19b)])&&_0x247e21['target'][_0x55ed7c(0x1b9)]===_0x55ed7c(0x1b6);adaptBffTarget(_0x247e21[_0x55ed7c(0x19b)],_0x54c5eb+_0x55ed7c(0x1b4),_0x43f264),(_0x5121a8||isBffAction(_0x247e21))&&adaptFunctionNameField(_0x247e21,_0x54c5eb,_0x43f264);}adaptResources(_0x242bd1['resources'],_0x36a17d+'.resources',_0x43f264);}}function a63_0x2891(_0x3750e2,_0x287559){_0x3750e2=_0x3750e2-0x197;const _0x2f0428=a63_0x2f04();let _0x2891b1=_0x2f0428[_0x3750e2];return _0x2891b1;}function adaptBffTarget(_0x3f1cee,_0xc93cb,_0x2f9b46){const _0x406946=a63_0x2891;if(!isObjectRecord(_0x3f1cee)||_0x3f1cee[_0x406946(0x1b9)]!==_0x406946(0x1b6))return;adaptFunctionNameField(_0x3f1cee,_0xc93cb,_0x2f9b46);}function adaptFunctionNameField(_0x5842f8,_0x444e13,_0x5cce81){const _0x24e452=a63_0x2891;Object[_0x24e452(0x1ab)][_0x24e452(0x1b0)][_0x24e452(0x1b2)](_0x5842f8,'scriptName')&&_0x5cce81[_0x24e452(0x1a9)]({'level':'error','path':_0x444e13+_0x24e452(0x1a6),'message':_0x24e452(0x1a3)});if(Object[_0x24e452(0x1ab)]['hasOwnProperty'][_0x24e452(0x1b2)](_0x5842f8,_0x24e452(0x1a5))){if(typeof _0x5842f8[_0x24e452(0x1a5)]!==_0x24e452(0x1b3)||!_0x5842f8['functionName'][_0x24e452(0x19d)]()){_0x5cce81['push']({'level':'error','path':_0x444e13+'.functionName','message':_0x24e452(0x1ac)}),delete _0x5842f8[_0x24e452(0x1a5)];return;}_0x5842f8['scriptName']=_0x5842f8[_0x24e452(0x1a5)],delete _0x5842f8[_0x24e452(0x1a5)];}}function isBffAction(_0x100841){const _0x46a73d=a63_0x2891;return _0x100841[_0x46a73d(0x1b9)]===_0x46a73d(0x1b6)||_0x100841[_0x46a73d(0x1a1)]===_0x46a73d(0x1a7)||_0x100841[_0x46a73d(0x19b)]===_0x46a73d(0x1a7);}function cloneJsonValue(_0x4b1d77){const _0x2dea34=a63_0x2891;if(Array[_0x2dea34(0x19c)](_0x4b1d77))return _0x4b1d77[_0x2dea34(0x1b8)](_0x87f238=>cloneJsonValue(_0x87f238));if(isObjectRecord(_0x4b1d77))return Object[_0x2dea34(0x1a8)](Object['entries'](_0x4b1d77)[_0x2dea34(0x1b8)](([_0x5ee251,_0x3c9a60])=>[_0x5ee251,cloneJsonValue(_0x3c9a60)]));return _0x4b1d77;}function isObjectRecord(_0x58cbe8){return Boolean(_0x58cbe8)&&typeof _0x58cbe8==='object'&&!Array['isArray'](_0x58cbe8);}
@@ -1 +1 @@
1
- const a64_0x3bfc0f=a64_0x4397;(function(_0xf91264,_0x3f7f27){const _0x9b5c37=a64_0x4397,_0x1e7231=_0xf91264();while(!![]){try{const _0x57bb7d=parseInt(_0x9b5c37(0x191))/0x1*(-parseInt(_0x9b5c37(0x18e))/0x2)+-parseInt(_0x9b5c37(0x198))/0x3*(parseInt(_0x9b5c37(0x196))/0x4)+-parseInt(_0x9b5c37(0x17f))/0x5+-parseInt(_0x9b5c37(0x195))/0x6+-parseInt(_0x9b5c37(0x16a))/0x7+parseInt(_0x9b5c37(0x150))/0x8+parseInt(_0x9b5c37(0x181))/0x9;if(_0x57bb7d===_0x3f7f27)break;else _0x1e7231['push'](_0x1e7231['shift']());}catch(_0x27df45){_0x1e7231['push'](_0x1e7231['shift']());}}}(a64_0x5b58,0xde139));function a64_0x5b58(){const _0xb18f0e=['List\x20locally\x20imported\x20Service\x20Tree\x20manifests','errors','target','serviceCode','hash','WRITE','warnings','\x20service\x20','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','lower\x20kebab-case\x20service\x20code','serviceCount','Updated','7651065VbbfnC','risk','43233759mSSFMT','description','updated','remove','read','\x20service(s).','flags','file','version','filePath','import','detail','Imported\x20','4362njjBNR','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.','commands','345MEseST','imported','write','Exported\x20service\x20','10297458WSoVRZ','8QgHJCK','replaced','380127mUhSSt','manifest','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','importedAt','6069000KdSseP','type','entry','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Local\x20service\x20not\x20found:\x20','Local\x20service\x20code,\x20for\x20example\x20crm','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','registryPath','registry','string','kind','name','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','str','Service\x20manifest\x20validation\x20passed.','cliPath','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','cliName','service','manifests','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.','export','entries','length','2803024DZKAvB','normalizedManifest','Removed\x20service\x20','validate','registryServiceCode','source','map','report','list'];a64_0x5b58=function(){return _0xb18f0e;};return a64_0x5b58();}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':a64_0x3bfc0f(0x188),'type':'string','required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':a64_0x3bfc0f(0x164),'type':a64_0x3bfc0f(0x159),'required':!![],'description':a64_0x3bfc0f(0x155),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a64_0x3bfc0f(0x17c)}};function a64_0x4397(_0x369daa,_0x32299b){_0x369daa=_0x369daa-0x14f;const _0x5b58db=a64_0x5b58();let _0x4397bf=_0x5b58db[_0x369daa];return _0x4397bf;}function summarizeService(_0x2f4afa){const _0xa00fc2=a64_0x3bfc0f;return{'serviceCode':_0x2f4afa['serviceCode'],'name':_0x2f4afa['normalizedManifest'][_0xa00fc2(0x164)][_0xa00fc2(0x15b)],'version':_0x2f4afa[_0xa00fc2(0x189)],'importedAt':_0x2f4afa[_0xa00fc2(0x14f)],'source':_0x2f4afa['source'],'commandCount':_0x2f4afa[_0xa00fc2(0x16b)]['commands']['length'],'commands':_0x2f4afa[_0xa00fc2(0x16b)][_0xa00fc2(0x190)][_0xa00fc2(0x170)](_0x2848d5=>({'path':_0x2848d5[_0xa00fc2(0x160)],'description':_0x2848d5[_0xa00fc2(0x182)],'risk':_0x2848d5['risk'],'target':toPublicServiceTreeTarget(_0x2848d5['target']),'flags':_0x2848d5[_0xa00fc2(0x187)][_0xa00fc2(0x170)](_0x54ff11=>({'name':_0x54ff11[_0xa00fc2(0x15b)],'cliName':_0x54ff11[_0xa00fc2(0x163)],'type':_0x54ff11[_0xa00fc2(0x151)],'required':_0x54ff11['required']===!![]}))}))};}function summarizeLoadedManifest(_0x5c6c62){const _0x3da72d=a64_0x3bfc0f;return{'service':_0x5c6c62[_0x3da72d(0x16b)]?.[_0x3da72d(0x164)],'version':_0x5c6c62[_0x3da72d(0x16b)]?.[_0x3da72d(0x189)],'commandCount':_0x5c6c62[_0x3da72d(0x16b)]?.[_0x3da72d(0x190)][_0x3da72d(0x169)]??0x0,'commands':_0x5c6c62[_0x3da72d(0x16b)]?.[_0x3da72d(0x190)][_0x3da72d(0x170)](_0x325b8d=>({'path':_0x325b8d[_0x3da72d(0x160)],'risk':_0x325b8d[_0x3da72d(0x180)],'target':toPublicServiceTreeTarget(_0x325b8d[_0x3da72d(0x175)])}))??[],'registryIndex':_0x5c6c62['registryIndex'],'registryServiceCode':_0x5c6c62[_0x3da72d(0x16e)],'errors':_0x5c6c62['report'][_0x3da72d(0x174)],'warnings':_0x5c6c62[_0x3da72d(0x171)][_0x3da72d(0x179)]};}export const serviceDefinitions=[{'service':'service','command':a64_0x3bfc0f(0x16d),'description':a64_0x3bfc0f(0x15c),'risk':a64_0x3bfc0f(0x185),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x528235){const _0x178502=a64_0x3bfc0f,_0x20fe5f=loadServiceManifestFromFile(_0x528235[_0x178502(0x15e)](_0x178502(0x188)));if(!_0x20fe5f[_0x178502(0x171)]['ok'])return{'ok':![],'data':{'file':_0x20fe5f[_0x178502(0x18a)],'hash':_0x20fe5f['hash'],'kind':_0x20fe5f['kind'],'serviceCount':_0x20fe5f[_0x178502(0x165)]['length'],'services':_0x20fe5f[_0x178502(0x165)][_0x178502(0x170)](summarizeLoadedManifest),'errors':_0x20fe5f[_0x178502(0x171)][_0x178502(0x174)],'warnings':_0x20fe5f[_0x178502(0x171)][_0x178502(0x179)]},'message':formatValidationFailure(_0x20fe5f[_0x178502(0x171)])};if(_0x20fe5f['kind']===_0x178502(0x158)||_0x20fe5f[_0x178502(0x165)]['length']!==0x1)return{'ok':!![],'data':{'file':_0x20fe5f[_0x178502(0x18a)],'hash':_0x20fe5f[_0x178502(0x177)],'kind':_0x20fe5f[_0x178502(0x15a)],'serviceCount':_0x20fe5f['manifests']['length'],'commandCount':_0x20fe5f[_0x178502(0x165)]['reduce']((_0x192f35,_0x5b4f49)=>_0x192f35+(_0x5b4f49[_0x178502(0x16b)]?.['commands'][_0x178502(0x169)]??0x0),0x0),'services':_0x20fe5f[_0x178502(0x165)][_0x178502(0x170)](summarizeLoadedManifest),'warnings':_0x20fe5f[_0x178502(0x171)][_0x178502(0x179)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x20fe5f[_0x178502(0x18a)],'hash':_0x20fe5f['hash'],'kind':_0x20fe5f[_0x178502(0x15a)],'service':_0x20fe5f['normalizedManifest']?.[_0x178502(0x164)],'version':_0x20fe5f['normalizedManifest']?.['version'],'commandCount':_0x20fe5f[_0x178502(0x16b)]?.[_0x178502(0x190)][_0x178502(0x169)]??0x0,'commands':_0x20fe5f[_0x178502(0x16b)]?.[_0x178502(0x190)][_0x178502(0x170)](_0x211ecd=>({'path':_0x211ecd[_0x178502(0x160)],'risk':_0x211ecd['risk'],'target':toPublicServiceTreeTarget(_0x211ecd[_0x178502(0x175)])})),'warnings':_0x20fe5f[_0x178502(0x171)][_0x178502(0x179)]},'message':_0x178502(0x15f)};}},{'service':a64_0x3bfc0f(0x164),'command':a64_0x3bfc0f(0x18b),'description':a64_0x3bfc0f(0x17b),'risk':a64_0x3bfc0f(0x193),'confirmationDescription':a64_0x3bfc0f(0x18f),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x56991d){const _0x28a9b9=a64_0x3bfc0f,_0x4278a3=loadServiceManifestFromFile(_0x56991d['str'](_0x28a9b9(0x188)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x4278a3['filePath'],'hash':_0x4278a3['hash'],'kind':_0x4278a3[_0x28a9b9(0x15a)],'ok':_0x4278a3[_0x28a9b9(0x171)]['ok'],'service':_0x4278a3[_0x28a9b9(0x16b)]?.[_0x28a9b9(0x164)],'version':_0x4278a3[_0x28a9b9(0x16b)]?.['version'],'serviceCount':_0x4278a3[_0x28a9b9(0x165)][_0x28a9b9(0x169)],'services':_0x4278a3[_0x28a9b9(0x165)][_0x28a9b9(0x170)](_0x37f3ec=>({'service':_0x37f3ec[_0x28a9b9(0x16b)]?.[_0x28a9b9(0x164)],'version':_0x37f3ec[_0x28a9b9(0x16b)]?.[_0x28a9b9(0x189)],'commandCount':_0x37f3ec[_0x28a9b9(0x16b)]?.[_0x28a9b9(0x190)][_0x28a9b9(0x169)]??0x0,'errors':_0x37f3ec['report']['errors']})),'errors':_0x4278a3['report'][_0x28a9b9(0x174)],'commandCount':_0x4278a3[_0x28a9b9(0x16b)]?.[_0x28a9b9(0x190)][_0x28a9b9(0x169)]??0x0},'description':_0x28a9b9(0x162)};},async 'execute'(_0x561b8c){const _0x4abd8b=a64_0x3bfc0f,_0x2b67f0=importServiceManifest(_0x561b8c[_0x4abd8b(0x15e)](_0x4abd8b(0x188)));if(_0x2b67f0[_0x4abd8b(0x168)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x2b67f0[_0x4abd8b(0x157)],'imported':_0x2b67f0[_0x4abd8b(0x192)],'updated':_0x2b67f0[_0x4abd8b(0x183)],'serviceCount':_0x2b67f0[_0x4abd8b(0x17d)],'services':_0x2b67f0[_0x4abd8b(0x168)][_0x4abd8b(0x170)](summarizeService)},'message':_0x4abd8b(0x18d)+_0x2b67f0['imported']+'\x20service(s),\x20updated\x20'+_0x2b67f0['updated']+_0x4abd8b(0x186)};return{'ok':!![],'data':{'registryPath':_0x2b67f0[_0x4abd8b(0x157)],'replaced':_0x2b67f0[_0x4abd8b(0x197)],'imported':_0x2b67f0[_0x4abd8b(0x192)],'updated':_0x2b67f0[_0x4abd8b(0x183)],'serviceCount':_0x2b67f0['serviceCount'],'service':summarizeService(_0x2b67f0[_0x4abd8b(0x152)])},'message':(_0x2b67f0['replaced']?_0x4abd8b(0x17e):'Imported')+_0x4abd8b(0x17a)+_0x2b67f0['entry'][_0x4abd8b(0x176)]+'.'};}},{'service':a64_0x3bfc0f(0x164),'command':a64_0x3bfc0f(0x167),'description':a64_0x3bfc0f(0x153),'risk':a64_0x3bfc0f(0x193),'confirmationDescription':a64_0x3bfc0f(0x166),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x5dcd3c){const _0x24ac63=a64_0x3bfc0f,_0x11f58c=getLocalServiceEntry(_0x5dcd3c[_0x24ac63(0x15e)](_0x24ac63(0x164)));return{'method':'WRITE','url':_0x5dcd3c[_0x24ac63(0x15e)]('file'),'body':{'service':_0x5dcd3c[_0x24ac63(0x15e)]('service'),'found':Boolean(_0x11f58c),'version':_0x11f58c?.[_0x24ac63(0x189)],'source':_0x11f58c?.[_0x24ac63(0x16f)]},'description':_0x24ac63(0x19a)};},async 'execute'(_0x4bffdd){const _0xbbe290=a64_0x3bfc0f,_0x49058f=exportServiceManifest(_0x4bffdd[_0xbbe290(0x15e)](_0xbbe290(0x164)),_0x4bffdd[_0xbbe290(0x15e)]('file'));return{'ok':!![],'data':{'registryPath':_0x49058f['registryPath'],'file':_0x49058f[_0xbbe290(0x18a)],'service':summarizeService(_0x49058f[_0xbbe290(0x152)])},'message':_0xbbe290(0x194)+_0x49058f['entry']['serviceCode']+'.'};}},{'service':a64_0x3bfc0f(0x164),'command':a64_0x3bfc0f(0x172),'description':a64_0x3bfc0f(0x173),'risk':a64_0x3bfc0f(0x185),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x1bfc2a=a64_0x3bfc0f,_0x41f131=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x41f131[_0x1bfc2a(0x169)],'services':_0x41f131[_0x1bfc2a(0x170)](summarizeService)}};}},{'service':a64_0x3bfc0f(0x164),'command':a64_0x3bfc0f(0x184),'description':a64_0x3bfc0f(0x15d),'risk':'write','confirmationDescription':a64_0x3bfc0f(0x161),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x21e7d6){const _0x2694ca=a64_0x3bfc0f,_0x3938af=getLocalServiceEntry(_0x21e7d6[_0x2694ca(0x15e)](_0x2694ca(0x164)));return{'method':_0x2694ca(0x178),'url':getServiceRegistryPath(),'body':{'service':_0x21e7d6[_0x2694ca(0x15e)]('service'),'found':Boolean(_0x3938af),'version':_0x3938af?.[_0x2694ca(0x189)],'source':_0x3938af?.['source']},'description':_0x2694ca(0x156)};},async 'execute'(_0x2121c2){const _0x1a3f2c=a64_0x3bfc0f,_0x4ed1b0=removeServiceManifest(_0x2121c2['str'](_0x1a3f2c(0x164)));return{'ok':!![],'data':{'registryPath':_0x4ed1b0['registryPath'],'serviceCount':_0x4ed1b0['serviceCount'],'service':summarizeService(_0x4ed1b0['entry'])},'message':_0x1a3f2c(0x16c)+_0x4ed1b0[_0x1a3f2c(0x152)][_0x1a3f2c(0x176)]+'.'};}},{'service':a64_0x3bfc0f(0x164),'command':a64_0x3bfc0f(0x18c),'description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':a64_0x3bfc0f(0x185),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x1e400e){const _0x164310=a64_0x3bfc0f,_0x35f5e6=getLocalServiceEntry(_0x1e400e[_0x164310(0x15e)](_0x164310(0x164)));if(!_0x35f5e6)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x1e400e['str'](_0x164310(0x164))},'message':_0x164310(0x154)+_0x1e400e['str']('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x35f5e6),'manifest':_0x35f5e6[_0x164310(0x199)],'normalizedManifest':toPublicNormalizedServiceTree(_0x35f5e6[_0x164310(0x16b)])}};}}];
1
+ const a64_0xe2b4ee=a64_0x4cfb;(function(_0x5e6b09,_0x175c65){const _0x158d04=a64_0x4cfb,_0xa77c91=_0x5e6b09();while(!![]){try{const _0x43ad37=-parseInt(_0x158d04(0x1ee))/0x1*(parseInt(_0x158d04(0x1d2))/0x2)+parseInt(_0x158d04(0x1d0))/0x3+parseInt(_0x158d04(0x1de))/0x4*(parseInt(_0x158d04(0x1e5))/0x5)+-parseInt(_0x158d04(0x1da))/0x6+parseInt(_0x158d04(0x1fa))/0x7+parseInt(_0x158d04(0x1ea))/0x8*(-parseInt(_0x158d04(0x1cb))/0x9)+parseInt(_0x158d04(0x1cd))/0xa;if(_0x43ad37===_0x175c65)break;else _0xa77c91['push'](_0xa77c91['shift']());}catch(_0x179ae0){_0xa77c91['push'](_0xa77c91['shift']());}}}(a64_0x5652,0x23ab7));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':a64_0xe2b4ee(0x1ec),'type':a64_0xe2b4ee(0x1eb),'required':!![],'description':a64_0xe2b4ee(0x1d3)},SERVICE_FLAG={'name':'service','type':a64_0xe2b4ee(0x1eb),'required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x243478){const _0x28d3af=a64_0xe2b4ee;return{'serviceCode':_0x243478[_0x28d3af(0x1df)],'name':_0x243478[_0x28d3af(0x1c7)]['service'][_0x28d3af(0x1fb)],'version':_0x243478['version'],'importedAt':_0x243478['importedAt'],'source':_0x243478[_0x28d3af(0x1f3)],'commandCount':_0x243478[_0x28d3af(0x1c7)][_0x28d3af(0x1f1)][_0x28d3af(0x1c3)],'commands':_0x243478[_0x28d3af(0x1c7)]['commands'][_0x28d3af(0x1ff)](_0x5cbc57=>({'path':_0x5cbc57[_0x28d3af(0x1e1)],'description':_0x5cbc57[_0x28d3af(0x1c4)],'risk':_0x5cbc57['risk'],'target':toPublicServiceTreeTarget(_0x5cbc57[_0x28d3af(0x1d9)]),'flags':_0x5cbc57[_0x28d3af(0x1fd)][_0x28d3af(0x1ff)](_0x13b819=>({'name':_0x13b819['name'],'cliName':_0x13b819['cliName'],'type':_0x13b819[_0x28d3af(0x1f0)],'required':_0x13b819['required']===!![]}))}))};}function summarizeLoadedManifest(_0x4aa47c){const _0x15e0eb=a64_0xe2b4ee;return{'service':_0x4aa47c[_0x15e0eb(0x1c7)]?.[_0x15e0eb(0x1cc)],'version':_0x4aa47c[_0x15e0eb(0x1c7)]?.[_0x15e0eb(0x1d8)],'commandCount':_0x4aa47c[_0x15e0eb(0x1c7)]?.[_0x15e0eb(0x1f1)][_0x15e0eb(0x1c3)]??0x0,'commands':_0x4aa47c[_0x15e0eb(0x1c7)]?.[_0x15e0eb(0x1f1)][_0x15e0eb(0x1ff)](_0x2a2ae5=>({'path':_0x2a2ae5['cliPath'],'risk':_0x2a2ae5[_0x15e0eb(0x1c8)],'target':toPublicServiceTreeTarget(_0x2a2ae5['target'])}))??[],'registryIndex':_0x4aa47c[_0x15e0eb(0x1f6)],'registryServiceCode':_0x4aa47c['registryServiceCode'],'errors':_0x4aa47c['report'][_0x15e0eb(0x1d4)],'warnings':_0x4aa47c[_0x15e0eb(0x1e8)]['warnings']};}function a64_0x4cfb(_0x420eaf,_0x33970b){_0x420eaf=_0x420eaf-0x1be;const _0x5652b0=a64_0x5652();let _0x4cfb40=_0x5652b0[_0x420eaf];return _0x4cfb40;}function a64_0x5652(){const _0x57bcab=['cliPath','Exported\x20service\x20','detail','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','10JeyRoK','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','write','report','manifests','1044984InpDUv','string','file','list','1yrlOwP','Service\x20registry\x20validation\x20passed.','type','commands','entry','source','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','registryIndex','reduce','\x20service(s),\x20updated\x20','serviceCount','1056160FnvNPL','name','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','flags','Removed\x20service\x20','map','read','Updated','remove','Imported','str','\x20service(s).','entries','hash','length','description','kind','filePath','normalizedManifest','risk','imported','Imported\x20','9GoYMBK','service','1924680vrFTxN','warnings','registryPath','842559lIVwTC','WRITE','559978NAWYyx','Service\x20Tree\x20manifest\x20file\x20path','errors','Local\x20service\x20not\x20found:\x20','replaced','Service\x20manifest\x20validation\x20passed.','version','target','1281144XDuneE','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','import','292076WYDCgQ','serviceCode','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.'];a64_0x5652=function(){return _0x57bcab;};return a64_0x5652();}export const serviceDefinitions=[{'service':a64_0xe2b4ee(0x1cc),'command':'validate','description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x36ad9a){const _0x3850d1=a64_0xe2b4ee,_0x4ac038=loadServiceManifestFromFile(_0x36ad9a['str'](_0x3850d1(0x1ec)));if(!_0x4ac038['report']['ok'])return{'ok':![],'data':{'file':_0x4ac038[_0x3850d1(0x1c6)],'hash':_0x4ac038[_0x3850d1(0x1c2)],'kind':_0x4ac038[_0x3850d1(0x1c5)],'serviceCount':_0x4ac038[_0x3850d1(0x1e9)][_0x3850d1(0x1c3)],'services':_0x4ac038[_0x3850d1(0x1e9)][_0x3850d1(0x1ff)](summarizeLoadedManifest),'errors':_0x4ac038[_0x3850d1(0x1e8)][_0x3850d1(0x1d4)],'warnings':_0x4ac038[_0x3850d1(0x1e8)][_0x3850d1(0x1ce)]},'message':formatValidationFailure(_0x4ac038[_0x3850d1(0x1e8)])};if(_0x4ac038[_0x3850d1(0x1c5)]==='registry'||_0x4ac038['manifests'][_0x3850d1(0x1c3)]!==0x1)return{'ok':!![],'data':{'file':_0x4ac038[_0x3850d1(0x1c6)],'hash':_0x4ac038[_0x3850d1(0x1c2)],'kind':_0x4ac038[_0x3850d1(0x1c5)],'serviceCount':_0x4ac038[_0x3850d1(0x1e9)][_0x3850d1(0x1c3)],'commandCount':_0x4ac038[_0x3850d1(0x1e9)][_0x3850d1(0x1f7)]((_0x5dc4c2,_0x1c2e5a)=>_0x5dc4c2+(_0x1c2e5a[_0x3850d1(0x1c7)]?.[_0x3850d1(0x1f1)][_0x3850d1(0x1c3)]??0x0),0x0),'services':_0x4ac038[_0x3850d1(0x1e9)][_0x3850d1(0x1ff)](summarizeLoadedManifest),'warnings':_0x4ac038['report']['warnings']},'message':_0x3850d1(0x1ef)};return{'ok':!![],'data':{'file':_0x4ac038[_0x3850d1(0x1c6)],'hash':_0x4ac038[_0x3850d1(0x1c2)],'kind':_0x4ac038[_0x3850d1(0x1c5)],'service':_0x4ac038[_0x3850d1(0x1c7)]?.[_0x3850d1(0x1cc)],'version':_0x4ac038[_0x3850d1(0x1c7)]?.[_0x3850d1(0x1d8)],'commandCount':_0x4ac038[_0x3850d1(0x1c7)]?.['commands']['length']??0x0,'commands':_0x4ac038[_0x3850d1(0x1c7)]?.[_0x3850d1(0x1f1)][_0x3850d1(0x1ff)](_0x89a55f=>({'path':_0x89a55f[_0x3850d1(0x1e1)],'risk':_0x89a55f['risk'],'target':toPublicServiceTreeTarget(_0x89a55f[_0x3850d1(0x1d9)])})),'warnings':_0x4ac038[_0x3850d1(0x1e8)][_0x3850d1(0x1ce)]},'message':_0x3850d1(0x1d7)};}},{'service':a64_0xe2b4ee(0x1cc),'command':a64_0xe2b4ee(0x1dd),'description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':a64_0xe2b4ee(0x1e7),'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'(_0x5716f8){const _0x11864a=a64_0xe2b4ee,_0x1c195a=loadServiceManifestFromFile(_0x5716f8[_0x11864a(0x1bf)]('file'));return{'method':_0x11864a(0x1d1),'url':getServiceRegistryPath(),'body':{'file':_0x1c195a['filePath'],'hash':_0x1c195a[_0x11864a(0x1c2)],'kind':_0x1c195a[_0x11864a(0x1c5)],'ok':_0x1c195a[_0x11864a(0x1e8)]['ok'],'service':_0x1c195a['normalizedManifest']?.['service'],'version':_0x1c195a['normalizedManifest']?.[_0x11864a(0x1d8)],'serviceCount':_0x1c195a[_0x11864a(0x1e9)][_0x11864a(0x1c3)],'services':_0x1c195a['manifests'][_0x11864a(0x1ff)](_0xa5c5cc=>({'service':_0xa5c5cc[_0x11864a(0x1c7)]?.[_0x11864a(0x1cc)],'version':_0xa5c5cc[_0x11864a(0x1c7)]?.[_0x11864a(0x1d8)],'commandCount':_0xa5c5cc[_0x11864a(0x1c7)]?.[_0x11864a(0x1f1)]['length']??0x0,'errors':_0xa5c5cc[_0x11864a(0x1e8)][_0x11864a(0x1d4)]})),'errors':_0x1c195a['report'][_0x11864a(0x1d4)],'commandCount':_0x1c195a[_0x11864a(0x1c7)]?.[_0x11864a(0x1f1)][_0x11864a(0x1c3)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x377a83){const _0x45440b=a64_0xe2b4ee,_0x3dd288=importServiceManifest(_0x377a83[_0x45440b(0x1bf)](_0x45440b(0x1ec)));if(_0x3dd288[_0x45440b(0x1c1)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x3dd288[_0x45440b(0x1cf)],'imported':_0x3dd288[_0x45440b(0x1c9)],'updated':_0x3dd288['updated'],'serviceCount':_0x3dd288[_0x45440b(0x1f9)],'services':_0x3dd288[_0x45440b(0x1c1)][_0x45440b(0x1ff)](summarizeService)},'message':_0x45440b(0x1ca)+_0x3dd288['imported']+_0x45440b(0x1f8)+_0x3dd288['updated']+_0x45440b(0x1c0)};return{'ok':!![],'data':{'registryPath':_0x3dd288[_0x45440b(0x1cf)],'replaced':_0x3dd288[_0x45440b(0x1d6)],'imported':_0x3dd288[_0x45440b(0x1c9)],'updated':_0x3dd288['updated'],'serviceCount':_0x3dd288[_0x45440b(0x1f9)],'service':summarizeService(_0x3dd288[_0x45440b(0x1f2)])},'message':(_0x3dd288[_0x45440b(0x1d6)]?_0x45440b(0x201):_0x45440b(0x1be))+'\x20service\x20'+_0x3dd288[_0x45440b(0x1f2)][_0x45440b(0x1df)]+'.'};}},{'service':'service','command':'export','description':a64_0xe2b4ee(0x1f5),'risk':a64_0xe2b4ee(0x1e7),'confirmationDescription':a64_0xe2b4ee(0x1e0),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x3b7a98){const _0x4d9a12=a64_0xe2b4ee,_0x5cbf32=getLocalServiceEntry(_0x3b7a98[_0x4d9a12(0x1bf)](_0x4d9a12(0x1cc)));return{'method':_0x4d9a12(0x1d1),'url':_0x3b7a98[_0x4d9a12(0x1bf)](_0x4d9a12(0x1ec)),'body':{'service':_0x3b7a98[_0x4d9a12(0x1bf)]('service'),'found':Boolean(_0x5cbf32),'version':_0x5cbf32?.['version'],'source':_0x5cbf32?.['source']},'description':_0x4d9a12(0x1f4)};},async 'execute'(_0x5144b4){const _0x460070=a64_0xe2b4ee,_0x52a297=exportServiceManifest(_0x5144b4[_0x460070(0x1bf)]('service'),_0x5144b4[_0x460070(0x1bf)]('file'));return{'ok':!![],'data':{'registryPath':_0x52a297[_0x460070(0x1cf)],'file':_0x52a297[_0x460070(0x1c6)],'service':summarizeService(_0x52a297['entry'])},'message':_0x460070(0x1e2)+_0x52a297[_0x460070(0x1f2)]['serviceCode']+'.'};}},{'service':a64_0xe2b4ee(0x1cc),'command':a64_0xe2b4ee(0x1ed),'description':a64_0xe2b4ee(0x1e4),'risk':a64_0xe2b4ee(0x200),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x3515a5=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x3515a5['length'],'services':_0x3515a5['map'](summarizeService)}};}},{'service':a64_0xe2b4ee(0x1cc),'command':a64_0xe2b4ee(0x202),'description':a64_0xe2b4ee(0x1dc),'risk':a64_0xe2b4ee(0x1e7),'confirmationDescription':a64_0xe2b4ee(0x1e6),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x4fd991){const _0x36cdef=a64_0xe2b4ee,_0x20a753=getLocalServiceEntry(_0x4fd991[_0x36cdef(0x1bf)]('service'));return{'method':_0x36cdef(0x1d1),'url':getServiceRegistryPath(),'body':{'service':_0x4fd991[_0x36cdef(0x1bf)](_0x36cdef(0x1cc)),'found':Boolean(_0x20a753),'version':_0x20a753?.[_0x36cdef(0x1d8)],'source':_0x20a753?.[_0x36cdef(0x1f3)]},'description':_0x36cdef(0x1db)};},async 'execute'(_0x4044ec){const _0x523f1c=a64_0xe2b4ee,_0x193f43=removeServiceManifest(_0x4044ec['str']('service'));return{'ok':!![],'data':{'registryPath':_0x193f43[_0x523f1c(0x1cf)],'serviceCount':_0x193f43[_0x523f1c(0x1f9)],'service':summarizeService(_0x193f43['entry'])},'message':_0x523f1c(0x1fe)+_0x193f43[_0x523f1c(0x1f2)][_0x523f1c(0x1df)]+'.'};}},{'service':'service','command':a64_0xe2b4ee(0x1e3),'description':a64_0xe2b4ee(0x1fc),'risk':a64_0xe2b4ee(0x200),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x240272){const _0x2907c9=a64_0xe2b4ee,_0x4025b4=getLocalServiceEntry(_0x240272[_0x2907c9(0x1bf)]('service'));if(!_0x4025b4)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x240272[_0x2907c9(0x1bf)]('service')},'message':_0x2907c9(0x1d5)+_0x240272[_0x2907c9(0x1bf)](_0x2907c9(0x1cc))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x4025b4),'manifest':_0x4025b4['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x4025b4[_0x2907c9(0x1c7)])}};}}];
@@ -1 +1 @@
1
- function a65_0x5387(_0x400d8d,_0x3c9947){_0x400d8d=_0x400d8d-0x189;const _0x14fd5a=a65_0x14fd();let _0x53879d=_0x14fd5a[_0x400d8d];return _0x53879d;}const a65_0x455dc5=a65_0x5387;(function(_0x2ecf04,_0x537ae3){const _0x200c0d=a65_0x5387,_0x1e65da=_0x2ecf04();while(!![]){try{const _0x30df11=parseInt(_0x200c0d(0x192))/0x1*(parseInt(_0x200c0d(0x1d0))/0x2)+parseInt(_0x200c0d(0x193))/0x3+parseInt(_0x200c0d(0x198))/0x4*(-parseInt(_0x200c0d(0x19c))/0x5)+-parseInt(_0x200c0d(0x1af))/0x6*(parseInt(_0x200c0d(0x1da))/0x7)+-parseInt(_0x200c0d(0x1c8))/0x8*(-parseInt(_0x200c0d(0x1bf))/0x9)+-parseInt(_0x200c0d(0x19a))/0xa*(-parseInt(_0x200c0d(0x18e))/0xb)+-parseInt(_0x200c0d(0x1c0))/0xc;if(_0x30df11===_0x537ae3)break;else _0x1e65da['push'](_0x1e65da['shift']());}catch(_0x59baaf){_0x1e65da['push'](_0x1e65da['shift']());}}}(a65_0x14fd,0xa33dd));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=a65_0x455dc5(0x195);export function getServiceRegistryPath(_0x5db5a0={}){const _0x327f0c=a65_0x455dc5;return resolve(_0x5db5a0['homeDir']??homedir(),PRODUCT_CONFIG[_0x327f0c(0x1a9)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0xff6c91={}){const _0x291652=a65_0x455dc5,_0x50874e=getServiceRegistryPath(_0xff6c91);if(!existsSync(_0x50874e))return emptyServiceRegistry();try{const _0x22db11=readFileSync(_0x50874e,_0x291652(0x1b0));if(!_0x22db11['trim']())return emptyServiceRegistry();const _0x15c750=JSON['parse'](_0x22db11);if(_0x15c750[_0x291652(0x1cb)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation']('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x15c750[_0x291652(0x1cb)]),_0x291652(0x1d5)+_0x50874e+'.');if(!Array[_0x291652(0x1d1)](_0x15c750[_0x291652(0x1bc)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x15c750[_0x291652(0x18b)],'services':_0x15c750[_0x291652(0x1bc)]};}catch(_0x2977b5){if(_0x2977b5 instanceof Error&&_0x2977b5['name']===_0x291652(0x1b9))throw _0x2977b5;throw CliErrors[_0x291652(0x191)](_0x291652(0x1ca)+_0x50874e,_0x291652(0x1b5));}}export function writeServiceRegistry(_0x3df8b3,_0x436716={}){const _0x164dbb=a65_0x455dc5,_0x3f1de4=getServiceRegistryPath(_0x436716),_0x1f71cb=dirname(_0x3f1de4);!existsSync(_0x1f71cb)&&mkdirSync(_0x1f71cb,{'recursive':!![]});const _0x31ad96=_0x3f1de4+_0x164dbb(0x19e);try{writeFileSync(_0x31ad96,JSON[_0x164dbb(0x1cf)](_0x3df8b3,null,0x2)+'\x0a',{'encoding':_0x164dbb(0x1b0),'mode':0x180}),renameSync(_0x31ad96,_0x3f1de4);}catch(_0x5091de){try{unlinkSync(_0x31ad96);}catch{}if(_0x5091de?.[_0x164dbb(0x1b7)]===_0x164dbb(0x1a6))throw CliErrors[_0x164dbb(0x191)](_0x164dbb(0x1c7)+_0x3f1de4);throw _0x5091de;}return _0x3f1de4;}export function loadServiceManifestFromFile(_0x501bf1){const _0x4e1741=a65_0x455dc5,_0x329578=resolve(_0x501bf1);if(!existsSync(_0x329578))throw CliErrors[_0x4e1741(0x191)](_0x4e1741(0x1aa)+_0x501bf1);let _0x3ca0ba;const _0xf779b9=readFileSync(_0x329578,_0x4e1741(0x1b0));try{_0x3ca0ba=JSON[_0x4e1741(0x1ad)](_0xf779b9);}catch{throw CliErrors['validation']('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x501bf1,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x2b423a=sha256(_0xf779b9),_0x98af76=extractLoadedServiceManifests(_0x3ca0ba,_0x2b423a),_0x4776eb=aggregateValidationReports(_0x98af76),_0x59a0ed=_0x98af76[0x0];return{'filePath':_0x329578,'hash':_0x2b423a,'kind':isServiceRegistryLike(_0x3ca0ba)?_0x4e1741(0x197):_0x4e1741(0x1ce),'manifest':_0x59a0ed?.[_0x4e1741(0x1ce)]??_0x3ca0ba,'report':_0x4776eb,'normalizedManifest':_0x98af76[_0x4e1741(0x1a1)]===0x1?_0x59a0ed?.['normalizedManifest']:undefined,'manifests':_0x98af76};}export function importServiceManifest(_0x1c2ae0,_0x57a74d={}){const _0x41ad8b=a65_0x455dc5,_0x25b795=loadServiceManifestFromFile(_0x1c2ae0);if(!_0x25b795[_0x41ad8b(0x19f)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x25b795[_0x41ad8b(0x19f)]),_0x41ad8b(0x1ae));if(_0x25b795['manifests'][_0x41ad8b(0x1a1)]===0x0)throw CliErrors[_0x41ad8b(0x191)](_0x41ad8b(0x18a),_0x41ad8b(0x1c5));const _0x3bb282=readServiceRegistry(_0x57a74d),_0x5b451a=(_0x57a74d[_0x41ad8b(0x19b)]??(()=>new Date()))()['toISOString'](),_0xba5ab2=[];let _0xb1ca3d=0x0,_0x451527=0x0;for(const _0x3993a4 of _0x25b795['manifests']){if(!_0x3993a4[_0x41ad8b(0x1ac)])continue;const _0x32bb3b=_0x3993a4['normalizedManifest'][_0x41ad8b(0x1d2)][_0x41ad8b(0x1b7)],_0x153a8b={'serviceCode':_0x32bb3b,'version':_0x3993a4[_0x41ad8b(0x1ac)]['version'],'importedAt':_0x5b451a,'source':{'type':_0x41ad8b(0x18d),'path':_0x25b795[_0x41ad8b(0x18f)],'hash':_0x3993a4[_0x41ad8b(0x1a2)]},'manifest':_0x3993a4[_0x41ad8b(0x1ce)],'normalizedManifest':_0x3993a4['normalizedManifest']},_0xad0a59=_0x3bb282['services'][_0x41ad8b(0x1c1)](_0x308624=>_0x308624[_0x41ad8b(0x1dc)]===_0x32bb3b);_0xad0a59>=0x0?(_0x3bb282[_0x41ad8b(0x1bc)][_0xad0a59]=_0x153a8b,_0x451527++):(_0x3bb282[_0x41ad8b(0x1bc)][_0x41ad8b(0x194)](_0x153a8b),_0xb1ca3d++),_0xba5ab2[_0x41ad8b(0x194)](_0x153a8b);}_0x3bb282[_0x41ad8b(0x1bc)][_0x41ad8b(0x1db)]((_0x5b873e,_0x44d843)=>_0x5b873e[_0x41ad8b(0x1dc)][_0x41ad8b(0x1cd)](_0x44d843[_0x41ad8b(0x1dc)])),_0x3bb282['updatedAt']=_0x5b451a;const _0x4e46ee=writeServiceRegistry(_0x3bb282,_0x57a74d);return{'registryPath':_0x4e46ee,'entry':_0xba5ab2[0x0],'replaced':_0xba5ab2[_0x41ad8b(0x1a1)]===0x1?_0x451527===0x1:_0x451527>0x0,'entries':_0xba5ab2,'imported':_0xb1ca3d,'updated':_0x451527,'serviceCount':_0x3bb282[_0x41ad8b(0x1bc)]['length']};}export function exportServiceManifest(_0x19e129,_0x3cb815,_0x1984f4={}){const _0x191ea2=a65_0x455dc5,_0x423be4=getServiceRegistryPath(_0x1984f4),_0x32c37f=getLocalServiceEntry(_0x19e129,_0x1984f4);if(!_0x32c37f)throw CliErrors[_0x191ea2(0x191)](_0x191ea2(0x1d7)+_0x19e129,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x46e5f6=resolve(_0x3cb815),_0x4a55d7=dirname(_0x46e5f6);return!existsSync(_0x4a55d7)&&mkdirSync(_0x4a55d7,{'recursive':!![]}),writeFileSync(_0x46e5f6,JSON[_0x191ea2(0x1cf)](_0x32c37f[_0x191ea2(0x1ce)],null,0x2)+'\x0a',{'encoding':_0x191ea2(0x1b0),'mode':0x180}),{'registryPath':_0x423be4,'filePath':_0x46e5f6,'entry':_0x32c37f};}export function removeServiceManifest(_0x5a5f5e,_0x4460bb={}){const _0x1fe659=a65_0x455dc5,_0x4a2582=readServiceRegistry(_0x4460bb),_0x4c7d5f=_0x5a5f5e[_0x1fe659(0x1d8)](),_0x533e00=_0x4a2582[_0x1fe659(0x1bc)]['findIndex'](_0x365101=>_0x365101[_0x1fe659(0x1dc)]===_0x4c7d5f);if(_0x533e00<0x0)throw CliErrors[_0x1fe659(0x191)](_0x1fe659(0x1d7)+_0x4c7d5f,_0x1fe659(0x1b8));const [_0x487ef8]=_0x4a2582[_0x1fe659(0x1bc)]['splice'](_0x533e00,0x1),_0x457285=(_0x4460bb[_0x1fe659(0x19b)]??(()=>new Date()))()[_0x1fe659(0x1d6)]();_0x4a2582[_0x1fe659(0x18b)]=_0x457285;const _0x59b3a9=writeServiceRegistry(_0x4a2582,_0x4460bb);return{'registryPath':_0x59b3a9,'entry':_0x487ef8,'serviceCount':_0x4a2582[_0x1fe659(0x1bc)][_0x1fe659(0x1a1)]};}export function listLocalServices(_0x2f68d4={}){const _0x222dfc=a65_0x455dc5;return readServiceRegistry(_0x2f68d4)[_0x222dfc(0x1bc)];}export function getLocalServiceEntry(_0x270e24,_0x2bd6f2={}){const _0x4a30db=a65_0x455dc5;return readServiceRegistry(_0x2bd6f2)[_0x4a30db(0x1bc)][_0x4a30db(0x1a7)](_0x57147f=>_0x57147f[_0x4a30db(0x1dc)]===_0x270e24[_0x4a30db(0x1d8)]());}export function listLocalServiceTrees(_0x4a4ec0={}){const _0x537999=a65_0x455dc5;return readServiceRegistry(_0x4a4ec0)[_0x537999(0x1bc)][_0x537999(0x1ba)](_0x309ebc=>_0x309ebc[_0x537999(0x1ac)]);}export function inspectServiceRegistry(_0x46043b={}){const _0x57bcc6=a65_0x455dc5,_0x4c52de=getServiceRegistryPath(_0x46043b);if(!existsSync(_0x4c52de))return emptyServiceRegistryInspection(_0x4c52de,'missing',![]);try{const _0x11fd45=readFileSync(_0x4c52de,_0x57bcc6(0x1b0));if(!_0x11fd45['trim']())return emptyServiceRegistryInspection(_0x4c52de,'empty',!![]);const _0xb1808f=JSON[_0x57bcc6(0x1ad)](_0x11fd45);if(_0xb1808f['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x4c52de,_0x57bcc6(0x189),!![]),'schemaVersion':_0xb1808f['schemaVersion'],'message':_0x57bcc6(0x1b3)+String(_0xb1808f[_0x57bcc6(0x1cb)])};if(!Array[_0x57bcc6(0x1d1)](_0xb1808f[_0x57bcc6(0x1bc)]))return{...emptyServiceRegistryInspection(_0x4c52de,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xb1808f[_0x57bcc6(0x18b)],'message':_0x57bcc6(0x19d)};const _0x62c035=_0xb1808f['services'][_0x57bcc6(0x1ba)](summarizeLocalServiceEntry);return{'registryPath':_0x4c52de,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xb1808f[_0x57bcc6(0x18b)],'serviceCount':_0x62c035[_0x57bcc6(0x1a1)],'commandCount':_0x62c035[_0x57bcc6(0x1a0)]((_0x54f64a,_0x26d5f8)=>_0x54f64a+_0x26d5f8[_0x57bcc6(0x1b2)],0x0),'services':_0x62c035};}catch(_0x360867){return{...emptyServiceRegistryInspection(_0x4c52de,_0x57bcc6(0x189),!![]),'message':_0x360867 instanceof Error?_0x360867[_0x57bcc6(0x1a3)]:String(_0x360867)};}}export function formatValidationFailure(_0x11864f){const _0x28b1a6=a65_0x455dc5,_0x4bf345=_0x11864f[_0x28b1a6(0x1c3)][_0x28b1a6(0x1ba)](_0x5467e2=>_0x5467e2[_0x28b1a6(0x18c)]+':\x20'+_0x5467e2['message']);return _0x28b1a6(0x1c6)+_0x4bf345[_0x28b1a6(0x1be)]('\x0a');}function extractLoadedServiceManifests(_0xc3c781,_0x4871b7){const _0x207925=a65_0x455dc5;if(!isServiceRegistryLike(_0xc3c781)){const _0x5092e1=_0xc3c781,{manifest:_0x260bad,errors:_0x279fcc}=adaptServiceTreeManifestForLegacyFramework(_0x5092e1),_0x1d9c5d=validateServiceTreeManifest(_0x260bad),_0x303681=mergeValidationErrors(_0x1d9c5d,_0x279fcc);return[{'manifest':_0x5092e1,'report':_0x303681,'normalizedManifest':_0x303681['ok']?normalizeServiceTreeManifest(_0x260bad):undefined,'sourceHash':_0x4871b7}];}return _0xc3c781[_0x207925(0x1bc)][_0x207925(0x1ba)]((_0x164e27,_0x4079b8)=>{const _0x4a189f=_0x207925,_0x4d7569=isObjectRecord(_0x164e27)?_0x164e27[_0x4a189f(0x1ce)]:undefined,{manifest:_0x35cff6,errors:_0x1ef7c0}=adaptServiceTreeManifestForLegacyFramework(_0x4d7569),_0xfc0f57=validateServiceTreeManifest(_0x35cff6),_0x2a4f90=mergeValidationErrors(_0xfc0f57,_0x1ef7c0),_0x2b74e8=isObjectRecord(_0x164e27)&&typeof _0x164e27['serviceCode']===_0x4a189f(0x199)?_0x164e27[_0x4a189f(0x1dc)]:undefined;return{'manifest':_0x4d7569,'report':_0x2a4f90,'normalizedManifest':_0x2a4f90['ok']?normalizeServiceTreeManifest(_0x35cff6):undefined,'sourceHash':sha256(JSON[_0x4a189f(0x1cf)](_0x4d7569,null,0x2)+'\x0a'),'registryIndex':_0x4079b8,'registryServiceCode':_0x2b74e8};});}function mergeValidationErrors(_0xb1255e,_0x2d101d){const _0x4cb069=a65_0x455dc5,_0x3b1ee5=_0xb1255e[_0x4cb069(0x1c3)]['map'](_0x4336e4=>_0x4336e4[_0x4cb069(0x1a3)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x4336e4,'message':_0x4cb069(0x1a5)}:_0x4336e4),_0x5f4ce8=[..._0x2d101d,..._0x3b1ee5];return{'ok':_0x5f4ce8[_0x4cb069(0x1a1)]===0x0,'errors':_0x5f4ce8,'warnings':_0xb1255e[_0x4cb069(0x1a4)]};}function aggregateValidationReports(_0x49a907){const _0x53174b=a65_0x455dc5,_0x156e02=_0x49a907[_0x53174b(0x1c2)](_0x3b22b5=>_0x3b22b5[_0x53174b(0x1d4)]===undefined?_0x3b22b5[_0x53174b(0x19f)][_0x53174b(0x1c3)]:_0x3b22b5[_0x53174b(0x19f)]['errors'][_0x53174b(0x1ba)](_0x3ad1db=>({..._0x3ad1db,'path':prefixRegistryIssuePath(_0x3b22b5[_0x53174b(0x1d4)],_0x3ad1db[_0x53174b(0x18c)])}))),_0x1a23d6=_0x49a907[_0x53174b(0x1c2)](_0x4c6b3d=>_0x4c6b3d[_0x53174b(0x1d4)]===undefined?_0x4c6b3d[_0x53174b(0x19f)][_0x53174b(0x1a4)]:_0x4c6b3d[_0x53174b(0x19f)][_0x53174b(0x1a4)]['map'](_0x4ab66d=>({..._0x4ab66d,'path':prefixRegistryIssuePath(_0x4c6b3d['registryIndex'],_0x4ab66d[_0x53174b(0x18c)])})));return{'ok':_0x156e02[_0x53174b(0x1a1)]===0x0,'errors':_0x156e02,'warnings':_0x1a23d6};}function prefixRegistryIssuePath(_0x13513e,_0x55ed73){const _0x597331=a65_0x455dc5;if(_0x55ed73==='$')return'$.services['+_0x13513e+_0x597331(0x1bb);if(_0x55ed73['startsWith']('$.'))return _0x597331(0x1ab)+_0x13513e+_0x597331(0x1bb)+_0x55ed73[_0x597331(0x1a8)](0x1);if(_0x55ed73[_0x597331(0x1b6)]('$['))return _0x597331(0x1ab)+_0x13513e+_0x597331(0x1bb)+_0x55ed73[_0x597331(0x1a8)](0x1);return _0x597331(0x1ab)+_0x13513e+'].manifest.'+_0x55ed73;}function isServiceRegistryLike(_0x54f221){const _0x138fa9=a65_0x455dc5;return isObjectRecord(_0x54f221)&&_0x54f221[_0x138fa9(0x1cb)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x138fa9(0x1d1)](_0x54f221['services']);}function isObjectRecord(_0x3e989f){const _0x132c7c=a65_0x455dc5;return Boolean(_0x3e989f)&&typeof _0x3e989f===_0x132c7c(0x1d9)&&!Array['isArray'](_0x3e989f);}function emptyServiceRegistryInspection(_0x587deb,_0x9fb249,_0x28d871){return{'registryPath':_0x587deb,'exists':_0x28d871,'status':_0x9fb249,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x5e9055){const _0x6fc137=a65_0x455dc5,_0x5a03de=_0x5e9055[_0x6fc137(0x1ac)],_0x34347f=_0x5a03de['commands'][_0x6fc137(0x1ba)](_0x48b613=>({'path':_0x48b613[_0x6fc137(0x1bd)],'description':_0x48b613[_0x6fc137(0x1dd)],'risk':_0x48b613[_0x6fc137(0x1cc)],'targetKind':_0x48b613[_0x6fc137(0x196)][_0x6fc137(0x1c4)],'targetCommand':_0x48b613['target']['command']}));return{'serviceCode':_0x5e9055['serviceCode'],'name':_0x5a03de[_0x6fc137(0x1d2)][_0x6fc137(0x1b4)],'description':_0x5a03de[_0x6fc137(0x1d2)][_0x6fc137(0x1dd)],'version':_0x5e9055[_0x6fc137(0x190)],'importedAt':_0x5e9055[_0x6fc137(0x1b1)],'source':_0x5e9055[_0x6fc137(0x1c9)],'commandCount':_0x34347f['length'],'commands':_0x34347f};}function a65_0x14fd(){const _0x2bfa38=['5rDriMF','3346782cWAwRI','push','service.json','target','registry','3028riUISs','string','6060SVQSvv','now','7955tnXDpL','services\x20must\x20be\x20an\x20array','.tmp','report','reduce','length','sourceHash','message','warnings','bff\x20target\x20requires\x20functionName.','ENOENT','find','slice','homeDirName','Service\x20manifest\x20file\x20not\x20found:\x20','$.services[','normalizedManifest','parse','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','352890BUoTAE','utf8','importedAt','commandCount','Unsupported\x20schemaVersion:\x20','name','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','startsWith','code','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','CliError','map','].manifest','services','cliPath','join','13194lUvWne','13780740GmwPmQ','findIndex','flatMap','errors','kind','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','Service\x20manifest\x20validation\x20failed:\x0a','Cannot\x20write\x20service\x20registry:\x20','4184HKClrX','source','Invalid\x20service\x20registry\x20JSON:\x20','schemaVersion','risk','localeCompare','manifest','stringify','224446mUcJAP','isArray','service','digest','registryIndex','Remove\x20or\x20migrate\x20','toISOString','Local\x20service\x20not\x20found:\x20','trim','object','28wwtQRX','sort','serviceCode','description','invalid','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','updatedAt','path','file','14762HTxpNJ','filePath','version','validation'];a65_0x14fd=function(){return _0x2bfa38;};return a65_0x14fd();}function sha256(_0xd5f0ce){const _0x2e3248=a65_0x455dc5;return createHash('sha256')['update'](_0xd5f0ce)[_0x2e3248(0x1d3)]('hex');}
1
+ const a65_0x4dd8a3=a65_0xa07e;(function(_0x45192e,_0xfb3373){const _0x5e5e2a=a65_0xa07e,_0x274c3c=_0x45192e();while(!![]){try{const _0x565de9=parseInt(_0x5e5e2a(0xc4))/0x1*(parseInt(_0x5e5e2a(0x82))/0x2)+parseInt(_0x5e5e2a(0x7e))/0x3*(parseInt(_0x5e5e2a(0xba))/0x4)+-parseInt(_0x5e5e2a(0x78))/0x5+-parseInt(_0x5e5e2a(0x87))/0x6*(-parseInt(_0x5e5e2a(0xbf))/0x7)+-parseInt(_0x5e5e2a(0x91))/0x8*(-parseInt(_0x5e5e2a(0x81))/0x9)+-parseInt(_0x5e5e2a(0xaa))/0xa+parseInt(_0x5e5e2a(0x79))/0xb*(-parseInt(_0x5e5e2a(0xbe))/0xc);if(_0x565de9===_0xfb3373)break;else _0x274c3c['push'](_0x274c3c['shift']());}catch(_0x274ed0){_0x274c3c['push'](_0x274c3c['shift']());}}}(a65_0x1e9f,0x6496e));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=a65_0x4dd8a3(0x8c);export function getServiceRegistryPath(_0x4de6e0={}){const _0x50f61f=a65_0x4dd8a3;return resolve(_0x4de6e0[_0x50f61f(0xa8)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x3fe26d={}){const _0x476add=a65_0x4dd8a3,_0x769da7=getServiceRegistryPath(_0x3fe26d);if(!existsSync(_0x769da7))return emptyServiceRegistry();try{const _0x26aaab=readFileSync(_0x769da7,_0x476add(0xbb));if(!_0x26aaab['trim']())return emptyServiceRegistry();const _0x5ad7aa=JSON[_0x476add(0x83)](_0x26aaab);if(_0x5ad7aa[_0x476add(0x8f)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x476add(0xc7)+String(_0x5ad7aa[_0x476add(0x8f)]),'Remove\x20or\x20migrate\x20'+_0x769da7+'.');if(!Array[_0x476add(0xa3)](_0x5ad7aa[_0x476add(0x7a)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5ad7aa[_0x476add(0xa9)],'services':_0x5ad7aa['services']};}catch(_0x15c5ad){if(_0x15c5ad instanceof Error&&_0x15c5ad[_0x476add(0xa7)]===_0x476add(0xb6))throw _0x15c5ad;throw CliErrors['validation'](_0x476add(0xac)+_0x769da7,_0x476add(0x95));}}export function writeServiceRegistry(_0xe9a11d,_0x53dd02={}){const _0x4561a1=a65_0x4dd8a3,_0x1a308c=getServiceRegistryPath(_0x53dd02),_0x47e003=dirname(_0x1a308c);!existsSync(_0x47e003)&&mkdirSync(_0x47e003,{'recursive':!![]});const _0x3dd66d=_0x1a308c+'.tmp';try{writeFileSync(_0x3dd66d,JSON[_0x4561a1(0x7b)](_0xe9a11d,null,0x2)+'\x0a',{'encoding':_0x4561a1(0xbb),'mode':0x180}),renameSync(_0x3dd66d,_0x1a308c);}catch(_0x71bf40){try{unlinkSync(_0x3dd66d);}catch{}if(_0x71bf40?.[_0x4561a1(0xa2)]===_0x4561a1(0xb8))throw CliErrors[_0x4561a1(0x7c)](_0x4561a1(0x9c)+_0x1a308c);throw _0x71bf40;}return _0x1a308c;}function a65_0xa07e(_0x4d5482,_0x5cfc48){_0x4d5482=_0x4d5482-0x77;const _0x1e9f8c=a65_0x1e9f();let _0xa07e5b=_0x1e9f8c[_0x4d5482];return _0xa07e5b;}export function loadServiceManifestFromFile(_0x14f952){const _0x169e81=a65_0x4dd8a3,_0x14adde=resolve(_0x14f952);if(!existsSync(_0x14adde))throw CliErrors[_0x169e81(0x7c)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x14f952);let _0x565f48;const _0x20696b=readFileSync(_0x14adde,_0x169e81(0xbb));try{_0x565f48=JSON[_0x169e81(0x83)](_0x20696b);}catch{throw CliErrors[_0x169e81(0x7c)](_0x169e81(0xa4)+_0x14f952,_0x169e81(0x85));}const _0x57544f=sha256(_0x20696b),_0x3a3694=extractLoadedServiceManifests(_0x565f48,_0x57544f),_0x341419=aggregateValidationReports(_0x3a3694),_0x3b42ee=_0x3a3694[0x0];return{'filePath':_0x14adde,'hash':_0x57544f,'kind':isServiceRegistryLike(_0x565f48)?_0x169e81(0x9a):_0x169e81(0x77),'manifest':_0x3b42ee?.['manifest']??_0x565f48,'report':_0x341419,'normalizedManifest':_0x3a3694[_0x169e81(0x8e)]===0x1?_0x3b42ee?.['normalizedManifest']:undefined,'manifests':_0x3a3694};}export function importServiceManifest(_0x5b53bd,_0x533052={}){const _0x88805f=a65_0x4dd8a3,_0x4a89ca=loadServiceManifestFromFile(_0x5b53bd);if(!_0x4a89ca[_0x88805f(0xb0)]['ok'])throw CliErrors[_0x88805f(0x7c)](formatValidationFailure(_0x4a89ca[_0x88805f(0xb0)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x4a89ca[_0x88805f(0xc2)]['length']===0x0)throw CliErrors[_0x88805f(0x7c)](_0x88805f(0xa0),_0x88805f(0x8b));const _0x3abb11=readServiceRegistry(_0x533052),_0x179067=(_0x533052[_0x88805f(0x90)]??(()=>new Date()))()[_0x88805f(0x98)](),_0x483d16=[];let _0x1796a8=0x0,_0x36ff51=0x0;for(const _0x5b428a of _0x4a89ca[_0x88805f(0xc2)]){if(!_0x5b428a[_0x88805f(0xb2)])continue;const _0x3179b5=_0x5b428a['normalizedManifest'][_0x88805f(0x89)][_0x88805f(0xa2)],_0x1639f6={'serviceCode':_0x3179b5,'version':_0x5b428a[_0x88805f(0xb2)][_0x88805f(0xc0)],'importedAt':_0x179067,'source':{'type':'file','path':_0x4a89ca[_0x88805f(0xc1)],'hash':_0x5b428a['sourceHash']},'manifest':_0x5b428a[_0x88805f(0x77)],'normalizedManifest':_0x5b428a[_0x88805f(0xb2)]},_0x75f378=_0x3abb11[_0x88805f(0x7a)]['findIndex'](_0x283669=>_0x283669[_0x88805f(0xae)]===_0x3179b5);_0x75f378>=0x0?(_0x3abb11['services'][_0x75f378]=_0x1639f6,_0x36ff51++):(_0x3abb11[_0x88805f(0x7a)]['push'](_0x1639f6),_0x1796a8++),_0x483d16[_0x88805f(0xa5)](_0x1639f6);}_0x3abb11['services']['sort']((_0x4034d9,_0x29b0af)=>_0x4034d9[_0x88805f(0xae)]['localeCompare'](_0x29b0af[_0x88805f(0xae)])),_0x3abb11[_0x88805f(0xa9)]=_0x179067;const _0x2075f9=writeServiceRegistry(_0x3abb11,_0x533052);return{'registryPath':_0x2075f9,'entry':_0x483d16[0x0],'replaced':_0x483d16['length']===0x1?_0x36ff51===0x1:_0x36ff51>0x0,'entries':_0x483d16,'imported':_0x1796a8,'updated':_0x36ff51,'serviceCount':_0x3abb11[_0x88805f(0x7a)][_0x88805f(0x8e)]};}export function exportServiceManifest(_0x49e3b4,_0x1b26e3,_0x17aa4b={}){const _0x3e5093=a65_0x4dd8a3,_0x4ff55a=getServiceRegistryPath(_0x17aa4b),_0x54a6d0=getLocalServiceEntry(_0x49e3b4,_0x17aa4b);if(!_0x54a6d0)throw CliErrors[_0x3e5093(0x7c)]('Local\x20service\x20not\x20found:\x20'+_0x49e3b4,_0x3e5093(0xc5));const _0x3e705d=resolve(_0x1b26e3),_0x32bac3=dirname(_0x3e705d);return!existsSync(_0x32bac3)&&mkdirSync(_0x32bac3,{'recursive':!![]}),writeFileSync(_0x3e705d,JSON[_0x3e5093(0x7b)](_0x54a6d0[_0x3e5093(0x77)],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x4ff55a,'filePath':_0x3e705d,'entry':_0x54a6d0};}export function removeServiceManifest(_0x2dda8f,_0x4b674b={}){const _0x488f5f=a65_0x4dd8a3,_0x164564=readServiceRegistry(_0x4b674b),_0x34df62=_0x2dda8f['trim'](),_0x20b0a8=_0x164564['services'][_0x488f5f(0x94)](_0xf182da=>_0xf182da['serviceCode']===_0x34df62);if(_0x20b0a8<0x0)throw CliErrors['validation'](_0x488f5f(0x9b)+_0x34df62,_0x488f5f(0xc5));const [_0x2d3605]=_0x164564['services']['splice'](_0x20b0a8,0x1),_0x1154ff=(_0x4b674b[_0x488f5f(0x90)]??(()=>new Date()))()[_0x488f5f(0x98)]();_0x164564['updatedAt']=_0x1154ff;const _0xfedaae=writeServiceRegistry(_0x164564,_0x4b674b);return{'registryPath':_0xfedaae,'entry':_0x2d3605,'serviceCount':_0x164564['services']['length']};}export function listLocalServices(_0x4d0849={}){const _0x3748b8=a65_0x4dd8a3;return readServiceRegistry(_0x4d0849)[_0x3748b8(0x7a)];}export function getLocalServiceEntry(_0x305f9e,_0x5c49ea={}){const _0x14d1f8=a65_0x4dd8a3;return readServiceRegistry(_0x5c49ea)['services'][_0x14d1f8(0x9d)](_0x3e8c43=>_0x3e8c43['serviceCode']===_0x305f9e['trim']());}export function listLocalServiceTrees(_0x92eb29={}){const _0x30210e=a65_0x4dd8a3;return readServiceRegistry(_0x92eb29)[_0x30210e(0x7a)]['map'](_0x54829e=>_0x54829e[_0x30210e(0xb2)]);}function a65_0x1e9f(){const _0x2b8023=['service.json','Service\x20manifest\x20validation\x20failed:\x0a','length','schemaVersion','now','16kaOYfh','services\x20must\x20be\x20an\x20array','object','findIndex','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','commandCount','message','toISOString','target','registry','Local\x20service\x20not\x20found:\x20','Cannot\x20write\x20service\x20registry:\x20','find','update','string','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','$.services[','code','isArray','Invalid\x20service\x20manifest\x20JSON:\x20','push','].manifest','name','homeDir','updatedAt','409720hudMPu','slice','Invalid\x20service\x20registry\x20JSON:\x20','errors','serviceCode','Unsupported\x20schemaVersion:\x20','report','commands','normalizedManifest','cliPath','path','reduce','CliError','join','ENOENT','kind','361820HmxBGX','utf8','startsWith','hex','12vXqbQF','42uzWwqL','version','filePath','manifests','invalid','298LkusMp','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','warnings','Unsupported\x20service\x20registry\x20schemaVersion:\x20','trim','manifest','3692440dAikpV','3902569lhCwFp','services','stringify','validation','risk','3GLivyK','map','source','428589JOWDVT','4846UfdHFN','parse','bff\x20target\x20requires\x20functionName.','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','flatMap','638502QytAqT','missing','service','registryIndex','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.'];a65_0x1e9f=function(){return _0x2b8023;};return a65_0x1e9f();}export function inspectServiceRegistry(_0x4472bf={}){const _0x272c64=a65_0x4dd8a3,_0x5276eb=getServiceRegistryPath(_0x4472bf);if(!existsSync(_0x5276eb))return emptyServiceRegistryInspection(_0x5276eb,_0x272c64(0x88),![]);try{const _0x2f122c=readFileSync(_0x5276eb,'utf8');if(!_0x2f122c[_0x272c64(0xc8)]())return emptyServiceRegistryInspection(_0x5276eb,'empty',!![]);const _0x2965e8=JSON[_0x272c64(0x83)](_0x2f122c);if(_0x2965e8[_0x272c64(0x8f)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x5276eb,_0x272c64(0xc3),!![]),'schemaVersion':_0x2965e8[_0x272c64(0x8f)],'message':_0x272c64(0xaf)+String(_0x2965e8['schemaVersion'])};if(!Array[_0x272c64(0xa3)](_0x2965e8[_0x272c64(0x7a)]))return{...emptyServiceRegistryInspection(_0x5276eb,_0x272c64(0xc3),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2965e8['updatedAt'],'message':_0x272c64(0x92)};const _0xcdf049=_0x2965e8['services'][_0x272c64(0x7f)](summarizeLocalServiceEntry);return{'registryPath':_0x5276eb,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2965e8[_0x272c64(0xa9)],'serviceCount':_0xcdf049[_0x272c64(0x8e)],'commandCount':_0xcdf049[_0x272c64(0xb5)]((_0x47724b,_0x4cc678)=>_0x47724b+_0x4cc678[_0x272c64(0x96)],0x0),'services':_0xcdf049};}catch(_0x3a6c7d){return{...emptyServiceRegistryInspection(_0x5276eb,'invalid',!![]),'message':_0x3a6c7d instanceof Error?_0x3a6c7d[_0x272c64(0x97)]:String(_0x3a6c7d)};}}export function formatValidationFailure(_0x4536db){const _0x49cdf4=a65_0x4dd8a3,_0x600a96=_0x4536db[_0x49cdf4(0xad)][_0x49cdf4(0x7f)](_0x578572=>_0x578572[_0x49cdf4(0xb4)]+':\x20'+_0x578572['message']);return _0x49cdf4(0x8d)+_0x600a96[_0x49cdf4(0xb7)]('\x0a');}function extractLoadedServiceManifests(_0x384194,_0x10fa17){const _0x17b3dd=a65_0x4dd8a3;if(!isServiceRegistryLike(_0x384194)){const _0x3f4562=_0x384194,{manifest:_0x2614e4,errors:_0x389661}=adaptServiceTreeManifestForLegacyFramework(_0x3f4562),_0x590f0a=validateServiceTreeManifest(_0x2614e4),_0x1a412b=mergeValidationErrors(_0x590f0a,_0x389661);return[{'manifest':_0x3f4562,'report':_0x1a412b,'normalizedManifest':_0x1a412b['ok']?normalizeServiceTreeManifest(_0x2614e4):undefined,'sourceHash':_0x10fa17}];}return _0x384194[_0x17b3dd(0x7a)][_0x17b3dd(0x7f)]((_0x4203b9,_0x206b8c)=>{const _0x229ab6=_0x17b3dd,_0x381308=isObjectRecord(_0x4203b9)?_0x4203b9[_0x229ab6(0x77)]:undefined,{manifest:_0x17af59,errors:_0x1ea1ff}=adaptServiceTreeManifestForLegacyFramework(_0x381308),_0x5f1503=validateServiceTreeManifest(_0x17af59),_0x228121=mergeValidationErrors(_0x5f1503,_0x1ea1ff),_0x1e86a8=isObjectRecord(_0x4203b9)&&typeof _0x4203b9[_0x229ab6(0xae)]===_0x229ab6(0x9f)?_0x4203b9['serviceCode']:undefined;return{'manifest':_0x381308,'report':_0x228121,'normalizedManifest':_0x228121['ok']?normalizeServiceTreeManifest(_0x17af59):undefined,'sourceHash':sha256(JSON['stringify'](_0x381308,null,0x2)+'\x0a'),'registryIndex':_0x206b8c,'registryServiceCode':_0x1e86a8};});}function mergeValidationErrors(_0x281261,_0x1188c4){const _0x591f97=a65_0x4dd8a3,_0x4c7cd5=_0x281261[_0x591f97(0xad)][_0x591f97(0x7f)](_0x1252b6=>_0x1252b6[_0x591f97(0x97)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x1252b6,'message':_0x591f97(0x84)}:_0x1252b6),_0x35950b=[..._0x1188c4,..._0x4c7cd5];return{'ok':_0x35950b[_0x591f97(0x8e)]===0x0,'errors':_0x35950b,'warnings':_0x281261['warnings']};}function aggregateValidationReports(_0x3df166){const _0xddc0d7=a65_0x4dd8a3,_0x5e5a68=_0x3df166[_0xddc0d7(0x86)](_0xc08f98=>_0xc08f98[_0xddc0d7(0x8a)]===undefined?_0xc08f98['report'][_0xddc0d7(0xad)]:_0xc08f98[_0xddc0d7(0xb0)]['errors'][_0xddc0d7(0x7f)](_0x50ebd1=>({..._0x50ebd1,'path':prefixRegistryIssuePath(_0xc08f98['registryIndex'],_0x50ebd1[_0xddc0d7(0xb4)])}))),_0x4b4ccd=_0x3df166[_0xddc0d7(0x86)](_0x147348=>_0x147348[_0xddc0d7(0x8a)]===undefined?_0x147348['report'][_0xddc0d7(0xc6)]:_0x147348['report'][_0xddc0d7(0xc6)]['map'](_0xba089d=>({..._0xba089d,'path':prefixRegistryIssuePath(_0x147348[_0xddc0d7(0x8a)],_0xba089d[_0xddc0d7(0xb4)])})));return{'ok':_0x5e5a68['length']===0x0,'errors':_0x5e5a68,'warnings':_0x4b4ccd};}function prefixRegistryIssuePath(_0x15d6ae,_0x47e4e){const _0x5301b8=a65_0x4dd8a3;if(_0x47e4e==='$')return'$.services['+_0x15d6ae+_0x5301b8(0xa6);if(_0x47e4e['startsWith']('$.'))return _0x5301b8(0xa1)+_0x15d6ae+_0x5301b8(0xa6)+_0x47e4e['slice'](0x1);if(_0x47e4e[_0x5301b8(0xbc)]('$['))return'$.services['+_0x15d6ae+_0x5301b8(0xa6)+_0x47e4e[_0x5301b8(0xab)](0x1);return _0x5301b8(0xa1)+_0x15d6ae+'].manifest.'+_0x47e4e;}function isServiceRegistryLike(_0x3e7b9a){const _0x5707f5=a65_0x4dd8a3;return isObjectRecord(_0x3e7b9a)&&_0x3e7b9a[_0x5707f5(0x8f)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x3e7b9a['services']);}function isObjectRecord(_0x959e8d){const _0x2f6c6f=a65_0x4dd8a3;return Boolean(_0x959e8d)&&typeof _0x959e8d===_0x2f6c6f(0x93)&&!Array[_0x2f6c6f(0xa3)](_0x959e8d);}function emptyServiceRegistryInspection(_0x1d11a4,_0x6a08a8,_0x269870){return{'registryPath':_0x1d11a4,'exists':_0x269870,'status':_0x6a08a8,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x36cd1b){const _0x2ce788=a65_0x4dd8a3,_0x5920eb=_0x36cd1b[_0x2ce788(0xb2)],_0x1830e9=_0x5920eb[_0x2ce788(0xb1)][_0x2ce788(0x7f)](_0x5d87a9=>({'path':_0x5d87a9[_0x2ce788(0xb3)],'description':_0x5d87a9['description'],'risk':_0x5d87a9[_0x2ce788(0x7d)],'targetKind':_0x5d87a9['target'][_0x2ce788(0xb9)],'targetCommand':_0x5d87a9[_0x2ce788(0x99)]['command']}));return{'serviceCode':_0x36cd1b[_0x2ce788(0xae)],'name':_0x5920eb[_0x2ce788(0x89)]['name'],'description':_0x5920eb[_0x2ce788(0x89)]['description'],'version':_0x36cd1b[_0x2ce788(0xc0)],'importedAt':_0x36cd1b['importedAt'],'source':_0x36cd1b[_0x2ce788(0x80)],'commandCount':_0x1830e9[_0x2ce788(0x8e)],'commands':_0x1830e9};}function sha256(_0x4fa1d4){const _0x3917c6=a65_0x4dd8a3;return createHash('sha256')[_0x3917c6(0x9e)](_0x4fa1d4)['digest'](_0x3917c6(0xbd));}
@@ -1 +1 @@
1
- const a66_0x56d9c9=a66_0x12e9;(function(_0x4a9888,_0x11468a){const _0x2eef04=a66_0x12e9,_0x4fa228=_0x4a9888();while(!![]){try{const _0xb5ae7a=-parseInt(_0x2eef04(0xf9))/0x1+-parseInt(_0x2eef04(0xd7))/0x2*(parseInt(_0x2eef04(0xe1))/0x3)+-parseInt(_0x2eef04(0xd8))/0x4*(parseInt(_0x2eef04(0xf4))/0x5)+-parseInt(_0x2eef04(0xd9))/0x6+parseInt(_0x2eef04(0xd6))/0x7*(parseInt(_0x2eef04(0xf7))/0x8)+parseInt(_0x2eef04(0xd5))/0x9*(parseInt(_0x2eef04(0xf8))/0xa)+parseInt(_0x2eef04(0xe2))/0xb*(parseInt(_0x2eef04(0xdb))/0xc);if(_0xb5ae7a===_0x11468a)break;else _0x4fa228['push'](_0x4fa228['shift']());}catch(_0x24626d){_0x4fa228['push'](_0x4fa228['shift']());}}}(a66_0x1459,0x2b338));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';function a66_0x12e9(_0x1d3ef1,_0x3d12c4){_0x1d3ef1=_0x1d3ef1-0xd4;const _0x14593b=a66_0x1459();let _0x12e951=_0x14593b[_0x1d3ef1];return _0x12e951;}import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';function a66_0x1459(){const _0x5daa30=['12xfWQvT','type','rendered','files','target','skillDir','30813VYqXkI','5768455nLWaCT','skill','isSymbolicLink','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','Skill\x20directory\x20already\x20exists:\x20','WRITE','isDirectory','Created\x20local\x20Skill\x20draft\x20','force','skillName','map','Refusing\x20to\x20overwrite\x20symlink:\x20','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','validation','str','path','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','content','5yHWudS','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','utf8','1288KCFiOk','1213640WiNvLa','52358lhRHvI','create','9drrDnq','406NTedfr','4NAlxVs','609084HDOQmD','1517904aklQqX','name'];a66_0x1459=function(){return _0x5daa30;};return a66_0x1459();}import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a66_0x56d9c9(0xe3),'command':a66_0x56d9c9(0xd4),'description':'Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x519acd){const _0x1bd48b=a66_0x56d9c9,_0x50dc5a=buildSkillCreatePlan(_0x519acd[_0x1bd48b(0xf0)]('name'),_0x519acd['str']('type'),_0x519acd[_0x1bd48b(0xf0)](_0x1bd48b(0xdf)));return{'method':_0x1bd48b(0xe7),'url':_0x50dc5a[_0x1bd48b(0xe0)],'body':{'skillName':_0x50dc5a[_0x1bd48b(0xdd)][_0x1bd48b(0xeb)],'type':_0x50dc5a[_0x1bd48b(0xdd)][_0x1bd48b(0xdc)],'selfContained':!![],'files':_0x50dc5a[_0x1bd48b(0xdd)][_0x1bd48b(0xde)]['map'](_0x602499=>_0x602499[_0x1bd48b(0xf1)])},'description':_0x1bd48b(0xf5)};},async 'execute'(_0x55759c){const _0x42168d=a66_0x56d9c9,_0x4a1b5d=buildSkillCreatePlan(_0x55759c[_0x42168d(0xf0)](_0x42168d(0xda)),_0x55759c[_0x42168d(0xf0)](_0x42168d(0xdc)),_0x55759c[_0x42168d(0xf0)](_0x42168d(0xdf)));return writeSkillDraft(_0x4a1b5d,_0x55759c['bool'](_0x42168d(0xea))),{'ok':!![],'data':{'skillName':_0x4a1b5d[_0x42168d(0xdd)][_0x42168d(0xeb)],'type':_0x4a1b5d['rendered'][_0x42168d(0xdc)],'dir':_0x4a1b5d[_0x42168d(0xe0)],'files':_0x4a1b5d['rendered'][_0x42168d(0xde)][_0x42168d(0xec)](_0x283975=>_0x283975[_0x42168d(0xf1)])},'message':_0x42168d(0xe9)+_0x4a1b5d[_0x42168d(0xdd)]['skillName']};}};function buildSkillCreatePlan(_0x181cfa,_0x49ec8f,_0x5c5767){const _0x2300dc=a66_0x56d9c9,_0x55e09b=_0x49ec8f['trim'](),_0x447590=renderSkillTemplate({'skillName':_0x181cfa,'type':_0x55e09b});!_0x55e09b&&writeCliSideChannelLine(_0x2300dc(0xf2));const _0x1d06c3=resolve(normalizeSkillTarget(_0x5c5767));return{'rendered':_0x447590,'targetRoot':_0x1d06c3,'skillDir':resolve(_0x1d06c3,_0x447590[_0x2300dc(0xeb)])};}function normalizeSkillTarget(_0x60e08c){return(_0x60e08c||DEFAULT_SKILL_TARGET)['trim']()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x428a24,_0xe98993){const _0x433cd0=a66_0x56d9c9;if(existsSync(_0x428a24[_0x433cd0(0xe0)])){const _0x29a27b=lstatSync(_0x428a24[_0x433cd0(0xe0)]);if(!_0x29a27b[_0x433cd0(0xe8)]()||_0x29a27b[_0x433cd0(0xe4)]())throw CliErrors[_0x433cd0(0xef)](_0x433cd0(0xe5)+_0x428a24[_0x433cd0(0xe0)]);if(!_0xe98993)throw CliErrors[_0x433cd0(0xef)](_0x433cd0(0xe6)+_0x428a24[_0x433cd0(0xe0)],_0x433cd0(0xee));}for(const _0x785306 of _0x428a24['rendered'][_0x433cd0(0xde)]){const _0x18c4b6=resolve(_0x428a24[_0x433cd0(0xe0)],_0x785306[_0x433cd0(0xf1)]),_0x5b4eb9=dirname(_0x18c4b6);mkdirSync(_0x5b4eb9,{'recursive':!![]});if(existsSync(_0x18c4b6)&&lstatSync(_0x18c4b6)['isSymbolicLink']())throw CliErrors[_0x433cd0(0xef)](_0x433cd0(0xed)+_0x18c4b6);writeFileSync(_0x18c4b6,_0x785306[_0x433cd0(0xf3)],_0x433cd0(0xf6));}}
1
+ const a66_0x39511d=a66_0x1b65;function a66_0x208e(){const _0x2942dd=['validation','path','6AbxftQ','isDirectory','rendered','trim','WRITE','40qevqly','type','Refusing\x20to\x20overwrite\x20symlink:\x20','skillName','24Jqtclj','force','1717660JjnIuc','skillDir','utf8','26bNCeVp','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','read','1FzhvjZ','name','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','Created\x20local\x20Skill\x20draft\x20','1087047VsDivN','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','files','str','create','1603344USmOAO','1150134xPZKWe','1460239EnkaSw','1829964XtDVJi','1186584mILmqu','4ZLEOYo','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','content'];a66_0x208e=function(){return _0x2942dd;};return a66_0x208e();}function a66_0x1b65(_0x41a8bf,_0x36f7fa){_0x41a8bf=_0x41a8bf-0xad;const _0x208e91=a66_0x208e();let _0x1b65f4=_0x208e91[_0x41a8bf];return _0x1b65f4;}(function(_0x3aa8b2,_0x138df0){const _0xde48e3=a66_0x1b65,_0x281413=_0x3aa8b2();while(!![]){try{const _0x359ec1=-parseInt(_0xde48e3(0xd0))/0x1*(-parseInt(_0xde48e3(0xb6))/0x2)+-parseInt(_0xde48e3(0xb8))/0x3*(-parseInt(_0xde48e3(0xba))/0x4)+-parseInt(_0xde48e3(0xca))/0x5*(parseInt(_0xde48e3(0xbf))/0x6)+parseInt(_0xde48e3(0xb9))/0x7*(-parseInt(_0xde48e3(0xc8))/0x8)+-parseInt(_0xde48e3(0xb0))/0x9+parseInt(_0xde48e3(0xc4))/0xa*(parseInt(_0xde48e3(0xb7))/0xb)+parseInt(_0xde48e3(0xb5))/0xc*(-parseInt(_0xde48e3(0xcd))/0xd);if(_0x359ec1===_0x138df0)break;else _0x281413['push'](_0x281413['shift']());}catch(_0xd0fd0){_0x281413['push'](_0x281413['shift']());}}}(a66_0x208e,0x74348));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':'skill','command':a66_0x39511d(0xb4),'description':a66_0x39511d(0xbb),'risk':a66_0x39511d(0xcf),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x45ad07){const _0x59a3aa=a66_0x39511d,_0x1bbbf7=buildSkillCreatePlan(_0x45ad07[_0x59a3aa(0xb3)](_0x59a3aa(0xad)),_0x45ad07[_0x59a3aa(0xb3)](_0x59a3aa(0xc5)),_0x45ad07['str']('target'));return{'method':_0x59a3aa(0xc3),'url':_0x1bbbf7[_0x59a3aa(0xcb)],'body':{'skillName':_0x1bbbf7['rendered']['skillName'],'type':_0x1bbbf7[_0x59a3aa(0xc1)]['type'],'selfContained':!![],'files':_0x1bbbf7[_0x59a3aa(0xc1)][_0x59a3aa(0xb2)]['map'](_0x4bb335=>_0x4bb335[_0x59a3aa(0xbe)])},'description':_0x59a3aa(0xae)};},async 'execute'(_0x964b68){const _0x236622=a66_0x39511d,_0x355c57=buildSkillCreatePlan(_0x964b68[_0x236622(0xb3)](_0x236622(0xad)),_0x964b68[_0x236622(0xb3)](_0x236622(0xc5)),_0x964b68['str']('target'));return writeSkillDraft(_0x355c57,_0x964b68['bool'](_0x236622(0xc9))),{'ok':!![],'data':{'skillName':_0x355c57[_0x236622(0xc1)]['skillName'],'type':_0x355c57['rendered'][_0x236622(0xc5)],'dir':_0x355c57['skillDir'],'files':_0x355c57[_0x236622(0xc1)][_0x236622(0xb2)]['map'](_0x283698=>_0x283698['path'])},'message':_0x236622(0xaf)+_0x355c57[_0x236622(0xc1)]['skillName']};}};function buildSkillCreatePlan(_0x168ebd,_0xc6b1ee,_0x29aa18){const _0x23f016=a66_0x39511d,_0x1266bb=_0xc6b1ee[_0x23f016(0xc2)](),_0x27fd83=renderSkillTemplate({'skillName':_0x168ebd,'type':_0x1266bb});!_0x1266bb&&writeCliSideChannelLine('Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.');const _0x45cce8=resolve(normalizeSkillTarget(_0x29aa18));return{'rendered':_0x27fd83,'targetRoot':_0x45cce8,'skillDir':resolve(_0x45cce8,_0x27fd83[_0x23f016(0xc7)])};}function normalizeSkillTarget(_0x1023ec){return(_0x1023ec||DEFAULT_SKILL_TARGET)['trim']()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x5a6839,_0x1e2bba){const _0x54ec25=a66_0x39511d;if(existsSync(_0x5a6839[_0x54ec25(0xcb)])){const _0x21f920=lstatSync(_0x5a6839['skillDir']);if(!_0x21f920[_0x54ec25(0xc0)]()||_0x21f920['isSymbolicLink']())throw CliErrors[_0x54ec25(0xbd)](_0x54ec25(0xce)+_0x5a6839['skillDir']);if(!_0x1e2bba)throw CliErrors['validation']('Skill\x20directory\x20already\x20exists:\x20'+_0x5a6839[_0x54ec25(0xcb)],_0x54ec25(0xb1));}for(const _0x5ee8cc of _0x5a6839[_0x54ec25(0xc1)]['files']){const _0x17119f=resolve(_0x5a6839[_0x54ec25(0xcb)],_0x5ee8cc[_0x54ec25(0xbe)]),_0x10cdd5=dirname(_0x17119f);mkdirSync(_0x10cdd5,{'recursive':!![]});if(existsSync(_0x17119f)&&lstatSync(_0x17119f)['isSymbolicLink']())throw CliErrors[_0x54ec25(0xbd)](_0x54ec25(0xc6)+_0x17119f);writeFileSync(_0x17119f,_0x5ee8cc[_0x54ec25(0xbc)],_0x54ec25(0xcc));}}
@@ -1 +1 @@
1
- const a67_0x45eaf1=a67_0x182b;(function(_0x4f4dda,_0x422431){const _0x3a54cb=a67_0x182b,_0x40fce4=_0x4f4dda();while(!![]){try{const _0x109385=parseInt(_0x3a54cb(0xa5))/0x1*(parseInt(_0x3a54cb(0xac))/0x2)+parseInt(_0x3a54cb(0x9d))/0x3*(-parseInt(_0x3a54cb(0xa9))/0x4)+parseInt(_0x3a54cb(0xb8))/0x5*(parseInt(_0x3a54cb(0xb4))/0x6)+parseInt(_0x3a54cb(0x97))/0x7*(-parseInt(_0x3a54cb(0xa1))/0x8)+-parseInt(_0x3a54cb(0xae))/0x9+parseInt(_0x3a54cb(0xa2))/0xa*(-parseInt(_0x3a54cb(0xa7))/0xb)+parseInt(_0x3a54cb(0x96))/0xc;if(_0x109385===_0x422431)break;else _0x40fce4['push'](_0x40fce4['shift']());}catch(_0xc916d2){_0x40fce4['push'](_0x40fce4['shift']());}}}(a67_0xe9c8,0xb65f0));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';import{readRequiredSkillDiagram}from'../diagram.js';import{DIAGRAM_FILE_FLAG,DIAGRAM_SCOPE_FLAG,DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,SOURCE_FINGERPRINT_FLAG}from'../flags.js';const TARGET_FLAGS=[DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,DIAGRAM_SCOPE_FLAG],WRITE_FLAGS=[...TARGET_FLAGS,SOURCE_FINGERPRINT_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,DIAGRAM_FILE_FLAG];function readDiagramTarget(_0x15cb9a){const _0x5b2968=a67_0x182b,_0xf4e9eb=_0x15cb9a[_0x5b2968(0xa8)](_0x5b2968(0xa0))[_0x5b2968(0x94)](),_0x244c35=_0x15cb9a[_0x5b2968(0xa8)](_0x5b2968(0x95))[_0x5b2968(0x94)](),_0x111076=_0x15cb9a['str'](_0x5b2968(0x9e));if(!_0xf4e9eb||!_0x244c35||_0x111076!==_0x5b2968(0x91)&&_0x111076!==_0x5b2968(0xbc))throw CliErrors[_0x5b2968(0x98)](_0x5b2968(0x99));return{'skillCode':_0xf4e9eb,'version':_0x244c35,'scope':_0x111076};}function a67_0xe9c8(){const _0x59d9f5=['Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','trim','version','32597268AnCwot','138922ZbAEjF','validation','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','expectedDiagramRevision','source-fingerprint','unchanged','15RlTvIb','scope','Skill\x20diagram\x20for\x20','skill-code','544tyHJQm','20PYRkay','expected-diagram-revision','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','235149qsNuhC','diagram-show','5175995euSnNh','str','665404MRiUMZ','skillCode','\x20is\x20unchanged.','6RRqDft','\x20Skill\x20diagram\x20for\x20','4484295WegupJ','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','write','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','test','skill','6HhJDtk','read','Created','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','4728670pCQmjx','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.','found',';\x20first\x20write\x20expects\x20revision\x20','company','action','created','diagram-validate','appCode','diagram-push','personal','num'];a67_0xe9c8=function(){return _0x59d9f5;};return a67_0xe9c8();}function a67_0x182b(_0x21fe1c,_0x3dc7c9){_0x21fe1c=_0x21fe1c-0x8d;const _0xe9c882=a67_0xe9c8();let _0x182bb4=_0xe9c882[_0x21fe1c];return _0x182bb4;}async function readDiagramWriteInput(_0x370499){const _0x3292cf=a67_0x182b,_0x575bdb=_0x370499[_0x3292cf(0x92)](_0x3292cf(0xa3)),_0x130ab6=_0x370499[_0x3292cf(0xa8)](_0x3292cf(0x9b))['trim']();if(!Number['isInteger'](_0x575bdb)||_0x575bdb<0x0)throw CliErrors[_0x3292cf(0x98)](_0x3292cf(0xa4));if(!/^sha256:[0-9a-f]{64}$/[_0x3292cf(0xb2)](_0x130ab6))throw CliErrors[_0x3292cf(0x98)](_0x3292cf(0xb1));return{'expectedDiagramRevision':_0x575bdb,'sourceFingerprint':_0x130ab6,'diagram':await readRequiredSkillDiagram(_0x370499[_0x3292cf(0xa8)]('diagram-file'))};}export const diagramValidateCommand={'service':'skill','command':a67_0x45eaf1(0x8e),'description':a67_0x45eaf1(0x93),'risk':a67_0x45eaf1(0xb5),'flags':WRITE_FLAGS,async 'execute'(_0x482fb7){const _0x449131=a67_0x45eaf1,_0x4e4996=readDiagramTarget(_0x482fb7),_0x70fad8=await validateRuntimeSkillVersionDiagram(_0x482fb7[_0x449131(0x8f)],_0x4e4996['skillCode'],_0x4e4996[_0x449131(0x95)],_0x4e4996[_0x449131(0x9e)],await readDiagramWriteInput(_0x482fb7));return{'ok':!![],'data':_0x70fad8,'message':'Skill\x20diagram\x20validation\x20passed\x20for\x20'+_0x4e4996[_0x449131(0xaa)]+'@'+_0x4e4996[_0x449131(0x95)]+'.'};}};export const diagramPushCommand={'service':a67_0x45eaf1(0xb3),'command':a67_0x45eaf1(0x90),'description':'Create\x20or\x20replace\x20a\x20Mermaid\x20diagram\x20for\x20a\x20specific\x20Skill\x20version','risk':a67_0x45eaf1(0xb0),'confirmationDescription':a67_0x45eaf1(0xb9),'flags':WRITE_FLAGS,async 'execute'(_0x1b27b4){const _0x132324=a67_0x45eaf1,_0x2f5c63=readDiagramTarget(_0x1b27b4),_0x203b8d=await putRuntimeSkillVersionDiagram(_0x1b27b4[_0x132324(0x8f)],_0x2f5c63[_0x132324(0xaa)],_0x2f5c63[_0x132324(0x95)],_0x2f5c63[_0x132324(0x9e)],await readDiagramWriteInput(_0x1b27b4));return{'ok':!![],'data':_0x203b8d,'message':_0x203b8d[_0x132324(0xbd)]===_0x132324(0x9c)?_0x132324(0x9f)+_0x2f5c63[_0x132324(0xaa)]+'@'+_0x2f5c63[_0x132324(0x95)]+_0x132324(0xab):(_0x203b8d[_0x132324(0xbd)]===_0x132324(0x8d)?_0x132324(0xb6):'Updated')+_0x132324(0xad)+_0x2f5c63[_0x132324(0xaa)]+'@'+_0x2f5c63[_0x132324(0x95)]+'.'};}};export const diagramShowCommand={'service':'skill','command':a67_0x45eaf1(0xa6),'description':a67_0x45eaf1(0xb7),'risk':a67_0x45eaf1(0xb5),'flags':TARGET_FLAGS,async 'execute'(_0x433449){const _0x4126a1=a67_0x45eaf1,_0x770b7e=readDiagramTarget(_0x433449),_0x24cc08=await getRuntimeSkillVersionDiagram(_0x433449['appCode'],_0x770b7e[_0x4126a1(0xaa)],_0x770b7e[_0x4126a1(0x95)],_0x770b7e[_0x4126a1(0x9e)]);return{'ok':!![],'data':_0x24cc08,'message':_0x24cc08[_0x4126a1(0xba)]?'Found\x20Skill\x20diagram\x20for\x20'+_0x770b7e['skillCode']+'@'+_0x770b7e[_0x4126a1(0x95)]+';\x20next\x20write\x20expects\x20revision\x20'+_0x24cc08[_0x4126a1(0x9a)]+'.':_0x4126a1(0xaf)+_0x770b7e[_0x4126a1(0xaa)]+'@'+_0x770b7e[_0x4126a1(0x95)]+_0x4126a1(0xbb)+_0x24cc08[_0x4126a1(0x9a)]+'.'};}};
1
+ const a67_0x5e34a0=a67_0x4920;(function(_0x37be6b,_0x5d4d5d){const _0x557a86=a67_0x4920,_0x24d504=_0x37be6b();while(!![]){try{const _0x554f43=parseInt(_0x557a86(0x1fd))/0x1+parseInt(_0x557a86(0x1fa))/0x2*(parseInt(_0x557a86(0x200))/0x3)+-parseInt(_0x557a86(0x1f3))/0x4+-parseInt(_0x557a86(0x1ec))/0x5*(parseInt(_0x557a86(0x1e8))/0x6)+-parseInt(_0x557a86(0x1e9))/0x7+-parseInt(_0x557a86(0x1f9))/0x8+parseInt(_0x557a86(0x209))/0x9*(parseInt(_0x557a86(0x1e1))/0xa);if(_0x554f43===_0x5d4d5d)break;else _0x24d504['push'](_0x24d504['shift']());}catch(_0xe127f7){_0x24d504['push'](_0x24d504['shift']());}}}(a67_0x57b1,0xb84fa));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';import{readRequiredSkillDiagram}from'../diagram.js';import{DIAGRAM_FILE_FLAG,DIAGRAM_SCOPE_FLAG,DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,SOURCE_FINGERPRINT_FLAG}from'../flags.js';function a67_0x57b1(){const _0x104168=['validation','found','\x20is\x20unchanged.','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','Skill\x20diagram\x20validation\x20passed\x20for\x20','read','unchanged','9CAabyT','version',';\x20first\x20write\x20expects\x20revision\x20','expectedDiagramRevision',';\x20next\x20write\x20expects\x20revision\x20','created','Creates\x20or\x20replaces\x20a\x20Mermaid\x20diagram\x20for\x20an\x20exact\x20Skill\x20version.\x20The\x20write\x20is\x20rejected\x20if\x20the\x20server\x20version\x20has\x20changed.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20the\x20diagram\x20body.','diagram-show','34790780PgZhqm','expected-diagram-revision','Created','isInteger','appCode','company','Create\x20or\x20replace\x20a\x20Mermaid\x20diagram\x20for\x20a\x20specific\x20Skill\x20version','45168rAjUcL','8728895GsGwUZ','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','write','365ZqTXXl','skillCode','skill','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','scope','diagram-push','skill-code','2285468xRPkvD','trim','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','diagram-validate','Updated','action','11877008AXdInk','459166VaIfpZ','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','test','898799FUosuR','str','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','3NNdMnO','Found\x20Skill\x20diagram\x20for\x20'];a67_0x57b1=function(){return _0x104168;};return a67_0x57b1();}function a67_0x4920(_0x433c74,_0x34a462){_0x433c74=_0x433c74-0x1df;const _0x57b11f=a67_0x57b1();let _0x4920ac=_0x57b11f[_0x433c74];return _0x4920ac;}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(_0x2ad57f){const _0x2c8577=a67_0x4920,_0x2cf240=_0x2ad57f[_0x2c8577(0x1fe)](_0x2c8577(0x1f2))[_0x2c8577(0x1f4)](),_0x138e7a=_0x2ad57f['str']('version')['trim'](),_0xd24731=_0x2ad57f[_0x2c8577(0x1fe)](_0x2c8577(0x1f0));if(!_0x2cf240||!_0x138e7a||_0xd24731!=='personal'&&_0xd24731!==_0x2c8577(0x1e6))throw CliErrors[_0x2c8577(0x202)](_0x2c8577(0x1ef));return{'skillCode':_0x2cf240,'version':_0x138e7a,'scope':_0xd24731};}async function readDiagramWriteInput(_0x5ccd9e){const _0x595fb9=a67_0x4920,_0xa767f9=_0x5ccd9e['num'](_0x595fb9(0x1e2)),_0x2dddc=_0x5ccd9e[_0x595fb9(0x1fe)]('source-fingerprint')[_0x595fb9(0x1f4)]();if(!Number[_0x595fb9(0x1e4)](_0xa767f9)||_0xa767f9<0x0)throw CliErrors[_0x595fb9(0x202)](_0x595fb9(0x1f5));if(!/^sha256:[0-9a-f]{64}$/[_0x595fb9(0x1fc)](_0x2dddc))throw CliErrors[_0x595fb9(0x202)](_0x595fb9(0x1fb));return{'expectedDiagramRevision':_0xa767f9,'sourceFingerprint':_0x2dddc,'diagram':await readRequiredSkillDiagram(_0x5ccd9e['str']('diagram-file'))};}export const diagramValidateCommand={'service':a67_0x5e34a0(0x1ee),'command':a67_0x5e34a0(0x1f6),'description':a67_0x5e34a0(0x1ff),'risk':a67_0x5e34a0(0x207),'flags':WRITE_FLAGS,async 'execute'(_0x507efd){const _0x3cca8c=a67_0x5e34a0,_0x4c0c48=readDiagramTarget(_0x507efd),_0x36efbc=await validateRuntimeSkillVersionDiagram(_0x507efd[_0x3cca8c(0x1e5)],_0x4c0c48['skillCode'],_0x4c0c48[_0x3cca8c(0x20a)],_0x4c0c48[_0x3cca8c(0x1f0)],await readDiagramWriteInput(_0x507efd));return{'ok':!![],'data':_0x36efbc,'message':_0x3cca8c(0x206)+_0x4c0c48[_0x3cca8c(0x1ed)]+'@'+_0x4c0c48[_0x3cca8c(0x20a)]+'.'};}};export const diagramPushCommand={'service':a67_0x5e34a0(0x1ee),'command':a67_0x5e34a0(0x1f1),'description':a67_0x5e34a0(0x1e7),'risk':a67_0x5e34a0(0x1eb),'confirmationDescription':a67_0x5e34a0(0x1df),'flags':WRITE_FLAGS,async 'execute'(_0x2ac8b2){const _0x38f292=a67_0x5e34a0,_0x730ceb=readDiagramTarget(_0x2ac8b2),_0x12ad47=await putRuntimeSkillVersionDiagram(_0x2ac8b2[_0x38f292(0x1e5)],_0x730ceb[_0x38f292(0x1ed)],_0x730ceb[_0x38f292(0x20a)],_0x730ceb[_0x38f292(0x1f0)],await readDiagramWriteInput(_0x2ac8b2));return{'ok':!![],'data':_0x12ad47,'message':_0x12ad47[_0x38f292(0x1f8)]===_0x38f292(0x208)?'Skill\x20diagram\x20for\x20'+_0x730ceb[_0x38f292(0x1ed)]+'@'+_0x730ceb[_0x38f292(0x20a)]+_0x38f292(0x204):(_0x12ad47[_0x38f292(0x1f8)]===_0x38f292(0x20e)?_0x38f292(0x1e3):_0x38f292(0x1f7))+'\x20Skill\x20diagram\x20for\x20'+_0x730ceb['skillCode']+'@'+_0x730ceb[_0x38f292(0x20a)]+'.'};}};export const diagramShowCommand={'service':a67_0x5e34a0(0x1ee),'command':a67_0x5e34a0(0x1e0),'description':a67_0x5e34a0(0x1ea),'risk':'read','flags':TARGET_FLAGS,async 'execute'(_0x14b56f){const _0x4b7dd9=a67_0x5e34a0,_0xd4bb99=readDiagramTarget(_0x14b56f),_0x167e12=await getRuntimeSkillVersionDiagram(_0x14b56f[_0x4b7dd9(0x1e5)],_0xd4bb99[_0x4b7dd9(0x1ed)],_0xd4bb99[_0x4b7dd9(0x20a)],_0xd4bb99[_0x4b7dd9(0x1f0)]);return{'ok':!![],'data':_0x167e12,'message':_0x167e12[_0x4b7dd9(0x203)]?_0x4b7dd9(0x201)+_0xd4bb99[_0x4b7dd9(0x1ed)]+'@'+_0xd4bb99[_0x4b7dd9(0x20a)]+_0x4b7dd9(0x20d)+_0x167e12['expectedDiagramRevision']+'.':_0x4b7dd9(0x205)+_0xd4bb99[_0x4b7dd9(0x1ed)]+'@'+_0xd4bb99['version']+_0x4b7dd9(0x20b)+_0x167e12[_0x4b7dd9(0x20c)]+'.'};}};