@lovrabet/lovrabet-cli 2.3.1 → 2.3.2-beta.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 (183) hide show
  1. package/README.md +10 -8
  2. package/lib/cli.js +1 -1
  3. package/lib/commands/api-doc/index.js +1 -1
  4. package/lib/commands/app/cache.js +1 -1
  5. package/lib/commands/app/definitions.js +1 -1
  6. package/lib/commands/app/eligibility.js +1 -1
  7. package/lib/commands/app/mock-loader.js +1 -1
  8. package/lib/commands/app/remote-source.js +1 -1
  9. package/lib/commands/app/shared.js +1 -1
  10. package/lib/commands/app-config/get.js +1 -1
  11. package/lib/commands/app-config/index.js +1 -1
  12. package/lib/commands/artifact/index.js +1 -1
  13. package/lib/commands/auth/device.js +1 -1
  14. package/lib/commands/auth/index.js +1 -1
  15. package/lib/commands/auth/prompt.js +1 -1
  16. package/lib/commands/bff/detail.js +1 -1
  17. package/lib/commands/bff/exec.js +1 -1
  18. package/lib/commands/bff/index.js +1 -1
  19. package/lib/commands/cli-skill/index.js +1 -1
  20. package/lib/commands/common/config-policy.js +1 -1
  21. package/lib/commands/common/constraints.js +1 -1
  22. package/lib/commands/common/flags.js +1 -1
  23. package/lib/commands/common/local-file.js +1 -1
  24. package/lib/commands/config/definitions.js +1 -1
  25. package/lib/commands/config/init.d.ts +1 -2
  26. package/lib/commands/config/init.js +1 -1
  27. package/lib/commands/config/shared.js +1 -1
  28. package/lib/commands/data/index.js +1 -1
  29. package/lib/commands/dataset/detail.js +1 -1
  30. package/lib/commands/dataset/index.js +1 -1
  31. package/lib/commands/dataset/list.js +1 -1
  32. package/lib/commands/dataset/sdk-doc.js +1 -1
  33. package/lib/commands/doctor.js +1 -1
  34. package/lib/commands/file/index.js +1 -1
  35. package/lib/commands/init.js +1 -1
  36. package/lib/commands/kb/index.js +1 -1
  37. package/lib/commands/logs/index.js +1 -1
  38. package/lib/commands/notification/config-list.js +1 -1
  39. package/lib/commands/notification/index.js +1 -1
  40. package/lib/commands/notification/shared.d.ts +0 -3
  41. package/lib/commands/notification/shared.js +1 -1
  42. package/lib/commands/ocr/index.js +1 -1
  43. package/lib/commands/permit/dataset-get.js +1 -1
  44. package/lib/commands/permit/dataset-set.js +1 -1
  45. package/lib/commands/permit/index.js +1 -1
  46. package/lib/commands/permit/page-get.js +1 -1
  47. package/lib/commands/permit/page-set.js +1 -1
  48. package/lib/commands/permit/role-menus-set.js +1 -1
  49. package/lib/commands/permit/role-menus.js +1 -1
  50. package/lib/commands/permit/shared.js +1 -1
  51. package/lib/commands/personal-bff/index.js +1 -1
  52. package/lib/commands/registry.js +1 -1
  53. package/lib/commands/role/create.js +1 -1
  54. package/lib/commands/role/delete.js +1 -1
  55. package/lib/commands/role/detail.js +1 -1
  56. package/lib/commands/role/index.js +1 -1
  57. package/lib/commands/role/list.js +1 -1
  58. package/lib/commands/role/shared.d.ts +2 -0
  59. package/lib/commands/role/shared.js +1 -1
  60. package/lib/commands/role/update.js +1 -1
  61. package/lib/commands/role/user-add.js +1 -1
  62. package/lib/commands/role/user-remove.js +1 -1
  63. package/lib/commands/schedule/index.js +1 -1
  64. package/lib/commands/schema.js +1 -1
  65. package/lib/commands/service/dynamic.js +1 -1
  66. package/lib/commands/service/function-name-adapter.js +1 -1
  67. package/lib/commands/service/index.js +1 -1
  68. package/lib/commands/service/registry.js +1 -1
  69. package/lib/commands/skill/commands/create.js +1 -1
  70. package/lib/commands/skill/commands/diagram.js +1 -1
  71. package/lib/commands/skill/commands/install.js +1 -1
  72. package/lib/commands/skill/commands/list.js +1 -1
  73. package/lib/commands/skill/commands/push.js +1 -1
  74. package/lib/commands/skill/commands/validate.js +1 -1
  75. package/lib/commands/skill/diagram.js +1 -1
  76. package/lib/commands/skill/flags.js +1 -1
  77. package/lib/commands/skill/index.js +1 -1
  78. package/lib/commands/skill/manifest-helpers.js +1 -1
  79. package/lib/commands/skill/push-execute.js +1 -1
  80. package/lib/commands/skill/push-flow-helpers.js +1 -1
  81. package/lib/commands/skill/push-retarget.js +1 -1
  82. package/lib/commands/skill/scopes.js +1 -1
  83. package/lib/commands/skill/summary.js +1 -1
  84. package/lib/commands/skill/templates.js +1 -1
  85. package/lib/commands/skill/validate.js +1 -1
  86. package/lib/commands/sql/detail.js +1 -1
  87. package/lib/commands/sql/exec.js +1 -1
  88. package/lib/commands/sql/index.js +1 -1
  89. package/lib/commands/update.js +1 -1
  90. package/lib/commands/user-account/bind.js +1 -1
  91. package/lib/commands/user-account/index.js +1 -1
  92. package/lib/commands/workspace/index.js +1 -1
  93. package/lib/config/domain-config.d.ts +6 -14
  94. package/lib/config/domain-config.js +1 -1
  95. package/lib/config/schema.d.ts +1 -1
  96. package/lib/config/schema.js +1 -1
  97. package/lib/constant/app.js +1 -1
  98. package/lib/constant/auth-mode.js +1 -1
  99. package/lib/constant/cli.js +1 -1
  100. package/lib/constant/defaults.js +1 -1
  101. package/lib/constant/distribution.js +1 -1
  102. package/lib/constant/domain.d.ts +0 -3
  103. package/lib/constant/domain.js +1 -1
  104. package/lib/constant/env.js +1 -1
  105. package/lib/constant/output.js +1 -1
  106. package/lib/constant/product.js +1 -1
  107. package/lib/constant/region.js +1 -1
  108. package/lib/constant/risk.js +1 -1
  109. package/lib/constant/url.js +1 -1
  110. package/lib/context.js +1 -1
  111. package/lib/core/api-client.d.ts +5 -10
  112. package/lib/core/api-client.js +1 -1
  113. package/lib/core/db-resolver.js +1 -1
  114. package/lib/core/kb-search-client.js +1 -1
  115. package/lib/core/sdk-client.js +1 -1
  116. package/lib/errors.js +1 -1
  117. package/lib/framework/build-all-flags.js +1 -1
  118. package/lib/framework/dryrun.js +1 -1
  119. package/lib/framework/flags.js +1 -1
  120. package/lib/framework/help.js +1 -1
  121. package/lib/framework/index.js +1 -1
  122. package/lib/framework/output.js +1 -1
  123. package/lib/framework/preparse.js +1 -1
  124. package/lib/framework/rate-limit.js +1 -1
  125. package/lib/framework/raw-flags.js +1 -1
  126. package/lib/framework/response.js +1 -1
  127. package/lib/framework/runner-confirmation.js +1 -1
  128. package/lib/framework/runner-error.js +1 -1
  129. package/lib/framework/runner.js +1 -1
  130. package/lib/framework/schema-export.js +1 -1
  131. package/lib/framework/service-order.js +1 -1
  132. package/lib/framework/types.js +1 -1
  133. package/lib/generated/build-info.d.ts +4 -4
  134. package/lib/generated/build-info.js +1 -1
  135. package/lib/generated/official-routing.d.ts +1 -5
  136. package/lib/generated/official-routing.js +1 -1
  137. package/lib/generated/routing-contract.d.ts +3 -7
  138. package/lib/generated/routing-contract.js +1 -1
  139. package/lib/help.js +1 -1
  140. package/lib/postinstall.js +1 -1
  141. package/lib/runtime/confirmation.js +1 -1
  142. package/lib/runtime/event.js +1 -1
  143. package/lib/runtime/index.js +1 -1
  144. package/lib/runtime/queue.js +1 -1
  145. package/lib/runtime/resolve.js +1 -1
  146. package/lib/skills/builtin-skill.js +1 -1
  147. package/lib/skills/npx-skills-add.js +1 -1
  148. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  149. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  150. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  151. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  152. package/lib/skills/runtime-skill-sync/links.js +1 -1
  153. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  154. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  155. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  156. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  157. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  158. package/lib/skills/runtime-skill-sync/push.js +1 -1
  159. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  160. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  161. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  162. package/lib/skills/runtime-skill-sync.js +1 -1
  163. package/lib/skills/skill-presence.js +1 -1
  164. package/lib/utils/access-key-redaction.js +1 -1
  165. package/lib/utils/apply-jq-filter.js +1 -1
  166. package/lib/utils/cli-version-check.js +1 -1
  167. package/lib/utils/cli-version-policy.js +1 -1
  168. package/lib/utils/logger.js +1 -1
  169. package/lib/utils/lossless-json.js +1 -1
  170. package/lib/utils/params.js +1 -1
  171. package/lib/utils/platform.js +1 -1
  172. package/lib/utils/update-notice.js +1 -1
  173. package/lib/utils/version.js +1 -1
  174. package/lib/utils/write-cli-side-channel.js +1 -1
  175. package/package.json +1 -1
  176. package/skills/lovrabet/SKILL.md +4 -4
  177. package/skills/lovrabet/guides/role-and-permission-workflow.md +6 -4
  178. package/skills/lovrabet/references/lovrabet-config-commands.md +7 -11
  179. package/skills/lovrabet/references/lovrabet-config.md +2 -3
  180. package/skills/lovrabet/references/lovrabet-doctor.md +1 -1
  181. package/skills/lovrabet/references/lovrabet-kb-workflow.md +1 -1
  182. package/skills/lovrabet/references/lovrabet-notification-config-list.md +2 -8
  183. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- function a159_0x6870(_0x114042,_0x17e8e9){_0x114042=_0x114042-0xd8;const _0x572e2a=a159_0x572e();let _0x6870fa=_0x572e2a[_0x114042];return _0x6870fa;}const a159_0x48fc3d=a159_0x6870;(function(_0x4b096f,_0x5507f8){const _0x140d14=a159_0x6870,_0x506bef=_0x4b096f();while(!![]){try{const _0x5b279a=parseInt(_0x140d14(0xe5))/0x1+-parseInt(_0x140d14(0xea))/0x2*(parseInt(_0x140d14(0xe8))/0x3)+-parseInt(_0x140d14(0xe0))/0x4*(-parseInt(_0x140d14(0xd8))/0x5)+-parseInt(_0x140d14(0xe3))/0x6+parseInt(_0x140d14(0xe6))/0x7*(-parseInt(_0x140d14(0xdc))/0x8)+parseInt(_0x140d14(0xdd))/0x9+parseInt(_0x140d14(0xe4))/0xa;if(_0x5b279a===_0x5507f8)break;else _0x506bef['push'](_0x506bef['shift']());}catch(_0x37b501){_0x506bef['push'](_0x506bef['shift']());}}}(a159_0x572e,0x48b82));const JSON_NUMBER_PATTERN=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/,MAX_SAFE_INTEGER=BigInt(Number['MAX_SAFE_INTEGER']),MIN_SAFE_INTEGER=BigInt(Number[a159_0x48fc3d(0xe7)]);let restoreResponseJsonParser,responseJsonPrototype,originalResponseJsonDescriptor;function isUnsafeIntegerLiteral(_0xdbaa6){const _0x5ab329=a159_0x48fc3d;if(_0xdbaa6['includes']('.')||_0xdbaa6[_0x5ab329(0xde)]('e')||_0xdbaa6[_0x5ab329(0xde)]('E'))return![];const _0x48f7a7=BigInt(_0xdbaa6);return _0x48f7a7>MAX_SAFE_INTEGER||_0x48f7a7<MIN_SAFE_INTEGER;}function quoteUnsafeIntegerLiterals(_0x5d2a34){const _0x536127=a159_0x48fc3d;let _0x570941='',_0x396041=![],_0x2fe24d=![];for(let _0x1bebd7=0x0;_0x1bebd7<_0x5d2a34[_0x536127(0xda)];){const _0x26a058=_0x5d2a34[_0x1bebd7];if(_0x396041){_0x570941+=_0x26a058,_0x1bebd7+=0x1;if(_0x2fe24d)_0x2fe24d=![];else{if(_0x26a058==='\x5c')_0x2fe24d=!![];else _0x26a058==='\x22'&&(_0x396041=![]);}continue;}if(_0x26a058==='\x22'){_0x396041=!![],_0x570941+=_0x26a058,_0x1bebd7+=0x1;continue;}if(_0x26a058==='-'||_0x26a058>='0'&&_0x26a058<='9'){const _0x138696=JSON_NUMBER_PATTERN[_0x536127(0xe2)](_0x5d2a34[_0x536127(0xdb)](_0x1bebd7))?.[0x0];if(_0x138696){_0x570941+=isUnsafeIntegerLiteral(_0x138696)?'\x22'+_0x138696+'\x22':_0x138696,_0x1bebd7+=_0x138696['length'];continue;}}_0x570941+=_0x26a058,_0x1bebd7+=0x1;}return _0x570941;}export function parseLosslessJson(_0x3433b0){const _0x557629=a159_0x48fc3d;return JSON[_0x557629(0xe1)](quoteUnsafeIntegerLiterals(_0x3433b0));}function a159_0x572e(){const _0x314577=['parse','exec','3285918XBTOcJ','5597520LIIqcw','246062zraVft','1627199klJfae','MIN_SAFE_INTEGER','44751DrUNMC','getOwnPropertyDescriptor','24WdsVua','prototype','undefined','text','4075ONDRml','json','length','slice','16jjmsSO','3086505gKRNQS','includes','defineProperty','1672zKrZjH'];a159_0x572e=function(){return _0x314577;};return a159_0x572e();}export function installLosslessJsonResponseParser(){const _0x1491fe=a159_0x48fc3d;if(typeof Response===_0x1491fe(0xec))return()=>{};if(restoreResponseJsonParser)return restoreResponseJsonParser;return responseJsonPrototype=Response[_0x1491fe(0xeb)],originalResponseJsonDescriptor=Object[_0x1491fe(0xe9)](responseJsonPrototype,_0x1491fe(0xd9)),Object[_0x1491fe(0xdf)](responseJsonPrototype,_0x1491fe(0xd9),{...originalResponseJsonDescriptor??{'configurable':!![],'enumerable':![],'writable':!![]},'value':async function _0x278a1e(){const _0x1c4978=_0x1491fe;return parseLosslessJson(await this[_0x1c4978(0xed)]());}}),restoreResponseJsonParser=()=>{const _0x38a41a=_0x1491fe;if(!responseJsonPrototype)return;originalResponseJsonDescriptor?Object[_0x38a41a(0xdf)](responseJsonPrototype,_0x38a41a(0xd9),originalResponseJsonDescriptor):delete responseJsonPrototype['json'],responseJsonPrototype=undefined,originalResponseJsonDescriptor=undefined,restoreResponseJsonParser=undefined;},restoreResponseJsonParser;}export function restoreLosslessJsonResponseParser(){restoreResponseJsonParser?.();}
