@lovrabet/lovrabet-cli 2.1.1-beta.1 → 2.1.1
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 -1
- package/lib/commands/common/config-policy.js +1 -1
- package/lib/commands/common/constraints.js +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/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_0x24ea57=a27_0x5459;function a27_0x34e7(){const _0x550aec=['7604200BwRhIP','detail','trim','build','list','verbose','4661836RoWZJF','File\x20not\x20found:\x20','Create\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','Preview:\x20create\x20personal\x20knowledge-base\x20entry\x20\x22','6081348bqnjPP','topk','content','create','string','number','updateTime','utf8','isFinite','/client/knowledge-base/personal/','write','file','Maximum\x20number\x20of\x20search\x20hits\x20to\x20return','length','22859efQQBg','scope','7229349GocQPV','query','update','File\x20is\x20not\x20a\x20regular\x20file:\x20','str','Search\x20query\x20for\x20visible\x20company\x20and\x20personal\x20knowledge','version','POST','userId','Personal\x20knowledge-base\x20entry\x20ID','8tHJKxL','Search\x20visible\x20company\x20and\x20personal\x20knowledge\x20base\x20content','num','Show\x20one\x20personal\x20knowledge-base\x20entry\x20by\x20id','map','ragStatus','ragErrorMessage','title','description','score','List\x20personal\x20knowledge-base\x20entries\x20for\x20the\x20current\x20app','validation','Path\x20to\x20a\x20local\x20UTF-8\x20text\x20or\x20Markdown\x20file','328362nOKAcc','weightedScore','flag','docId','appCode','read','Update\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','metadata','search','58erSAHE','5iIZFEw','658668ocUorz','Preview:\x20update\x20personal\x20knowledge-base\x20entry\x20'];a27_0x34e7=function(){return _0x550aec;};return a27_0x34e7();}(function(_0x346f61,_0x131225){const _0x1b8a46=a27_0x5459,_0x1c71d4=_0x346f61();while(!![]){try{const _0x3fc1c9=parseInt(_0x1b8a46(0x1c1))/0x1*(parseInt(_0x1b8a46(0x1a5))/0x2)+parseInt(_0x1b8a46(0x1a7))/0x3+-parseInt(_0x1b8a46(0x1af))/0x4+-parseInt(_0x1b8a46(0x1a6))/0x5*(-parseInt(_0x1b8a46(0x1da))/0x6)+-parseInt(_0x1b8a46(0x1b3))/0x7*(-parseInt(_0x1b8a46(0x1cd))/0x8)+-parseInt(_0x1b8a46(0x1c3))/0x9+parseInt(_0x1b8a46(0x1a9))/0xa;if(_0x3fc1c9===_0x131225)break;else _0x1c71d4['push'](_0x1c71d4['shift']());}catch(_0x1ace28){_0x1c71d4['push'](_0x1c71d4['shift']());}}}(a27_0x34e7,0x91e9a));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';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';function a27_0x5459(_0x14114b,_0x351aab){_0x14114b=_0x14114b-0x1a3;const _0x34e771=a27_0x34e7();let _0x545927=_0x34e771[_0x14114b];return _0x545927;}const TITLE_FLAG={'name':'title','type':a27_0x24ea57(0x1b7),'required':!![],'description':'Personal\x20knowledge-base\x20entry\x20title'},FILE_FLAG={'name':a27_0x24ea57(0x1be),'type':a27_0x24ea57(0x1b7),'required':!![],'description':a27_0x24ea57(0x1d9)},QUERY_FLAG={'name':'query','type':a27_0x24ea57(0x1b7),'required':!![],'description':a27_0x24ea57(0x1c8)},TOPK_FLAG={'name':a27_0x24ea57(0x1b4),'type':a27_0x24ea57(0x1b8),'description':a27_0x24ea57(0x1bf)};function readKnowledgeFile(_0x5cd896){const _0x3ef2e9=a27_0x24ea57;if(!_0x5cd896)throw CliErrors[_0x3ef2e9(0x1d8)]('File\x20path\x20is\x20required.');if(!existsSync(_0x5cd896))throw CliErrors['validation'](_0x3ef2e9(0x1b0)+_0x5cd896);if(!statSync(_0x5cd896)['isFile']())throw CliErrors[_0x3ef2e9(0x1d8)](_0x3ef2e9(0x1c6)+_0x5cd896);return readFileSync(_0x5cd896,_0x3ef2e9(0x1ba));}function summarizePersonalItem(_0x539cc9){const _0x335993=a27_0x24ea57;return{'id':_0x539cc9['id'],'title':_0x539cc9[_0x335993(0x1d4)],'version':_0x539cc9[_0x335993(0x1c9)],'ragStatus':_0x539cc9[_0x335993(0x1d2)],'ragErrorMessage':_0x539cc9[_0x335993(0x1d3)],'updateTime':_0x539cc9[_0x335993(0x1b9)]};}function detailPersonalItem(_0x2a7c72){const _0x274a28=a27_0x24ea57;return{'id':_0x2a7c72['id'],'appCode':_0x2a7c72['appCode'],'scope':_0x2a7c72['scope'],'userId':_0x2a7c72[_0x274a28(0x1cb)],'title':_0x2a7c72['title'],'content':_0x2a7c72[_0x274a28(0x1b5)]??'','version':_0x2a7c72[_0x274a28(0x1c9)],'ragStatus':_0x2a7c72[_0x274a28(0x1d2)],'ragErrorMessage':_0x2a7c72[_0x274a28(0x1d3)],'createTime':_0x2a7c72['createTime'],'updateTime':_0x2a7c72[_0x274a28(0x1b9)]};}function summarizeSearchHit(_0x24174a){const _0x4d1e8e=a27_0x24ea57;return{'scope':_0x24174a[_0x4d1e8e(0x1c2)],'docId':_0x24174a[_0x4d1e8e(0x1dd)],'score':_0x24174a[_0x4d1e8e(0x1d6)],'weightedScore':_0x24174a[_0x4d1e8e(0x1db)],'content':_0x24174a['content'],'metadata':_0x24174a[_0x4d1e8e(0x1a3)]};}function readTopK(_0x3ef4bc){const _0x24f8d2=a27_0x24ea57,_0x3461ba=_0x3ef4bc[_0x24f8d2(0x1dc)]('topk');if(_0x3461ba===undefined||_0x3461ba===null||_0x3461ba==='')return undefined;const _0x4ddb11=_0x3ef4bc['num'](_0x24f8d2(0x1b4));if(!Number[_0x24f8d2(0x1bb)](_0x4ddb11)||_0x4ddb11<0x1)throw CliErrors[_0x24f8d2(0x1d8)]('--topk\x20must\x20be\x20a\x20positive\x20number.');return _0x4ddb11;}const kbList={'service':'kb','command':a27_0x24ea57(0x1ad),'description':a27_0x24ea57(0x1d7),'risk':'read','flags':[VERBOSE_FLAG],async 'execute'(_0x4f5466){const _0x1e5291=a27_0x24ea57,_0x9d1eda=await listPersonalKnowledgeBaseItems(_0x4f5466['appCode']);if(_0x4f5466['bool'](_0x1e5291(0x1ae)))return{'ok':!![],'data':{'total':_0x9d1eda[_0x1e5291(0x1c0)],'items':_0x9d1eda}};return{'ok':!![],'data':{'total':_0x9d1eda[_0x1e5291(0x1c0)],'items':_0x9d1eda[_0x1e5291(0x1d1)](summarizePersonalItem)}};}},kbDetail={'service':'kb','command':a27_0x24ea57(0x1aa),'description':a27_0x24ea57(0x1d0),'risk':a27_0x24ea57(0x1df),'flags':[{...ID_FLAG,'description':a27_0x24ea57(0x1cc)}],async 'execute'(_0xbca40d){const _0xb9ce14=a27_0x24ea57,_0x178caf=await getPersonalKnowledgeBaseItem(_0xbca40d['num']('id'),_0xbca40d[_0xb9ce14(0x1de)]);return{'ok':!![],'data':detailPersonalItem(_0x178caf)};}},kbCreate={'service':'kb','command':a27_0x24ea57(0x1b6),'description':a27_0x24ea57(0x1b1),'risk':'write','flags':[TITLE_FLAG,FILE_FLAG],async 'execute'(_0x4bf8a9){const _0x57f0ed=a27_0x24ea57,_0x1803ef=_0x4bf8a9[_0x57f0ed(0x1c7)]('title'),_0x16e863=readKnowledgeFile(_0x4bf8a9[_0x57f0ed(0x1c7)](_0x57f0ed(0x1be))),_0x5471e0=await createPersonalKnowledgeBaseItem(_0x4bf8a9[_0x57f0ed(0x1de)],{'title':_0x1803ef,'content':_0x16e863});return{'ok':!![],'data':summarizePersonalItem(_0x5471e0),'message':'Created\x20KB\x20entry\x20'+_0x5471e0['id']+'\x20('+_0x5471e0[_0x57f0ed(0x1d4)]+')'};},async 'dryRun'(_0x45d5e9){const _0xfaba62=a27_0x24ea57,_0x34ed17=_0x45d5e9['str']('title'),_0x15746d=readKnowledgeFile(_0x45d5e9[_0xfaba62(0x1c7)](_0xfaba62(0x1be)));return dryRun(_0xfaba62(0x1ca),'/client/knowledge-base/personal/create')['body']({'appCode':_0x45d5e9['appCode'],'title':_0x34ed17,'content':_0x15746d})[_0xfaba62(0x1d5)](_0xfaba62(0x1b2)+_0x34ed17+'\x22')[_0xfaba62(0x1ac)]();}},kbUpdate={'service':'kb','command':a27_0x24ea57(0x1c5),'description':a27_0x24ea57(0x1e0),'risk':a27_0x24ea57(0x1bd),'flags':[{...ID_FLAG,'description':a27_0x24ea57(0x1cc)},{...TITLE_FLAG,'required':![],'description':'Override\x20the\x20existing\x20entry\x20title'},FILE_FLAG],async 'execute'(_0x5149d3){const _0x28866e=a27_0x24ea57,_0x2f512b=_0x5149d3[_0x28866e(0x1cf)]('id'),_0x185987=readKnowledgeFile(_0x5149d3[_0x28866e(0x1c7)](_0x28866e(0x1be))),_0xc22633=_0x5149d3[_0x28866e(0x1c7)](_0x28866e(0x1d4))||(await getPersonalKnowledgeBaseItem(_0x2f512b,_0x5149d3[_0x28866e(0x1de)]))[_0x28866e(0x1d4)],_0x32df33=await updatePersonalKnowledgeBaseItem(_0x2f512b,_0x5149d3[_0x28866e(0x1de)],{'title':_0xc22633,'content':_0x185987});return{'ok':!![],'data':summarizePersonalItem(_0x32df33),'message':'Updated\x20KB\x20entry\x20'+_0x32df33['id']+'\x20('+_0x32df33['title']+')'};},async 'dryRun'(_0x3427c4){const _0x489b80=a27_0x24ea57,_0x2ed0c7=_0x3427c4[_0x489b80(0x1cf)]('id'),_0x3c2e67=readKnowledgeFile(_0x3427c4[_0x489b80(0x1c7)](_0x489b80(0x1be))),_0x489cbb=_0x3427c4[_0x489b80(0x1c7)]('title')||(await getPersonalKnowledgeBaseItem(_0x2ed0c7,_0x3427c4[_0x489b80(0x1de)]))[_0x489b80(0x1d4)];return dryRun(_0x489b80(0x1ca),_0x489b80(0x1bc)+_0x2ed0c7+'/update')['body']({'appCode':_0x3427c4[_0x489b80(0x1de)],'title':_0x489cbb,'content':_0x3c2e67})[_0x489b80(0x1d5)](_0x489b80(0x1a8)+_0x2ed0c7)[_0x489b80(0x1ac)]();}},kbSearch={'service':'kb','command':a27_0x24ea57(0x1a4),'description':a27_0x24ea57(0x1ce),'risk':a27_0x24ea57(0x1df),'flags':[QUERY_FLAG,TOPK_FLAG],async 'validate'(_0x275e53){const _0x40fe0d=a27_0x24ea57;if(!_0x275e53['str'](_0x40fe0d(0x1c4))['trim']())throw CliErrors[_0x40fe0d(0x1d8)]('Search\x20query\x20is\x20required.');readTopK(_0x275e53);},async 'execute'(_0x24826b){const _0x49e2ad=a27_0x24ea57,_0x488ff1=_0x24826b[_0x49e2ad(0x1c7)](_0x49e2ad(0x1c4))[_0x49e2ad(0x1ab)](),_0x11d229=readTopK(_0x24826b),_0x552745=await searchKnowledgeBase(_0x24826b[_0x49e2ad(0x1de)],{'query':_0x488ff1,'topK':_0x11d229});return{'ok':!![],'data':{'total':_0x552745[_0x49e2ad(0x1c0)],'hits':_0x552745[_0x49e2ad(0x1d1)](summarizeSearchHit)}};}};export const kbDefinitions=[kbList,kbDetail,kbCreate,kbUpdate,kbSearch];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a28_0x55e48f=a28_0x1f6b;(function(_0x563926,_0x5ab082){const _0x2059db=a28_0x1f6b,_0x4a6f4b=_0x563926();while(!![]){try{const _0x862d14=parseInt(_0x2059db(0x1ef))/0x1+-parseInt(_0x2059db(0x1e3))/0x2+parseInt(_0x2059db(0x1ed))/0x3+-parseInt(_0x2059db(0x1f1))/0x4*(-parseInt(_0x2059db(0x1fc))/0x5)+parseInt(_0x2059db(0x1fe))/0x6+-parseInt(_0x2059db(0x1fd))/0x7*(parseInt(_0x2059db(0x1f9))/0x8)+parseInt(_0x2059db(0x1eb))/0x9;if(_0x862d14===_0x5ab082)break;else _0x4a6f4b['push'](_0x4a6f4b['shift']());}catch(_0x3384ca){_0x4a6f4b['push'](_0x4a6f4b['shift']());}}}(a28_0x2009,0xd4904));function a28_0x1f6b(_0x5b1dcd,_0x40d32d){_0x5b1dcd=_0x5b1dcd-0x1e2;const _0x2009f5=a28_0x2009();let _0x1f6b32=_0x2009f5[_0x5b1dcd];return _0x1f6b32;}function a28_0x2009(){const _0x58f9eb=['length','24tciqbV','logs','\x20\x20\x20Duration:\x20','en-US','details','log','success','View\x20command\x20history\x20logs','6851528cHGKFb','*\x20Logs\x20cleared','duration','194355LVDIHP','14uOZwHC','8542956gZHuhL','write','toLocaleString','warn','1858538YqDSMh','message','\x20\x20\x20Time:\x20','readLogs','level','timestamp','stringify','show','6895341uefvYC','read','2898999xAmpvt','keys','123277iUYdZv'];a28_0x2009=function(){return _0x58f9eb;};return a28_0x2009();}import{logger}from'../../utils/logger.js';import{CLI_DISPLAY_NAME}from'../../constant/cli.js';function printLogs(_0x47ff7a){const _0x4fa2fc=a28_0x1f6b;if(_0x47ff7a[_0x4fa2fc(0x1f0)]===0x0){console['log']('*\x20No\x20logs\x20found');return;}console[_0x4fa2fc(0x1f6)]('*\x20'+CLI_DISPLAY_NAME+'\x20logs:\x0a'),_0x47ff7a['forEach']((_0x565e73,_0x1cadb4)=>{const _0x2e6240=_0x4fa2fc,_0x430411=new Date(_0x565e73[_0x2e6240(0x1e8)])[_0x2e6240(0x200)](_0x2e6240(0x1f4)),_0x1b0433=_0x565e73[_0x2e6240(0x1e7)]===_0x2e6240(0x1f7)?'√':_0x565e73[_0x2e6240(0x1e7)]==='error'?'×':_0x565e73['level']===_0x2e6240(0x1e2)?'!':'i';console[_0x2e6240(0x1f6)](_0x1cadb4+0x1+'.\x20'+_0x1b0433+'\x20['+_0x565e73['command']+']\x20'+_0x565e73[_0x2e6240(0x1e4)]),console[_0x2e6240(0x1f6)](_0x2e6240(0x1e5)+_0x430411),_0x565e73[_0x2e6240(0x1fb)]&&console[_0x2e6240(0x1f6)](_0x2e6240(0x1f3)+_0x565e73['duration']+'ms'),_0x565e73[_0x2e6240(0x1f5)]&&Object[_0x2e6240(0x1ee)](_0x565e73['details'])[_0x2e6240(0x1f0)]>0x0&&console[_0x2e6240(0x1f6)]('\x20\x20\x20Details:\x20'+JSON[_0x2e6240(0x1e9)](_0x565e73[_0x2e6240(0x1f5)],null,0x2)),console[_0x2e6240(0x1f6)]('');});}export const logsDefinitions=[{'service':a28_0x55e48f(0x1f2),'command':a28_0x55e48f(0x1ea),'description':a28_0x55e48f(0x1f8),'risk':a28_0x55e48f(0x1ec),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x5cb2ca){const _0x454f94=a28_0x55e48f;return printLogs(logger[_0x454f94(0x1e6)]()),{'ok':!![]};}},{'service':a28_0x55e48f(0x1f2),'command':'clear','description':'Clear\x20command\x20history\x20logs','risk':a28_0x55e48f(0x1ff),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x439582){const _0x4fcbd9=a28_0x55e48f;return logger['clearLogs'](),console[_0x4fcbd9(0x1f6)](_0x4fcbd9(0x1fa)),{'ok':!![]};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a29_0x45a965=a29_0x4b65;(function(_0x2f8412,_0x32fd83){const _0x1e9624=a29_0x4b65,_0x2beeb3=_0x2f8412();while(!![]){try{const _0x224884=-parseInt(_0x1e9624(0x1bc))/0x1+-parseInt(_0x1e9624(0x1d2))/0x2*(parseInt(_0x1e9624(0x1cf))/0x3)+-parseInt(_0x1e9624(0x1cd))/0x4*(-parseInt(_0x1e9624(0x1ac))/0x5)+-parseInt(_0x1e9624(0x1dc))/0x6*(-parseInt(_0x1e9624(0x1c7))/0x7)+parseInt(_0x1e9624(0x1e0))/0x8+-parseInt(_0x1e9624(0x1bb))/0x9*(parseInt(_0x1e9624(0x1c2))/0xa)+parseInt(_0x1e9624(0x1ea))/0xb;if(_0x224884===_0x32fd83)break;else _0x2beeb3['push'](_0x2beeb3['shift']());}catch(_0x330581){_0x2beeb3['push'](_0x2beeb3['shift']());}}}(a29_0x61d4,0xac124));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 a29_0x4b65(_0x509326,_0x1d719c){_0x509326=_0x509326-0x1ac;const _0x61d433=a29_0x61d4();let _0x4b659c=_0x61d433[_0x509326];return _0x4b659c;}import{CliErrors}from'../../errors.js';function a29_0x61d4(){const _0x53b8e2=['createUserId','config','updateTime','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','69140duJmUv','functionName','body','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','build','315GcoeJZ','Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file','isArray','gmtCreate','flag','write','1196872BACACT','read','129201dspEhf','length','name','58zwCtkv','num','Personal\x20BFF\x20script\x20file\x20is\x20blank.','/client/runtime-bff/personal/','createTime','Preview:\x20create\x20personal\x20BFF\x20','params','exec','isFile','Personal\x20BFF\x20script\x20ID','88902jlRnCT','personal-bff','description','scriptContent','5377528UQAePi','File\x20path\x20is\x20required.','scriptType','Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders','keys','validation','trim','Preview:\x20update\x20personal\x20BFF\x20','POST','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','16442052BIYyax','update','create','version','gmtModified','source-session-id','/client/runtime-bff/personal/create','20XiwjTM','sourceSessionId','map','Executed\x20personal\x20BFF\x20','appCode','detail','verbose','str','Show\x20one\x20personal\x20BFF\x20by\x20id','file','Updated\x20personal\x20BFF\x20','string','Created\x20personal\x20BFF\x20','test','File\x20not\x20found:\x20','1737FGxgsi','742411QfvwsQ','File\x20is\x20not\x20a\x20regular\x20file:\x20'];a29_0x61d4=function(){return _0x53b8e2;};return a29_0x61d4();}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_0x45a965(0x1b5),'type':a29_0x45a965(0x1b7),'description':a29_0x45a965(0x1c8)},FUNCTION_NAME_FLAG={'name':'name','type':'string','required':!![],'description':a29_0x45a965(0x1e3)},DESCRIPTION_FLAG={'name':a29_0x45a965(0x1de),'type':'string','description':'Personal\x20BFF\x20description'},SOURCE_SESSION_FLAG={'name':a29_0x45a965(0x1ef),'type':a29_0x45a965(0x1b7),'description':'Optional\x20source\x20RuntimeAgent\x20session\x20id'};function normalizeFunctionName(_0x30c11e){const _0x22d05d=a29_0x45a965,_0x1910a2=String(_0x30c11e||'')[_0x22d05d(0x1e6)]();if(!_0x1910a2||!FUNCTION_NAME_PATTERN[_0x22d05d(0x1b9)](_0x1910a2))throw CliErrors['validation'](_0x22d05d(0x1c1));return _0x1910a2;}function readScriptFile(_0x2b45f8){const _0x3eecda=a29_0x45a965;if(!_0x2b45f8)throw CliErrors['validation'](_0x3eecda(0x1e1));if(!existsSync(_0x2b45f8))throw CliErrors[_0x3eecda(0x1e5)](_0x3eecda(0x1ba)+_0x2b45f8);if(!statSync(_0x2b45f8)[_0x3eecda(0x1da)]())throw CliErrors[_0x3eecda(0x1e5)](_0x3eecda(0x1bd)+_0x2b45f8);const _0x440101=readFileSync(_0x2b45f8,'utf8');if(!_0x440101['trim']())throw CliErrors[_0x3eecda(0x1e5)](_0x3eecda(0x1d4));return _0x440101;}function optionalTrimmed(_0x3022de){const _0x5a8773=a29_0x45a965,_0x1fa23c=String(_0x3022de||'')[_0x5a8773(0x1e6)]();return _0x1fa23c||undefined;}function summarizeBff(_0x28083f){const _0xdca09a=a29_0x45a965;return{'id':_0x28083f['id'],'appCode':_0x28083f[_0xdca09a(0x1b0)],'functionName':_0x28083f[_0xdca09a(0x1c3)],'description':_0x28083f[_0xdca09a(0x1de)],'scriptType':_0x28083f[_0xdca09a(0x1e2)],'version':_0x28083f[_0xdca09a(0x1ed)],'gmtModified':_0x28083f['gmtModified'],'updateTime':_0x28083f[_0xdca09a(0x1c0)]};}function detailBff(_0x2624a3){const _0x32e331=a29_0x45a965;return{'id':_0x2624a3['id'],'appCode':_0x2624a3['appCode'],'functionName':_0x2624a3[_0x32e331(0x1c3)],'description':_0x2624a3[_0x32e331(0x1de)],'scriptType':_0x2624a3[_0x32e331(0x1e2)],'scriptContent':_0x2624a3[_0x32e331(0x1df)]??'','config':_0x2624a3[_0x32e331(0x1bf)],'version':_0x2624a3['version'],'createUserId':_0x2624a3[_0x32e331(0x1be)],'gmtCreate':_0x2624a3[_0x32e331(0x1ca)],'gmtModified':_0x2624a3[_0x32e331(0x1ee)],'createTime':_0x2624a3[_0x32e331(0x1d6)],'updateTime':_0x2624a3['updateTime']};}function buildCreateInput(_0x2f57bb){const _0x1fcbba=a29_0x45a965;return{'functionName':normalizeFunctionName(_0x2f57bb['str'](_0x1fcbba(0x1d1))),...optionalTrimmed(_0x2f57bb['str']('description'))?{'description':optionalTrimmed(_0x2f57bb[_0x1fcbba(0x1b3)]('description'))}:{},'scriptContent':readScriptFile(_0x2f57bb[_0x1fcbba(0x1b3)](_0x1fcbba(0x1b5))),...optionalTrimmed(_0x2f57bb[_0x1fcbba(0x1b3)]('source-session-id'))?{'sourceSessionId':optionalTrimmed(_0x2f57bb[_0x1fcbba(0x1b3)](_0x1fcbba(0x1ef)))}:{}};}function buildUpdateInput(_0x12b824){const _0x34ddf8=a29_0x45a965,_0x301cba={};optionalTrimmed(_0x12b824[_0x34ddf8(0x1b3)]('name'))&&(_0x301cba[_0x34ddf8(0x1c3)]=normalizeFunctionName(_0x12b824[_0x34ddf8(0x1b3)]('name')));_0x12b824[_0x34ddf8(0x1cb)](_0x34ddf8(0x1de))!==undefined&&(_0x301cba[_0x34ddf8(0x1de)]=_0x12b824[_0x34ddf8(0x1b3)](_0x34ddf8(0x1de)));optionalTrimmed(_0x12b824[_0x34ddf8(0x1b3)](_0x34ddf8(0x1b5)))&&(_0x301cba[_0x34ddf8(0x1df)]=readScriptFile(_0x12b824[_0x34ddf8(0x1b3)](_0x34ddf8(0x1b5))));_0x12b824[_0x34ddf8(0x1cb)](_0x34ddf8(0x1ef))!==undefined&&(_0x301cba[_0x34ddf8(0x1ad)]=_0x12b824[_0x34ddf8(0x1b3)](_0x34ddf8(0x1ef)));if(Object[_0x34ddf8(0x1e4)](_0x301cba)[_0x34ddf8(0x1d0)]===0x0)throw CliErrors[_0x34ddf8(0x1e5)]('personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.');return _0x301cba;}function parseExecParams(_0x30446d){const _0x42c950=a29_0x45a965,_0x3db8d4=parseJsonParams(_0x30446d)??{};if(Array[_0x42c950(0x1c9)](_0x3db8d4))throw CliErrors[_0x42c950(0x1e5)]('--params\x20must\x20be\x20a\x20JSON\x20object.');return _0x3db8d4;}const personalBffList={'service':a29_0x45a965(0x1dd),'command':'list','description':'List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','risk':a29_0x45a965(0x1ce),'flags':[VERBOSE_FLAG],async 'execute'(_0x95a6ae){const _0x50450e=a29_0x45a965,_0x14c951=await listPersonalBffs(_0x95a6ae[_0x50450e(0x1b0)]);return{'ok':!![],'data':{'total':_0x14c951[_0x50450e(0x1d0)],'items':_0x95a6ae['bool'](_0x50450e(0x1b2))?_0x14c951:_0x14c951[_0x50450e(0x1ae)](summarizeBff)}};}},personalBffDetail={'service':a29_0x45a965(0x1dd),'command':a29_0x45a965(0x1b1),'description':a29_0x45a965(0x1b4),'risk':a29_0x45a965(0x1ce),'flags':[{...ID_FLAG,'description':'Personal\x20BFF\x20script\x20ID'}],async 'execute'(_0x49fbfb){const _0x3bad4d=a29_0x45a965,_0xcc6051=await getPersonalBff(_0x49fbfb[_0x3bad4d(0x1d3)]('id'),_0x49fbfb[_0x3bad4d(0x1b0)]);return{'ok':!![],'data':detailBff(_0xcc6051)};}},personalBffCreate={'service':'personal-bff','command':a29_0x45a965(0x1ec),'description':a29_0x45a965(0x1c5),'risk':a29_0x45a965(0x1cc),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x4b9c13){const _0x422960=a29_0x45a965,_0x339c30=buildCreateInput(_0x4b9c13),_0x6b1029=await createPersonalBff(_0x4b9c13[_0x422960(0x1b0)],_0x339c30);return{'ok':!![],'data':detailBff(_0x6b1029),'message':_0x422960(0x1b8)+_0x6b1029['id']+(_0x6b1029[_0x422960(0x1c3)]?'\x20('+_0x6b1029[_0x422960(0x1c3)]+')':'')};},async 'dryRun'(_0x33778f){const _0x5952a5=a29_0x45a965,_0x48d795=buildCreateInput(_0x33778f);return dryRun(_0x5952a5(0x1e8),_0x5952a5(0x1f0))[_0x5952a5(0x1c4)]({'appCode':_0x33778f['appCode'],..._0x48d795})[_0x5952a5(0x1de)](_0x5952a5(0x1d7)+_0x48d795['functionName'])['build']();}},personalBffUpdate={'service':a29_0x45a965(0x1dd),'command':a29_0x45a965(0x1eb),'description':'Update\x20a\x20personal\x20BFF\x20by\x20id','risk':a29_0x45a965(0x1cc),'flags':[{...ID_FLAG,'description':a29_0x45a965(0x1db)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x570d55){const _0x5f36b9=a29_0x45a965,_0x445ad4=_0x570d55[_0x5f36b9(0x1d3)]('id'),_0x395544=buildUpdateInput(_0x570d55),_0x5aa9f5=await updatePersonalBff(_0x445ad4,_0x570d55[_0x5f36b9(0x1b0)],_0x395544);return{'ok':!![],'data':detailBff(_0x5aa9f5),'message':_0x5f36b9(0x1b6)+_0x5aa9f5['id']+(_0x5aa9f5[_0x5f36b9(0x1c3)]?'\x20('+_0x5aa9f5[_0x5f36b9(0x1c3)]+')':'')};},async 'dryRun'(_0xed0fae){const _0x531b9d=a29_0x45a965,_0x4e8f37=_0xed0fae['num']('id'),_0x1ba5fb=buildUpdateInput(_0xed0fae);return dryRun(_0x531b9d(0x1e8),_0x531b9d(0x1d5)+_0x4e8f37+'/update')[_0x531b9d(0x1c4)]({'appCode':_0xed0fae['appCode'],..._0x1ba5fb})[_0x531b9d(0x1de)](_0x531b9d(0x1e7)+_0x4e8f37)[_0x531b9d(0x1c6)]();}},personalBffExec={'service':'personal-bff','command':a29_0x45a965(0x1d9),'description':'Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','risk':'high-risk-write','flags':[{...ID_FLAG,'description':a29_0x45a965(0x1db)},{...PARAMS_FLAG,'description':a29_0x45a965(0x1e9)}],async 'validate'(_0x57d6c5){const _0x2d2d13=a29_0x45a965;parseExecParams(_0x57d6c5[_0x2d2d13(0x1b3)](_0x2d2d13(0x1d8)));},async 'execute'(_0x59a560){const _0x6879f4=a29_0x45a965,_0x175649=_0x59a560[_0x6879f4(0x1d3)]('id'),_0xdb4761=parseExecParams(_0x59a560[_0x6879f4(0x1b3)](_0x6879f4(0x1d8))),_0x3a4841=await executePersonalBff(_0x175649,_0x59a560['appCode'],_0xdb4761);return{'ok':!![],'data':{'result':_0x3a4841},'message':_0x6879f4(0x1af)+_0x175649};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
|
|
1
|
+
const a29_0x3c9db5=a29_0x4c60;(function(_0x93dae,_0x186879){const _0x209de9=a29_0x4c60,_0x10522a=_0x93dae();while(!![]){try{const _0x299657=parseInt(_0x209de9(0x187))/0x1+-parseInt(_0x209de9(0x193))/0x2*(parseInt(_0x209de9(0x192))/0x3)+parseInt(_0x209de9(0x16d))/0x4+parseInt(_0x209de9(0x17b))/0x5+-parseInt(_0x209de9(0x166))/0x6+parseInt(_0x209de9(0x169))/0x7*(-parseInt(_0x209de9(0x176))/0x8)+parseInt(_0x209de9(0x189))/0x9;if(_0x299657===_0x186879)break;else _0x10522a['push'](_0x10522a['shift']());}catch(_0x154f0c){_0x10522a['push'](_0x10522a['shift']());}}}(a29_0x225c,0xe1b88));function a29_0x4c60(_0x3bfedf,_0x5ebb9e){_0x3bfedf=_0x3bfedf-0x15a;const _0x225cec=a29_0x225c();let _0x4c6018=_0x225cec[_0x3bfedf];return _0x4c6018;}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';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_0x3c9db5(0x18a),'type':a29_0x3c9db5(0x16b),'description':'Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file'},FUNCTION_NAME_FLAG={'name':a29_0x3c9db5(0x16e),'type':a29_0x3c9db5(0x16b),'required':!![],'description':a29_0x3c9db5(0x185)},DESCRIPTION_FLAG={'name':a29_0x3c9db5(0x16c),'type':'string','description':a29_0x3c9db5(0x194)},SOURCE_SESSION_FLAG={'name':a29_0x3c9db5(0x197),'type':a29_0x3c9db5(0x16b),'description':a29_0x3c9db5(0x180)};function normalizeFunctionName(_0x583f22){const _0x537e24=a29_0x3c9db5,_0x1f0444=String(_0x583f22||'')[_0x537e24(0x160)]();if(!_0x1f0444||!FUNCTION_NAME_PATTERN[_0x537e24(0x168)](_0x1f0444))throw CliErrors[_0x537e24(0x186)](_0x537e24(0x183));return _0x1f0444;}function readScriptFile(_0x3c7cd8){const _0x2faf2f=a29_0x3c9db5;if(!_0x3c7cd8)throw CliErrors['validation']('File\x20path\x20is\x20required.');if(!existsSync(_0x3c7cd8))throw CliErrors[_0x2faf2f(0x186)](_0x2faf2f(0x165)+_0x3c7cd8);if(!statSync(_0x3c7cd8)['isFile']())throw CliErrors[_0x2faf2f(0x186)](_0x2faf2f(0x15f)+_0x3c7cd8);const _0x15317a=readFileSync(_0x3c7cd8,_0x2faf2f(0x18f));if(!_0x15317a[_0x2faf2f(0x160)]())throw CliErrors['validation'](_0x2faf2f(0x17f));return _0x15317a;}function optionalTrimmed(_0x36e198){const _0x530c56=a29_0x3c9db5,_0x174157=String(_0x36e198||'')[_0x530c56(0x160)]();return _0x174157||undefined;}function a29_0x225c(){const _0x374f58=['read','Preview:\x20create\x20personal\x20BFF\x20','13009272WjHXZl','Personal\x20BFF\x20script\x20ID','/client/runtime-bff/personal/','gmtModified','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','7261600XQojcE','params','Updated\x20personal\x20BFF\x20','scriptType','Personal\x20BFF\x20script\x20file\x20is\x20blank.','Optional\x20source\x20RuntimeAgent\x20session\x20id','create','isArray','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','map','Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders','validation','1848584npyPQo','bool','232785WqxWxq','file','/update','exec','write','personal-bff','utf8','sourceSessionId','createTime','3NUzWYR','2514982TlvCTK','Personal\x20BFF\x20description','body','num','source-session-id','/client/runtime-bff/personal/create','appCode','Preview:\x20update\x20personal\x20BFF\x20','POST','Show\x20one\x20personal\x20BFF\x20by\x20id','scriptContent','personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.','--params\x20must\x20be\x20a\x20JSON\x20object.','version','File\x20is\x20not\x20a\x20regular\x20file:\x20','trim','functionName','Executed\x20personal\x20BFF\x20','detail','updateTime','File\x20not\x20found:\x20','1311270VsztAb','Update\x20a\x20personal\x20BFF\x20by\x20id','test','7QlzcFR','flag','string','description','2799912wopOnB','name','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','build','config','high-risk-write','str'];a29_0x225c=function(){return _0x374f58;};return a29_0x225c();}function summarizeBff(_0x42d4f8){const _0x12d1c=a29_0x3c9db5;return{'id':_0x42d4f8['id'],'appCode':_0x42d4f8[_0x12d1c(0x199)],'functionName':_0x42d4f8['functionName'],'description':_0x42d4f8['description'],'scriptType':_0x42d4f8[_0x12d1c(0x17e)],'version':_0x42d4f8[_0x12d1c(0x15e)],'gmtModified':_0x42d4f8[_0x12d1c(0x179)],'updateTime':_0x42d4f8[_0x12d1c(0x164)]};}function detailBff(_0x4359b3){const _0x5cb146=a29_0x3c9db5;return{'id':_0x4359b3['id'],'appCode':_0x4359b3[_0x5cb146(0x199)],'functionName':_0x4359b3[_0x5cb146(0x161)],'description':_0x4359b3[_0x5cb146(0x16c)],'scriptType':_0x4359b3['scriptType'],'scriptContent':_0x4359b3[_0x5cb146(0x15b)]??'','config':_0x4359b3[_0x5cb146(0x171)],'version':_0x4359b3['version'],'createUserId':_0x4359b3['createUserId'],'gmtCreate':_0x4359b3['gmtCreate'],'gmtModified':_0x4359b3['gmtModified'],'createTime':_0x4359b3[_0x5cb146(0x191)],'updateTime':_0x4359b3[_0x5cb146(0x164)]};}function buildCreateInput(_0x464ffa){const _0x2cb9cb=a29_0x3c9db5;return{'functionName':normalizeFunctionName(_0x464ffa[_0x2cb9cb(0x173)](_0x2cb9cb(0x16e))),...optionalTrimmed(_0x464ffa[_0x2cb9cb(0x173)](_0x2cb9cb(0x16c)))?{'description':optionalTrimmed(_0x464ffa['str']('description'))}:{},'scriptContent':readScriptFile(_0x464ffa[_0x2cb9cb(0x173)](_0x2cb9cb(0x18a))),...optionalTrimmed(_0x464ffa[_0x2cb9cb(0x173)](_0x2cb9cb(0x197)))?{'sourceSessionId':optionalTrimmed(_0x464ffa[_0x2cb9cb(0x173)](_0x2cb9cb(0x197)))}:{}};}function buildUpdateInput(_0x14539b){const _0x36ab1f=a29_0x3c9db5,_0x4e2c74={};optionalTrimmed(_0x14539b[_0x36ab1f(0x173)](_0x36ab1f(0x16e)))&&(_0x4e2c74[_0x36ab1f(0x161)]=normalizeFunctionName(_0x14539b[_0x36ab1f(0x173)](_0x36ab1f(0x16e))));_0x14539b['flag'](_0x36ab1f(0x16c))!==undefined&&(_0x4e2c74[_0x36ab1f(0x16c)]=_0x14539b[_0x36ab1f(0x173)](_0x36ab1f(0x16c)));optionalTrimmed(_0x14539b['str'](_0x36ab1f(0x18a)))&&(_0x4e2c74[_0x36ab1f(0x15b)]=readScriptFile(_0x14539b[_0x36ab1f(0x173)]('file')));_0x14539b[_0x36ab1f(0x16a)](_0x36ab1f(0x197))!==undefined&&(_0x4e2c74[_0x36ab1f(0x190)]=_0x14539b[_0x36ab1f(0x173)](_0x36ab1f(0x197)));if(Object['keys'](_0x4e2c74)['length']===0x0)throw CliErrors[_0x36ab1f(0x186)](_0x36ab1f(0x15c));return _0x4e2c74;}function parseExecParams(_0x169bda){const _0xb1239c=a29_0x3c9db5,_0x1d7784=parseJsonParams(_0x169bda)??{};if(Array[_0xb1239c(0x182)](_0x1d7784))throw CliErrors['validation'](_0xb1239c(0x15d));return _0x1d7784;}const personalBffList={'service':a29_0x3c9db5(0x18e),'command':'list','description':'List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','risk':a29_0x3c9db5(0x174),'flags':[VERBOSE_FLAG],async 'execute'(_0x18cb08){const _0x2f48a4=a29_0x3c9db5,_0x4a42a1=await listPersonalBffs(_0x18cb08['appCode']);return{'ok':!![],'data':{'total':_0x4a42a1['length'],'items':_0x18cb08[_0x2f48a4(0x188)]('verbose')?_0x4a42a1:_0x4a42a1[_0x2f48a4(0x184)](summarizeBff)}};}},personalBffDetail={'service':a29_0x3c9db5(0x18e),'command':a29_0x3c9db5(0x163),'description':a29_0x3c9db5(0x15a),'risk':'read','flags':[{...ID_FLAG,'description':a29_0x3c9db5(0x177)}],async 'execute'(_0x46b118){const _0x505b1a=a29_0x3c9db5,_0x4b2429=await getPersonalBff(_0x46b118[_0x505b1a(0x196)]('id'),_0x46b118[_0x505b1a(0x199)]);return{'ok':!![],'data':detailBff(_0x4b2429)};}},personalBffCreate={'service':a29_0x3c9db5(0x18e),'command':a29_0x3c9db5(0x181),'description':a29_0x3c9db5(0x17a),'risk':a29_0x3c9db5(0x18d),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x2aac2f){const _0x4dd73d=a29_0x3c9db5,_0x460654=buildCreateInput(_0x2aac2f),_0x385e0c=await createPersonalBff(_0x2aac2f[_0x4dd73d(0x199)],_0x460654);return{'ok':!![],'data':detailBff(_0x385e0c),'message':'Created\x20personal\x20BFF\x20'+_0x385e0c['id']+(_0x385e0c[_0x4dd73d(0x161)]?'\x20('+_0x385e0c['functionName']+')':'')};},async 'dryRun'(_0x21e979){const _0x26d4a0=a29_0x3c9db5,_0x297a72=buildCreateInput(_0x21e979);return dryRun(_0x26d4a0(0x19b),_0x26d4a0(0x198))[_0x26d4a0(0x195)]({'appCode':_0x21e979[_0x26d4a0(0x199)],..._0x297a72})[_0x26d4a0(0x16c)](_0x26d4a0(0x175)+_0x297a72['functionName'])[_0x26d4a0(0x170)]();}},personalBffUpdate={'service':a29_0x3c9db5(0x18e),'command':'update','description':a29_0x3c9db5(0x167),'risk':a29_0x3c9db5(0x18d),'flags':[{...ID_FLAG,'description':a29_0x3c9db5(0x177)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x33baa3){const _0x424315=a29_0x3c9db5,_0x3859f2=_0x33baa3[_0x424315(0x196)]('id'),_0x22fbe6=buildUpdateInput(_0x33baa3),_0x2e47ea=await updatePersonalBff(_0x3859f2,_0x33baa3[_0x424315(0x199)],_0x22fbe6);return{'ok':!![],'data':detailBff(_0x2e47ea),'message':_0x424315(0x17d)+_0x2e47ea['id']+(_0x2e47ea[_0x424315(0x161)]?'\x20('+_0x2e47ea[_0x424315(0x161)]+')':'')};},async 'dryRun'(_0x5e0a84){const _0x4ca917=a29_0x3c9db5,_0x1f12d9=_0x5e0a84[_0x4ca917(0x196)]('id'),_0x4c63bd=buildUpdateInput(_0x5e0a84);return dryRun(_0x4ca917(0x19b),_0x4ca917(0x178)+_0x1f12d9+_0x4ca917(0x18b))[_0x4ca917(0x195)]({'appCode':_0x5e0a84['appCode'],..._0x4c63bd})[_0x4ca917(0x16c)](_0x4ca917(0x19a)+_0x1f12d9)[_0x4ca917(0x170)]();}},personalBffExec={'service':'personal-bff','command':a29_0x3c9db5(0x18c),'description':'Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','risk':a29_0x3c9db5(0x172),'flags':[{...ID_FLAG,'description':a29_0x3c9db5(0x177)},{...PARAMS_FLAG,'description':a29_0x3c9db5(0x16f)}],async 'validate'(_0x56a34f){const _0x3a3de2=a29_0x3c9db5;parseExecParams(_0x56a34f[_0x3a3de2(0x173)]('params'));},async 'execute'(_0x468bd0){const _0x2d9ca9=a29_0x3c9db5,_0x37ffbc=_0x468bd0[_0x2d9ca9(0x196)]('id'),_0x219778=parseExecParams(_0x468bd0['str'](_0x2d9ca9(0x17c))),_0x41ffb9=await executePersonalBff(_0x37ffbc,_0x468bd0[_0x2d9ca9(0x199)],_0x219778);return{'ok':!![],'data':{'result':_0x41ffb9},'message':_0x2d9ca9(0x162)+_0x37ffbc};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
|
package/lib/commands/registry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a30_0x5370c2=a30_0x3895;(function(_0x262422,_0x3eabbc){const _0x4d7a6b=a30_0x3895,_0x373425=_0x262422();while(!![]){try{const _0x5c32d0=-parseInt(_0x4d7a6b(0x9a))/0x1*(-parseInt(_0x4d7a6b(0x8b))/0x2)+-parseInt(_0x4d7a6b(0x8a))/0x3+-parseInt(_0x4d7a6b(0x99))/0x4*(-parseInt(_0x4d7a6b(0x94))/0x5)+parseInt(_0x4d7a6b(0x89))/0x6+parseInt(_0x4d7a6b(0x7e))/0x7*(-parseInt(_0x4d7a6b(0x7c))/0x8)+parseInt(_0x4d7a6b(0x80))/0x9+parseInt(_0x4d7a6b(0x8c))/0xa*(-parseInt(_0x4d7a6b(0x8d))/0xb);if(_0x5c32d0===_0x3eabbc)break;else _0x373425['push'](_0x373425['shift']());}catch(_0x1cdd5c){_0x373425['push'](_0x373425['shift']());}}}(a30_0x3021,0xcaa9a));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';function a30_0x3021(){const _0x4af137=['Logs','1842224ekBNyQ','1fkyYwX','Authentication','write','isSingleCommand','list','Knowledge\x20Base','command','Schema','set','Configuration','service','600UdWPsa','has','47110LsKjdS','\x20\x20[write]','2784186hfTShe','run','Artifacts','values','BFF\x20Scripts','SQL\x20Queries','risk','\x20\x20[high-risk-write]','map','4257102gPIREV','3062652TkQiPA','2607178vUvRxs','13483880DVWpeo','11POtTBi','get','defaultCommand','push','Instant\x20API','install','CLI\x20Built-in\x20Skill','15qtSfDk','Diagnostics','from','Personal\x20BFF'];a30_0x3021=function(){return _0x4af137;};return a30_0x3021();}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';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';function a30_0x3895(_0x5748ae,_0x3950ee){_0x5748ae=_0x5748ae-0x7b;const _0x302108=a30_0x3021();let _0x389511=_0x302108[_0x5748ae];return _0x389511;}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(_0x226d27){const _0x714620=a30_0x3895;for(const _0x384768 of _0x226d27){definitions[_0x714620(0xa2)](_0x384768[_0x714620(0x7b)]+':'+_0x384768[_0x714620(0xa0)],_0x384768);let _0x1c968b=serviceGroups[_0x714620(0x8e)](_0x384768[_0x714620(0x7b)]);!_0x1c968b&&(_0x1c968b=[],serviceGroups[_0x714620(0xa2)](_0x384768['service'],_0x1c968b)),_0x1c968b[_0x714620(0x90)](_0x384768);}}function registerService(_0x27c8dd,_0x2a1daa,_0x14ba86){const _0xfeedc6=a30_0x3895;registerDefinitions(_0x2a1daa);const _0x22ba72=_0x8f1893=>_0x8f1893==='read'?'':_0x8f1893===_0xfeedc6(0x9c)?_0xfeedc6(0x7f):_0xfeedc6(0x87),_0x488310={'service':_0x2a1daa[0x0][_0xfeedc6(0x7b)],'label':_0x27c8dd,'commands':_0x2a1daa[_0xfeedc6(0x88)](_0x5a5677=>({'command':_0x5a5677['command'],'description':_0x5a5677['description'],'tag':_0x22ba72(_0x5a5677[_0xfeedc6(0x86)])})),'defaultCommand':_0x14ba86?.[_0xfeedc6(0x8f)]??(_0x14ba86?.['isSingleCommand']?_0x2a1daa[0x0][_0xfeedc6(0xa0)]:undefined),'isSingleCommand':_0x14ba86?.[_0xfeedc6(0x9d)]};serviceRegistry[_0xfeedc6(0x90)](_0x488310),serviceByName[_0xfeedc6(0xa2)](_0x488310['service'],_0x488310);}registerService(a30_0x5370c2(0x9b),authDefinitions,{'defaultCommand':'login'}),registerService('API\x20Documentation',apiDocDefinitions),registerService('Datasets',datasetDefinitions),registerService(a30_0x5370c2(0x91),dataDefinitions),registerService(a30_0x5370c2(0x85),sqlDefinitions),registerService(a30_0x5370c2(0x84),bffDefinitions),registerService(a30_0x5370c2(0x97),personalBffDefinitions),registerService(a30_0x5370c2(0x82),artifactDefinitions),registerService(a30_0x5370c2(0x9f),kbDefinitions),registerService('App\x20Management',appDefinitions,{'defaultCommand':a30_0x5370c2(0x9e)}),registerService('Workspace',workspaceDefinitions),registerService(a30_0x5370c2(0xa3),configDefinitions,{'defaultCommand':a30_0x5370c2(0x9e)}),registerService('Service\x20Tree',serviceDefinitions,{'defaultCommand':'list'}),registerService('Skills',skillDefinitions,{'defaultCommand':a30_0x5370c2(0x92)}),registerService(a30_0x5370c2(0x93),cliSkillDefinitions,{'defaultCommand':a30_0x5370c2(0x92)}),registerService('Self\x20Update',[updateDefinition],{'defaultCommand':a30_0x5370c2(0x81),'isSingleCommand':!![]}),registerService(a30_0x5370c2(0x95),[doctorDefinition],{'isSingleCommand':!![]}),registerService(a30_0x5370c2(0xa1),[schemaDefinition],{'isSingleCommand':!![]}),registerService(a30_0x5370c2(0x98),logsDefinitions,{'defaultCommand':'show'});export function findDefinition(_0x24b2ca,_0x263d9b){const _0x3bcb84=a30_0x5370c2;return definitions[_0x3bcb84(0x8e)](_0x24b2ca+':'+_0x263d9b);}export function isKnownService(_0x16898f){const _0x5313dd=a30_0x5370c2;return serviceByName[_0x5313dd(0x7d)](_0x16898f);}export function getServiceEntry(_0x27c754){const _0x4851bd=a30_0x5370c2;return serviceByName[_0x4851bd(0x8e)](_0x27c754);}export function getAllDefinitions(){const _0x9f72ff=a30_0x5370c2;return Array[_0x9f72ff(0x96)](definitions[_0x9f72ff(0x83)]());}
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a31_0x42ae1d=a31_0xe7dc;(function(_0x49cefd,_0x88781a){const _0xdcf813=a31_0xe7dc,_0x3a9b46=_0x49cefd();while(!![]){try{const _0x3a99cd=-parseInt(_0xdcf813(0x187))/0x1*(parseInt(_0xdcf813(0x184))/0x2)+parseInt(_0xdcf813(0x18a))/0x3+-parseInt(_0xdcf813(0x17d))/0x4*(-parseInt(_0xdcf813(0x17f))/0x5)+-parseInt(_0xdcf813(0x180))/0x6*(parseInt(_0xdcf813(0x185))/0x7)+parseInt(_0xdcf813(0x182))/0x8+-parseInt(_0xdcf813(0x186))/0x9*(-parseInt(_0xdcf813(0x188))/0xa)+parseInt(_0xdcf813(0x181))/0xb*(-parseInt(_0xdcf813(0x17e))/0xc);if(_0x3a99cd===_0x88781a)break;else _0x3a9b46['push'](_0x3a9b46['shift']());}catch(_0x3f802){_0x3a9b46['push'](_0x3a9b46['shift']());}}}(a31_0x56c6,0xd6a8e));function a31_0x56c6(){const _0x3ec022=['1INaqUL','10KqlAKx','read','4084167XyFiHX','180876FfKBxT','12WgXFYF','175vApVKa','1272036XFGbOz','20626012ZhrdoQ','13157232EDYMyp','export','2405782FVNlPQ','42YMqGOk','5765013gtdSvi'];a31_0x56c6=function(){return _0x3ec022;};return a31_0x56c6();}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x551918){const _0x373b24=await buildSchemaPayload();return{'ok':!![],'data':_0x373b24};}function a31_0xe7dc(_0x16ed3b,_0x2df7cf){_0x16ed3b=_0x16ed3b-0x17d;const _0x56c6cd=a31_0x56c6();let _0xe7dc6=_0x56c6cd[_0x16ed3b];return _0xe7dc6;}export const schemaDefinition={'service':'schema','command':a31_0x42ae1d(0x183),'description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':a31_0x42ae1d(0x189),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x52581b,_0x46c852){const _0x54e695=a32_0x36ac,_0x29b294=_0x52581b();while(!![]){try{const _0x5bda1d=-parseInt(_0x54e695(0xaa))/0x1+parseInt(_0x54e695(0xcc))/0x2+-parseInt(_0x54e695(0x9b))/0x3+-parseInt(_0x54e695(0x9e))/0x4*(-parseInt(_0x54e695(0xba))/0x5)+parseInt(_0x54e695(0xd1))/0x6*(-parseInt(_0x54e695(0xa8))/0x7)+-parseInt(_0x54e695(0xe0))/0x8*(-parseInt(_0x54e695(0xc0))/0x9)+-parseInt(_0x54e695(0xb1))/0xa;if(_0x5bda1d===_0x46c852)break;else _0x29b294['push'](_0x29b294['shift']());}catch(_0x332b05){_0x29b294['push'](_0x29b294['shift']());}}}(a32_0x5baf,0xd6bb5));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(_0x20f433,_0x2d920f){const _0x2c8b73=a32_0x36ac,_0x115d29=listLocalServiceTrees();let _0x45c823;for(const _0x2df595 of _0x115d29){const _0x330b6b=matchServiceTreeCommand(_0x2df595,_0x20f433);if(!_0x330b6b)continue;(!_0x45c823||_0x330b6b[_0x2c8b73(0xd3)][_0x2c8b73(0xd9)][_0x2c8b73(0xde)]>_0x45c823[_0x2c8b73(0xd3)]['fullPath']['length'])&&(_0x45c823={'tree':_0x2df595,'command':_0x330b6b[_0x2c8b73(0xd3)],'remainingArgs':_0x330b6b[_0x2c8b73(0x98)]});}if(!_0x45c823)return undefined;const _0xaa008={..._0x2d920f};return applyAppBinding(_0x45c823[_0x2c8b73(0xbe)],_0x45c823[_0x2c8b73(0xd3)],_0xaa008),{'definition':buildDynamicCommandDefinition(_0x45c823['tree'],_0x45c823[_0x2c8b73(0xd3)]),'args':_0x45c823['remainingArgs'],'flags':_0xaa008,'tree':_0x45c823['tree'],'command':_0x45c823[_0x2c8b73(0xd3)]};}export function generateDynamicServiceHelp(_0x1dc73a){const _0x399143=a32_0x36ac,_0x4fca7d=listLocalServiceTrees()[_0x399143(0xe9)](_0x446d22=>_0x446d22['service'][_0x399143(0xac)]===_0x1dc73a);if(!_0x4fca7d)return undefined;const _0x1f8f4b=[CLI_BIN_NAME+'\x20'+_0x1dc73a+_0x399143(0xa0),'',_0x4fca7d[_0x399143(0xe4)][_0x399143(0xbf)]||_0x1dc73a,_0x4fca7d['service']['description']?'\x20\x20'+_0x4fca7d[_0x399143(0xe4)][_0x399143(0xa3)]:'','','Commands:',..._0x4fca7d[_0x399143(0xd7)][_0x399143(0xaf)](_0x328073=>{const _0x2428f9=_0x399143,_0x365f88=_0x328073[_0x2428f9(0xd9)][_0x2428f9(0xd6)](0x1)[_0x2428f9(0xc9)]('\x20'),_0x52b2e7=_0x328073['risk']===_0x2428f9(0xe8)?'':'\x20['+_0x328073[_0x2428f9(0xb0)]+']';return'\x20\x20'+_0x365f88[_0x2428f9(0xb2)](0x18)+'\x20'+(_0x328073[_0x2428f9(0xa3)]||'')+_0x52b2e7;}),'',_0x399143(0xdc)+CLI_BIN_NAME+_0x399143(0xca)+_0x1dc73a+_0x399143(0xeb)][_0x399143(0xc3)](Boolean);return _0x1f8f4b[_0x399143(0xc9)]('\x0a');}export function listDynamicServiceEntries(){const _0x2882a7=a32_0x36ac;return listLocalServices()[_0x2882a7(0xaf)](_0x3ed52a=>{const _0x3f01e7=_0x2882a7,_0x4ed61d=_0x3ed52a['normalizedManifest'];return{'service':_0x4ed61d[_0x3f01e7(0xe4)][_0x3f01e7(0xac)],'label':_0x4ed61d['service']['name']||_0x4ed61d[_0x3f01e7(0xe4)][_0x3f01e7(0xac)],'commands':_0x4ed61d[_0x3f01e7(0xd7)][_0x3f01e7(0xaf)](_0x19a738=>({'command':dynamicCommandName(_0x19a738),'description':_0x19a738[_0x3f01e7(0xa3)]||_0x3f01e7(0xc6)+_0x19a738[_0x3f01e7(0xce)],'tag':riskTag(_0x19a738['risk'])}))};});}export function getDynamicServiceEntry(_0x3fa66c){const _0x2071c8=a32_0x36ac;return listDynamicServiceEntries()[_0x2071c8(0xe9)](_0x49279f=>_0x49279f['service']===_0x3fa66c);}export function listDynamicServiceDefinitions(_0x5fefb3){const _0x31e5b9=a32_0x36ac;return listLocalServiceTrees()[_0x31e5b9(0xc3)](_0x4afce9=>!_0x5fefb3||_0x4afce9[_0x31e5b9(0xe4)][_0x31e5b9(0xac)]===_0x5fefb3)[_0x31e5b9(0x99)](_0x4e21d6=>_0x4e21d6['commands'][_0x31e5b9(0xaf)](_0x306e38=>buildDynamicCommandDefinition(_0x4e21d6,_0x306e38)));}export function getDynamicServiceDefinitions(_0x3b05a9){const _0x3c117d=a32_0x36ac,_0x1dea2c=listDynamicServiceDefinitions(_0x3b05a9);return _0x1dea2c[_0x3c117d(0xde)]>0x0?_0x1dea2c:undefined;}export function findDynamicServiceDefinition(_0x56d729,_0x1e65a1){const _0x58fad2=a32_0x36ac;return listDynamicServiceDefinitions(_0x56d729)[_0x58fad2(0xe9)](_0xa40250=>_0xa40250['command']===_0x1e65a1);}export function buildDynamicCommandDefinition(_0x1038b3,_0x4019f6){const _0x296730=a32_0x36ac;return{'service':_0x1038b3[_0x296730(0xe4)]['code'],'command':dynamicCommandName(_0x4019f6),'description':_0x4019f6[_0x296730(0xa3)]||_0x296730(0xc6)+_0x4019f6[_0x296730(0xce)],'risk':_0x4019f6[_0x296730(0xb0)],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x4019f6[_0x296730(0x8d)]['map'](_0x2dfbd9=>({'name':_0x2dfbd9[_0x296730(0xbf)],'description':_0x2dfbd9[_0x296730(0xa3)]||_0x2dfbd9[_0x296730(0xbf)],'required':_0x2dfbd9['required']})),'flags':_0x4019f6['flags']['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x4019f6),async 'dryRun'(_0x49f128){const _0x140013=_0x296730,_0x3dfb9c=await compilePlan(_0x4019f6,_0x49f128);return{'method':_0x140013(0x94),'url':_0x4019f6[_0x140013(0xce)],'body':{'target':targetPreview(_0x3dfb9c),'params':_0x3dfb9c[_0x140013(0xdf)]},'description':_0x140013(0xda)+_0x4019f6[_0x140013(0xce)]};},async 'execute'(_0x3ed72c){const _0x5df508=_0x296730,_0x295841=await compilePlan(_0x4019f6,_0x3ed72c),_0x341042=Date[_0x5df508(0xc7)](),_0x2e8083=await executePlan(_0x295841,_0x4019f6,_0x3ed72c),_0x56a0f2=Date[_0x5df508(0xc7)]()-_0x341042;return{'ok':!![],'data':{'service':_0x1038b3[_0x5df508(0xe4)],'command':_0x4019f6['cliPath'],'target':targetPreview(_0x295841),'result':_0x2e8083,'elapsed':_0x56a0f2},'message':_0x5df508(0x8c)+_0x4019f6[_0x5df508(0xce)]+_0x5df508(0xa1)+_0x56a0f2+'ms'};}};}function dynamicCommandName(_0x3aec09){const _0x27d38b=a32_0x36ac;return _0x3aec09[_0x27d38b(0xd9)][_0x27d38b(0xd6)](0x1)[_0x27d38b(0xc9)]('\x20');}function riskTag(_0x564038){const _0x2a7d6e=a32_0x36ac;return _0x564038==='read'?'':_0x2a7d6e(0xbd)+_0x564038+']';}function flagToCommandFlag(_0x189715){const _0x2ff691=a32_0x36ac;return{'name':_0x189715[_0x2ff691(0xb5)],'type':_0x189715[_0x2ff691(0xab)]===_0x2ff691(0xd2)?_0x2ff691(0x93):_0x189715[_0x2ff691(0xab)],'description':_0x189715[_0x2ff691(0xa3)]||_0x189715['name'],'required':_0x189715['required'],'default':isPrimitiveFlagDefault(_0x189715[_0x2ff691(0xdd)])?_0x189715[_0x2ff691(0xdd)]:undefined,'enum':_0x189715[_0x2ff691(0xc1)]};}async function compilePlan(_0x4606e0,_0x5c1452){const _0x3cbd21=a32_0x36ac;return compileServiceTreeCommand(_0x4606e0,{'flags':_0x5c1452[_0x3cbd21(0x9d)],'args':_0x5c1452[_0x3cbd21(0x8d)],'context':await buildServiceContext(_0x4606e0,_0x5c1452)});}async function buildServiceContext(_0x3ad199,_0x3e436e){const _0x410f79=a32_0x36ac,_0x2aa0b0={'appCode':_0x3e436e['appCode'],'env':_0x3e436e[_0x410f79(0xc4)],'envName':_0x3e436e[_0x410f79(0xc4)]};if(!usesRuntimeContext(_0x3ad199))return _0x2aa0b0;const _0x10be1f=await getLoginUserInfo(),_0x48a64b=pickFirst(_0x10be1f[_0x410f79(0x8b)],_0x10be1f['id']);return{..._0x2aa0b0,'user':_0x10be1f,'userId':_0x48a64b,'id':_0x10be1f['id'],'username':pickFirst(_0x10be1f[_0x410f79(0xbc)],_0x10be1f[_0x410f79(0xea)],_0x10be1f[_0x410f79(0x97)]),'userName':_0x10be1f['userName'],'nickname':pickFirst(_0x10be1f['nickname'],_0x10be1f[_0x410f79(0xa4)]),'nickName':_0x10be1f[_0x410f79(0xa4)],'tenantCode':_0x10be1f[_0x410f79(0x91)],'employeeId':_0x10be1f['employeeId']};}function a32_0x36ac(_0x232fd7,_0x1d5bd0){_0x232fd7=_0x232fd7-0x8b;const _0x5baf77=a32_0x5baf();let _0x36ac68=_0x5baf77[_0x232fd7];return _0x36ac68;}function usesRuntimeContext(_0x2c381d){const _0x25f5f7=a32_0x36ac;return _0x2c381d[_0x25f5f7(0xa7)]['some'](_0x8ed734=>typeof _0x8ed734[_0x25f5f7(0xb6)]===_0x25f5f7(0x93)&&(_0x8ed734[_0x25f5f7(0xb6)][_0x25f5f7(0x90)]('context.')||_0x8ed734['source'][_0x25f5f7(0x90)](_0x25f5f7(0xe1))));}function pickFirst(..._0xd0177a){const _0x469ab7=a32_0x36ac;return _0xd0177a[_0x469ab7(0xe9)](_0x51733d=>_0x51733d!==undefined&&_0x51733d!==null);}async function executePlan(_0x5e26b4,_0x5dbc64,_0x324ec){const _0x1b3a3b=a32_0x36ac;if(_0x5e26b4[_0x1b3a3b(0xc2)]==='data'){const _0x355d13=await resolveDatasetCode(_0x5e26b4,_0x5dbc64,_0x324ec);return executeData(_0x355d13,_0x5e26b4[_0x1b3a3b(0xd3)],_0x5e26b4[_0x1b3a3b(0xdf)]);}if(_0x5e26b4[_0x1b3a3b(0xc2)]===_0x1b3a3b(0x9f)){if(!_0x5e26b4[_0x1b3a3b(0xb4)])throw CliErrors[_0x1b3a3b(0x9c)]('Service\x20command\x20'+_0x5dbc64[_0x1b3a3b(0xce)]+_0x1b3a3b(0xbb));return executeSdkSql(_0x5e26b4[_0x1b3a3b(0xb4)],normalizeScalarParams(_0x5e26b4['params']));}if(_0x5e26b4['kind']==='bff'){const _0x36b29a=_0x5e26b4['scriptName']||_0x5e26b4[_0x1b3a3b(0x8e)]||(_0x5e26b4[_0x1b3a3b(0xdb)]==null?'':String(_0x5e26b4[_0x1b3a3b(0xdb)]));if(!_0x36b29a)throw CliErrors['validation'](_0x1b3a3b(0x8c)+_0x5dbc64[_0x1b3a3b(0xce)]+_0x1b3a3b(0xae));return executeSdkBff(_0x36b29a,_0x5e26b4[_0x1b3a3b(0xdf)]);}throw CliErrors[_0x1b3a3b(0x9c)](_0x1b3a3b(0xb9)+_0x5e26b4[_0x1b3a3b(0xc2)]);}async function resolveDatasetCode(_0x4a2897,_0x4ae13c,_0x6254bc){const _0x531152=a32_0x36ac;if(_0x4a2897['datasetCode'])return _0x4a2897['datasetCode'];if(!_0x4a2897['datatable'])throw CliErrors['validation'](_0x531152(0x8c)+_0x4ae13c[_0x531152(0xce)]+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x2c9974=await listDatasets(_0x6254bc['appCode']),_0x416b48=_0x2c9974[_0x531152(0xe9)](_0x3c9d8b=>_0x3c9d8b['dbtableConfig']?.['tableName']===_0x4a2897[_0x531152(0xa2)]);if(!_0x416b48?.[_0x531152(0xac)])throw CliErrors['validation'](_0x531152(0xa9)+_0x4a2897[_0x531152(0xa2)]+_0x531152(0xd0)+_0x6254bc['appCode']+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x416b48[_0x531152(0xac)];}function applyAppBinding(_0xd65123,_0x8f55a7,_0x4017e6){const _0x207d2a=a32_0x36ac,_0x2f8d8b=_0x8f55a7[_0x207d2a(0xcd)][_0x207d2a(0xcb)];if(!_0x2f8d8b)return;const _0xa04615=_0xd65123[_0x207d2a(0x96)][_0x2f8d8b];if(!_0xa04615)throw CliErrors[_0x207d2a(0x9c)](_0x207d2a(0xa5)+_0x2f8d8b+_0x207d2a(0x8f)+_0x8f55a7[_0x207d2a(0xce)]+'.',_0x207d2a(0x9a));const _0x2d9b23=_0xa04615['appcode']||_0xa04615[_0x207d2a(0xe2)];_0x2d9b23&&!hasText(_0x4017e6['appcode'])&&(_0x4017e6[_0x207d2a(0xad)]=_0x2d9b23),_0xa04615[_0x207d2a(0x92)]&&!hasText(_0x4017e6[_0x207d2a(0x92)])&&!hasText(_0x4017e6[_0x207d2a(0xad)])&&(_0x4017e6[_0x207d2a(0x92)]=_0xa04615[_0x207d2a(0x92)]),_0xa04615[_0x207d2a(0x95)]&&!hasText(_0x4017e6[_0x207d2a(0x95)])&&(_0x4017e6[_0x207d2a(0x95)]=_0xa04615[_0x207d2a(0x95)]);}function renderDynamicCommandHelp(_0x241022){const _0x23f5d6=a32_0x36ac,_0x148108=['\x20\x20SERVICE\x20TREE\x20TARGET',_0x23f5d6(0xc8)+_0x241022[_0x23f5d6(0xcd)][_0x23f5d6(0xc2)],'\x20\x20\x20\x20command:\x20'+_0x241022[_0x23f5d6(0xcd)][_0x23f5d6(0xd3)]];if(_0x241022[_0x23f5d6(0xcd)]['datasetCode'])_0x148108['push']('\x20\x20\x20\x20datasetCode:\x20'+_0x241022[_0x23f5d6(0xcd)][_0x23f5d6(0xd4)]);if(_0x241022[_0x23f5d6(0xcd)][_0x23f5d6(0xa2)])_0x148108[_0x23f5d6(0xe3)](_0x23f5d6(0xa6)+_0x241022[_0x23f5d6(0xcd)][_0x23f5d6(0xa2)]);if(_0x241022[_0x23f5d6(0xcd)][_0x23f5d6(0xb4)])_0x148108[_0x23f5d6(0xe3)]('\x20\x20\x20\x20sqlCode:\x20'+_0x241022[_0x23f5d6(0xcd)][_0x23f5d6(0xb4)]);if(_0x241022[_0x23f5d6(0xcd)][_0x23f5d6(0xb7)])_0x148108[_0x23f5d6(0xe3)]('\x20\x20\x20\x20scriptName:\x20'+_0x241022[_0x23f5d6(0xcd)]['scriptName']);if(_0x241022['mapTo'][_0x23f5d6(0xde)]>0x0){_0x148108['push']('',_0x23f5d6(0xd8));for(const _0x156593 of _0x241022['mapTo']){_0x148108[_0x23f5d6(0xe3)](_0x23f5d6(0xe5)+(_0x156593[_0x23f5d6(0xb6)]||'const')+_0x23f5d6(0xcf)+_0x156593[_0x23f5d6(0xcd)]+(_0x156593[_0x23f5d6(0xe7)]?'.'+_0x156593['operator']:''));}}return _0x148108[_0x23f5d6(0xc9)]('\x0a');}function targetPreview(_0x5dd7e8){const _0x3f9b09=a32_0x36ac;return{'kind':_0x5dd7e8[_0x3f9b09(0xc2)],'command':_0x5dd7e8[_0x3f9b09(0xd3)],'appRef':_0x5dd7e8['appRef'],'datasetCode':_0x5dd7e8[_0x3f9b09(0xd4)],'datatable':_0x5dd7e8[_0x3f9b09(0xa2)],'sqlCode':_0x5dd7e8[_0x3f9b09(0xb4)],'bffCode':_0x5dd7e8[_0x3f9b09(0x8e)],'bffId':_0x5dd7e8[_0x3f9b09(0xdb)],'scriptName':_0x5dd7e8[_0x3f9b09(0xb7)]};}function normalizeScalarParams(_0x258890){const _0x180445=a32_0x36ac;return Object[_0x180445(0xc5)](Object[_0x180445(0xd5)](_0x258890)['filter'](([,_0x358d19])=>typeof _0x358d19===_0x180445(0x93)||typeof _0x358d19===_0x180445(0xb3)));}function a32_0x5baf(){const _0x239c2b=['ctx.','appCode','push','service','\x20\x20\x20\x20','trim','operator','read','find','userName','`\x20to\x20inspect\x20the\x20manifest.','userId','Service\x20command\x20','args','bffCode','\x22\x20in\x20service\x20command\x20','startsWith','tenantCode','app','string','SERVICE_TREE','env','appBindings','loginName','remainingArgs','flatMap','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','2265063rsDQqy','validation','rawFlags','8bnZLnx','sql','\x20<command>\x20[flags]','\x20completed\x20in\x20','datatable','description','nickName','Unknown\x20appRef\x20\x22','\x20\x20\x20\x20datatable:\x20','mapTo','4518150BPffsI','Cannot\x20resolve\x20datatable\x20\x22','644471MEndCp','type','code','appcode','\x20requires\x20target.scriptName.','map','risk','9771550jlwwNH','padEnd','number','sqlCode','cliName','source','scriptName','boolean','Unsupported\x20service\x20target\x20kind:\x20','3385790kQHDLi','\x20requires\x20target.sqlCode.','username','\x20\x20[','tree','name','9yAZWSi','enum','kind','filter','envName','fromEntries','Run\x20service\x20command\x20','now','\x20\x20\x20\x20kind:\x20\x20\x20\x20','join','\x20service\x20detail\x20--service\x20','appRef','1930240CcFIne','target','cliPath','\x20->\x20','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','6tmUrEh','json','command','datasetCode','entries','slice','commands','\x20\x20MAP\x20TO','fullPath','Preview\x20dynamic\x20service\x20command:\x20','bffId','Use\x20`','default','length','params','12657616xNhVPN'];a32_0x5baf=function(){return _0x239c2b;};return a32_0x5baf();}function hasText(_0x534fb5){const _0x310c60=a32_0x36ac;return typeof _0x534fb5===_0x310c60(0x93)&&_0x534fb5[_0x310c60(0xe6)]()['length']>0x0;}function isPrimitiveFlagDefault(_0x1559b4){const _0x30bcc3=a32_0x36ac;return _0x1559b4===undefined||typeof _0x1559b4==='string'||typeof _0x1559b4===_0x30bcc3(0xb3)||typeof _0x1559b4===_0x30bcc3(0xb8);}
|
|
1
|
+
(function(_0x3ac765,_0x3f0787){const _0x31f9f0=a32_0x24fb,_0x4029bf=_0x3ac765();while(!![]){try{const _0x3b159b=-parseInt(_0x31f9f0(0x1cc))/0x1*(parseInt(_0x31f9f0(0x18b))/0x2)+parseInt(_0x31f9f0(0x1e3))/0x3*(parseInt(_0x31f9f0(0x190))/0x4)+parseInt(_0x31f9f0(0x1b7))/0x5*(-parseInt(_0x31f9f0(0x187))/0x6)+-parseInt(_0x31f9f0(0x1c5))/0x7*(parseInt(_0x31f9f0(0x1a6))/0x8)+parseInt(_0x31f9f0(0x1ba))/0x9*(parseInt(_0x31f9f0(0x1e1))/0xa)+-parseInt(_0x31f9f0(0x194))/0xb+parseInt(_0x31f9f0(0x181))/0xc;if(_0x3b159b===_0x3f0787)break;else _0x4029bf['push'](_0x4029bf['shift']());}catch(_0x201df3){_0x4029bf['push'](_0x4029bf['shift']());}}}(a32_0x1425,0xc06d3));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(_0x2254b7,_0x15e0b1){const _0x1b8e00=a32_0x24fb,_0x480765=listLocalServiceTrees();let _0x595596;for(const _0x3ae4c6 of _0x480765){const _0x150d04=matchServiceTreeCommand(_0x3ae4c6,_0x2254b7);if(!_0x150d04)continue;(!_0x595596||_0x150d04[_0x1b8e00(0x1db)][_0x1b8e00(0x185)][_0x1b8e00(0x17a)]>_0x595596[_0x1b8e00(0x1db)][_0x1b8e00(0x185)][_0x1b8e00(0x17a)])&&(_0x595596={'tree':_0x3ae4c6,'command':_0x150d04['command'],'remainingArgs':_0x150d04['remainingArgs']});}if(!_0x595596)return undefined;const _0x423a3e={..._0x15e0b1};return applyAppBinding(_0x595596[_0x1b8e00(0x17b)],_0x595596[_0x1b8e00(0x1db)],_0x423a3e),{'definition':buildDynamicCommandDefinition(_0x595596['tree'],_0x595596[_0x1b8e00(0x1db)]),'args':_0x595596['remainingArgs'],'flags':_0x423a3e,'tree':_0x595596[_0x1b8e00(0x17b)],'command':_0x595596[_0x1b8e00(0x1db)]};}export function generateDynamicServiceHelp(_0x4ca05c){const _0x176d09=a32_0x24fb,_0x4a94c2=listLocalServiceTrees()['find'](_0x545dc3=>_0x545dc3['service'][_0x176d09(0x191)]===_0x4ca05c);if(!_0x4a94c2)return undefined;const _0x3e9481=[CLI_BIN_NAME+'\x20'+_0x4ca05c+_0x176d09(0x1b9),'',_0x4a94c2[_0x176d09(0x1dd)][_0x176d09(0x1be)]||_0x4ca05c,_0x4a94c2[_0x176d09(0x1dd)][_0x176d09(0x19f)]?'\x20\x20'+_0x4a94c2[_0x176d09(0x1dd)][_0x176d09(0x19f)]:'','',_0x176d09(0x17d),..._0x4a94c2['commands']['map'](_0x509fa1=>{const _0x39e9f5=_0x176d09,_0x1055a7=_0x509fa1[_0x39e9f5(0x185)][_0x39e9f5(0x19b)](0x1)[_0x39e9f5(0x1de)]('\x20'),_0x20e06e=_0x509fa1[_0x39e9f5(0x192)]==='read'?'':'\x20['+_0x509fa1['risk']+']';return'\x20\x20'+_0x1055a7[_0x39e9f5(0x182)](0x18)+'\x20'+(_0x509fa1[_0x39e9f5(0x19f)]||'')+_0x20e06e;}),'',_0x176d09(0x1c0)+CLI_BIN_NAME+_0x176d09(0x1ce)+_0x4ca05c+_0x176d09(0x1ab)][_0x176d09(0x1c8)](Boolean);return _0x3e9481[_0x176d09(0x1de)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x165809=>{const _0x1fcb03=a32_0x24fb,_0x33a6c3=_0x165809[_0x1fcb03(0x1c9)];return{'service':_0x33a6c3[_0x1fcb03(0x1dd)]['code'],'label':_0x33a6c3[_0x1fcb03(0x1dd)][_0x1fcb03(0x1be)]||_0x33a6c3[_0x1fcb03(0x1dd)][_0x1fcb03(0x191)],'commands':_0x33a6c3['commands'][_0x1fcb03(0x1a3)](_0x1a5bda=>({'command':dynamicCommandName(_0x1a5bda),'description':_0x1a5bda[_0x1fcb03(0x19f)]||_0x1fcb03(0x1b0)+_0x1a5bda['cliPath'],'tag':riskTag(_0x1a5bda[_0x1fcb03(0x192)])}))};});}export function getDynamicServiceEntry(_0x180516){const _0x4491ee=a32_0x24fb;return listDynamicServiceEntries()[_0x4491ee(0x18a)](_0x3dc13f=>_0x3dc13f['service']===_0x180516);}export function listDynamicServiceDefinitions(_0x26110b){const _0x1ae8a9=a32_0x24fb;return listLocalServiceTrees()['filter'](_0x28837c=>!_0x26110b||_0x28837c[_0x1ae8a9(0x1dd)][_0x1ae8a9(0x191)]===_0x26110b)[_0x1ae8a9(0x1d0)](_0x1cabcc=>_0x1cabcc[_0x1ae8a9(0x1cd)][_0x1ae8a9(0x1a3)](_0x37f640=>buildDynamicCommandDefinition(_0x1cabcc,_0x37f640)));}export function getDynamicServiceDefinitions(_0x3b52c4){const _0x4bc10e=a32_0x24fb,_0x2c5dd1=listDynamicServiceDefinitions(_0x3b52c4);return _0x2c5dd1[_0x4bc10e(0x17a)]>0x0?_0x2c5dd1:undefined;}export function findDynamicServiceDefinition(_0x7506eb,_0x5be0b0){const _0xc8bbcf=a32_0x24fb;return listDynamicServiceDefinitions(_0x7506eb)[_0xc8bbcf(0x18a)](_0x3ca36f=>_0x3ca36f[_0xc8bbcf(0x1db)]===_0x5be0b0);}export function buildDynamicCommandDefinition(_0x1aeb80,_0x18f505){const _0x17502c=a32_0x24fb;return{'service':_0x1aeb80[_0x17502c(0x1dd)][_0x17502c(0x191)],'command':dynamicCommandName(_0x18f505),'description':_0x18f505[_0x17502c(0x19f)]||_0x17502c(0x1b0)+_0x18f505[_0x17502c(0x1a7)],'risk':_0x18f505[_0x17502c(0x192)],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x18f505['args'][_0x17502c(0x1a3)](_0x27e12d=>({'name':_0x27e12d[_0x17502c(0x1be)],'description':_0x27e12d[_0x17502c(0x19f)]||_0x27e12d['name'],'required':_0x27e12d[_0x17502c(0x1e4)]})),'flags':_0x18f505[_0x17502c(0x1c2)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x18f505),async 'dryRun'(_0x21a67a){const _0x316cd4=_0x17502c,_0x36a000=await compilePlan(_0x18f505,_0x21a67a);return{'method':_0x316cd4(0x1a0),'url':_0x18f505[_0x316cd4(0x1a7)],'body':{'target':targetPreview(_0x36a000),'params':_0x36a000[_0x316cd4(0x1d7)]},'description':_0x316cd4(0x1ae)+_0x18f505[_0x316cd4(0x1a7)]};},async 'execute'(_0x3a8158){const _0x3e5999=_0x17502c,_0x50324c=await compilePlan(_0x18f505,_0x3a8158),_0x3f63fd=Date[_0x3e5999(0x193)](),_0x3753a6=await executePlan(_0x50324c,_0x18f505,_0x3a8158),_0x448b72=Date[_0x3e5999(0x193)]()-_0x3f63fd;return{'ok':!![],'data':{'service':_0x1aeb80[_0x3e5999(0x1dd)],'command':_0x18f505['cliPath'],'target':targetPreview(_0x50324c),'result':_0x3753a6,'elapsed':_0x448b72},'message':_0x3e5999(0x1d2)+_0x18f505[_0x3e5999(0x1a7)]+_0x3e5999(0x1d5)+_0x448b72+'ms'};}};}function a32_0x24fb(_0x1a2b1f,_0x57689f){_0x1a2b1f=_0x1a2b1f-0x17a;const _0x142592=a32_0x1425();let _0x24fb6b=_0x142592[_0x1a2b1f];return _0x24fb6b;}function dynamicCommandName(_0x4283bf){const _0x42eee0=a32_0x24fb;return _0x4283bf[_0x42eee0(0x185)][_0x42eee0(0x19b)](0x1)[_0x42eee0(0x1de)]('\x20');}function riskTag(_0x3364ec){const _0x7770b2=a32_0x24fb;return _0x3364ec===_0x7770b2(0x1bd)?'':_0x7770b2(0x19a)+_0x3364ec+']';}function flagToCommandFlag(_0x540408){const _0x49e8e7=a32_0x24fb;return{'name':_0x540408['cliName'],'type':_0x540408[_0x49e8e7(0x1a1)]===_0x49e8e7(0x18e)?'string':_0x540408['type'],'description':_0x540408[_0x49e8e7(0x19f)]||_0x540408['name'],'required':_0x540408['required'],'default':isPrimitiveFlagDefault(_0x540408[_0x49e8e7(0x1e0)])?_0x540408[_0x49e8e7(0x1e0)]:undefined,'enum':_0x540408[_0x49e8e7(0x1d3)]};}async function compilePlan(_0x3bc1ed,_0x12b2f5){const _0x913ebd=a32_0x24fb;return compileServiceTreeCommand(_0x3bc1ed,{'flags':_0x12b2f5[_0x913ebd(0x18c)],'args':_0x12b2f5[_0x913ebd(0x1a8)],'context':await buildServiceContext(_0x3bc1ed,_0x12b2f5)});}async function buildServiceContext(_0x27a5e1,_0x40830f){const _0xadf375=a32_0x24fb,_0x34c7a8={'appCode':_0x40830f['appCode'],'env':_0x40830f['envName'],'envName':_0x40830f['envName']};if(!usesRuntimeContext(_0x27a5e1))return _0x34c7a8;const _0x4b14d0=await getLoginUserInfo(),_0x482198=pickFirst(_0x4b14d0[_0xadf375(0x17c)],_0x4b14d0['id']);return{..._0x34c7a8,'user':_0x4b14d0,'userId':_0x482198,'id':_0x4b14d0['id'],'username':pickFirst(_0x4b14d0['username'],_0x4b14d0[_0xadf375(0x1bc)],_0x4b14d0[_0xadf375(0x196)]),'userName':_0x4b14d0[_0xadf375(0x1bc)],'nickname':pickFirst(_0x4b14d0['nickname'],_0x4b14d0[_0xadf375(0x18d)]),'nickName':_0x4b14d0[_0xadf375(0x18d)],'tenantCode':_0x4b14d0['tenantCode'],'employeeId':_0x4b14d0[_0xadf375(0x1c3)]};}function usesRuntimeContext(_0x293e21){const _0xff30d2=a32_0x24fb;return _0x293e21[_0xff30d2(0x17f)][_0xff30d2(0x198)](_0x2b2b7e=>typeof _0x2b2b7e[_0xff30d2(0x1b1)]===_0xff30d2(0x19c)&&(_0x2b2b7e[_0xff30d2(0x1b1)][_0xff30d2(0x1d6)](_0xff30d2(0x1b5))||_0x2b2b7e[_0xff30d2(0x1b1)]['startsWith'](_0xff30d2(0x1b4))));}function a32_0x1425(){const _0x45278e=['flags','employeeId','env','5481266DOeLRT','\x22\x20in\x20service\x20command\x20','\x20\x20SERVICE\x20TREE\x20TARGET','filter','normalizedManifest','\x20\x20\x20\x20datasetCode:\x20','kind','192968SRVztw','commands','\x20service\x20detail\x20--service\x20','dbtableConfig','flatMap','\x20\x20\x20\x20command:\x20','Service\x20command\x20','enum','Unsupported\x20service\x20target\x20kind:\x20','\x20completed\x20in\x20','startsWith','params','datasetCode','\x20\x20\x20\x20datatable:\x20','tableName','command','\x20requires\x20target.scriptName.','service','join','sql','default','20GMOXPp','target','6saBVtK','required','length','tree','userId','Commands:','bff','mapTo','number','25440504hSgYyn','padEnd','\x20\x20MAP\x20TO','push','fullPath','fromEntries','8226690ahQLPy','trim','validation','find','2WgtsJL','rawFlags','nickName','json','bffId','2075228Rkkpwg','code','risk','now','15898784eBROFd','Cannot\x20resolve\x20datatable\x20\x22','loginName','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','some','\x20->\x20','\x20\x20[','slice','string','\x20\x20\x20\x20','\x20\x20\x20\x20kind:\x20\x20\x20\x20','description','SERVICE_TREE','type','appRef','map','bffCode','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','8bLnYIU','cliPath','args','appcode','appCode','`\x20to\x20inspect\x20the\x20manifest.','data','sqlCode','Preview\x20dynamic\x20service\x20command:\x20','\x20\x20\x20\x20scriptName:\x20','Run\x20service\x20command\x20','source','scriptName','app','ctx.','context.','operator','5KBpGRe','Unknown\x20appRef\x20\x22','\x20<command>\x20[flags]','6403446LvxtBh','datatable','userName','read','name','const','Use\x20`','boolean'];a32_0x1425=function(){return _0x45278e;};return a32_0x1425();}function pickFirst(..._0x57116e){const _0x512036=a32_0x24fb;return _0x57116e[_0x512036(0x18a)](_0x1cfa95=>_0x1cfa95!==undefined&&_0x1cfa95!==null);}async function executePlan(_0x1172df,_0x422803,_0x1e0358){const _0x52af72=a32_0x24fb;if(_0x1172df[_0x52af72(0x1cb)]===_0x52af72(0x1ac)){const _0x52ebd7=await resolveDatasetCode(_0x1172df,_0x422803,_0x1e0358);return executeData(_0x52ebd7,_0x1172df[_0x52af72(0x1db)],_0x1172df['params']);}if(_0x1172df[_0x52af72(0x1cb)]===_0x52af72(0x1df)){if(!_0x1172df[_0x52af72(0x1ad)])throw CliErrors[_0x52af72(0x189)](_0x52af72(0x1d2)+_0x422803[_0x52af72(0x1a7)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x1172df[_0x52af72(0x1ad)],normalizeScalarParams(_0x1172df[_0x52af72(0x1d7)]));}if(_0x1172df[_0x52af72(0x1cb)]===_0x52af72(0x17e)){const _0x2a383=_0x1172df['scriptName']||_0x1172df[_0x52af72(0x1a4)]||(_0x1172df[_0x52af72(0x18f)]==null?'':String(_0x1172df[_0x52af72(0x18f)]));if(!_0x2a383)throw CliErrors[_0x52af72(0x189)](_0x52af72(0x1d2)+_0x422803[_0x52af72(0x1a7)]+_0x52af72(0x1dc));return executeSdkBff(_0x2a383,_0x1172df[_0x52af72(0x1d7)]);}throw CliErrors[_0x52af72(0x189)](_0x52af72(0x1d4)+_0x1172df['kind']);}async function resolveDatasetCode(_0xedbde6,_0x5afde,_0x3cb2df){const _0x1aa248=a32_0x24fb;if(_0xedbde6[_0x1aa248(0x1d8)])return _0xedbde6[_0x1aa248(0x1d8)];if(!_0xedbde6[_0x1aa248(0x1bb)])throw CliErrors[_0x1aa248(0x189)]('Service\x20command\x20'+_0x5afde['cliPath']+_0x1aa248(0x197));const _0x109b31=await listDatasets(_0x3cb2df[_0x1aa248(0x1aa)]),_0x37be5f=_0x109b31[_0x1aa248(0x18a)](_0x414b20=>_0x414b20[_0x1aa248(0x1cf)]?.[_0x1aa248(0x1da)]===_0xedbde6['datatable']);if(!_0x37be5f?.[_0x1aa248(0x191)])throw CliErrors[_0x1aa248(0x189)](_0x1aa248(0x195)+_0xedbde6[_0x1aa248(0x1bb)]+_0x1aa248(0x1a5)+_0x3cb2df[_0x1aa248(0x1aa)]+'.','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.');return _0x37be5f[_0x1aa248(0x191)];}function applyAppBinding(_0x5464ef,_0x408ca8,_0x47dabf){const _0x52e1ee=a32_0x24fb,_0x1cf5d3=_0x408ca8[_0x52e1ee(0x1e2)]['appRef'];if(!_0x1cf5d3)return;const _0x4e759d=_0x5464ef['appBindings'][_0x1cf5d3];if(!_0x4e759d)throw CliErrors['validation'](_0x52e1ee(0x1b8)+_0x1cf5d3+_0x52e1ee(0x1c6)+_0x408ca8[_0x52e1ee(0x1a7)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x4b2413=_0x4e759d[_0x52e1ee(0x1a9)]||_0x4e759d['appCode'];_0x4b2413&&!hasText(_0x47dabf[_0x52e1ee(0x1a9)])&&(_0x47dabf[_0x52e1ee(0x1a9)]=_0x4b2413),_0x4e759d[_0x52e1ee(0x1b3)]&&!hasText(_0x47dabf[_0x52e1ee(0x1b3)])&&!hasText(_0x47dabf[_0x52e1ee(0x1a9)])&&(_0x47dabf['app']=_0x4e759d[_0x52e1ee(0x1b3)]),_0x4e759d[_0x52e1ee(0x1c4)]&&!hasText(_0x47dabf[_0x52e1ee(0x1c4)])&&(_0x47dabf[_0x52e1ee(0x1c4)]=_0x4e759d[_0x52e1ee(0x1c4)]);}function renderDynamicCommandHelp(_0x224372){const _0x343dd8=a32_0x24fb,_0x181b32=[_0x343dd8(0x1c7),_0x343dd8(0x19e)+_0x224372['target']['kind'],_0x343dd8(0x1d1)+_0x224372[_0x343dd8(0x1e2)]['command']];if(_0x224372['target'][_0x343dd8(0x1d8)])_0x181b32[_0x343dd8(0x184)](_0x343dd8(0x1ca)+_0x224372[_0x343dd8(0x1e2)]['datasetCode']);if(_0x224372[_0x343dd8(0x1e2)][_0x343dd8(0x1bb)])_0x181b32[_0x343dd8(0x184)](_0x343dd8(0x1d9)+_0x224372[_0x343dd8(0x1e2)][_0x343dd8(0x1bb)]);if(_0x224372['target'][_0x343dd8(0x1ad)])_0x181b32[_0x343dd8(0x184)]('\x20\x20\x20\x20sqlCode:\x20'+_0x224372[_0x343dd8(0x1e2)][_0x343dd8(0x1ad)]);if(_0x224372[_0x343dd8(0x1e2)]['scriptName'])_0x181b32['push'](_0x343dd8(0x1af)+_0x224372[_0x343dd8(0x1e2)][_0x343dd8(0x1b2)]);if(_0x224372[_0x343dd8(0x17f)][_0x343dd8(0x17a)]>0x0){_0x181b32[_0x343dd8(0x184)]('',_0x343dd8(0x183));for(const _0x3e89f0 of _0x224372['mapTo']){_0x181b32[_0x343dd8(0x184)](_0x343dd8(0x19d)+(_0x3e89f0['source']||_0x343dd8(0x1bf))+_0x343dd8(0x199)+_0x3e89f0[_0x343dd8(0x1e2)]+(_0x3e89f0[_0x343dd8(0x1b6)]?'.'+_0x3e89f0[_0x343dd8(0x1b6)]:''));}}return _0x181b32['join']('\x0a');}function targetPreview(_0x3c92d4){const _0x1f0f13=a32_0x24fb;return{'kind':_0x3c92d4[_0x1f0f13(0x1cb)],'command':_0x3c92d4[_0x1f0f13(0x1db)],'appRef':_0x3c92d4[_0x1f0f13(0x1a2)],'datasetCode':_0x3c92d4[_0x1f0f13(0x1d8)],'datatable':_0x3c92d4[_0x1f0f13(0x1bb)],'sqlCode':_0x3c92d4[_0x1f0f13(0x1ad)],'bffCode':_0x3c92d4[_0x1f0f13(0x1a4)],'bffId':_0x3c92d4[_0x1f0f13(0x18f)],'scriptName':_0x3c92d4['scriptName']};}function normalizeScalarParams(_0x17995c){const _0x193961=a32_0x24fb;return Object[_0x193961(0x186)](Object['entries'](_0x17995c)[_0x193961(0x1c8)](([,_0x28fbe4])=>typeof _0x28fbe4==='string'||typeof _0x28fbe4===_0x193961(0x180)));}function hasText(_0x232d00){const _0x47f9ed=a32_0x24fb;return typeof _0x232d00===_0x47f9ed(0x19c)&&_0x232d00[_0x47f9ed(0x188)]()[_0x47f9ed(0x17a)]>0x0;}function isPrimitiveFlagDefault(_0x5d56a7){const _0x2857ab=a32_0x24fb;return _0x5d56a7===undefined||typeof _0x5d56a7===_0x2857ab(0x19c)||typeof _0x5d56a7===_0x2857ab(0x180)||typeof _0x5d56a7===_0x2857ab(0x1c1);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a33_0x52c295=a33_0xf5bb;(function(_0x2cb97d,_0x229dae){const _0x315344=a33_0xf5bb,_0xadd3f5=_0x2cb97d();while(!![]){try{const _0x2072c2=-parseInt(_0x315344(0x175))/0x1*(parseInt(_0x315344(0x146))/0x2)+-parseInt(_0x315344(0x14d))/0x3+parseInt(_0x315344(0x15a))/0x4+parseInt(_0x315344(0x148))/0x5+parseInt(_0x315344(0x16e))/0x6+-parseInt(_0x315344(0x15b))/0x7+parseInt(_0x315344(0x170))/0x8;if(_0x2072c2===_0x229dae)break;else _0xadd3f5['push'](_0xadd3f5['shift']());}catch(_0x278ec3){_0xadd3f5['push'](_0xadd3f5['shift']());}}}(a33_0x589a,0x9afdf));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a33_0x589a(){const _0x3faad1=['Removed\x20service\x20','warnings','Service\x20manifest\x20validation\x20passed.','commands','249726AcEXji','errors','2697075YKCHko','Updated','importedAt','target','risk','547125QoMztw','map','read','serviceCount','entry','required','registryPath','\x20service\x20','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','cliPath','reduce','string','WRITE','2317948fOcCvP','8474767YkysbN','Exported\x20service\x20','Local\x20service\x20code,\x20for\x20example\x20crm','filePath','replaced','imported','str','file','service','manifests','updated','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','source','\x20service(s).','normalizedManifest','serviceCode','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','registryIndex','length','342090QNOWUk','kind','10811504ckjWjS','Service\x20registry\x20validation\x20passed.','validate','list','write','4HSALsg','Imported\x20','registryServiceCode','Imported','flags','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Service\x20Tree\x20manifest\x20file\x20path','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','hash','\x20service(s),\x20updated\x20','import','version','detail','entries','report','name'];a33_0x589a=function(){return _0x3faad1;};return a33_0x589a();}const FILE_FLAG={'name':'file','type':a33_0x52c295(0x158),'required':!![],'description':a33_0x52c295(0x17b)},SERVICE_FLAG={'name':a33_0x52c295(0x163),'type':a33_0x52c295(0x158),'required':!![],'description':a33_0x52c295(0x15d),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x5a6881){const _0x331f22=a33_0x52c295;return{'serviceCode':_0x5a6881[_0x331f22(0x16a)],'name':_0x5a6881[_0x331f22(0x169)][_0x331f22(0x163)][_0x331f22(0x141)],'version':_0x5a6881[_0x331f22(0x13d)],'importedAt':_0x5a6881[_0x331f22(0x14a)],'source':_0x5a6881['source'],'commandCount':_0x5a6881[_0x331f22(0x169)]['commands']['length'],'commands':_0x5a6881[_0x331f22(0x169)][_0x331f22(0x145)]['map'](_0x2d9a57=>({'path':_0x2d9a57[_0x331f22(0x156)],'description':_0x2d9a57['description'],'risk':_0x2d9a57[_0x331f22(0x14c)],'target':_0x2d9a57[_0x331f22(0x14b)],'flags':_0x2d9a57[_0x331f22(0x179)]['map'](_0x227611=>({'name':_0x227611[_0x331f22(0x141)],'cliName':_0x227611['cliName'],'type':_0x227611['type'],'required':_0x227611[_0x331f22(0x152)]===!![]}))}))};}function a33_0xf5bb(_0x230fa0,_0xf88b1b){_0x230fa0=_0x230fa0-0x13c;const _0x589a3f=a33_0x589a();let _0xf5bb00=_0x589a3f[_0x230fa0];return _0xf5bb00;}function summarizeLoadedManifest(_0x22a12b){const _0x377ecd=a33_0x52c295;return{'service':_0x22a12b[_0x377ecd(0x169)]?.['service'],'version':_0x22a12b[_0x377ecd(0x169)]?.[_0x377ecd(0x13d)],'commandCount':_0x22a12b[_0x377ecd(0x169)]?.[_0x377ecd(0x145)][_0x377ecd(0x16d)]??0x0,'commands':_0x22a12b['normalizedManifest']?.[_0x377ecd(0x145)][_0x377ecd(0x14e)](_0x4ecdef=>({'path':_0x4ecdef[_0x377ecd(0x156)],'risk':_0x4ecdef['risk'],'target':_0x4ecdef[_0x377ecd(0x14b)]}))??[],'registryIndex':_0x22a12b[_0x377ecd(0x16c)],'registryServiceCode':_0x22a12b[_0x377ecd(0x177)],'errors':_0x22a12b[_0x377ecd(0x140)][_0x377ecd(0x147)],'warnings':_0x22a12b[_0x377ecd(0x140)]['warnings']};}export const serviceDefinitions=[{'service':a33_0x52c295(0x163),'command':a33_0x52c295(0x172),'description':a33_0x52c295(0x155),'risk':a33_0x52c295(0x14f),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x9720fe){const _0x7f65eb=a33_0x52c295,_0x18a91b=loadServiceManifestFromFile(_0x9720fe[_0x7f65eb(0x161)](_0x7f65eb(0x162)));if(!_0x18a91b[_0x7f65eb(0x140)]['ok'])return{'ok':![],'data':{'file':_0x18a91b[_0x7f65eb(0x15e)],'hash':_0x18a91b['hash'],'kind':_0x18a91b[_0x7f65eb(0x16f)],'serviceCount':_0x18a91b['manifests'][_0x7f65eb(0x16d)],'services':_0x18a91b['manifests'][_0x7f65eb(0x14e)](summarizeLoadedManifest),'errors':_0x18a91b[_0x7f65eb(0x140)][_0x7f65eb(0x147)],'warnings':_0x18a91b[_0x7f65eb(0x140)][_0x7f65eb(0x143)]},'message':formatValidationFailure(_0x18a91b[_0x7f65eb(0x140)])};if(_0x18a91b['kind']==='registry'||_0x18a91b[_0x7f65eb(0x164)][_0x7f65eb(0x16d)]!==0x1)return{'ok':!![],'data':{'file':_0x18a91b[_0x7f65eb(0x15e)],'hash':_0x18a91b['hash'],'kind':_0x18a91b['kind'],'serviceCount':_0x18a91b[_0x7f65eb(0x164)][_0x7f65eb(0x16d)],'commandCount':_0x18a91b[_0x7f65eb(0x164)][_0x7f65eb(0x157)]((_0x67a381,_0x40c716)=>_0x67a381+(_0x40c716['normalizedManifest']?.[_0x7f65eb(0x145)][_0x7f65eb(0x16d)]??0x0),0x0),'services':_0x18a91b[_0x7f65eb(0x164)]['map'](summarizeLoadedManifest),'warnings':_0x18a91b[_0x7f65eb(0x140)][_0x7f65eb(0x143)]},'message':_0x7f65eb(0x171)};return{'ok':!![],'data':{'file':_0x18a91b[_0x7f65eb(0x15e)],'hash':_0x18a91b[_0x7f65eb(0x17d)],'kind':_0x18a91b[_0x7f65eb(0x16f)],'service':_0x18a91b[_0x7f65eb(0x169)]?.[_0x7f65eb(0x163)],'version':_0x18a91b[_0x7f65eb(0x169)]?.[_0x7f65eb(0x13d)],'commandCount':_0x18a91b[_0x7f65eb(0x169)]?.[_0x7f65eb(0x145)][_0x7f65eb(0x16d)]??0x0,'commands':_0x18a91b[_0x7f65eb(0x169)]?.[_0x7f65eb(0x145)][_0x7f65eb(0x14e)](_0x3b14f5=>({'path':_0x3b14f5[_0x7f65eb(0x156)],'risk':_0x3b14f5[_0x7f65eb(0x14c)],'target':_0x3b14f5['target']})),'warnings':_0x18a91b[_0x7f65eb(0x140)]['warnings']},'message':_0x7f65eb(0x144)};}},{'service':a33_0x52c295(0x163),'command':a33_0x52c295(0x13c),'description':a33_0x52c295(0x166),'risk':a33_0x52c295(0x174),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x3c695d){const _0x4de7bb=a33_0x52c295,_0x2c046a=loadServiceManifestFromFile(_0x3c695d['str']('file'));return{'method':_0x4de7bb(0x159),'url':getServiceRegistryPath(),'body':{'file':_0x2c046a[_0x4de7bb(0x15e)],'hash':_0x2c046a[_0x4de7bb(0x17d)],'kind':_0x2c046a[_0x4de7bb(0x16f)],'ok':_0x2c046a[_0x4de7bb(0x140)]['ok'],'service':_0x2c046a[_0x4de7bb(0x169)]?.[_0x4de7bb(0x163)],'version':_0x2c046a[_0x4de7bb(0x169)]?.['version'],'serviceCount':_0x2c046a[_0x4de7bb(0x164)][_0x4de7bb(0x16d)],'services':_0x2c046a[_0x4de7bb(0x164)][_0x4de7bb(0x14e)](_0xf7ed4f=>({'service':_0xf7ed4f[_0x4de7bb(0x169)]?.[_0x4de7bb(0x163)],'version':_0xf7ed4f[_0x4de7bb(0x169)]?.[_0x4de7bb(0x13d)],'commandCount':_0xf7ed4f[_0x4de7bb(0x169)]?.[_0x4de7bb(0x145)][_0x4de7bb(0x16d)]??0x0,'errors':_0xf7ed4f[_0x4de7bb(0x140)]['errors']})),'errors':_0x2c046a[_0x4de7bb(0x140)]['errors'],'commandCount':_0x2c046a['normalizedManifest']?.[_0x4de7bb(0x145)][_0x4de7bb(0x16d)]??0x0},'description':_0x4de7bb(0x16b)};},async 'execute'(_0x211173){const _0x479cd0=a33_0x52c295,_0x5cf793=importServiceManifest(_0x211173[_0x479cd0(0x161)](_0x479cd0(0x162)));if(_0x5cf793[_0x479cd0(0x13f)][_0x479cd0(0x16d)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x5cf793[_0x479cd0(0x153)],'imported':_0x5cf793['imported'],'updated':_0x5cf793[_0x479cd0(0x165)],'serviceCount':_0x5cf793[_0x479cd0(0x150)],'services':_0x5cf793['entries'][_0x479cd0(0x14e)](summarizeService)},'message':_0x479cd0(0x176)+_0x5cf793[_0x479cd0(0x160)]+_0x479cd0(0x17e)+_0x5cf793[_0x479cd0(0x165)]+_0x479cd0(0x168)};return{'ok':!![],'data':{'registryPath':_0x5cf793[_0x479cd0(0x153)],'replaced':_0x5cf793[_0x479cd0(0x15f)],'imported':_0x5cf793[_0x479cd0(0x160)],'updated':_0x5cf793[_0x479cd0(0x165)],'serviceCount':_0x5cf793[_0x479cd0(0x150)],'service':summarizeService(_0x5cf793[_0x479cd0(0x151)])},'message':(_0x5cf793[_0x479cd0(0x15f)]?_0x479cd0(0x149):_0x479cd0(0x178))+_0x479cd0(0x154)+_0x5cf793[_0x479cd0(0x151)][_0x479cd0(0x16a)]+'.'};}},{'service':'service','command':'export','description':'Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x10d621){const _0x1b1dbc=a33_0x52c295,_0x4a6496=getLocalServiceEntry(_0x10d621[_0x1b1dbc(0x161)](_0x1b1dbc(0x163)));return{'method':_0x1b1dbc(0x159),'url':_0x10d621[_0x1b1dbc(0x161)](_0x1b1dbc(0x162)),'body':{'service':_0x10d621[_0x1b1dbc(0x161)](_0x1b1dbc(0x163)),'found':Boolean(_0x4a6496),'version':_0x4a6496?.[_0x1b1dbc(0x13d)],'source':_0x4a6496?.['source']},'description':_0x1b1dbc(0x17c)};},async 'execute'(_0x1d7f60){const _0x3af69e=a33_0x52c295,_0xd44b64=exportServiceManifest(_0x1d7f60['str'](_0x3af69e(0x163)),_0x1d7f60[_0x3af69e(0x161)](_0x3af69e(0x162)));return{'ok':!![],'data':{'registryPath':_0xd44b64[_0x3af69e(0x153)],'file':_0xd44b64[_0x3af69e(0x15e)],'service':summarizeService(_0xd44b64[_0x3af69e(0x151)])},'message':_0x3af69e(0x15c)+_0xd44b64[_0x3af69e(0x151)][_0x3af69e(0x16a)]+'.'};}},{'service':'service','command':a33_0x52c295(0x173),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':a33_0x52c295(0x14f),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x5c530e=a33_0x52c295,_0x20625f=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x20625f[_0x5c530e(0x16d)],'services':_0x20625f[_0x5c530e(0x14e)](summarizeService)}};}},{'service':'service','command':'remove','description':'Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','risk':a33_0x52c295(0x174),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x1b6dc2){const _0x46f6c0=a33_0x52c295,_0x371f0e=getLocalServiceEntry(_0x1b6dc2[_0x46f6c0(0x161)](_0x46f6c0(0x163)));return{'method':_0x46f6c0(0x159),'url':getServiceRegistryPath(),'body':{'service':_0x1b6dc2[_0x46f6c0(0x161)](_0x46f6c0(0x163)),'found':Boolean(_0x371f0e),'version':_0x371f0e?.[_0x46f6c0(0x13d)],'source':_0x371f0e?.[_0x46f6c0(0x167)]},'description':_0x46f6c0(0x17a)};},async 'execute'(_0x4524c6){const _0x482d15=a33_0x52c295,_0x1fd40d=removeServiceManifest(_0x4524c6[_0x482d15(0x161)]('service'));return{'ok':!![],'data':{'registryPath':_0x1fd40d['registryPath'],'serviceCount':_0x1fd40d[_0x482d15(0x150)],'service':summarizeService(_0x1fd40d[_0x482d15(0x151)])},'message':_0x482d15(0x142)+_0x1fd40d[_0x482d15(0x151)][_0x482d15(0x16a)]+'.'};}},{'service':a33_0x52c295(0x163),'command':a33_0x52c295(0x13e),'description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':a33_0x52c295(0x14f),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0xbab292){const _0x37b4c1=a33_0x52c295,_0x3e8fa9=getLocalServiceEntry(_0xbab292[_0x37b4c1(0x161)]('service'));if(!_0x3e8fa9)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0xbab292[_0x37b4c1(0x161)](_0x37b4c1(0x163))},'message':'Local\x20service\x20not\x20found:\x20'+_0xbab292[_0x37b4c1(0x161)](_0x37b4c1(0x163))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x3e8fa9),'manifest':_0x3e8fa9['manifest'],'normalizedManifest':_0x3e8fa9[_0x37b4c1(0x169)]}};}}];
|
|
1
|
+
function a33_0x23c4(_0x456856,_0xabbfbd){_0x456856=_0x456856-0x1d0;const _0x4c5f54=a33_0x4c5f();let _0x23c439=_0x4c5f54[_0x456856];return _0x23c439;}function a33_0x4c5f(){const _0xf884a0=['validate','37165320kPgwBa','manifest','write','risk','entry','registryPath','Service\x20registry\x20validation\x20passed.','Exported\x20service\x20','Local\x20service\x20not\x20found:\x20','4iMgbbA','Removed\x20service\x20','str','registryServiceCode','Imported\x20','errors','file','Service\x20Tree\x20manifest\x20file\x20path','version','normalizedManifest','length','service','manifests','export','reduce','cliPath','map','\x20service\x20','type','read','importedAt','12133010botuiV','updated','lower\x20kebab-case\x20service\x20code','flags','registry','9dyQXpo','string','imported','name','serviceCode','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','445832YBbghQ','report','serviceCount','list','source','Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','\x20service(s).','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','4131471OzFgkR','2359UduhCE','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','commands','hash','replaced','required','11bIcOSD','\x20service(s),\x20updated\x20','603814HLnxKF','1424816mJoyKH','entries','warnings','description','kind','WRITE','filePath','30FGSlGA','target','registryIndex','Updated','16158keHEUi'];a33_0x4c5f=function(){return _0xf884a0;};return a33_0x4c5f();}const a33_0x5ae0b0=a33_0x23c4;(function(_0x384193,_0x15864f){const _0x5f5c1a=a33_0x23c4,_0x5012f2=_0x384193();while(!![]){try{const _0x527187=-parseInt(_0x5f5c1a(0x1d7))/0x1*(parseInt(_0x5f5c1a(0x1ee))/0x2)+-parseInt(_0x5f5c1a(0x217))/0x3+parseInt(_0x5f5c1a(0x20e))/0x4*(parseInt(_0x5f5c1a(0x1df))/0x5)+parseInt(_0x5f5c1a(0x1e3))/0x6*(parseInt(_0x5f5c1a(0x218))/0x7)+-parseInt(_0x5f5c1a(0x1d8))/0x8+parseInt(_0x5f5c1a(0x208))/0x9*(-parseInt(_0x5f5c1a(0x203))/0xa)+parseInt(_0x5f5c1a(0x1d5))/0xb*(parseInt(_0x5f5c1a(0x1e5))/0xc);if(_0x527187===_0x15864f)break;else _0x5012f2['push'](_0x5012f2['shift']());}catch(_0x49a0a6){_0x5012f2['push'](_0x5012f2['shift']());}}}(a33_0x4c5f,0xaa37b));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';const FILE_FLAG={'name':a33_0x5ae0b0(0x1f4),'type':a33_0x5ae0b0(0x209),'required':!![],'description':a33_0x5ae0b0(0x1f5)},SERVICE_FLAG={'name':'service','type':a33_0x5ae0b0(0x209),'required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a33_0x5ae0b0(0x205)}};function summarizeService(_0x51c30a){const _0x2b2891=a33_0x5ae0b0;return{'serviceCode':_0x51c30a[_0x2b2891(0x20c)],'name':_0x51c30a['normalizedManifest'][_0x2b2891(0x1f9)]['name'],'version':_0x51c30a[_0x2b2891(0x1f6)],'importedAt':_0x51c30a[_0x2b2891(0x202)],'source':_0x51c30a[_0x2b2891(0x212)],'commandCount':_0x51c30a[_0x2b2891(0x1f7)][_0x2b2891(0x1d1)][_0x2b2891(0x1f8)],'commands':_0x51c30a[_0x2b2891(0x1f7)]['commands'][_0x2b2891(0x1fe)](_0x6e8497=>({'path':_0x6e8497[_0x2b2891(0x1fd)],'description':_0x6e8497[_0x2b2891(0x1db)],'risk':_0x6e8497[_0x2b2891(0x1e8)],'target':_0x6e8497['target'],'flags':_0x6e8497[_0x2b2891(0x206)]['map'](_0x3f37c8=>({'name':_0x3f37c8[_0x2b2891(0x20b)],'cliName':_0x3f37c8['cliName'],'type':_0x3f37c8[_0x2b2891(0x200)],'required':_0x3f37c8[_0x2b2891(0x1d4)]===!![]}))}))};}function summarizeLoadedManifest(_0x37fc55){const _0x35b6aa=a33_0x5ae0b0;return{'service':_0x37fc55[_0x35b6aa(0x1f7)]?.[_0x35b6aa(0x1f9)],'version':_0x37fc55['normalizedManifest']?.[_0x35b6aa(0x1f6)],'commandCount':_0x37fc55[_0x35b6aa(0x1f7)]?.[_0x35b6aa(0x1d1)][_0x35b6aa(0x1f8)]??0x0,'commands':_0x37fc55['normalizedManifest']?.[_0x35b6aa(0x1d1)]['map'](_0x5b9d23=>({'path':_0x5b9d23[_0x35b6aa(0x1fd)],'risk':_0x5b9d23[_0x35b6aa(0x1e8)],'target':_0x5b9d23[_0x35b6aa(0x1e0)]}))??[],'registryIndex':_0x37fc55[_0x35b6aa(0x1e1)],'registryServiceCode':_0x37fc55[_0x35b6aa(0x1f1)],'errors':_0x37fc55[_0x35b6aa(0x20f)][_0x35b6aa(0x1f3)],'warnings':_0x37fc55[_0x35b6aa(0x20f)]['warnings']};}export const serviceDefinitions=[{'service':a33_0x5ae0b0(0x1f9),'command':a33_0x5ae0b0(0x1e4),'description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x4b5774){const _0x263193=a33_0x5ae0b0,_0x138403=loadServiceManifestFromFile(_0x4b5774[_0x263193(0x1f0)](_0x263193(0x1f4)));if(!_0x138403[_0x263193(0x20f)]['ok'])return{'ok':![],'data':{'file':_0x138403[_0x263193(0x1de)],'hash':_0x138403['hash'],'kind':_0x138403['kind'],'serviceCount':_0x138403['manifests'][_0x263193(0x1f8)],'services':_0x138403[_0x263193(0x1fa)][_0x263193(0x1fe)](summarizeLoadedManifest),'errors':_0x138403['report'][_0x263193(0x1f3)],'warnings':_0x138403[_0x263193(0x20f)][_0x263193(0x1da)]},'message':formatValidationFailure(_0x138403[_0x263193(0x20f)])};if(_0x138403[_0x263193(0x1dc)]===_0x263193(0x207)||_0x138403[_0x263193(0x1fa)][_0x263193(0x1f8)]!==0x1)return{'ok':!![],'data':{'file':_0x138403[_0x263193(0x1de)],'hash':_0x138403['hash'],'kind':_0x138403[_0x263193(0x1dc)],'serviceCount':_0x138403['manifests'][_0x263193(0x1f8)],'commandCount':_0x138403[_0x263193(0x1fa)][_0x263193(0x1fc)]((_0x50614f,_0xdfd4f7)=>_0x50614f+(_0xdfd4f7[_0x263193(0x1f7)]?.[_0x263193(0x1d1)][_0x263193(0x1f8)]??0x0),0x0),'services':_0x138403[_0x263193(0x1fa)][_0x263193(0x1fe)](summarizeLoadedManifest),'warnings':_0x138403[_0x263193(0x20f)][_0x263193(0x1da)]},'message':_0x263193(0x1eb)};return{'ok':!![],'data':{'file':_0x138403[_0x263193(0x1de)],'hash':_0x138403['hash'],'kind':_0x138403[_0x263193(0x1dc)],'service':_0x138403[_0x263193(0x1f7)]?.[_0x263193(0x1f9)],'version':_0x138403[_0x263193(0x1f7)]?.[_0x263193(0x1f6)],'commandCount':_0x138403[_0x263193(0x1f7)]?.[_0x263193(0x1d1)][_0x263193(0x1f8)]??0x0,'commands':_0x138403[_0x263193(0x1f7)]?.[_0x263193(0x1d1)][_0x263193(0x1fe)](_0x2e8f97=>({'path':_0x2e8f97['cliPath'],'risk':_0x2e8f97[_0x263193(0x1e8)],'target':_0x2e8f97[_0x263193(0x1e0)]})),'warnings':_0x138403[_0x263193(0x20f)][_0x263193(0x1da)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a33_0x5ae0b0(0x1f9),'command':'import','description':a33_0x5ae0b0(0x1d0),'risk':a33_0x5ae0b0(0x1e7),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x5e5470){const _0x132a47=a33_0x5ae0b0,_0x2b2a2b=loadServiceManifestFromFile(_0x5e5470[_0x132a47(0x1f0)](_0x132a47(0x1f4)));return{'method':_0x132a47(0x1dd),'url':getServiceRegistryPath(),'body':{'file':_0x2b2a2b[_0x132a47(0x1de)],'hash':_0x2b2a2b[_0x132a47(0x1d2)],'kind':_0x2b2a2b[_0x132a47(0x1dc)],'ok':_0x2b2a2b[_0x132a47(0x20f)]['ok'],'service':_0x2b2a2b[_0x132a47(0x1f7)]?.['service'],'version':_0x2b2a2b[_0x132a47(0x1f7)]?.[_0x132a47(0x1f6)],'serviceCount':_0x2b2a2b[_0x132a47(0x1fa)][_0x132a47(0x1f8)],'services':_0x2b2a2b['manifests'][_0x132a47(0x1fe)](_0x630af3=>({'service':_0x630af3['normalizedManifest']?.['service'],'version':_0x630af3[_0x132a47(0x1f7)]?.[_0x132a47(0x1f6)],'commandCount':_0x630af3[_0x132a47(0x1f7)]?.[_0x132a47(0x1d1)][_0x132a47(0x1f8)]??0x0,'errors':_0x630af3[_0x132a47(0x20f)][_0x132a47(0x1f3)]})),'errors':_0x2b2a2b['report']['errors'],'commandCount':_0x2b2a2b[_0x132a47(0x1f7)]?.[_0x132a47(0x1d1)][_0x132a47(0x1f8)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x2da8eb){const _0x5c8a45=a33_0x5ae0b0,_0x243117=importServiceManifest(_0x2da8eb[_0x5c8a45(0x1f0)](_0x5c8a45(0x1f4)));if(_0x243117[_0x5c8a45(0x1d9)][_0x5c8a45(0x1f8)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x243117[_0x5c8a45(0x1ea)],'imported':_0x243117[_0x5c8a45(0x20a)],'updated':_0x243117[_0x5c8a45(0x204)],'serviceCount':_0x243117[_0x5c8a45(0x210)],'services':_0x243117[_0x5c8a45(0x1d9)][_0x5c8a45(0x1fe)](summarizeService)},'message':_0x5c8a45(0x1f2)+_0x243117[_0x5c8a45(0x20a)]+_0x5c8a45(0x1d6)+_0x243117[_0x5c8a45(0x204)]+_0x5c8a45(0x215)};return{'ok':!![],'data':{'registryPath':_0x243117[_0x5c8a45(0x1ea)],'replaced':_0x243117['replaced'],'imported':_0x243117[_0x5c8a45(0x20a)],'updated':_0x243117[_0x5c8a45(0x204)],'serviceCount':_0x243117[_0x5c8a45(0x210)],'service':summarizeService(_0x243117['entry'])},'message':(_0x243117[_0x5c8a45(0x1d3)]?_0x5c8a45(0x1e2):'Imported')+_0x5c8a45(0x1ff)+_0x243117[_0x5c8a45(0x1e9)]['serviceCode']+'.'};}},{'service':a33_0x5ae0b0(0x1f9),'command':a33_0x5ae0b0(0x1fb),'description':a33_0x5ae0b0(0x213),'risk':a33_0x5ae0b0(0x1e7),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x401b4c){const _0x441a4c=a33_0x5ae0b0,_0x49fda7=getLocalServiceEntry(_0x401b4c[_0x441a4c(0x1f0)]('service'));return{'method':_0x441a4c(0x1dd),'url':_0x401b4c[_0x441a4c(0x1f0)]('file'),'body':{'service':_0x401b4c['str']('service'),'found':Boolean(_0x49fda7),'version':_0x49fda7?.[_0x441a4c(0x1f6)],'source':_0x49fda7?.[_0x441a4c(0x212)]},'description':'Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x59767f){const _0x2a81ed=a33_0x5ae0b0,_0xe0dd37=exportServiceManifest(_0x59767f[_0x2a81ed(0x1f0)](_0x2a81ed(0x1f9)),_0x59767f[_0x2a81ed(0x1f0)](_0x2a81ed(0x1f4)));return{'ok':!![],'data':{'registryPath':_0xe0dd37[_0x2a81ed(0x1ea)],'file':_0xe0dd37[_0x2a81ed(0x1de)],'service':summarizeService(_0xe0dd37['entry'])},'message':_0x2a81ed(0x1ec)+_0xe0dd37[_0x2a81ed(0x1e9)][_0x2a81ed(0x20c)]+'.'};}},{'service':a33_0x5ae0b0(0x1f9),'command':a33_0x5ae0b0(0x211),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x182a0e=a33_0x5ae0b0,_0x1137dd=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x1137dd[_0x182a0e(0x1f8)],'services':_0x1137dd[_0x182a0e(0x1fe)](summarizeService)}};}},{'service':a33_0x5ae0b0(0x1f9),'command':'remove','description':a33_0x5ae0b0(0x214),'risk':a33_0x5ae0b0(0x1e7),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0xac0c4a){const _0x4d8174=a33_0x5ae0b0,_0x34aa07=getLocalServiceEntry(_0xac0c4a['str']('service'));return{'method':_0x4d8174(0x1dd),'url':getServiceRegistryPath(),'body':{'service':_0xac0c4a[_0x4d8174(0x1f0)](_0x4d8174(0x1f9)),'found':Boolean(_0x34aa07),'version':_0x34aa07?.[_0x4d8174(0x1f6)],'source':_0x34aa07?.[_0x4d8174(0x212)]},'description':_0x4d8174(0x20d)};},async 'execute'(_0x41c995){const _0x4b06db=a33_0x5ae0b0,_0x3b538c=removeServiceManifest(_0x41c995[_0x4b06db(0x1f0)](_0x4b06db(0x1f9)));return{'ok':!![],'data':{'registryPath':_0x3b538c['registryPath'],'serviceCount':_0x3b538c['serviceCount'],'service':summarizeService(_0x3b538c['entry'])},'message':_0x4b06db(0x1ef)+_0x3b538c[_0x4b06db(0x1e9)][_0x4b06db(0x20c)]+'.'};}},{'service':a33_0x5ae0b0(0x1f9),'command':'detail','description':a33_0x5ae0b0(0x216),'risk':a33_0x5ae0b0(0x201),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0xc245a2){const _0x1f572f=a33_0x5ae0b0,_0x536012=getLocalServiceEntry(_0xc245a2['str']('service'));if(!_0x536012)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0xc245a2['str'](_0x1f572f(0x1f9))},'message':_0x1f572f(0x1ed)+_0xc245a2[_0x1f572f(0x1f0)](_0x1f572f(0x1f9))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x536012),'manifest':_0x536012[_0x1f572f(0x1e6)],'normalizedManifest':_0x536012[_0x1f572f(0x1f7)]}};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x48e481,_0x57386e){const _0x33bfb7=a34_0x154a,_0x519ea8=_0x48e481();while(!![]){try{const _0x177ba4=parseInt(_0x33bfb7(0xf1))/0x1+parseInt(_0x33bfb7(0xf8))/0x2+-parseInt(_0x33bfb7(0xd9))/0x3*(-parseInt(_0x33bfb7(0x104))/0x4)+parseInt(_0x33bfb7(0xe5))/0x5*(-parseInt(_0x33bfb7(0x109))/0x6)+parseInt(_0x33bfb7(0xc1))/0x7+parseInt(_0x33bfb7(0xba))/0x8+-parseInt(_0x33bfb7(0xc3))/0x9;if(_0x177ba4===_0x57386e)break;else _0x519ea8['push'](_0x519ea8['shift']());}catch(_0x189d69){_0x519ea8['push'](_0x519ea8['shift']());}}}(a34_0x771b,0xeba11));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';function a34_0x154a(_0x359104,_0x4a9cc5){_0x359104=_0x359104-0xba;const _0x771bc5=a34_0x771b();let _0x154aee=_0x771bc5[_0x359104];return _0x154aee;}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='service.json';export function getServiceRegistryPath(_0x547fb3={}){const _0x54aad4=a34_0x154a;return resolve(_0x547fb3[_0x54aad4(0xe2)]??homedir(),PRODUCT_CONFIG[_0x54aad4(0x101)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x1bacb9={}){const _0x108be3=a34_0x154a,_0x46a4d6=getServiceRegistryPath(_0x1bacb9);if(!existsSync(_0x46a4d6))return emptyServiceRegistry();try{const _0x9d165f=readFileSync(_0x46a4d6,_0x108be3(0xf2));if(!_0x9d165f[_0x108be3(0xc5)]())return emptyServiceRegistry();const _0xeeebb0=JSON['parse'](_0x9d165f);if(_0xeeebb0[_0x108be3(0xf6)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x108be3(0x102)](_0x108be3(0xd8)+String(_0xeeebb0[_0x108be3(0xf6)]),_0x108be3(0xc8)+_0x46a4d6+'.');if(!Array[_0x108be3(0xdc)](_0xeeebb0['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0xeeebb0[_0x108be3(0xfc)],'services':_0xeeebb0[_0x108be3(0xbe)]};}catch(_0x4705d0){if(_0x4705d0 instanceof Error&&_0x4705d0[_0x108be3(0xbc)]===_0x108be3(0x103))throw _0x4705d0;throw CliErrors[_0x108be3(0x102)]('Invalid\x20service\x20registry\x20JSON:\x20'+_0x46a4d6,_0x108be3(0xde));}}export function writeServiceRegistry(_0x44c4d5,_0x3b913c={}){const _0x165a93=a34_0x154a,_0x2fa9d9=getServiceRegistryPath(_0x3b913c),_0x856684=dirname(_0x2fa9d9);!existsSync(_0x856684)&&mkdirSync(_0x856684,{'recursive':!![]});const _0xab8764=_0x2fa9d9+_0x165a93(0xeb);try{writeFileSync(_0xab8764,JSON[_0x165a93(0xce)](_0x44c4d5,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0xab8764,_0x2fa9d9);}catch(_0x5a8dfc){try{unlinkSync(_0xab8764);}catch{}if(_0x5a8dfc?.['code']==='ENOENT')throw CliErrors[_0x165a93(0x102)]('Cannot\x20write\x20service\x20registry:\x20'+_0x2fa9d9);throw _0x5a8dfc;}return _0x2fa9d9;}export function loadServiceManifestFromFile(_0x39452c){const _0x38931b=a34_0x154a,_0x241872=resolve(_0x39452c);if(!existsSync(_0x241872))throw CliErrors[_0x38931b(0x102)](_0x38931b(0x105)+_0x39452c);let _0xfb86e;const _0x4673ef=readFileSync(_0x241872,_0x38931b(0xf2));try{_0xfb86e=JSON['parse'](_0x4673ef);}catch{throw CliErrors['validation'](_0x38931b(0xea)+_0x39452c,_0x38931b(0xcd));}const _0x45a5f6=sha256(_0x4673ef),_0x13cd55=extractLoadedServiceManifests(_0xfb86e,_0x45a5f6),_0x2f1f47=aggregateValidationReports(_0x13cd55),_0x52058d=_0x13cd55[0x0];return{'filePath':_0x241872,'hash':_0x45a5f6,'kind':isServiceRegistryLike(_0xfb86e)?_0x38931b(0xf7):_0x38931b(0xf5),'manifest':_0x52058d?.[_0x38931b(0xf5)]??_0xfb86e,'report':_0x2f1f47,'normalizedManifest':_0x13cd55[_0x38931b(0xc0)]===0x1?_0x52058d?.['normalizedManifest']:undefined,'manifests':_0x13cd55};}export function importServiceManifest(_0x540bed,_0x98295a={}){const _0x5a05c0=a34_0x154a,_0x87ab1c=loadServiceManifestFromFile(_0x540bed);if(!_0x87ab1c[_0x5a05c0(0xec)]['ok'])throw CliErrors[_0x5a05c0(0x102)](formatValidationFailure(_0x87ab1c[_0x5a05c0(0xec)]),_0x5a05c0(0xd2));if(_0x87ab1c[_0x5a05c0(0xf4)][_0x5a05c0(0xc0)]===0x0)throw CliErrors[_0x5a05c0(0x102)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x5a05c0(0xc4));const _0x44cc3c=readServiceRegistry(_0x98295a),_0x2c6941=(_0x98295a[_0x5a05c0(0xe0)]??(()=>new Date()))()[_0x5a05c0(0xfd)](),_0x5cd19e=[];let _0x1d4884=0x0,_0x2aebf=0x0;for(const _0x255938 of _0x87ab1c[_0x5a05c0(0xf4)]){if(!_0x255938['normalizedManifest'])continue;const _0x250582=_0x255938['normalizedManifest'][_0x5a05c0(0xfa)][_0x5a05c0(0xef)],_0x17cc0e={'serviceCode':_0x250582,'version':_0x255938[_0x5a05c0(0xc2)]['version'],'importedAt':_0x2c6941,'source':{'type':_0x5a05c0(0xc7),'path':_0x87ab1c[_0x5a05c0(0xcb)],'hash':_0x255938[_0x5a05c0(0xd6)]},'manifest':_0x255938['manifest'],'normalizedManifest':_0x255938[_0x5a05c0(0xc2)]},_0x56d907=_0x44cc3c[_0x5a05c0(0xbe)][_0x5a05c0(0xdf)](_0x152bf9=>_0x152bf9[_0x5a05c0(0xc6)]===_0x250582);_0x56d907>=0x0?(_0x44cc3c[_0x5a05c0(0xbe)][_0x56d907]=_0x17cc0e,_0x2aebf++):(_0x44cc3c[_0x5a05c0(0xbe)][_0x5a05c0(0xf0)](_0x17cc0e),_0x1d4884++),_0x5cd19e[_0x5a05c0(0xf0)](_0x17cc0e);}_0x44cc3c[_0x5a05c0(0xbe)]['sort']((_0x2dfcf4,_0x217ca5)=>_0x2dfcf4[_0x5a05c0(0xc6)][_0x5a05c0(0x108)](_0x217ca5[_0x5a05c0(0xc6)])),_0x44cc3c[_0x5a05c0(0xfc)]=_0x2c6941;const _0x478182=writeServiceRegistry(_0x44cc3c,_0x98295a);return{'registryPath':_0x478182,'entry':_0x5cd19e[0x0],'replaced':_0x5cd19e[_0x5a05c0(0xc0)]===0x1?_0x2aebf===0x1:_0x2aebf>0x0,'entries':_0x5cd19e,'imported':_0x1d4884,'updated':_0x2aebf,'serviceCount':_0x44cc3c[_0x5a05c0(0xbe)][_0x5a05c0(0xc0)]};}export function exportServiceManifest(_0x741b6,_0x1d5976,_0x3d1152={}){const _0x485857=a34_0x154a,_0xf13705=getServiceRegistryPath(_0x3d1152),_0x45a1a6=getLocalServiceEntry(_0x741b6,_0x3d1152);if(!_0x45a1a6)throw CliErrors[_0x485857(0x102)]('Local\x20service\x20not\x20found:\x20'+_0x741b6,_0x485857(0xbf));const _0x1a30cc=resolve(_0x1d5976),_0xf1b5a7=dirname(_0x1a30cc);return!existsSync(_0xf1b5a7)&&mkdirSync(_0xf1b5a7,{'recursive':!![]}),writeFileSync(_0x1a30cc,JSON['stringify'](_0x45a1a6['manifest'],null,0x2)+'\x0a',{'encoding':_0x485857(0xf2),'mode':0x180}),{'registryPath':_0xf13705,'filePath':_0x1a30cc,'entry':_0x45a1a6};}export function removeServiceManifest(_0x4a9888,_0x35a2ec={}){const _0x43d0fb=a34_0x154a,_0x385bf4=readServiceRegistry(_0x35a2ec),_0x3540b6=_0x4a9888[_0x43d0fb(0xc5)](),_0x11a533=_0x385bf4[_0x43d0fb(0xbe)]['findIndex'](_0x152ccd=>_0x152ccd[_0x43d0fb(0xc6)]===_0x3540b6);if(_0x11a533<0x0)throw CliErrors['validation'](_0x43d0fb(0xc9)+_0x3540b6,_0x43d0fb(0xbf));const [_0x11a890]=_0x385bf4[_0x43d0fb(0xbe)][_0x43d0fb(0xe1)](_0x11a533,0x1),_0x16b931=(_0x35a2ec[_0x43d0fb(0xe0)]??(()=>new Date()))()['toISOString']();_0x385bf4['updatedAt']=_0x16b931;const _0x336c98=writeServiceRegistry(_0x385bf4,_0x35a2ec);return{'registryPath':_0x336c98,'entry':_0x11a890,'serviceCount':_0x385bf4[_0x43d0fb(0xbe)][_0x43d0fb(0xc0)]};}export function listLocalServices(_0x388873={}){return readServiceRegistry(_0x388873)['services'];}export function getLocalServiceEntry(_0x461c89,_0x51d7b1={}){const _0x5cedf2=a34_0x154a;return readServiceRegistry(_0x51d7b1)[_0x5cedf2(0xbe)][_0x5cedf2(0xbb)](_0x50455f=>_0x50455f[_0x5cedf2(0xc6)]===_0x461c89[_0x5cedf2(0xc5)]());}export function listLocalServiceTrees(_0x135269={}){const _0x1ebf49=a34_0x154a;return readServiceRegistry(_0x135269)[_0x1ebf49(0xbe)]['map'](_0x44c382=>_0x44c382[_0x1ebf49(0xc2)]);}export function inspectServiceRegistry(_0x135895={}){const _0x1faa56=a34_0x154a,_0x221ab4=getServiceRegistryPath(_0x135895);if(!existsSync(_0x221ab4))return emptyServiceRegistryInspection(_0x221ab4,_0x1faa56(0x107),![]);try{const _0x259668=readFileSync(_0x221ab4,'utf8');if(!_0x259668['trim']())return emptyServiceRegistryInspection(_0x221ab4,_0x1faa56(0xf9),!![]);const _0x1c250b=JSON[_0x1faa56(0xff)](_0x259668);if(_0x1c250b[_0x1faa56(0xf6)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x221ab4,_0x1faa56(0xe9),!![]),'schemaVersion':_0x1c250b[_0x1faa56(0xf6)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x1c250b['schemaVersion'])};if(!Array[_0x1faa56(0xdc)](_0x1c250b['services']))return{...emptyServiceRegistryInspection(_0x221ab4,_0x1faa56(0xe9),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1c250b[_0x1faa56(0xfc)],'message':_0x1faa56(0xdb)};const _0x4dcd03=_0x1c250b[_0x1faa56(0xbe)][_0x1faa56(0xd7)](summarizeLocalServiceEntry);return{'registryPath':_0x221ab4,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1c250b[_0x1faa56(0xfc)],'serviceCount':_0x4dcd03[_0x1faa56(0xc0)],'commandCount':_0x4dcd03['reduce']((_0x137ae1,_0x4561da)=>_0x137ae1+_0x4561da['commandCount'],0x0),'services':_0x4dcd03};}catch(_0x21e135){return{...emptyServiceRegistryInspection(_0x221ab4,_0x1faa56(0xe9),!![]),'message':_0x21e135 instanceof Error?_0x21e135[_0x1faa56(0xe3)]:String(_0x21e135)};}}export function formatValidationFailure(_0x212974){const _0x4d69c9=a34_0x154a,_0x53f21c=_0x212974[_0x4d69c9(0xd5)][_0x4d69c9(0xd7)](_0x59049b=>_0x59049b[_0x4d69c9(0xed)]+':\x20'+_0x59049b[_0x4d69c9(0xe3)]);return _0x4d69c9(0xd0)+_0x53f21c['join']('\x0a');}function extractLoadedServiceManifests(_0x2cc523,_0x518604){const _0x332019=a34_0x154a;if(!isServiceRegistryLike(_0x2cc523)){const _0x2c4211=_0x2cc523,_0x2fe60=validateServiceTreeManifest(_0x2c4211);return[{'manifest':_0x2c4211,'report':_0x2fe60,'normalizedManifest':_0x2fe60['ok']?normalizeServiceTreeManifest(_0x2c4211):undefined,'sourceHash':_0x518604}];}return _0x2cc523[_0x332019(0xbe)][_0x332019(0xd7)]((_0x4f6760,_0x21ebba)=>{const _0x2096b2=_0x332019,_0x21c488=isObjectRecord(_0x4f6760)?_0x4f6760['manifest']:undefined,_0x2fee53=validateServiceTreeManifest(_0x21c488),_0x1a63a8=isObjectRecord(_0x4f6760)&&typeof _0x4f6760[_0x2096b2(0xc6)]==='string'?_0x4f6760[_0x2096b2(0xc6)]:undefined;return{'manifest':_0x21c488,'report':_0x2fee53,'normalizedManifest':_0x2fee53['ok']?normalizeServiceTreeManifest(_0x21c488):undefined,'sourceHash':sha256(JSON[_0x2096b2(0xce)](_0x21c488,null,0x2)+'\x0a'),'registryIndex':_0x21ebba,'registryServiceCode':_0x1a63a8};});}function aggregateValidationReports(_0x554eef){const _0xa52f2c=a34_0x154a,_0xdb223c=_0x554eef['flatMap'](_0x365861=>_0x365861[_0xa52f2c(0xe4)]===undefined?_0x365861[_0xa52f2c(0xec)][_0xa52f2c(0xd5)]:_0x365861[_0xa52f2c(0xec)][_0xa52f2c(0xd5)][_0xa52f2c(0xd7)](_0x3726f5=>({..._0x3726f5,'path':prefixRegistryIssuePath(_0x365861[_0xa52f2c(0xe4)],_0x3726f5[_0xa52f2c(0xed)])}))),_0x29652c=_0x554eef[_0xa52f2c(0x100)](_0x37a282=>_0x37a282[_0xa52f2c(0xe4)]===undefined?_0x37a282['report'][_0xa52f2c(0xe6)]:_0x37a282[_0xa52f2c(0xec)][_0xa52f2c(0xe6)]['map'](_0xf7a445=>({..._0xf7a445,'path':prefixRegistryIssuePath(_0x37a282[_0xa52f2c(0xe4)],_0xf7a445[_0xa52f2c(0xed)])})));return{'ok':_0xdb223c['length']===0x0,'errors':_0xdb223c,'warnings':_0x29652c};}function prefixRegistryIssuePath(_0x131ddc,_0x2a1752){const _0x37a36e=a34_0x154a;if(_0x2a1752==='$')return _0x37a36e(0xf3)+_0x131ddc+_0x37a36e(0xda);if(_0x2a1752[_0x37a36e(0xdd)]('$.'))return _0x37a36e(0xf3)+_0x131ddc+_0x37a36e(0xda)+_0x2a1752[_0x37a36e(0xd1)](0x1);if(_0x2a1752['startsWith']('$['))return _0x37a36e(0xf3)+_0x131ddc+_0x37a36e(0xda)+_0x2a1752[_0x37a36e(0xd1)](0x1);return _0x37a36e(0xf3)+_0x131ddc+_0x37a36e(0xfe)+_0x2a1752;}function a34_0x771b(){const _0x5f2051=['push','216583IJQUBu','utf8','$.services[','manifests','manifest','schemaVersion','registry','3366526UqCXec','empty','service','commands','updatedAt','toISOString','].manifest.','parse','flatMap','homeDirName','validation','CliError','4luQcqa','Service\x20manifest\x20file\x20not\x20found:\x20','sha256','missing','localeCompare','6zGPXos','1112808BeerFh','find','name','command','services','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','length','3854333nTacrF','normalizedManifest','25142814ZIAgME','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','trim','serviceCode','file','Remove\x20or\x20migrate\x20','Local\x20service\x20not\x20found:\x20','target','filePath','description','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','stringify','source','Service\x20manifest\x20validation\x20failed:\x0a','slice','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','object','cliPath','errors','sourceHash','map','Unsupported\x20service\x20registry\x20schemaVersion:\x20','4883484vwWhhU','].manifest','services\x20must\x20be\x20an\x20array','isArray','startsWith','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','findIndex','now','splice','homeDir','message','registryIndex','2293055cMFFDY','warnings','version','update','invalid','Invalid\x20service\x20manifest\x20JSON:\x20','.tmp','report','path','hex','code'];a34_0x771b=function(){return _0x5f2051;};return a34_0x771b();}function isServiceRegistryLike(_0xe498ec){const _0x50fb99=a34_0x154a;return isObjectRecord(_0xe498ec)&&_0xe498ec[_0x50fb99(0xf6)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0xe498ec[_0x50fb99(0xbe)]);}function isObjectRecord(_0x2e50e3){const _0x293f5f=a34_0x154a;return Boolean(_0x2e50e3)&&typeof _0x2e50e3===_0x293f5f(0xd3)&&!Array['isArray'](_0x2e50e3);}function emptyServiceRegistryInspection(_0xebf479,_0x43c563,_0x58f229){return{'registryPath':_0xebf479,'exists':_0x58f229,'status':_0x43c563,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x43998f){const _0x4937c4=a34_0x154a,_0x3d6434=_0x43998f['normalizedManifest'],_0x51afdd=_0x3d6434[_0x4937c4(0xfb)]['map'](_0x7c4be=>({'path':_0x7c4be[_0x4937c4(0xd4)],'description':_0x7c4be['description'],'risk':_0x7c4be['risk'],'targetKind':_0x7c4be[_0x4937c4(0xca)]['kind'],'targetCommand':_0x7c4be['target'][_0x4937c4(0xbd)]}));return{'serviceCode':_0x43998f['serviceCode'],'name':_0x3d6434['service'][_0x4937c4(0xbc)],'description':_0x3d6434[_0x4937c4(0xfa)][_0x4937c4(0xcc)],'version':_0x43998f[_0x4937c4(0xe7)],'importedAt':_0x43998f['importedAt'],'source':_0x43998f[_0x4937c4(0xcf)],'commandCount':_0x51afdd[_0x4937c4(0xc0)],'commands':_0x51afdd};}function sha256(_0x318ba5){const _0x529d04=a34_0x154a;return createHash(_0x529d04(0x106))[_0x529d04(0xe8)](_0x318ba5)['digest'](_0x529d04(0xee));}
|
|
1
|
+
const a34_0x2cf5c5=a34_0x5488;(function(_0x3f81e1,_0x3e067c){const _0x4c55bb=a34_0x5488,_0x4df2c1=_0x3f81e1();while(!![]){try{const _0x2929f1=-parseInt(_0x4c55bb(0x10d))/0x1+-parseInt(_0x4c55bb(0x109))/0x2+parseInt(_0x4c55bb(0x137))/0x3*(-parseInt(_0x4c55bb(0x138))/0x4)+parseInt(_0x4c55bb(0x128))/0x5*(parseInt(_0x4c55bb(0x130))/0x6)+parseInt(_0x4c55bb(0x116))/0x7+-parseInt(_0x4c55bb(0x129))/0x8+parseInt(_0x4c55bb(0x147))/0x9;if(_0x2929f1===_0x3e067c)break;else _0x4df2c1['push'](_0x4df2c1['shift']());}catch(_0x50da5f){_0x4df2c1['push'](_0x4df2c1['shift']());}}}(a34_0x1d23,0xf053a));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=a34_0x2cf5c5(0x123);export function getServiceRegistryPath(_0x2fc8d3={}){const _0x226931=a34_0x2cf5c5;return resolve(_0x2fc8d3[_0x226931(0x124)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x3f5d39={}){const _0xf2efdf=a34_0x2cf5c5,_0x49be63=getServiceRegistryPath(_0x3f5d39);if(!existsSync(_0x49be63))return emptyServiceRegistry();try{const _0x5abc2c=readFileSync(_0x49be63,_0xf2efdf(0x11a));if(!_0x5abc2c[_0xf2efdf(0xfc)]())return emptyServiceRegistry();const _0x497b10=JSON[_0xf2efdf(0x11b)](_0x5abc2c);if(_0x497b10[_0xf2efdf(0x118)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0xf2efdf(0xff)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x497b10[_0xf2efdf(0x118)]),_0xf2efdf(0x141)+_0x49be63+'.');if(!Array[_0xf2efdf(0x13e)](_0x497b10[_0xf2efdf(0x115)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x497b10[_0xf2efdf(0x11e)],'services':_0x497b10['services']};}catch(_0x336f89){if(_0x336f89 instanceof Error&&_0x336f89['name']===_0xf2efdf(0x100))throw _0x336f89;throw CliErrors[_0xf2efdf(0xff)](_0xf2efdf(0x134)+_0x49be63,_0xf2efdf(0x10f));}}export function writeServiceRegistry(_0x4f909d,_0x3f2f18={}){const _0x24810a=a34_0x2cf5c5,_0x6ffc70=getServiceRegistryPath(_0x3f2f18),_0x28f25a=dirname(_0x6ffc70);!existsSync(_0x28f25a)&&mkdirSync(_0x28f25a,{'recursive':!![]});const _0x4d16d7=_0x6ffc70+_0x24810a(0x13b);try{writeFileSync(_0x4d16d7,JSON['stringify'](_0x4f909d,null,0x2)+'\x0a',{'encoding':_0x24810a(0x11a),'mode':0x180}),renameSync(_0x4d16d7,_0x6ffc70);}catch(_0x41322b){try{unlinkSync(_0x4d16d7);}catch{}if(_0x41322b?.['code']===_0x24810a(0x13f))throw CliErrors[_0x24810a(0xff)](_0x24810a(0x110)+_0x6ffc70);throw _0x41322b;}return _0x6ffc70;}export function loadServiceManifestFromFile(_0x3fd7a0){const _0x21eef5=a34_0x2cf5c5,_0x25960f=resolve(_0x3fd7a0);if(!existsSync(_0x25960f))throw CliErrors[_0x21eef5(0xff)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x3fd7a0);let _0x1890b1;const _0x1ae3d4=readFileSync(_0x25960f,_0x21eef5(0x11a));try{_0x1890b1=JSON[_0x21eef5(0x11b)](_0x1ae3d4);}catch{throw CliErrors[_0x21eef5(0xff)](_0x21eef5(0x145)+_0x3fd7a0,_0x21eef5(0x12c));}const _0x434f7f=sha256(_0x1ae3d4),_0x4d0cd6=extractLoadedServiceManifests(_0x1890b1,_0x434f7f),_0x197522=aggregateValidationReports(_0x4d0cd6),_0x30b5d8=_0x4d0cd6[0x0];return{'filePath':_0x25960f,'hash':_0x434f7f,'kind':isServiceRegistryLike(_0x1890b1)?'registry':_0x21eef5(0x13d),'manifest':_0x30b5d8?.[_0x21eef5(0x13d)]??_0x1890b1,'report':_0x197522,'normalizedManifest':_0x4d0cd6['length']===0x1?_0x30b5d8?.[_0x21eef5(0x13c)]:undefined,'manifests':_0x4d0cd6};}export function importServiceManifest(_0x1c89cf,_0x56d102={}){const _0x49a5b7=a34_0x2cf5c5,_0x1c8087=loadServiceManifestFromFile(_0x1c89cf);if(!_0x1c8087[_0x49a5b7(0x10e)]['ok'])throw CliErrors[_0x49a5b7(0xff)](formatValidationFailure(_0x1c8087[_0x49a5b7(0x10e)]),_0x49a5b7(0x12e));if(_0x1c8087['manifests']['length']===0x0)throw CliErrors[_0x49a5b7(0xff)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x192124=readServiceRegistry(_0x56d102),_0x2a8144=(_0x56d102[_0x49a5b7(0x117)]??(()=>new Date()))()[_0x49a5b7(0x114)](),_0x269fc5=[];let _0x59f3b5=0x0,_0x5d197a=0x0;for(const _0x162265 of _0x1c8087['manifests']){if(!_0x162265[_0x49a5b7(0x13c)])continue;const _0x5736ac=_0x162265['normalizedManifest'][_0x49a5b7(0x104)][_0x49a5b7(0x13a)],_0x18a46e={'serviceCode':_0x5736ac,'version':_0x162265['normalizedManifest']['version'],'importedAt':_0x2a8144,'source':{'type':'file','path':_0x1c8087['filePath'],'hash':_0x162265[_0x49a5b7(0x143)]},'manifest':_0x162265[_0x49a5b7(0x13d)],'normalizedManifest':_0x162265['normalizedManifest']},_0x5baa50=_0x192124[_0x49a5b7(0x115)]['findIndex'](_0x1981fe=>_0x1981fe[_0x49a5b7(0x127)]===_0x5736ac);_0x5baa50>=0x0?(_0x192124['services'][_0x5baa50]=_0x18a46e,_0x5d197a++):(_0x192124[_0x49a5b7(0x115)][_0x49a5b7(0x11d)](_0x18a46e),_0x59f3b5++),_0x269fc5[_0x49a5b7(0x11d)](_0x18a46e);}_0x192124[_0x49a5b7(0x115)]['sort']((_0x582d4e,_0x4d4a16)=>_0x582d4e[_0x49a5b7(0x127)][_0x49a5b7(0x126)](_0x4d4a16[_0x49a5b7(0x127)])),_0x192124[_0x49a5b7(0x11e)]=_0x2a8144;const _0x5520ba=writeServiceRegistry(_0x192124,_0x56d102);return{'registryPath':_0x5520ba,'entry':_0x269fc5[0x0],'replaced':_0x269fc5[_0x49a5b7(0x106)]===0x1?_0x5d197a===0x1:_0x5d197a>0x0,'entries':_0x269fc5,'imported':_0x59f3b5,'updated':_0x5d197a,'serviceCount':_0x192124[_0x49a5b7(0x115)][_0x49a5b7(0x106)]};}export function exportServiceManifest(_0x1a644c,_0x1d265c,_0x83ce0c={}){const _0x43ffee=a34_0x2cf5c5,_0x8e4d8b=getServiceRegistryPath(_0x83ce0c),_0x509fed=getLocalServiceEntry(_0x1a644c,_0x83ce0c);if(!_0x509fed)throw CliErrors[_0x43ffee(0xff)](_0x43ffee(0x10b)+_0x1a644c,_0x43ffee(0x125));const _0x286ab9=resolve(_0x1d265c),_0x59d35b=dirname(_0x286ab9);return!existsSync(_0x59d35b)&&mkdirSync(_0x59d35b,{'recursive':!![]}),writeFileSync(_0x286ab9,JSON[_0x43ffee(0x146)](_0x509fed[_0x43ffee(0x13d)],null,0x2)+'\x0a',{'encoding':_0x43ffee(0x11a),'mode':0x180}),{'registryPath':_0x8e4d8b,'filePath':_0x286ab9,'entry':_0x509fed};}export function removeServiceManifest(_0x19e2e4,_0x109d5d={}){const _0x2ac928=a34_0x2cf5c5,_0x5b8c90=readServiceRegistry(_0x109d5d),_0x19a00c=_0x19e2e4[_0x2ac928(0xfc)](),_0xf7ee6e=_0x5b8c90['services']['findIndex'](_0x588e54=>_0x588e54[_0x2ac928(0x127)]===_0x19a00c);if(_0xf7ee6e<0x0)throw CliErrors['validation'](_0x2ac928(0x10b)+_0x19a00c,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x336da8]=_0x5b8c90['services'][_0x2ac928(0x108)](_0xf7ee6e,0x1),_0x1e2098=(_0x109d5d[_0x2ac928(0x117)]??(()=>new Date()))()[_0x2ac928(0x114)]();_0x5b8c90['updatedAt']=_0x1e2098;const _0x2d34e9=writeServiceRegistry(_0x5b8c90,_0x109d5d);return{'registryPath':_0x2d34e9,'entry':_0x336da8,'serviceCount':_0x5b8c90[_0x2ac928(0x115)][_0x2ac928(0x106)]};}export function listLocalServices(_0xbd3505={}){const _0x2671a3=a34_0x2cf5c5;return readServiceRegistry(_0xbd3505)[_0x2671a3(0x115)];}export function getLocalServiceEntry(_0x2436d1,_0x5a5717={}){const _0x4197fc=a34_0x2cf5c5;return readServiceRegistry(_0x5a5717)[_0x4197fc(0x115)][_0x4197fc(0x107)](_0x1fec9e=>_0x1fec9e['serviceCode']===_0x2436d1[_0x4197fc(0xfc)]());}export function listLocalServiceTrees(_0x7f3180={}){const _0x12f5cc=a34_0x2cf5c5;return readServiceRegistry(_0x7f3180)['services'][_0x12f5cc(0x11f)](_0x4827d6=>_0x4827d6[_0x12f5cc(0x13c)]);}export function inspectServiceRegistry(_0x14a709={}){const _0x375011=a34_0x2cf5c5,_0x933b7c=getServiceRegistryPath(_0x14a709);if(!existsSync(_0x933b7c))return emptyServiceRegistryInspection(_0x933b7c,_0x375011(0x121),![]);try{const _0x3940c5=readFileSync(_0x933b7c,'utf8');if(!_0x3940c5[_0x375011(0xfc)]())return emptyServiceRegistryInspection(_0x933b7c,_0x375011(0x12d),!![]);const _0x2f8e94=JSON['parse'](_0x3940c5);if(_0x2f8e94['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x933b7c,_0x375011(0x140),!![]),'schemaVersion':_0x2f8e94['schemaVersion'],'message':_0x375011(0x144)+String(_0x2f8e94[_0x375011(0x118)])};if(!Array[_0x375011(0x13e)](_0x2f8e94[_0x375011(0x115)]))return{...emptyServiceRegistryInspection(_0x933b7c,_0x375011(0x140),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2f8e94[_0x375011(0x11e)],'message':_0x375011(0x105)};const _0x3891ab=_0x2f8e94[_0x375011(0x115)][_0x375011(0x11f)](summarizeLocalServiceEntry);return{'registryPath':_0x933b7c,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2f8e94[_0x375011(0x11e)],'serviceCount':_0x3891ab['length'],'commandCount':_0x3891ab['reduce']((_0x4111a2,_0x1f1a18)=>_0x4111a2+_0x1f1a18['commandCount'],0x0),'services':_0x3891ab};}catch(_0x1513f6){return{...emptyServiceRegistryInspection(_0x933b7c,'invalid',!![]),'message':_0x1513f6 instanceof Error?_0x1513f6[_0x375011(0x10a)]:String(_0x1513f6)};}}export function formatValidationFailure(_0x57e7b8){const _0x31e79a=a34_0x2cf5c5,_0x4a5475=_0x57e7b8[_0x31e79a(0x136)][_0x31e79a(0x11f)](_0x40210c=>_0x40210c['path']+':\x20'+_0x40210c[_0x31e79a(0x10a)]);return _0x31e79a(0x111)+_0x4a5475[_0x31e79a(0x133)]('\x0a');}function extractLoadedServiceManifests(_0x22bd4a,_0x4c171a){if(!isServiceRegistryLike(_0x22bd4a)){const _0x2a804f=_0x22bd4a,_0x216ade=validateServiceTreeManifest(_0x2a804f);return[{'manifest':_0x2a804f,'report':_0x216ade,'normalizedManifest':_0x216ade['ok']?normalizeServiceTreeManifest(_0x2a804f):undefined,'sourceHash':_0x4c171a}];}return _0x22bd4a['services']['map']((_0x2b8dba,_0x342b52)=>{const _0x149780=a34_0x5488,_0x105185=isObjectRecord(_0x2b8dba)?_0x2b8dba[_0x149780(0x13d)]:undefined,_0x5d6287=validateServiceTreeManifest(_0x105185),_0x156ad2=isObjectRecord(_0x2b8dba)&&typeof _0x2b8dba[_0x149780(0x127)]===_0x149780(0x101)?_0x2b8dba[_0x149780(0x127)]:undefined;return{'manifest':_0x105185,'report':_0x5d6287,'normalizedManifest':_0x5d6287['ok']?normalizeServiceTreeManifest(_0x105185):undefined,'sourceHash':sha256(JSON[_0x149780(0x146)](_0x105185,null,0x2)+'\x0a'),'registryIndex':_0x342b52,'registryServiceCode':_0x156ad2};});}function aggregateValidationReports(_0x1730bf){const _0x36e777=a34_0x2cf5c5,_0x568fa3=_0x1730bf[_0x36e777(0x131)](_0x579599=>_0x579599['registryIndex']===undefined?_0x579599[_0x36e777(0x10e)]['errors']:_0x579599[_0x36e777(0x10e)][_0x36e777(0x136)][_0x36e777(0x11f)](_0x3ee379=>({..._0x3ee379,'path':prefixRegistryIssuePath(_0x579599['registryIndex'],_0x3ee379[_0x36e777(0x119)])}))),_0x413938=_0x1730bf['flatMap'](_0x29009b=>_0x29009b[_0x36e777(0x10c)]===undefined?_0x29009b[_0x36e777(0x10e)][_0x36e777(0x12b)]:_0x29009b[_0x36e777(0x10e)][_0x36e777(0x12b)]['map'](_0x68e13d=>({..._0x68e13d,'path':prefixRegistryIssuePath(_0x29009b[_0x36e777(0x10c)],_0x68e13d['path'])})));return{'ok':_0x568fa3[_0x36e777(0x106)]===0x0,'errors':_0x568fa3,'warnings':_0x413938};}function prefixRegistryIssuePath(_0x341c5d,_0xc1fe86){const _0x436c9e=a34_0x2cf5c5;if(_0xc1fe86==='$')return _0x436c9e(0xfe)+_0x341c5d+'].manifest';if(_0xc1fe86[_0x436c9e(0x112)]('$.'))return _0x436c9e(0xfe)+_0x341c5d+'].manifest'+_0xc1fe86[_0x436c9e(0xfd)](0x1);if(_0xc1fe86[_0x436c9e(0x112)]('$['))return _0x436c9e(0xfe)+_0x341c5d+'].manifest'+_0xc1fe86[_0x436c9e(0xfd)](0x1);return _0x436c9e(0xfe)+_0x341c5d+'].manifest.'+_0xc1fe86;}function a34_0x5488(_0x847316,_0x419c75){_0x847316=_0x847316-0xfb;const _0x1d23f5=a34_0x1d23();let _0x548848=_0x1d23f5[_0x847316];return _0x548848;}function isServiceRegistryLike(_0x38ab94){const _0xb325d9=a34_0x2cf5c5;return isObjectRecord(_0x38ab94)&&_0x38ab94[_0xb325d9(0x118)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0xb325d9(0x13e)](_0x38ab94[_0xb325d9(0x115)]);}function isObjectRecord(_0x3c5637){const _0x4a8a9f=a34_0x2cf5c5;return Boolean(_0x3c5637)&&typeof _0x3c5637===_0x4a8a9f(0x135)&&!Array[_0x4a8a9f(0x13e)](_0x3c5637);}function emptyServiceRegistryInspection(_0x27da1d,_0x4c4804,_0x29608b){return{'registryPath':_0x27da1d,'exists':_0x29608b,'status':_0x4c4804,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x26f95f){const _0x1dd35e=a34_0x2cf5c5,_0x1b3343=_0x26f95f[_0x1dd35e(0x13c)],_0x4e6840=_0x1b3343['commands'][_0x1dd35e(0x11f)](_0x3f5079=>({'path':_0x3f5079[_0x1dd35e(0x142)],'description':_0x3f5079[_0x1dd35e(0x12a)],'risk':_0x3f5079['risk'],'targetKind':_0x3f5079['target'][_0x1dd35e(0x132)],'targetCommand':_0x3f5079[_0x1dd35e(0x11c)][_0x1dd35e(0x103)]}));return{'serviceCode':_0x26f95f['serviceCode'],'name':_0x1b3343[_0x1dd35e(0x104)][_0x1dd35e(0x102)],'description':_0x1b3343[_0x1dd35e(0x104)]['description'],'version':_0x26f95f['version'],'importedAt':_0x26f95f[_0x1dd35e(0xfb)],'source':_0x26f95f[_0x1dd35e(0x139)],'commandCount':_0x4e6840[_0x1dd35e(0x106)],'commands':_0x4e6840};}function a34_0x1d23(){const _0x5464f0=['now','schemaVersion','path','utf8','parse','target','push','updatedAt','map','update','missing','digest','service.json','homeDir','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','localeCompare','serviceCode','446465ZfqbuL','7756680gmWyfm','description','warnings','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','empty','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','sha256','36vUKeNe','flatMap','kind','join','Invalid\x20service\x20registry\x20JSON:\x20','object','errors','441dLACPj','24380wrTUyF','source','code','.tmp','normalizedManifest','manifest','isArray','ENOENT','invalid','Remove\x20or\x20migrate\x20','cliPath','sourceHash','Unsupported\x20schemaVersion:\x20','Invalid\x20service\x20manifest\x20JSON:\x20','stringify','25825131EPpAqI','importedAt','trim','slice','$.services[','validation','CliError','string','name','command','service','services\x20must\x20be\x20an\x20array','length','find','splice','3536194DhZFzi','message','Local\x20service\x20not\x20found:\x20','registryIndex','540947HCtnEM','report','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','Cannot\x20write\x20service\x20registry:\x20','Service\x20manifest\x20validation\x20failed:\x0a','startsWith','hex','toISOString','services','12276285kxlFvB'];a34_0x1d23=function(){return _0x5464f0;};return a34_0x1d23();}function sha256(_0x2dadec){const _0xb57512=a34_0x2cf5c5;return createHash(_0xb57512(0x12f))[_0xb57512(0x120)](_0x2dadec)[_0xb57512(0x122)](_0xb57512(0x113));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a35_0x3ad629=a35_0x49a2;(function(_0x93fae3,_0x57e00e){const _0x3a3e61=a35_0x49a2,_0x42fce0=_0x93fae3();while(!![]){try{const _0x2481ae=-parseInt(_0x3a3e61(0x135))/0x1+parseInt(_0x3a3e61(0x109))/0x2*(-parseInt(_0x3a3e61(0x128))/0x3)+parseInt(_0x3a3e61(0x11e))/0x4*(-parseInt(_0x3a3e61(0x137))/0x5)+-parseInt(_0x3a3e61(0x138))/0x6*(parseInt(_0x3a3e61(0xd3))/0x7)+parseInt(_0x3a3e61(0xf7))/0x8+parseInt(_0x3a3e61(0xe3))/0x9+-parseInt(_0x3a3e61(0x120))/0xa*(-parseInt(_0x3a3e61(0xe7))/0xb);if(_0x2481ae===_0x57e00e)break;else _0x42fce0['push'](_0x42fce0['shift']());}catch(_0x110fe2){_0x42fce0['push'](_0x42fce0['shift']());}}}(a35_0x58c0,0xeda2e));function a35_0x58c0(){const _0x412e9c=['strict','envName','filter','dir','skillCode','map','content','tags','str','2134bhNawk','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','Pulled\x20','Unsupported\x20Skill\x20list\x20scope:\x20','installToAgent','\x20personal\x20and\x20','version','Pull\x20runtime\x20Skills\x20into\x20the\x20local\x20development\x20cache','boolean','\x20local\x20Skill(s).','Read\x20CLI-managed\x20local\x20Skill\x20cache\x20and\x20links\x20instead\x20of\x20remote\x20lists','object','skillDir','remote','unchanged','Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','force','trim','../../core/api-client.js','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','user','4904ozWHmd','path','40TKNOTu','Listed\x20','all','create','Skill\x20template\x20type','target','type','linkedPaths','597MorbHG','isArray','SKILL.md','removed','effective','skill','appCode','\x20company\x20Skill(s).','skillName','local','updated','warnings','Push\x20a\x20local\x20Skill\x20directory\x20to\x20personal\x20runtime\x20Skill\x20scope','22092WBNJze','name','6910uGkrBl','24DksaIK','Local\x20Skill\x20directory\x20containing\x20SKILL.md','read','\x20remote\x20Skill(s).','production','Updated\x20personal\x20Skill\x20','791PqACGE','write','ossPath','pulledAt','builtin','personal','skillMdPath','string','rendered','pull','code','scope','Unsupported\x20Skill\x20pull\x20scope:\x20','public','Created\x20local\x20Skill\x20draft\x20','length','10151874EqqzMT','files','company','treeHash','1680162uFWAcJ','readonly','Skill\x20validation\x20passed.','Skill\x20list\x20scope:\x20user,\x20personal,\x20company,\x20public,\x20or\x20all','bool','install','Overwrite\x20generated\x20files\x20when\x20the\x20Skill\x20directory\x20already\x20exists','reduce','metadataPath','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','input','action','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','lowercase\x20letters,\x20numbers,\x20and\x20single\x20hyphens','9308904oulobP','accessKey','some','isSymbolicLink','push','validation','authRequired','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','../../skills/runtime-skill-sync.js'];a35_0x58c0=function(){return _0x412e9c;};return a35_0x58c0();}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';function a35_0x49a2(_0x37438f,_0x2b3ab7){_0x37438f=_0x37438f-0xce;const _0x58c071=a35_0x58c0();let _0x49a2d0=_0x58c071[_0x37438f];return _0x49a2d0;}const CODE_FLAG={'name':a35_0x3ad629(0xdd),'type':'string','description':'Only\x20target\x20a\x20specific\x20runtime\x20Skill\x20code'},SCOPE_FLAG={'name':a35_0x3ad629(0xde),'type':a35_0x3ad629(0xda),'description':'Skill\x20pull\x20scope:\x20user\x20(personal/company)'},LIST_SCOPE_FLAG={'name':'scope','type':a35_0x3ad629(0xda),'description':a35_0x3ad629(0xea),'enum':[a35_0x3ad629(0x11d),a35_0x3ad629(0xd8),a35_0x3ad629(0xe5),a35_0x3ad629(0xe0),a35_0x3ad629(0x122)]},LOCAL_FLAG={'name':a35_0x3ad629(0x131),'type':a35_0x3ad629(0x111),'description':a35_0x3ad629(0x113)},DIR_FLAG={'name':'dir','type':a35_0x3ad629(0xda),'required':!![],'description':a35_0x3ad629(0xce)},CREATE_NAME_FLAG={'name':a35_0x3ad629(0x136),'type':a35_0x3ad629(0xda),'required':!![],'description':'Skill\x20name\x20using\x20lowercase\x20letters,\x20numbers,\x20and\x20hyphens','pattern':{'regex':SKILL_NAME_PATTERN,'description':a35_0x3ad629(0xf6)}},TYPE_FLAG={'name':a35_0x3ad629(0x126),'type':'string','description':a35_0x3ad629(0x124),'default':a35_0x3ad629(0xd4),'enum':[...SKILL_TYPES]},TARGET_FLAG={'name':a35_0x3ad629(0x125),'type':a35_0x3ad629(0xda),'description':'Directory\x20that\x20will\x20contain\x20the\x20generated\x20Skill\x20directory','default':DEFAULT_SKILL_TARGET},FORCE_FLAG={'name':'force','type':a35_0x3ad629(0x111),'description':a35_0x3ad629(0xed)},STRICT_FLAG={'name':a35_0x3ad629(0x100),'type':'boolean','description':'Compatibility\x20flag;\x20no\x20extra\x20checks\x20are\x20enabled'};function summarizeRuntimeSkill(_0x5ad709){const _0x1577bd=a35_0x3ad629;return{'id':_0x5ad709['id'],'skillCode':_0x5ad709[_0x1577bd(0x104)],'skillName':_0x5ad709[_0x1577bd(0x130)],'scope':_0x5ad709[_0x1577bd(0xde)],'version':_0x5ad709[_0x1577bd(0x10f)],'readonly':_0x5ad709[_0x1577bd(0xe8)]};}function summarizeLocalRuntimeSkill(_0x8754b2){const _0x1f3c36=a35_0x3ad629;return{'id':_0x8754b2['id'],'skillCode':_0x8754b2['skillCode'],'skillName':_0x8754b2['skillName'],'scope':_0x8754b2[_0x1f3c36(0xde)],'appCode':_0x8754b2[_0x1f3c36(0x12e)],'version':_0x8754b2['version'],'status':_0x8754b2['status'],'readonly':_0x8754b2[_0x1f3c36(0xe8)],'tags':_0x8754b2[_0x1f3c36(0x107)],'dir':_0x8754b2[_0x1f3c36(0x103)],'cacheDir':_0x8754b2['cacheDir'],'skillMdPath':_0x8754b2[_0x1f3c36(0xd9)],'metadataPath':_0x8754b2[_0x1f3c36(0xef)],'linkedPaths':_0x8754b2[_0x1f3c36(0x127)],'contentHash':_0x8754b2['contentHash'],'treeHash':_0x8754b2[_0x1f3c36(0xe6)],'pulledAt':_0x8754b2[_0x1f3c36(0xd6)]};}export const skillDefinitions=[{'service':a35_0x3ad629(0x12d),'command':a35_0x3ad629(0xec),'description':a35_0x3ad629(0x11c),'risk':a35_0x3ad629(0xd4),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG],async 'execute'(_0x365f15){return syncRuntimeSkills(_0x365f15,{'installToAgent':!![]});}},{'service':a35_0x3ad629(0x12d),'command':a35_0x3ad629(0x123),'description':a35_0x3ad629(0xf4),'risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x48e80d){const _0xe49e57=a35_0x3ad629,_0x15817b=buildSkillCreatePlan(_0x48e80d['str'](_0xe49e57(0x136)),_0x48e80d[_0xe49e57(0x108)]('type'),_0x48e80d[_0xe49e57(0x108)]('target'));return{'method':'WRITE','url':_0x15817b[_0xe49e57(0x115)],'body':{'skillName':_0x15817b[_0xe49e57(0xdb)]['skillName'],'type':_0x15817b[_0xe49e57(0xdb)][_0xe49e57(0x126)],'selfContained':!![],'files':_0x15817b[_0xe49e57(0xdb)][_0xe49e57(0xe4)][_0xe49e57(0x105)](_0x1f2321=>_0x1f2321['path'])},'description':_0xe49e57(0xfe)};},async 'execute'(_0x415306){const _0x4fe3e8=a35_0x3ad629,_0x59d640=buildSkillCreatePlan(_0x415306[_0x4fe3e8(0x108)](_0x4fe3e8(0x136)),_0x415306[_0x4fe3e8(0x108)](_0x4fe3e8(0x126)),_0x415306['str'](_0x4fe3e8(0x125)));return writeSkillDraft(_0x59d640,_0x415306[_0x4fe3e8(0xeb)](_0x4fe3e8(0x119))),{'ok':!![],'data':{'skillName':_0x59d640[_0x4fe3e8(0xdb)]['skillName'],'type':_0x59d640[_0x4fe3e8(0xdb)][_0x4fe3e8(0x126)],'dir':_0x59d640[_0x4fe3e8(0x115)],'files':_0x59d640['rendered'][_0x4fe3e8(0xe4)][_0x4fe3e8(0x105)](_0x5da1cf=>_0x5da1cf['path'])},'message':_0x4fe3e8(0xe1)+_0x59d640[_0x4fe3e8(0xdb)]['skillName']};}},{'service':a35_0x3ad629(0x12d),'command':'validate','description':a35_0x3ad629(0x118),'risk':a35_0x3ad629(0xcf),'requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x525364){const _0x54da6c=a35_0x3ad629,_0x5c8cfc=_0x525364[_0x54da6c(0xeb)](_0x54da6c(0x100)),_0xc311ea=validateSkillDirectory(_0x525364['str'](_0x54da6c(0x103)),{'strict':_0x5c8cfc});return throwIfSkillValidationFailed(_0xc311ea,_0x5c8cfc),{'ok':!![],'data':{'dir':_0xc311ea[_0x54da6c(0x103)],'type':_0xc311ea[_0x54da6c(0x126)],'errors':_0xc311ea['errors'],'warnings':_0xc311ea[_0x54da6c(0x133)]},'message':_0x54da6c(0xe9)};}},{'service':a35_0x3ad629(0x12d),'command':'list','description':a35_0x3ad629(0xf0),'risk':'read','flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG],async 'execute'(_0x4c0152){const _0x2007c2=a35_0x3ad629,_0x11e2e6=_0x4c0152[_0x2007c2(0x108)]('code'),_0x503e67=normalizeListScope(_0x4c0152[_0x2007c2(0x108)](_0x2007c2(0xde)));if(_0x4c0152[_0x2007c2(0xeb)]('local')){const _0x293e23=_0x4c0152[_0x2007c2(0xf8)];if(!_0x293e23)throw CliErrors[_0x2007c2(0xfd)]();const _0x29a712=_0x503e67===_0x2007c2(0xe0)?[]:await((async()=>{const _0x1028bf=_0x2007c2,{listLocalRuntimeSkills:_0x3acc48}=await import(_0x1028bf(0xff));return _0x3acc48({'env':_0x4c0152['envName']??_0x1028bf(0xd1),'accessKey':_0x293e23,'appCode':_0x4c0152['appCode'],'scopes':listScopeToRuntimeScopes(_0x503e67),'code':_0x11e2e6[_0x1028bf(0x11a)]()||undefined});})()),_0x2430a4=groupLocalRuntimeSkills(_0x29a712);return{'ok':!![],'data':{'appCode':_0x4c0152[_0x2007c2(0x12e)],'source':'local','scope':_0x503e67,'total':_0x29a712[_0x2007c2(0xe2)],'personal':_0x2430a4[_0x2007c2(0xd8)][_0x2007c2(0xe2)],'company':_0x2430a4[_0x2007c2(0xe5)][_0x2007c2(0xe2)],'public':0x0,'items':_0x29a712['map'](summarizeLocalRuntimeSkill),'skills':{'personal':_0x2430a4[_0x2007c2(0xd8)][_0x2007c2(0x105)](summarizeLocalRuntimeSkill),'company':_0x2430a4[_0x2007c2(0xe5)][_0x2007c2(0x105)](summarizeLocalRuntimeSkill),'public':[]}},'message':_0x2007c2(0x121)+_0x29a712['length']+_0x2007c2(0x112)};}const {listRuntimeSkills:_0x520369}=await import('../../core/api-client.js'),_0x33cc9a=await _0x520369({'appCode':_0x4c0152[_0x2007c2(0x12e)],'scope':listScopeToRemoteScope(_0x503e67),'code':_0x11e2e6['trim']()||undefined}),_0x121215=shouldListScope(_0x503e67,_0x2007c2(0xd8))?_0x33cc9a[_0x2007c2(0xd8)]:[],_0xf07fbb=shouldListScope(_0x503e67,_0x2007c2(0xe5))?_0x33cc9a[_0x2007c2(0xe5)]:[],_0x369ae8=shouldListScope(_0x503e67,'public')?_0x33cc9a[_0x2007c2(0xe0)]:[],_0x8ae05a=_0x503e67===_0x2007c2(0x11d)?_0x33cc9a[_0x2007c2(0x12c)]:[..._0x121215,..._0xf07fbb,..._0x369ae8];return{'ok':!![],'data':{'appCode':_0x4c0152[_0x2007c2(0x12e)],'source':_0x2007c2(0x116),'scope':_0x503e67,'total':_0x8ae05a['length'],'personal':_0x121215['length'],'company':_0xf07fbb[_0x2007c2(0xe2)],'public':_0x369ae8[_0x2007c2(0xe2)],'items':_0x8ae05a['map'](summarizeRuntimeSkill),'skills':{'personal':_0x121215[_0x2007c2(0x105)](summarizeRuntimeSkill),'company':_0xf07fbb['map'](summarizeRuntimeSkill),'public':_0x369ae8[_0x2007c2(0x105)](summarizeRuntimeSkill)}},'message':_0x2007c2(0x121)+_0x8ae05a[_0x2007c2(0xe2)]+_0x2007c2(0xd0)};}},{'service':a35_0x3ad629(0x12d),'command':a35_0x3ad629(0xdc),'description':a35_0x3ad629(0x110),'risk':'write','flags':[CODE_FLAG,SCOPE_FLAG],async 'execute'(_0x4bcf4b){return syncRuntimeSkills(_0x4bcf4b,{'installToAgent':![]});}},{'service':a35_0x3ad629(0x12d),'command':a35_0x3ad629(0xfb),'description':a35_0x3ad629(0x134),'risk':a35_0x3ad629(0xd4),'flags':[DIR_FLAG],async 'execute'(_0x2133de){const _0x10b330=a35_0x3ad629,{createPersonalRuntimeSkill:_0x53d78e,downloadRuntimeSkillPackage:_0x2aab19,listRuntimeSkills:_0xcfef70,updatePersonalRuntimeSkill:_0x5023cc}=await import(_0x10b330(0x11b)),{verifyRuntimeSkillPackage:_0x4daaa7,verifyRuntimeSkillBundle:_0xd1d23,readPushDirectory:_0x3d3e90,recordPushedRuntimeSkill:_0x502482}=await import(_0x10b330(0xff));if(!_0x2133de[_0x10b330(0xf8)])throw CliErrors[_0x10b330(0xfd)]();const _0x1252aa=_0x2133de[_0x10b330(0x108)](_0x10b330(0x103)),_0x5e7e3b=validateSkillDirectory(_0x1252aa);throwIfSkillValidationFailed(_0x5e7e3b);const _0x6b6c3e=_0x5e7e3b[_0x10b330(0x103)],_0x548c87=_0x3d3e90(_0x6b6c3e,_0x2133de[_0x10b330(0x12e)]),_0x5e5461=(await _0xcfef70({'appCode':_0x2133de[_0x10b330(0x12e)],'scope':_0x10b330(0xd8)}))[_0x10b330(0xd8)]['find'](_0x17ac1f=>_0x17ac1f['skillCode']===_0x548c87[_0x10b330(0x104)]),_0x52dc21=_0x5e5461?await _0x5023cc(_0x548c87[_0x10b330(0x104)],_0x2133de[_0x10b330(0x12e)],_0x548c87[_0x10b330(0xf1)]):await _0x53d78e(_0x2133de['appCode'],_0x548c87[_0x10b330(0xf1)]);let _0x309b8e=_0x52dc21;if(isMultiFileManifest(_0x548c87[_0x10b330(0xf1)][_0x10b330(0xe4)])){const _0x54fe99=await _0x2aab19(_0x10b330(0xd8),_0x52dc21[_0x10b330(0x104)]||_0x548c87[_0x10b330(0x104)],_0x2133de[_0x10b330(0x12e)]);_0xd1d23(_0x548c87['input'][_0x10b330(0xe4)],_0x54fe99),_0x309b8e={..._0x52dc21,'files':_0x548c87[_0x10b330(0xf1)][_0x10b330(0xe4)]};}else{if(isPackageBackedManifest(_0x52dc21[_0x10b330(0xe4)])){const _0x282fe4=await _0x2aab19('personal',_0x52dc21[_0x10b330(0x104)]||_0x548c87[_0x10b330(0x104)],_0x2133de[_0x10b330(0x12e)]);_0x4daaa7(_0x52dc21[_0x10b330(0xe4)],_0x282fe4);}}return _0x502482(_0x6b6c3e,_0x309b8e,_0x2133de[_0x10b330(0x12e)]),{'ok':!![],'data':summarizeRuntimeSkill(_0x52dc21),'message':_0x5e5461?_0x10b330(0xd2)+_0x548c87[_0x10b330(0x104)]:'Created\x20personal\x20Skill\x20'+_0x548c87[_0x10b330(0x104)]};}}];async function syncRuntimeSkills(_0x257b86,_0x4d2554){const _0xae1335=a35_0x3ad629,{downloadRuntimeSkillPackage:_0xe20533,listRuntimeSkills:_0x34654e}=await import(_0xae1335(0x11b)),{linkEffectiveRuntimeSkills:_0x1342c3,materializeRuntimeSkill:_0x461dc3,pruneStaleRuntimeSkillCache:_0x301af3,pruneStaleRuntimeSkillLinks:_0x5033e5}=await import(_0xae1335(0xff)),_0x4822fa=_0x257b86['str'](_0xae1335(0xdd));normalizePullScope(_0x257b86[_0xae1335(0x108)]('scope'));const _0x243a64=_0x257b86[_0xae1335(0x101)]??_0xae1335(0xd1),_0x864e17=_0x257b86[_0xae1335(0xf8)];if(!_0x864e17){if(_0x4d2554[_0xae1335(0x10d)])throw CliErrors[_0xae1335(0xfd)](_0xae1335(0xf3));throw CliErrors[_0xae1335(0xfd)]();}const _0x54ffa0=await _0x34654e({'appCode':_0x257b86[_0xae1335(0x12e)],'scope':_0xae1335(0x11d),'code':_0x4822fa[_0xae1335(0x11a)]()||undefined}),_0x4b13b1=_0x54ffa0[_0xae1335(0xd8)],_0x48f960=_0x54ffa0['company'],_0x39e236=new Set([..._0x4b13b1[_0xae1335(0x105)](_0x29b10d=>_0x29b10d[_0xae1335(0x104)]?.['trim']())[_0xae1335(0x102)](_0x1a7648=>Boolean(_0x1a7648)),..._0x48f960[_0xae1335(0x105)](_0x8d2fc0=>_0x8d2fc0[_0xae1335(0x104)]?.[_0xae1335(0x11a)]())[_0xae1335(0x102)](_0x11261b=>Boolean(_0x11261b))]),_0x49dfd3=_0x4822fa['trim']()?[_0x4822fa[_0xae1335(0x11a)]()]:undefined,_0x22b977=_0x4d2554[_0xae1335(0x10d)]?_0x5033e5(_0x257b86[_0xae1335(0x12e)],_0x39e236,{},_0x49dfd3):[],_0x268c12=_0x301af3({'env':_0x243a64,'accessKey':_0x864e17,'appCode':_0x257b86[_0xae1335(0x12e)],'activeSkillCodes':_0x39e236,'pruneSkillCodes':_0x49dfd3}),_0x5a96d4=[];for(const _0x555cf5 of _0x4b13b1){_0x5a96d4[_0xae1335(0xfb)](_0x461dc3(_0x555cf5,_0xae1335(0xd8),{'env':_0x243a64,'accessKey':_0x864e17,'appCode':_0x257b86[_0xae1335(0x12e)],'packageBytes':await downloadPackageIfNeeded(_0x555cf5,_0xae1335(0xd8),_0x257b86[_0xae1335(0x12e)],_0xe20533)}));}for(const _0xda8b20 of _0x48f960){_0x5a96d4['push'](_0x461dc3(_0xda8b20,_0xae1335(0xe5),{'env':_0x243a64,'accessKey':_0x864e17,'appCode':_0x257b86['appCode'],'packageBytes':await downloadPackageIfNeeded(_0xda8b20,'company',_0x257b86[_0xae1335(0x12e)],_0xe20533)}));}const _0x3e68de=_0x4d2554[_0xae1335(0x10d)]?_0x1342c3(_0x5a96d4,_0x257b86['appCode']):[],_0x20ec6f=countLinkActions(_0x3e68de);return{'ok':!![],'data':{'appCode':_0x257b86[_0xae1335(0x12e)],'personal':_0x4b13b1[_0xae1335(0xe2)],'company':_0x48f960[_0xae1335(0xe2)],'materialized':_0x5a96d4[_0xae1335(0xe2)],'links':{'total':_0x3e68de[_0xae1335(0xe2)],'created':_0x20ec6f['created']??0x0,'updated':_0x20ec6f[_0xae1335(0x132)]??0x0,'unchanged':_0x20ec6f[_0xae1335(0x117)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x22b977[_0xae1335(0x102)](_0x36019d=>_0x36019d[_0xae1335(0xf2)]===_0xae1335(0x12b))[_0xae1335(0xe2)],'cacheDirs':_0x268c12[_0xae1335(0x102)](_0x59b12d=>_0x59b12d['action']==='removed')['length'],'skipped':[..._0x22b977,..._0x268c12][_0xae1335(0x102)](_0x5004c7=>_0x5004c7['action']==='skipped')[_0xae1335(0xe2)]},'skills':{'personal':_0x4b13b1[_0xae1335(0x105)](summarizeRuntimeSkill),'company':_0x48f960['map'](summarizeRuntimeSkill)}},'message':_0x4d2554[_0xae1335(0x10d)]?'Installed\x20'+_0x4b13b1['length']+_0xae1335(0x10e)+_0x48f960['length']+_0xae1335(0x12f):_0xae1335(0x10b)+_0x4b13b1[_0xae1335(0xe2)]+'\x20personal\x20and\x20'+_0x48f960['length']+_0xae1335(0x12f)};}function buildSkillCreatePlan(_0x2c9b08,_0x3050e7,_0x2db7cf){const _0x49449b=a35_0x3ad629,_0x2ac9dc=renderSkillTemplate({'skillName':_0x2c9b08,'type':_0x3050e7}),_0x36fa66=resolve(normalizeSkillTarget(_0x2db7cf));return{'rendered':_0x2ac9dc,'targetRoot':_0x36fa66,'skillDir':resolve(_0x36fa66,_0x2ac9dc[_0x49449b(0x130)])};}function normalizeSkillTarget(_0x5e9407){const _0x13e3d2=a35_0x3ad629;return(_0x5e9407||DEFAULT_SKILL_TARGET)[_0x13e3d2(0x11a)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x4def8f,_0x319ee7){const _0x1e0f3b=a35_0x3ad629;if(existsSync(_0x4def8f['skillDir'])){const _0x174dbf=lstatSync(_0x4def8f['skillDir']);if(!_0x174dbf['isDirectory']()||_0x174dbf[_0x1e0f3b(0xfa)]())throw CliErrors[_0x1e0f3b(0xfc)](_0x1e0f3b(0xf5)+_0x4def8f[_0x1e0f3b(0x115)]);if(!_0x319ee7)throw CliErrors[_0x1e0f3b(0xfc)]('Skill\x20directory\x20already\x20exists:\x20'+_0x4def8f['skillDir'],_0x1e0f3b(0x10a));}for(const _0x70ac02 of _0x4def8f['rendered'][_0x1e0f3b(0xe4)]){const _0x3b1b86=resolve(_0x4def8f[_0x1e0f3b(0x115)],_0x70ac02['path']),_0xe9e6dd=dirname(_0x3b1b86);mkdirSync(_0xe9e6dd,{'recursive':!![]});if(existsSync(_0x3b1b86)&&lstatSync(_0x3b1b86)[_0x1e0f3b(0xfa)]())throw CliErrors[_0x1e0f3b(0xfc)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0x3b1b86);writeFileSync(_0x3b1b86,_0x70ac02[_0x1e0f3b(0x106)],'utf8');}}async function downloadPackageIfNeeded(_0x80fcb0,_0x26851a,_0x2c00de,_0x176bc5){const _0x569946=a35_0x3ad629;if(!isPackageBackedManifest(_0x80fcb0[_0x569946(0xe4)]))return undefined;return _0x176bc5(_0x26851a,_0x80fcb0[_0x569946(0x104)],_0x2c00de);}function normalizePullScope(_0x3bc36f){const _0x56164c=a35_0x3ad629,_0x19df4d=_0x3bc36f[_0x56164c(0x11a)]();if(!_0x19df4d)return _0x56164c(0x11d);if(_0x19df4d===_0x56164c(0x11d))return _0x19df4d;throw CliErrors[_0x56164c(0xfc)](_0x56164c(0xdf)+_0x3bc36f);}function normalizeListScope(_0x35cf3c){const _0x3bcd26=a35_0x3ad629,_0x1c1499=_0x35cf3c[_0x3bcd26(0x11a)]();if(!_0x1c1499)return _0x3bcd26(0x11d);if(_0x1c1499===_0x3bcd26(0x11d)||_0x1c1499===_0x3bcd26(0xd8)||_0x1c1499===_0x3bcd26(0xe5)||_0x1c1499===_0x3bcd26(0xe0)||_0x1c1499===_0x3bcd26(0x122))return _0x1c1499;throw CliErrors[_0x3bcd26(0xfc)](_0x3bcd26(0x10c)+_0x35cf3c);}function shouldListScope(_0x300bf7,_0x118109){const _0x314565=a35_0x3ad629;if(_0x300bf7===_0x314565(0x122))return!![];if(_0x300bf7===_0x314565(0x11d))return _0x118109===_0x314565(0xd8)||_0x118109===_0x314565(0xe5)||_0x118109===_0x314565(0xe0);return _0x300bf7===_0x118109;}function listScopeToRuntimeScopes(_0x4dca01){const _0x32cca3=a35_0x3ad629;if(_0x4dca01===_0x32cca3(0x122))return[_0x32cca3(0xd8),_0x32cca3(0xe5)];if(_0x4dca01==='user')return[_0x32cca3(0xd8),_0x32cca3(0xe5)];if(_0x4dca01===_0x32cca3(0xe0))return[];return[_0x4dca01==='company'?_0x32cca3(0xe5):_0x4dca01];}function listScopeToRemoteScope(_0xd20f18){return _0xd20f18;}function groupLocalRuntimeSkills(_0x825cbc){const _0x20e00b=a35_0x3ad629;return{'personal':_0x825cbc[_0x20e00b(0x102)](_0x49c226=>_0x49c226[_0x20e00b(0xde)]===_0x20e00b(0xd8)),'company':_0x825cbc[_0x20e00b(0x102)](_0x1577ff=>_0x1577ff[_0x20e00b(0xde)]==='company'),'builtin':_0x825cbc[_0x20e00b(0x102)](_0x4915a9=>_0x4915a9[_0x20e00b(0xde)]===_0x20e00b(0xd7))};}function countLinkActions(_0x32f25e){const _0x52295a=a35_0x3ad629;return _0x32f25e[_0x52295a(0xee)]((_0x8aae0b,_0x407c17)=>{return _0x8aae0b[_0x407c17['action']]=(_0x8aae0b[_0x407c17['action']]??0x0)+0x1,_0x8aae0b;},{});}function isPackageBackedManifest(_0x38abe7){const _0x242cc3=a35_0x3ad629;return!!_0x38abe7&&typeof _0x38abe7==='object'&&!Array['isArray'](_0x38abe7)&&typeof _0x38abe7[_0x242cc3(0xd5)]===_0x242cc3(0xda)&&_0x38abe7['ossPath']['length']>0x0&&Array[_0x242cc3(0x129)](_0x38abe7[_0x242cc3(0xe4)]);}function isMultiFileManifest(_0x38f500){const _0x23802a=a35_0x3ad629;return!!_0x38f500&&typeof _0x38f500===_0x23802a(0x114)&&!Array[_0x23802a(0x129)](_0x38f500)&&Array[_0x23802a(0x129)](_0x38f500[_0x23802a(0xe4)])&&_0x38f500[_0x23802a(0xe4)][_0x23802a(0xf9)](_0x3bdbcf=>_0x3bdbcf[_0x23802a(0x11f)]!==_0x23802a(0x12a));}
|
|
1
|
+
const a35_0x2ccec4=a35_0x53bd;(function(_0xf33cc0,_0x4415fe){const _0x205bfe=a35_0x53bd,_0x45b98d=_0xf33cc0();while(!![]){try{const _0x2e154c=parseInt(_0x205bfe(0x1a4))/0x1*(parseInt(_0x205bfe(0x18a))/0x2)+parseInt(_0x205bfe(0x187))/0x3*(parseInt(_0x205bfe(0x179))/0x4)+-parseInt(_0x205bfe(0x14b))/0x5+parseInt(_0x205bfe(0x19b))/0x6+parseInt(_0x205bfe(0x14c))/0x7*(parseInt(_0x205bfe(0x15d))/0x8)+parseInt(_0x205bfe(0x14d))/0x9+parseInt(_0x205bfe(0x163))/0xa*(-parseInt(_0x205bfe(0x193))/0xb);if(_0x2e154c===_0x4415fe)break;else _0x45b98d['push'](_0x45b98d['shift']());}catch(_0x885627){_0x45b98d['push'](_0x45b98d['shift']());}}}(a35_0x9446,0xab647));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';function a35_0x9446(){const _0x4039b6=['path','appCode','pulledAt','find','create','1970140HNYkOY','7PWAxXw','10541646wCxMax','Created\x20local\x20Skill\x20draft\x20','envName','code','Pulled\x20','version','skillCode','installToAgent','Installed\x20','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','validation','errors','linkedPaths','../../skills/runtime-skill-sync.js','string','WRITE','274888NYGBOT','updated','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','map','user','Skill\x20pull\x20scope:\x20user\x20(personal/company)','26159030xmYRQF','strict','Read\x20CLI-managed\x20local\x20Skill\x20cache\x20and\x20links\x20instead\x20of\x20remote\x20lists','warnings','company','Validate\x20a\x20local\x20Skill\x20directory\x20as\x20a\x20self-contained\x20delivery\x20package','effective','Push\x20a\x20local\x20Skill\x20directory\x20to\x20personal\x20runtime\x20Skill\x20scope','skill','length','contentHash','\x20remote\x20Skill(s).','Skill\x20directory\x20already\x20exists:\x20','write','authRequired','Unsupported\x20Skill\x20list\x20scope:\x20','install','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','files','\x20personal\x20and\x20','skillDir','tags','40FGmolk','Skill\x20list\x20scope:\x20user,\x20personal,\x20company,\x20public,\x20or\x20all','type','trim','public','metadataPath','readonly','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','personal','push','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','Unsupported\x20Skill\x20pull\x20scope:\x20','accessKey','scope','104439aScAmh','remote','skipped','2ttWlMH','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','Skill\x20template\x20type','status','all','bool','Directory\x20that\x20will\x20contain\x20the\x20generated\x20Skill\x20directory','name','Created\x20personal\x20Skill\x20','11dUjtTT','\x20local\x20Skill(s).','unchanged','production','Compatibility\x20flag;\x20no\x20extra\x20checks\x20are\x20enabled','content','read','ossPath','4666320kLuowB','../../core/api-client.js','skillMdPath','target','isArray','force','Updated\x20personal\x20Skill\x20','Skill\x20name\x20using\x20lowercase\x20letters,\x20numbers,\x20and\x20hyphens','local','1380449yLIeGW','rendered','created','Pull\x20runtime\x20Skills\x20into\x20the\x20local\x20development\x20cache','boolean','Skill\x20validation\x20passed.','str','filter','removed','Local\x20Skill\x20directory\x20containing\x20SKILL.md','treeHash','Listed\x20','action','skillName','dir','reduce','isSymbolicLink','\x20company\x20Skill(s).','cacheDir','input','pull'];a35_0x9446=function(){return _0x4039b6;};return a35_0x9446();}function a35_0x53bd(_0x4ee51f,_0x4a9654){_0x4ee51f=_0x4ee51f-0x139;const _0x94466a=a35_0x9446();let _0x53bda0=_0x94466a[_0x4ee51f];return _0x53bda0;}import{throwIfSkillValidationFailed,validateSkillDirectory}from'../../commands/skill/validate.js';const CODE_FLAG={'name':'code','type':a35_0x2ccec4(0x15b),'description':'Only\x20target\x20a\x20specific\x20runtime\x20Skill\x20code'},SCOPE_FLAG={'name':a35_0x2ccec4(0x186),'type':a35_0x2ccec4(0x15b),'description':a35_0x2ccec4(0x162)},LIST_SCOPE_FLAG={'name':'scope','type':a35_0x2ccec4(0x15b),'description':a35_0x2ccec4(0x17a),'enum':[a35_0x2ccec4(0x161),'personal','company',a35_0x2ccec4(0x17d),a35_0x2ccec4(0x18e)]},LOCAL_FLAG={'name':a35_0x2ccec4(0x1a3),'type':'boolean','description':a35_0x2ccec4(0x165)},DIR_FLAG={'name':a35_0x2ccec4(0x13f),'type':a35_0x2ccec4(0x15b),'required':!![],'description':a35_0x2ccec4(0x13a)},CREATE_NAME_FLAG={'name':'name','type':a35_0x2ccec4(0x15b),'required':!![],'description':a35_0x2ccec4(0x1a2),'pattern':{'regex':SKILL_NAME_PATTERN,'description':'lowercase\x20letters,\x20numbers,\x20and\x20single\x20hyphens'}},TYPE_FLAG={'name':a35_0x2ccec4(0x17b),'type':a35_0x2ccec4(0x15b),'description':a35_0x2ccec4(0x18c),'default':a35_0x2ccec4(0x170),'enum':[...SKILL_TYPES]},TARGET_FLAG={'name':a35_0x2ccec4(0x19e),'type':'string','description':a35_0x2ccec4(0x190),'default':DEFAULT_SKILL_TARGET},FORCE_FLAG={'name':a35_0x2ccec4(0x1a0),'type':a35_0x2ccec4(0x1a8),'description':'Overwrite\x20generated\x20files\x20when\x20the\x20Skill\x20directory\x20already\x20exists'},STRICT_FLAG={'name':a35_0x2ccec4(0x164),'type':'boolean','description':a35_0x2ccec4(0x197)};function summarizeRuntimeSkill(_0x3c0cd0){const _0x4667de=a35_0x2ccec4;return{'id':_0x3c0cd0['id'],'skillCode':_0x3c0cd0[_0x4667de(0x153)],'skillName':_0x3c0cd0[_0x4667de(0x13e)],'scope':_0x3c0cd0[_0x4667de(0x186)],'version':_0x3c0cd0['version'],'readonly':_0x3c0cd0['readonly']};}function summarizeLocalRuntimeSkill(_0x25eb4b){const _0x1e1bb4=a35_0x2ccec4;return{'id':_0x25eb4b['id'],'skillCode':_0x25eb4b[_0x1e1bb4(0x153)],'skillName':_0x25eb4b[_0x1e1bb4(0x13e)],'scope':_0x25eb4b[_0x1e1bb4(0x186)],'appCode':_0x25eb4b[_0x1e1bb4(0x147)],'version':_0x25eb4b[_0x1e1bb4(0x152)],'status':_0x25eb4b[_0x1e1bb4(0x18d)],'readonly':_0x25eb4b[_0x1e1bb4(0x17f)],'tags':_0x25eb4b[_0x1e1bb4(0x178)],'dir':_0x25eb4b['dir'],'cacheDir':_0x25eb4b[_0x1e1bb4(0x143)],'skillMdPath':_0x25eb4b[_0x1e1bb4(0x19d)],'metadataPath':_0x25eb4b[_0x1e1bb4(0x17e)],'linkedPaths':_0x25eb4b[_0x1e1bb4(0x159)],'contentHash':_0x25eb4b[_0x1e1bb4(0x16d)],'treeHash':_0x25eb4b[_0x1e1bb4(0x13b)],'pulledAt':_0x25eb4b[_0x1e1bb4(0x148)]};}export const skillDefinitions=[{'service':a35_0x2ccec4(0x16b),'command':a35_0x2ccec4(0x173),'description':a35_0x2ccec4(0x18b),'risk':a35_0x2ccec4(0x170),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG],async 'execute'(_0x321055){return syncRuntimeSkills(_0x321055,{'installToAgent':!![]});}},{'service':'skill','command':a35_0x2ccec4(0x14a),'description':a35_0x2ccec4(0x15f),'risk':a35_0x2ccec4(0x170),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x27152a){const _0x2a7662=a35_0x2ccec4,_0xfdaa7a=buildSkillCreatePlan(_0x27152a['str'](_0x2a7662(0x191)),_0x27152a['str'](_0x2a7662(0x17b)),_0x27152a['str'](_0x2a7662(0x19e)));return{'method':_0x2a7662(0x15c),'url':_0xfdaa7a[_0x2a7662(0x177)],'body':{'skillName':_0xfdaa7a[_0x2a7662(0x1a5)][_0x2a7662(0x13e)],'type':_0xfdaa7a[_0x2a7662(0x1a5)]['type'],'selfContained':!![],'files':_0xfdaa7a[_0x2a7662(0x1a5)][_0x2a7662(0x175)][_0x2a7662(0x160)](_0x17a5e4=>_0x17a5e4[_0x2a7662(0x146)])},'description':_0x2a7662(0x174)};},async 'execute'(_0xa00a2a){const _0x31549b=a35_0x2ccec4,_0x20a99f=buildSkillCreatePlan(_0xa00a2a[_0x31549b(0x1aa)](_0x31549b(0x191)),_0xa00a2a[_0x31549b(0x1aa)]('type'),_0xa00a2a[_0x31549b(0x1aa)]('target'));return writeSkillDraft(_0x20a99f,_0xa00a2a[_0x31549b(0x18f)](_0x31549b(0x1a0))),{'ok':!![],'data':{'skillName':_0x20a99f[_0x31549b(0x1a5)][_0x31549b(0x13e)],'type':_0x20a99f[_0x31549b(0x1a5)][_0x31549b(0x17b)],'dir':_0x20a99f['skillDir'],'files':_0x20a99f[_0x31549b(0x1a5)][_0x31549b(0x175)][_0x31549b(0x160)](_0x3e0df0=>_0x3e0df0['path'])},'message':_0x31549b(0x14e)+_0x20a99f[_0x31549b(0x1a5)][_0x31549b(0x13e)]};}},{'service':a35_0x2ccec4(0x16b),'command':'validate','description':a35_0x2ccec4(0x168),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[DIR_FLAG,STRICT_FLAG],async 'execute'(_0x4c6e43){const _0x24c4eb=a35_0x2ccec4,_0x3d4a87=_0x4c6e43[_0x24c4eb(0x18f)](_0x24c4eb(0x164)),_0x46ceff=validateSkillDirectory(_0x4c6e43[_0x24c4eb(0x1aa)](_0x24c4eb(0x13f)),{'strict':_0x3d4a87});return throwIfSkillValidationFailed(_0x46ceff,_0x3d4a87),{'ok':!![],'data':{'dir':_0x46ceff['dir'],'type':_0x46ceff[_0x24c4eb(0x17b)],'errors':_0x46ceff[_0x24c4eb(0x158)],'warnings':_0x46ceff[_0x24c4eb(0x166)]},'message':_0x24c4eb(0x1a9)};}},{'service':a35_0x2ccec4(0x16b),'command':'list','description':a35_0x2ccec4(0x180),'risk':a35_0x2ccec4(0x199),'flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG],async 'execute'(_0xf0a1b5){const _0x3b285f=a35_0x2ccec4,_0xc115d2=_0xf0a1b5[_0x3b285f(0x1aa)](_0x3b285f(0x150)),_0xdcf482=normalizeListScope(_0xf0a1b5[_0x3b285f(0x1aa)]('scope'));if(_0xf0a1b5[_0x3b285f(0x18f)](_0x3b285f(0x1a3))){const _0x12e21e=_0xf0a1b5[_0x3b285f(0x185)];if(!_0x12e21e)throw CliErrors[_0x3b285f(0x171)]();const _0x32cb74=_0xdcf482===_0x3b285f(0x17d)?[]:await((async()=>{const _0x457ae9=_0x3b285f,{listLocalRuntimeSkills:_0x341fc2}=await import(_0x457ae9(0x15a));return _0x341fc2({'env':_0xf0a1b5[_0x457ae9(0x14f)]??'production','accessKey':_0x12e21e,'appCode':_0xf0a1b5[_0x457ae9(0x147)],'scopes':listScopeToRuntimeScopes(_0xdcf482),'code':_0xc115d2[_0x457ae9(0x17c)]()||undefined});})()),_0x289e6d=groupLocalRuntimeSkills(_0x32cb74);return{'ok':!![],'data':{'appCode':_0xf0a1b5[_0x3b285f(0x147)],'source':_0x3b285f(0x1a3),'scope':_0xdcf482,'total':_0x32cb74[_0x3b285f(0x16c)],'personal':_0x289e6d[_0x3b285f(0x181)][_0x3b285f(0x16c)],'company':_0x289e6d['company'][_0x3b285f(0x16c)],'public':0x0,'items':_0x32cb74[_0x3b285f(0x160)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x289e6d[_0x3b285f(0x181)][_0x3b285f(0x160)](summarizeLocalRuntimeSkill),'company':_0x289e6d['company'][_0x3b285f(0x160)](summarizeLocalRuntimeSkill),'public':[]}},'message':_0x3b285f(0x13c)+_0x32cb74['length']+_0x3b285f(0x194)};}const {listRuntimeSkills:_0xb1f668}=await import(_0x3b285f(0x19c)),_0x4a98df=await _0xb1f668({'appCode':_0xf0a1b5[_0x3b285f(0x147)],'scope':listScopeToRemoteScope(_0xdcf482),'code':_0xc115d2[_0x3b285f(0x17c)]()||undefined}),_0x3cec28=shouldListScope(_0xdcf482,_0x3b285f(0x181))?_0x4a98df['personal']:[],_0x15efda=shouldListScope(_0xdcf482,_0x3b285f(0x167))?_0x4a98df['company']:[],_0x34ac68=shouldListScope(_0xdcf482,_0x3b285f(0x17d))?_0x4a98df[_0x3b285f(0x17d)]:[],_0x1ab4f1=_0xdcf482===_0x3b285f(0x161)?_0x4a98df[_0x3b285f(0x169)]:[..._0x3cec28,..._0x15efda,..._0x34ac68];return{'ok':!![],'data':{'appCode':_0xf0a1b5[_0x3b285f(0x147)],'source':_0x3b285f(0x188),'scope':_0xdcf482,'total':_0x1ab4f1[_0x3b285f(0x16c)],'personal':_0x3cec28['length'],'company':_0x15efda['length'],'public':_0x34ac68['length'],'items':_0x1ab4f1[_0x3b285f(0x160)](summarizeRuntimeSkill),'skills':{'personal':_0x3cec28[_0x3b285f(0x160)](summarizeRuntimeSkill),'company':_0x15efda['map'](summarizeRuntimeSkill),'public':_0x34ac68[_0x3b285f(0x160)](summarizeRuntimeSkill)}},'message':'Listed\x20'+_0x1ab4f1[_0x3b285f(0x16c)]+_0x3b285f(0x16e)};}},{'service':a35_0x2ccec4(0x16b),'command':a35_0x2ccec4(0x145),'description':a35_0x2ccec4(0x1a7),'risk':a35_0x2ccec4(0x170),'flags':[CODE_FLAG,SCOPE_FLAG],async 'execute'(_0x824f97){return syncRuntimeSkills(_0x824f97,{'installToAgent':![]});}},{'service':'skill','command':'push','description':a35_0x2ccec4(0x16a),'risk':a35_0x2ccec4(0x170),'flags':[DIR_FLAG],async 'execute'(_0x1595f2){const _0x377d5e=a35_0x2ccec4,{createPersonalRuntimeSkill:_0x4371c5,downloadRuntimeSkillPackage:_0x33d529,listRuntimeSkills:_0x430b5e,updatePersonalRuntimeSkill:_0x5df572}=await import(_0x377d5e(0x19c)),{verifyRuntimeSkillPackage:_0x506152,verifyRuntimeSkillBundle:_0x337a7c,readPushDirectory:_0x17a0e8,recordPushedRuntimeSkill:_0x22ac16}=await import('../../skills/runtime-skill-sync.js');if(!_0x1595f2[_0x377d5e(0x185)])throw CliErrors[_0x377d5e(0x171)]();const _0x428a8e=_0x1595f2[_0x377d5e(0x1aa)](_0x377d5e(0x13f)),_0x8abb69=validateSkillDirectory(_0x428a8e);throwIfSkillValidationFailed(_0x8abb69);const _0x55374c=_0x8abb69[_0x377d5e(0x13f)],_0x286e19=_0x17a0e8(_0x55374c,_0x1595f2['appCode']),_0x162b3a=(await _0x430b5e({'appCode':_0x1595f2[_0x377d5e(0x147)],'scope':_0x377d5e(0x181)}))[_0x377d5e(0x181)][_0x377d5e(0x149)](_0x1b02d8=>_0x1b02d8['skillCode']===_0x286e19['skillCode']),_0x4d628f=_0x162b3a?await _0x5df572(_0x286e19['skillCode'],_0x1595f2[_0x377d5e(0x147)],_0x286e19[_0x377d5e(0x144)]):await _0x4371c5(_0x1595f2['appCode'],_0x286e19[_0x377d5e(0x144)]);let _0x201024=_0x4d628f;if(isMultiFileManifest(_0x286e19[_0x377d5e(0x144)]['files'])){const _0x1ac926=await _0x33d529(_0x377d5e(0x181),_0x4d628f['skillCode']||_0x286e19[_0x377d5e(0x153)],_0x1595f2[_0x377d5e(0x147)]);_0x337a7c(_0x286e19[_0x377d5e(0x144)][_0x377d5e(0x175)],_0x1ac926),_0x201024={..._0x4d628f,'files':_0x286e19[_0x377d5e(0x144)][_0x377d5e(0x175)]};}else{if(isPackageBackedManifest(_0x4d628f[_0x377d5e(0x175)])){const _0x5472eb=await _0x33d529('personal',_0x4d628f[_0x377d5e(0x153)]||_0x286e19[_0x377d5e(0x153)],_0x1595f2[_0x377d5e(0x147)]);_0x506152(_0x4d628f[_0x377d5e(0x175)],_0x5472eb);}}return _0x22ac16(_0x55374c,_0x201024,_0x1595f2['appCode']),{'ok':!![],'data':summarizeRuntimeSkill(_0x4d628f),'message':_0x162b3a?_0x377d5e(0x1a1)+_0x286e19[_0x377d5e(0x153)]:_0x377d5e(0x192)+_0x286e19['skillCode']};}}];async function syncRuntimeSkills(_0x331665,_0x2d943e){const _0x2b7217=a35_0x2ccec4,{downloadRuntimeSkillPackage:_0x5cc3d6,listRuntimeSkills:_0x35c1f8}=await import(_0x2b7217(0x19c)),{linkEffectiveRuntimeSkills:_0x12e3af,materializeRuntimeSkill:_0x3b4c69,pruneStaleRuntimeSkillCache:_0xb9dcee,pruneStaleRuntimeSkillLinks:_0x5c7763}=await import('../../skills/runtime-skill-sync.js'),_0x4dda84=_0x331665[_0x2b7217(0x1aa)](_0x2b7217(0x150));normalizePullScope(_0x331665['str']('scope'));const _0x242e70=_0x331665['envName']??_0x2b7217(0x196),_0x237847=_0x331665['accessKey'];if(!_0x237847){if(_0x2d943e['installToAgent'])throw CliErrors[_0x2b7217(0x171)]('Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.');throw CliErrors[_0x2b7217(0x171)]();}const _0x167c20=await _0x35c1f8({'appCode':_0x331665['appCode'],'scope':_0x2b7217(0x161),'code':_0x4dda84[_0x2b7217(0x17c)]()||undefined}),_0x1e0071=_0x167c20[_0x2b7217(0x181)],_0xd12c73=_0x167c20[_0x2b7217(0x167)],_0x2bd60a=new Set([..._0x1e0071[_0x2b7217(0x160)](_0x2777c1=>_0x2777c1['skillCode']?.[_0x2b7217(0x17c)]())[_0x2b7217(0x1ab)](_0x481c87=>Boolean(_0x481c87)),..._0xd12c73[_0x2b7217(0x160)](_0x1c1e34=>_0x1c1e34[_0x2b7217(0x153)]?.[_0x2b7217(0x17c)]())[_0x2b7217(0x1ab)](_0x18ac35=>Boolean(_0x18ac35))]),_0x401395=_0x4dda84['trim']()?[_0x4dda84[_0x2b7217(0x17c)]()]:undefined,_0x32c7d5=_0x2d943e[_0x2b7217(0x154)]?_0x5c7763(_0x331665[_0x2b7217(0x147)],_0x2bd60a,{},_0x401395):[],_0x5b19d5=_0xb9dcee({'env':_0x242e70,'accessKey':_0x237847,'appCode':_0x331665[_0x2b7217(0x147)],'activeSkillCodes':_0x2bd60a,'pruneSkillCodes':_0x401395}),_0x427d80=[];for(const _0x2e2a55 of _0x1e0071){_0x427d80['push'](_0x3b4c69(_0x2e2a55,_0x2b7217(0x181),{'env':_0x242e70,'accessKey':_0x237847,'appCode':_0x331665['appCode'],'packageBytes':await downloadPackageIfNeeded(_0x2e2a55,_0x2b7217(0x181),_0x331665[_0x2b7217(0x147)],_0x5cc3d6)}));}for(const _0x3855cf of _0xd12c73){_0x427d80[_0x2b7217(0x182)](_0x3b4c69(_0x3855cf,'company',{'env':_0x242e70,'accessKey':_0x237847,'appCode':_0x331665[_0x2b7217(0x147)],'packageBytes':await downloadPackageIfNeeded(_0x3855cf,'company',_0x331665[_0x2b7217(0x147)],_0x5cc3d6)}));}const _0x16bd40=_0x2d943e['installToAgent']?_0x12e3af(_0x427d80,_0x331665[_0x2b7217(0x147)]):[],_0x3ce834=countLinkActions(_0x16bd40);return{'ok':!![],'data':{'appCode':_0x331665[_0x2b7217(0x147)],'personal':_0x1e0071[_0x2b7217(0x16c)],'company':_0xd12c73['length'],'materialized':_0x427d80[_0x2b7217(0x16c)],'links':{'total':_0x16bd40['length'],'created':_0x3ce834[_0x2b7217(0x1a6)]??0x0,'updated':_0x3ce834[_0x2b7217(0x15e)]??0x0,'unchanged':_0x3ce834[_0x2b7217(0x195)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x32c7d5['filter'](_0x5275ae=>_0x5275ae['action']===_0x2b7217(0x139))['length'],'cacheDirs':_0x5b19d5[_0x2b7217(0x1ab)](_0x29783a=>_0x29783a['action']===_0x2b7217(0x139))['length'],'skipped':[..._0x32c7d5,..._0x5b19d5][_0x2b7217(0x1ab)](_0x5a3aa0=>_0x5a3aa0[_0x2b7217(0x13d)]===_0x2b7217(0x189))[_0x2b7217(0x16c)]},'skills':{'personal':_0x1e0071[_0x2b7217(0x160)](summarizeRuntimeSkill),'company':_0xd12c73[_0x2b7217(0x160)](summarizeRuntimeSkill)}},'message':_0x2d943e[_0x2b7217(0x154)]?_0x2b7217(0x155)+_0x1e0071[_0x2b7217(0x16c)]+_0x2b7217(0x176)+_0xd12c73[_0x2b7217(0x16c)]+_0x2b7217(0x142):_0x2b7217(0x151)+_0x1e0071[_0x2b7217(0x16c)]+_0x2b7217(0x176)+_0xd12c73[_0x2b7217(0x16c)]+_0x2b7217(0x142)};}function buildSkillCreatePlan(_0xe2c0d9,_0x28a1c5,_0x2a61ea){const _0x2be426=renderSkillTemplate({'skillName':_0xe2c0d9,'type':_0x28a1c5}),_0x4dd1f2=resolve(normalizeSkillTarget(_0x2a61ea));return{'rendered':_0x2be426,'targetRoot':_0x4dd1f2,'skillDir':resolve(_0x4dd1f2,_0x2be426['skillName'])};}function normalizeSkillTarget(_0x35d06a){const _0xff0b12=a35_0x2ccec4;return(_0x35d06a||DEFAULT_SKILL_TARGET)[_0xff0b12(0x17c)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x225556,_0x565a37){const _0x36e7f6=a35_0x2ccec4;if(existsSync(_0x225556[_0x36e7f6(0x177)])){const _0x2ce273=lstatSync(_0x225556[_0x36e7f6(0x177)]);if(!_0x2ce273['isDirectory']()||_0x2ce273[_0x36e7f6(0x141)]())throw CliErrors[_0x36e7f6(0x157)](_0x36e7f6(0x156)+_0x225556[_0x36e7f6(0x177)]);if(!_0x565a37)throw CliErrors['validation'](_0x36e7f6(0x16f)+_0x225556[_0x36e7f6(0x177)],_0x36e7f6(0x183));}for(const _0x3386ad of _0x225556[_0x36e7f6(0x1a5)][_0x36e7f6(0x175)]){const _0xfc2e15=resolve(_0x225556[_0x36e7f6(0x177)],_0x3386ad[_0x36e7f6(0x146)]),_0x489839=dirname(_0xfc2e15);mkdirSync(_0x489839,{'recursive':!![]});if(existsSync(_0xfc2e15)&&lstatSync(_0xfc2e15)[_0x36e7f6(0x141)]())throw CliErrors[_0x36e7f6(0x157)]('Refusing\x20to\x20overwrite\x20symlink:\x20'+_0xfc2e15);writeFileSync(_0xfc2e15,_0x3386ad[_0x36e7f6(0x198)],'utf8');}}async function downloadPackageIfNeeded(_0x1f2616,_0x185ebc,_0x3dc5bc,_0x342ca7){const _0x141ee2=a35_0x2ccec4;if(!isPackageBackedManifest(_0x1f2616[_0x141ee2(0x175)]))return undefined;return _0x342ca7(_0x185ebc,_0x1f2616['skillCode'],_0x3dc5bc);}function normalizePullScope(_0x4ecb18){const _0x2f96d3=a35_0x2ccec4,_0x234b39=_0x4ecb18[_0x2f96d3(0x17c)]();if(!_0x234b39)return _0x2f96d3(0x161);if(_0x234b39===_0x2f96d3(0x161))return _0x234b39;throw CliErrors[_0x2f96d3(0x157)](_0x2f96d3(0x184)+_0x4ecb18);}function normalizeListScope(_0x14f648){const _0xfc2002=a35_0x2ccec4,_0x422021=_0x14f648[_0xfc2002(0x17c)]();if(!_0x422021)return _0xfc2002(0x161);if(_0x422021==='user'||_0x422021===_0xfc2002(0x181)||_0x422021===_0xfc2002(0x167)||_0x422021===_0xfc2002(0x17d)||_0x422021==='all')return _0x422021;throw CliErrors['validation'](_0xfc2002(0x172)+_0x14f648);}function shouldListScope(_0x1adef8,_0xff33cd){const _0x309302=a35_0x2ccec4;if(_0x1adef8===_0x309302(0x18e))return!![];if(_0x1adef8===_0x309302(0x161))return _0xff33cd===_0x309302(0x181)||_0xff33cd===_0x309302(0x167)||_0xff33cd===_0x309302(0x17d);return _0x1adef8===_0xff33cd;}function listScopeToRuntimeScopes(_0xcfedc9){const _0x2a574b=a35_0x2ccec4;if(_0xcfedc9===_0x2a574b(0x18e))return[_0x2a574b(0x181),_0x2a574b(0x167)];if(_0xcfedc9===_0x2a574b(0x161))return[_0x2a574b(0x181),_0x2a574b(0x167)];if(_0xcfedc9===_0x2a574b(0x17d))return[];return[_0xcfedc9===_0x2a574b(0x167)?_0x2a574b(0x167):_0xcfedc9];}function listScopeToRemoteScope(_0xc76459){return _0xc76459;}function groupLocalRuntimeSkills(_0x3a1417){const _0x28c8f3=a35_0x2ccec4;return{'personal':_0x3a1417[_0x28c8f3(0x1ab)](_0x52d3ea=>_0x52d3ea[_0x28c8f3(0x186)]===_0x28c8f3(0x181)),'company':_0x3a1417[_0x28c8f3(0x1ab)](_0x3a5f54=>_0x3a5f54[_0x28c8f3(0x186)]===_0x28c8f3(0x167)),'builtin':_0x3a1417[_0x28c8f3(0x1ab)](_0x43b320=>_0x43b320[_0x28c8f3(0x186)]==='builtin')};}function countLinkActions(_0x1ca755){const _0x62bef1=a35_0x2ccec4;return _0x1ca755[_0x62bef1(0x140)]((_0x58214d,_0x5653f8)=>{const _0x27f21a=_0x62bef1;return _0x58214d[_0x5653f8['action']]=(_0x58214d[_0x5653f8[_0x27f21a(0x13d)]]??0x0)+0x1,_0x58214d;},{});}function isPackageBackedManifest(_0x387731){const _0x290b26=a35_0x2ccec4;return!!_0x387731&&typeof _0x387731==='object'&&!Array[_0x290b26(0x19f)](_0x387731)&&typeof _0x387731['ossPath']==='string'&&_0x387731[_0x290b26(0x19a)]['length']>0x0&&Array[_0x290b26(0x19f)](_0x387731[_0x290b26(0x175)]);}function isMultiFileManifest(_0x28c2d1){const _0x2f6895=a35_0x2ccec4;return!!_0x28c2d1&&typeof _0x28c2d1==='object'&&!Array[_0x2f6895(0x19f)](_0x28c2d1)&&Array[_0x2f6895(0x19f)](_0x28c2d1[_0x2f6895(0x175)])&&_0x28c2d1[_0x2f6895(0x175)]['some'](_0x3fd388=>_0x3fd388[_0x2f6895(0x146)]!=='SKILL.md');}
|