@lovrabet/lovrabet-cli 2.1.0-beta.3 → 2.1.0

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.
Files changed (85) hide show
  1. package/lib/cli.js +1 -1
  2. package/lib/commands/api-doc/index.js +1 -1
  3. package/lib/commands/app/cache.js +1 -1
  4. package/lib/commands/app/definitions.js +1 -1
  5. package/lib/commands/app/eligibility.js +1 -1
  6. package/lib/commands/app/mock-loader.js +1 -1
  7. package/lib/commands/app/remote-source.js +1 -1
  8. package/lib/commands/app/shared.js +1 -1
  9. package/lib/commands/artifact/index.js +1 -1
  10. package/lib/commands/auth/index.js +1 -1
  11. package/lib/commands/auth/prompt.js +1 -1
  12. package/lib/commands/bff/detail.js +1 -1
  13. package/lib/commands/bff/exec.js +1 -1
  14. package/lib/commands/bff/index.js +1 -1
  15. package/lib/commands/cli-skill/index.js +1 -1
  16. package/lib/commands/common/config-policy.js +1 -1
  17. package/lib/commands/common/constraints.js +1 -1
  18. package/lib/commands/common/flags.js +1 -1
  19. package/lib/commands/config/definitions.js +1 -1
  20. package/lib/commands/config/shared.js +1 -1
  21. package/lib/commands/data/index.js +1 -1
  22. package/lib/commands/dataset/detail.js +1 -1
  23. package/lib/commands/dataset/index.js +1 -1
  24. package/lib/commands/dataset/list.js +1 -1
  25. package/lib/commands/dataset/sdk-doc.js +1 -1
  26. package/lib/commands/doctor.js +1 -1
  27. package/lib/commands/init.js +1 -1
  28. package/lib/commands/kb/index.js +1 -1
  29. package/lib/commands/logs/index.js +1 -1
  30. package/lib/commands/personal-bff/index.js +1 -1
  31. package/lib/commands/registry.js +1 -1
  32. package/lib/commands/schema.js +1 -1
  33. package/lib/commands/service/dynamic.js +1 -1
  34. package/lib/commands/service/index.js +1 -1
  35. package/lib/commands/service/registry.js +1 -1
  36. package/lib/commands/skill/index.js +1 -1
  37. package/lib/commands/skill/templates.js +1 -1
  38. package/lib/commands/skill/validate.js +1 -1
  39. package/lib/commands/sql/detail.js +1 -1
  40. package/lib/commands/sql/exec.js +1 -1
  41. package/lib/commands/sql/index.js +1 -1
  42. package/lib/commands/update.js +1 -1
  43. package/lib/commands/workspace/index.js +1 -1
  44. package/lib/config/schema.js +1 -1
  45. package/lib/constant/app.js +1 -1
  46. package/lib/constant/auth-mode.js +1 -1
  47. package/lib/constant/cli.js +1 -1
  48. package/lib/constant/defaults.js +1 -1
  49. package/lib/constant/distribution.js +1 -1
  50. package/lib/constant/domain.js +1 -1
  51. package/lib/constant/env.js +1 -1
  52. package/lib/constant/output.js +1 -1
  53. package/lib/constant/product.js +1 -1
  54. package/lib/constant/risk.js +1 -1
  55. package/lib/constant/url.js +1 -1
  56. package/lib/context.js +1 -1
  57. package/lib/core/api-client.js +1 -1
  58. package/lib/core/db-resolver.js +1 -1
  59. package/lib/core/sdk-client.js +1 -1
  60. package/lib/errors.js +1 -1
  61. package/lib/framework/build-all-flags.js +1 -1
  62. package/lib/framework/dryrun.js +1 -1
  63. package/lib/framework/flags.js +1 -1
  64. package/lib/framework/help.js +1 -1
  65. package/lib/framework/index.js +1 -1
  66. package/lib/framework/output.js +1 -1
  67. package/lib/framework/preparse.js +1 -1
  68. package/lib/framework/response.js +1 -1
  69. package/lib/framework/runner-confirmation.js +1 -1
  70. package/lib/framework/runner-error.js +1 -1
  71. package/lib/framework/runner.js +1 -1
  72. package/lib/framework/schema-export.js +1 -1
  73. package/lib/framework/types.js +1 -1
  74. package/lib/generated/build-info.js +1 -1
  75. package/lib/help.js +1 -1
  76. package/lib/skills/npx-skills-add.js +1 -1
  77. package/lib/skills/runtime-skill-sync.js +1 -1
  78. package/lib/utils/apply-jq-filter.js +1 -1
  79. package/lib/utils/logger.js +1 -1
  80. package/lib/utils/params.js +1 -1
  81. package/lib/utils/platform.js +1 -1
  82. package/lib/utils/update-notice.js +1 -1
  83. package/lib/utils/version.js +1 -1
  84. package/lib/utils/write-cli-side-channel.js +1 -1
  85. package/package.json +1 -1