1
+ const a159_0x1de03d=a159_0x4e63;(function(_0x4c02ba,_0x1aa2f0){const _0x22b27e=a159_0x4e63,_0x316596=_0x4c02ba();while(!![]){try{const _0x4393f0=-parseInt(_0x22b27e(0x86))/0x1+parseInt(_0x22b27e(0x98))/0x2+-parseInt(_0x22b27e(0x94))/0x3+-parseInt(_0x22b27e(0x91))/0x4*(-parseInt(_0x22b27e(0x8e))/0x5)+-parseInt(_0x22b27e(0x96))/0x6*(-parseInt(_0x22b27e(0x95))/0x7)+-parseInt(_0x22b27e(0x8d))/0x8*(-parseInt(_0x22b27e(0x8f))/0x9)+-parseInt(_0x22b27e(0x8c))/0xa*(parseInt(_0x22b27e(0x87))/0xb);if(_0x4393f0===_0x1aa2f0)break;else _0x316596['push'](_0x316596['shift']());}catch(_0x432c4d){_0x316596['push'](_0x316596['shift']());}}}(a159_0x378e,0x5e513));const JSON_NUMBER_PATTERN=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/,MAX_SAFE_INTEGER=BigInt(Number[a159_0x1de03d(0x8b)]),MIN_SAFE_INTEGER=BigInt(Number[a159_0x1de03d(0x97)]);let restoreResponseJsonParser,responseJsonPrototype,originalResponseJsonDescriptor;function a159_0x4e63(_0x131f31,_0x161028){_0x131f31=_0x131f31-0x84;const _0x378e11=a159_0x378e();let _0x4e63e0=_0x378e11[_0x131f31];return _0x4e63e0;}function isUnsafeIntegerLiteral(_0x1beca2){const _0x22ce25=a159_0x1de03d;if(_0x1beca2[_0x22ce25(0x92)]('.')||_0x1beca2[_0x22ce25(0x92)]('e')||_0x1beca2['includes']('E'))return![];const _0x5961d5=BigInt(_0x1beca2);return _0x5961d5>MAX_SAFE_INTEGER||_0x5961d5<MIN_SAFE_INTEGER;}function quoteUnsafeIntegerLiterals(_0x47ea05){const _0x1e5c6c=a159_0x1de03d;let _0x4061f2='',_0x558287=![],_0x16c206=![];for(let _0x509f6c=0x0;_0x509f6c<_0x47ea05[_0x1e5c6c(0x8a)];){const _0x3120bb=_0x47ea05[_0x509f6c];if(_0x558287){_0x4061f2+=_0x3120bb,_0x509f6c+=0x1;if(_0x16c206)_0x16c206=![];else{if(_0x3120bb==='\x5c')_0x16c206=!![];else _0x3120bb==='\x22'&&(_0x558287=![]);}continue;}if(_0x3120bb==='\x22'){_0x558287=!![],_0x4061f2+=_0x3120bb,_0x509f6c+=0x1;continue;}if(_0x3120bb==='-'||_0x3120bb>='0'&&_0x3120bb<='9'){const _0x412ee4=JSON_NUMBER_PATTERN[_0x1e5c6c(0x89)](_0x47ea05[_0x1e5c6c(0x84)](_0x509f6c))?.[0x0];if(_0x412ee4){_0x4061f2+=isUnsafeIntegerLiteral(_0x412ee4)?'\x22'+_0x412ee4+'\x22':_0x412ee4,_0x509f6c+=_0x412ee4[_0x1e5c6c(0x8a)];continue;}}_0x4061f2+=_0x3120bb,_0x509f6c+=0x1;}return _0x4061f2;}function a159_0x378e(){const _0x595305=['5WHgPsa','7443sTfpmO','defineProperty','2340092DDUqEr','includes','undefined','2036826qlyDkE','7YuOkGy','3046980ZlgmYM','MIN_SAFE_INTEGER','1384560uKiets','parse','json','slice','text','648047RvCnbd','22armDnS','getOwnPropertyDescriptor','exec','length','MAX_SAFE_INTEGER','4126090mMCtQN','7288sFekOV'];a159_0x378e=function(){return _0x595305;};return a159_0x378e();}export function parseLosslessJson(_0x596645){const _0x577375=a159_0x1de03d;return JSON[_0x577375(0x99)](quoteUnsafeIntegerLiterals(_0x596645));}export function installLosslessJsonResponseParser(){const _0x3af9e7=a159_0x1de03d;if(typeof Response===_0x3af9e7(0x93))return()=>{};if(restoreResponseJsonParser)return restoreResponseJsonParser;return responseJsonPrototype=Response['prototype'],originalResponseJsonDescriptor=Object[_0x3af9e7(0x88)](responseJsonPrototype,_0x3af9e7(0x9a)),Object[_0x3af9e7(0x90)](responseJsonPrototype,_0x3af9e7(0x9a),{...originalResponseJsonDescriptor??{'configurable':!![],'enumerable':![],'writable':!![]},'value':async function _0x279516(){const _0x37298d=_0x3af9e7;return parseLosslessJson(await this[_0x37298d(0x85)]());}}),restoreResponseJsonParser=()=>{const _0x18fddc=_0x3af9e7;if(!responseJsonPrototype)return;originalResponseJsonDescriptor?Object[_0x18fddc(0x90)](responseJsonPrototype,'json',originalResponseJsonDescriptor):delete responseJsonPrototype[_0x18fddc(0x9a)],responseJsonPrototype=undefined,originalResponseJsonDescriptor=undefined,restoreResponseJsonParser=undefined;},restoreResponseJsonParser;}export function restoreLosslessJsonResponseParser(){restoreResponseJsonParser?.();}
@@ -1 +1 @@
1
- (function(_0x552ca8,_0x40cec7){const _0x35a570=a160_0x3f58,_0x22ac02=_0x552ca8();while(!![]){try{const _0x362978=-parseInt(_0x35a570(0x15f))/0x1+parseInt(_0x35a570(0x158))/0x2+parseInt(_0x35a570(0x16c))/0x3*(-parseInt(_0x35a570(0x16e))/0x4)+parseInt(_0x35a570(0x15e))/0x5+-parseInt(_0x35a570(0x167))/0x6*(-parseInt(_0x35a570(0x165))/0x7)+-parseInt(_0x35a570(0x161))/0x8+parseInt(_0x35a570(0x164))/0x9*(parseInt(_0x35a570(0x168))/0xa);if(_0x362978===_0x40cec7)break;else _0x22ac02['push'](_0x22ac02['shift']());}catch(_0x10b6f3){_0x22ac02['push'](_0x22ac02['shift']());}}}(a160_0x10cc,0x8b560));import{CliErrors}from'../errors.js';function a160_0x3f58(_0x64ffa8,_0x5f599e){_0x64ffa8=_0x64ffa8-0x156;const _0x10cc30=a160_0x10cc();let _0x3f5896=_0x10cc30[_0x64ffa8];return _0x3f5896;}import{parseLosslessJson}from'../utils/lossless-json.js';export const MAX_DATA_UPDATE_IDS=0x3e8;export function parseJsonParams(_0x20524e){const _0x2b4ff8=a160_0x3f58;if(!_0x20524e)return undefined;try{return parseLosslessJson(_0x20524e);}catch{throw CliErrors['validation'](_0x2b4ff8(0x166)+_0x20524e);}}function a160_0x10cc(){const _0x4b19c8=['data\x20update\x20can\x20update\x20at\x20most\x20','isArray','66RSUfjy','data\x20update\x20--params\x20must\x20be\x20a\x20JSON\x20object\x20with\x20id.','156652jXojKy','validation','items','object','data\x20update\x20--params.','1285120ZJtDus','length','number','map','batchCreate\x20--params\x20must\x20be\x20a\x20JSON\x20array\x20or\x20{\x22items\x22:[...]}','join','4430735BBtDDC','749240qVerhQ','Example:\x20--params\x20\x27{\x22id\x22:[1,2,3],\x22status\x22:\x22done\x22}\x27','1913368fGswYC','\x20must\x20be\x20a\x20positive\x20integer\x20or\x20numeric\x20string.','isSafeInteger','9GwGwLe','423962eFTVGA','Invalid\x20JSON\x20for\x20--params:\x20','36RBmeOU','5286140uiQAhw','data\x20update\x20id\x20array\x20cannot\x20be\x20empty.'];a160_0x10cc=function(){return _0x4b19c8;};return a160_0x10cc();}export function parseJsonParamsValue(_0x189074){const _0x478887=a160_0x3f58;if(!_0x189074)return undefined;try{return parseLosslessJson(_0x189074);}catch{throw CliErrors[_0x478887(0x16f)](_0x478887(0x166)+_0x189074);}}export function parseBatchCreateItemsFromParams(_0x4fa6d6){const _0x5b61d1=a160_0x3f58;if(Array[_0x5b61d1(0x16b)](_0x4fa6d6))return _0x4fa6d6;if(_0x4fa6d6!==null&&_0x4fa6d6!==undefined&&typeof _0x4fa6d6===_0x5b61d1(0x156)&&Array[_0x5b61d1(0x16b)](_0x4fa6d6[_0x5b61d1(0x170)]))return _0x4fa6d6[_0x5b61d1(0x170)];throw CliErrors[_0x5b61d1(0x16f)](_0x5b61d1(0x15c),'Example:\x20--params\x20\x27[{\x22name\x22:\x22a\x22},{\x22name\x22:\x22b\x22}]\x27');}function parseDataUpdateId(_0x2f167e,_0x2ed40a){const _0x58ae83=a160_0x3f58;if(typeof _0x2f167e===_0x58ae83(0x15a)&&Number[_0x58ae83(0x163)](_0x2f167e)&&_0x2f167e>0x0)return _0x2f167e;if(typeof _0x2f167e==='string'){if(/^[1-9]\d*$/['test'](_0x2f167e))return _0x2f167e;}throw CliErrors[_0x58ae83(0x16f)](_0x58ae83(0x157)+_0x2ed40a+_0x58ae83(0x162));}export function parseUpdateIdsFromParams(_0x1a69bc){const _0x42bb5f=a160_0x3f58;if(_0x1a69bc===null||_0x1a69bc===undefined||typeof _0x1a69bc!==_0x42bb5f(0x156)||Array[_0x42bb5f(0x16b)](_0x1a69bc))throw CliErrors[_0x42bb5f(0x16f)](_0x42bb5f(0x16d),_0x42bb5f(0x160));const _0x21d011=_0x1a69bc['id'];if(_0x21d011===undefined||_0x21d011===null)throw CliErrors[_0x42bb5f(0x16f)]('data\x20update\x20requires\x20\x22id\x22\x20in\x20--params.',_0x42bb5f(0x160));const _0x508325=Array[_0x42bb5f(0x16b)](_0x21d011)?_0x21d011:[_0x21d011];if(_0x508325[_0x42bb5f(0x159)]===0x0)throw CliErrors[_0x42bb5f(0x16f)](_0x42bb5f(0x169));if(_0x508325[_0x42bb5f(0x159)]>MAX_DATA_UPDATE_IDS)throw CliErrors[_0x42bb5f(0x16f)](_0x42bb5f(0x16a)+MAX_DATA_UPDATE_IDS+'\x20records\x20per\x20call;\x20received\x20'+_0x508325[_0x42bb5f(0x159)]+'.');return _0x508325[_0x42bb5f(0x15b)]((_0x17067c,_0x52b63b)=>parseDataUpdateId(_0x17067c,Array[_0x42bb5f(0x16b)](_0x21d011)?'id['+_0x52b63b+']':'id'));}export function normalizeUpdateParamsForRuntime(_0xc4177e,_0x569fad){const _0x146940=a160_0x3f58;if(Array['isArray'](_0xc4177e['id'])&&_0x569fad['length']>0x1)return{..._0xc4177e,'id':_0x569fad[_0x146940(0x15d)](',')};return _0xc4177e;}
1
+ (function(_0x513d30,_0x4ee8f6){const _0x168eb0=a160_0x4a33,_0x964447=_0x513d30();while(!![]){try{const _0x3f89a0=-parseInt(_0x168eb0(0xf4))/0x1+parseInt(_0x168eb0(0xef))/0x2+-parseInt(_0x168eb0(0xe2))/0x3+-parseInt(_0x168eb0(0xe1))/0x4+parseInt(_0x168eb0(0xe0))/0x5+parseInt(_0x168eb0(0xe8))/0x6*(-parseInt(_0x168eb0(0xf3))/0x7)+parseInt(_0x168eb0(0xeb))/0x8*(parseInt(_0x168eb0(0xed))/0x9);if(_0x3f89a0===_0x4ee8f6)break;else _0x964447['push'](_0x964447['shift']());}catch(_0x4905ed){_0x964447['push'](_0x964447['shift']());}}}(a160_0xb11b,0xc8e02));import{CliErrors}from'../errors.js';function a160_0x4a33(_0xbc9c41,_0x2df38d){_0xbc9c41=_0xbc9c41-0xdf;const _0xb11bcc=a160_0xb11b();let _0x4a3360=_0xb11bcc[_0xbc9c41];return _0x4a3360;}function a160_0xb11b(){const _0x2a4802=['object','53319CMTGTv','1501661EZFINx','string','Example:\x20--params\x20\x27{\x22id\x22:[1,2,3],\x22status\x22:\x22done\x22}\x27','isArray','batchCreate\x20--params\x20must\x20be\x20a\x20JSON\x20array\x20or\x20{\x22items\x22:[...]}','test','2491195wNbtEN','3497924MKZXfW','1847451DhlnVk','isSafeInteger','validation','data\x20update\x20can\x20update\x20at\x20most\x20','\x20records\x20per\x20call;\x20received\x20','id[','966gIJeje','data\x20update\x20--params.','data\x20update\x20id\x20array\x20cannot\x20be\x20empty.','33477544KbyVyk','length','9FBssFY','map','716300mfFKty','number','items'];a160_0xb11b=function(){return _0x2a4802;};return a160_0xb11b();}import{parseLosslessJson}from'../utils/lossless-json.js';export const MAX_DATA_UPDATE_IDS=0x3e8;export function parseJsonParams(_0x12e480){const _0xd5cdf2=a160_0x4a33;if(!_0x12e480)return undefined;try{return parseLosslessJson(_0x12e480);}catch{throw CliErrors[_0xd5cdf2(0xe4)]('Invalid\x20JSON\x20for\x20--params:\x20'+_0x12e480);}}export function parseJsonParamsValue(_0x56c678){const _0x551421=a160_0x4a33;if(!_0x56c678)return undefined;try{return parseLosslessJson(_0x56c678);}catch{throw CliErrors[_0x551421(0xe4)]('Invalid\x20JSON\x20for\x20--params:\x20'+_0x56c678);}}export function parseBatchCreateItemsFromParams(_0x1ac55d){const _0x3b1ccf=a160_0x4a33;if(Array[_0x3b1ccf(0xf7)](_0x1ac55d))return _0x1ac55d;if(_0x1ac55d!==null&&_0x1ac55d!==undefined&&typeof _0x1ac55d==='object'&&Array['isArray'](_0x1ac55d[_0x3b1ccf(0xf1)]))return _0x1ac55d[_0x3b1ccf(0xf1)];throw CliErrors['validation'](_0x3b1ccf(0xf8),'Example:\x20--params\x20\x27[{\x22name\x22:\x22a\x22},{\x22name\x22:\x22b\x22}]\x27');}function parseDataUpdateId(_0x5b7844,_0x1d1bce){const _0x35d105=a160_0x4a33;if(typeof _0x5b7844===_0x35d105(0xf0)&&Number[_0x35d105(0xe3)](_0x5b7844)&&_0x5b7844>0x0)return _0x5b7844;if(typeof _0x5b7844===_0x35d105(0xf5)){if(/^[1-9]\d*$/[_0x35d105(0xdf)](_0x5b7844))return _0x5b7844;}throw CliErrors[_0x35d105(0xe4)](_0x35d105(0xe9)+_0x1d1bce+'\x20must\x20be\x20a\x20positive\x20integer\x20or\x20numeric\x20string.');}export function parseUpdateIdsFromParams(_0x5c66ab){const _0x462072=a160_0x4a33;if(_0x5c66ab===null||_0x5c66ab===undefined||typeof _0x5c66ab!==_0x462072(0xf2)||Array[_0x462072(0xf7)](_0x5c66ab))throw CliErrors[_0x462072(0xe4)]('data\x20update\x20--params\x20must\x20be\x20a\x20JSON\x20object\x20with\x20id.',_0x462072(0xf6));const _0x53da88=_0x5c66ab['id'];if(_0x53da88===undefined||_0x53da88===null)throw CliErrors['validation']('data\x20update\x20requires\x20\x22id\x22\x20in\x20--params.',_0x462072(0xf6));const _0x53b6c2=Array[_0x462072(0xf7)](_0x53da88)?_0x53da88:[_0x53da88];if(_0x53b6c2[_0x462072(0xec)]===0x0)throw CliErrors[_0x462072(0xe4)](_0x462072(0xea));if(_0x53b6c2[_0x462072(0xec)]>MAX_DATA_UPDATE_IDS)throw CliErrors[_0x462072(0xe4)](_0x462072(0xe5)+MAX_DATA_UPDATE_IDS+_0x462072(0xe6)+_0x53b6c2[_0x462072(0xec)]+'.');return _0x53b6c2[_0x462072(0xee)]((_0x1a0b5c,_0x23e9bc)=>parseDataUpdateId(_0x1a0b5c,Array[_0x462072(0xf7)](_0x53da88)?_0x462072(0xe7)+_0x23e9bc+']':'id'));}export function normalizeUpdateParamsForRuntime(_0x532f78,_0x38d366){const _0x5ead31=a160_0x4a33;if(Array[_0x5ead31(0xf7)](_0x532f78['id'])&&_0x38d366['length']>0x1)return{..._0x532f78,'id':_0x38d366['join'](',')};return _0x532f78;}
@@ -1 +1 @@
1
- const a161_0x324350=a161_0x35b2;(function(_0x55da17,_0x5d4770){const _0x484e07=a161_0x35b2,_0x110bed=_0x55da17();while(!![]){try{const _0x5928eb=parseInt(_0x484e07(0x97))/0x1+parseInt(_0x484e07(0x9c))/0x2*(-parseInt(_0x484e07(0x9e))/0x3)+-parseInt(_0x484e07(0x9f))/0x4+-parseInt(_0x484e07(0x96))/0x5*(parseInt(_0x484e07(0x95))/0x6)+-parseInt(_0x484e07(0x9a))/0x7+parseInt(_0x484e07(0x94))/0x8*(-parseInt(_0x484e07(0x9b))/0x9)+parseInt(_0x484e07(0x99))/0xa;if(_0x5928eb===_0x5d4770)break;else _0x110bed['push'](_0x110bed['shift']());}catch(_0x3f8b66){_0x110bed['push'](_0x110bed['shift']());}}}(a161_0x3905,0x80fc4));export const isWindows=process['platform']===a161_0x324350(0x98);function a161_0x35b2(_0x3d8012,_0x1098e8){_0x3d8012=_0x3d8012-0x94;const _0x3905cf=a161_0x3905();let _0x35b205=_0x3905cf[_0x3d8012];return _0x35b205;}export function resolveNpmBin(_0x3699de){const _0x1eb8ac=a161_0x324350;return isWindows?_0x3699de+_0x1eb8ac(0x9d):_0x3699de;}function a161_0x3905(){const _0x3e3a3a=['10gMuhEV','714434deCwAj','win32','21043440skrvyQ','31899fxVHaK','1988982wnVmgL','100306bjTQjp','.cmd','15wUPohg','3359648IcZuQB','8llrQDg','2922666UBWOVX'];a161_0x3905=function(){return _0x3e3a3a;};return a161_0x3905();}
1
+ function a161_0x23c1(){const _0x41f138=['1308009fqGzEt','136MSlIVV','1260DycwgE','2675644VhcvkC','2818445edRhpE','win32','214LnxTte','7504764WYyCke','50823wRipek','platform','11pxxBCW','2762YrhlFl','304829YSWEAu','6LpbJjf'];a161_0x23c1=function(){return _0x41f138;};return a161_0x23c1();}function a161_0x3aa7(_0x55565e,_0x4f063b){_0x55565e=_0x55565e-0x149;const _0x23c15d=a161_0x23c1();let _0x3aa734=_0x23c15d[_0x55565e];return _0x3aa734;}const a161_0x4a7429=a161_0x3aa7;(function(_0x522259,_0x6f73d0){const _0x4b5661=a161_0x3aa7,_0x1655c7=_0x522259();while(!![]){try{const _0x440388=-parseInt(_0x4b5661(0x152))/0x1*(-parseInt(_0x4b5661(0x14d))/0x2)+-parseInt(_0x4b5661(0x155))/0x3+parseInt(_0x4b5661(0x14a))/0x4+parseInt(_0x4b5661(0x14b))/0x5*(parseInt(_0x4b5661(0x154))/0x6)+parseInt(_0x4b5661(0x153))/0x7*(-parseInt(_0x4b5661(0x156))/0x8)+parseInt(_0x4b5661(0x14f))/0x9*(parseInt(_0x4b5661(0x149))/0xa)+-parseInt(_0x4b5661(0x151))/0xb*(parseInt(_0x4b5661(0x14e))/0xc);if(_0x440388===_0x6f73d0)break;else _0x1655c7['push'](_0x1655c7['shift']());}catch(_0x587728){_0x1655c7['push'](_0x1655c7['shift']());}}}(a161_0x23c1,0x6aec5));export const isWindows=process[a161_0x4a7429(0x150)]===a161_0x4a7429(0x14c);export function resolveNpmBin(_0x2f2593){return isWindows?_0x2f2593+'.cmd':_0x2f2593;}
@@ -1 +1 @@
1
- (function(_0x2716e7,_0x2254aa){const _0x41d438=a162_0x3f0a,_0x5c069b=_0x2716e7();while(!![]){try{const _0x210748=parseInt(_0x41d438(0x89))/0x1+parseInt(_0x41d438(0x81))/0x2+parseInt(_0x41d438(0x8b))/0x3+parseInt(_0x41d438(0x8e))/0x4+-parseInt(_0x41d438(0x92))/0x5*(-parseInt(_0x41d438(0x8a))/0x6)+-parseInt(_0x41d438(0x7a))/0x7+parseInt(_0x41d438(0x8f))/0x8*(-parseInt(_0x41d438(0x83))/0x9);if(_0x210748===_0x2254aa)break;else _0x5c069b['push'](_0x5c069b['shift']());}catch(_0x7651c8){_0x5c069b['push'](_0x5c069b['shift']());}}}(a162_0x4170,0x27fe4));import{mkdir,readFile,writeFile}from'node:fs/promises';import{homedir}from'node:os';import{dirname,join}from'node:path';import{LOVRABET_NPM_PACKAGE_NAME}from'../constant/distribution.js';import{CLI_BIN_NAME}from'../constant/cli.js';import{checkCliVersion,getCliUpgradeCommand}from'../utils/cli-version-check.js';const UPDATE_NOTICE_TTL_MS=0x18*0x3c*0x3c*0x3e8;function isUpdateNoticeDisabled(){const _0x509f7a=a162_0x3f0a,_0x1d8d09=process.env.LOVRABET_NO_UPDATE_NOTICE?.[_0x509f7a(0x80)]()[_0x509f7a(0x95)]();return _0x1d8d09==='1'||_0x1d8d09===_0x509f7a(0x84)||_0x1d8d09===_0x509f7a(0x91);}function a162_0x3f0a(_0x3360db,_0x319653){_0x3360db=_0x3360db-0x7a;const _0x4170c6=a162_0x4170();let _0x3f0a61=_0x4170c6[_0x3360db];return _0x3f0a61;}function a162_0x4170(){const _0x4f6426=['56zYPmAY',',\x20run:\x20','yes','1206350YaLbBQ','stableVersion','https://www.npmjs.com/package/','toLowerCase','1718353tvPhkn','upgradeMessage','number','update-check.json','.cache','object','trim','69866rATqKN','lovrabet-cli','598077NEVjjd','true','currentVersion','lastNotifiedVersion','needsUpgrade','utf8','141151SyIVfS','6GVgwru','394662KVlZDr','lastNotifiedAt','\x20is\x20recommended,\x20current\x20','1302216VZfaPr'];a162_0x4170=function(){return _0x4f6426;};return a162_0x4170();}function cacheRoot(){const _0x202914=a162_0x3f0a;return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),_0x202914(0x7e));}export function getUpdateNoticeCachePath(){const _0x2e00da=a162_0x3f0a;return join(cacheRoot(),_0x2e00da(0x82),_0x2e00da(0x7d));}async function readUpdateNoticeCache(){const _0x1d5af4=a162_0x3f0a;try{const _0x27d72a=await readFile(getUpdateNoticeCachePath(),_0x1d5af4(0x88)),_0x5d2e4e=JSON['parse'](_0x27d72a);if(!_0x5d2e4e||typeof _0x5d2e4e!==_0x1d5af4(0x7f))return{};return _0x5d2e4e;}catch{return{};}}async function writeUpdateNoticeCache(_0x492400){const _0x532f68=a162_0x3f0a;try{const _0x129f62=getUpdateNoticeCachePath();await mkdir(dirname(_0x129f62),{'recursive':!![]}),await writeFile(_0x129f62,JSON['stringify'](_0x492400,null,0x2)+'\x0a',_0x532f68(0x88));}catch{}}function isRecentlyNotified(_0x5b774a,_0x50e78b,_0x2d29b7){const _0x25cdd5=a162_0x3f0a;return _0x5b774a[_0x25cdd5(0x86)]===_0x50e78b&&typeof _0x5b774a[_0x25cdd5(0x8c)]===_0x25cdd5(0x7c)&&_0x2d29b7-_0x5b774a[_0x25cdd5(0x8c)]<UPDATE_NOTICE_TTL_MS;}export function buildNpmVersionUrl(_0x2b4c23){const _0x551a95=a162_0x3f0a;return _0x551a95(0x94)+LOVRABET_NPM_PACKAGE_NAME+'/v/'+_0x2b4c23;}export async function resolveLatestUpdateNotice(_0x3a1b86){const _0x1b2214=a162_0x3f0a;if(isUpdateNoticeDisabled())return null;try{const _0x4323a9=Date['now'](),_0x28deac=_0x3a1b86??await checkCliVersion(),_0x459db7=_0x28deac[_0x1b2214(0x85)],_0x2bc4dc=_0x28deac[_0x1b2214(0x93)],_0x588487=await readUpdateNoticeCache();if(!_0x2bc4dc||!_0x28deac[_0x1b2214(0x87)]||_0x28deac['belowMinimum'])return null;if(isRecentlyNotified(_0x588487,_0x2bc4dc,_0x4323a9))return null;const _0x5f447e=getCliUpgradeCommand(_0x28deac);return await writeUpdateNoticeCache({..._0x588487,'checkedAt':_0x4323a9,'latest':_0x2bc4dc,'failed':![],'lastNotifiedVersion':_0x2bc4dc,'lastNotifiedAt':_0x4323a9}),{'command':_0x5f447e,'current':_0x459db7,'latest':_0x2bc4dc,'url':buildNpmVersionUrl(_0x2bc4dc),'message':[_0x28deac[_0x1b2214(0x7b)],CLI_BIN_NAME+'\x20'+_0x2bc4dc+_0x1b2214(0x8d)+_0x459db7+_0x1b2214(0x90)+_0x5f447e]['filter'](Boolean)['join']('\x20')};}catch{return null;}}
1
+ (function(_0x1c8c31,_0x2979e2){const _0x4c7387=a162_0x2535,_0x3c5a99=_0x1c8c31();while(!![]){try{const _0xd22505=-parseInt(_0x4c7387(0x10a))/0x1+-parseInt(_0x4c7387(0x119))/0x2*(-parseInt(_0x4c7387(0x110))/0x3)+-parseInt(_0x4c7387(0x10e))/0x4+-parseInt(_0x4c7387(0x12a))/0x5*(-parseInt(_0x4c7387(0x115))/0x6)+parseInt(_0x4c7387(0x11e))/0x7+parseInt(_0x4c7387(0x10f))/0x8*(-parseInt(_0x4c7387(0x124))/0x9)+parseInt(_0x4c7387(0x10c))/0xa;if(_0xd22505===_0x2979e2)break;else _0x3c5a99['push'](_0x3c5a99['shift']());}catch(_0x40cc2b){_0x3c5a99['push'](_0x3c5a99['shift']());}}}(a162_0x2881,0xb5219));import{mkdir,readFile,writeFile}from'node:fs/promises';import{homedir}from'node:os';import{dirname,join}from'node:path';import{LOVRABET_NPM_PACKAGE_NAME}from'../constant/distribution.js';import{CLI_BIN_NAME}from'../constant/cli.js';import{checkCliVersion,getCliUpgradeCommand}from'../utils/cli-version-check.js';const UPDATE_NOTICE_TTL_MS=0x18*0x3c*0x3c*0x3e8;function isUpdateNoticeDisabled(){const _0x3a4227=a162_0x2535,_0x37da77=process.env.LOVRABET_NO_UPDATE_NOTICE?.[_0x3a4227(0x113)]()[_0x3a4227(0x114)]();return _0x37da77==='1'||_0x37da77===_0x3a4227(0x118)||_0x37da77===_0x3a4227(0x10b);}function cacheRoot(){const _0xabe2e0=a162_0x2535;return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),_0xabe2e0(0x116));}export function getUpdateNoticeCachePath(){const _0x2b543a=a162_0x2535;return join(cacheRoot(),_0x2b543a(0x11c),_0x2b543a(0x11b));}async function readUpdateNoticeCache(){const _0x584b60=a162_0x2535;try{const _0x4b8945=await readFile(getUpdateNoticeCachePath(),_0x584b60(0x11d)),_0x3e3b4a=JSON['parse'](_0x4b8945);if(!_0x3e3b4a||typeof _0x3e3b4a!==_0x584b60(0x121))return{};return _0x3e3b4a;}catch{return{};}}async function writeUpdateNoticeCache(_0x54d300){const _0x13956d=a162_0x2535;try{const _0x3ad147=getUpdateNoticeCachePath();await mkdir(dirname(_0x3ad147),{'recursive':!![]}),await writeFile(_0x3ad147,JSON[_0x13956d(0x125)](_0x54d300,null,0x2)+'\x0a',_0x13956d(0x11d));}catch{}}function a162_0x2535(_0x3f9c0f,_0x3baa2b){_0x3f9c0f=_0x3f9c0f-0x10a;const _0x288141=a162_0x2881();let _0x253584=_0x288141[_0x3f9c0f];return _0x253584;}function a162_0x2881(){const _0x5cf6fc=['true','190uHSXdO','join','update-check.json','lovrabet-cli','utf8','2635164cgOutZ','\x20is\x20recommended,\x20current\x20',',\x20run:\x20','object','lastNotifiedVersion','lastNotifiedAt','4734459AwMgHM','stringify','/v/','stableVersion','upgradeMessage','now','2656405dQNmgB','1389813YanLCv','yes','21554200aehXoY','https://www.npmjs.com/package/','3703904xiiymp','8YpPPXo','16440tevIvx','needsUpgrade','number','trim','toLowerCase','6BqNcWD','.cache','currentVersion'];a162_0x2881=function(){return _0x5cf6fc;};return a162_0x2881();}function isRecentlyNotified(_0x70c980,_0x3cf8fb,_0x52c00a){const _0x3e1ff8=a162_0x2535;return _0x70c980[_0x3e1ff8(0x122)]===_0x3cf8fb&&typeof _0x70c980['lastNotifiedAt']===_0x3e1ff8(0x112)&&_0x52c00a-_0x70c980[_0x3e1ff8(0x123)]<UPDATE_NOTICE_TTL_MS;}export function buildNpmVersionUrl(_0x5244fc){const _0x427184=a162_0x2535;return _0x427184(0x10d)+LOVRABET_NPM_PACKAGE_NAME+_0x427184(0x126)+_0x5244fc;}export async function resolveLatestUpdateNotice(_0x5e46c7){const _0x395630=a162_0x2535;if(isUpdateNoticeDisabled())return null;try{const _0x4ec369=Date[_0x395630(0x129)](),_0x44c7d9=_0x5e46c7??await checkCliVersion(),_0x904c4c=_0x44c7d9[_0x395630(0x117)],_0x475fb9=_0x44c7d9[_0x395630(0x127)],_0x1e051d=await readUpdateNoticeCache();if(!_0x475fb9||!_0x44c7d9[_0x395630(0x111)]||_0x44c7d9['belowMinimum'])return null;if(isRecentlyNotified(_0x1e051d,_0x475fb9,_0x4ec369))return null;const _0x1ce730=getCliUpgradeCommand(_0x44c7d9);return await writeUpdateNoticeCache({..._0x1e051d,'checkedAt':_0x4ec369,'latest':_0x475fb9,'failed':![],'lastNotifiedVersion':_0x475fb9,'lastNotifiedAt':_0x4ec369}),{'command':_0x1ce730,'current':_0x904c4c,'latest':_0x475fb9,'url':buildNpmVersionUrl(_0x475fb9),'message':[_0x44c7d9[_0x395630(0x128)],CLI_BIN_NAME+'\x20'+_0x475fb9+_0x395630(0x11f)+_0x904c4c+_0x395630(0x120)+_0x1ce730]['filter'](Boolean)[_0x395630(0x11a)]('\x20')};}catch{return null;}}
@@ -1 +1 @@
1
- (function(_0x44bc7e,_0x232f1f){const _0x4ad0e2=a163_0xe389,_0x4fb5c2=_0x44bc7e();while(!![]){try{const _0x5e4d02=parseInt(_0x4ad0e2(0x196))/0x1+parseInt(_0x4ad0e2(0x195))/0x2*(-parseInt(_0x4ad0e2(0x197))/0x3)+-parseInt(_0x4ad0e2(0x193))/0x4*(parseInt(_0x4ad0e2(0x198))/0x5)+parseInt(_0x4ad0e2(0x18e))/0x6*(-parseInt(_0x4ad0e2(0x199))/0x7)+-parseInt(_0x4ad0e2(0x18f))/0x8*(-parseInt(_0x4ad0e2(0x194))/0x9)+-parseInt(_0x4ad0e2(0x191))/0xa*(-parseInt(_0x4ad0e2(0x18d))/0xb)+-parseInt(_0x4ad0e2(0x18c))/0xc*(-parseInt(_0x4ad0e2(0x192))/0xd);if(_0x5e4d02===_0x232f1f)break;else _0x4fb5c2['push'](_0x4fb5c2['shift']());}catch(_0x50a6e3){_0x4fb5c2['push'](_0x4fb5c2['shift']());}}}(a163_0x5ce6,0x8d66e));import{BUILD_TIME,GIT_COMMIT,VERSION}from'../generated/build-info.js';export function getCliVersion(){return VERSION;}export function getCliGitCommit(){const _0x105617=String(GIT_COMMIT);return _0x105617&&_0x105617!=='unknown'?_0x105617:'';}function a163_0xe389(_0x14df9b,_0x5ba916){_0x14df9b=_0x14df9b-0x18c;const _0x5ce65e=a163_0x5ce6();let _0xe3891c=_0x5ce65e[_0x14df9b];return _0xe3891c;}export function getCliVersionDisplay(){const _0x1f7322=a163_0xe389,_0x2b57cf=getCliGitCommit(),_0x541e25=BUILD_TIME[_0x1f7322(0x190)](0x0,0xa);if(!_0x2b57cf||!_0x541e25)return VERSION;return VERSION+'\x20('+_0x2b57cf+',\x20'+_0x541e25+')';}function a163_0x5ce6(){const _0x84985c=['417012hvHhjE','10087946EnAvQr','637926ncEeZM','24456gmOmFS','slice','10RQicWJ','52gJbbnU','4TYdPjA','837BHXqLG','27108ioEdtw','487460maSUgp','114IwGfTa','1010060OLholg','35pAUWYJ'];a163_0x5ce6=function(){return _0x84985c;};return a163_0x5ce6();}
1
+ (function(_0x2e5daf,_0x6297bc){const _0x2cf863=a163_0x2995,_0x436f0a=_0x2e5daf();while(!![]){try{const _0x1f35c1=-parseInt(_0x2cf863(0x148))/0x1*(parseInt(_0x2cf863(0x14a))/0x2)+-parseInt(_0x2cf863(0x14e))/0x3*(parseInt(_0x2cf863(0x14b))/0x4)+parseInt(_0x2cf863(0x149))/0x5+-parseInt(_0x2cf863(0x14d))/0x6+parseInt(_0x2cf863(0x152))/0x7+parseInt(_0x2cf863(0x14c))/0x8+parseInt(_0x2cf863(0x150))/0x9;if(_0x1f35c1===_0x6297bc)break;else _0x436f0a['push'](_0x436f0a['shift']());}catch(_0x122fe9){_0x436f0a['push'](_0x436f0a['shift']());}}}(a163_0x4b61,0x7e6f4));import{BUILD_TIME,GIT_COMMIT,VERSION}from'../generated/build-info.js';export function getCliVersion(){return VERSION;}export function getCliGitCommit(){const _0x1ec476=a163_0x2995,_0x14fa59=String(GIT_COMMIT);return _0x14fa59&&_0x14fa59!==_0x1ec476(0x14f)?_0x14fa59:'';}export function getCliVersionDisplay(){const _0x7c7d3b=a163_0x2995,_0x17baa7=getCliGitCommit(),_0x227a63=BUILD_TIME[_0x7c7d3b(0x151)](0x0,0xa);if(!_0x17baa7||!_0x227a63)return VERSION;return VERSION+'\x20('+_0x17baa7+',\x20'+_0x227a63+')';}function a163_0x2995(_0x412188,_0x5b295f){_0x412188=_0x412188-0x148;const _0x4b617c=a163_0x4b61();let _0x29957f=_0x4b617c[_0x412188];return _0x29957f;}function a163_0x4b61(){const _0x1a5c8a=['5728212ZvOBXY','slice','4520691txcpdy','1622zuXhdo','234025SUYBSZ','230gBuCVN','1233164ysgCme','4055568LhMvdr','4940010SabKJQ','3fhPPQK','unknown'];a163_0x4b61=function(){return _0x1a5c8a;};return a163_0x4b61();}
@@ -1 +1 @@
1
- function a164_0x2882(_0x259748,_0x4cd38e){_0x259748=_0x259748-0xdf;var _0x2132e6=a164_0x2132();var _0x2882a1=_0x2132e6[_0x259748];return _0x2882a1;}(function(_0x3dec5a,_0x3359b5){var _0x195202=a164_0x2882,_0x523473=_0x3dec5a();while(!![]){try{var _0x512bbc=parseInt(_0x195202(0xe3))/0x1*(-parseInt(_0x195202(0xea))/0x2)+-parseInt(_0x195202(0xec))/0x3*(parseInt(_0x195202(0xe2))/0x4)+parseInt(_0x195202(0xe0))/0x5+-parseInt(_0x195202(0xeb))/0x6+parseInt(_0x195202(0xe8))/0x7*(-parseInt(_0x195202(0xdf))/0x8)+parseInt(_0x195202(0xe1))/0x9*(parseInt(_0x195202(0xe5))/0xa)+-parseInt(_0x195202(0xe4))/0xb*(-parseInt(_0x195202(0xe9))/0xc);if(_0x512bbc===_0x3359b5)break;else _0x523473['push'](_0x523473['shift']());}catch(_0x851d64){_0x523473['push'](_0x523473['shift']());}}}(a164_0x2132,0x9c203));function a164_0x2132(){var _0x29bb44=['141jZEFdT','11pPrYvX','10QAexbR','stderr','write','35gekFLM','30925536eedEvH','6412bZwEdk','3493020szJfph','523293mNaOAS','1845752UIUAIX','3334050jhtiuu','959913GlsXEB','12UJBLrD'];a164_0x2132=function(){return _0x29bb44;};return a164_0x2132();}export function writeCliSideChannelLine(_0x318137){var _0x2b053e=a164_0x2882;process[_0x2b053e(0xe6)][_0x2b053e(0xe7)](_0x318137+'\x0a');}
1
+ function a164_0x2719(){var _0x33279d=['stderr','327678WlzaJM','259yKxpjr','28otZvgx','6596980ftEPZw','257733jmCQnW','62052fzHnnr','41480gUTtxo','123056mRrFiB','10040679soAAgQ','24WjBVDw','200ZIGUvw'];a164_0x2719=function(){return _0x33279d;};return a164_0x2719();}function a164_0x3eaa(_0x3c1059,_0x40e9a8){_0x3c1059=_0x3c1059-0x17b;var _0x2719ab=a164_0x2719();var _0x3eaa13=_0x2719ab[_0x3c1059];return _0x3eaa13;}(function(_0x4ea53e,_0x3c2b1f){var _0x28a393=a164_0x3eaa,_0x2b1f50=_0x4ea53e();while(!![]){try{var _0x31e6a6=-parseInt(_0x28a393(0x181))/0x1+-parseInt(_0x28a393(0x17c))/0x2*(parseInt(_0x28a393(0x17e))/0x3)+-parseInt(_0x28a393(0x183))/0x4*(parseInt(_0x28a393(0x17b))/0x5)+-parseInt(_0x28a393(0x186))/0x6*(-parseInt(_0x28a393(0x182))/0x7)+-parseInt(_0x28a393(0x17f))/0x8*(parseInt(_0x28a393(0x185))/0x9)+parseInt(_0x28a393(0x184))/0xa+parseInt(_0x28a393(0x17d))/0xb;if(_0x31e6a6===_0x3c2b1f)break;else _0x2b1f50['push'](_0x2b1f50['shift']());}catch(_0x15a6d9){_0x2b1f50['push'](_0x2b1f50['shift']());}}}(a164_0x2719,0x5831a));export function writeCliSideChannelLine(_0x391894){var _0x218719=a164_0x3eaa;process[_0x218719(0x180)]['write'](_0x391894+'\x0a');}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lovrabet/lovrabet-cli",
3
- "version": "2.3.1",
3
+ "version": "2.3.2-beta.1",
4
4
  "description": "Runtime CLI for Lovrabet apps, datasets, SQL, Backend Function, skills, and AI agent workflows.",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: lovrabet
