openfeel 1.1.0 → 1.1.2

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 (203) hide show
  1. package/README.en.md +42 -12
  2. package/README.md +8 -3
  3. package/README.zh-CN.md +43 -13
  4. package/bin/openfeel.js +5 -0
  5. package/dist/cli/index.d.ts +15 -3
  6. package/dist/cli/index.d.ts.map +1 -1
  7. package/dist/cli/index.js +61 -15
  8. package/dist/cli/index.js.map +1 -1
  9. package/dist/cli/output-encoding.d.ts +41 -0
  10. package/dist/cli/output-encoding.d.ts.map +1 -0
  11. package/dist/cli/output-encoding.js +165 -0
  12. package/dist/cli/output-encoding.js.map +1 -0
  13. package/dist/cli/repl.d.ts +2 -2
  14. package/dist/cli/repl.d.ts.map +1 -1
  15. package/dist/cli/repl.js +46 -25
  16. package/dist/cli/repl.js.map +1 -1
  17. package/dist/commands/config.d.ts.map +1 -1
  18. package/dist/commands/config.js +56 -9
  19. package/dist/commands/config.js.map +1 -1
  20. package/dist/commands/flow.d.ts.map +1 -1
  21. package/dist/commands/flow.js +827 -138
  22. package/dist/commands/flow.js.map +1 -1
  23. package/dist/commands/init.d.ts +2 -1
  24. package/dist/commands/init.d.ts.map +1 -1
  25. package/dist/commands/init.js +58 -39
  26. package/dist/commands/init.js.map +1 -1
  27. package/dist/commands/knowledge.d.ts.map +1 -1
  28. package/dist/commands/knowledge.js +69 -0
  29. package/dist/commands/knowledge.js.map +1 -1
  30. package/dist/commands/lint.d.ts.map +1 -1
  31. package/dist/commands/lint.js +17 -5
  32. package/dist/commands/lint.js.map +1 -1
  33. package/dist/commands/migrate.d.ts.map +1 -1
  34. package/dist/commands/migrate.js +15 -1
  35. package/dist/commands/migrate.js.map +1 -1
  36. package/dist/commands/model.d.ts.map +1 -1
  37. package/dist/commands/model.js +18 -1
  38. package/dist/commands/model.js.map +1 -1
  39. package/dist/commands/plan.d.ts.map +1 -1
  40. package/dist/commands/plan.js +185 -7
  41. package/dist/commands/plan.js.map +1 -1
  42. package/dist/commands/project.js +2 -2
  43. package/dist/commands/project.js.map +1 -1
  44. package/dist/commands/roadmap.d.ts.map +1 -1
  45. package/dist/commands/roadmap.js +20 -5
  46. package/dist/commands/roadmap.js.map +1 -1
  47. package/dist/commands/setup.d.ts +7 -0
  48. package/dist/commands/setup.d.ts.map +1 -0
  49. package/dist/commands/setup.js +37 -0
  50. package/dist/commands/setup.js.map +1 -0
  51. package/dist/commands/shared/errors.d.ts +22 -0
  52. package/dist/commands/shared/errors.d.ts.map +1 -0
  53. package/dist/commands/shared/errors.js +45 -0
  54. package/dist/commands/shared/errors.js.map +1 -0
  55. package/dist/commands/stage.d.ts.map +1 -1
  56. package/dist/commands/stage.js +133 -23
  57. package/dist/commands/stage.js.map +1 -1
  58. package/dist/commands/update.d.ts.map +1 -1
  59. package/dist/commands/update.js +1 -10
  60. package/dist/commands/update.js.map +1 -1
  61. package/dist/commands/view.d.ts +1 -1
  62. package/dist/commands/view.d.ts.map +1 -1
  63. package/dist/commands/view.js +4 -26
  64. package/dist/commands/view.js.map +1 -1
  65. package/dist/core/archive/merge.d.ts.map +1 -1
  66. package/dist/core/archive/merge.js +9 -5
  67. package/dist/core/archive/merge.js.map +1 -1
  68. package/dist/core/artifact-graph/graph.d.ts +7 -2
  69. package/dist/core/artifact-graph/graph.d.ts.map +1 -1
  70. package/dist/core/artifact-graph/graph.js +25 -18
  71. package/dist/core/artifact-graph/graph.js.map +1 -1
  72. package/dist/core/artifact-graph/instruction-loader.d.ts.map +1 -1
  73. package/dist/core/artifact-graph/instruction-loader.js +4 -33
  74. package/dist/core/artifact-graph/instruction-loader.js.map +1 -1
  75. package/dist/core/backup.d.ts +28 -0
  76. package/dist/core/backup.d.ts.map +1 -0
  77. package/dist/core/backup.js +118 -0
  78. package/dist/core/backup.js.map +1 -0
  79. package/dist/core/config.d.ts +30 -19
  80. package/dist/core/config.d.ts.map +1 -1
  81. package/dist/core/config.js +86 -26
  82. package/dist/core/config.js.map +1 -1
  83. package/dist/core/flow-manager.d.ts +256 -5
  84. package/dist/core/flow-manager.d.ts.map +1 -1
  85. package/dist/core/flow-manager.js +908 -68
  86. package/dist/core/flow-manager.js.map +1 -1
  87. package/dist/core/fs/atomic-write.d.ts +3 -0
  88. package/dist/core/fs/atomic-write.d.ts.map +1 -1
  89. package/dist/core/fs/atomic-write.js +3 -0
  90. package/dist/core/fs/atomic-write.js.map +1 -1
  91. package/dist/core/fs/safe-read.d.ts +11 -0
  92. package/dist/core/fs/safe-read.d.ts.map +1 -0
  93. package/dist/core/fs/safe-read.js +31 -0
  94. package/dist/core/fs/safe-read.js.map +1 -0
  95. package/dist/core/global-paths.d.ts +17 -6
  96. package/dist/core/global-paths.d.ts.map +1 -1
  97. package/dist/core/global-paths.js +26 -7
  98. package/dist/core/global-paths.js.map +1 -1
  99. package/dist/core/i18n-data/en.d.ts +3 -0
  100. package/dist/core/i18n-data/en.d.ts.map +1 -1
  101. package/dist/core/i18n-data/en.js +271 -18
  102. package/dist/core/i18n-data/en.js.map +1 -1
  103. package/dist/core/i18n-data/zh-CN.d.ts +3 -0
  104. package/dist/core/i18n-data/zh-CN.d.ts.map +1 -1
  105. package/dist/core/i18n-data/zh-CN.js +278 -18
  106. package/dist/core/i18n-data/zh-CN.js.map +1 -1
  107. package/dist/core/i18n.d.ts +8 -0
  108. package/dist/core/i18n.d.ts.map +1 -1
  109. package/dist/core/i18n.js +14 -4
  110. package/dist/core/i18n.js.map +1 -1
  111. package/dist/core/init.d.ts +12 -15
  112. package/dist/core/init.d.ts.map +1 -1
  113. package/dist/core/init.js +85 -142
  114. package/dist/core/init.js.map +1 -1
  115. package/dist/core/managed-region.d.ts +1 -1
  116. package/dist/core/managed-region.js +1 -1
  117. package/dist/core/metrics.d.ts +16 -4
  118. package/dist/core/metrics.d.ts.map +1 -1
  119. package/dist/core/metrics.js +31 -11
  120. package/dist/core/metrics.js.map +1 -1
  121. package/dist/core/migrate.d.ts +12 -0
  122. package/dist/core/migrate.d.ts.map +1 -1
  123. package/dist/core/migrate.js +88 -29
  124. package/dist/core/migrate.js.map +1 -1
  125. package/dist/core/model-config.d.ts.map +1 -1
  126. package/dist/core/model-config.js +4 -2
  127. package/dist/core/model-config.js.map +1 -1
  128. package/dist/core/opencode-config.d.ts +4 -4
  129. package/dist/core/opencode-config.d.ts.map +1 -1
  130. package/dist/core/opencode-config.js +20 -7
  131. package/dist/core/opencode-config.js.map +1 -1
  132. package/dist/core/plan/path.d.ts +40 -0
  133. package/dist/core/plan/path.d.ts.map +1 -1
  134. package/dist/core/plan/path.js +108 -1
  135. package/dist/core/plan/path.js.map +1 -1
  136. package/dist/core/plan/roadmap.js +2 -2
  137. package/dist/core/plan/roadmap.js.map +1 -1
  138. package/dist/core/plan/scheme.d.ts +74 -2
  139. package/dist/core/plan/scheme.d.ts.map +1 -1
  140. package/dist/core/plan/scheme.js +311 -26
  141. package/dist/core/plan/scheme.js.map +1 -1
  142. package/dist/core/plan/stage.d.ts +34 -3
  143. package/dist/core/plan/stage.d.ts.map +1 -1
  144. package/dist/core/plan/stage.js +90 -6
  145. package/dist/core/plan/stage.js.map +1 -1
  146. package/dist/core/public-logger.d.ts +18 -5
  147. package/dist/core/public-logger.d.ts.map +1 -1
  148. package/dist/core/public-logger.js +62 -23
  149. package/dist/core/public-logger.js.map +1 -1
  150. package/dist/core/runtime-log.d.ts +25 -0
  151. package/dist/core/runtime-log.d.ts.map +1 -0
  152. package/dist/core/runtime-log.js +94 -0
  153. package/dist/core/runtime-log.js.map +1 -0
  154. package/dist/core/setup.d.ts +10 -0
  155. package/dist/core/setup.d.ts.map +1 -0
  156. package/dist/core/setup.js +103 -0
  157. package/dist/core/setup.js.map +1 -0
  158. package/dist/core/template-loader.d.ts +4 -5
  159. package/dist/core/template-loader.d.ts.map +1 -1
  160. package/dist/core/template-loader.js +1322 -259
  161. package/dist/core/template-loader.js.map +1 -1
  162. package/dist/core/templates.d.ts +4 -4
  163. package/dist/core/templates.d.ts.map +1 -1
  164. package/dist/core/templates.js +15 -11
  165. package/dist/core/templates.js.map +1 -1
  166. package/dist/core/update-infos.d.ts +14 -3
  167. package/dist/core/update-infos.d.ts.map +1 -1
  168. package/dist/core/update-infos.js +67 -15
  169. package/dist/core/update-infos.js.map +1 -1
  170. package/dist/core/update-state.d.ts.map +1 -1
  171. package/dist/core/update-state.js +7 -4
  172. package/dist/core/update-state.js.map +1 -1
  173. package/dist/core/update.d.ts +2 -7
  174. package/dist/core/update.d.ts.map +1 -1
  175. package/dist/core/update.js +338 -149
  176. package/dist/core/update.js.map +1 -1
  177. package/dist/core/view/entry.d.ts +53 -1
  178. package/dist/core/view/entry.d.ts.map +1 -1
  179. package/dist/core/view/entry.js +71 -2
  180. package/dist/core/view/entry.js.map +1 -1
  181. package/dist/core/workspace/identity.d.ts.map +1 -1
  182. package/dist/core/workspace/identity.js +15 -5
  183. package/dist/core/workspace/identity.js.map +1 -1
  184. package/dist/core/workspace/knowledge.d.ts.map +1 -1
  185. package/dist/core/workspace/knowledge.js +125 -19
  186. package/dist/core/workspace/knowledge.js.map +1 -1
  187. package/dist/core/workspace/structure.d.ts.map +1 -1
  188. package/dist/core/workspace/structure.js +6 -2
  189. package/dist/core/workspace/structure.js.map +1 -1
  190. package/dist/index.d.ts +0 -1
  191. package/dist/index.d.ts.map +1 -1
  192. package/dist/index.js +1 -2
  193. package/dist/index.js.map +1 -1
  194. package/dist/utils/kb-dedup.d.ts +5 -1
  195. package/dist/utils/kb-dedup.d.ts.map +1 -1
  196. package/dist/utils/kb-dedup.js +11 -5
  197. package/dist/utils/kb-dedup.js.map +1 -1
  198. package/package.json +6 -6
  199. package/dist/utils/path.d.ts +0 -22
  200. package/dist/utils/path.d.ts.map +0 -1
  201. package/dist/utils/path.js +0 -37
  202. package/dist/utils/path.js.map +0 -1
  203. package/scripts/patch-inquirer.js +0 -70