@@ -1 +1 @@
1
- const a27_0x3b93ed=a27_0x26ca;(function(_0x36c19e,_0x5f3fd0){const _0x459f2f=a27_0x26ca,_0x33b57c=_0x36c19e();while(!![]){try{const _0x1108e7=-parseInt(_0x459f2f(0xda))/0x1+-parseInt(_0x459f2f(0xd1))/0x2*(parseInt(_0x459f2f(0xd0))/0x3)+-parseInt(_0x459f2f(0xf5))/0x4+-parseInt(_0x459f2f(0xcd))/0x5*(-parseInt(_0x459f2f(0xfb))/0x6)+parseInt(_0x459f2f(0xeb))/0x7*(-parseInt(_0x459f2f(0xe7))/0x8)+-parseInt(_0x459f2f(0xf6))/0x9*(parseInt(_0x459f2f(0xdb))/0xa)+parseInt(_0x459f2f(0xe8))/0xb;if(_0x1108e7===_0x5f3fd0)break;else _0x33b57c['push'](_0x33b57c['shift']());}catch(_0x32ff0a){_0x33b57c['push'](_0x33b57c['shift']());}}}(a27_0x2bf0,0x32930));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';function a27_0x26ca(_0x39043a,_0x24a2d6){_0x39043a=_0x39043a-0xc0;const _0x2bf049=a27_0x2bf0();let _0x26caa1=_0x2bf049[_0x39043a];return _0x26caa1;}import{dryRun}from'../../framework/dryrun.js';const TITLE_FLAG={'name':a27_0x3b93ed(0xfe),'type':a27_0x3b93ed(0xc4),'required':!![],'description':a27_0x3b93ed(0xe1)},FILE_FLAG={'name':'file','type':a27_0x3b93ed(0xc4),'required':!![],'description':a27_0x3b93ed(0xc5)},QUERY_FLAG={'name':'query','type':a27_0x3b93ed(0xc4),'required':!![],'description':'Search\x20query\x20for\x20visible\x20company\x20and\x20personal\x20knowledge'},TOPK_FLAG={'name':a27_0x3b93ed(0xf8),'type':a27_0x3b93ed(0xef),'description':a27_0x3b93ed(0xf2)};function readKnowledgeFile(_0x2063a0){const _0x2a862c=a27_0x3b93ed;if(!_0x2063a0)throw CliErrors[_0x2a862c(0xee)](_0x2a862c(0xd5));if(!existsSync(_0x2063a0))throw CliErrors['validation'](_0x2a862c(0xc7)+_0x2063a0);if(!statSync(_0x2063a0)[_0x2a862c(0xd8)]())throw CliErrors[_0x2a862c(0xee)]('File\x20is\x20not\x20a\x20regular\x20file:\x20'+_0x2063a0);return readFileSync(_0x2063a0,_0x2a862c(0xc1));}function summarizePersonalItem(_0x7401d5){const _0x198cb6=a27_0x3b93ed;return{'id':_0x7401d5['id'],'title':_0x7401d5[_0x198cb6(0xfe)],'version':_0x7401d5['version'],'ragStatus':_0x7401d5[_0x198cb6(0xe9)],'ragErrorMessage':_0x7401d5[_0x198cb6(0xca)],'updateTime':_0x7401d5['updateTime']};}function detailPersonalItem(_0x513161){const _0x147018=a27_0x3b93ed;return{'id':_0x513161['id'],'appCode':_0x513161['appCode'],'scope':_0x513161[_0x147018(0x101)],'userId':_0x513161[_0x147018(0xc3)],'title':_0x513161['title'],'content':_0x513161[_0x147018(0xd4)]??'','version':_0x513161['version'],'ragStatus':_0x513161[_0x147018(0xe9)],'ragErrorMessage':_0x513161[_0x147018(0xca)],'createTime':_0x513161[_0x147018(0xc0)],'updateTime':_0x513161['updateTime']};}function summarizeSearchHit(_0x395afd){const _0x30e72f=a27_0x3b93ed;return{'scope':_0x395afd[_0x30e72f(0x101)],'docId':_0x395afd[_0x30e72f(0xcf)],'score':_0x395afd[_0x30e72f(0xe2)],'weightedScore':_0x395afd['weightedScore'],'content':_0x395afd['content'],'metadata':_0x395afd['metadata']};}function readTopK(_0x2ecbd2){const _0x2f2fe7=a27_0x3b93ed,_0x32e47a=_0x2ecbd2[_0x2f2fe7(0xdf)]('topk');if(_0x32e47a===undefined||_0x32e47a===null||_0x32e47a==='')return undefined;const _0x2b5e02=_0x2ecbd2[_0x2f2fe7(0xc9)]('topk');if(!Number[_0x2f2fe7(0xdc)](_0x2b5e02)||_0x2b5e02<0x1)throw CliErrors['validation'](_0x2f2fe7(0xff));return _0x2b5e02;}const kbList={'service':'kb','command':a27_0x3b93ed(0xfa),'description':a27_0x3b93ed(0x103),'risk':a27_0x3b93ed(0xd6),'flags':[VERBOSE_FLAG],async 'execute'(_0x1abf8f){const _0x26d93b=a27_0x3b93ed,_0x1485eb=await listPersonalKnowledgeBaseItems(_0x1abf8f[_0x26d93b(0x100)]);if(_0x1abf8f['bool'](_0x26d93b(0xcb)))return{'ok':!![],'data':{'total':_0x1485eb[_0x26d93b(0xe6)],'items':_0x1485eb}};return{'ok':!![],'data':{'total':_0x1485eb[_0x26d93b(0xe6)],'items':_0x1485eb[_0x26d93b(0xd9)](summarizePersonalItem)}};}},kbDetail={'service':'kb','command':a27_0x3b93ed(0xd3),'description':a27_0x3b93ed(0xd7),'risk':'read','flags':[{...ID_FLAG,'description':a27_0x3b93ed(0xdd)}],async 'execute'(_0x25a605){const _0x3774eb=a27_0x3b93ed,_0x135c3a=await getPersonalKnowledgeBaseItem(_0x25a605[_0x3774eb(0xc9)]('id'),_0x25a605['appCode']);return{'ok':!![],'data':detailPersonalItem(_0x135c3a)};}},kbCreate={'service':'kb','command':a27_0x3b93ed(0xf0),'description':a27_0x3b93ed(0xf4),'risk':a27_0x3b93ed(0xd2),'flags':[TITLE_FLAG,FILE_FLAG],async 'execute'(_0x53d1c5){const _0x376097=a27_0x3b93ed,_0x458d11=_0x53d1c5[_0x376097(0xf1)](_0x376097(0xfe)),_0x2872ad=readKnowledgeFile(_0x53d1c5[_0x376097(0xf1)](_0x376097(0xe0))),_0x20f3b3=await createPersonalKnowledgeBaseItem(_0x53d1c5[_0x376097(0x100)],{'title':_0x458d11,'content':_0x2872ad});return{'ok':!![],'data':summarizePersonalItem(_0x20f3b3),'message':_0x376097(0xc2)+_0x20f3b3['id']+'\x20('+_0x20f3b3[_0x376097(0xfe)]+')'};},async 'dryRun'(_0x343423){const _0x15515c=a27_0x3b93ed,_0x376c6e=_0x343423[_0x15515c(0xf1)]('title'),_0x28aa06=readKnowledgeFile(_0x343423[_0x15515c(0xf1)](_0x15515c(0xe0)));return dryRun(_0x15515c(0xf7),_0x15515c(0xf9))['body']({'appCode':_0x343423['appCode'],'title':_0x376c6e,'content':_0x28aa06})[_0x15515c(0xc8)](_0x15515c(0xde)+_0x376c6e+'\x22')[_0x15515c(0xf3)]();}},kbUpdate={'service':'kb','command':a27_0x3b93ed(0xea),'description':a27_0x3b93ed(0xec),'risk':a27_0x3b93ed(0xd2),'flags':[{...ID_FLAG,'description':a27_0x3b93ed(0xdd)},{...TITLE_FLAG,'required':![],'description':a27_0x3b93ed(0xfd)},FILE_FLAG],async 'execute'(_0x56f68d){const _0x3cb614=a27_0x3b93ed,_0x37db15=_0x56f68d[_0x3cb614(0xc9)]('id'),_0xf6ca5e=readKnowledgeFile(_0x56f68d[_0x3cb614(0xf1)](_0x3cb614(0xe0))),_0x38faef=_0x56f68d['str'](_0x3cb614(0xfe))||(await getPersonalKnowledgeBaseItem(_0x37db15,_0x56f68d[_0x3cb614(0x100)]))[_0x3cb614(0xfe)],_0x3bf9e7=await updatePersonalKnowledgeBaseItem(_0x37db15,_0x56f68d[_0x3cb614(0x100)],{'title':_0x38faef,'content':_0xf6ca5e});return{'ok':!![],'data':summarizePersonalItem(_0x3bf9e7),'message':_0x3cb614(0xcc)+_0x3bf9e7['id']+'\x20('+_0x3bf9e7[_0x3cb614(0xfe)]+')'};},async 'dryRun'(_0x3716ae){const _0x55cf6b=a27_0x3b93ed,_0x734b41=_0x3716ae['num']('id'),_0x1886b5=readKnowledgeFile(_0x3716ae[_0x55cf6b(0xf1)]('file')),_0x55685f=_0x3716ae[_0x55cf6b(0xf1)]('title')||(await getPersonalKnowledgeBaseItem(_0x734b41,_0x3716ae['appCode']))[_0x55cf6b(0xfe)];return dryRun(_0x55cf6b(0xf7),_0x55cf6b(0xce)+_0x734b41+_0x55cf6b(0xe4))[_0x55cf6b(0x102)]({'appCode':_0x3716ae[_0x55cf6b(0x100)],'title':_0x55685f,'content':_0x1886b5})['description']('Preview:\x20update\x20personal\x20knowledge-base\x20entry\x20'+_0x734b41)['build']();}},kbSearch={'service':'kb','command':a27_0x3b93ed(0xe3),'description':a27_0x3b93ed(0xed),'risk':a27_0x3b93ed(0xd6),'flags':[QUERY_FLAG,TOPK_FLAG],async 'validate'(_0x54c1b6){const _0x14e565=a27_0x3b93ed;if(!_0x54c1b6[_0x14e565(0xf1)]('query')[_0x14e565(0xfc)]())throw CliErrors[_0x14e565(0xee)](_0x14e565(0xe5));readTopK(_0x54c1b6);},async 'execute'(_0x55243f){const _0x35e626=a27_0x3b93ed,_0xa9fe8=_0x55243f[_0x35e626(0xf1)](_0x35e626(0xc6))[_0x35e626(0xfc)](),_0x296341=readTopK(_0x55243f),_0x185e43=await searchKnowledgeBase(_0x55243f['appCode'],{'query':_0xa9fe8,'topK':_0x296341});return{'ok':!![],'data':{'total':_0x185e43['length'],'hits':_0x185e43[_0x35e626(0xd9)](summarizeSearchHit)}};}};function a27_0x2bf0(){const _0x481a38=['validation','number','create','str','Maximum\x20number\x20of\x20search\x20hits\x20to\x20return','build','Create\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','497028zzpIDx','9JoHWtv','POST','topk','/client/knowledge-base/personal/create','list','942342gLzYHv','trim','Override\x20the\x20existing\x20entry\x20title','title','--topk\x20must\x20be\x20a\x20positive\x20number.','appCode','scope','body','List\x20personal\x20knowledge-base\x20entries\x20for\x20the\x20current\x20app','createTime','utf8','Created\x20KB\x20entry\x20','userId','string','Path\x20to\x20a\x20local\x20UTF-8\x20text\x20or\x20Markdown\x20file','query','File\x20not\x20found:\x20','description','num','ragErrorMessage','verbose','Updated\x20KB\x20entry\x20','5lEgIwo','/client/knowledge-base/personal/','docId','6DGlswJ','389744NGthtF','write','detail','content','File\x20path\x20is\x20required.','read','Show\x20one\x20personal\x20knowledge-base\x20entry\x20by\x20id','isFile','map','14099tErDQz','4104310WdKRzG','isFinite','Personal\x20knowledge-base\x20entry\x20ID','Preview:\x20create\x20personal\x20knowledge-base\x20entry\x20\x22','flag','file','Personal\x20knowledge-base\x20entry\x20title','score','search','/update','Search\x20query\x20is\x20required.','length','8QuPMSi','13836185nbaiPv','ragStatus','update','1884463JUyNdb','Update\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','Search\x20visible\x20company\x20and\x20personal\x20knowledge\x20base\x20content'];a27_0x2bf0=function(){return _0x481a38;};return a27_0x2bf0();}export const kbDefinitions=[kbList,kbDetail,kbCreate,kbUpdate,kbSearch];
1
+ const a27_0x314c25=a27_0x1dd4;(function(_0x55f431,_0x560f49){const _0x600115=a27_0x1dd4,_0x3dbeb3=_0x55f431();while(!![]){try{const _0x2b8776=parseInt(_0x600115(0x166))/0x1*(-parseInt(_0x600115(0x14f))/0x2)+parseInt(_0x600115(0x154))/0x3*(parseInt(_0x600115(0x149))/0x4)+-parseInt(_0x600115(0x171))/0x5+-parseInt(_0x600115(0x16c))/0x6+-parseInt(_0x600115(0x178))/0x7+-parseInt(_0x600115(0x173))/0x8+parseInt(_0x600115(0x155))/0x9;if(_0x2b8776===_0x560f49)break;else _0x3dbeb3['push'](_0x3dbeb3['shift']());}catch(_0x5b1b2c){_0x3dbeb3['push'](_0x3dbeb3['shift']());}}}(a27_0x2a06,0xdc4e5));import{existsSync,readFileSync,statSync}from'node:fs';import{createPersonalKnowledgeBaseItem,getPersonalKnowledgeBaseItem,listPersonalKnowledgeBaseItems,searchKnowledgeBase,updatePersonalKnowledgeBaseItem}from'../../core/api-client.js';function a27_0x1dd4(_0x2b535d,_0x18a31){_0x2b535d=_0x2b535d-0x143;const _0x2a0643=a27_0x2a06();let _0x1dd496=_0x2a0643[_0x2b535d];return _0x1dd496;}import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const TITLE_FLAG={'name':a27_0x314c25(0x159),'type':a27_0x314c25(0x15b),'required':!![],'description':a27_0x314c25(0x14d)},FILE_FLAG={'name':a27_0x314c25(0x147),'type':'string','required':!![],'description':a27_0x314c25(0x164)},QUERY_FLAG={'name':a27_0x314c25(0x17e),'type':a27_0x314c25(0x15b),'required':!![],'description':a27_0x314c25(0x146)},TOPK_FLAG={'name':'topk','type':a27_0x314c25(0x145),'description':a27_0x314c25(0x156)};function readKnowledgeFile(_0x1cad6b){const _0x5b2669=a27_0x314c25;if(!_0x1cad6b)throw CliErrors['validation'](_0x5b2669(0x153));if(!existsSync(_0x1cad6b))throw CliErrors[_0x5b2669(0x169)](_0x5b2669(0x152)+_0x1cad6b);if(!statSync(_0x1cad6b)[_0x5b2669(0x157)]())throw CliErrors['validation'](_0x5b2669(0x168)+_0x1cad6b);return readFileSync(_0x1cad6b,_0x5b2669(0x16d));}function summarizePersonalItem(_0x97e310){const _0x57191d=a27_0x314c25;return{'id':_0x97e310['id'],'title':_0x97e310[_0x57191d(0x159)],'version':_0x97e310['version'],'ragStatus':_0x97e310[_0x57191d(0x17d)],'ragErrorMessage':_0x97e310[_0x57191d(0x167)],'updateTime':_0x97e310[_0x57191d(0x170)]};}function detailPersonalItem(_0x9019d9){const _0x40da4d=a27_0x314c25;return{'id':_0x9019d9['id'],'appCode':_0x9019d9[_0x40da4d(0x150)],'scope':_0x9019d9[_0x40da4d(0x162)],'userId':_0x9019d9[_0x40da4d(0x175)],'title':_0x9019d9[_0x40da4d(0x159)],'content':_0x9019d9[_0x40da4d(0x144)]??'','version':_0x9019d9[_0x40da4d(0x15a)],'ragStatus':_0x9019d9[_0x40da4d(0x17d)],'ragErrorMessage':_0x9019d9[_0x40da4d(0x167)],'createTime':_0x9019d9[_0x40da4d(0x16e)],'updateTime':_0x9019d9['updateTime']};}function summarizeSearchHit(_0x10ee2c){const _0x40914b=a27_0x314c25;return{'scope':_0x10ee2c[_0x40914b(0x162)],'docId':_0x10ee2c[_0x40914b(0x174)],'score':_0x10ee2c['score'],'weightedScore':_0x10ee2c['weightedScore'],'content':_0x10ee2c[_0x40914b(0x144)],'metadata':_0x10ee2c[_0x40914b(0x179)]};}function readTopK(_0x922257){const _0x280728=a27_0x314c25,_0x2248a6=_0x922257[_0x280728(0x172)](_0x280728(0x17f));if(_0x2248a6===undefined||_0x2248a6===null||_0x2248a6==='')return undefined;const _0x1d75d1=_0x922257['num'](_0x280728(0x17f));if(!Number['isFinite'](_0x1d75d1)||_0x1d75d1<0x1)throw CliErrors['validation']('--topk\x20must\x20be\x20a\x20positive\x20number.');return _0x1d75d1;}const kbList={'service':'kb','command':a27_0x314c25(0x15e),'description':a27_0x314c25(0x14a),'risk':a27_0x314c25(0x15d),'flags':[VERBOSE_FLAG],async 'execute'(_0x1bfb27){const _0x45b80f=a27_0x314c25,_0x40e58d=await listPersonalKnowledgeBaseItems(_0x1bfb27[_0x45b80f(0x150)]);if(_0x1bfb27['bool'](_0x45b80f(0x180)))return{'ok':!![],'data':{'total':_0x40e58d[_0x45b80f(0x163)],'items':_0x40e58d}};return{'ok':!![],'data':{'total':_0x40e58d[_0x45b80f(0x163)],'items':_0x40e58d[_0x45b80f(0x16b)](summarizePersonalItem)}};}},kbDetail={'service':'kb','command':a27_0x314c25(0x15c),'description':'Show\x20one\x20personal\x20knowledge-base\x20entry\x20by\x20id','risk':a27_0x314c25(0x15d),'flags':[{...ID_FLAG,'description':a27_0x314c25(0x17a)}],async 'execute'(_0xa5b2b2){const _0x444600=a27_0x314c25,_0x363233=await getPersonalKnowledgeBaseItem(_0xa5b2b2[_0x444600(0x17c)]('id'),_0xa5b2b2['appCode']);return{'ok':!![],'data':detailPersonalItem(_0x363233)};}},kbCreate={'service':'kb','command':a27_0x314c25(0x176),'description':a27_0x314c25(0x148),'risk':a27_0x314c25(0x14e),'flags':[TITLE_FLAG,FILE_FLAG],async 'execute'(_0x3880e6){const _0x448a42=a27_0x314c25,_0x4e4c6f=_0x3880e6[_0x448a42(0x151)]('title'),_0x22a447=readKnowledgeFile(_0x3880e6[_0x448a42(0x151)](_0x448a42(0x147))),_0x4a49e5=await createPersonalKnowledgeBaseItem(_0x3880e6['appCode'],{'title':_0x4e4c6f,'content':_0x22a447});return{'ok':!![],'data':summarizePersonalItem(_0x4a49e5),'message':_0x448a42(0x181)+_0x4a49e5['id']+'\x20('+_0x4a49e5['title']+')'};},async 'dryRun'(_0x30b008){const _0x18060d=a27_0x314c25,_0x2e9c50=_0x30b008['str'](_0x18060d(0x159)),_0x3982f0=readKnowledgeFile(_0x30b008['str'](_0x18060d(0x147)));return dryRun(_0x18060d(0x14b),_0x18060d(0x16a))[_0x18060d(0x143)]({'appCode':_0x30b008[_0x18060d(0x150)],'title':_0x2e9c50,'content':_0x3982f0})[_0x18060d(0x14c)](_0x18060d(0x15f)+_0x2e9c50+'\x22')[_0x18060d(0x158)]();}},kbUpdate={'service':'kb','command':a27_0x314c25(0x17b),'description':'Update\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','risk':a27_0x314c25(0x14e),'flags':[{...ID_FLAG,'description':a27_0x314c25(0x17a)},{...TITLE_FLAG,'required':![],'description':a27_0x314c25(0x161)},FILE_FLAG],async 'execute'(_0x39fe80){const _0x266f5a=a27_0x314c25,_0x320186=_0x39fe80[_0x266f5a(0x17c)]('id'),_0x1fa692=readKnowledgeFile(_0x39fe80[_0x266f5a(0x151)]('file')),_0x26161a=_0x39fe80['str'](_0x266f5a(0x159))||(await getPersonalKnowledgeBaseItem(_0x320186,_0x39fe80[_0x266f5a(0x150)]))['title'],_0x399fd2=await updatePersonalKnowledgeBaseItem(_0x320186,_0x39fe80[_0x266f5a(0x150)],{'title':_0x26161a,'content':_0x1fa692});return{'ok':!![],'data':summarizePersonalItem(_0x399fd2),'message':'Updated\x20KB\x20entry\x20'+_0x399fd2['id']+'\x20('+_0x399fd2[_0x266f5a(0x159)]+')'};},async 'dryRun'(_0x28cb13){const _0x4f3d27=a27_0x314c25,_0x5b0c8c=_0x28cb13['num']('id'),_0x30761c=readKnowledgeFile(_0x28cb13[_0x4f3d27(0x151)](_0x4f3d27(0x147))),_0x2c33a2=_0x28cb13[_0x4f3d27(0x151)](_0x4f3d27(0x159))||(await getPersonalKnowledgeBaseItem(_0x5b0c8c,_0x28cb13[_0x4f3d27(0x150)]))[_0x4f3d27(0x159)];return dryRun('POST',_0x4f3d27(0x165)+_0x5b0c8c+_0x4f3d27(0x16f))[_0x4f3d27(0x143)]({'appCode':_0x28cb13[_0x4f3d27(0x150)],'title':_0x2c33a2,'content':_0x30761c})[_0x4f3d27(0x14c)](_0x4f3d27(0x177)+_0x5b0c8c)[_0x4f3d27(0x158)]();}},kbSearch={'service':'kb','command':'search','description':'Search\x20visible\x20company\x20and\x20personal\x20knowledge\x20base\x20content','risk':a27_0x314c25(0x15d),'flags':[QUERY_FLAG,TOPK_FLAG],async 'validate'(_0x5e1d71){const _0x6f9411=a27_0x314c25;if(!_0x5e1d71[_0x6f9411(0x151)](_0x6f9411(0x17e))[_0x6f9411(0x160)]())throw CliErrors[_0x6f9411(0x169)]('Search\x20query\x20is\x20required.');readTopK(_0x5e1d71);},async 'execute'(_0x44a9bf){const _0x1c8e90=a27_0x314c25,_0x5774ba=_0x44a9bf[_0x1c8e90(0x151)](_0x1c8e90(0x17e))[_0x1c8e90(0x160)](),_0x26c701=readTopK(_0x44a9bf),_0x50206d=await searchKnowledgeBase(_0x44a9bf[_0x1c8e90(0x150)],{'query':_0x5774ba,'topK':_0x26c701});return{'ok':!![],'data':{'total':_0x50206d[_0x1c8e90(0x163)],'hits':_0x50206d[_0x1c8e90(0x16b)](summarizeSearchHit)}};}};export const kbDefinitions=[kbList,kbDetail,kbCreate,kbUpdate,kbSearch];function a27_0x2a06(){const _0x26b9e9=['docId','userId','create','Preview:\x20update\x20personal\x20knowledge-base\x20entry\x20','10256519gBAOwI','metadata','Personal\x20knowledge-base\x20entry\x20ID','update','num','ragStatus','query','topk','verbose','Created\x20KB\x20entry\x20','body','content','number','Search\x20query\x20for\x20visible\x20company\x20and\x20personal\x20knowledge','file','Create\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','4zyIzVq','List\x20personal\x20knowledge-base\x20entries\x20for\x20the\x20current\x20app','POST','description','Personal\x20knowledge-base\x20entry\x20title','write','3838njOyVg','appCode','str','File\x20not\x20found:\x20','File\x20path\x20is\x20required.','3712683qMVIIH','56006019HEGphD','Maximum\x20number\x20of\x20search\x20hits\x20to\x20return','isFile','build','title','version','string','detail','read','list','Preview:\x20create\x20personal\x20knowledge-base\x20entry\x20\x22','trim','Override\x20the\x20existing\x20entry\x20title','scope','length','Path\x20to\x20a\x20local\x20UTF-8\x20text\x20or\x20Markdown\x20file','/client/knowledge-base/personal/','863lVTtFe','ragErrorMessage','File\x20is\x20not\x20a\x20regular\x20file:\x20','validation','/client/knowledge-base/personal/create','map','5963628PlzxkG','utf8','createTime','/update','updateTime','8747650nQzaYq','flag','5546376rtxbzW'];a27_0x2a06=function(){return _0x26b9e9;};return a27_0x2a06();}
@@ -1 +1 @@
1
- const a28_0x17fef4=a28_0x2cba;function a28_0x5acf(){const _0x456bcc=['\x20\x20\x20Time:\x20','Clear\x20command\x20history\x20logs','duration','details','10Hsoyrg','\x20\x20\x20Details:\x20','\x20logs:\x0a','\x20\x20\x20Duration:\x20','clear','605vlXyKB','clearLogs','log','stringify','26382SGzuIB','5603653DvbdsZ','timestamp','warn','View\x20command\x20history\x20logs','*\x20Logs\x20cleared','error','toLocaleString','logs','2474120wHImLp','76rYEnde','success','level','en-US','readLogs','4241237AzMpYP','forEach','83819CujqrR','write','20310CFzLpa','9KptpGb','1209512KYmaKP','read','command'];a28_0x5acf=function(){return _0x456bcc;};return a28_0x5acf();}(function(_0x1a9656,_0x1cb756){const _0x244450=a28_0x2cba,_0x417a74=_0x1a9656();while(!![]){try{const _0x29c42f=-parseInt(_0x244450(0x1f5))/0x1+-parseInt(_0x244450(0x1f9))/0x2+parseInt(_0x244450(0x1f7))/0x3*(parseInt(_0x244450(0x1ee))/0x4)+-parseInt(_0x244450(0x1e0))/0x5*(parseInt(_0x244450(0x1e4))/0x6)+parseInt(_0x244450(0x1f3))/0x7+-parseInt(_0x244450(0x1ed))/0x8*(-parseInt(_0x244450(0x1f8))/0x9)+-parseInt(_0x244450(0x200))/0xa*(-parseInt(_0x244450(0x1e5))/0xb);if(_0x29c42f===_0x1cb756)break;else _0x417a74['push'](_0x417a74['shift']());}catch(_0x20d318){_0x417a74['push'](_0x417a74['shift']());}}}(a28_0x5acf,0x51335));import{logger}from'../../utils/logger.js';import{CLI_DISPLAY_NAME}from'../../constant/cli.js';function printLogs(_0x1455c7){const _0x4898ff=a28_0x2cba;if(_0x1455c7['length']===0x0){console[_0x4898ff(0x1e2)]('*\x20No\x20logs\x20found');return;}console['log']('*\x20'+CLI_DISPLAY_NAME+_0x4898ff(0x202)),_0x1455c7[_0x4898ff(0x1f4)]((_0xbcce3a,_0x4293f2)=>{const _0x11586b=_0x4898ff,_0x395e73=new Date(_0xbcce3a[_0x11586b(0x1e6)])[_0x11586b(0x1eb)](_0x11586b(0x1f1)),_0xd83c1c=_0xbcce3a[_0x11586b(0x1f0)]===_0x11586b(0x1ef)?'√':_0xbcce3a['level']===_0x11586b(0x1ea)?'×':_0xbcce3a[_0x11586b(0x1f0)]===_0x11586b(0x1e7)?'!':'i';console['log'](_0x4293f2+0x1+'.\x20'+_0xd83c1c+'\x20['+_0xbcce3a[_0x11586b(0x1fb)]+']\x20'+_0xbcce3a['message']),console[_0x11586b(0x1e2)](_0x11586b(0x1fc)+_0x395e73),_0xbcce3a[_0x11586b(0x1fe)]&&console[_0x11586b(0x1e2)](_0x11586b(0x1de)+_0xbcce3a['duration']+'ms'),_0xbcce3a['details']&&Object['keys'](_0xbcce3a[_0x11586b(0x1ff)])['length']>0x0&&console[_0x11586b(0x1e2)](_0x11586b(0x201)+JSON[_0x11586b(0x1e3)](_0xbcce3a[_0x11586b(0x1ff)],null,0x2)),console['log']('');});}function a28_0x2cba(_0x4d90b5,_0x314722){_0x4d90b5=_0x4d90b5-0x1de;const _0x5acfd8=a28_0x5acf();let _0x2cbadd=_0x5acfd8[_0x4d90b5];return _0x2cbadd;}export const logsDefinitions=[{'service':a28_0x17fef4(0x1ec),'command':'show','description':a28_0x17fef4(0x1e8),'risk':a28_0x17fef4(0x1fa),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x2061c9){const _0x1aa863=a28_0x17fef4;return printLogs(logger[_0x1aa863(0x1f2)]()),{'ok':!![]};}},{'service':a28_0x17fef4(0x1ec),'command':a28_0x17fef4(0x1df),'description':a28_0x17fef4(0x1fd),'risk':a28_0x17fef4(0x1f6),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0xc6e321){const _0x14a9c6=a28_0x17fef4;return logger[_0x14a9c6(0x1e1)](),console['log'](_0x14a9c6(0x1e9)),{'ok':!![]};}}];
1
+ function a28_0xe5f5(_0x1c9f87,_0x391b94){_0x1c9f87=_0x1c9f87-0x110;const _0x7c3d45=a28_0x7c3d();let _0xe5f5b7=_0x7c3d45[_0x1c9f87];return _0xe5f5b7;}const a28_0xa2a99=a28_0xe5f5;(function(_0x57e963,_0x297719){const _0x41888d=a28_0xe5f5,_0x2e8a2f=_0x57e963();while(!![]){try{const _0x5d3844=parseInt(_0x41888d(0x117))/0x1+parseInt(_0x41888d(0x129))/0x2+parseInt(_0x41888d(0x131))/0x3+-parseInt(_0x41888d(0x127))/0x4*(-parseInt(_0x41888d(0x11a))/0x5)+-parseInt(_0x41888d(0x121))/0x6+-parseInt(_0x41888d(0x113))/0x7+-parseInt(_0x41888d(0x110))/0x8*(-parseInt(_0x41888d(0x11c))/0x9);if(_0x5d3844===_0x297719)break;else _0x2e8a2f['push'](_0x2e8a2f['shift']());}catch(_0x1630d2){_0x2e8a2f['push'](_0x2e8a2f['shift']());}}}(a28_0x7c3d,0xa6b3b));import{logger}from'../../utils/logger.js';function a28_0x7c3d(){const _0x1a7b25=['3385039NDKSCH','error','\x20logs:\x0a','log','133941tJlRGX','read','clear','15CYBIty','keys','36XXGpTR','logs','warn','*\x20Logs\x20cleared','duration','7739112ElZTEO','\x20\x20\x20Details:\x20','details','level','en-US','clearLogs','563840XDsFUw','Clear\x20command\x20history\x20logs','1387110HsgGvn','\x20\x20\x20Time:\x20','show','length','readLogs','\x20\x20\x20Duration:\x20','forEach','command','2630604PmVDnX','*\x20No\x20logs\x20found','657992LpAyRh','success','write'];a28_0x7c3d=function(){return _0x1a7b25;};return a28_0x7c3d();}import{CLI_DISPLAY_NAME}from'../../constant/cli.js';function printLogs(_0x4b6942){const _0x255a3a=a28_0xe5f5;if(_0x4b6942[_0x255a3a(0x12c)]===0x0){console['log'](_0x255a3a(0x132));return;}console[_0x255a3a(0x116)]('*\x20'+CLI_DISPLAY_NAME+_0x255a3a(0x115)),_0x4b6942[_0x255a3a(0x12f)]((_0x2ae590,_0x4309be)=>{const _0x2b59b3=_0x255a3a,_0x37d02a=new Date(_0x2ae590['timestamp'])['toLocaleString'](_0x2b59b3(0x125)),_0x251e65=_0x2ae590[_0x2b59b3(0x124)]===_0x2b59b3(0x111)?'√':_0x2ae590[_0x2b59b3(0x124)]===_0x2b59b3(0x114)?'×':_0x2ae590[_0x2b59b3(0x124)]===_0x2b59b3(0x11e)?'!':'i';console['log'](_0x4309be+0x1+'.\x20'+_0x251e65+'\x20['+_0x2ae590[_0x2b59b3(0x130)]+']\x20'+_0x2ae590['message']),console[_0x2b59b3(0x116)](_0x2b59b3(0x12a)+_0x37d02a),_0x2ae590[_0x2b59b3(0x120)]&&console[_0x2b59b3(0x116)](_0x2b59b3(0x12e)+_0x2ae590[_0x2b59b3(0x120)]+'ms'),_0x2ae590[_0x2b59b3(0x123)]&&Object[_0x2b59b3(0x11b)](_0x2ae590[_0x2b59b3(0x123)])[_0x2b59b3(0x12c)]>0x0&&console['log'](_0x2b59b3(0x122)+JSON['stringify'](_0x2ae590['details'],null,0x2)),console['log']('');});}export const logsDefinitions=[{'service':a28_0xa2a99(0x11d),'command':a28_0xa2a99(0x12b),'description':'View\x20command\x20history\x20logs','risk':a28_0xa2a99(0x118),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x57cff9){const _0x525a04=a28_0xa2a99;return printLogs(logger[_0x525a04(0x12d)]()),{'ok':!![]};}},{'service':a28_0xa2a99(0x11d),'command':a28_0xa2a99(0x119),'description':a28_0xa2a99(0x128),'risk':a28_0xa2a99(0x112),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x52b26a){const _0x83c97f=a28_0xa2a99;return logger[_0x83c97f(0x126)](),console['log'](_0x83c97f(0x11f)),{'ok':!![]};}}];
@@ -1 +1 @@
1
- const a29_0x53a6f5=a29_0x597d;(function(_0x19cf33,_0x335f8d){const _0x5b31ec=a29_0x597d,_0xa375f9=_0x19cf33();while(!![]){try{const _0x18657c=-parseInt(_0x5b31ec(0x9d))/0x1+parseInt(_0x5b31ec(0x91))/0x2+-parseInt(_0x5b31ec(0xa6))/0x3+-parseInt(_0x5b31ec(0xa2))/0x4+-parseInt(_0x5b31ec(0x96))/0x5+parseInt(_0x5b31ec(0x71))/0x6*(-parseInt(_0x5b31ec(0xa0))/0x7)+parseInt(_0x5b31ec(0xa4))/0x8;if(_0x18657c===_0x335f8d)break;else _0xa375f9['push'](_0xa375f9['shift']());}catch(_0x10c895){_0xa375f9['push'](_0xa375f9['shift']());}}}(a29_0x35ee,0x6c571));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';function a29_0x597d(_0x56002b,_0x9972bc){_0x56002b=_0x56002b-0x70;const _0x35ee52=a29_0x35ee();let _0x597dfd=_0x35ee52[_0x56002b];return _0x597dfd;}const FUNCTION_NAME_PATTERN=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,FILE_FLAG={'name':a29_0x53a6f5(0xa1),'type':'string','description':a29_0x53a6f5(0x70)},FUNCTION_NAME_FLAG={'name':a29_0x53a6f5(0x87),'type':a29_0x53a6f5(0x79),'required':!![],'description':'Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders'},DESCRIPTION_FLAG={'name':a29_0x53a6f5(0x90),'type':a29_0x53a6f5(0x79),'description':a29_0x53a6f5(0x8d)},SOURCE_SESSION_FLAG={'name':a29_0x53a6f5(0x76),'type':a29_0x53a6f5(0x79),'description':a29_0x53a6f5(0x81)};function normalizeFunctionName(_0x219f35){const _0x30c27f=a29_0x53a6f5,_0x144857=String(_0x219f35||'')[_0x30c27f(0xac)]();if(!_0x144857||!FUNCTION_NAME_PATTERN[_0x30c27f(0x94)](_0x144857))throw CliErrors[_0x30c27f(0x83)](_0x30c27f(0x80));return _0x144857;}function readScriptFile(_0x1a7e09){const _0xe49661=a29_0x53a6f5;if(!_0x1a7e09)throw CliErrors[_0xe49661(0x83)](_0xe49661(0x8b));if(!existsSync(_0x1a7e09))throw CliErrors['validation'](_0xe49661(0xaa)+_0x1a7e09);if(!statSync(_0x1a7e09)[_0xe49661(0x86)]())throw CliErrors[_0xe49661(0x83)](_0xe49661(0xad)+_0x1a7e09);const _0xa0c52c=readFileSync(_0x1a7e09,_0xe49661(0xa9));if(!_0xa0c52c[_0xe49661(0xac)]())throw CliErrors['validation']('Personal\x20BFF\x20script\x20file\x20is\x20blank.');return _0xa0c52c;}function optionalTrimmed(_0xa8e21a){const _0x29eb2b=a29_0x53a6f5,_0x840863=String(_0xa8e21a||'')[_0x29eb2b(0xac)]();return _0x840863||undefined;}function summarizeBff(_0x315d7d){const _0x4afdd6=a29_0x53a6f5;return{'id':_0x315d7d['id'],'appCode':_0x315d7d[_0x4afdd6(0x93)],'functionName':_0x315d7d[_0x4afdd6(0x7d)],'description':_0x315d7d[_0x4afdd6(0x90)],'scriptType':_0x315d7d[_0x4afdd6(0x99)],'version':_0x315d7d[_0x4afdd6(0x84)],'gmtModified':_0x315d7d[_0x4afdd6(0xa5)],'updateTime':_0x315d7d[_0x4afdd6(0x9a)]};}function detailBff(_0x3c2a7c){const _0x382688=a29_0x53a6f5;return{'id':_0x3c2a7c['id'],'appCode':_0x3c2a7c[_0x382688(0x93)],'functionName':_0x3c2a7c[_0x382688(0x7d)],'description':_0x3c2a7c[_0x382688(0x90)],'scriptType':_0x3c2a7c['scriptType'],'scriptContent':_0x3c2a7c[_0x382688(0x82)]??'','config':_0x3c2a7c[_0x382688(0x85)],'version':_0x3c2a7c['version'],'createUserId':_0x3c2a7c[_0x382688(0x95)],'gmtCreate':_0x3c2a7c[_0x382688(0xa8)],'gmtModified':_0x3c2a7c['gmtModified'],'createTime':_0x3c2a7c[_0x382688(0x77)],'updateTime':_0x3c2a7c[_0x382688(0x9a)]};}function buildCreateInput(_0x21d3fc){const _0x2b20d2=a29_0x53a6f5;return{'functionName':normalizeFunctionName(_0x21d3fc[_0x2b20d2(0x92)](_0x2b20d2(0x87))),...optionalTrimmed(_0x21d3fc[_0x2b20d2(0x92)](_0x2b20d2(0x90)))?{'description':optionalTrimmed(_0x21d3fc[_0x2b20d2(0x92)](_0x2b20d2(0x90)))}:{},'scriptContent':readScriptFile(_0x21d3fc[_0x2b20d2(0x92)](_0x2b20d2(0xa1))),...optionalTrimmed(_0x21d3fc[_0x2b20d2(0x92)](_0x2b20d2(0x76)))?{'sourceSessionId':optionalTrimmed(_0x21d3fc[_0x2b20d2(0x92)]('source-session-id'))}:{}};}function a29_0x35ee(){const _0x5bfdd6=['bool','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','build','source-session-id','createTime','Created\x20personal\x20BFF\x20','string','Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','Update\x20a\x20personal\x20BFF\x20by\x20id','write','functionName','list','Preview:\x20create\x20personal\x20BFF\x20','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','Optional\x20source\x20RuntimeAgent\x20session\x20id','scriptContent','validation','version','config','isFile','name','detail','POST','update','File\x20path\x20is\x20required.','num','Personal\x20BFF\x20description','keys','length','description','1361360AWxlZo','str','appCode','test','createUserId','3166475qGBXdN','personal-bff','read','scriptType','updateTime','create','/client/runtime-bff/personal/create','508782lxgywG','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','verbose','7bprbaN','file','1459368xXkReb','flag','13999312kBlqWY','gmtModified','926259dXgNlq','isArray','gmtCreate','utf8','File\x20not\x20found:\x20','/update','trim','File\x20is\x20not\x20a\x20regular\x20file:\x20','--params\x20must\x20be\x20a\x20JSON\x20object.','body','params','Personal\x20BFF\x20script\x20ID','Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file','1026966hTtrio','high-risk-write'];a29_0x35ee=function(){return _0x5bfdd6;};return a29_0x35ee();}function buildUpdateInput(_0x333ba1){const _0x1f6d90=a29_0x53a6f5,_0xb2ed63={};optionalTrimmed(_0x333ba1[_0x1f6d90(0x92)](_0x1f6d90(0x87)))&&(_0xb2ed63['functionName']=normalizeFunctionName(_0x333ba1[_0x1f6d90(0x92)](_0x1f6d90(0x87))));_0x333ba1[_0x1f6d90(0xa3)](_0x1f6d90(0x90))!==undefined&&(_0xb2ed63[_0x1f6d90(0x90)]=_0x333ba1[_0x1f6d90(0x92)](_0x1f6d90(0x90)));optionalTrimmed(_0x333ba1[_0x1f6d90(0x92)](_0x1f6d90(0xa1)))&&(_0xb2ed63['scriptContent']=readScriptFile(_0x333ba1[_0x1f6d90(0x92)](_0x1f6d90(0xa1))));_0x333ba1[_0x1f6d90(0xa3)](_0x1f6d90(0x76))!==undefined&&(_0xb2ed63['sourceSessionId']=_0x333ba1['str'](_0x1f6d90(0x76)));if(Object[_0x1f6d90(0x8e)](_0xb2ed63)[_0x1f6d90(0x8f)]===0x0)throw CliErrors[_0x1f6d90(0x83)]('personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.');return _0xb2ed63;}function parseExecParams(_0xd7e1c2){const _0x5021ff=a29_0x53a6f5,_0x4d72c7=parseJsonParams(_0xd7e1c2)??{};if(Array[_0x5021ff(0xa7)](_0x4d72c7))throw CliErrors[_0x5021ff(0x83)](_0x5021ff(0xae));return _0x4d72c7;}const personalBffList={'service':a29_0x53a6f5(0x97),'command':a29_0x53a6f5(0x7e),'description':'List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','risk':'read','flags':[VERBOSE_FLAG],async 'execute'(_0x53eb15){const _0x89c93b=a29_0x53a6f5,_0x57ad33=await listPersonalBffs(_0x53eb15[_0x89c93b(0x93)]);return{'ok':!![],'data':{'total':_0x57ad33[_0x89c93b(0x8f)],'items':_0x53eb15[_0x89c93b(0x73)](_0x89c93b(0x9f))?_0x57ad33:_0x57ad33['map'](summarizeBff)}};}},personalBffDetail={'service':'personal-bff','command':a29_0x53a6f5(0x88),'description':'Show\x20one\x20personal\x20BFF\x20by\x20id','risk':a29_0x53a6f5(0x98),'flags':[{...ID_FLAG,'description':a29_0x53a6f5(0xb1)}],async 'execute'(_0xdbcc5b){const _0x429d5e=a29_0x53a6f5,_0x268aed=await getPersonalBff(_0xdbcc5b[_0x429d5e(0x8c)]('id'),_0xdbcc5b[_0x429d5e(0x93)]);return{'ok':!![],'data':detailBff(_0x268aed)};}},personalBffCreate={'service':'personal-bff','command':a29_0x53a6f5(0x9b),'description':a29_0x53a6f5(0x9e),'risk':a29_0x53a6f5(0x7c),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x261cd0){const _0x2d6e72=a29_0x53a6f5,_0x4d817c=buildCreateInput(_0x261cd0),_0x53c21b=await createPersonalBff(_0x261cd0['appCode'],_0x4d817c);return{'ok':!![],'data':detailBff(_0x53c21b),'message':_0x2d6e72(0x78)+_0x53c21b['id']+(_0x53c21b['functionName']?'\x20('+_0x53c21b['functionName']+')':'')};},async 'dryRun'(_0x2feeac){const _0x5e8831=a29_0x53a6f5,_0x5757bc=buildCreateInput(_0x2feeac);return dryRun(_0x5e8831(0x89),_0x5e8831(0x9c))[_0x5e8831(0xaf)]({'appCode':_0x2feeac['appCode'],..._0x5757bc})['description'](_0x5e8831(0x7f)+_0x5757bc[_0x5e8831(0x7d)])[_0x5e8831(0x75)]();}},personalBffUpdate={'service':a29_0x53a6f5(0x97),'command':a29_0x53a6f5(0x8a),'description':a29_0x53a6f5(0x7b),'risk':'write','flags':[{...ID_FLAG,'description':a29_0x53a6f5(0xb1)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x146631){const _0x269f5e=a29_0x53a6f5,_0x47ec8d=_0x146631[_0x269f5e(0x8c)]('id'),_0x4f8a18=buildUpdateInput(_0x146631),_0x231531=await updatePersonalBff(_0x47ec8d,_0x146631[_0x269f5e(0x93)],_0x4f8a18);return{'ok':!![],'data':detailBff(_0x231531),'message':'Updated\x20personal\x20BFF\x20'+_0x231531['id']+(_0x231531[_0x269f5e(0x7d)]?'\x20('+_0x231531[_0x269f5e(0x7d)]+')':'')};},async 'dryRun'(_0x4d1ca1){const _0x44260b=a29_0x53a6f5,_0x59c723=_0x4d1ca1[_0x44260b(0x8c)]('id'),_0x4dc19f=buildUpdateInput(_0x4d1ca1);return dryRun(_0x44260b(0x89),'/client/runtime-bff/personal/'+_0x59c723+_0x44260b(0xab))[_0x44260b(0xaf)]({'appCode':_0x4d1ca1[_0x44260b(0x93)],..._0x4dc19f})[_0x44260b(0x90)]('Preview:\x20update\x20personal\x20BFF\x20'+_0x59c723)['build']();}},personalBffExec={'service':a29_0x53a6f5(0x97),'command':'exec','description':a29_0x53a6f5(0x7a),'risk':a29_0x53a6f5(0x72),'flags':[{...ID_FLAG,'description':a29_0x53a6f5(0xb1)},{...PARAMS_FLAG,'description':a29_0x53a6f5(0x74)}],async 'validate'(_0x1fa77b){const _0x1811a0=a29_0x53a6f5;parseExecParams(_0x1fa77b[_0x1811a0(0x92)]('params'));},async 'execute'(_0x3c5247){const _0x440c46=a29_0x53a6f5,_0x5958a8=_0x3c5247[_0x440c46(0x8c)]('id'),_0x27c7bf=parseExecParams(_0x3c5247[_0x440c46(0x92)](_0x440c46(0xb0))),_0x411ffe=await executePersonalBff(_0x5958a8,_0x3c5247[_0x440c46(0x93)],_0x27c7bf);return{'ok':!![],'data':{'result':_0x411ffe},'message':'Executed\x20personal\x20BFF\x20'+_0x5958a8};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
1
+ const a29_0x281be3=a29_0x1266;(function(_0x3a5994,_0x2f21f1){const _0x3bd000=a29_0x1266,_0x2df34b=_0x3a5994();while(!![]){try{const _0x31a24b=-parseInt(_0x3bd000(0xe7))/0x1+parseInt(_0x3bd000(0xe0))/0x2+parseInt(_0x3bd000(0xb1))/0x3*(-parseInt(_0x3bd000(0xdc))/0x4)+parseInt(_0x3bd000(0xdf))/0x5*(parseInt(_0x3bd000(0xd7))/0x6)+parseInt(_0x3bd000(0xae))/0x7*(parseInt(_0x3bd000(0xc4))/0x8)+parseInt(_0x3bd000(0xd0))/0x9+-parseInt(_0x3bd000(0xce))/0xa*(parseInt(_0x3bd000(0xba))/0xb);if(_0x31a24b===_0x2f21f1)break;else _0x2df34b['push'](_0x2df34b['shift']());}catch(_0x4ea0a6){_0x2df34b['push'](_0x2df34b['shift']());}}}(a29_0x5f04,0x4b136));import{existsSync,readFileSync,statSync}from'node:fs';import{createPersonalBff,executePersonalBff,getPersonalBff,listPersonalBffs,updatePersonalBff}from'../../core/api-client.js';function a29_0x1266(_0x4a6b48,_0xa38d47){_0x4a6b48=_0x4a6b48-0xab;const _0x5f0409=a29_0x5f04();let _0x126654=_0x5f0409[_0x4a6b48];return _0x126654;}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':'file','type':a29_0x281be3(0xe9),'description':a29_0x281be3(0xdb)},FUNCTION_NAME_FLAG={'name':'name','type':a29_0x281be3(0xe9),'required':!![],'description':a29_0x281be3(0xda)},DESCRIPTION_FLAG={'name':a29_0x281be3(0xbe),'type':'string','description':a29_0x281be3(0xbc)},SOURCE_SESSION_FLAG={'name':'source-session-id','type':a29_0x281be3(0xe9),'description':'Optional\x20source\x20RuntimeAgent\x20session\x20id'};function normalizeFunctionName(_0x78f456){const _0x3fd254=a29_0x281be3,_0xd4d787=String(_0x78f456||'')[_0x3fd254(0xb6)]();if(!_0xd4d787||!FUNCTION_NAME_PATTERN['test'](_0xd4d787))throw CliErrors[_0x3fd254(0xc1)](_0x3fd254(0xed));return _0xd4d787;}function readScriptFile(_0x3796ba){const _0xb0088c=a29_0x281be3;if(!_0x3796ba)throw CliErrors[_0xb0088c(0xc1)](_0xb0088c(0xcf));if(!existsSync(_0x3796ba))throw CliErrors[_0xb0088c(0xc1)](_0xb0088c(0xaf)+_0x3796ba);if(!statSync(_0x3796ba)[_0xb0088c(0xd6)]())throw CliErrors['validation'](_0xb0088c(0xc2)+_0x3796ba);const _0x56e628=readFileSync(_0x3796ba,_0xb0088c(0xe8));if(!_0x56e628[_0xb0088c(0xb6)]())throw CliErrors['validation']('Personal\x20BFF\x20script\x20file\x20is\x20blank.');return _0x56e628;}function optionalTrimmed(_0x45be88){const _0x4ab79e=a29_0x281be3,_0x28900b=String(_0x45be88||'')[_0x4ab79e(0xb6)]();return _0x28900b||undefined;}function summarizeBff(_0x2f7936){const _0x2ab8aa=a29_0x281be3;return{'id':_0x2f7936['id'],'appCode':_0x2f7936[_0x2ab8aa(0xc3)],'functionName':_0x2f7936[_0x2ab8aa(0xc9)],'description':_0x2f7936[_0x2ab8aa(0xbe)],'scriptType':_0x2f7936[_0x2ab8aa(0xeb)],'version':_0x2f7936[_0x2ab8aa(0xd1)],'gmtModified':_0x2f7936['gmtModified'],'updateTime':_0x2f7936['updateTime']};}function detailBff(_0x58bb62){const _0xe0e517=a29_0x281be3;return{'id':_0x58bb62['id'],'appCode':_0x58bb62[_0xe0e517(0xc3)],'functionName':_0x58bb62[_0xe0e517(0xc9)],'description':_0x58bb62[_0xe0e517(0xbe)],'scriptType':_0x58bb62[_0xe0e517(0xeb)],'scriptContent':_0x58bb62[_0xe0e517(0xd9)]??'','config':_0x58bb62['config'],'version':_0x58bb62[_0xe0e517(0xd1)],'createUserId':_0x58bb62['createUserId'],'gmtCreate':_0x58bb62['gmtCreate'],'gmtModified':_0x58bb62['gmtModified'],'createTime':_0x58bb62['createTime'],'updateTime':_0x58bb62[_0xe0e517(0xc0)]};}function buildCreateInput(_0x4f1ee3){const _0x75cd8=a29_0x281be3;return{'functionName':normalizeFunctionName(_0x4f1ee3[_0x75cd8(0xd2)](_0x75cd8(0xe3))),...optionalTrimmed(_0x4f1ee3['str'](_0x75cd8(0xbe)))?{'description':optionalTrimmed(_0x4f1ee3[_0x75cd8(0xd2)](_0x75cd8(0xbe)))}:{},'scriptContent':readScriptFile(_0x4f1ee3[_0x75cd8(0xd2)](_0x75cd8(0xb7))),...optionalTrimmed(_0x4f1ee3[_0x75cd8(0xd2)](_0x75cd8(0xe5)))?{'sourceSessionId':optionalTrimmed(_0x4f1ee3['str']('source-session-id'))}:{}};}function a29_0x5f04(){const _0x37045e=['appCode','8vsjdld','Updated\x20personal\x20BFF\x20','params','body','read','functionName','detail','map','Preview:\x20create\x20personal\x20BFF\x20','create','10jZCXEE','File\x20path\x20is\x20required.','1520982ifpKNN','version','str','list','keys','Personal\x20BFF\x20script\x20ID','isFile','2406EFJGuz','Update\x20a\x20personal\x20BFF\x20by\x20id','scriptContent','Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders','Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file','144encHag','flag','List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','1145FMroHl','1141876rJRyPF','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','name','high-risk-write','source-session-id','num','40853mJKXUb','utf8','string','Created\x20personal\x20BFF\x20','scriptType','bool','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','write','length','/client/runtime-bff/personal/','510377kIZpLn','File\x20not\x20found:\x20','build','5091hUHCtZ','Preview:\x20update\x20personal\x20BFF\x20','Executed\x20personal\x20BFF\x20','POST','/update','trim','file','verbose','--params\x20must\x20be\x20a\x20JSON\x20object.','5447431bpRVEJ','/client/runtime-bff/personal/create','Personal\x20BFF\x20description','personal-bff','description','Show\x20one\x20personal\x20BFF\x20by\x20id','updateTime','validation','File\x20is\x20not\x20a\x20regular\x20file:\x20'];a29_0x5f04=function(){return _0x37045e;};return a29_0x5f04();}function buildUpdateInput(_0x342152){const _0x4e1935=a29_0x281be3,_0x2f2482={};optionalTrimmed(_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xe3)))&&(_0x2f2482[_0x4e1935(0xc9)]=normalizeFunctionName(_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xe3))));_0x342152[_0x4e1935(0xdd)]('description')!==undefined&&(_0x2f2482[_0x4e1935(0xbe)]=_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xbe)));optionalTrimmed(_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xb7)))&&(_0x2f2482[_0x4e1935(0xd9)]=readScriptFile(_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xb7))));_0x342152[_0x4e1935(0xdd)](_0x4e1935(0xe5))!==undefined&&(_0x2f2482['sourceSessionId']=_0x342152[_0x4e1935(0xd2)](_0x4e1935(0xe5)));if(Object[_0x4e1935(0xd4)](_0x2f2482)[_0x4e1935(0xac)]===0x0)throw CliErrors[_0x4e1935(0xc1)]('personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.');return _0x2f2482;}function parseExecParams(_0x3d6984){const _0x3ab9d9=a29_0x281be3,_0x2312c4=parseJsonParams(_0x3d6984)??{};if(Array['isArray'](_0x2312c4))throw CliErrors[_0x3ab9d9(0xc1)](_0x3ab9d9(0xb9));return _0x2312c4;}const personalBffList={'service':a29_0x281be3(0xbd),'command':a29_0x281be3(0xd3),'description':a29_0x281be3(0xde),'risk':a29_0x281be3(0xc8),'flags':[VERBOSE_FLAG],async 'execute'(_0x28e630){const _0xc8cc54=a29_0x281be3,_0x279f53=await listPersonalBffs(_0x28e630[_0xc8cc54(0xc3)]);return{'ok':!![],'data':{'total':_0x279f53[_0xc8cc54(0xac)],'items':_0x28e630[_0xc8cc54(0xec)](_0xc8cc54(0xb8))?_0x279f53:_0x279f53[_0xc8cc54(0xcb)](summarizeBff)}};}},personalBffDetail={'service':'personal-bff','command':a29_0x281be3(0xca),'description':a29_0x281be3(0xbf),'risk':'read','flags':[{...ID_FLAG,'description':a29_0x281be3(0xd5)}],async 'execute'(_0x30fb54){const _0x4b06f1=a29_0x281be3,_0x1886b0=await getPersonalBff(_0x30fb54[_0x4b06f1(0xe6)]('id'),_0x30fb54['appCode']);return{'ok':!![],'data':detailBff(_0x1886b0)};}},personalBffCreate={'service':'personal-bff','command':a29_0x281be3(0xcd),'description':a29_0x281be3(0xe1),'risk':a29_0x281be3(0xab),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x42be43){const _0x4e252a=a29_0x281be3,_0x4e4dd4=buildCreateInput(_0x42be43),_0x18f64c=await createPersonalBff(_0x42be43[_0x4e252a(0xc3)],_0x4e4dd4);return{'ok':!![],'data':detailBff(_0x18f64c),'message':_0x4e252a(0xea)+_0x18f64c['id']+(_0x18f64c[_0x4e252a(0xc9)]?'\x20('+_0x18f64c['functionName']+')':'')};},async 'dryRun'(_0x52084c){const _0x5ab7bb=a29_0x281be3,_0x4c7080=buildCreateInput(_0x52084c);return dryRun(_0x5ab7bb(0xb4),_0x5ab7bb(0xbb))[_0x5ab7bb(0xc7)]({'appCode':_0x52084c[_0x5ab7bb(0xc3)],..._0x4c7080})[_0x5ab7bb(0xbe)](_0x5ab7bb(0xcc)+_0x4c7080[_0x5ab7bb(0xc9)])[_0x5ab7bb(0xb0)]();}},personalBffUpdate={'service':'personal-bff','command':'update','description':a29_0x281be3(0xd8),'risk':'write','flags':[{...ID_FLAG,'description':a29_0x281be3(0xd5)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x278911){const _0x5e6b83=a29_0x281be3,_0x5c57d4=_0x278911['num']('id'),_0x300853=buildUpdateInput(_0x278911),_0x233dd8=await updatePersonalBff(_0x5c57d4,_0x278911[_0x5e6b83(0xc3)],_0x300853);return{'ok':!![],'data':detailBff(_0x233dd8),'message':_0x5e6b83(0xc5)+_0x233dd8['id']+(_0x233dd8[_0x5e6b83(0xc9)]?'\x20('+_0x233dd8[_0x5e6b83(0xc9)]+')':'')};},async 'dryRun'(_0x236d51){const _0x366491=a29_0x281be3,_0x481833=_0x236d51['num']('id'),_0xda20c9=buildUpdateInput(_0x236d51);return dryRun(_0x366491(0xb4),_0x366491(0xad)+_0x481833+_0x366491(0xb5))[_0x366491(0xc7)]({'appCode':_0x236d51[_0x366491(0xc3)],..._0xda20c9})[_0x366491(0xbe)](_0x366491(0xb2)+_0x481833)['build']();}},personalBffExec={'service':a29_0x281be3(0xbd),'command':'exec','description':'Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','risk':a29_0x281be3(0xe4),'flags':[{...ID_FLAG,'description':a29_0x281be3(0xd5)},{...PARAMS_FLAG,'description':a29_0x281be3(0xe2)}],async 'validate'(_0x1414db){const _0xf0707c=a29_0x281be3;parseExecParams(_0x1414db[_0xf0707c(0xd2)](_0xf0707c(0xc6)));},async 'execute'(_0x5ecbe6){const _0x16722c=a29_0x281be3,_0x2c17c7=_0x5ecbe6['num']('id'),_0x3a9cee=parseExecParams(_0x5ecbe6[_0x16722c(0xd2)](_0x16722c(0xc6))),_0x3e1542=await executePersonalBff(_0x2c17c7,_0x5ecbe6[_0x16722c(0xc3)],_0x3a9cee);return{'ok':!![],'data':{'result':_0x3e1542},'message':_0x16722c(0xb3)+_0x2c17c7};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
@@ -1 +1 @@
1
- const a30_0x3801dd=a30_0x502e;(function(_0x24bc5c,_0x61fcd5){const _0x3ffee6=a30_0x502e,_0x3e1208=_0x24bc5c();while(!![]){try{const _0x41a4b4=parseInt(_0x3ffee6(0x110))/0x1+parseInt(_0x3ffee6(0x109))/0x2*(-parseInt(_0x3ffee6(0x124))/0x3)+-parseInt(_0x3ffee6(0x116))/0x4+parseInt(_0x3ffee6(0x11e))/0x5*(-parseInt(_0x3ffee6(0x103))/0x6)+parseInt(_0x3ffee6(0x106))/0x7+-parseInt(_0x3ffee6(0x11f))/0x8+-parseInt(_0x3ffee6(0x121))/0x9*(-parseInt(_0x3ffee6(0x108))/0xa);if(_0x41a4b4===_0x61fcd5)break;else _0x3e1208['push'](_0x3e1208['shift']());}catch(_0x15fa25){_0x3e1208['push'](_0x3e1208['shift']());}}}(a30_0x1dff,0xe4115));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';function a30_0x1dff(){const _0x213e0b=['154973DCDVVU','BFF\x20Scripts','10zoZUqh','202YMuyeB','isSingleCommand','API\x20Documentation','\x20\x20[write]','set','CLI\x20Built-in\x20Skill','service','1182209hjgGKC','command','login','\x20\x20[high-risk-write]','defaultCommand','Datasets','3533784JrOIGQ','Authentication','Instant\x20API','list','install','get','description','read','4116155ZUIALh','862712kjFJhh','Self\x20Update','29051118HiGLbi','Diagnostics','push','50007oGFxoz','risk','Personal\x20BFF','Knowledge\x20Base','from','map','App\x20Management','Artifacts','6HGRKse','Schema','Configuration'];a30_0x1dff=function(){return _0x213e0b;};return a30_0x1dff();}import{serviceDefinitions}from'../commands/service/index.js';import{updateDefinition}from'../commands/update.js';import{doctorDefinition}from'../commands/doctor.js';import{schemaDefinition}from'../commands/schema.js';import{appDefinitions}from'../commands/app/definitions.js';import{workspaceDefinitions}from'../commands/workspace/index.js';import{configDefinitions}from'../commands/config/definitions.js';import{bffDefinitions}from'../commands/bff/index.js';import{sqlDefinitions}from'../commands/sql/index.js';import{datasetDefinitions}from'../commands/dataset/index.js';import{dataDefinitions}from'../commands/data/index.js';import{kbDefinitions}from'../commands/kb/index.js';import{artifactDefinitions}from'../commands/artifact/index.js';import{personalBffDefinitions}from'../commands/personal-bff/index.js';function a30_0x502e(_0x564f43,_0x43a5db){_0x564f43=_0x564f43-0xfd;const _0x1dff66=a30_0x1dff();let _0x502ec7=_0x1dff66[_0x564f43];return _0x502ec7;}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(_0x1d123d){const _0x1a3782=a30_0x502e;for(const _0x27d683 of _0x1d123d){definitions[_0x1a3782(0x10d)](_0x27d683[_0x1a3782(0x10f)]+':'+_0x27d683['command'],_0x27d683);let _0x26d6da=serviceGroups[_0x1a3782(0x11b)](_0x27d683['service']);!_0x26d6da&&(_0x26d6da=[],serviceGroups[_0x1a3782(0x10d)](_0x27d683[_0x1a3782(0x10f)],_0x26d6da)),_0x26d6da['push'](_0x27d683);}}function registerService(_0x1314b8,_0x26f37d,_0xecd8d0){const _0x5ee196=a30_0x502e;registerDefinitions(_0x26f37d);const _0x54b199=_0x829e20=>_0x829e20===_0x5ee196(0x11d)?'':_0x829e20==='write'?_0x5ee196(0x10c):_0x5ee196(0x113),_0x525209={'service':_0x26f37d[0x0]['service'],'label':_0x1314b8,'commands':_0x26f37d[_0x5ee196(0x100)](_0x1ac46d=>({'command':_0x1ac46d[_0x5ee196(0x111)],'description':_0x1ac46d[_0x5ee196(0x11c)],'tag':_0x54b199(_0x1ac46d[_0x5ee196(0x125)])})),'defaultCommand':_0xecd8d0?.[_0x5ee196(0x114)]??(_0xecd8d0?.[_0x5ee196(0x10a)]?_0x26f37d[0x0]['command']:undefined),'isSingleCommand':_0xecd8d0?.['isSingleCommand']};serviceRegistry[_0x5ee196(0x123)](_0x525209),serviceByName[_0x5ee196(0x10d)](_0x525209[_0x5ee196(0x10f)],_0x525209);}registerService(a30_0x3801dd(0x117),authDefinitions,{'defaultCommand':a30_0x3801dd(0x112)}),registerService(a30_0x3801dd(0x10b),apiDocDefinitions),registerService(a30_0x3801dd(0x115),datasetDefinitions),registerService(a30_0x3801dd(0x118),dataDefinitions),registerService('SQL\x20Queries',sqlDefinitions),registerService(a30_0x3801dd(0x107),bffDefinitions),registerService(a30_0x3801dd(0xfd),personalBffDefinitions),registerService(a30_0x3801dd(0x102),artifactDefinitions),registerService(a30_0x3801dd(0xfe),kbDefinitions),registerService(a30_0x3801dd(0x101),appDefinitions,{'defaultCommand':a30_0x3801dd(0x119)}),registerService('Workspace',workspaceDefinitions),registerService(a30_0x3801dd(0x105),configDefinitions,{'defaultCommand':a30_0x3801dd(0x119)}),registerService('Service\x20Tree',serviceDefinitions,{'defaultCommand':'list'}),registerService('Skills',skillDefinitions,{'defaultCommand':a30_0x3801dd(0x11a)}),registerService(a30_0x3801dd(0x10e),cliSkillDefinitions,{'defaultCommand':'install'}),registerService(a30_0x3801dd(0x120),[updateDefinition],{'defaultCommand':'run','isSingleCommand':!![]}),registerService(a30_0x3801dd(0x122),[doctorDefinition],{'isSingleCommand':!![]}),registerService(a30_0x3801dd(0x104),[schemaDefinition],{'isSingleCommand':!![]}),registerService('Logs',logsDefinitions,{'defaultCommand':'show'});export function findDefinition(_0x3ab506,_0x24322e){const _0x48ef78=a30_0x3801dd;return definitions[_0x48ef78(0x11b)](_0x3ab506+':'+_0x24322e);}export function isKnownService(_0x24d7e9){return serviceByName['has'](_0x24d7e9);}export function getServiceEntry(_0x245bc6){const _0x367856=a30_0x3801dd;return serviceByName[_0x367856(0x11b)](_0x245bc6);}export function getAllDefinitions(){const _0x20908d=a30_0x3801dd;return Array[_0x20908d(0xff)](definitions['values']());}
1
+ const a30_0x146646=a30_0x4d4b;(function(_0x433a49,_0x5d2f72){const _0x36068e=a30_0x4d4b,_0x413308=_0x433a49();while(!![]){try{const _0x357ecf=-parseInt(_0x36068e(0xd5))/0x1*(-parseInt(_0x36068e(0xea))/0x2)+-parseInt(_0x36068e(0xeb))/0x3+parseInt(_0x36068e(0xc6))/0x4*(parseInt(_0x36068e(0xc4))/0x5)+parseInt(_0x36068e(0xd9))/0x6+-parseInt(_0x36068e(0xd1))/0x7+-parseInt(_0x36068e(0xd7))/0x8+-parseInt(_0x36068e(0xc0))/0x9;if(_0x357ecf===_0x5d2f72)break;else _0x413308['push'](_0x413308['shift']());}catch(_0x2af242){_0x413308['push'](_0x413308['shift']());}}}(a30_0x33f4,0x1a2e3));import{authDefinitions}from'../commands/auth/index.js';import{logsDefinitions}from'../commands/logs/index.js';import{skillDefinitions}from'../commands/skill/index.js';import{cliSkillDefinitions}from'../commands/cli-skill/index.js';import{serviceDefinitions}from'../commands/service/index.js';import{updateDefinition}from'../commands/update.js';import{doctorDefinition}from'../commands/doctor.js';import{schemaDefinition}from'../commands/schema.js';import{appDefinitions}from'../commands/app/definitions.js';import{workspaceDefinitions}from'../commands/workspace/index.js';import{configDefinitions}from'../commands/config/definitions.js';function a30_0x33f4(){const _0x58b60b=['592920LqUdHE','\x20\x20[write]','Skills','Configuration','Instant\x20API','set','Self\x20Update','Artifacts','login','show','Diagnostics','\x20\x20[high-risk-write]','write','App\x20Management','get','SQL\x20Queries','Service\x20Tree','1712HVWAEV','34431GdYooE','command','Workspace','Datasets','694953EfMLGG','Authentication','defaultCommand','Logs','424705bhUqtk','push','8qIFmGh','BFF\x20Scripts','description','has','service','isSingleCommand','run','list','risk','Personal\x20BFF','map','785680ZBpXQy','from','Schema','API\x20Documentation','101kfrbyg','install','375912VUfKni','read'];a30_0x33f4=function(){return _0x58b60b;};return a30_0x33f4();}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_0x4d4b(_0xc8362e,_0x53e171){_0xc8362e=_0xc8362e-0xbf;const _0x33f4a2=a30_0x33f4();let _0x4d4bb6=_0x33f4a2[_0xc8362e];return _0x4d4bb6;}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(_0x27f3be){const _0x1f96fa=a30_0x4d4b;for(const _0x49225a of _0x27f3be){definitions['set'](_0x49225a[_0x1f96fa(0xca)]+':'+_0x49225a[_0x1f96fa(0xec)],_0x49225a);let _0x39a23f=serviceGroups[_0x1f96fa(0xe7)](_0x49225a[_0x1f96fa(0xca)]);!_0x39a23f&&(_0x39a23f=[],serviceGroups[_0x1f96fa(0xde)](_0x49225a[_0x1f96fa(0xca)],_0x39a23f)),_0x39a23f[_0x1f96fa(0xc5)](_0x49225a);}}function registerService(_0x1c5d7e,_0x3952ea,_0x2281a8){const _0x2088d6=a30_0x4d4b;registerDefinitions(_0x3952ea);const _0x4961c8=_0x3ff9ce=>_0x3ff9ce===_0x2088d6(0xd8)?'':_0x3ff9ce===_0x2088d6(0xe5)?_0x2088d6(0xda):_0x2088d6(0xe4),_0x2f880b={'service':_0x3952ea[0x0][_0x2088d6(0xca)],'label':_0x1c5d7e,'commands':_0x3952ea[_0x2088d6(0xd0)](_0x1d8063=>({'command':_0x1d8063['command'],'description':_0x1d8063[_0x2088d6(0xc8)],'tag':_0x4961c8(_0x1d8063[_0x2088d6(0xce)])})),'defaultCommand':_0x2281a8?.[_0x2088d6(0xc2)]??(_0x2281a8?.[_0x2088d6(0xcb)]?_0x3952ea[0x0]['command']:undefined),'isSingleCommand':_0x2281a8?.[_0x2088d6(0xcb)]};serviceRegistry['push'](_0x2f880b),serviceByName[_0x2088d6(0xde)](_0x2f880b[_0x2088d6(0xca)],_0x2f880b);}registerService(a30_0x146646(0xc1),authDefinitions,{'defaultCommand':a30_0x146646(0xe1)}),registerService(a30_0x146646(0xd4),apiDocDefinitions),registerService(a30_0x146646(0xbf),datasetDefinitions),registerService(a30_0x146646(0xdd),dataDefinitions),registerService(a30_0x146646(0xe8),sqlDefinitions),registerService(a30_0x146646(0xc7),bffDefinitions),registerService(a30_0x146646(0xcf),personalBffDefinitions),registerService(a30_0x146646(0xe0),artifactDefinitions),registerService('Knowledge\x20Base',kbDefinitions),registerService(a30_0x146646(0xe6),appDefinitions,{'defaultCommand':a30_0x146646(0xcd)}),registerService(a30_0x146646(0xed),workspaceDefinitions),registerService(a30_0x146646(0xdc),configDefinitions,{'defaultCommand':a30_0x146646(0xcd)}),registerService(a30_0x146646(0xe9),serviceDefinitions,{'defaultCommand':a30_0x146646(0xcd)}),registerService(a30_0x146646(0xdb),skillDefinitions,{'defaultCommand':'install'}),registerService('CLI\x20Built-in\x20Skill',cliSkillDefinitions,{'defaultCommand':a30_0x146646(0xd6)}),registerService(a30_0x146646(0xdf),[updateDefinition],{'defaultCommand':a30_0x146646(0xcc),'isSingleCommand':!![]}),registerService(a30_0x146646(0xe3),[doctorDefinition],{'isSingleCommand':!![]}),registerService(a30_0x146646(0xd3),[schemaDefinition],{'isSingleCommand':!![]}),registerService(a30_0x146646(0xc3),logsDefinitions,{'defaultCommand':a30_0x146646(0xe2)});export function findDefinition(_0x519a67,_0x603e7f){return definitions['get'](_0x519a67+':'+_0x603e7f);}export function isKnownService(_0x4e2bf9){const _0x31286b=a30_0x146646;return serviceByName[_0x31286b(0xc9)](_0x4e2bf9);}export function getServiceEntry(_0x4f14f9){return serviceByName['get'](_0x4f14f9);}export function getAllDefinitions(){const _0x5b01be=a30_0x146646;return Array[_0x5b01be(0xd2)](definitions['values']());}
@@ -1 +1 @@
1
- const a31_0x59a1b7=a31_0x4982;function a31_0x4982(_0x80cdda,_0x49c817){_0x80cdda=_0x80cdda-0x1ce;const _0x2bb9a5=a31_0x2bb9();let _0x4982b2=_0x2bb9a5[_0x80cdda];return _0x4982b2;}(function(_0x148b82,_0x4b3ee8){const _0x16d204=a31_0x4982,_0x2c989c=_0x148b82();while(!![]){try{const _0xd9a23e=-parseInt(_0x16d204(0x1d3))/0x1*(-parseInt(_0x16d204(0x1ce))/0x2)+-parseInt(_0x16d204(0x1d9))/0x3*(parseInt(_0x16d204(0x1db))/0x4)+-parseInt(_0x16d204(0x1dc))/0x5+parseInt(_0x16d204(0x1cf))/0x6+parseInt(_0x16d204(0x1d6))/0x7*(-parseInt(_0x16d204(0x1d4))/0x8)+parseInt(_0x16d204(0x1d1))/0x9*(parseInt(_0x16d204(0x1d0))/0xa)+parseInt(_0x16d204(0x1d5))/0xb*(-parseInt(_0x16d204(0x1d2))/0xc);if(_0xd9a23e===_0x4b3ee8)break;else _0x2c989c['push'](_0x2c989c['shift']());}catch(_0x47a54){_0x2c989c['push'](_0x2c989c['shift']());}}}(a31_0x2bb9,0x4f492));function a31_0x2bb9(){const _0x3b9590=['595012PtAHRd','2079900fGlRMv','2662210vSrejS','9qyUlrT','444rHGETk','1zcTefF','32yXJcaQ','19756HGVbCo','69916rGaKMw','schema','export','6RjeKAK','Export\x20machine-readable\x20command\x20schema\x20(JSON)','121080wDkLcW','2093395PKxrrS'];a31_0x2bb9=function(){return _0x3b9590;};return a31_0x2bb9();}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x27ae4b){const _0x1c06e7=await buildSchemaPayload();return{'ok':!![],'data':_0x1c06e7};}export const schemaDefinition={'service':a31_0x59a1b7(0x1d7),'command':a31_0x59a1b7(0x1d8),'description':a31_0x59a1b7(0x1da),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
1
+ function a31_0x5693(){const _0x5b9ddc=['schema','1928358YWzOpI','3553816PkpEwJ','8584134PQloFy','78548QRjVQF','6880tXcQQg','24buDVST','export','5081020FPtsGU','read','27174190zrHZSC','302PYEHnf','Export\x20machine-readable\x20command\x20schema\x20(JSON)','51ckMmEk'];a31_0x5693=function(){return _0x5b9ddc;};return a31_0x5693();}function a31_0xabb2(_0x2c39b2,_0x9695ea){_0x2c39b2=_0x2c39b2-0x1f2;const _0x56933d=a31_0x5693();let _0xabb2f0=_0x56933d[_0x2c39b2];return _0xabb2f0;}const a31_0xa2567=a31_0xabb2;(function(_0x342bdf,_0x4270f4){const _0x5e39c4=a31_0xabb2,_0x51cb52=_0x342bdf();while(!![]){try{const _0xb45170=parseInt(_0x5e39c4(0x1f8))/0x1*(-parseInt(_0x5e39c4(0x1fe))/0x2)+-parseInt(_0x5e39c4(0x1f2))/0x3*(-parseInt(_0x5e39c4(0x1f7))/0x4)+-parseInt(_0x5e39c4(0x1fb))/0x5+-parseInt(_0x5e39c4(0x1f6))/0x6+parseInt(_0x5e39c4(0x1f5))/0x7+parseInt(_0x5e39c4(0x1f9))/0x8*(parseInt(_0x5e39c4(0x1f4))/0x9)+parseInt(_0x5e39c4(0x1fd))/0xa;if(_0xb45170===_0x4270f4)break;else _0x51cb52['push'](_0x51cb52['shift']());}catch(_0x56f29b){_0x51cb52['push'](_0x51cb52['shift']());}}}(a31_0x5693,0xaecad));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x1b2b06){const _0x2fa514=await buildSchemaPayload();return{'ok':!![],'data':_0x2fa514};}export const schemaDefinition={'service':a31_0xa2567(0x1f3),'command':a31_0xa2567(0x1fa),'description':a31_0xa2567(0x1ff),'risk':a31_0xa2567(0x1fc),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
1
- (function(_0x5a9148,_0x56bcab){const _0x5cffcc=a32_0x44b2,_0x2fdd27=_0x5a9148();while(!![]){try{const _0x4428b7=-parseInt(_0x5cffcc(0x154))/0x1+parseInt(_0x5cffcc(0x184))/0x2*(parseInt(_0x5cffcc(0x15a))/0x3)+parseInt(_0x5cffcc(0x182))/0x4+-parseInt(_0x5cffcc(0x14e))/0x5*(parseInt(_0x5cffcc(0x121))/0x6)+-parseInt(_0x5cffcc(0x12e))/0x7*(-parseInt(_0x5cffcc(0x132))/0x8)+parseInt(_0x5cffcc(0x169))/0x9*(-parseInt(_0x5cffcc(0x18a))/0xa)+parseInt(_0x5cffcc(0x15d))/0xb;if(_0x4428b7===_0x56bcab)break;else _0x2fdd27['push'](_0x2fdd27['shift']());}catch(_0x4dccc9){_0x2fdd27['push'](_0x2fdd27['shift']());}}}(a32_0xccc1,0x2d684));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(_0x3525ee,_0x443dfb){const _0xe51f14=a32_0x44b2,_0x34a2b4=listLocalServiceTrees();let _0x8d1bec;for(const _0x29614b of _0x34a2b4){const _0x378907=matchServiceTreeCommand(_0x29614b,_0x3525ee);if(!_0x378907)continue;(!_0x8d1bec||_0x378907[_0xe51f14(0x165)][_0xe51f14(0x172)][_0xe51f14(0x185)]>_0x8d1bec[_0xe51f14(0x165)]['fullPath'][_0xe51f14(0x185)])&&(_0x8d1bec={'tree':_0x29614b,'command':_0x378907[_0xe51f14(0x165)],'remainingArgs':_0x378907[_0xe51f14(0x12c)]});}if(!_0x8d1bec)return undefined;const _0xb1be01={..._0x443dfb};return applyAppBinding(_0x8d1bec['tree'],_0x8d1bec[_0xe51f14(0x165)],_0xb1be01),{'definition':buildDynamicCommandDefinition(_0x8d1bec['tree'],_0x8d1bec[_0xe51f14(0x165)]),'args':_0x8d1bec[_0xe51f14(0x12c)],'flags':_0xb1be01,'tree':_0x8d1bec[_0xe51f14(0x148)],'command':_0x8d1bec[_0xe51f14(0x165)]};}export function generateDynamicServiceHelp(_0x2e541b){const _0x53dd81=a32_0x44b2,_0x619f97=listLocalServiceTrees()[_0x53dd81(0x14c)](_0x4a4824=>_0x4a4824[_0x53dd81(0x152)]['code']===_0x2e541b);if(!_0x619f97)return undefined;const _0x43e3fe=[CLI_BIN_NAME+'\x20'+_0x2e541b+_0x53dd81(0x13d),'',_0x619f97[_0x53dd81(0x152)][_0x53dd81(0x168)]||_0x2e541b,_0x619f97[_0x53dd81(0x152)][_0x53dd81(0x183)]?'\x20\x20'+_0x619f97['service'][_0x53dd81(0x183)]:'','',_0x53dd81(0x123),..._0x619f97[_0x53dd81(0x175)][_0x53dd81(0x141)](_0x346be3=>{const _0x50569c=_0x53dd81,_0x4cde81=_0x346be3[_0x50569c(0x172)][_0x50569c(0x173)](0x1)[_0x50569c(0x155)]('\x20'),_0x2a2c58=_0x346be3[_0x50569c(0x143)]==='read'?'':'\x20['+_0x346be3[_0x50569c(0x143)]+']';return'\x20\x20'+_0x4cde81[_0x50569c(0x170)](0x18)+'\x20'+(_0x346be3[_0x50569c(0x183)]||'')+_0x2a2c58;}),'',_0x53dd81(0x136)+CLI_BIN_NAME+_0x53dd81(0x167)+_0x2e541b+_0x53dd81(0x124)][_0x53dd81(0x12b)](Boolean);return _0x43e3fe[_0x53dd81(0x155)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x59adfc=>{const _0x3d27d0=a32_0x44b2,_0x5e0a8c=_0x59adfc[_0x3d27d0(0x176)];return{'service':_0x5e0a8c['service'][_0x3d27d0(0x127)],'label':_0x5e0a8c[_0x3d27d0(0x152)][_0x3d27d0(0x168)]||_0x5e0a8c['service']['code'],'commands':_0x5e0a8c[_0x3d27d0(0x175)][_0x3d27d0(0x141)](_0x622103=>({'command':dynamicCommandName(_0x622103),'description':_0x622103['description']||_0x3d27d0(0x162)+_0x622103[_0x3d27d0(0x163)],'tag':riskTag(_0x622103[_0x3d27d0(0x143)])}))};});}export function getDynamicServiceEntry(_0x5d014f){const _0x215d78=a32_0x44b2;return listDynamicServiceEntries()[_0x215d78(0x14c)](_0x28e982=>_0x28e982[_0x215d78(0x152)]===_0x5d014f);}function a32_0xccc1(){const _0x5872ea=['description','4vJasbD','length','boolean','fromEntries','app','appBindings','296790rKQzUB','1617642CMfBsN','string','Commands:','`\x20to\x20inspect\x20the\x20manifest.','\x20\x20\x20\x20command:\x20','bffId','code','type','data','validation','filter','remainingArgs','appRef','7cITykc','source','\x20requires\x20target.sqlCode.','read','1601224JHEbqN','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','datatable','\x20\x20\x20\x20kind:\x20\x20\x20\x20','Use\x20`','\x20->\x20','args','now','cliName','Unsupported\x20service\x20target\x20kind:\x20','entries','\x20<command>\x20[flags]','appcode','flatMap','\x20\x20\x20\x20datasetCode:\x20','map','scriptName','risk','target','context.','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','default','tree','ctx.','tableName','employeeId','find','nickname','5NIkivA','Unknown\x20appRef\x20\x22','mapTo','push','service','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','12409LxgifC','join','\x22\x20in\x20service\x20command\x20','nickName','Preview\x20dynamic\x20service\x20command:\x20','\x20\x20[','23808SwwVpd','\x20requires\x20target.scriptName.','\x20\x20\x20\x20datatable:\x20','2929311wucyZX','sql','\x20\x20MAP\x20TO','bffCode','kind','Run\x20service\x20command\x20','cliPath','required','command','dbtableConfig','\x20service\x20detail\x20--service\x20','name','27kazNXG','startsWith','userName','appCode','params','\x20\x20\x20\x20sqlCode:\x20','Service\x20command\x20','padEnd','loginName','fullPath','slice','operator','commands','normalizedManifest','sqlCode','SERVICE_TREE','env','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','enum','trim','Cannot\x20resolve\x20datatable\x20\x22','flags','userId','datasetCode','\x20completed\x20in\x20','298860GzEgkE'];a32_0xccc1=function(){return _0x5872ea;};return a32_0xccc1();}export function listDynamicServiceDefinitions(_0x48919c){const _0x231c71=a32_0x44b2;return listLocalServiceTrees()[_0x231c71(0x12b)](_0x1377ae=>!_0x48919c||_0x1377ae[_0x231c71(0x152)][_0x231c71(0x127)]===_0x48919c)[_0x231c71(0x13f)](_0x220e73=>_0x220e73['commands']['map'](_0x33be4b=>buildDynamicCommandDefinition(_0x220e73,_0x33be4b)));}export function getDynamicServiceDefinitions(_0x536a1f){const _0x471612=listDynamicServiceDefinitions(_0x536a1f);return _0x471612['length']>0x0?_0x471612:undefined;}export function findDynamicServiceDefinition(_0x32e12b,_0x4c948c){const _0x1abb31=a32_0x44b2;return listDynamicServiceDefinitions(_0x32e12b)[_0x1abb31(0x14c)](_0x458643=>_0x458643['command']===_0x4c948c);}export function buildDynamicCommandDefinition(_0x2f94fe,_0x90ea51){const _0x48b772=a32_0x44b2;return{'service':_0x2f94fe[_0x48b772(0x152)][_0x48b772(0x127)],'command':dynamicCommandName(_0x90ea51),'description':_0x90ea51[_0x48b772(0x183)]||_0x48b772(0x162)+_0x90ea51[_0x48b772(0x163)],'risk':_0x90ea51[_0x48b772(0x143)],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x90ea51[_0x48b772(0x138)][_0x48b772(0x141)](_0x5cc778=>({'name':_0x5cc778[_0x48b772(0x168)],'description':_0x5cc778['description']||_0x5cc778['name'],'required':_0x5cc778[_0x48b772(0x164)]})),'flags':_0x90ea51[_0x48b772(0x17e)][_0x48b772(0x141)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x90ea51),async 'dryRun'(_0x172ac6){const _0x546862=_0x48b772,_0x5ea0ec=await compilePlan(_0x90ea51,_0x172ac6);return{'method':_0x546862(0x178),'url':_0x90ea51[_0x546862(0x163)],'body':{'target':targetPreview(_0x5ea0ec),'params':_0x5ea0ec['params']},'description':_0x546862(0x158)+_0x90ea51[_0x546862(0x163)]};},async 'execute'(_0x3473f0){const _0x520c9b=_0x48b772,_0x8aa14e=await compilePlan(_0x90ea51,_0x3473f0),_0x49ed2e=Date[_0x520c9b(0x139)](),_0x7f7f63=await executePlan(_0x8aa14e,_0x90ea51,_0x3473f0),_0x64a637=Date[_0x520c9b(0x139)]()-_0x49ed2e;return{'ok':!![],'data':{'service':_0x2f94fe['service'],'command':_0x90ea51['cliPath'],'target':targetPreview(_0x8aa14e),'result':_0x7f7f63,'elapsed':_0x64a637},'message':_0x520c9b(0x16f)+_0x90ea51[_0x520c9b(0x163)]+_0x520c9b(0x181)+_0x64a637+'ms'};}};}function dynamicCommandName(_0x3cca56){const _0x3ef498=a32_0x44b2;return _0x3cca56[_0x3ef498(0x172)][_0x3ef498(0x173)](0x1)[_0x3ef498(0x155)]('\x20');}function riskTag(_0x345288){const _0x4019ba=a32_0x44b2;return _0x345288===_0x4019ba(0x131)?'':_0x4019ba(0x159)+_0x345288+']';}function flagToCommandFlag(_0x3c22d3){const _0x5877b8=a32_0x44b2;return{'name':_0x3c22d3[_0x5877b8(0x13a)],'type':_0x3c22d3[_0x5877b8(0x128)]==='json'?_0x5877b8(0x122):_0x3c22d3[_0x5877b8(0x128)],'description':_0x3c22d3[_0x5877b8(0x183)]||_0x3c22d3[_0x5877b8(0x168)],'required':_0x3c22d3[_0x5877b8(0x164)],'default':isPrimitiveFlagDefault(_0x3c22d3[_0x5877b8(0x147)])?_0x3c22d3[_0x5877b8(0x147)]:undefined,'enum':_0x3c22d3[_0x5877b8(0x17b)]};}async function compilePlan(_0xc65808,_0x27c8c0){const _0x200b33=a32_0x44b2;return compileServiceTreeCommand(_0xc65808,{'flags':_0x27c8c0['rawFlags'],'args':_0x27c8c0[_0x200b33(0x138)],'context':await buildServiceContext(_0xc65808,_0x27c8c0)});}async function buildServiceContext(_0x3a97e2,_0x311fe4){const _0x326fea=a32_0x44b2,_0x1f4241={'appCode':_0x311fe4[_0x326fea(0x16c)],'env':_0x311fe4['envName'],'envName':_0x311fe4['envName']};if(!usesRuntimeContext(_0x3a97e2))return _0x1f4241;const _0x3a7e96=await getLoginUserInfo(),_0x31a61f=pickFirst(_0x3a7e96[_0x326fea(0x17f)],_0x3a7e96['id']);return{..._0x1f4241,'user':_0x3a7e96,'userId':_0x31a61f,'id':_0x3a7e96['id'],'username':pickFirst(_0x3a7e96['username'],_0x3a7e96[_0x326fea(0x16b)],_0x3a7e96[_0x326fea(0x171)]),'userName':_0x3a7e96['userName'],'nickname':pickFirst(_0x3a7e96[_0x326fea(0x14d)],_0x3a7e96[_0x326fea(0x157)]),'nickName':_0x3a7e96[_0x326fea(0x157)],'tenantCode':_0x3a7e96['tenantCode'],'employeeId':_0x3a7e96[_0x326fea(0x14b)]};}function usesRuntimeContext(_0x4c7bd3){const _0x5a738a=a32_0x44b2;return _0x4c7bd3[_0x5a738a(0x150)]['some'](_0x199252=>typeof _0x199252[_0x5a738a(0x12f)]==='string'&&(_0x199252[_0x5a738a(0x12f)]['startsWith'](_0x5a738a(0x145))||_0x199252[_0x5a738a(0x12f)][_0x5a738a(0x16a)](_0x5a738a(0x149))));}function a32_0x44b2(_0x237d9e,_0x430bbb){_0x237d9e=_0x237d9e-0x121;const _0xccc152=a32_0xccc1();let _0x44b297=_0xccc152[_0x237d9e];return _0x44b297;}function pickFirst(..._0x16623c){const _0x1dc9bf=a32_0x44b2;return _0x16623c[_0x1dc9bf(0x14c)](_0xa9ce5a=>_0xa9ce5a!==undefined&&_0xa9ce5a!==null);}async function executePlan(_0x3d5abf,_0x551959,_0x4c2c8b){const _0xa5847a=a32_0x44b2;if(_0x3d5abf[_0xa5847a(0x161)]===_0xa5847a(0x129)){const _0xc9703f=await resolveDatasetCode(_0x3d5abf,_0x551959,_0x4c2c8b);return executeData(_0xc9703f,_0x3d5abf[_0xa5847a(0x165)],_0x3d5abf[_0xa5847a(0x16d)]);}if(_0x3d5abf[_0xa5847a(0x161)]===_0xa5847a(0x15e)){if(!_0x3d5abf['sqlCode'])throw CliErrors[_0xa5847a(0x12a)](_0xa5847a(0x16f)+_0x551959[_0xa5847a(0x163)]+_0xa5847a(0x130));return executeSdkSql(_0x3d5abf[_0xa5847a(0x177)],normalizeScalarParams(_0x3d5abf[_0xa5847a(0x16d)]));}if(_0x3d5abf[_0xa5847a(0x161)]==='bff'){const _0x50f77f=_0x3d5abf['scriptName']||_0x3d5abf['bffCode']||(_0x3d5abf[_0xa5847a(0x126)]==null?'':String(_0x3d5abf[_0xa5847a(0x126)]));if(!_0x50f77f)throw CliErrors[_0xa5847a(0x12a)](_0xa5847a(0x16f)+_0x551959[_0xa5847a(0x163)]+_0xa5847a(0x15b));return executeSdkBff(_0x50f77f,_0x3d5abf[_0xa5847a(0x16d)]);}throw CliErrors[_0xa5847a(0x12a)](_0xa5847a(0x13b)+_0x3d5abf[_0xa5847a(0x161)]);}async function resolveDatasetCode(_0xcdda93,_0x4dd73b,_0x13a82e){const _0x5d9b50=a32_0x44b2;if(_0xcdda93[_0x5d9b50(0x180)])return _0xcdda93[_0x5d9b50(0x180)];if(!_0xcdda93[_0x5d9b50(0x134)])throw CliErrors['validation'](_0x5d9b50(0x16f)+_0x4dd73b[_0x5d9b50(0x163)]+_0x5d9b50(0x146));const _0x5631bd=await listDatasets(_0x13a82e[_0x5d9b50(0x16c)]),_0x1ac98e=_0x5631bd[_0x5d9b50(0x14c)](_0x1c874c=>_0x1c874c[_0x5d9b50(0x166)]?.[_0x5d9b50(0x14a)]===_0xcdda93['datatable']);if(!_0x1ac98e?.[_0x5d9b50(0x127)])throw CliErrors[_0x5d9b50(0x12a)](_0x5d9b50(0x17d)+_0xcdda93['datatable']+_0x5d9b50(0x153)+_0x13a82e['appCode']+'.',_0x5d9b50(0x133));return _0x1ac98e[_0x5d9b50(0x127)];}function applyAppBinding(_0x271f3f,_0x2c2938,_0x371b4c){const _0x136dc1=a32_0x44b2,_0x495a7e=_0x2c2938['target'][_0x136dc1(0x12d)];if(!_0x495a7e)return;const _0x1778ef=_0x271f3f[_0x136dc1(0x189)][_0x495a7e];if(!_0x1778ef)throw CliErrors[_0x136dc1(0x12a)](_0x136dc1(0x14f)+_0x495a7e+_0x136dc1(0x156)+_0x2c2938[_0x136dc1(0x163)]+'.',_0x136dc1(0x17a));const _0x184f49=_0x1778ef[_0x136dc1(0x13e)]||_0x1778ef[_0x136dc1(0x16c)];_0x184f49&&!hasText(_0x371b4c['appcode'])&&(_0x371b4c[_0x136dc1(0x13e)]=_0x184f49),_0x1778ef['app']&&!hasText(_0x371b4c[_0x136dc1(0x188)])&&!hasText(_0x371b4c[_0x136dc1(0x13e)])&&(_0x371b4c[_0x136dc1(0x188)]=_0x1778ef['app']),_0x1778ef['env']&&!hasText(_0x371b4c[_0x136dc1(0x179)])&&(_0x371b4c['env']=_0x1778ef[_0x136dc1(0x179)]);}function renderDynamicCommandHelp(_0x3e315b){const _0x3eca15=a32_0x44b2,_0x4a15b7=['\x20\x20SERVICE\x20TREE\x20TARGET',_0x3eca15(0x135)+_0x3e315b[_0x3eca15(0x144)][_0x3eca15(0x161)],_0x3eca15(0x125)+_0x3e315b[_0x3eca15(0x144)][_0x3eca15(0x165)]];if(_0x3e315b[_0x3eca15(0x144)][_0x3eca15(0x180)])_0x4a15b7[_0x3eca15(0x151)](_0x3eca15(0x140)+_0x3e315b[_0x3eca15(0x144)]['datasetCode']);if(_0x3e315b[_0x3eca15(0x144)][_0x3eca15(0x134)])_0x4a15b7['push'](_0x3eca15(0x15c)+_0x3e315b['target'][_0x3eca15(0x134)]);if(_0x3e315b[_0x3eca15(0x144)]['sqlCode'])_0x4a15b7['push'](_0x3eca15(0x16e)+_0x3e315b[_0x3eca15(0x144)][_0x3eca15(0x177)]);if(_0x3e315b[_0x3eca15(0x144)][_0x3eca15(0x142)])_0x4a15b7[_0x3eca15(0x151)]('\x20\x20\x20\x20scriptName:\x20'+_0x3e315b[_0x3eca15(0x144)][_0x3eca15(0x142)]);if(_0x3e315b[_0x3eca15(0x150)][_0x3eca15(0x185)]>0x0){_0x4a15b7[_0x3eca15(0x151)]('',_0x3eca15(0x15f));for(const _0x1bae74 of _0x3e315b[_0x3eca15(0x150)]){_0x4a15b7[_0x3eca15(0x151)]('\x20\x20\x20\x20'+(_0x1bae74[_0x3eca15(0x12f)]||'const')+_0x3eca15(0x137)+_0x1bae74[_0x3eca15(0x144)]+(_0x1bae74[_0x3eca15(0x174)]?'.'+_0x1bae74['operator']:''));}}return _0x4a15b7[_0x3eca15(0x155)]('\x0a');}function targetPreview(_0x46bc96){const _0x1d5730=a32_0x44b2;return{'kind':_0x46bc96[_0x1d5730(0x161)],'command':_0x46bc96['command'],'appRef':_0x46bc96[_0x1d5730(0x12d)],'datasetCode':_0x46bc96[_0x1d5730(0x180)],'datatable':_0x46bc96[_0x1d5730(0x134)],'sqlCode':_0x46bc96[_0x1d5730(0x177)],'bffCode':_0x46bc96[_0x1d5730(0x160)],'bffId':_0x46bc96['bffId'],'scriptName':_0x46bc96[_0x1d5730(0x142)]};}function normalizeScalarParams(_0x47e997){const _0x37b7cf=a32_0x44b2;return Object[_0x37b7cf(0x187)](Object[_0x37b7cf(0x13c)](_0x47e997)[_0x37b7cf(0x12b)](([,_0x46ecbf])=>typeof _0x46ecbf===_0x37b7cf(0x122)||typeof _0x46ecbf==='number'));}function hasText(_0x4252f7){const _0x12dcbf=a32_0x44b2;return typeof _0x4252f7==='string'&&_0x4252f7[_0x12dcbf(0x17c)]()[_0x12dcbf(0x185)]>0x0;}function isPrimitiveFlagDefault(_0x4d7b0b){const _0x181ab7=a32_0x44b2;return _0x4d7b0b===undefined||typeof _0x4d7b0b===_0x181ab7(0x122)||typeof _0x4d7b0b==='number'||typeof _0x4d7b0b===_0x181ab7(0x186);}
1
+ (function(_0x2bef39,_0x381fa2){const _0x47f187=a32_0xd5be,_0x45510b=_0x2bef39();while(!![]){try{const _0x111a86=-parseInt(_0x47f187(0xb4))/0x1+-parseInt(_0x47f187(0xa6))/0x2+-parseInt(_0x47f187(0xde))/0x3+-parseInt(_0x47f187(0xd1))/0x4*(parseInt(_0x47f187(0xf9))/0x5)+-parseInt(_0x47f187(0xbe))/0x6*(parseInt(_0x47f187(0xca))/0x7)+-parseInt(_0x47f187(0xa7))/0x8*(parseInt(_0x47f187(0xe6))/0x9)+parseInt(_0x47f187(0xc6))/0xa;if(_0x111a86===_0x381fa2)break;else _0x45510b['push'](_0x45510b['shift']());}catch(_0x7525f4){_0x45510b['push'](_0x45510b['shift']());}}}(a32_0x3330,0xee369));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(_0x18f4cd,_0x4e567d){const _0x1eac6c=a32_0xd5be,_0x163785=listLocalServiceTrees();let _0x53e8e6;for(const _0x39cb61 of _0x163785){const _0x2319a9=matchServiceTreeCommand(_0x39cb61,_0x18f4cd);if(!_0x2319a9)continue;(!_0x53e8e6||_0x2319a9[_0x1eac6c(0xd2)][_0x1eac6c(0xe4)][_0x1eac6c(0xa9)]>_0x53e8e6[_0x1eac6c(0xd2)][_0x1eac6c(0xe4)][_0x1eac6c(0xa9)])&&(_0x53e8e6={'tree':_0x39cb61,'command':_0x2319a9[_0x1eac6c(0xd2)],'remainingArgs':_0x2319a9[_0x1eac6c(0xf6)]});}if(!_0x53e8e6)return undefined;const _0x5d3840={..._0x4e567d};return applyAppBinding(_0x53e8e6[_0x1eac6c(0xbb)],_0x53e8e6[_0x1eac6c(0xd2)],_0x5d3840),{'definition':buildDynamicCommandDefinition(_0x53e8e6[_0x1eac6c(0xbb)],_0x53e8e6['command']),'args':_0x53e8e6[_0x1eac6c(0xf6)],'flags':_0x5d3840,'tree':_0x53e8e6[_0x1eac6c(0xbb)],'command':_0x53e8e6[_0x1eac6c(0xd2)]};}export function generateDynamicServiceHelp(_0x54985c){const _0x1f0bc3=a32_0xd5be,_0x44c139=listLocalServiceTrees()[_0x1f0bc3(0xea)](_0x16ed30=>_0x16ed30[_0x1f0bc3(0xfb)][_0x1f0bc3(0xa4)]===_0x54985c);if(!_0x44c139)return undefined;const _0x483eea=[CLI_BIN_NAME+'\x20'+_0x54985c+_0x1f0bc3(0xcc),'',_0x44c139[_0x1f0bc3(0xfb)]['name']||_0x54985c,_0x44c139[_0x1f0bc3(0xfb)][_0x1f0bc3(0xdd)]?'\x20\x20'+_0x44c139[_0x1f0bc3(0xfb)][_0x1f0bc3(0xdd)]:'','','Commands:',..._0x44c139[_0x1f0bc3(0xc0)]['map'](_0x1c3cbc=>{const _0x1c25a3=_0x1f0bc3,_0x5d49bf=_0x1c3cbc[_0x1c25a3(0xe4)][_0x1c25a3(0xf1)](0x1)['join']('\x20'),_0x5cb16c=_0x1c3cbc[_0x1c25a3(0xf0)]===_0x1c25a3(0xd4)?'':'\x20['+_0x1c3cbc[_0x1c25a3(0xf0)]+']';return'\x20\x20'+_0x5d49bf['padEnd'](0x18)+'\x20'+(_0x1c3cbc[_0x1c25a3(0xdd)]||'')+_0x5cb16c;}),'','Use\x20`'+CLI_BIN_NAME+_0x1f0bc3(0xd9)+_0x54985c+_0x1f0bc3(0xb5)]['filter'](Boolean);return _0x483eea[_0x1f0bc3(0xd6)]('\x0a');}export function listDynamicServiceEntries(){const _0x581c8a=a32_0xd5be;return listLocalServices()[_0x581c8a(0xbf)](_0xca4f35=>{const _0xe72d12=_0x581c8a,_0x19ba73=_0xca4f35[_0xe72d12(0xe9)];return{'service':_0x19ba73[_0xe72d12(0xfb)]['code'],'label':_0x19ba73[_0xe72d12(0xfb)][_0xe72d12(0xcb)]||_0x19ba73['service'][_0xe72d12(0xa4)],'commands':_0x19ba73[_0xe72d12(0xc0)]['map'](_0x1e64c4=>({'command':dynamicCommandName(_0x1e64c4),'description':_0x1e64c4[_0xe72d12(0xdd)]||'Run\x20service\x20command\x20'+_0x1e64c4[_0xe72d12(0xaa)],'tag':riskTag(_0x1e64c4['risk'])}))};});}export function getDynamicServiceEntry(_0x295390){const _0x27f6a8=a32_0xd5be;return listDynamicServiceEntries()[_0x27f6a8(0xea)](_0x1251d0=>_0x1251d0[_0x27f6a8(0xfb)]===_0x295390);}export function listDynamicServiceDefinitions(_0x25cdc9){const _0xd3eb84=a32_0xd5be;return listLocalServiceTrees()[_0xd3eb84(0xdb)](_0x11dfcb=>!_0x25cdc9||_0x11dfcb[_0xd3eb84(0xfb)][_0xd3eb84(0xa4)]===_0x25cdc9)[_0xd3eb84(0xc2)](_0x2609be=>_0x2609be['commands']['map'](_0x27440f=>buildDynamicCommandDefinition(_0x2609be,_0x27440f)));}export function getDynamicServiceDefinitions(_0x2c37e4){const _0x2b77db=listDynamicServiceDefinitions(_0x2c37e4);return _0x2b77db['length']>0x0?_0x2b77db:undefined;}export function findDynamicServiceDefinition(_0x4eb94d,_0x4c9b4d){return listDynamicServiceDefinitions(_0x4eb94d)['find'](_0x113c4a=>_0x113c4a['command']===_0x4c9b4d);}export function buildDynamicCommandDefinition(_0x9dae31,_0xaeb376){const _0x128bc9=a32_0xd5be;return{'service':_0x9dae31['service'][_0x128bc9(0xa4)],'command':dynamicCommandName(_0xaeb376),'description':_0xaeb376[_0x128bc9(0xdd)]||_0x128bc9(0xcf)+_0xaeb376[_0x128bc9(0xaa)],'risk':_0xaeb376[_0x128bc9(0xf0)],'requiresAuth':!![],'requiresAppCode':!![],'args':_0xaeb376[_0x128bc9(0xa2)][_0x128bc9(0xbf)](_0x16e2ae=>({'name':_0x16e2ae[_0x128bc9(0xcb)],'description':_0x16e2ae[_0x128bc9(0xdd)]||_0x16e2ae[_0x128bc9(0xcb)],'required':_0x16e2ae[_0x128bc9(0xd3)]})),'flags':_0xaeb376['flags']['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0xaeb376),async 'dryRun'(_0x56c772){const _0x52a1e3=_0x128bc9,_0x4ce21f=await compilePlan(_0xaeb376,_0x56c772);return{'method':_0x52a1e3(0xa1),'url':_0xaeb376[_0x52a1e3(0xaa)],'body':{'target':targetPreview(_0x4ce21f),'params':_0x4ce21f['params']},'description':_0x52a1e3(0xee)+_0xaeb376['cliPath']};},async 'execute'(_0x3505ea){const _0x52c81e=_0x128bc9,_0xffa6e9=await compilePlan(_0xaeb376,_0x3505ea),_0x3c58e1=Date[_0x52c81e(0xd8)](),_0x510db4=await executePlan(_0xffa6e9,_0xaeb376,_0x3505ea),_0x3a0e43=Date[_0x52c81e(0xd8)]()-_0x3c58e1;return{'ok':!![],'data':{'service':_0x9dae31[_0x52c81e(0xfb)],'command':_0xaeb376['cliPath'],'target':targetPreview(_0xffa6e9),'result':_0x510db4,'elapsed':_0x3a0e43},'message':'Service\x20command\x20'+_0xaeb376[_0x52c81e(0xaa)]+'\x20completed\x20in\x20'+_0x3a0e43+'ms'};}};}function dynamicCommandName(_0x5305ce){const _0x6d1205=a32_0xd5be;return _0x5305ce[_0x6d1205(0xe4)][_0x6d1205(0xf1)](0x1)['join']('\x20');}function riskTag(_0x17cf0b){const _0x559adf=a32_0xd5be;return _0x17cf0b===_0x559adf(0xd4)?'':_0x559adf(0xb0)+_0x17cf0b+']';}function a32_0xd5be(_0x1a5f84,_0x97dc09){_0x1a5f84=_0x1a5f84-0x9d;const _0x333052=a32_0x3330();let _0xd5be73=_0x333052[_0x1a5f84];return _0xd5be73;}function flagToCommandFlag(_0x44990f){const _0x50fa1e=a32_0xd5be;return{'name':_0x44990f['cliName'],'type':_0x44990f['type']==='json'?'string':_0x44990f[_0x50fa1e(0xf3)],'description':_0x44990f[_0x50fa1e(0xdd)]||_0x44990f[_0x50fa1e(0xcb)],'required':_0x44990f[_0x50fa1e(0xd3)],'default':isPrimitiveFlagDefault(_0x44990f['default'])?_0x44990f['default']:undefined,'enum':_0x44990f['enum']};}async function compilePlan(_0x47029e,_0x1177ed){const _0x9be11c=a32_0xd5be;return compileServiceTreeCommand(_0x47029e,{'flags':_0x1177ed[_0x9be11c(0xc9)],'args':_0x1177ed[_0x9be11c(0xa2)],'context':await buildServiceContext(_0x47029e,_0x1177ed)});}async function buildServiceContext(_0x1d5ca2,_0x5b2136){const _0x21bf1d=a32_0xd5be,_0x486925={'appCode':_0x5b2136[_0x21bf1d(0xda)],'env':_0x5b2136[_0x21bf1d(0x9f)],'envName':_0x5b2136[_0x21bf1d(0x9f)]};if(!usesRuntimeContext(_0x1d5ca2))return _0x486925;const _0x3b3946=await getLoginUserInfo(),_0x3022a8=pickFirst(_0x3b3946[_0x21bf1d(0xf5)],_0x3b3946['id']);return{..._0x486925,'user':_0x3b3946,'userId':_0x3022a8,'id':_0x3b3946['id'],'username':pickFirst(_0x3b3946['username'],_0x3b3946[_0x21bf1d(0xfa)],_0x3b3946[_0x21bf1d(0xb3)]),'userName':_0x3b3946['userName'],'nickname':pickFirst(_0x3b3946['nickname'],_0x3b3946[_0x21bf1d(0xef)]),'nickName':_0x3b3946[_0x21bf1d(0xef)],'tenantCode':_0x3b3946[_0x21bf1d(0xc4)],'employeeId':_0x3b3946[_0x21bf1d(0xd5)]};}function usesRuntimeContext(_0x5c4277){const _0x522777=a32_0xd5be;return _0x5c4277[_0x522777(0xf4)][_0x522777(0xfd)](_0x29ccc6=>typeof _0x29ccc6[_0x522777(0xb2)]==='string'&&(_0x29ccc6[_0x522777(0xb2)]['startsWith']('context.')||_0x29ccc6[_0x522777(0xb2)][_0x522777(0xf7)]('ctx.')));}function pickFirst(..._0x851f76){const _0x4fb18e=a32_0xd5be;return _0x851f76[_0x4fb18e(0xea)](_0x14f332=>_0x14f332!==undefined&&_0x14f332!==null);}async function executePlan(_0x1f6d57,_0x47f9bd,_0x438e5f){const _0x52f6a0=a32_0xd5be;if(_0x1f6d57['kind']===_0x52f6a0(0xce)){const _0x540425=await resolveDatasetCode(_0x1f6d57,_0x47f9bd,_0x438e5f);return executeData(_0x540425,_0x1f6d57[_0x52f6a0(0xd2)],_0x1f6d57[_0x52f6a0(0xc3)]);}if(_0x1f6d57[_0x52f6a0(0xb7)]===_0x52f6a0(0xeb)){if(!_0x1f6d57[_0x52f6a0(0xd0)])throw CliErrors[_0x52f6a0(0xb1)](_0x52f6a0(0xdc)+_0x47f9bd[_0x52f6a0(0xaa)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x1f6d57[_0x52f6a0(0xd0)],normalizeScalarParams(_0x1f6d57[_0x52f6a0(0xc3)]));}if(_0x1f6d57[_0x52f6a0(0xb7)]==='bff'){const _0x7650ed=_0x1f6d57[_0x52f6a0(0xc7)]||_0x1f6d57[_0x52f6a0(0xc8)]||(_0x1f6d57[_0x52f6a0(0xa3)]==null?'':String(_0x1f6d57[_0x52f6a0(0xa3)]));if(!_0x7650ed)throw CliErrors['validation']('Service\x20command\x20'+_0x47f9bd[_0x52f6a0(0xaa)]+_0x52f6a0(0xcd));return executeSdkBff(_0x7650ed,_0x1f6d57[_0x52f6a0(0xc3)]);}throw CliErrors['validation'](_0x52f6a0(0xd7)+_0x1f6d57[_0x52f6a0(0xb7)]);}async function resolveDatasetCode(_0x297f79,_0x2b3afa,_0x465da7){const _0x1f8c06=a32_0xd5be;if(_0x297f79[_0x1f8c06(0xad)])return _0x297f79[_0x1f8c06(0xad)];if(!_0x297f79['datatable'])throw CliErrors['validation']('Service\x20command\x20'+_0x2b3afa['cliPath']+_0x1f8c06(0xdf));const _0x8f28e2=await listDatasets(_0x465da7['appCode']),_0x21f40c=_0x8f28e2['find'](_0xbdb63=>_0xbdb63['dbtableConfig']?.[_0x1f8c06(0xbc)]===_0x297f79[_0x1f8c06(0xae)]);if(!_0x21f40c?.[_0x1f8c06(0xa4)])throw CliErrors[_0x1f8c06(0xb1)](_0x1f8c06(0xa0)+_0x297f79[_0x1f8c06(0xae)]+_0x1f8c06(0xb8)+_0x465da7[_0x1f8c06(0xda)]+'.',_0x1f8c06(0x9d));return _0x21f40c[_0x1f8c06(0xa4)];}function applyAppBinding(_0x408470,_0x276481,_0x1c88c9){const _0x272396=a32_0xd5be,_0x345766=_0x276481[_0x272396(0xc5)][_0x272396(0xb9)];if(!_0x345766)return;const _0x268f3b=_0x408470[_0x272396(0xe8)][_0x345766];if(!_0x268f3b)throw CliErrors['validation']('Unknown\x20appRef\x20\x22'+_0x345766+_0x272396(0xac)+_0x276481[_0x272396(0xaa)]+'.',_0x272396(0xa8));const _0xa11fd7=_0x268f3b[_0x272396(0xe7)]||_0x268f3b[_0x272396(0xda)];_0xa11fd7&&!hasText(_0x1c88c9[_0x272396(0xe7)])&&(_0x1c88c9[_0x272396(0xe7)]=_0xa11fd7),_0x268f3b[_0x272396(0xba)]&&!hasText(_0x1c88c9['app'])&&!hasText(_0x1c88c9[_0x272396(0xe7)])&&(_0x1c88c9[_0x272396(0xba)]=_0x268f3b[_0x272396(0xba)]),_0x268f3b[_0x272396(0xf2)]&&!hasText(_0x1c88c9[_0x272396(0xf2)])&&(_0x1c88c9[_0x272396(0xf2)]=_0x268f3b[_0x272396(0xf2)]);}function renderDynamicCommandHelp(_0x644518){const _0xcda14d=a32_0xd5be,_0xd2ceb=['\x20\x20SERVICE\x20TREE\x20TARGET',_0xcda14d(0xaf)+_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xb7)],_0xcda14d(0xe0)+_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xd2)]];if(_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xad)])_0xd2ceb[_0xcda14d(0xb6)]('\x20\x20\x20\x20datasetCode:\x20'+_0x644518['target'][_0xcda14d(0xad)]);if(_0x644518['target'][_0xcda14d(0xae)])_0xd2ceb[_0xcda14d(0xb6)](_0xcda14d(0xe3)+_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xae)]);if(_0x644518[_0xcda14d(0xc5)]['sqlCode'])_0xd2ceb['push'](_0xcda14d(0x9e)+_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xd0)]);if(_0x644518[_0xcda14d(0xc5)][_0xcda14d(0xc7)])_0xd2ceb[_0xcda14d(0xb6)](_0xcda14d(0xa5)+_0x644518['target'][_0xcda14d(0xc7)]);if(_0x644518['mapTo']['length']>0x0){_0xd2ceb[_0xcda14d(0xb6)]('',_0xcda14d(0xec));for(const _0x4626b0 of _0x644518[_0xcda14d(0xf4)]){_0xd2ceb[_0xcda14d(0xb6)]('\x20\x20\x20\x20'+(_0x4626b0[_0xcda14d(0xb2)]||_0xcda14d(0xab))+_0xcda14d(0xf8)+_0x4626b0[_0xcda14d(0xc5)]+(_0x4626b0[_0xcda14d(0xbd)]?'.'+_0x4626b0['operator']:''));}}return _0xd2ceb['join']('\x0a');}function a32_0x3330(){const _0x37d523=['boolean','Preview\x20dynamic\x20service\x20command:\x20','nickName','risk','slice','env','type','mapTo','userId','remainingArgs','startsWith','\x20->\x20','400485tnzVsb','userName','service','fromEntries','some','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20\x20\x20sqlCode:\x20','envName','Cannot\x20resolve\x20datatable\x20\x22','SERVICE_TREE','args','bffId','code','\x20\x20\x20\x20scriptName:\x20','2761986YeMIkc','321560mLOxmQ','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','length','cliPath','const','\x22\x20in\x20service\x20command\x20','datasetCode','datatable','\x20\x20\x20\x20kind:\x20\x20\x20\x20','\x20\x20[','validation','source','loginName','1015838vCkwSX','`\x20to\x20inspect\x20the\x20manifest.','push','kind','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','appRef','app','tree','tableName','operator','2364cNFZNX','map','commands','number','flatMap','params','tenantCode','target','80434600ROQAmQ','scriptName','bffCode','rawFlags','3101mwQvIH','name','\x20<command>\x20[flags]','\x20requires\x20target.scriptName.','data','Run\x20service\x20command\x20','sqlCode','48WJEDpd','command','required','read','employeeId','join','Unsupported\x20service\x20target\x20kind:\x20','now','\x20service\x20detail\x20--service\x20','appCode','filter','Service\x20command\x20','description','5661621JnpSLG','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','\x20\x20\x20\x20command:\x20','string','trim','\x20\x20\x20\x20datatable:\x20','fullPath','entries','369YoLeox','appcode','appBindings','normalizedManifest','find','sql','\x20\x20MAP\x20TO'];a32_0x3330=function(){return _0x37d523;};return a32_0x3330();}function targetPreview(_0x49e165){const _0x1e5c2e=a32_0xd5be;return{'kind':_0x49e165['kind'],'command':_0x49e165[_0x1e5c2e(0xd2)],'appRef':_0x49e165[_0x1e5c2e(0xb9)],'datasetCode':_0x49e165[_0x1e5c2e(0xad)],'datatable':_0x49e165[_0x1e5c2e(0xae)],'sqlCode':_0x49e165[_0x1e5c2e(0xd0)],'bffCode':_0x49e165[_0x1e5c2e(0xc8)],'bffId':_0x49e165['bffId'],'scriptName':_0x49e165[_0x1e5c2e(0xc7)]};}function normalizeScalarParams(_0x4445e1){const _0x5813f7=a32_0xd5be;return Object[_0x5813f7(0xfc)](Object[_0x5813f7(0xe5)](_0x4445e1)['filter'](([,_0x316069])=>typeof _0x316069===_0x5813f7(0xe1)||typeof _0x316069===_0x5813f7(0xc1)));}function hasText(_0x439c3f){const _0x487dde=a32_0xd5be;return typeof _0x439c3f===_0x487dde(0xe1)&&_0x439c3f[_0x487dde(0xe2)]()[_0x487dde(0xa9)]>0x0;}function isPrimitiveFlagDefault(_0x587277){const _0x2dbcad=a32_0xd5be;return _0x587277===undefined||typeof _0x587277===_0x2dbcad(0xe1)||typeof _0x587277===_0x2dbcad(0xc1)||typeof _0x587277===_0x2dbcad(0xed);}
@@ -1 +1 @@
1
- const a33_0x28f41c=a33_0x589c;function a33_0x589c(_0x15efc7,_0x5302ce){_0x15efc7=_0x15efc7-0x142;const _0x20c81e=a33_0x20c8();let _0x589ca6=_0x20c81e[_0x15efc7];return _0x589ca6;}(function(_0x4a1345,_0x166178){const _0x1e1ed9=a33_0x589c,_0x589855=_0x4a1345();while(!![]){try{const _0x38209f=parseInt(_0x1e1ed9(0x17e))/0x1+-parseInt(_0x1e1ed9(0x14f))/0x2+-parseInt(_0x1e1ed9(0x159))/0x3*(parseInt(_0x1e1ed9(0x14b))/0x4)+-parseInt(_0x1e1ed9(0x15d))/0x5+-parseInt(_0x1e1ed9(0x17f))/0x6*(parseInt(_0x1e1ed9(0x181))/0x7)+parseInt(_0x1e1ed9(0x162))/0x8+parseInt(_0x1e1ed9(0x161))/0x9;if(_0x38209f===_0x166178)break;else _0x589855['push'](_0x589855['shift']());}catch(_0x2fd3df){_0x589855['push'](_0x589855['shift']());}}}(a33_0x20c8,0x2c479));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a33_0x20c8(){const _0x288c3a=['export','lower\x20kebab-case\x20service\x20code','Updated','373192aBXhWu','Imported','normalizedManifest','list','160102kvIeXY','registryServiceCode','entries','registry','map','read','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Service\x20manifest\x20validation\x20passed.','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','entry','3jYEqnJ','flags','Imported\x20','target','975905mWrjZw','service','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','registryPath','3250233cBeVkv','2195224VhCkPv','filePath','Removed\x20service\x20','remove','kind','registryIndex','length','type','Local\x20service\x20not\x20found:\x20','serviceCode','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','commands','write','import','serviceCount','Service\x20Tree\x20manifest\x20file\x20path','name','warnings','\x20service\x20','str','cliPath','source','\x20service(s),\x20updated\x20','Exported\x20service\x20','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','validate','report','updated','18546ihxWRm','18pqnPbE','file','243103xDdjRg','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','manifests','risk','string','version','errors','required','reduce','replaced','imported','WRITE','hash'];a33_0x20c8=function(){return _0x288c3a;};return a33_0x20c8();}const FILE_FLAG={'name':a33_0x28f41c(0x180),'type':a33_0x28f41c(0x185),'required':!![],'description':a33_0x28f41c(0x171)},SERVICE_FLAG={'name':'service','type':'string','required':!![],'description':'Local\x20service\x20code,\x20for\x20example\x20crm','pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a33_0x28f41c(0x149)}};function summarizeService(_0x6eed65){const _0xdfe8ce=a33_0x28f41c;return{'serviceCode':_0x6eed65[_0xdfe8ce(0x16b)],'name':_0x6eed65['normalizedManifest'][_0xdfe8ce(0x15e)][_0xdfe8ce(0x172)],'version':_0x6eed65[_0xdfe8ce(0x186)],'importedAt':_0x6eed65['importedAt'],'source':_0x6eed65[_0xdfe8ce(0x177)],'commandCount':_0x6eed65[_0xdfe8ce(0x14d)][_0xdfe8ce(0x16d)][_0xdfe8ce(0x168)],'commands':_0x6eed65[_0xdfe8ce(0x14d)][_0xdfe8ce(0x16d)][_0xdfe8ce(0x153)](_0x41fca0=>({'path':_0x41fca0[_0xdfe8ce(0x176)],'description':_0x41fca0['description'],'risk':_0x41fca0['risk'],'target':_0x41fca0[_0xdfe8ce(0x15c)],'flags':_0x41fca0[_0xdfe8ce(0x15a)][_0xdfe8ce(0x153)](_0x237182=>({'name':_0x237182['name'],'cliName':_0x237182['cliName'],'type':_0x237182[_0xdfe8ce(0x169)],'required':_0x237182[_0xdfe8ce(0x142)]===!![]}))}))};}function summarizeLoadedManifest(_0x113f36){const _0x5510f5=a33_0x28f41c;return{'service':_0x113f36[_0x5510f5(0x14d)]?.[_0x5510f5(0x15e)],'version':_0x113f36['normalizedManifest']?.[_0x5510f5(0x186)],'commandCount':_0x113f36['normalizedManifest']?.['commands'][_0x5510f5(0x168)]??0x0,'commands':_0x113f36[_0x5510f5(0x14d)]?.[_0x5510f5(0x16d)]['map'](_0x37bb42=>({'path':_0x37bb42[_0x5510f5(0x176)],'risk':_0x37bb42[_0x5510f5(0x184)],'target':_0x37bb42['target']}))??[],'registryIndex':_0x113f36[_0x5510f5(0x167)],'registryServiceCode':_0x113f36[_0x5510f5(0x150)],'errors':_0x113f36[_0x5510f5(0x17c)][_0x5510f5(0x187)],'warnings':_0x113f36['report'][_0x5510f5(0x173)]};}export const serviceDefinitions=[{'service':'service','command':a33_0x28f41c(0x17b),'description':a33_0x28f41c(0x182),'risk':a33_0x28f41c(0x154),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x1a208c){const _0x14e539=a33_0x28f41c,_0x251b71=loadServiceManifestFromFile(_0x1a208c[_0x14e539(0x175)](_0x14e539(0x180)));if(!_0x251b71['report']['ok'])return{'ok':![],'data':{'file':_0x251b71[_0x14e539(0x163)],'hash':_0x251b71[_0x14e539(0x147)],'kind':_0x251b71[_0x14e539(0x166)],'serviceCount':_0x251b71[_0x14e539(0x183)][_0x14e539(0x168)],'services':_0x251b71[_0x14e539(0x183)][_0x14e539(0x153)](summarizeLoadedManifest),'errors':_0x251b71[_0x14e539(0x17c)][_0x14e539(0x187)],'warnings':_0x251b71['report'][_0x14e539(0x173)]},'message':formatValidationFailure(_0x251b71[_0x14e539(0x17c)])};if(_0x251b71[_0x14e539(0x166)]===_0x14e539(0x152)||_0x251b71[_0x14e539(0x183)]['length']!==0x1)return{'ok':!![],'data':{'file':_0x251b71[_0x14e539(0x163)],'hash':_0x251b71[_0x14e539(0x147)],'kind':_0x251b71[_0x14e539(0x166)],'serviceCount':_0x251b71[_0x14e539(0x183)][_0x14e539(0x168)],'commandCount':_0x251b71['manifests'][_0x14e539(0x143)]((_0x4dfd67,_0x3f9c76)=>_0x4dfd67+(_0x3f9c76[_0x14e539(0x14d)]?.[_0x14e539(0x16d)][_0x14e539(0x168)]??0x0),0x0),'services':_0x251b71[_0x14e539(0x183)][_0x14e539(0x153)](summarizeLoadedManifest),'warnings':_0x251b71[_0x14e539(0x17c)]['warnings']},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x251b71[_0x14e539(0x163)],'hash':_0x251b71[_0x14e539(0x147)],'kind':_0x251b71[_0x14e539(0x166)],'service':_0x251b71[_0x14e539(0x14d)]?.['service'],'version':_0x251b71['normalizedManifest']?.[_0x14e539(0x186)],'commandCount':_0x251b71[_0x14e539(0x14d)]?.[_0x14e539(0x16d)][_0x14e539(0x168)]??0x0,'commands':_0x251b71[_0x14e539(0x14d)]?.[_0x14e539(0x16d)][_0x14e539(0x153)](_0x245969=>({'path':_0x245969[_0x14e539(0x176)],'risk':_0x245969[_0x14e539(0x184)],'target':_0x245969[_0x14e539(0x15c)]})),'warnings':_0x251b71[_0x14e539(0x17c)][_0x14e539(0x173)]},'message':_0x14e539(0x156)};}},{'service':a33_0x28f41c(0x15e),'command':a33_0x28f41c(0x16f),'description':'Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','risk':a33_0x28f41c(0x16e),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x48dfbb){const _0x2aacfb=a33_0x28f41c,_0x53e9a7=loadServiceManifestFromFile(_0x48dfbb['str'](_0x2aacfb(0x180)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x53e9a7[_0x2aacfb(0x163)],'hash':_0x53e9a7['hash'],'kind':_0x53e9a7['kind'],'ok':_0x53e9a7[_0x2aacfb(0x17c)]['ok'],'service':_0x53e9a7[_0x2aacfb(0x14d)]?.[_0x2aacfb(0x15e)],'version':_0x53e9a7[_0x2aacfb(0x14d)]?.[_0x2aacfb(0x186)],'serviceCount':_0x53e9a7[_0x2aacfb(0x183)][_0x2aacfb(0x168)],'services':_0x53e9a7[_0x2aacfb(0x183)][_0x2aacfb(0x153)](_0x49fd30=>({'service':_0x49fd30[_0x2aacfb(0x14d)]?.[_0x2aacfb(0x15e)],'version':_0x49fd30[_0x2aacfb(0x14d)]?.['version'],'commandCount':_0x49fd30['normalizedManifest']?.[_0x2aacfb(0x16d)]['length']??0x0,'errors':_0x49fd30[_0x2aacfb(0x17c)][_0x2aacfb(0x187)]})),'errors':_0x53e9a7[_0x2aacfb(0x17c)][_0x2aacfb(0x187)],'commandCount':_0x53e9a7['normalizedManifest']?.[_0x2aacfb(0x16d)][_0x2aacfb(0x168)]??0x0},'description':_0x2aacfb(0x17a)};},async 'execute'(_0x4e4361){const _0xdc3328=a33_0x28f41c,_0xd24684=importServiceManifest(_0x4e4361[_0xdc3328(0x175)](_0xdc3328(0x180)));if(_0xd24684[_0xdc3328(0x151)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0xd24684[_0xdc3328(0x160)],'imported':_0xd24684[_0xdc3328(0x145)],'updated':_0xd24684[_0xdc3328(0x17d)],'serviceCount':_0xd24684[_0xdc3328(0x170)],'services':_0xd24684[_0xdc3328(0x151)][_0xdc3328(0x153)](summarizeService)},'message':_0xdc3328(0x15b)+_0xd24684[_0xdc3328(0x145)]+_0xdc3328(0x178)+_0xd24684[_0xdc3328(0x17d)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0xd24684[_0xdc3328(0x160)],'replaced':_0xd24684[_0xdc3328(0x144)],'imported':_0xd24684['imported'],'updated':_0xd24684[_0xdc3328(0x17d)],'serviceCount':_0xd24684[_0xdc3328(0x170)],'service':summarizeService(_0xd24684[_0xdc3328(0x158)])},'message':(_0xd24684[_0xdc3328(0x144)]?_0xdc3328(0x14a):_0xdc3328(0x14c))+_0xdc3328(0x174)+_0xd24684[_0xdc3328(0x158)][_0xdc3328(0x16b)]+'.'};}},{'service':a33_0x28f41c(0x15e),'command':a33_0x28f41c(0x148),'description':'Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':a33_0x28f41c(0x16e),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x19beaf){const _0x13ddc5=a33_0x28f41c,_0x3b9de0=getLocalServiceEntry(_0x19beaf[_0x13ddc5(0x175)](_0x13ddc5(0x15e)));return{'method':_0x13ddc5(0x146),'url':_0x19beaf['str'](_0x13ddc5(0x180)),'body':{'service':_0x19beaf[_0x13ddc5(0x175)](_0x13ddc5(0x15e)),'found':Boolean(_0x3b9de0),'version':_0x3b9de0?.['version'],'source':_0x3b9de0?.[_0x13ddc5(0x177)]},'description':_0x13ddc5(0x15f)};},async 'execute'(_0x26d161){const _0x373d89=a33_0x28f41c,_0x4dffab=exportServiceManifest(_0x26d161[_0x373d89(0x175)](_0x373d89(0x15e)),_0x26d161[_0x373d89(0x175)]('file'));return{'ok':!![],'data':{'registryPath':_0x4dffab['registryPath'],'file':_0x4dffab[_0x373d89(0x163)],'service':summarizeService(_0x4dffab[_0x373d89(0x158)])},'message':_0x373d89(0x179)+_0x4dffab[_0x373d89(0x158)][_0x373d89(0x16b)]+'.'};}},{'service':'service','command':a33_0x28f41c(0x14e),'description':a33_0x28f41c(0x157),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x56dee2=a33_0x28f41c,_0x3e3f30=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x3e3f30[_0x56dee2(0x168)],'services':_0x3e3f30[_0x56dee2(0x153)](summarizeService)}};}},{'service':a33_0x28f41c(0x15e),'command':a33_0x28f41c(0x165),'description':'Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','risk':a33_0x28f41c(0x16e),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x216d92){const _0x1698c3=a33_0x28f41c,_0x3f5cf7=getLocalServiceEntry(_0x216d92[_0x1698c3(0x175)]('service'));return{'method':_0x1698c3(0x146),'url':getServiceRegistryPath(),'body':{'service':_0x216d92[_0x1698c3(0x175)](_0x1698c3(0x15e)),'found':Boolean(_0x3f5cf7),'version':_0x3f5cf7?.[_0x1698c3(0x186)],'source':_0x3f5cf7?.[_0x1698c3(0x177)]},'description':_0x1698c3(0x155)};},async 'execute'(_0x36c8eb){const _0x508218=a33_0x28f41c,_0x4bcc09=removeServiceManifest(_0x36c8eb[_0x508218(0x175)](_0x508218(0x15e)));return{'ok':!![],'data':{'registryPath':_0x4bcc09[_0x508218(0x160)],'serviceCount':_0x4bcc09[_0x508218(0x170)],'service':summarizeService(_0x4bcc09[_0x508218(0x158)])},'message':_0x508218(0x164)+_0x4bcc09[_0x508218(0x158)][_0x508218(0x16b)]+'.'};}},{'service':a33_0x28f41c(0x15e),'command':'detail','description':a33_0x28f41c(0x16c),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0xd18f9a){const _0x4430b2=a33_0x28f41c,_0x55487a=getLocalServiceEntry(_0xd18f9a[_0x4430b2(0x175)](_0x4430b2(0x15e)));if(!_0x55487a)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0xd18f9a[_0x4430b2(0x175)](_0x4430b2(0x15e))},'message':_0x4430b2(0x16a)+_0xd18f9a['str'](_0x4430b2(0x15e))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x55487a),'manifest':_0x55487a['manifest'],'normalizedManifest':_0x55487a['normalizedManifest']}};}}];
1
+ const a33_0x2b822a=a33_0x515b;(function(_0x56b58d,_0x5b1e9e){const _0x3eb27d=a33_0x515b,_0x460df6=_0x56b58d();while(!![]){try{const _0x2185f1=parseInt(_0x3eb27d(0x9c))/0x1+parseInt(_0x3eb27d(0x86))/0x2*(-parseInt(_0x3eb27d(0x88))/0x3)+-parseInt(_0x3eb27d(0xa5))/0x4*(parseInt(_0x3eb27d(0x79))/0x5)+parseInt(_0x3eb27d(0x9a))/0x6*(parseInt(_0x3eb27d(0x6d))/0x7)+parseInt(_0x3eb27d(0x8e))/0x8+parseInt(_0x3eb27d(0x6f))/0x9*(parseInt(_0x3eb27d(0x91))/0xa)+-parseInt(_0x3eb27d(0x97))/0xb;if(_0x2185f1===_0x5b1e9e)break;else _0x460df6['push'](_0x460df6['shift']());}catch(_0x496802){_0x460df6['push'](_0x460df6['shift']());}}}(a33_0x3480,0xe3940));function a33_0x515b(_0x3fb831,_0x16e0fb){_0x3fb831=_0x3fb831-0x6a;const _0x348077=a33_0x3480();let _0x515bd3=_0x348077[_0x3fb831];return _0x515bd3;}import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';const FILE_FLAG={'name':a33_0x2b822a(0x6a),'type':a33_0x2b822a(0x82),'required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':a33_0x2b822a(0x81),'type':a33_0x2b822a(0x82),'required':!![],'description':a33_0x2b822a(0x93),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x5221ff){const _0x46523e=a33_0x2b822a;return{'serviceCode':_0x5221ff[_0x46523e(0xa8)],'name':_0x5221ff['normalizedManifest'][_0x46523e(0x81)][_0x46523e(0x7c)],'version':_0x5221ff[_0x46523e(0x71)],'importedAt':_0x5221ff[_0x46523e(0x8c)],'source':_0x5221ff[_0x46523e(0x6e)],'commandCount':_0x5221ff['normalizedManifest'][_0x46523e(0x89)]['length'],'commands':_0x5221ff[_0x46523e(0x72)][_0x46523e(0x89)][_0x46523e(0x8f)](_0x29a9ef=>({'path':_0x29a9ef[_0x46523e(0x95)],'description':_0x29a9ef[_0x46523e(0x74)],'risk':_0x29a9ef[_0x46523e(0x76)],'target':_0x29a9ef[_0x46523e(0x8d)],'flags':_0x29a9ef['flags'][_0x46523e(0x8f)](_0x253230=>({'name':_0x253230[_0x46523e(0x7c)],'cliName':_0x253230[_0x46523e(0x94)],'type':_0x253230[_0x46523e(0xab)],'required':_0x253230[_0x46523e(0x78)]===!![]}))}))};}function summarizeLoadedManifest(_0x1cdd8b){const _0xb01bdf=a33_0x2b822a;return{'service':_0x1cdd8b[_0xb01bdf(0x72)]?.[_0xb01bdf(0x81)],'version':_0x1cdd8b[_0xb01bdf(0x72)]?.['version'],'commandCount':_0x1cdd8b[_0xb01bdf(0x72)]?.[_0xb01bdf(0x89)][_0xb01bdf(0xa9)]??0x0,'commands':_0x1cdd8b[_0xb01bdf(0x72)]?.[_0xb01bdf(0x89)][_0xb01bdf(0x8f)](_0x33b581=>({'path':_0x33b581['cliPath'],'risk':_0x33b581[_0xb01bdf(0x76)],'target':_0x33b581[_0xb01bdf(0x8d)]}))??[],'registryIndex':_0x1cdd8b[_0xb01bdf(0xa6)],'registryServiceCode':_0x1cdd8b['registryServiceCode'],'errors':_0x1cdd8b[_0xb01bdf(0x8b)][_0xb01bdf(0x9f)],'warnings':_0x1cdd8b[_0xb01bdf(0x8b)][_0xb01bdf(0x83)]};}export const serviceDefinitions=[{'service':'service','command':a33_0x2b822a(0xa3),'description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a33_0x2b822a(0xa2),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x16d696){const _0x58f7b3=a33_0x2b822a,_0x407356=loadServiceManifestFromFile(_0x16d696[_0x58f7b3(0xaa)](_0x58f7b3(0x6a)));if(!_0x407356[_0x58f7b3(0x8b)]['ok'])return{'ok':![],'data':{'file':_0x407356[_0x58f7b3(0x70)],'hash':_0x407356['hash'],'kind':_0x407356[_0x58f7b3(0x7e)],'serviceCount':_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0xa9)],'services':_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0x8f)](summarizeLoadedManifest),'errors':_0x407356[_0x58f7b3(0x8b)][_0x58f7b3(0x9f)],'warnings':_0x407356['report']['warnings']},'message':formatValidationFailure(_0x407356['report'])};if(_0x407356[_0x58f7b3(0x7e)]==='registry'||_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0xa9)]!==0x1)return{'ok':!![],'data':{'file':_0x407356[_0x58f7b3(0x70)],'hash':_0x407356[_0x58f7b3(0x92)],'kind':_0x407356[_0x58f7b3(0x7e)],'serviceCount':_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0xa9)],'commandCount':_0x407356[_0x58f7b3(0x77)]['reduce']((_0x353e4d,_0x491d00)=>_0x353e4d+(_0x491d00[_0x58f7b3(0x72)]?.[_0x58f7b3(0x89)]['length']??0x0),0x0),'services':_0x407356[_0x58f7b3(0x77)][_0x58f7b3(0x8f)](summarizeLoadedManifest),'warnings':_0x407356[_0x58f7b3(0x8b)][_0x58f7b3(0x83)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x407356[_0x58f7b3(0x70)],'hash':_0x407356[_0x58f7b3(0x92)],'kind':_0x407356[_0x58f7b3(0x7e)],'service':_0x407356[_0x58f7b3(0x72)]?.['service'],'version':_0x407356[_0x58f7b3(0x72)]?.[_0x58f7b3(0x71)],'commandCount':_0x407356[_0x58f7b3(0x72)]?.[_0x58f7b3(0x89)][_0x58f7b3(0xa9)]??0x0,'commands':_0x407356[_0x58f7b3(0x72)]?.[_0x58f7b3(0x89)][_0x58f7b3(0x8f)](_0x22cc3d=>({'path':_0x22cc3d['cliPath'],'risk':_0x22cc3d[_0x58f7b3(0x76)],'target':_0x22cc3d[_0x58f7b3(0x8d)]})),'warnings':_0x407356[_0x58f7b3(0x8b)]['warnings']},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a33_0x2b822a(0x81),'command':a33_0x2b822a(0x7d),'description':a33_0x2b822a(0x99),'risk':a33_0x2b822a(0x87),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x3b867f){const _0xfa620e=a33_0x2b822a,_0x542f95=loadServiceManifestFromFile(_0x3b867f['str'](_0xfa620e(0x6a)));return{'method':_0xfa620e(0x7f),'url':getServiceRegistryPath(),'body':{'file':_0x542f95[_0xfa620e(0x70)],'hash':_0x542f95[_0xfa620e(0x92)],'kind':_0x542f95['kind'],'ok':_0x542f95['report']['ok'],'service':_0x542f95['normalizedManifest']?.['service'],'version':_0x542f95[_0xfa620e(0x72)]?.['version'],'serviceCount':_0x542f95[_0xfa620e(0x77)][_0xfa620e(0xa9)],'services':_0x542f95['manifests'][_0xfa620e(0x8f)](_0x44faf0=>({'service':_0x44faf0['normalizedManifest']?.['service'],'version':_0x44faf0[_0xfa620e(0x72)]?.[_0xfa620e(0x71)],'commandCount':_0x44faf0[_0xfa620e(0x72)]?.[_0xfa620e(0x89)][_0xfa620e(0xa9)]??0x0,'errors':_0x44faf0['report'][_0xfa620e(0x9f)]})),'errors':_0x542f95[_0xfa620e(0x8b)][_0xfa620e(0x9f)],'commandCount':_0x542f95['normalizedManifest']?.['commands'][_0xfa620e(0xa9)]??0x0},'description':_0xfa620e(0x85)};},async 'execute'(_0x3c23bf){const _0xd92659=a33_0x2b822a,_0x1215ad=importServiceManifest(_0x3c23bf[_0xd92659(0xaa)](_0xd92659(0x6a)));if(_0x1215ad[_0xd92659(0x90)][_0xd92659(0xa9)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1215ad[_0xd92659(0xac)],'imported':_0x1215ad[_0xd92659(0x7a)],'updated':_0x1215ad[_0xd92659(0xa4)],'serviceCount':_0x1215ad['serviceCount'],'services':_0x1215ad[_0xd92659(0x90)][_0xd92659(0x8f)](summarizeService)},'message':_0xd92659(0x75)+_0x1215ad[_0xd92659(0x7a)]+_0xd92659(0x9b)+_0x1215ad[_0xd92659(0xa4)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x1215ad[_0xd92659(0xac)],'replaced':_0x1215ad['replaced'],'imported':_0x1215ad['imported'],'updated':_0x1215ad['updated'],'serviceCount':_0x1215ad[_0xd92659(0x7b)],'service':summarizeService(_0x1215ad[_0xd92659(0xa1)])},'message':(_0x1215ad[_0xd92659(0x8a)]?'Updated':_0xd92659(0xa7))+'\x20service\x20'+_0x1215ad[_0xd92659(0xa1)]['serviceCode']+'.'};}},{'service':a33_0x2b822a(0x81),'command':a33_0x2b822a(0x6c),'description':'Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x3c4a20){const _0x232b37=a33_0x2b822a,_0x37eaed=getLocalServiceEntry(_0x3c4a20[_0x232b37(0xaa)](_0x232b37(0x81)));return{'method':_0x232b37(0x7f),'url':_0x3c4a20[_0x232b37(0xaa)]('file'),'body':{'service':_0x3c4a20['str'](_0x232b37(0x81)),'found':Boolean(_0x37eaed),'version':_0x37eaed?.['version'],'source':_0x37eaed?.[_0x232b37(0x6e)]},'description':_0x232b37(0xa0)};},async 'execute'(_0xafd78e){const _0x611741=a33_0x2b822a,_0x2be1ce=exportServiceManifest(_0xafd78e[_0x611741(0xaa)]('service'),_0xafd78e[_0x611741(0xaa)]('file'));return{'ok':!![],'data':{'registryPath':_0x2be1ce['registryPath'],'file':_0x2be1ce[_0x611741(0x70)],'service':summarizeService(_0x2be1ce[_0x611741(0xa1)])},'message':_0x611741(0x9e)+_0x2be1ce['entry']['serviceCode']+'.'};}},{'service':a33_0x2b822a(0x81),'command':'list','description':a33_0x2b822a(0x80),'risk':a33_0x2b822a(0xa2),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x578668=a33_0x2b822a,_0x2d845f=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x2d845f['length'],'services':_0x2d845f[_0x578668(0x8f)](summarizeService)}};}},{'service':a33_0x2b822a(0x81),'command':a33_0x2b822a(0x73),'description':a33_0x2b822a(0x84),'risk':a33_0x2b822a(0x87),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x332fba){const _0x26ad49=a33_0x2b822a,_0x22f8bb=getLocalServiceEntry(_0x332fba['str'](_0x26ad49(0x81)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x332fba[_0x26ad49(0xaa)](_0x26ad49(0x81)),'found':Boolean(_0x22f8bb),'version':_0x22f8bb?.[_0x26ad49(0x71)],'source':_0x22f8bb?.[_0x26ad49(0x6e)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0xed128){const _0x1e672a=a33_0x2b822a,_0x51e400=removeServiceManifest(_0xed128[_0x1e672a(0xaa)](_0x1e672a(0x81)));return{'ok':!![],'data':{'registryPath':_0x51e400[_0x1e672a(0xac)],'serviceCount':_0x51e400[_0x1e672a(0x7b)],'service':summarizeService(_0x51e400['entry'])},'message':_0x1e672a(0x9d)+_0x51e400['entry']['serviceCode']+'.'};}},{'service':a33_0x2b822a(0x81),'command':a33_0x2b822a(0x6b),'description':a33_0x2b822a(0x96),'risk':a33_0x2b822a(0xa2),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x12d1b4){const _0x5f32ef=a33_0x2b822a,_0x4a1097=getLocalServiceEntry(_0x12d1b4[_0x5f32ef(0xaa)](_0x5f32ef(0x81)));if(!_0x4a1097)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x12d1b4[_0x5f32ef(0xaa)](_0x5f32ef(0x81))},'message':'Local\x20service\x20not\x20found:\x20'+_0x12d1b4[_0x5f32ef(0xaa)](_0x5f32ef(0x81))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x4a1097),'manifest':_0x4a1097[_0x5f32ef(0x98)],'normalizedManifest':_0x4a1097['normalizedManifest']}};}}];function a33_0x3480(){const _0x2d30f9=['errors','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','entry','read','validate','updated','13084HMRiux','registryIndex','Imported','serviceCode','length','str','type','registryPath','file','detail','export','350iQBdsx','source','18wigfKF','filePath','version','normalizedManifest','remove','description','Imported\x20','risk','manifests','required','1805mmFBkv','imported','serviceCount','name','import','kind','WRITE','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','service','string','warnings','Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','88vXsfio','write','69321DxkkZZ','commands','replaced','report','importedAt','target','4168576GcmrTW','map','entries','6547770OAUjQO','hash','Local\x20service\x20code,\x20for\x20example\x20crm','cliName','cliPath','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','20141858mrpdUy','manifest','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','213366mySjIf','\x20service(s),\x20updated\x20','1352101mtJjhl','Removed\x20service\x20','Exported\x20service\x20'];a33_0x3480=function(){return _0x2d30f9;};return a33_0x3480();}
@@ -1 +1 @@
1
- const a34_0x4d91a0=a34_0x4a34;(function(_0x272e66,_0x4cd02b){const _0x290100=a34_0x4a34,_0x1e9ca6=_0x272e66();while(!![]){try{const _0x5ec7bf=-parseInt(_0x290100(0x166))/0x1+parseInt(_0x290100(0x163))/0x2*(-parseInt(_0x290100(0x140))/0x3)+-parseInt(_0x290100(0x164))/0x4+-parseInt(_0x290100(0x17c))/0x5+parseInt(_0x290100(0x16b))/0x6*(parseInt(_0x290100(0x145))/0x7)+parseInt(_0x290100(0x138))/0x8+parseInt(_0x290100(0x14d))/0x9*(parseInt(_0x290100(0x15d))/0xa);if(_0x5ec7bf===_0x4cd02b)break;else _0x1e9ca6['push'](_0x1e9ca6['shift']());}catch(_0x267828){_0x1e9ca6['push'](_0x1e9ca6['shift']());}}}(a34_0x5d8d,0x421a6));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_0x4d91a0(0x15b);export function getServiceRegistryPath(_0x1dbb44={}){const _0x50b337=a34_0x4d91a0;return resolve(_0x1dbb44[_0x50b337(0x175)]??homedir(),PRODUCT_CONFIG[_0x50b337(0x150)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x143f53={}){const _0x12ce39=a34_0x4d91a0,_0x3a00e6=getServiceRegistryPath(_0x143f53);if(!existsSync(_0x3a00e6))return emptyServiceRegistry();try{const _0x4d30e1=readFileSync(_0x3a00e6,_0x12ce39(0x130));if(!_0x4d30e1['trim']())return emptyServiceRegistry();const _0x46f0f5=JSON['parse'](_0x4d30e1);if(_0x46f0f5['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x12ce39(0x141)](_0x12ce39(0x143)+String(_0x46f0f5[_0x12ce39(0x16d)]),_0x12ce39(0x146)+_0x3a00e6+'.');if(!Array[_0x12ce39(0x171)](_0x46f0f5[_0x12ce39(0x179)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x46f0f5[_0x12ce39(0x12d)],'services':_0x46f0f5[_0x12ce39(0x179)]};}catch(_0x3341c8){if(_0x3341c8 instanceof Error&&_0x3341c8[_0x12ce39(0x148)]===_0x12ce39(0x14c))throw _0x3341c8;throw CliErrors['validation'](_0x12ce39(0x147)+_0x3a00e6,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x574b10,_0x46b3ba={}){const _0x53fdc5=a34_0x4d91a0,_0x25f097=getServiceRegistryPath(_0x46b3ba),_0x40205b=dirname(_0x25f097);!existsSync(_0x40205b)&&mkdirSync(_0x40205b,{'recursive':!![]});const _0x181462=_0x25f097+_0x53fdc5(0x142);try{writeFileSync(_0x181462,JSON[_0x53fdc5(0x17d)](_0x574b10,null,0x2)+'\x0a',{'encoding':_0x53fdc5(0x130),'mode':0x180}),renameSync(_0x181462,_0x25f097);}catch(_0x6cba67){try{unlinkSync(_0x181462);}catch{}if(_0x6cba67?.['code']===_0x53fdc5(0x15c))throw CliErrors[_0x53fdc5(0x141)]('Cannot\x20write\x20service\x20registry:\x20'+_0x25f097);throw _0x6cba67;}return _0x25f097;}export function loadServiceManifestFromFile(_0x2b6843){const _0x38a842=a34_0x4d91a0,_0x207d62=resolve(_0x2b6843);if(!existsSync(_0x207d62))throw CliErrors['validation'](_0x38a842(0x156)+_0x2b6843);let _0x1b4dc9;const _0x772b5b=readFileSync(_0x207d62,_0x38a842(0x130));try{_0x1b4dc9=JSON[_0x38a842(0x162)](_0x772b5b);}catch{throw CliErrors['validation']('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x2b6843,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x3927bb=sha256(_0x772b5b),_0x33336c=extractLoadedServiceManifests(_0x1b4dc9,_0x3927bb),_0x391034=aggregateValidationReports(_0x33336c),_0x4d822b=_0x33336c[0x0];return{'filePath':_0x207d62,'hash':_0x3927bb,'kind':isServiceRegistryLike(_0x1b4dc9)?'registry':_0x38a842(0x178),'manifest':_0x4d822b?.[_0x38a842(0x178)]??_0x1b4dc9,'report':_0x391034,'normalizedManifest':_0x33336c[_0x38a842(0x16f)]===0x1?_0x4d822b?.[_0x38a842(0x14a)]:undefined,'manifests':_0x33336c};}export function importServiceManifest(_0x45ca25,_0xded252={}){const _0x40a26c=a34_0x4d91a0,_0x19f178=loadServiceManifestFromFile(_0x45ca25);if(!_0x19f178[_0x40a26c(0x17a)]['ok'])throw CliErrors['validation'](formatValidationFailure(_0x19f178[_0x40a26c(0x17a)]),_0x40a26c(0x13f));if(_0x19f178[_0x40a26c(0x158)][_0x40a26c(0x16f)]===0x0)throw CliErrors[_0x40a26c(0x141)](_0x40a26c(0x161),_0x40a26c(0x160));const _0xcd429c=readServiceRegistry(_0xded252),_0x15552a=(_0xded252['now']??(()=>new Date()))()['toISOString'](),_0x358133=[];let _0x2e164f=0x0,_0x15e09d=0x0;for(const _0x574ad5 of _0x19f178[_0x40a26c(0x158)]){if(!_0x574ad5[_0x40a26c(0x14a)])continue;const _0x17c44d=_0x574ad5[_0x40a26c(0x14a)][_0x40a26c(0x133)][_0x40a26c(0x136)],_0x5f2500={'serviceCode':_0x17c44d,'version':_0x574ad5[_0x40a26c(0x14a)][_0x40a26c(0x153)],'importedAt':_0x15552a,'source':{'type':'file','path':_0x19f178[_0x40a26c(0x167)],'hash':_0x574ad5['sourceHash']},'manifest':_0x574ad5[_0x40a26c(0x178)],'normalizedManifest':_0x574ad5[_0x40a26c(0x14a)]},_0x3aaac1=_0xcd429c[_0x40a26c(0x179)][_0x40a26c(0x16c)](_0x28298f=>_0x28298f[_0x40a26c(0x159)]===_0x17c44d);_0x3aaac1>=0x0?(_0xcd429c[_0x40a26c(0x179)][_0x3aaac1]=_0x5f2500,_0x15e09d++):(_0xcd429c[_0x40a26c(0x179)][_0x40a26c(0x157)](_0x5f2500),_0x2e164f++),_0x358133[_0x40a26c(0x157)](_0x5f2500);}_0xcd429c[_0x40a26c(0x179)][_0x40a26c(0x169)]((_0x36949f,_0x136ae9)=>_0x36949f[_0x40a26c(0x159)][_0x40a26c(0x177)](_0x136ae9['serviceCode'])),_0xcd429c['updatedAt']=_0x15552a;const _0x4d2d73=writeServiceRegistry(_0xcd429c,_0xded252);return{'registryPath':_0x4d2d73,'entry':_0x358133[0x0],'replaced':_0x358133[_0x40a26c(0x16f)]===0x1?_0x15e09d===0x1:_0x15e09d>0x0,'entries':_0x358133,'imported':_0x2e164f,'updated':_0x15e09d,'serviceCount':_0xcd429c[_0x40a26c(0x179)]['length']};}export function exportServiceManifest(_0xd3afe5,_0x7fca3e,_0x3e7c27={}){const _0x736b63=a34_0x4d91a0,_0x5158c2=getServiceRegistryPath(_0x3e7c27),_0x4da9d7=getLocalServiceEntry(_0xd3afe5,_0x3e7c27);if(!_0x4da9d7)throw CliErrors[_0x736b63(0x141)](_0x736b63(0x134)+_0xd3afe5,_0x736b63(0x137));const _0x50742d=resolve(_0x7fca3e),_0x428f06=dirname(_0x50742d);return!existsSync(_0x428f06)&&mkdirSync(_0x428f06,{'recursive':!![]}),writeFileSync(_0x50742d,JSON['stringify'](_0x4da9d7['manifest'],null,0x2)+'\x0a',{'encoding':_0x736b63(0x130),'mode':0x180}),{'registryPath':_0x5158c2,'filePath':_0x50742d,'entry':_0x4da9d7};}export function removeServiceManifest(_0x5bb0e1,_0x2d9277={}){const _0x498e7e=a34_0x4d91a0,_0x44e127=readServiceRegistry(_0x2d9277),_0x1e07ec=_0x5bb0e1['trim'](),_0x47a9ae=_0x44e127[_0x498e7e(0x179)][_0x498e7e(0x16c)](_0x40aff1=>_0x40aff1[_0x498e7e(0x159)]===_0x1e07ec);if(_0x47a9ae<0x0)throw CliErrors[_0x498e7e(0x141)](_0x498e7e(0x134)+_0x1e07ec,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x132673]=_0x44e127[_0x498e7e(0x179)][_0x498e7e(0x149)](_0x47a9ae,0x1),_0x230723=(_0x2d9277[_0x498e7e(0x172)]??(()=>new Date()))()['toISOString']();_0x44e127[_0x498e7e(0x12d)]=_0x230723;const _0x183f86=writeServiceRegistry(_0x44e127,_0x2d9277);return{'registryPath':_0x183f86,'entry':_0x132673,'serviceCount':_0x44e127['services']['length']};}export function listLocalServices(_0x33b624={}){const _0x52ea16=a34_0x4d91a0;return readServiceRegistry(_0x33b624)[_0x52ea16(0x179)];}export function getLocalServiceEntry(_0x2da9f0,_0x51958f={}){const _0x55eea8=a34_0x4d91a0;return readServiceRegistry(_0x51958f)[_0x55eea8(0x179)][_0x55eea8(0x14e)](_0x3a36c9=>_0x3a36c9[_0x55eea8(0x159)]===_0x2da9f0[_0x55eea8(0x14b)]());}function a34_0x5d8d(){const _0x3a0635=['3226424PJJVtE','flatMap','message','cliPath','path','Service\x20manifest\x20validation\x20failed:\x0a','].manifest.','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','21327RSYDul','validation','.tmp','Unsupported\x20service\x20registry\x20schemaVersion:\x20','commands','105ZRYTLa','Remove\x20or\x20migrate\x20','Invalid\x20service\x20registry\x20JSON:\x20','name','splice','normalizedManifest','trim','CliError','5112UqjVEU','find','warnings','homeDirName','empty','slice','version','services\x20must\x20be\x20an\x20array','string','Service\x20manifest\x20file\x20not\x20found:\x20','push','manifests','serviceCode','missing','service.json','ENOENT','8060LouWFJ','reduce','digest','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','parse','142zhjdfB','261820EmDiCz','source','162946RozLDJ','filePath','].manifest','sort','description','168774iEkuiL','findIndex','schemaVersion','object','length','Unsupported\x20schemaVersion:\x20','isArray','now','errors','risk','homeDir','registryIndex','localeCompare','manifest','services','report','importedAt','1395740zPaWYi','stringify','sha256','commandCount','hex','updatedAt','invalid','map','utf8','target','$.services[','service','Local\x20service\x20not\x20found:\x20','startsWith','code','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.'];a34_0x5d8d=function(){return _0x3a0635;};return a34_0x5d8d();}export function listLocalServiceTrees(_0x34231d={}){const _0x4f2e9e=a34_0x4d91a0;return readServiceRegistry(_0x34231d)[_0x4f2e9e(0x179)][_0x4f2e9e(0x12f)](_0x1d35b4=>_0x1d35b4[_0x4f2e9e(0x14a)]);}export function inspectServiceRegistry(_0x36cb7d={}){const _0xe34f=a34_0x4d91a0,_0x2f151c=getServiceRegistryPath(_0x36cb7d);if(!existsSync(_0x2f151c))return emptyServiceRegistryInspection(_0x2f151c,_0xe34f(0x15a),![]);try{const _0x3a8828=readFileSync(_0x2f151c,_0xe34f(0x130));if(!_0x3a8828[_0xe34f(0x14b)]())return emptyServiceRegistryInspection(_0x2f151c,_0xe34f(0x151),!![]);const _0x407f9d=JSON[_0xe34f(0x162)](_0x3a8828);if(_0x407f9d[_0xe34f(0x16d)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x2f151c,'invalid',!![]),'schemaVersion':_0x407f9d['schemaVersion'],'message':_0xe34f(0x170)+String(_0x407f9d[_0xe34f(0x16d)])};if(!Array['isArray'](_0x407f9d['services']))return{...emptyServiceRegistryInspection(_0x2f151c,_0xe34f(0x12e),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x407f9d['updatedAt'],'message':_0xe34f(0x154)};const _0x5e2bf6=_0x407f9d[_0xe34f(0x179)][_0xe34f(0x12f)](summarizeLocalServiceEntry);return{'registryPath':_0x2f151c,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x407f9d[_0xe34f(0x12d)],'serviceCount':_0x5e2bf6[_0xe34f(0x16f)],'commandCount':_0x5e2bf6[_0xe34f(0x15e)]((_0x17a886,_0x1fb98e)=>_0x17a886+_0x1fb98e[_0xe34f(0x12b)],0x0),'services':_0x5e2bf6};}catch(_0xdb5cfc){return{...emptyServiceRegistryInspection(_0x2f151c,'invalid',!![]),'message':_0xdb5cfc instanceof Error?_0xdb5cfc[_0xe34f(0x13a)]:String(_0xdb5cfc)};}}export function formatValidationFailure(_0x3534cc){const _0x2584fc=a34_0x4d91a0,_0x400026=_0x3534cc[_0x2584fc(0x173)][_0x2584fc(0x12f)](_0x54544f=>_0x54544f['path']+':\x20'+_0x54544f[_0x2584fc(0x13a)]);return _0x2584fc(0x13d)+_0x400026['join']('\x0a');}function extractLoadedServiceManifests(_0x21892b,_0xd29e8f){if(!isServiceRegistryLike(_0x21892b)){const _0x503b96=_0x21892b,_0x520c9f=validateServiceTreeManifest(_0x503b96);return[{'manifest':_0x503b96,'report':_0x520c9f,'normalizedManifest':_0x520c9f['ok']?normalizeServiceTreeManifest(_0x503b96):undefined,'sourceHash':_0xd29e8f}];}return _0x21892b['services']['map']((_0x8d885a,_0x55e942)=>{const _0x35b407=a34_0x4a34,_0x5f045b=isObjectRecord(_0x8d885a)?_0x8d885a['manifest']:undefined,_0x219474=validateServiceTreeManifest(_0x5f045b),_0xc6edc9=isObjectRecord(_0x8d885a)&&typeof _0x8d885a['serviceCode']===_0x35b407(0x155)?_0x8d885a['serviceCode']:undefined;return{'manifest':_0x5f045b,'report':_0x219474,'normalizedManifest':_0x219474['ok']?normalizeServiceTreeManifest(_0x5f045b):undefined,'sourceHash':sha256(JSON[_0x35b407(0x17d)](_0x5f045b,null,0x2)+'\x0a'),'registryIndex':_0x55e942,'registryServiceCode':_0xc6edc9};});}function aggregateValidationReports(_0x209d8a){const _0x292e4e=a34_0x4d91a0,_0x2c0e9a=_0x209d8a[_0x292e4e(0x139)](_0x7efd21=>_0x7efd21[_0x292e4e(0x176)]===undefined?_0x7efd21['report'][_0x292e4e(0x173)]:_0x7efd21['report'][_0x292e4e(0x173)][_0x292e4e(0x12f)](_0x1df298=>({..._0x1df298,'path':prefixRegistryIssuePath(_0x7efd21[_0x292e4e(0x176)],_0x1df298[_0x292e4e(0x13c)])}))),_0x10c793=_0x209d8a[_0x292e4e(0x139)](_0x26194d=>_0x26194d[_0x292e4e(0x176)]===undefined?_0x26194d[_0x292e4e(0x17a)][_0x292e4e(0x14f)]:_0x26194d[_0x292e4e(0x17a)]['warnings'][_0x292e4e(0x12f)](_0x36b5ef=>({..._0x36b5ef,'path':prefixRegistryIssuePath(_0x26194d[_0x292e4e(0x176)],_0x36b5ef['path'])})));return{'ok':_0x2c0e9a['length']===0x0,'errors':_0x2c0e9a,'warnings':_0x10c793};}function a34_0x4a34(_0x309813,_0x4a65a8){_0x309813=_0x309813-0x12a;const _0x5d8d9f=a34_0x5d8d();let _0x4a342f=_0x5d8d9f[_0x309813];return _0x4a342f;}function prefixRegistryIssuePath(_0x2e1c61,_0x305264){const _0x3e7c68=a34_0x4d91a0;if(_0x305264==='$')return _0x3e7c68(0x132)+_0x2e1c61+'].manifest';if(_0x305264[_0x3e7c68(0x135)]('$.'))return'$.services['+_0x2e1c61+_0x3e7c68(0x168)+_0x305264[_0x3e7c68(0x152)](0x1);if(_0x305264[_0x3e7c68(0x135)]('$['))return _0x3e7c68(0x132)+_0x2e1c61+_0x3e7c68(0x168)+_0x305264[_0x3e7c68(0x152)](0x1);return _0x3e7c68(0x132)+_0x2e1c61+_0x3e7c68(0x13e)+_0x305264;}function isServiceRegistryLike(_0x4ed959){const _0x2abb4b=a34_0x4d91a0;return isObjectRecord(_0x4ed959)&&_0x4ed959['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x2abb4b(0x171)](_0x4ed959[_0x2abb4b(0x179)]);}function isObjectRecord(_0x5d8542){const _0x1ea658=a34_0x4d91a0;return Boolean(_0x5d8542)&&typeof _0x5d8542===_0x1ea658(0x16e)&&!Array[_0x1ea658(0x171)](_0x5d8542);}function emptyServiceRegistryInspection(_0x355417,_0x5cf6c5,_0x2ddda6){return{'registryPath':_0x355417,'exists':_0x2ddda6,'status':_0x5cf6c5,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0xefedec){const _0x1ca485=a34_0x4d91a0,_0x22a539=_0xefedec[_0x1ca485(0x14a)],_0x234193=_0x22a539[_0x1ca485(0x144)][_0x1ca485(0x12f)](_0x59decc=>({'path':_0x59decc[_0x1ca485(0x13b)],'description':_0x59decc['description'],'risk':_0x59decc[_0x1ca485(0x174)],'targetKind':_0x59decc[_0x1ca485(0x131)]['kind'],'targetCommand':_0x59decc['target']['command']}));return{'serviceCode':_0xefedec[_0x1ca485(0x159)],'name':_0x22a539[_0x1ca485(0x133)][_0x1ca485(0x148)],'description':_0x22a539[_0x1ca485(0x133)][_0x1ca485(0x16a)],'version':_0xefedec[_0x1ca485(0x153)],'importedAt':_0xefedec[_0x1ca485(0x17b)],'source':_0xefedec[_0x1ca485(0x165)],'commandCount':_0x234193['length'],'commands':_0x234193};}function sha256(_0xb7cdaf){const _0x6d2066=a34_0x4d91a0;return createHash(_0x6d2066(0x12a))['update'](_0xb7cdaf)[_0x6d2066(0x15f)](_0x6d2066(0x12c));}
1
+ const a34_0x503b56=a34_0x350c;(function(_0x1a7248,_0x4f5874){const _0x18c510=a34_0x350c,_0x503057=_0x1a7248();while(!![]){try{const _0x1b86d4=parseInt(_0x18c510(0x166))/0x1*(-parseInt(_0x18c510(0x18a))/0x2)+-parseInt(_0x18c510(0x1a3))/0x3*(-parseInt(_0x18c510(0x156))/0x4)+parseInt(_0x18c510(0x188))/0x5+parseInt(_0x18c510(0x17c))/0x6+-parseInt(_0x18c510(0x173))/0x7+-parseInt(_0x18c510(0x159))/0x8*(-parseInt(_0x18c510(0x19c))/0x9)+-parseInt(_0x18c510(0x175))/0xa;if(_0x1b86d4===_0x4f5874)break;else _0x503057['push'](_0x503057['shift']());}catch(_0x5f360b){_0x503057['push'](_0x503057['shift']());}}}(a34_0x56a0,0xd05e5));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';function a34_0x56a0(){const _0x1e326a=['path','risk','registry','1wYOaQA','homeDir','schemaVersion','parse','hex','map','Local\x20service\x20not\x20found:\x20','find','services\x20must\x20be\x20an\x20array','sourceHash','warnings','$.services[','invalid','1735195OauLno','Invalid\x20service\x20manifest\x20JSON:\x20','14175260qHJIry','Cannot\x20write\x20service\x20registry:\x20','empty','length','stringify','now','serviceCode','1883808bShVrt','services','manifest','Unsupported\x20service\x20registry\x20schemaVersion:\x20','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','source','toISOString','updatedAt','string','isArray','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','].manifest.','4848265oYwetu','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','1126922slDVqE','Service\x20manifest\x20file\x20not\x20found:\x20','errors','commandCount','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','Invalid\x20service\x20registry\x20JSON:\x20','.tmp','sort','report','kind','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','update','slice','manifests','sha256','validation','importedAt','name','9839799QJsEui','digest','startsWith','utf8','version','ENOENT','service.json','8499tvDbWQ','996baypbh','push','normalizedManifest','8kqGuxt','Service\x20manifest\x20validation\x20failed:\x0a','splice','].manifest','filePath','registryIndex','description','trim','flatMap','service'];a34_0x56a0=function(){return _0x1e326a;};return a34_0x56a0();}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';function a34_0x350c(_0x31661a,_0x502301){_0x31661a=_0x31661a-0x156;const _0x56a00a=a34_0x56a0();let _0x350c92=_0x56a00a[_0x31661a];return _0x350c92;}export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a34_0x503b56(0x1a2);export function getServiceRegistryPath(_0x11dfdd={}){const _0x5be711=a34_0x503b56;return resolve(_0x11dfdd[_0x5be711(0x167)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x41b11a={}){const _0x4e4513=a34_0x503b56,_0x445b68=getServiceRegistryPath(_0x41b11a);if(!existsSync(_0x445b68))return emptyServiceRegistry();try{const _0x1b075b=readFileSync(_0x445b68,_0x4e4513(0x19f));if(!_0x1b075b[_0x4e4513(0x160)]())return emptyServiceRegistry();const _0x404d52=JSON['parse'](_0x1b075b);if(_0x404d52['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x4e4513(0x199)](_0x4e4513(0x17f)+String(_0x404d52['schemaVersion']),'Remove\x20or\x20migrate\x20'+_0x445b68+'.');if(!Array[_0x4e4513(0x185)](_0x404d52[_0x4e4513(0x17d)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x404d52[_0x4e4513(0x183)],'services':_0x404d52[_0x4e4513(0x17d)]};}catch(_0x3eb560){if(_0x3eb560 instanceof Error&&_0x3eb560[_0x4e4513(0x19b)]==='CliError')throw _0x3eb560;throw CliErrors['validation'](_0x4e4513(0x18f)+_0x445b68,_0x4e4513(0x194));}}export function writeServiceRegistry(_0x11f862,_0x324083={}){const _0x42c961=a34_0x503b56,_0x58d733=getServiceRegistryPath(_0x324083),_0xb944ef=dirname(_0x58d733);!existsSync(_0xb944ef)&&mkdirSync(_0xb944ef,{'recursive':!![]});const _0x29f8c5=_0x58d733+_0x42c961(0x190);try{writeFileSync(_0x29f8c5,JSON[_0x42c961(0x179)](_0x11f862,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x29f8c5,_0x58d733);}catch(_0x1fe40e){try{unlinkSync(_0x29f8c5);}catch{}if(_0x1fe40e?.['code']===_0x42c961(0x1a1))throw CliErrors[_0x42c961(0x199)](_0x42c961(0x176)+_0x58d733);throw _0x1fe40e;}return _0x58d733;}export function loadServiceManifestFromFile(_0x1313b8){const _0x100a14=a34_0x503b56,_0xd5505f=resolve(_0x1313b8);if(!existsSync(_0xd5505f))throw CliErrors[_0x100a14(0x199)](_0x100a14(0x18b)+_0x1313b8);let _0x2e8a3c;const _0x5ae8c9=readFileSync(_0xd5505f,_0x100a14(0x19f));try{_0x2e8a3c=JSON[_0x100a14(0x169)](_0x5ae8c9);}catch{throw CliErrors[_0x100a14(0x199)](_0x100a14(0x174)+_0x1313b8,_0x100a14(0x18e));}const _0x3e92a8=sha256(_0x5ae8c9),_0x479fe6=extractLoadedServiceManifests(_0x2e8a3c,_0x3e92a8),_0xce911b=aggregateValidationReports(_0x479fe6),_0x5e7c97=_0x479fe6[0x0];return{'filePath':_0xd5505f,'hash':_0x3e92a8,'kind':isServiceRegistryLike(_0x2e8a3c)?_0x100a14(0x165):'manifest','manifest':_0x5e7c97?.[_0x100a14(0x17e)]??_0x2e8a3c,'report':_0xce911b,'normalizedManifest':_0x479fe6[_0x100a14(0x178)]===0x1?_0x5e7c97?.[_0x100a14(0x158)]:undefined,'manifests':_0x479fe6};}export function importServiceManifest(_0x2604a2,_0x271ff4={}){const _0x253a14=a34_0x503b56,_0x34ce6b=loadServiceManifestFromFile(_0x2604a2);if(!_0x34ce6b[_0x253a14(0x192)]['ok'])throw CliErrors[_0x253a14(0x199)](formatValidationFailure(_0x34ce6b[_0x253a14(0x192)]),_0x253a14(0x186));if(_0x34ce6b[_0x253a14(0x197)][_0x253a14(0x178)]===0x0)throw CliErrors[_0x253a14(0x199)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x253a14(0x180));const _0x2c0189=readServiceRegistry(_0x271ff4),_0xf998de=(_0x271ff4[_0x253a14(0x17a)]??(()=>new Date()))()['toISOString'](),_0x1a3303=[];let _0x37ae66=0x0,_0x183235=0x0;for(const _0xadc903 of _0x34ce6b[_0x253a14(0x197)]){if(!_0xadc903[_0x253a14(0x158)])continue;const _0x25bb46=_0xadc903['normalizedManifest'][_0x253a14(0x162)]['code'],_0x293ac8={'serviceCode':_0x25bb46,'version':_0xadc903[_0x253a14(0x158)][_0x253a14(0x1a0)],'importedAt':_0xf998de,'source':{'type':'file','path':_0x34ce6b[_0x253a14(0x15d)],'hash':_0xadc903[_0x253a14(0x16f)]},'manifest':_0xadc903[_0x253a14(0x17e)],'normalizedManifest':_0xadc903[_0x253a14(0x158)]},_0x1eb361=_0x2c0189[_0x253a14(0x17d)]['findIndex'](_0x21ca14=>_0x21ca14[_0x253a14(0x17b)]===_0x25bb46);_0x1eb361>=0x0?(_0x2c0189[_0x253a14(0x17d)][_0x1eb361]=_0x293ac8,_0x183235++):(_0x2c0189['services'][_0x253a14(0x157)](_0x293ac8),_0x37ae66++),_0x1a3303['push'](_0x293ac8);}_0x2c0189['services'][_0x253a14(0x191)]((_0x43125e,_0x545ea9)=>_0x43125e[_0x253a14(0x17b)]['localeCompare'](_0x545ea9[_0x253a14(0x17b)])),_0x2c0189[_0x253a14(0x183)]=_0xf998de;const _0x105f8a=writeServiceRegistry(_0x2c0189,_0x271ff4);return{'registryPath':_0x105f8a,'entry':_0x1a3303[0x0],'replaced':_0x1a3303[_0x253a14(0x178)]===0x1?_0x183235===0x1:_0x183235>0x0,'entries':_0x1a3303,'imported':_0x37ae66,'updated':_0x183235,'serviceCount':_0x2c0189[_0x253a14(0x17d)][_0x253a14(0x178)]};}export function exportServiceManifest(_0xb89983,_0x289c45,_0x231dec={}){const _0x9a89f2=a34_0x503b56,_0x4e0d59=getServiceRegistryPath(_0x231dec),_0x2c7b4f=getLocalServiceEntry(_0xb89983,_0x231dec);if(!_0x2c7b4f)throw CliErrors[_0x9a89f2(0x199)]('Local\x20service\x20not\x20found:\x20'+_0xb89983,_0x9a89f2(0x189));const _0x467bc0=resolve(_0x289c45),_0x224afa=dirname(_0x467bc0);return!existsSync(_0x224afa)&&mkdirSync(_0x224afa,{'recursive':!![]}),writeFileSync(_0x467bc0,JSON[_0x9a89f2(0x179)](_0x2c7b4f[_0x9a89f2(0x17e)],null,0x2)+'\x0a',{'encoding':_0x9a89f2(0x19f),'mode':0x180}),{'registryPath':_0x4e0d59,'filePath':_0x467bc0,'entry':_0x2c7b4f};}export function removeServiceManifest(_0x6b8539,_0x64eef0={}){const _0x392a30=a34_0x503b56,_0x4bee90=readServiceRegistry(_0x64eef0),_0x5eca1d=_0x6b8539[_0x392a30(0x160)](),_0x152068=_0x4bee90[_0x392a30(0x17d)]['findIndex'](_0x416c4e=>_0x416c4e['serviceCode']===_0x5eca1d);if(_0x152068<0x0)throw CliErrors[_0x392a30(0x199)](_0x392a30(0x16c)+_0x5eca1d,_0x392a30(0x189));const [_0x4fb07c]=_0x4bee90[_0x392a30(0x17d)][_0x392a30(0x15b)](_0x152068,0x1),_0xcbeb74=(_0x64eef0[_0x392a30(0x17a)]??(()=>new Date()))()[_0x392a30(0x182)]();_0x4bee90[_0x392a30(0x183)]=_0xcbeb74;const _0x33be97=writeServiceRegistry(_0x4bee90,_0x64eef0);return{'registryPath':_0x33be97,'entry':_0x4fb07c,'serviceCount':_0x4bee90[_0x392a30(0x17d)][_0x392a30(0x178)]};}export function listLocalServices(_0x46ab53={}){const _0x50e57a=a34_0x503b56;return readServiceRegistry(_0x46ab53)[_0x50e57a(0x17d)];}export function getLocalServiceEntry(_0x22a46e,_0x504608={}){const _0x15d3fe=a34_0x503b56;return readServiceRegistry(_0x504608)[_0x15d3fe(0x17d)][_0x15d3fe(0x16d)](_0x1ad530=>_0x1ad530['serviceCode']===_0x22a46e['trim']());}export function listLocalServiceTrees(_0x44c584={}){const _0x520edf=a34_0x503b56;return readServiceRegistry(_0x44c584)['services'][_0x520edf(0x16b)](_0x41734d=>_0x41734d[_0x520edf(0x158)]);}export function inspectServiceRegistry(_0x33c2d1={}){const _0x56d5b0=a34_0x503b56,_0x5bd54d=getServiceRegistryPath(_0x33c2d1);if(!existsSync(_0x5bd54d))return emptyServiceRegistryInspection(_0x5bd54d,'missing',![]);try{const _0x116861=readFileSync(_0x5bd54d,_0x56d5b0(0x19f));if(!_0x116861[_0x56d5b0(0x160)]())return emptyServiceRegistryInspection(_0x5bd54d,_0x56d5b0(0x177),!![]);const _0x49c16d=JSON[_0x56d5b0(0x169)](_0x116861);if(_0x49c16d[_0x56d5b0(0x168)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x5bd54d,_0x56d5b0(0x172),!![]),'schemaVersion':_0x49c16d[_0x56d5b0(0x168)],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x49c16d[_0x56d5b0(0x168)])};if(!Array['isArray'](_0x49c16d['services']))return{...emptyServiceRegistryInspection(_0x5bd54d,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x49c16d['updatedAt'],'message':_0x56d5b0(0x16e)};const _0x2ffb01=_0x49c16d[_0x56d5b0(0x17d)][_0x56d5b0(0x16b)](summarizeLocalServiceEntry);return{'registryPath':_0x5bd54d,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x49c16d[_0x56d5b0(0x183)],'serviceCount':_0x2ffb01[_0x56d5b0(0x178)],'commandCount':_0x2ffb01['reduce']((_0x2c5467,_0x5a37b6)=>_0x2c5467+_0x5a37b6[_0x56d5b0(0x18d)],0x0),'services':_0x2ffb01};}catch(_0x5a18a6){return{...emptyServiceRegistryInspection(_0x5bd54d,_0x56d5b0(0x172),!![]),'message':_0x5a18a6 instanceof Error?_0x5a18a6['message']:String(_0x5a18a6)};}}export function formatValidationFailure(_0x30e905){const _0x4d8914=a34_0x503b56,_0x534cb6=_0x30e905[_0x4d8914(0x18c)][_0x4d8914(0x16b)](_0x3db200=>_0x3db200[_0x4d8914(0x163)]+':\x20'+_0x3db200['message']);return _0x4d8914(0x15a)+_0x534cb6['join']('\x0a');}function extractLoadedServiceManifests(_0x54126b,_0x6c4c60){const _0x28fccb=a34_0x503b56;if(!isServiceRegistryLike(_0x54126b)){const _0x5137c2=_0x54126b,_0x2c1005=validateServiceTreeManifest(_0x5137c2);return[{'manifest':_0x5137c2,'report':_0x2c1005,'normalizedManifest':_0x2c1005['ok']?normalizeServiceTreeManifest(_0x5137c2):undefined,'sourceHash':_0x6c4c60}];}return _0x54126b[_0x28fccb(0x17d)][_0x28fccb(0x16b)]((_0x47b495,_0x28f3ac)=>{const _0x1da06b=_0x28fccb,_0x41a3a2=isObjectRecord(_0x47b495)?_0x47b495[_0x1da06b(0x17e)]:undefined,_0x46cc1e=validateServiceTreeManifest(_0x41a3a2),_0x3b2b6e=isObjectRecord(_0x47b495)&&typeof _0x47b495[_0x1da06b(0x17b)]===_0x1da06b(0x184)?_0x47b495['serviceCode']:undefined;return{'manifest':_0x41a3a2,'report':_0x46cc1e,'normalizedManifest':_0x46cc1e['ok']?normalizeServiceTreeManifest(_0x41a3a2):undefined,'sourceHash':sha256(JSON[_0x1da06b(0x179)](_0x41a3a2,null,0x2)+'\x0a'),'registryIndex':_0x28f3ac,'registryServiceCode':_0x3b2b6e};});}function aggregateValidationReports(_0x41af3f){const _0x4798ce=a34_0x503b56,_0x2ba423=_0x41af3f[_0x4798ce(0x161)](_0x1505c3=>_0x1505c3[_0x4798ce(0x15e)]===undefined?_0x1505c3[_0x4798ce(0x192)][_0x4798ce(0x18c)]:_0x1505c3[_0x4798ce(0x192)][_0x4798ce(0x18c)][_0x4798ce(0x16b)](_0x27c861=>({..._0x27c861,'path':prefixRegistryIssuePath(_0x1505c3[_0x4798ce(0x15e)],_0x27c861['path'])}))),_0x4059d1=_0x41af3f[_0x4798ce(0x161)](_0x2f9b09=>_0x2f9b09[_0x4798ce(0x15e)]===undefined?_0x2f9b09[_0x4798ce(0x192)]['warnings']:_0x2f9b09[_0x4798ce(0x192)][_0x4798ce(0x170)]['map'](_0x22ae1f=>({..._0x22ae1f,'path':prefixRegistryIssuePath(_0x2f9b09[_0x4798ce(0x15e)],_0x22ae1f[_0x4798ce(0x163)])})));return{'ok':_0x2ba423['length']===0x0,'errors':_0x2ba423,'warnings':_0x4059d1};}function prefixRegistryIssuePath(_0xdbc09a,_0x3f85cd){const _0x59cd05=a34_0x503b56;if(_0x3f85cd==='$')return _0x59cd05(0x171)+_0xdbc09a+_0x59cd05(0x15c);if(_0x3f85cd[_0x59cd05(0x19e)]('$.'))return _0x59cd05(0x171)+_0xdbc09a+'].manifest'+_0x3f85cd[_0x59cd05(0x196)](0x1);if(_0x3f85cd[_0x59cd05(0x19e)]('$['))return _0x59cd05(0x171)+_0xdbc09a+_0x59cd05(0x15c)+_0x3f85cd[_0x59cd05(0x196)](0x1);return _0x59cd05(0x171)+_0xdbc09a+_0x59cd05(0x187)+_0x3f85cd;}function isServiceRegistryLike(_0x2b613d){const _0x32facb=a34_0x503b56;return isObjectRecord(_0x2b613d)&&_0x2b613d[_0x32facb(0x168)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x32facb(0x185)](_0x2b613d[_0x32facb(0x17d)]);}function isObjectRecord(_0xbe3bc6){const _0xe6439d=a34_0x503b56;return Boolean(_0xbe3bc6)&&typeof _0xbe3bc6==='object'&&!Array[_0xe6439d(0x185)](_0xbe3bc6);}function emptyServiceRegistryInspection(_0x959af,_0x58681a,_0x11d52b){return{'registryPath':_0x959af,'exists':_0x11d52b,'status':_0x58681a,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x58c045){const _0x56ecec=a34_0x503b56,_0x4402f6=_0x58c045['normalizedManifest'],_0x1d6df7=_0x4402f6['commands']['map'](_0x446179=>({'path':_0x446179['cliPath'],'description':_0x446179['description'],'risk':_0x446179[_0x56ecec(0x164)],'targetKind':_0x446179['target'][_0x56ecec(0x193)],'targetCommand':_0x446179['target']['command']}));return{'serviceCode':_0x58c045[_0x56ecec(0x17b)],'name':_0x4402f6[_0x56ecec(0x162)][_0x56ecec(0x19b)],'description':_0x4402f6[_0x56ecec(0x162)][_0x56ecec(0x15f)],'version':_0x58c045[_0x56ecec(0x1a0)],'importedAt':_0x58c045[_0x56ecec(0x19a)],'source':_0x58c045[_0x56ecec(0x181)],'commandCount':_0x1d6df7[_0x56ecec(0x178)],'commands':_0x1d6df7};}function sha256(_0x5b46c6){const _0x19158e=a34_0x503b56;return createHash(_0x19158e(0x198))[_0x19158e(0x195)](_0x5b46c6)[_0x19158e(0x19d)](_0x19158e(0x16a));}