3
3
  displayName: Lovrabet 运行态 CLI
4
- version: 2.3.1
4
+ version: 2.3.2-beta.1
5
5
  description: "Lovrabet 运行态 CLI — 面向业务场景的 AI 操作套件,通过 lovrabet 命令管理应用目录、业务角色与权限、用户级外部账号、Service Tree 业务命令、API 文档发现、数据集查询、Instant API 数据操作、Custom SQL/Backend Function、Personal Backend Function、文件上传、面向票证类业务材料文字与结构化字段提取的 OCR、定时任务、Skill、知识库与运行态 app-config key 状态检查。触发词:云图、lovrabet、lovrabet-cli、业务角色、角色成员、页面权限、菜单权限、数据集权限、user-account bind、provider 外部账号绑定、钉钉 userId 绑定、service tree、业务服务树、api-doc、dataset、data filter、file upload、file query-url、ocr recognize、OCR 识别、票证文字提取、票证字段提取、发票识别、票据识别、证照识别、附件上传、personal-bff、schedule、定时任务、cron、kb、skill、sql exec、bff exec、app-config、accessKey、compress、jq。"
6
6
  metadata:
7
7
  requires:
@@ -49,7 +49,7 @@ npm 包会自动安装同版本 Built-in Skill。若 `lovrabet doctor` 报告缺
49
49
 
