import { readFileSync, writeFileSync } from 'node:fs'; function patch(file, pairs) { const p = 'parts-r/' + file; let t = readFileSync(p, 'utf8'); for (const [a, b] of pairs) { if (!t.includes(a)) { console.log('MISS ' + file + ' :: ' + a.slice(0, 60)); continue; } t = t.split(a).join(b); } writeFileSync(p, t, 'utf8'); console.log('patched ' + file); } patch('00-preamble.md', [ ['1. **投喂方式**:全文约 20 万 tokens,建议按 `out/投喂指南-重构版.md` 的五卷/逐章方式投喂;一次性投喂需 ≥ 200k 上下文模型。投喂前请把 ClassHelper 仓库(或至少 `packages/desktop-client`、`packages/shared`、`packages/ui`、`docs/`)提供给 ChatGPT(作为代码上下文或附件)。', '1. **投喂方式**:全文约 12 万 tokens,建议按 `out/投喂指南-重构版.md` 的五卷/逐章方式投喂;一次性投喂需 ≥ 128k 上下文模型。投喂前请把 ClassHelper 仓库(或至少 `packages/desktop-client`、`packages/shared`、`packages/ui`、`docs/`)提供给 ChatGPT(作为代码上下文或附件)。'], ['8. 既有硬约束必须保留:经典岛连续圆角、投影常驻、触摸输入、失焦宽限、固定窗口几何护栏、消息按 id 去重、通知/叫人双播不重复、课件传输优先、默认验证不创建可见岛或托盘、冒烟假执行不真关机。', '8. 既有硬约束必须保留:`winisland` 兼容形态下的连续圆角与投影常驻、触摸输入、失焦宽限、固定窗口几何护栏;所有形态下消息按 id 去重、通知/叫人双播不重复、课件传输优先、默认验证不创建可见岛或托盘、冒烟假执行不真关机。'], ]);