@aiyiran/myclaw 1.1.76 → 1.1.78
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/assets/myclaw-artifacts.js +7 -7
- package/assets/myclaw-inject.js +6 -499
- package/assets/myclaw-iteration.js +652 -0
- package/index.js +1 -1
- package/package.json +1 -1
- package/patches/patch.js +19 -0
- package/skills/yiran-course-template-pipeline/template-index.json +54 -1
- package/skills/yiran-course-template-pipeline/template-index.md +18 -0
package/patches/patch.js
CHANGED
|
@@ -27,6 +27,7 @@ const VOICE_SDK_FILENAME = 'voice-input.js';
|
|
|
27
27
|
const VOICE_OUTPUT_SDK_FILENAME = 'voice-output.js';
|
|
28
28
|
const TTS_INJECT_FILENAME = 'myclaw-tts.js';
|
|
29
29
|
const ARTIFACTS_INJECT_FILENAME = 'myclaw-artifacts.js';
|
|
30
|
+
const ITERATION_INJECT_FILENAME = 'myclaw-iteration.js';
|
|
30
31
|
const BACKUP_SUFFIX = '.myclaw-backup';
|
|
31
32
|
|
|
32
33
|
/**
|
|
@@ -118,6 +119,8 @@ function patch() {
|
|
|
118
119
|
const ttsInjectDest = path.join(uiDir, TTS_INJECT_FILENAME);
|
|
119
120
|
const artifactsInjectSrc = path.join(__dirname, '..', 'assets', ARTIFACTS_INJECT_FILENAME);
|
|
120
121
|
const artifactsInjectDest = path.join(uiDir, ARTIFACTS_INJECT_FILENAME);
|
|
122
|
+
const iterationInjectSrc = path.join(__dirname, '..', 'assets', ITERATION_INJECT_FILENAME);
|
|
123
|
+
const iterationInjectDest = path.join(uiDir, ITERATION_INJECT_FILENAME);
|
|
121
124
|
const version = getMyclawVersion();
|
|
122
125
|
|
|
123
126
|
console.log('[myclaw-patch] → control-ui: ' + uiDir);
|
|
@@ -177,6 +180,14 @@ function patch() {
|
|
|
177
180
|
console.error('[myclaw-patch] ⚠ Artifacts 注入脚本复制失败 (非致命): ' + err.message);
|
|
178
181
|
}
|
|
179
182
|
|
|
183
|
+
// 5.6 复制 Iteration 注入脚本
|
|
184
|
+
try {
|
|
185
|
+
fs.copyFileSync(iterationInjectSrc, iterationInjectDest);
|
|
186
|
+
console.log('[myclaw-patch] ✅ Iteration 注入脚本已复制');
|
|
187
|
+
} catch (err) {
|
|
188
|
+
console.error('[myclaw-patch] ⚠ Iteration 注入脚本复制失败 (非致命): ' + err.message);
|
|
189
|
+
}
|
|
190
|
+
|
|
180
191
|
// 6. Patch index.html(幂等)
|
|
181
192
|
try {
|
|
182
193
|
let html = fs.readFileSync(indexPath, 'utf8');
|
|
@@ -195,6 +206,7 @@ function patch() {
|
|
|
195
206
|
'<script src="./' + VOICE_SDK_FILENAME + '"></script>',
|
|
196
207
|
'<script src="./' + TTS_INJECT_FILENAME + '"></script>',
|
|
197
208
|
'<script src="./' + ARTIFACTS_INJECT_FILENAME + '"></script>',
|
|
209
|
+
'<script src="./' + ITERATION_INJECT_FILENAME + '"></script>',
|
|
198
210
|
'<script src="./' + INJECT_FILENAME + '"></script>',
|
|
199
211
|
'',
|
|
200
212
|
].join('\n');
|
|
@@ -319,6 +331,7 @@ function unpatch() {
|
|
|
319
331
|
const voiceOutputSdkDest = path.join(uiDir, VOICE_OUTPUT_SDK_FILENAME);
|
|
320
332
|
const ttsInjectDest = path.join(uiDir, TTS_INJECT_FILENAME);
|
|
321
333
|
const artifactsInjectDest = path.join(uiDir, ARTIFACTS_INJECT_FILENAME);
|
|
334
|
+
const iterationInjectDest = path.join(uiDir, ITERATION_INJECT_FILENAME);
|
|
322
335
|
|
|
323
336
|
// 恢复备份
|
|
324
337
|
if (fs.existsSync(backupPath)) {
|
|
@@ -357,6 +370,12 @@ function unpatch() {
|
|
|
357
370
|
console.log('[myclaw-patch] ✅ Artifacts 注入脚本已删除');
|
|
358
371
|
}
|
|
359
372
|
|
|
373
|
+
// 删除 Iteration 注入脚本
|
|
374
|
+
if (fs.existsSync(iterationInjectDest)) {
|
|
375
|
+
fs.unlinkSync(iterationInjectDest);
|
|
376
|
+
console.log('[myclaw-patch] ✅ Iteration 注入脚本已删除');
|
|
377
|
+
}
|
|
378
|
+
|
|
360
379
|
// 恢复 gateway-cli-*.js 的 Permissions-Policy
|
|
361
380
|
try {
|
|
362
381
|
const distParent = path.resolve(uiDir, '..');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"index_updated_at": "2026-04-
|
|
2
|
+
"index_updated_at": "2026-04-23T09:17:55Z",
|
|
3
3
|
"templates": {
|
|
4
4
|
"696de592": {
|
|
5
5
|
"id": "696de592",
|
|
@@ -134,6 +134,59 @@
|
|
|
134
134
|
],
|
|
135
135
|
"updated_at": "2026-04-22T17:22:44Z"
|
|
136
136
|
},
|
|
137
|
+
"5d4e392a": {
|
|
138
|
+
"id": "5d4e392a",
|
|
139
|
+
"系列": "A",
|
|
140
|
+
"编号": "105",
|
|
141
|
+
"名称": "给喜欢的主题做一张 AI 画像",
|
|
142
|
+
"文件夹名": "a105_给喜欢的主题做一张_AI_画像",
|
|
143
|
+
"version": "v1",
|
|
144
|
+
"路径": "templates/a105_给喜欢的主题做一张_AI_画像/v1",
|
|
145
|
+
"入口文件": "templates/a105_给喜欢的主题做一张_AI_画像/v1/index.html",
|
|
146
|
+
"一句话说明": "先让 AI 生成一张画,再改一改,最后把它放到网页上。",
|
|
147
|
+
"主能力标签": "第二能力:表达构建",
|
|
148
|
+
"任务类型标签": "视听表达",
|
|
149
|
+
"关键词": [
|
|
150
|
+
"a105_给喜欢的主题做一张_AI_画像",
|
|
151
|
+
"先让 AI 生成一张画,再改一改,最后把它放到网页上。",
|
|
152
|
+
"刚接触 AI 生成的学生",
|
|
153
|
+
"不知道怎么把 AI 结果放进网页的学生",
|
|
154
|
+
"想练习「说清楚想要什么」这个能力的学生",
|
|
155
|
+
"练习用自然语言描述自己想看到的画面",
|
|
156
|
+
"学会提出一个具体的小修改点,而不是笼统地说「不好看」",
|
|
157
|
+
"初步理解 AI 生成和网页发布是两个不同的步骤",
|
|
158
|
+
"给喜欢的主题做一张 AI 画像",
|
|
159
|
+
"第二能力:表达构建",
|
|
160
|
+
"视听表达"
|
|
161
|
+
],
|
|
162
|
+
"updated_at": "2026-04-23T08:36:43Z"
|
|
163
|
+
},
|
|
164
|
+
"ad24a76c": {
|
|
165
|
+
"id": "ad24a76c",
|
|
166
|
+
"系列": "A",
|
|
167
|
+
"编号": "106",
|
|
168
|
+
"名称": "火箭拦截:发现规则 & 提出改进",
|
|
169
|
+
"文件夹名": "a106_火箭拦截:发现规则_&_提出改进",
|
|
170
|
+
"version": "v1",
|
|
171
|
+
"路径": "templates/a106_火箭拦截:发现规则_&_提出改进/v1",
|
|
172
|
+
"入口文件": "templates/a106_火箭拦截:发现规则_&_提出改进/v1/index.html",
|
|
173
|
+
"一句话说明": "先玩10秒找到游戏规则,再提出一个改进点,最后验证改进有没有用。",
|
|
174
|
+
"主能力标签": "第三能力:问题判断",
|
|
175
|
+
"任务类型标签": "游戏机制",
|
|
176
|
+
"关键词": [
|
|
177
|
+
"a106_火箭拦截:发现规则_&_提出改进",
|
|
178
|
+
"先玩10秒找到游戏规则,再提出一个改进点,最后验证改进有没有用。",
|
|
179
|
+
"初次接触游戏设计的学生",
|
|
180
|
+
"会玩游戏但没分析过游戏规则的学生",
|
|
181
|
+
"通过10秒时间盒,训练学生快速聚焦核心规则",
|
|
182
|
+
"用「前10秒」作为判断标准,培养学生自我感受的游戏评价能力",
|
|
183
|
+
"三关结构:发现→提出→验证,形成完整的「判断-改进-验证」闭环",
|
|
184
|
+
"火箭拦截:发现规则 & 提出改进",
|
|
185
|
+
"第三能力:问题判断",
|
|
186
|
+
"游戏机制"
|
|
187
|
+
],
|
|
188
|
+
"updated_at": "2026-04-23T09:17:54Z"
|
|
189
|
+
},
|
|
137
190
|
"c360e192": {
|
|
138
191
|
"id": "c360e192",
|
|
139
192
|
"系列": "B",
|
|
@@ -47,6 +47,24 @@
|
|
|
47
47
|
- 任务类型标签:游戏机制
|
|
48
48
|
- 关键词:a104_做一个会出招的神奇按钮, 先试试按钮效果,再改一点,最后加一个你自己的新按钮。, 想先动手再思考的学生, 刚开始学网页互动的学生, 容易卡在空白页不知从哪开始的学生, 先运行现成示例,快速进入任务, 从已有功能里挑一个做小改动, 理解一个按钮对应一个功能, 把新增功能接入现有页面结构, 做一个会出招的神奇按钮, 迭代推进, 游戏机制
|
|
49
49
|
|
|
50
|
+
## A105 给喜欢的主题做一张 AI 画像
|
|
51
|
+
- ID:5d4e392a
|
|
52
|
+
- 版本:v1
|
|
53
|
+
- 路径:templates/a105_给喜欢的主题做一张_AI_画像/v1
|
|
54
|
+
- 入口文件:templates/a105_给喜欢的主题做一张_AI_画像/v1/index.html
|
|
55
|
+
- 主能力标签:第二能力:表达构建
|
|
56
|
+
- 任务类型标签:视听表达
|
|
57
|
+
- 关键词:a105_给喜欢的主题做一张_AI_画像, 先让 AI 生成一张画,再改一改,最后把它放到网页上。, 刚接触 AI 生成的学生, 不知道怎么把 AI 结果放进网页的学生, 想练习「说清楚想要什么」这个能力的学生, 练习用自然语言描述自己想看到的画面, 学会提出一个具体的小修改点,而不是笼统地说「不好看」, 初步理解 AI 生成和网页发布是两个不同的步骤, 给喜欢的主题做一张 AI 画像, 第二能力:表达构建, 视听表达
|
|
58
|
+
|
|
59
|
+
## A106 火箭拦截:发现规则 & 提出改进
|
|
60
|
+
- ID:ad24a76c
|
|
61
|
+
- 版本:v1
|
|
62
|
+
- 路径:templates/a106_火箭拦截:发现规则_&_提出改进/v1
|
|
63
|
+
- 入口文件:templates/a106_火箭拦截:发现规则_&_提出改进/v1/index.html
|
|
64
|
+
- 主能力标签:第三能力:问题判断
|
|
65
|
+
- 任务类型标签:游戏机制
|
|
66
|
+
- 关键词:a106_火箭拦截:发现规则_&_提出改进, 先玩10秒找到游戏规则,再提出一个改进点,最后验证改进有没有用。, 初次接触游戏设计的学生, 会玩游戏但没分析过游戏规则的学生, 通过10秒时间盒,训练学生快速聚焦核心规则, 用「前10秒」作为判断标准,培养学生自我感受的游戏评价能力, 三关结构:发现→提出→验证,形成完整的「判断-改进-验证」闭环, 火箭拦截:发现规则 & 提出改进, 第三能力:问题判断, 游戏机制
|
|
67
|
+
|
|
50
68
|
## B100 做一个按钮页面
|
|
51
69
|
- ID:c360e192
|
|
52
70
|
- 版本:v2
|