package/dist/core/init.js CHANGED
@@ -3,27 +3,27 @@
3
3
  * 协调创建工作区、写入配置、初始化 flow.json、确保身份文件、
4
4
  * 生成 dev_core.md/current.md 模板。
5
5
  *
6
- * 注意:框架约束 core.md 由 update 命令部署到全局
7
- * `~/.config/opencode/openfeel/core.md`(适配器层,非核心层),不在 init 阶段生成。
6
+ * 注意:全局框架约束(AGENTS.md + agent + skill)由 `openfeel setup` 部署到
7
+ * 全局配置目录(opencode 适配器:`~/.config/opencode/`)(v1.1.1 起统一),项目级不再部署约束/agent/skill。
8
8
  *
9
9
  * 变更摘要:
10
10
  * - stage-04: 新增 initDemo() 支持 --demo 标志
11
- * - stage-37: deployOpencode 部署目标改为全局 ~/.config/opencode/,项目精简为 .openfeel/ + AGENTS.md + opencode.jsonc
11
+ * - stage-37: deployOpencode 部署目标改为全局 ~/.config/opencode/(opencode 适配器)
12
+ * - v1.1.1: 拆除 deployOpencode 与项目 AGENTS.md 骨架;新增 initWorkspaceOnly(--workspace-only)
12
13
  */
