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.
- package/README.en.md +42 -12
- package/README.md +8 -3
- package/README.zh-CN.md +43 -13
- package/bin/openfeel.js +5 -0
- package/dist/cli/index.d.ts +15 -3
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +61 -15
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output-encoding.d.ts +41 -0
- package/dist/cli/output-encoding.d.ts.map +1 -0
- package/dist/cli/output-encoding.js +165 -0
- package/dist/cli/output-encoding.js.map +1 -0
- package/dist/cli/repl.d.ts +2 -2
- package/dist/cli/repl.d.ts.map +1 -1
- package/dist/cli/repl.js +46 -25
- package/dist/cli/repl.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +56 -9
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/flow.d.ts.map +1 -1
- package/dist/commands/flow.js +827 -138
- package/dist/commands/flow.js.map +1 -1
- package/dist/commands/init.d.ts +2 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +58 -39
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/knowledge.d.ts.map +1 -1
- package/dist/commands/knowledge.js +69 -0
- package/dist/commands/knowledge.js.map +1 -1
- package/dist/commands/lint.d.ts.map +1 -1
- package/dist/commands/lint.js +17 -5
- package/dist/commands/lint.js.map +1 -1
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +15 -1
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/model.d.ts.map +1 -1
- package/dist/commands/model.js +18 -1
- package/dist/commands/model.js.map +1 -1
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +185 -7
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/project.js +2 -2
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/roadmap.d.ts.map +1 -1
- package/dist/commands/roadmap.js +20 -5
- package/dist/commands/roadmap.js.map +1 -1
- package/dist/commands/setup.d.ts +7 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +37 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/shared/errors.d.ts +22 -0
- package/dist/commands/shared/errors.d.ts.map +1 -0
- package/dist/commands/shared/errors.js +45 -0
- package/dist/commands/shared/errors.js.map +1 -0
- package/dist/commands/stage.d.ts.map +1 -1
- package/dist/commands/stage.js +133 -23
- package/dist/commands/stage.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +1 -10
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/view.d.ts +1 -1
- package/dist/commands/view.d.ts.map +1 -1
- package/dist/commands/view.js +4 -26
- package/dist/commands/view.js.map +1 -1
- package/dist/core/archive/merge.d.ts.map +1 -1
- package/dist/core/archive/merge.js +9 -5
- package/dist/core/archive/merge.js.map +1 -1
- package/dist/core/artifact-graph/graph.d.ts +7 -2
- package/dist/core/artifact-graph/graph.d.ts.map +1 -1
- package/dist/core/artifact-graph/graph.js +25 -18
- package/dist/core/artifact-graph/graph.js.map +1 -1
- package/dist/core/artifact-graph/instruction-loader.d.ts.map +1 -1
- package/dist/core/artifact-graph/instruction-loader.js +4 -33
- package/dist/core/artifact-graph/instruction-loader.js.map +1 -1
- package/dist/core/backup.d.ts +28 -0
- package/dist/core/backup.d.ts.map +1 -0
- package/dist/core/backup.js +118 -0
- package/dist/core/backup.js.map +1 -0
- package/dist/core/config.d.ts +30 -19
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +86 -26
- package/dist/core/config.js.map +1 -1
- package/dist/core/flow-manager.d.ts +256 -5
- package/dist/core/flow-manager.d.ts.map +1 -1
- package/dist/core/flow-manager.js +908 -68
- package/dist/core/flow-manager.js.map +1 -1
- package/dist/core/fs/atomic-write.d.ts +3 -0
- package/dist/core/fs/atomic-write.d.ts.map +1 -1
- package/dist/core/fs/atomic-write.js +3 -0
- package/dist/core/fs/atomic-write.js.map +1 -1
- package/dist/core/fs/safe-read.d.ts +11 -0
- package/dist/core/fs/safe-read.d.ts.map +1 -0
- package/dist/core/fs/safe-read.js +31 -0
- package/dist/core/fs/safe-read.js.map +1 -0
- package/dist/core/global-paths.d.ts +17 -6
- package/dist/core/global-paths.d.ts.map +1 -1
- package/dist/core/global-paths.js +26 -7
- package/dist/core/global-paths.js.map +1 -1
- package/dist/core/i18n-data/en.d.ts +3 -0
- package/dist/core/i18n-data/en.d.ts.map +1 -1
- package/dist/core/i18n-data/en.js +271 -18
- package/dist/core/i18n-data/en.js.map +1 -1
- package/dist/core/i18n-data/zh-CN.d.ts +3 -0
- package/dist/core/i18n-data/zh-CN.d.ts.map +1 -1
- package/dist/core/i18n-data/zh-CN.js +278 -18
- package/dist/core/i18n-data/zh-CN.js.map +1 -1
- package/dist/core/i18n.d.ts +8 -0
- package/dist/core/i18n.d.ts.map +1 -1
- package/dist/core/i18n.js +14 -4
- package/dist/core/i18n.js.map +1 -1
- package/dist/core/init.d.ts +12 -15
- package/dist/core/init.d.ts.map +1 -1
- package/dist/core/init.js +85 -142
- package/dist/core/init.js.map +1 -1
- package/dist/core/managed-region.d.ts +1 -1
- package/dist/core/managed-region.js +1 -1
- package/dist/core/metrics.d.ts +16 -4
- package/dist/core/metrics.d.ts.map +1 -1
- package/dist/core/metrics.js +31 -11
- package/dist/core/metrics.js.map +1 -1
- package/dist/core/migrate.d.ts +12 -0
- package/dist/core/migrate.d.ts.map +1 -1
- package/dist/core/migrate.js +88 -29
- package/dist/core/migrate.js.map +1 -1
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +4 -2
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/opencode-config.d.ts +4 -4
- package/dist/core/opencode-config.d.ts.map +1 -1
- package/dist/core/opencode-config.js +20 -7
- package/dist/core/opencode-config.js.map +1 -1
- package/dist/core/plan/path.d.ts +40 -0
- package/dist/core/plan/path.d.ts.map +1 -1
- package/dist/core/plan/path.js +108 -1
- package/dist/core/plan/path.js.map +1 -1
- package/dist/core/plan/roadmap.js +2 -2
- package/dist/core/plan/roadmap.js.map +1 -1
- package/dist/core/plan/scheme.d.ts +74 -2
- package/dist/core/plan/scheme.d.ts.map +1 -1
- package/dist/core/plan/scheme.js +311 -26
- package/dist/core/plan/scheme.js.map +1 -1
- package/dist/core/plan/stage.d.ts +34 -3
- package/dist/core/plan/stage.d.ts.map +1 -1
- package/dist/core/plan/stage.js +90 -6
- package/dist/core/plan/stage.js.map +1 -1
- package/dist/core/public-logger.d.ts +18 -5
- package/dist/core/public-logger.d.ts.map +1 -1
- package/dist/core/public-logger.js +62 -23
- package/dist/core/public-logger.js.map +1 -1
- package/dist/core/runtime-log.d.ts +25 -0
- package/dist/core/runtime-log.d.ts.map +1 -0
- package/dist/core/runtime-log.js +94 -0
- package/dist/core/runtime-log.js.map +1 -0
- package/dist/core/setup.d.ts +10 -0
- package/dist/core/setup.d.ts.map +1 -0
- package/dist/core/setup.js +103 -0
- package/dist/core/setup.js.map +1 -0
- package/dist/core/template-loader.d.ts +4 -5
- package/dist/core/template-loader.d.ts.map +1 -1
- package/dist/core/template-loader.js +1322 -259
- package/dist/core/template-loader.js.map +1 -1
- package/dist/core/templates.d.ts +4 -4
- package/dist/core/templates.d.ts.map +1 -1
- package/dist/core/templates.js +15 -11
- package/dist/core/templates.js.map +1 -1
- package/dist/core/update-infos.d.ts +14 -3
- package/dist/core/update-infos.d.ts.map +1 -1
- package/dist/core/update-infos.js +67 -15
- package/dist/core/update-infos.js.map +1 -1
- package/dist/core/update-state.d.ts.map +1 -1
- package/dist/core/update-state.js +7 -4
- package/dist/core/update-state.js.map +1 -1
- package/dist/core/update.d.ts +2 -7
- package/dist/core/update.d.ts.map +1 -1
- package/dist/core/update.js +338 -149
- package/dist/core/update.js.map +1 -1
- package/dist/core/view/entry.d.ts +53 -1
- package/dist/core/view/entry.d.ts.map +1 -1
- package/dist/core/view/entry.js +71 -2
- package/dist/core/view/entry.js.map +1 -1
- package/dist/core/workspace/identity.d.ts.map +1 -1
- package/dist/core/workspace/identity.js +15 -5
- package/dist/core/workspace/identity.js.map +1 -1
- package/dist/core/workspace/knowledge.d.ts.map +1 -1
- package/dist/core/workspace/knowledge.js +125 -19
- package/dist/core/workspace/knowledge.js.map +1 -1
- package/dist/core/workspace/structure.d.ts.map +1 -1
- package/dist/core/workspace/structure.js +6 -2
- package/dist/core/workspace/structure.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/utils/kb-dedup.d.ts +5 -1
- package/dist/utils/kb-dedup.d.ts.map +1 -1
- package/dist/utils/kb-dedup.js +11 -5
- package/dist/utils/kb-dedup.js.map +1 -1
- package/package.json +6 -6
- package/dist/utils/path.d.ts +0 -22
- package/dist/utils/path.d.ts.map +0 -1
- package/dist/utils/path.js +0 -37
- package/dist/utils/path.js.map +0 -1
- 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
|
-
*
|
|
7
|
-
*
|
|
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
|
|
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
|
|
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 {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
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
|
-
* 与
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
179
|
+
writeLang(projectPath, lang);
|
|
272
180
|
// 5. 生成 .openfeel/dev/dev_core.md 模板(双语)
|
|
273
181
|
const devCorePath = resolve(projectPath, '.openfeel', 'dev', 'dev_core.md');
|
|
274
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
197
|
+
const kbContent = lang === 'en'
|
|
293
198
|
? '# Knowledge Base Index\n\n> No entries yet.\n'
|
|
294
199
|
: '# 知识库索引\n\n> 暂无条目。\n';
|
|
295
|
-
|
|
296
|
-
if (kbResult.created) {
|
|
200
|
+
if (writeTemplateIfMissing(kbIndexPath, kbContent).created) {
|
|
297
201
|
created.push('.openfeel/kb/index.md');
|
|
298
202
|
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
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
|
-
//
|
|
305
|
-
const
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
const
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
created.push('
|
|
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
|
-
//
|
|
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
|
-
|
|
332
|
-
|
|
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
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
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 标志触发)
|
package/dist/core/init.js.map
CHANGED
|
@@ -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) {
|
package/dist/core/metrics.d.ts
CHANGED
|
@@ -18,11 +18,12 @@ export interface AgentMetrics {
|
|
|
18
18
|
* 管理所有 Agent 的性能指标,支持持久化读写
|
|
19
19
|
*/
|
|
20
20
|
export declare class MetricsStore {
|
|
21
|
-
|
|
21
|
+
/** 按 dataDir 缓存单例,避免跨项目复用首次固化的 dataDir(T11) */
|
|
22
|
+
private static instances;
|
|
22
23
|
private agents;
|
|
23
24
|
private dataDir;
|
|
24
25
|
private constructor();
|
|
25
|
-
/**
|
|
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;
|
|
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"}
|
package/dist/core/metrics.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
/**
|
|
35
|
+
/** 获取单例实例(按 dataDir 为键;缺省 dataDir = CWD/.openfeel) */
|
|
34
36
|
static getInstance(dataDir) {
|
|
35
|
-
|
|
36
|
-
|
|
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
|
|
43
|
+
return instance;
|
|
39
44
|
}
|
|
40
45
|
/** 重置单例(仅测试用) */
|
|
41
46
|
static resetInstance() {
|
|
42
|
-
MetricsStore.
|
|
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 '
|
|
91
|
+
return t('metrics.summary.noData', lang);
|
|
86
92
|
}
|
|
87
|
-
const lines = ['
|
|
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)}`,
|
|
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');
|
package/dist/core/metrics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/core/metrics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/core/metrics.ts"],"names":[],"mappings":"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"}
|
package/dist/core/migrate.d.ts
CHANGED
|
@@ -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":"
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/core/migrate.ts"],"names":[],"mappings":"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"}
|