cotutor 0.4.4 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/INSTALL.md +159 -0
  3. package/README.md +35 -19
  4. package/dist/app/cli/activities.d.ts +1 -1
  5. package/dist/app/cli/activities.js +2 -2
  6. package/dist/app/cli/cert.js +2 -1
  7. package/dist/app/cli/chalk/main.d.ts +0 -1
  8. package/dist/app/cli/chalk/main.js +8 -12
  9. package/dist/app/cli/commands.d.ts +50 -0
  10. package/dist/app/cli/commands.js +353 -0
  11. package/dist/app/cli/doctor.js +32 -17
  12. package/dist/app/cli/guide.d.ts +6 -0
  13. package/dist/app/cli/guide.js +17 -0
  14. package/dist/app/cli/init.d.ts +2 -0
  15. package/dist/app/cli/init.js +60 -6
  16. package/dist/app/cli/main.js +109 -46
  17. package/dist/app/cli/migrate.js +1 -1
  18. package/dist/app/cli/port.js +2 -10
  19. package/dist/app/cli/sandbox.js +2 -7
  20. package/dist/app/cli/service.d.ts +4 -1
  21. package/dist/app/cli/service.js +5 -2
  22. package/dist/app/cli/shipped.js +1 -1
  23. package/dist/app/cli/skeleton.d.ts +2 -0
  24. package/dist/app/cli/skeleton.js +3 -2
  25. package/dist/app/cli/skills.js +2 -2
  26. package/dist/app/cli/themes.js +2 -2
  27. package/dist/app/cli/tray.d.ts +6 -1
  28. package/dist/app/cli/tray.js +8 -5
  29. package/dist/app/cli/tutors.d.ts +2 -2
  30. package/dist/app/cli/tutors.js +4 -4
  31. package/dist/app/cli/update-cmd.js +4 -4
  32. package/dist/app/cli/usage.d.ts +26 -2
  33. package/dist/app/cli/usage.js +167 -38
  34. package/dist/app/http/app.js +1 -1
  35. package/dist/app/skills/analyze-doc.js +4 -8
  36. package/dist/app/skills/home-doc.js +3 -7
  37. package/dist/app/skills/tune-doc.js +4 -8
  38. package/dist/app/workspace.d.ts +16 -3
  39. package/dist/app/workspace.js +31 -9
  40. package/dist/runtime/home/home.js +1 -1
  41. package/dist/runtime/runner.js +2 -2
  42. package/dist/shared/home.d.ts +2 -0
  43. package/dist/shared/home.js +9 -0
  44. package/dist/ui/dev/dev-page.js +5 -5
  45. package/dist/ui/parent/parent-home-page.js +1 -1
  46. package/install.ps1 +5 -4
  47. package/install.sh +3 -3
  48. package/package.json +7 -5
  49. package/skills/cotutor-analyze/SKILL.md +1 -1
  50. package/skills/cotutor-analyze/references//345/221/275/344/273/244/344/270/216/346/226/207/344/273/266.md +168 -10
  51. package/skills/cotutor-home/SKILL.md +1 -1
  52. package/skills/cotutor-home/references//345/221/275/344/273/244.md +75 -7
  53. package/skills/cotutor-tune/SKILL.md +8 -8
  54. package/skills/cotutor-tune/references//345/255/227/346/256/265.md +164 -10
  55. package/skills/cotutor-tutor/SKILL.md +1 -1