50
50
  ### 认证命令选择
51
51
 
52
- - **首次使用或切换节点**:执行 `lovrabet config init`,选择当前已开放国家/地区;独立部署优先导入 `lovrabet-routing/v1` 清单,清单同时声明 Domain、`cdn.libraries` 与 `cdn.lovrabet`,供两个 CLI 共用。该命令固定维护全局连接配置
52
+ - **首次使用或切换节点**:执行 `lovrabet config init`,选择当前已开放国家/地区;独立部署优先导入 `lovrabet-routing/v1` 清单。该命令只读取运行态连接所需 Domain,忽略清单中的其他消费者字段,并固定维护全局连接配置
53
53
  - **只想更新 AK,尽量保留现有配置**:用户提供 AccessKey 后,使用 `lovrabet auth login --access-key <ACCESS_KEY>`
54
54
  - **还没有 AK,需要先自助创建**:Agent 可先执行 `lovrabet auth login --non-interactive` 获取无打扰提示,把命令根据当前 `userDomain` 返回的创建地址发给用户;用户把 AccessKey 发给 Agent 后,再执行 `lovrabet auth login --access-key <ACCESS_KEY>`
55
55
  - **想确认当前 AK 对应的是哪个用户**:使用 `lovrabet auth info`
@@ -279,8 +279,8 @@ Service Tree 未命中不是失败条件,也不代表业务能力不存在。
279
279
  | **config** | `init` | 初始化全局官方节点或独立部署 Domain | write | 本地 |
