@lovrabet/lovrabet-cli 2.1.4-beta.1 → 2.1.4

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 (107) 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/commands/create.js +1 -1
  37. package/lib/commands/skill/commands/install.js +1 -1
  38. package/lib/commands/skill/commands/list.js +1 -1
  39. package/lib/commands/skill/commands/push.js +1 -1
  40. package/lib/commands/skill/commands/validate.js +1 -1
  41. package/lib/commands/skill/flags.js +1 -1
  42. package/lib/commands/skill/index.js +1 -1
  43. package/lib/commands/skill/manifest-helpers.js +1 -1
  44. package/lib/commands/skill/scopes.js +1 -1
  45. package/lib/commands/skill/summary.js +1 -1
  46. package/lib/commands/skill/templates.js +1 -1
  47. package/lib/commands/skill/validate.js +1 -1
  48. package/lib/commands/sql/detail.js +1 -1
  49. package/lib/commands/sql/exec.js +1 -1
  50. package/lib/commands/sql/index.js +1 -1
  51. package/lib/commands/update.js +1 -1
  52. package/lib/commands/workspace/index.js +1 -1
  53. package/lib/config/schema.js +1 -1
  54. package/lib/constant/app.js +1 -1
  55. package/lib/constant/auth-mode.js +1 -1
  56. package/lib/constant/cli.js +1 -1
  57. package/lib/constant/defaults.js +1 -1
  58. package/lib/constant/distribution.js +1 -1
  59. package/lib/constant/domain.js +1 -1
  60. package/lib/constant/env.js +1 -1
  61. package/lib/constant/output.js +1 -1
  62. package/lib/constant/product.js +1 -1
  63. package/lib/constant/risk.js +1 -1
  64. package/lib/constant/url.js +1 -1
  65. package/lib/context.js +1 -1
  66. package/lib/core/api-client.js +1 -1
  67. package/lib/core/db-resolver.js +1 -1
  68. package/lib/core/sdk-client.js +1 -1
  69. package/lib/errors.js +1 -1
  70. package/lib/framework/build-all-flags.js +1 -1
  71. package/lib/framework/dryrun.js +1 -1
  72. package/lib/framework/flags.js +1 -1
  73. package/lib/framework/help.js +1 -1
  74. package/lib/framework/index.js +1 -1
  75. package/lib/framework/output.js +1 -1
  76. package/lib/framework/preparse.js +1 -1
  77. package/lib/framework/response.js +1 -1
  78. package/lib/framework/runner-confirmation.js +1 -1
  79. package/lib/framework/runner-error.js +1 -1
  80. package/lib/framework/runner.js +1 -1
  81. package/lib/framework/schema-export.js +1 -1
  82. package/lib/framework/types.js +1 -1
  83. package/lib/generated/build-info.js +1 -1
  84. package/lib/help.js +1 -1
  85. package/lib/skills/npx-skills-add.js +1 -1
  86. package/lib/skills/runtime-skill-sync/constants.js +1 -1
  87. package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
  88. package/lib/skills/runtime-skill-sync/hashing.js +1 -1
  89. package/lib/skills/runtime-skill-sync/links.js +1 -1
  90. package/lib/skills/runtime-skill-sync/list-local.js +1 -1
  91. package/lib/skills/runtime-skill-sync/local-files.js +1 -1
  92. package/lib/skills/runtime-skill-sync/materialize.js +1 -1
  93. package/lib/skills/runtime-skill-sync/metadata.js +1 -1
  94. package/lib/skills/runtime-skill-sync/paths.js +1 -1
  95. package/lib/skills/runtime-skill-sync/push.js +1 -1
  96. package/lib/skills/runtime-skill-sync/scopes.js +1 -1
  97. package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
  98. package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
  99. package/lib/skills/runtime-skill-sync.js +1 -1
  100. package/lib/utils/apply-jq-filter.js +1 -1
  101. package/lib/utils/logger.js +1 -1
  102. package/lib/utils/params.js +1 -1
  103. package/lib/utils/platform.js +1 -1
  104. package/lib/utils/update-notice.js +1 -1
  105. package/lib/utils/version.js +1 -1
  106. package/lib/utils/write-cli-side-channel.js +1 -1
  107. package/package.json +1 -1
