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

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 (168) 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.d.ts +1 -1
  91. package/lib/config/schema.js +1 -1
  92. package/lib/constant/app.js +1 -1
  93. package/lib/constant/auth-mode.js +1 -1
  94. package/lib/constant/cli.js +1 -1
  95. package/lib/constant/defaults.js +1 -1
  96. package/lib/constant/distribution.js +1 -1
  97. package/lib/constant/domain.js +1 -1
  98. package/lib/constant/env.js +1 -1
  99. package/lib/constant/output.js +1 -1
  100. package/lib/constant/product.js +1 -1
  101. package/lib/constant/region.js +1 -1
  102. package/lib/constant/risk.js +1 -1
  103. package/lib/constant/url.js +1 -1
  104. package/lib/context.d.ts +2 -0
  105. package/lib/context.js +1 -1
  106. package/lib/core/api-client.js +1 -1
  107. package/lib/core/db-resolver.js +1 -1
  108. package/lib/core/sdk-client.js +1 -1
  109. package/lib/errors.d.ts +1 -0
  110. package/lib/errors.js +1 -1
  111. package/lib/framework/build-all-flags.js +1 -1
  112. package/lib/framework/dryrun.js +1 -1
  113. package/lib/framework/flags.js +1 -1
  114. package/lib/framework/help.js +1 -1
  115. package/lib/framework/index.js +1 -1
  116. package/lib/framework/output.js +1 -1
  117. package/lib/framework/preparse.js +1 -1
  118. package/lib/framework/rate-limit.js +1 -1
  119. package/lib/framework/raw-flags.js +1 -1
  120. package/lib/framework/response.js +1 -1
  121. package/lib/framework/runner-confirmation.js +1 -1
  122. package/lib/framework/runner-error.js +1 -1
  123. package/lib/framework/runner.d.ts +9 -7
  124. package/lib/framework/runner.js +1 -1
  125. package/lib/framework/schema-export.js +1 -1
  126. package/lib/framework/service-order.js +1 -1
  127. package/lib/framework/types.js +1 -1
  128. package/lib/generated/build-info.d.ts +4 -4
  129. package/lib/generated/build-info.js +1 -1
  130. package/lib/help.js +1 -1
  131. package/lib/postinstall.js +1 -1
  132. package/lib/runtime/confirmation.js +1 -1
  133. package/lib/runtime/event.js +1 -1
  134. package/lib/runtime/index.js +1 -1
  135. package/lib/runtime/queue.js +1 -1
  136. package/lib/runtime/resolve.js +1 -1
  137. package/lib/skills/builtin-skill.js +1 -1
  138. package/lib/skills/npx-skills-add.js +1 -1
  139. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  140. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  141. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  142. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  143. package/lib/skills/runtime-skill-sync/links.js +1 -1
  144. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  145. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  146. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  147. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  148. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  149. package/lib/skills/runtime-skill-sync/push.js +1 -1
  150. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  151. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  152. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  153. package/lib/skills/runtime-skill-sync.js +1 -1
  154. package/lib/skills/skill-presence.js +1 -1
  155. package/lib/utils/access-key-redaction.js +1 -1
  156. package/lib/utils/apply-jq-filter.js +1 -1
  157. package/lib/utils/cli-version-check.js +1 -1
  158. package/lib/utils/cli-version-policy.js +1 -1
  159. package/lib/utils/logger.js +1 -1
  160. package/lib/utils/lossless-json.js +1 -1
  161. package/lib/utils/params.js +1 -1
  162. package/lib/utils/platform.js +1 -1
  163. package/lib/utils/update-notice.js +1 -1
  164. package/lib/utils/version.js +1 -1
  165. package/lib/utils/write-cli-side-channel.js +1 -1
  166. package/package.json +1 -1
  167. package/skills/lovrabet/SKILL.md +1 -1
  168. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- function a57_0x3bb2(){const _0x1b003e=['role','758050OLsGGc','description','warnings','15WAPJZM','4483936QDrICX','appCode','userId','4298751zXyJeX','1287004MozvTv','27WNsuGV','852532MbyjyN','1lCGWlo','build','POST','user-remove','body','Removes\x20the\x20given\x20runtime\x20user\x20from\x20the\x20target\x20role.\x20The\x20user\x20loses\x20permissions\x20granted\x20only\x20by\x20that\x20role.','34203873WkiFkU','Preview:\x20remove\x20runtime\x20role\x20member','/client/permit/user-role/update-user-list','before','14ATCAjf','high-risk-write','2179182jlBvVn','roleList'];a57_0x3bb2=function(){return _0x1b003e;};return a57_0x3bb2();}const a57_0x3810d1=a57_0x4013;(function(_0x561305,_0x4dbecc){const _0x478cdd=a57_0x4013,_0x3a45c1=_0x561305();while(!![]){try{const _0x5191d4=parseInt(_0x478cdd(0x1f5))/0x1*(parseInt(_0x478cdd(0x1f4))/0x2)+parseInt(_0x478cdd(0x1f1))/0x3+parseInt(_0x478cdd(0x1f2))/0x4*(parseInt(_0x478cdd(0x207))/0x5)+parseInt(_0x478cdd(0x201))/0x6*(parseInt(_0x478cdd(0x1ff))/0x7)+parseInt(_0x478cdd(0x208))/0x8+-parseInt(_0x478cdd(0x1f3))/0x9*(parseInt(_0x478cdd(0x204))/0xa)+-parseInt(_0x478cdd(0x1fb))/0xb;if(_0x5191d4===_0x4dbecc)break;else _0x3a45c1['push'](_0x3a45c1['shift']());}catch(_0x562338){_0x3a45c1['push'](_0x3a45c1['shift']());}}}(a57_0x3bb2,0xbd140));import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a57_0x4013(_0x201663,_0x46d57d){_0x201663=_0x201663-0x1ef;const _0x3bb2cc=a57_0x3bb2();let _0x4013be=_0x3bb2cc[_0x201663];return _0x4013be;}import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':a57_0x3810d1(0x203),'command':a57_0x3810d1(0x1f8),'description':'Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','risk':a57_0x3810d1(0x200),'confirmationDescription':a57_0x3810d1(0x1fa),'flags':[ROLE_REF_FLAG,USER_ID_FLAG,EXPECT_USER_COUNT_FLAG],async 'dryRun'(_0x339f47){const _0x284c24=a57_0x3810d1,_0x56d59e=await prepareRuntimeMemberMutation(_0x339f47,_0x284c24(0x1f8));return dryRun(_0x284c24(0x1f7),'/client/permit/user-role/update-user-list')[_0x284c24(0x1f9)]({'appCode':_0x339f47[_0x284c24(0x1ef)],'roleList':_0x56d59e['roleList']})[_0x284c24(0x205)](_0x56d59e['shouldWrite']?_0x284c24(0x1fc):_0x56d59e['warnings'][0x0])[_0x284c24(0x1f6)]();},async 'execute'(_0x19d4f8){const _0x188e10=a57_0x3810d1,_0x53f41b=await prepareRuntimeMemberMutation(_0x19d4f8,_0x188e10(0x1f8));return _0x53f41b['shouldWrite']&&await updateRuntimeRoleUsers(_0x19d4f8[_0x188e10(0x1ef)],_0x53f41b[_0x188e10(0x202)]),{'ok':!![],'data':runtimeRoleWriteResult(_0x188e10(0x1f8),{'roleId':_0x53f41b[_0x188e10(0x203)]['id'],'userId':_0x53f41b[_0x188e10(0x1f0)]},_0x53f41b[_0x188e10(0x1fe)],_0x53f41b['after'],{'method':_0x188e10(0x1f7),'path':_0x188e10(0x1fd)},_0x53f41b[_0x188e10(0x206)])};}};
