@lovrabet/lovrabet-cli 2.0.14-beta.9 → 2.1.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/artifact/index.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 -0
- 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/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/init.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/index.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/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/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/types.js +1 -1
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/logger.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/lib/commands/kb/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a27_0x3f72d2=a27_0x27c0;(function(_0x2317e1,_0x14b3a8){const _0x422f34=a27_0x27c0,_0x61079=_0x2317e1();while(!![]){try{const _0x4aa58d=-parseInt(_0x422f34(0x171))/0x1*(parseInt(_0x422f34(0x186))/0x2)+-parseInt(_0x422f34(0x142))/0x3*(-parseInt(_0x422f34(0x182))/0x4)+-parseInt(_0x422f34(0x14c))/0x5*(-parseInt(_0x422f34(0x141))/0x6)+parseInt(_0x422f34(0x170))/0x7*(-parseInt(_0x422f34(0x17a))/0x8)+parseInt(_0x422f34(0x172))/0x9+parseInt(_0x422f34(0x15c))/0xa*(-parseInt(_0x422f34(0x163))/0xb)+parseInt(_0x422f34(0x149))/0xc*(parseInt(_0x422f34(0x181))/0xd);if(_0x4aa58d===_0x14b3a8)break;else _0x61079['push'](_0x61079['shift']());}catch(_0x44c1c5){_0x61079['push'](_0x61079['shift']());}}}(a27_0x54c8,0xcee80));import{existsSync,readFileSync,statSync}from'node:fs';import{createPersonalKnowledgeBaseItem,getPersonalKnowledgeBaseItem,listPersonalKnowledgeBaseItems,searchKnowledgeBase,updatePersonalKnowledgeBaseItem}from'../../core/api-client.js';import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';function a27_0x54c8(){const _0x6e470b=['createTime','map','num','description','975TuKBrs','128176vZdlcJ','POST','flag','Override\x20the\x20existing\x20entry\x20title','438SplqQt','726CQBeKm','144XilVfP','validation','Show\x20one\x20personal\x20knowledge-base\x20entry\x20by\x20id','List\x20personal\x20knowledge-base\x20entries\x20for\x20the\x20current\x20app','string','updateTime','Personal\x20knowledge-base\x20entry\x20ID','35796nrYbgw','utf8','Update\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','38270lZIKwa','appCode','build','metadata','/update','isFinite','number','/client/knowledge-base/personal/create','trim','--topk\x20must\x20be\x20a\x20positive\x20number.','length','detail','isFile','weightedScore','Preview:\x20create\x20personal\x20knowledge-base\x20entry\x20\x22','ragStatus','570oRIOaR','create','body','Search\x20visible\x20company\x20and\x20personal\x20knowledge\x20base\x20content','Create\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','Updated\x20KB\x20entry\x20','content','80553mMJetX','Maximum\x20number\x20of\x20search\x20hits\x20to\x20return','topk','title','/client/knowledge-base/personal/','query','scope','write','File\x20path\x20is\x20required.','Personal\x20knowledge-base\x20entry\x20title','File\x20is\x20not\x20a\x20regular\x20file:\x20','bool','read','3812305YwrQTh','2001wVNTuS','5840928ptWuuk','Preview:\x20update\x20personal\x20knowledge-base\x20entry\x20','Search\x20query\x20for\x20visible\x20company\x20and\x20personal\x20knowledge','version','Path\x20to\x20a\x20local\x20UTF-8\x20text\x20or\x20Markdown\x20file','file','docId','list','24mqswWd','str','verbose'];a27_0x54c8=function(){return _0x6e470b;};return a27_0x54c8();}import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const TITLE_FLAG={'name':a27_0x3f72d2(0x166),'type':a27_0x3f72d2(0x146),'required':!![],'description':a27_0x3f72d2(0x16c)},FILE_FLAG={'name':a27_0x3f72d2(0x177),'type':a27_0x3f72d2(0x146),'required':!![],'description':a27_0x3f72d2(0x176)},QUERY_FLAG={'name':a27_0x3f72d2(0x168),'type':a27_0x3f72d2(0x146),'required':!![],'description':a27_0x3f72d2(0x174)},TOPK_FLAG={'name':a27_0x3f72d2(0x165),'type':a27_0x3f72d2(0x152),'description':a27_0x3f72d2(0x164)};function readKnowledgeFile(_0x37d1af){const _0x3c284c=a27_0x3f72d2;if(!_0x37d1af)throw CliErrors[_0x3c284c(0x143)](_0x3c284c(0x16b));if(!existsSync(_0x37d1af))throw CliErrors[_0x3c284c(0x143)]('File\x20not\x20found:\x20'+_0x37d1af);if(!statSync(_0x37d1af)[_0x3c284c(0x158)]())throw CliErrors[_0x3c284c(0x143)](_0x3c284c(0x16d)+_0x37d1af);return readFileSync(_0x37d1af,_0x3c284c(0x14a));}function a27_0x27c0(_0x4ae05f,_0x3035d7){_0x4ae05f=_0x4ae05f-0x141;const _0x54c824=a27_0x54c8();let _0x27c003=_0x54c824[_0x4ae05f];return _0x27c003;}function summarizePersonalItem(_0x5f2266){const _0x46695f=a27_0x3f72d2;return{'id':_0x5f2266['id'],'title':_0x5f2266[_0x46695f(0x166)],'version':_0x5f2266[_0x46695f(0x175)],'ragStatus':_0x5f2266[_0x46695f(0x15b)],'ragErrorMessage':_0x5f2266['ragErrorMessage'],'updateTime':_0x5f2266[_0x46695f(0x147)]};}function detailPersonalItem(_0x3d3d35){const _0xbe46b7=a27_0x3f72d2;return{'id':_0x3d3d35['id'],'appCode':_0x3d3d35[_0xbe46b7(0x14d)],'scope':_0x3d3d35[_0xbe46b7(0x169)],'userId':_0x3d3d35['userId'],'title':_0x3d3d35[_0xbe46b7(0x166)],'content':_0x3d3d35[_0xbe46b7(0x162)]??'','version':_0x3d3d35['version'],'ragStatus':_0x3d3d35[_0xbe46b7(0x15b)],'ragErrorMessage':_0x3d3d35['ragErrorMessage'],'createTime':_0x3d3d35[_0xbe46b7(0x17d)],'updateTime':_0x3d3d35[_0xbe46b7(0x147)]};}function summarizeSearchHit(_0x294c25){const _0xcbb430=a27_0x3f72d2;return{'scope':_0x294c25[_0xcbb430(0x169)],'docId':_0x294c25[_0xcbb430(0x178)],'score':_0x294c25['score'],'weightedScore':_0x294c25[_0xcbb430(0x159)],'content':_0x294c25[_0xcbb430(0x162)],'metadata':_0x294c25[_0xcbb430(0x14f)]};}function readTopK(_0x1016ce){const _0x2c1344=a27_0x3f72d2,_0x27d619=_0x1016ce[_0x2c1344(0x184)](_0x2c1344(0x165));if(_0x27d619===undefined||_0x27d619===null||_0x27d619==='')return undefined;const _0x2e36b3=_0x1016ce[_0x2c1344(0x17f)](_0x2c1344(0x165));if(!Number[_0x2c1344(0x151)](_0x2e36b3)||_0x2e36b3<0x1)throw CliErrors[_0x2c1344(0x143)](_0x2c1344(0x155));return _0x2e36b3;}const kbList={'service':'kb','command':a27_0x3f72d2(0x179),'description':a27_0x3f72d2(0x145),'risk':a27_0x3f72d2(0x16f),'flags':[VERBOSE_FLAG],async 'execute'(_0x24f7f6){const _0x27eb4a=a27_0x3f72d2,_0x1aa2aa=await listPersonalKnowledgeBaseItems(_0x24f7f6[_0x27eb4a(0x14d)]);if(_0x24f7f6[_0x27eb4a(0x16e)](_0x27eb4a(0x17c)))return{'ok':!![],'data':{'total':_0x1aa2aa[_0x27eb4a(0x156)],'items':_0x1aa2aa}};return{'ok':!![],'data':{'total':_0x1aa2aa[_0x27eb4a(0x156)],'items':_0x1aa2aa[_0x27eb4a(0x17e)](summarizePersonalItem)}};}},kbDetail={'service':'kb','command':a27_0x3f72d2(0x157),'description':a27_0x3f72d2(0x144),'risk':a27_0x3f72d2(0x16f),'flags':[{...ID_FLAG,'description':a27_0x3f72d2(0x148)}],async 'execute'(_0x2baa8d){const _0x5da328=a27_0x3f72d2,_0x4e8335=await getPersonalKnowledgeBaseItem(_0x2baa8d[_0x5da328(0x17f)]('id'),_0x2baa8d[_0x5da328(0x14d)]);return{'ok':!![],'data':detailPersonalItem(_0x4e8335)};}},kbCreate={'service':'kb','command':a27_0x3f72d2(0x15d),'description':a27_0x3f72d2(0x160),'risk':'write','flags':[TITLE_FLAG,FILE_FLAG],async 'execute'(_0x304866){const _0x4df57a=a27_0x3f72d2,_0x493163=_0x304866['str'](_0x4df57a(0x166)),_0x56f205=readKnowledgeFile(_0x304866[_0x4df57a(0x17b)](_0x4df57a(0x177))),_0x5a1f8c=await createPersonalKnowledgeBaseItem(_0x304866['appCode'],{'title':_0x493163,'content':_0x56f205});return{'ok':!![],'data':summarizePersonalItem(_0x5a1f8c),'message':'Created\x20KB\x20entry\x20'+_0x5a1f8c['id']+'\x20('+_0x5a1f8c[_0x4df57a(0x166)]+')'};},async 'dryRun'(_0xbf1996){const _0x2e42a7=a27_0x3f72d2,_0x326aec=_0xbf1996[_0x2e42a7(0x17b)](_0x2e42a7(0x166)),_0x4b233c=readKnowledgeFile(_0xbf1996[_0x2e42a7(0x17b)](_0x2e42a7(0x177)));return dryRun(_0x2e42a7(0x183),_0x2e42a7(0x153))[_0x2e42a7(0x15e)]({'appCode':_0xbf1996[_0x2e42a7(0x14d)],'title':_0x326aec,'content':_0x4b233c})[_0x2e42a7(0x180)](_0x2e42a7(0x15a)+_0x326aec+'\x22')[_0x2e42a7(0x14e)]();}},kbUpdate={'service':'kb','command':'update','description':a27_0x3f72d2(0x14b),'risk':a27_0x3f72d2(0x16a),'flags':[{...ID_FLAG,'description':a27_0x3f72d2(0x148)},{...TITLE_FLAG,'required':![],'description':a27_0x3f72d2(0x185)},FILE_FLAG],async 'execute'(_0x22ca51){const _0x482db8=a27_0x3f72d2,_0x4aea21=_0x22ca51['num']('id'),_0xf068b0=readKnowledgeFile(_0x22ca51[_0x482db8(0x17b)](_0x482db8(0x177))),_0x219c86=_0x22ca51[_0x482db8(0x17b)]('title')||(await getPersonalKnowledgeBaseItem(_0x4aea21,_0x22ca51[_0x482db8(0x14d)]))['title'],_0x3ffa5d=await updatePersonalKnowledgeBaseItem(_0x4aea21,_0x22ca51[_0x482db8(0x14d)],{'title':_0x219c86,'content':_0xf068b0});return{'ok':!![],'data':summarizePersonalItem(_0x3ffa5d),'message':_0x482db8(0x161)+_0x3ffa5d['id']+'\x20('+_0x3ffa5d['title']+')'};},async 'dryRun'(_0x3811d8){const _0x587d7b=a27_0x3f72d2,_0x139989=_0x3811d8[_0x587d7b(0x17f)]('id'),_0x169aab=readKnowledgeFile(_0x3811d8['str']('file')),_0x132b22=_0x3811d8['str']('title')||(await getPersonalKnowledgeBaseItem(_0x139989,_0x3811d8[_0x587d7b(0x14d)]))['title'];return dryRun(_0x587d7b(0x183),_0x587d7b(0x167)+_0x139989+_0x587d7b(0x150))[_0x587d7b(0x15e)]({'appCode':_0x3811d8[_0x587d7b(0x14d)],'title':_0x132b22,'content':_0x169aab})['description'](_0x587d7b(0x173)+_0x139989)[_0x587d7b(0x14e)]();}},kbSearch={'service':'kb','command':'search','description':a27_0x3f72d2(0x15f),'risk':a27_0x3f72d2(0x16f),'flags':[QUERY_FLAG,TOPK_FLAG],async 'validate'(_0x1e3146){const _0x2d1128=a27_0x3f72d2;if(!_0x1e3146[_0x2d1128(0x17b)]('query')[_0x2d1128(0x154)]())throw CliErrors[_0x2d1128(0x143)]('Search\x20query\x20is\x20required.');readTopK(_0x1e3146);},async 'execute'(_0x9d3309){const _0x438730=a27_0x3f72d2,_0x11e0da=_0x9d3309[_0x438730(0x17b)](_0x438730(0x168))[_0x438730(0x154)](),_0x471870=readTopK(_0x9d3309),_0x121fc9=await searchKnowledgeBase(_0x9d3309['appCode'],{'query':_0x11e0da,'topK':_0x471870});return{'ok':!![],'data':{'total':_0x121fc9[_0x438730(0x156)],'hits':_0x121fc9[_0x438730(0x17e)](summarizeSearchHit)}};}};export const kbDefinitions=[kbList,kbDetail,kbCreate,kbUpdate,kbSearch];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a28_0x57cd74=a28_0x4b9d;function a28_0x4b9d(_0x42502e,_0x3403be){_0x42502e=_0x42502e-0x15c;const _0x1d22b4=a28_0x1d22();let _0x4b9de9=_0x1d22b4[_0x42502e];return _0x4b9de9;}function a28_0x1d22(){const _0x55aaa6=['stringify','success','warn','forEach','readLogs','1AAdENJ','duration','1818vtoeOw','clearLogs','1254555zjiRHk','\x20\x20\x20Duration:\x20','keys','details','level','en-US','1367684wAgVYO','\x20logs:\x0a','1827224GMlYmK','\x20\x20\x20Time:\x20','message','\x20\x20\x20Details:\x20','3320475wHtcAu','12810537YfBFih','log','19733vJycMm','930698TQzPAP','timestamp','*\x20No\x20logs\x20found','length','show'];a28_0x1d22=function(){return _0x55aaa6;};return a28_0x1d22();}(function(_0x17bb7c,_0x4811b8){const _0x577a98=a28_0x4b9d,_0x23d129=_0x17bb7c();while(!![]){try{const _0x23ff6a=-parseInt(_0x577a98(0x16b))/0x1*(-parseInt(_0x577a98(0x161))/0x2)+parseInt(_0x577a98(0x16f))/0x3+-parseInt(_0x577a98(0x175))/0x4+-parseInt(_0x577a98(0x15d))/0x5+-parseInt(_0x577a98(0x16d))/0x6*(parseInt(_0x577a98(0x160))/0x7)+parseInt(_0x577a98(0x177))/0x8+parseInt(_0x577a98(0x15e))/0x9;if(_0x23ff6a===_0x4811b8)break;else _0x23d129['push'](_0x23d129['shift']());}catch(_0xc5920){_0x23d129['push'](_0x23d129['shift']());}}}(a28_0x1d22,0xa4d55));import{logger}from'../../utils/logger.js';import{CLI_DISPLAY_NAME}from'../../constant/cli.js';function printLogs(_0x5d5e35){const _0x36faa9=a28_0x4b9d;if(_0x5d5e35[_0x36faa9(0x164)]===0x0){console[_0x36faa9(0x15f)](_0x36faa9(0x163));return;}console[_0x36faa9(0x15f)]('*\x20'+CLI_DISPLAY_NAME+_0x36faa9(0x176)),_0x5d5e35[_0x36faa9(0x169)]((_0x20ec3b,_0x2c7e27)=>{const _0x4352cd=_0x36faa9,_0x35055b=new Date(_0x20ec3b[_0x4352cd(0x162)])['toLocaleString'](_0x4352cd(0x174)),_0x4f1bfb=_0x20ec3b[_0x4352cd(0x173)]===_0x4352cd(0x167)?'√':_0x20ec3b[_0x4352cd(0x173)]==='error'?'×':_0x20ec3b['level']===_0x4352cd(0x168)?'!':'i';console['log'](_0x2c7e27+0x1+'.\x20'+_0x4f1bfb+'\x20['+_0x20ec3b['command']+']\x20'+_0x20ec3b[_0x4352cd(0x179)]),console[_0x4352cd(0x15f)](_0x4352cd(0x178)+_0x35055b),_0x20ec3b[_0x4352cd(0x16c)]&&console[_0x4352cd(0x15f)](_0x4352cd(0x170)+_0x20ec3b['duration']+'ms'),_0x20ec3b[_0x4352cd(0x172)]&&Object[_0x4352cd(0x171)](_0x20ec3b[_0x4352cd(0x172)])['length']>0x0&&console[_0x4352cd(0x15f)](_0x4352cd(0x15c)+JSON[_0x4352cd(0x166)](_0x20ec3b['details'],null,0x2)),console['log']('');});}export const logsDefinitions=[{'service':'logs','command':a28_0x57cd74(0x165),'description':'View\x20command\x20history\x20logs','risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x15ab1e){const _0x5c9d55=a28_0x57cd74;return printLogs(logger[_0x5c9d55(0x16a)]()),{'ok':!![]};}},{'service':'logs','command':'clear','description':'Clear\x20command\x20history\x20logs','risk':'write','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x2ad83a){const _0x3cc85d=a28_0x57cd74;return logger[_0x3cc85d(0x16e)](),console[_0x3cc85d(0x15f)]('*\x20Logs\x20cleared'),{'ok':!![]};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a28_0x26755a=a28_0x18ef;(function(_0x5b7421,_0x506208){const _0x2877d1=a28_0x18ef,_0x4dd3e1=_0x5b7421();while(!![]){try{const _0xab1506=-parseInt(_0x2877d1(0x176))/0x1+parseInt(_0x2877d1(0x172))/0x2+-parseInt(_0x2877d1(0x17e))/0x3*(-parseInt(_0x2877d1(0x17f))/0x4)+parseInt(_0x2877d1(0x154))/0x5+parseInt(_0x2877d1(0x183))/0x6*(-parseInt(_0x2877d1(0x15d))/0x7)+-parseInt(_0x2877d1(0x15e))/0x8+parseInt(_0x2877d1(0x175))/0x9;if(_0xab1506===_0x506208)break;else _0x4dd3e1['push'](_0x4dd3e1['shift']());}catch(_0x28ecad){_0x4dd3e1['push'](_0x4dd3e1['shift']());}}}(a28_0x2909,0x5946f));import{existsSync,readFileSync,statSync}from'node:fs';import{createPersonalBff,executePersonalBff,getPersonalBff,listPersonalBffs,updatePersonalBff}from'../../core/api-client.js';import{ID_FLAG,PARAMS_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';function a28_0x2909(){const _0x44808e=['personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.','detail','Personal\x20BFF\x20script\x20ID','isFile','3aWgsak','1499624WebvyT','sourceSessionId','create','trim','2915694cSgHcg','high-risk-write','Created\x20personal\x20BFF\x20','file','verbose','bool','test','update','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','Preview:\x20update\x20personal\x20BFF\x20','Preview:\x20create\x20personal\x20BFF\x20','length','validation','gmtModified','string','write','/update','personal-bff','Updated\x20personal\x20BFF\x20','Personal\x20BFF\x20description','gmtCreate','Optional\x20source\x20RuntimeAgent\x20session\x20id','utf8','2838690RzWTrk','File\x20is\x20not\x20a\x20regular\x20file:\x20','functionName','scriptContent','isArray','Show\x20one\x20personal\x20BFF\x20by\x20id','createUserId','Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file','7fgZUXT','2372792RVLwhk','File\x20path\x20is\x20required.','POST','exec','config','source-session-id','flag','scriptType','File\x20not\x20found:\x20','params','appCode','read','/client/runtime-bff/personal/create','Update\x20a\x20personal\x20BFF\x20by\x20id','build','body','str','keys','name','description','969016xbzquv','Personal\x20BFF\x20script\x20file\x20is\x20blank.','version','1279386dlUYwN','421079eRjVuD','updateTime','list','num'];a28_0x2909=function(){return _0x44808e;};return a28_0x2909();}import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{parseJsonParams}from'../../utils/params.js';const FUNCTION_NAME_PATTERN=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,FILE_FLAG={'name':a28_0x26755a(0x186),'type':a28_0x26755a(0x191),'description':a28_0x26755a(0x15c)},FUNCTION_NAME_FLAG={'name':'name','type':'string','required':!![],'description':'Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders'},DESCRIPTION_FLAG={'name':a28_0x26755a(0x171),'type':a28_0x26755a(0x191),'description':a28_0x26755a(0x196)},SOURCE_SESSION_FLAG={'name':a28_0x26755a(0x163),'type':'string','description':a28_0x26755a(0x198)};function normalizeFunctionName(_0x315464){const _0x31836b=a28_0x26755a,_0x4f2b60=String(_0x315464||'')[_0x31836b(0x182)]();if(!_0x4f2b60||!FUNCTION_NAME_PATTERN[_0x31836b(0x189)](_0x4f2b60))throw CliErrors[_0x31836b(0x18f)]('--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.');return _0x4f2b60;}function readScriptFile(_0x5a9766){const _0x411455=a28_0x26755a;if(!_0x5a9766)throw CliErrors[_0x411455(0x18f)](_0x411455(0x15f));if(!existsSync(_0x5a9766))throw CliErrors[_0x411455(0x18f)](_0x411455(0x166)+_0x5a9766);if(!statSync(_0x5a9766)[_0x411455(0x17d)]())throw CliErrors['validation'](_0x411455(0x155)+_0x5a9766);const _0x109914=readFileSync(_0x5a9766,_0x411455(0x153));if(!_0x109914[_0x411455(0x182)]())throw CliErrors['validation'](_0x411455(0x173));return _0x109914;}function a28_0x18ef(_0xe9e800,_0x3b19ec){_0xe9e800=_0xe9e800-0x153;const _0x290959=a28_0x2909();let _0x18ef0e=_0x290959[_0xe9e800];return _0x18ef0e;}function optionalTrimmed(_0x2d35d6){const _0x31d41b=String(_0x2d35d6||'')['trim']();return _0x31d41b||undefined;}function summarizeBff(_0x305b4d){const _0x4a7a3b=a28_0x26755a;return{'id':_0x305b4d['id'],'appCode':_0x305b4d[_0x4a7a3b(0x168)],'functionName':_0x305b4d['functionName'],'description':_0x305b4d['description'],'scriptType':_0x305b4d[_0x4a7a3b(0x165)],'version':_0x305b4d[_0x4a7a3b(0x174)],'gmtModified':_0x305b4d[_0x4a7a3b(0x190)],'updateTime':_0x305b4d[_0x4a7a3b(0x177)]};}function detailBff(_0xfcc002){const _0x567342=a28_0x26755a;return{'id':_0xfcc002['id'],'appCode':_0xfcc002[_0x567342(0x168)],'functionName':_0xfcc002[_0x567342(0x156)],'description':_0xfcc002[_0x567342(0x171)],'scriptType':_0xfcc002[_0x567342(0x165)],'scriptContent':_0xfcc002['scriptContent']??'','config':_0xfcc002[_0x567342(0x162)],'version':_0xfcc002[_0x567342(0x174)],'createUserId':_0xfcc002[_0x567342(0x15a)],'gmtCreate':_0xfcc002[_0x567342(0x197)],'gmtModified':_0xfcc002['gmtModified'],'createTime':_0xfcc002['createTime'],'updateTime':_0xfcc002[_0x567342(0x177)]};}function buildCreateInput(_0x41a64a){const _0x355f24=a28_0x26755a;return{'functionName':normalizeFunctionName(_0x41a64a[_0x355f24(0x16e)]('name')),...optionalTrimmed(_0x41a64a[_0x355f24(0x16e)](_0x355f24(0x171)))?{'description':optionalTrimmed(_0x41a64a[_0x355f24(0x16e)](_0x355f24(0x171)))}:{},'scriptContent':readScriptFile(_0x41a64a[_0x355f24(0x16e)](_0x355f24(0x186))),...optionalTrimmed(_0x41a64a['str'](_0x355f24(0x163)))?{'sourceSessionId':optionalTrimmed(_0x41a64a[_0x355f24(0x16e)](_0x355f24(0x163)))}:{}};}function buildUpdateInput(_0x4fad54){const _0x54ef7a=a28_0x26755a,_0x102ec7={};optionalTrimmed(_0x4fad54[_0x54ef7a(0x16e)](_0x54ef7a(0x170)))&&(_0x102ec7[_0x54ef7a(0x156)]=normalizeFunctionName(_0x4fad54['str'](_0x54ef7a(0x170))));_0x4fad54['flag']('description')!==undefined&&(_0x102ec7['description']=_0x4fad54[_0x54ef7a(0x16e)](_0x54ef7a(0x171)));optionalTrimmed(_0x4fad54[_0x54ef7a(0x16e)](_0x54ef7a(0x186)))&&(_0x102ec7[_0x54ef7a(0x157)]=readScriptFile(_0x4fad54['str'](_0x54ef7a(0x186))));_0x4fad54[_0x54ef7a(0x164)](_0x54ef7a(0x163))!==undefined&&(_0x102ec7[_0x54ef7a(0x180)]=_0x4fad54[_0x54ef7a(0x16e)](_0x54ef7a(0x163)));if(Object[_0x54ef7a(0x16f)](_0x102ec7)['length']===0x0)throw CliErrors[_0x54ef7a(0x18f)](_0x54ef7a(0x17a));return _0x102ec7;}function parseExecParams(_0x200f26){const _0x45ecb9=a28_0x26755a,_0x564ec3=parseJsonParams(_0x200f26)??{};if(Array[_0x45ecb9(0x158)](_0x564ec3))throw CliErrors[_0x45ecb9(0x18f)]('--params\x20must\x20be\x20a\x20JSON\x20object.');return _0x564ec3;}const personalBffList={'service':a28_0x26755a(0x194),'command':a28_0x26755a(0x178),'description':'List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','risk':a28_0x26755a(0x169),'flags':[VERBOSE_FLAG],async 'execute'(_0x4f72b3){const _0x6f6aab=a28_0x26755a,_0x1bcbb7=await listPersonalBffs(_0x4f72b3[_0x6f6aab(0x168)]);return{'ok':!![],'data':{'total':_0x1bcbb7[_0x6f6aab(0x18e)],'items':_0x4f72b3[_0x6f6aab(0x188)](_0x6f6aab(0x187))?_0x1bcbb7:_0x1bcbb7['map'](summarizeBff)}};}},personalBffDetail={'service':a28_0x26755a(0x194),'command':a28_0x26755a(0x17b),'description':a28_0x26755a(0x159),'risk':'read','flags':[{...ID_FLAG,'description':a28_0x26755a(0x17c)}],async 'execute'(_0x3a77b8){const _0x25c307=a28_0x26755a,_0x264655=await getPersonalBff(_0x3a77b8[_0x25c307(0x179)]('id'),_0x3a77b8[_0x25c307(0x168)]);return{'ok':!![],'data':detailBff(_0x264655)};}},personalBffCreate={'service':a28_0x26755a(0x194),'command':a28_0x26755a(0x181),'description':a28_0x26755a(0x18b),'risk':a28_0x26755a(0x192),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x51f0e9){const _0x170440=a28_0x26755a,_0x2f9dd1=buildCreateInput(_0x51f0e9),_0x56d90a=await createPersonalBff(_0x51f0e9[_0x170440(0x168)],_0x2f9dd1);return{'ok':!![],'data':detailBff(_0x56d90a),'message':_0x170440(0x185)+_0x56d90a['id']+(_0x56d90a[_0x170440(0x156)]?'\x20('+_0x56d90a[_0x170440(0x156)]+')':'')};},async 'dryRun'(_0x100371){const _0xc8a9a0=a28_0x26755a,_0xe8aa07=buildCreateInput(_0x100371);return dryRun(_0xc8a9a0(0x160),_0xc8a9a0(0x16a))[_0xc8a9a0(0x16d)]({'appCode':_0x100371[_0xc8a9a0(0x168)],..._0xe8aa07})[_0xc8a9a0(0x171)](_0xc8a9a0(0x18d)+_0xe8aa07[_0xc8a9a0(0x156)])[_0xc8a9a0(0x16c)]();}},personalBffUpdate={'service':a28_0x26755a(0x194),'command':a28_0x26755a(0x18a),'description':a28_0x26755a(0x16b),'risk':a28_0x26755a(0x192),'flags':[{...ID_FLAG,'description':'Personal\x20BFF\x20script\x20ID'},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x490212){const _0x4fb3b0=a28_0x26755a,_0x6bb349=_0x490212['num']('id'),_0x2c5efa=buildUpdateInput(_0x490212),_0x111f9a=await updatePersonalBff(_0x6bb349,_0x490212[_0x4fb3b0(0x168)],_0x2c5efa);return{'ok':!![],'data':detailBff(_0x111f9a),'message':_0x4fb3b0(0x195)+_0x111f9a['id']+(_0x111f9a['functionName']?'\x20('+_0x111f9a[_0x4fb3b0(0x156)]+')':'')};},async 'dryRun'(_0x5e6456){const _0x3578c0=a28_0x26755a,_0x183e84=_0x5e6456[_0x3578c0(0x179)]('id'),_0xcc76f7=buildUpdateInput(_0x5e6456);return dryRun(_0x3578c0(0x160),'/client/runtime-bff/personal/'+_0x183e84+_0x3578c0(0x193))[_0x3578c0(0x16d)]({'appCode':_0x5e6456[_0x3578c0(0x168)],..._0xcc76f7})['description'](_0x3578c0(0x18c)+_0x183e84)[_0x3578c0(0x16c)]();}},personalBffExec={'service':a28_0x26755a(0x194),'command':a28_0x26755a(0x161),'description':a28_0x26755a(0x15b),'risk':a28_0x26755a(0x184),'flags':[{...ID_FLAG,'description':a28_0x26755a(0x17c)},{...PARAMS_FLAG,'description':'JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution'}],async 'validate'(_0x5c9fea){parseExecParams(_0x5c9fea['str']('params'));},async 'execute'(_0x3e9959){const _0x2b4f57=a28_0x26755a,_0x37aa87=_0x3e9959[_0x2b4f57(0x179)]('id'),_0x2d7ba8=parseExecParams(_0x3e9959[_0x2b4f57(0x16e)](_0x2b4f57(0x167))),_0x5ca4bd=await executePersonalBff(_0x37aa87,_0x3e9959['appCode'],_0x2d7ba8);return{'ok':!![],'data':{'result':_0x5ca4bd},'message':'Executed\x20personal\x20BFF\x20'+_0x37aa87};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
|
|
1
|
+
const a29_0x25915f=a29_0x72d4;(function(_0x44e83c,_0x146216){const _0x4313e1=a29_0x72d4,_0x18cd62=_0x44e83c();while(!![]){try{const _0x1797a2=-parseInt(_0x4313e1(0x7f))/0x1*(parseInt(_0x4313e1(0x90))/0x2)+parseInt(_0x4313e1(0x77))/0x3+-parseInt(_0x4313e1(0x87))/0x4*(-parseInt(_0x4313e1(0xac))/0x5)+-parseInt(_0x4313e1(0x95))/0x6*(parseInt(_0x4313e1(0xa2))/0x7)+-parseInt(_0x4313e1(0xa9))/0x8*(parseInt(_0x4313e1(0xab))/0x9)+parseInt(_0x4313e1(0x98))/0xa*(parseInt(_0x4313e1(0x8b))/0xb)+parseInt(_0x4313e1(0x7d))/0xc;if(_0x1797a2===_0x146216)break;else _0x18cd62['push'](_0x18cd62['shift']());}catch(_0x1c8ee2){_0x18cd62['push'](_0x18cd62['shift']());}}}(a29_0x2119,0x87af4));function a29_0x2119(){const _0x53e88e=['Personal\x20BFF\x20script\x20ID','updateTime','3901920Ibxwgz','name','299dsYyqE','trim','source-session-id','Personal\x20BFF\x20script\x20file\x20is\x20blank.','update','exec','Update\x20a\x20personal\x20BFF\x20by\x20id','/client/runtime-bff/personal/','2156dgxIAu','/client/runtime-bff/personal/create','Preview:\x20update\x20personal\x20BFF\x20','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','396nUgfzo','Updated\x20personal\x20BFF\x20','Show\x20one\x20personal\x20BFF\x20by\x20id','File\x20not\x20found:\x20','config','3794byHrmw','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','POST','Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders','validation','3504Hkmuvj','List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','sourceSessionId','268610gQrbgN','gmtModified','flag','functionName','File\x20path\x20is\x20required.','personal-bff','high-risk-write','str','Optional\x20source\x20RuntimeAgent\x20session\x20id','gmtCreate','5012AAVXwk','list','scriptType','/update','Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','read','num','26048tqhhMS','verbose','2313HXgktW','9305rDqooN','keys','description','write','string','Executed\x20personal\x20BFF\x20','params','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','scriptContent','body','Preview:\x20create\x20personal\x20BFF\x20','Personal\x20BFF\x20description','createTime','build','version','Created\x20personal\x20BFF\x20','248004Enuhhm','file','File\x20is\x20not\x20a\x20regular\x20file:\x20','appCode'];a29_0x2119=function(){return _0x53e88e;};return a29_0x2119();}import{existsSync,readFileSync,statSync}from'node:fs';function a29_0x72d4(_0x1e8505,_0xc1edee){_0x1e8505=_0x1e8505-0x6a;const _0x2119fe=a29_0x2119();let _0x72d45=_0x2119fe[_0x1e8505];return _0x72d45;}import{createPersonalBff,executePersonalBff,getPersonalBff,listPersonalBffs,updatePersonalBff}from'../../core/api-client.js';import{ID_FLAG,PARAMS_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{parseJsonParams}from'../../utils/params.js';const FUNCTION_NAME_PATTERN=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,FILE_FLAG={'name':a29_0x25915f(0x78),'type':a29_0x25915f(0x6b),'description':'Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file'},FUNCTION_NAME_FLAG={'name':a29_0x25915f(0x7e),'type':a29_0x25915f(0x6b),'required':!![],'description':a29_0x25915f(0x93)},DESCRIPTION_FLAG={'name':a29_0x25915f(0xae),'type':a29_0x25915f(0x6b),'description':a29_0x25915f(0x72)},SOURCE_SESSION_FLAG={'name':a29_0x25915f(0x81),'type':a29_0x25915f(0x6b),'description':a29_0x25915f(0xa0)};function normalizeFunctionName(_0x126d22){const _0x55a9a9=a29_0x25915f,_0x3bffea=String(_0x126d22||'')[_0x55a9a9(0x80)]();if(!_0x3bffea||!FUNCTION_NAME_PATTERN['test'](_0x3bffea))throw CliErrors[_0x55a9a9(0x94)](_0x55a9a9(0x8a));return _0x3bffea;}function readScriptFile(_0x273383){const _0xb31966=a29_0x25915f;if(!_0x273383)throw CliErrors[_0xb31966(0x94)](_0xb31966(0x9c));if(!existsSync(_0x273383))throw CliErrors[_0xb31966(0x94)](_0xb31966(0x8e)+_0x273383);if(!statSync(_0x273383)['isFile']())throw CliErrors[_0xb31966(0x94)](_0xb31966(0x79)+_0x273383);const _0x13d3c5=readFileSync(_0x273383,'utf8');if(!_0x13d3c5['trim']())throw CliErrors[_0xb31966(0x94)](_0xb31966(0x82));return _0x13d3c5;}function optionalTrimmed(_0x5f2b11){const _0x3c8adb=a29_0x25915f,_0x1bfc4d=String(_0x5f2b11||'')[_0x3c8adb(0x80)]();return _0x1bfc4d||undefined;}function summarizeBff(_0x4fb231){const _0x31f027=a29_0x25915f;return{'id':_0x4fb231['id'],'appCode':_0x4fb231[_0x31f027(0x7a)],'functionName':_0x4fb231['functionName'],'description':_0x4fb231[_0x31f027(0xae)],'scriptType':_0x4fb231['scriptType'],'version':_0x4fb231['version'],'gmtModified':_0x4fb231['gmtModified'],'updateTime':_0x4fb231[_0x31f027(0x7c)]};}function detailBff(_0x2a69a3){const _0x1fefd0=a29_0x25915f;return{'id':_0x2a69a3['id'],'appCode':_0x2a69a3['appCode'],'functionName':_0x2a69a3['functionName'],'description':_0x2a69a3['description'],'scriptType':_0x2a69a3[_0x1fefd0(0xa4)],'scriptContent':_0x2a69a3[_0x1fefd0(0x6f)]??'','config':_0x2a69a3[_0x1fefd0(0x8f)],'version':_0x2a69a3[_0x1fefd0(0x75)],'createUserId':_0x2a69a3['createUserId'],'gmtCreate':_0x2a69a3[_0x1fefd0(0xa1)],'gmtModified':_0x2a69a3[_0x1fefd0(0x99)],'createTime':_0x2a69a3[_0x1fefd0(0x73)],'updateTime':_0x2a69a3[_0x1fefd0(0x7c)]};}function buildCreateInput(_0x8191a8){const _0x14fa21=a29_0x25915f;return{'functionName':normalizeFunctionName(_0x8191a8[_0x14fa21(0x9f)](_0x14fa21(0x7e))),...optionalTrimmed(_0x8191a8['str'](_0x14fa21(0xae)))?{'description':optionalTrimmed(_0x8191a8[_0x14fa21(0x9f)]('description'))}:{},'scriptContent':readScriptFile(_0x8191a8['str'](_0x14fa21(0x78))),...optionalTrimmed(_0x8191a8['str'](_0x14fa21(0x81)))?{'sourceSessionId':optionalTrimmed(_0x8191a8[_0x14fa21(0x9f)](_0x14fa21(0x81)))}:{}};}function buildUpdateInput(_0x249b76){const _0x43bae9=a29_0x25915f,_0x3d7e1c={};optionalTrimmed(_0x249b76[_0x43bae9(0x9f)](_0x43bae9(0x7e)))&&(_0x3d7e1c['functionName']=normalizeFunctionName(_0x249b76[_0x43bae9(0x9f)]('name')));_0x249b76[_0x43bae9(0x9a)](_0x43bae9(0xae))!==undefined&&(_0x3d7e1c['description']=_0x249b76['str']('description'));optionalTrimmed(_0x249b76['str'](_0x43bae9(0x78)))&&(_0x3d7e1c[_0x43bae9(0x6f)]=readScriptFile(_0x249b76[_0x43bae9(0x9f)](_0x43bae9(0x78))));_0x249b76[_0x43bae9(0x9a)]('source-session-id')!==undefined&&(_0x3d7e1c[_0x43bae9(0x97)]=_0x249b76[_0x43bae9(0x9f)]('source-session-id'));if(Object[_0x43bae9(0xad)](_0x3d7e1c)['length']===0x0)throw CliErrors[_0x43bae9(0x94)]('personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.');return _0x3d7e1c;}function parseExecParams(_0x4177cb){const _0x31a835=parseJsonParams(_0x4177cb)??{};if(Array['isArray'](_0x31a835))throw CliErrors['validation']('--params\x20must\x20be\x20a\x20JSON\x20object.');return _0x31a835;}const personalBffList={'service':a29_0x25915f(0x9d),'command':a29_0x25915f(0xa3),'description':a29_0x25915f(0x96),'risk':'read','flags':[VERBOSE_FLAG],async 'execute'(_0x1a10c0){const _0x554212=a29_0x25915f,_0x56ca15=await listPersonalBffs(_0x1a10c0[_0x554212(0x7a)]);return{'ok':!![],'data':{'total':_0x56ca15['length'],'items':_0x1a10c0['bool'](_0x554212(0xaa))?_0x56ca15:_0x56ca15['map'](summarizeBff)}};}},personalBffDetail={'service':a29_0x25915f(0x9d),'command':'detail','description':a29_0x25915f(0x8d),'risk':a29_0x25915f(0xa7),'flags':[{...ID_FLAG,'description':'Personal\x20BFF\x20script\x20ID'}],async 'execute'(_0x60b2b1){const _0x103646=a29_0x25915f,_0x364267=await getPersonalBff(_0x60b2b1[_0x103646(0xa8)]('id'),_0x60b2b1['appCode']);return{'ok':!![],'data':detailBff(_0x364267)};}},personalBffCreate={'service':a29_0x25915f(0x9d),'command':'create','description':a29_0x25915f(0x91),'risk':'write','flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x2c66d3){const _0x246e85=a29_0x25915f,_0x5b442e=buildCreateInput(_0x2c66d3),_0x5a6f42=await createPersonalBff(_0x2c66d3[_0x246e85(0x7a)],_0x5b442e);return{'ok':!![],'data':detailBff(_0x5a6f42),'message':_0x246e85(0x76)+_0x5a6f42['id']+(_0x5a6f42[_0x246e85(0x9b)]?'\x20('+_0x5a6f42[_0x246e85(0x9b)]+')':'')};},async 'dryRun'(_0x28e2c8){const _0x1a550a=a29_0x25915f,_0x5e4e1a=buildCreateInput(_0x28e2c8);return dryRun('POST',_0x1a550a(0x88))[_0x1a550a(0x70)]({'appCode':_0x28e2c8[_0x1a550a(0x7a)],..._0x5e4e1a})[_0x1a550a(0xae)](_0x1a550a(0x71)+_0x5e4e1a['functionName'])[_0x1a550a(0x74)]();}},personalBffUpdate={'service':a29_0x25915f(0x9d),'command':a29_0x25915f(0x83),'description':a29_0x25915f(0x85),'risk':a29_0x25915f(0x6a),'flags':[{...ID_FLAG,'description':a29_0x25915f(0x7b)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x46bc66){const _0x578ce8=a29_0x25915f,_0x202d78=_0x46bc66[_0x578ce8(0xa8)]('id'),_0x1bcaad=buildUpdateInput(_0x46bc66),_0x5bb9cb=await updatePersonalBff(_0x202d78,_0x46bc66[_0x578ce8(0x7a)],_0x1bcaad);return{'ok':!![],'data':detailBff(_0x5bb9cb),'message':_0x578ce8(0x8c)+_0x5bb9cb['id']+(_0x5bb9cb['functionName']?'\x20('+_0x5bb9cb[_0x578ce8(0x9b)]+')':'')};},async 'dryRun'(_0x56d1b3){const _0x283d62=a29_0x25915f,_0x41aa97=_0x56d1b3[_0x283d62(0xa8)]('id'),_0x42e42a=buildUpdateInput(_0x56d1b3);return dryRun(_0x283d62(0x92),_0x283d62(0x86)+_0x41aa97+_0x283d62(0xa5))[_0x283d62(0x70)]({'appCode':_0x56d1b3[_0x283d62(0x7a)],..._0x42e42a})[_0x283d62(0xae)](_0x283d62(0x89)+_0x41aa97)['build']();}},personalBffExec={'service':a29_0x25915f(0x9d),'command':a29_0x25915f(0x84),'description':a29_0x25915f(0xa6),'risk':a29_0x25915f(0x9e),'flags':[{...ID_FLAG,'description':'Personal\x20BFF\x20script\x20ID'},{...PARAMS_FLAG,'description':a29_0x25915f(0x6e)}],async 'validate'(_0x4466c5){const _0x4e4a18=a29_0x25915f;parseExecParams(_0x4466c5[_0x4e4a18(0x9f)]('params'));},async 'execute'(_0x396fd0){const _0x22e0a1=a29_0x25915f,_0x38a6ab=_0x396fd0[_0x22e0a1(0xa8)]('id'),_0x28e71f=parseExecParams(_0x396fd0[_0x22e0a1(0x9f)](_0x22e0a1(0x6d))),_0x875ec9=await executePersonalBff(_0x38a6ab,_0x396fd0[_0x22e0a1(0x7a)],_0x28e71f);return{'ok':!![],'data':{'result':_0x875ec9},'message':_0x22e0a1(0x6c)+_0x38a6ab};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
|
package/lib/commands/registry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a30_0x234598=a30_0x2e0e;(function(_0x455422,_0x241734){const _0x3271d4=a30_0x2e0e,_0x477460=_0x455422();while(!![]){try{const _0x3671da=parseInt(_0x3271d4(0x1b4))/0x1+-parseInt(_0x3271d4(0x1aa))/0x2+parseInt(_0x3271d4(0x1ba))/0x3+-parseInt(_0x3271d4(0x1ac))/0x4+-parseInt(_0x3271d4(0x1bb))/0x5+-parseInt(_0x3271d4(0x1c3))/0x6+parseInt(_0x3271d4(0x1ae))/0x7*(parseInt(_0x3271d4(0x1b0))/0x8);if(_0x3671da===_0x241734)break;else _0x477460['push'](_0x477460['shift']());}catch(_0x23a7a3){_0x477460['push'](_0x477460['shift']());}}}(a30_0x4605,0x511d1));import{authDefinitions}from'../commands/auth/index.js';import{logsDefinitions}from'../commands/logs/index.js';import{skillDefinitions}from'../commands/skill/index.js';import{cliSkillDefinitions}from'../commands/cli-skill/index.js';import{serviceDefinitions}from'../commands/service/index.js';import{updateDefinition}from'../commands/update.js';import{doctorDefinition}from'../commands/doctor.js';import{schemaDefinition}from'../commands/schema.js';import{appDefinitions}from'../commands/app/definitions.js';import{workspaceDefinitions}from'../commands/workspace/index.js';import{configDefinitions}from'../commands/config/definitions.js';import{bffDefinitions}from'../commands/bff/index.js';import{sqlDefinitions}from'../commands/sql/index.js';function a30_0x2e0e(_0xd257ca,_0x37a9ef){_0xd257ca=_0xd257ca-0x1a9;const _0x4605de=a30_0x4605();let _0x2e0e11=_0x4605de[_0xd257ca];return _0x2e0e11;}import{datasetDefinitions}from'../commands/dataset/index.js';import{dataDefinitions}from'../commands/data/index.js';import{kbDefinitions}from'../commands/kb/index.js';import{artifactDefinitions}from'../commands/artifact/index.js';import{personalBffDefinitions}from'../commands/personal-bff/index.js';import{apiDocDefinitions}from'../commands/api-doc/index.js';export const serviceRegistry=[];const serviceByName=new Map();export const definitions=new Map();export const serviceGroups=new Map();function registerDefinitions(_0x13c688){const _0x1faf09=a30_0x2e0e;for(const _0x45dbbb of _0x13c688){definitions[_0x1faf09(0x1b3)](_0x45dbbb['service']+':'+_0x45dbbb['command'],_0x45dbbb);let _0x201298=serviceGroups[_0x1faf09(0x1b7)](_0x45dbbb[_0x1faf09(0x1c0)]);!_0x201298&&(_0x201298=[],serviceGroups[_0x1faf09(0x1b3)](_0x45dbbb['service'],_0x201298)),_0x201298[_0x1faf09(0x1ad)](_0x45dbbb);}}function registerService(_0x50886e,_0x4e1778,_0x4b78f6){const _0x95bf1=a30_0x2e0e;registerDefinitions(_0x4e1778);const _0x1db57d=_0x10ded8=>_0x10ded8==='read'?'':_0x10ded8==='write'?'\x20\x20[write]':_0x95bf1(0x1bd),_0x33dbe9={'service':_0x4e1778[0x0]['service'],'label':_0x50886e,'commands':_0x4e1778[_0x95bf1(0x1bf)](_0x51afc0=>({'command':_0x51afc0[_0x95bf1(0x1b5)],'description':_0x51afc0[_0x95bf1(0x1c1)],'tag':_0x1db57d(_0x51afc0[_0x95bf1(0x1b9)])})),'defaultCommand':_0x4b78f6?.['defaultCommand']??(_0x4b78f6?.['isSingleCommand']?_0x4e1778[0x0][_0x95bf1(0x1b5)]:undefined),'isSingleCommand':_0x4b78f6?.[_0x95bf1(0x1c6)]};serviceRegistry[_0x95bf1(0x1ad)](_0x33dbe9),serviceByName['set'](_0x33dbe9[_0x95bf1(0x1c0)],_0x33dbe9);}registerService(a30_0x234598(0x1b2),authDefinitions,{'defaultCommand':'login'}),registerService('API\x20Documentation',apiDocDefinitions),registerService(a30_0x234598(0x1cc),datasetDefinitions),registerService(a30_0x234598(0x1c4),dataDefinitions),registerService('SQL\x20Queries',sqlDefinitions),registerService(a30_0x234598(0x1ab),bffDefinitions),registerService(a30_0x234598(0x1bc),personalBffDefinitions),registerService(a30_0x234598(0x1af),artifactDefinitions),registerService(a30_0x234598(0x1ca),kbDefinitions),registerService(a30_0x234598(0x1cb),appDefinitions,{'defaultCommand':'list'}),registerService(a30_0x234598(0x1a9),workspaceDefinitions),registerService('Configuration',configDefinitions,{'defaultCommand':a30_0x234598(0x1c5)}),registerService(a30_0x234598(0x1b6),serviceDefinitions,{'defaultCommand':a30_0x234598(0x1c5)}),registerService(a30_0x234598(0x1b1),skillDefinitions,{'defaultCommand':a30_0x234598(0x1c7)}),registerService(a30_0x234598(0x1b8),cliSkillDefinitions,{'defaultCommand':a30_0x234598(0x1c7)}),registerService('Self\x20Update',[updateDefinition],{'defaultCommand':a30_0x234598(0x1c9),'isSingleCommand':!![]}),registerService(a30_0x234598(0x1be),[doctorDefinition],{'isSingleCommand':!![]}),registerService('Schema',[schemaDefinition],{'isSingleCommand':!![]}),registerService('Logs',logsDefinitions,{'defaultCommand':a30_0x234598(0x1cd)});export function findDefinition(_0x4b4559,_0x3e7c2c){const _0x4de1f3=a30_0x234598;return definitions[_0x4de1f3(0x1b7)](_0x4b4559+':'+_0x3e7c2c);}export function isKnownService(_0x3279cb){const _0x34d1a3=a30_0x234598;return serviceByName[_0x34d1a3(0x1c8)](_0x3279cb);}function a30_0x4605(){const _0x42786b=['3301056ikwoDA','Instant\x20API','list','isSingleCommand','install','has','run','Knowledge\x20Base','App\x20Management','Datasets','show','Workspace','570818HcdpVZ','BFF\x20Scripts','616640eYUwBi','push','27041WSxrgO','Artifacts','2096qXAlRX','Skills','Authentication','set','371030yWNjhP','command','Service\x20Tree','get','CLI\x20Built-in\x20Skill','risk','908910TIjXTl','1820600wydMOf','Personal\x20BFF','\x20\x20[high-risk-write]','Diagnostics','map','service','description','from'];a30_0x4605=function(){return _0x42786b;};return a30_0x4605();}export function getServiceEntry(_0x168a73){const _0x9070fa=a30_0x234598;return serviceByName[_0x9070fa(0x1b7)](_0x168a73);}export function getAllDefinitions(){const _0x41660c=a30_0x234598;return Array[_0x41660c(0x1c2)](definitions['values']());}
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a31_0x29554d=a31_0x4460;(function(_0xb69008,_0x3488b0){const _0x274097=a31_0x4460,_0x302ca2=_0xb69008();while(!![]){try{const _0x3c0542=-parseInt(_0x274097(0x98))/0x1*(-parseInt(_0x274097(0x9f))/0x2)+parseInt(_0x274097(0x9a))/0x3+parseInt(_0x274097(0x9e))/0x4+-parseInt(_0x274097(0x95))/0x5*(-parseInt(_0x274097(0xa0))/0x6)+-parseInt(_0x274097(0x99))/0x7+-parseInt(_0x274097(0x97))/0x8*(-parseInt(_0x274097(0x9b))/0x9)+-parseInt(_0x274097(0x94))/0xa;if(_0x3c0542===_0x3488b0)break;else _0x302ca2['push'](_0x302ca2['shift']());}catch(_0xe9dad5){_0x302ca2['push'](_0x302ca2['shift']());}}}(a31_0x1a8f,0xbc078));import{buildSchemaPayload}from'../framework/schema-export.js';function a31_0x1a8f(){const _0x1c79f7=['read','4796856yfMQFw','637646CjNMXf','31002xJZipE','schema','18699910HGrHzG','665vwIiuc','Export\x20machine-readable\x20command\x20schema\x20(JSON)','2843528EeffIn','1FQouKL','8928052LaWfbT','4064718TBBBic','9MSdXVi','export'];a31_0x1a8f=function(){return _0x1c79f7;};return a31_0x1a8f();}function a31_0x4460(_0x2e86d7,_0x20fea7){_0x2e86d7=_0x2e86d7-0x93;const _0x1a8f52=a31_0x1a8f();let _0x4460bd=_0x1a8f52[_0x2e86d7];return _0x4460bd;}async function execute(_0x190911){const _0x3b5779=await buildSchemaPayload();return{'ok':!![],'data':_0x3b5779};}export const schemaDefinition={'service':a31_0x29554d(0x93),'command':a31_0x29554d(0x9c),'description':a31_0x29554d(0x96),'risk':a31_0x29554d(0x9d),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0xcfdedd,_0x10625c){const _0x494e14=a31_0x49be,_0x42b39c=_0xcfdedd();while(!![]){try{const _0x30bbe6=parseInt(_0x494e14(0x247))/0x1*(-parseInt(_0x494e14(0x232))/0x2)+-parseInt(_0x494e14(0x231))/0x3+-parseInt(_0x494e14(0x24d))/0x4+parseInt(_0x494e14(0x246))/0x5*(-parseInt(_0x494e14(0x225))/0x6)+parseInt(_0x494e14(0x215))/0x7+parseInt(_0x494e14(0x1f7))/0x8+parseInt(_0x494e14(0x239))/0x9;if(_0x30bbe6===_0x10625c)break;else _0x42b39c['push'](_0x42b39c['shift']());}catch(_0x1c831a){_0x42b39c['push'](_0x42b39c['shift']());}}}(a31_0x34c3,0xe3e65));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';function a31_0x34c3(){const _0x20fd15=['now','some','\x20\x20\x20\x20command:\x20','\x20\x20\x20\x20','startsWith','params','validation','find','flags','length','username','json','\x20\x20\x20\x20scriptName:\x20','type','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','tableName','sqlCode','bff','Unknown\x20appRef\x20\x22','\x20->\x20','kind','1265726ClJFdc','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','envName','Commands:','map','env','bffCode','service','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','\x20completed\x20in\x20','\x20requires\x20target.sqlCode.','command','appcode','Use\x20`','\x20<command>\x20[flags]','loginName','52314ryKceD','boolean','description','const','trim','\x20\x20MAP\x20TO','remainingArgs','employeeId','\x20requires\x20target.scriptName.','required','name','fullPath','3532062GEufiJ','7426FjRVaz','appRef','default','join','Cannot\x20resolve\x20datatable\x20\x22','nickName','number','32930703tcfiET','appBindings','dbtableConfig','Run\x20service\x20command\x20','filter','Preview\x20dynamic\x20service\x20command:\x20','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','tree','userName','Service\x20command\x20','\x20\x20\x20\x20kind:\x20\x20\x20\x20','appCode','commands','745RiDHvJ','395RRbDgj','push','scriptName','operator','risk','datasetCode','2689772JSCsQH','args','\x20\x20\x20\x20sqlCode:\x20','datatable','rawFlags','bffId','normalizedManifest','cliName','source','app','\x20\x20[','read','13674040UwFdWE','code','target','cliPath','mapTo','sql','data','string','slice'];a31_0x34c3=function(){return _0x20fd15;};return a31_0x34c3();}import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x19caff,_0x57a93a){const _0x426dee=a31_0x49be,_0x5ccb33=listLocalServiceTrees();let _0x539c49;for(const _0x598c48 of _0x5ccb33){const _0x49c392=matchServiceTreeCommand(_0x598c48,_0x19caff);if(!_0x49c392)continue;(!_0x539c49||_0x49c392[_0x426dee(0x220)][_0x426dee(0x230)][_0x426dee(0x209)]>_0x539c49[_0x426dee(0x220)]['fullPath']['length'])&&(_0x539c49={'tree':_0x598c48,'command':_0x49c392['command'],'remainingArgs':_0x49c392[_0x426dee(0x22b)]});}if(!_0x539c49)return undefined;const _0x1ad14c={..._0x57a93a};return applyAppBinding(_0x539c49[_0x426dee(0x240)],_0x539c49[_0x426dee(0x220)],_0x1ad14c),{'definition':buildDynamicCommandDefinition(_0x539c49[_0x426dee(0x240)],_0x539c49[_0x426dee(0x220)]),'args':_0x539c49[_0x426dee(0x22b)],'flags':_0x1ad14c,'tree':_0x539c49[_0x426dee(0x240)],'command':_0x539c49[_0x426dee(0x220)]};}export function generateDynamicServiceHelp(_0x30687d){const _0x5393a7=a31_0x49be,_0x761608=listLocalServiceTrees()['find'](_0x218367=>_0x218367['service']['code']===_0x30687d);if(!_0x761608)return undefined;const _0x27018c=[CLI_BIN_NAME+'\x20'+_0x30687d+_0x5393a7(0x223),'',_0x761608['service']['name']||_0x30687d,_0x761608[_0x5393a7(0x21c)][_0x5393a7(0x227)]?'\x20\x20'+_0x761608[_0x5393a7(0x21c)][_0x5393a7(0x227)]:'','',_0x5393a7(0x218),..._0x761608['commands']['map'](_0x24aa61=>{const _0x4d0b4e=_0x5393a7,_0x37945b=_0x24aa61[_0x4d0b4e(0x230)][_0x4d0b4e(0x1ff)](0x1)['join']('\x20'),_0x3b19d6=_0x24aa61['risk']===_0x4d0b4e(0x1f6)?'':'\x20['+_0x24aa61[_0x4d0b4e(0x24b)]+']';return'\x20\x20'+_0x37945b['padEnd'](0x18)+'\x20'+(_0x24aa61[_0x4d0b4e(0x227)]||'')+_0x3b19d6;}),'',_0x5393a7(0x222)+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x30687d+'`\x20to\x20inspect\x20the\x20manifest.'][_0x5393a7(0x23d)](Boolean);return _0x27018c['join']('\x0a');}export function listDynamicServiceEntries(){const _0x5cd8e0=a31_0x49be;return listLocalServices()[_0x5cd8e0(0x219)](_0x1e637a=>{const _0x18c120=_0x5cd8e0,_0x1de783=_0x1e637a[_0x18c120(0x1f1)];return{'service':_0x1de783[_0x18c120(0x21c)]['code'],'label':_0x1de783[_0x18c120(0x21c)][_0x18c120(0x22f)]||_0x1de783[_0x18c120(0x21c)][_0x18c120(0x1f8)],'commands':_0x1de783['commands'][_0x18c120(0x219)](_0x226150=>({'command':dynamicCommandName(_0x226150),'description':_0x226150[_0x18c120(0x227)]||_0x18c120(0x23c)+_0x226150[_0x18c120(0x1fa)],'tag':riskTag(_0x226150[_0x18c120(0x24b)])}))};});}export function getDynamicServiceEntry(_0x153780){const _0x1125c0=a31_0x49be;return listDynamicServiceEntries()[_0x1125c0(0x207)](_0x3a9931=>_0x3a9931[_0x1125c0(0x21c)]===_0x153780);}export function listDynamicServiceDefinitions(_0x3a1db1){const _0x4d4853=a31_0x49be;return listLocalServiceTrees()['filter'](_0xa11007=>!_0x3a1db1||_0xa11007['service'][_0x4d4853(0x1f8)]===_0x3a1db1)['flatMap'](_0x300c0c=>_0x300c0c[_0x4d4853(0x245)][_0x4d4853(0x219)](_0x135c96=>buildDynamicCommandDefinition(_0x300c0c,_0x135c96)));}export function getDynamicServiceDefinitions(_0x58b13e){const _0x49cc5d=a31_0x49be,_0x2a32cb=listDynamicServiceDefinitions(_0x58b13e);return _0x2a32cb[_0x49cc5d(0x209)]>0x0?_0x2a32cb:undefined;}export function findDynamicServiceDefinition(_0x8707c4,_0x51158b){const _0xb5d0f7=a31_0x49be;return listDynamicServiceDefinitions(_0x8707c4)[_0xb5d0f7(0x207)](_0x50c7a7=>_0x50c7a7[_0xb5d0f7(0x220)]===_0x51158b);}export function buildDynamicCommandDefinition(_0x5f4333,_0x4133d8){const _0x2046c3=a31_0x49be;return{'service':_0x5f4333[_0x2046c3(0x21c)]['code'],'command':dynamicCommandName(_0x4133d8),'description':_0x4133d8[_0x2046c3(0x227)]||_0x2046c3(0x23c)+_0x4133d8['cliPath'],'risk':_0x4133d8[_0x2046c3(0x24b)],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x4133d8[_0x2046c3(0x1ec)][_0x2046c3(0x219)](_0x4e082c=>({'name':_0x4e082c[_0x2046c3(0x22f)],'description':_0x4e082c['description']||_0x4e082c[_0x2046c3(0x22f)],'required':_0x4e082c[_0x2046c3(0x22e)]})),'flags':_0x4133d8[_0x2046c3(0x208)][_0x2046c3(0x219)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x4133d8),async 'dryRun'(_0x53bbeb){const _0x432d39=_0x2046c3,_0x1b353a=await compilePlan(_0x4133d8,_0x53bbeb);return{'method':'SERVICE_TREE','url':_0x4133d8[_0x432d39(0x1fa)],'body':{'target':targetPreview(_0x1b353a),'params':_0x1b353a['params']},'description':_0x432d39(0x23e)+_0x4133d8['cliPath']};},async 'execute'(_0x144215){const _0x46518e=_0x2046c3,_0x3eb1ae=await compilePlan(_0x4133d8,_0x144215),_0x100166=Date['now'](),_0x432e15=await executePlan(_0x3eb1ae,_0x4133d8,_0x144215),_0xe31ffd=Date[_0x46518e(0x200)]()-_0x100166;return{'ok':!![],'data':{'service':_0x5f4333[_0x46518e(0x21c)],'command':_0x4133d8['cliPath'],'target':targetPreview(_0x3eb1ae),'result':_0x432e15,'elapsed':_0xe31ffd},'message':_0x46518e(0x242)+_0x4133d8[_0x46518e(0x1fa)]+_0x46518e(0x21e)+_0xe31ffd+'ms'};}};}function dynamicCommandName(_0x14d321){const _0x5b34f5=a31_0x49be;return _0x14d321[_0x5b34f5(0x230)][_0x5b34f5(0x1ff)](0x1)[_0x5b34f5(0x235)]('\x20');}function riskTag(_0x121931){const _0x3e714b=a31_0x49be;return _0x121931==='read'?'':_0x3e714b(0x1f5)+_0x121931+']';}function flagToCommandFlag(_0x4d2bb0){const _0x4479d7=a31_0x49be;return{'name':_0x4d2bb0[_0x4479d7(0x1f2)],'type':_0x4d2bb0[_0x4479d7(0x20d)]===_0x4479d7(0x20b)?_0x4479d7(0x1fe):_0x4d2bb0[_0x4479d7(0x20d)],'description':_0x4d2bb0['description']||_0x4d2bb0[_0x4479d7(0x22f)],'required':_0x4d2bb0['required'],'default':isPrimitiveFlagDefault(_0x4d2bb0[_0x4479d7(0x234)])?_0x4d2bb0[_0x4479d7(0x234)]:undefined,'enum':_0x4d2bb0['enum']};}function a31_0x49be(_0x2f0fdb,_0x12f10e){_0x2f0fdb=_0x2f0fdb-0x1ec;const _0x34c347=a31_0x34c3();let _0x49bee5=_0x34c347[_0x2f0fdb];return _0x49bee5;}async function compilePlan(_0x256681,_0x1bb3d1){const _0x1ac8cf=a31_0x49be;return compileServiceTreeCommand(_0x256681,{'flags':_0x1bb3d1[_0x1ac8cf(0x1ef)],'args':_0x1bb3d1[_0x1ac8cf(0x1ec)],'context':await buildServiceContext(_0x256681,_0x1bb3d1)});}async function buildServiceContext(_0x44e1df,_0x26a484){const _0x2ebd17=a31_0x49be,_0xa70dee={'appCode':_0x26a484['appCode'],'env':_0x26a484[_0x2ebd17(0x217)],'envName':_0x26a484[_0x2ebd17(0x217)]};if(!usesRuntimeContext(_0x44e1df))return _0xa70dee;const _0x37970f=await getLoginUserInfo(),_0x209418=pickFirst(_0x37970f['userId'],_0x37970f['id']);return{..._0xa70dee,'user':_0x37970f,'userId':_0x209418,'id':_0x37970f['id'],'username':pickFirst(_0x37970f[_0x2ebd17(0x20a)],_0x37970f[_0x2ebd17(0x241)],_0x37970f[_0x2ebd17(0x224)]),'userName':_0x37970f[_0x2ebd17(0x241)],'nickname':pickFirst(_0x37970f['nickname'],_0x37970f[_0x2ebd17(0x237)]),'nickName':_0x37970f[_0x2ebd17(0x237)],'tenantCode':_0x37970f['tenantCode'],'employeeId':_0x37970f[_0x2ebd17(0x22c)]};}function usesRuntimeContext(_0x9acef0){const _0xc40c75=a31_0x49be;return _0x9acef0[_0xc40c75(0x1fb)][_0xc40c75(0x201)](_0xaf5bd9=>typeof _0xaf5bd9[_0xc40c75(0x1f3)]===_0xc40c75(0x1fe)&&(_0xaf5bd9[_0xc40c75(0x1f3)][_0xc40c75(0x204)]('context.')||_0xaf5bd9['source'][_0xc40c75(0x204)]('ctx.')));}function pickFirst(..._0x54e177){const _0x3fbafc=a31_0x49be;return _0x54e177[_0x3fbafc(0x207)](_0x40d13b=>_0x40d13b!==undefined&&_0x40d13b!==null);}async function executePlan(_0x54af55,_0x2e057e,_0x287c01){const _0x2fd4db=a31_0x49be;if(_0x54af55[_0x2fd4db(0x214)]===_0x2fd4db(0x1fd)){const _0xe5dc60=await resolveDatasetCode(_0x54af55,_0x2e057e,_0x287c01);return executeData(_0xe5dc60,_0x54af55[_0x2fd4db(0x220)],_0x54af55[_0x2fd4db(0x205)]);}if(_0x54af55[_0x2fd4db(0x214)]===_0x2fd4db(0x1fc)){if(!_0x54af55[_0x2fd4db(0x210)])throw CliErrors[_0x2fd4db(0x206)](_0x2fd4db(0x242)+_0x2e057e['cliPath']+_0x2fd4db(0x21f));return executeSdkSql(_0x54af55[_0x2fd4db(0x210)],normalizeScalarParams(_0x54af55['params']));}if(_0x54af55[_0x2fd4db(0x214)]===_0x2fd4db(0x211)){const _0x1e9060=_0x54af55[_0x2fd4db(0x249)]||_0x54af55[_0x2fd4db(0x21b)]||(_0x54af55[_0x2fd4db(0x1f0)]==null?'':String(_0x54af55[_0x2fd4db(0x1f0)]));if(!_0x1e9060)throw CliErrors[_0x2fd4db(0x206)](_0x2fd4db(0x242)+_0x2e057e[_0x2fd4db(0x1fa)]+_0x2fd4db(0x22d));return executeSdkBff(_0x1e9060,_0x54af55[_0x2fd4db(0x205)]);}throw CliErrors[_0x2fd4db(0x206)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x54af55[_0x2fd4db(0x214)]);}async function resolveDatasetCode(_0x3cb483,_0x32d821,_0x39d1ad){const _0x284c42=a31_0x49be;if(_0x3cb483[_0x284c42(0x24c)])return _0x3cb483[_0x284c42(0x24c)];if(!_0x3cb483['datatable'])throw CliErrors[_0x284c42(0x206)]('Service\x20command\x20'+_0x32d821[_0x284c42(0x1fa)]+_0x284c42(0x23f));const _0x542c45=await listDatasets(_0x39d1ad[_0x284c42(0x244)]),_0x44f049=_0x542c45[_0x284c42(0x207)](_0x503392=>_0x503392[_0x284c42(0x23b)]?.[_0x284c42(0x20f)]===_0x3cb483[_0x284c42(0x1ee)]);if(!_0x44f049?.[_0x284c42(0x1f8)])throw CliErrors[_0x284c42(0x206)](_0x284c42(0x236)+_0x3cb483[_0x284c42(0x1ee)]+_0x284c42(0x21d)+_0x39d1ad['appCode']+'.',_0x284c42(0x20e));return _0x44f049['code'];}function applyAppBinding(_0x375ca1,_0x45a2be,_0x4bb6b6){const _0x23649b=a31_0x49be,_0xf910c6=_0x45a2be[_0x23649b(0x1f9)][_0x23649b(0x233)];if(!_0xf910c6)return;const _0x51c441=_0x375ca1[_0x23649b(0x23a)][_0xf910c6];if(!_0x51c441)throw CliErrors[_0x23649b(0x206)](_0x23649b(0x212)+_0xf910c6+'\x22\x20in\x20service\x20command\x20'+_0x45a2be['cliPath']+'.',_0x23649b(0x216));const _0x3b831b=_0x51c441[_0x23649b(0x221)]||_0x51c441['appCode'];_0x3b831b&&!hasText(_0x4bb6b6[_0x23649b(0x221)])&&(_0x4bb6b6[_0x23649b(0x221)]=_0x3b831b),_0x51c441[_0x23649b(0x1f4)]&&!hasText(_0x4bb6b6[_0x23649b(0x1f4)])&&!hasText(_0x4bb6b6[_0x23649b(0x221)])&&(_0x4bb6b6[_0x23649b(0x1f4)]=_0x51c441[_0x23649b(0x1f4)]),_0x51c441[_0x23649b(0x21a)]&&!hasText(_0x4bb6b6['env'])&&(_0x4bb6b6['env']=_0x51c441[_0x23649b(0x21a)]);}function renderDynamicCommandHelp(_0x3a547e){const _0x24fd5d=a31_0x49be,_0x11bfbe=['\x20\x20SERVICE\x20TREE\x20TARGET',_0x24fd5d(0x243)+_0x3a547e[_0x24fd5d(0x1f9)][_0x24fd5d(0x214)],_0x24fd5d(0x202)+_0x3a547e[_0x24fd5d(0x1f9)]['command']];if(_0x3a547e[_0x24fd5d(0x1f9)]['datasetCode'])_0x11bfbe[_0x24fd5d(0x248)]('\x20\x20\x20\x20datasetCode:\x20'+_0x3a547e[_0x24fd5d(0x1f9)][_0x24fd5d(0x24c)]);if(_0x3a547e['target']['datatable'])_0x11bfbe[_0x24fd5d(0x248)]('\x20\x20\x20\x20datatable:\x20'+_0x3a547e[_0x24fd5d(0x1f9)][_0x24fd5d(0x1ee)]);if(_0x3a547e[_0x24fd5d(0x1f9)]['sqlCode'])_0x11bfbe[_0x24fd5d(0x248)](_0x24fd5d(0x1ed)+_0x3a547e[_0x24fd5d(0x1f9)][_0x24fd5d(0x210)]);if(_0x3a547e[_0x24fd5d(0x1f9)][_0x24fd5d(0x249)])_0x11bfbe[_0x24fd5d(0x248)](_0x24fd5d(0x20c)+_0x3a547e[_0x24fd5d(0x1f9)]['scriptName']);if(_0x3a547e['mapTo'][_0x24fd5d(0x209)]>0x0){_0x11bfbe['push']('',_0x24fd5d(0x22a));for(const _0x2e68d8 of _0x3a547e['mapTo']){_0x11bfbe[_0x24fd5d(0x248)](_0x24fd5d(0x203)+(_0x2e68d8['source']||_0x24fd5d(0x228))+_0x24fd5d(0x213)+_0x2e68d8[_0x24fd5d(0x1f9)]+(_0x2e68d8[_0x24fd5d(0x24a)]?'.'+_0x2e68d8['operator']:''));}}return _0x11bfbe[_0x24fd5d(0x235)]('\x0a');}function targetPreview(_0x29e741){const _0x1faae4=a31_0x49be;return{'kind':_0x29e741[_0x1faae4(0x214)],'command':_0x29e741[_0x1faae4(0x220)],'appRef':_0x29e741[_0x1faae4(0x233)],'datasetCode':_0x29e741[_0x1faae4(0x24c)],'datatable':_0x29e741[_0x1faae4(0x1ee)],'sqlCode':_0x29e741['sqlCode'],'bffCode':_0x29e741['bffCode'],'bffId':_0x29e741[_0x1faae4(0x1f0)],'scriptName':_0x29e741[_0x1faae4(0x249)]};}function normalizeScalarParams(_0x598682){const _0x56cb9f=a31_0x49be;return Object['fromEntries'](Object['entries'](_0x598682)['filter'](([,_0x1875af])=>typeof _0x1875af===_0x56cb9f(0x1fe)||typeof _0x1875af==='number'));}function hasText(_0x399848){const _0x3a7046=a31_0x49be;return typeof _0x399848===_0x3a7046(0x1fe)&&_0x399848[_0x3a7046(0x229)]()[_0x3a7046(0x209)]>0x0;}function isPrimitiveFlagDefault(_0x5752b3){const _0x59ef66=a31_0x49be;return _0x5752b3===undefined||typeof _0x5752b3==='string'||typeof _0x5752b3===_0x59ef66(0x238)||typeof _0x5752b3===_0x59ef66(0x226);}
|
|
1
|
+
(function(_0x752ff5,_0x59bcc5){const _0x3effef=a32_0x37c6,_0x17e0b2=_0x752ff5();while(!![]){try{const _0x234cc2=-parseInt(_0x3effef(0x141))/0x1*(parseInt(_0x3effef(0x18d))/0x2)+parseInt(_0x3effef(0x190))/0x3+parseInt(_0x3effef(0x151))/0x4*(-parseInt(_0x3effef(0x19b))/0x5)+-parseInt(_0x3effef(0x13c))/0x6*(-parseInt(_0x3effef(0x194))/0x7)+-parseInt(_0x3effef(0x196))/0x8*(-parseInt(_0x3effef(0x13e))/0x9)+-parseInt(_0x3effef(0x168))/0xa+-parseInt(_0x3effef(0x17e))/0xb*(-parseInt(_0x3effef(0x1a6))/0xc);if(_0x234cc2===_0x59bcc5)break;else _0x17e0b2['push'](_0x17e0b2['shift']());}catch(_0x4b495a){_0x17e0b2['push'](_0x17e0b2['shift']());}}}(a32_0x55ac,0xf1b75));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x3318fb,_0x51cb34){const _0x55de17=a32_0x37c6,_0x426033=listLocalServiceTrees();let _0x5c4270;for(const _0x4405be of _0x426033){const _0x3710a1=matchServiceTreeCommand(_0x4405be,_0x3318fb);if(!_0x3710a1)continue;(!_0x5c4270||_0x3710a1[_0x55de17(0x19a)]['fullPath'][_0x55de17(0x16f)]>_0x5c4270[_0x55de17(0x19a)][_0x55de17(0x150)][_0x55de17(0x16f)])&&(_0x5c4270={'tree':_0x4405be,'command':_0x3710a1[_0x55de17(0x19a)],'remainingArgs':_0x3710a1[_0x55de17(0x192)]});}if(!_0x5c4270)return undefined;const _0x4af68b={..._0x51cb34};return applyAppBinding(_0x5c4270['tree'],_0x5c4270[_0x55de17(0x19a)],_0x4af68b),{'definition':buildDynamicCommandDefinition(_0x5c4270[_0x55de17(0x153)],_0x5c4270['command']),'args':_0x5c4270[_0x55de17(0x192)],'flags':_0x4af68b,'tree':_0x5c4270['tree'],'command':_0x5c4270[_0x55de17(0x19a)]};}export function generateDynamicServiceHelp(_0x2389bd){const _0x455e14=a32_0x37c6,_0x426fac=listLocalServiceTrees()[_0x455e14(0x1a2)](_0x3954b7=>_0x3954b7['service'][_0x455e14(0x181)]===_0x2389bd);if(!_0x426fac)return undefined;const _0x1092db=[CLI_BIN_NAME+'\x20'+_0x2389bd+_0x455e14(0x13f),'',_0x426fac['service']['name']||_0x2389bd,_0x426fac[_0x455e14(0x1a3)][_0x455e14(0x177)]?'\x20\x20'+_0x426fac[_0x455e14(0x1a3)]['description']:'','',_0x455e14(0x174),..._0x426fac[_0x455e14(0x14a)][_0x455e14(0x147)](_0x3fac5f=>{const _0x584d79=_0x455e14,_0x28b5be=_0x3fac5f[_0x584d79(0x150)][_0x584d79(0x18b)](0x1)[_0x584d79(0x195)]('\x20'),_0x239585=_0x3fac5f[_0x584d79(0x159)]===_0x584d79(0x184)?'':'\x20['+_0x3fac5f[_0x584d79(0x159)]+']';return'\x20\x20'+_0x28b5be[_0x584d79(0x14f)](0x18)+'\x20'+(_0x3fac5f[_0x584d79(0x177)]||'')+_0x239585;}),'',_0x455e14(0x1a4)+CLI_BIN_NAME+_0x455e14(0x191)+_0x2389bd+'`\x20to\x20inspect\x20the\x20manifest.'][_0x455e14(0x154)](Boolean);return _0x1092db['join']('\x0a');}export function listDynamicServiceEntries(){const _0x5348ab=a32_0x37c6;return listLocalServices()[_0x5348ab(0x147)](_0x32ed82=>{const _0x25d9ea=_0x5348ab,_0x2d5709=_0x32ed82[_0x25d9ea(0x198)];return{'service':_0x2d5709[_0x25d9ea(0x1a3)][_0x25d9ea(0x181)],'label':_0x2d5709[_0x25d9ea(0x1a3)][_0x25d9ea(0x18a)]||_0x2d5709[_0x25d9ea(0x1a3)][_0x25d9ea(0x181)],'commands':_0x2d5709[_0x25d9ea(0x14a)][_0x25d9ea(0x147)](_0x175136=>({'command':dynamicCommandName(_0x175136),'description':_0x175136['description']||_0x25d9ea(0x167)+_0x175136['cliPath'],'tag':riskTag(_0x175136[_0x25d9ea(0x159)])}))};});}export function getDynamicServiceEntry(_0x187154){const _0x5a80cb=a32_0x37c6;return listDynamicServiceEntries()[_0x5a80cb(0x1a2)](_0x5aaa35=>_0x5aaa35['service']===_0x187154);}export function listDynamicServiceDefinitions(_0x107f99){const _0x29b111=a32_0x37c6;return listLocalServiceTrees()[_0x29b111(0x154)](_0x39c198=>!_0x107f99||_0x39c198[_0x29b111(0x1a3)][_0x29b111(0x181)]===_0x107f99)[_0x29b111(0x187)](_0x13f2f8=>_0x13f2f8['commands'][_0x29b111(0x147)](_0x288719=>buildDynamicCommandDefinition(_0x13f2f8,_0x288719)));}export function getDynamicServiceDefinitions(_0x3533ca){const _0x170739=a32_0x37c6,_0x1242ad=listDynamicServiceDefinitions(_0x3533ca);return _0x1242ad[_0x170739(0x16f)]>0x0?_0x1242ad:undefined;}export function findDynamicServiceDefinition(_0x25a29b,_0x125137){const _0x127bbf=a32_0x37c6;return listDynamicServiceDefinitions(_0x25a29b)[_0x127bbf(0x1a2)](_0xcc5304=>_0xcc5304[_0x127bbf(0x19a)]===_0x125137);}export function buildDynamicCommandDefinition(_0x2ff0d0,_0x565139){const _0x4890ea=a32_0x37c6;return{'service':_0x2ff0d0[_0x4890ea(0x1a3)][_0x4890ea(0x181)],'command':dynamicCommandName(_0x565139),'description':_0x565139[_0x4890ea(0x177)]||_0x4890ea(0x167)+_0x565139['cliPath'],'risk':_0x565139['risk'],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x565139['args']['map'](_0x1d099d=>({'name':_0x1d099d[_0x4890ea(0x18a)],'description':_0x1d099d[_0x4890ea(0x177)]||_0x1d099d[_0x4890ea(0x18a)],'required':_0x1d099d[_0x4890ea(0x163)]})),'flags':_0x565139[_0x4890ea(0x14b)][_0x4890ea(0x147)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x565139),async 'dryRun'(_0x10a96e){const _0x5e7c11=_0x4890ea,_0x1e3124=await compilePlan(_0x565139,_0x10a96e);return{'method':'SERVICE_TREE','url':_0x565139[_0x5e7c11(0x169)],'body':{'target':targetPreview(_0x1e3124),'params':_0x1e3124[_0x5e7c11(0x140)]},'description':_0x5e7c11(0x199)+_0x565139[_0x5e7c11(0x169)]};},async 'execute'(_0xca644d){const _0x40332c=_0x4890ea,_0x33965f=await compilePlan(_0x565139,_0xca644d),_0x37d380=Date[_0x40332c(0x19d)](),_0x45fc7a=await executePlan(_0x33965f,_0x565139,_0xca644d),_0x3a6f6d=Date['now']()-_0x37d380;return{'ok':!![],'data':{'service':_0x2ff0d0[_0x40332c(0x1a3)],'command':_0x565139[_0x40332c(0x169)],'target':targetPreview(_0x33965f),'result':_0x45fc7a,'elapsed':_0x3a6f6d},'message':_0x40332c(0x18c)+_0x565139[_0x40332c(0x169)]+_0x40332c(0x173)+_0x3a6f6d+'ms'};}};}function dynamicCommandName(_0x3ba191){const _0x554f4b=a32_0x37c6;return _0x3ba191['fullPath'][_0x554f4b(0x18b)](0x1)[_0x554f4b(0x195)]('\x20');}function a32_0x55ac(){const _0x58b4d9=['nickName','flatMap','\x20\x20\x20\x20','fromEntries','name','slice','Service\x20command\x20','2HQshMQ','\x20\x20[','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','1604442VFiqMW','\x20service\x20detail\x20--service\x20','remainingArgs','push','87738jPHHoM','join','42080vdLkEs','operator','normalizedManifest','Preview\x20dynamic\x20service\x20command:\x20','command','496055cyxWWw','enum','now','type','username','args','startsWith','find','service','Use\x20`','\x20requires\x20target.sqlCode.','156pOLWas','444esHOAY','appBindings','603XKGsZA','\x20<command>\x20[flags]','params','595519HXmtvq','app','\x20\x20\x20\x20scriptName:\x20','userId','appcode','validation','map','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','rawFlags','commands','flags','bff','\x20\x20\x20\x20datatable:\x20','\x20\x20\x20\x20command:\x20','padEnd','fullPath','68BKoAJe','trim','tree','filter','sqlCode','mapTo','target','ctx.','risk','userName','kind','\x20requires\x20target.scriptName.','scriptName','Cannot\x20resolve\x20datatable\x20\x22','\x20\x20MAP\x20TO','bffId','datatable','some','required','default','number','string','Run\x20service\x20command\x20','12654510bzRfiQ','cliPath','appRef','context.','entries','nickname','tenantCode','length','envName','source','tableName','\x20completed\x20in\x20','Commands:','env','\x20->\x20','description','bffCode','dbtableConfig','\x20\x20SERVICE\x20TREE\x20TARGET','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','loginName','data','2303972NzYlcH','appCode','datasetCode','code','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','\x20\x20\x20\x20sqlCode:\x20','read','json'];a32_0x55ac=function(){return _0x58b4d9;};return a32_0x55ac();}function riskTag(_0x58c792){const _0x496724=a32_0x37c6;return _0x58c792===_0x496724(0x184)?'':_0x496724(0x18e)+_0x58c792+']';}function flagToCommandFlag(_0x21c2b4){const _0x6c80df=a32_0x37c6;return{'name':_0x21c2b4['cliName'],'type':_0x21c2b4[_0x6c80df(0x19e)]===_0x6c80df(0x185)?_0x6c80df(0x166):_0x21c2b4['type'],'description':_0x21c2b4[_0x6c80df(0x177)]||_0x21c2b4[_0x6c80df(0x18a)],'required':_0x21c2b4['required'],'default':isPrimitiveFlagDefault(_0x21c2b4['default'])?_0x21c2b4[_0x6c80df(0x164)]:undefined,'enum':_0x21c2b4[_0x6c80df(0x19c)]};}async function compilePlan(_0x56e628,_0x305170){const _0x1fe119=a32_0x37c6;return compileServiceTreeCommand(_0x56e628,{'flags':_0x305170[_0x1fe119(0x149)],'args':_0x305170[_0x1fe119(0x1a0)],'context':await buildServiceContext(_0x56e628,_0x305170)});}async function buildServiceContext(_0x3bfd0c,_0x2d3ef0){const _0x33da9f=a32_0x37c6,_0x109b67={'appCode':_0x2d3ef0[_0x33da9f(0x17f)],'env':_0x2d3ef0[_0x33da9f(0x170)],'envName':_0x2d3ef0[_0x33da9f(0x170)]};if(!usesRuntimeContext(_0x3bfd0c))return _0x109b67;const _0x57164d=await getLoginUserInfo(),_0x2e1542=pickFirst(_0x57164d[_0x33da9f(0x144)],_0x57164d['id']);return{..._0x109b67,'user':_0x57164d,'userId':_0x2e1542,'id':_0x57164d['id'],'username':pickFirst(_0x57164d[_0x33da9f(0x19f)],_0x57164d[_0x33da9f(0x15a)],_0x57164d[_0x33da9f(0x17c)]),'userName':_0x57164d[_0x33da9f(0x15a)],'nickname':pickFirst(_0x57164d[_0x33da9f(0x16d)],_0x57164d[_0x33da9f(0x186)]),'nickName':_0x57164d[_0x33da9f(0x186)],'tenantCode':_0x57164d[_0x33da9f(0x16e)],'employeeId':_0x57164d['employeeId']};}function usesRuntimeContext(_0x4378a1){const _0x14b9db=a32_0x37c6;return _0x4378a1[_0x14b9db(0x156)][_0x14b9db(0x162)](_0x5d8ce2=>typeof _0x5d8ce2[_0x14b9db(0x171)]===_0x14b9db(0x166)&&(_0x5d8ce2['source'][_0x14b9db(0x1a1)](_0x14b9db(0x16b))||_0x5d8ce2[_0x14b9db(0x171)][_0x14b9db(0x1a1)](_0x14b9db(0x158))));}function a32_0x37c6(_0x1fb5b4,_0x6fdd7e){_0x1fb5b4=_0x1fb5b4-0x13c;const _0x55ac17=a32_0x55ac();let _0x37c68c=_0x55ac17[_0x1fb5b4];return _0x37c68c;}function pickFirst(..._0x43c929){const _0x3e00d6=a32_0x37c6;return _0x43c929[_0x3e00d6(0x1a2)](_0x327553=>_0x327553!==undefined&&_0x327553!==null);}async function executePlan(_0x12f9ea,_0x5e26b4,_0x1d65c3){const _0x2bca1c=a32_0x37c6;if(_0x12f9ea[_0x2bca1c(0x15b)]===_0x2bca1c(0x17d)){const _0x37100d=await resolveDatasetCode(_0x12f9ea,_0x5e26b4,_0x1d65c3);return executeData(_0x37100d,_0x12f9ea[_0x2bca1c(0x19a)],_0x12f9ea['params']);}if(_0x12f9ea['kind']==='sql'){if(!_0x12f9ea[_0x2bca1c(0x155)])throw CliErrors[_0x2bca1c(0x146)]('Service\x20command\x20'+_0x5e26b4[_0x2bca1c(0x169)]+_0x2bca1c(0x1a5));return executeSdkSql(_0x12f9ea[_0x2bca1c(0x155)],normalizeScalarParams(_0x12f9ea[_0x2bca1c(0x140)]));}if(_0x12f9ea[_0x2bca1c(0x15b)]===_0x2bca1c(0x14c)){const _0x24180e=_0x12f9ea['scriptName']||_0x12f9ea[_0x2bca1c(0x178)]||(_0x12f9ea[_0x2bca1c(0x160)]==null?'':String(_0x12f9ea[_0x2bca1c(0x160)]));if(!_0x24180e)throw CliErrors[_0x2bca1c(0x146)](_0x2bca1c(0x18c)+_0x5e26b4['cliPath']+_0x2bca1c(0x15c));return executeSdkBff(_0x24180e,_0x12f9ea[_0x2bca1c(0x140)]);}throw CliErrors[_0x2bca1c(0x146)]('Unsupported\x20service\x20target\x20kind:\x20'+_0x12f9ea['kind']);}async function resolveDatasetCode(_0x584159,_0x4fc797,_0x3ffc6b){const _0x4b6286=a32_0x37c6;if(_0x584159['datasetCode'])return _0x584159['datasetCode'];if(!_0x584159['datatable'])throw CliErrors[_0x4b6286(0x146)](_0x4b6286(0x18c)+_0x4fc797['cliPath']+_0x4b6286(0x182));const _0x2dcff1=await listDatasets(_0x3ffc6b[_0x4b6286(0x17f)]),_0x1aa8f3=_0x2dcff1['find'](_0x438619=>_0x438619[_0x4b6286(0x179)]?.[_0x4b6286(0x172)]===_0x584159[_0x4b6286(0x161)]);if(!_0x1aa8f3?.[_0x4b6286(0x181)])throw CliErrors[_0x4b6286(0x146)](_0x4b6286(0x15e)+_0x584159[_0x4b6286(0x161)]+_0x4b6286(0x18f)+_0x3ffc6b[_0x4b6286(0x17f)]+'.',_0x4b6286(0x17b));return _0x1aa8f3[_0x4b6286(0x181)];}function applyAppBinding(_0x266f41,_0x21a386,_0x59f9ae){const _0x381173=a32_0x37c6,_0x54bad2=_0x21a386[_0x381173(0x157)][_0x381173(0x16a)];if(!_0x54bad2)return;const _0x38f6d7=_0x266f41[_0x381173(0x13d)][_0x54bad2];if(!_0x38f6d7)throw CliErrors[_0x381173(0x146)]('Unknown\x20appRef\x20\x22'+_0x54bad2+'\x22\x20in\x20service\x20command\x20'+_0x21a386[_0x381173(0x169)]+'.',_0x381173(0x148));const _0x55af3e=_0x38f6d7['appcode']||_0x38f6d7['appCode'];_0x55af3e&&!hasText(_0x59f9ae[_0x381173(0x145)])&&(_0x59f9ae[_0x381173(0x145)]=_0x55af3e),_0x38f6d7[_0x381173(0x142)]&&!hasText(_0x59f9ae[_0x381173(0x142)])&&!hasText(_0x59f9ae[_0x381173(0x145)])&&(_0x59f9ae[_0x381173(0x142)]=_0x38f6d7[_0x381173(0x142)]),_0x38f6d7['env']&&!hasText(_0x59f9ae[_0x381173(0x175)])&&(_0x59f9ae[_0x381173(0x175)]=_0x38f6d7[_0x381173(0x175)]);}function renderDynamicCommandHelp(_0x5e1f26){const _0x67b677=a32_0x37c6,_0x2183bb=[_0x67b677(0x17a),'\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x5e1f26[_0x67b677(0x157)][_0x67b677(0x15b)],_0x67b677(0x14e)+_0x5e1f26[_0x67b677(0x157)]['command']];if(_0x5e1f26[_0x67b677(0x157)][_0x67b677(0x180)])_0x2183bb[_0x67b677(0x193)]('\x20\x20\x20\x20datasetCode:\x20'+_0x5e1f26[_0x67b677(0x157)]['datasetCode']);if(_0x5e1f26['target'][_0x67b677(0x161)])_0x2183bb[_0x67b677(0x193)](_0x67b677(0x14d)+_0x5e1f26['target'][_0x67b677(0x161)]);if(_0x5e1f26[_0x67b677(0x157)][_0x67b677(0x155)])_0x2183bb[_0x67b677(0x193)](_0x67b677(0x183)+_0x5e1f26['target']['sqlCode']);if(_0x5e1f26[_0x67b677(0x157)][_0x67b677(0x15d)])_0x2183bb[_0x67b677(0x193)](_0x67b677(0x143)+_0x5e1f26[_0x67b677(0x157)][_0x67b677(0x15d)]);if(_0x5e1f26[_0x67b677(0x156)][_0x67b677(0x16f)]>0x0){_0x2183bb['push']('',_0x67b677(0x15f));for(const _0x59067a of _0x5e1f26[_0x67b677(0x156)]){_0x2183bb['push'](_0x67b677(0x188)+(_0x59067a['source']||'const')+_0x67b677(0x176)+_0x59067a[_0x67b677(0x157)]+(_0x59067a[_0x67b677(0x197)]?'.'+_0x59067a['operator']:''));}}return _0x2183bb[_0x67b677(0x195)]('\x0a');}function targetPreview(_0xccca36){const _0x1016ed=a32_0x37c6;return{'kind':_0xccca36[_0x1016ed(0x15b)],'command':_0xccca36[_0x1016ed(0x19a)],'appRef':_0xccca36['appRef'],'datasetCode':_0xccca36[_0x1016ed(0x180)],'datatable':_0xccca36[_0x1016ed(0x161)],'sqlCode':_0xccca36[_0x1016ed(0x155)],'bffCode':_0xccca36[_0x1016ed(0x178)],'bffId':_0xccca36[_0x1016ed(0x160)],'scriptName':_0xccca36[_0x1016ed(0x15d)]};}function normalizeScalarParams(_0x198d94){const _0x1313b2=a32_0x37c6;return Object[_0x1313b2(0x189)](Object[_0x1313b2(0x16c)](_0x198d94)[_0x1313b2(0x154)](([,_0x1c3aaa])=>typeof _0x1c3aaa===_0x1313b2(0x166)||typeof _0x1c3aaa==='number'));}function hasText(_0x29daa4){const _0x2c9273=a32_0x37c6;return typeof _0x29daa4===_0x2c9273(0x166)&&_0x29daa4[_0x2c9273(0x152)]()[_0x2c9273(0x16f)]>0x0;}function isPrimitiveFlagDefault(_0x29f126){const _0x5b985f=a32_0x37c6;return _0x29f126===undefined||typeof _0x29f126==='string'||typeof _0x29f126===_0x5b985f(0x165)||typeof _0x29f126==='boolean';}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function a32_0x2f35(_0x3ca3d0,_0x1ec7bc){_0x3ca3d0=_0x3ca3d0-0xc5;const _0x532cdf=a32_0x532c();let _0x2f35a1=_0x532cdf[_0x3ca3d0];return _0x2f35a1;}const a32_0x3fad44=a32_0x2f35;(function(_0x3bb88a,_0x44fb81){const _0x5e38e3=a32_0x2f35,_0x238fd7=_0x3bb88a();while(!![]){try{const _0x18cd44=parseInt(_0x5e38e3(0xf9))/0x1+parseInt(_0x5e38e3(0xf6))/0x2*(-parseInt(_0x5e38e3(0xee))/0x3)+parseInt(_0x5e38e3(0xf0))/0x4+parseInt(_0x5e38e3(0xde))/0x5*(-parseInt(_0x5e38e3(0xc8))/0x6)+-parseInt(_0x5e38e3(0xe5))/0x7*(parseInt(_0x5e38e3(0xd6))/0x8)+-parseInt(_0x5e38e3(0xe1))/0x9*(-parseInt(_0x5e38e3(0xd1))/0xa)+parseInt(_0x5e38e3(0xec))/0xb*(-parseInt(_0x5e38e3(0xf5))/0xc);if(_0x18cd44===_0x44fb81)break;else _0x238fd7['push'](_0x238fd7['shift']());}catch(_0x3b1941){_0x238fd7['push'](_0x238fd7['shift']());}}}(a32_0x532c,0x29ec0));function a32_0x532c(){const _0x4955fe=['Service\x20Tree\x20manifest\x20file\x20path','detail','cliPath','read','name','string','filePath','importedAt','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','remove','serviceCode','file','hash','str','6ehXlFm','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','flags','Local\x20service\x20not\x20found:\x20','length','normalizedManifest','service','errors','validate','7610jPWina','serviceCount','WRITE','manifest','replaced','207608huOIZB','registryPath','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk','warnings','write','version','source','214865KGLODi','export','Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','693mxUBOE','Local\x20service\x20code,\x20for\x20example\x20crm','\x20service\x20','Imported','35JomXen','target','lower\x20kebab-case\x20service\x20code','required','type','report','Updated','11qSeAui','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','9CUUhRd','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','1322880DeOWBf','commands','Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','entry','162672sYiHQV','100518laMUtF','cliName','map','119456TtpnXY','Removed\x20service\x20','List\x20locally\x20imported\x20Service\x20Tree\x20manifests'];a32_0x532c=function(){return _0x4955fe;};return a32_0x532c();}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';const FILE_FLAG={'name':a32_0x3fad44(0xc5),'type':a32_0x3fad44(0x101),'required':!![],'description':a32_0x3fad44(0xfc)},SERVICE_FLAG={'name':a32_0x3fad44(0xce),'type':a32_0x3fad44(0x101),'required':!![],'description':a32_0x3fad44(0xe2),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a32_0x3fad44(0xe7)}};function summarizeService(_0x5249be){const _0x13ee9b=a32_0x3fad44;return{'serviceCode':_0x5249be['serviceCode'],'name':_0x5249be['normalizedManifest'][_0x13ee9b(0xce)][_0x13ee9b(0x100)],'version':_0x5249be[_0x13ee9b(0xdc)],'importedAt':_0x5249be[_0x13ee9b(0x103)],'source':_0x5249be['source'],'commandCount':_0x5249be[_0x13ee9b(0xcd)][_0x13ee9b(0xf1)]['length'],'commands':_0x5249be[_0x13ee9b(0xcd)][_0x13ee9b(0xf1)][_0x13ee9b(0xf8)](_0x430145=>({'path':_0x430145['cliPath'],'description':_0x430145['description'],'risk':_0x430145['risk'],'target':_0x430145[_0x13ee9b(0xe6)],'flags':_0x430145[_0x13ee9b(0xca)][_0x13ee9b(0xf8)](_0x553391=>({'name':_0x553391[_0x13ee9b(0x100)],'cliName':_0x553391[_0x13ee9b(0xf7)],'type':_0x553391[_0x13ee9b(0xe9)],'required':_0x553391[_0x13ee9b(0xe8)]===!![]}))}))};}export const serviceDefinitions=[{'service':a32_0x3fad44(0xce),'command':a32_0x3fad44(0xd0),'description':a32_0x3fad44(0xf3),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x476fd7){const _0x430d91=a32_0x3fad44,_0xa5faaa=loadServiceManifestFromFile(_0x476fd7[_0x430d91(0xc7)](_0x430d91(0xc5)));if(!_0xa5faaa[_0x430d91(0xea)]['ok'])return{'ok':![],'data':{'file':_0xa5faaa[_0x430d91(0x102)],'hash':_0xa5faaa['hash'],'errors':_0xa5faaa['report'][_0x430d91(0xcf)],'warnings':_0xa5faaa['report'][_0x430d91(0xda)]},'message':formatValidationFailure(_0xa5faaa[_0x430d91(0xea)])};return{'ok':!![],'data':{'file':_0xa5faaa[_0x430d91(0x102)],'hash':_0xa5faaa[_0x430d91(0xc6)],'service':_0xa5faaa['normalizedManifest']?.[_0x430d91(0xce)],'version':_0xa5faaa[_0x430d91(0xcd)]?.[_0x430d91(0xdc)],'commandCount':_0xa5faaa['normalizedManifest']?.[_0x430d91(0xf1)][_0x430d91(0xcc)]??0x0,'commands':_0xa5faaa['normalizedManifest']?.[_0x430d91(0xf1)][_0x430d91(0xf8)](_0x55ffe2=>({'path':_0x55ffe2[_0x430d91(0xfe)],'risk':_0x55ffe2[_0x430d91(0xd9)],'target':_0x55ffe2[_0x430d91(0xe6)]})),'warnings':_0xa5faaa[_0x430d91(0xea)][_0x430d91(0xda)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a32_0x3fad44(0xce),'command':'import','description':a32_0x3fad44(0x104),'risk':a32_0x3fad44(0xdb),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x5d744b){const _0x66daea=a32_0x3fad44,_0x3bce7e=loadServiceManifestFromFile(_0x5d744b[_0x66daea(0xc7)]('file'));return{'method':_0x66daea(0xd3),'url':getServiceRegistryPath(),'body':{'file':_0x3bce7e[_0x66daea(0x102)],'hash':_0x3bce7e[_0x66daea(0xc6)],'ok':_0x3bce7e[_0x66daea(0xea)]['ok'],'service':_0x3bce7e[_0x66daea(0xcd)]?.[_0x66daea(0xce)],'version':_0x3bce7e[_0x66daea(0xcd)]?.['version'],'errors':_0x3bce7e[_0x66daea(0xea)][_0x66daea(0xcf)],'commandCount':_0x3bce7e[_0x66daea(0xcd)]?.[_0x66daea(0xf1)][_0x66daea(0xcc)]??0x0},'description':_0x66daea(0xed)};},async 'execute'(_0x3bac0b){const _0x3e3fe5=a32_0x3fad44,_0xdf0e62=importServiceManifest(_0x3bac0b[_0x3e3fe5(0xc7)](_0x3e3fe5(0xc5)));return{'ok':!![],'data':{'registryPath':_0xdf0e62[_0x3e3fe5(0xd7)],'replaced':_0xdf0e62[_0x3e3fe5(0xd5)],'serviceCount':_0xdf0e62[_0x3e3fe5(0xd2)],'service':summarizeService(_0xdf0e62[_0x3e3fe5(0xf4)])},'message':(_0xdf0e62[_0x3e3fe5(0xd5)]?_0x3e3fe5(0xeb):_0x3e3fe5(0xe4))+_0x3e3fe5(0xe3)+_0xdf0e62[_0x3e3fe5(0xf4)][_0x3e3fe5(0x106)]+'.'};}},{'service':a32_0x3fad44(0xce),'command':a32_0x3fad44(0xdf),'description':a32_0x3fad44(0xf2),'risk':a32_0x3fad44(0xdb),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x356947){const _0x1008fe=a32_0x3fad44,_0x2486f9=getLocalServiceEntry(_0x356947[_0x1008fe(0xc7)]('service'));return{'method':_0x1008fe(0xd3),'url':_0x356947['str']('file'),'body':{'service':_0x356947['str']('service'),'found':Boolean(_0x2486f9),'version':_0x2486f9?.['version'],'source':_0x2486f9?.[_0x1008fe(0xdd)]},'description':_0x1008fe(0xc9)};},async 'execute'(_0x418802){const _0x6ee981=a32_0x3fad44,_0x2758c4=exportServiceManifest(_0x418802['str'](_0x6ee981(0xce)),_0x418802[_0x6ee981(0xc7)](_0x6ee981(0xc5)));return{'ok':!![],'data':{'registryPath':_0x2758c4[_0x6ee981(0xd7)],'file':_0x2758c4[_0x6ee981(0x102)],'service':summarizeService(_0x2758c4[_0x6ee981(0xf4)])},'message':'Exported\x20service\x20'+_0x2758c4[_0x6ee981(0xf4)][_0x6ee981(0x106)]+'.'};}},{'service':'service','command':'list','description':a32_0x3fad44(0xfb),'risk':a32_0x3fad44(0xff),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x2e79dd=a32_0x3fad44,_0x344685=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x344685[_0x2e79dd(0xcc)],'services':_0x344685['map'](summarizeService)}};}},{'service':a32_0x3fad44(0xce),'command':a32_0x3fad44(0x105),'description':a32_0x3fad44(0xe0),'risk':a32_0x3fad44(0xdb),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x516584){const _0x51a096=a32_0x3fad44,_0x45355a=getLocalServiceEntry(_0x516584[_0x51a096(0xc7)](_0x51a096(0xce)));return{'method':_0x51a096(0xd3),'url':getServiceRegistryPath(),'body':{'service':_0x516584[_0x51a096(0xc7)]('service'),'found':Boolean(_0x45355a),'version':_0x45355a?.[_0x51a096(0xdc)],'source':_0x45355a?.[_0x51a096(0xdd)]},'description':_0x51a096(0xef)};},async 'execute'(_0x2f6705){const _0x35ffc4=a32_0x3fad44,_0x3ee307=removeServiceManifest(_0x2f6705['str'](_0x35ffc4(0xce)));return{'ok':!![],'data':{'registryPath':_0x3ee307[_0x35ffc4(0xd7)],'serviceCount':_0x3ee307['serviceCount'],'service':summarizeService(_0x3ee307['entry'])},'message':_0x35ffc4(0xfa)+_0x3ee307['entry'][_0x35ffc4(0x106)]+'.'};}},{'service':'service','command':a32_0x3fad44(0xfd),'description':a32_0x3fad44(0xd8),'risk':a32_0x3fad44(0xff),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x11e828){const _0xad5813=a32_0x3fad44,_0x491f76=getLocalServiceEntry(_0x11e828[_0xad5813(0xc7)]('service'));if(!_0x491f76)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x11e828[_0xad5813(0xc7)](_0xad5813(0xce))},'message':_0xad5813(0xcb)+_0x11e828[_0xad5813(0xc7)](_0xad5813(0xce))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x491f76),'manifest':_0x491f76[_0xad5813(0xd4)],'normalizedManifest':_0x491f76[_0xad5813(0xcd)]}};}}];
|
|
1
|
+
function a33_0x4f51(_0x5c8296,_0x2d18e6){_0x5c8296=_0x5c8296-0x1a5;const _0x4fa7f7=a33_0x4fa7();let _0x4f5109=_0x4fa7f7[_0x5c8296];return _0x4f5109;}const a33_0xa4e133=a33_0x4f51;(function(_0x254cb0,_0x4f9189){const _0x211fd9=a33_0x4f51,_0x10b64e=_0x254cb0();while(!![]){try{const _0x3014ee=-parseInt(_0x211fd9(0x1a8))/0x1+parseInt(_0x211fd9(0x1af))/0x2*(parseInt(_0x211fd9(0x1bb))/0x3)+-parseInt(_0x211fd9(0x1df))/0x4+-parseInt(_0x211fd9(0x1e8))/0x5*(parseInt(_0x211fd9(0x1b4))/0x6)+-parseInt(_0x211fd9(0x1b6))/0x7*(parseInt(_0x211fd9(0x1a6))/0x8)+-parseInt(_0x211fd9(0x1bc))/0x9+parseInt(_0x211fd9(0x1c2))/0xa*(parseInt(_0x211fd9(0x1de))/0xb);if(_0x3014ee===_0x4f9189)break;else _0x10b64e['push'](_0x10b64e['shift']());}catch(_0x419d6e){_0x10b64e['push'](_0x10b64e['shift']());}}}(a33_0x4fa7,0x624e5));function a33_0x4fa7(){const _0x5172a0=['reduce','entries','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','normalizedManifest','type','Imported','192060oUbCIs','1603112KIGCCV','imported','validate','list','serviceCode','cliPath','Exported\x20service\x20','file','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','565nGcOgH','warnings','risk','read','updated','\x20service(s),\x20updated\x20','length','errors','72JBanaH','serviceCount','265463TdeQeH','Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','detail','commands','registryPath','manifests','remove','44980KKWyeM','\x20service\x20','source','Local\x20service\x20not\x20found:\x20','Updated','30678jbnIfq','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','553868HVNYfb','WRITE','registry','Removed\x20service\x20','cliName','48tOqLJi','2123397VWZntB','filePath','kind','str','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','required','1280fhmadT','replaced','version','string','import','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','Service\x20Tree\x20manifest\x20file\x20path','Service\x20manifest\x20validation\x20passed.','target','service','write','report','Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','hash','flags','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','registryIndex','Local\x20service\x20code,\x20for\x20example\x20crm','name','map','registryServiceCode','entry'];a33_0x4fa7=function(){return _0x5172a0;};return a33_0x4fa7();}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';const FILE_FLAG={'name':a33_0xa4e133(0x1e6),'type':'string','required':!![],'description':a33_0xa4e133(0x1c8)},SERVICE_FLAG={'name':'service','type':a33_0xa4e133(0x1c5),'required':!![],'description':a33_0xa4e133(0x1d3),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x4b5e39){const _0x24fb6a=a33_0xa4e133;return{'serviceCode':_0x4b5e39['serviceCode'],'name':_0x4b5e39[_0x24fb6a(0x1db)][_0x24fb6a(0x1cb)][_0x24fb6a(0x1d4)],'version':_0x4b5e39['version'],'importedAt':_0x4b5e39['importedAt'],'source':_0x4b5e39[_0x24fb6a(0x1b1)],'commandCount':_0x4b5e39[_0x24fb6a(0x1db)]['commands']['length'],'commands':_0x4b5e39[_0x24fb6a(0x1db)]['commands'][_0x24fb6a(0x1d5)](_0x400857=>({'path':_0x400857[_0x24fb6a(0x1e4)],'description':_0x400857['description'],'risk':_0x400857['risk'],'target':_0x400857['target'],'flags':_0x400857[_0x24fb6a(0x1d0)][_0x24fb6a(0x1d5)](_0x5bfdd8=>({'name':_0x5bfdd8[_0x24fb6a(0x1d4)],'cliName':_0x5bfdd8[_0x24fb6a(0x1ba)],'type':_0x5bfdd8[_0x24fb6a(0x1dc)],'required':_0x5bfdd8[_0x24fb6a(0x1c1)]===!![]}))}))};}function summarizeLoadedManifest(_0x533251){const _0x6492cd=a33_0xa4e133;return{'service':_0x533251['normalizedManifest']?.['service'],'version':_0x533251[_0x6492cd(0x1db)]?.[_0x6492cd(0x1c4)],'commandCount':_0x533251[_0x6492cd(0x1db)]?.[_0x6492cd(0x1ab)][_0x6492cd(0x1ee)]??0x0,'commands':_0x533251[_0x6492cd(0x1db)]?.[_0x6492cd(0x1ab)][_0x6492cd(0x1d5)](_0x513e72=>({'path':_0x513e72[_0x6492cd(0x1e4)],'risk':_0x513e72[_0x6492cd(0x1ea)],'target':_0x513e72[_0x6492cd(0x1ca)]}))??[],'registryIndex':_0x533251[_0x6492cd(0x1d2)],'registryServiceCode':_0x533251[_0x6492cd(0x1d6)],'errors':_0x533251[_0x6492cd(0x1cd)][_0x6492cd(0x1a5)],'warnings':_0x533251[_0x6492cd(0x1cd)][_0x6492cd(0x1e9)]};}export const serviceDefinitions=[{'service':'service','command':a33_0xa4e133(0x1e1),'description':a33_0xa4e133(0x1c0),'risk':a33_0xa4e133(0x1eb),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x3eae09){const _0x266633=a33_0xa4e133,_0x1c1a88=loadServiceManifestFromFile(_0x3eae09[_0x266633(0x1bf)]('file'));if(!_0x1c1a88[_0x266633(0x1cd)]['ok'])return{'ok':![],'data':{'file':_0x1c1a88[_0x266633(0x1bd)],'hash':_0x1c1a88[_0x266633(0x1cf)],'kind':_0x1c1a88[_0x266633(0x1be)],'serviceCount':_0x1c1a88[_0x266633(0x1ad)][_0x266633(0x1ee)],'services':_0x1c1a88[_0x266633(0x1ad)][_0x266633(0x1d5)](summarizeLoadedManifest),'errors':_0x1c1a88[_0x266633(0x1cd)]['errors'],'warnings':_0x1c1a88['report'][_0x266633(0x1e9)]},'message':formatValidationFailure(_0x1c1a88['report'])};if(_0x1c1a88[_0x266633(0x1be)]===_0x266633(0x1b8)||_0x1c1a88['manifests'][_0x266633(0x1ee)]!==0x1)return{'ok':!![],'data':{'file':_0x1c1a88[_0x266633(0x1bd)],'hash':_0x1c1a88[_0x266633(0x1cf)],'kind':_0x1c1a88['kind'],'serviceCount':_0x1c1a88[_0x266633(0x1ad)]['length'],'commandCount':_0x1c1a88[_0x266633(0x1ad)][_0x266633(0x1d8)]((_0xfb19d1,_0x4d0b34)=>_0xfb19d1+(_0x4d0b34[_0x266633(0x1db)]?.['commands'][_0x266633(0x1ee)]??0x0),0x0),'services':_0x1c1a88['manifests'][_0x266633(0x1d5)](summarizeLoadedManifest),'warnings':_0x1c1a88[_0x266633(0x1cd)]['warnings']},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x1c1a88[_0x266633(0x1bd)],'hash':_0x1c1a88['hash'],'kind':_0x1c1a88[_0x266633(0x1be)],'service':_0x1c1a88[_0x266633(0x1db)]?.[_0x266633(0x1cb)],'version':_0x1c1a88[_0x266633(0x1db)]?.[_0x266633(0x1c4)],'commandCount':_0x1c1a88[_0x266633(0x1db)]?.[_0x266633(0x1ab)][_0x266633(0x1ee)]??0x0,'commands':_0x1c1a88[_0x266633(0x1db)]?.[_0x266633(0x1ab)][_0x266633(0x1d5)](_0x4bfdbb=>({'path':_0x4bfdbb[_0x266633(0x1e4)],'risk':_0x4bfdbb[_0x266633(0x1ea)],'target':_0x4bfdbb[_0x266633(0x1ca)]})),'warnings':_0x1c1a88[_0x266633(0x1cd)][_0x266633(0x1e9)]},'message':_0x266633(0x1c9)};}},{'service':a33_0xa4e133(0x1cb),'command':a33_0xa4e133(0x1c6),'description':a33_0xa4e133(0x1d1),'risk':a33_0xa4e133(0x1cc),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x2d4c32){const _0x4f7c6f=a33_0xa4e133,_0x584af8=loadServiceManifestFromFile(_0x2d4c32['str'](_0x4f7c6f(0x1e6)));return{'method':_0x4f7c6f(0x1b7),'url':getServiceRegistryPath(),'body':{'file':_0x584af8[_0x4f7c6f(0x1bd)],'hash':_0x584af8['hash'],'kind':_0x584af8[_0x4f7c6f(0x1be)],'ok':_0x584af8[_0x4f7c6f(0x1cd)]['ok'],'service':_0x584af8[_0x4f7c6f(0x1db)]?.[_0x4f7c6f(0x1cb)],'version':_0x584af8[_0x4f7c6f(0x1db)]?.[_0x4f7c6f(0x1c4)],'serviceCount':_0x584af8['manifests'][_0x4f7c6f(0x1ee)],'services':_0x584af8[_0x4f7c6f(0x1ad)][_0x4f7c6f(0x1d5)](_0x2587ab=>({'service':_0x2587ab[_0x4f7c6f(0x1db)]?.['service'],'version':_0x2587ab[_0x4f7c6f(0x1db)]?.[_0x4f7c6f(0x1c4)],'commandCount':_0x2587ab['normalizedManifest']?.['commands']['length']??0x0,'errors':_0x2587ab[_0x4f7c6f(0x1cd)]['errors']})),'errors':_0x584af8[_0x4f7c6f(0x1cd)]['errors'],'commandCount':_0x584af8[_0x4f7c6f(0x1db)]?.['commands'][_0x4f7c6f(0x1ee)]??0x0},'description':_0x4f7c6f(0x1da)};},async 'execute'(_0x6f6611){const _0x345c7d=a33_0xa4e133,_0x1168eb=importServiceManifest(_0x6f6611['str'](_0x345c7d(0x1e6)));if(_0x1168eb[_0x345c7d(0x1d9)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x1168eb['registryPath'],'imported':_0x1168eb['imported'],'updated':_0x1168eb[_0x345c7d(0x1ec)],'serviceCount':_0x1168eb[_0x345c7d(0x1a7)],'services':_0x1168eb[_0x345c7d(0x1d9)][_0x345c7d(0x1d5)](summarizeService)},'message':'Imported\x20'+_0x1168eb['imported']+_0x345c7d(0x1ed)+_0x1168eb[_0x345c7d(0x1ec)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x1168eb[_0x345c7d(0x1ac)],'replaced':_0x1168eb[_0x345c7d(0x1c3)],'imported':_0x1168eb[_0x345c7d(0x1e0)],'updated':_0x1168eb[_0x345c7d(0x1ec)],'serviceCount':_0x1168eb[_0x345c7d(0x1a7)],'service':summarizeService(_0x1168eb[_0x345c7d(0x1d7)])},'message':(_0x1168eb[_0x345c7d(0x1c3)]?_0x345c7d(0x1b3):_0x345c7d(0x1dd))+_0x345c7d(0x1b0)+_0x1168eb[_0x345c7d(0x1d7)][_0x345c7d(0x1e3)]+'.'};}},{'service':a33_0xa4e133(0x1cb),'command':'export','description':a33_0xa4e133(0x1a9),'risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x166fe8){const _0x1cd84b=a33_0xa4e133,_0x16fa59=getLocalServiceEntry(_0x166fe8['str'](_0x1cd84b(0x1cb)));return{'method':'WRITE','url':_0x166fe8[_0x1cd84b(0x1bf)](_0x1cd84b(0x1e6)),'body':{'service':_0x166fe8[_0x1cd84b(0x1bf)](_0x1cd84b(0x1cb)),'found':Boolean(_0x16fa59),'version':_0x16fa59?.[_0x1cd84b(0x1c4)],'source':_0x16fa59?.[_0x1cd84b(0x1b1)]},'description':_0x1cd84b(0x1c7)};},async 'execute'(_0x1edccd){const _0x48c84f=a33_0xa4e133,_0x1f9e82=exportServiceManifest(_0x1edccd[_0x48c84f(0x1bf)](_0x48c84f(0x1cb)),_0x1edccd[_0x48c84f(0x1bf)](_0x48c84f(0x1e6)));return{'ok':!![],'data':{'registryPath':_0x1f9e82[_0x48c84f(0x1ac)],'file':_0x1f9e82[_0x48c84f(0x1bd)],'service':summarizeService(_0x1f9e82[_0x48c84f(0x1d7)])},'message':_0x48c84f(0x1e5)+_0x1f9e82[_0x48c84f(0x1d7)][_0x48c84f(0x1e3)]+'.'};}},{'service':a33_0xa4e133(0x1cb),'command':a33_0xa4e133(0x1e2),'description':a33_0xa4e133(0x1b5),'risk':a33_0xa4e133(0x1eb),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0xe86660=a33_0xa4e133,_0x54e666=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x54e666['length'],'services':_0x54e666[_0xe86660(0x1d5)](summarizeService)}};}},{'service':'service','command':a33_0xa4e133(0x1ae),'description':a33_0xa4e133(0x1ce),'risk':a33_0xa4e133(0x1cc),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0xe4fd7c){const _0x4358f0=a33_0xa4e133,_0xad2405=getLocalServiceEntry(_0xe4fd7c[_0x4358f0(0x1bf)](_0x4358f0(0x1cb)));return{'method':_0x4358f0(0x1b7),'url':getServiceRegistryPath(),'body':{'service':_0xe4fd7c[_0x4358f0(0x1bf)](_0x4358f0(0x1cb)),'found':Boolean(_0xad2405),'version':_0xad2405?.[_0x4358f0(0x1c4)],'source':_0xad2405?.['source']},'description':_0x4358f0(0x1e7)};},async 'execute'(_0x576eae){const _0x429755=a33_0xa4e133,_0x441be0=removeServiceManifest(_0x576eae['str'](_0x429755(0x1cb)));return{'ok':!![],'data':{'registryPath':_0x441be0[_0x429755(0x1ac)],'serviceCount':_0x441be0['serviceCount'],'service':summarizeService(_0x441be0[_0x429755(0x1d7)])},'message':_0x429755(0x1b9)+_0x441be0[_0x429755(0x1d7)][_0x429755(0x1e3)]+'.'};}},{'service':a33_0xa4e133(0x1cb),'command':a33_0xa4e133(0x1aa),'description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':a33_0xa4e133(0x1eb),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x259c85){const _0xe4d11e=a33_0xa4e133,_0xebc07c=getLocalServiceEntry(_0x259c85[_0xe4d11e(0x1bf)](_0xe4d11e(0x1cb)));if(!_0xebc07c)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x259c85[_0xe4d11e(0x1bf)](_0xe4d11e(0x1cb))},'message':_0xe4d11e(0x1b2)+_0x259c85[_0xe4d11e(0x1bf)]('service')};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0xebc07c),'manifest':_0xebc07c['manifest'],'normalizedManifest':_0xebc07c[_0xe4d11e(0x1db)]}};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a33_0x3f1bb8=a33_0x298d;(function(_0x26dfcf,_0x506d8d){const _0x307842=a33_0x298d,_0x208edc=_0x26dfcf();while(!![]){try{const _0x1820ca=-parseInt(_0x307842(0x17f))/0x1*(-parseInt(_0x307842(0x13d))/0x2)+parseInt(_0x307842(0x151))/0x3*(-parseInt(_0x307842(0x171))/0x4)+parseInt(_0x307842(0x16a))/0x5*(-parseInt(_0x307842(0x147))/0x6)+parseInt(_0x307842(0x172))/0x7+parseInt(_0x307842(0x145))/0x8*(parseInt(_0x307842(0x13e))/0x9)+parseInt(_0x307842(0x148))/0xa+-parseInt(_0x307842(0x168))/0xb;if(_0x1820ca===_0x506d8d)break;else _0x208edc['push'](_0x208edc['shift']());}catch(_0x1b4162){_0x208edc['push'](_0x208edc['shift']());}}}(a33_0x7a67,0x81e3b));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a33_0x3f1bb8(0x14b);export function getServiceRegistryPath(_0x140e35={}){const _0x2ca0a3=a33_0x3f1bb8;return resolve(_0x140e35[_0x2ca0a3(0x16e)]??homedir(),PRODUCT_CONFIG[_0x2ca0a3(0x141)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x4f1c4f={}){const _0x282b01=a33_0x3f1bb8,_0x527b60=getServiceRegistryPath(_0x4f1c4f);if(!existsSync(_0x527b60))return emptyServiceRegistry();try{const _0x3ce8e9=readFileSync(_0x527b60,_0x282b01(0x173));if(!_0x3ce8e9[_0x282b01(0x174)]())return emptyServiceRegistry();const _0x205f0e=JSON['parse'](_0x3ce8e9);if(_0x205f0e[_0x282b01(0x184)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x282b01(0x170)+String(_0x205f0e[_0x282b01(0x184)]),_0x282b01(0x17a)+_0x527b60+'.');if(!Array[_0x282b01(0x14a)](_0x205f0e[_0x282b01(0x144)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x205f0e[_0x282b01(0x15c)],'services':_0x205f0e[_0x282b01(0x144)]};}catch(_0x4e12f6){if(_0x4e12f6 instanceof Error&&_0x4e12f6[_0x282b01(0x142)]==='CliError')throw _0x4e12f6;throw CliErrors['validation'](_0x282b01(0x182)+_0x527b60,_0x282b01(0x16c));}}export function writeServiceRegistry(_0x1336ca,_0x5b7a74={}){const _0xbcc9e8=a33_0x3f1bb8,_0x49a116=getServiceRegistryPath(_0x5b7a74),_0x428e81=dirname(_0x49a116);!existsSync(_0x428e81)&&mkdirSync(_0x428e81,{'recursive':!![]});const _0x4d4118=_0x49a116+_0xbcc9e8(0x140);try{writeFileSync(_0x4d4118,JSON[_0xbcc9e8(0x179)](_0x1336ca,null,0x2)+'\x0a',{'encoding':_0xbcc9e8(0x173),'mode':0x180}),renameSync(_0x4d4118,_0x49a116);}catch(_0x4abd99){try{unlinkSync(_0x4d4118);}catch{}if(_0x4abd99?.[_0xbcc9e8(0x169)]==='ENOENT')throw CliErrors[_0xbcc9e8(0x164)](_0xbcc9e8(0x16f)+_0x49a116);throw _0x4abd99;}return _0x49a116;}export function loadServiceManifestFromFile(_0x56231e){const _0xbd4236=a33_0x3f1bb8,_0x59187a=resolve(_0x56231e);if(!existsSync(_0x59187a))throw CliErrors[_0xbd4236(0x164)](_0xbd4236(0x181)+_0x56231e);let _0x7fe0bf;const _0x1a821f=readFileSync(_0x59187a,_0xbd4236(0x173));try{_0x7fe0bf=JSON['parse'](_0x1a821f);}catch{throw CliErrors[_0xbd4236(0x164)](_0xbd4236(0x149)+_0x56231e,_0xbd4236(0x17c));}const _0x4bd903=validateServiceTreeManifest(_0x7fe0bf);return{'filePath':_0x59187a,'hash':sha256(_0x1a821f),'manifest':_0x7fe0bf,'report':_0x4bd903,'normalizedManifest':_0x4bd903['ok']?normalizeServiceTreeManifest(_0x7fe0bf):undefined};}export function importServiceManifest(_0x14383c,_0x248dc9={}){const _0x5403ce=a33_0x3f1bb8,_0x5b8404=loadServiceManifestFromFile(_0x14383c);if(!_0x5b8404['report']['ok']||!_0x5b8404[_0x5403ce(0x146)])throw CliErrors['validation'](formatValidationFailure(_0x5b8404[_0x5403ce(0x183)]),_0x5403ce(0x155));const _0x2db82d=readServiceRegistry(_0x248dc9),_0x27dc38=_0x5b8404[_0x5403ce(0x146)]['service'][_0x5403ce(0x169)],_0x344c8f=(_0x248dc9['now']??(()=>new Date()))()['toISOString'](),_0xa192c1={'serviceCode':_0x27dc38,'version':_0x5b8404['normalizedManifest']['version'],'importedAt':_0x344c8f,'source':{'type':_0x5403ce(0x178),'path':_0x5b8404[_0x5403ce(0x152)],'hash':_0x5b8404[_0x5403ce(0x15f)]},'manifest':_0x5b8404['manifest'],'normalizedManifest':_0x5b8404[_0x5403ce(0x146)]},_0x1634e8=_0x2db82d[_0x5403ce(0x144)]['findIndex'](_0x599003=>_0x599003['serviceCode']===_0x27dc38),_0x552ecd=_0x1634e8>=0x0;_0x552ecd?_0x2db82d[_0x5403ce(0x144)][_0x1634e8]=_0xa192c1:_0x2db82d[_0x5403ce(0x144)][_0x5403ce(0x163)](_0xa192c1);_0x2db82d['services'][_0x5403ce(0x166)]((_0x426769,_0x3b54ab)=>_0x426769[_0x5403ce(0x153)][_0x5403ce(0x175)](_0x3b54ab[_0x5403ce(0x153)])),_0x2db82d[_0x5403ce(0x15c)]=_0x344c8f;const _0x5cc2f0=writeServiceRegistry(_0x2db82d,_0x248dc9);return{'registryPath':_0x5cc2f0,'entry':_0xa192c1,'replaced':_0x552ecd,'serviceCount':_0x2db82d[_0x5403ce(0x144)][_0x5403ce(0x14f)]};}export function exportServiceManifest(_0x4b1447,_0x2269e5,_0x1dd7f5={}){const _0xd1182b=a33_0x3f1bb8,_0x4bd736=getServiceRegistryPath(_0x1dd7f5),_0x29f7ad=getLocalServiceEntry(_0x4b1447,_0x1dd7f5);if(!_0x29f7ad)throw CliErrors[_0xd1182b(0x164)](_0xd1182b(0x15d)+_0x4b1447,_0xd1182b(0x177));const _0x54f634=resolve(_0x2269e5),_0x2585f9=dirname(_0x54f634);return!existsSync(_0x2585f9)&&mkdirSync(_0x2585f9,{'recursive':!![]}),writeFileSync(_0x54f634,JSON['stringify'](_0x29f7ad['manifest'],null,0x2)+'\x0a',{'encoding':_0xd1182b(0x173),'mode':0x180}),{'registryPath':_0x4bd736,'filePath':_0x54f634,'entry':_0x29f7ad};}export function removeServiceManifest(_0x5ea63f,_0x5e2141={}){const _0x3d58a2=a33_0x3f1bb8,_0x16bea2=readServiceRegistry(_0x5e2141),_0x1395c4=_0x5ea63f['trim'](),_0x2f3635=_0x16bea2['services'][_0x3d58a2(0x17b)](_0x5a836d=>_0x5a836d[_0x3d58a2(0x153)]===_0x1395c4);if(_0x2f3635<0x0)throw CliErrors[_0x3d58a2(0x164)]('Local\x20service\x20not\x20found:\x20'+_0x1395c4,_0x3d58a2(0x177));const [_0x1ac8d2]=_0x16bea2[_0x3d58a2(0x144)][_0x3d58a2(0x16d)](_0x2f3635,0x1),_0x5334f9=(_0x5e2141['now']??(()=>new Date()))()[_0x3d58a2(0x185)]();_0x16bea2[_0x3d58a2(0x15c)]=_0x5334f9;const _0x525b5b=writeServiceRegistry(_0x16bea2,_0x5e2141);return{'registryPath':_0x525b5b,'entry':_0x1ac8d2,'serviceCount':_0x16bea2[_0x3d58a2(0x144)][_0x3d58a2(0x14f)]};}export function listLocalServices(_0x46fca3={}){return readServiceRegistry(_0x46fca3)['services'];}export function getLocalServiceEntry(_0x968d26,_0x277833={}){const _0xd590c2=a33_0x3f1bb8;return readServiceRegistry(_0x277833)[_0xd590c2(0x144)][_0xd590c2(0x17e)](_0x652b41=>_0x652b41[_0xd590c2(0x153)]===_0x968d26[_0xd590c2(0x174)]());}function a33_0x298d(_0x40e523,_0xf7b29b){_0x40e523=_0x40e523-0x13d;const _0x7a6763=a33_0x7a67();let _0x298dd4=_0x7a6763[_0x40e523];return _0x298dd4;}export function listLocalServiceTrees(_0x2792c7={}){const _0x3c63f1=a33_0x3f1bb8;return readServiceRegistry(_0x2792c7)[_0x3c63f1(0x144)][_0x3c63f1(0x13f)](_0x57b7a2=>_0x57b7a2[_0x3c63f1(0x146)]);}export function inspectServiceRegistry(_0xde8122={}){const _0x363e71=a33_0x3f1bb8,_0x5f12e4=getServiceRegistryPath(_0xde8122);if(!existsSync(_0x5f12e4))return emptyServiceRegistryInspection(_0x5f12e4,_0x363e71(0x186),![]);try{const _0x9b5ba3=readFileSync(_0x5f12e4,_0x363e71(0x173));if(!_0x9b5ba3[_0x363e71(0x174)]())return emptyServiceRegistryInspection(_0x5f12e4,_0x363e71(0x16b),!![]);const _0x11e84a=JSON[_0x363e71(0x154)](_0x9b5ba3);if(_0x11e84a[_0x363e71(0x184)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x5f12e4,_0x363e71(0x15e),!![]),'schemaVersion':_0x11e84a[_0x363e71(0x184)],'message':_0x363e71(0x176)+String(_0x11e84a[_0x363e71(0x184)])};if(!Array[_0x363e71(0x14a)](_0x11e84a[_0x363e71(0x144)]))return{...emptyServiceRegistryInspection(_0x5f12e4,_0x363e71(0x15e),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x11e84a[_0x363e71(0x15c)],'message':_0x363e71(0x161)};const _0x60e77b=_0x11e84a[_0x363e71(0x144)][_0x363e71(0x13f)](summarizeLocalServiceEntry);return{'registryPath':_0x5f12e4,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x11e84a[_0x363e71(0x15c)],'serviceCount':_0x60e77b['length'],'commandCount':_0x60e77b['reduce']((_0x27397a,_0x3be819)=>_0x27397a+_0x3be819[_0x363e71(0x165)],0x0),'services':_0x60e77b};}catch(_0x188f48){return{...emptyServiceRegistryInspection(_0x5f12e4,_0x363e71(0x15e),!![]),'message':_0x188f48 instanceof Error?_0x188f48[_0x363e71(0x150)]:String(_0x188f48)};}}export function formatValidationFailure(_0x176d7c){const _0xdd4d3d=a33_0x3f1bb8,_0xe92bbb=_0x176d7c['errors'][_0xdd4d3d(0x13f)](_0x287c92=>_0x287c92[_0xdd4d3d(0x180)]+':\x20'+_0x287c92['message']);return _0xdd4d3d(0x157)+_0xe92bbb[_0xdd4d3d(0x14d)]('\x0a');}function emptyServiceRegistryInspection(_0x465db5,_0x5f01e1,_0x1646be){return{'registryPath':_0x465db5,'exists':_0x1646be,'status':_0x5f01e1,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x512e6e){const _0x4a45d0=a33_0x3f1bb8,_0x35dd12=_0x512e6e[_0x4a45d0(0x146)],_0x4ae3d4=_0x35dd12[_0x4a45d0(0x159)]['map'](_0x385c79=>({'path':_0x385c79[_0x4a45d0(0x160)],'description':_0x385c79[_0x4a45d0(0x143)],'risk':_0x385c79[_0x4a45d0(0x14c)],'targetKind':_0x385c79['target']['kind'],'targetCommand':_0x385c79['target'][_0x4a45d0(0x14e)]}));return{'serviceCode':_0x512e6e[_0x4a45d0(0x153)],'name':_0x35dd12[_0x4a45d0(0x17d)]['name'],'description':_0x35dd12[_0x4a45d0(0x17d)][_0x4a45d0(0x143)],'version':_0x512e6e[_0x4a45d0(0x158)],'importedAt':_0x512e6e[_0x4a45d0(0x167)],'source':_0x512e6e[_0x4a45d0(0x156)],'commandCount':_0x4ae3d4[_0x4a45d0(0x14f)],'commands':_0x4ae3d4};}function a33_0x7a67(){const _0x212e76=['map','.tmp','homeDirName','name','description','services','377144RsIMaq','normalizedManifest','902424whKzxg','7283740gBNzKF','Invalid\x20service\x20manifest\x20JSON:\x20','isArray','service.json','risk','join','command','length','message','9oqTkrT','filePath','serviceCode','parse','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','source','Service\x20manifest\x20validation\x20failed:\x0a','version','commands','hex','digest','updatedAt','Local\x20service\x20not\x20found:\x20','invalid','hash','cliPath','services\x20must\x20be\x20an\x20array','update','push','validation','commandCount','sort','importedAt','4603390pttcBq','code','15SkAxxr','empty','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','splice','homeDir','Cannot\x20write\x20service\x20registry:\x20','Unsupported\x20service\x20registry\x20schemaVersion:\x20','1218844ogZnBC','7005684rlDqRd','utf8','trim','localeCompare','Unsupported\x20schemaVersion:\x20','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','file','stringify','Remove\x20or\x20migrate\x20','findIndex','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','service','find','141XXuJuH','path','Service\x20manifest\x20file\x20not\x20found:\x20','Invalid\x20service\x20registry\x20JSON:\x20','report','schemaVersion','toISOString','missing','966kEMHBB','99cKofsr'];a33_0x7a67=function(){return _0x212e76;};return a33_0x7a67();}function sha256(_0x114ccd){const _0x1f6797=a33_0x3f1bb8;return createHash('sha256')[_0x1f6797(0x162)](_0x114ccd)[_0x1f6797(0x15b)](_0x1f6797(0x15a));}
|
|
1
|
+
const a34_0x4b82aa=a34_0x46c8;(function(_0x2ea0d3,_0x341138){const _0x50784a=a34_0x46c8,_0x5094c8=_0x2ea0d3();while(!![]){try{const _0x98f456=parseInt(_0x50784a(0x10c))/0x1*(-parseInt(_0x50784a(0x139))/0x2)+-parseInt(_0x50784a(0x13c))/0x3*(-parseInt(_0x50784a(0xec))/0x4)+-parseInt(_0x50784a(0x12a))/0x5+-parseInt(_0x50784a(0xe9))/0x6*(parseInt(_0x50784a(0x135))/0x7)+parseInt(_0x50784a(0xfe))/0x8+-parseInt(_0x50784a(0x105))/0x9*(parseInt(_0x50784a(0xfd))/0xa)+parseInt(_0x50784a(0x11b))/0xb*(parseInt(_0x50784a(0x108))/0xc);if(_0x98f456===_0x341138)break;else _0x5094c8['push'](_0x5094c8['shift']());}catch(_0x5d376a){_0x5094c8['push'](_0x5094c8['shift']());}}}(a34_0x2c27,0x7c217));import{createHash}from'node:crypto';function a34_0x46c8(_0x38a572,_0x46d521){_0x38a572=_0x38a572-0xe9;const _0x2c2735=a34_0x2c27();let _0x46c8c3=_0x2c2735[_0x38a572];return _0x46c8c3;}import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a34_0x4b82aa(0x127);export function getServiceRegistryPath(_0x5bc6ac={}){const _0x441662=a34_0x4b82aa;return resolve(_0x5bc6ac[_0x441662(0xee)]??homedir(),PRODUCT_CONFIG[_0x441662(0x125)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x4c0841={}){const _0x3ea95d=a34_0x4b82aa,_0x37cca9=getServiceRegistryPath(_0x4c0841);if(!existsSync(_0x37cca9))return emptyServiceRegistry();try{const _0x1665f1=readFileSync(_0x37cca9,_0x3ea95d(0xfc));if(!_0x1665f1[_0x3ea95d(0xef)]())return emptyServiceRegistry();const _0x5a860d=JSON[_0x3ea95d(0x115)](_0x1665f1);if(_0x5a860d[_0x3ea95d(0x13e)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x3ea95d(0x12f)](_0x3ea95d(0xfb)+String(_0x5a860d['schemaVersion']),'Remove\x20or\x20migrate\x20'+_0x37cca9+'.');if(!Array[_0x3ea95d(0x122)](_0x5a860d['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5a860d[_0x3ea95d(0x13b)],'services':_0x5a860d[_0x3ea95d(0x134)]};}catch(_0x499308){if(_0x499308 instanceof Error&&_0x499308[_0x3ea95d(0x103)]==='CliError')throw _0x499308;throw CliErrors[_0x3ea95d(0x12f)](_0x3ea95d(0x11e)+_0x37cca9,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x240fe1,_0x34de8e={}){const _0x34bf93=a34_0x4b82aa,_0xd4f3c2=getServiceRegistryPath(_0x34de8e),_0x1a11df=dirname(_0xd4f3c2);!existsSync(_0x1a11df)&&mkdirSync(_0x1a11df,{'recursive':!![]});const _0x4bb049=_0xd4f3c2+_0x34bf93(0x12e);try{writeFileSync(_0x4bb049,JSON[_0x34bf93(0x13a)](_0x240fe1,null,0x2)+'\x0a',{'encoding':_0x34bf93(0xfc),'mode':0x180}),renameSync(_0x4bb049,_0xd4f3c2);}catch(_0x366cc3){try{unlinkSync(_0x4bb049);}catch{}if(_0x366cc3?.[_0x34bf93(0xeb)]===_0x34bf93(0x117))throw CliErrors[_0x34bf93(0x12f)](_0x34bf93(0x136)+_0xd4f3c2);throw _0x366cc3;}return _0xd4f3c2;}export function loadServiceManifestFromFile(_0x141630){const _0x5494e8=a34_0x4b82aa,_0x3d11fc=resolve(_0x141630);if(!existsSync(_0x3d11fc))throw CliErrors[_0x5494e8(0x12f)](_0x5494e8(0x112)+_0x141630);let _0x11a01f;const _0x1c981b=readFileSync(_0x3d11fc,_0x5494e8(0xfc));try{_0x11a01f=JSON[_0x5494e8(0x115)](_0x1c981b);}catch{throw CliErrors[_0x5494e8(0x12f)](_0x5494e8(0x138)+_0x141630,_0x5494e8(0x121));}const _0x2580f2=sha256(_0x1c981b),_0x2e45a1=extractLoadedServiceManifests(_0x11a01f,_0x2580f2),_0x5f116b=aggregateValidationReports(_0x2e45a1),_0x298a3e=_0x2e45a1[0x0];return{'filePath':_0x3d11fc,'hash':_0x2580f2,'kind':isServiceRegistryLike(_0x11a01f)?'registry':_0x5494e8(0x130),'manifest':_0x298a3e?.[_0x5494e8(0x130)]??_0x11a01f,'report':_0x5f116b,'normalizedManifest':_0x2e45a1[_0x5494e8(0x11f)]===0x1?_0x298a3e?.[_0x5494e8(0x137)]:undefined,'manifests':_0x2e45a1};}export function importServiceManifest(_0x33866d,_0x4888e9={}){const _0x133802=a34_0x4b82aa,_0x2fdf49=loadServiceManifestFromFile(_0x33866d);if(!_0x2fdf49[_0x133802(0x10f)]['ok'])throw CliErrors[_0x133802(0x12f)](formatValidationFailure(_0x2fdf49[_0x133802(0x10f)]),'Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.');if(_0x2fdf49[_0x133802(0x13d)][_0x133802(0x11f)]===0x0)throw CliErrors[_0x133802(0x12f)](_0x133802(0x109),_0x133802(0x11a));const _0x3b5304=readServiceRegistry(_0x4888e9),_0x1b4c0e=(_0x4888e9[_0x133802(0x12d)]??(()=>new Date()))()[_0x133802(0x106)](),_0x57864f=[];let _0x2436dd=0x0,_0xc0b029=0x0;for(const _0xbc0c5b of _0x2fdf49['manifests']){if(!_0xbc0c5b[_0x133802(0x137)])continue;const _0x15acad=_0xbc0c5b[_0x133802(0x137)][_0x133802(0x10e)][_0x133802(0xeb)],_0x5629e5={'serviceCode':_0x15acad,'version':_0xbc0c5b[_0x133802(0x137)]['version'],'importedAt':_0x1b4c0e,'source':{'type':_0x133802(0xf4),'path':_0x2fdf49[_0x133802(0xf6)],'hash':_0xbc0c5b[_0x133802(0xea)]},'manifest':_0xbc0c5b[_0x133802(0x130)],'normalizedManifest':_0xbc0c5b[_0x133802(0x137)]},_0x597250=_0x3b5304['services'][_0x133802(0x101)](_0x91ab6d=>_0x91ab6d[_0x133802(0x118)]===_0x15acad);_0x597250>=0x0?(_0x3b5304[_0x133802(0x134)][_0x597250]=_0x5629e5,_0xc0b029++):(_0x3b5304['services'][_0x133802(0x120)](_0x5629e5),_0x2436dd++),_0x57864f[_0x133802(0x120)](_0x5629e5);}_0x3b5304[_0x133802(0x134)][_0x133802(0xf1)]((_0x3065f7,_0x434e60)=>_0x3065f7[_0x133802(0x118)][_0x133802(0x110)](_0x434e60['serviceCode'])),_0x3b5304[_0x133802(0x13b)]=_0x1b4c0e;const _0x45f090=writeServiceRegistry(_0x3b5304,_0x4888e9);return{'registryPath':_0x45f090,'entry':_0x57864f[0x0],'replaced':_0x57864f['length']===0x1?_0xc0b029===0x1:_0xc0b029>0x0,'entries':_0x57864f,'imported':_0x2436dd,'updated':_0xc0b029,'serviceCount':_0x3b5304[_0x133802(0x134)][_0x133802(0x11f)]};}export function exportServiceManifest(_0x36bfb8,_0x601d61,_0x372f85={}){const _0x12e0d8=a34_0x4b82aa,_0x4b1881=getServiceRegistryPath(_0x372f85),_0x45e597=getLocalServiceEntry(_0x36bfb8,_0x372f85);if(!_0x45e597)throw CliErrors[_0x12e0d8(0x12f)](_0x12e0d8(0x100)+_0x36bfb8,_0x12e0d8(0xf9));const _0x29c1a8=resolve(_0x601d61),_0x1a0a39=dirname(_0x29c1a8);return!existsSync(_0x1a0a39)&&mkdirSync(_0x1a0a39,{'recursive':!![]}),writeFileSync(_0x29c1a8,JSON[_0x12e0d8(0x13a)](_0x45e597[_0x12e0d8(0x130)],null,0x2)+'\x0a',{'encoding':_0x12e0d8(0xfc),'mode':0x180}),{'registryPath':_0x4b1881,'filePath':_0x29c1a8,'entry':_0x45e597};}export function removeServiceManifest(_0x25338b,_0xbb297e={}){const _0x4309b0=a34_0x4b82aa,_0x573690=readServiceRegistry(_0xbb297e),_0x558284=_0x25338b[_0x4309b0(0xef)](),_0x1935a6=_0x573690[_0x4309b0(0x134)][_0x4309b0(0x101)](_0xa86e15=>_0xa86e15[_0x4309b0(0x118)]===_0x558284);if(_0x1935a6<0x0)throw CliErrors['validation'](_0x4309b0(0x100)+_0x558284,_0x4309b0(0xf9));const [_0x358ad1]=_0x573690[_0x4309b0(0x134)][_0x4309b0(0x11d)](_0x1935a6,0x1),_0x56bd5c=(_0xbb297e[_0x4309b0(0x12d)]??(()=>new Date()))()[_0x4309b0(0x106)]();_0x573690['updatedAt']=_0x56bd5c;const _0x36fd0e=writeServiceRegistry(_0x573690,_0xbb297e);return{'registryPath':_0x36fd0e,'entry':_0x358ad1,'serviceCount':_0x573690[_0x4309b0(0x134)]['length']};}export function listLocalServices(_0x187c58={}){const _0x524b1e=a34_0x4b82aa;return readServiceRegistry(_0x187c58)[_0x524b1e(0x134)];}export function getLocalServiceEntry(_0x39aa07,_0xb0cdc3={}){const _0x4de8e5=a34_0x4b82aa;return readServiceRegistry(_0xb0cdc3)['services'][_0x4de8e5(0x11c)](_0x4b742c=>_0x4b742c['serviceCode']===_0x39aa07[_0x4de8e5(0xef)]());}export function listLocalServiceTrees(_0x294b55={}){const _0xaf5364=a34_0x4b82aa;return readServiceRegistry(_0x294b55)['services'][_0xaf5364(0xff)](_0x276ae1=>_0x276ae1[_0xaf5364(0x137)]);}export function inspectServiceRegistry(_0x2e6a01={}){const _0x38e882=a34_0x4b82aa,_0x4ef6b8=getServiceRegistryPath(_0x2e6a01);if(!existsSync(_0x4ef6b8))return emptyServiceRegistryInspection(_0x4ef6b8,_0x38e882(0xfa),![]);try{const _0x434730=readFileSync(_0x4ef6b8,'utf8');if(!_0x434730[_0x38e882(0xef)]())return emptyServiceRegistryInspection(_0x4ef6b8,'empty',!![]);const _0x4250f0=JSON[_0x38e882(0x115)](_0x434730);if(_0x4250f0['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x4ef6b8,_0x38e882(0x124),!![]),'schemaVersion':_0x4250f0[_0x38e882(0x13e)],'message':_0x38e882(0xf2)+String(_0x4250f0['schemaVersion'])};if(!Array['isArray'](_0x4250f0[_0x38e882(0x134)]))return{...emptyServiceRegistryInspection(_0x4ef6b8,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x4250f0[_0x38e882(0x13b)],'message':'services\x20must\x20be\x20an\x20array'};const _0x48a221=_0x4250f0[_0x38e882(0x134)][_0x38e882(0xff)](summarizeLocalServiceEntry);return{'registryPath':_0x4ef6b8,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x4250f0[_0x38e882(0x13b)],'serviceCount':_0x48a221[_0x38e882(0x11f)],'commandCount':_0x48a221[_0x38e882(0x129)]((_0x46abe6,_0x18e9d0)=>_0x46abe6+_0x18e9d0['commandCount'],0x0),'services':_0x48a221};}catch(_0x409fcc){return{...emptyServiceRegistryInspection(_0x4ef6b8,'invalid',!![]),'message':_0x409fcc instanceof Error?_0x409fcc[_0x38e882(0xf8)]:String(_0x409fcc)};}}export function formatValidationFailure(_0xa697ba){const _0x26f1d6=a34_0x4b82aa,_0x4edbb3=_0xa697ba[_0x26f1d6(0x102)][_0x26f1d6(0xff)](_0xdbc1a1=>_0xdbc1a1['path']+':\x20'+_0xdbc1a1['message']);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x4edbb3[_0x26f1d6(0xf3)]('\x0a');}function extractLoadedServiceManifests(_0xaf8583,_0x4aba6d){const _0x50ee63=a34_0x4b82aa;if(!isServiceRegistryLike(_0xaf8583)){const _0x279f69=_0xaf8583,_0x34ae7b=validateServiceTreeManifest(_0x279f69);return[{'manifest':_0x279f69,'report':_0x34ae7b,'normalizedManifest':_0x34ae7b['ok']?normalizeServiceTreeManifest(_0x279f69):undefined,'sourceHash':_0x4aba6d}];}return _0xaf8583[_0x50ee63(0x134)]['map']((_0x4bc220,_0xe7290a)=>{const _0x107d6b=_0x50ee63,_0x3cdf2c=isObjectRecord(_0x4bc220)?_0x4bc220[_0x107d6b(0x130)]:undefined,_0x72beb9=validateServiceTreeManifest(_0x3cdf2c),_0x172cdd=isObjectRecord(_0x4bc220)&&typeof _0x4bc220[_0x107d6b(0x118)]===_0x107d6b(0x116)?_0x4bc220[_0x107d6b(0x118)]:undefined;return{'manifest':_0x3cdf2c,'report':_0x72beb9,'normalizedManifest':_0x72beb9['ok']?normalizeServiceTreeManifest(_0x3cdf2c):undefined,'sourceHash':sha256(JSON[_0x107d6b(0x13a)](_0x3cdf2c,null,0x2)+'\x0a'),'registryIndex':_0xe7290a,'registryServiceCode':_0x172cdd};});}function aggregateValidationReports(_0x51dedf){const _0x488bb6=a34_0x4b82aa,_0x481848=_0x51dedf[_0x488bb6(0xf7)](_0x22a025=>_0x22a025[_0x488bb6(0x126)]===undefined?_0x22a025[_0x488bb6(0x10f)][_0x488bb6(0x102)]:_0x22a025[_0x488bb6(0x10f)]['errors'][_0x488bb6(0xff)](_0x1378e3=>({..._0x1378e3,'path':prefixRegistryIssuePath(_0x22a025[_0x488bb6(0x126)],_0x1378e3[_0x488bb6(0xf5)])}))),_0x4fbf4a=_0x51dedf[_0x488bb6(0xf7)](_0x51c60e=>_0x51c60e['registryIndex']===undefined?_0x51c60e[_0x488bb6(0x10f)]['warnings']:_0x51c60e[_0x488bb6(0x10f)][_0x488bb6(0x132)][_0x488bb6(0xff)](_0x2087fc=>({..._0x2087fc,'path':prefixRegistryIssuePath(_0x51c60e[_0x488bb6(0x126)],_0x2087fc[_0x488bb6(0xf5)])})));return{'ok':_0x481848['length']===0x0,'errors':_0x481848,'warnings':_0x4fbf4a};}function a34_0x2c27(){const _0x248c5e=['flatMap','message','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','missing','Unsupported\x20service\x20registry\x20schemaVersion:\x20','utf8','1061070zvswEt','6552856iNVJkN','map','Local\x20service\x20not\x20found:\x20','findIndex','errors','name','risk','9ggcCmw','toISOString','source','2016852dTUrgf','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','digest','commands','2nKlayl','sha256','service','report','localeCompare','importedAt','Service\x20manifest\x20file\x20not\x20found:\x20','hex','cliPath','parse','string','ENOENT','serviceCode','description','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','11WXDrFY','find','splice','Invalid\x20service\x20registry\x20JSON:\x20','length','push','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','isArray','].manifest','invalid','homeDirName','registryIndex','service.json','startsWith','reduce','716295zgPyKY','object','version','now','.tmp','validation','manifest','$.services[','warnings','command','services','1288fHkcDj','Cannot\x20write\x20service\x20registry:\x20','normalizedManifest','Invalid\x20service\x20manifest\x20JSON:\x20','813062axldFr','stringify','updatedAt','72489fbJkGj','manifests','schemaVersion','8544WtjqfV','sourceHash','code','140zuSjoZ','slice','homeDir','trim','update','sort','Unsupported\x20schemaVersion:\x20','join','file','path','filePath'];a34_0x2c27=function(){return _0x248c5e;};return a34_0x2c27();}function prefixRegistryIssuePath(_0x477701,_0x5072bd){const _0x566078=a34_0x4b82aa;if(_0x5072bd==='$')return _0x566078(0x131)+_0x477701+_0x566078(0x123);if(_0x5072bd[_0x566078(0x128)]('$.'))return'$.services['+_0x477701+_0x566078(0x123)+_0x5072bd[_0x566078(0xed)](0x1);if(_0x5072bd[_0x566078(0x128)]('$['))return _0x566078(0x131)+_0x477701+_0x566078(0x123)+_0x5072bd['slice'](0x1);return'$.services['+_0x477701+'].manifest.'+_0x5072bd;}function isServiceRegistryLike(_0xa6639a){const _0x6884ac=a34_0x4b82aa;return isObjectRecord(_0xa6639a)&&_0xa6639a['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x6884ac(0x122)](_0xa6639a[_0x6884ac(0x134)]);}function isObjectRecord(_0x1c933d){const _0x59200e=a34_0x4b82aa;return Boolean(_0x1c933d)&&typeof _0x1c933d===_0x59200e(0x12b)&&!Array[_0x59200e(0x122)](_0x1c933d);}function emptyServiceRegistryInspection(_0x454546,_0x4a316d,_0x2779b4){return{'registryPath':_0x454546,'exists':_0x2779b4,'status':_0x4a316d,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x4dd219){const _0x16ee97=a34_0x4b82aa,_0x3e25ab=_0x4dd219[_0x16ee97(0x137)],_0x12ec86=_0x3e25ab[_0x16ee97(0x10b)][_0x16ee97(0xff)](_0x48c8cc=>({'path':_0x48c8cc[_0x16ee97(0x114)],'description':_0x48c8cc[_0x16ee97(0x119)],'risk':_0x48c8cc[_0x16ee97(0x104)],'targetKind':_0x48c8cc['target']['kind'],'targetCommand':_0x48c8cc['target'][_0x16ee97(0x133)]}));return{'serviceCode':_0x4dd219['serviceCode'],'name':_0x3e25ab[_0x16ee97(0x10e)][_0x16ee97(0x103)],'description':_0x3e25ab['service'][_0x16ee97(0x119)],'version':_0x4dd219[_0x16ee97(0x12c)],'importedAt':_0x4dd219[_0x16ee97(0x111)],'source':_0x4dd219[_0x16ee97(0x107)],'commandCount':_0x12ec86[_0x16ee97(0x11f)],'commands':_0x12ec86};}function sha256(_0x422495){const _0x1015f0=a34_0x4b82aa;return createHash(_0x1015f0(0x10d))[_0x1015f0(0xf0)](_0x422495)[_0x1015f0(0x10a)](_0x1015f0(0x113));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a34_0x5ad616=a34_0x2674;(function(_0x57fcd1,_0x3ca8b5){const _0x30f18c=a34_0x2674,_0x285d84=_0x57fcd1();while(!![]){try{const _0xa19b62=-parseInt(_0x30f18c(0xf8))/0x1*(parseInt(_0x30f18c(0xbd))/0x2)+-parseInt(_0x30f18c(0xb9))/0x3*(-parseInt(_0x30f18c(0x110))/0x4)+parseInt(_0x30f18c(0x11b))/0x5*(parseInt(_0x30f18c(0xe7))/0x6)+parseInt(_0x30f18c(0x122))/0x7*(parseInt(_0x30f18c(0xa5))/0x8)+parseInt(_0x30f18c(0x115))/0x9+-parseInt(_0x30f18c(0xb5))/0xa+parseInt(_0x30f18c(0xb3))/0xb;if(_0xa19b62===_0x3ca8b5)break;else _0x285d84['push'](_0x285d84['shift']());}catch(_0xee4f50){_0x285d84['push'](_0x285d84['shift']());}}}(a34_0x5923,0x33f4d));import{CLI_BIN_NAME,CLI_DISPLAY_NAME}from'../../constant/cli.js';import{CliErrors}from'../../errors.js';function a34_0x5923(){const _0x1e0724=['Read\x20CLI-managed\x20local\x20Skill\x20cache\x20and\x20links\x20instead\x20of\x20remote\x20lists','Only\x20target\x20a\x20specific\x20runtime\x20Skill\x20code','Backend\x20did\x20not\x20persist\x20the\x20multi-file\x20Skill\x20manifest.','push','user','../../core/api-client.js','status','files','treeSha256','local','Installing\x20official\x20skill\x20via\x20npx\x20(npx\x20skills\x20add\x20','Skill\x20template\x20type','list','object','Skill\x20pull\x20scope:\x20user\x20(personal/company)\x20or\x20builtin','Skill\x20name\x20using\x20lowercase\x20letters,\x20numbers,\x20and\x20hyphens','trim','skipped','type','\x20company\x20Skill(s).','SKILL.md','=1);\x20assuming\x20skill\x20is\x20already\x20present.','../../skills/runtime-skill-sync.js','\x20skill\x20installed','Compatibility\x20flag;\x20no\x20extra\x20checks\x20are\x20enabled','3648kcQKwB','write','scope','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','str','inherit','metadataPath','install','code','Created\x20personal\x20Skill\x20','read','personal','reduce','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','content','Pull\x20runtime\x20Skills\x20into\x20explicit\x20local\x20agent\x20skill\x20directories','Upgrade\x20the\x20runtime\x20service\x20before\x20pushing\x20multi-file\x20Skill\x20directories.','365806QyyZRl','Listed\x20','isDirectory','warnings','string','all','force','pipe','company','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','npx\x20skills\x20add\x20failed:\x20','envName','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','unchanged','apiError','skill','\x20developer\x20skill','map','strict','bool','cwd','accessKey','path','skill-install','4QVqQsw','unknown','appCode','error','zipSha256','372528qAsytR','updated','Created\x20local\x20Skill\x20draft\x20','\x20local\x20Skill(s).','validation','Overwrite\x20generated\x20files\x20when\x20the\x20Skill\x20directory\x20already\x20exists','1660ivrLkx','zipSize','authRequired','version','\x20skill\x20via\x20npx.','tags','action','17633zojDHu','cacheDir','ossPath','\x20-g\x20-y)...','production','Updated\x20personal\x20Skill\x20','get','isArray','1336NmDRdL','Check\x20the\x20runtime\x20service\x20Skill\x20file\x20manifest\x20storage\x20before\x20pulling\x20this\x20Skill.','Skipped\x20npx\x20(','../../skills/npx-skills-add.js','Pulled\x20','join','Installing\x20published\x20','input','pulledAt','\x20builtin\x20Skill(s).','target','created','length','skillDir','3331207VFQjsi','Unsupported\x20Skill\x20list\x20scope:\x20','4170220mWBoAw','dir','rendered','readonly','86649xlXaNH','filter','Local\x20Skill\x20directory\x20containing\x20SKILL.md','Backend\x20returned\x20a\x20different\x20multi-file\x20Skill\x20manifest\x20after\x20push.','2WpwpqT','sort','contentHash','log','pull','Push\x20a\x20local\x20Skill\x20directory\x20to\x20personal\x20runtime\x20Skill\x20scope','removed','skillName','validate','skillCode','builtin','name','some','boolean','isSymbolicLink','Unsupported\x20Skill\x20pull\x20scope:\x20','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache'];a34_0x5923=function(){return _0x1e0724;};return a34_0x5923();}import{logger}from'../../utils/logger.js';import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{basename,dirname,resolve}from'node:path';import{DEFAULT_SKILL_TARGET,renderSkillTemplate,SKILL_NAME_PATTERN,SKILL_TYPES}from'../../commands/skill/templates.js';function a34_0x2674(_0x21f3bf,_0x2b4b4a){_0x21f3bf=_0x21f3bf-0xa0;const _0x592321=a34_0x5923();let _0x2674b6=_0x592321[_0x21f3bf];return _0x2674b6;}import{throwIfSkillValidationFailed,validateSkillDirectory}from'../../commands/skill/validate.js';const CODE_FLAG={'name':a34_0x5ad616(0xef),'type':'string','description':a34_0x5ad616(0xcf)},SCOPE_FLAG={'name':a34_0x5ad616(0xe9),'type':'string','description':a34_0x5ad616(0xdc)},LIST_SCOPE_FLAG={'name':'scope','type':a34_0x5ad616(0xfc),'description':'Skill\x20list\x20scope:\x20user,\x20personal,\x20company,\x20builtin,\x20or\x20all','enum':[a34_0x5ad616(0xd2),a34_0x5ad616(0xf2),a34_0x5ad616(0x100),a34_0x5ad616(0xc7),a34_0x5ad616(0xfd)]},LOCAL_FLAG={'name':a34_0x5ad616(0xd7),'type':a34_0x5ad616(0xca),'description':a34_0x5ad616(0xce)},DIR_FLAG={'name':a34_0x5ad616(0xb6),'type':'string','required':!![],'description':a34_0x5ad616(0xbb)},CREATE_NAME_FLAG={'name':a34_0x5ad616(0xc8),'type':'string','required':!![],'description':a34_0x5ad616(0xdd),'pattern':{'regex':SKILL_NAME_PATTERN,'description':'lowercase\x20letters,\x20numbers,\x20and\x20single\x20hyphens'}},TYPE_FLAG={'name':a34_0x5ad616(0xe0),'type':'string','description':a34_0x5ad616(0xd9),'default':a34_0x5ad616(0xe8),'enum':[...SKILL_TYPES]},TARGET_FLAG={'name':a34_0x5ad616(0xaf),'type':a34_0x5ad616(0xfc),'description':'Directory\x20that\x20will\x20contain\x20the\x20generated\x20Skill\x20directory','default':DEFAULT_SKILL_TARGET},FORCE_FLAG={'name':a34_0x5ad616(0xfe),'type':'boolean','description':a34_0x5ad616(0x11a)},STRICT_FLAG={'name':a34_0x5ad616(0x10a),'type':a34_0x5ad616(0xca),'description':a34_0x5ad616(0xe6)};function summarizeRuntimeSkill(_0x4e1f94){const _0x9f3bc6=a34_0x5ad616;return{'id':_0x4e1f94['id'],'skillCode':_0x4e1f94[_0x9f3bc6(0xc6)],'skillName':_0x4e1f94[_0x9f3bc6(0xc4)],'scope':_0x4e1f94[_0x9f3bc6(0xe9)],'version':_0x4e1f94[_0x9f3bc6(0x11e)],'readonly':_0x4e1f94[_0x9f3bc6(0xb8)]};}function summarizeLocalRuntimeSkill(_0x527448){const _0x251565=a34_0x5ad616;return{'id':_0x527448['id'],'skillCode':_0x527448['skillCode'],'skillName':_0x527448[_0x251565(0xc4)],'scope':_0x527448['scope'],'appCode':_0x527448[_0x251565(0x112)],'version':_0x527448[_0x251565(0x11e)],'status':_0x527448[_0x251565(0xd4)],'readonly':_0x527448[_0x251565(0xb8)],'tags':_0x527448[_0x251565(0x120)],'dir':_0x527448[_0x251565(0xb6)],'cacheDir':_0x527448[_0x251565(0x123)],'skillMdPath':_0x527448['skillMdPath'],'metadataPath':_0x527448[_0x251565(0xed)],'linkedPaths':_0x527448['linkedPaths'],'contentHash':_0x527448[_0x251565(0xbf)],'treeHash':_0x527448['treeHash'],'pulledAt':_0x527448[_0x251565(0xad)]};}function filterByCode(_0x3b0801,_0x43a69e){const _0x4b1e5c=a34_0x5ad616,_0x387d02=_0x43a69e['trim']();if(!_0x387d02)return _0x3b0801;return _0x3b0801[_0x4b1e5c(0xba)](_0x3b37de=>_0x3b37de[_0x4b1e5c(0xc6)]===_0x387d02);}export const skillDefinitions=[{'service':'skill','command':a34_0x5ad616(0xee),'description':'Install\x20the\x20published\x20'+CLI_BIN_NAME+a34_0x5ad616(0x108),'risk':a34_0x5ad616(0xe8),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x29aa85){const _0xc3f92e=a34_0x5ad616;logger['setLogPath'](process['cwd']()),logger['info'](_0xc3f92e(0x10f),_0xc3f92e(0xab)+CLI_DISPLAY_NAME+_0xc3f92e(0x11f));const {LOVRABET_SKILL_SOURCE:_0x5596af,LOVRABET_SKIP_NPX_SKILLS_ENV:_0x4f68d6,runNpxSkillsAddGlobal:_0x3bc49d}=await import(_0xc3f92e(0xa8)),_0x5613e9=_0x29aa85['nonInteractive']?_0xc3f92e(0xff):_0xc3f92e(0xec);console[_0xc3f92e(0xc0)](_0xc3f92e(0xd8)+_0x5596af+_0xc3f92e(0xa0));const _0x21973b=_0x3bc49d(process[_0xc3f92e(0x10c)](),_0x5596af,{'stdio':_0x5613e9});if(_0x21973b[_0xc3f92e(0xdf)])console['log'](_0xc3f92e(0xa7)+_0x4f68d6+_0xc3f92e(0xe3));else{if(_0x21973b['ok'])console[_0xc3f92e(0xc0)](CLI_BIN_NAME+_0xc3f92e(0xe5));else throw CliErrors[_0xc3f92e(0x106)](_0xc3f92e(0x102)+(_0x21973b[_0xc3f92e(0x113)]||_0xc3f92e(0x111)),'Check\x20network\x20connectivity\x20and\x20try\x20again.');}return{'ok':!![]};}},{'service':a34_0x5ad616(0x107),'command':'create','description':a34_0x5ad616(0xea),'risk':a34_0x5ad616(0xe8),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x2dd364){const _0x4931e8=a34_0x5ad616,_0x4c482e=buildSkillCreatePlan(_0x2dd364[_0x4931e8(0xeb)](_0x4931e8(0xc8)),_0x2dd364[_0x4931e8(0xeb)](_0x4931e8(0xe0)),_0x2dd364[_0x4931e8(0xeb)](_0x4931e8(0xaf)));return{'method':'WRITE','url':_0x4c482e[_0x4931e8(0xb2)],'body':{'skillName':_0x4c482e[_0x4931e8(0xb7)][_0x4931e8(0xc4)],'type':_0x4c482e[_0x4931e8(0xb7)][_0x4931e8(0xe0)],'selfContained':!![],'files':_0x4c482e[_0x4931e8(0xb7)][_0x4931e8(0xd5)][_0x4931e8(0x109)](_0x4f1059=>_0x4f1059[_0x4931e8(0x10e)])},'description':_0x4931e8(0x101)};},async 'execute'(_0x5b8ace){const _0x519224=a34_0x5ad616,_0x1baf6c=buildSkillCreatePlan(_0x5b8ace['str'](_0x519224(0xc8)),_0x5b8ace[_0x519224(0xeb)](_0x519224(0xe0)),_0x5b8ace[_0x519224(0xeb)](_0x519224(0xaf)));return writeSkillDraft(_0x1baf6c,_0x5b8ace[_0x519224(0x10b)]('force')),{'ok':!![],'data':{'skillName':_0x1baf6c[_0x519224(0xb7)][_0x519224(0xc4)],'type':_0x1baf6c[_0x519224(0xb7)][_0x519224(0xe0)],'dir':_0x1baf6c[_0x519224(0xb2)],'files':_0x1baf6c['rendered'][_0x519224(0xd5)]['map'](_0x179777=>_0x179777[_0x519224(0x10e)])},'message':_0x519224(0x117)+_0x1baf6c[_0x519224(0xb7)][_0x519224(0xc4)]};}},{'service':a34_0x5ad616(0x107),'command':a34_0x5ad616(0xc5),'description':'Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x59302c){const _0x4f1021=a34_0x5ad616,_0x4fde6d=_0x59302c[_0x4f1021(0x10b)](_0x4f1021(0x10a)),_0x8e7eac=validateSkillDirectory(_0x59302c['str']('dir'),{'strict':_0x4fde6d});return throwIfSkillValidationFailed(_0x8e7eac,_0x4fde6d),{'ok':!![],'data':{'dir':_0x8e7eac[_0x4f1021(0xb6)],'type':_0x8e7eac[_0x4f1021(0xe0)],'errors':_0x8e7eac['errors'],'warnings':_0x8e7eac[_0x4f1021(0xfb)]},'message':'Skill\x20validation\x20passed.'};}},{'service':a34_0x5ad616(0x107),'command':a34_0x5ad616(0xda),'description':a34_0x5ad616(0xcd),'risk':a34_0x5ad616(0xf1),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG],async 'execute'(_0x1d6c3e){const _0x4c7312=a34_0x5ad616,_0x3580d9=_0x1d6c3e[_0x4c7312(0xeb)](_0x4c7312(0xef)),_0x2b02a5=normalizeListScope(_0x1d6c3e[_0x4c7312(0xeb)](_0x4c7312(0xe9)));if(_0x1d6c3e['bool'](_0x4c7312(0xd7))){const {listLocalRuntimeSkills:_0x1cea30}=await import('../../skills/runtime-skill-sync.js'),_0x8a5eb1=_0x1d6c3e[_0x4c7312(0x10d)];if(!_0x8a5eb1)throw CliErrors[_0x4c7312(0x11d)]();const _0x5f57fc=_0x1cea30({'env':_0x1d6c3e[_0x4c7312(0x103)]??_0x4c7312(0xa1),'accessKey':_0x8a5eb1,'appCode':_0x1d6c3e[_0x4c7312(0x112)],'scopes':listScopeToRuntimeScopes(_0x2b02a5),'code':_0x3580d9['trim']()||undefined}),_0xd1d974=groupLocalRuntimeSkills(_0x5f57fc);return{'ok':!![],'data':{'appCode':_0x1d6c3e[_0x4c7312(0x112)],'source':_0x4c7312(0xd7),'scope':_0x2b02a5,'total':_0x5f57fc['length'],'personal':_0xd1d974[_0x4c7312(0xf2)][_0x4c7312(0xb1)],'company':_0xd1d974[_0x4c7312(0x100)][_0x4c7312(0xb1)],'builtin':_0xd1d974[_0x4c7312(0xc7)][_0x4c7312(0xb1)],'items':_0x5f57fc[_0x4c7312(0x109)](summarizeLocalRuntimeSkill),'skills':{'personal':_0xd1d974[_0x4c7312(0xf2)][_0x4c7312(0x109)](summarizeLocalRuntimeSkill),'company':_0xd1d974[_0x4c7312(0x100)][_0x4c7312(0x109)](summarizeLocalRuntimeSkill),'builtin':_0xd1d974[_0x4c7312(0xc7)][_0x4c7312(0x109)](summarizeLocalRuntimeSkill)}},'message':_0x4c7312(0xf9)+_0x5f57fc[_0x4c7312(0xb1)]+_0x4c7312(0x118)};}const {listCompanyRuntimeSkills:_0x473148,listPersonalRuntimeSkills:_0x2ae6bb,listVisibleRuntimeSkills:_0x3b8479}=await import(_0x4c7312(0xd3)),_0x217c6e=shouldListScope(_0x2b02a5,_0x4c7312(0xf2))?filterByCode(await _0x2ae6bb(_0x1d6c3e[_0x4c7312(0x112)]),_0x3580d9):[],_0x2c759c=shouldListScope(_0x2b02a5,_0x4c7312(0x100))?filterByCode(await _0x473148(_0x1d6c3e[_0x4c7312(0x112)]),_0x3580d9):[],_0x287bb3=shouldListScope(_0x2b02a5,_0x4c7312(0xc7))?filterByCode((await _0x3b8479(_0x1d6c3e['appCode']))[_0x4c7312(0xba)](_0x20bd4=>_0x20bd4[_0x4c7312(0xe9)]===_0x4c7312(0xc7)),_0x3580d9):[],_0x132671=[..._0x217c6e,..._0x2c759c,..._0x287bb3];return{'ok':!![],'data':{'appCode':_0x1d6c3e[_0x4c7312(0x112)],'source':'remote','scope':_0x2b02a5,'total':_0x132671[_0x4c7312(0xb1)],'personal':_0x217c6e[_0x4c7312(0xb1)],'company':_0x2c759c[_0x4c7312(0xb1)],'builtin':_0x287bb3[_0x4c7312(0xb1)],'items':_0x132671[_0x4c7312(0x109)](summarizeRuntimeSkill),'skills':{'personal':_0x217c6e['map'](summarizeRuntimeSkill),'company':_0x2c759c[_0x4c7312(0x109)](summarizeRuntimeSkill),'builtin':_0x287bb3[_0x4c7312(0x109)](summarizeRuntimeSkill)}},'message':_0x4c7312(0xf9)+_0x132671[_0x4c7312(0xb1)]+'\x20remote\x20Skill(s).'};}},{'service':'skill','command':a34_0x5ad616(0xc1),'description':a34_0x5ad616(0xf6),'risk':a34_0x5ad616(0xe8),'flags':[CODE_FLAG,SCOPE_FLAG],async 'execute'(_0x4c18bd){const _0x84b4c4=a34_0x5ad616,{downloadRuntimeSkillPackage:_0x10680c,listCompanyRuntimeSkills:_0x484092,listPersonalRuntimeSkills:_0x36d045,listVisibleRuntimeSkills:_0x2eb58c}=await import(_0x84b4c4(0xd3)),{linkGlobalRuntimeSkills:_0x5a5dd2,linkEffectiveRuntimeSkills:_0x48b9be,materializeRuntimeSkill:_0x4abeb5,pruneStaleRuntimeSkillCache:_0x128e8c,pruneStaleRuntimeSkillLinks:_0x470d06}=await import(_0x84b4c4(0xe4)),_0xf48361=_0x4c18bd['str'](_0x84b4c4(0xef)),_0x25ab75=normalizePullScope(_0x4c18bd['str']('scope')),_0x338ed9=_0x4c18bd['envName']??_0x84b4c4(0xa1),_0x53d841=_0x4c18bd[_0x84b4c4(0x10d)];if(!_0x53d841)throw CliErrors[_0x84b4c4(0x11d)]();if(_0x25ab75===_0x84b4c4(0xc7)){const _0x1eae37=filterByCode((await _0x2eb58c(_0x4c18bd[_0x84b4c4(0x112)]))[_0x84b4c4(0xba)](_0x1f74ec=>_0x1f74ec[_0x84b4c4(0xe9)]===_0x84b4c4(0xc7)),_0xf48361),_0x3058bb=[];for(const _0x253d17 of _0x1eae37){_0x3058bb[_0x84b4c4(0xd1)](_0x4abeb5(_0x253d17,_0x84b4c4(0xc7),{'env':_0x338ed9,'accessKey':_0x53d841,'appCode':_0x4c18bd[_0x84b4c4(0x112)],'packageBytes':await downloadPackageIfNeeded(_0x253d17,_0x84b4c4(0xc7),_0x4c18bd[_0x84b4c4(0x112)],_0x10680c)}));}const _0x51e3f3=_0x5a5dd2(_0x3058bb),_0x368f41=countLinkActions(_0x51e3f3),_0x553102=_0x51e3f3[0x0]?.[_0x84b4c4(0x10e)]?dirname(_0x51e3f3[0x0][_0x84b4c4(0x10e)]):undefined,_0x1933f6=new Map(_0x51e3f3[_0x84b4c4(0x109)](_0x39cc46=>[basename(_0x39cc46[_0x84b4c4(0x10e)]),_0x39cc46]));return{'ok':!![],'data':{'appCode':_0x4c18bd[_0x84b4c4(0x112)],'scope':_0x84b4c4(0xc7),'builtin':_0x1eae37['length'],'materialized':_0x3058bb[_0x84b4c4(0xb1)],'globalRoot':_0x553102,'links':{'total':_0x51e3f3[_0x84b4c4(0xb1)],'created':_0x368f41['created']??0x0,'updated':_0x368f41[_0x84b4c4(0x116)]??0x0,'unchanged':_0x368f41[_0x84b4c4(0x105)]??0x0,'skipped':0x0,'conflicted':0x0},'skills':{'builtin':_0x1eae37[_0x84b4c4(0x109)](_0x567499=>{const _0xa63ae0=_0x84b4c4,_0x453f92=_0x1933f6[_0xa63ae0(0xa3)](_0x567499['skillCode']);return{...summarizeRuntimeSkill(_0x567499),'contentHash':_0x453f92?.[_0xa63ae0(0xbf)]};})}},'message':_0x84b4c4(0xa9)+_0x1eae37[_0x84b4c4(0xb1)]+_0x84b4c4(0xae)};}const _0x94e059=filterByCode(await _0x36d045(_0x4c18bd[_0x84b4c4(0x112)]),_0xf48361),_0x452284=filterByCode(await _0x484092(_0x4c18bd[_0x84b4c4(0x112)]),_0xf48361),_0x4feb2b=new Set([..._0x94e059['map'](_0x56cfc6=>_0x56cfc6[_0x84b4c4(0xc6)]?.[_0x84b4c4(0xde)]())[_0x84b4c4(0xba)](_0x3b5575=>Boolean(_0x3b5575)),..._0x452284['map'](_0x5b181c=>_0x5b181c[_0x84b4c4(0xc6)]?.['trim']())[_0x84b4c4(0xba)](_0x11b4c4=>Boolean(_0x11b4c4))]),_0x57dcf5=_0xf48361[_0x84b4c4(0xde)]()?[_0xf48361[_0x84b4c4(0xde)]()]:undefined,_0x1c82b2=_0x470d06(_0x4c18bd[_0x84b4c4(0x112)],_0x4feb2b,{},_0x57dcf5),_0x3a5531=_0x128e8c({'env':_0x338ed9,'accessKey':_0x53d841,'appCode':_0x4c18bd[_0x84b4c4(0x112)],'activeSkillCodes':_0x4feb2b,'pruneSkillCodes':_0x57dcf5}),_0x2fd1f4=[];for(const _0x37f309 of _0x94e059){_0x2fd1f4[_0x84b4c4(0xd1)](_0x4abeb5(_0x37f309,_0x84b4c4(0xf2),{'env':_0x338ed9,'accessKey':_0x53d841,'appCode':_0x4c18bd[_0x84b4c4(0x112)],'packageBytes':await downloadPackageIfNeeded(_0x37f309,'personal',_0x4c18bd['appCode'],_0x10680c)}));}for(const _0x5b69e6 of _0x452284){_0x2fd1f4[_0x84b4c4(0xd1)](_0x4abeb5(_0x5b69e6,_0x84b4c4(0x100),{'env':_0x338ed9,'accessKey':_0x53d841,'appCode':_0x4c18bd['appCode'],'packageBytes':await downloadPackageIfNeeded(_0x5b69e6,'company',_0x4c18bd[_0x84b4c4(0x112)],_0x10680c)}));}const _0x10a48a=_0x48b9be(_0x2fd1f4,_0x4c18bd[_0x84b4c4(0x112)]),_0x347349=countLinkActions(_0x10a48a);return{'ok':!![],'data':{'appCode':_0x4c18bd[_0x84b4c4(0x112)],'personal':_0x94e059[_0x84b4c4(0xb1)],'company':_0x452284[_0x84b4c4(0xb1)],'materialized':_0x2fd1f4['length'],'links':{'total':_0x10a48a[_0x84b4c4(0xb1)],'created':_0x347349[_0x84b4c4(0xb0)]??0x0,'updated':_0x347349[_0x84b4c4(0x116)]??0x0,'unchanged':_0x347349[_0x84b4c4(0x105)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x1c82b2[_0x84b4c4(0xba)](_0x4f68e=>_0x4f68e[_0x84b4c4(0x121)]==='removed')[_0x84b4c4(0xb1)],'cacheDirs':_0x3a5531['filter'](_0x12ea2c=>_0x12ea2c[_0x84b4c4(0x121)]===_0x84b4c4(0xc3))[_0x84b4c4(0xb1)],'skipped':[..._0x1c82b2,..._0x3a5531][_0x84b4c4(0xba)](_0x5f59be=>_0x5f59be['action']===_0x84b4c4(0xdf))[_0x84b4c4(0xb1)]},'skills':{'personal':_0x94e059[_0x84b4c4(0x109)](summarizeRuntimeSkill),'company':_0x452284['map'](summarizeRuntimeSkill)}},'message':_0x84b4c4(0xa9)+_0x94e059['length']+'\x20personal\x20and\x20'+_0x452284['length']+_0x84b4c4(0xe1)};}},{'service':a34_0x5ad616(0x107),'command':'push','description':a34_0x5ad616(0xc2),'risk':a34_0x5ad616(0xe8),'flags':[DIR_FLAG],async 'execute'(_0x4bb23f){const _0x9636f0=a34_0x5ad616,{createPersonalRuntimeSkill:_0x54fe72,downloadRuntimeSkillPackage:_0x2e3eb7,listPersonalRuntimeSkills:_0x26f63b,updatePersonalRuntimeSkill:_0x2b66e1}=await import(_0x9636f0(0xd3)),{verifyRuntimeSkillPackage:_0xe885dd,readPushDirectory:_0x12c35,recordPushedRuntimeSkill:_0x51c79d}=await import(_0x9636f0(0xe4));if(!_0x4bb23f[_0x9636f0(0x10d)])throw CliErrors[_0x9636f0(0x11d)]();const _0x3f6b6e=_0x4bb23f[_0x9636f0(0xeb)](_0x9636f0(0xb6)),_0x488932=validateSkillDirectory(_0x3f6b6e);throwIfSkillValidationFailed(_0x488932);const _0x57c810=_0x12c35(_0x3f6b6e,_0x4bb23f[_0x9636f0(0x112)]),_0x535728=(await _0x26f63b(_0x4bb23f[_0x9636f0(0x112)]))['find'](_0x5382af=>_0x5382af[_0x9636f0(0xc6)]===_0x57c810[_0x9636f0(0xc6)]),_0x51444a=_0x535728?await _0x2b66e1(_0x57c810[_0x9636f0(0xc6)],_0x4bb23f[_0x9636f0(0x112)],_0x57c810[_0x9636f0(0xac)]):await _0x54fe72(_0x4bb23f[_0x9636f0(0x112)],_0x57c810[_0x9636f0(0xac)]);assertMultiFilePushPersisted(_0x57c810['input'][_0x9636f0(0xd5)],_0x51444a);if(isPackageBackedMultiFile(_0x51444a[_0x9636f0(0xd5)])){const _0x5d1e99=await _0x2e3eb7(_0x9636f0(0xf2),_0x57c810[_0x9636f0(0xc6)],_0x4bb23f[_0x9636f0(0x112)]);_0xe885dd(_0x51444a[_0x9636f0(0xd5)],_0x5d1e99);}return _0x51c79d(_0x3f6b6e,_0x51444a,_0x4bb23f[_0x9636f0(0x112)]),{'ok':!![],'data':summarizeRuntimeSkill(_0x51444a),'message':_0x535728?_0x9636f0(0xa2)+_0x57c810[_0x9636f0(0xc6)]:_0x9636f0(0xf0)+_0x57c810[_0x9636f0(0xc6)]};}}];function buildSkillCreatePlan(_0x3eca7b,_0x4e0047,_0x398939){const _0x5ee999=a34_0x5ad616,_0x103318=renderSkillTemplate({'skillName':_0x3eca7b,'type':_0x4e0047}),_0x1260e2=resolve(normalizeSkillTarget(_0x398939));return{'rendered':_0x103318,'targetRoot':_0x1260e2,'skillDir':resolve(_0x1260e2,_0x103318[_0x5ee999(0xc4)])};}function normalizeSkillTarget(_0x2f3543){const _0xa50109=a34_0x5ad616;return(_0x2f3543||DEFAULT_SKILL_TARGET)[_0xa50109(0xde)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x347e0a,_0x3c3d3c){const _0x289fbb=a34_0x5ad616;if(existsSync(_0x347e0a[_0x289fbb(0xb2)])){const _0x3e5040=lstatSync(_0x347e0a[_0x289fbb(0xb2)]);if(!_0x3e5040[_0x289fbb(0xfa)]()||_0x3e5040[_0x289fbb(0xcb)]())throw CliErrors['validation'](_0x289fbb(0x104)+_0x347e0a['skillDir']);if(!_0x3c3d3c)throw CliErrors['validation']('Skill\x20directory\x20already\x20exists:\x20'+_0x347e0a[_0x289fbb(0xb2)],_0x289fbb(0xf4));}for(const _0x5dc7ca of _0x347e0a[_0x289fbb(0xb7)][_0x289fbb(0xd5)]){const _0x50b23f=resolve(_0x347e0a[_0x289fbb(0xb2)],_0x5dc7ca['path']),_0x5e8f81=dirname(_0x50b23f);mkdirSync(_0x5e8f81,{'recursive':!![]});if(existsSync(_0x50b23f)&&lstatSync(_0x50b23f)[_0x289fbb(0xcb)]())throw CliErrors[_0x289fbb(0x119)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0x50b23f);writeFileSync(_0x50b23f,_0x5dc7ca[_0x289fbb(0xf5)],'utf8');}}async function downloadPackageIfNeeded(_0x499ca1,_0x143850,_0x35f54b,_0x3bf3ce){const _0x1305b0=a34_0x5ad616;if(!isPackageBackedManifest(_0x499ca1[_0x1305b0(0xd5)]))return undefined;return _0x3bf3ce(_0x143850,_0x499ca1['skillCode'],_0x35f54b);}function normalizePullScope(_0x411540){const _0x2de0e0=a34_0x5ad616,_0x29c67d=_0x411540[_0x2de0e0(0xde)]();if(!_0x29c67d)return _0x2de0e0(0xd2);if(_0x29c67d===_0x2de0e0(0xd2)||_0x29c67d==='builtin')return _0x29c67d;throw CliErrors[_0x2de0e0(0x119)](_0x2de0e0(0xcc)+_0x411540);}function normalizeListScope(_0x461e79){const _0x3296ba=a34_0x5ad616,_0x206104=_0x461e79[_0x3296ba(0xde)]();if(!_0x206104)return'user';if(_0x206104===_0x3296ba(0xd2)||_0x206104===_0x3296ba(0xf2)||_0x206104===_0x3296ba(0x100)||_0x206104===_0x3296ba(0xc7)||_0x206104==='all')return _0x206104;throw CliErrors[_0x3296ba(0x119)](_0x3296ba(0xb4)+_0x461e79);}function shouldListScope(_0x5c3175,_0x28a11a){const _0x40d4ba=a34_0x5ad616;if(_0x5c3175===_0x40d4ba(0xfd))return!![];if(_0x5c3175===_0x40d4ba(0xd2))return _0x28a11a===_0x40d4ba(0xf2)||_0x28a11a===_0x40d4ba(0x100);return _0x5c3175===_0x28a11a;}function listScopeToRuntimeScopes(_0x4c289e){const _0x360303=a34_0x5ad616;if(_0x4c289e===_0x360303(0xfd))return[_0x360303(0xf2),'company',_0x360303(0xc7)];if(_0x4c289e===_0x360303(0xd2))return['personal',_0x360303(0x100)];return[_0x4c289e];}function groupLocalRuntimeSkills(_0x362c5e){const _0x4b55c6=a34_0x5ad616;return{'personal':_0x362c5e[_0x4b55c6(0xba)](_0x20943e=>_0x20943e[_0x4b55c6(0xe9)]===_0x4b55c6(0xf2)),'company':_0x362c5e['filter'](_0x210676=>_0x210676[_0x4b55c6(0xe9)]===_0x4b55c6(0x100)),'builtin':_0x362c5e['filter'](_0x1c027b=>_0x1c027b['scope']===_0x4b55c6(0xc7))};}function countLinkActions(_0x469699){const _0x495a19=a34_0x5ad616;return _0x469699[_0x495a19(0xf3)]((_0xf6f3ec,_0x1135ab)=>{const _0x1066a3=_0x495a19;return _0xf6f3ec[_0x1135ab['action']]=(_0xf6f3ec[_0x1135ab[_0x1066a3(0x121)]]??0x0)+0x1,_0xf6f3ec;},{});}function assertMultiFilePushPersisted(_0x24d024,_0x1ccd20){const _0x5c8547=a34_0x5ad616;if(!isMultiFileManifest(_0x24d024))return;if(!isPackageBackedMultiFile(_0x1ccd20['files']))throw CliErrors['validation'](_0x5c8547(0xd0),_0x5c8547(0xf7));if(_0x24d024[_0x5c8547(0xd6)]!==_0x1ccd20[_0x5c8547(0xd5)][_0x5c8547(0xd6)]||_0x24d024[_0x5c8547(0x114)]!==_0x1ccd20['files'][_0x5c8547(0x114)]||_0x24d024[_0x5c8547(0x11c)]!==_0x1ccd20['files'][_0x5c8547(0x11c)]||!_0x1ccd20[_0x5c8547(0xd5)][_0x5c8547(0x124)]||manifestFileSignature(_0x24d024)!==manifestFileSignature(_0x1ccd20[_0x5c8547(0xd5)]))throw CliErrors['validation'](_0x5c8547(0xbc),_0x5c8547(0xa6));}function isPackageBackedManifest(_0x2b67bc){const _0x2bf8eb=a34_0x5ad616;return!!_0x2b67bc&&typeof _0x2b67bc==='object'&&!Array[_0x2bf8eb(0xa4)](_0x2b67bc)&&typeof _0x2b67bc[_0x2bf8eb(0x124)]===_0x2bf8eb(0xfc)&&_0x2b67bc[_0x2bf8eb(0x124)][_0x2bf8eb(0xb1)]>0x0&&Array[_0x2bf8eb(0xa4)](_0x2b67bc[_0x2bf8eb(0xd5)]);}function isPackageBackedMultiFile(_0x384015){return isPackageBackedManifest(_0x384015)&&isMultiFileManifest(_0x384015);}function isMultiFileManifest(_0x214d09){const _0x3c7837=a34_0x5ad616;return!!_0x214d09&&typeof _0x214d09===_0x3c7837(0xdb)&&!Array[_0x3c7837(0xa4)](_0x214d09)&&Array[_0x3c7837(0xa4)](_0x214d09[_0x3c7837(0xd5)])&&_0x214d09[_0x3c7837(0xd5)][_0x3c7837(0xc9)](_0x562490=>_0x562490['path']!==_0x3c7837(0xe2));}function manifestFileSignature(_0x5ec35c){const _0x18231c=a34_0x5ad616;return[..._0x5ec35c[_0x18231c(0xd5)]][_0x18231c(0x109)](_0x100fb0=>_0x100fb0['path']+'\x00'+_0x100fb0['sha256']+'\x00'+_0x100fb0['size'])[_0x18231c(0xbe)]()[_0x18231c(0xaa)]('\x00');}
|
|
1
|
+
const a35_0x346f54=a35_0x5c54;(function(_0x28f004,_0x3a335a){const _0x156dab=a35_0x5c54,_0x3f170e=_0x28f004();while(!![]){try{const _0x340d89=-parseInt(_0x156dab(0x227))/0x1*(parseInt(_0x156dab(0x253))/0x2)+parseInt(_0x156dab(0x1e7))/0x3*(parseInt(_0x156dab(0x221))/0x4)+-parseInt(_0x156dab(0x1eb))/0x5+parseInt(_0x156dab(0x205))/0x6+-parseInt(_0x156dab(0x22b))/0x7*(parseInt(_0x156dab(0x207))/0x8)+parseInt(_0x156dab(0x25a))/0x9+parseInt(_0x156dab(0x210))/0xa;if(_0x340d89===_0x3a335a)break;else _0x3f170e['push'](_0x3f170e['shift']());}catch(_0x64fab8){_0x3f170e['push'](_0x3f170e['shift']());}}}(a35_0x4e64,0x956aa));import{CliErrors}from'../../errors.js';import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{DEFAULT_SKILL_TARGET,renderSkillTemplate,SKILL_NAME_PATTERN,SKILL_TYPES}from'../../commands/skill/templates.js';import{throwIfSkillValidationFailed,validateSkillDirectory}from'../../commands/skill/validate.js';const CODE_FLAG={'name':a35_0x346f54(0x24f),'type':a35_0x346f54(0x226),'description':'Only\x20target\x20a\x20specific\x20runtime\x20Skill\x20code'},SCOPE_FLAG={'name':a35_0x346f54(0x254),'type':a35_0x346f54(0x226),'description':a35_0x346f54(0x244)},LIST_SCOPE_FLAG={'name':a35_0x346f54(0x254),'type':'string','description':a35_0x346f54(0x20c),'enum':[a35_0x346f54(0x24a),a35_0x346f54(0x22f),a35_0x346f54(0x219),a35_0x346f54(0x21b),a35_0x346f54(0x24e)]},LOCAL_FLAG={'name':a35_0x346f54(0x239),'type':a35_0x346f54(0x1fe),'description':'Read\x20CLI-managed\x20local\x20Skill\x20cache\x20and\x20links\x20instead\x20of\x20remote\x20lists'},DIR_FLAG={'name':'dir','type':a35_0x346f54(0x226),'required':!![],'description':'Local\x20Skill\x20directory\x20containing\x20SKILL.md'},CREATE_NAME_FLAG={'name':a35_0x346f54(0x235),'type':a35_0x346f54(0x226),'required':!![],'description':a35_0x346f54(0x250),'pattern':{'regex':SKILL_NAME_PATTERN,'description':'lowercase\x20letters,\x20numbers,\x20and\x20single\x20hyphens'}},TYPE_FLAG={'name':a35_0x346f54(0x1f8),'type':a35_0x346f54(0x226),'description':a35_0x346f54(0x245),'default':a35_0x346f54(0x1ea),'enum':[...SKILL_TYPES]},TARGET_FLAG={'name':a35_0x346f54(0x1f0),'type':a35_0x346f54(0x226),'description':a35_0x346f54(0x255),'default':DEFAULT_SKILL_TARGET},FORCE_FLAG={'name':a35_0x346f54(0x20b),'type':'boolean','description':a35_0x346f54(0x22a)},STRICT_FLAG={'name':a35_0x346f54(0x1f1),'type':'boolean','description':a35_0x346f54(0x237)};function summarizeRuntimeSkill(_0x3e0ddd){const _0x5ac912=a35_0x346f54;return{'id':_0x3e0ddd['id'],'skillCode':_0x3e0ddd[_0x5ac912(0x218)],'skillName':_0x3e0ddd[_0x5ac912(0x21a)],'scope':_0x3e0ddd['scope'],'version':_0x3e0ddd[_0x5ac912(0x25c)],'readonly':_0x3e0ddd[_0x5ac912(0x23c)]};}function summarizeLocalRuntimeSkill(_0x1f8265){const _0x399553=a35_0x346f54;return{'id':_0x1f8265['id'],'skillCode':_0x1f8265[_0x399553(0x218)],'skillName':_0x1f8265[_0x399553(0x21a)],'scope':_0x1f8265['scope'],'appCode':_0x1f8265[_0x399553(0x206)],'version':_0x1f8265[_0x399553(0x25c)],'status':_0x1f8265[_0x399553(0x1f6)],'readonly':_0x1f8265['readonly'],'tags':_0x1f8265[_0x399553(0x257)],'dir':_0x1f8265['dir'],'cacheDir':_0x1f8265['cacheDir'],'skillMdPath':_0x1f8265['skillMdPath'],'metadataPath':_0x1f8265[_0x399553(0x1ff)],'linkedPaths':_0x1f8265[_0x399553(0x21c)],'contentHash':_0x1f8265[_0x399553(0x228)],'treeHash':_0x1f8265[_0x399553(0x25e)],'pulledAt':_0x1f8265[_0x399553(0x20f)]};}export const skillDefinitions=[{'service':a35_0x346f54(0x214),'command':a35_0x346f54(0x238),'description':'Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','risk':a35_0x346f54(0x1ea),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG],async 'execute'(_0x590435){return syncRuntimeSkills(_0x590435,{'installToAgent':!![]});}},{'service':a35_0x346f54(0x214),'command':a35_0x346f54(0x248),'description':a35_0x346f54(0x25b),'risk':a35_0x346f54(0x1ea),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x12d3d5){const _0x38b1b7=a35_0x346f54,_0x44b025=buildSkillCreatePlan(_0x12d3d5['str'](_0x38b1b7(0x235)),_0x12d3d5['str'](_0x38b1b7(0x1f8)),_0x12d3d5[_0x38b1b7(0x1ed)](_0x38b1b7(0x1f0)));return{'method':_0x38b1b7(0x1e8),'url':_0x44b025[_0x38b1b7(0x247)],'body':{'skillName':_0x44b025['rendered']['skillName'],'type':_0x44b025[_0x38b1b7(0x1fd)]['type'],'selfContained':!![],'files':_0x44b025[_0x38b1b7(0x1fd)][_0x38b1b7(0x212)][_0x38b1b7(0x1fc)](_0x1e28e2=>_0x1e28e2[_0x38b1b7(0x225)])},'description':_0x38b1b7(0x246)};},async 'execute'(_0x397087){const _0x3ebf89=a35_0x346f54,_0x4286fd=buildSkillCreatePlan(_0x397087[_0x3ebf89(0x1ed)](_0x3ebf89(0x235)),_0x397087[_0x3ebf89(0x1ed)]('type'),_0x397087[_0x3ebf89(0x1ed)](_0x3ebf89(0x1f0)));return writeSkillDraft(_0x4286fd,_0x397087[_0x3ebf89(0x23e)]('force')),{'ok':!![],'data':{'skillName':_0x4286fd['rendered']['skillName'],'type':_0x4286fd[_0x3ebf89(0x1fd)][_0x3ebf89(0x1f8)],'dir':_0x4286fd[_0x3ebf89(0x247)],'files':_0x4286fd['rendered'][_0x3ebf89(0x212)][_0x3ebf89(0x1fc)](_0x1c1200=>_0x1c1200['path'])},'message':_0x3ebf89(0x203)+_0x4286fd[_0x3ebf89(0x1fd)][_0x3ebf89(0x21a)]};}},{'service':a35_0x346f54(0x214),'command':a35_0x346f54(0x209),'description':a35_0x346f54(0x1ec),'risk':a35_0x346f54(0x213),'requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0xecef2f){const _0x57e5e5=a35_0x346f54,_0x3d6511=_0xecef2f['bool'](_0x57e5e5(0x1f1)),_0x34f3f1=validateSkillDirectory(_0xecef2f[_0x57e5e5(0x1ed)](_0x57e5e5(0x220)),{'strict':_0x3d6511});return throwIfSkillValidationFailed(_0x34f3f1,_0x3d6511),{'ok':!![],'data':{'dir':_0x34f3f1['dir'],'type':_0x34f3f1[_0x57e5e5(0x1f8)],'errors':_0x34f3f1[_0x57e5e5(0x204)],'warnings':_0x34f3f1[_0x57e5e5(0x24d)]},'message':_0x57e5e5(0x1ef)};}},{'service':a35_0x346f54(0x214),'command':a35_0x346f54(0x1f2),'description':a35_0x346f54(0x249),'risk':'read','flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG],async 'execute'(_0x98fc63){const _0x115883=a35_0x346f54,_0x39dad5=_0x98fc63[_0x115883(0x1ed)](_0x115883(0x24f)),_0x203f74=normalizeListScope(_0x98fc63[_0x115883(0x1ed)]('scope'));if(_0x98fc63[_0x115883(0x23e)](_0x115883(0x239))){const _0x56dec0=_0x98fc63['accessKey'];if(!_0x56dec0)throw CliErrors['authRequired']();const _0x19b219=_0x203f74===_0x115883(0x21b)?[]:await((async()=>{const _0x203fff=_0x115883,{listLocalRuntimeSkills:_0x534d4e}=await import('../../skills/runtime-skill-sync.js');return _0x534d4e({'env':_0x98fc63[_0x203fff(0x217)]??_0x203fff(0x230),'accessKey':_0x56dec0,'appCode':_0x98fc63[_0x203fff(0x206)],'scopes':listScopeToRuntimeScopes(_0x203f74),'code':_0x39dad5['trim']()||undefined});})()),_0xd6ed45=groupLocalRuntimeSkills(_0x19b219);return{'ok':!![],'data':{'appCode':_0x98fc63['appCode'],'source':_0x115883(0x239),'scope':_0x203f74,'total':_0x19b219[_0x115883(0x200)],'personal':_0xd6ed45[_0x115883(0x22f)][_0x115883(0x200)],'company':_0xd6ed45[_0x115883(0x219)][_0x115883(0x200)],'public':0x0,'items':_0x19b219[_0x115883(0x1fc)](summarizeLocalRuntimeSkill),'skills':{'personal':_0xd6ed45[_0x115883(0x22f)]['map'](summarizeLocalRuntimeSkill),'company':_0xd6ed45[_0x115883(0x219)][_0x115883(0x1fc)](summarizeLocalRuntimeSkill),'public':[]}},'message':_0x115883(0x20e)+_0x19b219[_0x115883(0x200)]+_0x115883(0x234)};}const {listRuntimeSkills:_0xa1dd61}=await import(_0x115883(0x1f5)),_0x49e6f3=await _0xa1dd61({'appCode':_0x98fc63[_0x115883(0x206)],'scope':listScopeToRemoteScope(_0x203f74),'code':_0x39dad5[_0x115883(0x22d)]()||undefined}),_0x5a2eb8=shouldListScope(_0x203f74,_0x115883(0x22f))?_0x49e6f3[_0x115883(0x22f)]:[],_0x533eb0=shouldListScope(_0x203f74,_0x115883(0x219))?_0x49e6f3[_0x115883(0x219)]:[],_0xd835f9=shouldListScope(_0x203f74,_0x115883(0x21b))?_0x49e6f3[_0x115883(0x21b)]:[],_0x38b579=_0x203f74===_0x115883(0x24a)?_0x49e6f3['effective']:[..._0x5a2eb8,..._0x533eb0,..._0xd835f9];return{'ok':!![],'data':{'appCode':_0x98fc63['appCode'],'source':_0x115883(0x20d),'scope':_0x203f74,'total':_0x38b579[_0x115883(0x200)],'personal':_0x5a2eb8[_0x115883(0x200)],'company':_0x533eb0[_0x115883(0x200)],'public':_0xd835f9[_0x115883(0x200)],'items':_0x38b579[_0x115883(0x1fc)](summarizeRuntimeSkill),'skills':{'personal':_0x5a2eb8['map'](summarizeRuntimeSkill),'company':_0x533eb0[_0x115883(0x1fc)](summarizeRuntimeSkill),'public':_0xd835f9[_0x115883(0x1fc)](summarizeRuntimeSkill)}},'message':_0x115883(0x20e)+_0x38b579['length']+'\x20remote\x20Skill(s).'};}},{'service':a35_0x346f54(0x214),'command':'pull','description':a35_0x346f54(0x1f9),'risk':a35_0x346f54(0x1ea),'flags':[CODE_FLAG,SCOPE_FLAG],async 'execute'(_0x2963ee){return syncRuntimeSkills(_0x2963ee,{'installToAgent':![]});}},{'service':a35_0x346f54(0x214),'command':a35_0x346f54(0x23d),'description':a35_0x346f54(0x251),'risk':a35_0x346f54(0x1ea),'flags':[DIR_FLAG],async 'execute'(_0xea1553){const _0x2b7c2b=a35_0x346f54,{createPersonalRuntimeSkill:_0x198c46,downloadRuntimeSkillPackage:_0x51b8c4,listRuntimeSkills:_0x56e06d,updatePersonalRuntimeSkill:_0x29571e}=await import(_0x2b7c2b(0x1f5)),{verifyRuntimeSkillPackage:_0x166b04,readPushDirectory:_0x5e23d2,recordPushedRuntimeSkill:_0x5025c4}=await import(_0x2b7c2b(0x242));if(!_0xea1553[_0x2b7c2b(0x1e6)])throw CliErrors['authRequired']();const _0x2c4493=_0xea1553[_0x2b7c2b(0x1ed)](_0x2b7c2b(0x220)),_0x4fb6d1=validateSkillDirectory(_0x2c4493);throwIfSkillValidationFailed(_0x4fb6d1);const _0x3055dc=_0x5e23d2(_0x2c4493,_0xea1553[_0x2b7c2b(0x206)]),_0x253240=(await _0x56e06d({'appCode':_0xea1553[_0x2b7c2b(0x206)],'scope':'personal'}))[_0x2b7c2b(0x22f)][_0x2b7c2b(0x259)](_0x11ae0c=>_0x11ae0c[_0x2b7c2b(0x218)]===_0x3055dc[_0x2b7c2b(0x218)]),_0x2e52b3=_0x253240?await _0x29571e(_0x3055dc['skillCode'],_0xea1553[_0x2b7c2b(0x206)],_0x3055dc[_0x2b7c2b(0x1f3)]):await _0x198c46(_0xea1553[_0x2b7c2b(0x206)],_0x3055dc[_0x2b7c2b(0x1f3)]);assertMultiFilePushPersisted(_0x3055dc[_0x2b7c2b(0x1f3)][_0x2b7c2b(0x212)],_0x2e52b3);if(isPackageBackedMultiFile(_0x2e52b3[_0x2b7c2b(0x212)])){const _0x19d10f=await _0x51b8c4('personal',_0x3055dc[_0x2b7c2b(0x218)],_0xea1553[_0x2b7c2b(0x206)]);_0x166b04(_0x2e52b3['files'],_0x19d10f);}return _0x5025c4(_0x2c4493,_0x2e52b3,_0xea1553[_0x2b7c2b(0x206)]),{'ok':!![],'data':summarizeRuntimeSkill(_0x2e52b3),'message':_0x253240?_0x2b7c2b(0x23f)+_0x3055dc[_0x2b7c2b(0x218)]:_0x2b7c2b(0x24b)+_0x3055dc[_0x2b7c2b(0x218)]};}}];async function syncRuntimeSkills(_0x47acd2,_0x517223){const _0x29566a=a35_0x346f54,{downloadRuntimeSkillPackage:_0x533515,listRuntimeSkills:_0x474390}=await import(_0x29566a(0x1f5)),{linkEffectiveRuntimeSkills:_0x5e9915,materializeRuntimeSkill:_0x287a95,pruneStaleRuntimeSkillCache:_0x705f92,pruneStaleRuntimeSkillLinks:_0x24aacc}=await import(_0x29566a(0x242)),_0x528ee2=_0x47acd2['str'](_0x29566a(0x24f));normalizePullScope(_0x47acd2[_0x29566a(0x1ed)](_0x29566a(0x254)));const _0x5917d4=_0x47acd2[_0x29566a(0x217)]??_0x29566a(0x230),_0x54e1cf=_0x47acd2[_0x29566a(0x1e6)];if(!_0x54e1cf){if(_0x517223['installToAgent'])throw CliErrors[_0x29566a(0x243)](_0x29566a(0x1f4));throw CliErrors[_0x29566a(0x243)]();}const _0x39c0ec=await _0x474390({'appCode':_0x47acd2[_0x29566a(0x206)],'scope':_0x29566a(0x24a),'code':_0x528ee2[_0x29566a(0x22d)]()||undefined}),_0x146add=_0x39c0ec[_0x29566a(0x22f)],_0x218f11=_0x39c0ec[_0x29566a(0x219)],_0x337b31=new Set([..._0x146add[_0x29566a(0x1fc)](_0x26fd40=>_0x26fd40[_0x29566a(0x218)]?.[_0x29566a(0x22d)]())['filter'](_0x4fc9b2=>Boolean(_0x4fc9b2)),..._0x218f11['map'](_0xbbec45=>_0xbbec45[_0x29566a(0x218)]?.[_0x29566a(0x22d)]())[_0x29566a(0x1fb)](_0x7467db=>Boolean(_0x7467db))]),_0x47dd26=_0x528ee2['trim']()?[_0x528ee2[_0x29566a(0x22d)]()]:undefined,_0xc9d812=_0x517223[_0x29566a(0x224)]?_0x24aacc(_0x47acd2[_0x29566a(0x206)],_0x337b31,{},_0x47dd26):[],_0x41fd4b=_0x705f92({'env':_0x5917d4,'accessKey':_0x54e1cf,'appCode':_0x47acd2[_0x29566a(0x206)],'activeSkillCodes':_0x337b31,'pruneSkillCodes':_0x47dd26}),_0x3d951b=[];for(const _0x3013c3 of _0x146add){_0x3d951b['push'](_0x287a95(_0x3013c3,'personal',{'env':_0x5917d4,'accessKey':_0x54e1cf,'appCode':_0x47acd2['appCode'],'packageBytes':await downloadPackageIfNeeded(_0x3013c3,_0x29566a(0x22f),_0x47acd2[_0x29566a(0x206)],_0x533515)}));}for(const _0x319680 of _0x218f11){_0x3d951b[_0x29566a(0x23d)](_0x287a95(_0x319680,_0x29566a(0x219),{'env':_0x5917d4,'accessKey':_0x54e1cf,'appCode':_0x47acd2[_0x29566a(0x206)],'packageBytes':await downloadPackageIfNeeded(_0x319680,'company',_0x47acd2['appCode'],_0x533515)}));}const _0x397241=_0x517223[_0x29566a(0x224)]?_0x5e9915(_0x3d951b,_0x47acd2[_0x29566a(0x206)]):[],_0x32fa46=countLinkActions(_0x397241);return{'ok':!![],'data':{'appCode':_0x47acd2[_0x29566a(0x206)],'personal':_0x146add['length'],'company':_0x218f11[_0x29566a(0x200)],'materialized':_0x3d951b['length'],'links':{'total':_0x397241[_0x29566a(0x200)],'created':_0x32fa46[_0x29566a(0x1fa)]??0x0,'updated':_0x32fa46[_0x29566a(0x22e)]??0x0,'unchanged':_0x32fa46['unchanged']??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0xc9d812[_0x29566a(0x1fb)](_0x951f=>_0x951f[_0x29566a(0x216)]===_0x29566a(0x22c))[_0x29566a(0x200)],'cacheDirs':_0x41fd4b['filter'](_0x9d3573=>_0x9d3573[_0x29566a(0x216)]===_0x29566a(0x22c))[_0x29566a(0x200)],'skipped':[..._0xc9d812,..._0x41fd4b][_0x29566a(0x1fb)](_0x2b8aaa=>_0x2b8aaa[_0x29566a(0x216)]===_0x29566a(0x208))[_0x29566a(0x200)]},'skills':{'personal':_0x146add[_0x29566a(0x1fc)](summarizeRuntimeSkill),'company':_0x218f11[_0x29566a(0x1fc)](summarizeRuntimeSkill)}},'message':_0x517223[_0x29566a(0x224)]?_0x29566a(0x21e)+_0x146add[_0x29566a(0x200)]+_0x29566a(0x233)+_0x218f11[_0x29566a(0x200)]+_0x29566a(0x23b):_0x29566a(0x211)+_0x146add[_0x29566a(0x200)]+'\x20personal\x20and\x20'+_0x218f11[_0x29566a(0x200)]+_0x29566a(0x23b)};}function buildSkillCreatePlan(_0x2ab9c4,_0x99eb89,_0x52d309){const _0x55fa16=renderSkillTemplate({'skillName':_0x2ab9c4,'type':_0x99eb89}),_0x1f6d61=resolve(normalizeSkillTarget(_0x52d309));return{'rendered':_0x55fa16,'targetRoot':_0x1f6d61,'skillDir':resolve(_0x1f6d61,_0x55fa16['skillName'])};}function normalizeSkillTarget(_0x4d196f){const _0x4ec763=a35_0x346f54;return(_0x4d196f||DEFAULT_SKILL_TARGET)[_0x4ec763(0x22d)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x9218bc,_0x5b9be9){const _0x551187=a35_0x346f54;if(existsSync(_0x9218bc[_0x551187(0x247)])){const _0x3a4836=lstatSync(_0x9218bc[_0x551187(0x247)]);if(!_0x3a4836['isDirectory']()||_0x3a4836[_0x551187(0x1e9)]())throw CliErrors[_0x551187(0x240)](_0x551187(0x1ee)+_0x9218bc[_0x551187(0x247)]);if(!_0x5b9be9)throw CliErrors[_0x551187(0x240)](_0x551187(0x258)+_0x9218bc['skillDir'],'Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.');}for(const _0x31af4c of _0x9218bc[_0x551187(0x1fd)][_0x551187(0x212)]){const _0x40ef8d=resolve(_0x9218bc[_0x551187(0x247)],_0x31af4c['path']),_0x518bf9=dirname(_0x40ef8d);mkdirSync(_0x518bf9,{'recursive':!![]});if(existsSync(_0x40ef8d)&&lstatSync(_0x40ef8d)[_0x551187(0x1e9)]())throw CliErrors[_0x551187(0x240)](_0x551187(0x229)+_0x40ef8d);writeFileSync(_0x40ef8d,_0x31af4c[_0x551187(0x201)],_0x551187(0x215));}}async function downloadPackageIfNeeded(_0xad2972,_0x400b65,_0x298638,_0x4ba971){const _0x5049e0=a35_0x346f54;if(!isPackageBackedManifest(_0xad2972[_0x5049e0(0x212)]))return undefined;return _0x4ba971(_0x400b65,_0xad2972[_0x5049e0(0x218)],_0x298638);}function normalizePullScope(_0x3e1ced){const _0x30ca0a=a35_0x346f54,_0x16e341=_0x3e1ced[_0x30ca0a(0x22d)]();if(!_0x16e341)return _0x30ca0a(0x24a);if(_0x16e341===_0x30ca0a(0x24a))return _0x16e341;throw CliErrors[_0x30ca0a(0x240)](_0x30ca0a(0x241)+_0x3e1ced);}function normalizeListScope(_0x326a1f){const _0x48f474=a35_0x346f54,_0x57c4b1=_0x326a1f[_0x48f474(0x22d)]();if(!_0x57c4b1)return _0x48f474(0x24a);if(_0x57c4b1===_0x48f474(0x24a)||_0x57c4b1===_0x48f474(0x22f)||_0x57c4b1===_0x48f474(0x219)||_0x57c4b1===_0x48f474(0x21b)||_0x57c4b1===_0x48f474(0x24e))return _0x57c4b1;throw CliErrors['validation']('Unsupported\x20Skill\x20list\x20scope:\x20'+_0x326a1f);}function shouldListScope(_0x563bf1,_0x5bf742){const _0x3bbc56=a35_0x346f54;if(_0x563bf1==='all')return!![];if(_0x563bf1===_0x3bbc56(0x24a))return _0x5bf742===_0x3bbc56(0x22f)||_0x5bf742===_0x3bbc56(0x219)||_0x5bf742===_0x3bbc56(0x21b);return _0x563bf1===_0x5bf742;}function listScopeToRuntimeScopes(_0x4b6ade){const _0x49477c=a35_0x346f54;if(_0x4b6ade===_0x49477c(0x24e))return['personal','company'];if(_0x4b6ade==='user')return[_0x49477c(0x22f),_0x49477c(0x219)];if(_0x4b6ade==='public')return[];return[_0x4b6ade===_0x49477c(0x219)?_0x49477c(0x219):_0x4b6ade];}function a35_0x5c54(_0x1ab503,_0x48b3a8){_0x1ab503=_0x1ab503-0x1e6;const _0x4e64c8=a35_0x4e64();let _0x5c5472=_0x4e64c8[_0x1ab503];return _0x5c5472;}function listScopeToRemoteScope(_0x36ff28){return _0x36ff28;}function groupLocalRuntimeSkills(_0x247cc6){const _0x5ad806=a35_0x346f54;return{'personal':_0x247cc6['filter'](_0x367b44=>_0x367b44['scope']===_0x5ad806(0x22f)),'company':_0x247cc6[_0x5ad806(0x1fb)](_0x5ac080=>_0x5ac080[_0x5ad806(0x254)]===_0x5ad806(0x219)),'builtin':_0x247cc6[_0x5ad806(0x1fb)](_0x3e7e5d=>_0x3e7e5d[_0x5ad806(0x254)]==='builtin')};}function countLinkActions(_0x140f57){const _0x40fc82=a35_0x346f54;return _0x140f57[_0x40fc82(0x223)]((_0x2601c3,_0x152de8)=>{const _0x1617db=_0x40fc82;return _0x2601c3[_0x152de8[_0x1617db(0x216)]]=(_0x2601c3[_0x152de8[_0x1617db(0x216)]]??0x0)+0x1,_0x2601c3;},{});}function assertMultiFilePushPersisted(_0x1ce8eb,_0x487ce2){const _0x96a889=a35_0x346f54;if(!isMultiFileManifest(_0x1ce8eb))return;if(!isPackageBackedMultiFile(_0x487ce2[_0x96a889(0x212)]))throw CliErrors[_0x96a889(0x240)](_0x96a889(0x25d),_0x96a889(0x21f));if(_0x1ce8eb[_0x96a889(0x236)]!==_0x487ce2[_0x96a889(0x212)][_0x96a889(0x236)]||_0x1ce8eb[_0x96a889(0x252)]!==_0x487ce2['files'][_0x96a889(0x252)]||_0x1ce8eb[_0x96a889(0x21d)]!==_0x487ce2[_0x96a889(0x212)][_0x96a889(0x21d)]||!_0x487ce2[_0x96a889(0x212)]['ossPath']||manifestFileSignature(_0x1ce8eb)!==manifestFileSignature(_0x487ce2[_0x96a889(0x212)]))throw CliErrors['validation'](_0x96a889(0x202),_0x96a889(0x222));}function isPackageBackedManifest(_0x1d255d){const _0x288e2a=a35_0x346f54;return!!_0x1d255d&&typeof _0x1d255d==='object'&&!Array[_0x288e2a(0x23a)](_0x1d255d)&&typeof _0x1d255d[_0x288e2a(0x256)]==='string'&&_0x1d255d['ossPath'][_0x288e2a(0x200)]>0x0&&Array[_0x288e2a(0x23a)](_0x1d255d[_0x288e2a(0x212)]);}function isPackageBackedMultiFile(_0x4eba99){return isPackageBackedManifest(_0x4eba99)&&isMultiFileManifest(_0x4eba99);}function isMultiFileManifest(_0x3b9017){const _0x11cd81=a35_0x346f54;return!!_0x3b9017&&typeof _0x3b9017===_0x11cd81(0x20a)&&!Array[_0x11cd81(0x23a)](_0x3b9017)&&Array[_0x11cd81(0x23a)](_0x3b9017[_0x11cd81(0x212)])&&_0x3b9017[_0x11cd81(0x212)][_0x11cd81(0x232)](_0x3bde13=>_0x3bde13[_0x11cd81(0x225)]!==_0x11cd81(0x24c));}function a35_0x4e64(){const _0x86d371=['../../core/api-client.js','status','size','type','Pull\x20runtime\x20Skills\x20into\x20the\x20local\x20development\x20cache','created','filter','map','rendered','boolean','metadataPath','length','content','Backend\x20returned\x20a\x20different\x20multi-file\x20Skill\x20manifest\x20after\x20push.','Created\x20local\x20Skill\x20draft\x20','errors','1695372yHIbyN','appCode','3832216mqsDZm','skipped','validate','object','force','Skill\x20list\x20scope:\x20user,\x20personal,\x20company,\x20public,\x20or\x20all','remote','Listed\x20','pulledAt','6262700ksuFai','Pulled\x20','files','read','skill','utf8','action','envName','skillCode','company','skillName','public','linkedPaths','zipSize','Installed\x20','Upgrade\x20the\x20runtime\x20service\x20before\x20pushing\x20multi-file\x20Skill\x20directories.','dir','20cEUtxb','Check\x20the\x20runtime\x20service\x20Skill\x20file\x20manifest\x20storage\x20before\x20pulling\x20this\x20Skill.','reduce','installToAgent','path','string','76ZevuSF','contentHash','Refusing\x20to\x20overwrite\x20symlink:\x20','Overwrite\x20generated\x20files\x20when\x20the\x20Skill\x20directory\x20already\x20exists','14jXuzzn','removed','trim','updated','personal','production','join','some','\x20personal\x20and\x20','\x20local\x20Skill(s).','name','treeSha256','Compatibility\x20flag;\x20no\x20extra\x20checks\x20are\x20enabled','install','local','isArray','\x20company\x20Skill(s).','readonly','push','bool','Updated\x20personal\x20Skill\x20','validation','Unsupported\x20Skill\x20pull\x20scope:\x20','../../skills/runtime-skill-sync.js','authRequired','Skill\x20pull\x20scope:\x20user\x20(personal/company)','Skill\x20template\x20type','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','skillDir','create','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','user','Created\x20personal\x20Skill\x20','SKILL.md','warnings','all','code','Skill\x20name\x20using\x20lowercase\x20letters,\x20numbers,\x20and\x20hyphens','Push\x20a\x20local\x20Skill\x20directory\x20to\x20personal\x20runtime\x20Skill\x20scope','zipSha256','1588gokKkL','scope','Directory\x20that\x20will\x20contain\x20the\x20generated\x20Skill\x20directory','ossPath','tags','Skill\x20directory\x20already\x20exists:\x20','find','8167122EAumFC','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','version','Backend\x20did\x20not\x20persist\x20the\x20multi-file\x20Skill\x20manifest.','treeHash','accessKey','403431eZagdc','WRITE','isSymbolicLink','write','4291335OGhXSJ','Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','str','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','Skill\x20validation\x20passed.','target','strict','list','input','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.'];a35_0x4e64=function(){return _0x86d371;};return a35_0x4e64();}function manifestFileSignature(_0x3f81a3){const _0x4de745=a35_0x346f54;return[..._0x3f81a3[_0x4de745(0x212)]][_0x4de745(0x1fc)](_0x8cb66d=>_0x8cb66d[_0x4de745(0x225)]+'\x00'+_0x8cb66d['sha256']+'\x00'+_0x8cb66d[_0x4de745(0x1f7)])['sort']()[_0x4de745(0x231)]('\x00');}
|