@lovrabet/lovrabet-cli 2.3.1 → 2.3.2-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -8
- 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.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 +1 -2
- 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.d.ts +0 -3
- 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.d.ts +2 -0
- 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 +6 -14
- 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.d.ts +0 -3
- 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.js +1 -1
- 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.d.ts +5 -10
- 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 +1 -5
- package/lib/generated/official-routing.js +1 -1
- package/lib/generated/routing-contract.d.ts +3 -7
- package/lib/generated/routing-contract.js +1 -1
- 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 +1 -1
- package/skills/lovrabet/SKILL.md +4 -4
- package/skills/lovrabet/guides/role-and-permission-workflow.md +6 -4
- package/skills/lovrabet/references/lovrabet-config-commands.md +7 -11
- package/skills/lovrabet/references/lovrabet-config.md +2 -3
- package/skills/lovrabet/references/lovrabet-doctor.md +1 -1
- package/skills/lovrabet/references/lovrabet-kb-workflow.md +1 -1
- package/skills/lovrabet/references/lovrabet-notification-config-list.md +2 -8
- package/skills/lovrabet.manifest.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a159_0x1de03d=a159_0x4e63;(function(_0x4c02ba,_0x1aa2f0){const _0x22b27e=a159_0x4e63,_0x316596=_0x4c02ba();while(!![]){try{const _0x4393f0=-parseInt(_0x22b27e(0x86))/0x1+parseInt(_0x22b27e(0x98))/0x2+-parseInt(_0x22b27e(0x94))/0x3+-parseInt(_0x22b27e(0x91))/0x4*(-parseInt(_0x22b27e(0x8e))/0x5)+-parseInt(_0x22b27e(0x96))/0x6*(-parseInt(_0x22b27e(0x95))/0x7)+-parseInt(_0x22b27e(0x8d))/0x8*(-parseInt(_0x22b27e(0x8f))/0x9)+-parseInt(_0x22b27e(0x8c))/0xa*(parseInt(_0x22b27e(0x87))/0xb);if(_0x4393f0===_0x1aa2f0)break;else _0x316596['push'](_0x316596['shift']());}catch(_0x432c4d){_0x316596['push'](_0x316596['shift']());}}}(a159_0x378e,0x5e513));const JSON_NUMBER_PATTERN=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/,MAX_SAFE_INTEGER=BigInt(Number[a159_0x1de03d(0x8b)]),MIN_SAFE_INTEGER=BigInt(Number[a159_0x1de03d(0x97)]);let restoreResponseJsonParser,responseJsonPrototype,originalResponseJsonDescriptor;function a159_0x4e63(_0x131f31,_0x161028){_0x131f31=_0x131f31-0x84;const _0x378e11=a159_0x378e();let _0x4e63e0=_0x378e11[_0x131f31];return _0x4e63e0;}function isUnsafeIntegerLiteral(_0x1beca2){const _0x22ce25=a159_0x1de03d;if(_0x1beca2[_0x22ce25(0x92)]('.')||_0x1beca2[_0x22ce25(0x92)]('e')||_0x1beca2['includes']('E'))return![];const _0x5961d5=BigInt(_0x1beca2);return _0x5961d5>MAX_SAFE_INTEGER||_0x5961d5<MIN_SAFE_INTEGER;}function quoteUnsafeIntegerLiterals(_0x47ea05){const _0x1e5c6c=a159_0x1de03d;let _0x4061f2='',_0x558287=![],_0x16c206=![];for(let _0x509f6c=0x0;_0x509f6c<_0x47ea05[_0x1e5c6c(0x8a)];){const _0x3120bb=_0x47ea05[_0x509f6c];if(_0x558287){_0x4061f2+=_0x3120bb,_0x509f6c+=0x1;if(_0x16c206)_0x16c206=![];else{if(_0x3120bb==='\x5c')_0x16c206=!![];else _0x3120bb==='\x22'&&(_0x558287=![]);}continue;}if(_0x3120bb==='\x22'){_0x558287=!![],_0x4061f2+=_0x3120bb,_0x509f6c+=0x1;continue;}if(_0x3120bb==='-'||_0x3120bb>='0'&&_0x3120bb<='9'){const _0x412ee4=JSON_NUMBER_PATTERN[_0x1e5c6c(0x89)](_0x47ea05[_0x1e5c6c(0x84)](_0x509f6c))?.[0x0];if(_0x412ee4){_0x4061f2+=isUnsafeIntegerLiteral(_0x412ee4)?'\x22'+_0x412ee4+'\x22':_0x412ee4,_0x509f6c+=_0x412ee4[_0x1e5c6c(0x8a)];continue;}}_0x4061f2+=_0x3120bb,_0x509f6c+=0x1;}return _0x4061f2;}function a159_0x378e(){const _0x595305=['5WHgPsa','7443sTfpmO','defineProperty','2340092DDUqEr','includes','undefined','2036826qlyDkE','7YuOkGy','3046980ZlgmYM','MIN_SAFE_INTEGER','1384560uKiets','parse','json','slice','text','648047RvCnbd','22armDnS','getOwnPropertyDescriptor','exec','length','MAX_SAFE_INTEGER','4126090mMCtQN','7288sFekOV'];a159_0x378e=function(){return _0x595305;};return a159_0x378e();}export function parseLosslessJson(_0x596645){const _0x577375=a159_0x1de03d;return JSON[_0x577375(0x99)](quoteUnsafeIntegerLiterals(_0x596645));}export function installLosslessJsonResponseParser(){const _0x3af9e7=a159_0x1de03d;if(typeof Response===_0x3af9e7(0x93))return()=>{};if(restoreResponseJsonParser)return restoreResponseJsonParser;return responseJsonPrototype=Response['prototype'],originalResponseJsonDescriptor=Object[_0x3af9e7(0x88)](responseJsonPrototype,_0x3af9e7(0x9a)),Object[_0x3af9e7(0x90)](responseJsonPrototype,_0x3af9e7(0x9a),{...originalResponseJsonDescriptor??{'configurable':!![],'enumerable':![],'writable':!![]},'value':async function _0x279516(){const _0x37298d=_0x3af9e7;return parseLosslessJson(await this[_0x37298d(0x85)]());}}),restoreResponseJsonParser=()=>{const _0x18fddc=_0x3af9e7;if(!responseJsonPrototype)return;originalResponseJsonDescriptor?Object[_0x18fddc(0x90)](responseJsonPrototype,'json',originalResponseJsonDescriptor):delete responseJsonPrototype[_0x18fddc(0x9a)],responseJsonPrototype=undefined,originalResponseJsonDescriptor=undefined,restoreResponseJsonParser=undefined;},restoreResponseJsonParser;}export function restoreLosslessJsonResponseParser(){restoreResponseJsonParser?.();}
|
package/lib/utils/params.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x513d30,_0x4ee8f6){const _0x168eb0=a160_0x4a33,_0x964447=_0x513d30();while(!![]){try{const _0x3f89a0=-parseInt(_0x168eb0(0xf4))/0x1+parseInt(_0x168eb0(0xef))/0x2+-parseInt(_0x168eb0(0xe2))/0x3+-parseInt(_0x168eb0(0xe1))/0x4+parseInt(_0x168eb0(0xe0))/0x5+parseInt(_0x168eb0(0xe8))/0x6*(-parseInt(_0x168eb0(0xf3))/0x7)+parseInt(_0x168eb0(0xeb))/0x8*(parseInt(_0x168eb0(0xed))/0x9);if(_0x3f89a0===_0x4ee8f6)break;else _0x964447['push'](_0x964447['shift']());}catch(_0x4905ed){_0x964447['push'](_0x964447['shift']());}}}(a160_0xb11b,0xc8e02));import{CliErrors}from'../errors.js';function a160_0x4a33(_0xbc9c41,_0x2df38d){_0xbc9c41=_0xbc9c41-0xdf;const _0xb11bcc=a160_0xb11b();let _0x4a3360=_0xb11bcc[_0xbc9c41];return _0x4a3360;}function a160_0xb11b(){const _0x2a4802=['object','53319CMTGTv','1501661EZFINx','string','Example:\x20--params\x20\x27{\x22id\x22:[1,2,3],\x22status\x22:\x22done\x22}\x27','isArray','batchCreate\x20--params\x20must\x20be\x20a\x20JSON\x20array\x20or\x20{\x22items\x22:[...]}','test','2491195wNbtEN','3497924MKZXfW','1847451DhlnVk','isSafeInteger','validation','data\x20update\x20can\x20update\x20at\x20most\x20','\x20records\x20per\x20call;\x20received\x20','id[','966gIJeje','data\x20update\x20--params.','data\x20update\x20id\x20array\x20cannot\x20be\x20empty.','33477544KbyVyk','length','9FBssFY','map','716300mfFKty','number','items'];a160_0xb11b=function(){return _0x2a4802;};return a160_0xb11b();}import{parseLosslessJson}from'../utils/lossless-json.js';export const MAX_DATA_UPDATE_IDS=0x3e8;export function parseJsonParams(_0x12e480){const _0xd5cdf2=a160_0x4a33;if(!_0x12e480)return undefined;try{return parseLosslessJson(_0x12e480);}catch{throw CliErrors[_0xd5cdf2(0xe4)]('Invalid\x20JSON\x20for\x20--params:\x20'+_0x12e480);}}export function parseJsonParamsValue(_0x56c678){const _0x551421=a160_0x4a33;if(!_0x56c678)return undefined;try{return parseLosslessJson(_0x56c678);}catch{throw CliErrors[_0x551421(0xe4)]('Invalid\x20JSON\x20for\x20--params:\x20'+_0x56c678);}}export function parseBatchCreateItemsFromParams(_0x1ac55d){const _0x3b1ccf=a160_0x4a33;if(Array[_0x3b1ccf(0xf7)](_0x1ac55d))return _0x1ac55d;if(_0x1ac55d!==null&&_0x1ac55d!==undefined&&typeof _0x1ac55d==='object'&&Array['isArray'](_0x1ac55d[_0x3b1ccf(0xf1)]))return _0x1ac55d[_0x3b1ccf(0xf1)];throw CliErrors['validation'](_0x3b1ccf(0xf8),'Example:\x20--params\x20\x27[{\x22name\x22:\x22a\x22},{\x22name\x22:\x22b\x22}]\x27');}function parseDataUpdateId(_0x5b7844,_0x1d1bce){const _0x35d105=a160_0x4a33;if(typeof _0x5b7844===_0x35d105(0xf0)&&Number[_0x35d105(0xe3)](_0x5b7844)&&_0x5b7844>0x0)return _0x5b7844;if(typeof _0x5b7844===_0x35d105(0xf5)){if(/^[1-9]\d*$/[_0x35d105(0xdf)](_0x5b7844))return _0x5b7844;}throw CliErrors[_0x35d105(0xe4)](_0x35d105(0xe9)+_0x1d1bce+'\x20must\x20be\x20a\x20positive\x20integer\x20or\x20numeric\x20string.');}export function parseUpdateIdsFromParams(_0x5c66ab){const _0x462072=a160_0x4a33;if(_0x5c66ab===null||_0x5c66ab===undefined||typeof _0x5c66ab!==_0x462072(0xf2)||Array[_0x462072(0xf7)](_0x5c66ab))throw CliErrors[_0x462072(0xe4)]('data\x20update\x20--params\x20must\x20be\x20a\x20JSON\x20object\x20with\x20id.',_0x462072(0xf6));const _0x53da88=_0x5c66ab['id'];if(_0x53da88===undefined||_0x53da88===null)throw CliErrors['validation']('data\x20update\x20requires\x20\x22id\x22\x20in\x20--params.',_0x462072(0xf6));const _0x53b6c2=Array[_0x462072(0xf7)](_0x53da88)?_0x53da88:[_0x53da88];if(_0x53b6c2[_0x462072(0xec)]===0x0)throw CliErrors[_0x462072(0xe4)](_0x462072(0xea));if(_0x53b6c2[_0x462072(0xec)]>MAX_DATA_UPDATE_IDS)throw CliErrors[_0x462072(0xe4)](_0x462072(0xe5)+MAX_DATA_UPDATE_IDS+_0x462072(0xe6)+_0x53b6c2[_0x462072(0xec)]+'.');return _0x53b6c2[_0x462072(0xee)]((_0x1a0b5c,_0x23e9bc)=>parseDataUpdateId(_0x1a0b5c,Array[_0x462072(0xf7)](_0x53da88)?_0x462072(0xe7)+_0x23e9bc+']':'id'));}export function normalizeUpdateParamsForRuntime(_0x532f78,_0x38d366){const _0x5ead31=a160_0x4a33;if(Array[_0x5ead31(0xf7)](_0x532f78['id'])&&_0x38d366['length']>0x1)return{..._0x532f78,'id':_0x38d366['join'](',')};return _0x532f78;}
|
package/lib/utils/platform.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a161_0x23c1(){const _0x41f138=['1308009fqGzEt','136MSlIVV','1260DycwgE','2675644VhcvkC','2818445edRhpE','win32','214LnxTte','7504764WYyCke','50823wRipek','platform','11pxxBCW','2762YrhlFl','304829YSWEAu','6LpbJjf'];a161_0x23c1=function(){return _0x41f138;};return a161_0x23c1();}function a161_0x3aa7(_0x55565e,_0x4f063b){_0x55565e=_0x55565e-0x149;const _0x23c15d=a161_0x23c1();let _0x3aa734=_0x23c15d[_0x55565e];return _0x3aa734;}const a161_0x4a7429=a161_0x3aa7;(function(_0x522259,_0x6f73d0){const _0x4b5661=a161_0x3aa7,_0x1655c7=_0x522259();while(!![]){try{const _0x440388=-parseInt(_0x4b5661(0x152))/0x1*(-parseInt(_0x4b5661(0x14d))/0x2)+-parseInt(_0x4b5661(0x155))/0x3+parseInt(_0x4b5661(0x14a))/0x4+parseInt(_0x4b5661(0x14b))/0x5*(parseInt(_0x4b5661(0x154))/0x6)+parseInt(_0x4b5661(0x153))/0x7*(-parseInt(_0x4b5661(0x156))/0x8)+parseInt(_0x4b5661(0x14f))/0x9*(parseInt(_0x4b5661(0x149))/0xa)+-parseInt(_0x4b5661(0x151))/0xb*(parseInt(_0x4b5661(0x14e))/0xc);if(_0x440388===_0x6f73d0)break;else _0x1655c7['push'](_0x1655c7['shift']());}catch(_0x587728){_0x1655c7['push'](_0x1655c7['shift']());}}}(a161_0x23c1,0x6aec5));export const isWindows=process[a161_0x4a7429(0x150)]===a161_0x4a7429(0x14c);export function resolveNpmBin(_0x2f2593){return isWindows?_0x2f2593+'.cmd':_0x2f2593;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x1c8c31,_0x2979e2){const _0x4c7387=a162_0x2535,_0x3c5a99=_0x1c8c31();while(!![]){try{const _0xd22505=-parseInt(_0x4c7387(0x10a))/0x1+-parseInt(_0x4c7387(0x119))/0x2*(-parseInt(_0x4c7387(0x110))/0x3)+-parseInt(_0x4c7387(0x10e))/0x4+-parseInt(_0x4c7387(0x12a))/0x5*(-parseInt(_0x4c7387(0x115))/0x6)+parseInt(_0x4c7387(0x11e))/0x7+parseInt(_0x4c7387(0x10f))/0x8*(-parseInt(_0x4c7387(0x124))/0x9)+parseInt(_0x4c7387(0x10c))/0xa;if(_0xd22505===_0x2979e2)break;else _0x3c5a99['push'](_0x3c5a99['shift']());}catch(_0x40cc2b){_0x3c5a99['push'](_0x3c5a99['shift']());}}}(a162_0x2881,0xb5219));import{mkdir,readFile,writeFile}from'node:fs/promises';import{homedir}from'node:os';import{dirname,join}from'node:path';import{LOVRABET_NPM_PACKAGE_NAME}from'../constant/distribution.js';import{CLI_BIN_NAME}from'../constant/cli.js';import{checkCliVersion,getCliUpgradeCommand}from'../utils/cli-version-check.js';const UPDATE_NOTICE_TTL_MS=0x18*0x3c*0x3c*0x3e8;function isUpdateNoticeDisabled(){const _0x3a4227=a162_0x2535,_0x37da77=process.env.LOVRABET_NO_UPDATE_NOTICE?.[_0x3a4227(0x113)]()[_0x3a4227(0x114)]();return _0x37da77==='1'||_0x37da77===_0x3a4227(0x118)||_0x37da77===_0x3a4227(0x10b);}function cacheRoot(){const _0xabe2e0=a162_0x2535;return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),_0xabe2e0(0x116));}export function getUpdateNoticeCachePath(){const _0x2b543a=a162_0x2535;return join(cacheRoot(),_0x2b543a(0x11c),_0x2b543a(0x11b));}async function readUpdateNoticeCache(){const _0x584b60=a162_0x2535;try{const _0x4b8945=await readFile(getUpdateNoticeCachePath(),_0x584b60(0x11d)),_0x3e3b4a=JSON['parse'](_0x4b8945);if(!_0x3e3b4a||typeof _0x3e3b4a!==_0x584b60(0x121))return{};return _0x3e3b4a;}catch{return{};}}async function writeUpdateNoticeCache(_0x54d300){const _0x13956d=a162_0x2535;try{const _0x3ad147=getUpdateNoticeCachePath();await mkdir(dirname(_0x3ad147),{'recursive':!![]}),await writeFile(_0x3ad147,JSON[_0x13956d(0x125)](_0x54d300,null,0x2)+'\x0a',_0x13956d(0x11d));}catch{}}function a162_0x2535(_0x3f9c0f,_0x3baa2b){_0x3f9c0f=_0x3f9c0f-0x10a;const _0x288141=a162_0x2881();let _0x253584=_0x288141[_0x3f9c0f];return _0x253584;}function a162_0x2881(){const _0x5cf6fc=['true','190uHSXdO','join','update-check.json','lovrabet-cli','utf8','2635164cgOutZ','\x20is\x20recommended,\x20current\x20',',\x20run:\x20','object','lastNotifiedVersion','lastNotifiedAt','4734459AwMgHM','stringify','/v/','stableVersion','upgradeMessage','now','2656405dQNmgB','1389813YanLCv','yes','21554200aehXoY','https://www.npmjs.com/package/','3703904xiiymp','8YpPPXo','16440tevIvx','needsUpgrade','number','trim','toLowerCase','6BqNcWD','.cache','currentVersion'];a162_0x2881=function(){return _0x5cf6fc;};return a162_0x2881();}function isRecentlyNotified(_0x70c980,_0x3cf8fb,_0x52c00a){const _0x3e1ff8=a162_0x2535;return _0x70c980[_0x3e1ff8(0x122)]===_0x3cf8fb&&typeof _0x70c980['lastNotifiedAt']===_0x3e1ff8(0x112)&&_0x52c00a-_0x70c980[_0x3e1ff8(0x123)]<UPDATE_NOTICE_TTL_MS;}export function buildNpmVersionUrl(_0x5244fc){const _0x427184=a162_0x2535;return _0x427184(0x10d)+LOVRABET_NPM_PACKAGE_NAME+_0x427184(0x126)+_0x5244fc;}export async function resolveLatestUpdateNotice(_0x5e46c7){const _0x395630=a162_0x2535;if(isUpdateNoticeDisabled())return null;try{const _0x4ec369=Date[_0x395630(0x129)](),_0x44c7d9=_0x5e46c7??await checkCliVersion(),_0x904c4c=_0x44c7d9[_0x395630(0x117)],_0x475fb9=_0x44c7d9[_0x395630(0x127)],_0x1e051d=await readUpdateNoticeCache();if(!_0x475fb9||!_0x44c7d9[_0x395630(0x111)]||_0x44c7d9['belowMinimum'])return null;if(isRecentlyNotified(_0x1e051d,_0x475fb9,_0x4ec369))return null;const _0x1ce730=getCliUpgradeCommand(_0x44c7d9);return await writeUpdateNoticeCache({..._0x1e051d,'checkedAt':_0x4ec369,'latest':_0x475fb9,'failed':![],'lastNotifiedVersion':_0x475fb9,'lastNotifiedAt':_0x4ec369}),{'command':_0x1ce730,'current':_0x904c4c,'latest':_0x475fb9,'url':buildNpmVersionUrl(_0x475fb9),'message':[_0x44c7d9[_0x395630(0x128)],CLI_BIN_NAME+'\x20'+_0x475fb9+_0x395630(0x11f)+_0x904c4c+_0x395630(0x120)+_0x1ce730]['filter'](Boolean)[_0x395630(0x11a)]('\x20')};}catch{return null;}}
|
package/lib/utils/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x2e5daf,_0x6297bc){const _0x2cf863=a163_0x2995,_0x436f0a=_0x2e5daf();while(!![]){try{const _0x1f35c1=-parseInt(_0x2cf863(0x148))/0x1*(parseInt(_0x2cf863(0x14a))/0x2)+-parseInt(_0x2cf863(0x14e))/0x3*(parseInt(_0x2cf863(0x14b))/0x4)+parseInt(_0x2cf863(0x149))/0x5+-parseInt(_0x2cf863(0x14d))/0x6+parseInt(_0x2cf863(0x152))/0x7+parseInt(_0x2cf863(0x14c))/0x8+parseInt(_0x2cf863(0x150))/0x9;if(_0x1f35c1===_0x6297bc)break;else _0x436f0a['push'](_0x436f0a['shift']());}catch(_0x122fe9){_0x436f0a['push'](_0x436f0a['shift']());}}}(a163_0x4b61,0x7e6f4));import{BUILD_TIME,GIT_COMMIT,VERSION}from'../generated/build-info.js';export function getCliVersion(){return VERSION;}export function getCliGitCommit(){const _0x1ec476=a163_0x2995,_0x14fa59=String(GIT_COMMIT);return _0x14fa59&&_0x14fa59!==_0x1ec476(0x14f)?_0x14fa59:'';}export function getCliVersionDisplay(){const _0x7c7d3b=a163_0x2995,_0x17baa7=getCliGitCommit(),_0x227a63=BUILD_TIME[_0x7c7d3b(0x151)](0x0,0xa);if(!_0x17baa7||!_0x227a63)return VERSION;return VERSION+'\x20('+_0x17baa7+',\x20'+_0x227a63+')';}function a163_0x2995(_0x412188,_0x5b295f){_0x412188=_0x412188-0x148;const _0x4b617c=a163_0x4b61();let _0x29957f=_0x4b617c[_0x412188];return _0x29957f;}function a163_0x4b61(){const _0x1a5c8a=['5728212ZvOBXY','slice','4520691txcpdy','1622zuXhdo','234025SUYBSZ','230gBuCVN','1233164ysgCme','4055568LhMvdr','4940010SabKJQ','3fhPPQK','unknown'];a163_0x4b61=function(){return _0x1a5c8a;};return a163_0x4b61();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a164_0x2719(){var _0x33279d=['stderr','327678WlzaJM','259yKxpjr','28otZvgx','6596980ftEPZw','257733jmCQnW','62052fzHnnr','41480gUTtxo','123056mRrFiB','10040679soAAgQ','24WjBVDw','200ZIGUvw'];a164_0x2719=function(){return _0x33279d;};return a164_0x2719();}function a164_0x3eaa(_0x3c1059,_0x40e9a8){_0x3c1059=_0x3c1059-0x17b;var _0x2719ab=a164_0x2719();var _0x3eaa13=_0x2719ab[_0x3c1059];return _0x3eaa13;}(function(_0x4ea53e,_0x3c2b1f){var _0x28a393=a164_0x3eaa,_0x2b1f50=_0x4ea53e();while(!![]){try{var _0x31e6a6=-parseInt(_0x28a393(0x181))/0x1+-parseInt(_0x28a393(0x17c))/0x2*(parseInt(_0x28a393(0x17e))/0x3)+-parseInt(_0x28a393(0x183))/0x4*(parseInt(_0x28a393(0x17b))/0x5)+-parseInt(_0x28a393(0x186))/0x6*(-parseInt(_0x28a393(0x182))/0x7)+-parseInt(_0x28a393(0x17f))/0x8*(parseInt(_0x28a393(0x185))/0x9)+parseInt(_0x28a393(0x184))/0xa+parseInt(_0x28a393(0x17d))/0xb;if(_0x31e6a6===_0x3c2b1f)break;else _0x2b1f50['push'](_0x2b1f50['shift']());}catch(_0x15a6d9){_0x2b1f50['push'](_0x2b1f50['shift']());}}}(a164_0x2719,0x5831a));export function writeCliSideChannelLine(_0x391894){var _0x218719=a164_0x3eaa;process[_0x218719(0x180)]['write'](_0x391894+'\x0a');}
|
package/package.json
CHANGED
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
|
|
4
|
+
version: 2.3.2-beta.1
|
|
5
5
|
description: "Lovrabet 运行态 CLI — 面向业务场景的 AI 操作套件,通过 lovrabet 命令管理应用目录、业务角色与权限、用户级外部账号、Service Tree 业务命令、API 文档发现、数据集查询、Instant API 数据操作、Custom SQL/Backend Function、Personal Backend Function、文件上传、面向票证类业务材料文字与结构化字段提取的 OCR、定时任务、Skill、知识库与运行态 app-config key 状态检查。触发词:云图、lovrabet、lovrabet-cli、业务角色、角色成员、页面权限、菜单权限、数据集权限、user-account bind、provider 外部账号绑定、钉钉 userId 绑定、service tree、业务服务树、api-doc、dataset、data filter、file upload、file query-url、ocr recognize、OCR 识别、票证文字提取、票证字段提取、发票识别、票据识别、证照识别、附件上传、personal-bff、schedule、定时任务、cron、kb、skill、sql exec、bff exec、app-config、accessKey、compress、jq。"
|
|
6
6
|
metadata:
|
|
7
7
|
requires:
|
|
@@ -49,7 +49,7 @@ npm 包会自动安装同版本 Built-in Skill。若 `lovrabet doctor` 报告缺
|
|
|
49
49
|
|
|
50
50
|
### 认证命令选择
|
|
51
51
|
|
|
52
|
-
- **首次使用或切换节点**:执行 `lovrabet config init`,选择当前已开放国家/地区;独立部署优先导入 `lovrabet-routing/v1`
|
|
52
|
+
- **首次使用或切换节点**:执行 `lovrabet config init`,选择当前已开放国家/地区;独立部署优先导入 `lovrabet-routing/v1` 清单。该命令只读取运行态连接所需 Domain,忽略清单中的其他消费者字段,并固定维护全局连接配置
|
|
53
53
|
- **只想更新 AK,尽量保留现有配置**:用户提供 AccessKey 后,使用 `lovrabet auth login --access-key <ACCESS_KEY>`
|
|
54
54
|
- **还没有 AK,需要先自助创建**:Agent 可先执行 `lovrabet auth login --non-interactive` 获取无打扰提示,把命令根据当前 `userDomain` 返回的创建地址发给用户;用户把 AccessKey 发给 Agent 后,再执行 `lovrabet auth login --access-key <ACCESS_KEY>`
|
|
55
55
|
- **想确认当前 AK 对应的是哪个用户**:使用 `lovrabet auth info`
|
|
@@ -279,8 +279,8 @@ Service Tree 未命中不是失败条件,也不代表业务能力不存在。
|
|
|
279
279
|
| **config** | `init` | 初始化全局官方节点或独立部署 Domain | write | 本地 |
|
|
280
280
|
| **config** | `set` | 写入配置项 | write | 本地 |
|
|
281
281
|
| **config** | `delete` | 删除配置项 | write | 本地 |
|
|
282
|
-
| **role** | `list` / `detail` |
|
|
283
|
-
| **role** | `create` / `update` / `delete` |
|
|
282
|
+
| **role** | `list` / `detail` | 查询当前应用的业务角色及稳定 `roleCode` | read | AK |
|
|
283
|
+
| **role** | `create` / `update` / `delete` | 管理自定义业务角色;create/update 支持 `--role-code` | high-risk-write | AK |
|
|
284
284
|
| **role** | `user-add` / `user-remove` | 调整业务角色成员 | high-risk-write | AK |
|
|
285
285
|
| **permit** | `page-get` / `role-menus` / `dataset-get` | 查询页面、菜单和数据集权限 | read | AK |
|
|
286
286
|
| **permit** | `page-set` / `role-menus-set` / `dataset-set` | 调整页面、菜单和数据集权限 | high-risk-write | AK |
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
## 开始前
|
|
8
8
|
|
|
9
9
|
1. 使用明确的 `--appcode <code>`、`--app <name>` 或已经确认的当前应用。
|
|
10
|
-
2. 使用 `lovrabet role list` 获取真实角色 ID 和类型。
|
|
10
|
+
2. 使用 `lovrabet role list` 获取真实角色 ID、`roleCode` 和类型。
|
|
11
11
|
3. 写操作先加 `--dry-run` 检查目标和变更内容。
|
|
12
12
|
4. 只有用户明确授权后才去掉 `--dry-run` 并加 `--yes`。
|
|
13
13
|
|
|
@@ -23,14 +23,15 @@ lovrabet role list --type CUSTOM --name 销售 --format compress
|
|
|
23
23
|
lovrabet role detail --id <roleId> --format compress
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
`role list`
|
|
26
|
+
`role list` 返回内置角色和自定义角色,每个角色都包含稳定业务标识 `roleCode`。`builtin=true` 表示不能通过角色更新或删除命令修改。
|
|
27
27
|
|
|
28
28
|
### 创建和修改自定义角色
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
lovrabet role create --name <roleName> --remark <remark> --dry-run --format compress
|
|
32
|
-
lovrabet role create --name <roleName> --remark <remark> --yes --format compress
|
|
31
|
+
lovrabet role create --name <roleName> --role-code <roleCode> --remark <remark> --dry-run --format compress
|
|
32
|
+
lovrabet role create --name <roleName> --role-code <roleCode> --remark <remark> --yes --format compress
|
|
33
33
|
|
|
34
|
+
lovrabet role update --id <roleId> --role-code <newRoleCode> --dry-run --format compress
|
|
34
35
|
lovrabet role update --id <roleId> --name <newName> --dry-run --format compress
|
|
35
36
|
lovrabet role update --id <roleId> --remark <newRemark> --yes --format compress
|
|
36
37
|
|
|
@@ -39,6 +40,7 @@ lovrabet role delete --id <roleId> --yes --format compress
|
|
|
39
40
|
```
|
|
40
41
|
|
|
41
42
|
- 只能创建、更新和删除 CUSTOM 角色。
|
|
43
|
+
- `--role-code` 最长 64 个字符且全局唯一;创建时省略则由服务端使用角色 ID,更新时可以单独修改。
|
|
42
44
|
- 备注只能设置为非空内容,不能用空字符串清除。
|
|
43
45
|
- 删除可能影响已有成员和权限;必须先确认角色确实不再使用。
|
|
44
46
|
|
|
@@ -21,7 +21,7 @@ lovrabet config init --domain-config ./lovrabet-domains.json
|
|
|
21
21
|
|
|
22
22
|
- `--region` 只接受 `cn` / `id`
|
|
23
23
|
- 选择 `cn` 时省略冗余的 `region` 字段,以默认值保持向前兼容;选择 `id` 时写入 `"region": "id"`
|
|
24
|
-
-
|
|
24
|
+
- 切回官方节点会删除全局配置里的四个显式 Domain,以及兼容读取的旧 Domain 字段
|
|
25
25
|
|
|
26
26
|
### 独立部署模式
|
|
27
27
|
|
|
@@ -40,34 +40,30 @@ lovrabet config init --domain-config ./lovrabet-domains.json
|
|
|
40
40
|
"apiDomain": "https://api.customer.example.com",
|
|
41
41
|
"runtimeDomain": "https://runtime.customer.example.com",
|
|
42
42
|
"skillDomain": "https://skills.customer.example.com",
|
|
43
|
-
"kbDomain":
|
|
44
|
-
"default": "https://kb-admin.customer.example.com",
|
|
45
|
-
"lovrabet-cli": "https://kb.customer.example.com"
|
|
46
|
-
},
|
|
43
|
+
"kbDomain": "https://kb-admin.customer.example.com",
|
|
47
44
|
"appDomain": "https://app.customer.example.com"
|
|
48
45
|
}
|
|
49
46
|
}
|
|
50
47
|
```
|
|
51
48
|
|
|
52
|
-
|
|
49
|
+
同一份清单可以包含其他消费者所需的 Domain、CDN 或数据库访问提示。Lovrabet CLI 只校验并保存 `userDomain`、`apiDomain`、`runtimeDomain` 与 `skillDomain`;`kbDomain` 和其余消费者字段会被忽略。运行态知识库请求统一使用 `runtimeDomain`。Domain 可写成共用 HTTPS 字符串;确有差异时写成带 `default` 或当前消费者键的对象。对象优先使用 `lovrabet-cli`,其次使用 `default`,两者都没有时命令报错。清单不能叠加单独的 Domain flags。旧扁平 JSON 继续兼容,只允许以下四个字段,且至少提供一个:
|
|
53
50
|
|
|
54
51
|
```json
|
|
55
52
|
{
|
|
56
53
|
"userDomain": "https://user.customer.example.com",
|
|
57
54
|
"apiDomain": "https://api.customer.example.com",
|
|
58
55
|
"runtimeDomain": "https://runtime.customer.example.com",
|
|
59
|
-
"skillDomain": "https://skills.customer.example.com"
|
|
60
|
-
"kbDomain": "https://kb.customer.example.com"
|
|
56
|
+
"skillDomain": "https://skills.customer.example.com"
|
|
61
57
|
}
|
|
62
58
|
```
|
|
63
59
|
|
|
64
|
-
也可以用 `--user-domain`、`--api-domain`、`--runtime-domain`、`--skill-domain
|
|
60
|
+
也可以用 `--user-domain`、`--api-domain`、`--runtime-domain`、`--skill-domain` 逐项传入;显式 flag 只覆盖旧扁平文件里的同名字段。所有值必须是无账号、路径、query 和 fragment 的 HTTPS origin。
|
|
65
61
|
|
|
66
62
|
新版企业清单会保存为带协议标识的 `routing` 对象,并整体优先于旧顶层 Domain;旧扁平配置继续保持既有回退行为。
|
|
67
63
|
|
|
68
|
-
进入旧扁平独立部署模式会删除全局 `region` 和旧 Domain 字段,再写入本次提供的 Domain。未提供的 Domain 仍按默认 `cn` 节点和当前 `env` 回退到 Lovrabet
|
|
64
|
+
进入旧扁平独立部署模式会删除全局 `region` 和旧 Domain 字段,再写入本次提供的 Domain。未提供的 Domain 仍按默认 `cn` 节点和当前 `env` 回退到 Lovrabet 公共服务。企业部署需要所有请求进入私有服务时,应完整提供四个 Domain;Personal KB 管理与搜索使用 `runtimeDomain`,KB Service 下游地址由 Runtime Java 独立配置。
|
|
69
65
|
|
|
70
|
-
两种模式都保留 AccessKey、env、format、locale、应用绑定等其他全局配置。当前目录 `.lovrabet.json` 的旧扁平同名字段仍会覆盖全局旧扁平配置;初始化后用 `lovrabet doctor`
|
|
66
|
+
两种模式都保留 AccessKey、env、format、locale、应用绑定等其他全局配置。当前目录 `.lovrabet.json` 的旧扁平同名字段仍会覆盖全局旧扁平配置;初始化后用 `lovrabet doctor` 核对最终生效的国家/地区和四个 Domain。
|
|
71
67
|
|
|
72
68
|
## config list — 查看完整配置
|
|
73
69
|
|
|
@@ -55,11 +55,10 @@
|
|
|
55
55
|
| `region` | string | `cn` | 当前开放的官方节点:`cn` / `id`;默认 `cn` 可省略 |
|
|
56
56
|
| `userDomain` | string | 节点内置值 | User 服务 HTTPS origin 覆盖 |
|
|
57
57
|
| `apiDomain` | string | 节点内置值 | 平台 API HTTPS origin 覆盖 |
|
|
58
|
-
| `runtimeDomain` | string | 节点内置值 |
|
|
58
|
+
| `runtimeDomain` | string | 节点内置值 | Runtime HTTPS origin 覆盖,包含 Personal KB 管理与 `kb search` |
|
|
59
59
|
| `skillDomain` | string | 节点默认 | SkillHub HTTPS origin 覆盖 |
|
|
60
|
-
| `kbDomain` | string | 节点默认 | Personal KB 管理与 `kb search` Runtime 网关 HTTPS origin 覆盖 |
|
|
61
60
|
|
|
62
|
-
|
|
61
|
+
四个 Domain 各自独立覆盖同名服务地址。没有显式配置时,CLI 按 `region` 和 `env` 使用内置节点:`cn` 对应中国大陆,`id` 对应 Indonesia,且 Indonesia 的最终服务地址统一使用 `*.lovrabet.id`。`development` 与 `daily` 共用非生产地址;Personal KB 管理与搜索统一走 Runtime,KB Service 下游地址由 Runtime Java 配置管理。执行 `lovrabet doctor` 可查看当前实际生效的四个 Domain,无需理解内部地址层级。
|
|
63
62
|
|
|
64
63
|
`config init` 的完整模式切换、独立部署 JSON 和校验规则见 [配置管理](lovrabet-config-commands.md#config-init--初始化连接配置)。
|
|
65
64
|
|
|
@@ -25,4 +25,4 @@ lovrabet doctor
|
|
|
25
25
|
|
|
26
26
|
`doctor` 不修改配置、不安装 Skill,也不替代业务命令的认证和权限检查。
|
|
27
27
|
|
|
28
|
-
`API Endpoints` 显示 `
|
|
28
|
+
`API Endpoints` 显示 `runtimeDomain`,该地址同时承载普通运行态请求、Personal KB 管理与 `kb search` Runtime 网关。KB Service 下游地址由 Runtime Java 配置管理,不在 CLI doctor 中显示。
|
|
@@ -10,7 +10,7 @@ lovrabet kb detail --id <id> --format compress
|
|
|
10
10
|
lovrabet kb search --query "订单审批" --topk 5 --format compress
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
`kb search` 只携带当前 AK,通过 `
|
|
13
|
+
`kb search` 只携带当前 AK,通过 `runtimeDomain` 调用固定 Runtime 搜索网关;Runtime 再按其 Java 环境配置访问 KB Service。返回范围是 `public/company/personal`,使用 `scope` 区分来源。
|
|
14
14
|
|
|
15
15
|
结构化输出固定为 `data: { schemaVersion:2, profile:"runtime", total, strategyFingerprint, timingsMs, hits }`。`--topk` 可选且必须是 1–50 的整数;命中完整保留 `documentId/revision/chunkId/scope/title/text/tags/rank/rawScore/finalScore/scoreKind` 的服务端顺序和值,不输出 legacy 别名。无命中是 `total:0/hits:[]` 的成功;字段、rank、score、timing、`no-store` 或 scope 漂移都会以脱敏错误失败。
|
|
16
16
|
|
|
@@ -24,15 +24,12 @@ lovrabet notification config-list --type EMAIL --appcode <appCode> --format json
|
|
|
24
24
|
|
|
25
25
|
每个配置项只返回用于识别和选择配置的字段:
|
|
26
26
|
|
|
27
|
-
- `id`
|
|
28
27
|
- `configCode`
|
|
29
28
|
- `configName`
|
|
30
29
|
- `channelType`
|
|
31
30
|
- `description`
|
|
32
|
-
- `createTime`
|
|
33
|
-
- `updateTime`
|
|
34
31
|
|
|
35
|
-
该命令不会输出 `endpointUrl`、`channelConfig
|
|
32
|
+
该命令不会输出 `endpointUrl`、`channelConfig`、配置 ID、创建或更新时间、SMTP 用户名或密码、token、secret、连接超时和人员身份审计字段。若任一配置缺少可用的 `configCode`、`configName` 或 `channelType`,命令返回错误,不把残缺记录包装成成功结果。
|
|
36
33
|
|
|
37
34
|
示例输出:
|
|
38
35
|
|
|
@@ -45,13 +42,10 @@ lovrabet notification config-list --type EMAIL --appcode <appCode> --format json
|
|
|
45
42
|
"count": 1,
|
|
46
43
|
"configs": [
|
|
47
44
|
{
|
|
48
|
-
"id": 7,
|
|
49
45
|
"configCode": "ncc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
|
|
50
46
|
"configName": "官方邮件",
|
|
51
47
|
"channelType": "EMAIL",
|
|
52
|
-
"description": "业务通知邮件"
|
|
53
|
-
"createTime": "2026-07-01T00:00:00Z",
|
|
54
|
-
"updateTime": "2026-07-02T00:00:00Z"
|
|
48
|
+
"description": "业务通知邮件"
|
|
55
49
|
}
|
|
56
50
|
]
|
|
57
51
|
},
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"name": "lovrabet",
|
|
4
4
|
"packageName": "@lovrabet/lovrabet-cli",
|
|
5
|
-
"packageVersion": "2.3.1",
|
|
6
|
-
"skillVersion": "2.3.1",
|
|
5
|
+
"packageVersion": "2.3.2-beta.1",
|
|
6
|
+
"skillVersion": "2.3.2-beta.1",
|
|
7
7
|
"files": [
|
|
8
8
|
"SKILL.md",
|
|
9
9
|
"guides/app-resolution.md",
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
"references/lovrabet-user-account.md",
|
|
38
38
|
"references/lovrabet-workspace.md"
|
|
39
39
|
],
|
|
40
|
-
"digest": "
|
|
40
|
+
"digest": "379a8a9bd266177b77bd27af649917d9d6fde8b02f89f0f3bb95534ccae5bf11"
|
|
41
41
|
}
|