280
280
  | **config** | `set` | 写入配置项 | write | 本地 |
281
281
  | **config** | `delete` | 删除配置项 | write | 本地 |
282
- | **role** | `list` / `detail` | 查询当前应用的业务角色 | read | AK |
283
- | **role** | `create` / `update` / `delete` | 管理当前应用的自定义业务角色 | high-risk-write | AK |
282
+ | **role** | `list` / `detail` | 查询当前应用的业务角色及稳定 `roleCode` | read | AK |
283
+ | **role** | `create` / `update` / `delete` | 管理自定义业务角色;create/update 支持 `--role-code` | high-risk-write | AK |
284
284
  | **role** | `user-add` / `user-remove` | 调整业务角色成员 | high-risk-write | AK |
285
285
  | **permit** | `page-get` / `role-menus` / `dataset-get` | 查询页面、菜单和数据集权限 | read | AK |
286
286
  | **permit** | `page-set` / `role-menus-set` / `dataset-set` | 调整页面、菜单和数据集权限 | high-risk-write | AK |
@@ -7,7 +7,7 @@
7
7
  ## 开始前
8
8
 
9
9
  1. 使用明确的 `--appcode <code>`、`--app <name>` 或已经确认的当前应用。
10
- 2. 使用 `lovrabet role list` 获取真实角色 ID 和类型。
10
+ 2. 使用 `lovrabet role list` 获取真实角色 ID、`roleCode` 和类型。
11
11
  3. 写操作先加 `--dry-run` 检查目标和变更内容。
