@sokeai/cli 1.0.78 → 1.0.80
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/package.json +1 -1
- package/scripts/install.js +8 -0
- package/scripts/run.js +3 -2
- package/skills/mono/.workbuddy/memory/2026-09-01.md +2 -0
- package/skills/mono/.workbuddy/memory/MEMORY.md +4 -0
- package/skills/mono/ARCHITECTURE_AND_EXTENSION_GUIDE.md +572 -0
- package/skills/mono/README.md +2 -0
- package/skills/mono/SKILL.md +125 -119
- package/skills/mono/SKILL_MD_/344/274/230/345/214/226/346/226/271/346/241/210.md +478 -0
- package/skills/mono/references/modules/README.md +74 -0
- package/skills/mono/references/modules/soke-ai-coach-director/CHANGELOG.md +1 -1
- package/skills/mono/references/modules/soke-ai-coach-director/MODULE.md +12 -0
- package/skills/mono/references/modules/soke-ai-coach-director/README.md +4 -1
- package/skills/mono/references/modules/soke-ai-coach-director/coaching/prompt-engineer/parts/part1-basic.md +1 -1
- package/skills/mono/references/modules/soke-ai-coach-director/coaching/prompt-optimizer/prompt-optimizer.md +3 -3
- package/skills/mono/references/modules/soke-ai-coach-director/platform/adapters/README.md +4 -2
- package/skills/mono/references/modules/soke-ai-coach-director/platform/adapters/qclaw.md +3 -1
- package/skills/mono/references/modules/soke-ai-coach-director/platform/adapters/{wukong.md → qwen.md} +18 -18
- package/skills/mono/references/modules/soke-ai-coach-director/platform/adapters/workbuddy.md +1 -1
- package/skills/mono/references/modules/soke-ai-coach-director/platform/api-fallback.md +1 -1
- package/skills/mono/references/modules/soke-ai-coach-director/platform/interaction.md +1 -1
- package/skills/mono/references/modules/soke-ai-coach-director/platform/platform-support-matrix.md +28 -0
- package/skills/mono/references/modules/soke-ai-coach-director/platform/publish-gate.md +1 -0
- package/skills/mono/references/modules/soke-ai-coach-director/platform/soke-ai-training/soke-ai-training.md +5 -3
- package/skills/mono/references/modules/soke-ai-coach-director/platform/sync-engine.md +2 -2
- package/skills/mono/references/modules/soke-ai-coach-director/references/env-check.md +3 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/exec-handbook.md +7 -7
- package/skills/mono/references/modules/soke-ai-coach-director/references/exec-part1.md +5 -5
- package/skills/mono/references/modules/soke-ai-coach-director/references/platform-api-pitfalls.md +1 -1
- package/skills/mono/references/modules/soke-ai-coach-director/references/self-learning-engine.md +4 -0
- package/skills/mono/references/modules/soke-ai-coach-director/references/subs/part1/SOP.md +2 -2
- package/skills/mono/references/modules/soke-ai-coach-director/references/subs/publish/SOP.md +3 -3
- package/skills/mono/references/modules/soke-ai-coach-director/scripts/activator.sh +4 -0
- package/skills/mono/references/modules/soke-ai-coach-director/scripts/error-detector.sh +4 -0
- package/skills/mono/references/modules/soke-ai-coach-director/scripts/extract-skill.sh +7 -0
- package/skills/mono/references/modules/soke-ai-coach-director/scripts/gate_check.py +2 -0
- package/skills/mono/references/modules/soke-ai-coach-director/scripts/validate_operations.py +9 -2
- package/skills/mono/references/modules/soke-ai-training/MODULE.md +57 -7
- package/skills/mono/references/modules/soke-assign/MODULE.md +50 -11
- package/skills/mono/references/modules/soke-certificate/MODULE.md +47 -1
- package/skills/mono/references/modules/soke-course/CHANGELOG.md +93 -0
- package/skills/mono/references/modules/soke-course/MODULE.md +110 -352
- package/skills/mono/references/modules/soke-course/README.md +45 -291
- package/skills/mono/references/modules/soke-course/cli-facts.md +107 -0
- package/skills/mono/references/modules/soke-course/intent-cases.md +41 -0
- package/skills/mono/references/modules/soke-course/scripts/check_readiness.sh +45 -0
- package/skills/mono/references/modules/soke-course/sop-publish-check.md +46 -0
- package/skills/mono/references/modules/soke-course/subs/assign/SOP.md +40 -0
- package/skills/mono/references/modules/soke-course/subs/batch/SOP.md +96 -0
- package/skills/mono/references/modules/soke-course/{references/subs → subs}/category/SOP.md +18 -27
- package/skills/mono/references/modules/soke-course/subs/charge/SOP.md +22 -0
- package/skills/mono/references/modules/soke-course/subs/copy/SOP.md +35 -0
- package/skills/mono/references/modules/soke-course/subs/exam/SOP.md +39 -0
- package/skills/mono/references/modules/soke-course/subs/phase1-create/SOP.md +66 -0
- package/skills/mono/references/modules/soke-course/subs/phase2-lesson/SOP.md +34 -0
- package/skills/mono/references/modules/soke-course/subs/photo/SOP.md +26 -0
- package/skills/mono/references/modules/soke-course/subs/publish/SOP.md +26 -0
- package/skills/mono/references/modules/soke-course/subs/query/SOP.md +36 -0
- package/skills/mono/references/modules/soke-course/{references/subs → subs}/settings/SOP.md +3 -4
- package/skills/mono/references/modules/soke-course/subs/template/SOP.md +58 -0
- package/skills/mono/references/modules/soke-exam/MODULE.md +49 -1
- package/skills/mono/references/modules/soke-exam-question-pool/MODULE.md +45 -5
- package/skills/mono/references/modules/soke-learning-map/MODULE.md +51 -11
- package/skills/mono/references/modules/soke-learning-profile/MODULE.md +46 -3
- package/skills/mono/references/modules/soke-lesson/MODULE.md +34 -20
- package/skills/mono/references/modules/soke-material/MODULE.md +33 -19
- package/skills/mono/references/modules/soke-photo-gallery/MODULE.md +40 -20
- package/skills/mono/references/modules/soke-shared/MODULE.md +9 -0
- package/skills/mono/references/modules/soke-supervisor/MODULE.md +32 -1
- package/skills/mono/references/modules/soke-task/MODULE.md +48 -1
- package/skills/mono/references/modules/soke-training-demand/MODULE.md +38 -17
- package/skills/mono/references/shared/README.md +50 -0
- package/skills/mono/references/shared/async-task.md +30 -0
- package/skills/mono/references/shared/auth-check.md +57 -0
- package/skills/mono/references/shared/command-discovery.md +34 -0
- package/skills/mono/references/shared/environment-check.md +31 -0
- package/skills/mono/references/shared/error-handling.md +27 -0
- package/skills/mono/references/shared/file-input.md +31 -0
- package/skills/mono/references/shared/interaction.md +39 -0
- package/skills/mono/references/shared/object-context.md +51 -0
- package/skills/mono/references/shared/output-policy.md +39 -0
- package/skills/mono/references/shared/pagination.md +41 -0
- package/skills/mono/references/shared/rule-ownership.md +57 -0
- package/skills/mono/references/shared/state-machine.md +35 -0
- package/skills/mono/references/shared/write-guard.md +34 -0
- package/skills/mono/references/shared/write-verify.md +33 -0
- package/skills/mono/references/workflows/README.md +115 -0
- package/skills/mono/scripts/check_package.py +310 -0
- package/skills/mono/scripts/check_readiness.py +1 -1
- package/skills/mono/scripts/check_syntax.py +35 -0
- package/skills/mono/scripts/validate_operations.py +2 -2
- package/skills/mono//357/275/223/357/275/217/357/275/213/357/275/205/357/274/215/357/275/203/357/275/214/357/275/211/346/225/264/344/275/223/346/236/266/346/236/204.html +13 -0
- package/skills/multi/soke-ai-coach-director/README.md +3 -0
- package/skills/multi/soke-ai-coach-director/assets/LEARNINGS-TEMPLATE.md +1 -0
- package/skills/multi/soke-ai-coach-director/coaching/prompt-engineer/parts/part1-basic.md +1 -1
- package/skills/multi/soke-ai-coach-director/platform/publish-gate.md +1 -0
- package/skills/multi/soke-ai-coach-director/references/exec-handbook.md +5 -5
- package/skills/multi/soke-ai-coach-director/references/exec-part1.md +5 -5
- package/skills/multi/soke-ai-coach-director/references/platform-api-pitfalls.md +1 -1
- package/skills/multi/soke-ai-coach-director/references/self-improvement-examples.md +3 -0
- package/skills/multi/soke-ai-coach-director/references/self-learning-engine.md +4 -0
- package/skills/multi/soke-ai-coach-director/references/subs/part1/SOP.md +2 -2
- package/skills/multi/soke-ai-coach-director/scripts/activator.sh +4 -0
- package/skills/multi/soke-ai-coach-director/scripts/error-detector.sh +4 -0
- package/skills/multi/soke-ai-coach-director/scripts/extract-skill.sh +7 -0
- package/skills/multi/soke-ai-coach-director/scripts/gate_check.py +2 -0
- package/skills/multi/soke-ai-coach-director/scripts/validate_operations.py +9 -2
- package/skills/multi/soke-ai-training/SKILL.md +2 -0
- package/skills/multi/soke-course/.skill-metadata.yaml +40 -0
- package/skills/multi/soke-course/CHANGELOG.md +77 -0
- package/skills/multi/soke-course/README.md +27 -274
- package/skills/multi/soke-course/SKILL.md +135 -353
- package/skills/multi/soke-course/_user_meta.json +5 -0
- package/skills/multi/soke-course/agents/openai.yaml +1 -5
- package/skills/multi/soke-course/references/cli-facts.md +105 -0
- package/skills/multi/soke-course/references/examples.md +30 -454
- package/skills/multi/soke-course/references/intent-cases.md +65 -99
- package/skills/multi/soke-course/references/sop-full-workflow.md +81 -177
- package/skills/multi/soke-course/references/sop-lesson-types.md +21 -58
- package/skills/multi/soke-course/references/sop-publish-check.md +14 -71
- package/skills/multi/soke-course/references/subs/assign/SOP.md +37 -0
- package/skills/multi/soke-course/references/subs/category/SOP.md +18 -27
- package/skills/multi/soke-course/references/subs/exam/SOP.md +28 -0
- package/skills/multi/soke-course/references/subs/lesson/SOP.md +28 -0
- package/skills/multi/soke-course/references/subs/material/SOP.md +24 -0
- package/skills/multi/soke-course/references/subs/photo/SOP.md +23 -0
- package/skills/multi/soke-course/references/subs/publish/SOP.md +15 -157
- package/skills/multi/soke-course/references/subs/query/SOP.md +22 -151
- package/skills/multi/soke-course/references/subs/settings/SOP.md +3 -4
- package/skills/multi/soke-course/references/subs/template/SOP.md +37 -210
- package/skills/multi/soke-course/references/troubleshoot.md +37 -54
- package/skills/multi/soke-course/scripts/check_readiness.sh +45 -0
- package/skills/multi/soke-course/{references/installation.md → soke-cli-install-guide.md} +3 -0
- package/skills/mono/references/modules/soke-course/agents/openai.yaml +0 -7
- package/skills/mono/references/modules/soke-course/references/course-list-courses.md +0 -216
- package/skills/mono/references/modules/soke-course/references/examples.md +0 -480
- package/skills/mono/references/modules/soke-course/references/intent-cases.md +0 -99
- package/skills/mono/references/modules/soke-course/references/sop-full-workflow.md +0 -177
- package/skills/mono/references/modules/soke-course/references/sop-lesson-types.md +0 -66
- package/skills/mono/references/modules/soke-course/references/sop-publish-check.md +0 -76
- package/skills/mono/references/modules/soke-course/references/subs/ai/SOP.md +0 -153
- package/skills/mono/references/modules/soke-course/references/subs/charge/SOP.md +0 -107
- package/skills/mono/references/modules/soke-course/references/subs/copy/SOP.md +0 -80
- package/skills/mono/references/modules/soke-course/references/subs/publish/SOP.md +0 -168
- package/skills/mono/references/modules/soke-course/references/subs/query/SOP.md +0 -165
- package/skills/mono/references/modules/soke-course/references/subs/template/SOP.md +0 -223
- package/skills/mono/references/modules/soke-course/references/troubleshoot.md +0 -68
- package/skills/multi/soke-course/examples/create-basic.md +0 -70
- package/skills/multi/soke-course/references/course-list-courses.md +0 -216
- package/skills/multi/soke-course/references/dependencies/soke-assign.md +0 -103
- package/skills/multi/soke-course/references/dependencies/soke-lesson.md +0 -119
- package/skills/multi/soke-course/references/dependencies/soke-material.md +0 -105
- package/skills/multi/soke-course/references/shared.md +0 -185
- package/skills/multi/soke-course/references/subs/ai/SOP.md +0 -153
- package/skills/multi/soke-course/scripts/check_readiness.py +0 -87
- /package/skills/mono/references/{installation.md → shared/installation.md} +0 -0
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
# 课程列表查询参考
|
|
2
|
-
|
|
3
|
-
## 命令说明
|
|
4
|
-
|
|
5
|
-
`soke-cli course +list-courses` 用于查询课程列表,转发到 `/skills/course/list`,支持按课程列表模糊搜索关键字、课程分类、课程状态、课程来源、我的课程和协同关系筛选。
|
|
6
|
-
|
|
7
|
-
## 基本用法
|
|
8
|
-
|
|
9
|
-
### 查询已发布课程
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
soke-cli course +list-courses \
|
|
13
|
-
--status 1 \
|
|
14
|
-
--page 1 \
|
|
15
|
-
--page-size 10
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
**说明**:
|
|
19
|
-
- `--status`: 课程状态,默认 `1`
|
|
20
|
-
- `--page`: 页码,默认 `1`
|
|
21
|
-
- `--page-size`: 每页数据,默认 `10`
|
|
22
|
-
|
|
23
|
-
## 高级筛选
|
|
24
|
-
|
|
25
|
-
### 按课程状态筛选
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
# 查询已发布的课程
|
|
29
|
-
soke-cli course +list-courses \
|
|
30
|
-
--status 1
|
|
31
|
-
|
|
32
|
-
# 查询未发布的课程
|
|
33
|
-
soke-cli course +list-courses \
|
|
34
|
-
--status 0
|
|
35
|
-
|
|
36
|
-
# 查询已关闭的课程
|
|
37
|
-
soke-cli course +list-courses \
|
|
38
|
-
--status 2
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
**状态说明**:
|
|
42
|
-
- `0`: 未发布
|
|
43
|
-
- `1`: 已发布
|
|
44
|
-
- `2`: 已关闭
|
|
45
|
-
|
|
46
|
-
### 按课程来源筛选
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
# 查询内部课列表
|
|
50
|
-
soke-cli course +list-courses \
|
|
51
|
-
--is-in 1
|
|
52
|
-
|
|
53
|
-
# 查询外部课列表
|
|
54
|
-
soke-cli course +list-courses \
|
|
55
|
-
--is-in 0
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
**来源说明**:
|
|
59
|
-
- `0`: 外部课列表
|
|
60
|
-
- `1`: 内部课列表
|
|
61
|
-
|
|
62
|
-
### 按关键字筛选
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
soke-cli course +list-courses \
|
|
66
|
-
--keyword "测试"
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
**说明**:`--keyword` 是课程列表模糊搜索关键字。
|
|
70
|
-
|
|
71
|
-
### 按课程分类筛选
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
soke-cli course +list-courses \
|
|
75
|
-
--category-path "category-uuid-here"
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
**说明**:`--category-path` 会作为接口参数 `categoryPath` 传递,用于按照课程分类 ID 筛选课程。
|
|
79
|
-
|
|
80
|
-
### 组合筛选
|
|
81
|
-
|
|
82
|
-
```bash
|
|
83
|
-
# 查询已发布的内部课,只看我创建的,并限制课程分类
|
|
84
|
-
soke-cli course +list-courses \
|
|
85
|
-
--status 1 \
|
|
86
|
-
--is-in 1 \
|
|
87
|
-
--is-my 1 \
|
|
88
|
-
--category-path "category123"
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## 分页查询
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
# 第一页,每页10条
|
|
95
|
-
soke-cli course +list-courses \
|
|
96
|
-
--page 1 \
|
|
97
|
-
--page-size 10
|
|
98
|
-
|
|
99
|
-
# 第二页,每页10条
|
|
100
|
-
soke-cli course +list-courses \
|
|
101
|
-
--page 2 \
|
|
102
|
-
--page-size 10
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
**分页说明**:
|
|
106
|
-
- `--page`: 页码,从1开始,默认为1
|
|
107
|
-
- `--page-size`: 每页数量,默认为10
|
|
108
|
-
|
|
109
|
-
## 参数说明
|
|
110
|
-
|
|
111
|
-
| 参数 | 默认值 | 说明 |
|
|
112
|
-
|------|--------|------|
|
|
113
|
-
| `--keyword` | 空 | 课程列表模糊搜索关键字 |
|
|
114
|
-
| `--category-path` | 空 | 课程分类 ID,用于按照分类筛选课程 |
|
|
115
|
-
| `--page` | `1` | 页码 |
|
|
116
|
-
| `--is-in` | `1` | 课程来源:0=外部课列表,1=内部课列表 |
|
|
117
|
-
| `--page-size` | `10` | 每页数据 |
|
|
118
|
-
| `--is-my` | `0` | 是否只看我创建的:0=否,1=是 |
|
|
119
|
-
| `--status` | `1` | 课程状态:0=未发布,1=已发布,2=已关闭 |
|
|
120
|
-
| `--is-joint` | `0` | 协同给我的:0=否,1=是 |
|
|
121
|
-
| `--joint-out` | `0` | 我协同出去的:0=否,1=是 |
|
|
122
|
-
|
|
123
|
-
## 返回数据示例
|
|
124
|
-
|
|
125
|
-
```json
|
|
126
|
-
{
|
|
127
|
-
"code": "200",
|
|
128
|
-
"status": "ok",
|
|
129
|
-
"message": "success",
|
|
130
|
-
"data": {
|
|
131
|
-
"list": [
|
|
132
|
-
{
|
|
133
|
-
"uuid": "course-uuid-123",
|
|
134
|
-
"title": "Go语言入门教程",
|
|
135
|
-
"category_id": "category-uuid-456",
|
|
136
|
-
"certificate_id": "cert-uuid-789",
|
|
137
|
-
"lector_id": "lector-uuid-101",
|
|
138
|
-
"study_type": 1,
|
|
139
|
-
"credit": 10.00,
|
|
140
|
-
"point": 100.00,
|
|
141
|
-
"status": 1,
|
|
142
|
-
"lesson_num": 20,
|
|
143
|
-
"total_length": 7200,
|
|
144
|
-
"description": "这是一门Go语言入门课程",
|
|
145
|
-
"pc_url": "https://example.com/course/123",
|
|
146
|
-
"mobile_url": "https://m.example.com/course/123",
|
|
147
|
-
"create_time": 1704038400000,
|
|
148
|
-
"update_time": 1704124800000,
|
|
149
|
-
"create_dept_user_id": "user-uuid-111",
|
|
150
|
-
"create_dept_user_name": "张三"
|
|
151
|
-
}
|
|
152
|
-
],
|
|
153
|
-
"has_more": 0
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
## 返回字段说明
|
|
159
|
-
|
|
160
|
-
| 字段 | 类型 | 说明 |
|
|
161
|
-
|------|------|------|
|
|
162
|
-
| uuid | String | 课程唯一ID |
|
|
163
|
-
| title | String | 课程标题 |
|
|
164
|
-
| category_id | String | 课程分类ID |
|
|
165
|
-
| certificate_id | String | 关联证书ID |
|
|
166
|
-
| lector_id | String | 关联讲师ID |
|
|
167
|
-
| study_type | Int | 学习模式(1=自由式, 2=解锁式) |
|
|
168
|
-
| credit | Decimal | 学分数量 |
|
|
169
|
-
| point | Decimal | 积分数量 |
|
|
170
|
-
| status | Int | 课程发布状态(-1=删除, 0=未发布, 1=已发布, 2=关闭) |
|
|
171
|
-
| lesson_num | Int | 课件数量 |
|
|
172
|
-
| total_length | Int | 学时长度(单位:秒) |
|
|
173
|
-
| description | String | 课程描述 |
|
|
174
|
-
| pc_url | String | PC端跳转链接 |
|
|
175
|
-
| mobile_url | String | 移动端跳转链接 |
|
|
176
|
-
| create_time | Int/String | 创建时间 |
|
|
177
|
-
| update_time | Int/String | 更新时间 |
|
|
178
|
-
| create_dept_user_id | String | 创建人ID |
|
|
179
|
-
| create_dept_user_name | String | 创建人姓名 |
|
|
180
|
-
| has_more | Int | 是否还有更多数据(1=有, 0=没有) |
|
|
181
|
-
|
|
182
|
-
## 常见问题
|
|
183
|
-
|
|
184
|
-
### Q: 如何查询所有课程?
|
|
185
|
-
A: 使用分页逐页查询,例如:
|
|
186
|
-
```bash
|
|
187
|
-
soke-cli course +list-courses \
|
|
188
|
-
--page 1 \
|
|
189
|
-
--page-size 10
|
|
190
|
-
|
|
191
|
-
soke-cli course +list-courses \
|
|
192
|
-
--page 2 \
|
|
193
|
-
--page-size 10
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
### Q: 如何知道是否还有更多数据?
|
|
197
|
-
A: 查看返回数据中的 `has_more` 字段:
|
|
198
|
-
- `1`: 还有更多数据,需要继续分页查询
|
|
199
|
-
- `0`: 没有更多数据了
|
|
200
|
-
|
|
201
|
-
### Q: 学习模式的区别是什么?
|
|
202
|
-
A:
|
|
203
|
-
- **自由式(1)**: 学员可以按任意顺序学习课件
|
|
204
|
-
- **解锁式(2)**: 学员必须按顺序完成课件,完成前一个才能解锁下一个
|
|
205
|
-
|
|
206
|
-
## 相关命令
|
|
207
|
-
|
|
208
|
-
- `soke-cli course +get-course`: 获取单个课程详情
|
|
209
|
-
- `soke-cli course +list-categories`: 查询课程分类
|
|
210
|
-
- `soke-cli course +list-lessons`: 查询课程的课件列表
|
|
211
|
-
- `soke-cli course +list-course-users`: 查询课程的学习记录
|
|
212
|
-
|
|
213
|
-
## 权限要求
|
|
214
|
-
|
|
215
|
-
- 权限范围: `course:course:readonly`
|
|
216
|
-
- 需要先完成认证: `soke-cli auth login`
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: soke-assign
|
|
3
|
-
version: 1.0.0
|
|
4
|
-
description: 指派管理 — 查询部门/用户并指派课程给学员,支持必修/选修
|
|
5
|
-
tags: [soke, assign, department, user, enrollment]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# 指派管理
|
|
9
|
-
|
|
10
|
-
## 触发描述
|
|
11
|
-
|
|
12
|
-
课程创建并发布后,需要将课程指派给部门或具体学员时触发本技能。支持查询组织架构、查询用户列表、创建指派记录及查看指派列表。
|
|
13
|
-
|
|
14
|
-
## 前置条件
|
|
15
|
-
|
|
16
|
-
- 目标课程 `status = 1`(已发布),未发布的课程不可指派
|
|
17
|
-
- 具有指派权限(管理员或课程负责人)
|
|
18
|
-
|
|
19
|
-
## 执行流程
|
|
20
|
-
|
|
21
|
-
### 1. 查询部门 `assign +list-departments`
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
soke assign +list-departments
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
返回当前租户下所有部门结构。输出格式预期为部门 ID 与名称的层级列表。
|
|
28
|
-
|
|
29
|
-
> 该项为辅助查询,不直接参与指派创建,但可用于确认用户所属部门。
|
|
30
|
-
|
|
31
|
-
### 2. 查询用户 `assign +list-users`
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
soke assign +list-users --department-id <departmentId>
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
| 参数 | 必填 | 说明 |
|
|
38
|
-
|------|------|------|
|
|
39
|
-
| `--department-id` | 否 | 按部门过滤,不传则返回全部用户 |
|
|
40
|
-
|
|
41
|
-
返回用户列表,包含用户 ID、姓名、所属部门等基本信息。
|
|
42
|
-
|
|
43
|
-
### 3. 创建指派 `assign +create`
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
soke assign +create \
|
|
47
|
-
--module course \
|
|
48
|
-
--module-id <courseId> \
|
|
49
|
-
--compulsory <1|0> \
|
|
50
|
-
--user-ids "<userId1>,<userId2>,<userId3>"
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
| 参数 | 必填 | 说明 |
|
|
54
|
-
|------|------|------|
|
|
55
|
-
| `--module` | 是 | 固定值 `course` |
|
|
56
|
-
| `--module-id` | 是 | 课程 ID |
|
|
57
|
-
| `--compulsory` | 是 | `1` = 必修,`0` = 选修 |
|
|
58
|
-
| `--user-ids` | 是 | 逗号分隔的用户 ID 列表 |
|
|
59
|
-
|
|
60
|
-
> ⚠️ 课程必须 `status = 1`(已发布),否则指派会失败。
|
|
61
|
-
|
|
62
|
-
### 4. 查询指派 `assign +list`
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
soke assign +list --module-id <courseId>
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
| 参数 | 必填 | 说明 |
|
|
69
|
-
|------|------|------|
|
|
70
|
-
| `--module-id` | 是 | 课程 ID |
|
|
71
|
-
|
|
72
|
-
返回该课程所有已指派的学员列表,包含用户信息、必修/选修标记、学习进度。
|
|
73
|
-
|
|
74
|
-
## 输出标准
|
|
75
|
-
|
|
76
|
-
创建指派成功后输出:
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
✅ 指派创建成功
|
|
80
|
-
- 课程: {courseTitle} (ID: {courseId})
|
|
81
|
-
- 类型: {必修/选修}
|
|
82
|
-
- 指派人数: {N} 人
|
|
83
|
-
- 用户: {userName1}, {userName2}...
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
查询操作以表格或列表形式输出结果。
|
|
87
|
-
|
|
88
|
-
## 注意事项
|
|
89
|
-
|
|
90
|
-
1. **课程必须先发布**(status=1)才能指派,未发布课程无法创建指派记录
|
|
91
|
-
2. `--module` 当前仅支持 `course`,扩展模块后可能支持其他值
|
|
92
|
-
3. 必修课(compulsory=1)学员不可跳过,选修课(compulsory=0)学员可自主选择
|
|
93
|
-
4. 指派后可重复指派同一用户,以最新一次为准(覆盖更新)
|
|
94
|
-
5. 批量指派建议单次 user-ids 不超过 500 人,超出分批处理
|
|
95
|
-
6. 取消指派(删除指派记录)需通过后台操作,CLI 不直接支持
|
|
96
|
-
|
|
97
|
-
## 检查清单
|
|
98
|
-
|
|
99
|
-
- [ ] 课程 status = 1(已发布确认)
|
|
100
|
-
- [ ] 已通过 list-departments / list-users 确认目标用户 ID
|
|
101
|
-
- [ ] compulsory 正确设定(1=必修, 0=选修)
|
|
102
|
-
- [ ] user-ids 为逗号分隔的有效用户 ID 列表
|
|
103
|
-
- [ ] 指派完成后通过 assign +list 验证结果
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: soke-lesson
|
|
3
|
-
version: 1.0.0
|
|
4
|
-
description: 课件管理 — 创建/查询/排序课程章节课件,所有参数来自素材上传返回结果
|
|
5
|
-
tags: [soke, lesson, courseware, chapter, video, audio, document]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# 课件管理
|
|
9
|
-
|
|
10
|
-
## 触发描述
|
|
11
|
-
|
|
12
|
-
用户已有课程(course)且完成素材上传后,需要将素材添加为课程的章节课件时触发本技能。支持创建课件、列表查询、详情查询和排序,仅支持 `video | audio | document` 三种类型的课件。
|
|
13
|
-
|
|
14
|
-
## 输入要求
|
|
15
|
-
|
|
16
|
-
所有课件创建参数**必须来自 `soke-material` 上传返回的结果对象**,不允许手动构造。传入参数:
|
|
17
|
-
|
|
18
|
-
```json
|
|
19
|
-
{
|
|
20
|
-
"uuid": "素材上传返回的 uuid",
|
|
21
|
-
"filename": "素材上传返回的 filename",
|
|
22
|
-
"type": "素材上传返回的 type(仅 video/audio/document)",
|
|
23
|
-
"ext": "素材上传返回的 ext",
|
|
24
|
-
"filesize": "素材上传返回的 filesize",
|
|
25
|
-
"object": "素材上传返回的 object",
|
|
26
|
-
"duration": "默认时长或自定义时长(秒)",
|
|
27
|
-
"courseId": "目标课程 ID",
|
|
28
|
-
"title": "课件标题(用户提供或从 filename 推断)"
|
|
29
|
-
}
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
> ⚠️ `uuid` `filename` `type` `ext` `filesize` `object` 六个字段必须严格从素材上传返回结果中取值,不可自行构造或编造。
|
|
33
|
-
|
|
34
|
-
## 执行流程
|
|
35
|
-
|
|
36
|
-
### 1. 创建课件 `course +lesson-create`
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
soke course +lesson-create \
|
|
40
|
-
--course-id <courseId> \
|
|
41
|
-
--title "<课件标题>" \
|
|
42
|
-
--type <video|audio|document> \
|
|
43
|
-
--uuid <素材uuid> \
|
|
44
|
-
--filename "<文件名>" \
|
|
45
|
-
--ext <扩展名> \
|
|
46
|
-
--filesize <字节数> \
|
|
47
|
-
--object "<存储对象>" \
|
|
48
|
-
--duration <时长秒数>
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
**参数对照(全部来自素材上传返回):**
|
|
52
|
-
|
|
53
|
-
| 参数 | 来源 | 说明 |
|
|
54
|
-
|------|------|------|
|
|
55
|
-
| `--course-id` | 当前课程上下文 | 目标课程 ID |
|
|
56
|
-
| `--title` | 用户指定或 filename 推断 | 课件展示名称 |
|
|
57
|
-
| `--type` | 返回 `.type` | video / audio / document |
|
|
58
|
-
| `--uuid` | 返回 `.uuid` | 素材唯一标识 |
|
|
59
|
-
| `--filename` | 返回 `.filename` | 原始文件名 |
|
|
60
|
-
| `--ext` | 返回 `.ext` | 文件扩展名 |
|
|
61
|
-
| `--filesize` | 返回 `.filesize` | 文件字节数 |
|
|
62
|
-
| `--object` | 返回 `.object` | 存储对象键 |
|
|
63
|
-
| `--duration` | 默认规则或用户指定 | 学习时长(秒) |
|
|
64
|
-
|
|
65
|
-
### 2. 课件列表 `course +lesson-list`
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
soke course +lesson-list --course-id <courseId>
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
返回指定课程下所有课件的列表,包含课件 ID、标题、类型、排序序号。
|
|
72
|
-
|
|
73
|
-
### 3. 课件详情 `course +lesson-get`
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
soke course +lesson-get --lesson-id <lessonId>
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
返回单个课件的完整信息(标题、类型、素材引用、时长、转码状态等)。
|
|
80
|
-
|
|
81
|
-
### 4. 课件排序 `course +lesson-sort`
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
soke course +lesson-sort --course-id <courseId> --order "<lessonId1>,<lessonId2>,<lessonId3>"
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
调整课程内课件的展示顺序,`--order` 为逗号分隔的课件 ID 列表,按先后顺序排列。
|
|
88
|
-
|
|
89
|
-
## 输出标准
|
|
90
|
-
|
|
91
|
-
创建课件成功后输出摘要:
|
|
92
|
-
|
|
93
|
-
```
|
|
94
|
-
✅ 课件创建成功
|
|
95
|
-
- 课程: {courseTitle} (ID: {courseId})
|
|
96
|
-
- 课件: {title}
|
|
97
|
-
- 类型: {type}
|
|
98
|
-
- 时长: {duration}s
|
|
99
|
-
- 课件 ID: {lessonId}
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
排序完成后输出更新后的课件列表。
|
|
103
|
-
|
|
104
|
-
## 注意事项
|
|
105
|
-
|
|
106
|
-
1. **仅支持三种类型**:`video` `audio` `document`,图片等其他类型不支持作为课件
|
|
107
|
-
2. 所有素材引用参数必须来自 `soke-material` 上传返回,严禁手动编造 uuid / object 等字段
|
|
108
|
-
3. 课件创建后自动关联到指定课程,无需额外绑定步骤
|
|
109
|
-
4. 排序使用课件 ID 列表,未在列表中的课件保持在末尾,不丢失
|
|
110
|
-
5. 课件删除、批量导入等操作不在 CLI 范围,如有需求引导至后台操作
|
|
111
|
-
|
|
112
|
-
## 检查清单
|
|
113
|
-
|
|
114
|
-
- [ ] 素材已完成上传,持有完整返回对象
|
|
115
|
-
- [ ] courseId 已确认存在
|
|
116
|
-
- [ ] type 仅限 video / audio / document
|
|
117
|
-
- [ ] uuid / filename / type / ext / filesize / object 六个字段均来自上传返回
|
|
118
|
-
- [ ] duration 已按类型默认规则或用户指定设定
|
|
119
|
-
- [ ] 课件创建完成后能通过 lesson-list 验证
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: soke-material
|
|
3
|
-
version: 1.0.0
|
|
4
|
-
description: 素材库管理 — 上传视频/音频/文档素材,返回资产元信息供课件创建直接使用
|
|
5
|
-
tags: [soke, material, upload, video, audio, document]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# 素材库管理
|
|
9
|
-
|
|
10
|
-
## 触发描述
|
|
11
|
-
|
|
12
|
-
用户需要上传课程素材(视频、音频、文档)到素材库,或从已有素材库中选择素材时触发本技能。
|
|
13
|
-
|
|
14
|
-
本技能支持两条路径:
|
|
15
|
-
- **本地上传**:上传本地文件到素材库,返回标准资产信息
|
|
16
|
-
- **素材库选择**:从已有素材库中搜索、浏览、选择已上传的素材
|
|
17
|
-
|
|
18
|
-
## 输入要求
|
|
19
|
-
|
|
20
|
-
**本地上传:**
|
|
21
|
-
- **文件路径**:本地文件的绝对路径
|
|
22
|
-
- **支持格式**:
|
|
23
|
-
| 类型 | 扩展名 |
|
|
24
|
-
|------|--------|
|
|
25
|
-
| 视频 | `.mp4` `.avi` `.mov` |
|
|
26
|
-
| 音频 | `.mp3` `.wav` |
|
|
27
|
-
| 文档 | `.pdf` `.ppt` `.pptx` `.doc` `.docx` |
|
|
28
|
-
- **文件大小**:无硬性限制,由平台存储策略决定
|
|
29
|
-
|
|
30
|
-
**素材库选择:**
|
|
31
|
-
- 由调度方(soke-course)通过弹窗选定素材
|
|
32
|
-
- 素材库中的文件已是上传态,直接返回复用即可
|
|
33
|
-
|
|
34
|
-
## 执行流程
|
|
35
|
-
|
|
36
|
-
### 第一步:确认文件有效性
|
|
37
|
-
|
|
38
|
-
1. 校验文件存在且可读
|
|
39
|
-
2. 校验扩展名在支持列表中
|
|
40
|
-
3. 获取文件大小(bytes)
|
|
41
|
-
|
|
42
|
-
### 第二步:调用上传接口
|
|
43
|
-
|
|
44
|
-
使用 CLI 命令上传素材:
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
soke file +upload --path "/absolute/path/to/file"
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### 第三步:解析返回结果
|
|
51
|
-
|
|
52
|
-
上传成功后返回如下结构体,**全部字段原样保留**,供后续课件创建直接引用:
|
|
53
|
-
|
|
54
|
-
```json
|
|
55
|
-
{
|
|
56
|
-
"uuid": "素材唯一标识",
|
|
57
|
-
"filename": "原始文件名",
|
|
58
|
-
"type": "video | audio | document",
|
|
59
|
-
"ext": "mp4 | avi | mov | mp3 | wav | pdf | ppt | pptx | doc | docx",
|
|
60
|
-
"filesize": 文件字节数,
|
|
61
|
-
"object": "存储路径/对象键"
|
|
62
|
-
}
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### 第四步:设定默认时长
|
|
66
|
-
|
|
67
|
-
素材默认学习时长按类型分别处理:
|
|
68
|
-
|
|
69
|
-
| 素材类型 | 默认时长(秒) |
|
|
70
|
-
|----------|----------------|
|
|
71
|
-
| `video` | 600s |
|
|
72
|
-
| `audio` | 300s |
|
|
73
|
-
| `document` | 0s |
|
|
74
|
-
|
|
75
|
-
> 视频和音频实际时长以文件元数据为准;文档类不计时可设 0。
|
|
76
|
-
|
|
77
|
-
## 输出标准
|
|
78
|
-
|
|
79
|
-
完成上传后向用户输出摘要:
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
✅ 素材上传成功
|
|
83
|
-
- 文件名: {filename}
|
|
84
|
-
- 类型: {type}
|
|
85
|
-
- 大小: {filesize} bytes
|
|
86
|
-
- UUID: {uuid}
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
可将完整返回对象缓存在上下文中,供后续 `soke-lesson` 创建课件时直接引用。
|
|
90
|
-
|
|
91
|
-
## 注意事项
|
|
92
|
-
|
|
93
|
-
1. 上传前确认文件路径正确,扩展名匹配实际文件类型
|
|
94
|
-
2. 不支持图片格式(`.jpg` `.png` 等),图片应使用其他上传通道
|
|
95
|
-
3. 文档类素材默认时长 0s,如需强制学习时长可在课件创建时覆盖
|
|
96
|
-
4. 返回的 `uuid` 是课件创建的唯一索引,务必保留
|
|
97
|
-
5. 素材上传后默认进入当前租户的素材库,权限与租户一致
|
|
98
|
-
|
|
99
|
-
## 检查清单
|
|
100
|
-
|
|
101
|
-
- [ ] 文件路径存在且可访问
|
|
102
|
-
- [ ] 扩展名在 `.mp4|.avi|.mov|.mp3|.wav|.pdf|.ppt|.pptx|.doc|.docx` 中
|
|
103
|
-
- [ ] 上传完成,获取到完整返回对象(uuid / filename / type / ext / filesize / object)
|
|
104
|
-
- [ ] 默认时长按类型正确设定
|
|
105
|
-
- [ ] 返回数据完整传递给后续课件创建流程
|