@sokeai/cli 1.0.41 → 1.0.53

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.
Files changed (34) hide show
  1. package/README.md +1 -24
  2. package/package.json +2 -2
  3. package/scripts/build-binaries.sh +1 -30
  4. package/scripts/e2e-test.sh +63 -3
  5. package/scripts/install.js +52 -110
  6. package/scripts/local-test.js +10 -85
  7. package/scripts/local-test.sh +52 -7
  8. package/scripts/push.sh +12 -4
  9. package/scripts/release.sh +50 -40
  10. package/scripts/test-auto-detect.js +71 -48
  11. package/skills/README.md +0 -1
  12. package/skills/oss-upload/skill.md +50 -0
  13. package/skills/oss-upload/upload.py +355 -0
  14. package/skills/soke-assign/README.md +310 -0
  15. package/skills/soke-assign/SKILL.md +383 -0
  16. package/skills/soke-course/README.md +168 -92
  17. package/skills/soke-course/SKILL.md +372 -460
  18. package/skills/soke-exam/SKILL.md +565 -0
  19. package/skills/soke-exam/references/exam-get-exam-user.md +212 -0
  20. package/skills/soke-learning-map/SKILL.md +544 -0
  21. package/skills/soke-learning-profile/SKILL.md +0 -1
  22. package/skills/soke-lesson/README.md +53 -0
  23. package/skills/soke-lesson/SKILL.md +510 -0
  24. package/skills/soke-material/README.md +49 -0
  25. package/skills/soke-material/SKILL.md +390 -0
  26. package/scripts/ci/check-legacy-constants.sh +0 -27
  27. package/scripts/ci/check-yaml-env-whitelist.sh +0 -33
  28. package/scripts/mcp-stdout-scan.sh +0 -46
  29. package/scripts/regress-auth.sh +0 -56
  30. package/scripts/regress-baseline.md +0 -84
  31. package/scripts/test-local-reconcile.js +0 -55
  32. package/skills/soke-business-training-report/SKILL.md +0 -58
  33. package/skills/soke-course/SUMMARY.md +0 -236
  34. package/skills/soke-course/templates/batch-create-from-excel.md +0 -75
@@ -1,131 +1,188 @@
1
- # soke-course Skill
1
+ # 授客课程管理 Skill
2
2
 
3
- 授客课程管理 Skill,用于查询课程列表、课程分类、课程详情、学习记录等。
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
- 1. 安装 soke-cli
20
- ```bash
21
- npm install -g @sokeai/cli
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
- # 查询2024年的所有课程
36
- soke-cli course +list-courses \
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
- ```bash
56
- soke-cli course +get-course --uuid "course-uuid-here"
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
- soke-cli course +list-categories
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
- ```bash
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 +get-course-user \
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-courses` | 查询课程列表 |
77
+ | `+list-categories` | 查询课程分类(获取 category-id) |
78
+ | `+create` | 创建课程基本信息 |
79
+ | `+update` | 更新课程信息 |
80
+ | `+publish` | 发布课程 |
82
81
  | `+get-course` | 查询课程详情 |
83
- | `+list-categories` | 查询课程分类 |
84
- | `+list-lessons` | 查询课程课件列表 |
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
- ```bash
95
- # 1. 获取课程列表
96
- soke-cli course +list-courses \
97
- --start-time 1704038400000 \
98
- --end-time 1735660799000
110
+ 适用于需要精细控制每个步骤的场景:
99
111
 
100
- # 2. 查询某个课程的学习记录
101
- soke-cli course +list-course-users --course-id "course-uuid"
112
+ ```bash
113
+ # 1. 查询课程分类,获取 category-id
114
+ soke-cli course +list-categories
102
115
 
103
- # 3. 分析返回数据中的 finish_status 和 study_progress 字段
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
- # 1. 查询用户ID(如果只知道用户名)
110
- soke-cli contact +search-user --name "张三"
111
-
112
- # 2. 查询该用户的课程学习记录
113
- soke-cli course +get-course-user \
114
- --course-id "course-uuid" \
115
- --dept-user-id "user-uuid"
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 +get-course --uuid "course-uuid"
178
+ # 1. 获取课程列表
179
+ soke-cli course +list-courses
123
180
 
124
- # 2. 获取课程的课件列表
125
- soke-cli course +list-lessons --course-id "course-uuid"
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 "lesson-uuid"
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. **时间范围限制**: `+list-courses` 的时间范围不能超过365天
161
- 2. **分页查询**: 默认每页100条,最大100条
162
- 3. **权限要求**: 需要相应的只读权限(`course:*:readonly`)
163
- 4. **认证要求**: 所有命令都需要先完成 `soke-cli auth login`
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
- - [course-list-courses.md](./references/course-list-courses.md) - 课程列表查询详细参考
193
- - [授客开放平台API文档](../../cli-doc/授客开放平台API接口文档.md) - API 接口文档
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
- - 授客开放平台: https://opendev.soke.cn
199
- - soke-cli 文档: [../../cli-doc/soke-cli.md](../../cli-doc/soke-cli.md)
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): 初始版本,支持课程查询、分类、学习记录等功能