12
12
  4. 只有用户明确授权后才去掉 `--dry-run` 并加 `--yes`。
13
13
 
@@ -23,14 +23,15 @@ lovrabet role list --type CUSTOM --name 销售 --format compress
23
23
  lovrabet role detail --id <roleId> --format compress
24
24
  ```
25
25
 
26
- `role list` 返回内置角色和自定义角色。`builtin=true` 表示不能通过角色更新或删除命令修改。
26
+ `role list` 返回内置角色和自定义角色,每个角色都包含稳定业务标识 `roleCode`。`builtin=true` 表示不能通过角色更新或删除命令修改。
27
27
 
28
28
  ### 创建和修改自定义角色
29
29
 
30
30
  ```bash
31
- lovrabet role create --name <roleName> --remark <remark> --dry-run --format compress
32
- lovrabet role create --name <roleName> --remark <remark> --yes --format compress
31
+ lovrabet role create --name <roleName> --role-code <roleCode> --remark <remark> --dry-run --format compress
32
+ lovrabet role create --name <roleName> --role-code <roleCode> --remark <remark> --yes --format compress
33
33
 
34
+ lovrabet role update --id <roleId> --role-code <newRoleCode> --dry-run --format compress
34
35
  lovrabet role update --id <roleId> --name <newName> --dry-run --format compress
