@lovrabet/lovrabet-cli 2.3.6-beta.1 → 2.3.6-beta.3
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 +33 -2
- 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.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/import-excel.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.d.ts +3 -3
- 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.js +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.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 +7 -6
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/kb-management-client.d.ts +17 -0
- package/lib/core/kb-management-client.js +1 -0
- 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/access-error.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.js +1 -1
- 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/services/dataset-import/auto-id-runner.js +1 -1
- package/lib/services/dataset-import/excel-reader.js +1 -1
- package/lib/services/dataset-import/image-bytes.js +1 -1
- package/lib/services/dataset-import/image-ooxml.js +1 -1
- package/lib/services/dataset-import/image-runner.js +1 -1
- package/lib/services/dataset-import/metadata.js +1 -1
- package/lib/services/dataset-import/preview.js +1 -1
- package/lib/services/dataset-import/runner.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/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 +5 -3
- package/skills/lovrabet/guides/app-resolution.md +2 -0
- package/skills/lovrabet/guides/dataset-and-data-workflow.md +10 -1
- package/skills/lovrabet/references/dataset-discovery-workflow.md +14 -1
- package/skills/lovrabet/references/instant-api-workflow.md +2 -0
- package/skills/lovrabet/references/lovrabet-app.md +2 -0
- package/skills/lovrabet/references/lovrabet-kb-workflow.md +7 -3
- package/skills/lovrabet.manifest.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a174_0x186c(){const _0xea16bd=['30vWpbND','47072lBToHV','4697802vPpJPQ','test','string','16964UhzXxt','3622670RxIjIR','number','7xpBhzO','12110576YDxybL','578562IMduHA','6099LZZdhz','2996mqtmhv','isSafeInteger'];a174_0x186c=function(){return _0xea16bd;};return a174_0x186c();}(function(_0x3e35c5,_0x2d7127){const _0x3e3f29=a174_0x4a22,_0x1ade03=_0x3e35c5();while(!![]){try{const _0x39ed6e=parseInt(_0x3e3f29(0x1c2))/0x1+parseInt(_0x3e3f29(0x1be))/0x2+parseInt(_0x3e3f29(0x1c8))/0x3*(parseInt(_0x3e3f29(0x1c9))/0x4)+-parseInt(_0x3e3f29(0x1c3))/0x5+-parseInt(_0x3e3f29(0x1c7))/0x6*(-parseInt(_0x3e3f29(0x1c5))/0x7)+parseInt(_0x3e3f29(0x1c6))/0x8+-parseInt(_0x3e3f29(0x1bf))/0x9*(parseInt(_0x3e3f29(0x1bd))/0xa);if(_0x39ed6e===_0x2d7127)break;else _0x1ade03['push'](_0x1ade03['shift']());}catch(_0x57fb0f){_0x1ade03['push'](_0x1ade03['shift']());}}}(a174_0x186c,0xd7936));function a174_0x4a22(_0x55e71d,_0x53403c){_0x55e71d=_0x55e71d-0x1bd;const _0x186ca3=a174_0x186c();let _0x4a22ef=_0x186ca3[_0x55e71d];return _0x4a22ef;}export function normalizePositiveSafeInteger(_0x461424){const _0x4aaf5f=a174_0x4a22;if(typeof _0x461424===_0x4aaf5f(0x1c4))return Number[_0x4aaf5f(0x1ca)](_0x461424)&&_0x461424>0x0?_0x461424:undefined;if(typeof _0x461424!==_0x4aaf5f(0x1c1)||!/^\d+$/[_0x4aaf5f(0x1c0)](_0x461424))return undefined;const _0x3c5c72=Number(_0x461424);return Number[_0x4aaf5f(0x1ca)](_0x3c5c72)&&_0x3c5c72>0x0?_0x3c5c72:undefined;}
|
package/lib/utils/redaction.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a175_0x5716bc=a175_0x52f3;(function(_0xea16ec,_0x7b257d){const _0x175e2c=a175_0x52f3,_0x242a95=_0xea16ec();while(!![]){try{const _0x36cb4b=parseInt(_0x175e2c(0x154))/0x1+parseInt(_0x175e2c(0x159))/0x2*(parseInt(_0x175e2c(0x147))/0x3)+parseInt(_0x175e2c(0x155))/0x4*(parseInt(_0x175e2c(0x14b))/0x5)+-parseInt(_0x175e2c(0x145))/0x6+-parseInt(_0x175e2c(0x143))/0x7+-parseInt(_0x175e2c(0x152))/0x8*(-parseInt(_0x175e2c(0x146))/0x9)+parseInt(_0x175e2c(0x156))/0xa;if(_0x36cb4b===_0x7b257d)break;else _0x242a95['push'](_0x242a95['shift']());}catch(_0x3314cd){_0x242a95['push'](_0x242a95['shift']());}}}(a175_0x4542,0x5cb8f));const REDACTED_VALUE=a175_0x5716bc(0x157),SENSITIVE_KEY_PATTERN=/(?:access.?key|api.?key|authorization|cookie|credential|password|passwd|private.?key|secret|token|webhook)/i,SENSITIVE_FLAG_NAMES=new Set(['comment',a175_0x5716bc(0x14e)]),SENSITIVE_VALUE_KEYS=new Set([a175_0x5716bc(0x149)]);function a175_0x4542(){const _0x577c1b=['test','2021628xTBMBJ','27yEDzCw','7866JhIcpD','toLowerCase','comment','replace','5lInHKC','map','push','variables','entries','isArray','object','1405336nWxpkN','fromEntries','58233TGGYdX','194444SHPcVU','2856350ugxfFP','[REDACTED]','match','8fnplrc','has','1492673FUxSMP'];a175_0x4542=function(){return _0x577c1b;};return a175_0x4542();}export function isSensitiveKey(_0x27e3d0){const _0x511a5b=a175_0x5716bc,_0x5a4848=_0x27e3d0[_0x511a5b(0x14a)](/_/g,'-')[_0x511a5b(0x148)]();return SENSITIVE_KEY_PATTERN[_0x511a5b(0x144)](_0x5a4848);}function a175_0x52f3(_0x124b28,_0x414a76){_0x124b28=_0x124b28-0x142;const _0x45421f=a175_0x4542();let _0x52f383=_0x45421f[_0x124b28];return _0x52f383;}export function isSensitiveFlagName(_0x38b9cf){const _0x4093fb=a175_0x5716bc,_0x1ef70a=_0x38b9cf[_0x4093fb(0x14a)](/_/g,'-')[_0x4093fb(0x148)]();return isSensitiveKey(_0x1ef70a)||SENSITIVE_FLAG_NAMES[_0x4093fb(0x142)](_0x1ef70a);}function redactVariableValues(_0x5f0224){const _0x4d6683=a175_0x5716bc;if(Array[_0x4d6683(0x150)](_0x5f0224))return _0x5f0224[_0x4d6683(0x14c)](_0x30a443=>redactVariableValues(_0x30a443));if(_0x5f0224&&typeof _0x5f0224===_0x4d6683(0x151))return Object[_0x4d6683(0x153)](Object[_0x4d6683(0x14f)](_0x5f0224)[_0x4d6683(0x14c)](([_0x45c6e0,_0x560b28])=>[_0x45c6e0,redactVariableValues(_0x560b28)]));return REDACTED_VALUE;}export function redactSensitiveValue(_0x121cba){const _0x2e5596=a175_0x5716bc;if(Array[_0x2e5596(0x150)](_0x121cba))return _0x121cba[_0x2e5596(0x14c)](_0x4c354b=>redactSensitiveValue(_0x4c354b));if(!_0x121cba||typeof _0x121cba!=='object')return _0x121cba;const _0x121463={};for(const [_0x460377,_0x4c5a24]of Object[_0x2e5596(0x14f)](_0x121cba)){const _0x4dd72e=_0x460377['replace'](/_/g,'-')[_0x2e5596(0x148)]();_0x121463[_0x460377]=_0x4dd72e===_0x2e5596(0x14e)?redactVariableValues(_0x4c5a24):SENSITIVE_VALUE_KEYS['has'](_0x4dd72e)||isSensitiveKey(_0x460377)?REDACTED_VALUE:redactSensitiveValue(_0x4c5a24);}return _0x121463;}export function redactCommandArgv(_0x445cc6){const _0x111e9d=a175_0x5716bc,_0x2442d9=[];let _0x1ef625=![];for(const _0x283076 of _0x445cc6){if(_0x1ef625){_0x2442d9['push'](REDACTED_VALUE),_0x1ef625=![];continue;}const _0x105e8e=_0x283076[_0x111e9d(0x158)](/^--([^=]+)(?:=(.*))?$/);if(!_0x105e8e||!isSensitiveFlagName(_0x105e8e[0x1]??'')){_0x2442d9[_0x111e9d(0x14d)](_0x283076);continue;}_0x2442d9[_0x111e9d(0x14d)]('--'+_0x105e8e[0x1]+(_0x105e8e[0x2]===undefined?'':'='+REDACTED_VALUE)),_0x105e8e[0x2]===undefined&&(_0x1ef625=!![]);}return _0x2442d9;}export{REDACTED_VALUE};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x9b0922,_0x434892){const _0x41297a=a176_0x302a,_0x222872=_0x9b0922();while(!![]){try{const _0x2f00f1=-parseInt(_0x41297a(0x9b))/0x1*(parseInt(_0x41297a(0xa8))/0x2)+parseInt(_0x41297a(0xb0))/0x3*(-parseInt(_0x41297a(0x96))/0x4)+parseInt(_0x41297a(0x9e))/0x5*(-parseInt(_0x41297a(0x93))/0x6)+parseInt(_0x41297a(0xa0))/0x7*(parseInt(_0x41297a(0xab))/0x8)+-parseInt(_0x41297a(0xac))/0x9+parseInt(_0x41297a(0xa1))/0xa*(parseInt(_0x41297a(0x9c))/0xb)+-parseInt(_0x41297a(0xa3))/0xc*(-parseInt(_0x41297a(0x94))/0xd);if(_0x2f00f1===_0x434892)break;else _0x222872['push'](_0x222872['shift']());}catch(_0x5bd53e){_0x222872['push'](_0x222872['shift']());}}}(a176_0x2c1e,0xc1229));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';function a176_0x2c1e(){const _0x12ae09=['16FDwNtM','\x20is\x20recommended,\x20current\x20','now','filter','stableVersion','22459IrFCOh','11lLkIbH','utf8','332440kGAbhM','belowMinimum','2486890nzUFfy','14438170WriFUl','currentVersion','912636vmcFDC','.cache','stringify','parse','lovrabet-cli','76ViHHDv','trim','yes','16XSaTnq','13309065MXvgNK',',\x20run:\x20','/v/','toLowerCase','692457XYaNOA','42FEFQOU','403IqxxvJ','lastNotifiedAt'];a176_0x2c1e=function(){return _0x12ae09;};return a176_0x2c1e();}const UPDATE_NOTICE_TTL_MS=0x18*0x3c*0x3c*0x3e8;function isUpdateNoticeDisabled(){const _0x4129cd=a176_0x302a,_0x5d7d02=process.env.LOVRABET_NO_UPDATE_NOTICE?.[_0x4129cd(0xa9)]()[_0x4129cd(0xaf)]();return _0x5d7d02==='1'||_0x5d7d02==='true'||_0x5d7d02===_0x4129cd(0xaa);}function cacheRoot(){const _0x16e1ae=a176_0x302a;return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),_0x16e1ae(0xa4));}export function getUpdateNoticeCachePath(){const _0x21b3da=a176_0x302a;return join(cacheRoot(),_0x21b3da(0xa7),'update-check.json');}async function readUpdateNoticeCache(){const _0x4a37e3=a176_0x302a;try{const _0x4aa9d3=await readFile(getUpdateNoticeCachePath(),_0x4a37e3(0x9d)),_0x493d28=JSON[_0x4a37e3(0xa6)](_0x4aa9d3);if(!_0x493d28||typeof _0x493d28!=='object')return{};return _0x493d28;}catch{return{};}}async function writeUpdateNoticeCache(_0x24fa94){const _0x540d50=a176_0x302a;try{const _0x3c1ff7=getUpdateNoticeCachePath();await mkdir(dirname(_0x3c1ff7),{'recursive':!![]}),await writeFile(_0x3c1ff7,JSON[_0x540d50(0xa5)](_0x24fa94,null,0x2)+'\x0a',_0x540d50(0x9d));}catch{}}function isRecentlyNotified(_0x49a308,_0x391659,_0x53c411){const _0x3d875c=a176_0x302a;return _0x49a308['lastNotifiedVersion']===_0x391659&&typeof _0x49a308[_0x3d875c(0x95)]==='number'&&_0x53c411-_0x49a308[_0x3d875c(0x95)]<UPDATE_NOTICE_TTL_MS;}function a176_0x302a(_0x406172,_0x142dc5){_0x406172=_0x406172-0x93;const _0x2c1e4e=a176_0x2c1e();let _0x302a18=_0x2c1e4e[_0x406172];return _0x302a18;}export function buildNpmVersionUrl(_0x4f73f7){const _0x490cc9=a176_0x302a;return'https://www.npmjs.com/package/'+LOVRABET_NPM_PACKAGE_NAME+_0x490cc9(0xae)+_0x4f73f7;}export async function resolveLatestUpdateNotice(_0x5f2423){const _0x32967a=a176_0x302a;if(isUpdateNoticeDisabled())return null;try{const _0x1cdbb0=Date[_0x32967a(0x98)](),_0x3066bb=_0x5f2423??await checkCliVersion(),_0x25d443=_0x3066bb[_0x32967a(0xa2)],_0x5d70b0=_0x3066bb[_0x32967a(0x9a)],_0x1e39eb=await readUpdateNoticeCache();if(!_0x5d70b0||!_0x3066bb['needsUpgrade']||_0x3066bb[_0x32967a(0x9f)])return null;if(isRecentlyNotified(_0x1e39eb,_0x5d70b0,_0x1cdbb0))return null;const _0x712844=getCliUpgradeCommand(_0x3066bb);return await writeUpdateNoticeCache({..._0x1e39eb,'checkedAt':_0x1cdbb0,'latest':_0x5d70b0,'failed':![],'lastNotifiedVersion':_0x5d70b0,'lastNotifiedAt':_0x1cdbb0}),{'command':_0x712844,'current':_0x25d443,'latest':_0x5d70b0,'url':buildNpmVersionUrl(_0x5d70b0),'message':[_0x3066bb['upgradeMessage'],CLI_BIN_NAME+'\x20'+_0x5d70b0+_0x32967a(0x97)+_0x25d443+_0x32967a(0xad)+_0x712844][_0x32967a(0x99)](Boolean)['join']('\x20')};}catch{return null;}}
|
package/lib/utils/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x9020c7,_0x4c8f23){const _0x5f2ba7=a177_0x3301,_0x3e04b9=_0x9020c7();while(!![]){try{const _0x2500ff=-parseInt(_0x5f2ba7(0xae))/0x1*(parseInt(_0x5f2ba7(0xa6))/0x2)+parseInt(_0x5f2ba7(0xaa))/0x3+-parseInt(_0x5f2ba7(0xa8))/0x4*(-parseInt(_0x5f2ba7(0xa9))/0x5)+-parseInt(_0x5f2ba7(0xab))/0x6+-parseInt(_0x5f2ba7(0xa7))/0x7*(-parseInt(_0x5f2ba7(0xac))/0x8)+-parseInt(_0x5f2ba7(0xaf))/0x9+parseInt(_0x5f2ba7(0xa5))/0xa;if(_0x2500ff===_0x4c8f23)break;else _0x3e04b9['push'](_0x3e04b9['shift']());}catch(_0x3d2d8f){_0x3e04b9['push'](_0x3e04b9['shift']());}}}(a177_0x402e,0x19893));import{BUILD_TIME,GIT_COMMIT,VERSION}from'../generated/build-info.js';export function getCliVersion(){return VERSION;}function a177_0x3301(_0x3ef142,_0x52497c){_0x3ef142=_0x3ef142-0xa5;const _0x402e3e=a177_0x402e();let _0x3301dd=_0x402e3e[_0x3ef142];return _0x3301dd;}function a177_0x402e(){const _0x1877aa=['305ANKita','1801692vvAiKS','1473870ZfaMWK','196JnspGH','17045KxOkMm','680536WxLSDD','5lDRqHd','13746eKcFYU','1137210FXrtZq','664ZHoynj','slice'];a177_0x402e=function(){return _0x1877aa;};return a177_0x402e();}export function getCliGitCommit(){const _0x437914=String(GIT_COMMIT);return _0x437914&&_0x437914!=='unknown'?_0x437914:'';}export function getCliVersionDisplay(){const _0xf45744=a177_0x3301,_0x5497d4=getCliGitCommit(),_0x52c906=BUILD_TIME[_0xf45744(0xad)](0x0,0xa);if(!_0x5497d4||!_0x52c906)return VERSION;return VERSION+'\x20('+_0x5497d4+',\x20'+_0x52c906+')';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x24c9eb,_0x3025b2){var _0x4faaab=a178_0x1e82,_0x36df31=_0x24c9eb();while(!![]){try{var _0x33d6e0=-parseInt(_0x4faaab(0x167))/0x1*(parseInt(_0x4faaab(0x15f))/0x2)+-parseInt(_0x4faaab(0x15e))/0x3*(-parseInt(_0x4faaab(0x160))/0x4)+parseInt(_0x4faaab(0x163))/0x5+parseInt(_0x4faaab(0x162))/0x6+-parseInt(_0x4faaab(0x15d))/0x7*(parseInt(_0x4faaab(0x166))/0x8)+-parseInt(_0x4faaab(0x164))/0x9+-parseInt(_0x4faaab(0x168))/0xa*(-parseInt(_0x4faaab(0x165))/0xb);if(_0x33d6e0===_0x3025b2)break;else _0x36df31['push'](_0x36df31['shift']());}catch(_0x10432f){_0x36df31['push'](_0x36df31['shift']());}}}(a178_0x392f,0x9f7ce));function a178_0x392f(){var _0x356161=['write','2139162eoZTlC','4138670QSrYSz','6347448ZWCNck','33RIycGR','2602792Tzwdmr','305922CEinjd','3544870XSiCFZ','7IlSoEs','3iBHvLS','8HHGkCu','2639396svPQtM'];a178_0x392f=function(){return _0x356161;};return a178_0x392f();}function a178_0x1e82(_0x1ead76,_0x250d78){_0x1ead76=_0x1ead76-0x15d;var _0x392f98=a178_0x392f();var _0x1e82c5=_0x392f98[_0x1ead76];return _0x1e82c5;}export function writeCliSideChannelLine(_0x47bec0){var _0x30f2d4=a178_0x1e82;process['stderr'][_0x30f2d4(0x161)](_0x47bec0+'\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.6-beta.
|
|
4
|
+
version: 2.3.6-beta.3
|
|
5
5
|
description: "Lovrabet 运行态 CLI — 面向业务场景的 AI 操作套件,通过 lovrabet 命令管理应用目录、业务角色与权限、用户级外部账号、Service Tree 业务命令、API 文档发现、数据集查询、Instant API 数据操作、可恢复 Excel 导入、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、Excel 导入、data import-excel、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:
|
|
@@ -204,12 +204,14 @@ Service Tree 未命中不是失败条件,也不代表业务能力不存在。
|
|
|
204
204
|
|
|
205
205
|
这种情况下,直接进入:
|
|
206
206
|
|
|
207
|
-
1. `dataset list --name ...`
|
|
207
|
+
1. 按数据集名称用 `dataset list --name ...`;已知物理表名时用 `dataset list --table-name ...`
|
|
208
208
|
2. `dataset detail --code ...`
|
|
209
209
|
3. `data filter/getOne/create/batchCreate/update/delete`
|
|
210
210
|
|
|
211
211
|
不要先多打一轮应用发现命令制造噪音。
|
|
212
212
|
|
|
213
|
+
下面的名称关键词示例也适用于默认候选和其他候选 app 的验证:用户提供物理表名时,将 `--name <关键词>` 换成 `--table-name <表名前缀>`,不要把物理表名当作数据集名称搜索。筛选参数均可单独使用;同时传入时按 AND 组合,不要求补齐其他筛选条件。匹配规则见 [数据集发现](references/dataset-discovery-workflow.md)。
|
|
214
|
+
|
|
213
215
|
`defaultApp` 只是弱候选,不是强上下文。未显式指定 app 时,如果本地已有 `defaultApp`,应先在默认候选里按需求关键词做数据集验证;无命中、弱命中或语义不合理时,再扩大到 `app list` 里查找其他应用。
|
|
214
216
|
|
|
215
217
|
### 需要进一步应用决议的场景
|
|
@@ -405,7 +407,7 @@ Service Tree 未命中不是失败条件,也不代表业务能力不存在。
|
|
|
405
407
|
|
|
406
408
|
| 意图 | 命令 |
|
|
407
409
|
|------|------|
|
|
408
|
-
| 找数据集 | `lovrabet dataset list [--name 关键词] [--code 精确码]` |
|
|
410
|
+
| 找数据集 | `lovrabet dataset list [--name 关键词] [--table-name 表名前缀] [--code 精确码]` |
|
|
409
411
|
| 看数据集字段、关联信息和操作 | `lovrabet dataset detail --code <code> [--format json]` |
|
|
410
412
|
| 查运行态 API 文档 | `lovrabet api-doc list [--category dataset] [--keyword aggregate]` |
|
|
411
413
|
| 看 API 文档详情 | `lovrabet api-doc detail --code dataset_list` |
|
|
@@ -39,6 +39,8 @@ lovrabet app list
|
|
|
39
39
|
|
|
40
40
|
## 标准决议流程
|
|
41
41
|
|
|
42
|
+
以下示例按数据集名称使用 `--name`。用户提供物理表名时,改用 `--table-name <表名前缀>`,可单独使用,无需同时提供 `--name` 或 `--code`;多个筛选条件按 AND 组合。匹配规则见 [数据集发现](../references/dataset-discovery-workflow.md)。
|
|
43
|
+
|
|
42
44
|
1. 先看是否已有明确 app 上下文
|
|
43
45
|
2. 没有明确上下文但有 `defaultApp` 时,先验证默认候选:
|
|
44
46
|
|
|
@@ -20,16 +20,25 @@ lovrabet api-doc detail --code dataset_data_filter
|
|
|
20
20
|
|
|
21
21
|
3. 定位数据集
|
|
22
22
|
|
|
23
|
+
根据已有线索选择一个筛选参数即可:数据集名称用 `--name`,物理表名用 `--table-name`,数据集 code 用 `--code`。不要要求用户补齐另外两个参数。
|
|
24
|
+
|
|
23
25
|
```bash
|
|
24
26
|
lovrabet dataset list --name "<关键词>"
|
|
27
|
+
|
|
28
|
+
# 已知物理表名时
|
|
29
|
+
lovrabet dataset list --table-name crm_product
|
|
25
30
|
```
|
|
26
31
|
|
|
32
|
+
多个筛选参数同时传入时按 AND 组合。表名采用前缀匹配,可能返回多个候选;先核对返回的 `table`、`name` 和 `code`。详细规则见 [数据集发现](../references/dataset-discovery-workflow.md)。
|
|
33
|
+
|
|
27
34
|
如需限定候选 app:
|
|
28
35
|
|
|
29
36
|
```bash
|
|
30
37
|
lovrabet dataset list --app <name> --name "<关键词>"
|
|
31
38
|
```
|
|
32
39
|
|
|
40
|
+
已知物理表名时,将上述 `--name "<关键词>"` 换成 `--table-name "<表名前缀>"`。
|
|
41
|
+
|
|
33
42
|
4. 看数据集结构
|
|
34
43
|
|
|
35
44
|
```bash
|
|
@@ -75,7 +84,7 @@ lovrabet data filter --code <datasetCode> --params '{"where":{"status":{"$eq":"a
|
|
|
75
84
|
以下情况只用 `dataset list` 就够:
|
|
76
85
|
|
|
77
86
|
- 用户只是问“有哪些数据集”
|
|
78
|
-
-
|
|
87
|
+
- 用户只是想按数据集名称或物理表名前缀搜索数据集
|
|
79
88
|
- 只需要数据集 code 和字段名数组
|
|
80
89
|
|
|
81
90
|
## 什么时候必须看 `dataset detail`
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
在执行 Instant API 数据操作前,需要先找到目标数据集并了解其字段结构。
|
|
6
6
|
|
|
7
|
+
按已知线索选择筛选参数:数据集名称用 `--name`,物理表名用 `--table-name`,数据集 code 用 `--code`。下面按名称验证应用的示例,在已知物理表名时可将 `--name "<关键词>"` 换成 `--table-name "<表名前缀>"`。
|
|
8
|
+
|
|
7
9
|
## 先不要默认查 app
|
|
8
10
|
|
|
9
11
|
`dataset` 工作流的第一步不是固定的 `app list`,而是先判断当前是否已经有明确 app 上下文。
|
|
@@ -71,6 +73,12 @@ lovrabet dataset list
|
|
|
71
73
|
# 按名称过滤(服务端模糊匹配)
|
|
72
74
|
lovrabet dataset list --name "订单"
|
|
73
75
|
|
|
76
|
+
# 仅按物理表名前缀过滤,无需同时提供 --name 或 --code
|
|
77
|
+
lovrabet dataset list --table-name crm_product
|
|
78
|
+
|
|
79
|
+
# 同时限定数据集名称和物理表名(AND)
|
|
80
|
+
lovrabet dataset list --name "商品" --table-name crm_product
|
|
81
|
+
|
|
74
82
|
# 按 code 过滤(服务端精确匹配)
|
|
75
83
|
lovrabet dataset list --code "abc123def4567890abcdef012345678"
|
|
76
84
|
|
|
@@ -84,10 +92,15 @@ lovrabet dataset list --format json
|
|
|
84
92
|
|
|
85
93
|
| Flag | 类型 | 必填 | 说明 |
|
|
86
94
|
|------|------|------|------|
|
|
87
|
-
| `--name` | string | 否 |
|
|
95
|
+
| `--name` | string | 否 | 按数据集名称包含匹配(服务端) |
|
|
96
|
+
| `--table-name` | string | 否 | 透传为 `tableName`,按物理表名前缀匹配(服务端) |
|
|
88
97
|
| `--code` | string | 否 | 按 dataset code 精确过滤(服务端,32 位 hex) |
|
|
89
98
|
| `--format` | string | 否 | 输出格式:`json` / `pretty` / `table` |
|
|
90
99
|
|
|
100
|
+
`--name`、`--table-name`、`--code` 均为可选参数:可只传任意一个,也可不传筛选参数;多个参数同时传入时按 AND 组合,不会互相覆盖。不传或传空字符串时不增加对应筛选条件。
|
|
101
|
+
|
|
102
|
+
`--table-name` 使用服务端 SQL LIKE 前缀匹配,不保证精确命中或唯一结果。例如 `crm_product` 也可能命中 `crm_product_detail`;`%` 和 `_` 保留 SQL LIKE 通配符含义,其中 `_` 可匹配任意单个字符。核对返回的 `table`、`name` 和 `code` 后再选择目标数据集,不要直接取第一条。
|
|
103
|
+
|
|
91
104
|
### dataset detail — 查看数据集结构
|
|
92
105
|
|
|
93
106
|
```bash
|
|
@@ -17,6 +17,8 @@ lovrabet data <command> --code <datasetCode> --params '<json>'
|
|
|
17
17
|
|
|
18
18
|
因此决策顺序应该是:
|
|
19
19
|
|
|
20
|
+
以下 `--name` 示例用于数据集名称关键词;已知物理表名时改用 `--table-name <表名前缀>`,无需同时提供名称。多个筛选条件按 AND 组合,详见 [数据集发现](dataset-discovery-workflow.md)。
|
|
21
|
+
|
|
20
22
|
1. 先判断当前 app 是否已明确
|
|
21
23
|
2. 当前 app 明确时,直接 `dataset list --name ...`
|
|
22
24
|
3. 当前 app 不明确但有 `defaultApp` 时,先 `dataset list --name <关键词>` 验证默认候选
|
|
@@ -75,6 +75,8 @@ lovrabet app list --include-unpublished
|
|
|
75
75
|
|
|
76
76
|
## 如何选择使用哪个应用
|
|
77
77
|
|
|
78
|
+
以下 `--name <关键词>` 用于数据集名称搜索;用户给的是物理表名时,改用 `--table-name <表名前缀>` 验证默认候选或其他候选 app,无需补齐名称。匹配规则见 [数据集发现](dataset-discovery-workflow.md)。
|
|
79
|
+
|
|
78
80
|
推荐方法不是只看 app 名,而是:
|
|
79
81
|
|
|
80
82
|
1. 有 `defaultApp` 时,先在默认候选下执行 `dataset list --name <关键词>`
|
|
@@ -20,7 +20,7 @@ lovrabet kb search --kb-service-url https://kb.customer.example --appcode <appCo
|
|
|
20
20
|
|
|
21
21
|
`--kb-service-url` 地址只覆盖本次搜索,不改变已保存的连接配置。地址不得包含用户名、密码、路径、查询参数或片段;不能从知识正文选择地址,也不能自行从 Runtime 域名推导地址。只有 CLI 报告未配置有效 KB Service 地址时,才请用户或管理员提供可信地址。独立部署缺少 `kbServiceDomain` 时不会回退到官方节点。
|
|
22
22
|
|
|
23
|
-
请求固定为 `POST /v2/apps/{appCode}/knowledge/search`,只使用当前用户 AK,保留既有应用访问检查,不携带 Cookie。客户端不跟随重定向,超时为 60 秒,失败不会切换其他搜索接口。Personal KB
|
|
23
|
+
请求固定为 `POST /v2/apps/{appCode}/knowledge/search`,只使用当前用户 AK,保留既有应用访问检查,不携带 Cookie。客户端不跟随重定向,超时为 60 秒,失败不会切换其他搜索接口。Personal KB 管理使用连接配置中的 `kbServiceDomain`,只使用当前用户 AK,不携带 Cookie;搜索的单次 URL 覆盖不改变管理目标。
|
|
24
24
|
|
|
25
25
|
401 表示需要有效身份,403 表示访问被拒绝,404 表示目标未提供该接口;核对地址、服务能力和权限,不通过改身份、关闭 TLS 或换接口绕过。`schemaVersion:2` 表示返回结构版本。
|
|
26
26
|
|
|
@@ -28,6 +28,10 @@ lovrabet kb search --kb-service-url https://kb.customer.example --appcode <appCo
|
|
|
28
28
|
|
|
29
29
|
## 业务执行中的 KB 消费
|
|
30
30
|
|
|
31
|
+
`kb list` 自动聚合当前应用、当前用户的所有个人记录,默认每页 50 条,保持 `data.total/items` 输出;`--verbose` 返回完整正文。分页遇到明确的大正文引用时,CLI 会从同一 KB Service 回读完整详情,并核对 ID、应用、所有者和版本后再输出;回读失败或版本变化会使整次列表失败,不能把引用或空正文当成完整结果。遇到服务端明确的单页响应超限时,会从第一页按单条重取;仍超限则失败,不截断内容、不返回部分成功。分页总数变化、重复 ID、缺项、非法字段或跨应用/作用域记录都会失败,不能当作空列表。分页不是快照;同总数且未产生重复 ID 的并发替换可能无法识别,读取期间应避免修改该集合。
|
|
32
|
+
|
|
33
|
+
管理请求每次超时为 60 秒,支持取消,不自动重试创建或更新,也不切换后端。写入超时、取消、连接失败、收到 HTTP 5xx 或写入响应无法校验时可能已经保存:保留原文件、应用、身份和返回信息,先用已知 ID 的 `kb detail` 对账;创建未获得 ID 时,通过 `kb list --verbose` 比较标题和完整正文,不直接重发创建。401/403/404/413/429/503 或业务错误均视为失败并按实际提示处理。
|
|
34
|
+
|
|
31
35
|
KB 用于术语、同义词、适用边界和候选能力的语义消歧。以下情况才查询:
|
|
32
36
|
|
|
33
37
|
- 运营术语无法直接对应 Service Tree、Dataset 或能力名称
|
|
@@ -76,11 +80,11 @@ lovrabet kb update --id <id> --file ./approval-v2.md --dry-run
|
|
|
76
80
|
lovrabet kb update --id <id> --title "新版订单审批规则" --file ./approval-v2.md
|
|
77
81
|
```
|
|
78
82
|
|
|
79
|
-
|
|
83
|
+
每次管理命令执行固定使用一个 KB Service 地址;省略 `--title` 时,CLI 会从该地址读取当前条目并保留原标题。创建和更新始终通过 JSON 请求提交 `appCode/title/content`,每次只提交一次;失败后先只读对账,不自动重试或切换写入接口。CLI 不按正文大小切换协议,也不设本地正文大小上限;实际请求仍受服务端、网关和进程资源限制。`--dry-run` 展示实际 JSON 接口和包含标题、完整正文的请求体供审阅。空文件会明确将正文清空;缺少 `content` 的普通详情响应是协议错误,不能当作空正文继续覆盖。
|
|
80
84
|
|
|
81
85
|
## RAG 状态
|
|
82
86
|
|
|
83
|
-
create/update 返回后要检查 `ragStatus` 和 `ragErrorMessage`。如果状态仍在处理或有错误,只能说条目已经写入,不能声称知识检索或聊天使用已经端到端可用。
|
|
87
|
+
create/update 返回后要检查 `ragStatus` 和 `ragErrorMessage`,按服务端返回的 `READY`、`PENDING`、`UNKNOWN`、`DELETING`、`DELETED` 等状态判断,不只识别旧的 `SYNCED`。如果状态仍在处理或有错误,只能说条目已经写入,不能声称知识检索或聊天使用已经端到端可用。
|
|
84
88
|
|
|
85
89
|
推荐:
|
|
86
90
|
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"name": "lovrabet",
|
|
4
4
|
"packageName": "@lovrabet/lovrabet-cli",
|
|
5
|
-
"packageVersion": "2.3.6-beta.
|
|
6
|
-
"skillVersion": "2.3.6-beta.
|
|
5
|
+
"packageVersion": "2.3.6-beta.3",
|
|
6
|
+
"skillVersion": "2.3.6-beta.3",
|
|
7
7
|
"files": [
|
|
8
8
|
"SKILL.md",
|
|
9
9
|
"guides/app-resolution.md",
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"references/lovrabet-user-account.md",
|
|
41
41
|
"references/lovrabet-workspace.md"
|
|
42
42
|
],
|
|
43
|
-
"digest": "
|
|
43
|
+
"digest": "0b8e864053de40f6de2de8867117a41f003511840ece035fe7a0ec0fddbc8fb1"
|
|
44
44
|
}
|