@lovrabet/lovrabet-cli 2.1.4 → 2.1.5

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_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
+ const a27_0x6db92=a27_0x3431;(function(_0x131438,_0x13cce0){const _0x336283=a27_0x3431,_0x4eabb0=_0x131438();while(!![]){try{const _0x2b927f=parseInt(_0x336283(0x109))/0x1+-parseInt(_0x336283(0x125))/0x2*(parseInt(_0x336283(0x100))/0x3)+-parseInt(_0x336283(0x103))/0x4+-parseInt(_0x336283(0x114))/0x5*(-parseInt(_0x336283(0x120))/0x6)+parseInt(_0x336283(0xfb))/0x7+-parseInt(_0x336283(0x108))/0x8*(parseInt(_0x336283(0x104))/0x9)+parseInt(_0x336283(0xf3))/0xa*(parseInt(_0x336283(0x10d))/0xb);if(_0x2b927f===_0x13cce0)break;else _0x4eabb0['push'](_0x4eabb0['shift']());}catch(_0x3b883c){_0x4eabb0['push'](_0x4eabb0['shift']());}}}(a27_0x25d4,0x8e35f));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_0x6db92(0xed),'type':a27_0x6db92(0xe7),'required':!![],'description':a27_0x6db92(0x115)},FILE_FLAG={'name':'file','type':a27_0x6db92(0xe7),'required':!![],'description':a27_0x6db92(0x107)},QUERY_FLAG={'name':a27_0x6db92(0xe2),'type':a27_0x6db92(0xe7),'required':!![],'description':a27_0x6db92(0x11e)},TOPK_FLAG={'name':a27_0x6db92(0x110),'type':a27_0x6db92(0xf0),'description':a27_0x6db92(0xf6)};function readKnowledgeFile(_0x164edf){const _0x516d2f=a27_0x6db92;if(!_0x164edf)throw CliErrors[_0x516d2f(0x10a)](_0x516d2f(0xfe));if(!existsSync(_0x164edf))throw CliErrors[_0x516d2f(0x10a)](_0x516d2f(0x123)+_0x164edf);if(!statSync(_0x164edf)[_0x516d2f(0xe3)]())throw CliErrors[_0x516d2f(0x10a)](_0x516d2f(0x10c)+_0x164edf);return readFileSync(_0x164edf,'utf8');}function summarizePersonalItem(_0x2c157d){const _0x38692e=a27_0x6db92;return{'id':_0x2c157d['id'],'title':_0x2c157d['title'],'version':_0x2c157d[_0x38692e(0x106)],'ragStatus':_0x2c157d[_0x38692e(0xff)],'ragErrorMessage':_0x2c157d[_0x38692e(0xf5)],'updateTime':_0x2c157d[_0x38692e(0xea)]};}function detailPersonalItem(_0x1a7bbc){const _0x1fd53a=a27_0x6db92;return{'id':_0x1a7bbc['id'],'appCode':_0x1a7bbc[_0x1fd53a(0x11a)],'scope':_0x1a7bbc[_0x1fd53a(0x126)],'userId':_0x1a7bbc[_0x1fd53a(0xe6)],'title':_0x1a7bbc[_0x1fd53a(0xed)],'content':_0x1a7bbc[_0x1fd53a(0x11b)]??'','version':_0x1a7bbc['version'],'ragStatus':_0x1a7bbc[_0x1fd53a(0xff)],'ragErrorMessage':_0x1a7bbc['ragErrorMessage'],'createTime':_0x1a7bbc[_0x1fd53a(0xf4)],'updateTime':_0x1a7bbc[_0x1fd53a(0xea)]};}function summarizeSearchHit(_0x8cbfd0){const _0x4907d2=a27_0x6db92;return{'scope':_0x8cbfd0[_0x4907d2(0x126)],'docId':_0x8cbfd0[_0x4907d2(0xe8)],'score':_0x8cbfd0[_0x4907d2(0xef)],'weightedScore':_0x8cbfd0['weightedScore'],'content':_0x8cbfd0[_0x4907d2(0x11b)],'metadata':_0x8cbfd0[_0x4907d2(0x102)]};}function readTopK(_0x18931e){const _0x367f10=a27_0x6db92,_0x14c9fd=_0x18931e[_0x367f10(0x105)](_0x367f10(0x110));if(_0x14c9fd===undefined||_0x14c9fd===null||_0x14c9fd==='')return undefined;const _0x1e3a51=_0x18931e[_0x367f10(0x10e)]('topk');if(!Number[_0x367f10(0xfc)](_0x1e3a51)||_0x1e3a51<0x1)throw CliErrors[_0x367f10(0x10a)](_0x367f10(0x11f));return _0x1e3a51;}function a27_0x3431(_0x3d3ae1,_0x3c8f80){_0x3d3ae1=_0x3d3ae1-0xe2;const _0x25d45a=a27_0x25d4();let _0x3431d9=_0x25d45a[_0x3d3ae1];return _0x3431d9;}const kbList={'service':'kb','command':a27_0x6db92(0xf8),'description':a27_0x6db92(0x11c),'risk':a27_0x6db92(0xfa),'flags':[VERBOSE_FLAG],async 'execute'(_0x1a06ef){const _0x129d97=a27_0x6db92,_0x23a130=await listPersonalKnowledgeBaseItems(_0x1a06ef['appCode']);if(_0x1a06ef[_0x129d97(0xe9)](_0x129d97(0x121)))return{'ok':!![],'data':{'total':_0x23a130['length'],'items':_0x23a130}};return{'ok':!![],'data':{'total':_0x23a130[_0x129d97(0x101)],'items':_0x23a130[_0x129d97(0xe5)](summarizePersonalItem)}};}},kbDetail={'service':'kb','command':a27_0x6db92(0x116),'description':a27_0x6db92(0xeb),'risk':a27_0x6db92(0xfa),'flags':[{...ID_FLAG,'description':a27_0x6db92(0xf1)}],async 'execute'(_0x52af70){const _0xfdf091=a27_0x6db92,_0x1ee886=await getPersonalKnowledgeBaseItem(_0x52af70['num']('id'),_0x52af70[_0xfdf091(0x11a)]);return{'ok':!![],'data':detailPersonalItem(_0x1ee886)};}},kbCreate={'service':'kb','command':'create','description':a27_0x6db92(0x10b),'risk':'write','flags':[TITLE_FLAG,FILE_FLAG],async 'execute'(_0x4cb0f5){const _0x361845=a27_0x6db92,_0xd47edf=_0x4cb0f5['str'](_0x361845(0xed)),_0x11a412=readKnowledgeFile(_0x4cb0f5[_0x361845(0x122)](_0x361845(0x119))),_0x3db8cb=await createPersonalKnowledgeBaseItem(_0x4cb0f5[_0x361845(0x11a)],{'title':_0xd47edf,'content':_0x11a412});return{'ok':!![],'data':summarizePersonalItem(_0x3db8cb),'message':_0x361845(0x117)+_0x3db8cb['id']+'\x20('+_0x3db8cb['title']+')'};},async 'dryRun'(_0x2100cf){const _0x21f1bd=a27_0x6db92,_0x1876b5=_0x2100cf[_0x21f1bd(0x122)](_0x21f1bd(0xed)),_0x45514b=readKnowledgeFile(_0x2100cf[_0x21f1bd(0x122)](_0x21f1bd(0x119)));return dryRun(_0x21f1bd(0x111),_0x21f1bd(0x113))[_0x21f1bd(0x124)]({'appCode':_0x2100cf[_0x21f1bd(0x11a)],'title':_0x1876b5,'content':_0x45514b})[_0x21f1bd(0x118)](_0x21f1bd(0xe4)+_0x1876b5+'\x22')[_0x21f1bd(0xec)]();}},kbUpdate={'service':'kb','command':a27_0x6db92(0xf9),'description':'Update\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','risk':'write','flags':[{...ID_FLAG,'description':a27_0x6db92(0xf1)},{...TITLE_FLAG,'required':![],'description':a27_0x6db92(0xee)},FILE_FLAG],async 'execute'(_0x1bbd85){const _0x1f8dd7=a27_0x6db92,_0x4cc884=_0x1bbd85['num']('id'),_0x2447f6=readKnowledgeFile(_0x1bbd85[_0x1f8dd7(0x122)](_0x1f8dd7(0x119))),_0x244b2d=_0x1bbd85[_0x1f8dd7(0x122)]('title')||(await getPersonalKnowledgeBaseItem(_0x4cc884,_0x1bbd85['appCode']))['title'],_0x47a04c=await updatePersonalKnowledgeBaseItem(_0x4cc884,_0x1bbd85[_0x1f8dd7(0x11a)],{'title':_0x244b2d,'content':_0x2447f6});return{'ok':!![],'data':summarizePersonalItem(_0x47a04c),'message':_0x1f8dd7(0xf2)+_0x47a04c['id']+'\x20('+_0x47a04c[_0x1f8dd7(0xed)]+')'};},async 'dryRun'(_0x20dd32){const _0x47c515=a27_0x6db92,_0x4567ce=_0x20dd32['num']('id'),_0x5673a1=readKnowledgeFile(_0x20dd32[_0x47c515(0x122)](_0x47c515(0x119))),_0x51444e=_0x20dd32[_0x47c515(0x122)]('title')||(await getPersonalKnowledgeBaseItem(_0x4567ce,_0x20dd32['appCode']))[_0x47c515(0xed)];return dryRun(_0x47c515(0x111),_0x47c515(0xf7)+_0x4567ce+'/update')[_0x47c515(0x124)]({'appCode':_0x20dd32[_0x47c515(0x11a)],'title':_0x51444e,'content':_0x5673a1})[_0x47c515(0x118)](_0x47c515(0x11d)+_0x4567ce)[_0x47c515(0xec)]();}},kbSearch={'service':'kb','command':a27_0x6db92(0x10f),'description':a27_0x6db92(0x112),'risk':'read','flags':[QUERY_FLAG,TOPK_FLAG],async 'validate'(_0x2560c7){const _0x513ade=a27_0x6db92;if(!_0x2560c7['str'](_0x513ade(0xe2))[_0x513ade(0xfd)]())throw CliErrors[_0x513ade(0x10a)]('Search\x20query\x20is\x20required.');readTopK(_0x2560c7);},async 'execute'(_0x4bcde2){const _0xc5e921=a27_0x6db92,_0x1c8a6f=_0x4bcde2[_0xc5e921(0x122)](_0xc5e921(0xe2))[_0xc5e921(0xfd)](),_0xe65fcd=readTopK(_0x4bcde2),_0x40faad=await searchKnowledgeBase(_0x4bcde2[_0xc5e921(0x11a)],{'query':_0x1c8a6f,'topK':_0xe65fcd});return{'ok':!![],'data':{'total':_0x40faad[_0xc5e921(0x101)],'hits':_0x40faad[_0xc5e921(0xe5)](summarizeSearchHit)}};}};export const kbDefinitions=[kbList,kbDetail,kbCreate,kbUpdate,kbSearch];function a27_0x25d4(){const _0xde6795=['flag','version','Path\x20to\x20a\x20local\x20UTF-8\x20text\x20or\x20Markdown\x20file','16VUMlIR','471542DlfkrX','validation','Create\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','File\x20is\x20not\x20a\x20regular\x20file:\x20','2518637FGTPLr','num','search','topk','POST','Search\x20visible\x20company\x20and\x20personal\x20knowledge\x20base\x20content','/client/knowledge-base/personal/create','2082090hMoluA','Personal\x20knowledge-base\x20entry\x20title','detail','Created\x20KB\x20entry\x20','description','file','appCode','content','List\x20personal\x20knowledge-base\x20entries\x20for\x20the\x20current\x20app','Preview:\x20update\x20personal\x20knowledge-base\x20entry\x20','Search\x20query\x20for\x20visible\x20company\x20and\x20personal\x20knowledge','--topk\x20must\x20be\x20a\x20positive\x20number.','12hArKhV','verbose','str','File\x20not\x20found:\x20','body','114zsBple','scope','query','isFile','Preview:\x20create\x20personal\x20knowledge-base\x20entry\x20\x22','map','userId','string','docId','bool','updateTime','Show\x20one\x20personal\x20knowledge-base\x20entry\x20by\x20id','build','title','Override\x20the\x20existing\x20entry\x20title','score','number','Personal\x20knowledge-base\x20entry\x20ID','Updated\x20KB\x20entry\x20','10VNkYtO','createTime','ragErrorMessage','Maximum\x20number\x20of\x20search\x20hits\x20to\x20return','/client/knowledge-base/personal/','list','update','read','2197622aBDRkO','isFinite','trim','File\x20path\x20is\x20required.','ragStatus','14475WpsokP','length','metadata','2505916FROcuO','1634814TixGDz'];a27_0x25d4=function(){return _0xde6795;};return a27_0x25d4();}
@@ -1 +1 @@
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
+ function a28_0x889b(){const _0x27b2f1=['write','162260UwIReG','level','en-US','duration','\x20\x20\x20Time:\x20','log','View\x20command\x20history\x20logs','544306KUhcbH','Clear\x20command\x20history\x20logs','1624990BKTyXe','forEach','length','error','read','details','message','3356991NtydXT','66sPGBbG','toLocaleString','logs','readLogs','clearLogs','*\x20No\x20logs\x20found','command','*\x20Logs\x20cleared','\x20\x20\x20Duration:\x20','8kivOlS','362598HAMcey','279055uFdeIp','\x20\x20\x20Details:\x20','510246rbnoXM'];a28_0x889b=function(){return _0x27b2f1;};return a28_0x889b();}const a28_0x48467a=a28_0x1033;(function(_0x4c487c,_0x35d9e9){const _0x59754e=a28_0x1033,_0x4e88d0=_0x4c487c();while(!![]){try{const _0x3233ba=-parseInt(_0x59754e(0x10d))/0x1+parseInt(_0x59754e(0x119))/0x2+-parseInt(_0x59754e(0x110))/0x3+parseInt(_0x59754e(0x112))/0x4+-parseInt(_0x59754e(0xfb))/0x5+-parseInt(_0x59754e(0x103))/0x6*(-parseInt(_0x59754e(0x10e))/0x7)+parseInt(_0x59754e(0x10c))/0x8*(parseInt(_0x59754e(0x102))/0x9);if(_0x3233ba===_0x35d9e9)break;else _0x4e88d0['push'](_0x4e88d0['shift']());}catch(_0x1d9b2f){_0x4e88d0['push'](_0x4e88d0['shift']());}}}(a28_0x889b,0x4113a));import{logger}from'../../utils/logger.js';import{CLI_DISPLAY_NAME}from'../../constant/cli.js';function printLogs(_0x4c5777){const _0x3e5763=a28_0x1033;if(_0x4c5777[_0x3e5763(0xfd)]===0x0){console[_0x3e5763(0x117)](_0x3e5763(0x108));return;}console['log']('*\x20'+CLI_DISPLAY_NAME+'\x20logs:\x0a'),_0x4c5777[_0x3e5763(0xfc)]((_0x411102,_0x38c59f)=>{const _0xb2791d=_0x3e5763,_0x307b91=new Date(_0x411102['timestamp'])[_0xb2791d(0x104)](_0xb2791d(0x114)),_0x1b901d=_0x411102['level']==='success'?'√':_0x411102[_0xb2791d(0x113)]===_0xb2791d(0xfe)?'×':_0x411102['level']==='warn'?'!':'i';console['log'](_0x38c59f+0x1+'.\x20'+_0x1b901d+'\x20['+_0x411102[_0xb2791d(0x109)]+']\x20'+_0x411102[_0xb2791d(0x101)]),console['log'](_0xb2791d(0x116)+_0x307b91),_0x411102[_0xb2791d(0x115)]&&console[_0xb2791d(0x117)](_0xb2791d(0x10b)+_0x411102[_0xb2791d(0x115)]+'ms'),_0x411102[_0xb2791d(0x100)]&&Object['keys'](_0x411102[_0xb2791d(0x100)])[_0xb2791d(0xfd)]>0x0&&console[_0xb2791d(0x117)](_0xb2791d(0x10f)+JSON['stringify'](_0x411102[_0xb2791d(0x100)],null,0x2)),console[_0xb2791d(0x117)]('');});}function a28_0x1033(_0x23068e,_0x560cbb){_0x23068e=_0x23068e-0xfa;const _0x889b75=a28_0x889b();let _0x1033a8=_0x889b75[_0x23068e];return _0x1033a8;}export const logsDefinitions=[{'service':a28_0x48467a(0x105),'command':'show','description':a28_0x48467a(0x118),'risk':a28_0x48467a(0xff),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x10bed5){const _0x2e87fd=a28_0x48467a;return printLogs(logger[_0x2e87fd(0x106)]()),{'ok':!![]};}},{'service':a28_0x48467a(0x105),'command':'clear','description':a28_0x48467a(0xfa),'risk':a28_0x48467a(0x111),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x5d93e9){const _0x4d994f=a28_0x48467a;return logger[_0x4d994f(0x107)](),console[_0x4d994f(0x117)](_0x4d994f(0x10a)),{'ok':!![]};}}];
@@ -1 +1 @@
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
+ function a29_0x142f(_0x5a9090,_0x1c7542){_0x5a9090=_0x5a9090-0x1bc;const _0x2fe99b=a29_0x2fe9();let _0x142fef=_0x2fe99b[_0x5a9090];return _0x142fef;}const a29_0x3b2f19=a29_0x142f;(function(_0x5024ac,_0x2fb4cf){const _0x26ffac=a29_0x142f,_0x59dd6c=_0x5024ac();while(!![]){try{const _0x25ac37=-parseInt(_0x26ffac(0x1d8))/0x1+-parseInt(_0x26ffac(0x1f4))/0x2*(parseInt(_0x26ffac(0x1cb))/0x3)+parseInt(_0x26ffac(0x1c7))/0x4*(parseInt(_0x26ffac(0x1d1))/0x5)+parseInt(_0x26ffac(0x1e0))/0x6*(parseInt(_0x26ffac(0x1ea))/0x7)+-parseInt(_0x26ffac(0x1fe))/0x8*(parseInt(_0x26ffac(0x1c4))/0x9)+-parseInt(_0x26ffac(0x1ec))/0xa+parseInt(_0x26ffac(0x1f6))/0xb*(parseInt(_0x26ffac(0x1ce))/0xc);if(_0x25ac37===_0x2fb4cf)break;else _0x59dd6c['push'](_0x59dd6c['shift']());}catch(_0x10890f){_0x59dd6c['push'](_0x59dd6c['shift']());}}}(a29_0x2fe9,0x54c10));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':'file','type':a29_0x3b2f19(0x1c0),'description':'Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file'},FUNCTION_NAME_FLAG={'name':a29_0x3b2f19(0x1df),'type':a29_0x3b2f19(0x1c0),'required':!![],'description':'Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders'},DESCRIPTION_FLAG={'name':a29_0x3b2f19(0x1bc),'type':a29_0x3b2f19(0x1c0),'description':a29_0x3b2f19(0x1d9)},SOURCE_SESSION_FLAG={'name':a29_0x3b2f19(0x1e3),'type':a29_0x3b2f19(0x1c0),'description':a29_0x3b2f19(0x1cd)};function normalizeFunctionName(_0x26da28){const _0x171244=a29_0x3b2f19,_0x426678=String(_0x26da28||'')[_0x171244(0x1e5)]();if(!_0x426678||!FUNCTION_NAME_PATTERN[_0x171244(0x1ca)](_0x426678))throw CliErrors[_0x171244(0x1d7)]('--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.');return _0x426678;}function readScriptFile(_0x353fad){const _0x1ad6b0=a29_0x3b2f19;if(!_0x353fad)throw CliErrors['validation'](_0x1ad6b0(0x1e9));if(!existsSync(_0x353fad))throw CliErrors[_0x1ad6b0(0x1d7)](_0x1ad6b0(0x1be)+_0x353fad);if(!statSync(_0x353fad)[_0x1ad6b0(0x1dc)]())throw CliErrors[_0x1ad6b0(0x1d7)](_0x1ad6b0(0x1cc)+_0x353fad);const _0x43d67a=readFileSync(_0x353fad,_0x1ad6b0(0x1ef));if(!_0x43d67a[_0x1ad6b0(0x1e5)]())throw CliErrors[_0x1ad6b0(0x1d7)](_0x1ad6b0(0x1f3));return _0x43d67a;}function optionalTrimmed(_0x50d1b2){const _0x188d30=a29_0x3b2f19,_0x2b20d3=String(_0x50d1b2||'')[_0x188d30(0x1e5)]();return _0x2b20d3||undefined;}function summarizeBff(_0x695792){const _0x9ed7e9=a29_0x3b2f19;return{'id':_0x695792['id'],'appCode':_0x695792[_0x9ed7e9(0x1eb)],'functionName':_0x695792[_0x9ed7e9(0x1db)],'description':_0x695792[_0x9ed7e9(0x1bc)],'scriptType':_0x695792[_0x9ed7e9(0x1c5)],'version':_0x695792['version'],'gmtModified':_0x695792[_0x9ed7e9(0x1bd)],'updateTime':_0x695792[_0x9ed7e9(0x1f0)]};}function a29_0x2fe9(){const _0x145df6=['9084XNURlN','--params\x20must\x20be\x20a\x20JSON\x20object.','high-risk-write','source-session-id','params','trim','length','flag','keys','File\x20path\x20is\x20required.','2289eUVCcm','appCode','391240QxlmNQ','/update','personal-bff','utf8','updateTime','map','Show\x20one\x20personal\x20BFF\x20by\x20id','Personal\x20BFF\x20script\x20file\x20is\x20blank.','4qUWVZh','Update\x20a\x20personal\x20BFF\x20by\x20id','1273679sBgRbO','Preview:\x20update\x20personal\x20BFF\x20','list','detail','file','Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','Executed\x20personal\x20BFF\x20','24SjJqmU','version','POST','Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','createUserId','Personal\x20BFF\x20script\x20ID','description','gmtModified','File\x20not\x20found:\x20','write','string','verbose','createTime','JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution','566163mJFkRI','scriptType','isArray','68EcuQOC','config','read','test','914181HnKXJe','File\x20is\x20not\x20a\x20regular\x20file:\x20','Optional\x20source\x20RuntimeAgent\x20session\x20id','108PuWfQn','num','personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.','91880QnHpxS','Created\x20personal\x20BFF\x20','scriptContent','/client/runtime-bff/personal/create','gmtCreate','str','validation','665120ZEZEEL','Personal\x20BFF\x20description','build','functionName','isFile','sourceSessionId','body','name'];a29_0x2fe9=function(){return _0x145df6;};return a29_0x2fe9();}function detailBff(_0x459d7d){const _0x372513=a29_0x3b2f19;return{'id':_0x459d7d['id'],'appCode':_0x459d7d[_0x372513(0x1eb)],'functionName':_0x459d7d[_0x372513(0x1db)],'description':_0x459d7d[_0x372513(0x1bc)],'scriptType':_0x459d7d[_0x372513(0x1c5)],'scriptContent':_0x459d7d[_0x372513(0x1d3)]??'','config':_0x459d7d[_0x372513(0x1c8)],'version':_0x459d7d[_0x372513(0x1ff)],'createUserId':_0x459d7d[_0x372513(0x202)],'gmtCreate':_0x459d7d[_0x372513(0x1d5)],'gmtModified':_0x459d7d[_0x372513(0x1bd)],'createTime':_0x459d7d[_0x372513(0x1c2)],'updateTime':_0x459d7d[_0x372513(0x1f0)]};}function buildCreateInput(_0xda95dd){const _0x1233d3=a29_0x3b2f19;return{'functionName':normalizeFunctionName(_0xda95dd[_0x1233d3(0x1d6)]('name')),...optionalTrimmed(_0xda95dd[_0x1233d3(0x1d6)](_0x1233d3(0x1bc)))?{'description':optionalTrimmed(_0xda95dd['str'](_0x1233d3(0x1bc)))}:{},'scriptContent':readScriptFile(_0xda95dd[_0x1233d3(0x1d6)](_0x1233d3(0x1fa))),...optionalTrimmed(_0xda95dd['str']('source-session-id'))?{'sourceSessionId':optionalTrimmed(_0xda95dd[_0x1233d3(0x1d6)](_0x1233d3(0x1e3)))}:{}};}function buildUpdateInput(_0x6c4dee){const _0x214d78=a29_0x3b2f19,_0x15c303={};optionalTrimmed(_0x6c4dee[_0x214d78(0x1d6)](_0x214d78(0x1df)))&&(_0x15c303[_0x214d78(0x1db)]=normalizeFunctionName(_0x6c4dee[_0x214d78(0x1d6)](_0x214d78(0x1df))));_0x6c4dee[_0x214d78(0x1e7)]('description')!==undefined&&(_0x15c303[_0x214d78(0x1bc)]=_0x6c4dee[_0x214d78(0x1d6)](_0x214d78(0x1bc)));optionalTrimmed(_0x6c4dee[_0x214d78(0x1d6)](_0x214d78(0x1fa)))&&(_0x15c303[_0x214d78(0x1d3)]=readScriptFile(_0x6c4dee[_0x214d78(0x1d6)](_0x214d78(0x1fa))));_0x6c4dee[_0x214d78(0x1e7)](_0x214d78(0x1e3))!==undefined&&(_0x15c303[_0x214d78(0x1dd)]=_0x6c4dee['str'](_0x214d78(0x1e3)));if(Object[_0x214d78(0x1e8)](_0x15c303)[_0x214d78(0x1e6)]===0x0)throw CliErrors[_0x214d78(0x1d7)](_0x214d78(0x1d0));return _0x15c303;}function parseExecParams(_0x3ac293){const _0xd10b21=a29_0x3b2f19,_0x7c2728=parseJsonParams(_0x3ac293)??{};if(Array[_0xd10b21(0x1c6)](_0x7c2728))throw CliErrors['validation'](_0xd10b21(0x1e1));return _0x7c2728;}const personalBffList={'service':a29_0x3b2f19(0x1ee),'command':a29_0x3b2f19(0x1f8),'description':a29_0x3b2f19(0x1fc),'risk':a29_0x3b2f19(0x1c9),'flags':[VERBOSE_FLAG],async 'execute'(_0x1e227c){const _0x21d587=a29_0x3b2f19,_0x27923b=await listPersonalBffs(_0x1e227c[_0x21d587(0x1eb)]);return{'ok':!![],'data':{'total':_0x27923b[_0x21d587(0x1e6)],'items':_0x1e227c['bool'](_0x21d587(0x1c1))?_0x27923b:_0x27923b[_0x21d587(0x1f1)](summarizeBff)}};}},personalBffDetail={'service':a29_0x3b2f19(0x1ee),'command':a29_0x3b2f19(0x1f9),'description':a29_0x3b2f19(0x1f2),'risk':a29_0x3b2f19(0x1c9),'flags':[{...ID_FLAG,'description':'Personal\x20BFF\x20script\x20ID'}],async 'execute'(_0x512e63){const _0x3791f6=a29_0x3b2f19,_0x1ed0fa=await getPersonalBff(_0x512e63[_0x3791f6(0x1cf)]('id'),_0x512e63[_0x3791f6(0x1eb)]);return{'ok':!![],'data':detailBff(_0x1ed0fa)};}},personalBffCreate={'service':a29_0x3b2f19(0x1ee),'command':'create','description':a29_0x3b2f19(0x201),'risk':'write','flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x45e57c){const _0x57b7e0=a29_0x3b2f19,_0x103eda=buildCreateInput(_0x45e57c),_0x451967=await createPersonalBff(_0x45e57c[_0x57b7e0(0x1eb)],_0x103eda);return{'ok':!![],'data':detailBff(_0x451967),'message':_0x57b7e0(0x1d2)+_0x451967['id']+(_0x451967[_0x57b7e0(0x1db)]?'\x20('+_0x451967[_0x57b7e0(0x1db)]+')':'')};},async 'dryRun'(_0x155c4f){const _0x4d8e18=a29_0x3b2f19,_0x3292c4=buildCreateInput(_0x155c4f);return dryRun('POST',_0x4d8e18(0x1d4))['body']({'appCode':_0x155c4f[_0x4d8e18(0x1eb)],..._0x3292c4})[_0x4d8e18(0x1bc)]('Preview:\x20create\x20personal\x20BFF\x20'+_0x3292c4['functionName'])[_0x4d8e18(0x1da)]();}},personalBffUpdate={'service':a29_0x3b2f19(0x1ee),'command':'update','description':a29_0x3b2f19(0x1f5),'risk':a29_0x3b2f19(0x1bf),'flags':[{...ID_FLAG,'description':'Personal\x20BFF\x20script\x20ID'},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x5dd4ad){const _0x5aef46=a29_0x3b2f19,_0x425c7c=_0x5dd4ad['num']('id'),_0x1658e2=buildUpdateInput(_0x5dd4ad),_0x47f2a2=await updatePersonalBff(_0x425c7c,_0x5dd4ad[_0x5aef46(0x1eb)],_0x1658e2);return{'ok':!![],'data':detailBff(_0x47f2a2),'message':'Updated\x20personal\x20BFF\x20'+_0x47f2a2['id']+(_0x47f2a2[_0x5aef46(0x1db)]?'\x20('+_0x47f2a2['functionName']+')':'')};},async 'dryRun'(_0x3fd485){const _0x5f1df8=a29_0x3b2f19,_0x502737=_0x3fd485[_0x5f1df8(0x1cf)]('id'),_0x4e35ce=buildUpdateInput(_0x3fd485);return dryRun(_0x5f1df8(0x200),'/client/runtime-bff/personal/'+_0x502737+_0x5f1df8(0x1ed))[_0x5f1df8(0x1de)]({'appCode':_0x3fd485['appCode'],..._0x4e35ce})[_0x5f1df8(0x1bc)](_0x5f1df8(0x1f7)+_0x502737)[_0x5f1df8(0x1da)]();}},personalBffExec={'service':a29_0x3b2f19(0x1ee),'command':'exec','description':a29_0x3b2f19(0x1fb),'risk':a29_0x3b2f19(0x1e2),'flags':[{...ID_FLAG,'description':a29_0x3b2f19(0x203)},{...PARAMS_FLAG,'description':a29_0x3b2f19(0x1c3)}],async 'validate'(_0x4f0ce7){const _0x25a7de=a29_0x3b2f19;parseExecParams(_0x4f0ce7[_0x25a7de(0x1d6)]('params'));},async 'execute'(_0x129529){const _0x1002dd=a29_0x3b2f19,_0x342392=_0x129529[_0x1002dd(0x1cf)]('id'),_0x1190bf=parseExecParams(_0x129529[_0x1002dd(0x1d6)](_0x1002dd(0x1e4))),_0xfcc127=await executePersonalBff(_0x342392,_0x129529[_0x1002dd(0x1eb)],_0x1190bf);return{'ok':!![],'data':{'result':_0xfcc127},'message':_0x1002dd(0x1fd)+_0x342392};}};export const personalBffDefinitions=[personalBffList,personalBffDetail,personalBffCreate,personalBffUpdate,personalBffExec];
@@ -1 +1 @@
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
+ const a30_0x3379f8=a30_0x6574;function a30_0x6574(_0x5abd9c,_0x8306fa){_0x5abd9c=_0x5abd9c-0x10c;const _0x4d0038=a30_0x4d00();let _0x657492=_0x4d0038[_0x5abd9c];return _0x657492;}(function(_0x51de47,_0x5ac5fb){const _0x206455=a30_0x6574,_0x5727b1=_0x51de47();while(!![]){try{const _0x5cc1e9=parseInt(_0x206455(0x118))/0x1+parseInt(_0x206455(0x112))/0x2+parseInt(_0x206455(0x119))/0x3+-parseInt(_0x206455(0x130))/0x4+-parseInt(_0x206455(0x12a))/0x5*(parseInt(_0x206455(0x135))/0x6)+parseInt(_0x206455(0x12f))/0x7*(-parseInt(_0x206455(0x11b))/0x8)+-parseInt(_0x206455(0x126))/0x9*(-parseInt(_0x206455(0x115))/0xa);if(_0x5cc1e9===_0x5ac5fb)break;else _0x5727b1['push'](_0x5727b1['shift']());}catch(_0x4451a7){_0x5727b1['push'](_0x5727b1['shift']());}}}(a30_0x4d00,0x6af43));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(_0x41a42a){const _0x23d536=a30_0x6574;for(const _0x1ecfb5 of _0x41a42a){definitions[_0x23d536(0x131)](_0x1ecfb5[_0x23d536(0x10c)]+':'+_0x1ecfb5[_0x23d536(0x10e)],_0x1ecfb5);let _0x43e298=serviceGroups[_0x23d536(0x12b)](_0x1ecfb5[_0x23d536(0x10c)]);!_0x43e298&&(_0x43e298=[],serviceGroups[_0x23d536(0x131)](_0x1ecfb5[_0x23d536(0x10c)],_0x43e298)),_0x43e298[_0x23d536(0x120)](_0x1ecfb5);}}function registerService(_0x4d9003,_0x148be9,_0x2d56aa){const _0x5befd0=a30_0x6574;registerDefinitions(_0x148be9);const _0x4c4da7=_0x46adae=>_0x46adae===_0x5befd0(0x133)?'':_0x46adae==='write'?'\x20\x20[write]':_0x5befd0(0x123),_0x38f4ae={'service':_0x148be9[0x0][_0x5befd0(0x10c)],'label':_0x4d9003,'commands':_0x148be9['map'](_0x5bfb84=>({'command':_0x5bfb84[_0x5befd0(0x10e)],'description':_0x5bfb84[_0x5befd0(0x122)],'tag':_0x4c4da7(_0x5bfb84['risk'])})),'defaultCommand':_0x2d56aa?.['defaultCommand']??(_0x2d56aa?.[_0x5befd0(0x12d)]?_0x148be9[0x0][_0x5befd0(0x10e)]:undefined),'isSingleCommand':_0x2d56aa?.[_0x5befd0(0x12d)]};serviceRegistry['push'](_0x38f4ae),serviceByName[_0x5befd0(0x131)](_0x38f4ae[_0x5befd0(0x10c)],_0x38f4ae);}function a30_0x4d00(){const _0x5231bd=['1520778TFxEBh','App\x20Management','2712184uDgAAy','run','Configuration','Workspace','values','push','CLI\x20Built-in\x20Skill','description','\x20\x20[high-risk-write]','has','Authentication','7929DstWUT','Self\x20Update','Service\x20Tree','SQL\x20Queries','5YbVELM','get','show','isSingleCommand','Instant\x20API','7xAFQfE','2740504ypDGKw','set','Logs','read','Skills','4721820diEYCP','API\x20Documentation','service','install','command','BFF\x20Scripts','Artifacts','Datasets','475714QUuxaA','from','list','12190fqiMwk','Diagnostics','login','430480uHihJm'];a30_0x4d00=function(){return _0x5231bd;};return a30_0x4d00();}registerService(a30_0x3379f8(0x125),authDefinitions,{'defaultCommand':a30_0x3379f8(0x117)}),registerService(a30_0x3379f8(0x136),apiDocDefinitions),registerService(a30_0x3379f8(0x111),datasetDefinitions),registerService(a30_0x3379f8(0x12e),dataDefinitions),registerService(a30_0x3379f8(0x129),sqlDefinitions),registerService(a30_0x3379f8(0x10f),bffDefinitions),registerService('Personal\x20BFF',personalBffDefinitions),registerService(a30_0x3379f8(0x110),artifactDefinitions),registerService('Knowledge\x20Base',kbDefinitions),registerService(a30_0x3379f8(0x11a),appDefinitions,{'defaultCommand':a30_0x3379f8(0x114)}),registerService(a30_0x3379f8(0x11e),workspaceDefinitions),registerService(a30_0x3379f8(0x11d),configDefinitions,{'defaultCommand':'list'}),registerService(a30_0x3379f8(0x128),serviceDefinitions,{'defaultCommand':'list'}),registerService(a30_0x3379f8(0x134),skillDefinitions,{'defaultCommand':a30_0x3379f8(0x10d)}),registerService(a30_0x3379f8(0x121),cliSkillDefinitions,{'defaultCommand':a30_0x3379f8(0x10d)}),registerService(a30_0x3379f8(0x127),[updateDefinition],{'defaultCommand':a30_0x3379f8(0x11c),'isSingleCommand':!![]}),registerService(a30_0x3379f8(0x116),[doctorDefinition],{'isSingleCommand':!![]}),registerService('Schema',[schemaDefinition],{'isSingleCommand':!![]}),registerService(a30_0x3379f8(0x132),logsDefinitions,{'defaultCommand':a30_0x3379f8(0x12c)});export function findDefinition(_0x497b81,_0x4eecbc){const _0x3b07db=a30_0x3379f8;return definitions[_0x3b07db(0x12b)](_0x497b81+':'+_0x4eecbc);}export function isKnownService(_0x2b3d5b){const _0x1f7ea8=a30_0x3379f8;return serviceByName[_0x1f7ea8(0x124)](_0x2b3d5b);}export function getServiceEntry(_0x181eec){const _0x33a90e=a30_0x3379f8;return serviceByName[_0x33a90e(0x12b)](_0x181eec);}export function getAllDefinitions(){const _0x338a74=a30_0x3379f8;return Array[_0x338a74(0x113)](definitions[_0x338a74(0x11f)]());}
@@ -1 +1 @@
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
+ const a31_0x28aee7=a31_0x5e65;(function(_0x3f1d7c,_0x1f3366){const _0x22277f=a31_0x5e65,_0x179b7b=_0x3f1d7c();while(!![]){try{const _0x34365f=parseInt(_0x22277f(0x17f))/0x1+parseInt(_0x22277f(0x17a))/0x2*(-parseInt(_0x22277f(0x175))/0x3)+parseInt(_0x22277f(0x177))/0x4*(parseInt(_0x22277f(0x17c))/0x5)+-parseInt(_0x22277f(0x179))/0x6*(-parseInt(_0x22277f(0x17e))/0x7)+parseInt(_0x22277f(0x17d))/0x8+-parseInt(_0x22277f(0x176))/0x9+-parseInt(_0x22277f(0x178))/0xa;if(_0x34365f===_0x1f3366)break;else _0x179b7b['push'](_0x179b7b['shift']());}catch(_0x103d7b){_0x179b7b['push'](_0x179b7b['shift']());}}}(a31_0x15a3,0xc1b7b));function a31_0x15a3(){const _0x2727a8=['1401323PEcilC','export','Export\x20machine-readable\x20command\x20schema\x20(JSON)','schema','30NEEJsi','3531195Kelroo','884044DsAQXF','9918720TxjCmM','54rsmeJT','222894FwLeGK','read','10QtGRTj','4279888gEVxsL','710759SkYsdv'];a31_0x15a3=function(){return _0x2727a8;};return a31_0x15a3();}import{buildSchemaPayload}from'../framework/schema-export.js';function a31_0x5e65(_0xc023db,_0x2227cf){_0xc023db=_0xc023db-0x172;const _0x15a344=a31_0x15a3();let _0x5e6541=_0x15a344[_0xc023db];return _0x5e6541;}async function execute(_0x1cd4a7){const _0x3f6e47=await buildSchemaPayload();return{'ok':!![],'data':_0x3f6e47};}export const schemaDefinition={'service':a31_0x28aee7(0x174),'command':a31_0x28aee7(0x172),'description':a31_0x28aee7(0x173),'risk':a31_0x28aee7(0x17b),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};
@@ -1 +1 @@
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
+ (function(_0xb86025,_0xe7f20){const _0x343a78=a32_0x2e64,_0x57138c=_0xb86025();while(!![]){try{const _0xe772a2=-parseInt(_0x343a78(0x23d))/0x1*(-parseInt(_0x343a78(0x215))/0x2)+parseInt(_0x343a78(0x251))/0x3*(parseInt(_0x343a78(0x1fe))/0x4)+-parseInt(_0x343a78(0x23f))/0x5*(parseInt(_0x343a78(0x202))/0x6)+-parseInt(_0x343a78(0x23a))/0x7+-parseInt(_0x343a78(0x237))/0x8*(parseInt(_0x343a78(0x1ee))/0x9)+-parseInt(_0x343a78(0x1fd))/0xa+parseInt(_0x343a78(0x242))/0xb;if(_0xe772a2===_0xe7f20)break;else _0x57138c['push'](_0x57138c['shift']());}catch(_0x24acfd){_0x57138c['push'](_0x57138c['shift']());}}}(a32_0x2866,0xb2bdd));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(_0x15849c,_0x2a541c){const _0x1bbbf8=a32_0x2e64,_0x296944=listLocalServiceTrees();let _0x438463;for(const _0x1d2e31 of _0x296944){const _0x5d1a30=matchServiceTreeCommand(_0x1d2e31,_0x15849c);if(!_0x5d1a30)continue;(!_0x438463||_0x5d1a30[_0x1bbbf8(0x1f7)]['fullPath'][_0x1bbbf8(0x250)]>_0x438463['command']['fullPath'][_0x1bbbf8(0x250)])&&(_0x438463={'tree':_0x1d2e31,'command':_0x5d1a30[_0x1bbbf8(0x1f7)],'remainingArgs':_0x5d1a30[_0x1bbbf8(0x209)]});}if(!_0x438463)return undefined;const _0x20107a={..._0x2a541c};return applyAppBinding(_0x438463[_0x1bbbf8(0x24e)],_0x438463[_0x1bbbf8(0x1f7)],_0x20107a),{'definition':buildDynamicCommandDefinition(_0x438463[_0x1bbbf8(0x24e)],_0x438463[_0x1bbbf8(0x1f7)]),'args':_0x438463['remainingArgs'],'flags':_0x20107a,'tree':_0x438463[_0x1bbbf8(0x24e)],'command':_0x438463[_0x1bbbf8(0x1f7)]};}export function generateDynamicServiceHelp(_0x8896e1){const _0x2afda6=a32_0x2e64,_0x2e6b28=listLocalServiceTrees()[_0x2afda6(0x249)](_0x501b3c=>_0x501b3c['service'][_0x2afda6(0x227)]===_0x8896e1);if(!_0x2e6b28)return undefined;const _0x81a070=[CLI_BIN_NAME+'\x20'+_0x8896e1+_0x2afda6(0x22c),'',_0x2e6b28['service'][_0x2afda6(0x231)]||_0x8896e1,_0x2e6b28[_0x2afda6(0x221)][_0x2afda6(0x24c)]?'\x20\x20'+_0x2e6b28[_0x2afda6(0x221)]['description']:'','',_0x2afda6(0x247),..._0x2e6b28[_0x2afda6(0x219)][_0x2afda6(0x1fb)](_0x3cf0fe=>{const _0x23c89c=_0x2afda6,_0x4943b3=_0x3cf0fe[_0x23c89c(0x22e)][_0x23c89c(0x228)](0x1)['join']('\x20'),_0x5e3d21=_0x3cf0fe[_0x23c89c(0x24f)]==='read'?'':'\x20['+_0x3cf0fe[_0x23c89c(0x24f)]+']';return'\x20\x20'+_0x4943b3['padEnd'](0x18)+'\x20'+(_0x3cf0fe[_0x23c89c(0x24c)]||'')+_0x5e3d21;}),'',_0x2afda6(0x240)+CLI_BIN_NAME+_0x2afda6(0x236)+_0x8896e1+_0x2afda6(0x1f1)]['filter'](Boolean);return _0x81a070['join']('\x0a');}export function listDynamicServiceEntries(){const _0x1ceba5=a32_0x2e64;return listLocalServices()[_0x1ceba5(0x1fb)](_0x497ea6=>{const _0xf30df6=_0x1ceba5,_0x5392aa=_0x497ea6['normalizedManifest'];return{'service':_0x5392aa[_0xf30df6(0x221)][_0xf30df6(0x227)],'label':_0x5392aa[_0xf30df6(0x221)][_0xf30df6(0x231)]||_0x5392aa['service']['code'],'commands':_0x5392aa[_0xf30df6(0x219)][_0xf30df6(0x1fb)](_0x5afe84=>({'command':dynamicCommandName(_0x5afe84),'description':_0x5afe84['description']||_0xf30df6(0x20e)+_0x5afe84[_0xf30df6(0x220)],'tag':riskTag(_0x5afe84['risk'])}))};});}export function getDynamicServiceEntry(_0x3d801b){const _0x4133ee=a32_0x2e64;return listDynamicServiceEntries()[_0x4133ee(0x249)](_0x511477=>_0x511477[_0x4133ee(0x221)]===_0x3d801b);}export function listDynamicServiceDefinitions(_0x3e0913){const _0x1bc6e7=a32_0x2e64;return listLocalServiceTrees()[_0x1bc6e7(0x23c)](_0x3979a7=>!_0x3e0913||_0x3979a7[_0x1bc6e7(0x221)][_0x1bc6e7(0x227)]===_0x3e0913)[_0x1bc6e7(0x22d)](_0x96acd5=>_0x96acd5[_0x1bc6e7(0x219)][_0x1bc6e7(0x1fb)](_0x1b604e=>buildDynamicCommandDefinition(_0x96acd5,_0x1b604e)));}export function getDynamicServiceDefinitions(_0x471143){const _0x2164b9=a32_0x2e64,_0x1173f3=listDynamicServiceDefinitions(_0x471143);return _0x1173f3[_0x2164b9(0x250)]>0x0?_0x1173f3:undefined;}export function findDynamicServiceDefinition(_0x18b768,_0x217c1f){const _0x462121=a32_0x2e64;return listDynamicServiceDefinitions(_0x18b768)['find'](_0x2d7a4d=>_0x2d7a4d[_0x462121(0x1f7)]===_0x217c1f);}export function buildDynamicCommandDefinition(_0x287dea,_0x1e2933){const _0x278507=a32_0x2e64;return{'service':_0x287dea[_0x278507(0x221)]['code'],'command':dynamicCommandName(_0x1e2933),'description':_0x1e2933[_0x278507(0x24c)]||_0x278507(0x20e)+_0x1e2933[_0x278507(0x220)],'risk':_0x1e2933['risk'],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x1e2933['args'][_0x278507(0x1fb)](_0x8707c7=>({'name':_0x8707c7[_0x278507(0x231)],'description':_0x8707c7[_0x278507(0x24c)]||_0x8707c7[_0x278507(0x231)],'required':_0x8707c7[_0x278507(0x225)]})),'flags':_0x1e2933[_0x278507(0x1f4)][_0x278507(0x1fb)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x1e2933),async 'dryRun'(_0x79f135){const _0x50a5f1=_0x278507,_0x2ba025=await compilePlan(_0x1e2933,_0x79f135);return{'method':_0x50a5f1(0x205),'url':_0x1e2933[_0x50a5f1(0x220)],'body':{'target':targetPreview(_0x2ba025),'params':_0x2ba025[_0x50a5f1(0x253)]},'description':_0x50a5f1(0x230)+_0x1e2933[_0x50a5f1(0x220)]};},async 'execute'(_0x4b5e7f){const _0x2c29b7=_0x278507,_0x2a2272=await compilePlan(_0x1e2933,_0x4b5e7f),_0x26dc98=Date[_0x2c29b7(0x232)](),_0x2cefb1=await executePlan(_0x2a2272,_0x1e2933,_0x4b5e7f),_0x5ae557=Date[_0x2c29b7(0x232)]()-_0x26dc98;return{'ok':!![],'data':{'service':_0x287dea[_0x2c29b7(0x221)],'command':_0x1e2933[_0x2c29b7(0x220)],'target':targetPreview(_0x2a2272),'result':_0x2cefb1,'elapsed':_0x5ae557},'message':_0x2c29b7(0x252)+_0x1e2933[_0x2c29b7(0x220)]+_0x2c29b7(0x206)+_0x5ae557+'ms'};}};}function a32_0x2866(){const _0x36f303=['number','enum','appCode','const','Commands:','boolean','find','appBindings','join','description','username','tree','risk','length','9VVWmvW','Service\x20command\x20','params','target','\x20\x20\x20\x20command:\x20','1946106TffXiN','entries','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','`\x20to\x20inspect\x20the\x20manifest.','kind','cliName','flags','userName','nickname','command','\x20\x20\x20\x20sqlCode:\x20','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','bffCode','map','default','12834170IfKrGr','719116kZUJZk','tableName','type','bff','2043330zjGjNm','envName','appRef','SERVICE_TREE','\x20completed\x20in\x20','data','trim','remainingArgs','string','\x20\x20\x20\x20datatable:\x20','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','datatable','Run\x20service\x20command\x20','ctx.','rawFlags','env','push','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','json','4TMVJtG','bffId','some','source','commands','datasetCode','Cannot\x20resolve\x20datatable\x20\x22','startsWith','\x20\x20SERVICE\x20TREE\x20TARGET','\x20requires\x20target.sqlCode.','args','cliPath','service','Unsupported\x20service\x20target\x20kind:\x20','tenantCode','\x20requires\x20target.scriptName.','required','validation','code','slice','appcode','sql','scriptName','\x20<command>\x20[flags]','flatMap','fullPath','app','Preview\x20dynamic\x20service\x20command:\x20','name','now','\x20\x20\x20\x20scriptName:\x20','mapTo','\x20->\x20','\x20service\x20detail\x20--service\x20','24kxApOp','loginName','\x20\x20MAP\x20TO','206885rloyLd','\x20\x20\x20\x20kind:\x20\x20\x20\x20','filter','523177usgCxm','sqlCode','5GUaebe','Use\x20`','nickName','15935293FPxijv'];a32_0x2866=function(){return _0x36f303;};return a32_0x2866();}function dynamicCommandName(_0x1564fa){const _0x4e5b6f=a32_0x2e64;return _0x1564fa[_0x4e5b6f(0x22e)][_0x4e5b6f(0x228)](0x1)['join']('\x20');}function riskTag(_0x54ce88){return _0x54ce88==='read'?'':'\x20\x20['+_0x54ce88+']';}function flagToCommandFlag(_0x13b017){const _0x18fdc6=a32_0x2e64;return{'name':_0x13b017[_0x18fdc6(0x1f3)],'type':_0x13b017[_0x18fdc6(0x200)]===_0x18fdc6(0x214)?_0x18fdc6(0x20a):_0x13b017[_0x18fdc6(0x200)],'description':_0x13b017['description']||_0x13b017[_0x18fdc6(0x231)],'required':_0x13b017['required'],'default':isPrimitiveFlagDefault(_0x13b017[_0x18fdc6(0x1fc)])?_0x13b017[_0x18fdc6(0x1fc)]:undefined,'enum':_0x13b017[_0x18fdc6(0x244)]};}async function compilePlan(_0x3a3a87,_0x3bf4f3){const _0x21226b=a32_0x2e64;return compileServiceTreeCommand(_0x3a3a87,{'flags':_0x3bf4f3[_0x21226b(0x210)],'args':_0x3bf4f3[_0x21226b(0x21f)],'context':await buildServiceContext(_0x3a3a87,_0x3bf4f3)});}async function buildServiceContext(_0x5eafd0,_0x240004){const _0x5dbd0c=a32_0x2e64,_0x433b3b={'appCode':_0x240004[_0x5dbd0c(0x245)],'env':_0x240004['envName'],'envName':_0x240004[_0x5dbd0c(0x203)]};if(!usesRuntimeContext(_0x5eafd0))return _0x433b3b;const _0x21dbf7=await getLoginUserInfo(),_0x463d78=pickFirst(_0x21dbf7['userId'],_0x21dbf7['id']);return{..._0x433b3b,'user':_0x21dbf7,'userId':_0x463d78,'id':_0x21dbf7['id'],'username':pickFirst(_0x21dbf7[_0x5dbd0c(0x24d)],_0x21dbf7[_0x5dbd0c(0x1f5)],_0x21dbf7[_0x5dbd0c(0x238)]),'userName':_0x21dbf7[_0x5dbd0c(0x1f5)],'nickname':pickFirst(_0x21dbf7[_0x5dbd0c(0x1f6)],_0x21dbf7[_0x5dbd0c(0x241)]),'nickName':_0x21dbf7['nickName'],'tenantCode':_0x21dbf7[_0x5dbd0c(0x223)],'employeeId':_0x21dbf7['employeeId']};}function usesRuntimeContext(_0x1c380a){const _0x4adbde=a32_0x2e64;return _0x1c380a[_0x4adbde(0x234)][_0x4adbde(0x217)](_0x447504=>typeof _0x447504[_0x4adbde(0x218)]===_0x4adbde(0x20a)&&(_0x447504['source']['startsWith']('context.')||_0x447504[_0x4adbde(0x218)][_0x4adbde(0x21c)](_0x4adbde(0x20f))));}function pickFirst(..._0x2f1cf5){const _0x334f20=a32_0x2e64;return _0x2f1cf5[_0x334f20(0x249)](_0x320301=>_0x320301!==undefined&&_0x320301!==null);}async function executePlan(_0x4a720a,_0x58b192,_0x11a18c){const _0x1470c3=a32_0x2e64;if(_0x4a720a['kind']===_0x1470c3(0x207)){const _0xf05e4c=await resolveDatasetCode(_0x4a720a,_0x58b192,_0x11a18c);return executeData(_0xf05e4c,_0x4a720a[_0x1470c3(0x1f7)],_0x4a720a[_0x1470c3(0x253)]);}if(_0x4a720a[_0x1470c3(0x1f2)]===_0x1470c3(0x22a)){if(!_0x4a720a[_0x1470c3(0x23e)])throw CliErrors[_0x1470c3(0x226)](_0x1470c3(0x252)+_0x58b192[_0x1470c3(0x220)]+_0x1470c3(0x21e));return executeSdkSql(_0x4a720a[_0x1470c3(0x23e)],normalizeScalarParams(_0x4a720a['params']));}if(_0x4a720a[_0x1470c3(0x1f2)]===_0x1470c3(0x201)){const _0x9da3dc=_0x4a720a[_0x1470c3(0x22b)]||_0x4a720a[_0x1470c3(0x1fa)]||(_0x4a720a[_0x1470c3(0x216)]==null?'':String(_0x4a720a[_0x1470c3(0x216)]));if(!_0x9da3dc)throw CliErrors[_0x1470c3(0x226)](_0x1470c3(0x252)+_0x58b192[_0x1470c3(0x220)]+_0x1470c3(0x224));return executeSdkBff(_0x9da3dc,_0x4a720a[_0x1470c3(0x253)]);}throw CliErrors[_0x1470c3(0x226)](_0x1470c3(0x222)+_0x4a720a[_0x1470c3(0x1f2)]);}function a32_0x2e64(_0x17a254,_0x31386f){_0x17a254=_0x17a254-0x1ed;const _0x28668b=a32_0x2866();let _0x2e64b8=_0x28668b[_0x17a254];return _0x2e64b8;}async function resolveDatasetCode(_0x47f6af,_0x4df708,_0x2536f1){const _0x5af4ae=a32_0x2e64;if(_0x47f6af[_0x5af4ae(0x21a)])return _0x47f6af[_0x5af4ae(0x21a)];if(!_0x47f6af[_0x5af4ae(0x20d)])throw CliErrors['validation'](_0x5af4ae(0x252)+_0x4df708[_0x5af4ae(0x220)]+_0x5af4ae(0x1f9));const _0x2b61e6=await listDatasets(_0x2536f1[_0x5af4ae(0x245)]),_0x5ba99d=_0x2b61e6[_0x5af4ae(0x249)](_0x5cfbb9=>_0x5cfbb9['dbtableConfig']?.[_0x5af4ae(0x1ff)]===_0x47f6af[_0x5af4ae(0x20d)]);if(!_0x5ba99d?.[_0x5af4ae(0x227)])throw CliErrors[_0x5af4ae(0x226)](_0x5af4ae(0x21b)+_0x47f6af['datatable']+_0x5af4ae(0x213)+_0x2536f1[_0x5af4ae(0x245)]+'.',_0x5af4ae(0x20c));return _0x5ba99d['code'];}function applyAppBinding(_0x2ddace,_0x2f07b9,_0x4819fd){const _0x30cd75=a32_0x2e64,_0x136125=_0x2f07b9[_0x30cd75(0x254)][_0x30cd75(0x204)];if(!_0x136125)return;const _0x225124=_0x2ddace[_0x30cd75(0x24a)][_0x136125];if(!_0x225124)throw CliErrors[_0x30cd75(0x226)]('Unknown\x20appRef\x20\x22'+_0x136125+'\x22\x20in\x20service\x20command\x20'+_0x2f07b9[_0x30cd75(0x220)]+'.',_0x30cd75(0x1f0));const _0x54cf23=_0x225124[_0x30cd75(0x229)]||_0x225124[_0x30cd75(0x245)];_0x54cf23&&!hasText(_0x4819fd[_0x30cd75(0x229)])&&(_0x4819fd[_0x30cd75(0x229)]=_0x54cf23),_0x225124[_0x30cd75(0x22f)]&&!hasText(_0x4819fd[_0x30cd75(0x22f)])&&!hasText(_0x4819fd[_0x30cd75(0x229)])&&(_0x4819fd[_0x30cd75(0x22f)]=_0x225124[_0x30cd75(0x22f)]),_0x225124[_0x30cd75(0x211)]&&!hasText(_0x4819fd[_0x30cd75(0x211)])&&(_0x4819fd[_0x30cd75(0x211)]=_0x225124[_0x30cd75(0x211)]);}function renderDynamicCommandHelp(_0x46ebe0){const _0xb57b66=a32_0x2e64,_0x12b250=[_0xb57b66(0x21d),_0xb57b66(0x23b)+_0x46ebe0[_0xb57b66(0x254)][_0xb57b66(0x1f2)],_0xb57b66(0x1ed)+_0x46ebe0['target'][_0xb57b66(0x1f7)]];if(_0x46ebe0[_0xb57b66(0x254)][_0xb57b66(0x21a)])_0x12b250[_0xb57b66(0x212)]('\x20\x20\x20\x20datasetCode:\x20'+_0x46ebe0[_0xb57b66(0x254)][_0xb57b66(0x21a)]);if(_0x46ebe0[_0xb57b66(0x254)][_0xb57b66(0x20d)])_0x12b250[_0xb57b66(0x212)](_0xb57b66(0x20b)+_0x46ebe0[_0xb57b66(0x254)][_0xb57b66(0x20d)]);if(_0x46ebe0['target'][_0xb57b66(0x23e)])_0x12b250[_0xb57b66(0x212)](_0xb57b66(0x1f8)+_0x46ebe0[_0xb57b66(0x254)][_0xb57b66(0x23e)]);if(_0x46ebe0['target'][_0xb57b66(0x22b)])_0x12b250['push'](_0xb57b66(0x233)+_0x46ebe0[_0xb57b66(0x254)][_0xb57b66(0x22b)]);if(_0x46ebe0['mapTo'][_0xb57b66(0x250)]>0x0){_0x12b250[_0xb57b66(0x212)]('',_0xb57b66(0x239));for(const _0x10c17c of _0x46ebe0[_0xb57b66(0x234)]){_0x12b250[_0xb57b66(0x212)]('\x20\x20\x20\x20'+(_0x10c17c[_0xb57b66(0x218)]||_0xb57b66(0x246))+_0xb57b66(0x235)+_0x10c17c[_0xb57b66(0x254)]+(_0x10c17c['operator']?'.'+_0x10c17c['operator']:''));}}return _0x12b250[_0xb57b66(0x24b)]('\x0a');}function targetPreview(_0x3ed50f){const _0x153a6d=a32_0x2e64;return{'kind':_0x3ed50f[_0x153a6d(0x1f2)],'command':_0x3ed50f[_0x153a6d(0x1f7)],'appRef':_0x3ed50f[_0x153a6d(0x204)],'datasetCode':_0x3ed50f['datasetCode'],'datatable':_0x3ed50f[_0x153a6d(0x20d)],'sqlCode':_0x3ed50f[_0x153a6d(0x23e)],'bffCode':_0x3ed50f[_0x153a6d(0x1fa)],'bffId':_0x3ed50f[_0x153a6d(0x216)],'scriptName':_0x3ed50f[_0x153a6d(0x22b)]};}function normalizeScalarParams(_0x246e39){const _0x5c2c3a=a32_0x2e64;return Object['fromEntries'](Object[_0x5c2c3a(0x1ef)](_0x246e39)['filter'](([,_0xfc638d])=>typeof _0xfc638d===_0x5c2c3a(0x20a)||typeof _0xfc638d===_0x5c2c3a(0x243)));}function hasText(_0x10ce46){const _0x30ba1a=a32_0x2e64;return typeof _0x10ce46===_0x30ba1a(0x20a)&&_0x10ce46[_0x30ba1a(0x208)]()[_0x30ba1a(0x250)]>0x0;}function isPrimitiveFlagDefault(_0x2ad796){const _0x4a423a=a32_0x2e64;return _0x2ad796===undefined||typeof _0x2ad796===_0x4a423a(0x20a)||typeof _0x2ad796===_0x4a423a(0x243)||typeof _0x2ad796===_0x4a423a(0x248);}
@@ -1 +1 @@
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
+ const a33_0x5bdcb8=a33_0x2ec1;function a33_0x2ec1(_0x4ef26c,_0x3f61e2){_0x4ef26c=_0x4ef26c-0x67;const _0xf711ab=a33_0xf711();let _0x2ec13d=_0xf711ab[_0x4ef26c];return _0x2ec13d;}function a33_0xf711(){const _0x3bc4e1=['Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','length','flags','reduce','imported','1470740KBgeBd','3441100fqpohI','1184211IZbfKB','name','commands','write','10563504bVZQmP','str','WRITE','kind','registryIndex','Local\x20service\x20code,\x20for\x20example\x20crm','updated','risk','\x20service(s).','Updated','registry','Exported\x20service\x20','745282Txcvkt','Removed\x20service\x20','entry','Service\x20Tree\x20manifest\x20file\x20path','source','manifests','entries','report','validate','\x20service(s),\x20updated\x20','10436454yZdpFh','registryPath','24ivJrFL','detail','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','Imported\x20','map','cliPath','read','version','serviceCode','required','file','type','warnings','errors','Local\x20service\x20not\x20found:\x20','export','Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','Service\x20registry\x20validation\x20passed.','3dWKLVr','manifest','3341102wSEhgj','cliName','serviceCount','\x20service\x20','target','Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','Imported','list','service','filePath','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry','hash','normalizedManifest','remove','string','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest'];a33_0xf711=function(){return _0x3bc4e1;};return a33_0xf711();}(function(_0x4157ab,_0x10b1e3){const _0x1e7306=a33_0x2ec1,_0x338a1f=_0x4157ab();while(!![]){try{const _0x1a2052=parseInt(_0x1e7306(0x95))/0x1+-parseInt(_0x1e7306(0x6d))/0x2*(parseInt(_0x1e7306(0x6b))/0x3)+-parseInt(_0x1e7306(0x83))/0x4+-parseInt(_0x1e7306(0x84))/0x5+parseInt(_0x1e7306(0x9f))/0x6+parseInt(_0x1e7306(0x89))/0x7+-parseInt(_0x1e7306(0xa1))/0x8*(parseInt(_0x1e7306(0x85))/0x9);if(_0x1a2052===_0x10b1e3)break;else _0x338a1f['push'](_0x338a1f['shift']());}catch(_0x261343){_0x338a1f['push'](_0x338a1f['shift']());}}}(a33_0xf711,0xd507a));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';const FILE_FLAG={'name':a33_0x5bdcb8(0xab),'type':a33_0x5bdcb8(0x7c),'required':!![],'description':a33_0x5bdcb8(0x98)},SERVICE_FLAG={'name':'service','type':a33_0x5bdcb8(0x7c),'required':!![],'description':a33_0x5bdcb8(0x8e),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x238599){const _0x204337=a33_0x5bdcb8;return{'serviceCode':_0x238599['serviceCode'],'name':_0x238599['normalizedManifest'][_0x204337(0x76)][_0x204337(0x86)],'version':_0x238599['version'],'importedAt':_0x238599['importedAt'],'source':_0x238599[_0x204337(0x99)],'commandCount':_0x238599['normalizedManifest'][_0x204337(0x87)][_0x204337(0x7f)],'commands':_0x238599[_0x204337(0x7a)][_0x204337(0x87)]['map'](_0x5eb1c8=>({'path':_0x5eb1c8[_0x204337(0xa6)],'description':_0x5eb1c8['description'],'risk':_0x5eb1c8[_0x204337(0x90)],'target':_0x5eb1c8[_0x204337(0x71)],'flags':_0x5eb1c8[_0x204337(0x80)]['map'](_0x220161=>({'name':_0x220161[_0x204337(0x86)],'cliName':_0x220161[_0x204337(0x6e)],'type':_0x220161[_0x204337(0xac)],'required':_0x220161[_0x204337(0xaa)]===!![]}))}))};}function summarizeLoadedManifest(_0x12d876){const _0x3ea5b5=a33_0x5bdcb8;return{'service':_0x12d876[_0x3ea5b5(0x7a)]?.[_0x3ea5b5(0x76)],'version':_0x12d876['normalizedManifest']?.[_0x3ea5b5(0xa8)],'commandCount':_0x12d876[_0x3ea5b5(0x7a)]?.[_0x3ea5b5(0x87)][_0x3ea5b5(0x7f)]??0x0,'commands':_0x12d876[_0x3ea5b5(0x7a)]?.[_0x3ea5b5(0x87)][_0x3ea5b5(0xa5)](_0x547961=>({'path':_0x547961[_0x3ea5b5(0xa6)],'risk':_0x547961['risk'],'target':_0x547961[_0x3ea5b5(0x71)]}))??[],'registryIndex':_0x12d876[_0x3ea5b5(0x8d)],'registryServiceCode':_0x12d876['registryServiceCode'],'errors':_0x12d876['report']['errors'],'warnings':_0x12d876['report']['warnings']};}export const serviceDefinitions=[{'service':'service','command':a33_0x5bdcb8(0x9d),'description':a33_0x5bdcb8(0x7d),'risk':a33_0x5bdcb8(0xa7),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x26fe5c){const _0x277b64=a33_0x5bdcb8,_0x410b16=loadServiceManifestFromFile(_0x26fe5c[_0x277b64(0x8a)](_0x277b64(0xab)));if(!_0x410b16[_0x277b64(0x9c)]['ok'])return{'ok':![],'data':{'file':_0x410b16[_0x277b64(0x77)],'hash':_0x410b16[_0x277b64(0x79)],'kind':_0x410b16[_0x277b64(0x8c)],'serviceCount':_0x410b16[_0x277b64(0x9a)][_0x277b64(0x7f)],'services':_0x410b16[_0x277b64(0x9a)][_0x277b64(0xa5)](summarizeLoadedManifest),'errors':_0x410b16[_0x277b64(0x9c)][_0x277b64(0xae)],'warnings':_0x410b16['report'][_0x277b64(0xad)]},'message':formatValidationFailure(_0x410b16[_0x277b64(0x9c)])};if(_0x410b16[_0x277b64(0x8c)]===_0x277b64(0x93)||_0x410b16[_0x277b64(0x9a)][_0x277b64(0x7f)]!==0x1)return{'ok':!![],'data':{'file':_0x410b16[_0x277b64(0x77)],'hash':_0x410b16['hash'],'kind':_0x410b16[_0x277b64(0x8c)],'serviceCount':_0x410b16[_0x277b64(0x9a)][_0x277b64(0x7f)],'commandCount':_0x410b16[_0x277b64(0x9a)][_0x277b64(0x81)]((_0x425ada,_0x2ac502)=>_0x425ada+(_0x2ac502[_0x277b64(0x7a)]?.[_0x277b64(0x87)][_0x277b64(0x7f)]??0x0),0x0),'services':_0x410b16[_0x277b64(0x9a)][_0x277b64(0xa5)](summarizeLoadedManifest),'warnings':_0x410b16['report'][_0x277b64(0xad)]},'message':_0x277b64(0x6a)};return{'ok':!![],'data':{'file':_0x410b16['filePath'],'hash':_0x410b16[_0x277b64(0x79)],'kind':_0x410b16['kind'],'service':_0x410b16['normalizedManifest']?.[_0x277b64(0x76)],'version':_0x410b16[_0x277b64(0x7a)]?.[_0x277b64(0xa8)],'commandCount':_0x410b16[_0x277b64(0x7a)]?.['commands'][_0x277b64(0x7f)]??0x0,'commands':_0x410b16['normalizedManifest']?.['commands']['map'](_0x2bf333=>({'path':_0x2bf333[_0x277b64(0xa6)],'risk':_0x2bf333['risk'],'target':_0x2bf333[_0x277b64(0x71)]})),'warnings':_0x410b16[_0x277b64(0x9c)][_0x277b64(0xad)]},'message':'Service\x20manifest\x20validation\x20passed.'};}},{'service':a33_0x5bdcb8(0x76),'command':'import','description':a33_0x5bdcb8(0x78),'risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0xb4e97e){const _0xcca8d8=a33_0x5bdcb8,_0x27caad=loadServiceManifestFromFile(_0xb4e97e[_0xcca8d8(0x8a)](_0xcca8d8(0xab)));return{'method':_0xcca8d8(0x8b),'url':getServiceRegistryPath(),'body':{'file':_0x27caad[_0xcca8d8(0x77)],'hash':_0x27caad[_0xcca8d8(0x79)],'kind':_0x27caad[_0xcca8d8(0x8c)],'ok':_0x27caad[_0xcca8d8(0x9c)]['ok'],'service':_0x27caad[_0xcca8d8(0x7a)]?.[_0xcca8d8(0x76)],'version':_0x27caad['normalizedManifest']?.[_0xcca8d8(0xa8)],'serviceCount':_0x27caad[_0xcca8d8(0x9a)][_0xcca8d8(0x7f)],'services':_0x27caad[_0xcca8d8(0x9a)]['map'](_0x4bfb4c=>({'service':_0x4bfb4c['normalizedManifest']?.[_0xcca8d8(0x76)],'version':_0x4bfb4c[_0xcca8d8(0x7a)]?.[_0xcca8d8(0xa8)],'commandCount':_0x4bfb4c[_0xcca8d8(0x7a)]?.[_0xcca8d8(0x87)][_0xcca8d8(0x7f)]??0x0,'errors':_0x4bfb4c[_0xcca8d8(0x9c)][_0xcca8d8(0xae)]})),'errors':_0x27caad[_0xcca8d8(0x9c)][_0xcca8d8(0xae)],'commandCount':_0x27caad[_0xcca8d8(0x7a)]?.[_0xcca8d8(0x87)][_0xcca8d8(0x7f)]??0x0},'description':_0xcca8d8(0x7e)};},async 'execute'(_0x52b603){const _0x117290=a33_0x5bdcb8,_0xdb9e0=importServiceManifest(_0x52b603['str'](_0x117290(0xab)));if(_0xdb9e0[_0x117290(0x9b)][_0x117290(0x7f)]!==0x1)return{'ok':!![],'data':{'registryPath':_0xdb9e0[_0x117290(0xa0)],'imported':_0xdb9e0[_0x117290(0x82)],'updated':_0xdb9e0[_0x117290(0x8f)],'serviceCount':_0xdb9e0[_0x117290(0x6f)],'services':_0xdb9e0[_0x117290(0x9b)][_0x117290(0xa5)](summarizeService)},'message':_0x117290(0xa4)+_0xdb9e0[_0x117290(0x82)]+_0x117290(0x9e)+_0xdb9e0[_0x117290(0x8f)]+_0x117290(0x91)};return{'ok':!![],'data':{'registryPath':_0xdb9e0[_0x117290(0xa0)],'replaced':_0xdb9e0['replaced'],'imported':_0xdb9e0[_0x117290(0x82)],'updated':_0xdb9e0['updated'],'serviceCount':_0xdb9e0[_0x117290(0x6f)],'service':summarizeService(_0xdb9e0[_0x117290(0x97)])},'message':(_0xdb9e0['replaced']?_0x117290(0x92):_0x117290(0x74))+_0x117290(0x70)+_0xdb9e0[_0x117290(0x97)][_0x117290(0xa9)]+'.'};}},{'service':a33_0x5bdcb8(0x76),'command':a33_0x5bdcb8(0x68),'description':a33_0x5bdcb8(0x69),'risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x5962cb){const _0x5c793e=a33_0x5bdcb8,_0x40c813=getLocalServiceEntry(_0x5962cb['str'](_0x5c793e(0x76)));return{'method':'WRITE','url':_0x5962cb['str'](_0x5c793e(0xab)),'body':{'service':_0x5962cb[_0x5c793e(0x8a)]('service'),'found':Boolean(_0x40c813),'version':_0x40c813?.['version'],'source':_0x40c813?.[_0x5c793e(0x99)]},'description':_0x5c793e(0xa3)};},async 'execute'(_0x2f1af6){const _0x3282eb=a33_0x5bdcb8,_0xa25cf4=exportServiceManifest(_0x2f1af6[_0x3282eb(0x8a)](_0x3282eb(0x76)),_0x2f1af6[_0x3282eb(0x8a)](_0x3282eb(0xab)));return{'ok':!![],'data':{'registryPath':_0xa25cf4[_0x3282eb(0xa0)],'file':_0xa25cf4[_0x3282eb(0x77)],'service':summarizeService(_0xa25cf4[_0x3282eb(0x97)])},'message':_0x3282eb(0x94)+_0xa25cf4[_0x3282eb(0x97)]['serviceCode']+'.'};}},{'service':a33_0x5bdcb8(0x76),'command':a33_0x5bdcb8(0x75),'description':'List\x20locally\x20imported\x20Service\x20Tree\x20manifests','risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x4da036=a33_0x5bdcb8,_0x4f84d9=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x4f84d9[_0x4da036(0x7f)],'services':_0x4f84d9[_0x4da036(0xa5)](summarizeService)}};}},{'service':a33_0x5bdcb8(0x76),'command':a33_0x5bdcb8(0x7b),'description':a33_0x5bdcb8(0x72),'risk':a33_0x5bdcb8(0x88),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x1c48b9){const _0x2a98b2=a33_0x5bdcb8,_0x598de0=getLocalServiceEntry(_0x1c48b9['str'](_0x2a98b2(0x76)));return{'method':_0x2a98b2(0x8b),'url':getServiceRegistryPath(),'body':{'service':_0x1c48b9['str'](_0x2a98b2(0x76)),'found':Boolean(_0x598de0),'version':_0x598de0?.[_0x2a98b2(0xa8)],'source':_0x598de0?.['source']},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x3fabad){const _0x360eef=a33_0x5bdcb8,_0x46e1f1=removeServiceManifest(_0x3fabad[_0x360eef(0x8a)](_0x360eef(0x76)));return{'ok':!![],'data':{'registryPath':_0x46e1f1[_0x360eef(0xa0)],'serviceCount':_0x46e1f1[_0x360eef(0x6f)],'service':summarizeService(_0x46e1f1[_0x360eef(0x97)])},'message':_0x360eef(0x96)+_0x46e1f1['entry']['serviceCode']+'.'};}},{'service':a33_0x5bdcb8(0x76),'command':a33_0x5bdcb8(0xa2),'description':a33_0x5bdcb8(0x73),'risk':a33_0x5bdcb8(0xa7),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x346956){const _0x321df3=a33_0x5bdcb8,_0x56f553=getLocalServiceEntry(_0x346956['str'](_0x321df3(0x76)));if(!_0x56f553)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x346956[_0x321df3(0x8a)](_0x321df3(0x76))},'message':_0x321df3(0x67)+_0x346956[_0x321df3(0x8a)](_0x321df3(0x76))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x56f553),'manifest':_0x56f553[_0x321df3(0x6c)],'normalizedManifest':_0x56f553[_0x321df3(0x7a)]}};}}];
@@ -1 +1 @@
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
+ (function(_0x483968,_0x3c7af1){const _0x32f2e9=a34_0x173a,_0x246156=_0x483968();while(!![]){try{const _0x59b394=-parseInt(_0x32f2e9(0xdb))/0x1+parseInt(_0x32f2e9(0x10c))/0x2*(parseInt(_0x32f2e9(0xfe))/0x3)+parseInt(_0x32f2e9(0x105))/0x4*(-parseInt(_0x32f2e9(0xca))/0x5)+-parseInt(_0x32f2e9(0xea))/0x6*(parseInt(_0x32f2e9(0x10a))/0x7)+-parseInt(_0x32f2e9(0x111))/0x8*(parseInt(_0x32f2e9(0xd5))/0x9)+-parseInt(_0x32f2e9(0xcb))/0xa*(-parseInt(_0x32f2e9(0xd6))/0xb)+parseInt(_0x32f2e9(0xd3))/0xc;if(_0x59b394===_0x3c7af1)break;else _0x246156['push'](_0x246156['shift']());}catch(_0x1bac4d){_0x246156['push'](_0x246156['shift']());}}}(a34_0x1a32,0x837dd));function a34_0x173a(_0x32af14,_0x4a60b0){_0x32af14=_0x32af14-0xc9;const _0x1a3292=a34_0x1a32();let _0x173abe=_0x1a3292[_0x32af14];return _0x173abe;}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(_0x138c3d={}){const _0x58cde7=a34_0x173a;return resolve(_0x138c3d['homeDir']??homedir(),PRODUCT_CONFIG[_0x58cde7(0xf4)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x526bc8={}){const _0x3336ab=a34_0x173a,_0x4780b2=getServiceRegistryPath(_0x526bc8);if(!existsSync(_0x4780b2))return emptyServiceRegistry();try{const _0x527b81=readFileSync(_0x4780b2,'utf8');if(!_0x527b81[_0x3336ab(0xf5)]())return emptyServiceRegistry();const _0x3dbe5f=JSON[_0x3336ab(0xce)](_0x527b81);if(_0x3dbe5f['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x3336ab(0xf9)](_0x3336ab(0xe3)+String(_0x3dbe5f[_0x3336ab(0x118)]),_0x3336ab(0x109)+_0x4780b2+'.');if(!Array[_0x3336ab(0x104)](_0x3dbe5f[_0x3336ab(0xf0)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3dbe5f[_0x3336ab(0xfd)],'services':_0x3dbe5f[_0x3336ab(0xf0)]};}catch(_0x2b7873){if(_0x2b7873 instanceof Error&&_0x2b7873[_0x3336ab(0xef)]===_0x3336ab(0x10d))throw _0x2b7873;throw CliErrors[_0x3336ab(0xf9)](_0x3336ab(0xee)+_0x4780b2,_0x3336ab(0xfa));}}export function writeServiceRegistry(_0x47e2aa,_0x52ef72={}){const _0x21aa26=a34_0x173a,_0x21c886=getServiceRegistryPath(_0x52ef72),_0x2a4e39=dirname(_0x21c886);!existsSync(_0x2a4e39)&&mkdirSync(_0x2a4e39,{'recursive':!![]});const _0x1a1940=_0x21c886+'.tmp';try{writeFileSync(_0x1a1940,JSON[_0x21aa26(0xeb)](_0x47e2aa,null,0x2)+'\x0a',{'encoding':_0x21aa26(0xdf),'mode':0x180}),renameSync(_0x1a1940,_0x21c886);}catch(_0x2e06b5){try{unlinkSync(_0x1a1940);}catch{}if(_0x2e06b5?.[_0x21aa26(0x10b)]===_0x21aa26(0x110))throw CliErrors[_0x21aa26(0xf9)](_0x21aa26(0xf3)+_0x21c886);throw _0x2e06b5;}return _0x21c886;}export function loadServiceManifestFromFile(_0x3d73b3){const _0x2e89ca=a34_0x173a,_0x93ed96=resolve(_0x3d73b3);if(!existsSync(_0x93ed96))throw CliErrors[_0x2e89ca(0xf9)](_0x2e89ca(0xd8)+_0x3d73b3);let _0x58155c;const _0x45cde9=readFileSync(_0x93ed96,_0x2e89ca(0xdf));try{_0x58155c=JSON[_0x2e89ca(0xce)](_0x45cde9);}catch{throw CliErrors['validation'](_0x2e89ca(0x101)+_0x3d73b3,_0x2e89ca(0x102));}const _0xb96f1d=sha256(_0x45cde9),_0x179827=extractLoadedServiceManifests(_0x58155c,_0xb96f1d),_0x4a63d5=aggregateValidationReports(_0x179827),_0x5028fc=_0x179827[0x0];return{'filePath':_0x93ed96,'hash':_0xb96f1d,'kind':isServiceRegistryLike(_0x58155c)?_0x2e89ca(0xd2):'manifest','manifest':_0x5028fc?.['manifest']??_0x58155c,'report':_0x4a63d5,'normalizedManifest':_0x179827['length']===0x1?_0x5028fc?.['normalizedManifest']:undefined,'manifests':_0x179827};}export function importServiceManifest(_0x26e52a,_0x2b1530={}){const _0x2cfe86=a34_0x173a,_0x1d10ec=loadServiceManifestFromFile(_0x26e52a);if(!_0x1d10ec[_0x2cfe86(0x106)]['ok'])throw CliErrors[_0x2cfe86(0xf9)](formatValidationFailure(_0x1d10ec['report']),_0x2cfe86(0x11d));if(_0x1d10ec[_0x2cfe86(0xe1)][_0x2cfe86(0xda)]===0x0)throw CliErrors[_0x2cfe86(0xf9)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x315005=readServiceRegistry(_0x2b1530),_0x4c1ef5=(_0x2b1530[_0x2cfe86(0xcf)]??(()=>new Date()))()[_0x2cfe86(0xf2)](),_0x25616a=[];let _0x279f02=0x0,_0x136943=0x0;for(const _0x3dfd7c of _0x1d10ec[_0x2cfe86(0xe1)]){if(!_0x3dfd7c[_0x2cfe86(0x117)])continue;const _0x11b83c=_0x3dfd7c['normalizedManifest'][_0x2cfe86(0xed)][_0x2cfe86(0x10b)],_0x5d7bb4={'serviceCode':_0x11b83c,'version':_0x3dfd7c[_0x2cfe86(0x117)][_0x2cfe86(0x103)],'importedAt':_0x4c1ef5,'source':{'type':_0x2cfe86(0x114),'path':_0x1d10ec[_0x2cfe86(0xdc)],'hash':_0x3dfd7c[_0x2cfe86(0x100)]},'manifest':_0x3dfd7c[_0x2cfe86(0xec)],'normalizedManifest':_0x3dfd7c[_0x2cfe86(0x117)]},_0x9f3ae3=_0x315005['services'][_0x2cfe86(0xcd)](_0x81f1a7=>_0x81f1a7[_0x2cfe86(0x11c)]===_0x11b83c);_0x9f3ae3>=0x0?(_0x315005['services'][_0x9f3ae3]=_0x5d7bb4,_0x136943++):(_0x315005[_0x2cfe86(0xf0)][_0x2cfe86(0xd1)](_0x5d7bb4),_0x279f02++),_0x25616a[_0x2cfe86(0xd1)](_0x5d7bb4);}_0x315005[_0x2cfe86(0xf0)]['sort']((_0x430139,_0xf52a60)=>_0x430139[_0x2cfe86(0x11c)][_0x2cfe86(0xd4)](_0xf52a60['serviceCode'])),_0x315005['updatedAt']=_0x4c1ef5;const _0x14ae84=writeServiceRegistry(_0x315005,_0x2b1530);return{'registryPath':_0x14ae84,'entry':_0x25616a[0x0],'replaced':_0x25616a[_0x2cfe86(0xda)]===0x1?_0x136943===0x1:_0x136943>0x0,'entries':_0x25616a,'imported':_0x279f02,'updated':_0x136943,'serviceCount':_0x315005[_0x2cfe86(0xf0)][_0x2cfe86(0xda)]};}export function exportServiceManifest(_0x56a296,_0x5b79c0,_0x4ef5f6={}){const _0xec08ca=a34_0x173a,_0x4e1873=getServiceRegistryPath(_0x4ef5f6),_0x497908=getLocalServiceEntry(_0x56a296,_0x4ef5f6);if(!_0x497908)throw CliErrors[_0xec08ca(0xf9)](_0xec08ca(0xff)+_0x56a296,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x5212b5=resolve(_0x5b79c0),_0x559ae6=dirname(_0x5212b5);return!existsSync(_0x559ae6)&&mkdirSync(_0x559ae6,{'recursive':!![]}),writeFileSync(_0x5212b5,JSON[_0xec08ca(0xeb)](_0x497908[_0xec08ca(0xec)],null,0x2)+'\x0a',{'encoding':_0xec08ca(0xdf),'mode':0x180}),{'registryPath':_0x4e1873,'filePath':_0x5212b5,'entry':_0x497908};}export function removeServiceManifest(_0x9ed688,_0x1556f2={}){const _0x165f4f=a34_0x173a,_0x109220=readServiceRegistry(_0x1556f2),_0x2c760d=_0x9ed688[_0x165f4f(0xf5)](),_0x41034d=_0x109220['services'][_0x165f4f(0xcd)](_0x31ee8f=>_0x31ee8f[_0x165f4f(0x11c)]===_0x2c760d);if(_0x41034d<0x0)throw CliErrors[_0x165f4f(0xf9)](_0x165f4f(0xff)+_0x2c760d,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const [_0x510609]=_0x109220[_0x165f4f(0xf0)][_0x165f4f(0xe0)](_0x41034d,0x1),_0x43f4e7=(_0x1556f2[_0x165f4f(0xcf)]??(()=>new Date()))()['toISOString']();_0x109220[_0x165f4f(0xfd)]=_0x43f4e7;const _0x272fa6=writeServiceRegistry(_0x109220,_0x1556f2);return{'registryPath':_0x272fa6,'entry':_0x510609,'serviceCount':_0x109220[_0x165f4f(0xf0)][_0x165f4f(0xda)]};}export function listLocalServices(_0xd17479={}){const _0x4f8af5=a34_0x173a;return readServiceRegistry(_0xd17479)[_0x4f8af5(0xf0)];}export function getLocalServiceEntry(_0x5eb075,_0x307ff1={}){const _0x11d7df=a34_0x173a;return readServiceRegistry(_0x307ff1)[_0x11d7df(0xf0)][_0x11d7df(0x119)](_0x32cf18=>_0x32cf18[_0x11d7df(0x11c)]===_0x5eb075[_0x11d7df(0xf5)]());}export function listLocalServiceTrees(_0x173883={}){const _0x2ed9ff=a34_0x173a;return readServiceRegistry(_0x173883)['services'][_0x2ed9ff(0xde)](_0x2d075c=>_0x2d075c['normalizedManifest']);}export function inspectServiceRegistry(_0x390779={}){const _0x1b64d0=a34_0x173a,_0x2e7764=getServiceRegistryPath(_0x390779);if(!existsSync(_0x2e7764))return emptyServiceRegistryInspection(_0x2e7764,'missing',![]);try{const _0x4f2837=readFileSync(_0x2e7764,_0x1b64d0(0xdf));if(!_0x4f2837['trim']())return emptyServiceRegistryInspection(_0x2e7764,_0x1b64d0(0x116),!![]);const _0x5abf0b=JSON['parse'](_0x4f2837);if(_0x5abf0b[_0x1b64d0(0x118)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x2e7764,_0x1b64d0(0x108),!![]),'schemaVersion':_0x5abf0b[_0x1b64d0(0x118)],'message':_0x1b64d0(0xe9)+String(_0x5abf0b['schemaVersion'])};if(!Array[_0x1b64d0(0x104)](_0x5abf0b[_0x1b64d0(0xf0)]))return{...emptyServiceRegistryInspection(_0x2e7764,_0x1b64d0(0x108),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5abf0b[_0x1b64d0(0xfd)],'message':_0x1b64d0(0xe6)};const _0x1e6c7c=_0x5abf0b['services'][_0x1b64d0(0xde)](summarizeLocalServiceEntry);return{'registryPath':_0x2e7764,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x5abf0b['updatedAt'],'serviceCount':_0x1e6c7c[_0x1b64d0(0xda)],'commandCount':_0x1e6c7c[_0x1b64d0(0xe4)]((_0x45eb7f,_0x2a5d16)=>_0x45eb7f+_0x2a5d16['commandCount'],0x0),'services':_0x1e6c7c};}catch(_0x5f1ea0){return{...emptyServiceRegistryInspection(_0x2e7764,_0x1b64d0(0x108),!![]),'message':_0x5f1ea0 instanceof Error?_0x5f1ea0[_0x1b64d0(0xe7)]:String(_0x5f1ea0)};}}export function formatValidationFailure(_0x5a00f0){const _0x315894=a34_0x173a,_0x22edc0=_0x5a00f0[_0x315894(0xf8)][_0x315894(0xde)](_0x146cea=>_0x146cea[_0x315894(0xf6)]+':\x20'+_0x146cea[_0x315894(0xe7)]);return _0x315894(0x115)+_0x22edc0['join']('\x0a');}function extractLoadedServiceManifests(_0x36e501,_0x4831fa){const _0x3a5245=a34_0x173a;if(!isServiceRegistryLike(_0x36e501)){const _0x2ee6c1=_0x36e501,_0x3f9f9a=validateServiceTreeManifest(_0x2ee6c1);return[{'manifest':_0x2ee6c1,'report':_0x3f9f9a,'normalizedManifest':_0x3f9f9a['ok']?normalizeServiceTreeManifest(_0x2ee6c1):undefined,'sourceHash':_0x4831fa}];}return _0x36e501['services'][_0x3a5245(0xde)]((_0x24e842,_0x35a935)=>{const _0x52b95e=_0x3a5245,_0x1bf4cb=isObjectRecord(_0x24e842)?_0x24e842[_0x52b95e(0xec)]:undefined,_0x27e8ba=validateServiceTreeManifest(_0x1bf4cb),_0x5bffb2=isObjectRecord(_0x24e842)&&typeof _0x24e842[_0x52b95e(0x11c)]===_0x52b95e(0x10e)?_0x24e842[_0x52b95e(0x11c)]:undefined;return{'manifest':_0x1bf4cb,'report':_0x27e8ba,'normalizedManifest':_0x27e8ba['ok']?normalizeServiceTreeManifest(_0x1bf4cb):undefined,'sourceHash':sha256(JSON[_0x52b95e(0xeb)](_0x1bf4cb,null,0x2)+'\x0a'),'registryIndex':_0x35a935,'registryServiceCode':_0x5bffb2};});}function aggregateValidationReports(_0xaafd56){const _0x48f2e=a34_0x173a,_0x5445d5=_0xaafd56[_0x48f2e(0x11e)](_0x4563b5=>_0x4563b5[_0x48f2e(0x11b)]===undefined?_0x4563b5[_0x48f2e(0x106)][_0x48f2e(0xf8)]:_0x4563b5[_0x48f2e(0x106)][_0x48f2e(0xf8)][_0x48f2e(0xde)](_0x1bc194=>({..._0x1bc194,'path':prefixRegistryIssuePath(_0x4563b5[_0x48f2e(0x11b)],_0x1bc194[_0x48f2e(0xf6)])}))),_0x26e30f=_0xaafd56[_0x48f2e(0x11e)](_0x452624=>_0x452624[_0x48f2e(0x11b)]===undefined?_0x452624['report']['warnings']:_0x452624[_0x48f2e(0x106)][_0x48f2e(0xf7)]['map'](_0x534b2f=>({..._0x534b2f,'path':prefixRegistryIssuePath(_0x452624['registryIndex'],_0x534b2f[_0x48f2e(0xf6)])})));return{'ok':_0x5445d5[_0x48f2e(0xda)]===0x0,'errors':_0x5445d5,'warnings':_0x26e30f};}function prefixRegistryIssuePath(_0x53b296,_0x35bcc7){const _0x3b7dea=a34_0x173a;if(_0x35bcc7==='$')return _0x3b7dea(0xd9)+_0x53b296+'].manifest';if(_0x35bcc7[_0x3b7dea(0xcc)]('$.'))return _0x3b7dea(0xd9)+_0x53b296+_0x3b7dea(0xe2)+_0x35bcc7['slice'](0x1);if(_0x35bcc7[_0x3b7dea(0xcc)]('$['))return _0x3b7dea(0xd9)+_0x53b296+_0x3b7dea(0xe2)+_0x35bcc7[_0x3b7dea(0xfc)](0x1);return _0x3b7dea(0xd9)+_0x53b296+_0x3b7dea(0x112)+_0x35bcc7;}function isServiceRegistryLike(_0x1aeaad){const _0x2d06e6=a34_0x173a;return isObjectRecord(_0x1aeaad)&&_0x1aeaad[_0x2d06e6(0x118)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array['isArray'](_0x1aeaad['services']);}function isObjectRecord(_0x2dbd35){const _0x36f3be=a34_0x173a;return Boolean(_0x2dbd35)&&typeof _0x2dbd35===_0x36f3be(0xd7)&&!Array[_0x36f3be(0x104)](_0x2dbd35);}function emptyServiceRegistryInspection(_0x4d1819,_0x1638ff,_0x550cb1){return{'registryPath':_0x4d1819,'exists':_0x550cb1,'status':_0x1638ff,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function a34_0x1a32(){const _0x44fc1d=['isArray','2532568YYHeNB','report','kind','invalid','Remove\x20or\x20migrate\x20','6293777amjDWX','code','1276718RVMDjO','CliError','string','hex','ENOENT','101104ymPlrM','].manifest.','importedAt','file','Service\x20manifest\x20validation\x20failed:\x0a','empty','normalizedManifest','schemaVersion','find','commands','registryIndex','serviceCode','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','flatMap','cliPath','5eQRjyp','293730JoWoFL','startsWith','findIndex','parse','now','source','push','registry','29926872FgpiXz','localeCompare','387lCjEyn','187nIUKwO','object','Service\x20manifest\x20file\x20not\x20found:\x20','$.services[','length','1017330RcIfYu','filePath','command','map','utf8','splice','manifests','].manifest','Unsupported\x20service\x20registry\x20schemaVersion:\x20','reduce','update','services\x20must\x20be\x20an\x20array','message','sha256','Unsupported\x20schemaVersion:\x20','6oiycjA','stringify','manifest','service','Invalid\x20service\x20registry\x20JSON:\x20','name','services','digest','toISOString','Cannot\x20write\x20service\x20registry:\x20','homeDirName','trim','path','warnings','errors','validation','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','description','slice','updatedAt','3hxgGJU','Local\x20service\x20not\x20found:\x20','sourceHash','Invalid\x20service\x20manifest\x20JSON:\x20','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','version'];a34_0x1a32=function(){return _0x44fc1d;};return a34_0x1a32();}function summarizeLocalServiceEntry(_0x24c102){const _0x3d801d=a34_0x173a,_0x1cbabd=_0x24c102['normalizedManifest'],_0xbe4172=_0x1cbabd[_0x3d801d(0x11a)][_0x3d801d(0xde)](_0x359e89=>({'path':_0x359e89[_0x3d801d(0xc9)],'description':_0x359e89[_0x3d801d(0xfb)],'risk':_0x359e89['risk'],'targetKind':_0x359e89['target'][_0x3d801d(0x107)],'targetCommand':_0x359e89['target'][_0x3d801d(0xdd)]}));return{'serviceCode':_0x24c102[_0x3d801d(0x11c)],'name':_0x1cbabd['service'][_0x3d801d(0xef)],'description':_0x1cbabd[_0x3d801d(0xed)][_0x3d801d(0xfb)],'version':_0x24c102[_0x3d801d(0x103)],'importedAt':_0x24c102[_0x3d801d(0x113)],'source':_0x24c102[_0x3d801d(0xd0)],'commandCount':_0xbe4172['length'],'commands':_0xbe4172};}function sha256(_0x5811e4){const _0x3b53b6=a34_0x173a;return createHash(_0x3b53b6(0xe8))[_0x3b53b6(0xe5)](_0x5811e4)[_0x3b53b6(0xf1)](_0x3b53b6(0x10f));}
@@ -1 +1 @@
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
+ const a35_0x532240=a35_0x24e9;function a35_0x37d3(){const _0x4ad867=['name','Skill\x20directory\x20already\x20exists:\x20','files','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','target','content','rendered','map','validation','skill','261cbDzod','write','136ApzZik','force','1675722Zatola','skillName','522730xuxlwe','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','trim','113JIgSmC','isSymbolicLink','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','type','Created\x20local\x20Skill\x20draft\x20','skillDir','824260elQMRz','7mAihKq','path','69016cMtFMB','Refusing\x20to\x20overwrite\x20symlink:\x20','str','1354588skSFir','3YHFvGf','1959661JGveHh','isDirectory'];a35_0x37d3=function(){return _0x4ad867;};return a35_0x37d3();}(function(_0x5c32f5,_0x5a2d40){const _0x58986a=a35_0x24e9,_0x1d0d15=_0x5c32f5();while(!![]){try{const _0x33986d=parseInt(_0x58986a(0x1b8))/0x1*(parseInt(_0x58986a(0x1b1))/0x2)+parseInt(_0x58986a(0x1a2))/0x3*(parseInt(_0x58986a(0x1a1))/0x4)+parseInt(_0x58986a(0x1b5))/0x5+parseInt(_0x58986a(0x1b3))/0x6*(-parseInt(_0x58986a(0x1bf))/0x7)+-parseInt(_0x58986a(0x1c1))/0x8*(parseInt(_0x58986a(0x1af))/0x9)+parseInt(_0x58986a(0x1be))/0xa+parseInt(_0x58986a(0x1a3))/0xb;if(_0x33986d===_0x5a2d40)break;else _0x1d0d15['push'](_0x1d0d15['shift']());}catch(_0x109205){_0x1d0d15['push'](_0x1d0d15['shift']());}}}(a35_0x37d3,0x2c6e0));function a35_0x24e9(_0x34e66f,_0x5571d1){_0x34e66f=_0x34e66f-0x1a0;const _0x37d318=a35_0x37d3();let _0x24e997=_0x37d318[_0x34e66f];return _0x24e997;}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';export const createCommand={'service':a35_0x532240(0x1ae),'command':'create','description':'Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','risk':a35_0x532240(0x1b0),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x3efdc7){const _0x1bc8e5=a35_0x532240,_0x58dc7b=buildSkillCreatePlan(_0x3efdc7[_0x1bc8e5(0x1a0)]('name'),_0x3efdc7[_0x1bc8e5(0x1a0)](_0x1bc8e5(0x1bb)),_0x3efdc7[_0x1bc8e5(0x1a0)](_0x1bc8e5(0x1a9)));return{'method':'WRITE','url':_0x58dc7b[_0x1bc8e5(0x1bd)],'body':{'skillName':_0x58dc7b['rendered'][_0x1bc8e5(0x1b4)],'type':_0x58dc7b['rendered'][_0x1bc8e5(0x1bb)],'selfContained':!![],'files':_0x58dc7b[_0x1bc8e5(0x1ab)][_0x1bc8e5(0x1a7)]['map'](_0x21205c=>_0x21205c[_0x1bc8e5(0x1c0)])},'description':_0x1bc8e5(0x1ba)};},async 'execute'(_0x523dea){const _0x5c48c1=a35_0x532240,_0x9a15ce=buildSkillCreatePlan(_0x523dea['str'](_0x5c48c1(0x1a5)),_0x523dea[_0x5c48c1(0x1a0)](_0x5c48c1(0x1bb)),_0x523dea[_0x5c48c1(0x1a0)](_0x5c48c1(0x1a9)));return writeSkillDraft(_0x9a15ce,_0x523dea['bool'](_0x5c48c1(0x1b2))),{'ok':!![],'data':{'skillName':_0x9a15ce[_0x5c48c1(0x1ab)]['skillName'],'type':_0x9a15ce[_0x5c48c1(0x1ab)][_0x5c48c1(0x1bb)],'dir':_0x9a15ce[_0x5c48c1(0x1bd)],'files':_0x9a15ce['rendered'][_0x5c48c1(0x1a7)][_0x5c48c1(0x1ac)](_0x325fa6=>_0x325fa6[_0x5c48c1(0x1c0)])},'message':_0x5c48c1(0x1bc)+_0x9a15ce[_0x5c48c1(0x1ab)]['skillName']};}};function buildSkillCreatePlan(_0x14b678,_0xcbfca6,_0x29d2a8){const _0x1f0200=a35_0x532240,_0x46b2f8=renderSkillTemplate({'skillName':_0x14b678,'type':_0xcbfca6}),_0x391a97=resolve(normalizeSkillTarget(_0x29d2a8));return{'rendered':_0x46b2f8,'targetRoot':_0x391a97,'skillDir':resolve(_0x391a97,_0x46b2f8[_0x1f0200(0x1b4)])};}function normalizeSkillTarget(_0x46a5f9){const _0xc9ccea=a35_0x532240;return(_0x46a5f9||DEFAULT_SKILL_TARGET)[_0xc9ccea(0x1b7)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x388a76,_0x344b87){const _0x112f71=a35_0x532240;if(existsSync(_0x388a76[_0x112f71(0x1bd)])){const _0x242ca3=lstatSync(_0x388a76[_0x112f71(0x1bd)]);if(!_0x242ca3[_0x112f71(0x1a4)]()||_0x242ca3[_0x112f71(0x1b9)]())throw CliErrors['validation'](_0x112f71(0x1b6)+_0x388a76[_0x112f71(0x1bd)]);if(!_0x344b87)throw CliErrors[_0x112f71(0x1ad)](_0x112f71(0x1a6)+_0x388a76['skillDir'],_0x112f71(0x1a8));}for(const _0x590b33 of _0x388a76[_0x112f71(0x1ab)][_0x112f71(0x1a7)]){const _0x15b4a9=resolve(_0x388a76[_0x112f71(0x1bd)],_0x590b33[_0x112f71(0x1c0)]),_0x5dc298=dirname(_0x15b4a9);mkdirSync(_0x5dc298,{'recursive':!![]});if(existsSync(_0x15b4a9)&&lstatSync(_0x15b4a9)[_0x112f71(0x1b9)]())throw CliErrors[_0x112f71(0x1ad)](_0x112f71(0x1c2)+_0x15b4a9);writeFileSync(_0x15b4a9,_0x590b33[_0x112f71(0x1aa)],'utf8');}}
@@ -1 +1 @@
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();}
1
+ const a36_0x22f9d3=a36_0x33d2;(function(_0x4fb7e4,_0x58725c){const _0x3e29d2=a36_0x33d2,_0x36d172=_0x4fb7e4();while(!![]){try{const _0x4d7631=-parseInt(_0x3e29d2(0xc5))/0x1*(-parseInt(_0x3e29d2(0xca))/0x2)+-parseInt(_0x3e29d2(0xdb))/0x3+-parseInt(_0x3e29d2(0xd0))/0x4+-parseInt(_0x3e29d2(0xdc))/0x5+-parseInt(_0x3e29d2(0xda))/0x6+-parseInt(_0x3e29d2(0xbc))/0x7+parseInt(_0x3e29d2(0xcf))/0x8;if(_0x4d7631===_0x58725c)break;else _0x36d172['push'](_0x36d172['shift']());}catch(_0x1ef987){_0x36d172['push'](_0x36d172['shift']());}}}(a36_0x1b1b,0x8f227));function a36_0x1b1b(){const _0x2f2232=['skipped','../../../skills/runtime-skill-sync.js','production','version','appCode','7336630aRWLrZ','flatMap','map','action','length','envName','reduce','company','write','475347Didwyw','Installed\x20','personal','all','\x20company\x20Skill(s).','2NWIyvD','skill','removed','updated','trim','21437256mkEOue','3864460XEzppM','str','skillCode','includes','Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','filter','\x20personal\x20and\x20','created','install','push','364740fqcWyN','735210emuRwQ','1243300MaTLrU','code'];a36_0x1b1b=function(){return _0x2f2232;};return a36_0x1b1b();}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_0x22f9d3(0xcb),'command':a36_0x22f9d3(0xd8),'description':'Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','risk':a36_0x22f9d3(0xc4),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG],async 'execute'(_0x586a1f){return syncRuntimeSkills(_0x586a1f);}};async function syncRuntimeSkills(_0x3c6457){const _0x224a7a=a36_0x22f9d3,{downloadRuntimeSkillPackage:_0x230981,listRuntimeSkills:_0x5d6121}=await import('../../../core/api-client.js'),{linkEffectiveRuntimeSkills:_0x511514,materializeRuntimeSkill:_0x31e49f,pruneStaleRuntimeSkillCache:_0x24d2a9,pruneStaleRuntimeSkillLinks:_0x126368}=await import(_0x224a7a(0xdf)),_0x3fdfda=_0x3c6457['str'](_0x224a7a(0xdd)),_0x55192c=normalizeSyncScopes(_0x3c6457[_0x224a7a(0xd1)]('scope')),_0x48e8e7=_0x3c6457[_0x224a7a(0xc1)]??_0x224a7a(0xe0),_0x1a380e=_0x3c6457['accessKey'];if(!_0x1a380e)throw CliErrors['authRequired'](_0x224a7a(0xd4));const _0x7d8c7e=await Promise[_0x224a7a(0xc8)](_0x55192c[_0x224a7a(0xbe)](_0x297876=>_0x5d6121({'appCode':_0x3c6457[_0x224a7a(0xbb)],'scope':_0x297876,'code':_0x3fdfda[_0x224a7a(0xce)]()||undefined}))),_0x36f6b0=_0x55192c[_0x224a7a(0xd3)](_0x224a7a(0xc7))?_0x7d8c7e[_0x224a7a(0xbd)]((_0x37ff64,_0x194978)=>_0x55192c[_0x194978]===_0x224a7a(0xc7)?_0x37ff64[_0x224a7a(0xc7)]:[]):[],_0x69192a=_0x55192c[_0x224a7a(0xd3)](_0x224a7a(0xc3))?_0x7d8c7e['flatMap']((_0x392a56,_0x2aeba4)=>_0x55192c[_0x2aeba4]===_0x224a7a(0xc3)?_0x392a56['company']:[]):[],_0x4490bf=new Set([..._0x36f6b0[_0x224a7a(0xbe)](_0x2867e6=>_0x2867e6['skillCode']?.[_0x224a7a(0xce)]())[_0x224a7a(0xd5)](_0x3e09d9=>Boolean(_0x3e09d9)),..._0x69192a['map'](_0x1eeee3=>_0x1eeee3[_0x224a7a(0xd2)]?.[_0x224a7a(0xce)]())['filter'](_0xf433f0=>Boolean(_0xf433f0))]),_0x4215cb=_0x3fdfda[_0x224a7a(0xce)]()?[_0x3fdfda[_0x224a7a(0xce)]()]:undefined,_0x4de723=_0x55192c['length']===0x2&&_0x55192c['includes']('personal')&&_0x55192c['includes']('company'),_0x48a2b8=_0x4de723?_0x126368(_0x3c6457[_0x224a7a(0xbb)],_0x4490bf,{},_0x4215cb):[],_0x27fb77=_0x24d2a9({'env':_0x48e8e7,'accessKey':_0x1a380e,'appCode':_0x3c6457[_0x224a7a(0xbb)],'activeSkillCodes':_0x4490bf,'pruneSkillCodes':_0x4215cb,'scopes':_0x55192c}),_0x11863f=[];for(const _0x14f0fe of _0x36f6b0){_0x11863f[_0x224a7a(0xd9)](_0x31e49f(_0x14f0fe,'personal',{'env':_0x48e8e7,'accessKey':_0x1a380e,'appCode':_0x3c6457[_0x224a7a(0xbb)],'packageBytes':await downloadSkillPackage(_0x14f0fe,_0x224a7a(0xc7),_0x3c6457[_0x224a7a(0xbb)],_0x230981)}));}for(const _0xcf22af of _0x69192a){_0x11863f[_0x224a7a(0xd9)](_0x31e49f(_0xcf22af,'company',{'env':_0x48e8e7,'accessKey':_0x1a380e,'appCode':_0x3c6457[_0x224a7a(0xbb)],'packageBytes':await downloadSkillPackage(_0xcf22af,_0x224a7a(0xc3),_0x3c6457[_0x224a7a(0xbb)],_0x230981)}));}const _0x5711aa=_0x511514(_0x11863f,_0x3c6457['appCode']),_0x551a58=countLinkActions(_0x5711aa);return{'ok':!![],'data':{'appCode':_0x3c6457[_0x224a7a(0xbb)],'personal':_0x36f6b0[_0x224a7a(0xc0)],'company':_0x69192a[_0x224a7a(0xc0)],'materialized':_0x11863f[_0x224a7a(0xc0)],'links':{'total':_0x5711aa[_0x224a7a(0xc0)],'created':_0x551a58[_0x224a7a(0xd7)]??0x0,'updated':_0x551a58[_0x224a7a(0xcd)]??0x0,'unchanged':_0x551a58['unchanged']??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x48a2b8['filter'](_0x47f997=>_0x47f997['action']===_0x224a7a(0xcc))['length'],'cacheDirs':_0x27fb77[_0x224a7a(0xd5)](_0x124aac=>_0x124aac[_0x224a7a(0xbf)]===_0x224a7a(0xcc))[_0x224a7a(0xc0)],'skipped':[..._0x48a2b8,..._0x27fb77][_0x224a7a(0xd5)](_0x5d9c8d=>_0x5d9c8d[_0x224a7a(0xbf)]===_0x224a7a(0xde))[_0x224a7a(0xc0)]},'skills':{'personal':_0x36f6b0[_0x224a7a(0xbe)](summarizeRuntimeSkill),'company':_0x69192a[_0x224a7a(0xbe)](summarizeRuntimeSkill)}},'message':_0x224a7a(0xc6)+_0x36f6b0['length']+_0x224a7a(0xd6)+_0x69192a[_0x224a7a(0xc0)]+_0x224a7a(0xc9)};}function a36_0x33d2(_0x70c7bf,_0x22178e){_0x70c7bf=_0x70c7bf-0xbb;const _0x1b1b90=a36_0x1b1b();let _0x33d231=_0x1b1b90[_0x70c7bf];return _0x33d231;}async function downloadSkillPackage(_0x4ed76f,_0x50149b,_0x384ebf,_0x32e23f){const _0x4a49fa=a36_0x22f9d3,_0xd81804=_0x4ed76f[_0x4a49fa(0xe1)]?.[_0x4a49fa(0xce)]();return _0xd81804?_0x32e23f(_0x50149b,_0x4ed76f['skillCode'],_0x384ebf,_0xd81804):_0x32e23f(_0x50149b,_0x4ed76f['skillCode'],_0x384ebf);}function countLinkActions(_0x3e0528){const _0x3e73c4=a36_0x22f9d3;return _0x3e0528[_0x3e73c4(0xc2)]((_0x38ab23,_0x509fde)=>{const _0x3b2c9a=_0x3e73c4;return _0x38ab23[_0x509fde[_0x3b2c9a(0xbf)]]=(_0x38ab23[_0x509fde[_0x3b2c9a(0xbf)]]??0x0)+0x1,_0x38ab23;},{});}