35
36
  lovrabet role update --id <roleId> --remark <newRemark> --yes --format compress
36
37
 
@@ -39,6 +40,7 @@ lovrabet role delete --id <roleId> --yes --format compress
39
40
  ```
40
41
 
41
42
  - 只能创建、更新和删除 CUSTOM 角色。
43
+ - `--role-code` 最长 64 个字符且全局唯一;创建时省略则由服务端使用角色 ID,更新时可以单独修改。
42
44
  - 备注只能设置为非空内容,不能用空字符串清除。
43
45
  - 删除可能影响已有成员和权限;必须先确认角色确实不再使用。
44
46
 
@@ -21,7 +21,7 @@ lovrabet config init --domain-config ./lovrabet-domains.json
21
21
 
22
22
  - `--region` 只接受 `cn` / `id`
23
23
  - 选择 `cn` 时省略冗余的 `region` 字段,以默认值保持向前兼容;选择 `id` 时写入 `"region": "id"`
24
- - 切回官方节点会删除全局配置里的五个显式 Domain,以及兼容读取的旧 Domain 字段
24
+ - 切回官方节点会删除全局配置里的四个显式 Domain,以及兼容读取的旧 Domain 字段
25
25
 
26
26
  ### 独立部署模式
27
27
 
@@ -40,34 +40,30 @@ lovrabet config init --domain-config ./lovrabet-domains.json
40
40
  "apiDomain": "https://api.customer.example.com",
41
41
  "runtimeDomain": "https://runtime.customer.example.com",
42
42
  "skillDomain": "https://skills.customer.example.com",
43
- "kbDomain": {
44
- "default": "https://kb-admin.customer.example.com",
45
- "lovrabet-cli": "https://kb.customer.example.com"
46
- },
43
+ "kbDomain": "https://kb-admin.customer.example.com",
47
44
  "appDomain": "https://app.customer.example.com"
48
45
  }
49
46
  }
50
47
  ```
51
48
 
52
- 新版清单要求完整服务拓扑以及 `cdn.libraries` / `cdn.lovrabet`。前者是第三方库的完整 CDN 基地址,后者是 Lovrabet 自有资源 origin;Runtime CLI 校验并保留它们,供同一清单被 Rabetbase 使用。Domain 可写成所有消费者共用的 HTTPS 字符串;确有差异时写成带 `default` 或消费者键的对象。对象优先使用 `lovrabet-cli`,其次使用 `default`,两者都没有时命令报错。Runtime CLI 会保留但不使用 `appDomain`、`localDomain`、`certificateDomain` 与 `cdn`。清单不能叠加单独的 Domain flags。旧扁平 JSON 继续兼容,只允许以下五个字段,且至少提供一个:
49
+ 同一份清单可以包含其他消费者所需的 Domain、CDN 或数据库访问提示。Lovrabet CLI 只校验并保存 `userDomain`、`apiDomain`、`runtimeDomain` 与 `skillDomain`;`kbDomain` 和其余消费者字段会被忽略。运行态知识库请求统一使用 `runtimeDomain`。Domain 可写成共用 HTTPS 字符串;确有差异时写成带 `default` 或当前消费者键的对象。对象优先使用 `lovrabet-cli`,其次使用 `default`,两者都没有时命令报错。清单不能叠加单独的 Domain flags。旧扁平 JSON 继续兼容,只允许以下四个字段,且至少提供一个:
53
50
 
