@lovrabet/lovrabet-cli 2.3.1-beta.2 → 2.3.1-beta.4

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 (179) hide show
  1. package/README.md +53 -1
  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.d.ts +2 -0
  23. package/lib/commands/common/flags.js +1 -1
  24. package/lib/commands/common/local-file.js +1 -1
  25. package/lib/commands/config/definitions.js +1 -1
  26. package/lib/commands/config/init.d.ts +2 -0
  27. package/lib/commands/config/init.js +1 -1
  28. package/lib/commands/config/shared.js +1 -1
  29. package/lib/commands/data/index.js +1 -1
  30. package/lib/commands/dataset/detail.js +1 -1
  31. package/lib/commands/dataset/index.js +1 -1
  32. package/lib/commands/dataset/list.js +1 -1
  33. package/lib/commands/dataset/sdk-doc.js +1 -1
  34. package/lib/commands/doctor.js +1 -1
  35. package/lib/commands/file/index.js +1 -1
  36. package/lib/commands/init.js +1 -1
  37. package/lib/commands/kb/index.js +1 -1
  38. package/lib/commands/logs/index.js +1 -1
  39. package/lib/commands/notification/config-list.js +1 -1
  40. package/lib/commands/notification/index.js +1 -1
  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.js +1 -1
  59. package/lib/commands/role/update.js +1 -1
  60. package/lib/commands/role/user-add.js +1 -1
  61. package/lib/commands/role/user-remove.js +1 -1
  62. package/lib/commands/schedule/index.js +1 -1
  63. package/lib/commands/schema.js +1 -1
  64. package/lib/commands/service/dynamic.js +1 -1
  65. package/lib/commands/service/function-name-adapter.js +1 -1
  66. package/lib/commands/service/index.js +1 -1
  67. package/lib/commands/service/registry.js +1 -1
  68. package/lib/commands/skill/commands/create.js +1 -1
  69. package/lib/commands/skill/commands/diagram.js +1 -1
  70. package/lib/commands/skill/commands/install.js +1 -1
  71. package/lib/commands/skill/commands/list.js +1 -1
  72. package/lib/commands/skill/commands/push.js +1 -1
  73. package/lib/commands/skill/commands/validate.js +1 -1
  74. package/lib/commands/skill/diagram.js +1 -1
  75. package/lib/commands/skill/flags.js +1 -1
  76. package/lib/commands/skill/index.js +1 -1
  77. package/lib/commands/skill/manifest-helpers.js +1 -1
  78. package/lib/commands/skill/push-execute.js +1 -1
  79. package/lib/commands/skill/push-flow-helpers.js +1 -1
  80. package/lib/commands/skill/push-retarget.js +1 -1
  81. package/lib/commands/skill/scopes.js +1 -1
  82. package/lib/commands/skill/summary.js +1 -1
  83. package/lib/commands/skill/templates.js +1 -1
  84. package/lib/commands/skill/validate.js +1 -1
  85. package/lib/commands/sql/detail.js +1 -1
  86. package/lib/commands/sql/exec.js +1 -1
  87. package/lib/commands/sql/index.js +1 -1
  88. package/lib/commands/update.js +1 -1
  89. package/lib/commands/user-account/bind.js +1 -1
  90. package/lib/commands/user-account/index.js +1 -1
  91. package/lib/commands/workspace/index.js +1 -1
  92. package/lib/config/domain-config.d.ts +33 -1
  93. package/lib/config/domain-config.js +1 -1
  94. package/lib/config/schema.d.ts +1 -1
  95. package/lib/config/schema.js +1 -1
  96. package/lib/constant/app.js +1 -1
  97. package/lib/constant/auth-mode.js +1 -1
  98. package/lib/constant/cli.js +1 -1
  99. package/lib/constant/defaults.js +1 -1
  100. package/lib/constant/distribution.js +1 -1
  101. package/lib/constant/domain.js +1 -1
  102. package/lib/constant/env.js +1 -1
  103. package/lib/constant/output.js +1 -1
  104. package/lib/constant/product.d.ts +0 -51
  105. package/lib/constant/product.js +1 -1
  106. package/lib/constant/region.d.ts +3 -5
  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.js +1 -1
  112. package/lib/core/db-resolver.js +1 -1
  113. package/lib/core/kb-search-client.js +1 -1
  114. package/lib/core/sdk-client.js +1 -1
  115. package/lib/errors.js +1 -1
  116. package/lib/framework/build-all-flags.js +1 -1
  117. package/lib/framework/dryrun.js +1 -1
  118. package/lib/framework/flags.js +1 -1
  119. package/lib/framework/help.js +1 -1
  120. package/lib/framework/index.js +1 -1
  121. package/lib/framework/output.js +1 -1
  122. package/lib/framework/preparse.js +1 -1
  123. package/lib/framework/rate-limit.js +1 -1
  124. package/lib/framework/raw-flags.js +1 -1
  125. package/lib/framework/response.js +1 -1
  126. package/lib/framework/runner-confirmation.js +1 -1
  127. package/lib/framework/runner-error.js +1 -1
  128. package/lib/framework/runner.js +1 -1
  129. package/lib/framework/schema-export.js +1 -1
  130. package/lib/framework/service-order.js +1 -1
  131. package/lib/framework/types.js +1 -1
  132. package/lib/generated/build-info.d.ts +4 -4
  133. package/lib/generated/build-info.js +1 -1
  134. package/lib/generated/official-routing.d.ts +59 -0
  135. package/lib/generated/official-routing.js +1 -0
  136. package/lib/generated/routing-contract.d.ts +9 -0
  137. package/lib/generated/routing-contract.js +1 -0
  138. package/lib/help.js +1 -1
  139. package/lib/postinstall.js +1 -1
  140. package/lib/runtime/confirmation.js +1 -1
  141. package/lib/runtime/event.js +1 -1
  142. package/lib/runtime/index.js +1 -1
  143. package/lib/runtime/queue.js +1 -1
  144. package/lib/runtime/resolve.js +1 -1
  145. package/lib/skills/builtin-skill.js +1 -1
  146. package/lib/skills/npx-skills-add.js +1 -1
  147. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  148. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  149. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  150. package/lib/skills/runtime-skill-sync/install-target.js +1 -1
  151. package/lib/skills/runtime-skill-sync/links.js +1 -1
  152. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  153. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  154. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  155. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  156. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  157. package/lib/skills/runtime-skill-sync/push.js +1 -1
  158. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  159. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  160. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  161. package/lib/skills/runtime-skill-sync.js +1 -1
  162. package/lib/skills/skill-presence.js +1 -1
  163. package/lib/utils/access-key-redaction.js +1 -1
  164. package/lib/utils/apply-jq-filter.js +1 -1
  165. package/lib/utils/cli-version-check.js +1 -1
  166. package/lib/utils/cli-version-policy.js +1 -1
  167. package/lib/utils/logger.js +1 -1
  168. package/lib/utils/lossless-json.js +1 -1
  169. package/lib/utils/params.js +1 -1
  170. package/lib/utils/platform.js +1 -1
  171. package/lib/utils/update-notice.js +1 -1
  172. package/lib/utils/version.js +1 -1
  173. package/lib/utils/write-cli-side-channel.js +1 -1
  174. package/package.json +2 -1
  175. package/skills/lovrabet/SKILL.md +3 -3
  176. package/skills/lovrabet/guides/troubleshooting.md +3 -5
  177. package/skills/lovrabet/references/lovrabet-config-commands.md +35 -10
  178. package/skills/lovrabet/references/lovrabet-config.md +7 -19
  179. package/skills/lovrabet.manifest.json +3 -3