13
14
  import { readFileSync, existsSync, mkdirSync } from 'node:fs';
14
- import { resolve, dirname, join, basename } from 'node:path';
15
+ import { resolve, dirname, join } from 'node:path';
15
16
  import { createWorkspace } from './workspace/structure.js';
16
17
  import { ensureInfoJson, isFirstUse, getGlobalConfig, setGlobalConfig, DEFAULT_GLOBAL_CONFIG } from './workspace/identity.js';
17
18
  import { writeDefaultConfig } from './config.js';
18
19
  import { FlowManager } from './flow-manager.js';
19
20
  import { getDevCoreTemplate, getCurrentTemplate, getDecisionsTemplate } from './templates.js';
20
- import { loadTemplate, loadOpencodeAgentTemplate, loadOpencodeSkillTemplate, loadOpencodeConfigTemplate, listOpencodeAgentIds, listOpencodeSkillNames } from './template-loader.js';
21
21
  import { t, getCliLang } from './i18n.js';
22
22
  import { DEFAULT_STAGE_VERSION } from './plan/path.js';
23
23
  import { atomicWriteFileSync } from './fs/atomic-write.js';
24
- import { withFileLock, globalLockPath } from './fs/file-lock.js';
25
- import { getGlobalAgentsDir, getGlobalSkillsDir, getGlobalCoreMdPath, getGlobalOpencodeJsoncPath } from './global-paths.js';
26
- import { mergeGlobalOpencodeJsonc, buildProjectOpencodeJsoncObj } from './opencode-config.js';
24
+ import { buildProjectOpencodeJsoncObj } from './opencode-config.js';
25
+ import { appendUpdateInfo } from './update-infos.js';
26
+ import { backupFileBeforeWrite, BackupError, notifyBackupIfTTY } from './backup.js';
27
27
  import readline from 'node:readline';
28
28
  /**
29
29
  * 提示用户选择语言
@@ -56,30 +56,6 @@ async function promptLanguage() {
56
56
  });
57
57
  });
58
58
  }
59
- /**
60
- * 提示用户是否部署 OpenCode 平台适配器
61
- * 交互模式:提问 Y/n(默认 Y),非交互模式:静默返回 false
62
- */
63
- async function promptOpencodeDeploy(lang) {
64
- if (!process.stdout.isTTY) {
65
- return false; // 非交互模式,跳过
66
- }
67
- return new Promise((resolve) => {
68
- const rl = readline.createInterface({
69
- input: process.stdin,
70
- output: process.stdout,
71
- });
72
- const prompt = lang === 'en'
73
- ? 'Deploy OpenCode platform adapter? [Y/n] '
74
- : '是否部署 OpenCode 平台适配器?[Y/n] ';
75
- rl.question(prompt, (answer) => {
76
- rl.close();
77
- const trimmed = answer.trim().toLowerCase();
78
- // 默认 Y(仅显式 n/no 时拒绝)
79
- resolve(trimmed !== 'n' && trimmed !== 'no');
80
- });
81
- });
82
- }
83
59
  /**
84
60
  * 写入语言配置到 .openfeel/.info.json
85
61
  */
