sino-bc-cli 1.8.9 → 1.8.10
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/dist/SKILL.md +14 -10
- package/dist/index.js +1 -1
- package/dist/skills/custom/biz-line-strategy-generate/SKILL.md +58 -0
- package/dist/skills/custom/biz-line-strategy-generate/references/api-flow.md +71 -0
- package/dist/skills/custom/biz-line-strategy-generate/references/four-strategies.md +57 -0
- package/dist/skills/custom/biz-line-strategy-generate/references/metrics.md +97 -0
- package/dist/skills/custom/biz-line-strategy-generate/references/output-excel.md +62 -0
- package/dist/skills/custom/biz-line-strategy-generate/scripts/build_report.py +260 -0
- package/package.json +1 -1
package/dist/SKILL.md
CHANGED
|
@@ -25,20 +25,23 @@ sino-bc-cli/
|
|
|
25
25
|
├── SKILL.md ← 本文件
|
|
26
26
|
├── sino-bc-shared/ 横切:配置、信封、确认门
|
|
27
27
|
├── sino-bc-biz-line/ 业务线、周策略、投放渠道/品类、关联项目、广告策略维度与成效
|
|
28
|
-
|
|
28
|
+
├── sino-bc-sso/ SSO 组别
|
|
29
|
+
└── biz-line-strategy-generate/ 业务线策略生成编排(四大策略+效果learning,导出 Excel)
|
|
29
30
|
```
|
|
30
31
|
|
|
31
32
|
## 运行环境
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
34
|
+
【sino-bc-cli 执行规则(最高优先级,适用于所有环境)】
|
|
35
|
+
1. 所有 sino-bc-cli 操作前,先读取 ~/.agents/skills/sino-bc-cli/ 对应 SKILL.md。
|
|
36
|
+
2. 统一探测流程(不按环境预设):
|
|
37
|
+
① 先在当前执行面运行 `which sino-bc-cli` 探测:
|
|
38
|
+
- 存在 → 直接在当前执行面执行命令;
|
|
39
|
+
- 不存在 → 进入第②步。
|
|
40
|
+
② 探测本机:用提权方式(require_escalated)运行 `which sino-bc-cli`:
|
|
41
|
+
- 存在 → 所有命令一律带 require_escalated 在本机执行;
|
|
42
|
+
- 不存在 → 提示安装 `npm i sino-bc-cli@latest -g`,不得改用其他方式。
|
|
43
|
+
3. 严禁自行拼 HTTP 调网关;写操作须用户确认后再加 --yes。
|
|
44
|
+
4. 命令失败时:若是沙箱资源类错误(如 Too many open files),等待后重试,不得降级或跳过;其他错误按报错修正。
|
|
42
45
|
|
|
43
46
|
## 怎么跑
|
|
44
47
|
|
|
@@ -57,6 +60,7 @@ CLI 未安装:`npm i sino-bc-cli@latest -g`(Node.js >= 24)。技能未出
|
|
|
57
60
|
| 投放渠道/品类、业务线列表/详情/状态、周策略增删改查与策略生成、策略周期/消耗/红绿灯、关联项目/优化项目 | [`sino-bc-biz-line/SKILL.md`](sino-bc-biz-line/SKILL.md) | `biz-line +<shortcut>` |
|
|
58
61
|
| Facebook / Google / TikTok 广告策略维度(目标、出价、定向等配置分布)或广告策略成效(消耗、曝光、点击等) | 同上 | `biz-line +<shortcut>`(维度 / 成效) |
|
|
59
62
|
| SSO 组别 | [`sino-bc-sso/SKILL.md`](sino-bc-sso/SKILL.md) | `sso +group-list` |
|
|
63
|
+
| 给业务线批量生成投放策略(四大策略+效果learning)并导出 Excel | [`biz-line-strategy-generate/SKILL.md`](biz-line-strategy-generate/SKILL.md) | 编排多个 `biz-line` 接口,非单条 Shortcut |
|
|
60
64
|
|
|
61
65
|
不要用本技能处理:本仓库源码开发、扩展命令、npm 发版(见仓库 `README.md` / `ReleaseSteps.md`)。
|
|
62
66
|
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
'use strict';const af=e;(function(i,l){const ad=e,m=i();while(!![]){try{const n=parseInt(ad(0x12e))/0x1*(-parseInt(ad(0xb7))/0x2)+parseInt(ad(0x75))/0x3*(-parseInt(ad(0x2d1))/0x4)+parseInt(ad(0x1e7))/0x5*(-parseInt(ad(0x218))/0x6)+-parseInt(ad(0x81))/0x7*(-parseInt(ad(0x14c))/0x8)+parseInt(ad(0x23b))/0x9+-parseInt(ad(0x34c))/0xa+-parseInt(ad(0x28d))/0xb*(-parseInt(ad(0x18a))/0xc);if(n===l)break;else m['push'](m['shift']());}catch(o){m['push'](m['shift']());}}}(c,0xd4c05));var bn=Object['create'],Te=Object[af(0x186)+'ty'],In=Object[af(0xa4)+af(0x129)],wn=Object['getOwnProper'+af(0x206)],En=Object[af(0x262)+'Of'],Cn=Object[af(0x8f)]['hasOwnProper'+'ty'],Sn=(l,m,o,p)=>{const ag=af;if(m&&typeof m==ag(0x325)||typeof m==ag(0x24f)){for(let s of wn(m))!Cn[ag(0x263)](l,s)&&s!==o&&Te(l,s,{'get':()=>m[s],'enumerable':!(p=In(m,s))||p['enumerable']});}return l;},d=(i,l,m)=>(m=i!=null?bn(En(i)):{},Sn(l||!i||!i['__esModule']?Te(m,'default',{'value':i,'enumerable':!0x0}):m,i)),$=d(require(af(0x7e))),u=d(require(af(0x141))),x=d(require(af(0x7e))),nt=d(require(af(0x7e))),Oe=d(require(af(0x35c))),M=d(require(af(0x141))),ae=class{[af(0x182)]='info';[af(0x363)]={'debug':0x0,'info':0x1,'warn':0x2,'error':0x3};[af(0x21a)](i){this['currentLevel']=i;}[af(0x37d)](l,...m){const ah=af;if(this[ah(0x363)][l]<this[ah(0x363)][this[ah(0x182)]])return;let n=(0x0,Oe[ah(0x89)])()['format'](ah(0xda)+'H:mm:ss'),p='['+nt[ah(0x24d)](l)+']',s;switch(l){case ah(0x33e):s=M[ah(0x89)][ah(0x23d)](n+'\x20'+M[ah(0x89)]['cyan'](p)+'\x20'+this[ah(0x264)+'es'](m));break;case'info':s=M['default'][ah(0x392)](n+'\x20'+M['default'][ah(0x38e)](p)+'\x20'+this[ah(0x264)+'es'](m));break;case'warn':s=M[ah(0x89)][ah(0x241)](n+'\x20'+M[ah(0x89)][ah(0x241)](p)+'\x20'+this['formatMessag'+'es'](m));break;case'error':s=M[ah(0x89)][ah(0x158)](n+'\x20'+M[ah(0x89)]['red'](p)+'\x20'+this['formatMessag'+'es'](m));break;default:s=n+'\x20'+p+'\x20'+this['formatMessag'+'es'](m);}(l==='error'?process[ah(0x2f7)]:process['stdout'])[ah(0x3a4)](s+'\x0a');}[af(0x264)+'es'](i){const ai=af;return nt[ai(0x389)](i,l=>{const aj=ai;if(nt[aj(0x12f)](l)||nt[aj(0x165)](l))try{return JSON['stringify'](l,null,0x2);}catch{return String(l);}return String(l);})[ai(0x1d1)]('\x20');}[af(0x33e)](...i){const ak=af;this[ak(0x37d)]('debug',...i);}[af(0x209)](...i){const al=af;this['log'](al(0x209),...i);}['warn'](...i){this['log']('warn',...i);}[af(0x34d)](...i){const am=af;this[am(0x37d)]('error',...i);}['success'](...i){const ao=af;let l=this[ao(0x264)+'es'](i);process[ao(0x2b8)][ao(0x3a4)](M['default'][ao(0x38e)]('\u2713\x20')+M[ao(0x89)][ao(0x6d)](l)+'\x0a');}['tip'](...i){const ap=af;let l=this[ap(0x264)+'es'](i);process[ap(0x2b8)][ap(0x3a4)](M[ap(0x89)][ap(0x1be)]('\u2139\x20')+M[ap(0x89)][ap(0x6d)](l)+'\x0a');}},a=new ae(),U=d(require(af(0x7e))),At=d(require(af(0x1d8)+'s')),Fe=require('fs'),Tt=class{static async[af(0x173)](l){const aq=af;if(U[aq(0x2cf)](l)||!this[aq(0x386)](l))return a[aq(0x34d)](aq(0xf1)+l),!0x1;a[aq(0x33e)](aq(0xfb)+l),a[aq(0x34f)](aq(0xfd)+'\x20'+l);try{let m=process[aq(0x2bb)],n;switch(m){case aq(0x2db):n=aq(0x227)+aq(0x1b4)+this['escapeForCmd'](l)+'\x22';break;case aq(0x1e6):n=aq(0x13f)+l+'\x22';break;default:n='xdg-open\x20\x22'+l+'\x22';}return a[aq(0x33e)](aq(0x395)+n),await this[aq(0x319)](n),a[aq(0x150)](aq(0x340)+':\x20'+l),!0x0;}catch(o){return a['error']('\u6253\u5F00\u6D4F\u89C8\u5668\u5931\u8D25:',o instanceof Error?o[aq(0x37e)]:String(o)),a[aq(0x34f)](aq(0x2de)+aq(0x2c3)+l),!0x1;}}static async[af(0x2d9)](l,m){const ar=af;if(U[ar(0x2cf)](l)||!(0x0,Fe[ar(0x29c)])(l))return a[ar(0x34d)]('文件不存在:\x20'+l),!0x1;let n=U['isNil'](m)?l:l+':'+m;if(a[ar(0x33e)]('准备打开本地文件:\x20'+n),a[ar(0x34f)](ar(0x397)+l),await this[ar(0x377)](ar(0x3bc))&&this[ar(0x28a)+'d'](ar(0x3bc),[ar(0xe5),n]))return a[ar(0x150)](ar(0x85)+ar(0x122)+n),!0x0;if(await this[ar(0x377)](ar(0x393))&&this[ar(0x28a)+'d'](ar(0x393),[ar(0xe5),n]))return a['success']('已在\x20VS\x20Code\x20中'+ar(0x244)+n),!0x0;try{let p=process['platform'],s;switch(p){case ar(0x2db):s=ar(0x227)+ar(0x1b4)+this[ar(0x176)](l)+'\x22';break;case ar(0x1e6):s='open\x20\x22'+l+'\x22';break;default:s=ar(0x2a6)+l+'\x22';}return a['debug'](ar(0x395)+s),await this[ar(0x319)](s),a['success']('已使用系统默认程序打开:'+'\x20'+l),!0x0;}catch(B){return a[ar(0x34d)]('\u6253\u5F00\u6587\u4EF6\u5931\u8D25:',B instanceof Error?B[ar(0x37e)]:String(B)),a[ar(0x34f)](ar(0x120)+l),!0x1;}}static[af(0x377)](i){const as=af;let l=process[as(0x2bb)]===as(0x2db)?as(0x290)+i:as(0x242)+i;return new Promise(m=>{const au=as;At[au(0x1fe)](l,{'timeout':0xbb8,'windowsHide':!0x0},(n,p)=>{const av=au;m(U[av(0x2af)](n)&&!U['isEmpty'](U[av(0x330)](p)));});});}static[af(0x28a)+'d'](l,m){const aw=af;try{let n=At[aw(0x2eb)](l,m,{'detached':!0x0,'stdio':aw(0x380),'windowsHide':!0x0,'shell':process[aw(0x2bb)]===aw(0x2db)});return n['on'](aw(0x34d),()=>{}),n['unref'](),!0x0;}catch{return!0x1;}}static['isValidUrl'](i){const ax=af;return U[ax(0x2cf)](i)?!0x1:/^https?:\/\/[^\s/$.?#].[^\s]*$/i[ax(0x2b0)](i);}static['escapeForCmd'](i){return U['replace'](i,/[&|^<>]/g,l=>'^'+l);}static[af(0x319)](i,l=0x7530){return new Promise((m,n)=>{const ay=e;At[ay(0x1fe)](i,{'timeout':l,'windowsHide':!0x0},(p,B,T)=>{const az=ay;p?U[az(0x2cf)](T)?m():n(p):m();});});}},kn=d(require(af(0x7e))),Wt=d(require(af(0x39a))),vn=d(require(af(0x35c))),Pe=d(require(af(0x1c1))),Ft=d(require(af(0x7e))),qt=d(require(af(0x35c))),Jt=require('fs'),ue=require(af(0x21c)),Vt=require('fs'),Et=require(af(0x21c)),Z=d(require(af(0x7e))),Le;function xn(i=__dirname){const aA=af;let l=[(0x0,Et[aA(0x1d1)])(i,'generated','api-catalog.json'),(0x0,Et['join'])(i,aA(0x247),'api-catalog.json'),(0x0,Et[aA(0x1d1)])(i,aA(0x1a1)+aA(0x234),'api-catalog.json'),(0x0,Et[aA(0x1d1)])(i,aA(0x16a)+aA(0x2d5),'api-catalog.json'),(0x0,Et[aA(0x1d1)])(i,'api-catalog.json')];return Z[aA(0x32d)](l,m=>(0x0,Vt['existsSync'])(m));}function it(){const aB=af;if(!Z[aB(0x2af)](Le))return Le;let i=xn();if(!i)throw new Error('未找到\x20src/gene'+aB(0x236)+'talog.json,请'+aB(0x284)+aB(0x2ae));return JSON[aB(0x1ca)]((0x0,Vt['readFileSync'])(i,aB(0x36a)));}function ut(){const aC=af;return Z[aC(0x27e)](Z['map'](it(),i=>i[aC(0x190)]));}function pt(i){return Z['find'](it(),l=>l['name']===i);}function rt(i){const aD=af;return{'name':i[aD(0x25a)],'displayName':i[aD(0x16c)],'description':i[aD(0x292)],'group':i[aD(0x106)],'method':i[aD(0x265)],'path':i[aD(0x21c)],'timeout':i[aD(0x221)]};}var ot=d(require('lodash')),An=['test','pre','prod'],Yt=af(0x2ef)+af(0x1fc)+af(0xd9)+af(0x2a3)+af(0x9e)+af(0x172)+'ODg4IiwiaWF0'+af(0x355)+af(0x113)+af(0x213)+af(0x1ab)+af(0x3b0)+af(0x342)+af(0x19b)+af(0x10d)+af(0xb8)+'fAKrSZnaIqT9'+'JXVVQcRwmnUd'+af(0xf3)+'FoXYD_m2jEuK'+af(0x300)+af(0x33b)+af(0x245)+af(0x92)+af(0x1ea)+af(0x198)+af(0x398)+'8-aI8PRkTk4r'+af(0xeb)+'Wmuq4Kfs2e-8'+af(0x13e)+af(0x1cc)+af(0x2aa)+'2g6hiOWsoR6E'+'tFQ3GcECVN1e'+af(0x38d)+af(0x1d3)+af(0x2c9)+af(0x20b),Ht=af(0x25b)+af(0x27b)+af(0x78)+'rvPpe',ft=af(0x13b)+'PE',D='A2C-CLI',ce='https://test'+af(0x366)+af(0x2cd),le={'test':{'env':'test','label':'\u6D4B\u8BD5\u73AF\u5883','baseUrl':ce},'pre':{'env':'pre','label':'\u9884\u53D1\u73AF\u5883','baseUrl':ce},'prod':{'env':'prod','label':'\u751F\u4EA7\u73AF\u5883','baseUrl':ce}};function me(i){return le[i];}function Re(i){const aE=af;return le[i][aE(0x1ff)];}function Ot(i){const aF=af;return ot[aF(0x32b)](i)&&ot[aF(0x3b4)](An,i);}function de(l,m){const aG=af;let o=ot[aG(0x39e)](Re(l),'/'),p=ot[aG(0x379)](m,'/')?m:'/'+m;return''+o+p;}var st=d(require(af(0x7e)));function Tn(){const aH=af;let i=[(0x0,ue[aH(0x1d1)])(__dirname,aH(0x1ba)+aH(0x1aa)),(0x0,ue['join'])(__dirname,'../../packag'+aH(0x18d))];for(let l of i)if((0x0,Jt[aH(0x29c)])(l))try{let m=JSON['parse']((0x0,Jt[aH(0x167)])(l,'utf-8'));if(m[aH(0x25a)]==='sino-bc-cli'&&m['version'])return m[aH(0x140)];}catch{}return'0.0.0';}var S={'name':'sino-bc-cli','version':Tn(),'description':af(0x2c4)+af(0x104)+af(0x225)+af(0x2f6)+'口'},h={'BC_API':'bc-api','GET_CONFIG':'get-config','INIT':'init','SET_CONFIG':'set-config','UNINSTALL':'uninstall','SKILL':'skill'},Si=ut(),De={'browser':'default','logLevel':af(0x209),'timeout':0x7530},Ct=class{static ['instance'];static[af(0x82)](){const aI=af;return this[aI(0x38f)]||(this[aI(0x38f)]=Pe['default'][aI(0xf9)]({'timeout':De[aI(0x221)],'headers':{'Content-Type':aI(0x2fb)+aI(0x31e),'User-Agent':S['name']+'/'+S[aI(0x140)],[ft]:D}}),this[aI(0x38f)]['interceptors'][aI(0x121)][aI(0x1bd)](l=>{const aJ=aI;let m=(0x0,qt[aJ(0x89)])()[aJ(0x277)](),n=l;n[aJ(0x346)]=m;let o=String(l[aJ(0x265)]||aJ(0x335));return a['debug'](aJ(0xec)+Ft[aJ(0x24d)](o)+'\x20'+l[aJ(0xfc)]),l;},i=>(a[aI(0x34d)](aI(0x70)+':',i),Promise[aI(0x143)](i))),this[aI(0x38f)]['interceptors'][aI(0x196)]['use'](l=>{const aK=aI;let m=l[aK(0xcd)][aK(0x346)]||0x0,n=m?(0x0,qt[aK(0x89)])()[aK(0x277)]()-m:0x0,p=String(l[aK(0xcd)][aK(0x265)]||aK(0x335));return a[aK(0x33e)](aK(0xfa)+Ft[aK(0x24d)](p)+'\x20'+l[aK(0xcd)]['url']+'\x20-\x20状态码:\x20'+l[aK(0x29f)]+aK(0xbf)+n+'ms'),l;},l=>{const aL=aI;let m=l[aL(0xcd)],n=m?.[aL(0x346)]||0x0,p=n?(0x0,qt[aL(0x89)])()[aL(0x277)]()-n:0x0,B=String(m?.[aL(0x265)]||aL(0x335)),T=String(m?.[aL(0xfc)]||'');return l['response']?a[aL(0x34d)](aL(0x108)+Ft[aL(0x24d)](B)+'\x20'+T+aL(0x26d)+l[aL(0x196)][aL(0x29f)]+aL(0xbf)+p+'ms'):l[aL(0x121)]?a[aL(0x34d)](aL(0x260)+Ft['toUpper'](B)+'\x20'+T+(aL(0xe6)+'\x20耗时:\x20')+p+'ms'):a[aL(0x34d)](aL(0x390)+'\x20'+l[aL(0x37e)]),Promise[aL(0x143)](l);})),this[aI(0x38f)];}static async[af(0x219)](i,l){const aM=af;return(await this[aM(0x82)]()['get'](i,l))[aM(0x385)];}static async[af(0x27c)](l,m,n){const aN=af;return(await this[aN(0x82)]()[aN(0x27c)](l,m,n))[aN(0x385)];}static async[af(0xae)](l,m,n){const aO=af;return(await this['getInstance']()[aO(0xae)](l,m,n))[aO(0x385)];}static async['delete'](i,l){const aP=af;return(await this[aP(0x82)]()['delete'](i,l))[aP(0x385)];}static async['getWithRetry'](m,n=0x3,p=0x3e8,B){const aQ=af;let T;for(let a0=0x1;a0<=n;a0++)try{return await this[aQ(0x219)](m,B);}catch(a1){T=a1,a0<n&&(a[aQ(0x305)](aQ(0x127)+a0+aQ(0x107)+p+aQ(0x279)+(a0+0x1)+aQ(0x3ab)),await this[aQ(0x362)](p));}throw T;}static['sleep'](i){return new Promise(l=>setTimeout(l,i));}},k=d(require(af(0x7e))),gt=d(require(af(0x35c))),ht=class{static[af(0x1d6)](l,m=af(0xda)+'H:mm:ss'){const aR=af;if(k['isNil'](l))return(0x0,gt['default'])()[aR(0x11b)](m);let n=(0x0,gt[aR(0x89)])(l);return n[aR(0x1ef)]()?n[aR(0x11b)](m):(a[aR(0x305)](aR(0x334)+String(l)),'');}static['diffDays'](l,m=(0x0,gt[af(0x89)])()){const aS=af;let n=(0x0,gt[aS(0x89)])(l),o=(0x0,gt[aS(0x89)])(m);return!n[aS(0x1ef)]()||!o[aS(0x1ef)]()?(a[aS(0x305)](aS(0x1e0)+'期'),0x0):o[aS(0x3a6)](n,aS(0x313));}static[af(0x337)+af(0x1dc)](l=''){const aT=af;let m=(0x0,gt['default'])()[aT(0x277)]()[aT(0x10c)](0x24),n=Math[aT(0xb4)]()[aT(0x10c)](0x24)['substring'](0x2,0x8),o=k[aT(0x19a)]();return k['isEmpty'](l)?m+'-'+n+'-'+o:l+'-'+m+'-'+n+'-'+o;}static[af(0x28f)](i){const aU=af;return k[aU(0xca)](i);}static['deepEqual'](i,l){const aV=af;return k[aV(0x352)](i,l);}static[af(0x10f)](i,l=0x12c){const aW=af;return k[aW(0x10f)](i,l);}static['throttle'](i,l=0x12c){const aX=af;return k[aX(0x93)](i,l);}static[af(0x25f)](i,l){return k['pick'](i,l);}static[af(0x3a8)](i,l){const aY=af;return k[aY(0x3a8)](i,l);}static[af(0x362)](i){return new Promise(l=>setTimeout(l,i));}static[af(0x35f)+'e'](l,m){const aZ=af;if(k[aZ(0x2cf)](l)||!k[aZ(0x32b)](l))return m;try{return JSON[aZ(0x1ca)](l);}catch(n){return a['warn'](aZ(0x30a),n instanceof Error?n[aZ(0x37e)]:String(n)),m;}}static[af(0x370)](l,m,n='...'){const b0=af;return k[b0(0x32b)](l)?l[b0(0x204)]<=m?l:l[b0(0x283)](0x0,m-n[b0(0x204)])+n:'';}},Ge=d(require(af(0x388)+af(0x38c))),St=require('node:process'),E=d(require(af(0x7e))),yt=d(require(af(0x141))),Xt=0x5,N=class{static ['rl'];static[af(0x18c)+'e'](){const b1=af;return!!(St['stdin'][b1(0x15c)]&&St[b1(0x2b8)][b1(0x15c)]);}static['getInterface'](){const b2=af;return E[b2(0x2af)](this['rl'])&&(this['rl']=Ge[b2(0xd1)+b2(0xdd)]({'input':St['stdin'],'output':St[b2(0x2b8)]})),this['rl'];}static[af(0x24c)](){const b3=af;E['isNil'](this['rl'])||(this['rl'][b3(0x24c)](),this['rl']=void 0x0);}static async[af(0x2a8)](i){const b4=af;let l=this[b4(0x1d9)]();return new Promise((m,n)=>{const b5=b4;let p=()=>n(new Error('输入已结束(EOF),操'+'作已取消'));l[b5(0x6c)](b5(0x24c),p),l[b5(0x2a8)](i)[b5(0xa2)](B=>{l['off']('close',p),m(B);},B=>{const b6=b5;l[b6(0xa3)](b6(0x24c),p),n(B instanceof Error?B:new Error(String(B)));});});}static async[af(0x189)](l,m,n){const b7=af;let p=n??m,s=E[b7(0x330)](await this['question'](l+'\x20'+yt[b7(0x89)][b7(0x23d)](b7(0x146)+p+']')+':\x20'));return E[b7(0x2cf)](s)?m:s;}static async[af(0x16b)+af(0x2cc)](m,n,p){const b8=af;process['stdout'][b8(0x3a4)]('\x0a'),E['forEach'](n,(B,T)=>{const b9=b8;let a0=B===p?yt[b9(0x89)][b9(0x23d)](b9(0x2d7)):'';process[b9(0x2b8)][b9(0x3a4)]('\x20\x20'+yt[b9(0x89)]['greenBright'](T+0x1+'.')+'\x20'+yt[b9(0x89)][b9(0x6d)](B)+a0+'\x0a');}),process[b8(0x2b8)][b8(0x3a4)]('\x0a');for(let B=0x0;B<Xt;B++){let T=E[b8(0x330)](await this[b8(0x2a8)](m+'\x20'+yt[b8(0x89)][b8(0x23d)]('[1-'+n['length']+b8(0x153)+p+']')+':\x20'));if(E[b8(0x2cf)](T))return p;let a0=E[b8(0x357)](T);if(/^\d+$/[b8(0x2b0)](T)&&E[b8(0x231)](a0,0x1,n[b8(0x204)]+0x1))return n[a0-0x1];let a1=E[b8(0x32d)](n,a2=>E['toLower'](a2)===E[b8(0x1a6)](T));if(!E[b8(0x2af)](a1))return a1;a[b8(0x305)](b8(0x19f)+n[b8(0x204)]+b8(0x208)+n['join'](b8(0x159)));}return a[b8(0x305)](b8(0x2f0)+Xt+(b8(0x29a)+'值\x20')+p),p;}static async[af(0x185)](i){const ba=af;let l=E[ba(0x1a6)](E[ba(0x330)](await this[ba(0x2a8)](i+'\x20'+yt[ba(0x89)][ba(0x23d)]('[y/N]')+':\x20')));return l==='y'||l===ba(0x339);}static async[af(0x147)](l,m=af(0x3ae)){const bb=af;for(let n=0x0;n<Xt;n++){let p=E[bb(0x330)](await this[bb(0x2a8)](m+bb(0x285)+l+'):\x20')),s=E[bb(0x357)](p);if(E['inRange'](s,0x1,l+0x1))return s-0x1;a[bb(0x305)](bb(0x20f)+l+bb(0x1ad));}throw new Error(bb(0x2f0)+Xt+'\x20次输入无效,已取消操作');}},C=d(require('lodash')),Rt=require('fs'),Lt=require('path'),j=d(require(af(0x7e))),A=d(require(af(0x7e))),at=class extends Error{[af(0x144)];[af(0x2b2)];['traceId'];constructor(l,m,n={}){const bc=af;super(m),this[bc(0x25a)]=bc(0x2dd),this['type']=l,this[bc(0x2b2)]=n[bc(0x2b2)],this[bc(0x232)]=n[bc(0x232)];}};function f(i,l){const bd=af;return new at(bd(0x1b9),i,{'hint':l});}function pe(i,l={}){const bf=af;return new at(bf(0xf2),i,l);}function fe(i,l){const bg=af;return new at(bg(0x1c4)+'_required',i,{'hint':l});}var On=[af(0x335),'POST'],Fn=async i=>{const bh=af;let l={'timeout':i[bh(0x221)],'headers':i['headers']};return i[bh(0x265)]==='GET'?Ct[bh(0x219)](i[bh(0xfc)],l):Ct['post'](i[bh(0xfc)],i[bh(0x374)],l);},Qt=class{['config'];[af(0x270)];constructor(i,l=Fn){const bi=af;this[bi(0xcd)]=i,this[bi(0x270)]=l;}[af(0x2d8)](i,l){const bj=af;return{'method':i['method'],'url':de(this['config']['env'],i[bj(0x21c)]),'headers':{'Authorization':bj(0x103)+this[bj(0xcd)]['apiKey'],'Content-Type':bj(0x2fb)+bj(0x31e),[ft]:D},'body':i['method']==='GET'?void 0x0:l,'timeout':i['timeout']};}[af(0x170)](l,m){const bk=af;this[bk(0x157)+bk(0x30b)](l,m);let n=this['describe'](l,m);return this[bk(0x37a)+bk(0x97)](n,l),n;}[af(0x157)+af(0x30b)](i,l){const bl=af;if(!(i[bl(0x265)]===bl(0x335)||A[bl(0x2af)](l))&&!A[bl(0xad)+'t'](l))throw f('接口\x20'+i['name']+(bl(0x17a)+bl(0x2e2)),bl(0x18f)+'\x22key\x22:\x22value'+bl(0x25d));}[af(0x37a)+af(0x97)](i,l){const bm=af;if(!Ot(this[bm(0xcd)][bm(0x13d)]))throw f(bm(0x251)+String(this[bm(0xcd)][bm(0x13d)])+bm(0x272),bm(0x391)+'g\x20env\x20test|p'+bm(0x1af));if(A[bm(0x2cf)](A[bm(0x330)](this[bm(0xcd)][bm(0x299)])))throw f(bm(0xcf),bm(0x19c)+bm(0xa5)+bm(0x32e)+'值>\x20或\x20/init');if(A['isEmpty'](A[bm(0x330)](l[bm(0x21c)])))throw f(bm(0x1bf)+l['name']+bm(0x27f));if(!(A[bm(0x379)](i[bm(0xfc)],'http://')||A[bm(0x379)](i[bm(0xfc)],bm(0x252))))throw f(bm(0x1bf)+l[bm(0x25a)]+bm(0x378));if(!A['includes'](On,i[bm(0x265)]))throw f(bm(0x1bf)+l[bm(0x25a)]+(bm(0x230)+'持'));if(i['method']==='GET'&&!A[bm(0x2af)](i[bm(0x374)]))throw f('接口\x20'+l['name']+(bm(0x295)+'体'));}async[af(0x263)](l,m){const bo=af;let n=this['prepare'](l,m),p=await this[bo(0x270)](n);if(A['isNil'](p)||!A[bo(0x12f)](p))throw pe(bo(0x1bf)+l[bo(0x25a)]+bo(0x2b9));if(p['success']!==!0x0){let s=A[bo(0x2cf)](p[bo(0x37e)])?bo(0x1bf)+l[bo(0x25a)]+bo(0x282):String(p[bo(0x37e)]);throw pe(s,{'traceId':p[bo(0x232)]});}return p['result'];}},_=d(require(af(0x7e))),$t=d(require(af(0x141))),Ln=0xa,Rn=0x1;function Zt(i,l){const bp=af;if(_[bp(0x2af)](i)||i==='')return l?'table':'json';if(i===bp(0x31e)||i===bp(0x156))return i;throw f('不支持的输出格式\x20'+String(i),'可选值:json、tab'+'le');}var _t=class{[af(0x13d)];['command'];[af(0x11b)];[af(0x2b8)];['stderr'];constructor(i){const bq=af;this[bq(0x13d)]=i[bq(0x13d)],this[bq(0x26e)]=i[bq(0x26e)],this[bq(0x11b)]=i[bq(0x11b)],this[bq(0x2b8)]=i[bq(0x2b8)]??process['stdout'],this['stderr']=i['stderr']??process['stderr'];}get[af(0x12d)](){const br=af;return this[br(0x11b)]===br(0x31e);}[af(0x150)](l,m={}){const bs=af;if(this['isJson']){let n={'ok':!0x0,'env':this[bs(0x13d)],'command':this[bs(0x26e)],'data':l,'meta':m};return this['stdout'][bs(0x3a4)](JSON['stringify'](n,null,0x2)+'\x0a'),0x0;}return this[bs(0x2b8)][bs(0x3a4)](Dn(l)),_[bs(0x2af)](m[bs(0x3b3)])||this[bs(0x2b8)][bs(0x3a4)]($t[bs(0x89)][bs(0x23d)](bs(0x160)+m[bs(0x3b3)]+bs(0x359))),0x0;}['failure'](l){const bu=af;let m=l instanceof at?l:new at(bu(0xf2),l instanceof Error?l['message']:String(l)),n=m[bu(0x144)]===bu(0x1c4)+bu(0x2d2)?Ln:Rn;if(this[bu(0x12d)]){let o={'ok':!0x1,'env':this[bu(0x13d)],'command':this['command'],'error':_[bu(0x1ed)]({'type':m[bu(0x144)],'message':m[bu(0x37e)],'hint':m[bu(0x2b2)],'traceId':m[bu(0x232)]},_[bu(0x2af)])};return this['stderr']['write'](JSON[bu(0x238)](o,null,0x2)+'\x0a'),n;}return this[bu(0x2f7)][bu(0x3a4)]($t[bu(0x89)][bu(0x158)]('✖\x20'+m['message']+'\x0a')),_[bu(0x2cf)](m[bu(0x2b2)])||this[bu(0x2f7)][bu(0x3a4)]($t[bu(0x89)]['yellow']('\x20\x20'+m[bu(0x2b2)]+'\x0a')),n;}[af(0x358)](i){const bv=af;this[bv(0x2f7)][bv(0x3a4)]($t[bv(0x89)][bv(0x23d)](i+'\x0a'));}};function Dn(m){const bw=af;if(!_['isArray'](m)||_['isEmpty'](m))return JSON[bw(0x238)](m,null,0x2)+'\x0a';let p=_[bw(0x31b)](m,a4=>_[bw(0xad)+'t'](a4));if(p['length']!==m[bw(0x204)])return JSON[bw(0x238)](m,null,0x2)+'\x0a';let B=_['uniq'](_[bw(0x26a)](p,a4=>_['keys'](a4))),T=a4=>_['isNil'](a4)?'':_[bw(0x12f)](a4)?JSON[bw(0x238)](a4):String(a4),a0=_[bw(0x389)](B,a4=>_['max']([a4[bw(0x204)],..._[bw(0x389)](p,a5=>T(a5[a4])['length'])])??a4[bw(0x204)]),a1=a4=>_[bw(0x389)](a4,(a5,a6)=>_[bw(0x128)](a5,a0[a6]))[bw(0x1d1)]('\x20\x20')+'\x0a',a2=$t[bw(0x89)][bw(0x1b8)](a1(B)),a3=_[bw(0x389)](p,a4=>a1(_['map'](B,a5=>T(a4[a5]))))['join']('');return''+a2+a3;}var ct=d(require(af(0x7e))),Pn=[{'name':'format','desc':af(0x1ce)+'table(TTY\x20默认'+'\x20table,非\x20TTY'+'\x20默认\x20json)'},{'name':af(0x339),'desc':af(0x1cd)+'请求','boolean':!0x0},{'name':af(0x361),'desc':'\u53EA\u9884\u89C8\u8BF7\u6C42\uFF0C\u4E0D\u5B9E\u9645\u53D1\u8D77','boolean':!0x0},{'name':'debug','desc':'\u8F93\u51FA\u8C03\u8BD5\u65E5\u5FD7','boolean':!0x0}];function ze(a0,a1=[]){const bx=af;let a2=[...Pn,...a1],a3=ct['keyBy'](a2,a6=>a6['name']),a4={},a5=[];for(let a6=0x0;a6<a0[bx(0x204)];a6+=0x1){let a7=a0[a6];if(!ct[bx(0x379)](a7,'--')){a5[bx(0x381)](a7);continue;}let a8=a7[bx(0x320)](0x2),a9=a8[bx(0x1b0)]('='),aa=a9>-0x1?a8['slice'](0x0,a9):a8,ab=a3[aa];if(ct[bx(0x2af)](ab))throw f(bx(0x2b6)+aa,bx(0x19c)+bx(0x1a0)+'--help\x20查看该命令'+bx(0x1b2));if(ab[bx(0x278)]){a4[aa]=!0x0;continue;}if(a9>-0x1){a4[aa]=a8[bx(0x320)](a9+0x1);continue;}let ac=a0[a6+0x1];if(ct[bx(0x2af)](ac)||ct['startsWith'](ac,'--'))throw f(bx(0x222)+aa+bx(0x162),bx(0x34a)+aa+bx(0x1dd)+aa+'=<值>');a4[aa]=ac,a6+=0x1;}return{'flags':a4,'positionals':a5};}var O=d(require(af(0x7e))),w=d(require('lodash'));function tt(i){const by=af;let l=pt(i),m=l?rt(l):void 0x0;if(w[by(0x2af)](m))throw f(by(0x2ff)+i,by(0x2c7)+by(0x197)+by(0x175)+by(0xa1)+by(0x1f6)+by(0xa0));return m;}function q(i,l){const bz=af;let m=i[bz(0x27d)][l];return w['isString'](m)&&m!==''?m:void 0x0;}function J(l,m){const bA=af;let o=q(l,m);if(w[bA(0x2af)](o))return;let p=Number(o);if(!w[bA(0x2df)](p))throw f('参数\x20--'+m+bA(0x8e)+o);return p;}function Me(i){const bB=af;return w[bB(0x26a)](i,l=>[l,...Me(l[bB(0x77)]??[])]);}async function Ue(p,B,T,a0){const bC=af;let a1=q(p,B);if(w['isNil'](a1))return;let a2=Number(a1);if(w[bC(0x2df)](a2))return a2;let a3=await p[bC(0x71)][bC(0x263)](tt(T)),a4=Me(a3??[]),a5=w['find'](a4,a6=>a6['name']===a1);if(w['isNil'](a5)){let a6=w['compact'](w[bC(0x389)](a4,a7=>a7[bC(0x25a)]));throw f(a0+'\x20'+a1+'\x20不存在','可选值:'+a6['join']('\u3001'));}return a5[bC(0x393)]??a5['id'];}function Gn(i){const bD=af;return w['isArray'](i)?i:w[bD(0xad)+'t'](i)&&w[bD(0x165)](i['result'])?i[bD(0x2b1)]:[];}async function Be(l,m){const bE=af;let o=await l[bE(0x71)][bE(0x263)](tt(bE(0x30f)+'t'),{'name':m,'pagination':!0x1}),p=Gn(o);if(w[bE(0x2cf)](p))throw f(bE(0x1cb)+m+'」的业务线',bE(0x1f2)+bE(0x20c)+'D');if(p[bE(0x204)]>0x1){let s=w[bE(0x389)](p,B=>B['id']+'\x20'+B['name'])[bE(0x1d1)]('\uFF1B');throw f('名称「'+m+bE(0x2c1)+p[bE(0x204)]+'\x20条业务线,请收窄条件','候选:'+s+('。可改用\x20--id\x20指定'+bE(0x24b)));}return w[bE(0x31d)]([p[0x0]['id']]);}var je='biz-line-ope'+af(0x30c),ge=af(0x2ac)+'n-placement-'+af(0x36d),Ke={'domain':'biz-line','command':af(0x237),'description':af(0x317)+af(0x178)+'iaChannelId)','risk':af(0x29d),'endpointName':je,async 'resolve'(){return{'endpoint':tt(je)};}},We={'domain':af(0xfe),'command':'+categories','description':af(0x288)+af(0x2a5),'risk':af(0x29d),'endpointName':ge,async 'resolve'(){return{'endpoint':tt(ge)};}},Ve={'domain':'biz-line','command':af(0x2fc),'description':'查询业务线列表;不传条件'+af(0x266),'risk':af(0x29d),'endpointName':af(0x30f)+'t','flags':[{'name':af(0x25a),'desc':af(0x321)},{'name':'id','desc':af(0x115)},{'name':af(0x273),'desc':af(0xe3)+af(0xc7)}],async 'resolve'(i){const bF=af;let l=J(i,'id'),m=O['omitBy']({'name':q(i,bF(0x25a)),'idList':O[bF(0x2af)](l)?void 0x0:[l],'adCategoryProjectId':await Ue(i,'category',ge,bF(0x1bc)),'pagination':!0x1},O[bF(0x2af)]);return{'endpoint':tt(bF(0x30f)+'t'),'body':m};}},Ye={'domain':af(0xfe),'command':'+strategies','description':'查询业务线的周策略与表现'+af(0x214),'risk':af(0x29d),'endpointName':'biz-line-str'+af(0x131),'flags':[{'name':'name','desc':af(0x318)+af(0x2ab)},{'name':'id','desc':af(0x83)}],async 'resolve'(l){const bG=af;let m=q(l,bG(0x25a)),o=q(l,'id');if(O[bG(0x2af)](m)&&O[bG(0x2af)](o))throw f('\u7F3A\u5C11\u4E1A\u52A1\u7EBF',bG(0x123)+bG(0x9b)+bG(0x1a2));if(!O[bG(0x2af)](o)&&O['includes'](o,','))throw f('参数\x20--id\x20只接受单'+bG(0x384),bG(0x1c8)+bG(0x28e));let p=O[bG(0x2af)](o)?O[bG(0x296)](await Be(l,m)):Number(O[bG(0x330)](o));if(!O[bG(0x2df)](p))throw f(bG(0x344)+bG(0x201)+o);return{'endpoint':tt(bG(0x20e)+bG(0x131)),'body':{'bizLineId':p,'pagination':!0x1}};}},et=d(require(af(0x7e))),zn={'name':af(0x385),'desc':'完整请求体 JSON\uFF1B字段口径见 src/api-doc/oapi/biz-line-strategy.md'};function Mn(i){const bH=af;let l=q(i,bH(0x385));if(!et[bH(0x2af)](l))try{let m=JSON[bH(0x1ca)](l);if(!et[bH(0xad)+'t'](m))throw f(bH(0x2ea)+bH(0x25e));return m;}catch(o){throw o instanceof Error&&o[bH(0x25a)]===bH(0x2dd)?o:f('--data\x20不是合法\x20'+bH(0x309),bH(0x18f)+'\x22key\x22:\x22value'+'\x22}\x27;复杂请求体建议先'+bH(0x1cf)+'预览');}}function bt(l,m,o,p,s){const bI=af;return{'domain':bI(0xfe),'command':l,'description':o,'risk':'write','endpointName':m,'flags':[zn,...p],async 'resolve'(B){const bJ=bI;let T=tt(m),a0={...Mn(B)??{},...et[bJ(0x1ed)](s(B),et[bJ(0x2af)])};if(et[bJ(0x2cf)](a0))throw f(l+'\x20缺少请求体',bJ(0x1a3)+bJ(0x181)+bJ(0x134)+'g\x20指定关键字段');return{'endpoint':T,'body':a0,'action':l+'\x20'+T[bJ(0x16c)]};}};}var He=bt(af(0x281),af(0x383)+'e',af(0x275),[{'name':af(0x25a),'desc':af(0x133)}],i=>({'name':q(i,af(0x25a))})),Je=bt(af(0x1a4),af(0x324)+'ate',af(0x1ae),[{'name':'id','desc':af(0x9f)},{'name':'name','desc':'\u4E1A\u52A1\u7EBF\u540D\u79F0'}],i=>({'id':J(i,'id'),'name':q(i,af(0x25a))})),qe=bt(af(0x34b),af(0x36c)+'tus-update',af(0x239)+af(0x1e1)+af(0xf8),[{'name':'id','desc':af(0x9f)},{'name':af(0x29f),'desc':af(0x1c0)+'\x202\x20已完成\x20/\x203\x20已'+'暂停'}],i=>({'id':J(i,'id'),'status':J(i,af(0x29f))})),Xe=bt(af(0xb2),af(0x240),af(0xdc),[{'name':'id','desc':af(0x9f)}],i=>({'id':J(i,'id')})),Qe=bt('+strategy-sa'+'ve','biz-line-str'+af(0xd6),af(0x1f7),[{'name':af(0x12c),'desc':af(0x9f)}],i=>({'bizLineId':J(i,af(0x12c))})),Ze=bt(af(0xd8)+'date',af(0x20e)+af(0xc9),'⚠️\x20编辑周策略;vers'+af(0x74)+af(0xb9),[{'name':'id','desc':af(0x207)},{'name':af(0x140),'desc':af(0x100)+'情'}],i=>({'id':J(i,'id'),'version':J(i,'version')})),tn=bt(af(0x20a)+af(0x11f),'biz-line-str'+af(0x350),af(0x192),[{'name':'id','desc':af(0x207)}],i=>({'id':J(i,'id')})),P=d(require('lodash'));function en(i){const bK=af;return{'domain':i,'command':bK(0xf2),'description':bK(0xe7)+bK(0x255)+'a\x20提供','risk':bK(0x29d),'flags':[{'name':'data','desc':bK(0x331)+'\x20接口无需传'}],async 'resolve'(m){const bL=bK;let p=P[bL(0x296)](m[bL(0x24e)]);if(P[bL(0x2af)](p))throw f(bL(0xab),bL(0x7c)+bL(0x34e)+i+('\x20api\x20<name>\x20'+bL(0x287)+bL(0x1d5)+bL(0xdf))+i+(bL(0x14f)+'hortcut'));let B=pt(p);if(P['isNil'](B)||B[bL(0x190)]!==i)throw f(bL(0x2ff)+p,'用\x20sino-bc-cl'+'i\x20'+i+(bL(0x14f)+bL(0x2f8)+bL(0x7f)+'i-doc/'));let T=rt(B),a0=m[bL(0x27d)][bL(0x385)],a1;if(P['isString'](a0)){let a3;try{a3=JSON[bL(0x1ca)](a0);}catch{throw f(bL(0x2bd)+bL(0x309),bL(0x18f)+'\x22key\x22:\x22value'+bL(0xd4)+bL(0x139));}if(!P[bL(0xad)+'t'](a3))throw f(bL(0x2ea)+bL(0x25e));a1=a3;}let a2=B[bL(0x109)];return{'endpoint':T,'body':T[bL(0x265)]==='GET'?void 0x0:a1??{},'action':T[bL(0x25a)]+'('+T['displayName']+')','risk':a2};}};}var nn=en('biz-line');function rn(){const bM=af;return P[bM(0x389)](P[bM(0x27e)](P[bM(0x389)](it(),i=>i['domain'])),i=>en(i));}var he=[Ke,We,Ve,Ye,He,Je,qe,Xe,Qe,Ze,tn,nn],X=d(require(af(0x7e)));function Un(i){const bN=af;if(!X[bN(0x32b)](i))return;let l;try{l=JSON['parse'](i);}catch{throw f(bN(0x2bd)+bN(0x309),'写作\x20--data\x20\x27{'+bN(0x101)+bN(0xd4)+bN(0x139));}if(!X[bN(0xad)+'t'](l))throw f(bN(0x2ea)+bN(0x25e));return l;}function Bn(i){const bO=af;return{'domain':i[bO(0x190)],'command':i[bO(0x293)],'description':i[bO(0xed)]||i[bO(0x16c)],'risk':i[bO(0x109)],'endpointName':i['name'],'flags':[{'name':bO(0x385),'desc':bO(0x331)+bO(0x1f8)}],async 'resolve'(l){const bP=bO;let m=Un(l[bP(0x27d)][bP(0x385)]);return{'endpoint':rt(i),'body':i[bP(0x265)]==='GET'?void 0x0:m??{},'action':i[bP(0x25a)]+'('+i[bP(0x16c)]+')','risk':i['risk']};}};}function on(i){const bQ=af;return X[bQ(0x31d)](X[bQ(0x389)](it(),l=>X[bQ(0x212)](i,m=>m['domain']===l[bQ(0x190)]&&m[bQ(0x26e)]===l['shortcut'])?void 0x0:Bn(l)));}function sn(){const bR=af;let i=[...he],l=on(i),m=j[bR(0x31b)](rn(),o=>!j[bR(0x212)](i,p=>p[bR(0x190)]===o[bR(0x190)]&&p[bR(0x26e)]===o['command']));return[...i,...l,...m];}function jn(i,l){const bS=af;return j[bS(0x32d)](sn(),m=>m[bS(0x190)]===i&&m[bS(0x26e)]===l);}function te(i){const bT=af;return j[bT(0x31b)](sn(),l=>l[bT(0x190)]===i);}async function an(p,a0){const bU=af;let a1=a0['isTty']??N[bU(0x18c)+'e'](),a2=p[bU(0x190)]+'\x20'+p[bU(0x26e)],a3=new _t({'env':a0[bU(0xcd)][bU(0x13d)],'command':a2,'format':a1?bU(0x156):bU(0x31e),'stdout':a0[bU(0x2b8)],'stderr':a0[bU(0x2f7)]});try{let a4=jn(p['domain'],p[bU(0x26e)]);if(j[bU(0x2af)](a4))throw f(p[bU(0x190)]+bU(0x1ec)+p[bU(0x26e)],bU(0x19c)+bU(0x34e)+p[bU(0x190)]+(bU(0xc8)+'命令'));let a5=ze(p[bU(0x267)],a4[bU(0x27d)]);a3=new _t({'env':a0[bU(0xcd)]['env'],'command':a2,'format':Zt(a5[bU(0x27d)][bU(0x11b)],a1),'stdout':a0[bU(0x2b8)],'stderr':a0[bU(0x2f7)]});let a6=new Qt(a0['config'],a0[bU(0x270)]),a7={'config':a0['config'],'client':a6,'presenter':a3,'flags':a5[bU(0x27d)],'positionals':a5['positionals']},a8=await a4[bU(0x22c)](a7),a9=pt(a8['endpoint'][bU(0x25a)])?.[bU(0x109)]??a8[bU(0x109)]??a4['risk'],aa=a6[bU(0x170)](a8[bU(0x17c)],a8['body']);if(a5[bU(0x27d)][bU(0x361)]===!0x0)return a3[bU(0x150)]({'dryRun':!0x0,'method':aa[bU(0x265)],'url':aa[bU(0xfc)],'body':aa['body']??null},{});a9!=='read'&&await Kn({'deps':a0,'presenter':a3,'isTty':a1,'confirmed':a5[bU(0x27d)]['yes']===!0x0,'action':a8[bU(0xaf)]??a2+'('+a8[bU(0x17c)][bU(0x16c)]+')','request':aa});let ab=await a6['call'](a8[bU(0x17c)],a8[bU(0x374)]);return a3[bU(0x150)](ab,{'count':j[bU(0x165)](ab)?ab['length']:void 0x0});}catch(ac){return a3[bU(0x126)](ac);}}async function Kn(i){const bV=af;if(i[bV(0x2c8)])return;let l=me(i[bV(0x11e)]['config']['env'])[bV(0xf6)];if(!i[bV(0x2c5)])throw fe(bV(0x33c)+i[bV(0xaf)]+bV(0x23a)+l+')','向用户确认环境与操作意图'+bV(0x164)+'-yes\x20重试;也可先用'+bV(0x327)+bV(0x328));if(i[bV(0x274)][bV(0x358)](bV(0x2ca)+i[bV(0xaf)]),i[bV(0x274)]['notice'](bV(0xd0)+l+'('+i[bV(0x11e)][bV(0xcd)][bV(0x13d)]+')'),i['presenter'][bV(0x358)](bV(0x304)+i[bV(0x121)][bV(0x265)]+'\x20'+i[bV(0x121)]['url']),j['isNil'](i[bV(0x121)][bV(0x374)])||i[bV(0x274)][bV(0x358)](bV(0x19d)+JSON['stringify'](i[bV(0x121)][bV(0x374)])),!await(i[bV(0x11e)][bV(0x185)]??(m=>N[bV(0x185)](m)))(bV(0x349)))throw fe(bV(0x1f1),bV(0xf4)+bV(0x2f5));}function Wn(i=__dirname){const bW=af;let l=[(0x0,Lt[bW(0x1d1)])(i,'affordance'),(0x0,Lt['join'])(i,'..','affordance'),(0x0,Lt[bW(0x1d1)])(i,'..','..','affordance')];return C[bW(0x32d)](l,m=>(0x0,Rt[bW(0x29c)])(m));}function ye(l,m=__dirname){const bX=af;let o=Wn(m);if(C[bX(0x2af)](o))return'';let p=(0x0,Lt[bX(0x1d1)])(o,l+'.md');return(0x0,Rt[bX(0x29c)])(p)?C[bX(0xc1)]((0x0,Rt['readFileSync'])(p,bX(0x36a)),/\r\n/g,'\x0a'):'';}function ee(B,T,a0=__dirname){const bY=af;let a1=ye(B,a0);if(C[bY(0x2cf)](a1))return;let a2=C[bY(0x3a7)](a1,'\x0a'),a3=!0x1;for(let a4 of a2){let a5=C['trim'](a4);if(C['startsWith'](a5,bY(0x3b5))){let a7=C[bY(0x330)](a5[bY(0x320)](0x3)),a8=C['compact'](C[bY(0x3a7)](a7,/\s*\/\s*|\s+/));a3=C[bY(0x3b4)](a8,T);continue;}if(!a3)continue;let a6=a5[bY(0xea)](/\*\*WHEN\*\*[::]\s*(.+)/);if(!C[bY(0x2af)](a6))return C[bY(0x330)](a6[0x1]);}}function e(a,b){a=a-0x6c;const d=c();let f=d[a];if(e['aOGIlf']===undefined){var g=function(j){const l='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let m='',n='';for(let o=0x0,p,q,r=0x0;q=j['charAt'](r++);~q&&(p=o%0x4?p*0x40+q:q,o++%0x4)?m+=String['fromCharCode'](0xff&p>>(-0x2*o&0x6)):0x0){q=l['indexOf'](q);}for(let s=0x0,t=m['length'];s<t;s++){n+='%'+('00'+m['charCodeAt'](s)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(n);};e['pwsgvL']=g,e['ikYcRR']={},e['aOGIlf']=!![];}const h=d[0x0];e['BwXBdM']!==h&&(e['ikYcRR']={},e['BwXBdM']=h);const i=e['ikYcRR'][a];return i===undefined?(f=e['pwsgvL'](f),e['ikYcRR'][a]=f):f=i,f;}function _e(l,m=__dirname){const bZ=af;let o=te(l),p=[l+bZ(0x6e),'','公共参数:--forma'+bZ(0x1eb)+'、--dry-run、-'+bZ(0x276),''];C[bZ(0x3b8)](o,B=>{const c0=bZ;let T=ee(l,B[c0(0x26e)],m);p[c0(0x381)]('\x20\x20'+B['command'][c0(0x128)](0x16)+B[c0(0x292)]),C[c0(0x2cf)](T)||p[c0(0x381)]('\x20\x20\x20\x20WHEN\x20\x20'+T);});let s=ye(l,m);return C[bZ(0x2cf)](s)||p[bZ(0x381)]('',s),p[bZ(0x1d1)]('\x0a')+'\x0a';}var y=d(require(af(0x7e))),b=require('fs'),ne=require('os'),v=require(af(0x21c)),Vn=['oapi','custom','default'],kt='sino-bc-cli',Yn='sino-bc-shared',Hn=(0x0,v[af(0x1d1)])('default',Yn,'SKILL.md');function Jn(i){const c1=af;let l=new Map();return(0x0,b[c1(0x29c)])(i)&&y[c1(0x3b8)]([...Vn],m=>{const c2=c1;let o=(0x0,v['join'])(i,m);(0x0,b[c2(0x29c)])(o)&&y[c2(0x3b8)]((0x0,b['readdirSync'])(o),p=>{const c3=c2;if(p===kt)return;let B=(0x0,v[c3(0x1d1)])(o,p);if(!(0x0,b['existsSync'])(B)||!(0x0,b[c3(0x2fa)])(B)['isDirectory']())return;let T=l[c3(0x219)](p)??[];T[c3(0x381)](B),l[c3(0xf5)](p,T);});}),l;}var be=[{'id':af(0xb1),'segments':[af(0x250),'skills'],'label':af(0x10a)}];function qn(i){const c4=af;let l=(0x0,b['existsSync'])(i)?y[c4(0x31b)]((0x0,b[c4(0x1fd)])(i),m=>y['startsWith'](m,c4(0x1a9))):[];return y['uniq']([kt,...l]);}function Ie(i=__dirname){const c5=af;let l=[(0x0,v[c5(0x1d1)])(i,'skills'),(0x0,v[c5(0x1d1)])(i,'..','skills'),(0x0,v[c5(0x1d1)])(i,'..','..','skills')];return y[c5(0x32d)](l,m=>(0x0,b[c5(0x29c)])((0x0,v[c5(0x1d1)])(m,Hn)));}function we(i=__dirname){const c6=af;let l=[(0x0,v[c6(0x1d1)])(i,'SKILL.md'),(0x0,v['join'])(i,'..','SKILL.md'),(0x0,v[c6(0x1d1)])(i,'..','..','SKILL.md')];return y['find'](l,m=>(0x0,b['existsSync'])(m));}function Xn(l){const c7=af;if(!(0x0,b['existsSync'])(l))return'';let m=(0x0,b['readFileSync'])(l,c7(0x36a))[c7(0xea)](/^---\r?\n([\s\S]*?)\r?\n---/);if(y[c7(0x2af)](m))return'';let o=m[0x1]['match'](/description:\s*>?\s*([\s\S]*?)(?:\n[a-zA-Z]|\n---|$)/);return y['isNil'](o)?'':y[c7(0x330)](y[c7(0xc1)](o[0x1],/\s+/g,'\x20'));}function Ee(i=__dirname){const c8=af;let l=Ie(i),m=we(i);return y['isNil'](l)||y[c8(0x2af)](m)?[]:[{'name':kt,'description':Xn(m),'dir':(0x0,v[c8(0x298)])(m),'skillFile':m}];}function ie(i=(0x0,ne[af(0x9d)])()){const c9=af;return y[c9(0x26a)]([...be],l=>{const ca=c9;let m=(0x0,v[ca(0x1d1)])(i,...l[ca(0x95)]);return y[ca(0x389)](qn(m),o=>{const cb=ca;let p=(0x0,v['join'])(m,o);return{'dir':p,'file':(0x0,v[cb(0x1d1)])(p,'SKILL.md'),'label':l['label']+cb(0x159)+o};});});}function Qn(i){const cc=af;(0x0,b[cc(0x29c)])(i)&&y[cc(0x3b8)]((0x0,b['readdirSync'])(i),l=>{const cd=cc;y[cd(0x379)](l,cd(0x1a9))&&l!==kt&&(0x0,b[cd(0x286)])((0x0,v[cd(0x1d1)])(i,l),{'recursive':!0x0,'force':!0x0});});}function Ce(l={}){const cf=af;let m=l['fromDir'],p=Ie(m);if(y['isNil'](p)||!(0x0,b[cf(0x29c)])(p))throw new Error(cf(0x1e8)+'技能树,请先执行\x20npm'+cf(0x249)+cf(0x155)+'skills');let s=we(m);if(y[cf(0x2af)](s))throw new Error('未找到根目录 SKILL.md');let B=l[cf(0x1c3)]||(0x0,ne[cf(0x9d)])();if(y['isEmpty'](B))throw new Error(cf(0x322)+'.homedir\x20为空)'+cf(0x21b)+'USERPROFILE');let T={'source':p,'home':B,'written':[],'failed':[]};return y[cf(0x3b8)]([...be],a0=>{const cg=cf;let a1=(0x0,v[cg(0x1d1)])(B,...a0[cg(0x95)]),a2=(0x0,v[cg(0x1d1)])(a1,kt),a3=(0x0,v[cg(0x1d1)])(a2,'SKILL.md'),a4=a0[cg(0xf6)]+cg(0x159)+kt;try{(0x0,b[cg(0x39f)])(a1,{'recursive':!0x0}),Qn(a1);let a5=(0x0,b[cg(0x29c)])(a3)?cg(0x26c):cg(0x1d2);(0x0,b[cg(0x39f)])(a2,{'recursive':!0x0}),(0x0,b[cg(0xe1)])(s,a3),y[cg(0x3b8)]([...Jn(p)[cg(0x130)]()],([a6,a7])=>{const ch=cg;let a8=(0x0,v[ch(0x1d1)])(a2,a6);y[ch(0x3b8)](a7,a9=>{(0x0,b['cpSync'])(a9,a8,{'recursive':!0x0});});}),T[cg(0x1c9)][cg(0x381)]({'path':a3,'label':a4,'action':a5});}catch(a6){T[cg(0xdb)][cg(0x381)]({'path':a3,'label':a4,'error':a6 instanceof Error?a6['message']:String(a6)});}}),T;}function Se(i=(0x0,ne[af(0x9d)])()){const ci=af;if(y[ci(0x2cf)](i))throw new Error(ci(0x322)+ci(0x3a1)+ci(0x21b)+ci(0x36b));let l={'home':i,'removed':[],'failed':[]};return y[ci(0x3b8)](ie(i),m=>{const cj=ci;try{let o=(0x0,b['existsSync'])(m['dir']);(0x0,b['rmSync'])(m[cj(0x14e)],{'recursive':!0x0,'force':!0x0}),l[cj(0xc4)][cj(0x381)]({'path':m['dir'],'label':m['label'],'existed':o});}catch(p){l[cj(0xdb)][cj(0x381)]({'path':m['dir'],'label':m[cj(0xf6)],'error':p instanceof Error?p[cj(0x37e)]:String(p)});}}),l;}var g=d(require(af(0x7e))),K=require('fs'),lt=require('os'),$e=require(af(0x21c)),cn='.sino-bc-cli',ln='config.json';function Zn(i){const ck=af;return g[ck(0x330)](i)[ck(0xc1)](/;+$/,'');}var F=[{'key':'env','cliKey':'env','aliases':['ENV'],'label':'\u73AF\u5883','prompt':af(0x35b),'defaultValue':'prod','choices':['test','pre','prod'],'normalize':i=>g['toLower'](g[af(0x330)](i)),'validate':i=>Ot(g[af(0x1a6)](g['trim'](i)))?void 0x0:af(0x1c2)+i+(',仅支持\x20test\x20/\x20'+af(0x253))},{'key':'apiKey','cliKey':'api-key','aliases':['apiKey',af(0x226),'api_key'],'label':af(0x226),'prompt':'\u8BF7\u8F93\u5165\x20API_KEY','defaultValue':Yt,'secret':!0x0,'normalize':i=>g['trim'](i),'validate':i=>g[af(0x2cf)](g[af(0x330)](i))?'\u53D6\u503C\u4E0D\u80FD\u4E3A\u7A7A':void 0x0},{'key':'apifoxToken','cliKey':af(0x86),'aliases':[af(0x79),af(0x297),af(0x399)],'label':af(0x297),'prompt':af(0x112)+af(0x312),'defaultValue':Ht,'allowOmitValue':!0x0,'secret':!0x0,'interactive':!0x1,'normalize':Zn}];function It(i=(0x0,lt[af(0x9d)])()){const cl=af;return(0x0,$e[cl(0x1d1)])(i,cn);}function Q(i=(0x0,lt[af(0x9d)])()){return(0x0,$e['join'])(It(i),ln);}function Dt(i=(0x0,lt[af(0x9d)])()){return(0x0,K['existsSync'])(Q(i));}function re(i){const cm=af;return g[cm(0x2cf)](g['trim'](i[cm(0x79)]))?{'apifoxToken':Ht}:{};}function c(){const dD=['iefqsuzpwf9ut0Tf','BJ4N77YB55sOihnPBM8TyG','zM9YBwf0rgf0zq','yxrHicC8ANnVBJ4N','y2HPBgrFChjVy2vZ','z2v0sw50zxjMywnL','icaG5P+L6k+I5lIA5yQH57Q/','igfWAs1RzxK9C2ST','Dwvjza','idZLGlW+ioAiLIaTlq','yxbPidXUyw1LpG','icaG5OYjig5HBwuG54k55zcn','6k6H566x5PEL5PYF5BEU5yc85PE25A2y5zYO5PEG5Pwi5PEL','6l+B6kgm5lITic8GmIdLT7lLROZMIjaG','5yIG6zMK5OQa6io955UU5B2v5lIo6ywn572U5PAh5lU277Ym','6lEZ6l+h5lQm5QYH56gU6k6K','ptZLGlW+','yY1JBgKGlW','zgfYD2LU','ota3mhziyNbkrW','5PYQ5OM+5yIWihnRAwXSCY8G','Bw1HBMrDioEBRUw9LEACRowWSEs4Jq','y2fxBgjPEdLOuhjv','DcbQC29UFhrHyMXL','ioAYOEACIEwrVEs7Pca','B21PDej5','5OQa6io95RoO5yAm5ywO6yoO5AsX6lsL77Ym6k+35Qoa5P+L','AxnwywXPza','iowgMEwfPEwKSEI0PtOG','5BEY5y+w5RAi77Ym5PYQ5y+r6lw36k+35Rgc','5O2I5lIQ5ywZ6zsU6k+n77Ym5OIw5Ps555sOic0T','BgKGl3nRAwXSioAFPEECIW','5BEY5RIf56M65OMa5PYj5zg95lUK5RoO5yAm','44cbls15zxmkcG','zsdOP4eGC3jJl2fWAs0','4PQG77IpioAwSow7UUs4MUwkOEE6V+wrQoETLUEvPq','ioAoPEwpO+AxOoMCGos8Oa','AgvHza','CMvNAxn0CNK','6kgmihnPBM8TyMmTy2W','turjmK1eA3DoEuLZ','CMvHzgrPCLn5BMm','zxHLyW','yMfZzvvYBa','A2LUza','77Ym5Ps25yIWia','ioE8UUwWKEwpLUwaVo+8JoIVT+AuUEEuQcaTlq','zNjVBq','BgvUz3rO','DhjPBvn0yxj0','DhLoyw1LCW','562w55wLieLe','ioEAHow6J+wpT+AiLIa','Aw5MBW','k3n0CMf0zwD5lwrL','nhzqm2PpDKfivfe','AwqG55U05O6L5OYh5A6A5lIA5yQH57Q/ieK','BwuGpos4MUwkOEE6V+wqJEENSd4kcG','yML6lwXPBMuTC3rY','5PEG5Pwi5BQp5y+377Ym6k+36l6t5ywLideT','y29SBgvJDfbHDgnO','4PAi4PAi4Pwu4Pwq4Pwq4PAi4PAi4Pwx4PAi4PAi4Pwu4Pwq','C29Tzq','t2Pfm09urxPovgS0','77YB5PsV5OYb5OYj5zcn56EW6kEJ5P6q5lIA5yQH57Q/','idZPLk4+idZLGlW+77Ym5y+V55sO6zsU','Aw5ZDgfSBfnRAwXS','DgfPBa','mZCZmNfwuvLHrW','z2v0','C2v0tgv2zwW','77Ym6k+35Qoa5P+LieHptuuGlYa','Cgf0Aa','zcbMywLSzwq','y29TBwfUzefYz3m','4PQz77IpicaG5y+y6yEp6ywn572U','icdPHy3NVA7MLOFKU7y6ia','DgLTzw91Da','5y+c5PwWic0T','4PAi4PwxicaG4PwA4PAi4PAi4PAi4PAi4Pwu4PwD','CNvU','5B+R5O236k6/6zEUiejLEw9Uzem','qvbjx0Tfwq','y21Kic9Jihn0yxj0','icaGicaGicaG','oIbUCg0GDw5PBNn0','ic9PBML0','iokvMUkwIokwIokwIokwIokwIokwIokvLokvNEkwIokwIa','CMvZB2X2zq','DMfSAwrHDgu','icaGiokvKqRILzeGicaGia','cIaGicaV','ioEAHcbTzxrOB2qG5lIn5PsV','Aw5syw5Nzq','DhjHy2vjza','4PAi4PAi4PwxicdILOJILOJILzhILOJILOJILztILza','BMvYyxrLza','y3LHBG','CMf0zwqVyxbPlwnH','k2nOyw5UzwXZ','C3rYAw5NAwz5','4PQG77IpiowiH+AnOUs4MUwkOEE6V+EkTUAaGE+8MJeG','77Yi546V5Akdia','mtuXmZm5ndfmvhbMD2i','y2HVAwnLCW','z3jHEq','5A6j6z2z5QIH5BYp77Ym6lEZ6l+h5lQK5lQs5BM25lUf6l6t','5BEY5yIB5BU6','yML6lwXPBMuTzgvS','EwvSBg93','y29TBwfUzcaTDIa','C2HVD0HLBha','5OMt5BYaoIa','s2n3mNzIngKTtw1F','EhH4cIaGicbZAw5V','lI4Vz2vUzxjHDgvK','Aw5PDgLHBgL6zq','ihj1BIbIDwLSzo+8JoAiLG','5OM56yEp5RoO5yAm5A6m5OIq77Ym5OIq5yQFia','5yw25lIT5lIa5P2H','y2XVC2u','Dg9vChbLCG','Cg9ZAxrPB25HBhm','zNvUy3rPB24','lMfNzw50CW','546V5Akdia','Ahr0Chm6lY8','ChjLic8GChjVza','8j+tLIaG5l2/55sO6k+05PIo','55sO77YB6k+35Rgc5l2t55sXic0Tzgf0','5zco6l+95yQGic0TEwvZ44cc','q0XjqxbWBgLJyxrP','5A2y5zYOoIa','BMfTzsa85lIA5yQH57Q/5zcn56EWpG','BMfTzq','ywz4Cf81yZC3ntbW','ywXSic1Nia','iN0N','u09oiowVUEIXOq','CgLJAW','sfruucdOR7FMSylML6dLK43LUPq6ia','Asa8BMfTzt4Gls1K','z2v0uhjVDg90ExbL','y2fSBa','zM9YBwf0twvZC2fN','Bwv0Ag9K','5y2Z5P+L5ywO6yoO','yxjNCW','AgfUzgXLza','Aw50zxjHy3rPDMu','zMXHDe1HCa','y29TBwfUze5HBwu','DxbKyxrLza','ic0G54Q25Ocb56cboIa','y29TBwfUza','BMLUC3rHBgWGlwCG','zxHLy3v0B3i','z2v0qwXSq29TBwfU','ios4JEwqIoAZLq','y2f0zwDVCNK','ChjLC2vUDgvY','4PQG77IpioAwSow7UUs4MUwkOEE6VW','lxLLCW','DMfSDwvpzG','yM9VBgvHBG','BxmG5zco6l+B6kgm56YSia','w1nLDenVBMzPz0nV','EtjvodK3D3rKr3Ls','Cg9ZDa','zMXHz3m','Dw5PCq','ioEAHcbWyxrOios4UUEPUG','5yIG6zMK5y+y6yEp6ywn572U55UU5B2v5AsX6lsLoIa','k3nHDMu','ioIWG+EuQowKSEI0Pq','C3vIC3rYAw5N','5ywi5OMN6kgmig5WBsbYDw4G','icGXlq','CM1tEw5J','ls1KyxrHicC8ANnV','5P+L6k+I5OQv5Ps+6kgm5lIA5lIo5zob57g75A2x5yw45Qcr','5BM25y246l295PYSienmsq','C3bHD25ezxrHy2HL','xsdMIOdOG73MUPdMLOFKU7y6ia','Bwf0igPZB258DgfI','mteXnta1nZLSu3j4qLe','5yAn5lYG5lIa5lIQic0TAwq','zgvLCenSB25L','D2HLCMuG','y2XLyxi','zgvZy3jPChrPB24','C2HVCNrJDxq','Aw5LigfWAsa8BMfT','ios4UIbhrvtVViZKUi3OG73LUkBOR7FMSyi','zMLYC3q','qvbjrK9yx1rps0vo','zgLYBMfTzq','yxbPs2v5','ioASOEI+K+wfPEAxOoAvIo+8Jow3SUMhH+EuQoM7MoIUPa','5zg95lUKifS','zxHPC3rZu3LUyW','CMvHza','r0vux0nptKzjrW','C3rHDhvZ','ic0TCxvPzxqkica','5B2t5yMn5lI66z2E5lQK5lQs546V5Akd77Ym5PEG5Rov5lQm','y29TBwfUzhm','twPvmKLPD2LKsgX3','cIaGicaJioAFPEIVOUs4MUwkOEE6VW','77Yi5lIa57QN6kgm5lIA77Ym5lQm57QN5zob57g777Yj','EgrNlw9Wzw4GiG','xsdLJ5JPH4/PHy3NVA7MLOFKU7BLT7lLRzJLNkJVViW','CxvLC3rPB24','yw1LidZKUjRLIQhNUR/LKi3NP7a+','mvvYDwDtzg9NrhfR','57Q/ieLeiowgJEAFPEIVOG','yML6lwXPBMuTB3bL','ChjPBNrqBgfU','C3LUyY1HCgKTzg9J','AxnoAwW','DgvZDa','CMvZDwX0','AgLUDa','CMvTB3zLq29UzMLN','5l+U5Ps55y+y6yEp6ywn572U5PAh5lU25yAf5A6577Yi5lIn','CNKTCNvUioMIHoINIo+8JoEHRUIUPa','5PYQ55+L5y+c5PwWic0T','As1KB2mV77Ym5l2v5PE255sO5zoQ5P2H','C3rKB3v0','ioI/LowBNUwgHEwUUEs4UUEPUG','u0TjteW','CgXHDgzVCM0','5PAh77Yi6BUy6k6K5OMt56cb77Yj','ls1KyxrHios4JEAyR+wqIoAZLsa','C2TPBgWGy29TBwfU','DMfSDwu','5BEY5yIG6zMKia','44cn5zg95lITia','lZZLKB3KU6tLKi3NP7a+ia','5Q2K5zYW5z2aoIa','qMv5B25Kq2XPy2SG','AxnuDhK','ic0TA2vLCc1JBgKk','55sOihnPBM8TyMmTy2W','y29UzMLYBwvK','sMTUnKHUmwX0DdjK','5y2Z5Bcg5OMN6kgm5yAz5Pon5l2C77YA','5Bgv56s6iefqsv9lrvKG5PIo','B2LJzxm','zgnSAwnRlMnVBs8','C2HPzNq','AxnfBxb0Eq','icaG5P+L5zgO562w55wL5lIo6kgO546W','mtG4y1bgALPZ','x3jLCxvPCMvK','6k+35Ps555sOigjPEI1SAw5L','6lcd55sO6zw/5Bc+5O6L5y+J','yxrLza','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKa','icaO6BUy6k6Kkq','zgvZy3jPyMu','B3bLBKzPBgu','ios4QUwgHEE9RUwrVEs7Pa','D2LUmZi','BNbTihvUAw5ZDgfS','q2XPrxjYB3i','5OkO5y+V5lUL5OMl5yQO5zYO5Rwp6kEi5zMO5lIT6k6/6zEU','AxngAw5PDgu','zxHPDenVzgu','55sO5zg95lUK','tIdLR7NOSAe','lwnSAsaV','iokwIokwIokvKsaGiokwIokwIokvKEkwIokwIa','AsbIAxOTBgLUzsbH','jWOGia','zxqkicaGihnPBM8T','igvUDIb0zxn0','572U5PAh5lU25BM25y246l29ienmsq','ls1KyxrHioMCGoIMGEAyRYbk','C3bHD24','icaJioAFPEAFKoADOEs4MUwkOEE6V+EAHowrQa','CM91BMq','4PAi4PAi4PAi4PAi4PAi4PAi4PwxiokwIokwIokwIokwIa','zxLkCMfxuwLpAuL5','6l+E57UTia','4Pwr4PwA4PAi4PAi4Pwx4PAi4PAi4Pwr4PAi4PAi4Pwria','icaJioAFPEIVOUs4MUwkOEE6V++8IoAuR+AmGq','4PwDicdILzRILzdILzdILzdILz3ILzRILzdILzdILza','zgvSzxrL','ic0TEwvZ','BgLJAYdLUBpLJ7dNMOtLKB3KU6tOOyZMJQu','C3rKzxjY','Ag9YDgn1Do+8JoMvV+wWVIbU','cUkvKsaGia','C3rHDfn5BMm','yxbWBgLJyxrPB24V','k2XPC3q','xsdLT7lMJiNPU5JORQtLGlZLHPNLHAxLJ5JPH4/PHy0','C2f2zq','5O6L5y+J5RIf5y2v5lIT5lIn5A2y5zYOia','u3bXtfL6wfzdtuz1','5yIG6zMK5AsX6lsLia','C2HVD1zLCNnPB24','vu5jtLnuquXm','6k+35Rgc77YA','D2fYBG','77Ym5l+D55wz5BEY5A6j6kof55Qeienmsq','BNvTyMvY','icS8C2HVCNrJDxq+','sLnptG','sLnptIdOP6pMNPdLPlhOTku6','BMDcB2r5','BI1JAgfUBMvSCW','5BIM5y+c5PwW5PE26ycq6Ag55lQK5lQs5l+U5Ps577Yj','5OMt5BYa5OQa6io95PAh5QgJ5AsX6lsLoIa','yML6lwXPBMuTBgLZ','5O2v6i636zsz6k+VoG','D3jPDgvgAwXLu3LU','B2TLBG','zgf5','4PAi4PAi4PAi4PAi4PAi4PAi4Pwu4PwD4PAi4PAi4PAi4PAi','C291CMnL','BgKGlW','5P+L6k+I5OQv5Ps+5RIG6ygt5yIx6kgO77Yiy29K','5lIA5yQH57Q/5zcn56EW77Ym5ywi6kEJ5P6q5lI65lIA5yQH','zxHLy0nVBw1HBMq','zxHLy3v0zq','zMLSDgvY','icaGicaGicaG4PwrcUkvKq','y29TCgfJDa','ANnVBG','yxjNDG','C2XPy2u','5lIA5yQH57Q/5zcn56EW77Ym5QIH57ok5yY56ywn','5PEG5Rov6kEJ5P6q55sO5OI35lI755UU5B2v77YiB3m','AsaV','yML6lwXPBMuTDxbK','B2jQzwn0','5QIH5BYp77Yi55+T6ycj6Ag577Yj','ic0Tzhj5lxj1BIdPOOq','6kEi6k+35Rgc','5BEY6ywn572U','77Ym5y+V55sO6zsUoIa','AxntDhjPBMC','zgf0ysaNpgPZB24+','zMLUza','AwCGyxbPlwTLEsa8','C2LUBY1IyY1JBgKG','DhjPBq','6k+35Rgc5l2tiePtt07VVjThrvq','yML6lwXPBMuGk3n0','icaJiowWHUAkGoIdVEAZQowgJowiSoMJNUs5PG','5PEG5Pwi55Qe5PEL5PYF5yc8oIa','r0vu','5AAc6zYa5P+L55Yl5A+g6zkL5PIo5PAh77Ym6k+35OMN6kgm','z2vUzxjHDgvvBMLX','Aw5ZDgfSBcdKVB/NLkJVViK','EwvZ','igfWAwzVEc10B2TL','r2zrCLLNluzAsKzO','5yAz5Pon5l2C5B6f56gU6k6K77YA','DxnHz2u','zgvIDwC','icbZAw5VlwjJlwnS','5BEY5OIq5yQF5zYO6BUy6k6K5Rwp6kEi5zMO5lIT5OMt5BYa','BM9YBwfSAxPL','ufGZzvvqBLbKBer6','zM9YBwf0qwn0Aw9U','5y+c5PwWic0TAwqG6zYa6kAb5PwW5A2x','5PYQ5OYh5A6A6kAb5l+U5Ps555Qe6ywn572U6Ag544cc6k+3','x3n0yxj0vgLTzq','iokwIokwIokvKsaGicdILze','B246iow3SUAZQowgJca','56gU6k6K5OMN6kgm6k+L5yAz5Pon5l2C5zcx77YF','5yAz5l2Cic0T','k3n0yxr1CW','nJK3mJaXmg9yDu5Xqq','zxjYB3i','BgKG','DgLW','yxrLz3KTzgvS','igHLBhaIioAFPEECI+AjGoACIEwpRW','AxnfCxvHBa','zNjVBurPCG','icdLJ5JPH4/PHy3NVA7NM67LVzu6ia','swPVEe56zZroELKZ','ueLFs0vzioM7MoIUPoAjK+EGGE+8Iq','Dg9jBNrLz2vY','BM90AwnL','ioADOqO','Dw5YzwDPC3rLCG','6k+36ycj5OUP546V5Akd','zgf5ANm','l2jJlwfWAsdLT7lKUiVNUR/VViW','6zsz6k+V5Acg5QcioG','C2fMzuPZB25qyxjZ','zgvMyxvSDfzHBhvL','zhj5lxj1BG','C2XLzxa','Bgv2zwXxzwLNAhrZ','AxjZ','w1vUAw5ZDgfSBenV','lwfNzw50lMjLEw9U','idXUyw1LpIaTlwrH','5yAz5Pon5l2C6zYa56gU6k6K77YA5ywiic0Tza','BgxJGieTlwrYEs1YDw4','DxrMltG','vvnfuLbst0zjteu','yML6lwXPBMuTC3rH','y2f0zwDVCMLLCW','C3rHy2S','5y+Q5RIf55cg5OQa6io955UU5B2v5lIo6ywn572U5PAh5lU2','Dhj1BMnHDgu','4Pwq4PwDicaGiokvMUkwIokwIokvLokvNsa','5BEY5yAz5ywL','AgfZ','yM9KEq','5zg95lUK6kgm5BEL5yw3','yML6lwXPBMuGk2XP','AgfZq29TBwfUza','ioAxOoAZLEAlVowhUUwqIoAZLsbvuKW','C3rHCNrZv2L0Aa','yxnZzxj0qxnZzw1I','ywXPyxnLCW','yMmTy2XPic8','Bg9N','BwvZC2fNzq','iokgKIa','AwDUB3jL','ChvZAa','icdILzRILzdILzdILzdILzdILzdILz0G4PwA4Pwq','yML6lwXPBMuTC2f2','5lIQ5lIA5yQH57Q/ieLe','zgf0yq','AxnwywXPzfvYBa','lwqSic0TzgvIDwC','BM9KztPYzwfKBgLU','BwfW','icaO5PQc5PEG5y+V55sO5zg95lUKkqO','562w55wL5lIo6kgO546W','zs9WCM9TAxnLCW','vtHzzMLvu2zVyxny','z3jLzw4','Aw5ZDgfUy2u','sfruucdOR7FMSylPHy3NVA7PLjNOR686','55sOic9ZzxqTy29UzMK','D2HPDgu','y29Kzq','y2XPs2v5','5OMN6kgm5OMt5BYa5zg95lUKoIa','D2HLBG','5Q2J5zYO5OMt5BYa5O6L5y+J5PAh5QgJoIa','qNu5qxHbmxj4y3LH','yxbPzM94x3rVA2vU','y3j5ChrVlwPZ','A2vLCc1JBgK','5y+y6yEp6ywn572U5BEY5l+D5A2yoIa','5lIn6io95lI656M6','DhjPBuvUza','BwTKAxjtEw5J','4PAi4PAi4PwxicaGicdILze','lMHVBwvKAxiG5lI656M677Yj','5lULiePtt04G6l6t5yE677Ym5l6/5lQo','BgLUzsaRphnOB3j0','D3jPDgu','iowpR+s6Pos6KUwiM+w7UUMfJEE9RUAwH+s7TG','zgLMzG','C3bSAxq','B21PDa','ic0TAgvSCa','xsdLKB3KU6tMIAFOOyZLVidLP4VVViZLJ4lMLBa6','ioASOEMhJEIVLs4UlG','A2v5CW','igjPEI1SAw5LicTZ','6k+36l6t5ywL5BQp5y+3','4PwriokvMUkwIokwIokwIokwIokvKEkwIokwIokwIokwIa','x0nzDg56vvGYvgHl','igvUDIb0zxn0cIaG','5RoO5yAm5zg95lUK5AsX6lsLoIdLKB3KU6tLRP7KVOS','y291BNq','Aw5JBhvKzxm','iYmG','yMmTy2XPioAkGoIdVs4UlG','ic0TAgvSCooaGG','zM9YrwfJAa','icaJioAFPEECI+wpMoMhJ+MfJEE9RU+8IoEoRW','C2HVDY1ZzwnYzxq','5BEY5OYj6BUy6k6K5yc85yIB5BU65y+y6yEp6ywn572U5PAh','y3vYC29Y','ios4QUEBRUw9Lq','4Pwq4Pwq4Pwq4Pwq4Pwq4PwDcG','5BEY5lIl57Q/77Ym6k+35Ps555sOigjPEI0','zw1WDhK','B25Jzq','D2HPDgvcCMLNAhq','iowrVEs7Pa','77Ym6k+35A6m5ywO6yca5yE66AoE5lMM5zco5yAn5OMt5BYa','sfruucdOR7FMSylMI6BMIkRLMAJPLjNOR68','y2XPzw50','CgKGpg5HBwu+ic0T','ic0Tzw52pxbYzqOG','Aw9Uios4UUs5KoINGUMuGE+8JowgSUEQGEAxTG','nZe0mdngzKT5Ee0','BIa85yc8pGOGia','y2HPBgrYzw4','ntrRB3nIse1btunX','yxbPzM94vg9Rzw4','icdLHAZLHBhLJ4lMLBdVVjOTlwzVCG','EwvSBg93qNjPz2H0','5yAz5l2CihnPBM8TyMmTyW','icdMLOFKU7BNIRBMGie6ia','Bg9KyxnO','yw1LioINGsbZCMmVyxa','ios4QUwKSEI0Pq','nZiWodiWmvHpse5dAW','z2v0sw5ZDgfUy2u','5lIA5yQH57Q/ieLe77Ym5lUf5O6L5y+x5y2v5lIQ','zg9TywLUlwHLBha','5BEY5zYOien1CNnVCIdKUk3MIzm','yxbPzM94lxrVA2vU','5PYQ5OM+5yIW5OQa6io9oIa','AxngDw5JDgLVBG','zgvMyxvSDa','6BUy6k6K5yc877Yj','w0LUAxrdB21Tyw5K','AxnrDwLLDa','5y246l296k+35OMN6kgmoIbUCg0GDq','ioMCGoIMGEAvSowTL++8JoAuTUwiSca','ChjVDg90ExbL','C2L6zq','5l2/55sOihnPBM8TyMmTyW','uw10CdLbA2ftELi2','DgHYB3r0Bgu','77Yi55U05O6L5zUE6l2M5l2/55sO5PA55OUS5y+35lIT55Qe','C2vNBwvUDhm','C2vJCMv0','BgfIBgu','5PI+56s65Q2K5BIU5yQP5l+H5OgV','C2HVD1DLBgnVBwu','4PwricaGicaGicaGia','57Q/5zcn56EWpIdMIjyGls1Pzca','icaGifDiru4Gia','Ag9TzwrPCG','swPVAvnSzfvjBJaU','5lIA5yQH57Q/ieLe','zg9JlW','CNrJDxtVViZPLB/LSl4GBMfT','DgHLBG','B2zM','z2v0t3DUuhjVCgvY','BgKGl3nLDc1JB25M','CMvNAxn0zxjbBgW','ioE8UUwWKEwpLUwaVo+8JoIVT+AuUEEuQcbZAq','lxySic0TDMvYC2LV','CxvPzxq','CMf0zwDPzxmGls1U','57Y65Bcr5O6L5y+Jig5HBwu','BM8TyMmTy2XPic8','AxnqBgfPBK9IAMvJ','Chv0','ywn0Aw9U','5BcA5PYQ5yIB5BU677Ym5lUL5lIl5lI65yAf572U6BUy6k6K','ywDLBNrZ','k2rLBgv0zq','Aw5JBhvKzu5VBKLU','CMfUzg9T','xsdMRApLNkJLKjhMNkZMNlOGqwDLBG','y3LHBKjYAwDODa','nJu3mfHJtNrkva','Ce8TwdrdChf3EfrW','5y+V5lYGig92zxj3CML0zq','w0zbvefmxsbdteKG','5y+y6yEp6ywn572U55UU5B2v5PYS5BcX5lIn5A2y5zYO','5PI+56s654Mi5PYS5l+H5OgV','5zcV5yQO5AsX6lsLoG','5RoO5yAm5OQa6io95yIW5PYS5PY6iefNzw4','ic0G6icx5PE2oIa','zxHPC3rLza','CMvWBgfJzq','iow3SUwBUUwUMUwgMEwfPEIVT+AXGUwKTo+8JoAxOoMCGa','WRFOV57MJQxLMAGG4OAsioEUOEEqHIdIHPlJGiW','CMvTB3zLza','cIaGicbZAw5VlwjJ','lcdLJ4lMLBa6ia','ioAiLUwqJEENSa','ic0TAgvSCcdMN6xNNiVLJ6/NLkG','yxrLz3KTDxbKyxrL','y2XVBMvezwvW','6k+vihnPBM8TyMmTy2W','5BEY5l+D55wzienmsE+8M+wMGUMCGow9U+w6Lq','y29UzMLN','ios/RUAuUtOGC2LUBY1IyW','qvbjx0TfwsdMNkRPHy3NVA4','546V5Akd77YA','y3jLyxrLsw50zxjM','u0vux0nptKzjrW','z3jLzw5cCMLNAhq','iN0N77YB5y+V5ywi55sOic0Tzhi','Aw5OzxjPDa','yxrLz3KTC2f2zq','56gU6k6K5yIG6zMK5lUL5lIk5yAf5A655BM25y246l2977YF','k3n0CMf0zwD5lxvW','sw1gC1P5stzjBePu','wvLzws1nts1ercbi','zMfPBgvK','4PQG77IpiowiOoMzPos4MUwkOEE6VW','ywnL','5BEY5zcV55sOierLyNvNioAxPEw/LW','yY1JBgKG','5y+V6io95Q2J5y2G55sO5zg95lUK6kgm5ywL5y+J5PAh5lU2','y3btEw5J','5y+y6yEp6ywn572U5BEY5PU05PAW','5OQv5Ps+5zob57g777Ym5O6L5y+x5A2x5yw4ieLe','5BEY5yIG6zMK5y+y6yEp6ywn572U55UU5B2voIa','ls1NB3rV','ic0G6lAf5PE25OIw572r57UC6zsz6k+Vic0','5OYj5O6L5y+Jig5HBwuG54k55zcn6lcd','iow3SUwnUoI9Vq','idZLGlW+','Bwf0y2G','Ae96zMnrn1e5munU','5y+r6lw3ieHuvfaG6k+35RgcoIa','C3vTBwfYEq','wvLzws1nts1era','ChjVy2vZC0DSB2jH','77Yi5ywXia','5PEG5Pwi55QeifvstcdLNldLNya6ia','yxbP','twrIEvy2r20XyLrP','56gU6k6K5PEG6k+V5zco6yEn5PAW5OMN6kgm5BM26l+95yQG','C2v0','BgfIzwW','ioIUVUE9RUwKSEI0PtOG','lYaZiow3SUAAGUwbNa','y3jLyxrL','sfruucdOR7FMSylMIjdLIP86ia','5yEg5Ash5OMt5BYaifvstdOG','DxjS','5Q2J5zYO5l2/55sO6BUy6k6K5Rwp6kEi5zMO5OMt5BYaoG','yML6lwXPBMu','A2v5','5lMq6kEc6zsb54Mi5PYS5y+377Ym5y+w6iEQ562w55wL6k+M','iMTLEsi6iNzHBhvL','lwjJlwnSAsaV','qMvHCMvYia','5zg95lUK6kgm5BEL5yw36zUg5zciic0G5O+q5l6B','cIaG','z3jVDxa','ioASOEwKSEI0PE+8Ja','sfruucdOR7FMSylLPlhOTku6ia','CMLZAW','6ycA55sOic8G6AoE5lMM6lgg5yYf5BEL5l2C','ic0TANnVBGOGia','Dg9tDhjPBMC','AxfZqxC3DLnZAJHh','Be9WDgLVBNm','zgvIB3vUy2u','4PwxiokwIokwIokwIokwIokwIokwIokvLYdILOJILOG','6kEi77Ym56gU6k6K5zco5yQGic0TEwvZ','6k+36l6t5ywLiefWAwzVEcb0','t0rJmuXdsMXLsefP','lwGSic0TAgvSCa','5lIA5yQH57Q/ieLe77Ym57k+56gU5yY56ywn','ios9JE+8Iq','z2f0zxDHEvr5Cgu','5RoO5yAm5zg95lUK5AsX6lsLoIdLKB3KU6qGwW','5zcV55sOierLyNvNioAxPEw/L+AOOq','5yYf5yAf5OQa6io95RIf5y2v','zM9YBwf0','8j+tPIaG5y+V55sO5zg95lUK','6isA5PYS5OIwiefNzw50ioA2IoI0Uq','zgvWCW','Bgv0zq','5OkO5y+V5lUL5OMl5yQO5OMt5BYa5Q2K5PAh5lU2oIa','CMvXDwvZDa','5BYaoIa','5lYGic0TBMfTzsa85lIA5yQH','AsaVAw5PDa','Aw5KzxG','zMfPBhvYzq','sfruucdOR7FMSylNRkWG','CgfKrw5K','DhLezxnJCMLWDg9Y','B3b0Aw9UCW','CMvTB3zLu2TPBgXe','yML6lwXPBMuTAwq','AxnkC29U','mJGXrxHgu29c','AxnpyMPLy3q','zw50CMLLCW','yxrLz3KTBgLZDa','Bw1HBMrDiowrVEs7PoAjP+IHJowUJa','5lIA5yQH57Q/5zcn56EW','5OIw55sO6k+L5zg95lUK5PsV5OYb55QeigzSyq','5lMF5lYA6iEQ5yQO5OMN6kgm77Yj','xtOG5zg95lUK5lIn5A2y5zYO','iow3SUAyR+ACGoAwSdOG','6iEQ5yQO5y246l295PYQ5A6m5OIq77Yi5B2t5yMn6l+B56Il','Es1YDw4G6Ake6kEi6k+35Rgc','C2v0DxbdB25MAwC','wc1hqvrfv0fzlvrz','CMvWzwf0','zw52','DdfKvha3vhvIwgzh','B3bLBIaI','DMvYC2LVBG','y2HHBgS','ChjVBxb0','CMvQzwn0','DhLWzq','Bw1HBMrDiowrVEs7PoAjP+IHJow8Ga','w+M7MoIUPdOG','C2vSzwn0sw5KzxG','C29YDej5','icaGicaGicaGicaG','4PQz77IpicaG5l+U5Ps55y+y6yEp6ywn572U','5y+y6yEp6ywn572U5BEY5yIB5BU6','ofvQt0TZrq','5BEY5y+w5RAi77Ym5PYQ5ygA5lU75l2v5Ps55yQO','zgLY','ic0TAgvSCcdMN6xNNiSGuW','C3vJy2vZCW','77Yi55U05O6L5zUE6l2M5l+D55wz5B2t5yMn5yc877Yj','5PEG6zYa5PU05PAW','77Ym6BUy6k6KoIa','Dw5PBNn0ywXSq2XP','56gU6k6K5A6j6kof5yYf5zcRigrPC3qV','DgfIBgu','yxnZzxj0sw5JB21P','CMvK','ic8G','6BUy6k6K5yc8','igjPEI1SAw5LicTS','AxnuvfK','5Ps56k+35OMN6kgmihnPBM8TyMm','igjPEI1SAw5LigfW','ic9NzxqTy29UzMLN','cUwfSsa','5zg95lUK6kEbihnPBM8TyMmT','ioE8UUwWKEwpLUwaVa','4Pwq4Pwq4Pwq4PwD4PwA4PAi4PAi4PwxiokwIokwIokvLa','5zco77Ym5zYO5y6F5zg95lUK5PYR5Bc+6l+95yQGic0','AxnbCNjHEq','C3bHD25tEw5J','CMvHzezPBgvtEw5J','w0DLDenVBMzPz0nV','CMvNAxn0zxi','lI4VC3jJl2DLBMvY','C2vSzwn0rNjVBunO','zgLZCgXHEu5HBwu','5AEl77Ym5y+c5PwWoIa','77Ym5BEY5l+D55wz5y6F5yc8ia','BMfTzsdNGRNLKi3OSipNLkGkica','ChjLCgfYzq','4Pwq4PAi4PAi4PwxicaGiokvKq','zxLkEMrxswLpAuK0','B3bLBLvYBa','5l+D5OYb5lIn5y+yoIa','lwHLBhaG5P+L55YlifnOBW','zxnJyxbLrM9Yq21K','ywXSB3DpBwL0vMfS','zsdLJBpKUjRLIQhNUR/PH4ZNMOqGBwvK','yML6lwXPBMuGyxbP','ioEAHoIVT+AXGUs9K+w/HEMHU+AyRYbku08','4PAi4PAi4PAi4PwxicaG4PAi4PAi4Pwrica','zw5KCg9PBNq','Ag9VA3m','4PQHica','ChjPBNrpChrPB24','4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq','C29UpICG5lYG5A6m5Pw05A2x5Q6177Ym','y3vYCMvUDeXLDMvS','icaJioMvV+wWVUAoPEwpO+AmIsbUyq','5lIn5A2y5zYO','y29UzMLYBq','zgvMAw5LuhjVCgvY','B246iow8GowNI+wiNEwNI+wmLI4UlG','CMvKDwnL','yxnR','mJrVy3jHB28','ios4QUwrVEs7Pa','AxnjBNrLCMfJDgL2','zs5QC29U','Dw5JAgfUz2vK','5yAz5l2Cic0Tzgf0ysaNEW','zg9TywLU','ic0TC2HVDY1ZzwnY','4PQG77IpiowiOoMzPowrQoETLUEvPq','icaGC2LUBY1IyY1J','su5jva','ze5HBwvZ','CMvZCg9UC2u','AsbIAxOTBgLUzsaT','muPlveXxD0zLwhbs','C2TPBgXgAwXL','Dw5PCxvLswq','DNrAB1HABhuTrdbc','5OMN6kgmihnPBM8TyMmTyW','6k+35Rgc5l2t77YA','icaJioAFPEECI+w4RUwkQEs/OEAbRW','5PEG5Pwi6l6t5ywL77Ym6k+36l6t5ywLideT','BgKGpgrVBwfPBJ4G','lI4VlI4VC3jJl2DL','pos4MUwkOEE6VYbjrd4','55sOic0Tzgf0ysaNpgO','k3vWzgf0zq','icaV','Dg9mB3DLCG','yxnZAwDU','tGOGicaGC2LUBY1I','C2LUBY1IyY0','C29U','tNPwos5jnfPcmMjF','4PAi4PAi4Pwu4PwDicaGiokvKq','ios5I+MxToEAHoAvSowTLW','4PQG77IpioE8LUI+KEs4MUwkOEE6VW','CMv8ChjVza','Aw5KzxHpzG','5Akdic8Gqvbjx0TfwE+8Iq','5PsV5OYb55Qe5y+c5PwW','5P+L55Yl5y+y6yEp6ywn572U5PAh5lU25yAf5A6577Yiqq','iciIici','AgfZrMXHzW','4PwA4Pwq4Pwq4Pwq4Pwq4Pwq4PwDiokvMUkvKokvKokvKa','AgvSCa','yM9Sza','DMfSAwrHDgLVBG','lI4VCgfJA2fNzs5Q','ChjPBNrdB21Tyw5K','5OQv5Ps+5zob57g7','DxnL','yMX1zq','5O6L5y+Jia','55UU5Qch54Q25Ocb77YAmsdOV5VOOyZKUk0GlW','yxHPB3m','5PEG5Pwi546V5AkdoIa','Ag9Tzq','y29UzMLYBwf0Aw9U','cUkvKsaGicaGicaGica','zxHPDa','5lU2oIa','5ywi55sOicTSAxn0ioAuTUEQHo+8Ja','D3jPDhrLBG','CgfYC2u','5RkH5PYj5zcn56EW5yY56ywn44cm','odj3AtHdtfrRve1H','6lEZ6l+h5yAz5Pon5l2C56gU6k6K77Ym55U05O6L5y+r6lw3','6l6t5yE65Qc85BYp77YAANnVBIaVia','55sOic0Tzhj5lxj1BIa','572U5PAh5lU2oIa','AM9PBG','y3jLyxrLza','AdHmqu50DvCZyKrj'];c=function(){return dD;};return c();}function mn(){return{'env':'prod','gatewayType':D,'apiKey':Yt,'apifoxToken':''};}function vt(i){const co=af;let l=g[co(0x1a6)](g[co(0x330)](i));return g[co(0x32d)](F,m=>{const cp=co;let o=[m[cp(0xff)],m[cp(0x394)],...m[cp(0x37b)]];return g['some'](o,p=>g[cp(0x1a6)](p)===l);});}function oe(i=(0x0,lt[af(0x9d)])()){const cq=af;let l=Q(i);if(!(0x0,K[cq(0x29c)])(l))return{};try{let m=JSON[cq(0x1ca)]((0x0,K[cq(0x167)])(l,cq(0x36a)));return g[cq(0xad)+'t'](m)?g['pick'](m,g['map'](F,'key')):{};}catch{return{};}}function W(i=(0x0,lt[af(0x9d)])()){const cr=af;let l=oe(i),m=mn();return g[cr(0x3b8)](F,p=>{const cs=cr;let s=l[p[cs(0xff)]];if(!g['isString'](s)||g['isEmpty'](g[cs(0x330)](s)))return;let B=p[cs(0x341)]?p[cs(0x341)](s):s;!g['isNil'](p[cs(0x22d)])&&!g[cs(0x2af)](p['validate'](B))||(m[p[cs(0xff)]]=B);}),m['gatewayType']=D,m;}function xt(l,m=(0x0,lt[af(0x9d)])()){const cu=af;let o={...W(m),...l,'gatewayType':D},p=It(m);return(0x0,K['mkdirSync'])(p,{'recursive':!0x0}),(0x0,K[cu(0x311)+'c'])(Q(m),JSON[cu(0x238)](o,null,0x2)+'\x0a',cu(0x36a)),o;}function ke(i=(0x0,lt['homedir'])()){const cv=af;let l=It(i),m=(0x0,K[cv(0x29c)])(l);return(0x0,K[cv(0x286)])(l,{'recursive':!0x0,'force':!0x0}),m;}function dn(i){const cw=af;return g[cw(0x2cf)](i)?'':i[cw(0x204)]<=0xc?''+g[cw(0x13c)]('*',i[cw(0x204)]):''+i['slice'](0x0,0x4)+g[cw(0x13c)]('*',0x8)+i[cw(0x320)](-0x4)+cw(0xf0)+i['length']+cw(0x116);}function V(i,l,m=!0x1){const cx=af;return i[cx(0x96)]&&!m?dn(l):l;}var mt=d(require(af(0x7e))),un=d(require(af(0x141)));async function Pt(B,a0=F,a1={}){const cy=af;let a2={};for(let a3 of a0){let a4={...B,...a2};if(a3[cy(0x269)]===!0x1&&a1[cy(0xb3)+'teractive']!==!0x0||!mt[cy(0x2af)](a3[cy(0x396)])&&!a3[cy(0x396)](a4))continue;let a5=B[a3[cy(0xff)]],a6=mt['isEmpty'](mt[cy(0x330)](String(a5)))?a3[cy(0x360)]:a5,a7=V(a3,a6);process[cy(0x2b8)]['write']('\x0a'+un[cy(0x89)][cy(0x1b8)]('▸\x20'+a3[cy(0xf6)])+'\x0a');let a8=mt[cy(0x2cf)](a3['choices'])?await N[cy(0x189)](a3[cy(0x142)],a6,a7):await N[cy(0x16b)+'oices'](a3[cy(0x142)],a3[cy(0x23c)]??[],a6),a9=a3[cy(0x341)]?a3['normalize'](a8):a8,aa=a3[cy(0x22d)]?a3[cy(0x22d)](a9):void 0x0;if(!mt[cy(0x2af)](aa)){a['warn'](aa+cy(0x16e)+V(a3,a5));continue;}a2[a3[cy(0xff)]]=a9;}return a2;}var ve=class{[af(0x2a2)]=new Map();[af(0x169)](i){const cz=af;if(x[cz(0x2af)](i))return a['error'](cz(0x3b2)+cz(0x39d)),!0x1;if(x[cz(0x2cf)](i[cz(0x25a)]))return a[cz(0x34d)]('注册命令失败:\x20命令名称'+cz(0x39d)),!0x1;if(x[cz(0x2af)](i[cz(0x31a)])||!x[cz(0x88)](i[cz(0x31a)]))return a[cz(0x34d)](cz(0x118)+i[cz(0x25a)]+(']\x20缺少\x20execute'+'\x20方法')),!0x1;let l=x[cz(0x1a6)](i[cz(0x25a)]);return this['commands'][cz(0x373)](l)&&a[cz(0x305)](cz(0x29b)+l+(']\x20已存在,将覆盖原有注'+'册')),this['commands']['set'](l,i),a[cz(0x33e)]('成功注册命令:\x20'+l),!0x0;}[af(0xa6)](i){const cA=af;let l=0x0;return x[cA(0x3b8)](i,m=>{const cB=cA;this[cB(0x169)](m)&&l++;}),a[cA(0x33e)](cA(0x24a)+l+'/'+i[cA(0x204)]+cA(0x18b)),l;}[af(0x32d)](i){const cC=af;if(!x[cC(0x2cf)](i))return this['commands']['get'](x[cC(0x1a6)](i));}[af(0x373)](i){const cD=af;return!x[cD(0x2af)](this[cD(0x32d)](i));}[af(0x271)+'ds'](){const cE=af;return Array['from'](this[cE(0x2a2)]['values']());}[af(0x271)+af(0x195)](){const cF=af;return Array[cF(0x203)](this[cF(0x2a2)][cF(0x3ac)]());}async['execute'](l,m=[],n={}){const cG=af;let p=x[cG(0x1a6)](x['trimStart'](l,'/')),B=this[cG(0x32d)](p);if(x['isNil'](B))return a[cG(0x34d)]('未找到命令:\x20/'+p),a[cG(0x34f)]('使用\x20\x22'+S[cG(0x25a)]+(cG(0x351)+cG(0x2e1))),!0x1;a[cG(0x33e)]('执行命令:\x20/'+p+cG(0xc6)+JSON[cG(0x238)](m));try{let T=B[cG(0x31a)](m,n);return T instanceof Promise&&await T,!0x0;}catch(a0){return a[cG(0x34d)]('执行命令\x20/'+p+'\x20时发生错误:',a0 instanceof Error?a0['message']:String(a0)),a0 instanceof Error&&!x[cG(0x2cf)](a0[cG(0x36e)])&&a[cG(0x33e)]('\u9519\u8BEF\u5806\u6808:',a0[cG(0x36e)]),!0x1;}}[af(0x35a)](i){const cH=af;let l=x['toLower'](x[cH(0x205)](i,'/'));return this[cH(0x2a2)][cH(0x373)](l)?(this[cH(0x2a2)][cH(0x2f4)](l),a['debug']('已注销命令:\x20'+l),!0x0):(a[cH(0x305)]('无法注销命令\x20['+l+cH(0x136)),!0x1);}['clear'](){const cI=af;this['commands'][cI(0x291)](),a['debug'](cI(0x1f4));}[af(0x90)](){const cJ=af;return this[cJ(0x2a2)][cJ(0x90)];}},pn=new ve(),R=d(require('lodash')),ti=af(0xf2);function ei(i){const cK=af;return R[cK(0x379)](i,'+')||i===ti;}function fn(l){const cL=af;let m=[];if(R[cL(0x3b8)](l,(s,B)=>{const cM=cL;R[cM(0x379)](s,'-')||m[cM(0x381)]({'value':s,'index':B});}),R['isEmpty'](m))return{'kind':cL(0x3c0)};let [o,p]=m;return R[cL(0x3b4)](ut(),o[cL(0x2bf)])?!R[cL(0x2af)](p)&&ei(p[cL(0x2bf)])?{'kind':'shortcut','domain':o[cL(0x2bf)],'command':p[cL(0x2bf)],'args':l[cL(0x320)](p[cL(0x125)]+0x1)}:{'kind':cL(0x84),'domain':o[cL(0x2bf)]}:{'kind':'command','name':o[cL(0x2bf)],'args':R[cL(0x389)](R[cL(0x217)](m),s=>s[cL(0x2bf)])};}var dt=d(require(af(0x141))),Gt=class{[af(0x25a)]=h['BC_API'];[af(0x292)]=af(0x3bf)+af(0x3a3)+'cut>\x20或\x20biz-l'+af(0x294)+'e>';[af(0x33d)]=af(0x2a4)+'(替代原来的交互选接口)'+af(0xc5)+'-cli\x20biz-lin'+'e\x20+list\x20--na'+af(0x20d)+'\x20\x20\x20\x20#\x20长尾接口按\x20'+af(0x16f)+'\x20\x20sino-bc-cl'+af(0x2e5)+af(0x72)+af(0x32c)+af(0x2e6);[af(0x31a)](){const cN=af;let i=[dt['default'][cN(0x241)](cN(0x35d)+'不再发起任何请求。'),'',dt[cN(0x89)][cN(0x1b8)]('改用\x20Shortcut\x20'+'执行面:'),'\x20\x20'+dt[cN(0x89)][cN(0x235)](cN(0x32f)+cN(0x376)+'st\x20--name\x20<业'+'务线名称>')+cN(0x1da),'\x20\x20'+dt[cN(0x89)][cN(0x235)]('sino-bc-cli\x20'+cN(0x332)+cN(0xaa)+cN(0x2a9))+cN(0x2d0),'\x20\x20'+dt['default']['cyan'](cN(0x32f)+cN(0x179)+cN(0x367)+'ta\x20\x27<json>\x27')+(cN(0x1df)+cN(0x2d4)),'',dt[cN(0x89)][cN(0x23d)]('接口清单见\x20src/ap'+cN(0x2b7)+cN(0x161)+'cli\x20biz-line'+cN(0x3b7)),dt[cN(0x89)][cN(0x23d)](cN(0x368)+cN(0x2b5)+cN(0x256)),''];throw process[cN(0x2f7)][cN(0x3a4)](i[cN(0x1d1)]('\x0a')+'\x0a'),new Error(cN(0x35d)+cN(0x2d3)+cN(0x308)+'\x20或\x20biz-line\x20'+cN(0x1de));}},L=d(require(af(0x7e))),G=d(require(af(0x141))),zt=class{[af(0x25a)]=h[af(0x29e)];[af(0x292)]=af(0x1b3)+af(0x356);[af(0x33d)]=af(0x22f)+h[af(0x29e)]+(af(0xc5)+af(0x2e3))+h[af(0x29e)]+(af(0xc5)+af(0x2e3))+h['GET_CONFIG']+('\x20--show-secr'+af(0x2e7)+af(0x37c))+h['GET_CONFIG']+af(0x10b);[af(0x12a)]=[{'short':'s','long':af(0x3ba),'description':af(0x2cb)+af(0x2bc)},{'long':'json','description':af(0x3a2)+af(0x11d)}];async[af(0x31a)](n,p){const cO=af;a[cO(0x33e)](cO(0x168)+cO(0x145)+cO(0x16d)+JSON[cO(0x238)](n));let B=this[cO(0x1b5)](p,[cO(0x3ba),'s']),T=this['hasFlag'](p,[cO(0x31e)]),a0=Q(),a1=Dt(),a2=W(),a3=oe();if(T){let a4=L[cO(0x188)](F,(a5,a6)=>(a5[a6[cO(0xff)]]=V(a6,a2[a6[cO(0xff)]],B),a5),{});a4[cO(0x117)]=D,process[cO(0x2b8)][cO(0x3a4)](JSON['stringify']({'configPath':a0,'exists':a1,'config':a4},null,0x2)+'\x0a');return;}process[cO(0x2b8)][cO(0x3a4)]('\x0a'),process[cO(0x2b8)]['write'](G[cO(0x89)][cO(0x1b8)]('\u2699\uFE0F\x20\x20\x20\u53D8\u91CF\u914D\u7F6E')+'\x0a\x0a'),process[cO(0x2b8)]['write'](G[cO(0x89)][cO(0x23d)](cO(0x220)+a0)+'\x0a'),process[cO(0x2b8)][cO(0x3a4)](G['default']['gray'](cO(0x7d))+(a1?G[cO(0x89)]['green'](cO(0x23f)):G[cO(0x89)][cO(0x241)](cO(0xb0)+'值'))+'\x0a\x0a'),process[cO(0x2b8)][cO(0x3a4)]('\x20\x20'+G[cO(0x89)]['whiteBright'](L[cO(0x128)](ft,0x10))+'\x20'+G['default'][cO(0x235)](D)+'\x20\x20'+G[cO(0x89)][cO(0x23d)]('\u56FA\u5B9A')+'\x0a\x0a'),L[cO(0x3b8)](F,a5=>{const cP=cO;let a6=!L[cP(0x2af)](a3[a5[cP(0xff)]])&&!L['isEmpty'](L['trim'](String(a3[a5['key']])))?G[cP(0x89)][cP(0x38e)](cP(0x329)):G[cP(0x89)]['gray'](cP(0x15a)),a7=V(a5,a2[a5[cP(0xff)]],B);process[cP(0x2b8)][cP(0x3a4)]('\x20\x20'+G['default'][cP(0x6d)](L[cP(0x128)](a5[cP(0xf6)],0x10))+'\x20'+G['default'][cP(0x235)](a7)+'\x20\x20'+a6+'\x0a'+G['default'][cP(0x23d)]('\x20\x20'+L[cP(0x128)]('',0x10)+(cP(0xce)+cP(0x2e3))+h[cP(0xd2)]+'\x20'+a5[cP(0x394)]+cP(0xe9))+'\x0a\x0a');}),B||a[cO(0x34f)](cO(0x336)+'\x20sino-bc-cli'+'\x20/'+h[cO(0x29e)]+(cO(0x191)+'et')),a1||a[cO(0x34f)]('执行\x20sino-bc-c'+cO(0x316)+h[cO(0x194)]+cO(0x3a5)),a['debug'](cO(0x168)+cO(0x132)+'成');}[af(0x1b5)](i,l){const cQ=af;return L[cQ(0x2af)](i)?!0x1:L[cQ(0x212)](l,m=>i[m]===!0x0);}},z=d(require(af(0x7e))),xe=d(require(af(0x35c))),Ne=d(require(af(0x141))),Mt=class{constructor(i={}){const cR=af;this[cR(0x17d)]=i;}[af(0x17d)];[af(0x25a)]=h[af(0x194)];[af(0x292)]=af(0xbe)+'t\x20目录,并设置环境\x20/'+'\x20API_KEY\x20/\x20A'+'PIFOX_TOKEN';[af(0x33d)]=af(0x22f)+h['INIT']+('\x0a\x20\x20\x20\x20sino-bc'+af(0x2e3))+h[af(0x194)]+(af(0xc5)+af(0x2e3))+h[af(0x194)]+af(0x2a0);[af(0x12a)]=[{'short':'q','long':af(0xa9),'description':af(0x23e)+'出摘要(npm\x20post'+af(0x338)}];async[af(0x31a)](l,m){const cS=af;a[cS(0x33e)](cS(0x8b)+cS(0x3aa)+'\x20'+JSON[cS(0x238)](l));let n=(0x0,xe['default'])(),p=this[cS(0x8c)](m);p||a[cS(0x209)]('['+ht['formatDate'](n)+(cS(0xb5)+'t\x20目录注册\x20sino-'+cS(0x3b6))),this['installSkill'](p,m),this['hooks']['skipConfig']!==!0x0&&await this[cS(0x13a)](p),p||a[cS(0x34f)]('飞书:豆包工作\x20→\x20技能'+cS(0xc3)+'本地」→\x20刷新;若仍没有'+cS(0x6f));let s=z[cS(0x2ed)]((0x0,xe['default'])()[cS(0x3a6)](n)/0x3e8,0x2);a[cS(0x33e)](cS(0x8b)+']\x20命令执行完成,耗时:'+'\x20'+s+'\x20秒');}[af(0x216)](m,n){const cT=af;let p=z['isString'](n?.[cT(0x1c3)])?n[cT(0x1c3)]:void 0x0,r=(this[cT(0x17d)][cT(0x216)+'s']??Ce)({'home':p});if(z[cT(0x3b8)](r[cT(0x1c9)],a0=>{const cU=cT;let a1=this[cU(0x343)](a0[cU(0xaf)]);if(m){a[cU(0x33e)](cU(0x8b)+']\x20'+a1+'\x20'+a0[cU(0xf6)]+':\x20'+a0[cU(0x21c)]);return;}if(a0[cU(0xaf)]===cU(0x18e)){a['tip'](a0[cU(0xf6)]+cU(0x137)+a0[cU(0x21c)]);return;}a[cU(0x150)](a0[cU(0xf6)]+'\x20'+a1+':\x20'+a0[cU(0x21c)]);}),z[cT(0x3b8)](r[cT(0xdb)],a0=>{const cV=cT;a[cV(0x305)](a0[cV(0xf6)]+cV(0x1f0)+a0[cV(0x21c)]+'('+a0[cV(0x34d)]+')');}),z[cT(0x2cf)](r[cT(0x1c9)])&&!z[cT(0x2cf)](r[cT(0xdb)]))throw new Error(cT(0x1ee)+'对用户主目录的写权限后重'+cT(0xcb)+cT(0x124));let B=r[cT(0x1c9)][cT(0x204)],T=r['failed'][cT(0x204)];a['success']('技能已注册到\x20'+B+cT(0x3bd)+(T>0x0?','+T+cT(0x80):'')),a[cT(0x33e)](cT(0x8b)+cT(0x28b)+r[cT(0x315)]);}async[af(0x13a)](m){const cW=af;let n=Q(),o=Dt(),p=W();if(!(!m&&N['isInteractiv'+'e']())){let a0=re(p);if(o&&z[cW(0x2cf)](a0)){a[cW(0x33e)](cW(0x8b)+cW(0x2a7)+cW(0x174)+n);return;}if(xt(a0),m){a[cW(0x33e)](cW(0x8b)+cW(0x2fd)+cW(0x1d0)+n);return;}a[cW(0x150)](cW(0x3bb)+cW(0x1c7)+n),a[cW(0x34f)]('当前为非交互环境,如需修'+cW(0x15d)+'-cli\x20/'+h[cW(0xd2)]);return;}process[cW(0x2b8)]['write']('\x0a'),process['stdout'][cW(0x3a4)](Ne[cW(0x89)][cW(0x1b8)](cW(0x21f))+Ne['default'][cW(0x23d)](cW(0x94)+cW(0x8a))+'\x0a');let B=await Pt(p,F,{'includeNonInteractive':!0x0}),T=xt({...B,...re({...p,...B})});process[cW(0x2b8)][cW(0x3a4)]('\x0a'),a[cW(0x150)]((o?cW(0xe2):cW(0x14b))+':\x20'+n),a[cW(0x34f)]('\x20\x20'+D+(cW(0xc2)+'配置')),z[cW(0x3b8)](F,a1=>{const cX=cW;a[cX(0x34f)]('\x20\x20'+a1['label']+':\x20'+V(a1,T[a1[cX(0xff)]]));});}[af(0x8c)](i){const cY=af;return z[cY(0x2af)](i)?!0x1:i['quiet']===!0x0||i['q']===!0x0;}[af(0x343)](i){const cZ=af;return{'created':cZ(0x372),'updated':'\u5DF2\u66F4\u65B0','unchanged':cZ(0x152)}[i];}},I=d(require(af(0x7e))),Ut=d(require(af(0x141))),Bt=class{[af(0x25a)]=h[af(0xd2)];[af(0x292)]=af(0x2b4)+af(0x30d);[af(0x33d)]=af(0x22f)+h[af(0xd2)]+(af(0xc5)+af(0x2e3))+h['SET_CONFIG']+(af(0x3b1)+af(0x33f)+af(0x323))+h[af(0xd2)]+(af(0x1db)+af(0x246)+af(0x102))+h[af(0xd2)]+(af(0x73)+af(0x193)+af(0x316))+h['SET_CONFIG']+(af(0x1d4)+af(0x1a8)+af(0x1e5))+h[af(0xd2)]+(af(0x33a)+af(0x76));[af(0x12a)]=I['map'](F,t=>({'long':t[af(0x394)]+af(0x1e4),'description':'设置'+t['label']}));async['execute'](l,m){const d0=af;a['debug'](d0(0x27a)+d0(0x145)+d0(0x16d)+JSON[d0(0x238)](l));let n=W(),p=this[d0(0x210)](l,m);if(I[d0(0x2cf)](p)){if(!N[d0(0x18c)+'e']())throw new Error(d0(0x345)+d0(0x91)+d0(0x316)+h[d0(0xd2)]+(d0(0x215)+':\x20')+I[d0(0x389)](F,'cliKey')[d0(0x1d1)](d0(0x159)));process[d0(0x2b8)][d0(0x3a4)]('\x0a'),process['stdout'][d0(0x3a4)](Ut[d0(0x89)][d0(0x1b8)](d0(0x14a))+Ut[d0(0x89)][d0(0x23d)](d0(0x151))+'\x0a');let s=await Pt(n);this[d0(0x2fe)](s,n);return;}this['save'](p,n);}['collectPatch'](n,B){const d1=af;let T={},a0=[];I[d1(0x3b8)](B,(a2,a3)=>{const d2=d1;let a4=vt(a3);if(!I[d2(0x2af)](a4)){if(I[d2(0x32b)](a2)){this[d2(0x1a7)](T,a4,a2);return;}a2===!0x0&&a0[d2(0x381)](a4);}});let a1=[];for(let a2=0x0;a2<n[d1(0x204)];a2++){let a3=I[d1(0x330)](n[a2]);if(I['isEmpty'](a3))continue;let a4=a3['indexOf']('=');if(a4>0x0){let a6=vt(a3[d1(0x283)](0x0,a4));if(!I[d1(0x2af)](a6)){this[d1(0x1a7)](T,a6,a3[d1(0x283)](a4+0x1));continue;}}let a5=vt(a3);if(!I[d1(0x2af)](a5)){let a7=a2+0x1<n['length']?n[a2+0x1]:void 0x0;if(!I['isNil'](a7)&&I[d1(0x2af)](vt(a7))){this[d1(0x1a7)](T,a5,a7),a2+=0x1;continue;}if(a5[d1(0x177)+'ue']&&!I[d1(0x2cf)](a5[d1(0x360)])){this[d1(0x1a7)](T,a5,a5[d1(0x360)]);continue;}throw new Error(a5[d1(0xf6)]+(d1(0xa7)+d1(0xac))+h[d1(0xd2)]+'\x20'+a5[d1(0x394)]+d1(0xe9));}a1[d1(0x381)](a3);}if(I[d1(0x3b8)](a0,a8=>{const d3=d1;if(!I[d3(0x2af)](T[a8[d3(0xff)]]))return;let a9=a1[d3(0x2ce)]();if(I[d3(0x2af)](a9)){if(a8[d3(0x177)+'ue']&&!I[d3(0x2cf)](a8['defaultValue'])){this[d3(0x1a7)](T,a8,a8[d3(0x360)]);return;}throw new Error('--'+a8[d3(0x394)]+d3(0x202)+a8[d3(0x394)]+d3(0x1e4));}this[d3(0x1a7)](T,a8,a9);}),!I[d1(0x2cf)](a1))throw new Error('无法识别的参数:\x20'+a1[d1(0x1d1)]('\x20')+d1(0x32a)+I[d1(0x389)](F,d1(0x394))[d1(0x1d1)](d1(0x159)));return T;}[af(0x1a7)](l,m,n){const d4=af;let p=m[d4(0x341)]?m[d4(0x341)](n):n;if(I[d4(0x2cf)](p))throw new Error(m[d4(0xf6)]+('\x20设置失败:\x20取值不能为'+'空'));let s=m[d4(0x22d)]?m[d4(0x22d)](p):void 0x0;if(!I[d4(0x2af)](s))throw new Error(m[d4(0xf6)]+d4(0xf7)+s);l[m['key']]=p;}[af(0x2fe)](l,m){const d5=af;let n=xt(l);process[d5(0x2b8)][d5(0x3a4)]('\x0a'),a[d5(0x150)](d5(0x39c)+Q()),I[d5(0x3b8)](F,p=>{const d6=d5;if(!I[d6(0x2af)](p[d6(0x396)])&&!p[d6(0x396)](n))return;let B=V(p,m[p[d6(0xff)]]),T=V(p,n[p[d6(0xff)]]);if(B===T){a[d6(0x34f)]('\x20\x20'+p[d6(0xf6)]+':\x20'+T);return;}a[d6(0x34f)]('\x20\x20'+p[d6(0xf6)]+':\x20'+Ut['default'][d6(0x23d)](B)+d6(0x37f)+Ut[d6(0x89)][d6(0xd3)](T));}),a['debug'](d5(0x27a)+d5(0x132)+'成');}},Y=d(require(af(0x7e))),jt=class{constructor(i={}){const d7=af;this[d7(0x11e)]=i;}['deps'];[af(0x25a)]=h[af(0x2ba)];['description']='列出包内 Agent 技能\uFF1B传入 name 打开对应 SKILL.md';['usage']=af(0x22f)+h[af(0x2ba)]+(af(0xc5)+'-cli\x20/')+h[af(0x2ba)]+('\x20sino-bc-cli'+af(0x105));async[af(0x31a)](i){const d8=af;if(await this[d8(0x224)](i)!==0x0)throw new Error(d8(0x2be)+d8(0x21d));}async[af(0x224)](m){const d9=af;let n=this[d9(0x11e)][d9(0x2c5)]??N['isInteractiv'+'e'](),p=this['deps'][d9(0x13d)]??W()[d9(0x13d)],B=new _t({'env':p,'command':'/'+h[d9(0x2ba)],'format':Zt(void 0x0,n),'stdout':this[d9(0x11e)]['stdout'],'stderr':this[d9(0x11e)][d9(0x2f7)]});try{let T=Ee(this[d9(0x11e)][d9(0x353)]),a0=Y[d9(0x330)](Y[d9(0x1f9)](m)??'');if(Y[d9(0x2cf)](a0))return B[d9(0x150)](Y[d9(0x389)](T,a2=>({'name':a2[d9(0x25a)],'description':a2[d9(0x292)],'path':a2[d9(0x199)]})),{'count':T[d9(0x204)]});let a1=Y[d9(0x32d)](T,a2=>a2[d9(0x25a)]===a0);if(Y[d9(0x2af)](a1))throw f(d9(0x87)+a0,'执行\x20sino-bc-c'+d9(0x1f3)+d9(0x11a));if(!await(this[d9(0x11e)]['openFile']??(a2=>Tt['openFile'](a2)))(a1[d9(0x199)]))throw f(d9(0x30e)+a1['skillFile']);return B[d9(0x150)]({'name':a1[d9(0x25a)],'path':a1[d9(0x199)]});}catch(a2){return B[d9(0x126)](a2);}}},H=d(require(af(0x7e))),wt=d(require('chalk')),gn=require('child_proces'+'s'),Ae=require('fs'),Kt=class{constructor(i={}){this['hooks']=i;}[af(0x17d)];[af(0x25a)]=h[af(0x303)];[af(0x292)]=af(0x1e2)+af(0x289);[af(0x33d)]=af(0x22f)+h[af(0x303)]+('\x0a\x20\x20\x20\x20sino-bc'+af(0x2e3))+h['UNINSTALL']+('\x20--yes\x0a\x20\x20\x20\x20s'+'ino-bc-cli\x20/')+h['UNINSTALL']+(af(0x2c6)+'\x20\x20');['options']=[{'short':'y','long':'yes','description':af(0x1e3)},{'long':af(0x39b),'description':af(0x36f)+af(0x306)}];async[af(0x31a)](l,m){const da=af;a['debug']('[UninstallCo'+da(0x145)+'始,参数:\x20'+JSON[da(0x238)](l));let n=this[da(0x1b5)](m,[da(0x339),'y']),o=this['hasFlag'](m,[da(0x39b)]);if(this[da(0x2ad)](o),!await this[da(0x2c8)](n)){a['tip'](da(0x14d));return;}if(this[da(0x12b)+da(0x364)](),this['removeConfig'](),o){a['tip'](da(0xcc)+da(0x8d)+'ninstall\x20-g\x20'+S['name']);return;}this[da(0x154)](),a['debug']('[UninstallCo'+da(0x132)+'成');}['printPlan'](l){const db=af;process[db(0x2b8)]['write']('\x0a'),process[db(0x2b8)][db(0x3a4)](wt[db(0x89)][db(0x1b8)]('\u{1F5D1}\uFE0F\x20\x20\x20\u5373\u5C06\u5220\u9664\u4EE5\u4E0B\u5185\u5BB9')+'\x0a\x0a'),H[db(0x3b8)](ie(this[db(0x17d)]['home']),p=>{const dc=db;let s=(0x0,Ae[dc(0x29c)])(p[dc(0x14e)])?wt[dc(0x89)]['yellow']('\u5B58\u5728'):wt[dc(0x89)][dc(0x23d)](dc(0x184));process[dc(0x2b8)]['write']('\x20\x20'+s+'\x20\x20'+p['label']+':\x20'+p[dc(0x14e)]+'\x0a');});let m=It(),n=(0x0,Ae['existsSync'])(m)?wt[db(0x89)]['yellow']('\u5B58\u5728'):wt[db(0x89)][db(0x23d)](db(0x184));process[db(0x2b8)]['write']('\x20\x20'+n+db(0x354)+m+'\x0a'),l||process[db(0x2b8)][db(0x3a4)](db(0x105)+wt[db(0x89)][db(0x241)]('\u5E76\u6267\u884C')+(db(0x229)+db(0x25c))+S['name']+'\x0a'),process[db(0x2b8)]['write']('\x0a');}async[af(0x2c8)](i){const dd=af;if(i)return!0x0;if(!(this[dd(0x17d)][dd(0x18c)+'e']??(()=>N['isInteractiv'+'e']()))())throw new Error(dd(0x2a1)+'次确认。如确需卸载,请执'+dd(0x1fb)+dd(0x323)+h['UNINSTALL']+dd(0x2f5));return N['confirm'](dd(0xd7));}[af(0x12b)+af(0x364)](){const df=af;let i=Se(this[df(0x17d)][df(0x1c3)]);H[df(0x3b8)](i['removed'],m=>{const dg=df;if(!m['existed']){a[dg(0x33e)](dg(0x365)+dg(0x1e9)+dg(0x258)+m[dg(0x21c)]);return;}a[dg(0x150)](dg(0x2c0)+m[dg(0xf6)]+':\x20'+m[dg(0x21c)]);}),H['forEach'](i[df(0xdb)],m=>{const dh=df;a[dh(0x305)](dh(0x301)+m[dh(0xf6)]+':\x20'+m[dh(0x21c)]+'('+m[dh(0x34d)]+')');});let l=H[df(0x31b)](i[df(0xc4)],df(0xc0))['length'];a['success']('技能目录清理完成,共删除'+'\x20'+l+'\x20个');}[af(0x2b3)](){const di=af;if(!H['isNil'](this[di(0x17d)][di(0x2b3)])){this['hooks'][di(0x2b3)]();return;}let i=It();try{a[di(0x150)](ke()?di(0xe4)+i:di(0xbb));}catch(l){a['warn'](di(0x280)+i+'('+(l instanceof Error?l[di(0x37e)]:String(l))+')');}}[af(0x154)](){const dj=af;if(!H[dj(0x2af)](this['hooks'][dj(0x154)])){this[dj(0x17d)]['uninstallCli']();return;}let i=dj(0x2dc)+'l\x20-g\x20'+S[dj(0x25a)];a['info']('正在执行:\x20'+i);let l=(0x0,gn[dj(0x166)])(i,{'shell':!0x0,'stdio':dj(0xd5),'windowsHide':!0x0});if(l['error']||typeof l[dj(0x29f)]==dj(0x307)&&l['status']!==0x0){a[dj(0x305)](dj(0x138)+dj(0xe0)+')'),a['tip']('请手动执行:\x20npm\x20u'+dj(0x26f)+S[dj(0x25a)]);return;}a[dj(0x150)](S[dj(0x25a)]+dj(0xe8));}['hasFlag'](i,l){const dk=af;return H[dk(0x2af)](i)?!0x1:H[dk(0x212)](l,m=>i[m]===!0x0);}},hn=[new Gt(),new zt(),new Mt(),new Bt(),new jt(),new Kt()],se=class{['registry'];constructor(i){const dl=af;this[dl(0x1fa)]=i||pn;}[af(0x248)](){const dm=af;a[dm(0x33e)]('CLIApplicati'+dm(0x187));let i=this[dm(0x1fa)][dm(0xa6)](hn);a['debug'](dm(0x257)+dm(0x348)+i+dm(0x2da)),a[dm(0x33e)]('CLIApplicati'+'on:\x20初始化完成');}async[af(0x224)](l=process[af(0x31f)]){const dp=af;try{this[dp(0x248)]();let m=l[dp(0x320)](0x2);a[dp(0x33e)](dp(0x257)+'on:\x20收到命令行参数:'+'\x20'+JSON[dp(0x238)](m));let n=this['processGloba'+dp(0x10e)](m),p=fn(m);if(n['handled']&&p['kind']!==dp(0x84))return n[dp(0x2e0)];let s=p;return s[dp(0x200)]===dp(0x293)?await an(s,{'config':W()}):s[dp(0x200)]===dp(0x84)?(process[dp(0x2b8)][dp(0x3a4)](_e(s[dp(0x190)])),0x0):s['kind']===dp(0x3c0)?(this[dp(0x99)](),this[dp(0x243)](),0x0):await this[dp(0x1fa)][dp(0x31a)](s[dp(0x25a)],s['args'],n[dp(0x12a)])?0x0:0x1;}catch(B){return a[dp(0x34d)]('CLI\x20应用运行时发生未'+dp(0x310),B instanceof Error?B[dp(0x37e)]:String(B)),B instanceof Error&&!$[dp(0x2cf)](B[dp(0x36e)])&&a[dp(0x33e)](dp(0x35e),B[dp(0x36e)]),0x1;}finally{N[dp(0x24c)]();}}[af(0xef)+'lOptions'](l){const dq=af;let m={'handled':!0x1,'exitCode':0x0,'commandName':'','commandArgs':[],'options':{}};if($[dq(0x2cf)](l))return m;let n={},o=[];return $[dq(0x3b8)](l,p=>{const dr=dq;if($[dr(0x379)](p,'--')){let B=$[dr(0x205)](p,'-');if(B===dr(0x140)||B==='v')this[dr(0x302)](),m[dr(0x268)]=!0x0;else{if(B===dr(0x1b7)||B==='h')this[dr(0x243)](),m['handled']=!0x0;else{if(B===dr(0x33e))n['debug']=!0x0,a[dr(0x21a)](dr(0x33e)),a['debug'](dr(0xde)+'模式');else{let T=B[dr(0x1b0)]('=');if(T>-0x1){let a0=B[dr(0x283)](0x0,T),a1=B[dr(0x283)](T+0x1);n[a0]=a1;}else n[B]=!0x0;}}}}else{if($[dr(0x379)](p,'-')&&p[dr(0x204)]>0x1){let a2=p[dr(0x283)](0x1);switch(a2){case'v':this[dr(0x302)](),m[dr(0x268)]=!0x0;break;case'h':this[dr(0x243)](),m[dr(0x268)]=!0x0;break;case'd':n[dr(0x33e)]=!0x0,a['setLevel']('debug'),a[dr(0x33e)](dr(0xde)+dr(0x326));break;default:n[a2]=!0x0;}}else o['push'](p);}}),m[dq(0x12a)]=n,$['isEmpty'](o)||(m[dq(0x26b)]=o[0x0],m[dq(0x21e)]=o[dq(0x320)](0x1)),m;}['showWelcome'](){const ds=af;let i=ds(0x2d6)+ds(0x180)+'════════════'+ds(0x180)+ds(0x180)+'════╗\x0a║\x20\x20\x20\x20\x20'+ds(0x149)+'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+ds(0x149)+ds(0x149)+ds(0x31c)+'\x20\x20\x20'+u[ds(0x89)][ds(0xb6)](ds(0x2ee)+'███╗██╗\x20\x20\x20██'+ds(0x110)+'█╗\x20\x20\x20██╗████'+ds(0x3a0))+ds(0x2f9)+u[ds(0x89)]['cyanBright'](ds(0x211)+ds(0x163)+'╝██╔═══██╗██'+ds(0x233)+ds(0x171))+'\x0a║\x20\x20\x20'+u['default'][ds(0xb6)](ds(0x314)+ds(0x223)+ds(0x2e4)+'╔██╗\x20██║██║\x20'+ds(0x347))+ds(0x2f9)+u[ds(0x89)]['cyanBright'](ds(0x211)+ds(0x371)+ds(0x2e4)+ds(0x2f1)+'\x20██║\x20\x20\x20\x20║')+ds(0x2f9)+u['default']['cyanBright'](ds(0x314)+ds(0x17b)+ds(0x22b)+ds(0x3af)+ds(0x1ac))+ds(0x2f9)+u[ds(0x89)]['cyanBright'](ds(0x1b6)+'═══╝\x20\x20\x20╚═╝\x20\x20'+ds(0x382)+ds(0x2f3)+'══╝\x20\x20\x20\x20\x20║')+(ds(0x1c5)+'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+ds(0x149)+'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+ds(0x149)+ds(0x22e)+ds(0x228))+u[ds(0x89)][ds(0xd3)]('BeyondClick\x20'+ds(0x375))+'\x20v'+S[ds(0x140)]+('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20║\x0a'+ds(0x9a))+u['default']['gray'](ht[ds(0x1d6)](void 0x0,ds(0xee)))+('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+'║\x0a╚═════════'+'════════════'+'════════════'+ds(0x180)+'════════════'+ds(0x3be));process['stdout'][ds(0x3a4)](i);}[af(0x302)](){const du=af;let i=u[du(0x89)]['cyanBright'](S[du(0x25a)])+'\x20'+u[du(0x89)][du(0xd3)]('v'+S['version']);process['stdout'][du(0x3a4)](i+'\x0a');}[af(0x243)](){const dv=af;process['stdout'][dv(0x3a4)]('\x0a'),process[dv(0x2b8)][dv(0x3a4)](u[dv(0x89)][dv(0x1b8)](dv(0x254))+'\x0a'),process[dv(0x2b8)][dv(0x3a4)](u[dv(0x89)][dv(0x23d)]('\x20\x20\u547D\u4EE4\u683C\u5F0F:\x20')+u['default'][dv(0x6d)](S[dv(0x25a)]+'\x20')+u[dv(0x89)][dv(0x38e)](dv(0x2c2))+u[dv(0x89)][dv(0x23d)]('[\u9009\u9879]')+'\x0a\x0a'),process[dv(0x2b8)][dv(0x3a4)](u[dv(0x89)][dv(0x1b8)]('\u{1F527}\x20\x20\u5168\u5C40\u9009\u9879')+'\x0a'),this[dv(0x17f)](dv(0xa8)+'n',dv(0xbc)),this[dv(0x17f)](dv(0x114),dv(0x98)),this['printOption'](dv(0x387),dv(0x119)+'式'),process[dv(0x2b8)][dv(0x3a4)]('\x0a'),process['stdout'][dv(0x3a4)](u[dv(0x89)]['bold'](dv(0x11c))+'\x0a');let i=this['registry']['getAllComman'+'ds']();if($[dv(0x2cf)](i))process[dv(0x2b8)][dv(0x3a4)](u[dv(0x89)][dv(0x241)](dv(0x38a)));else{let l=$[dv(0x148)](i,m=>m['name']);$[dv(0x3b8)](l,m=>{const dw=dv;this[dw(0x1bb)](m[dw(0x25a)],m['description']);});}process[dv(0x2b8)][dv(0x3a4)]('\x0a'),$[dv(0x3b8)](ut(),m=>{const dx=dv;let n=te(m);$[dx(0x2cf)](n)||(process[dx(0x2b8)]['write'](u['default'][dx(0x1b8)](dx(0x17e)+m+dx(0x6e))+'\x0a'),$[dx(0x3b8)](n,p=>{const dy=dx;let B=u['default']['greenBright']('\x20\x20'+$[dy(0x128)](p[dy(0x26e)],0x14)),T=ee(m,p[dy(0x26e)]);process[dy(0x2b8)][dy(0x3a4)](''+B+u['default'][dy(0x392)](p['description'])+'\x0a'),$[dy(0x2cf)](T)||process[dy(0x2b8)][dy(0x3a4)](u[dy(0x89)][dy(0x23d)](dy(0x9c)+T+'\x0a'));}),process[dx(0x2b8)][dx(0x3a4)](u[dx(0x89)][dx(0x23d)](dx(0x7a)+dx(0x28c)+dx(0x369)+dx(0x1f5))));}),process[dv(0x2b8)]['write'](u[dv(0x89)]['bold']('\u{1F4A1}\x20\x20\u4F7F\u7528\u793A\u4F8B')+'\x0a'),process[dv(0x2b8)][dv(0x3a4)](u[dv(0x89)]['gray'](dv(0x2f2)+'按名称、ID、品类筛选)')+'\x0a'+u[dv(0x89)][dv(0x235)]('\x20\x20'+S[dv(0x25a)]+(dv(0x15b)+'ist\x20--name\x20<'+'业务线名称>'))+'\x0a\x0a'),process[dv(0x2b8)][dv(0x3a4)](u['default']['gray'](dv(0x2ec)+dv(0x38b))+'\x0a'+u[dv(0x89)][dv(0x235)]('\x20\x20'+S[dv(0x25a)]+(dv(0x3ad)+'trategies\x20--'+dv(0x259)))+'\x0a\x0a'),process['stdout']['write'](u[dv(0x89)][dv(0x23d)](dv(0x183)+'me\x20点名调用;写操作先'+dv(0x327)+dv(0x111))+'\x0a'+u[dv(0x89)][dv(0x235)]('\x20\x20'+S['name']+(dv(0x15e)+dv(0x261)+dv(0x1d7)))+'\x0a\x0a'),process[dv(0x2b8)][dv(0x3a4)](u[dv(0x89)][dv(0x23d)](dv(0x333)+'豆包工作(npm\x20安装后'+dv(0x135))+'\x0a'+u['default'][dv(0x235)]('\x20\x20'+S['name']+dv(0x22a))+'\x0a\x0a'),process[dv(0x2b8)][dv(0x3a4)](u[dv(0x89)][dv(0x23d)](dv(0x3b9)+dv(0x1b1))+'\x0a'+u[dv(0x89)][dv(0x235)]('\x20\x20'+S[dv(0x25a)]+dv(0x15f))+'\x0a\x0a'),process[dv(0x2b8)][dv(0x3a4)](u[dv(0x89)][dv(0x23d)]('\x20\x20#\x20修改变量配置:切'+'到测试环境')+'\x0a'+u[dv(0x89)]['cyan']('\x20\x20'+S['name']+('\x20/set-config'+dv(0x2e8)))+'\x0a\x0a'),process['stdout'][dv(0x3a4)](u[dv(0x89)][dv(0x23d)]('\x20\x20#\x20清理技能目录与配'+dv(0x2e9))+'\x0a'+u[dv(0x89)][dv(0x235)]('\x20\x20'+S[dv(0x25a)]+'\x20/uninstall')+'\x0a\x0a'),process[dv(0x2b8)]['write'](u[dv(0x89)][dv(0x23d)](dv(0x19e))+'\x0a'+u[dv(0x89)][dv(0x235)]('\x20\x20'+S[dv(0x25a)]+dv(0x3a9))+'\x0a\x0a');}[af(0x1bb)](l,m){const dz=af;let n=u[dz(0x89)][dz(0xd3)](dz(0x1a5)+$[dz(0x128)](l,0x14)),o=u[dz(0x89)][dz(0x392)](m);process['stdout']['write'](''+n+o+'\x0a');}[af(0x17f)](l,m){const dA=af;let n=u[dA(0x89)][dA(0x7b)]('\x20\x20'+$[dA(0x128)](l,0x14)),o=u[dA(0x89)][dA(0x392)](m);process[dA(0x2b8)]['write'](''+n+o+'\x0a');}};(async function(){const dB=af;let i=await new se()[dB(0x224)](process[dB(0x31f)]);process[dB(0x1c6)](i);}()['catch'](i=>{const dC=af;console[dC(0x34d)](dC(0xba)+dC(0xbd),i),process[dC(0x1c6)](0x1);}));
|
|
2
|
+
'use strict';const af=e;(function(i,l){const ad=e,m=i();while(!![]){try{const n=parseInt(ad(0x3a3))/0x1*(parseInt(ad(0x27d))/0x2)+-parseInt(ad(0x2ab))/0x3*(-parseInt(ad(0x1d1))/0x4)+parseInt(ad(0x340))/0x5*(parseInt(ad(0x1b6))/0x6)+-parseInt(ad(0x2de))/0x7+parseInt(ad(0x1c9))/0x8+-parseInt(ad(0x338))/0x9+-parseInt(ad(0x2d9))/0xa*(parseInt(ad(0x167))/0xb);if(n===l)break;else m['push'](m['shift']());}catch(o){m['push'](m['shift']());}}}(c,0x63ea3));var bn=Object[af(0x35e)],Te=Object['defineProper'+'ty'],In=Object[af(0x2d0)+'tyDescriptor'],wn=Object[af(0x2d0)+af(0x175)],En=Object[af(0x279)+'Of'],Cn=Object['prototype'][af(0x380)+'ty'],Sn=(l,m,o,p)=>{const ag=af;if(m&&typeof m=='object'||typeof m==ag(0x195)){for(let s of wn(m))!Cn[ag(0x27e)](l,s)&&s!==o&&Te(l,s,{'get':()=>m[s],'enumerable':!(p=In(m,s))||p[ag(0x354)]});}return l;},d=(i,l,m)=>(m=i!=null?bn(En(i)):{},Sn(l||!i||!i[af(0x1fc)]?Te(m,'default',{'value':i,'enumerable':!0x0}):m,i)),$=d(require('lodash')),u=d(require(af(0x37a))),x=d(require(af(0x3bc))),nt=d(require(af(0x3bc))),Oe=d(require(af(0x12e))),M=d(require(af(0x37a))),ae=class{['currentLevel']='info';[af(0x19f)]={'debug':0x0,'info':0x1,'warn':0x2,'error':0x3};[af(0x2f3)](i){this['currentLevel']=i;}[af(0x3b9)](l,...m){const ah=af;if(this[ah(0x19f)][l]<this['levelWeights'][this[ah(0x278)]])return;let n=(0x0,Oe['default'])()['format']('YYYY-MM-DD\x20H'+ah(0x35f)),p='['+nt[ah(0x40c)](l)+']',s;switch(l){case ah(0x19b):s=M['default'][ah(0x23e)](n+'\x20'+M[ah(0x138)][ah(0x109)](p)+'\x20'+this[ah(0x1ee)+'es'](m));break;case ah(0x2cf):s=M['default'][ah(0x2cc)](n+'\x20'+M[ah(0x138)][ah(0x139)](p)+'\x20'+this[ah(0x1ee)+'es'](m));break;case'warn':s=M[ah(0x138)][ah(0x1b0)](n+'\x20'+M[ah(0x138)][ah(0x1b0)](p)+'\x20'+this[ah(0x1ee)+'es'](m));break;case'error':s=M[ah(0x138)]['red'](n+'\x20'+M[ah(0x138)][ah(0x257)](p)+'\x20'+this[ah(0x1ee)+'es'](m));break;default:s=n+'\x20'+p+'\x20'+this[ah(0x1ee)+'es'](m);}(l===ah(0xef)?process['stderr']:process['stdout'])[ah(0x289)](s+'\x0a');}[af(0x1ee)+'es'](i){const ai=af;return nt[ai(0x22a)](i,l=>{const aj=ai;if(nt[aj(0x3c8)](l)||nt[aj(0x1f0)](l))try{return JSON[aj(0x28d)](l,null,0x2);}catch{return String(l);}return String(l);})['join']('\x20');}[af(0x19b)](...i){const ak=af;this[ak(0x3b9)](ak(0x19b),...i);}[af(0x2cf)](...i){const al=af;this['log'](al(0x2cf),...i);}[af(0x3e3)](...i){const am=af;this['log'](am(0x3e3),...i);}['error'](...i){const ao=af;this[ao(0x3b9)](ao(0xef),...i);}[af(0x192)](...i){const ap=af;let l=this[ap(0x1ee)+'es'](i);process[ap(0x199)][ap(0x289)](M['default'][ap(0x139)]('\u2713\x20')+M[ap(0x138)][ap(0x1b5)](l)+'\x0a');}[af(0x2db)](...i){const aq=af;let l=this[aq(0x1ee)+'es'](i);process[aq(0x199)][aq(0x289)](M[aq(0x138)][aq(0xe6)]('\u2139\x20')+M[aq(0x138)][aq(0x1b5)](l)+'\x0a');}},a=new ae(),U=d(require(af(0x3bc))),At=d(require(af(0x12c)+'s')),Fe=require('fs'),Tt=class{static async[af(0x3c2)](l){const ar=af;if(U[ar(0xd3)](l)||!this[ar(0x20b)](l))return a[ar(0xef)](ar(0x255)+l),!0x1;a[ar(0x19b)](ar(0x3fc)+l),a['tip'](ar(0x3dd)+'\x20'+l);try{let m=process['platform'],n;switch(m){case ar(0x15c):n='cmd\x20/c\x20start'+'\x20\x22\x22\x20\x22'+this['escapeForCmd'](l)+'\x22';break;case ar(0x2b4):n='open\x20\x22'+l+'\x22';break;default:n='xdg-open\x20\x22'+l+'\x22';}return a['debug']('执行打开命令:\x20'+n),await this[ar(0xd1)](n),a[ar(0x192)]('已成功在默认浏览器中打开'+':\x20'+l),!0x0;}catch(o){return a[ar(0xef)](ar(0x2da),o instanceof Error?o['message']:String(o)),a[ar(0x2db)]('您可以手动在浏览器中访问'+'此地址:\x20'+l),!0x1;}}static async[af(0x320)](l,m){const as=af;if(U[as(0xd3)](l)||!(0x0,Fe[as(0x2e1)])(l))return a['error'](as(0x20e)+l),!0x1;let n=U['isNil'](m)?l:l+':'+m;if(a[as(0x19b)](as(0x38b)+n),a[as(0x2db)]('正在打开接口文档:\x20'+l),await this[as(0x403)]('cursor')&&this[as(0x31b)+'d'](as(0x1b1),[as(0x115),n]))return a['success'](as(0x13c)+as(0x3f4)+n),!0x0;if(await this[as(0x403)]('code')&&this[as(0x31b)+'d'](as(0x231),['--goto',n]))return a['success'](as(0x20c)+as(0x1a8)+n),!0x0;try{let p=process[as(0x172)],s;switch(p){case as(0x15c):s=as(0x336)+as(0x226)+this[as(0x3aa)](l)+'\x22';break;case as(0x2b4):s=as(0x2d5)+l+'\x22';break;default:s=as(0x313)+l+'\x22';}return a[as(0x19b)](as(0x2b8)+s),await this[as(0xd1)](s),a[as(0x192)](as(0x300)+'\x20'+l),!0x0;}catch(B){return a[as(0xef)](as(0x281),B instanceof Error?B[as(0x225)]:String(B)),a[as(0x2db)](as(0x3df)+l),!0x1;}}static['hasCommand'](i){const au=af;let l=process[au(0x172)]===au(0x15c)?'where\x20'+i:au(0x271)+i;return new Promise(m=>{const av=au;At[av(0x262)](l,{'timeout':0xbb8,'windowsHide':!0x0},(n,p)=>{const aw=av;m(U[aw(0x154)](n)&&!U[aw(0xd3)](U['trim'](p)));});});}static[af(0x31b)+'d'](l,m){const ax=af;try{let n=At[ax(0x2a5)](l,m,{'detached':!0x0,'stdio':ax(0x386),'windowsHide':!0x0,'shell':process['platform']===ax(0x15c)});return n['on'](ax(0xef),()=>{}),n[ax(0x31e)](),!0x0;}catch{return!0x1;}}static[af(0x20b)](i){const ay=af;return U[ay(0xd3)](i)?!0x1:/^https?:\/\/[^\s/$.?#].[^\s]*$/i['test'](i);}static['escapeForCmd'](i){const az=af;return U[az(0xfd)](i,/[&|^<>]/g,l=>'^'+l);}static[af(0xd1)](i,l=0x7530){return new Promise((m,n)=>{const aA=e;At[aA(0x262)](i,{'timeout':l,'windowsHide':!0x0},(p,B,T)=>{const aB=aA;p?U[aB(0xd3)](T)?m():n(p):m();});});}},kn=d(require('lodash')),Wt=d(require(af(0x29e))),vn=d(require(af(0x12e))),Pe=d(require(af(0x1b8))),Ft=d(require(af(0x3bc))),qt=d(require('dayjs')),Jt=require('fs'),ue=require(af(0x2b5)),Vt=require('fs'),Et=require(af(0x2b5)),Z=d(require(af(0x3bc))),Le;function e(a,b){a=a-0xcc;const d=c();let f=d[a];if(e['eOMGBy']===undefined){var g=function(j){const l='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let m='',n='';for(let o=0x0,p,q,r=0x0;q=j['charAt'](r++);~q&&(p=o%0x4?p*0x40+q:q,o++%0x4)?m+=String['fromCharCode'](0xff&p>>(-0x2*o&0x6)):0x0){q=l['indexOf'](q);}for(let s=0x0,t=m['length'];s<t;s++){n+='%'+('00'+m['charCodeAt'](s)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(n);};e['MAgAnT']=g,e['lxzPvX']={},e['eOMGBy']=!![];}const h=d[0x0];e['QgJhYi']!==h&&(e['lxzPvX']={},e['QgJhYi']=h);const i=e['lxzPvX'][a];return i===undefined?(f=e['MAgAnT'](f),e['lxzPvX'][a]=f):f=i,f;}function xn(i=__dirname){const aC=af;let l=[(0x0,Et[aC(0x239)])(i,'generated','api-catalog.json'),(0x0,Et[aC(0x239)])(i,aC(0x344),'api-catalog.json'),(0x0,Et['join'])(i,aC(0x413)+'nerated','api-catalog.json'),(0x0,Et['join'])(i,aC(0xda)+'ated','api-catalog.json'),(0x0,Et[aC(0x239)])(i,'api-catalog.json')];return Z['find'](l,m=>(0x0,Vt[aC(0x2e1)])(m));}function it(){const aD=af;if(!Z[aD(0x154)](Le))return Le;let i=xn();if(!i)throw new Error('未找到\x20src/gene'+aD(0xdf)+aD(0x266)+aD(0x3ce)+aD(0x40b));return JSON[aD(0x302)]((0x0,Vt[aD(0x2fd)])(i,'utf-8'));}function ut(){const aE=af;return Z[aE(0x259)](Z[aE(0x22a)](it(),i=>i[aE(0x34a)]));}function pt(i){const aF=af;return Z[aF(0x399)](it(),l=>l[aF(0x13f)]===i);}function rt(i){const aG=af;return{'name':i[aG(0x13f)],'displayName':i['displayName'],'description':i[aG(0x2a3)],'group':i[aG(0x404)],'method':i['method'],'path':i[aG(0x2b5)],'timeout':i[aG(0x398)]};}var ot=d(require(af(0x3bc))),An=['test','pre','prod'],Yt=af(0x2fe)+'MDI2MDkwNyIs'+af(0x2ea)+af(0x3b2)+'IjoiSldUIn0.'+af(0x3b4)+'ODg4IiwiaWF0'+af(0x11d)+af(0x3cb)+af(0x1f7)+af(0x173)+'_CYtnzUX2ThK'+'PX3eUPnPdlDz'+'vtZoXZlu-D0B'+af(0x358)+af(0x280)+af(0x13a)+af(0x2e9)+af(0x1a6)+af(0x345)+af(0x2ee)+af(0x1c7)+af(0x3f8)+af(0x30b)+af(0x100)+af(0x206)+af(0x2b0)+'8-aI8PRkTk4r'+af(0x145)+'Wmuq4Kfs2e-8'+af(0x10f)+'82wi8CLTkTMa'+af(0x1ef)+af(0x330)+'tFQ3GcECVN1e'+af(0x323)+af(0x314)+'Jkn6Hn1ltt2d'+'4vP3jOvAHTQ',Ht=af(0x353)+af(0x2bc)+af(0x31f)+af(0x217),ft=af(0x1af)+'PE',D=af(0x3ae),ce=af(0x3d2)+af(0x13e)+'dclick.com/',le={'test':{'env':'test','label':'\u6D4B\u8BD5\u73AF\u5883','baseUrl':ce},'pre':{'env':'pre','label':af(0x18b),'baseUrl':ce},'prod':{'env':'prod','label':af(0x288),'baseUrl':ce}};function me(i){return le[i];}function Re(i){const aH=af;return le[i][aH(0x159)];}function Ot(i){const aI=af;return ot[aI(0x277)](i)&&ot[aI(0x28b)](An,i);}function de(l,m){const aJ=af;let o=ot[aJ(0x33f)](Re(l),'/'),p=ot[aJ(0x391)](m,'/')?m:'/'+m;return''+o+p;}var st=d(require(af(0x3bc)));function Tn(){const aK=af;let i=[(0x0,ue[aK(0x239)])(__dirname,aK(0x211)+aK(0x136)),(0x0,ue['join'])(__dirname,aK(0x1ae)+aK(0x114))];for(let l of i)if((0x0,Jt[aK(0x2e1)])(l))try{let m=JSON[aK(0x302)]((0x0,Jt[aK(0x2fd)])(l,aK(0x385)));if(m[aK(0x13f)]==='sino-bc-cli'&&m[aK(0xd0)])return m[aK(0xd0)];}catch{}return aK(0x3c5);}var S={'name':'sino-bc-cli','version':Tn(),'description':af(0x123)+'命令行工具集合\x20-\x20提供'+af(0x181)+'lick\x20平台的命令行接'+'口'},h={'BC_API':'bc-api','GET_CONFIG':'get-config','INIT':'init','SET_CONFIG':'set-config','UNINSTALL':'uninstall','SKILL':'skill'},Si=ut(),De={'browser':'default','logLevel':'info','timeout':0x7530},Ct=class{static ['instance'];static[af(0x16f)](){const aL=af;return this[aL(0x25a)]||(this[aL(0x25a)]=Pe[aL(0x138)][aL(0x35e)]({'timeout':De[aL(0x398)],'headers':{'Content-Type':'application/'+'json','User-Agent':S[aL(0x13f)]+'/'+S[aL(0xd0)],[ft]:D}}),this[aL(0x25a)]['interceptors'][aL(0x21a)][aL(0x1c6)](l=>{const aM=aL;let m=(0x0,qt[aM(0x138)])()[aM(0x377)](),n=l;n[aM(0x35b)]=m;let o=String(l[aM(0x26b)]||aM(0x19e));return a[aM(0x19b)](aM(0x3ac)+Ft[aM(0x40c)](o)+'\x20'+l[aM(0xce)]),l;},i=>(a[aL(0xef)](aL(0x325)+':',i),Promise['reject'](i))),this['instance'][aL(0x1f6)]['response']['use'](l=>{const aN=aL;let m=l[aN(0xdb)]['_startTime']||0x0,n=m?(0x0,qt[aN(0x138)])()[aN(0x377)]()-m:0x0,p=String(l[aN(0xdb)][aN(0x26b)]||aN(0x19e));return a[aN(0x19b)](aN(0x102)+Ft['toUpper'](p)+'\x20'+l[aN(0xdb)][aN(0xce)]+'\x20-\x20状态码:\x20'+l[aN(0x405)]+aN(0x1a4)+n+'ms'),l;},l=>{const aO=aL;let m=l[aO(0xdb)],n=m?.[aO(0x35b)]||0x0,p=n?(0x0,qt['default'])()[aO(0x377)]()-n:0x0,B=String(m?.[aO(0x26b)]||aO(0x19e)),T=String(m?.[aO(0xce)]||'');return l[aO(0x38e)]?a[aO(0xef)](aO(0x305)+Ft['toUpper'](B)+'\x20'+T+aO(0x264)+l[aO(0x38e)]['status']+aO(0x1a4)+p+'ms'):l[aO(0x21a)]?a['error'](aO(0x252)+Ft[aO(0x40c)](B)+'\x20'+T+(aO(0x339)+aO(0x39f))+p+'ms'):a[aO(0xef)](aO(0x39e)+'\x20'+l[aO(0x225)]),Promise[aO(0x3a7)](l);})),this['instance'];}static async[af(0x356)](i,l){const aP=af;return(await this[aP(0x16f)]()[aP(0x356)](i,l))[aP(0x130)];}static async[af(0x25d)](l,m,n){const aQ=af;return(await this[aQ(0x16f)]()['post'](l,m,n))[aQ(0x130)];}static async[af(0x104)](l,m,n){const aR=af;return(await this[aR(0x16f)]()[aR(0x104)](l,m,n))[aR(0x130)];}static async[af(0x141)](i,l){const aS=af;return(await this['getInstance']()[aS(0x141)](i,l))[aS(0x130)];}static async[af(0xe4)](m,n=0x3,p=0x3e8,B){const aT=af;let T;for(let a0=0x1;a0<=n;a0++)try{return await this[aT(0x356)](m,B);}catch(a1){T=a1,a0<n&&(a['warn']('HTTP\x20请求第\x20'+a0+'\x20次失败,'+p+aT(0x27a)+(a0+0x1)+aT(0x400)),await this[aT(0x34b)](p));}throw T;}static[af(0x34b)](i){return new Promise(l=>setTimeout(l,i));}},k=d(require(af(0x3bc))),gt=d(require(af(0x12e))),ht=class{static[af(0x268)](l,m=af(0x143)+af(0x35f)){const aU=af;if(k[aU(0x154)](l))return(0x0,gt[aU(0x138)])()[aU(0x3f5)](m);let n=(0x0,gt[aU(0x138)])(l);return n[aU(0x193)]()?n[aU(0x3f5)](m):(a[aU(0x3e3)](aU(0x294)+String(l)),'');}static[af(0x2a0)](l,m=(0x0,gt[af(0x138)])()){const aV=af;let n=(0x0,gt[aV(0x138)])(l),o=(0x0,gt[aV(0x138)])(m);return!n['isValid']()||!o['isValid']()?(a['warn']('计算日期差值时存在无效日'+'期'),0x0):o['diff'](n,aV(0x11f));}static[af(0x32f)+'ueId'](l=''){const aW=af;let m=(0x0,gt[aW(0x138)])()['valueOf']()[aW(0x3c9)](0x24),n=Math[aW(0x117)]()[aW(0x3c9)](0x24)[aW(0xec)](0x2,0x8),o=k[aW(0x147)]();return k['isEmpty'](l)?m+'-'+n+'-'+o:l+'-'+m+'-'+n+'-'+o;}static['deepClone'](i){const aX=af;return k[aX(0x140)](i);}static[af(0x244)](i,l){const aY=af;return k[aY(0x152)](i,l);}static[af(0x2b3)](i,l=0x12c){const aZ=af;return k[aZ(0x2b3)](i,l);}static[af(0x304)](i,l=0x12c){const b0=af;return k[b0(0x304)](i,l);}static[af(0x2fc)](i,l){const b1=af;return k[b1(0x2fc)](i,l);}static[af(0x2cb)](i,l){const b2=af;return k[b2(0x2cb)](i,l);}static[af(0x34b)](i){return new Promise(l=>setTimeout(l,i));}static[af(0x309)+'e'](l,m){const b3=af;if(k[b3(0xd3)](l)||!k[b3(0x277)](l))return m;try{return JSON[b3(0x302)](l);}catch(n){return a[b3(0x3e3)](b3(0x18c),n instanceof Error?n[b3(0x225)]:String(n)),m;}}static[af(0x378)](l,m,n=af(0xde)){const b4=af;return k[b4(0x277)](l)?l[b4(0x3cd)]<=m?l:l[b4(0xec)](0x0,m-n['length'])+n:'';}},Ge=d(require(af(0x13b)+af(0x3fe))),St=require(af(0x146)),E=d(require(af(0x3bc))),yt=d(require(af(0x37a))),Xt=0x5,N=class{static ['rl'];static[af(0x38c)+'e'](){const b5=af;return!!(St[b5(0x37e)][b5(0x3dc)]&&St['stdout']['isTTY']);}static[af(0x233)](){const b6=af;return E[b6(0x154)](this['rl'])&&(this['rl']=Ge[b6(0x28c)+'ace']({'input':St[b6(0x37e)],'output':St[b6(0x199)]})),this['rl'];}static[af(0x39a)](){const b7=af;E[b7(0x154)](this['rl'])||(this['rl'][b7(0x39a)](),this['rl']=void 0x0);}static async[af(0x283)](i){const b8=af;let l=this[b8(0x233)]();return new Promise((m,n)=>{const b9=b8;let p=()=>n(new Error(b9(0x24b)+b9(0x36b)));l[b9(0x25f)](b9(0x39a),p),l[b9(0x283)](i)['then'](B=>{const ba=b9;l[ba(0x365)]('close',p),m(B);},B=>{const bb=b9;l['off'](bb(0x39a),p),n(B instanceof Error?B:new Error(String(B)));});});}static async[af(0x317)](l,m,n){const bc=af;let p=n??m,s=E[bc(0x132)](await this[bc(0x283)](l+'\x20'+yt[bc(0x138)][bc(0x23e)](bc(0x333)+p+']')+':\x20'));return E[bc(0xd3)](s)?m:s;}static async[af(0x22e)+af(0xdc)](m,n,p){const bd=af;process['stdout'][bd(0x289)]('\x0a'),E[bd(0x1a1)](n,(B,T)=>{const bf=bd;let a0=B===p?yt['default']['gray'](bf(0x15a)):'';process[bf(0x199)]['write']('\x20\x20'+yt[bf(0x138)][bf(0x384)](T+0x1+'.')+'\x20'+yt[bf(0x138)][bf(0x1b5)](B)+a0+'\x0a');}),process[bd(0x199)][bd(0x289)]('\x0a');for(let B=0x0;B<Xt;B++){let T=E['trim'](await this[bd(0x283)](m+'\x20'+yt['default'][bd(0x23e)](bd(0x2e6)+n[bd(0x3cd)]+bd(0x1b4)+p+']')+':\x20'));if(E['isEmpty'](T))return p;let a0=E[bd(0x234)](T);if(/^\d+$/['test'](T)&&E['inRange'](a0,0x1,n[bd(0x3cd)]+0x1))return n[a0-0x1];let a1=E[bd(0x399)](n,a2=>E[bd(0x131)](a2)===E['toLower'](T));if(!E['isNil'](a1))return a1;a[bd(0x3e3)](bd(0x367)+n[bd(0x3cd)]+bd(0x3d3)+n[bd(0x239)](bd(0x364)));}return a['warn'](bd(0x1e6)+Xt+(bd(0xe5)+'值\x20')+p),p;}static async[af(0x1f4)](i){const bg=af;let l=E['toLower'](E[bg(0x132)](await this[bg(0x283)](i+'\x20'+yt['default'][bg(0x23e)](bg(0x14b))+':\x20')));return l==='y'||l===bg(0x194);}static async[af(0x2f0)](l,m=af(0xee)){const bh=af;for(let n=0x0;n<Xt;n++){let p=E[bh(0x132)](await this[bh(0x283)](m+'\x20(1-'+l+bh(0x119))),s=E['toInteger'](p);if(E['inRange'](s,0x1,l+0x1))return s-0x1;a[bh(0x3e3)](bh(0x153)+l+'\x20之间的数字');}throw new Error('连续\x20'+Xt+bh(0x382));}},C=d(require(af(0x3bc))),Rt=require('fs'),Lt=require(af(0x2b5)),j=d(require(af(0x3bc))),A=d(require(af(0x3bc))),at=class extends Error{[af(0x274)];[af(0x202)];['traceId'];constructor(l,m,n={}){const bi=af;super(m),this['name']=bi(0x26d),this[bi(0x274)]=l,this[bi(0x202)]=n[bi(0x202)],this['traceId']=n[bi(0x1e5)];}};function f(i,l){const bj=af;return new at(bj(0x204),i,{'hint':l});}function pe(i,l={}){const bk=af;return new at(bk(0x3fd),i,l);}function fe(i,l){const bl=af;return new at('confirmation'+bl(0x3ec),i,{'hint':l});}var On=['GET',af(0x197)],Fn=async i=>{const bm=af;let l={'timeout':i[bm(0x398)],'headers':i['headers']};return i[bm(0x26b)]==='GET'?Ct['get'](i[bm(0xce)],l):Ct[bm(0x25d)](i[bm(0xce)],i[bm(0x3a8)],l);},Qt=class{[af(0xdb)];['executor'];constructor(i,l=Fn){const bo=af;this[bo(0xdb)]=i,this[bo(0x15e)]=l;}[af(0x359)](i,l){const bp=af;return{'method':i[bp(0x26b)],'url':de(this[bp(0xdb)]['env'],i[bp(0x2b5)]),'headers':{'Authorization':bp(0x14a)+this['config'][bp(0x2c5)],'Content-Type':'application/'+bp(0x183),[ft]:D},'body':i['method']==='GET'?void 0x0:l,'timeout':i['timeout']};}[af(0x1a3)](l,m){const bq=af;this['assertIncomi'+bq(0x3d9)](l,m);let n=this[bq(0x359)](l,m);return this[bq(0x2a9)+bq(0x164)](n,l),n;}[af(0x2c3)+'ngBody'](i,l){const br=af;if(!(i[br(0x26b)]===br(0x19e)||A[br(0x154)](l))&&!A[br(0x118)+'t'](l))throw f(br(0x29a)+i[br(0x13f)]+(br(0x303)+br(0x376)),'写作\x20--data\x20\x27{'+br(0x348)+br(0x18e));}[af(0x2a9)+af(0x164)](i,l){const bs=af;if(!Ot(this[bs(0xdb)][bs(0x34f)]))throw f(bs(0x2b1)+String(this[bs(0xdb)][bs(0x34f)])+bs(0x39c),bs(0x297)+bs(0x25b)+'re|prod');if(A['isEmpty'](A['trim'](this[bs(0xdb)][bs(0x2c5)])))throw f('API_KEY\x20\u672A\u914D\u7F6E',bs(0x1c5)+bs(0x166)+bs(0xea)+bs(0x27b));if(A['isEmpty'](A[bs(0x132)](l[bs(0x2b5)])))throw f(bs(0x29a)+l[bs(0x13f)]+'\x20的\x20path\x20为空');if(!(A[bs(0x391)](i[bs(0xce)],bs(0x133))||A[bs(0x391)](i[bs(0xce)],'https://')))throw f('接口\x20'+l['name']+bs(0x3e6));if(!A[bs(0x28b)](On,i[bs(0x26b)]))throw f(bs(0x29a)+l[bs(0x13f)]+(bs(0x3bd)+'持'));if(i[bs(0x26b)]===bs(0x19e)&&!A[bs(0x154)](i[bs(0x3a8)]))throw f('接口\x20'+l['name']+(bs(0x1a0)+'体'));}async['call'](l,m){const bu=af;let n=this['prepare'](l,m),p=await this[bu(0x15e)](n);if(A[bu(0x154)](p)||!A[bu(0x3c8)](p))throw pe(bu(0x29a)+l[bu(0x13f)]+bu(0x366));if(p[bu(0x192)]!==!0x0){let s=A[bu(0xd3)](p[bu(0x225)])?'接口\x20'+l[bu(0x13f)]+bu(0x20f):String(p['message']);throw pe(s,{'traceId':p['traceId']});}return p[bu(0x1c2)];}},_=d(require('lodash')),$t=d(require('chalk')),Ln=0xa,Rn=0x1;function Zt(i,l){const bv=af;if(_[bv(0x154)](i)||i==='')return l?bv(0x390):bv(0x183);if(i===bv(0x183)||i===bv(0x390))return i;throw f(bv(0x256)+String(i),bv(0x1ed)+'le');}var _t=class{[af(0x34f)];[af(0x2c1)];[af(0x3f5)];[af(0x199)];[af(0x241)];constructor(i){const bw=af;this['env']=i[bw(0x34f)],this[bw(0x2c1)]=i[bw(0x2c1)],this[bw(0x3f5)]=i[bw(0x3f5)],this[bw(0x199)]=i[bw(0x199)]??process[bw(0x199)],this[bw(0x241)]=i['stderr']??process[bw(0x241)];}get[af(0x2bf)](){const bx=af;return this[bx(0x3f5)]===bx(0x183);}[af(0x192)](l,m={}){const by=af;if(this[by(0x2bf)]){let n={'ok':!0x0,'env':this[by(0x34f)],'command':this['command'],'data':l,'meta':m};return this[by(0x199)]['write'](JSON['stringify'](n,null,0x2)+'\x0a'),0x0;}return this['stdout'][by(0x289)](Dn(l)),_[by(0x154)](m[by(0x3e5)])||this[by(0x199)]['write']($t[by(0x138)][by(0x23e)](by(0x342)+m[by(0x3e5)]+'\x20条\x0a')),0x0;}[af(0x3ad)](l){const bz=af;let m=l instanceof at?l:new at(bz(0x3fd),l instanceof Error?l['message']:String(l)),n=m[bz(0x274)]===bz(0x3c7)+bz(0x3ec)?Ln:Rn;if(this[bz(0x2bf)]){let o={'ok':!0x1,'env':this['env'],'command':this[bz(0x2c1)],'error':_['omitBy']({'type':m[bz(0x274)],'message':m['message'],'hint':m[bz(0x202)],'traceId':m['traceId']},_[bz(0x154)])};return this['stderr'][bz(0x289)](JSON[bz(0x28d)](o,null,0x2)+'\x0a'),n;}return this[bz(0x241)][bz(0x289)]($t[bz(0x138)][bz(0x257)]('✖\x20'+m[bz(0x225)]+'\x0a')),_[bz(0xd3)](m['hint'])||this[bz(0x241)][bz(0x289)]($t[bz(0x138)]['yellow']('\x20\x20'+m['hint']+'\x0a')),n;}[af(0x260)](i){const bA=af;this[bA(0x241)][bA(0x289)]($t[bA(0x138)][bA(0x23e)](i+'\x0a'));}};function Dn(m){const bB=af;if(!_[bB(0x1f0)](m)||_[bB(0xd3)](m))return JSON[bB(0x28d)](m,null,0x2)+'\x0a';let p=_[bB(0x3e7)](m,a4=>_['isPlainObjec'+'t'](a4));if(p[bB(0x3cd)]!==m[bB(0x3cd)])return JSON['stringify'](m,null,0x2)+'\x0a';let B=_[bB(0x259)](_['flatMap'](p,a4=>_[bB(0x306)](a4))),T=a4=>_[bB(0x154)](a4)?'':_['isObject'](a4)?JSON[bB(0x28d)](a4):String(a4),a0=_[bB(0x22a)](B,a4=>_[bB(0x349)]([a4[bB(0x3cd)],..._[bB(0x22a)](p,a5=>T(a5[a4])[bB(0x3cd)])])??a4[bB(0x3cd)]),a1=a4=>_[bB(0x22a)](a4,(a5,a6)=>_[bB(0x1d8)](a5,a0[a6]))[bB(0x239)]('\x20\x20')+'\x0a',a2=$t[bB(0x138)]['bold'](a1(B)),a3=_[bB(0x22a)](p,a4=>a1(_['map'](B,a5=>T(a4[a5]))))[bB(0x239)]('');return''+a2+a3;}var ct=d(require(af(0x3bc))),Pn=[{'name':af(0x3f5),'desc':'输出格式:json\x20/\x20'+af(0x17f)+af(0x17b)+af(0x2c6)},{'name':'yes','desc':'跳过写操作确认,直接发起'+'请求','boolean':!0x0},{'name':'dry-run','desc':'\u53EA\u9884\u89C8\u8BF7\u6C42\uFF0C\u4E0D\u5B9E\u9645\u53D1\u8D77','boolean':!0x0},{'name':af(0x19b),'desc':'\u8F93\u51FA\u8C03\u8BD5\u65E5\u5FD7','boolean':!0x0}];function ze(a0,a1=[]){const bC=af;let a2=[...Pn,...a1],a3=ct['keyBy'](a2,a6=>a6[bC(0x13f)]),a4={},a5=[];for(let a6=0x0;a6<a0[bC(0x3cd)];a6+=0x1){let a7=a0[a6];if(!ct[bC(0x391)](a7,'--')){a5[bC(0x29b)](a7);continue;}let a8=a7[bC(0x34c)](0x2),a9=a8['indexOf']('='),aa=a9>-0x1?a8[bC(0x34c)](0x0,a9):a8,ab=a3[aa];if(ct[bC(0x154)](ab))throw f('未知参数\x20--'+aa,bC(0x1c5)+'li\x20<domain>\x20'+bC(0xf4)+'支持的参数');if(ab[bC(0x21b)]){a4[aa]=!0x0;continue;}if(a9>-0x1){a4[aa]=a8['slice'](a9+0x1);continue;}let ac=a0[a6+0x1];if(ct['isNil'](ac)||ct[bC(0x391)](ac,'--'))throw f(bC(0x37b)+aa+bC(0x1cd),bC(0x1be)+aa+bC(0x1f1)+aa+'=<值>');a4[aa]=ac,a6+=0x1;}return{'flags':a4,'positionals':a5};}var O=d(require('lodash')),w=d(require(af(0x3bc)));function tt(i){const bD=af;let l=pt(i),m=l?rt(l):void 0x0;if(w['isNil'](m))throw f('接口清单中不存在\x20'+i,bD(0x32b)+bD(0x3f2)+bD(0x3c1)+bD(0x214)+bD(0xf6)+bD(0x144));return m;}function q(i,l){const bE=af;let m=i[bE(0x137)][l];return w['isString'](m)&&m!==''?m:void 0x0;}function J(l,m){const bF=af;let o=q(l,m);if(w[bF(0x154)](o))return;let p=Number(o);if(!w[bF(0x2f4)](p))throw f(bF(0x37b)+m+bF(0x251)+o);return p;}function Me(i){const bG=af;return w[bG(0x12f)](i,l=>[l,...Me(l[bG(0xf9)]??[])]);}async function Ue(p,B,T,a0){const bH=af;let a1=q(p,B);if(w['isNil'](a1))return;let a2=Number(a1);if(w[bH(0x2f4)](a2))return a2;let a3=await p[bH(0x1c1)][bH(0x27e)](tt(T)),a4=Me(a3??[]),a5=w['find'](a4,a6=>a6['name']===a1);if(w[bH(0x154)](a5)){let a6=w['compact'](w['map'](a4,a7=>a7[bH(0x13f)]));throw f(a0+'\x20'+a1+bH(0x326),bH(0x2ec)+a6[bH(0x239)]('\u3001'));}return a5[bH(0x231)]??a5['id'];}function Gn(i){const bI=af;return w[bI(0x1f0)](i)?i:w[bI(0x118)+'t'](i)&&w[bI(0x1f0)](i[bI(0x1c2)])?i['result']:[];}async function Be(l,m){const bJ=af;let o=await l[bJ(0x1c1)][bJ(0x27e)](tt(bJ(0x30a)+'t'),{'name':m,'pagination':!0x1}),p=Gn(o);if(w[bJ(0xd3)](p))throw f(bJ(0x3f3)+m+'」的业务线','换个关键词,或改用\x20--'+'id\x20直接指定业务线\x20I'+'D');if(p['length']>0x1){let s=w[bJ(0x22a)](p,B=>B['id']+'\x20'+B[bJ(0x13f)])[bJ(0x239)]('\uFF1B');throw f(bJ(0x2eb)+m+bJ(0x1ec)+p['length']+'\x20条业务线,请收窄条件',bJ(0x18d)+s+(bJ(0x332)+bJ(0x186)));}return w['compact']([p[0x0]['id']]);}var je='biz-line-ope'+af(0x245),ge=af(0x235)+af(0x106)+af(0x2e0),Ke={'domain':af(0x2d2),'command':af(0x2b2),'description':af(0x2e8)+af(0x188)+af(0x27c),'risk':af(0x335),'endpointName':je,async 'resolve'(){return{'endpoint':tt(je)};}},We={'domain':'biz-line','command':af(0xf5),'description':af(0x207)+af(0x191),'risk':af(0x335),'endpointName':ge,async 'resolve'(){return{'endpoint':tt(ge)};}},Ve={'domain':'biz-line','command':af(0x37f),'description':af(0x208)+'即查全部','risk':'read','endpointName':af(0x30a)+'t','flags':[{'name':af(0x13f),'desc':af(0x2f5)},{'name':'id','desc':af(0x34e)},{'name':af(0xd2),'desc':af(0x19c)+af(0x3f9)}],async 'resolve'(i){const bK=af;let l=J(i,'id'),m=O['omitBy']({'name':q(i,bK(0x13f)),'idList':O[bK(0x154)](l)?void 0x0:[l],'adCategoryProjectId':await Ue(i,bK(0xd2),ge,bK(0x13d)),'pagination':!0x1},O['isNil']);return{'endpoint':tt(bK(0x30a)+'t'),'body':m};}},Ye={'domain':af(0x2d2),'command':af(0x23c),'description':af(0x3ef)+af(0x12d),'risk':'read','endpointName':af(0x28f)+'ategy-list','flags':[{'name':af(0x13f),'desc':af(0x223)+af(0x34d)},{'name':'id','desc':af(0x40d)}],async 'resolve'(l){const bL=af;let m=q(l,'name'),o=q(l,'id');if(O[bL(0x154)](m)&&O[bL(0x154)](o))throw f(bL(0xd4),bL(0x343)+'线名称>\x20或\x20--id\x20'+bL(0x411));if(!O[bL(0x154)](o)&&O[bL(0x28b)](o,','))throw f(bL(0x103)+bL(0x272),bL(0x12b)+'再传一个\x20--id');let p=O['isNil'](o)?O['first'](await Be(l,m)):Number(O['trim'](o));if(!O['isFinite'](p))throw f(bL(0x105)+bL(0x190)+o);return{'endpoint':tt(bL(0x28f)+'ategy-list'),'body':{'bizLineId':p,'pagination':!0x1}};}},et=d(require(af(0x3bc))),zn={'name':af(0x130),'desc':'完整请求体 JSON\uFF1B字段口径见 src/api-doc/oapi/biz-line-strategy.md'};function Mn(i){const bM=af;let l=q(i,bM(0x130));if(!et[bM(0x154)](l))try{let m=JSON[bM(0x302)](l);if(!et['isPlainObjec'+'t'](m))throw f(bM(0x393)+bM(0xf1));return m;}catch(o){throw o instanceof Error&&o[bM(0x13f)]==='CliError'?o:f(bM(0x38d)+'JSON',bM(0x33b)+bM(0x348)+bM(0x267)+bM(0x3b8)+'预览');}}function bt(l,m,o,p,s){const bN=af;return{'domain':'biz-line','command':l,'description':o,'risk':bN(0x289),'endpointName':m,'flags':[zn,...p],async 'resolve'(B){const bO=bN;let T=tt(m),a0={...Mn(B)??{},...et[bO(0xd7)](s(B),et[bO(0x154)])};if(et[bO(0xd3)](a0))throw f(l+'\x20缺少请求体',bO(0x16d)+bO(0xf3)+bO(0x12a)+bO(0x3de));return{'endpoint':T,'body':a0,'action':l+'\x20'+T[bO(0x21e)]};}};}var He=bt(af(0x1b3),af(0xf7)+'e',af(0xe1),[{'name':'name','desc':af(0x263)}],i=>({'name':q(i,af(0x13f))})),Je=bt(af(0x17a),af(0x40a)+af(0xd9),af(0x216),[{'name':'id','desc':af(0x178)},{'name':af(0x13f),'desc':af(0x263)}],i=>({'id':J(i,'id'),'name':q(i,af(0x13f))})),qe=bt(af(0x1bc),af(0x407)+af(0x286),af(0x37c)+af(0x134)+af(0x213),[{'name':'id','desc':af(0x178)},{'name':af(0x405),'desc':af(0x28a)+af(0x2ce)+'暂停'}],i=>({'id':J(i,'id'),'status':J(i,af(0x405))})),Xe=bt(af(0x346),af(0x328),'\u26A0\uFE0F\x20\u5220\u9664\u4E1A\u52A1\u7EBF',[{'name':'id','desc':af(0x178)}],i=>({'id':J(i,'id')})),Qe=bt('+strategy-sa'+'ve',af(0x28f)+af(0x389),af(0x361),[{'name':af(0x2f7),'desc':'\u4E1A\u52A1\u7EBF\x20ID'}],i=>({'bizLineId':J(i,'biz-line-id')})),Ze=bt(af(0x2a4)+af(0x205),af(0x28f)+'ategy-update',af(0x293)+af(0xf2)+af(0x250),[{'name':'id','desc':af(0x32a)},{'name':'version','desc':'乐观锁版本号,取自策略详'+'情'}],i=>({'id':J(i,'id'),'version':J(i,af(0xd0))})),tn=bt(af(0x3a1)+'lete',af(0x28f)+af(0x1e8),'\u26A0\uFE0F\x20\u5220\u9664\u5468\u7B56\u7565',[{'name':'id','desc':'\u7B56\u7565\x20ID'}],i=>({'id':J(i,'id')})),P=d(require(af(0x3bc)));function en(i){const bP=af;return{'domain':i,'command':bP(0x3fd),'description':bP(0x265)+bP(0x24f)+bP(0x33e),'risk':bP(0x335),'flags':[{'name':'data','desc':'请求体\x20JSON;GET'+'\x20接口无需传'}],async 'resolve'(m){const bQ=bP;let p=P['first'](m[bQ(0x1d0)]);if(P[bQ(0x154)](p))throw f(bQ(0x308),bQ(0x408)+bQ(0x29d)+i+(bQ(0x395)+'--data\x20\x27<jso'+bQ(0x151)+bQ(0xd5))+i+(bQ(0x3e2)+bQ(0x3d8)));let B=pt(p);if(P['isNil'](B)||B['domain']!==i)throw f(bQ(0x248)+p,bQ(0x32b)+'i\x20'+i+(bQ(0x3e2)+'hortcut,长尾\x20n'+bQ(0x1fa)+bQ(0x127)));let T=rt(B),a0=m[bQ(0x137)][bQ(0x130)],a1;if(P['isString'](a0)){let a3;try{a3=JSON[bQ(0x302)](a0);}catch{throw f(bQ(0x38d)+bQ(0x1bf),bQ(0x33b)+bQ(0x348)+bQ(0x3fa)+bQ(0x291));}if(!P[bQ(0x118)+'t'](a3))throw f(bQ(0x393)+bQ(0xf1));a1=a3;}let a2=B[bQ(0x19d)];return{'endpoint':T,'body':T[bQ(0x26b)]===bQ(0x19e)?void 0x0:a1??{},'action':T['name']+'('+T[bQ(0x21e)]+')','risk':a2};}};}var nn=en('biz-line');function rn(){const bR=af;return P[bR(0x22a)](P[bR(0x259)](P[bR(0x22a)](it(),i=>i[bR(0x34a)])),i=>en(i));}var he=[Ke,We,Ve,Ye,He,Je,qe,Xe,Qe,Ze,tn,nn],X=d(require(af(0x3bc)));function c(){const dH=['ioI/LowBNUwgHEwUUEs4UUEPUG','5PEG5Pwi6l6t5ywL77Ym6k+36l6t5ywLideT','yxjNDG','lwjJlwnSAsaV','5PEG6zYa5PU05PAW','5l2C5BEY5y+w5RAi','5B2t5yMn5lI66z2E5lQK5lQs546V5Akd77Ym5PEG5Rov5lQm','CgKGpg5HBwu+ic0T','C3vTBwfYEq','5AEl77Ym5y+c5PwWoIa','icaG5P+L6k+I5lIA5yQH57Q/','icaJioAFPEIVOUs4MUwkOEE6V++8IoAuR+AmGq','A2v5','ioAYOEACIEwrVEs7Pca','5Ps555sOifnOB3j0y3v0ia','ywXSB3DpBwL0vMfS','tIdLR7NOSAe','DMfSDwvpzG','Dhj1BMnHDgu','icaGicmG6zw/5Bc+5O6L5y+J5OYjia','y2HHBgS','5y+c5PwWic0T','4PQG77IpiowiH+AnOUs4MUwkOEE6V+EkTUAaGE+8MJeG','5OQa6io95RoO5yAm5ywO6yoO5AsX6lsL77Ym6k+35Qoa5P+L','C3rKAw4','k2XPC3q','AgfZt3DUuhjVCgvY','5y+y6yEp6ywn572U5BEY5l+D5A2yoIa','ioASOEI+K+wfPEAxOoAvIo+8Jow3SUwpLUA2IoAtJEs9Na','6k+35Rgc5l2t77YA','z3jLzw5cCMLNAhq','DxrMltG','AwDUB3jL','A2LUza','C2HVCNrJDxq','yxrLz3KTC2f2zq','Ag9Tzq','5yEg5Ash5OMt5BYa5PYS5zYW5PAh5lU2oIa','AxnjBNrLCMfJDgL2','ls1KyxrHios4JEAyR+wqIoAZLsa','CMvZCg9UC2u','5BEY5zcV55sOierLyNvNioAxPEw/LW','DgfIBgu','C3rHCNrZv2L0Aa','BIa85yc8pGOGia','ls1KyxrHioMCGoIMGEAyRYbk','oIbUCg0GDw5PBNn0','igfWAsa8BMfTzt4G','iYmG','5yIG6zMK5OQa6io955UU5B2v5lIo6ywn572U5PAh5lU277Ym','DgLTzw91Da','zMLUza','y2XVC2u','AxjZ','ios4JEwqIoAZLq','C2v0','sfruucdOR7FMSylPHy3NVA7PLjNOR686','ioIaL+AxTJOG','CMvZB2X2zq','k3n0CMf0zwD5lwrL','ywXPyxnLCW','nteXmtm2yxHvsg5b','4PAi4PwxicaG4PAi4PAi4Pwx4PAi4PAi4PAi4PAi','yxjNCW','Asa8BMfTzt4Gls1K','CMvQzwn0','yM9KEq','zxHLy3v0zq','zxnJyxbLrM9Yq21K','4PwxiokwIokwIokwIokwIokwIokwIokvLYdILOJILOG','5y+r6lw3ieHuvfaG6k+35RgcoIa','zMfPBhvYzq','qtjdlunmsq','icdLJ5JPH4/PHy3NVA7NM67LVzu6ia','icdPHy3NVA7MLOFKU7y6ia','5y+V6io95Q2J5y2G55sO5zg95lUK6kgm5ywL5y+J5PAh5lU2','twPvmKLPD2LKsgX3','CM91BMq','zxLkEMrxswLpAuK0','5zg95lUK6kEbihnPBM8TyMmT','zsaRBgLZDcaTlw5H','zcbMywLSzwq','55sOic0Tzhj5lxj1BIa','Bg9N','BMfTzsa85lIA5yQH57Q/5zcn56EWpG','zg9TywLUlwHLBha','Bg9KyxnO','ioEAHcbTzxrOB2qG5lIn5PsV','5RoO5yAm5zg95lUK5AsX6lsLoIdLKB3KU6tLKi3NP7a','4PwriokvMUkwIokwIokwIokwIokvKEkwIokwIokwIokwIa','igfWAwzVEc10B2TL','lwHLBhaG5P+L55YlifnOBW','B3bLBLvYBa','icaJioAFPEAFKoADOEs4MUwkOEE6V+EAHowrQa','56gU6k6K5yIG6zMK5lUL5lIk5yAf5A655BM25y246l2977YF','mc4WlJa','ueLFs0vzioM7MoIUPoAjK+EGGE+8Iq','y29UzMLYBwf0Aw9U','AxnpyMPLy3q','Dg9tDhjPBMC','zMfPBgvK','t0rJmuXdsMXLsefP','6lEZ6l+h5lQm5QYH56gU6k6K','BgvUz3rO','5ywi5OMN6kgmig5WBsbYDw4G','5yYf5yAf5OQa6io95RIf5y2v','B246iowiNEwNI+wmLUwUJoAiKa','lMfNzw50CW','Ahr0Chm6lY90zxn0','ioEAHow6J+wpT+AiLIa','Aw5KzxG','B246ioAuTUwiSowrVEs7PoIHJowpGUAvSdO','ic0TA2vLCc1JBgKk','5BEY5l+D55wzienmsE+8M+wMGUMCGow9U+w6Lq','Ag9YDgn1Da','BMDcB2r5','6ycA55sOic8G6AoE5lMM6lgg5yYf5BEL5l2C','5PYQ5OM+5yIW5zg95lUKoIaV','AxnuvfK','5Q2J5zYO5l2/55sO6BUy6k6K5Rwp6kEi5zMO5OMt5BYaoG','zYdMJiFLRPRLHBpPLk7LRzFMRRu','5OkO5y+V5lUL5OMl5yQO5OMt5BYa5Q2K5PAh5lU2oIa','lwqSic0TzgvIDwC','lwnSAsbIAxOTBgLU','ic0TAgvSCcdMN6xNNiSGuW','D2fYBG','Ag9TzwrPCG','y291BNq','ioAxOoAZLEAlVowhUUwqIoAZLsbvuKW','zMLSDgvY','icaO5PQc5PEG5y+V55sO5zg95lUKkqO','z2v0qwXSq29TBwfU','yxrHicC8ANnVBJ4N','icaJiowWHUAkGoIdVEAZQowgJowiSoMJNUs5PG','x3jLCxvPCMvK','BM9YBwfSAxPL','zgLY','5P+L6k+I5lIA5yQH57Q/55Qe5zgO562w55wL5lIo6kgO546W','ic0TANnVBGOGia','w0LUAxrdB21Tyw5K','AsbIAxOTBgLUzsaT','5RkH5PYj5zcn56EW5yY56ywn44cm','5BYaoIa','zM9YBwf0','yMmTy2XPioAkGoIdVs4UlG','lxLLCW','s2n3mNzIngKTtw1F','ioAiLUwqJEENSa','iN0N77YB5y+V5ywi55sOic0Tzhi','B246iow3SUAZQowgJca','5yEg5Ash5OMt5BYaifvstdOG','yxbP','zs9WCM9TAxnLCW','iokwIokwIokvKsaGicdILze','ioASOEMhJEIVLs4UlG','zgf0ysaNpgPZB24+','D3jPDhrLBG','AgfZq29TBwfUza','z3jVDxa','C3rHDhvZ','lZZLKB3KU6tLKi3NP7a+ia','yML6lwXPBMuTC3rH','5yAz5l2CihnPBM8TyMmTyW','77Ym5y+V55sO6zsUoIa','yML6lwXPBMuTDxbK','C3LUyY1HCgKTzg9J','Dg9vChbLCG','5lIA5yQH57Q/ieLe77Ym5lUf5O6L5y+x5y2v5lIQ','zxHPDenVzgu','5OM56yEp5RoO5yAm5A6m5OIq77Ym5OIq5yQFia','C291CMnL','pos4MUwkOEE6VYbjrd4','z2f0zxDHEvr5Cgu','lI4VlI4VC3jJl2DL','zNjVBq','5zco77Ym5zYO5y6F5zg95lUK5PYR5Bc+6l+95yQGic0','icaGicaGicaG','DxjS','y2HVAwnLCW','DMvYC2LVBG','zxHLy0nVBw1HBMq','y2f0zwDVCNK','AxnfBxb0Eq','57Y65Bcr5lIA5yQH57Q/','yY1JBgKG','icaGicaGicaGicaG','B21PDej5','cUkvKsaGia','yxrL','lI4VC3jJl2DLBMvY','y29UzMLN','B2LJzxm','BgKGl3nRAwXSioAFPEECIW','lI4U','CMf0zwqVyxbPlwnH','ic0TEwvZ','4PQG77IpioAwSow7UUs4MUwkOEE6VW','DhjPBvn0yxj0','572U5PAh5lU2oIa','z2v0v2L0AfjLDhj5','ioASOEI+K+wfPEAxOoAvIo+8Jow3SUMhH+EuQoM7MoIUPa','yMX1zq','4Pwq4PAi4PAi4PwxicaGiokvKq','5PAh77Yi6BUy6k6K5OMt56cb77Yj','AxnrDwLLDa','AwCGyxbPlwTLEsa8','6isA5PYS5OIwiefNzw50ioA2IoI0Uq','C3vIC3rYAw5N','B246iow8GowNI+wiNEwNI+wmLI4UlG','6k+36l6t5ywL5BQp5y+3','zxjYB3i','iow3SUwnUoI9Vq','u09oiowVUEIXOq','Aw9Uios4UUs5KoINGUMuGE+8JowgSUEQGEAxTG','C29UpICG5lYG5A6m5Pw05A2x5Q6177Ym','ls1OzwXWioAFPEECI+IVPEwrVEs7Pa','k2nHDgvNB3jPzxm','zsdOP4eGC3jJl2fWAs0','yML6lwXPBMuTC2f2','BM8TyMmTy2XPic8','y2HPBgrYzw4','y2XPigjPEI1SAw5L','lwGSic0TAgvSCa','iokvMUkwIokwIokwIokwIokwIokwIokvLokvNEkwIokwIa','CMvWBgfJzq','qvbjrK9yx1rps0vo','DxbKyxrLza','y2fxBgjPEdLOuhjv','5zg95lUK6kgm5BEL5yw3','sfruucdOR7FMSylMIjdLIP86ia','5y+c5PwWic0TAwqG5y+Q5O6L5y+x5y2v','Chv0','5y+c5PwWic0TAwqG6zYa6kAb5PwW5A2x','BI1WBgfJzw1LBNqT','iokwIokwIokvKsaGiokwIokwIokvKEkwIokwIa','5OMt5BYa5OQa6io95PAh5QgJ5AsX6lsLoIa','y3LHBG','Aw5ZDgfSBfnRAwXS','DxnHz2u','4PQz77IpicaG5y+y6yEp6ywn572U','su5jva','DgvYywn0AxzL','DdfKvha3vhvIwgzh','5l2/55sOihnPBM8TyMmTyW','5OQa6io95Qcr77Ym6k+35ywi5OMN6kgmig5WBq','ic9PBML0','icaGiokvKqRILzeGicaGia','zs5QC29U','ls1NB3rV','EwvSBg93qNjPz2H0','CMfUzg9T','AxnqBgfPBK9IAMvJ','ktOG','ios4QUwrVEs7Pa','cIaGicaV','5yAz5Pon5l2C6zYa56gU6k6K77YA5ywiic0Tza','swPVEe56zZroELKZ','zxHPDa','zgf5','5BEY5yIG6zMKia','ywDLBNrZ','5BcA5PYQ5yIB5BU677Ym5lUL5lIl5lI65yAf572U6BUy6k6K','qMv5B25Kq2XPy2SG','CMvHzgrPCLn5BMm','4PQz77IpicaG5l+U5Ps55y+y6yEp6ywn572U','yxbPx2TLEq','As1KB2mV','AsaV','572U5PAh5lU25BM25y246l29ienmsq','5OIw55sO6k+L5zg95lUK5PsV5OYb55QeigzSyq','5ywi55sOicTSAxn0ioAuTUEQHo+8Ja','y2HPBgrFChjVy2vZ','77YB5PsV5OYb5OYj5zcn56EW6kEJ5P6q5lIA5yQH57Q/','zgf5ANm','zMXHDe1HCa','zgf0yq','Dg9mB3DLCG','DhjPBq','Ahr0CdOVlW','6l+B6kgm5lITic8GmIdLT7lLROZMIjaG','zNjVBurPCG','C29U','zMXHz3m','zgvMyxvSDa','z3jLzw4','zKflCLnABMfjCvq5','BM9KztPYzwfKBgLU','5BEY5zYOien1CNnVCIdKUk3MIzm','5OQv5Ps+5zob57g7','lwfNzw50lMjLEw9U','BMfTzq','y2XVBMvezwvW','zgvSzxrL','ic0Tzhj5lxj1BIdPOOq','wvLzws1nts1ercbi','zg9JlW','Ae96zMnrn1e5munU','BM9KztPWCM9JzxnZ','Dw5PCxvLswq','5zg95lUKifS','ChjPBNrdB21Tyw5K','qMvHCMvYia','w3KVtL0','BwuGpos4MUwkOEE6V+wqJEENSd4kcG','4PwA4Pwq4Pwq4Pwq4Pwq4Pwq4PwDiokvMUkvKokvKokvKa','AxnuDhK','5y+y6yEp6ywn572U5BEY5yIB5BU6','C2f2zq','BJ4N77YB55sOihnPBM8TyG','AxnfCxvHBa','5PEG5Pwi5BQp5y+377Ym6k+36l6t5ywLideT','AxnoAwW','5BEY5y+w5RAi77Ym5PYQ5y+r6lw36k+35Rgc','y29TBwfUze5HBwu','ihnPBM8TyMmTy2XP','y29UzMLYBwvK','yMfZzvvYBa','icaO6BUy6k6Kkq','BgKGlW','D2LUmZi','5A6j6z2z5QIH5BYp77Ym6lEZ6l+h5lQK5lQs5BM25lUf6l6t','zxHLy3v0B3i','yxnZAwDU','ic0TC2HVDY1ZzwnY','5y246l296k+35OMN6kgmoIbUCg0GDq','zgvMyxvSDfzHBhvL','iefqsuzpwf9ut0Tf','BgfIBgu','cUkvKsaGicaGicaGica','BgKGl3nLDc1JB25M','mZG1mJuZs1r6sK5N','ptZLGlW+','BcaTzYa','8j+uPYaG5ywO5Bga6ycj6Ag5','y3btEw5J','CMvNAxn0zxi','55sOic0Tzgf0ysaNpgO','5Akdic8Gqvbjx0TfwE+8Iq','z2v0sw5ZDgfUy2u','D3jPDgvgAwXLu3LU','CM1tEw5J','CgXHDgzVCM0','tNPwos5jnfPcmMjF','zxqkicaGihnPBM8T','DhLoyw1LCW','6k+35Ps555sOigjPEI1SAw5L','Aw5KzxHpzG','5lIA5yQH57Q/ieLe','4PAi4PAi4PAi4PwxicaG4PAi4PAi4Pwrica','k3vWzgf0zq','ihrHyMXL77Ym6z2Eifruwq','C2HVD1zLCNnPB24','5Ps56k+35OMN6kgmihnPBM8TyMm','BMLUC3rHBgWGlwCG','DgfIBgxVViHuvfKG6BUy6k6K','iokgKIa','5B+R5O236k6/6zEUiejLEw9Uzem','icaGifDiru4Gia','ANnVBG','6iEQ5yQO5y246l295PYQ5A6m5OIq77Yi5B2t5yMn6l+B56Il','icaJioAFPEECI+wpMoMhJ+MfJEE9RU+8IoEoRW','5yw25lIT5lIa5P2H','xsdLJ5JPH4/PHy3NVA7MLOFKU7BLT7lLRzJLNkJVViW','zsdLJBpKUjRLIQhNUR/PH4ZNMOqGBwvK','Be9WDgLVBNm','CMvNAxn0CNK','6Ake5y+r546V5Akd','sLnptIdOP6pMNPdLPlhOTku6','5ycz6ycj77YA','iN0N','w0zbvefmxsbdteKG','77Ym5Ps25yIWia','77Yi5lIa57QN6kgm5lIA77Ym5lQm57QN5zob57g777Yj','C3vJy2vZCW','AxnwywXPza','EwvZ','zNvUy3rPB24','xsdLKB3KU6tMIAFOOyZLVidLP4VVViZLJ4lMLBa6','ue9tva','5zco6l+95yQGic0TEwvZ44cc','C3rKB3v0','5BEY5y+w5RAi77Ym5PYQ5ygA5lU75l2v5Ps55yQO','zgvIDwC','5OQv5Ps+5zob57g777Ym5O6L5y+x5A2x5yw4ieLe','CMLZAW','r0vu','Bgv2zwXxzwLNAhrZ','ios4UIbhrvtVViZKUi3OG73LUkBOR7FMSyi','zM9YrwfJAa','5l+U5Ps55y+y6yEp6ywn572U5PAh5lU25yAf5A6577Yi5lIn','ChjLCgfYzq','ic0G6icx5PE2oIa','CMvTB3zLu2TPBgXe','twrIEvy2r20XyLrP','AgfZ','5OMt5BYaoIa','ios4QUwgHEE9RUwrVEs7Pa','q0Xjiow6LoEuQoI/KoIHJoAxTUwpKEEuN+ACQG','igjPEI1SAw5LigfW','ywn0Aw9U','5O2v6i636zsz6k+VoG','lI4VlI4VCgfJA2fN','wc1hqvrfv0fzlvrz','EwvSBg93','y3vYC29Y','5AAc6zYa5P+L55Yl5A+g6zkL5PIo5PAh77Ym6k+35OMN6kgm','k3nHDMu','77Ym6BUy6k6KoIa','D2HPDgvcCMLNAhq','nMjrDe5JAG','qvbjx0Tfwq','yxHPB3m','AgvHza','CMvTB3zLq29UzMLN','5BEY5PU05PAW','k3n0yxr1CW','5QIH5BYp77Yi55+T6ycj6Ag577Yj','5yAz5l2Cic0T','sLnptG','ioIUVUE9RUwKSEI0PtOG','y2XPzw50','CMvZDwX0','BNbTihvUAw5ZDgfS','C2v0DxbdB25MAwC','5OMN6kgmihnPBM8TyMmTyW','DxnL','r2zrCLLNluzAsKzO','5BEY5yAz5ywL','mZm2ndKYmgDnCe1RrW','Ag9VA3m','77Yi546V5Akdia','5PEG5Rov5RoO6zsa5zg95lUKifS','ioE8UUwWKEwpLUwaVa','C2HVD1DLBgnVBwu','C29Tzq','Cg9ZAxrPB25HBhm','ntjQDLbdvMG','ios4QUEBRUw9Lq','5PEG5Rov6kEJ5P6q55sO5OI35lI755UU5B2v77YiB3m','C2TPBgXgAwXL','B2TLBG','igjPEI1SAw5LicTS','xsdLT7lLRzJLNkJVViZLSiBOPOBNM5BLJP/MNiNMS6G','CgfKrw5K','yxbPzM94vg9Rzw4','4Pwq4Pwq4Pwq4Pwq4PwxcUkvKsaGicaG','xsdLT7lMJiNPU5JORQtLGlZLHPNLHAxLJ5JPH4/PHy0','y3LHBKjYAwDODa','DcdNM67LVzxVViZLUBBORR7NVA7NJQ/LOOmGlW','w+MaIEMHUv0','5RoO5yAm5zg95lUK5AsX6lsLoIdLKB3KU6qGwW','5lIA5yQH57Q/5zcn56EWpG','5y+w5yc85lIn6io95lI656M6','yY1JBgKGlW','5yIW5Rwl6k+v546V5Akd','idZLGlW+','DhjHy2vjza','6l+E57UTia','5PYS5zYW44cn4OAsiowiT+AwSo+8M+IlPEs7JEAYOEACIq','yxrLz3KTzgvS','5BM25y246l295PYSienmsq','ChjVy2vZC0DSB2jH','4Pwq4Pwq4Pwq4PwDicaG4PwA4Pwq4PwDica','44cn5zg95lITia','5y+V6ycj5yc877YAANnVBUoaGxrHyG','zM9YBwf0twvZC2fN','mvvYDwDtzg9NrhfR','AxnbCNjHEq','idZLGlW+ioAiLIaTlq','C2TPCenVBMzPzW','yM9Sza','y29UzMLYBq','ic0TAgvSCa','Aw50zxjJzxb0B3jZ','t2Pfm09urxPovgS0','DMfSDwu','BgxJGieTlwrYEs1YDw4','yw1LioINGsbZCMmVyxa','EhH4cIaGicbZAw5V','x19LC01VzhvSzq','icaJios/RUAuUEwpMoMhJ+MfJEE9RU+8MUwiHW','y29TCgfJDa','ChjVBxb0','CMf0zwDPzxmGls1U','cUkvLokvKokvKokvKokvKokvKokvKokvKokvKokvKokvKa','AgLUDa','ChjLC2vUDgvY','DMfSAwrHDgLVBG','zgf0zq','muPlveXxD0zLwhbs','5P+L6k+I5OQv5Ps+6kgm5lIA5lIo5zob57g75A2x5yw45Qcr','5P+L6k+I5lIA5yQH57Q/5yIx6kgO77YB5lIn5lYG5P2H5lU2','xsdMIOdOG73MUPdMLOFKU7y6ia','ic0TCxvPzxqkica','AxnwywXPzfvYBa','5BEY5zYOifztienVzguG5lIT','4PwD4PAi4PAi4Pwu4Pwq4Pwq4Pwq4PAi4PAi4Pwx4PAi4PAi','5PAh5lU25lIn5A2y5zYOoIa','ioIWG+EuQowKSEI0Pq','Bw1HBMrDiowrVEs7PoAjP+IHJowUJa','lI4VCgfJA2fNzs5Q','5Q2J5zYO5OMN6kgmoIa','lYaZiow3SUAAGUwbNa','CNrJDxtVViZPLB/LSl4GBMfT','icaGC2LUBY1IyY1J','4PQG77IpioE8LUI+KEs4MUwkOEE6VW','CNzqCgu','6k+35OMl5yQO5OMN6kgmoIbUCg0GDq','6k+36ycj5OUP546V5Akd','CMvXDwvZDa','yM9VBgvHBG','CNKTCNvUioMIHoINIo+8JoEHRUIUPa','Bw1HBMrDioEBRUw9LEACRowWSEs4Jq','zgLZCgXHEu5HBwu','5zcV5yQO5AsX6lsLoG','igvUDIb0zxn0cIaG','5BEY5RoO6zsa5zg95lUKoIa','r0vux0nptKzjrW','5lIA5yQH57Q/5zcn56EW77Ym5ywi6kEJ5P6q5lI65lIA5yQH','AgvSCa','BwvZC2fNzq','iciIici','5RoO5yAm5zg95lUK5AsX6lsLoIdLKB3KU6tLRP7KVOS','lxLLCYdPH43OR5xVVjVKUz/LJ6/LHyJNLkG','5y+y6yEp6ywn572U5BEY5PU05PAW','BwfW','6lcd55sO6zw/5Bc+5O6L5y+J','y29SBgvJDfbHDgnO','Bwf0y2G','C2vSzwn0rNjVBunO','4Pwq4Pwq4Pwq4Pwq4Pwq4PwDcG','5QYH56gU6k6K44cc5AAc56gU6zYa5y246l2977Ym6k+35OMN','y29Kzq','4PAi4PAi4PAi4PAi4PAi4PAi4PwxiokwIokwIokwIokwIa','z2v0sw50zxjMywnL','Dg9jBNrLz2vY','yML6lwXPBMuTB3bL','ioE8UUwWKEwpLUwaVo+8JoIVT+AuUEEuQcbZAq','5BM25OMN6kgm','ic9ZzxqTy29UzMLN','AM9PBG','4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq4Pwq','u0vux0nptKzjrW','k3n0CMf0zwDPzxm','lwnSAsaV','z3jHEq','igvUDIb0zxn0','5OQa6io95BEY5RoO5yAm5yIWia','C3rKzxjY','vvnfuLbst0zjteu','Bw1HBMrDiowrVEs7PoAjP+IHJow8Ga','zgvLCevXDwfS','BI1JAgfUBMvSCW','u0TjteW','55sO5zg95lUK','5O6L5y+J5RIf5y2v5lIT5lIn5A2y5zYOia','DMfSDwvZ','w0DLDenVBMzPz0nV','6l6t5ywL5BEY57Ut5P2F77Yiru9g77Yj77Ym5Pon','4PAi4PAi4PAi4PAi4PAi4PAi4Pwu4PwD4PAi4PAi4PAi4PAi','44cbls15zxmkcG','icbZAw5VlwjJlwnS','55sO77YB6k+35Rgc5l2t55sXic0Tzgf0','5y+V5lYGig92zxj3CML0zq','ioMCGoIMGEAvSowTL++8JoAuTUwiSca','sfruucdOR7FMSylML6dLK43LUPq6ia','q0XjqxbWBgLJyxrP','Aw5ZDgfSBcdKVB/NLkJVViK','5PEG5Pwi55QeifvstcdLNldLNya6ia','5lIn5PsV5OYb55Qe6l6t5yE65Qc85BYpia','CMvK','ios4QUwKSEI0Pq','Dw5PCq','Aw5ZDgfUy2u','zYbLBNyGDgvZDhXW','DgfPBa','Cg9ZDa','iow3SUAyR+ACGoAwSdOG','B25Jzq','BM90AwnL','Dw5YzwDPC3rLCG','zxHLyW','5lIA5yQH57Q/5zcn56EW','ic0G54Q25Ocb56cboIa','5OYj5O6L5y+Jig5HBwuG54k55zcn6lcd','DgfSB2CUANnVBU+8JoIVTW','iN0N77YB5Asn5P2c6k+35Rgc5l2t5BU66k6U5ywi','zM9YBwf0rgf0zq','qKnFqvbj','5y+y6yEp6ywn572U55UU5B2v5PYS5BcX5lIn5A2y5zYO','Bwv0Ag9K','iowpR+s6Pos6KUwiM+w7UUMfJEE9RUAwH+s7TG','q2XPrxjYB3i','5OMN6kgm6z2I77YA','5zcV55sOierLyNvNioAxPEw/L+AOOq','AxngDw5JDgLVBG','y29TBwfUzcaTDIa','5lIQ5lIA5yQH57Q/ieLe','4PwrcUkvMUkvKokvKokvKokvKokvKokvKokvKokvKokvKa','DhLWzq','yML6lwXPBMuGk2XP','C3rHy2S','AxntDhjPBMC','y3vYCMvUDeXLDMvS','z2v0uhjVDg90ExbL','BxmG5zco6l+B6kgm56YSia','5yc8pIdMIjyGl2LUAxq','AwfdAgfUBMvSswtVViK','mMvkBwX6zq','y2fSBa','icaJioAFPEECI+w4RUwkQEs/OEAbRW','Ce8TwdrdChf3EfrW','5OMt5BYa5PAh5lU25AsX6lsLoG','y2XPs2v5','CxvLC3rPB24','ic0TEwvZcIaGicbZ','5l+D5OYb5lIn5y+yoIa','DhvZlxvWzgf0zq','jWOGia','55sF5lQN546V5Akd','D3jPDgu','55UU5Qch54Q25Ocb77YAmsdOV5VOOyZKUk0GlW','Aw5JBhvKzxm','y3jLyxrLsw50zxjM','C3rYAw5NAwz5','ueLgt1HFve9lru4','yML6lwXPBMuTC3rY','C3rHDfn5BMm','Es1YDw4G6Ake6kEi6k+35Rgc','56gU6k6K5OMN6kgm6k+L5yAz5Pon5l2C5zcx77YF','4PQG77IpioE8LUI+KEwrQoETLUEvPE+8M3zLCNm','5PEG5Pwi55Qe5PEL5PYF5yc8oIa','5BEY5lIl57Q/77Ym6k+35Ps555sOigjPEI0','C2HVD0HLBha','55sOic9ZzxqTy29UzMK','DhjHDgvNAwvZic0T','AgfZrMXHzW','5O6L5y+Jia','ChvZAa','cIaGicbZAw5VlwjJ','BgKG','y3j5ChrVlwPZ','5Bgv56s6iefqsv9lrvKG5PIo','zgLMzKrHExm','6lgg5yYf5BEL5l2C77YiBNbTiowUIEIJHEwqJG','CMvNAxn0zxjbBgW','zgvZy3jPChrPB24','k3n0CMf0zwD5lxvW','C3bHD24','C2LUBY1IyY1JBgKG','xtOG5zg95lUK5lIn5A2y5zYO','8j+xKE+4JYaGiownS+wWHUwiOoMzPos7PEs4I+wgHEwUUq','yxnZzxj0qxnZzw1I','C2L6zq','mtm3nda2s1LmtvLH','CNvU','BwTKAxjtEw5J','Aw5LigfWAsa8BMfT','zxHPC3rLza','qNu5qxHbmxj4y3LH','546V5Akdia','k2nOyw5UzwXZ','zgvIB3vUy2u','zgfYD2LU','Cgf0Aa','4Pwq4Pwq4Pwq4PwD4PwA4PAi4PAi4PwxiokwIokwIokvLa','DgeGjZXQC29UpIC','5OMN6kgm5OMt5BYa5zg95lUKoIa','igfWAs1RzxK9C2ST','Dw5PBNn0ywXSq2XP','5lMF5lYA6iEQ5yQO5OMN6kgm77Yj','EtjvodK3D3rKr3Ls','yMmTy2XPic8','C2vNBwvUDhm','AxnkC29U','DcdNM67LVzxMS6JLHOWGC2LUBY0','y29TBwfUza','icS8C2HVCNrJDxq+','yxnZzxj0sw5JB21P','ioAxTUwpKEEuN+MuMEIVRZO','yxbPs2v5','ioM7MoIUPcbQC29U77Yj','DMfSAwrHDgu','C3qGls1Uyw1LidZKUjO','yML6lwXPBMuGk3n0','D2HLBG','B21PDa','D2HPDgu','C2HVDY1ZzwnYzxq','idiG5BEY5A6m5OIqic8GmYdLT7i','Aw5MBW','z2v0t3DUuhjVCgvY','ioAwUEAZLq','yML6lwXPBMu','AsbIAxOTBgLUzsbH','xsdLKB3KU6tMIAFOOyZLROZMIjdVViZOGjFML7y6','B3bLBIaI','5P+L55Yl5y+y6yEp6ywn572U5PAh5lU25yAf5A6577Yiqq','ios9JE+8Iq','y3jLyxrLza','mJmWD3D4yML3','5OMt5BYa5Rwp6kEi5zMO5AsX6lsLoG','DgLW','Bwf0igPZB258DgfI','w1vUAw5ZDgfSBenV','mtGZmZy3mvPPyLv2vG','5lIn6io95lI656M6','y2f0zwDVCMLLCW','zxHPC3rZu3LUyW','iowrVEs7Pa','lMHVBwvKAxiG5lI656M677Yj','zw5KCg9PBNq','vu5jtLnuquXm','wZeT','AxneAxjLy3rVCNK','5P+L6k+I5OQv5Ps+5RIG6ygt5yIx6kgO77Yiy29K','sLHwvLfJuNDTBLvK','sw1gC1P5stzjBePu','5zcn56EW44cm','5y+V6ycj5yc877YA','5PYQ5OM+5yIWihnRAwXSCY8G','u3bXtfL6wfzdtuz1','BgfIzwW','C2vSzwn0sw5KzxG','5ywS5ywX5y+c5PwW77YAls1MB3jTyq','C3bSAxq','C2v0tgv2zwW','AxngAw5PDgu','5lIA5yQH57Q/5zcn56EW77Ym5QIH57ok5yY56ywn','iow3SUwBUUwUMUwgMEwfPEIVT+AXGUwKTo+8JoAxOoMCGa','yML6lwXPBMuTAwq','ic0Tzw52pxbYzqOG','zgLMzG','5RoO5yAm5OQa6io95yIW5PYS5PY6iefNzw4','6k+35Rgc5l2tiePtt07VVjThrvq','CgLJAW','CMvHzezPBgvtEw5J','zxLkCMfxuwLpAuL5','B3b0Aw9UCW','5BEY5l2/55sO57o757UF6BUy6k6K56Il5BQp5OMt5BYaoG','icaGicaGicaGiokvKqO','CgfYC2u','ioEAHoIVT+AXGUs9K+w/HEMHU+AyRYbku08','DgHYB3r0Bgu','sfruucdOR7FMSylLPlhOTku6ia','A2v5CW','5PEG5Rov6k+g5yIR55Qe5y+c5PwWoIa','57Y65Bcr5O6L5y+Jig5HBwu','C2fMzuPZB25qyxjZ','yML6lwXPBMuTBgLZ','uw10CdLbA2ftELi2','5BEY6ywn572U','y29TBwfUzhm','ioE8UUwWKEwpLUwaVo+8JoIVT+AuUEEuQcaTlq','C2LUBY1IyY0','icaV','5yIG6zMK5y+y6yEp6ywn572U55UU5B2v5AsX6lsLoIa','icaG5OYjig5HBwuG54k55zcn','EgrNlw9Wzw4GiG','AdHmqu50DvCZyKrj','Dw5JAgfUz2vK','C2TPBgWGy29TBwfU','yxnR','ioAoPEwpO+AxOoMCGos8Oa','cIaG','ihj1BIbIDwLSzo+8JoAiLG','C3bHD25ezxrHy2HL','BMfTzsdNGRNLKi3OSipNLkGkica','4PAi4PAi4PAi4Pwx4PAi4PAi4PwxicaG4PAi4PAi','Dw5Yzwy','ntrRB3nIse1btunX','B3bLBKzPBgu','CMvKDwnL','igjPEI1SAw5LicTZ','vtHzzMLvu2zVyxny','5BEY5RIf56M65OMa5PYj5zg95lUK5RoO5yAm','sfruucdOR7FMSylMI6BMIkRLMAJPLjNOR68','ios4JEwTMowCQa','77Ym5BEY5l+D55wz5y6F5yc8ia','yML6lwXPBMuTzgvS','CxvPzxq','562w55wLieLe','55sOihnPBM8TyMmTy2W','77Ym5lUf5PsV5OYbihrLC3qGlYa','5OYj5zcn56EW44cbsutJGihLK4hNSBVNRzVPGiNVViK','6k+vihnPBM8TyMmTy2W','z2vUzxjHDgvvBMLX','mMC2AgLpv3nVuJzf','yw1LidZKUjRLIQhNUR/LKi3NP7a+','44cc5y+V5Ps555sOic0TAwqG5OYh5A6A','w+M7MoIUPdOG','y3v0pIdMIjyGyML6lwW','CMvHza','y21Kic9Jihn0yxj0','zgvWCW','ntuYndC1oePHzMTjta','ic0G6lAf5PE25OIw572r57UC6zsz6k+Vic0','A2vLCc1JBgK','5yAz5l2Cic0Tzgf0ysaNEW','56gU6k6K5PEG6k+V5zco6yEn5PAW5OMN6kgm5BM26l+95yQG','4Pwr4PwA4PAi4PAi4Pwx4PAi4PAi4Pwr4PAi4PAi4Pwria','ysdMJ5dKVPS','DhjPBuvUza','mJGXnZa5mg5yBwThDq','ChjPBNrpChrPB24','cUwfSsa','5lYGic0TBMfTzsa85lIA5yQH','lI4Vz2vUzxjHDgvK','rM9ywurFBtjQrxvl','k2rLBgv0zq','562w55wL5lIo6kgO546W','iMTLEsi6iNzHBhvL','Bwf4','zg9TywLU','C2XLzxa','C2XPy2u','57Q/ieLeiowgJEAFPEIVOG','5lIA5yQH57Q/ieLe77Ym57k+56gU5yY56ywn','zw52','5yE65Pgy6kAb77YiBNbTihbVC3q','44cbls1KCNKTCNvU44cblq','6zsz6k+V5Acg5QcioG','ywz4Cf81yZC3ntbW','zw51BwvYywjSzq','icdMLOFKU7BNIRBMGie6ia','z2v0','yxbPidXUyw1LpG','AxfZqxC3DLnZAJHh','zgvZy3jPyMu','5lIn5A2y5zYO','x3n0yxj0vgLTzq','AgfUzgXLza','5OMN6kgm5zg95lUKic8','y3jLyxrL','sdPTBtPZCW','CMvTB3zLza','4PQG77IpioAwSow7UUs4MUwkOEE6V+wrQoETLUEvPq','y2f0y2G','6k+35Rgc77YA','ic8G','B2zM'];c=function(){return dH;};return c();}function Un(i){const bS=af;if(!X[bS(0x277)](i))return;let l;try{l=JSON['parse'](i);}catch{throw f(bS(0x38d)+'JSON',bS(0x33b)+'\x22key\x22:\x22value'+bS(0x3fa)+bS(0x291));}if(!X['isPlainObjec'+'t'](l))throw f(bS(0x393)+'SON\x20对象');return l;}function Bn(i){const bT=af;return{'domain':i['domain'],'command':i[bT(0x388)],'description':i[bT(0x36e)]||i[bT(0x21e)],'risk':i[bT(0x19d)],'endpointName':i[bT(0x13f)],'flags':[{'name':bT(0x130),'desc':bT(0x2fb)+bT(0x318)}],async 'resolve'(l){const bU=bT;let m=Un(l['flags'][bU(0x130)]);return{'endpoint':rt(i),'body':i[bU(0x26b)]==='GET'?void 0x0:m??{},'action':i[bU(0x13f)]+'('+i[bU(0x21e)]+')','risk':i[bU(0x19d)]};}};}function on(i){const bV=af;return X[bV(0x1fe)](X[bV(0x22a)](it(),l=>X[bV(0x1cf)](i,m=>m[bV(0x34a)]===l[bV(0x34a)]&&m[bV(0x2c1)]===l[bV(0x388)])?void 0x0:Bn(l)));}function sn(){const bW=af;let i=[...he],l=on(i),m=j[bW(0x3e7)](rn(),o=>!j[bW(0x1cf)](i,p=>p[bW(0x34a)]===o[bW(0x34a)]&&p[bW(0x2c1)]===o[bW(0x2c1)]));return[...i,...l,...m];}function jn(i,l){const bX=af;return j[bX(0x399)](sn(),m=>m['domain']===i&&m[bX(0x2c1)]===l);}function te(i){const bY=af;return j[bY(0x3e7)](sn(),l=>l[bY(0x34a)]===i);}async function an(p,a0){const bZ=af;let a1=a0[bZ(0x14e)]??N['isInteractiv'+'e'](),a2=p[bZ(0x34a)]+'\x20'+p[bZ(0x2c1)],a3=new _t({'env':a0['config'][bZ(0x34f)],'command':a2,'format':a1?'table':bZ(0x183),'stdout':a0['stdout'],'stderr':a0['stderr']});try{let a4=jn(p['domain'],p[bZ(0x2c1)]);if(j[bZ(0x154)](a4))throw f(p[bZ(0x34a)]+bZ(0x373)+p[bZ(0x2c1)],bZ(0x1c5)+bZ(0x29d)+p['domain']+('\x20--help\x20查看可用'+'命令'));let a5=ze(p[bZ(0x3a5)],a4[bZ(0x137)]);a3=new _t({'env':a0['config'][bZ(0x34f)],'command':a2,'format':Zt(a5[bZ(0x137)][bZ(0x3f5)],a1),'stdout':a0['stdout'],'stderr':a0[bZ(0x241)]});let a6=new Qt(a0[bZ(0xdb)],a0[bZ(0x15e)]),a7={'config':a0[bZ(0xdb)],'client':a6,'presenter':a3,'flags':a5[bZ(0x137)],'positionals':a5['positionals']},a8=await a4[bZ(0x3a0)](a7),a9=pt(a8['endpoint']['name'])?.['risk']??a8[bZ(0x19d)]??a4[bZ(0x19d)],aa=a6[bZ(0x1a3)](a8[bZ(0x2e4)],a8['body']);if(a5[bZ(0x137)]['dry-run']===!0x0)return a3[bZ(0x192)]({'dryRun':!0x0,'method':aa['method'],'url':aa[bZ(0xce)],'body':aa[bZ(0x3a8)]??null},{});a9!==bZ(0x335)&&await Kn({'deps':a0,'presenter':a3,'isTty':a1,'confirmed':a5[bZ(0x137)][bZ(0x194)]===!0x0,'action':a8[bZ(0x1ac)]??a2+'('+a8[bZ(0x2e4)][bZ(0x21e)]+')','request':aa});let ab=await a6[bZ(0x27e)](a8['endpoint'],a8[bZ(0x3a8)]);return a3[bZ(0x192)](ab,{'count':j['isArray'](ab)?ab['length']:void 0x0});}catch(ac){return a3[bZ(0x3ad)](ac);}}async function Kn(i){const c0=af;if(i[c0(0x158)])return;let l=me(i['deps']['config'][c0(0x34f)])[c0(0x2ef)];if(!i[c0(0x14e)])throw fe('写操作待确认:'+i[c0(0x1ac)]+c0(0x1cb)+l+')','向用户确认环境与操作意图'+c0(0xcc)+c0(0x228)+c0(0x142)+'览请求');if(i[c0(0x203)][c0(0x260)]('即将执行写操作:'+i[c0(0x1ac)]),i[c0(0x203)]['notice']('环境:'+l+'('+i[c0(0x337)][c0(0xdb)]['env']+')'),i[c0(0x203)][c0(0x260)](c0(0x363)+i['request']['method']+'\x20'+i[c0(0x21a)][c0(0xce)]),j[c0(0x154)](i['request']['body'])||i['presenter']['notice'](c0(0x383)+JSON[c0(0x28d)](i[c0(0x21a)][c0(0x3a8)])),!await(i['deps'][c0(0x1f4)]??(m=>N[c0(0x1f4)](m)))(c0(0x292)))throw fe(c0(0x155),c0(0x33c)+c0(0xe0));}function Wn(i=__dirname){const c1=af;let l=[(0x0,Lt[c1(0x239)])(i,'affordance'),(0x0,Lt[c1(0x239)])(i,'..','affordance'),(0x0,Lt[c1(0x239)])(i,'..','..','affordance')];return C[c1(0x399)](l,m=>(0x0,Rt[c1(0x2e1)])(m));}function ye(l,m=__dirname){const c2=af;let o=Wn(m);if(C[c2(0x154)](o))return'';let p=(0x0,Lt[c2(0x239)])(o,l+'.md');return(0x0,Rt[c2(0x2e1)])(p)?C[c2(0xfd)]((0x0,Rt[c2(0x2fd)])(p,c2(0x385)),/\r\n/g,'\x0a'):'';}function ee(B,T,a0=__dirname){const c3=af;let a1=ye(B,a0);if(C['isEmpty'](a1))return;let a2=C['split'](a1,'\x0a'),a3=!0x1;for(let a4 of a2){let a5=C[c3(0x132)](a4);if(C['startsWith'](a5,c3(0x396))){let a7=C['trim'](a5[c3(0x34c)](0x3)),a8=C[c3(0x1fe)](C[c3(0x2f2)](a7,/\s*\/\s*|\s+/));a3=C[c3(0x28b)](a8,T);continue;}if(!a3)continue;let a6=a5['match'](/\*\*WHEN\*\*[::]\s*(.+)/);if(!C[c3(0x154)](a6))return C[c3(0x132)](a6[0x1]);}}function _e(l,m=__dirname){const c4=af;let o=te(l),p=[l+c4(0x2e2),'',c4(0x2f1)+'t\x20json|table'+c4(0x351)+c4(0x3f7),''];C[c4(0x1a1)](o,B=>{const c5=c4;let T=ee(l,B[c5(0x2c1)],m);p[c5(0x29b)]('\x20\x20'+B[c5(0x2c1)]['padEnd'](0x16)+B['description']),C[c5(0xd3)](T)||p[c5(0x29b)](c5(0x182)+T);});let s=ye(l,m);return C[c4(0xd3)](s)||p[c4(0x29b)]('',s),p[c4(0x239)]('\x0a')+'\x0a';}var y=d(require(af(0x3bc))),b=require('fs'),ne=require('os'),v=require(af(0x2b5)),Vn=['oapi','custom','default'],kt='sino-bc-cli',Yn='sino-bc-shared',Hn=(0x0,v[af(0x239)])('default',Yn,'SKILL.md');function Jn(i){const c6=af;let l=new Map();return(0x0,b[c6(0x2e1)])(i)&&y[c6(0x1a1)]([...Vn],m=>{const c7=c6;let o=(0x0,v[c7(0x239)])(i,m);(0x0,b[c7(0x2e1)])(o)&&y[c7(0x1a1)]((0x0,b[c7(0x124)])(o),p=>{const c8=c7;if(p===kt)return;let B=(0x0,v[c8(0x239)])(o,p);if(!(0x0,b[c8(0x2e1)])(B)||!(0x0,b[c8(0x290)])(B)[c8(0x2e7)]())return;let T=l[c8(0x356)](p)??[];T[c8(0x29b)](B),l['set'](p,T);});}),l;}var be=[{'id':af(0x121),'segments':[af(0x3d1),'skills'],'label':af(0x3da)}];function qn(i){const c9=af;let l=(0x0,b[c9(0x2e1)])(i)?y['filter']((0x0,b[c9(0x124)])(i),m=>y[c9(0x391)](m,c9(0x30f))):[];return y[c9(0x259)]([kt,...l]);}function Ie(i=__dirname){const ca=af;let l=[(0x0,v['join'])(i,'skills'),(0x0,v[ca(0x239)])(i,'..','skills'),(0x0,v[ca(0x239)])(i,'..','..','skills')];return y[ca(0x399)](l,m=>(0x0,b[ca(0x2e1)])((0x0,v['join'])(m,Hn)));}function we(i=__dirname){const cb=af;let l=[(0x0,v['join'])(i,'SKILL.md'),(0x0,v[cb(0x239)])(i,'..','SKILL.md'),(0x0,v[cb(0x239)])(i,'..','..','SKILL.md')];return y[cb(0x399)](l,m=>(0x0,b[cb(0x2e1)])(m));}function Xn(l){const cc=af;if(!(0x0,b['existsSync'])(l))return'';let m=(0x0,b['readFileSync'])(l,cc(0x385))[cc(0x22d)](/^---\r?\n([\s\S]*?)\r?\n---/);if(y[cc(0x154)](m))return'';let o=m[0x1][cc(0x22d)](/description:\s*>?\s*([\s\S]*?)(?:\n[a-zA-Z]|\n---|$)/);return y[cc(0x154)](o)?'':y[cc(0x132)](y[cc(0xfd)](o[0x1],/\s+/g,'\x20'));}function Ee(i=__dirname){const cd=af;let l=Ie(i),m=we(i);return y[cd(0x154)](l)||y[cd(0x154)](m)?[]:[{'name':kt,'description':Xn(m),'dir':(0x0,v['dirname'])(m),'skillFile':m}];}function ie(i=(0x0,ne[af(0x3e4)])()){const cf=af;return y[cf(0x12f)]([...be],l=>{const cg=cf;let m=(0x0,v[cg(0x239)])(i,...l[cg(0x2be)]);return y[cg(0x22a)](qn(m),o=>{const ch=cg;let p=(0x0,v['join'])(m,o);return{'dir':p,'file':(0x0,v[ch(0x239)])(p,'SKILL.md'),'label':l[ch(0x2ef)]+ch(0x364)+o};});});}function Qn(i){const ci=af;(0x0,b[ci(0x2e1)])(i)&&y[ci(0x1a1)]((0x0,b[ci(0x124)])(i),l=>{const cj=ci;y[cj(0x391)](l,cj(0x30f))&&l!==kt&&(0x0,b[cj(0x171)])((0x0,v[cj(0x239)])(i,l),{'recursive':!0x0,'force':!0x0});});}function Ce(l={}){const ck=af;let m=l[ck(0x135)],p=Ie(m);if(y[ck(0x154)](p)||!(0x0,b[ck(0x2e1)])(p))throw new Error(ck(0x2ed)+ck(0x111)+ck(0x31a)+'确认安装包含\x20dist/'+'skills');let s=we(m);if(y[ck(0x154)](s))throw new Error('未找到根目录 SKILL.md');let B=l['home']||(0x0,ne['homedir'])();if(y[ck(0xd3)](B))throw new Error(ck(0x1d3)+'.homedir\x20为空)'+',请检查\x20HOME\x20/\x20'+ck(0x242));let T={'source':p,'home':B,'written':[],'failed':[]};return y[ck(0x1a1)]([...be],a0=>{const cl=ck;let a1=(0x0,v['join'])(B,...a0['segments']),a2=(0x0,v['join'])(a1,kt),a3=(0x0,v[cl(0x239)])(a2,'SKILL.md'),a4=a0[cl(0x2ef)]+'\x20/\x20'+kt;try{(0x0,b[cl(0x2ad)])(a1,{'recursive':!0x0}),Qn(a1);let a5=(0x0,b['existsSync'])(a3)?cl(0xff):cl(0x2d8);(0x0,b[cl(0x2ad)])(a2,{'recursive':!0x0}),(0x0,b[cl(0x16b)])(s,a3),y['forEach']([...Jn(p)['entries']()],([a6,a7])=>{const cm=cl;let a8=(0x0,v[cm(0x239)])(a2,a6);y[cm(0x1a1)](a7,a9=>{const co=cm;(0x0,b[co(0x16b)])(a9,a8,{'recursive':!0x0});});}),T['written'][cl(0x29b)]({'path':a3,'label':a4,'action':a5});}catch(a6){T[cl(0x3ca)][cl(0x29b)]({'path':a3,'label':a4,'error':a6 instanceof Error?a6['message']:String(a6)});}}),T;}function Se(i=(0x0,ne['homedir'])()){const cp=af;if(y[cp(0xd3)](i))throw new Error(cp(0x1d3)+cp(0x2e3)+',请检查\x20HOME\x20/\x20'+cp(0x242));let l={'home':i,'removed':[],'failed':[]};return y['forEach'](ie(i),m=>{const cq=cp;try{let o=(0x0,b[cq(0x2e1)])(m[cq(0x3ee)]);(0x0,b[cq(0x171)])(m[cq(0x3ee)],{'recursive':!0x0,'force':!0x0}),l[cq(0x360)][cq(0x29b)]({'path':m['dir'],'label':m[cq(0x2ef)],'existed':o});}catch(p){l[cq(0x3ca)][cq(0x29b)]({'path':m[cq(0x3ee)],'label':m[cq(0x2ef)],'error':p instanceof Error?p[cq(0x225)]:String(p)});}}),l;}var g=d(require(af(0x3bc))),K=require('fs'),lt=require('os'),$e=require(af(0x2b5)),cn='.sino-bc-cli',ln='config.json';function Zn(i){const cr=af;return g['trim'](i)[cr(0xfd)](/;+$/,'');}var F=[{'key':'env','cliKey':'env','aliases':['ENV'],'label':'\u73AF\u5883','prompt':af(0x219),'defaultValue':'prod','choices':['test','pre','prod'],'normalize':i=>g[af(0x131)](g[af(0x132)](i)),'validate':i=>Ot(g['toLower'](g[af(0x132)](i)))?void 0x0:'无效环境:\x20'+i+(af(0x32c)+'pre\x20/\x20prod')},{'key':'apiKey','cliKey':'api-key','aliases':['apiKey',af(0x1b7),af(0x126)],'label':af(0x1b7),'prompt':'\u8BF7\u8F93\u5165\x20API_KEY','defaultValue':Yt,'secret':!0x0,'normalize':i=>g[af(0x132)](i),'validate':i=>g[af(0xd3)](g['trim'](i))?af(0x1e1):void 0x0},{'key':'apifoxToken','cliKey':'apifox-token','aliases':['apifoxToken',af(0xfe),'apifox_token'],'label':af(0xfe),'prompt':'请输入\x20Apifox\x20t'+af(0x1d5),'defaultValue':Ht,'allowOmitValue':!0x0,'secret':!0x0,'interactive':!0x1,'normalize':Zn}];function It(i=(0x0,lt['homedir'])()){const cs=af;return(0x0,$e[cs(0x239)])(i,cn);}function Q(i=(0x0,lt['homedir'])()){return(0x0,$e['join'])(It(i),ln);}function Dt(i=(0x0,lt[af(0x3e4)])()){return(0x0,K['existsSync'])(Q(i));}function re(i){const cu=af;return g[cu(0xd3)](g[cu(0x132)](i[cu(0x1d9)]))?{'apifoxToken':Ht}:{};}function mn(){return{'env':'prod','gatewayType':D,'apiKey':Yt,'apifoxToken':''};}function vt(i){const cv=af;let l=g['toLower'](g[cv(0x132)](i));return g[cv(0x399)](F,m=>{const cw=cv;let o=[m[cw(0x372)],m['cliKey'],...m[cw(0x3a2)]];return g['some'](o,p=>g[cw(0x131)](p)===l);});}function oe(i=(0x0,lt[af(0x3e4)])()){const cx=af;let l=Q(i);if(!(0x0,K[cx(0x2e1)])(l))return{};try{let m=JSON['parse']((0x0,K['readFileSync'])(l,cx(0x385)));return g[cx(0x118)+'t'](m)?g['pick'](m,g[cx(0x22a)](F,cx(0x372))):{};}catch{return{};}}function W(i=(0x0,lt[af(0x3e4)])()){const cz=af;let l=oe(i),m=mn();return g['forEach'](F,p=>{const cy=e;let s=l[p[cy(0x372)]];if(!g[cy(0x277)](s)||g['isEmpty'](g[cy(0x132)](s)))return;let B=p['normalize']?p['normalize'](s):s;!g[cy(0x154)](p['validate'])&&!g[cy(0x154)](p[cy(0x2c7)](B))||(m[p[cy(0x372)]]=B);}),m[cz(0x412)]=D,m;}function xt(l,m=(0x0,lt[af(0x3e4)])()){const cA=af;let o={...W(m),...l,'gatewayType':D},p=It(m);return(0x0,K[cA(0x2ad)])(p,{'recursive':!0x0}),(0x0,K[cA(0x170)+'c'])(Q(m),JSON[cA(0x28d)](o,null,0x2)+'\x0a',cA(0x385)),o;}function ke(i=(0x0,lt[af(0x3e4)])()){const cB=af;let l=It(i),m=(0x0,K[cB(0x2e1)])(l);return(0x0,K['rmSync'])(l,{'recursive':!0x0,'force':!0x0}),m;}function dn(i){const cC=af;return g[cC(0xd3)](i)?'':i[cC(0x3cd)]<=0xc?''+g['repeat']('*',i['length']):''+i[cC(0x34c)](0x0,0x4)+g['repeat']('*',0x8)+i['slice'](-0x4)+'(共\x20'+i[cC(0x3cd)]+cC(0x2d7);}function V(i,l,m=!0x1){return i['secret']&&!m?dn(l):l;}var mt=d(require(af(0x3bc))),un=d(require('chalk'));async function Pt(B,a0=F,a1={}){const cD=af;let a2={};for(let a3 of a0){let a4={...B,...a2};if(a3['interactive']===!0x1&&a1['includeNonIn'+cD(0x10e)]!==!0x0||!mt[cD(0x154)](a3['when'])&&!a3[cD(0x2ca)](a4))continue;let a5=B[a3[cD(0x372)]],a6=mt[cD(0xd3)](mt[cD(0x132)](String(a5)))?a3[cD(0x162)]:a5,a7=V(a3,a6);process['stdout']['write']('\x0a'+un['default'][cD(0x1f3)]('▸\x20'+a3[cD(0x2ef)])+'\x0a');let a8=mt[cD(0xd3)](a3[cD(0xcf)])?await N[cD(0x317)](a3[cD(0x1ff)],a6,a7):await N[cD(0x22e)+'oices'](a3[cD(0x1ff)],a3[cD(0xcf)]??[],a6),a9=a3[cD(0x3ed)]?a3[cD(0x3ed)](a8):a8,aa=a3['validate']?a3[cD(0x2c7)](a9):void 0x0;if(!mt[cD(0x154)](aa)){a[cD(0x3e3)](aa+cD(0x327)+V(a3,a5));continue;}a2[a3[cD(0x372)]]=a9;}return a2;}var ve=class{[af(0x30d)]=new Map();['register'](i){const cE=af;if(x['isNil'](i))return a[cE(0xef)](cE(0x227)+'不能为空'),!0x1;if(x[cE(0xd3)](i[cE(0x13f)]))return a[cE(0xef)](cE(0x3be)+cE(0x2df)),!0x1;if(x[cE(0x154)](i[cE(0x3a9)])||!x[cE(0x270)](i[cE(0x3a9)]))return a[cE(0xef)](cE(0x1df)+i[cE(0x13f)]+(']\x20缺少\x20execute'+cE(0x2d1))),!0x1;let l=x[cE(0x131)](i[cE(0x13f)]);return this['commands'][cE(0x1a7)](l)&&a[cE(0x3e3)](cE(0x148)+l+(cE(0x1d7)+'册')),this[cE(0x30d)][cE(0x39d)](l,i),a[cE(0x19b)]('成功注册命令:\x20'+l),!0x0;}['registerAll'](i){const cG=af;let l=0x0;return x['forEach'](i,m=>{const cF=e;this[cF(0x16c)](m)&&l++;}),a[cG(0x19b)](cG(0x40f)+l+'/'+i[cG(0x3cd)]+cG(0x11a)),l;}[af(0x399)](i){const cH=af;if(!x[cH(0xd3)](i))return this['commands'][cH(0x356)](x[cH(0x131)](i));}[af(0x1a7)](i){const cI=af;return!x[cI(0x154)](this[cI(0x399)](i));}[af(0x3e9)+'ds'](){const cJ=af;return Array[cJ(0x414)](this[cJ(0x30d)][cJ(0x249)]());}[af(0x3e9)+'dNames'](){const cK=af;return Array[cK(0x414)](this['commands'][cK(0x306)]());}async[af(0x3a9)](l,m=[],n={}){const cL=af;let p=x['toLower'](x[cL(0xe2)](l,'/')),B=this[cL(0x399)](p);if(x['isNil'](B))return a[cL(0xef)](cL(0x3db)+p),a[cL(0x2db)]('使用\x20\x22'+S[cL(0x13f)]+('\x20help\x22\x20查看所有可'+cL(0x247))),!0x1;a[cL(0x19b)]('执行命令:\x20/'+p+',\x20参数:\x20'+JSON['stringify'](m));try{let T=B[cL(0x3a9)](m,n);return T instanceof Promise&&await T,!0x0;}catch(a0){return a[cL(0xef)](cL(0x35d)+p+cL(0x2c4),a0 instanceof Error?a0['message']:String(a0)),a0 instanceof Error&&!x[cL(0xd3)](a0['stack'])&&a[cL(0x19b)]('\u9519\u8BEF\u5806\u6808:',a0[cL(0x276)]),!0x1;}}[af(0x261)](i){const cM=af;let l=x[cM(0x131)](x['trimStart'](i,'/'));return this[cM(0x30d)]['has'](l)?(this[cM(0x30d)][cM(0x141)](l),a[cM(0x19b)](cM(0x221)+l),!0x0):(a[cM(0x3e3)](cM(0x1cc)+l+cM(0x2a7)),!0x1);}['clear'](){const cN=af;this['commands']['clear'](),a[cN(0x19b)](cN(0x324));}[af(0x2aa)](){const cO=af;return this['commands'][cO(0x2aa)];}},pn=new ve(),R=d(require(af(0x3bc))),ti='api';function ei(i){const cP=af;return R[cP(0x391)](i,'+')||i===ti;}function fn(l){const cQ=af;let m=[];if(R[cQ(0x1a1)](l,(s,B)=>{const cR=cQ;R['startsWith'](s,'-')||m[cR(0x29b)]({'value':s,'index':B});}),R[cQ(0xd3)](m))return{'kind':'empty'};let [o,p]=m;return R[cQ(0x28b)](ut(),o['value'])?!R[cQ(0x154)](p)&&ei(p[cQ(0x1f8)])?{'kind':cQ(0x388),'domain':o['value'],'command':p['value'],'args':l['slice'](p[cQ(0x3d4)]+0x1)}:{'kind':'domain-help','domain':o['value']}:{'kind':cQ(0x2c1),'name':o[cQ(0x1f8)],'args':R[cQ(0x22a)](R[cQ(0x25c)](m),s=>s[cQ(0x1f8)])};}var dt=d(require('chalk')),Gt=class{['name']=h[af(0x269)];['description']=af(0x295)+'line\x20+<short'+af(0x334)+af(0x2ae)+'e>';[af(0x10b)]='\x0a\x20\x20\x20\x20#\x20查询业务线'+'(替代原来的交互选接口)'+'\x0a\x20\x20\x20\x20sino-bc'+af(0x3e1)+af(0x3b6)+af(0x14c)+af(0x379)+af(0x31c)+af(0x24e)+af(0x2d3)+af(0x36d)+af(0x401)+af(0x287);[af(0x3a9)](){const cS=af;let i=[dt[cS(0x138)][cS(0x1b0)]('/bc-api\x20已下线,'+'不再发起任何请求。'),'',dt[cS(0x138)][cS(0x1f3)](cS(0x374)+cS(0x26e)),'\x20\x20'+dt[cS(0x138)][cS(0x109)]('sino-bc-cli\x20'+cS(0x275)+cS(0x2c8)+'务线名称>')+cS(0x370),'\x20\x20'+dt[cS(0x138)][cS(0x109)](cS(0x2a6)+cS(0x2c9)+cS(0x200)+cS(0x331))+'\x20\x20\x20查周策略与表现','\x20\x20'+dt[cS(0x138)][cS(0x109)](cS(0x2a6)+'biz-line\x20api'+'\x20<name>\x20--da'+cS(0x2b7))+(cS(0x312)+cS(0x22b)),'',dt['default']['gray']('接口清单见\x20src/ap'+'i-doc/,何时用哪条'+cS(0x3b5)+cS(0xfa)+'\x20--help。'),dt['default'][cS(0x23e)](cS(0x11c)+cS(0x21c)+cS(0x198)),''];throw process[cS(0x241)]['write'](i[cS(0x239)]('\x0a')+'\x0a'),new Error('/bc-api\x20已下线,'+cS(0x176)+cS(0x2c2)+'\x20或\x20biz-line\x20'+cS(0x357));}},L=d(require(af(0x3bc))),G=d(require(af(0x37a))),zt=class{['name']=h[af(0x222)];[af(0x2a3)]=af(0x2d6)+af(0x3c6);[af(0x10b)]=af(0x11b)+h[af(0x222)]+('\x0a\x20\x20\x20\x20sino-bc'+af(0x23d))+h[af(0x222)]+(af(0x29c)+af(0x23d))+h[af(0x222)]+(af(0x160)+af(0x174)+af(0x2bd))+h[af(0x222)]+af(0x3f0);[af(0x2ff)]=[{'short':'s','long':af(0x2cd),'description':af(0x29f)+af(0xe8)},{'long':af(0x183),'description':'以\x20JSON\x20输出,便于'+af(0xeb)}];async['execute'](n,p){const cT=af;a['debug']('[GetConfigCo'+cT(0x243)+cT(0x36f)+JSON['stringify'](n));let B=this[cT(0x299)](p,[cT(0x2cd),'s']),T=this[cT(0x299)](p,['json']),a0=Q(),a1=Dt(),a2=W(),a3=oe();if(T){let a4=L[cT(0x321)](F,(a5,a6)=>(a5[a6['key']]=V(a6,a2[a6[cT(0x372)]],B),a5),{});a4[cT(0x412)]=D,process[cT(0x199)][cT(0x289)](JSON[cT(0x28d)]({'configPath':a0,'exists':a1,'config':a4},null,0x2)+'\x0a');return;}process['stdout'][cT(0x289)]('\x0a'),process[cT(0x199)]['write'](G[cT(0x138)][cT(0x1f3)](cT(0x10c))+'\x0a\x0a'),process['stdout'][cT(0x289)](G[cT(0x138)][cT(0x23e)](cT(0x3b0)+a0)+'\x0a'),process['stdout'][cT(0x289)](G[cT(0x138)][cT(0x23e)](cT(0x355))+(a1?G[cT(0x138)]['green']('\u5DF2\u521B\u5EFA'):G['default']['yellow'](cT(0x122)+'值'))+'\x0a\x0a'),process[cT(0x199)]['write']('\x20\x20'+G[cT(0x138)][cT(0x1b5)](L[cT(0x1d8)](ft,0x10))+'\x20'+G[cT(0x138)][cT(0x109)](D)+'\x20\x20'+G['default']['gray']('\u56FA\u5B9A')+'\x0a\x0a'),L[cT(0x1a1)](F,a5=>{const cU=cT;let a6=!L[cU(0x154)](a3[a5[cU(0x372)]])&&!L[cU(0xd3)](L[cU(0x132)](String(a3[a5['key']])))?G[cU(0x138)][cU(0x139)](cU(0x30c)):G[cU(0x138)]['gray']('\u9ED8\u8BA4\u503C'),a7=V(a5,a2[a5[cU(0x372)]],B);process[cU(0x199)][cU(0x289)]('\x20\x20'+G[cU(0x138)]['whiteBright'](L[cU(0x1d8)](a5['label'],0x10))+'\x20'+G[cU(0x138)]['cyan'](a7)+'\x20\x20'+a6+'\x0a'+G['default'][cU(0x23e)]('\x20\x20'+L[cU(0x1d8)]('',0x10)+('\x20修改:\x20sino-bc'+cU(0x23d))+h[cU(0x23b)]+'\x20'+a5[cU(0x282)]+cU(0x1e4))+'\x0a\x0a');}),B||a[cT(0x2db)](cT(0x1b2)+cT(0x157)+'\x20/'+h[cT(0x222)]+(cT(0x160)+'et')),a1||a[cT(0x2db)](cT(0x1c5)+cT(0x15b)+h[cT(0x10d)]+cT(0x26c)),a[cT(0x19b)](cT(0x24a)+cT(0x210)+'成');}['hasFlag'](i,l){return L['isNil'](i)?!0x1:L['some'](l,m=>i[m]===!0x0);}},z=d(require(af(0x3bc))),xe=d(require(af(0x12e))),Ne=d(require(af(0x37a))),Mt=class{constructor(i={}){const cV=af;this[cV(0x1ca)]=i;}['hooks'];[af(0x13f)]=h[af(0x10d)];[af(0x2a3)]=af(0x2fa)+af(0x1dd)+'\x20API_KEY\x20/\x20A'+af(0x28e);[af(0x10b)]=af(0x11b)+h[af(0x10d)]+(af(0x29c)+af(0x23d))+h[af(0x10d)]+(af(0x29c)+af(0x23d))+h['INIT']+af(0x20a);[af(0x2ff)]=[{'short':'q','long':af(0x329),'description':af(0x15d)+af(0x350)+af(0x254)}];async[af(0x3a9)](l,m){const cW=af;a['debug'](cW(0x3f1)+cW(0x196)+'\x20'+JSON['stringify'](l));let n=(0x0,xe[cW(0x138)])(),p=this[cW(0xe9)](m);p||a['info']('['+ht[cW(0x268)](n)+(']\x20正在向本机\x20Agen'+cW(0x2c0)+cW(0x3f6))),this['installSkill'](p,m),this[cW(0x1ca)][cW(0x1f2)]!==!0x0&&await this[cW(0x1c4)](p),p||a[cW(0x2db)]('飞书:豆包工作\x20→\x20技能'+'·连接器\x20→\x20管理\x20→「'+cW(0x1e7)+',请完全退出飞书后再打开');let s=z[cW(0x3b3)]((0x0,xe['default'])()[cW(0x2f9)](n)/0x3e8,0x2);a[cW(0x19b)](cW(0x3f1)+cW(0x2d4)+'\x20'+s+'\x20秒');}[af(0x10a)](m,n){const cX=af;let p=z[cX(0x277)](n?.['home'])?n[cX(0x38a)]:void 0x0,r=(this['hooks'][cX(0x10a)+'s']??Ce)({'home':p});if(z[cX(0x1a1)](r['written'],a0=>{const cY=cX;let a1=this['formatAction'](a0[cY(0x1ac)]);if(m){a[cY(0x19b)](cY(0x3f1)+']\x20'+a1+'\x20'+a0[cY(0x2ef)]+':\x20'+a0[cY(0x2b5)]);return;}if(a0[cY(0x1ac)]===cY(0x315)){a[cY(0x2db)](a0['label']+cY(0x25e)+a0[cY(0x2b5)]);return;}a[cY(0x192)](a0['label']+'\x20'+a1+':\x20'+a0[cY(0x2b5)]);}),z[cX(0x1a1)](r[cX(0x3ca)],a0=>{const cZ=cX;a['warn'](a0[cZ(0x2ef)]+'\x20写入失败:\x20'+a0[cZ(0x2b5)]+'('+a0['error']+')');}),z[cX(0xd3)](r[cX(0x402)])&&!z[cX(0xd3)](r[cX(0x3ca)]))throw new Error(cX(0x37d)+'对用户主目录的写权限后重'+cX(0x32e)+'i\x20/init');let B=r['written'][cX(0x3cd)],T=r[cX(0x3ca)][cX(0x3cd)];a['success'](cX(0x240)+B+cX(0x1d2)+(T>0x0?','+T+cX(0x258):'')),a[cX(0x19b)](cX(0x3f1)+cX(0x209)+r[cX(0x410)]);}async[af(0x1c4)](m){const d0=af;let n=Q(),o=Dt(),p=W();if(!(!m&&N['isInteractiv'+'e']())){let a0=re(p);if(o&&z[d0(0xd3)](a0)){a[d0(0x19b)](d0(0x3f1)+d0(0x187)+d0(0x285)+n);return;}if(xt(a0),m){a['debug'](d0(0x3f1)+d0(0x1db)+d0(0xe3)+n);return;}a[d0(0x192)]('已按默认值创建变量配置文'+'件:\x20'+n),a[d0(0x2db)]('当前为非交互环境,如需修'+d0(0x17d)+'-cli\x20/'+h[d0(0x23b)]);return;}process['stdout']['write']('\x0a'),process[d0(0x199)][d0(0x289)](Ne[d0(0x138)][d0(0x1f3)](d0(0x10c))+Ne[d0(0x138)]['gray']('(直接回车使用方括号中的'+'默认值)')+'\x0a');let B=await Pt(p,F,{'includeNonInteractive':!0x0}),T=xt({...B,...re({...p,...B})});process['stdout'][d0(0x289)]('\x0a'),a[d0(0x192)]((o?d0(0x229):d0(0x14f))+':\x20'+n),a[d0(0x2db)]('\x20\x20'+D+(d0(0x2f6)+'配置')),z[d0(0x1a1)](F,a1=>{const d1=d0;a[d1(0x2db)]('\x20\x20'+a1[d1(0x2ef)]+':\x20'+V(a1,T[a1[d1(0x372)]]));});}[af(0xe9)](i){const d2=af;return z[d2(0x154)](i)?!0x1:i[d2(0x329)]===!0x0||i['q']===!0x0;}['formatAction'](i){const d3=af;return{'created':d3(0x1c8),'updated':d3(0x1bb),'unchanged':d3(0x36a)}[i];}},I=d(require(af(0x3bc))),Ut=d(require(af(0x37a))),Bt=class{[af(0x13f)]=h[af(0x23b)];['description']=af(0x1a2)+'带参数时逐项交互修改)';[af(0x10b)]=af(0x11b)+h[af(0x23b)]+('\x0a\x20\x20\x20\x20sino-bc'+af(0x23d))+h[af(0x23b)]+(af(0x220)+af(0x24e)+'i\x20/')+h[af(0x23b)]+(af(0x2b9)+af(0x1fb)+af(0x369))+h[af(0x23b)]+(af(0x2f8)+af(0x215)+'li\x20/')+h[af(0x23b)]+(af(0x163)+'N\x0a\x20\x20\x20\x20sino-b'+af(0x1e2))+h['SET_CONFIG']+(af(0x3c0)+af(0x392));[af(0x2ff)]=I[af(0x22a)](F,t=>({'long':t[af(0x282)]+af(0x168),'description':'设置'+t[af(0x2ef)]}));async['execute'](l,m){const d4=af;a[d4(0x19b)]('[SetConfigCo'+d4(0x243)+d4(0x36f)+JSON[d4(0x28d)](l));let n=W(),p=this[d4(0x22c)](l,m);if(I[d4(0xd3)](p)){if(!N[d4(0x38c)+'e']())throw new Error('未指定要修改的配置项。请'+d4(0x110)+'li\x20/'+h[d4(0x23b)]+('\x20<键>\x20<值>,可用键'+':\x20')+I[d4(0x22a)](F,'cliKey')[d4(0x239)]('\x20/\x20'));process[d4(0x199)]['write']('\x0a'),process[d4(0x199)][d4(0x289)](Ut[d4(0x138)]['bold'](d4(0x125))+Ut[d4(0x138)][d4(0x23e)]('\uFF08\u76F4\u63A5\u56DE\u8F66\u4FDD\u7559\u5F53\u524D\u503C\uFF09')+'\x0a');let s=await Pt(n);this[d4(0x150)](s,n);return;}this[d4(0x150)](p,n);}[af(0x22c)](n,B){const d6=af;let T={},a0=[];I['forEach'](B,(a2,a3)=>{const d5=e;let a4=vt(a3);if(!I[d5(0x154)](a4)){if(I[d5(0x277)](a2)){this[d5(0x15f)](T,a4,a2);return;}a2===!0x0&&a0[d5(0x29b)](a4);}});let a1=[];for(let a2=0x0;a2<n['length'];a2++){let a3=I[d6(0x132)](n[a2]);if(I['isEmpty'](a3))continue;let a4=a3[d6(0x177)]('=');if(a4>0x0){let a6=vt(a3[d6(0xec)](0x0,a4));if(!I[d6(0x154)](a6)){this[d6(0x15f)](T,a6,a3[d6(0xec)](a4+0x1));continue;}}let a5=vt(a3);if(!I[d6(0x154)](a5)){let a7=a2+0x1<n[d6(0x3cd)]?n[a2+0x1]:void 0x0;if(!I['isNil'](a7)&&I[d6(0x154)](vt(a7))){this[d6(0x15f)](T,a5,a7),a2+=0x1;continue;}if(a5[d6(0x375)+'ue']&&!I[d6(0xd3)](a5['defaultValue'])){this[d6(0x15f)](T,a5,a5[d6(0x162)]);continue;}throw new Error(a5['label']+(d6(0x236)+d6(0xf8))+h[d6(0x23b)]+'\x20'+a5[d6(0x282)]+'\x20<值>');}a1[d6(0x29b)](a3);}if(I[d6(0x1a1)](a0,a8=>{const d7=d6;if(!I[d7(0x154)](T[a8[d7(0x372)]]))return;let a9=a1['shift']();if(I[d7(0x154)](a9)){if(a8[d7(0x375)+'ue']&&!I[d7(0xd3)](a8[d7(0x162)])){this['assign'](T,a8,a8[d7(0x162)]);return;}throw new Error('--'+a8[d7(0x282)]+d7(0x30e)+a8['cliKey']+d7(0x168));}this[d7(0x15f)](T,a8,a9);}),!I[d6(0xd3)](a1))throw new Error(d6(0x307)+a1[d6(0x239)]('\x20')+d6(0x409)+I['map'](F,'cliKey')['join'](d6(0x364)));return T;}['assign'](l,m,n){const d8=af;let p=m[d8(0x3ed)]?m[d8(0x3ed)](n):n;if(I['isEmpty'](p))throw new Error(m[d8(0x2ef)]+('\x20设置失败:\x20取值不能为'+'空'));let s=m[d8(0x2c7)]?m['validate'](p):void 0x0;if(!I[d8(0x154)](s))throw new Error(m[d8(0x2ef)]+d8(0x1c0)+s);l[m[d8(0x372)]]=p;}['save'](l,m){const d9=af;let n=xt(l);process[d9(0x199)][d9(0x289)]('\x0a'),a[d9(0x192)](d9(0x381)+Q()),I[d9(0x1a1)](F,p=>{const da=d9;if(!I['isNil'](p['when'])&&!p['when'](n))return;let B=V(p,m[p[da(0x372)]]),T=V(p,n[p[da(0x372)]]);if(B===T){a[da(0x2db)]('\x20\x20'+p[da(0x2ef)]+':\x20'+T);return;}a[da(0x2db)]('\x20\x20'+p['label']+':\x20'+Ut[da(0x138)]['gray'](B)+da(0x180)+Ut[da(0x138)][da(0x384)](T));}),a[d9(0x19b)]('[SetConfigCo'+d9(0x210)+'成');}},Y=d(require('lodash')),jt=class{constructor(i={}){const db=af;this[db(0x337)]=i;}[af(0x337)];[af(0x13f)]=h[af(0x246)];[af(0x2a3)]='列出包内 Agent 技能\uFF1B传入 name 打开对应 SKILL.md';[af(0x10b)]=af(0x11b)+h['SKILL']+(af(0x29c)+af(0x23d))+h['SKILL']+(af(0x157)+af(0x319));async[af(0x3a9)](i){const dc=af;if(await this[dc(0x2ac)](i)!==0x0)throw new Error(dc(0x316)+dc(0x3b7));}async[af(0x2ac)](m){const dd=af;let n=this[dd(0x337)][dd(0x14e)]??N[dd(0x38c)+'e'](),p=this[dd(0x337)][dd(0x34f)]??W()[dd(0x34f)],B=new _t({'env':p,'command':'/'+h['SKILL'],'format':Zt(void 0x0,n),'stdout':this[dd(0x337)]['stdout'],'stderr':this[dd(0x337)][dd(0x241)]});try{let T=Ee(this[dd(0x337)][dd(0x135)]),a0=Y[dd(0x132)](Y[dd(0x1b9)](m)??'');if(Y[dd(0xd3)](a0))return B[dd(0x192)](Y['map'](T,a2=>({'name':a2[dd(0x13f)],'description':a2['description'],'path':a2[dd(0x1d4)]})),{'count':T['length']});let a1=Y['find'](T,a2=>a2[dd(0x13f)]===a0);if(Y[dd(0x154)](a1))throw f('未找到技能:\x20'+a0,dd(0x1c5)+dd(0xdd)+dd(0x3cf));if(!await(this[dd(0x337)][dd(0x320)]??(a2=>Tt['openFile'](a2)))(a1[dd(0x1d4)]))throw f(dd(0x108)+a1['skillFile']);return B['success']({'name':a1[dd(0x13f)],'path':a1[dd(0x1d4)]});}catch(a2){return B[dd(0x3ad)](a2);}}},H=d(require(af(0x3bc))),wt=d(require(af(0x37a))),gn=require('child_proces'+'s'),Ae=require('fs'),Kt=class{constructor(i={}){const df=af;this[df(0x1ca)]=i;}['hooks'];[af(0x13f)]=h[af(0x2e5)];['description']=af(0x397)+af(0x1e9);[af(0x10b)]=af(0x11b)+h['UNINSTALL']+(af(0x29c)+af(0x23d))+h['UNINSTALL']+(af(0x284)+'ino-bc-cli\x20/')+h[af(0x2e5)]+(af(0x3d6)+'\x20\x20');[af(0x2ff)]=[{'short':'y','long':af(0x194),'description':af(0x3cc)},{'long':af(0x33a),'description':'只清理技能目录与配置文件'+',保留已安装的\x20CLI'}];async['execute'](l,m){const dg=af;a['debug'](dg(0x2dd)+dg(0x243)+'始,参数:\x20'+JSON[dg(0x28d)](l));let n=this[dg(0x299)](m,['yes','y']),o=this[dg(0x299)](m,[dg(0x33a)]);if(this['printPlan'](o),!await this[dg(0x158)](n)){a[dg(0x2db)](dg(0x19a));return;}if(this[dg(0x1a5)+'irs'](),this[dg(0x1ba)](),o){a['tip'](dg(0x3d7)+dg(0x161)+dg(0x17e)+S[dg(0x13f)]);return;}this['uninstallCli'](),a['debug'](dg(0x2dd)+dg(0x210)+'成');}['printPlan'](l){const dh=af;process[dh(0x199)][dh(0x289)]('\x0a'),process[dh(0x199)]['write'](wt[dh(0x138)][dh(0x1f3)](dh(0x2a8))+'\x0a\x0a'),H[dh(0x1a1)](ie(this[dh(0x1ca)][dh(0x38a)]),p=>{const di=dh;let s=(0x0,Ae[di(0x2e1)])(p[di(0x3ee)])?wt[di(0x138)]['yellow']('\u5B58\u5728'):wt['default'][di(0x23e)](di(0x35a));process[di(0x199)]['write']('\x20\x20'+s+'\x20\x20'+p['label']+':\x20'+p[di(0x3ee)]+'\x0a');});let m=It(),n=(0x0,Ae[dh(0x2e1)])(m)?wt['default'][dh(0x1b0)]('\u5B58\u5728'):wt['default'][dh(0x23e)](dh(0x35a));process['stdout'][dh(0x289)]('\x20\x20'+n+dh(0x3af)+m+'\x0a'),l||process[dh(0x199)][dh(0x289)](dh(0x319)+wt[dh(0x138)][dh(0x1b0)](dh(0x237))+(dh(0x394)+'all\x20-g\x20')+S[dh(0x13f)]+'\x0a'),process[dh(0x199)]['write']('\x0a');}async[af(0x158)](i){const dj=af;if(i)return!0x0;if(!(this[dj(0x1ca)][dj(0x38c)+'e']??(()=>N['isInteractiv'+'e']()))())throw new Error(dj(0x36c)+dj(0x230)+'行\x20sino-bc-cl'+dj(0x128)+h[dj(0x2e5)]+dj(0xe0));return N[dj(0x1f4)](dj(0x3c4));}[af(0x1a5)+af(0x39b)](){const dk=af;let i=Se(this[dk(0x1ca)]['home']);H[dk(0x1a1)](i[dk(0x360)],m=>{const dl=dk;if(!m[dl(0x2af)]){a[dl(0x19b)](dl(0x2dd)+dl(0x21d)+'存在:\x20'+m[dl(0x2b5)]);return;}a[dl(0x192)](dl(0x120)+m[dl(0x2ef)]+':\x20'+m[dl(0x2b5)]);}),H['forEach'](i[dk(0x3ca)],m=>{const dm=dk;a[dm(0x3e3)]('删除失败\x20'+m['label']+':\x20'+m['path']+'('+m[dm(0xef)]+')');});let l=H[dk(0x3e7)](i[dk(0x360)],dk(0x2af))[dk(0x3cd)];a[dk(0x192)]('技能目录清理完成,共删除'+'\x20'+l+'\x20个');}['removeConfig'](){const dp=af;if(!H[dp(0x154)](this['hooks'][dp(0x1ba)])){this[dp(0x1ca)][dp(0x1ba)]();return;}let i=It();try{a[dp(0x192)](ke()?'已删除变量配置目录:\x20'+i:dp(0x26a));}catch(l){a[dp(0x3e3)](dp(0x311)+i+'('+(l instanceof Error?l[dp(0x225)]:String(l))+')');}}[af(0x2ba)](){const dq=af;if(!H[dq(0x154)](this[dq(0x1ca)][dq(0x2ba)])){this[dq(0x1ca)][dq(0x2ba)]();return;}let i=dq(0x1c3)+dq(0x169)+S[dq(0x13f)];a[dq(0x2cf)](dq(0x212)+i);let l=(0x0,gn['spawnSync'])(i,{'shell':!0x0,'stdio':'inherit','windowsHide':!0x0});if(l[dq(0xef)]||typeof l[dq(0x405)]=='number'&&l[dq(0x405)]!==0x0){a[dq(0x3e3)](dq(0x184)+dq(0x3b1)+')'),a['tip'](dq(0x218)+dq(0x17e)+S['name']);return;}a['success'](S[dq(0x13f)]+dq(0xf0));}[af(0x299)](i,l){const dr=af;return H[dr(0x154)](i)?!0x1:H[dr(0x1cf)](l,m=>i[m]===!0x0);}},hn=[new Gt(),new zt(),new Mt(),new Bt(),new jt(),new Kt()],se=class{[af(0x18a)];constructor(i){this['registry']=i||pn;}['initialize'](){const ds=af;a['debug'](ds(0x253)+ds(0xed));let i=this[ds(0x18a)][ds(0x2a2)](hn);a[ds(0x19b)](ds(0x253)+ds(0x3fb)+i+ds(0x1a9)),a[ds(0x19b)](ds(0x253)+ds(0x3d0));}async[af(0x2ac)](l=process[af(0x368)]){const du=af;try{this['initialize']();let m=l['slice'](0x2);a[du(0x19b)](du(0x253)+du(0x3d5)+'\x20'+JSON[du(0x28d)](m));let n=this['processGloba'+'lOptions'](m),p=fn(m);if(n[du(0x35c)]&&p['kind']!==du(0x3bb))return n[du(0x40e)];let s=p;return s[du(0x387)]===du(0x388)?await an(s,{'config':W()}):s['kind']==='domain-help'?(process[du(0x199)][du(0x289)](_e(s[du(0x34a)])),0x0):s[du(0x387)]==='empty'?(this['showWelcome'](),this['showHelp'](),0x0):await this['registry'][du(0x3a9)](s[du(0x13f)],s[du(0x3a5)],n['options'])?0x0:0x1;}catch(B){return a[du(0xef)](du(0x1aa)+du(0x1ad),B instanceof Error?B[du(0x225)]:String(B)),B instanceof Error&&!$[du(0xd3)](B[du(0x276)])&&a[du(0x19b)](du(0x352),B[du(0x276)]),0x1;}finally{N[du(0x39a)]();}}[af(0x1ea)+af(0x189)](l){const dv=af;let m={'handled':!0x1,'exitCode':0x0,'commandName':'','commandArgs':[],'options':{}};if($[dv(0xd3)](l))return m;let n={},o=[];return $['forEach'](l,p=>{const dw=dv;if($[dw(0x391)](p,'--')){let B=$['trimStart'](p,'-');if(B===dw(0xd0)||B==='v')this[dw(0x17c)](),m[dw(0x35c)]=!0x0;else{if(B===dw(0x224)||B==='h')this[dw(0x296)](),m[dw(0x35c)]=!0x0;else{if(B===dw(0x19b))n[dw(0x19b)]=!0x0,a['setLevel'](dw(0x19b)),a[dw(0x19b)](dw(0x38f)+'模式');else{let T=B[dw(0x177)]('=');if(T>-0x1){let a0=B[dw(0xec)](0x0,T),a1=B['substring'](T+0x1);n[a0]=a1;}else n[B]=!0x0;}}}}else{if($[dw(0x391)](p,'-')&&p[dw(0x3cd)]>0x1){let a2=p[dw(0xec)](0x1);switch(a2){case'v':this[dw(0x17c)](),m[dw(0x35c)]=!0x0;break;case'h':this['showHelp'](),m[dw(0x35c)]=!0x0;break;case'd':n[dw(0x19b)]=!0x0,a[dw(0x2f3)](dw(0x19b)),a[dw(0x19b)](dw(0x38f)+dw(0x1bd));break;default:n[a2]=!0x0;}}else o[dw(0x29b)](p);}}),m[dv(0x2ff)]=n,$[dv(0xd3)](o)||(m[dv(0x156)]=o[0x0],m['commandArgs']=o[dv(0x34c)](0x1)),m;}[af(0x1ce)](){const dx=af;let i=dx(0x201)+'════════════'+dx(0x23a)+dx(0x23a)+'════════════'+dx(0x1da)+dx(0xd6)+dx(0xd6)+dx(0xd6)+dx(0xd6)+'\x20\x20\x20\x20\x20\x20\x20\x20\x20║\x0a║'+'\x20\x20\x20'+u[dx(0x138)][dx(0x1dc)](dx(0x232)+dx(0x31d)+dx(0x3ab)+dx(0x3a4)+'██╗\x20\x20\x20\x20\x20║')+'\x0a║\x20\x20\x20'+u[dx(0x138)][dx(0x1dc)]('██╔══██╗██╔═'+dx(0x2b6)+dx(0x20d)+'██╗\x20\x20██║██╔═'+dx(0xe7))+dx(0xd8)+u[dx(0x138)]['cyanBright'](dx(0x24c)+'█╗\x20\x20\x20╚████╔╝'+dx(0x107)+'╔██╗\x20██║██║\x20'+dx(0x3ff))+dx(0xd8)+u['default'][dx(0x1dc)]('██╔══██╗██╔═'+'═╝\x20\x20\x20\x20╚██╔╝\x20'+dx(0x107)+dx(0x33d)+dx(0x3ff))+dx(0xd8)+u[dx(0x138)][dx(0x1dc)](dx(0x24c)+dx(0x179)+dx(0xfc)+dx(0x3bf)+'██╔╝\x20\x20\x20\x20║')+dx(0xd8)+u[dx(0x138)][dx(0x1dc)](dx(0x14d)+dx(0x1eb)+'\x20\x20╚═════╝\x20╚═'+'╝\x20\x20╚═══╝╚═══'+'══╝\x20\x20\x20\x20\x20║')+(dx(0x165)+dx(0xd6)+dx(0xd6)+dx(0xd6)+'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+dx(0x113)+dx(0xcd))+u[dx(0x138)][dx(0x384)](dx(0x123)+dx(0x101))+'\x20v'+S[dx(0xd0)]+(dx(0x301)+'║\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20')+u[dx(0x138)][dx(0x23e)](ht[dx(0x268)](void 0x0,'YYYY-MM-DD'))+('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+dx(0xd6)+dx(0x273)+'════════════'+dx(0x23a)+dx(0x23a)+'════════════'+dx(0x22f));process[dx(0x199)][dx(0x289)](i);}[af(0x17c)](){const dy=af;let i=u['default']['cyanBright'](S[dy(0x13f)])+'\x20'+u[dy(0x138)]['greenBright']('v'+S[dy(0xd0)]);process[dy(0x199)][dy(0x289)](i+'\x0a');}[af(0x296)](){const dz=af;process[dz(0x199)][dz(0x289)]('\x0a'),process[dz(0x199)][dz(0x289)](u['default'][dz(0x1f3)]('\u{1F4D6}\x20\x20\u4F7F\u7528\u8BF4\u660E')+'\x0a'),process[dz(0x199)][dz(0x289)](u[dz(0x138)][dz(0x23e)]('\x20\x20\u547D\u4EE4\u683C\u5F0F:\x20')+u[dz(0x138)][dz(0x1b5)](S['name']+'\x20')+u[dz(0x138)][dz(0x139)](dz(0x406))+u[dz(0x138)]['gray'](dz(0x1de))+'\x0a\x0a'),process[dz(0x199)][dz(0x289)](u[dz(0x138)][dz(0x1f3)](dz(0x16a))+'\x0a'),this['printOption']('-v,\x20--versio'+'n','\u663E\u793A\u7248\u672C\u4FE1\u606F'),this[dz(0x341)](dz(0xfb),'\u663E\u793A\u6B64\u5E2E\u52A9\u4FE1\u606F'),this[dz(0x341)](dz(0x3e0),dz(0x26f)+'式'),process['stdout'][dz(0x289)]('\x0a'),process['stdout'][dz(0x289)](u[dz(0x138)][dz(0x1f3)]('\u{1F4E6}\x20\x20\u53EF\u7528\u547D\u4EE4')+'\x0a');let i=this[dz(0x18a)][dz(0x3e9)+'ds']();if($[dz(0xd3)](i))process[dz(0x199)][dz(0x289)](u[dz(0x138)][dz(0x1b0)](dz(0x3e8)));else{let l=$['sortBy'](i,m=>m[dz(0x13f)]);$[dz(0x1a1)](l,m=>{const dA=dz;this[dA(0x149)](m[dA(0x13f)],m['description']);});}process[dz(0x199)][dz(0x289)]('\x0a'),$[dz(0x1a1)](ut(),m=>{const dB=dz;let n=te(m);$[dB(0xd3)](n)||(process[dB(0x199)][dB(0x289)](u['default'][dB(0x1f3)]('⚡\x20\x20'+m+dB(0x2e2))+'\x0a'),$[dB(0x1a1)](n,p=>{const dC=dB;let B=u[dC(0x138)][dC(0x384)]('\x20\x20'+$[dC(0x1d8)](p['command'],0x14)),T=ee(m,p[dC(0x2c1)]);process[dC(0x199)][dC(0x289)](''+B+u[dC(0x138)][dC(0x2cc)](p[dC(0x2a3)])+'\x0a'),$[dC(0xd3)](T)||process[dC(0x199)][dC(0x289)](u['default'][dC(0x23e)](dC(0x182)+T+'\x0a'));}),process[dB(0x199)][dB(0x289)](u[dB(0x138)][dB(0x23e)]('\x20\x20公共参数:--for'+dB(0x2dc)+dB(0x1f9)+dB(0x24d))));}),process['stdout'][dz(0x289)](u[dz(0x138)][dz(0x1f3)]('\u{1F4A1}\x20\x20\u4F7F\u7528\u793A\u4F8B')+'\x0a'),process[dz(0x199)]['write'](u[dz(0x138)]['gray'](dz(0x371)+dz(0x32d))+'\x0a'+u[dz(0x138)]['cyan']('\x20\x20'+S[dz(0x13f)]+(dz(0x1d6)+'ist\x20--name\x20<'+dz(0x1e0)))+'\x0a\x0a'),process[dz(0x199)][dz(0x289)](u[dz(0x138)][dz(0x23e)](dz(0x3c3)+dz(0x347))+'\x0a'+u[dz(0x138)][dz(0x109)]('\x20\x20'+S[dz(0x13f)]+(dz(0x322)+dz(0x298)+dz(0x3ba)))+'\x0a\x0a'),process[dz(0x199)]['write'](u[dz(0x138)]['gray']('\x20\x20#\x20长尾接口按\x20na'+'me\x20点名调用;写操作先'+dz(0x142)+'览,确认后加\x20--yes')+'\x0a'+u[dz(0x138)][dz(0x109)]('\x20\x20'+S[dz(0x13f)]+(dz(0x1ab)+dz(0x3a6)+dz(0x3ea)))+'\x0a\x0a'),process[dz(0x199)]['write'](u['default'][dz(0x23e)](dz(0x3eb)+dz(0x2a1)+dz(0x2bb))+'\x0a'+u[dz(0x138)][dz(0x109)]('\x20\x20'+S[dz(0x13f)]+dz(0x112))+'\x0a\x0a'),process['stdout'][dz(0x289)](u[dz(0x138)]['gray'](dz(0x185)+dz(0x16e))+'\x0a'+u[dz(0x138)][dz(0x109)]('\x20\x20'+S[dz(0x13f)]+'\x20/get-config')+'\x0a\x0a'),process[dz(0x199)][dz(0x289)](u[dz(0x138)][dz(0x23e)](dz(0x1fd)+dz(0x1e3))+'\x0a'+u[dz(0x138)][dz(0x109)]('\x20\x20'+S[dz(0x13f)]+(dz(0x238)+dz(0x23f)))+'\x0a\x0a'),process[dz(0x199)][dz(0x289)](u[dz(0x138)]['gray']('\x20\x20#\x20清理技能目录与配'+dz(0x129))+'\x0a'+u[dz(0x138)][dz(0x109)]('\x20\x20'+S[dz(0x13f)]+'\x20/uninstall')+'\x0a\x0a'),process[dz(0x199)][dz(0x289)](u['default'][dz(0x23e)](dz(0x27f))+'\x0a'+u[dz(0x138)][dz(0x109)]('\x20\x20'+S[dz(0x13f)]+dz(0x1f5))+'\x0a\x0a');}['printCommand'](l,m){const dD=af;let n=u[dD(0x138)]['greenBright'](dD(0x310)+$[dD(0x1d8)](l,0x14)),o=u[dD(0x138)]['white'](m);process[dD(0x199)][dD(0x289)](''+n+o+'\x0a');}[af(0x341)](l,m){const dE=af;let n=u[dE(0x138)][dE(0x116)]('\x20\x20'+$[dE(0x1d8)](l,0x14)),o=u[dE(0x138)][dE(0x2cc)](m);process['stdout']['write'](''+n+o+'\x0a');}};(async function(){const dF=af;let i=await new se()[dF(0x2ac)](process[dF(0x368)]);process[dF(0x11e)](i);}()[af(0x362)](i=>{const dG=af;console['error'](dG(0x18f)+dG(0x21f),i),process['exit'](0x1);}));
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: biz-line-strategy-generate
|
|
3
|
+
description: Use when 用户要为 BeyondClick 业务线生成投放策略(预算/广告产品/受众/素材四大策略及效果 learning)并导出 Excel。典型说法:"帮我生成第一页的业务线策略"、"把前 10 个业务线生成策略"、"给名称为 xxx 的业务线生成策略"。不负责单条接口的原始查询(那些走 sino-bc-biz-line 域技能),本技能是编排多个 biz-line 接口 + 本地计算 + 导出文件的完整工作流。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# biz-line-strategy-generate
|
|
7
|
+
|
|
8
|
+
按业务线/项目维度自动生成「预算策略、广告产品策略、受众策略、素材策略」四大策略内容与效果 learning,最终导出为 Excel。这是一条编排流程(多次调用 `biz-line` 域接口 + 本地计算 + 落盘),不是单条 Shortcut。
|
|
9
|
+
|
|
10
|
+
**开始前 MUST 先用 Read 工具读取 [`../sino-bc-shared/SKILL.md`](../sino-bc-shared/SKILL.md)**(配置、信封、确认门、禁止拼 HTTP)。查询业务线相关接口的字段口径见 [`../sino-bc-biz-line/SKILL.md`](../sino-bc-biz-line/SKILL.md)。
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
- 用户要求「生成业务线策略」「生成投放策略」,或提到「策略生成」「策略 learning」并希望产出文件
|
|
15
|
+
- 常见变体:
|
|
16
|
+
- 「帮我生成第一页业务线的策略」→ 第 1 页,默认页大小
|
|
17
|
+
- 「把前 10 个业务线生成策略」→ 前 10 条
|
|
18
|
+
- 「给名称为 xxx 的业务线生成策略」→ 按名称筛选
|
|
19
|
+
- 「给业务线 A 生成策略,用广告账号 act_123(Facebook)」→ 用户指定账号覆盖接口返回的账号
|
|
20
|
+
|
|
21
|
+
不要用本技能处理:单纯查询业务线列表/详情/项目(那是只读查询,直接走 `biz-line +list` / `+project-list` 等,不需要走完整生成流程)。
|
|
22
|
+
|
|
23
|
+
## Agent 流程
|
|
24
|
+
|
|
25
|
+
按顺序执行,每一步的接口调用细节和默认参数见对应 reference,不要跳步或凭记忆拼参数:
|
|
26
|
+
|
|
27
|
+
1. **拉取业务线列表**:`biz-line api biz-line-list`。默认按本期策略周期倒序、默认只取前 10 条;用户给了名称/ID/条数时按用户指定。细节见 [`references/api-flow.md`](references/api-flow.md)。
|
|
28
|
+
2. **拉取业务线关联项目与广告账号**:对每个业务线调 `biz-line api biz-line-project-list`。
|
|
29
|
+
3. **判定是否可生成策略**:按文档 7.1 生成入口逻辑——未绑定项目或广告账号的业务线不允许生成,跳过并记录原因。用户指定了广告账号时以用户指定为准。
|
|
30
|
+
4. **按渠道查广告策略维度数据**:把广告账号按渠道(Facebook/Google/TikTok)分组,分别调 `+facebook-dimension` / `+google-dimension` / `+tiktok-dimension`。
|
|
31
|
+
5. **按渠道查广告成效数据**:分别调 `+facebook-metrics` / `+google-metrics` / `+tiktok-metrics`。接口只支持基础指标,衍生指标需要展开成基础指标再计算,见 [`references/metrics.md`](references/metrics.md)。
|
|
32
|
+
6. **生成四大策略内容**:按 [`references/four-strategies.md`](references/four-strategies.md) 的字段映射与文案规则,逐维度生成策略标签/内容/广告动作。
|
|
33
|
+
7. **生成策略效果 learning**:识别业务线核心指标(`coreIndex`,为空或识别不到时按行业给默认核心指标),核心指标为衍生指标时展开为基础指标查询;按 [`references/metrics.md`](references/metrics.md) 的判定流程(KPI 达标 + 环比变化 → 结论)生成每个策略维度的 learning。
|
|
34
|
+
8. **导出 Excel**:按 [`references/output-excel.md`](references/output-excel.md) 的列规范拼装数据,调用 `scripts/build_report.py` 落盘。用户未指定输出路径时默认写到用户电脑桌面。
|
|
35
|
+
|
|
36
|
+
时间范围(本期/上期)默认规则见 [`references/api-flow.md`](references/api-flow.md)「第 5 步」;用户明确给出本期、上期时间时改用用户指定值。
|
|
37
|
+
|
|
38
|
+
## 常见误区
|
|
39
|
+
|
|
40
|
+
- 不要把接口不支持的衍生指标(CTR/CPC/CPI/ROAS 等)直接传给 `indicators`,必须先查基础指标再本地计算。
|
|
41
|
+
- `country_code` 维度必须单独查询,不能和其他维度混传。
|
|
42
|
+
- 未绑定项目/广告账号的业务线不要强行生成策略或编造数据。
|
|
43
|
+
- 一个业务线下有多个项目时,Excel 里按项目逐行输出,不要合并成一行。
|
|
44
|
+
- 写文件路径优先用户电脑桌面(`~/Desktop`),不要写进本仓库或临时目录,除非用户另有指定。
|
|
45
|
+
|
|
46
|
+
## References
|
|
47
|
+
|
|
48
|
+
- [`references/api-flow.md`](references/api-flow.md):完整接口调用顺序、默认排序/分页/时间范围规则
|
|
49
|
+
- [`references/four-strategies.md`](references/four-strategies.md):四大策略的字段映射、支持渠道、生成内容示例
|
|
50
|
+
- [`references/metrics.md`](references/metrics.md):基础/衍生指标口径、核心指标识别、策略效果 learning 判定流程
|
|
51
|
+
- [`references/output-excel.md`](references/output-excel.md):Excel 输出列规范与 `scripts/build_report.py` 用法
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# 示例:把前 10 个业务线(默认按本期策略周期倒序)生成策略并导出到桌面
|
|
55
|
+
sino-bc-cli biz-line api biz-line-list --data '{"pageNum":1,"pageSize":10,"sortType":"PERIOD","sortDirection":"DESC"}'
|
|
56
|
+
# ...按 Agent 流程 2-7 步编排调用其余接口...
|
|
57
|
+
python3 skills/biz-line-strategy-generate/scripts/build_report.py --input payload.json
|
|
58
|
+
```
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# 接口调用流程
|
|
2
|
+
|
|
3
|
+
字段口径以 `src/api-doc/oapi/biz-line-strategy.md`(安装后 `dist/api-doc/oapi/`)为准,本文件只写本 skill 场景下的调用顺序与默认参数。全部接口都走 `biz-line +<shortcut>` 或 `biz-line api <name> --data '<json>'`,不要自己拼 HTTP。
|
|
4
|
+
|
|
5
|
+
## 第 1 步:拉取业务线列表
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
sino-bc-cli biz-line api biz-line-list --data '{"pageNum":1,"pageSize":10,"sortType":"PERIOD","sortDirection":"DESC"}'
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
- **默认排序**:用户未指定时,按「本期策略周期倒序」,即 `sortType: "PERIOD"`、`sortDirection: "DESC"`。
|
|
12
|
+
- **默认条数**:用户未指定时只取前 10 条,即 `pageSize: 10`;用户说「第一页」按平台默认页大小理解为 10 条(`pageNum:1, pageSize:10`);用户说「前 N 个」则 `pageNum:1, pageSize:N`。
|
|
13
|
+
- **按名称筛选**:用户点名业务线(如「名称为 xxx 的业务线」)改用 `name` 模糊匹配,此时不再套用「前 10 条」限制;`name` 命中多条时把候选列出来,不要擅自选一条。
|
|
14
|
+
- **按 ID 筛选**:已知业务线 ID 时用 `idList`。
|
|
15
|
+
- 返回的每条业务线含 `id`、`name`、`ssoTeamCode`(组别 code,配合 `sso +group-list` 反查组名)、`coreIndex`(核心指标,可能为空)等字段。
|
|
16
|
+
|
|
17
|
+
## 第 2 步:拉取业务线关联项目与广告账号
|
|
18
|
+
|
|
19
|
+
对第 1 步选中的每个业务线 ID 调用:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
sino-bc-cli biz-line api biz-line-project-list --data '{"bizLineId": 1251}'
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
- 一个业务线可能关联多个项目,每个项目下又有多个广告账号(分渠道:Meta/Facebook、Google、TikTok 等)。
|
|
26
|
+
- **判定是否可生成策略**:按文档 7.1 生成入口的逻辑——若该业务线未绑定项目、或项目下没有关联广告账号,则不允许自动生成,直接跳过并在汇报里说明「未绑定项目/广告账号」;不要对空账号硬凑数据。
|
|
27
|
+
- **用户指定广告账号**:如果用户在本次请求中明确给了广告账号 ID 和所属渠道,直接用用户提供的账号(覆盖接口返回的账号),但仍需要业务线/项目名称等基础信息用于 Excel 输出,因此第 2 步仍要跑一次以取项目名称、项目 PM。
|
|
28
|
+
|
|
29
|
+
## 第 3 步:按渠道查广告策略维度数据
|
|
30
|
+
|
|
31
|
+
判定可以生成后,把上一步拿到的广告账号按渠道分组,分别调用对应渠道的维度接口。三渠道 name:
|
|
32
|
+
|
|
33
|
+
| 渠道 | 维度接口 name | Shortcut |
|
|
34
|
+
| --- | --- | --- |
|
|
35
|
+
| Facebook(Meta) | `icenter-strategy-dimension-facebook` | `biz-line +facebook-dimension` |
|
|
36
|
+
| Google | `icenter-strategy-dimension-google` | `biz-line +google-dimension` |
|
|
37
|
+
| TikTok | `icenter-strategy-dimension-tiktok` | `biz-line +tiktok-dimension` |
|
|
38
|
+
|
|
39
|
+
请求体核心字段(三渠道一致):`startDate` / `endDate`(yyyy-MM-dd,两者必填)、`dimensionValues: {"account_id": ["<账号ID>", ...]}`(该账号所属渠道下的全部账号一次传入)、`dimensions`(分组维度数组,必填,按 [`four-strategies.md`](four-strategies.md) 对应策略维度选取需要的字段)。
|
|
40
|
+
|
|
41
|
+
**国家维度特殊规则**:`country_code` 必须单独一次请求,不能和其他维度混传,否则报错;查国家时服务端会转到跨渠道接口,只返回按国家分组的数据。
|
|
42
|
+
|
|
43
|
+
## 第 4 步:按渠道查广告成效数据
|
|
44
|
+
|
|
45
|
+
同样按渠道分组调用成效接口:
|
|
46
|
+
|
|
47
|
+
| 渠道 | 成效接口 name | Shortcut |
|
|
48
|
+
| --- | --- | --- |
|
|
49
|
+
| Facebook(Meta) | `icenter-strategy-metrics-facebook` | `biz-line +facebook-metrics` |
|
|
50
|
+
| Google | `icenter-strategy-metrics-google` | `biz-line +google-metrics` |
|
|
51
|
+
| TikTok | `icenter-strategy-metrics-tiktok` | `biz-line +tiktok-metrics` |
|
|
52
|
+
|
|
53
|
+
请求体在维度接口基础上多了 `indicators`(成效指标数组,必填)。**接口只支持基础指标**(见 [`metrics.md`](metrics.md) 的基础/衍生指标口径),业务线核心指标若是衍生指标,要展开成其依赖的基础指标一并查出,在 Agent 侧计算衍生值,不要把衍生指标名传给接口(会被忽略或报错)。
|
|
54
|
+
|
|
55
|
+
## 第 5 步:时间范围默认规则
|
|
56
|
+
|
|
57
|
+
用户未指定本期/上期时间时,按文档默认逻辑:
|
|
58
|
+
|
|
59
|
+
- **本期**:本次策略生成对应的自然周(周一至周日),即业务线/项目当前的策略周期 `periodStart` ~ `periodEnd`。
|
|
60
|
+
- **上期**:本期 `periodStart` 的上一自然周周一,到该周周日(`previewPeriodStart` = 本期 periodStart 的上一周周一;`previewPeriodEnd` = previewPeriodStart + 6)。
|
|
61
|
+
- 两次调用(本期、上期)分别传各自的 `startDate` / `endDate`,本期与上期返回的数据在 Agent 侧做环比对比,不要在一次请求里跨两周合并查询。
|
|
62
|
+
- 维度接口与成效接口的时间范围最多支持近 21 天,不要传超过 21 天的跨度。
|
|
63
|
+
- 用户明确指定本期、上期起止日期时,直接使用用户指定值,跳过上述默认推算。
|
|
64
|
+
|
|
65
|
+
## 分页与数据量
|
|
66
|
+
|
|
67
|
+
维度/成效接口默认每页 10 条(`size`),建议显式传更大的 `size`(不超过 1000)覆盖账号下全部广告,按 `result.total` 判断是否需要翻页;广告量大时优先加大 `dimensions` 粒度或分批翻页,不要漏页导致漏算占比。
|
|
68
|
+
|
|
69
|
+
## 汇总到 Excel 前的数据整理
|
|
70
|
+
|
|
71
|
+
按业务线 -> 项目 -> 渠道 三层汇总生成好的策略文案与 learning,最终按 [`output-excel.md`](output-excel.md) 的列规范拼成行数组,一个项目一行。
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# 四大策略生成
|
|
2
|
+
|
|
3
|
+
来源:飞书文档《优化工作台广告策略生成》7.3 四大策略生成 + 名词解释表 + 「策略涉及的数据维度+指标」维度 sheet。四大策略固定为:**预算策略、广告产品策略、受众策略、素材策略**,覆盖渠道优先 Meta、Google、TT(Twitter、ASA 部分维度也支持,见下表「支持渠道」列)。
|
|
4
|
+
|
|
5
|
+
## 生成总则
|
|
6
|
+
|
|
7
|
+
- 策略生成默认按周维度运行,对比本周(本期)与上周(上期)的广告结构配置、消耗占比和核心 KPI 表现。
|
|
8
|
+
- 每个维度的生成内容需覆盖:**策略标签**(本周动作类型归纳,如预算调整/产品结构调整/受众新增/素材上新)、**策略内容**(自然语言描述变化)、**广告动作**(底层依据,如新增/关闭数量、出价变化);效果 learning 见 [`metrics.md`](metrics.md)。
|
|
9
|
+
- 输出文案用优化师能看懂的业务语言,不直接暴露底层字段名(如不要直接写 `targetingInterests`,写「兴趣词包」)。
|
|
10
|
+
- 「设置类字段」(国家、年龄、性别、兴趣词包、关键词、广告组等)判断**新增/关闭/配置变化**,不强依赖消耗数据;「报告类字段」(Spend、广告目标、广告系列类型、成效目标、出价方式等)需结合成效数据计算**占比变化**。
|
|
11
|
+
- 各维度对应的接口字段来自「维度接口」(`+facebook-dimension` / `+google-dimension` / `+tiktok-dimension`)的 `dimensions` 数组取值,账号级过滤用 `dimensionValues.account_id`。
|
|
12
|
+
|
|
13
|
+
## 预算策略
|
|
14
|
+
|
|
15
|
+
| 字段 | 数据逻辑 | 生成内容示例 | 支持渠道 |
|
|
16
|
+
| --- | --- | --- | --- |
|
|
17
|
+
| 调整出价 | 查出价方式(`bid_strategy`)、出价调整次数、调整前后值。Meta 用 `bid_amount`;Google 用 `cpc_bid_amount`/`cpm_bid_amount`/`cpv_bid_amount`(任一变化即算变化);TikTok 用 `bid_amount`/`conversion_bid`/`deep_cpabid`(任一变化即算变化) | 【调整出价】Meta 出价方式是 xxx,调整了 xx 次,分别从 xx 调整到 xx;GG 本周未发生明显出价调整。 | Meta、Google |
|
|
18
|
+
| Spend(预算) | 按渠道汇总 `spend_usd` 绝对值与占比,对比本周 vs 上周。占比变化在 ±2% 内视为「无变化」,否则输出「渠道:变化 x%」 | 【预算】预算分配有调整,FB +5%,TT:-5%,详细:FB 50%>>55%,TT 40%>>35%,GG 10%>>10% | Meta、Google、TikTok、Twitter、ASA |
|
|
19
|
+
|
|
20
|
+
## 广告产品策略
|
|
21
|
+
|
|
22
|
+
| 字段 | 数据逻辑 | 生成内容示例 | 支持渠道 |
|
|
23
|
+
| --- | --- | --- | --- |
|
|
24
|
+
| 广告目标(`objective`) | 查本周、上周分媒体分广告目标的消耗占比 | 【广告目标】Meta:Awareness 60%>>68%,Sales 40%>>32%;TT:... | Meta、TikTok、Twitter |
|
|
25
|
+
| 广告系列类型(`advertising_channel_type`) | 查本周、上周分广告系列类型的消耗占比 | 【广告系列类型】Google 预算更集中在 PMax 系列。详细:PMax 60%>>68%,搜索广告 40%>>32% | Google |
|
|
26
|
+
| 成效目标 / 优化目标(`optimization_goal`) | 查本周、上周分成效目标的消耗占比 | 【成效目标】成效目标更聚焦在安装。详细:安装 45%>>60%,点击 55%>>40% | Meta、Google、TikTok |
|
|
27
|
+
| 出价方式(`bid_strategy`) | 查本周、上周出价方式的消耗占比 | 【出价方式】整体更偏向系统自动优化。详细:(按占比列出各出价方式变化) | Meta、Google、TikTok |
|
|
28
|
+
|
|
29
|
+
## 受众策略
|
|
30
|
+
|
|
31
|
+
| 字段 | 数据逻辑 | 生成内容示例 | 支持渠道 |
|
|
32
|
+
| --- | --- | --- | --- |
|
|
33
|
+
| 国家(`country_code`,须单独查) | 查投放设置上的国家,总结新增/关停 | 【国家】新增 1 个国家:xxx;关停 1 个国家:xxxx,投放区域有小幅调整。 | Meta、Google、TikTok |
|
|
34
|
+
| 兴趣词包(`targeting_interests` / `targeting_flexible_interests` / `targeting_exclusion_interests`) | 查投放设置上的兴趣词包,总结新增/关停 | 【兴趣词包】新增 2 个兴趣词包:短剧、线上娱乐;未发现关停,受众覆盖范围扩大。 | Meta、TikTok(Google 不支持) |
|
|
35
|
+
| 受众类型(`audience_type`) | 查受众类型消耗数据(需加工),总结占比变化 | 【受众类型】无变化。详细:通用 50%>>55%,类似受众 40%>>35%,自定义受众 10%>>10% | Meta、Google、TikTok |
|
|
36
|
+
| 关键词(`keywords`) | 查投放设置上的关键词,总结新增/关停 | 【关键词】新增 3 个关键词:xxxx,关停 1 个低效关键词:xxxx | Google(Meta、TikTok 不支持) |
|
|
37
|
+
| 关键词分类(需在关键词基础上加工分类,无独立接口字段) | 查投放设置上的关键词并加工分类,总结新增/关停 | 【关键词分类】新增通用词 2 个:xxx、竞品词 1 个:xxx,品牌词无明显变化 | ASA |
|
|
38
|
+
| 年龄(`targeting_age`) | 查投放设置上的年龄,总结新增/关停 | 【年龄】年龄定向无明显变化,仍以 18-44 岁人群为主。 | Meta、Google、TikTok |
|
|
39
|
+
| 性别(`targeting_genders`) | 查投放设置上的性别,总结新增/关停 | 【性别】性别定向无明显变化,仍以女性人群为主。 | Meta、Google、TikTok |
|
|
40
|
+
| 广告组(`adgroup_id` / `adgroup_name`) | 查广告组投放数据,总结新增/关停 | 【广告组】新增 4 个广告组:xxxx,关停 2 个低消耗广告组:xxxxx | Meta、Google、TikTok |
|
|
41
|
+
|
|
42
|
+
## 素材策略
|
|
43
|
+
|
|
44
|
+
| 字段 | 数据逻辑 | 生成内容示例 | 支持渠道 |
|
|
45
|
+
| --- | --- | --- | --- |
|
|
46
|
+
| Ad / Ad name(`ad_id` / `ad_name`) | 查 Ad 的投放报告,总结本周 Ad 新增/关停情况,并根据 `ad_name` 提取关键词,得出图片/视频素材的消耗占比变化 | 【广告】Meta:新增 2 个广告,素材集中在「剧情反转」方向;关停 2 个,素材为「内测人群」方向。TT:新增 1 个广告,素材集中在「强冲突开头」方向。 | Meta、Google、TikTok |
|
|
47
|
+
| 创意类型(`ad_format`) | 查创意类型(图片/视频等)的消耗占比变化 | 【创意类型】整体更偏向视频素材放量。图片 30%>>25%,视频 70%>>75%。 | Meta、Google、TikTok |
|
|
48
|
+
|
|
49
|
+
## 三类调整对象的对比口径(判定策略是否发生变化时使用)
|
|
50
|
+
|
|
51
|
+
| 类型 | 定义 | 对比方式 |
|
|
52
|
+
| --- | --- | --- |
|
|
53
|
+
| 可环比(如预算调整、媒体占比变化) | 上周有、本周也有 | 本周 vs 上周(同一对象) |
|
|
54
|
+
| 新增(如新国家、新广告、新素材) | 本周新增,上周没有 | 本周新增部分 vs 本周整体 |
|
|
55
|
+
| 关停(如下架广告、关停国家) | 上周有,本周已关停 | 关停后剩余存量整体表现 vs 关停前整体表现 |
|
|
56
|
+
|
|
57
|
+
预算始终走「可环比」逻辑——看各媒体占比变化,以及业务线整体 KPI 是否达标。
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# 指标口径与策略效果生成
|
|
2
|
+
|
|
3
|
+
来源:飞书文档 7.4 策略效果生成 + wiki《策略涉及的数据维度+指标》指标 sheet。
|
|
4
|
+
|
|
5
|
+
## 基础指标 vs 衍生指标
|
|
6
|
+
|
|
7
|
+
维度/成效接口(`+facebook-metrics` / `+google-metrics` / `+tiktok-metrics`)的 `indicators` **只支持以下 12 个基础指标**,一次查询按需传其中若干个:
|
|
8
|
+
|
|
9
|
+
| API 字段 | 中文名 |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| `spend_usd` | 消耗金额(美元) |
|
|
12
|
+
| `impressions` | 曝光量 |
|
|
13
|
+
| `clicks` | 点击量 |
|
|
14
|
+
| `video_views` | 视频观看次数 |
|
|
15
|
+
| `add_to_cart` | 添加购物车次数 |
|
|
16
|
+
| `checkouts` | 发起结账次数 |
|
|
17
|
+
| `purchase` | 购买次数 |
|
|
18
|
+
| `purchase_value` | 购买金额 |
|
|
19
|
+
| `installs` | 应用安装量 |
|
|
20
|
+
| `complete_registration` | 完成注册量 |
|
|
21
|
+
| `leads` | 留下潜客信息次数 |
|
|
22
|
+
| `engagement` | 互动次数 |
|
|
23
|
+
|
|
24
|
+
**互动次数(`engagement`)及以下的指标都是衍生指标**,接口不支持直接查询,必须先查出对应的基础指标,再在 Agent 侧按下表公式计算:
|
|
25
|
+
|
|
26
|
+
| 衍生指标 | 中文名 | 计算公式(基础指标) |
|
|
27
|
+
| --- | --- | --- |
|
|
28
|
+
| `ctr` | 点击率 | `clicks / impressions` |
|
|
29
|
+
| `cpc` | 单次点击成本 | `spend_usd / clicks` |
|
|
30
|
+
| `cpm` | 千次曝光成本 | `spend_usd / impressions * 1000` |
|
|
31
|
+
| `cpi` | 单次下载成本 | `spend_usd / installs` |
|
|
32
|
+
| `cpe` | 单次互动成本 | `spend_usd / engagement` |
|
|
33
|
+
| `cpv` | 单次视频观看成本 | `spend_usd / video_views` |
|
|
34
|
+
| `cpaPurchase` | 单次订单成本 | `spend_usd / purchase` |
|
|
35
|
+
| `cpaAddsToCart` | 单次加入购物车成本 | `spend_usd / add_to_cart` |
|
|
36
|
+
| `cpr` | 单次注册成本 | `spend_usd / complete_registration` |
|
|
37
|
+
| `cpl` | 单次线索成本 | `spend_usd / leads` |
|
|
38
|
+
| `cvrAddsToCart` | 加入购物车转化率 | `add_to_cart / clicks` |
|
|
39
|
+
| `cvrPurchases` | 订单转化率 | `purchase / clicks` |
|
|
40
|
+
| `cvrAppInstalls` | 安装转化率 | `installs / clicks` |
|
|
41
|
+
| `vtr` | 视频观看率 | `video_views / impressions` |
|
|
42
|
+
| `roas` | 投资回报率 | `purchase_value / spend_usd` |
|
|
43
|
+
| `arpp` | 笔单价 | `purchase_value / purchase` |
|
|
44
|
+
| `cvrRegistrationsCompleted` | 注册转化率 | `complete_registration / clicks` |
|
|
45
|
+
|
|
46
|
+
计算前先确认分母对应的基础指标已经在同一次 `indicators` 请求中一起查出(同一 `dimensions` 粒度下),避免分子分母来自不同粒度导致口径不一致。分母为 0 时该指标记为「-」,不参与后续 KPI 判断。
|
|
47
|
+
|
|
48
|
+
## 核心指标识别
|
|
49
|
+
|
|
50
|
+
1. 业务线详情(`biz-line +detail` / `biz-line-list` 返回)里的 `coreIndex` 字段是自由文本,先尝试匹配到上述基础/衍生指标名称(中英文、别名均可,如「安装成本」→ `cpi`)。
|
|
51
|
+
2. 若 `coreIndex` 为空或无法识别,按投放行业给默认核心指标(ECBR → ROAS,APP/GAME → CPI;此为文档中的候选默认值,如与业务方最新口径冲突以业务方最新说明为准)。行业取值见 `biz-line +categories` 一级节点(1=APP,2=ECBR,3=游戏)。
|
|
52
|
+
3. 核心指标若是衍生指标,必须展开到其依赖的基础指标(见上表公式),把这些基础指标一并加入本次 `indicators` 查询,不能只查核心指标名。
|
|
53
|
+
4. 一个业务线可能有多个核心指标,逐个按下方判定流程生成 learning,多个结论在同一个策略 learning 里合并展示。
|
|
54
|
+
|
|
55
|
+
## 策略效果判定流程(生成 learning)
|
|
56
|
+
|
|
57
|
+
### 第一步:区分三类调整对象
|
|
58
|
+
|
|
59
|
+
| 类型 | 定义 | 对比方式 |
|
|
60
|
+
| --- | --- | --- |
|
|
61
|
+
| 可环比 | 上周有、本周也有(如预算调整、媒体占比变化) | 本周 vs 上周(同一对象) |
|
|
62
|
+
| 新增 | 本周新增,上周没有(如新国家、新广告、新素材) | 本周新增部分 vs 本周整体 |
|
|
63
|
+
| 关停 | 上周有,本周已关停(如下架广告、关停国家) | 关停后剩余存量整体表现 vs 关停前整体表现 |
|
|
64
|
+
|
|
65
|
+
预算调整始终走「可环比」逻辑:看各媒体占比变化,以及业务线整体 KPI 是否达标。
|
|
66
|
+
|
|
67
|
+
### 第二步:判定结论(KPI 为主 + 环比为辅)
|
|
68
|
+
|
|
69
|
+
| 是否达标 KPI | 环比变化 | 结论 | 说明 |
|
|
70
|
+
| --- | --- | --- | --- |
|
|
71
|
+
| ✅ 达标 | 变好或稳定 | 有效 | 达标且没变差 |
|
|
72
|
+
| ✅ 达标 | 变差(>10%) | 待观察(预警) | 达标但下滑明显,再观察一周 |
|
|
73
|
+
| ❌ 未达标 | 变好(>10%) | 待观察(潜力) | 未达标但趋势向好,再给一周机会 |
|
|
74
|
+
| ❌ 未达标 | 稳定或变差 | 无效 | 未达标且没改善,需关停 |
|
|
75
|
+
|
|
76
|
+
### 评判门槛(命中任一即判定「待观察」,不再往下判断有效/无效)
|
|
77
|
+
|
|
78
|
+
| 门槛 | 规则 | 原因 |
|
|
79
|
+
| --- | --- | --- |
|
|
80
|
+
| 消耗不足 | 本周消耗 < $50 | 数据量太小,指标不稳定 |
|
|
81
|
+
| 天数不足 | 本周有效投放天数 < 3 天 | 投放未跑满一周,样本代表性不足 |
|
|
82
|
+
| 转化不足 | 主 KPI 为转化类指标(CPI/CPA/ROI 等)且转化量 < 10 | 转化样本不够,统计显著性不足 |
|
|
83
|
+
| 无实质动作 | 占比变化在 ±2% 以内,且无新增/关停 | 实际没有发生有效调整,不评价调整成效 |
|
|
84
|
+
|
|
85
|
+
### 第三步:输出格式(三句话:结论 + 效果数据 + 建议)
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
有效。{新广告CPI 是7, 整体是6.7, KPI目标是6.5}。建议继续执行
|
|
89
|
+
待观察:{预算调整后,CPI上周是15、本周是12,KPI 目标是10}。建议再观察一周
|
|
90
|
+
无效:{新兴趣词包CPI是18,整体CPI是12,KPI目标是10}。建议关停
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
learning 文案里的效果数据要能对应到具体调整对象(如「新广告」「预算调整后」),不要只给笼统的整体数字。
|
|
94
|
+
|
|
95
|
+
## 与「策略内容」的关系
|
|
96
|
+
|
|
97
|
+
策略内容([`four-strategies.md`](four-strategies.md))描述「做了什么变化」,策略 learning 描述「这个变化效果如何」。四大策略维度分别对应各自的 learning,逐维度独立判定,不要把四个维度的效果合并成一句笼统结论。
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# 输出 Excel
|
|
2
|
+
|
|
3
|
+
生成结果的落盘环节,用本 skill 附带脚本 `scripts/build_report.py`(纯 Python 标准库,无第三方依赖,不需要 `pip install`)。脚本只做「结构化数据 → `.xlsx`」的机械转换,不做任何数据拉取或文案生成——那些在此之前由 Agent 按 [`api-flow.md`](api-flow.md)、[`four-strategies.md`](four-strategies.md)、[`metrics.md`](metrics.md) 完成。
|
|
4
|
+
|
|
5
|
+
## 输出列(固定 12 列,顺序不可改)
|
|
6
|
+
|
|
7
|
+
| 列名 | 取值来源 |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| 组别 | `biz-line +list` 返回业务线的 `ssoTeamCode` 对应组名,或 `sso +group-list` 反查 |
|
|
10
|
+
| 业务线 | 业务线名称 |
|
|
11
|
+
| 项目名称 | `biz-line +project-list` 返回的项目名称;一个业务线可能对应多个项目,逐项目各出一行 |
|
|
12
|
+
| 项目PM | 项目 PM 姓名 |
|
|
13
|
+
| 预算策略内容 / 预算策略learning | 见 [`four-strategies.md`](four-strategies.md) 预算策略 与 [`metrics.md`](metrics.md) learning 生成规则 |
|
|
14
|
+
| 广告产品策略内容 / 广告产品策略learning | 同上,广告产品策略 |
|
|
15
|
+
| 受众策略内容 / 受众策略learning | 同上,受众策略 |
|
|
16
|
+
| 素材策略内容 / 素材策略learning | 同上,素材策略 |
|
|
17
|
+
|
|
18
|
+
一个业务线下有多个项目时,逐项目产出一行;同一业务线的多行「组别」「业务线」保持重复填写,不要合并单元格(合并单元格会破坏后续按行读取)。
|
|
19
|
+
|
|
20
|
+
## 调用方式
|
|
21
|
+
|
|
22
|
+
Agent 在生成完全部行的数据后,组装成 JSON payload 写入临时文件(或直接通过 stdin),再调脚本:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
python3 skills/biz-line-strategy-generate/scripts/build_report.py --input payload.json
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
payload 结构:
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"output_path": "可选,未传时默认写到用户桌面 业务线策略生成_YYYYMMDD_HHMMSS.xlsx",
|
|
33
|
+
"rows": [
|
|
34
|
+
{
|
|
35
|
+
"group": "华东组",
|
|
36
|
+
"bizLine": "示例业务线",
|
|
37
|
+
"project": "示例项目",
|
|
38
|
+
"pm": "张三",
|
|
39
|
+
"budgetStrategy": "...",
|
|
40
|
+
"budgetLearning": "...",
|
|
41
|
+
"productStrategy": "...",
|
|
42
|
+
"productLearning": "...",
|
|
43
|
+
"audienceStrategy": "...",
|
|
44
|
+
"audienceLearning": "...",
|
|
45
|
+
"creativeStrategy": "...",
|
|
46
|
+
"creativeLearning": "..."
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
也支持 stdin:`python3 scripts/build_report.py --input - < payload.json`。
|
|
53
|
+
|
|
54
|
+
## 默认输出位置
|
|
55
|
+
|
|
56
|
+
用户未指定路径时,默认写到当前用户桌面(`~/Desktop`,找不到则退回主目录),文件名 `业务线策略生成_YYYYMMDD_HHMMSS.xlsx`,避免覆盖上一次的产出。用户明确要求其他路径 / 文件名时,通过 `--output` 或 payload 的 `output_path` 指定。
|
|
57
|
+
|
|
58
|
+
## 返回值与校验
|
|
59
|
+
|
|
60
|
+
脚本成功时输出 `{"ok": true, "output_path": "...", "row_count": N}`;失败(如 `rows` 为空)输出 `{"ok": false, "error": "..."}` 并以非 0 退出。Agent 应读取 `output_path` 回报给用户,不要凭假设的路径汇报。
|
|
61
|
+
|
|
62
|
+
生成后不做自动打开或回读校验(脚本没有 Excel 运行环境可用),Agent 汇报时按 `row_count` 与实际处理的业务线/项目数核对是否一致,不一致要说明原因(如某业务线被 7.1 判定为不可生成而跳过)。
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
"""
|
|
4
|
+
把业务线策略生成结果写成 .xlsx(业务线策略生成 skill 专用,纯标准库实现,无第三方依赖)。
|
|
5
|
+
|
|
6
|
+
职责边界:本脚本只负责「结构化数据 -> Excel 文件」的机械落盘,
|
|
7
|
+
不做任何数据拉取、策略文案生成或判断——那些都由调用方(Agent)在此之前完成。
|
|
8
|
+
|
|
9
|
+
用法:
|
|
10
|
+
python3 build_report.py --input payload.json [--output /path/to/file.xlsx]
|
|
11
|
+
cat payload.json | python3 build_report.py --input -
|
|
12
|
+
|
|
13
|
+
payload.json 结构:
|
|
14
|
+
{
|
|
15
|
+
"output_path": "可选,未传时默认写到桌面 业务线策略生成_YYYYMMDD_HHMMSS.xlsx",
|
|
16
|
+
"rows": [
|
|
17
|
+
{
|
|
18
|
+
"group": "组别",
|
|
19
|
+
"bizLine": "业务线名称",
|
|
20
|
+
"project": "项目名称",
|
|
21
|
+
"pm": "项目PM",
|
|
22
|
+
"budgetStrategy": "预算策略内容", "budgetLearning": "预算策略learning",
|
|
23
|
+
"productStrategy": "广告产品策略内容", "productLearning": "广告产品策略learning",
|
|
24
|
+
"audienceStrategy": "受众策略内容", "audienceLearning": "受众策略learning",
|
|
25
|
+
"creativeStrategy": "素材策略内容", "creativeLearning": "素材策略learning"
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
列固定为:组别、业务线、项目名称、项目PM、
|
|
31
|
+
预算策略内容、预算策略learning、广告产品策略内容、广告产品策略learning、
|
|
32
|
+
受众策略内容、受众策略learning、素材策略内容、素材策略learning。
|
|
33
|
+
"""
|
|
34
|
+
import argparse
|
|
35
|
+
import json
|
|
36
|
+
import os
|
|
37
|
+
import sys
|
|
38
|
+
import zipfile
|
|
39
|
+
from datetime import datetime
|
|
40
|
+
from xml.sax.saxutils import escape as xml_escape
|
|
41
|
+
|
|
42
|
+
COLUMNS = [
|
|
43
|
+
("group", "组别"),
|
|
44
|
+
("bizLine", "业务线"),
|
|
45
|
+
("project", "项目名称"),
|
|
46
|
+
("pm", "项目PM"),
|
|
47
|
+
("budgetStrategy", "预算策略内容"),
|
|
48
|
+
("budgetLearning", "预算策略learning"),
|
|
49
|
+
("productStrategy", "广告产品策略内容"),
|
|
50
|
+
("productLearning", "广告产品策略learning"),
|
|
51
|
+
("audienceStrategy", "受众策略内容"),
|
|
52
|
+
("audienceLearning", "受众策略learning"),
|
|
53
|
+
("creativeStrategy", "素材策略内容"),
|
|
54
|
+
("creativeLearning", "素材策略learning"),
|
|
55
|
+
]
|
|
56
|
+
|
|
57
|
+
# 内容列(非组别/业务线/项目名称/项目PM)默认加宽并开启自动换行
|
|
58
|
+
CONTENT_KEYS = {key for key, _label in COLUMNS[4:]}
|
|
59
|
+
|
|
60
|
+
CONTENT_TYPES_XML = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
61
|
+
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">
|
|
62
|
+
<Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/>
|
|
63
|
+
<Default Extension="xml" ContentType="application/xml"/>
|
|
64
|
+
<Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/>
|
|
65
|
+
<Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/>
|
|
66
|
+
<Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/>
|
|
67
|
+
<Override PartName="/xl/sharedStrings.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml"/>
|
|
68
|
+
</Types>"""
|
|
69
|
+
|
|
70
|
+
ROOT_RELS_XML = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
71
|
+
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
|
72
|
+
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/>
|
|
73
|
+
</Relationships>"""
|
|
74
|
+
|
|
75
|
+
WORKBOOK_RELS_XML = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
76
|
+
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
|
77
|
+
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/>
|
|
78
|
+
<Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/>
|
|
79
|
+
<Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings" Target="sharedStrings.xml"/>
|
|
80
|
+
</Relationships>"""
|
|
81
|
+
|
|
82
|
+
WORKBOOK_XML = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
83
|
+
<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
|
|
84
|
+
<sheets><sheet name="业务线策略生成" sheetId="1" r:id="rId1"/></sheets>
|
|
85
|
+
</workbook>"""
|
|
86
|
+
|
|
87
|
+
# cellXfs: 0=默认, 1=表头(粗体+浅底), 2=内容(自动换行+顶对齐)
|
|
88
|
+
STYLES_XML = """<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
89
|
+
<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
|
|
90
|
+
<fonts count="2">
|
|
91
|
+
<font><sz val="10"/><name val="Microsoft YaHei"/></font>
|
|
92
|
+
<font><b/><sz val="10"/><color rgb="FFFFFFFF"/><name val="Microsoft YaHei"/></font>
|
|
93
|
+
</fonts>
|
|
94
|
+
<fills count="3">
|
|
95
|
+
<fill><patternFill patternType="none"/></fill>
|
|
96
|
+
<fill><patternFill patternType="none"/></fill>
|
|
97
|
+
<fill><patternFill patternType="solid"><fgColor rgb="FF4472C4"/><bgColor indexed="64"/></patternFill></fill>
|
|
98
|
+
</fills>
|
|
99
|
+
<borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders>
|
|
100
|
+
<cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs>
|
|
101
|
+
<cellXfs count="3">
|
|
102
|
+
<xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/>
|
|
103
|
+
<xf numFmtId="0" fontId="1" fillId="2" borderId="0" xfId="0" applyFont="1" applyFill="1">
|
|
104
|
+
<alignment horizontal="center" vertical="center"/>
|
|
105
|
+
</xf>
|
|
106
|
+
<xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyAlignment="1">
|
|
107
|
+
<alignment vertical="top" wrapText="1"/>
|
|
108
|
+
</xf>
|
|
109
|
+
</cellXfs>
|
|
110
|
+
</styleSheet>"""
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
def col_letter(index: int) -> str:
|
|
114
|
+
"""0-based 列号转 Excel 列字母(A, B, ..., Z, AA, ...)"""
|
|
115
|
+
letters = ""
|
|
116
|
+
n = index + 1
|
|
117
|
+
while n > 0:
|
|
118
|
+
n, rem = divmod(n - 1, 26)
|
|
119
|
+
letters = chr(65 + rem) + letters
|
|
120
|
+
return letters
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
def build_shared_strings(rows):
|
|
124
|
+
"""收集全部字符串去重,返回 (sst_xml, header_indices, row_indices)"""
|
|
125
|
+
seen = {}
|
|
126
|
+
order = []
|
|
127
|
+
|
|
128
|
+
def intern(value):
|
|
129
|
+
if value not in seen:
|
|
130
|
+
seen[value] = len(order)
|
|
131
|
+
order.append(value)
|
|
132
|
+
return seen[value]
|
|
133
|
+
|
|
134
|
+
header_indices = [intern(label) for _key, label in COLUMNS]
|
|
135
|
+
row_indices = []
|
|
136
|
+
for row in rows:
|
|
137
|
+
row_indices.append(
|
|
138
|
+
[intern(str(row.get(key, "") or "")) for key, _label in COLUMNS]
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
items = "".join(
|
|
142
|
+
f'<si><t xml:space="preserve">{xml_escape(text)}</t></si>' for text in order
|
|
143
|
+
)
|
|
144
|
+
sst_xml = (
|
|
145
|
+
'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'
|
|
146
|
+
f'<sst xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" '
|
|
147
|
+
f'count="{len(order)}" uniqueCount="{len(order)}">{items}</sst>'
|
|
148
|
+
)
|
|
149
|
+
return sst_xml, header_indices, row_indices
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
def build_sheet_xml(header_indices, row_indices):
|
|
153
|
+
"""生成 sheet1.xml:首行表头样式 s="1",其余行内容样式 s="2"(自动换行)"""
|
|
154
|
+
col_count = len(COLUMNS)
|
|
155
|
+
dimension_ref = f"A1:{col_letter(col_count - 1)}{len(row_indices) + 1}"
|
|
156
|
+
|
|
157
|
+
cols_xml_parts = []
|
|
158
|
+
for i, (key, _label) in enumerate(COLUMNS):
|
|
159
|
+
width = 32 if key in CONTENT_KEYS else 14
|
|
160
|
+
cols_xml_parts.append(
|
|
161
|
+
f'<col min="{i + 1}" max="{i + 1}" width="{width}" customWidth="1"/>'
|
|
162
|
+
)
|
|
163
|
+
cols_xml = f"<cols>{''.join(cols_xml_parts)}</cols>"
|
|
164
|
+
|
|
165
|
+
def row_xml(row_num, indices, style_id):
|
|
166
|
+
cells = []
|
|
167
|
+
for i, sst_index in enumerate(indices):
|
|
168
|
+
ref = f"{col_letter(i)}{row_num}"
|
|
169
|
+
cells.append(f'<c r="{ref}" s="{style_id}" t="s"><v>{sst_index}</v></c>')
|
|
170
|
+
return f'<row r="{row_num}">{"".join(cells)}</row>'
|
|
171
|
+
|
|
172
|
+
rows_xml_parts = [row_xml(1, header_indices, 1)]
|
|
173
|
+
for offset, indices in enumerate(row_indices):
|
|
174
|
+
rows_xml_parts.append(row_xml(offset + 2, indices, 2))
|
|
175
|
+
|
|
176
|
+
sheet_data = f"<sheetData>{''.join(rows_xml_parts)}</sheetData>"
|
|
177
|
+
|
|
178
|
+
return (
|
|
179
|
+
'<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'
|
|
180
|
+
'<worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">'
|
|
181
|
+
f'<dimension ref="{dimension_ref}"/>'
|
|
182
|
+
'<sheetViews><sheetView workbookViewId="0">'
|
|
183
|
+
'<pane ySplit="1" topLeftCell="A2" activePane="bottomLeft" state="frozen"/>'
|
|
184
|
+
'</sheetView></sheetViews>'
|
|
185
|
+
f'{cols_xml}{sheet_data}'
|
|
186
|
+
'</worksheet>'
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
def default_output_path() -> str:
|
|
191
|
+
"""未指定输出路径时,默认写到用户桌面"""
|
|
192
|
+
home = os.path.expanduser("~")
|
|
193
|
+
desktop = os.path.join(home, "Desktop")
|
|
194
|
+
if not os.path.isdir(desktop):
|
|
195
|
+
# 部分中文 Windows / OneDrive 环境桌面路径不同,找不到就退回主目录
|
|
196
|
+
desktop = home
|
|
197
|
+
stamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
|
198
|
+
return os.path.join(desktop, f"业务线策略生成_{stamp}.xlsx")
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
def write_xlsx(rows, output_path: str) -> str:
|
|
202
|
+
sst_xml, header_indices, row_indices = build_shared_strings(rows)
|
|
203
|
+
sheet_xml = build_sheet_xml(header_indices, row_indices)
|
|
204
|
+
|
|
205
|
+
out_dir = os.path.dirname(output_path)
|
|
206
|
+
if out_dir and not os.path.isdir(out_dir):
|
|
207
|
+
os.makedirs(out_dir, exist_ok=True)
|
|
208
|
+
|
|
209
|
+
with zipfile.ZipFile(output_path, "w", zipfile.ZIP_DEFLATED) as zf:
|
|
210
|
+
zf.writestr("[Content_Types].xml", CONTENT_TYPES_XML)
|
|
211
|
+
zf.writestr("_rels/.rels", ROOT_RELS_XML)
|
|
212
|
+
zf.writestr("xl/workbook.xml", WORKBOOK_XML)
|
|
213
|
+
zf.writestr("xl/_rels/workbook.xml.rels", WORKBOOK_RELS_XML)
|
|
214
|
+
zf.writestr("xl/styles.xml", STYLES_XML)
|
|
215
|
+
zf.writestr("xl/sharedStrings.xml", sst_xml)
|
|
216
|
+
zf.writestr("xl/worksheets/sheet1.xml", sheet_xml)
|
|
217
|
+
|
|
218
|
+
return output_path
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
def main() -> int:
|
|
222
|
+
parser = argparse.ArgumentParser(description=__doc__)
|
|
223
|
+
parser.add_argument(
|
|
224
|
+
"--input", required=True, help="payload JSON 文件路径,传 - 表示从 stdin 读取"
|
|
225
|
+
)
|
|
226
|
+
parser.add_argument(
|
|
227
|
+
"--output",
|
|
228
|
+
default=None,
|
|
229
|
+
help="输出 .xlsx 路径;未传时用 payload.output_path,仍未传则默认桌面",
|
|
230
|
+
)
|
|
231
|
+
args = parser.parse_args()
|
|
232
|
+
|
|
233
|
+
if args.input == "-":
|
|
234
|
+
raw = sys.stdin.read()
|
|
235
|
+
else:
|
|
236
|
+
with open(args.input, "r", encoding="utf-8") as f:
|
|
237
|
+
raw = f.read()
|
|
238
|
+
|
|
239
|
+
payload = json.loads(raw)
|
|
240
|
+
rows = payload.get("rows", [])
|
|
241
|
+
if not isinstance(rows, list) or len(rows) == 0:
|
|
242
|
+
print(json.dumps({"ok": False, "error": "payload.rows 为空或不是数组"}, ensure_ascii=False))
|
|
243
|
+
return 1
|
|
244
|
+
|
|
245
|
+
output_path = args.output or payload.get("output_path") or default_output_path()
|
|
246
|
+
output_path = os.path.abspath(output_path)
|
|
247
|
+
|
|
248
|
+
write_xlsx(rows, output_path)
|
|
249
|
+
|
|
250
|
+
print(
|
|
251
|
+
json.dumps(
|
|
252
|
+
{"ok": True, "output_path": output_path, "row_count": len(rows)},
|
|
253
|
+
ensure_ascii=False,
|
|
254
|
+
)
|
|
255
|
+
)
|
|
256
|
+
return 0
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
if __name__ == "__main__":
|
|
260
|
+
sys.exit(main())
|