@@ -1 +1 @@
1
- const a157_0x220a3d=a157_0x2bbd;(function(_0x5ef106,_0x13b41f){const _0x564f2e=a157_0x2bbd,_0x5ca8a0=_0x5ef106();while(!![]){try{const _0x3ee181=parseInt(_0x564f2e(0x164))/0x1+-parseInt(_0x564f2e(0x166))/0x2*(parseInt(_0x564f2e(0x175))/0x3)+parseInt(_0x564f2e(0x16b))/0x4+parseInt(_0x564f2e(0x171))/0x5*(-parseInt(_0x564f2e(0x169))/0x6)+-parseInt(_0x564f2e(0x170))/0x7+-parseInt(_0x564f2e(0x177))/0x8*(-parseInt(_0x564f2e(0x176))/0x9)+-parseInt(_0x564f2e(0x168))/0xa;if(_0x3ee181===_0x13b41f)break;else _0x5ca8a0['push'](_0x5ca8a0['shift']());}catch(_0x38edc0){_0x5ca8a0['push'](_0x5ca8a0['shift']());}}}(a157_0xc6ef,0x80add));const JSON_NUMBER_PATTERN=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/,MAX_SAFE_INTEGER=BigInt(Number['MAX_SAFE_INTEGER']),MIN_SAFE_INTEGER=BigInt(Number[a157_0x220a3d(0x167)]);let restoreResponseJsonParser,responseJsonPrototype,originalResponseJsonDescriptor;function isUnsafeIntegerLiteral(_0x1f5625){const _0xc37861=a157_0x220a3d;if(_0x1f5625[_0xc37861(0x162)]('.')||_0x1f5625[_0xc37861(0x162)]('e')||_0x1f5625[_0xc37861(0x162)]('E'))return![];const _0x5145b8=BigInt(_0x1f5625);return _0x5145b8>MAX_SAFE_INTEGER||_0x5145b8<MIN_SAFE_INTEGER;}function a157_0x2bbd(_0x52ac94,_0x5cd648){_0x52ac94=_0x52ac94-0x162;const _0xc6ef75=a157_0xc6ef();let _0x2bbd49=_0xc6ef75[_0x52ac94];return _0x2bbd49;}function quoteUnsafeIntegerLiterals(_0x167753){const _0x26642d=a157_0x220a3d;let _0x42684d='',_0x3cb290=![],_0x3682e9=![];for(let _0x3b345d=0x0;_0x3b345d<_0x167753[_0x26642d(0x16e)];){const _0xad594f=_0x167753[_0x3b345d];if(_0x3cb290){_0x42684d+=_0xad594f,_0x3b345d+=0x1;if(_0x3682e9)_0x3682e9=![];else{if(_0xad594f==='\x5c')_0x3682e9=!![];else _0xad594f==='\x22'&&(_0x3cb290=![]);}continue;}if(_0xad594f==='\x22'){_0x3cb290=!![],_0x42684d+=_0xad594f,_0x3b345d+=0x1;continue;}if(_0xad594f==='-'||_0xad594f>='0'&&_0xad594f<='9'){const _0x526683=JSON_NUMBER_PATTERN[_0x26642d(0x16c)](_0x167753[_0x26642d(0x16a)](_0x3b345d))?.[0x0];if(_0x526683){_0x42684d+=isUnsafeIntegerLiteral(_0x526683)?'\x22'+_0x526683+'\x22':_0x526683,_0x3b345d+=_0x526683[_0x26642d(0x16e)];continue;}}_0x42684d+=_0xad594f,_0x3b345d+=0x1;}return _0x42684d;}export function parseLosslessJson(_0x18c0d3){const _0x127fb7=a157_0x220a3d;return JSON[_0x127fb7(0x173)](quoteUnsafeIntegerLiterals(_0x18c0d3));}export function installLosslessJsonResponseParser(){const _0xa2b6a1=a157_0x220a3d;if(typeof Response===_0xa2b6a1(0x172))return()=>{};if(restoreResponseJsonParser)return restoreResponseJsonParser;return responseJsonPrototype=Response[_0xa2b6a1(0x16d)],originalResponseJsonDescriptor=Object[_0xa2b6a1(0x16f)](responseJsonPrototype,_0xa2b6a1(0x163)),Object[_0xa2b6a1(0x165)](responseJsonPrototype,_0xa2b6a1(0x163),{...originalResponseJsonDescriptor??{'configurable':!![],'enumerable':![],'writable':!![]},'value':async function _0x1cb641(){const _0x598199=_0xa2b6a1;return parseLosslessJson(await this[_0x598199(0x174)]());}}),restoreResponseJsonParser=()=>{const _0x434005=_0xa2b6a1;if(!responseJsonPrototype)return;originalResponseJsonDescriptor?Object[_0x434005(0x165)](responseJsonPrototype,_0x434005(0x163),originalResponseJsonDescriptor):delete responseJsonPrototype[_0x434005(0x163)],responseJsonPrototype=undefined,originalResponseJsonDescriptor=undefined,restoreResponseJsonParser=undefined;},restoreResponseJsonParser;}export function restoreLosslessJsonResponseParser(){restoreResponseJsonParser?.();}function a157_0xc6ef(){const _0x752098=['MIN_SAFE_INTEGER','1808640UepSxb','4887354gNtleb','slice','1584844YOqnsP','exec','prototype','length','getOwnPropertyDescriptor','832916aRJeFi','5McgzMm','undefined','parse','text','63ntFPes','18ZDVITe','2392648ZLLpJa','includes','json','759898ndYpTY','defineProperty','10742ABARic'];a157_0xc6ef=function(){return _0x752098;};return a157_0xc6ef();}
1
+ function a159_0x5adc(_0x143ec9,_0x3bd116){_0x143ec9=_0x143ec9-0x12c;const _0x2a07f0=a159_0x2a07();let _0x5adc0a=_0x2a07f0[_0x143ec9];return _0x5adc0a;}const a159_0xfd9dce=a159_0x5adc;function a159_0x2a07(){const _0xad2f9e=['json','length','undefined','80nVFdgR','getOwnPropertyDescriptor','71974xWhoVQ','515583yFFCgH','71255suLSfU','470337DqkCPY','872352ewqacl','text','parse','includes','prototype','649708MvRwfS','exec','MAX_SAFE_INTEGER','184RNGSqN','MIN_SAFE_INTEGER','defineProperty','217908oHzARo'];a159_0x2a07=function(){return _0xad2f9e;};return a159_0x2a07();}(function(_0x23ee9c,_0xa902f6){const _0x39f272=a159_0x5adc,_0x309cd1=_0x23ee9c();while(!![]){try{const _0x2b9587=-parseInt(_0x39f272(0x132))/0x1+parseInt(_0x39f272(0x138))/0x2+parseInt(_0x39f272(0x13e))/0x3+-parseInt(_0x39f272(0x12d))/0x4*(-parseInt(_0x39f272(0x131))/0x5)+-parseInt(_0x39f272(0x133))/0x6+-parseInt(_0x39f272(0x12f))/0x7*(-parseInt(_0x39f272(0x13b))/0x8)+-parseInt(_0x39f272(0x130))/0x9;if(_0x2b9587===_0xa902f6)break;else _0x309cd1['push'](_0x309cd1['shift']());}catch(_0x2c4480){_0x309cd1['push'](_0x309cd1['shift']());}}}(a159_0x2a07,0x3c0dc));const JSON_NUMBER_PATTERN=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/,MAX_SAFE_INTEGER=BigInt(Number[a159_0xfd9dce(0x13a)]),MIN_SAFE_INTEGER=BigInt(Number[a159_0xfd9dce(0x13c)]);let restoreResponseJsonParser,responseJsonPrototype,originalResponseJsonDescriptor;function isUnsafeIntegerLiteral(_0x4602c3){const _0x244ccf=a159_0xfd9dce;if(_0x4602c3[_0x244ccf(0x136)]('.')||_0x4602c3[_0x244ccf(0x136)]('e')||_0x4602c3[_0x244ccf(0x136)]('E'))return![];const _0x30cbac=BigInt(_0x4602c3);return _0x30cbac>MAX_SAFE_INTEGER||_0x30cbac<MIN_SAFE_INTEGER;}function quoteUnsafeIntegerLiterals(_0x5988ab){const _0x2fb43b=a159_0xfd9dce;let _0x2dbcba='',_0x5b734f=![],_0x3d1a11=![];for(let _0x286438=0x0;_0x286438<_0x5988ab['length'];){const _0x2ab80d=_0x5988ab[_0x286438];if(_0x5b734f){_0x2dbcba+=_0x2ab80d,_0x286438+=0x1;if(_0x3d1a11)_0x3d1a11=![];else{if(_0x2ab80d==='\x5c')_0x3d1a11=!![];else _0x2ab80d==='\x22'&&(_0x5b734f=![]);}continue;}if(_0x2ab80d==='\x22'){_0x5b734f=!![],_0x2dbcba+=_0x2ab80d,_0x286438+=0x1;continue;}if(_0x2ab80d==='-'||_0x2ab80d>='0'&&_0x2ab80d<='9'){const _0x5c6ea8=JSON_NUMBER_PATTERN[_0x2fb43b(0x139)](_0x5988ab['slice'](_0x286438))?.[0x0];if(_0x5c6ea8){_0x2dbcba+=isUnsafeIntegerLiteral(_0x5c6ea8)?'\x22'+_0x5c6ea8+'\x22':_0x5c6ea8,_0x286438+=_0x5c6ea8[_0x2fb43b(0x140)];continue;}}_0x2dbcba+=_0x2ab80d,_0x286438+=0x1;}return _0x2dbcba;}export function parseLosslessJson(_0x152aea){const _0x5c3475=a159_0xfd9dce;return JSON[_0x5c3475(0x135)](quoteUnsafeIntegerLiterals(_0x152aea));}export function installLosslessJsonResponseParser(){const _0x41d67d=a159_0xfd9dce;if(typeof Response===_0x41d67d(0x12c))return()=>{};if(restoreResponseJsonParser)return restoreResponseJsonParser;return responseJsonPrototype=Response[_0x41d67d(0x137)],originalResponseJsonDescriptor=Object[_0x41d67d(0x12e)](responseJsonPrototype,_0x41d67d(0x13f)),Object[_0x41d67d(0x13d)](responseJsonPrototype,'json',{...originalResponseJsonDescriptor??{'configurable':!![],'enumerable':![],'writable':!![]},'value':async function _0x2c5827(){const _0x339f70=_0x41d67d;return parseLosslessJson(await this[_0x339f70(0x134)]());}}),restoreResponseJsonParser=()=>{const _0x23c350=_0x41d67d;if(!responseJsonPrototype)return;originalResponseJsonDescriptor?Object[_0x23c350(0x13d)](responseJsonPrototype,_0x23c350(0x13f),originalResponseJsonDescriptor):delete responseJsonPrototype[_0x23c350(0x13f)],responseJsonPrototype=undefined,originalResponseJsonDescriptor=undefined,restoreResponseJsonParser=undefined;},restoreResponseJsonParser;}export function restoreLosslessJsonResponseParser(){restoreResponseJsonParser?.();}
@@ -1 +1 @@
1
- function a158_0x1969(_0x3b8332,_0x38b43d){_0x3b8332=_0x3b8332-0x14c;const _0x5d990d=a158_0x5d99();let _0x19699f=_0x5d990d[_0x3b8332];return _0x19699f;}function a158_0x5d99(){const _0x16b581=['isArray','object','join','data\x20update\x20id\x20array\x20cannot\x20be\x20empty.','648248tstKPm','number','data\x20update\x20can\x20update\x20at\x20most\x20','batchCreate\x20--params\x20must\x20be\x20a\x20JSON\x20array\x20or\x20{\x22items\x22:[...]}','Invalid\x20JSON\x20for\x20--params:\x20','673835zTDzzS','666804rtVPiQ','72988vGmldl','string','606528VcHFTg','data\x20update\x20--params.','Example:\x20--params\x20\x27{\x22id\x22:[1,2,3],\x22status\x22:\x22done\x22}\x27','data\x20update\x20requires\x20\x22id\x22\x20in\x20--params.','id[','Example:\x20--params\x20\x27[{\x22name\x22:\x22a\x22},{\x22name\x22:\x22b\x22}]\x27','14432710nycsyu','validation','7OHUBgu','1144266KPkMkF','length','map','9VtQPzM','items','95zYXZRl'];a158_0x5d99=function(){return _0x16b581;};return a158_0x5d99();}(function(_0x2aab44,_0x179e90){const _0x2b0c23=a158_0x1969,_0x466cc7=_0x2aab44();while(!![]){try{const _0x24a9e7=-parseInt(_0x2b0c23(0x159))/0x1+-parseInt(_0x2b0c23(0x15a))/0x2+parseInt(_0x2b0c23(0x15d))/0x3+-parseInt(_0x2b0c23(0x15b))/0x4*(parseInt(_0x2b0c23(0x14f))/0x5)+parseInt(_0x2b0c23(0x166))/0x6*(parseInt(_0x2b0c23(0x165))/0x7)+-parseInt(_0x2b0c23(0x154))/0x8+parseInt(_0x2b0c23(0x14d))/0x9*(parseInt(_0x2b0c23(0x163))/0xa);if(_0x24a9e7===_0x179e90)break;else _0x466cc7['push'](_0x466cc7['shift']());}catch(_0x5262c5){_0x466cc7['push'](_0x466cc7['shift']());}}}(a158_0x5d99,0x61f2d));import{CliErrors}from'../errors.js';import{parseLosslessJson}from'../utils/lossless-json.js';export const MAX_DATA_UPDATE_IDS=0x3e8;export function parseJsonParams(_0x262635){const _0x3174ee=a158_0x1969;if(!_0x262635)return undefined;try{return parseLosslessJson(_0x262635);}catch{throw CliErrors['validation'](_0x3174ee(0x158)+_0x262635);}}export function parseJsonParamsValue(_0x2b2176){const _0x495ce8=a158_0x1969;if(!_0x2b2176)return undefined;try{return parseLosslessJson(_0x2b2176);}catch{throw CliErrors[_0x495ce8(0x164)](_0x495ce8(0x158)+_0x2b2176);}}export function parseBatchCreateItemsFromParams(_0x138ea1){const _0x2fb724=a158_0x1969;if(Array[_0x2fb724(0x150)](_0x138ea1))return _0x138ea1;if(_0x138ea1!==null&&_0x138ea1!==undefined&&typeof _0x138ea1===_0x2fb724(0x151)&&Array[_0x2fb724(0x150)](_0x138ea1[_0x2fb724(0x14e)]))return _0x138ea1[_0x2fb724(0x14e)];throw CliErrors[_0x2fb724(0x164)](_0x2fb724(0x157),_0x2fb724(0x162));}function parseDataUpdateId(_0x58e6f8,_0x551cdc){const _0x45f432=a158_0x1969;if(typeof _0x58e6f8===_0x45f432(0x155)&&Number['isSafeInteger'](_0x58e6f8)&&_0x58e6f8>0x0)return _0x58e6f8;if(typeof _0x58e6f8===_0x45f432(0x15c)){if(/^[1-9]\d*$/['test'](_0x58e6f8))return _0x58e6f8;}throw CliErrors[_0x45f432(0x164)](_0x45f432(0x15e)+_0x551cdc+'\x20must\x20be\x20a\x20positive\x20integer\x20or\x20numeric\x20string.');}export function parseUpdateIdsFromParams(_0x22e5aa){const _0x3ea45b=a158_0x1969;if(_0x22e5aa===null||_0x22e5aa===undefined||typeof _0x22e5aa!==_0x3ea45b(0x151)||Array['isArray'](_0x22e5aa))throw CliErrors[_0x3ea45b(0x164)]('data\x20update\x20--params\x20must\x20be\x20a\x20JSON\x20object\x20with\x20id.','Example:\x20--params\x20\x27{\x22id\x22:[1,2,3],\x22status\x22:\x22done\x22}\x27');const _0x21e3f6=_0x22e5aa['id'];if(_0x21e3f6===undefined||_0x21e3f6===null)throw CliErrors[_0x3ea45b(0x164)](_0x3ea45b(0x160),_0x3ea45b(0x15f));const _0x1dffb2=Array[_0x3ea45b(0x150)](_0x21e3f6)?_0x21e3f6:[_0x21e3f6];if(_0x1dffb2[_0x3ea45b(0x167)]===0x0)throw CliErrors['validation'](_0x3ea45b(0x153));if(_0x1dffb2['length']>MAX_DATA_UPDATE_IDS)throw CliErrors[_0x3ea45b(0x164)](_0x3ea45b(0x156)+MAX_DATA_UPDATE_IDS+'\x20records\x20per\x20call;\x20received\x20'+_0x1dffb2[_0x3ea45b(0x167)]+'.');return _0x1dffb2[_0x3ea45b(0x14c)]((_0xe1b991,_0x2a6388)=>parseDataUpdateId(_0xe1b991,Array[_0x3ea45b(0x150)](_0x21e3f6)?_0x3ea45b(0x161)+_0x2a6388+']':'id'));}export function normalizeUpdateParamsForRuntime(_0x1e207e,_0xeda221){const _0x2eed76=a158_0x1969;if(Array[_0x2eed76(0x150)](_0x1e207e['id'])&&_0xeda221[_0x2eed76(0x167)]>0x1)return{..._0x1e207e,'id':_0xeda221[_0x2eed76(0x152)](',')};return _0x1e207e;}
1
+ function a160_0x422c(_0x448dc0,_0x36617e){_0x448dc0=_0x448dc0-0x143;const _0x5f5437=a160_0x5f54();let _0x422cc7=_0x5f5437[_0x448dc0];return _0x422cc7;}(function(_0x35b0a7,_0x2f314b){const _0x4bb941=a160_0x422c,_0x2deadc=_0x35b0a7();while(!![]){try{const _0x5988ff=parseInt(_0x4bb941(0x15e))/0x1+-parseInt(_0x4bb941(0x145))/0x2*(-parseInt(_0x4bb941(0x14b))/0x3)+-parseInt(_0x4bb941(0x147))/0x4+-parseInt(_0x4bb941(0x15b))/0x5*(parseInt(_0x4bb941(0x154))/0x6)+parseInt(_0x4bb941(0x15f))/0x7*(parseInt(_0x4bb941(0x152))/0x8)+-parseInt(_0x4bb941(0x158))/0x9*(parseInt(_0x4bb941(0x14c))/0xa)+-parseInt(_0x4bb941(0x156))/0xb*(parseInt(_0x4bb941(0x144))/0xc);if(_0x5988ff===_0x2f314b)break;else _0x2deadc['push'](_0x2deadc['shift']());}catch(_0x4b6ce5){_0x2deadc['push'](_0x2deadc['shift']());}}}(a160_0x5f54,0x34f5c));import{CliErrors}from'../errors.js';import{parseLosslessJson}from'../utils/lossless-json.js';export const MAX_DATA_UPDATE_IDS=0x3e8;export function parseJsonParams(_0xa64d6a){const _0x324a2e=a160_0x422c;if(!_0xa64d6a)return undefined;try{return parseLosslessJson(_0xa64d6a);}catch{throw CliErrors[_0x324a2e(0x150)](_0x324a2e(0x153)+_0xa64d6a);}}function a160_0x5f54(){const _0xa3b67a=['number','27gJLgSQ','50IPFelY','isSafeInteger','Example:\x20--params\x20\x27{\x22id\x22:[1,2,3],\x22status\x22:\x22done\x22}\x27','batchCreate\x20--params\x20must\x20be\x20a\x20JSON\x20array\x20or\x20{\x22items\x22:[...]}','validation','data\x20update\x20can\x20update\x20at\x20most\x20','118008fUfhvW','Invalid\x20JSON\x20for\x20--params:\x20','12TSIGPp','data\x20update\x20--params\x20must\x20be\x20a\x20JSON\x20object\x20with\x20id.','11qcPJYC','test','285588BKiYYO','id[','items','14485fAOGRB','string','Example:\x20--params\x20\x27[{\x22name\x22:\x22a\x22},{\x22name\x22:\x22b\x22}]\x27','298386vnvshR','119oCHdAa','data\x20update\x20requires\x20\x22id\x22\x20in\x20--params.','isArray','data\x20update\x20--params.','object','data\x20update\x20id\x20array\x20cannot\x20be\x20empty.','\x20records\x20per\x20call;\x20received\x20','2289036zPFANW','15074WzWqIG','join','179420DwWZjP','length','map'];a160_0x5f54=function(){return _0xa3b67a;};return a160_0x5f54();}export function parseJsonParamsValue(_0x16745c){const _0x4bc5e1=a160_0x422c;if(!_0x16745c)return undefined;try{return parseLosslessJson(_0x16745c);}catch{throw CliErrors[_0x4bc5e1(0x150)](_0x4bc5e1(0x153)+_0x16745c);}}export function parseBatchCreateItemsFromParams(_0x44e74c){const _0x281ca7=a160_0x422c;if(Array[_0x281ca7(0x161)](_0x44e74c))return _0x44e74c;if(_0x44e74c!==null&&_0x44e74c!==undefined&&typeof _0x44e74c===_0x281ca7(0x163)&&Array[_0x281ca7(0x161)](_0x44e74c[_0x281ca7(0x15a)]))return _0x44e74c['items'];throw CliErrors[_0x281ca7(0x150)](_0x281ca7(0x14f),_0x281ca7(0x15d));}function parseDataUpdateId(_0x1516be,_0x3eace9){const _0x53be08=a160_0x422c;if(typeof _0x1516be===_0x53be08(0x14a)&&Number[_0x53be08(0x14d)](_0x1516be)&&_0x1516be>0x0)return _0x1516be;if(typeof _0x1516be===_0x53be08(0x15c)){if(/^[1-9]\d*$/[_0x53be08(0x157)](_0x1516be))return _0x1516be;}throw CliErrors[_0x53be08(0x150)](_0x53be08(0x162)+_0x3eace9+'\x20must\x20be\x20a\x20positive\x20integer\x20or\x20numeric\x20string.');}export function parseUpdateIdsFromParams(_0x44aec9){const _0x26f8ba=a160_0x422c;if(_0x44aec9===null||_0x44aec9===undefined||typeof _0x44aec9!==_0x26f8ba(0x163)||Array[_0x26f8ba(0x161)](_0x44aec9))throw CliErrors[_0x26f8ba(0x150)](_0x26f8ba(0x155),_0x26f8ba(0x14e));const _0x4ef47d=_0x44aec9['id'];if(_0x4ef47d===undefined||_0x4ef47d===null)throw CliErrors[_0x26f8ba(0x150)](_0x26f8ba(0x160),_0x26f8ba(0x14e));const _0xc710aa=Array['isArray'](_0x4ef47d)?_0x4ef47d:[_0x4ef47d];if(_0xc710aa[_0x26f8ba(0x148)]===0x0)throw CliErrors[_0x26f8ba(0x150)](_0x26f8ba(0x164));if(_0xc710aa[_0x26f8ba(0x148)]>MAX_DATA_UPDATE_IDS)throw CliErrors[_0x26f8ba(0x150)](_0x26f8ba(0x151)+MAX_DATA_UPDATE_IDS+_0x26f8ba(0x143)+_0xc710aa[_0x26f8ba(0x148)]+'.');return _0xc710aa[_0x26f8ba(0x149)]((_0x101ca4,_0x55faac)=>parseDataUpdateId(_0x101ca4,Array[_0x26f8ba(0x161)](_0x4ef47d)?_0x26f8ba(0x159)+_0x55faac+']':'id'));}export function normalizeUpdateParamsForRuntime(_0x48ba35,_0x24fdba){const _0x5e3b45=a160_0x422c;if(Array['isArray'](_0x48ba35['id'])&&_0x24fdba[_0x5e3b45(0x148)]>0x1)return{..._0x48ba35,'id':_0x24fdba[_0x5e3b45(0x146)](',')};return _0x48ba35;}
@@ -1 +1 @@
1
- const a159_0x246f40=a159_0xb78f;function a159_0x4d72(){const _0x38758d=['.cmd','4293738punCXF','1081569Tvfzei','250108LOGHCR','platform','2762207znoybQ','2627895VgAzEQ','1356960TzhgeW','137601vPybSc'];a159_0x4d72=function(){return _0x38758d;};return a159_0x4d72();}(function(_0x4f838c,_0x514e62){const _0x3b701d=a159_0xb78f,_0x34b446=_0x4f838c();while(!![]){try{const _0x50c7f0=parseInt(_0x3b701d(0x1c0))/0x1+parseInt(_0x3b701d(0x1c4))/0x2+-parseInt(_0x3b701d(0x1c3))/0x3+-parseInt(_0x3b701d(0x1bf))/0x4+parseInt(_0x3b701d(0x1c7))/0x5+parseInt(_0x3b701d(0x1c2))/0x6+-parseInt(_0x3b701d(0x1c6))/0x7;if(_0x50c7f0===_0x514e62)break;else _0x34b446['push'](_0x34b446['shift']());}catch(_0x14cac6){_0x34b446['push'](_0x34b446['shift']());}}}(a159_0x4d72,0x63f95));function a159_0xb78f(_0x5e9445,_0x29301a){_0x5e9445=_0x5e9445-0x1bf;const _0x4d72f0=a159_0x4d72();let _0xb78fd1=_0x4d72f0[_0x5e9445];return _0xb78fd1;}export const isWindows=process[a159_0x246f40(0x1c5)]==='win32';export function resolveNpmBin(_0x1573b9){const _0xa0c9d2=a159_0x246f40;return isWindows?_0x1573b9+_0xa0c9d2(0x1c1):_0x1573b9;}
1
+ const a161_0x56df7d=a161_0x5e35;(function(_0x12d390,_0x3d9459){const _0x31a057=a161_0x5e35,_0x149b0a=_0x12d390();while(!![]){try{const _0x3e7df1=-parseInt(_0x31a057(0x1f4))/0x1*(parseInt(_0x31a057(0x202))/0x2)+-parseInt(_0x31a057(0x1f6))/0x3*(parseInt(_0x31a057(0x1fa))/0x4)+-parseInt(_0x31a057(0x1fb))/0x5+-parseInt(_0x31a057(0x1f7))/0x6*(parseInt(_0x31a057(0x200))/0x7)+parseInt(_0x31a057(0x1ff))/0x8*(parseInt(_0x31a057(0x1f9))/0x9)+-parseInt(_0x31a057(0x1f8))/0xa*(-parseInt(_0x31a057(0x1fd))/0xb)+parseInt(_0x31a057(0x201))/0xc*(parseInt(_0x31a057(0x1f5))/0xd);if(_0x3e7df1===_0x3d9459)break;else _0x149b0a['push'](_0x149b0a['shift']());}catch(_0x1cd591){_0x149b0a['push'](_0x149b0a['shift']());}}}(a161_0x9445,0x60cae));export const isWindows=process[a161_0x56df7d(0x1f3)]===a161_0x56df7d(0x1fc);function a161_0x5e35(_0x3e7a2d,_0x540044){_0x3e7a2d=_0x3e7a2d-0x1f3;const _0x944589=a161_0x9445();let _0x5e35ea=_0x944589[_0x3e7a2d];return _0x5e35ea;}function a161_0x9445(){const _0xdc0516=['396SNLwWK','116vOaMVj','2716370gulzuh','win32','218471jYORLq','.cmd','120944FItXgr','7378WsBrEi','972CPlBwO','10IHxTTM','platform','137529ZOWrnT','289185rqJqbu','77685RnNzyr','618CwSqJz','10nHlzEz'];a161_0x9445=function(){return _0xdc0516;};return a161_0x9445();}export function resolveNpmBin(_0x5c3a2a){const _0x329150=a161_0x56df7d;return isWindows?_0x5c3a2a+_0x329150(0x1fe):_0x5c3a2a;}
@@ -1 +1 @@
1
- (function(_0x15a985,_0x16c069){const _0x1f0c59=a160_0x2d68,_0x4da810=_0x15a985();while(!![]){try{const _0x3dbef7=parseInt(_0x1f0c59(0x109))/0x1+-parseInt(_0x1f0c59(0x112))/0x2*(parseInt(_0x1f0c59(0x101))/0x3)+-parseInt(_0x1f0c59(0x108))/0x4+-parseInt(_0x1f0c59(0x10d))/0x5+-parseInt(_0x1f0c59(0x10c))/0x6+-parseInt(_0x1f0c59(0x103))/0x7*(parseInt(_0x1f0c59(0x11b))/0x8)+-parseInt(_0x1f0c59(0x10e))/0x9*(-parseInt(_0x1f0c59(0x104))/0xa);if(_0x3dbef7===_0x16c069)break;else _0x4da810['push'](_0x4da810['shift']());}catch(_0xeb2d55){_0x4da810['push'](_0x4da810['shift']());}}}(a160_0x44ef,0xd7729));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';function a160_0x44ef(){const _0x39e5c8=['needsUpgrade','1231864HLfhLS','10467LhvuPC','upgradeMessage','35AdKlmE','16790QmUIIY','currentVersion','lastNotifiedAt','.cache','849600UsIpOI','1047599vFVBmN','join','filter','5751924IWwQOD','2030760UUJRRz','14913uLryWk','stringify',',\x20run:\x20','update-check.json','344JepaHh','parse','true','stableVersion','lovrabet-cli','/v/','trim','utf8'];a160_0x44ef=function(){return _0x39e5c8;};return a160_0x44ef();}import{checkCliVersion,getCliUpgradeCommand}from'../utils/cli-version-check.js';const UPDATE_NOTICE_TTL_MS=0x18*0x3c*0x3c*0x3e8;function isUpdateNoticeDisabled(){const _0xc845f8=a160_0x2d68,_0x5acb8=process.env.LOVRABET_NO_UPDATE_NOTICE?.[_0xc845f8(0x118)]()['toLowerCase']();return _0x5acb8==='1'||_0x5acb8===_0xc845f8(0x114)||_0x5acb8==='yes';}function a160_0x2d68(_0x196d88,_0x4054f5){_0x196d88=_0x196d88-0x101;const _0x44ef6c=a160_0x44ef();let _0x2d68a0=_0x44ef6c[_0x196d88];return _0x2d68a0;}function cacheRoot(){const _0x1af5ec=a160_0x2d68;return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),_0x1af5ec(0x107));}export function getUpdateNoticeCachePath(){const _0x2b18c7=a160_0x2d68;return join(cacheRoot(),_0x2b18c7(0x116),_0x2b18c7(0x111));}async function readUpdateNoticeCache(){const _0x525c05=a160_0x2d68;try{const _0x17be4e=await readFile(getUpdateNoticeCachePath(),_0x525c05(0x119)),_0x2d6f49=JSON[_0x525c05(0x113)](_0x17be4e);if(!_0x2d6f49||typeof _0x2d6f49!=='object')return{};return _0x2d6f49;}catch{return{};}}async function writeUpdateNoticeCache(_0x527434){const _0x5efbbd=a160_0x2d68;try{const _0x3e9bca=getUpdateNoticeCachePath();await mkdir(dirname(_0x3e9bca),{'recursive':!![]}),await writeFile(_0x3e9bca,JSON[_0x5efbbd(0x10f)](_0x527434,null,0x2)+'\x0a',_0x5efbbd(0x119));}catch{}}function isRecentlyNotified(_0x37a85c,_0x393558,_0x421b3a){const _0x230a04=a160_0x2d68;return _0x37a85c['lastNotifiedVersion']===_0x393558&&typeof _0x37a85c[_0x230a04(0x106)]==='number'&&_0x421b3a-_0x37a85c[_0x230a04(0x106)]<UPDATE_NOTICE_TTL_MS;}export function buildNpmVersionUrl(_0x318941){const _0x346864=a160_0x2d68;return'https://www.npmjs.com/package/'+LOVRABET_NPM_PACKAGE_NAME+_0x346864(0x117)+_0x318941;}export async function resolveLatestUpdateNotice(_0x42e33c){const _0x2751f0=a160_0x2d68;if(isUpdateNoticeDisabled())return null;try{const _0x57204b=Date['now'](),_0x11b710=_0x42e33c??await checkCliVersion(),_0x432fdb=_0x11b710[_0x2751f0(0x105)],_0x29fb78=_0x11b710[_0x2751f0(0x115)],_0x40e0e6=await readUpdateNoticeCache();if(!_0x29fb78||!_0x11b710[_0x2751f0(0x11a)]||_0x11b710['belowMinimum'])return null;if(isRecentlyNotified(_0x40e0e6,_0x29fb78,_0x57204b))return null;const _0x5cd525=getCliUpgradeCommand(_0x11b710);return await writeUpdateNoticeCache({..._0x40e0e6,'checkedAt':_0x57204b,'latest':_0x29fb78,'failed':![],'lastNotifiedVersion':_0x29fb78,'lastNotifiedAt':_0x57204b}),{'command':_0x5cd525,'current':_0x432fdb,'latest':_0x29fb78,'url':buildNpmVersionUrl(_0x29fb78),'message':[_0x11b710[_0x2751f0(0x102)],CLI_BIN_NAME+'\x20'+_0x29fb78+'\x20is\x20recommended,\x20current\x20'+_0x432fdb+_0x2751f0(0x110)+_0x5cd525][_0x2751f0(0x10b)](Boolean)[_0x2751f0(0x10a)]('\x20')};}catch{return null;}}
1
+ function a162_0x2b36(_0xcd4462,_0x48a9f5){_0xcd4462=_0xcd4462-0x136;const _0x5f0d8c=a162_0x5f0d();let _0x2b3641=_0x5f0d8c[_0xcd4462];return _0x2b3641;}(function(_0x513af8,_0x46acf9){const _0x378560=a162_0x2b36,_0x5e0d34=_0x513af8();while(!![]){try{const _0x11ef45=-parseInt(_0x378560(0x14e))/0x1*(parseInt(_0x378560(0x14a))/0x2)+-parseInt(_0x378560(0x143))/0x3*(-parseInt(_0x378560(0x13e))/0x4)+parseInt(_0x378560(0x144))/0x5+-parseInt(_0x378560(0x136))/0x6*(-parseInt(_0x378560(0x156))/0x7)+parseInt(_0x378560(0x14f))/0x8*(parseInt(_0x378560(0x138))/0x9)+parseInt(_0x378560(0x13c))/0xa*(-parseInt(_0x378560(0x14d))/0xb)+-parseInt(_0x378560(0x14c))/0xc*(parseInt(_0x378560(0x13a))/0xd);if(_0x11ef45===_0x46acf9)break;else _0x5e0d34['push'](_0x5e0d34['shift']());}catch(_0x5d69cc){_0x5e0d34['push'](_0x5e0d34['shift']());}}}(a162_0x5f0d,0x69f75));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 _0x6cd6c6=a162_0x2b36,_0x4e7202=process.env.LOVRABET_NO_UPDATE_NOTICE?.[_0x6cd6c6(0x149)]()['toLowerCase']();return _0x4e7202==='1'||_0x4e7202==='true'||_0x4e7202===_0x6cd6c6(0x154);}function cacheRoot(){const _0x3816ba=a162_0x2b36;return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),_0x3816ba(0x155));}function a162_0x5f0d(){const _0x3a33fe=['1031736KoGbXQ','parse','54333YubPxt','update-check.json','4957927PsElXb','\x20is\x20recommended,\x20current\x20','310340MXdZYZ','lovrabet-cli','44PmnzGT','https://www.npmjs.com/package/','object',',\x20run:\x20','belowMinimum','165147DQyiDS','3515640fjGqax','filter','needsUpgrade','stringify','join','trim','2QoTmgv','lastNotifiedVersion','36ngutBq','275dbpKmJ','86285duzBLc','816NvlYMe','stableVersion','now','/v/','number','yes','.cache','21StIXaV','lastNotifiedAt'];a162_0x5f0d=function(){return _0x3a33fe;};return a162_0x5f0d();}export function getUpdateNoticeCachePath(){const _0x52f833=a162_0x2b36;return join(cacheRoot(),_0x52f833(0x13d),_0x52f833(0x139));}async function readUpdateNoticeCache(){const _0x116bf5=a162_0x2b36;try{const _0x4fef5e=await readFile(getUpdateNoticeCachePath(),'utf8'),_0x505051=JSON[_0x116bf5(0x137)](_0x4fef5e);if(!_0x505051||typeof _0x505051!==_0x116bf5(0x140))return{};return _0x505051;}catch{return{};}}async function writeUpdateNoticeCache(_0x31cba4){const _0x2a26a7=a162_0x2b36;try{const _0x5f283d=getUpdateNoticeCachePath();await mkdir(dirname(_0x5f283d),{'recursive':!![]}),await writeFile(_0x5f283d,JSON[_0x2a26a7(0x147)](_0x31cba4,null,0x2)+'\x0a','utf8');}catch{}}function isRecentlyNotified(_0x3154df,_0x3f7134,_0x2d1858){const _0x1b4c07=a162_0x2b36;return _0x3154df[_0x1b4c07(0x14b)]===_0x3f7134&&typeof _0x3154df[_0x1b4c07(0x157)]===_0x1b4c07(0x153)&&_0x2d1858-_0x3154df[_0x1b4c07(0x157)]<UPDATE_NOTICE_TTL_MS;}export function buildNpmVersionUrl(_0x1eb335){const _0x2e1f81=a162_0x2b36;return _0x2e1f81(0x13f)+LOVRABET_NPM_PACKAGE_NAME+_0x2e1f81(0x152)+_0x1eb335;}export async function resolveLatestUpdateNotice(_0x464963){const _0x5051aa=a162_0x2b36;if(isUpdateNoticeDisabled())return null;try{const _0x3600f0=Date[_0x5051aa(0x151)](),_0x11386a=_0x464963??await checkCliVersion(),_0x2047c1=_0x11386a['currentVersion'],_0x22c91f=_0x11386a[_0x5051aa(0x150)],_0x2698c0=await readUpdateNoticeCache();if(!_0x22c91f||!_0x11386a[_0x5051aa(0x146)]||_0x11386a[_0x5051aa(0x142)])return null;if(isRecentlyNotified(_0x2698c0,_0x22c91f,_0x3600f0))return null;const _0x2c9663=getCliUpgradeCommand(_0x11386a);return await writeUpdateNoticeCache({..._0x2698c0,'checkedAt':_0x3600f0,'latest':_0x22c91f,'failed':![],'lastNotifiedVersion':_0x22c91f,'lastNotifiedAt':_0x3600f0}),{'command':_0x2c9663,'current':_0x2047c1,'latest':_0x22c91f,'url':buildNpmVersionUrl(_0x22c91f),'message':[_0x11386a['upgradeMessage'],CLI_BIN_NAME+'\x20'+_0x22c91f+_0x5051aa(0x13b)+_0x2047c1+_0x5051aa(0x141)+_0x2c9663][_0x5051aa(0x145)](Boolean)[_0x5051aa(0x148)]('\x20')};}catch{return null;}}
@@ -1 +1 @@
1
- function a161_0x2c71(){const _0x32ee14=['40296289glINoW','26jrgqbA','5bYxvqW','7280dpCqRt','2863hWBAwR','269628EmdFcv','1018844dJOKgk','27qpuKTj','22568qZQDiO','5705556fsFoie','5233170gQAFIc','unknown'];a161_0x2c71=function(){return _0x32ee14;};return a161_0x2c71();}function a161_0x3ec1(_0x274f85,_0x445346){_0x274f85=_0x274f85-0x1da;const _0x2c718c=a161_0x2c71();let _0x3ec1da=_0x2c718c[_0x274f85];return _0x3ec1da;}(function(_0x2eb4fd,_0xf9b991){const _0x390f76=a161_0x3ec1,_0x58cad8=_0x2eb4fd();while(!![]){try{const _0x5a7140=-parseInt(_0x390f76(0x1e4))/0x1+parseInt(_0x390f76(0x1df))/0x2*(-parseInt(_0x390f76(0x1e3))/0x3)+parseInt(_0x390f76(0x1db))/0x4*(parseInt(_0x390f76(0x1e0))/0x5)+-parseInt(_0x390f76(0x1dc))/0x6+parseInt(_0x390f76(0x1e2))/0x7*(-parseInt(_0x390f76(0x1da))/0x8)+-parseInt(_0x390f76(0x1e5))/0x9*(-parseInt(_0x390f76(0x1e1))/0xa)+parseInt(_0x390f76(0x1de))/0xb;if(_0x5a7140===_0xf9b991)break;else _0x58cad8['push'](_0x58cad8['shift']());}catch(_0xebe0e4){_0x58cad8['push'](_0x58cad8['shift']());}}}(a161_0x2c71,0xd6840));import{BUILD_TIME,GIT_COMMIT,VERSION}from'../generated/build-info.js';export function getCliVersion(){return VERSION;}export function getCliGitCommit(){const _0x4a9e3b=a161_0x3ec1,_0x2ab3e0=String(GIT_COMMIT);return _0x2ab3e0&&_0x2ab3e0!==_0x4a9e3b(0x1dd)?_0x2ab3e0:'';}export function getCliVersionDisplay(){const _0x569d3a=getCliGitCommit(),_0x3a19a=BUILD_TIME['slice'](0x0,0xa);if(!_0x569d3a||!_0x3a19a)return VERSION;return VERSION+'\x20('+_0x569d3a+',\x20'+_0x3a19a+')';}
1
+ (function(_0x50978b,_0x44a6e9){const _0x59b014=a163_0x4e6e,_0xede663=_0x50978b();while(!![]){try{const _0xd039d8=parseInt(_0x59b014(0x75))/0x1+parseInt(_0x59b014(0x73))/0x2+parseInt(_0x59b014(0x78))/0x3*(parseInt(_0x59b014(0x7a))/0x4)+parseInt(_0x59b014(0x7d))/0x5+parseInt(_0x59b014(0x7e))/0x6*(-parseInt(_0x59b014(0x76))/0x7)+parseInt(_0x59b014(0x79))/0x8+parseInt(_0x59b014(0x77))/0x9*(-parseInt(_0x59b014(0x74))/0xa);if(_0xd039d8===_0x44a6e9)break;else _0xede663['push'](_0xede663['shift']());}catch(_0x3b40bd){_0xede663['push'](_0xede663['shift']());}}}(a163_0x35bd,0x9b20c));import{BUILD_TIME,GIT_COMMIT,VERSION}from'../generated/build-info.js';export function getCliVersion(){return VERSION;}export function getCliGitCommit(){const _0x95739f=a163_0x4e6e,_0x576444=String(GIT_COMMIT);return _0x576444&&_0x576444!==_0x95739f(0x7b)?_0x576444:'';}export function getCliVersionDisplay(){const _0x4efcc8=a163_0x4e6e,_0x56ccbe=getCliGitCommit(),_0x3eb813=BUILD_TIME[_0x4efcc8(0x7c)](0x0,0xa);if(!_0x56ccbe||!_0x3eb813)return VERSION;return VERSION+'\x20('+_0x56ccbe+',\x20'+_0x3eb813+')';}function a163_0x4e6e(_0x16f86d,_0x55d80a){_0x16f86d=_0x16f86d-0x73;const _0x35bde6=a163_0x35bd();let _0x4e6e5f=_0x35bde6[_0x16f86d];return _0x4e6e5f;}function a163_0x35bd(){const _0x45c077=['508722QSpYxJ','748792KwpLMC','2930810HshWfW','184310ZowheO','91DwYady','36RfNEOh','795VXYoMX','8245680HYfZmD','7148KCImBn','unknown','slice','4234940eZmqqv'];a163_0x35bd=function(){return _0x45c077;};return a163_0x35bd();}
@@ -1 +1 @@
1
- (function(_0x3d1dc8,_0x2bb295){var _0x1c0e1f=a162_0x5483,_0x4abff2=_0x3d1dc8();while(!![]){try{var _0x3de46e=parseInt(_0x1c0e1f(0xd1))/0x1+parseInt(_0x1c0e1f(0xd0))/0x2*(parseInt(_0x1c0e1f(0xd2))/0x3)+parseInt(_0x1c0e1f(0xd4))/0x4+parseInt(_0x1c0e1f(0xcc))/0x5+-parseInt(_0x1c0e1f(0xce))/0x6*(-parseInt(_0x1c0e1f(0xca))/0x7)+-parseInt(_0x1c0e1f(0xc9))/0x8+parseInt(_0x1c0e1f(0xcd))/0x9*(-parseInt(_0x1c0e1f(0xcb))/0xa);if(_0x3de46e===_0x2bb295)break;else _0x4abff2['push'](_0x4abff2['shift']());}catch(_0x42e693){_0x4abff2['push'](_0x4abff2['shift']());}}}(a162_0x36bf,0x6223d));export function writeCliSideChannelLine(_0x52528a){var _0x3256f=a162_0x5483;process[_0x3256f(0xd3)][_0x3256f(0xcf)](_0x52528a+'\x0a');}function a162_0x5483(_0x68268e,_0x556e2a){_0x68268e=_0x68268e-0xc9;var _0x36bf60=a162_0x36bf();var _0x548353=_0x36bf60[_0x68268e];return _0x548353;}function a162_0x36bf(){var _0x1f0dc1=['10jzfBtX','448310CXoCLl','5234067VAqkoa','1566GMKasb','write','4754uhehic','747768GnThiz','612ClxDUs','stderr','493768GTrhTM','5458072kNReOd','5901gKohbS'];a162_0x36bf=function(){return _0x1f0dc1;};return a162_0x36bf();}
1
+ function a164_0x411d(_0x285a60,_0x20b2b6){_0x285a60=_0x285a60-0x69;var _0x2dca45=a164_0x2dca();var _0x411dba=_0x2dca45[_0x285a60];return _0x411dba;}function a164_0x2dca(){var _0x47d7b6=['602756GfduTZ','40556eXOCLa','904uEBked','12NFMiQI','108kCMUuO','write','1892810KxtjiC','365890mmmfAP','93LqvHzp','1872595StZCQl','11457RMNLlh','19413ethuJg'];a164_0x2dca=function(){return _0x47d7b6;};return a164_0x2dca();}(function(_0x275a7a,_0x3f8c0f){var _0x5bdb6a=a164_0x411d,_0x715daa=_0x275a7a();while(!![]){try{var _0xee693f=parseInt(_0x5bdb6a(0x6a))/0x1*(parseInt(_0x5bdb6a(0x6f))/0x2)+parseInt(_0x5bdb6a(0x73))/0x3*(-parseInt(_0x5bdb6a(0x6c))/0x4)+parseInt(_0x5bdb6a(0x74))/0x5+-parseInt(_0x5bdb6a(0x6e))/0x6*(parseInt(_0x5bdb6a(0x72))/0x7)+-parseInt(_0x5bdb6a(0x6d))/0x8*(-parseInt(_0x5bdb6a(0x69))/0x9)+-parseInt(_0x5bdb6a(0x71))/0xa+-parseInt(_0x5bdb6a(0x6b))/0xb;if(_0xee693f===_0x3f8c0f)break;else _0x715daa['push'](_0x715daa['shift']());}catch(_0x25792b){_0x715daa['push'](_0x715daa['shift']());}}}(a164_0x2dca,0xdca40));export function writeCliSideChannelLine(_0x1a75d2){var _0x444e60=a164_0x411d;process['stderr'][_0x444e60(0x70)](_0x1a75d2+'\x0a');}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lovrabet/lovrabet-cli",
3
- "version": "2.3.1-beta.2",
3
+ "version": "2.3.1-beta.4",
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": [
@@ -51,6 +51,7 @@
51
51
  "verify:bundled-jq": "node scripts/verify-bundled-jq.mjs",