@@ -155,96 +131,28 @@ function writeTemplateIfMissing(filePath, content) {
155
131
  return { created: true };
156
132
  }
157
133
  /**
158
- * 全局文件写入:全局文件锁 + 原子写 + 已存在不覆盖
159
- * 与 writeTemplateIfMissing 同语义,但针对跨项目共享的全局路径(~/.config/opencode/)。
160
- */
161
- function writeGlobalFileIfMissing(filePath, content) {
162
- return withFileLock(globalLockPath('opencode-deploy'), () => {
163
- if (existsSync(filePath)) {
164
- return { created: false };
165
- }
166
- atomicWriteFileSync(filePath, content);
167
- return { created: true };
168
- });
169
- }
170
- /**
171
- * 部署 OpenCode 平台适配器到全局 ~/.config/opencode/(D1 全局化)
172
- * 全局文件遵循"已存在不覆盖";项目仅写最小 opencode.jsonc 覆盖。
173
- * ⚠️ 不部署 package.json(REV-001);不部署 ADAPTER/.gitignore(已随 .opencode/ 废弃)。
174
- * 导出供测试直接调用(不依赖交互流程)
134
+ * 仅创建工作区(目录 + config.yaml + flow.json + .info.json + dev/kb 模板),
135
+ * 不写项目平台适配器配置文件(opencode.jsonc)/ AGENTS.md(v1.1.1:workspace-only 与 initProject 复用)。
136
+ * 语言由参数传入,不再内部 promptLanguage。
175
137
  */