@@ -5,7 +5,7 @@ description: 调 cotutor 的老师团:改某位老师的提示词(口气、规
5
5
 
6
6
  <!-- 给人看
7
7
  谁读:家长在 workspace 根开的编程助手
8
- 能改:机器件,upgrade 覆盖;references/字段.md 由 src/app/skills/tune-doc.ts 生成
8
+ 能改:机器件,refresh 覆盖;references/字段.md 由 src/app/skills/tune-doc.ts 生成
9
9
  改了:在试用 workspace 里开编程助手说一句「老师话太多」(《写提示词.md》§一)
10
10
  -->
11
11
 
@@ -27,9 +27,9 @@ description: 调 cotutor 的老师团:改某位老师的提示词(口气、规
27
27
  - 改 vault:pack 干跑(不花钱)。
28
28
  - 加老师:doctor,再 pack。
29
29
  - 不改 conversations/、evals/、ledger/。
30
- - 不碰 .cotutor/、.agents/skills/:那是机器件,upgrade 会覆盖。
30
+ - 不碰 .cotutor/、.agents/skills/:那是机器件,refresh 会覆盖。
31
31
  - .claude/skills 是链到 .agents/skills 的,同一份,也不碰。
32
- - 出厂老师的文件改过之后,cotutor upgrade 不再覆盖它,只报 diff。告诉家长这个代价;想回出厂的,用 `cotutor upgrade --force <老师>`。
32
+ - 出厂老师的文件改过之后,cotutor refresh 不再覆盖它,只报 diff。告诉家长这个代价;想回出厂的,用 `cotutor reset <老师>`。
33
33
  - agents/<name>.md 是老师文件,由 cotutor 读正文传给 Qwen,**不要把它们当子代理派**。
34
34
 
35
35
  ## 一、改某位老师的提示词
@@ -48,7 +48,7 @@ description: 调 cotutor 的老师团:改某位老师的提示词(口气、规
48
48
 
49
49
  - 老师文件要通用:换个孩子、换个学期也能用。关于孩子的事不进老师文件。
50
50
  - 老师文件只管自由话题。某个 activity 的做法不写进老师文件:activity 话题不读老师文件,写了也用不上。
51
- - 有脸的老师共同的守则(上下文包怎么看、三种回复、记忆段、不说错、不写文件、不派子代理)在机器技能 .agents/skills/cotutor-tutor/。应用每个话题第一条把原文放进上下文包,upgrade 会覆盖,别改它。
51
+ - 有脸的老师共同的守则(上下文包怎么看、三种回复、记忆段、不说错、不写文件、不派子代理)在机器技能 .agents/skills/cotutor-tutor/。应用每个话题第一条把原文放进上下文包,refresh 会覆盖,别改它。
52
52
  - 某位老师要和守则不一样的做法,写进那位老师文件里这一科那一节,它优先。只有守则的「不变的规矩」改不了。
53
53
 
54
54
  ### 路子
@@ -91,7 +91,7 @@ vault 里的文件**按属性找,不认文件名与目录**。
91
91
  - 记忆太长了(doctor 的 vault.memory 报),就帮家长合并、删旧的。
92
92
  - 每个 activity 的记忆各是一篇,老师之间、activity 之间不共享。家长想让「你说我画」也知道语文老师记的某条,就把那一行复制过去,一处一处确认。关于孩子本人的,挪进孩子的记忆,大家都看得到。
93
93
 
94
- vault 是 Obsidian 仓库,可能在 iCloud 里:
94
+ vault 不在 workspace 里:位置看 cotutor.json 的 `paths.vault`(相对 workspace 根,`~/` 是家目录),缺省是旁边的 `<目录名>-vault/`;旧版建的没写 `paths.vault`,vault 就是 workspace 根。家长可能用 Obsidian 打开它,也可能放在 iCloud 里:
95
95
 
96
96
  - 只改文本,不加标签,不放图片。
97
97
  - 新学期的入口文件要新建,不改上学期的,属性写全。
@@ -116,7 +116,7 @@ vault 是 Obsidian 仓库,可能在 iCloud 里:
116
116
  - 费用或时限要不一样的,配自己的 runtime。
117
117
  4. 验:cotutor doctor(它会查文件、目录、链),再 `cotutor pack <name> "你好"`,看它拿到的上下文包对不对:学期、档案、入口文件、这学科的观察、计划里它那段。
118
118
  - 要试真回答,就 `cotutor send <name> "<一句>"`(花钱,先问)。
119
- 5. 自家加的老师 upgrade 永远不碰。要删,就在 cotutor.json 里删条目,文件改名留着。
119
+ 5. 自家加的老师 refresh 永远不碰。要删,就在 cotutor.json 里删条目,文件改名留着。
120
120
 
121
121
  ## 四、改一个 activity
122
122
 
@@ -138,10 +138,10 @@ activity 是孩子从首页一个按钮进去的一种做法,一个文件在 `ag
138
138
  - 改完先 `cotutor activity check <老师> <名>`(不花钱),红了先修。
139
139
  - 验:`cotutor activity eval <老师> <名> --runs 1`,真老师 + 模拟孩子把旁边 `<名>.例子.md` 的例子跑一遍(花钱,先说要跑几个例子、几轮)。也可以 `cotutor replay` 那一轮。
140
140
  - 家长看到一次跑偏,就在 `<名>.例子.md` 里记成一个例子,写上「判:」,以后改它都要跑过。
141
- - 出厂的 activity 改过之后,upgrade 不再覆盖它,只报 diff;回出厂用 `cotutor upgrade --force <老师>/<名>`。
141
+ - 出厂的 activity 改过之后,refresh 不再覆盖它,只报 diff;回出厂用 `cotutor reset <老师>/<名>`。
142
142
 
143
143
  ## 报告怎么写
144
144
 
145
145
  1. 先说改了哪个文件的哪一处,为什么放那里(归属)。
146
146
  2. 再贴验证结果:pack 的来源行、replay 的 diff、doctor 的那几项。
147
- 3. 最后说副作用:改了出厂老师 upgrade 只报 diff、改了档案所有老师都会看到、花了多少钱。
147
+ 3. 最后说副作用:改了出厂老师 refresh 只报 diff、改了档案所有老师都会看到、花了多少钱。
@@ -38,16 +38,170 @@ frontmatter 只写应用支持的这几个键:`name`、`description`、`maxTurns
38
38
  | `stall.ms` | 必需 | 30000 | 老师进程多少毫秒没有任何输出就当断流(缺省 30000;工具在跑时不算;0 = 不看,交给 CLI 自己约 180 秒的重试) |
39
39
  | `stall.retries` | 必需 | 2 | 一轮里断流后最多接着跑几次(缺省 2);用完还断,这轮按出错收尾 |
40
40
 
41
- ## 相关命令(完整用法 cotutor --help)
41
+ ## 相关命令(每条就是 cotutor <命令> --help 的内容)
42
42
 
43
43
  ```
44
- cotutor doctor [--workspace <dir>] [--json] [--live] [--fix] 逐项体检;--live 真连一次百炼实时模型、真合成一句配音(花一分钱)把 API 层的坑摆出来(真跑老师用 cotutor send);--json 里不过的项带 cmd(能直接跑)或 human(要人来);--fix 把带 cmd 的一条条修掉,要人来的留着
45
- cotutor upgrade [--workspace <dir>] [--force <老师>]... 老师文件、activity 与 skill 换新版:没改过的直接换,改过的只报 diff(--force <老师> 或 --force <老师>/<名> 才覆盖,原文留 .bak)
46
- cotutor upgrade --config [--dry-run] [--workspace <dir>] cotutor.json 补缺:新出厂老师 / 运行时 / 命令模板旗标(只加缺的,你改过的值不动)
47
- cotutor add <老师名> --display <显示名> [--subject <学科>] [--avatar <emoji|图片相对路径>] [--hidden] 加一位自家的老师:出模板文件、进 cotutor.json、建目录(名字以 -tutor 结尾的是老师,figshot 给它做头像)
48
- cotutor add-theme <主题名> [--from <主题>] [--workspace <dir>] 加一个自家的主题:拷一份(缺省出厂的 default)到 themes/<主题名>/,改 cotutor.json 的 kid.theme 换过去
49
- cotutor pack <老师> [<消息>] [--from kid|system] [--at <ISO时间>] [--activity <名> [--param '名=值;名=值']] [--json] 干跑上下文包(--activity 看 activity 话题第一条老师拿到什么):不起模型,打印现在会发给老师的那份 + 每段来自哪个文件、那里一共几条、按政策带了几条(改了档案 / 日记 / 计划立刻看效果)
50
- cotutor replay <老师> <job> [<日期>] [--runtime <名>] [--json] 回放一轮:同一问按现在的 vault 与提示词再跑一遍(落 evals/,不进孩子的对话、不配音),跑完并排打印上下文包 / 讲稿 / 卡 / 读了什么的 diff
51
- cotutor compare <老师> [<evalJob>] [<日期>] [--json] 再看一次回放的对照(不给 evalJob 就列这天回放过哪些)
52
- cotutor show <老师> <job> [<日期>] [--json] [--evals] [--workspace <dir>] 看一轮:问了什么、上下文包、当时的老师文件与技能 hash、讲稿与卡、读了什么、token 与用时、给家长的尾巴;--json 是家长端「看原文」同一份数据,给编程助手分析用
44
+ 这些命令都认 --workspace <目录>(在 workspace 根跑可以不写)和 --sandbox(在试用副本里跑,不进孩子的记录)。
45
+
46
+ cotutor add — 加一位自家的老师
47
+
48
+ 用法:
49
+ cotutor add <老师名> --display <显示名> [--subject <学科>] [--avatar <emoji|图片>] [--description <一句话>] [--hidden] [--json]
50
+
51
+ 选项:
52
+ --display <显示名> 孩子看到的名字(必填)
53
+ --subject <学科> 学科
54
+ --avatar <emoji|图片> emoji,或 workspace 里图片的相对路径
55
+ --description <一句话> 写进老师文件的一句介绍
56
+ --hidden 孩子端不露(只和系统、家长打交道的工具人)
57
+ --json 机器可读的输出
58
+
59
+ 说明:
60
+ - 名字以 -tutor 结尾的是有脸的老师,其余是工具人
61
+ - 出老师文件、写进 cotutor.json、建它的家;服务不用重启
62
+
63
+ 例子:
64
+ cotutor add science-tutor --display 科学老师 --subject 科学 --avatar 🔬
65
+
66
+ cotutor add-theme — 加一个自家的主题
67
+
68
+ 用法:
69
+ cotutor add-theme <主题名> [--from <主题>] [--json]
70
+
71
+ 选项:
72
+ --from <主题> 从哪个主题拷(缺省 default)
73
+ --json 机器可读的输出
74
+
75
+ 说明:
76
+ - 拷到 themes/<主题名>/;cotutor.json 的 kid.theme 改成它就换过去
77
+
78
+ 例子:
79
+ cotutor add-theme dark
80
+
81
+ cotutor refresh — 换新这个孩子的出厂文件(不升级程序)
82
+
83
+ 用法:
84
+ cotutor refresh [--json]
85
+ cotutor refresh --config [--dry-run] [--json]
86
+
87
+ 选项:
88
+ --config 改的是 cotutor.json:只补缺的、删不再用的出厂段,改过的值不动
89
+ --dry-run 和 --config 一起:只看要改什么
90
+ --json 机器可读的输出
91
+
92
+ 说明:
93
+ - 出厂的老师、activity、技能、主题:没改过的换新,改过的保留并报 diff;换之前自动备份一份
94
+ - 升级程序用 cotutor update,它会对每个孩子跑这条;这条只在程序已经换过(手动 npm i -g、从仓库跑)时单独用
95
+ - 改过的想回出厂的:cotutor reset
96
+
97
+ 例子:
98
+ cotutor refresh
99
+ cotutor refresh --config --dry-run
100
+
101
+ cotutor reset — 把改过的出厂老师或 activity 换回出厂的
102
+
103
+ 用法:
104
+ cotutor reset <老师>|<老师>/<activity>... [--json]
105
+
106
+ 选项:
107
+ --json 机器可读的输出
108
+
109
+ 说明:
110
+ - 只动点名的这几份;你那份存成旁边的 .bak,换之前还自动备份一份
111
+ - 自家加的老师、activity 没有出厂那份,换不了
112
+
113
+ 注意:
114
+ - 盖掉家长改过的老师文件:家长明确说要回出厂的才跑
115
+
116
+ 例子:
117
+ cotutor reset math-tutor
118
+ cotutor reset chinese-tutor/你说我画
119
+
120
+ cotutor doctor — 体检;--fix 修掉能自动修的
121
+
122
+ 用法:
123
+ cotutor doctor [--json]
124
+ cotutor doctor --fix
125
+ cotutor doctor --live
126
+
127
+ 选项:
128
+ --fix 修掉能自动修的(幂等,不碰孩子的数据,不用人输东西),要人来的留着
129
+ --live 真连一次百炼的嘴、真配一句音
130
+ --json 机器可读的输出
131
+
132
+ 说明:
133
+ - --json 里没过的项带 cmd(能直接跑)或 human(要人来)
134
+ - 有必需项没过,退出码 1
135
+
136
+ 注意:
137
+ - --live 花一分钱
138
+
139
+ 例子:
140
+ cotutor doctor --fix
141
+ cotutor doctor --json
142
+
143
+ cotutor pack — 干跑上下文包:不起模型,看老师会拿到什么
144
+
145
+ 用法:
146
+ cotutor pack <老师> [<消息>] [--activity <名> [--param '名=值;名=值']] [--from kid|system] [--at <ISO时间>] [--json]
147
+
148
+ 选项:
149
+ --activity <名> 像孩子点了首页的 activity 按钮,新开话题
150
+ --param '名=值;名=值' activity 的参数(按钮下面那几行)
151
+ --from kid|system 谁说的(缺省 kid;system 不算孩子说的)
152
+ --at <ISO时间> 当作这个时间
153
+ --json 机器可读的输出
154
+
155
+ 说明:
156
+ - 每段来自哪个文件、一共几条、按政策带了几条;改了档案、日记、计划立刻看效果
157
+
158
+ 例子:
159
+ cotutor pack math-tutor "讲讲退位"
160
+
161
+ cotutor replay — 同一问按现在的提示词再跑一遍,并排对照
162
+
163
+ 用法:
164
+ cotutor replay <老师> <job> [<日期>] [--runtime <名>] [--json]
165
+
166
+ 选项:
167
+ --runtime <名> 换个运行时
168
+ --json 机器可读的输出
169
+
170
+ 说明:
171
+ - 落 evals/,不进孩子的对话、不配音
172
+
173
+ 注意:
174
+ - 花钱
175
+
176
+ 例子:
177
+ cotutor replay math-tutor 1620-1 2026-09-12
178
+
179
+ cotutor compare — 再看一次回放的对照
180
+
181
+ 用法:
182
+ cotutor compare <老师> [<evalJob>] [<日期>] [--json]
183
+
184
+ 选项:
185
+ --json 机器可读的输出
186
+
187
+ 说明:
188
+ - 不给 evalJob 就列这天回放过哪些
189
+
190
+ 例子:
191
+ cotutor compare math-tutor
192
+
193
+ cotutor show — 看一轮:问了什么、上下文包、讲稿与卡、读了什么
194
+
195
+ 用法:
196
+ cotutor show <老师> <job> [<日期>] [--evals] [--json]
197
+
198
+ 选项:
199
+ --evals 看回放的那轮(evals/ 里的)
200
+ --json 机器可读的输出
201
+
202
+ 说明:
203
+ - 日期缺省今天;--json 和家长端「看原文」是同一份
204
+
205
+ 例子:
206
+ cotutor show math-tutor 1620-1 2026-09-12 --json
53
207
  ```
@@ -5,7 +5,7 @@ description: cotutor 有脸的老师共同的守则:上下文包怎么看、三
5
5
 
6
6
  <!-- 给人看
7
7
  谁读:有脸的老师。应用去掉 frontmatter 和独占一行的注释,在话题第一条放进 <cotutor-rules>
8
- 能改:机器件,init / upgrade 每次覆盖。某位老师要不一样的做法,写进那位老师文件的学科一节,它优先
8
+ 能改:机器件,init / refresh 每次覆盖。某位老师要不一样的做法,写进那位老师文件的学科一节,它优先
9
9
  改了:cotutor pack 看注入,再 cotutor replay 对照(《写提示词.md》§一)
10
10
  {{有 x}} 到 {{/有}} 之间的,这位老师的卡里有 x 才留(cotutor.json tutors.<老师>.cards;没写 = 全有)
11
11
  -->