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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ function a27_0x3a65(){const _0x35c56b=['Personal\x20knowledge-base\x20entry\x20title','Search\x20visible\x20company\x20and\x20personal\x20knowledge\x20base\x20content','313250fPuAfi','166366AYDYaz','create','validation','detail','file','ragErrorMessage','weightedScore','content','docId','1481180esXJJg','File\x20is\x20not\x20a\x20regular\x20file:\x20','6CtBbaH','Search\x20query\x20for\x20visible\x20company\x20and\x20personal\x20knowledge','appCode','search','verbose','metadata','485192DktiPj','length','Preview:\x20update\x20personal\x20knowledge-base\x20entry\x20','topk','query','isFinite','Update\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','updateTime','Override\x20the\x20existing\x20entry\x20title','Create\x20a\x20personal\x20knowledge-base\x20entry\x20from\x20a\x20local\x20file','ragStatus','trim','isFile','405915fiIIQL','createTime','list','description','Path\x20to\x20a\x20local\x20UTF-8\x20text\x20or\x20Markdown\x20file','version','string','title','Maximum\x20number\x20of\x20search\x20hits\x20to\x20return','build','4763969qsltFW','Preview:\x20create\x20personal\x20knowledge-base\x20entry\x20\x22','File\x20path\x20is\x20required.','6978008ofHXXa','/client/knowledge-base/personal/','utf8','flag','update','read','Updated\x20KB\x20entry\x20','bool','/client/knowledge-base/personal/create','userId','/update','str','score','num'];a27_0x3a65=function(){return _0x35c56b;};return a27_0x3a65();}const a27_0x39fcb7=a27_0x24df;(function(_0x4b8713,_0x312904){const _0x3a6084=a27_0x24df,_0x408e24=_0x4b8713();while(!![]){try{const _0x29d680=-parseInt(_0x3a6084(0x12f))/0x1+-parseInt(_0x3a6084(0x140))/0x2+parseInt(_0x3a6084(0x111))/0x3+parseInt(_0x3a6084(0x138))/0x4+parseInt(_0x3a6084(0x12e))/0x5+-parseInt(_0x3a6084(0x13a))/0x6*(parseInt(_0x3a6084(0x11b))/0x7)+parseInt(_0x3a6084(0x11e))/0x8;if(_0x29d680===_0x312904)break;else _0x408e24['push'](_0x408e24['shift']());}catch(_0x3a394d){_0x408e24['push'](_0x408e24['shift']());}}}(a27_0x3a65,0x55afc));import{existsSync,readFileSync,statSync}from'node:fs';function a27_0x24df(_0x128e06,_0x5aa200){_0x128e06=_0x128e06-0x10c;const _0x3a651a=a27_0x3a65();let _0x24df04=_0x3a651a[_0x128e06];return _0x24df04;}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_0x39fcb7(0x118),'type':a27_0x39fcb7(0x117),'required':!![],'description':a27_0x39fcb7(0x12c)},FILE_FLAG={'name':'file','type':'string','required':!![],'description':a27_0x39fcb7(0x115)},QUERY_FLAG={'name':a27_0x39fcb7(0x144),'type':a27_0x39fcb7(0x117),'required':!![],'description':a27_0x39fcb7(0x13b)},TOPK_FLAG={'name':'topk','type':'number','description':a27_0x39fcb7(0x119)};function readKnowledgeFile(_0x40f583){const _0x2aba56=a27_0x39fcb7;if(!_0x40f583)throw CliErrors[_0x2aba56(0x131)](_0x2aba56(0x11d));if(!existsSync(_0x40f583))throw CliErrors[_0x2aba56(0x131)]('File\x20not\x20found:\x20'+_0x40f583);if(!statSync(_0x40f583)[_0x2aba56(0x110)]())throw CliErrors[_0x2aba56(0x131)](_0x2aba56(0x139)+_0x40f583);return readFileSync(_0x40f583,_0x2aba56(0x120));}function summarizePersonalItem(_0x6c064f){const _0x1b5715=a27_0x39fcb7;return{'id':_0x6c064f['id'],'title':_0x6c064f[_0x1b5715(0x118)],'version':_0x6c064f[_0x1b5715(0x116)],'ragStatus':_0x6c064f[_0x1b5715(0x10e)],'ragErrorMessage':_0x6c064f[_0x1b5715(0x134)],'updateTime':_0x6c064f['updateTime']};}function detailPersonalItem(_0x155f07){const _0x8470a1=a27_0x39fcb7;return{'id':_0x155f07['id'],'appCode':_0x155f07[_0x8470a1(0x13c)],'scope':_0x155f07['scope'],'userId':_0x155f07[_0x8470a1(0x127)],'title':_0x155f07[_0x8470a1(0x118)],'content':_0x155f07['content']??'','version':_0x155f07[_0x8470a1(0x116)],'ragStatus':_0x155f07[_0x8470a1(0x10e)],'ragErrorMessage':_0x155f07['ragErrorMessage'],'createTime':_0x155f07[_0x8470a1(0x112)],'updateTime':_0x155f07[_0x8470a1(0x147)]};}function summarizeSearchHit(_0x5d957f){const _0xe1a901=a27_0x39fcb7;return{'scope':_0x5d957f['scope'],'docId':_0x5d957f[_0xe1a901(0x137)],'score':_0x5d957f[_0xe1a901(0x12a)],'weightedScore':_0x5d957f[_0xe1a901(0x135)],'content':_0x5d957f[_0xe1a901(0x136)],'metadata':_0x5d957f[_0xe1a901(0x13f)]};}function readTopK(_0x3f6a33){const _0x390e2b=a27_0x39fcb7,_0x1144c4=_0x3f6a33[_0x390e2b(0x121)](_0x390e2b(0x143));if(_0x1144c4===undefined||_0x1144c4===null||_0x1144c4==='')return undefined;const _0x4a82e1=_0x3f6a33[_0x390e2b(0x12b)](_0x390e2b(0x143));if(!Number[_0x390e2b(0x145)](_0x4a82e1)||_0x4a82e1<0x1)throw CliErrors[_0x390e2b(0x131)]('--topk\x20must\x20be\x20a\x20positive\x20number.');return _0x4a82e1;}const kbList={'service':'kb','command':a27_0x39fcb7(0x113),'description':'List\x20personal\x20knowledge-base\x20entries\x20for\x20the\x20current\x20app','risk':a27_0x39fcb7(0x123),'flags':[VERBOSE_FLAG],async 'execute'(_0x79589c){const _0x423f69=a27_0x39fcb7,_0x5f222e=await listPersonalKnowledgeBaseItems(_0x79589c[_0x423f69(0x13c)]);if(_0x79589c[_0x423f69(0x125)](_0x423f69(0x13e)))return{'ok':!![],'data':{'total':_0x5f222e[_0x423f69(0x141)],'items':_0x5f222e}};return{'ok':!![],'data':{'total':_0x5f222e['length'],'items':_0x5f222e['map'](summarizePersonalItem)}};}},kbDetail={'service':'kb','command':a27_0x39fcb7(0x132),'description':'Show\x20one\x20personal\x20knowledge-base\x20entry\x20by\x20id','risk':a27_0x39fcb7(0x123),'flags':[{...ID_FLAG,'description':'Personal\x20knowledge-base\x20entry\x20ID'}],async 'execute'(_0x54b5f1){const _0x964c40=a27_0x39fcb7,_0x4f961e=await getPersonalKnowledgeBaseItem(_0x54b5f1[_0x964c40(0x12b)]('id'),_0x54b5f1[_0x964c40(0x13c)]);return{'ok':!![],'data':detailPersonalItem(_0x4f961e)};}},kbCreate={'service':'kb','command':a27_0x39fcb7(0x130),'description':a27_0x39fcb7(0x10d),'risk':'write','flags':[TITLE_FLAG,FILE_FLAG],async 'execute'(_0x312211){const _0xdb8bc1=a27_0x39fcb7,_0x36b63f=_0x312211[_0xdb8bc1(0x129)]('title'),_0x36854f=readKnowledgeFile(_0x312211['str']('file')),_0x171413=await createPersonalKnowledgeBaseItem(_0x312211[_0xdb8bc1(0x13c)],{'title':_0x36b63f,'content':_0x36854f});return{'ok':!![],'data':summarizePersonalItem(_0x171413),'message':'Created\x20KB\x20entry\x20'+_0x171413['id']+'\x20('+_0x171413[_0xdb8bc1(0x118)]+')'};},async 'dryRun'(_0x276e9b){const _0x168d12=a27_0x39fcb7,_0x5987ce=_0x276e9b[_0x168d12(0x129)](_0x168d12(0x118)),_0x11cdbd=readKnowledgeFile(_0x276e9b['str'](_0x168d12(0x133)));return dryRun('POST',_0x168d12(0x126))['body']({'appCode':_0x276e9b[_0x168d12(0x13c)],'title':_0x5987ce,'content':_0x11cdbd})[_0x168d12(0x114)](_0x168d12(0x11c)+_0x5987ce+'\x22')[_0x168d12(0x11a)]();}},kbUpdate={'service':'kb','command':a27_0x39fcb7(0x122),'description':a27_0x39fcb7(0x146),'risk':'write','flags':[{...ID_FLAG,'description':'Personal\x20knowledge-base\x20entry\x20ID'},{...TITLE_FLAG,'required':![],'description':a27_0x39fcb7(0x10c)},FILE_FLAG],async 'execute'(_0x47f4a6){const _0x58f743=a27_0x39fcb7,_0x29729e=_0x47f4a6[_0x58f743(0x12b)]('id'),_0x28b587=readKnowledgeFile(_0x47f4a6[_0x58f743(0x129)](_0x58f743(0x133))),_0x506eb1=_0x47f4a6[_0x58f743(0x129)](_0x58f743(0x118))||(await getPersonalKnowledgeBaseItem(_0x29729e,_0x47f4a6[_0x58f743(0x13c)]))[_0x58f743(0x118)],_0x3f7754=await updatePersonalKnowledgeBaseItem(_0x29729e,_0x47f4a6[_0x58f743(0x13c)],{'title':_0x506eb1,'content':_0x28b587});return{'ok':!![],'data':summarizePersonalItem(_0x3f7754),'message':_0x58f743(0x124)+_0x3f7754['id']+'\x20('+_0x3f7754[_0x58f743(0x118)]+')'};},async 'dryRun'(_0x112c8a){const _0x2dea67=a27_0x39fcb7,_0x2424b1=_0x112c8a[_0x2dea67(0x12b)]('id'),_0x3f7945=readKnowledgeFile(_0x112c8a[_0x2dea67(0x129)](_0x2dea67(0x133))),_0x333a57=_0x112c8a[_0x2dea67(0x129)](_0x2dea67(0x118))||(await getPersonalKnowledgeBaseItem(_0x2424b1,_0x112c8a[_0x2dea67(0x13c)]))[_0x2dea67(0x118)];return dryRun('POST',_0x2dea67(0x11f)+_0x2424b1+_0x2dea67(0x128))['body']({'appCode':_0x112c8a[_0x2dea67(0x13c)],'title':_0x333a57,'content':_0x3f7945})[_0x2dea67(0x114)](_0x2dea67(0x142)+_0x2424b1)[_0x2dea67(0x11a)]();}},kbSearch={'service':'kb','command':a27_0x39fcb7(0x13d),'description':a27_0x39fcb7(0x12d),'risk':'read','flags':[QUERY_FLAG,TOPK_FLAG],async 'validate'(_0x923929){const _0x41683b=a27_0x39fcb7;if(!_0x923929[_0x41683b(0x129)](_0x41683b(0x144))[_0x41683b(0x10f)]())throw CliErrors[_0x41683b(0x131)]('Search\x20query\x20is\x20required.');readTopK(_0x923929);},async 'execute'(_0x31a7b9){const _0x5469b1=a27_0x39fcb7,_0x297be9=_0x31a7b9['str'](_0x5469b1(0x144))['trim'](),_0x30f4cd=readTopK(_0x31a7b9),_0x34c39c=await searchKnowledgeBase(_0x31a7b9[_0x5469b1(0x13c)],{'query':_0x297be9,'topK':_0x30f4cd});return{'ok':!![],'data':{'total':_0x34c39c[_0x5469b1(0x141)],'hits':_0x34c39c['map'](summarizeSearchHit)}};}};export const kbDefinitions=[kbList,kbDetail,kbCreate,kbUpdate,kbSearch];
@@ -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
+ const a28_0x3f3ced=a28_0x2076;(function(_0x221441,_0x2664e7){const _0x5cce29=a28_0x2076,_0x138d67=_0x221441();while(!![]){try{const _0x18901e=-parseInt(_0x5cce29(0xe3))/0x1+-parseInt(_0x5cce29(0xf5))/0x2*(-parseInt(_0x5cce29(0xe2))/0x3)+-parseInt(_0x5cce29(0xec))/0x4+parseInt(_0x5cce29(0xef))/0x5*(-parseInt(_0x5cce29(0xda))/0x6)+-parseInt(_0x5cce29(0xe9))/0x7*(parseInt(_0x5cce29(0xe7))/0x8)+parseInt(_0x5cce29(0xdd))/0x9+parseInt(_0x5cce29(0xd4))/0xa*(parseInt(_0x5cce29(0xf4))/0xb);if(_0x18901e===_0x2664e7)break;else _0x138d67['push'](_0x138d67['shift']());}catch(_0x33c2c8){_0x138d67['push'](_0x138d67['shift']());}}}(a28_0x3220,0x57b03));import{logger}from'../../utils/logger.js';import{CLI_DISPLAY_NAME}from'../../constant/cli.js';function a28_0x2076(_0x253439,_0x2f6a63){_0x253439=_0x253439-0xd0;const _0x322059=a28_0x3220();let _0x207662=_0x322059[_0x253439];return _0x207662;}function printLogs(_0xd4878b){const _0x1d6b9d=a28_0x2076;if(_0xd4878b[_0x1d6b9d(0xd6)]===0x0){console['log'](_0x1d6b9d(0xd2));return;}console[_0x1d6b9d(0xe6)]('*\x20'+CLI_DISPLAY_NAME+_0x1d6b9d(0xd3)),_0xd4878b[_0x1d6b9d(0xe4)]((_0x157b35,_0x1e5711)=>{const _0x2ba484=_0x1d6b9d,_0x286aa3=new Date(_0x157b35['timestamp'])[_0x2ba484(0xe8)](_0x2ba484(0xed)),_0x32887e=_0x157b35['level']===_0x2ba484(0xd9)?'√':_0x157b35[_0x2ba484(0xeb)]==='error'?'×':_0x157b35[_0x2ba484(0xeb)]===_0x2ba484(0xe1)?'!':'i';console[_0x2ba484(0xe6)](_0x1e5711+0x1+'.\x20'+_0x32887e+'\x20['+_0x157b35[_0x2ba484(0xf3)]+']\x20'+_0x157b35['message']),console[_0x2ba484(0xe6)](_0x2ba484(0xf6)+_0x286aa3),_0x157b35[_0x2ba484(0xee)]&&console['log'](_0x2ba484(0xf2)+_0x157b35[_0x2ba484(0xee)]+'ms'),_0x157b35[_0x2ba484(0xf1)]&&Object[_0x2ba484(0xdf)](_0x157b35[_0x2ba484(0xf1)])['length']>0x0&&console['log'](_0x2ba484(0xd0)+JSON[_0x2ba484(0xf0)](_0x157b35[_0x2ba484(0xf1)],null,0x2)),console['log']('');});}function a28_0x3220(){const _0x11b52e=['11mZtyhz','16ICmGEN','\x20\x20\x20Time:\x20','\x20\x20\x20Details:\x20','clear','*\x20No\x20logs\x20found','\x20logs:\x0a','7971890fsSHad','Clear\x20command\x20history\x20logs','length','clearLogs','write','success','300vcRqRV','show','logs','4865274awdvkT','read','keys','View\x20command\x20history\x20logs','warn','89382dYipmS','403891NqSlui','forEach','*\x20Logs\x20cleared','log','2695624serECK','toLocaleString','7ycMXPs','readLogs','level','465848sBHHmP','en-US','duration','35965OGEhOg','stringify','details','\x20\x20\x20Duration:\x20','command'];a28_0x3220=function(){return _0x11b52e;};return a28_0x3220();}export const logsDefinitions=[{'service':a28_0x3f3ced(0xdc),'command':a28_0x3f3ced(0xdb),'description':a28_0x3f3ced(0xe0),'risk':a28_0x3f3ced(0xde),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0xc28c67){const _0x549032=a28_0x3f3ced;return printLogs(logger[_0x549032(0xea)]()),{'ok':!![]};}},{'service':a28_0x3f3ced(0xdc),'command':a28_0x3f3ced(0xd1),'description':a28_0x3f3ced(0xd5),'risk':a28_0x3f3ced(0xd8),'requiresAuth':![],'requiresAppCode':![],'hasFormat':![],'flags':[],async 'execute'(_0x5851ef){const _0x1cf56d=a28_0x3f3ced;return logger[_0x1cf56d(0xd7)](),console['log'](_0x1cf56d(0xe5)),{'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
+ const a29_0x15d8e1=a29_0xd223;(function(_0x109c27,_0x1fd851){const _0x5b1885=a29_0xd223,_0x47b84b=_0x109c27();while(!![]){try{const _0x5d87f6=-parseInt(_0x5b1885(0x12c))/0x1+-parseInt(_0x5b1885(0x122))/0x2+-parseInt(_0x5b1885(0x146))/0x3*(-parseInt(_0x5b1885(0x11b))/0x4)+-parseInt(_0x5b1885(0x135))/0x5+-parseInt(_0x5b1885(0x107))/0x6+-parseInt(_0x5b1885(0x10d))/0x7*(-parseInt(_0x5b1885(0x137))/0x8)+parseInt(_0x5b1885(0x140))/0x9;if(_0x5d87f6===_0x1fd851)break;else _0x47b84b['push'](_0x47b84b['shift']());}catch(_0x2ca3e6){_0x47b84b['push'](_0x47b84b['shift']());}}}(a29_0x5f3d,0x2369d));import{existsSync,readFileSync,statSync}from'node:fs';function a29_0xd223(_0x4d33da,_0x494226){_0x4d33da=_0x4d33da-0x106;const _0x5f3d3a=a29_0x5f3d();let _0xd223f4=_0x5f3d3a[_0x4d33da];return _0xd223f4;}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_0x15d8e1(0x13e),'type':a29_0x15d8e1(0x10f),'description':a29_0x15d8e1(0x129)},FUNCTION_NAME_FLAG={'name':a29_0x15d8e1(0x124),'type':a29_0x15d8e1(0x10f),'required':!![],'description':a29_0x15d8e1(0x11c)},DESCRIPTION_FLAG={'name':a29_0x15d8e1(0x123),'type':a29_0x15d8e1(0x10f),'description':a29_0x15d8e1(0x133)},SOURCE_SESSION_FLAG={'name':a29_0x15d8e1(0x115),'type':a29_0x15d8e1(0x10f),'description':'Optional\x20source\x20RuntimeAgent\x20session\x20id'};function normalizeFunctionName(_0x58e7a1){const _0x594c09=a29_0x15d8e1,_0x3fcf60=String(_0x58e7a1||'')[_0x594c09(0x145)]();if(!_0x3fcf60||!FUNCTION_NAME_PATTERN[_0x594c09(0x148)](_0x3fcf60))throw CliErrors[_0x594c09(0x117)](_0x594c09(0x112));return _0x3fcf60;}function readScriptFile(_0x5ce0f2){const _0x124770=a29_0x15d8e1;if(!_0x5ce0f2)throw CliErrors[_0x124770(0x117)]('File\x20path\x20is\x20required.');if(!existsSync(_0x5ce0f2))throw CliErrors[_0x124770(0x117)](_0x124770(0x149)+_0x5ce0f2);if(!statSync(_0x5ce0f2)['isFile']())throw CliErrors[_0x124770(0x117)](_0x124770(0x130)+_0x5ce0f2);const _0x9ca8cd=readFileSync(_0x5ce0f2,'utf8');if(!_0x9ca8cd[_0x124770(0x145)]())throw CliErrors[_0x124770(0x117)](_0x124770(0x10b));return _0x9ca8cd;}function optionalTrimmed(_0x1cdeb1){const _0x25e4d2=a29_0x15d8e1,_0x12829b=String(_0x1cdeb1||'')[_0x25e4d2(0x145)]();return _0x12829b||undefined;}function summarizeBff(_0xe7f464){const _0x22ea67=a29_0x15d8e1;return{'id':_0xe7f464['id'],'appCode':_0xe7f464[_0x22ea67(0x138)],'functionName':_0xe7f464[_0x22ea67(0x121)],'description':_0xe7f464[_0x22ea67(0x123)],'scriptType':_0xe7f464[_0x22ea67(0x126)],'version':_0xe7f464[_0x22ea67(0x12b)],'gmtModified':_0xe7f464['gmtModified'],'updateTime':_0xe7f464['updateTime']};}function a29_0x5f3d(){const _0x1a0be7=['isArray','updateTime','high-risk-write','sourceSessionId','POST','file','Updated\x20personal\x20BFF\x20','2473155JNPiOQ','bool','Preview:\x20create\x20personal\x20BFF\x20','scriptContent','body','trim','9DzjzYD','--params\x20must\x20be\x20a\x20JSON\x20object.','test','File\x20not\x20found:\x20','createTime','922278decAed','/client/runtime-bff/personal/create','length','keys','Personal\x20BFF\x20script\x20file\x20is\x20blank.','createUserId','186788eIVuhY','/update','string','personal-bff\x20update\x20requires\x20at\x20least\x20one\x20of\x20--name,\x20--description,\x20--file,\x20or\x20--source-session-id.','exec','--name\x20must\x20be\x20a\x20valid\x20JavaScript\x20identifier,\x20for\x20example\x20loadOrders.','Preview:\x20update\x20personal\x20BFF\x20','read','source-session-id','detail','validation','/client/runtime-bff/personal/','config','Show\x20one\x20personal\x20BFF\x20by\x20id','356956sCyQJw','Personal\x20BFF\x20functionName,\x20for\x20example\x20loadOrders','personal-bff','Created\x20personal\x20BFF\x20','write','Personal\x20BFF\x20script\x20ID','functionName','129238hgvcHe','description','name','num','scriptType','map','gmtCreate','Path\x20to\x20a\x20local\x20UTF-8\x20JavaScript\x20or\x20TypeScript\x20file','str','version','222054HkibcJ','Execute\x20a\x20personal\x20BFF\x20by\x20id\x20with\x20optional\x20JSON\x20params','params','gmtModified','File\x20is\x20not\x20a\x20regular\x20file:\x20','build','flag','Personal\x20BFF\x20description','create','1119565WXhcNR','List\x20current\x20user\x27s\x20personal\x20BFF\x20scripts\x20for\x20the\x20current\x20app','80jiOOaP','appCode'];a29_0x5f3d=function(){return _0x1a0be7;};return a29_0x5f3d();}function detailBff(_0x2cb8d9){const _0x355a49=a29_0x15d8e1;return{'id':_0x2cb8d9['id'],'appCode':_0x2cb8d9[_0x355a49(0x138)],'functionName':_0x2cb8d9[_0x355a49(0x121)],'description':_0x2cb8d9[_0x355a49(0x123)],'scriptType':_0x2cb8d9[_0x355a49(0x126)],'scriptContent':_0x2cb8d9[_0x355a49(0x143)]??'','config':_0x2cb8d9[_0x355a49(0x119)],'version':_0x2cb8d9[_0x355a49(0x12b)],'createUserId':_0x2cb8d9[_0x355a49(0x10c)],'gmtCreate':_0x2cb8d9[_0x355a49(0x128)],'gmtModified':_0x2cb8d9[_0x355a49(0x12f)],'createTime':_0x2cb8d9[_0x355a49(0x106)],'updateTime':_0x2cb8d9[_0x355a49(0x13a)]};}function buildCreateInput(_0x3bf8b3){const _0x504ad6=a29_0x15d8e1;return{'functionName':normalizeFunctionName(_0x3bf8b3[_0x504ad6(0x12a)](_0x504ad6(0x124))),...optionalTrimmed(_0x3bf8b3[_0x504ad6(0x12a)](_0x504ad6(0x123)))?{'description':optionalTrimmed(_0x3bf8b3[_0x504ad6(0x12a)](_0x504ad6(0x123)))}:{},'scriptContent':readScriptFile(_0x3bf8b3[_0x504ad6(0x12a)](_0x504ad6(0x13e))),...optionalTrimmed(_0x3bf8b3['str']('source-session-id'))?{'sourceSessionId':optionalTrimmed(_0x3bf8b3['str']('source-session-id'))}:{}};}function buildUpdateInput(_0x23ffb9){const _0x239af0=a29_0x15d8e1,_0x587796={};optionalTrimmed(_0x23ffb9['str'](_0x239af0(0x124)))&&(_0x587796[_0x239af0(0x121)]=normalizeFunctionName(_0x23ffb9[_0x239af0(0x12a)](_0x239af0(0x124))));_0x23ffb9[_0x239af0(0x132)](_0x239af0(0x123))!==undefined&&(_0x587796['description']=_0x23ffb9[_0x239af0(0x12a)]('description'));optionalTrimmed(_0x23ffb9[_0x239af0(0x12a)]('file'))&&(_0x587796[_0x239af0(0x143)]=readScriptFile(_0x23ffb9[_0x239af0(0x12a)](_0x239af0(0x13e))));_0x23ffb9[_0x239af0(0x132)]('source-session-id')!==undefined&&(_0x587796[_0x239af0(0x13c)]=_0x23ffb9[_0x239af0(0x12a)](_0x239af0(0x115)));if(Object[_0x239af0(0x10a)](_0x587796)[_0x239af0(0x109)]===0x0)throw CliErrors[_0x239af0(0x117)](_0x239af0(0x110));return _0x587796;}function parseExecParams(_0xbb77b2){const _0x3675c9=a29_0x15d8e1,_0x1d0ed8=parseJsonParams(_0xbb77b2)??{};if(Array[_0x3675c9(0x139)](_0x1d0ed8))throw CliErrors['validation'](_0x3675c9(0x147));return _0x1d0ed8;}const personalBffList={'service':'personal-bff','command':'list','description':a29_0x15d8e1(0x136),'risk':a29_0x15d8e1(0x114),'flags':[VERBOSE_FLAG],async 'execute'(_0x52bce2){const _0x2cd510=a29_0x15d8e1,_0x504db0=await listPersonalBffs(_0x52bce2[_0x2cd510(0x138)]);return{'ok':!![],'data':{'total':_0x504db0['length'],'items':_0x52bce2[_0x2cd510(0x141)]('verbose')?_0x504db0:_0x504db0[_0x2cd510(0x127)](summarizeBff)}};}},personalBffDetail={'service':a29_0x15d8e1(0x11d),'command':a29_0x15d8e1(0x116),'description':a29_0x15d8e1(0x11a),'risk':a29_0x15d8e1(0x114),'flags':[{...ID_FLAG,'description':a29_0x15d8e1(0x120)}],async 'execute'(_0x2ec7cb){const _0x41c500=a29_0x15d8e1,_0x151387=await getPersonalBff(_0x2ec7cb['num']('id'),_0x2ec7cb[_0x41c500(0x138)]);return{'ok':!![],'data':detailBff(_0x151387)};}},personalBffCreate={'service':a29_0x15d8e1(0x11d),'command':a29_0x15d8e1(0x134),'description':'Create\x20a\x20personal\x20BFF\x20from\x20a\x20local\x20script\x20file','risk':a29_0x15d8e1(0x11f),'flags':[FUNCTION_NAME_FLAG,{...FILE_FLAG,'required':!![]},DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x66559e){const _0x3f442d=a29_0x15d8e1,_0x39f8ba=buildCreateInput(_0x66559e),_0x141e53=await createPersonalBff(_0x66559e[_0x3f442d(0x138)],_0x39f8ba);return{'ok':!![],'data':detailBff(_0x141e53),'message':_0x3f442d(0x11e)+_0x141e53['id']+(_0x141e53[_0x3f442d(0x121)]?'\x20('+_0x141e53[_0x3f442d(0x121)]+')':'')};},async 'dryRun'(_0x2e4e5c){const _0x5b38c9=a29_0x15d8e1,_0x56d3ba=buildCreateInput(_0x2e4e5c);return dryRun(_0x5b38c9(0x13d),_0x5b38c9(0x108))['body']({'appCode':_0x2e4e5c[_0x5b38c9(0x138)],..._0x56d3ba})[_0x5b38c9(0x123)](_0x5b38c9(0x142)+_0x56d3ba[_0x5b38c9(0x121)])[_0x5b38c9(0x131)]();}},personalBffUpdate={'service':a29_0x15d8e1(0x11d),'command':'update','description':'Update\x20a\x20personal\x20BFF\x20by\x20id','risk':'write','flags':[{...ID_FLAG,'description':a29_0x15d8e1(0x120)},{...FUNCTION_NAME_FLAG,'required':![]},FILE_FLAG,DESCRIPTION_FLAG,SOURCE_SESSION_FLAG],async 'execute'(_0x2ee96c){const _0x2a145b=a29_0x15d8e1,_0x54f7b4=_0x2ee96c[_0x2a145b(0x125)]('id'),_0x20ef76=buildUpdateInput(_0x2ee96c),_0x3ffa0e=await updatePersonalBff(_0x54f7b4,_0x2ee96c[_0x2a145b(0x138)],_0x20ef76);return{'ok':!![],'data':detailBff(_0x3ffa0e),'message':_0x2a145b(0x13f)+_0x3ffa0e['id']+(_0x3ffa0e[_0x2a145b(0x121)]?'\x20('+_0x3ffa0e[_0x2a145b(0x121)]+')':'')};},async 'dryRun'(_0x59f3c8){const _0x3749aa=a29_0x15d8e1,_0x33c022=_0x59f3c8[_0x3749aa(0x125)]('id'),_0x80da31=buildUpdateInput(_0x59f3c8);return dryRun(_0x3749aa(0x13d),_0x3749aa(0x118)+_0x33c022+_0x3749aa(0x10e))[_0x3749aa(0x144)]({'appCode':_0x59f3c8['appCode'],..._0x80da31})[_0x3749aa(0x123)](_0x3749aa(0x113)+_0x33c022)['build']();}},personalBffExec={'service':a29_0x15d8e1(0x11d),'command':a29_0x15d8e1(0x111),'description':a29_0x15d8e1(0x12d),'risk':a29_0x15d8e1(0x13b),'flags':[{...ID_FLAG,'description':a29_0x15d8e1(0x120)},{...PARAMS_FLAG,'description':'JSON\x20object\x20passed\x20to\x20the\x20personal\x20BFF\x20execution'}],async 'validate'(_0xe39f4){parseExecParams(_0xe39f4['str']('params'));},async 'execute'(_0x2dbd90){const _0xd6cc0=a29_0x15d8e1,_0x4bb0d6=_0x2dbd90[_0xd6cc0(0x125)]('id'),_0xb565e9=parseExecParams(_0x2dbd90[_0xd6cc0(0x12a)](_0xd6cc0(0x12e))),_0x1372db=await executePersonalBff(_0x4bb0d6,_0x2dbd90['appCode'],_0xb565e9);return{'ok':!![],'data':{'result':_0x1372db},'message':'Executed\x20personal\x20BFF\x20'+_0x4bb0d6};}};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_0xe0d120=a30_0x5c77;(function(_0x724d9c,_0x4094ca){const _0x19d980=a30_0x5c77,_0x46cceb=_0x724d9c();while(!![]){try{const _0x5b98e8=-parseInt(_0x19d980(0x86))/0x1+parseInt(_0x19d980(0x8d))/0x2+parseInt(_0x19d980(0x99))/0x3*(-parseInt(_0x19d980(0x92))/0x4)+-parseInt(_0x19d980(0x89))/0x5+-parseInt(_0x19d980(0x79))/0x6*(parseInt(_0x19d980(0x7a))/0x7)+-parseInt(_0x19d980(0x8c))/0x8*(-parseInt(_0x19d980(0x93))/0x9)+parseInt(_0x19d980(0x84))/0xa;if(_0x5b98e8===_0x4094ca)break;else _0x46cceb['push'](_0x46cceb['shift']());}catch(_0x14b634){_0x46cceb['push'](_0x46cceb['shift']());}}}(a30_0x11cf,0xb3901));import{authDefinitions}from'../commands/auth/index.js';import{logsDefinitions}from'../commands/logs/index.js';import{skillDefinitions}from'../commands/skill/index.js';import{cliSkillDefinitions}from'../commands/cli-skill/index.js';import{serviceDefinitions}from'../commands/service/index.js';import{updateDefinition}from'../commands/update.js';import{doctorDefinition}from'../commands/doctor.js';import{schemaDefinition}from'../commands/schema.js';import{appDefinitions}from'../commands/app/definitions.js';import{workspaceDefinitions}from'../commands/workspace/index.js';import{configDefinitions}from'../commands/config/definitions.js';import{bffDefinitions}from'../commands/bff/index.js';import{sqlDefinitions}from'../commands/sql/index.js';function a30_0x11cf(){const _0x2a55a2=['push','has','Logs','Service\x20Tree','Diagnostics','11013260WXOnix','Datasets','133715dFIxGN','command','Configuration','4625065LetYEx','Workspace','Skills','1184KzJZps','1390754pilgJc','get','API\x20Documentation','install','Artifacts','2734652fWJWXi','78777VXyIkY','list','service','isSingleCommand','Knowledge\x20Base','SQL\x20Queries','3vbSSDf','Self\x20Update','Personal\x20BFF','read','BFF\x20Scripts','set','\x20\x20[high-risk-write]','show','login','6iPigWA','4299869lPvlSH','map','risk','Instant\x20API','Schema'];a30_0x11cf=function(){return _0x2a55a2;};return a30_0x11cf();}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(_0x2b33c2){const _0x4f275b=a30_0x5c77;for(const _0x1a731a of _0x2b33c2){definitions[_0x4f275b(0x9e)](_0x1a731a[_0x4f275b(0x95)]+':'+_0x1a731a['command'],_0x1a731a);let _0x4c9552=serviceGroups[_0x4f275b(0x8e)](_0x1a731a[_0x4f275b(0x95)]);!_0x4c9552&&(_0x4c9552=[],serviceGroups['set'](_0x1a731a['service'],_0x4c9552)),_0x4c9552['push'](_0x1a731a);}}function registerService(_0x388aa6,_0x21d813,_0x496a5f){const _0x364323=a30_0x5c77;registerDefinitions(_0x21d813);const _0x58ace8=_0x5cf182=>_0x5cf182===_0x364323(0x9c)?'':_0x5cf182==='write'?'\x20\x20[write]':_0x364323(0x9f),_0x686af9={'service':_0x21d813[0x0][_0x364323(0x95)],'label':_0x388aa6,'commands':_0x21d813[_0x364323(0x7b)](_0x1d7f9c=>({'command':_0x1d7f9c[_0x364323(0x87)],'description':_0x1d7f9c['description'],'tag':_0x58ace8(_0x1d7f9c[_0x364323(0x7c)])})),'defaultCommand':_0x496a5f?.['defaultCommand']??(_0x496a5f?.[_0x364323(0x96)]?_0x21d813[0x0][_0x364323(0x87)]:undefined),'isSingleCommand':_0x496a5f?.[_0x364323(0x96)]};serviceRegistry[_0x364323(0x7f)](_0x686af9),serviceByName['set'](_0x686af9[_0x364323(0x95)],_0x686af9);}registerService('Authentication',authDefinitions,{'defaultCommand':a30_0xe0d120(0x78)}),registerService(a30_0xe0d120(0x8f),apiDocDefinitions),registerService(a30_0xe0d120(0x85),datasetDefinitions),registerService(a30_0xe0d120(0x7d),dataDefinitions),registerService(a30_0xe0d120(0x98),sqlDefinitions),registerService(a30_0xe0d120(0x9d),bffDefinitions),registerService(a30_0xe0d120(0x9b),personalBffDefinitions),registerService(a30_0xe0d120(0x91),artifactDefinitions),registerService(a30_0xe0d120(0x97),kbDefinitions),registerService('App\x20Management',appDefinitions,{'defaultCommand':a30_0xe0d120(0x94)}),registerService(a30_0xe0d120(0x8a),workspaceDefinitions),registerService(a30_0xe0d120(0x88),configDefinitions,{'defaultCommand':'list'}),registerService(a30_0xe0d120(0x82),serviceDefinitions,{'defaultCommand':'list'}),registerService(a30_0xe0d120(0x8b),skillDefinitions,{'defaultCommand':a30_0xe0d120(0x90)}),registerService('CLI\x20Built-in\x20Skill',cliSkillDefinitions,{'defaultCommand':a30_0xe0d120(0x90)}),registerService(a30_0xe0d120(0x9a),[updateDefinition],{'defaultCommand':'run','isSingleCommand':!![]}),registerService(a30_0xe0d120(0x83),[doctorDefinition],{'isSingleCommand':!![]}),registerService(a30_0xe0d120(0x7e),[schemaDefinition],{'isSingleCommand':!![]}),registerService(a30_0xe0d120(0x81),logsDefinitions,{'defaultCommand':a30_0xe0d120(0x77)});function a30_0x5c77(_0x193fc8,_0x1906e5){_0x193fc8=_0x193fc8-0x77;const _0x11cfd5=a30_0x11cf();let _0x5c77a7=_0x11cfd5[_0x193fc8];return _0x5c77a7;}export function findDefinition(_0x30321e,_0x277560){const _0x35f208=a30_0xe0d120;return definitions[_0x35f208(0x8e)](_0x30321e+':'+_0x277560);}export function isKnownService(_0x1f2869){const _0x794d85=a30_0xe0d120;return serviceByName[_0x794d85(0x80)](_0x1f2869);}export function getServiceEntry(_0x5749bb){const _0x108e26=a30_0xe0d120;return serviceByName[_0x108e26(0x8e)](_0x5749bb);}export function getAllDefinitions(){return Array['from'](definitions['values']());}
@@ -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_0x239da9=a31_0x5a8a;function a31_0x5a8a(_0x190eaa,_0x2f5f60){_0x190eaa=_0x190eaa-0x130;const _0x12a4b0=a31_0x12a4();let _0x5a8a4c=_0x12a4b0[_0x190eaa];return _0x5a8a4c;}(function(_0x34a718,_0x406e5f){const _0x4a2244=a31_0x5a8a,_0x2def4d=_0x34a718();while(!![]){try{const _0x147a9a=-parseInt(_0x4a2244(0x139))/0x1*(-parseInt(_0x4a2244(0x131))/0x2)+-parseInt(_0x4a2244(0x13b))/0x3*(-parseInt(_0x4a2244(0x133))/0x4)+parseInt(_0x4a2244(0x136))/0x5*(-parseInt(_0x4a2244(0x13a))/0x6)+parseInt(_0x4a2244(0x138))/0x7*(parseInt(_0x4a2244(0x137))/0x8)+parseInt(_0x4a2244(0x130))/0x9*(-parseInt(_0x4a2244(0x134))/0xa)+-parseInt(_0x4a2244(0x13d))/0xb+parseInt(_0x4a2244(0x13c))/0xc;if(_0x147a9a===_0x406e5f)break;else _0x2def4d['push'](_0x2def4d['shift']());}catch(_0x1d73e6){_0x2def4d['push'](_0x2def4d['shift']());}}}(a31_0x12a4,0x894d0));import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0x17656f){const _0x55ef39=await buildSchemaPayload();return{'ok':!![],'data':_0x55ef39};}function a31_0x12a4(){const _0xc1125d=['schema','5vLyQRH','8SqPexc','224049irsLxY','139598XsNOYO','5378898xTNsCY','64689pNiRuh','29582496mjnMEX','12031701rOhaRS','Export\x20machine-readable\x20command\x20schema\x20(JSON)','135MTiaiO','6WbxcXo','read','132bWAEIY','716620tVQwvG'];a31_0x12a4=function(){return _0xc1125d;};return a31_0x12a4();}export const schemaDefinition={'service':a31_0x239da9(0x135),'command':'export','description':a31_0x239da9(0x13e),'risk':a31_0x239da9(0x132),'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(_0x1b8b95,_0x1c8010){const _0x7a01a8=a32_0x4f5b,_0x388be2=_0x1b8b95();while(!![]){try{const _0x2e655b=parseInt(_0x7a01a8(0x9e))/0x1*(-parseInt(_0x7a01a8(0xa6))/0x2)+-parseInt(_0x7a01a8(0x98))/0x3*(parseInt(_0x7a01a8(0xb2))/0x4)+-parseInt(_0x7a01a8(0xa5))/0x5+-parseInt(_0x7a01a8(0x7a))/0x6*(parseInt(_0x7a01a8(0xaa))/0x7)+-parseInt(_0x7a01a8(0x97))/0x8+-parseInt(_0x7a01a8(0xab))/0x9*(parseInt(_0x7a01a8(0xc1))/0xa)+parseInt(_0x7a01a8(0x94))/0xb*(parseInt(_0x7a01a8(0xaf))/0xc);if(_0x2e655b===_0x1c8010)break;else _0x388be2['push'](_0x388be2['shift']());}catch(_0x3afa6b){_0x388be2['push'](_0x388be2['shift']());}}}(a32_0x27d7,0x3dd16));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';function a32_0x4f5b(_0x3060bd,_0x508936){_0x3060bd=_0x3060bd-0x6e;const _0x27d7b1=a32_0x27d7();let _0x4f5b82=_0x27d7b1[_0x3060bd];return _0x4f5b82;}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(_0x475f48,_0xbe445a){const _0x242f26=a32_0x4f5b,_0x2bc202=listLocalServiceTrees();let _0x47f784;for(const _0xfe2dea of _0x2bc202){const _0x5c4dde=matchServiceTreeCommand(_0xfe2dea,_0x475f48);if(!_0x5c4dde)continue;(!_0x47f784||_0x5c4dde[_0x242f26(0x71)]['fullPath'][_0x242f26(0x92)]>_0x47f784[_0x242f26(0x71)][_0x242f26(0x78)][_0x242f26(0x92)])&&(_0x47f784={'tree':_0xfe2dea,'command':_0x5c4dde['command'],'remainingArgs':_0x5c4dde[_0x242f26(0xc4)]});}if(!_0x47f784)return undefined;const _0x47559b={..._0xbe445a};return applyAppBinding(_0x47f784[_0x242f26(0x99)],_0x47f784[_0x242f26(0x71)],_0x47559b),{'definition':buildDynamicCommandDefinition(_0x47f784[_0x242f26(0x99)],_0x47f784[_0x242f26(0x71)]),'args':_0x47f784['remainingArgs'],'flags':_0x47559b,'tree':_0x47f784[_0x242f26(0x99)],'command':_0x47f784['command']};}export function generateDynamicServiceHelp(_0x474f71){const _0x57c658=a32_0x4f5b,_0x520a9b=listLocalServiceTrees()[_0x57c658(0xbe)](_0x3816d5=>_0x3816d5[_0x57c658(0x80)][_0x57c658(0x93)]===_0x474f71);if(!_0x520a9b)return undefined;const _0x3b6e34=[CLI_BIN_NAME+'\x20'+_0x474f71+'\x20<command>\x20[flags]','',_0x520a9b[_0x57c658(0x80)][_0x57c658(0xb8)]||_0x474f71,_0x520a9b['service'][_0x57c658(0x96)]?'\x20\x20'+_0x520a9b['service'][_0x57c658(0x96)]:'','',_0x57c658(0x82),..._0x520a9b[_0x57c658(0x8e)][_0x57c658(0xa1)](_0x348106=>{const _0x220f76=_0x57c658,_0x3537af=_0x348106[_0x220f76(0x78)][_0x220f76(0xb5)](0x1)['join']('\x20'),_0x18cac4=_0x348106[_0x220f76(0x7f)]==='read'?'':'\x20['+_0x348106[_0x220f76(0x7f)]+']';return'\x20\x20'+_0x3537af['padEnd'](0x18)+'\x20'+(_0x348106[_0x220f76(0x96)]||'')+_0x18cac4;}),'',_0x57c658(0x9a)+CLI_BIN_NAME+_0x57c658(0x9c)+_0x474f71+_0x57c658(0x8a)][_0x57c658(0x86)](Boolean);return _0x3b6e34[_0x57c658(0x72)]('\x0a');}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0xedb8cf=>{const _0x1b8fd1=a32_0x4f5b,_0x51cc9f=_0xedb8cf[_0x1b8fd1(0x8f)];return{'service':_0x51cc9f['service'][_0x1b8fd1(0x93)],'label':_0x51cc9f['service'][_0x1b8fd1(0xb8)]||_0x51cc9f[_0x1b8fd1(0x80)]['code'],'commands':_0x51cc9f[_0x1b8fd1(0x8e)][_0x1b8fd1(0xa1)](_0x24af34=>({'command':dynamicCommandName(_0x24af34),'description':_0x24af34[_0x1b8fd1(0x96)]||_0x1b8fd1(0xa0)+_0x24af34[_0x1b8fd1(0xd0)],'tag':riskTag(_0x24af34[_0x1b8fd1(0x7f)])}))};});}export function getDynamicServiceEntry(_0x20e72c){const _0xe8df4a=a32_0x4f5b;return listDynamicServiceEntries()['find'](_0x559dfc=>_0x559dfc[_0xe8df4a(0x80)]===_0x20e72c);}export function listDynamicServiceDefinitions(_0x811ad1){const _0x53d695=a32_0x4f5b;return listLocalServiceTrees()[_0x53d695(0x86)](_0x313fb6=>!_0x811ad1||_0x313fb6[_0x53d695(0x80)]['code']===_0x811ad1)[_0x53d695(0x7e)](_0x4a2574=>_0x4a2574['commands'][_0x53d695(0xa1)](_0x170afa=>buildDynamicCommandDefinition(_0x4a2574,_0x170afa)));}function a32_0x27d7(){const _0x3bb7d3=['\x20service\x20detail\x20--service\x20','type','864LjJtiJ','\x20\x20\x20\x20command:\x20','Run\x20service\x20command\x20','map','SERVICE_TREE','\x20\x20\x20\x20','sql','1025730IrmgoB','512XttMDf','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','now','scriptName','2343565VHJDJW','18mJXouT','\x20requires\x20target.sqlCode.','string','required','36gQYYRE','employeeId','operator','4DMUadS','Unsupported\x20service\x20target\x20kind:\x20','bffCode','slice','\x20\x20[','json','name','target','fromEntries','bffId','args','const','find','datasetCode','cliName','1750330eNXtGR','bff','enum','remainingArgs','appBindings','datatable','startsWith','env','sqlCode','read','envName','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','\x20\x20\x20\x20kind:\x20\x20\x20\x20','Preview\x20dynamic\x20service\x20command:\x20','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','cliPath','appcode','Service\x20command\x20','\x20\x20\x20\x20datasetCode:\x20','userName','validation','command','join','tableName','\x20\x20\x20\x20sqlCode:\x20','app','nickName','kind','fullPath','\x20\x20\x20\x20scriptName:\x20','6NXXeuf','params','entries','appCode','flatMap','risk','service','\x20\x20\x20\x20datatable:\x20','Commands:','boolean','\x20requires\x20target.scriptName.','push','filter','rawFlags','nickname','mapTo','`\x20to\x20inspect\x20the\x20manifest.','tenantCode','\x22\x20in\x20service\x20command\x20','data','commands','normalizedManifest','Unknown\x20appRef\x20\x22','number','length','code','7720031VGvyVo','source','description','2280520CJTVrx','1368003OmTVjD','tree','Use\x20`','appRef'];a32_0x27d7=function(){return _0x3bb7d3;};return a32_0x27d7();}export function getDynamicServiceDefinitions(_0x5e603e){const _0x139e06=a32_0x4f5b,_0x2d8675=listDynamicServiceDefinitions(_0x5e603e);return _0x2d8675[_0x139e06(0x92)]>0x0?_0x2d8675:undefined;}export function findDynamicServiceDefinition(_0xa983e9,_0x282111){const _0x512fd0=a32_0x4f5b;return listDynamicServiceDefinitions(_0xa983e9)['find'](_0x100820=>_0x100820[_0x512fd0(0x71)]===_0x282111);}export function buildDynamicCommandDefinition(_0x56297c,_0x5e1250){const _0x669a24=a32_0x4f5b;return{'service':_0x56297c[_0x669a24(0x80)]['code'],'command':dynamicCommandName(_0x5e1250),'description':_0x5e1250[_0x669a24(0x96)]||_0x669a24(0xa0)+_0x5e1250[_0x669a24(0xd0)],'risk':_0x5e1250[_0x669a24(0x7f)],'requiresAuth':!![],'requiresAppCode':!![],'args':_0x5e1250[_0x669a24(0xbc)][_0x669a24(0xa1)](_0x306ddd=>({'name':_0x306ddd[_0x669a24(0xb8)],'description':_0x306ddd[_0x669a24(0x96)]||_0x306ddd['name'],'required':_0x306ddd[_0x669a24(0xae)]})),'flags':_0x5e1250['flags']['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x5e1250),async 'dryRun'(_0x2d94d6){const _0x526dcb=_0x669a24,_0x5c9f31=await compilePlan(_0x5e1250,_0x2d94d6);return{'method':_0x526dcb(0xa2),'url':_0x5e1250[_0x526dcb(0xd0)],'body':{'target':targetPreview(_0x5c9f31),'params':_0x5c9f31['params']},'description':_0x526dcb(0xce)+_0x5e1250[_0x526dcb(0xd0)]};},async 'execute'(_0xd72996){const _0x1aa40c=_0x669a24,_0x64280a=await compilePlan(_0x5e1250,_0xd72996),_0x2b49f1=Date[_0x1aa40c(0xa8)](),_0x5d0145=await executePlan(_0x64280a,_0x5e1250,_0xd72996),_0x2777a2=Date[_0x1aa40c(0xa8)]()-_0x2b49f1;return{'ok':!![],'data':{'service':_0x56297c[_0x1aa40c(0x80)],'command':_0x5e1250[_0x1aa40c(0xd0)],'target':targetPreview(_0x64280a),'result':_0x5d0145,'elapsed':_0x2777a2},'message':_0x1aa40c(0xd2)+_0x5e1250['cliPath']+'\x20completed\x20in\x20'+_0x2777a2+'ms'};}};}function dynamicCommandName(_0xf82648){const _0x503e2f=a32_0x4f5b;return _0xf82648['fullPath'][_0x503e2f(0xb5)](0x1)['join']('\x20');}function riskTag(_0x4bc3e9){const _0xc086ec=a32_0x4f5b;return _0x4bc3e9===_0xc086ec(0xca)?'':_0xc086ec(0xb6)+_0x4bc3e9+']';}function flagToCommandFlag(_0x46150b){const _0x566133=a32_0x4f5b;return{'name':_0x46150b[_0x566133(0xc0)],'type':_0x46150b[_0x566133(0x9d)]===_0x566133(0xb7)?_0x566133(0xad):_0x46150b[_0x566133(0x9d)],'description':_0x46150b['description']||_0x46150b[_0x566133(0xb8)],'required':_0x46150b['required'],'default':isPrimitiveFlagDefault(_0x46150b['default'])?_0x46150b['default']:undefined,'enum':_0x46150b[_0x566133(0xc3)]};}async function compilePlan(_0x245b61,_0x41ef5c){const _0x5cfdef=a32_0x4f5b;return compileServiceTreeCommand(_0x245b61,{'flags':_0x41ef5c[_0x5cfdef(0x87)],'args':_0x41ef5c[_0x5cfdef(0xbc)],'context':await buildServiceContext(_0x245b61,_0x41ef5c)});}async function buildServiceContext(_0x5712ae,_0x49e428){const _0x3cabbf=a32_0x4f5b,_0x1d2658={'appCode':_0x49e428[_0x3cabbf(0x7d)],'env':_0x49e428['envName'],'envName':_0x49e428[_0x3cabbf(0xcb)]};if(!usesRuntimeContext(_0x5712ae))return _0x1d2658;const _0x3806e9=await getLoginUserInfo(),_0x523a50=pickFirst(_0x3806e9['userId'],_0x3806e9['id']);return{..._0x1d2658,'user':_0x3806e9,'userId':_0x523a50,'id':_0x3806e9['id'],'username':pickFirst(_0x3806e9['username'],_0x3806e9[_0x3cabbf(0x6f)],_0x3806e9['loginName']),'userName':_0x3806e9[_0x3cabbf(0x6f)],'nickname':pickFirst(_0x3806e9[_0x3cabbf(0x88)],_0x3806e9[_0x3cabbf(0x76)]),'nickName':_0x3806e9[_0x3cabbf(0x76)],'tenantCode':_0x3806e9[_0x3cabbf(0x8b)],'employeeId':_0x3806e9[_0x3cabbf(0xb0)]};}function usesRuntimeContext(_0x3d2ec9){const _0x48c995=a32_0x4f5b;return _0x3d2ec9[_0x48c995(0x89)]['some'](_0x3c82b3=>typeof _0x3c82b3[_0x48c995(0x95)]===_0x48c995(0xad)&&(_0x3c82b3[_0x48c995(0x95)][_0x48c995(0xc7)]('context.')||_0x3c82b3[_0x48c995(0x95)]['startsWith']('ctx.')));}function pickFirst(..._0x27d7f4){const _0x2a7fbf=a32_0x4f5b;return _0x27d7f4[_0x2a7fbf(0xbe)](_0x15ed22=>_0x15ed22!==undefined&&_0x15ed22!==null);}async function executePlan(_0xf25b74,_0x387e1a,_0x400e75){const _0x586a84=a32_0x4f5b;if(_0xf25b74['kind']===_0x586a84(0x8d)){const _0x2768ea=await resolveDatasetCode(_0xf25b74,_0x387e1a,_0x400e75);return executeData(_0x2768ea,_0xf25b74['command'],_0xf25b74['params']);}if(_0xf25b74['kind']===_0x586a84(0xa4)){if(!_0xf25b74[_0x586a84(0xc9)])throw CliErrors[_0x586a84(0x70)]('Service\x20command\x20'+_0x387e1a['cliPath']+_0x586a84(0xac));return executeSdkSql(_0xf25b74[_0x586a84(0xc9)],normalizeScalarParams(_0xf25b74[_0x586a84(0x7b)]));}if(_0xf25b74[_0x586a84(0x77)]===_0x586a84(0xc2)){const _0x1ff236=_0xf25b74['scriptName']||_0xf25b74['bffCode']||(_0xf25b74[_0x586a84(0xbb)]==null?'':String(_0xf25b74[_0x586a84(0xbb)]));if(!_0x1ff236)throw CliErrors[_0x586a84(0x70)]('Service\x20command\x20'+_0x387e1a[_0x586a84(0xd0)]+_0x586a84(0x84));return executeSdkBff(_0x1ff236,_0xf25b74[_0x586a84(0x7b)]);}throw CliErrors['validation'](_0x586a84(0xb3)+_0xf25b74[_0x586a84(0x77)]);}async function resolveDatasetCode(_0x18b022,_0x4fcb82,_0x3927c7){const _0x4eebe2=a32_0x4f5b;if(_0x18b022[_0x4eebe2(0xbf)])return _0x18b022[_0x4eebe2(0xbf)];if(!_0x18b022['datatable'])throw CliErrors[_0x4eebe2(0x70)]('Service\x20command\x20'+_0x4fcb82[_0x4eebe2(0xd0)]+_0x4eebe2(0xcf));const _0x3d58ef=await listDatasets(_0x3927c7[_0x4eebe2(0x7d)]),_0x229140=_0x3d58ef[_0x4eebe2(0xbe)](_0x19c4c9=>_0x19c4c9['dbtableConfig']?.[_0x4eebe2(0x73)]===_0x18b022['datatable']);if(!_0x229140?.[_0x4eebe2(0x93)])throw CliErrors['validation']('Cannot\x20resolve\x20datatable\x20\x22'+_0x18b022['datatable']+_0x4eebe2(0xa7)+_0x3927c7[_0x4eebe2(0x7d)]+'.',_0x4eebe2(0xcc));return _0x229140[_0x4eebe2(0x93)];}function applyAppBinding(_0x2792a6,_0x25f935,_0x1570f6){const _0x40ed88=a32_0x4f5b,_0x380717=_0x25f935['target'][_0x40ed88(0x9b)];if(!_0x380717)return;const _0x5cfa3c=_0x2792a6[_0x40ed88(0xc5)][_0x380717];if(!_0x5cfa3c)throw CliErrors['validation'](_0x40ed88(0x90)+_0x380717+_0x40ed88(0x8c)+_0x25f935[_0x40ed88(0xd0)]+'.','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.');const _0x105d63=_0x5cfa3c[_0x40ed88(0xd1)]||_0x5cfa3c[_0x40ed88(0x7d)];_0x105d63&&!hasText(_0x1570f6[_0x40ed88(0xd1)])&&(_0x1570f6[_0x40ed88(0xd1)]=_0x105d63),_0x5cfa3c[_0x40ed88(0x75)]&&!hasText(_0x1570f6[_0x40ed88(0x75)])&&!hasText(_0x1570f6['appcode'])&&(_0x1570f6['app']=_0x5cfa3c[_0x40ed88(0x75)]),_0x5cfa3c[_0x40ed88(0xc8)]&&!hasText(_0x1570f6['env'])&&(_0x1570f6[_0x40ed88(0xc8)]=_0x5cfa3c[_0x40ed88(0xc8)]);}function renderDynamicCommandHelp(_0x281f57){const _0x48bccb=a32_0x4f5b,_0x3864f3=['\x20\x20SERVICE\x20TREE\x20TARGET',_0x48bccb(0xcd)+_0x281f57[_0x48bccb(0xb9)][_0x48bccb(0x77)],_0x48bccb(0x9f)+_0x281f57[_0x48bccb(0xb9)][_0x48bccb(0x71)]];if(_0x281f57['target'][_0x48bccb(0xbf)])_0x3864f3[_0x48bccb(0x85)](_0x48bccb(0x6e)+_0x281f57[_0x48bccb(0xb9)][_0x48bccb(0xbf)]);if(_0x281f57[_0x48bccb(0xb9)]['datatable'])_0x3864f3['push'](_0x48bccb(0x81)+_0x281f57[_0x48bccb(0xb9)][_0x48bccb(0xc6)]);if(_0x281f57[_0x48bccb(0xb9)][_0x48bccb(0xc9)])_0x3864f3['push'](_0x48bccb(0x74)+_0x281f57[_0x48bccb(0xb9)]['sqlCode']);if(_0x281f57[_0x48bccb(0xb9)][_0x48bccb(0xa9)])_0x3864f3['push'](_0x48bccb(0x79)+_0x281f57[_0x48bccb(0xb9)][_0x48bccb(0xa9)]);if(_0x281f57['mapTo'][_0x48bccb(0x92)]>0x0){_0x3864f3['push']('','\x20\x20MAP\x20TO');for(const _0x670cce of _0x281f57[_0x48bccb(0x89)]){_0x3864f3[_0x48bccb(0x85)](_0x48bccb(0xa3)+(_0x670cce['source']||_0x48bccb(0xbd))+'\x20->\x20'+_0x670cce['target']+(_0x670cce[_0x48bccb(0xb1)]?'.'+_0x670cce['operator']:''));}}return _0x3864f3[_0x48bccb(0x72)]('\x0a');}function targetPreview(_0x4d36c7){const _0x242d32=a32_0x4f5b;return{'kind':_0x4d36c7[_0x242d32(0x77)],'command':_0x4d36c7[_0x242d32(0x71)],'appRef':_0x4d36c7[_0x242d32(0x9b)],'datasetCode':_0x4d36c7[_0x242d32(0xbf)],'datatable':_0x4d36c7[_0x242d32(0xc6)],'sqlCode':_0x4d36c7[_0x242d32(0xc9)],'bffCode':_0x4d36c7[_0x242d32(0xb4)],'bffId':_0x4d36c7[_0x242d32(0xbb)],'scriptName':_0x4d36c7[_0x242d32(0xa9)]};}function normalizeScalarParams(_0x4391ec){const _0x1cb4dc=a32_0x4f5b;return Object[_0x1cb4dc(0xba)](Object[_0x1cb4dc(0x7c)](_0x4391ec)[_0x1cb4dc(0x86)](([,_0x544141])=>typeof _0x544141===_0x1cb4dc(0xad)||typeof _0x544141===_0x1cb4dc(0x91)));}function hasText(_0x141672){const _0xaa1c4f=a32_0x4f5b;return typeof _0x141672===_0xaa1c4f(0xad)&&_0x141672['trim']()[_0xaa1c4f(0x92)]>0x0;}function isPrimitiveFlagDefault(_0x5702bd){const _0x4096b8=a32_0x4f5b;return _0x5702bd===undefined||typeof _0x5702bd==='string'||typeof _0x5702bd===_0x4096b8(0x91)||typeof _0x5702bd===_0x4096b8(0x83);}
@@ -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_0x394f7c=a33_0x330a;(function(_0x119564,_0x1a5f2d){const _0x29547e=a33_0x330a,_0xe40073=_0x119564();while(!![]){try{const _0xe68e3c=-parseInt(_0x29547e(0xd1))/0x1+parseInt(_0x29547e(0xb5))/0x2+-parseInt(_0x29547e(0xeb))/0x3*(-parseInt(_0x29547e(0xe4))/0x4)+parseInt(_0x29547e(0xe0))/0x5*(parseInt(_0x29547e(0xbb))/0x6)+-parseInt(_0x29547e(0xb7))/0x7+-parseInt(_0x29547e(0xf7))/0x8*(parseInt(_0x29547e(0xc7))/0x9)+-parseInt(_0x29547e(0xf3))/0xa*(-parseInt(_0x29547e(0xc8))/0xb);if(_0xe68e3c===_0x1a5f2d)break;else _0xe40073['push'](_0xe40073['shift']());}catch(_0x2e8d88){_0xe40073['push'](_0xe40073['shift']());}}}(a33_0x2e66,0x240ba));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';const FILE_FLAG={'name':a33_0x394f7c(0xbc),'type':a33_0x394f7c(0xd2),'required':!![],'description':a33_0x394f7c(0xfc)},SERVICE_FLAG={'name':a33_0x394f7c(0xd4),'type':'string','required':!![],'description':a33_0x394f7c(0xc0),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':a33_0x394f7c(0xcb)}};function summarizeService(_0x4ec33d){const _0x5343c7=a33_0x394f7c;return{'serviceCode':_0x4ec33d[_0x5343c7(0xf0)],'name':_0x4ec33d[_0x5343c7(0xdb)][_0x5343c7(0xd4)][_0x5343c7(0xcd)],'version':_0x4ec33d[_0x5343c7(0xda)],'importedAt':_0x4ec33d[_0x5343c7(0xb8)],'source':_0x4ec33d[_0x5343c7(0xd8)],'commandCount':_0x4ec33d['normalizedManifest'][_0x5343c7(0xdc)][_0x5343c7(0xb4)],'commands':_0x4ec33d[_0x5343c7(0xdb)][_0x5343c7(0xdc)][_0x5343c7(0xc6)](_0x4419e3=>({'path':_0x4419e3[_0x5343c7(0xc3)],'description':_0x4419e3[_0x5343c7(0xe5)],'risk':_0x4419e3[_0x5343c7(0xc4)],'target':_0x4419e3[_0x5343c7(0xbd)],'flags':_0x4419e3[_0x5343c7(0xe3)]['map'](_0x2de466=>({'name':_0x2de466[_0x5343c7(0xcd)],'cliName':_0x2de466[_0x5343c7(0xb9)],'type':_0x2de466[_0x5343c7(0xfb)],'required':_0x2de466[_0x5343c7(0xd9)]===!![]}))}))};}function summarizeLoadedManifest(_0x7ebc71){const _0x2df32b=a33_0x394f7c;return{'service':_0x7ebc71['normalizedManifest']?.[_0x2df32b(0xd4)],'version':_0x7ebc71[_0x2df32b(0xdb)]?.['version'],'commandCount':_0x7ebc71[_0x2df32b(0xdb)]?.['commands'][_0x2df32b(0xb4)]??0x0,'commands':_0x7ebc71[_0x2df32b(0xdb)]?.[_0x2df32b(0xdc)][_0x2df32b(0xc6)](_0x1ee0a4=>({'path':_0x1ee0a4[_0x2df32b(0xc3)],'risk':_0x1ee0a4['risk'],'target':_0x1ee0a4[_0x2df32b(0xbd)]}))??[],'registryIndex':_0x7ebc71[_0x2df32b(0xca)],'registryServiceCode':_0x7ebc71[_0x2df32b(0xd7)],'errors':_0x7ebc71[_0x2df32b(0xf4)][_0x2df32b(0xcc)],'warnings':_0x7ebc71[_0x2df32b(0xf4)][_0x2df32b(0xd6)]};}function a33_0x330a(_0x2a0ef7,_0x49d89b){_0x2a0ef7=_0x2a0ef7-0xb3;const _0x2e6609=a33_0x2e66();let _0x330a81=_0x2e6609[_0x2a0ef7];return _0x330a81;}function a33_0x2e66(){const _0x220480=['list','type','Service\x20Tree\x20manifest\x20file\x20path','Export\x20a\x20local\x20Service\x20Tree\x20manifest\x20to\x20a\x20JSON\x20file','export','filePath','detail','length','387444nNLFcG','hash','1438318qJSFww','importedAt','cliName','\x20service(s),\x20updated\x20','66kphZBE','file','target','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','Local\x20service\x20code,\x20for\x20example\x20crm','validate','registryPath','cliPath','risk','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','map','2602539OsVvon','11POnFSz','manifests','registryIndex','lower\x20kebab-case\x20service\x20code','errors','name','Service\x20manifest\x20validation\x20passed.','serviceCount','\x20service(s).','158433eYDxBq','string','write','service','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','warnings','registryServiceCode','source','required','version','normalizedManifest','commands','kind','Remove\x20a\x20local\x20Service\x20Tree\x20manifest\x20from\x20the\x20runtime\x20registry','Service\x20registry\x20validation\x20passed.','3295Wizzoo','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','read','flags','732VjYnhW','description','entry','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','updated','WRITE','Imported','420JkhYxe','entries','str','Imported\x20','replaced','serviceCode','Removed\x20service\x20','Local\x20service\x20not\x20found:\x20','5741290lWBIeV','report','Exported\x20service\x20','import','8PMOPTt','imported','Import\x20a\x20Service\x20Tree\x20manifest\x20into\x20the\x20local\x20runtime\x20registry'];a33_0x2e66=function(){return _0x220480;};return a33_0x2e66();}export const serviceDefinitions=[{'service':'service','command':a33_0x394f7c(0xc1),'description':a33_0x394f7c(0xc5),'risk':a33_0x394f7c(0xe2),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x35715c){const _0x2f63d6=a33_0x394f7c,_0xa6804f=loadServiceManifestFromFile(_0x35715c['str'](_0x2f63d6(0xbc)));if(!_0xa6804f[_0x2f63d6(0xf4)]['ok'])return{'ok':![],'data':{'file':_0xa6804f[_0x2f63d6(0xff)],'hash':_0xa6804f[_0x2f63d6(0xb6)],'kind':_0xa6804f[_0x2f63d6(0xdd)],'serviceCount':_0xa6804f[_0x2f63d6(0xc9)][_0x2f63d6(0xb4)],'services':_0xa6804f['manifests'][_0x2f63d6(0xc6)](summarizeLoadedManifest),'errors':_0xa6804f['report']['errors'],'warnings':_0xa6804f[_0x2f63d6(0xf4)][_0x2f63d6(0xd6)]},'message':formatValidationFailure(_0xa6804f[_0x2f63d6(0xf4)])};if(_0xa6804f[_0x2f63d6(0xdd)]==='registry'||_0xa6804f[_0x2f63d6(0xc9)][_0x2f63d6(0xb4)]!==0x1)return{'ok':!![],'data':{'file':_0xa6804f[_0x2f63d6(0xff)],'hash':_0xa6804f[_0x2f63d6(0xb6)],'kind':_0xa6804f['kind'],'serviceCount':_0xa6804f[_0x2f63d6(0xc9)]['length'],'commandCount':_0xa6804f['manifests']['reduce']((_0x37246c,_0x443cd3)=>_0x37246c+(_0x443cd3['normalizedManifest']?.[_0x2f63d6(0xdc)][_0x2f63d6(0xb4)]??0x0),0x0),'services':_0xa6804f[_0x2f63d6(0xc9)][_0x2f63d6(0xc6)](summarizeLoadedManifest),'warnings':_0xa6804f[_0x2f63d6(0xf4)][_0x2f63d6(0xd6)]},'message':_0x2f63d6(0xdf)};return{'ok':!![],'data':{'file':_0xa6804f[_0x2f63d6(0xff)],'hash':_0xa6804f[_0x2f63d6(0xb6)],'kind':_0xa6804f['kind'],'service':_0xa6804f['normalizedManifest']?.[_0x2f63d6(0xd4)],'version':_0xa6804f[_0x2f63d6(0xdb)]?.[_0x2f63d6(0xda)],'commandCount':_0xa6804f['normalizedManifest']?.[_0x2f63d6(0xdc)][_0x2f63d6(0xb4)]??0x0,'commands':_0xa6804f[_0x2f63d6(0xdb)]?.[_0x2f63d6(0xdc)]['map'](_0x8e620c=>({'path':_0x8e620c['cliPath'],'risk':_0x8e620c[_0x2f63d6(0xc4)],'target':_0x8e620c[_0x2f63d6(0xbd)]})),'warnings':_0xa6804f['report'][_0x2f63d6(0xd6)]},'message':_0x2f63d6(0xce)};}},{'service':a33_0x394f7c(0xd4),'command':a33_0x394f7c(0xf6),'description':a33_0x394f7c(0xf9),'risk':a33_0x394f7c(0xd3),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x41a6a9){const _0xfb5b8b=a33_0x394f7c,_0x2b30c5=loadServiceManifestFromFile(_0x41a6a9[_0xfb5b8b(0xed)](_0xfb5b8b(0xbc)));return{'method':_0xfb5b8b(0xe9),'url':getServiceRegistryPath(),'body':{'file':_0x2b30c5[_0xfb5b8b(0xff)],'hash':_0x2b30c5[_0xfb5b8b(0xb6)],'kind':_0x2b30c5[_0xfb5b8b(0xdd)],'ok':_0x2b30c5[_0xfb5b8b(0xf4)]['ok'],'service':_0x2b30c5[_0xfb5b8b(0xdb)]?.['service'],'version':_0x2b30c5['normalizedManifest']?.[_0xfb5b8b(0xda)],'serviceCount':_0x2b30c5['manifests'][_0xfb5b8b(0xb4)],'services':_0x2b30c5[_0xfb5b8b(0xc9)][_0xfb5b8b(0xc6)](_0x1bab0c=>({'service':_0x1bab0c[_0xfb5b8b(0xdb)]?.[_0xfb5b8b(0xd4)],'version':_0x1bab0c[_0xfb5b8b(0xdb)]?.[_0xfb5b8b(0xda)],'commandCount':_0x1bab0c[_0xfb5b8b(0xdb)]?.[_0xfb5b8b(0xdc)][_0xfb5b8b(0xb4)]??0x0,'errors':_0x1bab0c[_0xfb5b8b(0xf4)][_0xfb5b8b(0xcc)]})),'errors':_0x2b30c5[_0xfb5b8b(0xf4)][_0xfb5b8b(0xcc)],'commandCount':_0x2b30c5[_0xfb5b8b(0xdb)]?.[_0xfb5b8b(0xdc)][_0xfb5b8b(0xb4)]??0x0},'description':_0xfb5b8b(0xd5)};},async 'execute'(_0x3220a4){const _0x5afaa4=a33_0x394f7c,_0x19fc26=importServiceManifest(_0x3220a4[_0x5afaa4(0xed)](_0x5afaa4(0xbc)));if(_0x19fc26[_0x5afaa4(0xec)]['length']!==0x1)return{'ok':!![],'data':{'registryPath':_0x19fc26[_0x5afaa4(0xc2)],'imported':_0x19fc26[_0x5afaa4(0xf8)],'updated':_0x19fc26[_0x5afaa4(0xe8)],'serviceCount':_0x19fc26[_0x5afaa4(0xcf)],'services':_0x19fc26['entries'][_0x5afaa4(0xc6)](summarizeService)},'message':_0x5afaa4(0xee)+_0x19fc26[_0x5afaa4(0xf8)]+_0x5afaa4(0xba)+_0x19fc26[_0x5afaa4(0xe8)]+_0x5afaa4(0xd0)};return{'ok':!![],'data':{'registryPath':_0x19fc26['registryPath'],'replaced':_0x19fc26[_0x5afaa4(0xef)],'imported':_0x19fc26[_0x5afaa4(0xf8)],'updated':_0x19fc26[_0x5afaa4(0xe8)],'serviceCount':_0x19fc26[_0x5afaa4(0xcf)],'service':summarizeService(_0x19fc26['entry'])},'message':(_0x19fc26[_0x5afaa4(0xef)]?'Updated':_0x5afaa4(0xea))+'\x20service\x20'+_0x19fc26[_0x5afaa4(0xe6)][_0x5afaa4(0xf0)]+'.'};}},{'service':a33_0x394f7c(0xd4),'command':a33_0x394f7c(0xfe),'description':a33_0x394f7c(0xfd),'risk':a33_0x394f7c(0xd3),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x643462){const _0x431731=a33_0x394f7c,_0x421a29=getLocalServiceEntry(_0x643462['str'](_0x431731(0xd4)));return{'method':_0x431731(0xe9),'url':_0x643462['str'](_0x431731(0xbc)),'body':{'service':_0x643462[_0x431731(0xed)](_0x431731(0xd4)),'found':Boolean(_0x421a29),'version':_0x421a29?.[_0x431731(0xda)],'source':_0x421a29?.[_0x431731(0xd8)]},'description':_0x431731(0xbf)};},async 'execute'(_0x42f60d){const _0x13669b=a33_0x394f7c,_0x19f85d=exportServiceManifest(_0x42f60d['str'](_0x13669b(0xd4)),_0x42f60d['str'](_0x13669b(0xbc)));return{'ok':!![],'data':{'registryPath':_0x19f85d[_0x13669b(0xc2)],'file':_0x19f85d[_0x13669b(0xff)],'service':summarizeService(_0x19f85d[_0x13669b(0xe6)])},'message':_0x13669b(0xf5)+_0x19f85d['entry']['serviceCode']+'.'};}},{'service':a33_0x394f7c(0xd4),'command':a33_0x394f7c(0xfa),'description':a33_0x394f7c(0xe7),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x171e2b=a33_0x394f7c,_0x42159b=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x42159b['length'],'services':_0x42159b[_0x171e2b(0xc6)](summarizeService)}};}},{'service':a33_0x394f7c(0xd4),'command':'remove','description':a33_0x394f7c(0xde),'risk':'write','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x31506e){const _0x211b68=a33_0x394f7c,_0x4a9ded=getLocalServiceEntry(_0x31506e[_0x211b68(0xed)](_0x211b68(0xd4)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x31506e[_0x211b68(0xed)]('service'),'found':Boolean(_0x4a9ded),'version':_0x4a9ded?.[_0x211b68(0xda)],'source':_0x4a9ded?.['source']},'description':_0x211b68(0xbe)};},async 'execute'(_0x4de8eb){const _0x9fe794=a33_0x394f7c,_0x92296f=removeServiceManifest(_0x4de8eb['str'](_0x9fe794(0xd4)));return{'ok':!![],'data':{'registryPath':_0x92296f[_0x9fe794(0xc2)],'serviceCount':_0x92296f[_0x9fe794(0xcf)],'service':summarizeService(_0x92296f['entry'])},'message':_0x9fe794(0xf1)+_0x92296f[_0x9fe794(0xe6)][_0x9fe794(0xf0)]+'.'};}},{'service':a33_0x394f7c(0xd4),'command':a33_0x394f7c(0xb3),'description':a33_0x394f7c(0xe1),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x277547){const _0x2aec62=a33_0x394f7c,_0x51fccd=getLocalServiceEntry(_0x277547[_0x2aec62(0xed)](_0x2aec62(0xd4)));if(!_0x51fccd)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x277547[_0x2aec62(0xed)]('service')},'message':_0x2aec62(0xf2)+_0x277547[_0x2aec62(0xed)](_0x2aec62(0xd4))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x51fccd),'manifest':_0x51fccd['manifest'],'normalizedManifest':_0x51fccd[_0x2aec62(0xdb)]}};}}];
@@ -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
+ const a34_0x34dc96=a34_0x28bb;(function(_0x4bebf6,_0x1a2bfa){const _0x560db0=a34_0x28bb,_0x1116f9=_0x4bebf6();while(!![]){try{const _0x48c1d3=parseInt(_0x560db0(0x201))/0x1*(parseInt(_0x560db0(0x1ed))/0x2)+parseInt(_0x560db0(0x1d9))/0x3*(-parseInt(_0x560db0(0x209))/0x4)+parseInt(_0x560db0(0x1e3))/0x5+parseInt(_0x560db0(0x1f3))/0x6+parseInt(_0x560db0(0x1d2))/0x7*(-parseInt(_0x560db0(0x1c9))/0x8)+-parseInt(_0x560db0(0x21b))/0x9+parseInt(_0x560db0(0x1f2))/0xa;if(_0x48c1d3===_0x1a2bfa)break;else _0x1116f9['push'](_0x1116f9['shift']());}catch(_0x149a75){_0x1116f9['push'](_0x1116f9['shift']());}}}(a34_0x3ab0,0x28927));import{createHash}from'node:crypto';import{existsSync,mkdirSync,readFileSync,renameSync,unlinkSync,writeFileSync}from'node:fs';import{homedir}from'node:os';import{dirname,resolve}from'node:path';import{normalizeServiceTreeManifest,validateServiceTreeManifest}from'@lovrabet/cli-framework';import{PRODUCT_CONFIG}from'../../constant/product.js';import{CliErrors}from'../../errors.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a34_0x34dc96(0x1e4);export function getServiceRegistryPath(_0x400d98={}){const _0x2c54c8=a34_0x34dc96;return resolve(_0x400d98[_0x2c54c8(0x1d4)]??homedir(),PRODUCT_CONFIG[_0x2c54c8(0x212)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x1b4b3a={}){const _0x510526=a34_0x34dc96,_0x52489b=getServiceRegistryPath(_0x1b4b3a);if(!existsSync(_0x52489b))return emptyServiceRegistry();try{const _0x378512=readFileSync(_0x52489b,'utf8');if(!_0x378512[_0x510526(0x20e)]())return emptyServiceRegistry();const _0x2aa3b0=JSON[_0x510526(0x1fd)](_0x378512);if(_0x2aa3b0['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors['validation']('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x2aa3b0[_0x510526(0x1fb)]),_0x510526(0x1f7)+_0x52489b+'.');if(!Array[_0x510526(0x215)](_0x2aa3b0[_0x510526(0x1d1)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2aa3b0[_0x510526(0x1fc)],'services':_0x2aa3b0[_0x510526(0x1d1)]};}catch(_0x261c2d){if(_0x261c2d instanceof Error&&_0x261c2d['name']==='CliError')throw _0x261c2d;throw CliErrors[_0x510526(0x21a)]('Invalid\x20service\x20registry\x20JSON:\x20'+_0x52489b,_0x510526(0x1f0));}}function a34_0x28bb(_0x2c2fc0,_0x483962){_0x2c2fc0=_0x2c2fc0-0x1c9;const _0x3ab0aa=a34_0x3ab0();let _0x28bb6f=_0x3ab0aa[_0x2c2fc0];return _0x28bb6f;}export function writeServiceRegistry(_0x2bce44,_0x17b724={}){const _0xdb052c=a34_0x34dc96,_0x4ad54b=getServiceRegistryPath(_0x17b724),_0x2599da=dirname(_0x4ad54b);!existsSync(_0x2599da)&&mkdirSync(_0x2599da,{'recursive':!![]});const _0x21ea1f=_0x4ad54b+_0xdb052c(0x1f4);try{writeFileSync(_0x21ea1f,JSON[_0xdb052c(0x205)](_0x2bce44,null,0x2)+'\x0a',{'encoding':_0xdb052c(0x1fe),'mode':0x180}),renameSync(_0x21ea1f,_0x4ad54b);}catch(_0x4f9573){try{unlinkSync(_0x21ea1f);}catch{}if(_0x4f9573?.['code']===_0xdb052c(0x219))throw CliErrors[_0xdb052c(0x21a)](_0xdb052c(0x1f5)+_0x4ad54b);throw _0x4f9573;}return _0x4ad54b;}export function loadServiceManifestFromFile(_0x5dfe49){const _0x3c4e1a=a34_0x34dc96,_0x5d1d67=resolve(_0x5dfe49);if(!existsSync(_0x5d1d67))throw CliErrors[_0x3c4e1a(0x21a)]('Service\x20manifest\x20file\x20not\x20found:\x20'+_0x5dfe49);let _0x332274;const _0x481168=readFileSync(_0x5d1d67,_0x3c4e1a(0x1fe));try{_0x332274=JSON[_0x3c4e1a(0x1fd)](_0x481168);}catch{throw CliErrors[_0x3c4e1a(0x21a)](_0x3c4e1a(0x218)+_0x5dfe49,_0x3c4e1a(0x1e5));}const _0x139c3b=sha256(_0x481168),_0x2bba2f=extractLoadedServiceManifests(_0x332274,_0x139c3b),_0x2b228c=aggregateValidationReports(_0x2bba2f),_0x31fd58=_0x2bba2f[0x0];return{'filePath':_0x5d1d67,'hash':_0x139c3b,'kind':isServiceRegistryLike(_0x332274)?_0x3c4e1a(0x207):_0x3c4e1a(0x1dd),'manifest':_0x31fd58?.['manifest']??_0x332274,'report':_0x2b228c,'normalizedManifest':_0x2bba2f[_0x3c4e1a(0x1cd)]===0x1?_0x31fd58?.[_0x3c4e1a(0x1f1)]:undefined,'manifests':_0x2bba2f};}function a34_0x3ab0(){const _0x1e24a0=['ENOENT','validation','2082816ritutG','203960bwaaqw','hex','reduce','].manifest.','length','services\x20must\x20be\x20an\x20array','report','object','services','77MnsaUW','risk','homeDir','$.services[','Service\x20registry\x20has\x20no\x20services\x20to\x20import.','service','join','7035zRnswZ','push','errors','importedAt','manifest','empty','update','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','source','commandCount','1110135KKRVqr','service.json','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','localeCompare','now','splice','registryIndex','serviceCode','code','missing','4dKaDlb','].manifest','toISOString','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','normalizedManifest','2532130CegLQC','880986oaEUFf','.tmp','Cannot\x20write\x20service\x20registry:\x20','startsWith','Remove\x20or\x20migrate\x20','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','file','find','schemaVersion','updatedAt','parse','utf8','target','flatMap','160483xdtjdM','command','invalid','Local\x20service\x20not\x20found:\x20','stringify','Service\x20manifest\x20validation\x20failed:\x0a','registry','Unsupported\x20schemaVersion:\x20','452cxJiwV','findIndex','path','version','warnings','trim','message','filePath','map','homeDirName','string','description','isArray','name','slice','Invalid\x20service\x20manifest\x20JSON:\x20'];a34_0x3ab0=function(){return _0x1e24a0;};return a34_0x3ab0();}export function importServiceManifest(_0x227d4c,_0x51866f={}){const _0x1c991b=a34_0x34dc96,_0x5d572f=loadServiceManifestFromFile(_0x227d4c);if(!_0x5d572f[_0x1c991b(0x1cf)]['ok'])throw CliErrors[_0x1c991b(0x21a)](formatValidationFailure(_0x5d572f[_0x1c991b(0x1cf)]),_0x1c991b(0x1f8));if(_0x5d572f['manifests'][_0x1c991b(0x1cd)]===0x0)throw CliErrors[_0x1c991b(0x21a)](_0x1c991b(0x1d6),'Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.');const _0x5ea26f=readServiceRegistry(_0x51866f),_0x2859af=(_0x51866f[_0x1c991b(0x1e7)]??(()=>new Date()))()[_0x1c991b(0x1ef)](),_0x5e5bb1=[];let _0x12cc76=0x0,_0x413158=0x0;for(const _0x15cc89 of _0x5d572f['manifests']){if(!_0x15cc89[_0x1c991b(0x1f1)])continue;const _0x5bcd10=_0x15cc89[_0x1c991b(0x1f1)][_0x1c991b(0x1d7)][_0x1c991b(0x1eb)],_0x3d1645={'serviceCode':_0x5bcd10,'version':_0x15cc89[_0x1c991b(0x1f1)][_0x1c991b(0x20c)],'importedAt':_0x2859af,'source':{'type':_0x1c991b(0x1f9),'path':_0x5d572f[_0x1c991b(0x210)],'hash':_0x15cc89['sourceHash']},'manifest':_0x15cc89[_0x1c991b(0x1dd)],'normalizedManifest':_0x15cc89['normalizedManifest']},_0x138a86=_0x5ea26f[_0x1c991b(0x1d1)]['findIndex'](_0x19bfc4=>_0x19bfc4[_0x1c991b(0x1ea)]===_0x5bcd10);_0x138a86>=0x0?(_0x5ea26f[_0x1c991b(0x1d1)][_0x138a86]=_0x3d1645,_0x413158++):(_0x5ea26f[_0x1c991b(0x1d1)][_0x1c991b(0x1da)](_0x3d1645),_0x12cc76++),_0x5e5bb1[_0x1c991b(0x1da)](_0x3d1645);}_0x5ea26f['services']['sort']((_0x1add6f,_0xc0700e)=>_0x1add6f[_0x1c991b(0x1ea)][_0x1c991b(0x1e6)](_0xc0700e[_0x1c991b(0x1ea)])),_0x5ea26f['updatedAt']=_0x2859af;const _0x13c267=writeServiceRegistry(_0x5ea26f,_0x51866f);return{'registryPath':_0x13c267,'entry':_0x5e5bb1[0x0],'replaced':_0x5e5bb1['length']===0x1?_0x413158===0x1:_0x413158>0x0,'entries':_0x5e5bb1,'imported':_0x12cc76,'updated':_0x413158,'serviceCount':_0x5ea26f['services'][_0x1c991b(0x1cd)]};}export function exportServiceManifest(_0x208eec,_0x4e8245,_0x21814c={}){const _0x53cbb7=a34_0x34dc96,_0x16f50b=getServiceRegistryPath(_0x21814c),_0x36d6b0=getLocalServiceEntry(_0x208eec,_0x21814c);if(!_0x36d6b0)throw CliErrors[_0x53cbb7(0x21a)]('Local\x20service\x20not\x20found:\x20'+_0x208eec,_0x53cbb7(0x1e0));const _0x49e856=resolve(_0x4e8245),_0x31ef93=dirname(_0x49e856);return!existsSync(_0x31ef93)&&mkdirSync(_0x31ef93,{'recursive':!![]}),writeFileSync(_0x49e856,JSON[_0x53cbb7(0x205)](_0x36d6b0['manifest'],null,0x2)+'\x0a',{'encoding':_0x53cbb7(0x1fe),'mode':0x180}),{'registryPath':_0x16f50b,'filePath':_0x49e856,'entry':_0x36d6b0};}export function removeServiceManifest(_0x43d48f,_0x810227={}){const _0x43ef08=a34_0x34dc96,_0x1cea46=readServiceRegistry(_0x810227),_0x43d360=_0x43d48f[_0x43ef08(0x20e)](),_0x3a417d=_0x1cea46[_0x43ef08(0x1d1)][_0x43ef08(0x20a)](_0x1a42f0=>_0x1a42f0['serviceCode']===_0x43d360);if(_0x3a417d<0x0)throw CliErrors[_0x43ef08(0x21a)](_0x43ef08(0x204)+_0x43d360,_0x43ef08(0x1e0));const [_0xb0aede]=_0x1cea46[_0x43ef08(0x1d1)][_0x43ef08(0x1e8)](_0x3a417d,0x1),_0x26b893=(_0x810227['now']??(()=>new Date()))()[_0x43ef08(0x1ef)]();_0x1cea46['updatedAt']=_0x26b893;const _0x1b5f3f=writeServiceRegistry(_0x1cea46,_0x810227);return{'registryPath':_0x1b5f3f,'entry':_0xb0aede,'serviceCount':_0x1cea46[_0x43ef08(0x1d1)][_0x43ef08(0x1cd)]};}export function listLocalServices(_0x4a8de9={}){const _0x16fc94=a34_0x34dc96;return readServiceRegistry(_0x4a8de9)[_0x16fc94(0x1d1)];}export function getLocalServiceEntry(_0x246903,_0x578fce={}){const _0xb4c1ec=a34_0x34dc96;return readServiceRegistry(_0x578fce)['services'][_0xb4c1ec(0x1fa)](_0x5bbac4=>_0x5bbac4[_0xb4c1ec(0x1ea)]===_0x246903[_0xb4c1ec(0x20e)]());}export function listLocalServiceTrees(_0x3d35f2={}){const _0x47d1a9=a34_0x34dc96;return readServiceRegistry(_0x3d35f2)[_0x47d1a9(0x1d1)][_0x47d1a9(0x211)](_0x1801aa=>_0x1801aa[_0x47d1a9(0x1f1)]);}export function inspectServiceRegistry(_0x1dd6b={}){const _0x3b9c51=a34_0x34dc96,_0x16b93a=getServiceRegistryPath(_0x1dd6b);if(!existsSync(_0x16b93a))return emptyServiceRegistryInspection(_0x16b93a,_0x3b9c51(0x1ec),![]);try{const _0x410add=readFileSync(_0x16b93a,_0x3b9c51(0x1fe));if(!_0x410add[_0x3b9c51(0x20e)]())return emptyServiceRegistryInspection(_0x16b93a,_0x3b9c51(0x1de),!![]);const _0x616202=JSON[_0x3b9c51(0x1fd)](_0x410add);if(_0x616202[_0x3b9c51(0x1fb)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x16b93a,_0x3b9c51(0x203),!![]),'schemaVersion':_0x616202[_0x3b9c51(0x1fb)],'message':_0x3b9c51(0x208)+String(_0x616202[_0x3b9c51(0x1fb)])};if(!Array['isArray'](_0x616202['services']))return{...emptyServiceRegistryInspection(_0x16b93a,'invalid',!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x616202[_0x3b9c51(0x1fc)],'message':_0x3b9c51(0x1ce)};const _0x59f22f=_0x616202['services'][_0x3b9c51(0x211)](summarizeLocalServiceEntry);return{'registryPath':_0x16b93a,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x616202[_0x3b9c51(0x1fc)],'serviceCount':_0x59f22f['length'],'commandCount':_0x59f22f[_0x3b9c51(0x1cb)]((_0x2aa549,_0x535faf)=>_0x2aa549+_0x535faf[_0x3b9c51(0x1e2)],0x0),'services':_0x59f22f};}catch(_0x4155a3){return{...emptyServiceRegistryInspection(_0x16b93a,_0x3b9c51(0x203),!![]),'message':_0x4155a3 instanceof Error?_0x4155a3[_0x3b9c51(0x20f)]:String(_0x4155a3)};}}export function formatValidationFailure(_0x36e3ab){const _0xf872bd=a34_0x34dc96,_0x57d3b6=_0x36e3ab[_0xf872bd(0x1db)][_0xf872bd(0x211)](_0x21f49f=>_0x21f49f[_0xf872bd(0x20b)]+':\x20'+_0x21f49f['message']);return _0xf872bd(0x206)+_0x57d3b6[_0xf872bd(0x1d8)]('\x0a');}function extractLoadedServiceManifests(_0x464540,_0x2f07ef){const _0x193c1c=a34_0x34dc96;if(!isServiceRegistryLike(_0x464540)){const _0x22fc35=_0x464540,_0xc1933f=validateServiceTreeManifest(_0x22fc35);return[{'manifest':_0x22fc35,'report':_0xc1933f,'normalizedManifest':_0xc1933f['ok']?normalizeServiceTreeManifest(_0x22fc35):undefined,'sourceHash':_0x2f07ef}];}return _0x464540[_0x193c1c(0x1d1)][_0x193c1c(0x211)]((_0x353638,_0x36ab3f)=>{const _0x11bb35=_0x193c1c,_0x3db2fc=isObjectRecord(_0x353638)?_0x353638[_0x11bb35(0x1dd)]:undefined,_0x2f7f29=validateServiceTreeManifest(_0x3db2fc),_0x3c322c=isObjectRecord(_0x353638)&&typeof _0x353638['serviceCode']===_0x11bb35(0x213)?_0x353638[_0x11bb35(0x1ea)]:undefined;return{'manifest':_0x3db2fc,'report':_0x2f7f29,'normalizedManifest':_0x2f7f29['ok']?normalizeServiceTreeManifest(_0x3db2fc):undefined,'sourceHash':sha256(JSON[_0x11bb35(0x205)](_0x3db2fc,null,0x2)+'\x0a'),'registryIndex':_0x36ab3f,'registryServiceCode':_0x3c322c};});}function aggregateValidationReports(_0x5e5115){const _0x1920b0=a34_0x34dc96,_0x2f1ece=_0x5e5115[_0x1920b0(0x200)](_0x4daf91=>_0x4daf91['registryIndex']===undefined?_0x4daf91[_0x1920b0(0x1cf)][_0x1920b0(0x1db)]:_0x4daf91[_0x1920b0(0x1cf)][_0x1920b0(0x1db)][_0x1920b0(0x211)](_0x2707a7=>({..._0x2707a7,'path':prefixRegistryIssuePath(_0x4daf91[_0x1920b0(0x1e9)],_0x2707a7[_0x1920b0(0x20b)])}))),_0x1bfb83=_0x5e5115['flatMap'](_0x56f41e=>_0x56f41e[_0x1920b0(0x1e9)]===undefined?_0x56f41e[_0x1920b0(0x1cf)]['warnings']:_0x56f41e[_0x1920b0(0x1cf)][_0x1920b0(0x20d)]['map'](_0x1ad694=>({..._0x1ad694,'path':prefixRegistryIssuePath(_0x56f41e[_0x1920b0(0x1e9)],_0x1ad694['path'])})));return{'ok':_0x2f1ece[_0x1920b0(0x1cd)]===0x0,'errors':_0x2f1ece,'warnings':_0x1bfb83};}function prefixRegistryIssuePath(_0x480b9f,_0x543c82){const _0x3b9da=a34_0x34dc96;if(_0x543c82==='$')return _0x3b9da(0x1d5)+_0x480b9f+_0x3b9da(0x1ee);if(_0x543c82[_0x3b9da(0x1f6)]('$.'))return _0x3b9da(0x1d5)+_0x480b9f+_0x3b9da(0x1ee)+_0x543c82[_0x3b9da(0x217)](0x1);if(_0x543c82[_0x3b9da(0x1f6)]('$['))return'$.services['+_0x480b9f+_0x3b9da(0x1ee)+_0x543c82[_0x3b9da(0x217)](0x1);return'$.services['+_0x480b9f+_0x3b9da(0x1cc)+_0x543c82;}function isServiceRegistryLike(_0x5c268e){const _0x4ce526=a34_0x34dc96;return isObjectRecord(_0x5c268e)&&_0x5c268e[_0x4ce526(0x1fb)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x4ce526(0x215)](_0x5c268e[_0x4ce526(0x1d1)]);}function isObjectRecord(_0x52362d){const _0x4186b4=a34_0x34dc96;return Boolean(_0x52362d)&&typeof _0x52362d===_0x4186b4(0x1d0)&&!Array['isArray'](_0x52362d);}function emptyServiceRegistryInspection(_0x556c58,_0x95ee6b,_0x236703){return{'registryPath':_0x556c58,'exists':_0x236703,'status':_0x95ee6b,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x30ef04){const _0x48457d=a34_0x34dc96,_0x3ee4a4=_0x30ef04[_0x48457d(0x1f1)],_0x431d49=_0x3ee4a4['commands'][_0x48457d(0x211)](_0x1faeef=>({'path':_0x1faeef['cliPath'],'description':_0x1faeef[_0x48457d(0x214)],'risk':_0x1faeef[_0x48457d(0x1d3)],'targetKind':_0x1faeef[_0x48457d(0x1ff)]['kind'],'targetCommand':_0x1faeef[_0x48457d(0x1ff)][_0x48457d(0x202)]}));return{'serviceCode':_0x30ef04[_0x48457d(0x1ea)],'name':_0x3ee4a4['service'][_0x48457d(0x216)],'description':_0x3ee4a4[_0x48457d(0x1d7)]['description'],'version':_0x30ef04['version'],'importedAt':_0x30ef04[_0x48457d(0x1dc)],'source':_0x30ef04[_0x48457d(0x1e1)],'commandCount':_0x431d49[_0x48457d(0x1cd)],'commands':_0x431d49};}function sha256(_0x301ce6){const _0x1285a4=a34_0x34dc96;return createHash('sha256')[_0x1285a4(0x1df)](_0x301ce6)['digest'](_0x1285a4(0x1ca));}
@@ -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_0x5a8b77=a35_0x3f1e;(function(_0x564d8c,_0x318bc4){const _0x44910f=a35_0x3f1e,_0x43f656=_0x564d8c();while(!![]){try{const _0x28743e=-parseInt(_0x44910f(0x9e))/0x1+-parseInt(_0x44910f(0x9b))/0x2*(-parseInt(_0x44910f(0xaa))/0x3)+parseInt(_0x44910f(0x91))/0x4*(parseInt(_0x44910f(0x9f))/0x5)+parseInt(_0x44910f(0x97))/0x6+parseInt(_0x44910f(0x8c))/0x7+-parseInt(_0x44910f(0xa6))/0x8*(-parseInt(_0x44910f(0x9a))/0x9)+parseInt(_0x44910f(0xac))/0xa*(-parseInt(_0x44910f(0x8b))/0xb);if(_0x28743e===_0x318bc4)break;else _0x43f656['push'](_0x43f656['shift']());}catch(_0x501412){_0x43f656['push'](_0x43f656['shift']());}}}(a35_0xbd9a,0xf26e2));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';function a35_0xbd9a(){const _0x417981=['skillName','569631tmYdsX','128165ixQBte','skillDir','WRITE','name','content','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','str','328wNsPQo','rendered','write','validation','816159liSvWk','isSymbolicLink','5817530dvlPLb','create','utf8','path','target','55CxnjQV','7622832nOIcJc','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','trim','Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20','isDirectory','108oSgUqs','map','Refusing\x20to\x20overwrite\x20symlink:\x20','type','bool','Create\x20a\x20local\x20self-contained\x20runtime\x20Skill\x20draft','4707996KLXzQo','Skill\x20directory\x20already\x20exists:\x20','force','358596hlRPWi','2SipdGW','skill'];a35_0xbd9a=function(){return _0x417981;};return a35_0xbd9a();}import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';function a35_0x3f1e(_0x17e44a,_0x41e88c){_0x17e44a=_0x17e44a-0x87;const _0xbd9af2=a35_0xbd9a();let _0x3f1ec5=_0xbd9af2[_0x17e44a];return _0x3f1ec5;}import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a35_0x5a8b77(0x9c),'command':a35_0x5a8b77(0x87),'description':a35_0x5a8b77(0x96),'risk':a35_0x5a8b77(0xa8),'requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x3e2e8a){const _0x1ec6fd=a35_0x5a8b77,_0x3c5ecb=buildSkillCreatePlan(_0x3e2e8a['str'](_0x1ec6fd(0xa2)),_0x3e2e8a['str']('type'),_0x3e2e8a[_0x1ec6fd(0xa5)]('target'));return{'method':_0x1ec6fd(0xa1),'url':_0x3c5ecb[_0x1ec6fd(0xa0)],'body':{'skillName':_0x3c5ecb['rendered'][_0x1ec6fd(0x9d)],'type':_0x3c5ecb[_0x1ec6fd(0xa7)]['type'],'selfContained':!![],'files':_0x3c5ecb[_0x1ec6fd(0xa7)]['files'][_0x1ec6fd(0x92)](_0x39a027=>_0x39a027['path'])},'description':_0x1ec6fd(0x8d)};},async 'execute'(_0x13dc39){const _0x5ecc90=a35_0x5a8b77,_0x340aa9=buildSkillCreatePlan(_0x13dc39[_0x5ecc90(0xa5)](_0x5ecc90(0xa2)),_0x13dc39[_0x5ecc90(0xa5)](_0x5ecc90(0x94)),_0x13dc39[_0x5ecc90(0xa5)](_0x5ecc90(0x8a)));return writeSkillDraft(_0x340aa9,_0x13dc39[_0x5ecc90(0x95)](_0x5ecc90(0x99))),{'ok':!![],'data':{'skillName':_0x340aa9[_0x5ecc90(0xa7)][_0x5ecc90(0x9d)],'type':_0x340aa9[_0x5ecc90(0xa7)][_0x5ecc90(0x94)],'dir':_0x340aa9['skillDir'],'files':_0x340aa9[_0x5ecc90(0xa7)]['files'][_0x5ecc90(0x92)](_0x4af178=>_0x4af178[_0x5ecc90(0x89)])},'message':'Created\x20local\x20Skill\x20draft\x20'+_0x340aa9['rendered'][_0x5ecc90(0x9d)]};}};function buildSkillCreatePlan(_0x4210b3,_0x4ef58d,_0x363336){const _0x154865=a35_0x5a8b77,_0x32b408=renderSkillTemplate({'skillName':_0x4210b3,'type':_0x4ef58d}),_0x1aa538=resolve(normalizeSkillTarget(_0x363336));return{'rendered':_0x32b408,'targetRoot':_0x1aa538,'skillDir':resolve(_0x1aa538,_0x32b408[_0x154865(0x9d)])};}function normalizeSkillTarget(_0x394572){const _0xc92ee6=a35_0x5a8b77;return(_0x394572||DEFAULT_SKILL_TARGET)[_0xc92ee6(0x8e)]()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x50b58f,_0xa9d08b){const _0x34450b=a35_0x5a8b77;if(existsSync(_0x50b58f[_0x34450b(0xa0)])){const _0x30aef5=lstatSync(_0x50b58f['skillDir']);if(!_0x30aef5[_0x34450b(0x90)]()||_0x30aef5['isSymbolicLink']())throw CliErrors[_0x34450b(0xa9)](_0x34450b(0x8f)+_0x50b58f[_0x34450b(0xa0)]);if(!_0xa9d08b)throw CliErrors[_0x34450b(0xa9)](_0x34450b(0x98)+_0x50b58f['skillDir'],_0x34450b(0xa4));}for(const _0x43073e of _0x50b58f['rendered']['files']){const _0x5ac4fd=resolve(_0x50b58f[_0x34450b(0xa0)],_0x43073e[_0x34450b(0x89)]),_0x185530=dirname(_0x5ac4fd);mkdirSync(_0x185530,{'recursive':!![]});if(existsSync(_0x5ac4fd)&&lstatSync(_0x5ac4fd)[_0x34450b(0xab)]())throw CliErrors['validation'](_0x34450b(0x93)+_0x5ac4fd);writeFileSync(_0x5ac4fd,_0x43073e[_0x34450b(0xa3)],_0x34450b(0x88));}}
@@ -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_0x20bee1=a36_0x3d7f;(function(_0x3a1c01,_0x5f1a20){const _0xe1679=a36_0x3d7f,_0x529ce8=_0x3a1c01();while(!![]){try{const _0x1018fa=-parseInt(_0xe1679(0xbb))/0x1+parseInt(_0xe1679(0xbd))/0x2*(parseInt(_0xe1679(0xb4))/0x3)+parseInt(_0xe1679(0xaf))/0x4+parseInt(_0xe1679(0xbc))/0x5*(parseInt(_0xe1679(0xbf))/0x6)+parseInt(_0xe1679(0xa6))/0x7*(parseInt(_0xe1679(0xa5))/0x8)+parseInt(_0xe1679(0xaa))/0x9*(-parseInt(_0xe1679(0xb0))/0xa)+-parseInt(_0xe1679(0x9e))/0xb;if(_0x1018fa===_0x5f1a20)break;else _0x529ce8['push'](_0x529ce8['shift']());}catch(_0x412405){_0x529ce8['push'](_0x529ce8['shift']());}}}(a36_0x2017,0x5c4f2));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_0x20bee1(0xb1),'command':a36_0x20bee1(0xab),'description':a36_0x20bee1(0x99),'risk':a36_0x20bee1(0xa7),'requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG],async 'execute'(_0x1d6b0d){return syncRuntimeSkills(_0x1d6b0d);}};async function syncRuntimeSkills(_0x11851b){const _0x3f9215=a36_0x20bee1,{downloadRuntimeSkillPackage:_0x4ea42d,listRuntimeSkills:_0x49db0a}=await import(_0x3f9215(0xbe)),{linkEffectiveRuntimeSkills:_0x2f9aa5,materializeRuntimeSkill:_0x3a2966,pruneStaleRuntimeSkillCache:_0x35ae5e,pruneStaleRuntimeSkillLinks:_0x4ed280}=await import(_0x3f9215(0xa3)),_0x9e2b4f=_0x11851b[_0x3f9215(0xad)](_0x3f9215(0xac)),_0x59d4d9=normalizeSyncScopes(_0x11851b[_0x3f9215(0xad)]('scope')),_0x1bf24b=_0x11851b[_0x3f9215(0xa0)]??_0x3f9215(0xb8),_0x47f96a=_0x11851b['accessKey'];if(!_0x47f96a)throw CliErrors[_0x3f9215(0xb3)]('Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.');const _0x46ab3f=await Promise['all'](_0x59d4d9[_0x3f9215(0x9f)](_0x299107=>_0x49db0a({'appCode':_0x11851b[_0x3f9215(0x98)],'scope':_0x299107,'code':_0x9e2b4f[_0x3f9215(0xa2)]()||undefined}))),_0x181739=_0x59d4d9[_0x3f9215(0xa4)](_0x3f9215(0xb6))?_0x46ab3f[_0x3f9215(0x96)]((_0x52540d,_0x3515cf)=>_0x59d4d9[_0x3515cf]==='personal'?_0x52540d[_0x3f9215(0xb6)]:[]):[],_0x2e5987=_0x59d4d9[_0x3f9215(0xa4)](_0x3f9215(0xa9))?_0x46ab3f['flatMap']((_0x4cf7f9,_0x38ee46)=>_0x59d4d9[_0x38ee46]===_0x3f9215(0xa9)?_0x4cf7f9[_0x3f9215(0xa9)]:[]):[],_0x4853f7=new Set([..._0x181739[_0x3f9215(0x9f)](_0x1146f4=>_0x1146f4[_0x3f9215(0xb2)]?.[_0x3f9215(0xa2)]())['filter'](_0x2d3c54=>Boolean(_0x2d3c54)),..._0x2e5987[_0x3f9215(0x9f)](_0x5e92ca=>_0x5e92ca[_0x3f9215(0xb2)]?.[_0x3f9215(0xa2)]())[_0x3f9215(0xa8)](_0x25d678=>Boolean(_0x25d678))]),_0x40f3d4=_0x9e2b4f[_0x3f9215(0xa2)]()?[_0x9e2b4f[_0x3f9215(0xa2)]()]:undefined,_0x4983b0=_0x59d4d9[_0x3f9215(0xae)]===0x2&&_0x59d4d9[_0x3f9215(0xa4)](_0x3f9215(0xb6))&&_0x59d4d9[_0x3f9215(0xa4)](_0x3f9215(0xa9)),_0x3d34e8=_0x4983b0?_0x4ed280(_0x11851b[_0x3f9215(0x98)],_0x4853f7,{},_0x40f3d4):[],_0x5daa91=_0x35ae5e({'env':_0x1bf24b,'accessKey':_0x47f96a,'appCode':_0x11851b[_0x3f9215(0x98)],'activeSkillCodes':_0x4853f7,'pruneSkillCodes':_0x40f3d4,'scopes':_0x59d4d9}),_0xb6036a=[];for(const _0x37b27c of _0x181739){_0xb6036a[_0x3f9215(0x9c)](_0x3a2966(_0x37b27c,_0x3f9215(0xb6),{'env':_0x1bf24b,'accessKey':_0x47f96a,'appCode':_0x11851b[_0x3f9215(0x98)],'packageBytes':await downloadSkillPackage(_0x37b27c,_0x3f9215(0xb6),_0x11851b[_0x3f9215(0x98)],_0x4ea42d)}));}for(const _0x1772a3 of _0x2e5987){_0xb6036a[_0x3f9215(0x9c)](_0x3a2966(_0x1772a3,'company',{'env':_0x1bf24b,'accessKey':_0x47f96a,'appCode':_0x11851b[_0x3f9215(0x98)],'packageBytes':await downloadSkillPackage(_0x1772a3,'company',_0x11851b[_0x3f9215(0x98)],_0x4ea42d)}));}const _0x47ff0d=_0x2f9aa5(_0xb6036a,_0x11851b[_0x3f9215(0x98)]),_0x513f32=countLinkActions(_0x47ff0d);return{'ok':!![],'data':{'appCode':_0x11851b[_0x3f9215(0x98)],'personal':_0x181739[_0x3f9215(0xae)],'company':_0x2e5987[_0x3f9215(0xae)],'materialized':_0xb6036a[_0x3f9215(0xae)],'links':{'total':_0x47ff0d[_0x3f9215(0xae)],'created':_0x513f32[_0x3f9215(0x9a)]??0x0,'updated':_0x513f32[_0x3f9215(0xb9)]??0x0,'unchanged':_0x513f32[_0x3f9215(0x9b)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0x3d34e8[_0x3f9215(0xa8)](_0x41f03c=>_0x41f03c[_0x3f9215(0x97)]===_0x3f9215(0xb7))[_0x3f9215(0xae)],'cacheDirs':_0x5daa91[_0x3f9215(0xa8)](_0x392d07=>_0x392d07[_0x3f9215(0x97)]==='removed')[_0x3f9215(0xae)],'skipped':[..._0x3d34e8,..._0x5daa91]['filter'](_0x50dd1a=>_0x50dd1a[_0x3f9215(0x97)]==='skipped')[_0x3f9215(0xae)]},'skills':{'personal':_0x181739[_0x3f9215(0x9f)](summarizeRuntimeSkill),'company':_0x2e5987[_0x3f9215(0x9f)](summarizeRuntimeSkill)}},'message':_0x3f9215(0xb5)+_0x181739['length']+_0x3f9215(0x9d)+_0x2e5987[_0x3f9215(0xae)]+'\x20company\x20Skill(s).'};}function a36_0x3d7f(_0x592ccd,_0x13dbee){_0x592ccd=_0x592ccd-0x96;const _0x2017c1=a36_0x2017();let _0x3d7f06=_0x2017c1[_0x592ccd];return _0x3d7f06;}function a36_0x2017(){const _0x974852=['1443582ErbiXp','install','code','str','length','2963692Msjlir','30EaAQmB','skill','skillCode','authRequired','3lGciSA','Installed\x20','personal','removed','production','updated','reduce','623095YBEuCY','420985GqEGaW','593906dvGfGx','../../../core/api-client.js','30qdVqTY','flatMap','action','appCode','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','created','unchanged','push','\x20personal\x20and\x20','2135320EUvBqT','map','envName','version','trim','../../../skills/runtime-skill-sync.js','includes','1741168OtXAec','7xBYaZl','write','filter','company'];a36_0x2017=function(){return _0x974852;};return a36_0x2017();}async function downloadSkillPackage(_0x360d59,_0x3b1272,_0x254a52,_0x3a0683){const _0x2d527d=a36_0x20bee1,_0x3babae=_0x360d59[_0x2d527d(0xa1)]?.[_0x2d527d(0xa2)]();return _0x3babae?_0x3a0683(_0x3b1272,_0x360d59['skillCode'],_0x254a52,_0x3babae):_0x3a0683(_0x3b1272,_0x360d59[_0x2d527d(0xb2)],_0x254a52);}function countLinkActions(_0x2a9b83){const _0x17f04b=a36_0x20bee1;return _0x2a9b83[_0x17f04b(0xba)]((_0x46c799,_0x16f3c0)=>{const _0x19e228=_0x17f04b;return _0x46c799[_0x16f3c0[_0x19e228(0x97)]]=(_0x46c799[_0x16f3c0[_0x19e228(0x97)]]??0x0)+0x1,_0x46c799;},{});}