@jiangzhx/adcli 0.1.2 → 0.1.4
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 +144 -36
- package/dist/cli.js +4661 -1231
- package/docs/commands.md +271 -4
- package/package.json +26 -2
package/README.md
CHANGED
|
@@ -1,94 +1,202 @@
|
|
|
1
1
|
# AdCLI
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
AdCLI 是一个广告平台 API 文档查询 CLI。它默认使用线上发布的文档包,帮助开发者和 AI Agent 快速定位快手磁力引擎、巨量引擎、腾讯广告等平台的接口文档。
|
|
4
|
+
|
|
5
|
+
线上文档入口:
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
https://adcli.jiangzhx.com/llms.txt
|
|
9
|
+
https://adcli.jiangzhx.com/llms-full.txt
|
|
10
|
+
https://adcli.jiangzhx.com/search-index.json
|
|
11
|
+
```
|
|
4
12
|
|
|
5
13
|
项目当前是 Bun + TypeScript CLI,不使用 Next.js。
|
|
6
14
|
|
|
7
|
-
##
|
|
15
|
+
## Monorepo
|
|
16
|
+
|
|
17
|
+
当前仓库使用 Bun workspace 管理:
|
|
8
18
|
|
|
9
|
-
|
|
19
|
+
- 根包:`@jiangzhx/adcli`,负责 CLI 和文档包生成。
|
|
20
|
+
- SDK 子包:`packages/*`,每个媒体平台 SDK 独立维护。
|
|
21
|
+
|
|
22
|
+
已存在的 SDK:
|
|
23
|
+
|
|
24
|
+
- `packages/oceanengine-ad-open-sdk`: 巨量广告开放平台 OpenAPI SDK。
|
|
25
|
+
|
|
26
|
+
后续新增广点通等媒体 SDK 时,按平台官方 API 名称放到独立子包,例如 `packages/tencentad-marketing-api-sdk/`。
|
|
27
|
+
|
|
28
|
+
## 安装
|
|
10
29
|
|
|
11
30
|
```bash
|
|
12
31
|
node --version
|
|
13
32
|
npm install -g @jiangzhx/adcli
|
|
14
|
-
adcli doc search "广点通 广告消耗"
|
|
15
33
|
```
|
|
16
34
|
|
|
17
|
-
|
|
35
|
+
安装后确认:
|
|
18
36
|
|
|
19
37
|
```bash
|
|
20
|
-
|
|
38
|
+
adcli list
|
|
21
39
|
adcli doc search "广告消耗"
|
|
22
40
|
```
|
|
23
41
|
|
|
24
|
-
|
|
42
|
+
也可以从 GitHub 安装当前代码:
|
|
25
43
|
|
|
26
44
|
```bash
|
|
27
|
-
|
|
28
|
-
bun run build:cli
|
|
29
|
-
npm install -g .
|
|
30
|
-
adcli doc search "广告消耗"
|
|
45
|
+
npm install -g github:jiangzhx/adcli
|
|
31
46
|
```
|
|
32
47
|
|
|
33
|
-
|
|
48
|
+
## 常用命令
|
|
34
49
|
|
|
35
|
-
|
|
36
|
-
|
|
50
|
+
列出当前支持的平台和能力:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
adcli list
|
|
54
|
+
adcli list kuaishou
|
|
37
55
|
```
|
|
38
56
|
|
|
39
|
-
|
|
57
|
+
搜索文档:
|
|
40
58
|
|
|
41
59
|
```bash
|
|
42
|
-
adcli doc
|
|
43
|
-
adcli doc search "广告消耗" --
|
|
60
|
+
adcli doc search "广点通 广告消耗"
|
|
61
|
+
adcli doc search "广告消耗" --platform tencent_ads
|
|
62
|
+
adcli doc search "广告消耗" --limit 5
|
|
63
|
+
adcli doc search "广告消耗" --json
|
|
44
64
|
```
|
|
45
65
|
|
|
46
|
-
|
|
66
|
+
刷新本地搜索索引缓存:
|
|
47
67
|
|
|
48
68
|
```bash
|
|
49
|
-
adcli doc
|
|
69
|
+
adcli doc sync
|
|
70
|
+
adcli doc search "广告消耗" --refresh
|
|
50
71
|
```
|
|
51
72
|
|
|
52
|
-
|
|
73
|
+
输出给 AI / Agent 使用的文档入口:
|
|
53
74
|
|
|
54
75
|
```bash
|
|
55
|
-
adcli list
|
|
56
|
-
adcli list kuaishou
|
|
57
76
|
adcli llms
|
|
58
77
|
adcli prompt
|
|
59
78
|
```
|
|
60
79
|
|
|
61
|
-
|
|
80
|
+
调用巨量引擎 SDK。可以先保存一次 token,后续命令会自动读取:
|
|
81
|
+
|
|
82
|
+
| 命令 | 作用 | 默认输出 |
|
|
83
|
+
| --- | --- | --- |
|
|
84
|
+
| `adcli oceanengine auth <token>` | 保存巨量引擎 access token | 保存结果 |
|
|
85
|
+
| `adcli oceanengine advertiser list` | 拉取当前 token 授权的广告主列表 | `advertiser_id`、`name` |
|
|
86
|
+
| `adcli oceanengine project list --advertiser-id <id>` | 拉取广告主下的项目列表 | `project_id`、`name` |
|
|
87
|
+
| `adcli oceanengine promotion list --advertiser-id <id>` | 拉取广告主下的广告列表 | `promotion_id`、`name` |
|
|
88
|
+
|
|
89
|
+
常用示例:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
adcli oceanengine auth <token>
|
|
93
|
+
adcli oceanengine advertiser list --json
|
|
94
|
+
adcli oceanengine project list --advertiser-id <advertiser_id> --page 1 --page-size 20
|
|
95
|
+
adcli oceanengine project list --advertiser-id <advertiser_id> --filtering '{"status":"PROJECT_STATUS_ALL"}'
|
|
96
|
+
adcli oceanengine promotion list --advertiser-id <advertiser_id> --project-id <project_id>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
token 优先级为 `--access-token`、`OCEANENGINE_ACCESS_TOKEN`、本地保存的 token。
|
|
100
|
+
本地 token 会保存到同一个 AdCLI 缓存目录,例如 macOS 上是 `~/Library/Caches/adcli/oceanengine.json`。
|
|
101
|
+
巨量 `project/list` 默认不返回已删除项目;需要包含已删除时传 `--filtering '{"status":"PROJECT_STATUS_ALL"}'`。
|
|
102
|
+
|
|
103
|
+
调用腾讯广告 SDK。命令名按腾讯广告 v3 API 资源定义,`--advertiser-id` 可作为 `--account-id` 的别名:
|
|
104
|
+
|
|
105
|
+
| 命令 | 作用 | 默认输出 |
|
|
106
|
+
| --- | --- | --- |
|
|
107
|
+
| `adcli tencent-ads auth <token>` | 保存腾讯广告 access token | 保存结果 |
|
|
108
|
+
| `adcli tencent-ads advertiser list` | 拉取账号列表 | `account_id`、`name` |
|
|
109
|
+
| `adcli tencent-ads advertiser get --account-id <id>` | 拉取单个账号详情 | `account_id`、`name` |
|
|
110
|
+
| `adcli tencent-ads adgroup list --account-id <id>` | 拉取账号下的营销单元列表 | `adgroup_id`、`name` |
|
|
111
|
+
| `adcli tencent-ads dynamic-creative list --account-id <id>` | 拉取账号下的创意列表 | `dynamic_creative_id`、`name` |
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
adcli tencent-ads auth <token>
|
|
115
|
+
adcli tencent-ads advertiser list --json
|
|
116
|
+
adcli tencent-ads advertiser get --account-id <account_id> --json
|
|
117
|
+
adcli tencent-ads adgroup list --account-id <account_id> --page 1 --page-size 20
|
|
118
|
+
adcli tencent-ads dynamic-creative list --account-id <account_id> --filtering '{"adgroup_id":"<adgroup_id>"}'
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
token 优先级为 `--access-token`、`TENCENT_ADS_ACCESS_TOKEN`、本地保存的 token。
|
|
122
|
+
`advertiser list` 对齐 fujian,走 `organization_account_relation/get`;`advertiser get` 才走 `advertiser/get`。
|
|
123
|
+
腾讯广告 CLI 不做跨平台层级别名,`adgroup` 对应 v3.0 `adgroups/get`,`dynamic-creative` 对应 v3.0 `dynamic_creatives/get`。资源过滤统一传 `--filtering` JSON。
|
|
124
|
+
|
|
125
|
+
完整命令说明见 [docs/commands.md](docs/commands.md)。
|
|
126
|
+
|
|
127
|
+
## 搜索索引缓存
|
|
128
|
+
|
|
129
|
+
`adcli doc search` 默认读取线上索引:
|
|
130
|
+
|
|
131
|
+
```text
|
|
132
|
+
https://adcli.jiangzhx.com/search-index.json
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
第一次搜索会下载索引并缓存到系统标准缓存目录:
|
|
136
|
+
|
|
137
|
+
- macOS: `~/Library/Caches/adcli/search-index.json`
|
|
138
|
+
- Linux: `${XDG_CACHE_HOME:-~/.cache}/adcli/search-index.json`
|
|
139
|
+
- Windows: `%LOCALAPPDATA%/adcli/Cache/search-index.json`
|
|
140
|
+
|
|
141
|
+
巨量引擎 token 也按缓存处理,保存到同目录的 `oceanengine.json`。
|
|
142
|
+
|
|
143
|
+
本地调试可指定索引文件:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
adcli doc search "广告消耗" --index public/search-index.json
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## 维护者工作流
|
|
150
|
+
|
|
151
|
+
安装开发依赖:
|
|
62
152
|
|
|
63
153
|
```bash
|
|
64
154
|
bun install
|
|
65
|
-
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
常用校验:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
66
160
|
bun run test
|
|
67
161
|
bun run typecheck
|
|
162
|
+
bun run sdk:test
|
|
163
|
+
bun run sdk:typecheck
|
|
68
164
|
bun run lint
|
|
165
|
+
bun run build
|
|
69
166
|
```
|
|
70
167
|
|
|
71
|
-
|
|
168
|
+
重新生成发布产物:
|
|
72
169
|
|
|
73
170
|
```bash
|
|
74
171
|
bun run build:llms all
|
|
75
172
|
```
|
|
76
173
|
|
|
77
|
-
|
|
174
|
+
采集导航树未收录但可直达的单个官方文档:
|
|
78
175
|
|
|
79
176
|
```bash
|
|
80
|
-
bun run
|
|
177
|
+
bun run ingest:url https://open.oceanengine.com/labels/7/docs/<doc_id>
|
|
178
|
+
bun run ingest:url https://open.oceanengine.com/labels/7/docs/<doc_id> --platform oceanengine
|
|
179
|
+
bun run build:llms --url https://open.oceanengine.com/labels/7/docs/<doc_id>
|
|
81
180
|
```
|
|
82
181
|
|
|
83
|
-
|
|
182
|
+
`ingest:url` 会从 URL 自动识别平台并从页面解析标题,不支持手动传标题。
|
|
183
|
+
|
|
184
|
+
`build:llms --url` 只重写该 URL 对应的 Markdown 文档,并更新平台索引、manifest、`llms` 和搜索索引。
|
|
185
|
+
|
|
186
|
+
只重建搜索索引:
|
|
84
187
|
|
|
85
188
|
```bash
|
|
86
|
-
|
|
189
|
+
bun run build:search-index
|
|
87
190
|
```
|
|
88
191
|
|
|
89
|
-
|
|
192
|
+
构建 CLI 发布文件:
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
bun run build:cli
|
|
196
|
+
npm pack --dry-run
|
|
197
|
+
```
|
|
90
198
|
|
|
91
|
-
##
|
|
199
|
+
## 发布产物
|
|
92
200
|
|
|
93
201
|
```text
|
|
94
202
|
public/llms.txt
|
|
@@ -99,18 +207,18 @@ public/{platform}/manifest.json
|
|
|
99
207
|
public/{platform}/docs/{doc_id}.md
|
|
100
208
|
```
|
|
101
209
|
|
|
210
|
+
`public/` 是可发布文档包;`data/` 是维护者本地采集数据,不提交。
|
|
211
|
+
|
|
102
212
|
## 数据流
|
|
103
213
|
|
|
104
214
|
```text
|
|
105
215
|
recipes/
|
|
106
216
|
-> discover / ingest
|
|
107
|
-
-> data/sources/{platform}/{source_id}/cleaned.md
|
|
217
|
+
-> data/sources/{platform}/{source_id}/cleaned.md
|
|
108
218
|
-> build:llms
|
|
109
219
|
-> public/
|
|
110
220
|
```
|
|
111
221
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
## 未来 MCP 服务
|
|
222
|
+
`discover:sources` 的 recipe 文件是平台级配置:顶层写一次 `platform`,多个发现来源放在 `sources` 数组。`recipes/oceanengine-open-platform-docs.json` 同时包含官方导航树 discovery 和飞书文档 URL 清单 discovery,维护时跑同一个文件即可。飞书文档来源依赖 `@larksuite/cli` 提供的 `lark-cli`;`bun install` 会安装它,首次使用前需要完成 `lark-cli config init --new` 和 `lark-cli auth login --recommend`。
|
|
115
223
|
|
|
116
|
-
|
|
224
|
+
更多文档包说明见 [docs/llms.md](docs/llms.md)。
|