52
52
  "validate:cli-version-policy": "node scripts/validate-cli-version-policy.mjs",
53
53
  "regression:release-smoke": "node scripts/regression-release-smoke.mjs",
54
+ "release:summary:prepare": "node scripts/release-summary-preparation.mjs",
54
55
  "deploy:verify": "node scripts/deploy-verify.mjs",
55
56
  "pack:dry-run-summary": "node scripts/package-dry-run-summary.mjs",
56
57
  "verify:release-package": "node scripts/verify-release-package.mjs",
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: lovrabet
3
3
  displayName: Lovrabet 运行态 CLI
4
- version: 2.3.1-beta.2
4
+ version: 2.3.1-beta.4
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`,选择 `cn` / `id`;独立部署使用 `--domain-config <file>`。该命令固定维护全局连接配置,不需要 `--global`
52
+ - **首次使用或切换节点**:执行 `lovrabet config init`,选择当前已开放国家/地区;独立部署优先导入 `lovrabet-routing/v1` 清单,清单同时声明 Domain、`cdn.libraries` 与 `cdn.lovrabet`,供两个 CLI 共用。该命令固定维护全局连接配置
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`
@@ -72,7 +72,7 @@ npm 包会自动安装同版本 Built-in Skill。若 `lovrabet doctor` 报告缺
72
72
  - **不要擅自加 `--global` 或修改本地配置** — 见上文「本地配置原则」;仅在用户明确要求或文档说明的场景使用配置写命令。
