@lovrabet/lovrabet-cli 2.2.5 → 2.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/lib/cli.js +1 -1
- package/lib/commands/api-doc/index.js +1 -1
- package/lib/commands/app/cache.js +1 -1
- package/lib/commands/app/definitions.js +1 -1
- package/lib/commands/app/eligibility.js +1 -1
- package/lib/commands/app/mock-loader.js +1 -1
- package/lib/commands/app/remote-source.js +1 -1
- package/lib/commands/app/shared.js +1 -1
- package/lib/commands/app-config/get.js +1 -1
- package/lib/commands/app-config/index.js +1 -1
- package/lib/commands/artifact/index.js +1 -1
- package/lib/commands/auth/device.js +1 -1
- package/lib/commands/auth/index.js +1 -1
- package/lib/commands/auth/prompt.js +1 -1
- package/lib/commands/bff/detail.d.ts +1 -1
- package/lib/commands/bff/detail.js +1 -1
- package/lib/commands/bff/exec.d.ts +2 -2
- package/lib/commands/bff/exec.js +1 -1
- package/lib/commands/bff/index.js +1 -1
- package/lib/commands/cli-skill/index.js +1 -1
- package/lib/commands/common/config-policy.js +1 -1
- package/lib/commands/common/constraints.js +1 -1
- package/lib/commands/common/flags.d.ts +1 -1
- package/lib/commands/common/flags.js +1 -1
- package/lib/commands/common/local-file.js +1 -1
- package/lib/commands/config/definitions.js +1 -1
- package/lib/commands/config/shared.js +1 -1
- package/lib/commands/data/index.js +1 -1
- package/lib/commands/dataset/detail.js +1 -1
- package/lib/commands/dataset/index.js +1 -1
- package/lib/commands/dataset/list.js +1 -1
- package/lib/commands/dataset/sdk-doc.js +1 -1
- package/lib/commands/doctor.js +1 -1
- package/lib/commands/file/index.js +1 -1
- package/lib/commands/init.js +1 -1
- package/lib/commands/kb/index.js +1 -1
- package/lib/commands/logs/index.js +1 -1
- package/lib/commands/notification/config-list.js +1 -1
- package/lib/commands/notification/index.js +1 -1
- package/lib/commands/notification/shared.js +1 -1
- package/lib/commands/ocr/index.js +1 -1
- package/lib/commands/permit/dataset-get.js +1 -1
- package/lib/commands/permit/dataset-set.js +1 -1
- package/lib/commands/permit/index.js +1 -1
- package/lib/commands/permit/page-get.js +1 -1
- package/lib/commands/permit/page-set.js +1 -1
- package/lib/commands/permit/role-menus-set.js +1 -1
- package/lib/commands/permit/role-menus.js +1 -1
- package/lib/commands/permit/shared.js +1 -1
- package/lib/commands/personal-bff/index.js +1 -1
- package/lib/commands/registry.js +1 -1
- package/lib/commands/role/create.js +1 -1
- package/lib/commands/role/delete.js +1 -1
- package/lib/commands/role/detail.js +1 -1
- package/lib/commands/role/index.js +1 -1
- package/lib/commands/role/list.js +1 -1
- package/lib/commands/role/shared.js +1 -1
- package/lib/commands/role/update.js +1 -1
- package/lib/commands/role/user-add.js +1 -1
- package/lib/commands/role/user-remove.js +1 -1
- package/lib/commands/schedule/index.js +1 -1
- package/lib/commands/schema.js +1 -1
- package/lib/commands/service/dynamic.js +1 -1
- package/lib/commands/service/function-name-adapter.js +1 -1
- package/lib/commands/service/index.js +1 -1
- package/lib/commands/service/registry.js +1 -1
- package/lib/commands/skill/commands/create.js +1 -1
- package/lib/commands/skill/commands/diagram.js +1 -1
- package/lib/commands/skill/commands/install.js +1 -1
- package/lib/commands/skill/commands/list.js +1 -1
- package/lib/commands/skill/commands/push.js +1 -1
- package/lib/commands/skill/commands/validate.js +1 -1
- package/lib/commands/skill/diagram.js +1 -1
- package/lib/commands/skill/flags.js +1 -1
- package/lib/commands/skill/index.js +1 -1
- package/lib/commands/skill/manifest-helpers.js +1 -1
- package/lib/commands/skill/push-execute.js +1 -1
- package/lib/commands/skill/push-flow-helpers.js +1 -1
- package/lib/commands/skill/push-retarget.js +1 -1
- package/lib/commands/skill/scopes.js +1 -1
- package/lib/commands/skill/summary.js +1 -1
- package/lib/commands/skill/templates.js +1 -1
- package/lib/commands/skill/validate.js +1 -1
- package/lib/commands/sql/detail.js +1 -1
- package/lib/commands/sql/exec.js +1 -1
- package/lib/commands/sql/index.js +1 -1
- package/lib/commands/update.js +1 -1
- package/lib/commands/user-account/bind.js +1 -1
- package/lib/commands/user-account/index.js +1 -1
- package/lib/commands/workspace/index.js +1 -1
- package/lib/config/schema.js +1 -1
- package/lib/constant/app.js +1 -1
- package/lib/constant/auth-mode.js +1 -1
- package/lib/constant/cli.js +1 -1
- package/lib/constant/defaults.js +1 -1
- package/lib/constant/distribution.js +1 -1
- package/lib/constant/domain.d.ts +1 -1
- package/lib/constant/domain.js +1 -1
- package/lib/constant/env.js +1 -1
- package/lib/constant/output.js +1 -1
- package/lib/constant/product.js +1 -1
- package/lib/constant/risk.js +1 -1
- package/lib/constant/url.js +1 -1
- package/lib/context.js +1 -1
- package/lib/core/api-client.d.ts +3 -3
- package/lib/core/api-client.js +1 -1
- package/lib/core/db-resolver.js +1 -1
- package/lib/core/sdk-client.d.ts +3 -3
- package/lib/core/sdk-client.js +1 -1
- package/lib/errors.js +1 -1
- package/lib/framework/build-all-flags.js +1 -1
- package/lib/framework/dryrun.js +1 -1
- package/lib/framework/flags.js +1 -1
- package/lib/framework/help.js +1 -1
- package/lib/framework/index.js +1 -1
- package/lib/framework/output.js +1 -1
- package/lib/framework/preparse.js +1 -1
- package/lib/framework/rate-limit.js +1 -1
- package/lib/framework/raw-flags.js +1 -1
- package/lib/framework/response.js +1 -1
- package/lib/framework/runner-confirmation.js +1 -1
- package/lib/framework/runner-error.js +1 -1
- package/lib/framework/runner.js +1 -1
- package/lib/framework/schema-export.js +1 -1
- package/lib/framework/service-order.js +1 -1
- package/lib/framework/types.d.ts +3 -3
- package/lib/framework/types.js +1 -1
- package/lib/generated/build-info.d.ts +4 -4
- package/lib/generated/build-info.js +1 -1
- package/lib/help.js +1 -1
- package/lib/postinstall.js +1 -1
- package/lib/runtime/confirmation.js +1 -1
- package/lib/runtime/event.js +1 -1
- package/lib/runtime/index.js +1 -1
- package/lib/runtime/queue.js +1 -1
- package/lib/runtime/resolve.js +1 -1
- package/lib/skills/builtin-skill.js +1 -1
- package/lib/skills/npx-skills-add.js +1 -1
- package/lib/skills/runtime-skill-sync/constants.js +1 -1
- package/lib/skills/runtime-skill-sync/fs-utils.js +1 -1
- package/lib/skills/runtime-skill-sync/hashing.js +1 -1
- package/lib/skills/runtime-skill-sync/install-target.js +1 -1
- package/lib/skills/runtime-skill-sync/links.js +1 -1
- package/lib/skills/runtime-skill-sync/list-local.js +1 -1
- package/lib/skills/runtime-skill-sync/local-files.js +1 -1
- package/lib/skills/runtime-skill-sync/materialize.js +1 -1
- package/lib/skills/runtime-skill-sync/metadata.js +1 -1
- package/lib/skills/runtime-skill-sync/paths.js +1 -1
- package/lib/skills/runtime-skill-sync/push.js +1 -1
- package/lib/skills/runtime-skill-sync/scopes.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-codec.js +1 -1
- package/lib/skills/runtime-skill-sync/zip-package.js +1 -1
- package/lib/skills/runtime-skill-sync.js +1 -1
- package/lib/skills/skill-presence.js +1 -1
- package/lib/utils/apply-jq-filter.js +1 -1
- package/lib/utils/logger.js +1 -1
- package/lib/utils/lossless-json.js +1 -1
- package/lib/utils/params.js +1 -1
- package/lib/utils/platform.js +1 -1
- package/lib/utils/update-notice.js +1 -1
- package/lib/utils/version.js +1 -1
- package/lib/utils/write-cli-side-channel.js +1 -1
- package/package.json +2 -2
- package/skills/lovrabet/SKILL.md +16 -15
- package/skills/lovrabet/guides/dataset-and-data-workflow.md +2 -2
- package/skills/lovrabet/guides/sql-and-bff-workflow.md +7 -5
- package/skills/lovrabet/references/dataset-discovery-workflow.md +2 -2
- package/skills/lovrabet/references/lovrabet-app-config.md +1 -1
- package/skills/lovrabet/references/lovrabet-bff-workflow.md +1 -1
- package/skills/lovrabet/references/lovrabet-file-workflow.md +1 -1
- package/skills/lovrabet/references/lovrabet-personal-bff-workflow.md +35 -7
- package/skills/lovrabet.manifest.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
const a57_0x3c9fc8=a57_0x11c3;(function(_0x24178a,_0x381055){const _0x15bf28=a57_0x11c3,_0x5e0211=_0x24178a();while(!![]){try{const _0x5b32c0=-parseInt(_0x15bf28(0x1e1))/0x1*(parseInt(_0x15bf28(0x1de))/0x2)+parseInt(_0x15bf28(0x1c6))/0x3+parseInt(_0x15bf28(0x1da))/0x4*(-parseInt(_0x15bf28(0x1a9))/0x5)+parseInt(_0x15bf28(0x1e9))/0x6*(-parseInt(_0x15bf28(0x1e2))/0x7)+-parseInt(_0x15bf28(0x1a7))/0x8+parseInt(_0x15bf28(0x1aa))/0x9+parseInt(_0x15bf28(0x1ca))/0xa*(parseInt(_0x15bf28(0x1bd))/0xb);if(_0x5b32c0===_0x381055)break;else _0x5e0211['push'](_0x5e0211['shift']());}catch(_0x1333de){_0x5e0211['push'](_0x5e0211['shift']());}}}(a57_0x3bf1,0x9e1b5));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a57_0x3c9fc8(0x1c7),'type':'string','required':!![],'enum':[a57_0x3c9fc8(0x1b1),a57_0x3c9fc8(0x1c2)],'description':'Schedule\x20kind:\x20CRON\x20or\x20ONCE'},CRON_FLAG={'name':'cron','type':a57_0x3c9fc8(0x1b5),'description':a57_0x3c9fc8(0x1e8)},SCHEDULED_AT_FLAG={'name':a57_0x3c9fc8(0x1a3),'type':a57_0x3c9fc8(0x1b5),'description':a57_0x3c9fc8(0x1c3)},TITLE_FLAG={'name':a57_0x3c9fc8(0x1df),'type':a57_0x3c9fc8(0x1b5),'required':!![],'description':a57_0x3c9fc8(0x1c9)},PROMPT_FLAG={'name':a57_0x3c9fc8(0x1e0),'type':a57_0x3c9fc8(0x1b5),'required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':'model','type':'string','enum':[a57_0x3c9fc8(0x1ac),a57_0x3c9fc8(0x1ea),a57_0x3c9fc8(0x1d8)],'default':a57_0x3c9fc8(0x1ea),'description':a57_0x3c9fc8(0x1ae)},SCHEDULE_ID_FLAG={'name':a57_0x3c9fc8(0x1a5),'type':a57_0x3c9fc8(0x1b5),'required':!![],'description':a57_0x3c9fc8(0x1e5),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a57_0x3c9fc8(0x1d0)}},LIMIT_FLAG={'name':a57_0x3c9fc8(0x1ce),'type':a57_0x3c9fc8(0x1d5),'default':0x14,'description':a57_0x3c9fc8(0x1d2)},CURSOR_FLAG={'name':a57_0x3c9fc8(0x1ba),'type':a57_0x3c9fc8(0x1b5),'description':a57_0x3c9fc8(0x1c4)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function readScheduleInput(_0x23ef8c){const _0x13ebb3=a57_0x3c9fc8,_0x5259f4=_0x23ef8c[_0x13ebb3(0x1b7)](_0x13ebb3(0x1c7)),_0x548e11=_0x23ef8c[_0x13ebb3(0x1b7)]('title')[_0x13ebb3(0x1c5)](),_0x1f9f73=_0x23ef8c['str'](_0x13ebb3(0x1e0))[_0x13ebb3(0x1c5)](),_0x4f4b57=_0x23ef8c[_0x13ebb3(0x1b7)](_0x13ebb3(0x1dc)),_0x261652=_0x23ef8c[_0x13ebb3(0x1b7)](_0x13ebb3(0x1bf)),_0x37ed89=_0x23ef8c[_0x13ebb3(0x1b7)](_0x13ebb3(0x1a3));if(!_0x548e11)throw CliErrors['validation'](_0x13ebb3(0x1a8));if(!_0x1f9f73)throw CliErrors[_0x13ebb3(0x1d7)](_0x13ebb3(0x1bb));if(_0x5259f4===_0x13ebb3(0x1b1)){if(!_0x261652||_0x37ed89)throw CliErrors['validation'](_0x13ebb3(0x1e3));return{'kind':_0x5259f4,'timezone':_0x13ebb3(0x1cf),'cron':_0x261652,'title':_0x548e11,'prompt':_0x1f9f73,'model':_0x4f4b57};}if(_0x5259f4===_0x13ebb3(0x1c2)){if(!_0x37ed89||_0x261652)throw CliErrors[_0x13ebb3(0x1d7)](_0x13ebb3(0x1e4));return{'kind':_0x5259f4,'timezone':'UTC','scheduledAt':_0x37ed89,'title':_0x548e11,'prompt':_0x1f9f73,'model':_0x4f4b57};}throw CliErrors[_0x13ebb3(0x1d7)](_0x13ebb3(0x1b2));}function scheduleCollectionPath(_0x213dcf){const _0x11c2c2=a57_0x3c9fc8;return'/api/harness/apps/'+encodeURIComponent(_0x213dcf)+_0x11c2c2(0x1ab);}function a57_0x3bf1(){const _0x573ea9=['kimi/k3','build','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','read','Preview:\x20run\x20schedule\x20','CRON','--kind\x20must\x20be\x20CRON\x20or\x20ONCE.','DELETE','Preview:\x20delete\x20schedule\x20','string','description','str','length','Deleted\x20schedule\x20','cursor','--prompt\x20must\x20not\x20be\x20blank.','high-risk-write','22dNSdDF','delete','cron','\x20from\x20schedule\x20','schedule','ONCE','Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','trim','3413214MKkfQY','kind','run','Schedule\x20title','10021210qIaCpI','将在当前应用中创建可自动触发\x20Agent\x20的定时任务;到达设定时间后会按任务内容创建并执行\x20Task。','Queued\x20Task\x20','将永久删除该定时任务并停止后续自动触发;已经创建的历史\x20Task\x20不受影响。','limit','UTC','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','\x20schedule\x20','Page\x20size\x20from\x201\x20to\x20100','body','\x20immediately','number','立即运行一次定时任务并创建\x20Task','validation','deepseek-v4-pro-0813','num','87788bIrEnn','将忽略原定触发时间,立即运行一次该定时任务并创建新的\x20Agent\x20Task。','model','taskId','2XoPLoO','title','prompt','875074sEwpBM','28flJCET','CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','Schedule\x20UUID','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','create','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','1455852OfvUwU','deepseek-v4-flash-0731','Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','detail','scheduleId','appCode','scheduled-at','Preview:\x20create\x20an\x20Agent\x20schedule','schedule-id','POST','3917896jSAIoh','--title\x20must\x20not\x20be\x20blank.','230FOCEqA','7655094XiGrce','/schedules'];a57_0x3bf1=function(){return _0x573ea9;};return a57_0x3bf1();}function a57_0x11c3(_0x3ab31e,_0x4d0816){_0x3ab31e=_0x3ab31e-0x19f;const _0x3bf1e0=a57_0x3bf1();let _0x11c3ee=_0x3bf1e0[_0x3ab31e];return _0x11c3ee;}function scheduleItemPath(_0xfea201,_0x4237aa){return scheduleCollectionPath(_0xfea201)+'/'+encodeURIComponent(_0x4237aa);}const scheduleValidate={'service':'schedule','command':'validate','description':a57_0x3c9fc8(0x19f),'risk':a57_0x3c9fc8(0x1af),'flags':INPUT_FLAGS,async 'validate'(_0x258ae8){readScheduleInput(_0x258ae8);},async 'execute'(_0x287218){const _0x16b7fa=a57_0x3c9fc8,_0x476c07=readScheduleInput(_0x287218),_0x32bde3=await validateRuntimeSchedule(_0x287218[_0x16b7fa(0x1a2)],_0x476c07);return{'ok':!![],'data':_0x32bde3,'message':'Schedule\x20input\x20is\x20valid'};}},scheduleCreate={'service':a57_0x3c9fc8(0x1c1),'command':a57_0x3c9fc8(0x1e7),'description':'创建周期性或单次执行的\x20Agent\x20定时任务','risk':'high-risk-write','confirmationDescription':a57_0x3c9fc8(0x1cb),'flags':INPUT_FLAGS,async 'validate'(_0x163a4c){readScheduleInput(_0x163a4c);},async 'execute'(_0x129c13){const _0x2ff853=a57_0x3c9fc8,_0x2e5c56=readScheduleInput(_0x129c13),_0x2ce47a=await validateRuntimeSchedule(_0x129c13[_0x2ff853(0x1a2)],_0x2e5c56),_0x2642f6=await createRuntimeSchedule(_0x129c13[_0x2ff853(0x1a2)],_0x2ce47a);return{'ok':!![],'data':_0x2642f6,'message':'Created\x20'+_0x2642f6[_0x2ff853(0x1c7)]+_0x2ff853(0x1d1)+_0x2642f6[_0x2ff853(0x1a1)]};},async 'dryRun'(_0x41adb0){const _0x35cf79=a57_0x3c9fc8,_0x7935b0=readScheduleInput(_0x41adb0);return dryRun(_0x35cf79(0x1a6),scheduleCollectionPath(_0x41adb0[_0x35cf79(0x1a2)]))[_0x35cf79(0x1d3)](_0x7935b0)[_0x35cf79(0x1b6)](_0x35cf79(0x1a4))[_0x35cf79(0x1ad)]();}},scheduleList={'service':a57_0x3c9fc8(0x1c1),'command':'list','description':'List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','risk':'read','flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x99ecb7){const _0x4ad507=a57_0x3c9fc8,_0x17302e=_0x99ecb7[_0x4ad507(0x1d9)]('limit');if(!Number['isSafeInteger'](_0x17302e)||_0x17302e<0x1||_0x17302e>0x64)throw CliErrors['validation']('--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.');const _0x59cae8=_0x99ecb7['str'](_0x4ad507(0x1ba));if(_0x59cae8&&(_0x59cae8[_0x4ad507(0x1b8)]>0x400||_0x59cae8['trim']()!==_0x59cae8))throw CliErrors[_0x4ad507(0x1d7)](_0x4ad507(0x1e6));},async 'execute'(_0x6bfc08){const _0x1b62af=a57_0x3c9fc8,_0x1d071a=_0x6bfc08[_0x1b62af(0x1b7)](_0x1b62af(0x1ba)),_0x10cfb4=await listRuntimeSchedules(_0x6bfc08[_0x1b62af(0x1a2)],{'kind':_0x6bfc08[_0x1b62af(0x1b7)](_0x1b62af(0x1c7)),'limit':_0x6bfc08[_0x1b62af(0x1d9)](_0x1b62af(0x1ce)),..._0x1d071a?{'cursor':_0x1d071a}:{}});return{'ok':!![],'data':_0x10cfb4};}},scheduleDetail={'service':a57_0x3c9fc8(0x1c1),'command':a57_0x3c9fc8(0x1a0),'description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a57_0x3c9fc8(0x1af),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1d6668){const _0x35b8d7=a57_0x3c9fc8,_0x31627a=await getRuntimeSchedule(_0x1d6668[_0x35b8d7(0x1a2)],_0x1d6668['str'](_0x35b8d7(0x1a5)));return{'ok':!![],'data':_0x31627a};}},scheduleRun={'service':a57_0x3c9fc8(0x1c1),'command':a57_0x3c9fc8(0x1c8),'description':a57_0x3c9fc8(0x1d6),'risk':a57_0x3c9fc8(0x1bc),'confirmationDescription':a57_0x3c9fc8(0x1db),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0xff1306){const _0x4faf8c=a57_0x3c9fc8,_0x410407=_0xff1306[_0x4faf8c(0x1b7)](_0x4faf8c(0x1a5)),_0x4547c3=await runRuntimeSchedule(_0xff1306['appCode'],_0x410407);return{'ok':!![],'data':_0x4547c3,'message':_0x4faf8c(0x1cc)+_0x4547c3[_0x4faf8c(0x1dd)]+_0x4faf8c(0x1c0)+_0x410407};},async 'dryRun'(_0x4c0561){const _0xaa4de9=a57_0x3c9fc8,_0xc061d0=_0x4c0561['str'](_0xaa4de9(0x1a5));return dryRun(_0xaa4de9(0x1a6),scheduleItemPath(_0x4c0561[_0xaa4de9(0x1a2)],_0xc061d0)+'/run')[_0xaa4de9(0x1b6)](_0xaa4de9(0x1b0)+_0xc061d0+_0xaa4de9(0x1d4))[_0xaa4de9(0x1ad)]();}},scheduleDelete={'service':a57_0x3c9fc8(0x1c1),'command':a57_0x3c9fc8(0x1be),'description':'删除定时任务并停止其后续触发','risk':a57_0x3c9fc8(0x1bc),'confirmationDescription':a57_0x3c9fc8(0x1cd),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x5f5571){const _0x43bb77=a57_0x3c9fc8,_0x5c76da=_0x5f5571[_0x43bb77(0x1b7)](_0x43bb77(0x1a5)),_0x5c5e2e=await deleteRuntimeSchedule(_0x5f5571[_0x43bb77(0x1a2)],_0x5c76da);return{'ok':!![],'data':_0x5c5e2e,'message':_0x43bb77(0x1b9)+_0x5c76da};},async 'dryRun'(_0x2be384){const _0x2526e5=a57_0x3c9fc8,_0x1ff330=_0x2be384[_0x2526e5(0x1b7)](_0x2526e5(0x1a5));return dryRun(_0x2526e5(0x1b3),scheduleItemPath(_0x2be384[_0x2526e5(0x1a2)],_0x1ff330))[_0x2526e5(0x1b6)](_0x2526e5(0x1b4)+_0x1ff330)[_0x2526e5(0x1ad)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
|
1
|
+
const a57_0xa0a9e4=a57_0x1bda;(function(_0x153ad5,_0x20607f){const _0x269b13=a57_0x1bda,_0x205471=_0x153ad5();while(!![]){try{const _0x192418=-parseInt(_0x269b13(0x14f))/0x1+parseInt(_0x269b13(0x157))/0x2+-parseInt(_0x269b13(0x174))/0x3+-parseInt(_0x269b13(0x171))/0x4*(-parseInt(_0x269b13(0x162))/0x5)+parseInt(_0x269b13(0x154))/0x6*(parseInt(_0x269b13(0x164))/0x7)+-parseInt(_0x269b13(0x173))/0x8*(-parseInt(_0x269b13(0x170))/0x9)+parseInt(_0x269b13(0x17f))/0xa*(-parseInt(_0x269b13(0x155))/0xb);if(_0x192418===_0x20607f)break;else _0x205471['push'](_0x205471['shift']());}catch(_0x3c6b17){_0x205471['push'](_0x205471['shift']());}}}(a57_0x5543,0x4430d));import{createRuntimeSchedule,deleteRuntimeSchedule,getRuntimeSchedule,listRuntimeSchedules,runRuntimeSchedule,validateRuntimeSchedule}from'../../core/api-client.js';import{CliErrors}from'../../errors.js';import{dryRun}from'../../framework/dryrun.js';const SCHEDULE_ID_PATTERN=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,KIND_FLAG={'name':a57_0xa0a9e4(0x161),'type':a57_0xa0a9e4(0x16d),'required':!![],'enum':[a57_0xa0a9e4(0x168),a57_0xa0a9e4(0x179)],'description':a57_0xa0a9e4(0x145)},CRON_FLAG={'name':a57_0xa0a9e4(0x167),'type':a57_0xa0a9e4(0x16d),'description':a57_0xa0a9e4(0x158)},SCHEDULED_AT_FLAG={'name':a57_0xa0a9e4(0x14c),'type':a57_0xa0a9e4(0x16d),'description':'Canonical\x20UTC\x20ISO\x20datetime\x20for\x20ONCE\x20schedules'},TITLE_FLAG={'name':a57_0xa0a9e4(0x172),'type':a57_0xa0a9e4(0x16d),'required':!![],'description':a57_0xa0a9e4(0x160)},PROMPT_FLAG={'name':'prompt','type':a57_0xa0a9e4(0x16d),'required':!![],'description':'Prompt\x20sent\x20to\x20the\x20Agent\x20when\x20the\x20schedule\x20runs'},MODEL_FLAG={'name':a57_0xa0a9e4(0x188),'type':'string','enum':[a57_0xa0a9e4(0x178),a57_0xa0a9e4(0x15c),a57_0xa0a9e4(0x14d)],'default':'deepseek-v4-flash-0731','description':a57_0xa0a9e4(0x152)},SCHEDULE_ID_FLAG={'name':'schedule-id','type':a57_0xa0a9e4(0x16d),'required':!![],'description':a57_0xa0a9e4(0x185),'pattern':{'regex':SCHEDULE_ID_PATTERN,'description':a57_0xa0a9e4(0x144)}},LIMIT_FLAG={'name':a57_0xa0a9e4(0x180),'type':a57_0xa0a9e4(0x17c),'default':0x14,'description':a57_0xa0a9e4(0x187)},CURSOR_FLAG={'name':a57_0xa0a9e4(0x177),'type':a57_0xa0a9e4(0x16d),'description':a57_0xa0a9e4(0x147)},INPUT_FLAGS=[KIND_FLAG,CRON_FLAG,SCHEDULED_AT_FLAG,TITLE_FLAG,PROMPT_FLAG,MODEL_FLAG];function a57_0x5543(){const _0x2ca458=['isSafeInteger','str','立即运行一次定时任务并创建\x20Task','a\x20UUID\x20returned\x20by\x20schedule\x20create/list','Schedule\x20kind:\x20CRON\x20or\x20ONCE','--title\x20must\x20not\x20be\x20blank.','Opaque\x20nextCursor\x20returned\x20by\x20the\x20previous\x20list\x20call','\x20schedule\x20','description','删除定时任务并停止其后续触发','run','scheduled-at','deepseek-v4-pro-0813','Queued\x20Task\x20','340636kfhfZp','high-risk-write','将永久删除该定时任务并停止后续自动触发;已经创建的历史\x20Task\x20不受影响。','Task\x20model\x20used\x20when\x20the\x20schedule\x20runs','DELETE','1146QaqCTa','3135IUjePN','schedule-id','1095972WMeNHo','Five-field\x20UTC\x20cron\x20expression\x20for\x20CRON\x20schedules','read','UTC','ONCE\x20schedules\x20require\x20--scheduled-at\x20and\x20do\x20not\x20accept\x20--cron.','deepseek-v4-flash-0731','validation','body','appCode','Schedule\x20title','kind','45370lWgSdw','将在当前应用中创建可自动触发\x20Agent\x20的定时任务;到达设定时间后会按任务内容创建并执行\x20Task。','19901aVAPXD','list','/schedules','cron','CRON','Created\x20','length','--cursor\x20must\x20be\x20the\x20unchanged\x20nextCursor\x20from\x20schedule\x20list.','num','string','/api/harness/apps/','POST','9zoylkn','52KNLwQi','title','4137304EaJReh','304662vNsGht','--limit\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100.','prompt','cursor','kimi/k3','ONCE','trim','create','number','delete','schedule','35250WygsVf','limit','/run','List\x20current\x20user\x27s\x20schedules\x20for\x20the\x20current\x20app','build','Schedule\x20input\x20is\x20valid','Schedule\x20UUID','创建周期性或单次执行的\x20Agent\x20定时任务','Page\x20size\x20from\x201\x20to\x20100','model','scheduleId','Preview:\x20run\x20schedule\x20','Preview:\x20create\x20an\x20Agent\x20schedule'];a57_0x5543=function(){return _0x2ca458;};return a57_0x5543();}function readScheduleInput(_0x47baa1){const _0x172a8=a57_0xa0a9e4,_0x203337=_0x47baa1[_0x172a8(0x142)](_0x172a8(0x161)),_0x2484d3=_0x47baa1[_0x172a8(0x142)](_0x172a8(0x172))[_0x172a8(0x17a)](),_0x14159b=_0x47baa1[_0x172a8(0x142)](_0x172a8(0x176))['trim'](),_0x1f8187=_0x47baa1[_0x172a8(0x142)](_0x172a8(0x188)),_0x253cb3=_0x47baa1['str']('cron'),_0x1f0261=_0x47baa1[_0x172a8(0x142)](_0x172a8(0x14c));if(!_0x2484d3)throw CliErrors[_0x172a8(0x15d)](_0x172a8(0x146));if(!_0x14159b)throw CliErrors[_0x172a8(0x15d)]('--prompt\x20must\x20not\x20be\x20blank.');if(_0x203337===_0x172a8(0x168)){if(!_0x253cb3||_0x1f0261)throw CliErrors[_0x172a8(0x15d)]('CRON\x20schedules\x20require\x20--cron\x20and\x20do\x20not\x20accept\x20--scheduled-at.');return{'kind':_0x203337,'timezone':_0x172a8(0x15a),'cron':_0x253cb3,'title':_0x2484d3,'prompt':_0x14159b,'model':_0x1f8187};}if(_0x203337===_0x172a8(0x179)){if(!_0x1f0261||_0x253cb3)throw CliErrors['validation'](_0x172a8(0x15b));return{'kind':_0x203337,'timezone':'UTC','scheduledAt':_0x1f0261,'title':_0x2484d3,'prompt':_0x14159b,'model':_0x1f8187};}throw CliErrors[_0x172a8(0x15d)]('--kind\x20must\x20be\x20CRON\x20or\x20ONCE.');}function scheduleCollectionPath(_0x2afaf6){const _0x4d4ee0=a57_0xa0a9e4;return _0x4d4ee0(0x16e)+encodeURIComponent(_0x2afaf6)+_0x4d4ee0(0x166);}function a57_0x1bda(_0x3a86c2,_0x4b21e9){_0x3a86c2=_0x3a86c2-0x13e;const _0x554393=a57_0x5543();let _0x1bda51=_0x554393[_0x3a86c2];return _0x1bda51;}function scheduleItemPath(_0x474e54,_0x5d2012){return scheduleCollectionPath(_0x474e54)+'/'+encodeURIComponent(_0x5d2012);}const scheduleValidate={'service':a57_0xa0a9e4(0x17e),'command':'validate','description':'Validate\x20a\x20UTC\x20schedule\x20without\x20creating\x20it','risk':a57_0xa0a9e4(0x159),'flags':INPUT_FLAGS,async 'validate'(_0xae26b5){readScheduleInput(_0xae26b5);},async 'execute'(_0x59d799){const _0x23e288=a57_0xa0a9e4,_0x14f5f3=readScheduleInput(_0x59d799),_0x3ce1fd=await validateRuntimeSchedule(_0x59d799[_0x23e288(0x15f)],_0x14f5f3);return{'ok':!![],'data':_0x3ce1fd,'message':_0x23e288(0x184)};}},scheduleCreate={'service':a57_0xa0a9e4(0x17e),'command':a57_0xa0a9e4(0x17b),'description':a57_0xa0a9e4(0x186),'risk':a57_0xa0a9e4(0x150),'confirmationDescription':a57_0xa0a9e4(0x163),'flags':INPUT_FLAGS,async 'validate'(_0x2e54b4){readScheduleInput(_0x2e54b4);},async 'execute'(_0x49511b){const _0x48cff9=a57_0xa0a9e4,_0x46c2e7=readScheduleInput(_0x49511b),_0x326a9e=await validateRuntimeSchedule(_0x49511b[_0x48cff9(0x15f)],_0x46c2e7),_0x3c0e37=await createRuntimeSchedule(_0x49511b[_0x48cff9(0x15f)],_0x326a9e);return{'ok':!![],'data':_0x3c0e37,'message':_0x48cff9(0x169)+_0x3c0e37['kind']+_0x48cff9(0x148)+_0x3c0e37[_0x48cff9(0x13e)]};},async 'dryRun'(_0x59937e){const _0x4b169e=a57_0xa0a9e4,_0x28a697=readScheduleInput(_0x59937e);return dryRun(_0x4b169e(0x16f),scheduleCollectionPath(_0x59937e[_0x4b169e(0x15f)]))[_0x4b169e(0x15e)](_0x28a697)[_0x4b169e(0x149)](_0x4b169e(0x140))[_0x4b169e(0x183)]();}},scheduleList={'service':'schedule','command':a57_0xa0a9e4(0x165),'description':a57_0xa0a9e4(0x182),'risk':a57_0xa0a9e4(0x159),'flags':[KIND_FLAG,LIMIT_FLAG,CURSOR_FLAG],async 'validate'(_0x3747f0){const _0x197592=a57_0xa0a9e4,_0x2b37b7=_0x3747f0[_0x197592(0x16c)](_0x197592(0x180));if(!Number[_0x197592(0x141)](_0x2b37b7)||_0x2b37b7<0x1||_0x2b37b7>0x64)throw CliErrors[_0x197592(0x15d)](_0x197592(0x175));const _0x18e010=_0x3747f0[_0x197592(0x142)](_0x197592(0x177));if(_0x18e010&&(_0x18e010[_0x197592(0x16a)]>0x400||_0x18e010[_0x197592(0x17a)]()!==_0x18e010))throw CliErrors[_0x197592(0x15d)](_0x197592(0x16b));},async 'execute'(_0xed296b){const _0x56b97c=a57_0xa0a9e4,_0x40ac58=_0xed296b[_0x56b97c(0x142)](_0x56b97c(0x177)),_0x33249e=await listRuntimeSchedules(_0xed296b[_0x56b97c(0x15f)],{'kind':_0xed296b['str']('kind'),'limit':_0xed296b[_0x56b97c(0x16c)](_0x56b97c(0x180)),..._0x40ac58?{'cursor':_0x40ac58}:{}});return{'ok':!![],'data':_0x33249e};}},scheduleDetail={'service':a57_0xa0a9e4(0x17e),'command':'detail','description':'Show\x20one\x20schedule\x20by\x20schedule\x20ID','risk':a57_0xa0a9e4(0x159),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x412718){const _0x516eaa=a57_0xa0a9e4,_0x157ba3=await getRuntimeSchedule(_0x412718[_0x516eaa(0x15f)],_0x412718[_0x516eaa(0x142)](_0x516eaa(0x156)));return{'ok':!![],'data':_0x157ba3};}},scheduleRun={'service':a57_0xa0a9e4(0x17e),'command':a57_0xa0a9e4(0x14b),'description':a57_0xa0a9e4(0x143),'risk':a57_0xa0a9e4(0x150),'confirmationDescription':'将忽略原定触发时间,立即运行一次该定时任务并创建新的\x20Agent\x20Task。','flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x594c3e){const _0x518852=a57_0xa0a9e4,_0x47a289=_0x594c3e[_0x518852(0x142)](_0x518852(0x156)),_0x5e69e6=await runRuntimeSchedule(_0x594c3e[_0x518852(0x15f)],_0x47a289);return{'ok':!![],'data':_0x5e69e6,'message':_0x518852(0x14e)+_0x5e69e6['taskId']+'\x20from\x20schedule\x20'+_0x47a289};},async 'dryRun'(_0x388c06){const _0x54c873=a57_0xa0a9e4,_0x14ca9c=_0x388c06[_0x54c873(0x142)](_0x54c873(0x156));return dryRun(_0x54c873(0x16f),scheduleItemPath(_0x388c06['appCode'],_0x14ca9c)+_0x54c873(0x181))[_0x54c873(0x149)](_0x54c873(0x13f)+_0x14ca9c+'\x20immediately')['build']();}},scheduleDelete={'service':a57_0xa0a9e4(0x17e),'command':a57_0xa0a9e4(0x17d),'description':a57_0xa0a9e4(0x14a),'risk':a57_0xa0a9e4(0x150),'confirmationDescription':a57_0xa0a9e4(0x151),'flags':[SCHEDULE_ID_FLAG],async 'execute'(_0x1672aa){const _0x290f02=a57_0xa0a9e4,_0x4b978d=_0x1672aa[_0x290f02(0x142)](_0x290f02(0x156)),_0x4add8e=await deleteRuntimeSchedule(_0x1672aa[_0x290f02(0x15f)],_0x4b978d);return{'ok':!![],'data':_0x4add8e,'message':'Deleted\x20schedule\x20'+_0x4b978d};},async 'dryRun'(_0x4e0127){const _0x47350c=a57_0xa0a9e4,_0x4008b0=_0x4e0127['str'](_0x47350c(0x156));return dryRun(_0x47350c(0x153),scheduleItemPath(_0x4e0127['appCode'],_0x4008b0))[_0x47350c(0x149)]('Preview:\x20delete\x20schedule\x20'+_0x4008b0)[_0x47350c(0x183)]();}};export const scheduleDefinitions=[scheduleValidate,scheduleCreate,scheduleList,scheduleDetail,scheduleRun,scheduleDelete];
|
package/lib/commands/schema.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
const a58_0x4f14ee=a58_0x5b8a;(function(_0x213137,_0x24cfca){const _0x4584a2=a58_0x5b8a,_0x197ed0=_0x213137();while(!![]){try{const _0x58cbc8=-parseInt(_0x4584a2(0x1f4))/0x1+-parseInt(_0x4584a2(0x1f5))/0x2*(-parseInt(_0x4584a2(0x1f2))/0x3)+parseInt(_0x4584a2(0x1f7))/0x4+-parseInt(_0x4584a2(0x1f6))/0x5+parseInt(_0x4584a2(0x1fa))/0x6+parseInt(_0x4584a2(0x1f3))/0x7*(-parseInt(_0x4584a2(0x1f8))/0x8)+-parseInt(_0x4584a2(0x1f9))/0x9*(-parseInt(_0x4584a2(0x1fe))/0xa);if(_0x58cbc8===_0x24cfca)break;else _0x197ed0['push'](_0x197ed0['shift']());}catch(_0x1089bc){_0x197ed0['push'](_0x197ed0['shift']());}}}(a58_0x12d5,0x3e3f7));function a58_0x5b8a(_0x5587b6,_0x10157f){_0x5587b6=_0x5587b6-0x1f1;const _0x12d5f6=a58_0x12d5();let _0x5b8a52=_0x12d5f6[_0x5587b6];return _0x5b8a52;}import{buildSchemaPayload}from'../framework/schema-export.js';async function execute(_0xddd00f){const _0x1cc992=await buildSchemaPayload();return{'ok':!![],'data':_0x1cc992};}export const schemaDefinition={'service':a58_0x4f14ee(0x1f1),'command':a58_0x4f14ee(0x1fb),'description':a58_0x4f14ee(0x1fc),'risk':a58_0x4f14ee(0x1fd),'requiresAuth':![],'requiresAppCode':![],'hasFormat':!![],'flags':[],'execute':execute};function a58_0x12d5(){const _0x198618=['schema','2253GSmLTH','9051eiAxnF','73070iHFutT','838UQgEAC','2264030VcQufH','1814244KpVXtv','3008FSpRSr','614727nzyxML','123960YxSdWP','export','Export\x20machine-readable\x20command\x20schema\x20(JSON)','read','70wAIThx'];a58_0x12d5=function(){return _0x198618;};return a58_0x12d5();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x4d52f8,_0x1b0b58){const _0x143e3b=a59_0x2758,_0x5043fd=_0x4d52f8();while(!![]){try{const _0x4159fe=parseInt(_0x143e3b(0x159))/0x1*(parseInt(_0x143e3b(0x144))/0x2)+parseInt(_0x143e3b(0x170))/0x3+parseInt(_0x143e3b(0x179))/0x4+-parseInt(_0x143e3b(0x143))/0x5+parseInt(_0x143e3b(0x186))/0x6+parseInt(_0x143e3b(0x14c))/0x7*(parseInt(_0x143e3b(0x15f))/0x8)+-parseInt(_0x143e3b(0x153))/0x9*(parseInt(_0x143e3b(0x183))/0xa);if(_0x4159fe===_0x1b0b58)break;else _0x5043fd['push'](_0x5043fd['shift']());}catch(_0x28c33f){_0x5043fd['push'](_0x5043fd['shift']());}}}(a59_0x5887,0xc7a0d));function a59_0x2758(_0x1e1bf5,_0x4e6cf1){_0x1e1bf5=_0x1e1bf5-0x143;const _0x5887cf=a59_0x5887();let _0x275824=_0x5887cf[_0x1e1bf5];return _0x275824;}import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x5062e5,_0x14aa98){const _0x3a2c07=a59_0x2758,_0x1fc9a4=listLocalServiceTrees();let _0x227f35;for(const _0xfe22a4 of _0x1fc9a4){const _0x56c143=matchServiceTreeCommand(_0xfe22a4,_0x5062e5);if(!_0x56c143)continue;(!_0x227f35||_0x56c143[_0x3a2c07(0x1a7)]['fullPath'][_0x3a2c07(0x16e)]>_0x227f35[_0x3a2c07(0x1a7)][_0x3a2c07(0x15d)][_0x3a2c07(0x16e)])&&(_0x227f35={'tree':_0xfe22a4,'command':_0x56c143[_0x3a2c07(0x1a7)],'remainingArgs':_0x56c143[_0x3a2c07(0x19a)]});}if(!_0x227f35)return undefined;const _0x54f7e9={..._0x14aa98};return applyAppBinding(_0x227f35[_0x3a2c07(0x1ac)],_0x227f35['command'],_0x54f7e9),{'definition':buildDynamicCommandDefinition(_0x227f35[_0x3a2c07(0x1ac)],_0x227f35[_0x3a2c07(0x1a7)]),'args':_0x227f35[_0x3a2c07(0x19a)],'flags':_0x54f7e9,'tree':_0x227f35[_0x3a2c07(0x1ac)],'command':_0x227f35['command']};}export function generateDynamicServiceHelp(_0x345fc5){const _0x51f041=a59_0x2758,_0x402884=listLocalServiceTrees()[_0x51f041(0x157)](_0xb94847=>_0xb94847['service'][_0x51f041(0x167)]===_0x345fc5);if(!_0x402884)return undefined;const _0x39156d=[CLI_BIN_NAME+'\x20'+_0x345fc5+_0x51f041(0x17d),'',_0x402884[_0x51f041(0x166)][_0x51f041(0x172)]||_0x345fc5,_0x402884[_0x51f041(0x166)][_0x51f041(0x154)]?'\x20\x20'+_0x402884['service']['description']:'','','Commands:',..._0x402884[_0x51f041(0x192)][_0x51f041(0x182)](_0x5acc85=>{const _0x330509=_0x51f041,_0x4556ab=_0x5acc85[_0x330509(0x15d)][_0x330509(0x18a)](0x1)[_0x330509(0x15c)]('\x20'),_0x2caeaf=_0x5acc85[_0x330509(0x18d)]===_0x330509(0x161)?'':'\x20['+_0x5acc85[_0x330509(0x18d)]+']';return'\x20\x20'+_0x4556ab[_0x330509(0x15e)](0x18)+'\x20'+(_0x5acc85[_0x330509(0x154)]||'')+_0x2caeaf;}),'',_0x51f041(0x16a)+CLI_BIN_NAME+_0x51f041(0x160)+_0x345fc5+'`\x20to\x20inspect\x20the\x20manifest.'][_0x51f041(0x19f)](Boolean);return _0x39156d[_0x51f041(0x15c)]('\x0a');}function a59_0x5887(){const _0x4fa757=['app','length','appCode','17226YlphEE','appBindings','name','params','bffCode','fromEntries','appcode','default','mapTo','2768064mPOYOu','kind','\x20\x20\x20\x20kind:\x20\x20\x20\x20','string','\x20<command>\x20[flags]','nickname','target','validation','Unsupported\x20service\x20target\x20kind:\x20','map','30JgqrAG','dbtableConfig','tenantCode','5936796Tixinz','envName','cliPath','normalizedManifest','slice','required','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','risk','userName','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','Preview\x20dynamic\x20service\x20command:\x20','Unknown\x20appRef\x20\x22','commands','Cannot\x20resolve\x20datatable\x20\x22','username','nickName','\x20\x20\x20\x20sqlCode:\x20','\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20','\x20\x20\x20\x20datasetCode:\x20','env','remainingArgs','userId','Service\x20command\x20','trim','\x20\x20[','filter','该命令被清单标记为写入,可能修改业务数据或服务状态。','context.','ctx.','bffId','now','enum','data','command','operator','\x22\x20in\x20service\x20command\x20','type','\x20\x20MAP\x20TO','tree','\x20\x20\x20\x20command:\x20','scriptName','\x20\x20\x20\x20','3251040JDVGKl','14138LbBiCY','source','sqlCode','sql','SERVICE_TREE','\x20completed\x20in\x20','将通过\x20Service\x20Tree\x20执行“','\x20\x20\x20\x20datatable:\x20','14TCOIFq','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','cliName','startsWith','appRef','datasetCode','boolean','4129353ukccIt','description','push','\x20\x20\x20\x20functionName:\x20','find','Run\x20service\x20command\x20','34UsmeXL','number','json','join','fullPath','padEnd','3667064jfXfSA','\x20service\x20detail\x20--service\x20','read','entries','const','args','datatable','service','code','bff','\x20requires\x20target.functionName.','Use\x20`','some','flags'];a59_0x5887=function(){return _0x4fa757;};return a59_0x5887();}export function listDynamicServiceEntries(){return listLocalServices()['map'](_0x2878bb=>{const _0x5ed23a=a59_0x2758,_0x5b04a9=_0x2878bb[_0x5ed23a(0x189)];return{'service':_0x5b04a9['service']['code'],'label':_0x5b04a9[_0x5ed23a(0x166)]['name']||_0x5b04a9['service'][_0x5ed23a(0x167)],'commands':_0x5b04a9[_0x5ed23a(0x192)][_0x5ed23a(0x182)](_0x37144d=>({'command':dynamicCommandName(_0x37144d),'description':_0x37144d[_0x5ed23a(0x154)]||'Run\x20service\x20command\x20'+_0x37144d['cliPath'],'tag':riskTag(_0x37144d['risk'])}))};});}export function getDynamicServiceEntry(_0x4732f2){const _0x5adc1d=a59_0x2758;return listDynamicServiceEntries()[_0x5adc1d(0x157)](_0x30f13d=>_0x30f13d['service']===_0x4732f2);}export function listDynamicServiceDefinitions(_0x4eb765){const _0x458943=a59_0x2758;return listLocalServiceTrees()[_0x458943(0x19f)](_0x4d080f=>!_0x4eb765||_0x4d080f[_0x458943(0x166)][_0x458943(0x167)]===_0x4eb765)['flatMap'](_0x3c42a9=>_0x3c42a9[_0x458943(0x192)]['map'](_0x48c92b=>buildDynamicCommandDefinition(_0x3c42a9,_0x48c92b)));}export function getDynamicServiceDefinitions(_0x24c768){const _0x24e1b2=a59_0x2758,_0x446222=listDynamicServiceDefinitions(_0x24c768);return _0x446222[_0x24e1b2(0x16e)]>0x0?_0x446222:undefined;}export function findDynamicServiceDefinition(_0x1a4afd,_0x21bb17){const _0x54af5b=a59_0x2758;return listDynamicServiceDefinitions(_0x1a4afd)[_0x54af5b(0x157)](_0x4fb5f6=>_0x4fb5f6[_0x54af5b(0x1a7)]===_0x21bb17);}export function buildDynamicCommandDefinition(_0x147aec,_0x358f4b){const _0x4c6119=a59_0x2758;return{'service':_0x147aec[_0x4c6119(0x166)]['code'],'command':dynamicCommandName(_0x358f4b),'description':_0x358f4b[_0x4c6119(0x154)]||_0x4c6119(0x158)+_0x358f4b['cliPath'],'risk':_0x358f4b[_0x4c6119(0x18d)],..._0x358f4b[_0x4c6119(0x18d)]===_0x4c6119(0x161)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x358f4b)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x358f4b['args']['map'](_0x552e75=>({'name':_0x552e75[_0x4c6119(0x172)],'description':_0x552e75[_0x4c6119(0x154)]||_0x552e75[_0x4c6119(0x172)],'required':_0x552e75[_0x4c6119(0x18b)]})),'flags':_0x358f4b[_0x4c6119(0x16c)]['map'](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x358f4b),async 'dryRun'(_0xcf95e){const _0x485a0f=_0x4c6119,_0x16d303=await compilePlan(_0x358f4b,_0xcf95e);return{'method':_0x485a0f(0x148),'url':_0x358f4b['cliPath'],'body':{'target':targetPreview(_0x16d303),'params':_0x16d303[_0x485a0f(0x173)]},'description':_0x485a0f(0x190)+_0x358f4b['cliPath']};},async 'execute'(_0x1ec7d7){const _0xe58007=_0x4c6119,_0x4ee7c5=await compilePlan(_0x358f4b,_0x1ec7d7),_0x366e56=Date['now'](),_0xad14eb=await executePlan(_0x4ee7c5,_0x358f4b,_0x1ec7d7),_0x5e7920=Date[_0xe58007(0x1a4)]()-_0x366e56;return{'ok':!![],'data':{'service':_0x147aec[_0xe58007(0x166)],'command':_0x358f4b[_0xe58007(0x188)],'target':targetPreview(_0x4ee7c5),'result':_0xad14eb,'elapsed':_0x5e7920},'message':_0xe58007(0x19c)+_0x358f4b[_0xe58007(0x188)]+_0xe58007(0x149)+_0x5e7920+'ms'};}};}function buildDynamicConfirmationDescription(_0x151429){const _0x67986c=a59_0x2758,_0x5f01b9=_0x151429[_0x67986c(0x154)]||_0x151429['cliPath'],_0x94796=_0x151429[_0x67986c(0x18d)]==='high-risk-write'?_0x67986c(0x14d):_0x67986c(0x1a0);return _0x67986c(0x14a)+_0x5f01b9+'”。'+_0x94796;}function dynamicCommandName(_0x504a54){const _0x16e265=a59_0x2758;return _0x504a54[_0x16e265(0x15d)][_0x16e265(0x18a)](0x1)['join']('\x20');}function riskTag(_0x15722b){const _0x479007=a59_0x2758;return _0x15722b==='read'?'':_0x479007(0x19e)+_0x15722b+']';}function flagToCommandFlag(_0x20cbfb){const _0x127d7f=a59_0x2758;return{'name':_0x20cbfb[_0x127d7f(0x14e)],'type':_0x20cbfb[_0x127d7f(0x1aa)]===_0x127d7f(0x15b)?_0x127d7f(0x17c):_0x20cbfb[_0x127d7f(0x1aa)],'description':_0x20cbfb[_0x127d7f(0x154)]||_0x20cbfb[_0x127d7f(0x172)],'required':_0x20cbfb[_0x127d7f(0x18b)],'default':isPrimitiveFlagDefault(_0x20cbfb[_0x127d7f(0x177)])?_0x20cbfb[_0x127d7f(0x177)]:undefined,'enum':_0x20cbfb[_0x127d7f(0x1a5)]};}async function compilePlan(_0x79d840,_0x5cc7df){const _0x42a0cf=a59_0x2758;return compileServiceTreeCommand(_0x79d840,{'flags':_0x5cc7df['rawFlags'],'args':_0x5cc7df[_0x42a0cf(0x164)],'context':await buildServiceContext(_0x79d840,_0x5cc7df)});}async function buildServiceContext(_0x2a7dbe,_0x25ac17){const _0x5abb94=a59_0x2758,_0x41a908={'appCode':_0x25ac17[_0x5abb94(0x16f)],'env':_0x25ac17['envName'],'envName':_0x25ac17[_0x5abb94(0x187)]};if(!usesRuntimeContext(_0x2a7dbe))return _0x41a908;const _0x1a2069=await getLoginUserInfo(),_0x48d53b=pickFirst(_0x1a2069[_0x5abb94(0x19b)],_0x1a2069['id']);return{..._0x41a908,'user':_0x1a2069,'userId':_0x48d53b,'id':_0x1a2069['id'],'username':pickFirst(_0x1a2069[_0x5abb94(0x194)],_0x1a2069[_0x5abb94(0x18e)],_0x1a2069['loginName']),'userName':_0x1a2069[_0x5abb94(0x18e)],'nickname':pickFirst(_0x1a2069[_0x5abb94(0x17e)],_0x1a2069[_0x5abb94(0x195)]),'nickName':_0x1a2069['nickName'],'tenantCode':_0x1a2069[_0x5abb94(0x185)],'employeeId':_0x1a2069['employeeId']};}function usesRuntimeContext(_0x9ea206){const _0x249003=a59_0x2758;return _0x9ea206[_0x249003(0x178)][_0x249003(0x16b)](_0x5edad7=>typeof _0x5edad7['source']===_0x249003(0x17c)&&(_0x5edad7[_0x249003(0x145)][_0x249003(0x14f)](_0x249003(0x1a1))||_0x5edad7['source']['startsWith'](_0x249003(0x1a2))));}function pickFirst(..._0x44194d){const _0x53fd2e=a59_0x2758;return _0x44194d[_0x53fd2e(0x157)](_0xcf3b76=>_0xcf3b76!==undefined&&_0xcf3b76!==null);}async function executePlan(_0x5d2891,_0x224595,_0x25cbf3){const _0x5ed821=a59_0x2758;if(_0x5d2891['kind']===_0x5ed821(0x1a6)){const _0x464b85=await resolveDatasetCode(_0x5d2891,_0x224595,_0x25cbf3);return executeData(_0x464b85,_0x5d2891[_0x5ed821(0x1a7)],_0x5d2891[_0x5ed821(0x173)]);}if(_0x5d2891['kind']===_0x5ed821(0x147)){if(!_0x5d2891['sqlCode'])throw CliErrors['validation']('Service\x20command\x20'+_0x224595[_0x5ed821(0x188)]+'\x20requires\x20target.sqlCode.');return executeSdkSql(_0x5d2891[_0x5ed821(0x146)],normalizeScalarParams(_0x5d2891['params']));}if(_0x5d2891['kind']===_0x5ed821(0x168)){const _0x2d81fb=_0x5d2891[_0x5ed821(0x1ae)]||_0x5d2891['bffCode']||(_0x5d2891[_0x5ed821(0x1a3)]==null?'':String(_0x5d2891['bffId']));if(!_0x2d81fb)throw CliErrors[_0x5ed821(0x180)]('Service\x20command\x20'+_0x224595[_0x5ed821(0x188)]+_0x5ed821(0x169));return executeSdkBff(_0x2d81fb,_0x5d2891['params']);}throw CliErrors[_0x5ed821(0x180)](_0x5ed821(0x181)+_0x5d2891[_0x5ed821(0x17a)]);}async function resolveDatasetCode(_0x445e45,_0x5ded78,_0x2f9539){const _0x108605=a59_0x2758;if(_0x445e45[_0x108605(0x151)])return _0x445e45['datasetCode'];if(!_0x445e45[_0x108605(0x165)])throw CliErrors[_0x108605(0x180)](_0x108605(0x19c)+_0x5ded78[_0x108605(0x188)]+'\x20requires\x20target.datasetCode\x20or\x20target.datatable.');const _0x45d34c=await listDatasets(_0x2f9539[_0x108605(0x16f)]),_0x5af8e5=_0x45d34c['find'](_0x3266e4=>_0x3266e4[_0x108605(0x184)]?.['tableName']===_0x445e45['datatable']);if(!_0x5af8e5?.[_0x108605(0x167)])throw CliErrors[_0x108605(0x180)](_0x108605(0x193)+_0x445e45['datatable']+_0x108605(0x197)+_0x2f9539[_0x108605(0x16f)]+'.',_0x108605(0x18c));return _0x5af8e5[_0x108605(0x167)];}function applyAppBinding(_0x2f7809,_0x4c35ea,_0x33caac){const _0x2225bd=a59_0x2758,_0x8737e9=_0x4c35ea['target'][_0x2225bd(0x150)];if(!_0x8737e9)return;const _0x250941=_0x2f7809[_0x2225bd(0x171)][_0x8737e9];if(!_0x250941)throw CliErrors[_0x2225bd(0x180)](_0x2225bd(0x191)+_0x8737e9+_0x2225bd(0x1a9)+_0x4c35ea[_0x2225bd(0x188)]+'.',_0x2225bd(0x18f));const _0x16639e=_0x250941[_0x2225bd(0x176)]||_0x250941[_0x2225bd(0x16f)];_0x16639e&&!hasText(_0x33caac[_0x2225bd(0x176)])&&(_0x33caac['appcode']=_0x16639e),_0x250941[_0x2225bd(0x16d)]&&!hasText(_0x33caac[_0x2225bd(0x16d)])&&!hasText(_0x33caac['appcode'])&&(_0x33caac[_0x2225bd(0x16d)]=_0x250941[_0x2225bd(0x16d)]),_0x250941['env']&&!hasText(_0x33caac[_0x2225bd(0x199)])&&(_0x33caac[_0x2225bd(0x199)]=_0x250941[_0x2225bd(0x199)]);}function renderDynamicCommandHelp(_0x4e98bb){const _0x51df03=a59_0x2758,_0x1276d1=['\x20\x20SERVICE\x20TREE\x20TARGET',_0x51df03(0x17b)+_0x4e98bb[_0x51df03(0x17f)][_0x51df03(0x17a)],_0x51df03(0x1ad)+_0x4e98bb['target'][_0x51df03(0x1a7)]];if(_0x4e98bb[_0x51df03(0x17f)][_0x51df03(0x151)])_0x1276d1['push'](_0x51df03(0x198)+_0x4e98bb[_0x51df03(0x17f)][_0x51df03(0x151)]);if(_0x4e98bb['target'][_0x51df03(0x165)])_0x1276d1[_0x51df03(0x155)](_0x51df03(0x14b)+_0x4e98bb[_0x51df03(0x17f)][_0x51df03(0x165)]);if(_0x4e98bb[_0x51df03(0x17f)][_0x51df03(0x146)])_0x1276d1[_0x51df03(0x155)](_0x51df03(0x196)+_0x4e98bb[_0x51df03(0x17f)][_0x51df03(0x146)]);if(_0x4e98bb[_0x51df03(0x17f)][_0x51df03(0x1ae)])_0x1276d1['push'](_0x51df03(0x156)+_0x4e98bb[_0x51df03(0x17f)][_0x51df03(0x1ae)]);if(_0x4e98bb[_0x51df03(0x178)][_0x51df03(0x16e)]>0x0){_0x1276d1[_0x51df03(0x155)]('',_0x51df03(0x1ab));for(const _0x2991f6 of _0x4e98bb[_0x51df03(0x178)]){_0x1276d1[_0x51df03(0x155)](_0x51df03(0x1af)+(_0x2991f6[_0x51df03(0x145)]||_0x51df03(0x163))+'\x20->\x20'+_0x2991f6[_0x51df03(0x17f)]+(_0x2991f6[_0x51df03(0x1a8)]?'.'+_0x2991f6['operator']:''));}}return _0x1276d1[_0x51df03(0x15c)]('\x0a');}function targetPreview(_0x36853a){const _0x3f78b6=a59_0x2758;return{'kind':_0x36853a[_0x3f78b6(0x17a)],'command':_0x36853a['command'],'appRef':_0x36853a[_0x3f78b6(0x150)],'datasetCode':_0x36853a['datasetCode'],'datatable':_0x36853a[_0x3f78b6(0x165)],'sqlCode':_0x36853a[_0x3f78b6(0x146)],'bffCode':_0x36853a[_0x3f78b6(0x174)],'bffId':_0x36853a[_0x3f78b6(0x1a3)],'functionName':_0x36853a[_0x3f78b6(0x1ae)]};}function normalizeScalarParams(_0x32c4e3){const _0x28d992=a59_0x2758;return Object[_0x28d992(0x175)](Object[_0x28d992(0x162)](_0x32c4e3)[_0x28d992(0x19f)](([,_0x5daa21])=>typeof _0x5daa21===_0x28d992(0x17c)||typeof _0x5daa21===_0x28d992(0x15a)));}function hasText(_0x475909){const _0x40cba5=a59_0x2758;return typeof _0x475909===_0x40cba5(0x17c)&&_0x475909[_0x40cba5(0x19d)]()[_0x40cba5(0x16e)]>0x0;}function isPrimitiveFlagDefault(_0x12ad61){const _0x372967=a59_0x2758;return _0x12ad61===undefined||typeof _0x12ad61===_0x372967(0x17c)||typeof _0x12ad61===_0x372967(0x15a)||typeof _0x12ad61===_0x372967(0x152);}
|
|
1
|
+
function a59_0x40ca(_0x55eb25,_0x58cc35){_0x55eb25=_0x55eb25-0x118;const _0x1d30f7=a59_0x1d30();let _0x40ca6d=_0x1d30f7[_0x55eb25];return _0x40ca6d;}(function(_0x2d00bf,_0x696f91){const _0x369e21=a59_0x40ca,_0x23b65c=_0x2d00bf();while(!![]){try{const _0xffeed5=parseInt(_0x369e21(0x171))/0x1*(parseInt(_0x369e21(0x175))/0x2)+-parseInt(_0x369e21(0x12f))/0x3+parseInt(_0x369e21(0x17a))/0x4+parseInt(_0x369e21(0x170))/0x5+parseInt(_0x369e21(0x128))/0x6*(-parseInt(_0x369e21(0x148))/0x7)+-parseInt(_0x369e21(0x167))/0x8+parseInt(_0x369e21(0x164))/0x9*(parseInt(_0x369e21(0x177))/0xa);if(_0xffeed5===_0x696f91)break;else _0x23b65c['push'](_0x23b65c['shift']());}catch(_0x22f4ac){_0x23b65c['push'](_0x23b65c['shift']());}}}(a59_0x1d30,0x9c603));import{compileServiceTreeCommand,matchServiceTreeCommand}from'@lovrabet/cli-framework';import{getLoginUserInfo,listDatasets}from'../../core/api-client.js';import{executeData,executeSdkBff,executeSdkSql}from'../../core/sdk-client.js';import{CliErrors}from'../../errors.js';import{listLocalServices,listLocalServiceTrees}from'../../commands/service/registry.js';import{CLI_BIN_NAME}from'../../constant/cli.js';export function resolveDynamicServiceCommand(_0x27f2df,_0x4b050a){const _0x3e3367=a59_0x40ca,_0x295e8f=listLocalServiceTrees();let _0x429085;for(const _0x3ab033 of _0x295e8f){const _0x2bf049=matchServiceTreeCommand(_0x3ab033,_0x27f2df);if(!_0x2bf049)continue;(!_0x429085||_0x2bf049[_0x3e3367(0x168)][_0x3e3367(0x157)][_0x3e3367(0x135)]>_0x429085[_0x3e3367(0x168)][_0x3e3367(0x157)][_0x3e3367(0x135)])&&(_0x429085={'tree':_0x3ab033,'command':_0x2bf049[_0x3e3367(0x168)],'remainingArgs':_0x2bf049[_0x3e3367(0x141)]});}if(!_0x429085)return undefined;const _0x7599f0={..._0x4b050a};return applyAppBinding(_0x429085[_0x3e3367(0x130)],_0x429085[_0x3e3367(0x168)],_0x7599f0),{'definition':buildDynamicCommandDefinition(_0x429085['tree'],_0x429085[_0x3e3367(0x168)]),'args':_0x429085[_0x3e3367(0x141)],'flags':_0x7599f0,'tree':_0x429085[_0x3e3367(0x130)],'command':_0x429085[_0x3e3367(0x168)]};}export function generateDynamicServiceHelp(_0x24ca3f){const _0x2160be=a59_0x40ca,_0x4955d9=listLocalServiceTrees()[_0x2160be(0x149)](_0x576e8a=>_0x576e8a[_0x2160be(0x13c)][_0x2160be(0x163)]===_0x24ca3f);if(!_0x4955d9)return undefined;const _0x38a532=[CLI_BIN_NAME+'\x20'+_0x24ca3f+'\x20<command>\x20[flags]','',_0x4955d9[_0x2160be(0x13c)][_0x2160be(0x14c)]||_0x24ca3f,_0x4955d9[_0x2160be(0x13c)]['description']?'\x20\x20'+_0x4955d9['service'][_0x2160be(0x123)]:'','',_0x2160be(0x14e),..._0x4955d9[_0x2160be(0x178)][_0x2160be(0x142)](_0x680999=>{const _0x270c9a=_0x2160be,_0x46110a=_0x680999[_0x270c9a(0x157)][_0x270c9a(0x12e)](0x1)[_0x270c9a(0x137)]('\x20'),_0x2c67d0=_0x680999[_0x270c9a(0x179)]===_0x270c9a(0x166)?'':'\x20['+_0x680999[_0x270c9a(0x179)]+']';return'\x20\x20'+_0x46110a[_0x270c9a(0x127)](0x18)+'\x20'+(_0x680999[_0x270c9a(0x123)]||'')+_0x2c67d0;}),'','Use\x20`'+CLI_BIN_NAME+'\x20service\x20detail\x20--service\x20'+_0x24ca3f+_0x2160be(0x15f)][_0x2160be(0x13f)](Boolean);return _0x38a532[_0x2160be(0x137)]('\x0a');}export function listDynamicServiceEntries(){const _0x50bee3=a59_0x40ca;return listLocalServices()[_0x50bee3(0x142)](_0x32c641=>{const _0x167afa=_0x50bee3,_0x1f1ec3=_0x32c641['normalizedManifest'];return{'service':_0x1f1ec3[_0x167afa(0x13c)]['code'],'label':_0x1f1ec3[_0x167afa(0x13c)]['name']||_0x1f1ec3[_0x167afa(0x13c)][_0x167afa(0x163)],'commands':_0x1f1ec3[_0x167afa(0x178)][_0x167afa(0x142)](_0x33c1fd=>({'command':dynamicCommandName(_0x33c1fd),'description':_0x33c1fd[_0x167afa(0x123)]||_0x167afa(0x11c)+_0x33c1fd['cliPath'],'tag':riskTag(_0x33c1fd['risk'])}))};});}export function getDynamicServiceEntry(_0x11196f){const _0x12bcea=a59_0x40ca;return listDynamicServiceEntries()[_0x12bcea(0x149)](_0x4aa54d=>_0x4aa54d[_0x12bcea(0x13c)]===_0x11196f);}export function listDynamicServiceDefinitions(_0x3ada17){const _0x469643=a59_0x40ca;return listLocalServiceTrees()[_0x469643(0x13f)](_0xc9b03f=>!_0x3ada17||_0xc9b03f[_0x469643(0x13c)][_0x469643(0x163)]===_0x3ada17)[_0x469643(0x138)](_0x2a926c=>_0x2a926c[_0x469643(0x178)][_0x469643(0x142)](_0x9fe3a8=>buildDynamicCommandDefinition(_0x2a926c,_0x9fe3a8)));}export function getDynamicServiceDefinitions(_0xd1f890){const _0x55fddc=listDynamicServiceDefinitions(_0xd1f890);return _0x55fddc['length']>0x0?_0x55fddc:undefined;}export function findDynamicServiceDefinition(_0x637b2d,_0x522b90){const _0x3d0ea5=a59_0x40ca;return listDynamicServiceDefinitions(_0x637b2d)[_0x3d0ea5(0x149)](_0x100d19=>_0x100d19[_0x3d0ea5(0x168)]===_0x522b90);}export function buildDynamicCommandDefinition(_0x49058d,_0x211c93){const _0x47b6ff=a59_0x40ca;return{'service':_0x49058d[_0x47b6ff(0x13c)][_0x47b6ff(0x163)],'command':dynamicCommandName(_0x211c93),'description':_0x211c93[_0x47b6ff(0x123)]||_0x47b6ff(0x11c)+_0x211c93[_0x47b6ff(0x15b)],'risk':_0x211c93['risk'],..._0x211c93['risk']===_0x47b6ff(0x166)?{}:{'confirmationDescription':buildDynamicConfirmationDescription(_0x211c93)},'requiresAuth':!![],'requiresAppCode':!![],'args':_0x211c93[_0x47b6ff(0x152)][_0x47b6ff(0x142)](_0x2133c8=>({'name':_0x2133c8['name'],'description':_0x2133c8['description']||_0x2133c8['name'],'required':_0x2133c8[_0x47b6ff(0x173)]})),'flags':_0x211c93[_0x47b6ff(0x17b)][_0x47b6ff(0x142)](flagToCommandFlag),'helpExtra':()=>renderDynamicCommandHelp(_0x211c93),async 'dryRun'(_0x429da4){const _0x43cdef=_0x47b6ff,_0x4eb052=await compilePlan(_0x211c93,_0x429da4);return{'method':_0x43cdef(0x11a),'url':_0x211c93[_0x43cdef(0x15b)],'body':{'target':targetPreview(_0x4eb052),'params':_0x4eb052[_0x43cdef(0x133)]},'description':_0x43cdef(0x169)+_0x211c93[_0x43cdef(0x15b)]};},async 'execute'(_0x43cfd8){const _0x583ecc=_0x47b6ff,_0x234f97=await compilePlan(_0x211c93,_0x43cfd8),_0x25dd10=Date[_0x583ecc(0x12c)](),_0x3c29fe=await executePlan(_0x234f97,_0x211c93,_0x43cfd8),_0x3a16b7=Date[_0x583ecc(0x12c)]()-_0x25dd10;return{'ok':!![],'data':{'service':_0x49058d[_0x583ecc(0x13c)],'command':_0x211c93[_0x583ecc(0x15b)],'target':targetPreview(_0x234f97),'result':_0x3c29fe,'elapsed':_0x3a16b7},'message':_0x583ecc(0x14f)+_0x211c93[_0x583ecc(0x15b)]+_0x583ecc(0x174)+_0x3a16b7+'ms'};}};}function buildDynamicConfirmationDescription(_0x576ef2){const _0x340560=a59_0x40ca,_0x14d802=_0x576ef2[_0x340560(0x123)]||_0x576ef2[_0x340560(0x15b)],_0x5380ed=_0x576ef2[_0x340560(0x179)]==='high-risk-write'?_0x340560(0x120):'该命令被清单标记为写入,可能修改业务数据或服务状态。';return'将通过\x20Service\x20Tree\x20执行“'+_0x14d802+'”。'+_0x5380ed;}function dynamicCommandName(_0x3501ce){const _0x2bb2ac=a59_0x40ca;return _0x3501ce[_0x2bb2ac(0x157)][_0x2bb2ac(0x12e)](0x1)[_0x2bb2ac(0x137)]('\x20');}function riskTag(_0x3a222d){const _0x5781d0=a59_0x40ca;return _0x3a222d===_0x5781d0(0x166)?'':_0x5781d0(0x14a)+_0x3a222d+']';}function flagToCommandFlag(_0x4b77c1){const _0x21beec=a59_0x40ca;return{'name':_0x4b77c1[_0x21beec(0x140)],'type':_0x4b77c1[_0x21beec(0x12a)]===_0x21beec(0x119)?_0x21beec(0x126):_0x4b77c1['type'],'description':_0x4b77c1[_0x21beec(0x123)]||_0x4b77c1[_0x21beec(0x14c)],'required':_0x4b77c1['required'],'default':isPrimitiveFlagDefault(_0x4b77c1[_0x21beec(0x154)])?_0x4b77c1['default']:undefined,'enum':_0x4b77c1['enum']};}async function compilePlan(_0x1099ca,_0x114b4d){const _0x2da900=a59_0x40ca;return compileServiceTreeCommand(_0x1099ca,{'flags':_0x114b4d[_0x2da900(0x132)],'args':_0x114b4d[_0x2da900(0x152)],'context':await buildServiceContext(_0x1099ca,_0x114b4d)});}async function buildServiceContext(_0x354024,_0x1af6df){const _0x38bde9=a59_0x40ca,_0x2b22e5={'appCode':_0x1af6df['appCode'],'env':_0x1af6df[_0x38bde9(0x14d)],'envName':_0x1af6df[_0x38bde9(0x14d)]};if(!usesRuntimeContext(_0x354024))return _0x2b22e5;const _0x368c0c=await getLoginUserInfo(),_0xcd2d0d=pickFirst(_0x368c0c['userId'],_0x368c0c['id']);return{..._0x2b22e5,'user':_0x368c0c,'userId':_0xcd2d0d,'id':_0x368c0c['id'],'username':pickFirst(_0x368c0c[_0x38bde9(0x136)],_0x368c0c['userName'],_0x368c0c[_0x38bde9(0x16f)]),'userName':_0x368c0c[_0x38bde9(0x12d)],'nickname':pickFirst(_0x368c0c[_0x38bde9(0x176)],_0x368c0c[_0x38bde9(0x121)]),'nickName':_0x368c0c[_0x38bde9(0x121)],'tenantCode':_0x368c0c[_0x38bde9(0x122)],'employeeId':_0x368c0c[_0x38bde9(0x13d)]};}function usesRuntimeContext(_0x11c92e){const _0x2ab1c2=a59_0x40ca;return _0x11c92e[_0x2ab1c2(0x16b)][_0x2ab1c2(0x159)](_0x4e7b3d=>typeof _0x4e7b3d[_0x2ab1c2(0x16c)]==='string'&&(_0x4e7b3d[_0x2ab1c2(0x16c)][_0x2ab1c2(0x151)](_0x2ab1c2(0x153))||_0x4e7b3d[_0x2ab1c2(0x16c)][_0x2ab1c2(0x151)](_0x2ab1c2(0x11b))));}function pickFirst(..._0x86f937){const _0x4f1c38=a59_0x40ca;return _0x86f937[_0x4f1c38(0x149)](_0x5d80fe=>_0x5d80fe!==undefined&&_0x5d80fe!==null);}async function executePlan(_0x98d00d,_0x4dd2c8,_0x1efa02){const _0x1d61e0=a59_0x40ca;if(_0x98d00d[_0x1d61e0(0x162)]==='data'){const _0x60d4db=await resolveDatasetCode(_0x98d00d,_0x4dd2c8,_0x1efa02);return executeData(_0x60d4db,_0x98d00d[_0x1d61e0(0x168)],_0x98d00d['params']);}if(_0x98d00d[_0x1d61e0(0x162)]==='sql'){if(!_0x98d00d[_0x1d61e0(0x15d)])throw CliErrors[_0x1d61e0(0x144)]('Service\x20command\x20'+_0x4dd2c8[_0x1d61e0(0x15b)]+_0x1d61e0(0x139));return executeSdkSql(_0x98d00d[_0x1d61e0(0x15d)],normalizeScalarParams(_0x98d00d[_0x1d61e0(0x133)]));}if(_0x98d00d['kind']==='bff'){const _0xc197=_0x98d00d['scriptName']||_0x98d00d[_0x1d61e0(0x156)]||(_0x98d00d[_0x1d61e0(0x134)]==null?'':String(_0x98d00d[_0x1d61e0(0x134)]));if(!_0xc197)throw CliErrors[_0x1d61e0(0x144)](_0x1d61e0(0x14f)+_0x4dd2c8[_0x1d61e0(0x15b)]+'\x20requires\x20target.functionName.');return executeSdkBff(_0xc197,_0x98d00d[_0x1d61e0(0x133)]);}throw CliErrors[_0x1d61e0(0x144)](_0x1d61e0(0x146)+_0x98d00d[_0x1d61e0(0x162)]);}function a59_0x1d30(){const _0x2d910f=['args','context.','default','fromEntries','bffCode','fullPath','\x20\x20\x20\x20kind:\x20\x20\x20\x20','some','const','cliPath','env','sqlCode','\x20requires\x20target.datasetCode\x20or\x20target.datatable.','`\x20to\x20inspect\x20the\x20manifest.','Unknown\x20appRef\x20\x22','\x20\x20\x20\x20','kind','code','18ucuGBA','appCode','read','4094640lJWVDv','command','Preview\x20dynamic\x20service\x20command:\x20','appcode','mapTo','source','app','\x22\x20in\x20service\x20command\x20','loginName','5147625SjPGoi','26XhhDDT','number','required','\x20completed\x20in\x20','2854hQuNwD','nickname','717020pytGUb','commands','risk','3310160dJkpLl','flags','Define\x20the\x20appRef\x20under\x20appBindings\x20or\x20remove\x20target.appRef.','json','SERVICE_TREE','ctx.','Run\x20service\x20command\x20','\x20\x20SERVICE\x20TREE\x20TARGET','datasetCode','\x20\x20\x20\x20datasetCode:\x20','该命令被清单标记为高风险写入,可能产生难以恢复的业务变更。','nickName','tenantCode','description','appRef','\x20\x20\x20\x20datatable:\x20','string','padEnd','569598zJgQzR','\x20->\x20','type','\x20\x20\x20\x20sqlCode:\x20','now','userName','slice','2370879PlUasX','tree','\x20\x20\x20\x20functionName:\x20','rawFlags','params','bffId','length','username','join','flatMap','\x20requires\x20target.sqlCode.','dbtableConfig','target','service','employeeId','\x20\x20MAP\x20TO','filter','cliName','remainingArgs','map','Use\x20lovrabet\x20dataset\x20list\x20to\x20confirm\x20the\x20physical\x20table\x20name\x20or\x20add\x20target.datasetCode\x20to\x20the\x20manifest.','validation','scriptName','Unsupported\x20service\x20target\x20kind:\x20','boolean','7XsrUbR','find','\x20\x20[','datatable','name','envName','Commands:','Service\x20command\x20','push','startsWith'];a59_0x1d30=function(){return _0x2d910f;};return a59_0x1d30();}async function resolveDatasetCode(_0xa4f68d,_0x1dbb83,_0x191878){const _0x413642=a59_0x40ca;if(_0xa4f68d['datasetCode'])return _0xa4f68d[_0x413642(0x11e)];if(!_0xa4f68d[_0x413642(0x14b)])throw CliErrors['validation'](_0x413642(0x14f)+_0x1dbb83[_0x413642(0x15b)]+_0x413642(0x15e));const _0x3afa79=await listDatasets(_0x191878['appCode']),_0x3a3d70=_0x3afa79[_0x413642(0x149)](_0x529baf=>_0x529baf[_0x413642(0x13a)]?.['tableName']===_0xa4f68d[_0x413642(0x14b)]);if(!_0x3a3d70?.['code'])throw CliErrors[_0x413642(0x144)]('Cannot\x20resolve\x20datatable\x20\x22'+_0xa4f68d[_0x413642(0x14b)]+'\x22\x20to\x20a\x20datasetCode\x20in\x20app\x20'+_0x191878[_0x413642(0x165)]+'.',_0x413642(0x143));return _0x3a3d70[_0x413642(0x163)];}function applyAppBinding(_0x452f18,_0x2bb6ea,_0x39a94f){const _0xbcdfca=a59_0x40ca,_0x39c348=_0x2bb6ea[_0xbcdfca(0x13b)][_0xbcdfca(0x124)];if(!_0x39c348)return;const _0x19f90f=_0x452f18['appBindings'][_0x39c348];if(!_0x19f90f)throw CliErrors[_0xbcdfca(0x144)](_0xbcdfca(0x160)+_0x39c348+_0xbcdfca(0x16e)+_0x2bb6ea[_0xbcdfca(0x15b)]+'.',_0xbcdfca(0x118));const _0x47b4d2=_0x19f90f[_0xbcdfca(0x16a)]||_0x19f90f[_0xbcdfca(0x165)];_0x47b4d2&&!hasText(_0x39a94f[_0xbcdfca(0x16a)])&&(_0x39a94f['appcode']=_0x47b4d2),_0x19f90f['app']&&!hasText(_0x39a94f[_0xbcdfca(0x16d)])&&!hasText(_0x39a94f[_0xbcdfca(0x16a)])&&(_0x39a94f[_0xbcdfca(0x16d)]=_0x19f90f[_0xbcdfca(0x16d)]),_0x19f90f[_0xbcdfca(0x15c)]&&!hasText(_0x39a94f[_0xbcdfca(0x15c)])&&(_0x39a94f['env']=_0x19f90f['env']);}function renderDynamicCommandHelp(_0x54ead9){const _0x2c8855=a59_0x40ca,_0x481807=[_0x2c8855(0x11d),_0x2c8855(0x158)+_0x54ead9[_0x2c8855(0x13b)]['kind'],'\x20\x20\x20\x20command:\x20'+_0x54ead9[_0x2c8855(0x13b)][_0x2c8855(0x168)]];if(_0x54ead9['target'][_0x2c8855(0x11e)])_0x481807[_0x2c8855(0x150)](_0x2c8855(0x11f)+_0x54ead9[_0x2c8855(0x13b)][_0x2c8855(0x11e)]);if(_0x54ead9['target'][_0x2c8855(0x14b)])_0x481807['push'](_0x2c8855(0x125)+_0x54ead9[_0x2c8855(0x13b)][_0x2c8855(0x14b)]);if(_0x54ead9['target'][_0x2c8855(0x15d)])_0x481807['push'](_0x2c8855(0x12b)+_0x54ead9['target'][_0x2c8855(0x15d)]);if(_0x54ead9[_0x2c8855(0x13b)][_0x2c8855(0x145)])_0x481807[_0x2c8855(0x150)](_0x2c8855(0x131)+_0x54ead9[_0x2c8855(0x13b)]['scriptName']);if(_0x54ead9[_0x2c8855(0x16b)][_0x2c8855(0x135)]>0x0){_0x481807[_0x2c8855(0x150)]('',_0x2c8855(0x13e));for(const _0x1024b2 of _0x54ead9[_0x2c8855(0x16b)]){_0x481807['push'](_0x2c8855(0x161)+(_0x1024b2[_0x2c8855(0x16c)]||_0x2c8855(0x15a))+_0x2c8855(0x129)+_0x1024b2[_0x2c8855(0x13b)]+(_0x1024b2['operator']?'.'+_0x1024b2['operator']:''));}}return _0x481807[_0x2c8855(0x137)]('\x0a');}function targetPreview(_0x121825){const _0x405644=a59_0x40ca;return{'kind':_0x121825['kind'],'command':_0x121825[_0x405644(0x168)],'appRef':_0x121825[_0x405644(0x124)],'datasetCode':_0x121825[_0x405644(0x11e)],'datatable':_0x121825[_0x405644(0x14b)],'sqlCode':_0x121825['sqlCode'],'bffCode':_0x121825[_0x405644(0x156)],'bffId':_0x121825[_0x405644(0x134)],'functionName':_0x121825[_0x405644(0x145)]};}function normalizeScalarParams(_0x44a97f){const _0x21fe11=a59_0x40ca;return Object[_0x21fe11(0x155)](Object['entries'](_0x44a97f)[_0x21fe11(0x13f)](([,_0xb566f9])=>typeof _0xb566f9===_0x21fe11(0x126)||typeof _0xb566f9===_0x21fe11(0x172)));}function hasText(_0x10807e){const _0x5cdb15=a59_0x40ca;return typeof _0x10807e==='string'&&_0x10807e['trim']()[_0x5cdb15(0x135)]>0x0;}function isPrimitiveFlagDefault(_0x3c1c0d){const _0x39bf37=a59_0x40ca;return _0x3c1c0d===undefined||typeof _0x3c1c0d===_0x39bf37(0x126)||typeof _0x3c1c0d==='number'||typeof _0x3c1c0d===_0x39bf37(0x147);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x430b18,_0xa94dd2){const _0x5d653c=a60_0x3072,_0x241799=_0x430b18();while(!![]){try{const _0x4d2336=parseInt(_0x5d653c(0x6c))/0x1+parseInt(_0x5d653c(0x82))/0x2+parseInt(_0x5d653c(0x79))/0x3*(parseInt(_0x5d653c(0x6e))/0x4)+-parseInt(_0x5d653c(0x72))/0x5*(parseInt(_0x5d653c(0x74))/0x6)+parseInt(_0x5d653c(0x84))/0x7*(parseInt(_0x5d653c(0x87))/0x8)+-parseInt(_0x5d653c(0x6b))/0x9+parseInt(_0x5d653c(0x7f))/0xa*(parseInt(_0x5d653c(0x70))/0xb);if(_0x4d2336===_0xa94dd2)break;else _0x241799['push'](_0x241799['shift']());}catch(_0x18c10f){_0x241799['push'](_0x241799['shift']());}}}(a60_0x261b,0x8653e));export function adaptServiceTreeManifestForLegacyFramework(_0x21171a){const _0x5b9569=a60_0x3072,_0x1ac2b1=cloneJsonValue(_0x21171a),_0x26e343=[];if(!isObjectRecord(_0x1ac2b1))return{'manifest':_0x1ac2b1,'errors':_0x26e343};return Array[_0x5b9569(0x7b)](_0x1ac2b1[_0x5b9569(0x68)])&&_0x1ac2b1['commands'][_0x5b9569(0x66)]((_0x136dd8,_0x387a2d)=>{const _0x4a3bf5=_0x5b9569;if(!isObjectRecord(_0x136dd8))return;adaptBffTarget(_0x136dd8['target'],_0x4a3bf5(0x80)+_0x387a2d+_0x4a3bf5(0x7c),_0x26e343);}),adaptResources(_0x1ac2b1[_0x5b9569(0x67)],_0x5b9569(0x86),_0x26e343),{'manifest':_0x1ac2b1,'errors':_0x26e343};}export function toPublicServiceTreeTarget(_0x4e34bc){const _0x5ef02e=a60_0x3072,{scriptName:_0x5bcd36,..._0x4662a5}=_0x4e34bc;return typeof _0x5bcd36===_0x5ef02e(0x77)&&_0x5bcd36[_0x5ef02e(0x7a)]()&&(_0x4662a5[_0x5ef02e(0x88)]=_0x5bcd36),_0x4662a5;}export function toPublicNormalizedServiceTree(_0x58cae5){const _0x4e3590=a60_0x3072;return{..._0x58cae5,'commands':_0x58cae5[_0x4e3590(0x68)][_0x4e3590(0x78)](_0x25666c=>({..._0x25666c,'target':toPublicServiceTreeTarget(_0x25666c[_0x4e3590(0x73)])}))};}function a60_0x3072(_0x462bfa,_0x3ca47e){_0x462bfa=_0x462bfa-0x65;const _0x261bb5=a60_0x261b();let _0x3072a8=_0x261bb5[_0x462bfa];return _0x3072a8;}function adaptResources(_0x4e1a97,_0x7450,_0x6ad096){const _0x3e5503=a60_0x3072;if(!isObjectRecord(_0x4e1a97))return;for(const [_0x12ad6a,_0x33700f]of Object['entries'](_0x4e1a97)){if(!isObjectRecord(_0x33700f))continue;const _0x4fdd69=_0x7450+'.'+_0x12ad6a;if(isObjectRecord(_0x33700f[_0x3e5503(0x81)]))for(const [_0x496c6f,_0x51a674]of Object[_0x3e5503(0x6f)](_0x33700f['actions'])){if(!isObjectRecord(_0x51a674))continue;const _0x24bab0=_0x4fdd69+_0x3e5503(0x75)+_0x496c6f,_0x21eafd=isObjectRecord(_0x51a674[_0x3e5503(0x73)])&&_0x51a674[_0x3e5503(0x73)][_0x3e5503(0x7e)]==='bff';adaptBffTarget(_0x51a674[_0x3e5503(0x73)],_0x24bab0+'.target',_0x6ad096),(_0x21eafd||isBffAction(_0x51a674))&&adaptFunctionNameField(_0x51a674,_0x24bab0,_0x6ad096);}adaptResources(_0x33700f[_0x3e5503(0x67)],_0x4fdd69+_0x3e5503(0x76),_0x6ad096);}}function adaptBffTarget(_0x2e555d,_0x1cf457,_0x874772){const _0x50e263=a60_0x3072;if(!isObjectRecord(_0x2e555d)||_0x2e555d[_0x50e263(0x7e)]!==_0x50e263(0x7d))return;adaptFunctionNameField(_0x2e555d,_0x1cf457,_0x874772);}function adaptFunctionNameField(_0x5c731a,_0x11184e,_0x422ba7){const _0x1d27ff=a60_0x3072;Object[_0x1d27ff(0x6d)]['hasOwnProperty'][_0x1d27ff(0x85)](_0x5c731a,'scriptName')&&_0x422ba7['push']({'level':_0x1d27ff(0x6a),'path':_0x11184e+_0x1d27ff(0x83),'message':_0x1d27ff(0x71)});if(Object[_0x1d27ff(0x6d)]['hasOwnProperty']['call'](_0x5c731a,_0x1d27ff(0x88))){if(typeof _0x5c731a[_0x1d27ff(0x88)]!==_0x1d27ff(0x77)||!_0x5c731a[_0x1d27ff(0x88)][_0x1d27ff(0x7a)]()){_0x422ba7['push']({'level':_0x1d27ff(0x6a),'path':_0x11184e+_0x1d27ff(0x69),'message':'functionName\x20must\x20be\x20a\x20non-empty\x20string.'}),delete _0x5c731a[_0x1d27ff(0x88)];return;}_0x5c731a['scriptName']=_0x5c731a['functionName'],delete _0x5c731a[_0x1d27ff(0x88)];}}function isBffAction(_0x39c279){const _0x4c58bb=a60_0x3072;return _0x39c279[_0x4c58bb(0x7e)]==='bff'||_0x39c279['action']==='bff.exec'||_0x39c279['target']==='bff.exec';}function cloneJsonValue(_0x2705b1){const _0x2f676b=a60_0x3072;if(Array[_0x2f676b(0x7b)](_0x2705b1))return _0x2705b1[_0x2f676b(0x78)](_0x3f4187=>cloneJsonValue(_0x3f4187));if(isObjectRecord(_0x2705b1))return Object[_0x2f676b(0x65)](Object[_0x2f676b(0x6f)](_0x2705b1)[_0x2f676b(0x78)](([_0x5e2f26,_0x3ae6a9])=>[_0x5e2f26,cloneJsonValue(_0x3ae6a9)]));return _0x2705b1;}function a60_0x261b(){const _0x3b9f7d=['bff','kind','5576560nXEHOf','$.commands[','actions','617192cyuiKK','.scriptName','7fTIjOa','call','$.resources','192784lXmXOQ','functionName','fromEntries','forEach','resources','commands','.functionName','error','7680942nfhVVT','17881woqXxF','prototype','260xuqMjv','entries','11XRoLZH','Use\x20functionName;\x20scriptName\x20is\x20not\x20part\x20of\x20the\x20runtime\x20Service\x20Tree\x20contract.','137415zvoEEL','target','24DeapvQ','.actions.','.resources','string','map','27939AMfSjw','trim','isArray','].target'];a60_0x261b=function(){return _0x3b9f7d;};return a60_0x261b();}function isObjectRecord(_0x57b90d){return Boolean(_0x57b90d)&&typeof _0x57b90d==='object'&&!Array['isArray'](_0x57b90d);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a61_0x296560=a61_0x19d6;function a61_0x33a2(){const _0x57da90=['required','imported','export','Service\x20registry\x20validation\x20passed.','serviceCode','Imported','detail','service','normalizedManifest','errors','string','filePath','hash','3591387ntsUEG','updated','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','2359707AGUqUN','registryIndex','type','485149PWviPD','Local\x20service\x20not\x20found:\x20','map','target','read','从本地运行态注册表移除\x20Service\x20Tree\x20清单','entry','registry','246ybIPlv','2080RSVBmI','risk','cliPath','将\x20Service\x20Tree\x20清单导入本地运行态注册表','将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','str','commands','2323026FLsyuJ','Exported\x20service\x20','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','manifests','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','file','kind','write','registryServiceCode','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','Updated','flags','10vzNxbL','将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','report','remove','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','Local\x20service\x20code,\x20for\x20example\x20crm','entries','WRITE','import','source','version','registryPath','description','1963284NeAcBe','Service\x20manifest\x20validation\x20passed.','3318AZVQvA','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','\x20service\x20','importedAt','Service\x20Tree\x20manifest\x20file\x20path','warnings','99310TZLCDC','serviceCount','length','validate'];a61_0x33a2=function(){return _0x57da90;};return a61_0x33a2();}function a61_0x19d6(_0x577396,_0x2b8123){_0x577396=_0x577396-0x12f;const _0x33a233=a61_0x33a2();let _0x19d67b=_0x33a233[_0x577396];return _0x19d67b;}(function(_0x57d11c,_0x14f975){const _0x508791=a61_0x19d6,_0xfe3a80=_0x57d11c();while(!![]){try{const _0x4463e2=parseInt(_0x508791(0x15e))/0x1+parseInt(_0x508791(0x16e))/0x2+-parseInt(_0x508791(0x15b))/0x3+-parseInt(_0x508791(0x13f))/0x4+parseInt(_0x508791(0x147))/0x5*(parseInt(_0x508791(0x166))/0x6)+parseInt(_0x508791(0x141))/0x7*(parseInt(_0x508791(0x167))/0x8)+-parseInt(_0x508791(0x158))/0x9*(parseInt(_0x508791(0x132))/0xa);if(_0x4463e2===_0x14f975)break;else _0xfe3a80['push'](_0xfe3a80['shift']());}catch(_0x23192d){_0xfe3a80['push'](_0xfe3a80['shift']());}}}(a61_0x33a2,0xdda23));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a61_0x296560(0x173),'type':a61_0x296560(0x155),'required':!![],'description':a61_0x296560(0x145)},SERVICE_FLAG={'name':'service','type':'string','required':!![],'description':a61_0x296560(0x137),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0xd547cf){const _0x5bd0a5=a61_0x296560;return{'serviceCode':_0xd547cf[_0x5bd0a5(0x14f)],'name':_0xd547cf[_0x5bd0a5(0x153)][_0x5bd0a5(0x152)]['name'],'version':_0xd547cf[_0x5bd0a5(0x13c)],'importedAt':_0xd547cf[_0x5bd0a5(0x144)],'source':_0xd547cf['source'],'commandCount':_0xd547cf[_0x5bd0a5(0x153)][_0x5bd0a5(0x16d)][_0x5bd0a5(0x149)],'commands':_0xd547cf[_0x5bd0a5(0x153)][_0x5bd0a5(0x16d)][_0x5bd0a5(0x160)](_0x37c62e=>({'path':_0x37c62e[_0x5bd0a5(0x169)],'description':_0x37c62e[_0x5bd0a5(0x13e)],'risk':_0x37c62e['risk'],'target':toPublicServiceTreeTarget(_0x37c62e[_0x5bd0a5(0x161)]),'flags':_0x37c62e[_0x5bd0a5(0x131)][_0x5bd0a5(0x160)](_0x4fe5f6=>({'name':_0x4fe5f6['name'],'cliName':_0x4fe5f6['cliName'],'type':_0x4fe5f6[_0x5bd0a5(0x15d)],'required':_0x4fe5f6[_0x5bd0a5(0x14b)]===!![]}))}))};}function summarizeLoadedManifest(_0x2fc13a){const _0x58843f=a61_0x296560;return{'service':_0x2fc13a['normalizedManifest']?.[_0x58843f(0x152)],'version':_0x2fc13a[_0x58843f(0x153)]?.[_0x58843f(0x13c)],'commandCount':_0x2fc13a[_0x58843f(0x153)]?.['commands']['length']??0x0,'commands':_0x2fc13a[_0x58843f(0x153)]?.[_0x58843f(0x16d)][_0x58843f(0x160)](_0x26c351=>({'path':_0x26c351[_0x58843f(0x169)],'risk':_0x26c351[_0x58843f(0x168)],'target':toPublicServiceTreeTarget(_0x26c351[_0x58843f(0x161)])}))??[],'registryIndex':_0x2fc13a[_0x58843f(0x15c)],'registryServiceCode':_0x2fc13a[_0x58843f(0x176)],'errors':_0x2fc13a[_0x58843f(0x134)][_0x58843f(0x154)],'warnings':_0x2fc13a['report']['warnings']};}export const serviceDefinitions=[{'service':a61_0x296560(0x152),'command':a61_0x296560(0x14a),'description':a61_0x296560(0x15a),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0x40e484){const _0x4f8304=a61_0x296560,_0x5b1054=loadServiceManifestFromFile(_0x40e484[_0x4f8304(0x16c)](_0x4f8304(0x173)));if(!_0x5b1054[_0x4f8304(0x134)]['ok'])return{'ok':![],'data':{'file':_0x5b1054[_0x4f8304(0x156)],'hash':_0x5b1054[_0x4f8304(0x157)],'kind':_0x5b1054['kind'],'serviceCount':_0x5b1054[_0x4f8304(0x171)][_0x4f8304(0x149)],'services':_0x5b1054['manifests'][_0x4f8304(0x160)](summarizeLoadedManifest),'errors':_0x5b1054[_0x4f8304(0x134)][_0x4f8304(0x154)],'warnings':_0x5b1054[_0x4f8304(0x134)][_0x4f8304(0x146)]},'message':formatValidationFailure(_0x5b1054['report'])};if(_0x5b1054['kind']===_0x4f8304(0x165)||_0x5b1054[_0x4f8304(0x171)]['length']!==0x1)return{'ok':!![],'data':{'file':_0x5b1054['filePath'],'hash':_0x5b1054[_0x4f8304(0x157)],'kind':_0x5b1054[_0x4f8304(0x174)],'serviceCount':_0x5b1054[_0x4f8304(0x171)][_0x4f8304(0x149)],'commandCount':_0x5b1054[_0x4f8304(0x171)]['reduce']((_0x50ee61,_0x24de8a)=>_0x50ee61+(_0x24de8a[_0x4f8304(0x153)]?.[_0x4f8304(0x16d)]['length']??0x0),0x0),'services':_0x5b1054[_0x4f8304(0x171)]['map'](summarizeLoadedManifest),'warnings':_0x5b1054[_0x4f8304(0x134)][_0x4f8304(0x146)]},'message':_0x4f8304(0x14e)};return{'ok':!![],'data':{'file':_0x5b1054[_0x4f8304(0x156)],'hash':_0x5b1054['hash'],'kind':_0x5b1054[_0x4f8304(0x174)],'service':_0x5b1054[_0x4f8304(0x153)]?.[_0x4f8304(0x152)],'version':_0x5b1054['normalizedManifest']?.[_0x4f8304(0x13c)],'commandCount':_0x5b1054[_0x4f8304(0x153)]?.[_0x4f8304(0x16d)]['length']??0x0,'commands':_0x5b1054[_0x4f8304(0x153)]?.['commands'][_0x4f8304(0x160)](_0x236e7e=>({'path':_0x236e7e[_0x4f8304(0x169)],'risk':_0x236e7e[_0x4f8304(0x168)],'target':toPublicServiceTreeTarget(_0x236e7e[_0x4f8304(0x161)])})),'warnings':_0x5b1054[_0x4f8304(0x134)]['warnings']},'message':_0x4f8304(0x140)};}},{'service':'service','command':a61_0x296560(0x13a),'description':a61_0x296560(0x16a),'risk':a61_0x296560(0x175),'confirmationDescription':a61_0x296560(0x16b),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x324c11){const _0xd1316=a61_0x296560,_0x496721=loadServiceManifestFromFile(_0x324c11[_0xd1316(0x16c)](_0xd1316(0x173)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x496721[_0xd1316(0x156)],'hash':_0x496721['hash'],'kind':_0x496721[_0xd1316(0x174)],'ok':_0x496721[_0xd1316(0x134)]['ok'],'service':_0x496721[_0xd1316(0x153)]?.[_0xd1316(0x152)],'version':_0x496721[_0xd1316(0x153)]?.[_0xd1316(0x13c)],'serviceCount':_0x496721['manifests']['length'],'services':_0x496721[_0xd1316(0x171)][_0xd1316(0x160)](_0x263878=>({'service':_0x263878['normalizedManifest']?.[_0xd1316(0x152)],'version':_0x263878[_0xd1316(0x153)]?.[_0xd1316(0x13c)],'commandCount':_0x263878['normalizedManifest']?.[_0xd1316(0x16d)]['length']??0x0,'errors':_0x263878[_0xd1316(0x134)][_0xd1316(0x154)]})),'errors':_0x496721[_0xd1316(0x134)][_0xd1316(0x154)],'commandCount':_0x496721[_0xd1316(0x153)]?.[_0xd1316(0x16d)][_0xd1316(0x149)]??0x0},'description':_0xd1316(0x172)};},async 'execute'(_0x6951ae){const _0x438b3b=a61_0x296560,_0x33c658=importServiceManifest(_0x6951ae[_0x438b3b(0x16c)](_0x438b3b(0x173)));if(_0x33c658[_0x438b3b(0x138)][_0x438b3b(0x149)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x33c658[_0x438b3b(0x13d)],'imported':_0x33c658[_0x438b3b(0x14c)],'updated':_0x33c658[_0x438b3b(0x159)],'serviceCount':_0x33c658['serviceCount'],'services':_0x33c658[_0x438b3b(0x138)][_0x438b3b(0x160)](summarizeService)},'message':'Imported\x20'+_0x33c658[_0x438b3b(0x14c)]+'\x20service(s),\x20updated\x20'+_0x33c658[_0x438b3b(0x159)]+'\x20service(s).'};return{'ok':!![],'data':{'registryPath':_0x33c658[_0x438b3b(0x13d)],'replaced':_0x33c658['replaced'],'imported':_0x33c658[_0x438b3b(0x14c)],'updated':_0x33c658[_0x438b3b(0x159)],'serviceCount':_0x33c658[_0x438b3b(0x148)],'service':summarizeService(_0x33c658[_0x438b3b(0x164)])},'message':(_0x33c658['replaced']?_0x438b3b(0x130):_0x438b3b(0x150))+_0x438b3b(0x143)+_0x33c658['entry']['serviceCode']+'.'};}},{'service':a61_0x296560(0x152),'command':a61_0x296560(0x14d),'description':'将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','risk':a61_0x296560(0x175),'confirmationDescription':a61_0x296560(0x133),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x298a09){const _0x395571=a61_0x296560,_0xc92135=getLocalServiceEntry(_0x298a09[_0x395571(0x16c)](_0x395571(0x152)));return{'method':_0x395571(0x139),'url':_0x298a09['str'](_0x395571(0x173)),'body':{'service':_0x298a09[_0x395571(0x16c)](_0x395571(0x152)),'found':Boolean(_0xc92135),'version':_0xc92135?.[_0x395571(0x13c)],'source':_0xc92135?.[_0x395571(0x13b)]},'description':_0x395571(0x142)};},async 'execute'(_0x3fdd03){const _0x15e916=a61_0x296560,_0x1be44a=exportServiceManifest(_0x3fdd03[_0x15e916(0x16c)](_0x15e916(0x152)),_0x3fdd03[_0x15e916(0x16c)]('file'));return{'ok':!![],'data':{'registryPath':_0x1be44a[_0x15e916(0x13d)],'file':_0x1be44a[_0x15e916(0x156)],'service':summarizeService(_0x1be44a[_0x15e916(0x164)])},'message':_0x15e916(0x16f)+_0x1be44a[_0x15e916(0x164)][_0x15e916(0x14f)]+'.'};}},{'service':a61_0x296560(0x152),'command':'list','description':a61_0x296560(0x170),'risk':a61_0x296560(0x162),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0x1801ec=a61_0x296560,_0x299b59=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x299b59[_0x1801ec(0x149)],'services':_0x299b59['map'](summarizeService)}};}},{'service':'service','command':a61_0x296560(0x135),'description':a61_0x296560(0x163),'risk':a61_0x296560(0x175),'confirmationDescription':a61_0x296560(0x12f),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x4d0a1f){const _0x4984a8=a61_0x296560,_0x1840e0=getLocalServiceEntry(_0x4d0a1f[_0x4984a8(0x16c)](_0x4984a8(0x152)));return{'method':_0x4984a8(0x139),'url':getServiceRegistryPath(),'body':{'service':_0x4d0a1f[_0x4984a8(0x16c)](_0x4984a8(0x152)),'found':Boolean(_0x1840e0),'version':_0x1840e0?.['version'],'source':_0x1840e0?.[_0x4984a8(0x13b)]},'description':'Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json'};},async 'execute'(_0x4d2e4f){const _0x548caf=a61_0x296560,_0x20884b=removeServiceManifest(_0x4d2e4f[_0x548caf(0x16c)]('service'));return{'ok':!![],'data':{'registryPath':_0x20884b['registryPath'],'serviceCount':_0x20884b[_0x548caf(0x148)],'service':summarizeService(_0x20884b['entry'])},'message':'Removed\x20service\x20'+_0x20884b[_0x548caf(0x164)][_0x548caf(0x14f)]+'.'};}},{'service':a61_0x296560(0x152),'command':a61_0x296560(0x151),'description':a61_0x296560(0x136),'risk':a61_0x296560(0x162),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x976dca){const _0x31c9ae=a61_0x296560,_0x5e6345=getLocalServiceEntry(_0x976dca[_0x31c9ae(0x16c)](_0x31c9ae(0x152)));if(!_0x5e6345)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x976dca[_0x31c9ae(0x16c)](_0x31c9ae(0x152))},'message':_0x31c9ae(0x15f)+_0x976dca[_0x31c9ae(0x16c)](_0x31c9ae(0x152))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x5e6345),'manifest':_0x5e6345['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x5e6345['normalizedManifest'])}};}}];
|
|
1
|
+
const a61_0x4ab7ed=a61_0x1245;(function(_0x25432b,_0x17e1b8){const _0x335bd1=a61_0x1245,_0x2ac063=_0x25432b();while(!![]){try{const _0x4863d6=parseInt(_0x335bd1(0xed))/0x1+parseInt(_0x335bd1(0xd2))/0x2+parseInt(_0x335bd1(0xc6))/0x3*(parseInt(_0x335bd1(0xe4))/0x4)+parseInt(_0x335bd1(0xc5))/0x5*(-parseInt(_0x335bd1(0xc7))/0x6)+-parseInt(_0x335bd1(0xe1))/0x7*(-parseInt(_0x335bd1(0xcd))/0x8)+parseInt(_0x335bd1(0xce))/0x9*(parseInt(_0x335bd1(0xc3))/0xa)+-parseInt(_0x335bd1(0x104))/0xb*(parseInt(_0x335bd1(0xda))/0xc);if(_0x4863d6===_0x17e1b8)break;else _0x2ac063['push'](_0x2ac063['shift']());}catch(_0x1612b5){_0x2ac063['push'](_0x2ac063['shift']());}}}(a61_0x24e5,0x68176));import{exportServiceManifest,formatValidationFailure,getLocalServiceEntry,getServiceRegistryPath,importServiceManifest,listLocalServices,loadServiceManifestFromFile,removeServiceManifest}from'../../commands/service/registry.js';import{toPublicNormalizedServiceTree,toPublicServiceTreeTarget}from'../../commands/service/function-name-adapter.js';const FILE_FLAG={'name':a61_0x4ab7ed(0xfc),'type':'string','required':!![],'description':a61_0x4ab7ed(0xf3)},SERVICE_FLAG={'name':a61_0x4ab7ed(0xe7),'type':a61_0x4ab7ed(0xc4),'required':!![],'description':a61_0x4ab7ed(0xe2),'pattern':{'regex':/^[a-z][a-z0-9-]*$/,'description':'lower\x20kebab-case\x20service\x20code'}};function summarizeService(_0x39e3c1){const _0xc14ec6=a61_0x4ab7ed;return{'serviceCode':_0x39e3c1['serviceCode'],'name':_0x39e3c1['normalizedManifest'][_0xc14ec6(0xe7)][_0xc14ec6(0xf5)],'version':_0x39e3c1[_0xc14ec6(0xd0)],'importedAt':_0x39e3c1['importedAt'],'source':_0x39e3c1[_0xc14ec6(0xfa)],'commandCount':_0x39e3c1[_0xc14ec6(0xdf)][_0xc14ec6(0xf1)][_0xc14ec6(0xdc)],'commands':_0x39e3c1[_0xc14ec6(0xdf)][_0xc14ec6(0xf1)][_0xc14ec6(0xf8)](_0x5e8eb5=>({'path':_0x5e8eb5[_0xc14ec6(0xfd)],'description':_0x5e8eb5[_0xc14ec6(0xea)],'risk':_0x5e8eb5['risk'],'target':toPublicServiceTreeTarget(_0x5e8eb5[_0xc14ec6(0xdd)]),'flags':_0x5e8eb5['flags'][_0xc14ec6(0xf8)](_0x43b095=>({'name':_0x43b095[_0xc14ec6(0xf5)],'cliName':_0x43b095['cliName'],'type':_0x43b095[_0xc14ec6(0xe6)],'required':_0x43b095[_0xc14ec6(0xd8)]===!![]}))}))};}function a61_0x1245(_0xb2c024,_0x4efcbc){_0xb2c024=_0xb2c024-0xc0;const _0x24e5c3=a61_0x24e5();let _0x124580=_0x24e5c3[_0xb2c024];return _0x124580;}function a61_0x24e5(){const _0x547903=['list','length','target','warnings','normalizedManifest','str','56ydsPCS','Local\x20service\x20code,\x20for\x20example\x20crm','Service\x20registry\x20validation\x20passed.','3868zLuSxe','Preview\x20Service\x20Tree\x20export\x20from\x20~/.lovrabet/service.json','type','service','remove','registryPath','description','write','read','99687DMknqI','Validate\x20a\x20Service\x20Tree\x20JSON\x20manifest','WRITE','List\x20locally\x20imported\x20Service\x20Tree\x20manifests','commands','serviceCount','Service\x20Tree\x20manifest\x20file\x20path','Updated','name','kind','Exported\x20service\x20','map','report','source','updated','file','cliPath','\x20service\x20','entry','entries','Preview\x20Service\x20Tree\x20removal\x20from\x20~/.lovrabet/service.json','registryIndex','validate','31361QAWPFg','Preview\x20Service\x20Tree\x20import\x20into\x20~/.lovrabet/service.json','filePath','replaced','registry','2805610nishaX','string','638035LdOFkr','57xFQEQX','18CCzRlM','\x20service(s).','Local\x20service\x20not\x20found:\x20','errors','imported','Show\x20a\x20locally\x20imported\x20Service\x20Tree\x20manifest','207904PEBIyO','9PtmCDJ','\x20service(s),\x20updated\x20','version','Service\x20manifest\x20validation\x20passed.','650494NsTbFf','serviceCode','risk','将从本地\x20Service\x20Tree\x20注册表中移除指定服务清单;之后该清单提供的动态命令将不可用。','manifests','import','required','hash','516MEyuYr'];a61_0x24e5=function(){return _0x547903;};return a61_0x24e5();}function summarizeLoadedManifest(_0x2fd440){const _0x12137f=a61_0x4ab7ed;return{'service':_0x2fd440[_0x12137f(0xdf)]?.['service'],'version':_0x2fd440['normalizedManifest']?.[_0x12137f(0xd0)],'commandCount':_0x2fd440['normalizedManifest']?.[_0x12137f(0xf1)][_0x12137f(0xdc)]??0x0,'commands':_0x2fd440[_0x12137f(0xdf)]?.[_0x12137f(0xf1)][_0x12137f(0xf8)](_0xd061df=>({'path':_0xd061df[_0x12137f(0xfd)],'risk':_0xd061df[_0x12137f(0xd4)],'target':toPublicServiceTreeTarget(_0xd061df[_0x12137f(0xdd)])}))??[],'registryIndex':_0x2fd440[_0x12137f(0x102)],'registryServiceCode':_0x2fd440['registryServiceCode'],'errors':_0x2fd440[_0x12137f(0xf9)][_0x12137f(0xca)],'warnings':_0x2fd440[_0x12137f(0xf9)][_0x12137f(0xde)]};}export const serviceDefinitions=[{'service':a61_0x4ab7ed(0xe7),'command':a61_0x4ab7ed(0x103),'description':a61_0x4ab7ed(0xee),'risk':a61_0x4ab7ed(0xec),'requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'execute'(_0xdead2b){const _0x1984d3=a61_0x4ab7ed,_0x5ac711=loadServiceManifestFromFile(_0xdead2b[_0x1984d3(0xe0)](_0x1984d3(0xfc)));if(!_0x5ac711['report']['ok'])return{'ok':![],'data':{'file':_0x5ac711[_0x1984d3(0xc0)],'hash':_0x5ac711[_0x1984d3(0xd9)],'kind':_0x5ac711[_0x1984d3(0xf6)],'serviceCount':_0x5ac711[_0x1984d3(0xd6)][_0x1984d3(0xdc)],'services':_0x5ac711[_0x1984d3(0xd6)][_0x1984d3(0xf8)](summarizeLoadedManifest),'errors':_0x5ac711[_0x1984d3(0xf9)][_0x1984d3(0xca)],'warnings':_0x5ac711[_0x1984d3(0xf9)][_0x1984d3(0xde)]},'message':formatValidationFailure(_0x5ac711[_0x1984d3(0xf9)])};if(_0x5ac711[_0x1984d3(0xf6)]===_0x1984d3(0xc2)||_0x5ac711[_0x1984d3(0xd6)][_0x1984d3(0xdc)]!==0x1)return{'ok':!![],'data':{'file':_0x5ac711[_0x1984d3(0xc0)],'hash':_0x5ac711[_0x1984d3(0xd9)],'kind':_0x5ac711[_0x1984d3(0xf6)],'serviceCount':_0x5ac711[_0x1984d3(0xd6)][_0x1984d3(0xdc)],'commandCount':_0x5ac711['manifests']['reduce']((_0x16f69e,_0x4bddaa)=>_0x16f69e+(_0x4bddaa[_0x1984d3(0xdf)]?.[_0x1984d3(0xf1)][_0x1984d3(0xdc)]??0x0),0x0),'services':_0x5ac711[_0x1984d3(0xd6)]['map'](summarizeLoadedManifest),'warnings':_0x5ac711[_0x1984d3(0xf9)][_0x1984d3(0xde)]},'message':_0x1984d3(0xe3)};return{'ok':!![],'data':{'file':_0x5ac711[_0x1984d3(0xc0)],'hash':_0x5ac711[_0x1984d3(0xd9)],'kind':_0x5ac711['kind'],'service':_0x5ac711[_0x1984d3(0xdf)]?.[_0x1984d3(0xe7)],'version':_0x5ac711[_0x1984d3(0xdf)]?.[_0x1984d3(0xd0)],'commandCount':_0x5ac711[_0x1984d3(0xdf)]?.[_0x1984d3(0xf1)]['length']??0x0,'commands':_0x5ac711[_0x1984d3(0xdf)]?.[_0x1984d3(0xf1)][_0x1984d3(0xf8)](_0x41a2df=>({'path':_0x41a2df[_0x1984d3(0xfd)],'risk':_0x41a2df[_0x1984d3(0xd4)],'target':toPublicServiceTreeTarget(_0x41a2df['target'])})),'warnings':_0x5ac711['report'][_0x1984d3(0xde)]},'message':_0x1984d3(0xd1)};}},{'service':'service','command':a61_0x4ab7ed(0xd7),'description':'将\x20Service\x20Tree\x20清单导入本地运行态注册表','risk':a61_0x4ab7ed(0xeb),'confirmationDescription':'将读取指定清单并写入本地\x20Service\x20Tree\x20注册表;相同服务编码的现有清单会被更新。确认界面不会展示本地文件路径。','requiresAuth':![],'requiresAppCode':![],'flags':[FILE_FLAG],async 'dryRun'(_0x224aa6){const _0x1d6364=a61_0x4ab7ed,_0x38bd88=loadServiceManifestFromFile(_0x224aa6['str'](_0x1d6364(0xfc)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'file':_0x38bd88[_0x1d6364(0xc0)],'hash':_0x38bd88[_0x1d6364(0xd9)],'kind':_0x38bd88[_0x1d6364(0xf6)],'ok':_0x38bd88[_0x1d6364(0xf9)]['ok'],'service':_0x38bd88[_0x1d6364(0xdf)]?.[_0x1d6364(0xe7)],'version':_0x38bd88[_0x1d6364(0xdf)]?.[_0x1d6364(0xd0)],'serviceCount':_0x38bd88[_0x1d6364(0xd6)][_0x1d6364(0xdc)],'services':_0x38bd88[_0x1d6364(0xd6)][_0x1d6364(0xf8)](_0xf17814=>({'service':_0xf17814[_0x1d6364(0xdf)]?.[_0x1d6364(0xe7)],'version':_0xf17814[_0x1d6364(0xdf)]?.[_0x1d6364(0xd0)],'commandCount':_0xf17814[_0x1d6364(0xdf)]?.[_0x1d6364(0xf1)]['length']??0x0,'errors':_0xf17814['report'][_0x1d6364(0xca)]})),'errors':_0x38bd88[_0x1d6364(0xf9)][_0x1d6364(0xca)],'commandCount':_0x38bd88[_0x1d6364(0xdf)]?.[_0x1d6364(0xf1)][_0x1d6364(0xdc)]??0x0},'description':_0x1d6364(0x105)};},async 'execute'(_0x1eee97){const _0x4ca2a6=a61_0x4ab7ed,_0x33ba76=importServiceManifest(_0x1eee97['str'](_0x4ca2a6(0xfc)));if(_0x33ba76[_0x4ca2a6(0x100)][_0x4ca2a6(0xdc)]!==0x1)return{'ok':!![],'data':{'registryPath':_0x33ba76[_0x4ca2a6(0xe9)],'imported':_0x33ba76['imported'],'updated':_0x33ba76[_0x4ca2a6(0xfb)],'serviceCount':_0x33ba76[_0x4ca2a6(0xf2)],'services':_0x33ba76[_0x4ca2a6(0x100)][_0x4ca2a6(0xf8)](summarizeService)},'message':'Imported\x20'+_0x33ba76[_0x4ca2a6(0xcb)]+_0x4ca2a6(0xcf)+_0x33ba76[_0x4ca2a6(0xfb)]+_0x4ca2a6(0xc8)};return{'ok':!![],'data':{'registryPath':_0x33ba76[_0x4ca2a6(0xe9)],'replaced':_0x33ba76[_0x4ca2a6(0xc1)],'imported':_0x33ba76[_0x4ca2a6(0xcb)],'updated':_0x33ba76[_0x4ca2a6(0xfb)],'serviceCount':_0x33ba76[_0x4ca2a6(0xf2)],'service':summarizeService(_0x33ba76[_0x4ca2a6(0xff)])},'message':(_0x33ba76[_0x4ca2a6(0xc1)]?_0x4ca2a6(0xf4):'Imported')+_0x4ca2a6(0xfe)+_0x33ba76[_0x4ca2a6(0xff)][_0x4ca2a6(0xd3)]+'.'};}},{'service':a61_0x4ab7ed(0xe7),'command':'export','description':'将本地\x20Service\x20Tree\x20清单导出为\x20JSON\x20文件','risk':'write','confirmationDescription':'将把指定服务的本地\x20Service\x20Tree\x20清单写入\x20JSON\x20文件;目标位置已有文件时可能被覆盖。确认界面不会展示本地文件路径。','requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG,FILE_FLAG],async 'dryRun'(_0x24ae40){const _0x16510f=a61_0x4ab7ed,_0x229fc8=getLocalServiceEntry(_0x24ae40['str'](_0x16510f(0xe7)));return{'method':_0x16510f(0xef),'url':_0x24ae40[_0x16510f(0xe0)]('file'),'body':{'service':_0x24ae40[_0x16510f(0xe0)](_0x16510f(0xe7)),'found':Boolean(_0x229fc8),'version':_0x229fc8?.['version'],'source':_0x229fc8?.[_0x16510f(0xfa)]},'description':_0x16510f(0xe5)};},async 'execute'(_0x7c76c4){const _0x3b2633=a61_0x4ab7ed,_0x2ff67a=exportServiceManifest(_0x7c76c4[_0x3b2633(0xe0)](_0x3b2633(0xe7)),_0x7c76c4[_0x3b2633(0xe0)](_0x3b2633(0xfc)));return{'ok':!![],'data':{'registryPath':_0x2ff67a['registryPath'],'file':_0x2ff67a[_0x3b2633(0xc0)],'service':summarizeService(_0x2ff67a[_0x3b2633(0xff)])},'message':_0x3b2633(0xf7)+_0x2ff67a[_0x3b2633(0xff)]['serviceCode']+'.'};}},{'service':a61_0x4ab7ed(0xe7),'command':a61_0x4ab7ed(0xdb),'description':a61_0x4ab7ed(0xf0),'risk':a61_0x4ab7ed(0xec),'requiresAuth':![],'requiresAppCode':![],'flags':[],async 'execute'(){const _0xcfdcd3=a61_0x4ab7ed,_0x1eee89=listLocalServices();return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'total':_0x1eee89['length'],'services':_0x1eee89[_0xcfdcd3(0xf8)](summarizeService)}};}},{'service':a61_0x4ab7ed(0xe7),'command':a61_0x4ab7ed(0xe8),'description':'从本地运行态注册表移除\x20Service\x20Tree\x20清单','risk':a61_0x4ab7ed(0xeb),'confirmationDescription':a61_0x4ab7ed(0xd5),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'dryRun'(_0x52e044){const _0x49e8b9=a61_0x4ab7ed,_0x4aa465=getLocalServiceEntry(_0x52e044['str'](_0x49e8b9(0xe7)));return{'method':'WRITE','url':getServiceRegistryPath(),'body':{'service':_0x52e044[_0x49e8b9(0xe0)](_0x49e8b9(0xe7)),'found':Boolean(_0x4aa465),'version':_0x4aa465?.[_0x49e8b9(0xd0)],'source':_0x4aa465?.[_0x49e8b9(0xfa)]},'description':_0x49e8b9(0x101)};},async 'execute'(_0x32022a){const _0x3fdaaa=a61_0x4ab7ed,_0x598ff8=removeServiceManifest(_0x32022a['str']('service'));return{'ok':!![],'data':{'registryPath':_0x598ff8['registryPath'],'serviceCount':_0x598ff8[_0x3fdaaa(0xf2)],'service':summarizeService(_0x598ff8[_0x3fdaaa(0xff)])},'message':'Removed\x20service\x20'+_0x598ff8[_0x3fdaaa(0xff)][_0x3fdaaa(0xd3)]+'.'};}},{'service':a61_0x4ab7ed(0xe7),'command':'detail','description':a61_0x4ab7ed(0xcc),'risk':a61_0x4ab7ed(0xec),'requiresAuth':![],'requiresAppCode':![],'flags':[SERVICE_FLAG],async 'execute'(_0x3e7f44){const _0x459e78=a61_0x4ab7ed,_0x5f55f0=getLocalServiceEntry(_0x3e7f44[_0x459e78(0xe0)](_0x459e78(0xe7)));if(!_0x5f55f0)return{'ok':![],'data':{'registryPath':getServiceRegistryPath(),'service':_0x3e7f44[_0x459e78(0xe0)](_0x459e78(0xe7))},'message':_0x459e78(0xc9)+_0x3e7f44[_0x459e78(0xe0)](_0x459e78(0xe7))};return{'ok':!![],'data':{'registryPath':getServiceRegistryPath(),'service':summarizeService(_0x5f55f0),'manifest':_0x5f55f0['manifest'],'normalizedManifest':toPublicNormalizedServiceTree(_0x5f55f0[_0x459e78(0xdf)])}};}}];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const a62_0x3e6a77=a62_0xed35;(function(_0x512ff0,_0x162374){const _0x82774b=a62_0xed35,_0x1cc524=_0x512ff0();while(!![]){try{const _0x3368a4=-parseInt(_0x82774b(0x150))/0x1+parseInt(_0x82774b(0x160))/0x2*(parseInt(_0x82774b(0x139))/0x3)+-parseInt(_0x82774b(0x117))/0x4+-parseInt(_0x82774b(0x129))/0x5*(-parseInt(_0x82774b(0x13d))/0x6)+parseInt(_0x82774b(0x135))/0x7*(-parseInt(_0x82774b(0x126))/0x8)+parseInt(_0x82774b(0x146))/0x9*(parseInt(_0x82774b(0x11e))/0xa)+parseInt(_0x82774b(0x122))/0xb;if(_0x3368a4===_0x162374)break;else _0x1cc524['push'](_0x1cc524['shift']());}catch(_0x2e7877){_0x1cc524['push'](_0x1cc524['shift']());}}}(a62_0x595d,0xbcf5d));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';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME=a62_0x3e6a77(0x128);export function getServiceRegistryPath(_0x46226b={}){const _0x5093ad=a62_0x3e6a77;return resolve(_0x46226b[_0x5093ad(0x12a)]??homedir(),PRODUCT_CONFIG[_0x5093ad(0x167)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x5a8285={}){const _0x422a5a=a62_0x3e6a77,_0x316b71=getServiceRegistryPath(_0x5a8285);if(!existsSync(_0x316b71))return emptyServiceRegistry();try{const _0x3768be=readFileSync(_0x316b71,_0x422a5a(0x144));if(!_0x3768be[_0x422a5a(0x161)]())return emptyServiceRegistry();const _0x285fde=JSON[_0x422a5a(0x15c)](_0x3768be);if(_0x285fde['schemaVersion']!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0x422a5a(0x12c)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x285fde[_0x422a5a(0x158)]),'Remove\x20or\x20migrate\x20'+_0x316b71+'.');if(!Array['isArray'](_0x285fde[_0x422a5a(0x151)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x285fde[_0x422a5a(0x119)],'services':_0x285fde[_0x422a5a(0x151)]};}catch(_0x98c3b3){if(_0x98c3b3 instanceof Error&&_0x98c3b3[_0x422a5a(0x13a)]==='CliError')throw _0x98c3b3;throw CliErrors[_0x422a5a(0x12c)](_0x422a5a(0x118)+_0x316b71,_0x422a5a(0x14f));}}export function writeServiceRegistry(_0x53162a,_0x3583e5={}){const _0x258d0f=a62_0x3e6a77,_0x1fd611=getServiceRegistryPath(_0x3583e5),_0x10306f=dirname(_0x1fd611);!existsSync(_0x10306f)&&mkdirSync(_0x10306f,{'recursive':!![]});const _0x1ddaf7=_0x1fd611+'.tmp';try{writeFileSync(_0x1ddaf7,JSON[_0x258d0f(0x148)](_0x53162a,null,0x2)+'\x0a',{'encoding':_0x258d0f(0x144),'mode':0x180}),renameSync(_0x1ddaf7,_0x1fd611);}catch(_0x4bfe75){try{unlinkSync(_0x1ddaf7);}catch{}if(_0x4bfe75?.['code']===_0x258d0f(0x134))throw CliErrors[_0x258d0f(0x12c)](_0x258d0f(0x164)+_0x1fd611);throw _0x4bfe75;}return _0x1fd611;}export function loadServiceManifestFromFile(_0x276999){const _0xd0ca56=a62_0x3e6a77,_0x34e636=resolve(_0x276999);if(!existsSync(_0x34e636))throw CliErrors['validation'](_0xd0ca56(0x15d)+_0x276999);let _0x2dbb62;const _0x1f8d9f=readFileSync(_0x34e636,_0xd0ca56(0x144));try{_0x2dbb62=JSON[_0xd0ca56(0x15c)](_0x1f8d9f);}catch{throw CliErrors[_0xd0ca56(0x12c)]('Invalid\x20service\x20manifest\x20JSON:\x20'+_0x276999,'Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.');}const _0x2b5cea=sha256(_0x1f8d9f),_0x42ea49=extractLoadedServiceManifests(_0x2dbb62,_0x2b5cea),_0x1e591b=aggregateValidationReports(_0x42ea49),_0x2398b9=_0x42ea49[0x0];return{'filePath':_0x34e636,'hash':_0x2b5cea,'kind':isServiceRegistryLike(_0x2dbb62)?'registry':_0xd0ca56(0x11f),'manifest':_0x2398b9?.[_0xd0ca56(0x11f)]??_0x2dbb62,'report':_0x1e591b,'normalizedManifest':_0x42ea49['length']===0x1?_0x2398b9?.[_0xd0ca56(0x15a)]:undefined,'manifests':_0x42ea49};}export function importServiceManifest(_0x11fe43,_0x21c359={}){const _0x430231=a62_0x3e6a77,_0x32c0f0=loadServiceManifestFromFile(_0x11fe43);if(!_0x32c0f0[_0x430231(0x162)]['ok'])throw CliErrors[_0x430231(0x12c)](formatValidationFailure(_0x32c0f0[_0x430231(0x162)]),_0x430231(0x140));if(_0x32c0f0[_0x430231(0x155)][_0x430231(0x142)]===0x0)throw CliErrors['validation'](_0x430231(0x138),_0x430231(0x11c));const _0x31997b=readServiceRegistry(_0x21c359),_0x3a9cbe=(_0x21c359[_0x430231(0x123)]??(()=>new Date()))()[_0x430231(0x143)](),_0x2733bc=[];let _0x5d5c6a=0x0,_0x5e60ab=0x0;for(const _0x10325a of _0x32c0f0[_0x430231(0x155)]){if(!_0x10325a[_0x430231(0x15a)])continue;const _0x4e7905=_0x10325a[_0x430231(0x15a)]['service'][_0x430231(0x165)],_0x1d7c0e={'serviceCode':_0x4e7905,'version':_0x10325a[_0x430231(0x15a)][_0x430231(0x13e)],'importedAt':_0x3a9cbe,'source':{'type':_0x430231(0x137),'path':_0x32c0f0[_0x430231(0x14a)],'hash':_0x10325a[_0x430231(0x12e)]},'manifest':_0x10325a[_0x430231(0x11f)],'normalizedManifest':_0x10325a[_0x430231(0x15a)]},_0xe38e6f=_0x31997b['services'][_0x430231(0x125)](_0x3a59d0=>_0x3a59d0['serviceCode']===_0x4e7905);_0xe38e6f>=0x0?(_0x31997b['services'][_0xe38e6f]=_0x1d7c0e,_0x5e60ab++):(_0x31997b['services'][_0x430231(0x152)](_0x1d7c0e),_0x5d5c6a++),_0x2733bc[_0x430231(0x152)](_0x1d7c0e);}_0x31997b['services'][_0x430231(0x149)]((_0x15a58d,_0x18f601)=>_0x15a58d[_0x430231(0x15b)]['localeCompare'](_0x18f601[_0x430231(0x15b)])),_0x31997b[_0x430231(0x119)]=_0x3a9cbe;const _0x1fbbaa=writeServiceRegistry(_0x31997b,_0x21c359);return{'registryPath':_0x1fbbaa,'entry':_0x2733bc[0x0],'replaced':_0x2733bc[_0x430231(0x142)]===0x1?_0x5e60ab===0x1:_0x5e60ab>0x0,'entries':_0x2733bc,'imported':_0x5d5c6a,'updated':_0x5e60ab,'serviceCount':_0x31997b[_0x430231(0x151)]['length']};}export function exportServiceManifest(_0x38c6e2,_0x1bbe8f,_0x576a79={}){const _0x1f8f7f=a62_0x3e6a77,_0x13a2fc=getServiceRegistryPath(_0x576a79),_0x5f32e1=getLocalServiceEntry(_0x38c6e2,_0x576a79);if(!_0x5f32e1)throw CliErrors[_0x1f8f7f(0x12c)](_0x1f8f7f(0x168)+_0x38c6e2,_0x1f8f7f(0x11d));const _0x253a93=resolve(_0x1bbe8f),_0xc8706e=dirname(_0x253a93);return!existsSync(_0xc8706e)&&mkdirSync(_0xc8706e,{'recursive':!![]}),writeFileSync(_0x253a93,JSON[_0x1f8f7f(0x148)](_0x5f32e1[_0x1f8f7f(0x11f)],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x13a2fc,'filePath':_0x253a93,'entry':_0x5f32e1};}export function removeServiceManifest(_0x581458,_0x72d5f3={}){const _0x4cf1e9=a62_0x3e6a77,_0x500af7=readServiceRegistry(_0x72d5f3),_0x2483bb=_0x581458[_0x4cf1e9(0x161)](),_0x13c31d=_0x500af7[_0x4cf1e9(0x151)][_0x4cf1e9(0x125)](_0x1ed860=>_0x1ed860[_0x4cf1e9(0x15b)]===_0x2483bb);if(_0x13c31d<0x0)throw CliErrors[_0x4cf1e9(0x12c)](_0x4cf1e9(0x168)+_0x2483bb,_0x4cf1e9(0x11d));const [_0xb0e0cc]=_0x500af7[_0x4cf1e9(0x151)][_0x4cf1e9(0x154)](_0x13c31d,0x1),_0x23b64b=(_0x72d5f3[_0x4cf1e9(0x123)]??(()=>new Date()))()[_0x4cf1e9(0x143)]();_0x500af7[_0x4cf1e9(0x119)]=_0x23b64b;const _0x43264d=writeServiceRegistry(_0x500af7,_0x72d5f3);return{'registryPath':_0x43264d,'entry':_0xb0e0cc,'serviceCount':_0x500af7[_0x4cf1e9(0x151)][_0x4cf1e9(0x142)]};}export function listLocalServices(_0x109c37={}){return readServiceRegistry(_0x109c37)['services'];}export function getLocalServiceEntry(_0x3b65cc,_0x403b5f={}){const _0x17042d=a62_0x3e6a77;return readServiceRegistry(_0x403b5f)[_0x17042d(0x151)][_0x17042d(0x145)](_0x4b6756=>_0x4b6756[_0x17042d(0x15b)]===_0x3b65cc[_0x17042d(0x161)]());}export function listLocalServiceTrees(_0x2b68d6={}){const _0x74772a=a62_0x3e6a77;return readServiceRegistry(_0x2b68d6)[_0x74772a(0x151)][_0x74772a(0x153)](_0x4dbddc=>_0x4dbddc[_0x74772a(0x15a)]);}export function inspectServiceRegistry(_0x564ed2={}){const _0x249f71=a62_0x3e6a77,_0x371c80=getServiceRegistryPath(_0x564ed2);if(!existsSync(_0x371c80))return emptyServiceRegistryInspection(_0x371c80,_0x249f71(0x14b),![]);try{const _0x2d2658=readFileSync(_0x371c80,'utf8');if(!_0x2d2658[_0x249f71(0x161)]())return emptyServiceRegistryInspection(_0x371c80,_0x249f71(0x12d),!![]);const _0x3989ff=JSON[_0x249f71(0x15c)](_0x2d2658);if(_0x3989ff[_0x249f71(0x158)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x371c80,_0x249f71(0x116),!![]),'schemaVersion':_0x3989ff['schemaVersion'],'message':'Unsupported\x20schemaVersion:\x20'+String(_0x3989ff['schemaVersion'])};if(!Array[_0x249f71(0x11b)](_0x3989ff[_0x249f71(0x151)]))return{...emptyServiceRegistryInspection(_0x371c80,_0x249f71(0x116),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3989ff['updatedAt'],'message':_0x249f71(0x141)};const _0x55dfca=_0x3989ff[_0x249f71(0x151)][_0x249f71(0x153)](summarizeLocalServiceEntry);return{'registryPath':_0x371c80,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x3989ff[_0x249f71(0x119)],'serviceCount':_0x55dfca[_0x249f71(0x142)],'commandCount':_0x55dfca['reduce']((_0x1a0daf,_0x3f9760)=>_0x1a0daf+_0x3f9760['commandCount'],0x0),'services':_0x55dfca};}catch(_0x1c885a){return{...emptyServiceRegistryInspection(_0x371c80,'invalid',!![]),'message':_0x1c885a instanceof Error?_0x1c885a[_0x249f71(0x15e)]:String(_0x1c885a)};}}export function formatValidationFailure(_0x47620a){const _0x27dce3=a62_0x3e6a77,_0x143ed2=_0x47620a[_0x27dce3(0x157)][_0x27dce3(0x153)](_0xebffdf=>_0xebffdf[_0x27dce3(0x12b)]+':\x20'+_0xebffdf[_0x27dce3(0x15e)]);return _0x27dce3(0x136)+_0x143ed2[_0x27dce3(0x166)]('\x0a');}function extractLoadedServiceManifests(_0x171a36,_0x1a2542){const _0x11f361=a62_0x3e6a77;if(!isServiceRegistryLike(_0x171a36)){const _0x2ef66a=_0x171a36,{manifest:_0x20b4bd,errors:_0x4a7c47}=adaptServiceTreeManifestForLegacyFramework(_0x2ef66a),_0x1ab178=validateServiceTreeManifest(_0x20b4bd),_0x3d7b17=mergeValidationErrors(_0x1ab178,_0x4a7c47);return[{'manifest':_0x2ef66a,'report':_0x3d7b17,'normalizedManifest':_0x3d7b17['ok']?normalizeServiceTreeManifest(_0x20b4bd):undefined,'sourceHash':_0x1a2542}];}return _0x171a36['services'][_0x11f361(0x153)]((_0x157da6,_0x513ddd)=>{const _0x54fcfc=_0x11f361,_0x5613ac=isObjectRecord(_0x157da6)?_0x157da6[_0x54fcfc(0x11f)]:undefined,{manifest:_0x384f3d,errors:_0x14afa0}=adaptServiceTreeManifestForLegacyFramework(_0x5613ac),_0x505fc4=validateServiceTreeManifest(_0x384f3d),_0x744371=mergeValidationErrors(_0x505fc4,_0x14afa0),_0x5acef7=isObjectRecord(_0x157da6)&&typeof _0x157da6[_0x54fcfc(0x15b)]===_0x54fcfc(0x14d)?_0x157da6[_0x54fcfc(0x15b)]:undefined;return{'manifest':_0x5613ac,'report':_0x744371,'normalizedManifest':_0x744371['ok']?normalizeServiceTreeManifest(_0x384f3d):undefined,'sourceHash':sha256(JSON['stringify'](_0x5613ac,null,0x2)+'\x0a'),'registryIndex':_0x513ddd,'registryServiceCode':_0x5acef7};});}function a62_0xed35(_0x33959c,_0x498aed){_0x33959c=_0x33959c-0x113;const _0x595dd6=a62_0x595d();let _0xed3577=_0x595dd6[_0x33959c];return _0xed3577;}function mergeValidationErrors(_0x1bee32,_0x2b1776){const _0x4d6ac2=a62_0x3e6a77,_0x228a20=_0x1bee32[_0x4d6ac2(0x157)][_0x4d6ac2(0x153)](_0x3d37c6=>_0x3d37c6['message']===_0x4d6ac2(0x159)?{..._0x3d37c6,'message':_0x4d6ac2(0x11a)}:_0x3d37c6),_0x537163=[..._0x2b1776,..._0x228a20];return{'ok':_0x537163[_0x4d6ac2(0x142)]===0x0,'errors':_0x537163,'warnings':_0x1bee32[_0x4d6ac2(0x156)]};}function aggregateValidationReports(_0x43334d){const _0xdb7c6a=a62_0x3e6a77,_0x2f5e4a=_0x43334d[_0xdb7c6a(0x13f)](_0x2d882f=>_0x2d882f[_0xdb7c6a(0x120)]===undefined?_0x2d882f[_0xdb7c6a(0x162)][_0xdb7c6a(0x157)]:_0x2d882f[_0xdb7c6a(0x162)]['errors'][_0xdb7c6a(0x153)](_0x50a70=>({..._0x50a70,'path':prefixRegistryIssuePath(_0x2d882f[_0xdb7c6a(0x120)],_0x50a70[_0xdb7c6a(0x12b)])}))),_0x268a23=_0x43334d[_0xdb7c6a(0x13f)](_0x173079=>_0x173079[_0xdb7c6a(0x120)]===undefined?_0x173079[_0xdb7c6a(0x162)][_0xdb7c6a(0x156)]:_0x173079[_0xdb7c6a(0x162)][_0xdb7c6a(0x156)][_0xdb7c6a(0x153)](_0x173c24=>({..._0x173c24,'path':prefixRegistryIssuePath(_0x173079['registryIndex'],_0x173c24[_0xdb7c6a(0x12b)])})));return{'ok':_0x2f5e4a[_0xdb7c6a(0x142)]===0x0,'errors':_0x2f5e4a,'warnings':_0x268a23};}function a62_0x595d(){const _0x3b8ff3=['Service\x20registry\x20has\x20no\x20services\x20to\x20import.','4633998ZFCXkW','name','command','].manifest.','354PhwcxL','version','flatMap','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','services\x20must\x20be\x20an\x20array','length','toISOString','utf8','find','531MqTlmU','$.services[','stringify','sort','filePath','missing','digest','string','].manifest','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','1355181gxLfxZ','services','push','map','splice','manifests','warnings','errors','schemaVersion','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','normalizedManifest','serviceCode','parse','Service\x20manifest\x20file\x20not\x20found:\x20','message','object','2bgHCph','trim','report','importedAt','Cannot\x20write\x20service\x20registry:\x20','code','join','homeDirName','Local\x20service\x20not\x20found:\x20','startsWith','description','update','invalid','3197220xUQDSm','Invalid\x20service\x20registry\x20JSON:\x20','updatedAt','bff\x20target\x20requires\x20functionName.','isArray','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','148910TVwsaX','manifest','registryIndex','hex','1082257IVNfpF','now','kind','findIndex','48BHLvvB','sha256','service.json','88185JZeqnb','homeDir','path','validation','empty','sourceHash','target','source','risk','service','slice','ENOENT','739361LamEZI','Service\x20manifest\x20validation\x20failed:\x0a','file'];a62_0x595d=function(){return _0x3b8ff3;};return a62_0x595d();}function prefixRegistryIssuePath(_0x2464ce,_0x2fc59e){const _0x194a64=a62_0x3e6a77;if(_0x2fc59e==='$')return'$.services['+_0x2464ce+_0x194a64(0x14e);if(_0x2fc59e['startsWith']('$.'))return _0x194a64(0x147)+_0x2464ce+_0x194a64(0x14e)+_0x2fc59e[_0x194a64(0x133)](0x1);if(_0x2fc59e[_0x194a64(0x113)]('$['))return _0x194a64(0x147)+_0x2464ce+_0x194a64(0x14e)+_0x2fc59e[_0x194a64(0x133)](0x1);return _0x194a64(0x147)+_0x2464ce+_0x194a64(0x13c)+_0x2fc59e;}function isServiceRegistryLike(_0x10717b){const _0x234d18=a62_0x3e6a77;return isObjectRecord(_0x10717b)&&_0x10717b[_0x234d18(0x158)]===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x234d18(0x11b)](_0x10717b[_0x234d18(0x151)]);}function isObjectRecord(_0x9943f5){const _0x34375d=a62_0x3e6a77;return Boolean(_0x9943f5)&&typeof _0x9943f5===_0x34375d(0x15f)&&!Array[_0x34375d(0x11b)](_0x9943f5);}function emptyServiceRegistryInspection(_0x47bd9c,_0x274164,_0x11d088){return{'registryPath':_0x47bd9c,'exists':_0x11d088,'status':_0x274164,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x2f73ab){const _0x1d1515=a62_0x3e6a77,_0x24671b=_0x2f73ab['normalizedManifest'],_0x2637b9=_0x24671b['commands'][_0x1d1515(0x153)](_0x25c990=>({'path':_0x25c990['cliPath'],'description':_0x25c990[_0x1d1515(0x114)],'risk':_0x25c990[_0x1d1515(0x131)],'targetKind':_0x25c990['target'][_0x1d1515(0x124)],'targetCommand':_0x25c990[_0x1d1515(0x12f)][_0x1d1515(0x13b)]}));return{'serviceCode':_0x2f73ab['serviceCode'],'name':_0x24671b['service'][_0x1d1515(0x13a)],'description':_0x24671b[_0x1d1515(0x132)][_0x1d1515(0x114)],'version':_0x2f73ab[_0x1d1515(0x13e)],'importedAt':_0x2f73ab[_0x1d1515(0x163)],'source':_0x2f73ab[_0x1d1515(0x130)],'commandCount':_0x2637b9[_0x1d1515(0x142)],'commands':_0x2637b9};}function sha256(_0x12068d){const _0x41d9e4=a62_0x3e6a77;return createHash(_0x41d9e4(0x127))[_0x41d9e4(0x115)](_0x12068d)[_0x41d9e4(0x14c)](_0x41d9e4(0x121));}
|
|
1
|
+
(function(_0x56c56a,_0x4cf880){const _0x5aeab0=a62_0x270a,_0x10a3e9=_0x56c56a();while(!![]){try{const _0x18e54c=parseInt(_0x5aeab0(0x144))/0x1+-parseInt(_0x5aeab0(0x108))/0x2*(parseInt(_0x5aeab0(0x10e))/0x3)+-parseInt(_0x5aeab0(0x143))/0x4*(parseInt(_0x5aeab0(0x138))/0x5)+-parseInt(_0x5aeab0(0x12e))/0x6*(parseInt(_0x5aeab0(0x153))/0x7)+parseInt(_0x5aeab0(0x10c))/0x8*(parseInt(_0x5aeab0(0x115))/0x9)+-parseInt(_0x5aeab0(0x158))/0xa*(parseInt(_0x5aeab0(0x136))/0xb)+parseInt(_0x5aeab0(0x147))/0xc;if(_0x18e54c===_0x4cf880)break;else _0x10a3e9['push'](_0x10a3e9['shift']());}catch(_0x5be897){_0x10a3e9['push'](_0x10a3e9['shift']());}}}(a62_0x5597,0xc4908));import{createHash}from'node:crypto';function a62_0x270a(_0xfde32c,_0x34739e){_0xfde32c=_0xfde32c-0x101;const _0x5597d7=a62_0x5597();let _0x270a1d=_0x5597d7[_0xfde32c];return _0x270a1d;}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';import{adaptServiceTreeManifestForLegacyFramework}from'../../commands/service/function-name-adapter.js';export const SERVICE_REGISTRY_SCHEMA_VERSION=0x1;export const SERVICE_REGISTRY_FILE_NAME='service.json';export function getServiceRegistryPath(_0x2e4772={}){const _0x3e1cd2=a62_0x270a;return resolve(_0x2e4772[_0x3e1cd2(0x11e)]??homedir(),PRODUCT_CONFIG[_0x3e1cd2(0x140)],SERVICE_REGISTRY_FILE_NAME);}export function emptyServiceRegistry(){return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'services':[]};}export function readServiceRegistry(_0x1db4f9={}){const _0xb1f206=a62_0x270a,_0x530bc3=getServiceRegistryPath(_0x1db4f9);if(!existsSync(_0x530bc3))return emptyServiceRegistry();try{const _0x3d2480=readFileSync(_0x530bc3,'utf8');if(!_0x3d2480[_0xb1f206(0x13d)]())return emptyServiceRegistry();const _0x2ee147=JSON['parse'](_0x3d2480);if(_0x2ee147[_0xb1f206(0x101)]!==SERVICE_REGISTRY_SCHEMA_VERSION)throw CliErrors[_0xb1f206(0x118)]('Unsupported\x20service\x20registry\x20schemaVersion:\x20'+String(_0x2ee147[_0xb1f206(0x101)]),_0xb1f206(0x157)+_0x530bc3+'.');if(!Array[_0xb1f206(0x137)](_0x2ee147[_0xb1f206(0x12d)]))return emptyServiceRegistry();return{'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2ee147[_0xb1f206(0x15a)],'services':_0x2ee147['services']};}catch(_0x4a1fcc){if(_0x4a1fcc instanceof Error&&_0x4a1fcc[_0xb1f206(0x14d)]===_0xb1f206(0x10a))throw _0x4a1fcc;throw CliErrors['validation'](_0xb1f206(0x152)+_0x530bc3,_0xb1f206(0x11b));}}export function writeServiceRegistry(_0xeda3f0,_0x535e06={}){const _0x1d53f0=a62_0x270a,_0x11f531=getServiceRegistryPath(_0x535e06),_0x222350=dirname(_0x11f531);!existsSync(_0x222350)&&mkdirSync(_0x222350,{'recursive':!![]});const _0x5098c7=_0x11f531+_0x1d53f0(0x131);try{writeFileSync(_0x5098c7,JSON[_0x1d53f0(0x102)](_0xeda3f0,null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),renameSync(_0x5098c7,_0x11f531);}catch(_0x9ed08a){try{unlinkSync(_0x5098c7);}catch{}if(_0x9ed08a?.[_0x1d53f0(0x125)]===_0x1d53f0(0x132))throw CliErrors['validation'](_0x1d53f0(0x11d)+_0x11f531);throw _0x9ed08a;}return _0x11f531;}export function loadServiceManifestFromFile(_0x23d759){const _0x4dd3d0=a62_0x270a,_0x55fa0f=resolve(_0x23d759);if(!existsSync(_0x55fa0f))throw CliErrors[_0x4dd3d0(0x118)](_0x4dd3d0(0x134)+_0x23d759);let _0xdf1d0c;const _0x509cf7=readFileSync(_0x55fa0f,_0x4dd3d0(0x128));try{_0xdf1d0c=JSON[_0x4dd3d0(0x112)](_0x509cf7);}catch{throw CliErrors[_0x4dd3d0(0x118)](_0x4dd3d0(0x14f)+_0x23d759,_0x4dd3d0(0x156));}const _0x45341f=sha256(_0x509cf7),_0x1bf74c=extractLoadedServiceManifests(_0xdf1d0c,_0x45341f),_0x58b730=aggregateValidationReports(_0x1bf74c),_0x7be125=_0x1bf74c[0x0];return{'filePath':_0x55fa0f,'hash':_0x45341f,'kind':isServiceRegistryLike(_0xdf1d0c)?_0x4dd3d0(0x124):_0x4dd3d0(0x13a),'manifest':_0x7be125?.[_0x4dd3d0(0x13a)]??_0xdf1d0c,'report':_0x58b730,'normalizedManifest':_0x1bf74c[_0x4dd3d0(0x12a)]===0x1?_0x7be125?.[_0x4dd3d0(0x146)]:undefined,'manifests':_0x1bf74c};}export function importServiceManifest(_0x5177ec,_0x1a41e4={}){const _0x5693de=a62_0x270a,_0x5dbed0=loadServiceManifestFromFile(_0x5177ec);if(!_0x5dbed0[_0x5693de(0x109)]['ok'])throw CliErrors[_0x5693de(0x118)](formatValidationFailure(_0x5dbed0[_0x5693de(0x109)]),_0x5693de(0x11a));if(_0x5dbed0[_0x5693de(0x11c)][_0x5693de(0x12a)]===0x0)throw CliErrors[_0x5693de(0x118)]('Service\x20registry\x20has\x20no\x20services\x20to\x20import.',_0x5693de(0x12b));const _0x35ba95=readServiceRegistry(_0x1a41e4),_0xee6739=(_0x1a41e4[_0x5693de(0x13c)]??(()=>new Date()))()[_0x5693de(0x123)](),_0x35a991=[];let _0x2cb359=0x0,_0x321a57=0x0;for(const _0x256ee0 of _0x5dbed0[_0x5693de(0x11c)]){if(!_0x256ee0[_0x5693de(0x146)])continue;const _0x273d2d=_0x256ee0['normalizedManifest']['service'][_0x5693de(0x125)],_0x25c0e8={'serviceCode':_0x273d2d,'version':_0x256ee0[_0x5693de(0x146)]['version'],'importedAt':_0xee6739,'source':{'type':_0x5693de(0x110),'path':_0x5dbed0[_0x5693de(0x150)],'hash':_0x256ee0[_0x5693de(0x130)]},'manifest':_0x256ee0['manifest'],'normalizedManifest':_0x256ee0[_0x5693de(0x146)]},_0x16d939=_0x35ba95[_0x5693de(0x12d)][_0x5693de(0x12c)](_0x82e106=>_0x82e106[_0x5693de(0x126)]===_0x273d2d);_0x16d939>=0x0?(_0x35ba95[_0x5693de(0x12d)][_0x16d939]=_0x25c0e8,_0x321a57++):(_0x35ba95[_0x5693de(0x12d)][_0x5693de(0x155)](_0x25c0e8),_0x2cb359++),_0x35a991['push'](_0x25c0e8);}_0x35ba95[_0x5693de(0x12d)]['sort']((_0x3dd86b,_0x4bbb3c)=>_0x3dd86b[_0x5693de(0x126)][_0x5693de(0x135)](_0x4bbb3c['serviceCode'])),_0x35ba95[_0x5693de(0x15a)]=_0xee6739;const _0x163b7a=writeServiceRegistry(_0x35ba95,_0x1a41e4);return{'registryPath':_0x163b7a,'entry':_0x35a991[0x0],'replaced':_0x35a991[_0x5693de(0x12a)]===0x1?_0x321a57===0x1:_0x321a57>0x0,'entries':_0x35a991,'imported':_0x2cb359,'updated':_0x321a57,'serviceCount':_0x35ba95[_0x5693de(0x12d)]['length']};}export function exportServiceManifest(_0x45669e,_0x36e642,_0x59906d={}){const _0x42eb85=a62_0x270a,_0x11e4c0=getServiceRegistryPath(_0x59906d),_0x42d8c3=getLocalServiceEntry(_0x45669e,_0x59906d);if(!_0x42d8c3)throw CliErrors['validation'](_0x42eb85(0x151)+_0x45669e,'Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.');const _0x4a9734=resolve(_0x36e642),_0x27e475=dirname(_0x4a9734);return!existsSync(_0x27e475)&&mkdirSync(_0x27e475,{'recursive':!![]}),writeFileSync(_0x4a9734,JSON[_0x42eb85(0x102)](_0x42d8c3[_0x42eb85(0x13a)],null,0x2)+'\x0a',{'encoding':'utf8','mode':0x180}),{'registryPath':_0x11e4c0,'filePath':_0x4a9734,'entry':_0x42d8c3};}export function removeServiceManifest(_0x129e13,_0x1fca5d={}){const _0x3d0ee3=a62_0x270a,_0x5e4f25=readServiceRegistry(_0x1fca5d),_0x3e19c7=_0x129e13['trim'](),_0xa82222=_0x5e4f25[_0x3d0ee3(0x12d)][_0x3d0ee3(0x12c)](_0x361535=>_0x361535[_0x3d0ee3(0x126)]===_0x3e19c7);if(_0xa82222<0x0)throw CliErrors[_0x3d0ee3(0x118)]('Local\x20service\x20not\x20found:\x20'+_0x3e19c7,_0x3d0ee3(0x11f));const [_0x2ac06]=_0x5e4f25[_0x3d0ee3(0x12d)][_0x3d0ee3(0x104)](_0xa82222,0x1),_0x59f294=(_0x1fca5d[_0x3d0ee3(0x13c)]??(()=>new Date()))()[_0x3d0ee3(0x123)]();_0x5e4f25['updatedAt']=_0x59f294;const _0x45651a=writeServiceRegistry(_0x5e4f25,_0x1fca5d);return{'registryPath':_0x45651a,'entry':_0x2ac06,'serviceCount':_0x5e4f25[_0x3d0ee3(0x12d)][_0x3d0ee3(0x12a)]};}export function listLocalServices(_0x59c36f={}){const _0x21e750=a62_0x270a;return readServiceRegistry(_0x59c36f)[_0x21e750(0x12d)];}export function getLocalServiceEntry(_0x18eb9c,_0x3e9aee={}){const _0x38937f=a62_0x270a;return readServiceRegistry(_0x3e9aee)[_0x38937f(0x12d)][_0x38937f(0x139)](_0x4a0293=>_0x4a0293[_0x38937f(0x126)]===_0x18eb9c['trim']());}export function listLocalServiceTrees(_0x138ed8={}){const _0x1131db=a62_0x270a;return readServiceRegistry(_0x138ed8)[_0x1131db(0x12d)][_0x1131db(0x145)](_0x1c5322=>_0x1c5322[_0x1131db(0x146)]);}export function inspectServiceRegistry(_0x526711={}){const _0x48ecb3=a62_0x270a,_0x362706=getServiceRegistryPath(_0x526711);if(!existsSync(_0x362706))return emptyServiceRegistryInspection(_0x362706,_0x48ecb3(0x10b),![]);try{const _0x23e2b4=readFileSync(_0x362706,_0x48ecb3(0x128));if(!_0x23e2b4[_0x48ecb3(0x13d)]())return emptyServiceRegistryInspection(_0x362706,_0x48ecb3(0x113),!![]);const _0x2efde5=JSON[_0x48ecb3(0x112)](_0x23e2b4);if(_0x2efde5[_0x48ecb3(0x101)]!==SERVICE_REGISTRY_SCHEMA_VERSION)return{...emptyServiceRegistryInspection(_0x362706,_0x48ecb3(0x141),!![]),'schemaVersion':_0x2efde5['schemaVersion'],'message':_0x48ecb3(0x119)+String(_0x2efde5[_0x48ecb3(0x101)])};if(!Array[_0x48ecb3(0x137)](_0x2efde5[_0x48ecb3(0x12d)]))return{...emptyServiceRegistryInspection(_0x362706,_0x48ecb3(0x141),!![]),'schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2efde5[_0x48ecb3(0x15a)],'message':_0x48ecb3(0x122)};const _0x38d46f=_0x2efde5[_0x48ecb3(0x12d)]['map'](summarizeLocalServiceEntry);return{'registryPath':_0x362706,'exists':!![],'status':'ok','schemaVersion':SERVICE_REGISTRY_SCHEMA_VERSION,'updatedAt':_0x2efde5[_0x48ecb3(0x15a)],'serviceCount':_0x38d46f[_0x48ecb3(0x12a)],'commandCount':_0x38d46f[_0x48ecb3(0x14a)]((_0x42a5c8,_0x55ad44)=>_0x42a5c8+_0x55ad44[_0x48ecb3(0x14e)],0x0),'services':_0x38d46f};}catch(_0x1c64d1){return{...emptyServiceRegistryInspection(_0x362706,_0x48ecb3(0x141),!![]),'message':_0x1c64d1 instanceof Error?_0x1c64d1[_0x48ecb3(0x117)]:String(_0x1c64d1)};}}function a62_0x5597(){const _0x3829ce=['registry','code','serviceCode','command','utf8','importedAt','length','Add\x20at\x20least\x20one\x20service\x20manifest,\x20then\x20run\x20service\x20import\x20again.','findIndex','services','6URSpRP','Service\x20manifest\x20validation\x20failed:\x0a','sourceHash','.tmp','ENOENT','$.services[','Service\x20manifest\x20file\x20not\x20found:\x20','localeCompare','3361391pSUVDK','isArray','10WIqzso','find','manifest','description','now','trim','target','warnings','homeDirName','invalid','version','2444460SGsHus','918931TZrhui','map','normalizedManifest','15970488XBHSaA','flatMap','join','reduce','slice','kind','name','commandCount','Invalid\x20service\x20manifest\x20JSON:\x20','filePath','Local\x20service\x20not\x20found:\x20','Invalid\x20service\x20registry\x20JSON:\x20','78967gktsxs','startsWith','push','Fix\x20the\x20JSON\x20syntax\x20and\x20run\x20service\x20validate\x20again.','Remove\x20or\x20migrate\x20','20kXAoeX','registryIndex','updatedAt','schemaVersion','stringify','cliPath','splice','service','bff\x20target\x20requires\x20bffCode,\x20bffId,\x20or\x20scriptName.','errors','46zcRVrr','report','CliError','missing','16YIfbms','].manifest','20442JzwuNc','path','file','source','parse','empty','digest','2505231osAJuY','update','message','validation','Unsupported\x20schemaVersion:\x20','Fix\x20the\x20service\x20manifest\x20and\x20run\x20service\x20validate\x20again.','Fix\x20the\x20JSON\x20file\x20or\x20move\x20it\x20aside\x20and\x20import\x20services\x20again.','manifests','Cannot\x20write\x20service\x20registry:\x20','homeDir','Run\x20lovrabet\x20service\x20list\x20to\x20see\x20imported\x20services.','bff\x20target\x20requires\x20functionName.','hex','services\x20must\x20be\x20an\x20array','toISOString'];a62_0x5597=function(){return _0x3829ce;};return a62_0x5597();}export function formatValidationFailure(_0x521cb5){const _0x491586=a62_0x270a,_0x425022=_0x521cb5[_0x491586(0x107)][_0x491586(0x145)](_0x565b6e=>_0x565b6e[_0x491586(0x10f)]+':\x20'+_0x565b6e[_0x491586(0x117)]);return _0x491586(0x12f)+_0x425022[_0x491586(0x149)]('\x0a');}function extractLoadedServiceManifests(_0x38e325,_0x5d71e5){const _0x1e5e88=a62_0x270a;if(!isServiceRegistryLike(_0x38e325)){const _0x57390f=_0x38e325,{manifest:_0x2089de,errors:_0x418e65}=adaptServiceTreeManifestForLegacyFramework(_0x57390f),_0x43538f=validateServiceTreeManifest(_0x2089de),_0x46d36b=mergeValidationErrors(_0x43538f,_0x418e65);return[{'manifest':_0x57390f,'report':_0x46d36b,'normalizedManifest':_0x46d36b['ok']?normalizeServiceTreeManifest(_0x2089de):undefined,'sourceHash':_0x5d71e5}];}return _0x38e325[_0x1e5e88(0x12d)][_0x1e5e88(0x145)]((_0x4d7aef,_0x330e35)=>{const _0x45e10a=_0x1e5e88,_0xe70bca=isObjectRecord(_0x4d7aef)?_0x4d7aef[_0x45e10a(0x13a)]:undefined,{manifest:_0x1a6cd2,errors:_0x397bfe}=adaptServiceTreeManifestForLegacyFramework(_0xe70bca),_0x68f2e4=validateServiceTreeManifest(_0x1a6cd2),_0x360f6f=mergeValidationErrors(_0x68f2e4,_0x397bfe),_0x4684d2=isObjectRecord(_0x4d7aef)&&typeof _0x4d7aef['serviceCode']==='string'?_0x4d7aef[_0x45e10a(0x126)]:undefined;return{'manifest':_0xe70bca,'report':_0x360f6f,'normalizedManifest':_0x360f6f['ok']?normalizeServiceTreeManifest(_0x1a6cd2):undefined,'sourceHash':sha256(JSON['stringify'](_0xe70bca,null,0x2)+'\x0a'),'registryIndex':_0x330e35,'registryServiceCode':_0x4684d2};});}function mergeValidationErrors(_0x40893e,_0x413f28){const _0x5d6e81=a62_0x270a,_0x5147c3=_0x40893e[_0x5d6e81(0x107)][_0x5d6e81(0x145)](_0x388fbf=>_0x388fbf[_0x5d6e81(0x117)]===_0x5d6e81(0x106)?{..._0x388fbf,'message':_0x5d6e81(0x120)}:_0x388fbf),_0x2c2606=[..._0x413f28,..._0x5147c3];return{'ok':_0x2c2606['length']===0x0,'errors':_0x2c2606,'warnings':_0x40893e['warnings']};}function aggregateValidationReports(_0x2f3599){const _0x4b0829=a62_0x270a,_0x5419f8=_0x2f3599['flatMap'](_0x5c8294=>_0x5c8294[_0x4b0829(0x159)]===undefined?_0x5c8294['report'][_0x4b0829(0x107)]:_0x5c8294['report'][_0x4b0829(0x107)][_0x4b0829(0x145)](_0x43fbc6=>({..._0x43fbc6,'path':prefixRegistryIssuePath(_0x5c8294[_0x4b0829(0x159)],_0x43fbc6['path'])}))),_0x14283a=_0x2f3599[_0x4b0829(0x148)](_0x29014d=>_0x29014d[_0x4b0829(0x159)]===undefined?_0x29014d[_0x4b0829(0x109)][_0x4b0829(0x13f)]:_0x29014d[_0x4b0829(0x109)][_0x4b0829(0x13f)][_0x4b0829(0x145)](_0x12a88c=>({..._0x12a88c,'path':prefixRegistryIssuePath(_0x29014d[_0x4b0829(0x159)],_0x12a88c[_0x4b0829(0x10f)])})));return{'ok':_0x5419f8['length']===0x0,'errors':_0x5419f8,'warnings':_0x14283a};}function prefixRegistryIssuePath(_0x238ea9,_0x4a822){const _0x3d29c7=a62_0x270a;if(_0x4a822==='$')return'$.services['+_0x238ea9+_0x3d29c7(0x10d);if(_0x4a822[_0x3d29c7(0x154)]('$.'))return _0x3d29c7(0x133)+_0x238ea9+_0x3d29c7(0x10d)+_0x4a822[_0x3d29c7(0x14b)](0x1);if(_0x4a822[_0x3d29c7(0x154)]('$['))return _0x3d29c7(0x133)+_0x238ea9+_0x3d29c7(0x10d)+_0x4a822[_0x3d29c7(0x14b)](0x1);return _0x3d29c7(0x133)+_0x238ea9+'].manifest.'+_0x4a822;}function isServiceRegistryLike(_0x2c8813){const _0x121e0a=a62_0x270a;return isObjectRecord(_0x2c8813)&&_0x2c8813['schemaVersion']===SERVICE_REGISTRY_SCHEMA_VERSION&&Array[_0x121e0a(0x137)](_0x2c8813[_0x121e0a(0x12d)]);}function isObjectRecord(_0x42310f){const _0x24ab84=a62_0x270a;return Boolean(_0x42310f)&&typeof _0x42310f==='object'&&!Array[_0x24ab84(0x137)](_0x42310f);}function emptyServiceRegistryInspection(_0x430198,_0x322678,_0x57eb53){return{'registryPath':_0x430198,'exists':_0x57eb53,'status':_0x322678,'serviceCount':0x0,'commandCount':0x0,'services':[]};}function summarizeLocalServiceEntry(_0x666ff9){const _0x11fe1e=a62_0x270a,_0x3a06a3=_0x666ff9[_0x11fe1e(0x146)],_0x268c3e=_0x3a06a3['commands']['map'](_0x2e0d56=>({'path':_0x2e0d56[_0x11fe1e(0x103)],'description':_0x2e0d56[_0x11fe1e(0x13b)],'risk':_0x2e0d56['risk'],'targetKind':_0x2e0d56[_0x11fe1e(0x13e)][_0x11fe1e(0x14c)],'targetCommand':_0x2e0d56[_0x11fe1e(0x13e)][_0x11fe1e(0x127)]}));return{'serviceCode':_0x666ff9['serviceCode'],'name':_0x3a06a3[_0x11fe1e(0x105)][_0x11fe1e(0x14d)],'description':_0x3a06a3[_0x11fe1e(0x105)][_0x11fe1e(0x13b)],'version':_0x666ff9[_0x11fe1e(0x142)],'importedAt':_0x666ff9[_0x11fe1e(0x129)],'source':_0x666ff9[_0x11fe1e(0x111)],'commandCount':_0x268c3e['length'],'commands':_0x268c3e};}function sha256(_0x408c46){const _0x193890=a62_0x270a;return createHash('sha256')[_0x193890(0x116)](_0x408c46)[_0x193890(0x114)](_0x193890(0x121));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a63_0x4ad9(_0x13296e,_0x20ea93){_0x13296e=_0x13296e-0x1be;const _0x17a593=a63_0x17a5();let _0x4ad96f=_0x17a593[_0x13296e];return _0x4ad96f;}const a63_0x1f99e3=a63_0x4ad9;(function(_0xf7b3da,_0x1b6c4f){const _0x10c0d8=a63_0x4ad9,_0x51daf6=_0xf7b3da();while(!![]){try{const _0x513d74=-parseInt(_0x10c0d8(0x1cc))/0x1+-parseInt(_0x10c0d8(0x1d3))/0x2*(parseInt(_0x10c0d8(0x1e1))/0x3)+-parseInt(_0x10c0d8(0x1df))/0x4+parseInt(_0x10c0d8(0x1dc))/0x5*(-parseInt(_0x10c0d8(0x1ce))/0x6)+parseInt(_0x10c0d8(0x1da))/0x7*(-parseInt(_0x10c0d8(0x1be))/0x8)+-parseInt(_0x10c0d8(0x1cb))/0x9*(parseInt(_0x10c0d8(0x1d6))/0xa)+parseInt(_0x10c0d8(0x1c1))/0xb;if(_0x513d74===_0x1b6c4f)break;else _0x51daf6['push'](_0x51daf6['shift']());}catch(_0x34988c){_0x51daf6['push'](_0x51daf6['shift']());}}}(a63_0x17a5,0xedb87));import{existsSync,lstatSync,mkdirSync,writeFileSync}from'node:fs';import{dirname,resolve}from'node:path';import{CliErrors}from'../../../errors.js';import{writeCliSideChannelLine}from'../../../utils/write-cli-side-channel.js';function a63_0x17a5(){const _0x456c4f=['target','4518DQXvSe','Pass\x20--force\x20to\x20overwrite\x20generated\x20template\x20files.','Refusing\x20to\x20overwrite\x20symlink:\x20','skillName','validation','2ULDOwo','str','skillDir','1586540xKfFWQ','Create\x20a\x20local\x20runtime\x20Skill\x20draft\x20without\x20uploading\x20or\x20publishing\x20it.','files','trim','112UCbtBQ','content','9965jBvwYK','name','isSymbolicLink','6177644SwbWMn','map','3754299RHLVil','type','341128nBqJRo','path','create','80518185wyioKY','Omitting\x20--type\x20is\x20deprecated;\x20defaulting\x20to\x20write\x20for\x20compatibility.\x20Pass\x20--type\x20read\x20or\x20--type\x20write\x20explicitly.','isDirectory','Created\x20local\x20Skill\x20draft\x20','bool','force','Skill\x20directory\x20already\x20exists:\x20','skill','rendered','创建本地自包含的运行态\x20Skill\x20草稿','18JdgrwN','1049995VQhzSW'];a63_0x17a5=function(){return _0x456c4f;};return a63_0x17a5();}import{CREATE_NAME_FLAG,FORCE_FLAG,TARGET_FLAG,TYPE_FLAG}from'../flags.js';import{DEFAULT_SKILL_TARGET,renderSkillTemplate}from'../templates.js';export const createCommand={'service':a63_0x1f99e3(0x1c8),'command':a63_0x1f99e3(0x1c0),'description':a63_0x1f99e3(0x1ca),'risk':'read','requiresAuth':![],'requiresAppCode':![],'flags':[CREATE_NAME_FLAG,TYPE_FLAG,TARGET_FLAG,FORCE_FLAG],async 'dryRun'(_0x196082){const _0x25a8c2=a63_0x1f99e3,_0x417fac=buildSkillCreatePlan(_0x196082[_0x25a8c2(0x1d4)]('name'),_0x196082['str'](_0x25a8c2(0x1e2)),_0x196082[_0x25a8c2(0x1d4)](_0x25a8c2(0x1cd)));return{'method':'WRITE','url':_0x417fac[_0x25a8c2(0x1d5)],'body':{'skillName':_0x417fac[_0x25a8c2(0x1c9)][_0x25a8c2(0x1d1)],'type':_0x417fac['rendered']['type'],'selfContained':!![],'files':_0x417fac['rendered'][_0x25a8c2(0x1d8)][_0x25a8c2(0x1e0)](_0x139610=>_0x139610['path'])},'description':_0x25a8c2(0x1d7)};},async 'execute'(_0x3a601d){const _0x648686=a63_0x1f99e3,_0x57d975=buildSkillCreatePlan(_0x3a601d[_0x648686(0x1d4)](_0x648686(0x1dd)),_0x3a601d[_0x648686(0x1d4)](_0x648686(0x1e2)),_0x3a601d[_0x648686(0x1d4)]('target'));return writeSkillDraft(_0x57d975,_0x3a601d[_0x648686(0x1c5)](_0x648686(0x1c6))),{'ok':!![],'data':{'skillName':_0x57d975['rendered'][_0x648686(0x1d1)],'type':_0x57d975[_0x648686(0x1c9)][_0x648686(0x1e2)],'dir':_0x57d975[_0x648686(0x1d5)],'files':_0x57d975[_0x648686(0x1c9)]['files'][_0x648686(0x1e0)](_0x7a9388=>_0x7a9388[_0x648686(0x1bf)])},'message':_0x648686(0x1c4)+_0x57d975[_0x648686(0x1c9)][_0x648686(0x1d1)]};}};function buildSkillCreatePlan(_0x39337a,_0x2926d2,_0x30579f){const _0x49b8be=a63_0x1f99e3,_0x1ddc3b=_0x2926d2[_0x49b8be(0x1d9)](),_0xb4314a=renderSkillTemplate({'skillName':_0x39337a,'type':_0x1ddc3b});!_0x1ddc3b&&writeCliSideChannelLine(_0x49b8be(0x1c2));const _0x4aaf2b=resolve(normalizeSkillTarget(_0x30579f));return{'rendered':_0xb4314a,'targetRoot':_0x4aaf2b,'skillDir':resolve(_0x4aaf2b,_0xb4314a['skillName'])};}function normalizeSkillTarget(_0x5e85da){return(_0x5e85da||DEFAULT_SKILL_TARGET)['trim']()||DEFAULT_SKILL_TARGET;}function writeSkillDraft(_0x361c30,_0x476ab7){const _0x243046=a63_0x1f99e3;if(existsSync(_0x361c30[_0x243046(0x1d5)])){const _0x47fcc0=lstatSync(_0x361c30[_0x243046(0x1d5)]);if(!_0x47fcc0[_0x243046(0x1c3)]()||_0x47fcc0[_0x243046(0x1de)]())throw CliErrors[_0x243046(0x1d2)]('Skill\x20path\x20already\x20exists\x20and\x20is\x20not\x20a\x20writable\x20directory:\x20'+_0x361c30['skillDir']);if(!_0x476ab7)throw CliErrors[_0x243046(0x1d2)](_0x243046(0x1c7)+_0x361c30[_0x243046(0x1d5)],_0x243046(0x1cf));}for(const _0x5f0a67 of _0x361c30[_0x243046(0x1c9)]['files']){const _0xb367dc=resolve(_0x361c30[_0x243046(0x1d5)],_0x5f0a67[_0x243046(0x1bf)]),_0x41e709=dirname(_0xb367dc);mkdirSync(_0x41e709,{'recursive':!![]});if(existsSync(_0xb367dc)&&lstatSync(_0xb367dc)[_0x243046(0x1de)]())throw CliErrors[_0x243046(0x1d2)](_0x243046(0x1d0)+_0xb367dc);writeFileSync(_0xb367dc,_0x5f0a67[_0x243046(0x1db)],'utf8');}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a64_0x5926f6=a64_0x49be;(function(_0x130f1c,_0x1f7da3){const _0x13d22a=a64_0x49be,_0x27ccad=_0x130f1c();while(!![]){try{const _0x4dc39c=parseInt(_0x13d22a(0x125))/0x1+-parseInt(_0x13d22a(0x10c))/0x2*(parseInt(_0x13d22a(0x11c))/0x3)+-parseInt(_0x13d22a(0x10e))/0x4+-parseInt(_0x13d22a(0x120))/0x5*(-parseInt(_0x13d22a(0x102))/0x6)+-parseInt(_0x13d22a(0x119))/0x7+parseInt(_0x13d22a(0x10b))/0x8*(parseInt(_0x13d22a(0x106))/0x9)+parseInt(_0x13d22a(0x122))/0xa;if(_0x4dc39c===_0x1f7da3)break;else _0x27ccad['push'](_0x27ccad['shift']());}catch(_0x287548){_0x27ccad['push'](_0x27ccad['shift']());}}}(a64_0x36c0,0x83232));import{getRuntimeSkillVersionDiagram,putRuntimeSkillVersionDiagram,validateRuntimeSkillVersionDiagram}from'../../../core/api-client.js';import{CliErrors}from'../../../errors.js';import{readRequiredSkillDiagram}from'../diagram.js';import{DIAGRAM_FILE_FLAG,DIAGRAM_SCOPE_FLAG,DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,SOURCE_FINGERPRINT_FLAG}from'../flags.js';const TARGET_FLAGS=[DIAGRAM_SKILL_CODE_FLAG,DIAGRAM_VERSION_FLAG,DIAGRAM_SCOPE_FLAG],WRITE_FLAGS=[...TARGET_FLAGS,SOURCE_FINGERPRINT_FLAG,EXPECTED_DIAGRAM_REVISION_FLAG,DIAGRAM_FILE_FLAG];function a64_0x49be(_0x3cd646,_0x3b250d){_0x3cd646=_0x3cd646-0x101;const _0x36c055=a64_0x36c0();let _0x49be9d=_0x36c055[_0x3cd646];return _0x49be9d;}function readDiagramTarget(_0x289d60){const _0x172009=a64_0x49be,_0x192a59=_0x289d60['str'](_0x172009(0x104))[_0x172009(0x112)](),_0x9024c5=_0x289d60[_0x172009(0x10d)]('version')[_0x172009(0x112)](),_0x5605d9=_0x289d60[_0x172009(0x10d)]('scope');if(!_0x192a59||!_0x9024c5||_0x5605d9!==_0x172009(0x12a)&&_0x5605d9!=='company')throw CliErrors['validation']('--skill-code,\x20--version,\x20and\x20--scope\x20personal|company\x20are\x20required.');return{'skillCode':_0x192a59,'version':_0x9024c5,'scope':_0x5605d9};}async function readDiagramWriteInput(_0x23d026){const _0xcba6fc=a64_0x49be,_0x1cf3dd=_0x23d026[_0xcba6fc(0x124)]('expected-diagram-revision'),_0x4830df=_0x23d026['str'](_0xcba6fc(0x10f))[_0xcba6fc(0x112)]();if(!Number[_0xcba6fc(0x12c)](_0x1cf3dd)||_0x1cf3dd<0x0)throw CliErrors[_0xcba6fc(0x103)](_0xcba6fc(0x126));if(!/^sha256:[0-9a-f]{64}$/[_0xcba6fc(0x111)](_0x4830df))throw CliErrors[_0xcba6fc(0x103)](_0xcba6fc(0x115));return{'expectedDiagramRevision':_0x1cf3dd,'sourceFingerprint':_0x4830df,'diagram':await readRequiredSkillDiagram(_0x23d026[_0xcba6fc(0x10d)]('diagram-file'))};}export const diagramValidateCommand={'service':'skill','command':'diagram-validate','description':a64_0x5926f6(0x116),'risk':a64_0x5926f6(0x10a),'flags':WRITE_FLAGS,async 'execute'(_0x5e4da1){const _0x581e70=a64_0x5926f6,_0x497c5d=readDiagramTarget(_0x5e4da1),_0x5ccd22=await validateRuntimeSkillVersionDiagram(_0x5e4da1[_0x581e70(0x110)],_0x497c5d[_0x581e70(0x123)],_0x497c5d[_0x581e70(0x128)],_0x497c5d[_0x581e70(0x129)],await readDiagramWriteInput(_0x5e4da1));return{'ok':!![],'data':_0x5ccd22,'message':_0x581e70(0x101)+_0x497c5d[_0x581e70(0x123)]+'@'+_0x497c5d[_0x581e70(0x128)]+'.'};}};export const diagramPushCommand={'service':a64_0x5926f6(0x118),'command':a64_0x5926f6(0x107),'description':'为指定版本的\x20Skill\x20创建或替换\x20Mermaid\x20图','risk':a64_0x5926f6(0x11f),'confirmationDescription':'将为指定\x20Skill\x20的精确版本创建或替换\x20Mermaid\x20流程图;服务端版本已变化时会拒绝覆盖。确认界面不会展示图表正文。','flags':WRITE_FLAGS,async 'execute'(_0x1032ff){const _0x31bd68=a64_0x5926f6,_0xba6383=readDiagramTarget(_0x1032ff),_0x313b6d=await putRuntimeSkillVersionDiagram(_0x1032ff[_0x31bd68(0x110)],_0xba6383[_0x31bd68(0x123)],_0xba6383['version'],_0xba6383['scope'],await readDiagramWriteInput(_0x1032ff));return{'ok':!![],'data':_0x313b6d,'message':_0x313b6d[_0x31bd68(0x11d)]===_0x31bd68(0x11b)?_0x31bd68(0x108)+_0xba6383[_0x31bd68(0x123)]+'@'+_0xba6383[_0x31bd68(0x128)]+_0x31bd68(0x105):(_0x313b6d[_0x31bd68(0x11d)]===_0x31bd68(0x121)?'Created':_0x31bd68(0x11a))+_0x31bd68(0x12b)+_0xba6383[_0x31bd68(0x123)]+'@'+_0xba6383['version']+'.'};}};export const diagramShowCommand={'service':a64_0x5926f6(0x118),'command':'diagram-show','description':'Show\x20the\x20current\x20Mermaid\x20diagram\x20for\x20one\x20exact\x20Skill\x20version','risk':a64_0x5926f6(0x10a),'flags':TARGET_FLAGS,async 'execute'(_0x2be7b2){const _0x126daa=a64_0x5926f6,_0x41d008=readDiagramTarget(_0x2be7b2),_0x44eea1=await getRuntimeSkillVersionDiagram(_0x2be7b2['appCode'],_0x41d008[_0x126daa(0x123)],_0x41d008[_0x126daa(0x128)],_0x41d008['scope']);return{'ok':!![],'data':_0x44eea1,'message':_0x44eea1[_0x126daa(0x11e)]?_0x126daa(0x127)+_0x41d008['skillCode']+'@'+_0x41d008[_0x126daa(0x128)]+_0x126daa(0x114)+_0x44eea1['expectedDiagramRevision']+'.':_0x126daa(0x109)+_0x41d008['skillCode']+'@'+_0x41d008[_0x126daa(0x128)]+_0x126daa(0x117)+_0x44eea1[_0x126daa(0x113)]+'.'};}};function a64_0x36c0(){const _0x492c0d=['str','3296564SOQrIB','source-fingerprint','appCode','test','trim','expectedDiagramRevision',';\x20next\x20write\x20expects\x20revision\x20','--source-fingerprint\x20must\x20be\x20lowercase\x20sha256:<64\x20hex\x20characters>.','Validate\x20a\x20Mermaid\x20diagram\x20replacement\x20for\x20one\x20exact\x20Skill\x20version',';\x20first\x20write\x20expects\x20revision\x20','skill','2983071WpjEtP','Updated','unchanged','48435VxBHlm','action','found','write','577975xhBNPK','created','20973090jpTGvx','skillCode','num','386127vbfcis','--expected-diagram-revision\x20must\x20be\x20a\x20non-negative\x20integer.','Found\x20Skill\x20diagram\x20for\x20','version','scope','personal','\x20Skill\x20diagram\x20for\x20','isInteger','Skill\x20diagram\x20validation\x20passed\x20for\x20','6RhrvSL','validation','skill-code','\x20is\x20unchanged.','9njFIxa','diagram-push','Skill\x20diagram\x20for\x20','No\x20Skill\x20diagram\x20is\x20stored\x20for\x20','read','223528JINAfp','104yESZbD'];a64_0x36c0=function(){return _0x492c0d;};return a64_0x36c0();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a65_0xa773(_0x1e6185,_0x2c04cd){_0x1e6185=_0x1e6185-0x18a;const _0x1a94ab=a65_0x1a94();let _0xa77374=_0x1a94ab[_0x1e6185];return _0xa77374;}const a65_0xdb1cc4=a65_0xa773;(function(_0x3f9347,_0x416350){const _0x48c1e6=a65_0xa773,_0x4ee3e2=_0x3f9347();while(!![]){try{const _0x3320c7=-parseInt(_0x48c1e6(0x192))/0x1*(-parseInt(_0x48c1e6(0x1a9))/0x2)+parseInt(_0x48c1e6(0x193))/0x3+parseInt(_0x48c1e6(0x1ae))/0x4+parseInt(_0x48c1e6(0x1af))/0x5+-parseInt(_0x48c1e6(0x19b))/0x6*(-parseInt(_0x48c1e6(0x1a1))/0x7)+parseInt(_0x48c1e6(0x1a2))/0x8*(parseInt(_0x48c1e6(0x18c))/0x9)+-parseInt(_0x48c1e6(0x194))/0xa;if(_0x3320c7===_0x416350)break;else _0x4ee3e2['push'](_0x4ee3e2['shift']());}catch(_0x33f1b9){_0x4ee3e2['push'](_0x4ee3e2['shift']());}}}(a65_0x1a94,0xb4d2a));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG,SCOPE_FLAG}from'../flags.js';import{normalizeSyncScopes}from'../scopes.js';import{summarizeRuntimeSkill}from'../summary.js';const PACKAGE_DOWNLOAD_CONCURRENCY=0x4;export const installCommand={'service':a65_0xdb1cc4(0x1ac),'command':a65_0xdb1cc4(0x1b3),'description':a65_0xdb1cc4(0x1b0),'risk':'read','requiresAuth':!![],'requiresAppCode':!![],'hasFormat':![],'flags':[CODE_FLAG,SCOPE_FLAG,FORCE_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x49ec3a){return syncRuntimeSkills(_0x49ec3a);}};async function syncRuntimeSkills(_0x42c24e){const _0x5bc49e=a65_0xdb1cc4,{downloadRuntimeSkillPackage:_0x25f495,listRuntimeSkills:_0x138b94}=await import(_0x5bc49e(0x190)),{linkEffectiveRuntimeSkills:_0x4497ff,materializeRuntimeSkill:_0x29ef73,pruneStaleRuntimeSkillCache:_0x53db19,pruneStaleRuntimeSkillLinks:_0x1bb196,resolveRuntimeSkillInstallTarget:_0x412194,reuseMaterializedRuntimeSkill:_0x141615}=await import(_0x5bc49e(0x19e)),_0x2b9194=_0x42c24e['str']('code'),_0x35cd9a=normalizeSyncScopes(_0x42c24e[_0x5bc49e(0x191)](_0x5bc49e(0x199))),_0x2cb695=_0x42c24e['envName']??'production',_0x618d8b=_0x42c24e['accessKey'],_0x583511=_0x42c24e[_0x5bc49e(0x19d)]('force');if(!_0x618d8b)throw CliErrors['authRequired'](_0x5bc49e(0x1b4));const _0x28a98f=_0x412194(_0x42c24e[_0x5bc49e(0x1a6)],_0x42c24e['bool'](_0x5bc49e(0x18b))?_0x5bc49e(0x18b):_0x5bc49e(0x1a7)),_0x765670=_0x412194(_0x42c24e[_0x5bc49e(0x1a6)],_0x28a98f[_0x5bc49e(0x199)]===_0x5bc49e(0x18b)?_0x5bc49e(0x1a7):_0x5bc49e(0x18b)),_0x513003=await _0x138b94({'appCode':_0x42c24e[_0x5bc49e(0x1a6)],'scope':_0x35cd9a[_0x5bc49e(0x198)]===0x1?_0x35cd9a[0x0]:_0x5bc49e(0x18a),'code':_0x2b9194[_0x5bc49e(0x195)]()||undefined}),_0x436f7b=_0x35cd9a['includes'](_0x5bc49e(0x1a0))?_0x513003['personal']:[],_0x502844=_0x35cd9a[_0x5bc49e(0x19f)](_0x5bc49e(0x18f))?_0x513003[_0x5bc49e(0x18f)]:[],_0x25f222=new Set([..._0x436f7b[_0x5bc49e(0x1a5)](_0x7361a9=>_0x7361a9[_0x5bc49e(0x1a3)]?.[_0x5bc49e(0x195)]())[_0x5bc49e(0x1b2)](_0x3951d5=>Boolean(_0x3951d5)),..._0x502844['map'](_0xc1a5e=>_0xc1a5e['skillCode']?.[_0x5bc49e(0x195)]())[_0x5bc49e(0x1b2)](_0x206d08=>Boolean(_0x206d08))]),_0x27fe63=_0x2b9194['trim']()?[_0x2b9194[_0x5bc49e(0x195)]()]:undefined,_0x3836a1=_0x35cd9a[_0x5bc49e(0x198)]===0x2&&_0x35cd9a[_0x5bc49e(0x19f)](_0x5bc49e(0x1a0))&&_0x35cd9a['includes'](_0x5bc49e(0x18f)),_0xdd308c=_0x3836a1?_0x1bb196(_0x28a98f,_0x25f222,_0x27fe63):[],_0x55cf74=_0x53db19({'env':_0x2cb695,'accessKey':_0x618d8b,'appCode':_0x42c24e[_0x5bc49e(0x1a6)],'activeSkillCodes':_0x25f222,'pruneSkillCodes':_0x27fe63,'scopes':_0x35cd9a,'protectedLinkRoots':_0x765670[_0x5bc49e(0x1a8)]}),_0x1bdf67=[..._0x436f7b[_0x5bc49e(0x1a5)](_0xab2659=>({'skill':_0xab2659,'scope':_0x5bc49e(0x1a0)})),..._0x502844[_0x5bc49e(0x1a5)](_0x55584f=>({'skill':_0x55584f,'scope':_0x5bc49e(0x18f)}))],_0x58ea0b=await mapConcurrent(_0x1bdf67,PACKAGE_DOWNLOAD_CONCURRENCY,async({skill:_0x211892,scope:_0x5e1368})=>{const _0x5cf9fc=_0x5bc49e,_0x237910=_0x141615(_0x211892,_0x5e1368,{'env':_0x2cb695,'accessKey':_0x618d8b,'appCode':_0x42c24e[_0x5cf9fc(0x1a6)]});if(_0x237910)return _0x237910;return _0x29ef73(_0x211892,_0x5e1368,{'env':_0x2cb695,'accessKey':_0x618d8b,'appCode':_0x42c24e[_0x5cf9fc(0x1a6)],'force':_0x583511,'packageBytes':await downloadSkillPackage(_0x211892,_0x5e1368,_0x42c24e[_0x5cf9fc(0x1a6)],_0x25f495)});}),_0x568f1e=_0x4497ff(_0x58ea0b,_0x28a98f),_0x596477=countLinkActions(_0x568f1e);return{'ok':!![],'data':{'appCode':_0x42c24e[_0x5bc49e(0x1a6)],..._0x28a98f[_0x5bc49e(0x199)]==='project'?{'installTarget':{'scope':_0x28a98f[_0x5bc49e(0x199)],'skillRoots':[..._0x28a98f[_0x5bc49e(0x1a8)]]}}:{},'personal':_0x436f7b[_0x5bc49e(0x198)],'company':_0x502844[_0x5bc49e(0x198)],'materialized':_0x58ea0b['length'],'links':{'total':_0x568f1e['length'],'created':_0x596477[_0x5bc49e(0x1a4)]??0x0,'updated':_0x596477[_0x5bc49e(0x196)]??0x0,'unchanged':_0x596477[_0x5bc49e(0x19a)]??0x0,'skipped':0x0,'conflicted':0x0},'pruned':{'links':_0xdd308c[_0x5bc49e(0x1b2)](_0x2e5d8a=>_0x2e5d8a[_0x5bc49e(0x1b1)]===_0x5bc49e(0x18d))['length'],'cacheDirs':_0x55cf74[_0x5bc49e(0x1b2)](_0x47a6b1=>_0x47a6b1['action']===_0x5bc49e(0x18d))[_0x5bc49e(0x198)],'skipped':[..._0xdd308c,..._0x55cf74][_0x5bc49e(0x1b2)](_0x35acc7=>_0x35acc7['action']===_0x5bc49e(0x1ab))['length']},'skills':{'personal':_0x436f7b['map'](summarizeRuntimeSkill),'company':_0x502844['map'](summarizeRuntimeSkill)}},'message':_0x5bc49e(0x1ad)+_0x436f7b['length']+'\x20personal\x20and\x20'+_0x502844[_0x5bc49e(0x198)]+_0x5bc49e(0x197)};}async function mapConcurrent(_0x468eaa,_0x256406,_0x58176d){const _0x5e13c7=a65_0xdb1cc4,_0x25ee10=new Array(_0x468eaa[_0x5e13c7(0x198)]);let _0x5070c9=0x0;const _0x5bde44=Array[_0x5e13c7(0x19c)]({'length':Math[_0x5e13c7(0x18e)](_0x256406,_0x468eaa[_0x5e13c7(0x198)])},async()=>{const _0x1316a9=_0x5e13c7;while(_0x5070c9<_0x468eaa[_0x1316a9(0x198)]){const _0x2d75b4=_0x5070c9;_0x5070c9+=0x1,_0x25ee10[_0x2d75b4]=await _0x58176d(_0x468eaa[_0x2d75b4]);}});return await Promise[_0x5e13c7(0x18a)](_0x5bde44),_0x25ee10;}function a65_0x1a94(){const _0x5056bd=['Business\x20Skill\x20installation\x20requires\x20authentication.\x20Run\x20`lovrabet\x20auth\x20login`,\x20or\x20use\x20`lovrabet\x20cli-skill\x20install`\x20for\x20CLI\x20Built-in\x20Skill\x20setup.','all','project','1065249ITXLiV','removed','min','company','../../../core/api-client.js','str','61316biftcw','976533aInQNh','44945210XemFPN','trim','updated','\x20company\x20Skill(s).','length','scope','unchanged','62754urPKnc','from','bool','../../../skills/runtime-skill-sync.js','includes','personal','917iEIaUK','40ZyChKW','skillCode','created','map','appCode','global','skillRoots','32dLfCBd','version','skipped','skill','Installed\x20','3323672IIhhrT','5678760WjELOv','Install\x20current-app\x20business\x20Skills\x20into\x20user-level\x20Agent\x20skill\x20directories','action','filter','install'];a65_0x1a94=function(){return _0x5056bd;};return a65_0x1a94();}async function downloadSkillPackage(_0x3417c7,_0x2643c9,_0xd7400a,_0x4f917c){const _0x349064=a65_0xdb1cc4,_0x285573=_0x3417c7[_0x349064(0x1aa)]?.[_0x349064(0x195)]();return _0x285573?_0x4f917c(_0x2643c9,_0x3417c7[_0x349064(0x1a3)],_0xd7400a,_0x285573):_0x4f917c(_0x2643c9,_0x3417c7[_0x349064(0x1a3)],_0xd7400a);}function countLinkActions(_0x562b7a){return _0x562b7a['reduce']((_0xa0f706,_0x3fd051)=>{const _0x379dbc=a65_0xa773;return _0xa0f706[_0x3fd051[_0x379dbc(0x1b1)]]=(_0xa0f706[_0x3fd051[_0x379dbc(0x1b1)]]??0x0)+0x1,_0xa0f706;},{});}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a66_0xf0c7(){const _0x5ea95e=['global','trim','personal','\x20local\x20Skill(s).','331362TugQSc','2665728jrzUfO','project','appCode','scope','List\x20runtime\x20Skills\x20from\x20remote\x20or\x20CLI-managed\x20local\x20cache','25663sLOdnM','3411155jrfeOq','list','7044nkmRIl','production','../../../core/api-client.js','49188MSNcVC','map','1QHyfgy','length','filter','9NAUiIS','bool','8cphYjT','Listed\x20','4132220NWvInW','595pMRjnY','accessKey','725018LHGIEG','\x20remote\x20Skill(s).','local','company','remote','envName','skill','str'];a66_0xf0c7=function(){return _0x5ea95e;};return a66_0xf0c7();}const a66_0x34f11c=a66_0x1025;(function(_0x1ec0c0,_0x25236a){const _0x4cc1d9=a66_0x1025,_0x4d5062=_0x1ec0c0();while(!![]){try{const _0x537c5b=-parseInt(_0x4cc1d9(0x92))/0x1*(parseInt(_0x4cc1d9(0x78))/0x2)+parseInt(_0x4cc1d9(0x84))/0x3*(parseInt(_0x4cc1d9(0x73))/0x4)+parseInt(_0x4cc1d9(0x8b))/0x5+-parseInt(_0x4cc1d9(0x90))/0x6*(parseInt(_0x4cc1d9(0x76))/0x7)+-parseInt(_0x4cc1d9(0x85))/0x8+-parseInt(_0x4cc1d9(0x95))/0x9*(parseInt(_0x4cc1d9(0x75))/0xa)+-parseInt(_0x4cc1d9(0x8a))/0xb*(-parseInt(_0x4cc1d9(0x8d))/0xc);if(_0x537c5b===_0x25236a)break;else _0x4d5062['push'](_0x4d5062['shift']());}catch(_0x4e2251){_0x4d5062['push'](_0x4d5062['shift']());}}}(a66_0xf0c7,0x71f91));import{CliErrors}from'../../../errors.js';import{CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG}from'../flags.js';import{listScopeToRemoteScope,listScopeToRuntimeScopes,normalizeListScope,shouldListScope}from'../scopes.js';import{summarizeLocalRuntimeSkill,summarizeRuntimeSkill}from'../summary.js';function a66_0x1025(_0x2e7974,_0x3d3f14){_0x2e7974=_0x2e7974-0x73;const _0xf0c771=a66_0xf0c7();let _0x102594=_0xf0c771[_0x2e7974];return _0x102594;}export const listCommand={'service':a66_0x34f11c(0x7e),'command':a66_0x34f11c(0x8c),'description':a66_0x34f11c(0x89),'risk':'read','flags':[CODE_FLAG,LIST_SCOPE_FLAG,LOCAL_FLAG,PROJECT_TARGET_FLAG],async 'execute'(_0x4f6c6c){const _0x36d296=a66_0x34f11c,_0x122002=_0x4f6c6c[_0x36d296(0x7f)]('code'),_0x1a0ac8=normalizeListScope(_0x4f6c6c[_0x36d296(0x7f)](_0x36d296(0x88)));if(_0x4f6c6c[_0x36d296(0x96)](_0x36d296(0x7a))){const _0x4b7f12=_0x4f6c6c[_0x36d296(0x77)];if(!_0x4b7f12)throw CliErrors['authRequired']();const {listLocalRuntimeSkills:_0x396276,resolveRuntimeSkillInstallTarget:_0x49ddfb}=await import('../../../skills/runtime-skill-sync.js'),_0xf67891=_0x49ddfb(_0x4f6c6c['appCode'],_0x4f6c6c[_0x36d296(0x96)](_0x36d296(0x86))?_0x36d296(0x86):_0x36d296(0x80)),_0x3ff8f9=_0x396276({'env':_0x4f6c6c[_0x36d296(0x7d)]??_0x36d296(0x8e),'accessKey':_0x4b7f12,'appCode':_0x4f6c6c[_0x36d296(0x87)],'scopes':listScopeToRuntimeScopes(_0x1a0ac8),'code':_0x122002[_0x36d296(0x81)]()||undefined},_0xf67891),_0x2a52cb=groupLocalRuntimeSkills(_0x3ff8f9);return{'ok':!![],'data':{'appCode':_0x4f6c6c[_0x36d296(0x87)],'source':'local',..._0xf67891[_0x36d296(0x88)]===_0x36d296(0x86)?{'installScope':_0xf67891[_0x36d296(0x88)]}:{},'scope':_0x1a0ac8,'total':_0x3ff8f9['length'],'personal':_0x2a52cb[_0x36d296(0x82)]['length'],'company':_0x2a52cb[_0x36d296(0x7b)]['length'],'items':_0x3ff8f9[_0x36d296(0x91)](summarizeLocalRuntimeSkill),'skills':{'personal':_0x2a52cb[_0x36d296(0x82)][_0x36d296(0x91)](summarizeLocalRuntimeSkill),'company':_0x2a52cb[_0x36d296(0x7b)][_0x36d296(0x91)](summarizeLocalRuntimeSkill)}},'message':'Listed\x20'+_0x3ff8f9[_0x36d296(0x93)]+_0x36d296(0x83)};}const {listRuntimeSkills:_0x272a40}=await import(_0x36d296(0x8f)),_0x4dfe6b=await _0x272a40({'appCode':_0x4f6c6c[_0x36d296(0x87)],'scope':listScopeToRemoteScope(_0x1a0ac8),'code':_0x122002[_0x36d296(0x81)]()||undefined}),_0x38c50a=shouldListScope(_0x1a0ac8,_0x36d296(0x82))?_0x4dfe6b[_0x36d296(0x82)]??[]:[],_0x12b633=shouldListScope(_0x1a0ac8,'company')?_0x4dfe6b['company']??[]:[],_0x1e185d=[..._0x38c50a,..._0x12b633];return{'ok':!![],'data':{'appCode':_0x4f6c6c[_0x36d296(0x87)],'source':_0x36d296(0x7c),'scope':_0x1a0ac8,'total':_0x1e185d[_0x36d296(0x93)],'personal':_0x38c50a['length'],'company':_0x12b633['length'],'items':_0x1e185d[_0x36d296(0x91)](summarizeRuntimeSkill),'skills':{'personal':_0x38c50a[_0x36d296(0x91)](summarizeRuntimeSkill),'company':_0x12b633[_0x36d296(0x91)](summarizeRuntimeSkill)}},'message':_0x36d296(0x74)+_0x1e185d[_0x36d296(0x93)]+_0x36d296(0x79)};}};function groupLocalRuntimeSkills(_0x2bf583){const _0x2a2cbb=a66_0x34f11c;return{'personal':_0x2bf583[_0x2a2cbb(0x94)](_0x1fa8ce=>_0x1fa8ce[_0x2a2cbb(0x88)]===_0x2a2cbb(0x82)),'company':_0x2bf583['filter'](_0xf38613=>_0xf38613[_0x2a2cbb(0x88)]===_0x2a2cbb(0x7b)),'builtin':_0x2bf583[_0x2a2cbb(0x94)](_0x304131=>_0x304131['scope']==='builtin')};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function a67_0x53d7(){const _0x270186=['2804421oxmIVU','2Lhhuze','897018XHREjT','write','6289884pBXymJ','将读取本地\x20Skill\x20内容:个人范围会立即保存并生效,公司范围会提交一个新版本进入审核。确认界面不会展示目录路径或\x20Skill\x20正文。','将本地\x20Skill\x20目录推送到个人范围,或提交公司范围版本审核','231208cUPDMo','3968868Husvcw','952xwEvlt','20MyjcBB','25SiDGDe','39403lYrbak','8912849pxhdWE','push','skill'];a67_0x53d7=function(){return _0x270186;};return a67_0x53d7();}const a67_0x4c28d1=a67_0x5d1f;(function(_0x206655,_0x38b1f5){const _0x41776b=a67_0x5d1f,_0x2d4e4c=_0x206655();while(!![]){try{const _0x5c0ba5=parseInt(_0x41776b(0x1bd))/0x1*(parseInt(_0x41776b(0x1c3))/0x2)+-parseInt(_0x41776b(0x1bc))/0x3+parseInt(_0x41776b(0x1c4))/0x4+-parseInt(_0x41776b(0x1c7))/0x5*(-parseInt(_0x41776b(0x1be))/0x6)+-parseInt(_0x41776b(0x1c8))/0x7*(-parseInt(_0x41776b(0x1c5))/0x8)+parseInt(_0x41776b(0x1c0))/0x9+parseInt(_0x41776b(0x1c6))/0xa*(-parseInt(_0x41776b(0x1c9))/0xb);if(_0x5c0ba5===_0x38b1f5)break;else _0x2d4e4c['push'](_0x2d4e4c['shift']());}catch(_0x8d39a8){_0x2d4e4c['push'](_0x2d4e4c['shift']());}}}(a67_0x53d7,0xbf7d6));function a67_0x5d1f(_0x3bab09,_0x5b019e){_0x3bab09=_0x3bab09-0x1bc;const _0x53d75c=a67_0x53d7();let _0x5d1fba=_0x53d75c[_0x3bab09];return _0x5d1fba;}import{CONFIRM_WARNINGS_FLAG,DIAGRAM_FILE_FLAG,DIR_FLAG,PUSH_SCOPE_FLAG}from'../flags.js';import{skillPushDryRun,skillPushExecute}from'../push-execute.js';export const pushCommand={'service':a67_0x4c28d1(0x1cb),'command':a67_0x4c28d1(0x1ca),'description':a67_0x4c28d1(0x1c2),'risk':a67_0x4c28d1(0x1bf),'confirmationDescription':a67_0x4c28d1(0x1c1),'flags':[DIR_FLAG,DIAGRAM_FILE_FLAG,PUSH_SCOPE_FLAG,CONFIRM_WARNINGS_FLAG],'dryRun':skillPushDryRun,'execute':skillPushExecute};
|