176
- export function deployOpencode(projectPath, lang) {
177
- let created = 0;
178
- let skipped = 0;
179
- const track = (result) => {
180
- if (result.created)
181
- created++;
182
- else
183
- skipped++;
184
- };
185
- // 1. Agent 定义(9 个)→ 全局 agents 目录
186
- const agentIds = listOpencodeAgentIds(lang);
187
- for (const agentId of agentIds) {
188
- track(writeGlobalFileIfMissing(join(getGlobalAgentsDir(), `${agentId}.md`), loadOpencodeAgentTemplate(lang, agentId)));
189
- }
190
- // 2. Skill 定义(14 个)→ 全局 skills 目录
191
- const skillNames = listOpencodeSkillNames();
192
- for (const skillName of skillNames) {
193
- track(writeGlobalFileIfMissing(join(getGlobalSkillsDir(), skillName, 'SKILL.md'), loadOpencodeSkillTemplate(skillName)));
194
- }
195
- // 3. 框架约束 core.md → 全局 ~/.config/opencode/openfeel/core.md
196
- track(writeGlobalFileIfMissing(getGlobalCoreMdPath(), loadOpencodeConfigTemplate(lang, 'instructions')));
197
- // 4. 全局 opencode.jsonc:不存在则写框架级内容(REV-605:已存在则跳过,合并归 op-003)
198
- track(writeGlobalFileIfMissing(getGlobalOpencodeJsoncPath(), mergeGlobalOpencodeJsonc('{}\n')));
199
- // 5. 项目 opencode.jsonc:最小覆盖(仅 $schema),写入项目根(项目内原子写)
200
- const projectJsoncPath = resolve(projectPath, 'opencode.jsonc');
201
- if (existsSync(projectJsoncPath)) {
202
- track({ created: false });
203
- }
204
- else {
205
- atomicWriteFileSync(projectJsoncPath, JSON.stringify(buildProjectOpencodeJsoncObj(), null, 2) + '\n');
206
- track({ created: true });
207
- }
208
- return { created, skipped };
209
- }
210
- /**
211
- * 初始化项目工作区
212
- * 步骤:创建目录 → 写入 config.yaml → 初始化 flow.json → 创建 .info.json
213
- * → 语言选择 → 生成 dev_core.md → 生成 current.md → 生成 decisions.md → 生成 AGENTS.md
214
- */
215
- export async function initProject(projectPath, cliLang) {
138
+ function initWorkspaceCore(projectPath, lang) {
216
139
  const created = [];
217
140
  const updated = [];
218
- // 0. 确保全局配置存在(首次使用时交互选择语言)
219
- await ensureGlobalConfig();
141
+ const skipped = [];
220
142
  // 1. 创建 .openfeel/ 目录结构(含 plan/, roadmap/, dev/note/, 等)
221
143
  const dirs = createWorkspace(projectPath);
222
144
  created.push(...dirs);
223
- // 1a. 语言选择:CLI --lang 参数 > 交互式选择 > 全局默认语言
224
- // 提前选择,以便后续写入的模板文件使用正确语言
225
- const globalLang = getGlobalConfig().lang;
226
- let selectedLang;
227
- if (cliLang === 'en' || cliLang === 'zh-CN') {
228
- selectedLang = cliLang;
229
- console.log(t('init.agentLangTmpl', getCliLang(projectPath), { lang: selectedLang === 'en' ? 'English' : '中文' }));
230
- }
231
- else if (cliLang) {
232
- console.warn(t('init.invalidLangWarnTmpl', getCliLang(projectPath), { lang: cliLang }));
233
- selectedLang = await promptLanguage();
234
- }
235
- else {
236
- selectedLang = await promptLanguage();
237
- }
238
- // 1b. OpenCode 部署确认
239
- const deployOpencodeFlag = await promptOpencodeDeploy(selectedLang);
240
145
  // 2. 写入默认配置(根据所选语言)
241
146
  const configPath = resolve(projectPath, '.openfeel', 'config.yaml');
242
147
  const configExisted = existsSync(configPath);
243
- writeDefaultConfig(projectPath, selectedLang);
244
148
  if (configExisted) {
245
- updated.push('.openfeel/config.yaml');
149
+ // BUG-002 语义修复(stage-47):已存在的用户配置不再覆盖(保留用户 defaults)。
150
+ // stage-46 的「备份 + 仍覆盖」缓解被本语义修复取代 —— 备份是覆盖的前置,此处不再覆盖故无备份接入。
151
+ skipped.push('.openfeel/config.yaml (已存在,保留用户配置)');
246
152
  }
247
153
  else {
154
+ // 目标不存在 → 无需备份,直接新建
155
+ writeDefaultConfig(projectPath, lang);
248
156
  created.push('.openfeel/config.yaml');
249
157
  }
250
158
  // 3. 初始化 flow.json
@@ -268,49 +176,63 @@ export async function initProject(projectPath, cliLang) {
268
176
  created.push('.openfeel/.info.json');
269
177
  }
270
178
  // 4b. 将语言写入 .info.json
271
- writeLang(projectPath, selectedLang);
179
+ writeLang(projectPath, lang);
272
180
  // 5. 生成 .openfeel/dev/dev_core.md 模板(双语)
273
181
  const devCorePath = resolve(projectPath, '.openfeel', 'dev', 'dev_core.md');
274
- const devCoreResult = writeTemplateIfMissing(devCorePath, getDevCoreTemplate(selectedLang));
275
- if (devCoreResult.created) {
182
+ if (writeTemplateIfMissing(devCorePath, getDevCoreTemplate(lang)).created) {
276
183
  created.push('.openfeel/dev/dev_core.md');
277
184
  }
278
185
  // 6. 生成 .openfeel/dev/current.md 模板(双语)
279
186
  const currentPath = resolve(projectPath, '.openfeel', 'dev', 'current.md');
280
- const currentResult = writeTemplateIfMissing(currentPath, getCurrentTemplate(selectedLang));
281
- if (currentResult.created) {
187
+ if (writeTemplateIfMissing(currentPath, getCurrentTemplate(lang)).created) {
282
188
  created.push('.openfeel/dev/current.md');
283
189
  }
284
190
  // 6b. 生成 .openfeel/dev/decisions.md 模板(ADR 格式)
285
191
  const decisionsPath = resolve(projectPath, '.openfeel', 'dev', 'decisions.md');
286
- const decisionsResult = writeTemplateIfMissing(decisionsPath, getDecisionsTemplate(selectedLang));
287
- if (decisionsResult.created) {
192
+ if (writeTemplateIfMissing(decisionsPath, getDecisionsTemplate(lang)).created) {
288
193
  created.push('.openfeel/dev/decisions.md');
289
194
  }
290
195
  // 7. 生成 .openfeel/kb/index.md 模板(双语)
291
196
  const kbIndexPath = resolve(projectPath, '.openfeel', 'kb', 'index.md');
292
- const kbContent = selectedLang === 'en'
197
+ const kbContent = lang === 'en'
293
198
  ? '# Knowledge Base Index\n\n> No entries yet.\n'
294
199
  : '# 知识库索引\n\n> 暂无条目。\n';
295
- const kbResult = writeTemplateIfMissing(kbIndexPath, kbContent);
296
- if (kbResult.created) {
200
+ if (writeTemplateIfMissing(kbIndexPath, kbContent).created) {
297
201
  created.push('.openfeel/kb/index.md');
298
202
  }
299
- // 7b. 部署 opencode 适配器(如用户确认)
300
- let opencodeResult;
301
- if (deployOpencodeFlag) {
302
- opencodeResult = deployOpencode(projectPath, selectedLang);
203
+ return { created, updated, skipped };
204
+ }
205
+ /**
206
+ * 初始化项目工作区
207
+ * 步骤:确保全局配置 → 语言选择 → 创建工作区 → 项目平台适配器配置文件(opencode.jsonc) → package.json vitest 检测
208
+ * (v1.1.1:拆除全局 agent/skill/core.md 部署与项目 AGENTS.md 骨架,收归 openfeel setup)
209
+ */
210
+ export async function initProject(projectPath, cliLang) {
211
+ // 0. 确保全局配置存在(首次使用时交互选择语言)
212
+ await ensureGlobalConfig();
213
+ // 1. 语言选择:CLI --lang 参数 > 交互式选择 > 全局默认语言
214
+ let selectedLang;
215
+ if (cliLang === 'en' || cliLang === 'zh-CN') {
216
+ selectedLang = cliLang;
217
+ console.log(t('init.agentLangTmpl', getCliLang(projectPath), { lang: selectedLang === 'en' ? 'English' : '中文' }));
218
+ }
219
+ else if (cliLang) {
220
+ console.warn(t('init.invalidLangWarnTmpl', getCliLang(projectPath), { lang: cliLang }));
221
+ selectedLang = await promptLanguage();
222
+ }
223
+ else {
224
+ selectedLang = await promptLanguage();
303
225
  }
304
- // 8. 生成 AGENTS.md 骨架文件(项目根目录),根据语言选择加载模板
305
- const agentsMdPath = resolve(projectPath, 'AGENTS.md');
306
- const agentsMdContent = loadTemplate(selectedLang, 'agents-md');
307
- const projectName = basename(projectPath);
308
- const replacedContent = agentsMdContent.replace(/\{项目名称\}/g, projectName);
309
- const agentsMdResult = writeTemplateIfMissing(agentsMdPath, replacedContent);
310
- if (agentsMdResult.created) {
311
- created.push('AGENTS.md');
226
+ // 2. 创建工作区(目录 + config.yaml + flow.json + .info.json + dev/kb 模板)
227
+ const { created, updated, skipped } = initWorkspaceCore(projectPath, selectedLang);
228
+ // 3. 项目平台适配器配置文件(opencode.jsonc):最小覆盖(仅 $schema),不存在则写
229
+ // (v1.1.1 REV-1905 从 deployOpencode 抽出到 initProject)
230
+ const projectJsoncPath = resolve(projectPath, 'opencode.jsonc');
231
+ if (!existsSync(projectJsoncPath)) {
232
+ atomicWriteFileSync(projectJsoncPath, JSON.stringify(buildProjectOpencodeJsoncObj(), null, 2) + '\n');
233
+ created.push('opencode.jsonc');
312
234
  }
313
- // 9. 检测 package.json,若存在 vitest 则添加 @vitest/coverage-v8
235
+ // 4. 检测 package.json,若存在 vitest 则添加 @vitest/coverage-v8
314
236
  const pkgPath = resolve(projectPath, 'package.json');
315
237
  if (existsSync(pkgPath)) {
316
238
  const pkgContent = readFileSync(pkgPath, 'utf-8');
@@ -328,18 +250,39 @@ export async function initProject(projectPath, cliLang) {
328
250
  const majorMatch = vitestVersion.match(/^(?:[\^~]?)(\d+)/);
329
251
  const majorVersion = majorMatch ? majorMatch[1] : '3';
330
252
  pkg.devDependencies['@vitest/coverage-v8'] = `^${majorVersion}.0.0`;
331
- atomicWriteFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n');
332
- updated.push('package.json');
253
+ try {
254
+ // 写前备份(目标已存在且本次将实际写入)
255
+ const bkPkg = backupFileBeforeWrite(pkgPath, { command: 'init', projectPath });
256
+ if (bkPkg) {
257
+ appendUpdateInfo('backed', { projectRoot: projectPath, relativePath: 'package.json', backupRel: bkPkg.backupRel, command: 'init' });
258
+ notifyBackupIfTTY(bkPkg.backupRel);
259
+ }
260
+ atomicWriteFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n');
261
+ updated.push('package.json');
262
+ }
263
+ catch (err) {
264
+ if (err instanceof BackupError) {
265
+ // 备份失败 → 不写盘(磁盘 package.json 保持原样;pkg 仅在内存中被修改)
266
+ appendUpdateInfo('anomaly', { projectRoot: projectPath, relativePath: 'package.json', note: 'backup_failed' });
267
+ console.warn(t('init.pkgBackupSkipTmpl', getCliLang(projectPath), { err: err.message }));
268
+ skipped.push('package.json (backup failed)');
269
+ }
270
+ else {
271
+ throw err;
272
+ }
273
+ }
333
274
  }
334
275
  }
335
276
  }
336
- // 10. 重启提醒(仅在 opencode 首次部署时,且为交互模式)
337
- if (opencodeResult && opencodeResult.created > 0 && process.stdout.isTTY) {
338
- console.log(selectedLang === 'en'
339
- ? 'opencode global configuration deployed. Please restart opencode to load the new global agents/skills/constraints.'
340
- : 'opencode 全局配置已部署,请重启 opencode 以加载新的全局 agent/skill/约束。');
341
- }
342
- return { created, updated, opencode: opencodeResult };
277
+ return { created, updated, skipped };
278
+ }
279
+ /**
280
+ * 非交互轻量子命令:仅创建工作区(供 feel 空白项目自动搭建;不建全局规则/平台适配器配置(AGENTS.md/opencode.jsonc))
281
+ * 不做语言交互、不部署全局配置。
282
+ */
283
+ export function initWorkspaceOnly(projectPath, lang) {
284
+ const deployLang = (lang === 'en' || lang === 'zh-CN') ? lang : 'zh-CN';
285
+ return initWorkspaceCore(projectPath, deployLang);
343
286
  }
344
287
  /**
345
288
  * 创建示例项目骨架(--demo 标志触发)
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/core/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/core/init.ts"],"names":[],"mappings":"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"}
@@ -45,7 +45,7 @@ export interface FrontmatterSplit {
45
45
  */
46
46
  export declare function splitFrontmatter(content: string): FrontmatterSplit | null;
47
47
  /**
48
- * 合并 frontmatter(REV-904:字段级白名单,浅合并)。
48
+ * 合并 frontmatter(REV-904):incoming 全字段覆盖 + existing 独有字段 passthrough(浅合并,无白名单过滤)。
49
49
  * incoming(框架模板字段)覆盖同名 existing 字段;existing 独有字段 passthrough 保留。
50
50
  */
51
51
  export declare function mergeFrontmatter(existing: Record<string, unknown>, incoming: Record<string, unknown>): Record<string, unknown>;
@@ -155,7 +155,7 @@ export function splitFrontmatter(content) {
155
155
  }
156
156
  }
157
157
  /**
158
- * 合并 frontmatter(REV-904:字段级白名单,浅合并)。
158
+ * 合并 frontmatter(REV-904):incoming 全字段覆盖 + existing 独有字段 passthrough(浅合并,无白名单过滤)。
159
159
  * incoming(框架模板字段)覆盖同名 existing 字段;existing 独有字段 passthrough 保留。
160
160
  */
161
161
  export function mergeFrontmatter(existing, incoming) {
@@ -18,11 +18,12 @@ export interface AgentMetrics {
18
18
  * 管理所有 Agent 的性能指标,支持持久化读写
19
19
  */
20
20
  export declare class MetricsStore {
21
- private static instance;
21
+ /** 按 dataDir 缓存单例,避免跨项目复用首次固化的 dataDir(T11) */
22
+ private static instances;
22
23
  private agents;
23
24
  private dataDir;
24
25
  private constructor();
25
- /** 获取单例实例(默认 dataDir = CWD/.openfeel) */
26
+ /** 获取单例实例(按 dataDir 为键;缺省 dataDir = CWD/.openfeel) */
26
27
  static getInstance(dataDir?: string): MetricsStore;
27
28
  /** 重置单例(仅测试用) */
28
29
  static resetInstance(): void;
@@ -40,10 +41,21 @@ export declare class MetricsStore {
40
41
  */
41
42
  getAgentMetrics(agentName?: string): AgentMetrics | AgentMetrics[] | undefined;
42
43
  /**
43
- * 生成人类可读的性能摘要字符串
44
+ * 生成人类可读的性能摘要字符串(i18n 化,T15)
44
45
  * 包含每个 Agent 的总执行次数、成功率、重试次数、耗时统计
46
+ * @param lang 语言标识('zh-CN' | 'en'),默认 'zh-CN' 保持现行为
45
47
  */
46
- summary(): string;
48
+ summary(lang?: string): string;
49
+ /**
50
+ * 结构化指标摘要(B1-4:供 `flow metrics --json` 消费)。
51
+ * 键名与 summary() 语义一致;新增 successRate 百分比(无数据时为 null)。
52
+ * 不改变 summary() 既有签名与输出。
53
+ */
54
+ getSummaryData(): {
55
+ agents: Array<AgentMetrics & {
56
+ successRate: number | null;
57
+ }>;
58
+ };
47
59
  /** metrics.json 文件完整路径 */
48
60
  private get metricsPath();
49
61
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/core/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,iBAAiB;AACjB,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AAoBD;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA6B;IACpD,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO;IAIP,yCAAyC;IACzC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY;IASlD,iBAAiB;IACjB,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B;;;;;;OAMG;IACH,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,SAAS,GAAG,SAAS,EAC7B,OAAO,GAAE,MAAU,GAClB,IAAI;IAqBP;;;OAGG;IACH,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY,EAAE,GAAG,SAAS;IAO9E;;;OAGG;IACH,OAAO,IAAI,MAAM;IA2BjB,0BAA0B;IAC1B,OAAO,KAAK,WAAW,GAEtB;IAED;;;OAGG;IACH,IAAI,IAAI,IAAI;IAoBZ;;;OAGG;IACH,IAAI,IAAI,IAAI;CAeb"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/core/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,iBAAiB;AACjB,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AAoBD;;;GAGG;AACH,qBAAa,YAAY;IACvB,+CAA+C;IAC/C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAmC;IAC3D,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO;IAIP,sDAAsD;IACtD,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY;IAUlD,iBAAiB;IACjB,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B;;;;;;OAMG;IACH,SAAS,CACP,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,SAAS,GAAG,SAAS,EAC7B,OAAO,GAAE,MAAU,GAClB,IAAI;IAqBP;;;OAGG;IACH,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY,EAAE,GAAG,SAAS;IAO9E;;;;OAIG;IACH,OAAO,CAAC,IAAI,GAAE,MAAgB,GAAG,MAAM;IA2BvC;;;;OAIG;IACH,cAAc,IAAI;QAAE,MAAM,EAAE,KAAK,CAAC,YAAY,GAAG;YAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC,CAAA;KAAE;IAUlF,0BAA0B;IAC1B,OAAO,KAAK,WAAW,GAEtB;IAED;;;OAGG;IACH,IAAI,IAAI,IAAI;IAoBZ;;;OAGG;IACH,IAAI,IAAI,IAAI;CAeb"}
@@ -7,6 +7,7 @@ import { readFileSync, existsSync, mkdirSync } from 'node:fs';
7
7
  import { resolve } from 'node:path';
8
8
  import { atomicWriteFileSync } from './fs/atomic-write.js';
9
9
  import { normalizeAgentName } from './flow-manager.js';
10
+ import { t } from './i18n.js';
10
11
  /** 创建默认的 AgentMetrics 初始值 */
11
12
  function createDefaultMetrics(agentName) {
12
13
  return {
@@ -24,22 +25,26 @@ function createDefaultMetrics(agentName) {
24
25
  * 管理所有 Agent 的性能指标,支持持久化读写
25
26
  */
26
27
  export class MetricsStore {
27
- static instance = null;
28
+ /** 按 dataDir 缓存单例,避免跨项目复用首次固化的 dataDir(T11) */
29
+ static instances = new Map();
28
30
  agents = new Map();
29
31
  dataDir;
30
32
  constructor(dataDir) {
31
33
  this.dataDir = dataDir;
32
34
  }
33
- /** 获取单例实例(默认 dataDir = CWD/.openfeel) */
35
+ /** 获取单例实例(按 dataDir 为键;缺省 dataDir = CWD/.openfeel) */
34
36
  static getInstance(dataDir) {
35
- if (!MetricsStore.instance) {
36
- MetricsStore.instance = new MetricsStore(dataDir ?? resolve(process.cwd(), '.openfeel'));
37
+ const key = dataDir ?? resolve(process.cwd(), '.openfeel');
38
+ let instance = MetricsStore.instances.get(key);
39
+ if (!instance) {
40
+ instance = new MetricsStore(key);
41
+ MetricsStore.instances.set(key, instance);
37
42
  }
38
- return MetricsStore.instance;
43
+ return instance;
39
44
  }
40
45
  /** 重置单例(仅测试用) */
41
46
  static resetInstance() {
42
- MetricsStore.instance = null;
47
+ MetricsStore.instances.clear();
43
48
  }
44
49
  /**
45
50
  * 记录一次 Agent 运行
@@ -77,22 +82,37 @@ export class MetricsStore {
77
82
  return Array.from(this.agents.values());
78
83
  }
79
84
  /**
80
- * 生成人类可读的性能摘要字符串
85
+ * 生成人类可读的性能摘要字符串(i18n 化,T15)
81
86
  * 包含每个 Agent 的总执行次数、成功率、重试次数、耗时统计
87
+ * @param lang 语言标识('zh-CN' | 'en'),默认 'zh-CN' 保持现行为
82
88
  */
83
- summary() {
89
+ summary(lang = 'zh-CN') {
84
90
  if (this.agents.size === 0) {
85
- return '暂无 Agent 性能数据。';
91
+ return t('metrics.summary.noData', lang);
86
92
  }
87
- const lines = ['Agent 性能指标摘要', '═══════════════════'];
93
+ const lines = [t('metrics.summary.title', lang), '═══════════════════'];
88
94
  for (const m of this.agents.values()) {
89
95
  const successRate = m.totalRuns > 0
90
96
  ? `${((m.successfulRuns / m.totalRuns) * 100).toFixed(1)}%`
91
97
  : 'N/A';
92
- lines.push(`\n${normalizeAgentName(m.agentName)}`, ` 总执行次数: ${m.totalRuns}`, ` 成功 / 失败: ${m.successfulRuns} / ${m.failedRuns}`, ` 成功率: ${successRate}`, ` 总重试次数: ${m.totalRetries}`, ` 总耗时: ${m.totalDurationMs}ms`, ` 平均耗时: ${m.avgDurationMs}ms`);
98
+ lines.push(`\n${normalizeAgentName(m.agentName)}`, t('metrics.summary.totalRuns', lang, { n: String(m.totalRuns) }), t('metrics.summary.successFail', lang, { ok: String(m.successfulRuns), fail: String(m.failedRuns) }), t('metrics.summary.successRate', lang, { rate: successRate }), t('metrics.summary.totalRetries', lang, { n: String(m.totalRetries) }), t('metrics.summary.totalDuration', lang, { n: String(m.totalDurationMs) }), t('metrics.summary.avgDuration', lang, { n: String(m.avgDurationMs) }));
93
99
  }
94
100
  return lines.join('\n');
95
101
  }
102
+ /**
103
+ * 结构化指标摘要(B1-4:供 `flow metrics --json` 消费)。
104
+ * 键名与 summary() 语义一致;新增 successRate 百分比(无数据时为 null)。
105
+ * 不改变 summary() 既有签名与输出。
106
+ */
107
+ getSummaryData() {
108
+ const agents = Array.from(this.agents.values()).map((m) => ({
109
+ ...m,
110
+ successRate: m.totalRuns > 0
111
+ ? Number(((m.successfulRuns / m.totalRuns) * 100).toFixed(1))
112
+ : null,
113
+ }));
114
+ return { agents };
115
+ }
96
116
  /** metrics.json 文件完整路径 */
97
117
  get metricsPath() {
98
118
  return resolve(this.dataDir, 'metrics.json');
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/core/metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/core/metrics.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,12 @@ export interface MigrateResult {
43
43
  count: number;
44
44
  }[];
45
45
  remapped: boolean;
46
+ deprecated: DeprecatedCompatReport;
47
+ }
48
+ /** 兼容过渡检测报告(v1.1.1):全局旧 core.md 与存量项目 AGENTS.md(均不强制删除,仅提示) */
49
+ export interface DeprecatedCompatReport {
50
+ globalCoreMdExists: boolean;
51
+ projectAgentsMdExists: boolean;
46
52
  }
47
53
  /** state 拆分结果 */
48
54
  export interface SplitStateResult {
@@ -77,6 +83,11 @@ export declare function backupLegacy(projectPath: string, report: LegacyReport,
77
83
  * @param globalStateIn 可选:调用方已加载的全局 state(REV-1402 复用避免重复 load)
78
84
  */
79
85
  export declare function splitUpdateState(projectPath: string, lang?: 'zh-CN' | 'en', globalStateIn?: UpdateState): SplitStateResult;
86
+ /**
87
+ * 兼容过渡检测(v1.1.1):全局旧 core.md 与存量项目 AGENTS.md(均不强制删除,仅提示)。
88
+ * globalCoreMdExists 检测的是全局资产(跨项目),故仅作提示,删除须显式 --clean-global-core-md。
89
+ */
90
+ export declare function detectDeprecatedCompat(projectPath: string): DeprecatedCompatReport;
80
91
  /** 扫描 flow.json 旧 assignee,报告旧名→新名映射;dryRun 仅报告不写 */
81
92
  export declare function remapAssignees(projectPath: string, dryRun: boolean): {
82
93
  changes: string[];
@@ -89,6 +100,7 @@ export declare function migrateProject(projectPath: string, opts?: {
89
100
  dryRun?: boolean;
90
101
  remapAssignee?: boolean;
91
102
  lang?: 'zh-CN' | 'en';
103
+ cleanGlobalCoreMd?: boolean;
92
104
  }): MigrateResult;
93
105
  /** 回滚最近一次迁移:按 manifest 逆向恢复项目文件 + 还原全局 state 新增条目 */
94
106
  export declare function rollbackMigration(projectPath: string, backupTs?: string): {
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/core/migrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/core/migrate.ts"],"names":[],"mappings":"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"}