73
73
  - **不要主动创建工作目录配置** — 即使连续多次在同一目录使用同一个 `--app` / `--appcode`,也只能提醒用户是否要写入当前目录 `.lovrabet.json`;必须得到用户明确同意后,才可执行 `workspace init/use`。
74
74
  - **不要回显或记录真实凭证** — 如果用户提供 AccessKey,只用于本次认证命令;不要在最终答复、日志、文档片段或排障输出里展示真实值。
75
- - **禁止通过修改配置文件提升权限** — 不得为了完成任务而修改 `.lovrabet.json`、环境变量或缓存内容来抬高 `riskLevel`、切换到并非用户明确授权的 `accessKey`、伪造 `defaultApp` / `appcode` / `env`、或借此突破当前权限边界。权限不足时,应明确说明限制,并要求用户提供合法的目标应用、凭证或确认范围。
75
+ - **禁止通过修改配置文件提升权限** — 不得为了完成任务而修改 `.lovrabet.json`、环境变量或缓存内容来抬高 `riskLevel`、切换到并非用户明确授权的 `accessKey`、伪造 `defaultApp` / `appcode` 或连接路由,或借此突破当前权限边界。权限不足时,应明确说明限制,并要求用户提供合法的目标应用、凭证或确认范围。
76
76
  - **不要访问未发布应用的数据** — `app list` 默认只展示已发布应用;即使通过 `app list --include-unpublished` 或缓存看到未发布应用,也不要把它作为 `dataset` / `data` / `sql` / `bff` 的目标。
