@lovrabet/lovrabet-cli 2.3.2-beta.3 → 2.3.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 (166) hide show
  1. package/lib/cli.js +1 -1
  2. package/lib/commands/api-doc/index.js +1 -1
  3. package/lib/commands/app/cache.js +1 -1
  4. package/lib/commands/app/definitions.js +1 -1
  5. package/lib/commands/app/eligibility.js +1 -1
  6. package/lib/commands/app/mock-loader.js +1 -1
  7. package/lib/commands/app/remote-source.js +1 -1
  8. package/lib/commands/app/shared.js +1 -1
  9. package/lib/commands/app-config/get.js +1 -1
  10. package/lib/commands/app-config/index.js +1 -1
  11. package/lib/commands/artifact/index.js +1 -1
  12. package/lib/commands/auth/device.js +1 -1
  13. package/lib/commands/auth/index.js +1 -1
  14. package/lib/commands/auth/prompt.js +1 -1
  15. package/lib/commands/bff/detail.js +1 -1
  16. package/lib/commands/bff/exec.js +1 -1
  17. package/lib/commands/bff/index.js +1 -1
  18. package/lib/commands/cli-skill/index.js +1 -1
  19. package/lib/commands/common/config-policy.js +1 -1
  20. package/lib/commands/common/constraints.js +1 -1
  21. package/lib/commands/common/flags.js +1 -1
  22. package/lib/commands/common/local-file.js +1 -1
  23. package/lib/commands/config/definitions.js +1 -1
  24. package/lib/commands/config/init.js +1 -1
  25. package/lib/commands/config/shared.js +1 -1
  26. package/lib/commands/data/index.js +1 -1
  27. package/lib/commands/dataset/detail.js +1 -1
  28. package/lib/commands/dataset/index.js +1 -1
  29. package/lib/commands/dataset/list.js +1 -1
  30. package/lib/commands/dataset/sdk-doc.js +1 -1
  31. package/lib/commands/doctor.js +1 -1
  32. package/lib/commands/file/index.js +1 -1
  33. package/lib/commands/init.js +1 -1
  34. package/lib/commands/kb/index.js +1 -1
  35. package/lib/commands/logs/index.js +1 -1
  36. package/lib/commands/notification/config-list.js +1 -1
  37. package/lib/commands/notification/index.js +1 -1
  38. package/lib/commands/notification/shared.js +1 -1
  39. package/lib/commands/ocr/index.js +1 -1
  40. package/lib/commands/permit/dataset-get.js +1 -1
  41. package/lib/commands/permit/dataset-set.js +1 -1
  42. package/lib/commands/permit/index.js +1 -1
  43. package/lib/commands/permit/page-get.js +1 -1
  44. package/lib/commands/permit/page-set.js +1 -1
  45. package/lib/commands/permit/role-menus-set.js +1 -1
  46. package/lib/commands/permit/role-menus.js +1 -1
  47. package/lib/commands/permit/shared.js +1 -1
  48. package/lib/commands/personal-bff/index.js +1 -1
  49. package/lib/commands/registry.js +1 -1
  50. package/lib/commands/role/create.js +1 -1
  51. package/lib/commands/role/delete.js +1 -1
  52. package/lib/commands/role/detail.js +1 -1
  53. package/lib/commands/role/index.js +1 -1
  54. package/lib/commands/role/list.js +1 -1
  55. package/lib/commands/role/shared.js +1 -1
  56. package/lib/commands/role/update.js +1 -1
  57. package/lib/commands/role/user-add.js +1 -1
  58. package/lib/commands/role/user-remove.js +1 -1
  59. package/lib/commands/schedule/index.js +1 -1
  60. package/lib/commands/schema.js +1 -1
  61. package/lib/commands/service/dynamic.js +1 -1
  62. package/lib/commands/service/function-name-adapter.js +1 -1
  63. package/lib/commands/service/index.js +1 -1
  64. package/lib/commands/service/registry.js +1 -1
  65. package/lib/commands/skill/commands/create.js +1 -1
  66. package/lib/commands/skill/commands/diagram.js +1 -1
  67. package/lib/commands/skill/commands/install.js +1 -1
  68. package/lib/commands/skill/commands/list.js +1 -1
  69. package/lib/commands/skill/commands/push.js +1 -1
  70. package/lib/commands/skill/commands/validate.js +1 -1
  71. package/lib/commands/skill/diagram.js +1 -1
  72. package/lib/commands/skill/flags.js +1 -1
  73. package/lib/commands/skill/index.js +1 -1
  74. package/lib/commands/skill/manifest-helpers.js +1 -1
  75. package/lib/commands/skill/push-execute.js +1 -1
  76. package/lib/commands/skill/push-flow-helpers.js +1 -1
  77. package/lib/commands/skill/push-retarget.js +1 -1
  78. package/lib/commands/skill/scopes.js +1 -1
  79. package/lib/commands/skill/summary.js +1 -1
  80. package/lib/commands/skill/templates.js +1 -1
  81. package/lib/commands/skill/validate.js +1 -1
  82. package/lib/commands/sql/detail.js +1 -1
  83. package/lib/commands/sql/exec.js +1 -1
  84. package/lib/commands/sql/index.js +1 -1
  85. package/lib/commands/update.js +1 -1
  86. package/lib/commands/user-account/bind.js +1 -1
  87. package/lib/commands/user-account/index.js +1 -1
  88. package/lib/commands/workspace/index.js +1 -1
  89. package/lib/config/domain-config.js +1 -1
  90. package/lib/config/schema.js +1 -1
  91. package/lib/constant/app.js +1 -1
  92. package/lib/constant/auth-mode.js +1 -1
  93. package/lib/constant/cli.js +1 -1
  94. package/lib/constant/defaults.js +1 -1
  95. package/lib/constant/distribution.js +1 -1
  96. package/lib/constant/domain.js +1 -1
  97. package/lib/constant/env.js +1 -1
  98. package/lib/constant/output.js +1 -1
  99. package/lib/constant/product.js +1 -1
  100. package/lib/constant/region.js +1 -1
  101. package/lib/constant/risk.js +1 -1
  102. package/lib/constant/url.js +1 -1
  103. package/lib/context.js +1 -1
  104. package/lib/core/api-client.js +1 -1
  105. package/lib/core/db-resolver.js +1 -1
  106. package/lib/core/kb-search-client.js +1 -1
  107. package/lib/core/sdk-client.js +1 -1
  108. package/lib/errors.js +1 -1
  109. package/lib/framework/build-all-flags.js +1 -1
  110. package/lib/framework/dryrun.js +1 -1
  111. package/lib/framework/flags.js +1 -1
  112. package/lib/framework/help.js +1 -1
  113. package/lib/framework/index.js +1 -1
  114. package/lib/framework/output.js +1 -1
  115. package/lib/framework/preparse.js +1 -1
  116. package/lib/framework/rate-limit.js +1 -1
  117. package/lib/framework/raw-flags.js +1 -1
  118. package/lib/framework/response.js +1 -1
  119. package/lib/framework/runner-confirmation.js +1 -1
  120. package/lib/framework/runner-error.js +1 -1
  121. package/lib/framework/runner.js +1 -1
  122. package/lib/framework/schema-export.js +1 -1
  123. package/lib/framework/service-order.js +1 -1
  124. package/lib/framework/types.js +1 -1
  125. package/lib/generated/build-info.d.ts +4 -4
  126. package/lib/generated/build-info.js +1 -1
  127. package/lib/generated/official-routing.js +1 -1
  128. package/lib/generated/routing-contract.js +1 -1
  129. package/lib/help.js +1 -1
  130. package/lib/postinstall.js +1 -1
  131. package/lib/runtime/confirmation.js +1 -1
  132. package/lib/runtime/event.js +1 -1
  133. package/lib/runtime/index.js +1 -1
  134. package/lib/runtime/queue.js +1 -1
  135. package/lib/runtime/resolve.js +1 -1
  136. package/lib/skills/builtin-skill.js +1 -1
  137. package/lib/skills/npx-skills-add.js +1 -1
  138. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  139. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  140. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  141. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  142. package/lib/skills/runtime-skill-sync/links.js +1 -1
  143. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  144. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  145. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  146. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  147. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  148. package/lib/skills/runtime-skill-sync/push.js +1 -1
  149. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  150. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  151. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  152. package/lib/skills/runtime-skill-sync.js +1 -1
  153. package/lib/skills/skill-presence.js +1 -1
  154. package/lib/utils/access-key-redaction.js +1 -1
  155. package/lib/utils/apply-jq-filter.js +1 -1
  156. package/lib/utils/cli-version-check.js +1 -1
  157. package/lib/utils/cli-version-policy.js +1 -1
  158. package/lib/utils/logger.js +1 -1
  159. package/lib/utils/lossless-json.js +1 -1
  160. package/lib/utils/params.js +1 -1
  161. package/lib/utils/update-notice.js +1 -1
  162. package/lib/utils/version.js +1 -1
  163. package/lib/utils/write-cli-side-channel.js +1 -1
  164. package/package.json +1 -1
  165. package/skills/lovrabet/SKILL.md +1 -1
  166. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- function a55_0x34b9(_0x4a88e9,_0x28b955){_0x4a88e9=_0x4a88e9-0x19d;const _0x1596c3=a55_0x1596();let _0x34b9a3=_0x1596c3[_0x4a88e9];return _0x34b9a3;}const a55_0x48524b=a55_0x34b9;(function(_0x4ebcc8,_0x537184){const _0xee9843=a55_0x34b9,_0x176606=_0x4ebcc8();while(!![]){try{const _0x3a4b11=parseInt(_0xee9843(0x19d))/0x1+parseInt(_0xee9843(0x1b0))/0x2*(parseInt(_0xee9843(0x19f))/0x3)+parseInt(_0xee9843(0x1ae))/0x4+parseInt(_0xee9843(0x1b9))/0x5*(-parseInt(_0xee9843(0x1aa))/0x6)+-parseInt(_0xee9843(0x1b8))/0x7*(parseInt(_0xee9843(0x1af))/0x8)+parseInt(_0xee9843(0x1a0))/0x9*(parseInt(_0xee9843(0x1a3))/0xa)+-parseInt(_0xee9843(0x1b3))/0xb*(parseInt(_0xee9843(0x1a6))/0xc);if(_0x3a4b11===_0x537184)break;else _0x176606['push'](_0x176606['shift']());}catch(_0x2b4cf8){_0x176606['push'](_0x176606['shift']());}}}(a55_0x1596,0xae3f7));import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x3cb99a){const _0x11dbc5=a55_0x34b9,_0x2d77a8=_0x3cb99a[_0x11dbc5(0x1a1)](_0x11dbc5(0x1a2))!==undefined,_0x5dfef6=_0x3cb99a[_0x11dbc5(0x1a1)](_0x11dbc5(0x1b5))!==undefined,_0x1e91df=_0x3cb99a['flag'](_0x11dbc5(0x1b7))!==undefined;if(!_0x2d77a8&&!_0x5dfef6&&!_0x1e91df)throw CliErrors['validation'](_0x11dbc5(0x1a4));const _0xc093fd=readOptionalRuntimeRoleCode(_0x3cb99a),_0x3cca83=_0x3cb99a[_0x11dbc5(0x19e)](_0x11dbc5(0x1b5))[_0x11dbc5(0x1b2)](),_0x41887f=_0x3cb99a[_0x11dbc5(0x19e)]('remark')[_0x11dbc5(0x1b2)]();if(_0x5dfef6&&!_0x3cca83)throw CliErrors[_0x11dbc5(0x1bf)]('--name\x20must\x20not\x20be\x20blank.');if(_0x1e91df&&!_0x41887f)throw CliErrors[_0x11dbc5(0x1bf)](_0x11dbc5(0x1ac),_0x11dbc5(0x1b4));return{..._0xc093fd?{'roleCode':_0xc093fd}:{},..._0x5dfef6?{'roleName':_0x3cca83}:{},..._0x1e91df?{'remark':_0x41887f}:{}};}async function prepare(_0x2b0719){const _0x2b74ec=a55_0x34b9,_0x28ad5e=await getRuntimeRoleById(_0x2b0719[_0x2b74ec(0x1b1)],_0x2b0719[_0x2b74ec(0x1a7)]('id'));return assertCustomRuntimeRole(_0x28ad5e,_0x2b74ec(0x1bc)),{'role':_0x28ad5e,'body':{'id':_0x28ad5e['id'],'appCode':_0x2b0719[_0x2b74ec(0x1b1)],...updateFields(_0x2b0719)}};}function a55_0x1596(){const _0x2c3692=['name','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','remark','7VrcrEA','1291205mPxhiJ','high-risk-write','string','update','role','New\x20non-empty\x20role\x20remark','validation','101404YPiBRl','str','2833491cluAFI','8919VlLJLp','flag','role-code','11350SQmfJy','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','132aNCaUA','num','New\x20role\x20name','body','6dqKiLA','/client/permit/role/update','--remark\x20must\x20not\x20be\x20blank.','POST','4967656upPhhs','6093768sAsfMF','2YhnFDL','appCode','trim','1678919vYSKVV','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.'];a55_0x1596=function(){return _0x2c3692;};return a55_0x1596();}export const roleUpdate={'service':a55_0x48524b(0x1bd),'command':'update','description':a55_0x48524b(0x1a5),'risk':a55_0x48524b(0x1ba),'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':a55_0x48524b(0x1bb),'description':a55_0x48524b(0x1a8)},{'name':a55_0x48524b(0x1b7),'type':a55_0x48524b(0x1bb),'description':a55_0x48524b(0x1be)}],async 'validate'(_0x54e6f4){updateFields(_0x54e6f4);},async 'dryRun'(_0x1586a8){const _0x1fb363=a55_0x48524b,{body:_0x88682c}=await prepare(_0x1586a8);return dryRun(_0x1fb363(0x1ad),'/client/permit/role/update')[_0x1fb363(0x1a9)](_0x88682c)['description'](_0x1fb363(0x1b6))['build']();},async 'execute'(_0x39c39c){const _0x9bc01a=a55_0x48524b,{role:_0xa78f53,body:_0x5b0900}=await prepare(_0x39c39c),_0x3f62d2=await updateRuntimeAppRole(_0x5b0900);return{'ok':!![],'data':runtimeRoleWriteResult(_0x9bc01a(0x1bc),{'roleId':_0xa78f53['id']},projectRuntimeRole(_0xa78f53),projectRuntimeRole(_0x3f62d2),{'method':_0x9bc01a(0x1ad),'path':_0x9bc01a(0x1ab)})};}};
