@zhoujinandrew/te-cli 1.0.0
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 +109 -0
- package/bin/te-cli.js +2 -0
- package/dist/analysis-SFPXKD3E.js +218 -0
- package/dist/audience-AZ72TU5F.js +119 -0
- package/dist/auth-2OVPSXHK.js +19 -0
- package/dist/auth-6QCDAUYV.js +67 -0
- package/dist/auth-CFVQVVQN.js +51 -0
- package/dist/auth-QNSRS5ZR.js +19 -0
- package/dist/auth-V4MDYFHU.js +67 -0
- package/dist/auth-Z652VWDK.js +19 -0
- package/dist/chunk-4YPCK7T5.js +217 -0
- package/dist/chunk-C3VJLU5Y.js +206 -0
- package/dist/chunk-CFCHSAMQ.js +108 -0
- package/dist/chunk-KA66K7EL.js +144 -0
- package/dist/chunk-KAWQCMDL.js +44 -0
- package/dist/chunk-KM57HI5B.js +107 -0
- package/dist/chunk-KNKRSOCY.js +144 -0
- package/dist/chunk-P7NQZGSZ.js +217 -0
- package/dist/chunk-STTYG7WN.js +91 -0
- package/dist/chunk-V3D6XL5Z.js +134 -0
- package/dist/client-CSJ3XBC4.js +16 -0
- package/dist/client-EZSKQFIH.js +16 -0
- package/dist/client-OT7PTMI2.js +16 -0
- package/dist/config-53KUB7OG.js +146 -0
- package/dist/config-QQE7LMPZ.js +40 -0
- package/dist/config-S53L4MQK.js +242 -0
- package/dist/index.js +239 -0
- package/dist/meta-ZXBX5RER.js +135 -0
- package/dist/operation-6POPVVIZ.js +214 -0
- package/dist/raw-76GSW4Q4.js +59 -0
- package/dist/raw-K2FR7QAI.js +55 -0
- package/dist/raw-YVFTDHSI.js +59 -0
- package/package.json +40 -0
- package/skills/te-analysis/SKILL.md +93 -0
- package/skills/te-analysis/references/create-dashboard.md +30 -0
- package/skills/te-analysis/references/get-dashboard.md +24 -0
- package/skills/te-analysis/references/get-report.md +24 -0
- package/skills/te-analysis/references/list-dashboard-reports.md +24 -0
- package/skills/te-analysis/references/list-dashboards.md +23 -0
- package/skills/te-analysis/references/list-reports.md +26 -0
- package/skills/te-analysis/references/query-report-data.md +34 -0
- package/skills/te-analysis/references/query-sql.md +31 -0
- package/skills/te-analysis/references/save-report.md +42 -0
- package/skills/te-analysis/references/update-dashboard.md +33 -0
- package/skills/te-audience/SKILL.md +60 -0
- package/skills/te-audience/references/te-audience-get-tag.md +21 -0
- package/skills/te-audience/references/te-audience-list-audience-events.md +20 -0
- package/skills/te-audience/references/te-audience-list-clusters.md +20 -0
- package/skills/te-audience/references/te-audience-list-tags.md +23 -0
- package/skills/te-audience/references/te-audience-load-audience-props.md +25 -0
- package/skills/te-audience/references/te-audience-predict-cluster-count.md +22 -0
- package/skills/te-meta/SKILL.md +80 -0
- package/skills/te-meta/references/get-table-columns.md +29 -0
- package/skills/te-meta/references/list-entities.md +26 -0
- package/skills/te-meta/references/list-events.md +29 -0
- package/skills/te-meta/references/list-metrics.md +26 -0
- package/skills/te-meta/references/list-tables.md +26 -0
- package/skills/te-meta/references/load-event-props.md +27 -0
- package/skills/te-meta/references/load-measure-props.md +24 -0
- package/skills/te-operation/SKILL.md +75 -0
- package/skills/te-operation/references/te-operation-create-task.md +29 -0
- package/skills/te-operation/references/te-operation-get-channel.md +20 -0
- package/skills/te-operation/references/te-operation-get-flow.md +20 -0
- package/skills/te-operation/references/te-operation-get-space-tree.md +19 -0
- package/skills/te-operation/references/te-operation-get-task-stats.md +20 -0
- package/skills/te-operation/references/te-operation-get-timezone.md +19 -0
- package/skills/te-operation/references/te-operation-list-channels.md +19 -0
- package/skills/te-operation/references/te-operation-list-flows.md +19 -0
- package/skills/te-operation/references/te-operation-list-mark-times.md +19 -0
- package/skills/te-operation/references/te-operation-list-tasks.md +25 -0
- package/skills/te-operation/references/te-operation-save-flow.md +29 -0
- package/skills/te-shared/SKILL.md +115 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import {
|
|
2
|
+
httpGet,
|
|
3
|
+
httpPost
|
|
4
|
+
} from "./chunk-KNKRSOCY.js";
|
|
5
|
+
import {
|
|
6
|
+
printError,
|
|
7
|
+
printOutput
|
|
8
|
+
} from "./chunk-KM57HI5B.js";
|
|
9
|
+
import {
|
|
10
|
+
resolveHost
|
|
11
|
+
} from "./chunk-P7NQZGSZ.js";
|
|
12
|
+
import "./chunk-CFCHSAMQ.js";
|
|
13
|
+
|
|
14
|
+
// src/api/raw.ts
|
|
15
|
+
function registerApi(program) {
|
|
16
|
+
program.command("api").description("Raw API call: te-cli api <METHOD> <PATH> [options]").argument("<method>", "HTTP method (GET, POST)").argument("<path>", "API path (e.g., /v1/ta/event/catalog/listEvent)").option("--params <json>", "URL parameters as JSON").option("--data <json>", "Request body as JSON").action(async (method, apiPath, opts) => {
|
|
17
|
+
const globalOpts = program.opts();
|
|
18
|
+
const host = resolveHost(globalOpts.host);
|
|
19
|
+
const format = globalOpts.format || "json";
|
|
20
|
+
const jq = globalOpts.jq;
|
|
21
|
+
if (!host) {
|
|
22
|
+
printError("config", "No TE host configured.", "Run: te-cli config set-host");
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
let params = {};
|
|
27
|
+
let body = void 0;
|
|
28
|
+
if (opts.params) {
|
|
29
|
+
try {
|
|
30
|
+
params = JSON.parse(opts.params);
|
|
31
|
+
} catch {
|
|
32
|
+
printError("validation", `Invalid JSON for --params: ${opts.params}`);
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (opts.data) {
|
|
37
|
+
try {
|
|
38
|
+
body = JSON.parse(opts.data);
|
|
39
|
+
} catch {
|
|
40
|
+
printError("validation", `Invalid JSON for --data: ${opts.data}`);
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
let result;
|
|
45
|
+
if (method.toUpperCase() === "GET") {
|
|
46
|
+
result = await httpGet(apiPath, params, host);
|
|
47
|
+
} else {
|
|
48
|
+
result = await httpPost(apiPath, params, body, host);
|
|
49
|
+
}
|
|
50
|
+
printOutput(result, format, jq);
|
|
51
|
+
} catch (err) {
|
|
52
|
+
printError("api", err.message);
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
export {
|
|
58
|
+
registerApi
|
|
59
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@zhoujinandrew/te-cli",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "CLI tool for ThinkingEngine (TE) analytics platform",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"te-cli": "bin/te-cli.js"
|
|
8
|
+
},
|
|
9
|
+
"main": "dist/index.js",
|
|
10
|
+
"files": ["bin/", "dist/", "skills/", "README.md"],
|
|
11
|
+
"scripts": {
|
|
12
|
+
"dev": "tsx src/index.ts",
|
|
13
|
+
"build": "tsup src/index.ts --format esm --outDir dist",
|
|
14
|
+
"prepublishOnly": "npm run build",
|
|
15
|
+
"start": "node dist/index.js",
|
|
16
|
+
"test": "npx tsx src/index.ts --help"
|
|
17
|
+
},
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "git+https://github.com/zjandrew/te-cli.git"
|
|
21
|
+
},
|
|
22
|
+
"keywords": ["thinkingengine", "analytics", "cli"],
|
|
23
|
+
"author": "zjandrew",
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"engines": {
|
|
26
|
+
"node": ">=18.0.0"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"cli-table3": "^0.6.5",
|
|
30
|
+
"commander": "^12.1.0",
|
|
31
|
+
"ws": "^8.18.0"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@types/node": "^22.0.0",
|
|
35
|
+
"@types/ws": "^8.5.0",
|
|
36
|
+
"tsup": "^8.0.0",
|
|
37
|
+
"tsx": "^4.0.0",
|
|
38
|
+
"typescript": "^5.5.0"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: te-analysis
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "TE 分析查询:报告管理、仪表盘管理、SQL 查询、报告数据查询"
|
|
5
|
+
metadata:
|
|
6
|
+
requires:
|
|
7
|
+
bins: ["te-cli"]
|
|
8
|
+
cliHelp: "te-cli analysis --help"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# te-analysis
|
|
12
|
+
|
|
13
|
+
> **前置条件:** 使用本技能前,请先阅读 [`te-shared/SKILL.md`](../te-shared/SKILL.md),了解认证、全局参数和安全约束。
|
|
14
|
+
|
|
15
|
+
TE 分析域(`te-cli analysis`)提供报告与仪表盘的管理能力,以及通过 WebSocket 进行数据查询的能力。
|
|
16
|
+
|
|
17
|
+
## 核心场景
|
|
18
|
+
|
|
19
|
+
### 1. 查询数据
|
|
20
|
+
|
|
21
|
+
- **报告数据查询** — 通过 `+query-report-data` 使用 WebSocket 获取已有报告的计算结果
|
|
22
|
+
- **SQL 查询** — 通过 `+query-sql` 直接执行 SQL 查询,灵活获取任意数据
|
|
23
|
+
|
|
24
|
+
### 2. 报告管理
|
|
25
|
+
|
|
26
|
+
- **列出报告** — `+list-reports` 获取项目下所有报告
|
|
27
|
+
- **查看报告** — `+get-report` 获取单个报告的完整定义
|
|
28
|
+
- **保存报告** — `+save-report` 创建或修改报告(write 操作,需确认)
|
|
29
|
+
|
|
30
|
+
### 3. 仪表盘管理
|
|
31
|
+
|
|
32
|
+
- **列出仪表盘** — `+list-dashboards` 获取项目下所有仪表盘
|
|
33
|
+
- **查看仪表盘** — `+get-dashboard` 获取仪表盘详情
|
|
34
|
+
- **创建仪表盘** — `+create-dashboard` 新建仪表盘(write 操作)
|
|
35
|
+
- **更新仪表盘** — `+update-dashboard` 更新仪表盘布局(write 操作)
|
|
36
|
+
- **仪表盘报告列表** — `+list-dashboard-reports` 列出仪表盘中的报告
|
|
37
|
+
|
|
38
|
+
## 示例
|
|
39
|
+
|
|
40
|
+
### 查询已有报告数据
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# 查询报告 ID 为 42 的数据
|
|
44
|
+
te-cli analysis +query-report-data -p 1 --report-id 42
|
|
45
|
+
|
|
46
|
+
# 指定时间范围
|
|
47
|
+
te-cli analysis +query-report-data -p 1 --report-id 42 \
|
|
48
|
+
--start-time "2026-01-01 00:00:00" --end-time "2026-01-31 23:59:59"
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### SQL 自由查询
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# 按事件分组统计
|
|
55
|
+
te-cli analysis +query-sql -p 1 \
|
|
56
|
+
--sql "SELECT event, count(*) FROM ta.v_event_1 GROUP BY event LIMIT 20"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 报告管理流程
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# 列出所有报告
|
|
63
|
+
te-cli analysis +list-reports -p 1
|
|
64
|
+
|
|
65
|
+
# 查看某个报告定义
|
|
66
|
+
te-cli analysis +get-report -p 1 --report-id 42
|
|
67
|
+
|
|
68
|
+
# 创建新报告(write,需确认)
|
|
69
|
+
te-cli analysis +save-report -p 1 --report-name "DAU 趋势" \
|
|
70
|
+
--report-model 0 \
|
|
71
|
+
--events '[...]' --event-view '{...}'
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 仪表盘管理流程
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# 列出仪表盘
|
|
78
|
+
te-cli analysis +list-dashboards -p 1
|
|
79
|
+
|
|
80
|
+
# 创建新仪表盘
|
|
81
|
+
te-cli analysis +create-dashboard -p 1 --dashboard-name "运营日报"
|
|
82
|
+
|
|
83
|
+
# 向仪表盘添加报告
|
|
84
|
+
te-cli analysis +update-dashboard -p 1 --dashboard-id 10 \
|
|
85
|
+
--reports '[{"reportId": 42, "reportWidth": 6, "indexOrder": 0}]'
|
|
86
|
+
|
|
87
|
+
# 查看仪表盘中的报告
|
|
88
|
+
te-cli analysis +list-dashboard-reports -p 1 --dashboard-id 10
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## 参考文档
|
|
92
|
+
|
|
93
|
+
详细的命令 Flags 和用法请查看 [`references/`](./references/) 目录下的各命令文档。
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# analysis +create-dashboard
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 阅读 [`../te-shared/SKILL.md`](../../te-shared/SKILL.md)
|
|
4
|
+
|
|
5
|
+
创建新仪表盘。
|
|
6
|
+
|
|
7
|
+
映射命令: `te-cli analysis +create-dashboard`
|
|
8
|
+
|
|
9
|
+
## Flags
|
|
10
|
+
|
|
11
|
+
| Flag | 类型 | 必填 | 说明 |
|
|
12
|
+
|------|------|------|------|
|
|
13
|
+
| `--project-id` / `-p` | number | 是 | 项目 ID |
|
|
14
|
+
| `--dashboard-name` | string | 是 | 仪表盘名称 |
|
|
15
|
+
|
|
16
|
+
## 安全约束
|
|
17
|
+
|
|
18
|
+
- **risk: write** — 创建仪表盘,请确认仪表盘名称
|
|
19
|
+
- 执行前会要求确认,除非传入 `--yes`
|
|
20
|
+
- 建议先使用 `--dry-run` 预览请求
|
|
21
|
+
|
|
22
|
+
## 示例
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# 创建仪表盘
|
|
26
|
+
te-cli analysis +create-dashboard -p 1 --dashboard-name "运营日报"
|
|
27
|
+
|
|
28
|
+
# 预览请求
|
|
29
|
+
te-cli analysis +create-dashboard -p 1 --dashboard-name "运营日报" --dry-run
|
|
30
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# analysis +get-dashboard
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 阅读 [`../te-shared/SKILL.md`](../../te-shared/SKILL.md)
|
|
4
|
+
|
|
5
|
+
获取仪表盘详情。
|
|
6
|
+
|
|
7
|
+
映射命令: `te-cli analysis +get-dashboard`
|
|
8
|
+
|
|
9
|
+
## Flags
|
|
10
|
+
|
|
11
|
+
| Flag | 类型 | 必填 | 说明 |
|
|
12
|
+
|------|------|------|------|
|
|
13
|
+
| `--project-id` / `-p` | number | 是 | 项目 ID |
|
|
14
|
+
| `--dashboard-id` | number | 是 | 仪表盘 ID |
|
|
15
|
+
|
|
16
|
+
## 示例
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# 获取仪表盘详情
|
|
20
|
+
te-cli analysis +get-dashboard -p 1 --dashboard-id 10
|
|
21
|
+
|
|
22
|
+
# 提取仪表盘名称
|
|
23
|
+
te-cli analysis +get-dashboard -p 1 --dashboard-id 10 --jq '.dashboardName'
|
|
24
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# analysis +get-report
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 阅读 [`../te-shared/SKILL.md`](../../te-shared/SKILL.md)
|
|
4
|
+
|
|
5
|
+
获取单个报告的完整定义。
|
|
6
|
+
|
|
7
|
+
映射命令: `te-cli analysis +get-report`
|
|
8
|
+
|
|
9
|
+
## Flags
|
|
10
|
+
|
|
11
|
+
| Flag | 类型 | 必填 | 说明 |
|
|
12
|
+
|------|------|------|------|
|
|
13
|
+
| `--project-id` / `-p` | number | 是 | 项目 ID |
|
|
14
|
+
| `--report-id` | number | 是 | 报告 ID |
|
|
15
|
+
|
|
16
|
+
## 示例
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# 获取报告定义
|
|
20
|
+
te-cli analysis +get-report -p 1 --report-id 42
|
|
21
|
+
|
|
22
|
+
# 仅提取事件配置
|
|
23
|
+
te-cli analysis +get-report -p 1 --report-id 42 --jq '.events'
|
|
24
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# analysis +list-dashboard-reports
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 阅读 [`../te-shared/SKILL.md`](../../te-shared/SKILL.md)
|
|
4
|
+
|
|
5
|
+
列出仪表盘中包含的所有报告。
|
|
6
|
+
|
|
7
|
+
映射命令: `te-cli analysis +list-dashboard-reports`
|
|
8
|
+
|
|
9
|
+
## Flags
|
|
10
|
+
|
|
11
|
+
| Flag | 类型 | 必填 | 说明 |
|
|
12
|
+
|------|------|------|------|
|
|
13
|
+
| `--project-id` / `-p` | number | 是 | 项目 ID |
|
|
14
|
+
| `--dashboard-id` | number | 是 | 仪表盘 ID |
|
|
15
|
+
|
|
16
|
+
## 示例
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# 列出仪表盘中的报告
|
|
20
|
+
te-cli analysis +list-dashboard-reports -p 1 --dashboard-id 10
|
|
21
|
+
|
|
22
|
+
# 表格格式输出
|
|
23
|
+
te-cli analysis +list-dashboard-reports -p 1 --dashboard-id 10 --format table
|
|
24
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# analysis +list-dashboards
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 阅读 [`../te-shared/SKILL.md`](../../te-shared/SKILL.md)
|
|
4
|
+
|
|
5
|
+
列出项目下所有仪表盘。
|
|
6
|
+
|
|
7
|
+
映射命令: `te-cli analysis +list-dashboards`
|
|
8
|
+
|
|
9
|
+
## Flags
|
|
10
|
+
|
|
11
|
+
| Flag | 类型 | 必填 | 说明 |
|
|
12
|
+
|------|------|------|------|
|
|
13
|
+
| `--project-id` / `-p` | number | 是 | 项目 ID |
|
|
14
|
+
|
|
15
|
+
## 示例
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# 列出所有仪表盘
|
|
19
|
+
te-cli analysis +list-dashboards -p 1
|
|
20
|
+
|
|
21
|
+
# 表格格式输出
|
|
22
|
+
te-cli analysis +list-dashboards -p 1 --format table
|
|
23
|
+
```
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# analysis +list-reports
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 阅读 [`../te-shared/SKILL.md`](../../te-shared/SKILL.md)
|
|
4
|
+
|
|
5
|
+
列出项目下所有报告。
|
|
6
|
+
|
|
7
|
+
映射命令: `te-cli analysis +list-reports`
|
|
8
|
+
|
|
9
|
+
## Flags
|
|
10
|
+
|
|
11
|
+
| Flag | 类型 | 必填 | 说明 |
|
|
12
|
+
|------|------|------|------|
|
|
13
|
+
| `--project-id` / `-p` | number | 是 | 项目 ID |
|
|
14
|
+
|
|
15
|
+
## 示例
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# 列出项目 1 的所有报告
|
|
19
|
+
te-cli analysis +list-reports -p 1
|
|
20
|
+
|
|
21
|
+
# 以表格格式输出
|
|
22
|
+
te-cli analysis +list-reports -p 1 --format table
|
|
23
|
+
|
|
24
|
+
# 用 jq 提取报告名称
|
|
25
|
+
te-cli analysis +list-reports -p 1 --jq '.[].reportName'
|
|
26
|
+
```
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# analysis +query-report-data
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 阅读 [`../te-shared/SKILL.md`](../../te-shared/SKILL.md)
|
|
4
|
+
|
|
5
|
+
通过 WebSocket 查询报告数据,获取报告的计算结果。
|
|
6
|
+
|
|
7
|
+
映射命令: `te-cli analysis +query-report-data`
|
|
8
|
+
|
|
9
|
+
## Flags
|
|
10
|
+
|
|
11
|
+
| Flag | 类型 | 必填 | 说明 |
|
|
12
|
+
|------|------|------|------|
|
|
13
|
+
| `--project-id` / `-p` | number | 是 | 项目 ID |
|
|
14
|
+
| `--report-id` | number | 是 | 报告 ID |
|
|
15
|
+
| `--dashboard-id` | number | 否 | 仪表盘 ID(从仪表盘上下文查询时指定) |
|
|
16
|
+
| `--start-time` | string | 否 | 开始时间,格式 `YYYY-MM-DD HH:mm:ss` |
|
|
17
|
+
| `--end-time` | string | 否 | 结束时间,格式 `YYYY-MM-DD HH:mm:ss` |
|
|
18
|
+
|
|
19
|
+
## 示例
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
# 查询报告数据(使用报告默认时间范围)
|
|
23
|
+
te-cli analysis +query-report-data -p 1 --report-id 42
|
|
24
|
+
|
|
25
|
+
# 指定时间范围
|
|
26
|
+
te-cli analysis +query-report-data -p 1 --report-id 42 \
|
|
27
|
+
--start-time "2026-01-01 00:00:00" --end-time "2026-01-31 23:59:59"
|
|
28
|
+
|
|
29
|
+
# 从仪表盘上下文查询
|
|
30
|
+
te-cli analysis +query-report-data -p 1 --report-id 42 --dashboard-id 10
|
|
31
|
+
|
|
32
|
+
# 用 jq 提取结果
|
|
33
|
+
te-cli analysis +query-report-data -p 1 --report-id 42 --jq '.data'
|
|
34
|
+
```
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# analysis +query-sql
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 阅读 [`../te-shared/SKILL.md`](../../te-shared/SKILL.md)
|
|
4
|
+
|
|
5
|
+
通过 WebSocket 执行 SQL 查询,灵活获取任意数据。
|
|
6
|
+
|
|
7
|
+
映射命令: `te-cli analysis +query-sql`
|
|
8
|
+
|
|
9
|
+
## Flags
|
|
10
|
+
|
|
11
|
+
| Flag | 类型 | 必填 | 说明 |
|
|
12
|
+
|------|------|------|------|
|
|
13
|
+
| `--project-id` / `-p` | number | 是 | 项目 ID |
|
|
14
|
+
| `--sql` | string | 是 | SQL 查询语句 |
|
|
15
|
+
|
|
16
|
+
## 示例
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# 按事件分组统计
|
|
20
|
+
te-cli analysis +query-sql -p 1 \
|
|
21
|
+
--sql "SELECT event, count(*) FROM ta.v_event_1 GROUP BY event LIMIT 20"
|
|
22
|
+
|
|
23
|
+
# 查询用户属性
|
|
24
|
+
te-cli analysis +query-sql -p 1 \
|
|
25
|
+
--sql "SELECT * FROM ta.v_user_1 LIMIT 10"
|
|
26
|
+
|
|
27
|
+
# 用 jq 提取特定字段
|
|
28
|
+
te-cli analysis +query-sql -p 1 \
|
|
29
|
+
--sql "SELECT event, count(*) as cnt FROM ta.v_event_1 GROUP BY event LIMIT 20" \
|
|
30
|
+
--jq '.data'
|
|
31
|
+
```
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# analysis +save-report
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 阅读 [`../te-shared/SKILL.md`](../../te-shared/SKILL.md)
|
|
4
|
+
|
|
5
|
+
创建或更新报告定义。
|
|
6
|
+
|
|
7
|
+
映射命令: `te-cli analysis +save-report`
|
|
8
|
+
|
|
9
|
+
## Flags
|
|
10
|
+
|
|
11
|
+
| Flag | 类型 | 必填 | 说明 |
|
|
12
|
+
|------|------|------|------|
|
|
13
|
+
| `--project-id` / `-p` | number | 是 | 项目 ID |
|
|
14
|
+
| `--report-name` | string | 是 | 报告名称 |
|
|
15
|
+
| `--report-model` | number | 是 | 报告模型类型:0=Event, 1=Retention, 2=Funnel, 10=Distribution |
|
|
16
|
+
| `--events` | json | 是 | 事件配置 JSON |
|
|
17
|
+
| `--event-view` | json | 是 | 事件视图配置 JSON |
|
|
18
|
+
|
|
19
|
+
## 安全约束
|
|
20
|
+
|
|
21
|
+
- **risk: write** — 创建或修改报告,请确认报告名称和配置
|
|
22
|
+
- 执行前会要求确认,除非传入 `--yes`
|
|
23
|
+
- 建议先使用 `--dry-run` 预览请求
|
|
24
|
+
|
|
25
|
+
## 示例
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# 创建事件分析报告
|
|
29
|
+
te-cli analysis +save-report -p 1 \
|
|
30
|
+
--report-name "DAU 趋势" \
|
|
31
|
+
--report-model 0 \
|
|
32
|
+
--events '[{"eventName":"ta_session"}]' \
|
|
33
|
+
--event-view '{"timeRange":"last_7_days"}'
|
|
34
|
+
|
|
35
|
+
# 预览请求(不实际执行)
|
|
36
|
+
te-cli analysis +save-report -p 1 \
|
|
37
|
+
--report-name "留存分析" \
|
|
38
|
+
--report-model 1 \
|
|
39
|
+
--events '[...]' \
|
|
40
|
+
--event-view '{...}' \
|
|
41
|
+
--dry-run
|
|
42
|
+
```
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# analysis +update-dashboard
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 阅读 [`../te-shared/SKILL.md`](../../te-shared/SKILL.md)
|
|
4
|
+
|
|
5
|
+
更新仪表盘布局,设置仪表盘中包含的报告及其排列。
|
|
6
|
+
|
|
7
|
+
映射命令: `te-cli analysis +update-dashboard`
|
|
8
|
+
|
|
9
|
+
## Flags
|
|
10
|
+
|
|
11
|
+
| Flag | 类型 | 必填 | 说明 |
|
|
12
|
+
|------|------|------|------|
|
|
13
|
+
| `--project-id` / `-p` | number | 是 | 项目 ID |
|
|
14
|
+
| `--dashboard-id` | number | 是 | 仪表盘 ID |
|
|
15
|
+
| `--reports` | json | 是 | 报告布局配置:`[{reportId, reportWidth?, indexOrder}]` |
|
|
16
|
+
|
|
17
|
+
## 安全约束
|
|
18
|
+
|
|
19
|
+
- **risk: write** — 更新仪表盘布局,请确认仪表盘 ID 和报告配置
|
|
20
|
+
- 执行前会要求确认,除非传入 `--yes`
|
|
21
|
+
- 建议先使用 `--dry-run` 预览请求
|
|
22
|
+
|
|
23
|
+
## 示例
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# 设置仪表盘包含两个报告
|
|
27
|
+
te-cli analysis +update-dashboard -p 1 --dashboard-id 10 \
|
|
28
|
+
--reports '[{"reportId": 42, "reportWidth": 6, "indexOrder": 0}, {"reportId": 43, "reportWidth": 6, "indexOrder": 1}]'
|
|
29
|
+
|
|
30
|
+
# 预览请求
|
|
31
|
+
te-cli analysis +update-dashboard -p 1 --dashboard-id 10 \
|
|
32
|
+
--reports '[{"reportId": 42, "indexOrder": 0}]' --dry-run
|
|
33
|
+
```
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: te-audience
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "TE 受众管理:用户标签、分群、受众属性"
|
|
5
|
+
metadata:
|
|
6
|
+
requires:
|
|
7
|
+
bins: ["te-cli"]
|
|
8
|
+
cliHelp: "te-cli audience --help"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# te-audience
|
|
12
|
+
|
|
13
|
+
> **前置条件:** 阅读 [`../te-shared/SKILL.md`] 了解认证、项目选择和通用约定。
|
|
14
|
+
|
|
15
|
+
## 概述
|
|
16
|
+
|
|
17
|
+
`te-audience` 域负责 TE 平台的受众管理能力,包括:
|
|
18
|
+
|
|
19
|
+
- **用户标签** — 查询和管理用户标签体系
|
|
20
|
+
- **用户分群** — 查看分群列表、预估分群人数
|
|
21
|
+
- **受众事件** — 获取受众相关事件定义
|
|
22
|
+
- **受众属性** — 加载受众属性(用户属性、事件属性等)
|
|
23
|
+
|
|
24
|
+
所有命令通过 `te-cli audience +<command>` 调用。
|
|
25
|
+
|
|
26
|
+
## 核心场景
|
|
27
|
+
|
|
28
|
+
### 1. 查看用户标签体系
|
|
29
|
+
```bash
|
|
30
|
+
# 列出项目下所有用户标签
|
|
31
|
+
te-cli audience +list-tags -p <project-id>
|
|
32
|
+
|
|
33
|
+
# 获取某个标签的详细信息
|
|
34
|
+
te-cli audience +get-tag -p <project-id> --tag-id 42
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 2. 用户分群管理
|
|
38
|
+
```bash
|
|
39
|
+
# 列出所有用户分群
|
|
40
|
+
te-cli audience +list-clusters -p <project-id>
|
|
41
|
+
|
|
42
|
+
# 预估满足条件的实体数量
|
|
43
|
+
te-cli audience +predict-cluster-count -p <project-id> --conditions '{"property":"age","op":"gt","value":18}'
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 3. 受众事件与属性
|
|
47
|
+
```bash
|
|
48
|
+
# 列出受众事件
|
|
49
|
+
te-cli audience +list-audience-events -p <project-id>
|
|
50
|
+
|
|
51
|
+
# 加载受众属性(并行调用 3 个 API)
|
|
52
|
+
te-cli audience +load-audience-props -p <project-id>
|
|
53
|
+
|
|
54
|
+
# 可选传入 events 过滤
|
|
55
|
+
te-cli audience +load-audience-props -p <project-id> --events '[{"name":"login"}]'
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## 参考文档
|
|
59
|
+
|
|
60
|
+
详见 `references/` 目录下各命令文档。
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# te-audience +get-tag
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 阅读 [`../te-shared/SKILL.md`]
|
|
4
|
+
|
|
5
|
+
获取指定标签的详细信息。
|
|
6
|
+
|
|
7
|
+
映射命令: `te-cli audience +get-tag`
|
|
8
|
+
|
|
9
|
+
## Flags
|
|
10
|
+
|
|
11
|
+
| Flag | 类型 | 必填 | 说明 |
|
|
12
|
+
|------|------|------|------|
|
|
13
|
+
| `--project-id` / `-p` | string | 否 | 项目 ID,未指定时使用默认项目 |
|
|
14
|
+
| `--tag-id` | number | 是 | 标签 ID |
|
|
15
|
+
|
|
16
|
+
## 示例
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# 获取标签 ID 为 42 的详情
|
|
20
|
+
te-cli audience +get-tag -p my-project --tag-id 42
|
|
21
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# te-audience +list-audience-events
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 阅读 [`../te-shared/SKILL.md`]
|
|
4
|
+
|
|
5
|
+
列出项目下的受众事件定义。
|
|
6
|
+
|
|
7
|
+
映射命令: `te-cli audience +list-audience-events`
|
|
8
|
+
|
|
9
|
+
## Flags
|
|
10
|
+
|
|
11
|
+
| Flag | 类型 | 必填 | 说明 |
|
|
12
|
+
|------|------|------|------|
|
|
13
|
+
| `--project-id` / `-p` | string | 否 | 项目 ID,未指定时使用默认项目 |
|
|
14
|
+
|
|
15
|
+
## 示例
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# 列出受众事件
|
|
19
|
+
te-cli audience +list-audience-events -p my-project
|
|
20
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# te-audience +list-clusters
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 阅读 [`../te-shared/SKILL.md`]
|
|
4
|
+
|
|
5
|
+
列出项目下所有用户分群。
|
|
6
|
+
|
|
7
|
+
映射命令: `te-cli audience +list-clusters`
|
|
8
|
+
|
|
9
|
+
## Flags
|
|
10
|
+
|
|
11
|
+
| Flag | 类型 | 必填 | 说明 |
|
|
12
|
+
|------|------|------|------|
|
|
13
|
+
| `--project-id` / `-p` | string | 否 | 项目 ID,未指定时使用默认项目 |
|
|
14
|
+
|
|
15
|
+
## 示例
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# 列出所有用户分群
|
|
19
|
+
te-cli audience +list-clusters -p my-project
|
|
20
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# te-audience +list-tags
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 阅读 [`../te-shared/SKILL.md`]
|
|
4
|
+
|
|
5
|
+
列出项目下所有用户标签。
|
|
6
|
+
|
|
7
|
+
映射命令: `te-cli audience +list-tags`
|
|
8
|
+
|
|
9
|
+
## Flags
|
|
10
|
+
|
|
11
|
+
| Flag | 类型 | 必填 | 说明 |
|
|
12
|
+
|------|------|------|------|
|
|
13
|
+
| `--project-id` / `-p` | string | 否 | 项目 ID,未指定时使用默认项目 |
|
|
14
|
+
|
|
15
|
+
## 示例
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# 列出默认项目的用户标签
|
|
19
|
+
te-cli audience +list-tags
|
|
20
|
+
|
|
21
|
+
# 指定项目
|
|
22
|
+
te-cli audience +list-tags -p my-project
|
|
23
|
+
```
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# te-audience +load-audience-props
|
|
2
|
+
|
|
3
|
+
> **前置条件:** 阅读 [`../te-shared/SKILL.md`]
|
|
4
|
+
|
|
5
|
+
加载受众属性信息。内部并行调用 3 个 API 以提升性能。
|
|
6
|
+
|
|
7
|
+
映射命令: `te-cli audience +load-audience-props`
|
|
8
|
+
|
|
9
|
+
## Flags
|
|
10
|
+
|
|
11
|
+
| Flag | 类型 | 必填 | 说明 |
|
|
12
|
+
|------|------|------|------|
|
|
13
|
+
| `--project-id` / `-p` | string | 否 | 项目 ID,未指定时使用默认项目 |
|
|
14
|
+
| `--events` | json | 否 | 事件过滤条件 JSON |
|
|
15
|
+
|
|
16
|
+
## 示例
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# 加载所有受众属性
|
|
20
|
+
te-cli audience +load-audience-props -p my-project
|
|
21
|
+
|
|
22
|
+
# 传入事件过滤条件
|
|
23
|
+
te-cli audience +load-audience-props -p my-project \
|
|
24
|
+
--events '[{"name":"login"},{"name":"purchase"}]'
|
|
25
|
+
```
|