77
77
  - **不要臆测当前登录用户** — 只要任务依赖“当前是谁在登录 / 当前 AK 属于谁”,先执行 `lovrabet auth info`,再继续判断应用、权限或数据可见性。
78
78
  - **运行态业务发现与实现资产隔离** — 运行态发现业务能力,不枚举实现资产。简单基础事实查询优先通过已治理 Dataset 的字段、关联和只读操作回答;稳定规则由业务 Skill 或可信 Service Tree 绑定到已发布入口。未绑定的 Custom SQL/Backend Function 实现资产不进入运行态候选。
@@ -20,7 +20,7 @@
20
20
 
21
21
  优先检查:
22
22
 
23
- 1. 当前 `env` 是否正确
23
+ 1. `lovrabet doctor` 显示的国家/地区和最终 Domain 是否正确
24
24
  2. 当前 AK 对应的是否是预期用户:`lovrabet auth info`
25
25
  3. `defaultApp` 是否能在 cache 中解析到 appcode
26
26
  4. 是否需要先刷新 app cache
@@ -32,7 +32,6 @@ lovrabet app list --no-cache
32
32
  如果你怀疑连接配置或认证信息不符合预期,比如:
33
33
 
34
34
  - `defaultApp` 明显不对
35
- - `env` 和预期不一致
36
35
  - `auth info` 返回的用户不是你预期的账号