1
+ const a57_0x2d34e8=a57_0x1456;(function(_0x352c09,_0x123052){const _0x44c191=a57_0x1456,_0x52727e=_0x352c09();while(!![]){try{const _0x2c17c1=-parseInt(_0x44c191(0xc4))/0x1*(parseInt(_0x44c191(0xd8))/0x2)+-parseInt(_0x44c191(0xc6))/0x3+-parseInt(_0x44c191(0xc9))/0x4+parseInt(_0x44c191(0xd4))/0x5*(parseInt(_0x44c191(0xd2))/0x6)+-parseInt(_0x44c191(0xc1))/0x7+-parseInt(_0x44c191(0xcf))/0x8*(parseInt(_0x44c191(0xc8))/0x9)+parseInt(_0x44c191(0xd7))/0xa*(parseInt(_0x44c191(0xd6))/0xb);if(_0x2c17c1===_0x123052)break;else _0x52727e['push'](_0x52727e['shift']());}catch(_0x53b5d0){_0x52727e['push'](_0x52727e['shift']());}}}(a57_0x1236,0x243d9));import{updateRuntimeRoleUsers}from'../../core/api-client.js';function a57_0x1236(){const _0x2e4d38=['roleList','15FRUeSg','after','11RWrbty','9782170qpUMeg','10078HmKMEc','warnings','shouldWrite','159677SyuXNf','description','Remove\x20a\x20numeric\x20userId\x20from\x20one\x20runtime\x20role','49BEYucl','/client/permit/user-role/update-user-list','826350cItitp','build','28332oUMZho','455036MJEpke','userId','body','POST','user-remove','role','608JtMKAW','appCode','high-risk-write','136806tTnUrF'];a57_0x1236=function(){return _0x2e4d38;};return a57_0x1236();}function a57_0x1456(_0x6a1a02,_0x4a0e17){_0x6a1a02=_0x6a1a02-0xc1;const _0x123697=a57_0x1236();let _0x1456f1=_0x123697[_0x6a1a02];return _0x1456f1;}import{dryRun}from'../../framework/dryrun.js';import{EXPECT_USER_COUNT_FLAG,prepareRuntimeMemberMutation,ROLE_REF_FLAG,runtimeRoleWriteResult,USER_ID_FLAG}from'../../commands/role/shared.js';export const roleUserRemove={'service':'role','command':a57_0x2d34e8(0xcd),'description':a57_0x2d34e8(0xc3),'risk':a57_0x2d34e8(0xd1),'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'(_0x4507ec){const _0x34a1c5=a57_0x2d34e8,_0x5101b6=await prepareRuntimeMemberMutation(_0x4507ec,_0x34a1c5(0xcd));return dryRun(_0x34a1c5(0xcc),_0x34a1c5(0xc5))[_0x34a1c5(0xcb)]({'appCode':_0x4507ec[_0x34a1c5(0xd0)],'roleList':_0x5101b6['roleList']})[_0x34a1c5(0xc2)](_0x5101b6[_0x34a1c5(0xda)]?'Preview:\x20remove\x20runtime\x20role\x20member':_0x5101b6[_0x34a1c5(0xd9)][0x0])[_0x34a1c5(0xc7)]();},async 'execute'(_0x2771b9){const _0x5cedc4=a57_0x2d34e8,_0x5382fd=await prepareRuntimeMemberMutation(_0x2771b9,_0x5cedc4(0xcd));return _0x5382fd['shouldWrite']&&await updateRuntimeRoleUsers(_0x2771b9[_0x5cedc4(0xd0)],_0x5382fd[_0x5cedc4(0xd3)]),{'ok':!![],'data':runtimeRoleWriteResult('user-remove',{'roleId':_0x5382fd[_0x5cedc4(0xce)]['id'],'userId':_0x5382fd[_0x5cedc4(0xca)]},_0x5382fd['before'],_0x5382fd[_0x5cedc4(0xd5)],{'method':_0x5cedc4(0xcc),'path':_0x5cedc4(0xc5)},_0x5382fd[_0x5cedc4(0xd9)])};}};
@@ -1 +1 @@
1
- const a58_0x464476=a58_0x49a5;(function(_0x34fcd1,_0x25df9c){const _0x55788e=a58_0x49a5,_0x45ff4a=_0x34fcd1();while(!![]){try{const _0x4872ab=parseInt(_0x55788e(0x121))/0x1+-parseInt(_0x55788e(0x10a))/0x2+-parseInt(_0x55788e(0xfb))/0x3*(-parseInt(_0x55788e(0x124))/0x4)+parseInt(_0x55788e(0x114))/0x5*(-parseInt(_0x55788e(0x100))/0x6)+parseInt(_0x55788e(0x110))/0x7*(-parseInt(_0x55788e(0xea))/0x8)+parseInt(_0x55788e(0xe7))/0x9*(parseInt(_0x55788e(0x111))/0xa)+-parseInt(_0x55788e(0x115))/0xb*(-parseInt(_0x55788e(0xf9))/0xc);if(_0x4872ab===_0x25df9c)break;else _0x45ff4a['push'](_0x45ff4a['shift']());}catch(_0x423a35){_0x45ff4a['push'](_0x45ff4a['shift']());}}}(a58_0x79de,0xf33ce));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a58_0x464476(0xfd),'type':a58_0x464476(0x107),'required':!![],'enum':[a58_0x464476(0x103),a58_0x464476(0x112)],'description':a58_0x464476(0x120)},CRON_FLAG={'name':a58_0x464476(0x106),'type':a58_0x464476(0x107),'description':a58_0x464476(0xe2)},SCHEDULED_AT_FLAG={'name':a58_0x464476(0xef),'type':a58_0x464476(0x107),'description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a58_0x464476(0xed),'type':'string','required':!![],'description':a58_0x464476(0xf2)},PROMPT_FLAG={'name':a58_0x464476(0xe0),'type':a58_0x464476(0x107),'required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':'model','type':a58_0x464476(0x107),'enum':[a58_0x464476(0x113),a58_0x464476(0xdc),a58_0x464476(0x117)],'default':a58_0x464476(0xdc),'description':'Task\x20model\x20used\x20when\x20the\x20schedule\x20runs'},SCHEDULE_ID_FLAG={'name':'schedule-id','type':a58_0x464476(0x107),'required':!![],'description':a58_0x464476(0xf0),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0x464476(0xe5)}},LIMIT_FLAG={'name':a58_0x464476(0x11a),'type':a58_0x464476(0xeb),'default':0x14,'description':a58_0x464476(0x11e)},CURSOR_FLAG={'name':a58_0x464476(0xfe),'type':a58_0x464476(0x107),'description':'Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call'},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x3bad2b){const _0x182734=a58_0x464476,_0x3e8c6c=_0x3bad2b[_0x182734(0xe8)](_0x182734(0xfd)),_0x52782f=_0x3bad2b['str'](_0x182734(0xed))[_0x182734(0xf8)](),_0x2545a4=_0x3bad2b[_0x182734(0xe8)](_0x182734(0xe0))[_0x182734(0xf8)](),_0xc6f341=_0x3bad2b[_0x182734(0xe8)](_0x182734(0x105)),_0x3961e9=_0x3bad2b[_0x182734(0xe8)]('cron'),_0x27f322=_0x3bad2b[_0x182734(0xe8)]('scheduled-at');if(!_0x52782f)throw CliErrors['validation'](_0x182734(0xe3));if(!_0x2545a4)throw CliErrors[_0x182734(0xfa)](_0x182734(0xe6));if(_0x3e8c6c==='CRON'){if(!_0x3961e9||_0x27f322)throw CliErrors[_0x182734(0xfa)](_0x182734(0xf4));return{'kind':_0x3e8c6c,'timezone':_0x182734(0xf6),'cron':_0x3961e9,'title':_0x52782f,'prompt':_0x2545a4,'model':_0xc6f341};}if(_0x3e8c6c===_0x182734(0x112)){if(!_0x27f322||_0x3961e9)throw CliErrors[_0x182734(0xfa)](_0x182734(0x11f));return{'kind':_0x3e8c6c,'timezone':_0x182734(0xf6),'scheduledAt':_0x27f322,'title':_0x52782f,'prompt':_0x2545a4,'model':_0xc6f341};}throw CliErrors[_0x182734(0xfa)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function a58_0x79de(){const _0x216252=['CRON','Preview:\x20delete\x20schedule\x20','model','cron','string','length','/run','3389308rrabYr','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','DELETE','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','scheduleId','\x20schedule\x20','7XpHaPJ','53440lFfuVB','ONCE','kimi/k3','40wUSDSy','20537UCXWxb','taskId','deepseek-v4-pro-0813','body','Queued\x20Task\x20','limit','description','POST','Show\x20one\x20schedule\x20by\x20schedule\x20ID','Page\x20size\x20from\x201\x20to\x20100','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','Schedule\x20kind:\x20CRON\x20or\x20ONCE','427224LHlmIv','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','appCode','13544BWpsum','deepseek-v4-flash-0731','read','create','Schedule\x20input\x20is\x20valid','prompt','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','--title\x20must\x20not\x20be\x20blank.','high-risk-write','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','--prompt\x20must\x20not\x20be\x20blank.','1476sJXpAH','str','detail','15470984WCjgdq','number','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','title','build','scheduled-at','Schedule\x20UUID','\x20from\x20schedule\x20','Schedule\x20title','schedule','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','Created\x20','UTC','delete','trim','15804VfuhZz','validation','1557xvUQkK','schedule-id','kind','cursor','Preview:\x20run\x20schedule\x20','671238aUoPVd','Deleted\x20schedule\x20','\x20immediately'];a58_0x79de=function(){return _0x216252;};return a58_0x79de();}function scheduleCollectionPath(_0x3e17f7){return'/api/harness/apps/'+encodeURIComponent(_0x3e17f7)+'/schedules';}function scheduleItemPath(_0x3f80c1,_0x1e2b16){return scheduleCollectionPath(_0x3f80c1)+'/'+encodeURIComponent(_0x1e2b16);}function a58_0x49a5(_0x2b3d4e,_0x277d8a){_0x2b3d4e=_0x2b3d4e-0xdc;const _0x79de18=a58_0x79de();let _0x49a53=_0x79de18[_0x2b3d4e];return _0x49a53;}const scheduleValidate={'service':'schedule','command':'validate','description':a58_0x464476(0x10d),'risk':a58_0x464476(0xdd),'flags':INPUT_FLAGS,async 'validate'(_0x41c930){readScheduleInput(_0x41c930);},async 'execute'(_0x2647e2){const _0x198c1d=a58_0x464476,_0x440ea8=readScheduleInput(_0x2647e2),_0x515420=await validateRuntimeSchedule(_0x2647e2[_0x198c1d(0x123)],_0x440ea8);return{'ok':!![],'data':_0x515420,'message':_0x198c1d(0xdf)};}},scheduleCreate={'service':a58_0x464476(0xf3),'command':a58_0x464476(0xde),'description':'Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','risk':'high-risk-write','confirmationDescription':'Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','flags':INPUT_FLAGS,async 'validate'(_0x567df7){readScheduleInput(_0x567df7);},async 'execute'(_0xd9328b){const _0x3c4fd9=a58_0x464476,_0x20fd6c=readScheduleInput(_0xd9328b),_0xa0d56=await validateRuntimeSchedule(_0xd9328b[_0x3c4fd9(0x123)],_0x20fd6c),_0x2ab319=await createRuntimeSchedule(_0xd9328b[_0x3c4fd9(0x123)],_0xa0d56);return{'ok':!![],'data':_0x2ab319,'message':_0x3c4fd9(0xf5)+_0x2ab319[_0x3c4fd9(0xfd)]+_0x3c4fd9(0x10f)+_0x2ab319[_0x3c4fd9(0x10e)]};},async 'dryRun'(_0x5e22d5){const _0x68d751=a58_0x464476,_0x3b7d4b=readScheduleInput(_0x5e22d5);return dryRun(_0x68d751(0x11c),scheduleCollectionPath(_0x5e22d5[_0x68d751(0x123)]))[_0x68d751(0x118)](_0x3b7d4b)['description']('Preview:\x20create\x20an\x20Agent\x20schedule')[_0x68d751(0xee)]();}},scheduleList={'service':a58_0x464476(0xf3),'command':'list','description':a58_0x464476(0x10b),'risk':a58_0x464476(0xdd),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x274f00){const _0x4125fb=a58_0x464476,_0x18b990=_0x274f00['num']('limit');if(!Number['isSafeInteger'](_0x18b990)||_0x18b990<0x1||_0x18b990>0x64)throw CliErrors[_0x4125fb(0xfa)](_0x4125fb(0xe1));const _0x449d21=_0x274f00['str']('cursor');if(_0x449d21&&(_0x449d21[_0x4125fb(0x108)]>0x400||_0x449d21[_0x4125fb(0xf8)]()!==_0x449d21))throw CliErrors[_0x4125fb(0xfa)](_0x4125fb(0x122));},async 'execute'(_0x59c0c1){const _0xdd209c=a58_0x464476,_0x1d73cb=_0x59c0c1[_0xdd209c(0xe8)]('cursor'),_0x3153f2=await listRuntimeSchedules(_0x59c0c1[_0xdd209c(0x123)],{'kind':_0x59c0c1[_0xdd209c(0xe8)]('kind'),'limit':_0x59c0c1['num'](_0xdd209c(0x11a)),..._0x1d73cb?{'cursor':_0x1d73cb}:{}});return{'ok':!![],'data':_0x3153f2};}},scheduleDetail={'service':'schedule','command':a58_0x464476(0xe9),'description':a58_0x464476(0x11d),'risk':'read','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1e84c7){const _0x522978=a58_0x464476,_0xcbb78d=await getRuntimeSchedule(_0x1e84c7['appCode'],_0x1e84c7[_0x522978(0xe8)](_0x522978(0xfc)));return{'ok':!![],'data':_0xcbb78d};}},scheduleRun={'service':a58_0x464476(0xf3),'command':'run','description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':'high-risk-write','confirmationDescription':'Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xee86a7){const _0x281121=a58_0x464476,_0x16772b=_0xee86a7[_0x281121(0xe8)](_0x281121(0xfc)),_0x1179c8=await runRuntimeSchedule(_0xee86a7[_0x281121(0x123)],_0x16772b);return{'ok':!![],'data':_0x1179c8,'message':_0x281121(0x119)+_0x1179c8[_0x281121(0x116)]+_0x281121(0xf1)+_0x16772b};},async 'dryRun'(_0x2fc9b6){const _0x2d7fd0=a58_0x464476,_0x3d6213=_0x2fc9b6[_0x2d7fd0(0xe8)]('schedule-id');return dryRun(_0x2d7fd0(0x11c),scheduleItemPath(_0x2fc9b6['appCode'],_0x3d6213)+_0x2d7fd0(0x109))[_0x2d7fd0(0x11b)](_0x2d7fd0(0xff)+_0x3d6213+_0x2d7fd0(0x102))[_0x2d7fd0(0xee)]();}},scheduleDelete={'service':a58_0x464476(0xf3),'command':a58_0x464476(0xf7),'description':a58_0x464476(0xec),'risk':a58_0x464476(0xe4),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x2ad95c){const _0x37792e=a58_0x464476,_0x1c4472=_0x2ad95c[_0x37792e(0xe8)](_0x37792e(0xfc)),_0x42f9ee=await deleteRuntimeSchedule(_0x2ad95c[_0x37792e(0x123)],_0x1c4472);return{'ok':!![],'data':_0x42f9ee,'message':_0x37792e(0x101)+_0x1c4472};},async 'dryRun'(_0x485036){const _0x58aaec=a58_0x464476,_0x153459=_0x485036[_0x58aaec(0xe8)]('schedule-id');return dryRun(_0x58aaec(0x10c),scheduleItemPath(_0x485036[_0x58aaec(0x123)],_0x153459))['description'](_0x58aaec(0x104)+_0x153459)['build']();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
1
+ const a58_0x996ba=a58_0x5137;(function(_0x24802c,_0x1e0fc4){const _0x41c36c=a58_0x5137,_0x4d1eef=_0x24802c();while(!![]){try{const _0x153c39=parseInt(_0x41c36c(0x198))/0x1+-parseInt(_0x41c36c(0x1b1))/0x2*(parseInt(_0x41c36c(0x18f))/0x3)+-parseInt(_0x41c36c(0x195))/0x4+parseInt(_0x41c36c(0x1ad))/0x5+-parseInt(_0x41c36c(0x190))/0x6*(-parseInt(_0x41c36c(0x1b6))/0x7)+parseInt(_0x41c36c(0x1ae))/0x8*(parseInt(_0x41c36c(0x1c1))/0x9)+-parseInt(_0x41c36c(0x197))/0xa;if(_0x153c39===_0x1e0fc4)break;else _0x4d1eef['push'](_0x4d1eef['shift']());}catch(_0x5429a1){_0x4d1eef['push'](_0x4d1eef['shift']());}}}(a58_0x1601,0x1ca8f));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';function a58_0x5137(_0x4bfca5,_0xc0338b){_0x4bfca5=_0x4bfca5-0x17a;const _0x1601b1=a58_0x1601();let _0x5137e5=_0x1601b1[_0x4bfca5];return _0x5137e5;}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_0x996ba(0x19b),'type':a58_0x996ba(0x1ac),'required':!![],'enum':[a58_0x996ba(0x17b),'ONCE'],'description':a58_0x996ba(0x1aa)},CRON_FLAG={'name':a58_0x996ba(0x18e),'type':'string','description':a58_0x996ba(0x1a3)},SCHEDULED_AT_FLAG={'name':a58_0x996ba(0x1a1),'type':a58_0x996ba(0x1ac),'description':a58_0x996ba(0x1c3)},TITLE_FLAG={'name':a58_0x996ba(0x182),'type':a58_0x996ba(0x1ac),'required':!![],'description':a58_0x996ba(0x183)},PROMPT_FLAG={'name':a58_0x996ba(0x1a4),'type':a58_0x996ba(0x1ac),'required':!![],'description':a58_0x996ba(0x17e)},MODEL_FLAG={'name':a58_0x996ba(0x187),'type':a58_0x996ba(0x1ac),'enum':[a58_0x996ba(0x18b),a58_0x996ba(0x199),a58_0x996ba(0x1b4)],'default':a58_0x996ba(0x199),'description':a58_0x996ba(0x1a7)},SCHEDULE_ID_FLAG={'name':a58_0x996ba(0x18a),'type':a58_0x996ba(0x1ac),'required':!![],'description':a58_0x996ba(0x1bd),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0x996ba(0x181)}},LIMIT_FLAG={'name':a58_0x996ba(0x1c2),'type':a58_0x996ba(0x1c4),'default':0x14,'description':a58_0x996ba(0x1c0)},CURSOR_FLAG={'name':'cursor','type':'string','description':a58_0x996ba(0x1c6)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function a58_0x1601(){const _0x21a256=['9CmVHZm','limit','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','number','read','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Preview:\x20create\x20an\x20Agent\x20schedule','create','high-risk-write','Deleted\x20schedule\x20','CRON','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','/api/harness/apps/','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','length','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','title','Schedule\x20title','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','cursor','appCode','model','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','Schedule\x20input\x20is\x20valid','schedule-id','kimi/k3','ONCE','Preview:\x20delete\x20schedule\x20','cron','6942EwZbxg','1060194ZUyFcH','detail','str','delete','\x20immediately','37356vQhqBw','UTC','4345920QxiDtW','168394WOgcfN','deepseek-v4-flash-0731','description','kind','\x20from\x20schedule\x20','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','Show\x20one\x20schedule\x20by\x20schedule\x20ID','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','scheduled-at','scheduleId','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','prompt','validation','DELETE','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','build','POST','Schedule\x20kind:\x20CRON\x20or\x20ONCE','\x20schedule\x20','string','258755iLlMdd','1723088xOACcc','num','Queued\x20Task\x20','44AIific','list','Created\x20','deepseek-v4-pro-0813','run','7dJjHEf','--title\x20must\x20not\x20be\x20blank.','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','--prompt\x20must\x20not\x20be\x20blank.','body','schedule','isSafeInteger','Schedule\x20UUID','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','trim','Page\x20size\x20from\x201\x20to\x20100'];a58_0x1601=function(){return _0x21a256;};return a58_0x1601();}function readScheduleInput(_0x966dcc){const _0x34e33f=a58_0x996ba,_0x66ee47=_0x966dcc[_0x34e33f(0x192)]('kind'),_0xb66dca=_0x966dcc[_0x34e33f(0x192)](_0x34e33f(0x182))[_0x34e33f(0x1bf)](),_0xf7dacc=_0x966dcc[_0x34e33f(0x192)](_0x34e33f(0x1a4))['trim'](),_0x273c0f=_0x966dcc[_0x34e33f(0x192)](_0x34e33f(0x187)),_0x58bcdf=_0x966dcc[_0x34e33f(0x192)]('cron'),_0x3ee051=_0x966dcc[_0x34e33f(0x192)](_0x34e33f(0x1a1));if(!_0xb66dca)throw CliErrors[_0x34e33f(0x1a5)](_0x34e33f(0x1b7));if(!_0xf7dacc)throw CliErrors[_0x34e33f(0x1a5)](_0x34e33f(0x1b9));if(_0x66ee47===_0x34e33f(0x17b)){if(!_0x58bcdf||_0x3ee051)throw CliErrors[_0x34e33f(0x1a5)](_0x34e33f(0x17f));return{'kind':_0x66ee47,'timezone':_0x34e33f(0x196),'cron':_0x58bcdf,'title':_0xb66dca,'prompt':_0xf7dacc,'model':_0x273c0f};}if(_0x66ee47===_0x34e33f(0x18c)){if(!_0x3ee051||_0x58bcdf)throw CliErrors[_0x34e33f(0x1a5)]('ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.');return{'kind':_0x66ee47,'timezone':_0x34e33f(0x196),'scheduledAt':_0x3ee051,'title':_0xb66dca,'prompt':_0xf7dacc,'model':_0x273c0f};}throw CliErrors[_0x34e33f(0x1a5)](_0x34e33f(0x184));}function scheduleCollectionPath(_0x3a47bf){const _0x426ab1=a58_0x996ba;return _0x426ab1(0x17d)+encodeURIComponent(_0x3a47bf)+'/schedules';}function scheduleItemPath(_0x5c2676,_0x26b4d2){return scheduleCollectionPath(_0x5c2676)+'/'+encodeURIComponent(_0x26b4d2);}const scheduleValidate={'service':a58_0x996ba(0x1bb),'command':'validate','description':a58_0x996ba(0x1b8),'risk':a58_0x996ba(0x1c5),'flags':INPUT_FLAGS,async 'validate'(_0x458374){readScheduleInput(_0x458374);},async 'execute'(_0x5a5022){const _0x508e71=a58_0x996ba,_0xf712b1=readScheduleInput(_0x5a5022),_0x45b484=await validateRuntimeSchedule(_0x5a5022[_0x508e71(0x186)],_0xf712b1);return{'ok':!![],'data':_0x45b484,'message':_0x508e71(0x189)};}},scheduleCreate={'service':a58_0x996ba(0x1bb),'command':a58_0x996ba(0x1c8),'description':a58_0x996ba(0x17c),'risk':a58_0x996ba(0x1c9),'confirmationDescription':a58_0x996ba(0x19f),'flags':INPUT_FLAGS,async 'validate'(_0x2cc96c){readScheduleInput(_0x2cc96c);},async 'execute'(_0x243efd){const _0x3ba4b3=a58_0x996ba,_0x18c032=readScheduleInput(_0x243efd),_0x3ce4b6=await validateRuntimeSchedule(_0x243efd[_0x3ba4b3(0x186)],_0x18c032),_0x3e05b5=await createRuntimeSchedule(_0x243efd[_0x3ba4b3(0x186)],_0x3ce4b6);return{'ok':!![],'data':_0x3e05b5,'message':_0x3ba4b3(0x1b3)+_0x3e05b5[_0x3ba4b3(0x19b)]+_0x3ba4b3(0x1ab)+_0x3e05b5[_0x3ba4b3(0x1a2)]};},async 'dryRun'(_0x50ac1e){const _0x374f0d=a58_0x996ba,_0x3158f4=readScheduleInput(_0x50ac1e);return dryRun('POST',scheduleCollectionPath(_0x50ac1e['appCode']))[_0x374f0d(0x1ba)](_0x3158f4)[_0x374f0d(0x19a)](_0x374f0d(0x1c7))[_0x374f0d(0x1a8)]();}},scheduleList={'service':a58_0x996ba(0x1bb),'command':a58_0x996ba(0x1b2),'description':a58_0x996ba(0x1be),'risk':a58_0x996ba(0x1c5),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x5597a6){const _0x325489=a58_0x996ba,_0x2a4644=_0x5597a6[_0x325489(0x1af)](_0x325489(0x1c2));if(!Number[_0x325489(0x1bc)](_0x2a4644)||_0x2a4644<0x1||_0x2a4644>0x64)throw CliErrors[_0x325489(0x1a5)]('--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.');const _0x32bbea=_0x5597a6[_0x325489(0x192)](_0x325489(0x185));if(_0x32bbea&&(_0x32bbea[_0x325489(0x180)]>0x400||_0x32bbea[_0x325489(0x1bf)]()!==_0x32bbea))throw CliErrors[_0x325489(0x1a5)](_0x325489(0x188));},async 'execute'(_0x4307e0){const _0x594485=a58_0x996ba,_0x47cf9e=_0x4307e0[_0x594485(0x192)](_0x594485(0x185)),_0x5f42b0=await listRuntimeSchedules(_0x4307e0[_0x594485(0x186)],{'kind':_0x4307e0['str'](_0x594485(0x19b)),'limit':_0x4307e0[_0x594485(0x1af)]('limit'),..._0x47cf9e?{'cursor':_0x47cf9e}:{}});return{'ok':!![],'data':_0x5f42b0};}},scheduleDetail={'service':'schedule','command':a58_0x996ba(0x191),'description':a58_0x996ba(0x19e),'risk':a58_0x996ba(0x1c5),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1ec006){const _0x1f2657=a58_0x996ba,_0x550d2e=await getRuntimeSchedule(_0x1ec006['appCode'],_0x1ec006[_0x1f2657(0x192)](_0x1f2657(0x18a)));return{'ok':!![],'data':_0x550d2e};}},scheduleRun={'service':a58_0x996ba(0x1bb),'command':a58_0x996ba(0x1b5),'description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':a58_0x996ba(0x1c9),'confirmationDescription':a58_0x996ba(0x19d),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x547e52){const _0x223e46=a58_0x996ba,_0xd190ff=_0x547e52[_0x223e46(0x192)](_0x223e46(0x18a)),_0xb0b119=await runRuntimeSchedule(_0x547e52[_0x223e46(0x186)],_0xd190ff);return{'ok':!![],'data':_0xb0b119,'message':_0x223e46(0x1b0)+_0xb0b119['taskId']+_0x223e46(0x19c)+_0xd190ff};},async 'dryRun'(_0x3458ce){const _0x27a862=a58_0x996ba,_0x36d104=_0x3458ce[_0x27a862(0x192)](_0x27a862(0x18a));return dryRun(_0x27a862(0x1a9),scheduleItemPath(_0x3458ce[_0x27a862(0x186)],_0x36d104)+'/run')[_0x27a862(0x19a)]('Preview:\x20run\x20schedule\x20'+_0x36d104+_0x27a862(0x194))[_0x27a862(0x1a8)]();}},scheduleDelete={'service':a58_0x996ba(0x1bb),'command':a58_0x996ba(0x193),'description':a58_0x996ba(0x1a0),'risk':a58_0x996ba(0x1c9),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1473b8){const _0x20862d=a58_0x996ba,_0x28cf97=_0x1473b8[_0x20862d(0x192)](_0x20862d(0x18a)),_0x4c6513=await deleteRuntimeSchedule(_0x1473b8[_0x20862d(0x186)],_0x28cf97);return{'ok':!![],'data':_0x4c6513,'message':_0x20862d(0x17a)+_0x28cf97};},async 'dryRun'(_0x167e0e){const _0x1a2d3e=a58_0x996ba,_0x1cf759=_0x167e0e[_0x1a2d3e(0x192)](_0x1a2d3e(0x18a));return dryRun(_0x1a2d3e(0x1a6),scheduleItemPath(_0x167e0e['appCode'],_0x1cf759))['description'](_0x1a2d3e(0x18d)+_0x1cf759)[_0x1a2d3e(0x1a8)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
@@ -1 +1 @@
1
- const a59_0x40bc20=a59_0x24cb;(function(_0x242bcc,_0x49b39c){const _0x2c16d5=a59_0x24cb,_0xdcc754=_0x242bcc();while(!![]){try{const _0x2638c2=-parseInt(_0x2c16d5(0x191))/0x1+-parseInt(_0x2c16d5(0x197))/0x2+-parseInt(_0x2c16d5(0x194))/0x3+-parseInt(_0x2c16d5(0x196))/0x4+-parseInt(_0x2c16d5(0x193))/0x5+-parseInt(_0x2c16d5(0x195))/0x6+parseInt(_0x2c16d5(0x190))/0x7;if(_0x2638c2===_0x49b39c)break;else _0xdcc754['push'](_0xdcc754['shift']());}catch(_0x33e5ce){_0xdcc754['push'](_0xdcc754['shift']());}}}(a59_0x1344,0xa6286));function a59_0x24cb(_0x505362,_0x3555a6){_0x505362=_0x505362-0x190;const _0x13447c=a59_0x1344();let _0x24cb86=_0x13447c[_0x505362];return _0x24cb86;}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0xc27964){const _0x422441=await buildSchemaPayload();return{'ok':!![],'data':_0x422441};}function a59_0x1344(){const _0x1d5974=['849617UXIikB','schema','4103420KEJUns','2655078LNUcEv','4628286tgaWjX','2506052iBHPmS','2335888qeIILf','40612229sjLnOb'];a59_0x1344=function(){return _0x1d5974;};return a59_0x1344();}export const schemaDefinition={'service':a59_0x40bc20(0x192),'command':'export','description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
1
+ function a59_0x3c8d(_0x763320,_0x2f9f0e){_0x763320=_0x763320-0x185;const _0x2415fa=a59_0x2415();let _0x3c8dc8=_0x2415fa[_0x763320];return _0x3c8dc8;}function a59_0x2415(){const _0x426a07=['52970HuKyhv','367ulcLdg','3MIDXBe','1719396dgQkln','579688lBQcYS','873BndxoR','Export\x20machine-readable\x20command\x20schema\x20(JSON)','export','23472aOZKOM','43352gtvgxc','271640YwPdZp','schema','592fKuhHw','read'];a59_0x2415=function(){return _0x426a07;};return a59_0x2415();}const a59_0x1a4d30=a59_0x3c8d;(function(_0x534383,_0xd3812f){const _0x59465e=a59_0x3c8d,_0x5a62dc=_0x534383();while(!![]){try{const _0x2e1cbf=-parseInt(_0x59465e(0x191))/0x1*(parseInt(_0x59465e(0x18e))/0x2)+parseInt(_0x59465e(0x192))/0x3*(parseInt(_0x59465e(0x186))/0x4)+parseInt(_0x59465e(0x18c))/0x5+-parseInt(_0x59465e(0x18a))/0x6+-parseInt(_0x59465e(0x185))/0x7+parseInt(_0x59465e(0x18b))/0x8*(parseInt(_0x59465e(0x187))/0x9)+-parseInt(_0x59465e(0x190))/0xa;if(_0x2e1cbf===_0xd3812f)break;else _0x5a62dc['push'](_0x5a62dc['shift']());}catch(_0x323a37){_0x5a62dc['push'](_0x5a62dc['shift']());}}}(a59_0x2415,0x583d0));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x5ea99e){const _0x4950ed=await buildSchemaPayload();return{'ok':!![],'data':_0x4950ed};}export const schemaDefinition={'service':a59_0x1a4d30(0x18d),'command':a59_0x1a4d30(0x189),'description':a59_0x1a4d30(0x188),'risk':a59_0x1a4d30(0x18f),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
1
- (function(_0x2e6ff5,_0x274423){const _0x4c2854=a60_0x24a8,_0x352f98=_0x2e6ff5();while(!![]){try{const _0x43ecbc=-parseInt(_0x4c2854(0x21d))/0x1+-parseInt(_0x4c2854(0x1de))/0x2*(parseInt(_0x4c2854(0x1e4))/0x3)+parseInt(_0x4c2854(0x205))/0x4*(parseInt(_0x4c2854(0x1ba))/0x5)+-parseInt(_0x4c2854(0x1f1))/0x6+-parseInt(_0x4c2854(0x1ee))/0x7*(parseInt(_0x4c2854(0x209))/0x8)+-parseInt(_0x4c2854(0x1ea))/0x9*(parseInt(_0x4c2854(0x1bd))/0xa)+parseInt(_0x4c2854(0x1c1))/0xb;if(_0x43ecbc===_0x274423)break;else _0x352f98['push'](_0x352f98['shift']());}catch(_0x200f36){_0x352f98['push'](_0x352f98['shift']());}}}(a60_0x4de0,0x37c97));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x5e6bb7,_0x8ee7da){const _0x51ef0a=a60_0x24a8,_0x3bec3e=listLocalServiceTrees();let _0x2b7bc1;for(const _0x14c6c9 of _0x3bec3e){const _0x5274d6=matchServiceTreeCommand(_0x14c6c9,_0x5e6bb7);if(!_0x5274d6)continue;(!_0x2b7bc1||_0x5274d6[_0x51ef0a(0x1d9)][_0x51ef0a(0x1c2)]['length']>_0x2b7bc1[_0x51ef0a(0x1d9)]['fullPath']['length'])&&(_0x2b7bc1={'tree':_0x14c6c9,'command':_0x5274d6[_0x51ef0a(0x1d9)],'remainingArgs':_0x5274d6[_0x51ef0a(0x1e7)]});}if(!_0x2b7bc1)return undefined;const _0x11afcc={..._0x8ee7da};return applyAppBinding(_0x2b7bc1['tree'],_0x2b7bc1[_0x51ef0a(0x1d9)],_0x11afcc),{'definition':buildDynamicCommandDefinition(_0x2b7bc1['tree'],_0x2b7bc1[_0x51ef0a(0x1d9)]),'args':_0x2b7bc1[_0x51ef0a(0x1e7)],'flags':_0x11afcc,'tree':_0x2b7bc1[_0x51ef0a(0x21c)],'command':_0x2b7bc1['command']};}function a60_0x4de0(){const _0x43cfc2=['risk','flatMap','1785028QqxhoO','normalizedManifest','context.','1521900yuvAAf','number','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','join','nickName','scriptName','description','required','startsWith','Run\x20service\x20command\x20','trim','\x20\x20SERVICE\x20TREE\x20TARGET','Unknown\x20appRef\x20\x22','cliPath','username','Use\x20`','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','name','\x20\x20\x20\x20datatable:\x20','nickname','121372pqnyMd','datasetCode','boolean','appCode','8kLsGDA','read','tableName','high-risk-write','entries','\x22.\x20','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','sqlCode','userName','padEnd','length','tenantCode','source','type','map','envName','\x20\x20\x20\x20command:\x20','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20\x20\x20','tree','380035ESkkxq','commands','mapTo','service','filter','\x20\x20\x20\x20sqlCode:\x20','args','\x20\x20MAP\x20TO','string','push','\x20service\x20detail\x20--service\x20','default','5YufbAj','bffId','rawFlags','1780sxueBL','app','now','datatable','14692392UHTbUq','fullPath','target','find','employeeId','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','some','Commands:','fromEntries','operator','ctx.','dbtableConfig','env','\x20\x20\x20\x20functionName:\x20','kind','\x20\x20[','data','cliName','bff','appRef','\x22\x20in\x20service\x20command\x20','flags','enum','\x20requires\x20target.functionName.','command','\x20requires\x20target.sqlCode.','appcode','validation','\x20\x20\x20\x20datasetCode:\x20','10xLAOmV','SERVICE_TREE','Preview\x20dynamic\x20service\x20command:\x20','params','bffCode','code','39183rhvDvJ','`\x20to\x20inspect\x20the\x20manifest.','\x20\x20\x20\x20kind:\x20\x20\x20\x20','remainingArgs','Service\x20command\x20','const','9279LLCzpi','slice'];a60_0x4de0=function(){return _0x43cfc2;};return a60_0x4de0();}export function generateDynamicServiceHelp(_0x1ec305){const _0x2046a2=a60_0x24a8,_0x2c9fab=listLocalServiceTrees()[_0x2046a2(0x1c4)](_0x314028=>_0x314028[_0x2046a2(0x220)][_0x2046a2(0x1e3)]===_0x1ec305);if(!_0x2c9fab)return undefined;const _0x553bd2=[CLI_BIN_NAME+'\x20'+_0x1ec305+'\x20<command>\x20[flags]','',_0x2c9fab[_0x2046a2(0x220)][_0x2046a2(0x202)]||_0x1ec305,_0x2c9fab[_0x2046a2(0x220)]['description']?'\x20\x20'+_0x2c9fab[_0x2046a2(0x220)]['description']:'','',_0x2046a2(0x1c8),..._0x2c9fab['commands'][_0x2046a2(0x217)](_0x4217c0=>{const _0xf77f9d=_0x2046a2,_0x25ae83=_0x4217c0[_0xf77f9d(0x1c2)][_0xf77f9d(0x1eb)](0x1)[_0xf77f9d(0x1f4)]('\x20'),_0x318d67=_0x4217c0[_0xf77f9d(0x1ec)]===_0xf77f9d(0x20a)?'':'\x20['+_0x4217c0[_0xf77f9d(0x1ec)]+']';return'\x20\x20'+_0x25ae83[_0xf77f9d(0x212)](0x18)+'\x20'+(_0x4217c0[_0xf77f9d(0x1f7)]||'')+_0x318d67;}),'',_0x2046a2(0x200)+CLI_BIN_NAME+_0x2046a2(0x1b8)+_0x1ec305+_0x2046a2(0x1e5)]['filter'](Boolean);return _0x553bd2[_0x2046a2(0x1f4)]('\x0a');}export function listDynamicServiceEntries(){const _0x30b5c6=a60_0x24a8;return listLocalServices()[_0x30b5c6(0x217)](_0x3dbcfd=>{const _0x3a3075=_0x30b5c6,_0x3bac75=_0x3dbcfd[_0x3a3075(0x1ef)];return{'service':_0x3bac75[_0x3a3075(0x220)]['code'],'label':_0x3bac75[_0x3a3075(0x220)][_0x3a3075(0x202)]||_0x3bac75[_0x3a3075(0x220)][_0x3a3075(0x1e3)],'commands':_0x3bac75[_0x3a3075(0x21e)][_0x3a3075(0x217)](_0x1d1be6=>({'command':dynamicCommandName(_0x1d1be6),'description':_0x1d1be6[_0x3a3075(0x1f7)]||'Run\x20service\x20command\x20'+_0x1d1be6['cliPath'],'tag':riskTag(_0x1d1be6[_0x3a3075(0x1ec)])}))};});}export function getDynamicServiceEntry(_0x2786b7){const _0x570a94=a60_0x24a8;return listDynamicServiceEntries()[_0x570a94(0x1c4)](_0x19d291=>_0x19d291['service']===_0x2786b7);}export function listDynamicServiceDefinitions(_0x5e5116){const _0x2b727d=a60_0x24a8;return listLocalServiceTrees()[_0x2b727d(0x221)](_0x443a8f=>!_0x5e5116||_0x443a8f[_0x2b727d(0x220)][_0x2b727d(0x1e3)]===_0x5e5116)[_0x2b727d(0x1ed)](_0x48eadc=>_0x48eadc[_0x2b727d(0x21e)]['map'](_0x377d59=>buildDynamicCommandDefinition(_0x48eadc,_0x377d59)));}export function getDynamicServiceDefinitions(_0x4824bc){const _0x1dfd4f=a60_0x24a8,_0x136930=listDynamicServiceDefinitions(_0x4824bc);return _0x136930[_0x1dfd4f(0x213)]>0x0?_0x136930:undefined;}function a60_0x24a8(_0x5dc525,_0x4c651f){_0x5dc525=_0x5dc525-0x1b5;const _0x4de0b2=a60_0x4de0();let _0x24a85a=_0x4de0b2[_0x5dc525];return _0x24a85a;}export function findDynamicServiceDefinition(_0x2a5059,_0x2f7c9d){const _0xf4c7c5=a60_0x24a8;return listDynamicServiceDefinitions(_0x2a5059)['find'](_0x37bcd1=>_0x37bcd1[_0xf4c7c5(0x1d9)]===_0x2f7c9d);}export function buildDynamicCommandDefinition(_0x2b64fb,_0x1c64f4){const _0x5e376c=a60_0x24a8;return{'service':_0x2b64fb[_0x5e376c(0x220)]['code'],'command':dynamicCommandName(_0x1c64f4),'description':_0x1c64f4['description']||_0x5e376c(0x1fa)+_0x1c64f4['cliPath'],'risk':_0x1c64f4[_0x5e376c(0x1ec)],..._0x1c64f4[_0x5e376c(0x1ec)]===_0x5e376c(0x20a)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x1c64f4)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x1c64f4[_0x5e376c(0x223)][_0x5e376c(0x217)](_0xa201e2=>({'name':_0xa201e2[_0x5e376c(0x202)],'description':_0xa201e2[_0x5e376c(0x1f7)]||_0xa201e2[_0x5e376c(0x202)],'required':_0xa201e2[_0x5e376c(0x1f8)]})),'flags':_0x1c64f4[_0x5e376c(0x1d6)][_0x5e376c(0x217)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x1c64f4),async 'dryRun'(_0x27bda0){const _0x2efdea=_0x5e376c,_0xd9d031=await compilePlan(_0x1c64f4,_0x27bda0);return{'method':_0x2efdea(0x1df),'url':_0x1c64f4['cliPath'],'body':{'target':targetPreview(_0xd9d031),'params':_0xd9d031['params']},'description':_0x2efdea(0x1e0)+_0x1c64f4[_0x2efdea(0x1fe)]};},async 'execute'(_0x22bf17){const _0x5ecf57=_0x5e376c,_0x3e3825=await compilePlan(_0x1c64f4,_0x22bf17),_0x31b3a1=Date[_0x5ecf57(0x1bf)](),_0x1a7589=await executePlan(_0x3e3825,_0x1c64f4,_0x22bf17),_0x185acb=Date['now']()-_0x31b3a1;return{'ok':!![],'data':{'service':_0x2b64fb[_0x5ecf57(0x220)],'command':_0x1c64f4[_0x5ecf57(0x1fe)],'target':targetPreview(_0x3e3825),'result':_0x1a7589,'elapsed':_0x185acb},'message':'Service\x20command\x20'+_0x1c64f4[_0x5ecf57(0x1fe)]+'\x20completed\x20in\x20'+_0x185acb+'ms'};}};}function buildDynamicConfirmationDescription(_0x5c9c4b){const _0x9c73c7=a60_0x24a8,_0x5c7b77=_0x5c9c4b[_0x9c73c7(0x1f7)]||_0x5c9c4b[_0x9c73c7(0x1fe)],_0x216817=_0x5c9c4b[_0x9c73c7(0x1ec)]===_0x9c73c7(0x20c)?_0x9c73c7(0x201):'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.';return _0x9c73c7(0x1f3)+_0x5c7b77+_0x9c73c7(0x20e)+_0x216817;}function dynamicCommandName(_0x5d4ece){const _0x516dec=a60_0x24a8;return _0x5d4ece[_0x516dec(0x1c2)][_0x516dec(0x1eb)](0x1)[_0x516dec(0x1f4)]('\x20');}function riskTag(_0x288c83){const _0xdc0e5f=a60_0x24a8;return _0x288c83===_0xdc0e5f(0x20a)?'':_0xdc0e5f(0x1d0)+_0x288c83+']';}function flagToCommandFlag(_0x5318ef){const _0x33df50=a60_0x24a8;return{'name':_0x5318ef[_0x33df50(0x1d2)],'type':_0x5318ef[_0x33df50(0x216)]==='json'?'string':_0x5318ef[_0x33df50(0x216)],'description':_0x5318ef['description']||_0x5318ef[_0x33df50(0x202)],'required':_0x5318ef[_0x33df50(0x1f8)],'default':isPrimitiveFlagDefault(_0x5318ef[_0x33df50(0x1b9)])?_0x5318ef[_0x33df50(0x1b9)]:undefined,'enum':_0x5318ef[_0x33df50(0x1d7)]};}async function compilePlan(_0x1b0df4,_0x13c0f4){const _0x203735=a60_0x24a8;return compileServiceTreeCommand(_0x1b0df4,{'flags':_0x13c0f4[_0x203735(0x1bc)],'args':_0x13c0f4[_0x203735(0x223)],'context':await buildServiceContext(_0x1b0df4,_0x13c0f4)});}async function buildServiceContext(_0x196756,_0x354ec9){const _0x48fb4e=a60_0x24a8,_0x44fab6={'appCode':_0x354ec9['appCode'],'env':_0x354ec9[_0x48fb4e(0x218)],'envName':_0x354ec9[_0x48fb4e(0x218)]};if(!usesRuntimeContext(_0x196756))return _0x44fab6;const _0x3a3968=await getLoginUserInfo(),_0x305f92=pickFirst(_0x3a3968['userId'],_0x3a3968['id']);return{..._0x44fab6,'user':_0x3a3968,'userId':_0x305f92,'id':_0x3a3968['id'],'username':pickFirst(_0x3a3968[_0x48fb4e(0x1ff)],_0x3a3968[_0x48fb4e(0x211)],_0x3a3968['loginName']),'userName':_0x3a3968[_0x48fb4e(0x211)],'nickname':pickFirst(_0x3a3968[_0x48fb4e(0x204)],_0x3a3968[_0x48fb4e(0x1f5)]),'nickName':_0x3a3968[_0x48fb4e(0x1f5)],'tenantCode':_0x3a3968[_0x48fb4e(0x214)],'employeeId':_0x3a3968[_0x48fb4e(0x1c5)]};}function usesRuntimeContext(_0x442970){const _0x5062d2=a60_0x24a8;return _0x442970[_0x5062d2(0x21f)][_0x5062d2(0x1c7)](_0x405c54=>typeof _0x405c54['source']==='string'&&(_0x405c54[_0x5062d2(0x215)][_0x5062d2(0x1f9)](_0x5062d2(0x1f0))||_0x405c54[_0x5062d2(0x215)]['startsWith'](_0x5062d2(0x1cb))));}function pickFirst(..._0x4cabdf){const _0xda4169=a60_0x24a8;return _0x4cabdf[_0xda4169(0x1c4)](_0x5b68ce=>_0x5b68ce!==undefined&&_0x5b68ce!==null);}async function executePlan(_0x5df072,_0xa7d494,_0x4435b2){const _0x281938=a60_0x24a8;if(_0x5df072[_0x281938(0x1cf)]===_0x281938(0x1d1)){const _0x3a951e=await resolveDatasetCode(_0x5df072,_0xa7d494,_0x4435b2);return executeData(_0x3a951e,_0x5df072[_0x281938(0x1d9)],_0x5df072[_0x281938(0x1e1)]);}if(_0x5df072[_0x281938(0x1cf)]==='sql'){if(!_0x5df072[_0x281938(0x210)])throw CliErrors['validation']('Service\x20command\x20'+_0xa7d494[_0x281938(0x1fe)]+_0x281938(0x1da));return executeSdkSql(_0x5df072[_0x281938(0x210)],normalizeScalarParams(_0x5df072[_0x281938(0x1e1)]));}if(_0x5df072[_0x281938(0x1cf)]===_0x281938(0x1d3)){const _0x19eaa0=_0x5df072[_0x281938(0x1f6)]||_0x5df072[_0x281938(0x1e2)]||(_0x5df072[_0x281938(0x1bb)]==null?'':String(_0x5df072[_0x281938(0x1bb)]));if(!_0x19eaa0)throw CliErrors[_0x281938(0x1dc)]('Service\x20command\x20'+_0xa7d494['cliPath']+_0x281938(0x1d8));return executeSdkBff(_0x19eaa0,_0x5df072[_0x281938(0x1e1)]);}throw CliErrors[_0x281938(0x1dc)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x5df072[_0x281938(0x1cf)]);}async function resolveDatasetCode(_0x2d5272,_0x1e0539,_0x2f1fe2){const _0x2be205=a60_0x24a8;if(_0x2d5272[_0x2be205(0x206)])return _0x2d5272['datasetCode'];if(!_0x2d5272['datatable'])throw CliErrors[_0x2be205(0x1dc)](_0x2be205(0x1e8)+_0x1e0539['cliPath']+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x381aa7=await listDatasets(_0x2f1fe2['appCode']),_0x16f5d2=_0x381aa7['find'](_0x4822c1=>_0x4822c1[_0x2be205(0x1cc)]?.[_0x2be205(0x20b)]===_0x2d5272['datatable']);if(!_0x16f5d2?.['code'])throw CliErrors['validation']('Cannot\x20resolve\x20datatable\x20\x22'+_0x2d5272['datatable']+_0x2be205(0x20f)+_0x2f1fe2[_0x2be205(0x208)]+'.',_0x2be205(0x21a));return _0x16f5d2[_0x2be205(0x1e3)];}function applyAppBinding(_0x1c77f1,_0x2ca310,_0x31def9){const _0x3f07b=a60_0x24a8,_0x37a25c=_0x2ca310[_0x3f07b(0x1c3)][_0x3f07b(0x1d4)];if(!_0x37a25c)return;const _0xe1931=_0x1c77f1['appBindings'][_0x37a25c];if(!_0xe1931)throw CliErrors[_0x3f07b(0x1dc)](_0x3f07b(0x1fd)+_0x37a25c+_0x3f07b(0x1d5)+_0x2ca310[_0x3f07b(0x1fe)]+'.',_0x3f07b(0x1c6));const _0x3a3491=_0xe1931[_0x3f07b(0x1db)]||_0xe1931['appCode'];_0x3a3491&&!hasText(_0x31def9['appcode'])&&(_0x31def9[_0x3f07b(0x1db)]=_0x3a3491),_0xe1931[_0x3f07b(0x1be)]&&!hasText(_0x31def9[_0x3f07b(0x1be)])&&!hasText(_0x31def9[_0x3f07b(0x1db)])&&(_0x31def9['app']=_0xe1931[_0x3f07b(0x1be)]),_0xe1931[_0x3f07b(0x1cd)]&&!hasText(_0x31def9[_0x3f07b(0x1cd)])&&(_0x31def9[_0x3f07b(0x1cd)]=_0xe1931[_0x3f07b(0x1cd)]);}function renderDynamicCommandHelp(_0x39e431){const _0x59dfc6=a60_0x24a8,_0x34b5c2=[_0x59dfc6(0x1fc),_0x59dfc6(0x1e6)+_0x39e431[_0x59dfc6(0x1c3)][_0x59dfc6(0x1cf)],_0x59dfc6(0x219)+_0x39e431[_0x59dfc6(0x1c3)][_0x59dfc6(0x1d9)]];if(_0x39e431['target'][_0x59dfc6(0x206)])_0x34b5c2['push'](_0x59dfc6(0x1dd)+_0x39e431[_0x59dfc6(0x1c3)]['datasetCode']);if(_0x39e431[_0x59dfc6(0x1c3)]['datatable'])_0x34b5c2[_0x59dfc6(0x1b7)](_0x59dfc6(0x203)+_0x39e431[_0x59dfc6(0x1c3)][_0x59dfc6(0x1c0)]);if(_0x39e431[_0x59dfc6(0x1c3)][_0x59dfc6(0x210)])_0x34b5c2[_0x59dfc6(0x1b7)](_0x59dfc6(0x222)+_0x39e431[_0x59dfc6(0x1c3)][_0x59dfc6(0x210)]);if(_0x39e431['target'][_0x59dfc6(0x1f6)])_0x34b5c2['push'](_0x59dfc6(0x1ce)+_0x39e431['target'][_0x59dfc6(0x1f6)]);if(_0x39e431[_0x59dfc6(0x21f)][_0x59dfc6(0x213)]>0x0){_0x34b5c2[_0x59dfc6(0x1b7)]('',_0x59dfc6(0x1b5));for(const _0x24f0a6 of _0x39e431[_0x59dfc6(0x21f)]){_0x34b5c2[_0x59dfc6(0x1b7)](_0x59dfc6(0x21b)+(_0x24f0a6[_0x59dfc6(0x215)]||_0x59dfc6(0x1e9))+'\x20->\x20'+_0x24f0a6[_0x59dfc6(0x1c3)]+(_0x24f0a6[_0x59dfc6(0x1ca)]?'.'+_0x24f0a6['operator']:''));}}return _0x34b5c2[_0x59dfc6(0x1f4)]('\x0a');}function targetPreview(_0x1114bd){const _0x3cedab=a60_0x24a8;return{'kind':_0x1114bd['kind'],'command':_0x1114bd[_0x3cedab(0x1d9)],'appRef':_0x1114bd[_0x3cedab(0x1d4)],'datasetCode':_0x1114bd[_0x3cedab(0x206)],'datatable':_0x1114bd[_0x3cedab(0x1c0)],'sqlCode':_0x1114bd[_0x3cedab(0x210)],'bffCode':_0x1114bd['bffCode'],'bffId':_0x1114bd[_0x3cedab(0x1bb)],'functionName':_0x1114bd['scriptName']};}function normalizeScalarParams(_0x386378){const _0x29083f=a60_0x24a8;return Object[_0x29083f(0x1c9)](Object[_0x29083f(0x20d)](_0x386378)['filter'](([,_0x3f79ee])=>typeof _0x3f79ee===_0x29083f(0x1b6)||typeof _0x3f79ee===_0x29083f(0x1f2)));}function hasText(_0x51146a){const _0x7dce63=a60_0x24a8;return typeof _0x51146a===_0x7dce63(0x1b6)&&_0x51146a[_0x7dce63(0x1fb)]()[_0x7dce63(0x213)]>0x0;}function isPrimitiveFlagDefault(_0x3856e9){const _0x4c0a53=a60_0x24a8;return _0x3856e9===undefined||typeof _0x3856e9===_0x4c0a53(0x1b6)||typeof _0x3856e9==='number'||typeof _0x3856e9===_0x4c0a53(0x207);}
1
+ (function(_0x2d3fb0,_0xd9cffb){const _0x442fd5=a60_0x3b52,_0x4cfb4a=_0x2d3fb0();while(!![]){try{const _0x4fb6a7=parseInt(_0x442fd5(0x1b8))/0x1+-parseInt(_0x442fd5(0x186))/0x2*(-parseInt(_0x442fd5(0x1d0))/0x3)+parseInt(_0x442fd5(0x1e8))/0x4+parseInt(_0x442fd5(0x1c8))/0x5+parseInt(_0x442fd5(0x1ab))/0x6+parseInt(_0x442fd5(0x184))/0x7*(-parseInt(_0x442fd5(0x1b7))/0x8)+-parseInt(_0x442fd5(0x185))/0x9*(parseInt(_0x442fd5(0x183))/0xa);if(_0x4fb6a7===_0xd9cffb)break;else _0x4cfb4a['push'](_0x4cfb4a['shift']());}catch(_0x3f2123){_0x4cfb4a['push'](_0x4cfb4a['shift']());}}}(a60_0x4caa,0x7e1e8));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(_0x45bd5b,_0x56a968){const _0x1fee85=a60_0x3b52,_0x549954=listLocalServiceTrees();let _0x54bb06;for(const _0x9a4e3a of _0x549954){const _0x31b596=matchServiceTreeCommand(_0x9a4e3a,_0x45bd5b);if(!_0x31b596)continue;(!_0x54bb06||_0x31b596[_0x1fee85(0x1d4)][_0x1fee85(0x1cf)][_0x1fee85(0x1c9)]>_0x54bb06[_0x1fee85(0x1d4)][_0x1fee85(0x1cf)]['length'])&&(_0x54bb06={'tree':_0x9a4e3a,'command':_0x31b596[_0x1fee85(0x1d4)],'remainingArgs':_0x31b596[_0x1fee85(0x1a9)]});}if(!_0x54bb06)return undefined;const _0x2276ad={..._0x56a968};return applyAppBinding(_0x54bb06[_0x1fee85(0x1c4)],_0x54bb06[_0x1fee85(0x1d4)],_0x2276ad),{'definition':buildDynamicCommandDefinition(_0x54bb06[_0x1fee85(0x1c4)],_0x54bb06[_0x1fee85(0x1d4)]),'args':_0x54bb06[_0x1fee85(0x1a9)],'flags':_0x2276ad,'tree':_0x54bb06[_0x1fee85(0x1c4)],'command':_0x54bb06[_0x1fee85(0x1d4)]};}export function generateDynamicServiceHelp(_0x1613d2){const _0x281ad6=a60_0x3b52,_0x2b5e8b=listLocalServiceTrees()[_0x281ad6(0x19c)](_0x1c392a=>_0x1c392a[_0x281ad6(0x1e2)]['code']===_0x1613d2);if(!_0x2b5e8b)return undefined;const _0x3781e3=[CLI_BIN_NAME+'\x20'+_0x1613d2+'\x20<command>\x20[flags]','',_0x2b5e8b['service'][_0x281ad6(0x1c0)]||_0x1613d2,_0x2b5e8b[_0x281ad6(0x1e2)][_0x281ad6(0x1d6)]?'\x20\x20'+_0x2b5e8b[_0x281ad6(0x1e2)][_0x281ad6(0x1d6)]:'','','Commands:',..._0x2b5e8b[_0x281ad6(0x1aa)][_0x281ad6(0x191)](_0x11c7c0=>{const _0x498166=_0x281ad6,_0x2c7759=_0x11c7c0[_0x498166(0x1cf)]['slice'](0x1)[_0x498166(0x19a)]('\x20'),_0x6f046e=_0x11c7c0['risk']===_0x498166(0x1d1)?'':'\x20['+_0x11c7c0[_0x498166(0x19e)]+']';return'\x20\x20'+_0x2c7759[_0x498166(0x190)](0x18)+'\x20'+(_0x11c7c0[_0x498166(0x1d6)]||'')+_0x6f046e;}),'',_0x281ad6(0x1a6)+CLI_BIN_NAME+_0x281ad6(0x18f)+_0x1613d2+_0x281ad6(0x1af)]['filter'](Boolean);return _0x3781e3[_0x281ad6(0x19a)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x1b64e4=>{const _0x2e765b=a60_0x3b52,_0x15d912=_0x1b64e4[_0x2e765b(0x1c2)];return{'service':_0x15d912[_0x2e765b(0x1e2)][_0x2e765b(0x192)],'label':_0x15d912[_0x2e765b(0x1e2)][_0x2e765b(0x1c0)]||_0x15d912[_0x2e765b(0x1e2)][_0x2e765b(0x192)],'commands':_0x15d912['commands'][_0x2e765b(0x191)](_0x52e941=>({'command':dynamicCommandName(_0x52e941),'description':_0x52e941['description']||_0x2e765b(0x1e1)+_0x52e941[_0x2e765b(0x194)],'tag':riskTag(_0x52e941[_0x2e765b(0x19e)])}))};});}export function getDynamicServiceEntry(_0x14eb1b){const _0x2775ea=a60_0x3b52;return listDynamicServiceEntries()[_0x2775ea(0x19c)](_0x44e87d=>_0x44e87d[_0x2775ea(0x1e2)]===_0x14eb1b);}function a60_0x3b52(_0x32c270,_0x2f642c){_0x32c270=_0x32c270-0x182;const _0x4caa83=a60_0x4caa();let _0x3b5288=_0x4caa83[_0x32c270];return _0x3b5288;}export function listDynamicServiceDefinitions(_0x45c7e5){const _0x47ff5b=a60_0x3b52;return listLocalServiceTrees()[_0x47ff5b(0x1d9)](_0x260f0a=>!_0x45c7e5||_0x260f0a[_0x47ff5b(0x1e2)][_0x47ff5b(0x192)]===_0x45c7e5)[_0x47ff5b(0x188)](_0x36f435=>_0x36f435[_0x47ff5b(0x1aa)]['map'](_0x4b746b=>buildDynamicCommandDefinition(_0x36f435,_0x4b746b)));}export function getDynamicServiceDefinitions(_0x28e8f0){const _0x1c4c2d=a60_0x3b52,_0xf6fba6=listDynamicServiceDefinitions(_0x28e8f0);return _0xf6fba6[_0x1c4c2d(0x1c9)]>0x0?_0xf6fba6:undefined;}export function findDynamicServiceDefinition(_0x52d8bb,_0x4b77f3){const _0x3d7070=a60_0x3b52;return listDynamicServiceDefinitions(_0x52d8bb)[_0x3d7070(0x19c)](_0xb6c06e=>_0xb6c06e[_0x3d7070(0x1d4)]===_0x4b77f3);}export function buildDynamicCommandDefinition(_0x421d73,_0x5e977d){const _0x1a82d8=a60_0x3b52;return{'service':_0x421d73[_0x1a82d8(0x1e2)]['code'],'command':dynamicCommandName(_0x5e977d),'description':_0x5e977d[_0x1a82d8(0x1d6)]||'Run\x20service\x20command\x20'+_0x5e977d[_0x1a82d8(0x194)],'risk':_0x5e977d[_0x1a82d8(0x19e)],..._0x5e977d['risk']===_0x1a82d8(0x1d1)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x5e977d)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x5e977d[_0x1a82d8(0x1bf)][_0x1a82d8(0x191)](_0x59abf9=>({'name':_0x59abf9[_0x1a82d8(0x1c0)],'description':_0x59abf9[_0x1a82d8(0x1d6)]||_0x59abf9[_0x1a82d8(0x1c0)],'required':_0x59abf9[_0x1a82d8(0x19b)]})),'flags':_0x5e977d[_0x1a82d8(0x1c7)][_0x1a82d8(0x191)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x5e977d),async 'dryRun'(_0x1f9e7c){const _0x318867=_0x1a82d8,_0x5b0f99=await compilePlan(_0x5e977d,_0x1f9e7c);return{'method':'SERVICE_TREE','url':_0x5e977d[_0x318867(0x194)],'body':{'target':targetPreview(_0x5b0f99),'params':_0x5b0f99[_0x318867(0x1c6)]},'description':_0x318867(0x1a8)+_0x5e977d['cliPath']};},async 'execute'(_0xa3c8d){const _0x34f823=_0x1a82d8,_0x41e0ee=await compilePlan(_0x5e977d,_0xa3c8d),_0x49547a=Date[_0x34f823(0x1b5)](),_0x50e376=await executePlan(_0x41e0ee,_0x5e977d,_0xa3c8d),_0xee85ea=Date[_0x34f823(0x1b5)]()-_0x49547a;return{'ok':!![],'data':{'service':_0x421d73[_0x34f823(0x1e2)],'command':_0x5e977d[_0x34f823(0x194)],'target':targetPreview(_0x41e0ee),'result':_0x50e376,'elapsed':_0xee85ea},'message':_0x34f823(0x1d5)+_0x5e977d[_0x34f823(0x194)]+_0x34f823(0x1a5)+_0xee85ea+'ms'};}};}function buildDynamicConfirmationDescription(_0x4d27fd){const _0x2a22c9=a60_0x3b52,_0x5cc3f7=_0x4d27fd[_0x2a22c9(0x1d6)]||_0x4d27fd[_0x2a22c9(0x194)],_0x9b616a=_0x4d27fd['risk']==='high-risk-write'?'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 _0x2a22c9(0x1c3)+_0x5cc3f7+_0x2a22c9(0x1c1)+_0x9b616a;}function dynamicCommandName(_0x184353){const _0x266e64=a60_0x3b52;return _0x184353[_0x266e64(0x1cf)][_0x266e64(0x1b1)](0x1)[_0x266e64(0x19a)]('\x20');}function riskTag(_0x2fe4ea){const _0x232ab9=a60_0x3b52;return _0x2fe4ea===_0x232ab9(0x1d1)?'':_0x232ab9(0x1ba)+_0x2fe4ea+']';}function flagToCommandFlag(_0x9f5f66){const _0x676c8a=a60_0x3b52;return{'name':_0x9f5f66[_0x676c8a(0x19d)],'type':_0x9f5f66[_0x676c8a(0x1dc)]===_0x676c8a(0x1d7)?_0x676c8a(0x1dd):_0x9f5f66['type'],'description':_0x9f5f66['description']||_0x9f5f66[_0x676c8a(0x1c0)],'required':_0x9f5f66['required'],'default':isPrimitiveFlagDefault(_0x9f5f66[_0x676c8a(0x1cc)])?_0x9f5f66[_0x676c8a(0x1cc)]:undefined,'enum':_0x9f5f66['enum']};}async function compilePlan(_0x9b1e83,_0x4b3913){const _0x3f72cd=a60_0x3b52;return compileServiceTreeCommand(_0x9b1e83,{'flags':_0x4b3913[_0x3f72cd(0x1e5)],'args':_0x4b3913[_0x3f72cd(0x1bf)],'context':await buildServiceContext(_0x9b1e83,_0x4b3913)});}async function buildServiceContext(_0x2a6883,_0x1f057d){const _0xf20c29=a60_0x3b52,_0x1374d5={'appCode':_0x1f057d[_0xf20c29(0x1d3)],'env':_0x1f057d[_0xf20c29(0x1e0)],'envName':_0x1f057d[_0xf20c29(0x1e0)]};if(!usesRuntimeContext(_0x2a6883))return _0x1374d5;const _0x23f3ab=await getLoginUserInfo(),_0x11cc90=pickFirst(_0x23f3ab[_0xf20c29(0x1e7)],_0x23f3ab['id']);return{..._0x1374d5,'user':_0x23f3ab,'userId':_0x11cc90,'id':_0x23f3ab['id'],'username':pickFirst(_0x23f3ab[_0xf20c29(0x1e9)],_0x23f3ab[_0xf20c29(0x1ae)],_0x23f3ab[_0xf20c29(0x18b)]),'userName':_0x23f3ab[_0xf20c29(0x1ae)],'nickname':pickFirst(_0x23f3ab['nickname'],_0x23f3ab['nickName']),'nickName':_0x23f3ab[_0xf20c29(0x1b2)],'tenantCode':_0x23f3ab[_0xf20c29(0x1b9)],'employeeId':_0x23f3ab[_0xf20c29(0x19f)]};}function usesRuntimeContext(_0x20ac57){const _0x19361c=a60_0x3b52;return _0x20ac57[_0x19361c(0x1df)][_0x19361c(0x198)](_0x16e56f=>typeof _0x16e56f[_0x19361c(0x1c5)]==='string'&&(_0x16e56f[_0x19361c(0x1c5)][_0x19361c(0x1de)](_0x19361c(0x1b4))||_0x16e56f[_0x19361c(0x1c5)][_0x19361c(0x1de)](_0x19361c(0x1d2))));}function pickFirst(..._0x2db51f){return _0x2db51f['find'](_0x58a6bc=>_0x58a6bc!==undefined&&_0x58a6bc!==null);}async function executePlan(_0x3afd15,_0x202b70,_0x1525e3){const _0x21e7a9=a60_0x3b52;if(_0x3afd15[_0x21e7a9(0x1e4)]==='data'){const _0x45ae2b=await resolveDatasetCode(_0x3afd15,_0x202b70,_0x1525e3);return executeData(_0x45ae2b,_0x3afd15[_0x21e7a9(0x1d4)],_0x3afd15[_0x21e7a9(0x1c6)]);}if(_0x3afd15[_0x21e7a9(0x1e4)]===_0x21e7a9(0x1e3)){if(!_0x3afd15[_0x21e7a9(0x1a4)])throw CliErrors[_0x21e7a9(0x1a2)](_0x21e7a9(0x1d5)+_0x202b70[_0x21e7a9(0x194)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x3afd15[_0x21e7a9(0x1a4)],normalizeScalarParams(_0x3afd15[_0x21e7a9(0x1c6)]));}if(_0x3afd15[_0x21e7a9(0x1e4)]===_0x21e7a9(0x1da)){const _0x5bb1f0=_0x3afd15[_0x21e7a9(0x182)]||_0x3afd15[_0x21e7a9(0x1be)]||(_0x3afd15['bffId']==null?'':String(_0x3afd15[_0x21e7a9(0x1ac)]));if(!_0x5bb1f0)throw CliErrors['validation']('Service\x20command\x20'+_0x202b70[_0x21e7a9(0x194)]+_0x21e7a9(0x1cd));return executeSdkBff(_0x5bb1f0,_0x3afd15[_0x21e7a9(0x1c6)]);}throw CliErrors[_0x21e7a9(0x1a2)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x3afd15[_0x21e7a9(0x1e4)]);}async function resolveDatasetCode(_0x2317a1,_0x85776,_0x4c2ef4){const _0x4b048c=a60_0x3b52;if(_0x2317a1['datasetCode'])return _0x2317a1[_0x4b048c(0x189)];if(!_0x2317a1[_0x4b048c(0x1ea)])throw CliErrors[_0x4b048c(0x1a2)]('Service\x20command\x20'+_0x85776[_0x4b048c(0x194)]+_0x4b048c(0x18e));const _0x2c8814=await listDatasets(_0x4c2ef4['appCode']),_0x1bb88b=_0x2c8814[_0x4b048c(0x19c)](_0x419451=>_0x419451[_0x4b048c(0x1a3)]?.['tableName']===_0x2317a1[_0x4b048c(0x1ea)]);if(!_0x1bb88b?.[_0x4b048c(0x192)])throw CliErrors[_0x4b048c(0x1a2)](_0x4b048c(0x196)+_0x2317a1[_0x4b048c(0x1ea)]+_0x4b048c(0x1bc)+_0x4c2ef4['appCode']+'.',_0x4b048c(0x199));return _0x1bb88b[_0x4b048c(0x192)];}function applyAppBinding(_0x55cd73,_0x416c32,_0x219d93){const _0x4ec68f=a60_0x3b52,_0xc13122=_0x416c32[_0x4ec68f(0x1b0)][_0x4ec68f(0x18a)];if(!_0xc13122)return;const _0x123d11=_0x55cd73[_0x4ec68f(0x18c)][_0xc13122];if(!_0x123d11)throw CliErrors[_0x4ec68f(0x1a2)](_0x4ec68f(0x1cb)+_0xc13122+_0x4ec68f(0x1db)+_0x416c32[_0x4ec68f(0x194)]+'.',_0x4ec68f(0x197));const _0x257755=_0x123d11['appcode']||_0x123d11[_0x4ec68f(0x1d3)];_0x257755&&!hasText(_0x219d93[_0x4ec68f(0x18d)])&&(_0x219d93[_0x4ec68f(0x18d)]=_0x257755),_0x123d11[_0x4ec68f(0x1d8)]&&!hasText(_0x219d93[_0x4ec68f(0x1d8)])&&!hasText(_0x219d93['appcode'])&&(_0x219d93[_0x4ec68f(0x1d8)]=_0x123d11[_0x4ec68f(0x1d8)]),_0x123d11[_0x4ec68f(0x1a1)]&&!hasText(_0x219d93[_0x4ec68f(0x1a1)])&&(_0x219d93['env']=_0x123d11['env']);}function renderDynamicCommandHelp(_0x185a36){const _0x3d6ab9=a60_0x3b52,_0xb461a1=[_0x3d6ab9(0x195),'\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x185a36['target']['kind'],'\x20\x20\x20\x20command:\x20'+_0x185a36[_0x3d6ab9(0x1b0)][_0x3d6ab9(0x1d4)]];if(_0x185a36[_0x3d6ab9(0x1b0)][_0x3d6ab9(0x189)])_0xb461a1[_0x3d6ab9(0x193)](_0x3d6ab9(0x1b6)+_0x185a36[_0x3d6ab9(0x1b0)][_0x3d6ab9(0x189)]);if(_0x185a36[_0x3d6ab9(0x1b0)][_0x3d6ab9(0x1ea)])_0xb461a1[_0x3d6ab9(0x193)](_0x3d6ab9(0x1a7)+_0x185a36[_0x3d6ab9(0x1b0)][_0x3d6ab9(0x1ea)]);if(_0x185a36['target'][_0x3d6ab9(0x1a4)])_0xb461a1['push'](_0x3d6ab9(0x1bb)+_0x185a36[_0x3d6ab9(0x1b0)][_0x3d6ab9(0x1a4)]);if(_0x185a36['target']['scriptName'])_0xb461a1[_0x3d6ab9(0x193)](_0x3d6ab9(0x1a0)+_0x185a36['target']['scriptName']);if(_0x185a36['mapTo']['length']>0x0){_0xb461a1[_0x3d6ab9(0x193)]('',_0x3d6ab9(0x1ad));for(const _0x2683ea of _0x185a36[_0x3d6ab9(0x1df)]){_0xb461a1[_0x3d6ab9(0x193)]('\x20\x20\x20\x20'+(_0x2683ea[_0x3d6ab9(0x1c5)]||'const')+_0x3d6ab9(0x187)+_0x2683ea['target']+(_0x2683ea[_0x3d6ab9(0x1e6)]?'.'+_0x2683ea[_0x3d6ab9(0x1e6)]:''));}}return _0xb461a1[_0x3d6ab9(0x19a)]('\x0a');}function a60_0x4caa(){const _0x3712f6=['app','filter','bff','\x22\x20in\x20service\x20command\x20','type','string','startsWith','mapTo','envName','Run\x20service\x20command\x20','service','sql','kind','rawFlags','operator','userId','2658872umxMol','username','datatable','scriptName','300tuzNOv','56MWsYzB','488250uNGitx','4iEBJKL','\x20->\x20','flatMap','datasetCode','appRef','loginName','appBindings','appcode','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','\x20service\x20detail\x20--service\x20','padEnd','map','code','push','cliPath','\x20\x20SERVICE\x20TREE\x20TARGET','Cannot\x20resolve\x20datatable\x20\x22','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','some','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','join','required','find','cliName','risk','employeeId','\x20\x20\x20\x20functionName:\x20','env','validation','dbtableConfig','sqlCode','\x20completed\x20in\x20','Use\x20`','\x20\x20\x20\x20datatable:\x20','Preview\x20dynamic\x20service\x20command:\x20','remainingArgs','commands','5024820jqXehl','bffId','\x20\x20MAP\x20TO','userName','`\x20to\x20inspect\x20the\x20manifest.','target','slice','nickName','trim','context.','now','\x20\x20\x20\x20datasetCode:\x20','481216CeGoeA','820381UTCmzP','tenantCode','\x20\x20[','\x20\x20\x20\x20sqlCode:\x20','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','number','bffCode','args','name','\x22.\x20','normalizedManifest','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','tree','source','params','flags','359885MCIqbR','length','boolean','Unknown\x20appRef\x20\x22','default','\x20requires\x20target.functionName.','entries','fullPath','346131zoWeTV','read','ctx.','appCode','command','Service\x20command\x20','description','json'];a60_0x4caa=function(){return _0x3712f6;};return a60_0x4caa();}function targetPreview(_0x1a7c66){const _0x30358f=a60_0x3b52;return{'kind':_0x1a7c66[_0x30358f(0x1e4)],'command':_0x1a7c66[_0x30358f(0x1d4)],'appRef':_0x1a7c66[_0x30358f(0x18a)],'datasetCode':_0x1a7c66[_0x30358f(0x189)],'datatable':_0x1a7c66[_0x30358f(0x1ea)],'sqlCode':_0x1a7c66[_0x30358f(0x1a4)],'bffCode':_0x1a7c66[_0x30358f(0x1be)],'bffId':_0x1a7c66['bffId'],'functionName':_0x1a7c66[_0x30358f(0x182)]};}function normalizeScalarParams(_0x4a34bd){const _0x16d793=a60_0x3b52;return Object['fromEntries'](Object[_0x16d793(0x1ce)](_0x4a34bd)[_0x16d793(0x1d9)](([,_0x932838])=>typeof _0x932838==='string'||typeof _0x932838==='number'));}function hasText(_0x57ca60){const _0x1e60b6=a60_0x3b52;return typeof _0x57ca60==='string'&&_0x57ca60[_0x1e60b6(0x1b3)]()[_0x1e60b6(0x1c9)]>0x0;}function isPrimitiveFlagDefault(_0x3cd76e){const _0x13dc23=a60_0x3b52;return _0x3cd76e===undefined||typeof _0x3cd76e===_0x13dc23(0x1dd)||typeof _0x3cd76e===_0x13dc23(0x1bd)||typeof _0x3cd76e===_0x13dc23(0x1ca);}
@@ -1 +1 @@
1
- function a61_0xdb40(){const _0x19f2c8=['.scriptName','$.resources','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','4rJzLrc','string','actions','5242016fcnWhr','call','functionName','9pWHKjh','.resources','map','fromEntries','420462nAsMLF','commands','bff','error','5470730tAIJmr','isArray','push','trim','resources','action','3442188GltNpy','6eofQHB','5497cmASIQ','1335VmWXoF','.actions.','entries','prototype','11010wzplBl','55nyWFic','target','1729293rjBGSP','kind','object','scriptName','bff.exec','hasOwnProperty'];a61_0xdb40=function(){return _0x19f2c8;};return a61_0xdb40();}(function(_0x22e36b,_0x271ee1){const _0x53ecfe=a61_0x3c3e,_0x327d6d=_0x22e36b();while(!![]){try{const _0x261cce=-parseInt(_0x53ecfe(0x177))/0x1*(-parseInt(_0x53ecfe(0x176))/0x2)+parseInt(_0x53ecfe(0x17f))/0x3*(-parseInt(_0x53ecfe(0x188))/0x4)+-parseInt(_0x53ecfe(0x178))/0x5*(parseInt(_0x53ecfe(0x17c))/0x6)+parseInt(_0x53ecfe(0x192))/0x7+-parseInt(_0x53ecfe(0x18b))/0x8+-parseInt(_0x53ecfe(0x18e))/0x9*(-parseInt(_0x53ecfe(0x16f))/0xa)+-parseInt(_0x53ecfe(0x17d))/0xb*(-parseInt(_0x53ecfe(0x175))/0xc);if(_0x261cce===_0x271ee1)break;else _0x327d6d['push'](_0x327d6d['shift']());}catch(_0x142dcf){_0x327d6d['push'](_0x327d6d['shift']());}}}(a61_0xdb40,0x52177));export function adaptServiceTreeManifestForLegacyFramework(_0x5df586){const _0x48d3df=a61_0x3c3e,_0x45a1b1=cloneJsonValue(_0x5df586),_0x5aab0f=[];if(!isObjectRecord(_0x45a1b1))return{'manifest':_0x45a1b1,'errors':_0x5aab0f};return Array[_0x48d3df(0x170)](_0x45a1b1[_0x48d3df(0x16c)])&&_0x45a1b1[_0x48d3df(0x16c)]['forEach']((_0x56a6a4,_0x5cbb85)=>{const _0x2b49d3=_0x48d3df;if(!isObjectRecord(_0x56a6a4))return;adaptBffTarget(_0x56a6a4[_0x2b49d3(0x17e)],'$.commands['+_0x5cbb85+'].target',_0x5aab0f);}),adaptResources(_0x45a1b1[_0x48d3df(0x173)],_0x48d3df(0x186),_0x5aab0f),{'manifest':_0x45a1b1,'errors':_0x5aab0f};}export function toPublicServiceTreeTarget(_0x293a4a){const _0x57ce48=a61_0x3c3e,{scriptName:_0x2eaa5e,..._0x236d0d}=_0x293a4a;return typeof _0x2eaa5e===_0x57ce48(0x189)&&_0x2eaa5e[_0x57ce48(0x172)]()&&(_0x236d0d[_0x57ce48(0x18d)]=_0x2eaa5e),_0x236d0d;}export function toPublicNormalizedServiceTree(_0x3ac66d){const _0x579a8a=a61_0x3c3e;return{..._0x3ac66d,'commands':_0x3ac66d['commands']['map'](_0x4e43f5=>({..._0x4e43f5,'target':toPublicServiceTreeTarget(_0x4e43f5[_0x579a8a(0x17e)])}))};}function adaptResources(_0x32c1e6,_0x568e2e,_0xc09e98){const _0x4e6aec=a61_0x3c3e;if(!isObjectRecord(_0x32c1e6))return;for(const [_0x3835c5,_0x5b821b]of Object[_0x4e6aec(0x17a)](_0x32c1e6)){if(!isObjectRecord(_0x5b821b))continue;const _0xf87cd=_0x568e2e+'.'+_0x3835c5;if(isObjectRecord(_0x5b821b[_0x4e6aec(0x18a)]))for(const [_0x27e715,_0x480c05]of Object[_0x4e6aec(0x17a)](_0x5b821b[_0x4e6aec(0x18a)])){if(!isObjectRecord(_0x480c05))continue;const _0xfb4cc3=_0xf87cd+_0x4e6aec(0x179)+_0x27e715,_0x2078b2=isObjectRecord(_0x480c05['target'])&&_0x480c05['target'][_0x4e6aec(0x180)]===_0x4e6aec(0x16d);adaptBffTarget(_0x480c05['target'],_0xfb4cc3+'.target',_0xc09e98),(_0x2078b2||isBffAction(_0x480c05))&&adaptFunctionNameField(_0x480c05,_0xfb4cc3,_0xc09e98);}adaptResources(_0x5b821b[_0x4e6aec(0x173)],_0xf87cd+_0x4e6aec(0x18f),_0xc09e98);}}function adaptBffTarget(_0x2838c8,_0x48540a,_0x44cde3){const _0x5c3efb=a61_0x3c3e;if(!isObjectRecord(_0x2838c8)||_0x2838c8[_0x5c3efb(0x180)]!=='bff')return;adaptFunctionNameField(_0x2838c8,_0x48540a,_0x44cde3);}function a61_0x3c3e(_0x31a891,_0x1d7c20){_0x31a891=_0x31a891-0x16c;const _0xdb4065=a61_0xdb40();let _0x3c3e71=_0xdb4065[_0x31a891];return _0x3c3e71;}function adaptFunctionNameField(_0x1d40c4,_0x28149b,_0x2722b1){const _0x4c0a24=a61_0x3c3e;Object['prototype'][_0x4c0a24(0x184)][_0x4c0a24(0x18c)](_0x1d40c4,_0x4c0a24(0x182))&&_0x2722b1[_0x4c0a24(0x171)]({'level':_0x4c0a24(0x16e),'path':_0x28149b+_0x4c0a24(0x185),'message':_0x4c0a24(0x187)});if(Object[_0x4c0a24(0x17b)][_0x4c0a24(0x184)][_0x4c0a24(0x18c)](_0x1d40c4,_0x4c0a24(0x18d))){if(typeof _0x1d40c4[_0x4c0a24(0x18d)]!==_0x4c0a24(0x189)||!_0x1d40c4[_0x4c0a24(0x18d)][_0x4c0a24(0x172)]()){_0x2722b1[_0x4c0a24(0x171)]({'level':_0x4c0a24(0x16e),'path':_0x28149b+'.functionName','message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x1d40c4[_0x4c0a24(0x18d)];return;}_0x1d40c4['scriptName']=_0x1d40c4[_0x4c0a24(0x18d)],delete _0x1d40c4[_0x4c0a24(0x18d)];}}function isBffAction(_0x297124){const _0x55b7ca=a61_0x3c3e;return _0x297124['kind']===_0x55b7ca(0x16d)||_0x297124[_0x55b7ca(0x174)]==='bff.exec'||_0x297124['target']===_0x55b7ca(0x183);}function cloneJsonValue(_0x43dc94){const _0x4b252f=a61_0x3c3e;if(Array[_0x4b252f(0x170)](_0x43dc94))return _0x43dc94[_0x4b252f(0x190)](_0x3d8ed1=>cloneJsonValue(_0x3d8ed1));if(isObjectRecord(_0x43dc94))return Object[_0x4b252f(0x191)](Object[_0x4b252f(0x17a)](_0x43dc94)[_0x4b252f(0x190)](([_0x3570ff,_0x2e2993])=>[_0x3570ff,cloneJsonValue(_0x2e2993)]));return _0x43dc94;}function isObjectRecord(_0x1f7052){const _0x24a571=a61_0x3c3e;return Boolean(_0x1f7052)&&typeof _0x1f7052===_0x24a571(0x181)&&!Array[_0x24a571(0x170)](_0x1f7052);}
1
+ function a61_0x43ad(_0xdc0e75,_0x3dd831){_0xdc0e75=_0xdc0e75-0x19d;const _0x11d009=a61_0x11d0();let _0x43adb0=_0x11d009[_0xdc0e75];return _0x43adb0;}(function(_0x42cf04,_0xfeaefd){const _0x490d82=a61_0x43ad,_0x29603b=_0x42cf04();while(!![]){try{const _0x412876=parseInt(_0x490d82(0x1a6))/0x1*(-parseInt(_0x490d82(0x1a1))/0x2)+-parseInt(_0x490d82(0x1a3))/0x3*(-parseInt(_0x490d82(0x1a2))/0x4)+parseInt(_0x490d82(0x1a7))/0x5+-parseInt(_0x490d82(0x1b6))/0x6+-parseInt(_0x490d82(0x19e))/0x7*(-parseInt(_0x490d82(0x19d))/0x8)+-parseInt(_0x490d82(0x1a5))/0x9*(parseInt(_0x490d82(0x1ab))/0xa)+parseInt(_0x490d82(0x1b8))/0xb;if(_0x412876===_0xfeaefd)break;else _0x29603b['push'](_0x29603b['shift']());}catch(_0x348692){_0x29603b['push'](_0x29603b['shift']());}}}(a61_0x11d0,0x75be2));export function adaptServiceTreeManifestForLegacyFramework(_0x2be979){const _0xee2fc5=a61_0x43ad,_0x5c3d20=cloneJsonValue(_0x2be979),_0x1d78a2=[];if(!isObjectRecord(_0x5c3d20))return{'manifest':_0x5c3d20,'errors':_0x1d78a2};return Array[_0xee2fc5(0x1b0)](_0x5c3d20[_0xee2fc5(0x1bf)])&&_0x5c3d20[_0xee2fc5(0x1bf)][_0xee2fc5(0x1bb)]((_0x5d91bb,_0x14f128)=>{const _0x19bf71=_0xee2fc5;if(!isObjectRecord(_0x5d91bb))return;adaptBffTarget(_0x5d91bb['target'],_0x19bf71(0x1a4)+_0x14f128+_0x19bf71(0x1a9),_0x1d78a2);}),adaptResources(_0x5c3d20['resources'],'$.resources',_0x1d78a2),{'manifest':_0x5c3d20,'errors':_0x1d78a2};}export function toPublicServiceTreeTarget(_0x2ae5f9){const _0x385770=a61_0x43ad,{scriptName:_0x92e4ae,..._0x32e5f8}=_0x2ae5f9;return typeof _0x92e4ae==='string'&&_0x92e4ae[_0x385770(0x1b9)]()&&(_0x32e5f8[_0x385770(0x1b2)]=_0x92e4ae),_0x32e5f8;}export function toPublicNormalizedServiceTree(_0x4a2672){const _0x3a8782=a61_0x43ad;return{..._0x4a2672,'commands':_0x4a2672[_0x3a8782(0x1bf)][_0x3a8782(0x1b7)](_0xaf49bb=>({..._0xaf49bb,'target':toPublicServiceTreeTarget(_0xaf49bb[_0x3a8782(0x1bc)])}))};}function adaptResources(_0x3e23b8,_0x1b8f8a,_0x87818a){const _0x2e8cd0=a61_0x43ad;if(!isObjectRecord(_0x3e23b8))return;for(const [_0x565804,_0x48bc83]of Object[_0x2e8cd0(0x1ac)](_0x3e23b8)){if(!isObjectRecord(_0x48bc83))continue;const _0x3d3b72=_0x1b8f8a+'.'+_0x565804;if(isObjectRecord(_0x48bc83[_0x2e8cd0(0x1b4)]))for(const [_0x45b40e,_0x286afa]of Object[_0x2e8cd0(0x1ac)](_0x48bc83[_0x2e8cd0(0x1b4)])){if(!isObjectRecord(_0x286afa))continue;const _0x59f11f=_0x3d3b72+_0x2e8cd0(0x1bd)+_0x45b40e,_0x5b5109=isObjectRecord(_0x286afa[_0x2e8cd0(0x1bc)])&&_0x286afa[_0x2e8cd0(0x1bc)][_0x2e8cd0(0x1ba)]===_0x2e8cd0(0x1b3);adaptBffTarget(_0x286afa[_0x2e8cd0(0x1bc)],_0x59f11f+_0x2e8cd0(0x1a8),_0x87818a),(_0x5b5109||isBffAction(_0x286afa))&&adaptFunctionNameField(_0x286afa,_0x59f11f,_0x87818a);}adaptResources(_0x48bc83['resources'],_0x3d3b72+'.resources',_0x87818a);}}function adaptBffTarget(_0xa827a,_0x4cb402,_0x16b5f5){const _0x3c8bb3=a61_0x43ad;if(!isObjectRecord(_0xa827a)||_0xa827a[_0x3c8bb3(0x1ba)]!=='bff')return;adaptFunctionNameField(_0xa827a,_0x4cb402,_0x16b5f5);}function a61_0x11d0(){const _0x1aaddf=['350248ArasSF','84YHmefy','push','action','701458nmufQz','20jBNLdI','75393RjrKNc','$.commands[','8535654EGplNr','1yMGAou','3882560qZpZBF','.target','].target','error','10kMeyXm','entries','string','call','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','isArray','object','functionName','bff','actions','functionName\x20must\x20be\x20a\x20non-empty\x20string.','3719598bepUQs','map','10711833CiSHBA','trim','kind','forEach','target','.actions.','scriptName','commands','.scriptName'];a61_0x11d0=function(){return _0x1aaddf;};return a61_0x11d0();}function adaptFunctionNameField(_0x55ea85,_0x23b2ec,_0x21dc16){const _0x318868=a61_0x43ad;Object['prototype']['hasOwnProperty'][_0x318868(0x1ae)](_0x55ea85,'scriptName')&&_0x21dc16[_0x318868(0x19f)]({'level':_0x318868(0x1aa),'path':_0x23b2ec+_0x318868(0x1c0),'message':_0x318868(0x1af)});if(Object['prototype']['hasOwnProperty'][_0x318868(0x1ae)](_0x55ea85,_0x318868(0x1b2))){if(typeof _0x55ea85['functionName']!==_0x318868(0x1ad)||!_0x55ea85[_0x318868(0x1b2)][_0x318868(0x1b9)]()){_0x21dc16['push']({'level':'error','path':_0x23b2ec+'.functionName','message':_0x318868(0x1b5)}),delete _0x55ea85[_0x318868(0x1b2)];return;}_0x55ea85[_0x318868(0x1be)]=_0x55ea85[_0x318868(0x1b2)],delete _0x55ea85['functionName'];}}function isBffAction(_0x32b3d2){const _0x5f5784=a61_0x43ad;return _0x32b3d2['kind']==='bff'||_0x32b3d2[_0x5f5784(0x1a0)]==='bff.exec'||_0x32b3d2[_0x5f5784(0x1bc)]==='bff.exec';}function cloneJsonValue(_0x572993){const _0x25b762=a61_0x43ad;if(Array[_0x25b762(0x1b0)](_0x572993))return _0x572993[_0x25b762(0x1b7)](_0x21a928=>cloneJsonValue(_0x21a928));if(isObjectRecord(_0x572993))return Object['fromEntries'](Object['entries'](_0x572993)[_0x25b762(0x1b7)](([_0x8b9003,_0x4ec85f])=>[_0x8b9003,cloneJsonValue(_0x4ec85f)]));return _0x572993;}function isObjectRecord(_0xe2de22){const _0xa121c3=a61_0x43ad;return Boolean(_0xe2de22)&&typeof _0xe2de22===_0xa121c3(0x1b1)&&!Array[_0xa121c3(0x1b0)](_0xe2de22);}
@@ -1 +1 @@
1
- const a62_0x4078be=a62_0x255d;(function(_0x701721,_0x15d331){const _0x1e92f5=a62_0x255d,_0x381ac6=_0x701721();while(!![]){try{const _0x39befb=-parseInt(_0x1e92f5(0xeb))/0x1*(parseInt(_0x1e92f5(0xf4))/0x2)+-parseInt(_0x1e92f5(0xfe))/0x3*(-parseInt(_0x1e92f5(0xec))/0x4)+parseInt(_0x1e92f5(0xe2))/0x5*(-parseInt(_0x1e92f5(0x10a))/0x6)+parseInt(_0x1e92f5(0x119))/0x7+-parseInt(_0x1e92f5(0xf2))/0x8+parseInt(_0x1e92f5(0x118))/0x9+-parseInt(_0x1e92f5(0x10c))/0xa*(parseInt(_0x1e92f5(0xd8))/0xb);if(_0x39befb===_0x15d331)break;else _0x381ac6['push'](_0x381ac6['shift']());}catch(_0x165831){_0x381ac6['push'](_0x381ac6['shift']());}}}(a62_0x8718,0xcae9d));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';function a62_0x255d(_0x1e53b2,_0x372689){_0x1e53b2=_0x1e53b2-0xd3;const _0x871879=a62_0x8718();let _0x255dc2=_0x871879[_0x1e53b2];return _0x255dc2;}function a62_0x8718(){const _0x2699dc=['240484sgGWOU','serviceCode','import','Local\x20service\x20code,\x20for\x20example\x20crm','description','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','5542760iMVTbe','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','64858LfmREU','Writes\x20the\x20local\x20Service\x20Tree\x20manifest\x20for\x20the\x20given\x20service\x20to\x20a\x20JSON\x20file.\x20An\x20existing\x20file\x20at\x20the\x20target\x20may\x20be\x20overwritten.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','target','warnings','entries','Exported\x20service\x20','service','list','commands','kind','69HiiKyG','Removed\x20service\x20','detail','entry','Imported\x20','serviceCount','normalizedManifest','cliPath','string','flags','cliName','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','6RHtxfe','file','1130qTPrRS','\x20service(s).','errors','imported','type','report','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','registryPath','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','importedAt','write','map','6761430KzNLxt','11087832BvNFRP','version','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','reduce','validate','hash','10813XpFxFc','lower\x20kebab-case\x20service\x20code','WRITE','manifests','length','Service\x20Tree\x20manifest\x20file\x20path','export','remove','source','updated','7982685TSfeCH','replaced','name','read','filePath','str','Imported','risk','registryServiceCode','15Axsukv'];a62_0x8718=function(){return _0x2699dc;};return a62_0x8718();}const FILE_FLAG={'name':a62_0x4078be(0x10b),'type':a62_0x4078be(0x106),'required':!![],'description':a62_0x4078be(0xdd)},SERVICE_FLAG={'name':a62_0x4078be(0xfa),'type':a62_0x4078be(0x106),'required':!![],'description':a62_0x4078be(0xef),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x4078be(0xd9)}};function summarizeService(_0x2e89fa){const _0x53788f=a62_0x4078be;return{'serviceCode':_0x2e89fa[_0x53788f(0xed)],'name':_0x2e89fa[_0x53788f(0x104)][_0x53788f(0xfa)][_0x53788f(0xe4)],'version':_0x2e89fa[_0x53788f(0x11a)],'importedAt':_0x2e89fa[_0x53788f(0x115)],'source':_0x2e89fa[_0x53788f(0xe0)],'commandCount':_0x2e89fa['normalizedManifest']['commands'][_0x53788f(0xdc)],'commands':_0x2e89fa[_0x53788f(0x104)][_0x53788f(0xfc)]['map'](_0x3246da=>({'path':_0x3246da[_0x53788f(0x105)],'description':_0x3246da[_0x53788f(0xf0)],'risk':_0x3246da[_0x53788f(0xe9)],'target':toPublicServiceTreeTarget(_0x3246da[_0x53788f(0xf6)]),'flags':_0x3246da[_0x53788f(0x107)][_0x53788f(0x117)](_0x3e61ac=>({'name':_0x3e61ac[_0x53788f(0xe4)],'cliName':_0x3e61ac[_0x53788f(0x108)],'type':_0x3e61ac[_0x53788f(0x110)],'required':_0x3e61ac['required']===!![]}))}))};}function summarizeLoadedManifest(_0x55e2a9){const _0x1455de=a62_0x4078be;return{'service':_0x55e2a9[_0x1455de(0x104)]?.[_0x1455de(0xfa)],'version':_0x55e2a9['normalizedManifest']?.[_0x1455de(0x11a)],'commandCount':_0x55e2a9['normalizedManifest']?.['commands'][_0x1455de(0xdc)]??0x0,'commands':_0x55e2a9['normalizedManifest']?.[_0x1455de(0xfc)][_0x1455de(0x117)](_0x5ecbf7=>({'path':_0x5ecbf7[_0x1455de(0x105)],'risk':_0x5ecbf7[_0x1455de(0xe9)],'target':toPublicServiceTreeTarget(_0x5ecbf7['target'])}))??[],'registryIndex':_0x55e2a9['registryIndex'],'registryServiceCode':_0x55e2a9[_0x1455de(0xea)],'errors':_0x55e2a9[_0x1455de(0x111)][_0x1455de(0x10e)],'warnings':_0x55e2a9[_0x1455de(0x111)][_0x1455de(0xf7)]};}export const serviceDefinitions=[{'service':a62_0x4078be(0xfa),'command':a62_0x4078be(0xd6),'description':a62_0x4078be(0xd4),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x503e19){const _0x2203f5=a62_0x4078be,_0x1bcab3=loadServiceManifestFromFile(_0x503e19[_0x2203f5(0xe7)]('file'));if(!_0x1bcab3[_0x2203f5(0x111)]['ok'])return{'ok':![],'data':{'file':_0x1bcab3['filePath'],'hash':_0x1bcab3[_0x2203f5(0xd7)],'kind':_0x1bcab3[_0x2203f5(0xfd)],'serviceCount':_0x1bcab3[_0x2203f5(0xdb)][_0x2203f5(0xdc)],'services':_0x1bcab3[_0x2203f5(0xdb)]['map'](summarizeLoadedManifest),'errors':_0x1bcab3[_0x2203f5(0x111)]['errors'],'warnings':_0x1bcab3['report'][_0x2203f5(0xf7)]},'message':formatValidationFailure(_0x1bcab3[_0x2203f5(0x111)])};if(_0x1bcab3[_0x2203f5(0xfd)]==='registry'||_0x1bcab3[_0x2203f5(0xdb)][_0x2203f5(0xdc)]!==0x1)return{'ok':!![],'data':{'file':_0x1bcab3[_0x2203f5(0xe6)],'hash':_0x1bcab3[_0x2203f5(0xd7)],'kind':_0x1bcab3[_0x2203f5(0xfd)],'serviceCount':_0x1bcab3[_0x2203f5(0xdb)][_0x2203f5(0xdc)],'commandCount':_0x1bcab3['manifests'][_0x2203f5(0xd5)]((_0x3175bd,_0xdb51ae)=>_0x3175bd+(_0xdb51ae[_0x2203f5(0x104)]?.['commands'][_0x2203f5(0xdc)]??0x0),0x0),'services':_0x1bcab3['manifests'][_0x2203f5(0x117)](summarizeLoadedManifest),'warnings':_0x1bcab3['report'][_0x2203f5(0xf7)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x1bcab3[_0x2203f5(0xe6)],'hash':_0x1bcab3[_0x2203f5(0xd7)],'kind':_0x1bcab3[_0x2203f5(0xfd)],'service':_0x1bcab3[_0x2203f5(0x104)]?.[_0x2203f5(0xfa)],'version':_0x1bcab3[_0x2203f5(0x104)]?.['version'],'commandCount':_0x1bcab3[_0x2203f5(0x104)]?.['commands']['length']??0x0,'commands':_0x1bcab3[_0x2203f5(0x104)]?.[_0x2203f5(0xfc)]['map'](_0x5cd654=>({'path':_0x5cd654[_0x2203f5(0x105)],'risk':_0x5cd654[_0x2203f5(0xe9)],'target':toPublicServiceTreeTarget(_0x5cd654['target'])})),'warnings':_0x1bcab3[_0x2203f5(0x111)][_0x2203f5(0xf7)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a62_0x4078be(0xfa),'command':a62_0x4078be(0xee),'description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':'write','confirmationDescription':'Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x2c75df){const _0x5b14fe=a62_0x4078be,_0x5aaaca=loadServiceManifestFromFile(_0x2c75df[_0x5b14fe(0xe7)](_0x5b14fe(0x10b)));return{'method':_0x5b14fe(0xda),'url':getServiceRegistryPath(),'body':{'file':_0x5aaaca[_0x5b14fe(0xe6)],'hash':_0x5aaaca[_0x5b14fe(0xd7)],'kind':_0x5aaaca[_0x5b14fe(0xfd)],'ok':_0x5aaaca[_0x5b14fe(0x111)]['ok'],'service':_0x5aaaca['normalizedManifest']?.[_0x5b14fe(0xfa)],'version':_0x5aaaca['normalizedManifest']?.[_0x5b14fe(0x11a)],'serviceCount':_0x5aaaca[_0x5b14fe(0xdb)]['length'],'services':_0x5aaaca[_0x5b14fe(0xdb)]['map'](_0x3f9ade=>({'service':_0x3f9ade[_0x5b14fe(0x104)]?.['service'],'version':_0x3f9ade[_0x5b14fe(0x104)]?.[_0x5b14fe(0x11a)],'commandCount':_0x3f9ade[_0x5b14fe(0x104)]?.[_0x5b14fe(0xfc)]['length']??0x0,'errors':_0x3f9ade[_0x5b14fe(0x111)]['errors']})),'errors':_0x5aaaca[_0x5b14fe(0x111)][_0x5b14fe(0x10e)],'commandCount':_0x5aaaca[_0x5b14fe(0x104)]?.['commands']['length']??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x4bc7eb){const _0x4d705e=a62_0x4078be,_0x4d81c5=importServiceManifest(_0x4bc7eb[_0x4d705e(0xe7)](_0x4d705e(0x10b)));if(_0x4d81c5[_0x4d705e(0xf8)][_0x4d705e(0xdc)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x4d81c5[_0x4d705e(0x113)],'imported':_0x4d81c5[_0x4d705e(0x10f)],'updated':_0x4d81c5[_0x4d705e(0xe1)],'serviceCount':_0x4d81c5[_0x4d705e(0x103)],'services':_0x4d81c5[_0x4d705e(0xf8)]['map'](summarizeService)},'message':_0x4d705e(0x102)+_0x4d81c5[_0x4d705e(0x10f)]+'\x20service(s),\x20updated\x20'+_0x4d81c5[_0x4d705e(0xe1)]+_0x4d705e(0x10d)};return{'ok':!![],'data':{'registryPath':_0x4d81c5[_0x4d705e(0x113)],'replaced':_0x4d81c5['replaced'],'imported':_0x4d81c5[_0x4d705e(0x10f)],'updated':_0x4d81c5[_0x4d705e(0xe1)],'serviceCount':_0x4d81c5[_0x4d705e(0x103)],'service':summarizeService(_0x4d81c5[_0x4d705e(0x101)])},'message':(_0x4d81c5[_0x4d705e(0xe3)]?'Updated':_0x4d705e(0xe8))+'\x20service\x20'+_0x4d81c5[_0x4d705e(0x101)][_0x4d705e(0xed)]+'.'};}},{'service':a62_0x4078be(0xfa),'command':a62_0x4078be(0xde),'description':a62_0x4078be(0xf1),'risk':a62_0x4078be(0x116),'confirmationDescription':a62_0x4078be(0xf5),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x1be4fa){const _0x5b586a=a62_0x4078be,_0x2bb162=getLocalServiceEntry(_0x1be4fa[_0x5b586a(0xe7)](_0x5b586a(0xfa)));return{'method':_0x5b586a(0xda),'url':_0x1be4fa[_0x5b586a(0xe7)](_0x5b586a(0x10b)),'body':{'service':_0x1be4fa[_0x5b586a(0xe7)]('service'),'found':Boolean(_0x2bb162),'version':_0x2bb162?.[_0x5b586a(0x11a)],'source':_0x2bb162?.['source']},'description':_0x5b586a(0x114)};},async 'execute'(_0x242a28){const _0x16aaea=a62_0x4078be,_0x565d53=exportServiceManifest(_0x242a28[_0x16aaea(0xe7)]('service'),_0x242a28[_0x16aaea(0xe7)](_0x16aaea(0x10b)));return{'ok':!![],'data':{'registryPath':_0x565d53[_0x16aaea(0x113)],'file':_0x565d53[_0x16aaea(0xe6)],'service':summarizeService(_0x565d53['entry'])},'message':_0x16aaea(0xf9)+_0x565d53[_0x16aaea(0x101)][_0x16aaea(0xed)]+'.'};}},{'service':a62_0x4078be(0xfa),'command':a62_0x4078be(0xfb),'description':a62_0x4078be(0xd3),'risk':a62_0x4078be(0xe5),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x1819c6=a62_0x4078be,_0x3249c0=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x3249c0['length'],'services':_0x3249c0[_0x1819c6(0x117)](summarizeService)}};}},{'service':a62_0x4078be(0xfa),'command':a62_0x4078be(0xdf),'description':a62_0x4078be(0x112),'risk':a62_0x4078be(0x116),'confirmationDescription':'Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x15af3b){const _0x64e78e=a62_0x4078be,_0x1a82ab=getLocalServiceEntry(_0x15af3b['str'](_0x64e78e(0xfa)));return{'method':_0x64e78e(0xda),'url':getServiceRegistryPath(),'body':{'service':_0x15af3b[_0x64e78e(0xe7)](_0x64e78e(0xfa)),'found':Boolean(_0x1a82ab),'version':_0x1a82ab?.['version'],'source':_0x1a82ab?.[_0x64e78e(0xe0)]},'description':_0x64e78e(0x109)};},async 'execute'(_0x2c8cbf){const _0x4a543f=a62_0x4078be,_0x2ac1c6=removeServiceManifest(_0x2c8cbf[_0x4a543f(0xe7)](_0x4a543f(0xfa)));return{'ok':!![],'data':{'registryPath':_0x2ac1c6[_0x4a543f(0x113)],'serviceCount':_0x2ac1c6['serviceCount'],'service':summarizeService(_0x2ac1c6[_0x4a543f(0x101)])},'message':_0x4a543f(0xff)+_0x2ac1c6[_0x4a543f(0x101)][_0x4a543f(0xed)]+'.'};}},{'service':'service','command':a62_0x4078be(0x100),'description':a62_0x4078be(0xf3),'risk':a62_0x4078be(0xe5),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x51c852){const _0x12d5ca=a62_0x4078be,_0x2a23a6=getLocalServiceEntry(_0x51c852[_0x12d5ca(0xe7)](_0x12d5ca(0xfa)));if(!_0x2a23a6)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x51c852[_0x12d5ca(0xe7)]('service')},'message':'Local\x20service\x20not\x20found:\x20'+_0x51c852[_0x12d5ca(0xe7)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x2a23a6),'manifest':_0x2a23a6['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x2a23a6[_0x12d5ca(0x104)])}};}}];
1
+ const a62_0x1cc49a=a62_0x42d7;(function(_0x3df0b7,_0x4a8645){const _0x2e1bf6=a62_0x42d7,_0x2648b3=_0x3df0b7();while(!![]){try{const _0x2e2e86=-parseInt(_0x2e1bf6(0x1ee))/0x1+-parseInt(_0x2e1bf6(0x1db))/0x2+-parseInt(_0x2e1bf6(0x1f9))/0x3+parseInt(_0x2e1bf6(0x227))/0x4*(-parseInt(_0x2e1bf6(0x223))/0x5)+parseInt(_0x2e1bf6(0x1f7))/0x6*(-parseInt(_0x2e1bf6(0x1ec))/0x7)+-parseInt(_0x2e1bf6(0x1f3))/0x8+parseInt(_0x2e1bf6(0x20e))/0x9*(parseInt(_0x2e1bf6(0x207))/0xa);if(_0x2e2e86===_0x4a8645)break;else _0x2648b3['push'](_0x2648b3['shift']());}catch(_0x485311){_0x2648b3['push'](_0x2648b3['shift']());}}}(a62_0x34fd,0xb4b7d));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a62_0x42d7(_0x5c3a52,_0x268471){_0x5c3a52=_0x5c3a52-0x1da;const _0x34fdb7=a62_0x34fd();let _0x42d7f0=_0x34fdb7[_0x5c3a52];return _0x42d7f0;}function a62_0x34fd(){const _0x254009=['registryPath','Removed\x20service\x20','30NiquLi','updated','95694ObiQZV','target','warnings','map','Imported\x20','detail','registryServiceCode','export','lower\x20kebab-case\x20service\x20code','string','service','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','manifest','cliPath','70JlRNFR','Local\x20service\x20not\x20found:\x20','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','registryIndex','Reads\x20the\x20given\x20manifest\x20into\x20the\x20local\x20Service\x20Tree\x20registry.\x20An\x20existing\x20manifest\x20with\x20the\x20same\x20service\x20code\x20is\x20updated.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20local\x20file\x20paths.','entry','Imported','5085855WkBuDn','type','validate','\x20service(s),\x20updated\x20','Service\x20Tree\x20manifest\x20file\x20path','filePath','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','registry','errors','required','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.','str','Service\x20registry\x20validation\x20passed.','read','Exported\x20service\x20','reduce','WRITE','remove','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','hash','155SJPEsM','Service\x20manifest\x20validation\x20passed.','length','report','95528bqNzCV','\x20service\x20','810692gsjNIy','replaced','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','name','write','serviceCount','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','list','cliName','risk','normalizedManifest','version','\x20service(s).','manifests','imported','entries','source','890092bIyiWg','serviceCode','1002623dwrmwL','commands','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','kind','3195640HFPotq','file'];a62_0x34fd=function(){return _0x254009;};return a62_0x34fd();}import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a62_0x1cc49a(0x1f4),'type':a62_0x1cc49a(0x202),'required':!![],'description':a62_0x1cc49a(0x212)},SERVICE_FLAG={'name':'service','type':a62_0x1cc49a(0x202),'required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x1cc49a(0x201)}};function summarizeService(_0x1d488b){const _0x4ad943=a62_0x1cc49a;return{'serviceCode':_0x1d488b['serviceCode'],'name':_0x1d488b[_0x4ad943(0x1e5)][_0x4ad943(0x203)][_0x4ad943(0x1de)],'version':_0x1d488b['version'],'importedAt':_0x1d488b['importedAt'],'source':_0x1d488b[_0x4ad943(0x1eb)],'commandCount':_0x1d488b[_0x4ad943(0x1e5)][_0x4ad943(0x1ef)][_0x4ad943(0x225)],'commands':_0x1d488b[_0x4ad943(0x1e5)]['commands'][_0x4ad943(0x1fc)](_0x44bc15=>({'path':_0x44bc15['cliPath'],'description':_0x44bc15['description'],'risk':_0x44bc15['risk'],'target':toPublicServiceTreeTarget(_0x44bc15['target']),'flags':_0x44bc15['flags']['map'](_0x447572=>({'name':_0x447572[_0x4ad943(0x1de)],'cliName':_0x447572[_0x4ad943(0x1e3)],'type':_0x447572[_0x4ad943(0x20f)],'required':_0x447572[_0x4ad943(0x217)]===!![]}))}))};}function summarizeLoadedManifest(_0x2a3b07){const _0x150c21=a62_0x1cc49a;return{'service':_0x2a3b07[_0x150c21(0x1e5)]?.['service'],'version':_0x2a3b07['normalizedManifest']?.[_0x150c21(0x1e6)],'commandCount':_0x2a3b07['normalizedManifest']?.[_0x150c21(0x1ef)][_0x150c21(0x225)]??0x0,'commands':_0x2a3b07[_0x150c21(0x1e5)]?.[_0x150c21(0x1ef)][_0x150c21(0x1fc)](_0x38e633=>({'path':_0x38e633[_0x150c21(0x206)],'risk':_0x38e633[_0x150c21(0x1e4)],'target':toPublicServiceTreeTarget(_0x38e633[_0x150c21(0x1fa)])}))??[],'registryIndex':_0x2a3b07[_0x150c21(0x20a)],'registryServiceCode':_0x2a3b07[_0x150c21(0x1ff)],'errors':_0x2a3b07[_0x150c21(0x226)][_0x150c21(0x216)],'warnings':_0x2a3b07[_0x150c21(0x226)][_0x150c21(0x1fb)]};}export const serviceDefinitions=[{'service':'service','command':a62_0x1cc49a(0x210),'description':a62_0x1cc49a(0x220),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0xe0ce4e){const _0x4f0f06=a62_0x1cc49a,_0xfebfc8=loadServiceManifestFromFile(_0xe0ce4e[_0x4f0f06(0x219)]('file'));if(!_0xfebfc8[_0x4f0f06(0x226)]['ok'])return{'ok':![],'data':{'file':_0xfebfc8[_0x4f0f06(0x213)],'hash':_0xfebfc8[_0x4f0f06(0x222)],'kind':_0xfebfc8[_0x4f0f06(0x1f2)],'serviceCount':_0xfebfc8[_0x4f0f06(0x1e8)]['length'],'services':_0xfebfc8['manifests']['map'](summarizeLoadedManifest),'errors':_0xfebfc8[_0x4f0f06(0x226)]['errors'],'warnings':_0xfebfc8['report'][_0x4f0f06(0x1fb)]},'message':formatValidationFailure(_0xfebfc8[_0x4f0f06(0x226)])};if(_0xfebfc8[_0x4f0f06(0x1f2)]===_0x4f0f06(0x215)||_0xfebfc8['manifests'][_0x4f0f06(0x225)]!==0x1)return{'ok':!![],'data':{'file':_0xfebfc8[_0x4f0f06(0x213)],'hash':_0xfebfc8[_0x4f0f06(0x222)],'kind':_0xfebfc8[_0x4f0f06(0x1f2)],'serviceCount':_0xfebfc8[_0x4f0f06(0x1e8)][_0x4f0f06(0x225)],'commandCount':_0xfebfc8['manifests'][_0x4f0f06(0x21d)]((_0x18be9d,_0x1731e3)=>_0x18be9d+(_0x1731e3[_0x4f0f06(0x1e5)]?.[_0x4f0f06(0x1ef)]['length']??0x0),0x0),'services':_0xfebfc8[_0x4f0f06(0x1e8)][_0x4f0f06(0x1fc)](summarizeLoadedManifest),'warnings':_0xfebfc8[_0x4f0f06(0x226)][_0x4f0f06(0x1fb)]},'message':_0x4f0f06(0x21a)};return{'ok':!![],'data':{'file':_0xfebfc8[_0x4f0f06(0x213)],'hash':_0xfebfc8[_0x4f0f06(0x222)],'kind':_0xfebfc8[_0x4f0f06(0x1f2)],'service':_0xfebfc8[_0x4f0f06(0x1e5)]?.[_0x4f0f06(0x203)],'version':_0xfebfc8['normalizedManifest']?.[_0x4f0f06(0x1e6)],'commandCount':_0xfebfc8[_0x4f0f06(0x1e5)]?.[_0x4f0f06(0x1ef)][_0x4f0f06(0x225)]??0x0,'commands':_0xfebfc8['normalizedManifest']?.['commands']['map'](_0x1992cb=>({'path':_0x1992cb[_0x4f0f06(0x206)],'risk':_0x1992cb[_0x4f0f06(0x1e4)],'target':toPublicServiceTreeTarget(_0x1992cb[_0x4f0f06(0x1fa)])})),'warnings':_0xfebfc8['report'][_0x4f0f06(0x1fb)]},'message':_0x4f0f06(0x224)};}},{'service':a62_0x1cc49a(0x203),'command':'import','description':a62_0x1cc49a(0x209),'risk':a62_0x1cc49a(0x1df),'confirmationDescription':a62_0x1cc49a(0x20b),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x1181f4){const _0x2ced75=a62_0x1cc49a,_0x4d10a3=loadServiceManifestFromFile(_0x1181f4[_0x2ced75(0x219)]('file'));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x4d10a3[_0x2ced75(0x213)],'hash':_0x4d10a3[_0x2ced75(0x222)],'kind':_0x4d10a3[_0x2ced75(0x1f2)],'ok':_0x4d10a3[_0x2ced75(0x226)]['ok'],'service':_0x4d10a3['normalizedManifest']?.[_0x2ced75(0x203)],'version':_0x4d10a3[_0x2ced75(0x1e5)]?.[_0x2ced75(0x1e6)],'serviceCount':_0x4d10a3['manifests'][_0x2ced75(0x225)],'services':_0x4d10a3['manifests']['map'](_0x438c63=>({'service':_0x438c63['normalizedManifest']?.[_0x2ced75(0x203)],'version':_0x438c63[_0x2ced75(0x1e5)]?.['version'],'commandCount':_0x438c63[_0x2ced75(0x1e5)]?.[_0x2ced75(0x1ef)][_0x2ced75(0x225)]??0x0,'errors':_0x438c63[_0x2ced75(0x226)][_0x2ced75(0x216)]})),'errors':_0x4d10a3[_0x2ced75(0x226)][_0x2ced75(0x216)],'commandCount':_0x4d10a3[_0x2ced75(0x1e5)]?.[_0x2ced75(0x1ef)][_0x2ced75(0x225)]??0x0},'description':_0x2ced75(0x1dd)};},async 'execute'(_0x277692){const _0x35ce27=a62_0x1cc49a,_0x3ea574=importServiceManifest(_0x277692['str']('file'));if(_0x3ea574[_0x35ce27(0x1ea)][_0x35ce27(0x225)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x3ea574[_0x35ce27(0x1f5)],'imported':_0x3ea574['imported'],'updated':_0x3ea574[_0x35ce27(0x1f8)],'serviceCount':_0x3ea574[_0x35ce27(0x1e0)],'services':_0x3ea574['entries'][_0x35ce27(0x1fc)](summarizeService)},'message':_0x35ce27(0x1fd)+_0x3ea574['imported']+_0x35ce27(0x211)+_0x3ea574[_0x35ce27(0x1f8)]+_0x35ce27(0x1e7)};return{'ok':!![],'data':{'registryPath':_0x3ea574[_0x35ce27(0x1f5)],'replaced':_0x3ea574[_0x35ce27(0x1dc)],'imported':_0x3ea574[_0x35ce27(0x1e9)],'updated':_0x3ea574['updated'],'serviceCount':_0x3ea574[_0x35ce27(0x1e0)],'service':summarizeService(_0x3ea574[_0x35ce27(0x20c)])},'message':(_0x3ea574[_0x35ce27(0x1dc)]?'Updated':_0x35ce27(0x20d))+_0x35ce27(0x1da)+_0x3ea574['entry'][_0x35ce27(0x1ed)]+'.'};}},{'service':a62_0x1cc49a(0x203),'command':a62_0x1cc49a(0x200),'description':a62_0x1cc49a(0x1f1),'risk':'write','confirmationDescription':a62_0x1cc49a(0x218),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x3b7e61){const _0x5617c7=a62_0x1cc49a,_0x6ef62c=getLocalServiceEntry(_0x3b7e61[_0x5617c7(0x219)]('service'));return{'method':_0x5617c7(0x21e),'url':_0x3b7e61[_0x5617c7(0x219)]('file'),'body':{'service':_0x3b7e61[_0x5617c7(0x219)](_0x5617c7(0x203)),'found':Boolean(_0x6ef62c),'version':_0x6ef62c?.[_0x5617c7(0x1e6)],'source':_0x6ef62c?.[_0x5617c7(0x1eb)]},'description':_0x5617c7(0x221)};},async 'execute'(_0x1a6b84){const _0x33c3d7=a62_0x1cc49a,_0x26f24b=exportServiceManifest(_0x1a6b84['str']('service'),_0x1a6b84[_0x33c3d7(0x219)](_0x33c3d7(0x1f4)));return{'ok':!![],'data':{'registryPath':_0x26f24b[_0x33c3d7(0x1f5)],'file':_0x26f24b[_0x33c3d7(0x213)],'service':summarizeService(_0x26f24b[_0x33c3d7(0x20c)])},'message':_0x33c3d7(0x21c)+_0x26f24b[_0x33c3d7(0x20c)]['serviceCode']+'.'};}},{'service':'service','command':a62_0x1cc49a(0x1e2),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x567b6d=a62_0x1cc49a,_0x5c7694=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x5c7694[_0x567b6d(0x225)],'services':_0x5c7694[_0x567b6d(0x1fc)](summarizeService)}};}},{'service':a62_0x1cc49a(0x203),'command':a62_0x1cc49a(0x21f),'description':a62_0x1cc49a(0x1f0),'risk':a62_0x1cc49a(0x1df),'confirmationDescription':a62_0x1cc49a(0x214),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x33b125){const _0x1386da=a62_0x1cc49a,_0x1c353f=getLocalServiceEntry(_0x33b125[_0x1386da(0x219)](_0x1386da(0x203)));return{'method':_0x1386da(0x21e),'url':getServiceRegistryPath(),'body':{'service':_0x33b125[_0x1386da(0x219)](_0x1386da(0x203)),'found':Boolean(_0x1c353f),'version':_0x1c353f?.[_0x1386da(0x1e6)],'source':_0x1c353f?.[_0x1386da(0x1eb)]},'description':_0x1386da(0x204)};},async 'execute'(_0x2b8d7a){const _0x161cec=a62_0x1cc49a,_0x52b1e1=removeServiceManifest(_0x2b8d7a[_0x161cec(0x219)]('service'));return{'ok':!![],'data':{'registryPath':_0x52b1e1[_0x161cec(0x1f5)],'serviceCount':_0x52b1e1[_0x161cec(0x1e0)],'service':summarizeService(_0x52b1e1[_0x161cec(0x20c)])},'message':_0x161cec(0x1f6)+_0x52b1e1[_0x161cec(0x20c)][_0x161cec(0x1ed)]+'.'};}},{'service':a62_0x1cc49a(0x203),'command':a62_0x1cc49a(0x1fe),'description':a62_0x1cc49a(0x1e1),'risk':a62_0x1cc49a(0x21b),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x106ae6){const _0x23f397=a62_0x1cc49a,_0x3b94c2=getLocalServiceEntry(_0x106ae6[_0x23f397(0x219)](_0x23f397(0x203)));if(!_0x3b94c2)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x106ae6[_0x23f397(0x219)](_0x23f397(0x203))},'message':_0x23f397(0x208)+_0x106ae6[_0x23f397(0x219)](_0x23f397(0x203))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x3b94c2),'manifest':_0x3b94c2[_0x23f397(0x205)],'normalizedManifest':toPublicNormalizedServiceTree(_0x3b94c2[_0x23f397(0x1e5)])}};}}];
@@ -1 +1 @@
1
- const a63_0xe12cb7=a63_0x4879;(function(_0x4ac71c,_0x2e57fd){const _0x1d0db2=a63_0x4879,_0x154c48=_0x4ac71c();while(!![]){try{const _0x429bc7=-parseInt(_0x1d0db2(0x11e))/0x1+-parseInt(_0x1d0db2(0x119))/0x2+-parseInt(_0x1d0db2(0x148))/0x3+parseInt(_0x1d0db2(0x11f))/0x4*(parseInt(_0x1d0db2(0x103))/0x5)+-parseInt(_0x1d0db2(0x138))/0x6*(-parseInt(_0x1d0db2(0x144))/0x7)+parseInt(_0x1d0db2(0x10b))/0x8*(-parseInt(_0x1d0db2(0x13b))/0x9)+-parseInt(_0x1d0db2(0x118))/0xa*(-parseInt(_0x1d0db2(0x156))/0xb);if(_0x429bc7===_0x2e57fd)break;else _0x154c48['push'](_0x154c48['shift']());}catch(_0x33d9f2){_0x154c48['push'](_0x154c48['shift']());}}}(a63_0x150c,0x20f90));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a63_0xe12cb7(0x13a);export function getServiceRegistryPath(_0x251b2f={}){const _0x16b876=a63_0xe12cb7;return resolve(_0x251b2f[_0x16b876(0x12d)]??homedir(),PRODUCT_CONFIG[_0x16b876(0x136)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x212662={}){const _0x503326=a63_0xe12cb7,_0x274cdc=getServiceRegistryPath(_0x212662);if(!existsSync(_0x274cdc))return emptyServiceRegistry();try{const _0x5eefb2=readFileSync(_0x274cdc,_0x503326(0x123));if(!_0x5eefb2[_0x503326(0x104)]())return emptyServiceRegistry();const _0xbdaa41=JSON[_0x503326(0x110)](_0x5eefb2);if(_0xbdaa41[_0x503326(0x126)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x503326(0x130)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0xbdaa41[_0x503326(0x126)]),_0x503326(0x112)+_0x274cdc+'.');if(!Array[_0x503326(0x108)](_0xbdaa41[_0x503326(0x146)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xbdaa41[_0x503326(0x13e)],'services':_0xbdaa41[_0x503326(0x146)]};}catch(_0x47671e){if(_0x47671e instanceof Error&&_0x47671e[_0x503326(0x129)]===_0x503326(0x117))throw _0x47671e;throw CliErrors['validation']('Invalid\x20service\x20registry\x20JSON:\x20'+_0x274cdc,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x574a51,_0x561b10={}){const _0x3c0164=a63_0xe12cb7,_0x55133c=getServiceRegistryPath(_0x561b10),_0x5e9d66=dirname(_0x55133c);!existsSync(_0x5e9d66)&&mkdirSync(_0x5e9d66,{'recursive':!![]});const _0xf6b067=_0x55133c+_0x3c0164(0x125);try{writeFileSync(_0xf6b067,JSON[_0x3c0164(0x141)](_0x574a51,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0xf6b067,_0x55133c);}catch(_0x483b43){try{unlinkSync(_0xf6b067);}catch{}if(_0x483b43?.[_0x3c0164(0x150)]===_0x3c0164(0x154))throw CliErrors[_0x3c0164(0x130)]('Cannot\x20write\x20service\x20registry:\x20'+_0x55133c);throw _0x483b43;}return _0x55133c;}export function loadServiceManifestFromFile(_0x1c03aa){const _0x589673=a63_0xe12cb7,_0x41688d=resolve(_0x1c03aa);if(!existsSync(_0x41688d))throw CliErrors[_0x589673(0x130)](_0x589673(0x143)+_0x1c03aa);let _0x51705a;const _0x225e7e=readFileSync(_0x41688d,_0x589673(0x123));try{_0x51705a=JSON[_0x589673(0x110)](_0x225e7e);}catch{throw CliErrors[_0x589673(0x130)]('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x1c03aa,_0x589673(0x10c));}const _0xd01dfc=sha256(_0x225e7e),_0x172a7e=extractLoadedServiceManifests(_0x51705a,_0xd01dfc),_0x1a7bc4=aggregateValidationReports(_0x172a7e),_0x575fc5=_0x172a7e[0x0];return{'filePath':_0x41688d,'hash':_0xd01dfc,'kind':isServiceRegistryLike(_0x51705a)?_0x589673(0x128):'manifest','manifest':_0x575fc5?.[_0x589673(0x10f)]??_0x51705a,'report':_0x1a7bc4,'normalizedManifest':_0x172a7e[_0x589673(0x10e)]===0x1?_0x575fc5?.[_0x589673(0x121)]:undefined,'manifests':_0x172a7e};}export function importServiceManifest(_0x2abd48,_0x5bb3e6={}){const _0x263bfe=a63_0xe12cb7,_0x187379=loadServiceManifestFromFile(_0x2abd48);if(!_0x187379['report']['ok'])throw CliErrors['validation'](formatValidationFailure(_0x187379[_0x263bfe(0x147)]),_0x263bfe(0x14c));if(_0x187379[_0x263bfe(0x12b)][_0x263bfe(0x10e)]===0x0)throw CliErrors[_0x263bfe(0x130)](_0x263bfe(0x111),_0x263bfe(0x11c));const _0x2c4f2c=readServiceRegistry(_0x5bb3e6),_0x411ed5=(_0x5bb3e6[_0x263bfe(0x149)]??(()=>new Date()))()[_0x263bfe(0x13c)](),_0x475902=[];let _0x3c26b5=0x0,_0x4f882a=0x0;for(const _0x714a05 of _0x187379[_0x263bfe(0x12b)]){if(!_0x714a05[_0x263bfe(0x121)])continue;const _0x18d25d=_0x714a05['normalizedManifest'][_0x263bfe(0x152)]['code'],_0x2d4408={'serviceCode':_0x18d25d,'version':_0x714a05[_0x263bfe(0x121)][_0x263bfe(0x12c)],'importedAt':_0x411ed5,'source':{'type':_0x263bfe(0x11d),'path':_0x187379[_0x263bfe(0x14f)],'hash':_0x714a05[_0x263bfe(0x134)]},'manifest':_0x714a05[_0x263bfe(0x10f)],'normalizedManifest':_0x714a05[_0x263bfe(0x121)]},_0x1fe004=_0x2c4f2c[_0x263bfe(0x146)][_0x263bfe(0x12a)](_0x57aebb=>_0x57aebb[_0x263bfe(0x14b)]===_0x18d25d);_0x1fe004>=0x0?(_0x2c4f2c[_0x263bfe(0x146)][_0x1fe004]=_0x2d4408,_0x4f882a++):(_0x2c4f2c[_0x263bfe(0x146)][_0x263bfe(0x106)](_0x2d4408),_0x3c26b5++),_0x475902[_0x263bfe(0x106)](_0x2d4408);}_0x2c4f2c['services'][_0x263bfe(0x14d)]((_0x442930,_0x351d7c)=>_0x442930['serviceCode'][_0x263bfe(0x13d)](_0x351d7c['serviceCode'])),_0x2c4f2c[_0x263bfe(0x13e)]=_0x411ed5;const _0x2c39aa=writeServiceRegistry(_0x2c4f2c,_0x5bb3e6);return{'registryPath':_0x2c39aa,'entry':_0x475902[0x0],'replaced':_0x475902[_0x263bfe(0x10e)]===0x1?_0x4f882a===0x1:_0x4f882a>0x0,'entries':_0x475902,'imported':_0x3c26b5,'updated':_0x4f882a,'serviceCount':_0x2c4f2c[_0x263bfe(0x146)][_0x263bfe(0x10e)]};}function a63_0x150c(){const _0x1cb5c4=['sort','splice','filePath','code','path','service','description','ENOENT','message','55oQBHMG','295005fomMRc','trim','target','push','kind','isArray','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','commands','16qJMWQH','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','join','length','manifest','parse','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','Remove\x20or\x20migrate\x20','invalid','commandCount','find','flatMap','CliError','1537600CrYeSZ','280400AUPIEI','hex','source','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','file','119973ogEbIA','4DbagFh','$.services[','normalizedManifest','].manifest','utf8','empty','.tmp','schemaVersion','registryIndex','registry','name','findIndex','manifests','version','homeDir','startsWith','].manifest.','validation','Local\x20service\x20not\x20found:\x20','errors','importedAt','sourceHash','cliPath','homeDirName','services\x20must\x20be\x20an\x20array','6yaUhjl','string','service.json','1074204RlBFwj','toISOString','localeCompare','updatedAt','warnings','Service\x20manifest\x20validation\x20failed:\x0a','stringify','risk','Service\x20manifest\x20file\x20not\x20found:\x20','518847BEsPZU','map','services','report','803943dnUeya','now','missing','serviceCode','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.'];a63_0x150c=function(){return _0x1cb5c4;};return a63_0x150c();}export function exportServiceManifest(_0x1d8aa4,_0x505e5d,_0x37975b={}){const _0x1ba897=a63_0xe12cb7,_0x59a14c=getServiceRegistryPath(_0x37975b),_0x48d4a4=getLocalServiceEntry(_0x1d8aa4,_0x37975b);if(!_0x48d4a4)throw CliErrors[_0x1ba897(0x130)](_0x1ba897(0x131)+_0x1d8aa4,_0x1ba897(0x109));const _0x369098=resolve(_0x505e5d),_0x4baa88=dirname(_0x369098);return!existsSync(_0x4baa88)&&mkdirSync(_0x4baa88,{'recursive':!![]}),writeFileSync(_0x369098,JSON['stringify'](_0x48d4a4['manifest'],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x59a14c,'filePath':_0x369098,'entry':_0x48d4a4};}function a63_0x4879(_0x2629e7,_0x360a52){_0x2629e7=_0x2629e7-0x103;const _0x150c20=a63_0x150c();let _0x48795d=_0x150c20[_0x2629e7];return _0x48795d;}export function removeServiceManifest(_0x11a009,_0xa739fc={}){const _0x383012=a63_0xe12cb7,_0x24474a=readServiceRegistry(_0xa739fc),_0x3e4621=_0x11a009[_0x383012(0x104)](),_0x47b6ad=_0x24474a[_0x383012(0x146)][_0x383012(0x12a)](_0x1e5376=>_0x1e5376[_0x383012(0x14b)]===_0x3e4621);if(_0x47b6ad<0x0)throw CliErrors[_0x383012(0x130)]('Local\x20service\x20not\x20found:\x20'+_0x3e4621,_0x383012(0x109));const [_0xc051b2]=_0x24474a[_0x383012(0x146)][_0x383012(0x14e)](_0x47b6ad,0x1),_0x44c461=(_0xa739fc['now']??(()=>new Date()))()[_0x383012(0x13c)]();_0x24474a['updatedAt']=_0x44c461;const _0x308a82=writeServiceRegistry(_0x24474a,_0xa739fc);return{'registryPath':_0x308a82,'entry':_0xc051b2,'serviceCount':_0x24474a[_0x383012(0x146)][_0x383012(0x10e)]};}export function listLocalServices(_0x42978d={}){const _0x1a07c8=a63_0xe12cb7;return readServiceRegistry(_0x42978d)[_0x1a07c8(0x146)];}export function getLocalServiceEntry(_0x468efb,_0x2885c9={}){const _0x2985ab=a63_0xe12cb7;return readServiceRegistry(_0x2885c9)[_0x2985ab(0x146)][_0x2985ab(0x115)](_0x4ad9f5=>_0x4ad9f5[_0x2985ab(0x14b)]===_0x468efb['trim']());}export function listLocalServiceTrees(_0x40a912={}){const _0x2f6f83=a63_0xe12cb7;return readServiceRegistry(_0x40a912)['services'][_0x2f6f83(0x145)](_0x244bb1=>_0x244bb1[_0x2f6f83(0x121)]);}export function inspectServiceRegistry(_0x3825a1={}){const _0x3037aa=a63_0xe12cb7,_0x1d6a37=getServiceRegistryPath(_0x3825a1);if(!existsSync(_0x1d6a37))return emptyServiceRegistryInspection(_0x1d6a37,_0x3037aa(0x14a),![]);try{const _0x33d7ac=readFileSync(_0x1d6a37,_0x3037aa(0x123));if(!_0x33d7ac[_0x3037aa(0x104)]())return emptyServiceRegistryInspection(_0x1d6a37,_0x3037aa(0x124),!![]);const _0xd6f593=JSON[_0x3037aa(0x110)](_0x33d7ac);if(_0xd6f593[_0x3037aa(0x126)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x1d6a37,_0x3037aa(0x113),!![]),'schemaVersion':_0xd6f593[_0x3037aa(0x126)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0xd6f593['schemaVersion'])};if(!Array[_0x3037aa(0x108)](_0xd6f593[_0x3037aa(0x146)]))return{...emptyServiceRegistryInspection(_0x1d6a37,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xd6f593[_0x3037aa(0x13e)],'message':_0x3037aa(0x137)};const _0x154d69=_0xd6f593[_0x3037aa(0x146)][_0x3037aa(0x145)](summarizeLocalServiceEntry);return{'registryPath':_0x1d6a37,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xd6f593[_0x3037aa(0x13e)],'serviceCount':_0x154d69[_0x3037aa(0x10e)],'commandCount':_0x154d69['reduce']((_0x7a3988,_0x16618b)=>_0x7a3988+_0x16618b[_0x3037aa(0x114)],0x0),'services':_0x154d69};}catch(_0x4d320a){return{...emptyServiceRegistryInspection(_0x1d6a37,_0x3037aa(0x113),!![]),'message':_0x4d320a instanceof Error?_0x4d320a[_0x3037aa(0x155)]:String(_0x4d320a)};}}export function formatValidationFailure(_0x41dfa7){const _0x403a44=a63_0xe12cb7,_0x27a304=_0x41dfa7[_0x403a44(0x132)]['map'](_0x362d7e=>_0x362d7e[_0x403a44(0x151)]+':\x20'+_0x362d7e[_0x403a44(0x155)]);return _0x403a44(0x140)+_0x27a304[_0x403a44(0x10d)]('\x0a');}function extractLoadedServiceManifests(_0x5bf83b,_0x2b4f65){const _0x36724e=a63_0xe12cb7;if(!isServiceRegistryLike(_0x5bf83b)){const _0x4a168c=_0x5bf83b,{manifest:_0x1342ee,errors:_0x3bbb3f}=adaptServiceTreeManifestForLegacyFramework(_0x4a168c),_0x1158a1=validateServiceTreeManifest(_0x1342ee),_0x4edd3c=mergeValidationErrors(_0x1158a1,_0x3bbb3f);return[{'manifest':_0x4a168c,'report':_0x4edd3c,'normalizedManifest':_0x4edd3c['ok']?normalizeServiceTreeManifest(_0x1342ee):undefined,'sourceHash':_0x2b4f65}];}return _0x5bf83b[_0x36724e(0x146)][_0x36724e(0x145)]((_0x4ff976,_0x19e188)=>{const _0x46093d=_0x36724e,_0x3821c5=isObjectRecord(_0x4ff976)?_0x4ff976[_0x46093d(0x10f)]:undefined,{manifest:_0x5a6241,errors:_0x5e7dec}=adaptServiceTreeManifestForLegacyFramework(_0x3821c5),_0x1c3495=validateServiceTreeManifest(_0x5a6241),_0x164e76=mergeValidationErrors(_0x1c3495,_0x5e7dec),_0x18d44a=isObjectRecord(_0x4ff976)&&typeof _0x4ff976[_0x46093d(0x14b)]===_0x46093d(0x139)?_0x4ff976[_0x46093d(0x14b)]:undefined;return{'manifest':_0x3821c5,'report':_0x164e76,'normalizedManifest':_0x164e76['ok']?normalizeServiceTreeManifest(_0x5a6241):undefined,'sourceHash':sha256(JSON[_0x46093d(0x141)](_0x3821c5,null,0x2)+'\x0a'),'registryIndex':_0x19e188,'registryServiceCode':_0x18d44a};});}function mergeValidationErrors(_0x32c843,_0x56e6cd){const _0x13521d=a63_0xe12cb7,_0x2bc328=_0x32c843[_0x13521d(0x132)][_0x13521d(0x145)](_0x8dce27=>_0x8dce27[_0x13521d(0x155)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x8dce27,'message':'bff\x20target\x20requires\x20functionName.'}:_0x8dce27),_0x51f885=[..._0x56e6cd,..._0x2bc328];return{'ok':_0x51f885[_0x13521d(0x10e)]===0x0,'errors':_0x51f885,'warnings':_0x32c843['warnings']};}function aggregateValidationReports(_0x2eb406){const _0x1c2d33=a63_0xe12cb7,_0x11435a=_0x2eb406['flatMap'](_0x381cad=>_0x381cad['registryIndex']===undefined?_0x381cad['report'][_0x1c2d33(0x132)]:_0x381cad['report']['errors']['map'](_0x529f60=>({..._0x529f60,'path':prefixRegistryIssuePath(_0x381cad[_0x1c2d33(0x127)],_0x529f60[_0x1c2d33(0x151)])}))),_0x2a043d=_0x2eb406[_0x1c2d33(0x116)](_0x5ae762=>_0x5ae762[_0x1c2d33(0x127)]===undefined?_0x5ae762[_0x1c2d33(0x147)][_0x1c2d33(0x13f)]:_0x5ae762[_0x1c2d33(0x147)][_0x1c2d33(0x13f)][_0x1c2d33(0x145)](_0x238223=>({..._0x238223,'path':prefixRegistryIssuePath(_0x5ae762['registryIndex'],_0x238223[_0x1c2d33(0x151)])})));return{'ok':_0x11435a['length']===0x0,'errors':_0x11435a,'warnings':_0x2a043d};}function prefixRegistryIssuePath(_0x542148,_0x1bf238){const _0x1841bb=a63_0xe12cb7;if(_0x1bf238==='$')return _0x1841bb(0x120)+_0x542148+_0x1841bb(0x122);if(_0x1bf238[_0x1841bb(0x12e)]('$.'))return'$.services['+_0x542148+_0x1841bb(0x122)+_0x1bf238['slice'](0x1);if(_0x1bf238[_0x1841bb(0x12e)]('$['))return _0x1841bb(0x120)+_0x542148+_0x1841bb(0x122)+_0x1bf238['slice'](0x1);return'$.services['+_0x542148+_0x1841bb(0x12f)+_0x1bf238;}function isServiceRegistryLike(_0x4381be){const _0x25134a=a63_0xe12cb7;return isObjectRecord(_0x4381be)&&_0x4381be[_0x25134a(0x126)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x25134a(0x108)](_0x4381be[_0x25134a(0x146)]);}function isObjectRecord(_0x358548){return Boolean(_0x358548)&&typeof _0x358548==='object'&&!Array['isArray'](_0x358548);}function emptyServiceRegistryInspection(_0x4c5a46,_0x582288,_0x1f3095){return{'registryPath':_0x4c5a46,'exists':_0x1f3095,'status':_0x582288,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x172fec){const _0x30c64f=a63_0xe12cb7,_0x3981e2=_0x172fec['normalizedManifest'],_0x3f4a06=_0x3981e2[_0x30c64f(0x10a)][_0x30c64f(0x145)](_0x324a24=>({'path':_0x324a24[_0x30c64f(0x135)],'description':_0x324a24['description'],'risk':_0x324a24[_0x30c64f(0x142)],'targetKind':_0x324a24[_0x30c64f(0x105)][_0x30c64f(0x107)],'targetCommand':_0x324a24[_0x30c64f(0x105)]['command']}));return{'serviceCode':_0x172fec[_0x30c64f(0x14b)],'name':_0x3981e2[_0x30c64f(0x152)][_0x30c64f(0x129)],'description':_0x3981e2['service'][_0x30c64f(0x153)],'version':_0x172fec[_0x30c64f(0x12c)],'importedAt':_0x172fec[_0x30c64f(0x133)],'source':_0x172fec[_0x30c64f(0x11b)],'commandCount':_0x3f4a06[_0x30c64f(0x10e)],'commands':_0x3f4a06};}function sha256(_0x175900){const _0x5c2716=a63_0xe12cb7;return createHash('sha256')['update'](_0x175900)['digest'](_0x5c2716(0x11a));}
1
+ const a63_0x4c31e3=a63_0x15aa;(function(_0x3856e5,_0x530a8c){const _0x28fbf8=a63_0x15aa,_0x1948af=_0x3856e5();while(!![]){try{const _0x158562=parseInt(_0x28fbf8(0x1ad))/0x1+parseInt(_0x28fbf8(0x195))/0x2*(parseInt(_0x28fbf8(0x1d1))/0x3)+-parseInt(_0x28fbf8(0x1c3))/0x4+-parseInt(_0x28fbf8(0x1a9))/0x5+-parseInt(_0x28fbf8(0x18e))/0x6+-parseInt(_0x28fbf8(0x1a8))/0x7+parseInt(_0x28fbf8(0x188))/0x8;if(_0x158562===_0x530a8c)break;else _0x1948af['push'](_0x1948af['shift']());}catch(_0x54f456){_0x1948af['push'](_0x1948af['shift']());}}}(a63_0x5313,0xd179b));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_0x4c31e3(0x1cf);function a63_0x15aa(_0x339841,_0x2b2b4e){_0x339841=_0x339841-0x181;const _0x5313e7=a63_0x5313();let _0x15aa35=_0x5313e7[_0x339841];return _0x15aa35;}export function getServiceRegistryPath(_0x43bc0f={}){const _0x3a28dc=a63_0x4c31e3;return resolve(_0x43bc0f[_0x3a28dc(0x192)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x3486f1={}){const _0xe1fbc0=a63_0x4c31e3,_0x1e44cf=getServiceRegistryPath(_0x3486f1);if(!existsSync(_0x1e44cf))return emptyServiceRegistry();try{const _0x362902=readFileSync(_0x1e44cf,_0xe1fbc0(0x1bf));if(!_0x362902[_0xe1fbc0(0x190)]())return emptyServiceRegistry();const _0x5df800=JSON[_0xe1fbc0(0x186)](_0x362902);if(_0x5df800[_0xe1fbc0(0x1be)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0xe1fbc0(0x198)](_0xe1fbc0(0x1c5)+String(_0x5df800[_0xe1fbc0(0x1be)]),_0xe1fbc0(0x1c1)+_0x1e44cf+'.');if(!Array[_0xe1fbc0(0x1c9)](_0x5df800['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5df800[_0xe1fbc0(0x1d3)],'services':_0x5df800[_0xe1fbc0(0x193)]};}catch(_0x487afd){if(_0x487afd instanceof Error&&_0x487afd[_0xe1fbc0(0x1bc)]===_0xe1fbc0(0x19d))throw _0x487afd;throw CliErrors[_0xe1fbc0(0x198)]('Invalid\x20service\x20registry\x20JSON:\x20'+_0x1e44cf,_0xe1fbc0(0x1b6));}}export function writeServiceRegistry(_0x5bd21d,_0x128874={}){const _0x549db6=a63_0x4c31e3,_0x4f778b=getServiceRegistryPath(_0x128874),_0x2115de=dirname(_0x4f778b);!existsSync(_0x2115de)&&mkdirSync(_0x2115de,{'recursive':!![]});const _0xdb786b=_0x4f778b+_0x549db6(0x183);try{writeFileSync(_0xdb786b,JSON[_0x549db6(0x1ab)](_0x5bd21d,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0xdb786b,_0x4f778b);}catch(_0x484ddf){try{unlinkSync(_0xdb786b);}catch{}if(_0x484ddf?.[_0x549db6(0x1aa)]===_0x549db6(0x18c))throw CliErrors[_0x549db6(0x198)](_0x549db6(0x1b4)+_0x4f778b);throw _0x484ddf;}return _0x4f778b;}export function loadServiceManifestFromFile(_0x5aa9b4){const _0x1f1eba=a63_0x4c31e3,_0x120206=resolve(_0x5aa9b4);if(!existsSync(_0x120206))throw CliErrors['validation'](_0x1f1eba(0x1a7)+_0x5aa9b4);let _0x1f6b53;const _0x1de50a=readFileSync(_0x120206,'utf8');try{_0x1f6b53=JSON[_0x1f1eba(0x186)](_0x1de50a);}catch{throw CliErrors['validation'](_0x1f1eba(0x191)+_0x5aa9b4,_0x1f1eba(0x187));}const _0x2c9a16=sha256(_0x1de50a),_0x4b9182=extractLoadedServiceManifests(_0x1f6b53,_0x2c9a16),_0x36316c=aggregateValidationReports(_0x4b9182),_0x3a6cf3=_0x4b9182[0x0];return{'filePath':_0x120206,'hash':_0x2c9a16,'kind':isServiceRegistryLike(_0x1f6b53)?_0x1f1eba(0x1cd):_0x1f1eba(0x1a4),'manifest':_0x3a6cf3?.['manifest']??_0x1f6b53,'report':_0x36316c,'normalizedManifest':_0x4b9182['length']===0x1?_0x3a6cf3?.[_0x1f1eba(0x1a0)]:undefined,'manifests':_0x4b9182};}export function importServiceManifest(_0x3dd967,_0x3c64dd={}){const _0x2ff746=a63_0x4c31e3,_0x45cc70=loadServiceManifestFromFile(_0x3dd967);if(!_0x45cc70[_0x2ff746(0x1a2)]['ok'])throw CliErrors[_0x2ff746(0x198)](formatValidationFailure(_0x45cc70['report']),_0x2ff746(0x185));if(_0x45cc70[_0x2ff746(0x1b0)]['length']===0x0)throw CliErrors['validation'](_0x2ff746(0x18b),_0x2ff746(0x1ca));const _0x4c437f=readServiceRegistry(_0x3c64dd),_0x40c6a=(_0x3c64dd['now']??(()=>new Date()))()[_0x2ff746(0x1b5)](),_0x1e0b49=[];let _0x523f35=0x0,_0xa42674=0x0;for(const _0x35f3b6 of _0x45cc70[_0x2ff746(0x1b0)]){if(!_0x35f3b6[_0x2ff746(0x1a0)])continue;const _0x146327=_0x35f3b6[_0x2ff746(0x1a0)][_0x2ff746(0x1a5)]['code'],_0x520d30={'serviceCode':_0x146327,'version':_0x35f3b6['normalizedManifest'][_0x2ff746(0x1c2)],'importedAt':_0x40c6a,'source':{'type':_0x2ff746(0x18d),'path':_0x45cc70['filePath'],'hash':_0x35f3b6[_0x2ff746(0x184)]},'manifest':_0x35f3b6['manifest'],'normalizedManifest':_0x35f3b6[_0x2ff746(0x1a0)]},_0x4d1ce5=_0x4c437f[_0x2ff746(0x193)][_0x2ff746(0x1d0)](_0x382fcb=>_0x382fcb[_0x2ff746(0x182)]===_0x146327);_0x4d1ce5>=0x0?(_0x4c437f['services'][_0x4d1ce5]=_0x520d30,_0xa42674++):(_0x4c437f[_0x2ff746(0x193)][_0x2ff746(0x1cc)](_0x520d30),_0x523f35++),_0x1e0b49[_0x2ff746(0x1cc)](_0x520d30);}_0x4c437f[_0x2ff746(0x193)][_0x2ff746(0x18a)]((_0x5029e2,_0x56018b)=>_0x5029e2[_0x2ff746(0x182)][_0x2ff746(0x1bb)](_0x56018b[_0x2ff746(0x182)])),_0x4c437f[_0x2ff746(0x1d3)]=_0x40c6a;const _0x351f56=writeServiceRegistry(_0x4c437f,_0x3c64dd);return{'registryPath':_0x351f56,'entry':_0x1e0b49[0x0],'replaced':_0x1e0b49[_0x2ff746(0x1b1)]===0x1?_0xa42674===0x1:_0xa42674>0x0,'entries':_0x1e0b49,'imported':_0x523f35,'updated':_0xa42674,'serviceCount':_0x4c437f['services']['length']};}function a63_0x5313(){const _0x42076b=['sort','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','ENOENT','file','5874972KkJwFc','importedAt','trim','Invalid\x20service\x20manifest\x20JSON:\x20','homeDir','services','kind','1978DALsvU','join','risk','validation','commandCount','path','slice','].manifest.','CliError','Service\x20manifest\x20validation\x20failed:\x0a','startsWith','normalizedManifest','sha256','report','registryIndex','manifest','service','hex','Service\x20manifest\x20file\x20not\x20found:\x20','4543126tZumhx','4133125AuIzDl','code','stringify','flatMap','1367198QkXmxd','message','invalid','manifests','length','bff\x20target\x20requires\x20functionName.','find','Cannot\x20write\x20service\x20registry:\x20','toISOString','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','errors','source','commands','services\x20must\x20be\x20an\x20array','localeCompare','name','$.services[','schemaVersion','utf8','string','Remove\x20or\x20migrate\x20','version','4012332rIvxIQ','empty','Unsupported\x20service\x20registry\x20schemaVersion:\x20','warnings','target','].manifest','isArray','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','command','push','registry','map','service.json','findIndex','3723fABtNp','description','updatedAt','splice','serviceCode','.tmp','sourceHash','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','parse','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','13770816lwqSGW','cliPath'];a63_0x5313=function(){return _0x42076b;};return a63_0x5313();}export function exportServiceManifest(_0x2b2a96,_0x43659e,_0x422986={}){const _0x292e87=a63_0x4c31e3,_0x19da03=getServiceRegistryPath(_0x422986),_0x25675e=getLocalServiceEntry(_0x2b2a96,_0x422986);if(!_0x25675e)throw CliErrors[_0x292e87(0x198)]('Local\x20service\x20not\x20found:\x20'+_0x2b2a96,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x146d56=resolve(_0x43659e),_0x41c292=dirname(_0x146d56);return!existsSync(_0x41c292)&&mkdirSync(_0x41c292,{'recursive':!![]}),writeFileSync(_0x146d56,JSON[_0x292e87(0x1ab)](_0x25675e[_0x292e87(0x1a4)],null,0x2)+'\x0a',{'encoding':_0x292e87(0x1bf),'mode':0x180}),{'registryPath':_0x19da03,'filePath':_0x146d56,'entry':_0x25675e};}export function removeServiceManifest(_0x13a1bb,_0x344e5f={}){const _0xb972e2=a63_0x4c31e3,_0x399c0a=readServiceRegistry(_0x344e5f),_0x4ae5dc=_0x13a1bb[_0xb972e2(0x190)](),_0x246c88=_0x399c0a[_0xb972e2(0x193)]['findIndex'](_0x491baf=>_0x491baf[_0xb972e2(0x182)]===_0x4ae5dc);if(_0x246c88<0x0)throw CliErrors[_0xb972e2(0x198)]('Local\x20service\x20not\x20found:\x20'+_0x4ae5dc,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x174aa8]=_0x399c0a[_0xb972e2(0x193)][_0xb972e2(0x181)](_0x246c88,0x1),_0x7fada9=(_0x344e5f['now']??(()=>new Date()))()[_0xb972e2(0x1b5)]();_0x399c0a[_0xb972e2(0x1d3)]=_0x7fada9;const _0x209bd8=writeServiceRegistry(_0x399c0a,_0x344e5f);return{'registryPath':_0x209bd8,'entry':_0x174aa8,'serviceCount':_0x399c0a['services'][_0xb972e2(0x1b1)]};}export function listLocalServices(_0x56a01d={}){const _0x63fabd=a63_0x4c31e3;return readServiceRegistry(_0x56a01d)[_0x63fabd(0x193)];}export function getLocalServiceEntry(_0x594a0f,_0x40876d={}){const _0x58ee84=a63_0x4c31e3;return readServiceRegistry(_0x40876d)[_0x58ee84(0x193)][_0x58ee84(0x1b3)](_0x4cb568=>_0x4cb568[_0x58ee84(0x182)]===_0x594a0f['trim']());}export function listLocalServiceTrees(_0x4110ba={}){const _0x5f5b74=a63_0x4c31e3;return readServiceRegistry(_0x4110ba)[_0x5f5b74(0x193)]['map'](_0xeb92a9=>_0xeb92a9[_0x5f5b74(0x1a0)]);}export function inspectServiceRegistry(_0x41d722={}){const _0x57f4f5=a63_0x4c31e3,_0x230181=getServiceRegistryPath(_0x41d722);if(!existsSync(_0x230181))return emptyServiceRegistryInspection(_0x230181,'missing',![]);try{const _0x5818d7=readFileSync(_0x230181,_0x57f4f5(0x1bf));if(!_0x5818d7[_0x57f4f5(0x190)]())return emptyServiceRegistryInspection(_0x230181,_0x57f4f5(0x1c4),!![]);const _0x47934c=JSON[_0x57f4f5(0x186)](_0x5818d7);if(_0x47934c['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x230181,_0x57f4f5(0x1af),!![]),'schemaVersion':_0x47934c[_0x57f4f5(0x1be)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x47934c[_0x57f4f5(0x1be)])};if(!Array['isArray'](_0x47934c[_0x57f4f5(0x193)]))return{...emptyServiceRegistryInspection(_0x230181,_0x57f4f5(0x1af),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x47934c[_0x57f4f5(0x1d3)],'message':_0x57f4f5(0x1ba)};const _0x39187d=_0x47934c[_0x57f4f5(0x193)][_0x57f4f5(0x1ce)](summarizeLocalServiceEntry);return{'registryPath':_0x230181,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x47934c[_0x57f4f5(0x1d3)],'serviceCount':_0x39187d[_0x57f4f5(0x1b1)],'commandCount':_0x39187d['reduce']((_0xb65ccd,_0x222578)=>_0xb65ccd+_0x222578[_0x57f4f5(0x199)],0x0),'services':_0x39187d};}catch(_0x26d95c){return{...emptyServiceRegistryInspection(_0x230181,'invalid',!![]),'message':_0x26d95c instanceof Error?_0x26d95c[_0x57f4f5(0x1ae)]:String(_0x26d95c)};}}export function formatValidationFailure(_0x414203){const _0xc37015=a63_0x4c31e3,_0x253980=_0x414203[_0xc37015(0x1b7)][_0xc37015(0x1ce)](_0x5d8379=>_0x5d8379[_0xc37015(0x19a)]+':\x20'+_0x5d8379[_0xc37015(0x1ae)]);return _0xc37015(0x19e)+_0x253980[_0xc37015(0x196)]('\x0a');}function extractLoadedServiceManifests(_0x208ecd,_0x45c6f3){if(!isServiceRegistryLike(_0x208ecd)){const _0x563dcf=_0x208ecd,{manifest:_0x5ec232,errors:_0x23b561}=adaptServiceTreeManifestForLegacyFramework(_0x563dcf),_0x34a91b=validateServiceTreeManifest(_0x5ec232),_0x735a26=mergeValidationErrors(_0x34a91b,_0x23b561);return[{'manifest':_0x563dcf,'report':_0x735a26,'normalizedManifest':_0x735a26['ok']?normalizeServiceTreeManifest(_0x5ec232):undefined,'sourceHash':_0x45c6f3}];}return _0x208ecd['services']['map']((_0x10605f,_0xa20907)=>{const _0x7a037d=a63_0x15aa,_0xd54c8f=isObjectRecord(_0x10605f)?_0x10605f[_0x7a037d(0x1a4)]:undefined,{manifest:_0x315a63,errors:_0x332b85}=adaptServiceTreeManifestForLegacyFramework(_0xd54c8f),_0xb8e253=validateServiceTreeManifest(_0x315a63),_0xc40acd=mergeValidationErrors(_0xb8e253,_0x332b85),_0x207080=isObjectRecord(_0x10605f)&&typeof _0x10605f[_0x7a037d(0x182)]===_0x7a037d(0x1c0)?_0x10605f[_0x7a037d(0x182)]:undefined;return{'manifest':_0xd54c8f,'report':_0xc40acd,'normalizedManifest':_0xc40acd['ok']?normalizeServiceTreeManifest(_0x315a63):undefined,'sourceHash':sha256(JSON['stringify'](_0xd54c8f,null,0x2)+'\x0a'),'registryIndex':_0xa20907,'registryServiceCode':_0x207080};});}function mergeValidationErrors(_0x20d630,_0x3b57c0){const _0x5941bc=a63_0x4c31e3,_0xc5faac=_0x20d630[_0x5941bc(0x1b7)][_0x5941bc(0x1ce)](_0x17e19a=>_0x17e19a[_0x5941bc(0x1ae)]==='bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.'?{..._0x17e19a,'message':_0x5941bc(0x1b2)}:_0x17e19a),_0x23a1b3=[..._0x3b57c0,..._0xc5faac];return{'ok':_0x23a1b3[_0x5941bc(0x1b1)]===0x0,'errors':_0x23a1b3,'warnings':_0x20d630['warnings']};}function aggregateValidationReports(_0x1f040d){const _0x23d561=a63_0x4c31e3,_0x562162=_0x1f040d['flatMap'](_0x496132=>_0x496132['registryIndex']===undefined?_0x496132['report'][_0x23d561(0x1b7)]:_0x496132[_0x23d561(0x1a2)][_0x23d561(0x1b7)][_0x23d561(0x1ce)](_0x549bed=>({..._0x549bed,'path':prefixRegistryIssuePath(_0x496132[_0x23d561(0x1a3)],_0x549bed['path'])}))),_0x47b98f=_0x1f040d[_0x23d561(0x1ac)](_0x23b635=>_0x23b635[_0x23d561(0x1a3)]===undefined?_0x23b635[_0x23d561(0x1a2)][_0x23d561(0x1c6)]:_0x23b635[_0x23d561(0x1a2)][_0x23d561(0x1c6)][_0x23d561(0x1ce)](_0x18a85a=>({..._0x18a85a,'path':prefixRegistryIssuePath(_0x23b635['registryIndex'],_0x18a85a[_0x23d561(0x19a)])})));return{'ok':_0x562162[_0x23d561(0x1b1)]===0x0,'errors':_0x562162,'warnings':_0x47b98f};}function prefixRegistryIssuePath(_0x35949d,_0x18f587){const _0x15f33f=a63_0x4c31e3;if(_0x18f587==='$')return'$.services['+_0x35949d+'].manifest';if(_0x18f587[_0x15f33f(0x19f)]('$.'))return _0x15f33f(0x1bd)+_0x35949d+_0x15f33f(0x1c8)+_0x18f587[_0x15f33f(0x19b)](0x1);if(_0x18f587[_0x15f33f(0x19f)]('$['))return _0x15f33f(0x1bd)+_0x35949d+_0x15f33f(0x1c8)+_0x18f587[_0x15f33f(0x19b)](0x1);return _0x15f33f(0x1bd)+_0x35949d+_0x15f33f(0x19c)+_0x18f587;}function isServiceRegistryLike(_0x4b784e){const _0x12a6c5=a63_0x4c31e3;return isObjectRecord(_0x4b784e)&&_0x4b784e[_0x12a6c5(0x1be)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x12a6c5(0x1c9)](_0x4b784e[_0x12a6c5(0x193)]);}function isObjectRecord(_0x2d0d86){const _0x13a522=a63_0x4c31e3;return Boolean(_0x2d0d86)&&typeof _0x2d0d86==='object'&&!Array[_0x13a522(0x1c9)](_0x2d0d86);}function emptyServiceRegistryInspection(_0x11759b,_0x48254e,_0x2b0864){return{'registryPath':_0x11759b,'exists':_0x2b0864,'status':_0x48254e,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x43ae1b){const _0x5cc245=a63_0x4c31e3,_0x163451=_0x43ae1b[_0x5cc245(0x1a0)],_0x3cb657=_0x163451[_0x5cc245(0x1b9)][_0x5cc245(0x1ce)](_0x58f4cd=>({'path':_0x58f4cd[_0x5cc245(0x189)],'description':_0x58f4cd[_0x5cc245(0x1d2)],'risk':_0x58f4cd[_0x5cc245(0x197)],'targetKind':_0x58f4cd[_0x5cc245(0x1c7)][_0x5cc245(0x194)],'targetCommand':_0x58f4cd[_0x5cc245(0x1c7)][_0x5cc245(0x1cb)]}));return{'serviceCode':_0x43ae1b[_0x5cc245(0x182)],'name':_0x163451[_0x5cc245(0x1a5)][_0x5cc245(0x1bc)],'description':_0x163451[_0x5cc245(0x1a5)][_0x5cc245(0x1d2)],'version':_0x43ae1b[_0x5cc245(0x1c2)],'importedAt':_0x43ae1b[_0x5cc245(0x18f)],'source':_0x43ae1b[_0x5cc245(0x1b8)],'commandCount':_0x3cb657['length'],'commands':_0x3cb657};}function sha256(_0x5dcc18){const _0x1a73f3=a63_0x4c31e3;return createHash(_0x1a73f3(0x1a1))['update'](_0x5dcc18)['digest'](_0x1a73f3(0x1a6));}
@@ -1 +1 @@
1
- const a64_0x3daaac=a64_0x1d93;(function(_0x24443c,_0x47c669){const _0x11a0a1=a64_0x1d93,_0x263fe2=_0x24443c();while(!![]){try{const _0x14af5e=parseInt(_0x11a0a1(0xdf))/0x1+parseInt(_0x11a0a1(0xd8))/0x2+-parseInt(_0x11a0a1(0xc7))/0x3+parseInt(_0x11a0a1(0xbc))/0x4*(-parseInt(_0x11a0a1(0xc5))/0x5)+-parseInt(_0x11a0a1(0xd5))/0x6*(-parseInt(_0x11a0a1(0xbb))/0x7)+-parseInt(_0x11a0a1(0xd1))/0x8*(-parseInt(_0x11a0a1(0xd2))/0x9)+-parseInt(_0x11a0a1(0xce))/0xa;if(_0x14af5e===_0x47c669)break;else _0x263fe2['push'](_0x263fe2['shift']());}catch(_0x2501d2){_0x263fe2['push'](_0x263fe2['shift']());}}}(a64_0x5ff3,0x46bff));function a64_0x1d93(_0xae1903,_0x57eb3f){_0xae1903=_0xae1903-0xba;const _0x5ff3fc=a64_0x5ff3();let _0x1d939c=_0x5ff3fc[_0xae1903];return _0x1d939c;}import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a64_0x3daaac(0xd3),'command':a64_0x3daaac(0xdd),'description':'Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','risk':a64_0x3daaac(0xcc),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x394dc0){const _0x6574ba=a64_0x3daaac,_0x1554ff=buildSkillCreatePlan(_0x394dc0[_0x6574ba(0xd9)]('name'),_0x394dc0[_0x6574ba(0xd9)](_0x6574ba(0xcd)),_0x394dc0[_0x6574ba(0xd9)]('target'));return{'method':_0x6574ba(0xba),'url':_0x1554ff[_0x6574ba(0xca)],'body':{'skillName':_0x1554ff[_0x6574ba(0xdb)][_0x6574ba(0xc6)],'type':_0x1554ff[_0x6574ba(0xdb)][_0x6574ba(0xcd)],'selfContained':!![],'files':_0x1554ff[_0x6574ba(0xdb)][_0x6574ba(0xc4)][_0x6574ba(0xde)](_0x2a5b21=>_0x2a5b21[_0x6574ba(0xd7)])},'description':_0x6574ba(0xcb)};},async 'execute'(_0x414267){const _0x4e1477=a64_0x3daaac,_0x42169a=buildSkillCreatePlan(_0x414267[_0x4e1477(0xd9)](_0x4e1477(0xbe)),_0x414267[_0x4e1477(0xd9)](_0x4e1477(0xcd)),_0x414267[_0x4e1477(0xd9)](_0x4e1477(0xc3)));return writeSkillDraft(_0x42169a,_0x414267[_0x4e1477(0xdc)](_0x4e1477(0xd4))),{'ok':!![],'data':{'skillName':_0x42169a['rendered'][_0x4e1477(0xc6)],'type':_0x42169a[_0x4e1477(0xdb)][_0x4e1477(0xcd)],'dir':_0x42169a['skillDir'],'files':_0x42169a[_0x4e1477(0xdb)][_0x4e1477(0xc4)][_0x4e1477(0xde)](_0x160751=>_0x160751[_0x4e1477(0xd7)])},'message':_0x4e1477(0xc8)+_0x42169a[_0x4e1477(0xdb)][_0x4e1477(0xc6)]};}};function buildSkillCreatePlan(_0x3f215a,_0x1ea4f9,_0x453663){const _0x4d68a6=a64_0x3daaac,_0x1132a8=_0x1ea4f9['trim'](),_0x20bdc1=renderSkillTemplate({'skillName':_0x3f215a,'type':_0x1132a8});!_0x1132a8&&writeCliSideChannelLine(_0x4d68a6(0xd0));const _0x145513=resolve(normalizeSkillTarget(_0x453663));return{'rendered':_0x20bdc1,'targetRoot':_0x145513,'skillDir':resolve(_0x145513,_0x20bdc1[_0x4d68a6(0xc6)])};}function normalizeSkillTarget(_0x3dc47c){const _0x158a05=a64_0x3daaac;return(_0x3dc47c||DEFAULT_SKILL_TARGET)[_0x158a05(0xbf)]()||DEFAULT_SKILL_TARGET;}function a64_0x5ff3(){const _0x26c08b=['Refusing\x20to\x20overwrite\x20symlink:\x20','rendered','bool','create','map','35463JUdZBw','WRITE','133DYWtCi','777756JmzrtG','isDirectory','name','trim','content','Skill\x20directory\x20already\x20exists:\x20','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','target','files','5ITFtDP','skillName','295074QgiLef','Created\x20local\x20Skill\x20draft\x20','isSymbolicLink','skillDir','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','read','type','6141790lFFMAG','validation','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','104lSWqDx','316233tIttaU','skill','force','97842Rlncfq','utf8','path','789380wNFWPs','str'];a64_0x5ff3=function(){return _0x26c08b;};return a64_0x5ff3();}function writeSkillDraft(_0x177127,_0x372e2a){const _0x15491a=a64_0x3daaac;if(existsSync(_0x177127[_0x15491a(0xca)])){const _0x304585=lstatSync(_0x177127['skillDir']);if(!_0x304585[_0x15491a(0xbd)]()||_0x304585['isSymbolicLink']())throw CliErrors[_0x15491a(0xcf)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x177127[_0x15491a(0xca)]);if(!_0x372e2a)throw CliErrors[_0x15491a(0xcf)](_0x15491a(0xc1)+_0x177127[_0x15491a(0xca)],_0x15491a(0xc2));}for(const _0x4b1c68 of _0x177127[_0x15491a(0xdb)][_0x15491a(0xc4)]){const _0x4a3e72=resolve(_0x177127[_0x15491a(0xca)],_0x4b1c68[_0x15491a(0xd7)]),_0x1b7d63=dirname(_0x4a3e72);mkdirSync(_0x1b7d63,{'recursive':!![]});if(existsSync(_0x4a3e72)&&lstatSync(_0x4a3e72)[_0x15491a(0xc9)]())throw CliErrors[_0x15491a(0xcf)](_0x15491a(0xda)+_0x4a3e72);writeFileSync(_0x4a3e72,_0x4b1c68[_0x15491a(0xc0)],_0x15491a(0xd6));}}
1
+ const a64_0x466b8e=a64_0x5b55;(function(_0x3874aa,_0x1ce2c0){const _0x2e92d5=a64_0x5b55,_0xe85088=_0x3874aa();while(!![]){try{const _0x47f030=parseInt(_0x2e92d5(0x8a))/0x1+parseInt(_0x2e92d5(0x7c))/0x2*(parseInt(_0x2e92d5(0x94))/0x3)+parseInt(_0x2e92d5(0x8c))/0x4+parseInt(_0x2e92d5(0x75))/0x5*(-parseInt(_0x2e92d5(0x82))/0x6)+parseInt(_0x2e92d5(0x92))/0x7+-parseInt(_0x2e92d5(0x7f))/0x8*(parseInt(_0x2e92d5(0x8b))/0x9)+-parseInt(_0x2e92d5(0x84))/0xa*(parseInt(_0x2e92d5(0x7a))/0xb);if(_0x47f030===_0x1ce2c0)break;else _0xe85088['push'](_0xe85088['shift']());}catch(_0x5de5a0){_0xe85088['push'](_0xe85088['shift']());}}}(a64_0x3fa7,0x90b02));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';function a64_0x3fa7(){const _0x4b8ffa=['target','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','content','path','create','83436PVPRwQ','3258414VwRWJJ','2124188anKNum','validation','Created\x20local\x20Skill\x20draft\x20','skill','skillDir','type','5305720Lmfdge','trim','224916EKvsTY','files','map','force','str','170xcysqT','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','utf8','skillName','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','9544227KXCvKY','rendered','14HcRsjq','read','isDirectory','8neyUHQ','isSymbolicLink','Skill\x20directory\x20already\x20exists:\x20','13218Rpfuof','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','10wTYCLF'];a64_0x3fa7=function(){return _0x4b8ffa;};return a64_0x3fa7();}function a64_0x5b55(_0x17e5d6,_0x23311f){_0x17e5d6=_0x17e5d6-0x75;const _0x3fa794=a64_0x3fa7();let _0x5b55be=_0x3fa794[_0x17e5d6];return _0x5b55be;}export const createCommand={'service':a64_0x466b8e(0x8f),'command':a64_0x466b8e(0x89),'description':a64_0x466b8e(0x76),'risk':a64_0x466b8e(0x7d),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x42ade1){const _0x4a4b69=a64_0x466b8e,_0x4356cc=buildSkillCreatePlan(_0x42ade1['str']('name'),_0x42ade1[_0x4a4b69(0x98)](_0x4a4b69(0x91)),_0x42ade1[_0x4a4b69(0x98)](_0x4a4b69(0x85)));return{'method':'WRITE','url':_0x4356cc[_0x4a4b69(0x90)],'body':{'skillName':_0x4356cc[_0x4a4b69(0x7b)][_0x4a4b69(0x78)],'type':_0x4356cc['rendered'][_0x4a4b69(0x91)],'selfContained':!![],'files':_0x4356cc[_0x4a4b69(0x7b)][_0x4a4b69(0x95)][_0x4a4b69(0x96)](_0x2512fe=>_0x2512fe[_0x4a4b69(0x88)])},'description':_0x4a4b69(0x83)};},async 'execute'(_0x2ccd4c){const _0x12ca59=a64_0x466b8e,_0x205238=buildSkillCreatePlan(_0x2ccd4c[_0x12ca59(0x98)]('name'),_0x2ccd4c['str'](_0x12ca59(0x91)),_0x2ccd4c['str']('target'));return writeSkillDraft(_0x205238,_0x2ccd4c['bool'](_0x12ca59(0x97))),{'ok':!![],'data':{'skillName':_0x205238[_0x12ca59(0x7b)][_0x12ca59(0x78)],'type':_0x205238[_0x12ca59(0x7b)]['type'],'dir':_0x205238[_0x12ca59(0x90)],'files':_0x205238[_0x12ca59(0x7b)][_0x12ca59(0x95)][_0x12ca59(0x96)](_0x59c9aa=>_0x59c9aa[_0x12ca59(0x88)])},'message':_0x12ca59(0x8e)+_0x205238[_0x12ca59(0x7b)][_0x12ca59(0x78)]};}};function buildSkillCreatePlan(_0x3039c8,_0x1980a4,_0x494fe5){const _0x388c94=a64_0x466b8e,_0x3953b6=_0x1980a4[_0x388c94(0x93)](),_0x4c3fa0=renderSkillTemplate({'skillName':_0x3039c8,'type':_0x3953b6});!_0x3953b6&&writeCliSideChannelLine(_0x388c94(0x86));const _0x1aa52c=resolve(normalizeSkillTarget(_0x494fe5));return{'rendered':_0x4c3fa0,'targetRoot':_0x1aa52c,'skillDir':resolve(_0x1aa52c,_0x4c3fa0[_0x388c94(0x78)])};}function normalizeSkillTarget(_0x226fdf){const _0xc19caa=a64_0x466b8e;return(_0x226fdf||DEFAULT_SKILL_TARGET)[_0xc19caa(0x93)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x5e161d,_0x1bc109){const _0x3f9607=a64_0x466b8e;if(existsSync(_0x5e161d['skillDir'])){const _0x4c3aee=lstatSync(_0x5e161d[_0x3f9607(0x90)]);if(!_0x4c3aee[_0x3f9607(0x7e)]()||_0x4c3aee[_0x3f9607(0x80)]())throw CliErrors[_0x3f9607(0x8d)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x5e161d[_0x3f9607(0x90)]);if(!_0x1bc109)throw CliErrors[_0x3f9607(0x8d)](_0x3f9607(0x81)+_0x5e161d[_0x3f9607(0x90)],_0x3f9607(0x79));}for(const _0x5ace77 of _0x5e161d['rendered'][_0x3f9607(0x95)]){const _0x3fac51=resolve(_0x5e161d[_0x3f9607(0x90)],_0x5ace77['path']),_0x3c7892=dirname(_0x3fac51);mkdirSync(_0x3c7892,{'recursive':!![]});if(existsSync(_0x3fac51)&&lstatSync(_0x3fac51)[_0x3f9607(0x80)]())throw CliErrors[_0x3f9607(0x8d)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0x3fac51);writeFileSync(_0x3fac51,_0x5ace77[_0x3f9607(0x87)],_0x3f9607(0x77));}}
@@ -1 +1 @@
1
- function a65_0xf0b2(){const _0xd44e71=['validation','Skill\x20diagram\x20validation\x20passed\x20for\x20','diagram-file','action','Found\x20Skill\x20diagram\x20for\x20','unchanged','4458BrlpVR','expectedDiagramRevision','version','2179810ihpGMo',';\x20first\x20write\x20expects\x20revision\x20','diagram-show','1148288hFVcbj','isInteger','expected-diagram-revision','found','2513EdJujO','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','Creates\x20or\x20replaces\x20a\x20Mermaid\x20diagram\x20for\x20an\x20exact\x20Skill\x20version.\x20The\x20write\x20is\x20rejected\x20if\x20the\x20server\x20version\x20has\x20changed.\x20The\x20confirmation\x20UI\x20does\x20not\x20show\x20the\x20diagram\x20body.','diagram-push','appCode','8783566gfcwnQ','11861mGnOne','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','read','source-fingerprint','5ijBVYi','Updated','str',';\x20next\x20write\x20expects\x20revision\x20','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','personal','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','scope','1855660WazGme','942558tgnSQH','18hCGrLZ','24CpuCyn','skill','test','trim','Create\x20or\x20replace\x20a\x20Mermaid\x20diagram\x20for\x20a\x20specific\x20Skill\x20version','created','skill-code','\x20is\x20unchanged.','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','skillCode'];a65_0xf0b2=function(){return _0xd44e71;};return a65_0xf0b2();}const a65_0x3e2fef=a65_0x5d92;(function(_0x1cd227,_0x4ce1c1){const _0x1697bd=a65_0x5d92,_0x31729d=_0x1cd227();while(!![]){try{const _0x22f580=parseInt(_0x1697bd(0xe7))/0x1*(parseInt(_0x1697bd(0xc7))/0x2)+-parseInt(_0x1697bd(0xc5))/0x3+-parseInt(_0x1697bd(0xf3))/0x4*(-parseInt(_0x1697bd(0xeb))/0x5)+parseInt(_0x1697bd(0xd7))/0x6*(-parseInt(_0x1697bd(0xe1))/0x7)+-parseInt(_0x1697bd(0xdd))/0x8+parseInt(_0x1697bd(0xc6))/0x9*(-parseInt(_0x1697bd(0xda))/0xa)+parseInt(_0x1697bd(0xe6))/0xb;if(_0x22f580===_0x4ce1c1)break;else _0x31729d['push'](_0x31729d['shift']());}catch(_0x1e0c7f){_0x31729d['push'](_0x31729d['shift']());}}}(a65_0xf0b2,0x3ba6c));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';import{readRequiredSkillDiagram}from'../diagram.js';import{DIAGRAM_FILE_FLAG,DIAGRAM_SCOPE_FLAG,DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,SOURCE_FINGERPRINT_FLAG}from'../flags.js';const TARGET_FLAGS=[DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,DIAGRAM_SCOPE_FLAG],WRITE_FLAGS=[...TARGET_FLAGS,SOURCE_FINGERPRINT_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,DIAGRAM_FILE_FLAG];function readDiagramTarget(_0x7d7a48){const _0x5a213b=a65_0x5d92,_0x59b3a5=_0x7d7a48[_0x5a213b(0xed)](_0x5a213b(0xcd))['trim'](),_0x355d4b=_0x7d7a48[_0x5a213b(0xed)](_0x5a213b(0xd9))[_0x5a213b(0xca)](),_0x3f06de=_0x7d7a48['str'](_0x5a213b(0xf2));if(!_0x59b3a5||!_0x355d4b||_0x3f06de!==_0x5a213b(0xf0)&&_0x3f06de!=='company')throw CliErrors[_0x5a213b(0xd1)](_0x5a213b(0xcf));return{'skillCode':_0x59b3a5,'version':_0x355d4b,'scope':_0x3f06de};}async function readDiagramWriteInput(_0x5e3f7b){const _0x41809d=a65_0x5d92,_0x22ee0e=_0x5e3f7b['num'](_0x41809d(0xdf)),_0x9acdc1=_0x5e3f7b[_0x41809d(0xed)](_0x41809d(0xea))[_0x41809d(0xca)]();if(!Number[_0x41809d(0xde)](_0x22ee0e)||_0x22ee0e<0x0)throw CliErrors[_0x41809d(0xd1)](_0x41809d(0xef));if(!/^sha256:[0-9a-f]{64}$/[_0x41809d(0xc9)](_0x9acdc1))throw CliErrors['validation'](_0x41809d(0xe2));return{'expectedDiagramRevision':_0x22ee0e,'sourceFingerprint':_0x9acdc1,'diagram':await readRequiredSkillDiagram(_0x5e3f7b['str'](_0x41809d(0xd3)))};}function a65_0x5d92(_0x54a168,_0x34abb5){_0x54a168=_0x54a168-0xc5;const _0xf0b253=a65_0xf0b2();let _0x5d92f6=_0xf0b253[_0x54a168];return _0x5d92f6;}export const diagramValidateCommand={'service':'skill','command':'diagram-validate','description':a65_0x3e2fef(0xf1),'risk':a65_0x3e2fef(0xe9),'flags':WRITE_FLAGS,async 'execute'(_0x7b0fd3){const _0x4e6172=a65_0x3e2fef,_0x4a6288=readDiagramTarget(_0x7b0fd3),_0x3e3ff5=await validateRuntimeSkillVersionDiagram(_0x7b0fd3[_0x4e6172(0xe5)],_0x4a6288[_0x4e6172(0xd0)],_0x4a6288[_0x4e6172(0xd9)],_0x4a6288[_0x4e6172(0xf2)],await readDiagramWriteInput(_0x7b0fd3));return{'ok':!![],'data':_0x3e3ff5,'message':_0x4e6172(0xd2)+_0x4a6288[_0x4e6172(0xd0)]+'@'+_0x4a6288[_0x4e6172(0xd9)]+'.'};}};export const diagramPushCommand={'service':'skill','command':a65_0x3e2fef(0xe4),'description':a65_0x3e2fef(0xcb),'risk':'write','confirmationDescription':a65_0x3e2fef(0xe3),'flags':WRITE_FLAGS,async 'execute'(_0x2e5f00){const _0x399202=a65_0x3e2fef,_0x3db488=readDiagramTarget(_0x2e5f00),_0x5c85e2=await putRuntimeSkillVersionDiagram(_0x2e5f00['appCode'],_0x3db488[_0x399202(0xd0)],_0x3db488['version'],_0x3db488['scope'],await readDiagramWriteInput(_0x2e5f00));return{'ok':!![],'data':_0x5c85e2,'message':_0x5c85e2[_0x399202(0xd4)]===_0x399202(0xd6)?'Skill\x20diagram\x20for\x20'+_0x3db488[_0x399202(0xd0)]+'@'+_0x3db488['version']+_0x399202(0xce):(_0x5c85e2[_0x399202(0xd4)]===_0x399202(0xcc)?'Created':_0x399202(0xec))+'\x20Skill\x20diagram\x20for\x20'+_0x3db488['skillCode']+'@'+_0x3db488[_0x399202(0xd9)]+'.'};}};export const diagramShowCommand={'service':a65_0x3e2fef(0xc8),'command':a65_0x3e2fef(0xdc),'description':a65_0x3e2fef(0xe8),'risk':'read','flags':TARGET_FLAGS,async 'execute'(_0x490d09){const _0x40486f=a65_0x3e2fef,_0x64978d=readDiagramTarget(_0x490d09),_0x1ec19a=await getRuntimeSkillVersionDiagram(_0x490d09[_0x40486f(0xe5)],_0x64978d[_0x40486f(0xd0)],_0x64978d[_0x40486f(0xd9)],_0x64978d['scope']);return{'ok':!![],'data':_0x1ec19a,'message':_0x1ec19a[_0x40486f(0xe0)]?_0x40486f(0xd5)+_0x64978d[_0x40486f(0xd0)]+'@'+_0x64978d['version']+_0x40486f(0xee)+_0x1ec19a['expectedDiagramRevision']+'.':'No\x20Skill\x20diagram\x20is\x20stored\x20for\x20'+_0x64978d[_0x40486f(0xd0)]+'@'+_0x64978d[_0x40486f(0xd9)]+_0x40486f(0xdb)+_0x1ec19a[_0x40486f(0xd8)]+'.'};}};
1
+ const a65_0x132d16=a65_0x545b;(function(_0x40e90c,_0x5f47b4){const _0x18d9d6=a65_0x545b,_0x5835ec=_0x40e90c();while(!![]){try{const _0x5a248e=parseInt(_0x18d9d6(0x14e))/0x1*(-parseInt(_0x18d9d6(0x172))/0x2)+parseInt(_0x18d9d6(0x166))/0x3+parseInt(_0x18d9d6(0x174))/0x4*(-parseInt(_0x18d9d6(0x153))/0x5)+-parseInt(_0x18d9d6(0x168))/0x6+-parseInt(_0x18d9d6(0x150))/0x7*(parseInt(_0x18d9d6(0x167))/0x8)+parseInt(_0x18d9d6(0x163))/0x9*(-parseInt(_0x18d9d6(0x162))/0xa)+-parseInt(_0x18d9d6(0x155))/0xb*(-parseInt(_0x18d9d6(0x16b))/0xc);if(_0x5a248e===_0x5f47b4)break;else _0x5835ec['push'](_0x5835ec['shift']());}catch(_0x26f1c1){_0x5835ec['push'](_0x5835ec['shift']());}}}(a65_0x54cc,0x579ce));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(_0x30e9e3){const _0xf9eb6c=a65_0x545b,_0x1ef127=_0x30e9e3['str'](_0xf9eb6c(0x15f))[_0xf9eb6c(0x16c)](),_0x26c8b0=_0x30e9e3['str']('version')[_0xf9eb6c(0x16c)](),_0x18d4e4=_0x30e9e3['str']('scope');if(!_0x1ef127||!_0x26c8b0||_0x18d4e4!==_0xf9eb6c(0x152)&&_0x18d4e4!=='company')throw CliErrors[_0xf9eb6c(0x165)](_0xf9eb6c(0x158));return{'skillCode':_0x1ef127,'version':_0x26c8b0,'scope':_0x18d4e4};}async function readDiagramWriteInput(_0x4b4e77){const _0x4a4af=a65_0x545b,_0x41003b=_0x4b4e77[_0x4a4af(0x15e)](_0x4a4af(0x177)),_0x50d6b0=_0x4b4e77[_0x4a4af(0x169)](_0x4a4af(0x156))['trim']();if(!Number[_0x4a4af(0x15b)](_0x41003b)||_0x41003b<0x0)throw CliErrors[_0x4a4af(0x165)]('--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.');if(!/^sha256:[0-9a-f]{64}$/[_0x4a4af(0x16f)](_0x50d6b0))throw CliErrors[_0x4a4af(0x165)](_0x4a4af(0x16e));return{'expectedDiagramRevision':_0x41003b,'sourceFingerprint':_0x50d6b0,'diagram':await readRequiredSkillDiagram(_0x4b4e77['str'](_0x4a4af(0x14c)))};}export const diagramValidateCommand={'service':a65_0x132d16(0x159),'command':'diagram-validate','description':a65_0x132d16(0x170),'risk':a65_0x132d16(0x154),'flags':WRITE_FLAGS,async 'execute'(_0x576a30){const _0x3ed1a5=a65_0x132d16,_0x269cef=readDiagramTarget(_0x576a30),_0x49fb6f=await validateRuntimeSkillVersionDiagram(_0x576a30['appCode'],_0x269cef[_0x3ed1a5(0x161)],_0x269cef[_0x3ed1a5(0x151)],_0x269cef[_0x3ed1a5(0x14f)],await readDiagramWriteInput(_0x576a30));return{'ok':!![],'data':_0x49fb6f,'message':_0x3ed1a5(0x173)+_0x269cef[_0x3ed1a5(0x161)]+'@'+_0x269cef[_0x3ed1a5(0x151)]+'.'};}};export const diagramPushCommand={'service':a65_0x132d16(0x159),'command':a65_0x132d16(0x15c),'description':'Create\x20or\x20replace\x20a\x20Mermaid\x20diagram\x20for\x20a\x20specific\x20Skill\x20version','risk':a65_0x132d16(0x176),'confirmationDescription':a65_0x132d16(0x171),'flags':WRITE_FLAGS,async 'execute'(_0x43a99a){const _0x2ea733=a65_0x132d16,_0x549755=readDiagramTarget(_0x43a99a),_0xd97898=await putRuntimeSkillVersionDiagram(_0x43a99a['appCode'],_0x549755['skillCode'],_0x549755[_0x2ea733(0x151)],_0x549755['scope'],await readDiagramWriteInput(_0x43a99a));return{'ok':!![],'data':_0xd97898,'message':_0xd97898[_0x2ea733(0x175)]==='unchanged'?'Skill\x20diagram\x20for\x20'+_0x549755[_0x2ea733(0x161)]+'@'+_0x549755[_0x2ea733(0x151)]+'\x20is\x20unchanged.':(_0xd97898[_0x2ea733(0x175)]===_0x2ea733(0x15a)?_0x2ea733(0x15d):'Updated')+'\x20Skill\x20diagram\x20for\x20'+_0x549755[_0x2ea733(0x161)]+'@'+_0x549755[_0x2ea733(0x151)]+'.'};}};function a65_0x545b(_0x34b5ff,_0x8ecea3){_0x34b5ff=_0x34b5ff-0x14c;const _0x54cc6b=a65_0x54cc();let _0x545b2c=_0x54cc6b[_0x34b5ff];return _0x545b2c;}export const diagramShowCommand={'service':'skill','command':a65_0x132d16(0x16a),'description':'Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','risk':'read','flags':TARGET_FLAGS,async 'execute'(_0x1057f1){const _0x51575a=a65_0x132d16,_0x3821ac=readDiagramTarget(_0x1057f1),_0x2d6674=await getRuntimeSkillVersionDiagram(_0x1057f1[_0x51575a(0x14d)],_0x3821ac[_0x51575a(0x161)],_0x3821ac['version'],_0x3821ac['scope']);return{'ok':!![],'data':_0x2d6674,'message':_0x2d6674['found']?_0x51575a(0x164)+_0x3821ac[_0x51575a(0x161)]+'@'+_0x3821ac['version']+_0x51575a(0x157)+_0x2d6674[_0x51575a(0x16d)]+'.':'No\x20Skill\x20diagram\x20is\x20stored\x20for\x20'+_0x3821ac[_0x51575a(0x161)]+'@'+_0x3821ac[_0x51575a(0x151)]+_0x51575a(0x160)+_0x2d6674['expectedDiagramRevision']+'.'};}};function a65_0x54cc(){const _0x54bdb1=['str','diagram-show','16843812EoLGGF','trim','expectedDiagramRevision','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','test','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','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.','18Ghudpz','Skill\x20diagram\x20validation\x20passed\x20for\x20','4waVDhF','action','write','expected-diagram-revision','diagram-file','appCode','6001XmWMtd','scope','105tVJVOv','version','personal','549805UOVZcM','read','11xthnSW','source-fingerprint',';\x20next\x20write\x20expects\x20revision\x20','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','skill','created','isInteger','diagram-push','Created','num','skill-code',';\x20first\x20write\x20expects\x20revision\x20','skillCode','676040wZucQf','18PVZXbG','Found\x20Skill\x20diagram\x20for\x20','validation','19077JfvNbp','379368MlpAwG','243930eayGkS'];a65_0x54cc=function(){return _0x54bdb1;};return a65_0x54cc();}
@@ -1 +1 @@
1
- const a66_0x24c729=a66_0x3c24;(function(_0xf86ff7,_0x403f8a){const _0x59c278=a66_0x3c24,_0x5728b8=_0xf86ff7();while(!![]){try{const _0xbe2ba3=parseInt(_0x59c278(0x203))/0x1+parseInt(_0x59c278(0x1e7))/0x2*(parseInt(_0x59c278(0x1f0))/0x3)+-parseInt(_0x59c278(0x1ea))/0x4*(parseInt(_0x59c278(0x1f6))/0x5)+parseInt(_0x59c278(0x1f3))/0x6*(parseInt(_0x59c278(0x1e5))/0x7)+parseInt(_0x59c278(0x1e4))/0x8*(-parseInt(_0x59c278(0x1ec))/0x9)+parseInt(_0x59c278(0x20a))/0xa+parseInt(_0x59c278(0x1f2))/0xb;if(_0xbe2ba3===_0x403f8a)break;else _0x5728b8['push'](_0x5728b8['shift']());}catch(_0x403d32){_0x5728b8['push'](_0x5728b8['shift']());}}}(a66_0x1ccc,0xc9aeb));function a66_0x1ccc(){const _0x58fc28=['3934548yagtMd','personal','261AAIMTY','scope','trim','version','158031zdizaF','length','5693886RnUDYt','42joGLzH','force','updated','5sXOYpg','project','bool','map','min','global','accessKey','filter','skipped','install','production','str','skill','1145462QOFICh','removed','../../../skills/runtime-skill-sync.js','skillRoots','appCode','company','code','615120ADkFMC','unchanged','action','all','232664wdVzPD','33026KqZvWT','envName','34TwitKb','includes','skillCode'];a66_0x1ccc=function(){return _0x58fc28;};return a66_0x1ccc();}function a66_0x3c24(_0x4ae57f,_0x29bafb){_0x4ae57f=_0x4ae57f-0x1e1;const _0x1cccd9=a66_0x1ccc();let _0x3c2468=_0x1cccd9[_0x4ae57f];return _0x3c2468;}import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';const PACKAGE_DOWNLOAD_CONCURRENCY=0x4;export const installCommand={'service':a66_0x24c729(0x202),'command':a66_0x24c729(0x1ff),'description':'Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','risk':'read','requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x1c0ef9){return syncRuntimeSkills(_0x1c0ef9);}};async function syncRuntimeSkills(_0x280d10){const _0x2dd961=a66_0x24c729,{downloadRuntimeSkillPackage:_0x58deb6,listRuntimeSkills:_0x5dd205}=await import('../../../core/api-client.js'),{linkEffectiveRuntimeSkills:_0x47c0e1,materializeRuntimeSkill:_0x5c9202,pruneStaleRuntimeSkillCache:_0x4bc069,pruneStaleRuntimeSkillLinks:_0x182979,resolveRuntimeSkillInstallTarget:_0x581ddc,reuseMaterializedRuntimeSkill:_0x430ac5}=await import(_0x2dd961(0x205)),_0x1282e2=_0x280d10['str'](_0x2dd961(0x209)),_0x3903cb=normalizeSyncScopes(_0x280d10[_0x2dd961(0x201)](_0x2dd961(0x1ed))),_0x53f078=_0x280d10[_0x2dd961(0x1e6)]??_0x2dd961(0x200),_0x587fad=_0x280d10[_0x2dd961(0x1fc)],_0x36f435=_0x280d10[_0x2dd961(0x1f8)](_0x2dd961(0x1f4));if(!_0x587fad)throw CliErrors['authRequired']('Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.');const _0x235065=_0x581ddc(_0x280d10[_0x2dd961(0x207)],_0x280d10[_0x2dd961(0x1f8)](_0x2dd961(0x1f7))?_0x2dd961(0x1f7):_0x2dd961(0x1fb)),_0xb72476=_0x581ddc(_0x280d10[_0x2dd961(0x207)],_0x235065[_0x2dd961(0x1ed)]===_0x2dd961(0x1f7)?_0x2dd961(0x1fb):_0x2dd961(0x1f7)),_0x396e26=await _0x5dd205({'appCode':_0x280d10['appCode'],'scope':_0x3903cb['length']===0x1?_0x3903cb[0x0]:_0x2dd961(0x1e3),'code':_0x1282e2[_0x2dd961(0x1ee)]()||undefined}),_0xa0e3bb=_0x3903cb[_0x2dd961(0x1e8)](_0x2dd961(0x1eb))?_0x396e26[_0x2dd961(0x1eb)]:[],_0x3b0178=_0x3903cb[_0x2dd961(0x1e8)](_0x2dd961(0x208))?_0x396e26[_0x2dd961(0x208)]:[],_0x3d5b46=new Set([..._0xa0e3bb['map'](_0x2448a2=>_0x2448a2[_0x2dd961(0x1e9)]?.['trim']())[_0x2dd961(0x1fd)](_0x47716a=>Boolean(_0x47716a)),..._0x3b0178[_0x2dd961(0x1f9)](_0xdf50b1=>_0xdf50b1[_0x2dd961(0x1e9)]?.[_0x2dd961(0x1ee)]())[_0x2dd961(0x1fd)](_0x3ff52e=>Boolean(_0x3ff52e))]),_0x4ad85b=_0x1282e2[_0x2dd961(0x1ee)]()?[_0x1282e2[_0x2dd961(0x1ee)]()]:undefined,_0xc61842=_0x3903cb[_0x2dd961(0x1f1)]===0x2&&_0x3903cb[_0x2dd961(0x1e8)](_0x2dd961(0x1eb))&&_0x3903cb[_0x2dd961(0x1e8)](_0x2dd961(0x208)),_0x2bb73a=_0xc61842?_0x182979(_0x235065,_0x3d5b46,_0x4ad85b):[],_0x5537aa=_0x4bc069({'env':_0x53f078,'accessKey':_0x587fad,'appCode':_0x280d10[_0x2dd961(0x207)],'activeSkillCodes':_0x3d5b46,'pruneSkillCodes':_0x4ad85b,'scopes':_0x3903cb,'protectedLinkRoots':_0xb72476[_0x2dd961(0x206)]}),_0x33fc54=[..._0xa0e3bb[_0x2dd961(0x1f9)](_0x966211=>({'skill':_0x966211,'scope':_0x2dd961(0x1eb)})),..._0x3b0178[_0x2dd961(0x1f9)](_0x2c938c=>({'skill':_0x2c938c,'scope':_0x2dd961(0x208)}))],_0x62c932=await mapConcurrent(_0x33fc54,PACKAGE_DOWNLOAD_CONCURRENCY,async({skill:_0x42b5e5,scope:_0x57ce66})=>{const _0x37d7b7=_0x2dd961,_0xfd3436=_0x430ac5(_0x42b5e5,_0x57ce66,{'env':_0x53f078,'accessKey':_0x587fad,'appCode':_0x280d10[_0x37d7b7(0x207)]});if(_0xfd3436)return _0xfd3436;return _0x5c9202(_0x42b5e5,_0x57ce66,{'env':_0x53f078,'accessKey':_0x587fad,'appCode':_0x280d10[_0x37d7b7(0x207)],'force':_0x36f435,'packageBytes':await downloadSkillPackage(_0x42b5e5,_0x57ce66,_0x280d10[_0x37d7b7(0x207)],_0x58deb6)});}),_0x272814=_0x47c0e1(_0x62c932,_0x235065),_0x2fa02b=countLinkActions(_0x272814);return{'ok':!![],'data':{'appCode':_0x280d10[_0x2dd961(0x207)],..._0x235065[_0x2dd961(0x1ed)]==='project'?{'installTarget':{'scope':_0x235065[_0x2dd961(0x1ed)],'skillRoots':[..._0x235065[_0x2dd961(0x206)]]}}:{},'personal':_0xa0e3bb['length'],'company':_0x3b0178[_0x2dd961(0x1f1)],'materialized':_0x62c932[_0x2dd961(0x1f1)],'links':{'total':_0x272814[_0x2dd961(0x1f1)],'created':_0x2fa02b['created']??0x0,'updated':_0x2fa02b[_0x2dd961(0x1f5)]??0x0,'unchanged':_0x2fa02b[_0x2dd961(0x1e1)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x2bb73a[_0x2dd961(0x1fd)](_0x3e704c=>_0x3e704c[_0x2dd961(0x1e2)]===_0x2dd961(0x204))['length'],'cacheDirs':_0x5537aa['filter'](_0x3e354b=>_0x3e354b[_0x2dd961(0x1e2)]===_0x2dd961(0x204))[_0x2dd961(0x1f1)],'skipped':[..._0x2bb73a,..._0x5537aa][_0x2dd961(0x1fd)](_0x403fc7=>_0x403fc7['action']===_0x2dd961(0x1fe))[_0x2dd961(0x1f1)]},'skills':{'personal':_0xa0e3bb[_0x2dd961(0x1f9)](summarizeRuntimeSkill),'company':_0x3b0178[_0x2dd961(0x1f9)](summarizeRuntimeSkill)}},'message':'Installed\x20'+_0xa0e3bb[_0x2dd961(0x1f1)]+'\x20personal\x20and\x20'+_0x3b0178['length']+'\x20company\x20Skill(s).'};}async function mapConcurrent(_0x1d097e,_0x392fb7,_0xd54080){const _0x21af85=a66_0x24c729,_0x198a2b=new Array(_0x1d097e[_0x21af85(0x1f1)]);let _0x589e58=0x0;const _0x13a1f5=Array['from']({'length':Math[_0x21af85(0x1fa)](_0x392fb7,_0x1d097e[_0x21af85(0x1f1)])},async()=>{const _0x3f85ac=_0x21af85;while(_0x589e58<_0x1d097e[_0x3f85ac(0x1f1)]){const _0x1a4e62=_0x589e58;_0x589e58+=0x1,_0x198a2b[_0x1a4e62]=await _0xd54080(_0x1d097e[_0x1a4e62]);}});return await Promise[_0x21af85(0x1e3)](_0x13a1f5),_0x198a2b;}async function downloadSkillPackage(_0x8a0747,_0x412e06,_0x3c1a6a,_0x1d3330){const _0x4f637d=a66_0x24c729,_0x3e53df=_0x8a0747[_0x4f637d(0x1ef)]?.[_0x4f637d(0x1ee)]();return _0x3e53df?_0x1d3330(_0x412e06,_0x8a0747[_0x4f637d(0x1e9)],_0x3c1a6a,_0x3e53df):_0x1d3330(_0x412e06,_0x8a0747['skillCode'],_0x3c1a6a);}function countLinkActions(_0x2258d3){return _0x2258d3['reduce']((_0xcbee43,_0x3ff742)=>{const _0x68621c=a66_0x3c24;return _0xcbee43[_0x3ff742[_0x68621c(0x1e2)]]=(_0xcbee43[_0x3ff742[_0x68621c(0x1e2)]]??0x0)+0x1,_0xcbee43;},{});}
1
+ const a66_0x3bcc57=a66_0x4bcc;(function(_0x3f9cd0,_0xb520e6){const _0x436d88=a66_0x4bcc,_0x43b03a=_0x3f9cd0();while(!![]){try{const _0x55547e=parseInt(_0x436d88(0x127))/0x1+parseInt(_0x436d88(0x11c))/0x2+parseInt(_0x436d88(0x124))/0x3*(parseInt(_0x436d88(0x125))/0x4)+parseInt(_0x436d88(0x12f))/0x5*(-parseInt(_0x436d88(0x139))/0x6)+-parseInt(_0x436d88(0x121))/0x7+-parseInt(_0x436d88(0x115))/0x8*(-parseInt(_0x436d88(0x12c))/0x9)+-parseInt(_0x436d88(0x11b))/0xa;if(_0x55547e===_0xb520e6)break;else _0x43b03a['push'](_0x43b03a['shift']());}catch(_0x17841c){_0x43b03a['push'](_0x43b03a['shift']());}}}(a66_0x4541,0x6da06));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';const PACKAGE_DOWNLOAD_CONCURRENCY=0x4;export const installCommand={'service':'skill','command':a66_0x3bcc57(0x129),'description':a66_0x3bcc57(0x13a),'risk':a66_0x3bcc57(0x11a),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x4e2de4){return syncRuntimeSkills(_0x4e2de4);}};async function syncRuntimeSkills(_0x3ddc7e){const _0x213145=a66_0x3bcc57,{downloadRuntimeSkillPackage:_0x5ec88c,listRuntimeSkills:_0x141d25}=await import(_0x213145(0x12e)),{linkEffectiveRuntimeSkills:_0x4a7b1f,materializeRuntimeSkill:_0x456f96,pruneStaleRuntimeSkillCache:_0x58915a,pruneStaleRuntimeSkillLinks:_0x3ef817,resolveRuntimeSkillInstallTarget:_0x4d4d46,reuseMaterializedRuntimeSkill:_0xece330}=await import('../../../skills/runtime-skill-sync.js'),_0x178ede=_0x3ddc7e['str'](_0x213145(0x134)),_0xcf1da6=normalizeSyncScopes(_0x3ddc7e[_0x213145(0x113)](_0x213145(0x112))),_0x2b0b63=_0x3ddc7e['envName']??_0x213145(0x123),_0x56c864=_0x3ddc7e[_0x213145(0x114)],_0x208a74=_0x3ddc7e['bool']('force');if(!_0x56c864)throw CliErrors['authRequired']('Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.');const _0x328a99=_0x4d4d46(_0x3ddc7e[_0x213145(0x137)],_0x3ddc7e[_0x213145(0x130)](_0x213145(0x138))?_0x213145(0x138):_0x213145(0x117)),_0x168483=_0x4d4d46(_0x3ddc7e[_0x213145(0x137)],_0x328a99[_0x213145(0x112)]===_0x213145(0x138)?_0x213145(0x117):_0x213145(0x138)),_0x192407=await _0x141d25({'appCode':_0x3ddc7e[_0x213145(0x137)],'scope':_0xcf1da6[_0x213145(0x11d)]===0x1?_0xcf1da6[0x0]:_0x213145(0x119),'code':_0x178ede[_0x213145(0x12b)]()||undefined}),_0xed734c=_0xcf1da6[_0x213145(0x11e)](_0x213145(0x132))?_0x192407[_0x213145(0x132)]:[],_0x3aea3f=_0xcf1da6[_0x213145(0x11e)](_0x213145(0x118))?_0x192407[_0x213145(0x118)]:[],_0x2a4811=new Set([..._0xed734c[_0x213145(0x122)](_0x1e3643=>_0x1e3643['skillCode']?.[_0x213145(0x12b)]())[_0x213145(0x12a)](_0x9e94d8=>Boolean(_0x9e94d8)),..._0x3aea3f[_0x213145(0x122)](_0x54fb53=>_0x54fb53[_0x213145(0x135)]?.[_0x213145(0x12b)]())['filter'](_0x29d31a=>Boolean(_0x29d31a))]),_0x3199ef=_0x178ede[_0x213145(0x12b)]()?[_0x178ede[_0x213145(0x12b)]()]:undefined,_0x989952=_0xcf1da6[_0x213145(0x11d)]===0x2&&_0xcf1da6[_0x213145(0x11e)](_0x213145(0x132))&&_0xcf1da6[_0x213145(0x11e)](_0x213145(0x118)),_0x5a6328=_0x989952?_0x3ef817(_0x328a99,_0x2a4811,_0x3199ef):[],_0x3b7800=_0x58915a({'env':_0x2b0b63,'accessKey':_0x56c864,'appCode':_0x3ddc7e[_0x213145(0x137)],'activeSkillCodes':_0x2a4811,'pruneSkillCodes':_0x3199ef,'scopes':_0xcf1da6,'protectedLinkRoots':_0x168483['skillRoots']}),_0x2806af=[..._0xed734c[_0x213145(0x122)](_0x21c07d=>({'skill':_0x21c07d,'scope':_0x213145(0x132)})),..._0x3aea3f['map'](_0x59f6c8=>({'skill':_0x59f6c8,'scope':_0x213145(0x118)}))],_0x57a019=await mapConcurrent(_0x2806af,PACKAGE_DOWNLOAD_CONCURRENCY,async({skill:_0x349f36,scope:_0x362e21})=>{const _0x2e083c=_0x213145,_0x10dcfb=_0xece330(_0x349f36,_0x362e21,{'env':_0x2b0b63,'accessKey':_0x56c864,'appCode':_0x3ddc7e[_0x2e083c(0x137)]});if(_0x10dcfb)return _0x10dcfb;return _0x456f96(_0x349f36,_0x362e21,{'env':_0x2b0b63,'accessKey':_0x56c864,'appCode':_0x3ddc7e[_0x2e083c(0x137)],'force':_0x208a74,'packageBytes':await downloadSkillPackage(_0x349f36,_0x362e21,_0x3ddc7e[_0x2e083c(0x137)],_0x5ec88c)});}),_0x30162d=_0x4a7b1f(_0x57a019,_0x328a99),_0x4255b0=countLinkActions(_0x30162d);return{'ok':!![],'data':{'appCode':_0x3ddc7e[_0x213145(0x137)],..._0x328a99[_0x213145(0x112)]===_0x213145(0x138)?{'installTarget':{'scope':_0x328a99[_0x213145(0x112)],'skillRoots':[..._0x328a99[_0x213145(0x11f)]]}}:{},'personal':_0xed734c[_0x213145(0x11d)],'company':_0x3aea3f[_0x213145(0x11d)],'materialized':_0x57a019['length'],'links':{'total':_0x30162d[_0x213145(0x11d)],'created':_0x4255b0[_0x213145(0x128)]??0x0,'updated':_0x4255b0[_0x213145(0x133)]??0x0,'unchanged':_0x4255b0[_0x213145(0x120)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x5a6328['filter'](_0x2d94f5=>_0x2d94f5['action']===_0x213145(0x12d))[_0x213145(0x11d)],'cacheDirs':_0x3b7800['filter'](_0x6eb13a=>_0x6eb13a[_0x213145(0x111)]==='removed')['length'],'skipped':[..._0x5a6328,..._0x3b7800][_0x213145(0x12a)](_0x3e65fd=>_0x3e65fd[_0x213145(0x111)]==='skipped')[_0x213145(0x11d)]},'skills':{'personal':_0xed734c[_0x213145(0x122)](summarizeRuntimeSkill),'company':_0x3aea3f['map'](summarizeRuntimeSkill)}},'message':_0x213145(0x131)+_0xed734c[_0x213145(0x11d)]+'\x20personal\x20and\x20'+_0x3aea3f[_0x213145(0x11d)]+'\x20company\x20Skill(s).'};}async function mapConcurrent(_0x15319b,_0x106ba3,_0x486260){const _0x164b02=a66_0x3bcc57,_0x58f2e1=new Array(_0x15319b[_0x164b02(0x11d)]);let _0x961248=0x0;const _0x47e050=Array[_0x164b02(0x126)]({'length':Math['min'](_0x106ba3,_0x15319b['length'])},async()=>{const _0x24745f=_0x164b02;while(_0x961248<_0x15319b[_0x24745f(0x11d)]){const _0x4cee46=_0x961248;_0x961248+=0x1,_0x58f2e1[_0x4cee46]=await _0x486260(_0x15319b[_0x4cee46]);}});return await Promise[_0x164b02(0x119)](_0x47e050),_0x58f2e1;}async function downloadSkillPackage(_0xb27013,_0x240aab,_0x2c9dd0,_0xdbc23c){const _0x1e1c6d=a66_0x3bcc57,_0x27d392=_0xb27013[_0x1e1c6d(0x136)]?.[_0x1e1c6d(0x12b)]();return _0x27d392?_0xdbc23c(_0x240aab,_0xb27013['skillCode'],_0x2c9dd0,_0x27d392):_0xdbc23c(_0x240aab,_0xb27013['skillCode'],_0x2c9dd0);}function countLinkActions(_0x5e3386){const _0x51ca3=a66_0x3bcc57;return _0x5e3386[_0x51ca3(0x116)]((_0xebbd3f,_0x58a1aa)=>{const _0x8f2538=_0x51ca3;return _0xebbd3f[_0x58a1aa[_0x8f2538(0x111)]]=(_0xebbd3f[_0x58a1aa[_0x8f2538(0x111)]]??0x0)+0x1,_0xebbd3f;},{});}function a66_0x4bcc(_0x3fb261,_0x15a474){_0x3fb261=_0x3fb261-0x111;const _0x454144=a66_0x4541();let _0x4bccbd=_0x454144[_0x3fb261];return _0x4bccbd;}function a66_0x4541(){const _0x132b8a=['815044VkGtxn','from','495360NxdDZZ','created','install','filter','trim','27OhESXD','removed','../../../core/api-client.js','27585DGSzyf','bool','Installed\x20','personal','updated','code','skillCode','version','appCode','project','498vAPjqq','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','action','scope','str','accessKey','1054280sBcULk','reduce','global','company','all','read','253170qgxwNu','430010wvWecr','length','includes','skillRoots','unchanged','5493215KWXITX','map','production','9JWPDbl'];a66_0x4541=function(){return _0x132b8a;};return a66_0x4541();}