siluzan-tso-cli 1.1.29 → 1.1.30-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -43,7 +43,7 @@ HTML 报告模板外部资源:**ECharts** 统一使用 `https://staticpn.siluz
43
43
  在**用户的目标项目根目录**执行(根据用户使用的助手选择 `--ai`):
44
44
 
45
45
  ```bash
46
- npm install -g siluzan-tso-cli
46
+ npm install -g siluzan-tso-cli@beta
47
47
  siluzan-tso init --ai cursor # 写入 Cursor(默认)
48
48
  siluzan-tso init --ai cursor,claude # 同时写入多个平台
49
49
  siluzan-tso init --ai all # 写入所有支持的平台
@@ -51,6 +51,7 @@ siluzan-tso init -d /path/to/skills # 写入自定义目录
51
51
  siluzan-tso init --force # 强制覆盖已存在文件
52
52
  ```
53
53
 
54
+ > **注意**:当前为测试版(1.1.30-beta.2),供内部测试使用。正式发布后安装命令将改为 `npm install -g siluzan-tso-cli`。
54
55
 
55
56
  | 助手 | 建议 `--ai` |
56
57
  | ----------------------- | ------------------------------------ |
package/dist/index.js CHANGED
@@ -2820,7 +2820,40 @@ function installProcessHandlers() {
2820
2820
  process.exit(1);
2821
2821
  });
2822
2822
  }
2823
+ function hasSiluzanAgentCredentials() {
2824
+ const apiKey = process.env.SILUZAN_API_KEY?.trim();
2825
+ const authToken = process.env.SILUZAN_AUTH_TOKEN?.trim();
2826
+ return Boolean(apiKey || authToken);
2827
+ }
2828
+ function isSiluzanAgentEnv() {
2829
+ const raw = process.env.IS_SILUZAN_AGENT_ENV?.trim().toLowerCase();
2830
+ return raw === "true" || raw === "1";
2831
+ }
2832
+ function skipAuthSetupInAgentEnv(commandLabel) {
2833
+ if (!isSiluzanAgentEnv()) return false;
2834
+ if (hasSiluzanAgentCredentials()) {
2835
+ console.log(
2836
+ `
2837
+ \u2139\uFE0F \u68C0\u6D4B\u5230 Siluzan Agent \u73AF\u5883\uFF08IS_SILUZAN_AGENT_ENV=true\uFF09\uFF0C\u51ED\u636E\u5DF2\u7531\u6C99\u7BB1\u6CE8\u5165\uFF0C\u65E0\u9700\u6267\u884C ${commandLabel}\u3002
2838
+ `
2839
+ );
2840
+ } else {
2841
+ console.log(
2842
+ `
2843
+ \u2139\uFE0F \u68C0\u6D4B\u5230 Siluzan Agent \u73AF\u5883\uFF08IS_SILUZAN_AGENT_ENV=true\uFF09\u3002
2844
+ ${commandLabel} \u5DF2\u8DF3\u8FC7\uFF1B\u8BF7\u7531 Agent \u6C99\u7BB1\u6CE8\u5165 SILUZAN_API_KEY \u6216 SILUZAN_AUTH_TOKEN\u3002
2845
+ `
2846
+ );
2847
+ }
2848
+ return true;
2849
+ }
2823
2850
  function printAuthMissingHelp(binName) {
2851
+ if (isSiluzanAgentEnv()) {
2852
+ console.error(
2853
+ "\n\u274C Siluzan Agent \u73AF\u5883\u4E2D\u672A\u627E\u5230\u8BA4\u8BC1\u51ED\u636E\u3002\n\nAgent \u6C99\u7BB1\u5E94\u901A\u8FC7\u73AF\u5883\u53D8\u91CF\u6CE8\u5165\u4EE5\u4E0B\u4EFB\u610F\u4E00\u79CD\uFF08\u65E0\u9700 login\uFF09\uFF1A\n SILUZAN_API_KEY=<YOUR_API_KEY>\n SILUZAN_AUTH_TOKEN=<YOUR_TOKEN>\n\n\u8BF7\u68C0\u67E5 Agent \u8FD0\u884C\u65F6\u662F\u5426\u5DF2\u8BBE\u7F6E IS_SILUZAN_AGENT_ENV=true \u5E76\u5B8C\u6210\u51ED\u636E\u6CE8\u5165\u3002\n"
2854
+ );
2855
+ process.exit(1);
2856
+ }
2824
2857
  console.error(
2825
2858
  `
