@sokeai/cli 1.0.41 → 1.0.54
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 +1 -24
- package/package.json +3 -2
- package/scripts/build-binaries.sh +1 -30
- package/scripts/e2e-test.sh +63 -3
- package/scripts/install.js +52 -110
- package/scripts/local-test.js +10 -85
- package/scripts/local-test.sh +52 -7
- package/scripts/push.sh +12 -4
- package/scripts/release.sh +50 -40
- package/scripts/test-auto-detect.js +71 -48
- package/skills/README.md +0 -1
- package/skills/oss-upload/skill.md +50 -0
- package/skills/oss-upload/upload.py +355 -0
- package/skills/soke-assign/README.md +310 -0
- package/skills/soke-assign/SKILL.md +383 -0
- package/skills/soke-course/README.md +168 -92
- package/skills/soke-course/SKILL.md +372 -460
- package/skills/soke-exam/SKILL.md +565 -0
- package/skills/soke-exam/references/exam-get-exam-user.md +212 -0
- package/skills/soke-learning-map/SKILL.md +544 -0
- package/skills/soke-learning-profile/SKILL.md +0 -1
- package/skills/soke-lesson/README.md +53 -0
- package/skills/soke-lesson/SKILL.md +510 -0
- package/skills/soke-material/README.md +49 -0
- package/skills/soke-material/SKILL.md +390 -0
- package/scripts/ci/check-legacy-constants.sh +0 -27
- package/scripts/ci/check-yaml-env-whitelist.sh +0 -33
- package/scripts/mcp-stdout-scan.sh +0 -46
- package/scripts/regress-auth.sh +0 -56
- package/scripts/regress-baseline.md +0 -84
- package/scripts/test-local-reconcile.js +0 -55
- package/skills/soke-business-training-report/SKILL.md +0 -58
- package/skills/soke-course/SUMMARY.md +0 -236
- package/skills/soke-course/templates/batch-create-from-excel.md +0 -75
|
@@ -1,131 +1,188 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 授客课程管理 Skill
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
完整的课程生命周期管理,集成素材库和课件管理子 skills,提供模块化的课程内容管理。
|
|
4
4
|
|
|
5
5
|
## 功能概述
|
|
6
6
|
|
|
7
|
-
这个 skill
|
|
7
|
+
这个 skill 提供了完整的课程管理功能,包括:
|
|
8
8
|
|
|
9
|
-
- 📚
|
|
10
|
-
- 🏷️ **分类管理**:
|
|
11
|
-
-
|
|
9
|
+
- 📚 **课程管理**: 创建、更新、发布、查询课程
|
|
10
|
+
- 🏷️ **分类管理**: 查询和管理课程分类
|
|
11
|
+
- 📦 **素材管理**: 集成 soke-material skill,管理素材库
|
|
12
|
+
- 📝 **课件管理**: 集成 soke-lesson skill,管理课程课件
|
|
12
13
|
- 👥 **学习记录**: 查询用户的课程学习记录
|
|
13
14
|
- 📊 **学习统计**: 查询课件学习记录和人脸识别记录
|
|
14
15
|
|
|
15
|
-
##
|
|
16
|
+
## 集成的子 Skills
|
|
16
17
|
|
|
17
|
-
###
|
|
18
|
+
### 📦 soke-material - 素材库管理
|
|
19
|
+
负责文件上传和素材管理
|
|
20
|
+
- [详细文档](../soke-material/SKILL.md)
|
|
18
21
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
2. 配置认证
|
|
25
|
-
```bash
|
|
26
|
-
soke-cli config init
|
|
27
|
-
soke-cli auth login
|
|
28
|
-
```
|
|
22
|
+
### 📚 soke-lesson - 课件管理
|
|
23
|
+
负责课件的创建和管理
|
|
24
|
+
- [详细文档](../soke-lesson/SKILL.md)
|
|
29
25
|
|
|
30
|
-
|
|
26
|
+
## 快速开始
|
|
31
27
|
|
|
32
|
-
|
|
28
|
+
### 创建课程
|
|
33
29
|
|
|
34
30
|
```bash
|
|
35
|
-
#
|
|
36
|
-
soke-cli course +list-
|
|
37
|
-
--start-time 1704038400000 \
|
|
38
|
-
--end-time 1735660799000
|
|
39
|
-
|
|
40
|
-
# 查询已发布的课程
|
|
41
|
-
soke-cli course +list-courses \
|
|
42
|
-
--start-time 1704038400000 \
|
|
43
|
-
--end-time 1735660799000 \
|
|
44
|
-
--status 1
|
|
45
|
-
|
|
46
|
-
# 查询自建课
|
|
47
|
-
soke-cli course +list-courses \
|
|
48
|
-
--start-time 1704038400000 \
|
|
49
|
-
--end-time 1735660799000 \
|
|
50
|
-
--is-in 1
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
#### 查询课程详情
|
|
31
|
+
# 1. 查询课程分类,获取 category-id
|
|
32
|
+
soke-cli course +list-categories
|
|
54
33
|
|
|
55
|
-
|
|
56
|
-
soke-cli course +
|
|
34
|
+
# 2. 创建课程(使用上一步获取的 category-id)
|
|
35
|
+
soke-cli course +create --title "Go语言入门" --category-id "CATEGORY-UUID"
|
|
36
|
+
|
|
37
|
+
# 3. 上传素材
|
|
38
|
+
soke-cli file +upload --file ./lesson1.mp4
|
|
39
|
+
|
|
40
|
+
# 4. 创建课件
|
|
41
|
+
soke-cli course +lesson-create \
|
|
42
|
+
--course-id "COURSE-UUID" \
|
|
43
|
+
--title "第一课" \
|
|
44
|
+
--media-id "MATERIAL-UUID" \
|
|
45
|
+
--type "video" \
|
|
46
|
+
--length 600 \
|
|
47
|
+
--object "path/to/file.mp4" \
|
|
48
|
+
--filename "lesson1.mp4" \
|
|
49
|
+
--ext "mp4" \
|
|
50
|
+
--filesize 10485760
|
|
51
|
+
|
|
52
|
+
# 5. 发布课程
|
|
53
|
+
soke-cli course +publish --course-id "COURSE-UUID"
|
|
57
54
|
```
|
|
58
55
|
|
|
59
|
-
|
|
56
|
+
### 查询课程
|
|
60
57
|
|
|
61
58
|
```bash
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
# 查询课程列表
|
|
60
|
+
soke-cli course +list-courses
|
|
64
61
|
|
|
65
|
-
|
|
62
|
+
# 查询课程详情
|
|
63
|
+
soke-cli course +get-course --course-id "COURSE-UUID"
|
|
66
64
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
soke-cli course +list-course-users --course-id "course-uuid-here"
|
|
65
|
+
# 查询课程分类
|
|
66
|
+
soke-cli course +list-categories
|
|
70
67
|
|
|
71
|
-
#
|
|
72
|
-
soke-cli course +
|
|
73
|
-
--course-id "course-uuid-here" \
|
|
74
|
-
--dept-user-id "user-uuid-here"
|
|
68
|
+
# 查询课程学习记录
|
|
69
|
+
soke-cli course +list-course-users --course-id "COURSE-UUID"
|
|
75
70
|
```
|
|
76
71
|
|
|
77
72
|
## 主要命令
|
|
78
73
|
|
|
74
|
+
### 课程管理
|
|
79
75
|
| 命令 | 说明 |
|
|
80
76
|
|------|------|
|
|
81
|
-
| `+list-
|
|
77
|
+
| `+list-categories` | 查询课程分类(获取 category-id) |
|
|
78
|
+
| `+create` | 创建课程基本信息 |
|
|
79
|
+
| `+update` | 更新课程信息 |
|
|
80
|
+
| `+publish` | 发布课程 |
|
|
82
81
|
| `+get-course` | 查询课程详情 |
|
|
83
|
-
| `+list-
|
|
84
|
-
|
|
82
|
+
| `+list-courses` | 查询课程列表 |
|
|
83
|
+
|
|
84
|
+
### 课件管理(soke-lesson)
|
|
85
|
+
| 命令 | 说明 |
|
|
86
|
+
|------|------|
|
|
87
|
+
| `+lesson-create` | 创建课件 |
|
|
88
|
+
| `+lesson-get` | 查询课件详情 |
|
|
89
|
+
| `+lesson-list` | 查询课件列表 |
|
|
90
|
+
|
|
91
|
+
### 素材管理(soke-material)
|
|
92
|
+
| 命令 | 说明 |
|
|
93
|
+
|------|------|
|
|
94
|
+
| `file +upload` | 上传文件到素材库 |
|
|
95
|
+
| `file +list-files` | 查询素材列表 |
|
|
96
|
+
| `file +get-info` | 查询素材详情 |
|
|
97
|
+
|
|
98
|
+
### 学习记录
|
|
99
|
+
| 命令 | 说明 |
|
|
100
|
+
|------|------|
|
|
85
101
|
| `+list-course-users` | 查询课程学习记录 |
|
|
86
|
-
| `+get-course-user` |
|
|
102
|
+
| `+get-course-user` | 查询用户学习详情 |
|
|
87
103
|
| `+list-lesson-learns` | 查询课件学习记录 |
|
|
88
|
-
| `+list-lesson-faces` |
|
|
104
|
+
| `+list-lesson-faces` | 查询人脸识别记录 |
|
|
89
105
|
|
|
90
106
|
## 使用场景
|
|
91
107
|
|
|
92
|
-
### 场景1:
|
|
108
|
+
### 场景1: 创建课程
|
|
93
109
|
|
|
94
|
-
|
|
95
|
-
# 1. 获取课程列表
|
|
96
|
-
soke-cli course +list-courses \
|
|
97
|
-
--start-time 1704038400000 \
|
|
98
|
-
--end-time 1735660799000
|
|
110
|
+
适用于需要精细控制每个步骤的场景:
|
|
99
111
|
|
|
100
|
-
|
|
101
|
-
|
|
112
|
+
```bash
|
|
113
|
+
# 1. 查询课程分类,获取 category-id
|
|
114
|
+
soke-cli course +list-categories
|
|
102
115
|
|
|
103
|
-
#
|
|
116
|
+
# 2. 创建课程(使用上一步获取的 category-id)
|
|
117
|
+
course_id=$(soke-cli course +create \
|
|
118
|
+
--title "Python数据分析实战" \
|
|
119
|
+
--category-id "CATEGORY-UUID" \
|
|
120
|
+
--format json | jq -r '.data.uuid')
|
|
121
|
+
|
|
122
|
+
# 3. 批量上传素材
|
|
123
|
+
for file in ./lessons/*.mp4; do
|
|
124
|
+
media_id=$(soke-cli file +upload --file "$file" --format json | jq -r '.data.uuid')
|
|
125
|
+
|
|
126
|
+
# 4. 创建课件
|
|
127
|
+
soke-cli course +lesson-create \
|
|
128
|
+
--course-id "$course_id" \
|
|
129
|
+
--title "$(basename "$file" .mp4)" \
|
|
130
|
+
--media-id "$media_id" \
|
|
131
|
+
--type "video" \
|
|
132
|
+
--length 600 \
|
|
133
|
+
--object "path/to/$(basename "$file")" \
|
|
134
|
+
--filename "$(basename "$file")" \
|
|
135
|
+
--ext "mp4" \
|
|
136
|
+
--filesize $(stat -f%z "$file")
|
|
137
|
+
done
|
|
138
|
+
|
|
139
|
+
# 5. 发布课程
|
|
140
|
+
soke-cli course +publish --course-id "$course_id"
|
|
104
141
|
```
|
|
105
142
|
|
|
106
|
-
### 场景2:
|
|
143
|
+
### 场景2: 管理现有课程
|
|
107
144
|
|
|
108
145
|
```bash
|
|
109
|
-
#
|
|
110
|
-
soke-cli
|
|
111
|
-
|
|
112
|
-
#
|
|
113
|
-
soke-cli course +get-course-
|
|
114
|
-
|
|
115
|
-
|
|
146
|
+
# 查询课程列表
|
|
147
|
+
soke-cli course +list-courses --status 1
|
|
148
|
+
|
|
149
|
+
# 获取课程详情
|
|
150
|
+
soke-cli course +get-course --course-id "COURSE-UUID"
|
|
151
|
+
|
|
152
|
+
# 查询课程的课件
|
|
153
|
+
soke-cli course +lesson-list --course-id "COURSE-UUID"
|
|
154
|
+
|
|
155
|
+
# 更新课程信息
|
|
156
|
+
soke-cli course +update \
|
|
157
|
+
--course-id "COURSE-UUID" \
|
|
158
|
+
--title "新标题" \
|
|
159
|
+
--description "新描述"
|
|
160
|
+
|
|
161
|
+
# 添加新课件
|
|
162
|
+
media_id=$(soke-cli file +upload --file ./new-lesson.mp4 --format json | jq -r '.data.uuid')
|
|
163
|
+
soke-cli course +lesson-create \
|
|
164
|
+
--course-id "COURSE-UUID" \
|
|
165
|
+
--title "新增课件" \
|
|
166
|
+
--media-id "$media_id" \
|
|
167
|
+
--type "video" \
|
|
168
|
+
--length 600 \
|
|
169
|
+
--object "path/to/new-lesson.mp4" \
|
|
170
|
+
--filename "new-lesson.mp4" \
|
|
171
|
+
--ext "mp4" \
|
|
172
|
+
--filesize 10485760
|
|
116
173
|
```
|
|
117
174
|
|
|
118
|
-
### 场景3:
|
|
175
|
+
### 场景3: 统计课程完成情况
|
|
119
176
|
|
|
120
177
|
```bash
|
|
121
|
-
# 1.
|
|
122
|
-
soke-cli course +
|
|
178
|
+
# 1. 获取课程列表
|
|
179
|
+
soke-cli course +list-courses
|
|
123
180
|
|
|
124
|
-
# 2.
|
|
125
|
-
soke-cli course +list-
|
|
181
|
+
# 2. 查询某个课程的学习记录
|
|
182
|
+
soke-cli course +list-course-users --course-id "COURSE-UUID"
|
|
126
183
|
|
|
127
|
-
# 3.
|
|
128
|
-
soke-cli course +list-lesson-learns --lesson-id "
|
|
184
|
+
# 3. 查询课件学习记录
|
|
185
|
+
soke-cli course +list-lesson-learns --lesson-id "LESSON-UUID"
|
|
129
186
|
```
|
|
130
187
|
|
|
131
188
|
## 参数说明
|
|
@@ -157,10 +214,12 @@ const endTime = new Date('2024-12-31').getTime(); // 1735660799000
|
|
|
157
214
|
|
|
158
215
|
## 注意事项
|
|
159
216
|
|
|
160
|
-
1.
|
|
161
|
-
2.
|
|
162
|
-
3.
|
|
163
|
-
4.
|
|
217
|
+
1. **课程发布要求**: 课程至少需要一个课件才能发布
|
|
218
|
+
2. **分类必填**: 创建课程时必须指定分类ID
|
|
219
|
+
3. **素材先行**: 创建课件前必须先上传素材到素材库
|
|
220
|
+
4. **类型匹配**: 课件类型必须与素材类型匹配
|
|
221
|
+
5. **权限要求**: 需要相应的读写权限(`course:*:write` 或 `course:*:readonly`)
|
|
222
|
+
6. **认证要求**: 所有命令都需要先完成 `soke-cli auth login`
|
|
164
223
|
|
|
165
224
|
## 错误处理
|
|
166
225
|
|
|
@@ -188,16 +247,33 @@ soke-cli auth login
|
|
|
188
247
|
|
|
189
248
|
## 相关文档
|
|
190
249
|
|
|
191
|
-
- [SKILL.md](./SKILL.md) - 完整的 Skill
|
|
192
|
-
- [
|
|
193
|
-
- [
|
|
250
|
+
- [SKILL.md](./SKILL.md) - 完整的 Skill 文档和 API 参考
|
|
251
|
+
- [素材库管理 Skill](../soke-material/SKILL.md) - 文件上传和素材管理
|
|
252
|
+
- [课件管理 Skill](../soke-lesson/SKILL.md) - 课件创建和管理
|
|
253
|
+
- [共享配置 Skill](../soke-shared/SKILL.md) - 认证和配置管理
|
|
254
|
+
- [API 接口文档](../../docs/API_PROXY_INTERFACES.md) - 完整的 API 接口说明
|
|
194
255
|
|
|
195
|
-
##
|
|
256
|
+
## Skill 架构
|
|
196
257
|
|
|
197
|
-
|
|
198
|
-
-
|
|
199
|
-
|
|
258
|
+
```
|
|
259
|
+
soke-course (主 skill)
|
|
260
|
+
├── 课程管理 (本 skill)
|
|
261
|
+
│ ├── +create (创建课程)
|
|
262
|
+
│ ├── +update (更新课程)
|
|
263
|
+
│ ├── +publish (发布课程)
|
|
264
|
+
│ └── 查询命令...
|
|
265
|
+
├── soke-lesson (子 skill - 课件管理)
|
|
266
|
+
│ ├── +lesson-create
|
|
267
|
+
│ ├── +lesson-get
|
|
268
|
+
│ └── +lesson-list
|
|
269
|
+
└── soke-material (子 skill - 素材管理)
|
|
270
|
+
├── file +upload
|
|
271
|
+
├── file +create
|
|
272
|
+
└── 查询命令...
|
|
273
|
+
```
|
|
200
274
|
|
|
201
275
|
## 版本历史
|
|
202
276
|
|
|
277
|
+
- v3.0.0 (2024-05-26): 重构为模块化架构,集成 soke-material 和 soke-lesson 子 skills
|
|
278
|
+
- v2.0.0 (2024-05-25): 添加课程创建和更新功能
|
|
203
279
|
- v1.0.0 (2024-05-14): 初始版本,支持课程查询、分类、学习记录等功能
|