@sokeai/cli 1.0.76 → 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 +6 -2
- package/skills/soke-course/SKILL.md +3 -3
- package/skills/soke-course/references/course-list-courses.md +49 -84
- package/skills/soke-course/references/intent-cases.md +2 -2
- package/skills/soke-course/references/sop-full-workflow.md +4 -2
- package/skills/soke-course/references/subs/publish/SOP.md +21 -3
- package/skills/soke-course/references/subs/query/SOP.md +9 -7
- package/skills/soke-course/references/subs/settings/SOP.md +2 -1
- package/skills/soke-exam-question-pool/SKILL.md +2 -2
- package/skills/soke-task/SKILL.md +32 -10
- package/skills/soke-training-demand/SKILL.md +2 -2
- 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
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# soke-cli 环境检测
|
|
2
|
+
|
|
3
|
+
独立于页面/创作管线,仅在需要调用平台接口时执行。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 依赖清单
|
|
8
|
+
|
|
9
|
+
| 依赖 | 最低版本 | 用途 | 安装方式 |
|
|
10
|
+
|------|----------|------|----------|
|
|
11
|
+
| Node.js | v14+ | 运行时 | https://nodejs.org/ |
|
|
12
|
+
| soke-cli | 1.0.67+ | 平台 CLI | 平台提供安装包 |
|
|
13
|
+
| Python 3 | 3.10+ | 脚本执行 | https://www.python.org/ |
|
|
14
|
+
| pdftotext | 系统自带 | PDF 文本提取 | macOS: `brew install poppler` · Linux: `apt install poppler-utils` |
|
|
15
|
+
|
|
16
|
+
> ✅ `soke-cli auth login` 采用 **OAuth 设备流**:命令启动后自动尝试打开浏览器,同时输出授权链接,阻塞等待扫码授权。检测到未登录时,**由 AI 自动执行**(后台拉起 → 提取授权链接 → 前台引导用户扫码 → 授权完成后自动重检继续),**不要求用户手动运行命令**。
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 检测流程
|
|
21
|
+
|
|
22
|
+
按顺序执行,任一步不通过则停止并引导修复。
|
|
23
|
+
|
|
24
|
+
### 1. Node.js 版本
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
node --version
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- ✅ >= 14.0.0 → 通过
|
|
31
|
+
- ❌ 未安装或版本过低 → 提示:`需要 Node.js >= 14.0.0,请先安装或升级`
|
|
32
|
+
- ❌ `command not found` → 提示安装 Node.js
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
### 2. soke-cli 安装
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
which soke-cli && soke-cli --version
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
- ✅ 输出版本号 → 通过
|
|
43
|
+
- ❌ `command not found` → 执行安装:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
mkdir -p ~/.npm-global
|
|
47
|
+
npm config set prefix ~/.npm-global
|
|
48
|
+
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.zshrc
|
|
49
|
+
source ~/.zshrc
|
|
50
|
+
npm install -g @sokeai/cli@latest
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
安装后重新执行 `which soke-cli && soke-cli --version` 验证。
|
|
54
|
+
|
|
55
|
+
> Windows:将 `~/.zshrc` 替换为 PowerShell profile 路径,PATH 追加方式不同(见安装指南 Q2)。
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
### 3. 登录状态
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
soke-cli config show
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
判定字段:`用户凭证`(非空即已登录)。
|
|
66
|
+
|
|
67
|
+
- ✅ 输出含 `用户凭证` 且非空 → 通过,进入下一步企业绑定检查
|
|
68
|
+
- ❌ `用户凭证` 为空 → **AI 自动执行登录**(🔇 后台,无需用户手动跑命令):
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# Bash 工具参数:run_in_background=true, dangerouslyDisableSandbox=true
|
|
72
|
+
soke-cli auth login
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
自动执行流程:
|
|
76
|
+
|
|
77
|
+
1. 后台启动 `soke-cli auth login`,命令阻塞等待授权(OAuth 设备流,不会自行退出)
|
|
78
|
+
2. 读取命令输出,提取授权链接(形如 `https://saas.soke.cn/...?cli_redirect_uri=http%3A%2F%2F127.0.0.1%3A<port>%2Fcallback`)
|
|
79
|
+
3. 📺 前台告知用户(一句话):「浏览器已自动打开,请扫码完成授权;若未自动打开,请访问:<授权链接>」
|
|
80
|
+
4. 等待命令退出(用户在浏览器完成授权后进程自动结束)→ 重新执行 `soke-cli config show` 确认 `用户凭证` 已存在
|
|
81
|
+
5. 授权完成 → 静默继续下一步企业绑定检查;若用户放弃/超时 → 停掉后台任务,提示用户随时说「继续」重新拉起登录
|
|
82
|
+
|
|
83
|
+
> ⏳ 授权链接带 `cli_redirect_uri` 回调参数,必须完整复制、不可截断;浏览器未自动打开时用户手动访问该链接即可。
|
|
84
|
+
|
|
85
|
+
- ❌ 返回 `401 Unauthorized` → Token 过期,自动重新登录:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
soke-cli auth logout
|
|
89
|
+
soke-cli auth login # 按上述自动执行流程(后台拉起 + 引导扫码)
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
登录成功后重新执行 `soke-cli config show`,确认 `用户凭证` 已恢复。
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### 4. 企业绑定(corp binding)
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
soke-cli config show
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
判定字段:`corpid`(非空即已绑定企业)。
|
|
103
|
+
|
|
104
|
+
- ✅ `corpid` 非空 → 通过,记录企业 ID 供后续使用
|
|
105
|
+
- ❌ `corpid` 为空 → 提示用户:
|
|
106
|
+
> 已登录,但当前账号未绑定企业。请先在授客AI平台完成企业绑定,再重新执行 `soke-cli auth login --force`
|
|
107
|
+
|
|
108
|
+
如需强制刷新企业绑定信息,执行:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
soke-cli auth login --force # 自动执行流程同上(后台拉起 + 引导扫码)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
完成后重新执行 `soke-cli config show`,确认 `corpid` 非空。
|
|
115
|
+
|
|
116
|
+
如果仍为空,说明当前账号未加入任何企业,需联系管理员添加。
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 常见故障速查
|
|
121
|
+
|
|
122
|
+
| 现象 | 原因 | 修复 |
|
|
123
|
+
|------|------|------|
|
|
124
|
+
| `which soke-cli` 无输出但已安装 | PATH 未生效 | `source ~/.zshrc` 或新开终端 |
|
|
125
|
+
| `401 Unauthorized` | Token 过期 | `soke-cli auth logout && soke-cli auth login`(后者自动执行) |
|
|
126
|
+
| 登录时浏览器未打开 | 系统无默认浏览器 | 用户手动访问 AI 提供的授权链接(完整复制含 `cli_redirect_uri`) |
|
|
127
|
+
| 授权链接无法访问 | 链接被截断/过期 | 停掉当前后台任务,重新 `soke-cli auth login` 生成新链接 |
|
|
128
|
+
| `npm: command not found` | Node.js 未安装 | 安装 Node.js >= 14 |
|
|
129
|
+
| `EACCES` 权限错误 | npm 全局安装需要 sudo | 使用 `~/.npm-global` 方案(见步骤2) |
|
|
130
|
+
| `corpid` 为空 | 未绑定企业 | `soke-cli auth login --force` 重新授权,或联系管理员 |
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## 使用方式
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
# 在 ai-coach-director 中
|
|
138
|
+
read references/env-check.md
|
|
139
|
+
按顺序执行 4 步检测:
|
|
140
|
+
1. node --version
|
|
141
|
+
2. which soke-cli && soke-cli --version
|
|
142
|
+
3. soke-cli config show → 确认「用户凭证」非空;为空则自动执行 soke-cli auth login(后台拉起 + 引导扫码)
|
|
143
|
+
4. soke-cli config show → 确认 corpid 非空
|
|
144
|
+
全部通过 → 记录企业 ID,继续调度
|
|
145
|
+
任一步失败 → 按修复流程处理(登录类自动拉起授权),不进入内容生成/同步
|
|
146
|
+
```
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# 通用执行约束(Common Execution Rules)
|
|
2
|
+
|
|
3
|
+
> v2.41 从 exec-handbook.md 拆分。所有 Part 共享的 CLI 参数、材料铁律、字段类型硬规则、状态快照规则。
|
|
4
|
+
> 各 Part 专属模板/断言/反面案例见 `exec-partN.md`。
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## CLI 参数固定值
|
|
9
|
+
|
|
10
|
+
- `--scenario-id <id>`(不是 `--scenario <id>`)
|
|
11
|
+
- apply 需要 `--idempotency-key <unique>` 和 `--reason "PartN同步"`(v2.41:省略 --reason 会导致 422)
|
|
12
|
+
- 每次 apply 后必须重新获取 `updated_at` 作为下次 `--base-updated-at`
|
|
13
|
+
- **所有 CLI 输出一律 `> /tmp/xxx.json 2>/dev/null` 重定向**,禁止 `--pretty` 直出到对话。Python 从重定向文件提取字段,不回显 JSON 原文。
|
|
14
|
+
- **apply 禁止用于验证**。验证数据用 `+get-scenario`,apply 后只从返回值提取 `updated_at`(`tail -1` 或 Python 提取),不回显 operations/snapshot_id。用 apply 回读环节会导致 `add_conversation_step` 重复添加。
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 材料预处理铁律(v2.41 强化:预过滤)
|
|
19
|
+
|
|
20
|
+
非结构化材料(PDF/DOCX/PPT)处理流程:
|
|
21
|
+
1. **预过滤(v2.41 新增)**:先看文件名/标题,只对与场景直接相关的材料做 pdftotext。无关材料直接标注「已跳过:与场景无关」。
|
|
22
|
+
2. **一次成型写提炼稿**:pdftotext 提取到 `/tmp/` → **一次性** grep 定位 + sed 读取关键段落 → Write 落盘提炼稿到 `/tmp/xxx_refined.md`。**禁止分多轮 sed 回看**。
|
|
23
|
+
3. **原始材料全文不再进入后续 Part 上下文**——Part1-5 生成只读提炼稿
|
|
24
|
+
4. 提炼稿只保留 Part1-5 所需结构化要素(业务背景/训练对象/话术/画像线索/异议/红线/评分线索)
|
|
25
|
+
5. 提炼稿删除无关段落(目录/版权页/附录/重复章节)
|
|
26
|
+
6. 提炼稿 ≤1500 字(硬上限),超了二次压缩只保留核心要素
|
|
27
|
+
7. **提炼稿落盘后,后续 Part1-5 只 Read 这一个文件**,不再碰原始 PDF/DOCX
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 后台静默规则(G1/G3)
|
|
32
|
+
|
|
33
|
+
所有 CLI 错误(stderr / 非零退出 / 422 / 409)**禁止对用户展示**。AI 内部分析修正(最多 2 次重试),仍失败仅告知"Part N 同步异常"+ ≤50 字原因。
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 输出过滤规则(v2.35 反压缩强化)
|
|
38
|
+
|
|
39
|
+
后台 Python 脚本的 print() 输出、JSON 文件大小、字符数统计、自查断言结果("✅ xxx")→ 🔇 后台静默,**禁止出现在对话消息中**。
|
|
40
|
+
|
|
41
|
+
**CLI 输出强制静默**:
|
|
42
|
+
- 所有 soke-cli 命令输出一律 `> /tmp/xxx.json 2>/dev/null` 重定向
|
|
43
|
+
- preview/apply 命令一律 `2>/dev/null | tail -3`,只看结尾 3 行状态
|
|
44
|
+
- `+get-scenario` 回读一律 `> /tmp/xxx.json` 重定向,Python 只打印 `True/False` 布尔判断
|
|
45
|
+
- snapshot_id / updated_at / warnings / operations 回显**一律吞掉**
|
|
46
|
+
- **apply 禁止用于验证**:apply 是写入操作,不是读取操作。用 apply 回读环节会导致 `add_conversation_step` 重复添加 → 需快照回滚 → 浪费 3-5 积分。验证用 `+get-scenario`。
|
|
47
|
+
- 仅失败时输出 ≤50 字原因
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 平台头像库
|
|
52
|
+
|
|
53
|
+
正确路径前缀:`https://newsokeeditorcdn.soke.cn/public/ai/roles_avatars/`(❌ 错误:`/public/ai/avatar/`,存进去 UI 空白)。
|
|
54
|
+
头像 URL 一律通过 `soke-cli ai-training +list-role-avatars` **重定向到 /tmp/avatars.json 后 Python 按性别/年龄关键词过滤 title 字段提取 url**(禁止 `--pretty` 直出,禁止 `--gender`/`--age-group` 参数——CLI 不支持)。声音同理重定向到 `/tmp/voices.json` 后 Python 提取 `id`。
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## JSON 字段类型硬规则
|
|
59
|
+
|
|
60
|
+
> 原则:**文档是什么类型,就严格按什么类型生成。**
|
|
61
|
+
|
|
62
|
+
### string 字段:必须生成字符串
|
|
63
|
+
|
|
64
|
+
多条内容用顿号、分号、编号或 `\n` 拼接为一个字符串,禁止写成数组。
|
|
65
|
+
|
|
66
|
+
关键 string 字段:`name`、`description`、`key_points`、`role_data.name`、`role_data.description`、`role_data.avatar`、`role_data.communication_style`、`role_data.background`、`role_data.personality_type`、`role_data.personality`、`role_data.voice_id`、`ai_roles_overall_description`、`opening_dialogue`、`conversation_steps[].step_name`、`conversation_steps[].student_objective`、`conversation_steps[].ai_task`、`criteria_data.name`、`criteria_data.description`、`dimensions[].code`、`dimensions[].name`、`dimensions[].description`、`dimensions[].scoring_rule`
|
|
67
|
+
|
|
68
|
+
### string[] 字段:只有明确数组字段才生成数组
|
|
69
|
+
|
|
70
|
+
每条一个元素:`tags`、`conversation_knowledge_base_ids`、`scoring_knowledge_base_ids`、`role_data.tags`、`role_data.knowledge_level`、`role_data.taboos_objections`、`dimensions[].criteria`
|
|
71
|
+
|
|
72
|
+
### number / boolean / null 字段
|
|
73
|
+
|
|
74
|
+
- number 不加引号:`weight`、`total_weight`、`max_rounds`、`max_practice_attempts`、`passing_score`、`pass_difficulty`、`dimensions[].sort_order`
|
|
75
|
+
- boolean 不加引号:`is_custom_role`、`is_custom_criteria`、`ai_assistance_enabled`
|
|
76
|
+
- null 写 `null`,不写空字符串或 `"null"`
|
|
77
|
+
|
|
78
|
+
### 创建/更新差异
|
|
79
|
+
|
|
80
|
+
- 创建 `conversation_steps` 用 `ai_objective`;更新用 `ai_task`。
|
|
81
|
+
- 创建 `conversation_steps[].sort_order` 写字符串(`"1"`);评分维度 `sort_order` 写数字(`1`)。
|
|
82
|
+
|
|
83
|
+
### 生成前自检
|
|
84
|
+
|
|
85
|
+
```text
|
|
86
|
+
☐ string 字段没有被写成数组或对象
|
|
87
|
+
☐ string[] 字段没有被写成逗号分隔字符串
|
|
88
|
+
☐ number 字段没有加引号
|
|
89
|
+
☐ boolean 字段没有加引号
|
|
90
|
+
☐ null 字段没有写成 "" 或 "null"
|
|
91
|
+
☐ 创建/更新 sort_order 类型符合对应接口要求
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 状态快照与缓存规则
|
|
97
|
+
|
|
98
|
+
### state-snapshot.json 结构
|
|
99
|
+
|
|
100
|
+
```json
|
|
101
|
+
{
|
|
102
|
+
"mode": "partwise",
|
|
103
|
+
"scenario_id": "scn_xxx",
|
|
104
|
+
"scenario_short": "b7730195",
|
|
105
|
+
"updated_at": "2026-07-10T01:40:58.216028Z",
|
|
106
|
+
"current_part": "part3",
|
|
107
|
+
"confirmed_data": { "part1": {}, "part2": {}, "part3": {}, "part4": {}, "part5": {} },
|
|
108
|
+
"applied": { "part1": true, "part2": true, "part3": false, "part4": false, "part5": false },
|
|
109
|
+
"cached": { "role_profile": {}, "scenario_type": "" },
|
|
110
|
+
"file_reads": 0
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 依赖与回滚规则
|
|
115
|
+
|
|
116
|
+
- Part1 修改 → Part2-Part5 全部待复核
|
|
117
|
+
- Part2 修改 → 至少重检 Part3 与 Part5
|
|
118
|
+
- Part3 修改 → 至少重检 Part4 与 Part5
|
|
119
|
+
- Part4 修改 → 重检 Part5
|
|
120
|
+
- Part5 修改通常不反推前序 Part,但若改动通关分数/难度,需检查与 Part4 评分体系一致
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 沙箱绕过(G4)
|
|
125
|
+
|
|
126
|
+
WorkBuddy Bash 调用 soke-cli 必须设 `dangerouslyDisableSandbox: true`。
|