openfeel 1.0.8 → 1.1.0
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 +11 -11
- package/README.md +2 -1
- package/README.zh-CN.md +13 -13
- package/bin/openfeel.js +2 -2
- package/dist/cli/index.d.ts +6 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +26 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/archive.d.ts +1 -1
- package/dist/commands/flow.d.ts +1 -1
- package/dist/commands/flow.d.ts.map +1 -1
- package/dist/commands/flow.js +20 -8
- package/dist/commands/flow.js.map +1 -1
- package/dist/commands/migrate.d.ts +10 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +97 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/model.d.ts +10 -0
- package/dist/commands/model.d.ts.map +1 -0
- package/dist/commands/model.js +135 -0
- package/dist/commands/model.js.map +1 -0
- package/dist/commands/plan.js +2 -2
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/stage.d.ts.map +1 -1
- package/dist/commands/stage.js +66 -47
- package/dist/commands/stage.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +12 -0
- 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 +2 -1
- package/dist/commands/view.js.map +1 -1
- package/dist/core/archive/merge.d.ts.map +1 -1
- package/dist/core/archive/merge.js +5 -4
- package/dist/core/archive/merge.js.map +1 -1
- package/dist/core/artifact-graph/resolver.js +2 -2
- package/dist/core/artifact-graph/resolver.js.map +1 -1
- package/dist/core/config.d.ts +8 -8
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +22 -17
- package/dist/core/config.js.map +1 -1
- package/dist/core/flow-manager.d.ts +27 -6
- package/dist/core/flow-manager.d.ts.map +1 -1
- package/dist/core/flow-manager.js +152 -103
- package/dist/core/flow-manager.js.map +1 -1
- package/dist/core/fs/atomic-write.d.ts +31 -0
- package/dist/core/fs/atomic-write.d.ts.map +1 -0
- package/dist/core/fs/atomic-write.js +80 -0
- package/dist/core/fs/atomic-write.js.map +1 -0
- package/dist/core/fs/file-lock.d.ts +34 -0
- package/dist/core/fs/file-lock.d.ts.map +1 -0
- package/dist/core/fs/file-lock.js +142 -0
- package/dist/core/fs/file-lock.js.map +1 -0
- package/dist/core/fs/sequence.d.ts +42 -0
- package/dist/core/fs/sequence.d.ts.map +1 -0
- package/dist/core/fs/sequence.js +69 -0
- package/dist/core/fs/sequence.js.map +1 -0
- package/dist/core/global-paths.d.ts +25 -0
- package/dist/core/global-paths.d.ts.map +1 -0
- package/dist/core/global-paths.js +57 -0
- package/dist/core/global-paths.js.map +1 -0
- package/dist/core/i18n-data/en.d.ts +2 -0
- package/dist/core/i18n-data/en.d.ts.map +1 -1
- package/dist/core/i18n-data/en.js +69 -1
- package/dist/core/i18n-data/en.js.map +1 -1
- package/dist/core/i18n-data/zh-CN.d.ts +2 -0
- package/dist/core/i18n-data/zh-CN.d.ts.map +1 -1
- package/dist/core/i18n-data/zh-CN.js +69 -1
- package/dist/core/i18n-data/zh-CN.js.map +1 -1
- package/dist/core/i18n.js +4 -4
- package/dist/core/i18n.js.map +1 -1
- package/dist/core/init.d.ts +3 -3
- package/dist/core/init.d.ts.map +1 -1
- package/dist/core/init.js +58 -42
- package/dist/core/init.js.map +1 -1
- package/dist/core/managed-region.d.ts +54 -0
- package/dist/core/managed-region.d.ts.map +1 -0
- package/dist/core/managed-region.js +171 -0
- package/dist/core/managed-region.js.map +1 -0
- package/dist/core/metrics.d.ts.map +1 -1
- package/dist/core/metrics.js +6 -3
- package/dist/core/metrics.js.map +1 -1
- package/dist/core/migrate.d.ts +103 -0
- package/dist/core/migrate.d.ts.map +1 -0
- package/dist/core/migrate.js +533 -0
- package/dist/core/migrate.js.map +1 -0
- package/dist/core/model-config.d.ts +62 -0
- package/dist/core/model-config.d.ts.map +1 -0
- package/dist/core/model-config.js +336 -0
- package/dist/core/model-config.js.map +1 -0
- package/dist/core/opencode-config.d.ts +17 -0
- package/dist/core/opencode-config.d.ts.map +1 -0
- package/dist/core/opencode-config.js +123 -0
- package/dist/core/opencode-config.js.map +1 -0
- package/dist/core/plan/path.d.ts +64 -0
- package/dist/core/plan/path.d.ts.map +1 -0
- package/dist/core/plan/path.js +150 -0
- package/dist/core/plan/path.js.map +1 -0
- package/dist/core/plan/roadmap.d.ts.map +1 -1
- package/dist/core/plan/roadmap.js +3 -2
- package/dist/core/plan/roadmap.js.map +1 -1
- package/dist/core/plan/scheme.d.ts +4 -3
- package/dist/core/plan/scheme.d.ts.map +1 -1
- package/dist/core/plan/scheme.js +113 -110
- package/dist/core/plan/scheme.js.map +1 -1
- package/dist/core/plan/stage.d.ts +2 -2
- package/dist/core/plan/stage.d.ts.map +1 -1
- package/dist/core/plan/stage.js +47 -32
- package/dist/core/plan/stage.js.map +1 -1
- package/dist/core/public-logger.d.ts +3 -3
- package/dist/core/public-logger.d.ts.map +1 -1
- package/dist/core/public-logger.js +36 -40
- package/dist/core/public-logger.js.map +1 -1
- package/dist/core/template-loader.d.ts +1 -1
- package/dist/core/template-loader.d.ts.map +1 -1
- package/dist/core/template-loader.js +2849 -2826
- package/dist/core/template-loader.js.map +1 -1
- package/dist/core/update-infos.d.ts +32 -0
- package/dist/core/update-infos.d.ts.map +1 -0
- package/dist/core/update-infos.js +153 -0
- package/dist/core/update-infos.js.map +1 -0
- package/dist/core/update-state.d.ts +18 -0
- package/dist/core/update-state.d.ts.map +1 -1
- package/dist/core/update-state.js +66 -3
- package/dist/core/update-state.js.map +1 -1
- package/dist/core/update.d.ts +12 -0
- package/dist/core/update.d.ts.map +1 -1
- package/dist/core/update.js +340 -485
- package/dist/core/update.js.map +1 -1
- package/dist/core/view/entry.js +4 -4
- 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 +13 -10
- 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 +24 -14
- package/dist/core/workspace/knowledge.js.map +1 -1
- package/package.json +1 -1
package/dist/core/init.js
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
* 协调创建工作区、写入配置、初始化 flow.json、确保身份文件、
|
|
4
4
|
* 生成 dev_core.md/current.md 模板。
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* 注意:框架约束 core.md 由 update 命令部署到全局
|
|
7
|
+
* `~/.config/opencode/openfeel/core.md`(适配器层,非核心层),不在 init 阶段生成。
|
|
8
8
|
*
|
|
9
9
|
* 变更摘要:
|
|
10
10
|
* - stage-04: 新增 initDemo() 支持 --demo 标志
|
|
11
|
-
* - stage-
|
|
11
|
+
* - stage-37: deployOpencode 部署目标改为全局 ~/.config/opencode/,项目精简为 .openfeel/ + AGENTS.md + opencode.jsonc
|
|
12
12
|
*/
|
|
13
|
-
import {
|
|
13
|
+
import { readFileSync, existsSync, mkdirSync } from 'node:fs';
|
|
14
14
|
import { resolve, dirname, join, basename } from 'node:path';
|
|
15
15
|
import { createWorkspace } from './workspace/structure.js';
|
|
16
16
|
import { ensureInfoJson, isFirstUse, getGlobalConfig, setGlobalConfig, DEFAULT_GLOBAL_CONFIG } from './workspace/identity.js';
|
|
@@ -19,6 +19,11 @@ import { FlowManager } from './flow-manager.js';
|
|
|
19
19
|
import { getDevCoreTemplate, getCurrentTemplate, getDecisionsTemplate } from './templates.js';
|
|
20
20
|
import { loadTemplate, loadOpencodeAgentTemplate, loadOpencodeSkillTemplate, loadOpencodeConfigTemplate, listOpencodeAgentIds, listOpencodeSkillNames } from './template-loader.js';
|
|
21
21
|
import { t, getCliLang } from './i18n.js';
|
|
22
|
+
import { DEFAULT_STAGE_VERSION } from './plan/path.js';
|
|
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';
|
|
22
27
|
import readline from 'node:readline';
|
|
23
28
|
/**
|
|
24
29
|
* 提示用户选择语言
|
|
@@ -84,7 +89,7 @@ function writeLang(projectPath, lang) {
|
|
|
84
89
|
const content = readFileSync(infoPath, 'utf-8');
|
|
85
90
|
const info = JSON.parse(content);
|
|
86
91
|
info.lang = lang;
|
|
87
|
-
|
|
92
|
+
atomicWriteFileSync(infoPath, JSON.stringify(info, null, 2) + '\n');
|
|
88
93
|
}
|
|
89
94
|
catch {
|
|
90
95
|
// 文件不存在或解析失败,忽略
|
|
@@ -146,13 +151,26 @@ function writeTemplateIfMissing(filePath, content) {
|
|
|
146
151
|
if (!existsSync(parentDir)) {
|
|
147
152
|
mkdirSync(parentDir, { recursive: true });
|
|
148
153
|
}
|
|
149
|
-
|
|
154
|
+
atomicWriteFileSync(filePath, content);
|
|
150
155
|
return { created: true };
|
|
151
156
|
}
|
|
152
157
|
/**
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
|
|
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/ 废弃)。
|
|
156
174
|
* 导出供测试直接调用(不依赖交互流程)
|
|
157
175
|
*/
|
|
158
176
|
export function deployOpencode(projectPath, lang) {
|
|
@@ -164,33 +182,29 @@ export function deployOpencode(projectPath, lang) {
|
|
|
164
182
|
else
|
|
165
183
|
skipped++;
|
|
166
184
|
};
|
|
167
|
-
// 1.
|
|
185
|
+
// 1. Agent 定义(9 个)→ 全局 agents 目录
|
|
168
186
|
const agentIds = listOpencodeAgentIds(lang);
|
|
169
187
|
for (const agentId of agentIds) {
|
|
170
|
-
|
|
171
|
-
const filePath = resolve(projectPath, '.opencode', 'agents', `${agentId}.md`);
|
|
172
|
-
track(writeTemplateIfMissing(filePath, content));
|
|
188
|
+
track(writeGlobalFileIfMissing(join(getGlobalAgentsDir(), `${agentId}.md`), loadOpencodeAgentTemplate(lang, agentId)));
|
|
173
189
|
}
|
|
174
|
-
// 2.
|
|
190
|
+
// 2. Skill 定义(14 个)→ 全局 skills 目录
|
|
175
191
|
const skillNames = listOpencodeSkillNames();
|
|
176
192
|
for (const skillName of skillNames) {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
track(writeTemplateIfMissing(resolve(projectPath, '.opencode', '.gitignore'), loadOpencodeConfigTemplate(lang, 'gitignore')));
|
|
193
|
-
// ⚠️ 不部署 package.json(REV-001)
|
|
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
|
+
}
|
|
194
208
|
return { created, skipped };
|
|
195
209
|
}
|
|
196
210
|
/**
|
|
@@ -203,7 +217,7 @@ export async function initProject(projectPath, cliLang) {
|
|
|
203
217
|
const updated = [];
|
|
204
218
|
// 0. 确保全局配置存在(首次使用时交互选择语言)
|
|
205
219
|
await ensureGlobalConfig();
|
|
206
|
-
// 1. 创建 .openfeel/ 目录结构(含 plan/,
|
|
220
|
+
// 1. 创建 .openfeel/ 目录结构(含 plan/, roadmap/, dev/note/, 等)
|
|
207
221
|
const dirs = createWorkspace(projectPath);
|
|
208
222
|
created.push(...dirs);
|
|
209
223
|
// 1a. 语言选择:CLI --lang 参数 > 交互式选择 > 全局默认语言
|
|
@@ -314,7 +328,7 @@ export async function initProject(projectPath, cliLang) {
|
|
|
314
328
|
const majorMatch = vitestVersion.match(/^(?:[\^~]?)(\d+)/);
|
|
315
329
|
const majorVersion = majorMatch ? majorMatch[1] : '3';
|
|
316
330
|
pkg.devDependencies['@vitest/coverage-v8'] = `^${majorVersion}.0.0`;
|
|
317
|
-
|
|
331
|
+
atomicWriteFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n');
|
|
318
332
|
updated.push('package.json');
|
|
319
333
|
}
|
|
320
334
|
}
|
|
@@ -322,8 +336,8 @@ export async function initProject(projectPath, cliLang) {
|
|
|
322
336
|
// 10. 重启提醒(仅在 opencode 首次部署时,且为交互模式)
|
|
323
337
|
if (opencodeResult && opencodeResult.created > 0 && process.stdout.isTTY) {
|
|
324
338
|
console.log(selectedLang === 'en'
|
|
325
|
-
? 'opencode configuration deployed. Please restart opencode to load the new
|
|
326
|
-
: 'opencode
|
|
339
|
+
? 'opencode global configuration deployed. Please restart opencode to load the new global agents/skills/constraints.'
|
|
340
|
+
: 'opencode 全局配置已部署,请重启 opencode 以加载新的全局 agent/skill/约束。');
|
|
327
341
|
}
|
|
328
342
|
return { created, updated, opencode: opencodeResult };
|
|
329
343
|
}
|
|
@@ -344,7 +358,7 @@ export function initDemo(projectPath, lang = 'zh-CN') {
|
|
|
344
358
|
if (!existsSync(parentDir)) {
|
|
345
359
|
mkdirSync(parentDir, { recursive: true });
|
|
346
360
|
}
|
|
347
|
-
|
|
361
|
+
atomicWriteFileSync(fullPath, content);
|
|
348
362
|
created.push(relPath);
|
|
349
363
|
};
|
|
350
364
|
// src/index.ts — 简单入口
|
|
@@ -359,21 +373,23 @@ export function initDemo(projectPath, lang = 'zh-CN') {
|
|
|
359
373
|
ensureFile('vitest.config.ts', `import { defineConfig } from 'vitest/config';\n\nexport default defineConfig({\n test: {\n include: ['test/**/*.test.ts'],\n },\n});\n`);
|
|
360
374
|
// test/index.test.ts — 示例测试
|
|
361
375
|
ensureFile('test/index.test.ts', `import { describe, it, expect } from 'vitest';\n\nfunction sum(a: number, b: number): number {\n return a + b;\n}\n\ndescribe('sum', () => {\n it('应正确计算两个正数之和', () => {\n expect(sum(1, 2)).toBe(3);\n });\n\n it('应正确计算负数', () => {\n expect(sum(-1, -2)).toBe(-3);\n });\n\n it('应处理零', () => {\n expect(sum(0, 5)).toBe(5);\n });\n});\n`);
|
|
362
|
-
// .openfeel/plan/stage-01/status.md — 示例阶段(双语)
|
|
376
|
+
// .openfeel/plan/v1/stage-01/status.md — 示例阶段(双语)
|
|
377
|
+
// 示例阶段版本前缀抽为常量(path.ts DEFAULT_STAGE_VERSION),短名规范化与 init 保持一致
|
|
378
|
+
const demoStageId = `${DEFAULT_STAGE_VERSION}-stage-01`; // v1.0.0-stage-01
|
|
363
379
|
const statusMdContent = lang === 'en'
|
|
364
|
-
? `#
|
|
365
|
-
: `#
|
|
366
|
-
ensureFile('.openfeel/plan/stage-01/status.md', statusMdContent);
|
|
380
|
+
? `# ${demoStageId} Status\n\n- **Status**: planned\n- **Current Agent**: openfeel-executor\n- **Previous Agent**: none\n- **Updated**: ${new Date().toISOString().substring(0, 16).replace('T', ' ')}\n\n## Current Task\n\nInitialize project skeleton, create basic file structure.\n\n## Status Log\n\n| Time | Agent | Status Change | Description |\n|------|-------|---------------|-------------|\n| - | - | - | Sample stage |\n`
|
|
381
|
+
: `# ${demoStageId} 状态\n\n- **状态**:planned\n- **当前责任 Agent**:openfeel-executor\n- **上一责任 Agent**:none\n- **更新时间**:${new Date().toISOString().substring(0, 16).replace('T', ' ')}\n\n## 当前任务\n\n初始化项目骨架,创建基础文件结构。\n\n## 状态记录\n\n| 时间 | Agent | 状态变化 | 说明 |\n|------|-------|----------|------|\n| - | - | - | 示例阶段 |\n`;
|
|
382
|
+
ensureFile('.openfeel/plan/v1/stage-01/status.md', statusMdContent);
|
|
367
383
|
// 确保 config.yaml 存在(含 models 节,根据语言)
|
|
368
384
|
const configPath = join(projectPath, '.openfeel', 'config.yaml');
|
|
369
385
|
if (!existsSync(configPath)) {
|
|
370
386
|
writeDefaultConfig(projectPath, lang);
|
|
371
387
|
created.push('.openfeel/config.yaml');
|
|
372
388
|
}
|
|
373
|
-
// 在 flow.json 中注册 stage-01
|
|
389
|
+
// 在 flow.json 中注册 v1.0.0-stage-01
|
|
374
390
|
const flowMgr = new FlowManager(projectPath);
|
|
375
391
|
if (flowMgr.isLoaded()) {
|
|
376
|
-
flowMgr.registerStage(
|
|
392
|
+
flowMgr.registerStage(demoStageId, []);
|
|
377
393
|
flowMgr.save();
|
|
378
394
|
}
|
|
379
395
|
return { created, skipped };
|
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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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/** 受管文件类型(jsonc 仅作分派标记,合并逻辑在 opencode-config) */
|
|
2
|
+
export type ManagedFileType = 'markdown' | 'gitignore' | 'jsonc';
|
|
3
|
+
/** 控制区解析状态 */
|
|
4
|
+
export interface RegionParse {
|
|
5
|
+
/** ok=恰好 1 对完整标记;none=无标记;malformed=begin/end 数量不等或 >1 对 */
|
|
6
|
+
status: 'ok' | 'none' | 'malformed';
|
|
7
|
+
/** 区内内容(status=ok 时;trim 后正文) */
|
|
8
|
+
regionContent?: string;
|
|
9
|
+
}
|
|
10
|
+
/** 检测文件类型(.gitignore→gitignore;.jsonc→jsonc;其余→markdown;无法识别→null) */
|
|
11
|
+
export declare function detectFileType(filePath: string): ManagedFileType | null;
|
|
12
|
+
/** 行尾归一化(CRLF / CR → LF,见 kb 行尾归一化模式);导出供 update.ts skip 判定归一化比对(REV-1006) */
|
|
13
|
+
export declare function normalize(content: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* 解析控制区:精确整行匹配 begin/end,计数判定 ok/none/malformed。
|
|
16
|
+
* CRLF 归一化后匹配;>1 对或数量不等 → malformed(REV-908)。
|
|
17
|
+
*/
|
|
18
|
+
export declare function parseRegion(existing: string, type: 'markdown' | 'gitignore'): RegionParse;
|
|
19
|
+
/** 是否含完整成对标记(等价 parseRegion().status === 'ok') */
|
|
20
|
+
export declare function hasRegion(existing: string, type: 'markdown' | 'gitignore'): boolean;
|
|
21
|
+
/** 提取区内内容(trim 后正文);无标记或异常 → null */
|
|
22
|
+
export declare function extractRegion(existing: string, type: 'markdown' | 'gitignore'): string | null;
|
|
23
|
+
/**
|
|
24
|
+
* 包裹内容为受管区(正文 trim 后包裹,输出末尾单换行)。
|
|
25
|
+
* 产出格式:`{begin}\n{content}\n{end}\n`
|
|
26
|
+
*/
|
|
27
|
+
export declare function wrapRegion(content: string, type: 'markdown' | 'gitignore'): string;
|
|
28
|
+
/**
|
|
29
|
+
* 替换区内内容(保留区外,含标记行本身);异常状态抛错由调用方决定降级。
|
|
30
|
+
* 输出:begin 行之前的区外前缀 + 新包裹正文 + end 行之后的区外后缀。
|
|
31
|
+
*
|
|
32
|
+
* 区外逐字符保留(含原文件末尾换行),使 `replaceRegion(x, extractRegion(x))` 与
|
|
33
|
+
* 归一化后的 x 完全一致,支撑 op-002 的 skip 判定(REV-901)。
|
|
34
|
+
*/
|
|
35
|
+
export declare function replaceRegion(existing: string, incoming: string, type: 'markdown' | 'gitignore'): string;
|
|
36
|
+
/** frontmatter 与正文分割结果 */
|
|
37
|
+
export interface FrontmatterSplit {
|
|
38
|
+
frontmatter: Record<string, unknown>;
|
|
39
|
+
body: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* 分割 YAML frontmatter 与正文。
|
|
43
|
+
* 仅当文件以 `---\n` 开头且存在闭合 `---\n` 时返回解析结果;否则返回 null。
|
|
44
|
+
* 解析失败(YAML 语法错误)→ 返回 null(调用方按「无 frontmatter」处理,降级不中断)。
|
|
45
|
+
*/
|
|
46
|
+
export declare function splitFrontmatter(content: string): FrontmatterSplit | null;
|
|
47
|
+
/**
|
|
48
|
+
* 合并 frontmatter(REV-904:字段级白名单,浅合并)。
|
|
49
|
+
* incoming(框架模板字段)覆盖同名 existing 字段;existing 独有字段 passthrough 保留。
|
|
50
|
+
*/
|
|
51
|
+
export declare function mergeFrontmatter(existing: Record<string, unknown>, incoming: Record<string, unknown>): Record<string, unknown>;
|
|
52
|
+
/** 序列化 frontmatter 为 `---\n{...}\n---\n`(yaml.stringify 输出,显式保证末尾换行) */
|
|
53
|
+
export declare function serializeFrontmatter(frontmatter: Record<string, unknown>): string;
|
|
54
|
+
//# sourceMappingURL=managed-region.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-region.d.ts","sourceRoot":"","sources":["../../src/core/managed-region.ts"],"names":[],"mappings":"AAiBA,iDAAiD;AACjD,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;AAQjE,cAAc;AACd,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,WAAW,CAAC;IACpC,iCAAiC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,sEAAsE;AACtE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAMvE;AAED,8EAA8E;AAC9E,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD;AAOD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,WAAW,CA2BzF;AAED,kDAAkD;AAClD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAEnF;AAED,qCAAqC;AACrC,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,IAAI,CAG7F;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,CAGlF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,MAAM,CA+BxG;AAED,0BAA0B;AAC1B,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAqBzE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAKjF"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 控制区标记工具
|
|
3
|
+
* 按文件类型提供受管区(managed region)的识别 / 包裹 / 替换原语,
|
|
4
|
+
* 供 openfeel update 三态部署使用:控制区标记包裹受管内容,更新只覆盖区内,
|
|
5
|
+
* 区外用户内容天然保留(D3 落地)。
|
|
6
|
+
*
|
|
7
|
+
* 四策略:
|
|
8
|
+
* - markdown:<!-- openfeel:begin --> … <!-- openfeel:end -->
|
|
9
|
+
* - gitignore:# openfeel:begin … # openfeel:end
|
|
10
|
+
* - frontmatter:无标记,结构化字段合并(框架字段覆盖 + 用户字段 passthrough)
|
|
11
|
+
* - jsonc:无标记,深度合并(复用 opencode-config.ts,本模块仅分派)
|
|
12
|
+
*
|
|
13
|
+
* 与 openfeel:generated(单行整文件声明,构建产物)不冲突、不统一(N6):
|
|
14
|
+
* generated 是单行信号,begin/end 是成对区间,两者 token 与形态均不同。
|
|
15
|
+
*/
|
|
16
|
+
import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
|
|
17
|
+
/** 标记 token(按类型) */
|
|
18
|
+
const MARKERS = {
|
|
19
|
+
markdown: { begin: '<!-- openfeel:begin -->', end: '<!-- openfeel:end -->' },
|
|
20
|
+
gitignore: { begin: '# openfeel:begin', end: '# openfeel:end' },
|
|
21
|
+
};
|
|
22
|
+
/** 检测文件类型(.gitignore→gitignore;.jsonc→jsonc;其余→markdown;无法识别→null) */
|
|
23
|
+
export function detectFileType(filePath) {
|
|
24
|
+
const base = filePath.split(/[\\/]/).pop() ?? '';
|
|
25
|
+
if (base === '.gitignore')
|
|
26
|
+
return 'gitignore';
|
|
27
|
+
if (base.endsWith('.jsonc'))
|
|
28
|
+
return 'jsonc';
|
|
29
|
+
if (base.endsWith('.md'))
|
|
30
|
+
return 'markdown';
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
/** 行尾归一化(CRLF / CR → LF,见 kb 行尾归一化模式);导出供 update.ts skip 判定归一化比对(REV-1006) */
|
|
34
|
+
export function normalize(content) {
|
|
35
|
+
return content.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
36
|
+
}
|
|
37
|
+
/** 取某类型的 begin/end 标记 token */
|
|
38
|
+
function markers(type) {
|
|
39
|
+
return MARKERS[type];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* 解析控制区:精确整行匹配 begin/end,计数判定 ok/none/malformed。
|
|
43
|
+
* CRLF 归一化后匹配;>1 对或数量不等 → malformed(REV-908)。
|
|
44
|
+
*/
|
|
45
|
+
export function parseRegion(existing, type) {
|
|
46
|
+
const { begin, end } = markers(type);
|
|
47
|
+
const lines = normalize(existing).split('\n');
|
|
48
|
+
let beginIndex = -1;
|
|
49
|
+
let endIndex = -1;
|
|
50
|
+
let beginCount = 0;
|
|
51
|
+
let endCount = 0;
|
|
52
|
+
for (let i = 0; i < lines.length; i++) {
|
|
53
|
+
const trimmed = lines[i].trim();
|
|
54
|
+
if (trimmed === begin) {
|
|
55
|
+
if (beginIndex === -1) {
|
|
56
|
+
beginIndex = i;
|
|
57
|
+
}
|
|
58
|
+
beginCount++;
|
|
59
|
+
}
|
|
60
|
+
if (trimmed === end) {
|
|
61
|
+
endIndex = i;
|
|
62
|
+
endCount++;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (beginCount === 0 && endCount === 0) {
|
|
66
|
+
return { status: 'none' };
|
|
67
|
+
}
|
|
68
|
+
if (beginCount === 1 && endCount === 1 && beginIndex < endIndex) {
|
|
69
|
+
return { status: 'ok', regionContent: lines.slice(beginIndex + 1, endIndex).join('\n').trim() };
|
|
70
|
+
}
|
|
71
|
+
return { status: 'malformed' };
|
|
72
|
+
}
|
|
73
|
+
/** 是否含完整成对标记(等价 parseRegion().status === 'ok') */
|
|
74
|
+
export function hasRegion(existing, type) {
|
|
75
|
+
return parseRegion(existing, type).status === 'ok';
|
|
76
|
+
}
|
|
77
|
+
/** 提取区内内容(trim 后正文);无标记或异常 → null */
|
|
78
|
+
export function extractRegion(existing, type) {
|
|
79
|
+
const r = parseRegion(existing, type);
|
|
80
|
+
return r.status === 'ok' ? (r.regionContent ?? '') : null;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* 包裹内容为受管区(正文 trim 后包裹,输出末尾单换行)。
|
|
84
|
+
* 产出格式:`{begin}\n{content}\n{end}\n`
|
|
85
|
+
*/
|
|
86
|
+
export function wrapRegion(content, type) {
|
|
87
|
+
const { begin, end } = markers(type);
|
|
88
|
+
return `${begin}\n${content.trim()}\n${end}\n`;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* 替换区内内容(保留区外,含标记行本身);异常状态抛错由调用方决定降级。
|
|
92
|
+
* 输出:begin 行之前的区外前缀 + 新包裹正文 + end 行之后的区外后缀。
|
|
93
|
+
*
|
|
94
|
+
* 区外逐字符保留(含原文件末尾换行),使 `replaceRegion(x, extractRegion(x))` 与
|
|
95
|
+
* 归一化后的 x 完全一致,支撑 op-002 的 skip 判定(REV-901)。
|
|
96
|
+
*/
|
|
97
|
+
export function replaceRegion(existing, incoming, type) {
|
|
98
|
+
// 防误用:先 parseRegion 判态,非 ok(none / malformed)直接抛错,避免调用方误删用户内容(REV-1007 修订)
|
|
99
|
+
if (parseRegion(existing, type).status !== 'ok') {
|
|
100
|
+
throw new Error('managed-region: replaceRegion 要求恰好一对完整标记(parseRegion status=ok)');
|
|
101
|
+
}
|
|
102
|
+
const { begin, end } = markers(type);
|
|
103
|
+
const lines = normalize(existing).split('\n');
|
|
104
|
+
let beginIndex = -1;
|
|
105
|
+
let endIndex = -1;
|
|
106
|
+
for (let i = 0; i < lines.length; i++) {
|
|
107
|
+
const t = lines[i].trim();
|
|
108
|
+
if (t === begin && beginIndex === -1) {
|
|
109
|
+
beginIndex = i;
|
|
110
|
+
}
|
|
111
|
+
if (t === end) {
|
|
112
|
+
endIndex = i;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// parseRegion 已保证 begin/end 存在且 begin 在前;此处为防御性兜底
|
|
116
|
+
if (beginIndex === -1 || endIndex === -1 || beginIndex >= endIndex) {
|
|
117
|
+
throw new Error('managed-region: replaceRegion 要求恰好一对完整标记');
|
|
118
|
+
}
|
|
119
|
+
// 前缀:begin 行之前的整行(原样保留),join 后补回被 split 去掉的行尾换行
|
|
120
|
+
const prefixLines = lines.slice(0, beginIndex);
|
|
121
|
+
const prefix = prefixLines.length > 0 ? prefixLines.join('\n') + '\n' : '';
|
|
122
|
+
// 后缀:end 行之后的整行(原样保留,含原文件末尾换行,若有)
|
|
123
|
+
const suffixLines = lines.slice(endIndex + 1);
|
|
124
|
+
const suffix = suffixLines.join('\n');
|
|
125
|
+
const wrapped = `${begin}\n${incoming.trim()}\n${end}`;
|
|
126
|
+
// end 后存在后续行(含仅末尾空行)才补换行分隔;文件以 end 结尾且无尾换行时不追加,保证与 normalize 一致(REV-1102)
|
|
127
|
+
return suffixLines.length > 0 ? prefix + wrapped + '\n' + suffix : prefix + wrapped;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* 分割 YAML frontmatter 与正文。
|
|
131
|
+
* 仅当文件以 `---\n` 开头且存在闭合 `---\n` 时返回解析结果;否则返回 null。
|
|
132
|
+
* 解析失败(YAML 语法错误)→ 返回 null(调用方按「无 frontmatter」处理,降级不中断)。
|
|
133
|
+
*/
|
|
134
|
+
export function splitFrontmatter(content) {
|
|
135
|
+
const text = normalize(content);
|
|
136
|
+
if (!text.startsWith('---\n')) {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
const end = text.indexOf('\n---\n', 3); // 从 3 开始:空 frontmatter(`---\n---\n`)的闭合 `\n` 在 index 3(REV-1005 修订)
|
|
140
|
+
if (end === -1) {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
const fmRaw = text.slice(4, end);
|
|
144
|
+
try {
|
|
145
|
+
// 空 frontmatter(`---\n---\n`):parseYaml('') 返回 null,需特判为空对象
|
|
146
|
+
const parsed = fmRaw.trim() === '' ? {} : parseYaml(fmRaw);
|
|
147
|
+
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
return { frontmatter: parsed, body: text.slice(end + 5) }; // end+5 跳过 '\n---\n'
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
// YAML 语法错误:视为无 frontmatter,降级不中断
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* 合并 frontmatter(REV-904:字段级白名单,浅合并)。
|
|
159
|
+
* incoming(框架模板字段)覆盖同名 existing 字段;existing 独有字段 passthrough 保留。
|
|
160
|
+
*/
|
|
161
|
+
export function mergeFrontmatter(existing, incoming) {
|
|
162
|
+
return { ...existing, ...incoming };
|
|
163
|
+
}
|
|
164
|
+
/** 序列化 frontmatter 为 `---\n{...}\n---\n`(yaml.stringify 输出,显式保证末尾换行) */
|
|
165
|
+
export function serializeFrontmatter(frontmatter) {
|
|
166
|
+
// 显式保证 yaml 末尾换行,避免 stringify 无尾换行时与闭合 `---` 粘连(REV-1008 修订)
|
|
167
|
+
const yaml = stringifyYaml(frontmatter);
|
|
168
|
+
const body = yaml.endsWith('\n') ? yaml : yaml + '\n';
|
|
169
|
+
return `---\n${body}---\n`;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=managed-region.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"managed-region.js","sourceRoot":"","sources":["../../src/core/managed-region.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;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"}
|
package/dist/core/metrics.js
CHANGED
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
* 记录每个 Agent 的执行时间、成功率、重试次数
|
|
4
4
|
* 数据持久化到 .openfeel/metrics.json(与 flow.json 同级)
|
|
5
5
|
*/
|
|
6
|
-
import { readFileSync,
|
|
6
|
+
import { readFileSync, existsSync, mkdirSync } from 'node:fs';
|
|
7
7
|
import { resolve } from 'node:path';
|
|
8
|
+
import { atomicWriteFileSync } from './fs/atomic-write.js';
|
|
9
|
+
import { normalizeAgentName } from './flow-manager.js';
|
|
8
10
|
/** 创建默认的 AgentMetrics 初始值 */
|
|
9
11
|
function createDefaultMetrics(agentName) {
|
|
10
12
|
return {
|
|
@@ -87,7 +89,7 @@ export class MetricsStore {
|
|
|
87
89
|
const successRate = m.totalRuns > 0
|
|
88
90
|
? `${((m.successfulRuns / m.totalRuns) * 100).toFixed(1)}%`
|
|
89
91
|
: 'N/A';
|
|
90
|
-
lines.push(`\n${m.agentName}`, ` 总执行次数: ${m.totalRuns}`, ` 成功 / 失败: ${m.successfulRuns} / ${m.failedRuns}`, ` 成功率: ${successRate}`, ` 总重试次数: ${m.totalRetries}`, ` 总耗时: ${m.totalDurationMs}ms`, ` 平均耗时: ${m.avgDurationMs}ms`);
|
|
92
|
+
lines.push(`\n${normalizeAgentName(m.agentName)}`, ` 总执行次数: ${m.totalRuns}`, ` 成功 / 失败: ${m.successfulRuns} / ${m.failedRuns}`, ` 成功率: ${successRate}`, ` 总重试次数: ${m.totalRetries}`, ` 总耗时: ${m.totalDurationMs}ms`, ` 平均耗时: ${m.avgDurationMs}ms`);
|
|
91
93
|
}
|
|
92
94
|
return lines.join('\n');
|
|
93
95
|
}
|
|
@@ -131,7 +133,8 @@ export class MetricsStore {
|
|
|
131
133
|
agents[name] = { ...metrics };
|
|
132
134
|
}
|
|
133
135
|
const data = { agents };
|
|
134
|
-
|
|
136
|
+
// 指标写入:仅原子写,不加锁(低并发、非一致性关键路径)
|
|
137
|
+
atomicWriteFileSync(this.metricsPath, JSON.stringify(data, null, 2) + '\n');
|
|
135
138
|
}
|
|
136
139
|
}
|
|
137
140
|
//# sourceMappingURL=metrics.js.map
|
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,
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/core/metrics.ts"],"names":[],"mappings":"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"}
|