@@ -1 +1 @@
1
- const a27_0x385399=a27_0x1178;(function(_0x5f3c34,_0x18e95d){const _0x36737e=a27_0x1178,_0x50a6ca=_0x5f3c34();while(!![]){try{const _0x3d4087=-parseInt(_0x36737e(0x84))/0x1*(-parseInt(_0x36737e(0xb3))/0x2)+-parseInt(_0x36737e(0xb0))/0x3+-parseInt(_0x36737e(0xc2))/0x4*(-parseInt(_0x36737e(0xb5))/0x5)+-parseInt(_0x36737e(0x87))/0x6+-parseInt(_0x36737e(0xae))/0x7*(-parseInt(_0x36737e(0xa6))/0x8)+-parseInt(_0x36737e(0xaa))/0x9*(-parseInt(_0x36737e(0xbc))/0xa)+-parseInt(_0x36737e(0x8f))/0xb*(parseInt(_0x36737e(0x96))/0xc);if(_0x3d4087===_0x18e95d)break;else _0x50a6ca['push'](_0x50a6ca['shift']());}catch(_0x5c0234){_0x50a6ca['push'](_0x50a6ca['shift']());}}}(a27_0x69e3,0xd910a));import{existsSync,readFileSync,statSync}from'node:fs';import{createPersonalKnowledgeBaseItem,getPersonalKnowledgeBaseItem,listPersonalKnowledgeBaseItems,searchKnowledgeBase,updatePersonalKnowledgeBaseItem}from'../../core/api-client.js';import{ID_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const TITLE_FLAG={'name':a27_0x385399(0xb2),'type':'string','required':!![],'description':a27_0x385399(0xc3)},FILE_FLAG={'name':a27_0x385399(0x8d),'type':'string','required':!![],'description':a27_0x385399(0x8e)},QUERY_FLAG={'name':a27_0x385399(0xc1),'type':a27_0x385399(0xbb),'required':!![],'description':a27_0x385399(0xa0)},TOPK_FLAG={'name':'topk','type':'number','description':a27_0x385399(0x9f)};function a27_0x1178(_0x548b29,_0x43bdb5){_0x548b29=_0x548b29-0x81;const _0x69e349=a27_0x69e3();let _0x117822=_0x69e349[_0x548b29];return _0x117822;}function readKnowledgeFile(_0xc73d20){const _0x29ffe4=a27_0x385399;if(!_0xc73d20)throw CliErrors['validation'](_0x29ffe4(0x94));if(!existsSync(_0xc73d20))throw CliErrors['validation'](_0x29ffe4(0xa3)+_0xc73d20);if(!statSync(_0xc73d20)[_0x29ffe4(0xb7)]())throw CliErrors['validation'](_0x29ffe4(0x99)+_0xc73d20);return readFileSync(_0xc73d20,_0x29ffe4(0x8b));}function summarizePersonalItem(_0x585784){const _0x22356f=a27_0x385399;return{'id':_0x585784['id'],'title':_0x585784['title'],'version':_0x585784[_0x22356f(0x81)],'ragStatus':_0x585784[_0x22356f(0x9e)],'ragErrorMessage':_0x585784[_0x22356f(0x83)],'updateTime':_0x585784[_0x22356f(0x92)]};}function detailPersonalItem(_0x39c99a){const _0x59e6ba=a27_0x385399;return{'id':_0x39c99a['id'],'appCode':_0x39c99a['appCode'],'scope':_0x39c99a['scope'],'userId':_0x39c99a[_0x59e6ba(0x86)],'title':_0x39c99a[_0x59e6ba(0xb2)],'content':_0x39c99a[_0x59e6ba(0xb4)]??'','version':_0x39c99a[_0x59e6ba(0x81)],'ragStatus':_0x39c99a[_0x59e6ba(0x9e)],'ragErrorMessage':_0x39c99a['ragErrorMessage'],'createTime':_0x39c99a[_0x59e6ba(0xa2)],'updateTime':_0x39c99a[_0x59e6ba(0x92)]};}function a27_0x69e3(){const _0x579e6f=['isFinite','File\x20path\x20is\x20required.','write','265332EkMYpU','/client/knowledge-base/personal/create','Update\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','File\x20is\x20not\x20a\x20regular\x20file:\x20','str','update','appCode','metadata','ragStatus','Maximum\x20number\x20of\x20search\x20hits\x20to\x20return','Search\x20query\x20for\x20visible\x20company\x20and\x20personal\x20knowledge','Personal\x20knowledge-base\x20entry\x20ID','createTime','File\x20not\x20found:\x20','build','flag','50888gcSZDJ','/update','search','body','9rDmhWj','Preview:\x20create\x20personal\x20knowledge-base\x20entry\x20\x22','score','Updated\x20KB\x20entry\x20','840BOVIBF','docId','4293516LlPHnY','/client/knowledge-base/personal/','title','2486678xofWro','content','571060OTJGqV','topk','isFile','create','Preview:\x20update\x20personal\x20knowledge-base\x20entry\x20','Show\x20one\x20personal\x20knowledge-base\x20entry\x20by\x20id','string','17273810ZyIuOS','trim','--topk\x20must\x20be\x20a\x20positive\x20number.','validation','list','query','40qmIFeu','Personal\x20knowledge-base\x20entry\x20title','version','num','ragErrorMessage','1TkYHmr','length','userId','7508046RFYctg','Override\x20the\x20existing\x20entry\x20title','read','POST','utf8','map','file','Path\x20to\x20a\x20local\x20UTF-8\x20text\x20or\x20Markdown\x20file','649NuLkeg','scope','description','updateTime'];a27_0x69e3=function(){return _0x579e6f;};return a27_0x69e3();}function summarizeSearchHit(_0x116f24){const _0x11945c=a27_0x385399;return{'scope':_0x116f24[_0x11945c(0x90)],'docId':_0x116f24[_0x11945c(0xaf)],'score':_0x116f24[_0x11945c(0xac)],'weightedScore':_0x116f24['weightedScore'],'content':_0x116f24['content'],'metadata':_0x116f24[_0x11945c(0x9d)]};}function readTopK(_0x23f5e6){const _0x564f05=a27_0x385399,_0x2aa4ff=_0x23f5e6[_0x564f05(0xa5)]('topk');if(_0x2aa4ff===undefined||_0x2aa4ff===null||_0x2aa4ff==='')return undefined;const _0x47895a=_0x23f5e6[_0x564f05(0x82)](_0x564f05(0xb6));if(!Number[_0x564f05(0x93)](_0x47895a)||_0x47895a<0x1)throw CliErrors[_0x564f05(0xbf)](_0x564f05(0xbe));return _0x47895a;}const kbList={'service':'kb','command':a27_0x385399(0xc0),'description':'List\x20personal\x20knowledge-base\x20entries\x20for\x20the\x20current\x20app','risk':'read','flags':[VERBOSE_FLAG],async 'execute'(_0x5e1f80){const _0x531974=a27_0x385399,_0x1740ef=await listPersonalKnowledgeBaseItems(_0x5e1f80[_0x531974(0x9c)]);if(_0x5e1f80['bool']('verbose'))return{'ok':!![],'data':{'total':_0x1740ef[_0x531974(0x85)],'items':_0x1740ef}};return{'ok':!![],'data':{'total':_0x1740ef['length'],'items':_0x1740ef[_0x531974(0x8c)](summarizePersonalItem)}};}},kbDetail={'service':'kb','command':'detail','description':a27_0x385399(0xba),'risk':a27_0x385399(0x89),'flags':[{...ID_FLAG,'description':a27_0x385399(0xa1)}],async 'execute'(_0x4ee21e){const _0x17bc91=a27_0x385399,_0x2c2600=await getPersonalKnowledgeBaseItem(_0x4ee21e['num']('id'),_0x4ee21e[_0x17bc91(0x9c)]);return{'ok':!![],'data':detailPersonalItem(_0x2c2600)};}},kbCreate={'service':'kb','command':a27_0x385399(0xb8),'description':'Create\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','risk':a27_0x385399(0x95),'flags':[TITLE_FLAG,FILE_FLAG],async 'execute'(_0x50bd72){const _0xc4b411=a27_0x385399,_0x514908=_0x50bd72[_0xc4b411(0x9a)]('title'),_0x4d892b=readKnowledgeFile(_0x50bd72[_0xc4b411(0x9a)]('file')),_0x41891c=await createPersonalKnowledgeBaseItem(_0x50bd72[_0xc4b411(0x9c)],{'title':_0x514908,'content':_0x4d892b});return{'ok':!![],'data':summarizePersonalItem(_0x41891c),'message':'Created\x20KB\x20entry\x20'+_0x41891c['id']+'\x20('+_0x41891c['title']+')'};},async 'dryRun'(_0x544844){const _0x1e1b9d=a27_0x385399,_0x58ae06=_0x544844[_0x1e1b9d(0x9a)](_0x1e1b9d(0xb2)),_0x15b4c7=readKnowledgeFile(_0x544844[_0x1e1b9d(0x9a)](_0x1e1b9d(0x8d)));return dryRun(_0x1e1b9d(0x8a),_0x1e1b9d(0x97))[_0x1e1b9d(0xa9)]({'appCode':_0x544844[_0x1e1b9d(0x9c)],'title':_0x58ae06,'content':_0x15b4c7})[_0x1e1b9d(0x91)](_0x1e1b9d(0xab)+_0x58ae06+'\x22')[_0x1e1b9d(0xa4)]();}},kbUpdate={'service':'kb','command':a27_0x385399(0x9b),'description':a27_0x385399(0x98),'risk':a27_0x385399(0x95),'flags':[{...ID_FLAG,'description':'Personal\x20knowledge-base\x20entry\x20ID'},{...TITLE_FLAG,'required':![],'description':a27_0x385399(0x88)},FILE_FLAG],async 'execute'(_0x2c2b6d){const _0xba7ef2=a27_0x385399,_0x462d2f=_0x2c2b6d[_0xba7ef2(0x82)]('id'),_0x7b3a3=readKnowledgeFile(_0x2c2b6d[_0xba7ef2(0x9a)](_0xba7ef2(0x8d))),_0x1d7523=_0x2c2b6d[_0xba7ef2(0x9a)](_0xba7ef2(0xb2))||(await getPersonalKnowledgeBaseItem(_0x462d2f,_0x2c2b6d[_0xba7ef2(0x9c)]))[_0xba7ef2(0xb2)],_0x1a4d67=await updatePersonalKnowledgeBaseItem(_0x462d2f,_0x2c2b6d['appCode'],{'title':_0x1d7523,'content':_0x7b3a3});return{'ok':!![],'data':summarizePersonalItem(_0x1a4d67),'message':_0xba7ef2(0xad)+_0x1a4d67['id']+'\x20('+_0x1a4d67[_0xba7ef2(0xb2)]+')'};},async 'dryRun'(_0x1fd5da){const _0x1eec5d=a27_0x385399,_0x491550=_0x1fd5da[_0x1eec5d(0x82)]('id'),_0x2d1d53=readKnowledgeFile(_0x1fd5da['str']('file')),_0x15d47f=_0x1fd5da[_0x1eec5d(0x9a)](_0x1eec5d(0xb2))||(await getPersonalKnowledgeBaseItem(_0x491550,_0x1fd5da['appCode']))[_0x1eec5d(0xb2)];return dryRun(_0x1eec5d(0x8a),_0x1eec5d(0xb1)+_0x491550+_0x1eec5d(0xa7))[_0x1eec5d(0xa9)]({'appCode':_0x1fd5da['appCode'],'title':_0x15d47f,'content':_0x2d1d53})['description'](_0x1eec5d(0xb9)+_0x491550)[_0x1eec5d(0xa4)]();}},kbSearch={'service':'kb','command':a27_0x385399(0xa8),'description':'Search\x20visible\x20company\x20and\x20personal\x20knowledge\x20base\x20content','risk':a27_0x385399(0x89),'flags':[QUERY_FLAG,TOPK_FLAG],async 'validate'(_0x2a909e){const _0x2113e3=a27_0x385399;if(!_0x2a909e[_0x2113e3(0x9a)](_0x2113e3(0xc1))[_0x2113e3(0xbd)]())throw CliErrors[_0x2113e3(0xbf)]('Search\x20query\x20is\x20required.');readTopK(_0x2a909e);},async 'execute'(_0x47d418){const _0x355e86=a27_0x385399,_0x52c2fd=_0x47d418[_0x355e86(0x9a)](_0x355e86(0xc1))[_0x355e86(0xbd)](),_0x11df78=readTopK(_0x47d418),_0x4c6c82=await searchKnowledgeBase(_0x47d418[_0x355e86(0x9c)],{'query':_0x52c2fd,'topK':_0x11df78});return{'ok':!![],'data':{'total':_0x4c6c82['length'],'hits':_0x4c6c82[_0x355e86(0x8c)](summarizeSearchHit)}};}};export const kbDefinitions=[kbList,kbDetail,kbCreate,kbUpdate,kbSearch];
1
+ const a27_0x461c0b=a27_0x4c74;function a27_0x43f4(){const _0x3b3cb7=['createTime','str','isFile','1505450DaWqNT','updateTime','ragStatus','num','24imAWhB','Show\x20one\x20personal\x20knowledge-base\x20entry\x20by\x20id','file','4246214BQeXVy','197815gKmAun','content','Maximum\x20number\x20of\x20search\x20hits\x20to\x20return','flag','list','utf8','docId','POST','number','string','title','build','4055754Txxwgt','validation','isFinite','query','body','/update','Preview:\x20create\x20personal\x20knowledge-base\x20entry\x20\x22','version','File\x20not\x20found:\x20','ragErrorMessage','Search\x20visible\x20company\x20and\x20personal\x20knowledge\x20base\x20content','length','Update\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','Path\x20to\x20a\x20local\x20UTF-8\x20text\x20or\x20Markdown\x20file','search','verbose','map','/client/knowledge-base/personal/create','topk','Search\x20query\x20for\x20visible\x20company\x20and\x20personal\x20knowledge','scope','trim','metadata','appCode','List\x20personal\x20knowledge-base\x20entries\x20for\x20the\x20current\x20app','userId','Create\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','bool','read','detail','description','Preview:\x20update\x20personal\x20knowledge-base\x20entry\x20','File\x20path\x20is\x20required.','File\x20is\x20not\x20a\x20regular\x20file:\x20','write','Updated\x20KB\x20entry\x20','5057368WQFhxQ','45216VenHcP','Personal\x20knowledge-base\x20entry\x20title','update','Override\x20the\x20existing\x20entry\x20title','11199dbGPVF'];a27_0x43f4=function(){return _0x3b3cb7;};return a27_0x43f4();}(function(_0x545fcf,_0x465b1b){const _0x4c63ac=a27_0x4c74,_0x55a05f=_0x545fcf();while(!![]){try{const _0x4aa26c=-parseInt(_0x4c63ac(0x182))/0x1+parseInt(_0x4c63ac(0x18a))/0x2+-parseInt(_0x4c63ac(0x186))/0x3+-parseInt(_0x4c63ac(0x18e))/0x4*(-parseInt(_0x4c63ac(0x192))/0x5)+parseInt(_0x4c63ac(0x19e))/0x6+-parseInt(_0x4c63ac(0x191))/0x7+-parseInt(_0x4c63ac(0x1c2))/0x8;if(_0x4aa26c===_0x465b1b)break;else _0x55a05f['push'](_0x55a05f['shift']());}catch(_0x4a4814){_0x55a05f['push'](_0x55a05f['shift']());}}}(a27_0x43f4,0x5c5e4));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_0x4c74(_0x1897cf,_0x1128df){_0x1897cf=_0x1897cf-0x182;const _0x43f438=a27_0x43f4();let _0x4c7463=_0x43f438[_0x1897cf];return _0x4c7463;}import{dryRun}from'../../framework/dryrun.js';const TITLE_FLAG={'name':a27_0x461c0b(0x19c),'type':'string','required':!![],'description':a27_0x461c0b(0x183)},FILE_FLAG={'name':a27_0x461c0b(0x190),'type':a27_0x461c0b(0x19b),'required':!![],'description':a27_0x461c0b(0x1ab)},QUERY_FLAG={'name':a27_0x461c0b(0x1a1),'type':'string','required':!![],'description':a27_0x461c0b(0x1b1)},TOPK_FLAG={'name':a27_0x461c0b(0x1b0),'type':a27_0x461c0b(0x19a),'description':a27_0x461c0b(0x194)};function readKnowledgeFile(_0x26dd1c){const _0xf7a1bd=a27_0x461c0b;if(!_0x26dd1c)throw CliErrors[_0xf7a1bd(0x19f)](_0xf7a1bd(0x1be));if(!existsSync(_0x26dd1c))throw CliErrors[_0xf7a1bd(0x19f)](_0xf7a1bd(0x1a6)+_0x26dd1c);if(!statSync(_0x26dd1c)[_0xf7a1bd(0x189)]())throw CliErrors['validation'](_0xf7a1bd(0x1bf)+_0x26dd1c);return readFileSync(_0x26dd1c,_0xf7a1bd(0x197));}function summarizePersonalItem(_0x2ba0c7){const _0x2147bf=a27_0x461c0b;return{'id':_0x2ba0c7['id'],'title':_0x2ba0c7[_0x2147bf(0x19c)],'version':_0x2ba0c7[_0x2147bf(0x1a5)],'ragStatus':_0x2ba0c7[_0x2147bf(0x18c)],'ragErrorMessage':_0x2ba0c7[_0x2147bf(0x1a7)],'updateTime':_0x2ba0c7['updateTime']};}function detailPersonalItem(_0x4bb205){const _0x120c37=a27_0x461c0b;return{'id':_0x4bb205['id'],'appCode':_0x4bb205['appCode'],'scope':_0x4bb205[_0x120c37(0x1b2)],'userId':_0x4bb205[_0x120c37(0x1b7)],'title':_0x4bb205[_0x120c37(0x19c)],'content':_0x4bb205[_0x120c37(0x193)]??'','version':_0x4bb205[_0x120c37(0x1a5)],'ragStatus':_0x4bb205['ragStatus'],'ragErrorMessage':_0x4bb205[_0x120c37(0x1a7)],'createTime':_0x4bb205[_0x120c37(0x187)],'updateTime':_0x4bb205[_0x120c37(0x18b)]};}function summarizeSearchHit(_0x56e75d){const _0x5781eb=a27_0x461c0b;return{'scope':_0x56e75d[_0x5781eb(0x1b2)],'docId':_0x56e75d[_0x5781eb(0x198)],'score':_0x56e75d['score'],'weightedScore':_0x56e75d['weightedScore'],'content':_0x56e75d[_0x5781eb(0x193)],'metadata':_0x56e75d[_0x5781eb(0x1b4)]};}function readTopK(_0x2da8aa){const _0xa267e5=a27_0x461c0b,_0x55ca71=_0x2da8aa[_0xa267e5(0x195)](_0xa267e5(0x1b0));if(_0x55ca71===undefined||_0x55ca71===null||_0x55ca71==='')return undefined;const _0x107380=_0x2da8aa[_0xa267e5(0x18d)]('topk');if(!Number[_0xa267e5(0x1a0)](_0x107380)||_0x107380<0x1)throw CliErrors[_0xa267e5(0x19f)]('--topk\x20must\x20be\x20a\x20positive\x20number.');return _0x107380;}const kbList={'service':'kb','command':a27_0x461c0b(0x196),'description':a27_0x461c0b(0x1b6),'risk':'read','flags':[VERBOSE_FLAG],async 'execute'(_0x22acb5){const _0x548291=a27_0x461c0b,_0x3e7e8c=await listPersonalKnowledgeBaseItems(_0x22acb5[_0x548291(0x1b5)]);if(_0x22acb5[_0x548291(0x1b9)](_0x548291(0x1ad)))return{'ok':!![],'data':{'total':_0x3e7e8c[_0x548291(0x1a9)],'items':_0x3e7e8c}};return{'ok':!![],'data':{'total':_0x3e7e8c[_0x548291(0x1a9)],'items':_0x3e7e8c['map'](summarizePersonalItem)}};}},kbDetail={'service':'kb','command':a27_0x461c0b(0x1bb),'description':a27_0x461c0b(0x18f),'risk':a27_0x461c0b(0x1ba),'flags':[{...ID_FLAG,'description':'Personal\x20knowledge-base\x20entry\x20ID'}],async 'execute'(_0x446224){const _0x584676=a27_0x461c0b,_0x171ea2=await getPersonalKnowledgeBaseItem(_0x446224[_0x584676(0x18d)]('id'),_0x446224['appCode']);return{'ok':!![],'data':detailPersonalItem(_0x171ea2)};}},kbCreate={'service':'kb','command':'create','description':a27_0x461c0b(0x1b8),'risk':a27_0x461c0b(0x1c0),'flags':[TITLE_FLAG,FILE_FLAG],async 'execute'(_0x4424d6){const _0x210669=a27_0x461c0b,_0x5c57cf=_0x4424d6[_0x210669(0x188)]('title'),_0x3a9b77=readKnowledgeFile(_0x4424d6['str'](_0x210669(0x190))),_0x11e5e4=await createPersonalKnowledgeBaseItem(_0x4424d6[_0x210669(0x1b5)],{'title':_0x5c57cf,'content':_0x3a9b77});return{'ok':!![],'data':summarizePersonalItem(_0x11e5e4),'message':'Created\x20KB\x20entry\x20'+_0x11e5e4['id']+'\x20('+_0x11e5e4[_0x210669(0x19c)]+')'};},async 'dryRun'(_0x2fb7bb){const _0x5442c4=a27_0x461c0b,_0x85951b=_0x2fb7bb[_0x5442c4(0x188)](_0x5442c4(0x19c)),_0x5d3a41=readKnowledgeFile(_0x2fb7bb[_0x5442c4(0x188)](_0x5442c4(0x190)));return dryRun(_0x5442c4(0x199),_0x5442c4(0x1af))[_0x5442c4(0x1a2)]({'appCode':_0x2fb7bb[_0x5442c4(0x1b5)],'title':_0x85951b,'content':_0x5d3a41})[_0x5442c4(0x1bc)](_0x5442c4(0x1a4)+_0x85951b+'\x22')[_0x5442c4(0x19d)]();}},kbUpdate={'service':'kb','command':a27_0x461c0b(0x184),'description':a27_0x461c0b(0x1aa),'risk':a27_0x461c0b(0x1c0),'flags':[{...ID_FLAG,'description':'Personal\x20knowledge-base\x20entry\x20ID'},{...TITLE_FLAG,'required':![],'description':a27_0x461c0b(0x185)},FILE_FLAG],async 'execute'(_0x47947d){const _0x3be2ee=a27_0x461c0b,_0x5f0e45=_0x47947d['num']('id'),_0x323b54=readKnowledgeFile(_0x47947d['str'](_0x3be2ee(0x190))),_0x40c6be=_0x47947d[_0x3be2ee(0x188)](_0x3be2ee(0x19c))||(await getPersonalKnowledgeBaseItem(_0x5f0e45,_0x47947d[_0x3be2ee(0x1b5)]))[_0x3be2ee(0x19c)],_0x155180=await updatePersonalKnowledgeBaseItem(_0x5f0e45,_0x47947d[_0x3be2ee(0x1b5)],{'title':_0x40c6be,'content':_0x323b54});return{'ok':!![],'data':summarizePersonalItem(_0x155180),'message':_0x3be2ee(0x1c1)+_0x155180['id']+'\x20('+_0x155180['title']+')'};},async 'dryRun'(_0x3ee0fc){const _0x7c58f9=a27_0x461c0b,_0x194698=_0x3ee0fc[_0x7c58f9(0x18d)]('id'),_0x5cd4ef=readKnowledgeFile(_0x3ee0fc[_0x7c58f9(0x188)]('file')),_0x25ac2d=_0x3ee0fc['str']('title')||(await getPersonalKnowledgeBaseItem(_0x194698,_0x3ee0fc['appCode']))[_0x7c58f9(0x19c)];return dryRun(_0x7c58f9(0x199),'/client/knowledge-base/personal/'+_0x194698+_0x7c58f9(0x1a3))[_0x7c58f9(0x1a2)]({'appCode':_0x3ee0fc[_0x7c58f9(0x1b5)],'title':_0x25ac2d,'content':_0x5cd4ef})['description'](_0x7c58f9(0x1bd)+_0x194698)[_0x7c58f9(0x19d)]();}},kbSearch={'service':'kb','command':a27_0x461c0b(0x1ac),'description':a27_0x461c0b(0x1a8),'risk':a27_0x461c0b(0x1ba),'flags':[QUERY_FLAG,TOPK_FLAG],async 'validate'(_0x375b6c){const _0xb2b8e1=a27_0x461c0b;if(!_0x375b6c[_0xb2b8e1(0x188)]('query')[_0xb2b8e1(0x1b3)]())throw CliErrors[_0xb2b8e1(0x19f)]('Search\x20query\x20is\x20required.');readTopK(_0x375b6c);},async 'execute'(_0x5832ff){const _0x148a95=a27_0x461c0b,_0x4cd09f=_0x5832ff[_0x148a95(0x188)](_0x148a95(0x1a1))[_0x148a95(0x1b3)](),_0x55655d=readTopK(_0x5832ff),_0x4c9064=await searchKnowledgeBase(_0x5832ff[_0x148a95(0x1b5)],{'query':_0x4cd09f,'topK':_0x55655d});return{'ok':!![],'data':{'total':_0x4c9064[_0x148a95(0x1a9)],'hits':_0x4c9064[_0x148a95(0x1ae)](summarizeSearchHit)}};}};export const kbDefinitions=[kbList,kbDetail,kbCreate,kbUpdate,kbSearch];
@@ -1 +1 @@
1
- const a28_0x21233e=a28_0x2f83;function a28_0x2f83(_0x329249,_0x2ca3c3){_0x329249=_0x329249-0x1da;const _0x23ff0d=a28_0x23ff();let _0x2f83f8=_0x23ff0d[_0x329249];return _0x2f83f8;}(function(_0x2c30d4,_0xaea407){const _0x3e85f4=a28_0x2f83,_0x720e22=_0x2c30d4();while(!![]){try{const _0x44963c=-parseInt(_0x3e85f4(0x1eb))/0x1+-parseInt(_0x3e85f4(0x1f0))/0x2*(-parseInt(_0x3e85f4(0x1e9))/0x3)+parseInt(_0x3e85f4(0x1f2))/0x4+parseInt(_0x3e85f4(0x1e7))/0x5+parseInt(_0x3e85f4(0x1de))/0x6+-parseInt(_0x3e85f4(0x1da))/0x7*(-parseInt(_0x3e85f4(0x1e0))/0x8)+-parseInt(_0x3e85f4(0x1ee))/0x9*(parseInt(_0x3e85f4(0x1ec))/0xa);if(_0x44963c===_0xaea407)break;else _0x720e22['push'](_0x720e22['shift']());}catch(_0x1d4d49){_0x720e22['push'](_0x720e22['shift']());}}}(a28_0x23ff,0xb5b14));import{logger}from'../../utils/logger.js';import{CLI_DISPLAY_NAME}from'../../constant/cli.js';function a28_0x23ff(){const _0x42999d=['*\x20Logs\x20cleared','duration','length','3841770pmKQUK','\x20\x20\x20Time:\x20','9smEKVV','forEach','447238axBpHo','226640juQROt','message','639IiDMUd','logs','97954VXyuJT','details','1008784lYKQZL','Clear\x20command\x20history\x20logs','log','clear','level','1575iAGRhF','readLogs','clearLogs','success','7324128DOfCxG','timestamp','14664ALFIjx','\x20logs:\x0a','en-US','read'];a28_0x23ff=function(){return _0x42999d;};return a28_0x23ff();}function printLogs(_0x3b8484){const _0x2a6b4d=a28_0x2f83;if(_0x3b8484[_0x2a6b4d(0x1e6)]===0x0){console[_0x2a6b4d(0x1f4)]('*\x20No\x20logs\x20found');return;}console[_0x2a6b4d(0x1f4)]('*\x20'+CLI_DISPLAY_NAME+_0x2a6b4d(0x1e1)),_0x3b8484[_0x2a6b4d(0x1ea)]((_0x3db31c,_0x53521a)=>{const _0x388ff5=_0x2a6b4d,_0xa1e502=new Date(_0x3db31c[_0x388ff5(0x1df)])['toLocaleString'](_0x388ff5(0x1e2)),_0x449963=_0x3db31c[_0x388ff5(0x1f6)]===_0x388ff5(0x1dd)?'√':_0x3db31c['level']==='error'?'×':_0x3db31c[_0x388ff5(0x1f6)]==='warn'?'!':'i';console[_0x388ff5(0x1f4)](_0x53521a+0x1+'.\x20'+_0x449963+'\x20['+_0x3db31c['command']+']\x20'+_0x3db31c[_0x388ff5(0x1ed)]),console[_0x388ff5(0x1f4)](_0x388ff5(0x1e8)+_0xa1e502),_0x3db31c[_0x388ff5(0x1e5)]&&console[_0x388ff5(0x1f4)]('\x20\x20\x20Duration:\x20'+_0x3db31c[_0x388ff5(0x1e5)]+'ms'),_0x3db31c[_0x388ff5(0x1f1)]&&Object['keys'](_0x3db31c[_0x388ff5(0x1f1)])[_0x388ff5(0x1e6)]>0x0&&console['log']('\x20\x20\x20Details:\x20'+JSON['stringify'](_0x3db31c['details'],null,0x2)),console['log']('');});}export const logsDefinitions=[{'service':a28_0x21233e(0x1ef),'command':'show','description':'View\x20command\x20history\x20logs','risk':a28_0x21233e(0x1e3),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x1c0fe7){const _0x4ab93f=a28_0x21233e;return printLogs(logger[_0x4ab93f(0x1db)]()),{'ok':!![]};}},{'service':a28_0x21233e(0x1ef),'command':a28_0x21233e(0x1f5),'description':a28_0x21233e(0x1f3),'risk':'write','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x343750){const _0x5f562b=a28_0x21233e;return logger[_0x5f562b(0x1dc)](),console[_0x5f562b(0x1f4)](_0x5f562b(0x1e4)),{'ok':!![]};}}];
1
+ const a28_0x1d98a2=a28_0x2226;(function(_0x4e2e4e,_0x4ce2d9){const _0x307408=a28_0x2226,_0x141e3e=_0x4e2e4e();while(!![]){try{const _0x2d6378=parseInt(_0x307408(0xf2))/0x1*(-parseInt(_0x307408(0xed))/0x2)+parseInt(_0x307408(0xe9))/0x3*(parseInt(_0x307408(0xf9))/0x4)+-parseInt(_0x307408(0xe5))/0x5*(-parseInt(_0x307408(0xe7))/0x6)+-parseInt(_0x307408(0xff))/0x7+parseInt(_0x307408(0xe3))/0x8+parseInt(_0x307408(0x101))/0x9*(parseInt(_0x307408(0xfa))/0xa)+-parseInt(_0x307408(0xfd))/0xb;if(_0x2d6378===_0x4ce2d9)break;else _0x141e3e['push'](_0x141e3e['shift']());}catch(_0x3c44fc){_0x141e3e['push'](_0x141e3e['shift']());}}}(a28_0x30b2,0x4de73));function a28_0x2226(_0xb5a1ed,_0x426ad9){_0xb5a1ed=_0xb5a1ed-0xe1;const _0x30b2a9=a28_0x30b2();let _0x2226ad=_0x30b2a9[_0xb5a1ed];return _0x2226ad;}import{logger}from'../../utils/logger.js';import{CLI_DISPLAY_NAME}from'../../constant/cli.js';function printLogs(_0x95c350){const _0x2b1e12=a28_0x2226;if(_0x95c350[_0x2b1e12(0xea)]===0x0){console['log'](_0x2b1e12(0xf1));return;}console[_0x2b1e12(0xf3)]('*\x20'+CLI_DISPLAY_NAME+_0x2b1e12(0xef)),_0x95c350[_0x2b1e12(0xec)]((_0x2b6f73,_0x100d7e)=>{const _0x476310=_0x2b1e12,_0x13208e=new Date(_0x2b6f73[_0x476310(0xfb)])[_0x476310(0xe2)](_0x476310(0xf6)),_0x451135=_0x2b6f73['level']==='success'?'√':_0x2b6f73[_0x476310(0x102)]==='error'?'×':_0x2b6f73[_0x476310(0x102)]===_0x476310(0xfe)?'!':'i';console['log'](_0x100d7e+0x1+'.\x20'+_0x451135+'\x20['+_0x2b6f73['command']+']\x20'+_0x2b6f73[_0x476310(0xf4)]),console[_0x476310(0xf3)](_0x476310(0x100)+_0x13208e),_0x2b6f73['duration']&&console['log'](_0x476310(0xf5)+_0x2b6f73['duration']+'ms'),_0x2b6f73['details']&&Object[_0x476310(0xf7)](_0x2b6f73[_0x476310(0xe4)])[_0x476310(0xea)]>0x0&&console[_0x476310(0xf3)](_0x476310(0xeb)+JSON[_0x476310(0xe1)](_0x2b6f73[_0x476310(0xe4)],null,0x2)),console[_0x476310(0xf3)]('');});}function a28_0x30b2(){const _0x5472f1=['timestamp','logs','3234242jbrsBE','warn','4316725EeWFdl','\x20\x20\x20Time:\x20','725121sQjZQN','level','View\x20command\x20history\x20logs','stringify','toLocaleString','2265696kjuJkZ','details','5MYxiQr','show','2209806vLbqtj','*\x20Logs\x20cleared','47571uoUcku','length','\x20\x20\x20Details:\x20','forEach','1049692rIMAQS','clear','\x20logs:\x0a','clearLogs','*\x20No\x20logs\x20found','1TGEpgT','log','message','\x20\x20\x20Duration:\x20','en-US','keys','Clear\x20command\x20history\x20logs','136aSJzti','70DMYaHB'];a28_0x30b2=function(){return _0x5472f1;};return a28_0x30b2();}export const logsDefinitions=[{'service':a28_0x1d98a2(0xfc),'command':a28_0x1d98a2(0xe6),'description':a28_0x1d98a2(0x103),'risk':'read','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x4bb35){return printLogs(logger['readLogs']()),{'ok':!![]};}},{'service':'logs','command':a28_0x1d98a2(0xee),'description':a28_0x1d98a2(0xf8),'risk':'write','requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x36f658){const _0x44a9d3=a28_0x1d98a2;return logger[_0x44a9d3(0xf0)](),console['log'](_0x44a9d3(0xe8)),{'ok':!![]};}}];
@@ -1 +1 @@
1
- const a29_0x3c1830=a29_0x4813;(function(_0xf70730,_0x443d85){const _0x5650e3=a29_0x4813,_0x2f8ad4=_0xf70730();while(!![]){try{const _0x1ae3f2=-parseInt(_0x5650e3(0x12e))/0x1+parseInt(_0x5650e3(0x157))/0x2+parseInt(_0x5650e3(0x121))/0x3+parseInt(_0x5650e3(0x12a))/0x4+parseInt(_0x5650e3(0x15d))/0x5+parseInt(_0x5650e3(0x145))/0x6*(-parseInt(_0x5650e3(0x149))/0x7)+-parseInt(_0x5650e3(0x122))/0x8*(parseInt(_0x5650e3(0x12c))/0x9);if(_0x1ae3f2===_0x443d85)break;else _0x2f8ad4['push'](_0x2f8ad4['shift']());}catch(_0x347a5d){_0x2f8ad4['push'](_0x2f8ad4['shift']());}}}(a29_0x4f3b,0x5469a));import{existsSync,readFileSync,statSync}from'node:fs';import{createPersonalBff,executePersonalBff,getPersonalBff,listPersonalBffs,updatePersonalBff}from'../../core/api-client.js';import{ID_FLAG,PARAMS_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{parseJsonParams}from'../../utils/params.js';const FUNCTION_NAME_PATTERN=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,FILE_FLAG={'name':a29_0x3c1830(0x12d),'type':'string','description':a29_0x3c1830(0x14d)},FUNCTION_NAME_FLAG={'name':'name','type':a29_0x3c1830(0x147),'required':!![],'description':a29_0x3c1830(0x13b)},DESCRIPTION_FLAG={'name':'description','type':a29_0x3c1830(0x147),'description':'Personal\x20BFF\x20description'},SOURCE_SESSION_FLAG={'name':a29_0x3c1830(0x15e),'type':a29_0x3c1830(0x147),'description':a29_0x3c1830(0x152)};function a29_0x4813(_0x4f508f,_0x3949d8){_0x4f508f=_0x4f508f-0x117;const _0x4f3b02=a29_0x4f3b();let _0x481365=_0x4f3b02[_0x4f508f];return _0x481365;}function normalizeFunctionName(_0x5f55dc){const _0x2c27f4=a29_0x3c1830,_0x1e25c9=String(_0x5f55dc||'')['trim']();if(!_0x1e25c9||!FUNCTION_NAME_PATTERN[_0x2c27f4(0x118)](_0x1e25c9))throw CliErrors[_0x2c27f4(0x151)](_0x2c27f4(0x13d));return _0x1e25c9;}function readScriptFile(_0x182469){const _0x4cc7b3=a29_0x3c1830;if(!_0x182469)throw CliErrors[_0x4cc7b3(0x151)](_0x4cc7b3(0x139));if(!existsSync(_0x182469))throw CliErrors[_0x4cc7b3(0x151)]('File\x20not\x20found:\x20'+_0x182469);if(!statSync(_0x182469)[_0x4cc7b3(0x15f)]())throw CliErrors['validation'](_0x4cc7b3(0x15b)+_0x182469);const _0x29a322=readFileSync(_0x182469,_0x4cc7b3(0x150));if(!_0x29a322[_0x4cc7b3(0x124)]())throw CliErrors[_0x4cc7b3(0x151)](_0x4cc7b3(0x12b));return _0x29a322;}function optionalTrimmed(_0x20ad0d){const _0x43a28d=String(_0x20ad0d||'')['trim']();return _0x43a28d||undefined;}function summarizeBff(_0x59b4fa){const _0x20be82=a29_0x3c1830;return{'id':_0x59b4fa['id'],'appCode':_0x59b4fa[_0x20be82(0x156)],'functionName':_0x59b4fa[_0x20be82(0x15c)],'description':_0x59b4fa[_0x20be82(0x131)],'scriptType':_0x59b4fa[_0x20be82(0x11e)],'version':_0x59b4fa[_0x20be82(0x136)],'gmtModified':_0x59b4fa[_0x20be82(0x153)],'updateTime':_0x59b4fa[_0x20be82(0x125)]};}function detailBff(_0x153b1d){const _0x44b0d3=a29_0x3c1830;return{'id':_0x153b1d['id'],'appCode':_0x153b1d[_0x44b0d3(0x156)],'functionName':_0x153b1d[_0x44b0d3(0x15c)],'description':_0x153b1d[_0x44b0d3(0x131)],'scriptType':_0x153b1d[_0x44b0d3(0x11e)],'scriptContent':_0x153b1d[_0x44b0d3(0x11c)]??'','config':_0x153b1d[_0x44b0d3(0x14e)],'version':_0x153b1d['version'],'createUserId':_0x153b1d[_0x44b0d3(0x159)],'gmtCreate':_0x153b1d['gmtCreate'],'gmtModified':_0x153b1d[_0x44b0d3(0x153)],'createTime':_0x153b1d[_0x44b0d3(0x15a)],'updateTime':_0x153b1d['updateTime']};}function buildCreateInput(_0xb3aa2){const _0x12defd=a29_0x3c1830;return{'functionName':normalizeFunctionName(_0xb3aa2[_0x12defd(0x14a)](_0x12defd(0x13f))),...optionalTrimmed(_0xb3aa2['str'](_0x12defd(0x131)))?{'description':optionalTrimmed(_0xb3aa2[_0x12defd(0x14a)](_0x12defd(0x131)))}:{},'scriptContent':readScriptFile(_0xb3aa2[_0x12defd(0x14a)](_0x12defd(0x12d))),...optionalTrimmed(_0xb3aa2['str']('source-session-id'))?{'sourceSessionId':optionalTrimmed(_0xb3aa2['str']('source-session-id'))}:{}};}function buildUpdateInput(_0x27541b){const _0x12afea=a29_0x3c1830,_0x2faf9b={};optionalTrimmed(_0x27541b[_0x12afea(0x14a)](_0x12afea(0x13f)))&&(_0x2faf9b['functionName']=normalizeFunctionName(_0x27541b[_0x12afea(0x14a)](_0x12afea(0x13f))));_0x27541b[_0x12afea(0x13a)](_0x12afea(0x131))!==undefined&&(_0x2faf9b[_0x12afea(0x131)]=_0x27541b['str'](_0x12afea(0x131)));optionalTrimmed(_0x27541b[_0x12afea(0x14a)]('file'))&&(_0x2faf9b[_0x12afea(0x11c)]=readScriptFile(_0x27541b['str'](_0x12afea(0x12d))));_0x27541b[_0x12afea(0x13a)]('source-session-id')!==undefined&&(_0x2faf9b[_0x12afea(0x146)]=_0x27541b[_0x12afea(0x14a)](_0x12afea(0x15e)));if(Object[_0x12afea(0x154)](_0x2faf9b)[_0x12afea(0x134)]===0x0)throw CliErrors['validation'](_0x12afea(0x143));return _0x2faf9b;}function parseExecParams(_0x11af2f){const _0x428c46=a29_0x3c1830,_0x13f7f4=parseJsonParams(_0x11af2f)??{};if(Array[_0x428c46(0x148)](_0x13f7f4))throw CliErrors[_0x428c46(0x151)](_0x428c46(0x130));return _0x13f7f4;}const personalBffList={'service':a29_0x3c1830(0x11b),'command':a29_0x3c1830(0x132),'description':a29_0x3c1830(0x119),'risk':'read','flags':[VERBOSE_FLAG],async 'execute'(_0x312408){const _0x366b5b=a29_0x3c1830,_0x30d5c9=await listPersonalBffs(_0x312408[_0x366b5b(0x156)]);return{'ok':!![],'data':{'total':_0x30d5c9[_0x366b5b(0x134)],'items':_0x312408[_0x366b5b(0x128)](_0x366b5b(0x14f))?_0x30d5c9:_0x30d5c9['map'](summarizeBff)}};}},personalBffDetail={'service':a29_0x3c1830(0x11b),'command':a29_0x3c1830(0x129),'description':a29_0x3c1830(0x158),'risk':a29_0x3c1830(0x137),'flags':[{...ID_FLAG,'description':'Personal\x20BFF\x20script\x20ID'}],async 'execute'(_0x18fee5){const _0x285af7=a29_0x3c1830,_0x6b230b=await getPersonalBff(_0x18fee5[_0x285af7(0x14c)]('id'),_0x18fee5[_0x285af7(0x156)]);return{'ok':!![],'data':detailBff(_0x6b230b)};}},personalBffCreate={'service':a29_0x3c1830(0x11b),'command':a29_0x3c1830(0x120),'description':a29_0x3c1830(0x126),'risk':a29_0x3c1830(0x123),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x4a6b15){const _0x2c2165=a29_0x3c1830,_0x303056=buildCreateInput(_0x4a6b15),_0x5f0dc5=await createPersonalBff(_0x4a6b15['appCode'],_0x303056);return{'ok':!![],'data':detailBff(_0x5f0dc5),'message':_0x2c2165(0x12f)+_0x5f0dc5['id']+(_0x5f0dc5[_0x2c2165(0x15c)]?'\x20('+_0x5f0dc5[_0x2c2165(0x15c)]+')':'')};},async 'dryRun'(_0xea9432){const _0x215758=a29_0x3c1830,_0x374b31=buildCreateInput(_0xea9432);return dryRun('POST',_0x215758(0x127))[_0x215758(0x140)]({'appCode':_0xea9432[_0x215758(0x156)],..._0x374b31})['description']('Preview:\x20create\x20personal\x20BFF\x20'+_0x374b31[_0x215758(0x15c)])['build']();}},personalBffUpdate={'service':'personal-bff','command':a29_0x3c1830(0x141),'description':a29_0x3c1830(0x13e),'risk':a29_0x3c1830(0x123),'flags':[{...ID_FLAG,'description':a29_0x3c1830(0x13c)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x42dfb6){const _0x501be6=a29_0x3c1830,_0x1e5f29=_0x42dfb6[_0x501be6(0x14c)]('id'),_0xce21d=buildUpdateInput(_0x42dfb6),_0x349e15=await updatePersonalBff(_0x1e5f29,_0x42dfb6[_0x501be6(0x156)],_0xce21d);return{'ok':!![],'data':detailBff(_0x349e15),'message':_0x501be6(0x11f)+_0x349e15['id']+(_0x349e15['functionName']?'\x20('+_0x349e15['functionName']+')':'')};},async 'dryRun'(_0x1441fe){const _0x51e8eb=a29_0x3c1830,_0x9c8874=_0x1441fe['num']('id'),_0x56238e=buildUpdateInput(_0x1441fe);return dryRun('POST',_0x51e8eb(0x142)+_0x9c8874+_0x51e8eb(0x133))['body']({'appCode':_0x1441fe[_0x51e8eb(0x156)],..._0x56238e})[_0x51e8eb(0x131)](_0x51e8eb(0x155)+_0x9c8874)[_0x51e8eb(0x138)]();}},personalBffExec={'service':a29_0x3c1830(0x11b),'command':a29_0x3c1830(0x144),'description':a29_0x3c1830(0x11d),'risk':a29_0x3c1830(0x14b),'flags':[{...ID_FLAG,'description':'Personal\x20BFF\x20script\x20ID'},{...PARAMS_FLAG,'description':a29_0x3c1830(0x11a)}],async 'validate'(_0x317599){const _0x302a7e=a29_0x3c1830;parseExecParams(_0x317599[_0x302a7e(0x14a)](_0x302a7e(0x117)));},async 'execute'(_0x3eedd9){const _0x52351d=a29_0x3c1830,_0x31b673=_0x3eedd9[_0x52351d(0x14c)]('id'),_0x16c964=parseExecParams(_0x3eedd9[_0x52351d(0x14a)]('params')),_0x5afcaf=await executePersonalBff(_0x31b673,_0x3eedd9[_0x52351d(0x156)],_0x16c964);return{'ok':!![],'data':{'result':_0x5afcaf},'message':_0x52351d(0x135)+_0x31b673};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];function a29_0x4f3b(){const _0x1565f4=['exec','354870qaFNhK','sourceSessionId','string','isArray','14WZtqBX','str','high-risk-write','num','Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file','config','verbose','utf8','validation','Optional\x20source\x20RuntimeAgent\x20session\x20id','gmtModified','keys','Preview:\x20update\x20personal\x20BFF\x20','appCode','994968egUHnG','Show\x20one\x20personal\x20BFF\x20by\x20id','createUserId','createTime','File\x20is\x20not\x20a\x20regular\x20file:\x20','functionName','2855480eyBXyG','source-session-id','isFile','params','test','List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','personal-bff','scriptContent','Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','scriptType','Updated\x20personal\x20BFF\x20','create','530406cWbmAO','8501128VpSisb','write','trim','updateTime','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','/client/runtime-bff/personal/create','bool','detail','1377124jlMjhN','Personal\x20BFF\x20script\x20file\x20is\x20blank.','9sokqfW','file','62978NxNbXQ','Created\x20personal\x20BFF\x20','--params\x20must\x20be\x20a\x20JSON\x20object.','description','list','/update','length','Executed\x20personal\x20BFF\x20','version','read','build','File\x20path\x20is\x20required.','flag','Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders','Personal\x20BFF\x20script\x20ID','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','Update\x20a\x20personal\x20BFF\x20by\x20id','name','body','update','/client/runtime-bff/personal/','personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.'];a29_0x4f3b=function(){return _0x1565f4;};return a29_0x4f3b();}
1
+ const a29_0x23c852=a29_0x43e5;(function(_0x82594b,_0x474b01){const _0x2756a0=a29_0x43e5,_0x316c6a=_0x82594b();while(!![]){try{const _0x261b5c=-parseInt(_0x2756a0(0x96))/0x1*(parseInt(_0x2756a0(0xab))/0x2)+-parseInt(_0x2756a0(0xba))/0x3*(-parseInt(_0x2756a0(0xa6))/0x4)+-parseInt(_0x2756a0(0xa8))/0x5+parseInt(_0x2756a0(0x8b))/0x6*(-parseInt(_0x2756a0(0xc0))/0x7)+parseInt(_0x2756a0(0x99))/0x8+parseInt(_0x2756a0(0xc2))/0x9*(-parseInt(_0x2756a0(0xc5))/0xa)+parseInt(_0x2756a0(0x8c))/0xb*(parseInt(_0x2756a0(0xb3))/0xc);if(_0x261b5c===_0x474b01)break;else _0x316c6a['push'](_0x316c6a['shift']());}catch(_0x1c6598){_0x316c6a['push'](_0x316c6a['shift']());}}}(a29_0x5dde,0xb4476));import{existsSync,readFileSync,statSync}from'node:fs';function a29_0x43e5(_0xb12520,_0x57bc29){_0xb12520=_0xb12520-0x87;const _0x5dde64=a29_0x5dde();let _0x43e5fe=_0x5dde64[_0xb12520];return _0x43e5fe;}import{createPersonalBff,executePersonalBff,getPersonalBff,listPersonalBffs,updatePersonalBff}from'../../core/api-client.js';import{ID_FLAG,PARAMS_FLAG,VERBOSE_FLAG}from'../../commands/common/flags.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';import{parseJsonParams}from'../../utils/params.js';const FUNCTION_NAME_PATTERN=/^[a-zA-Z_$][a-zA-Z0-9_$]*$/,FILE_FLAG={'name':a29_0x23c852(0xc6),'type':a29_0x23c852(0xbd),'description':a29_0x23c852(0x87)},FUNCTION_NAME_FLAG={'name':a29_0x23c852(0xa1),'type':a29_0x23c852(0xbd),'required':!![],'description':a29_0x23c852(0xa3)},DESCRIPTION_FLAG={'name':'description','type':a29_0x23c852(0xbd),'description':'Personal\x20BFF\x20description'},SOURCE_SESSION_FLAG={'name':a29_0x23c852(0x97),'type':a29_0x23c852(0xbd),'description':'Optional\x20source\x20RuntimeAgent\x20session\x20id'};function normalizeFunctionName(_0xb9f766){const _0x22cc2f=a29_0x23c852,_0xdad058=String(_0xb9f766||'')['trim']();if(!_0xdad058||!FUNCTION_NAME_PATTERN[_0x22cc2f(0x9d)](_0xdad058))throw CliErrors[_0x22cc2f(0xae)]('--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.');return _0xdad058;}function readScriptFile(_0x3740fd){const _0x5aa3eb=a29_0x23c852;if(!_0x3740fd)throw CliErrors[_0x5aa3eb(0xae)](_0x5aa3eb(0xb4));if(!existsSync(_0x3740fd))throw CliErrors['validation'](_0x5aa3eb(0xa4)+_0x3740fd);if(!statSync(_0x3740fd)['isFile']())throw CliErrors[_0x5aa3eb(0xae)](_0x5aa3eb(0xb1)+_0x3740fd);const _0x5d5f69=readFileSync(_0x3740fd,_0x5aa3eb(0x94));if(!_0x5d5f69[_0x5aa3eb(0xa9)]())throw CliErrors[_0x5aa3eb(0xae)](_0x5aa3eb(0xb8));return _0x5d5f69;}function a29_0x5dde(){const _0x4fc1f8=['Updated\x20personal\x20BFF\x20','--params\x20must\x20be\x20a\x20JSON\x20object.','2759085pMTXwP','version','13833KGNqya','Preview:\x20create\x20personal\x20BFF\x20','bool','3630NanDgw','file','Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file','createTime','scriptContent','exec','6LjvMAt','28869467tttWVr','list','read','str','updateTime','config','build','appCode','utf8','personal-bff','925928qhSGiH','source-session-id','length','9149632xdaEld','update','num','scriptType','test','params','Created\x20personal\x20BFF\x20','/update','name','write','Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders','File\x20not\x20found:\x20','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','4tbNGuc','gmtCreate','6150395DLPniO','trim','gmtModified','2XnfcSl','high-risk-write','functionName','validation','flag','Executed\x20personal\x20BFF\x20','File\x20is\x20not\x20a\x20regular\x20file:\x20','Show\x20one\x20personal\x20BFF\x20by\x20id','12TCbIiZ','File\x20path\x20is\x20required.','personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.','Personal\x20BFF\x20script\x20ID','verbose','Personal\x20BFF\x20script\x20file\x20is\x20blank.','/client/runtime-bff/personal/','234942VCiDVK','description','body','string'];a29_0x5dde=function(){return _0x4fc1f8;};return a29_0x5dde();}function optionalTrimmed(_0x2bf487){const _0x13bd59=a29_0x23c852,_0x3022a4=String(_0x2bf487||'')[_0x13bd59(0xa9)]();return _0x3022a4||undefined;}function summarizeBff(_0x201a6c){const _0x2238b7=a29_0x23c852;return{'id':_0x201a6c['id'],'appCode':_0x201a6c[_0x2238b7(0x93)],'functionName':_0x201a6c[_0x2238b7(0xad)],'description':_0x201a6c['description'],'scriptType':_0x201a6c[_0x2238b7(0x9c)],'version':_0x201a6c['version'],'gmtModified':_0x201a6c[_0x2238b7(0xaa)],'updateTime':_0x201a6c['updateTime']};}function detailBff(_0x2b52c6){const _0x1a9358=a29_0x23c852;return{'id':_0x2b52c6['id'],'appCode':_0x2b52c6[_0x1a9358(0x93)],'functionName':_0x2b52c6[_0x1a9358(0xad)],'description':_0x2b52c6[_0x1a9358(0xbb)],'scriptType':_0x2b52c6[_0x1a9358(0x9c)],'scriptContent':_0x2b52c6[_0x1a9358(0x89)]??'','config':_0x2b52c6[_0x1a9358(0x91)],'version':_0x2b52c6[_0x1a9358(0xc1)],'createUserId':_0x2b52c6['createUserId'],'gmtCreate':_0x2b52c6[_0x1a9358(0xa7)],'gmtModified':_0x2b52c6[_0x1a9358(0xaa)],'createTime':_0x2b52c6[_0x1a9358(0x88)],'updateTime':_0x2b52c6[_0x1a9358(0x90)]};}function buildCreateInput(_0x228bf4){const _0x28d1ec=a29_0x23c852;return{'functionName':normalizeFunctionName(_0x228bf4[_0x28d1ec(0x8f)]('name')),...optionalTrimmed(_0x228bf4[_0x28d1ec(0x8f)]('description'))?{'description':optionalTrimmed(_0x228bf4[_0x28d1ec(0x8f)](_0x28d1ec(0xbb)))}:{},'scriptContent':readScriptFile(_0x228bf4[_0x28d1ec(0x8f)](_0x28d1ec(0xc6))),...optionalTrimmed(_0x228bf4[_0x28d1ec(0x8f)]('source-session-id'))?{'sourceSessionId':optionalTrimmed(_0x228bf4[_0x28d1ec(0x8f)]('source-session-id'))}:{}};}function buildUpdateInput(_0x200593){const _0x48a980=a29_0x23c852,_0x424618={};optionalTrimmed(_0x200593['str'](_0x48a980(0xa1)))&&(_0x424618['functionName']=normalizeFunctionName(_0x200593['str'](_0x48a980(0xa1))));_0x200593[_0x48a980(0xaf)](_0x48a980(0xbb))!==undefined&&(_0x424618[_0x48a980(0xbb)]=_0x200593['str'](_0x48a980(0xbb)));optionalTrimmed(_0x200593[_0x48a980(0x8f)]('file'))&&(_0x424618[_0x48a980(0x89)]=readScriptFile(_0x200593[_0x48a980(0x8f)](_0x48a980(0xc6))));_0x200593[_0x48a980(0xaf)](_0x48a980(0x97))!==undefined&&(_0x424618['sourceSessionId']=_0x200593[_0x48a980(0x8f)](_0x48a980(0x97)));if(Object['keys'](_0x424618)['length']===0x0)throw CliErrors[_0x48a980(0xae)](_0x48a980(0xb5));return _0x424618;}function parseExecParams(_0x7bd15b){const _0x129afb=a29_0x23c852,_0x135eed=parseJsonParams(_0x7bd15b)??{};if(Array['isArray'](_0x135eed))throw CliErrors[_0x129afb(0xae)](_0x129afb(0xbf));return _0x135eed;}const personalBffList={'service':a29_0x23c852(0x95),'command':a29_0x23c852(0x8d),'description':'List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','risk':a29_0x23c852(0x8e),'flags':[VERBOSE_FLAG],async 'execute'(_0x2ccad7){const _0x5bb95b=a29_0x23c852,_0x4219ae=await listPersonalBffs(_0x2ccad7['appCode']);return{'ok':!![],'data':{'total':_0x4219ae[_0x5bb95b(0x98)],'items':_0x2ccad7[_0x5bb95b(0xc4)](_0x5bb95b(0xb7))?_0x4219ae:_0x4219ae['map'](summarizeBff)}};}},personalBffDetail={'service':a29_0x23c852(0x95),'command':'detail','description':a29_0x23c852(0xb2),'risk':a29_0x23c852(0x8e),'flags':[{...ID_FLAG,'description':a29_0x23c852(0xb6)}],async 'execute'(_0xfd6dbe){const _0x487a8c=a29_0x23c852,_0x1487dc=await getPersonalBff(_0xfd6dbe[_0x487a8c(0x9b)]('id'),_0xfd6dbe[_0x487a8c(0x93)]);return{'ok':!![],'data':detailBff(_0x1487dc)};}},personalBffCreate={'service':a29_0x23c852(0x95),'command':'create','description':'Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','risk':a29_0x23c852(0xa2),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x2153a9){const _0x519820=a29_0x23c852,_0x398247=buildCreateInput(_0x2153a9),_0x1eb259=await createPersonalBff(_0x2153a9['appCode'],_0x398247);return{'ok':!![],'data':detailBff(_0x1eb259),'message':_0x519820(0x9f)+_0x1eb259['id']+(_0x1eb259[_0x519820(0xad)]?'\x20('+_0x1eb259[_0x519820(0xad)]+')':'')};},async 'dryRun'(_0x1c8a93){const _0x46e002=a29_0x23c852,_0x115d64=buildCreateInput(_0x1c8a93);return dryRun('POST','/client/runtime-bff/personal/create')[_0x46e002(0xbc)]({'appCode':_0x1c8a93['appCode'],..._0x115d64})['description'](_0x46e002(0xc3)+_0x115d64[_0x46e002(0xad)])['build']();}},personalBffUpdate={'service':a29_0x23c852(0x95),'command':a29_0x23c852(0x9a),'description':'Update\x20a\x20personal\x20BFF\x20by\x20id','risk':a29_0x23c852(0xa2),'flags':[{...ID_FLAG,'description':a29_0x23c852(0xb6)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x51ccbd){const _0x8e85eb=a29_0x23c852,_0x1f8d07=_0x51ccbd[_0x8e85eb(0x9b)]('id'),_0x59197f=buildUpdateInput(_0x51ccbd),_0x1ae279=await updatePersonalBff(_0x1f8d07,_0x51ccbd[_0x8e85eb(0x93)],_0x59197f);return{'ok':!![],'data':detailBff(_0x1ae279),'message':_0x8e85eb(0xbe)+_0x1ae279['id']+(_0x1ae279['functionName']?'\x20('+_0x1ae279[_0x8e85eb(0xad)]+')':'')};},async 'dryRun'(_0x2e9bab){const _0x1500db=a29_0x23c852,_0x343e53=_0x2e9bab[_0x1500db(0x9b)]('id'),_0x4e6317=buildUpdateInput(_0x2e9bab);return dryRun('POST',_0x1500db(0xb9)+_0x343e53+_0x1500db(0xa0))[_0x1500db(0xbc)]({'appCode':_0x2e9bab['appCode'],..._0x4e6317})['description']('Preview:\x20update\x20personal\x20BFF\x20'+_0x343e53)[_0x1500db(0x92)]();}},personalBffExec={'service':a29_0x23c852(0x95),'command':a29_0x23c852(0x8a),'description':a29_0x23c852(0xc7),'risk':a29_0x23c852(0xac),'flags':[{...ID_FLAG,'description':a29_0x23c852(0xb6)},{...PARAMS_FLAG,'description':a29_0x23c852(0xa5)}],async 'validate'(_0x4fc40f){const _0x3a571b=a29_0x23c852;parseExecParams(_0x4fc40f[_0x3a571b(0x8f)]('params'));},async 'execute'(_0x2d9b45){const _0x8a16fb=a29_0x23c852,_0x205b06=_0x2d9b45[_0x8a16fb(0x9b)]('id'),_0x367640=parseExecParams(_0x2d9b45[_0x8a16fb(0x8f)](_0x8a16fb(0x9e))),_0x242339=await executePersonalBff(_0x205b06,_0x2d9b45['appCode'],_0x367640);return{'ok':!![],'data':{'result':_0x242339},'message':_0x8a16fb(0xb0)+_0x205b06};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
@@ -1 +1 @@
1
- const a30_0x53b0b8=a30_0x1e52;(function(_0x5abc50,_0x4a7b57){const _0x50d313=a30_0x1e52,_0x57312e=_0x5abc50();while(!![]){try{const _0x153b9e=parseInt(_0x50d313(0x67))/0x1+-parseInt(_0x50d313(0x73))/0x2*(parseInt(_0x50d313(0x88))/0x3)+-parseInt(_0x50d313(0x8a))/0x4+parseInt(_0x50d313(0x77))/0x5*(-parseInt(_0x50d313(0x92))/0x6)+-parseInt(_0x50d313(0x70))/0x7+parseInt(_0x50d313(0x6e))/0x8+parseInt(_0x50d313(0x87))/0x9;if(_0x153b9e===_0x4a7b57)break;else _0x57312e['push'](_0x57312e['shift']());}catch(_0xcbd37c){_0x57312e['push'](_0x57312e['shift']());}}}(a30_0x4f2a,0xa5c7d));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_0x4f2a(){const _0x37a9b4=['\x20\x20[write]','644024nDBXIa','install','map','Skills','get','\x20\x20[high-risk-write]','App\x20Management','Personal\x20BFF','84FhzSzV','run','isSingleCommand','248014pqBBjz','Logs','API\x20Documentation','show','CLI\x20Built-in\x20Skill','Authentication','defaultCommand','8534080QSrPNZ','Instant\x20API','8962947XSvmKA','risk','list','2EmTgTY','write','description','Knowledge\x20Base','367085qKrbZx','Configuration','Schema','values','Self\x20Update','read','Service\x20Tree','Diagnostics','service','set','push','from','BFF\x20Scripts','command','login','Datasets','22013055PraDTn','1837101ToybXR'];a30_0x4f2a=function(){return _0x37a9b4;};return a30_0x4f2a();}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';import{apiDocDefinitions}from'../commands/api-doc/index.js';export const serviceRegistry=[];const serviceByName=new Map();function a30_0x1e52(_0x272423,_0x4e4495){_0x272423=_0x272423-0x65;const _0x4f2aea=a30_0x4f2a();let _0x1e52bc=_0x4f2aea[_0x272423];return _0x1e52bc;}export const definitions=new Map();export const serviceGroups=new Map();function registerDefinitions(_0x5401ed){const _0x45580f=a30_0x1e52;for(const _0x10581c of _0x5401ed){definitions[_0x45580f(0x80)](_0x10581c[_0x45580f(0x7f)]+':'+_0x10581c[_0x45580f(0x84)],_0x10581c);let _0x459d0c=serviceGroups[_0x45580f(0x8e)](_0x10581c['service']);!_0x459d0c&&(_0x459d0c=[],serviceGroups['set'](_0x10581c[_0x45580f(0x7f)],_0x459d0c)),_0x459d0c['push'](_0x10581c);}}function registerService(_0x214582,_0x16bd3e,_0x4fc689){const _0x17e7a0=a30_0x1e52;registerDefinitions(_0x16bd3e);const _0xd5b39c=_0xae5966=>_0xae5966===_0x17e7a0(0x7c)?'':_0xae5966===_0x17e7a0(0x74)?_0x17e7a0(0x89):_0x17e7a0(0x8f),_0x2bd8fc={'service':_0x16bd3e[0x0][_0x17e7a0(0x7f)],'label':_0x214582,'commands':_0x16bd3e[_0x17e7a0(0x8c)](_0x1265cf=>({'command':_0x1265cf[_0x17e7a0(0x84)],'description':_0x1265cf[_0x17e7a0(0x75)],'tag':_0xd5b39c(_0x1265cf[_0x17e7a0(0x71)])})),'defaultCommand':_0x4fc689?.[_0x17e7a0(0x6d)]??(_0x4fc689?.[_0x17e7a0(0x66)]?_0x16bd3e[0x0][_0x17e7a0(0x84)]:undefined),'isSingleCommand':_0x4fc689?.['isSingleCommand']};serviceRegistry[_0x17e7a0(0x81)](_0x2bd8fc),serviceByName[_0x17e7a0(0x80)](_0x2bd8fc[_0x17e7a0(0x7f)],_0x2bd8fc);}registerService(a30_0x53b0b8(0x6c),authDefinitions,{'defaultCommand':a30_0x53b0b8(0x85)}),registerService(a30_0x53b0b8(0x69),apiDocDefinitions),registerService(a30_0x53b0b8(0x86),datasetDefinitions),registerService(a30_0x53b0b8(0x6f),dataDefinitions),registerService('SQL\x20Queries',sqlDefinitions),registerService(a30_0x53b0b8(0x83),bffDefinitions),registerService(a30_0x53b0b8(0x91),personalBffDefinitions),registerService('Artifacts',artifactDefinitions),registerService(a30_0x53b0b8(0x76),kbDefinitions),registerService(a30_0x53b0b8(0x90),appDefinitions,{'defaultCommand':a30_0x53b0b8(0x72)}),registerService('Workspace',workspaceDefinitions),registerService(a30_0x53b0b8(0x78),configDefinitions,{'defaultCommand':'list'}),registerService(a30_0x53b0b8(0x7d),serviceDefinitions,{'defaultCommand':'list'}),registerService(a30_0x53b0b8(0x8d),skillDefinitions,{'defaultCommand':a30_0x53b0b8(0x8b)}),registerService(a30_0x53b0b8(0x6b),cliSkillDefinitions,{'defaultCommand':a30_0x53b0b8(0x8b)}),registerService(a30_0x53b0b8(0x7b),[updateDefinition],{'defaultCommand':a30_0x53b0b8(0x65),'isSingleCommand':!![]}),registerService(a30_0x53b0b8(0x7e),[doctorDefinition],{'isSingleCommand':!![]}),registerService(a30_0x53b0b8(0x79),[schemaDefinition],{'isSingleCommand':!![]}),registerService(a30_0x53b0b8(0x68),logsDefinitions,{'defaultCommand':a30_0x53b0b8(0x6a)});export function findDefinition(_0x421271,_0x1be653){const _0x26de47=a30_0x53b0b8;return definitions[_0x26de47(0x8e)](_0x421271+':'+_0x1be653);}export function isKnownService(_0x11f2a3){return serviceByName['has'](_0x11f2a3);}export function getServiceEntry(_0x3163f1){const _0x295af5=a30_0x53b0b8;return serviceByName[_0x295af5(0x8e)](_0x3163f1);}export function getAllDefinitions(){const _0x1ad0e5=a30_0x53b0b8;return Array[_0x1ad0e5(0x82)](definitions[_0x1ad0e5(0x7a)]());}
1
+ const a30_0x2e8088=a30_0xcfad;function a30_0x27d3(){const _0x2d6e1b=['risk','get','Authentication','SQL\x20Queries','Personal\x20BFF','1NBhgkj','run','1219883MRVpUq','show','set','Service\x20Tree','337142fhonbu','Configuration','Skills','install','760mqsgjL','read','Instant\x20API','Self\x20Update','838878tZxwVE','\x20\x20[write]','defaultCommand','BFF\x20Scripts','has','service','values','description','38855NCAOZe','2317940HBApPb','list','22vyDRsg','push','command','map','Datasets','404984fAmBsH','Logs','App\x20Management','Diagnostics','24741MNGkYK','API\x20Documentation','\x20\x20[high-risk-write]','Workspace','162OJAOAd'];a30_0x27d3=function(){return _0x2d6e1b;};return a30_0x27d3();}function a30_0xcfad(_0x3525d9,_0xb0b22b){_0x3525d9=_0x3525d9-0x141;const _0x27d3ff=a30_0x27d3();let _0xcfadd1=_0x27d3ff[_0x3525d9];return _0xcfadd1;}(function(_0x9aba3c,_0x32a37f){const _0x1bf196=a30_0xcfad,_0x149275=_0x9aba3c();while(!![]){try{const _0x533965=-parseInt(_0x1bf196(0x149))/0x1*(-parseInt(_0x1bf196(0x14f))/0x2)+parseInt(_0x1bf196(0x157))/0x3+-parseInt(_0x1bf196(0x167))/0x4+-parseInt(_0x1bf196(0x15f))/0x5*(parseInt(_0x1bf196(0x143))/0x6)+-parseInt(_0x1bf196(0x14b))/0x7+-parseInt(_0x1bf196(0x153))/0x8*(parseInt(_0x1bf196(0x16b))/0x9)+parseInt(_0x1bf196(0x160))/0xa*(parseInt(_0x1bf196(0x162))/0xb);if(_0x533965===_0x32a37f)break;else _0x149275['push'](_0x149275['shift']());}catch(_0x3098dc){_0x149275['push'](_0x149275['shift']());}}}(a30_0x27d3,0x285b2));import{authDefinitions}from'../commands/auth/index.js';import{logsDefinitions}from'../commands/logs/index.js';import{skillDefinitions}from'../commands/skill/index.js';import{cliSkillDefinitions}from'../commands/cli-skill/index.js';import{serviceDefinitions}from'../commands/service/index.js';import{updateDefinition}from'../commands/update.js';import{doctorDefinition}from'../commands/doctor.js';import{schemaDefinition}from'../commands/schema.js';import{appDefinitions}from'../commands/app/definitions.js';import{workspaceDefinitions}from'../commands/workspace/index.js';import{configDefinitions}from'../commands/config/definitions.js';import{bffDefinitions}from'../commands/bff/index.js';import{sqlDefinitions}from'../commands/sql/index.js';import{datasetDefinitions}from'../commands/dataset/index.js';import{dataDefinitions}from'../commands/data/index.js';import{kbDefinitions}from'../commands/kb/index.js';import{artifactDefinitions}from'../commands/artifact/index.js';import{personalBffDefinitions}from'../commands/personal-bff/index.js';import{apiDocDefinitions}from'../commands/api-doc/index.js';export const serviceRegistry=[];const serviceByName=new Map();export const definitions=new Map();export const serviceGroups=new Map();function registerDefinitions(_0x176a1f){const _0x544304=a30_0xcfad;for(const _0x12970d of _0x176a1f){definitions['set'](_0x12970d['service']+':'+_0x12970d[_0x544304(0x164)],_0x12970d);let _0x47d5bd=serviceGroups[_0x544304(0x145)](_0x12970d[_0x544304(0x15c)]);!_0x47d5bd&&(_0x47d5bd=[],serviceGroups[_0x544304(0x14d)](_0x12970d[_0x544304(0x15c)],_0x47d5bd)),_0x47d5bd[_0x544304(0x163)](_0x12970d);}}function registerService(_0x4c1549,_0x2a43f7,_0xd5c8ba){const _0x361085=a30_0xcfad;registerDefinitions(_0x2a43f7);const _0x410f36=_0x4da195=>_0x4da195===_0x361085(0x154)?'':_0x4da195==='write'?_0x361085(0x158):_0x361085(0x141),_0x2b5ab5={'service':_0x2a43f7[0x0][_0x361085(0x15c)],'label':_0x4c1549,'commands':_0x2a43f7[_0x361085(0x165)](_0x3dab80=>({'command':_0x3dab80['command'],'description':_0x3dab80[_0x361085(0x15e)],'tag':_0x410f36(_0x3dab80[_0x361085(0x144)])})),'defaultCommand':_0xd5c8ba?.[_0x361085(0x159)]??(_0xd5c8ba?.['isSingleCommand']?_0x2a43f7[0x0][_0x361085(0x164)]:undefined),'isSingleCommand':_0xd5c8ba?.['isSingleCommand']};serviceRegistry['push'](_0x2b5ab5),serviceByName[_0x361085(0x14d)](_0x2b5ab5[_0x361085(0x15c)],_0x2b5ab5);}registerService(a30_0x2e8088(0x146),authDefinitions,{'defaultCommand':'login'}),registerService(a30_0x2e8088(0x16c),apiDocDefinitions),registerService(a30_0x2e8088(0x166),datasetDefinitions),registerService(a30_0x2e8088(0x155),dataDefinitions),registerService(a30_0x2e8088(0x147),sqlDefinitions),registerService(a30_0x2e8088(0x15a),bffDefinitions),registerService(a30_0x2e8088(0x148),personalBffDefinitions),registerService('Artifacts',artifactDefinitions),registerService('Knowledge\x20Base',kbDefinitions),registerService(a30_0x2e8088(0x169),appDefinitions,{'defaultCommand':a30_0x2e8088(0x161)}),registerService(a30_0x2e8088(0x142),workspaceDefinitions),registerService(a30_0x2e8088(0x150),configDefinitions,{'defaultCommand':a30_0x2e8088(0x161)}),registerService(a30_0x2e8088(0x14e),serviceDefinitions,{'defaultCommand':a30_0x2e8088(0x161)}),registerService(a30_0x2e8088(0x151),skillDefinitions,{'defaultCommand':a30_0x2e8088(0x152)}),registerService('CLI\x20Built-in\x20Skill',cliSkillDefinitions,{'defaultCommand':a30_0x2e8088(0x152)}),registerService(a30_0x2e8088(0x156),[updateDefinition],{'defaultCommand':a30_0x2e8088(0x14a),'isSingleCommand':!![]}),registerService(a30_0x2e8088(0x16a),[doctorDefinition],{'isSingleCommand':!![]}),registerService('Schema',[schemaDefinition],{'isSingleCommand':!![]}),registerService(a30_0x2e8088(0x168),logsDefinitions,{'defaultCommand':a30_0x2e8088(0x14c)});export function findDefinition(_0x4d0af2,_0x5b752e){const _0x34c854=a30_0x2e8088;return definitions[_0x34c854(0x145)](_0x4d0af2+':'+_0x5b752e);}export function isKnownService(_0x355833){const _0x136ff4=a30_0x2e8088;return serviceByName[_0x136ff4(0x15b)](_0x355833);}export function getServiceEntry(_0xc842f4){const _0x2a6542=a30_0x2e8088;return serviceByName[_0x2a6542(0x145)](_0xc842f4);}export function getAllDefinitions(){const _0x50b05c=a30_0x2e8088;return Array['from'](definitions[_0x50b05c(0x15d)]());}
@@ -1 +1 @@
1
- const a31_0x7c2c74=a31_0x4110;(function(_0xfdd188,_0x723df){const _0x5e1cd4=a31_0x4110,_0xae9e7=_0xfdd188();while(!![]){try{const _0x13dbfb=-parseInt(_0x5e1cd4(0xb1))/0x1+-parseInt(_0x5e1cd4(0xb6))/0x2*(-parseInt(_0x5e1cd4(0xb0))/0x3)+-parseInt(_0x5e1cd4(0xb8))/0x4*(parseInt(_0x5e1cd4(0xae))/0x5)+-parseInt(_0x5e1cd4(0xb3))/0x6+-parseInt(_0x5e1cd4(0xb7))/0x7+-parseInt(_0x5e1cd4(0xaf))/0x8+parseInt(_0x5e1cd4(0xb2))/0x9;if(_0x13dbfb===_0x723df)break;else _0xae9e7['push'](_0xae9e7['shift']());}catch(_0x2265df){_0xae9e7['push'](_0xae9e7['shift']());}}}(a31_0x1c94,0x85c24));import{buildSchemaPayload}from'../framework/schema-export.js';function a31_0x4110(_0x10c46e,_0x295cea){_0x10c46e=_0x10c46e-0xad;const _0x1c94bd=a31_0x1c94();let _0x4110f8=_0x1c94bd[_0x10c46e];return _0x4110f8;}async function execute(_0x46a96a){const _0x2d89a7=await buildSchemaPayload();return{'ok':!![],'data':_0x2d89a7};}export const schemaDefinition={'service':'schema','command':a31_0x7c2c74(0xad),'description':a31_0x7c2c74(0xb5),'risk':a31_0x7c2c74(0xb4),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};function a31_0x1c94(){const _0x1234ae=['24665868drPoVN','4591290xUrdTr','read','Export\x20machine-readable\x20command\x20schema\x20(JSON)','2136pWDRHY','1966160OHnmUa','4pbUwIr','export','4289810exubot','8215848FRLQYw','2676LnrhLZ','214394PSOPKP'];a31_0x1c94=function(){return _0x1234ae;};return a31_0x1c94();}
1
+ function a31_0x1420(_0x59c954,_0x29dced){_0x59c954=_0x59c954-0xf3;const _0x2dd7e4=a31_0x2dd7();let _0x142021=_0x2dd7e4[_0x59c954];return _0x142021;}const a31_0x5f513d=a31_0x1420;(function(_0x43aae1,_0x9277b3){const _0x109b68=a31_0x1420,_0x224f26=_0x43aae1();while(!![]){try{const _0x3d8fc8=parseInt(_0x109b68(0xfa))/0x1+-parseInt(_0x109b68(0xfd))/0x2+-parseInt(_0x109b68(0xf7))/0x3*(parseInt(_0x109b68(0xfe))/0x4)+-parseInt(_0x109b68(0xf4))/0x5*(parseInt(_0x109b68(0xff))/0x6)+parseInt(_0x109b68(0xf3))/0x7*(-parseInt(_0x109b68(0xf6))/0x8)+parseInt(_0x109b68(0xf8))/0x9+-parseInt(_0x109b68(0x100))/0xa*(-parseInt(_0x109b68(0xfb))/0xb);if(_0x3d8fc8===_0x9277b3)break;else _0x224f26['push'](_0x224f26['shift']());}catch(_0x2278d2){_0x224f26['push'](_0x224f26['shift']());}}}(a31_0x2dd7,0xcbbd7));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x30e012){const _0x42535d=await buildSchemaPayload();return{'ok':!![],'data':_0x42535d};}export const schemaDefinition={'service':a31_0x5f513d(0xf5),'command':a31_0x5f513d(0xf9),'description':'Export\x20machine-readable\x20command\x20schema\x20(JSON)','risk':a31_0x5f513d(0xfc),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};function a31_0x2dd7(){const _0x221287=['5QMQGYG','schema','141928vYyEso','771lvGxvc','5850513QqgYVX','export','542859EQfPRf','44UaGxQJ','read','2590690CwOuyK','2300MYaujW','7296690GrIhTL','6905260iFKCHF','182WzWqiR'];a31_0x2dd7=function(){return _0x221287;};return a31_0x2dd7();}
@@ -1 +1 @@
1
- (function(_0x4d337b,_0x45d555){const _0x190b8a=a32_0x4507,_0x1f735e=_0x4d337b();while(!![]){try{const _0x389804=parseInt(_0x190b8a(0x154))/0x1+-parseInt(_0x190b8a(0x155))/0x2+parseInt(_0x190b8a(0x128))/0x3+-parseInt(_0x190b8a(0x12e))/0x4*(-parseInt(_0x190b8a(0x15c))/0x5)+-parseInt(_0x190b8a(0x135))/0x6*(parseInt(_0x190b8a(0x168))/0x7)+-parseInt(_0x190b8a(0x142))/0x8+parseInt(_0x190b8a(0x11f))/0x9*(-parseInt(_0x190b8a(0x160))/0xa);if(_0x389804===_0x45d555)break;else _0x1f735e['push'](_0x1f735e['shift']());}catch(_0x577b7b){_0x1f735e['push'](_0x1f735e['shift']());}}}(a32_0x48e8,0x210b8));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(_0x405b8c,_0x250256){const _0x4b0613=a32_0x4507,_0x240106=listLocalServiceTrees();let _0x5e4d27;for(const _0x460577 of _0x240106){const _0x151af1=matchServiceTreeCommand(_0x460577,_0x405b8c);if(!_0x151af1)continue;(!_0x5e4d27||_0x151af1['command'][_0x4b0613(0x11c)][_0x4b0613(0x149)]>_0x5e4d27[_0x4b0613(0x147)]['fullPath']['length'])&&(_0x5e4d27={'tree':_0x460577,'command':_0x151af1[_0x4b0613(0x147)],'remainingArgs':_0x151af1['remainingArgs']});}if(!_0x5e4d27)return undefined;const _0x25c0ed={..._0x250256};return applyAppBinding(_0x5e4d27['tree'],_0x5e4d27[_0x4b0613(0x147)],_0x25c0ed),{'definition':buildDynamicCommandDefinition(_0x5e4d27[_0x4b0613(0x16f)],_0x5e4d27[_0x4b0613(0x147)]),'args':_0x5e4d27['remainingArgs'],'flags':_0x25c0ed,'tree':_0x5e4d27[_0x4b0613(0x16f)],'command':_0x5e4d27['command']};}function a32_0x48e8(){const _0x3e972f=['\x20\x20\x20\x20kind:\x20\x20\x20\x20','name','datasetCode','sqlCode','env','required','const','target','code','type','1230240BnLTRp','Use\x20`','flags','tableName','username','command','userName','length','\x20\x20\x20\x20sqlCode:\x20','params','default','description','commands','`\x20to\x20inspect\x20the\x20manifest.','join','bff','read','mapTo','168165kZVYxv','278268DYbYBn','datatable','Unsupported\x20service\x20target\x20kind:\x20','kind','cliName','\x20requires\x20target.scriptName.','\x20\x20\x20\x20scriptName:\x20','10whtRvI','data','filter','trim','3340cCEjIx','nickName','envName','fromEntries','source','scriptName','\x20\x20SERVICE\x20TREE\x20TARGET','cliPath','7WLEzFb','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','userId','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','ctx.','json','app','tree','slice','args','now','\x20\x20[','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','operator','push','boolean','bffId','employeeId','service','startsWith','string','number','\x20<command>\x20[flags]','fullPath','find','context.','5238BRsFMV','\x20->\x20','bffCode','Run\x20service\x20command\x20','Service\x20command\x20','risk','nickname','appcode','\x20service\x20detail\x20--service\x20','791796fcSmUu','map','appCode','\x20\x20\x20\x20datatable:\x20','some','Preview\x20dynamic\x20service\x20command:\x20','417704MAfUGE','\x20requires\x20target.sqlCode.','tenantCode','rawFlags','appBindings','\x20\x20MAP\x20TO','appRef','109770qxuKbS','\x20\x20\x20\x20datasetCode:\x20','validation'];a32_0x48e8=function(){return _0x3e972f;};return a32_0x48e8();}export function generateDynamicServiceHelp(_0x33837e){const _0x4d7d90=a32_0x4507,_0x2894f4=listLocalServiceTrees()['find'](_0x14eb2b=>_0x14eb2b[_0x4d7d90(0x117)][_0x4d7d90(0x140)]===_0x33837e);if(!_0x2894f4)return undefined;const _0x4bce0b=[CLI_BIN_NAME+'\x20'+_0x33837e+_0x4d7d90(0x11b),'',_0x2894f4[_0x4d7d90(0x117)][_0x4d7d90(0x139)]||_0x33837e,_0x2894f4[_0x4d7d90(0x117)]['description']?'\x20\x20'+_0x2894f4[_0x4d7d90(0x117)][_0x4d7d90(0x14d)]:'','','Commands:',..._0x2894f4[_0x4d7d90(0x14e)][_0x4d7d90(0x129)](_0x53a4bb=>{const _0x225671=_0x4d7d90,_0x27145b=_0x53a4bb[_0x225671(0x11c)][_0x225671(0x170)](0x1)[_0x225671(0x150)]('\x20'),_0x184e05=_0x53a4bb[_0x225671(0x124)]===_0x225671(0x152)?'':'\x20['+_0x53a4bb['risk']+']';return'\x20\x20'+_0x27145b['padEnd'](0x18)+'\x20'+(_0x53a4bb['description']||'')+_0x184e05;}),'',_0x4d7d90(0x143)+CLI_BIN_NAME+_0x4d7d90(0x127)+_0x33837e+_0x4d7d90(0x14f)][_0x4d7d90(0x15e)](Boolean);return _0x4bce0b[_0x4d7d90(0x150)]('\x0a');}function a32_0x4507(_0xe4437f,_0x2538c8){_0xe4437f=_0xe4437f-0x117;const _0x48e85b=a32_0x48e8();let _0x4507f=_0x48e85b[_0xe4437f];return _0x4507f;}export function listDynamicServiceEntries(){const _0x306d18=a32_0x4507;return listLocalServices()[_0x306d18(0x129)](_0x45317f=>{const _0x1f0335=_0x306d18,_0x48fb13=_0x45317f['normalizedManifest'];return{'service':_0x48fb13[_0x1f0335(0x117)][_0x1f0335(0x140)],'label':_0x48fb13[_0x1f0335(0x117)][_0x1f0335(0x139)]||_0x48fb13[_0x1f0335(0x117)][_0x1f0335(0x140)],'commands':_0x48fb13[_0x1f0335(0x14e)][_0x1f0335(0x129)](_0xcb0d25=>({'command':dynamicCommandName(_0xcb0d25),'description':_0xcb0d25[_0x1f0335(0x14d)]||_0x1f0335(0x122)+_0xcb0d25[_0x1f0335(0x167)],'tag':riskTag(_0xcb0d25['risk'])}))};});}export function getDynamicServiceEntry(_0x2422f8){const _0x41c7c6=a32_0x4507;return listDynamicServiceEntries()[_0x41c7c6(0x11d)](_0x15d6e0=>_0x15d6e0['service']===_0x2422f8);}export function listDynamicServiceDefinitions(_0x142fde){const _0x39a33e=a32_0x4507;return listLocalServiceTrees()[_0x39a33e(0x15e)](_0x420090=>!_0x142fde||_0x420090['service'][_0x39a33e(0x140)]===_0x142fde)['flatMap'](_0x4dcf6e=>_0x4dcf6e[_0x39a33e(0x14e)]['map'](_0x1839fd=>buildDynamicCommandDefinition(_0x4dcf6e,_0x1839fd)));}export function getDynamicServiceDefinitions(_0x288ee8){const _0x5b852a=a32_0x4507,_0x5e9fd9=listDynamicServiceDefinitions(_0x288ee8);return _0x5e9fd9[_0x5b852a(0x149)]>0x0?_0x5e9fd9:undefined;}export function findDynamicServiceDefinition(_0xb7300,_0x6a349a){const _0x4b8e54=a32_0x4507;return listDynamicServiceDefinitions(_0xb7300)[_0x4b8e54(0x11d)](_0x1cf02c=>_0x1cf02c[_0x4b8e54(0x147)]===_0x6a349a);}export function buildDynamicCommandDefinition(_0x497597,_0x2aa8e2){const _0x50ad74=a32_0x4507;return{'service':_0x497597['service']['code'],'command':dynamicCommandName(_0x2aa8e2),'description':_0x2aa8e2[_0x50ad74(0x14d)]||'Run\x20service\x20command\x20'+_0x2aa8e2[_0x50ad74(0x167)],'risk':_0x2aa8e2['risk'],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x2aa8e2[_0x50ad74(0x171)][_0x50ad74(0x129)](_0xe9635f=>({'name':_0xe9635f[_0x50ad74(0x139)],'description':_0xe9635f['description']||_0xe9635f[_0x50ad74(0x139)],'required':_0xe9635f[_0x50ad74(0x13d)]})),'flags':_0x2aa8e2[_0x50ad74(0x144)][_0x50ad74(0x129)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x2aa8e2),async 'dryRun'(_0x5110ab){const _0x3e03b6=_0x50ad74,_0x43844a=await compilePlan(_0x2aa8e2,_0x5110ab);return{'method':'SERVICE_TREE','url':_0x2aa8e2['cliPath'],'body':{'target':targetPreview(_0x43844a),'params':_0x43844a[_0x3e03b6(0x14b)]},'description':_0x3e03b6(0x12d)+_0x2aa8e2[_0x3e03b6(0x167)]};},async 'execute'(_0x1e4a9e){const _0x213b06=_0x50ad74,_0x5dac48=await compilePlan(_0x2aa8e2,_0x1e4a9e),_0x41c6e8=Date['now'](),_0x3327e7=await executePlan(_0x5dac48,_0x2aa8e2,_0x1e4a9e),_0x40b595=Date[_0x213b06(0x172)]()-_0x41c6e8;return{'ok':!![],'data':{'service':_0x497597['service'],'command':_0x2aa8e2[_0x213b06(0x167)],'target':targetPreview(_0x5dac48),'result':_0x3327e7,'elapsed':_0x40b595},'message':_0x213b06(0x123)+_0x2aa8e2['cliPath']+'\x20completed\x20in\x20'+_0x40b595+'ms'};}};}function dynamicCommandName(_0xd45369){const _0x3319ed=a32_0x4507;return _0xd45369[_0x3319ed(0x11c)]['slice'](0x1)['join']('\x20');}function riskTag(_0x2bc8b2){const _0x3a67d1=a32_0x4507;return _0x2bc8b2===_0x3a67d1(0x152)?'':_0x3a67d1(0x173)+_0x2bc8b2+']';}function flagToCommandFlag(_0xae1688){const _0x2d8c9=a32_0x4507;return{'name':_0xae1688[_0x2d8c9(0x159)],'type':_0xae1688[_0x2d8c9(0x141)]===_0x2d8c9(0x16d)?_0x2d8c9(0x119):_0xae1688['type'],'description':_0xae1688[_0x2d8c9(0x14d)]||_0xae1688[_0x2d8c9(0x139)],'required':_0xae1688[_0x2d8c9(0x13d)],'default':isPrimitiveFlagDefault(_0xae1688[_0x2d8c9(0x14c)])?_0xae1688[_0x2d8c9(0x14c)]:undefined,'enum':_0xae1688['enum']};}async function compilePlan(_0x4d7bd3,_0x5745a0){const _0x2edfc7=a32_0x4507;return compileServiceTreeCommand(_0x4d7bd3,{'flags':_0x5745a0[_0x2edfc7(0x131)],'args':_0x5745a0[_0x2edfc7(0x171)],'context':await buildServiceContext(_0x4d7bd3,_0x5745a0)});}async function buildServiceContext(_0x3a3e94,_0x2cb040){const _0x27ee69=a32_0x4507,_0xa75d96={'appCode':_0x2cb040[_0x27ee69(0x12a)],'env':_0x2cb040[_0x27ee69(0x162)],'envName':_0x2cb040['envName']};if(!usesRuntimeContext(_0x3a3e94))return _0xa75d96;const _0x1c3d4f=await getLoginUserInfo(),_0x16711f=pickFirst(_0x1c3d4f[_0x27ee69(0x16a)],_0x1c3d4f['id']);return{..._0xa75d96,'user':_0x1c3d4f,'userId':_0x16711f,'id':_0x1c3d4f['id'],'username':pickFirst(_0x1c3d4f[_0x27ee69(0x146)],_0x1c3d4f[_0x27ee69(0x148)],_0x1c3d4f['loginName']),'userName':_0x1c3d4f[_0x27ee69(0x148)],'nickname':pickFirst(_0x1c3d4f[_0x27ee69(0x125)],_0x1c3d4f['nickName']),'nickName':_0x1c3d4f[_0x27ee69(0x161)],'tenantCode':_0x1c3d4f[_0x27ee69(0x130)],'employeeId':_0x1c3d4f[_0x27ee69(0x179)]};}function usesRuntimeContext(_0x33f4d){const _0x497152=a32_0x4507;return _0x33f4d['mapTo'][_0x497152(0x12c)](_0x340d9c=>typeof _0x340d9c[_0x497152(0x164)]===_0x497152(0x119)&&(_0x340d9c[_0x497152(0x164)]['startsWith'](_0x497152(0x11e))||_0x340d9c[_0x497152(0x164)][_0x497152(0x118)](_0x497152(0x16c))));}function pickFirst(..._0x5dc99a){const _0x15fc9e=a32_0x4507;return _0x5dc99a[_0x15fc9e(0x11d)](_0x4d7c2d=>_0x4d7c2d!==undefined&&_0x4d7c2d!==null);}async function executePlan(_0x38d0c4,_0x3b2512,_0x18792a){const _0x3fffc1=a32_0x4507;if(_0x38d0c4['kind']===_0x3fffc1(0x15d)){const _0x227e8b=await resolveDatasetCode(_0x38d0c4,_0x3b2512,_0x18792a);return executeData(_0x227e8b,_0x38d0c4[_0x3fffc1(0x147)],_0x38d0c4[_0x3fffc1(0x14b)]);}if(_0x38d0c4[_0x3fffc1(0x158)]==='sql'){if(!_0x38d0c4[_0x3fffc1(0x13b)])throw CliErrors['validation'](_0x3fffc1(0x123)+_0x3b2512['cliPath']+_0x3fffc1(0x12f));return executeSdkSql(_0x38d0c4['sqlCode'],normalizeScalarParams(_0x38d0c4[_0x3fffc1(0x14b)]));}if(_0x38d0c4[_0x3fffc1(0x158)]===_0x3fffc1(0x151)){const _0x2d8716=_0x38d0c4['scriptName']||_0x38d0c4[_0x3fffc1(0x121)]||(_0x38d0c4['bffId']==null?'':String(_0x38d0c4[_0x3fffc1(0x178)]));if(!_0x2d8716)throw CliErrors['validation'](_0x3fffc1(0x123)+_0x3b2512[_0x3fffc1(0x167)]+_0x3fffc1(0x15a));return executeSdkBff(_0x2d8716,_0x38d0c4[_0x3fffc1(0x14b)]);}throw CliErrors[_0x3fffc1(0x137)](_0x3fffc1(0x157)+_0x38d0c4[_0x3fffc1(0x158)]);}async function resolveDatasetCode(_0x148644,_0x142f3f,_0xae7baf){const _0x52234c=a32_0x4507;if(_0x148644[_0x52234c(0x13a)])return _0x148644[_0x52234c(0x13a)];if(!_0x148644[_0x52234c(0x156)])throw CliErrors['validation'](_0x52234c(0x123)+_0x142f3f[_0x52234c(0x167)]+_0x52234c(0x16b));const _0x308e80=await listDatasets(_0xae7baf[_0x52234c(0x12a)]),_0x197bf7=_0x308e80['find'](_0x1f7aec=>_0x1f7aec['dbtableConfig']?.[_0x52234c(0x145)]===_0x148644['datatable']);if(!_0x197bf7?.['code'])throw CliErrors[_0x52234c(0x137)]('Cannot\x20resolve\x20datatable\x20\x22'+_0x148644['datatable']+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0xae7baf[_0x52234c(0x12a)]+'.',_0x52234c(0x169));return _0x197bf7['code'];}function applyAppBinding(_0x1fa822,_0x3f2cce,_0x1b867d){const _0x47185a=a32_0x4507,_0x460505=_0x3f2cce[_0x47185a(0x13f)][_0x47185a(0x134)];if(!_0x460505)return;const _0x42e12c=_0x1fa822[_0x47185a(0x132)][_0x460505];if(!_0x42e12c)throw CliErrors[_0x47185a(0x137)]('Unknown\x20appRef\x20\x22'+_0x460505+'\x22\x20in\x20service\x20command\x20'+_0x3f2cce[_0x47185a(0x167)]+'.',_0x47185a(0x174));const _0x5da647=_0x42e12c[_0x47185a(0x126)]||_0x42e12c[_0x47185a(0x12a)];_0x5da647&&!hasText(_0x1b867d['appcode'])&&(_0x1b867d[_0x47185a(0x126)]=_0x5da647),_0x42e12c[_0x47185a(0x16e)]&&!hasText(_0x1b867d['app'])&&!hasText(_0x1b867d['appcode'])&&(_0x1b867d['app']=_0x42e12c['app']),_0x42e12c[_0x47185a(0x13c)]&&!hasText(_0x1b867d[_0x47185a(0x13c)])&&(_0x1b867d[_0x47185a(0x13c)]=_0x42e12c[_0x47185a(0x13c)]);}function renderDynamicCommandHelp(_0x83b02a){const _0x5d1e43=a32_0x4507,_0x373b22=[_0x5d1e43(0x166),_0x5d1e43(0x138)+_0x83b02a[_0x5d1e43(0x13f)][_0x5d1e43(0x158)],'\x20\x20\x20\x20command:\x20'+_0x83b02a['target'][_0x5d1e43(0x147)]];if(_0x83b02a['target'][_0x5d1e43(0x13a)])_0x373b22[_0x5d1e43(0x176)](_0x5d1e43(0x136)+_0x83b02a[_0x5d1e43(0x13f)]['datasetCode']);if(_0x83b02a['target'][_0x5d1e43(0x156)])_0x373b22[_0x5d1e43(0x176)](_0x5d1e43(0x12b)+_0x83b02a[_0x5d1e43(0x13f)]['datatable']);if(_0x83b02a[_0x5d1e43(0x13f)]['sqlCode'])_0x373b22[_0x5d1e43(0x176)](_0x5d1e43(0x14a)+_0x83b02a['target'][_0x5d1e43(0x13b)]);if(_0x83b02a[_0x5d1e43(0x13f)]['scriptName'])_0x373b22[_0x5d1e43(0x176)](_0x5d1e43(0x15b)+_0x83b02a['target'][_0x5d1e43(0x165)]);if(_0x83b02a[_0x5d1e43(0x153)]['length']>0x0){_0x373b22[_0x5d1e43(0x176)]('',_0x5d1e43(0x133));for(const _0x382f86 of _0x83b02a['mapTo']){_0x373b22[_0x5d1e43(0x176)]('\x20\x20\x20\x20'+(_0x382f86[_0x5d1e43(0x164)]||_0x5d1e43(0x13e))+_0x5d1e43(0x120)+_0x382f86[_0x5d1e43(0x13f)]+(_0x382f86['operator']?'.'+_0x382f86[_0x5d1e43(0x175)]:''));}}return _0x373b22[_0x5d1e43(0x150)]('\x0a');}function targetPreview(_0x2749ef){const _0x68e862=a32_0x4507;return{'kind':_0x2749ef[_0x68e862(0x158)],'command':_0x2749ef['command'],'appRef':_0x2749ef[_0x68e862(0x134)],'datasetCode':_0x2749ef[_0x68e862(0x13a)],'datatable':_0x2749ef[_0x68e862(0x156)],'sqlCode':_0x2749ef[_0x68e862(0x13b)],'bffCode':_0x2749ef[_0x68e862(0x121)],'bffId':_0x2749ef[_0x68e862(0x178)],'scriptName':_0x2749ef[_0x68e862(0x165)]};}function normalizeScalarParams(_0x1e7f3c){const _0x5dbac7=a32_0x4507;return Object[_0x5dbac7(0x163)](Object['entries'](_0x1e7f3c)[_0x5dbac7(0x15e)](([,_0xd1107a])=>typeof _0xd1107a===_0x5dbac7(0x119)||typeof _0xd1107a===_0x5dbac7(0x11a)));}function hasText(_0x319e6f){const _0x4fdd88=a32_0x4507;return typeof _0x319e6f===_0x4fdd88(0x119)&&_0x319e6f[_0x4fdd88(0x15f)]()[_0x4fdd88(0x149)]>0x0;}function isPrimitiveFlagDefault(_0x182110){const _0x1eab71=a32_0x4507;return _0x182110===undefined||typeof _0x182110===_0x1eab71(0x119)||typeof _0x182110==='number'||typeof _0x182110===_0x1eab71(0x177);}
1
+ function a32_0x4610(){const _0x200cbd=['service','198aqKjoz','datatable','sqlCode','required','tree','validation','tableName','now','10FYhkeN','userName','number','Service\x20command\x20','default','3465935oTCyUm','startsWith','name','cliName','target','description','userId','mapTo','appRef','flags','ctx.','username','SERVICE_TREE','\x20\x20\x20\x20scriptName:\x20','map','fromEntries','find','envName','datasetCode','\x20\x20\x20\x20sqlCode:\x20','bffId','2174460eDAyyy','\x20\x20\x20\x20datatable:\x20','normalizedManifest','loginName','appBindings','`\x20to\x20inspect\x20the\x20manifest.','context.','scriptName','bffCode','nickName','\x20->\x20','commands','2783193RLnoxN','source','length','\x20\x20MAP\x20TO','rawFlags','risk','filter','Use\x20`','153848wswuav','cliPath','enum','Run\x20service\x20command\x20','300mgkwKt','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','110881NRQBdL','dbtableConfig','env','appcode','\x20\x20\x20\x20datasetCode:\x20','type','\x20requires\x20target.scriptName.','command','8TaOEnX','sql','Unknown\x20appRef\x20\x22','const','kind','512303gGzNkk','some','operator','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','params','Unsupported\x20service\x20target\x20kind:\x20','\x20completed\x20in\x20','appCode','employeeId','flatMap','15645GzcVyT','join','app','fullPath','push','string','Cannot\x20resolve\x20datatable\x20\x22','\x20\x20\x20\x20','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','slice','remainingArgs','\x20\x20[','code'];a32_0x4610=function(){return _0x200cbd;};return a32_0x4610();}(function(_0x36c138,_0x45365f){const _0x2a7f7c=a32_0x13b7,_0xa7bba0=_0x36c138();while(!![]){try{const _0x2ba7a4=parseInt(_0x2a7f7c(0x1aa))/0x1*(parseInt(_0x2a7f7c(0x1b2))/0x2)+parseInt(_0x2a7f7c(0x1c1))/0x3*(-parseInt(_0x2a7f7c(0x1a8))/0x4)+parseInt(_0x2a7f7c(0x1dd))/0x5+-parseInt(_0x2a7f7c(0x1f2))/0x6+-parseInt(_0x2a7f7c(0x19c))/0x7+-parseInt(_0x2a7f7c(0x1a4))/0x8*(-parseInt(_0x2a7f7c(0x1d0))/0x9)+parseInt(_0x2a7f7c(0x1d8))/0xa*(-parseInt(_0x2a7f7c(0x1b7))/0xb);if(_0x2ba7a4===_0x45365f)break;else _0xa7bba0['push'](_0xa7bba0['shift']());}catch(_0x2c212a){_0xa7bba0['push'](_0xa7bba0['shift']());}}}(a32_0x4610,0x58666));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';function a32_0x13b7(_0x107e03,_0x3bc556){_0x107e03=_0x107e03-0x199;const _0x4610c6=a32_0x4610();let _0x13b750=_0x4610c6[_0x107e03];return _0x13b750;}import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x1aca6c,_0x598ffd){const _0x58e30b=a32_0x13b7,_0x4233e9=listLocalServiceTrees();let _0x505c93;for(const _0x5a4317 of _0x4233e9){const _0x176166=matchServiceTreeCommand(_0x5a4317,_0x1aca6c);if(!_0x176166)continue;(!_0x505c93||_0x176166['command'][_0x58e30b(0x1c4)][_0x58e30b(0x19e)]>_0x505c93[_0x58e30b(0x1b1)][_0x58e30b(0x1c4)][_0x58e30b(0x19e)])&&(_0x505c93={'tree':_0x5a4317,'command':_0x176166[_0x58e30b(0x1b1)],'remainingArgs':_0x176166[_0x58e30b(0x1cc)]});}if(!_0x505c93)return undefined;const _0x512942={..._0x598ffd};return applyAppBinding(_0x505c93[_0x58e30b(0x1d4)],_0x505c93[_0x58e30b(0x1b1)],_0x512942),{'definition':buildDynamicCommandDefinition(_0x505c93[_0x58e30b(0x1d4)],_0x505c93['command']),'args':_0x505c93[_0x58e30b(0x1cc)],'flags':_0x512942,'tree':_0x505c93[_0x58e30b(0x1d4)],'command':_0x505c93[_0x58e30b(0x1b1)]};}export function generateDynamicServiceHelp(_0x445244){const _0x4c00c1=a32_0x13b7,_0x1a3254=listLocalServiceTrees()[_0x4c00c1(0x1ed)](_0x5190ef=>_0x5190ef['service'][_0x4c00c1(0x1ce)]===_0x445244);if(!_0x1a3254)return undefined;const _0x1912f3=[CLI_BIN_NAME+'\x20'+_0x445244+'\x20<command>\x20[flags]','',_0x1a3254[_0x4c00c1(0x1cf)][_0x4c00c1(0x1df)]||_0x445244,_0x1a3254['service']['description']?'\x20\x20'+_0x1a3254[_0x4c00c1(0x1cf)][_0x4c00c1(0x1e2)]:'','','Commands:',..._0x1a3254[_0x4c00c1(0x19b)][_0x4c00c1(0x1eb)](_0x17f5f2=>{const _0xc38efc=_0x4c00c1,_0x5d313b=_0x17f5f2[_0xc38efc(0x1c4)][_0xc38efc(0x1cb)](0x1)[_0xc38efc(0x1c2)]('\x20'),_0x4a0139=_0x17f5f2['risk']==='read'?'':'\x20['+_0x17f5f2[_0xc38efc(0x1a1)]+']';return'\x20\x20'+_0x5d313b['padEnd'](0x18)+'\x20'+(_0x17f5f2['description']||'')+_0x4a0139;}),'',_0x4c00c1(0x1a3)+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x445244+_0x4c00c1(0x1f7)]['filter'](Boolean);return _0x1912f3[_0x4c00c1(0x1c2)]('\x0a');}export function listDynamicServiceEntries(){const _0x1bf893=a32_0x13b7;return listLocalServices()[_0x1bf893(0x1eb)](_0x754e1a=>{const _0x50a112=_0x1bf893,_0xf23d88=_0x754e1a[_0x50a112(0x1f4)];return{'service':_0xf23d88[_0x50a112(0x1cf)][_0x50a112(0x1ce)],'label':_0xf23d88[_0x50a112(0x1cf)][_0x50a112(0x1df)]||_0xf23d88[_0x50a112(0x1cf)][_0x50a112(0x1ce)],'commands':_0xf23d88[_0x50a112(0x19b)][_0x50a112(0x1eb)](_0x16bbf0=>({'command':dynamicCommandName(_0x16bbf0),'description':_0x16bbf0[_0x50a112(0x1e2)]||_0x50a112(0x1a7)+_0x16bbf0[_0x50a112(0x1a5)],'tag':riskTag(_0x16bbf0[_0x50a112(0x1a1)])}))};});}export function getDynamicServiceEntry(_0xb15be){const _0xf71e2e=a32_0x13b7;return listDynamicServiceEntries()[_0xf71e2e(0x1ed)](_0x15a9bb=>_0x15a9bb[_0xf71e2e(0x1cf)]===_0xb15be);}export function listDynamicServiceDefinitions(_0x35efbc){const _0x1c12cc=a32_0x13b7;return listLocalServiceTrees()[_0x1c12cc(0x1a2)](_0x34ede7=>!_0x35efbc||_0x34ede7[_0x1c12cc(0x1cf)][_0x1c12cc(0x1ce)]===_0x35efbc)[_0x1c12cc(0x1c0)](_0xfa50e=>_0xfa50e[_0x1c12cc(0x19b)][_0x1c12cc(0x1eb)](_0x1af0d=>buildDynamicCommandDefinition(_0xfa50e,_0x1af0d)));}export function getDynamicServiceDefinitions(_0x4dd3f1){const _0x56e6cf=a32_0x13b7,_0x31610f=listDynamicServiceDefinitions(_0x4dd3f1);return _0x31610f[_0x56e6cf(0x19e)]>0x0?_0x31610f:undefined;}export function findDynamicServiceDefinition(_0x1c8c4b,_0x3b777c){const _0x59a5e4=a32_0x13b7;return listDynamicServiceDefinitions(_0x1c8c4b)[_0x59a5e4(0x1ed)](_0x1b876c=>_0x1b876c['command']===_0x3b777c);}export function buildDynamicCommandDefinition(_0x53f5f4,_0x115338){const _0x53a87f=a32_0x13b7;return{'service':_0x53f5f4[_0x53a87f(0x1cf)][_0x53a87f(0x1ce)],'command':dynamicCommandName(_0x115338),'description':_0x115338[_0x53a87f(0x1e2)]||'Run\x20service\x20command\x20'+_0x115338[_0x53a87f(0x1a5)],'risk':_0x115338[_0x53a87f(0x1a1)],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x115338['args'][_0x53a87f(0x1eb)](_0x4a0b44=>({'name':_0x4a0b44['name'],'description':_0x4a0b44[_0x53a87f(0x1e2)]||_0x4a0b44[_0x53a87f(0x1df)],'required':_0x4a0b44[_0x53a87f(0x1d3)]})),'flags':_0x115338[_0x53a87f(0x1e6)][_0x53a87f(0x1eb)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x115338),async 'dryRun'(_0x197009){const _0x54cc73=_0x53a87f,_0x232203=await compilePlan(_0x115338,_0x197009);return{'method':_0x54cc73(0x1e9),'url':_0x115338[_0x54cc73(0x1a5)],'body':{'target':targetPreview(_0x232203),'params':_0x232203[_0x54cc73(0x1bb)]},'description':'Preview\x20dynamic\x20service\x20command:\x20'+_0x115338[_0x54cc73(0x1a5)]};},async 'execute'(_0x2257e6){const _0x261d72=_0x53a87f,_0x53ed52=await compilePlan(_0x115338,_0x2257e6),_0x37be32=Date[_0x261d72(0x1d7)](),_0x4f18ea=await executePlan(_0x53ed52,_0x115338,_0x2257e6),_0x5ea5ee=Date[_0x261d72(0x1d7)]()-_0x37be32;return{'ok':!![],'data':{'service':_0x53f5f4[_0x261d72(0x1cf)],'command':_0x115338[_0x261d72(0x1a5)],'target':targetPreview(_0x53ed52),'result':_0x4f18ea,'elapsed':_0x5ea5ee},'message':'Service\x20command\x20'+_0x115338[_0x261d72(0x1a5)]+_0x261d72(0x1bd)+_0x5ea5ee+'ms'};}};}function dynamicCommandName(_0x4424b3){const _0x100eee=a32_0x13b7;return _0x4424b3[_0x100eee(0x1c4)][_0x100eee(0x1cb)](0x1)[_0x100eee(0x1c2)]('\x20');}function riskTag(_0xa16942){const _0x5f125f=a32_0x13b7;return _0xa16942==='read'?'':_0x5f125f(0x1cd)+_0xa16942+']';}function flagToCommandFlag(_0x3caa6d){const _0x57766a=a32_0x13b7;return{'name':_0x3caa6d[_0x57766a(0x1e0)],'type':_0x3caa6d[_0x57766a(0x1af)]==='json'?'string':_0x3caa6d[_0x57766a(0x1af)],'description':_0x3caa6d[_0x57766a(0x1e2)]||_0x3caa6d['name'],'required':_0x3caa6d['required'],'default':isPrimitiveFlagDefault(_0x3caa6d[_0x57766a(0x1dc)])?_0x3caa6d[_0x57766a(0x1dc)]:undefined,'enum':_0x3caa6d[_0x57766a(0x1a6)]};}async function compilePlan(_0x564392,_0x542c54){const _0x273c3a=a32_0x13b7;return compileServiceTreeCommand(_0x564392,{'flags':_0x542c54[_0x273c3a(0x1a0)],'args':_0x542c54['args'],'context':await buildServiceContext(_0x564392,_0x542c54)});}async function buildServiceContext(_0x3ee4fd,_0x2fc7b0){const _0x530574=a32_0x13b7,_0x2c7470={'appCode':_0x2fc7b0[_0x530574(0x1be)],'env':_0x2fc7b0[_0x530574(0x1ee)],'envName':_0x2fc7b0[_0x530574(0x1ee)]};if(!usesRuntimeContext(_0x3ee4fd))return _0x2c7470;const _0x37a5a7=await getLoginUserInfo(),_0x31a9c6=pickFirst(_0x37a5a7[_0x530574(0x1e3)],_0x37a5a7['id']);return{..._0x2c7470,'user':_0x37a5a7,'userId':_0x31a9c6,'id':_0x37a5a7['id'],'username':pickFirst(_0x37a5a7[_0x530574(0x1e8)],_0x37a5a7[_0x530574(0x1d9)],_0x37a5a7[_0x530574(0x1f5)]),'userName':_0x37a5a7[_0x530574(0x1d9)],'nickname':pickFirst(_0x37a5a7['nickname'],_0x37a5a7[_0x530574(0x199)]),'nickName':_0x37a5a7[_0x530574(0x199)],'tenantCode':_0x37a5a7['tenantCode'],'employeeId':_0x37a5a7[_0x530574(0x1bf)]};}function usesRuntimeContext(_0x672acd){const _0x4269f8=a32_0x13b7;return _0x672acd[_0x4269f8(0x1e4)][_0x4269f8(0x1b8)](_0x2df391=>typeof _0x2df391[_0x4269f8(0x19d)]===_0x4269f8(0x1c6)&&(_0x2df391[_0x4269f8(0x19d)][_0x4269f8(0x1de)](_0x4269f8(0x1f8))||_0x2df391[_0x4269f8(0x19d)][_0x4269f8(0x1de)](_0x4269f8(0x1e7))));}function pickFirst(..._0x4c5fb1){const _0xd21410=a32_0x13b7;return _0x4c5fb1[_0xd21410(0x1ed)](_0x55a1de=>_0x55a1de!==undefined&&_0x55a1de!==null);}async function executePlan(_0x4586f3,_0x2fda15,_0x1d94fd){const _0x395407=a32_0x13b7;if(_0x4586f3[_0x395407(0x1b6)]==='data'){const _0x1fe00d=await resolveDatasetCode(_0x4586f3,_0x2fda15,_0x1d94fd);return executeData(_0x1fe00d,_0x4586f3['command'],_0x4586f3[_0x395407(0x1bb)]);}if(_0x4586f3['kind']===_0x395407(0x1b3)){if(!_0x4586f3['sqlCode'])throw CliErrors[_0x395407(0x1d5)](_0x395407(0x1db)+_0x2fda15[_0x395407(0x1a5)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x4586f3[_0x395407(0x1d2)],normalizeScalarParams(_0x4586f3[_0x395407(0x1bb)]));}if(_0x4586f3[_0x395407(0x1b6)]==='bff'){const _0xa2d6cd=_0x4586f3[_0x395407(0x1f9)]||_0x4586f3[_0x395407(0x1fa)]||(_0x4586f3['bffId']==null?'':String(_0x4586f3[_0x395407(0x1f1)]));if(!_0xa2d6cd)throw CliErrors['validation'](_0x395407(0x1db)+_0x2fda15[_0x395407(0x1a5)]+_0x395407(0x1b0));return executeSdkBff(_0xa2d6cd,_0x4586f3[_0x395407(0x1bb)]);}throw CliErrors['validation'](_0x395407(0x1bc)+_0x4586f3[_0x395407(0x1b6)]);}async function resolveDatasetCode(_0x522092,_0x392e03,_0x5c0a11){const _0x43338e=a32_0x13b7;if(_0x522092[_0x43338e(0x1ef)])return _0x522092[_0x43338e(0x1ef)];if(!_0x522092[_0x43338e(0x1d1)])throw CliErrors[_0x43338e(0x1d5)]('Service\x20command\x20'+_0x392e03[_0x43338e(0x1a5)]+_0x43338e(0x1ba));const _0x44aeab=await listDatasets(_0x5c0a11[_0x43338e(0x1be)]),_0x925328=_0x44aeab['find'](_0xa1f00a=>_0xa1f00a[_0x43338e(0x1ab)]?.[_0x43338e(0x1d6)]===_0x522092[_0x43338e(0x1d1)]);if(!_0x925328?.[_0x43338e(0x1ce)])throw CliErrors[_0x43338e(0x1d5)](_0x43338e(0x1c7)+_0x522092[_0x43338e(0x1d1)]+_0x43338e(0x1ca)+_0x5c0a11[_0x43338e(0x1be)]+'.',_0x43338e(0x1c9));return _0x925328[_0x43338e(0x1ce)];}function applyAppBinding(_0x6cb89b,_0x560c81,_0x21bfa1){const _0x3a3ac8=a32_0x13b7,_0xaf5a2a=_0x560c81['target']['appRef'];if(!_0xaf5a2a)return;const _0x32e5ce=_0x6cb89b[_0x3a3ac8(0x1f6)][_0xaf5a2a];if(!_0x32e5ce)throw CliErrors[_0x3a3ac8(0x1d5)](_0x3a3ac8(0x1b4)+_0xaf5a2a+'\x22\x20in\x20service\x20command\x20'+_0x560c81[_0x3a3ac8(0x1a5)]+'.',_0x3a3ac8(0x1a9));const _0x62ea4f=_0x32e5ce['appcode']||_0x32e5ce[_0x3a3ac8(0x1be)];_0x62ea4f&&!hasText(_0x21bfa1[_0x3a3ac8(0x1ad)])&&(_0x21bfa1[_0x3a3ac8(0x1ad)]=_0x62ea4f),_0x32e5ce[_0x3a3ac8(0x1c3)]&&!hasText(_0x21bfa1[_0x3a3ac8(0x1c3)])&&!hasText(_0x21bfa1[_0x3a3ac8(0x1ad)])&&(_0x21bfa1[_0x3a3ac8(0x1c3)]=_0x32e5ce[_0x3a3ac8(0x1c3)]),_0x32e5ce[_0x3a3ac8(0x1ac)]&&!hasText(_0x21bfa1[_0x3a3ac8(0x1ac)])&&(_0x21bfa1[_0x3a3ac8(0x1ac)]=_0x32e5ce[_0x3a3ac8(0x1ac)]);}function renderDynamicCommandHelp(_0x5c32c5){const _0x42cb23=a32_0x13b7,_0x1007a4=['\x20\x20SERVICE\x20TREE\x20TARGET','\x20\x20\x20\x20kind:\x20\x20\x20\x20'+_0x5c32c5[_0x42cb23(0x1e1)][_0x42cb23(0x1b6)],'\x20\x20\x20\x20command:\x20'+_0x5c32c5[_0x42cb23(0x1e1)]['command']];if(_0x5c32c5[_0x42cb23(0x1e1)][_0x42cb23(0x1ef)])_0x1007a4[_0x42cb23(0x1c5)](_0x42cb23(0x1ae)+_0x5c32c5[_0x42cb23(0x1e1)][_0x42cb23(0x1ef)]);if(_0x5c32c5['target'][_0x42cb23(0x1d1)])_0x1007a4['push'](_0x42cb23(0x1f3)+_0x5c32c5[_0x42cb23(0x1e1)]['datatable']);if(_0x5c32c5[_0x42cb23(0x1e1)][_0x42cb23(0x1d2)])_0x1007a4[_0x42cb23(0x1c5)](_0x42cb23(0x1f0)+_0x5c32c5['target'][_0x42cb23(0x1d2)]);if(_0x5c32c5[_0x42cb23(0x1e1)][_0x42cb23(0x1f9)])_0x1007a4['push'](_0x42cb23(0x1ea)+_0x5c32c5[_0x42cb23(0x1e1)][_0x42cb23(0x1f9)]);if(_0x5c32c5[_0x42cb23(0x1e4)]['length']>0x0){_0x1007a4['push']('',_0x42cb23(0x19f));for(const _0x5adeb2 of _0x5c32c5[_0x42cb23(0x1e4)]){_0x1007a4['push'](_0x42cb23(0x1c8)+(_0x5adeb2[_0x42cb23(0x19d)]||_0x42cb23(0x1b5))+_0x42cb23(0x19a)+_0x5adeb2[_0x42cb23(0x1e1)]+(_0x5adeb2[_0x42cb23(0x1b9)]?'.'+_0x5adeb2[_0x42cb23(0x1b9)]:''));}}return _0x1007a4[_0x42cb23(0x1c2)]('\x0a');}function targetPreview(_0x1906df){const _0x7756dc=a32_0x13b7;return{'kind':_0x1906df[_0x7756dc(0x1b6)],'command':_0x1906df[_0x7756dc(0x1b1)],'appRef':_0x1906df[_0x7756dc(0x1e5)],'datasetCode':_0x1906df[_0x7756dc(0x1ef)],'datatable':_0x1906df['datatable'],'sqlCode':_0x1906df[_0x7756dc(0x1d2)],'bffCode':_0x1906df[_0x7756dc(0x1fa)],'bffId':_0x1906df[_0x7756dc(0x1f1)],'scriptName':_0x1906df[_0x7756dc(0x1f9)]};}function normalizeScalarParams(_0x3d522a){const _0x156dc1=a32_0x13b7;return Object[_0x156dc1(0x1ec)](Object['entries'](_0x3d522a)['filter'](([,_0x334b19])=>typeof _0x334b19===_0x156dc1(0x1c6)||typeof _0x334b19===_0x156dc1(0x1da)));}function hasText(_0x5ae155){const _0x3cd6d5=a32_0x13b7;return typeof _0x5ae155===_0x3cd6d5(0x1c6)&&_0x5ae155['trim']()[_0x3cd6d5(0x19e)]>0x0;}function isPrimitiveFlagDefault(_0x3f2a93){const _0x45687b=a32_0x13b7;return _0x3f2a93===undefined||typeof _0x3f2a93===_0x45687b(0x1c6)||typeof _0x3f2a93==='number'||typeof _0x3f2a93==='boolean';}
@@ -1 +1 @@
1
- const a33_0x1d4e3b=a33_0x42e4;(function(_0x45d26f,_0x143210){const _0x28c800=a33_0x42e4,_0x29de48=_0x45d26f();while(!![]){try{const _0x2d3b96=parseInt(_0x28c800(0x1eb))/0x1+-parseInt(_0x28c800(0x215))/0x2*(parseInt(_0x28c800(0x1f5))/0x3)+parseInt(_0x28c800(0x1de))/0x4+parseInt(_0x28c800(0x220))/0x5*(parseInt(_0x28c800(0x20d))/0x6)+parseInt(_0x28c800(0x1e8))/0x7+parseInt(_0x28c800(0x209))/0x8+parseInt(_0x28c800(0x212))/0x9*(-parseInt(_0x28c800(0x1e7))/0xa);if(_0x2d3b96===_0x143210)break;else _0x29de48['push'](_0x29de48['shift']());}catch(_0x115e02){_0x29de48['push'](_0x29de48['shift']());}}}(a33_0x36ff,0xca5ce));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';function a33_0x42e4(_0x22ddb1,_0x4956fe){_0x22ddb1=_0x22ddb1-0x1d6;const _0x36ff5=a33_0x36ff();let _0x42e436=_0x36ff5[_0x22ddb1];return _0x42e436;}const FILE_FLAG={'name':a33_0x1d4e3b(0x1ef),'type':a33_0x1d4e3b(0x1ff),'required':!![],'description':a33_0x1d4e3b(0x1f7)},SERVICE_FLAG={'name':'service','type':a33_0x1d4e3b(0x1ff),'required':!![],'description':a33_0x1d4e3b(0x1fe),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a33_0x1d4e3b(0x203)}};function a33_0x36ff(){const _0x5775ea=['6803870keEZHD','10798060hPKwkm','Imported\x20','Local\x20service\x20not\x20found:\x20','1149655XQoeOe','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','service','Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','file','replaced','cliPath','registryServiceCode','Service\x20manifest\x20validation\x20passed.','validate','114xZSYhu','hash','Service\x20Tree\x20manifest\x20file\x20path','registryPath','description','report','normalizedManifest','entry','Removed\x20service\x20','Local\x20service\x20code,\x20for\x20example\x20crm','string','import','serviceCode','Updated','lower\x20kebab-case\x20service\x20code','errors','serviceCount','str','detail','Imported','9167240CAWldB','cliName','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','importedAt','416652TvmAMe','read','entries','target','manifests','45wZkzpL','WRITE','source','3642mGSULc','Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','manifest','remove','Exported\x20service\x20','length','name','warnings','version','map','filePath','30MlRZzg','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','\x20service(s).','export','type','\x20service\x20','kind','reduce','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','registryIndex','180876plbpeV','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','commands','registry','required','updated','imported','risk','write'];a33_0x36ff=function(){return _0x5775ea;};return a33_0x36ff();}function summarizeService(_0x29bfe1){const _0x1356bd=a33_0x1d4e3b;return{'serviceCode':_0x29bfe1[_0x1356bd(0x201)],'name':_0x29bfe1[_0x1356bd(0x1fb)][_0x1356bd(0x1ed)][_0x1356bd(0x21b)],'version':_0x29bfe1[_0x1356bd(0x21d)],'importedAt':_0x29bfe1[_0x1356bd(0x20c)],'source':_0x29bfe1[_0x1356bd(0x214)],'commandCount':_0x29bfe1['normalizedManifest']['commands'][_0x1356bd(0x21a)],'commands':_0x29bfe1[_0x1356bd(0x1fb)]['commands']['map'](_0x2d0508=>({'path':_0x2d0508[_0x1356bd(0x1f1)],'description':_0x2d0508[_0x1356bd(0x1f9)],'risk':_0x2d0508[_0x1356bd(0x1e5)],'target':_0x2d0508[_0x1356bd(0x210)],'flags':_0x2d0508['flags'][_0x1356bd(0x21e)](_0x5abedd=>({'name':_0x5abedd[_0x1356bd(0x21b)],'cliName':_0x5abedd[_0x1356bd(0x20a)],'type':_0x5abedd[_0x1356bd(0x1d8)],'required':_0x5abedd[_0x1356bd(0x1e2)]===!![]}))}))};}function summarizeLoadedManifest(_0x5a64b4){const _0x11f2c1=a33_0x1d4e3b;return{'service':_0x5a64b4[_0x11f2c1(0x1fb)]?.['service'],'version':_0x5a64b4['normalizedManifest']?.[_0x11f2c1(0x21d)],'commandCount':_0x5a64b4['normalizedManifest']?.[_0x11f2c1(0x1e0)]['length']??0x0,'commands':_0x5a64b4['normalizedManifest']?.[_0x11f2c1(0x1e0)][_0x11f2c1(0x21e)](_0x3f0ba0=>({'path':_0x3f0ba0[_0x11f2c1(0x1f1)],'risk':_0x3f0ba0['risk'],'target':_0x3f0ba0[_0x11f2c1(0x210)]}))??[],'registryIndex':_0x5a64b4[_0x11f2c1(0x1dd)],'registryServiceCode':_0x5a64b4[_0x11f2c1(0x1f2)],'errors':_0x5a64b4[_0x11f2c1(0x1fa)][_0x11f2c1(0x204)],'warnings':_0x5a64b4[_0x11f2c1(0x1fa)][_0x11f2c1(0x21c)]};}export const serviceDefinitions=[{'service':'service','command':a33_0x1d4e3b(0x1f4),'description':'Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','risk':a33_0x1d4e3b(0x20e),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x4d57c2){const _0x144dff=a33_0x1d4e3b,_0x2fbfc4=loadServiceManifestFromFile(_0x4d57c2[_0x144dff(0x206)]('file'));if(!_0x2fbfc4[_0x144dff(0x1fa)]['ok'])return{'ok':![],'data':{'file':_0x2fbfc4[_0x144dff(0x21f)],'hash':_0x2fbfc4[_0x144dff(0x1f6)],'kind':_0x2fbfc4[_0x144dff(0x1da)],'serviceCount':_0x2fbfc4[_0x144dff(0x211)][_0x144dff(0x21a)],'services':_0x2fbfc4['manifests'][_0x144dff(0x21e)](summarizeLoadedManifest),'errors':_0x2fbfc4['report'][_0x144dff(0x204)],'warnings':_0x2fbfc4[_0x144dff(0x1fa)]['warnings']},'message':formatValidationFailure(_0x2fbfc4['report'])};if(_0x2fbfc4[_0x144dff(0x1da)]===_0x144dff(0x1e1)||_0x2fbfc4[_0x144dff(0x211)][_0x144dff(0x21a)]!==0x1)return{'ok':!![],'data':{'file':_0x2fbfc4[_0x144dff(0x21f)],'hash':_0x2fbfc4['hash'],'kind':_0x2fbfc4[_0x144dff(0x1da)],'serviceCount':_0x2fbfc4['manifests']['length'],'commandCount':_0x2fbfc4[_0x144dff(0x211)][_0x144dff(0x1db)]((_0x1c4303,_0x572641)=>_0x1c4303+(_0x572641[_0x144dff(0x1fb)]?.[_0x144dff(0x1e0)][_0x144dff(0x21a)]??0x0),0x0),'services':_0x2fbfc4['manifests'][_0x144dff(0x21e)](summarizeLoadedManifest),'warnings':_0x2fbfc4[_0x144dff(0x1fa)][_0x144dff(0x21c)]},'message':'Service\x20registry\x20validation\x20passed.'};return{'ok':!![],'data':{'file':_0x2fbfc4[_0x144dff(0x21f)],'hash':_0x2fbfc4[_0x144dff(0x1f6)],'kind':_0x2fbfc4['kind'],'service':_0x2fbfc4[_0x144dff(0x1fb)]?.[_0x144dff(0x1ed)],'version':_0x2fbfc4[_0x144dff(0x1fb)]?.[_0x144dff(0x21d)],'commandCount':_0x2fbfc4[_0x144dff(0x1fb)]?.[_0x144dff(0x1e0)]['length']??0x0,'commands':_0x2fbfc4['normalizedManifest']?.[_0x144dff(0x1e0)][_0x144dff(0x21e)](_0x37a3b7=>({'path':_0x37a3b7[_0x144dff(0x1f1)],'risk':_0x37a3b7[_0x144dff(0x1e5)],'target':_0x37a3b7[_0x144dff(0x210)]})),'warnings':_0x2fbfc4[_0x144dff(0x1fa)][_0x144dff(0x21c)]},'message':_0x144dff(0x1f3)};}},{'service':a33_0x1d4e3b(0x1ed),'command':a33_0x1d4e3b(0x200),'description':a33_0x1d4e3b(0x1dc),'risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0xbbb4d9){const _0x252537=a33_0x1d4e3b,_0x2683cd=loadServiceManifestFromFile(_0xbbb4d9[_0x252537(0x206)](_0x252537(0x1ef)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x2683cd['filePath'],'hash':_0x2683cd[_0x252537(0x1f6)],'kind':_0x2683cd[_0x252537(0x1da)],'ok':_0x2683cd['report']['ok'],'service':_0x2683cd[_0x252537(0x1fb)]?.[_0x252537(0x1ed)],'version':_0x2683cd[_0x252537(0x1fb)]?.['version'],'serviceCount':_0x2683cd['manifests'][_0x252537(0x21a)],'services':_0x2683cd['manifests']['map'](_0x4e0054=>({'service':_0x4e0054[_0x252537(0x1fb)]?.[_0x252537(0x1ed)],'version':_0x4e0054['normalizedManifest']?.[_0x252537(0x21d)],'commandCount':_0x4e0054[_0x252537(0x1fb)]?.['commands']['length']??0x0,'errors':_0x4e0054[_0x252537(0x1fa)][_0x252537(0x204)]})),'errors':_0x2683cd[_0x252537(0x1fa)][_0x252537(0x204)],'commandCount':_0x2683cd['normalizedManifest']?.[_0x252537(0x1e0)][_0x252537(0x21a)]??0x0},'description':_0x252537(0x20b)};},async 'execute'(_0x201307){const _0x33ace4=a33_0x1d4e3b,_0x1f766b=importServiceManifest(_0x201307['str'](_0x33ace4(0x1ef)));if(_0x1f766b[_0x33ace4(0x20f)][_0x33ace4(0x21a)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x1f766b[_0x33ace4(0x1f8)],'imported':_0x1f766b[_0x33ace4(0x1e4)],'updated':_0x1f766b[_0x33ace4(0x1e3)],'serviceCount':_0x1f766b['serviceCount'],'services':_0x1f766b[_0x33ace4(0x20f)][_0x33ace4(0x21e)](summarizeService)},'message':_0x33ace4(0x1e9)+_0x1f766b[_0x33ace4(0x1e4)]+'\x20service(s),\x20updated\x20'+_0x1f766b[_0x33ace4(0x1e3)]+_0x33ace4(0x1d6)};return{'ok':!![],'data':{'registryPath':_0x1f766b[_0x33ace4(0x1f8)],'replaced':_0x1f766b[_0x33ace4(0x1f0)],'imported':_0x1f766b[_0x33ace4(0x1e4)],'updated':_0x1f766b[_0x33ace4(0x1e3)],'serviceCount':_0x1f766b[_0x33ace4(0x205)],'service':summarizeService(_0x1f766b[_0x33ace4(0x1fc)])},'message':(_0x1f766b[_0x33ace4(0x1f0)]?_0x33ace4(0x202):_0x33ace4(0x208))+_0x33ace4(0x1d9)+_0x1f766b[_0x33ace4(0x1fc)][_0x33ace4(0x201)]+'.'};}},{'service':a33_0x1d4e3b(0x1ed),'command':a33_0x1d4e3b(0x1d7),'description':a33_0x1d4e3b(0x1ee),'risk':a33_0x1d4e3b(0x1e6),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x4ac9ce){const _0x17e193=a33_0x1d4e3b,_0x4da149=getLocalServiceEntry(_0x4ac9ce[_0x17e193(0x206)]('service'));return{'method':'WRITE','url':_0x4ac9ce['str'](_0x17e193(0x1ef)),'body':{'service':_0x4ac9ce[_0x17e193(0x206)](_0x17e193(0x1ed)),'found':Boolean(_0x4da149),'version':_0x4da149?.['version'],'source':_0x4da149?.[_0x17e193(0x214)]},'description':_0x17e193(0x221)};},async 'execute'(_0x51bff5){const _0x5ec32=a33_0x1d4e3b,_0x187f3d=exportServiceManifest(_0x51bff5[_0x5ec32(0x206)](_0x5ec32(0x1ed)),_0x51bff5[_0x5ec32(0x206)](_0x5ec32(0x1ef)));return{'ok':!![],'data':{'registryPath':_0x187f3d[_0x5ec32(0x1f8)],'file':_0x187f3d['filePath'],'service':summarizeService(_0x187f3d[_0x5ec32(0x1fc)])},'message':_0x5ec32(0x219)+_0x187f3d[_0x5ec32(0x1fc)][_0x5ec32(0x201)]+'.'};}},{'service':a33_0x1d4e3b(0x1ed),'command':'list','description':a33_0x1d4e3b(0x1ec),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x272a58=a33_0x1d4e3b,_0x16af32=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x16af32[_0x272a58(0x21a)],'services':_0x16af32['map'](summarizeService)}};}},{'service':a33_0x1d4e3b(0x1ed),'command':a33_0x1d4e3b(0x218),'description':a33_0x1d4e3b(0x216),'risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x2739a8){const _0x52d3b1=a33_0x1d4e3b,_0x4ec763=getLocalServiceEntry(_0x2739a8[_0x52d3b1(0x206)](_0x52d3b1(0x1ed)));return{'method':_0x52d3b1(0x213),'url':getServiceRegistryPath(),'body':{'service':_0x2739a8['str'](_0x52d3b1(0x1ed)),'found':Boolean(_0x4ec763),'version':_0x4ec763?.[_0x52d3b1(0x21d)],'source':_0x4ec763?.['source']},'description':_0x52d3b1(0x1df)};},async 'execute'(_0x4abd16){const _0x1f99e8=a33_0x1d4e3b,_0x1f3d2d=removeServiceManifest(_0x4abd16[_0x1f99e8(0x206)](_0x1f99e8(0x1ed)));return{'ok':!![],'data':{'registryPath':_0x1f3d2d[_0x1f99e8(0x1f8)],'serviceCount':_0x1f3d2d[_0x1f99e8(0x205)],'service':summarizeService(_0x1f3d2d['entry'])},'message':_0x1f99e8(0x1fd)+_0x1f3d2d[_0x1f99e8(0x1fc)][_0x1f99e8(0x201)]+'.'};}},{'service':a33_0x1d4e3b(0x1ed),'command':a33_0x1d4e3b(0x207),'description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x15a324){const _0x2b6f9d=a33_0x1d4e3b,_0x2501e2=getLocalServiceEntry(_0x15a324[_0x2b6f9d(0x206)](_0x2b6f9d(0x1ed)));if(!_0x2501e2)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x15a324[_0x2b6f9d(0x206)](_0x2b6f9d(0x1ed))},'message':_0x2b6f9d(0x1ea)+_0x15a324[_0x2b6f9d(0x206)](_0x2b6f9d(0x1ed))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x2501e2),'manifest':_0x2501e2[_0x2b6f9d(0x217)],'normalizedManifest':_0x2501e2[_0x2b6f9d(0x1fb)]}};}}];
1
+ function a33_0xb088(_0x482309,_0x3207eb){_0x482309=_0x482309-0xfa;const _0x2cce63=a33_0x2cce();let _0xb0885c=_0x2cce63[_0x482309];return _0xb0885c;}const a33_0x936f75=a33_0xb088;(function(_0x1f1337,_0x1ee804){const _0x47b361=a33_0xb088,_0x4f8819=_0x1f1337();while(!![]){try{const _0x226b5e=-parseInt(_0x47b361(0x122))/0x1+parseInt(_0x47b361(0x10e))/0x2+parseInt(_0x47b361(0x124))/0x3*(-parseInt(_0x47b361(0x11d))/0x4)+parseInt(_0x47b361(0x10b))/0x5+parseInt(_0x47b361(0x134))/0x6+parseInt(_0x47b361(0xfb))/0x7*(parseInt(_0x47b361(0x129))/0x8)+-parseInt(_0x47b361(0x109))/0x9*(-parseInt(_0x47b361(0x133))/0xa);if(_0x226b5e===_0x1ee804)break;else _0x4f8819['push'](_0x4f8819['shift']());}catch(_0x680b46){_0x4f8819['push'](_0x4f8819['shift']());}}}(a33_0x2cce,0x6ea15));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';const FILE_FLAG={'name':a33_0x936f75(0x132),'type':a33_0x936f75(0x12e),'required':!![],'description':'Service\x20Tree\x20manifest\x20file\x20path'},SERVICE_FLAG={'name':'service','type':a33_0x936f75(0x12e),'required':!![],'description':a33_0x936f75(0x10d),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a33_0x936f75(0x12f)}};function summarizeService(_0x334f3d){const _0xf7273=a33_0x936f75;return{'serviceCode':_0x334f3d[_0xf7273(0x114)],'name':_0x334f3d[_0xf7273(0x11e)][_0xf7273(0x12a)][_0xf7273(0x12b)],'version':_0x334f3d[_0xf7273(0xfe)],'importedAt':_0x334f3d['importedAt'],'source':_0x334f3d[_0xf7273(0x126)],'commandCount':_0x334f3d[_0xf7273(0x11e)][_0xf7273(0x111)]['length'],'commands':_0x334f3d[_0xf7273(0x11e)]['commands'][_0xf7273(0x10a)](_0x2ff901=>({'path':_0x2ff901[_0xf7273(0x101)],'description':_0x2ff901[_0xf7273(0xfd)],'risk':_0x2ff901[_0xf7273(0x104)],'target':_0x2ff901[_0xf7273(0x136)],'flags':_0x2ff901[_0xf7273(0x115)][_0xf7273(0x10a)](_0x89a43d=>({'name':_0x89a43d[_0xf7273(0x12b)],'cliName':_0x89a43d[_0xf7273(0xfc)],'type':_0x89a43d[_0xf7273(0x103)],'required':_0x89a43d['required']===!![]}))}))};}function a33_0x2cce(){const _0x22b778=['hash','Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','99315GIHdqS','map','1472930vGsTLk','manifests','Local\x20service\x20code,\x20for\x20example\x20crm','460278KSiKhF','entries','serviceCount','commands','Imported','reduce','serviceCode','flags','replaced','length','\x20service(s).','\x20service\x20','WRITE','report','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','1038992IvlPIR','normalizedManifest','registryServiceCode','imported','Removed\x20service\x20','740041GGrwqJ','registry','9hrXBaS','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','source','kind','filePath','2329376qArsNw','service','name','registryPath','Exported\x20service\x20','string','lower\x20kebab-case\x20service\x20code','updated','detail','file','490hnJlmQ','3694884deVeVz','read','target','manifest','entry','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','Service\x20manifest\x20validation\x20passed.','Updated','7gYsNMb','cliName','description','version','registryIndex','warnings','cliPath','str','type','risk','errors','Service\x20registry\x20validation\x20passed.'];a33_0x2cce=function(){return _0x22b778;};return a33_0x2cce();}function summarizeLoadedManifest(_0x54be89){const _0x1d0822=a33_0x936f75;return{'service':_0x54be89[_0x1d0822(0x11e)]?.[_0x1d0822(0x12a)],'version':_0x54be89[_0x1d0822(0x11e)]?.[_0x1d0822(0xfe)],'commandCount':_0x54be89[_0x1d0822(0x11e)]?.[_0x1d0822(0x111)][_0x1d0822(0x117)]??0x0,'commands':_0x54be89['normalizedManifest']?.[_0x1d0822(0x111)][_0x1d0822(0x10a)](_0x56d81b=>({'path':_0x56d81b[_0x1d0822(0x101)],'risk':_0x56d81b['risk'],'target':_0x56d81b[_0x1d0822(0x136)]}))??[],'registryIndex':_0x54be89[_0x1d0822(0xff)],'registryServiceCode':_0x54be89[_0x1d0822(0x11f)],'errors':_0x54be89['report'][_0x1d0822(0x105)],'warnings':_0x54be89['report'][_0x1d0822(0x100)]};}export const serviceDefinitions=[{'service':a33_0x936f75(0x12a),'command':'validate','description':a33_0x936f75(0x11c),'risk':a33_0x936f75(0x135),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x1a800a){const _0x20a608=a33_0x936f75,_0xa8210d=loadServiceManifestFromFile(_0x1a800a[_0x20a608(0x102)](_0x20a608(0x132)));if(!_0xa8210d['report']['ok'])return{'ok':![],'data':{'file':_0xa8210d[_0x20a608(0x128)],'hash':_0xa8210d[_0x20a608(0x107)],'kind':_0xa8210d[_0x20a608(0x127)],'serviceCount':_0xa8210d[_0x20a608(0x10c)][_0x20a608(0x117)],'services':_0xa8210d[_0x20a608(0x10c)][_0x20a608(0x10a)](summarizeLoadedManifest),'errors':_0xa8210d[_0x20a608(0x11b)][_0x20a608(0x105)],'warnings':_0xa8210d[_0x20a608(0x11b)][_0x20a608(0x100)]},'message':formatValidationFailure(_0xa8210d['report'])};if(_0xa8210d[_0x20a608(0x127)]===_0x20a608(0x123)||_0xa8210d[_0x20a608(0x10c)]['length']!==0x1)return{'ok':!![],'data':{'file':_0xa8210d[_0x20a608(0x128)],'hash':_0xa8210d[_0x20a608(0x107)],'kind':_0xa8210d[_0x20a608(0x127)],'serviceCount':_0xa8210d[_0x20a608(0x10c)][_0x20a608(0x117)],'commandCount':_0xa8210d[_0x20a608(0x10c)][_0x20a608(0x113)]((_0x263fc8,_0x125133)=>_0x263fc8+(_0x125133['normalizedManifest']?.[_0x20a608(0x111)][_0x20a608(0x117)]??0x0),0x0),'services':_0xa8210d[_0x20a608(0x10c)][_0x20a608(0x10a)](summarizeLoadedManifest),'warnings':_0xa8210d['report'][_0x20a608(0x100)]},'message':_0x20a608(0x106)};return{'ok':!![],'data':{'file':_0xa8210d[_0x20a608(0x128)],'hash':_0xa8210d['hash'],'kind':_0xa8210d[_0x20a608(0x127)],'service':_0xa8210d[_0x20a608(0x11e)]?.[_0x20a608(0x12a)],'version':_0xa8210d[_0x20a608(0x11e)]?.[_0x20a608(0xfe)],'commandCount':_0xa8210d[_0x20a608(0x11e)]?.[_0x20a608(0x111)][_0x20a608(0x117)]??0x0,'commands':_0xa8210d['normalizedManifest']?.[_0x20a608(0x111)][_0x20a608(0x10a)](_0x2feddf=>({'path':_0x2feddf['cliPath'],'risk':_0x2feddf['risk'],'target':_0x2feddf['target']})),'warnings':_0xa8210d['report'][_0x20a608(0x100)]},'message':_0x20a608(0x13a)};}},{'service':a33_0x936f75(0x12a),'command':'import','description':a33_0x936f75(0x139),'risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x34fdf8){const _0x701c1c=a33_0x936f75,_0x951b5c=loadServiceManifestFromFile(_0x34fdf8[_0x701c1c(0x102)]('file'));return{'method':_0x701c1c(0x11a),'url':getServiceRegistryPath(),'body':{'file':_0x951b5c[_0x701c1c(0x128)],'hash':_0x951b5c[_0x701c1c(0x107)],'kind':_0x951b5c[_0x701c1c(0x127)],'ok':_0x951b5c[_0x701c1c(0x11b)]['ok'],'service':_0x951b5c[_0x701c1c(0x11e)]?.[_0x701c1c(0x12a)],'version':_0x951b5c[_0x701c1c(0x11e)]?.[_0x701c1c(0xfe)],'serviceCount':_0x951b5c[_0x701c1c(0x10c)][_0x701c1c(0x117)],'services':_0x951b5c[_0x701c1c(0x10c)][_0x701c1c(0x10a)](_0x2e6826=>({'service':_0x2e6826[_0x701c1c(0x11e)]?.[_0x701c1c(0x12a)],'version':_0x2e6826[_0x701c1c(0x11e)]?.[_0x701c1c(0xfe)],'commandCount':_0x2e6826[_0x701c1c(0x11e)]?.[_0x701c1c(0x111)]['length']??0x0,'errors':_0x2e6826[_0x701c1c(0x11b)]['errors']})),'errors':_0x951b5c[_0x701c1c(0x11b)]['errors'],'commandCount':_0x951b5c['normalizedManifest']?.[_0x701c1c(0x111)][_0x701c1c(0x117)]??0x0},'description':'Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json'};},async 'execute'(_0x35caf7){const _0x3a9855=a33_0x936f75,_0x3aabc4=importServiceManifest(_0x35caf7[_0x3a9855(0x102)](_0x3a9855(0x132)));if(_0x3aabc4[_0x3a9855(0x10f)][_0x3a9855(0x117)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x3aabc4['registryPath'],'imported':_0x3aabc4[_0x3a9855(0x120)],'updated':_0x3aabc4[_0x3a9855(0x130)],'serviceCount':_0x3aabc4[_0x3a9855(0x110)],'services':_0x3aabc4[_0x3a9855(0x10f)][_0x3a9855(0x10a)](summarizeService)},'message':'Imported\x20'+_0x3aabc4[_0x3a9855(0x120)]+'\x20service(s),\x20updated\x20'+_0x3aabc4['updated']+_0x3a9855(0x118)};return{'ok':!![],'data':{'registryPath':_0x3aabc4[_0x3a9855(0x12c)],'replaced':_0x3aabc4[_0x3a9855(0x116)],'imported':_0x3aabc4[_0x3a9855(0x120)],'updated':_0x3aabc4[_0x3a9855(0x130)],'serviceCount':_0x3aabc4['serviceCount'],'service':summarizeService(_0x3aabc4['entry'])},'message':(_0x3aabc4['replaced']?_0x3a9855(0xfa):_0x3a9855(0x112))+_0x3a9855(0x119)+_0x3aabc4[_0x3a9855(0x138)][_0x3a9855(0x114)]+'.'};}},{'service':a33_0x936f75(0x12a),'command':'export','description':a33_0x936f75(0x108),'risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x44560a){const _0x1ab11e=a33_0x936f75,_0x3bc781=getLocalServiceEntry(_0x44560a['str'](_0x1ab11e(0x12a)));return{'method':_0x1ab11e(0x11a),'url':_0x44560a[_0x1ab11e(0x102)]('file'),'body':{'service':_0x44560a[_0x1ab11e(0x102)](_0x1ab11e(0x12a)),'found':Boolean(_0x3bc781),'version':_0x3bc781?.['version'],'source':_0x3bc781?.[_0x1ab11e(0x126)]},'description':_0x1ab11e(0x125)};},async 'execute'(_0x3855df){const _0x5ec83e=a33_0x936f75,_0x497967=exportServiceManifest(_0x3855df[_0x5ec83e(0x102)](_0x5ec83e(0x12a)),_0x3855df[_0x5ec83e(0x102)]('file'));return{'ok':!![],'data':{'registryPath':_0x497967[_0x5ec83e(0x12c)],'file':_0x497967['filePath'],'service':summarizeService(_0x497967[_0x5ec83e(0x138)])},'message':_0x5ec83e(0x12d)+_0x497967[_0x5ec83e(0x138)]['serviceCode']+'.'};}},{'service':a33_0x936f75(0x12a),'command':'list','description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':a33_0x936f75(0x135),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x4d9d58=a33_0x936f75,_0x3631db=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x3631db[_0x4d9d58(0x117)],'services':_0x3631db['map'](summarizeService)}};}},{'service':a33_0x936f75(0x12a),'command':'remove','description':'Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x11ecb5){const _0x4be4a2=a33_0x936f75,_0x52ebb2=getLocalServiceEntry(_0x11ecb5[_0x4be4a2(0x102)](_0x4be4a2(0x12a)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x11ecb5[_0x4be4a2(0x102)](_0x4be4a2(0x12a)),'found':Boolean(_0x52ebb2),'version':_0x52ebb2?.[_0x4be4a2(0xfe)],'source':_0x52ebb2?.[_0x4be4a2(0x126)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x3d9379){const _0x5ce5ab=a33_0x936f75,_0x53109d=removeServiceManifest(_0x3d9379[_0x5ce5ab(0x102)](_0x5ce5ab(0x12a)));return{'ok':!![],'data':{'registryPath':_0x53109d[_0x5ce5ab(0x12c)],'serviceCount':_0x53109d['serviceCount'],'service':summarizeService(_0x53109d['entry'])},'message':_0x5ce5ab(0x121)+_0x53109d[_0x5ce5ab(0x138)]['serviceCode']+'.'};}},{'service':a33_0x936f75(0x12a),'command':a33_0x936f75(0x131),'description':'Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x2ea49f){const _0x134e85=a33_0x936f75,_0x55fd68=getLocalServiceEntry(_0x2ea49f[_0x134e85(0x102)](_0x134e85(0x12a)));if(!_0x55fd68)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x2ea49f[_0x134e85(0x102)]('service')},'message':'Local\x20service\x20not\x20found:\x20'+_0x2ea49f[_0x134e85(0x102)](_0x134e85(0x12a))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x55fd68),'manifest':_0x55fd68[_0x134e85(0x137)],'normalizedManifest':_0x55fd68[_0x134e85(0x11e)]}};}}];
@@ -1 +1 @@
1
- function a34_0x210b(){const _0x3e301e=['homeDirName','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','$.services[','123dEhwxL','manifest','CliError','push','risk','Invalid\x20service\x20manifest\x20JSON:\x20','services\x20must\x20be\x20an\x20array','missing','find','registryIndex','slice','path','Cannot\x20write\x20service\x20registry:\x20','splice','sha256','Service\x20manifest\x20file\x20not\x20found:\x20','Unsupported\x20schemaVersion:\x20','update','normalizedManifest','Remove\x20or\x20migrate\x20','importedAt','name','].manifest.','utf8','filePath','ENOENT','Unsupported\x20service\x20registry\x20schemaVersion:\x20','warnings','message','schemaVersion','3267522vWzotk','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','join','trim','623321ckyhxr','6095592reFgBt','1925231viTSmL','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','].manifest','errors','findIndex','service','.tmp','now','serviceCode','toISOString','updatedAt','report','reduce','1907192CpiApe','flatMap','isArray','18ZBosgm','file','sourceHash','Invalid\x20service\x20registry\x20JSON:\x20','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','map','invalid','1414025sXuxRl','commandCount','startsWith','validation','target','version','services','cliPath','description','registry','Local\x20service\x20not\x20found:\x20','23526nKLeZq','length','service.json','parse','code','stringify','string'];a34_0x210b=function(){return _0x3e301e;};return a34_0x210b();}const a34_0x5818dc=a34_0x2c03;(function(_0x5ef184,_0x5a93ff){const _0x556626=a34_0x2c03,_0xe18a5f=_0x5ef184();while(!![]){try{const _0x440354=-parseInt(_0x556626(0x226))/0x1+parseInt(_0x556626(0x1fa))/0x2*(-parseInt(_0x556626(0x204))/0x3)+parseInt(_0x556626(0x235))/0x4+-parseInt(_0x556626(0x1ef))/0x5+-parseInt(_0x556626(0x222))/0x6+parseInt(_0x556626(0x228))/0x7+parseInt(_0x556626(0x227))/0x8*(parseInt(_0x556626(0x238))/0x9);if(_0x440354===_0x5a93ff)break;else _0xe18a5f['push'](_0xe18a5f['shift']());}catch(_0x1d6e7b){_0xe18a5f['push'](_0xe18a5f['shift']());}}}(a34_0x210b,0x53acd));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_0x5818dc(0x1fc);export function getServiceRegistryPath(_0x37b6f3={}){const _0x3a16bd=a34_0x5818dc;return resolve(_0x37b6f3['homeDir']??homedir(),PRODUCT_CONFIG[_0x3a16bd(0x201)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x28cfc4={}){const _0x4213b2=a34_0x5818dc,_0x467a9f=getServiceRegistryPath(_0x28cfc4);if(!existsSync(_0x467a9f))return emptyServiceRegistry();try{const _0x1b3641=readFileSync(_0x467a9f,'utf8');if(!_0x1b3641[_0x4213b2(0x225)]())return emptyServiceRegistry();const _0x5e2a2e=JSON[_0x4213b2(0x1fd)](_0x1b3641);if(_0x5e2a2e[_0x4213b2(0x221)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation'](_0x4213b2(0x21e)+String(_0x5e2a2e[_0x4213b2(0x221)]),_0x4213b2(0x217)+_0x467a9f+'.');if(!Array[_0x4213b2(0x237)](_0x5e2a2e[_0x4213b2(0x1f5)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5e2a2e['updatedAt'],'services':_0x5e2a2e[_0x4213b2(0x1f5)]};}catch(_0x4cd6e8){if(_0x4cd6e8 instanceof Error&&_0x4cd6e8[_0x4213b2(0x219)]===_0x4213b2(0x206))throw _0x4cd6e8;throw CliErrors[_0x4213b2(0x1f2)](_0x4213b2(0x1eb)+_0x467a9f,'Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.');}}export function writeServiceRegistry(_0x433a35,_0x2fac76={}){const _0xd2d8c=a34_0x5818dc,_0x2b9d67=getServiceRegistryPath(_0x2fac76),_0x322ec0=dirname(_0x2b9d67);!existsSync(_0x322ec0)&&mkdirSync(_0x322ec0,{'recursive':!![]});const _0x250d2c=_0x2b9d67+_0xd2d8c(0x22e);try{writeFileSync(_0x250d2c,JSON[_0xd2d8c(0x1ff)](_0x433a35,null,0x2)+'\x0a',{'encoding':_0xd2d8c(0x21b),'mode':0x180}),renameSync(_0x250d2c,_0x2b9d67);}catch(_0x71a76a){try{unlinkSync(_0x250d2c);}catch{}if(_0x71a76a?.[_0xd2d8c(0x1fe)]===_0xd2d8c(0x21d))throw CliErrors['validation'](_0xd2d8c(0x210)+_0x2b9d67);throw _0x71a76a;}return _0x2b9d67;}export function loadServiceManifestFromFile(_0x581ca4){const _0x9923de=a34_0x5818dc,_0x420aad=resolve(_0x581ca4);if(!existsSync(_0x420aad))throw CliErrors[_0x9923de(0x1f2)](_0x9923de(0x213)+_0x581ca4);let _0x512291;const _0x5b450e=readFileSync(_0x420aad,_0x9923de(0x21b));try{_0x512291=JSON[_0x9923de(0x1fd)](_0x5b450e);}catch{throw CliErrors[_0x9923de(0x1f2)](_0x9923de(0x209)+_0x581ca4,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x4c0e39=sha256(_0x5b450e),_0x14ac62=extractLoadedServiceManifests(_0x512291,_0x4c0e39),_0x4631db=aggregateValidationReports(_0x14ac62),_0x30be89=_0x14ac62[0x0];return{'filePath':_0x420aad,'hash':_0x4c0e39,'kind':isServiceRegistryLike(_0x512291)?_0x9923de(0x1f8):_0x9923de(0x205),'manifest':_0x30be89?.[_0x9923de(0x205)]??_0x512291,'report':_0x4631db,'normalizedManifest':_0x14ac62[_0x9923de(0x1fb)]===0x1?_0x30be89?.['normalizedManifest']:undefined,'manifests':_0x14ac62};}export function importServiceManifest(_0x1adba1,_0x48a210={}){const _0x53914b=a34_0x5818dc,_0x5f12e5=loadServiceManifestFromFile(_0x1adba1);if(!_0x5f12e5[_0x53914b(0x233)]['ok'])throw CliErrors[_0x53914b(0x1f2)](formatValidationFailure(_0x5f12e5['report']),_0x53914b(0x229));if(_0x5f12e5['manifests'][_0x53914b(0x1fb)]===0x0)throw CliErrors['validation'](_0x53914b(0x202),_0x53914b(0x223));const _0x4da2c2=readServiceRegistry(_0x48a210),_0x2efc46=(_0x48a210[_0x53914b(0x22f)]??(()=>new Date()))()['toISOString'](),_0x1d0382=[];let _0xe5caba=0x0,_0x2c4fa7=0x0;for(const _0x2c09d7 of _0x5f12e5['manifests']){if(!_0x2c09d7[_0x53914b(0x216)])continue;const _0x536758=_0x2c09d7['normalizedManifest'][_0x53914b(0x22d)][_0x53914b(0x1fe)],_0x5542b2={'serviceCode':_0x536758,'version':_0x2c09d7[_0x53914b(0x216)][_0x53914b(0x1f4)],'importedAt':_0x2efc46,'source':{'type':_0x53914b(0x1e9),'path':_0x5f12e5[_0x53914b(0x21c)],'hash':_0x2c09d7[_0x53914b(0x1ea)]},'manifest':_0x2c09d7[_0x53914b(0x205)],'normalizedManifest':_0x2c09d7[_0x53914b(0x216)]},_0x859b=_0x4da2c2[_0x53914b(0x1f5)][_0x53914b(0x22c)](_0x23b1c5=>_0x23b1c5[_0x53914b(0x230)]===_0x536758);_0x859b>=0x0?(_0x4da2c2[_0x53914b(0x1f5)][_0x859b]=_0x5542b2,_0x2c4fa7++):(_0x4da2c2[_0x53914b(0x1f5)]['push'](_0x5542b2),_0xe5caba++),_0x1d0382[_0x53914b(0x207)](_0x5542b2);}_0x4da2c2[_0x53914b(0x1f5)]['sort']((_0x4ac348,_0x52e1e2)=>_0x4ac348[_0x53914b(0x230)]['localeCompare'](_0x52e1e2['serviceCode'])),_0x4da2c2[_0x53914b(0x232)]=_0x2efc46;const _0xe326c7=writeServiceRegistry(_0x4da2c2,_0x48a210);return{'registryPath':_0xe326c7,'entry':_0x1d0382[0x0],'replaced':_0x1d0382[_0x53914b(0x1fb)]===0x1?_0x2c4fa7===0x1:_0x2c4fa7>0x0,'entries':_0x1d0382,'imported':_0xe5caba,'updated':_0x2c4fa7,'serviceCount':_0x4da2c2[_0x53914b(0x1f5)]['length']};}export function exportServiceManifest(_0x3d4ffd,_0x2e5b41,_0x1cc2a1={}){const _0x2e5318=a34_0x5818dc,_0x24ca48=getServiceRegistryPath(_0x1cc2a1),_0x3444f9=getLocalServiceEntry(_0x3d4ffd,_0x1cc2a1);if(!_0x3444f9)throw CliErrors[_0x2e5318(0x1f2)](_0x2e5318(0x1f9)+_0x3d4ffd,_0x2e5318(0x1ec));const _0x2da5c3=resolve(_0x2e5b41),_0x5b6e2f=dirname(_0x2da5c3);return!existsSync(_0x5b6e2f)&&mkdirSync(_0x5b6e2f,{'recursive':!![]}),writeFileSync(_0x2da5c3,JSON['stringify'](_0x3444f9['manifest'],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x24ca48,'filePath':_0x2da5c3,'entry':_0x3444f9};}export function removeServiceManifest(_0xe0f7dc,_0x5d5d51={}){const _0x55ebf4=a34_0x5818dc,_0x156323=readServiceRegistry(_0x5d5d51),_0xf50e05=_0xe0f7dc[_0x55ebf4(0x225)](),_0x264442=_0x156323[_0x55ebf4(0x1f5)][_0x55ebf4(0x22c)](_0x15386e=>_0x15386e[_0x55ebf4(0x230)]===_0xf50e05);if(_0x264442<0x0)throw CliErrors['validation']('Local\x20service\x20not\x20found:\x20'+_0xf50e05,_0x55ebf4(0x1ec));const [_0x238eec]=_0x156323['services'][_0x55ebf4(0x211)](_0x264442,0x1),_0x3e0384=(_0x5d5d51[_0x55ebf4(0x22f)]??(()=>new Date()))()[_0x55ebf4(0x231)]();_0x156323[_0x55ebf4(0x232)]=_0x3e0384;const _0x52371e=writeServiceRegistry(_0x156323,_0x5d5d51);return{'registryPath':_0x52371e,'entry':_0x238eec,'serviceCount':_0x156323[_0x55ebf4(0x1f5)]['length']};}export function listLocalServices(_0x5534b6={}){const _0x26e7e9=a34_0x5818dc;return readServiceRegistry(_0x5534b6)[_0x26e7e9(0x1f5)];}export function getLocalServiceEntry(_0x3f141d,_0xb7876e={}){const _0x151125=a34_0x5818dc;return readServiceRegistry(_0xb7876e)['services'][_0x151125(0x20c)](_0x5d41ad=>_0x5d41ad[_0x151125(0x230)]===_0x3f141d['trim']());}export function listLocalServiceTrees(_0x36bd5f={}){const _0x3084cd=a34_0x5818dc;return readServiceRegistry(_0x36bd5f)[_0x3084cd(0x1f5)][_0x3084cd(0x1ed)](_0x1ca1d7=>_0x1ca1d7[_0x3084cd(0x216)]);}export function inspectServiceRegistry(_0x5731ce={}){const _0x173eee=a34_0x5818dc,_0x43dfbe=getServiceRegistryPath(_0x5731ce);if(!existsSync(_0x43dfbe))return emptyServiceRegistryInspection(_0x43dfbe,_0x173eee(0x20b),![]);try{const _0x49ef20=readFileSync(_0x43dfbe,'utf8');if(!_0x49ef20[_0x173eee(0x225)]())return emptyServiceRegistryInspection(_0x43dfbe,'empty',!![]);const _0x44f002=JSON[_0x173eee(0x1fd)](_0x49ef20);if(_0x44f002[_0x173eee(0x221)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x43dfbe,_0x173eee(0x1ee),!![]),'schemaVersion':_0x44f002[_0x173eee(0x221)],'message':_0x173eee(0x214)+String(_0x44f002[_0x173eee(0x221)])};if(!Array['isArray'](_0x44f002[_0x173eee(0x1f5)]))return{...emptyServiceRegistryInspection(_0x43dfbe,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x44f002[_0x173eee(0x232)],'message':_0x173eee(0x20a)};const _0x200b21=_0x44f002[_0x173eee(0x1f5)][_0x173eee(0x1ed)](summarizeLocalServiceEntry);return{'registryPath':_0x43dfbe,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x44f002[_0x173eee(0x232)],'serviceCount':_0x200b21[_0x173eee(0x1fb)],'commandCount':_0x200b21[_0x173eee(0x234)]((_0xd6fac8,_0xfd19b)=>_0xd6fac8+_0xfd19b[_0x173eee(0x1f0)],0x0),'services':_0x200b21};}catch(_0x463bf0){return{...emptyServiceRegistryInspection(_0x43dfbe,_0x173eee(0x1ee),!![]),'message':_0x463bf0 instanceof Error?_0x463bf0[_0x173eee(0x220)]:String(_0x463bf0)};}}export function formatValidationFailure(_0x2a8514){const _0x26e43f=a34_0x5818dc,_0x5d198f=_0x2a8514[_0x26e43f(0x22b)][_0x26e43f(0x1ed)](_0x6e9bd9=>_0x6e9bd9[_0x26e43f(0x20f)]+':\x20'+_0x6e9bd9[_0x26e43f(0x220)]);return'Service\x20manifest\x20validation\x20failed:\x0a'+_0x5d198f[_0x26e43f(0x224)]('\x0a');}function a34_0x2c03(_0x568571,_0x1a1189){_0x568571=_0x568571-0x1e9;const _0x210b31=a34_0x210b();let _0x2c038d=_0x210b31[_0x568571];return _0x2c038d;}function extractLoadedServiceManifests(_0x49b22f,_0x181a6d){const _0xd825bd=a34_0x5818dc;if(!isServiceRegistryLike(_0x49b22f)){const _0x22881a=_0x49b22f,_0x2cc342=validateServiceTreeManifest(_0x22881a);return[{'manifest':_0x22881a,'report':_0x2cc342,'normalizedManifest':_0x2cc342['ok']?normalizeServiceTreeManifest(_0x22881a):undefined,'sourceHash':_0x181a6d}];}return _0x49b22f[_0xd825bd(0x1f5)][_0xd825bd(0x1ed)]((_0x9ee3b2,_0x42761e)=>{const _0x4bb0b8=_0xd825bd,_0x2bde4d=isObjectRecord(_0x9ee3b2)?_0x9ee3b2['manifest']:undefined,_0x1a9bd8=validateServiceTreeManifest(_0x2bde4d),_0x147901=isObjectRecord(_0x9ee3b2)&&typeof _0x9ee3b2[_0x4bb0b8(0x230)]===_0x4bb0b8(0x200)?_0x9ee3b2['serviceCode']:undefined;return{'manifest':_0x2bde4d,'report':_0x1a9bd8,'normalizedManifest':_0x1a9bd8['ok']?normalizeServiceTreeManifest(_0x2bde4d):undefined,'sourceHash':sha256(JSON[_0x4bb0b8(0x1ff)](_0x2bde4d,null,0x2)+'\x0a'),'registryIndex':_0x42761e,'registryServiceCode':_0x147901};});}function aggregateValidationReports(_0x4de5ec){const _0x343847=a34_0x5818dc,_0x2bd180=_0x4de5ec['flatMap'](_0x468069=>_0x468069['registryIndex']===undefined?_0x468069[_0x343847(0x233)][_0x343847(0x22b)]:_0x468069[_0x343847(0x233)][_0x343847(0x22b)][_0x343847(0x1ed)](_0x3a209e=>({..._0x3a209e,'path':prefixRegistryIssuePath(_0x468069[_0x343847(0x20d)],_0x3a209e[_0x343847(0x20f)])}))),_0x528e1c=_0x4de5ec[_0x343847(0x236)](_0x247c7c=>_0x247c7c[_0x343847(0x20d)]===undefined?_0x247c7c[_0x343847(0x233)][_0x343847(0x21f)]:_0x247c7c[_0x343847(0x233)]['warnings'][_0x343847(0x1ed)](_0x4baeee=>({..._0x4baeee,'path':prefixRegistryIssuePath(_0x247c7c[_0x343847(0x20d)],_0x4baeee[_0x343847(0x20f)])})));return{'ok':_0x2bd180[_0x343847(0x1fb)]===0x0,'errors':_0x2bd180,'warnings':_0x528e1c};}function prefixRegistryIssuePath(_0x2a66d4,_0x4698f4){const _0x215dc1=a34_0x5818dc;if(_0x4698f4==='$')return'$.services['+_0x2a66d4+'].manifest';if(_0x4698f4['startsWith']('$.'))return'$.services['+_0x2a66d4+_0x215dc1(0x22a)+_0x4698f4['slice'](0x1);if(_0x4698f4[_0x215dc1(0x1f1)]('$['))return _0x215dc1(0x203)+_0x2a66d4+_0x215dc1(0x22a)+_0x4698f4[_0x215dc1(0x20e)](0x1);return _0x215dc1(0x203)+_0x2a66d4+_0x215dc1(0x21a)+_0x4698f4;}function isServiceRegistryLike(_0x56c58c){const _0x2b873a=a34_0x5818dc;return isObjectRecord(_0x56c58c)&&_0x56c58c[_0x2b873a(0x221)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x56c58c[_0x2b873a(0x1f5)]);}function isObjectRecord(_0x2b1dd7){const _0x46cbd8=a34_0x5818dc;return Boolean(_0x2b1dd7)&&typeof _0x2b1dd7==='object'&&!Array[_0x46cbd8(0x237)](_0x2b1dd7);}function emptyServiceRegistryInspection(_0x3abbfe,_0x5308c5,_0x24befd){return{'registryPath':_0x3abbfe,'exists':_0x24befd,'status':_0x5308c5,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x240e3b){const _0x383676=a34_0x5818dc,_0x126cb0=_0x240e3b['normalizedManifest'],_0x447c20=_0x126cb0['commands'][_0x383676(0x1ed)](_0x116cc7=>({'path':_0x116cc7[_0x383676(0x1f6)],'description':_0x116cc7[_0x383676(0x1f7)],'risk':_0x116cc7[_0x383676(0x208)],'targetKind':_0x116cc7[_0x383676(0x1f3)]['kind'],'targetCommand':_0x116cc7[_0x383676(0x1f3)]['command']}));return{'serviceCode':_0x240e3b[_0x383676(0x230)],'name':_0x126cb0[_0x383676(0x22d)][_0x383676(0x219)],'description':_0x126cb0[_0x383676(0x22d)][_0x383676(0x1f7)],'version':_0x240e3b[_0x383676(0x1f4)],'importedAt':_0x240e3b[_0x383676(0x218)],'source':_0x240e3b['source'],'commandCount':_0x447c20[_0x383676(0x1fb)],'commands':_0x447c20};}function sha256(_0x2f4b3b){const _0x18a81b=a34_0x5818dc;return createHash(_0x18a81b(0x212))[_0x18a81b(0x215)](_0x2f4b3b)['digest']('hex');}
1
+ (function(_0x1e32aa,_0x2c60cb){const _0x490400=a34_0x38b2,_0x106514=_0x1e32aa();while(!![]){try{const _0x11b7be=parseInt(_0x490400(0xc0))/0x1+parseInt(_0x490400(0xc4))/0x2+parseInt(_0x490400(0xe0))/0x3+parseInt(_0x490400(0xa5))/0x4+parseInt(_0x490400(0xd7))/0x5+parseInt(_0x490400(0xd4))/0x6+-parseInt(_0x490400(0xe1))/0x7;if(_0x11b7be===_0x2c60cb)break;else _0x106514['push'](_0x106514['shift']());}catch(_0xef7c4f){_0x106514['push'](_0x106514['shift']());}}}(a34_0x2cdb,0x8d86f));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='service.json';export function getServiceRegistryPath(_0x2d0e6f={}){const _0x391684=a34_0x38b2;return resolve(_0x2d0e6f[_0x391684(0xeb)]??homedir(),PRODUCT_CONFIG['homeDirName'],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x2a15fc={}){const _0x34cfe5=a34_0x38b2,_0x40d8c5=getServiceRegistryPath(_0x2a15fc);if(!existsSync(_0x40d8c5))return emptyServiceRegistry();try{const _0x4d6459=readFileSync(_0x40d8c5,_0x34cfe5(0xd8));if(!_0x4d6459[_0x34cfe5(0xbd)]())return emptyServiceRegistry();const _0x1ea30a=JSON[_0x34cfe5(0xd0)](_0x4d6459);if(_0x1ea30a[_0x34cfe5(0xde)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x34cfe5(0xec)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x1ea30a['schemaVersion']),_0x34cfe5(0xaf)+_0x40d8c5+'.');if(!Array[_0x34cfe5(0xcf)](_0x1ea30a['services']))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x1ea30a[_0x34cfe5(0xe9)],'services':_0x1ea30a['services']};}catch(_0x6d3f03){if(_0x6d3f03 instanceof Error&&_0x6d3f03[_0x34cfe5(0xe8)]===_0x34cfe5(0xb1))throw _0x6d3f03;throw CliErrors[_0x34cfe5(0xec)]('Invalid\x20service\x20registry\x20JSON:\x20'+_0x40d8c5,_0x34cfe5(0xb2));}}export function writeServiceRegistry(_0xdab1ed,_0x5e6e7={}){const _0x14403f=a34_0x38b2,_0x5c7d99=getServiceRegistryPath(_0x5e6e7),_0x2b5915=dirname(_0x5c7d99);!existsSync(_0x2b5915)&&mkdirSync(_0x2b5915,{'recursive':!![]});const _0x4af543=_0x5c7d99+_0x14403f(0xd3);try{writeFileSync(_0x4af543,JSON[_0x14403f(0xbe)](_0xdab1ed,null,0x2)+'\x0a',{'encoding':_0x14403f(0xd8),'mode':0x180}),renameSync(_0x4af543,_0x5c7d99);}catch(_0xa774bb){try{unlinkSync(_0x4af543);}catch{}if(_0xa774bb?.[_0x14403f(0xb7)]===_0x14403f(0xbb))throw CliErrors[_0x14403f(0xec)](_0x14403f(0xe7)+_0x5c7d99);throw _0xa774bb;}return _0x5c7d99;}export function loadServiceManifestFromFile(_0x4bd792){const _0x14dc24=a34_0x38b2,_0x3fab3d=resolve(_0x4bd792);if(!existsSync(_0x3fab3d))throw CliErrors[_0x14dc24(0xec)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x4bd792);let _0x255da6;const _0x287079=readFileSync(_0x3fab3d,_0x14dc24(0xd8));try{_0x255da6=JSON[_0x14dc24(0xd0)](_0x287079);}catch{throw CliErrors[_0x14dc24(0xec)](_0x14dc24(0xe3)+_0x4bd792,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x7e98b7=sha256(_0x287079),_0x46f91b=extractLoadedServiceManifests(_0x255da6,_0x7e98b7),_0x48be76=aggregateValidationReports(_0x46f91b),_0x4ac295=_0x46f91b[0x0];return{'filePath':_0x3fab3d,'hash':_0x7e98b7,'kind':isServiceRegistryLike(_0x255da6)?_0x14dc24(0xb5):_0x14dc24(0xf6),'manifest':_0x4ac295?.[_0x14dc24(0xf6)]??_0x255da6,'report':_0x48be76,'normalizedManifest':_0x46f91b['length']===0x1?_0x4ac295?.[_0x14dc24(0xdd)]:undefined,'manifests':_0x46f91b};}export function importServiceManifest(_0x26f6b6,_0x25f607={}){const _0x8355b3=a34_0x38b2,_0x4c060c=loadServiceManifestFromFile(_0x26f6b6);if(!_0x4c060c[_0x8355b3(0xef)]['ok'])throw CliErrors[_0x8355b3(0xec)](formatValidationFailure(_0x4c060c[_0x8355b3(0xef)]),_0x8355b3(0xee));if(_0x4c060c[_0x8355b3(0xed)][_0x8355b3(0xc3)]===0x0)throw CliErrors['validation'](_0x8355b3(0xba),_0x8355b3(0xbf));const _0x440cba=readServiceRegistry(_0x25f607),_0x3d19c8=(_0x25f607[_0x8355b3(0xf7)]??(()=>new Date()))()[_0x8355b3(0xae)](),_0x4c9d33=[];let _0x156656=0x0,_0xfaca66=0x0;for(const _0x4d45c6 of _0x4c060c[_0x8355b3(0xed)]){if(!_0x4d45c6['normalizedManifest'])continue;const _0x2e1f16=_0x4d45c6[_0x8355b3(0xdd)]['service']['code'],_0x1b1b80={'serviceCode':_0x2e1f16,'version':_0x4d45c6['normalizedManifest'][_0x8355b3(0xb6)],'importedAt':_0x3d19c8,'source':{'type':_0x8355b3(0xd6),'path':_0x4c060c[_0x8355b3(0xf1)],'hash':_0x4d45c6[_0x8355b3(0xf4)]},'manifest':_0x4d45c6[_0x8355b3(0xf6)],'normalizedManifest':_0x4d45c6[_0x8355b3(0xdd)]},_0x34021a=_0x440cba[_0x8355b3(0xf0)][_0x8355b3(0xea)](_0x3d2785=>_0x3d2785[_0x8355b3(0xce)]===_0x2e1f16);_0x34021a>=0x0?(_0x440cba[_0x8355b3(0xf0)][_0x34021a]=_0x1b1b80,_0xfaca66++):(_0x440cba['services'][_0x8355b3(0xd2)](_0x1b1b80),_0x156656++),_0x4c9d33[_0x8355b3(0xd2)](_0x1b1b80);}_0x440cba[_0x8355b3(0xf0)][_0x8355b3(0xf3)]((_0x143aac,_0x2a093b)=>_0x143aac['serviceCode'][_0x8355b3(0xdc)](_0x2a093b[_0x8355b3(0xce)])),_0x440cba[_0x8355b3(0xe9)]=_0x3d19c8;const _0x2f6046=writeServiceRegistry(_0x440cba,_0x25f607);return{'registryPath':_0x2f6046,'entry':_0x4c9d33[0x0],'replaced':_0x4c9d33['length']===0x1?_0xfaca66===0x1:_0xfaca66>0x0,'entries':_0x4c9d33,'imported':_0x156656,'updated':_0xfaca66,'serviceCount':_0x440cba[_0x8355b3(0xf0)][_0x8355b3(0xc3)]};}function a34_0x38b2(_0x4c6dcb,_0x3ebe55){_0x4c6dcb=_0x4c6dcb-0xa5;const _0x2cdba0=a34_0x2cdb();let _0x38b26d=_0x2cdba0[_0x4c6dcb];return _0x38b26d;}export function exportServiceManifest(_0x17b98d,_0x3c4c7a,_0xe6ec35={}){const _0x3b6515=a34_0x38b2,_0x106d3e=getServiceRegistryPath(_0xe6ec35),_0x4135cf=getLocalServiceEntry(_0x17b98d,_0xe6ec35);if(!_0x4135cf)throw CliErrors['validation'](_0x3b6515(0xcd)+_0x17b98d,_0x3b6515(0xd9));const _0x7ad4=resolve(_0x3c4c7a),_0x102f2e=dirname(_0x7ad4);return!existsSync(_0x102f2e)&&mkdirSync(_0x102f2e,{'recursive':!![]}),writeFileSync(_0x7ad4,JSON[_0x3b6515(0xbe)](_0x4135cf['manifest'],null,0x2)+'\x0a',{'encoding':_0x3b6515(0xd8),'mode':0x180}),{'registryPath':_0x106d3e,'filePath':_0x7ad4,'entry':_0x4135cf};}export function removeServiceManifest(_0x251add,_0x1d1feb={}){const _0x1dc09a=a34_0x38b2,_0xcc4d6b=readServiceRegistry(_0x1d1feb),_0x2ab2fd=_0x251add[_0x1dc09a(0xbd)](),_0x393a53=_0xcc4d6b[_0x1dc09a(0xf0)][_0x1dc09a(0xea)](_0x540477=>_0x540477['serviceCode']===_0x2ab2fd);if(_0x393a53<0x0)throw CliErrors[_0x1dc09a(0xec)](_0x1dc09a(0xcd)+_0x2ab2fd,_0x1dc09a(0xd9));const [_0xadb3c2]=_0xcc4d6b[_0x1dc09a(0xf0)][_0x1dc09a(0xcb)](_0x393a53,0x1),_0x31402a=(_0x1d1feb[_0x1dc09a(0xf7)]??(()=>new Date()))()['toISOString']();_0xcc4d6b[_0x1dc09a(0xe9)]=_0x31402a;const _0x6522dd=writeServiceRegistry(_0xcc4d6b,_0x1d1feb);return{'registryPath':_0x6522dd,'entry':_0xadb3c2,'serviceCount':_0xcc4d6b[_0x1dc09a(0xf0)]['length']};}export function listLocalServices(_0x3db4bc={}){return readServiceRegistry(_0x3db4bc)['services'];}export function getLocalServiceEntry(_0x5f5cca,_0x3f3163={}){const _0x377895=a34_0x38b2;return readServiceRegistry(_0x3f3163)[_0x377895(0xf0)]['find'](_0x4e59ee=>_0x4e59ee[_0x377895(0xce)]===_0x5f5cca['trim']());}function a34_0x2cdb(){const _0x266485=['length','1091370tAlIgd','$.services[','update','digest','object','command','join','splice','service','Local\x20service\x20not\x20found:\x20','serviceCode','isArray','parse','path','push','.tmp','5099820omekth','slice','file','4846190gJwuum','utf8','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','description','risk','localeCompare','normalizedManifest','schemaVersion','Service\x20manifest\x20validation\x20failed:\x0a','2952753tPZrLX','30048494daxxHh','importedAt','Invalid\x20service\x20manifest\x20JSON:\x20','string','services\x20must\x20be\x20an\x20array','missing','Cannot\x20write\x20service\x20registry:\x20','name','updatedAt','findIndex','homeDir','validation','manifests','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','report','services','filePath','flatMap','sort','sourceHash','Unsupported\x20schemaVersion:\x20','manifest','now','3309932LLewAR','hex','sha256','target','kind','commands','map','invalid','registryIndex','toISOString','Remove\x20or\x20migrate\x20','].manifest','CliError','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','].manifest.','cliPath','registry','version','code','empty','warnings','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','ENOENT','message','trim','stringify','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','695710HCtDWd','startsWith','errors'];a34_0x2cdb=function(){return _0x266485;};return a34_0x2cdb();}export function listLocalServiceTrees(_0x4dcec6={}){const _0x4344c9=a34_0x38b2;return readServiceRegistry(_0x4dcec6)[_0x4344c9(0xf0)][_0x4344c9(0xab)](_0x22bb1f=>_0x22bb1f[_0x4344c9(0xdd)]);}export function inspectServiceRegistry(_0x1db7bf={}){const _0x1202c1=a34_0x38b2,_0x3560c9=getServiceRegistryPath(_0x1db7bf);if(!existsSync(_0x3560c9))return emptyServiceRegistryInspection(_0x3560c9,_0x1202c1(0xe6),![]);try{const _0x57b89e=readFileSync(_0x3560c9,_0x1202c1(0xd8));if(!_0x57b89e[_0x1202c1(0xbd)]())return emptyServiceRegistryInspection(_0x3560c9,_0x1202c1(0xb8),!![]);const _0x298710=JSON[_0x1202c1(0xd0)](_0x57b89e);if(_0x298710['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x3560c9,_0x1202c1(0xac),!![]),'schemaVersion':_0x298710[_0x1202c1(0xde)],'message':_0x1202c1(0xf5)+String(_0x298710[_0x1202c1(0xde)])};if(!Array[_0x1202c1(0xcf)](_0x298710[_0x1202c1(0xf0)]))return{...emptyServiceRegistryInspection(_0x3560c9,_0x1202c1(0xac),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x298710[_0x1202c1(0xe9)],'message':_0x1202c1(0xe5)};const _0x7da40d=_0x298710[_0x1202c1(0xf0)][_0x1202c1(0xab)](summarizeLocalServiceEntry);return{'registryPath':_0x3560c9,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x298710['updatedAt'],'serviceCount':_0x7da40d[_0x1202c1(0xc3)],'commandCount':_0x7da40d['reduce']((_0x417950,_0x275800)=>_0x417950+_0x275800['commandCount'],0x0),'services':_0x7da40d};}catch(_0x1e39eb){return{...emptyServiceRegistryInspection(_0x3560c9,_0x1202c1(0xac),!![]),'message':_0x1e39eb instanceof Error?_0x1e39eb[_0x1202c1(0xbc)]:String(_0x1e39eb)};}}export function formatValidationFailure(_0x2d899e){const _0x1c893e=a34_0x38b2,_0x4d3668=_0x2d899e[_0x1c893e(0xc2)]['map'](_0x3849f7=>_0x3849f7[_0x1c893e(0xd1)]+':\x20'+_0x3849f7[_0x1c893e(0xbc)]);return _0x1c893e(0xdf)+_0x4d3668[_0x1c893e(0xca)]('\x0a');}function extractLoadedServiceManifests(_0x4e92ef,_0x598748){const _0x53ce47=a34_0x38b2;if(!isServiceRegistryLike(_0x4e92ef)){const _0x1134c5=_0x4e92ef,_0x4c470b=validateServiceTreeManifest(_0x1134c5);return[{'manifest':_0x1134c5,'report':_0x4c470b,'normalizedManifest':_0x4c470b['ok']?normalizeServiceTreeManifest(_0x1134c5):undefined,'sourceHash':_0x598748}];}return _0x4e92ef[_0x53ce47(0xf0)][_0x53ce47(0xab)]((_0x352c9c,_0x1571ea)=>{const _0x155622=_0x53ce47,_0x271372=isObjectRecord(_0x352c9c)?_0x352c9c['manifest']:undefined,_0x1cfa4a=validateServiceTreeManifest(_0x271372),_0xeb8c95=isObjectRecord(_0x352c9c)&&typeof _0x352c9c[_0x155622(0xce)]===_0x155622(0xe4)?_0x352c9c[_0x155622(0xce)]:undefined;return{'manifest':_0x271372,'report':_0x1cfa4a,'normalizedManifest':_0x1cfa4a['ok']?normalizeServiceTreeManifest(_0x271372):undefined,'sourceHash':sha256(JSON[_0x155622(0xbe)](_0x271372,null,0x2)+'\x0a'),'registryIndex':_0x1571ea,'registryServiceCode':_0xeb8c95};});}function aggregateValidationReports(_0x4eff5a){const _0xfdad80=a34_0x38b2,_0x279a5e=_0x4eff5a[_0xfdad80(0xf2)](_0x55247f=>_0x55247f['registryIndex']===undefined?_0x55247f['report'][_0xfdad80(0xc2)]:_0x55247f[_0xfdad80(0xef)]['errors'][_0xfdad80(0xab)](_0x1de33f=>({..._0x1de33f,'path':prefixRegistryIssuePath(_0x55247f[_0xfdad80(0xad)],_0x1de33f[_0xfdad80(0xd1)])}))),_0x4b7f83=_0x4eff5a[_0xfdad80(0xf2)](_0x1c3e00=>_0x1c3e00[_0xfdad80(0xad)]===undefined?_0x1c3e00['report']['warnings']:_0x1c3e00[_0xfdad80(0xef)][_0xfdad80(0xb9)]['map'](_0x456f97=>({..._0x456f97,'path':prefixRegistryIssuePath(_0x1c3e00[_0xfdad80(0xad)],_0x456f97[_0xfdad80(0xd1)])})));return{'ok':_0x279a5e[_0xfdad80(0xc3)]===0x0,'errors':_0x279a5e,'warnings':_0x4b7f83};}function prefixRegistryIssuePath(_0x55e18d,_0x7e0e89){const _0x38a9ee=a34_0x38b2;if(_0x7e0e89==='$')return _0x38a9ee(0xc5)+_0x55e18d+_0x38a9ee(0xb0);if(_0x7e0e89['startsWith']('$.'))return _0x38a9ee(0xc5)+_0x55e18d+_0x38a9ee(0xb0)+_0x7e0e89['slice'](0x1);if(_0x7e0e89[_0x38a9ee(0xc1)]('$['))return _0x38a9ee(0xc5)+_0x55e18d+_0x38a9ee(0xb0)+_0x7e0e89[_0x38a9ee(0xd5)](0x1);return _0x38a9ee(0xc5)+_0x55e18d+_0x38a9ee(0xb3)+_0x7e0e89;}function isServiceRegistryLike(_0x23424d){const _0x30817d=a34_0x38b2;return isObjectRecord(_0x23424d)&&_0x23424d[_0x30817d(0xde)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x30817d(0xcf)](_0x23424d[_0x30817d(0xf0)]);}function isObjectRecord(_0x3278da){const _0x2893a8=a34_0x38b2;return Boolean(_0x3278da)&&typeof _0x3278da===_0x2893a8(0xc8)&&!Array['isArray'](_0x3278da);}function emptyServiceRegistryInspection(_0x5d57d1,_0x4c373c,_0x300810){return{'registryPath':_0x5d57d1,'exists':_0x300810,'status':_0x4c373c,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x502c12){const _0x63a6e6=a34_0x38b2,_0x3bfab6=_0x502c12[_0x63a6e6(0xdd)],_0x4c7d9c=_0x3bfab6[_0x63a6e6(0xaa)]['map'](_0x14f00f=>({'path':_0x14f00f[_0x63a6e6(0xb4)],'description':_0x14f00f[_0x63a6e6(0xda)],'risk':_0x14f00f[_0x63a6e6(0xdb)],'targetKind':_0x14f00f[_0x63a6e6(0xa8)][_0x63a6e6(0xa9)],'targetCommand':_0x14f00f['target'][_0x63a6e6(0xc9)]}));return{'serviceCode':_0x502c12['serviceCode'],'name':_0x3bfab6[_0x63a6e6(0xcc)][_0x63a6e6(0xe8)],'description':_0x3bfab6[_0x63a6e6(0xcc)][_0x63a6e6(0xda)],'version':_0x502c12[_0x63a6e6(0xb6)],'importedAt':_0x502c12[_0x63a6e6(0xe2)],'source':_0x502c12['source'],'commandCount':_0x4c7d9c[_0x63a6e6(0xc3)],'commands':_0x4c7d9c};}function sha256(_0x2fb118){const _0xa32c08=a34_0x38b2;return createHash(_0xa32c08(0xa7))[_0xa32c08(0xc6)](_0x2fb118)[_0xa32c08(0xc7)](_0xa32c08(0xa6));}
@@ -1 +1 @@
1
- const a35_0x4a821f=a35_0x530a;(function(_0xcb1b47,_0x574bff){const _0x12a82a=a35_0x530a,_0x2accbd=_0xcb1b47();while(!![]){try{const _0xf9e88=parseInt(_0x12a82a(0x96))/0x1*(-parseInt(_0x12a82a(0x91))/0x2)+parseInt(_0x12a82a(0xa1))/0x3*(parseInt(_0x12a82a(0x9e))/0x4)+-parseInt(_0x12a82a(0x99))/0x5*(-parseInt(_0x12a82a(0xab))/0x6)+parseInt(_0x12a82a(0x92))/0x7+parseInt(_0x12a82a(0x95))/0x8+parseInt(_0x12a82a(0x8b))/0x9+parseInt(_0x12a82a(0x8d))/0xa*(-parseInt(_0x12a82a(0xaa))/0xb);if(_0xf9e88===_0x574bff)break;else _0x2accbd['push'](_0x2accbd['shift']());}catch(_0x323b5d){_0x2accbd['push'](_0x2accbd['shift']());}}}(a35_0x1329,0xcda39));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';function a35_0x1329(){const _0x3b81d2=['186KwOvOS','utf8','WRITE','type','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','files','force','create','Refusing\x20to\x20overwrite\x20symlink:\x20','11OLymSp','1828368byQlTh','write','bool','skill','9162864aeZLVe','Created\x20local\x20Skill\x20draft\x20','33511870CAspfz','validation','content','skillName','2922892jvzqJI','11693983BCqnEt','rendered','isSymbolicLink','10085736RruNKN','1YPPywP','path','name','25zOCjnT','str','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','map','trim','11736SNvwUS','skillDir','Skill\x20directory\x20already\x20exists:\x20'];a35_0x1329=function(){return _0x3b81d2;};return a35_0x1329();}export const createCommand={'service':a35_0x4a821f(0x8a),'command':a35_0x4a821f(0xa8),'description':'Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','risk':a35_0x4a821f(0x88),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x50dacd){const _0x2f8247=a35_0x4a821f,_0x5244c9=buildSkillCreatePlan(_0x50dacd[_0x2f8247(0x9a)](_0x2f8247(0x98)),_0x50dacd[_0x2f8247(0x9a)](_0x2f8247(0xa4)),_0x50dacd['str']('target'));return{'method':_0x2f8247(0xa3),'url':_0x5244c9['skillDir'],'body':{'skillName':_0x5244c9[_0x2f8247(0x93)][_0x2f8247(0x90)],'type':_0x5244c9['rendered'][_0x2f8247(0xa4)],'selfContained':!![],'files':_0x5244c9[_0x2f8247(0x93)][_0x2f8247(0xa6)][_0x2f8247(0x9c)](_0x1145c=>_0x1145c['path'])},'description':_0x2f8247(0x9b)};},async 'execute'(_0x32f74e){const _0x5adcdd=a35_0x4a821f,_0x4a426a=buildSkillCreatePlan(_0x32f74e[_0x5adcdd(0x9a)](_0x5adcdd(0x98)),_0x32f74e['str']('type'),_0x32f74e['str']('target'));return writeSkillDraft(_0x4a426a,_0x32f74e[_0x5adcdd(0x89)](_0x5adcdd(0xa7))),{'ok':!![],'data':{'skillName':_0x4a426a[_0x5adcdd(0x93)][_0x5adcdd(0x90)],'type':_0x4a426a['rendered'][_0x5adcdd(0xa4)],'dir':_0x4a426a['skillDir'],'files':_0x4a426a[_0x5adcdd(0x93)][_0x5adcdd(0xa6)][_0x5adcdd(0x9c)](_0x557d0f=>_0x557d0f['path'])},'message':_0x5adcdd(0x8c)+_0x4a426a[_0x5adcdd(0x93)][_0x5adcdd(0x90)]};}};function buildSkillCreatePlan(_0x3ebd99,_0x26bb30,_0x4219e8){const _0x4b8ac0=renderSkillTemplate({'skillName':_0x3ebd99,'type':_0x26bb30}),_0x1dfaf1=resolve(normalizeSkillTarget(_0x4219e8));return{'rendered':_0x4b8ac0,'targetRoot':_0x1dfaf1,'skillDir':resolve(_0x1dfaf1,_0x4b8ac0['skillName'])};}function normalizeSkillTarget(_0x7c2612){const _0x2dfdc9=a35_0x4a821f;return(_0x7c2612||DEFAULT_SKILL_TARGET)[_0x2dfdc9(0x9d)]()||DEFAULT_SKILL_TARGET;}function a35_0x530a(_0x54bb7a,_0x2fa3fb){_0x54bb7a=_0x54bb7a-0x88;const _0x132908=a35_0x1329();let _0x530ae9=_0x132908[_0x54bb7a];return _0x530ae9;}function writeSkillDraft(_0x1146a8,_0x34b2d9){const _0x44c5ee=a35_0x4a821f;if(existsSync(_0x1146a8[_0x44c5ee(0x9f)])){const _0xdd2d1b=lstatSync(_0x1146a8[_0x44c5ee(0x9f)]);if(!_0xdd2d1b['isDirectory']()||_0xdd2d1b[_0x44c5ee(0x94)]())throw CliErrors[_0x44c5ee(0x8e)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x1146a8[_0x44c5ee(0x9f)]);if(!_0x34b2d9)throw CliErrors[_0x44c5ee(0x8e)](_0x44c5ee(0xa0)+_0x1146a8['skillDir'],_0x44c5ee(0xa5));}for(const _0x447128 of _0x1146a8[_0x44c5ee(0x93)]['files']){const _0x1524b3=resolve(_0x1146a8[_0x44c5ee(0x9f)],_0x447128[_0x44c5ee(0x97)]),_0x5eadee=dirname(_0x1524b3);mkdirSync(_0x5eadee,{'recursive':!![]});if(existsSync(_0x1524b3)&&lstatSync(_0x1524b3)[_0x44c5ee(0x94)]())throw CliErrors[_0x44c5ee(0x8e)](_0x44c5ee(0xa9)+_0x1524b3);writeFileSync(_0x1524b3,_0x447128[_0x44c5ee(0x8f)],_0x44c5ee(0xa2));}}
1
+ const a35_0x30bca0=a35_0x85ee;(function(_0x4ff638,_0x9670c1){const _0x206318=a35_0x85ee,_0x14a0e9=_0x4ff638();while(!![]){try{const _0x30ecf3=-parseInt(_0x206318(0xb0))/0x1*(-parseInt(_0x206318(0xa6))/0x2)+-parseInt(_0x206318(0xaa))/0x3+-parseInt(_0x206318(0xc9))/0x4*(parseInt(_0x206318(0xb9))/0x5)+-parseInt(_0x206318(0xa7))/0x6*(-parseInt(_0x206318(0xad))/0x7)+parseInt(_0x206318(0xa5))/0x8*(parseInt(_0x206318(0xc7))/0x9)+-parseInt(_0x206318(0xbe))/0xa+parseInt(_0x206318(0xb8))/0xb;if(_0x30ecf3===_0x9670c1)break;else _0x14a0e9['push'](_0x14a0e9['shift']());}catch(_0x3092c3){_0x14a0e9['push'](_0x14a0e9['shift']());}}}(a35_0x28be,0x70e03));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';function a35_0x28be(){const _0x4c30b7=['523864aqonzE','15ZCshHA','trim','map','force','Skill\x20directory\x20already\x20exists:\x20','9114230iUoAnd','files','skillDir','target','write','validation','type','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','str','288027gFfmLi','bool','36560bSlixr','WRITE','136qsTqqI','1753756kHTBTM','6eILwyQ','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','path','770430uyFnOD','skillName','utf8','1326073CVXSEw','Created\x20local\x20Skill\x20draft\x20','create','1LrjebW','rendered','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','name','content','skill','Refusing\x20to\x20overwrite\x20symlink:\x20','isSymbolicLink'];a35_0x28be=function(){return _0x4c30b7;};return a35_0x28be();}import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';function a35_0x85ee(_0x2bd01b,_0x39e548){_0x2bd01b=_0x2bd01b-0xa4;const _0x28be38=a35_0x28be();let _0x85eeb5=_0x28be38[_0x2bd01b];return _0x85eeb5;}export const createCommand={'service':a35_0x30bca0(0xb5),'command':a35_0x30bca0(0xaf),'description':'Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','risk':a35_0x30bca0(0xc2),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x3edd00){const _0x340fd3=a35_0x30bca0,_0x3bb475=buildSkillCreatePlan(_0x3edd00[_0x340fd3(0xc6)](_0x340fd3(0xb3)),_0x3edd00['str'](_0x340fd3(0xc4)),_0x3edd00[_0x340fd3(0xc6)](_0x340fd3(0xc1)));return{'method':_0x340fd3(0xa4),'url':_0x3bb475[_0x340fd3(0xc0)],'body':{'skillName':_0x3bb475['rendered'][_0x340fd3(0xab)],'type':_0x3bb475[_0x340fd3(0xb1)][_0x340fd3(0xc4)],'selfContained':!![],'files':_0x3bb475[_0x340fd3(0xb1)]['files'][_0x340fd3(0xbb)](_0x295ed1=>_0x295ed1[_0x340fd3(0xa9)])},'description':_0x340fd3(0xa8)};},async 'execute'(_0x1323a1){const _0x1e1ad8=a35_0x30bca0,_0x16e8ec=buildSkillCreatePlan(_0x1323a1[_0x1e1ad8(0xc6)](_0x1e1ad8(0xb3)),_0x1323a1[_0x1e1ad8(0xc6)](_0x1e1ad8(0xc4)),_0x1323a1['str'](_0x1e1ad8(0xc1)));return writeSkillDraft(_0x16e8ec,_0x1323a1[_0x1e1ad8(0xc8)](_0x1e1ad8(0xbc))),{'ok':!![],'data':{'skillName':_0x16e8ec[_0x1e1ad8(0xb1)][_0x1e1ad8(0xab)],'type':_0x16e8ec[_0x1e1ad8(0xb1)][_0x1e1ad8(0xc4)],'dir':_0x16e8ec[_0x1e1ad8(0xc0)],'files':_0x16e8ec[_0x1e1ad8(0xb1)][_0x1e1ad8(0xbf)][_0x1e1ad8(0xbb)](_0x3d9aed=>_0x3d9aed[_0x1e1ad8(0xa9)])},'message':_0x1e1ad8(0xae)+_0x16e8ec[_0x1e1ad8(0xb1)][_0x1e1ad8(0xab)]};}};function buildSkillCreatePlan(_0x2d66be,_0x1ceec6,_0x3472d5){const _0x11a9e8=a35_0x30bca0,_0x46c451=renderSkillTemplate({'skillName':_0x2d66be,'type':_0x1ceec6}),_0x51579d=resolve(normalizeSkillTarget(_0x3472d5));return{'rendered':_0x46c451,'targetRoot':_0x51579d,'skillDir':resolve(_0x51579d,_0x46c451[_0x11a9e8(0xab)])};}function normalizeSkillTarget(_0x2db888){const _0xa728aa=a35_0x30bca0;return(_0x2db888||DEFAULT_SKILL_TARGET)[_0xa728aa(0xba)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x48efe3,_0x35d2a9){const _0x1066bc=a35_0x30bca0;if(existsSync(_0x48efe3[_0x1066bc(0xc0)])){const _0x568a97=lstatSync(_0x48efe3[_0x1066bc(0xc0)]);if(!_0x568a97['isDirectory']()||_0x568a97['isSymbolicLink']())throw CliErrors[_0x1066bc(0xc3)](_0x1066bc(0xc5)+_0x48efe3['skillDir']);if(!_0x35d2a9)throw CliErrors['validation'](_0x1066bc(0xbd)+_0x48efe3[_0x1066bc(0xc0)],_0x1066bc(0xb2));}for(const _0x3665de of _0x48efe3[_0x1066bc(0xb1)][_0x1066bc(0xbf)]){const _0x1c8e98=resolve(_0x48efe3[_0x1066bc(0xc0)],_0x3665de['path']),_0x19f73d=dirname(_0x1c8e98);mkdirSync(_0x19f73d,{'recursive':!![]});if(existsSync(_0x1c8e98)&&lstatSync(_0x1c8e98)[_0x1066bc(0xb7)]())throw CliErrors[_0x1066bc(0xc3)](_0x1066bc(0xb6)+_0x1c8e98);writeFileSync(_0x1c8e98,_0x3665de[_0x1066bc(0xb4)],_0x1066bc(0xac));}}
@@ -1 +1 @@
1
- const a36_0x270bc9=a36_0x3729;function a36_0x2c0d(){const _0x4b451e=['unchanged','183jUyUMk','authRequired','install','1430907mcpMCq','\x20company\x20Skill(s).','removed','personal','reduce','skipped','company','skill','27ULDETq','str','97068uvzgja','scope','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','map','code','updated','includes','flatMap','action','appCode','envName','version','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','production','../../../skills/runtime-skill-sync.js','length','2905lTBHFi','../../../core/api-client.js','filter','created','Installed\x20','4830bPSlYm','push','6521396GdKtuj','1820118YCcgJT','\x20personal\x20and\x20','4358300xIAAYe','trim','10381728klSEPN'];a36_0x2c0d=function(){return _0x4b451e;};return a36_0x2c0d();}(function(_0x93004d,_0x1471d8){const _0x527769=a36_0x3729,_0xdb0d8d=_0x93004d();while(!![]){try{const _0x3441a5=parseInt(_0x527769(0x11b))/0x1+-parseInt(_0x527769(0x112))/0x2+parseInt(_0x527769(0x118))/0x3*(parseInt(_0x527769(0x125))/0x4)+-parseInt(_0x527769(0x135))/0x5*(-parseInt(_0x527769(0x10f))/0x6)+parseInt(_0x527769(0x111))/0x7+-parseInt(_0x527769(0x116))/0x8+parseInt(_0x527769(0x123))/0x9*(-parseInt(_0x527769(0x114))/0xa);if(_0x3441a5===_0x1471d8)break;else _0xdb0d8d['push'](_0xdb0d8d['shift']());}catch(_0x54478d){_0xdb0d8d['push'](_0xdb0d8d['shift']());}}}(a36_0x2c0d,0xc227e));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,SCOPE_FLAG}from'../flags.js';function a36_0x3729(_0x2213c8,_0x126596){_0x2213c8=_0x2213c8-0x10f;const _0x2c0dc8=a36_0x2c0d();let _0x372913=_0x2c0dc8[_0x2213c8];return _0x372913;}import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':a36_0x270bc9(0x122),'command':a36_0x270bc9(0x11a),'description':a36_0x270bc9(0x131),'risk':'write','requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG],async 'execute'(_0x4c31f9){return syncRuntimeSkills(_0x4c31f9);}};async function syncRuntimeSkills(_0x321f49){const _0x3b1c3c=a36_0x270bc9,{downloadRuntimeSkillPackage:_0x216919,listRuntimeSkills:_0x2c8a99}=await import(_0x3b1c3c(0x136)),{linkEffectiveRuntimeSkills:_0x4cc9fe,materializeRuntimeSkill:_0x5b9626,pruneStaleRuntimeSkillCache:_0x226232,pruneStaleRuntimeSkillLinks:_0xecc42f}=await import(_0x3b1c3c(0x133)),_0x1b0387=_0x321f49[_0x3b1c3c(0x124)](_0x3b1c3c(0x129)),_0x4cc448=normalizeSyncScopes(_0x321f49['str'](_0x3b1c3c(0x126))),_0x42272c=_0x321f49[_0x3b1c3c(0x12f)]??_0x3b1c3c(0x132),_0x4b8611=_0x321f49['accessKey'];if(!_0x4b8611)throw CliErrors[_0x3b1c3c(0x119)](_0x3b1c3c(0x127));const _0x22ceeb=await Promise['all'](_0x4cc448[_0x3b1c3c(0x128)](_0x2b83c8=>_0x2c8a99({'appCode':_0x321f49[_0x3b1c3c(0x12e)],'scope':_0x2b83c8,'code':_0x1b0387[_0x3b1c3c(0x115)]()||undefined}))),_0x101bbd=_0x4cc448[_0x3b1c3c(0x12b)](_0x3b1c3c(0x11e))?_0x22ceeb['flatMap']((_0x4ba7f2,_0x17587f)=>_0x4cc448[_0x17587f]===_0x3b1c3c(0x11e)?_0x4ba7f2[_0x3b1c3c(0x11e)]:[]):[],_0x251514=_0x4cc448['includes'](_0x3b1c3c(0x121))?_0x22ceeb[_0x3b1c3c(0x12c)]((_0x3c8b17,_0x32c737)=>_0x4cc448[_0x32c737]===_0x3b1c3c(0x121)?_0x3c8b17[_0x3b1c3c(0x121)]:[]):[],_0x39bc7f=new Set([..._0x101bbd['map'](_0x58de6e=>_0x58de6e['skillCode']?.['trim']())[_0x3b1c3c(0x137)](_0x28612=>Boolean(_0x28612)),..._0x251514['map'](_0x1e73b8=>_0x1e73b8['skillCode']?.['trim']())['filter'](_0x687ce1=>Boolean(_0x687ce1))]),_0xd1f609=_0x1b0387[_0x3b1c3c(0x115)]()?[_0x1b0387[_0x3b1c3c(0x115)]()]:undefined,_0x479636=_0x4cc448[_0x3b1c3c(0x134)]===0x2&&_0x4cc448[_0x3b1c3c(0x12b)]('personal')&&_0x4cc448[_0x3b1c3c(0x12b)](_0x3b1c3c(0x121)),_0x33aa2b=_0x479636?_0xecc42f(_0x321f49[_0x3b1c3c(0x12e)],_0x39bc7f,{},_0xd1f609):[],_0x1cd428=_0x226232({'env':_0x42272c,'accessKey':_0x4b8611,'appCode':_0x321f49['appCode'],'activeSkillCodes':_0x39bc7f,'pruneSkillCodes':_0xd1f609,'scopes':_0x4cc448}),_0xd7721c=[];for(const _0x4ac736 of _0x101bbd){_0xd7721c[_0x3b1c3c(0x110)](_0x5b9626(_0x4ac736,_0x3b1c3c(0x11e),{'env':_0x42272c,'accessKey':_0x4b8611,'appCode':_0x321f49[_0x3b1c3c(0x12e)],'packageBytes':await downloadSkillPackage(_0x4ac736,_0x3b1c3c(0x11e),_0x321f49[_0x3b1c3c(0x12e)],_0x216919)}));}for(const _0x1625af of _0x251514){_0xd7721c[_0x3b1c3c(0x110)](_0x5b9626(_0x1625af,_0x3b1c3c(0x121),{'env':_0x42272c,'accessKey':_0x4b8611,'appCode':_0x321f49['appCode'],'packageBytes':await downloadSkillPackage(_0x1625af,_0x3b1c3c(0x121),_0x321f49[_0x3b1c3c(0x12e)],_0x216919)}));}const _0x2b161b=_0x4cc9fe(_0xd7721c,_0x321f49[_0x3b1c3c(0x12e)]),_0x587c85=countLinkActions(_0x2b161b);return{'ok':!![],'data':{'appCode':_0x321f49[_0x3b1c3c(0x12e)],'personal':_0x101bbd[_0x3b1c3c(0x134)],'company':_0x251514[_0x3b1c3c(0x134)],'materialized':_0xd7721c[_0x3b1c3c(0x134)],'links':{'total':_0x2b161b[_0x3b1c3c(0x134)],'created':_0x587c85[_0x3b1c3c(0x138)]??0x0,'updated':_0x587c85[_0x3b1c3c(0x12a)]??0x0,'unchanged':_0x587c85[_0x3b1c3c(0x117)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x33aa2b[_0x3b1c3c(0x137)](_0x1a8333=>_0x1a8333[_0x3b1c3c(0x12d)]===_0x3b1c3c(0x11d))['length'],'cacheDirs':_0x1cd428[_0x3b1c3c(0x137)](_0x3a7d2c=>_0x3a7d2c[_0x3b1c3c(0x12d)]===_0x3b1c3c(0x11d))['length'],'skipped':[..._0x33aa2b,..._0x1cd428]['filter'](_0x441b00=>_0x441b00[_0x3b1c3c(0x12d)]===_0x3b1c3c(0x120))[_0x3b1c3c(0x134)]},'skills':{'personal':_0x101bbd[_0x3b1c3c(0x128)](summarizeRuntimeSkill),'company':_0x251514[_0x3b1c3c(0x128)](summarizeRuntimeSkill)}},'message':_0x3b1c3c(0x139)+_0x101bbd['length']+_0x3b1c3c(0x113)+_0x251514['length']+_0x3b1c3c(0x11c)};}async function downloadSkillPackage(_0x49c0cf,_0x3ad53f,_0x111a3b,_0x3bfc0b){const _0x2a1c7f=a36_0x270bc9,_0x56173f=_0x49c0cf[_0x2a1c7f(0x130)]?.[_0x2a1c7f(0x115)]();return _0x56173f?_0x3bfc0b(_0x3ad53f,_0x49c0cf['skillCode'],_0x111a3b,_0x56173f):_0x3bfc0b(_0x3ad53f,_0x49c0cf['skillCode'],_0x111a3b);}function countLinkActions(_0x227494){const _0x146d22=a36_0x270bc9;return _0x227494[_0x146d22(0x11f)]((_0x1dd23c,_0x5af6cb)=>{const _0x394cb5=_0x146d22;return _0x1dd23c[_0x5af6cb[_0x394cb5(0x12d)]]=(_0x1dd23c[_0x5af6cb['action']]??0x0)+0x1,_0x1dd23c;},{});}
1
+ const a36_0x50952d=a36_0x5c33;(function(_0x218bcc,_0x417b7a){const _0x5ab33c=a36_0x5c33,_0x313f1f=_0x218bcc();while(!![]){try{const _0x45ecf4=-parseInt(_0x5ab33c(0x1a2))/0x1+-parseInt(_0x5ab33c(0x1a1))/0x2+parseInt(_0x5ab33c(0x1aa))/0x3*(-parseInt(_0x5ab33c(0x194))/0x4)+-parseInt(_0x5ab33c(0x1b5))/0x5+parseInt(_0x5ab33c(0x196))/0x6*(-parseInt(_0x5ab33c(0x1b0))/0x7)+-parseInt(_0x5ab33c(0x19f))/0x8*(parseInt(_0x5ab33c(0x197))/0x9)+-parseInt(_0x5ab33c(0x1b8))/0xa*(-parseInt(_0x5ab33c(0x1af))/0xb);if(_0x45ecf4===_0x417b7a)break;else _0x313f1f['push'](_0x313f1f['shift']());}catch(_0x59f281){_0x313f1f['push'](_0x313f1f['shift']());}}}(a36_0x3f23,0xe662f));function a36_0x5c33(_0x3f999b,_0x4e4e68){_0x3f999b=_0x3f999b-0x192;const _0x3f2329=a36_0x3f23();let _0x5c339a=_0x3f2329[_0x3f999b];return _0x5c339a;}import{CliErrors}from'../../../errors.js';import{CODE_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';export const installCommand={'service':a36_0x50952d(0x19a),'command':a36_0x50952d(0x199),'description':'Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','risk':a36_0x50952d(0x1a6),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG],async 'execute'(_0x1ee9f5){return syncRuntimeSkills(_0x1ee9f5);}};async function syncRuntimeSkills(_0x536a5a){const _0x50f328=a36_0x50952d,{downloadRuntimeSkillPackage:_0x562c7d,listRuntimeSkills:_0x5bf66a}=await import(_0x50f328(0x1b3)),{linkEffectiveRuntimeSkills:_0x364fee,materializeRuntimeSkill:_0x49e826,pruneStaleRuntimeSkillCache:_0x51e53b,pruneStaleRuntimeSkillLinks:_0x2bbc67}=await import(_0x50f328(0x1b1)),_0x54d1d8=_0x536a5a[_0x50f328(0x1b4)](_0x50f328(0x1a4)),_0x1af623=normalizeSyncScopes(_0x536a5a[_0x50f328(0x1b4)](_0x50f328(0x1bd))),_0x5b8e81=_0x536a5a[_0x50f328(0x1a0)]??'production',_0x499902=_0x536a5a['accessKey'];if(!_0x499902)throw CliErrors[_0x50f328(0x19d)](_0x50f328(0x19b));const _0x4ed5d4=await Promise[_0x50f328(0x192)](_0x1af623['map'](_0x3681a2=>_0x5bf66a({'appCode':_0x536a5a['appCode'],'scope':_0x3681a2,'code':_0x54d1d8[_0x50f328(0x1bc)]()||undefined}))),_0x50f47a=_0x1af623[_0x50f328(0x1a9)](_0x50f328(0x193))?_0x4ed5d4[_0x50f328(0x1ae)]((_0x1f33f7,_0x3cbcf7)=>_0x1af623[_0x3cbcf7]===_0x50f328(0x193)?_0x1f33f7[_0x50f328(0x193)]:[]):[],_0x26f8fc=_0x1af623[_0x50f328(0x1a9)](_0x50f328(0x19c))?_0x4ed5d4[_0x50f328(0x1ae)]((_0x3c4fef,_0x2f037b)=>_0x1af623[_0x2f037b]===_0x50f328(0x19c)?_0x3c4fef[_0x50f328(0x19c)]:[]):[],_0x300704=new Set([..._0x50f47a[_0x50f328(0x1ba)](_0xcbee09=>_0xcbee09[_0x50f328(0x1b9)]?.[_0x50f328(0x1bc)]())['filter'](_0x5cfa14=>Boolean(_0x5cfa14)),..._0x26f8fc[_0x50f328(0x1ba)](_0x3e63b6=>_0x3e63b6['skillCode']?.[_0x50f328(0x1bc)]())['filter'](_0x140426=>Boolean(_0x140426))]),_0x53437e=_0x54d1d8[_0x50f328(0x1bc)]()?[_0x54d1d8[_0x50f328(0x1bc)]()]:undefined,_0x4c40ed=_0x1af623[_0x50f328(0x1b6)]===0x2&&_0x1af623[_0x50f328(0x1a9)](_0x50f328(0x193))&&_0x1af623[_0x50f328(0x1a9)]('company'),_0x5ebfb7=_0x4c40ed?_0x2bbc67(_0x536a5a[_0x50f328(0x1a7)],_0x300704,{},_0x53437e):[],_0x21ca9f=_0x51e53b({'env':_0x5b8e81,'accessKey':_0x499902,'appCode':_0x536a5a[_0x50f328(0x1a7)],'activeSkillCodes':_0x300704,'pruneSkillCodes':_0x53437e,'scopes':_0x1af623}),_0x506aeb=[];for(const _0x13f3cb of _0x50f47a){_0x506aeb[_0x50f328(0x1b2)](_0x49e826(_0x13f3cb,_0x50f328(0x193),{'env':_0x5b8e81,'accessKey':_0x499902,'appCode':_0x536a5a[_0x50f328(0x1a7)],'packageBytes':await downloadSkillPackage(_0x13f3cb,'personal',_0x536a5a[_0x50f328(0x1a7)],_0x562c7d)}));}for(const _0x100cc5 of _0x26f8fc){_0x506aeb['push'](_0x49e826(_0x100cc5,'company',{'env':_0x5b8e81,'accessKey':_0x499902,'appCode':_0x536a5a[_0x50f328(0x1a7)],'packageBytes':await downloadSkillPackage(_0x100cc5,_0x50f328(0x19c),_0x536a5a['appCode'],_0x562c7d)}));}const _0x193d06=_0x364fee(_0x506aeb,_0x536a5a['appCode']),_0x3fb0ab=countLinkActions(_0x193d06);return{'ok':!![],'data':{'appCode':_0x536a5a[_0x50f328(0x1a7)],'personal':_0x50f47a[_0x50f328(0x1b6)],'company':_0x26f8fc[_0x50f328(0x1b6)],'materialized':_0x506aeb['length'],'links':{'total':_0x193d06['length'],'created':_0x3fb0ab[_0x50f328(0x198)]??0x0,'updated':_0x3fb0ab['updated']??0x0,'unchanged':_0x3fb0ab[_0x50f328(0x1b7)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x5ebfb7[_0x50f328(0x1a3)](_0x1b3749=>_0x1b3749['action']===_0x50f328(0x1a8))[_0x50f328(0x1b6)],'cacheDirs':_0x21ca9f[_0x50f328(0x1a3)](_0x29ba06=>_0x29ba06[_0x50f328(0x1ab)]===_0x50f328(0x1a8))[_0x50f328(0x1b6)],'skipped':[..._0x5ebfb7,..._0x21ca9f]['filter'](_0x2251fa=>_0x2251fa['action']===_0x50f328(0x195))[_0x50f328(0x1b6)]},'skills':{'personal':_0x50f47a[_0x50f328(0x1ba)](summarizeRuntimeSkill),'company':_0x26f8fc[_0x50f328(0x1ba)](summarizeRuntimeSkill)}},'message':_0x50f328(0x1ad)+_0x50f47a[_0x50f328(0x1b6)]+_0x50f328(0x1a5)+_0x26f8fc[_0x50f328(0x1b6)]+_0x50f328(0x1ac)};}async function downloadSkillPackage(_0x20b3cf,_0x2e7368,_0x43cd2b,_0x1b8e55){const _0x1d4fa9=a36_0x50952d,_0x24f208=_0x20b3cf[_0x1d4fa9(0x19e)]?.[_0x1d4fa9(0x1bc)]();return _0x24f208?_0x1b8e55(_0x2e7368,_0x20b3cf[_0x1d4fa9(0x1b9)],_0x43cd2b,_0x24f208):_0x1b8e55(_0x2e7368,_0x20b3cf[_0x1d4fa9(0x1b9)],_0x43cd2b);}function countLinkActions(_0x29dcb9){const _0x1a7ed5=a36_0x50952d;return _0x29dcb9[_0x1a7ed5(0x1bb)]((_0x2242f0,_0x587c50)=>{const _0x295473=_0x1a7ed5;return _0x2242f0[_0x587c50['action']]=(_0x2242f0[_0x587c50[_0x295473(0x1ab)]]??0x0)+0x1,_0x2242f0;},{});}function a36_0x3f23(){const _0x3ae4b2=['personal','10784efLtCc','skipped','2779758rPYxty','315ulDdce','created','install','skill','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','company','authRequired','version','239128FWjcXK','envName','2663624aODxEn','1808042hTDOih','filter','code','\x20personal\x20and\x20','write','appCode','removed','includes','318PBRvpX','action','\x20company\x20Skill(s).','Installed\x20','flatMap','88776677ivjFuY','21yThMTZ','../../../skills/runtime-skill-sync.js','push','../../../core/api-client.js','str','6326250XaJaFT','length','unchanged','10sJrvBZ','skillCode','map','reduce','trim','scope','all'];a36_0x3f23=function(){return _0x3ae4b2;};return a36_0x3f23();}