@lovrabet/lovrabet-cli 2.2.4-beta.2 → 2.2.4-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/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/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.d.ts +19 -0
- 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/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/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/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/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/apply-jq-filter.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/references/lovrabet-ocr-workflow.md +17 -2
- package/skills/lovrabet.manifest.json +3 -3
package/lib/utils/logger.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a149_0x5c4268=a149_0x1424;(function(_0x2aaac0,_0xfdae50){const _0x4959d2=a149_0x1424,_0x1f7918=_0x2aaac0();while(!![]){try{const _0x2c3087=-parseInt(_0x4959d2(0x19f))/0x1+parseInt(_0x4959d2(0x186))/0x2*(-parseInt(_0x4959d2(0x17b))/0x3)+parseInt(_0x4959d2(0x16b))/0x4+-parseInt(_0x4959d2(0x1a4))/0x5*(-parseInt(_0x4959d2(0x178))/0x6)+-parseInt(_0x4959d2(0x16e))/0x7*(-parseInt(_0x4959d2(0x197))/0x8)+-parseInt(_0x4959d2(0x196))/0x9*(-parseInt(_0x4959d2(0x187))/0xa)+parseInt(_0x4959d2(0x184))/0xb*(parseInt(_0x4959d2(0x1a5))/0xc);if(_0x2c3087===_0xfdae50)break;else _0x1f7918['push'](_0x1f7918['shift']());}catch(_0x2e8d56){_0x1f7918['push'](_0x1f7918['shift']());}}}(a149_0x398b,0x82359));import a149_0x10928b from'winston';function a149_0x1424(_0x273a74,_0x28783b){_0x273a74=_0x273a74-0x16b;const _0x398b8c=a149_0x398b();let _0x142488=_0x398b8c[_0x273a74];return _0x142488;}import a149_0x375359 from'node:fs';import a149_0x278aa1 from'node:path';import{PRODUCT_CONFIG}from'../constant/product.js';class Logger{['winstonLogger'];[a149_0x5c4268(0x195)]='';[a149_0x5c4268(0x1a1)]='';constructor(){}['setRawCommand'](_0x32428a){const _0x31c989=a149_0x5c4268;this[_0x31c989(0x1a1)]=_0x32428a;}[a149_0x5c4268(0x170)](_0x26cbb6){const _0x52cdce=a149_0x5c4268;this[_0x52cdce(0x195)]=a149_0x278aa1[_0x52cdce(0x17d)](_0x26cbb6,PRODUCT_CONFIG[_0x52cdce(0x18e)]),this['winstonLogger']&&this['winstonLogger']['clear'](),this[_0x52cdce(0x18f)]();}['initWinstonLogger'](){const _0x140ce0=a149_0x5c4268,_0x438c10=a149_0x278aa1['dirname'](this[_0x140ce0(0x195)]);!a149_0x375359[_0x140ce0(0x17f)](_0x438c10)&&a149_0x375359[_0x140ce0(0x172)](_0x438c10,{'recursive':!![]});const _0x129adf=a149_0x10928b[_0x140ce0(0x183)][_0x140ce0(0x18c)](a149_0x10928b[_0x140ce0(0x183)][_0x140ce0(0x176)](),a149_0x10928b[_0x140ce0(0x183)][_0x140ce0(0x193)]({'stack':!![]}),a149_0x10928b[_0x140ce0(0x183)][_0x140ce0(0x19b)](_0x52f8db=>{const _0x192787=_0x140ce0,_0x177117={'timestamp':_0x52f8db['timestamp']||new Date()[_0x192787(0x182)](),'level':_0x52f8db[_0x192787(0x17a)]||_0x192787(0x17e),'command':_0x52f8db['command']||_0x192787(0x19a),'rawCommand':_0x52f8db[_0x192787(0x188)]||this['currentRawCommand']||undefined,'message':_0x52f8db[_0x192787(0x1a3)]||'','duration':_0x52f8db[_0x192787(0x185)]||undefined,'details':_0x52f8db[_0x192787(0x180)]||undefined};return JSON[_0x192787(0x1a2)](_0x177117);}));this[_0x140ce0(0x194)]=a149_0x10928b[_0x140ce0(0x174)]({'level':_0x140ce0(0x17e),'format':_0x129adf,'transports':[new a149_0x10928b[(_0x140ce0(0x18a))][(_0x140ce0(0x177))]({'filename':this[_0x140ce0(0x195)],'level':_0x140ce0(0x17e)})],'silent':![]}),a149_0x10928b[_0x140ce0(0x16f)]({'success':_0x140ce0(0x16d),'error':'red','warn':_0x140ce0(0x179),'info':_0x140ce0(0x192)});}[a149_0x5c4268(0x17e)](_0x4ec14f,_0x13ea22,_0x26d7fb){const _0xa20e85=a149_0x5c4268;if(!this['logFilePath']||!this[_0xa20e85(0x194)])return;this[_0xa20e85(0x194)][_0xa20e85(0x17e)](_0x13ea22,{'command':_0x4ec14f,'details':_0x26d7fb});}[a149_0x5c4268(0x199)](_0x4f8337,_0x442fd0,_0xbf64a5,_0x229768){const _0x10f821=a149_0x5c4268;if(!this[_0x10f821(0x195)]||!this['winstonLogger'])return;this['winstonLogger'][_0x10f821(0x189)]('info',_0x442fd0,{'level':_0x10f821(0x199),'command':_0x4f8337,'duration':_0xbf64a5,'details':_0x229768});}['error'](_0x2ccf18,_0x47269f,_0x58a960){const _0x4869db=a149_0x5c4268;if(!this[_0x4869db(0x195)]||!this[_0x4869db(0x194)])return;this[_0x4869db(0x194)]['error'](_0x47269f,{'command':_0x2ccf18,'details':_0x58a960});}['warn'](_0x22d968,_0x41eedc,_0x582cd4){const _0x1cf75e=a149_0x5c4268;if(!this['logFilePath']||!this['winstonLogger'])return;this[_0x1cf75e(0x194)][_0x1cf75e(0x171)](_0x41eedc,{'command':_0x22d968,'details':_0x582cd4});}async[a149_0x5c4268(0x181)](_0x28a28e,_0xe71475,_0x1876ea){const _0x2d8b79=a149_0x5c4268,_0x132b5c=Date[_0x2d8b79(0x18b)]();this['info'](_0x28a28e,_0x2d8b79(0x191)+_0xe71475);try{const _0x1ab0e3=await _0x1876ea(),_0x5684bc=Date['now']()-_0x132b5c;return this[_0x2d8b79(0x199)](_0x28a28e,_0x2d8b79(0x19c)+_0xe71475,_0x5684bc),_0x1ab0e3;}catch(_0x41ec5e){const _0x30df0d=Date[_0x2d8b79(0x18b)]()-_0x132b5c;this[_0x2d8b79(0x18d)](_0x28a28e,_0x2d8b79(0x16c)+_0xe71475,{'error':_0x41ec5e instanceof Error?_0x41ec5e[_0x2d8b79(0x1a3)]:String(_0x41ec5e),'duration':_0x30df0d});throw _0x41ec5e;}}['readLogs'](){const _0xfcf7bf=a149_0x5c4268;try{if(!a149_0x375359[_0xfcf7bf(0x17f)](this[_0xfcf7bf(0x195)]))return[];const _0x371b2a=a149_0x375359[_0xfcf7bf(0x175)](this[_0xfcf7bf(0x195)],_0xfcf7bf(0x17c));return _0x371b2a[_0xfcf7bf(0x190)](/\r?\n/)['filter'](_0x36da36=>_0x36da36[_0xfcf7bf(0x19e)]())[_0xfcf7bf(0x19d)](_0x20872e=>JSON[_0xfcf7bf(0x1a0)](_0x20872e));}catch(_0x41fdf1){return console[_0xfcf7bf(0x171)]('Failed\x20to\x20read\x20logs:',_0x41fdf1),[];}}[a149_0x5c4268(0x173)](){const _0x52711d=a149_0x5c4268;try{a149_0x375359[_0x52711d(0x17f)](this[_0x52711d(0x195)])&&a149_0x375359['writeFileSync'](this[_0x52711d(0x195)],'','utf8');}catch(_0x400cb4){console[_0x52711d(0x171)](_0x52711d(0x198),_0x400cb4);}}['getWinstonInstance'](){const _0x54a1fa=a149_0x5c4268;return this[_0x54a1fa(0x194)];}}export const logger=new Logger();function a149_0x398b(){const _0x386d88=['unknown','printf','Completed:\x20','map','trim','806241gErQbs','parse','currentRawCommand','stringify','message','5XayaRm','5209692SPhlau','2322868DykdOe','Failed:\x20','green','14hWCpcx','addColors','setLogPath','warn','mkdirSync','clearLogs','createLogger','readFileSync','timestamp','File','726918myLyZU','yellow','level','57rKzJBN','utf8','join','info','existsSync','details','logTask','toISOString','format','11sexLWo','duration','74042CLPzPw','364300xFadXc','rawCommand','log','transports','now','combine','error','logFileName','initWinstonLogger','split','Starting:\x20','blue','errors','winstonLogger','logFilePath','9ioKNyL','3482144lBZrAR','Failed\x20to\x20clear\x20logs:','success'];a149_0x398b=function(){return _0x386d88;};return a149_0x398b();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const a150_0x12c5e3=a150_0x3d1e;function a150_0x3d1e(_0x357434,_0x47cdf0){_0x357434=_0x357434-0xb3;const _0x46e499=a150_0x46e4();let _0x3d1e55=_0x46e499[_0x357434];return _0x3d1e55;}(function(_0x485916,_0x42c9e6){const _0x40214b=a150_0x3d1e,_0x2d86f3=_0x485916();while(!![]){try{const _0x4c3d6d=-parseInt(_0x40214b(0xba))/0x1+-parseInt(_0x40214b(0xbf))/0x2+-parseInt(_0x40214b(0xb4))/0x3+parseInt(_0x40214b(0xc2))/0x4+-parseInt(_0x40214b(0xbb))/0x5+-parseInt(_0x40214b(0xbc))/0x6*(-parseInt(_0x40214b(0xbd))/0x7)+parseInt(_0x40214b(0xb6))/0x8;if(_0x4c3d6d===_0x42c9e6)break;else _0x2d86f3['push'](_0x2d86f3['shift']());}catch(_0x5bfc0c){_0x2d86f3['push'](_0x2d86f3['shift']());}}}(a150_0x46e4,0xab4ce));const JSON_NUMBER_PATTERN=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/,MAX_SAFE_INTEGER=BigInt(Number['MAX_SAFE_INTEGER']),MIN_SAFE_INTEGER=BigInt(Number[a150_0x12c5e3(0xc0)]);let restoreResponseJsonParser,responseJsonPrototype,originalResponseJsonDescriptor;function isUnsafeIntegerLiteral(_0x59315d){const _0x25c57c=a150_0x12c5e3;if(_0x59315d[_0x25c57c(0xc1)]('.')||_0x59315d[_0x25c57c(0xc1)]('e')||_0x59315d['includes']('E'))return![];const _0x29a22f=BigInt(_0x59315d);return _0x29a22f>MAX_SAFE_INTEGER||_0x29a22f<MIN_SAFE_INTEGER;}function quoteUnsafeIntegerLiterals(_0x938f30){const _0x3ab78e=a150_0x12c5e3;let _0x48afcf='',_0x2dcf84=![],_0x3ecf19=![];for(let _0x5936d9=0x0;_0x5936d9<_0x938f30[_0x3ab78e(0xb5)];){const _0x5b2537=_0x938f30[_0x5936d9];if(_0x2dcf84){_0x48afcf+=_0x5b2537,_0x5936d9+=0x1;if(_0x3ecf19)_0x3ecf19=![];else{if(_0x5b2537==='\x5c')_0x3ecf19=!![];else _0x5b2537==='\x22'&&(_0x2dcf84=![]);}continue;}if(_0x5b2537==='\x22'){_0x2dcf84=!![],_0x48afcf+=_0x5b2537,_0x5936d9+=0x1;continue;}if(_0x5b2537==='-'||_0x5b2537>='0'&&_0x5b2537<='9'){const _0x2472f3=JSON_NUMBER_PATTERN[_0x3ab78e(0xb8)](_0x938f30[_0x3ab78e(0xb7)](_0x5936d9))?.[0x0];if(_0x2472f3){_0x48afcf+=isUnsafeIntegerLiteral(_0x2472f3)?'\x22'+_0x2472f3+'\x22':_0x2472f3,_0x5936d9+=_0x2472f3[_0x3ab78e(0xb5)];continue;}}_0x48afcf+=_0x5b2537,_0x5936d9+=0x1;}return _0x48afcf;}export function parseLosslessJson(_0x1c8ed8){return JSON['parse'](quoteUnsafeIntegerLiterals(_0x1c8ed8));}export function installLosslessJsonResponseParser(){const _0x4e2aa3=a150_0x12c5e3;if(typeof Response===_0x4e2aa3(0xc4))return()=>{};if(restoreResponseJsonParser)return restoreResponseJsonParser;return responseJsonPrototype=Response['prototype'],originalResponseJsonDescriptor=Object[_0x4e2aa3(0xc3)](responseJsonPrototype,'json'),Object[_0x4e2aa3(0xb3)](responseJsonPrototype,_0x4e2aa3(0xb9),{...originalResponseJsonDescriptor??{'configurable':!![],'enumerable':![],'writable':!![]},'value':async function _0x34dab3(){const _0x1f45ce=_0x4e2aa3;return parseLosslessJson(await this[_0x1f45ce(0xbe)]());}}),restoreResponseJsonParser=()=>{const _0x484a73=_0x4e2aa3;if(!responseJsonPrototype)return;originalResponseJsonDescriptor?Object[_0x484a73(0xb3)](responseJsonPrototype,_0x484a73(0xb9),originalResponseJsonDescriptor):delete responseJsonPrototype[_0x484a73(0xb9)],responseJsonPrototype=undefined,originalResponseJsonDescriptor=undefined,restoreResponseJsonParser=undefined;},restoreResponseJsonParser;}function a150_0x46e4(){const _0x2a1ad9=['exec','json','1340985MlpLWJ','1537880iTAbeH','48rqaonX','1225238WMriTz','text','1273070GCumHo','MIN_SAFE_INTEGER','includes','609072CHpkvg','getOwnPropertyDescriptor','undefined','defineProperty','366645kRuDzH','length','12451336frSesL','slice'];a150_0x46e4=function(){return _0x2a1ad9;};return a150_0x46e4();}export function restoreLosslessJsonResponseParser(){restoreResponseJsonParser?.();}
|
package/lib/utils/params.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function a151_0x234f(_0x5f4cc9,_0x5b537d){_0x5f4cc9=_0x5f4cc9-0x1a9;const _0x35eec6=a151_0x35ee();let _0x234f1d=_0x35eec6[_0x5f4cc9];return _0x234f1d;}(function(_0x4cb439,_0x40b1eb){const _0x244071=a151_0x234f,_0x33d3d6=_0x4cb439();while(!![]){try{const _0x483d49=-parseInt(_0x244071(0x1ba))/0x1+parseInt(_0x244071(0x1b2))/0x2*(-parseInt(_0x244071(0x1b7))/0x3)+-parseInt(_0x244071(0x1bc))/0x4+-parseInt(_0x244071(0x1b1))/0x5+parseInt(_0x244071(0x1ac))/0x6*(parseInt(_0x244071(0x1c2))/0x7)+parseInt(_0x244071(0x1c6))/0x8+parseInt(_0x244071(0x1bd))/0x9*(parseInt(_0x244071(0x1c0))/0xa);if(_0x483d49===_0x40b1eb)break;else _0x33d3d6['push'](_0x33d3d6['shift']());}catch(_0x1841e9){_0x33d3d6['push'](_0x33d3d6['shift']());}}}(a151_0x35ee,0xca819));import{CliErrors}from'../errors.js';import{parseLosslessJson}from'../utils/lossless-json.js';function a151_0x35ee(){const _0x24d81f=['\x20must\x20be\x20a\x20positive\x20integer\x20or\x20numeric\x20string.','2110386LhGPCR','batchCreate\x20--params\x20must\x20be\x20a\x20JSON\x20array\x20or\x20{\x22items\x22:[...]}','id[','items','join','7917050ZOTejr','350JxRHdz','isArray','object','data\x20update\x20--params\x20must\x20be\x20a\x20JSON\x20object\x20with\x20id.','Example:\x20--params\x20\x27{\x22id\x22:[1,2,3],\x22status\x22:\x22done\x22}\x27','11151pmTyDR','test','validation','261713xgXBZa','map','4677700oibooz','9794781lXdxiQ','data\x20update\x20can\x20update\x20at\x20most\x20','length','20xRjqrO','\x20records\x20per\x20call;\x20received\x20','28jgPQvY','data\x20update\x20requires\x20\x22id\x22\x20in\x20--params.','Invalid\x20JSON\x20for\x20--params:\x20','Example:\x20--params\x20\x27[{\x22name\x22:\x22a\x22},{\x22name\x22:\x22b\x22}]\x27','7287568eNamhD','isSafeInteger','data\x20update\x20id\x20array\x20cannot\x20be\x20empty.'];a151_0x35ee=function(){return _0x24d81f;};return a151_0x35ee();}export const MAX_DATA_UPDATE_IDS=0x3e8;export function parseJsonParams(_0x29a3ed){const _0xfbbfe2=a151_0x234f;if(!_0x29a3ed)return undefined;try{return parseLosslessJson(_0x29a3ed);}catch{throw CliErrors['validation'](_0xfbbfe2(0x1c4)+_0x29a3ed);}}export function parseJsonParamsValue(_0x5a93ff){const _0x1e65e2=a151_0x234f;if(!_0x5a93ff)return undefined;try{return parseLosslessJson(_0x5a93ff);}catch{throw CliErrors[_0x1e65e2(0x1b9)](_0x1e65e2(0x1c4)+_0x5a93ff);}}export function parseBatchCreateItemsFromParams(_0x259ae5){const _0x5d2c8d=a151_0x234f;if(Array['isArray'](_0x259ae5))return _0x259ae5;if(_0x259ae5!==null&&_0x259ae5!==undefined&&typeof _0x259ae5===_0x5d2c8d(0x1b4)&&Array['isArray'](_0x259ae5[_0x5d2c8d(0x1af)]))return _0x259ae5['items'];throw CliErrors['validation'](_0x5d2c8d(0x1ad),_0x5d2c8d(0x1c5));}function parseDataUpdateId(_0x5c74c8,_0x4549ba){const _0x1c5c5b=a151_0x234f;if(typeof _0x5c74c8==='number'&&Number[_0x1c5c5b(0x1a9)](_0x5c74c8)&&_0x5c74c8>0x0)return _0x5c74c8;if(typeof _0x5c74c8==='string'){if(/^[1-9]\d*$/[_0x1c5c5b(0x1b8)](_0x5c74c8))return _0x5c74c8;}throw CliErrors[_0x1c5c5b(0x1b9)]('data\x20update\x20--params.'+_0x4549ba+_0x1c5c5b(0x1ab));}export function parseUpdateIdsFromParams(_0x275b8c){const _0x1e0794=a151_0x234f;if(_0x275b8c===null||_0x275b8c===undefined||typeof _0x275b8c!=='object'||Array[_0x1e0794(0x1b3)](_0x275b8c))throw CliErrors[_0x1e0794(0x1b9)](_0x1e0794(0x1b5),_0x1e0794(0x1b6));const _0x390899=_0x275b8c['id'];if(_0x390899===undefined||_0x390899===null)throw CliErrors[_0x1e0794(0x1b9)](_0x1e0794(0x1c3),_0x1e0794(0x1b6));const _0x55b71e=Array['isArray'](_0x390899)?_0x390899:[_0x390899];if(_0x55b71e[_0x1e0794(0x1bf)]===0x0)throw CliErrors[_0x1e0794(0x1b9)](_0x1e0794(0x1aa));if(_0x55b71e[_0x1e0794(0x1bf)]>MAX_DATA_UPDATE_IDS)throw CliErrors[_0x1e0794(0x1b9)](_0x1e0794(0x1be)+MAX_DATA_UPDATE_IDS+_0x1e0794(0x1c1)+_0x55b71e[_0x1e0794(0x1bf)]+'.');return _0x55b71e[_0x1e0794(0x1bb)]((_0xdb6569,_0x3311ed)=>parseDataUpdateId(_0xdb6569,Array[_0x1e0794(0x1b3)](_0x390899)?_0x1e0794(0x1ae)+_0x3311ed+']':'id'));}export function normalizeUpdateParamsForRuntime(_0x45b4cf,_0x3d7956){const _0x582580=a151_0x234f;if(Array[_0x582580(0x1b3)](_0x45b4cf['id'])&&_0x3d7956[_0x582580(0x1bf)]>0x1)return{..._0x45b4cf,'id':_0x3d7956[_0x582580(0x1b0)](',')};return _0x45b4cf;}
|
package/lib/utils/platform.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a152_0x1a9498=a152_0x180f;function a152_0x180f(_0x30b85d,_0x4eb6ad){_0x30b85d=_0x30b85d-0x16c;const _0x1bb576=a152_0x1bb5();let _0x180ff7=_0x1bb576[_0x30b85d];return _0x180ff7;}(function(_0x538a97,_0x590084){const _0x27403b=a152_0x180f,_0x2d2b0b=_0x538a97();while(!![]){try{const _0x412cde=-parseInt(_0x27403b(0x173))/0x1+-parseInt(_0x27403b(0x170))/0x2*(parseInt(_0x27403b(0x175))/0x3)+-parseInt(_0x27403b(0x172))/0x4*(-parseInt(_0x27403b(0x16e))/0x5)+-parseInt(_0x27403b(0x16f))/0x6*(parseInt(_0x27403b(0x176))/0x7)+-parseInt(_0x27403b(0x171))/0x8+parseInt(_0x27403b(0x178))/0x9+parseInt(_0x27403b(0x177))/0xa;if(_0x412cde===_0x590084)break;else _0x2d2b0b['push'](_0x2d2b0b['shift']());}catch(_0x52f0a4){_0x2d2b0b['push'](_0x2d2b0b['shift']());}}}(a152_0x1bb5,0x5f86e));export const isWindows=process[a152_0x1a9498(0x16d)]===a152_0x1a9498(0x174);export function resolveNpmBin(_0x3b68f4){const _0x566761=a152_0x1a9498;return isWindows?_0x3b68f4+_0x566761(0x16c):_0x3b68f4;}function a152_0x1bb5(){const _0x534213=['31632FLuJuS','590699SmvzGU','win32','6LwyrMF','193123GWvopQ','12820270ZJlRSw','5440032pRqDRk','.cmd','platform','110MSfBWU','84HaNBuU','465098FGrWuS','1817040uvgfhT'];a152_0x1bb5=function(){return _0x534213;};return a152_0x1bb5();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0xc3ac4,_0x4b4aa9){const _0x490c83=a153_0x5f2e,_0x14b301=_0xc3ac4();while(!![]){try{const _0x21f667=-parseInt(_0x490c83(0x1dc))/0x1+parseInt(_0x490c83(0x1ce))/0x2+-parseInt(_0x490c83(0x1d6))/0x3+parseInt(_0x490c83(0x1ca))/0x4+parseInt(_0x490c83(0x1d1))/0x5+parseInt(_0x490c83(0x1dd))/0x6*(-parseInt(_0x490c83(0x1d9))/0x7)+parseInt(_0x490c83(0x1c1))/0x8;if(_0x21f667===_0x4b4aa9)break;else _0x14b301['push'](_0x14b301['shift']());}catch(_0x34ac68){_0x14b301['push'](_0x14b301['shift']());}}}(a153_0x4da4,0x972f6));import{mkdir,readFile,writeFile}from'node:fs/promises';import{homedir}from'node:os';import{dirname,join}from'node:path';function a153_0x5f2e(_0x5048d6,_0x30eeb8){_0x5048d6=_0x5048d6-0x1c0;const _0x4da4ac=a153_0x4da4();let _0x5f2ee0=_0x4da4ac[_0x5048d6];return _0x5f2ee0;}import{LOVRABET_NPM_PACKAGE_NAME,NPM_REGISTRY_BASE_URL}from'../constant/distribution.js';import{CLI_BIN_NAME}from'../constant/cli.js';import{getCliVersion}from'../utils/version.js';const UPDATE_CHECK_TTL_MS=0xc*0x3c*0x3c*0x3e8,UPDATE_NOTICE_TTL_MS=0x18*0x3c*0x3c*0x3e8;function parseSemver(_0x5a0459){const _0x546b4d=a153_0x5f2e,_0x17a6d7=_0x5a0459[_0x546b4d(0x1e3)]()[_0x546b4d(0x1d5)](/^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?$/);if(!_0x17a6d7)return null;return{'major':Number(_0x17a6d7[0x1]),'minor':Number(_0x17a6d7[0x2]),'patch':Number(_0x17a6d7[0x3]),'prerelease':_0x17a6d7[0x4]};}function a153_0x4da4(){const _0x2fd845=['true','9476368Sjnibd','stringify','lastNotifiedVersion','object','lastNotifiedAt','filter','update-check.json','parse','yes','2557332CYiNXP','latest','timeout','checkedAt','239622fJBSzu','/dist-tags','string','4798665kkduFu','entries','patch','Invalid\x20semver','match','1034757XmAapm','/v/','now','28gMXabe','number','prerelease','1132162FzoCuW','1210632byJBuB','minor','major','fromEntries',',\x20run:\x20','utf8','trim'];a153_0x4da4=function(){return _0x2fd845;};return a153_0x4da4();}function compareSemver(_0x5707a5,_0xa6bfb5){const _0x1d0cc0=a153_0x5f2e,_0x41dbcd=parseSemver(_0x5707a5),_0x180d4b=parseSemver(_0xa6bfb5);if(!_0x41dbcd||!_0x180d4b)throw new Error(_0x1d0cc0(0x1d4));for(const _0x302500 of[_0x1d0cc0(0x1df),_0x1d0cc0(0x1de),_0x1d0cc0(0x1d3)]){if(_0x41dbcd[_0x302500]<_0x180d4b[_0x302500])return-0x1;if(_0x41dbcd[_0x302500]>_0x180d4b[_0x302500])return 0x1;}if(!_0x41dbcd[_0x1d0cc0(0x1db)]&&!_0x180d4b[_0x1d0cc0(0x1db)])return 0x0;if(!_0x41dbcd[_0x1d0cc0(0x1db)])return 0x1;if(!_0x180d4b[_0x1d0cc0(0x1db)])return-0x1;if(_0x41dbcd['prerelease']===_0x180d4b[_0x1d0cc0(0x1db)])return 0x0;return _0x41dbcd[_0x1d0cc0(0x1db)]<_0x180d4b[_0x1d0cc0(0x1db)]?-0x1:0x1;}function isUpdateNoticeDisabled(){const _0xd1dda6=a153_0x5f2e,_0x35c551=process.env.LOVRABET_NO_UPDATE_NOTICE?.[_0xd1dda6(0x1e3)]()['toLowerCase']();return _0x35c551==='1'||_0x35c551===_0xd1dda6(0x1c0)||_0x35c551===_0xd1dda6(0x1c9);}function cacheRoot(){return process.env.XDG_CACHE_HOME||process.env.LOCALAPPDATA||join(homedir(),'.cache');}export function getUpdateNoticeCachePath(){const _0x209f80=a153_0x5f2e;return join(cacheRoot(),'lovrabet-cli',_0x209f80(0x1c7));}async function readUpdateNoticeCache(){const _0x398ab7=a153_0x5f2e;try{const _0x5c99d1=await readFile(getUpdateNoticeCachePath(),_0x398ab7(0x1e2)),_0x41ec6c=JSON[_0x398ab7(0x1c8)](_0x5c99d1);if(!_0x41ec6c||typeof _0x41ec6c!==_0x398ab7(0x1c4))return{};return _0x41ec6c;}catch{return{};}}async function writeUpdateNoticeCache(_0x10e51e){const _0x2e56b4=a153_0x5f2e;try{const _0xa3a1c3=getUpdateNoticeCachePath();await mkdir(dirname(_0xa3a1c3),{'recursive':!![]}),await writeFile(_0xa3a1c3,JSON[_0x2e56b4(0x1c2)](_0x10e51e,null,0x2)+'\x0a',_0x2e56b4(0x1e2));}catch{}}function isFreshCheck(_0x503137,_0x44d6ae){const _0x4f3bdf=a153_0x5f2e;return typeof _0x503137[_0x4f3bdf(0x1cd)]===_0x4f3bdf(0x1da)&&_0x44d6ae-_0x503137[_0x4f3bdf(0x1cd)]<UPDATE_CHECK_TTL_MS;}function isRecentlyNotified(_0x5ba946,_0x449b22,_0x3e21e3){const _0x3d2ac8=a153_0x5f2e;return _0x5ba946[_0x3d2ac8(0x1c3)]===_0x449b22&&typeof _0x5ba946[_0x3d2ac8(0x1c5)]===_0x3d2ac8(0x1da)&&_0x3e21e3-_0x5ba946[_0x3d2ac8(0x1c5)]<UPDATE_NOTICE_TTL_MS;}async function fetchNpmDistTags(_0x197160=0x5dc){const _0x17667a=a153_0x5f2e;try{const _0x47998a=NPM_REGISTRY_BASE_URL+'/-/package/'+encodeURIComponent(LOVRABET_NPM_PACKAGE_NAME)+_0x17667a(0x1cf),_0x5a6e8c=await fetch(_0x47998a,{'signal':AbortSignal[_0x17667a(0x1cc)](_0x197160)});if(!_0x5a6e8c['ok'])return null;const _0x2ae1ff=await _0x5a6e8c['json']();if(!_0x2ae1ff||typeof _0x2ae1ff!==_0x17667a(0x1c4))return null;return Object[_0x17667a(0x1e0)](Object[_0x17667a(0x1d2)](_0x2ae1ff)[_0x17667a(0x1c6)](([,_0x1fec28])=>typeof _0x1fec28===_0x17667a(0x1d0)&&_0x1fec28[_0x17667a(0x1e3)]())['map'](([_0x432fb0,_0x374f42])=>[_0x432fb0,String(_0x374f42)['trim']()]));}catch{return null;}}export function buildNpmVersionUrl(_0x5902c1){const _0x451f06=a153_0x5f2e;return'https://www.npmjs.com/package/'+LOVRABET_NPM_PACKAGE_NAME+_0x451f06(0x1d7)+_0x5902c1;}export async function resolveLatestUpdateNotice(){const _0x358c81=a153_0x5f2e;if(isUpdateNoticeDisabled())return null;try{const _0x998613=Date[_0x358c81(0x1d8)](),_0xd74a7e=getCliVersion(),_0x503cda=await readUpdateNoticeCache();let _0x2f7da1=isFreshCheck(_0x503cda,_0x998613)?_0x503cda['latest']?.['trim']():undefined;if(!_0x2f7da1&&!isFreshCheck(_0x503cda,_0x998613)){const _0x25c18a=await fetchNpmDistTags();_0x2f7da1=_0x25c18a?.[_0x358c81(0x1cb)]?.[_0x358c81(0x1e3)](),await writeUpdateNoticeCache({..._0x503cda,'checkedAt':_0x998613,'latest':_0x2f7da1,'failed':!_0x2f7da1});}if(!_0x2f7da1||compareSemver(_0xd74a7e,_0x2f7da1)>=0x0)return null;if(isRecentlyNotified(_0x503cda,_0x2f7da1,_0x998613))return null;const _0x17ec95=CLI_BIN_NAME+'\x20update';return await writeUpdateNoticeCache({..._0x503cda,'checkedAt':isFreshCheck(_0x503cda,_0x998613)?_0x503cda[_0x358c81(0x1cd)]:_0x998613,'latest':_0x2f7da1,'failed':![],'lastNotifiedVersion':_0x2f7da1,'lastNotifiedAt':_0x998613}),{'command':_0x17ec95,'current':_0xd74a7e,'latest':_0x2f7da1,'url':buildNpmVersionUrl(_0x2f7da1),'message':CLI_BIN_NAME+'\x20'+_0x2f7da1+'\x20available,\x20current\x20'+_0xd74a7e+_0x358c81(0x1e1)+_0x17ec95};}catch{return null;}}
|
package/lib/utils/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x4f68cc,_0x1fff0f){const _0x447a9a=a154_0x46fc,_0x4d24e5=_0x4f68cc();while(!![]){try{const _0x3e219e=parseInt(_0x447a9a(0xf8))/0x1+parseInt(_0x447a9a(0xfd))/0x2*(parseInt(_0x447a9a(0xf9))/0x3)+-parseInt(_0x447a9a(0xfa))/0x4+parseInt(_0x447a9a(0xfe))/0x5+-parseInt(_0x447a9a(0xfb))/0x6+parseInt(_0x447a9a(0x100))/0x7+parseInt(_0x447a9a(0xfc))/0x8;if(_0x3e219e===_0x1fff0f)break;else _0x4d24e5['push'](_0x4d24e5['shift']());}catch(_0x4bd22a){_0x4d24e5['push'](_0x4d24e5['shift']());}}}(a154_0x4174,0xa87c1));import{BUILD_TIME,GIT_COMMIT,VERSION}from'../generated/build-info.js';export function getCliVersion(){return VERSION;}export function getCliGitCommit(){const _0x33985c=a154_0x46fc,_0x3878e1=String(GIT_COMMIT);return _0x3878e1&&_0x3878e1!==_0x33985c(0xff)?_0x3878e1:'';}function a154_0x46fc(_0x1861ac,_0x39b46f){_0x1861ac=_0x1861ac-0xf8;const _0x41749a=a154_0x4174();let _0x46fc2c=_0x41749a[_0x1861ac];return _0x46fc2c;}function a154_0x4174(){const _0x1c6669=['21QqZkOg','4738416YOtnfx','4624908cbbtQT','306960HutNGb','371336whOLdS','3063630Xbjiom','unknown','780815sMzcrU','583218tPAgOy'];a154_0x4174=function(){return _0x1c6669;};return a154_0x4174();}export function getCliVersionDisplay(){const _0x5d7241=getCliGitCommit(),_0x2cb175=BUILD_TIME['slice'](0x0,0xa);if(!_0x5d7241||!_0x2cb175)return VERSION;return VERSION+'\x20('+_0x5d7241+',\x20'+_0x2cb175+')';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function a155_0x4d19(_0x1d0202,_0xd8c47e){_0x1d0202=_0x1d0202-0x1ed;var _0x190a74=a155_0x190a();var _0x4d19d3=_0x190a74[_0x1d0202];return _0x4d19d3;}(function(_0x418802,_0x5b1000){var _0x3efbe5=a155_0x4d19,_0x3f96ab=_0x418802();while(!![]){try{var _0x4fa4db=parseInt(_0x3efbe5(0x1f7))/0x1*(parseInt(_0x3efbe5(0x1f4))/0x2)+-parseInt(_0x3efbe5(0x1ed))/0x3*(parseInt(_0x3efbe5(0x1f2))/0x4)+-parseInt(_0x3efbe5(0x1f5))/0x5+-parseInt(_0x3efbe5(0x1f1))/0x6+-parseInt(_0x3efbe5(0x1f8))/0x7*(parseInt(_0x3efbe5(0x1ef))/0x8)+parseInt(_0x3efbe5(0x1f6))/0x9+parseInt(_0x3efbe5(0x1f0))/0xa;if(_0x4fa4db===_0x5b1000)break;else _0x3f96ab['push'](_0x3f96ab['shift']());}catch(_0x442989){_0x3f96ab['push'](_0x3f96ab['shift']());}}}(a155_0x190a,0x5b357));function a155_0x190a(){var _0x146c2f=['stderr','5032552qHatpn','8821330SKfCIc','1276128Xfaeel','4008ijyKOT','write','29612IIbBuN','984270qzhxvL','6377841TxnHtA','1SSwqnw','7mPnGCc','579euunND'];a155_0x190a=function(){return _0x146c2f;};return a155_0x190a();}export function writeCliSideChannelLine(_0x1dc853){var _0x549a99=a155_0x4d19;process[_0x549a99(0x1ee)][_0x549a99(0x1f3)](_0x1dc853+'\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.2.4-beta.
|
|
5
|
-
description: "Lovrabet 运行态 CLI — 面向业务场景的 AI 操作套件,通过 lovrabet 命令管理应用目录、业务角色与权限、用户级外部账号、Service Tree 业务命令、API 文档发现、数据集查询、Instant API 数据操作、Custom SQL/Backend Function、personal BFF
|
|
4
|
+
version: 2.2.4-beta.3
|
|
5
|
+
description: "Lovrabet 运行态 CLI — 面向业务场景的 AI 操作套件,通过 lovrabet 命令管理应用目录、业务角色与权限、用户级外部账号、Service Tree 业务命令、API 文档发现、数据集查询、Instant API 数据操作、Custom SQL/Backend Function、personal BFF、文件上传、面向票证类业务材料文字与结构化字段提取的 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:
|
|
8
8
|
bins: ["lovrabet"]
|
|
@@ -326,7 +326,7 @@ Service Tree 未命中不是失败条件,也不代表业务能力不存在。
|
|
|
326
326
|
| **personal-bff** | `exec` | 按已知 ID 执行 personal BFF | write | AK |
|
|
327
327
|
| **file** | `upload` | 上传本地文件到当前运行态应用 | read | AK |
|
|
328
328
|
| **file** | `query-url` | 查询已上传文件的访问 URL,默认短效,可显式 3 年长期 | read | AK |
|
|
329
|
-
| **ocr** | `recognize` |
|
|
329
|
+
| **ocr** | `recognize` | 提取票证类业务材料中的文字与结构化字段 | read | AK |
|
|
330
330
|
| **kb** | `list` | 查看 personal 知识库条目 | read | AK |
|
|
331
331
|
| **kb** | `detail` | 查看 personal 知识库正文与 RAG 状态 | read | AK |
|
|
332
332
|
| **kb** | `create` | 从本地文件创建 personal 知识库 | write | AK |
|
|
@@ -539,7 +539,7 @@ lovrabet data delete --code <datasetCode> --params '{"id":123}' --yes
|
|
|
539
539
|
|
|
540
540
|
## OCR 识别工作流
|
|
541
541
|
|
|
542
|
-
`lovrabet ocr recognize`
|
|
542
|
+
`lovrabet ocr recognize` 面向发票、票据、证照等票证类业务材料的文字与结构化字段提取,不承接通用图片理解。普通照片、截图、商品图、设计稿或图表优先由 Agent 多模态能力处理;模型不能读取通用图片时,只有用户明确需要提取可见文字才使用 OCR 降级。当前服务端 `/client/ocr` 只接受 URL,识别本地文件时 CLI 会按上传、查询短效 URL、OCR 的顺序串联执行;OCR 中间 URL 不使用 `--long-term`。需要把识别结果写入数据集时,先用 `dataset detail` 确认字段,再按 `data create/update` 的 dry-run 和确认规则执行。详见 [OCR 识别工作流](references/lovrabet-ocr-workflow.md)。
|
|
543
543
|
|
|
544
544
|
## 定时任务工作流
|
|
545
545
|
|
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
# OCR 识别工作流
|
|
2
2
|
|
|
3
|
-
`ocr`
|
|
3
|
+
`ocr` 命令用于提取远程 URL 或本地票证类业务材料中的文字与结构化字段。发票、票据、证照等是典型示例,不是票证类型的封闭白名单。
|
|
4
|
+
|
|
5
|
+
## 使用边界
|
|
6
|
+
|
|
7
|
+
图片本身不是 OCR 的触发条件。先判断用户处理的是否为票证类业务材料,再判断需要的是文字或结构化字段,还是通用画面理解。
|
|
8
|
+
|
|
9
|
+
| 任务 | 处理方式 |
|
|
10
|
+
|------|----------|
|
|
11
|
+
| 提取票证类材料的票面全文、关键字段或表格 | 使用 OCR;不要求用户必须说出“OCR” |
|
|
12
|
+
| 用户明确要求对票证材料执行 OCR 或文字识别 | 使用 OCR |
|
|
13
|
+
| 理解普通照片、UI 截图、商品图、设计稿或图表 | 当前模型支持多模态时由 Agent 直接处理,不调用 OCR |
|
|
14
|
+
| 当前模型不能读取通用图片,但用户只要求提取可见文字 | 仅将 OCR 作为明确的文字提取降级能力,并说明限制 |
|
|
15
|
+
| 当前模型不能读取图片,任务依赖物体、颜色、布局或视觉关系 | 不用 OCR 冒充视觉理解,向用户说明能力限制 |
|
|
16
|
+
| 图片只是附件,用户没有要求分析或提取 | 不调用 OCR |
|
|
17
|
+
|
|
18
|
+
按业务对象和任务输出路由,不按文件名、扩展名、MIME、某组关键词或 `scene` 枚举路由。已明确需要精确票证提取时可以直接使用专业 OCR,不必先做一次重复的多模态识别。`general` 是兼容的通用文字识别 scene,可用于未被专用 scene 覆盖的票证材料或用户明确要求的纯文字降级;它不是通用图片理解入口。
|
|
4
19
|
|
|
5
20
|
## 命令概览
|
|
6
21
|
|
|
@@ -22,7 +37,7 @@ OCR 识别不创建、更新或删除业务数据,因此 `ocr recognize` 的
|
|
|
22
37
|
| scene | 适用 |
|
|
23
38
|
|-------|------|
|
|
24
39
|
| `invoice` | 发票、票据 |
|
|
25
|
-
| `general` |
|
|
40
|
+
| `general` | 票证材料的通用文字识别;非通用图片理解 |
|
|
26
41
|
| `form` | 表格图片 |
|
|
27
42
|
| `idCard` | 证照、身份类图片 |
|
|
28
43
|
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"name": "lovrabet",
|
|
4
4
|
"packageName": "@lovrabet/lovrabet-cli",
|
|
5
|
-
"packageVersion": "2.2.4-beta.
|
|
6
|
-
"skillVersion": "2.2.4-beta.
|
|
5
|
+
"packageVersion": "2.2.4-beta.3",
|
|
6
|
+
"skillVersion": "2.2.4-beta.3",
|
|
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": "bd9c5582bda0a89ad07047e5f2d3f81b672fbad2478ec973a1140e9ea119cd3f"
|
|
41
41
|
}
|