siluzan-tso-cli 1.1.29-beta.19 → 1.1.29-beta.21
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
|
@@ -51,7 +51,7 @@ siluzan-tso init -d /path/to/skills # 写入自定义目录
|
|
|
51
51
|
siluzan-tso init --force # 强制覆盖已存在文件
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
> **注意**:当前为测试版(1.1.29-beta.
|
|
54
|
+
> **注意**:当前为测试版(1.1.29-beta.21),供内部测试使用。正式发布后安装命令将改为 `npm install -g siluzan-tso-cli`。
|
|
55
55
|
|
|
56
56
|
| 助手 | 建议 `--ai` |
|
|
57
57
|
| ----------------------- | ------------------------------------ |
|
package/dist/index.js
CHANGED
|
@@ -104421,7 +104421,15 @@ function stripListAccountsEnrichmentFields(item) {
|
|
|
104421
104421
|
delete item.ma.platformStatus;
|
|
104422
104422
|
delete item.ma.aritScore;
|
|
104423
104423
|
const maExt = item.ma;
|
|
104424
|
-
for (const key of [
|
|
104424
|
+
for (const key of [
|
|
104425
|
+
"balance",
|
|
104426
|
+
"status",
|
|
104427
|
+
"spend",
|
|
104428
|
+
"impressions",
|
|
104429
|
+
"clicks",
|
|
104430
|
+
"conversions",
|
|
104431
|
+
"costPerClick"
|
|
104432
|
+
]) {
|
|
104425
104433
|
delete maExt[key];
|
|
104426
104434
|
}
|
|
104427
104435
|
}
|
|
@@ -104473,7 +104481,6 @@ var COL_SPEND_METRICS = [
|
|
|
104473
104481
|
{ key: "conversions", header: "\u8F6C\u5316\u6B21\u6570" },
|
|
104474
104482
|
{ key: "clicks", header: "\u70B9\u51FB\u6B21\u6570" },
|
|
104475
104483
|
{ key: "cpc", header: "\u70B9\u51FB\u5747\u4EF7" },
|
|
104476
|
-
{ key: "balance", header: "\u4F59\u989D" },
|
|
104477
104484
|
{ key: "authStatus", header: "\u6388\u6743\u72B6\u6001" },
|
|
104478
104485
|
{ key: "createdAt", header: "\u6388\u6743/\u5F00\u6237\u65F6\u95F4" },
|
|
104479
104486
|
{ key: "shared", header: "\u5206\u4EAB\u8D26\u6237" }
|
|
@@ -104488,7 +104495,6 @@ var COL_YANDEX = [
|
|
|
104488
104495
|
{ key: "conversions", header: "\u8F6C\u5316\u6B21\u6570" },
|
|
104489
104496
|
{ key: "clicks", header: "\u70B9\u51FB\u6B21\u6570" },
|
|
104490
104497
|
{ key: "cpc", header: "\u70B9\u51FB\u5747\u4EF7" },
|
|
104491
|
-
{ key: "balance", header: "\u4F59\u989D" },
|
|
104492
104498
|
{ key: "authStatus", header: "\u6388\u6743\u72B6\u6001" },
|
|
104493
104499
|
{ key: "createdAt", header: "\u6388\u6743/\u5F00\u6237\u65F6\u95F4" },
|
|
104494
104500
|
{ key: "shared", header: "\u5206\u4EAB\u8D26\u6237" }
|
|
@@ -104503,7 +104509,6 @@ var COL_TIKTOK = [
|
|
|
104503
104509
|
{ key: "conversions", header: "\u8F6C\u5316\u6B21\u6570" },
|
|
104504
104510
|
{ key: "clicks", header: "\u70B9\u51FB\u6B21\u6570" },
|
|
104505
104511
|
{ key: "cpc", header: "\u70B9\u51FB\u5747\u4EF7" },
|
|
104506
|
-
{ key: "balance", header: "\u4F59\u989D" },
|
|
104507
104512
|
{ key: "bc", header: "BC" },
|
|
104508
104513
|
{ key: "authStatus", header: "\u6388\u6743\u72B6\u6001" },
|
|
104509
104514
|
{ key: "auditStatus", header: "\u5BA1\u6838\u72B6\u6001" },
|
|
@@ -104520,7 +104525,6 @@ var COL_GOOGLE = [
|
|
|
104520
104525
|
{ key: "conversions", header: "\u8F6C\u5316" },
|
|
104521
104526
|
{ key: "clicks", header: "\u70B9\u51FB" },
|
|
104522
104527
|
{ key: "cpc", header: "\u70B9\u51FB\u5747\u4EF7" },
|
|
104523
|
-
{ key: "balance", header: "\u4F59\u989D" },
|
|
104524
104528
|
{ key: "arit", header: "Arit" },
|
|
104525
104529
|
{ key: "platformStatus", header: "\u8D26\u6237\u72B6\u6001" },
|
|
104526
104530
|
{ key: "authStatus", header: "\u6388\u6743\u72B6\u6001" },
|
|
@@ -104621,7 +104625,6 @@ function printSpendMetricsAccountTable(items, tableOpts) {
|
|
|
104621
104625
|
const rows = items.map((item) => {
|
|
104622
104626
|
const ma = item.ma;
|
|
104623
104627
|
const authStatus = ma.invalidOAuthToken ? "\u26A0\uFE0F \u5931\u6548" : "\u2705 \u6B63\u5E38";
|
|
104624
|
-
const balance = ma.remainingAccountBudget != null ? formatMoneyDisplay(ma.remainingAccountBudget, ma.currencyCode) : "-";
|
|
104625
104628
|
const sharedCount = Array.isArray(ma.accountIds) ? String(Math.max(0, ma.accountIds.length - 1)) : "-";
|
|
104626
104629
|
return {
|
|
104627
104630
|
company: item.mag?.advertiserName ?? "-",
|
|
@@ -104633,7 +104636,6 @@ function printSpendMetricsAccountTable(items, tableOpts) {
|
|
|
104633
104636
|
conversions: fmtNum(ma["conversions"], 0),
|
|
104634
104637
|
clicks: fmtNum(ma["clicks"], 0),
|
|
104635
104638
|
cpc: fmtNum(ma["costPerClick"]),
|
|
104636
|
-
balance,
|
|
104637
104639
|
authStatus,
|
|
104638
104640
|
createdAt: fmtDate(ma.createdDateTime),
|
|
104639
104641
|
shared: sharedCount
|
|
@@ -104645,7 +104647,6 @@ function printYandexTable(items, tableOpts) {
|
|
|
104645
104647
|
const rows = items.map((item) => {
|
|
104646
104648
|
const ma = item.ma;
|
|
104647
104649
|
const authStatus = ma.invalidOAuthToken ? "\u26A0\uFE0F \u5931\u6548" : "\u2705 \u6B63\u5E38";
|
|
104648
|
-
const balance = ma.remainingAccountBudget != null ? formatMoneyDisplay(ma.remainingAccountBudget, ma.currencyCode) : "-";
|
|
104649
104650
|
const sharedCount = Array.isArray(ma.accountIds) ? String(Math.max(0, ma.accountIds.length - 1)) : "-";
|
|
104650
104651
|
const pwd = ma.mediaPassword != null && String(ma.mediaPassword).trim() !== "" ? String(ma.mediaPassword) : "-";
|
|
104651
104652
|
return {
|
|
@@ -104658,7 +104659,6 @@ function printYandexTable(items, tableOpts) {
|
|
|
104658
104659
|
conversions: fmtNum(ma["conversions"], 0),
|
|
104659
104660
|
clicks: fmtNum(ma["clicks"], 0),
|
|
104660
104661
|
cpc: fmtNum(ma["costPerClick"]),
|
|
104661
|
-
balance,
|
|
104662
104662
|
authStatus,
|
|
104663
104663
|
createdAt: fmtDate(ma.createdDateTime),
|
|
104664
104664
|
shared: sharedCount
|
|
@@ -104670,7 +104670,6 @@ function printTikTokTable(items, tableOpts) {
|
|
|
104670
104670
|
const rows = items.map((item) => {
|
|
104671
104671
|
const ma = item.ma;
|
|
104672
104672
|
const authStatus = ma.invalidOAuthToken ? "\u26A0\uFE0F \u5931\u6548" : "\u2705 \u6B63\u5E38";
|
|
104673
|
-
const balance = ma.remainingAccountBudget != null ? formatMoneyDisplay(ma.remainingAccountBudget, ma.currencyCode) : "-";
|
|
104674
104673
|
const sharedCount = Array.isArray(ma.accountIds) ? String(Math.max(0, ma.accountIds.length - 1)) : "-";
|
|
104675
104674
|
return {
|
|
104676
104675
|
company: item.mag?.advertiserName ?? "-",
|
|
@@ -104682,7 +104681,6 @@ function printTikTokTable(items, tableOpts) {
|
|
|
104682
104681
|
conversions: fmtNum(ma["conversions"], 0),
|
|
104683
104682
|
clicks: fmtNum(ma["clicks"], 0),
|
|
104684
104683
|
cpc: fmtNum(ma["costPerClick"]),
|
|
104685
|
-
balance,
|
|
104686
104684
|
bc: formatTikTokBcColumn(ma),
|
|
104687
104685
|
authStatus,
|
|
104688
104686
|
auditStatus: formatTikTokAuditStatus(ma),
|
|
@@ -104697,7 +104695,6 @@ function printGoogleTable(items, tableOpts) {
|
|
|
104697
104695
|
const ma = item.ma;
|
|
104698
104696
|
const authStatus = ma.invalidOAuthToken ? "\u26A0\uFE0F \u5931\u6548" : "\u2705 \u6B63\u5E38";
|
|
104699
104697
|
const platformStatus = ma.platformStatus ?? "-";
|
|
104700
|
-
const balance = ma.remainingAccountBudget != null ? formatMoneyDisplay(ma.remainingAccountBudget, ma.currencyCode) : "-";
|
|
104701
104698
|
const sharedCount = Array.isArray(ma.accountIds) ? String(Math.max(0, ma.accountIds.length - 1)) : "-";
|
|
104702
104699
|
return {
|
|
104703
104700
|
company: item.mag?.advertiserName ?? "-",
|
|
@@ -104709,7 +104706,6 @@ function printGoogleTable(items, tableOpts) {
|
|
|
104709
104706
|
conversions: fmtNum(ma["conversions"], 0),
|
|
104710
104707
|
clicks: fmtNum(ma["clicks"], 0),
|
|
104711
104708
|
cpc: fmtNum(ma["costPerClick"]),
|
|
104712
|
-
balance,
|
|
104713
104709
|
arit: String(ma.aritScore ?? "-"),
|
|
104714
104710
|
platformStatus,
|
|
104715
104711
|
authStatus,
|
|
@@ -104725,7 +104721,6 @@ var COL_DEFAULT_WITH_MEDIA = [
|
|
|
104725
104721
|
{ key: "advertiserName", header: "\u5E7F\u544A\u4E3B" },
|
|
104726
104722
|
{ key: "mediaCustomerName", header: "\u8D26\u6237\u540D\u79F0" },
|
|
104727
104723
|
COL_CURRENCY,
|
|
104728
|
-
{ key: "balance", header: "\u4F59\u989D" },
|
|
104729
104724
|
{ key: "status", header: "\u8D26\u6237\u72B6\u6001" }
|
|
104730
104725
|
];
|
|
104731
104726
|
var COL_DEFAULT_SINGLE = COL_DEFAULT_WITH_MEDIA.filter(
|
|
@@ -104744,14 +104739,12 @@ function printDefaultTable(items, media, tableOpts) {
|
|
|
104744
104739
|
} else {
|
|
104745
104740
|
statusLabel = "\u2705 \u6B63\u5E38";
|
|
104746
104741
|
}
|
|
104747
|
-
const balance = ma.remainingAccountBudget != null ? formatMoneyDisplay(ma.remainingAccountBudget, ma.currencyCode) : "-";
|
|
104748
104742
|
return {
|
|
104749
104743
|
mediaType: ma.mediaAccountType ?? "",
|
|
104750
104744
|
mediaCustomerId: String(ma.mediaCustomerId ?? "(\u672A\u5F00\u901A)"),
|
|
104751
104745
|
advertiserName: item.mag?.advertiserName ?? "",
|
|
104752
104746
|
mediaCustomerName: ma.mediaCustomerName ?? "",
|
|
104753
104747
|
currency: formatCurrencyCodeLabel(ma.currencyCode),
|
|
104754
|
-
balance,
|
|
104755
104748
|
status: statusLabel
|
|
104756
104749
|
};
|
|
104757
104750
|
});
|
|
@@ -104776,7 +104769,6 @@ function wrapListJson(params) {
|
|
|
104776
104769
|
}
|
|
104777
104770
|
|
|
104778
104771
|
// src/commands/list-accounts/main.ts
|
|
104779
|
-
init_balance();
|
|
104780
104772
|
async function runListAccounts(opts) {
|
|
104781
104773
|
let config = loadConfig(opts.token);
|
|
104782
104774
|
if (opts.refreshDp) {
|
|
@@ -104864,81 +104856,7 @@ async function runListAccounts(opts) {
|
|
|
104864
104856
|
process.exit(1);
|
|
104865
104857
|
}
|
|
104866
104858
|
}
|
|
104867
|
-
if (items.length > 0
|
|
104868
|
-
const groups = /* @__PURE__ */ new Map();
|
|
104869
|
-
for (const item of items) {
|
|
104870
|
-
const id = item.ma.mediaCustomerId;
|
|
104871
|
-
const mediaType = item.ma.mediaAccountType ?? opts.media ?? "";
|
|
104872
|
-
if (id && mediaType) {
|
|
104873
|
-
if (!groups.has(mediaType)) groups.set(mediaType, []);
|
|
104874
|
-
groups.get(mediaType).push(id);
|
|
104875
|
-
}
|
|
104876
|
-
}
|
|
104877
|
-
const diagnoseIdToItem = /* @__PURE__ */ new Map();
|
|
104878
|
-
const aritDiagnoseIds = [];
|
|
104879
|
-
for (const item of items) {
|
|
104880
|
-
for (const report of item.ma.diagnoseReports ?? []) {
|
|
104881
|
-
if (report.reportSource === "ARIT") {
|
|
104882
|
-
diagnoseIdToItem.set(report.websiteDiagnoseId, item);
|
|
104883
|
-
aritDiagnoseIds.push(report.websiteDiagnoseId);
|
|
104884
|
-
}
|
|
104885
|
-
}
|
|
104886
|
-
}
|
|
104887
|
-
const [balanceMaps, overviewMaps, aritReports] = await Promise.all([
|
|
104888
|
-
// 各媒体类型余额
|
|
104889
|
-
Promise.all(
|
|
104890
|
-
Array.from(groups.entries()).map(
|
|
104891
|
-
([mediaType, ids]) => fetchBalanceMap(mediaType, ids, config, void 0, void 0, opts.verbose)
|
|
104892
|
-
)
|
|
104893
|
-
),
|
|
104894
|
-
// 各媒体类型消耗数据(MetaAd 不支持,fetchOverviewMap 内部会跳过)
|
|
104895
|
-
Promise.all(
|
|
104896
|
-
Array.from(groups.entries()).map(
|
|
104897
|
-
([mediaType, ids]) => fetchOverviewMap(mediaType, ids, config, void 0, void 0, opts.verbose)
|
|
104898
|
-
)
|
|
104899
|
-
),
|
|
104900
|
-
// ARIT 得分
|
|
104901
|
-
aritDiagnoseIds.length > 0 ? apiFetch2(
|
|
104902
|
-
`${config.apiBaseUrl}/query/WebsiteDiagnoseReport/search?ids=${aritDiagnoseIds.join(",")}`,
|
|
104903
|
-
config,
|
|
104904
|
-
{},
|
|
104905
|
-
opts.verbose
|
|
104906
|
-
).catch(() => []) : Promise.resolve([])
|
|
104907
|
-
]);
|
|
104908
|
-
const globalBalance = /* @__PURE__ */ new Map();
|
|
104909
|
-
for (const m of balanceMaps) {
|
|
104910
|
-
for (const [id, info] of m) globalBalance.set(id, info);
|
|
104911
|
-
}
|
|
104912
|
-
const globalOverview = /* @__PURE__ */ new Map();
|
|
104913
|
-
for (const m of overviewMaps) {
|
|
104914
|
-
for (const [id, info] of m) globalOverview.set(id, info);
|
|
104915
|
-
}
|
|
104916
|
-
for (const item of items) {
|
|
104917
|
-
const id = item.ma.mediaCustomerId;
|
|
104918
|
-
if (!id) continue;
|
|
104919
|
-
const balanceInfo = globalBalance.get(id);
|
|
104920
|
-
if (balanceInfo) {
|
|
104921
|
-
item.ma.remainingAccountBudget = balanceInfo.remainingAccountBudget;
|
|
104922
|
-
item.ma.platformStatus = balanceInfo.status ?? balanceInfo.accountStatus;
|
|
104923
|
-
}
|
|
104924
|
-
const overviewInfo = globalOverview.get(id);
|
|
104925
|
-
if (overviewInfo) {
|
|
104926
|
-
const maExt = item.ma;
|
|
104927
|
-
maExt["spend"] = overviewInfo.spend;
|
|
104928
|
-
maExt["impressions"] = overviewInfo.impressions;
|
|
104929
|
-
maExt["clicks"] = overviewInfo.clicks;
|
|
104930
|
-
maExt["conversions"] = overviewInfo.conversions;
|
|
104931
|
-
const clicks = Number(overviewInfo.clicks ?? 0);
|
|
104932
|
-
maExt["costPerClick"] = clicks > 0 ? Number(overviewInfo.spend ?? 0) / clicks : null;
|
|
104933
|
-
}
|
|
104934
|
-
}
|
|
104935
|
-
for (const report of Array.isArray(aritReports) ? aritReports : []) {
|
|
104936
|
-
const targetItem = diagnoseIdToItem.get(report.websiteDiagnoseId);
|
|
104937
|
-
if (targetItem) {
|
|
104938
|
-
targetItem.ma.aritScore = report.summaryScore ?? "-";
|
|
104939
|
-
}
|
|
104940
|
-
}
|
|
104941
|
-
} else if (items.length > 0) {
|
|
104859
|
+
if (items.length > 0) {
|
|
104942
104860
|
for (const item of items) {
|
|
104943
104861
|
stripListAccountsEnrichmentFields(item);
|
|
104944
104862
|
}
|
|
@@ -104967,13 +104885,9 @@ async function runListAccounts(opts) {
|
|
|
104967
104885
|
return;
|
|
104968
104886
|
}
|
|
104969
104887
|
const totalInfo = total !== void 0 ? `\uFF0C\u5171 ${total} \u6761` : "";
|
|
104970
|
-
|
|
104971
|
-
\u5E7F\u544A\u8D26\u6237\u5217\u8868\uFF08\u7B2C ${page} \u9875\uFF0C\u672C\u9875 ${items.length} \u6761${totalInfo}\uFF09
|
|
104972
|
-
|
|
104973
|
-
listHeader += "\n \uFF08\u9ED8\u8BA4\u5217\u8868\uFF1A\u672A\u5408\u5E76\u4F59\u989D\u4E0E\u6D88\u8017\uFF0CJSON \u4E0D\u542B\u76F8\u5173\u5B57\u6BB5\uFF1B\u52A0 --detail \u53EF\u62C9\u53D6\u771F\u5B9E\u6570\u503C\uFF0C\u54CD\u5E94\u8F83\u6162\u3002TikTok/Meta \u4ECD\u5408\u5E76\u5217\u8868\u63A5\u53E3\u540C\u5305\u5185\u7684 adList\u3002\uFF09";
|
|
104974
|
-
}
|
|
104975
|
-
listHeader += "\n";
|
|
104976
|
-
console.log(listHeader);
|
|
104888
|
+
console.log(`
|
|
104889
|
+
\u5E7F\u544A\u8D26\u6237\u5217\u8868\uFF08\u7B2C ${page} \u9875\uFF0C\u672C\u9875 ${items.length} \u6761${totalInfo}\uFF09
|
|
104890
|
+
`);
|
|
104977
104891
|
if (items.length === 0) {
|
|
104978
104892
|
console.log("\u6682\u65E0\u5E7F\u544A\u8D26\u6237\u6570\u636E\u3002\n");
|
|
104979
104893
|
return;
|
|
@@ -105032,10 +104946,6 @@ function register6(program2) {
|
|
|
105032
104946
|
"--json-out <path>",
|
|
105033
104947
|
"\u843D\u76D8\uFF08\u76EE\u5F55\u6216 *.json \u6587\u4EF6\u8DEF\u5F84\uFF09\u5E76\u66F4\u65B0 cli-manifest[-<\u67E5\u8BE2id>].json\uFF1B\u76EE\u5F55\u6A21\u5F0F\u6587\u4EF6\u540D\u4E3A `<section>[-<\u67E5\u8BE2id>].json`\uFF1Bstdout \u4E00\u884C\u6458\u8981 JSON\uFF0C\u542B outlineFile\uFF08TS \u5F0F\u7C7B\u578B\u5728 `*.outline.txt`\uFF09",
|
|
105034
104948
|
void 0
|
|
105035
|
-
).option(
|
|
105036
|
-
"--detail",
|
|
105037
|
-
"\u5408\u5E76\u4F59\u989D\u4E0E\u8FD1\u671F\u6D88\u8017\uFF08\u53CA\u5C55\u793A/\u70B9\u51FB/\u8F6C\u5316/CPC\u3001Arit \u5F97\u5206\uFF09\uFF1B\u672A\u4F20\u65F6 JSON \u4E0D\u542B\u8FD9\u4E9B\u5B57\u6BB5\uFF0C\u5217\u8868\u66F4\u5FEB",
|
|
105038
|
-
false
|
|
105039
104949
|
).option("--unicode", "\u4F7F\u7528 Unicode \u7EBF\u6846\u8868\u683C\uFF08cli-table3\uFF09\uFF1B\u9ED8\u8BA4 ASCII +-|", false).option("--plain", "\u5DF2\u9ED8\u8BA4 ASCII \u7EBF\u6846\uFF0C\u65E0\u9700\u518D\u4F20\uFF1B\u4FDD\u7559\u517C\u5BB9\u65E7\u811A\u672C", false).option(
|
|
105040
104950
|
"--refresh-dp",
|
|
105041
104951
|
"\u5F3A\u5236\u91CD\u62C9 Datapermission \u540E\u518D\u8BF7\u6C42\u5217\u8868\uFF08\u7528\u4E8E\u300C\u7B2C\u4E8C\u6B21\u62C9\u53D6\u5168\u90E8\u5931\u6548\u300D\u7C7B\u4F1A\u8BDD\u5F02\u5E38\u7684\u4E00\u952E\u6392\u67E5\uFF09",
|
|
@@ -105050,7 +104960,6 @@ function register6(program2) {
|
|
|
105050
104960
|
page: opts.page,
|
|
105051
104961
|
pageSize: opts.pageSize,
|
|
105052
104962
|
jsonOut: opts.jsonOut,
|
|
105053
|
-
detail: opts.detail,
|
|
105054
104963
|
unicode: opts.unicode,
|
|
105055
104964
|
refreshDp: opts.refreshDp,
|
|
105056
104965
|
verbose: opts.verbose
|
package/dist/skill/_meta.json
CHANGED
|
@@ -16,12 +16,11 @@ siluzan-tso list-accounts [选项]
|
|
|
16
16
|
| `-p, --page <n>` | 页码(默认 1) |
|
|
17
17
|
| `--page-size <n>` | 每页数量(默认 20) |
|
|
18
18
|
| `--json-out` | 输出原始 JSON |
|
|
19
|
-
| `--detail` | **合并余额与近期消耗**(及展示/点击/转化/CPC、Arit 得分);**未传时 JSON 不含这些字段**,列表更快。**仅适合少量账号**:每户额外并行请求,账号多时明显变慢;全量余额/消耗汇总改用 `balance-scan` / `accounts-digest` |
|
|
20
19
|
| `--unicode` | 表格使用 Unicode 线框;**默认**为 ASCII `+- | ` 线框(兼容各类终端) |
|
|
21
20
|
| `--plain` | 已默认 ASCII,无需再传;保留兼容旧脚本 |
|
|
22
21
|
| `--refresh-dp` | 强制重拉 Datapermission(排查「本页全部 OAuth 失效」类会话异常) |
|
|
23
22
|
|
|
24
|
-
**命令定位**:`list-accounts` 主打**精准查询账号信息**(列表、计数、按名称/ID 找户、`entityId` / `mediaCustomerId` / 币种 /
|
|
23
|
+
**命令定位**:`list-accounts` 主打**精准查询账号信息**(列表、计数、按名称/ID 找户、`entityId` / `mediaCustomerId` / 币种 / 状态等元数据),**不是余额/消耗汇总工具**。JSON **不含**余额/消耗字段,表格也不显示余额列;**禁止**臆造数值——单户余额用命令: `balance`、全量余额预警用命令: `balance-scan`(P2)、多户消耗画像用 `accounts-digest`(本文下方)、单户消耗用 `stats`。
|
|
25
24
|
|
|
26
25
|
### Agent 意图速查(**必读 · 避免多次试探**)
|
|
27
26
|
|
|
@@ -57,10 +56,6 @@ siluzan-tso list-accounts -m Google -k "品牌A" --json-out ./snap
|
|
|
57
56
|
# 只看正常状态
|
|
58
57
|
siluzan-tso list-accounts -m TikTok -s normal --page-size 999 --json-out ./snap
|
|
59
58
|
|
|
60
|
-
# 列表同时带出真实余额与近期消耗(较慢,仅少量账号且用户要余额/消耗时)
|
|
61
|
-
# 注意:全部账号的余额/消耗汇总请改用 balance-scan / accounts-digest,勿用 --detail 全量扫描
|
|
62
|
-
siluzan-tso list-accounts -m Google -k "品牌A" --detail --json-out ./snap
|
|
63
|
-
|
|
64
59
|
# 极少数账户超过 999 条时才翻页(先确认读盘 total > itemCount)
|
|
65
60
|
siluzan-tso list-accounts -m Google --page 2 --page-size 999 --json-out ./snap-p2
|
|
66
61
|
```
|
|
@@ -9,7 +9,7 @@ $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-beta.
|
|
12
|
+
$PKG_VERSION = '1.1.29-beta.21'
|
|
13
13
|
$CLI_BIN = 'siluzan-tso'
|
|
14
14
|
$SKILL_LABEL = 'Siluzan TSO'
|
|
15
15
|
$INSTALL_CMD = 'npm install -g siluzan-tso-cli@beta'
|
|
@@ -9,7 +9,7 @@ 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-beta.
|
|
12
|
+
readonly PKG_VERSION="1.1.29-beta.21"
|
|
13
13
|
readonly CLI_BIN="siluzan-tso"
|
|
14
14
|
readonly SKILL_LABEL="Siluzan TSO"
|
|
15
15
|
readonly INSTALL_CMD="npm install -g siluzan-tso-cli@beta"
|