@lovrabet/lovrabet-cli 2.3.3 → 2.3.4-beta.2
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 +16 -3
- 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/approval/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 -1
- 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 +2 -2
- 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 +4 -0
- 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.d.ts +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.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/kb-search-client.d.ts +7 -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 +12 -3
- package/lib/generated/official-routing.js +1 -1
- package/lib/generated/routing-contract.d.ts +2 -2
- 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.d.ts +5 -0
- 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/positive-safe-integer.js +1 -1
- package/lib/utils/redaction.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 -2
- package/skills/lovrabet/guides/troubleshooting.md +1 -1
- package/skills/lovrabet/references/lovrabet-config-commands.md +8 -7
- package/skills/lovrabet/references/lovrabet-config.md +4 -3
- package/skills/lovrabet/references/lovrabet-doctor.md +1 -1
- package/skills/lovrabet/references/lovrabet-kb-workflow.md +14 -2
- package/skills/lovrabet/references/lovrabet-service-tree.md +1 -1
- package/skills/lovrabet.manifest.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x285172,_0x1bd1fa){const _0x31b4bb=a162_0x58a0,_0x556956=_0x285172();while(!![]){try{const _0x5a69dd=parseInt(_0x31b4bb(0x1c1))/0x1+parseInt(_0x31b4bb(0x1c0))/0x2*(parseInt(_0x31b4bb(0x1b7))/0x3)+-parseInt(_0x31b4bb(0x1b8))/0x4*(-parseInt(_0x31b4bb(0x1bd))/0x5)+-parseInt(_0x31b4bb(0x1be))/0x6+-parseInt(_0x31b4bb(0x1bf))/0x7+-parseInt(_0x31b4bb(0x1bb))/0x8*(parseInt(_0x31b4bb(0x1c3))/0x9)+parseInt(_0x31b4bb(0x1c2))/0xa*(-parseInt(_0x31b4bb(0x1bc))/0xb);if(_0x5a69dd===_0x1bd1fa)break;else _0x556956['push'](_0x556956['shift']());}catch(_0x1d403d){_0x556956['push'](_0x556956['shift']());}}}(a162_0x4b21,0xc2bf4));export function normalizePositiveSafeInteger(_0x4cff63){const _0x492cee=a162_0x58a0;if(typeof _0x4cff63===_0x492cee(0x1ba))return Number[_0x492cee(0x1c4)](_0x4cff63)&&_0x4cff63>0x0?_0x4cff63:undefined;if(typeof _0x4cff63!=='string'||!/^\d+$/[_0x492cee(0x1b9)](_0x4cff63))return undefined;const _0x248d48=Number(_0x4cff63);return Number[_0x492cee(0x1c4)](_0x248d48)&&_0x248d48>0x0?_0x248d48:undefined;}function a162_0x58a0(_0x1e2665,_0x2ec3b5){_0x1e2665=_0x1e2665-0x1b7;const _0x4b21e4=a162_0x4b21();let _0x58a07c=_0x4b21e4[_0x1e2665];return _0x58a07c;}function a162_0x4b21(){const _0x4193dc=['532505DZCllE','5211222JRDjau','1984297nlemyQ','4574JQPvhu','647357GZXpuK','744950XXqDDO','768024MhVumX','isSafeInteger','1191TGISZz','52ZnypmC','test','number','16ZevVyX','121SoKqCJ'];a162_0x4b21=function(){return _0x4193dc;};return a162_0x4b21();}
|
package/lib/utils/redaction.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a163_0x35798b=a163_0x3137;(function(_0x3e663f,_0xcce76d){const _0x1da63f=a163_0x3137,_0x1637ec=_0x3e663f();while(!![]){try{const _0x4633ea=parseInt(_0x1da63f(0x10a))/0x1+-parseInt(_0x1da63f(0x10b))/0x2*(-parseInt(_0x1da63f(0xfb))/0x3)+-parseInt(_0x1da63f(0xfe))/0x4+parseInt(_0x1da63f(0x104))/0x5*(-parseInt(_0x1da63f(0x103))/0x6)+parseInt(_0x1da63f(0x111))/0x7+parseInt(_0x1da63f(0x10c))/0x8*(parseInt(_0x1da63f(0x10e))/0x9)+-parseInt(_0x1da63f(0x109))/0xa;if(_0x4633ea===_0xcce76d)break;else _0x1637ec['push'](_0x1637ec['shift']());}catch(_0x3caccb){_0x1637ec['push'](_0x1637ec['shift']());}}}(a163_0x54ef,0x1c9a5));const REDACTED_VALUE=a163_0x35798b(0x107),SENSITIVE_KEY_PATTERN=/(?:access.?key|api.?key|authorization|cookie|credential|password|passwd|private.?key|secret|token|webhook)/i,SENSITIVE_FLAG_NAMES=new Set(['comment','variables']),SENSITIVE_VALUE_KEYS=new Set([a163_0x35798b(0x110)]);function a163_0x54ef(){const _0x3d3c4f=['map','entries','[REDACTED]','match','1638470juBQjP','60790msasmS','2tbJAlk','72NSSuuU','object','130068dAMwap','push','comment','1039360QFniZK','replace','397446NsMROv','variables','has','352204FmymwI','test','fromEntries','isArray','toLowerCase','306SBnSmS','10075IEHXtY'];a163_0x54ef=function(){return _0x3d3c4f;};return a163_0x54ef();}export function isSensitiveKey(_0x4f9881){const _0x3c7d96=a163_0x35798b,_0x396ce0=_0x4f9881[_0x3c7d96(0xfa)](/_/g,'-')['toLowerCase']();return SENSITIVE_KEY_PATTERN[_0x3c7d96(0xff)](_0x396ce0);}export function isSensitiveFlagName(_0xad3a38){const _0x30b317=a163_0x35798b,_0x45035e=_0xad3a38[_0x30b317(0xfa)](/_/g,'-')[_0x30b317(0x102)]();return isSensitiveKey(_0x45035e)||SENSITIVE_FLAG_NAMES['has'](_0x45035e);}function redactVariableValues(_0x3d021c){const _0x17e59f=a163_0x35798b;if(Array[_0x17e59f(0x101)](_0x3d021c))return _0x3d021c['map'](_0x15b3bc=>redactVariableValues(_0x15b3bc));if(_0x3d021c&&typeof _0x3d021c===_0x17e59f(0x10d))return Object[_0x17e59f(0x100)](Object['entries'](_0x3d021c)[_0x17e59f(0x105)](([_0x12786a,_0x1de0cc])=>[_0x12786a,redactVariableValues(_0x1de0cc)]));return REDACTED_VALUE;}export function redactSensitiveValue(_0x5e6b0e){const _0x4001bd=a163_0x35798b;if(Array[_0x4001bd(0x101)](_0x5e6b0e))return _0x5e6b0e[_0x4001bd(0x105)](_0x3ae9dc=>redactSensitiveValue(_0x3ae9dc));if(!_0x5e6b0e||typeof _0x5e6b0e!==_0x4001bd(0x10d))return _0x5e6b0e;const _0x271989={};for(const [_0x37f551,_0x2775f8]of Object[_0x4001bd(0x106)](_0x5e6b0e)){const _0x1fc881=_0x37f551[_0x4001bd(0xfa)](/_/g,'-')[_0x4001bd(0x102)]();_0x271989[_0x37f551]=_0x1fc881===_0x4001bd(0xfc)?redactVariableValues(_0x2775f8):SENSITIVE_VALUE_KEYS[_0x4001bd(0xfd)](_0x1fc881)||isSensitiveKey(_0x37f551)?REDACTED_VALUE:redactSensitiveValue(_0x2775f8);}return _0x271989;}function a163_0x3137(_0x36e5fc,_0x451851){_0x36e5fc=_0x36e5fc-0xfa;const _0x54efc6=a163_0x54ef();let _0x313773=_0x54efc6[_0x36e5fc];return _0x313773;}export function redactCommandArgv(_0x3e35f4){const _0x51733c=a163_0x35798b,_0x3bcb2b=[];let _0x2aa7e7=![];for(const _0x1a822b of _0x3e35f4){if(_0x2aa7e7){_0x3bcb2b[_0x51733c(0x10f)](REDACTED_VALUE),_0x2aa7e7=![];continue;}const _0x4fcca2=_0x1a822b[_0x51733c(0x108)](/^--([^=]+)(?:=(.*))?$/);if(!_0x4fcca2||!isSensitiveFlagName(_0x4fcca2[0x1]??'')){_0x3bcb2b['push'](_0x1a822b);continue;}_0x3bcb2b[_0x51733c(0x10f)]('--'+_0x4fcca2[0x1]+(_0x4fcca2[0x2]===undefined?'':'='+REDACTED_VALUE)),_0x4fcca2[0x2]===undefined&&(_0x2aa7e7=!![]);}return _0x3bcb2b;}export{REDACTED_VALUE};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x5d9e1d,_0x14aaa0){const _0x12b4d8=a164_0x102b,_0x4e5d72=_0x5d9e1d();while(!![]){try{const _0x1dec1f=parseInt(_0x12b4d8(0x1f5))/0x1*(parseInt(_0x12b4d8(0x203))/0x2)+parseInt(_0x12b4d8(0x1f0))/0x3+parseInt(_0x12b4d8(0x204))/0x4*(parseInt(_0x12b4d8(0x1ef))/0x5)+-parseInt(_0x12b4d8(0x1fe))/0x6+-parseInt(_0x12b4d8(0x1fc))/0x7*(-parseInt(_0x12b4d8(0x20d))/0x8)+-parseInt(_0x12b4d8(0x1f3))/0x9*(-parseInt(_0x12b4d8(0x1f8))/0xa)+parseInt(_0x12b4d8(0x20b))/0xb*(-parseInt(_0x12b4d8(0x20e))/0xc);if(_0x1dec1f===_0x14aaa0)break;else _0x4e5d72['push'](_0x4e5d72['shift']());}catch(_0x30c540){_0x4e5d72['push'](_0x4e5d72['shift']());}}}(a164_0x9055,0xee7b7));import{mkdir,readFile,writeFile}from'node:fs/promises';function a164_0x9055(){const _0x46317b=['1984521ntMtIf','trim','16QLCcay','204OpFRKk','/v/','needsUpgrade','.cache','50ZHOvvm','2319867wyzyEN','utf8','stableVersion','3699fBPbRS','update-check.json','14318rLFEMP',',\x20run:\x20','lovrabet-cli','22060fYHHUh','toLowerCase','yes','true','417459HUeTMn','\x20is\x20recommended,\x20current\x20','5037822aDpgOI','now','lastNotifiedVersion','https://www.npmjs.com/package/','currentVersion','162hZVmca','769784sxyxsi','number','upgradeMessage','lastNotifiedAt','object','stringify','join'];a164_0x9055=function(){return _0x46317b;};return a164_0x9055();}import{homedir}from'node:os';function a164_0x102b(_0xe4ab92,_0x116c19){_0xe4ab92=_0xe4ab92-0x1ee;const _0x90554e=a164_0x9055();let _0x102bec=_0x90554e[_0xe4ab92];return _0x102bec;}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 _0x1ff2fd=a164_0x102b,_0x1045e1=process.env.LOVRABET_NO_UPDATE_NOTICE?.[_0x1ff2fd(0x20c)]()[_0x1ff2fd(0x1f9)]();return _0x1045e1==='1'||_0x1045e1===_0x1ff2fd(0x1fb)||_0x1045e1===_0x1ff2fd(0x1fa);}function cacheRoot(){const _0x1b0edf=a164_0x102b;return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),_0x1b0edf(0x1ee));}export function getUpdateNoticeCachePath(){const _0x5ecb9c=a164_0x102b;return join(cacheRoot(),_0x5ecb9c(0x1f7),_0x5ecb9c(0x1f4));}async function readUpdateNoticeCache(){const _0x37bf8d=a164_0x102b;try{const _0x509702=await readFile(getUpdateNoticeCachePath(),'utf8'),_0x5443fc=JSON['parse'](_0x509702);if(!_0x5443fc||typeof _0x5443fc!==_0x37bf8d(0x208))return{};return _0x5443fc;}catch{return{};}}async function writeUpdateNoticeCache(_0x3f620e){const _0x334ef3=a164_0x102b;try{const _0x4ccc0f=getUpdateNoticeCachePath();await mkdir(dirname(_0x4ccc0f),{'recursive':!![]}),await writeFile(_0x4ccc0f,JSON[_0x334ef3(0x209)](_0x3f620e,null,0x2)+'\x0a',_0x334ef3(0x1f1));}catch{}}function isRecentlyNotified(_0x46452a,_0x1b70c4,_0x138719){const _0x53e95f=a164_0x102b;return _0x46452a[_0x53e95f(0x200)]===_0x1b70c4&&typeof _0x46452a['lastNotifiedAt']===_0x53e95f(0x205)&&_0x138719-_0x46452a[_0x53e95f(0x207)]<UPDATE_NOTICE_TTL_MS;}export function buildNpmVersionUrl(_0x29a023){const _0x2577a0=a164_0x102b;return _0x2577a0(0x201)+LOVRABET_NPM_PACKAGE_NAME+_0x2577a0(0x20f)+_0x29a023;}export async function resolveLatestUpdateNotice(_0x3e9c24){const _0x3ead34=a164_0x102b;if(isUpdateNoticeDisabled())return null;try{const _0x6ccad1=Date[_0x3ead34(0x1ff)](),_0x2a6d3f=_0x3e9c24??await checkCliVersion(),_0x4433d3=_0x2a6d3f[_0x3ead34(0x202)],_0x2e9d8e=_0x2a6d3f[_0x3ead34(0x1f2)],_0x53dfd1=await readUpdateNoticeCache();if(!_0x2e9d8e||!_0x2a6d3f[_0x3ead34(0x210)]||_0x2a6d3f['belowMinimum'])return null;if(isRecentlyNotified(_0x53dfd1,_0x2e9d8e,_0x6ccad1))return null;const _0x267d64=getCliUpgradeCommand(_0x2a6d3f);return await writeUpdateNoticeCache({..._0x53dfd1,'checkedAt':_0x6ccad1,'latest':_0x2e9d8e,'failed':![],'lastNotifiedVersion':_0x2e9d8e,'lastNotifiedAt':_0x6ccad1}),{'command':_0x267d64,'current':_0x4433d3,'latest':_0x2e9d8e,'url':buildNpmVersionUrl(_0x2e9d8e),'message':[_0x2a6d3f[_0x3ead34(0x206)],CLI_BIN_NAME+'\x20'+_0x2e9d8e+_0x3ead34(0x1fd)+_0x4433d3+_0x3ead34(0x1f6)+_0x267d64]['filter'](Boolean)[_0x3ead34(0x20a)]('\x20')};}catch{return null;}}
|
package/lib/utils/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a165_0xa45a(){const _0x4d79ef=['385304SkiikS','2281215ZHSSgO','550589pwwcXb','5623263XbJcOk','2850yqbboM','112ZniMJw','unknown','1003214LEdkkb','1440696RUeKSk','820VNVgIY'];a165_0xa45a=function(){return _0x4d79ef;};return a165_0xa45a();}(function(_0x23a3a4,_0xc6fb93){const _0x335f72=a165_0x3d8b,_0x3380ef=_0x23a3a4();while(!![]){try{const _0x153325=parseInt(_0x335f72(0x17d))/0x1+-parseInt(_0x335f72(0x182))/0x2+-parseInt(_0x335f72(0x17c))/0x3+-parseInt(_0x335f72(0x179))/0x4+-parseInt(_0x335f72(0x17a))/0x5*(-parseInt(_0x335f72(0x17f))/0x6)+-parseInt(_0x335f72(0x180))/0x7*(-parseInt(_0x335f72(0x17b))/0x8)+parseInt(_0x335f72(0x17e))/0x9;if(_0x153325===_0xc6fb93)break;else _0x3380ef['push'](_0x3380ef['shift']());}catch(_0x3d689a){_0x3380ef['push'](_0x3380ef['shift']());}}}(a165_0xa45a,0x62136));function a165_0x3d8b(_0x22ab80,_0x5859ff){_0x22ab80=_0x22ab80-0x179;const _0xa45a5c=a165_0xa45a();let _0x3d8b28=_0xa45a5c[_0x22ab80];return _0x3d8b28;}import{BUILD_TIME,GIT_COMMIT,VERSION}from'../generated/build-info.js';export function getCliVersion(){return VERSION;}export function getCliGitCommit(){const _0xd0e186=a165_0x3d8b,_0x242994=String(GIT_COMMIT);return _0x242994&&_0x242994!==_0xd0e186(0x181)?_0x242994:'';}export function getCliVersionDisplay(){const _0x366d42=getCliGitCommit(),_0x55c3b0=BUILD_TIME['slice'](0x0,0xa);if(!_0x366d42||!_0x55c3b0)return VERSION;return VERSION+'\x20('+_0x366d42+',\x20'+_0x55c3b0+')';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x13ef68,_0x143537){var _0x443b07=a166_0x55d7,_0x37c350=_0x13ef68();while(!![]){try{var _0x50b32c=-parseInt(_0x443b07(0x1ab))/0x1*(parseInt(_0x443b07(0x1a8))/0x2)+-parseInt(_0x443b07(0x1ae))/0x3+parseInt(_0x443b07(0x1b0))/0x4*(-parseInt(_0x443b07(0x1a9))/0x5)+parseInt(_0x443b07(0x1af))/0x6*(parseInt(_0x443b07(0x1a6))/0x7)+-parseInt(_0x443b07(0x1a7))/0x8*(-parseInt(_0x443b07(0x1a5))/0x9)+-parseInt(_0x443b07(0x1b1))/0xa+-parseInt(_0x443b07(0x1ad))/0xb;if(_0x50b32c===_0x143537)break;else _0x37c350['push'](_0x37c350['shift']());}catch(_0x22bbff){_0x37c350['push'](_0x37c350['shift']());}}}(a166_0x2ddc,0x7f90c));function a166_0x55d7(_0x4f1627,_0x5e42c8){_0x4f1627=_0x4f1627-0x1a5;var _0x2ddc6a=a166_0x2ddc();var _0x55d735=_0x2ddc6a[_0x4f1627];return _0x55d735;}export function writeCliSideChannelLine(_0x86842a){var _0x3ad384=a166_0x55d7;process[_0x3ad384(0x1ac)][_0x3ad384(0x1aa)](_0x86842a+'\x0a');}function a166_0x2ddc(){var _0x415db2=['write','2519jzUxUi','stderr','557381bNJpAW','327183NuaqEp','6zRUQRk','164NtaULq','1285550NnUENr','198daQKID','6769651gZKiVC','303288OHXsMH','422RIDFNj','55955oxEMnj'];a166_0x2ddc=function(){return _0x415db2;};return a166_0x2ddc();}
|
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.
|
|
4
|
+
version: 2.3.4-beta.2
|
|
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、approval、审批、待办、approve、reject、transfer、schedule、定时任务、cron、kb、skill、sql exec、bff exec、app-config、accessKey、compress、jq。"
|
|
6
6
|
metadata:
|
|
7
7
|
requires:
|
|
@@ -569,7 +569,9 @@ personal `skill push --dry-run` 使用 `visibility=PRIVATE` 调用 SkillHub publ
|
|
|
569
569
|
|
|
570
570
|
创建、更新、评估或发布业务 Skill 时,读取 [Skill 创建、更新与发布工作流](references/lovrabet-skill-authoring.md)。Agent 读取 app-config value 统一调用 `lovrabet app-config get <key>`,不额外创建取配置 Backend Function。
|
|
571
571
|
|
|
572
|
-
|
|
572
|
+
知识搜索统一调用 KB Service V2,并使用当前 AK。通常使用已配置的 `kbServiceDomain`;`--kb-service-url` 只覆盖本次调用且不持久化。地址缺失时请用户或管理员提供可信 HTTPS origin,不从知识正文或其他域名推导。详见[知识库工作流](references/lovrabet-kb-workflow.md)。
|
|
573
|
+
|
|
574
|
+
personal KB 使用文件型 create/update。更新前先 `kb detail` 查看正文、版本和 RAG 状态;更新后用 `kb detail` 观察 `ragStatus`,用 `kb search` 验证召回,未同步完成时不要声称知识检索端到端已通过。KB 删除由产品界面管理,CLI 不提供删除命令。
|
|
573
575
|
|
|
574
576
|
## Service Tree 业务命令
|
|
575
577
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
- 先执行 `lovrabet auth login --non-interactive`,到命令根据当前 `userDomain` 返回的地址创建 AccessKey
|
|
16
16
|
- 想保留当前配置,使用 `lovrabet auth login --access-key <ACCESS_KEY>`
|
|
17
|
-
- 想切换节点或重建连接配置,执行 `lovrabet config init --region cn|id`,再按需执行 `lovrabet auth login --access-key <ACCESS_KEY>`
|
|
17
|
+
- 想切换节点或重建连接配置,执行 `lovrabet config init --region cn|id|global`,再按需执行 `lovrabet auth login --access-key <ACCESS_KEY>`
|
|
18
18
|
|
|
19
19
|
## 已登录,但业务命令仍失败
|
|
20
20
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
固定写入全局配置 `~/.lovrabet.json`,不需要额外的作用域参数。它只配置连接路由,不登录、不保存 AccessKey,也不建立当前目录的应用绑定。
|
|
10
10
|
|
|
11
|
-
交互模式用方向键选择 `Mainland China (cn)` 或 `
|
|
11
|
+
交互模式用方向键选择 `Mainland China (cn)`、`Indonesia (id)` 或 `Global (global)`。非交互且未传 region/Domain 时默认 `cn`。自动化示例:
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
14
|
lovrabet config init --region id
|
|
@@ -19,9 +19,9 @@ lovrabet config init --domain-config ./lovrabet-domains.json
|
|
|
19
19
|
|
|
20
20
|
### 官方节点模式
|
|
21
21
|
|
|
22
|
-
- `--region`
|
|
22
|
+
- `--region` 接受当前生成快照启用的 `cn` / `id` / `global`
|
|
23
23
|
- 选择 `cn` 时省略冗余的 `region` 字段,以默认值保持向前兼容;选择 `id` 时写入 `"region": "id"`
|
|
24
|
-
-
|
|
24
|
+
- 切回官方节点会删除全局配置里的显式 Domain,以及兼容读取的旧 Domain 字段
|
|
25
25
|
|
|
26
26
|
### 独立部署模式
|
|
27
27
|
|
|
@@ -40,13 +40,14 @@ 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
|
+
"kbServiceDomain": "https://kb.customer.example.com",
|
|
43
44
|
"kbDomain": "https://kb-admin.customer.example.com",
|
|
44
45
|
"appDomain": "https://app.customer.example.com"
|
|
45
46
|
}
|
|
46
47
|
}
|
|
47
48
|
```
|
|
48
49
|
|
|
49
|
-
同一份清单可以包含其他消费者所需的 Domain、CDN 或数据库访问提示。Lovrabet CLI
|
|
50
|
+
同一份清单可以包含其他消费者所需的 Domain、CDN 或数据库访问提示。Lovrabet CLI 校验并保存 `userDomain`、`apiDomain`、`runtimeDomain`、`skillDomain` 与可选的 `kbServiceDomain`;`kbDomain` 和其余消费者字段会被忽略。Personal KB 管理使用 `runtimeDomain`,搜索使用 `kbServiceDomain`。Domain 可写成共用 HTTPS 字符串;确有差异时写成带 `default` 或当前消费者键的对象。对象优先使用 `lovrabet-cli`,其次使用 `default`,两者都没有时命令报错。清单不能叠加单独的 Domain flags。旧扁平 JSON 继续兼容,并允许上述五个字段,且至少提供一个:
|
|
50
51
|
|
|
51
52
|
```json
|
|
52
53
|
{
|
|
@@ -57,13 +58,13 @@ lovrabet config init --domain-config ./lovrabet-domains.json
|
|
|
57
58
|
}
|
|
58
59
|
```
|
|
59
60
|
|
|
60
|
-
也可以用 `--user-domain`、`--api-domain`、`--runtime-domain`、`--skill-domain` 逐项传入;显式 flag 只覆盖旧扁平文件里的同名字段。所有值必须是无账号、路径、query 和 fragment 的 HTTPS origin。
|
|
61
|
+
也可以用 `--user-domain`、`--api-domain`、`--runtime-domain`、`--skill-domain`、`--kb-service-domain` 逐项传入;显式 flag 只覆盖旧扁平文件里的同名字段。所有值必须是无账号、路径、query 和 fragment 的 HTTPS origin。
|
|
61
62
|
|
|
62
63
|
新版企业清单会保存为带协议标识的 `routing` 对象,并整体优先于旧顶层 Domain;旧扁平配置继续保持既有回退行为。
|
|
63
64
|
|
|
64
|
-
进入旧扁平独立部署模式会删除全局 `region` 和旧 Domain 字段,再写入本次提供的 Domain
|
|
65
|
+
进入旧扁平独立部署模式会删除全局 `region` 和旧 Domain 字段,再写入本次提供的 Domain。企业部署需要所有请求进入私有服务时,应提供所需 Domain;Personal KB 管理使用 `runtimeDomain`,知识搜索缺少 `kbServiceDomain` 时失败关闭。`--kb-service-url` 仅覆盖单次搜索且不写入配置。
|
|
65
66
|
|
|
66
|
-
两种模式都保留 AccessKey、env、format、locale、应用绑定等其他全局配置。当前目录 `.lovrabet.json` 的旧扁平同名字段仍会覆盖全局旧扁平配置;初始化后用 `lovrabet doctor`
|
|
67
|
+
两种模式都保留 AccessKey、env、format、locale、应用绑定等其他全局配置。当前目录 `.lovrabet.json` 的旧扁平同名字段仍会覆盖全局旧扁平配置;初始化后用 `lovrabet doctor` 核对最终生效的国家/地区和 Domain。
|
|
67
68
|
|
|
68
69
|
## config list — 查看完整配置
|
|
69
70
|
|
|
@@ -52,13 +52,14 @@
|
|
|
52
52
|
| `pageSize` | number | — | 默认分页大小 |
|
|
53
53
|
| `riskLevel` | string | `write` | 允许执行的最高风险等级 |
|
|
54
54
|
| `defaultApp` | string | — | 默认候选应用名称 |
|
|
55
|
-
| `region` | string | `cn` | 当前开放的官方节点:`cn` / `id`;默认 `cn` 可省略 |
|
|
55
|
+
| `region` | string | `cn` | 当前开放的官方节点:`cn` / `id` / `global`;默认 `cn` 可省略 |
|
|
56
56
|
| `userDomain` | string | 节点内置值 | User 服务 HTTPS origin 覆盖 |
|
|
57
57
|
| `apiDomain` | string | 节点内置值 | 平台 API HTTPS origin 覆盖 |
|
|
58
|
-
| `runtimeDomain` | string | 节点内置值 | Runtime HTTPS origin 覆盖,包含 Personal KB
|
|
58
|
+
| `runtimeDomain` | string | 节点内置值 | Runtime HTTPS origin 覆盖,包含 Personal KB 管理 |
|
|
59
59
|
| `skillDomain` | string | 节点默认 | SkillHub HTTPS origin 覆盖 |
|
|
60
|
+
| `kbServiceDomain` | string | 官方目录(如有);独立部署无 | KB Service HTTPS origin 覆盖;无法解析有效地址时搜索报错 |
|
|
60
61
|
|
|
61
|
-
|
|
62
|
+
各 Domain 独立覆盖同名服务地址。没有显式配置时,CLI 按 `region` 和 `env` 使用内置节点;Indonesia 的最终服务地址统一使用 `*.lovrabet.id`。`development` 与 `daily` 使用当前节点的 daily 层级;该层级缺失时按既有规则使用同节点 production。Personal KB 管理走 Runtime;知识搜索只使用专用 `kbServiceDomain`,或本次调用的 `--kb-service-url` 覆盖,不从其他 Domain 推导。执行 `lovrabet doctor` 可查看当前实际生效的 Domain。
|
|
62
63
|
|
|
63
64
|
`config init` 的完整模式切换、独立部署 JSON 和校验规则见 [配置管理](lovrabet-config-commands.md#config-init--初始化连接配置)。
|
|
64
65
|
|
|
@@ -25,4 +25,4 @@ lovrabet doctor
|
|
|
25
25
|
|
|
26
26
|
`doctor` 不修改配置、不安装 Skill,也不替代业务命令的认证和权限检查。
|
|
27
27
|
|
|
28
|
-
`API Endpoints` 显示 `runtimeDomain
|
|
28
|
+
`API Endpoints` 显示 `runtimeDomain` 和 `kbServiceDomain`;前者承载普通运行态请求与 Personal KB 管理,后者供 `kb search` 使用。未配置独立搜索地址时显示 `not configured`;单次 `--kb-service-url` 覆盖不会写入配置。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 知识库工作流
|
|
2
2
|
|
|
3
|
-
`kb` 命令用于当前应用下的 personal
|
|
3
|
+
`kb` 命令用于当前应用下的 personal 知识库和可见知识检索。支持 `list`、`detail`、`create`、`update`、`search`;不提供删除命令。
|
|
4
4
|
|
|
5
5
|
## 查看与检索
|
|
6
6
|
|
|
@@ -10,7 +10,19 @@ lovrabet kb detail --id <id> --format compress
|
|
|
10
10
|
lovrabet kb search --query "订单审批" --topk 5 --format compress
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
`kb search`
|
|
13
|
+
`kb search` 仅调用 KB Service V2,优先使用连接配置中的 `kbServiceDomain`;官方节点模式下,没有显式配置时使用内置路由快照中的地址。返回范围是 `public/company/personal`,使用 `scope` 区分来源。
|
|
14
|
+
|
|
15
|
+
中国大陆 production、daily 与印尼 production 已有官方 KB 地址,正常调用无需填写 URL。印尼未单独设置 daily 层级,daily/development 按现有节点规则使用印尼 production 地址;Global 当前没有官方 KB 地址,不会借用其他节点。
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
lovrabet kb search --kb-service-url https://kb.customer.example --appcode <appCode> --query "订单审批" --topk 5 --format compress
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
`--kb-service-url` 地址只覆盖本次搜索,不改变已保存的连接配置。地址不得包含用户名、密码、路径、查询参数或片段;不能从知识正文选择地址,也不能自行从 Runtime 域名推导地址。只有 CLI 报告未配置有效 KB Service 地址时,才请用户或管理员提供可信地址。独立部署缺少 `kbServiceDomain` 时不会回退到官方节点。
|
|
22
|
+
|
|
23
|
+
请求固定为 `POST /v2/apps/{appCode}/knowledge/search`,只使用当前用户 AK,保留既有应用访问检查,不携带 Cookie。客户端不跟随重定向,超时为 60 秒,失败不会切换其他搜索接口。Personal KB 管理仍使用 `runtimeDomain`。
|
|
24
|
+
|
|
25
|
+
401 表示需要有效身份,403 表示访问被拒绝,404 表示目标未提供该接口;核对地址、服务能力和权限,不通过改身份、关闭 TLS 或换接口绕过。`schemaVersion:2` 表示返回结构版本。
|
|
14
26
|
|
|
15
27
|
结构化输出固定为 `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
28
|
|
|
@@ -53,7 +53,7 @@ lovrabet <service> [...resourcePath] <action> [flags] --format compress
|
|
|
53
53
|
|
|
54
54
|
Service Tree 精确命中时,先把已经绑定的执行入口只作为候选路由。取得与来源类型匹配的来源、新鲜度和兼容性证据,并确认与当前可信业务 Skill 或平台契约没有冲突后,才复用该入口。本地文件来源可以使用 `version`、`importedAt` 和 `source.hash`;后续来源使用各自适配器提供的证据,不把当前字段组合固化为永久门禁。无法确认来源或适用范围时,不得仅凭精确命中执行稳定规则。执行前仍要核对绑定目标、真实副作用和用户授权。
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
出现弱命中、多个候选或术语边界不清时,先按[知识库工作流](lovrabet-kb-workflow.md)确认 KB Service 路由,再用 `kb search` 做语义消歧。KB 召回只生成候选;Service Tree 候选先用本地 `service detail` 核对绑定,再使用目标能力支持的可信契约验证通道。消歧后仍有多个合理候选时,再列给用户确认。
|
|
57
57
|
|
|
58
58
|
Service Tree 未命中不是失败条件,也不代表业务能力不存在。本地 registry 可能只注册少量高频服务。没有合理匹配时:
|
|
59
59
|
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"name": "lovrabet",
|
|
4
4
|
"packageName": "@lovrabet/lovrabet-cli",
|
|
5
|
-
"packageVersion": "2.3.
|
|
6
|
-
"skillVersion": "2.3.
|
|
5
|
+
"packageVersion": "2.3.4-beta.2",
|
|
6
|
+
"skillVersion": "2.3.4-beta.2",
|
|
7
7
|
"files": [
|
|
8
8
|
"SKILL.md",
|
|
9
9
|
"guides/app-resolution.md",
|
|
@@ -38,5 +38,5 @@
|
|
|
38
38
|
"references/lovrabet-user-account.md",
|
|
39
39
|
"references/lovrabet-workspace.md"
|
|
40
40
|
],
|
|
41
|
-
"digest": "
|
|
41
|
+
"digest": "963cb8650980012a6e27f49478297c1ef7ada2dd47645085f5ac568248a4c80e"
|
|
42
42
|
}
|