37
36
  - `lovrabet doctor` 显示的 region 或 Domain 不符合预期
38
37
 
@@ -40,13 +39,12 @@ lovrabet app list --no-cache
40
39
 
41
40
  ```bash
42
41
  lovrabet config init --region cn
43
- lovrabet config set env daily --global
44
42
  lovrabet auth login --access-key <ACCESS_KEY>
45
43
  ```
46
44
 
47
45
  如果业务节点在印尼,把第一条改成 `lovrabet config init --region id`。企业独立部署使用 `lovrabet config init --domain-config <file>`。
48
46
 
49
- `config init` 只替换全局 region/Domain 路由字段,`auth login` 只替换目标作用域的 AccessKey;两者都保留其他配置。当前目录配置仍会覆盖全局同名字段,最后执行 `lovrabet doctor` 核对最终生效值。
47
+ `config init` 只替换全局 region/Domain 路由字段,`auth login` 只替换目标作用域的 AccessKey;两者都保留其他配置。最后执行 `lovrabet doctor` 核对最终生效的国家/地区和 Domain。
50
48
 
51
49
  ## `defaultApp` 已有,但仍然找不到 appcode
52
50
 
@@ -91,5 +89,5 @@ lovrabet doctor
91
89
 
92
90
  - 配置来源不清楚