2826
2859
  \u274C \u672A\u627E\u5230\u8BA4\u8BC1\u51ED\u636E\u3002\u8BF7\u9009\u62E9\u4EE5\u4E0B\u4EFB\u610F\u4E00\u79CD\u65B9\u5F0F\uFF1A
@@ -3623,7 +3656,7 @@ var DEFAULT_API_BASE;
3623
3656
  var init_defaults = __esm({
3624
3657
  "src/config/defaults.ts"() {
3625
3658
  "use strict";
3626
- DEFAULT_API_BASE = "https://tso-api.siluzan.com";
3659
+ DEFAULT_API_BASE = "https://tso-api-ci.siluzan.com";
3627
3660
  }
3628
3661
  });
3629
3662
 
@@ -102958,6 +102991,7 @@ function normalizeBearerTokenInput(raw) {
102958
102991
 
102959
102992
  // src/commands/login/send-code.ts
102960
102993
  async function runSendLoginCode(opts) {
102994
+ if (skipAuthSetupInAgentEnv("siluzan-tso send-login-code")) return;
102961
102995
  const phone = validateAndNormalizePhone(opts.phone);
102962
102996
  const tsoApiBase = process.env.SILUZAN_TSO_API_BASE ?? DEFAULT_API_BASE;
102963
102997
  const ssoBaseUrl = deriveSsoBaseUrl(tsoApiBase);
@@ -103257,6 +103291,7 @@ async function runLoginMethodMenu(menuOpts) {
103257
103291
  await runInteractivePhoneLogin(menuOpts);
103258
103292
  }
103259
103293
  async function runLogin(opts = {}) {
103294
+ if (skipAuthSetupInAgentEnv("siluzan-tso login")) return;
103260
103295
  if (opts.apiKey !== void 0) {
103261
103296
  const key = opts.apiKey.trim();
103262
103297
  if (!key) {
@@ -103354,12 +103389,21 @@ function cmdConfigShow() {
103354
103389
  const googleApiUrl = process.env.SILUZAN_GOOGLE_API ?? deriveGoogleApiUrl(apiBaseUrl);
103355
103390
  const webUrl = deriveWebUrl(apiBaseUrl);
103356
103391
  if (!effectiveApiKey && !effectiveAuthToken) {
103392
+ if (isSiluzanAgentEnv()) {
103393
+ console.log(
103394
+ "\nSiluzan Agent \u73AF\u5883\uFF08IS_SILUZAN_AGENT_ENV=true\uFF09\u3002\n\u51ED\u636E\u5E94\u7531\u6C99\u7BB1\u6CE8\u5165 SILUZAN_API_KEY \u6216 SILUZAN_AUTH_TOKEN\uFF0C\u65E0\u9700 login\u3002\n"
103395
+ );
103396
+ return;
103397
+ }
103357
103398
  console.log(
103358
103399
  "\n\u5C1A\u672A\u914D\u7F6E\u8BA4\u8BC1\u51ED\u636E\u3002\n\n \u65B9\u5F0F\u4E00\uFF08\u63A8\u8350\uFF09\uFF1AAPI Key\n siluzan-tso login --api-key <YOUR_API_KEY>\n\n \u65B9\u5F0F\u4E8C\uFF1AJWT Token\n siluzan-tso login\n\n \u4E5F\u53EF\u901A\u8FC7\u73AF\u5883\u53D8\u91CF\u4F20\u5165\uFF08CI/CD \u63A8\u8350\uFF09\uFF1A\n export SILUZAN_API_KEY=<YOUR_API_KEY>\n export SILUZAN_AUTH_TOKEN=<YOUR_TOKEN>\n"
103359
103400
  );
103360
103401
  return;
103361
103402
  }
103362
103403
  console.log("\n\u5F53\u524D\u914D\u7F6E\uFF1A");
103404
+ if (isSiluzanAgentEnv()) {
103405
+ console.log(" agentEnv : IS_SILUZAN_AGENT_ENV=true \u2190 Siluzan Agent \u6C99\u7BB1");
103406
+ }
103363
103407
  console.log(` tsoApiBaseUrl : ${apiBaseUrl}`);
103364
103408
  console.log(` googleApiUrl : ${googleApiUrl}`);
103365
103409
  console.log(` webUrl : ${webUrl}`);
@@ -103385,6 +103429,7 @@ function cmdConfigShow() {
103385
103429
  console.log();
103386
103430
  }
103387
103431
  function cmdConfigSet(opts) {
103432
+ if (skipAuthSetupInAgentEnv("siluzan-tso config set")) return;
103388
103433
  if (!opts.token && !opts.apiKey) {
103389
103434
  console.error("\n\u274C \u8BF7\u81F3\u5C11\u63D0\u4F9B\u4E00\u4E2A\u8981\u66F4\u65B0\u7684\u914D\u7F6E\u9879\uFF08--api-key \u6216 --token\uFF09\n");
103390
103435
  process.exit(1);
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: siluzan-tso
3
- description: 通过 siluzan-tso-cli 操作丝路赞 TSO 广告账户(Google/Bing/Yandex/TikTok/Kwai/MetaAd)。(账户)列表、余额、统计、消耗、激活账单、历史、余额扫描 P2、账户摘要 P3、共享/取消共享、解绑、OAuth、MCC/BC/BM 绑定解绑、邮件邀请、TikTok 关闭、暂停撤回;(开户)六大广告平台申请;(Google Ads)系列/广告组/广告/关键词 CRUD、附加信息、地理位置、PMax、搜索投放方案校验/创建、批量异步创建;(分析)google-analysis、google-analysis-batch P5、facebook-analysis P4-FB、网站诊断 P8、市场分析 P9、广告诊断;P1 账户画像、P4 周期报告、P6 OKKI 周报、P7 询盘分析;Google关键词推荐、RAG 检索、TSO 报告列表/创建/推送、智能预警、TikTok/Meta 线索、转账/发票/发票资料、审计恢复。以及当用户提及广告账户、搜索广告创建、PMAX广告创建、广告计划、广告创建、广告、余额、消耗、投放、关键词、开户、MCC/BC、报告、诊断、市场分析、开票或 TSO 等关键词时使用。
3
+ description: 丝路赞 TSO 广告平台(Google/Bing/Yandex/TikTok/Kwai/MetaAd),凡涉及以下业务必须先加载本 skill:网站诊断/网站诊断报告/落地页评分、市场分析/市场调查报告/行业分析/战略市场报告、Google 广告计划/投放方案/根据官网·网站·URL 生成搜索广告方案或关键词文案表/PMax 创建/系列组广告关键词 CRUD、广告账户列表/余额/消耗/开户/MCC/BC/BM、账户画像/广告诊断/周期报告/OKKI 周报/询盘分析、关键词拓词/RAG/智能预警/线索/转账发票、丝路赞/TSO、投广告、出价预算、报告诊断、开票等广告账户管理。
4
4
  license: MIT
5
5
  compatibility: 需要 Node.js 18+、已安装 siluzan-tso-cli,通过 send-login-code + login 或 config set 完成鉴权
6
6
  metadata:
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "slug": "siluzan-tso",
3
- "version": "1.1.29",
4
- "publishedAt": 1782210132522
3
+ "version": "1.1.30-beta.2",
4
+ "publishedAt": 1782286975360
5
5
  }
@@ -273,7 +273,7 @@ siluzan-tso account-history --start 2026-03-01 --end 2026-03-31 --json-out ./sna
273
273
  | 状态 | 含义 | 下一步操作 |
274
274
  | ---------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
275
275
  | `Pending` | 审核中 | 等待,可反复运行此命令轮询;审核周期因媒体而异 |
276
- | `Approved` | 审核通过 | 运行 `list-accounts -m <媒体>` 确认账户已出现;引导用户充值激活(`config show` 取 `webUrl`,按 `finance.md` 打开对应媒体充值页;例如 Google 为 `https://www.siluzan.com/v3/foreign_trade/tso/recharge/pay?mediaType=Google`;Kwai、Yandex 当前没有对应充值界面) |
276
+ | `Approved` | 审核通过 | 运行 `list-accounts -m <媒体>` 确认账户已出现;引导用户充值激活(`config show` 取 `webUrl`,按 `finance.md` 打开对应媒体充值页;例如 Google 为 `https://www-ci.siluzan.com/v3/foreign_trade/tso/recharge/pay?mediaType=Google`;Kwai、Yandex 当前没有对应充值界面) |
277
277
  | `Rejected` | 被拒 | 查看 `--json-out` 落盘中的 `reason` 字段了解拒绝原因;修改资料后重新提交;若原因不明,引导用户联系丝路赞客服 |
278
278
 
279
279
  ---
@@ -847,7 +847,7 @@ siluzan-tso account email-deauth -c <mediaCustomerId> --invitation-id <id> --res
847
847
 
848
848
  | 功能 | 媒体 | 网页路径 |
849
849
  | --------------------------------------- | ------ | ------------------------------------------------- |
850
- | **账户激活**(邀请他人激活 / 充值激活) | Google | `https://www.siluzan.com/v3/foreign_trade/tso/manageAccounts` |
850
+ | **账户激活**(邀请他人激活 / 充值激活) | Google | `https://www-ci.siluzan.com/v3/foreign_trade/tso/manageAccounts` |
851
851
 
852
852
  **Agent 建议话术**:
853
853
 
@@ -856,5 +856,5 @@ siluzan-tso account email-deauth -c <mediaCustomerId> --invitation-id <id> --res
856
856
  siluzan-tso config show # 查看 webUrl 字段
857
857
 
858
858
  # 账户激活(Google)→ 引导至账户管理页
859
- # https://www.siluzan.com/v3/foreign_trade/tso/manageAccounts
859
+ # https://www-ci.siluzan.com/v3/foreign_trade/tso/manageAccounts
860
860
  ```
@@ -117,7 +117,7 @@ siluzan-tso config show
117
117
 
118
118
  ### 充值页链接(按媒体 × 类型)
119
119
 
120
- 链接模式:`https://www.siluzan.com/v3/foreign_trade/tso/recharge/<page>?mediaType=<mediaType>`;丝路赞钱包:`https://www.siluzan.com/v3/foreign_trade/tso/recharge/siluzanWallet`(无媒体参数)。
120
+ 链接模式:`https://www-ci.siluzan.com/v3/foreign_trade/tso/recharge/<page>?mediaType=<mediaType>`;丝路赞钱包:`https://www-ci.siluzan.com/v3/foreign_trade/tso/recharge/siluzanWallet`(无媒体参数)。
121
121
 
122
122
  | 充值类型 | `<page>` | 支持媒体(`mediaType` 参数) |
123
123
  | ------------------------- | --------------------- | ------------------------------------------- |
@@ -1,6 +1,6 @@
1
1
  # 各媒体开户
2
2
 
3
- > 网页链接:`https://www.siluzan.com/v3/foreign_trade/tso/accountOpeningHistory?tso=%2Fv3umijs%2Ftso%2FaccountOpeningHistory`
3
+ > 网页链接:`https://www-ci.siluzan.com/v3/foreign_trade/tso/accountOpeningHistory?tso=%2Fv3umijs%2Ftso%2FaccountOpeningHistory`
4
4
  > 多命令串联见 `references/core/workflows.md` § 流程一。
5
5
 
6
6
  ## 首次响应硬规范(必读)
@@ -60,7 +60,7 @@ siluzan-tso open-account google-wizard
60
60
 
61
61
  ```bash
62
62
  siluzan-tso account-history -m Google
63
- # 审核通过后:config show → https://www.siluzan.com/v3/foreign_trade/tso/recharge/pay?mediaType=Google
63
+ # 审核通过后:config show → https://www-ci.siluzan.com/v3/foreign_trade/tso/recharge/pay?mediaType=Google
64
64
  ```
65
65
 
66
66
  ---
@@ -1,6 +1,6 @@
1
1
  # rag:知识库检索(TSO 广告投放辅助)
2
2
 
3
- 知识库管理页面在 https://www.siluzan.com/knowledge-base/
3
+ 知识库管理页面在 https://www-ci.siluzan.com/knowledge-base/
4
4
 
5
5
  为 **广告投放、账户分析、拓词、诊断报告** 等 TSO 业务提供**企业已入库**的产品、行业、客户背景事实依据。
6
6
 
@@ -192,9 +192,9 @@ siluzan-tso report push receive-emails -m Google [--json-out ./snap]
192
192
 
193
193
  | 媒体 | 报告类型 | URL 模板 |
194
194
  | ------ | ---------------- | ----------------------------------------------------------- |
195
- | Google | 日报(Daily) | `https://www.siluzan.com/media-report/publish/{entityId}?culture=zh-CN` |
196
- | Google | 小时报(Hourly) | `https://www.siluzan.com/media-report/hour/{entityId}?culture=zh-CN` |
197
- | TikTok | 日报 | `https://www.siluzan.com/media-report/publish/{entityId}?culture=zh-CN` |
195
+ | Google | 日报(Daily) | `https://www-ci.siluzan.com/media-report/publish/{entityId}?culture=zh-CN` |
196
+ | Google | 小时报(Hourly) | `https://www-ci.siluzan.com/media-report/hour/{entityId}?culture=zh-CN` |
197
+ | TikTok | 日报 | `https://www-ci.siluzan.com/media-report/publish/{entityId}?culture=zh-CN` |
198
198
 
199
199
  `entityId` 来自 `siluzan-tso report list --json-out ./snap` 中每条记录的 `entityId` 字段。
200
200
 
@@ -207,8 +207,8 @@ siluzan-tso report list -m Google --json-out ./snap
207
207
 
208
208
  # 第二步:查看 webUrl
209
209
  siluzan-tso config show
210
- # webUrl: https://www.siluzan.com
210
+ # webUrl: https://www-ci.siluzan.com
211
211
 
212
212
  # 第三步:拼接链接(Google 日报)
213
- # https://www.siluzan.com/media-report/publish/rpt_abc123?culture=zh-CN
213
+ # https://www-ci.siluzan.com/media-report/publish/rpt_abc123?culture=zh-CN
214
214
  ```
@@ -10,7 +10,7 @@
10
10
  ## 安装 CLI
11
11
 
12
12
  ```bash
13
- npm install -g siluzan-tso-cli
13
+ npm install -g siluzan-tso-cli@beta
14
14
  ```
15
15
 
16
16
  ---
@@ -64,7 +64,7 @@ siluzan-tso config set --api-key <Key> # 或 config 直接写入
64
64
  siluzan-tso config set --token <Token> # 备用:设置 JWT Token
65
65
  ```
66
66
 
67
- API Key 获取入口:`https://www.siluzan.com/v3/foreign_trade/settings/apiKeyManagement`
67
+ API Key 获取入口:`https://www-ci.siluzan.com/v3/foreign_trade/settings/apiKeyManagement`
68
68
 
69
69
  ```bash
70
70
  # 第 1 步:让用户报出手机号后,立刻发码(命令立即返回,不会等待输入)
@@ -129,9 +129,9 @@ siluzan-tso config show
129
129
 
130
130
  ```
131
131
  构建环境 : production
132
- apiBaseUrl : https://tso-api.siluzan.com
133
- googleApiUrl : https://googleapi.mysiluzan.com
134
- webUrl : https://www.siluzan.com
132
+ apiBaseUrl : https://tso-api-ci.siluzan.com
133
+ googleApiUrl : https://googleapi-ci.mysiluzan.com
134
+ webUrl : https://www-ci.siluzan.com
135
135
  apiKey : abcd****1234
136
136
  ```
137
137
 
@@ -6,7 +6,7 @@
6
6
  siluzan-tso config show # 取 webUrl
7
7
  ```
8
8
 
9
- 首页地址:`https://www.siluzan.com/v3/foreign_trade/tso/home`
9
+ 首页地址:`https://www-ci.siluzan.com/v3/foreign_trade/tso/home`
10
10
 
11
11
  ---
12
12
 
@@ -25,7 +25,7 @@ siluzan-tso config show # 取 webUrl
25
25
 
26
26
  ## 推荐话术
27
27
 
28
- 1. **「和首页一样的总览」** → 打开 `https://www.siluzan.com/v3/foreign_trade/tso/home`。
28
+ 1. **「和首页一样的总览」** → 打开 `https://www-ci.siluzan.com/v3/foreign_trade/tso/home`。
29
29
  2. **「某个 Google 账户昨天花了多少」** → `list-accounts -m Google` + `stats -m Google -a <id>`。
30
30
  3. **「有待充值账户」** → 说明聚合数据在首页;CLI 可 `list-accounts` + `balance` 逐户排查,或引导充值页。
31
31
 
@@ -9,11 +9,11 @@ $ErrorActionPreference = 'Stop'
9
9
  # -- Package info (injected at build time) ------------------------------------
10
10
  $PKG_NAME = 'siluzan-tso-cli'
11
11
  # PKG_VERSION 锁定到与本脚本同批构建产物一致的版本,避免与 dist/skill 错位
12
- $PKG_VERSION = '1.1.29'
12
+ $PKG_VERSION = '1.1.30-beta.2'
13
13
  $CLI_BIN = 'siluzan-tso'
14
14
  $SKILL_LABEL = 'Siluzan TSO'
15
- $INSTALL_CMD = 'npm install -g siluzan-tso-cli'
16
- $WEB_BASE = 'https://www.siluzan.com'
15
+ $INSTALL_CMD = 'npm install -g siluzan-tso-cli@beta'
16
+ $WEB_BASE = 'https://www-ci.siluzan.com'
17
17
 
18
18
  # -- Constants ----------------------------------------------------------------
19
19
  $NODE_MAJOR_MIN = 18
@@ -242,10 +242,13 @@ function Main {
242
242
  Write-Info 'Registering Skill to all AI platform global directories...'
243
243
  & $CLI_BIN init --global --force
244
244
 
245
- # Step 3: Configure API Key
246
- Write-Step 'Step 3/4: Configure API Key'
247
- Write-Host ''
248
- & $CLI_BIN login
245
+ if ($CLI_BIN -eq 'siluzan-seo') {
246
+ Write-Info 'siluzan-seo does not require login; skipping API Key setup.'
247
+ } else {
248
+ Write-Step 'Step 3/4: Configure API Key'
249
+ Write-Host ''
250
+ & $CLI_BIN login
251
+ }
249
252
 
250
253
  # Step 4: Done
251
254
  Write-Step 'Step 4/4: Complete'
@@ -9,11 +9,11 @@ set -euo pipefail
9
9
  # -- Package info (injected at build time) ------------------------------------
10
10
  readonly PKG_NAME="siluzan-tso-cli"
11
11
  # PKG_VERSION 锁定到与本脚本同批构建产物一致的版本,避免与 dist/skill 错位
12
- readonly PKG_VERSION="1.1.29"
12
+ readonly PKG_VERSION="1.1.30-beta.2"
13
13
  readonly CLI_BIN="siluzan-tso"
14
14
  readonly SKILL_LABEL="Siluzan TSO"
15
- readonly INSTALL_CMD="npm install -g siluzan-tso-cli"
16
- readonly WEB_BASE="https://www.siluzan.com"
15
+ readonly INSTALL_CMD="npm install -g siluzan-tso-cli@beta"
16
+ readonly WEB_BASE="https://www-ci.siluzan.com"
17
17
 
18
18
  # -- Constants ----------------------------------------------------------------
19
19
  readonly NODE_MAJOR_MIN=18
@@ -152,10 +152,13 @@ main() {
152
152
  info "Registering Skill to all AI platform global directories..."
153
153
  ${CLI_BIN} init --global --force
154
154
 
155
- # Step 3: Configure API Key
156
- step "Step 3/4: Configure API Key"
157
- echo ""
158
- ${CLI_BIN} login
155
+ if [ "${CLI_BIN}" = "siluzan-seo" ]; then
156
+ info "siluzan-seo does not require login; skipping API Key setup."
157
+ else
158
+ step "Step 3/4: Configure API Key"
159
+ echo ""
160
+ ${CLI_BIN} login
161
+ fi
159
162
 
160
163
  # Step 4: Done
161
164
  step "Step 4/4: Complete"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "siluzan-tso-cli",
3
- "version": "1.1.29",
3
+ "version": "1.1.30-beta.2",
4
4
  "description": "Siluzan 广告账户管理 CLI — 查询账户、余额、消耗数据,管理绑定关系与充值。",
5
5
  "keywords": [
6
6
  "ad-account",