1
+ function a55_0x21c7(){const _0x119e8c=['28nZBuEc','body','trim','176txpWEy','159060tUpisV','Preview:\x20update\x20a\x20runtime\x20CUSTOM\x20role','5021706leXoiZ','99zcfWfq','appCode','string','validation','82572PXrYKQ','14GMDXWL','high-risk-write','build','flag','/client/permit/role/update','10zGIEtB','name','update','18Yhmgmk','description','Update\x20a\x20runtime\x20CUSTOM\x20role\x27s\x20code,\x20name,\x20or\x20remark','role-code','The\x20current\x20runtime\x20role\x20API\x20does\x20not\x20support\x20clearing\x20an\x20existing\x20remark.','Pass\x20--role-code,\x20--name,\x20or\x20--remark\x20to\x20update\x20the\x20runtime\x20role.','6242590YIjzsF','str','POST','345695LXQejp','remark','--remark\x20must\x20not\x20be\x20blank.','num','160aTbZui','229815BGdlur','891462IqgJIC','--name\x20must\x20not\x20be\x20blank.','role'];a55_0x21c7=function(){return _0x119e8c;};return a55_0x21c7();}function a55_0x703f(_0x5226de,_0x12a980){_0x5226de=_0x5226de-0xce;const _0x21c778=a55_0x21c7();let _0x703f46=_0x21c778[_0x5226de];return _0x703f46;}const a55_0x3ea7f2=a55_0x703f;(function(_0xd24515,_0x5f42f3){const _0x28714a=a55_0x703f,_0x46cb19=_0xd24515();while(!![]){try{const _0x500751=parseInt(_0x28714a(0xe4))/0x1*(parseInt(_0x28714a(0xce))/0x2)+-parseInt(_0x28714a(0xef))/0x3*(-parseInt(_0x28714a(0xec))/0x4)+parseInt(_0x28714a(0xd3))/0x5*(-parseInt(_0x28714a(0xee))/0x6)+parseInt(_0x28714a(0xdf))/0x7*(parseInt(_0x28714a(0xe3))/0x8)+-parseInt(_0x28714a(0xd6))/0x9*(parseInt(_0x28714a(0xdc))/0xa)+-parseInt(_0x28714a(0xeb))/0xb*(-parseInt(_0x28714a(0xf3))/0xc)+-parseInt(_0x28714a(0xe5))/0xd*(parseInt(_0x28714a(0xe8))/0xe);if(_0x500751===_0x5f42f3)break;else _0x46cb19['push'](_0x46cb19['shift']());}catch(_0x52b385){_0x46cb19['push'](_0x46cb19['shift']());}}}(a55_0x21c7,0xea2ca));import{updateRuntimeAppRole}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{assertCustomRuntimeRole,getRuntimeRoleById,projectRuntimeRole,readOptionalRuntimeRoleCode,ROLE_CODE_FLAG,ROLE_ID_FLAG,runtimeRoleWriteResult}from'../../commands/role/shared.js';function updateFields(_0x4d2ad7){const _0x1154ca=a55_0x703f,_0x31cb39=_0x4d2ad7[_0x1154ca(0xd1)](_0x1154ca(0xd9))!==undefined,_0x38a246=_0x4d2ad7[_0x1154ca(0xd1)](_0x1154ca(0xd4))!==undefined,_0x1325be=_0x4d2ad7[_0x1154ca(0xd1)]('remark')!==undefined;if(!_0x31cb39&&!_0x38a246&&!_0x1325be)throw CliErrors[_0x1154ca(0xf2)](_0x1154ca(0xdb));const _0x12ff85=readOptionalRuntimeRoleCode(_0x4d2ad7),_0x53e713=_0x4d2ad7[_0x1154ca(0xdd)](_0x1154ca(0xd4))['trim'](),_0x4dd23f=_0x4d2ad7['str'](_0x1154ca(0xe0))[_0x1154ca(0xea)]();if(_0x38a246&&!_0x53e713)throw CliErrors[_0x1154ca(0xf2)](_0x1154ca(0xe6));if(_0x1325be&&!_0x4dd23f)throw CliErrors['validation'](_0x1154ca(0xe1),_0x1154ca(0xda));return{..._0x12ff85?{'roleCode':_0x12ff85}:{},..._0x38a246?{'roleName':_0x53e713}:{},..._0x1325be?{'remark':_0x4dd23f}:{}};}async function prepare(_0x2aae97){const _0x59792a=a55_0x703f,_0x460582=await getRuntimeRoleById(_0x2aae97['appCode'],_0x2aae97[_0x59792a(0xe2)]('id'));return assertCustomRuntimeRole(_0x460582,'update'),{'role':_0x460582,'body':{'id':_0x460582['id'],'appCode':_0x2aae97[_0x59792a(0xf0)],...updateFields(_0x2aae97)}};}export const roleUpdate={'service':a55_0x3ea7f2(0xe7),'command':'update','description':a55_0x3ea7f2(0xd8),'risk':a55_0x3ea7f2(0xcf),'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':a55_0x3ea7f2(0xf1),'description':'New\x20role\x20name'},{'name':a55_0x3ea7f2(0xe0),'type':a55_0x3ea7f2(0xf1),'description':'New\x20non-empty\x20role\x20remark'}],async 'validate'(_0x366c3d){updateFields(_0x366c3d);},async 'dryRun'(_0x1ab447){const _0x6b9b83=a55_0x3ea7f2,{body:_0x3e8900}=await prepare(_0x1ab447);return dryRun(_0x6b9b83(0xde),_0x6b9b83(0xd2))[_0x6b9b83(0xe9)](_0x3e8900)[_0x6b9b83(0xd7)](_0x6b9b83(0xed))[_0x6b9b83(0xd0)]();},async 'execute'(_0x1357ec){const _0x3028dc=a55_0x3ea7f2,{role:_0x30d6f2,body:_0x552c1b}=await prepare(_0x1357ec),_0x1b45f2=await updateRuntimeAppRole(_0x552c1b);return{'ok':!![],'data':runtimeRoleWriteResult(_0x3028dc(0xd5),{'roleId':_0x30d6f2['id']},projectRuntimeRole(_0x30d6f2),projectRuntimeRole(_0x1b45f2),{'method':_0x3028dc(0xde),'path':'/client/permit/role/update'})};}};
@@ -1 +1 @@
1
- function a56_0xdad2(_0x5b8e51,_0x3c9680){_0x5b8e51=_0x5b8e51-0xe7;const _0x120cc6=a56_0x120c();let _0xdad21a=_0x120cc6[_0x5b8e51];return _0xdad21a;}function a56_0x120c(){const _0x71c4be=['6738830RjMlqA','3997050IzlfNn','120568wakQcJ','shouldWrite','231740liYnos','/client/permit/user-role/update-user-list','description','roleList','after','before','1572627zooVUL','body','1585dBuNeH','176eBeycQ','appCode','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','build','high-risk-write','warnings','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','400820yJhYXE','role','user-add','15444cCxKnd','18hsvqOJ','POST'];a56_0x120c=function(){return _0x71c4be;};return a56_0x120c();}const a56_0x1cfaee=a56_0xdad2;(function(_0x13c399,_0x229b90){const _0x14985e=a56_0xdad2,_0x36f067=_0x13c399();while(!![]){try{const _0x1edff7=-parseInt(_0x14985e(0xe9))/0x1+parseInt(_0x14985e(0xf3))/0x2+-parseInt(_0x14985e(0xf9))/0x3+-parseInt(_0x14985e(0xec))/0x4*(-parseInt(_0x14985e(0xfb))/0x5)+-parseInt(_0x14985e(0xf0))/0x6+-parseInt(_0x14985e(0xf1))/0x7*(parseInt(_0x14985e(0xfc))/0x8)+parseInt(_0x14985e(0xed))/0x9*(parseInt(_0x14985e(0xef))/0xa);if(_0x1edff7===_0x229b90)break;else _0x36f067['push'](_0x36f067['shift']());}catch(_0xd5e4c0){_0x36f067['push'](_0x36f067['shift']());}}}(a56_0x120c,0xaf281));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserAdd={'service':a56_0x1cfaee(0xea),'command':a56_0x1cfaee(0xeb),'description':a56_0x1cfaee(0xfe),'risk':a56_0x1cfaee(0x100),'confirmationDescription':a56_0x1cfaee(0xe8),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x57234a){const _0x5240fa=a56_0x1cfaee,_0x5f2f44=await prepareRuntimeMemberMutation(_0x57234a,'user-add');return dryRun(_0x5240fa(0xee),_0x5240fa(0xf4))[_0x5240fa(0xfa)]({'appCode':_0x57234a[_0x5240fa(0xfd)],'roleList':_0x5f2f44[_0x5240fa(0xf6)]})[_0x5240fa(0xf5)](_0x5f2f44['shouldWrite']?'Preview:\x20add\x20runtime\x20role\x20member':_0x5f2f44[_0x5240fa(0xe7)][0x0])[_0x5240fa(0xff)]();},async 'execute'(_0x3d6d10){const _0x432c8e=a56_0x1cfaee,_0x116bf2=await prepareRuntimeMemberMutation(_0x3d6d10,_0x432c8e(0xeb));return _0x116bf2[_0x432c8e(0xf2)]&&await updateRuntimeRoleUsers(_0x3d6d10['appCode'],_0x116bf2[_0x432c8e(0xf6)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x432c8e(0xeb),{'roleId':_0x116bf2['role']['id'],'userId':_0x116bf2['userId']},_0x116bf2[_0x432c8e(0xf8)],_0x116bf2[_0x432c8e(0xf7)],{'method':_0x432c8e(0xee),'path':_0x432c8e(0xf4)},_0x116bf2[_0x432c8e(0xe7)])};}};
1
+ const a56_0xa9f407=a56_0x1718;(function(_0x131a78,_0x4d7176){const _0xaeacf3=a56_0x1718,_0x25b2d7=_0x131a78();while(!![]){try{const _0x5a0c9f=-parseInt(_0xaeacf3(0x71))/0x1*(parseInt(_0xaeacf3(0x7d))/0x2)+-parseInt(_0xaeacf3(0x82))/0x3*(-parseInt(_0xaeacf3(0x86))/0x4)+-parseInt(_0xaeacf3(0x7a))/0x5*(parseInt(_0xaeacf3(0x79))/0x6)+-parseInt(_0xaeacf3(0x83))/0x7+-parseInt(_0xaeacf3(0x85))/0x8*(-parseInt(_0xaeacf3(0x76))/0x9)+parseInt(_0xaeacf3(0x7f))/0xa+parseInt(_0xaeacf3(0x84))/0xb;if(_0x5a0c9f===_0x4d7176)break;else _0x25b2d7['push'](_0x25b2d7['shift']());}catch(_0x348957){_0x25b2d7['push'](_0x25b2d7['shift']());}}}(a56_0x4730,0x6079d));function a56_0x4730(){const _0x300920=['after','shouldWrite','role','/client/permit/user-role/update-user-list','before','2DDTPnt','roleList','description','user-add','appCode','13707YHyTmc','warnings','high-risk-write','6kolYnL','78395JbqHAD','Adds\x20the\x20given\x20runtime\x20user\x20to\x20the\x20target\x20role.\x20The\x20user\x20receives\x20the\x20permissions\x20of\x20that\x20role.','Add\x20a\x20numeric\x20userId\x20to\x20one\x20runtime\x20role','741932QQbJPM','build','7143120TrDkCL','POST','Preview:\x20add\x20runtime\x20role\x20member','260259rWzxoe','1402107NmJjSm','3142271YkTqbr','32XnAOWR','16TIVPGW'];a56_0x4730=function(){return _0x300920;};return a56_0x4730();}function a56_0x1718(_0x3955f2,_0x2c54c9){_0x3955f2=_0x3955f2-0x6e;const _0x47305b=a56_0x4730();let _0x17183a=_0x47305b[_0x3955f2];return _0x17183a;}import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserAdd={'service':a56_0xa9f407(0x6e),'command':a56_0xa9f407(0x74),'description':a56_0xa9f407(0x7c),'risk':a56_0xa9f407(0x78),'confirmationDescription':a56_0xa9f407(0x7b),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x40551c){const _0x1c1c99=a56_0xa9f407,_0x543d5=await prepareRuntimeMemberMutation(_0x40551c,_0x1c1c99(0x74));return dryRun(_0x1c1c99(0x80),_0x1c1c99(0x6f))['body']({'appCode':_0x40551c[_0x1c1c99(0x75)],'roleList':_0x543d5[_0x1c1c99(0x72)]})[_0x1c1c99(0x73)](_0x543d5[_0x1c1c99(0x88)]?_0x1c1c99(0x81):_0x543d5[_0x1c1c99(0x77)][0x0])[_0x1c1c99(0x7e)]();},async 'execute'(_0x1a6339){const _0x1f59a9=a56_0xa9f407,_0x2e9f43=await prepareRuntimeMemberMutation(_0x1a6339,'user-add');return _0x2e9f43[_0x1f59a9(0x88)]&&await updateRuntimeRoleUsers(_0x1a6339['appCode'],_0x2e9f43['roleList']),{'ok':!![],'data':runtimeRoleWriteResult(_0x1f59a9(0x74),{'roleId':_0x2e9f43[_0x1f59a9(0x6e)]['id'],'userId':_0x2e9f43['userId']},_0x2e9f43[_0x1f59a9(0x70)],_0x2e9f43[_0x1f59a9(0x87)],{'method':'POST','path':_0x1f59a9(0x6f)},_0x2e9f43[_0x1f59a9(0x77)])};}};
@@ -1 +1 @@
1
- const a57_0x198a0a=a57_0x19a1;function a57_0x2b68(){const _0x58a48c=['body','5911941fDiiVb','10wWDOBw','8JimDuI','role','high-risk-write','user-remove','after','102CcNLdv','before','shouldWrite','POST','build','2013261XdeanA','userId','24mxPCZa','description','roleList','2392rTGAPA','/client/permit/user-role/update-user-list','86JgTLow','8520354moHxNo','154mXDxKo','81265bQdkhD','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','appCode','warnings','870818lCbBvo','Preview:\x20remove\x20runtime\x20role\x20member','4uxdulG','5907682qioGQA'];a57_0x2b68=function(){return _0x58a48c;};return a57_0x2b68();}(function(_0x5d3dd3,_0x5c4bc1){const _0x3aeee2=a57_0x19a1,_0x158753=_0x5d3dd3();while(!![]){try{const _0x4981f5=parseInt(_0x3aeee2(0x1d5))/0x1*(parseInt(_0x3aeee2(0x1d7))/0x2)+-parseInt(_0x3aeee2(0x1d0))/0x3*(parseInt(_0x3aeee2(0x1e0))/0x4)+-parseInt(_0x3aeee2(0x1da))/0x5*(parseInt(_0x3aeee2(0x1cb))/0x6)+-parseInt(_0x3aeee2(0x1c4))/0x7*(-parseInt(_0x3aeee2(0x1c6))/0x8)+-parseInt(_0x3aeee2(0x1d8))/0x9*(-parseInt(_0x3aeee2(0x1c5))/0xa)+parseInt(_0x3aeee2(0x1c2))/0xb*(-parseInt(_0x3aeee2(0x1d2))/0xc)+-parseInt(_0x3aeee2(0x1de))/0xd*(-parseInt(_0x3aeee2(0x1d9))/0xe);if(_0x4981f5===_0x5c4bc1)break;else _0x158753['push'](_0x158753['shift']());}catch(_0x4b8d72){_0x158753['push'](_0x158753['shift']());}}}(a57_0x2b68,0x94cb3));import{updateRuntimeRoleUsers}from'../../core/api-client.js';import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';function a57_0x19a1(_0x3e5b85,_0x182fad){_0x3e5b85=_0x3e5b85-0x1c2;const _0x2b68d2=a57_0x2b68();let _0x19a1c8=_0x2b68d2[_0x3e5b85];return _0x19a1c8;}export const roleUserRemove={'service':a57_0x198a0a(0x1c7),'command':a57_0x198a0a(0x1c9),'description':a57_0x198a0a(0x1db),'risk':a57_0x198a0a(0x1c8),'confirmationDescription':'Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x2470d2){const _0x5d0f1c=a57_0x198a0a,_0x2259b6=await prepareRuntimeMemberMutation(_0x2470d2,_0x5d0f1c(0x1c9));return dryRun(_0x5d0f1c(0x1ce),_0x5d0f1c(0x1d6))[_0x5d0f1c(0x1c3)]({'appCode':_0x2470d2[_0x5d0f1c(0x1dc)],'roleList':_0x2259b6[_0x5d0f1c(0x1d4)]})[_0x5d0f1c(0x1d3)](_0x2259b6[_0x5d0f1c(0x1cd)]?_0x5d0f1c(0x1df):_0x2259b6['warnings'][0x0])[_0x5d0f1c(0x1cf)]();},async 'execute'(_0x4406df){const _0x3e051b=a57_0x198a0a,_0x14cda5=await prepareRuntimeMemberMutation(_0x4406df,_0x3e051b(0x1c9));return _0x14cda5['shouldWrite']&&await updateRuntimeRoleUsers(_0x4406df[_0x3e051b(0x1dc)],_0x14cda5[_0x3e051b(0x1d4)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x3e051b(0x1c9),{'roleId':_0x14cda5[_0x3e051b(0x1c7)]['id'],'userId':_0x14cda5[_0x3e051b(0x1d1)]},_0x14cda5[_0x3e051b(0x1cc)],_0x14cda5[_0x3e051b(0x1ca)],{'method':_0x3e051b(0x1ce),'path':_0x3e051b(0x1d6)},_0x14cda5[_0x3e051b(0x1dd)])};}};
1
+ const a57_0x1ddc2a=a57_0x574e;(function(_0x317100,_0x3ab0df){const _0x49b2b5=a57_0x574e,_0x342ae9=_0x317100();while(!![]){try{const _0x5be166=parseInt(_0x49b2b5(0x1dc))/0x1+-parseInt(_0x49b2b5(0x1e9))/0x2*(-parseInt(_0x49b2b5(0x1d9))/0x3)+parseInt(_0x49b2b5(0x1dd))/0x4+-parseInt(_0x49b2b5(0x1e7))/0x5+parseInt(_0x49b2b5(0x1d7))/0x6+-parseInt(_0x49b2b5(0x1e0))/0x7+parseInt(_0x49b2b5(0x1df))/0x8;if(_0x5be166===_0x3ab0df)break;else _0x342ae9['push'](_0x342ae9['shift']());}catch(_0x357ead){_0x342ae9['push'](_0x342ae9['shift']());}}}(a57_0x494a,0x18bab));function a57_0x494a(){const _0x1c4065=['userId','Preview:\x20remove\x20runtime\x20role\x20member','before','522610GyYdzk','after','14aIAhTt','appCode','/client/permit/user-role/update-user-list','shouldWrite','warnings','user-remove','167724tzmztD','role','48321XLIrHl','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','body','105784UgOUxO','538636lUMhIu','build','210744zGloTq','1411732uUiUgL','roleList','POST','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.'];a57_0x494a=function(){return _0x1c4065;};return a57_0x494a();}function a57_0x574e(_0x54e88e,_0x2ee4be){_0x54e88e=_0x54e88e-0x1d2;const _0x494a3e=a57_0x494a();let _0x574efb=_0x494a3e[_0x54e88e];return _0x574efb;}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':a57_0x1ddc2a(0x1d8),'command':a57_0x1ddc2a(0x1d6),'description':a57_0x1ddc2a(0x1da),'risk':'high-risk-write','confirmationDescription':a57_0x1ddc2a(0x1e3),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x55986f){const _0x2fc44c=a57_0x1ddc2a,_0x4c84ee=await prepareRuntimeMemberMutation(_0x55986f,_0x2fc44c(0x1d6));return dryRun(_0x2fc44c(0x1e2),'/client/permit/user-role/update-user-list')[_0x2fc44c(0x1db)]({'appCode':_0x55986f['appCode'],'roleList':_0x4c84ee[_0x2fc44c(0x1e1)]})['description'](_0x4c84ee[_0x2fc44c(0x1d4)]?_0x2fc44c(0x1e5):_0x4c84ee[_0x2fc44c(0x1d5)][0x0])[_0x2fc44c(0x1de)]();},async 'execute'(_0x438cc2){const _0x2173a4=a57_0x1ddc2a,_0x3070cf=await prepareRuntimeMemberMutation(_0x438cc2,_0x2173a4(0x1d6));return _0x3070cf['shouldWrite']&&await updateRuntimeRoleUsers(_0x438cc2[_0x2173a4(0x1d2)],_0x3070cf[_0x2173a4(0x1e1)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x2173a4(0x1d6),{'roleId':_0x3070cf[_0x2173a4(0x1d8)]['id'],'userId':_0x3070cf[_0x2173a4(0x1e4)]},_0x3070cf[_0x2173a4(0x1e6)],_0x3070cf[_0x2173a4(0x1e8)],{'method':'POST','path':_0x2173a4(0x1d3)},_0x3070cf[_0x2173a4(0x1d5)])};}};
@@ -1 +1 @@
1
- const a58_0x59d16c=a58_0x4553;(function(_0x31e051,_0x5cdae3){const _0x16e626=a58_0x4553,_0x403255=_0x31e051();while(!![]){try{const _0x19577a=-parseInt(_0x16e626(0x1a2))/0x1*(-parseInt(_0x16e626(0x1b2))/0x2)+parseInt(_0x16e626(0x19b))/0x3+-parseInt(_0x16e626(0x190))/0x4*(parseInt(_0x16e626(0x1af))/0x5)+-parseInt(_0x16e626(0x1ac))/0x6*(parseInt(_0x16e626(0x1a7))/0x7)+parseInt(_0x16e626(0x177))/0x8+-parseInt(_0x16e626(0x19e))/0x9+parseInt(_0x16e626(0x185))/0xa*(parseInt(_0x16e626(0x18f))/0xb);if(_0x19577a===_0x5cdae3)break;else _0x403255['push'](_0x403255['shift']());}catch(_0x2b6c94){_0x403255['push'](_0x403255['shift']());}}}(a58_0x22c8,0x4b830));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':'kind','type':a58_0x59d16c(0x181),'required':!![],'enum':[a58_0x59d16c(0x1ab),a58_0x59d16c(0x1a8)],'description':'Schedule\x20kind:\x20CRON\x20or\x20ONCE'},CRON_FLAG={'name':'cron','type':a58_0x59d16c(0x181),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':a58_0x59d16c(0x196),'type':a58_0x59d16c(0x181),'description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a58_0x59d16c(0x179),'type':a58_0x59d16c(0x181),'required':!![],'description':a58_0x59d16c(0x1b3)},PROMPT_FLAG={'name':a58_0x59d16c(0x18d),'type':a58_0x59d16c(0x181),'required':!![],'description':a58_0x59d16c(0x18a)},MODEL_FLAG={'name':'model','type':a58_0x59d16c(0x181),'enum':['kimi/k3',a58_0x59d16c(0x187),a58_0x59d16c(0x1a5)],'default':'deepseek-v4-flash-0731','description':a58_0x59d16c(0x1b8)},SCHEDULE_ID_FLAG={'name':a58_0x59d16c(0x19f),'type':'string','required':!![],'description':'Schedule\x20UUID','pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0x59d16c(0x176)}},LIMIT_FLAG={'name':a58_0x59d16c(0x188),'type':'number','default':0x14,'description':a58_0x59d16c(0x19c)},CURSOR_FLAG={'name':'cursor','type':a58_0x59d16c(0x181),'description':a58_0x59d16c(0x1a4)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x5b5f8c){const _0x53c6b8=a58_0x59d16c,_0x1ef49e=_0x5b5f8c['str'](_0x53c6b8(0x1b7)),_0x4a8757=_0x5b5f8c[_0x53c6b8(0x183)](_0x53c6b8(0x179))['trim'](),_0x40e6c2=_0x5b5f8c[_0x53c6b8(0x183)](_0x53c6b8(0x18d))[_0x53c6b8(0x17d)](),_0x47692e=_0x5b5f8c['str']('model'),_0x1463c6=_0x5b5f8c[_0x53c6b8(0x183)](_0x53c6b8(0x1ad)),_0x2c3334=_0x5b5f8c[_0x53c6b8(0x183)](_0x53c6b8(0x196));if(!_0x4a8757)throw CliErrors['validation'](_0x53c6b8(0x18c));if(!_0x40e6c2)throw CliErrors[_0x53c6b8(0x17c)]('--prompt\x20must\x20not\x20be\x20blank.');if(_0x1ef49e===_0x53c6b8(0x1ab)){if(!_0x1463c6||_0x2c3334)throw CliErrors[_0x53c6b8(0x17c)]('CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.');return{'kind':_0x1ef49e,'timezone':_0x53c6b8(0x1b1),'cron':_0x1463c6,'title':_0x4a8757,'prompt':_0x40e6c2,'model':_0x47692e};}if(_0x1ef49e===_0x53c6b8(0x1a8)){if(!_0x2c3334||_0x1463c6)throw CliErrors[_0x53c6b8(0x17c)](_0x53c6b8(0x197));return{'kind':_0x1ef49e,'timezone':_0x53c6b8(0x1b1),'scheduledAt':_0x2c3334,'title':_0x4a8757,'prompt':_0x40e6c2,'model':_0x47692e};}throw CliErrors[_0x53c6b8(0x17c)](_0x53c6b8(0x1a9));}function scheduleCollectionPath(_0x10bb7c){const _0x1d34ff=a58_0x59d16c;return _0x1d34ff(0x184)+encodeURIComponent(_0x10bb7c)+_0x1d34ff(0x1a1);}function a58_0x22c8(){const _0x439b13=['224kFgDDL','Queued\x20Task\x20','DELETE','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','detail','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','scheduled-at','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','taskId','num','121380fSYsxN','Page\x20size\x20from\x201\x20to\x20100','POST','2115045RhxbQV','schedule-id','description','/schedules','168698jWZkDF','Preview:\x20run\x20schedule\x20','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','deepseek-v4-pro-0813','create','49kpnzPz','ONCE','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','appCode','CRON','309108GiaaVI','cron','high-risk-write','22545YaojYo','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','UTC','6VgrEdI','Schedule\x20title','list','cursor','read','kind','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','Deleted\x20schedule\x20','schedule','/run','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','4015912FRAodw','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','title','validate','body','validation','trim','scheduleId','isSafeInteger','delete','string','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','str','/api/harness/apps/','10470DvzGED','\x20schedule\x20','deepseek-v4-flash-0731','limit','Created\x20','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','build','--title\x20must\x20not\x20be\x20blank.','prompt','\x20immediately','1144MSqtgk'];a58_0x22c8=function(){return _0x439b13;};return a58_0x22c8();}function a58_0x4553(_0x31cfed,_0x54ccf6){_0x31cfed=_0x31cfed-0x174;const _0x22c8a5=a58_0x22c8();let _0x455339=_0x22c8a5[_0x31cfed];return _0x455339;}function scheduleItemPath(_0x9a632d,_0x2c1900){return scheduleCollectionPath(_0x9a632d)+'/'+encodeURIComponent(_0x2c1900);}const scheduleValidate={'service':'schedule','command':a58_0x59d16c(0x17a),'description':a58_0x59d16c(0x1b9),'risk':a58_0x59d16c(0x1b6),'flags':INPUT_FLAGS,async 'validate'(_0x202b78){readScheduleInput(_0x202b78);},async 'execute'(_0x402b01){const _0x27a200=a58_0x59d16c,_0x580131=readScheduleInput(_0x402b01),_0x4ee8ad=await validateRuntimeSchedule(_0x402b01[_0x27a200(0x1aa)],_0x580131);return{'ok':!![],'data':_0x4ee8ad,'message':'Schedule\x20input\x20is\x20valid'};}},scheduleCreate={'service':a58_0x59d16c(0x1bb),'command':a58_0x59d16c(0x1a6),'description':a58_0x59d16c(0x1b0),'risk':a58_0x59d16c(0x1ae),'confirmationDescription':a58_0x59d16c(0x175),'flags':INPUT_FLAGS,async 'validate'(_0x3b2ff8){readScheduleInput(_0x3b2ff8);},async 'execute'(_0x2ec6cd){const _0x1d31fd=a58_0x59d16c,_0x25d788=readScheduleInput(_0x2ec6cd),_0x5767fb=await validateRuntimeSchedule(_0x2ec6cd[_0x1d31fd(0x1aa)],_0x25d788),_0x10eb7f=await createRuntimeSchedule(_0x2ec6cd[_0x1d31fd(0x1aa)],_0x5767fb);return{'ok':!![],'data':_0x10eb7f,'message':_0x1d31fd(0x189)+_0x10eb7f[_0x1d31fd(0x1b7)]+_0x1d31fd(0x186)+_0x10eb7f[_0x1d31fd(0x17e)]};},async 'dryRun'(_0x4711e6){const _0x2bb652=a58_0x59d16c,_0x418378=readScheduleInput(_0x4711e6);return dryRun('POST',scheduleCollectionPath(_0x4711e6['appCode']))[_0x2bb652(0x17b)](_0x418378)['description']('Preview:\x20create\x20an\x20Agent\x20schedule')['build']();}},scheduleList={'service':a58_0x59d16c(0x1bb),'command':a58_0x59d16c(0x1b4),'description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':a58_0x59d16c(0x1b6),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x280d0f){const _0x504ee6=a58_0x59d16c,_0x5ce417=_0x280d0f['num'](_0x504ee6(0x188));if(!Number[_0x504ee6(0x17f)](_0x5ce417)||_0x5ce417<0x1||_0x5ce417>0x64)throw CliErrors['validation'](_0x504ee6(0x182));const _0x3882af=_0x280d0f['str'](_0x504ee6(0x1b5));if(_0x3882af&&(_0x3882af['length']>0x400||_0x3882af[_0x504ee6(0x17d)]()!==_0x3882af))throw CliErrors['validation'](_0x504ee6(0x198));},async 'execute'(_0x5d4dfc){const _0x50332a=a58_0x59d16c,_0xdf595f=_0x5d4dfc['str'](_0x50332a(0x1b5)),_0xe10dd5=await listRuntimeSchedules(_0x5d4dfc[_0x50332a(0x1aa)],{'kind':_0x5d4dfc[_0x50332a(0x183)](_0x50332a(0x1b7)),'limit':_0x5d4dfc[_0x50332a(0x19a)]('limit'),..._0xdf595f?{'cursor':_0xdf595f}:{}});return{'ok':!![],'data':_0xe10dd5};}},scheduleDetail={'service':a58_0x59d16c(0x1bb),'command':a58_0x59d16c(0x194),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1166e4){const _0x2c37ee=a58_0x59d16c,_0x3ec2bd=await getRuntimeSchedule(_0x1166e4[_0x2c37ee(0x1aa)],_0x1166e4[_0x2c37ee(0x183)](_0x2c37ee(0x19f)));return{'ok':!![],'data':_0x3ec2bd};}},scheduleRun={'service':a58_0x59d16c(0x1bb),'command':'run','description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':a58_0x59d16c(0x1ae),'confirmationDescription':a58_0x59d16c(0x193),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x50a750){const _0x4bce58=a58_0x59d16c,_0x3f3f49=_0x50a750['str'](_0x4bce58(0x19f)),_0xf9c64b=await runRuntimeSchedule(_0x50a750[_0x4bce58(0x1aa)],_0x3f3f49);return{'ok':!![],'data':_0xf9c64b,'message':_0x4bce58(0x191)+_0xf9c64b[_0x4bce58(0x199)]+'\x20from\x20schedule\x20'+_0x3f3f49};},async 'dryRun'(_0xcedcdb){const _0x30b32e=a58_0x59d16c,_0x41e40d=_0xcedcdb[_0x30b32e(0x183)](_0x30b32e(0x19f));return dryRun(_0x30b32e(0x19d),scheduleItemPath(_0xcedcdb[_0x30b32e(0x1aa)],_0x41e40d)+_0x30b32e(0x174))['description'](_0x30b32e(0x1a3)+_0x41e40d+_0x30b32e(0x18e))[_0x30b32e(0x18b)]();}},scheduleDelete={'service':a58_0x59d16c(0x1bb),'command':a58_0x59d16c(0x180),'description':a58_0x59d16c(0x178),'risk':a58_0x59d16c(0x1ae),'confirmationDescription':a58_0x59d16c(0x195),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xb3cab1){const _0x3cf8da=a58_0x59d16c,_0x4a703b=_0xb3cab1[_0x3cf8da(0x183)](_0x3cf8da(0x19f)),_0x428cc3=await deleteRuntimeSchedule(_0xb3cab1[_0x3cf8da(0x1aa)],_0x4a703b);return{'ok':!![],'data':_0x428cc3,'message':_0x3cf8da(0x1ba)+_0x4a703b};},async 'dryRun'(_0x6bc6a5){const _0x503cb8=a58_0x59d16c,_0x5b4a17=_0x6bc6a5[_0x503cb8(0x183)](_0x503cb8(0x19f));return dryRun(_0x503cb8(0x192),scheduleItemPath(_0x6bc6a5[_0x503cb8(0x1aa)],_0x5b4a17))[_0x503cb8(0x1a0)]('Preview:\x20delete\x20schedule\x20'+_0x5b4a17)[_0x503cb8(0x18b)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
1
+ const a58_0x3ac958=a58_0x565f;(function(_0x43e758,_0x488e28){const _0x42410f=a58_0x565f,_0x4a567c=_0x43e758();while(!![]){try{const _0xfd4f9d=-parseInt(_0x42410f(0x1be))/0x1+parseInt(_0x42410f(0x1d0))/0x2*(-parseInt(_0x42410f(0x1ce))/0x3)+parseInt(_0x42410f(0x1b9))/0x4*(-parseInt(_0x42410f(0x19c))/0x5)+-parseInt(_0x42410f(0x1b8))/0x6*(-parseInt(_0x42410f(0x1ae))/0x7)+parseInt(_0x42410f(0x1d3))/0x8*(-parseInt(_0x42410f(0x1da))/0x9)+-parseInt(_0x42410f(0x1ca))/0xa*(parseInt(_0x42410f(0x1d6))/0xb)+parseInt(_0x42410f(0x1a2))/0xc*(parseInt(_0x42410f(0x1b6))/0xd);if(_0xfd4f9d===_0x488e28)break;else _0x4a567c['push'](_0x4a567c['shift']());}catch(_0xcec049){_0x4a567c['push'](_0x4a567c['shift']());}}}(a58_0x10bf,0x80e24));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a58_0x3ac958(0x1c0),'type':a58_0x3ac958(0x191),'required':!![],'enum':[a58_0x3ac958(0x1bf),a58_0x3ac958(0x18e)],'description':a58_0x3ac958(0x19b)},CRON_FLAG={'name':a58_0x3ac958(0x1d7),'type':a58_0x3ac958(0x191),'description':'Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules'},SCHEDULED_AT_FLAG={'name':a58_0x3ac958(0x198),'type':a58_0x3ac958(0x191),'description':a58_0x3ac958(0x19f)},TITLE_FLAG={'name':'title','type':a58_0x3ac958(0x191),'required':!![],'description':a58_0x3ac958(0x1c8)},PROMPT_FLAG={'name':a58_0x3ac958(0x192),'type':'string','required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':a58_0x3ac958(0x1bd),'type':a58_0x3ac958(0x191),'enum':[a58_0x3ac958(0x19d),a58_0x3ac958(0x1b4),a58_0x3ac958(0x1c9)],'default':'deepseek-v4-flash-0731','description':a58_0x3ac958(0x1ba)},SCHEDULE_ID_FLAG={'name':a58_0x3ac958(0x1c2),'type':a58_0x3ac958(0x191),'required':!![],'description':a58_0x3ac958(0x1d2),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0x3ac958(0x199)}},LIMIT_FLAG={'name':a58_0x3ac958(0x19a),'type':a58_0x3ac958(0x1c4),'default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':a58_0x3ac958(0x1d5),'type':a58_0x3ac958(0x191),'description':a58_0x3ac958(0x195)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0xa04429){const _0x491d0a=a58_0x3ac958,_0x45b8b6=_0xa04429[_0x491d0a(0x1ab)](_0x491d0a(0x1c0)),_0x8f26af=_0xa04429[_0x491d0a(0x1ab)](_0x491d0a(0x18d))[_0x491d0a(0x18f)](),_0x4fdc2c=_0xa04429[_0x491d0a(0x1ab)](_0x491d0a(0x192))['trim'](),_0x569e9b=_0xa04429[_0x491d0a(0x1ab)]('model'),_0x22c215=_0xa04429[_0x491d0a(0x1ab)](_0x491d0a(0x1d7)),_0x35e977=_0xa04429['str']('scheduled-at');if(!_0x8f26af)throw CliErrors[_0x491d0a(0x1a9)](_0x491d0a(0x19e));if(!_0x4fdc2c)throw CliErrors['validation'](_0x491d0a(0x1a0));if(_0x45b8b6==='CRON'){if(!_0x22c215||_0x35e977)throw CliErrors['validation'](_0x491d0a(0x190));return{'kind':_0x45b8b6,'timezone':_0x491d0a(0x1b0),'cron':_0x22c215,'title':_0x8f26af,'prompt':_0x4fdc2c,'model':_0x569e9b};}if(_0x45b8b6==='ONCE'){if(!_0x35e977||_0x22c215)throw CliErrors[_0x491d0a(0x1a9)](_0x491d0a(0x194));return{'kind':_0x45b8b6,'timezone':_0x491d0a(0x1b0),'scheduledAt':_0x35e977,'title':_0x8f26af,'prompt':_0x4fdc2c,'model':_0x569e9b};}throw CliErrors[_0x491d0a(0x1a9)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function a58_0x565f(_0x561ecf,_0x5bb08c){_0x561ecf=_0x561ecf-0x18b;const _0x10bf4a=a58_0x10bf();let _0x565fae=_0x10bf4a[_0x561ecf];return _0x565fae;}function scheduleCollectionPath(_0x5b2921){const _0x4f3ed1=a58_0x3ac958;return _0x4f3ed1(0x1a8)+encodeURIComponent(_0x5b2921)+_0x4f3ed1(0x1cb);}function a58_0x10bf(){const _0x14de80=['--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','title','ONCE','trim','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','string','prompt','/run','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','list','scheduled-at','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','limit','Schedule\x20kind:\x20CRON\x20or\x20ONCE','240nXLeHn','kimi/k3','--title\x20must\x20not\x20be\x20blank.','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','--prompt\x20must\x20not\x20be\x20blank.','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','701124Fbalqi','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','isSafeInteger','\x20from\x20schedule\x20','\x20schedule\x20','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','/api/harness/apps/','validation','body','str','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','Created\x20','147847NdieTc','run','UTC','Schedule\x20input\x20is\x20valid','schedule','build','deepseek-v4-flash-0731','detail','455kRoPyI','description','294cLeDCA','52872pxnAMO','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','read','model','863154hajeyP','CRON','kind','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','schedule-id','Preview:\x20run\x20schedule\x20','number','delete','Deleted\x20schedule\x20','Preview:\x20delete\x20schedule\x20','Schedule\x20title','deepseek-v4-pro-0813','346390QwvjNt','/schedules','validate','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','1266JsPMFH','high-risk-write','4330VCngcw','\x20immediately','Schedule\x20UUID','368EatzgS','POST','cursor','44pakpjl','cron','num','scheduleId','423dfPlAs','appCode'];a58_0x10bf=function(){return _0x14de80;};return a58_0x10bf();}function scheduleItemPath(_0x4d0fff,_0x5ab39f){return scheduleCollectionPath(_0x4d0fff)+'/'+encodeURIComponent(_0x5ab39f);}const scheduleValidate={'service':a58_0x3ac958(0x1b2),'command':a58_0x3ac958(0x1cc),'description':a58_0x3ac958(0x1a7),'risk':a58_0x3ac958(0x1bc),'flags':INPUT_FLAGS,async 'validate'(_0x447801){readScheduleInput(_0x447801);},async 'execute'(_0x2169de){const _0x5899bd=a58_0x3ac958,_0x23a461=readScheduleInput(_0x2169de),_0x238ef9=await validateRuntimeSchedule(_0x2169de[_0x5899bd(0x18b)],_0x23a461);return{'ok':!![],'data':_0x238ef9,'message':_0x5899bd(0x1b1)};}},scheduleCreate={'service':a58_0x3ac958(0x1b2),'command':'create','description':a58_0x3ac958(0x1c1),'risk':a58_0x3ac958(0x1cf),'confirmationDescription':a58_0x3ac958(0x196),'flags':INPUT_FLAGS,async 'validate'(_0x43be78){readScheduleInput(_0x43be78);},async 'execute'(_0xa93362){const _0x32359b=a58_0x3ac958,_0x1b2cd2=readScheduleInput(_0xa93362),_0x10178d=await validateRuntimeSchedule(_0xa93362[_0x32359b(0x18b)],_0x1b2cd2),_0x5bfdff=await createRuntimeSchedule(_0xa93362[_0x32359b(0x18b)],_0x10178d);return{'ok':!![],'data':_0x5bfdff,'message':_0x32359b(0x1ad)+_0x5bfdff[_0x32359b(0x1c0)]+_0x32359b(0x1a6)+_0x5bfdff[_0x32359b(0x1d9)]};},async 'dryRun'(_0x4919e7){const _0x398e95=a58_0x3ac958,_0x1c4053=readScheduleInput(_0x4919e7);return dryRun(_0x398e95(0x1d4),scheduleCollectionPath(_0x4919e7['appCode']))[_0x398e95(0x1aa)](_0x1c4053)[_0x398e95(0x1b7)]('Preview:\x20create\x20an\x20Agent\x20schedule')[_0x398e95(0x1b3)]();}},scheduleList={'service':a58_0x3ac958(0x1b2),'command':a58_0x3ac958(0x197),'description':a58_0x3ac958(0x1bb),'risk':a58_0x3ac958(0x1bc),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x19e438){const _0x3da083=a58_0x3ac958,_0x3aa66e=_0x19e438[_0x3da083(0x1d8)](_0x3da083(0x19a));if(!Number[_0x3da083(0x1a4)](_0x3aa66e)||_0x3aa66e<0x1||_0x3aa66e>0x64)throw CliErrors[_0x3da083(0x1a9)](_0x3da083(0x1cd));const _0x354ad1=_0x19e438[_0x3da083(0x1ab)](_0x3da083(0x1d5));if(_0x354ad1&&(_0x354ad1['length']>0x400||_0x354ad1[_0x3da083(0x18f)]()!==_0x354ad1))throw CliErrors['validation'](_0x3da083(0x18c));},async 'execute'(_0x45880f){const _0x3a57e6=a58_0x3ac958,_0x3c43d8=_0x45880f[_0x3a57e6(0x1ab)](_0x3a57e6(0x1d5)),_0x2bc553=await listRuntimeSchedules(_0x45880f[_0x3a57e6(0x18b)],{'kind':_0x45880f['str'](_0x3a57e6(0x1c0)),'limit':_0x45880f[_0x3a57e6(0x1d8)](_0x3a57e6(0x19a)),..._0x3c43d8?{'cursor':_0x3c43d8}:{}});return{'ok':!![],'data':_0x2bc553};}},scheduleDetail={'service':a58_0x3ac958(0x1b2),'command':a58_0x3ac958(0x1b5),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a58_0x3ac958(0x1bc),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x32657c){const _0x3d2f76=a58_0x3ac958,_0xcaaf26=await getRuntimeSchedule(_0x32657c[_0x3d2f76(0x18b)],_0x32657c[_0x3d2f76(0x1ab)]('schedule-id'));return{'ok':!![],'data':_0xcaaf26};}},scheduleRun={'service':a58_0x3ac958(0x1b2),'command':a58_0x3ac958(0x1af),'description':a58_0x3ac958(0x1a1),'risk':a58_0x3ac958(0x1cf),'confirmationDescription':a58_0x3ac958(0x1ac),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x20430b){const _0x9da15c=a58_0x3ac958,_0x23e20a=_0x20430b[_0x9da15c(0x1ab)](_0x9da15c(0x1c2)),_0x3ccf76=await runRuntimeSchedule(_0x20430b[_0x9da15c(0x18b)],_0x23e20a);return{'ok':!![],'data':_0x3ccf76,'message':'Queued\x20Task\x20'+_0x3ccf76['taskId']+_0x9da15c(0x1a5)+_0x23e20a};},async 'dryRun'(_0x264a80){const _0x9ba161=a58_0x3ac958,_0xaa56e7=_0x264a80[_0x9ba161(0x1ab)](_0x9ba161(0x1c2));return dryRun('POST',scheduleItemPath(_0x264a80[_0x9ba161(0x18b)],_0xaa56e7)+_0x9ba161(0x193))[_0x9ba161(0x1b7)](_0x9ba161(0x1c3)+_0xaa56e7+_0x9ba161(0x1d1))[_0x9ba161(0x1b3)]();}},scheduleDelete={'service':'schedule','command':a58_0x3ac958(0x1c5),'description':a58_0x3ac958(0x1a3),'risk':a58_0x3ac958(0x1cf),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x257858){const _0x5068bc=a58_0x3ac958,_0xc38156=_0x257858[_0x5068bc(0x1ab)]('schedule-id'),_0xb37f53=await deleteRuntimeSchedule(_0x257858[_0x5068bc(0x18b)],_0xc38156);return{'ok':!![],'data':_0xb37f53,'message':_0x5068bc(0x1c6)+_0xc38156};},async 'dryRun'(_0xf589f5){const _0x14727d=a58_0x3ac958,_0x484e0d=_0xf589f5[_0x14727d(0x1ab)](_0x14727d(0x1c2));return dryRun('DELETE',scheduleItemPath(_0xf589f5[_0x14727d(0x18b)],_0x484e0d))[_0x14727d(0x1b7)](_0x14727d(0x1c7)+_0x484e0d)[_0x14727d(0x1b3)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
@@ -1 +1 @@
1
- const a59_0x2148ca=a59_0x5ea0;(function(_0x18b9b3,_0x142af0){const _0x1bdb09=a59_0x5ea0,_0x242d21=_0x18b9b3();while(!![]){try{const _0x1c5ddc=parseInt(_0x1bdb09(0x128))/0x1+-parseInt(_0x1bdb09(0x12c))/0x2+parseInt(_0x1bdb09(0x12d))/0x3*(-parseInt(_0x1bdb09(0x12b))/0x4)+parseInt(_0x1bdb09(0x12f))/0x5+parseInt(_0x1bdb09(0x12a))/0x6+parseInt(_0x1bdb09(0x12e))/0x7*(parseInt(_0x1bdb09(0x129))/0x8)+-parseInt(_0x1bdb09(0x130))/0x9;if(_0x1c5ddc===_0x142af0)break;else _0x242d21['push'](_0x242d21['shift']());}catch(_0x6a5937){_0x242d21['push'](_0x242d21['shift']());}}}(a59_0x486f,0xad683));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x2bb726){const _0x7d8dbf=await buildSchemaPayload();return{'ok':!![],'data':_0x7d8dbf};}function a59_0x5ea0(_0x2d96e6,_0x3d9fcc){_0x2d96e6=_0x2d96e6-0x127;const _0x486fe3=a59_0x486f();let _0x5ea0f6=_0x486fe3[_0x2d96e6];return _0x5ea0f6;}export const schemaDefinition={'service':'schema','command':'export','description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':a59_0x2148ca(0x127),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};function a59_0x486f(){const _0x1fa57b=['365722STQqxv','189664hapwHJ','5300862cjggHZ','470584qEXVre','696166BOCeWq','15ODSvTd','322WUtfAR','2794645gjsjDD','11268972jBwxqA','read'];a59_0x486f=function(){return _0x1fa57b;};return a59_0x486f();}
1
+ const a59_0x3113cd=a59_0x1041;(function(_0x248aa5,_0x130e6b){const _0x9ab485=a59_0x1041,_0x50d989=_0x248aa5();while(!![]){try{const _0x5a4a37=-parseInt(_0x9ab485(0x13b))/0x1*(-parseInt(_0x9ab485(0x13a))/0x2)+-parseInt(_0x9ab485(0x135))/0x3+parseInt(_0x9ab485(0x137))/0x4*(-parseInt(_0x9ab485(0x132))/0x5)+parseInt(_0x9ab485(0x133))/0x6+-parseInt(_0x9ab485(0x13c))/0x7+parseInt(_0x9ab485(0x130))/0x8*(parseInt(_0x9ab485(0x139))/0x9)+parseInt(_0x9ab485(0x134))/0xa;if(_0x5a4a37===_0x130e6b)break;else _0x50d989['push'](_0x50d989['shift']());}catch(_0x2148c9){_0x50d989['push'](_0x50d989['shift']());}}}(a59_0x3bc5,0x9bd3b));import{buildSchemaPayload}from'../framework/schema-export.js';function a59_0x1041(_0x3419bf,_0x34264e){_0x3419bf=_0x3419bf-0x130;const _0x3bc599=a59_0x3bc5();let _0x104163=_0x3bc599[_0x3419bf];return _0x104163;}function a59_0x3bc5(){const _0x33eaaa=['1BcCBSJ','4870348Vswuqq','88lBcmTB','read','10JiQXRQ','4329288eMIAgl','15703110ajzfnJ','3592302LdForL','Export\x20machine-readable\x20command\x20schema\x20(JSON)','1723688cFityx','export','315531fKdSrp','1431602FbgImF'];a59_0x3bc5=function(){return _0x33eaaa;};return a59_0x3bc5();}async function execute(_0x27d466){const _0x2f1e95=await buildSchemaPayload();return{'ok':!![],'data':_0x2f1e95};}export const schemaDefinition={'service':'schema','command':a59_0x3113cd(0x138),'description':a59_0x3113cd(0x136),'risk':a59_0x3113cd(0x131),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
1
- (function(_0x267e9e,_0x2e0155){const _0x55b9b5=a60_0x3f99,_0x163648=_0x267e9e();while(!![]){try{const _0x427701=parseInt(_0x55b9b5(0x73))/0x1+parseInt(_0x55b9b5(0xbf))/0x2+parseInt(_0x55b9b5(0xb8))/0x3+-parseInt(_0x55b9b5(0xa4))/0x4*(-parseInt(_0x55b9b5(0xb7))/0x5)+parseInt(_0x55b9b5(0x8e))/0x6+parseInt(_0x55b9b5(0x86))/0x7*(parseInt(_0x55b9b5(0xd5))/0x8)+-parseInt(_0x55b9b5(0x79))/0x9*(parseInt(_0x55b9b5(0x7d))/0xa);if(_0x427701===_0x2e0155)break;else _0x163648['push'](_0x163648['shift']());}catch(_0x4fe459){_0x163648['push'](_0x163648['shift']());}}}(a60_0x592b,0xbde7e));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';function a60_0x3f99(_0x11b8ee,_0x523e62){_0x11b8ee=_0x11b8ee-0x71;const _0x592b14=a60_0x592b();let _0x3f9950=_0x592b14[_0x11b8ee];return _0x3f9950;}function a60_0x592b(){const _0x371741=['\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','\x20\x20\x20\x20command:\x20','service','Commands:','high-risk-write','\x20->\x20','type','datasetCode','cliPath','boolean','nickName','flags','filter','`\x20to\x20inspect\x20the\x20manifest.','env','Run\x20service\x20command\x20','684125qEHKWm','2135304dGZisD','data','now','sql','trim','\x22.\x20','\x20requires\x20target.sqlCode.','155912ccnvLK','normalizedManifest','entries','read','name','\x20<command>\x20[flags]','source','appBindings','Unknown\x20appRef\x20\x22','rawFlags','bff','sqlCode','const','Cannot\x20resolve\x20datatable\x20\x22','\x20\x20\x20\x20datasetCode:\x20','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','context.','startsWith','userName','length','code','remainingArgs','8pHTISD','tenantCode','default','risk','json','892934zxPpEa','fullPath','params','required','\x22\x20in\x20service\x20command\x20','datatable','13703751UejQEA','args','employeeId','\x20\x20MAP\x20TO','30fksWjV','slice','mapTo','\x20\x20\x20\x20sqlCode:\x20','fromEntries','\x20\x20\x20\x20datatable:\x20','bffId','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','number','4963833sROnsZ','flatMap','\x20\x20\x20\x20functionName:\x20','target','bffCode','string','app','find','8693514bGxaZY','loginName','commands','scriptName','userId','description','operator','validation','push','join','nickname','Service\x20command\x20','\x20\x20[','kind','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20service\x20detail\x20--service\x20','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','\x20\x20\x20\x20','tree','command','SERVICE_TREE','map','44TKkRDD','appcode','appCode'];a60_0x592b=function(){return _0x371741;};return a60_0x592b();}import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x38d27a,_0xb9b462){const _0x14a635=a60_0x3f99,_0x286742=listLocalServiceTrees();let _0x1f9ee6;for(const _0x149fc5 of _0x286742){const _0x49bfe5=matchServiceTreeCommand(_0x149fc5,_0x38d27a);if(!_0x49bfe5)continue;(!_0x1f9ee6||_0x49bfe5[_0x14a635(0xa1)][_0x14a635(0x74)][_0x14a635(0xd2)]>_0x1f9ee6['command'][_0x14a635(0x74)][_0x14a635(0xd2)])&&(_0x1f9ee6={'tree':_0x149fc5,'command':_0x49bfe5[_0x14a635(0xa1)],'remainingArgs':_0x49bfe5[_0x14a635(0xd4)]});}if(!_0x1f9ee6)return undefined;const _0x3877b5={..._0xb9b462};return applyAppBinding(_0x1f9ee6[_0x14a635(0xa0)],_0x1f9ee6[_0x14a635(0xa1)],_0x3877b5),{'definition':buildDynamicCommandDefinition(_0x1f9ee6[_0x14a635(0xa0)],_0x1f9ee6[_0x14a635(0xa1)]),'args':_0x1f9ee6[_0x14a635(0xd4)],'flags':_0x3877b5,'tree':_0x1f9ee6[_0x14a635(0xa0)],'command':_0x1f9ee6[_0x14a635(0xa1)]};}export function generateDynamicServiceHelp(_0x24a55f){const _0x36e4cb=a60_0x3f99,_0x37160f=listLocalServiceTrees()[_0x36e4cb(0x8d)](_0x3240f8=>_0x3240f8['service'][_0x36e4cb(0xd3)]===_0x24a55f);if(!_0x37160f)return undefined;const _0x49f75d=[CLI_BIN_NAME+'\x20'+_0x24a55f+_0x36e4cb(0xc4),'',_0x37160f[_0x36e4cb(0xa9)][_0x36e4cb(0xc3)]||_0x24a55f,_0x37160f[_0x36e4cb(0xa9)]['description']?'\x20\x20'+_0x37160f[_0x36e4cb(0xa9)][_0x36e4cb(0x93)]:'','',_0x36e4cb(0xaa),..._0x37160f['commands'][_0x36e4cb(0xa3)](_0x2d1bec=>{const _0x430b60=_0x36e4cb,_0x588b01=_0x2d1bec[_0x430b60(0x74)][_0x430b60(0x7e)](0x1)['join']('\x20'),_0x41c698=_0x2d1bec[_0x430b60(0x71)]===_0x430b60(0xc2)?'':'\x20['+_0x2d1bec[_0x430b60(0x71)]+']';return'\x20\x20'+_0x588b01['padEnd'](0x18)+'\x20'+(_0x2d1bec[_0x430b60(0x93)]||'')+_0x41c698;}),'','Use\x20`'+CLI_BIN_NAME+_0x36e4cb(0x9d)+_0x24a55f+_0x36e4cb(0xb4)]['filter'](Boolean);return _0x49f75d[_0x36e4cb(0x97)]('\x0a');}export function listDynamicServiceEntries(){const _0x4a0f3e=a60_0x3f99;return listLocalServices()[_0x4a0f3e(0xa3)](_0x369fc8=>{const _0x6aa194=_0x4a0f3e,_0x3d22b4=_0x369fc8[_0x6aa194(0xc0)];return{'service':_0x3d22b4[_0x6aa194(0xa9)][_0x6aa194(0xd3)],'label':_0x3d22b4[_0x6aa194(0xa9)][_0x6aa194(0xc3)]||_0x3d22b4[_0x6aa194(0xa9)][_0x6aa194(0xd3)],'commands':_0x3d22b4[_0x6aa194(0x90)]['map'](_0x454050=>({'command':dynamicCommandName(_0x454050),'description':_0x454050[_0x6aa194(0x93)]||'Run\x20service\x20command\x20'+_0x454050['cliPath'],'tag':riskTag(_0x454050[_0x6aa194(0x71)])}))};});}export function getDynamicServiceEntry(_0x280db3){const _0x55dba6=a60_0x3f99;return listDynamicServiceEntries()[_0x55dba6(0x8d)](_0x1ff27a=>_0x1ff27a[_0x55dba6(0xa9)]===_0x280db3);}export function listDynamicServiceDefinitions(_0x38c7df){const _0x51727e=a60_0x3f99;return listLocalServiceTrees()[_0x51727e(0xb3)](_0x35b9b7=>!_0x38c7df||_0x35b9b7[_0x51727e(0xa9)][_0x51727e(0xd3)]===_0x38c7df)[_0x51727e(0x87)](_0x4c1e40=>_0x4c1e40[_0x51727e(0x90)][_0x51727e(0xa3)](_0x348b44=>buildDynamicCommandDefinition(_0x4c1e40,_0x348b44)));}export function getDynamicServiceDefinitions(_0x4b3d3d){const _0x4f61fd=a60_0x3f99,_0x3ff82b=listDynamicServiceDefinitions(_0x4b3d3d);return _0x3ff82b[_0x4f61fd(0xd2)]>0x0?_0x3ff82b:undefined;}export function findDynamicServiceDefinition(_0x31e8cc,_0x23043b){const _0x3e30c4=a60_0x3f99;return listDynamicServiceDefinitions(_0x31e8cc)[_0x3e30c4(0x8d)](_0x50ad0d=>_0x50ad0d[_0x3e30c4(0xa1)]===_0x23043b);}export function buildDynamicCommandDefinition(_0x23241c,_0x528770){const _0x1550df=a60_0x3f99;return{'service':_0x23241c[_0x1550df(0xa9)][_0x1550df(0xd3)],'command':dynamicCommandName(_0x528770),'description':_0x528770[_0x1550df(0x93)]||_0x1550df(0xb6)+_0x528770[_0x1550df(0xaf)],'risk':_0x528770[_0x1550df(0x71)],..._0x528770[_0x1550df(0x71)]===_0x1550df(0xc2)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x528770)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x528770['args'][_0x1550df(0xa3)](_0x3ba692=>({'name':_0x3ba692[_0x1550df(0xc3)],'description':_0x3ba692['description']||_0x3ba692[_0x1550df(0xc3)],'required':_0x3ba692['required']})),'flags':_0x528770[_0x1550df(0xb2)][_0x1550df(0xa3)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x528770),async 'dryRun'(_0x4e6680){const _0x2ebaa4=_0x1550df,_0x18cd2a=await compilePlan(_0x528770,_0x4e6680);return{'method':_0x2ebaa4(0xa2),'url':_0x528770['cliPath'],'body':{'target':targetPreview(_0x18cd2a),'params':_0x18cd2a[_0x2ebaa4(0x75)]},'description':'Preview\x20dynamic\x20service\x20command:\x20'+_0x528770['cliPath']};},async 'execute'(_0x4da006){const _0x41cd81=_0x1550df,_0x5b2cc9=await compilePlan(_0x528770,_0x4da006),_0xbf69fe=Date[_0x41cd81(0xba)](),_0x3ffa46=await executePlan(_0x5b2cc9,_0x528770,_0x4da006),_0x9a90c4=Date[_0x41cd81(0xba)]()-_0xbf69fe;return{'ok':!![],'data':{'service':_0x23241c[_0x41cd81(0xa9)],'command':_0x528770[_0x41cd81(0xaf)],'target':targetPreview(_0x5b2cc9),'result':_0x3ffa46,'elapsed':_0x9a90c4},'message':_0x41cd81(0x99)+_0x528770[_0x41cd81(0xaf)]+'\x20completed\x20in\x20'+_0x9a90c4+'ms'};}};}function buildDynamicConfirmationDescription(_0x441562){const _0x4e3f98=a60_0x3f99,_0xc7d52b=_0x441562[_0x4e3f98(0x93)]||_0x441562['cliPath'],_0x93f5d3=_0x441562[_0x4e3f98(0x71)]===_0x4e3f98(0xab)?'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.':'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.';return _0x4e3f98(0x84)+_0xc7d52b+_0x4e3f98(0xbd)+_0x93f5d3;}function dynamicCommandName(_0x171688){const _0x235c16=a60_0x3f99;return _0x171688[_0x235c16(0x74)][_0x235c16(0x7e)](0x1)[_0x235c16(0x97)]('\x20');}function riskTag(_0x460204){const _0x3383b1=a60_0x3f99;return _0x460204===_0x3383b1(0xc2)?'':_0x3383b1(0x9a)+_0x460204+']';}function flagToCommandFlag(_0x2686c8){const _0x257225=a60_0x3f99;return{'name':_0x2686c8['cliName'],'type':_0x2686c8[_0x257225(0xad)]===_0x257225(0x72)?_0x257225(0x8b):_0x2686c8[_0x257225(0xad)],'description':_0x2686c8[_0x257225(0x93)]||_0x2686c8['name'],'required':_0x2686c8[_0x257225(0x76)],'default':isPrimitiveFlagDefault(_0x2686c8[_0x257225(0xd7)])?_0x2686c8['default']:undefined,'enum':_0x2686c8['enum']};}async function compilePlan(_0x4037ba,_0x3c6a92){const _0x2ade34=a60_0x3f99;return compileServiceTreeCommand(_0x4037ba,{'flags':_0x3c6a92[_0x2ade34(0xc8)],'args':_0x3c6a92[_0x2ade34(0x7a)],'context':await buildServiceContext(_0x4037ba,_0x3c6a92)});}async function buildServiceContext(_0x188f03,_0x4e9787){const _0x5388a1=a60_0x3f99,_0x269bdd={'appCode':_0x4e9787[_0x5388a1(0xa6)],'env':_0x4e9787['envName'],'envName':_0x4e9787['envName']};if(!usesRuntimeContext(_0x188f03))return _0x269bdd;const _0x595dba=await getLoginUserInfo(),_0x7d95ff=pickFirst(_0x595dba[_0x5388a1(0x92)],_0x595dba['id']);return{..._0x269bdd,'user':_0x595dba,'userId':_0x7d95ff,'id':_0x595dba['id'],'username':pickFirst(_0x595dba['username'],_0x595dba[_0x5388a1(0xd1)],_0x595dba[_0x5388a1(0x8f)]),'userName':_0x595dba['userName'],'nickname':pickFirst(_0x595dba[_0x5388a1(0x98)],_0x595dba[_0x5388a1(0xb1)]),'nickName':_0x595dba[_0x5388a1(0xb1)],'tenantCode':_0x595dba[_0x5388a1(0xd6)],'employeeId':_0x595dba[_0x5388a1(0x7b)]};}function usesRuntimeContext(_0x5e991f){const _0xdd92b3=a60_0x3f99;return _0x5e991f['mapTo']['some'](_0x5bb7dd=>typeof _0x5bb7dd[_0xdd92b3(0xc5)]===_0xdd92b3(0x8b)&&(_0x5bb7dd['source'][_0xdd92b3(0xd0)](_0xdd92b3(0xcf))||_0x5bb7dd[_0xdd92b3(0xc5)]['startsWith']('ctx.')));}function pickFirst(..._0x5f5d7e){const _0x4338d3=a60_0x3f99;return _0x5f5d7e[_0x4338d3(0x8d)](_0x540b60=>_0x540b60!==undefined&&_0x540b60!==null);}async function executePlan(_0x583e47,_0x3201c2,_0x201cbf){const _0x34414a=a60_0x3f99;if(_0x583e47[_0x34414a(0x9b)]===_0x34414a(0xb9)){const _0x3d9300=await resolveDatasetCode(_0x583e47,_0x3201c2,_0x201cbf);return executeData(_0x3d9300,_0x583e47[_0x34414a(0xa1)],_0x583e47[_0x34414a(0x75)]);}if(_0x583e47['kind']===_0x34414a(0xbb)){if(!_0x583e47['sqlCode'])throw CliErrors[_0x34414a(0x95)](_0x34414a(0x99)+_0x3201c2[_0x34414a(0xaf)]+_0x34414a(0xbe));return executeSdkSql(_0x583e47[_0x34414a(0xca)],normalizeScalarParams(_0x583e47['params']));}if(_0x583e47[_0x34414a(0x9b)]===_0x34414a(0xc9)){const _0xfca439=_0x583e47[_0x34414a(0x91)]||_0x583e47[_0x34414a(0x8a)]||(_0x583e47[_0x34414a(0x83)]==null?'':String(_0x583e47[_0x34414a(0x83)]));if(!_0xfca439)throw CliErrors[_0x34414a(0x95)](_0x34414a(0x99)+_0x3201c2[_0x34414a(0xaf)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0xfca439,_0x583e47[_0x34414a(0x75)]);}throw CliErrors[_0x34414a(0x95)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x583e47[_0x34414a(0x9b)]);}async function resolveDatasetCode(_0x3e630a,_0x383434,_0x520766){const _0x443f1e=a60_0x3f99;if(_0x3e630a[_0x443f1e(0xae)])return _0x3e630a[_0x443f1e(0xae)];if(!_0x3e630a[_0x443f1e(0x78)])throw CliErrors[_0x443f1e(0x95)](_0x443f1e(0x99)+_0x383434[_0x443f1e(0xaf)]+_0x443f1e(0x9e));const _0x36595a=await listDatasets(_0x520766[_0x443f1e(0xa6)]),_0x3b8e72=_0x36595a['find'](_0x452688=>_0x452688['dbtableConfig']?.['tableName']===_0x3e630a[_0x443f1e(0x78)]);if(!_0x3b8e72?.['code'])throw CliErrors['validation'](_0x443f1e(0xcc)+_0x3e630a['datatable']+_0x443f1e(0xa7)+_0x520766['appCode']+'.',_0x443f1e(0x9c));return _0x3b8e72[_0x443f1e(0xd3)];}function applyAppBinding(_0x4967a,_0x45535f,_0x1beb0e){const _0xbbd880=a60_0x3f99,_0x42560a=_0x45535f[_0xbbd880(0x89)]['appRef'];if(!_0x42560a)return;const _0x5ba3a4=_0x4967a[_0xbbd880(0xc6)][_0x42560a];if(!_0x5ba3a4)throw CliErrors[_0xbbd880(0x95)](_0xbbd880(0xc7)+_0x42560a+_0xbbd880(0x77)+_0x45535f[_0xbbd880(0xaf)]+'.',_0xbbd880(0xce));const _0x45cbf6=_0x5ba3a4[_0xbbd880(0xa5)]||_0x5ba3a4[_0xbbd880(0xa6)];_0x45cbf6&&!hasText(_0x1beb0e['appcode'])&&(_0x1beb0e[_0xbbd880(0xa5)]=_0x45cbf6),_0x5ba3a4[_0xbbd880(0x8c)]&&!hasText(_0x1beb0e[_0xbbd880(0x8c)])&&!hasText(_0x1beb0e[_0xbbd880(0xa5)])&&(_0x1beb0e[_0xbbd880(0x8c)]=_0x5ba3a4[_0xbbd880(0x8c)]),_0x5ba3a4[_0xbbd880(0xb5)]&&!hasText(_0x1beb0e[_0xbbd880(0xb5)])&&(_0x1beb0e[_0xbbd880(0xb5)]=_0x5ba3a4[_0xbbd880(0xb5)]);}function renderDynamicCommandHelp(_0x425d92){const _0x51ce47=a60_0x3f99,_0xeb8339=['\x20\x20SERVICE\x20TREE\x20TARGET','\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x425d92[_0x51ce47(0x89)]['kind'],_0x51ce47(0xa8)+_0x425d92['target'][_0x51ce47(0xa1)]];if(_0x425d92[_0x51ce47(0x89)][_0x51ce47(0xae)])_0xeb8339[_0x51ce47(0x96)](_0x51ce47(0xcd)+_0x425d92[_0x51ce47(0x89)]['datasetCode']);if(_0x425d92[_0x51ce47(0x89)][_0x51ce47(0x78)])_0xeb8339[_0x51ce47(0x96)](_0x51ce47(0x82)+_0x425d92[_0x51ce47(0x89)][_0x51ce47(0x78)]);if(_0x425d92[_0x51ce47(0x89)][_0x51ce47(0xca)])_0xeb8339['push'](_0x51ce47(0x80)+_0x425d92['target'][_0x51ce47(0xca)]);if(_0x425d92[_0x51ce47(0x89)][_0x51ce47(0x91)])_0xeb8339[_0x51ce47(0x96)](_0x51ce47(0x88)+_0x425d92[_0x51ce47(0x89)][_0x51ce47(0x91)]);if(_0x425d92[_0x51ce47(0x7f)][_0x51ce47(0xd2)]>0x0){_0xeb8339[_0x51ce47(0x96)]('',_0x51ce47(0x7c));for(const _0x40ea04 of _0x425d92['mapTo']){_0xeb8339['push'](_0x51ce47(0x9f)+(_0x40ea04[_0x51ce47(0xc5)]||_0x51ce47(0xcb))+_0x51ce47(0xac)+_0x40ea04[_0x51ce47(0x89)]+(_0x40ea04['operator']?'.'+_0x40ea04[_0x51ce47(0x94)]:''));}}return _0xeb8339[_0x51ce47(0x97)]('\x0a');}function targetPreview(_0x5776bc){const _0xcc11f2=a60_0x3f99;return{'kind':_0x5776bc[_0xcc11f2(0x9b)],'command':_0x5776bc[_0xcc11f2(0xa1)],'appRef':_0x5776bc['appRef'],'datasetCode':_0x5776bc[_0xcc11f2(0xae)],'datatable':_0x5776bc[_0xcc11f2(0x78)],'sqlCode':_0x5776bc[_0xcc11f2(0xca)],'bffCode':_0x5776bc['bffCode'],'bffId':_0x5776bc[_0xcc11f2(0x83)],'functionName':_0x5776bc[_0xcc11f2(0x91)]};}function normalizeScalarParams(_0x4f9d4f){const _0x32e984=a60_0x3f99;return Object[_0x32e984(0x81)](Object[_0x32e984(0xc1)](_0x4f9d4f)['filter'](([,_0x120179])=>typeof _0x120179===_0x32e984(0x8b)||typeof _0x120179===_0x32e984(0x85)));}function hasText(_0x82d503){const _0x3a634e=a60_0x3f99;return typeof _0x82d503===_0x3a634e(0x8b)&&_0x82d503[_0x3a634e(0xbc)]()[_0x3a634e(0xd2)]>0x0;}function isPrimitiveFlagDefault(_0x5b3b1e){const _0x101bc9=a60_0x3f99;return _0x5b3b1e===undefined||typeof _0x5b3b1e===_0x101bc9(0x8b)||typeof _0x5b3b1e===_0x101bc9(0x85)||typeof _0x5b3b1e===_0x101bc9(0xb0);}
1
+ (function(_0x23113e,_0x566df8){const _0x118dc3=a60_0x4439,_0x5e46a7=_0x23113e();while(!![]){try{const _0x3cd29b=parseInt(_0x118dc3(0x136))/0x1*(parseInt(_0x118dc3(0x148))/0x2)+-parseInt(_0x118dc3(0x13e))/0x3+-parseInt(_0x118dc3(0x172))/0x4*(parseInt(_0x118dc3(0x109))/0x5)+parseInt(_0x118dc3(0x15f))/0x6*(-parseInt(_0x118dc3(0x127))/0x7)+-parseInt(_0x118dc3(0x16f))/0x8+-parseInt(_0x118dc3(0x121))/0x9+parseInt(_0x118dc3(0x107))/0xa*(parseInt(_0x118dc3(0x105))/0xb);if(_0x3cd29b===_0x566df8)break;else _0x5e46a7['push'](_0x5e46a7['shift']());}catch(_0x265f7e){_0x5e46a7['push'](_0x5e46a7['shift']());}}}(a60_0x4567,0x72517));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(_0x5d91bb,_0xa14498){const _0x34c97e=a60_0x4439,_0x4dcbe1=listLocalServiceTrees();let _0xe4fd91;for(const _0xa95dca of _0x4dcbe1){const _0x546dfe=matchServiceTreeCommand(_0xa95dca,_0x5d91bb);if(!_0x546dfe)continue;(!_0xe4fd91||_0x546dfe[_0x34c97e(0x152)][_0x34c97e(0x156)][_0x34c97e(0x165)]>_0xe4fd91[_0x34c97e(0x152)]['fullPath'][_0x34c97e(0x165)])&&(_0xe4fd91={'tree':_0xa95dca,'command':_0x546dfe['command'],'remainingArgs':_0x546dfe[_0x34c97e(0x14d)]});}if(!_0xe4fd91)return undefined;const _0x33aa1c={..._0xa14498};return applyAppBinding(_0xe4fd91[_0x34c97e(0x11f)],_0xe4fd91[_0x34c97e(0x152)],_0x33aa1c),{'definition':buildDynamicCommandDefinition(_0xe4fd91[_0x34c97e(0x11f)],_0xe4fd91[_0x34c97e(0x152)]),'args':_0xe4fd91['remainingArgs'],'flags':_0x33aa1c,'tree':_0xe4fd91[_0x34c97e(0x11f)],'command':_0xe4fd91[_0x34c97e(0x152)]};}export function generateDynamicServiceHelp(_0x23d6c5){const _0x2dcd0b=a60_0x4439,_0xbd56a9=listLocalServiceTrees()['find'](_0x1f46c2=>_0x1f46c2[_0x2dcd0b(0x159)][_0x2dcd0b(0x162)]===_0x23d6c5);if(!_0xbd56a9)return undefined;const _0x6d0930=[CLI_BIN_NAME+'\x20'+_0x23d6c5+'\x20<command>\x20[flags]','',_0xbd56a9[_0x2dcd0b(0x159)]['name']||_0x23d6c5,_0xbd56a9[_0x2dcd0b(0x159)][_0x2dcd0b(0x168)]?'\x20\x20'+_0xbd56a9[_0x2dcd0b(0x159)][_0x2dcd0b(0x168)]:'','',_0x2dcd0b(0x12e),..._0xbd56a9[_0x2dcd0b(0x13f)][_0x2dcd0b(0x14e)](_0x574c24=>{const _0x20d61d=_0x2dcd0b,_0x1bae59=_0x574c24[_0x20d61d(0x156)]['slice'](0x1)[_0x20d61d(0x16a)]('\x20'),_0x44f4c5=_0x574c24[_0x20d61d(0x119)]==='read'?'':'\x20['+_0x574c24[_0x20d61d(0x119)]+']';return'\x20\x20'+_0x1bae59[_0x20d61d(0x132)](0x18)+'\x20'+(_0x574c24['description']||'')+_0x44f4c5;}),'',_0x2dcd0b(0x173)+CLI_BIN_NAME+_0x2dcd0b(0x11c)+_0x23d6c5+_0x2dcd0b(0x13a)][_0x2dcd0b(0x104)](Boolean);return _0x6d0930[_0x2dcd0b(0x16a)]('\x0a');}export function listDynamicServiceEntries(){const _0x3e6401=a60_0x4439;return listLocalServices()[_0x3e6401(0x14e)](_0x160bed=>{const _0x298040=_0x3e6401,_0xf2225d=_0x160bed[_0x298040(0x10e)];return{'service':_0xf2225d[_0x298040(0x159)]['code'],'label':_0xf2225d[_0x298040(0x159)]['name']||_0xf2225d['service']['code'],'commands':_0xf2225d[_0x298040(0x13f)]['map'](_0x20b617=>({'command':dynamicCommandName(_0x20b617),'description':_0x20b617[_0x298040(0x168)]||'Run\x20service\x20command\x20'+_0x20b617[_0x298040(0x139)],'tag':riskTag(_0x20b617['risk'])}))};});}export function getDynamicServiceEntry(_0x29809a){const _0x44eb7c=a60_0x4439;return listDynamicServiceEntries()[_0x44eb7c(0x142)](_0x15fc73=>_0x15fc73['service']===_0x29809a);}export function listDynamicServiceDefinitions(_0x21891a){const _0x45a475=a60_0x4439;return listLocalServiceTrees()[_0x45a475(0x104)](_0x4bd95e=>!_0x21891a||_0x4bd95e[_0x45a475(0x159)]['code']===_0x21891a)[_0x45a475(0x10c)](_0x6a735f=>_0x6a735f['commands']['map'](_0x2373f3=>buildDynamicCommandDefinition(_0x6a735f,_0x2373f3)));}export function getDynamicServiceDefinitions(_0x5c9699){const _0x7775d6=a60_0x4439,_0x2f1802=listDynamicServiceDefinitions(_0x5c9699);return _0x2f1802[_0x7775d6(0x165)]>0x0?_0x2f1802:undefined;}export function findDynamicServiceDefinition(_0x4edbfe,_0x3726f9){return listDynamicServiceDefinitions(_0x4edbfe)['find'](_0x4e3eee=>_0x4e3eee['command']===_0x3726f9);}export function buildDynamicCommandDefinition(_0x4b5d47,_0x36ba9e){const _0x10daf1=a60_0x4439;return{'service':_0x4b5d47[_0x10daf1(0x159)][_0x10daf1(0x162)],'command':dynamicCommandName(_0x36ba9e),'description':_0x36ba9e[_0x10daf1(0x168)]||_0x10daf1(0x171)+_0x36ba9e[_0x10daf1(0x139)],'risk':_0x36ba9e[_0x10daf1(0x119)],..._0x36ba9e[_0x10daf1(0x119)]===_0x10daf1(0x157)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x36ba9e)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x36ba9e['args'][_0x10daf1(0x14e)](_0x42b10d=>({'name':_0x42b10d[_0x10daf1(0x11d)],'description':_0x42b10d[_0x10daf1(0x168)]||_0x42b10d['name'],'required':_0x42b10d[_0x10daf1(0x116)]})),'flags':_0x36ba9e[_0x10daf1(0x118)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x36ba9e),async 'dryRun'(_0x517c97){const _0x334a85=_0x10daf1,_0x747a15=await compilePlan(_0x36ba9e,_0x517c97);return{'method':_0x334a85(0x138),'url':_0x36ba9e[_0x334a85(0x139)],'body':{'target':targetPreview(_0x747a15),'params':_0x747a15['params']},'description':_0x334a85(0x123)+_0x36ba9e['cliPath']};},async 'execute'(_0x51ab01){const _0x1094ae=_0x10daf1,_0x1d84f8=await compilePlan(_0x36ba9e,_0x51ab01),_0x3d0264=Date[_0x1094ae(0x163)](),_0x896172=await executePlan(_0x1d84f8,_0x36ba9e,_0x51ab01),_0x3f9d23=Date[_0x1094ae(0x163)]()-_0x3d0264;return{'ok':!![],'data':{'service':_0x4b5d47[_0x1094ae(0x159)],'command':_0x36ba9e['cliPath'],'target':targetPreview(_0x1d84f8),'result':_0x896172,'elapsed':_0x3f9d23},'message':_0x1094ae(0x160)+_0x36ba9e[_0x1094ae(0x139)]+_0x1094ae(0x145)+_0x3f9d23+'ms'};}};}function buildDynamicConfirmationDescription(_0x5d8244){const _0x5c8700=a60_0x4439,_0x4d682f=_0x5d8244[_0x5c8700(0x168)]||_0x5d8244[_0x5c8700(0x139)],_0x3c38c8=_0x5d8244[_0x5c8700(0x119)]===_0x5c8700(0x155)?_0x5c8700(0x13b):_0x5c8700(0x12f);return _0x5c8700(0x158)+_0x4d682f+'\x22.\x20'+_0x3c38c8;}function dynamicCommandName(_0x57de6f){const _0x333d80=a60_0x4439;return _0x57de6f[_0x333d80(0x156)][_0x333d80(0x13c)](0x1)[_0x333d80(0x16a)]('\x20');}function riskTag(_0x42dd2c){const _0x4bdc16=a60_0x4439;return _0x42dd2c==='read'?'':_0x4bdc16(0x164)+_0x42dd2c+']';}function flagToCommandFlag(_0x20088d){const _0x157476=a60_0x4439;return{'name':_0x20088d[_0x157476(0x11a)],'type':_0x20088d[_0x157476(0x114)]===_0x157476(0x147)?_0x157476(0x133):_0x20088d[_0x157476(0x114)],'description':_0x20088d[_0x157476(0x168)]||_0x20088d[_0x157476(0x11d)],'required':_0x20088d['required'],'default':isPrimitiveFlagDefault(_0x20088d[_0x157476(0x170)])?_0x20088d[_0x157476(0x170)]:undefined,'enum':_0x20088d[_0x157476(0x14c)]};}async function compilePlan(_0x1113e7,_0x1388bc){const _0x5be40b=a60_0x4439;return compileServiceTreeCommand(_0x1113e7,{'flags':_0x1388bc[_0x5be40b(0x15c)],'args':_0x1388bc[_0x5be40b(0x169)],'context':await buildServiceContext(_0x1113e7,_0x1388bc)});}async function buildServiceContext(_0x24539d,_0x440e3f){const _0x40f962=a60_0x4439,_0x17bd08={'appCode':_0x440e3f['appCode'],'env':_0x440e3f[_0x40f962(0x14a)],'envName':_0x440e3f[_0x40f962(0x14a)]};if(!usesRuntimeContext(_0x24539d))return _0x17bd08;const _0x13bd06=await getLoginUserInfo(),_0x2094f6=pickFirst(_0x13bd06[_0x40f962(0x108)],_0x13bd06['id']);return{..._0x17bd08,'user':_0x13bd06,'userId':_0x2094f6,'id':_0x13bd06['id'],'username':pickFirst(_0x13bd06[_0x40f962(0x134)],_0x13bd06[_0x40f962(0x15d)],_0x13bd06['loginName']),'userName':_0x13bd06[_0x40f962(0x15d)],'nickname':pickFirst(_0x13bd06[_0x40f962(0x130)],_0x13bd06[_0x40f962(0x10d)]),'nickName':_0x13bd06[_0x40f962(0x10d)],'tenantCode':_0x13bd06[_0x40f962(0x12b)],'employeeId':_0x13bd06[_0x40f962(0x141)]};}function usesRuntimeContext(_0x48a56f){const _0x32fcec=a60_0x4439;return _0x48a56f[_0x32fcec(0x131)][_0x32fcec(0x11b)](_0x499e10=>typeof _0x499e10[_0x32fcec(0x166)]===_0x32fcec(0x133)&&(_0x499e10['source'][_0x32fcec(0x13d)]('context.')||_0x499e10[_0x32fcec(0x166)][_0x32fcec(0x13d)](_0x32fcec(0x115))));}function pickFirst(..._0x3d7944){const _0x28be49=a60_0x4439;return _0x3d7944[_0x28be49(0x142)](_0x567d29=>_0x567d29!==undefined&&_0x567d29!==null);}async function executePlan(_0x1bdfd0,_0x4b6793,_0x426d81){const _0x5a7711=a60_0x4439;if(_0x1bdfd0[_0x5a7711(0x15b)]===_0x5a7711(0x151)){const _0x39846c=await resolveDatasetCode(_0x1bdfd0,_0x4b6793,_0x426d81);return executeData(_0x39846c,_0x1bdfd0[_0x5a7711(0x152)],_0x1bdfd0[_0x5a7711(0x16e)]);}if(_0x1bdfd0['kind']===_0x5a7711(0x146)){if(!_0x1bdfd0[_0x5a7711(0x111)])throw CliErrors['validation'](_0x5a7711(0x160)+_0x4b6793['cliPath']+_0x5a7711(0x15e));return executeSdkSql(_0x1bdfd0[_0x5a7711(0x111)],normalizeScalarParams(_0x1bdfd0[_0x5a7711(0x16e)]));}if(_0x1bdfd0[_0x5a7711(0x15b)]==='bff'){const _0x184af8=_0x1bdfd0['scriptName']||_0x1bdfd0[_0x5a7711(0x10b)]||(_0x1bdfd0[_0x5a7711(0x149)]==null?'':String(_0x1bdfd0['bffId']));if(!_0x184af8)throw CliErrors[_0x5a7711(0x137)](_0x5a7711(0x160)+_0x4b6793['cliPath']+_0x5a7711(0x14b));return executeSdkBff(_0x184af8,_0x1bdfd0['params']);}throw CliErrors[_0x5a7711(0x137)](_0x5a7711(0x167)+_0x1bdfd0[_0x5a7711(0x15b)]);}async function resolveDatasetCode(_0x1b44fb,_0x28e437,_0x4e374e){const _0x2a912e=a60_0x4439;if(_0x1b44fb[_0x2a912e(0x120)])return _0x1b44fb[_0x2a912e(0x120)];if(!_0x1b44fb[_0x2a912e(0x135)])throw CliErrors['validation'](_0x2a912e(0x160)+_0x28e437[_0x2a912e(0x139)]+_0x2a912e(0x125));const _0x171632=await listDatasets(_0x4e374e[_0x2a912e(0x106)]),_0x41b10d=_0x171632[_0x2a912e(0x142)](_0x4d042a=>_0x4d042a[_0x2a912e(0x16c)]?.[_0x2a912e(0x144)]===_0x1b44fb[_0x2a912e(0x135)]);if(!_0x41b10d?.['code'])throw CliErrors[_0x2a912e(0x137)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x1b44fb[_0x2a912e(0x135)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x4e374e[_0x2a912e(0x106)]+'.',_0x2a912e(0x12c));return _0x41b10d[_0x2a912e(0x162)];}function applyAppBinding(_0x4db296,_0x3f54f5,_0x118670){const _0x102c8a=a60_0x4439,_0x448c2f=_0x3f54f5[_0x102c8a(0x128)]['appRef'];if(!_0x448c2f)return;const _0x269067=_0x4db296[_0x102c8a(0x14f)][_0x448c2f];if(!_0x269067)throw CliErrors[_0x102c8a(0x137)](_0x102c8a(0x10f)+_0x448c2f+_0x102c8a(0x112)+_0x3f54f5[_0x102c8a(0x139)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x5ebb84=_0x269067[_0x102c8a(0x16b)]||_0x269067[_0x102c8a(0x106)];_0x5ebb84&&!hasText(_0x118670[_0x102c8a(0x16b)])&&(_0x118670[_0x102c8a(0x16b)]=_0x5ebb84),_0x269067[_0x102c8a(0x113)]&&!hasText(_0x118670[_0x102c8a(0x113)])&&!hasText(_0x118670[_0x102c8a(0x16b)])&&(_0x118670[_0x102c8a(0x113)]=_0x269067[_0x102c8a(0x113)]),_0x269067['env']&&!hasText(_0x118670['env'])&&(_0x118670[_0x102c8a(0x124)]=_0x269067['env']);}function renderDynamicCommandHelp(_0x5577b5){const _0x54a3e1=a60_0x4439,_0x3f4fe5=[_0x54a3e1(0x143),'\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x15b)],_0x54a3e1(0x122)+_0x5577b5['target']['command']];if(_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x120)])_0x3f4fe5['push'](_0x54a3e1(0x154)+_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x120)]);if(_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x135)])_0x3f4fe5[_0x54a3e1(0x10a)](_0x54a3e1(0x12d)+_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x135)]);if(_0x5577b5[_0x54a3e1(0x128)]['sqlCode'])_0x3f4fe5['push']('\x20\x20\x20\x20sqlCode:\x20'+_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x111)]);if(_0x5577b5[_0x54a3e1(0x128)][_0x54a3e1(0x110)])_0x3f4fe5[_0x54a3e1(0x10a)](_0x54a3e1(0x15a)+_0x5577b5['target']['scriptName']);if(_0x5577b5[_0x54a3e1(0x131)]['length']>0x0){_0x3f4fe5[_0x54a3e1(0x10a)]('',_0x54a3e1(0x140));for(const _0xa9a9d5 of _0x5577b5[_0x54a3e1(0x131)]){_0x3f4fe5['push'](_0x54a3e1(0x117)+(_0xa9a9d5[_0x54a3e1(0x166)]||_0x54a3e1(0x161))+_0x54a3e1(0x129)+_0xa9a9d5['target']+(_0xa9a9d5[_0x54a3e1(0x16d)]?'.'+_0xa9a9d5[_0x54a3e1(0x16d)]:''));}}return _0x3f4fe5[_0x54a3e1(0x16a)]('\x0a');}function targetPreview(_0x373a54){const _0x1f2495=a60_0x4439;return{'kind':_0x373a54['kind'],'command':_0x373a54[_0x1f2495(0x152)],'appRef':_0x373a54[_0x1f2495(0x11e)],'datasetCode':_0x373a54[_0x1f2495(0x120)],'datatable':_0x373a54['datatable'],'sqlCode':_0x373a54[_0x1f2495(0x111)],'bffCode':_0x373a54[_0x1f2495(0x10b)],'bffId':_0x373a54[_0x1f2495(0x149)],'functionName':_0x373a54[_0x1f2495(0x110)]};}function normalizeScalarParams(_0x2d205c){const _0x297444=a60_0x4439;return Object[_0x297444(0x150)](Object['entries'](_0x2d205c)[_0x297444(0x104)](([,_0x12252c])=>typeof _0x12252c===_0x297444(0x133)||typeof _0x12252c===_0x297444(0x12a)));}function hasText(_0x5cdde5){const _0x5482d6=a60_0x4439;return typeof _0x5cdde5==='string'&&_0x5cdde5[_0x5482d6(0x153)]()[_0x5482d6(0x165)]>0x0;}function a60_0x4567(){const _0x4edc0b=['cliPath','`\x20to\x20inspect\x20the\x20manifest.','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','slice','startsWith','1707918oQsAnP','commands','\x20\x20MAP\x20TO','employeeId','find','\x20\x20SERVICE\x20TREE\x20TARGET','tableName','\x20completed\x20in\x20','sql','json','761638cVyCgX','bffId','envName','\x20requires\x20target.functionName.','enum','remainingArgs','map','appBindings','fromEntries','data','command','trim','\x20\x20\x20\x20datasetCode:\x20','high-risk-write','fullPath','read','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','service','\x20\x20\x20\x20functionName:\x20','kind','rawFlags','userName','\x20requires\x20target.sqlCode.','1313430sCrRYO','Service\x20command\x20','const','code','now','\x20\x20[','length','source','Unsupported\x20service\x20target\x20kind:\x20','description','args','join','appcode','dbtableConfig','operator','params','1066792etFcuf','default','Run\x20service\x20command\x20','8792syclLz','Use\x20`','filter','429GLjYxX','appCode','264230ZJgdfQ','userId','115mNORAd','push','bffCode','flatMap','nickName','normalizedManifest','Unknown\x20appRef\x20\x22','scriptName','sqlCode','\x22\x20in\x20service\x20command\x20','app','type','ctx.','required','\x20\x20\x20\x20','flags','risk','cliName','some','\x20service\x20detail\x20--service\x20','name','appRef','tree','datasetCode','3165966ZNdnlf','\x20\x20\x20\x20command:\x20','Preview\x20dynamic\x20service\x20command:\x20','env','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','boolean','7EHMlYT','target','\x20->\x20','number','tenantCode','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20\x20\x20datatable:\x20','Commands:','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','nickname','mapTo','padEnd','string','username','datatable','2fDnzVP','validation','SERVICE_TREE'];a60_0x4567=function(){return _0x4edc0b;};return a60_0x4567();}function a60_0x4439(_0x33f0ee,_0x595ad5){_0x33f0ee=_0x33f0ee-0x104;const _0x456760=a60_0x4567();let _0x4439ea=_0x456760[_0x33f0ee];return _0x4439ea;}function isPrimitiveFlagDefault(_0x1f5caa){const _0x1a9140=a60_0x4439;return _0x1f5caa===undefined||typeof _0x1f5caa===_0x1a9140(0x133)||typeof _0x1f5caa===_0x1a9140(0x12a)||typeof _0x1f5caa===_0x1a9140(0x126);}
@@ -1 +1 @@
1
- (function(_0x3f0660,_0x53d26f){const _0x4e41d0=a61_0x31a9,_0x58c8f7=_0x3f0660();while(!![]){try{const _0x1f3bb0=parseInt(_0x4e41d0(0x74))/0x1+parseInt(_0x4e41d0(0x79))/0x2*(-parseInt(_0x4e41d0(0x7f))/0x3)+-parseInt(_0x4e41d0(0x81))/0x4+-parseInt(_0x4e41d0(0x6d))/0x5+-parseInt(_0x4e41d0(0x7e))/0x6+-parseInt(_0x4e41d0(0x89))/0x7+parseInt(_0x4e41d0(0x73))/0x8*(parseInt(_0x4e41d0(0x68))/0x9);if(_0x1f3bb0===_0x53d26f)break;else _0x58c8f7['push'](_0x58c8f7['shift']());}catch(_0x3c122c){_0x58c8f7['push'](_0x58c8f7['shift']());}}}(a61_0x54be,0x32ab0));export function adaptServiceTreeManifestForLegacyFramework(_0x16bfcf){const _0x466101=a61_0x31a9,_0x3cdf0b=cloneJsonValue(_0x16bfcf),_0x1589c8=[];if(!isObjectRecord(_0x3cdf0b))return{'manifest':_0x3cdf0b,'errors':_0x1589c8};return Array['isArray'](_0x3cdf0b[_0x466101(0x88)])&&_0x3cdf0b[_0x466101(0x88)][_0x466101(0x84)]((_0x4b552,_0x4c93a5)=>{const _0x253cbb=_0x466101;if(!isObjectRecord(_0x4b552))return;adaptBffTarget(_0x4b552[_0x253cbb(0x80)],'$.commands['+_0x4c93a5+'].target',_0x1589c8);}),adaptResources(_0x3cdf0b[_0x466101(0x6a)],_0x466101(0x6f),_0x1589c8),{'manifest':_0x3cdf0b,'errors':_0x1589c8};}export function toPublicServiceTreeTarget(_0x8e94bc){const _0x795a17=a61_0x31a9,{scriptName:_0x5904e8,..._0x35aaf0}=_0x8e94bc;return typeof _0x5904e8===_0x795a17(0x72)&&_0x5904e8['trim']()&&(_0x35aaf0[_0x795a17(0x7c)]=_0x5904e8),_0x35aaf0;}export function toPublicNormalizedServiceTree(_0x212d45){const _0x596618=a61_0x31a9;return{..._0x212d45,'commands':_0x212d45[_0x596618(0x88)][_0x596618(0x83)](_0x144634=>({..._0x144634,'target':toPublicServiceTreeTarget(_0x144634['target'])}))};}function a61_0x31a9(_0x1c1e37,_0x13a7c3){_0x1c1e37=_0x1c1e37-0x67;const _0x54be1e=a61_0x54be();let _0x31a9c3=_0x54be1e[_0x1c1e37];return _0x31a9c3;}function adaptResources(_0x573223,_0x1800ff,_0xc52b81){const _0x451af0=a61_0x31a9;if(!isObjectRecord(_0x573223))return;for(const [_0x20230a,_0x2a51a9]of Object[_0x451af0(0x6b)](_0x573223)){if(!isObjectRecord(_0x2a51a9))continue;const _0x38c2ce=_0x1800ff+'.'+_0x20230a;if(isObjectRecord(_0x2a51a9['actions']))for(const [_0x4e887c,_0xeccc2b]of Object[_0x451af0(0x6b)](_0x2a51a9[_0x451af0(0x70)])){if(!isObjectRecord(_0xeccc2b))continue;const _0x50d8c1=_0x38c2ce+_0x451af0(0x69)+_0x4e887c,_0x41e7f5=isObjectRecord(_0xeccc2b['target'])&&_0xeccc2b[_0x451af0(0x80)]['kind']===_0x451af0(0x82);adaptBffTarget(_0xeccc2b['target'],_0x50d8c1+'.target',_0xc52b81),(_0x41e7f5||isBffAction(_0xeccc2b))&&adaptFunctionNameField(_0xeccc2b,_0x50d8c1,_0xc52b81);}adaptResources(_0x2a51a9[_0x451af0(0x6a)],_0x38c2ce+'.resources',_0xc52b81);}}function adaptBffTarget(_0x4eac76,_0x172611,_0x31f9e){const _0x3778f9=a61_0x31a9;if(!isObjectRecord(_0x4eac76)||_0x4eac76[_0x3778f9(0x75)]!==_0x3778f9(0x82))return;adaptFunctionNameField(_0x4eac76,_0x172611,_0x31f9e);}function adaptFunctionNameField(_0x464219,_0x43e80d,_0x2d022d){const _0x4fa7e7=a61_0x31a9;Object[_0x4fa7e7(0x71)][_0x4fa7e7(0x7a)][_0x4fa7e7(0x6c)](_0x464219,_0x4fa7e7(0x6e))&&_0x2d022d[_0x4fa7e7(0x67)]({'level':_0x4fa7e7(0x78),'path':_0x43e80d+_0x4fa7e7(0x76),'message':_0x4fa7e7(0x7b)});if(Object[_0x4fa7e7(0x71)][_0x4fa7e7(0x7a)]['call'](_0x464219,'functionName')){if(typeof _0x464219['functionName']!==_0x4fa7e7(0x72)||!_0x464219[_0x4fa7e7(0x7c)][_0x4fa7e7(0x7d)]()){_0x2d022d[_0x4fa7e7(0x67)]({'level':_0x4fa7e7(0x78),'path':_0x43e80d+'.functionName','message':_0x4fa7e7(0x86)}),delete _0x464219['functionName'];return;}_0x464219[_0x4fa7e7(0x6e)]=_0x464219[_0x4fa7e7(0x7c)],delete _0x464219[_0x4fa7e7(0x7c)];}}function isBffAction(_0x260a83){const _0x59cbbd=a61_0x31a9;return _0x260a83[_0x59cbbd(0x75)]===_0x59cbbd(0x82)||_0x260a83['action']===_0x59cbbd(0x87)||_0x260a83[_0x59cbbd(0x80)]===_0x59cbbd(0x87);}function cloneJsonValue(_0x3304da){const _0x44e36b=a61_0x31a9;if(Array[_0x44e36b(0x77)](_0x3304da))return _0x3304da[_0x44e36b(0x83)](_0x3f3813=>cloneJsonValue(_0x3f3813));if(isObjectRecord(_0x3304da))return Object[_0x44e36b(0x85)](Object[_0x44e36b(0x6b)](_0x3304da)['map'](([_0x41ab00,_0x40d5c2])=>[_0x41ab00,cloneJsonValue(_0x40d5c2)]));return _0x3304da;}function a61_0x54be(){const _0x3e0a80=['1428NrQAeO','hasOwnProperty','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','functionName','trim','933774bMwLAA','42CQPIDH','target','48212UyqsaS','bff','map','forEach','fromEntries','functionName\x20must\x20be\x20a\x20non-empty\x20string.','bff.exec','commands','864381smnOFq','push','144csGAde','.actions.','resources','entries','call','1430930fZMACX','scriptName','$.resources','actions','prototype','string','280648wzhbEt','233587XzwYCe','kind','.scriptName','isArray','error'];a61_0x54be=function(){return _0x3e0a80;};return a61_0x54be();}function isObjectRecord(_0x369a60){return Boolean(_0x369a60)&&typeof _0x369a60==='object'&&!Array['isArray'](_0x369a60);}
1
+ (function(_0x4ce978,_0x4b5480){const _0x5c13c7=a61_0xa602,_0x3dcb65=_0x4ce978();while(!![]){try{const _0x159930=parseInt(_0x5c13c7(0xac))/0x1+parseInt(_0x5c13c7(0x9a))/0x2*(-parseInt(_0x5c13c7(0xa4))/0x3)+parseInt(_0x5c13c7(0xb0))/0x4+-parseInt(_0x5c13c7(0xa6))/0x5+-parseInt(_0x5c13c7(0xaf))/0x6+-parseInt(_0x5c13c7(0xab))/0x7*(-parseInt(_0x5c13c7(0xae))/0x8)+parseInt(_0x5c13c7(0x9b))/0x9;if(_0x159930===_0x4b5480)break;else _0x3dcb65['push'](_0x3dcb65['shift']());}catch(_0x5d39b8){_0x3dcb65['push'](_0x3dcb65['shift']());}}}(a61_0x4b56,0x7bacd));function a61_0x4b56(){const _0x54061c=['commands','string','functionName','entries','$.resources','push','bff','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','isArray','.functionName','target','scriptName','4066POCzwZ','10074870eSaBZf','actions','bff.exec','.resources','call','map','prototype','].target','forEach','1002pladEW','resources','615885SWGRSR','kind','error','fromEntries','.target','1251831iKlVuV','458235yQWWFA','action','24rgcpfa','5685324TyOERI','568648AYJHlc'];a61_0x4b56=function(){return _0x54061c;};return a61_0x4b56();}export function adaptServiceTreeManifestForLegacyFramework(_0x235a02){const _0x346fcc=a61_0xa602,_0x4fb82e=cloneJsonValue(_0x235a02),_0x409623=[];if(!isObjectRecord(_0x4fb82e))return{'manifest':_0x4fb82e,'errors':_0x409623};return Array[_0x346fcc(0xb9)](_0x4fb82e[_0x346fcc(0xb1)])&&_0x4fb82e[_0x346fcc(0xb1)][_0x346fcc(0xa3)]((_0x2a4fe3,_0x156c79)=>{const _0x241cfc=_0x346fcc;if(!isObjectRecord(_0x2a4fe3))return;adaptBffTarget(_0x2a4fe3['target'],'$.commands['+_0x156c79+_0x241cfc(0xa2),_0x409623);}),adaptResources(_0x4fb82e[_0x346fcc(0xa5)],_0x346fcc(0xb5),_0x409623),{'manifest':_0x4fb82e,'errors':_0x409623};}export function toPublicServiceTreeTarget(_0x3cddaf){const _0x5297c6=a61_0xa602,{scriptName:_0x52ef04,..._0x56f639}=_0x3cddaf;return typeof _0x52ef04===_0x5297c6(0xb2)&&_0x52ef04['trim']()&&(_0x56f639[_0x5297c6(0xb3)]=_0x52ef04),_0x56f639;}export function toPublicNormalizedServiceTree(_0x140840){const _0x26094e=a61_0xa602;return{..._0x140840,'commands':_0x140840[_0x26094e(0xb1)][_0x26094e(0xa0)](_0x444688=>({..._0x444688,'target':toPublicServiceTreeTarget(_0x444688[_0x26094e(0x98)])}))};}function a61_0xa602(_0x248481,_0x3a42ef){_0x248481=_0x248481-0x98;const _0x4b5600=a61_0x4b56();let _0xa60267=_0x4b5600[_0x248481];return _0xa60267;}function adaptResources(_0x252df5,_0x26ddb6,_0x552625){const _0x2e84aa=a61_0xa602;if(!isObjectRecord(_0x252df5))return;for(const [_0x13f343,_0x27858c]of Object['entries'](_0x252df5)){if(!isObjectRecord(_0x27858c))continue;const _0x9dfba8=_0x26ddb6+'.'+_0x13f343;if(isObjectRecord(_0x27858c[_0x2e84aa(0x9c)]))for(const [_0x4c0a0a,_0x5899b5]of Object[_0x2e84aa(0xb4)](_0x27858c[_0x2e84aa(0x9c)])){if(!isObjectRecord(_0x5899b5))continue;const _0x101543=_0x9dfba8+'.actions.'+_0x4c0a0a,_0x56315f=isObjectRecord(_0x5899b5[_0x2e84aa(0x98)])&&_0x5899b5[_0x2e84aa(0x98)]['kind']==='bff';adaptBffTarget(_0x5899b5[_0x2e84aa(0x98)],_0x101543+_0x2e84aa(0xaa),_0x552625),(_0x56315f||isBffAction(_0x5899b5))&&adaptFunctionNameField(_0x5899b5,_0x101543,_0x552625);}adaptResources(_0x27858c[_0x2e84aa(0xa5)],_0x9dfba8+_0x2e84aa(0x9e),_0x552625);}}function adaptBffTarget(_0x4646ac,_0x2b2461,_0x55aac8){const _0x5203f1=a61_0xa602;if(!isObjectRecord(_0x4646ac)||_0x4646ac['kind']!==_0x5203f1(0xb7))return;adaptFunctionNameField(_0x4646ac,_0x2b2461,_0x55aac8);}function adaptFunctionNameField(_0x36ea46,_0x2bc953,_0x30aa0d){const _0x557ce3=a61_0xa602;Object['prototype']['hasOwnProperty']['call'](_0x36ea46,_0x557ce3(0x99))&&_0x30aa0d['push']({'level':_0x557ce3(0xa8),'path':_0x2bc953+'.scriptName','message':_0x557ce3(0xb8)});if(Object[_0x557ce3(0xa1)]['hasOwnProperty'][_0x557ce3(0x9f)](_0x36ea46,_0x557ce3(0xb3))){if(typeof _0x36ea46[_0x557ce3(0xb3)]!==_0x557ce3(0xb2)||!_0x36ea46[_0x557ce3(0xb3)]['trim']()){_0x30aa0d[_0x557ce3(0xb6)]({'level':_0x557ce3(0xa8),'path':_0x2bc953+_0x557ce3(0xba),'message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x36ea46[_0x557ce3(0xb3)];return;}_0x36ea46[_0x557ce3(0x99)]=_0x36ea46[_0x557ce3(0xb3)],delete _0x36ea46[_0x557ce3(0xb3)];}}function isBffAction(_0x3e59b4){const _0x1cf731=a61_0xa602;return _0x3e59b4[_0x1cf731(0xa7)]===_0x1cf731(0xb7)||_0x3e59b4[_0x1cf731(0xad)]===_0x1cf731(0x9d)||_0x3e59b4[_0x1cf731(0x98)]==='bff.exec';}function cloneJsonValue(_0x9ad92b){const _0x5dfa54=a61_0xa602;if(Array[_0x5dfa54(0xb9)](_0x9ad92b))return _0x9ad92b['map'](_0x16d1ed=>cloneJsonValue(_0x16d1ed));if(isObjectRecord(_0x9ad92b))return Object[_0x5dfa54(0xa9)](Object[_0x5dfa54(0xb4)](_0x9ad92b)['map'](([_0x5ee89c,_0xd1d32c])=>[_0x5ee89c,cloneJsonValue(_0xd1d32c)]));return _0x9ad92b;}function isObjectRecord(_0x5a6eca){return Boolean(_0x5a6eca)&&typeof _0x5a6eca==='object'&&!Array['isArray'](_0x5a6eca);}
@@ -1 +1 @@
1
- const a62_0x59bb4d=a62_0x1367;(function(_0x4997a2,_0x4d4b56){const _0xbc700=a62_0x1367,_0x4a0611=_0x4997a2();while(!![]){try{const _0x458205=parseInt(_0xbc700(0x1f6))/0x1+parseInt(_0xbc700(0x21c))/0x2+parseInt(_0xbc700(0x208))/0x3+parseInt(_0xbc700(0x1f4))/0x4*(-parseInt(_0xbc700(0x204))/0x5)+parseInt(_0xbc700(0x20f))/0x6+-parseInt(_0xbc700(0x20b))/0x7*(parseInt(_0xbc700(0x1f2))/0x8)+parseInt(_0xbc700(0x1f5))/0x9*(-parseInt(_0xbc700(0x225))/0xa);if(_0x458205===_0x4d4b56)break;else _0x4a0611['push'](_0x4a0611['shift']());}catch(_0x35b00f){_0x4a0611['push'](_0x4a0611['shift']());}}}(a62_0x566d,0x691c9));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';function a62_0x1367(_0x169dfa,_0x27bdd3){_0x169dfa=_0x169dfa-0x1e3;const _0x566dfc=a62_0x566d();let _0x136721=_0x566dfc[_0x169dfa];return _0x136721;}const FILE_FLAG={'name':'file','type':a62_0x59bb4d(0x201),'required':!![],'description':a62_0x59bb4d(0x22a)},SERVICE_FLAG={'name':'service','type':a62_0x59bb4d(0x201),'required':!![],'description':a62_0x59bb4d(0x1fa),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x59bb4d(0x20e)}};function summarizeService(_0x5a01d1){const _0x7170b4=a62_0x59bb4d;return{'serviceCode':_0x5a01d1['serviceCode'],'name':_0x5a01d1[_0x7170b4(0x228)][_0x7170b4(0x1e5)][_0x7170b4(0x212)],'version':_0x5a01d1[_0x7170b4(0x1e6)],'importedAt':_0x5a01d1[_0x7170b4(0x21e)],'source':_0x5a01d1[_0x7170b4(0x1ee)],'commandCount':_0x5a01d1[_0x7170b4(0x228)][_0x7170b4(0x1e8)][_0x7170b4(0x1f8)],'commands':_0x5a01d1['normalizedManifest'][_0x7170b4(0x1e8)][_0x7170b4(0x21d)](_0x4e7005=>({'path':_0x4e7005[_0x7170b4(0x1f7)],'description':_0x4e7005[_0x7170b4(0x1fb)],'risk':_0x4e7005[_0x7170b4(0x202)],'target':toPublicServiceTreeTarget(_0x4e7005[_0x7170b4(0x221)]),'flags':_0x4e7005['flags'][_0x7170b4(0x21d)](_0x1a2eb2=>({'name':_0x1a2eb2[_0x7170b4(0x212)],'cliName':_0x1a2eb2['cliName'],'type':_0x1a2eb2[_0x7170b4(0x209)],'required':_0x1a2eb2[_0x7170b4(0x216)]===!![]}))}))};}function summarizeLoadedManifest(_0x336147){const _0x25083d=a62_0x59bb4d;return{'service':_0x336147[_0x25083d(0x228)]?.[_0x25083d(0x1e5)],'version':_0x336147[_0x25083d(0x228)]?.[_0x25083d(0x1e6)],'commandCount':_0x336147[_0x25083d(0x228)]?.[_0x25083d(0x1e8)]['length']??0x0,'commands':_0x336147[_0x25083d(0x228)]?.[_0x25083d(0x1e8)][_0x25083d(0x21d)](_0xaea6d6=>({'path':_0xaea6d6[_0x25083d(0x1f7)],'risk':_0xaea6d6['risk'],'target':toPublicServiceTreeTarget(_0xaea6d6[_0x25083d(0x221)])}))??[],'registryIndex':_0x336147['registryIndex'],'registryServiceCode':_0x336147['registryServiceCode'],'errors':_0x336147[_0x25083d(0x217)]['errors'],'warnings':_0x336147[_0x25083d(0x217)][_0x25083d(0x21b)]};}export const serviceDefinitions=[{'service':a62_0x59bb4d(0x1e5),'command':a62_0x59bb4d(0x1f3),'description':a62_0x59bb4d(0x205),'risk':a62_0x59bb4d(0x1fc),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x5190d1){const _0x5d43b1=a62_0x59bb4d,_0x52c448=loadServiceManifestFromFile(_0x5190d1[_0x5d43b1(0x227)]('file'));if(!_0x52c448[_0x5d43b1(0x217)]['ok'])return{'ok':![],'data':{'file':_0x52c448[_0x5d43b1(0x20c)],'hash':_0x52c448[_0x5d43b1(0x214)],'kind':_0x52c448[_0x5d43b1(0x207)],'serviceCount':_0x52c448[_0x5d43b1(0x200)][_0x5d43b1(0x1f8)],'services':_0x52c448[_0x5d43b1(0x200)][_0x5d43b1(0x21d)](summarizeLoadedManifest),'errors':_0x52c448[_0x5d43b1(0x217)][_0x5d43b1(0x219)],'warnings':_0x52c448[_0x5d43b1(0x217)][_0x5d43b1(0x21b)]},'message':formatValidationFailure(_0x52c448[_0x5d43b1(0x217)])};if(_0x52c448['kind']===_0x5d43b1(0x226)||_0x52c448[_0x5d43b1(0x200)]['length']!==0x1)return{'ok':!![],'data':{'file':_0x52c448[_0x5d43b1(0x20c)],'hash':_0x52c448[_0x5d43b1(0x214)],'kind':_0x52c448[_0x5d43b1(0x207)],'serviceCount':_0x52c448[_0x5d43b1(0x200)][_0x5d43b1(0x1f8)],'commandCount':_0x52c448[_0x5d43b1(0x200)][_0x5d43b1(0x206)]((_0x4204ba,_0x2c1be3)=>_0x4204ba+(_0x2c1be3[_0x5d43b1(0x228)]?.[_0x5d43b1(0x1e8)][_0x5d43b1(0x1f8)]??0x0),0x0),'services':_0x52c448[_0x5d43b1(0x200)][_0x5d43b1(0x21d)](summarizeLoadedManifest),'warnings':_0x52c448[_0x5d43b1(0x217)][_0x5d43b1(0x21b)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x52c448[_0x5d43b1(0x20c)],'hash':_0x52c448[_0x5d43b1(0x214)],'kind':_0x52c448[_0x5d43b1(0x207)],'service':_0x52c448[_0x5d43b1(0x228)]?.[_0x5d43b1(0x1e5)],'version':_0x52c448[_0x5d43b1(0x228)]?.[_0x5d43b1(0x1e6)],'commandCount':_0x52c448[_0x5d43b1(0x228)]?.[_0x5d43b1(0x1e8)][_0x5d43b1(0x1f8)]??0x0,'commands':_0x52c448[_0x5d43b1(0x228)]?.['commands'][_0x5d43b1(0x21d)](_0x3cfff1=>({'path':_0x3cfff1[_0x5d43b1(0x1f7)],'risk':_0x3cfff1['risk'],'target':toPublicServiceTreeTarget(_0x3cfff1['target'])})),'warnings':_0x52c448[_0x5d43b1(0x217)][_0x5d43b1(0x21b)]},'message':_0x5d43b1(0x220)};}},{'service':'service','command':a62_0x59bb4d(0x21a),'description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':a62_0x59bb4d(0x1fd),'confirmationDescription':a62_0x59bb4d(0x1e4),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x2011b4){const _0x376608=a62_0x59bb4d,_0xc509d2=loadServiceManifestFromFile(_0x2011b4[_0x376608(0x227)]('file'));return{'method':_0x376608(0x203),'url':getServiceRegistryPath(),'body':{'file':_0xc509d2['filePath'],'hash':_0xc509d2[_0x376608(0x214)],'kind':_0xc509d2[_0x376608(0x207)],'ok':_0xc509d2['report']['ok'],'service':_0xc509d2['normalizedManifest']?.[_0x376608(0x1e5)],'version':_0xc509d2[_0x376608(0x228)]?.['version'],'serviceCount':_0xc509d2['manifests'][_0x376608(0x1f8)],'services':_0xc509d2[_0x376608(0x200)]['map'](_0x2ac454=>({'service':_0x2ac454[_0x376608(0x228)]?.[_0x376608(0x1e5)],'version':_0x2ac454[_0x376608(0x228)]?.[_0x376608(0x1e6)],'commandCount':_0x2ac454[_0x376608(0x228)]?.['commands'][_0x376608(0x1f8)]??0x0,'errors':_0x2ac454['report']['errors']})),'errors':_0xc509d2[_0x376608(0x217)][_0x376608(0x219)],'commandCount':_0xc509d2[_0x376608(0x228)]?.[_0x376608(0x1e8)][_0x376608(0x1f8)]??0x0},'description':_0x376608(0x1e9)};},async 'execute'(_0x3bb96d){const _0x344107=a62_0x59bb4d,_0x4eeeb7=importServiceManifest(_0x3bb96d[_0x344107(0x227)]('file'));if(_0x4eeeb7[_0x344107(0x218)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x4eeeb7['registryPath'],'imported':_0x4eeeb7[_0x344107(0x1ec)],'updated':_0x4eeeb7[_0x344107(0x20d)],'serviceCount':_0x4eeeb7['serviceCount'],'services':_0x4eeeb7[_0x344107(0x218)][_0x344107(0x21d)](summarizeService)},'message':'Imported\x20'+_0x4eeeb7[_0x344107(0x1ec)]+_0x344107(0x211)+_0x4eeeb7['updated']+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x4eeeb7['registryPath'],'replaced':_0x4eeeb7['replaced'],'imported':_0x4eeeb7[_0x344107(0x1ec)],'updated':_0x4eeeb7['updated'],'serviceCount':_0x4eeeb7['serviceCount'],'service':summarizeService(_0x4eeeb7[_0x344107(0x224)])},'message':(_0x4eeeb7[_0x344107(0x1fe)]?_0x344107(0x1ef):_0x344107(0x215))+_0x344107(0x1ea)+_0x4eeeb7['entry'][_0x344107(0x1ff)]+'.'};}},{'service':a62_0x59bb4d(0x1e5),'command':a62_0x59bb4d(0x223),'description':a62_0x59bb4d(0x21f),'risk':'write','confirmationDescription':a62_0x59bb4d(0x213),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x300415){const _0x3eda27=a62_0x59bb4d,_0x47400f=getLocalServiceEntry(_0x300415['str'](_0x3eda27(0x1e5)));return{'method':_0x3eda27(0x203),'url':_0x300415[_0x3eda27(0x227)](_0x3eda27(0x20a)),'body':{'service':_0x300415['str']('service'),'found':Boolean(_0x47400f),'version':_0x47400f?.[_0x3eda27(0x1e6)],'source':_0x47400f?.[_0x3eda27(0x1ee)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x5ba330){const _0x58dccb=a62_0x59bb4d,_0x50baab=exportServiceManifest(_0x5ba330[_0x58dccb(0x227)]('service'),_0x5ba330[_0x58dccb(0x227)]('file'));return{'ok':!![],'data':{'registryPath':_0x50baab[_0x58dccb(0x1f1)],'file':_0x50baab[_0x58dccb(0x20c)],'service':summarizeService(_0x50baab['entry'])},'message':_0x58dccb(0x222)+_0x50baab[_0x58dccb(0x224)]['serviceCode']+'.'};}},{'service':a62_0x59bb4d(0x1e5),'command':'list','description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':a62_0x59bb4d(0x1fc),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x2d18c0=a62_0x59bb4d,_0x18d546=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x18d546[_0x2d18c0(0x1f8)],'services':_0x18d546['map'](summarizeService)}};}},{'service':'service','command':a62_0x59bb4d(0x1e7),'description':a62_0x59bb4d(0x1e3),'risk':'write','confirmationDescription':'Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x29b658){const _0x2e204e=a62_0x59bb4d,_0x242953=getLocalServiceEntry(_0x29b658[_0x2e204e(0x227)]('service'));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x29b658[_0x2e204e(0x227)](_0x2e204e(0x1e5)),'found':Boolean(_0x242953),'version':_0x242953?.[_0x2e204e(0x1e6)],'source':_0x242953?.['source']},'description':_0x2e204e(0x210)};},async 'execute'(_0x416237){const _0x1aee00=a62_0x59bb4d,_0x2fe66c=removeServiceManifest(_0x416237[_0x1aee00(0x227)](_0x1aee00(0x1e5)));return{'ok':!![],'data':{'registryPath':_0x2fe66c['registryPath'],'serviceCount':_0x2fe66c[_0x1aee00(0x1eb)],'service':summarizeService(_0x2fe66c[_0x1aee00(0x224)])},'message':_0x1aee00(0x1f0)+_0x2fe66c[_0x1aee00(0x224)]['serviceCode']+'.'};}},{'service':a62_0x59bb4d(0x1e5),'command':a62_0x59bb4d(0x1f9),'description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':a62_0x59bb4d(0x1fc),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x27bd58){const _0x3954a9=a62_0x59bb4d,_0x34806d=getLocalServiceEntry(_0x27bd58[_0x3954a9(0x227)]('service'));if(!_0x34806d)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x27bd58[_0x3954a9(0x227)](_0x3954a9(0x1e5))},'message':_0x3954a9(0x1ed)+_0x27bd58[_0x3954a9(0x227)](_0x3954a9(0x1e5))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x34806d),'manifest':_0x34806d[_0x3954a9(0x229)],'normalizedManifest':toPublicNormalizedServiceTree(_0x34806d[_0x3954a9(0x228)])}};}}];function a62_0x566d(){const _0x1e5beb=['file','28ShDLwG','filePath','updated','lower\x20kebab-case\x20service\x20code','149376dwhGJg','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','\x20service(s),\x20updated\x20','name','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.','hash','Imported','required','report','entries','errors','import','warnings','580518wtikjk','map','importedAt','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Service\x20manifest\x20validation\x20passed.','target','Exported\x20service\x20','export','entry','20rmpGtL','registry','str','normalizedManifest','manifest','Service\x20Tree\x20manifest\x20file\x20path','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','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.','service','version','remove','commands','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','\x20service\x20','serviceCount','imported','Local\x20service\x20not\x20found:\x20','source','Updated','Removed\x20service\x20','registryPath','592400PbMMRN','validate','8tnxISj','948357DRrSsQ','549771AVTsjq','cliPath','length','detail','Local\x20service\x20code,\x20for\x20example\x20crm','description','read','write','replaced','serviceCode','manifests','string','risk','WRITE','176325aEBAvs','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','reduce','kind','429261zdXeTC','type'];a62_0x566d=function(){return _0x1e5beb;};return a62_0x566d();}
1
+ const a62_0x63ec0=a62_0x5eb3;function a62_0x5eb3(_0x1ff043,_0x40d282){_0x1ff043=_0x1ff043-0x120;const _0x3bbc6a=a62_0x3bbc();let _0x5eb383=_0x3bbc6a[_0x1ff043];return _0x5eb383;}(function(_0x19b672,_0x10c2ca){const _0x102b2c=a62_0x5eb3,_0x142d97=_0x19b672();while(!![]){try{const _0x2040dc=-parseInt(_0x102b2c(0x130))/0x1*(-parseInt(_0x102b2c(0x156))/0x2)+parseInt(_0x102b2c(0x154))/0x3*(parseInt(_0x102b2c(0x12f))/0x4)+parseInt(_0x102b2c(0x149))/0x5+parseInt(_0x102b2c(0x14d))/0x6+parseInt(_0x102b2c(0x123))/0x7+-parseInt(_0x102b2c(0x15c))/0x8+-parseInt(_0x102b2c(0x121))/0x9;if(_0x2040dc===_0x10c2ca)break;else _0x142d97['push'](_0x142d97['shift']());}catch(_0x2c455a){_0x142d97['push'](_0x142d97['shift']());}}}(a62_0x3bbc,0x2e2a8));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':a62_0x63ec0(0x157),'type':a62_0x63ec0(0x12d),'required':!![],'description':a62_0x63ec0(0x165)},SERVICE_FLAG={'name':a62_0x63ec0(0x14b),'type':'string','required':!![],'description':a62_0x63ec0(0x14a),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x63ec0(0x15f)}};function summarizeService(_0x4ae76c){const _0x4b66b4=a62_0x63ec0;return{'serviceCode':_0x4ae76c['serviceCode'],'name':_0x4ae76c[_0x4b66b4(0x14e)][_0x4b66b4(0x14b)][_0x4b66b4(0x161)],'version':_0x4ae76c[_0x4b66b4(0x12b)],'importedAt':_0x4ae76c[_0x4b66b4(0x128)],'source':_0x4ae76c[_0x4b66b4(0x124)],'commandCount':_0x4ae76c[_0x4b66b4(0x14e)][_0x4b66b4(0x13e)][_0x4b66b4(0x153)],'commands':_0x4ae76c[_0x4b66b4(0x14e)][_0x4b66b4(0x13e)][_0x4b66b4(0x131)](_0x5213d3=>({'path':_0x5213d3[_0x4b66b4(0x155)],'description':_0x5213d3['description'],'risk':_0x5213d3[_0x4b66b4(0x15d)],'target':toPublicServiceTreeTarget(_0x5213d3[_0x4b66b4(0x143)]),'flags':_0x5213d3[_0x4b66b4(0x142)][_0x4b66b4(0x131)](_0x24f87b=>({'name':_0x24f87b[_0x4b66b4(0x161)],'cliName':_0x24f87b[_0x4b66b4(0x164)],'type':_0x24f87b['type'],'required':_0x24f87b['required']===!![]}))}))};}function summarizeLoadedManifest(_0x558f25){const _0xd48134=a62_0x63ec0;return{'service':_0x558f25[_0xd48134(0x14e)]?.['service'],'version':_0x558f25[_0xd48134(0x14e)]?.['version'],'commandCount':_0x558f25[_0xd48134(0x14e)]?.[_0xd48134(0x13e)]['length']??0x0,'commands':_0x558f25['normalizedManifest']?.[_0xd48134(0x13e)][_0xd48134(0x131)](_0x20633c=>({'path':_0x20633c['cliPath'],'risk':_0x20633c[_0xd48134(0x15d)],'target':toPublicServiceTreeTarget(_0x20633c[_0xd48134(0x143)])}))??[],'registryIndex':_0x558f25[_0xd48134(0x14f)],'registryServiceCode':_0x558f25[_0xd48134(0x160)],'errors':_0x558f25[_0xd48134(0x137)][_0xd48134(0x145)],'warnings':_0x558f25[_0xd48134(0x137)]['warnings']};}export const serviceDefinitions=[{'service':a62_0x63ec0(0x14b),'command':a62_0x63ec0(0x134),'description':a62_0x63ec0(0x140),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x62a3ab){const _0x536536=a62_0x63ec0,_0x365152=loadServiceManifestFromFile(_0x62a3ab[_0x536536(0x158)](_0x536536(0x157)));if(!_0x365152[_0x536536(0x137)]['ok'])return{'ok':![],'data':{'file':_0x365152[_0x536536(0x15e)],'hash':_0x365152['hash'],'kind':_0x365152[_0x536536(0x132)],'serviceCount':_0x365152['manifests'][_0x536536(0x153)],'services':_0x365152['manifests'][_0x536536(0x131)](summarizeLoadedManifest),'errors':_0x365152[_0x536536(0x137)][_0x536536(0x145)],'warnings':_0x365152[_0x536536(0x137)][_0x536536(0x141)]},'message':formatValidationFailure(_0x365152[_0x536536(0x137)])};if(_0x365152['kind']===_0x536536(0x163)||_0x365152[_0x536536(0x120)][_0x536536(0x153)]!==0x1)return{'ok':!![],'data':{'file':_0x365152[_0x536536(0x15e)],'hash':_0x365152['hash'],'kind':_0x365152['kind'],'serviceCount':_0x365152[_0x536536(0x120)][_0x536536(0x153)],'commandCount':_0x365152[_0x536536(0x120)][_0x536536(0x136)]((_0x31dfd0,_0x113216)=>_0x31dfd0+(_0x113216[_0x536536(0x14e)]?.[_0x536536(0x13e)]['length']??0x0),0x0),'services':_0x365152[_0x536536(0x120)][_0x536536(0x131)](summarizeLoadedManifest),'warnings':_0x365152['report'][_0x536536(0x141)]},'message':_0x536536(0x122)};return{'ok':!![],'data':{'file':_0x365152[_0x536536(0x15e)],'hash':_0x365152[_0x536536(0x150)],'kind':_0x365152[_0x536536(0x132)],'service':_0x365152[_0x536536(0x14e)]?.[_0x536536(0x14b)],'version':_0x365152[_0x536536(0x14e)]?.['version'],'commandCount':_0x365152['normalizedManifest']?.[_0x536536(0x13e)]['length']??0x0,'commands':_0x365152[_0x536536(0x14e)]?.[_0x536536(0x13e)]['map'](_0x539529=>({'path':_0x539529[_0x536536(0x155)],'risk':_0x539529[_0x536536(0x15d)],'target':toPublicServiceTreeTarget(_0x539529['target'])})),'warnings':_0x365152[_0x536536(0x137)][_0x536536(0x141)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a62_0x63ec0(0x14b),'command':a62_0x63ec0(0x146),'description':a62_0x63ec0(0x166),'risk':'write','confirmationDescription':a62_0x63ec0(0x147),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x39a015){const _0x4def23=a62_0x63ec0,_0x4cc3b5=loadServiceManifestFromFile(_0x39a015['str']('file'));return{'method':_0x4def23(0x135),'url':getServiceRegistryPath(),'body':{'file':_0x4cc3b5[_0x4def23(0x15e)],'hash':_0x4cc3b5[_0x4def23(0x150)],'kind':_0x4cc3b5[_0x4def23(0x132)],'ok':_0x4cc3b5[_0x4def23(0x137)]['ok'],'service':_0x4cc3b5[_0x4def23(0x14e)]?.[_0x4def23(0x14b)],'version':_0x4cc3b5['normalizedManifest']?.[_0x4def23(0x12b)],'serviceCount':_0x4cc3b5['manifests'][_0x4def23(0x153)],'services':_0x4cc3b5[_0x4def23(0x120)][_0x4def23(0x131)](_0x1e9667=>({'service':_0x1e9667['normalizedManifest']?.['service'],'version':_0x1e9667['normalizedManifest']?.['version'],'commandCount':_0x1e9667[_0x4def23(0x14e)]?.[_0x4def23(0x13e)][_0x4def23(0x153)]??0x0,'errors':_0x1e9667[_0x4def23(0x137)][_0x4def23(0x145)]})),'errors':_0x4cc3b5[_0x4def23(0x137)][_0x4def23(0x145)],'commandCount':_0x4cc3b5[_0x4def23(0x14e)]?.[_0x4def23(0x13e)][_0x4def23(0x153)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x4af084){const _0x1de25a=a62_0x63ec0,_0x4593f0=importServiceManifest(_0x4af084['str'](_0x1de25a(0x157)));if(_0x4593f0['entries'][_0x1de25a(0x153)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x4593f0[_0x1de25a(0x15b)],'imported':_0x4593f0['imported'],'updated':_0x4593f0[_0x1de25a(0x13f)],'serviceCount':_0x4593f0[_0x1de25a(0x13a)],'services':_0x4593f0[_0x1de25a(0x15a)]['map'](summarizeService)},'message':_0x1de25a(0x12a)+_0x4593f0[_0x1de25a(0x138)]+'\x20service(s),\x20updated\x20'+_0x4593f0[_0x1de25a(0x13f)]+_0x1de25a(0x13c)};return{'ok':!![],'data':{'registryPath':_0x4593f0[_0x1de25a(0x15b)],'replaced':_0x4593f0[_0x1de25a(0x133)],'imported':_0x4593f0[_0x1de25a(0x138)],'updated':_0x4593f0[_0x1de25a(0x13f)],'serviceCount':_0x4593f0['serviceCount'],'service':summarizeService(_0x4593f0['entry'])},'message':(_0x4593f0[_0x1de25a(0x133)]?'Updated':_0x1de25a(0x125))+_0x1de25a(0x152)+_0x4593f0['entry']['serviceCode']+'.'};}},{'service':a62_0x63ec0(0x14b),'command':a62_0x63ec0(0x151),'description':'Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':a62_0x63ec0(0x159),'confirmationDescription':'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.','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x774c1e){const _0x1ec636=a62_0x63ec0,_0x41935e=getLocalServiceEntry(_0x774c1e['str']('service'));return{'method':_0x1ec636(0x135),'url':_0x774c1e['str'](_0x1ec636(0x157)),'body':{'service':_0x774c1e[_0x1ec636(0x158)](_0x1ec636(0x14b)),'found':Boolean(_0x41935e),'version':_0x41935e?.[_0x1ec636(0x12b)],'source':_0x41935e?.[_0x1ec636(0x124)]},'description':_0x1ec636(0x12c)};},async 'execute'(_0x52fc9f){const _0x9c1e91=a62_0x63ec0,_0x5afb55=exportServiceManifest(_0x52fc9f[_0x9c1e91(0x158)](_0x9c1e91(0x14b)),_0x52fc9f[_0x9c1e91(0x158)](_0x9c1e91(0x157)));return{'ok':!![],'data':{'registryPath':_0x5afb55[_0x9c1e91(0x15b)],'file':_0x5afb55[_0x9c1e91(0x15e)],'service':summarizeService(_0x5afb55[_0x9c1e91(0x127)])},'message':_0x9c1e91(0x13d)+_0x5afb55[_0x9c1e91(0x127)]['serviceCode']+'.'};}},{'service':'service','command':a62_0x63ec0(0x139),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':a62_0x63ec0(0x13b),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x459747=a62_0x63ec0,_0x31d6ed=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x31d6ed[_0x459747(0x153)],'services':_0x31d6ed[_0x459747(0x131)](summarizeService)}};}},{'service':'service','command':a62_0x63ec0(0x144),'description':'Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','risk':a62_0x63ec0(0x159),'confirmationDescription':'Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x5cf143){const _0x562ad7=a62_0x63ec0,_0x16651c=getLocalServiceEntry(_0x5cf143[_0x562ad7(0x158)](_0x562ad7(0x14b)));return{'method':_0x562ad7(0x135),'url':getServiceRegistryPath(),'body':{'service':_0x5cf143['str'](_0x562ad7(0x14b)),'found':Boolean(_0x16651c),'version':_0x16651c?.['version'],'source':_0x16651c?.[_0x562ad7(0x124)]},'description':_0x562ad7(0x129)};},async 'execute'(_0x382d5b){const _0x1e8c57=a62_0x63ec0,_0x564434=removeServiceManifest(_0x382d5b['str'](_0x1e8c57(0x14b)));return{'ok':!![],'data':{'registryPath':_0x564434['registryPath'],'serviceCount':_0x564434[_0x1e8c57(0x13a)],'service':summarizeService(_0x564434['entry'])},'message':'Removed\x20service\x20'+_0x564434['entry'][_0x1e8c57(0x126)]+'.'};}},{'service':a62_0x63ec0(0x14b),'command':a62_0x63ec0(0x14c),'description':a62_0x63ec0(0x12e),'risk':a62_0x63ec0(0x13b),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x38e4b7){const _0x894a7d=a62_0x63ec0,_0x567881=getLocalServiceEntry(_0x38e4b7[_0x894a7d(0x158)](_0x894a7d(0x14b)));if(!_0x567881)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x38e4b7['str'](_0x894a7d(0x14b))},'message':_0x894a7d(0x162)+_0x38e4b7[_0x894a7d(0x158)](_0x894a7d(0x14b))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x567881),'manifest':_0x567881[_0x894a7d(0x148)],'normalizedManifest':toPublicNormalizedServiceTree(_0x567881['normalizedManifest'])}};}}];function a62_0x3bbc(){const _0x475ea5=['Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Imported\x20','version','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','string','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','116JFHlTh','5fqzMPl','map','kind','replaced','validate','WRITE','reduce','report','imported','list','serviceCount','read','\x20service(s).','Exported\x20service\x20','commands','updated','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','warnings','flags','target','remove','errors','import','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.','manifest','329285ltJgwJ','Local\x20service\x20code,\x20for\x20example\x20crm','service','detail','458706OBeOpJ','normalizedManifest','registryIndex','hash','export','\x20service\x20','length','33519xvwNhT','cliPath','116806lAbOVD','file','str','write','entries','registryPath','2545752PBwyat','risk','filePath','lower\x20kebab-case\x20service\x20code','registryServiceCode','name','Local\x20service\x20not\x20found:\x20','registry','cliName','Service\x20Tree\x20manifest\x20file\x20path','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','manifests','3409713PPpwMo','Service\x20registry\x20validation\x20passed.','894824NttCYf','source','Imported','serviceCode','entry','importedAt'];a62_0x3bbc=function(){return _0x475ea5;};return a62_0x3bbc();}
@@ -1 +1 @@
1
- const a63_0x518345=a63_0x3e24;function a63_0x516e(){const _0x14511c=['Unsupported\x20schemaVersion:\x20','32645619soOKuu','Remove\x20or\x20migrate\x20','normalizedManifest','string','code','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','source','map','Service\x20manifest\x20validation\x20failed:\x0a','digest','reduce','bff\x20target\x20requires\x20functionName.','593262BeJoZo','message','registryIndex','Invalid\x20service\x20manifest\x20JSON:\x20','$.services[','202804HnTXeN','ENOENT','startsWith','target','schemaVersion','invalid','10pymOmL','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','service','description','homeDir','cliPath','utf8','1751624kyDwsR','object','service.json','Local\x20service\x20not\x20found:\x20','Cannot\x20write\x20service\x20registry:\x20','report','commandCount','missing','command','findIndex','6oOBRsi','Unsupported\x20service\x20registry\x20schemaVersion:\x20','sha256','kind','CliError','stringify','30lOQarm','errors','path','8566936tOATnr','services','parse','now','localeCompare','file','manifest','validation','toISOString','.tmp','length','2249660blcPiD','warnings','sort','commands','name','4283540peYMsU','].manifest.','slice','Service\x20manifest\x20file\x20not\x20found:\x20','trim','splice','update','Invalid\x20service\x20registry\x20JSON:\x20','updatedAt','serviceCode','hex','importedAt','isArray','].manifest','manifests'];a63_0x516e=function(){return _0x14511c;};return a63_0x516e();}(function(_0x572392,_0x222149){const _0xcafae2=a63_0x3e24,_0x5953a6=_0x572392();while(!![]){try{const _0x11625e=parseInt(_0xcafae2(0x1c4))/0x1+-parseInt(_0xcafae2(0x1d6))/0x2+-parseInt(_0xcafae2(0x195))/0x3*(parseInt(_0xcafae2(0x1c9))/0x4)+-parseInt(_0xcafae2(0x1a8))/0x5*(parseInt(_0xcafae2(0x18f))/0x6)+-parseInt(_0xcafae2(0x1a3))/0x7+-parseInt(_0xcafae2(0x198))/0x8+parseInt(_0xcafae2(0x1b8))/0x9*(parseInt(_0xcafae2(0x1cf))/0xa);if(_0x11625e===_0x222149)break;else _0x5953a6['push'](_0x5953a6['shift']());}catch(_0x1521ca){_0x5953a6['push'](_0x5953a6['shift']());}}}(a63_0x516e,0x8fbe8));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a63_0x518345(0x1d8);export function getServiceRegistryPath(_0x3b4b30={}){const _0x2f2520=a63_0x518345;return resolve(_0x3b4b30[_0x2f2520(0x1d3)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}function a63_0x3e24(_0x41c0f4,_0x2cce85){_0x41c0f4=_0x41c0f4-0x18e;const _0x516ec4=a63_0x516e();let _0x3e2495=_0x516ec4[_0x41c0f4];return _0x3e2495;}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0xcb76cb={}){const _0x57c2d3=a63_0x518345,_0x2123f0=getServiceRegistryPath(_0xcb76cb);if(!existsSync(_0x2123f0))return emptyServiceRegistry();try{const _0x4a8240=readFileSync(_0x2123f0,'utf8');if(!_0x4a8240['trim']())return emptyServiceRegistry();const _0x3d128c=JSON[_0x57c2d3(0x19a)](_0x4a8240);if(_0x3d128c[_0x57c2d3(0x1cd)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x57c2d3(0x190)+String(_0x3d128c[_0x57c2d3(0x1cd)]),_0x57c2d3(0x1b9)+_0x2123f0+'.');if(!Array['isArray'](_0x3d128c['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3d128c[_0x57c2d3(0x1b0)],'services':_0x3d128c[_0x57c2d3(0x199)]};}catch(_0x2fabda){if(_0x2fabda instanceof Error&&_0x2fabda[_0x57c2d3(0x1a7)]===_0x57c2d3(0x193))throw _0x2fabda;throw CliErrors[_0x57c2d3(0x19f)](_0x57c2d3(0x1af)+_0x2123f0,_0x57c2d3(0x1bd));}}export function writeServiceRegistry(_0xda84f2,_0x452d2e={}){const _0x2b0924=a63_0x518345,_0x25f06f=getServiceRegistryPath(_0x452d2e),_0x646975=dirname(_0x25f06f);!existsSync(_0x646975)&&mkdirSync(_0x646975,{'recursive':!![]});const _0x5602f9=_0x25f06f+_0x2b0924(0x1a1);try{writeFileSync(_0x5602f9,JSON[_0x2b0924(0x194)](_0xda84f2,null,0x2)+'\x0a',{'encoding':_0x2b0924(0x1d5),'mode':0x180}),renameSync(_0x5602f9,_0x25f06f);}catch(_0x5944c9){try{unlinkSync(_0x5602f9);}catch{}if(_0x5944c9?.['code']===_0x2b0924(0x1ca))throw CliErrors[_0x2b0924(0x19f)](_0x2b0924(0x1da)+_0x25f06f);throw _0x5944c9;}return _0x25f06f;}export function loadServiceManifestFromFile(_0x321f0b){const _0x7b5839=a63_0x518345,_0x33f63d=resolve(_0x321f0b);if(!existsSync(_0x33f63d))throw CliErrors[_0x7b5839(0x19f)](_0x7b5839(0x1ab)+_0x321f0b);let _0xc72715;const _0x1cdfc1=readFileSync(_0x33f63d,_0x7b5839(0x1d5));try{_0xc72715=JSON['parse'](_0x1cdfc1);}catch{throw CliErrors['validation'](_0x7b5839(0x1c7)+_0x321f0b,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x6ebff0=sha256(_0x1cdfc1),_0x19c94e=extractLoadedServiceManifests(_0xc72715,_0x6ebff0),_0x436be7=aggregateValidationReports(_0x19c94e),_0x197dd8=_0x19c94e[0x0];return{'filePath':_0x33f63d,'hash':_0x6ebff0,'kind':isServiceRegistryLike(_0xc72715)?'registry':'manifest','manifest':_0x197dd8?.[_0x7b5839(0x19e)]??_0xc72715,'report':_0x436be7,'normalizedManifest':_0x19c94e[_0x7b5839(0x1a2)]===0x1?_0x197dd8?.[_0x7b5839(0x1ba)]:undefined,'manifests':_0x19c94e};}export function importServiceManifest(_0x2aae8e,_0x1bf4e4={}){const _0x5d5441=a63_0x518345,_0x11d0d1=loadServiceManifestFromFile(_0x2aae8e);if(!_0x11d0d1[_0x5d5441(0x1db)]['ok'])throw CliErrors[_0x5d5441(0x19f)](formatValidationFailure(_0x11d0d1[_0x5d5441(0x1db)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x11d0d1[_0x5d5441(0x1b6)][_0x5d5441(0x1a2)]===0x0)throw CliErrors[_0x5d5441(0x19f)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x2fb8f3=readServiceRegistry(_0x1bf4e4),_0x30577d=(_0x1bf4e4[_0x5d5441(0x19b)]??(()=>new Date()))()[_0x5d5441(0x1a0)](),_0x2b7307=[];let _0x26f6af=0x0,_0x4c1aec=0x0;for(const _0x26f725 of _0x11d0d1[_0x5d5441(0x1b6)]){if(!_0x26f725[_0x5d5441(0x1ba)])continue;const _0x3ca470=_0x26f725[_0x5d5441(0x1ba)]['service'][_0x5d5441(0x1bc)],_0x264fbd={'serviceCode':_0x3ca470,'version':_0x26f725[_0x5d5441(0x1ba)]['version'],'importedAt':_0x30577d,'source':{'type':_0x5d5441(0x19d),'path':_0x11d0d1['filePath'],'hash':_0x26f725['sourceHash']},'manifest':_0x26f725['manifest'],'normalizedManifest':_0x26f725[_0x5d5441(0x1ba)]},_0x51bbdf=_0x2fb8f3[_0x5d5441(0x199)][_0x5d5441(0x18e)](_0x2ffc1c=>_0x2ffc1c[_0x5d5441(0x1b1)]===_0x3ca470);_0x51bbdf>=0x0?(_0x2fb8f3[_0x5d5441(0x199)][_0x51bbdf]=_0x264fbd,_0x4c1aec++):(_0x2fb8f3[_0x5d5441(0x199)]['push'](_0x264fbd),_0x26f6af++),_0x2b7307['push'](_0x264fbd);}_0x2fb8f3['services'][_0x5d5441(0x1a5)]((_0x1d3729,_0x5c7aa6)=>_0x1d3729[_0x5d5441(0x1b1)][_0x5d5441(0x19c)](_0x5c7aa6[_0x5d5441(0x1b1)])),_0x2fb8f3[_0x5d5441(0x1b0)]=_0x30577d;const _0x5f59e5=writeServiceRegistry(_0x2fb8f3,_0x1bf4e4);return{'registryPath':_0x5f59e5,'entry':_0x2b7307[0x0],'replaced':_0x2b7307[_0x5d5441(0x1a2)]===0x1?_0x4c1aec===0x1:_0x4c1aec>0x0,'entries':_0x2b7307,'imported':_0x26f6af,'updated':_0x4c1aec,'serviceCount':_0x2fb8f3[_0x5d5441(0x199)][_0x5d5441(0x1a2)]};}export function exportServiceManifest(_0x41dcc0,_0x17ce8b,_0x3f6773={}){const _0x6a98d4=a63_0x518345,_0x4a6163=getServiceRegistryPath(_0x3f6773),_0x1063a3=getLocalServiceEntry(_0x41dcc0,_0x3f6773);if(!_0x1063a3)throw CliErrors[_0x6a98d4(0x19f)](_0x6a98d4(0x1d9)+_0x41dcc0,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x53c3d5=resolve(_0x17ce8b),_0x595a71=dirname(_0x53c3d5);return!existsSync(_0x595a71)&&mkdirSync(_0x595a71,{'recursive':!![]}),writeFileSync(_0x53c3d5,JSON[_0x6a98d4(0x194)](_0x1063a3[_0x6a98d4(0x19e)],null,0x2)+'\x0a',{'encoding':_0x6a98d4(0x1d5),'mode':0x180}),{'registryPath':_0x4a6163,'filePath':_0x53c3d5,'entry':_0x1063a3};}export function removeServiceManifest(_0x3940dc,_0x310cab={}){const _0x1375b1=a63_0x518345,_0x3e0b25=readServiceRegistry(_0x310cab),_0x1b3b3f=_0x3940dc['trim'](),_0xaa26a5=_0x3e0b25[_0x1375b1(0x199)][_0x1375b1(0x18e)](_0x5ca116=>_0x5ca116['serviceCode']===_0x1b3b3f);if(_0xaa26a5<0x0)throw CliErrors[_0x1375b1(0x19f)]('Local\x20service\x20not\x20found:\x20'+_0x1b3b3f,_0x1375b1(0x1d0));const [_0x2592cd]=_0x3e0b25[_0x1375b1(0x199)][_0x1375b1(0x1ad)](_0xaa26a5,0x1),_0x11a186=(_0x310cab['now']??(()=>new Date()))()[_0x1375b1(0x1a0)]();_0x3e0b25[_0x1375b1(0x1b0)]=_0x11a186;const _0x4646ea=writeServiceRegistry(_0x3e0b25,_0x310cab);return{'registryPath':_0x4646ea,'entry':_0x2592cd,'serviceCount':_0x3e0b25[_0x1375b1(0x199)][_0x1375b1(0x1a2)]};}export function listLocalServices(_0x3200b5={}){return readServiceRegistry(_0x3200b5)['services'];}export function getLocalServiceEntry(_0x998df2,_0x414559={}){const _0x5c068d=a63_0x518345;return readServiceRegistry(_0x414559)[_0x5c068d(0x199)]['find'](_0x2ce316=>_0x2ce316['serviceCode']===_0x998df2[_0x5c068d(0x1ac)]());}export function listLocalServiceTrees(_0x11e7cd={}){const _0x6d54cc=a63_0x518345;return readServiceRegistry(_0x11e7cd)[_0x6d54cc(0x199)][_0x6d54cc(0x1bf)](_0x5d5626=>_0x5d5626['normalizedManifest']);}export function inspectServiceRegistry(_0x493f8c={}){const _0x49a525=a63_0x518345,_0xa0ba85=getServiceRegistryPath(_0x493f8c);if(!existsSync(_0xa0ba85))return emptyServiceRegistryInspection(_0xa0ba85,_0x49a525(0x1dd),![]);try{const _0xa13c30=readFileSync(_0xa0ba85,_0x49a525(0x1d5));if(!_0xa13c30[_0x49a525(0x1ac)]())return emptyServiceRegistryInspection(_0xa0ba85,'empty',!![]);const _0x1787b9=JSON[_0x49a525(0x19a)](_0xa13c30);if(_0x1787b9[_0x49a525(0x1cd)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0xa0ba85,'invalid',!![]),'schemaVersion':_0x1787b9[_0x49a525(0x1cd)],'message':_0x49a525(0x1b7)+String(_0x1787b9[_0x49a525(0x1cd)])};if(!Array[_0x49a525(0x1b4)](_0x1787b9[_0x49a525(0x199)]))return{...emptyServiceRegistryInspection(_0xa0ba85,_0x49a525(0x1ce),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1787b9[_0x49a525(0x1b0)],'message':'services\x20must\x20be\x20an\x20array'};const _0x5c8286=_0x1787b9[_0x49a525(0x199)][_0x49a525(0x1bf)](summarizeLocalServiceEntry);return{'registryPath':_0xa0ba85,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1787b9[_0x49a525(0x1b0)],'serviceCount':_0x5c8286['length'],'commandCount':_0x5c8286[_0x49a525(0x1c2)]((_0x2a2056,_0xf94a9e)=>_0x2a2056+_0xf94a9e[_0x49a525(0x1dc)],0x0),'services':_0x5c8286};}catch(_0x34f012){return{...emptyServiceRegistryInspection(_0xa0ba85,_0x49a525(0x1ce),!![]),'message':_0x34f012 instanceof Error?_0x34f012[_0x49a525(0x1c5)]:String(_0x34f012)};}}export function formatValidationFailure(_0x1f7aa7){const _0xa45af=a63_0x518345,_0x5251d6=_0x1f7aa7['errors'][_0xa45af(0x1bf)](_0x593a8d=>_0x593a8d[_0xa45af(0x197)]+':\x20'+_0x593a8d[_0xa45af(0x1c5)]);return _0xa45af(0x1c0)+_0x5251d6['join']('\x0a');}function extractLoadedServiceManifests(_0x580a92,_0xb85802){const _0x263847=a63_0x518345;if(!isServiceRegistryLike(_0x580a92)){const _0x4d8abf=_0x580a92,{manifest:_0x11fb41,errors:_0x55f48e}=adaptServiceTreeManifestForLegacyFramework(_0x4d8abf),_0xc7276e=validateServiceTreeManifest(_0x11fb41),_0x4454ef=mergeValidationErrors(_0xc7276e,_0x55f48e);return[{'manifest':_0x4d8abf,'report':_0x4454ef,'normalizedManifest':_0x4454ef['ok']?normalizeServiceTreeManifest(_0x11fb41):undefined,'sourceHash':_0xb85802}];}return _0x580a92[_0x263847(0x199)][_0x263847(0x1bf)]((_0x466896,_0x365e05)=>{const _0x5394a1=_0x263847,_0x21c10d=isObjectRecord(_0x466896)?_0x466896['manifest']:undefined,{manifest:_0x74cfad,errors:_0x3265b9}=adaptServiceTreeManifestForLegacyFramework(_0x21c10d),_0x5017ec=validateServiceTreeManifest(_0x74cfad),_0x3f8e34=mergeValidationErrors(_0x5017ec,_0x3265b9),_0x4846e6=isObjectRecord(_0x466896)&&typeof _0x466896[_0x5394a1(0x1b1)]===_0x5394a1(0x1bb)?_0x466896[_0x5394a1(0x1b1)]:undefined;return{'manifest':_0x21c10d,'report':_0x3f8e34,'normalizedManifest':_0x3f8e34['ok']?normalizeServiceTreeManifest(_0x74cfad):undefined,'sourceHash':sha256(JSON['stringify'](_0x21c10d,null,0x2)+'\x0a'),'registryIndex':_0x365e05,'registryServiceCode':_0x4846e6};});}function mergeValidationErrors(_0x20ce79,_0x2da0c7){const _0x4166bb=a63_0x518345,_0x4c7c55=_0x20ce79[_0x4166bb(0x196)]['map'](_0x2ba9b1=>_0x2ba9b1['message']==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x2ba9b1,'message':_0x4166bb(0x1c3)}:_0x2ba9b1),_0x20d1ca=[..._0x2da0c7,..._0x4c7c55];return{'ok':_0x20d1ca[_0x4166bb(0x1a2)]===0x0,'errors':_0x20d1ca,'warnings':_0x20ce79[_0x4166bb(0x1a4)]};}function aggregateValidationReports(_0x5e7aae){const _0x591cb2=a63_0x518345,_0x3afd7a=_0x5e7aae['flatMap'](_0x273e84=>_0x273e84['registryIndex']===undefined?_0x273e84[_0x591cb2(0x1db)][_0x591cb2(0x196)]:_0x273e84[_0x591cb2(0x1db)][_0x591cb2(0x196)][_0x591cb2(0x1bf)](_0x57d567=>({..._0x57d567,'path':prefixRegistryIssuePath(_0x273e84[_0x591cb2(0x1c6)],_0x57d567[_0x591cb2(0x197)])}))),_0x2d2459=_0x5e7aae['flatMap'](_0x5412ff=>_0x5412ff[_0x591cb2(0x1c6)]===undefined?_0x5412ff['report'][_0x591cb2(0x1a4)]:_0x5412ff[_0x591cb2(0x1db)][_0x591cb2(0x1a4)][_0x591cb2(0x1bf)](_0x56a395=>({..._0x56a395,'path':prefixRegistryIssuePath(_0x5412ff['registryIndex'],_0x56a395['path'])})));return{'ok':_0x3afd7a[_0x591cb2(0x1a2)]===0x0,'errors':_0x3afd7a,'warnings':_0x2d2459};}function prefixRegistryIssuePath(_0x5b4844,_0x3775cd){const _0x434dff=a63_0x518345;if(_0x3775cd==='$')return _0x434dff(0x1c8)+_0x5b4844+_0x434dff(0x1b5);if(_0x3775cd['startsWith']('$.'))return _0x434dff(0x1c8)+_0x5b4844+_0x434dff(0x1b5)+_0x3775cd['slice'](0x1);if(_0x3775cd[_0x434dff(0x1cb)]('$['))return _0x434dff(0x1c8)+_0x5b4844+_0x434dff(0x1b5)+_0x3775cd[_0x434dff(0x1aa)](0x1);return _0x434dff(0x1c8)+_0x5b4844+_0x434dff(0x1a9)+_0x3775cd;}function isServiceRegistryLike(_0x5c978f){const _0x4438d6=a63_0x518345;return isObjectRecord(_0x5c978f)&&_0x5c978f['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x4438d6(0x1b4)](_0x5c978f[_0x4438d6(0x199)]);}function isObjectRecord(_0x516d0e){const _0x298d37=a63_0x518345;return Boolean(_0x516d0e)&&typeof _0x516d0e===_0x298d37(0x1d7)&&!Array[_0x298d37(0x1b4)](_0x516d0e);}function emptyServiceRegistryInspection(_0x5cb949,_0x120a22,_0x153ab5){return{'registryPath':_0x5cb949,'exists':_0x153ab5,'status':_0x120a22,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x54099a){const _0x205242=a63_0x518345,_0x57068d=_0x54099a[_0x205242(0x1ba)],_0x27fecb=_0x57068d[_0x205242(0x1a6)]['map'](_0x372732=>({'path':_0x372732[_0x205242(0x1d4)],'description':_0x372732[_0x205242(0x1d2)],'risk':_0x372732['risk'],'targetKind':_0x372732[_0x205242(0x1cc)][_0x205242(0x192)],'targetCommand':_0x372732['target'][_0x205242(0x1de)]}));return{'serviceCode':_0x54099a[_0x205242(0x1b1)],'name':_0x57068d[_0x205242(0x1d1)]['name'],'description':_0x57068d[_0x205242(0x1d1)][_0x205242(0x1d2)],'version':_0x54099a['version'],'importedAt':_0x54099a[_0x205242(0x1b3)],'source':_0x54099a[_0x205242(0x1be)],'commandCount':_0x27fecb[_0x205242(0x1a2)],'commands':_0x27fecb};}function sha256(_0x5f3d37){const _0x3d4547=a63_0x518345;return createHash(_0x3d4547(0x191))[_0x3d4547(0x1ae)](_0x5f3d37)[_0x3d4547(0x1c1)](_0x3d4547(0x1b2));}
1
+ const a63_0x4b0ef9=a63_0x28dd;(function(_0x1d5bd1,_0x136924){const _0x3de752=a63_0x28dd,_0x47c959=_0x1d5bd1();while(!![]){try{const _0x6032a8=-parseInt(_0x3de752(0x1ff))/0x1+-parseInt(_0x3de752(0x1f7))/0x2+-parseInt(_0x3de752(0x1e8))/0x3*(-parseInt(_0x3de752(0x1de))/0x4)+parseInt(_0x3de752(0x208))/0x5+parseInt(_0x3de752(0x1df))/0x6*(-parseInt(_0x3de752(0x213))/0x7)+-parseInt(_0x3de752(0x1e5))/0x8*(-parseInt(_0x3de752(0x21c))/0x9)+-parseInt(_0x3de752(0x224))/0xa;if(_0x6032a8===_0x136924)break;else _0x47c959['push'](_0x47c959['shift']());}catch(_0x4b501f){_0x47c959['push'](_0x47c959['shift']());}}}(a63_0x3f07,0x51dfb));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';function a63_0x28dd(_0x1675e1,_0x2a039e){_0x1675e1=_0x1675e1-0x1d5;const _0x3f0790=a63_0x3f07();let _0x28dd7e=_0x3f0790[_0x1675e1];return _0x28dd7e;}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';function a63_0x3f07(){const _0x58ddc7=['normalizedManifest','commands','command','isArray','report','104293WbTlYH','invalid','reduce','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','.tmp','service.json','join','cliPath','utf8','2464940PnszYY','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','].manifest','manifests','Local\x20service\x20not\x20found:\x20','sha256','Service\x20manifest\x20validation\x20failed:\x0a','length','parse','Invalid\x20service\x20manifest\x20JSON:\x20','warnings','77cVAbYv','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','services\x20must\x20be\x20an\x20array','now','version','stringify','object','push','risk','6255pECVgj','Invalid\x20service\x20registry\x20JSON:\x20','slice','path','Unsupported\x20service\x20registry\x20schemaVersion:\x20','findIndex','flatMap','startsWith','5494140tsgxHd','validation','message','name','description','Unsupported\x20schemaVersion:\x20','find','registry','errors','splice','Cannot\x20write\x20service\x20registry:\x20','serviceCode','updatedAt','sort','target','4FSibxA','241446ZYmelR','service','code','registryIndex','toISOString','$.services[','5072cTqFYI','commandCount','].manifest.','1762728kDzKNo','sourceHash','schemaVersion','importedAt','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','manifest','empty','map','kind','file','missing','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','services','CliError','localeCompare','178962cxjHdJ','Service\x20manifest\x20file\x20not\x20found:\x20','trim'];a63_0x3f07=function(){return _0x58ddc7;};return a63_0x3f07();}export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a63_0x4b0ef9(0x204);export function getServiceRegistryPath(_0x1e8a1c={}){return resolve(_0x1e8a1c['homeDir']??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x117ac7={}){const _0x2d34e6=a63_0x4b0ef9,_0x1e50c7=getServiceRegistryPath(_0x117ac7);if(!existsSync(_0x1e50c7))return emptyServiceRegistry();try{const _0x2d1f06=readFileSync(_0x1e50c7,_0x2d34e6(0x207));if(!_0x2d1f06['trim']())return emptyServiceRegistry();const _0x42acaf=JSON[_0x2d34e6(0x210)](_0x2d1f06);if(_0x42acaf['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x2d34e6(0x225)](_0x2d34e6(0x220)+String(_0x42acaf[_0x2d34e6(0x1ea)]),'Remove\x20or\x20migrate\x20'+_0x1e50c7+'.');if(!Array[_0x2d34e6(0x1fd)](_0x42acaf[_0x2d34e6(0x1f4)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x42acaf[_0x2d34e6(0x1db)],'services':_0x42acaf[_0x2d34e6(0x1f4)]};}catch(_0x311b27){if(_0x311b27 instanceof Error&&_0x311b27['name']===_0x2d34e6(0x1f5))throw _0x311b27;throw CliErrors['validation'](_0x2d34e6(0x21d)+_0x1e50c7,_0x2d34e6(0x209));}}export function writeServiceRegistry(_0x474be4,_0x41e01c={}){const _0x22ae92=a63_0x4b0ef9,_0x4aeb84=getServiceRegistryPath(_0x41e01c),_0x190502=dirname(_0x4aeb84);!existsSync(_0x190502)&&mkdirSync(_0x190502,{'recursive':!![]});const _0x462be5=_0x4aeb84+_0x22ae92(0x203);try{writeFileSync(_0x462be5,JSON[_0x22ae92(0x218)](_0x474be4,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x462be5,_0x4aeb84);}catch(_0x3d0612){try{unlinkSync(_0x462be5);}catch{}if(_0x3d0612?.[_0x22ae92(0x1e1)]==='ENOENT')throw CliErrors['validation'](_0x22ae92(0x1d9)+_0x4aeb84);throw _0x3d0612;}return _0x4aeb84;}export function loadServiceManifestFromFile(_0x257012){const _0xca1aac=a63_0x4b0ef9,_0x5023ec=resolve(_0x257012);if(!existsSync(_0x5023ec))throw CliErrors['validation'](_0xca1aac(0x1f8)+_0x257012);let _0x367cfd;const _0x6d498a=readFileSync(_0x5023ec,'utf8');try{_0x367cfd=JSON[_0xca1aac(0x210)](_0x6d498a);}catch{throw CliErrors[_0xca1aac(0x225)](_0xca1aac(0x211)+_0x257012,_0xca1aac(0x1f3));}const _0xb195=sha256(_0x6d498a),_0x322751=extractLoadedServiceManifests(_0x367cfd,_0xb195),_0x830c5d=aggregateValidationReports(_0x322751),_0x3de326=_0x322751[0x0];return{'filePath':_0x5023ec,'hash':_0xb195,'kind':isServiceRegistryLike(_0x367cfd)?_0xca1aac(0x1d6):_0xca1aac(0x1ed),'manifest':_0x3de326?.[_0xca1aac(0x1ed)]??_0x367cfd,'report':_0x830c5d,'normalizedManifest':_0x322751[_0xca1aac(0x20f)]===0x1?_0x3de326?.[_0xca1aac(0x1fa)]:undefined,'manifests':_0x322751};}export function importServiceManifest(_0x491db4,_0x205254={}){const _0x5581f4=a63_0x4b0ef9,_0x1ed751=loadServiceManifestFromFile(_0x491db4);if(!_0x1ed751[_0x5581f4(0x1fe)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x1ed751[_0x5581f4(0x1fe)]),_0x5581f4(0x202));if(_0x1ed751[_0x5581f4(0x20b)][_0x5581f4(0x20f)]===0x0)throw CliErrors['validation']('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x5581f4(0x1ec));const _0x2611ba=readServiceRegistry(_0x205254),_0x17fa62=(_0x205254[_0x5581f4(0x216)]??(()=>new Date()))()[_0x5581f4(0x1e3)](),_0x4166b2=[];let _0x370f8f=0x0,_0x25d760=0x0;for(const _0x5c2618 of _0x1ed751[_0x5581f4(0x20b)]){if(!_0x5c2618[_0x5581f4(0x1fa)])continue;const _0x1b023b=_0x5c2618[_0x5581f4(0x1fa)][_0x5581f4(0x1e0)][_0x5581f4(0x1e1)],_0x2c9309={'serviceCode':_0x1b023b,'version':_0x5c2618[_0x5581f4(0x1fa)]['version'],'importedAt':_0x17fa62,'source':{'type':_0x5581f4(0x1f1),'path':_0x1ed751['filePath'],'hash':_0x5c2618[_0x5581f4(0x1e9)]},'manifest':_0x5c2618['manifest'],'normalizedManifest':_0x5c2618[_0x5581f4(0x1fa)]},_0x38f48d=_0x2611ba[_0x5581f4(0x1f4)][_0x5581f4(0x221)](_0x320877=>_0x320877[_0x5581f4(0x1da)]===_0x1b023b);_0x38f48d>=0x0?(_0x2611ba[_0x5581f4(0x1f4)][_0x38f48d]=_0x2c9309,_0x25d760++):(_0x2611ba[_0x5581f4(0x1f4)][_0x5581f4(0x21a)](_0x2c9309),_0x370f8f++),_0x4166b2['push'](_0x2c9309);}_0x2611ba[_0x5581f4(0x1f4)][_0x5581f4(0x1dc)]((_0x27cd62,_0x38705d)=>_0x27cd62['serviceCode'][_0x5581f4(0x1f6)](_0x38705d[_0x5581f4(0x1da)])),_0x2611ba[_0x5581f4(0x1db)]=_0x17fa62;const _0x1ea517=writeServiceRegistry(_0x2611ba,_0x205254);return{'registryPath':_0x1ea517,'entry':_0x4166b2[0x0],'replaced':_0x4166b2[_0x5581f4(0x20f)]===0x1?_0x25d760===0x1:_0x25d760>0x0,'entries':_0x4166b2,'imported':_0x370f8f,'updated':_0x25d760,'serviceCount':_0x2611ba['services'][_0x5581f4(0x20f)]};}export function exportServiceManifest(_0x5db004,_0xf79577,_0x467e07={}){const _0x2dab8a=a63_0x4b0ef9,_0x5de3d3=getServiceRegistryPath(_0x467e07),_0x543ff5=getLocalServiceEntry(_0x5db004,_0x467e07);if(!_0x543ff5)throw CliErrors[_0x2dab8a(0x225)](_0x2dab8a(0x20c)+_0x5db004,_0x2dab8a(0x214));const _0x53dd1c=resolve(_0xf79577),_0x385a6d=dirname(_0x53dd1c);return!existsSync(_0x385a6d)&&mkdirSync(_0x385a6d,{'recursive':!![]}),writeFileSync(_0x53dd1c,JSON['stringify'](_0x543ff5[_0x2dab8a(0x1ed)],null,0x2)+'\x0a',{'encoding':_0x2dab8a(0x207),'mode':0x180}),{'registryPath':_0x5de3d3,'filePath':_0x53dd1c,'entry':_0x543ff5};}export function removeServiceManifest(_0x38b3de,_0xb02f2={}){const _0x2f7194=a63_0x4b0ef9,_0x1318ce=readServiceRegistry(_0xb02f2),_0x3fa0f5=_0x38b3de[_0x2f7194(0x1f9)](),_0x3b69f9=_0x1318ce['services'][_0x2f7194(0x221)](_0x4a49f2=>_0x4a49f2[_0x2f7194(0x1da)]===_0x3fa0f5);if(_0x3b69f9<0x0)throw CliErrors[_0x2f7194(0x225)](_0x2f7194(0x20c)+_0x3fa0f5,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x229246]=_0x1318ce[_0x2f7194(0x1f4)][_0x2f7194(0x1d8)](_0x3b69f9,0x1),_0x5d4208=(_0xb02f2[_0x2f7194(0x216)]??(()=>new Date()))()[_0x2f7194(0x1e3)]();_0x1318ce['updatedAt']=_0x5d4208;const _0x3f365d=writeServiceRegistry(_0x1318ce,_0xb02f2);return{'registryPath':_0x3f365d,'entry':_0x229246,'serviceCount':_0x1318ce[_0x2f7194(0x1f4)][_0x2f7194(0x20f)]};}export function listLocalServices(_0x3f8e47={}){const _0x5c1456=a63_0x4b0ef9;return readServiceRegistry(_0x3f8e47)[_0x5c1456(0x1f4)];}export function getLocalServiceEntry(_0x5bfe1e,_0x5bc4d7={}){const _0x115061=a63_0x4b0ef9;return readServiceRegistry(_0x5bc4d7)['services'][_0x115061(0x1d5)](_0x4f75c1=>_0x4f75c1[_0x115061(0x1da)]===_0x5bfe1e[_0x115061(0x1f9)]());}export function listLocalServiceTrees(_0x52796d={}){const _0x3a0483=a63_0x4b0ef9;return readServiceRegistry(_0x52796d)[_0x3a0483(0x1f4)][_0x3a0483(0x1ef)](_0x35ba06=>_0x35ba06['normalizedManifest']);}export function inspectServiceRegistry(_0x5f0d8a={}){const _0xd9dade=a63_0x4b0ef9,_0x21eff9=getServiceRegistryPath(_0x5f0d8a);if(!existsSync(_0x21eff9))return emptyServiceRegistryInspection(_0x21eff9,_0xd9dade(0x1f2),![]);try{const _0x206f59=readFileSync(_0x21eff9,_0xd9dade(0x207));if(!_0x206f59[_0xd9dade(0x1f9)]())return emptyServiceRegistryInspection(_0x21eff9,_0xd9dade(0x1ee),!![]);const _0x5b9f7f=JSON[_0xd9dade(0x210)](_0x206f59);if(_0x5b9f7f[_0xd9dade(0x1ea)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x21eff9,_0xd9dade(0x200),!![]),'schemaVersion':_0x5b9f7f[_0xd9dade(0x1ea)],'message':_0xd9dade(0x229)+String(_0x5b9f7f[_0xd9dade(0x1ea)])};if(!Array['isArray'](_0x5b9f7f[_0xd9dade(0x1f4)]))return{...emptyServiceRegistryInspection(_0x21eff9,_0xd9dade(0x200),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5b9f7f[_0xd9dade(0x1db)],'message':_0xd9dade(0x215)};const _0x4dd4ae=_0x5b9f7f['services'][_0xd9dade(0x1ef)](summarizeLocalServiceEntry);return{'registryPath':_0x21eff9,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5b9f7f[_0xd9dade(0x1db)],'serviceCount':_0x4dd4ae[_0xd9dade(0x20f)],'commandCount':_0x4dd4ae[_0xd9dade(0x201)]((_0x3494b0,_0x551324)=>_0x3494b0+_0x551324[_0xd9dade(0x1e6)],0x0),'services':_0x4dd4ae};}catch(_0xa2b056){return{...emptyServiceRegistryInspection(_0x21eff9,_0xd9dade(0x200),!![]),'message':_0xa2b056 instanceof Error?_0xa2b056[_0xd9dade(0x226)]:String(_0xa2b056)};}}export function formatValidationFailure(_0x38c341){const _0x1eb1fa=a63_0x4b0ef9,_0x55974f=_0x38c341[_0x1eb1fa(0x1d7)][_0x1eb1fa(0x1ef)](_0x29a3e6=>_0x29a3e6[_0x1eb1fa(0x21f)]+':\x20'+_0x29a3e6[_0x1eb1fa(0x226)]);return _0x1eb1fa(0x20e)+_0x55974f[_0x1eb1fa(0x205)]('\x0a');}function extractLoadedServiceManifests(_0x4c2b0e,_0xac0df6){const _0x303b0a=a63_0x4b0ef9;if(!isServiceRegistryLike(_0x4c2b0e)){const _0x595dfd=_0x4c2b0e,{manifest:_0x11a4c5,errors:_0x18fd76}=adaptServiceTreeManifestForLegacyFramework(_0x595dfd),_0xaedc71=validateServiceTreeManifest(_0x11a4c5),_0x3d1e37=mergeValidationErrors(_0xaedc71,_0x18fd76);return[{'manifest':_0x595dfd,'report':_0x3d1e37,'normalizedManifest':_0x3d1e37['ok']?normalizeServiceTreeManifest(_0x11a4c5):undefined,'sourceHash':_0xac0df6}];}return _0x4c2b0e[_0x303b0a(0x1f4)][_0x303b0a(0x1ef)]((_0x43f50e,_0x1ba94b)=>{const _0x3b496e=_0x303b0a,_0x4a0d72=isObjectRecord(_0x43f50e)?_0x43f50e[_0x3b496e(0x1ed)]:undefined,{manifest:_0x505d9d,errors:_0x5e40be}=adaptServiceTreeManifestForLegacyFramework(_0x4a0d72),_0x32cf7f=validateServiceTreeManifest(_0x505d9d),_0x4e8d9a=mergeValidationErrors(_0x32cf7f,_0x5e40be),_0x550ff3=isObjectRecord(_0x43f50e)&&typeof _0x43f50e[_0x3b496e(0x1da)]==='string'?_0x43f50e[_0x3b496e(0x1da)]:undefined;return{'manifest':_0x4a0d72,'report':_0x4e8d9a,'normalizedManifest':_0x4e8d9a['ok']?normalizeServiceTreeManifest(_0x505d9d):undefined,'sourceHash':sha256(JSON[_0x3b496e(0x218)](_0x4a0d72,null,0x2)+'\x0a'),'registryIndex':_0x1ba94b,'registryServiceCode':_0x550ff3};});}function mergeValidationErrors(_0x10845e,_0x44be1b){const _0x140807=a63_0x4b0ef9,_0x3da25d=_0x10845e['errors'][_0x140807(0x1ef)](_0x5d0c45=>_0x5d0c45[_0x140807(0x226)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x5d0c45,'message':'bff\x20target\x20requires\x20functionName.'}:_0x5d0c45),_0x473b74=[..._0x44be1b,..._0x3da25d];return{'ok':_0x473b74[_0x140807(0x20f)]===0x0,'errors':_0x473b74,'warnings':_0x10845e[_0x140807(0x212)]};}function aggregateValidationReports(_0xfa66a3){const _0x41152f=a63_0x4b0ef9,_0x244f4e=_0xfa66a3[_0x41152f(0x222)](_0xbb4500=>_0xbb4500['registryIndex']===undefined?_0xbb4500[_0x41152f(0x1fe)][_0x41152f(0x1d7)]:_0xbb4500[_0x41152f(0x1fe)][_0x41152f(0x1d7)]['map'](_0x56d0d0=>({..._0x56d0d0,'path':prefixRegistryIssuePath(_0xbb4500[_0x41152f(0x1e2)],_0x56d0d0[_0x41152f(0x21f)])}))),_0x3860cd=_0xfa66a3[_0x41152f(0x222)](_0x855c25=>_0x855c25[_0x41152f(0x1e2)]===undefined?_0x855c25[_0x41152f(0x1fe)]['warnings']:_0x855c25[_0x41152f(0x1fe)][_0x41152f(0x212)]['map'](_0x571661=>({..._0x571661,'path':prefixRegistryIssuePath(_0x855c25[_0x41152f(0x1e2)],_0x571661[_0x41152f(0x21f)])})));return{'ok':_0x244f4e[_0x41152f(0x20f)]===0x0,'errors':_0x244f4e,'warnings':_0x3860cd};}function prefixRegistryIssuePath(_0x977f09,_0x1ab41a){const _0x181286=a63_0x4b0ef9;if(_0x1ab41a==='$')return'$.services['+_0x977f09+_0x181286(0x20a);if(_0x1ab41a[_0x181286(0x223)]('$.'))return _0x181286(0x1e4)+_0x977f09+'].manifest'+_0x1ab41a[_0x181286(0x21e)](0x1);if(_0x1ab41a[_0x181286(0x223)]('$['))return _0x181286(0x1e4)+_0x977f09+_0x181286(0x20a)+_0x1ab41a[_0x181286(0x21e)](0x1);return _0x181286(0x1e4)+_0x977f09+_0x181286(0x1e7)+_0x1ab41a;}function isServiceRegistryLike(_0x406659){const _0x5e75e5=a63_0x4b0ef9;return isObjectRecord(_0x406659)&&_0x406659[_0x5e75e5(0x1ea)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x5e75e5(0x1fd)](_0x406659[_0x5e75e5(0x1f4)]);}function isObjectRecord(_0x22af71){const _0x4ee277=a63_0x4b0ef9;return Boolean(_0x22af71)&&typeof _0x22af71===_0x4ee277(0x219)&&!Array['isArray'](_0x22af71);}function emptyServiceRegistryInspection(_0x6f6971,_0xb3387c,_0x2ff586){return{'registryPath':_0x6f6971,'exists':_0x2ff586,'status':_0xb3387c,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0xabeb4b){const _0xb6f245=a63_0x4b0ef9,_0x5d5637=_0xabeb4b['normalizedManifest'],_0x7d52a4=_0x5d5637[_0xb6f245(0x1fb)][_0xb6f245(0x1ef)](_0x69ae64=>({'path':_0x69ae64[_0xb6f245(0x206)],'description':_0x69ae64['description'],'risk':_0x69ae64[_0xb6f245(0x21b)],'targetKind':_0x69ae64['target'][_0xb6f245(0x1f0)],'targetCommand':_0x69ae64[_0xb6f245(0x1dd)][_0xb6f245(0x1fc)]}));return{'serviceCode':_0xabeb4b[_0xb6f245(0x1da)],'name':_0x5d5637[_0xb6f245(0x1e0)][_0xb6f245(0x227)],'description':_0x5d5637[_0xb6f245(0x1e0)][_0xb6f245(0x228)],'version':_0xabeb4b[_0xb6f245(0x217)],'importedAt':_0xabeb4b[_0xb6f245(0x1eb)],'source':_0xabeb4b['source'],'commandCount':_0x7d52a4[_0xb6f245(0x20f)],'commands':_0x7d52a4};}function sha256(_0x3d2b48){const _0x36831f=a63_0x4b0ef9;return createHash(_0x36831f(0x20d))['update'](_0x3d2b48)['digest']('hex');}
@@ -1 +1 @@
1
- const a64_0x390bba=a64_0x4ccd;(function(_0x22c75d,_0x4c1935){const _0x4a4003=a64_0x4ccd,_0x11da79=_0x22c75d();while(!![]){try{const _0x185ec8=-parseInt(_0x4a4003(0x19b))/0x1*(parseInt(_0x4a4003(0x192))/0x2)+parseInt(_0x4a4003(0x183))/0x3+-parseInt(_0x4a4003(0x186))/0x4+-parseInt(_0x4a4003(0x19a))/0x5*(parseInt(_0x4a4003(0x181))/0x6)+parseInt(_0x4a4003(0x195))/0x7+-parseInt(_0x4a4003(0x193))/0x8+-parseInt(_0x4a4003(0x18e))/0x9*(-parseInt(_0x4a4003(0x18f))/0xa);if(_0x185ec8===_0x4c1935)break;else _0x11da79['push'](_0x11da79['shift']());}catch(_0x1eec7a){_0x11da79['push'](_0x11da79['shift']());}}}(a64_0x23dd,0xc74ca));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';function a64_0x23dd(){const _0x3737e9=['2612568qsPtPM','rendered','7723877RXDJBj','path','validation','read','type','2671880XHyhkH','2779yJTdVp','create','str','skill','force','Created\x20local\x20Skill\x20draft\x20','files','skillDir','map','6kmQdGy','name','3672069dEDfDL','trim','WRITE','2768636ePYzMN','skillName','isSymbolicLink','Refusing\x20to\x20overwrite\x20symlink:\x20','content','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','35613NSpSkk','2810yYipkY','utf8','target','770CFTPwo'];a64_0x23dd=function(){return _0x3737e9;};return a64_0x23dd();}import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';function a64_0x4ccd(_0x2b4dde,_0xf91a2e){_0x2b4dde=_0x2b4dde-0x180;const _0x23ddd9=a64_0x23dd();let _0x4ccd3b=_0x23ddd9[_0x2b4dde];return _0x4ccd3b;}export const createCommand={'service':a64_0x390bba(0x19e),'command':a64_0x390bba(0x19c),'description':'Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','risk':a64_0x390bba(0x198),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x393601){const _0x5a1963=a64_0x390bba,_0x2e052d=buildSkillCreatePlan(_0x393601[_0x5a1963(0x19d)](_0x5a1963(0x182)),_0x393601[_0x5a1963(0x19d)](_0x5a1963(0x199)),_0x393601[_0x5a1963(0x19d)](_0x5a1963(0x191)));return{'method':_0x5a1963(0x185),'url':_0x2e052d[_0x5a1963(0x1a2)],'body':{'skillName':_0x2e052d[_0x5a1963(0x194)][_0x5a1963(0x187)],'type':_0x2e052d[_0x5a1963(0x194)][_0x5a1963(0x199)],'selfContained':!![],'files':_0x2e052d[_0x5a1963(0x194)][_0x5a1963(0x1a1)][_0x5a1963(0x180)](_0x1aa027=>_0x1aa027[_0x5a1963(0x196)])},'description':_0x5a1963(0x18d)};},async 'execute'(_0x44732d){const _0x3aa1e7=a64_0x390bba,_0x283716=buildSkillCreatePlan(_0x44732d[_0x3aa1e7(0x19d)](_0x3aa1e7(0x182)),_0x44732d[_0x3aa1e7(0x19d)](_0x3aa1e7(0x199)),_0x44732d[_0x3aa1e7(0x19d)]('target'));return writeSkillDraft(_0x283716,_0x44732d['bool'](_0x3aa1e7(0x19f))),{'ok':!![],'data':{'skillName':_0x283716['rendered'][_0x3aa1e7(0x187)],'type':_0x283716['rendered']['type'],'dir':_0x283716['skillDir'],'files':_0x283716['rendered']['files']['map'](_0x23be6=>_0x23be6['path'])},'message':_0x3aa1e7(0x1a0)+_0x283716[_0x3aa1e7(0x194)]['skillName']};}};function buildSkillCreatePlan(_0x518913,_0x543f5f,_0x369246){const _0x3fa324=a64_0x390bba,_0x298122=_0x543f5f[_0x3fa324(0x184)](),_0x32a039=renderSkillTemplate({'skillName':_0x518913,'type':_0x298122});!_0x298122&&writeCliSideChannelLine('Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.');const _0x22f082=resolve(normalizeSkillTarget(_0x369246));return{'rendered':_0x32a039,'targetRoot':_0x22f082,'skillDir':resolve(_0x22f082,_0x32a039[_0x3fa324(0x187)])};}function normalizeSkillTarget(_0x4bc47d){const _0x51be3d=a64_0x390bba;return(_0x4bc47d||DEFAULT_SKILL_TARGET)[_0x51be3d(0x184)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x5e9402,_0x277e63){const _0xdbf511=a64_0x390bba;if(existsSync(_0x5e9402['skillDir'])){const _0x5dca5b=lstatSync(_0x5e9402[_0xdbf511(0x1a2)]);if(!_0x5dca5b['isDirectory']()||_0x5dca5b[_0xdbf511(0x188)]())throw CliErrors[_0xdbf511(0x197)](_0xdbf511(0x18c)+_0x5e9402[_0xdbf511(0x1a2)]);if(!_0x277e63)throw CliErrors[_0xdbf511(0x197)]('Skill\x20directory\x20already\x20exists:\x20'+_0x5e9402[_0xdbf511(0x1a2)],_0xdbf511(0x18b));}for(const _0x1c291d of _0x5e9402['rendered'][_0xdbf511(0x1a1)]){const _0x416c5f=resolve(_0x5e9402[_0xdbf511(0x1a2)],_0x1c291d[_0xdbf511(0x196)]),_0x29325a=dirname(_0x416c5f);mkdirSync(_0x29325a,{'recursive':!![]});if(existsSync(_0x416c5f)&&lstatSync(_0x416c5f)[_0xdbf511(0x188)]())throw CliErrors['validation'](_0xdbf511(0x189)+_0x416c5f);writeFileSync(_0x416c5f,_0x1c291d[_0xdbf511(0x18a)],_0xdbf511(0x190));}}
1
+ const a64_0x15136c=a64_0x33d3;(function(_0x2dc266,_0x282844){const _0x3b6796=a64_0x33d3,_0x2840eb=_0x2dc266();while(!![]){try{const _0x956509=-parseInt(_0x3b6796(0xf8))/0x1*(-parseInt(_0x3b6796(0x101))/0x2)+parseInt(_0x3b6796(0x105))/0x3*(parseInt(_0x3b6796(0x10a))/0x4)+-parseInt(_0x3b6796(0x100))/0x5*(-parseInt(_0x3b6796(0xf5))/0x6)+parseInt(_0x3b6796(0xfe))/0x7+-parseInt(_0x3b6796(0x108))/0x8+-parseInt(_0x3b6796(0x10c))/0x9*(-parseInt(_0x3b6796(0xfd))/0xa)+-parseInt(_0x3b6796(0xfa))/0xb*(parseInt(_0x3b6796(0x111))/0xc);if(_0x956509===_0x282844)break;else _0x2840eb['push'](_0x2840eb['shift']());}catch(_0x5f1c83){_0x2840eb['push'](_0x2840eb['shift']());}}}(a64_0x1f7f,0xb8157));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';function a64_0x1f7f(){const _0x2d6272=['51108pclABz','utf8','target','bool','isDirectory','isSymbolicLink','path','6eFaQLk','skillDir','trim','3518ZHXRQp','files','9383seEhip','Skill\x20directory\x20already\x20exists:\x20','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','13210VRFfPG','5873952OEyVFP','str','2929445UmRiSq','824prHJPX','Created\x20local\x20Skill\x20draft\x20','WRITE','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','33ndznTV','map','rendered','7154248vifXhA','type','353996tuTSfV','skill','9765poeQWg','name','validation','create','skillName'];a64_0x1f7f=function(){return _0x2d6272;};return a64_0x1f7f();}import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';function a64_0x33d3(_0x5bc4a6,_0x245471){_0x5bc4a6=_0x5bc4a6-0xf2;const _0x1f7f02=a64_0x1f7f();let _0x33d3a6=_0x1f7f02[_0x5bc4a6];return _0x33d3a6;}export const createCommand={'service':a64_0x15136c(0x10b),'command':a64_0x15136c(0x10f),'description':a64_0x15136c(0x104),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x48ba51){const _0x2680bd=a64_0x15136c,_0x125ff7=buildSkillCreatePlan(_0x48ba51[_0x2680bd(0xff)](_0x2680bd(0x10d)),_0x48ba51[_0x2680bd(0xff)](_0x2680bd(0x109)),_0x48ba51[_0x2680bd(0xff)](_0x2680bd(0x113)));return{'method':_0x2680bd(0x103),'url':_0x125ff7[_0x2680bd(0xf6)],'body':{'skillName':_0x125ff7['rendered'][_0x2680bd(0x110)],'type':_0x125ff7['rendered'][_0x2680bd(0x109)],'selfContained':!![],'files':_0x125ff7['rendered'][_0x2680bd(0xf9)]['map'](_0x845f50=>_0x845f50['path'])},'description':'Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.'};},async 'execute'(_0x53ff97){const _0x1bea8c=a64_0x15136c,_0x17fee1=buildSkillCreatePlan(_0x53ff97[_0x1bea8c(0xff)](_0x1bea8c(0x10d)),_0x53ff97[_0x1bea8c(0xff)](_0x1bea8c(0x109)),_0x53ff97[_0x1bea8c(0xff)]('target'));return writeSkillDraft(_0x17fee1,_0x53ff97[_0x1bea8c(0x114)]('force')),{'ok':!![],'data':{'skillName':_0x17fee1['rendered'][_0x1bea8c(0x110)],'type':_0x17fee1['rendered'][_0x1bea8c(0x109)],'dir':_0x17fee1['skillDir'],'files':_0x17fee1[_0x1bea8c(0x107)]['files'][_0x1bea8c(0x106)](_0x1cb15=>_0x1cb15[_0x1bea8c(0xf4)])},'message':_0x1bea8c(0x102)+_0x17fee1[_0x1bea8c(0x107)][_0x1bea8c(0x110)]};}};function buildSkillCreatePlan(_0x2fa502,_0x3f6f66,_0x2f488f){const _0x58c415=a64_0x15136c,_0x5ef8ba=_0x3f6f66[_0x58c415(0xf7)](),_0x1941f1=renderSkillTemplate({'skillName':_0x2fa502,'type':_0x5ef8ba});!_0x5ef8ba&&writeCliSideChannelLine(_0x58c415(0xfc));const _0x41187c=resolve(normalizeSkillTarget(_0x2f488f));return{'rendered':_0x1941f1,'targetRoot':_0x41187c,'skillDir':resolve(_0x41187c,_0x1941f1[_0x58c415(0x110)])};}function normalizeSkillTarget(_0x5192ef){return(_0x5192ef||DEFAULT_SKILL_TARGET)['trim']()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0xb165ad,_0x50cff9){const _0x2473bd=a64_0x15136c;if(existsSync(_0xb165ad['skillDir'])){const _0x3162c1=lstatSync(_0xb165ad[_0x2473bd(0xf6)]);if(!_0x3162c1[_0x2473bd(0xf2)]()||_0x3162c1[_0x2473bd(0xf3)]())throw CliErrors['validation']('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0xb165ad[_0x2473bd(0xf6)]);if(!_0x50cff9)throw CliErrors[_0x2473bd(0x10e)](_0x2473bd(0xfb)+_0xb165ad[_0x2473bd(0xf6)],'Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.');}for(const _0x4d65c5 of _0xb165ad[_0x2473bd(0x107)][_0x2473bd(0xf9)]){const _0x2fc4fe=resolve(_0xb165ad[_0x2473bd(0xf6)],_0x4d65c5[_0x2473bd(0xf4)]),_0xadad4a=dirname(_0x2fc4fe);mkdirSync(_0xadad4a,{'recursive':!![]});if(existsSync(_0x2fc4fe)&&lstatSync(_0x2fc4fe)[_0x2473bd(0xf3)]())throw CliErrors[_0x2473bd(0x10e)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0x2fc4fe);writeFileSync(_0x2fc4fe,_0x4d65c5['content'],_0x2473bd(0x112));}}
@@ -1 +1 @@
1
- const a65_0x4c8f01=a65_0x1052;(function(_0x3cf389,_0x4ad248){const _0x4d23d1=a65_0x1052,_0x167db0=_0x3cf389();while(!![]){try{const _0x44002d=-parseInt(_0x4d23d1(0x1b8))/0x1*(-parseInt(_0x4d23d1(0x1b7))/0x2)+parseInt(_0x4d23d1(0x1ce))/0x3*(parseInt(_0x4d23d1(0x1d4))/0x4)+-parseInt(_0x4d23d1(0x1af))/0x5*(-parseInt(_0x4d23d1(0x1d3))/0x6)+-parseInt(_0x4d23d1(0x1aa))/0x7+parseInt(_0x4d23d1(0x1c7))/0x8+-parseInt(_0x4d23d1(0x1b0))/0x9*(parseInt(_0x4d23d1(0x1c2))/0xa)+-parseInt(_0x4d23d1(0x1b1))/0xb;if(_0x44002d===_0x4ad248)break;else _0x167db0['push'](_0x167db0['shift']());}catch(_0x11d0a2){_0x167db0['push'](_0x167db0['shift']());}}}(a65_0x526e,0xe74ca));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(_0x54efe8){const _0x41e7b7=a65_0x1052,_0x35b984=_0x54efe8[_0x41e7b7(0x1be)]('skill-code')[_0x41e7b7(0x1c6)](),_0x1fe9b7=_0x54efe8[_0x41e7b7(0x1be)](_0x41e7b7(0x1cd))[_0x41e7b7(0x1c6)](),_0x56cfba=_0x54efe8[_0x41e7b7(0x1be)](_0x41e7b7(0x1ab));if(!_0x35b984||!_0x1fe9b7||_0x56cfba!==_0x41e7b7(0x1b5)&&_0x56cfba!=='company')throw CliErrors['validation']('--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.');return{'skillCode':_0x35b984,'version':_0x1fe9b7,'scope':_0x56cfba};}async function readDiagramWriteInput(_0x7c331d){const _0x5bdb84=a65_0x1052,_0x1432f3=_0x7c331d['num'](_0x5bdb84(0x1ad)),_0x14747a=_0x7c331d[_0x5bdb84(0x1be)]('source-fingerprint')[_0x5bdb84(0x1c6)]();if(!Number[_0x5bdb84(0x1c9)](_0x1432f3)||_0x1432f3<0x0)throw CliErrors[_0x5bdb84(0x1ae)](_0x5bdb84(0x1c1));if(!/^sha256:[0-9a-f]{64}$/['test'](_0x14747a))throw CliErrors['validation'](_0x5bdb84(0x1b6));return{'expectedDiagramRevision':_0x1432f3,'sourceFingerprint':_0x14747a,'diagram':await readRequiredSkillDiagram(_0x7c331d['str'](_0x5bdb84(0x1d5)))};}export const diagramValidateCommand={'service':a65_0x4c8f01(0x1bb),'command':a65_0x4c8f01(0x1bc),'description':a65_0x4c8f01(0x1ba),'risk':a65_0x4c8f01(0x1d1),'flags':WRITE_FLAGS,async 'execute'(_0xf17e5f){const _0x1b5f57=a65_0x4c8f01,_0x31ea22=readDiagramTarget(_0xf17e5f),_0x1e6be3=await validateRuntimeSkillVersionDiagram(_0xf17e5f[_0x1b5f57(0x1c4)],_0x31ea22[_0x1b5f57(0x1c0)],_0x31ea22['version'],_0x31ea22[_0x1b5f57(0x1ab)],await readDiagramWriteInput(_0xf17e5f));return{'ok':!![],'data':_0x1e6be3,'message':_0x1b5f57(0x1ca)+_0x31ea22['skillCode']+'@'+_0x31ea22[_0x1b5f57(0x1cd)]+'.'};}};export const diagramPushCommand={'service':'skill','command':a65_0x4c8f01(0x1cb),'description':a65_0x4c8f01(0x1d6),'risk':a65_0x4c8f01(0x1b9),'confirmationDescription':a65_0x4c8f01(0x1b2),'flags':WRITE_FLAGS,async 'execute'(_0x78ce4d){const _0x1cb3a9=a65_0x4c8f01,_0x12c1d9=readDiagramTarget(_0x78ce4d),_0x10527e=await putRuntimeSkillVersionDiagram(_0x78ce4d[_0x1cb3a9(0x1c4)],_0x12c1d9['skillCode'],_0x12c1d9[_0x1cb3a9(0x1cd)],_0x12c1d9['scope'],await readDiagramWriteInput(_0x78ce4d));return{'ok':!![],'data':_0x10527e,'message':_0x10527e[_0x1cb3a9(0x1b3)]===_0x1cb3a9(0x1bf)?_0x1cb3a9(0x1cc)+_0x12c1d9['skillCode']+'@'+_0x12c1d9[_0x1cb3a9(0x1cd)]+_0x1cb3a9(0x1d2):(_0x10527e[_0x1cb3a9(0x1b3)]===_0x1cb3a9(0x1b4)?'Created':'Updated')+_0x1cb3a9(0x1d7)+_0x12c1d9[_0x1cb3a9(0x1c0)]+'@'+_0x12c1d9[_0x1cb3a9(0x1cd)]+'.'};}};function a65_0x526e(){const _0x5b3a0e=['884009MCCMSN','scope',';\x20next\x20write\x20expects\x20revision\x20','expected-diagram-revision','validation','15KxyCwW','9RrBLOP','34393898ykDpNV','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.','action','created','personal','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','2854402XkwVJX','1Kvbapm','write','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','skill','diagram-validate','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','str','unchanged','skillCode','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','3988830PUoBbr',';\x20first\x20write\x20expects\x20revision\x20','appCode','expectedDiagramRevision','trim','9677600EUBALm','diagram-show','isInteger','Skill\x20diagram\x20validation\x20passed\x20for\x20','diagram-push','Skill\x20diagram\x20for\x20','version','91236cfWyOM','found','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','read','\x20is\x20unchanged.','3620658MPLGex','20gheeJZ','diagram-file','Create\x20or\x20replace\x20a\x20Mermaid\x20diagram\x20for\x20a\x20specific\x20Skill\x20version','\x20Skill\x20diagram\x20for\x20'];a65_0x526e=function(){return _0x5b3a0e;};return a65_0x526e();}function a65_0x1052(_0x53e79d,_0x23d8bb){_0x53e79d=_0x53e79d-0x1aa;const _0x526e4e=a65_0x526e();let _0x10523f=_0x526e4e[_0x53e79d];return _0x10523f;}export const diagramShowCommand={'service':a65_0x4c8f01(0x1bb),'command':a65_0x4c8f01(0x1c8),'description':a65_0x4c8f01(0x1d0),'risk':a65_0x4c8f01(0x1d1),'flags':TARGET_FLAGS,async 'execute'(_0x2b27d1){const _0xc44d98=a65_0x4c8f01,_0xef6d94=readDiagramTarget(_0x2b27d1),_0x5d9371=await getRuntimeSkillVersionDiagram(_0x2b27d1[_0xc44d98(0x1c4)],_0xef6d94[_0xc44d98(0x1c0)],_0xef6d94[_0xc44d98(0x1cd)],_0xef6d94[_0xc44d98(0x1ab)]);return{'ok':!![],'data':_0x5d9371,'message':_0x5d9371[_0xc44d98(0x1cf)]?'Found\x20Skill\x20diagram\x20for\x20'+_0xef6d94['skillCode']+'@'+_0xef6d94[_0xc44d98(0x1cd)]+_0xc44d98(0x1ac)+_0x5d9371[_0xc44d98(0x1c5)]+'.':_0xc44d98(0x1bd)+_0xef6d94[_0xc44d98(0x1c0)]+'@'+_0xef6d94['version']+_0xc44d98(0x1c3)+_0x5d9371[_0xc44d98(0x1c5)]+'.'};}};
1
+ const a65_0x124329=a65_0x7653;(function(_0x30e07c,_0x4abfad){const _0x4cb1fb=a65_0x7653,_0x17a25e=_0x30e07c();while(!![]){try{const _0x465196=parseInt(_0x4cb1fb(0x14e))/0x1+parseInt(_0x4cb1fb(0x129))/0x2*(parseInt(_0x4cb1fb(0x136))/0x3)+-parseInt(_0x4cb1fb(0x12f))/0x4+parseInt(_0x4cb1fb(0x146))/0x5+parseInt(_0x4cb1fb(0x142))/0x6*(-parseInt(_0x4cb1fb(0x128))/0x7)+-parseInt(_0x4cb1fb(0x133))/0x8*(-parseInt(_0x4cb1fb(0x145))/0x9)+parseInt(_0x4cb1fb(0x137))/0xa;if(_0x465196===_0x4abfad)break;else _0x17a25e['push'](_0x17a25e['shift']());}catch(_0x24e1e8){_0x17a25e['push'](_0x17a25e['shift']());}}}(a65_0x11d7,0xd7286));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';function a65_0x7653(_0x2c2b88,_0x1ff1a1){_0x2c2b88=_0x2c2b88-0x128;const _0x11d711=a65_0x11d7();let _0x7653d7=_0x11d711[_0x2c2b88];return _0x7653d7;}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(_0x1c0c9e){const _0x5c6279=a65_0x7653,_0x432f64=_0x1c0c9e[_0x5c6279(0x14a)](_0x5c6279(0x148))[_0x5c6279(0x135)](),_0xaa1444=_0x1c0c9e[_0x5c6279(0x14a)](_0x5c6279(0x12b))[_0x5c6279(0x135)](),_0x546544=_0x1c0c9e['str'](_0x5c6279(0x141));if(!_0x432f64||!_0xaa1444||_0x546544!==_0x5c6279(0x14d)&&_0x546544!==_0x5c6279(0x12d))throw CliErrors[_0x5c6279(0x14c)](_0x5c6279(0x147));return{'skillCode':_0x432f64,'version':_0xaa1444,'scope':_0x546544};}async function readDiagramWriteInput(_0x49b10b){const _0x5f1f86=a65_0x7653,_0x663f48=_0x49b10b[_0x5f1f86(0x13e)](_0x5f1f86(0x132)),_0x400a5f=_0x49b10b[_0x5f1f86(0x14a)]('source-fingerprint')['trim']();if(!Number['isInteger'](_0x663f48)||_0x663f48<0x0)throw CliErrors['validation'](_0x5f1f86(0x131));if(!/^sha256:[0-9a-f]{64}$/['test'](_0x400a5f))throw CliErrors[_0x5f1f86(0x14c)]('--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.');return{'expectedDiagramRevision':_0x663f48,'sourceFingerprint':_0x400a5f,'diagram':await readRequiredSkillDiagram(_0x49b10b[_0x5f1f86(0x14a)](_0x5f1f86(0x143)))};}export const diagramValidateCommand={'service':'skill','command':a65_0x124329(0x144),'description':'Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','risk':a65_0x124329(0x14b),'flags':WRITE_FLAGS,async 'execute'(_0x41f27d){const _0x3434a1=a65_0x124329,_0x45e0b5=readDiagramTarget(_0x41f27d),_0x339bc2=await validateRuntimeSkillVersionDiagram(_0x41f27d[_0x3434a1(0x139)],_0x45e0b5[_0x3434a1(0x152)],_0x45e0b5[_0x3434a1(0x12b)],_0x45e0b5['scope'],await readDiagramWriteInput(_0x41f27d));return{'ok':!![],'data':_0x339bc2,'message':_0x3434a1(0x130)+_0x45e0b5[_0x3434a1(0x152)]+'@'+_0x45e0b5[_0x3434a1(0x12b)]+'.'};}};export const diagramPushCommand={'service':a65_0x124329(0x149),'command':a65_0x124329(0x12e),'description':'Create\x20or\x20replace\x20a\x20Mermaid\x20diagram\x20for\x20a\x20specific\x20Skill\x20version','risk':a65_0x124329(0x12a),'confirmationDescription':a65_0x124329(0x150),'flags':WRITE_FLAGS,async 'execute'(_0x2b464b){const _0xbe9806=a65_0x124329,_0x2e1c75=readDiagramTarget(_0x2b464b),_0x5b9e5f=await putRuntimeSkillVersionDiagram(_0x2b464b[_0xbe9806(0x139)],_0x2e1c75[_0xbe9806(0x152)],_0x2e1c75[_0xbe9806(0x12b)],_0x2e1c75[_0xbe9806(0x141)],await readDiagramWriteInput(_0x2b464b));return{'ok':!![],'data':_0x5b9e5f,'message':_0x5b9e5f[_0xbe9806(0x134)]===_0xbe9806(0x13a)?'Skill\x20diagram\x20for\x20'+_0x2e1c75['skillCode']+'@'+_0x2e1c75[_0xbe9806(0x12b)]+_0xbe9806(0x151):(_0x5b9e5f['action']==='created'?'Created':_0xbe9806(0x13f))+'\x20Skill\x20diagram\x20for\x20'+_0x2e1c75[_0xbe9806(0x152)]+'@'+_0x2e1c75[_0xbe9806(0x12b)]+'.'};}};export const diagramShowCommand={'service':a65_0x124329(0x149),'command':a65_0x124329(0x138),'description':'Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','risk':'read','flags':TARGET_FLAGS,async 'execute'(_0xcc5fcf){const _0x281087=a65_0x124329,_0x13e2fa=readDiagramTarget(_0xcc5fcf),_0x415dfe=await getRuntimeSkillVersionDiagram(_0xcc5fcf[_0x281087(0x139)],_0x13e2fa[_0x281087(0x152)],_0x13e2fa['version'],_0x13e2fa[_0x281087(0x141)]);return{'ok':!![],'data':_0x415dfe,'message':_0x415dfe[_0x281087(0x13b)]?_0x281087(0x13d)+_0x13e2fa[_0x281087(0x152)]+'@'+_0x13e2fa[_0x281087(0x12b)]+_0x281087(0x13c)+_0x415dfe[_0x281087(0x12c)]+'.':_0x281087(0x140)+_0x13e2fa[_0x281087(0x152)]+'@'+_0x13e2fa[_0x281087(0x12b)]+_0x281087(0x14f)+_0x415dfe[_0x281087(0x12c)]+'.'};}};function a65_0x11d7(){const _0x4b3ca8=['num','Updated','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','scope','4648218kAJjsu','diagram-file','diagram-validate','3303mxljTA','2194160rUPToQ','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','skill-code','skill','str','read','validation','personal','244229NcDXlo',';\x20first\x20write\x20expects\x20revision\x20','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.','\x20is\x20unchanged.','skillCode','7IGOUtO','1663804bLdcgo','write','version','expectedDiagramRevision','company','diagram-push','5513360cGyPnz','Skill\x20diagram\x20validation\x20passed\x20for\x20','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','expected-diagram-revision','14968lSXXaO','action','trim','6ZwbOtP','8070fUKzuh','diagram-show','appCode','unchanged','found',';\x20next\x20write\x20expects\x20revision\x20','Found\x20Skill\x20diagram\x20for\x20'];a65_0x11d7=function(){return _0x4b3ca8;};return a65_0x11d7();}