93
91
  - `defaultApp` / `currentApp` 判断异常
94
- - 环境和实际请求不一致
92
+ - 国家/地区或 Domain 和实际请求不一致
95
93
  - 认证信息看起来存在,但命令仍失败
@@ -6,7 +6,7 @@
6
6
 
7
7
  ## config init — 初始化连接配置
8
8
 
9
- 固定写入全局配置 `~/.lovrabet.json`,不需要也不接受用 `--global` 改变目标。它只配置连接路由,不登录、不保存 AccessKey,也不建立当前目录的应用绑定。
9
+ 固定写入全局配置 `~/.lovrabet.json`,不需要额外的作用域参数。它只配置连接路由,不登录、不保存 AccessKey,也不建立当前目录的应用绑定。
10
10
 
11
11
  交互模式用方向键选择 `Mainland China (cn)` 或 `Indonesia (id)`;当前不提供 `global`。非交互且未传 region/Domain 时默认 `cn`。自动化示例:
12
12
 
@@ -25,7 +25,31 @@ lovrabet config init --domain-config ./lovrabet-domains.json
25
25
 
26
26
  ### 独立部署模式
27
27
 
28
- Domain 文件必须是 JSON 对象,只允许以下五个字段,且至少提供一个:
28
+ 推荐使用两个 CLI 共用的版本化企业路由清单:
29
+
30
+ ```json
31
+ {
32
+ "protocol": "lovrabet-routing/v1",
33
+ "kind": "enterprise",
34
+ "cdn": {
35
+ "libraries": "https://cdnjs.cloudflare.com/ajax/libs",
36
+ "lovrabet": "https://g.lovrabet.com"
37
+ },
38
+ "domains": {
39
+ "userDomain": "https://user.customer.example.com",
40
+ "apiDomain": "https://api.customer.example.com",
41
+ "runtimeDomain": "https://runtime.customer.example.com",
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
+ },
47
+ "appDomain": "https://app.customer.example.com"
48
+ }
49
+ }
50
+ ```
51
+
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 继续兼容,只允许以下五个字段,且至少提供一个:
29
53
 
30
54
  ```json
31
55
  {
@@ -37,11 +61,13 @@ Domain 文件必须是 JSON 对象,只允许以下五个字段,且至少提
37
61
  }
38
62
  ```
39
63
 
40
- 也可以用 `--user-domain`、`--api-domain`、`--runtime-domain`、`--skill-domain`、`--kb-domain` 逐项传入;显式 flag 覆盖文件里的同名字段。所有值必须是无账号、路径、query 和 fragment 的 HTTPS origin。
64
+ 也可以用 `--user-domain`、`--api-domain`、`--runtime-domain`、`--skill-domain`、`--kb-domain` 逐项传入;显式 flag 只覆盖旧扁平文件里的同名字段。所有值必须是无账号、路径、query 和 fragment 的 HTTPS origin。
65
+
66
+ 新版企业清单会保存为带协议标识的 `routing` 对象,并整体优先于旧顶层 Domain;旧扁平配置继续保持既有回退行为。
41
67
 
42
- 进入独立部署模式会删除全局 `region` 和旧 Domain 字段,再写入本次提供的 Domain。未提供的 Domain 仍按默认 `cn` 节点和当前 `env` 回退到 Lovrabet 公共服务。企业部署需要所有请求进入私有服务时,应完整提供五个 Domain;KB Service 下游地址由 Runtime Java 独立配置。
68
+ 进入旧扁平独立部署模式会删除全局 `region` 和旧 Domain 字段,再写入本次提供的 Domain。未提供的 Domain 仍按默认 `cn` 节点和当前 `env` 回退到 Lovrabet 公共服务。企业部署需要所有请求进入私有服务时,应完整提供五个 Domain;KB Service 下游地址由 Runtime Java 独立配置。
43
69
 
44
- 两种模式都保留 AccessKey、env、format、locale、应用绑定等其他全局配置。当前目录 `.lovrabet.json` 的同名字段仍会覆盖全局配置;初始化后用 `lovrabet doctor` 核对最终生效的 region 和 API Endpoint。
70
+ 两种模式都保留 AccessKey、env、format、locale、应用绑定等其他全局配置。当前目录 `.lovrabet.json` 的旧扁平同名字段仍会覆盖全局旧扁平配置;初始化后用 `lovrabet doctor` 核对最终生效的国家/地区和五个 Domain。
45
71
 
