@sokeai/cli 1.0.75 → 1.0.77
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 +7 -7
- package/package.json +1 -1
- package/scripts/build-binaries.sh +1 -1
- package/scripts/e2e-test.sh +75 -3
- package/skills/SKILL.md +18 -1
- package/skills/soke-ai-coach-director/CHANGELOG.md +203 -0
- package/skills/soke-ai-coach-director/README.md +123 -0
- package/skills/soke-ai-coach-director/SKILL.md +221 -0
- package/skills/soke-ai-coach-director/coaching/knowledge-packager/knowledge-packager.md +91 -0
- package/skills/soke-ai-coach-director/coaching/prompt-engineer/parts/part2-roles.md +97 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part3-flow.md +3 -3
- package/skills/soke-ai-coach-director/coaching/prompt-engineer/prompt-engineer.md +76 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-optimizer/prompt-optimizer.md +77 -58
- package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/workbuddy.md +2 -3
- package/skills/soke-ai-coach-director/platform/interaction.md +103 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/platform/publish-gate.md +3 -3
- package/skills/{ai-coach-director → soke-ai-coach-director}/platform/resource-finalizer.md +10 -35
- package/skills/{ai-coach-director → soke-ai-coach-director}/platform/soke-ai-training/soke-ai-training.md +33 -3
- package/skills/soke-ai-coach-director/platform/sync-engine.md +39 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/references/change-log-partwise-refactor.md +1 -1
- package/skills/soke-ai-coach-director/references/env-check.md +146 -0
- package/skills/soke-ai-coach-director/references/exec-common.md +126 -0
- package/skills/soke-ai-coach-director/references/exec-handbook.md +621 -0
- package/skills/soke-ai-coach-director/references/exec-part1.md +86 -0
- package/skills/soke-ai-coach-director/references/exec-part2.md +145 -0
- package/skills/soke-ai-coach-director/references/exec-part3.md +91 -0
- package/skills/soke-ai-coach-director/references/exec-part4.md +187 -0
- package/skills/soke-ai-coach-director/references/gate-check-matrix.md +46 -0
- package/skills/soke-ai-coach-director/references/micro-tune-labels.md +30 -0
- package/skills/soke-ai-coach-director/references/platform-api-pitfalls.md +49 -0
- package/skills/soke-ai-coach-director/references/role-resource-matching.md +45 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/references/self-improvement-examples.md +2 -0
- package/skills/soke-ai-coach-director/references/self-learning-engine.md +489 -0
- package/skills/soke-ai-coach-director/references/subs/part1/SOP.md +17 -0
- package/skills/soke-ai-coach-director/references/subs/part2/SOP.md +34 -0
- package/skills/soke-ai-coach-director/references/subs/part3/SOP.md +27 -0
- package/skills/soke-ai-coach-director/references/subs/part4/SOP.md +31 -0
- package/skills/soke-ai-coach-director/references/subs/publish/SOP.md +81 -0
- package/skills/soke-ai-coach-director/references/subs/tune/SOP.md +92 -0
- package/skills/soke-ai-coach-director/references/verified-cli-cheatsheet.md +56 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/scripts/activator.sh +0 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/scripts/error-detector.sh +0 -0
- package/skills/{ai-coach-director → soke-ai-coach-director}/scripts/extract-skill.sh +0 -0
- package/skills/soke-ai-coach-director/scripts/gate_check.py +112 -0
- package/skills/soke-ai-coach-director/scripts/validate_operations.py +403 -0
- package/skills/soke-certificate/SKILL.md +717 -0
- package/skills/soke-course/README.md +12 -2
- package/skills/soke-course/SKILL.md +12 -10
- package/skills/soke-course/references/course-list-courses.md +49 -84
- package/skills/soke-course/references/intent-cases.md +8 -8
- package/skills/soke-course/references/sop-full-workflow.md +11 -6
- package/skills/soke-course/references/sop-publish-check.md +3 -1
- package/skills/soke-course/references/subs/publish/SOP.md +34 -4
- package/skills/soke-course/references/subs/query/SOP.md +9 -7
- package/skills/soke-course/references/subs/settings/SOP.md +87 -25
- package/skills/soke-exam-question-pool/SKILL.md +80 -112
- package/skills/soke-task/SKILL.md +32 -10
- package/skills/soke-training-demand/SKILL.md +150 -43
- package/skills/ai-coach-director/SKILL.md +0 -1563
- package/skills/ai-coach-director/coaching/prompt-engineer/parts/part2-roles.md +0 -317
- package/skills/ai-coach-director/coaching/prompt-engineer/prompt-engineer.md +0 -244
- package/skills/ai-coach-director/platform/interaction.md +0 -315
- package/skills/ai-coach-director/platform/sync-engine.md +0 -1101
- package/skills/ai-coach-director/references/cases/create//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/224/265/350/257/235/347/272/246/350/256/277//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/224/265/350/257/235/347/272/246/350/256/277_/346/240/207/345/207/206/347/237/245/350/257/206/345/272/223.md +0 -199
- package/skills/ai-coach-director/references/cases/create//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/224/265/350/257/235/347/272/246/350/256/277//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/224/265/350/257/235/347/272/246/350/256/277/347/237/245/350/257/206/345/272/223.md +0 -388
- package/skills/ai-coach-director/references/cases/create//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204/tuv-knowledge-base.md +0 -125
- package/skills/ai-coach-director/references/cases/create//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204/tuv-p03-first-call-scenario-prompt.md +0 -428
- package/skills/ai-coach-director/references/cases/create//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204P03/351/231/252/347/273/203/346/211/247/350/241/214/346/226/271/346/241/210_20260610.md +0 -225
- package/skills/ai-coach-director/references/cases/create//346/237/220/345/234/260/346/226/271/351/223/266/350/241/214//346/237/220/345/234/260/346/226/271/351/223/266/350/241/214/345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/224/265/350/257/235/347/272/246/350/256/277AI/351/231/252/347/273/203/346/265/213/350/257/225/347/224/250/344/276/213/345/220/210/351/233/206.md +0 -525
- package/skills/ai-coach-director/references/cases/create//347/211/251/346/265/201/350/241/214/344/270/232//347/211/251/346/265/201/350/241/214/344/270/232-/345/210/235/346/254/241/346/213/234/350/256/277/351/246/231/347/262/276/351/246/231/346/226/231/345/256/242/346/210/267.md +0 -146
- package/skills/ai-coach-director/references/cases/create//351/205/222/345/272/227/351/244/220/351/245/256//351/205/222/345/272/227/351/244/220/351/245/256AI/351/231/252/347/273/203_/346/240/207/346/235/2061_/346/226/260/345/223/201/346/216/250/351/224/200_20260701.md +0 -230
- package/skills/ai-coach-director/references/cases/create//351/205/222/345/272/227/351/244/220/351/245/256//351/205/222/345/272/227/351/244/220/351/245/256AI/351/231/252/347/273/203_/346/240/207/346/235/2062_/345/202/254/350/217/234/345/256/211/346/212/232_20260701.md +0 -257
- package/skills/ai-coach-director/references/cases/create//351/205/222/345/272/227/351/244/220/351/245/256//351/205/222/345/272/227/351/244/220/351/245/256AI/351/231/252/347/273/203_/346/240/207/346/235/2063_/345/267/256/350/257/204/345/233/236/350/256/277_20260701.md +0 -259
- package/skills/ai-coach-director/references/cases/create//351/205/222/345/272/227/351/244/220/351/245/256//351/205/222/345/272/227/351/244/220/351/245/256AI/351/231/252/347/273/203/345/234/272/346/231/257/346/226/271/346/241/210_20260701.md +0 -452
- package/skills/ai-coach-director/references/cases/create//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206_/345/256/242/346/210/267/347/241/256/350/256/244/345/217/215/351/246/210/350/241/250.md +0 -133
- package/skills/ai-coach-director/references/cases/create//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206_/351/231/252/347/273/203/346/217/220/347/244/272/350/257/215_v1.md +0 -333
- package/skills/ai-coach-director/references/cases/create//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206_/351/231/252/347/273/203/346/217/220/347/244/272/350/257/215_v2_Part1-Part5.md +0 -649
- package/skills/ai-coach-director/references/env-check.md +0 -167
- package/skills/ai-coach-director/references/platform-api-pitfalls.md +0 -232
- package/skills/ai-coach-director/references/role-resource-matching.md +0 -349
- package/skills/ai-coach-director/references/verified-cli-cheatsheet.md +0 -203
- /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/ERRORS-TEMPLATE.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/FEATURE_REQUESTS-TEMPLATE.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/LEARNINGS-TEMPLATE.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/assets/SKILL-TEMPLATE.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part1-basic.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part4-scoring.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/prompt-engineer/parts/part5-constraints.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/coaching/role-profiler/role-profiler.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/README.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/qclaw.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/wukong.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/adapters/zework.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/platform/api-fallback.md +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/345/256/242/346/210/267/350/247/222/350/211/262/346/250/241/346/235/277/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203Bad Case/346/240/267/346/234/254/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/345/210/233/345/273/272/351/227/256/351/242/230/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/345/234/272/346/231/257/345/210/206/347/261/273/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/345/256/242/346/210/267/346/235/220/346/226/231/346/270/205/345/215/225/344/270/216/350/256/277/350/260/210/351/242/230/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/345/276/256/350/260/203/351/227/256/351/242/230/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/346/212/200/346/234/257/350/276/271/347/225/214/344/270/216/346/216/222/351/232/234/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/346/217/220/347/244/272/350/257/215/346/250/241/345/235/227/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/346/225/260/346/215/256/346/214/207/346/240/207/344/270/216/347/234/213/346/235/277/345/217/243/345/276/204/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/346/265/213/350/257/225/347/224/250/344/276/213/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/350/257/204/345/210/206/346/240/207/345/207/206/347/273/204/344/273/266/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/231/252/347/273/203/351/241/271/347/233/256/346/241/210/344/276/213/345/244/215/347/233/230/345/272/223.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/AI/351/241/276/345/256/242/350/247/222/350/211/262/346/250/241/346/213/237_GoodCase_BadCase_20260701.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/create//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/224/265/350/257/235/347/272/246/350/256/277//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/345/256/242/346/210/267/346/235/220/346/226/231/346/261/207/346/200/273_2026-05-19_1341.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/create//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267/347/237/245/350/257/206/345/272/223/347/224/237/346/210/220_20260615.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/create//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267//346/226/260/350/203/275/346/272/220/350/275/246/344/270/273/350/264/267/351/231/252/347/273/203/346/217/220/347/244/272/350/257/215/347/224/237/346/210/220_20260615.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/create//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204//346/237/220/345/233/275/351/231/205/346/243/200/346/265/213/346/234/272/346/236/204/351/231/252/347/273/203/346/211/247/350/241/214/346/226/271/346/241/210/344/272/244/344/273/230/350/256/260/345/275/225_20260610.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/create//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206//351/231/214/346/213/234/344/277/241/346/201/257/346/224/266/351/233/206_/346/217/220/347/244/272/350/257/215/346/220/255/345/273/272_20260622.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_V1.1_20260616.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_V1.2_20260616.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215_/345/216/213/347/274/251/347/211/210_V2.0_20260616.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/347/263/273/345/210/227//344/274/201/344/270/232/345/256/266/347/216/213/346/200/273/346/217/220/347/244/272/350/257/215/344/274/230/345/214/226_20260616.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277AI/351/231/252/347/273/203/347/263/273/347/273/237_/346/265/213/350/257/225/345/217/215/351/246/210/346/261/207/346/200/273_2026-06-01.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277KYC/344/277/241/344/273/273/345/200/274/347/246/201/344/273/244_2026-06-09_0932.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277KYC/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_v2_20260608.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_v1.1.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/346/217/220/347/244/272/350/257/215_/344/274/230/345/214/226/347/211/210_v1.2.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases/micro-tune//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/347/263/273/345/210/227//345/206/234/346/210/267/345/274/240/350/200/201/346/235/277/346/217/220/347/244/272/350/257/215/344/274/230/345/214/226_V2_/350/257/212/346/226/255/344/272/244/344/273/230_20260609.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases//345/233/233/345/244/247/345/234/272/346/231/257_GoodCase_BadCase_20260701.md" +0 -0
- /package/skills/{ai-coach-director → soke-ai-coach-director}/references/cases//346/241/210/344/276/213/345/272/223/350/241/245/345/205/205_2026-06-24.md" +0 -0
|
@@ -81,6 +81,8 @@ soke-cli course +list-course-users --course-id "COURSE-UUID"
|
|
|
81
81
|
| `+list-categories` | 查询课程分类(获取 category-id) |
|
|
82
82
|
| `+create` | 创建课程基本信息 |
|
|
83
83
|
| `+update` | 更新课程信息 |
|
|
84
|
+
| `+delete` | 删除未发布或已关闭课程 |
|
|
85
|
+
| `+advanced` | 更新课程高级设置 |
|
|
84
86
|
| `+publish` | 发布课程 |
|
|
85
87
|
| `+get-course` | 查询课程详情 |
|
|
86
88
|
| `+list-courses` | 查询课程列表 |
|
|
@@ -142,6 +144,11 @@ done
|
|
|
142
144
|
|
|
143
145
|
# 5. 发布课程
|
|
144
146
|
soke-cli course +publish --course-id "$course_id"
|
|
147
|
+
|
|
148
|
+
# 或定时发布课程,输入北京时间
|
|
149
|
+
soke-cli course +publish \
|
|
150
|
+
--course-id "$course_id" \
|
|
151
|
+
--publish-time "2026-07-14 17:24:42"
|
|
145
152
|
```
|
|
146
153
|
|
|
147
154
|
### 场景2: 管理现有课程
|
|
@@ -162,6 +169,9 @@ soke-cli course +update \
|
|
|
162
169
|
--title "新标题" \
|
|
163
170
|
--description "新描述"
|
|
164
171
|
|
|
172
|
+
# 删除未发布或已关闭课程
|
|
173
|
+
soke-cli course +delete --course-id "COURSE-UUID"
|
|
174
|
+
|
|
165
175
|
# 添加新课件
|
|
166
176
|
media_id=$(soke-cli file +upload --file ./new-lesson.mp4 --format json | jq -r '.data.uuid')
|
|
167
177
|
soke-cli course +lesson-create \
|
|
@@ -209,8 +219,8 @@ const endTime = new Date('2024-12-31').getTime(); // 1735660799000
|
|
|
209
219
|
- `2`: 已关闭
|
|
210
220
|
|
|
211
221
|
**课程来源 (is-in)**:
|
|
212
|
-
- `0`:
|
|
213
|
-
- `1`:
|
|
222
|
+
- `0`: 外部课列表
|
|
223
|
+
- `1`: 内部课列表
|
|
214
224
|
|
|
215
225
|
**学习模式 (study_type)**:
|
|
216
226
|
- `1`: 自由式(可任意顺序学习)
|
|
@@ -214,13 +214,14 @@ Gate 2→3: ✅ 课件 ≥ 1
|
|
|
214
214
|
#### Phase 3: 课程设置
|
|
215
215
|
|
|
216
216
|
→ read references/subs/settings/SOP.md 执行
|
|
217
|
-
基础: title/description(course +update)
|
|
217
|
+
基础: title/credit/description/image(course +update)
|
|
218
218
|
|
|
219
219
|
→ read references/subs/template/SOP.md Step 3 执行
|
|
220
220
|
将当前所有设置项以表格形式展示(仅「设置项」+「当前值」两列)
|
|
221
221
|
告知用户: "想修改哪项?直接告诉我就行。"
|
|
222
222
|
用户指令处理:
|
|
223
|
-
-
|
|
223
|
+
- 标题/学分/描述/封面 → exec: course +update(✅ CLI 支持) → 刷新表格
|
|
224
|
+
- 学习模式/倍速/人脸/提醒/评价/拖动/评论/文档防挂机/交流群二维码 → exec: course +advanced(✅ CLI 支持;交流群二维码本地图片用 --image-file,命令内部只上传 OSS,不进入图片库) → 刷新表格
|
|
224
225
|
- 其他设置 → "已记录: {项} → {新值}(需在后台操作: {路径})" → 刷新表格
|
|
225
226
|
- "可以了"/"继续" → 退出 Phase 3
|
|
226
227
|
循环直到用户确认
|
|
@@ -231,8 +232,9 @@ Gate 3→4: 无硬阻塞
|
|
|
231
232
|
|
|
232
233
|
→ read references/subs/publish/SOP.md 执行
|
|
233
234
|
Gate Check: 标题/分类/课件数量/转码状态
|
|
234
|
-
|
|
235
|
-
|
|
235
|
+
直接发布 → course +publish --course-id <uuid>
|
|
236
|
+
定时发布 → course +publish --course-id <uuid> --publish-time "<北京时间>"
|
|
237
|
+
审批/批量 → ⚠️ CLI 不支持
|
|
236
238
|
|
|
237
239
|
Gate 4→5: ✅ status=1
|
|
238
240
|
|
|
@@ -261,7 +263,7 @@ Gate 4→5: ✅ status=1
|
|
|
261
263
|
#### Phase 6: 运营维护
|
|
262
264
|
|
|
263
265
|
→ read references/subs/query/SOP.md 执行(进度/记录/人脸)
|
|
264
|
-
→ read references/subs/publish/SOP.md
|
|
266
|
+
→ read references/subs/publish/SOP.md 执行(关闭/删除;删除仅允许 status=0/2)
|
|
265
267
|
→ read references/subs/copy/SOP.md 执行(复制,⚠️)
|
|
266
268
|
|
|
267
269
|
### 3.3 课件子流程
|
|
@@ -291,7 +293,7 @@ Gate 4→5: ✅ status=1
|
|
|
291
293
|
|
|
292
294
|
### 3.8 维护子流程
|
|
293
295
|
|
|
294
|
-
流程: read references/subs/publish/SOP.md
|
|
296
|
+
流程: read references/subs/publish/SOP.md(关闭/删除,删除前必须校验 status=0 未发布或 status=2 已关闭)/ references/subs/copy/SOP.md(复制)/ references/subs/category/SOP.md(分类)
|
|
295
297
|
|
|
296
298
|
### SOP 执行 5 步法
|
|
297
299
|
|
|
@@ -378,11 +380,11 @@ Gate 4→5: ✅ status=1
|
|
|
378
380
|
|------|------|
|
|
379
381
|
| 课件类型 | image/article/link/quiz/homework |
|
|
380
382
|
| 分类 | 新增分类 |
|
|
381
|
-
| 课程设置 |
|
|
382
|
-
| 高级设置 |
|
|
383
|
+
| 课程设置 | point/lector_id/tags/简介插图 |
|
|
384
|
+
| 高级设置 | 证书/签名 |
|
|
383
385
|
| 收费 | 价格/试看 |
|
|
384
|
-
| 发布 |
|
|
385
|
-
| 维护 |
|
|
386
|
+
| 发布 | 审批/批量 |
|
|
387
|
+
| 维护 | 复制 |
|
|
386
388
|
|
|
387
389
|
### 中断恢复
|
|
388
390
|
用户"继续"/"接着做": 检查 course-id → 有:查状态+课件→报告→继续 | 无:列课程→选→恢复
|
|
@@ -2,22 +2,23 @@
|
|
|
2
2
|
|
|
3
3
|
## 命令说明
|
|
4
4
|
|
|
5
|
-
`soke-cli course +list-courses`
|
|
5
|
+
`soke-cli course +list-courses` 用于查询课程列表,转发到 `/skills/course/list`,支持按课程列表模糊搜索关键字、课程分类、课程状态、课程来源、我的课程和协同关系筛选。
|
|
6
6
|
|
|
7
7
|
## 基本用法
|
|
8
8
|
|
|
9
|
-
###
|
|
9
|
+
### 查询已发布课程
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
12
|
soke-cli course +list-courses \
|
|
13
|
-
--
|
|
14
|
-
--
|
|
13
|
+
--status 1 \
|
|
14
|
+
--page 1 \
|
|
15
|
+
--page-size 10
|
|
15
16
|
```
|
|
16
17
|
|
|
17
18
|
**说明**:
|
|
18
|
-
- `--
|
|
19
|
-
- `--
|
|
20
|
-
-
|
|
19
|
+
- `--status`: 课程状态,默认 `1`
|
|
20
|
+
- `--page`: 页码,默认 `1`
|
|
21
|
+
- `--page-size`: 每页数据,默认 `10`
|
|
21
22
|
|
|
22
23
|
## 高级筛选
|
|
23
24
|
|
|
@@ -26,20 +27,14 @@ soke-cli course +list-courses \
|
|
|
26
27
|
```bash
|
|
27
28
|
# 查询已发布的课程
|
|
28
29
|
soke-cli course +list-courses \
|
|
29
|
-
--start-time 1704038400000 \
|
|
30
|
-
--end-time 1735660799000 \
|
|
31
30
|
--status 1
|
|
32
31
|
|
|
33
32
|
# 查询未发布的课程
|
|
34
33
|
soke-cli course +list-courses \
|
|
35
|
-
--start-time 1704038400000 \
|
|
36
|
-
--end-time 1735660799000 \
|
|
37
34
|
--status 0
|
|
38
35
|
|
|
39
36
|
# 查询已关闭的课程
|
|
40
37
|
soke-cli course +list-courses \
|
|
41
|
-
--start-time 1704038400000 \
|
|
42
|
-
--end-time 1735660799000 \
|
|
43
38
|
--status 2
|
|
44
39
|
```
|
|
45
40
|
|
|
@@ -51,44 +46,46 @@ soke-cli course +list-courses \
|
|
|
51
46
|
### 按课程来源筛选
|
|
52
47
|
|
|
53
48
|
```bash
|
|
54
|
-
#
|
|
49
|
+
# 查询内部课列表
|
|
55
50
|
soke-cli course +list-courses \
|
|
56
|
-
--start-time 1704038400000 \
|
|
57
|
-
--end-time 1735660799000 \
|
|
58
51
|
--is-in 1
|
|
59
52
|
|
|
60
|
-
#
|
|
53
|
+
# 查询外部课列表
|
|
61
54
|
soke-cli course +list-courses \
|
|
62
|
-
--start-time 1704038400000 \
|
|
63
|
-
--end-time 1735660799000 \
|
|
64
55
|
--is-in 0
|
|
65
56
|
```
|
|
66
57
|
|
|
67
58
|
**来源说明**:
|
|
68
|
-
- `0`:
|
|
69
|
-
- `1`:
|
|
59
|
+
- `0`: 外部课列表
|
|
60
|
+
- `1`: 内部课列表
|
|
70
61
|
|
|
71
|
-
###
|
|
62
|
+
### 按关键字筛选
|
|
72
63
|
|
|
73
64
|
```bash
|
|
74
|
-
soke-cli course +list-
|
|
65
|
+
soke-cli course +list-courses \
|
|
66
|
+
--keyword "测试"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**说明**:`--keyword` 是课程列表模糊搜索关键字。
|
|
75
70
|
|
|
71
|
+
### 按课程分类筛选
|
|
72
|
+
|
|
73
|
+
```bash
|
|
76
74
|
soke-cli course +list-courses \
|
|
77
|
-
--
|
|
78
|
-
--end-time 1735660799000 \
|
|
79
|
-
--category-id "category-uuid-here"
|
|
75
|
+
--category-path "category-uuid-here"
|
|
80
76
|
```
|
|
81
77
|
|
|
78
|
+
**说明**:`--category-path` 会作为接口参数 `categoryPath` 传递,用于按照课程分类 ID 筛选课程。
|
|
79
|
+
|
|
82
80
|
### 组合筛选
|
|
83
81
|
|
|
84
82
|
```bash
|
|
85
|
-
#
|
|
83
|
+
# 查询已发布的内部课,只看我创建的,并限制课程分类
|
|
86
84
|
soke-cli course +list-courses \
|
|
87
|
-
--start-time 1704038400000 \
|
|
88
|
-
--end-time 1735660799000 \
|
|
89
85
|
--status 1 \
|
|
90
86
|
--is-in 1 \
|
|
91
|
-
--
|
|
87
|
+
--is-my 1 \
|
|
88
|
+
--category-path "category123"
|
|
92
89
|
```
|
|
93
90
|
|
|
94
91
|
## 分页查询
|
|
@@ -96,22 +93,32 @@ soke-cli course +list-courses \
|
|
|
96
93
|
```bash
|
|
97
94
|
# 第一页,每页10条
|
|
98
95
|
soke-cli course +list-courses \
|
|
99
|
-
--start-time 1704038400000 \
|
|
100
|
-
--end-time 1735660799000 \
|
|
101
96
|
--page 1 \
|
|
102
97
|
--page-size 10
|
|
103
98
|
|
|
104
99
|
# 第二页,每页10条
|
|
105
100
|
soke-cli course +list-courses \
|
|
106
|
-
--start-time 1704038400000 \
|
|
107
|
-
--end-time 1735660799000 \
|
|
108
101
|
--page 2 \
|
|
109
102
|
--page-size 10
|
|
110
103
|
```
|
|
111
104
|
|
|
112
105
|
**分页说明**:
|
|
113
106
|
- `--page`: 页码,从1开始,默认为1
|
|
114
|
-
- `--page-size`:
|
|
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=是 |
|
|
115
122
|
|
|
116
123
|
## 返回数据示例
|
|
117
124
|
|
|
@@ -166,66 +173,24 @@ soke-cli course +list-courses \
|
|
|
166
173
|
| description | String | 课程描述 |
|
|
167
174
|
| pc_url | String | PC端跳转链接 |
|
|
168
175
|
| mobile_url | String | 移动端跳转链接 |
|
|
169
|
-
| create_time | Int |
|
|
170
|
-
| update_time | Int |
|
|
176
|
+
| create_time | Int/String | 创建时间 |
|
|
177
|
+
| update_time | Int/String | 更新时间 |
|
|
171
178
|
| create_dept_user_id | String | 创建人ID |
|
|
172
179
|
| create_dept_user_name | String | 创建人姓名 |
|
|
173
180
|
| has_more | Int | 是否还有更多数据(1=有, 0=没有) |
|
|
174
181
|
|
|
175
|
-
## 时间戳转换
|
|
176
|
-
|
|
177
|
-
### JavaScript/Node.js
|
|
178
|
-
```javascript
|
|
179
|
-
// 获取当前时间戳(毫秒)
|
|
180
|
-
const now = Date.now();
|
|
181
|
-
|
|
182
|
-
// 获取指定日期的时间戳
|
|
183
|
-
const date = new Date('2024-01-01 00:00:00');
|
|
184
|
-
const timestamp = date.getTime();
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
### Python
|
|
188
|
-
```python
|
|
189
|
-
import time
|
|
190
|
-
from datetime import datetime
|
|
191
|
-
|
|
192
|
-
# 获取当前时间戳(毫秒)
|
|
193
|
-
now = int(time.time() * 1000)
|
|
194
|
-
|
|
195
|
-
# 获取指定日期的时间戳
|
|
196
|
-
dt = datetime(2024, 1, 1, 0, 0, 0)
|
|
197
|
-
timestamp = int(dt.timestamp() * 1000)
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
### Go
|
|
201
|
-
```go
|
|
202
|
-
import "time"
|
|
203
|
-
|
|
204
|
-
// 获取当前时间戳(毫秒)
|
|
205
|
-
now := time.Now().UnixMilli()
|
|
206
|
-
|
|
207
|
-
// 获取指定日期的时间戳
|
|
208
|
-
t := time.Date(2024, 1, 1, 0, 0, 0, 0, time.UTC)
|
|
209
|
-
timestamp := t.UnixMilli()
|
|
210
|
-
```
|
|
211
|
-
|
|
212
182
|
## 常见问题
|
|
213
183
|
|
|
214
|
-
### Q: 为什么时间范围不能超过365天?
|
|
215
|
-
A: 这是API的限制,为了防止一次查询返回过多数据。如果需要查询更长时间范围的数据,可以分多次查询。
|
|
216
|
-
|
|
217
184
|
### Q: 如何查询所有课程?
|
|
218
|
-
A:
|
|
185
|
+
A: 使用分页逐页查询,例如:
|
|
219
186
|
```bash
|
|
220
|
-
# 查询2024年的课程
|
|
221
187
|
soke-cli course +list-courses \
|
|
222
|
-
--
|
|
223
|
-
--
|
|
188
|
+
--page 1 \
|
|
189
|
+
--page-size 10
|
|
224
190
|
|
|
225
|
-
# 查询2025年的课程
|
|
226
191
|
soke-cli course +list-courses \
|
|
227
|
-
--
|
|
228
|
-
--
|
|
192
|
+
--page 2 \
|
|
193
|
+
--page-size 10
|
|
229
194
|
```
|
|
230
195
|
|
|
231
196
|
### Q: 如何知道是否还有更多数据?
|
|
@@ -30,14 +30,14 @@
|
|
|
30
30
|
| 14 | "换个封面" | cover | Phase 3(⚠️ CLI 不支持) |
|
|
31
31
|
| 15 | "加几个标签" | tags | Phase 3(⚠️ CLI 不支持) |
|
|
32
32
|
|
|
33
|
-
##
|
|
33
|
+
## advanced(高级设置)
|
|
34
34
|
|
|
35
35
|
| # | 用户输入 | 提取 | 路由 |
|
|
36
36
|
|---|---------|------|------|
|
|
37
|
-
| 16 | "开启倍速" |
|
|
38
|
-
| 17 | "改成解锁式学习" | study_type=2 | Phase 3
|
|
39
|
-
| 18 | "开启人脸识别" |
|
|
40
|
-
| 19 | "设置未学提醒,每周推送" |
|
|
37
|
+
| 16 | "开启倍速" | is_accelerate=1 | Phase 3(course +advanced) |
|
|
38
|
+
| 17 | "改成解锁式学习" | study_type=2 | Phase 3(course +advanced) |
|
|
39
|
+
| 18 | "开启人脸识别" | open_face_recognition=1 | Phase 3(course +advanced) |
|
|
40
|
+
| 19 | "设置未学提醒,每周推送" | is_remind=1, remind_days=7 | Phase 3(course +advanced) |
|
|
41
41
|
| 20 | "关联证书" | certificate | Phase 3(⚠️ 不支持) |
|
|
42
42
|
|
|
43
43
|
## charge(收费)
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
|---|---------|------|------|
|
|
54
54
|
| 23 | "发布课程" | publish | Phase 4 |
|
|
55
55
|
| 24 | "上线吧" | publish | Phase 4 |
|
|
56
|
-
| 25 | "定时发布,下周一早上9点" | scheduled | Phase 4
|
|
56
|
+
| 25 | "定时发布,下周一早上9点" | scheduled, publish_time | Phase 4 |
|
|
57
57
|
| 26 | "提交审批" | approval | Phase 4(⚠️ 不支持) |
|
|
58
58
|
|
|
59
59
|
## assign(指派)
|
|
@@ -78,8 +78,8 @@
|
|
|
78
78
|
|
|
79
79
|
| # | 用户输入 | 提取 | 路由 |
|
|
80
80
|
|---|---------|------|------|
|
|
81
|
-
| 35 | "关闭这门课" | close | Phase 6
|
|
82
|
-
| 36 | "删除课程" | delete | Phase 6
|
|
81
|
+
| 35 | "关闭这门课" | close | Phase 6(course +update --action close) |
|
|
82
|
+
| 36 | "删除课程" | delete | Phase 6(先查 status,仅 0/2 可删) |
|
|
83
83
|
| 37 | "复制这门课,叫 V2.0" | copy, title=V2.0 | Phase 6(⚠️ 不支持) |
|
|
84
84
|
| 38 | "批量发布这几门" | batch, publish | Phase 6(⚠️ 不支持) |
|
|
85
85
|
|
|
@@ -92,8 +92,10 @@ Gate 2→3: ✅ lesson_ids 长度 ≥ 1
|
|
|
92
92
|
|
|
93
93
|
### Step 3.2: 高级设置
|
|
94
94
|
调度: soke-course-settings
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
操作: course +advanced --course-id <uuid> ...
|
|
96
|
+
支持: 学习模式/待办推送/截止后学习/人脸识别/学习中人脸识别/未学提醒/倍速/拖动/评价/交流群二维码/文档防挂机/评论
|
|
97
|
+
交流群二维码: 用户给本地图片时,使用 course +advanced --image-file <path>,命令内部只上传 OSS 并生成 imageOssUrl,不进入图片库
|
|
98
|
+
证书/签名仍需后台操作。
|
|
97
99
|
|
|
98
100
|
### Step 3.3: 收费设置(可选)
|
|
99
101
|
读取: subs/charge/SOP.md 执行
|
|
@@ -120,12 +122,13 @@ Gate 3→4: 无硬阻塞(设置可跳过)
|
|
|
120
122
|
仅警告 → 询问是否忽略
|
|
121
123
|
|
|
122
124
|
### Step 4.2: 执行发布
|
|
123
|
-
|
|
125
|
+
直接发布: course +publish --course-id <uuid>
|
|
126
|
+
定时发布: course +publish --course-id <uuid> --publish-time "<北京时间>"
|
|
124
127
|
提取: 发布状态 → 存上下文
|
|
125
128
|
失败: 检查 Gate Check 结果
|
|
126
129
|
|
|
127
130
|
### Step 4.3: 后续(可选)
|
|
128
|
-
|
|
131
|
+
审批/批量 → ⚠️ CLI 不支持 → 告知后台路径
|
|
129
132
|
|
|
130
133
|
Gate 4→5: ✅ status=1
|
|
131
134
|
|
|
@@ -163,9 +166,11 @@ Gate 4→5: ✅ status=1
|
|
|
163
166
|
读取: subs/query/SOP.md 执行
|
|
164
167
|
操作: course +list-course-users / +get-course-user / +list-lesson-learns / +list-lesson-faces
|
|
165
168
|
|
|
166
|
-
### Step 6.2:
|
|
169
|
+
### Step 6.2: 关闭/删除
|
|
167
170
|
读取: subs/publish/SOP.md 执行
|
|
168
|
-
|
|
171
|
+
关闭: course +update --course-id <uuid> --action close
|
|
172
|
+
删除: 先查 status,仅 status=0 未发布或 status=2 已关闭时执行 course +delete --course-id <uuid>
|
|
173
|
+
阻塞: status=1 已发布课程不能直接删除,先关闭再删除
|
|
169
174
|
|
|
170
175
|
### Step 6.3: 复制(⚠️ CLI 不支持)
|
|
171
176
|
读取: subs/copy/SOP.md 执行
|
|
@@ -53,25 +53,55 @@ tags: [soke, publish, gate-check, status, approval]
|
|
|
53
53
|
|
|
54
54
|
### 第二步:执行发布 `course +publish`
|
|
55
55
|
|
|
56
|
+
直接发布:
|
|
57
|
+
|
|
56
58
|
```bash
|
|
57
59
|
soke course +publish --course-id <courseId>
|
|
58
60
|
```
|
|
59
61
|
|
|
62
|
+
定时发布:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
soke course +publish \
|
|
66
|
+
--course-id <courseId> \
|
|
67
|
+
--publish-time "2026-07-14 17:24:42"
|
|
68
|
+
```
|
|
69
|
+
|
|
60
70
|
| 参数 | 必填 | 说明 |
|
|
61
71
|
|------|------|------|
|
|
62
72
|
| `--course-id` | 是 | 课程 ID |
|
|
73
|
+
| `--publish-time` | 否 | 定时发布时间,输入北京时间;不传则直接发布 |
|
|
74
|
+
|
|
75
|
+
> 实现口径:传入非零 `--publish-time` 时开启定时发布;未传或传 `0000-00-00 00:00:00` 时不开启定时发布。
|
|
63
76
|
|
|
64
77
|
发布成功后课程状态由 `0` → `1`。
|
|
65
78
|
|
|
79
|
+
## 关闭课程
|
|
80
|
+
|
|
81
|
+
关闭已发布课程:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
soke course +update --course-id <courseId> --action close
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
关闭成功后课程状态由 `1` → `2`,学员端不可见,历史学习记录保留。已关闭课程可再次执行 `course +publish` 重新发布。
|
|
88
|
+
|
|
89
|
+
## 删除课程
|
|
90
|
+
|
|
91
|
+
删除未发布或已关闭课程:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
soke course +delete --course-id <courseId>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
删除前必须先查询课程状态。仅允许删除 `status=0` 未发布或 `status=2` 已关闭课程;`status=1` 已发布课程必须先执行 `course +update --course-id <courseId> --action close` 关闭后再删除。删除成功后课程状态变为已删除(`status=-1` 或 `status=3`)。
|
|
98
|
+
|
|
66
99
|
## ⚠️ CLI 不支持的操作
|
|
67
100
|
|
|
68
101
|
| 操作 | 说明 | 替代路径 |
|
|
69
102
|
|------|------|---------|
|
|
70
|
-
| **定时发布** | 设置未来时间自动发布 | 后台 → 课程管理 → 发布设置 → 定时发布 |
|
|
71
103
|
| **审批流** | 发布需经过审批流程 | 后台 → 系统设置 → 审批设置 |
|
|
72
104
|
| **批量发布** | 一次发布多门课程 | 后台 → 课程管理 → 批量操作 |
|
|
73
|
-
| **关闭课程** | 将已发布课程下线 | 后台 → 课程管理 → 课程操作 → 关闭 |
|
|
74
|
-
| **删除课程** | 物理删除课程及所有数据 | 后台 → 课程管理 → 课程操作 → 删除 |
|
|
75
105
|
|
|
76
106
|
## 审批规则
|
|
77
107
|
|
|
@@ -123,7 +153,7 @@ Gate Check 不通过(示例):
|
|
|
123
153
|
2. 转码是异步过程,上传视频/音频后需等待转码完成再发布
|
|
124
154
|
3. 课程关闭后学员端不可见,但历史学习记录保留
|
|
125
155
|
4. 关闭后可重新发布,状态回到 1
|
|
126
|
-
5. 删除课程不可逆,CLI
|
|
156
|
+
5. 删除课程不可逆,CLI 只允许删除未发布(status=0)或已关闭(status=2)课程
|
|
127
157
|
6. 审批流默认关闭,如需开启需后台手动配置
|
|
128
158
|
|
|
129
159
|
## 检查清单
|
|
@@ -13,8 +13,8 @@ tags: [soke, query, data, analytics, learning-records]
|
|
|
13
13
|
|
|
14
14
|
## 通用约束
|
|
15
15
|
|
|
16
|
-
-
|
|
17
|
-
-
|
|
16
|
+
- 课程列表走 `/skills/course/list`,不再使用创建时间范围筛选。
|
|
17
|
+
- 学习记录类查询如包含时间参数,时间戳仍使用**毫秒级 Unix timestamp**。
|
|
18
18
|
- **状态码含义**:
|
|
19
19
|
- `status`(课程):`0`=未发布,`1`=已发布,`2`=已关闭
|
|
20
20
|
- `face_status`(人脸):`1`=验证成功,`2`=验证失败
|
|
@@ -29,13 +29,15 @@ soke course +list-courses
|
|
|
29
29
|
|
|
30
30
|
| 参数 | 必填 | 说明 |
|
|
31
31
|
|------|------|------|
|
|
32
|
-
| `--keyword` | 否 |
|
|
32
|
+
| `--keyword` | 否 | 课程列表模糊搜索关键字 |
|
|
33
|
+
| `--category-path` | 否 | 课程分类 ID,用于按照分类筛选课程 |
|
|
33
34
|
| `--status` | 否 | 按状态过滤(0/1/2) |
|
|
34
|
-
| `--
|
|
35
|
+
| `--is-in` | 否 | 课程来源:0=外部课列表,1=内部课列表(默认 1) |
|
|
36
|
+
| `--is-my` | 否 | 是否只看我创建的(默认 0) |
|
|
37
|
+
| `--is-joint` | 否 | 协同给我的(默认 0) |
|
|
38
|
+
| `--joint-out` | 否 | 我协同出去的(默认 0) |
|
|
35
39
|
| `--page` | 否 | 页码(默认 1) |
|
|
36
|
-
| `--page-size` | 否 | 每页条数(默认
|
|
37
|
-
| `--start-time` | 否 | 创建时间起始(ms) |
|
|
38
|
-
| `--end-time` | 否 | 创建时间结束(ms),与 start-time 跨度 ≤ 365 天 |
|
|
40
|
+
| `--page-size` | 否 | 每页条数(默认 10) |
|
|
39
41
|
|
|
40
42
|
返回课程列表,包含课程 ID、标题、状态、创建时间、学习人数等摘要。
|
|
41
43
|
|