@lovrabet/lovrabet-cli 2.3.2 → 2.3.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/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.d.ts +15 -0
- package/lib/commands/approval/index.js +1 -0
- 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/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.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 +83 -0
- 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.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/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.d.ts +5 -0
- package/lib/utils/positive-safe-integer.js +1 -0
- package/lib/utils/redaction.d.ts +17 -0
- package/lib/utils/redaction.js +1 -0
- 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 +3 -2
- package/skills/lovrabet/references/lovrabet-approval-workflow.md +73 -0
- package/skills/lovrabet.manifest.json +4 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function a162_0x58d4(_0x4417f7,_0x33d2ac){_0x4417f7=_0x4417f7-0x7b;const _0x43a578=a162_0x43a5();let _0x58d4a3=_0x43a578[_0x4417f7];return _0x58d4a3;}function a162_0x43a5(){const _0x38165d=['isSafeInteger','1396230ZJaexy','648gmicvW','262416lOlEIV','test','77dYOZsM','8VzCADR','140568HSwXah','34600ZsJMxX','4zsqJmU','81715gWZJZc','7163292EafZKa','number','11KtWnGV','1122265IpfiAK','string'];a162_0x43a5=function(){return _0x38165d;};return a162_0x43a5();}(function(_0x1544a5,_0x57d820){const _0x61c356=a162_0x58d4,_0x36f395=_0x1544a5();while(!![]){try{const _0x409488=parseInt(_0x61c356(0x87))/0x1*(parseInt(_0x61c356(0x83))/0x2)+parseInt(_0x61c356(0x7e))/0x3+-parseInt(_0x61c356(0x86))/0x4*(-parseInt(_0x61c356(0x7b))/0x5)+-parseInt(_0x61c356(0x80))/0x6+-parseInt(_0x61c356(0x82))/0x7*(-parseInt(_0x61c356(0x84))/0x8)+parseInt(_0x61c356(0x7f))/0x9*(-parseInt(_0x61c356(0x85))/0xa)+-parseInt(_0x61c356(0x8a))/0xb*(parseInt(_0x61c356(0x88))/0xc);if(_0x409488===_0x57d820)break;else _0x36f395['push'](_0x36f395['shift']());}catch(_0x4386af){_0x36f395['push'](_0x36f395['shift']());}}}(a162_0x43a5,0x4e2cf));export function normalizePositiveSafeInteger(_0x3cb92f){const _0x1562f0=a162_0x58d4;if(typeof _0x3cb92f===_0x1562f0(0x89))return Number[_0x1562f0(0x7d)](_0x3cb92f)&&_0x3cb92f>0x0?_0x3cb92f:undefined;if(typeof _0x3cb92f!==_0x1562f0(0x7c)||!/^\d+$/[_0x1562f0(0x81)](_0x3cb92f))return undefined;const _0x9306c4=Number(_0x3cb92f);return Number[_0x1562f0(0x7d)](_0x9306c4)&&_0x9306c4>0x0?_0x9306c4:undefined;}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Redaction helpers for command arguments and API-shaped values.
|
|
3
|
+
*
|
|
4
|
+
* Approval payloads can contain user-provided form data. These helpers keep
|
|
5
|
+
* credentials and similarly sensitive values out of previews, logs, and output
|
|
6
|
+
* while preserving ordinary business fields for inspection.
|
|
7
|
+
*/
|
|
8
|
+
declare const REDACTED_VALUE = "[REDACTED]";
|
|
9
|
+
/** Returns whether an object key contains a credential or secret value. */
|
|
10
|
+
export declare function isSensitiveKey(key: string): boolean;
|
|
11
|
+
/** Returns whether a command flag should be hidden in command text. */
|
|
12
|
+
export declare function isSensitiveFlagName(key: string): boolean;
|
|
13
|
+
/** Recursively redacts sensitive object properties without mutating the input. */
|
|
14
|
+
export declare function redactSensitiveValue(value: unknown): unknown;
|
|
15
|
+
/** Redacts values of sensitive flags in a reconstructed command invocation. */
|
|
16
|
+
export declare function redactCommandArgv(argv: readonly string[]): string[];
|
|
17
|
+
export { REDACTED_VALUE };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const a163_0x4ac741=a163_0x4200;(function(_0x18b7f5,_0x34d8db){const _0x4b26e6=a163_0x4200,_0x1cb6b2=_0x18b7f5();while(!![]){try{const _0x40a405=-parseInt(_0x4b26e6(0x1b4))/0x1*(parseInt(_0x4b26e6(0x1c2))/0x2)+parseInt(_0x4b26e6(0x1b8))/0x3*(-parseInt(_0x4b26e6(0x1b3))/0x4)+parseInt(_0x4b26e6(0x1ad))/0x5*(-parseInt(_0x4b26e6(0x1b6))/0x6)+parseInt(_0x4b26e6(0x1b5))/0x7+parseInt(_0x4b26e6(0x1ba))/0x8+-parseInt(_0x4b26e6(0x1bb))/0x9*(parseInt(_0x4b26e6(0x1af))/0xa)+parseInt(_0x4b26e6(0x1bd))/0xb;if(_0x40a405===_0x34d8db)break;else _0x1cb6b2['push'](_0x1cb6b2['shift']());}catch(_0x42435a){_0x1cb6b2['push'](_0x1cb6b2['shift']());}}}(a163_0x1a4c,0x2f6f4));const REDACTED_VALUE=a163_0x4ac741(0x1ab),SENSITIVE_KEY_PATTERN=/(?:access.?key|api.?key|authorization|cookie|credential|password|passwd|private.?key|secret|token|webhook)/i,SENSITIVE_FLAG_NAMES=new Set(['comment',a163_0x4ac741(0x1bf)]),SENSITIVE_VALUE_KEYS=new Set([a163_0x4ac741(0x1b1)]);export function isSensitiveKey(_0x443adb){const _0x913b49=a163_0x4ac741,_0x38e7d2=_0x443adb[_0x913b49(0x1bc)](/_/g,'-')[_0x913b49(0x1ae)]();return SENSITIVE_KEY_PATTERN[_0x913b49(0x1b7)](_0x38e7d2);}export function isSensitiveFlagName(_0x1c499c){const _0x517b0d=a163_0x4ac741,_0x4754c2=_0x1c499c[_0x517b0d(0x1bc)](/_/g,'-')[_0x517b0d(0x1ae)]();return isSensitiveKey(_0x4754c2)||SENSITIVE_FLAG_NAMES[_0x517b0d(0x1ac)](_0x4754c2);}function a163_0x4200(_0x1480ff,_0x53ab13){_0x1480ff=_0x1480ff-0x1ab;const _0x1a4c57=a163_0x1a4c();let _0x420017=_0x1a4c57[_0x1480ff];return _0x420017;}function redactVariableValues(_0x22858d){const _0x26b1de=a163_0x4ac741;if(Array[_0x26b1de(0x1c0)](_0x22858d))return _0x22858d['map'](_0x1acf66=>redactVariableValues(_0x1acf66));if(_0x22858d&&typeof _0x22858d===_0x26b1de(0x1b2))return Object['fromEntries'](Object['entries'](_0x22858d)[_0x26b1de(0x1c1)](([_0x38d169,_0x4bb949])=>[_0x38d169,redactVariableValues(_0x4bb949)]));return REDACTED_VALUE;}export function redactSensitiveValue(_0x445dd8){const _0x474ee9=a163_0x4ac741;if(Array[_0x474ee9(0x1c0)](_0x445dd8))return _0x445dd8['map'](_0x4cb793=>redactSensitiveValue(_0x4cb793));if(!_0x445dd8||typeof _0x445dd8!==_0x474ee9(0x1b2))return _0x445dd8;const _0x32a64f={};for(const [_0x4a08e0,_0x45c7f2]of Object[_0x474ee9(0x1be)](_0x445dd8)){const _0x2f544c=_0x4a08e0[_0x474ee9(0x1bc)](/_/g,'-')['toLowerCase']();_0x32a64f[_0x4a08e0]=_0x2f544c===_0x474ee9(0x1bf)?redactVariableValues(_0x45c7f2):SENSITIVE_VALUE_KEYS['has'](_0x2f544c)||isSensitiveKey(_0x4a08e0)?REDACTED_VALUE:redactSensitiveValue(_0x45c7f2);}return _0x32a64f;}export function redactCommandArgv(_0x35d9e3){const _0x39f43d=a163_0x4ac741,_0x3052fa=[];let _0x3af7bf=![];for(const _0x4bc043 of _0x35d9e3){if(_0x3af7bf){_0x3052fa['push'](REDACTED_VALUE),_0x3af7bf=![];continue;}const _0x8eb8dc=_0x4bc043[_0x39f43d(0x1b9)](/^--([^=]+)(?:=(.*))?$/);if(!_0x8eb8dc||!isSensitiveFlagName(_0x8eb8dc[0x1]??'')){_0x3052fa[_0x39f43d(0x1b0)](_0x4bc043);continue;}_0x3052fa[_0x39f43d(0x1b0)]('--'+_0x8eb8dc[0x1]+(_0x8eb8dc[0x2]===undefined?'':'='+REDACTED_VALUE)),_0x8eb8dc[0x2]===undefined&&(_0x3af7bf=!![]);}return _0x3052fa;}function a163_0x1a4c(){const _0x468ed6=['has','14975xCsOFr','toLowerCase','10SODFYD','push','comment','object','4QGJRhi','67KIfBVK','2687342DRtnPG','66cKGJVB','test','274407GIThPd','match','596288wxtDYg','658530evlezh','replace','1699137qVEZpJ','entries','variables','isArray','map','6598kxMXzK','[REDACTED]'];a163_0x1a4c=function(){return _0x468ed6;};return a163_0x1a4c();}export{REDACTED_VALUE};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a164_0x36a3(_0x449489,_0x2240ed){_0x449489=_0x449489-0x13c;const _0x11e913=a164_0x11e9();let _0x36a352=_0x11e913[_0x449489];return _0x36a352;}(function(_0x444a66,_0x3083eb){const _0x1d1a92=a164_0x36a3,_0x41421a=_0x444a66();while(!![]){try{const _0x251b19=parseInt(_0x1d1a92(0x143))/0x1*(parseInt(_0x1d1a92(0x13c))/0x2)+-parseInt(_0x1d1a92(0x146))/0x3+parseInt(_0x1d1a92(0x145))/0x4+-parseInt(_0x1d1a92(0x14f))/0x5+parseInt(_0x1d1a92(0x141))/0x6*(-parseInt(_0x1d1a92(0x142))/0x7)+-parseInt(_0x1d1a92(0x13f))/0x8+parseInt(_0x1d1a92(0x151))/0x9*(parseInt(_0x1d1a92(0x153))/0xa);if(_0x251b19===_0x3083eb)break;else _0x41421a['push'](_0x41421a['shift']());}catch(_0x341b38){_0x41421a['push'](_0x41421a['shift']());}}}(a164_0x11e9,0x40ba6));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 _0xd3f5a7=a164_0x36a3,_0x260d2a=process.env.LOVRABET_NO_UPDATE_NOTICE?.['trim']()[_0xd3f5a7(0x14c)]();return _0x260d2a==='1'||_0x260d2a===_0xd3f5a7(0x13e)||_0x260d2a===_0xd3f5a7(0x150);}function cacheRoot(){return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),'.cache');}export function getUpdateNoticeCachePath(){const _0x4683a4=a164_0x36a3;return join(cacheRoot(),_0x4683a4(0x147),'update-check.json');}function a164_0x11e9(){const _0xba5374=['lastNotifiedAt','\x20is\x20recommended,\x20current\x20','now','parse','toLowerCase','utf8','currentVersion','714190hscQNd','yes','826047xigwuo','join','30weZWvO','909742MGpIVN','lastNotifiedVersion','true','2796136XGeoTs','upgradeMessage','52542bHaBax','63txNRhm','1Wboiwe','stableVersion','2010940wAsZuh','1189983drJefi','lovrabet-cli'];a164_0x11e9=function(){return _0xba5374;};return a164_0x11e9();}async function readUpdateNoticeCache(){const _0x817a3b=a164_0x36a3;try{const _0x432534=await readFile(getUpdateNoticeCachePath(),_0x817a3b(0x14d)),_0x55a585=JSON[_0x817a3b(0x14b)](_0x432534);if(!_0x55a585||typeof _0x55a585!=='object')return{};return _0x55a585;}catch{return{};}}async function writeUpdateNoticeCache(_0x394dee){const _0x12a664=a164_0x36a3;try{const _0x2eb22d=getUpdateNoticeCachePath();await mkdir(dirname(_0x2eb22d),{'recursive':!![]}),await writeFile(_0x2eb22d,JSON['stringify'](_0x394dee,null,0x2)+'\x0a',_0x12a664(0x14d));}catch{}}function isRecentlyNotified(_0xc964e5,_0x26992a,_0x120360){const _0x51c6d0=a164_0x36a3;return _0xc964e5[_0x51c6d0(0x13d)]===_0x26992a&&typeof _0xc964e5['lastNotifiedAt']==='number'&&_0x120360-_0xc964e5[_0x51c6d0(0x148)]<UPDATE_NOTICE_TTL_MS;}export function buildNpmVersionUrl(_0x447455){return'https://www.npmjs.com/package/'+LOVRABET_NPM_PACKAGE_NAME+'/v/'+_0x447455;}export async function resolveLatestUpdateNotice(_0x3838fc){const _0x40d0d8=a164_0x36a3;if(isUpdateNoticeDisabled())return null;try{const _0x233666=Date[_0x40d0d8(0x14a)](),_0x3f74c8=_0x3838fc??await checkCliVersion(),_0x58e340=_0x3f74c8[_0x40d0d8(0x14e)],_0x5535b7=_0x3f74c8[_0x40d0d8(0x144)],_0xf6cb80=await readUpdateNoticeCache();if(!_0x5535b7||!_0x3f74c8['needsUpgrade']||_0x3f74c8['belowMinimum'])return null;if(isRecentlyNotified(_0xf6cb80,_0x5535b7,_0x233666))return null;const _0x3ce9f0=getCliUpgradeCommand(_0x3f74c8);return await writeUpdateNoticeCache({..._0xf6cb80,'checkedAt':_0x233666,'latest':_0x5535b7,'failed':![],'lastNotifiedVersion':_0x5535b7,'lastNotifiedAt':_0x233666}),{'command':_0x3ce9f0,'current':_0x58e340,'latest':_0x5535b7,'url':buildNpmVersionUrl(_0x5535b7),'message':[_0x3f74c8[_0x40d0d8(0x140)],CLI_BIN_NAME+'\x20'+_0x5535b7+_0x40d0d8(0x149)+_0x58e340+',\x20run:\x20'+_0x3ce9f0]['filter'](Boolean)[_0x40d0d8(0x152)]('\x20')};}catch{return null;}}
|
package/lib/utils/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0xd79e6,_0x3c8421){const _0x222344=a165_0x52ad,_0x3fd1e5=_0xd79e6();while(!![]){try{const _0x2ea0ac=-parseInt(_0x222344(0x83))/0x1*(-parseInt(_0x222344(0x82))/0x2)+-parseInt(_0x222344(0x88))/0x3*(-parseInt(_0x222344(0x80))/0x4)+parseInt(_0x222344(0x85))/0x5*(-parseInt(_0x222344(0x7f))/0x6)+-parseInt(_0x222344(0x87))/0x7+parseInt(_0x222344(0x89))/0x8*(parseInt(_0x222344(0x84))/0x9)+-parseInt(_0x222344(0x8a))/0xa+parseInt(_0x222344(0x7d))/0xb*(parseInt(_0x222344(0x7e))/0xc);if(_0x2ea0ac===_0x3c8421)break;else _0x3fd1e5['push'](_0x3fd1e5['shift']());}catch(_0x2842bb){_0x3fd1e5['push'](_0x3fd1e5['shift']());}}}(a165_0x583b,0xe6d5c));function a165_0x583b(){const _0x5b01bc=['11371547xoGlDc','12gBWEVD','6pHJqKu','4YdtkBm','slice','270486ctamEg','11konGgS','5899536lbzKYG','3132225XkTyqs','unknown','5140009IxXvDh','204423iQEzkH','8VIjSjC','9388630zToidH'];a165_0x583b=function(){return _0x5b01bc;};return a165_0x583b();}import{BUILD_TIME,GIT_COMMIT,VERSION}from'../generated/build-info.js';export function getCliVersion(){return VERSION;}export function getCliGitCommit(){const _0x27ef16=a165_0x52ad,_0x125a56=String(GIT_COMMIT);return _0x125a56&&_0x125a56!==_0x27ef16(0x86)?_0x125a56:'';}function a165_0x52ad(_0x15d13c,_0x3cd326){_0x15d13c=_0x15d13c-0x7d;const _0x583b36=a165_0x583b();let _0x52ad0e=_0x583b36[_0x15d13c];return _0x52ad0e;}export function getCliVersionDisplay(){const _0x1345ff=a165_0x52ad,_0x3292a6=getCliGitCommit(),_0x445b14=BUILD_TIME[_0x1345ff(0x81)](0x0,0xa);if(!_0x3292a6||!_0x445b14)return VERSION;return VERSION+'\x20('+_0x3292a6+',\x20'+_0x445b14+')';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a166_0xce70(){var _0x44d5f9=['6151243nDOMDy','287184tIylGo','19702480qGCjmr','stderr','6649368myBGxf','9UXowCF','1988230POYYOB','187204MxhTgI','33CZBUOh','6MAsrYb','write','455787zkEuzY'];a166_0xce70=function(){return _0x44d5f9;};return a166_0xce70();}function a166_0x37fd(_0xe073c2,_0x2272f9){_0xe073c2=_0xe073c2-0x1b8;var _0xce707d=a166_0xce70();var _0x37fd4a=_0xce707d[_0xe073c2];return _0x37fd4a;}(function(_0x195f2a,_0x1f4713){var _0x32b920=a166_0x37fd,_0x59f806=_0x195f2a();while(!![]){try{var _0x270f46=-parseInt(_0x32b920(0x1c0))/0x1+-parseInt(_0x32b920(0x1c2))/0x2+parseInt(_0x32b920(0x1bd))/0x3*(-parseInt(_0x32b920(0x1bc))/0x4)+-parseInt(_0x32b920(0x1bb))/0x5+-parseInt(_0x32b920(0x1be))/0x6*(-parseInt(_0x32b920(0x1c1))/0x7)+-parseInt(_0x32b920(0x1b9))/0x8+parseInt(_0x32b920(0x1ba))/0x9*(parseInt(_0x32b920(0x1c3))/0xa);if(_0x270f46===_0x1f4713)break;else _0x59f806['push'](_0x59f806['shift']());}catch(_0x3b3d2d){_0x59f806['push'](_0x59f806['shift']());}}}(a166_0xce70,0x7b886));export function writeCliSideChannelLine(_0x408a48){var _0x34dbb7=a166_0x37fd;process[_0x34dbb7(0x1b8)][_0x34dbb7(0x1bf)](_0x408a48+'\x0a');}
|
package/package.json
CHANGED
package/skills/lovrabet/SKILL.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lovrabet
|
|
3
3
|
displayName: Lovrabet 运行态 CLI
|
|
4
|
-
version: 2.3.
|
|
5
|
-
description: "Lovrabet 运行态 CLI — 面向业务场景的 AI 操作套件,通过 lovrabet 命令管理应用目录、业务角色与权限、用户级外部账号、Service Tree 业务命令、API 文档发现、数据集查询、Instant API 数据操作、Custom SQL/Backend Function、Personal Backend Function、文件上传、面向票证类业务材料文字与结构化字段提取的 OCR
|
|
4
|
+
version: 2.3.3
|
|
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:
|
|
8
8
|
bins: ["lovrabet"]
|
|
@@ -28,6 +28,7 @@ metadata:
|
|
|
28
28
|
- [数据集与数据流程](guides/dataset-and-data-workflow.md)
|
|
29
29
|
- [Custom SQL 与 Backend Function 流程](guides/sql-and-bff-workflow.md)
|
|
30
30
|
- [排障](guides/troubleshooting.md)
|
|
31
|
+
- [审批流运行态办理](references/lovrabet-approval-workflow.md)
|
|
31
32
|
- 命令细节 / 参数参考:
|
|
32
33
|
- `references/*.md`
|
|
33
34
|
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# 审批流运行态办理
|
|
2
|
+
|
|
3
|
+
Runtime CLI 只负责当前 AccessKey 用户的运行态任务查询和办理,不管理流程定义。当前用户由 `X-User-AK` 对应的服务端认证上下文确定,命令不接受 `--user-id`。
|
|
4
|
+
|
|
5
|
+
## 查询待办
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
lovrabet approval todo --app-code <APP_CODE>
|
|
9
|
+
lovrabet approval todo --app-code <APP_CODE> --page 2 --page-size 20 --format compress
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
未传 `--app-code` 时,命令使用当前工作区解析出的应用;服务端请求参数是 `appCode`、`currentPage` 和 `pageSize`。
|
|
13
|
+
|
|
14
|
+
## 查看任务
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
lovrabet approval task-detail --task-id <TASK_ID> --format json
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
详情中的 `canHandle`、`canCancel`、`transferCandidates`、`formData` 和流程上下文以 Runtime 返回为准。输出会遮罩敏感键;如响应包含 `variables`,其中的值只显示脱敏占位符。
|
|
21
|
+
|
|
22
|
+
## 审批和拒绝
|
|
23
|
+
|
|
24
|
+
先预览请求:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
lovrabet approval approve --task-id <TASK_ID> --comment '同意' --dry-run
|
|
28
|
+
lovrabet approval reject --task-id <TASK_ID> --comment '需要补充材料' --dry-run
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
确认后执行:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
lovrabet approval approve --task-id <TASK_ID> --comment '同意' --yes
|
|
35
|
+
lovrabet approval reject --task-id <TASK_ID> --comment '需要补充材料' --yes
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
`approve` 和 `reject` 都调用 Runtime 的 `/api/flow/approve`,区别只在请求体的 `approved` 值。流程后续路径由已发布流程定义决定,CLI 不自行解释。
|
|
39
|
+
|
|
40
|
+
## 转交
|
|
41
|
+
|
|
42
|
+
目标用户应来自任务详情的 `transferCandidates` 或其他已确认的 Runtime 资源:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
lovrabet approval transfer \
|
|
46
|
+
--task-id <TASK_ID> \
|
|
47
|
+
--target-user-id <USER_ID> \
|
|
48
|
+
--comment '请协助处理' \
|
|
49
|
+
--dry-run
|
|
50
|
+
|
|
51
|
+
lovrabet approval transfer \
|
|
52
|
+
--task-id <TASK_ID> \
|
|
53
|
+
--target-user-id <USER_ID> \
|
|
54
|
+
--comment '请协助处理' \
|
|
55
|
+
--yes
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
最终授权和候选人合法性由 Runtime 校验。
|
|
59
|
+
|
|
60
|
+
## Variables 与安全
|
|
61
|
+
|
|
62
|
+
审批变量支持内联 JSON 或文件:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
lovrabet approval approve --task-id <TASK_ID> \
|
|
66
|
+
--variables '{"amount":100}' --yes
|
|
67
|
+
lovrabet approval approve --task-id <TASK_ID> \
|
|
68
|
+
--variables @variables.json --yes
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
变量解析失败时不会发送请求。dry-run、错误重试命令和本地命令日志不会回显变量值、AccessKey、token 或 secret。
|
|
72
|
+
|
|
73
|
+
高风险命令在非交互模式必须传 `--yes`;`--dry-run` 只生成脱敏预览,不执行写请求。
|
|
@@ -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.3",
|
|
6
|
+
"skillVersion": "2.3.3",
|
|
7
7
|
"files": [
|
|
8
8
|
"SKILL.md",
|
|
9
9
|
"guides/app-resolution.md",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"references/instant-api-workflow.md",
|
|
16
16
|
"references/lovrabet-app-config.md",
|
|
17
17
|
"references/lovrabet-app.md",
|
|
18
|
+
"references/lovrabet-approval-workflow.md",
|
|
18
19
|
"references/lovrabet-auth.md",
|
|
19
20
|
"references/lovrabet-bff-workflow.md",
|
|
20
21
|
"references/lovrabet-config-commands.md",
|
|
@@ -37,5 +38,5 @@
|
|
|
37
38
|
"references/lovrabet-user-account.md",
|
|
38
39
|
"references/lovrabet-workspace.md"
|
|
39
40
|
],
|
|
40
|
-
"digest": "
|
|
41
|
+
"digest": "02276d7336297c9083c30a967c1e874b541b58962bc3162fe3516d2ba848ef1d"
|
|
41
42
|
}
|