siluzan-tso-cli 1.1.34 → 1.1.35-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 +2 -1
- package/dist/index.js +482 -323
- package/dist/skill/_meta.json +2 -2
- package/dist/skill/assets/market-analysis-rules.md +7 -7
- package/dist/skill/references/accounts/accounts.md +3 -3
- package/dist/skill/references/accounts/finance.md +1 -1
- package/dist/skill/references/accounts/open-account-by-media.md +1 -1
- package/dist/skill/references/accounts/open-account-google-ui.md +1 -1
- package/dist/skill/references/analytics/rag.md +1 -1
- package/dist/skill/references/analytics/reporting.md +5 -5
- package/dist/skill/references/core/playbooks.md +1 -1
- package/dist/skill/references/core/setup.md +5 -5
- package/dist/skill/references/misc/tso-home.md +2 -2
- package/dist/skill/references/report-templates/google-ads-diagnosis.md +14 -1
- package/dist/skill/report-templates/google-ads-diagnosis.md +14 -1
- package/dist/skill/scripts/install.ps1 +3 -3
- package/dist/skill/scripts/install.sh +3 -3
- package/package.json +1 -1
package/dist/skill/_meta.json
CHANGED
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
|
|
28
28
|
### 封面
|
|
29
29
|
|
|
30
|
-
| 维度 | 必含内容
|
|
31
|
-
| -------- |
|
|
32
|
-
| 报告标识 |
|
|
33
|
-
| 执行摘要 | 核心结论段或 KPI/metric 卡片(非仅标题)
|
|
30
|
+
| 维度 | 必含内容 |
|
|
31
|
+
| -------- | ------------------------------------------------------------------------ |
|
|
32
|
+
| 报告标识 | 标题含「战略市场分析」「行业分析报告」「市场分析报告」或「行业调查」等 |
|
|
33
|
+
| 执行摘要 | 核心结论段或 KPI/metric 卡片(非仅标题) |
|
|
34
34
|
|
|
35
35
|
### 一、市场与趋势诊断
|
|
36
36
|
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
| --- | ------------------ | ------------------------------------------------------------------- |
|
|
39
39
|
| 1.1 | 全球市场规模与增长 | TAM/SAM/SOM 或「市场规模」+ CAGR/增长率;**须有 ECharts 图** |
|
|
40
40
|
| 1.2 | 赛道与生态定位 | 价值链/产业链表:上游·中游·下游·服务层 |
|
|
41
|
-
| 1.3 | 目标市场国家拆解 |
|
|
41
|
+
| 1.3 | 目标市场国家拆解 | 按国家/区域:规模、增长、优先级、潜力(与 collect `--target-market` 一致) |
|
|
42
42
|
| 1.4 | 技术趋势 PESTEL | 政策/经济/社会/技术/环境/法规 ≥6 维表或等价结构 |
|
|
43
43
|
| 1.5 | 中期预测 | 未来 3–5 年趋势 + **假设依据** |
|
|
44
44
|
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
|
|
62
62
|
| # | 维度 | 必含内容 |
|
|
63
63
|
| --- | ------------ | ------------------------------------------------------ |
|
|
64
|
-
| 4.1 | 竞品识别 | 点名 **≥3**
|
|
65
|
-
| 4.2 | 功能性能对比 | 对比表 **≥10 行维度** ×
|
|
64
|
+
| 4.1 | 竞品识别 | 点名 **≥3** 个主要竞品/对标企业(**不限定**具体行业品牌) |
|
|
65
|
+
| 4.2 | 功能性能对比 | 对比表 **≥10 行维度** × 维度列 + **≥3** 个对比主体列 + 性能指标行 |
|
|
66
66
|
| 4.3 | 竞争空白 | **功能、场景、用户群、地域** 四类空白(至少覆盖 3 类) |
|
|
67
67
|
| 4.4 | 定位与差异化 | **一句定位陈述** + **3 个差异化维度** |
|
|
68
68
|
|
|
@@ -280,7 +280,7 @@ siluzan-tso account-history --start 2026-03-01 --end 2026-03-31 --json-out ./sna
|
|
|
280
280
|
| 状态 | 含义 | 下一步操作 |
|
|
281
281
|
| ---------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
282
282
|
| `Pending` | 审核中 | 等待,可反复运行此命令轮询;审核周期因媒体而异 |
|
|
283
|
-
| `Approved` | 审核通过 | 运行 `list-accounts -m <媒体>` 确认账户已出现;引导用户充值激活(`config show` 取 `webUrl`,按 `finance.md` 打开对应媒体充值页;例如 Google 为 `https://www.siluzan.com/v3/foreign_trade/tso/recharge/pay?mediaType=Google`;Kwai、Yandex 当前没有对应充值界面) |
|
|
283
|
+
| `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 当前没有对应充值界面) |
|
|
284
284
|
| `Rejected` | 被拒 | 查看 `--json-out` 落盘中的 `reason` 字段了解拒绝原因;修改资料后重新提交;若原因不明,引导用户联系丝路赞客服 |
|
|
285
285
|
|
|
286
286
|
---
|
|
@@ -909,7 +909,7 @@ siluzan-tso account email-deauth -c <mediaCustomerId> --invitation-id <id> --res
|
|
|
909
909
|
|
|
910
910
|
| 功能 | 媒体 | 网页路径 |
|
|
911
911
|
| --------------------------------------- | ------ | ------------------------------------------------- |
|
|
912
|
-
| **账户激活**(邀请他人激活 / 充值激活) | Google | `https://www.siluzan.com/v3/foreign_trade/tso/manageAccounts` |
|
|
912
|
+
| **账户激活**(邀请他人激活 / 充值激活) | Google | `https://www-ci.siluzan.com/v3/foreign_trade/tso/manageAccounts` |
|
|
913
913
|
|
|
914
914
|
**Agent 建议话术**:
|
|
915
915
|
|
|
@@ -918,5 +918,5 @@ siluzan-tso account email-deauth -c <mediaCustomerId> --invitation-id <id> --res
|
|
|
918
918
|
siluzan-tso config show # 查看 webUrl 字段
|
|
919
919
|
|
|
920
920
|
# 账户激活(Google)→ 引导至账户管理页
|
|
921
|
-
# https://www.siluzan.com/v3/foreign_trade/tso/manageAccounts
|
|
921
|
+
# https://www-ci.siluzan.com/v3/foreign_trade/tso/manageAccounts
|
|
922
922
|
```
|
|
@@ -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
|
---
|
|
@@ -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
|
```
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
1. 确认统计区间(规则见 conventions §五)。
|
|
30
30
|
2. `list-accounts -m Google -k <mediaCustomerId> --json-out ./snap-p1`(取 `currencyCode`)。
|
|
31
31
|
3. `stats -m Google -a <mediaCustomerId> --start <S> --end <D> --json-out ./snap-p1`。
|
|
32
|
-
4. `google-ads-diagnosis collect -a <mediaCustomerId> --start <S> --end <D> --json-out ./snap-p1
|
|
32
|
+
4. `google-ads-diagnosis collect -a <mediaCustomerId> --start <S> --end <D> --json-out ./snap-p1`(含对比周期 campaigns/geographic/keywords + `daily-metrics` 按日趋势;产出 `google-ads-diagnosis-collect.json`,**仅事实**)。部分维度失败(exit 2)时 collect 仍产出 JSON,**禁止**用 `--skip-fetch` 或脚本绕过 CLI 重映射快照。
|
|
33
33
|
5. **outline 门禁**(若手写脚本读盘):对**每个** section Read 其 `<section>-<accountId>_*.outline.txt` 确认字段树——字段名以 outline 为准。
|
|
34
34
|
6. **Agent 撰写**:读 `google-ads-diagnosis-collect.json`(`reportData` + `agentBrief`)+ `google-ads-diagnosis.md`,填写全部 `analysis` / `suggestions` / `diagnosisOverview` / `summary` 等,保存 `google-ads-diagnosis.json`。
|
|
35
35
|
7. **渲染终稿**:`google-ads-diagnosis render --data ./snap-p1/google-ads-diagnosis.json --out ./snap-p1/google-ads-diagnosis-report.html`(模板与 MarkAI `GoogleAdsDiagnosisReport.html` 一致)。
|
|
@@ -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
|
|
|
@@ -30,9 +30,22 @@ siluzan-tso google-ads-diagnosis render \
|
|
|
30
30
|
|
|
31
31
|
| 子命令 | 说明 |
|
|
32
32
|
| -------- | -------------------------------------------------------------------- |
|
|
33
|
-
| `collect` | 拉 google-analysis + 可选 Lighthouse;输出 `google-ads-diagnosis-collect.json` |
|
|
33
|
+
| `collect` | 拉 google-analysis + 对比周期 campaigns/geographic/keywords + 可选 Lighthouse;输出 `google-ads-diagnosis-collect.json` |
|
|
34
34
|
| `render` | 读取 Agent 产出的 `google-ads-diagnosis.json`,注入 `GoogleAdsDiagnosisReport.html` |
|
|
35
35
|
|
|
36
|
+
**collect 选项**:
|
|
37
|
+
|
|
38
|
+
| 选项 | 说明 |
|
|
39
|
+
| ---- | ---- |
|
|
40
|
+
| `--no-fetch-previous-period` | 不拉上一周期 campaigns/geographic/keywords 对比数据(环比列将为空) |
|
|
41
|
+
| `--skip-landing-page` | 不拉取 WebsiteDiagnosisReports/performance |
|
|
42
|
+
|
|
43
|
+
**collect 行为约束**:
|
|
44
|
+
|
|
45
|
+
- **禁止**使用已移除的 `--skip-fetch`;环比对比数据须由 CLI 向 API 拉取上一周期快照(`campaigns/geographic/keywords` 的 `*_YYYYMMDD-YYYYMMDD.json`),不可仅靠目录内当期快照映射。
|
|
46
|
+
- `google-analysis` **部分维度失败**(exit 2,如 `daily-metrics` HTTP 400)时,collect **仍会继续**拉取对比周期并生成 `google-ads-diagnosis-collect.json`;Agent 可基于 collect 继续撰写,缺失维度在报告中注明。
|
|
47
|
+
- 若环比列全为 `null`,检查落盘目录是否存在上一周期文件(如 `campaigns-<id>_20260503-20260602.json`);不存在则**重新执行 collect**(勿用手动拼装或 Python 脚本绕过 CLI)。
|
|
48
|
+
|
|
36
49
|
- **render 自动合并(默认开启)**:若同目录存在 `google-ads-diagnosis-collect.json`,且 Agent 改坏了 `campaigns` / `geographic` / `keywords` 的 `items`(缺 `title`/`currentCost` 或环比写成字符串),CLI **自动从 collect.reportData 恢复 items**,保留 Agent 的 `analysis`/`suggestions`。可用 `--no-merge-collect` 关闭;`--collect <file>` 指定 collect 路径。
|
|
37
50
|
- **render 硬校验**:合并后对比表仍不完整则 **exit 1**(避免 HTML 表体全空)。
|
|
38
51
|
|
|
@@ -30,9 +30,22 @@ siluzan-tso google-ads-diagnosis render \
|
|
|
30
30
|
|
|
31
31
|
| 子命令 | 说明 |
|
|
32
32
|
| -------- | -------------------------------------------------------------------- |
|
|
33
|
-
| `collect` | 拉 google-analysis + 可选 Lighthouse;输出 `google-ads-diagnosis-collect.json` |
|
|
33
|
+
| `collect` | 拉 google-analysis + 对比周期 campaigns/geographic/keywords + 可选 Lighthouse;输出 `google-ads-diagnosis-collect.json` |
|
|
34
34
|
| `render` | 读取 Agent 产出的 `google-ads-diagnosis.json`,注入 `GoogleAdsDiagnosisReport.html` |
|
|
35
35
|
|
|
36
|
+
**collect 选项**:
|
|
37
|
+
|
|
38
|
+
| 选项 | 说明 |
|
|
39
|
+
| ---- | ---- |
|
|
40
|
+
| `--no-fetch-previous-period` | 不拉上一周期 campaigns/geographic/keywords 对比数据(环比列将为空) |
|
|
41
|
+
| `--skip-landing-page` | 不拉取 WebsiteDiagnosisReports/performance |
|
|
42
|
+
|
|
43
|
+
**collect 行为约束**:
|
|
44
|
+
|
|
45
|
+
- **禁止**使用已移除的 `--skip-fetch`;环比对比数据须由 CLI 向 API 拉取上一周期快照(`campaigns/geographic/keywords` 的 `*_YYYYMMDD-YYYYMMDD.json`),不可仅靠目录内当期快照映射。
|
|
46
|
+
- `google-analysis` **部分维度失败**(exit 2,如 `daily-metrics` HTTP 400)时,collect **仍会继续**拉取对比周期并生成 `google-ads-diagnosis-collect.json`;Agent 可基于 collect 继续撰写,缺失维度在报告中注明。
|
|
47
|
+
- 若环比列全为 `null`,检查落盘目录是否存在上一周期文件(如 `campaigns-<id>_20260503-20260602.json`);不存在则**重新执行 collect**(勿用手动拼装或 Python 脚本绕过 CLI)。
|
|
48
|
+
|
|
36
49
|
- **render 自动合并(默认开启)**:若同目录存在 `google-ads-diagnosis-collect.json`,且 Agent 改坏了 `campaigns` / `geographic` / `keywords` 的 `items`(缺 `title`/`currentCost` 或环比写成字符串),CLI **自动从 collect.reportData 恢复 items**,保留 Agent 的 `analysis`/`suggestions`。可用 `--no-merge-collect` 关闭;`--collect <file>` 指定 collect 路径。
|
|
37
50
|
- **render 硬校验**:合并后对比表仍不完整则 **exit 1**(避免 HTML 表体全空)。
|
|
38
51
|
|
|
@@ -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.
|
|
12
|
+
$PKG_VERSION = '1.1.35-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
|
|
@@ -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.
|
|
12
|
+
readonly PKG_VERSION="1.1.35-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
|