46
72
  ## config list — 查看完整配置
47
73
 
@@ -65,7 +91,7 @@ lovrabet config get <key>
65
91
 
66
92
  | 参数 | 类型 | 说明 |
67
93
  |------|------|------|
68
- | `<key>` | string | **必填** — 配置键名(如 `appcode`、`env`、`riskLevel`) |
94
+ | `<key>` | string | **必填** — 配置键名(如 `appcode`、`format`、`riskLevel`) |
69
95
 
70
96
  **示例**:
71
97
 
@@ -73,8 +99,8 @@ lovrabet config get <key>
73
99
  lovrabet config get appcode
74
100
  # 输出: app-xxxxxxxx
75
101
 
76
- lovrabet config get env
77
- # 输出: daily
102
+ lovrabet config get format
103
+ # 输出: compress
78
104
  ```
79
105
 
80
106
  ## config set — 写入配置项
@@ -102,11 +128,10 @@ lovrabet config set <key> <value>
102
128
 
103
129
  ```bash
104
130
  # 写入当前目录配置(默认;须在含 .lovrabet.json 的目录下执行)
105
- lovrabet config set env daily
106
131
  lovrabet config set format compress
107
132
 
108
133
  # 写入全局配置(任意目录可用,需用户明确意图)
109
- lovrabet config set env daily --global
134
+ lovrabet config set format compress --global
110
135
 
111
136
  # 配置 User AK(client-ak)
112
137
  lovrabet config set accessKey <ACCESS_KEY>
@@ -3,9 +3,9 @@
3
3
  `.lovrabet.json` 现在只承载**用户意图配置**,不再承载平台应用目录。
4
4
 
5
5
  这意味着:
6
- - `accessKey` / `env` / `format` / `riskLevel` / `defaultApp` 等仍然放在 `.lovrabet.json`
6
+ - `accessKey` / `format` / `riskLevel` / `defaultApp` 等仍然放在 `.lovrabet.json`
7
7
  - 当前 AK 在平台上可见的应用列表,放在 `~/.lovrabet/cache/.../my-apps.json`
8
- - 首次使用推荐执行 `lovrabet config init` 配置全局节点;未执行时仍按默认中国节点 `cn` 工作
8
+ - 首次使用推荐执行 `lovrabet config init` 配置全局节点。未执行时仍按默认中国大陆节点 `cn` 工作
9
9
 
10
10
  只自动读取 `.lovrabet.json`;`.lovrabetrc` 和其他 CLI 的配置文件不参与运行态配置发现。需要导入外部配置时,显式执行 `lovrabet app import --file <path>`。
11
11
 
@@ -14,7 +14,6 @@
14
14
  ```json
15
15
  {
16
16
  "appcode": "app-xxxxxxxx",
17
- "env": "daily",
18
17
  "accessKey": "<ACCESS_KEY>"
19
18
  }
20
19
  ```
@@ -24,7 +23,6 @@
24
23
  ```json
25
24
  {
26
25
  "accessKey": "<ACCESS_KEY>",
27
- "env": "daily",
28
26
  "defaultApp": "crm"
29
27
  }
30
28
  ```
@@ -36,7 +34,7 @@
36
34
  平台应用列表缓存路径:
37
35
 
38
36
  ```text
39
- ~/.lovrabet/cache/<env>/<ak-fingerprint>/my-apps.json
37
+ ~/.lovrabet/cache/.../my-apps.json
40
38
  ```
41
39
 
42
40
  这个 cache 由以下命令维护:
@@ -49,7 +47,6 @@
49
47
  | 字段 | 类型 | 默认值 | 说明 |
50
48
  |------|------|--------|------|
51
49
  | `appcode` | string | — | 兼容单应用模式,直接指定 appcode |
52
- | `env` | string | `production` | 环境:`production` / `development` / `daily` |
53
50
  | `accessKey` | string | — | User Access Key(client-ak) |
54
51
  | `format` | string | — | 默认输出格式:`json` / `pretty` / `compress` |
55
52
  | `pageSize` | number | — | 默认分页大小 |
@@ -62,23 +59,16 @@
62
59
  | `skillDomain` | string | 节点默认 | SkillHub HTTPS origin 覆盖 |
63
60
  | `kbDomain` | string | 节点默认 | Personal KB 管理与 `kb search` Runtime 网关 HTTPS origin 覆盖 |
64
61
 
65
- 五个 Domain 各自独立覆盖同名服务地址。没有显式配置的字段按 `region` 和 `env` 使用内置值;`development` 与 `daily` 共用非生产地址。KB Service 下游地址由 Runtime Java 配置管理。当前开放的官方节点如下:
66
-
67
- | region | env | userDomain | apiDomain | runtimeDomain | skillDomain | kbDomain |
68
- |--------|-----|------------|-----------|---------------|-------------|----------|
69
- | `cn` | `production` | `https://user.lovrabet.com` | `https://api.lovrabet.com` | `https://runtime.lovrabet.com` | `https://skills.lovrabet.com` | `https://runtime.lovrabet.com` |
70
- | `cn` | `development` / `daily` | `https://user-daily.lovrabet.com` | `https://daily-api.lovrabet.com` | `https://daily-runtime.lovrabet.com` | `https://skills-daily.lovrabet.com` | `https://daily-runtime.lovrabet.com` |
71
- | `id` | `production` | `https://user.lovrabet.id` | `https://api.lovrabet.id` | `https://runtime.lovrabet.id` | `https://skills.lovrabet.id` | `https://runtime.lovrabet.id` |
72
- | `id` | `development` / `daily` | `https://user-daily.lovrabet.id` | `https://daily-api.lovrabet.id` | `https://daily-runtime.lovrabet.id` | `https://skills-daily.lovrabet.id` | `https://daily-runtime.lovrabet.id` |
62
+ 五个 Domain 各自独立覆盖同名服务地址。没有显式配置时,CLI 按 `region` 和 `env` 使用内置节点:`cn` 对应中国大陆,`id` 对应 Indonesia,且 Indonesia 的最终服务地址统一使用 `*.lovrabet.id`。`development` 与 `daily` 共用非生产地址;KB Service 下游地址由 Runtime Java 配置管理。执行 `lovrabet doctor` 可查看当前实际生效的五个 Domain,无需理解内部地址层级。
73
63
 
74
64
  `config init` 的完整模式切换、独立部署 JSON 和校验规则见 [配置管理](lovrabet-config-commands.md#config-init--初始化连接配置)。
75
65
 
76
66
  ## 解析优先级
77
67
 
78
68
  ```
79
- CLI flag (--appcode, --env, --format, --app ...)
69
+ CLI flag (--appcode, --format, --app ...)
80
70
  ↓
81
- 环境变量 (LOVRABET_APPCODE, LOVRABET_ENV ...)
71
+ 环境变量 (LOVRABET_APPCODE, LOVRABET_FORMAT ...)
82
72
  ↓
83
73
  当前目录 .lovrabet.json(兼容本地配置)
84
74
  ↓
@@ -101,7 +91,6 @@ CLI flag (--appcode, --env, --format, --app ...)
101
91
  | 环境变量 | 对应字段 |
102
92
  |----------|----------|
103
93
  | `LOVRABET_APPCODE` | `appcode` |
104
- | `LOVRABET_ENV` | `env` |
105
94
  | `LOVRABET_ACCESS_KEY` | `accessKey` |
106
95
  | `LOVRABET_FORMAT` | `format` |
107
96
  | `LOVRABET_PAGE_SIZE` | `pageSize` |
@@ -121,7 +110,7 @@ CLI flag (--appcode, --env, --format, --app ...)
121
110
  - `apps`:当前目录显式声明时整体覆盖全局 `apps`;当前目录未声明时使用全局 `apps`
122
111
  - `inherit` 不是受支持的配置项;旧字段会被忽略,可用 `lovrabet config delete inherit` 清理
123
112
 
124
- 因此,`lovrabet config init` 虽然固定更新全局连接配置,当前目录文件中的 `region` 或 Domain 仍具有更高优先级。初始化后可执行 `lovrabet doctor` 查看最终生效值。
113
+ 因此,`lovrabet config init` 固定更新全局连接配置;当前目录文件中的兼容路由字段仍可能覆盖全局同名字段。初始化后可执行 `lovrabet doctor` 查看最终生效值。
125
114
 
126
115
  ## 示例
127
116
 
@@ -130,7 +119,6 @@ CLI flag (--appcode, --env, --format, --app ...)
130
119
  ```json
131
120
  {
132
121
  "accessKey": "<ACCESS_KEY>",
133
- "env": "daily",
134
122
  "defaultApp": "crm"
135
123
  }
136
124
  ```
@@ -2,8 +2,8 @@
2
2
  "schemaVersion": 1,
3
3
  "name": "lovrabet",
4
4
  "packageName": "@lovrabet/lovrabet-cli",
5
- "packageVersion": "2.3.1-beta.2",
6
- "skillVersion": "2.3.1-beta.2",
5
+ "packageVersion": "2.3.1-beta.4",
6
+ "skillVersion": "2.3.1-beta.4",
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": "3a473f03db5d7d55bc3007abf7659e5d9dbe90a6b65f729d751c68c79510c059"
40
+ "digest": "5385142daa77dcdfc19aa51c9d612f34eccc01544777048316ecacb1bc094005"
41
41
  }