siluzan-tso-cli 1.1.18 → 1.1.19-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 +8 -7
- package/assets/siluzan-ads/references/hosted-automation-user-catalog.md +17 -19
- package/dist/index.js +1112 -874
- package/dist/skill/SKILL.md +66 -38
- package/dist/skill/_meta.json +2 -2
- package/dist/skill/references/account-analytics.md +95 -88
- package/dist/skill/references/accounts.md +10 -9
- package/dist/skill/references/finance.md +5 -5
- package/dist/skill/references/google-ads-rules/google-ads-account-audit.md +1 -0
- package/dist/skill/references/google-ads-rules/google-ads-keyword-optimization.md +1 -1
- package/dist/skill/references/google-ads-rules/google-ads-landing-page-discovery-via-webfetch.md +72 -0
- package/dist/skill/references/google-ads-rules/google-ads-launch-plan-template.md +25 -16
- package/dist/skill/references/google-ads.md +236 -1025
- package/dist/skill/references/google-analysis-batch.md +53 -46
- package/dist/skill/references/hosted-automation-monitoring-json.md +10 -10
- package/dist/skill/references/hosted-automation-optimize-ab-winner.md +3 -3
- package/dist/skill/references/hosted-automation-optimize-index.md +5 -5
- package/dist/skill/references/hosted-automation-optimize-scale.md +2 -2
- package/dist/skill/references/hosted-automation-optimize-weak-downbid.md +5 -5
- package/dist/skill/references/hosted-automation-scenarios.md +5 -5
- package/dist/skill/references/hosted-automation-self-control.md +24 -23
- package/dist/skill/references/hosted-automation-user-catalog.md +17 -19
- package/dist/skill/references/keyword-planner-workflows.md +104 -0
- package/dist/skill/references/open-account-google-ui.md +0 -1
- package/dist/skill/references/reporting.md +2 -2
- package/dist/skill/references/setup.md +21 -22
- package/dist/skill/references/tips.md +2 -1
- package/dist/skill/references/tso-home.md +1 -1
- package/dist/skill/references/workflows.md +10 -4
- package/dist/skill/references/write-audit-restore.md +39 -6
- package/dist/skill/report-templates/README.md +1 -0
- package/dist/skill/report-templates/REPORT-WORKFLOW.md +4 -0
- package/dist/skill/report-templates/google-period-report.md +16 -16
- package/dist/skill/report-templates/okki-weekly-google-client.md +105 -0
- package/dist/skill/scripts/install.ps1 +2 -2
- package/dist/skill/scripts/install.sh +2 -2
- package/eval/cases/accounts-entityid-vs-mediaccustomerid.scenario.json +2 -14
- package/eval/cases/accounts-mcc-bind-inquiry.scenario.json +1 -3
- package/eval/cases/accounts-single-balance-not-bulk.scenario.json +3 -14
- package/eval/cases/budget-display-not-raw-micros.scenario.json +1 -8
- package/eval/cases/clue-meta-leads-json.scenario.json +2 -14
- package/eval/cases/clue-tiktok-leads-json.scenario.json +2 -11
- package/eval/cases/destructive-account-delink-needs-confirm.scenario.json +3 -9
- package/eval/cases/destructive-forewarning-delete-needs-confirm.scenario.json +3 -9
- package/eval/cases/destructive-invoice-apply-needs-confirm.scenario.json +3 -9
- package/eval/cases/finance-invoice-info-list.scenario.json +3 -11
- package/eval/cases/forewarning-list-google.scenario.json +3 -14
- package/eval/cases/google-ads-no-structural-without-confirm.scenario.json +2 -6
- package/eval/cases/google-analysis-keywords-route.scenario.json +2 -14
- package/eval/cases/human-p1-multiturn.scenario.json +1 -5
- package/eval/cases/meta-single-balance-not-bulk.scenario.json +3 -17
- package/eval/cases/open-account-bing-noninteractive.scenario.json +1 -4
- package/eval/cases/open-account-google-noninteractive.scenario.json +1 -3
- package/eval/cases/open-account-tiktok-license-file.scenario.json +1 -3
- package/eval/cases/optimize-list-by-account.scenario.json +3 -11
- package/eval/cases/p1-single-account-profile.scenario.json +1 -11
- package/eval/cases/p2-balance-scan-bulk.scenario.json +2 -9
- package/eval/cases/p3-accounts-digest.scenario.json +1 -5
- package/eval/cases/p4-period-report-window.scenario.json +1 -8
- package/eval/cases/report-list-google.scenario.json +2 -11
- package/eval/cases/report-push-list-google.scenario.json +2 -11
- package/eval/cases/reporting-vs-account-analytics-routing.scenario.json +1 -4
- package/eval/cases/setup-login-or-env.scenario.json +1 -3
- package/eval/cases/setup-siluzan-data-permission-env.scenario.json +1 -3
- package/eval/cases/skill-optimize-vs-google-ads-distinction.scenario.json +1 -4
- package/eval/cases/tiktok-bc-bind-inquiry.scenario.json +2 -6
- package/eval/cases/time-range-user-delegates-default.scenario.json +1 -8
- package/eval/cases/tips-json-filtering.scenario.json +1 -3
- package/eval/cases/tips-large-json-pagination.scenario.json +1 -3
- package/eval/cases/uj-ad-outdoor-campgear-search-plan.scenario.json +1 -3
- package/eval/cases/uj-analytics-30d-pdf-campaign-device-geo.scenario.json +6 -18
- package/eval/cases/uj-analytics-compare-google-tiktok-last-month-roi.scenario.json +1 -8
- package/eval/cases/uj-analytics-google-weekly-trends-campaigns-keywords.scenario.json +2 -11
- package/eval/cases/uj-analytics-report-push-weekly-email.scenario.json +1 -3
- package/eval/cases/uj-finance-invoice-records-this-month.scenario.json +2 -11
- package/eval/cases/uj-life-newbie-siluzan-google-end-to-end.scenario.json +1 -4
- package/eval/cases/uj-ops-google-accounts-list-normal.scenario.json +2 -14
- package/eval/cases/uj-ops-google-yesterday-spend-conversions.scenario.json +2 -14
- package/eval/cases/uj-ops-open-google-b2c-usd-shenzhen.scenario.json +1 -4
- package/eval/cases/uj-ops-pause-worst-adgroup-confirm.scenario.json +2 -6
- package/eval/cases/uj-ops-tiktok-leads-last-week.scenario.json +3 -17
- package/eval/cases/uj-patrol-cpc-spike-adgroups-over-15.scenario.json +2 -9
- package/eval/cases/uj-patrol-forewarning-create-daily-cap-3000.scenario.json +1 -3
- package/eval/cases/uj-patrol-forewarning-trigger-records.scenario.json +3 -17
- package/eval/cases/uj-patrol-google-balances-low.scenario.json +2 -11
- package/eval/cases/uj-roi-optimize-records-then-execute-cautiously.scenario.json +3 -14
- package/eval/cases/uj-roi-search-terms-add-negative-keywords.scenario.json +2 -14
- package/eval/stub-fixtures/balance-meta.json +3 -1
- package/eval/stub-fixtures/clue-meta.json +6 -1
- package/eval/stub-fixtures/clue-tiktok.json +3 -1
- package/eval/stub-fixtures/forewarning-create-ok.json +5 -1
- package/eval/stub-fixtures/forewarning-records.json +3 -1
- package/eval/stub-fixtures/google-analysis.json +81 -21
- package/eval/stub-fixtures/invoice-billable.json +3 -1
- package/eval/stub-fixtures/invoice-list.json +14 -2
- package/eval/stub-fixtures/report-push-list.json +3 -1
- package/package.json +2 -2
- package/scripts/postinstall.mjs +1 -2
|
@@ -6,15 +6,6 @@
|
|
|
6
6
|
],
|
|
7
7
|
"judgeExpectation": "路径:应先 list-accounts 获取 Google 账户集合,再按需 balance 或说明多账户策略;不得对大量账户逐条手写死循环式 balance(若文档推荐批量/扫描应优先);须诚实说明 CLI 能否一次扫完全媒体。\n输出:说明判断「快没钱」所需字段(余额+消耗);stub 即可。",
|
|
8
8
|
"skillMapping": "references/accounts.md;SKILL 批量任务",
|
|
9
|
-
"judgeReferencePaths": [
|
|
10
|
-
|
|
11
|
-
],
|
|
12
|
-
"commandMustInclude": [
|
|
13
|
-
[
|
|
14
|
-
"list-accounts"
|
|
15
|
-
],
|
|
16
|
-
[
|
|
17
|
-
"Google"
|
|
18
|
-
]
|
|
19
|
-
]
|
|
9
|
+
"judgeReferencePaths": ["references/accounts.md"],
|
|
10
|
+
"commandMustInclude": [["list-accounts"], ["Google"]]
|
|
20
11
|
}
|
|
@@ -1,20 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "uj-roi-optimize-records-then-execute-cautiously",
|
|
3
3
|
"description": "查看 AI 优化建议并谨慎执行",
|
|
4
|
-
"turns": [
|
|
5
|
-
"帮我查看 AI 优化建议,如果有合理的就按建议执行。先 list 带 --json。"
|
|
6
|
-
],
|
|
4
|
+
"turns": ["帮我查看 AI 优化建议,如果有合理的就按建议执行。先 list 带 --json。"],
|
|
7
5
|
"judgeExpectation": "路径:应使用 optimize list/get 查看建议;真正改账户结构须与 google-ads 写命令一致且用户确认,不得自动执行「按建议一键改」。\n输出:区分「只读记录」与「写操作」;stub 即可。",
|
|
8
6
|
"skillMapping": "references/optimize.md;破坏性确认",
|
|
9
|
-
"judgeReferencePaths": [
|
|
10
|
-
|
|
11
|
-
],
|
|
12
|
-
"commandMustInclude": [
|
|
13
|
-
[
|
|
14
|
-
"optimize list"
|
|
15
|
-
],
|
|
16
|
-
[
|
|
17
|
-
"--json"
|
|
18
|
-
]
|
|
19
|
-
]
|
|
7
|
+
"judgeReferencePaths": ["references/optimize.md"],
|
|
8
|
+
"commandMustInclude": [["optimize list"], ["--json"]]
|
|
20
9
|
}
|
|
@@ -6,18 +6,6 @@
|
|
|
6
6
|
],
|
|
7
7
|
"judgeExpectation": "路径:应先用 `google-analysis -a <id> --sections search-terms --json-out <dir>` 拉取搜索词(注意 google-analysis 是单一入口,单维度通过 --sections 指定),再基于规则建议否定词;执行 ad keyword-negative-create 前必须用户确认。\n输出:可列出候选否定词;不要求真实写入。",
|
|
8
8
|
"skillMapping": "references/account-analytics.md;google-ads.md",
|
|
9
|
-
"judgeReferencePaths": [
|
|
10
|
-
|
|
11
|
-
],
|
|
12
|
-
"commandMustInclude": [
|
|
13
|
-
[
|
|
14
|
-
"google-analysis"
|
|
15
|
-
],
|
|
16
|
-
[
|
|
17
|
-
"search-terms"
|
|
18
|
-
],
|
|
19
|
-
[
|
|
20
|
-
"--json-out"
|
|
21
|
-
]
|
|
22
|
-
]
|
|
9
|
+
"judgeReferencePaths": ["references/google-ads.md"],
|
|
10
|
+
"commandMustInclude": [["google-analysis"], ["search-terms"], ["--json-out"]]
|
|
23
11
|
}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"ok": true,
|
|
3
3
|
"data": {
|
|
4
|
-
"leads": [
|
|
4
|
+
"leads": [
|
|
5
|
+
{
|
|
6
|
+
"field_data": [{ "name": "email", "values": ["fb@example.com"] }],
|
|
7
|
+
"created_time": "2026-04-01T00:00:00Z"
|
|
8
|
+
}
|
|
9
|
+
]
|
|
5
10
|
},
|
|
6
11
|
"meta": { "stub": true }
|
|
7
12
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"ok": true,
|
|
3
3
|
"data": {
|
|
4
|
-
"leads": [
|
|
4
|
+
"leads": [
|
|
5
|
+
{ "system_fields": { "lead_id": "L1" }, "custom_fields": { "email": "u@example.com" } }
|
|
6
|
+
]
|
|
5
7
|
},
|
|
6
8
|
"meta": { "stub": true }
|
|
7
9
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"ok": true,
|
|
3
3
|
"data": {
|
|
4
|
-
"records": [
|
|
4
|
+
"records": [
|
|
5
|
+
{ "ruleName": "日消耗预警", "status": "Success", "triggeredAt": "2026-04-20T10:00:00Z" }
|
|
6
|
+
]
|
|
5
7
|
},
|
|
6
8
|
"meta": { "stub": true }
|
|
7
9
|
}
|
|
@@ -9,26 +9,86 @@
|
|
|
9
9
|
"concurrency": 5,
|
|
10
10
|
"elapsedMs": 18712,
|
|
11
11
|
"results": [
|
|
12
|
-
{ "section": "overview",
|
|
13
|
-
{ "section": "keywords",
|
|
14
|
-
{
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
{ "section": "
|
|
21
|
-
{
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
{ "section": "
|
|
28
|
-
{
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
12
|
+
{ "section": "overview", "ok": true, "elapsedMs": 3380, "file": "overview-9526903813.json" },
|
|
13
|
+
{ "section": "keywords", "ok": true, "elapsedMs": 4611, "file": "keywords-9526903813.json" },
|
|
14
|
+
{
|
|
15
|
+
"section": "search-terms",
|
|
16
|
+
"ok": true,
|
|
17
|
+
"elapsedMs": 4899,
|
|
18
|
+
"file": "search-terms-9526903813.json"
|
|
19
|
+
},
|
|
20
|
+
{ "section": "campaigns", "ok": true, "elapsedMs": 3098, "file": "campaigns-9526903813.json" },
|
|
21
|
+
{
|
|
22
|
+
"section": "campaign-hour",
|
|
23
|
+
"ok": true,
|
|
24
|
+
"elapsedMs": 3215,
|
|
25
|
+
"file": "campaign-hour-9526903813.json"
|
|
26
|
+
},
|
|
27
|
+
{ "section": "ads", "ok": true, "elapsedMs": 1578, "file": "ads-9526903813.json" },
|
|
28
|
+
{
|
|
29
|
+
"section": "extensions",
|
|
30
|
+
"ok": true,
|
|
31
|
+
"elapsedMs": 7567,
|
|
32
|
+
"file": "extensions-9526903813.json"
|
|
33
|
+
},
|
|
34
|
+
{ "section": "devices", "ok": true, "elapsedMs": 1716, "file": "devices-9526903813.json" },
|
|
35
|
+
{
|
|
36
|
+
"section": "geographic",
|
|
37
|
+
"ok": true,
|
|
38
|
+
"elapsedMs": 3609,
|
|
39
|
+
"file": "geographic-9526903813.json"
|
|
40
|
+
},
|
|
41
|
+
{ "section": "audience", "ok": true, "elapsedMs": 2188, "file": "audience-9526903813.json" },
|
|
42
|
+
{
|
|
43
|
+
"section": "asset-images",
|
|
44
|
+
"ok": true,
|
|
45
|
+
"elapsedMs": 3076,
|
|
46
|
+
"file": "asset-images-9526903813.json"
|
|
47
|
+
},
|
|
48
|
+
{ "section": "videos", "ok": true, "elapsedMs": 4692, "file": "videos-9526903813.json" },
|
|
49
|
+
{ "section": "materials", "ok": true, "elapsedMs": 7383, "file": "materials-9526903813.json" },
|
|
50
|
+
{
|
|
51
|
+
"section": "resource-counts",
|
|
52
|
+
"ok": true,
|
|
53
|
+
"elapsedMs": 6341,
|
|
54
|
+
"file": "resource-counts-9526903813.json"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"section": "conversion-actions",
|
|
58
|
+
"ok": true,
|
|
59
|
+
"elapsedMs": 3482,
|
|
60
|
+
"file": "conversion-actions-9526903813.json"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"section": "daily-metrics",
|
|
64
|
+
"ok": true,
|
|
65
|
+
"elapsedMs": 1697,
|
|
66
|
+
"file": "daily-metrics-9526903813.json"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"section": "gold-account",
|
|
70
|
+
"ok": true,
|
|
71
|
+
"elapsedMs": 8973,
|
|
72
|
+
"file": "gold-account-9526903813.json"
|
|
73
|
+
},
|
|
74
|
+
{ "section": "ads-index", "ok": true, "elapsedMs": 7916, "file": "ads-index-9526903813.json" },
|
|
75
|
+
{
|
|
76
|
+
"section": "final-urls",
|
|
77
|
+
"ok": true,
|
|
78
|
+
"elapsedMs": 3001,
|
|
79
|
+
"file": "final-urls-9526903813.json"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"section": "dimension-summary",
|
|
83
|
+
"ok": true,
|
|
84
|
+
"elapsedMs": 2961,
|
|
85
|
+
"file": "dimension-summary-9526903813.json"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"section": "campaign-types",
|
|
89
|
+
"ok": true,
|
|
90
|
+
"elapsedMs": 2567,
|
|
91
|
+
"file": "campaign-types-9526903813.json"
|
|
92
|
+
}
|
|
33
93
|
]
|
|
34
94
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"ok": true,
|
|
3
3
|
"data": {
|
|
4
|
-
"items": [
|
|
4
|
+
"items": [
|
|
5
|
+
{ "entityId": "bill-entity-1", "amount": 500.0, "currency": "USD", "media": "Google" }
|
|
6
|
+
]
|
|
5
7
|
},
|
|
6
8
|
"meta": { "stub": true }
|
|
7
9
|
}
|
|
@@ -2,8 +2,20 @@
|
|
|
2
2
|
"ok": true,
|
|
3
3
|
"data": {
|
|
4
4
|
"items": [
|
|
5
|
-
{
|
|
6
|
-
|
|
5
|
+
{
|
|
6
|
+
"invoiceNo": "INV202604001",
|
|
7
|
+
"status": "Issued",
|
|
8
|
+
"amount": 1200.0,
|
|
9
|
+
"currency": "CNY",
|
|
10
|
+
"media": "Google"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"invoiceNo": "INV202604002",
|
|
14
|
+
"status": "Pending",
|
|
15
|
+
"amount": 800.0,
|
|
16
|
+
"currency": "CNY",
|
|
17
|
+
"media": "TikTok"
|
|
18
|
+
}
|
|
7
19
|
]
|
|
8
20
|
},
|
|
9
21
|
"meta": { "stub": true }
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"ok": true,
|
|
3
3
|
"data": {
|
|
4
|
-
"configs": [
|
|
4
|
+
"configs": [
|
|
5
|
+
{ "id": "pc-1", "reportType": "Google", "enabled": true, "recipients": ["ops@example.com"] }
|
|
6
|
+
]
|
|
5
7
|
},
|
|
6
8
|
"meta": { "stub": true }
|
|
7
9
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "siluzan-tso-cli",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.19-beta.2",
|
|
4
4
|
"description": "Siluzan 广告账户管理 CLI — 查询账户、余额、消耗数据,管理绑定关系与充值。",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ad-account",
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@sentry/node": "9",
|
|
33
|
-
"proper-lockfile": "^4.1.2",
|
|
34
33
|
"cli-table3": "^0.6.5",
|
|
35
34
|
"commander": "^12.1.0",
|
|
36
35
|
"open": "^10.1.0",
|
|
36
|
+
"proper-lockfile": "^4.1.2",
|
|
37
37
|
"qrcode": "^1.5.4"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|