54
51
  ```json
55
52
  {
56
53
  "userDomain": "https://user.customer.example.com",
57
54
  "apiDomain": "https://api.customer.example.com",
58
55
  "runtimeDomain": "https://runtime.customer.example.com",
59
- "skillDomain": "https://skills.customer.example.com",
60
- "kbDomain": "https://kb.customer.example.com"
56
+ "skillDomain": "https://skills.customer.example.com"
61
57
  }
62
58
  ```
63
59
 
64
- 也可以用 `--user-domain`、`--api-domain`、`--runtime-domain`、`--skill-domain`、`--kb-domain` 逐项传入;显式 flag 只覆盖旧扁平文件里的同名字段。所有值必须是无账号、路径、query 和 fragment 的 HTTPS origin。
60
+ 也可以用 `--user-domain`、`--api-domain`、`--runtime-domain`、`--skill-domain` 逐项传入;显式 flag 只覆盖旧扁平文件里的同名字段。所有值必须是无账号、路径、query 和 fragment 的 HTTPS origin。
65
61
 
66
62
  新版企业清单会保存为带协议标识的 `routing` 对象,并整体优先于旧顶层 Domain;旧扁平配置继续保持既有回退行为。
67
63
 
68
- 进入旧扁平独立部署模式会删除全局 `region` 和旧 Domain 字段,再写入本次提供的 Domain。未提供的 Domain 仍按默认 `cn` 节点和当前 `env` 回退到 Lovrabet 公共服务。企业部署需要所有请求进入私有服务时,应完整提供五个 Domain;KB Service 下游地址由 Runtime Java 独立配置。
64
+ 进入旧扁平独立部署模式会删除全局 `region` 和旧 Domain 字段,再写入本次提供的 Domain。未提供的 Domain 仍按默认 `cn` 节点和当前 `env` 回退到 Lovrabet 公共服务。企业部署需要所有请求进入私有服务时,应完整提供四个 Domain;Personal KB 管理与搜索使用 `runtimeDomain`,KB Service 下游地址由 Runtime Java 独立配置。
69
65
 
70
- 两种模式都保留 AccessKey、env、format、locale、应用绑定等其他全局配置。当前目录 `.lovrabet.json` 的旧扁平同名字段仍会覆盖全局旧扁平配置;初始化后用 `lovrabet doctor` 核对最终生效的国家/地区和五个 Domain。
66
+ 两种模式都保留 AccessKey、env、format、locale、应用绑定等其他全局配置。当前目录 `.lovrabet.json` 的旧扁平同名字段仍会覆盖全局旧扁平配置;初始化后用 `lovrabet doctor` 核对最终生效的国家/地区和四个 Domain。
71
67
 
72
68
  ## config list — 查看完整配置
73
69
 
@@ -55,11 +55,10 @@
55
55
  | `region` | string | `cn` | 当前开放的官方节点:`cn` / `id`;默认 `cn` 可省略 |
56
56
  | `userDomain` | string | 节点内置值 | User 服务 HTTPS origin 覆盖 |
57
57
  | `apiDomain` | string | 节点内置值 | 平台 API HTTPS origin 覆盖 |
58
- | `runtimeDomain` | string | 节点内置值 | 普通 Runtime HTTPS origin 覆盖 |
58
+ | `runtimeDomain` | string | 节点内置值 | Runtime HTTPS origin 覆盖,包含 Personal KB 管理与 `kb search` |
59
59
  | `skillDomain` | string | 节点默认 | SkillHub HTTPS origin 覆盖 |
60
- | `kbDomain` | string | 节点默认 | Personal KB 管理与 `kb search` Runtime 网关 HTTPS origin 覆盖 |
61
60
 
62
- 五个 Domain 各自独立覆盖同名服务地址。没有显式配置时,CLI 按 `region` 和 `env` 使用内置节点:`cn` 对应中国大陆,`id` 对应 Indonesia,且 Indonesia 的最终服务地址统一使用 `*.lovrabet.id`。`development` 与 `daily` 共用非生产地址;KB Service 下游地址由 Runtime Java 配置管理。执行 `lovrabet doctor` 可查看当前实际生效的五个 Domain,无需理解内部地址层级。
61
+ 四个 Domain 各自独立覆盖同名服务地址。没有显式配置时,CLI 按 `region` 和 `env` 使用内置节点:`cn` 对应中国大陆,`id` 对应 Indonesia,且 Indonesia 的最终服务地址统一使用 `*.lovrabet.id`。`development` 与 `daily` 共用非生产地址;Personal KB 管理与搜索统一走 Runtime,KB Service 下游地址由 Runtime Java 配置管理。执行 `lovrabet doctor` 可查看当前实际生效的四个 Domain,无需理解内部地址层级。
63
62
 
64
63
  `config init` 的完整模式切换、独立部署 JSON 和校验规则见 [配置管理](lovrabet-config-commands.md#config-init--初始化连接配置)。
65
64
 
@@ -25,4 +25,4 @@ lovrabet doctor
25
25
 
26
26
  `doctor` 不修改配置、不安装 Skill,也不替代业务命令的认证和权限检查。
27
27
 
28
- `API Endpoints` 显示 `kbDomain`,该地址同时承载 Personal KB 管理与 `kb search` Runtime 网关。KB Service 下游地址由 Runtime Java 配置管理,不在 CLI doctor 中显示。
28
+ `API Endpoints` 显示 `runtimeDomain`,该地址同时承载普通运行态请求、Personal KB 管理与 `kb search` Runtime 网关。KB Service 下游地址由 Runtime Java 配置管理,不在 CLI doctor 中显示。
@@ -10,7 +10,7 @@ lovrabet kb detail --id <id> --format compress
10
10
  lovrabet kb search --query "订单审批" --topk 5 --format compress
11
11
  ```
12
12
 
13
- `kb search` 只携带当前 AK,通过 `kbDomain` 调用固定 Runtime 搜索网关;Runtime 再按其 Java 环境配置访问 KB Service。返回范围是 `public/company/personal`,使用 `scope` 区分来源。
13
+ `kb search` 只携带当前 AK,通过 `runtimeDomain` 调用固定 Runtime 搜索网关;Runtime 再按其 Java 环境配置访问 KB Service。返回范围是 `public/company/personal`,使用 `scope` 区分来源。
14
14
 
15
15
  结构化输出固定为 `data: { schemaVersion:2, profile:"runtime", total, strategyFingerprint, timingsMs, hits }`。`--topk` 可选且必须是 1–50 的整数;命中完整保留 `documentId/revision/chunkId/scope/title/text/tags/rank/rawScore/finalScore/scoreKind` 的服务端顺序和值,不输出 legacy 别名。无命中是 `total:0/hits:[]` 的成功;字段、rank、score、timing、`no-store` 或 scope 漂移都会以脱敏错误失败。
16
16
 
@@ -24,15 +24,12 @@ lovrabet notification config-list --type EMAIL --appcode <appCode> --format json
24
24
 
25
25
  每个配置项只返回用于识别和选择配置的字段:
26
26
 
27
- - `id`
28
27
  - `configCode`
29
28
  - `configName`
30
29
  - `channelType`
31
30
  - `description`
32
- - `createTime`
33
- - `updateTime`
34
31
 
35
- 该命令不会输出 `endpointUrl`、`channelConfig`、SMTP 用户名或密码、token、secret、连接超时和人员身份审计字段。若任一配置缺少可用的 `configCode`、`configName` 或 `channelType`,命令返回错误,不把残缺记录包装成成功结果。
32
+ 该命令不会输出 `endpointUrl`、`channelConfig`、配置 ID、创建或更新时间、SMTP 用户名或密码、token、secret、连接超时和人员身份审计字段。若任一配置缺少可用的 `configCode`、`configName` 或 `channelType`,命令返回错误,不把残缺记录包装成成功结果。
36
33
 
37
34
  示例输出:
38
35
 
@@ -45,13 +42,10 @@ lovrabet notification config-list --type EMAIL --appcode <appCode> --format json
45
42
  "count": 1,
46
43
  "configs": [
47
44
  {
48
- "id": 7,
49
45
  "configCode": "ncc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
50
46
  "configName": "官方邮件",
51
47
  "channelType": "EMAIL",
52
- "description": "业务通知邮件",
53
- "createTime": "2026-07-01T00:00:00Z",
54
- "updateTime": "2026-07-02T00:00:00Z"
48
+ "description": "业务通知邮件"
55
49
  }
56
50
  ]
57
51
  },
@@ -2,8 +2,8 @@
2
2
  "schemaVersion": 1,
3
3
  "name": "lovrabet",
4
4
  "packageName": "@lovrabet/lovrabet-cli",
5
- "packageVersion": "2.3.1",
6
- "skillVersion": "2.3.1",
5
+ "packageVersion": "2.3.2-beta.1",
6
+ "skillVersion": "2.3.2-beta.1",
7
7
  "files": [
8
8
  "SKILL.md",
9
9
  "guides/app-resolution.md",
@@ -37,5 +37,5 @@
37
37
  "references/lovrabet-user-account.md",
38
38
  "references/lovrabet-workspace.md"
39
39
  ],
40
- "digest": "d330bc66b207592115986ab7eb259be8104c53ea8908d4b1583f6f9e82fde931"
40
+ "digest": "379a8a9bd266177b77bd27af649917d9d6fde8b02f89f0f3bb95534ccae5bf11"
41
41
  }