@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.
- package/README.md +53 -1
- package/lib/cli.js +1 -1
- package/lib/commands/api-doc/index.js +1 -1
- package/lib/commands/app/cache.js +1 -1
- package/lib/commands/app/definitions.js +1 -1
- package/lib/commands/app/eligibility.js +1 -1
- package/lib/commands/app/mock-loader.js +1 -1
- package/lib/commands/app/remote-source.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/artifact/index.js +1 -1
- package/lib/commands/auth/device.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/auth/prompt.js +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/exec.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/common/config-policy.js +1 -1
- package/lib/commands/common/constraints.js +1 -1
- package/lib/commands/common/flags.d.ts +2 -0
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/config/definitions.js +1 -1
- package/lib/commands/config/init.d.ts +2 -0
- package/lib/commands/config/init.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/sdk-doc.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/notification/shared.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/permit/dataset-get.js +1 -1
- package/lib/commands/permit/dataset-set.js +1 -1
- package/lib/commands/permit/index.js +1 -1
- package/lib/commands/permit/page-get.js +1 -1
- package/lib/commands/permit/page-set.js +1 -1
- package/lib/commands/permit/role-menus-set.js +1 -1
- package/lib/commands/permit/role-menus.js +1 -1
- package/lib/commands/permit/shared.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/commands/create.js +1 -1
- package/lib/commands/skill/commands/diagram.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/user-account/bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/domain-config.d.ts +33 -1
- package/lib/config/domain-config.js +1 -1
- package/lib/config/schema.d.ts +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.d.ts +0 -51
- package/lib/constant/product.js +1 -1
- package/lib/constant/region.d.ts +3 -5
- package/lib/constant/region.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/kb-search-client.js +1 -1
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/generated/official-routing.d.ts +59 -0
- package/lib/generated/official-routing.js +1 -0
- package/lib/generated/routing-contract.d.ts +9 -0
- package/lib/generated/routing-contract.js +1 -0
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/install-target.js +1 -1
- package/lib/skills/runtime-skill-sync/links.js +1 -1
- package/lib/skills/runtime-skill-sync/list-local.js +1 -1
- package/lib/skills/runtime-skill-sync/local-files.js +1 -1
- package/lib/skills/runtime-skill-sync/materialize.js +1 -1
- package/lib/skills/runtime-skill-sync/metadata.js +1 -1
- package/lib/skills/runtime-skill-sync/paths.js +1 -1
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/utils/access-key-redaction.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/cli-version-check.js +1 -1
- package/lib/utils/cli-version-policy.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/lossless-json.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +2 -1
- package/skills/lovrabet/SKILL.md +3 -3
- package/skills/lovrabet/guides/troubleshooting.md +3 -5
- package/skills/lovrabet/references/lovrabet-config-commands.md +35 -10
- package/skills/lovrabet/references/lovrabet-config.md +7 -19
- package/skills/lovrabet.manifest.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
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?.();}
|
package/lib/utils/params.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
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;}
|
package/lib/utils/platform.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
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(
|
|
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;}}
|
package/lib/utils/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
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(
|
|
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.
|
|
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",
|
package/skills/lovrabet/SKILL.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lovrabet
|
|
3
3
|
displayName: Lovrabet 运行态 CLI
|
|
4
|
-
version: 2.3.1-beta.
|
|
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
|
|
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`
|
|
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.
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
64
|
+
也可以用 `--user-domain`、`--api-domain`、`--runtime-domain`、`--skill-domain`、`--kb-domain` 逐项传入;显式 flag 只覆盖旧扁平文件里的同名字段。所有值必须是无账号、路径、query 和 fragment 的 HTTPS origin。
|
|
65
|
+
|
|
66
|
+
新版企业清单会保存为带协议标识的 `routing` 对象,并整体优先于旧顶层 Domain;旧扁平配置继续保持既有回退行为。
|
|
41
67
|
|
|
42
|
-
|
|
68
|
+
进入旧扁平独立部署模式会删除全局 `region` 和旧 Domain 字段,再写入本次提供的 Domain。未提供的 Domain 仍按默认 `cn` 节点和当前 `env` 回退到 Lovrabet 公共服务。企业部署需要所有请求进入私有服务时,应完整提供五个 Domain;KB Service 下游地址由 Runtime Java 独立配置。
|
|
43
69
|
|
|
44
|
-
两种模式都保留 AccessKey、env、format、locale、应用绑定等其他全局配置。当前目录 `.lovrabet.json`
|
|
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`、`
|
|
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
|
|
77
|
-
# 输出:
|
|
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
|
|
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` / `
|
|
6
|
+
- `accessKey` / `format` / `riskLevel` / `defaultApp` 等仍然放在 `.lovrabet.json`
|
|
7
7
|
- 当前 AK 在平台上可见的应用列表,放在 `~/.lovrabet/cache/.../my-apps.json`
|
|
8
|
-
- 首次使用推荐执行 `lovrabet config init`
|
|
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
|
|
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
|
|
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, --
|
|
69
|
+
CLI flag (--appcode, --format, --app ...)
|
|
80
70
|
↓
|
|
81
|
-
环境变量 (LOVRABET_APPCODE,
|
|
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`
|
|
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.
|
|
6
|
-
"skillVersion": "2.3.1-beta.
|
|
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": "
|
|
40
|
+
"digest": "5385142daa77dcdfc19aa51c9d612f34eccc01544777048316ecacb1bc094005"
|
|
41
41
|
}
|