@lovrabet/lovrabet-cli 2.3.1-beta.3 → 2.3.1

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 (175) hide show
  1. package/lib/cli.js +1 -1
  2. package/lib/commands/api-doc/index.js +1 -1
  3. package/lib/commands/app/cache.js +1 -1
  4. package/lib/commands/app/definitions.js +1 -1
  5. package/lib/commands/app/eligibility.js +1 -1
  6. package/lib/commands/app/mock-loader.js +1 -1
  7. package/lib/commands/app/remote-source.js +1 -1
  8. package/lib/commands/app/shared.js +1 -1
  9. package/lib/commands/app-config/get.js +1 -1
  10. package/lib/commands/app-config/index.js +1 -1
  11. package/lib/commands/artifact/index.js +1 -1
  12. package/lib/commands/auth/device.js +1 -1
  13. package/lib/commands/auth/index.js +1 -1
  14. package/lib/commands/auth/prompt.js +1 -1
  15. package/lib/commands/bff/detail.js +1 -1
  16. package/lib/commands/bff/exec.js +1 -1
  17. package/lib/commands/bff/index.js +1 -1
  18. package/lib/commands/cli-skill/index.js +1 -1
  19. package/lib/commands/common/config-policy.js +1 -1
  20. package/lib/commands/common/constraints.js +1 -1
  21. package/lib/commands/common/flags.js +1 -1
  22. package/lib/commands/common/local-file.js +1 -1
  23. package/lib/commands/config/definitions.js +1 -1
  24. package/lib/commands/config/init.js +1 -1
  25. package/lib/commands/config/shared.js +1 -1
  26. package/lib/commands/data/index.js +1 -1
  27. package/lib/commands/dataset/detail.js +1 -1
  28. package/lib/commands/dataset/index.js +1 -1
  29. package/lib/commands/dataset/list.js +1 -1
  30. package/lib/commands/dataset/sdk-doc.js +1 -1
  31. package/lib/commands/doctor.js +1 -1
  32. package/lib/commands/file/index.js +1 -1
  33. package/lib/commands/init.js +1 -1
  34. package/lib/commands/kb/index.js +1 -1
  35. package/lib/commands/logs/index.js +1 -1
  36. package/lib/commands/notification/config-list.js +1 -1
  37. package/lib/commands/notification/index.js +1 -1
  38. package/lib/commands/notification/shared.js +1 -1
  39. package/lib/commands/ocr/index.js +1 -1
  40. package/lib/commands/permit/dataset-get.js +1 -1
  41. package/lib/commands/permit/dataset-set.js +1 -1
  42. package/lib/commands/permit/index.js +1 -1
  43. package/lib/commands/permit/page-get.js +1 -1
  44. package/lib/commands/permit/page-set.js +1 -1
  45. package/lib/commands/permit/role-menus-set.js +1 -1
  46. package/lib/commands/permit/role-menus.js +1 -1
  47. package/lib/commands/permit/shared.js +1 -1
  48. package/lib/commands/personal-bff/index.js +1 -1
  49. package/lib/commands/registry.js +1 -1
  50. package/lib/commands/role/create.js +1 -1
  51. package/lib/commands/role/delete.js +1 -1
  52. package/lib/commands/role/detail.js +1 -1
  53. package/lib/commands/role/index.js +1 -1
  54. package/lib/commands/role/list.js +1 -1
  55. package/lib/commands/role/shared.js +1 -1
  56. package/lib/commands/role/update.js +1 -1
  57. package/lib/commands/role/user-add.js +1 -1
  58. package/lib/commands/role/user-remove.js +1 -1
  59. package/lib/commands/schedule/index.js +1 -1
  60. package/lib/commands/schema.js +1 -1
  61. package/lib/commands/service/dynamic.js +1 -1
  62. package/lib/commands/service/function-name-adapter.js +1 -1
  63. package/lib/commands/service/index.js +1 -1
  64. package/lib/commands/service/registry.js +1 -1
  65. package/lib/commands/skill/commands/create.js +1 -1
  66. package/lib/commands/skill/commands/diagram.js +1 -1
  67. package/lib/commands/skill/commands/install.js +1 -1
  68. package/lib/commands/skill/commands/list.js +1 -1
  69. package/lib/commands/skill/commands/push.js +1 -1
  70. package/lib/commands/skill/commands/validate.js +1 -1
  71. package/lib/commands/skill/diagram.js +1 -1
  72. package/lib/commands/skill/flags.js +1 -1
  73. package/lib/commands/skill/index.js +1 -1
  74. package/lib/commands/skill/manifest-helpers.js +1 -1
  75. package/lib/commands/skill/push-execute.js +1 -1
  76. package/lib/commands/skill/push-flow-helpers.js +1 -1
  77. package/lib/commands/skill/push-retarget.js +1 -1
  78. package/lib/commands/skill/scopes.js +1 -1
  79. package/lib/commands/skill/summary.js +1 -1
  80. package/lib/commands/skill/templates.js +1 -1
  81. package/lib/commands/skill/validate.js +1 -1
  82. package/lib/commands/sql/detail.js +1 -1
  83. package/lib/commands/sql/exec.js +1 -1
  84. package/lib/commands/sql/index.js +1 -1
  85. package/lib/commands/update.js +1 -1
  86. package/lib/commands/user-account/bind.js +1 -1
  87. package/lib/commands/user-account/index.js +1 -1
  88. package/lib/commands/workspace/index.js +1 -1
  89. package/lib/config/domain-config.js +1 -1
  90. package/lib/config/schema.js +1 -1
  91. package/lib/constant/app.js +1 -1
  92. package/lib/constant/auth-mode.js +1 -1
  93. package/lib/constant/cli.js +1 -1
  94. package/lib/constant/defaults.js +1 -1
  95. package/lib/constant/distribution.js +1 -1
  96. package/lib/constant/domain.d.ts +3 -3
  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.js +1 -1
  105. package/lib/core/api-client.d.ts +0 -16
  106. package/lib/core/api-client.js +1 -1
  107. package/lib/core/db-resolver.js +1 -1
  108. package/lib/core/kb-search-client.d.ts +30 -0
  109. package/lib/core/kb-search-client.js +1 -0
  110. package/lib/core/sdk-client.js +1 -1
  111. package/lib/errors.js +1 -1
  112. package/lib/framework/build-all-flags.js +1 -1
  113. package/lib/framework/dryrun.js +1 -1
  114. package/lib/framework/flags.js +1 -1
  115. package/lib/framework/help.js +1 -1
  116. package/lib/framework/index.js +1 -1
  117. package/lib/framework/output.js +1 -1
  118. package/lib/framework/preparse.js +1 -1
  119. package/lib/framework/rate-limit.js +1 -1
  120. package/lib/framework/raw-flags.js +1 -1
  121. package/lib/framework/response.js +1 -1
  122. package/lib/framework/runner-confirmation.js +1 -1
  123. package/lib/framework/runner-error.js +1 -1
  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.d.ts +2 -0
  128. package/lib/framework/types.js +1 -1
  129. package/lib/generated/build-info.d.ts +4 -4
  130. package/lib/generated/build-info.js +1 -1
  131. package/lib/generated/official-routing.js +1 -1
  132. package/lib/generated/routing-contract.js +1 -1
  133. package/lib/help.js +1 -1
  134. package/lib/postinstall.js +1 -1
  135. package/lib/runtime/confirmation.js +1 -1
  136. package/lib/runtime/event.js +1 -1
  137. package/lib/runtime/index.js +1 -1
  138. package/lib/runtime/queue.js +1 -1
  139. package/lib/runtime/resolve.js +1 -1
  140. package/lib/skills/builtin-skill.js +1 -1
  141. package/lib/skills/npx-skills-add.js +1 -1
  142. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  143. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  144. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  145. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  146. package/lib/skills/runtime-skill-sync/links.js +1 -1
  147. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  148. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  149. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  150. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  151. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  152. package/lib/skills/runtime-skill-sync/push.js +1 -1
  153. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  154. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  155. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  156. package/lib/skills/runtime-skill-sync.js +1 -1
  157. package/lib/skills/skill-presence.js +1 -1
  158. package/lib/utils/access-key-redaction.js +1 -1
  159. package/lib/utils/apply-jq-filter.js +1 -1
  160. package/lib/utils/cli-version-check.js +1 -1
  161. package/lib/utils/cli-version-policy.js +1 -1
  162. package/lib/utils/logger.js +1 -1
  163. package/lib/utils/lossless-json.js +1 -1
  164. package/lib/utils/params.js +1 -1
  165. package/lib/utils/platform.js +1 -1
  166. package/lib/utils/update-notice.js +1 -1
  167. package/lib/utils/version.js +1 -1
  168. package/lib/utils/write-cli-side-channel.js +1 -1
  169. package/package.json +1 -1
  170. package/skills/lovrabet/SKILL.md +2 -2
  171. package/skills/lovrabet/references/lovrabet-config-commands.md +3 -1
  172. package/skills/lovrabet/references/lovrabet-config.md +2 -2
  173. package/skills/lovrabet/references/lovrabet-doctor.md +2 -0
  174. package/skills/lovrabet/references/lovrabet-kb-workflow.md +3 -1
  175. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- const a58_0xbc541e=a58_0x164e;(function(_0x520010,_0x200c66){const _0x27bc69=a58_0x164e,_0xda8843=_0x520010();while(!![]){try{const _0x18ef2f=-parseInt(_0x27bc69(0x176))/0x1+-parseInt(_0x27bc69(0x185))/0x2*(-parseInt(_0x27bc69(0x154))/0x3)+-parseInt(_0x27bc69(0x182))/0x4+parseInt(_0x27bc69(0x17e))/0x5*(-parseInt(_0x27bc69(0x15c))/0x6)+-parseInt(_0x27bc69(0x179))/0x7+-parseInt(_0x27bc69(0x18b))/0x8+parseInt(_0x27bc69(0x15e))/0x9*(parseInt(_0x27bc69(0x15f))/0xa);if(_0x18ef2f===_0x200c66)break;else _0xda8843['push'](_0xda8843['shift']());}catch(_0x1ce076){_0xda8843['push'](_0xda8843['shift']());}}}(a58_0x143b,0x19afa));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':'kind','type':'string','required':!![],'enum':[a58_0xbc541e(0x184),a58_0xbc541e(0x173)],'description':a58_0xbc541e(0x163)},CRON_FLAG={'name':'cron','type':a58_0xbc541e(0x190),'description':a58_0xbc541e(0x193)},SCHEDULED_AT_FLAG={'name':a58_0xbc541e(0x18f),'type':a58_0xbc541e(0x190),'description':a58_0xbc541e(0x17f)},TITLE_FLAG={'name':a58_0xbc541e(0x157),'type':'string','required':!![],'description':a58_0xbc541e(0x16b)},PROMPT_FLAG={'name':a58_0xbc541e(0x17d),'type':a58_0xbc541e(0x190),'required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':'model','type':a58_0xbc541e(0x190),'enum':[a58_0xbc541e(0x192),a58_0xbc541e(0x16d),a58_0xbc541e(0x178)],'default':a58_0xbc541e(0x16d),'description':a58_0xbc541e(0x188)},SCHEDULE_ID_FLAG={'name':a58_0xbc541e(0x17a),'type':a58_0xbc541e(0x190),'required':!![],'description':'Schedule\x20UUID','pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a58_0xbc541e(0x14f)}},LIMIT_FLAG={'name':a58_0xbc541e(0x151),'type':a58_0xbc541e(0x174),'default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':a58_0xbc541e(0x183),'type':a58_0xbc541e(0x190),'description':a58_0xbc541e(0x152)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function a58_0x143b(){const _0x4c49a1=['trim','num','--title\x20must\x20not\x20be\x20blank.','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','run','Queued\x20Task\x20','Schedule\x20title','DELETE','deepseek-v4-flash-0731','Preview:\x20create\x20an\x20Agent\x20schedule','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','length','Schedule\x20input\x20is\x20valid','appCode','ONCE','number','str','55551dVbFIv','/api/harness/apps/','deepseek-v4-pro-0813','558593PIfAWB','schedule-id','\x20from\x20schedule\x20','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','prompt','1945olPSyM','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','delete','POST','47784CwFOEu','cursor','CRON','23362BTZnGJ','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','validation','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','UTC','high-risk-write','539288KMpciQ','build','/schedules','list','scheduled-at','string','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','kimi/k3','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','isSafeInteger','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','description','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','limit','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Preview:\x20delete\x20schedule\x20','15TJEvTX','detail','read','title','schedule','scheduleId','--prompt\x20must\x20not\x20be\x20blank.','body','2058hNUFQp','cron','9cPkJiB','3949390LsOjHw','create','kind','Created\x20','Schedule\x20kind:\x20CRON\x20or\x20ONCE','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.'];a58_0x143b=function(){return _0x4c49a1;};return a58_0x143b();}function readScheduleInput(_0x29498b){const _0x72a9c8=a58_0xbc541e,_0x421766=_0x29498b[_0x72a9c8(0x175)](_0x72a9c8(0x161)),_0x189bb3=_0x29498b[_0x72a9c8(0x175)](_0x72a9c8(0x157))['trim'](),_0x4534f6=_0x29498b['str']('prompt')[_0x72a9c8(0x165)](),_0x3b0195=_0x29498b[_0x72a9c8(0x175)]('model'),_0x46f3cc=_0x29498b[_0x72a9c8(0x175)](_0x72a9c8(0x15d)),_0xcdd597=_0x29498b[_0x72a9c8(0x175)](_0x72a9c8(0x18f));if(!_0x189bb3)throw CliErrors[_0x72a9c8(0x187)](_0x72a9c8(0x167));if(!_0x4534f6)throw CliErrors[_0x72a9c8(0x187)](_0x72a9c8(0x15a));if(_0x421766===_0x72a9c8(0x184)){if(!_0x46f3cc||_0xcdd597)throw CliErrors[_0x72a9c8(0x187)](_0x72a9c8(0x191));return{'kind':_0x421766,'timezone':'UTC','cron':_0x46f3cc,'title':_0x189bb3,'prompt':_0x4534f6,'model':_0x3b0195};}if(_0x421766===_0x72a9c8(0x173)){if(!_0xcdd597||_0x46f3cc)throw CliErrors[_0x72a9c8(0x187)](_0x72a9c8(0x17c));return{'kind':_0x421766,'timezone':_0x72a9c8(0x189),'scheduledAt':_0xcdd597,'title':_0x189bb3,'prompt':_0x4534f6,'model':_0x3b0195};}throw CliErrors[_0x72a9c8(0x187)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x26517f){const _0x263fd8=a58_0xbc541e;return _0x263fd8(0x177)+encodeURIComponent(_0x26517f)+_0x263fd8(0x18d);}function scheduleItemPath(_0x5b60a5,_0x5d2aab){return scheduleCollectionPath(_0x5b60a5)+'/'+encodeURIComponent(_0x5d2aab);}function a58_0x164e(_0x55e82f,_0x5f3c3e){_0x55e82f=_0x55e82f-0x14e;const _0x143ba4=a58_0x143b();let _0x164e21=_0x143ba4[_0x55e82f];return _0x164e21;}const scheduleValidate={'service':a58_0xbc541e(0x158),'command':'validate','description':a58_0xbc541e(0x168),'risk':a58_0xbc541e(0x156),'flags':INPUT_FLAGS,async 'validate'(_0x425627){readScheduleInput(_0x425627);},async 'execute'(_0x53851f){const _0x509523=a58_0xbc541e,_0x47ef1b=readScheduleInput(_0x53851f),_0x527157=await validateRuntimeSchedule(_0x53851f[_0x509523(0x172)],_0x47ef1b);return{'ok':!![],'data':_0x527157,'message':_0x509523(0x171)};}},scheduleCreate={'service':a58_0xbc541e(0x158),'command':a58_0xbc541e(0x160),'description':a58_0xbc541e(0x150),'risk':a58_0xbc541e(0x18a),'confirmationDescription':a58_0xbc541e(0x186),'flags':INPUT_FLAGS,async 'validate'(_0x33ea3a){readScheduleInput(_0x33ea3a);},async 'execute'(_0x56fdf4){const _0x3a6273=a58_0xbc541e,_0x58fd11=readScheduleInput(_0x56fdf4),_0xdd1073=await validateRuntimeSchedule(_0x56fdf4[_0x3a6273(0x172)],_0x58fd11),_0x26c94e=await createRuntimeSchedule(_0x56fdf4[_0x3a6273(0x172)],_0xdd1073);return{'ok':!![],'data':_0x26c94e,'message':_0x3a6273(0x162)+_0x26c94e[_0x3a6273(0x161)]+'\x20schedule\x20'+_0x26c94e[_0x3a6273(0x159)]};},async 'dryRun'(_0x42951b){const _0x397ff8=a58_0xbc541e,_0x2f2b93=readScheduleInput(_0x42951b);return dryRun('POST',scheduleCollectionPath(_0x42951b[_0x397ff8(0x172)]))[_0x397ff8(0x15b)](_0x2f2b93)[_0x397ff8(0x197)](_0x397ff8(0x16e))[_0x397ff8(0x18c)]();}},scheduleList={'service':a58_0xbc541e(0x158),'command':a58_0xbc541e(0x18e),'description':a58_0xbc541e(0x194),'risk':a58_0xbc541e(0x156),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x30886a){const _0x4a2ab1=a58_0xbc541e,_0x5bf6dc=_0x30886a['num'](_0x4a2ab1(0x151));if(!Number[_0x4a2ab1(0x195)](_0x5bf6dc)||_0x5bf6dc<0x1||_0x5bf6dc>0x64)throw CliErrors['validation'](_0x4a2ab1(0x164));const _0x45a489=_0x30886a[_0x4a2ab1(0x175)](_0x4a2ab1(0x183));if(_0x45a489&&(_0x45a489[_0x4a2ab1(0x170)]>0x400||_0x45a489[_0x4a2ab1(0x165)]()!==_0x45a489))throw CliErrors[_0x4a2ab1(0x187)](_0x4a2ab1(0x14e));},async 'execute'(_0x322aff){const _0x3f6b55=a58_0xbc541e,_0x7715ca=_0x322aff[_0x3f6b55(0x175)]('cursor'),_0x1bdef8=await listRuntimeSchedules(_0x322aff[_0x3f6b55(0x172)],{'kind':_0x322aff[_0x3f6b55(0x175)](_0x3f6b55(0x161)),'limit':_0x322aff[_0x3f6b55(0x166)](_0x3f6b55(0x151)),..._0x7715ca?{'cursor':_0x7715ca}:{}});return{'ok':!![],'data':_0x1bdef8};}},scheduleDetail={'service':a58_0xbc541e(0x158),'command':a58_0xbc541e(0x155),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a58_0xbc541e(0x156),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xeb65c8){const _0x2f71a9=a58_0xbc541e,_0x59a3c8=await getRuntimeSchedule(_0xeb65c8['appCode'],_0xeb65c8[_0x2f71a9(0x175)](_0x2f71a9(0x17a)));return{'ok':!![],'data':_0x59a3c8};}},scheduleRun={'service':a58_0xbc541e(0x158),'command':a58_0xbc541e(0x169),'description':'Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','risk':a58_0xbc541e(0x18a),'confirmationDescription':a58_0xbc541e(0x196),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x5a03e1){const _0x5714e8=a58_0xbc541e,_0x57925f=_0x5a03e1['str']('schedule-id'),_0x37c39d=await runRuntimeSchedule(_0x5a03e1[_0x5714e8(0x172)],_0x57925f);return{'ok':!![],'data':_0x37c39d,'message':_0x5714e8(0x16a)+_0x37c39d['taskId']+_0x5714e8(0x17b)+_0x57925f};},async 'dryRun'(_0x23dffa){const _0x38f693=a58_0xbc541e,_0x147b9f=_0x23dffa[_0x38f693(0x175)](_0x38f693(0x17a));return dryRun(_0x38f693(0x181),scheduleItemPath(_0x23dffa[_0x38f693(0x172)],_0x147b9f)+'/run')[_0x38f693(0x197)]('Preview:\x20run\x20schedule\x20'+_0x147b9f+'\x20immediately')[_0x38f693(0x18c)]();}},scheduleDelete={'service':a58_0xbc541e(0x158),'command':a58_0xbc541e(0x180),'description':a58_0xbc541e(0x16f),'risk':a58_0xbc541e(0x18a),'confirmationDescription':'Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x23f2c2){const _0x5d99c8=a58_0xbc541e,_0x5dbd4b=_0x23f2c2['str'](_0x5d99c8(0x17a)),_0x1f9d56=await deleteRuntimeSchedule(_0x23f2c2['appCode'],_0x5dbd4b);return{'ok':!![],'data':_0x1f9d56,'message':'Deleted\x20schedule\x20'+_0x5dbd4b};},async 'dryRun'(_0x17cd11){const _0x18beb8=a58_0xbc541e,_0x3a8f59=_0x17cd11[_0x18beb8(0x175)](_0x18beb8(0x17a));return dryRun(_0x18beb8(0x16c),scheduleItemPath(_0x17cd11[_0x18beb8(0x172)],_0x3a8f59))[_0x18beb8(0x197)](_0x18beb8(0x153)+_0x3a8f59)[_0x18beb8(0x18c)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
1
+ const a58_0x4b2b1a=a58_0x29ae;function a58_0x1969(){const _0x40a6e8=['length','346824EkPaOu','Run\x20the\x20schedule\x20once\x20immediately\x20and\x20create\x20a\x20Task','list','appCode','Delete\x20the\x20schedule\x20and\x20stop\x20future\x20triggers','delete','cursor','deepseek-v4-flash-0731','prompt','POST','ONCE','read','validation','cron','Ignores\x20the\x20original\x20trigger\x20time,\x20runs\x20the\x20schedule\x20once\x20now,\x20and\x20creates\x20a\x20new\x20Agent\x20Task.','str','3003MhuwoY','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','Permanently\x20deletes\x20the\x20schedule\x20and\x20stops\x20future\x20auto-triggers.\x20Historical\x20Tasks\x20already\x20created\x20are\x20not\x20affected.','description','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','28SsBXsU','1722987nGoefV','225185XLjyeW','title','\x20schedule\x20','build','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','detail','Preview:\x20run\x20schedule\x20','Preview:\x20delete\x20schedule\x20','high-risk-write','kimi/k3','DELETE','1194952VBPrzE','Creates\x20a\x20schedule\x20in\x20the\x20current\x20app\x20that\x20can\x20auto-trigger\x20an\x20Agent.\x20At\x20the\x20scheduled\x20time\x20a\x20Task\x20is\x20created\x20and\x20run.','Schedule\x20kind:\x20CRON\x20or\x20ONCE','27665ACaUMw','scheduled-at','create','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','114NDWdmB','kind','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','deepseek-v4-pro-0813','num','Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs','/run','schedule-id','40zmSvaU','Schedule\x20UUID','validate','98ziqnbz','schedule','limit','Preview:\x20create\x20an\x20Agent\x20schedule','Created\x20','number','UTC','string','Queued\x20Task\x20','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','Schedule\x20input\x20is\x20valid','CRON','Deleted\x20schedule\x20','40590cdZKac','body','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','Create\x20a\x20recurring\x20or\x20one-shot\x20Agent\x20schedule','trim'];a58_0x1969=function(){return _0x40a6e8;};return a58_0x1969();}(function(_0x33352d,_0x1c56ca){const _0x81cb11=a58_0x29ae,_0x46caa6=_0x33352d();while(!![]){try{const _0x57700b=-parseInt(_0x81cb11(0x11d))/0x1+parseInt(_0x81cb11(0x121))/0x2*(-parseInt(_0x81cb11(0x108))/0x3)+-parseInt(_0x81cb11(0x10d))/0x4*(parseInt(_0x81cb11(0x10f))/0x5)+-parseInt(_0x81cb11(0x139))/0x6*(parseInt(_0x81cb11(0x12c))/0x7)+parseInt(_0x81cb11(0x13f))/0x8+parseInt(_0x81cb11(0x10e))/0x9+-parseInt(_0x81cb11(0x129))/0xa*(-parseInt(_0x81cb11(0x11a))/0xb);if(_0x57700b===_0x1c56ca)break;else _0x46caa6['push'](_0x46caa6['shift']());}catch(_0x4a76f3){_0x46caa6['push'](_0x46caa6['shift']());}}}(a58_0x1969,0x2aa29));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';function a58_0x29ae(_0x3b5c90,_0xc847a5){_0x3b5c90=_0x3b5c90-0x107;const _0x1969e7=a58_0x1969();let _0x29ae57=_0x1969e7[_0x3b5c90];return _0x29ae57;}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_0x4b2b1a(0x122),'type':'string','required':!![],'enum':['CRON',a58_0x4b2b1a(0x149)],'description':a58_0x4b2b1a(0x11c)},CRON_FLAG={'name':a58_0x4b2b1a(0x14c),'type':a58_0x4b2b1a(0x133),'description':a58_0x4b2b1a(0x10c)},SCHEDULED_AT_FLAG={'name':a58_0x4b2b1a(0x11e),'type':a58_0x4b2b1a(0x133),'description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a58_0x4b2b1a(0x110),'type':a58_0x4b2b1a(0x133),'required':!![],'description':'Schedule\x20title'},PROMPT_FLAG={'name':'prompt','type':a58_0x4b2b1a(0x133),'required':!![],'description':a58_0x4b2b1a(0x126)},MODEL_FLAG={'name':'model','type':a58_0x4b2b1a(0x133),'enum':[a58_0x4b2b1a(0x118),a58_0x4b2b1a(0x146),a58_0x4b2b1a(0x124)],'default':a58_0x4b2b1a(0x146),'description':a58_0x4b2b1a(0x123)},SCHEDULE_ID_FLAG={'name':a58_0x4b2b1a(0x128),'type':a58_0x4b2b1a(0x133),'required':!![],'description':a58_0x4b2b1a(0x12a),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':'a\x20UUID\x20returned\x20by\x20schedule\x20create/list'}},LIMIT_FLAG={'name':'limit','type':a58_0x4b2b1a(0x131),'default':0x14,'description':'Page\x20size\x20from\x201\x20to\x20100'},CURSOR_FLAG={'name':a58_0x4b2b1a(0x145),'type':a58_0x4b2b1a(0x133),'description':a58_0x4b2b1a(0x135)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x3a1d7c){const _0x408fed=a58_0x4b2b1a,_0x18fd2b=_0x3a1d7c[_0x408fed(0x107)](_0x408fed(0x122)),_0x3e892c=_0x3a1d7c[_0x408fed(0x107)]('title')[_0x408fed(0x13d)](),_0x587229=_0x3a1d7c[_0x408fed(0x107)](_0x408fed(0x147))[_0x408fed(0x13d)](),_0xf29f82=_0x3a1d7c[_0x408fed(0x107)]('model'),_0x495d3c=_0x3a1d7c[_0x408fed(0x107)](_0x408fed(0x14c)),_0x58721b=_0x3a1d7c[_0x408fed(0x107)](_0x408fed(0x11e));if(!_0x3e892c)throw CliErrors[_0x408fed(0x14b)]('--title\x20must\x20not\x20be\x20blank.');if(!_0x587229)throw CliErrors['validation']('--prompt\x20must\x20not\x20be\x20blank.');if(_0x18fd2b===_0x408fed(0x137)){if(!_0x495d3c||_0x58721b)throw CliErrors[_0x408fed(0x14b)](_0x408fed(0x120));return{'kind':_0x18fd2b,'timezone':_0x408fed(0x132),'cron':_0x495d3c,'title':_0x3e892c,'prompt':_0x587229,'model':_0xf29f82};}if(_0x18fd2b===_0x408fed(0x149)){if(!_0x58721b||_0x495d3c)throw CliErrors['validation']('ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.');return{'kind':_0x18fd2b,'timezone':_0x408fed(0x132),'scheduledAt':_0x58721b,'title':_0x3e892c,'prompt':_0x587229,'model':_0xf29f82};}throw CliErrors[_0x408fed(0x14b)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x2c1c92){return'/api/harness/apps/'+encodeURIComponent(_0x2c1c92)+'/schedules';}function scheduleItemPath(_0x592791,_0x2c8336){return scheduleCollectionPath(_0x592791)+'/'+encodeURIComponent(_0x2c8336);}const scheduleValidate={'service':a58_0x4b2b1a(0x12d),'command':a58_0x4b2b1a(0x12b),'description':a58_0x4b2b1a(0x109),'risk':'read','flags':INPUT_FLAGS,async 'validate'(_0x1ed191){readScheduleInput(_0x1ed191);},async 'execute'(_0x4ecb77){const _0x50ac40=a58_0x4b2b1a,_0x4fef6d=readScheduleInput(_0x4ecb77),_0x51e060=await validateRuntimeSchedule(_0x4ecb77[_0x50ac40(0x142)],_0x4fef6d);return{'ok':!![],'data':_0x51e060,'message':_0x50ac40(0x136)};}},scheduleCreate={'service':a58_0x4b2b1a(0x12d),'command':a58_0x4b2b1a(0x11f),'description':a58_0x4b2b1a(0x13c),'risk':a58_0x4b2b1a(0x117),'confirmationDescription':a58_0x4b2b1a(0x11b),'flags':INPUT_FLAGS,async 'validate'(_0x3b085a){readScheduleInput(_0x3b085a);},async 'execute'(_0x201d32){const _0x130321=a58_0x4b2b1a,_0x5e6a0b=readScheduleInput(_0x201d32),_0x4b5eaf=await validateRuntimeSchedule(_0x201d32['appCode'],_0x5e6a0b),_0xe77a11=await createRuntimeSchedule(_0x201d32[_0x130321(0x142)],_0x4b5eaf);return{'ok':!![],'data':_0xe77a11,'message':_0x130321(0x130)+_0xe77a11[_0x130321(0x122)]+_0x130321(0x111)+_0xe77a11['scheduleId']};},async 'dryRun'(_0x115a12){const _0x5732c1=a58_0x4b2b1a,_0x34739c=readScheduleInput(_0x115a12);return dryRun(_0x5732c1(0x148),scheduleCollectionPath(_0x115a12[_0x5732c1(0x142)]))[_0x5732c1(0x13a)](_0x34739c)['description'](_0x5732c1(0x12f))[_0x5732c1(0x112)]();}},scheduleList={'service':'schedule','command':a58_0x4b2b1a(0x141),'description':a58_0x4b2b1a(0x13b),'risk':a58_0x4b2b1a(0x14a),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x333010){const _0x4b2a28=a58_0x4b2b1a,_0x3a3887=_0x333010['num'](_0x4b2a28(0x12e));if(!Number['isSafeInteger'](_0x3a3887)||_0x3a3887<0x1||_0x3a3887>0x64)throw CliErrors[_0x4b2a28(0x14b)](_0x4b2a28(0x113));const _0x3dbf36=_0x333010['str'](_0x4b2a28(0x145));if(_0x3dbf36&&(_0x3dbf36[_0x4b2a28(0x13e)]>0x400||_0x3dbf36[_0x4b2a28(0x13d)]()!==_0x3dbf36))throw CliErrors[_0x4b2a28(0x14b)]('--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.');},async 'execute'(_0xc56d5){const _0x30243c=a58_0x4b2b1a,_0x515d4b=_0xc56d5[_0x30243c(0x107)](_0x30243c(0x145)),_0x394bfc=await listRuntimeSchedules(_0xc56d5[_0x30243c(0x142)],{'kind':_0xc56d5['str'](_0x30243c(0x122)),'limit':_0xc56d5[_0x30243c(0x125)](_0x30243c(0x12e)),..._0x515d4b?{'cursor':_0x515d4b}:{}});return{'ok':!![],'data':_0x394bfc};}},scheduleDetail={'service':'schedule','command':a58_0x4b2b1a(0x114),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a58_0x4b2b1a(0x14a),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x19fb39){const _0x2e4439=a58_0x4b2b1a,_0x1f9f7b=await getRuntimeSchedule(_0x19fb39[_0x2e4439(0x142)],_0x19fb39['str'](_0x2e4439(0x128)));return{'ok':!![],'data':_0x1f9f7b};}},scheduleRun={'service':a58_0x4b2b1a(0x12d),'command':'run','description':a58_0x4b2b1a(0x140),'risk':a58_0x4b2b1a(0x117),'confirmationDescription':a58_0x4b2b1a(0x14d),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x3865f6){const _0x41cc7f=a58_0x4b2b1a,_0x158124=_0x3865f6[_0x41cc7f(0x107)](_0x41cc7f(0x128)),_0x5efb45=await runRuntimeSchedule(_0x3865f6[_0x41cc7f(0x142)],_0x158124);return{'ok':!![],'data':_0x5efb45,'message':_0x41cc7f(0x134)+_0x5efb45['taskId']+'\x20from\x20schedule\x20'+_0x158124};},async 'dryRun'(_0xca6f2){const _0x56b728=a58_0x4b2b1a,_0x3462c3=_0xca6f2[_0x56b728(0x107)](_0x56b728(0x128));return dryRun(_0x56b728(0x148),scheduleItemPath(_0xca6f2[_0x56b728(0x142)],_0x3462c3)+_0x56b728(0x127))[_0x56b728(0x10b)](_0x56b728(0x115)+_0x3462c3+'\x20immediately')['build']();}},scheduleDelete={'service':a58_0x4b2b1a(0x12d),'command':a58_0x4b2b1a(0x144),'description':a58_0x4b2b1a(0x143),'risk':a58_0x4b2b1a(0x117),'confirmationDescription':a58_0x4b2b1a(0x10a),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x375681){const _0x2b37da=a58_0x4b2b1a,_0x131685=_0x375681['str'](_0x2b37da(0x128)),_0x4617c3=await deleteRuntimeSchedule(_0x375681[_0x2b37da(0x142)],_0x131685);return{'ok':!![],'data':_0x4617c3,'message':_0x2b37da(0x138)+_0x131685};},async 'dryRun'(_0x399785){const _0x32ad61=a58_0x4b2b1a,_0x5797db=_0x399785[_0x32ad61(0x107)](_0x32ad61(0x128));return dryRun(_0x32ad61(0x119),scheduleItemPath(_0x399785[_0x32ad61(0x142)],_0x5797db))['description'](_0x32ad61(0x116)+_0x5797db)[_0x32ad61(0x112)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
@@ -1 +1 @@
1
- function a59_0x55cb(_0x5f22fa,_0x5a1b1a){_0x5f22fa=_0x5f22fa-0x1a7;const _0x544c09=a59_0x544c();let _0x55cbd1=_0x544c09[_0x5f22fa];return _0x55cbd1;}const a59_0x3432d8=a59_0x55cb;(function(_0x3cc50f,_0x12e5e9){const _0x531c37=a59_0x55cb,_0xaa57b5=_0x3cc50f();while(!![]){try{const _0x48582c=parseInt(_0x531c37(0x1ad))/0x1*(-parseInt(_0x531c37(0x1a9))/0x2)+-parseInt(_0x531c37(0x1b1))/0x3+parseInt(_0x531c37(0x1a7))/0x4*(-parseInt(_0x531c37(0x1a8))/0x5)+parseInt(_0x531c37(0x1b0))/0x6*(-parseInt(_0x531c37(0x1ae))/0x7)+parseInt(_0x531c37(0x1aa))/0x8+parseInt(_0x531c37(0x1b2))/0x9+parseInt(_0x531c37(0x1ac))/0xa;if(_0x48582c===_0x12e5e9)break;else _0xaa57b5['push'](_0xaa57b5['shift']());}catch(_0x4b760f){_0xaa57b5['push'](_0xaa57b5['shift']());}}}(a59_0x544c,0x7a30f));import{buildSchemaPayload}from'../framework/schema-export.js';function a59_0x544c(){const _0x3459dc=['2551820DLhVVR','32emVwrK','484928OZaiwG','export','19441960glEwLf','37952dVhfNK','14fjaWRy','Export\x20machine-readable\x20command\x20schema\x20(JSON)','491070RFJBln','2252235ySbgKk','4749426JbzWeL','read','4xGuaiV'];a59_0x544c=function(){return _0x3459dc;};return a59_0x544c();}async function execute(_0x3f7d2d){const _0xa8315c=await buildSchemaPayload();return{'ok':!![],'data':_0xa8315c};}export const schemaDefinition={'service':'schema','command':a59_0x3432d8(0x1ab),'description':a59_0x3432d8(0x1af),'risk':a59_0x3432d8(0x1b3),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
1
+ const a59_0x1c5406=a59_0x2f2b;function a59_0x2f2b(_0x3ee44f,_0xd59cea){_0x3ee44f=_0x3ee44f-0x132;const _0x252167=a59_0x2521();let _0x2f2b2c=_0x252167[_0x3ee44f];return _0x2f2b2c;}(function(_0x1ad6dd,_0x2dc11c){const _0xf7891b=a59_0x2f2b,_0x53e0da=_0x1ad6dd();while(!![]){try{const _0xd67533=parseInt(_0xf7891b(0x139))/0x1*(-parseInt(_0xf7891b(0x137))/0x2)+-parseInt(_0xf7891b(0x136))/0x3*(parseInt(_0xf7891b(0x135))/0x4)+parseInt(_0xf7891b(0x134))/0x5*(parseInt(_0xf7891b(0x13a))/0x6)+parseInt(_0xf7891b(0x132))/0x7+parseInt(_0xf7891b(0x13d))/0x8+-parseInt(_0xf7891b(0x138))/0x9+-parseInt(_0xf7891b(0x13e))/0xa;if(_0xd67533===_0x2dc11c)break;else _0x53e0da['push'](_0x53e0da['shift']());}catch(_0x4ebbda){_0x53e0da['push'](_0x53e0da['shift']());}}}(a59_0x2521,0xed8e5));function a59_0x2521(){const _0x47ec2a=['2359920ZONSXY','5038292hXnIYm','schema','25rUGuNl','1018252ASpciF','6ereMOq','2SdPGsm','3691692JAFZvi','1348637AOVfka','1176954alaVez','export','Export\x20machine-readable\x20command\x20schema\x20(JSON)','14211368IeHhJG'];a59_0x2521=function(){return _0x47ec2a;};return a59_0x2521();}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x3efc27){const _0x143460=await buildSchemaPayload();return{'ok':!![],'data':_0x143460};}export const schemaDefinition={'service':a59_0x1c5406(0x133),'command':a59_0x1c5406(0x13b),'description':a59_0x1c5406(0x13c),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
1
- (function(_0x1b79d0,_0x1ba72b){const _0x370121=a60_0x9c62,_0x599094=_0x1b79d0();while(!![]){try{const _0xfb5de5=-parseInt(_0x370121(0x176))/0x1*(-parseInt(_0x370121(0x12a))/0x2)+-parseInt(_0x370121(0x14d))/0x3*(-parseInt(_0x370121(0x13e))/0x4)+-parseInt(_0x370121(0x12b))/0x5+parseInt(_0x370121(0x142))/0x6+parseInt(_0x370121(0x12c))/0x7*(parseInt(_0x370121(0x120))/0x8)+parseInt(_0x370121(0x123))/0x9*(-parseInt(_0x370121(0x173))/0xa)+parseInt(_0x370121(0x14a))/0xb;if(_0xfb5de5===_0x1ba72b)break;else _0x599094['push'](_0x599094['shift']());}catch(_0x5cd955){_0x599094['push'](_0x599094['shift']());}}}(a60_0x1c70,0xbe20f));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';function a60_0x9c62(_0x2fb754,_0x3ee86f){_0x2fb754=_0x2fb754-0x11f;const _0x1c70f2=a60_0x1c70();let _0x9c62ac=_0x1c70f2[_0x2fb754];return _0x9c62ac;}import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x1b37c6,_0x291cdc){const _0x56012e=a60_0x9c62,_0x4151cd=listLocalServiceTrees();let _0x1090b3;for(const _0x51f40f of _0x4151cd){const _0x29d601=matchServiceTreeCommand(_0x51f40f,_0x1b37c6);if(!_0x29d601)continue;(!_0x1090b3||_0x29d601[_0x56012e(0x11f)][_0x56012e(0x131)][_0x56012e(0x181)]>_0x1090b3[_0x56012e(0x11f)]['fullPath'][_0x56012e(0x181)])&&(_0x1090b3={'tree':_0x51f40f,'command':_0x29d601['command'],'remainingArgs':_0x29d601[_0x56012e(0x137)]});}if(!_0x1090b3)return undefined;const _0x371050={..._0x291cdc};return applyAppBinding(_0x1090b3[_0x56012e(0x145)],_0x1090b3[_0x56012e(0x11f)],_0x371050),{'definition':buildDynamicCommandDefinition(_0x1090b3[_0x56012e(0x145)],_0x1090b3[_0x56012e(0x11f)]),'args':_0x1090b3[_0x56012e(0x137)],'flags':_0x371050,'tree':_0x1090b3[_0x56012e(0x145)],'command':_0x1090b3[_0x56012e(0x11f)]};}export function generateDynamicServiceHelp(_0x2f6f2f){const _0x523e08=a60_0x9c62,_0x2ca8b4=listLocalServiceTrees()[_0x523e08(0x16b)](_0x11978d=>_0x11978d[_0x523e08(0x148)]['code']===_0x2f6f2f);if(!_0x2ca8b4)return undefined;const _0x52c9f1=[CLI_BIN_NAME+'\x20'+_0x2f6f2f+_0x523e08(0x162),'',_0x2ca8b4[_0x523e08(0x148)][_0x523e08(0x177)]||_0x2f6f2f,_0x2ca8b4['service']['description']?'\x20\x20'+_0x2ca8b4[_0x523e08(0x148)][_0x523e08(0x16a)]:'','',_0x523e08(0x139),..._0x2ca8b4[_0x523e08(0x174)][_0x523e08(0x15c)](_0x1604a5=>{const _0x13d7ce=_0x523e08,_0x2c652f=_0x1604a5[_0x13d7ce(0x131)][_0x13d7ce(0x13d)](0x1)[_0x13d7ce(0x159)]('\x20'),_0x52a831=_0x1604a5['risk']==='read'?'':'\x20['+_0x1604a5[_0x13d7ce(0x157)]+']';return'\x20\x20'+_0x2c652f[_0x13d7ce(0x16e)](0x18)+'\x20'+(_0x1604a5['description']||'')+_0x52a831;}),'','Use\x20`'+CLI_BIN_NAME+_0x523e08(0x154)+_0x2f6f2f+'`\x20to\x20inspect\x20the\x20manifest.'][_0x523e08(0x155)](Boolean);return _0x52c9f1[_0x523e08(0x159)]('\x0a');}function a60_0x1c70(){const _0x2a0981=['padEnd','\x20completed\x20in\x20','bff','type','cliName','3575690lDNWbM','commands','Service\x20command\x20','28199HCtupZ','name','some','bffId','target','validation','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','datatable','ctx.','mapTo','flags','length','required','appCode','command','1930856lwBjCh','push','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','27QjlulK','SERVICE_TREE','\x20\x20\x20\x20functionName:\x20','Preview\x20dynamic\x20service\x20command:\x20','\x20\x20SERVICE\x20TREE\x20TARGET','const','params','10ZImRZQ','4425740CMxoXP','7caGrAN','trim','scriptName','\x20\x20\x20\x20','startsWith','fullPath','read','\x20\x20\x20\x20kind:\x20\x20\x20\x20','args','Unknown\x20appRef\x20\x22','source','remainingArgs','appRef','Commands:','entries','fromEntries','tableName','slice','1002548KPBQnI','env','\x20\x20\x20\x20datasetCode:\x20','string','3981960LTbfFg','datasetCode','Unsupported\x20service\x20target\x20kind:\x20','tree','flatMap','now','service','loginName','15839703eZBpoX','\x20\x20\x20\x20datatable:\x20','\x20\x20MAP\x20TO','3eSJOuh','\x22.\x20','code','\x22\x20in\x20service\x20command\x20','userName','bffCode','kind','\x20service\x20detail\x20--service\x20','filter','data','risk','nickname','join','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','Run\x20service\x20command\x20','map','\x20->\x20','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22','nickName','cliPath','\x20<command>\x20[flags]','envName','high-risk-write','employeeId','operator','sql','app','\x20\x20\x20\x20command:\x20','description','find','default','sqlCode'];a60_0x1c70=function(){return _0x2a0981;};return a60_0x1c70();}export function listDynamicServiceEntries(){const _0x511c57=a60_0x9c62;return listLocalServices()[_0x511c57(0x15c)](_0x134ca0=>{const _0x56c10c=_0x511c57,_0x3dbe3f=_0x134ca0['normalizedManifest'];return{'service':_0x3dbe3f[_0x56c10c(0x148)][_0x56c10c(0x14f)],'label':_0x3dbe3f[_0x56c10c(0x148)][_0x56c10c(0x177)]||_0x3dbe3f[_0x56c10c(0x148)][_0x56c10c(0x14f)],'commands':_0x3dbe3f['commands'][_0x56c10c(0x15c)](_0x2bda06=>({'command':dynamicCommandName(_0x2bda06),'description':_0x2bda06[_0x56c10c(0x16a)]||_0x56c10c(0x15b)+_0x2bda06[_0x56c10c(0x161)],'tag':riskTag(_0x2bda06[_0x56c10c(0x157)])}))};});}export function getDynamicServiceEntry(_0x3a0db1){const _0x16ec70=a60_0x9c62;return listDynamicServiceEntries()[_0x16ec70(0x16b)](_0x3b6ac9=>_0x3b6ac9[_0x16ec70(0x148)]===_0x3a0db1);}export function listDynamicServiceDefinitions(_0x133f80){const _0x3e708f=a60_0x9c62;return listLocalServiceTrees()[_0x3e708f(0x155)](_0x222923=>!_0x133f80||_0x222923[_0x3e708f(0x148)][_0x3e708f(0x14f)]===_0x133f80)[_0x3e708f(0x146)](_0x20b421=>_0x20b421[_0x3e708f(0x174)]['map'](_0x534646=>buildDynamicCommandDefinition(_0x20b421,_0x534646)));}export function getDynamicServiceDefinitions(_0x55790c){const _0x52050a=a60_0x9c62,_0x73b5ac=listDynamicServiceDefinitions(_0x55790c);return _0x73b5ac[_0x52050a(0x181)]>0x0?_0x73b5ac:undefined;}export function findDynamicServiceDefinition(_0x32415d,_0x110a3f){const _0x23d059=a60_0x9c62;return listDynamicServiceDefinitions(_0x32415d)[_0x23d059(0x16b)](_0x41dbbb=>_0x41dbbb[_0x23d059(0x11f)]===_0x110a3f);}export function buildDynamicCommandDefinition(_0x1ac1d2,_0x1d3225){const _0x38021c=a60_0x9c62;return{'service':_0x1ac1d2['service'][_0x38021c(0x14f)],'command':dynamicCommandName(_0x1d3225),'description':_0x1d3225['description']||_0x38021c(0x15b)+_0x1d3225['cliPath'],'risk':_0x1d3225[_0x38021c(0x157)],..._0x1d3225[_0x38021c(0x157)]==='read'?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x1d3225)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x1d3225[_0x38021c(0x134)]['map'](_0x392865=>({'name':_0x392865[_0x38021c(0x177)],'description':_0x392865[_0x38021c(0x16a)]||_0x392865[_0x38021c(0x177)],'required':_0x392865[_0x38021c(0x182)]})),'flags':_0x1d3225[_0x38021c(0x180)][_0x38021c(0x15c)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x1d3225),async 'dryRun'(_0x4e7564){const _0x5d3f45=_0x38021c,_0x96f53f=await compilePlan(_0x1d3225,_0x4e7564);return{'method':_0x5d3f45(0x124),'url':_0x1d3225[_0x5d3f45(0x161)],'body':{'target':targetPreview(_0x96f53f),'params':_0x96f53f[_0x5d3f45(0x129)]},'description':_0x5d3f45(0x126)+_0x1d3225[_0x5d3f45(0x161)]};},async 'execute'(_0x1a3f72){const _0x3c4112=_0x38021c,_0x21f929=await compilePlan(_0x1d3225,_0x1a3f72),_0x784b8a=Date['now'](),_0x389f99=await executePlan(_0x21f929,_0x1d3225,_0x1a3f72),_0x921021=Date[_0x3c4112(0x147)]()-_0x784b8a;return{'ok':!![],'data':{'service':_0x1ac1d2[_0x3c4112(0x148)],'command':_0x1d3225[_0x3c4112(0x161)],'target':targetPreview(_0x21f929),'result':_0x389f99,'elapsed':_0x921021},'message':'Service\x20command\x20'+_0x1d3225['cliPath']+_0x3c4112(0x16f)+_0x921021+'ms'};}};}function buildDynamicConfirmationDescription(_0x1dd291){const _0xba9f93=a60_0x9c62,_0x96c054=_0x1dd291[_0xba9f93(0x16a)]||_0x1dd291['cliPath'],_0x34c8d0=_0x1dd291[_0xba9f93(0x157)]===_0xba9f93(0x164)?_0xba9f93(0x122):'The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.';return _0xba9f93(0x15f)+_0x96c054+_0xba9f93(0x14e)+_0x34c8d0;}function dynamicCommandName(_0x25a9b2){const _0x2aa826=a60_0x9c62;return _0x25a9b2[_0x2aa826(0x131)][_0x2aa826(0x13d)](0x1)[_0x2aa826(0x159)]('\x20');}function riskTag(_0x3c460f){const _0x58971b=a60_0x9c62;return _0x3c460f===_0x58971b(0x132)?'':'\x20\x20['+_0x3c460f+']';}function flagToCommandFlag(_0x3241c1){const _0x4626b4=a60_0x9c62;return{'name':_0x3241c1[_0x4626b4(0x172)],'type':_0x3241c1[_0x4626b4(0x171)]==='json'?_0x4626b4(0x141):_0x3241c1[_0x4626b4(0x171)],'description':_0x3241c1[_0x4626b4(0x16a)]||_0x3241c1[_0x4626b4(0x177)],'required':_0x3241c1[_0x4626b4(0x182)],'default':isPrimitiveFlagDefault(_0x3241c1[_0x4626b4(0x16c)])?_0x3241c1[_0x4626b4(0x16c)]:undefined,'enum':_0x3241c1['enum']};}async function compilePlan(_0x186faa,_0x1d8b85){const _0x442739=a60_0x9c62;return compileServiceTreeCommand(_0x186faa,{'flags':_0x1d8b85['rawFlags'],'args':_0x1d8b85[_0x442739(0x134)],'context':await buildServiceContext(_0x186faa,_0x1d8b85)});}async function buildServiceContext(_0x25c919,_0x3371b4){const _0x4e7b60=a60_0x9c62,_0x14459b={'appCode':_0x3371b4[_0x4e7b60(0x183)],'env':_0x3371b4['envName'],'envName':_0x3371b4[_0x4e7b60(0x163)]};if(!usesRuntimeContext(_0x25c919))return _0x14459b;const _0x128bcd=await getLoginUserInfo(),_0x42d82d=pickFirst(_0x128bcd['userId'],_0x128bcd['id']);return{..._0x14459b,'user':_0x128bcd,'userId':_0x42d82d,'id':_0x128bcd['id'],'username':pickFirst(_0x128bcd['username'],_0x128bcd[_0x4e7b60(0x151)],_0x128bcd[_0x4e7b60(0x149)]),'userName':_0x128bcd['userName'],'nickname':pickFirst(_0x128bcd[_0x4e7b60(0x158)],_0x128bcd['nickName']),'nickName':_0x128bcd[_0x4e7b60(0x160)],'tenantCode':_0x128bcd['tenantCode'],'employeeId':_0x128bcd[_0x4e7b60(0x165)]};}function usesRuntimeContext(_0x43515f){const _0x1df44a=a60_0x9c62;return _0x43515f['mapTo'][_0x1df44a(0x178)](_0x338b50=>typeof _0x338b50[_0x1df44a(0x136)]===_0x1df44a(0x141)&&(_0x338b50[_0x1df44a(0x136)][_0x1df44a(0x130)]('context.')||_0x338b50[_0x1df44a(0x136)]['startsWith'](_0x1df44a(0x17e))));}function pickFirst(..._0xbc8018){const _0x3b2a82=a60_0x9c62;return _0xbc8018[_0x3b2a82(0x16b)](_0x180fe1=>_0x180fe1!==undefined&&_0x180fe1!==null);}async function executePlan(_0x4641d1,_0x3b068d,_0x2cb028){const _0x1a3480=a60_0x9c62;if(_0x4641d1[_0x1a3480(0x153)]===_0x1a3480(0x156)){const _0x20e94a=await resolveDatasetCode(_0x4641d1,_0x3b068d,_0x2cb028);return executeData(_0x20e94a,_0x4641d1['command'],_0x4641d1[_0x1a3480(0x129)]);}if(_0x4641d1['kind']===_0x1a3480(0x167)){if(!_0x4641d1[_0x1a3480(0x16d)])throw CliErrors['validation'](_0x1a3480(0x175)+_0x3b068d[_0x1a3480(0x161)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x4641d1[_0x1a3480(0x16d)],normalizeScalarParams(_0x4641d1['params']));}if(_0x4641d1['kind']===_0x1a3480(0x170)){const _0x3a9fa8=_0x4641d1['scriptName']||_0x4641d1['bffCode']||(_0x4641d1['bffId']==null?'':String(_0x4641d1[_0x1a3480(0x179)]));if(!_0x3a9fa8)throw CliErrors[_0x1a3480(0x17b)](_0x1a3480(0x175)+_0x3b068d[_0x1a3480(0x161)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0x3a9fa8,_0x4641d1[_0x1a3480(0x129)]);}throw CliErrors['validation'](_0x1a3480(0x144)+_0x4641d1['kind']);}async function resolveDatasetCode(_0x3b79c8,_0x21f8d3,_0x15b17f){const _0x56ddd6=a60_0x9c62;if(_0x3b79c8[_0x56ddd6(0x143)])return _0x3b79c8['datasetCode'];if(!_0x3b79c8[_0x56ddd6(0x17d)])throw CliErrors[_0x56ddd6(0x17b)](_0x56ddd6(0x175)+_0x21f8d3[_0x56ddd6(0x161)]+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x2e972c=await listDatasets(_0x15b17f[_0x56ddd6(0x183)]),_0x124f0f=_0x2e972c['find'](_0x2c84ce=>_0x2c84ce['dbtableConfig']?.[_0x56ddd6(0x13c)]===_0x3b79c8[_0x56ddd6(0x17d)]);if(!_0x124f0f?.[_0x56ddd6(0x14f)])throw CliErrors[_0x56ddd6(0x17b)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x3b79c8[_0x56ddd6(0x17d)]+_0x56ddd6(0x15e)+_0x15b17f['appCode']+'.',_0x56ddd6(0x15a));return _0x124f0f[_0x56ddd6(0x14f)];}function applyAppBinding(_0x3f52df,_0x12161b,_0x182a3b){const _0x475428=a60_0x9c62,_0x5b4311=_0x12161b[_0x475428(0x17a)][_0x475428(0x138)];if(!_0x5b4311)return;const _0x4b8acd=_0x3f52df['appBindings'][_0x5b4311];if(!_0x4b8acd)throw CliErrors['validation'](_0x475428(0x135)+_0x5b4311+_0x475428(0x150)+_0x12161b[_0x475428(0x161)]+'.',_0x475428(0x17c));const _0x3fd6ff=_0x4b8acd['appcode']||_0x4b8acd[_0x475428(0x183)];_0x3fd6ff&&!hasText(_0x182a3b['appcode'])&&(_0x182a3b['appcode']=_0x3fd6ff),_0x4b8acd[_0x475428(0x168)]&&!hasText(_0x182a3b['app'])&&!hasText(_0x182a3b['appcode'])&&(_0x182a3b[_0x475428(0x168)]=_0x4b8acd[_0x475428(0x168)]),_0x4b8acd['env']&&!hasText(_0x182a3b[_0x475428(0x13f)])&&(_0x182a3b[_0x475428(0x13f)]=_0x4b8acd['env']);}function renderDynamicCommandHelp(_0x1c6d68){const _0x48be6e=a60_0x9c62,_0x288f7f=[_0x48be6e(0x127),_0x48be6e(0x133)+_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x153)],_0x48be6e(0x169)+_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x11f)]];if(_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x143)])_0x288f7f['push'](_0x48be6e(0x140)+_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x143)]);if(_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x17d)])_0x288f7f[_0x48be6e(0x121)](_0x48be6e(0x14b)+_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x17d)]);if(_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x16d)])_0x288f7f[_0x48be6e(0x121)]('\x20\x20\x20\x20sqlCode:\x20'+_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x16d)]);if(_0x1c6d68[_0x48be6e(0x17a)]['scriptName'])_0x288f7f[_0x48be6e(0x121)](_0x48be6e(0x125)+_0x1c6d68[_0x48be6e(0x17a)][_0x48be6e(0x12e)]);if(_0x1c6d68[_0x48be6e(0x17f)][_0x48be6e(0x181)]>0x0){_0x288f7f[_0x48be6e(0x121)]('',_0x48be6e(0x14c));for(const _0x559d7c of _0x1c6d68[_0x48be6e(0x17f)]){_0x288f7f['push'](_0x48be6e(0x12f)+(_0x559d7c[_0x48be6e(0x136)]||_0x48be6e(0x128))+_0x48be6e(0x15d)+_0x559d7c[_0x48be6e(0x17a)]+(_0x559d7c[_0x48be6e(0x166)]?'.'+_0x559d7c[_0x48be6e(0x166)]:''));}}return _0x288f7f[_0x48be6e(0x159)]('\x0a');}function targetPreview(_0x123178){const _0x2d0117=a60_0x9c62;return{'kind':_0x123178['kind'],'command':_0x123178['command'],'appRef':_0x123178[_0x2d0117(0x138)],'datasetCode':_0x123178[_0x2d0117(0x143)],'datatable':_0x123178[_0x2d0117(0x17d)],'sqlCode':_0x123178[_0x2d0117(0x16d)],'bffCode':_0x123178[_0x2d0117(0x152)],'bffId':_0x123178['bffId'],'functionName':_0x123178[_0x2d0117(0x12e)]};}function normalizeScalarParams(_0x4a7741){const _0x250d05=a60_0x9c62;return Object[_0x250d05(0x13b)](Object[_0x250d05(0x13a)](_0x4a7741)[_0x250d05(0x155)](([,_0x16c8d4])=>typeof _0x16c8d4==='string'||typeof _0x16c8d4==='number'));}function hasText(_0x2942df){const _0x13c557=a60_0x9c62;return typeof _0x2942df==='string'&&_0x2942df[_0x13c557(0x12d)]()['length']>0x0;}function isPrimitiveFlagDefault(_0x4c96cc){const _0x37b97b=a60_0x9c62;return _0x4c96cc===undefined||typeof _0x4c96cc===_0x37b97b(0x141)||typeof _0x4c96cc==='number'||typeof _0x4c96cc==='boolean';}
1
+ (function(_0x5cd103,_0x283901){const _0x286ede=a60_0x6f84,_0x1f97ad=_0x5cd103();while(!![]){try{const _0xc445ce=-parseInt(_0x286ede(0xcf))/0x1*(parseInt(_0x286ede(0x111))/0x2)+-parseInt(_0x286ede(0xe2))/0x3+parseInt(_0x286ede(0xca))/0x4+-parseInt(_0x286ede(0xd1))/0x5*(parseInt(_0x286ede(0x102))/0x6)+parseInt(_0x286ede(0xc3))/0x7+parseInt(_0x286ede(0xf7))/0x8+-parseInt(_0x286ede(0xeb))/0x9*(parseInt(_0x286ede(0xc1))/0xa);if(_0xc445ce===_0x283901)break;else _0x1f97ad['push'](_0x1f97ad['shift']());}catch(_0x5af803){_0x1f97ad['push'](_0x1f97ad['shift']());}}}(a60_0x4076,0xe85e7));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(_0xb91f84,_0x4af0ac){const _0x4090e6=a60_0x6f84,_0x381879=listLocalServiceTrees();let _0x50417b;for(const _0x58dcf2 of _0x381879){const _0x4d31aa=matchServiceTreeCommand(_0x58dcf2,_0xb91f84);if(!_0x4d31aa)continue;(!_0x50417b||_0x4d31aa[_0x4090e6(0xf8)][_0x4090e6(0x115)]['length']>_0x50417b[_0x4090e6(0xf8)][_0x4090e6(0x115)][_0x4090e6(0x104)])&&(_0x50417b={'tree':_0x58dcf2,'command':_0x4d31aa['command'],'remainingArgs':_0x4d31aa['remainingArgs']});}if(!_0x50417b)return undefined;const _0x5e617e={..._0x4af0ac};return applyAppBinding(_0x50417b['tree'],_0x50417b['command'],_0x5e617e),{'definition':buildDynamicCommandDefinition(_0x50417b[_0x4090e6(0xd0)],_0x50417b['command']),'args':_0x50417b[_0x4090e6(0xd6)],'flags':_0x5e617e,'tree':_0x50417b[_0x4090e6(0xd0)],'command':_0x50417b['command']};}function a60_0x6f84(_0x43de1c,_0x3bf723){_0x43de1c=_0x43de1c-0xb9;const _0x40761a=a60_0x4076();let _0x6f84c2=_0x40761a[_0x43de1c];return _0x6f84c2;}export function generateDynamicServiceHelp(_0x308659){const _0x22b364=a60_0x6f84,_0x3834a7=listLocalServiceTrees()[_0x22b364(0x105)](_0x2ba9a2=>_0x2ba9a2[_0x22b364(0xf0)][_0x22b364(0xe8)]===_0x308659);if(!_0x3834a7)return undefined;const _0x47dbcf=[CLI_BIN_NAME+'\x20'+_0x308659+_0x22b364(0xf9),'',_0x3834a7[_0x22b364(0xf0)][_0x22b364(0xee)]||_0x308659,_0x3834a7[_0x22b364(0xf0)][_0x22b364(0x126)]?'\x20\x20'+_0x3834a7[_0x22b364(0xf0)][_0x22b364(0x126)]:'','',_0x22b364(0xe7),..._0x3834a7[_0x22b364(0xf3)][_0x22b364(0x103)](_0x59aee4=>{const _0x13ceca=_0x22b364,_0x18c616=_0x59aee4[_0x13ceca(0x115)][_0x13ceca(0xfa)](0x1)[_0x13ceca(0x116)]('\x20'),_0x2abc0e=_0x59aee4[_0x13ceca(0x109)]===_0x13ceca(0x108)?'':'\x20['+_0x59aee4[_0x13ceca(0x109)]+']';return'\x20\x20'+_0x18c616[_0x13ceca(0x10b)](0x18)+'\x20'+(_0x59aee4[_0x13ceca(0x126)]||'')+_0x2abc0e;}),'','Use\x20`'+CLI_BIN_NAME+_0x22b364(0xe1)+_0x308659+_0x22b364(0x11e)][_0x22b364(0xe0)](Boolean);return _0x47dbcf[_0x22b364(0x116)]('\x0a');}export function listDynamicServiceEntries(){const _0x10fe8f=a60_0x6f84;return listLocalServices()[_0x10fe8f(0x103)](_0x538e29=>{const _0x888f9e=_0x10fe8f,_0x4504c8=_0x538e29[_0x888f9e(0xd5)];return{'service':_0x4504c8['service']['code'],'label':_0x4504c8['service'][_0x888f9e(0xee)]||_0x4504c8[_0x888f9e(0xf0)][_0x888f9e(0xe8)],'commands':_0x4504c8['commands']['map'](_0x58968b=>({'command':dynamicCommandName(_0x58968b),'description':_0x58968b[_0x888f9e(0x126)]||_0x888f9e(0xef)+_0x58968b[_0x888f9e(0xec)],'tag':riskTag(_0x58968b['risk'])}))};});}export function getDynamicServiceEntry(_0x2e6f7a){const _0x4e5e36=a60_0x6f84;return listDynamicServiceEntries()[_0x4e5e36(0x105)](_0xd1d7fa=>_0xd1d7fa[_0x4e5e36(0xf0)]===_0x2e6f7a);}export function listDynamicServiceDefinitions(_0x13abf1){const _0x4b52f=a60_0x6f84;return listLocalServiceTrees()['filter'](_0x4c10e3=>!_0x13abf1||_0x4c10e3[_0x4b52f(0xf0)][_0x4b52f(0xe8)]===_0x13abf1)[_0x4b52f(0xc4)](_0x51b7c1=>_0x51b7c1['commands'][_0x4b52f(0x103)](_0x43e686=>buildDynamicCommandDefinition(_0x51b7c1,_0x43e686)));}export function getDynamicServiceDefinitions(_0x34b34e){const _0x1c4739=listDynamicServiceDefinitions(_0x34b34e);return _0x1c4739['length']>0x0?_0x1c4739:undefined;}export function findDynamicServiceDefinition(_0x36b463,_0x5655e1){const _0x55d61a=a60_0x6f84;return listDynamicServiceDefinitions(_0x36b463)['find'](_0x5741d9=>_0x5741d9[_0x55d61a(0xf8)]===_0x5655e1);}export function buildDynamicCommandDefinition(_0x300bf8,_0x28cbc2){const _0x39c5fe=a60_0x6f84;return{'service':_0x300bf8[_0x39c5fe(0xf0)][_0x39c5fe(0xe8)],'command':dynamicCommandName(_0x28cbc2),'description':_0x28cbc2['description']||_0x39c5fe(0xef)+_0x28cbc2['cliPath'],'risk':_0x28cbc2[_0x39c5fe(0x109)],..._0x28cbc2[_0x39c5fe(0x109)]===_0x39c5fe(0x108)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x28cbc2)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x28cbc2[_0x39c5fe(0x121)]['map'](_0x5e1cca=>({'name':_0x5e1cca[_0x39c5fe(0xee)],'description':_0x5e1cca[_0x39c5fe(0x126)]||_0x5e1cca[_0x39c5fe(0xee)],'required':_0x5e1cca[_0x39c5fe(0xbc)]})),'flags':_0x28cbc2['flags'][_0x39c5fe(0x103)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x28cbc2),async 'dryRun'(_0x24939a){const _0x1d0fab=_0x39c5fe,_0x2b4e60=await compilePlan(_0x28cbc2,_0x24939a);return{'method':_0x1d0fab(0xd8),'url':_0x28cbc2['cliPath'],'body':{'target':targetPreview(_0x2b4e60),'params':_0x2b4e60[_0x1d0fab(0xc5)]},'description':_0x1d0fab(0x10a)+_0x28cbc2[_0x1d0fab(0xec)]};},async 'execute'(_0x3274ad){const _0x4429ab=_0x39c5fe,_0x832d3a=await compilePlan(_0x28cbc2,_0x3274ad),_0x198df2=Date[_0x4429ab(0xe3)](),_0x14f784=await executePlan(_0x832d3a,_0x28cbc2,_0x3274ad),_0x3f1ca9=Date[_0x4429ab(0xe3)]()-_0x198df2;return{'ok':!![],'data':{'service':_0x300bf8['service'],'command':_0x28cbc2[_0x4429ab(0xec)],'target':targetPreview(_0x832d3a),'result':_0x14f784,'elapsed':_0x3f1ca9},'message':_0x4429ab(0xf6)+_0x28cbc2['cliPath']+_0x4429ab(0xce)+_0x3f1ca9+'ms'};}};}function buildDynamicConfirmationDescription(_0x3bd1c4){const _0x1e4141=a60_0x6f84,_0x5b09cf=_0x3bd1c4['description']||_0x3bd1c4['cliPath'],_0x42cfd7=_0x3bd1c4[_0x1e4141(0x109)]===_0x1e4141(0xdb)?_0x1e4141(0x107):_0x1e4141(0xe9);return'This\x20will\x20run\x20Service\x20Tree\x20command\x20\x22'+_0x5b09cf+_0x1e4141(0xed)+_0x42cfd7;}function dynamicCommandName(_0x26271d){const _0x1c349e=a60_0x6f84;return _0x26271d['fullPath']['slice'](0x1)[_0x1c349e(0x116)]('\x20');}function riskTag(_0x547514){const _0x4d05d9=a60_0x6f84;return _0x547514===_0x4d05d9(0x108)?'':'\x20\x20['+_0x547514+']';}function flagToCommandFlag(_0x3ff5f3){const _0x364e8b=a60_0x6f84;return{'name':_0x3ff5f3[_0x364e8b(0x113)],'type':_0x3ff5f3[_0x364e8b(0xd4)]===_0x364e8b(0xff)?'string':_0x3ff5f3[_0x364e8b(0xd4)],'description':_0x3ff5f3['description']||_0x3ff5f3[_0x364e8b(0xee)],'required':_0x3ff5f3[_0x364e8b(0xbc)],'default':isPrimitiveFlagDefault(_0x3ff5f3[_0x364e8b(0x10d)])?_0x3ff5f3['default']:undefined,'enum':_0x3ff5f3[_0x364e8b(0xe4)]};}async function compilePlan(_0x5c9188,_0x2456b1){const _0x3fd0a8=a60_0x6f84;return compileServiceTreeCommand(_0x5c9188,{'flags':_0x2456b1[_0x3fd0a8(0xdf)],'args':_0x2456b1['args'],'context':await buildServiceContext(_0x5c9188,_0x2456b1)});}async function buildServiceContext(_0x2823a9,_0x5c4fe9){const _0x3e070b=a60_0x6f84,_0x460799={'appCode':_0x5c4fe9['appCode'],'env':_0x5c4fe9[_0x3e070b(0x119)],'envName':_0x5c4fe9[_0x3e070b(0x119)]};if(!usesRuntimeContext(_0x2823a9))return _0x460799;const _0x10d9ee=await getLoginUserInfo(),_0x587f22=pickFirst(_0x10d9ee[_0x3e070b(0x100)],_0x10d9ee['id']);return{..._0x460799,'user':_0x10d9ee,'userId':_0x587f22,'id':_0x10d9ee['id'],'username':pickFirst(_0x10d9ee[_0x3e070b(0x10c)],_0x10d9ee[_0x3e070b(0xbf)],_0x10d9ee[_0x3e070b(0xde)]),'userName':_0x10d9ee[_0x3e070b(0xbf)],'nickname':pickFirst(_0x10d9ee[_0x3e070b(0xc9)],_0x10d9ee[_0x3e070b(0xc0)]),'nickName':_0x10d9ee[_0x3e070b(0xc0)],'tenantCode':_0x10d9ee[_0x3e070b(0xfd)],'employeeId':_0x10d9ee[_0x3e070b(0x101)]};}function usesRuntimeContext(_0x580598){const _0x28acfc=a60_0x6f84;return _0x580598[_0x28acfc(0xbd)][_0x28acfc(0x114)](_0x3f966d=>typeof _0x3f966d[_0x28acfc(0xc7)]==='string'&&(_0x3f966d[_0x28acfc(0xc7)]['startsWith'](_0x28acfc(0xc2))||_0x3f966d[_0x28acfc(0xc7)]['startsWith'](_0x28acfc(0xf2))));}function pickFirst(..._0x1b9754){return _0x1b9754['find'](_0x4c28bf=>_0x4c28bf!==undefined&&_0x4c28bf!==null);}function a60_0x4076(){const _0x25788e=['14327024DRHTTm','command','\x20<command>\x20[flags]','slice','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','dbtableConfig','tenantCode','tableName','json','userId','employeeId','3054NWUYKT','map','length','find','datasetCode','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20high-risk\x20write.\x20It\x20may\x20make\x20business\x20changes\x20that\x20are\x20hard\x20to\x20reverse.','read','risk','Preview\x20dynamic\x20service\x20command:\x20','padEnd','username','default','bff','\x20->\x20','Unknown\x20appRef\x20\x22','3541944PPqBno','\x20requires\x20target.sqlCode.','cliName','some','fullPath','join','kind','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','envName','\x20\x20\x20\x20kind:\x20\x20\x20\x20','\x20\x20SERVICE\x20TREE\x20TARGET','sqlCode','\x20\x20\x20\x20','`\x20to\x20inspect\x20the\x20manifest.','operator','appRef','args','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','env','appBindings','appcode','description','push','\x20\x20\x20\x20datasetCode:\x20','\x20\x20MAP\x20TO','required','mapTo','Cannot\x20resolve\x20datatable\x20\x22','userName','nickName','4282210aTChfp','context.','9009308DAXGnM','flatMap','params','sql','source','validation','nickname','3737596FgLMWo','string','appCode','\x20requires\x20target.functionName.','\x20completed\x20in\x20','1DpyoiZ','tree','3285BGKvOG','bffId','scriptName','type','normalizedManifest','remainingArgs','\x20\x20\x20\x20datatable:\x20','SERVICE_TREE','entries','app','high-risk-write','\x20\x20\x20\x20sqlCode:\x20','bffCode','loginName','rawFlags','filter','\x20service\x20detail\x20--service\x20','296133PSNcjA','now','enum','number','const','Commands:','code','The\x20manifest\x20marks\x20this\x20command\x20as\x20a\x20write.\x20It\x20may\x20change\x20business\x20data\x20or\x20service\x20state.','target','18htucIl','cliPath','\x22.\x20','name','Run\x20service\x20command\x20','service','\x20\x20\x20\x20functionName:\x20','ctx.','commands','boolean','datatable','Service\x20command\x20'];a60_0x4076=function(){return _0x25788e;};return a60_0x4076();}async function executePlan(_0x1db91e,_0x3fdbed,_0x430d34){const _0x7fc571=a60_0x6f84;if(_0x1db91e[_0x7fc571(0x117)]==='data'){const _0x24ba0e=await resolveDatasetCode(_0x1db91e,_0x3fdbed,_0x430d34);return executeData(_0x24ba0e,_0x1db91e[_0x7fc571(0xf8)],_0x1db91e['params']);}if(_0x1db91e['kind']===_0x7fc571(0xc6)){if(!_0x1db91e[_0x7fc571(0x11c)])throw CliErrors['validation']('Service\x20command\x20'+_0x3fdbed['cliPath']+_0x7fc571(0x112));return executeSdkSql(_0x1db91e[_0x7fc571(0x11c)],normalizeScalarParams(_0x1db91e[_0x7fc571(0xc5)]));}if(_0x1db91e[_0x7fc571(0x117)]===_0x7fc571(0x10e)){const _0x219e35=_0x1db91e[_0x7fc571(0xd3)]||_0x1db91e[_0x7fc571(0xdd)]||(_0x1db91e['bffId']==null?'':String(_0x1db91e['bffId']));if(!_0x219e35)throw CliErrors['validation'](_0x7fc571(0xf6)+_0x3fdbed['cliPath']+_0x7fc571(0xcd));return executeSdkBff(_0x219e35,_0x1db91e[_0x7fc571(0xc5)]);}throw CliErrors['validation']('Unsupported\x20service\x20target\x20kind:\x20'+_0x1db91e[_0x7fc571(0x117)]);}async function resolveDatasetCode(_0x35990c,_0x390449,_0x16883c){const _0x2b8bcd=a60_0x6f84;if(_0x35990c[_0x2b8bcd(0x106)])return _0x35990c[_0x2b8bcd(0x106)];if(!_0x35990c[_0x2b8bcd(0xf5)])throw CliErrors[_0x2b8bcd(0xc8)](_0x2b8bcd(0xf6)+_0x390449['cliPath']+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0xaf6851=await listDatasets(_0x16883c['appCode']),_0x1a63b7=_0xaf6851['find'](_0x232430=>_0x232430[_0x2b8bcd(0xfc)]?.[_0x2b8bcd(0xfe)]===_0x35990c[_0x2b8bcd(0xf5)]);if(!_0x1a63b7?.[_0x2b8bcd(0xe8)])throw CliErrors[_0x2b8bcd(0xc8)](_0x2b8bcd(0xbe)+_0x35990c['datatable']+_0x2b8bcd(0x122)+_0x16883c[_0x2b8bcd(0xcc)]+'.',_0x2b8bcd(0x118));return _0x1a63b7[_0x2b8bcd(0xe8)];}function applyAppBinding(_0x69e9a4,_0x500afb,_0x5d5c40){const _0x3bc08e=a60_0x6f84,_0x2ff94d=_0x500afb[_0x3bc08e(0xea)][_0x3bc08e(0x120)];if(!_0x2ff94d)return;const _0x3c69d3=_0x69e9a4[_0x3bc08e(0x124)][_0x2ff94d];if(!_0x3c69d3)throw CliErrors[_0x3bc08e(0xc8)](_0x3bc08e(0x110)+_0x2ff94d+'\x22\x20in\x20service\x20command\x20'+_0x500afb[_0x3bc08e(0xec)]+'.',_0x3bc08e(0xfb));const _0x4cda1e=_0x3c69d3[_0x3bc08e(0x125)]||_0x3c69d3[_0x3bc08e(0xcc)];_0x4cda1e&&!hasText(_0x5d5c40[_0x3bc08e(0x125)])&&(_0x5d5c40[_0x3bc08e(0x125)]=_0x4cda1e),_0x3c69d3['app']&&!hasText(_0x5d5c40[_0x3bc08e(0xda)])&&!hasText(_0x5d5c40['appcode'])&&(_0x5d5c40[_0x3bc08e(0xda)]=_0x3c69d3[_0x3bc08e(0xda)]),_0x3c69d3['env']&&!hasText(_0x5d5c40['env'])&&(_0x5d5c40[_0x3bc08e(0x123)]=_0x3c69d3['env']);}function renderDynamicCommandHelp(_0x5d3533){const _0x1e2c96=a60_0x6f84,_0x3e4aaf=[_0x1e2c96(0x11b),_0x1e2c96(0x11a)+_0x5d3533['target'][_0x1e2c96(0x117)],'\x20\x20\x20\x20command:\x20'+_0x5d3533[_0x1e2c96(0xea)]['command']];if(_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0x106)])_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0xba)+_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0x106)]);if(_0x5d3533['target'][_0x1e2c96(0xf5)])_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0xd7)+_0x5d3533['target'][_0x1e2c96(0xf5)]);if(_0x5d3533[_0x1e2c96(0xea)]['sqlCode'])_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0xdc)+_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0x11c)]);if(_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0xd3)])_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0xf1)+_0x5d3533[_0x1e2c96(0xea)][_0x1e2c96(0xd3)]);if(_0x5d3533[_0x1e2c96(0xbd)][_0x1e2c96(0x104)]>0x0){_0x3e4aaf[_0x1e2c96(0xb9)]('',_0x1e2c96(0xbb));for(const _0x5d5168 of _0x5d3533[_0x1e2c96(0xbd)]){_0x3e4aaf[_0x1e2c96(0xb9)](_0x1e2c96(0x11d)+(_0x5d5168['source']||_0x1e2c96(0xe6))+_0x1e2c96(0x10f)+_0x5d5168[_0x1e2c96(0xea)]+(_0x5d5168[_0x1e2c96(0x11f)]?'.'+_0x5d5168[_0x1e2c96(0x11f)]:''));}}return _0x3e4aaf[_0x1e2c96(0x116)]('\x0a');}function targetPreview(_0x1da5ce){const _0x2b7229=a60_0x6f84;return{'kind':_0x1da5ce[_0x2b7229(0x117)],'command':_0x1da5ce[_0x2b7229(0xf8)],'appRef':_0x1da5ce[_0x2b7229(0x120)],'datasetCode':_0x1da5ce[_0x2b7229(0x106)],'datatable':_0x1da5ce[_0x2b7229(0xf5)],'sqlCode':_0x1da5ce[_0x2b7229(0x11c)],'bffCode':_0x1da5ce[_0x2b7229(0xdd)],'bffId':_0x1da5ce[_0x2b7229(0xd2)],'functionName':_0x1da5ce[_0x2b7229(0xd3)]};}function normalizeScalarParams(_0x38a0c1){const _0x1ed9c5=a60_0x6f84;return Object['fromEntries'](Object[_0x1ed9c5(0xd9)](_0x38a0c1)['filter'](([,_0x3fdf11])=>typeof _0x3fdf11==='string'||typeof _0x3fdf11===_0x1ed9c5(0xe5)));}function hasText(_0x335d54){return typeof _0x335d54==='string'&&_0x335d54['trim']()['length']>0x0;}function isPrimitiveFlagDefault(_0x5a291b){const _0x243cd8=a60_0x6f84;return _0x5a291b===undefined||typeof _0x5a291b===_0x243cd8(0xcb)||typeof _0x5a291b===_0x243cd8(0xe5)||typeof _0x5a291b===_0x243cd8(0xf4);}
@@ -1 +1 @@
1
- (function(_0x535b76,_0x4d59f5){const _0x41ec31=a61_0x16ef,_0x5c4de8=_0x535b76();while(!![]){try{const _0x3bcbba=parseInt(_0x41ec31(0x76))/0x1*(-parseInt(_0x41ec31(0x93))/0x2)+parseInt(_0x41ec31(0x7d))/0x3*(parseInt(_0x41ec31(0x94))/0x4)+parseInt(_0x41ec31(0x95))/0x5+parseInt(_0x41ec31(0x92))/0x6+parseInt(_0x41ec31(0x72))/0x7*(parseInt(_0x41ec31(0x8e))/0x8)+parseInt(_0x41ec31(0x91))/0x9*(parseInt(_0x41ec31(0x8a))/0xa)+-parseInt(_0x41ec31(0x71))/0xb;if(_0x3bcbba===_0x4d59f5)break;else _0x5c4de8['push'](_0x5c4de8['shift']());}catch(_0x1a4100){_0x5c4de8['push'](_0x5c4de8['shift']());}}}(a61_0x2419,0x3f78e));export function adaptServiceTreeManifestForLegacyFramework(_0x193cda){const _0x2b4e0d=a61_0x16ef,_0x550da1=cloneJsonValue(_0x193cda),_0x53c47d=[];if(!isObjectRecord(_0x550da1))return{'manifest':_0x550da1,'errors':_0x53c47d};return Array[_0x2b4e0d(0x87)](_0x550da1['commands'])&&_0x550da1[_0x2b4e0d(0x88)][_0x2b4e0d(0x81)]((_0x2c73db,_0x10e179)=>{const _0x1c0092=_0x2b4e0d;if(!isObjectRecord(_0x2c73db))return;adaptBffTarget(_0x2c73db[_0x1c0092(0x8f)],_0x1c0092(0x74)+_0x10e179+_0x1c0092(0x85),_0x53c47d);}),adaptResources(_0x550da1['resources'],_0x2b4e0d(0x73),_0x53c47d),{'manifest':_0x550da1,'errors':_0x53c47d};}export function toPublicServiceTreeTarget(_0x361e3b){const _0x50e5fd=a61_0x16ef,{scriptName:_0x25bf48,..._0x107d60}=_0x361e3b;return typeof _0x25bf48===_0x50e5fd(0x8b)&&_0x25bf48[_0x50e5fd(0x7c)]()&&(_0x107d60[_0x50e5fd(0x86)]=_0x25bf48),_0x107d60;}export function toPublicNormalizedServiceTree(_0x2f7e32){const _0x93c66d=a61_0x16ef;return{..._0x2f7e32,'commands':_0x2f7e32['commands']['map'](_0x47460=>({..._0x47460,'target':toPublicServiceTreeTarget(_0x47460[_0x93c66d(0x8f)])}))};}function adaptResources(_0xfae42e,_0x366e0b,_0x392174){const _0x51ba9e=a61_0x16ef;if(!isObjectRecord(_0xfae42e))return;for(const [_0x74515f,_0x349bd5]of Object['entries'](_0xfae42e)){if(!isObjectRecord(_0x349bd5))continue;const _0x1e4cc9=_0x366e0b+'.'+_0x74515f;if(isObjectRecord(_0x349bd5[_0x51ba9e(0x78)]))for(const [_0x5c97ef,_0x622bc8]of Object[_0x51ba9e(0x7e)](_0x349bd5[_0x51ba9e(0x78)])){if(!isObjectRecord(_0x622bc8))continue;const _0x53643a=_0x1e4cc9+_0x51ba9e(0x7b)+_0x5c97ef,_0x330681=isObjectRecord(_0x622bc8[_0x51ba9e(0x8f)])&&_0x622bc8[_0x51ba9e(0x8f)][_0x51ba9e(0x89)]===_0x51ba9e(0x83);adaptBffTarget(_0x622bc8[_0x51ba9e(0x8f)],_0x53643a+_0x51ba9e(0x79),_0x392174),(_0x330681||isBffAction(_0x622bc8))&&adaptFunctionNameField(_0x622bc8,_0x53643a,_0x392174);}adaptResources(_0x349bd5[_0x51ba9e(0x82)],_0x1e4cc9+_0x51ba9e(0x7f),_0x392174);}}function a61_0x16ef(_0xaf8fb1,_0x144580){_0xaf8fb1=_0xaf8fb1-0x71;const _0x241985=a61_0x2419();let _0x16ef9c=_0x241985[_0xaf8fb1];return _0x16ef9c;}function adaptBffTarget(_0x4bc4b9,_0x2f8a1e,_0x2dd988){const _0xc219e0=a61_0x16ef;if(!isObjectRecord(_0x4bc4b9)||_0x4bc4b9[_0xc219e0(0x89)]!==_0xc219e0(0x83))return;adaptFunctionNameField(_0x4bc4b9,_0x2f8a1e,_0x2dd988);}function adaptFunctionNameField(_0x227b2f,_0x5930f9,_0x20fc6c){const _0x2c95e0=a61_0x16ef;Object[_0x2c95e0(0x80)][_0x2c95e0(0x77)][_0x2c95e0(0x75)](_0x227b2f,_0x2c95e0(0x8c))&&_0x20fc6c[_0x2c95e0(0x8d)]({'level':_0x2c95e0(0x97),'path':_0x5930f9+_0x2c95e0(0x7a),'message':_0x2c95e0(0x96)});if(Object[_0x2c95e0(0x80)][_0x2c95e0(0x77)][_0x2c95e0(0x75)](_0x227b2f,_0x2c95e0(0x86))){if(typeof _0x227b2f[_0x2c95e0(0x86)]!==_0x2c95e0(0x8b)||!_0x227b2f['functionName'][_0x2c95e0(0x7c)]()){_0x20fc6c[_0x2c95e0(0x8d)]({'level':'error','path':_0x5930f9+_0x2c95e0(0x98),'message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x227b2f[_0x2c95e0(0x86)];return;}_0x227b2f[_0x2c95e0(0x8c)]=_0x227b2f[_0x2c95e0(0x86)],delete _0x227b2f[_0x2c95e0(0x86)];}}function isBffAction(_0x43c73f){const _0x4479f9=a61_0x16ef;return _0x43c73f['kind']==='bff'||_0x43c73f['action']===_0x4479f9(0x90)||_0x43c73f[_0x4479f9(0x8f)]===_0x4479f9(0x90);}function a61_0x2419(){const _0x4aae47=['2626106qrNCJn','$.resources','$.commands[','call','26781TXbUlY','hasOwnProperty','actions','.target','.scriptName','.actions.','trim','7041TvPhXh','entries','.resources','prototype','forEach','resources','bff','object','].target','functionName','isArray','commands','kind','3613170PkuRDf','string','scriptName','push','8zJxnsQ','target','bff.exec','9llheqd','1023342zWHejG','6ELPssS','28wIRiXU','1182470ZUIZoQ','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','error','.functionName','9015930OZzWCb'];a61_0x2419=function(){return _0x4aae47;};return a61_0x2419();}function cloneJsonValue(_0x27316b){const _0x80b01e=a61_0x16ef;if(Array[_0x80b01e(0x87)](_0x27316b))return _0x27316b['map'](_0x38ec8b=>cloneJsonValue(_0x38ec8b));if(isObjectRecord(_0x27316b))return Object['fromEntries'](Object['entries'](_0x27316b)['map'](([_0x243377,_0x1be9c2])=>[_0x243377,cloneJsonValue(_0x1be9c2)]));return _0x27316b;}function isObjectRecord(_0x22b510){const _0x19c63a=a61_0x16ef;return Boolean(_0x22b510)&&typeof _0x22b510===_0x19c63a(0x84)&&!Array[_0x19c63a(0x87)](_0x22b510);}
1
+ (function(_0x1a6f84,_0x507d00){const _0x6bd1ce=a61_0x236f,_0x91973d=_0x1a6f84();while(!![]){try{const _0x32caf6=-parseInt(_0x6bd1ce(0xb1))/0x1+parseInt(_0x6bd1ce(0x9d))/0x2+-parseInt(_0x6bd1ce(0x9f))/0x3*(-parseInt(_0x6bd1ce(0xa5))/0x4)+-parseInt(_0x6bd1ce(0x97))/0x5*(-parseInt(_0x6bd1ce(0xac))/0x6)+parseInt(_0x6bd1ce(0xa8))/0x7*(parseInt(_0x6bd1ce(0xb6))/0x8)+-parseInt(_0x6bd1ce(0xaa))/0x9*(-parseInt(_0x6bd1ce(0xa6))/0xa)+parseInt(_0x6bd1ce(0xae))/0xb*(-parseInt(_0x6bd1ce(0x95))/0xc);if(_0x32caf6===_0x507d00)break;else _0x91973d['push'](_0x91973d['shift']());}catch(_0x500bec){_0x91973d['push'](_0x91973d['shift']());}}}(a61_0x3f6a,0xca530));function a61_0x236f(_0x4ddb47,_0x6796bd){_0x4ddb47=_0x4ddb47-0x8d;const _0x3f6ae5=a61_0x3f6a();let _0x236f1a=_0x3f6ae5[_0x4ddb47];return _0x236f1a;}export function adaptServiceTreeManifestForLegacyFramework(_0x2a707c){const _0x36b11a=a61_0x236f,_0x534ecd=cloneJsonValue(_0x2a707c),_0x2c877f=[];if(!isObjectRecord(_0x534ecd))return{'manifest':_0x534ecd,'errors':_0x2c877f};return Array['isArray'](_0x534ecd[_0x36b11a(0x99)])&&_0x534ecd['commands']['forEach']((_0x479e1b,_0x30a911)=>{const _0x5c8ace=_0x36b11a;if(!isObjectRecord(_0x479e1b))return;adaptBffTarget(_0x479e1b[_0x5c8ace(0xaf)],_0x5c8ace(0xa3)+_0x30a911+_0x5c8ace(0xa4),_0x2c877f);}),adaptResources(_0x534ecd['resources'],_0x36b11a(0x93),_0x2c877f),{'manifest':_0x534ecd,'errors':_0x2c877f};}export function toPublicServiceTreeTarget(_0x181de1){const _0x36774c=a61_0x236f,{scriptName:_0x28f9fe,..._0x860c13}=_0x181de1;return typeof _0x28f9fe===_0x36774c(0x91)&&_0x28f9fe['trim']()&&(_0x860c13['functionName']=_0x28f9fe),_0x860c13;}export function toPublicNormalizedServiceTree(_0x3b9174){const _0x49ab0a=a61_0x236f;return{..._0x3b9174,'commands':_0x3b9174[_0x49ab0a(0x99)]['map'](_0x3c738f=>({..._0x3c738f,'target':toPublicServiceTreeTarget(_0x3c738f[_0x49ab0a(0xaf)])}))};}function adaptResources(_0x17f896,_0xd51d72,_0x3a1b9a){const _0x34d2d3=a61_0x236f;if(!isObjectRecord(_0x17f896))return;for(const [_0x1ea0b3,_0x22c32c]of Object['entries'](_0x17f896)){if(!isObjectRecord(_0x22c32c))continue;const _0x41adf1=_0xd51d72+'.'+_0x1ea0b3;if(isObjectRecord(_0x22c32c[_0x34d2d3(0x8f)]))for(const [_0x2d6eea,_0x9c640c]of Object[_0x34d2d3(0xb3)](_0x22c32c['actions'])){if(!isObjectRecord(_0x9c640c))continue;const _0x42891d=_0x41adf1+_0x34d2d3(0x92)+_0x2d6eea,_0x26877c=isObjectRecord(_0x9c640c[_0x34d2d3(0xaf)])&&_0x9c640c[_0x34d2d3(0xaf)][_0x34d2d3(0xa2)]===_0x34d2d3(0xa1);adaptBffTarget(_0x9c640c[_0x34d2d3(0xaf)],_0x42891d+_0x34d2d3(0x94),_0x3a1b9a),(_0x26877c||isBffAction(_0x9c640c))&&adaptFunctionNameField(_0x9c640c,_0x42891d,_0x3a1b9a);}adaptResources(_0x22c32c[_0x34d2d3(0x96)],_0x41adf1+_0x34d2d3(0x98),_0x3a1b9a);}}function adaptBffTarget(_0x24f534,_0x2ccef7,_0x10464b){const _0x7100a=a61_0x236f;if(!isObjectRecord(_0x24f534)||_0x24f534[_0x7100a(0xa2)]!==_0x7100a(0xa1))return;adaptFunctionNameField(_0x24f534,_0x2ccef7,_0x10464b);}function adaptFunctionNameField(_0x42fe35,_0x144c84,_0x40711c){const _0x13e111=a61_0x236f;Object[_0x13e111(0x9b)][_0x13e111(0x9c)][_0x13e111(0x90)](_0x42fe35,_0x13e111(0xa0))&&_0x40711c[_0x13e111(0xb0)]({'level':_0x13e111(0xb4),'path':_0x144c84+_0x13e111(0xb5),'message':'Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.'});if(Object[_0x13e111(0x9b)][_0x13e111(0x9c)][_0x13e111(0x90)](_0x42fe35,_0x13e111(0x9e))){if(typeof _0x42fe35[_0x13e111(0x9e)]!=='string'||!_0x42fe35[_0x13e111(0x9e)][_0x13e111(0x9a)]()){_0x40711c[_0x13e111(0xb0)]({'level':_0x13e111(0xb4),'path':_0x144c84+_0x13e111(0x8d),'message':_0x13e111(0xab)}),delete _0x42fe35[_0x13e111(0x9e)];return;}_0x42fe35['scriptName']=_0x42fe35[_0x13e111(0x9e)],delete _0x42fe35['functionName'];}}function isBffAction(_0x52fbc1){const _0x4286ec=a61_0x236f;return _0x52fbc1[_0x4286ec(0xa2)]===_0x4286ec(0xa1)||_0x52fbc1[_0x4286ec(0xb2)]==='bff.exec'||_0x52fbc1['target']===_0x4286ec(0xa7);}function a61_0x3f6a(){const _0x151c62=['call','string','.actions.','$.resources','.target','5098284oWkybT','resources','3742560HRKFLL','.resources','commands','trim','prototype','hasOwnProperty','1797648JQHaVG','functionName','557871QItNOd','scriptName','bff','kind','$.commands[','].target','4jsxQzQ','10YYlaip','bff.exec','1823066rtJBiF','isArray','12411675aZMixO','functionName\x20must\x20be\x20a\x20non-empty\x20string.','12cqnsHm','object','99zLyXao','target','push','350199LUUvlB','action','entries','error','.scriptName','32MGOHYn','.functionName','map','actions'];a61_0x3f6a=function(){return _0x151c62;};return a61_0x3f6a();}function cloneJsonValue(_0x23031e){const _0x2a901a=a61_0x236f;if(Array[_0x2a901a(0xa9)](_0x23031e))return _0x23031e['map'](_0x2219b7=>cloneJsonValue(_0x2219b7));if(isObjectRecord(_0x23031e))return Object['fromEntries'](Object[_0x2a901a(0xb3)](_0x23031e)[_0x2a901a(0x8e)](([_0x490277,_0x59bd81])=>[_0x490277,cloneJsonValue(_0x59bd81)]));return _0x23031e;}function isObjectRecord(_0x105b42){const _0x4af1d1=a61_0x236f;return Boolean(_0x105b42)&&typeof _0x105b42===_0x4af1d1(0xad)&&!Array[_0x4af1d1(0xa9)](_0x105b42);}
@@ -1 +1 @@
1
- const a62_0x228818=a62_0x2f4e;(function(_0xada9ae,_0x23493a){const _0x3fb780=a62_0x2f4e,_0x9f7fa6=_0xada9ae();while(!![]){try{const _0x244825=-parseInt(_0x3fb780(0x125))/0x1*(parseInt(_0x3fb780(0x145))/0x2)+parseInt(_0x3fb780(0x12f))/0x3*(parseInt(_0x3fb780(0x105))/0x4)+-parseInt(_0x3fb780(0x132))/0x5*(-parseInt(_0x3fb780(0x114))/0x6)+-parseInt(_0x3fb780(0x13f))/0x7+-parseInt(_0x3fb780(0x13b))/0x8*(-parseInt(_0x3fb780(0x104))/0x9)+-parseInt(_0x3fb780(0x141))/0xa+parseInt(_0x3fb780(0x144))/0xb*(parseInt(_0x3fb780(0x13a))/0xc);if(_0x244825===_0x23493a)break;else _0x9f7fa6['push'](_0x9f7fa6['shift']());}catch(_0x4066f3){_0x9f7fa6['push'](_0x9f7fa6['shift']());}}}(a62_0x105f,0xbd060));function a62_0x2f4e(_0x3476df,_0x2aeab6){_0x3476df=_0x3476df-0x104;const _0x105ff1=a62_0x105f();let _0x2f4eeb=_0x105ff1[_0x3476df];return _0x2f4eeb;}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a62_0x228818(0x110),'type':a62_0x228818(0x146),'required':!![],'description':a62_0x228818(0x139)},SERVICE_FLAG={'name':'service','type':a62_0x228818(0x146),'required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x204dfb){const _0x152aad=a62_0x228818;return{'serviceCode':_0x204dfb[_0x152aad(0x147)],'name':_0x204dfb[_0x152aad(0x10b)][_0x152aad(0x133)]['name'],'version':_0x204dfb[_0x152aad(0x113)],'importedAt':_0x204dfb[_0x152aad(0x13c)],'source':_0x204dfb[_0x152aad(0x12e)],'commandCount':_0x204dfb[_0x152aad(0x10b)][_0x152aad(0x123)]['length'],'commands':_0x204dfb[_0x152aad(0x10b)][_0x152aad(0x123)][_0x152aad(0x11f)](_0x3c30d7=>({'path':_0x3c30d7['cliPath'],'description':_0x3c30d7[_0x152aad(0x10e)],'risk':_0x3c30d7[_0x152aad(0x12b)],'target':toPublicServiceTreeTarget(_0x3c30d7['target']),'flags':_0x3c30d7['flags'][_0x152aad(0x11f)](_0x8bdb00=>({'name':_0x8bdb00[_0x152aad(0x121)],'cliName':_0x8bdb00['cliName'],'type':_0x8bdb00[_0x152aad(0x129)],'required':_0x8bdb00['required']===!![]}))}))};}function a62_0x105f(){const _0x286c06=['Service\x20manifest\x20validation\x20passed.','errors','hash','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','Imported\x20','kind','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','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.','map','list','name','\x20service\x20','commands','filePath','31CuEhRX','serviceCount','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','registry','type','entry','risk','str','replaced','source','3904899ZHPkgx','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.','read','1240UITgRM','service','write','detail','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','Updated','manifest','Service\x20Tree\x20manifest\x20file\x20path','539940RQYuSy','64iHcIvx','importedAt','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','\x20service(s).','5455520aBPzKQ','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','7112400NBEzjN','length','cliPath','242DHFzTf','83770taKJng','string','serviceCode','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','888066aLSOoE','4NzpQNJ','Removed\x20service\x20','warnings','entries','imported','reduce','normalizedManifest','\x20service(s),\x20updated\x20','report','description','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','file','updated','registryIndex','version','11670OSZsVB','manifests','registryPath'];a62_0x105f=function(){return _0x286c06;};return a62_0x105f();}function summarizeLoadedManifest(_0x1b951f){const _0x1b5643=a62_0x228818;return{'service':_0x1b951f[_0x1b5643(0x10b)]?.['service'],'version':_0x1b951f[_0x1b5643(0x10b)]?.[_0x1b5643(0x113)],'commandCount':_0x1b951f['normalizedManifest']?.[_0x1b5643(0x123)][_0x1b5643(0x142)]??0x0,'commands':_0x1b951f['normalizedManifest']?.[_0x1b5643(0x123)][_0x1b5643(0x11f)](_0x1a10bc=>({'path':_0x1a10bc[_0x1b5643(0x143)],'risk':_0x1a10bc[_0x1b5643(0x12b)],'target':toPublicServiceTreeTarget(_0x1a10bc['target'])}))??[],'registryIndex':_0x1b951f[_0x1b5643(0x112)],'registryServiceCode':_0x1b951f['registryServiceCode'],'errors':_0x1b951f['report']['errors'],'warnings':_0x1b951f['report'][_0x1b5643(0x107)]};}export const serviceDefinitions=[{'service':'service','command':'validate','description':a62_0x228818(0x11d),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0xfeca59){const _0x504c0d=a62_0x228818,_0x203174=loadServiceManifestFromFile(_0xfeca59[_0x504c0d(0x12c)](_0x504c0d(0x110)));if(!_0x203174[_0x504c0d(0x10d)]['ok'])return{'ok':![],'data':{'file':_0x203174[_0x504c0d(0x124)],'hash':_0x203174[_0x504c0d(0x119)],'kind':_0x203174[_0x504c0d(0x11c)],'serviceCount':_0x203174[_0x504c0d(0x115)][_0x504c0d(0x142)],'services':_0x203174[_0x504c0d(0x115)]['map'](summarizeLoadedManifest),'errors':_0x203174[_0x504c0d(0x10d)][_0x504c0d(0x118)],'warnings':_0x203174[_0x504c0d(0x10d)][_0x504c0d(0x107)]},'message':formatValidationFailure(_0x203174[_0x504c0d(0x10d)])};if(_0x203174[_0x504c0d(0x11c)]===_0x504c0d(0x128)||_0x203174['manifests'][_0x504c0d(0x142)]!==0x1)return{'ok':!![],'data':{'file':_0x203174['filePath'],'hash':_0x203174['hash'],'kind':_0x203174['kind'],'serviceCount':_0x203174['manifests']['length'],'commandCount':_0x203174[_0x504c0d(0x115)][_0x504c0d(0x10a)]((_0x35ca1b,_0x10b6b7)=>_0x35ca1b+(_0x10b6b7[_0x504c0d(0x10b)]?.[_0x504c0d(0x123)][_0x504c0d(0x142)]??0x0),0x0),'services':_0x203174[_0x504c0d(0x115)]['map'](summarizeLoadedManifest),'warnings':_0x203174[_0x504c0d(0x10d)]['warnings']},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x203174['filePath'],'hash':_0x203174[_0x504c0d(0x119)],'kind':_0x203174['kind'],'service':_0x203174[_0x504c0d(0x10b)]?.[_0x504c0d(0x133)],'version':_0x203174['normalizedManifest']?.['version'],'commandCount':_0x203174[_0x504c0d(0x10b)]?.['commands'][_0x504c0d(0x142)]??0x0,'commands':_0x203174[_0x504c0d(0x10b)]?.[_0x504c0d(0x123)][_0x504c0d(0x11f)](_0x58667f=>({'path':_0x58667f[_0x504c0d(0x143)],'risk':_0x58667f[_0x504c0d(0x12b)],'target':toPublicServiceTreeTarget(_0x58667f['target'])})),'warnings':_0x203174[_0x504c0d(0x10d)][_0x504c0d(0x107)]},'message':_0x504c0d(0x117)};}},{'service':a62_0x228818(0x133),'command':'import','description':a62_0x228818(0x136),'risk':a62_0x228818(0x134),'confirmationDescription':a62_0x228818(0x11e),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x1b3abb){const _0x266586=a62_0x228818,_0xc84ed0=loadServiceManifestFromFile(_0x1b3abb[_0x266586(0x12c)](_0x266586(0x110)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0xc84ed0['filePath'],'hash':_0xc84ed0[_0x266586(0x119)],'kind':_0xc84ed0['kind'],'ok':_0xc84ed0['report']['ok'],'service':_0xc84ed0[_0x266586(0x10b)]?.[_0x266586(0x133)],'version':_0xc84ed0[_0x266586(0x10b)]?.[_0x266586(0x113)],'serviceCount':_0xc84ed0['manifests'][_0x266586(0x142)],'services':_0xc84ed0['manifests'][_0x266586(0x11f)](_0xaaf988=>({'service':_0xaaf988[_0x266586(0x10b)]?.[_0x266586(0x133)],'version':_0xaaf988[_0x266586(0x10b)]?.[_0x266586(0x113)],'commandCount':_0xaaf988[_0x266586(0x10b)]?.['commands']['length']??0x0,'errors':_0xaaf988['report'][_0x266586(0x118)]})),'errors':_0xc84ed0[_0x266586(0x10d)][_0x266586(0x118)],'commandCount':_0xc84ed0[_0x266586(0x10b)]?.[_0x266586(0x123)][_0x266586(0x142)]??0x0},'description':_0x266586(0x10f)};},async 'execute'(_0x4045d9){const _0x34f782=a62_0x228818,_0x4635a7=importServiceManifest(_0x4045d9[_0x34f782(0x12c)](_0x34f782(0x110)));if(_0x4635a7[_0x34f782(0x108)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x4635a7['registryPath'],'imported':_0x4635a7['imported'],'updated':_0x4635a7['updated'],'serviceCount':_0x4635a7['serviceCount'],'services':_0x4635a7['entries']['map'](summarizeService)},'message':_0x34f782(0x11b)+_0x4635a7[_0x34f782(0x109)]+_0x34f782(0x10c)+_0x4635a7[_0x34f782(0x111)]+_0x34f782(0x13e)};return{'ok':!![],'data':{'registryPath':_0x4635a7[_0x34f782(0x116)],'replaced':_0x4635a7[_0x34f782(0x12d)],'imported':_0x4635a7[_0x34f782(0x109)],'updated':_0x4635a7[_0x34f782(0x111)],'serviceCount':_0x4635a7[_0x34f782(0x126)],'service':summarizeService(_0x4635a7[_0x34f782(0x12a)])},'message':(_0x4635a7[_0x34f782(0x12d)]?_0x34f782(0x137):'Imported')+_0x34f782(0x122)+_0x4635a7[_0x34f782(0x12a)][_0x34f782(0x147)]+'.'};}},{'service':'service','command':'export','description':a62_0x228818(0x127),'risk':a62_0x228818(0x134),'confirmationDescription':a62_0x228818(0x130),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x1c2124){const _0x2ab852=a62_0x228818,_0x5a5178=getLocalServiceEntry(_0x1c2124[_0x2ab852(0x12c)](_0x2ab852(0x133)));return{'method':'WRITE','url':_0x1c2124[_0x2ab852(0x12c)](_0x2ab852(0x110)),'body':{'service':_0x1c2124[_0x2ab852(0x12c)]('service'),'found':Boolean(_0x5a5178),'version':_0x5a5178?.[_0x2ab852(0x113)],'source':_0x5a5178?.[_0x2ab852(0x12e)]},'description':_0x2ab852(0x11a)};},async 'execute'(_0x54b02e){const _0xe07a5f=a62_0x228818,_0x383920=exportServiceManifest(_0x54b02e[_0xe07a5f(0x12c)](_0xe07a5f(0x133)),_0x54b02e[_0xe07a5f(0x12c)](_0xe07a5f(0x110)));return{'ok':!![],'data':{'registryPath':_0x383920[_0xe07a5f(0x116)],'file':_0x383920[_0xe07a5f(0x124)],'service':summarizeService(_0x383920[_0xe07a5f(0x12a)])},'message':'Exported\x20service\x20'+_0x383920[_0xe07a5f(0x12a)][_0xe07a5f(0x147)]+'.'};}},{'service':a62_0x228818(0x133),'command':a62_0x228818(0x120),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x2731b7=a62_0x228818,_0x3f0f8a=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x3f0f8a[_0x2731b7(0x142)],'services':_0x3f0f8a[_0x2731b7(0x11f)](summarizeService)}};}},{'service':'service','command':'remove','description':a62_0x228818(0x13d),'risk':a62_0x228818(0x134),'confirmationDescription':a62_0x228818(0x140),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x37250b){const _0x57e33a=a62_0x228818,_0x4a0a90=getLocalServiceEntry(_0x37250b[_0x57e33a(0x12c)](_0x57e33a(0x133)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x37250b[_0x57e33a(0x12c)]('service'),'found':Boolean(_0x4a0a90),'version':_0x4a0a90?.['version'],'source':_0x4a0a90?.[_0x57e33a(0x12e)]},'description':_0x57e33a(0x148)};},async 'execute'(_0xfc5890){const _0x2decbc=a62_0x228818,_0x59ee29=removeServiceManifest(_0xfc5890[_0x2decbc(0x12c)](_0x2decbc(0x133)));return{'ok':!![],'data':{'registryPath':_0x59ee29[_0x2decbc(0x116)],'serviceCount':_0x59ee29[_0x2decbc(0x126)],'service':summarizeService(_0x59ee29['entry'])},'message':_0x2decbc(0x106)+_0x59ee29[_0x2decbc(0x12a)]['serviceCode']+'.'};}},{'service':'service','command':a62_0x228818(0x135),'description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':a62_0x228818(0x131),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x4c832f){const _0xf2eaa7=a62_0x228818,_0x4d2911=getLocalServiceEntry(_0x4c832f[_0xf2eaa7(0x12c)](_0xf2eaa7(0x133)));if(!_0x4d2911)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x4c832f[_0xf2eaa7(0x12c)](_0xf2eaa7(0x133))},'message':'Local\x20service\x20not\x20found:\x20'+_0x4c832f[_0xf2eaa7(0x12c)](_0xf2eaa7(0x133))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x4d2911),'manifest':_0x4d2911[_0xf2eaa7(0x138)],'normalizedManifest':toPublicNormalizedServiceTree(_0x4d2911[_0xf2eaa7(0x10b)])}};}}];
1
+ const a62_0x5216c9=a62_0x46cd;function a62_0x56e2(){const _0x597a5d=['8OFfUKp','57870aPhCsF','list','1009617bGFlDU','registry','\x20service(s),\x20updated\x20','import','name','required','remove','length','lower\x20kebab-case\x20service\x20code','service','flags','730885UinsJB','Local\x20service\x20code,\x20for\x20example\x20crm','write','Removes\x20the\x20given\x20service\x20manifest\x20from\x20the\x20local\x20Service\x20Tree\x20registry.\x20Dynamic\x20commands\x20from\x20that\x20manifest\x20will\x20no\x20longer\x20be\x20available.','kind','validate','Export\x20the\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Remove\x20a\x20Service\x20Tree\x20manifest\x20from\x20the\x20local\x20runtime\x20registry','type','Service\x20Tree\x20manifest\x20file\x20path','registryIndex','registryServiceCode','manifest','Imported','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.','Exported\x20service\x20','hash','1195438YncrEB','version','reduce','serviceCount','read','Imported\x20','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','normalizedManifest','target','file','entry','source','3931014qVBfkS','12wdinbL','entries','description','imported','string','str','export','updated','4122643YAhoBe','cliPath','report','errors','WRITE','Updated','manifests','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','filePath','cliName','registryPath','1051585EXwOIb','importedAt','serviceCode','commands','warnings','Service\x20manifest\x20validation\x20passed.','map','\x20service\x20','Service\x20registry\x20validation\x20passed.','Removed\x20service\x20','risk','replaced'];a62_0x56e2=function(){return _0x597a5d;};return a62_0x56e2();}function a62_0x46cd(_0xfe6874,_0x778575){_0xfe6874=_0xfe6874-0xaa;const _0x56e294=a62_0x56e2();let _0x46cdc0=_0x56e294[_0xfe6874];return _0x46cdc0;}(function(_0x252812,_0x47c1dd){const _0x19b32f=a62_0x46cd,_0xe1c1c5=_0x252812();while(!![]){try{const _0x747fa8=parseInt(_0x19b32f(0xee))/0x1+-parseInt(_0x19b32f(0xb4))/0x2+-parseInt(_0x19b32f(0xe3))/0x3+parseInt(_0x19b32f(0xc1))/0x4*(-parseInt(_0x19b32f(0xd4))/0x5)+parseInt(_0x19b32f(0xc0))/0x6+-parseInt(_0x19b32f(0xc9))/0x7*(-parseInt(_0x19b32f(0xe0))/0x8)+parseInt(_0x19b32f(0xe1))/0x9;if(_0x747fa8===_0x47c1dd)break;else _0xe1c1c5['push'](_0xe1c1c5['shift']());}catch(_0xe36c80){_0xe1c1c5['push'](_0xe1c1c5['shift']());}}}(a62_0x56e2,0x659e0));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a62_0x5216c9(0xbd),'type':a62_0x5216c9(0xc5),'required':!![],'description':a62_0x5216c9(0xac)},SERVICE_FLAG={'name':a62_0x5216c9(0xec),'type':a62_0x5216c9(0xc5),'required':!![],'description':a62_0x5216c9(0xef),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a62_0x5216c9(0xeb)}};function summarizeService(_0x4410af){const _0x3d735e=a62_0x5216c9;return{'serviceCode':_0x4410af[_0x3d735e(0xd6)],'name':_0x4410af[_0x3d735e(0xbb)]['service'][_0x3d735e(0xe7)],'version':_0x4410af[_0x3d735e(0xb5)],'importedAt':_0x4410af[_0x3d735e(0xd5)],'source':_0x4410af['source'],'commandCount':_0x4410af[_0x3d735e(0xbb)][_0x3d735e(0xd7)][_0x3d735e(0xea)],'commands':_0x4410af['normalizedManifest'][_0x3d735e(0xd7)][_0x3d735e(0xda)](_0x9079bd=>({'path':_0x9079bd['cliPath'],'description':_0x9079bd[_0x3d735e(0xc3)],'risk':_0x9079bd[_0x3d735e(0xde)],'target':toPublicServiceTreeTarget(_0x9079bd[_0x3d735e(0xbc)]),'flags':_0x9079bd[_0x3d735e(0xed)][_0x3d735e(0xda)](_0x30c06d=>({'name':_0x30c06d[_0x3d735e(0xe7)],'cliName':_0x30c06d[_0x3d735e(0xd2)],'type':_0x30c06d[_0x3d735e(0xab)],'required':_0x30c06d[_0x3d735e(0xe8)]===!![]}))}))};}function summarizeLoadedManifest(_0x30fe86){const _0x409c0d=a62_0x5216c9;return{'service':_0x30fe86['normalizedManifest']?.['service'],'version':_0x30fe86[_0x409c0d(0xbb)]?.[_0x409c0d(0xb5)],'commandCount':_0x30fe86[_0x409c0d(0xbb)]?.[_0x409c0d(0xd7)][_0x409c0d(0xea)]??0x0,'commands':_0x30fe86[_0x409c0d(0xbb)]?.[_0x409c0d(0xd7)][_0x409c0d(0xda)](_0x140d8f=>({'path':_0x140d8f['cliPath'],'risk':_0x140d8f[_0x409c0d(0xde)],'target':toPublicServiceTreeTarget(_0x140d8f[_0x409c0d(0xbc)])}))??[],'registryIndex':_0x30fe86[_0x409c0d(0xad)],'registryServiceCode':_0x30fe86[_0x409c0d(0xae)],'errors':_0x30fe86[_0x409c0d(0xcb)][_0x409c0d(0xcc)],'warnings':_0x30fe86[_0x409c0d(0xcb)]['warnings']};}export const serviceDefinitions=[{'service':a62_0x5216c9(0xec),'command':a62_0x5216c9(0xf3),'description':a62_0x5216c9(0xd0),'risk':a62_0x5216c9(0xb8),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0xca8a37){const _0x958f72=a62_0x5216c9,_0x9c3643=loadServiceManifestFromFile(_0xca8a37[_0x958f72(0xc6)](_0x958f72(0xbd)));if(!_0x9c3643[_0x958f72(0xcb)]['ok'])return{'ok':![],'data':{'file':_0x9c3643[_0x958f72(0xd1)],'hash':_0x9c3643[_0x958f72(0xb3)],'kind':_0x9c3643['kind'],'serviceCount':_0x9c3643['manifests'][_0x958f72(0xea)],'services':_0x9c3643[_0x958f72(0xcf)][_0x958f72(0xda)](summarizeLoadedManifest),'errors':_0x9c3643[_0x958f72(0xcb)][_0x958f72(0xcc)],'warnings':_0x9c3643[_0x958f72(0xcb)][_0x958f72(0xd8)]},'message':formatValidationFailure(_0x9c3643[_0x958f72(0xcb)])};if(_0x9c3643[_0x958f72(0xf2)]===_0x958f72(0xe4)||_0x9c3643['manifests'][_0x958f72(0xea)]!==0x1)return{'ok':!![],'data':{'file':_0x9c3643[_0x958f72(0xd1)],'hash':_0x9c3643[_0x958f72(0xb3)],'kind':_0x9c3643['kind'],'serviceCount':_0x9c3643[_0x958f72(0xcf)]['length'],'commandCount':_0x9c3643[_0x958f72(0xcf)][_0x958f72(0xb6)]((_0x5bd8bf,_0x291242)=>_0x5bd8bf+(_0x291242[_0x958f72(0xbb)]?.[_0x958f72(0xd7)][_0x958f72(0xea)]??0x0),0x0),'services':_0x9c3643[_0x958f72(0xcf)]['map'](summarizeLoadedManifest),'warnings':_0x9c3643[_0x958f72(0xcb)]['warnings']},'message':_0x958f72(0xdc)};return{'ok':!![],'data':{'file':_0x9c3643['filePath'],'hash':_0x9c3643[_0x958f72(0xb3)],'kind':_0x9c3643[_0x958f72(0xf2)],'service':_0x9c3643[_0x958f72(0xbb)]?.[_0x958f72(0xec)],'version':_0x9c3643[_0x958f72(0xbb)]?.['version'],'commandCount':_0x9c3643[_0x958f72(0xbb)]?.[_0x958f72(0xd7)][_0x958f72(0xea)]??0x0,'commands':_0x9c3643[_0x958f72(0xbb)]?.['commands'][_0x958f72(0xda)](_0x6f5a1e=>({'path':_0x6f5a1e[_0x958f72(0xca)],'risk':_0x6f5a1e['risk'],'target':toPublicServiceTreeTarget(_0x6f5a1e['target'])})),'warnings':_0x9c3643[_0x958f72(0xcb)][_0x958f72(0xd8)]},'message':_0x958f72(0xd9)};}},{'service':a62_0x5216c9(0xec),'command':a62_0x5216c9(0xe6),'description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':a62_0x5216c9(0xf0),'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'(_0x2fc7f7){const _0x3177a0=a62_0x5216c9,_0x2b57fd=loadServiceManifestFromFile(_0x2fc7f7['str'](_0x3177a0(0xbd)));return{'method':_0x3177a0(0xcd),'url':getServiceRegistryPath(),'body':{'file':_0x2b57fd[_0x3177a0(0xd1)],'hash':_0x2b57fd['hash'],'kind':_0x2b57fd[_0x3177a0(0xf2)],'ok':_0x2b57fd[_0x3177a0(0xcb)]['ok'],'service':_0x2b57fd[_0x3177a0(0xbb)]?.[_0x3177a0(0xec)],'version':_0x2b57fd['normalizedManifest']?.[_0x3177a0(0xb5)],'serviceCount':_0x2b57fd['manifests']['length'],'services':_0x2b57fd[_0x3177a0(0xcf)][_0x3177a0(0xda)](_0xf91761=>({'service':_0xf91761[_0x3177a0(0xbb)]?.[_0x3177a0(0xec)],'version':_0xf91761[_0x3177a0(0xbb)]?.[_0x3177a0(0xb5)],'commandCount':_0xf91761[_0x3177a0(0xbb)]?.[_0x3177a0(0xd7)][_0x3177a0(0xea)]??0x0,'errors':_0xf91761[_0x3177a0(0xcb)][_0x3177a0(0xcc)]})),'errors':_0x2b57fd['report'][_0x3177a0(0xcc)],'commandCount':_0x2b57fd['normalizedManifest']?.[_0x3177a0(0xd7)][_0x3177a0(0xea)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x50aa88){const _0x510d54=a62_0x5216c9,_0x5ad74c=importServiceManifest(_0x50aa88[_0x510d54(0xc6)]('file'));if(_0x5ad74c[_0x510d54(0xc2)][_0x510d54(0xea)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x5ad74c['registryPath'],'imported':_0x5ad74c[_0x510d54(0xc4)],'updated':_0x5ad74c[_0x510d54(0xc8)],'serviceCount':_0x5ad74c[_0x510d54(0xb7)],'services':_0x5ad74c[_0x510d54(0xc2)][_0x510d54(0xda)](summarizeService)},'message':_0x510d54(0xb9)+_0x5ad74c['imported']+_0x510d54(0xe5)+_0x5ad74c[_0x510d54(0xc8)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x5ad74c[_0x510d54(0xd3)],'replaced':_0x5ad74c[_0x510d54(0xdf)],'imported':_0x5ad74c['imported'],'updated':_0x5ad74c[_0x510d54(0xc8)],'serviceCount':_0x5ad74c[_0x510d54(0xb7)],'service':summarizeService(_0x5ad74c[_0x510d54(0xbe)])},'message':(_0x5ad74c[_0x510d54(0xdf)]?_0x510d54(0xce):_0x510d54(0xb0))+_0x510d54(0xdb)+_0x5ad74c[_0x510d54(0xbe)][_0x510d54(0xd6)]+'.'};}},{'service':a62_0x5216c9(0xec),'command':a62_0x5216c9(0xc7),'description':a62_0x5216c9(0xf4),'risk':'write','confirmationDescription':a62_0x5216c9(0xb1),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x4fd724){const _0x150834=a62_0x5216c9,_0x4279ff=getLocalServiceEntry(_0x4fd724[_0x150834(0xc6)](_0x150834(0xec)));return{'method':_0x150834(0xcd),'url':_0x4fd724[_0x150834(0xc6)](_0x150834(0xbd)),'body':{'service':_0x4fd724[_0x150834(0xc6)](_0x150834(0xec)),'found':Boolean(_0x4279ff),'version':_0x4279ff?.['version'],'source':_0x4279ff?.[_0x150834(0xbf)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0xf8bb73){const _0xb7457e=a62_0x5216c9,_0x360fee=exportServiceManifest(_0xf8bb73[_0xb7457e(0xc6)](_0xb7457e(0xec)),_0xf8bb73[_0xb7457e(0xc6)]('file'));return{'ok':!![],'data':{'registryPath':_0x360fee[_0xb7457e(0xd3)],'file':_0x360fee[_0xb7457e(0xd1)],'service':summarizeService(_0x360fee[_0xb7457e(0xbe)])},'message':_0xb7457e(0xb2)+_0x360fee[_0xb7457e(0xbe)][_0xb7457e(0xd6)]+'.'};}},{'service':'service','command':a62_0x5216c9(0xe2),'description':a62_0x5216c9(0xba),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x57a66d=a62_0x5216c9,_0x1e2876=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x1e2876[_0x57a66d(0xea)],'services':_0x1e2876['map'](summarizeService)}};}},{'service':a62_0x5216c9(0xec),'command':a62_0x5216c9(0xe9),'description':a62_0x5216c9(0xaa),'risk':a62_0x5216c9(0xf0),'confirmationDescription':a62_0x5216c9(0xf1),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x208046){const _0x263a0f=a62_0x5216c9,_0x4431ab=getLocalServiceEntry(_0x208046[_0x263a0f(0xc6)](_0x263a0f(0xec)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x208046[_0x263a0f(0xc6)](_0x263a0f(0xec)),'found':Boolean(_0x4431ab),'version':_0x4431ab?.[_0x263a0f(0xb5)],'source':_0x4431ab?.[_0x263a0f(0xbf)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x13b534){const _0x325705=a62_0x5216c9,_0x3d63b9=removeServiceManifest(_0x13b534[_0x325705(0xc6)](_0x325705(0xec)));return{'ok':!![],'data':{'registryPath':_0x3d63b9[_0x325705(0xd3)],'serviceCount':_0x3d63b9[_0x325705(0xb7)],'service':summarizeService(_0x3d63b9[_0x325705(0xbe)])},'message':_0x325705(0xdd)+_0x3d63b9[_0x325705(0xbe)][_0x325705(0xd6)]+'.'};}},{'service':'service','command':'detail','description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x8dfe3b){const _0x5129c7=a62_0x5216c9,_0x30ed5d=getLocalServiceEntry(_0x8dfe3b[_0x5129c7(0xc6)](_0x5129c7(0xec)));if(!_0x30ed5d)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x8dfe3b[_0x5129c7(0xc6)]('service')},'message':'Local\x20service\x20not\x20found:\x20'+_0x8dfe3b[_0x5129c7(0xc6)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x30ed5d),'manifest':_0x30ed5d[_0x5129c7(0xaf)],'normalizedManifest':toPublicNormalizedServiceTree(_0x30ed5d[_0x5129c7(0xbb)])}};}}];
@@ -1 +1 @@
1
- const a63_0x41826b=a63_0x4ea0;(function(_0x4fc57b,_0x5c5241){const _0x53969b=a63_0x4ea0,_0x1c745f=_0x4fc57b();while(!![]){try{const _0x12cbe6=-parseInt(_0x53969b(0x17c))/0x1*(parseInt(_0x53969b(0x183))/0x2)+-parseInt(_0x53969b(0x197))/0x3*(parseInt(_0x53969b(0x1ad))/0x4)+parseInt(_0x53969b(0x182))/0x5*(-parseInt(_0x53969b(0x199))/0x6)+-parseInt(_0x53969b(0x198))/0x7+parseInt(_0x53969b(0x170))/0x8*(parseInt(_0x53969b(0x18d))/0x9)+parseInt(_0x53969b(0x16a))/0xa*(-parseInt(_0x53969b(0x174))/0xb)+parseInt(_0x53969b(0x186))/0xc;if(_0x12cbe6===_0x5c5241)break;else _0x1c745f['push'](_0x1c745f['shift']());}catch(_0x16dc36){_0x1c745f['push'](_0x1c745f['shift']());}}}(a63_0x1bd8,0x58166));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_0x41826b(0x192);function a63_0x1bd8(){const _0x587b3a=['hex','schemaVersion','CliError','missing','description','5xnGvwi','3174tHKXHq','filePath','name','34711848YJHnrt','digest','Remove\x20or\x20migrate\x20','importedAt','validation','isArray','string','9vHglRo','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','cliPath','Local\x20service\x20not\x20found:\x20','service.json','Invalid\x20service\x20manifest\x20JSON:\x20','registryIndex','ENOENT','manifest','213GqjqAP','3425807TegwoT','2421438OeXPeZ','warnings','object','path','trim','message','Invalid\x20service\x20registry\x20JSON:\x20','sha256','kind','command','commands','Unsupported\x20schemaVersion:\x20','empty','slice','invalid','source','normalizedManifest','version','map','parse','39260VFloFj','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','updatedAt','utf8','toISOString','bff\x20target\x20requires\x20functionName.','stringify','splice','join','homeDirName','now','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','code','Cannot\x20write\x20service\x20registry:\x20','findIndex','Service\x20manifest\x20validation\x20failed:\x0a','file','manifests','flatMap','errors','1024550kluREh','].manifest.','push','localeCompare','serviceCode','target','574064EFkcSX','service','report','.tmp','55MHYuFc','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','services','$.services[','update','commandCount','length','startsWith','316jXrgqq'];a63_0x1bd8=function(){return _0x587b3a;};return a63_0x1bd8();}export function getServiceRegistryPath(_0x508bff={}){const _0x16248e=a63_0x41826b;return resolve(_0x508bff['homeDir']??homedir(),PRODUCT_CONFIG[_0x16248e(0x1b6)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x364b8f={}){const _0x24e2b3=a63_0x41826b,_0x3557ce=getServiceRegistryPath(_0x364b8f);if(!existsSync(_0x3557ce))return emptyServiceRegistry();try{const _0xa277e3=readFileSync(_0x3557ce,_0x24e2b3(0x1b0));if(!_0xa277e3[_0x24e2b3(0x19d)]())return emptyServiceRegistry();const _0x344796=JSON[_0x24e2b3(0x1ac)](_0xa277e3);if(_0x344796['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x24e2b3(0x18a)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x344796['schemaVersion']),_0x24e2b3(0x188)+_0x3557ce+'.');if(!Array['isArray'](_0x344796[_0x24e2b3(0x176)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x344796[_0x24e2b3(0x1af)],'services':_0x344796[_0x24e2b3(0x176)]};}catch(_0x15a705){if(_0x15a705 instanceof Error&&_0x15a705['name']===_0x24e2b3(0x17f))throw _0x15a705;throw CliErrors[_0x24e2b3(0x18a)](_0x24e2b3(0x19f)+_0x3557ce,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x37908e,_0x304c83={}){const _0x290fb5=a63_0x41826b,_0x1ac3ad=getServiceRegistryPath(_0x304c83),_0x5bdfd8=dirname(_0x1ac3ad);!existsSync(_0x5bdfd8)&&mkdirSync(_0x5bdfd8,{'recursive':!![]});const _0x22b105=_0x1ac3ad+_0x290fb5(0x173);try{writeFileSync(_0x22b105,JSON[_0x290fb5(0x1b3)](_0x37908e,null,0x2)+'\x0a',{'encoding':_0x290fb5(0x1b0),'mode':0x180}),renameSync(_0x22b105,_0x1ac3ad);}catch(_0x5b787d){try{unlinkSync(_0x22b105);}catch{}if(_0x5b787d?.[_0x290fb5(0x1b9)]===_0x290fb5(0x195))throw CliErrors[_0x290fb5(0x18a)](_0x290fb5(0x1ba)+_0x1ac3ad);throw _0x5b787d;}return _0x1ac3ad;}export function loadServiceManifestFromFile(_0x2726d2){const _0x1af796=a63_0x41826b,_0x20c043=resolve(_0x2726d2);if(!existsSync(_0x20c043))throw CliErrors[_0x1af796(0x18a)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x2726d2);let _0x3c47e7;const _0x20405f=readFileSync(_0x20c043,'utf8');try{_0x3c47e7=JSON[_0x1af796(0x1ac)](_0x20405f);}catch{throw CliErrors[_0x1af796(0x18a)](_0x1af796(0x193)+_0x2726d2,_0x1af796(0x18e));}const _0x408d9e=sha256(_0x20405f),_0x13cfbd=extractLoadedServiceManifests(_0x3c47e7,_0x408d9e),_0x5a0ebd=aggregateValidationReports(_0x13cfbd),_0x49b6da=_0x13cfbd[0x0];return{'filePath':_0x20c043,'hash':_0x408d9e,'kind':isServiceRegistryLike(_0x3c47e7)?'registry':_0x1af796(0x196),'manifest':_0x49b6da?.[_0x1af796(0x196)]??_0x3c47e7,'report':_0x5a0ebd,'normalizedManifest':_0x13cfbd[_0x1af796(0x17a)]===0x1?_0x49b6da?.['normalizedManifest']:undefined,'manifests':_0x13cfbd};}export function importServiceManifest(_0x59c1fd,_0x351832={}){const _0x5bd49e=a63_0x41826b,_0xbf600f=loadServiceManifestFromFile(_0x59c1fd);if(!_0xbf600f[_0x5bd49e(0x172)]['ok'])throw CliErrors[_0x5bd49e(0x18a)](formatValidationFailure(_0xbf600f[_0x5bd49e(0x172)]),_0x5bd49e(0x18f));if(_0xbf600f[_0x5bd49e(0x1be)][_0x5bd49e(0x17a)]===0x0)throw CliErrors[_0x5bd49e(0x18a)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x5bd49e(0x1ae));const _0x26ff3d=readServiceRegistry(_0x351832),_0x4fc87e=(_0x351832[_0x5bd49e(0x1b7)]??(()=>new Date()))()[_0x5bd49e(0x1b1)](),_0x2f75e9=[];let _0x50b6e1=0x0,_0x4a83bb=0x0;for(const _0x30d14f of _0xbf600f[_0x5bd49e(0x1be)]){if(!_0x30d14f[_0x5bd49e(0x1a9)])continue;const _0x5a3030=_0x30d14f[_0x5bd49e(0x1a9)]['service'][_0x5bd49e(0x1b9)],_0xf4562={'serviceCode':_0x5a3030,'version':_0x30d14f[_0x5bd49e(0x1a9)][_0x5bd49e(0x1aa)],'importedAt':_0x4fc87e,'source':{'type':_0x5bd49e(0x1bd),'path':_0xbf600f[_0x5bd49e(0x184)],'hash':_0x30d14f['sourceHash']},'manifest':_0x30d14f[_0x5bd49e(0x196)],'normalizedManifest':_0x30d14f[_0x5bd49e(0x1a9)]},_0x1cc624=_0x26ff3d[_0x5bd49e(0x176)][_0x5bd49e(0x1bb)](_0x53d15a=>_0x53d15a[_0x5bd49e(0x16e)]===_0x5a3030);_0x1cc624>=0x0?(_0x26ff3d[_0x5bd49e(0x176)][_0x1cc624]=_0xf4562,_0x4a83bb++):(_0x26ff3d[_0x5bd49e(0x176)][_0x5bd49e(0x16c)](_0xf4562),_0x50b6e1++),_0x2f75e9['push'](_0xf4562);}_0x26ff3d[_0x5bd49e(0x176)]['sort']((_0x3b2350,_0x3e9219)=>_0x3b2350[_0x5bd49e(0x16e)][_0x5bd49e(0x16d)](_0x3e9219[_0x5bd49e(0x16e)])),_0x26ff3d[_0x5bd49e(0x1af)]=_0x4fc87e;const _0x4ac782=writeServiceRegistry(_0x26ff3d,_0x351832);return{'registryPath':_0x4ac782,'entry':_0x2f75e9[0x0],'replaced':_0x2f75e9[_0x5bd49e(0x17a)]===0x1?_0x4a83bb===0x1:_0x4a83bb>0x0,'entries':_0x2f75e9,'imported':_0x50b6e1,'updated':_0x4a83bb,'serviceCount':_0x26ff3d[_0x5bd49e(0x176)][_0x5bd49e(0x17a)]};}export function exportServiceManifest(_0x250fb7,_0x4477d6,_0x53d0bf={}){const _0x3c709b=a63_0x41826b,_0x51d02a=getServiceRegistryPath(_0x53d0bf),_0x115548=getLocalServiceEntry(_0x250fb7,_0x53d0bf);if(!_0x115548)throw CliErrors[_0x3c709b(0x18a)](_0x3c709b(0x191)+_0x250fb7,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x6948cf=resolve(_0x4477d6),_0x2a0a12=dirname(_0x6948cf);return!existsSync(_0x2a0a12)&&mkdirSync(_0x2a0a12,{'recursive':!![]}),writeFileSync(_0x6948cf,JSON['stringify'](_0x115548[_0x3c709b(0x196)],null,0x2)+'\x0a',{'encoding':_0x3c709b(0x1b0),'mode':0x180}),{'registryPath':_0x51d02a,'filePath':_0x6948cf,'entry':_0x115548};}export function removeServiceManifest(_0x4c4111,_0x1be55d={}){const _0x3f01ef=a63_0x41826b,_0x340011=readServiceRegistry(_0x1be55d),_0xb7487f=_0x4c4111[_0x3f01ef(0x19d)](),_0x2d1152=_0x340011['services'][_0x3f01ef(0x1bb)](_0x133d71=>_0x133d71[_0x3f01ef(0x16e)]===_0xb7487f);if(_0x2d1152<0x0)throw CliErrors[_0x3f01ef(0x18a)](_0x3f01ef(0x191)+_0xb7487f,_0x3f01ef(0x175));const [_0x3323ea]=_0x340011[_0x3f01ef(0x176)][_0x3f01ef(0x1b4)](_0x2d1152,0x1),_0x46b8ba=(_0x1be55d['now']??(()=>new Date()))()['toISOString']();_0x340011[_0x3f01ef(0x1af)]=_0x46b8ba;const _0xead0bd=writeServiceRegistry(_0x340011,_0x1be55d);return{'registryPath':_0xead0bd,'entry':_0x3323ea,'serviceCount':_0x340011['services'][_0x3f01ef(0x17a)]};}function a63_0x4ea0(_0x55d1ff,_0x40a6e4){_0x55d1ff=_0x55d1ff-0x168;const _0x1bd83e=a63_0x1bd8();let _0x4ea07a=_0x1bd83e[_0x55d1ff];return _0x4ea07a;}export function listLocalServices(_0x49771f={}){return readServiceRegistry(_0x49771f)['services'];}export function getLocalServiceEntry(_0x44af6c,_0x5e30ab={}){const _0x107dba=a63_0x41826b;return readServiceRegistry(_0x5e30ab)['services']['find'](_0x2efaab=>_0x2efaab[_0x107dba(0x16e)]===_0x44af6c[_0x107dba(0x19d)]());}export function listLocalServiceTrees(_0x511afd={}){const _0x263207=a63_0x41826b;return readServiceRegistry(_0x511afd)[_0x263207(0x176)][_0x263207(0x1ab)](_0x35bf8c=>_0x35bf8c['normalizedManifest']);}export function inspectServiceRegistry(_0x6fbd54={}){const _0x2309f1=a63_0x41826b,_0x4b3324=getServiceRegistryPath(_0x6fbd54);if(!existsSync(_0x4b3324))return emptyServiceRegistryInspection(_0x4b3324,_0x2309f1(0x180),![]);try{const _0x1ddd79=readFileSync(_0x4b3324,_0x2309f1(0x1b0));if(!_0x1ddd79[_0x2309f1(0x19d)]())return emptyServiceRegistryInspection(_0x4b3324,_0x2309f1(0x1a5),!![]);const _0x39a82e=JSON['parse'](_0x1ddd79);if(_0x39a82e[_0x2309f1(0x17e)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x4b3324,_0x2309f1(0x1a7),!![]),'schemaVersion':_0x39a82e[_0x2309f1(0x17e)],'message':_0x2309f1(0x1a4)+String(_0x39a82e[_0x2309f1(0x17e)])};if(!Array[_0x2309f1(0x18b)](_0x39a82e[_0x2309f1(0x176)]))return{...emptyServiceRegistryInspection(_0x4b3324,_0x2309f1(0x1a7),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x39a82e[_0x2309f1(0x1af)],'message':'services\x20must\x20be\x20an\x20array'};const _0x449da9=_0x39a82e[_0x2309f1(0x176)][_0x2309f1(0x1ab)](summarizeLocalServiceEntry);return{'registryPath':_0x4b3324,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x39a82e[_0x2309f1(0x1af)],'serviceCount':_0x449da9[_0x2309f1(0x17a)],'commandCount':_0x449da9['reduce']((_0x328f54,_0x2ee114)=>_0x328f54+_0x2ee114[_0x2309f1(0x179)],0x0),'services':_0x449da9};}catch(_0x5ab656){return{...emptyServiceRegistryInspection(_0x4b3324,_0x2309f1(0x1a7),!![]),'message':_0x5ab656 instanceof Error?_0x5ab656[_0x2309f1(0x19e)]:String(_0x5ab656)};}}export function formatValidationFailure(_0x186861){const _0x1df35c=a63_0x41826b,_0x52106d=_0x186861[_0x1df35c(0x169)][_0x1df35c(0x1ab)](_0x169ca4=>_0x169ca4['path']+':\x20'+_0x169ca4[_0x1df35c(0x19e)]);return _0x1df35c(0x1bc)+_0x52106d[_0x1df35c(0x1b5)]('\x0a');}function extractLoadedServiceManifests(_0x5c1401,_0x344424){const _0x19004b=a63_0x41826b;if(!isServiceRegistryLike(_0x5c1401)){const _0x365d69=_0x5c1401,{manifest:_0x32ccb6,errors:_0x28757d}=adaptServiceTreeManifestForLegacyFramework(_0x365d69),_0x461787=validateServiceTreeManifest(_0x32ccb6),_0x1cd25b=mergeValidationErrors(_0x461787,_0x28757d);return[{'manifest':_0x365d69,'report':_0x1cd25b,'normalizedManifest':_0x1cd25b['ok']?normalizeServiceTreeManifest(_0x32ccb6):undefined,'sourceHash':_0x344424}];}return _0x5c1401[_0x19004b(0x176)][_0x19004b(0x1ab)]((_0x4c56d0,_0x3f7c97)=>{const _0x3a441c=_0x19004b,_0x57eb94=isObjectRecord(_0x4c56d0)?_0x4c56d0['manifest']:undefined,{manifest:_0x44fd75,errors:_0x34d880}=adaptServiceTreeManifestForLegacyFramework(_0x57eb94),_0x302cdc=validateServiceTreeManifest(_0x44fd75),_0x27480a=mergeValidationErrors(_0x302cdc,_0x34d880),_0x13c484=isObjectRecord(_0x4c56d0)&&typeof _0x4c56d0[_0x3a441c(0x16e)]===_0x3a441c(0x18c)?_0x4c56d0['serviceCode']:undefined;return{'manifest':_0x57eb94,'report':_0x27480a,'normalizedManifest':_0x27480a['ok']?normalizeServiceTreeManifest(_0x44fd75):undefined,'sourceHash':sha256(JSON[_0x3a441c(0x1b3)](_0x57eb94,null,0x2)+'\x0a'),'registryIndex':_0x3f7c97,'registryServiceCode':_0x13c484};});}function mergeValidationErrors(_0x3ae0ee,_0x4b8cd8){const _0x1304df=a63_0x41826b,_0x218def=_0x3ae0ee[_0x1304df(0x169)]['map'](_0x140d76=>_0x140d76[_0x1304df(0x19e)]===_0x1304df(0x1b8)?{..._0x140d76,'message':_0x1304df(0x1b2)}:_0x140d76),_0x13ff16=[..._0x4b8cd8,..._0x218def];return{'ok':_0x13ff16[_0x1304df(0x17a)]===0x0,'errors':_0x13ff16,'warnings':_0x3ae0ee[_0x1304df(0x19a)]};}function aggregateValidationReports(_0xbeb43c){const _0xecf9=a63_0x41826b,_0x58ad3c=_0xbeb43c['flatMap'](_0x20c3e=>_0x20c3e[_0xecf9(0x194)]===undefined?_0x20c3e[_0xecf9(0x172)][_0xecf9(0x169)]:_0x20c3e[_0xecf9(0x172)][_0xecf9(0x169)][_0xecf9(0x1ab)](_0x3dbd57=>({..._0x3dbd57,'path':prefixRegistryIssuePath(_0x20c3e[_0xecf9(0x194)],_0x3dbd57[_0xecf9(0x19c)])}))),_0x522c39=_0xbeb43c[_0xecf9(0x168)](_0x5cf3c0=>_0x5cf3c0[_0xecf9(0x194)]===undefined?_0x5cf3c0[_0xecf9(0x172)][_0xecf9(0x19a)]:_0x5cf3c0[_0xecf9(0x172)][_0xecf9(0x19a)][_0xecf9(0x1ab)](_0x432bda=>({..._0x432bda,'path':prefixRegistryIssuePath(_0x5cf3c0['registryIndex'],_0x432bda[_0xecf9(0x19c)])})));return{'ok':_0x58ad3c['length']===0x0,'errors':_0x58ad3c,'warnings':_0x522c39};}function prefixRegistryIssuePath(_0x56def7,_0x13b132){const _0x119e9c=a63_0x41826b;if(_0x13b132==='$')return'$.services['+_0x56def7+'].manifest';if(_0x13b132['startsWith']('$.'))return _0x119e9c(0x177)+_0x56def7+'].manifest'+_0x13b132[_0x119e9c(0x1a6)](0x1);if(_0x13b132[_0x119e9c(0x17b)]('$['))return'$.services['+_0x56def7+'].manifest'+_0x13b132[_0x119e9c(0x1a6)](0x1);return _0x119e9c(0x177)+_0x56def7+_0x119e9c(0x16b)+_0x13b132;}function isServiceRegistryLike(_0x540b74){const _0x2d955e=a63_0x41826b;return isObjectRecord(_0x540b74)&&_0x540b74[_0x2d955e(0x17e)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x540b74[_0x2d955e(0x176)]);}function isObjectRecord(_0x256c1b){const _0x5aac60=a63_0x41826b;return Boolean(_0x256c1b)&&typeof _0x256c1b===_0x5aac60(0x19b)&&!Array[_0x5aac60(0x18b)](_0x256c1b);}function emptyServiceRegistryInspection(_0x5ba721,_0x346c15,_0x2e2827){return{'registryPath':_0x5ba721,'exists':_0x2e2827,'status':_0x346c15,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x5f0108){const _0x25a9b4=a63_0x41826b,_0x416838=_0x5f0108[_0x25a9b4(0x1a9)],_0x36b297=_0x416838[_0x25a9b4(0x1a3)]['map'](_0x51de80=>({'path':_0x51de80[_0x25a9b4(0x190)],'description':_0x51de80[_0x25a9b4(0x181)],'risk':_0x51de80['risk'],'targetKind':_0x51de80[_0x25a9b4(0x16f)][_0x25a9b4(0x1a1)],'targetCommand':_0x51de80[_0x25a9b4(0x16f)][_0x25a9b4(0x1a2)]}));return{'serviceCode':_0x5f0108['serviceCode'],'name':_0x416838[_0x25a9b4(0x171)][_0x25a9b4(0x185)],'description':_0x416838['service']['description'],'version':_0x5f0108[_0x25a9b4(0x1aa)],'importedAt':_0x5f0108[_0x25a9b4(0x189)],'source':_0x5f0108[_0x25a9b4(0x1a8)],'commandCount':_0x36b297[_0x25a9b4(0x17a)],'commands':_0x36b297};}function sha256(_0x34e5e1){const _0x160eb5=a63_0x41826b;return createHash(_0x160eb5(0x1a0))[_0x160eb5(0x178)](_0x34e5e1)[_0x160eb5(0x187)](_0x160eb5(0x17d));}
1
+ const a63_0x552bce=a63_0x88d6;(function(_0x8d79a2,_0x4a1d9d){const _0x42db1a=a63_0x88d6,_0x5da85c=_0x8d79a2();while(!![]){try{const _0x3ef536=parseInt(_0x42db1a(0x1d4))/0x1*(parseInt(_0x42db1a(0x1e7))/0x2)+parseInt(_0x42db1a(0x1f7))/0x3*(-parseInt(_0x42db1a(0x1f1))/0x4)+-parseInt(_0x42db1a(0x223))/0x5+parseInt(_0x42db1a(0x1d8))/0x6*(-parseInt(_0x42db1a(0x1db))/0x7)+-parseInt(_0x42db1a(0x1e4))/0x8*(-parseInt(_0x42db1a(0x211))/0x9)+-parseInt(_0x42db1a(0x1f3))/0xa+parseInt(_0x42db1a(0x20a))/0xb*(parseInt(_0x42db1a(0x1d3))/0xc);if(_0x3ef536===_0x4a1d9d)break;else _0x5da85c['push'](_0x5da85c['shift']());}catch(_0x1fc095){_0x5da85c['push'](_0x5da85c['shift']());}}}(a63_0x58b3,0x1ef33));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_0x552bce(0x1d7);export function getServiceRegistryPath(_0x527487={}){const _0x237cd2=a63_0x552bce;return resolve(_0x527487[_0x237cd2(0x1f6)]??homedir(),PRODUCT_CONFIG[_0x237cd2(0x21f)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x1fc125={}){const _0x5958c2=a63_0x552bce,_0x4cc93c=getServiceRegistryPath(_0x1fc125);if(!existsSync(_0x4cc93c))return emptyServiceRegistry();try{const _0x5a2e17=readFileSync(_0x4cc93c,'utf8');if(!_0x5a2e17[_0x5958c2(0x215)]())return emptyServiceRegistry();const _0x55a953=JSON[_0x5958c2(0x204)](_0x5a2e17);if(_0x55a953[_0x5958c2(0x203)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x5958c2(0x1da)](_0x5958c2(0x1e6)+String(_0x55a953['schemaVersion']),_0x5958c2(0x21d)+_0x4cc93c+'.');if(!Array[_0x5958c2(0x206)](_0x55a953['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x55a953[_0x5958c2(0x1ea)],'services':_0x55a953['services']};}catch(_0x27eb2d){if(_0x27eb2d instanceof Error&&_0x27eb2d[_0x5958c2(0x210)]===_0x5958c2(0x201))throw _0x27eb2d;throw CliErrors[_0x5958c2(0x1da)](_0x5958c2(0x1f0)+_0x4cc93c,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x116b17,_0x7b9149={}){const _0x36ad12=a63_0x552bce,_0x169bfa=getServiceRegistryPath(_0x7b9149),_0xbcb753=dirname(_0x169bfa);!existsSync(_0xbcb753)&&mkdirSync(_0xbcb753,{'recursive':!![]});const _0x14620c=_0x169bfa+_0x36ad12(0x1ee);try{writeFileSync(_0x14620c,JSON[_0x36ad12(0x1ed)](_0x116b17,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x14620c,_0x169bfa);}catch(_0x492041){try{unlinkSync(_0x14620c);}catch{}if(_0x492041?.[_0x36ad12(0x200)]===_0x36ad12(0x213))throw CliErrors[_0x36ad12(0x1da)](_0x36ad12(0x1e2)+_0x169bfa);throw _0x492041;}return _0x169bfa;}export function loadServiceManifestFromFile(_0x279c33){const _0x89c459=a63_0x552bce,_0x2d8c7e=resolve(_0x279c33);if(!existsSync(_0x2d8c7e))throw CliErrors['validation'](_0x89c459(0x1e0)+_0x279c33);let _0x1a8931;const _0xd36ca8=readFileSync(_0x2d8c7e,_0x89c459(0x21b));try{_0x1a8931=JSON[_0x89c459(0x204)](_0xd36ca8);}catch{throw CliErrors[_0x89c459(0x1da)](_0x89c459(0x1d6)+_0x279c33,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x136c93=sha256(_0xd36ca8),_0x35ff13=extractLoadedServiceManifests(_0x1a8931,_0x136c93),_0x22ef48=aggregateValidationReports(_0x35ff13),_0x5ba952=_0x35ff13[0x0];return{'filePath':_0x2d8c7e,'hash':_0x136c93,'kind':isServiceRegistryLike(_0x1a8931)?_0x89c459(0x1fb):_0x89c459(0x1ff),'manifest':_0x5ba952?.[_0x89c459(0x1ff)]??_0x1a8931,'report':_0x22ef48,'normalizedManifest':_0x35ff13[_0x89c459(0x20e)]===0x1?_0x5ba952?.[_0x89c459(0x1f8)]:undefined,'manifests':_0x35ff13};}export function importServiceManifest(_0x5cc6f6,_0xf3978a={}){const _0x24c017=a63_0x552bce,_0x4397f1=loadServiceManifestFromFile(_0x5cc6f6);if(!_0x4397f1[_0x24c017(0x207)]['ok'])throw CliErrors[_0x24c017(0x1da)](formatValidationFailure(_0x4397f1[_0x24c017(0x207)]),_0x24c017(0x1dc));if(_0x4397f1[_0x24c017(0x1d1)][_0x24c017(0x20e)]===0x0)throw CliErrors[_0x24c017(0x1da)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x24c017(0x1d0));const _0x3d16c2=readServiceRegistry(_0xf3978a),_0x4781a6=(_0xf3978a[_0x24c017(0x1e8)]??(()=>new Date()))()['toISOString'](),_0x427247=[];let _0x2e0826=0x0,_0x2632d4=0x0;for(const _0x3234b1 of _0x4397f1[_0x24c017(0x1d1)]){if(!_0x3234b1[_0x24c017(0x1f8)])continue;const _0x59fb0a=_0x3234b1[_0x24c017(0x1f8)][_0x24c017(0x1ec)][_0x24c017(0x200)],_0x5383fb={'serviceCode':_0x59fb0a,'version':_0x3234b1[_0x24c017(0x1f8)]['version'],'importedAt':_0x4781a6,'source':{'type':'file','path':_0x4397f1[_0x24c017(0x216)],'hash':_0x3234b1[_0x24c017(0x20c)]},'manifest':_0x3234b1[_0x24c017(0x1ff)],'normalizedManifest':_0x3234b1[_0x24c017(0x1f8)]},_0x394d4d=_0x3d16c2['services']['findIndex'](_0x20c424=>_0x20c424['serviceCode']===_0x59fb0a);_0x394d4d>=0x0?(_0x3d16c2['services'][_0x394d4d]=_0x5383fb,_0x2632d4++):(_0x3d16c2[_0x24c017(0x1eb)][_0x24c017(0x1de)](_0x5383fb),_0x2e0826++),_0x427247['push'](_0x5383fb);}_0x3d16c2['services'][_0x24c017(0x221)]((_0x444858,_0x6343b7)=>_0x444858[_0x24c017(0x212)][_0x24c017(0x21e)](_0x6343b7[_0x24c017(0x212)])),_0x3d16c2['updatedAt']=_0x4781a6;const _0x3033e4=writeServiceRegistry(_0x3d16c2,_0xf3978a);return{'registryPath':_0x3033e4,'entry':_0x427247[0x0],'replaced':_0x427247['length']===0x1?_0x2632d4===0x1:_0x2632d4>0x0,'entries':_0x427247,'imported':_0x2e0826,'updated':_0x2632d4,'serviceCount':_0x3d16c2[_0x24c017(0x1eb)][_0x24c017(0x20e)]};}export function exportServiceManifest(_0x32ec9a,_0x233144,_0x506396={}){const _0x21bfe7=a63_0x552bce,_0xa071e3=getServiceRegistryPath(_0x506396),_0x285a78=getLocalServiceEntry(_0x32ec9a,_0x506396);if(!_0x285a78)throw CliErrors['validation']('Local\x20service\x20not\x20found:\x20'+_0x32ec9a,_0x21bfe7(0x214));const _0x3e8a4a=resolve(_0x233144),_0x3e2051=dirname(_0x3e8a4a);return!existsSync(_0x3e2051)&&mkdirSync(_0x3e2051,{'recursive':!![]}),writeFileSync(_0x3e8a4a,JSON[_0x21bfe7(0x1ed)](_0x285a78[_0x21bfe7(0x1ff)],null,0x2)+'\x0a',{'encoding':_0x21bfe7(0x21b),'mode':0x180}),{'registryPath':_0xa071e3,'filePath':_0x3e8a4a,'entry':_0x285a78};}export function removeServiceManifest(_0x13754a,_0x4c3cd0={}){const _0x28bd43=a63_0x552bce,_0x4be2da=readServiceRegistry(_0x4c3cd0),_0x3a5869=_0x13754a[_0x28bd43(0x215)](),_0x3cae05=_0x4be2da['services'][_0x28bd43(0x1f2)](_0x5c80f8=>_0x5c80f8[_0x28bd43(0x212)]===_0x3a5869);if(_0x3cae05<0x0)throw CliErrors[_0x28bd43(0x1da)](_0x28bd43(0x1f4)+_0x3a5869,_0x28bd43(0x214));const [_0x30e616]=_0x4be2da[_0x28bd43(0x1eb)]['splice'](_0x3cae05,0x1),_0x261973=(_0x4c3cd0['now']??(()=>new Date()))()[_0x28bd43(0x1e5)]();_0x4be2da[_0x28bd43(0x1ea)]=_0x261973;const _0x30b238=writeServiceRegistry(_0x4be2da,_0x4c3cd0);return{'registryPath':_0x30b238,'entry':_0x30e616,'serviceCount':_0x4be2da[_0x28bd43(0x1eb)][_0x28bd43(0x20e)]};}export function listLocalServices(_0x3fe082={}){const _0x40c0b3=a63_0x552bce;return readServiceRegistry(_0x3fe082)[_0x40c0b3(0x1eb)];}export function getLocalServiceEntry(_0x13687f,_0x3f714e={}){const _0x3d71ee=a63_0x552bce;return readServiceRegistry(_0x3f714e)[_0x3d71ee(0x1eb)][_0x3d71ee(0x1fc)](_0x4e926f=>_0x4e926f[_0x3d71ee(0x212)]===_0x13687f[_0x3d71ee(0x215)]());}export function listLocalServiceTrees(_0x15017c={}){const _0x106024=a63_0x552bce;return readServiceRegistry(_0x15017c)['services'][_0x106024(0x217)](_0x21c1ea=>_0x21c1ea[_0x106024(0x1f8)]);}export function inspectServiceRegistry(_0x578dc3={}){const _0x3e6d82=a63_0x552bce,_0x5bec86=getServiceRegistryPath(_0x578dc3);if(!existsSync(_0x5bec86))return emptyServiceRegistryInspection(_0x5bec86,_0x3e6d82(0x209),![]);try{const _0x551037=readFileSync(_0x5bec86,'utf8');if(!_0x551037['trim']())return emptyServiceRegistryInspection(_0x5bec86,_0x3e6d82(0x1ef),!![]);const _0x6e7bae=JSON['parse'](_0x551037);if(_0x6e7bae['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x5bec86,'invalid',!![]),'schemaVersion':_0x6e7bae[_0x3e6d82(0x203)],'message':_0x3e6d82(0x20d)+String(_0x6e7bae['schemaVersion'])};if(!Array[_0x3e6d82(0x206)](_0x6e7bae[_0x3e6d82(0x1eb)]))return{...emptyServiceRegistryInspection(_0x5bec86,_0x3e6d82(0x1cc),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x6e7bae[_0x3e6d82(0x1ea)],'message':_0x3e6d82(0x220)};const _0x105605=_0x6e7bae[_0x3e6d82(0x1eb)][_0x3e6d82(0x217)](summarizeLocalServiceEntry);return{'registryPath':_0x5bec86,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x6e7bae[_0x3e6d82(0x1ea)],'serviceCount':_0x105605['length'],'commandCount':_0x105605['reduce']((_0x27a310,_0xaa3a79)=>_0x27a310+_0xaa3a79[_0x3e6d82(0x1e9)],0x0),'services':_0x105605};}catch(_0x444c4c){return{...emptyServiceRegistryInspection(_0x5bec86,'invalid',!![]),'message':_0x444c4c instanceof Error?_0x444c4c[_0x3e6d82(0x21c)]:String(_0x444c4c)};}}function a63_0x88d6(_0x13dbed,_0x7cb6bc){_0x13dbed=_0x13dbed-0x1cb;const _0x58b387=a63_0x58b3();let _0x88d68=_0x58b387[_0x13dbed];return _0x88d68;}function a63_0x58b3(){const _0x49db4a=['target','homeDir','287853ISwkqA','normalizedManifest','update','errors','registry','find','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','command','manifest','code','CliError','bff\x20target\x20requires\x20functionName.','schemaVersion','parse','].manifest','isArray','report','risk','missing','11Yjnlgq','join','sourceHash','Unsupported\x20schemaVersion:\x20','length','sha256','name','18OLNHma','serviceCode','ENOENT','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','trim','filePath','map','kind','slice','Service\x20manifest\x20validation\x20failed:\x0a','utf8','message','Remove\x20or\x20migrate\x20','localeCompare','homeDirName','services\x20must\x20be\x20an\x20array','sort','object','917490mbqKFD','$.services[','invalid','hex','warnings','flatMap','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','manifests','description','4254084pxKeGf','100502anbkQT','startsWith','Invalid\x20service\x20manifest\x20JSON:\x20','service.json','174684VhhaBJ','registryIndex','validation','35rnqLRT','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','path','push','version','Service\x20manifest\x20file\x20not\x20found:\x20','commands','Cannot\x20write\x20service\x20registry:\x20','digest','981600uSyZjV','toISOString','Unsupported\x20service\x20registry\x20schemaVersion:\x20','4XpmLxJ','now','commandCount','updatedAt','services','service','stringify','.tmp','empty','Invalid\x20service\x20registry\x20JSON:\x20','4nnrYXn','findIndex','2491210eAzrqG','Local\x20service\x20not\x20found:\x20'];a63_0x58b3=function(){return _0x49db4a;};return a63_0x58b3();}export function formatValidationFailure(_0x4a77ca){const _0x4b98f4=a63_0x552bce,_0x124159=_0x4a77ca[_0x4b98f4(0x1fa)][_0x4b98f4(0x217)](_0x456895=>_0x456895[_0x4b98f4(0x1dd)]+':\x20'+_0x456895[_0x4b98f4(0x21c)]);return _0x4b98f4(0x21a)+_0x124159[_0x4b98f4(0x20b)]('\x0a');}function extractLoadedServiceManifests(_0x573e5a,_0x2613bb){const _0x29ffb1=a63_0x552bce;if(!isServiceRegistryLike(_0x573e5a)){const _0x265b95=_0x573e5a,{manifest:_0x32444d,errors:_0x5e639a}=adaptServiceTreeManifestForLegacyFramework(_0x265b95),_0x1bfe58=validateServiceTreeManifest(_0x32444d),_0x33c570=mergeValidationErrors(_0x1bfe58,_0x5e639a);return[{'manifest':_0x265b95,'report':_0x33c570,'normalizedManifest':_0x33c570['ok']?normalizeServiceTreeManifest(_0x32444d):undefined,'sourceHash':_0x2613bb}];}return _0x573e5a[_0x29ffb1(0x1eb)][_0x29ffb1(0x217)]((_0x48ee12,_0x12372b)=>{const _0x25072a=_0x29ffb1,_0x7082a8=isObjectRecord(_0x48ee12)?_0x48ee12[_0x25072a(0x1ff)]:undefined,{manifest:_0x1063ed,errors:_0x54db59}=adaptServiceTreeManifestForLegacyFramework(_0x7082a8),_0x3540f5=validateServiceTreeManifest(_0x1063ed),_0x23680d=mergeValidationErrors(_0x3540f5,_0x54db59),_0x2e0a1e=isObjectRecord(_0x48ee12)&&typeof _0x48ee12['serviceCode']==='string'?_0x48ee12[_0x25072a(0x212)]:undefined;return{'manifest':_0x7082a8,'report':_0x23680d,'normalizedManifest':_0x23680d['ok']?normalizeServiceTreeManifest(_0x1063ed):undefined,'sourceHash':sha256(JSON[_0x25072a(0x1ed)](_0x7082a8,null,0x2)+'\x0a'),'registryIndex':_0x12372b,'registryServiceCode':_0x2e0a1e};});}function mergeValidationErrors(_0x33318d,_0x20b717){const _0x577eb9=a63_0x552bce,_0x1996c1=_0x33318d[_0x577eb9(0x1fa)][_0x577eb9(0x217)](_0x54386d=>_0x54386d[_0x577eb9(0x21c)]===_0x577eb9(0x1fd)?{..._0x54386d,'message':_0x577eb9(0x202)}:_0x54386d),_0x25b855=[..._0x20b717,..._0x1996c1];return{'ok':_0x25b855[_0x577eb9(0x20e)]===0x0,'errors':_0x25b855,'warnings':_0x33318d[_0x577eb9(0x1ce)]};}function aggregateValidationReports(_0x33d8f0){const _0x49c60d=a63_0x552bce,_0x249776=_0x33d8f0[_0x49c60d(0x1cf)](_0x3ae2e2=>_0x3ae2e2[_0x49c60d(0x1d9)]===undefined?_0x3ae2e2['report']['errors']:_0x3ae2e2['report']['errors']['map'](_0xfde8a=>({..._0xfde8a,'path':prefixRegistryIssuePath(_0x3ae2e2[_0x49c60d(0x1d9)],_0xfde8a[_0x49c60d(0x1dd)])}))),_0x43bbd4=_0x33d8f0[_0x49c60d(0x1cf)](_0x116fb2=>_0x116fb2[_0x49c60d(0x1d9)]===undefined?_0x116fb2[_0x49c60d(0x207)][_0x49c60d(0x1ce)]:_0x116fb2['report']['warnings'][_0x49c60d(0x217)](_0xd31cf8=>({..._0xd31cf8,'path':prefixRegistryIssuePath(_0x116fb2[_0x49c60d(0x1d9)],_0xd31cf8['path'])})));return{'ok':_0x249776[_0x49c60d(0x20e)]===0x0,'errors':_0x249776,'warnings':_0x43bbd4};}function prefixRegistryIssuePath(_0x17a0b1,_0x2151f7){const _0x1c2765=a63_0x552bce;if(_0x2151f7==='$')return'$.services['+_0x17a0b1+_0x1c2765(0x205);if(_0x2151f7[_0x1c2765(0x1d5)]('$.'))return _0x1c2765(0x1cb)+_0x17a0b1+_0x1c2765(0x205)+_0x2151f7[_0x1c2765(0x219)](0x1);if(_0x2151f7['startsWith']('$['))return'$.services['+_0x17a0b1+'].manifest'+_0x2151f7[_0x1c2765(0x219)](0x1);return _0x1c2765(0x1cb)+_0x17a0b1+'].manifest.'+_0x2151f7;}function isServiceRegistryLike(_0x27c5ac){const _0x2cd26d=a63_0x552bce;return isObjectRecord(_0x27c5ac)&&_0x27c5ac[_0x2cd26d(0x203)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x2cd26d(0x206)](_0x27c5ac[_0x2cd26d(0x1eb)]);}function isObjectRecord(_0x2b15d2){const _0x557713=a63_0x552bce;return Boolean(_0x2b15d2)&&typeof _0x2b15d2===_0x557713(0x222)&&!Array['isArray'](_0x2b15d2);}function emptyServiceRegistryInspection(_0x4df0a8,_0x364c08,_0x5703fa){return{'registryPath':_0x4df0a8,'exists':_0x5703fa,'status':_0x364c08,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x1c7200){const _0x1092bc=a63_0x552bce,_0x717393=_0x1c7200[_0x1092bc(0x1f8)],_0x421875=_0x717393[_0x1092bc(0x1e1)][_0x1092bc(0x217)](_0x498da9=>({'path':_0x498da9['cliPath'],'description':_0x498da9[_0x1092bc(0x1d2)],'risk':_0x498da9[_0x1092bc(0x208)],'targetKind':_0x498da9['target'][_0x1092bc(0x218)],'targetCommand':_0x498da9[_0x1092bc(0x1f5)][_0x1092bc(0x1fe)]}));return{'serviceCode':_0x1c7200[_0x1092bc(0x212)],'name':_0x717393[_0x1092bc(0x1ec)][_0x1092bc(0x210)],'description':_0x717393[_0x1092bc(0x1ec)][_0x1092bc(0x1d2)],'version':_0x1c7200[_0x1092bc(0x1df)],'importedAt':_0x1c7200['importedAt'],'source':_0x1c7200['source'],'commandCount':_0x421875[_0x1092bc(0x20e)],'commands':_0x421875};}function sha256(_0x1fa521){const _0x334665=a63_0x552bce;return createHash(_0x334665(0x20f))[_0x334665(0x1f9)](_0x1fa521)[_0x334665(0x1e3)](_0x334665(0x1cd));}
@@ -1 +1 @@
1
- const a64_0x4a2669=a64_0x1caf;(function(_0x3f90be,_0x10c584){const _0x20cc53=a64_0x1caf,_0xc8d725=_0x3f90be();while(!![]){try{const _0x3cb407=parseInt(_0x20cc53(0x208))/0x1*(parseInt(_0x20cc53(0x20b))/0x2)+parseInt(_0x20cc53(0x1e9))/0x3+parseInt(_0x20cc53(0x1f8))/0x4*(parseInt(_0x20cc53(0x205))/0x5)+-parseInt(_0x20cc53(0x1f5))/0x6+parseInt(_0x20cc53(0x1ec))/0x7+parseInt(_0x20cc53(0x1f7))/0x8+-parseInt(_0x20cc53(0x1ff))/0x9*(parseInt(_0x20cc53(0x20d))/0xa);if(_0x3cb407===_0x10c584)break;else _0xc8d725['push'](_0xc8d725['shift']());}catch(_0x49ad58){_0xc8d725['push'](_0xc8d725['shift']());}}}(a64_0x5b07,0xccfda));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';function a64_0x5b07(){const _0x3920ec=['Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','str','6776205WwzKZO','map','skillName','73119VfUUQX','path','create','38KjPjAm','isSymbolicLink','10zgIvcL','target','1577901YAVZnB','content','Skill\x20directory\x20already\x20exists:\x20','1553965yRuUBo','trim','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','skillDir','name','files','read','skill','9061338SxvMrV','validation','11626992sKLsrb','4xOHlED','WRITE','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','Created\x20local\x20Skill\x20draft\x20','rendered','type','bool','23363757oexail','isDirectory','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','utf8'];a64_0x5b07=function(){return _0x3920ec;};return a64_0x5b07();}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_0x4a2669(0x1f4),'command':a64_0x4a2669(0x20a),'description':a64_0x4a2669(0x201),'risk':a64_0x4a2669(0x1f3),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x530f61){const _0x430e71=a64_0x4a2669,_0x3ede61=buildSkillCreatePlan(_0x530f61['str']('name'),_0x530f61[_0x430e71(0x204)](_0x430e71(0x1fd)),_0x530f61[_0x430e71(0x204)]('target'));return{'method':_0x430e71(0x1f9),'url':_0x3ede61[_0x430e71(0x1f0)],'body':{'skillName':_0x3ede61[_0x430e71(0x1fc)]['skillName'],'type':_0x3ede61[_0x430e71(0x1fc)][_0x430e71(0x1fd)],'selfContained':!![],'files':_0x3ede61[_0x430e71(0x1fc)][_0x430e71(0x1f2)][_0x430e71(0x206)](_0x24afc0=>_0x24afc0[_0x430e71(0x209)])},'description':_0x430e71(0x1ee)};},async 'execute'(_0x50b656){const _0x503e1e=a64_0x4a2669,_0xa94206=buildSkillCreatePlan(_0x50b656[_0x503e1e(0x204)](_0x503e1e(0x1f1)),_0x50b656[_0x503e1e(0x204)](_0x503e1e(0x1fd)),_0x50b656[_0x503e1e(0x204)](_0x503e1e(0x20e)));return writeSkillDraft(_0xa94206,_0x50b656[_0x503e1e(0x1fe)]('force')),{'ok':!![],'data':{'skillName':_0xa94206[_0x503e1e(0x1fc)][_0x503e1e(0x207)],'type':_0xa94206[_0x503e1e(0x1fc)][_0x503e1e(0x1fd)],'dir':_0xa94206[_0x503e1e(0x1f0)],'files':_0xa94206[_0x503e1e(0x1fc)][_0x503e1e(0x1f2)][_0x503e1e(0x206)](_0x5beb3d=>_0x5beb3d[_0x503e1e(0x209)])},'message':_0x503e1e(0x1fb)+_0xa94206['rendered']['skillName']};}};function buildSkillCreatePlan(_0x55f0ac,_0x2f438a,_0x5599cb){const _0x1930a0=a64_0x4a2669,_0x3fc4d5=_0x2f438a[_0x1930a0(0x1ed)](),_0x14e426=renderSkillTemplate({'skillName':_0x55f0ac,'type':_0x3fc4d5});!_0x3fc4d5&&writeCliSideChannelLine(_0x1930a0(0x1ef));const _0xcedb5e=resolve(normalizeSkillTarget(_0x5599cb));return{'rendered':_0x14e426,'targetRoot':_0xcedb5e,'skillDir':resolve(_0xcedb5e,_0x14e426[_0x1930a0(0x207)])};}function a64_0x1caf(_0x17c925,_0x9ac94b){_0x17c925=_0x17c925-0x1e9;const _0x5b07f4=a64_0x5b07();let _0x1caf2a=_0x5b07f4[_0x17c925];return _0x1caf2a;}function normalizeSkillTarget(_0x2f2caa){const _0x2d6020=a64_0x4a2669;return(_0x2f2caa||DEFAULT_SKILL_TARGET)[_0x2d6020(0x1ed)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x4db9a4,_0x1348ac){const _0x34b6dc=a64_0x4a2669;if(existsSync(_0x4db9a4[_0x34b6dc(0x1f0)])){const _0xf7da0b=lstatSync(_0x4db9a4[_0x34b6dc(0x1f0)]);if(!_0xf7da0b[_0x34b6dc(0x200)]()||_0xf7da0b[_0x34b6dc(0x20c)]())throw CliErrors['validation'](_0x34b6dc(0x1fa)+_0x4db9a4['skillDir']);if(!_0x1348ac)throw CliErrors[_0x34b6dc(0x1f6)](_0x34b6dc(0x1eb)+_0x4db9a4[_0x34b6dc(0x1f0)],_0x34b6dc(0x203));}for(const _0x5d1150 of _0x4db9a4['rendered'][_0x34b6dc(0x1f2)]){const _0x35c964=resolve(_0x4db9a4[_0x34b6dc(0x1f0)],_0x5d1150['path']),_0x1972dd=dirname(_0x35c964);mkdirSync(_0x1972dd,{'recursive':!![]});if(existsSync(_0x35c964)&&lstatSync(_0x35c964)['isSymbolicLink']())throw CliErrors[_0x34b6dc(0x1f6)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0x35c964);writeFileSync(_0x35c964,_0x5d1150[_0x34b6dc(0x1ea)],_0x34b6dc(0x202));}}
1
+ function a64_0x3cf4(_0x54cf0b,_0x3fb8bc){_0x54cf0b=_0x54cf0b-0x151;const _0x3d6208=a64_0x3d62();let _0x3cf4be=_0x3d6208[_0x54cf0b];return _0x3cf4be;}const a64_0x35e6b4=a64_0x3cf4;(function(_0x5bb3ff,_0x48073a){const _0x507358=a64_0x3cf4,_0x4d8209=_0x5bb3ff();while(!![]){try{const _0x336018=-parseInt(_0x507358(0x158))/0x1+parseInt(_0x507358(0x169))/0x2+parseInt(_0x507358(0x16c))/0x3*(-parseInt(_0x507358(0x162))/0x4)+-parseInt(_0x507358(0x15f))/0x5+parseInt(_0x507358(0x164))/0x6+-parseInt(_0x507358(0x160))/0x7*(parseInt(_0x507358(0x165))/0x8)+-parseInt(_0x507358(0x15b))/0x9*(-parseInt(_0x507358(0x154))/0xa);if(_0x336018===_0x48073a)break;else _0x4d8209['push'](_0x4d8209['shift']());}catch(_0x4d66eb){_0x4d8209['push'](_0x4d8209['shift']());}}}(a64_0x3d62,0x8cb90));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';function a64_0x3d62(){const _0x5b647d=['files','230KMkOCe','trim','isSymbolicLink','WRITE','797617xFuTre','rendered','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','769059kZnfOc','validation','target','Refusing\x20to\x20overwrite\x20symlink:\x20','942960sDurPG','5649zEmtiY','name','4osrZzU','map','1755012eLEePS','872aFXIiQ','create','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','type','150012SGFfcj','skillName','Skill\x20directory\x20already\x20exists:\x20','2046927cWnaQx','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','content','skillDir','Created\x20local\x20Skill\x20draft\x20','str','path','skill'];a64_0x3d62=function(){return _0x5b647d;};return a64_0x3d62();}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_0x35e6b4(0x152),'command':a64_0x35e6b4(0x166),'description':a64_0x35e6b4(0x15a),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0xc9aab5){const _0x58e45a=a64_0x35e6b4,_0x3abe23=buildSkillCreatePlan(_0xc9aab5[_0x58e45a(0x171)](_0x58e45a(0x161)),_0xc9aab5['str'](_0x58e45a(0x168)),_0xc9aab5[_0x58e45a(0x171)]('target'));return{'method':_0x58e45a(0x157),'url':_0x3abe23[_0x58e45a(0x16f)],'body':{'skillName':_0x3abe23[_0x58e45a(0x159)][_0x58e45a(0x16a)],'type':_0x3abe23[_0x58e45a(0x159)][_0x58e45a(0x168)],'selfContained':!![],'files':_0x3abe23[_0x58e45a(0x159)]['files'][_0x58e45a(0x163)](_0x582940=>_0x582940[_0x58e45a(0x151)])},'description':'Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.'};},async 'execute'(_0x27af19){const _0x37368f=a64_0x35e6b4,_0x502f78=buildSkillCreatePlan(_0x27af19[_0x37368f(0x171)]('name'),_0x27af19['str']('type'),_0x27af19[_0x37368f(0x171)](_0x37368f(0x15d)));return writeSkillDraft(_0x502f78,_0x27af19['bool']('force')),{'ok':!![],'data':{'skillName':_0x502f78['rendered']['skillName'],'type':_0x502f78[_0x37368f(0x159)]['type'],'dir':_0x502f78['skillDir'],'files':_0x502f78[_0x37368f(0x159)][_0x37368f(0x153)][_0x37368f(0x163)](_0x2aada5=>_0x2aada5[_0x37368f(0x151)])},'message':_0x37368f(0x170)+_0x502f78[_0x37368f(0x159)][_0x37368f(0x16a)]};}};function buildSkillCreatePlan(_0x470762,_0x20536a,_0x2a6608){const _0x466024=a64_0x35e6b4,_0x43f277=_0x20536a[_0x466024(0x155)](),_0x407f28=renderSkillTemplate({'skillName':_0x470762,'type':_0x43f277});!_0x43f277&&writeCliSideChannelLine(_0x466024(0x16d));const _0x49c2a6=resolve(normalizeSkillTarget(_0x2a6608));return{'rendered':_0x407f28,'targetRoot':_0x49c2a6,'skillDir':resolve(_0x49c2a6,_0x407f28[_0x466024(0x16a)])};}function normalizeSkillTarget(_0x296a23){const _0x6d7b6a=a64_0x35e6b4;return(_0x296a23||DEFAULT_SKILL_TARGET)[_0x6d7b6a(0x155)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x19527a,_0xc746c9){const _0x2ba197=a64_0x35e6b4;if(existsSync(_0x19527a[_0x2ba197(0x16f)])){const _0x4e534d=lstatSync(_0x19527a[_0x2ba197(0x16f)]);if(!_0x4e534d['isDirectory']()||_0x4e534d['isSymbolicLink']())throw CliErrors[_0x2ba197(0x15c)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x19527a[_0x2ba197(0x16f)]);if(!_0xc746c9)throw CliErrors[_0x2ba197(0x15c)](_0x2ba197(0x16b)+_0x19527a[_0x2ba197(0x16f)],_0x2ba197(0x167));}for(const _0x48d217 of _0x19527a['rendered'][_0x2ba197(0x153)]){const _0x471361=resolve(_0x19527a[_0x2ba197(0x16f)],_0x48d217['path']),_0x2fdc03=dirname(_0x471361);mkdirSync(_0x2fdc03,{'recursive':!![]});if(existsSync(_0x471361)&&lstatSync(_0x471361)[_0x2ba197(0x156)]())throw CliErrors[_0x2ba197(0x15c)](_0x2ba197(0x15e)+_0x471361);writeFileSync(_0x471361,_0x48d217[_0x2ba197(0x16e)],'utf8');}}
@@ -1 +1 @@
1
- const a65_0x5e8aad=a65_0x1e5c;(function(_0x41d439,_0x4bb71b){const _0x1f8d85=a65_0x1e5c,_0x4bf937=_0x41d439();while(!![]){try{const _0x4bc75b=-parseInt(_0x1f8d85(0x1d8))/0x1+-parseInt(_0x1f8d85(0x1dc))/0x2*(-parseInt(_0x1f8d85(0x1de))/0x3)+parseInt(_0x1f8d85(0x1d6))/0x4+parseInt(_0x1f8d85(0x1db))/0x5*(parseInt(_0x1f8d85(0x1cd))/0x6)+-parseInt(_0x1f8d85(0x1c0))/0x7*(-parseInt(_0x1f8d85(0x1b6))/0x8)+parseInt(_0x1f8d85(0x1c2))/0x9*(parseInt(_0x1f8d85(0x1ca))/0xa)+-parseInt(_0x1f8d85(0x1cc))/0xb;if(_0x4bc75b===_0x4bb71b)break;else _0x4bf937['push'](_0x4bf937['shift']());}catch(_0x5ef58c){_0x4bf937['push'](_0x4bf937['shift']());}}}(a65_0x4432,0xa49d3));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(_0x1f5029){const _0x126408=a65_0x1e5c,_0xb4ac71=_0x1f5029[_0x126408(0x1d1)](_0x126408(0x1d5))[_0x126408(0x1cf)](),_0xbe66c6=_0x1f5029[_0x126408(0x1d1)](_0x126408(0x1b3))['trim'](),_0x3ef824=_0x1f5029['str']('scope');if(!_0xb4ac71||!_0xbe66c6||_0x3ef824!=='personal'&&_0x3ef824!==_0x126408(0x1ce))throw CliErrors[_0x126408(0x1ba)](_0x126408(0x1b1));return{'skillCode':_0xb4ac71,'version':_0xbe66c6,'scope':_0x3ef824};}function a65_0x4432(){const _0x2d8ee4=['Created','659776ghTbuQ',';\x20next\x20write\x20expects\x20revision\x20','write','73765asldWa','450QyAORJ','appCode','13029wSvXTJ','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.','--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.','\x20Skill\x20diagram\x20for\x20','version','Skill\x20diagram\x20for\x20','expectedDiagramRevision','400Rrkhrb','scope','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','isInteger','validation','Skill\x20diagram\x20validation\x20passed\x20for\x20','skillCode','diagram-push','read','diagram-file','170107ihpdvU','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','719991CZBzoe','found','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','source-fingerprint','created','action','Create\x20or\x20replace\x20a\x20Mermaid\x20diagram\x20for\x20a\x20specific\x20Skill\x20version','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','160VzLDpw','test','34203202HdwKie','78RWagRU','company','trim','expected-diagram-revision','str','skill','\x20is\x20unchanged.','Found\x20Skill\x20diagram\x20for\x20','skill-code','3117676bAMyfs'];a65_0x4432=function(){return _0x2d8ee4;};return a65_0x4432();}async function readDiagramWriteInput(_0x59c0a6){const _0x2084f4=a65_0x1e5c,_0x53bee0=_0x59c0a6['num'](_0x2084f4(0x1d0)),_0xefb12=_0x59c0a6[_0x2084f4(0x1d1)](_0x2084f4(0x1c5))[_0x2084f4(0x1cf)]();if(!Number[_0x2084f4(0x1b9)](_0x53bee0)||_0x53bee0<0x0)throw CliErrors[_0x2084f4(0x1ba)](_0x2084f4(0x1b8));if(!/^sha256:[0-9a-f]{64}$/[_0x2084f4(0x1cb)](_0xefb12))throw CliErrors['validation']('--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.');return{'expectedDiagramRevision':_0x53bee0,'sourceFingerprint':_0xefb12,'diagram':await readRequiredSkillDiagram(_0x59c0a6[_0x2084f4(0x1d1)](_0x2084f4(0x1bf)))};}export const diagramValidateCommand={'service':a65_0x5e8aad(0x1d2),'command':'diagram-validate','description':a65_0x5e8aad(0x1c1),'risk':'read','flags':WRITE_FLAGS,async 'execute'(_0xf4c7e0){const _0x461f88=a65_0x5e8aad,_0x416789=readDiagramTarget(_0xf4c7e0),_0x148d68=await validateRuntimeSkillVersionDiagram(_0xf4c7e0[_0x461f88(0x1dd)],_0x416789[_0x461f88(0x1bc)],_0x416789['version'],_0x416789[_0x461f88(0x1b7)],await readDiagramWriteInput(_0xf4c7e0));return{'ok':!![],'data':_0x148d68,'message':_0x461f88(0x1bb)+_0x416789[_0x461f88(0x1bc)]+'@'+_0x416789[_0x461f88(0x1b3)]+'.'};}};function a65_0x1e5c(_0x3aac2f,_0x5a6c90){_0x3aac2f=_0x3aac2f-0x1b0;const _0x44325c=a65_0x4432();let _0x1e5c8c=_0x44325c[_0x3aac2f];return _0x1e5c8c;}export const diagramPushCommand={'service':a65_0x5e8aad(0x1d2),'command':a65_0x5e8aad(0x1bd),'description':a65_0x5e8aad(0x1c8),'risk':a65_0x5e8aad(0x1da),'confirmationDescription':a65_0x5e8aad(0x1b0),'flags':WRITE_FLAGS,async 'execute'(_0x2992e7){const _0x56e9e4=a65_0x5e8aad,_0x27d439=readDiagramTarget(_0x2992e7),_0x3af222=await putRuntimeSkillVersionDiagram(_0x2992e7['appCode'],_0x27d439[_0x56e9e4(0x1bc)],_0x27d439[_0x56e9e4(0x1b3)],_0x27d439[_0x56e9e4(0x1b7)],await readDiagramWriteInput(_0x2992e7));return{'ok':!![],'data':_0x3af222,'message':_0x3af222['action']==='unchanged'?_0x56e9e4(0x1b4)+_0x27d439[_0x56e9e4(0x1bc)]+'@'+_0x27d439[_0x56e9e4(0x1b3)]+_0x56e9e4(0x1d3):(_0x3af222[_0x56e9e4(0x1c7)]===_0x56e9e4(0x1c6)?_0x56e9e4(0x1d7):'Updated')+_0x56e9e4(0x1b2)+_0x27d439['skillCode']+'@'+_0x27d439[_0x56e9e4(0x1b3)]+'.'};}};export const diagramShowCommand={'service':'skill','command':'diagram-show','description':a65_0x5e8aad(0x1c4),'risk':a65_0x5e8aad(0x1be),'flags':TARGET_FLAGS,async 'execute'(_0x5947aa){const _0x53a51c=a65_0x5e8aad,_0x34efb6=readDiagramTarget(_0x5947aa),_0x3ab87f=await getRuntimeSkillVersionDiagram(_0x5947aa[_0x53a51c(0x1dd)],_0x34efb6['skillCode'],_0x34efb6['version'],_0x34efb6[_0x53a51c(0x1b7)]);return{'ok':!![],'data':_0x3ab87f,'message':_0x3ab87f[_0x53a51c(0x1c3)]?_0x53a51c(0x1d4)+_0x34efb6[_0x53a51c(0x1bc)]+'@'+_0x34efb6['version']+_0x53a51c(0x1d9)+_0x3ab87f[_0x53a51c(0x1b5)]+'.':_0x53a51c(0x1c9)+_0x34efb6[_0x53a51c(0x1bc)]+'@'+_0x34efb6[_0x53a51c(0x1b3)]+';\x20first\x20write\x20expects\x20revision\x20'+_0x3ab87f[_0x53a51c(0x1b5)]+'.'};}};
1
+ const a65_0x2a1840=a65_0x27f1;(function(_0x152ecc,_0xc830eb){const _0x834975=a65_0x27f1,_0x541867=_0x152ecc();while(!![]){try{const _0x2f063c=-parseInt(_0x834975(0x13e))/0x1+-parseInt(_0x834975(0x142))/0x2+parseInt(_0x834975(0x139))/0x3+-parseInt(_0x834975(0x123))/0x4*(-parseInt(_0x834975(0x129))/0x5)+-parseInt(_0x834975(0x126))/0x6+parseInt(_0x834975(0x146))/0x7*(parseInt(_0x834975(0x12a))/0x8)+parseInt(_0x834975(0x11f))/0x9*(-parseInt(_0x834975(0x130))/0xa);if(_0x2f063c===_0xc830eb)break;else _0x541867['push'](_0x541867['shift']());}catch(_0x2c041a){_0x541867['push'](_0x541867['shift']());}}}(a65_0x44ba,0x4554d));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';function a65_0x44ba(){const _0x19303e=['77hmMWss','trim','validation','diagram-push','unchanged','756468HEooQP','version','skill-code','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','84hYlkrj','Created','str','1192080fDqvrC','created','expectedDiagramRevision','114620FtpkMY','179832iJADge','Create\x20or\x20replace\x20a\x20Mermaid\x20diagram\x20for\x20a\x20specific\x20Skill\x20version','diagram-file','found','appCode','test','10CCIepq','Updated','scope','read','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version','write','action','personal','Skill\x20diagram\x20validation\x20passed\x20for\x20','362430ePZxcu','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','skill','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','diagram-validate','7519neHZXN','skillCode','source-fingerprint','Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','550502otWBqB',';\x20first\x20write\x20expects\x20revision\x20',';\x20next\x20write\x20expects\x20revision\x20','isInteger'];a65_0x44ba=function(){return _0x19303e;};return a65_0x44ba();}import{CliErrors}from'../../../errors.js';function a65_0x27f1(_0x393744,_0x583190){_0x393744=_0x393744-0x11e;const _0x44bac4=a65_0x44ba();let _0x27f10e=_0x44bac4[_0x393744];return _0x27f10e;}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(_0x3168de){const _0x438ea2=a65_0x27f1,_0x5305cf=_0x3168de[_0x438ea2(0x125)](_0x438ea2(0x121))[_0x438ea2(0x147)](),_0x2e2147=_0x3168de[_0x438ea2(0x125)](_0x438ea2(0x120))[_0x438ea2(0x147)](),_0x1b20aa=_0x3168de[_0x438ea2(0x125)]('scope');if(!_0x5305cf||!_0x2e2147||_0x1b20aa!==_0x438ea2(0x137)&&_0x1b20aa!=='company')throw CliErrors[_0x438ea2(0x148)]('--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.');return{'skillCode':_0x5305cf,'version':_0x2e2147,'scope':_0x1b20aa};}async function readDiagramWriteInput(_0x46127c){const _0x232e0e=a65_0x27f1,_0x192937=_0x46127c['num']('expected-diagram-revision'),_0x1a3026=_0x46127c['str'](_0x232e0e(0x140))[_0x232e0e(0x147)]();if(!Number[_0x232e0e(0x145)](_0x192937)||_0x192937<0x0)throw CliErrors[_0x232e0e(0x148)](_0x232e0e(0x13c));if(!/^sha256:[0-9a-f]{64}$/[_0x232e0e(0x12f)](_0x1a3026))throw CliErrors['validation'](_0x232e0e(0x122));return{'expectedDiagramRevision':_0x192937,'sourceFingerprint':_0x1a3026,'diagram':await readRequiredSkillDiagram(_0x46127c['str'](_0x232e0e(0x12c)))};}export const diagramValidateCommand={'service':a65_0x2a1840(0x13b),'command':a65_0x2a1840(0x13d),'description':a65_0x2a1840(0x134),'risk':a65_0x2a1840(0x133),'flags':WRITE_FLAGS,async 'execute'(_0x36ba0a){const _0x5d76a5=a65_0x2a1840,_0x4ab776=readDiagramTarget(_0x36ba0a),_0x210aeb=await validateRuntimeSkillVersionDiagram(_0x36ba0a[_0x5d76a5(0x12e)],_0x4ab776[_0x5d76a5(0x13f)],_0x4ab776[_0x5d76a5(0x120)],_0x4ab776[_0x5d76a5(0x132)],await readDiagramWriteInput(_0x36ba0a));return{'ok':!![],'data':_0x210aeb,'message':_0x5d76a5(0x138)+_0x4ab776[_0x5d76a5(0x13f)]+'@'+_0x4ab776[_0x5d76a5(0x120)]+'.'};}};export const diagramPushCommand={'service':a65_0x2a1840(0x13b),'command':a65_0x2a1840(0x149),'description':a65_0x2a1840(0x12b),'risk':a65_0x2a1840(0x135),'confirmationDescription':'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.','flags':WRITE_FLAGS,async 'execute'(_0x532721){const _0x154302=a65_0x2a1840,_0x43b4bd=readDiagramTarget(_0x532721),_0x59a34e=await putRuntimeSkillVersionDiagram(_0x532721['appCode'],_0x43b4bd[_0x154302(0x13f)],_0x43b4bd[_0x154302(0x120)],_0x43b4bd[_0x154302(0x132)],await readDiagramWriteInput(_0x532721));return{'ok':!![],'data':_0x59a34e,'message':_0x59a34e[_0x154302(0x136)]===_0x154302(0x11e)?'Skill\x20diagram\x20for\x20'+_0x43b4bd['skillCode']+'@'+_0x43b4bd[_0x154302(0x120)]+'\x20is\x20unchanged.':(_0x59a34e[_0x154302(0x136)]===_0x154302(0x127)?_0x154302(0x124):_0x154302(0x131))+'\x20Skill\x20diagram\x20for\x20'+_0x43b4bd['skillCode']+'@'+_0x43b4bd['version']+'.'};}};export const diagramShowCommand={'service':a65_0x2a1840(0x13b),'command':'diagram-show','description':a65_0x2a1840(0x141),'risk':'read','flags':TARGET_FLAGS,async 'execute'(_0x5164d3){const _0x2a0aa0=a65_0x2a1840,_0x4c2d28=readDiagramTarget(_0x5164d3),_0x42a24b=await getRuntimeSkillVersionDiagram(_0x5164d3[_0x2a0aa0(0x12e)],_0x4c2d28[_0x2a0aa0(0x13f)],_0x4c2d28[_0x2a0aa0(0x120)],_0x4c2d28[_0x2a0aa0(0x132)]);return{'ok':!![],'data':_0x42a24b,'message':_0x42a24b[_0x2a0aa0(0x12d)]?'Found\x20Skill\x20diagram\x20for\x20'+_0x4c2d28[_0x2a0aa0(0x13f)]+'@'+_0x4c2d28['version']+_0x2a0aa0(0x144)+_0x42a24b[_0x2a0aa0(0x128)]+'.':_0x2a0aa0(0x13a)+_0x4c2d28[_0x2a0aa0(0x13f)]+'@'+_0x4c2d28[_0x2a0aa0(0x120)]+_0x2a0aa0(0x143)+_0x42a24b[_0x2a0aa0(0x128)]+'.'};}};
@@ -1 +1 @@
1
- const a66_0x32fce6=a66_0x412b;(function(_0x13f538,_0x56ca92){const _0x15bce2=a66_0x412b,_0x4ed8ff=_0x13f538();while(!![]){try{const _0x27213f=-parseInt(_0x15bce2(0x151))/0x1*(-parseInt(_0x15bce2(0x14c))/0x2)+-parseInt(_0x15bce2(0x130))/0x3+parseInt(_0x15bce2(0x150))/0x4*(-parseInt(_0x15bce2(0x146))/0x5)+-parseInt(_0x15bce2(0x138))/0x6+parseInt(_0x15bce2(0x14d))/0x7*(parseInt(_0x15bce2(0x148))/0x8)+parseInt(_0x15bce2(0x154))/0x9+-parseInt(_0x15bce2(0x136))/0xa*(parseInt(_0x15bce2(0x142))/0xb);if(_0x27213f===_0x56ca92)break;else _0x4ed8ff['push'](_0x4ed8ff['shift']());}catch(_0x37b941){_0x4ed8ff['push'](_0x4ed8ff['shift']());}}}(a66_0x5715,0xa3669));function a66_0x5715(){const _0x338beb=['scope','bool','removed','trim','action','global','authRequired','length','../../../skills/runtime-skill-sync.js','139843DYyeDU','str','\x20company\x20Skill(s).','filter','5090oCnExV','skillCode','371216XeFtwp','company','Installed\x20','personal','2239298vkSsqV','70RphQFB','skill','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','24fFilWY','1vbRPNe','force','map','6758379LPQzSw','project','all','appCode','includes','3389832NWpuus','skipped','updated','skillRoots','created','from','170GVhRDL','unchanged','1878828UwlTVk'];a66_0x5715=function(){return _0x338beb;};return a66_0x5715();}import{CliErrors}from'../../../errors.js';function a66_0x412b(_0x3b9d25,_0x321893){_0x3b9d25=_0x3b9d25-0x12c;const _0x571588=a66_0x5715();let _0x412b79=_0x571588[_0x3b9d25];return _0x412b79;}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_0x32fce6(0x14e),'command':'install','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'(_0x363ab6){return syncRuntimeSkills(_0x363ab6);}};async function syncRuntimeSkills(_0x23dfef){const _0x5e6ea9=a66_0x32fce6,{downloadRuntimeSkillPackage:_0x3bb976,listRuntimeSkills:_0x7ec556}=await import('../../../core/api-client.js'),{linkEffectiveRuntimeSkills:_0x305073,materializeRuntimeSkill:_0x5395f6,pruneStaleRuntimeSkillCache:_0x14bc88,pruneStaleRuntimeSkillLinks:_0x2e169e,resolveRuntimeSkillInstallTarget:_0xaaa7e9,reuseMaterializedRuntimeSkill:_0x39145c}=await import(_0x5e6ea9(0x141)),_0x3dab61=_0x23dfef[_0x5e6ea9(0x143)]('code'),_0x208e20=normalizeSyncScopes(_0x23dfef[_0x5e6ea9(0x143)]('scope')),_0x37c918=_0x23dfef['envName']??'production',_0x41fa6d=_0x23dfef['accessKey'],_0x4f168c=_0x23dfef[_0x5e6ea9(0x13a)](_0x5e6ea9(0x152));if(!_0x41fa6d)throw CliErrors[_0x5e6ea9(0x13f)](_0x5e6ea9(0x14f));const _0x3eb88c=_0xaaa7e9(_0x23dfef[_0x5e6ea9(0x12e)],_0x23dfef[_0x5e6ea9(0x13a)](_0x5e6ea9(0x12c))?_0x5e6ea9(0x12c):_0x5e6ea9(0x13e)),_0x500127=_0xaaa7e9(_0x23dfef[_0x5e6ea9(0x12e)],_0x3eb88c[_0x5e6ea9(0x139)]===_0x5e6ea9(0x12c)?_0x5e6ea9(0x13e):_0x5e6ea9(0x12c)),_0x1bfa94=await _0x7ec556({'appCode':_0x23dfef[_0x5e6ea9(0x12e)],'scope':_0x208e20[_0x5e6ea9(0x140)]===0x1?_0x208e20[0x0]:_0x5e6ea9(0x12d),'code':_0x3dab61[_0x5e6ea9(0x13c)]()||undefined}),_0x345aef=_0x208e20[_0x5e6ea9(0x12f)](_0x5e6ea9(0x14b))?_0x1bfa94[_0x5e6ea9(0x14b)]:[],_0x4e7dda=_0x208e20[_0x5e6ea9(0x12f)]('company')?_0x1bfa94[_0x5e6ea9(0x149)]:[],_0x56d700=new Set([..._0x345aef[_0x5e6ea9(0x153)](_0x3deefa=>_0x3deefa[_0x5e6ea9(0x147)]?.['trim']())[_0x5e6ea9(0x145)](_0x318dc8=>Boolean(_0x318dc8)),..._0x4e7dda['map'](_0x517173=>_0x517173[_0x5e6ea9(0x147)]?.[_0x5e6ea9(0x13c)]())[_0x5e6ea9(0x145)](_0x181379=>Boolean(_0x181379))]),_0x30ba8e=_0x3dab61[_0x5e6ea9(0x13c)]()?[_0x3dab61[_0x5e6ea9(0x13c)]()]:undefined,_0x58fba9=_0x208e20[_0x5e6ea9(0x140)]===0x2&&_0x208e20['includes']('personal')&&_0x208e20['includes'](_0x5e6ea9(0x149)),_0x329412=_0x58fba9?_0x2e169e(_0x3eb88c,_0x56d700,_0x30ba8e):[],_0x56e32a=_0x14bc88({'env':_0x37c918,'accessKey':_0x41fa6d,'appCode':_0x23dfef[_0x5e6ea9(0x12e)],'activeSkillCodes':_0x56d700,'pruneSkillCodes':_0x30ba8e,'scopes':_0x208e20,'protectedLinkRoots':_0x500127[_0x5e6ea9(0x133)]}),_0x283612=[..._0x345aef[_0x5e6ea9(0x153)](_0x1c85fd=>({'skill':_0x1c85fd,'scope':_0x5e6ea9(0x14b)})),..._0x4e7dda[_0x5e6ea9(0x153)](_0x4e29e4=>({'skill':_0x4e29e4,'scope':_0x5e6ea9(0x149)}))],_0x33da47=await mapConcurrent(_0x283612,PACKAGE_DOWNLOAD_CONCURRENCY,async({skill:_0x475a7b,scope:_0x210a97})=>{const _0xd2be9e=_0x5e6ea9,_0x319aaf=_0x39145c(_0x475a7b,_0x210a97,{'env':_0x37c918,'accessKey':_0x41fa6d,'appCode':_0x23dfef[_0xd2be9e(0x12e)]});if(_0x319aaf)return _0x319aaf;return _0x5395f6(_0x475a7b,_0x210a97,{'env':_0x37c918,'accessKey':_0x41fa6d,'appCode':_0x23dfef[_0xd2be9e(0x12e)],'force':_0x4f168c,'packageBytes':await downloadSkillPackage(_0x475a7b,_0x210a97,_0x23dfef['appCode'],_0x3bb976)});}),_0x51fe1e=_0x305073(_0x33da47,_0x3eb88c),_0x31f8d8=countLinkActions(_0x51fe1e);return{'ok':!![],'data':{'appCode':_0x23dfef[_0x5e6ea9(0x12e)],..._0x3eb88c['scope']===_0x5e6ea9(0x12c)?{'installTarget':{'scope':_0x3eb88c[_0x5e6ea9(0x139)],'skillRoots':[..._0x3eb88c['skillRoots']]}}:{},'personal':_0x345aef[_0x5e6ea9(0x140)],'company':_0x4e7dda[_0x5e6ea9(0x140)],'materialized':_0x33da47[_0x5e6ea9(0x140)],'links':{'total':_0x51fe1e[_0x5e6ea9(0x140)],'created':_0x31f8d8[_0x5e6ea9(0x134)]??0x0,'updated':_0x31f8d8[_0x5e6ea9(0x132)]??0x0,'unchanged':_0x31f8d8[_0x5e6ea9(0x137)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x329412[_0x5e6ea9(0x145)](_0x365738=>_0x365738[_0x5e6ea9(0x13d)]===_0x5e6ea9(0x13b))[_0x5e6ea9(0x140)],'cacheDirs':_0x56e32a[_0x5e6ea9(0x145)](_0xf60b3f=>_0xf60b3f['action']==='removed')[_0x5e6ea9(0x140)],'skipped':[..._0x329412,..._0x56e32a][_0x5e6ea9(0x145)](_0x4d9c3c=>_0x4d9c3c['action']===_0x5e6ea9(0x131))['length']},'skills':{'personal':_0x345aef[_0x5e6ea9(0x153)](summarizeRuntimeSkill),'company':_0x4e7dda[_0x5e6ea9(0x153)](summarizeRuntimeSkill)}},'message':_0x5e6ea9(0x14a)+_0x345aef['length']+'\x20personal\x20and\x20'+_0x4e7dda['length']+_0x5e6ea9(0x144)};}async function mapConcurrent(_0x161f75,_0x4d878b,_0x59ce62){const _0x47d3bf=a66_0x32fce6,_0x538285=new Array(_0x161f75[_0x47d3bf(0x140)]);let _0x433fa4=0x0;const _0x404617=Array[_0x47d3bf(0x135)]({'length':Math['min'](_0x4d878b,_0x161f75[_0x47d3bf(0x140)])},async()=>{while(_0x433fa4<_0x161f75['length']){const _0x214d2e=_0x433fa4;_0x433fa4+=0x1,_0x538285[_0x214d2e]=await _0x59ce62(_0x161f75[_0x214d2e]);}});return await Promise[_0x47d3bf(0x12d)](_0x404617),_0x538285;}async function downloadSkillPackage(_0x1ed2ba,_0x1b678c,_0x5c17b7,_0x2f66c2){const _0x34db48=a66_0x32fce6,_0x943ed=_0x1ed2ba['version']?.[_0x34db48(0x13c)]();return _0x943ed?_0x2f66c2(_0x1b678c,_0x1ed2ba['skillCode'],_0x5c17b7,_0x943ed):_0x2f66c2(_0x1b678c,_0x1ed2ba[_0x34db48(0x147)],_0x5c17b7);}function countLinkActions(_0x2dc243){return _0x2dc243['reduce']((_0x538451,_0x470e24)=>{const _0x48aa5a=a66_0x412b;return _0x538451[_0x470e24[_0x48aa5a(0x13d)]]=(_0x538451[_0x470e24[_0x48aa5a(0x13d)]]??0x0)+0x1,_0x538451;},{});}
1
+ const a66_0xd5f31=a66_0x2598;(function(_0x498e6a,_0x10ec9f){const _0x49b113=a66_0x2598,_0xa37bed=_0x498e6a();while(!![]){try{const _0x4a8fca=-parseInt(_0x49b113(0x16f))/0x1+parseInt(_0x49b113(0x18e))/0x2+parseInt(_0x49b113(0x178))/0x3+parseInt(_0x49b113(0x167))/0x4+parseInt(_0x49b113(0x17e))/0x5+-parseInt(_0x49b113(0x168))/0x6+parseInt(_0x49b113(0x172))/0x7*(-parseInt(_0x49b113(0x18d))/0x8);if(_0x4a8fca===_0x10ec9f)break;else _0xa37bed['push'](_0xa37bed['shift']());}catch(_0x31a3cb){_0xa37bed['push'](_0xa37bed['shift']());}}}(a66_0xfdce,0xb74e1));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';function a66_0xfdce(){const _0x5222f5=['global','reduce','82705vuZeSZ','length','production','trim','from','personal','includes','map','str','created','skillCode','\x20personal\x20and\x20','filter','updated','envName','344YKSxKQ','2351826FUVolo','skillRoots','scope','4176104CNixzv','4290btwyKJ','accessKey','min','all','action','force','company','662755VNyKeo','Installed\x20','appCode','354165Uiycha','version','skipped','../../../skills/runtime-skill-sync.js','read','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','4060176hQIPMH','removed','project','bool'];a66_0xfdce=function(){return _0x5222f5;};return a66_0xfdce();}import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';const PACKAGE_DOWNLOAD_CONCURRENCY=0x4;function a66_0x2598(_0x41599b,_0x16b011){_0x41599b=_0x41599b-0x166;const _0xfdce47=a66_0xfdce();let _0x259853=_0xfdce47[_0x41599b];return _0x259853;}export const installCommand={'service':'skill','command':'install','description':'Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','risk':a66_0xd5f31(0x176),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x483b14){return syncRuntimeSkills(_0x483b14);}};async function syncRuntimeSkills(_0xb5c494){const _0x4aaabe=a66_0xd5f31,{downloadRuntimeSkillPackage:_0x34555e,listRuntimeSkills:_0x415f83}=await import('../../../core/api-client.js'),{linkEffectiveRuntimeSkills:_0x2bb2b7,materializeRuntimeSkill:_0x2f7d92,pruneStaleRuntimeSkillCache:_0x9be4f5,pruneStaleRuntimeSkillLinks:_0x38b534,resolveRuntimeSkillInstallTarget:_0x596318,reuseMaterializedRuntimeSkill:_0x539f62}=await import(_0x4aaabe(0x175)),_0x1684b8=_0xb5c494[_0x4aaabe(0x186)]('code'),_0x44b491=normalizeSyncScopes(_0xb5c494['str'](_0x4aaabe(0x166))),_0x20df2a=_0xb5c494[_0x4aaabe(0x18c)]??_0x4aaabe(0x180),_0x1f09b6=_0xb5c494[_0x4aaabe(0x169)],_0x187387=_0xb5c494[_0x4aaabe(0x17b)](_0x4aaabe(0x16d));if(!_0x1f09b6)throw CliErrors['authRequired'](_0x4aaabe(0x177));const _0x4dd1ae=_0x596318(_0xb5c494[_0x4aaabe(0x171)],_0xb5c494[_0x4aaabe(0x17b)]('project')?_0x4aaabe(0x17a):_0x4aaabe(0x17c)),_0xbb65e0=_0x596318(_0xb5c494['appCode'],_0x4dd1ae['scope']===_0x4aaabe(0x17a)?_0x4aaabe(0x17c):_0x4aaabe(0x17a)),_0x328e6f=await _0x415f83({'appCode':_0xb5c494[_0x4aaabe(0x171)],'scope':_0x44b491[_0x4aaabe(0x17f)]===0x1?_0x44b491[0x0]:_0x4aaabe(0x16b),'code':_0x1684b8[_0x4aaabe(0x181)]()||undefined}),_0x1af493=_0x44b491['includes'](_0x4aaabe(0x183))?_0x328e6f['personal']:[],_0x198f0a=_0x44b491['includes'](_0x4aaabe(0x16e))?_0x328e6f[_0x4aaabe(0x16e)]:[],_0x378aa1=new Set([..._0x1af493[_0x4aaabe(0x185)](_0x1d9532=>_0x1d9532[_0x4aaabe(0x188)]?.['trim']())[_0x4aaabe(0x18a)](_0x3e2edb=>Boolean(_0x3e2edb)),..._0x198f0a[_0x4aaabe(0x185)](_0x15138b=>_0x15138b['skillCode']?.[_0x4aaabe(0x181)]())[_0x4aaabe(0x18a)](_0x1373f1=>Boolean(_0x1373f1))]),_0x33d4b5=_0x1684b8['trim']()?[_0x1684b8[_0x4aaabe(0x181)]()]:undefined,_0x2b2542=_0x44b491['length']===0x2&&_0x44b491[_0x4aaabe(0x184)](_0x4aaabe(0x183))&&_0x44b491['includes']('company'),_0x53c9b8=_0x2b2542?_0x38b534(_0x4dd1ae,_0x378aa1,_0x33d4b5):[],_0x13e4b6=_0x9be4f5({'env':_0x20df2a,'accessKey':_0x1f09b6,'appCode':_0xb5c494[_0x4aaabe(0x171)],'activeSkillCodes':_0x378aa1,'pruneSkillCodes':_0x33d4b5,'scopes':_0x44b491,'protectedLinkRoots':_0xbb65e0[_0x4aaabe(0x18f)]}),_0x348f28=[..._0x1af493[_0x4aaabe(0x185)](_0x41d8ab=>({'skill':_0x41d8ab,'scope':_0x4aaabe(0x183)})),..._0x198f0a[_0x4aaabe(0x185)](_0x22ba8b=>({'skill':_0x22ba8b,'scope':_0x4aaabe(0x16e)}))],_0x8efe0a=await mapConcurrent(_0x348f28,PACKAGE_DOWNLOAD_CONCURRENCY,async({skill:_0x26123a,scope:_0x2e99ef})=>{const _0x22e82d=_0x4aaabe,_0x17246e=_0x539f62(_0x26123a,_0x2e99ef,{'env':_0x20df2a,'accessKey':_0x1f09b6,'appCode':_0xb5c494[_0x22e82d(0x171)]});if(_0x17246e)return _0x17246e;return _0x2f7d92(_0x26123a,_0x2e99ef,{'env':_0x20df2a,'accessKey':_0x1f09b6,'appCode':_0xb5c494[_0x22e82d(0x171)],'force':_0x187387,'packageBytes':await downloadSkillPackage(_0x26123a,_0x2e99ef,_0xb5c494[_0x22e82d(0x171)],_0x34555e)});}),_0xc8a3e0=_0x2bb2b7(_0x8efe0a,_0x4dd1ae),_0x5ccd38=countLinkActions(_0xc8a3e0);return{'ok':!![],'data':{'appCode':_0xb5c494[_0x4aaabe(0x171)],..._0x4dd1ae[_0x4aaabe(0x166)]==='project'?{'installTarget':{'scope':_0x4dd1ae['scope'],'skillRoots':[..._0x4dd1ae['skillRoots']]}}:{},'personal':_0x1af493[_0x4aaabe(0x17f)],'company':_0x198f0a['length'],'materialized':_0x8efe0a[_0x4aaabe(0x17f)],'links':{'total':_0xc8a3e0[_0x4aaabe(0x17f)],'created':_0x5ccd38[_0x4aaabe(0x187)]??0x0,'updated':_0x5ccd38[_0x4aaabe(0x18b)]??0x0,'unchanged':_0x5ccd38['unchanged']??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x53c9b8[_0x4aaabe(0x18a)](_0x398621=>_0x398621[_0x4aaabe(0x16c)]===_0x4aaabe(0x179))[_0x4aaabe(0x17f)],'cacheDirs':_0x13e4b6['filter'](_0x43beab=>_0x43beab[_0x4aaabe(0x16c)]==='removed')[_0x4aaabe(0x17f)],'skipped':[..._0x53c9b8,..._0x13e4b6]['filter'](_0x580f82=>_0x580f82[_0x4aaabe(0x16c)]===_0x4aaabe(0x174))['length']},'skills':{'personal':_0x1af493[_0x4aaabe(0x185)](summarizeRuntimeSkill),'company':_0x198f0a['map'](summarizeRuntimeSkill)}},'message':_0x4aaabe(0x170)+_0x1af493[_0x4aaabe(0x17f)]+_0x4aaabe(0x189)+_0x198f0a[_0x4aaabe(0x17f)]+'\x20company\x20Skill(s).'};}async function mapConcurrent(_0x276595,_0x453a76,_0x453bda){const _0xdec3f8=a66_0xd5f31,_0x4cdf63=new Array(_0x276595['length']);let _0x512e71=0x0;const _0xe5824d=Array[_0xdec3f8(0x182)]({'length':Math[_0xdec3f8(0x16a)](_0x453a76,_0x276595[_0xdec3f8(0x17f)])},async()=>{const _0x30c99e=_0xdec3f8;while(_0x512e71<_0x276595[_0x30c99e(0x17f)]){const _0x53bae8=_0x512e71;_0x512e71+=0x1,_0x4cdf63[_0x53bae8]=await _0x453bda(_0x276595[_0x53bae8]);}});return await Promise[_0xdec3f8(0x16b)](_0xe5824d),_0x4cdf63;}async function downloadSkillPackage(_0x55a39d,_0x4bb3b9,_0x21d49c,_0x5229f7){const _0x3b0ef3=a66_0xd5f31,_0xa241d1=_0x55a39d[_0x3b0ef3(0x173)]?.[_0x3b0ef3(0x181)]();return _0xa241d1?_0x5229f7(_0x4bb3b9,_0x55a39d[_0x3b0ef3(0x188)],_0x21d49c,_0xa241d1):_0x5229f7(_0x4bb3b9,_0x55a39d[_0x3b0ef3(0x188)],_0x21d49c);}function countLinkActions(_0x4a4450){const _0x5261f2=a66_0xd5f31;return _0x4a4450[_0x5261f2(0x17d)]((_0x5245ca,_0x309f3a)=>{return _0x5245ca[_0x309f3a['action']]=(_0x5245ca[_0x309f3a['action']]??0x0)+0x1,_0x5245ca;},{});}
@@ -1 +1 @@
1
- function a67_0x2637(){const _0x2dc303=['accessKey','production','str','authRequired','filter','bool','111920cDxYex','trim','1bEzTjK','length','11401610ypbuiR','map','Listed\x20','builtin','3iceQkw','list','project','scope','envName','133512SPQbkm','personal','appCode','1051402RRGgXs','remote','local','18QWmKpk','305UXlVqF','4664888KnWQIW','global','company','\x20local\x20Skill(s).','11037334skDFGD','\x20remote\x20Skill(s).','skill','../../../skills/runtime-skill-sync.js','4761620BgPGuQ'];a67_0x2637=function(){return _0x2dc303;};return a67_0x2637();}const a67_0x306d6a=a67_0x1aa9;(function(_0x30d9d2,_0x42389c){const _0x102dee=a67_0x1aa9,_0x4a162b=_0x30d9d2();while(!![]){try{const _0x578ff2=-parseInt(_0x102dee(0x111))/0x1*(-parseInt(_0x102dee(0x11f))/0x2)+-parseInt(_0x102dee(0x117))/0x3*(-parseInt(_0x102dee(0x10f))/0x4)+-parseInt(_0x102dee(0x123))/0x5*(-parseInt(_0x102dee(0x11c))/0x6)+-parseInt(_0x102dee(0x128))/0x7+parseInt(_0x102dee(0x124))/0x8+-parseInt(_0x102dee(0x122))/0x9*(-parseInt(_0x102dee(0x108))/0xa)+-parseInt(_0x102dee(0x113))/0xb;if(_0x578ff2===_0x42389c)break;else _0x4a162b['push'](_0x4a162b['shift']());}catch(_0x53b3a7){_0x4a162b['push'](_0x4a162b['shift']());}}}(a67_0x2637,0xcb6c0));import{CliErrors}from'../../../errors.js';function a67_0x1aa9(_0x361307,_0x2e0042){_0x361307=_0x361307-0x106;const _0x26377f=a67_0x2637();let _0x1aa943=_0x26377f[_0x361307];return _0x1aa943;}import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':a67_0x306d6a(0x106),'command':a67_0x306d6a(0x118),'description':'List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','risk':'read','flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x60513a){const _0x2e1a56=a67_0x306d6a,_0x12ef55=_0x60513a[_0x2e1a56(0x10b)]('code'),_0x1f6dd5=normalizeListScope(_0x60513a['str'](_0x2e1a56(0x11a)));if(_0x60513a[_0x2e1a56(0x10e)](_0x2e1a56(0x121))){const _0xa73fe1=_0x60513a[_0x2e1a56(0x109)];if(!_0xa73fe1)throw CliErrors[_0x2e1a56(0x10c)]();const {listLocalRuntimeSkills:_0x25a05a,resolveRuntimeSkillInstallTarget:_0xd189a1}=await import(_0x2e1a56(0x107)),_0x4b3584=_0xd189a1(_0x60513a[_0x2e1a56(0x11e)],_0x60513a[_0x2e1a56(0x10e)](_0x2e1a56(0x119))?_0x2e1a56(0x119):_0x2e1a56(0x125)),_0x3c5ba0=_0x25a05a({'env':_0x60513a[_0x2e1a56(0x11b)]??_0x2e1a56(0x10a),'accessKey':_0xa73fe1,'appCode':_0x60513a[_0x2e1a56(0x11e)],'scopes':listScopeToRuntimeScopes(_0x1f6dd5),'code':_0x12ef55[_0x2e1a56(0x110)]()||undefined},_0x4b3584),_0x1d087e=groupLocalRuntimeSkills(_0x3c5ba0);return{'ok':!![],'data':{'appCode':_0x60513a[_0x2e1a56(0x11e)],'source':_0x2e1a56(0x121),..._0x4b3584['scope']===_0x2e1a56(0x119)?{'installScope':_0x4b3584[_0x2e1a56(0x11a)]}:{},'scope':_0x1f6dd5,'total':_0x3c5ba0['length'],'personal':_0x1d087e[_0x2e1a56(0x11d)][_0x2e1a56(0x112)],'company':_0x1d087e[_0x2e1a56(0x126)][_0x2e1a56(0x112)],'items':_0x3c5ba0[_0x2e1a56(0x114)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x1d087e[_0x2e1a56(0x11d)][_0x2e1a56(0x114)](summarizeLocalRuntimeSkill),'company':_0x1d087e[_0x2e1a56(0x126)][_0x2e1a56(0x114)](summarizeLocalRuntimeSkill)}},'message':_0x2e1a56(0x115)+_0x3c5ba0[_0x2e1a56(0x112)]+_0x2e1a56(0x127)};}const {listRuntimeSkills:_0x23034d}=await import('../../../core/api-client.js'),_0x3b837f=await _0x23034d({'appCode':_0x60513a[_0x2e1a56(0x11e)],'scope':listScopeToRemoteScope(_0x1f6dd5),'code':_0x12ef55[_0x2e1a56(0x110)]()||undefined}),_0x20666b=shouldListScope(_0x1f6dd5,'personal')?_0x3b837f[_0x2e1a56(0x11d)]??[]:[],_0x231f09=shouldListScope(_0x1f6dd5,_0x2e1a56(0x126))?_0x3b837f[_0x2e1a56(0x126)]??[]:[],_0x2e0377=[..._0x20666b,..._0x231f09];return{'ok':!![],'data':{'appCode':_0x60513a['appCode'],'source':_0x2e1a56(0x120),'scope':_0x1f6dd5,'total':_0x2e0377[_0x2e1a56(0x112)],'personal':_0x20666b[_0x2e1a56(0x112)],'company':_0x231f09[_0x2e1a56(0x112)],'items':_0x2e0377[_0x2e1a56(0x114)](summarizeRuntimeSkill),'skills':{'personal':_0x20666b[_0x2e1a56(0x114)](summarizeRuntimeSkill),'company':_0x231f09[_0x2e1a56(0x114)](summarizeRuntimeSkill)}},'message':_0x2e1a56(0x115)+_0x2e0377[_0x2e1a56(0x112)]+_0x2e1a56(0x129)};}};function groupLocalRuntimeSkills(_0x5845f3){const _0x2fe78c=a67_0x306d6a;return{'personal':_0x5845f3[_0x2fe78c(0x10d)](_0x31d2dd=>_0x31d2dd[_0x2fe78c(0x11a)]===_0x2fe78c(0x11d)),'company':_0x5845f3['filter'](_0x22e22a=>_0x22e22a['scope']===_0x2fe78c(0x126)),'builtin':_0x5845f3[_0x2fe78c(0x10d)](_0x33a7bc=>_0x33a7bc[_0x2fe78c(0x11a)]===_0x2fe78c(0x116))};}
1
+ function a67_0x38db(_0x311f7a,_0xafa133){_0x311f7a=_0x311f7a-0x13e;const _0xa845b2=a67_0xa845();let _0x38dbcd=_0xa845b2[_0x311f7a];return _0x38dbcd;}const a67_0x2b24e9=a67_0x38db;function a67_0xa845(){const _0xa9034b=['\x20remote\x20Skill(s).','../../../core/api-client.js','1535118qLLeFl','personal','appCode','12hGvipa','read','trim','1710808dERTEd','accessKey','1195410WueBhu','87oWJIzv','14155niUKAB','global','../../../skills/runtime-skill-sync.js','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','company','Listed\x20','production','length','18rQpLny','20444zzvSSq','code','1515724opbsTO','list','str','authRequired','skill','envName','filter','builtin','remote','46471YbtjaY','map','\x20local\x20Skill(s).','scope','project'];a67_0xa845=function(){return _0xa9034b;};return a67_0xa845();}(function(_0x17561b,_0x16f3a1){const _0x64c081=a67_0x38db,_0x5a07c3=_0x17561b();while(!![]){try{const _0x43db22=-parseInt(_0x64c081(0x15d))/0x1*(parseInt(_0x64c081(0x142))/0x2)+parseInt(_0x64c081(0x148))/0x3*(parseInt(_0x64c081(0x152))/0x4)+parseInt(_0x64c081(0x149))/0x5+-parseInt(_0x64c081(0x13f))/0x6+parseInt(_0x64c081(0x154))/0x7+parseInt(_0x64c081(0x145))/0x8+-parseInt(_0x64c081(0x151))/0x9*(-parseInt(_0x64c081(0x147))/0xa);if(_0x43db22===_0x16f3a1)break;else _0x5a07c3['push'](_0x5a07c3['shift']());}catch(_0x531276){_0x5a07c3['push'](_0x5a07c3['shift']());}}}(a67_0xa845,0x45c8c));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';export const listCommand={'service':a67_0x2b24e9(0x158),'command':a67_0x2b24e9(0x155),'description':a67_0x2b24e9(0x14c),'risk':a67_0x2b24e9(0x143),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x4bbe75){const _0x242fc8=a67_0x2b24e9,_0x50f377=_0x4bbe75[_0x242fc8(0x156)](_0x242fc8(0x153)),_0x404740=normalizeListScope(_0x4bbe75[_0x242fc8(0x156)]('scope'));if(_0x4bbe75['bool']('local')){const _0x4314ca=_0x4bbe75[_0x242fc8(0x146)];if(!_0x4314ca)throw CliErrors[_0x242fc8(0x157)]();const {listLocalRuntimeSkills:_0x4d0da9,resolveRuntimeSkillInstallTarget:_0x3f208c}=await import(_0x242fc8(0x14b)),_0x4ef412=_0x3f208c(_0x4bbe75[_0x242fc8(0x141)],_0x4bbe75['bool'](_0x242fc8(0x161))?'project':_0x242fc8(0x14a)),_0x296ae2=_0x4d0da9({'env':_0x4bbe75[_0x242fc8(0x159)]??_0x242fc8(0x14f),'accessKey':_0x4314ca,'appCode':_0x4bbe75[_0x242fc8(0x141)],'scopes':listScopeToRuntimeScopes(_0x404740),'code':_0x50f377[_0x242fc8(0x144)]()||undefined},_0x4ef412),_0x2ebb63=groupLocalRuntimeSkills(_0x296ae2);return{'ok':!![],'data':{'appCode':_0x4bbe75[_0x242fc8(0x141)],'source':'local',..._0x4ef412[_0x242fc8(0x160)]===_0x242fc8(0x161)?{'installScope':_0x4ef412[_0x242fc8(0x160)]}:{},'scope':_0x404740,'total':_0x296ae2[_0x242fc8(0x150)],'personal':_0x2ebb63[_0x242fc8(0x140)][_0x242fc8(0x150)],'company':_0x2ebb63[_0x242fc8(0x14d)][_0x242fc8(0x150)],'items':_0x296ae2[_0x242fc8(0x15e)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x2ebb63['personal']['map'](summarizeLocalRuntimeSkill),'company':_0x2ebb63[_0x242fc8(0x14d)][_0x242fc8(0x15e)](summarizeLocalRuntimeSkill)}},'message':'Listed\x20'+_0x296ae2[_0x242fc8(0x150)]+_0x242fc8(0x15f)};}const {listRuntimeSkills:_0x556322}=await import(_0x242fc8(0x13e)),_0x163bf0=await _0x556322({'appCode':_0x4bbe75['appCode'],'scope':listScopeToRemoteScope(_0x404740),'code':_0x50f377[_0x242fc8(0x144)]()||undefined}),_0x510c10=shouldListScope(_0x404740,_0x242fc8(0x140))?_0x163bf0['personal']??[]:[],_0x2f714d=shouldListScope(_0x404740,'company')?_0x163bf0[_0x242fc8(0x14d)]??[]:[],_0x3496ad=[..._0x510c10,..._0x2f714d];return{'ok':!![],'data':{'appCode':_0x4bbe75['appCode'],'source':_0x242fc8(0x15c),'scope':_0x404740,'total':_0x3496ad[_0x242fc8(0x150)],'personal':_0x510c10[_0x242fc8(0x150)],'company':_0x2f714d[_0x242fc8(0x150)],'items':_0x3496ad[_0x242fc8(0x15e)](summarizeRuntimeSkill),'skills':{'personal':_0x510c10[_0x242fc8(0x15e)](summarizeRuntimeSkill),'company':_0x2f714d[_0x242fc8(0x15e)](summarizeRuntimeSkill)}},'message':_0x242fc8(0x14e)+_0x3496ad['length']+_0x242fc8(0x162)};}};function groupLocalRuntimeSkills(_0x2f4433){const _0x2024e6=a67_0x2b24e9;return{'personal':_0x2f4433[_0x2024e6(0x15a)](_0x2d3b54=>_0x2d3b54[_0x2024e6(0x160)]===_0x2024e6(0x140)),'company':_0x2f4433['filter'](_0xf6a7f7=>_0xf6a7f7[_0x2024e6(0x160)]==='company'),'builtin':_0x2f4433[_0x2024e6(0x15a)](_0x2cb146=>_0x2cb146[_0x2024e6(0x160)]===_0x2024e6(0x15b))};}