@sokeai/cli 1.0.64 → 1.0.66

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.
@@ -0,0 +1,223 @@
1
+ ---
2
+ name: course-template
3
+ version: 1.1.0
4
+ description: 课程模板选择 — 7套预置配置,按业务场景快速初始化课程设置
5
+ tags: [soke, course, template, preset]
6
+ ---
7
+
8
+ # 课程模板
9
+
10
+ ## 触发描述
11
+
12
+ 创建课程(Step 1.3 完成)后立即触发。根据用户业务场景推荐对应模板,输出预置配置清单。Phase 3 时展示当前所有设置项,用户可用自然语言逐项覆盖。
13
+
14
+ ## 模板速查
15
+
16
+ | # | 模板名称 | 一句话场景 | 特征标签 |
17
+ |---|---------|-----------|---------|
18
+ | 1 | 合规必修(最严) | 安全/合规/法务培训 | 🔒最严管控 |
19
+ | 2 | 考核认证 | 上岗/资格/技能鉴定 | 📝考试+证书 |
20
+ | 3 | 新人入职 | 新员工/转岗培训 | 🚀快速上手 |
21
+ | 4 | 知识分享 | 内部分享/兴趣课程 | 📖自由学习 |
22
+ | 5 | 领导力/软技能 | 管理/沟通/职业素养 | 🎓进阶提升 |
23
+ | 6 | 产品/业务培训 | 新产品上线/业务更新 | 📦快速推送 |
24
+ | 7 | 不选择模板 | 手动逐项配置 | ✋自行设置 |
25
+
26
+ ---
27
+
28
+ ## 配置映射表
29
+
30
+ ### 1. 合规必修(最严)
31
+
32
+ | 设置项 | 值 | CLI | 说明 |
33
+ |--------|-----|:---:|------|
34
+ | 学习模式 | 必修 + 解锁式(LongDragon) | ⚠️ | 后台:学习设置 |
35
+ | 人脸识别 | 开启 | ⚠️ | 后台:学习设置 → 人脸识别 |
36
+ | 倍速播放 | 禁用 | ⚠️ | 后台:学习设置 → 播放控制 |
37
+ | 拖动进度条 | 禁用 | ⚠️ | 后台:学习设置 → 播放控制 |
38
+ | 电子签名 | 开启 | ⚠️ | 后台:证书设置 → 签名管理 |
39
+ | 收费 | 可选 | ⚠️ | 后台:收费设置 |
40
+ | 截止时间 | 需设置 | ⚠️ | 后台:学习设置 |
41
+ | 课程评价 | 打星评价 | ⚠️ | 后台:评价设置 |
42
+ | 关联证书 | 是 | ⚠️ | 后台:证书设置 |
43
+ | 发布方式 | 审批发布 | ⚠️ | 后台:发布设置 |
44
+
45
+ **适用场景**:安全培训、合规培训、法务必修课。需要强制学习+防作弊+可追溯。
46
+
47
+ ---
48
+
49
+ ### 2. 考核认证
50
+
51
+ | 设置项 | 值 | CLI | 说明 |
52
+ |--------|-----|:---:|------|
53
+ | 学习模式 | 必修 + 解锁式(LongDragon) | ⚠️ | 后台:学习设置 |
54
+ | 小测验 | 限制次数 | ⚠️ | 后台:课件设置 |
55
+ | 作业 | 多级审批 | ⚠️ | 后台:课件设置 |
56
+ | 人脸识别 | 选开 | ⚠️ | 后台:学习设置 → 人脸识别 |
57
+ | 关联证书 | 是 | ⚠️ | 后台:证书设置 |
58
+ | 发布方式 | 审批发布 | ⚠️ | 后台:发布设置 |
59
+
60
+ **适用场景**:上岗考试、资格认证、技能鉴定。需考核+认证背书。
61
+
62
+ ---
63
+
64
+ ### 3. 新人入职
65
+
66
+ | 设置项 | 值 | CLI | 说明 |
67
+ |--------|-----|:---:|------|
68
+ | 学习模式 | 必修 + 自由模式(Free) | ⚠️ | 后台:学习设置 |
69
+ | 倍速播放 | 开启 | ⚠️ | 后台:学习设置 → 播放控制 |
70
+ | 未学提醒 | 开启 | ⚠️ | 后台:学习设置 → 提醒设置 |
71
+ | 截止时间 | 需设置 | ⚠️ | 后台:学习设置 |
72
+ | 自动配课 | 开启 | ⚠️ | 后台:指派设置 |
73
+ | 课程评价 | 打星评价 | ⚠️ | 后台:评价设置 |
74
+
75
+ **适用场景**:新员工培训、转岗培训。需快速覆盖+自动推送+追踪完成。
76
+
77
+ ---
78
+
79
+ ### 4. 知识分享
80
+
81
+ | 设置项 | 值 | CLI | 说明 |
82
+ |--------|-----|:---:|------|
83
+ | 学习模式 | 选修 + 自由模式(Free) | ⚠️ | 后台:学习设置 |
84
+ | 倍速播放 | 开启 | ⚠️ | 后台:学习设置 → 播放控制 |
85
+ | 拖动进度条 | 允许 | ⚠️ | 后台:学习设置 → 播放控制 |
86
+ | 收费 | 免费 | ⚠️ | 后台:收费设置 |
87
+ | 小测验 | 不限次数 | ⚠️ | 后台:课件设置 |
88
+
89
+ **适用场景**:内部分享、兴趣课程、文化宣传。低门槛+自由学习+无考核压力。
90
+
91
+ ---
92
+
93
+ ### 5. 领导力/软技能
94
+
95
+ | 设置项 | 值 | CLI | 说明 |
96
+ |--------|-----|:---:|------|
97
+ | 学习模式 | 选修或必修 + 自由模式(Free) | ⚠️ | 后台:学习设置 |
98
+ | 作业 | 无需批改 | ⚠️ | 后台:课件设置 |
99
+ | 课程评价 | 打星评价 | ⚠️ | 后台:评价设置 |
100
+ | 关联证书 | 可选 | ⚠️ | 后台:证书设置 |
101
+ | 钉钉群 | 可配置 | ⚠️ | 后台:学习设置 → 钉钉二维码 |
102
+
103
+ **适用场景**:管理培训、沟通课程、职业素养。互动+讨论+可选认证。
104
+
105
+ ---
106
+
107
+ ### 6. 产品/业务培训
108
+
109
+ | 设置项 | 值 | CLI | 说明 |
110
+ |--------|-----|:---:|------|
111
+ | 学习模式 | 必修 + 自由模式(Free) | ⚠️ | 后台:学习设置 |
112
+ | 倍速播放 | 开启 | ⚠️ | 后台:学习设置 → 播放控制 |
113
+ | 拖动进度条 | 允许 | ⚠️ | 后台:学习设置 → 播放控制 |
114
+ | 小测验 | 开启 | ⚠️ | 后台:课件设置 |
115
+ | 定时发布 | 需设置 | ⚠️ | 后台:发布设置 |
116
+ | 未学提醒 | 开启 | ⚠️ | 后台:学习设置 → 提醒设置 |
117
+
118
+ **适用场景**:新产品上线、业务知识更新。需快速推送+检验理解+追踪覆盖。
119
+
120
+ ---
121
+
122
+ ### 7. 不选择模板
123
+
124
+ 不预置任何配置项,所有设置在 Phase 3 逐项手动确认。适合模板不匹配的场景或需要精细控制的课程。
125
+
126
+ ---
127
+
128
+ ## 执行流程
129
+
130
+ ### Step 1: 模板选择弹窗(Phase 1 创建课程后立即触发)
131
+
132
+ **先输出速查表:**
133
+
134
+ ```
135
+ 📋 可选模板(7种):
136
+
137
+ | # | 名称 | 适用场景 | 核心配置 |
138
+ |---|------|---------|---------|
139
+ | 1 | 合规必修 | 安全/合规/法务培训 | 人脸+签名+证书+审批 |
140
+ | 2 | 考核认证 | 上岗考试/资格认证 | 考试+证书+多级审批 |
141
+ | 3 | 新人入职 | 新员工/转岗培训 | 提醒+自动配课+评价 |
142
+ | 4 | 知识分享 | 内部分享/兴趣课程 | 自由学习+免费+不限测验 |
143
+ | 5 | 领导力/软技能 | 管理/沟通/职业素养 | 作业+评价+证书+钉钉群 |
144
+ | 6 | 产品/业务培训 | 新产品上线/业务更新 | 定时发布+小测验+提醒 |
145
+ | 7 | 不选择模板 | 模板不匹配/精细控制 | 无预设,后续逐项手动配置 |
146
+ ```
147
+
148
+ **再弹窗让用户选:**
149
+
150
+ ```
151
+ ask_user_question
152
+ question: "选择课程模板(7选1,详情见上方表格)"
153
+ header: "模板"
154
+ options:
155
+ - label: "1. 合规必修" description: "安全/合规/法务 · 人脸+签名+证书+审批"
156
+ - label: "2. 考核认证" description: "上岗考试/资格认证 · 考试+证书"
157
+ - label: "3. 新人入职" description: "新员工/转岗 · 提醒+配课+评价"
158
+ - label: "4. 知识分享" description: "内部分享/兴趣 · 自由学习+免费"
159
+ - label: "5. 领导力/软技能" description: "管理/沟通/素养 · 作业+证书+钉钉群"
160
+ - label: "6. 产品/业务培训" description: "产品上线/业务更新 · 定时+测验+提醒"
161
+ - label: "7. 不选择模板" description: "无预设,逐项手动配置"
162
+ ```
163
+
164
+ ### Step 2: 输出模板配置
165
+
166
+ 用户选 1-6 → 输出该模板完整配置表:
167
+
168
+ ```
169
+ ✅ 已选择「{模板名称}」模板
170
+
171
+ 📋 该模板预置以下设置(CLI 不支持,需后台操作):
172
+
173
+ | 设置项 | 预置值 | 后台路径 |
174
+ |--------|--------|---------|
175
+ | xxx | xxx | 后台 → xxx |
176
+ | ... | ... | ... |
177
+
178
+ ⏭️ 后续进入 Phase 3 时,可以逐项修改以上设置。回复"继续"进入下一步。
179
+ ```
180
+
181
+ 用户选 7.「不选择模板」→ 不输出配置清单,直接进入 Phase 1 的路由弹窗。
182
+
183
+ ### Step 3: Phase 3 展示当前设置(可逐项修改)
184
+
185
+ 进入 Phase 3 时,将当前课程所有设置项以表格形式展示:
186
+
187
+ ```
188
+ 📋 当前设置(模板: {模板名称}):
189
+
190
+ | 设置项 | 当前值 |
191
+ |--------|--------|
192
+ | 标题 | "xxx" |
193
+ | 描述 | "xxx" |
194
+ | 学习模式 | 必修+解锁式 |
195
+ | 人脸识别 | 开启 |
196
+ | ... | ... |
197
+
198
+ 💬 想修改哪项?直接告诉我就行,比如:
199
+ - "标题改成 xxx"
200
+ - "学习模式改成自由式"
201
+ - "关掉人脸识别"
202
+ - "加一个证书"
203
+ ```
204
+
205
+ 用户输入修改指令后的处理:
206
+
207
+ | 修改项 | CLI 支持 | 处理方式 |
208
+ |--------|:---:|------|
209
+ | 标题/描述 | ✅ | 执行 `course +update` 更新,表中同步刷新 |
210
+ | 其他所有设置 | ⚠️ | "该设置需在后台修改(路径: xxx)。我会在清单中标注为待修改。" |
211
+ | 修改模板预设值 | ⚠️ | "已记录:{设置项} → {新值}(需在后台操作)" |
212
+
213
+ 每次修改后刷新配置表,直到用户说"可以了"/"继续"进入下一步。
214
+
215
+ ---
216
+
217
+ ## 注意事项
218
+
219
+ 1. 模板选择后不自动通过 CLI 修改课程 — 大部分设置 CLI 不支持
220
+ 2. 模板选择不影响已创建的 title/description/category-id
221
+ 3. Phase 3 必须展示完整设置清单,让用户逐项确认/修改
222
+ 4. 用户选「不选择模板」(7)时,Phase 3 也需展示所有可配置项,方便用户了解能做什么
223
+ 5. 若用户选了模板但没去后台配置,发布阶段 Gate Check 可能阻塞
@@ -0,0 +1,68 @@
1
+ # 常见问题排错指南
2
+
3
+ ## 认证类
4
+
5
+ | 错误信息 | 原因 | 修复 |
6
+ |---------|------|------|
7
+ | `access_key_id not configured` | 未配置登录凭证 | `soke-cli config set --key access_key_id --value <your-key>` |
8
+ | `Token 过期 / 401 Unauthorized` | 登录 Token 已过期 | `soke-cli auth login` |
9
+ | `Permission denied / 403` | 当前账号无操作权限 | 联系管理员在开放平台开通权限 |
10
+
11
+ ## 课程操作类
12
+
13
+ | 错误信息 | 原因 | 修复 |
14
+ |---------|------|------|
15
+ | `课程标题为空` | 未设置标题 | `course +update --course-id <id> --title "标题"` |
16
+ | `分类不存在 / category not found` | category-id 无效 | `course +list-categories` 重新查询有效分类 |
17
+ | `课程不存在 / Course not found` | course-id 无效或已删除 | `course +list-courses` 确认课程列表 |
18
+ | `课程状态不是未发布,不能发布` | status=1(已发布)或2(已关闭) | 已发布无需操作;已关闭不能重新发布 |
19
+ | `课件数量不足` | 课程无课件 | 进入 Phase 2 添加课件 |
20
+
21
+ ## 上传类
22
+
23
+ | 错误信息 | 原因 | 修复 |
24
+ |---------|------|------|
25
+ | `file not found` | 文件路径错误或不存在 | 检查路径是否正确,使用绝对路径 |
26
+ | `文件类型不支持` | 格式不在支持列表中 | 转换为 .mp4/.mp3/.pdf 等支持格式 |
27
+ | `文件大小超过限制` | 文件超过上限 | 压缩文件后重试 |
28
+ | `OSS upload failed` | 网络问题或 Token 失效 | 重新登录后重试 |
29
+ | `转码失败` | 文件损坏或格式异常 | 删除失败课件,确认源文件可用后重新上传 |
30
+
31
+ ## 课件操作类
32
+
33
+ | 错误信息 | 原因 | 修复 |
34
+ |---------|------|------|
35
+ | `素材不存在 / media not found` | media-id 无效 | 确认素材已上传成功 `file +list-files` |
36
+ | `课件类型不匹配` | type 与素材不符 | type 必须与素材上传响应的 type 一致 |
37
+ | `课件已存在` | 重复创建 | 检查 `course +lesson-list` |
38
+ | `课件数量达到上限` | 课程课件数超标 | 删除不需要的课件 |
39
+
40
+ ## 指派类
41
+
42
+ | 错误信息 | 原因 | 修复 |
43
+ |---------|------|------|
44
+ | `课程未发布,不能指派` | status ≠ 1 | 先发布课程再指派 |
45
+ | `用户不存在` | user-id 无效 | `assign +list-users` 确认有效用户 |
46
+ | `部门不存在` | dept-id 无效 | `assign +list-departments` 确认有效部门 |
47
+
48
+ ## 查询类
49
+
50
+ | 错误信息 | 原因 | 修复 |
51
+ |---------|------|------|
52
+ | `时间范围超过365天` | +list-courses 限制 | 分批查询,每年一次 |
53
+ | `数据为空` | 筛选条件无匹配 | 放宽筛选条件或检查权限范围 |
54
+
55
+ ## 通用调试步骤
56
+
57
+ ```bash
58
+ # 1. 检查认证状态
59
+ soke-cli config show
60
+
61
+ # 2. 检查课程是否存在
62
+ soke-cli course +get-course --course-id "xxx" --format json
63
+
64
+ # 3. 检查课件状态
65
+ soke-cli course +lesson-list --course-id "xxx" --format json
66
+
67
+ # 4. 始终使用 --format json 获取结构化输出
68
+ ```
@@ -0,0 +1,82 @@
1
+ #!/bin/bash
2
+ # soke-course 环境就绪检查
3
+ # 检查 soke-cli 安装、登录状态、子能力 SOP 完整性
4
+
5
+ set -e
6
+
7
+ BASE_DIR="$(cd "$(dirname "$0")/.." && pwd)"
8
+
9
+ echo "🔍 课程发布主管 — 环境检查"
10
+ echo "============================"
11
+ echo ""
12
+
13
+ # 0. 安装指南
14
+ echo "📖 前置依赖:"
15
+ GUIDE="$BASE_DIR/soke-cli安装指南.md"
16
+ if [ -f "$GUIDE" ]; then
17
+ echo " ✅ soke-cli安装指南.md 存在"
18
+ else
19
+ echo " ❌ soke-cli安装指南.md 缺失 — AI 将无法读取认证说明"
20
+ fi
21
+
22
+ # 1. 检查 soke-cli
23
+ echo ""
24
+ echo "🔧 命令行工具:"
25
+ if ! command -v soke-cli &> /dev/null; then
26
+ echo " ❌ soke-cli 未安装"
27
+ echo " 请 Read soke-cli安装指南.md 按步骤安装"
28
+ exit 1
29
+ fi
30
+ echo " ✅ soke-cli: $(soke-cli --version)"
31
+
32
+ # 2. 检查登录状态
33
+ CONFIG=$(soke-cli config show 2>/dev/null || echo "")
34
+ if echo "$CONFIG" | grep -q "user_token"; then
35
+ echo " ✅ 已登录"
36
+ else
37
+ echo " ⚠️ 未登录或 Token 过期"
38
+ echo " 请运行: soke-cli auth login"
39
+ echo " 详见: soke-cli安装指南.md → 用户登录授权"
40
+ fi
41
+
42
+ # 3. 检查并列 skill
43
+ echo ""
44
+ echo "📋 并列技能:"
45
+ PARALLEL_SKILLS=("soke-material" "soke-lesson" "soke-assign")
46
+ for skill in "${PARALLEL_SKILLS[@]}"; do
47
+ SKILL_PATH="$BASE_DIR/../$skill/SKILL.md"
48
+ if [ -f "$SKILL_PATH" ]; then
49
+ echo " ✅ $skill"
50
+ else
51
+ echo " ⚠️ $skill (未找到)"
52
+ fi
53
+ done
54
+
55
+ # 4. 检查内嵌子能力 SOP
56
+ echo ""
57
+ echo "📁 子能力 SOP (references/subs/):"
58
+ SUBS=("category" "settings" "charge" "publish" "copy" "query" "ai")
59
+ for sub in "${SUBS[@]}"; do
60
+ SOP_PATH="$BASE_DIR/references/subs/$sub/SOP.md"
61
+ if [ -f "$SOP_PATH" ]; then
62
+ echo " ✅ $sub"
63
+ else
64
+ echo " ⚠️ $sub (未找到)"
65
+ fi
66
+ done
67
+
68
+ # 5. 检查 references 参考文件
69
+ echo ""
70
+ echo "📚 参考文档:"
71
+ REFS=("intent-cases.md" "sop-full-workflow.md" "sop-lesson-types.md" "sop-publish-check.md" "troubleshoot.md")
72
+ for ref in "${REFS[@]}"; do
73
+ REF_PATH="$BASE_DIR/references/$ref"
74
+ if [ -f "$REF_PATH" ]; then
75
+ echo " ✅ $ref"
76
+ else
77
+ echo " ⚠️ $ref (未找到)"
78
+ fi
79
+ done
80
+
81
+ echo ""
82
+ echo "✅ 环境检查完成"