openfeel 1.2.0 → 1.2.3

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 (129) hide show
  1. package/README.en.md +49 -8
  2. package/README.md +46 -5
  3. package/README.zh-CN.md +49 -8
  4. package/bin/openfeel.js +3 -2
  5. package/dist/cli/index.d.ts +17 -3
  6. package/dist/cli/index.d.ts.map +1 -1
  7. package/dist/cli/index.js +99 -10
  8. package/dist/cli/index.js.map +1 -1
  9. package/dist/cli/project-option.d.ts +40 -0
  10. package/dist/cli/project-option.d.ts.map +1 -0
  11. package/dist/cli/project-option.js +140 -0
  12. package/dist/cli/project-option.js.map +1 -0
  13. package/dist/commands/archive.d.ts.map +1 -1
  14. package/dist/commands/archive.js +32 -2
  15. package/dist/commands/archive.js.map +1 -1
  16. package/dist/commands/config.d.ts.map +1 -1
  17. package/dist/commands/config.js +71 -7
  18. package/dist/commands/config.js.map +1 -1
  19. package/dist/commands/flow.d.ts.map +1 -1
  20. package/dist/commands/flow.js +490 -112
  21. package/dist/commands/flow.js.map +1 -1
  22. package/dist/commands/instructions.d.ts.map +1 -1
  23. package/dist/commands/instructions.js +13 -3
  24. package/dist/commands/instructions.js.map +1 -1
  25. package/dist/commands/knowledge.d.ts.map +1 -1
  26. package/dist/commands/knowledge.js +113 -17
  27. package/dist/commands/knowledge.js.map +1 -1
  28. package/dist/commands/plan.d.ts.map +1 -1
  29. package/dist/commands/plan.js +31 -7
  30. package/dist/commands/plan.js.map +1 -1
  31. package/dist/commands/project.d.ts +66 -0
  32. package/dist/commands/project.d.ts.map +1 -1
  33. package/dist/commands/project.js +122 -64
  34. package/dist/commands/project.js.map +1 -1
  35. package/dist/commands/req.d.ts +2 -1
  36. package/dist/commands/req.d.ts.map +1 -1
  37. package/dist/commands/req.js +219 -34
  38. package/dist/commands/req.js.map +1 -1
  39. package/dist/commands/setup.d.ts.map +1 -1
  40. package/dist/commands/setup.js +11 -3
  41. package/dist/commands/setup.js.map +1 -1
  42. package/dist/commands/shared/errors.d.ts +55 -4
  43. package/dist/commands/shared/errors.d.ts.map +1 -1
  44. package/dist/commands/shared/errors.js +108 -10
  45. package/dist/commands/shared/errors.js.map +1 -1
  46. package/dist/commands/shared/json-output.d.ts +60 -0
  47. package/dist/commands/shared/json-output.d.ts.map +1 -0
  48. package/dist/commands/shared/json-output.js +152 -0
  49. package/dist/commands/shared/json-output.js.map +1 -0
  50. package/dist/commands/stage.d.ts.map +1 -1
  51. package/dist/commands/stage.js +69 -7
  52. package/dist/commands/stage.js.map +1 -1
  53. package/dist/commands/view.d.ts.map +1 -1
  54. package/dist/commands/view.js +27 -0
  55. package/dist/commands/view.js.map +1 -1
  56. package/dist/core/config.d.ts +6 -4
  57. package/dist/core/config.d.ts.map +1 -1
  58. package/dist/core/config.js +6 -5
  59. package/dist/core/config.js.map +1 -1
  60. package/dist/core/errors.d.ts +100 -0
  61. package/dist/core/errors.d.ts.map +1 -0
  62. package/dist/core/errors.js +58 -0
  63. package/dist/core/errors.js.map +1 -0
  64. package/dist/core/flow-manager.d.ts +73 -9
  65. package/dist/core/flow-manager.d.ts.map +1 -1
  66. package/dist/core/flow-manager.js +211 -38
  67. package/dist/core/flow-manager.js.map +1 -1
  68. package/dist/core/fs/file-lock.d.ts +9 -0
  69. package/dist/core/fs/file-lock.d.ts.map +1 -1
  70. package/dist/core/fs/file-lock.js +27 -1
  71. package/dist/core/fs/file-lock.js.map +1 -1
  72. package/dist/core/i18n-data/en.d.ts.map +1 -1
  73. package/dist/core/i18n-data/en.js +84 -9
  74. package/dist/core/i18n-data/en.js.map +1 -1
  75. package/dist/core/i18n-data/zh-CN.d.ts.map +1 -1
  76. package/dist/core/i18n-data/zh-CN.js +84 -9
  77. package/dist/core/i18n-data/zh-CN.js.map +1 -1
  78. package/dist/core/managed-region.d.ts +16 -2
  79. package/dist/core/managed-region.d.ts.map +1 -1
  80. package/dist/core/managed-region.js +24 -3
  81. package/dist/core/managed-region.js.map +1 -1
  82. package/dist/core/metrics.d.ts +2 -0
  83. package/dist/core/metrics.d.ts.map +1 -1
  84. package/dist/core/metrics.js +15 -0
  85. package/dist/core/metrics.js.map +1 -1
  86. package/dist/core/model-config.d.ts +1 -1
  87. package/dist/core/model-config.d.ts.map +1 -1
  88. package/dist/core/model-config.js +2 -2
  89. package/dist/core/model-config.js.map +1 -1
  90. package/dist/core/opencode-config.js +1 -1
  91. package/dist/core/opencode-config.js.map +1 -1
  92. package/dist/core/pipeline-schema.d.ts +22 -0
  93. package/dist/core/pipeline-schema.d.ts.map +1 -1
  94. package/dist/core/pipeline-schema.js +24 -0
  95. package/dist/core/pipeline-schema.js.map +1 -1
  96. package/dist/core/plan/stage.d.ts +2 -1
  97. package/dist/core/plan/stage.d.ts.map +1 -1
  98. package/dist/core/plan/stage.js +7 -2
  99. package/dist/core/plan/stage.js.map +1 -1
  100. package/dist/core/req/aggregate.d.ts +21 -2
  101. package/dist/core/req/aggregate.d.ts.map +1 -1
  102. package/dist/core/req/aggregate.js +18 -5
  103. package/dist/core/req/aggregate.js.map +1 -1
  104. package/dist/core/req/body-file.d.ts.map +1 -1
  105. package/dist/core/req/body-file.js +7 -3
  106. package/dist/core/req/body-file.js.map +1 -1
  107. package/dist/core/req/requirement-ops.d.ts +44 -2
  108. package/dist/core/req/requirement-ops.d.ts.map +1 -1
  109. package/dist/core/req/requirement-ops.js +108 -3
  110. package/dist/core/req/requirement-ops.js.map +1 -1
  111. package/dist/core/req/types.d.ts +7 -1
  112. package/dist/core/req/types.d.ts.map +1 -1
  113. package/dist/core/req/types.js +0 -6
  114. package/dist/core/req/types.js.map +1 -1
  115. package/dist/core/runtime-log.d.ts +18 -0
  116. package/dist/core/runtime-log.d.ts.map +1 -1
  117. package/dist/core/runtime-log.js +72 -0
  118. package/dist/core/runtime-log.js.map +1 -1
  119. package/dist/core/session.d.ts +24 -0
  120. package/dist/core/session.d.ts.map +1 -0
  121. package/dist/core/session.js +107 -0
  122. package/dist/core/session.js.map +1 -0
  123. package/dist/core/template-loader.d.ts.map +1 -1
  124. package/dist/core/template-loader.js +3004 -6684
  125. package/dist/core/template-loader.js.map +1 -1
  126. package/dist/core/update.d.ts.map +1 -1
  127. package/dist/core/update.js +720 -35
  128. package/dist/core/update.js.map +1 -1
  129. package/package.json +1 -1
@@ -2,6 +2,7 @@ import { existsSync, readFileSync } from 'node:fs';
2
2
  import { resolve } from 'node:path';
3
3
  import fg from 'fast-glob';
4
4
  import { t, getCliLang } from '../core/i18n.js';
5
+ import { withSchemaVersion, emitJson } from './shared/json-output.js';
5
6
  export function registerProjectCommand(program) {
6
7
  const project = program
7
8
  .command('project')
@@ -10,13 +11,30 @@ export function registerProjectCommand(program) {
10
11
  project
11
12
  .command('overview')
12
13
  .description('实时扫描项目结构,输出结构化概览')
13
- .action(() => {
14
+ .option('--json', t('help.project.overview.json', getCliLang(process.cwd())))
15
+ .action((options) => {
14
16
  const cwd = process.cwd();
15
- outputProjectOverview(cwd);
17
+ const data = collectProjectOverview(cwd);
18
+ // JSON 分支须为首行纯 JSON 单文档(先聚合后渲染)
19
+ if (options.json) {
20
+ emitJson(withSchemaVersion({
21
+ project: data.project,
22
+ dirs: data.dirs,
23
+ stats: data.stats,
24
+ entries: data.entries,
25
+ techStack: data.techStack,
26
+ }));
27
+ return;
28
+ }
29
+ renderProjectOverviewHuman(data, getCliLang(cwd));
16
30
  });
17
31
  }
18
- function outputProjectOverview(cwd) {
19
- const lang = getCliLang(cwd);
32
+ /**
33
+ * 聚合项目概览数据(执行全部扫描:package.json / 目录存在性 / glob 计数 / KB 条目)。
34
+ * @param cwd 项目根目录
35
+ * @returns 冻结字段集的数据对象
36
+ */
37
+ export function collectProjectOverview(cwd) {
20
38
  // ── 读取项目基本信息 ──
21
39
  const pkgPath = resolve(cwd, 'package.json');
22
40
  let projectName = 'unknown';
@@ -44,17 +62,79 @@ function outputProjectOverview(cwd) {
44
62
  const srcExists = existsSync(srcDir);
45
63
  const opencodeExists = existsSync(opencodeDir);
46
64
  const openfeelExists = existsSync(openfeelDir);
47
- // ── 目录文件统计 ──
48
- const srcCliFiles = srcExists ? fg.sync(['cli/**/*.ts'], { cwd: srcDir }).length : 0;
49
- const srcCommandsFiles = srcExists ? fg.sync(['commands/**/*.ts'], { cwd: srcDir }).length : 0;
50
- const srcCoreFiles = srcExists ? fg.sync(['core/**/*.ts'], { cwd: srcDir }).length : 0;
51
- const srcUtilsFiles = srcExists ? fg.sync(['utils/**/*.ts'], { cwd: srcDir }).length : 0;
52
- // ── 统计信息 ──
65
+ // ── 目录文件统计(目录不存在 → 子项 null)──
66
+ const srcCliFiles = srcExists ? fg.sync(['cli/**/*.ts'], { cwd: srcDir }).length : null;
67
+ const srcCommandsFiles = srcExists ? fg.sync(['commands/**/*.ts'], { cwd: srcDir }).length : null;
68
+ const srcCoreFiles = srcExists ? fg.sync(['core/**/*.ts'], { cwd: srcDir }).length : null;
69
+ const srcUtilsFiles = srcExists ? fg.sync(['utils/**/*.ts'], { cwd: srcDir }).length : null;
70
+ // 人类渲染分支同一 glob(相对 opencodeDir),与 stats.agentDefs(相对 cwd)分别保存,防止输出漂移
71
+ const opencodeAgents = opencodeExists ? fg.sync(['agents/*.md'], { cwd: opencodeDir }).length : null;
72
+ const opencodeSkills = opencodeExists ? fg.sync(['skills/*'], { cwd: opencodeDir, onlyDirectories: true }).length : null;
73
+ const openfeelKb = openfeelExists ? fg.sync(['kb/*.md'], { cwd: openfeelDir }).length : null;
74
+ const openfeelPlan = openfeelExists ? fg.sync(['plan/*'], { cwd: openfeelDir, onlyDirectories: true }).length : null;
75
+ const openfeelCodeReview = openfeelExists ? fg.sync(['code_review/*.md'], { cwd: openfeelDir }).length : null;
76
+ const openfeelBugs = openfeelExists ? existsSync(resolve(openfeelDir, 'bugs')) : null;
77
+ // ── 统计信息(目录不存在 → 0,与人类输出一致)──
53
78
  const tsSourceFiles = srcExists ? fg.sync(['src/**/*.ts'], { cwd }).length : 0;
54
79
  const agentDefs = opencodeExists ? fg.sync(['.opencode/agents/*.md'], { cwd }).length : 0;
55
80
  const cliCommandModules = srcExists ? fg.sync(['src/commands/*.ts'], { cwd }).length : 0;
56
81
  const kbEntries = countKbEntries(cwd);
57
82
  const planVersions = openfeelExists ? fg.sync(['.openfeel/plan/*/plan.md', '.openfeel/plan/*/*/plan.md'], { cwd }).length : 0;
83
+ // ── 技术栈展示字符串(从 package.json 依赖动态提取版本号)──
84
+ const runtimeVer = dependencies['node'] || 'Node.js ≥20';
85
+ const tsVer = devDependencies['typescript']
86
+ ? `TypeScript ${devDependencies['typescript'].replace(/^\^|~/, '')}+`
87
+ : 'TypeScript 5.7+';
88
+ const commanderVer = dependencies['commander']
89
+ ? `Commander ${dependencies['commander'].replace(/^\^|~/, '')}+`
90
+ : 'Commander 14+';
91
+ const zodVer = dependencies['zod']
92
+ ? `Zod ${dependencies['zod'].replace(/^\^|~/, '')}+`
93
+ : 'Zod 4+';
94
+ const globVer = dependencies['fast-glob']
95
+ ? `fast-glob ${dependencies['fast-glob'].replace(/^\^|~/, '')}+`
96
+ : 'fast-glob';
97
+ const vitestVer = devDependencies['vitest']
98
+ ? `Vitest ${devDependencies['vitest'].replace(/^\^|~/, '')}+`
99
+ : 'Vitest 3+';
100
+ return {
101
+ project: { name: projectName, version: projectVersion, description: projectDesc },
102
+ dirs: {
103
+ src: { exists: srcExists, cli: srcCliFiles, commands: srcCommandsFiles, core: srcCoreFiles, utils: srcUtilsFiles },
104
+ opencode: { exists: opencodeExists, agents: opencodeAgents, skills: opencodeSkills },
105
+ openfeel: { exists: openfeelExists, kb: openfeelKb, plan: openfeelPlan, codeReview: openfeelCodeReview, bugs: openfeelBugs },
106
+ },
107
+ stats: {
108
+ tsSourceFiles,
109
+ agentDefs,
110
+ cliModules: cliCommandModules,
111
+ kbEntries,
112
+ planVersions,
113
+ },
114
+ entries: {
115
+ available: srcExists,
116
+ cli: 'src/cli/index.ts',
117
+ pkg: 'src/index.ts',
118
+ build: 'dist/',
119
+ },
120
+ techStack: {
121
+ runtime: runtimeVer,
122
+ language: tsVer,
123
+ cliFramework: commanderVer,
124
+ validation: zodVer,
125
+ config: 'YAML',
126
+ fileMatch: globVer,
127
+ test: vitestVer,
128
+ },
129
+ };
130
+ }
131
+ /**
132
+ * 人类可读渲染(逐字保持 stage-52 既有输出:标题框、基本信息、目录结构、统计、入口路径、技术栈)。
133
+ * @param data collectProjectOverview 的聚合结果
134
+ * @param lang 输出语言
135
+ */
136
+ export function renderProjectOverviewHuman(data, lang) {
137
+ const { project, dirs, stats, entries, techStack } = data;
58
138
  // ── 输出结构化概览 ──
59
139
  console.log('');
60
140
  console.log(`╔══════════════════════════════════════════╗`);
@@ -63,43 +143,37 @@ function outputProjectOverview(cwd) {
63
143
  console.log('');
64
144
  // 📋 基本信息
65
145
  console.log(t('project.overview.basicInfo', lang));
66
- console.log(` ${t('project.overview.projectName', lang)}: ${projectName} (v${projectVersion})`);
67
- console.log(` ${t('project.overview.description', lang)}: ${projectDesc}`);
146
+ console.log(` ${t('project.overview.projectName', lang)}: ${project.name} (v${project.version})`);
147
+ console.log(` ${t('project.overview.description', lang)}: ${project.description}`);
68
148
  console.log(` ${t('project.overview.language', lang)}: TypeScript (Node.js)`);
69
149
  console.log('');
70
150
  // 📁 目录结构
71
151
  console.log(t('project.overview.dirStructure', lang));
72
- if (srcExists) {
152
+ if (dirs.src.exists) {
73
153
  console.log(' src/');
74
- console.log(` ├─ cli/ ${t('project.dir.cliTmpl', lang, { n: String(srcCliFiles) })}`);
75
- console.log(` ├─ commands/ ${t('project.dir.commandsTmpl', lang, { n: String(srcCommandsFiles) })}`);
76
- console.log(` ├─ core/ ${t('project.dir.coreTmpl', lang, { n: String(srcCoreFiles) })}`);
77
- console.log(` └─ utils/ ${t('project.dir.utilsTmpl', lang, { n: String(srcUtilsFiles) })}`);
154
+ console.log(` ├─ cli/ ${t('project.dir.cliTmpl', lang, { n: String(dirs.src.cli) })}`);
155
+ console.log(` ├─ commands/ ${t('project.dir.commandsTmpl', lang, { n: String(dirs.src.commands) })}`);
156
+ console.log(` ├─ core/ ${t('project.dir.coreTmpl', lang, { n: String(dirs.src.core) })}`);
157
+ console.log(` └─ utils/ ${t('project.dir.utilsTmpl', lang, { n: String(dirs.src.utils) })}`);
78
158
  }
79
159
  else {
80
160
  console.log(` src/ ${t('project.overview.dirNotExist', lang)}`);
81
161
  }
82
- if (opencodeExists) {
83
- const agentFiles = fg.sync(['agents/*.md'], { cwd: opencodeDir }).length;
84
- const skillDirs = fg.sync(['skills/*'], { cwd: opencodeDir, onlyDirectories: true }).length;
162
+ if (dirs.opencode.exists) {
85
163
  console.log(' 平台适配器目录(.opencode/)');
86
- console.log(` ├─ agents/ ${t('project.dir.agentsTmpl', lang, { n: String(agentFiles) })}`);
164
+ console.log(` ├─ agents/ ${t('project.dir.agentsTmpl', lang, { n: String(dirs.opencode.agents) })}`);
87
165
  // skills 下可能有多个子目录,用 glob 统计
88
- console.log(` └─ skills/ ${t('project.dir.skillsTmpl', lang, { n: String(skillDirs) })}`);
166
+ console.log(` └─ skills/ ${t('project.dir.skillsTmpl', lang, { n: String(dirs.opencode.skills) })}`);
89
167
  }
90
168
  else {
91
169
  console.log(` 平台适配器目录(.opencode/) ${t('project.overview.dirNotExist', lang)}`);
92
170
  }
93
- if (openfeelExists) {
94
- const kbFiles = fg.sync(['kb/*.md'], { cwd: openfeelDir }).length;
95
- const planDirEntries = fg.sync(['plan/*'], { cwd: openfeelDir, onlyDirectories: true }).length;
96
- const reviewFiles = fg.sync(['code_review/*.md'], { cwd: openfeelDir }).length;
97
- const bugDirExists = existsSync(resolve(openfeelDir, 'bugs'));
171
+ if (dirs.openfeel.exists) {
98
172
  console.log(' .openfeel/');
99
- console.log(` ├─ kb/ ${t('project.dir.kbTmpl', lang, { n: String(kbFiles) })}`);
100
- console.log(` ├─ plan/ ${t('project.dir.planTmpl', lang, { n: String(planDirEntries) })}`);
101
- console.log(` ├─ code_review/ ${t('project.dir.codeReviewTmpl', lang, { n: String(reviewFiles) })}`);
102
- console.log(` └─ bugs/ ${t('project.dir.bugs', lang)}${bugDirExists ? '' : t('project.dir.bugsNotInit', lang)}`);
173
+ console.log(` ├─ kb/ ${t('project.dir.kbTmpl', lang, { n: String(dirs.openfeel.kb) })}`);
174
+ console.log(` ├─ plan/ ${t('project.dir.planTmpl', lang, { n: String(dirs.openfeel.plan) })}`);
175
+ console.log(` ├─ code_review/ ${t('project.dir.codeReviewTmpl', lang, { n: String(dirs.openfeel.codeReview) })}`);
176
+ console.log(` └─ bugs/ ${t('project.dir.bugs', lang)}${dirs.openfeel.bugs ? '' : t('project.dir.bugsNotInit', lang)}`);
103
177
  }
104
178
  else {
105
179
  console.log(` .openfeel/ ${t('project.overview.dirNotExist', lang)}`);
@@ -107,49 +181,33 @@ function outputProjectOverview(cwd) {
107
181
  console.log('');
108
182
  // 📊 统计信息
109
183
  console.log(t('project.overview.stats', lang));
110
- console.log(` ${t('project.stats.tsSource', lang)}: ${tsSourceFiles}`);
111
- console.log(` ${t('project.stats.agentDefs', lang)}: ${agentDefs}`);
112
- console.log(` ${t('project.stats.cliModules', lang)}: ${cliCommandModules}`);
113
- console.log(` ${t('project.stats.kbEntries', lang)}: ${kbEntries}`);
114
- console.log(` ${t('project.stats.planVersions', lang)}: ${planVersions}`);
184
+ console.log(` ${t('project.stats.tsSource', lang)}: ${stats.tsSourceFiles}`);
185
+ console.log(` ${t('project.stats.agentDefs', lang)}: ${stats.agentDefs}`);
186
+ console.log(` ${t('project.stats.cliModules', lang)}: ${stats.cliModules}`);
187
+ console.log(` ${t('project.stats.kbEntries', lang)}: ${stats.kbEntries}`);
188
+ console.log(` ${t('project.stats.planVersions', lang)}: ${stats.planVersions}`);
115
189
  console.log('');
116
190
  // 🚪 入口路径(以 src/ 存在性为统一门控)
117
191
  console.log(t('project.overview.entryPath', lang));
118
- if (srcExists) {
119
- console.log(` ${t('project.entry.cli', lang)}: src/cli/index.ts`);
120
- console.log(` ${t('project.entry.pkg', lang)}: src/index.ts`);
121
- console.log(` ${t('project.entry.build', lang)}: dist/`);
192
+ if (entries.available) {
193
+ console.log(` ${t('project.entry.cli', lang)}: ${entries.cli}`);
194
+ console.log(` ${t('project.entry.pkg', lang)}: ${entries.pkg}`);
195
+ console.log(` ${t('project.entry.build', lang)}: ${entries.build}`);
122
196
  }
123
197
  else {
124
198
  // 三条入口均依赖 src/,src/ 不存在时整节替换统一提示
125
199
  console.log(` ${t('project.overview.noSrc', lang)}`);
126
200
  }
127
201
  console.log('');
128
- // 🔧 技术栈(从 package.json 依赖动态提取版本号)
202
+ // 🔧 技术栈
129
203
  console.log(t('project.overview.techStack', lang));
130
- const runtimeVer = dependencies['node'] || 'Node.js ≥20';
131
- const tsVer = devDependencies['typescript']
132
- ? `TypeScript ${devDependencies['typescript'].replace(/^\^|~/, '')}+`
133
- : 'TypeScript 5.7+';
134
- const commanderVer = dependencies['commander']
135
- ? `Commander ${dependencies['commander'].replace(/^\^|~/, '')}+`
136
- : 'Commander 14+';
137
- const zodVer = dependencies['zod']
138
- ? `Zod ${dependencies['zod'].replace(/^\^|~/, '')}+`
139
- : 'Zod 4+';
140
- const globVer = dependencies['fast-glob']
141
- ? `fast-glob ${dependencies['fast-glob'].replace(/^\^|~/, '')}+`
142
- : 'fast-glob';
143
- const vitestVer = devDependencies['vitest']
144
- ? `Vitest ${devDependencies['vitest'].replace(/^\^|~/, '')}+`
145
- : 'Vitest 3+';
146
- console.log(` ${t('project.tech.runtime', lang)}: ${runtimeVer}`);
147
- console.log(` ${t('project.tech.language', lang)}: ${tsVer}`);
148
- console.log(` ${t('project.tech.cliFramework', lang)}: ${commanderVer}`);
149
- console.log(` ${t('project.tech.validation', lang)}: ${zodVer}`);
150
- console.log(` ${t('project.tech.config', lang)}: YAML`);
151
- console.log(` ${t('project.tech.fileMatch', lang)}: ${globVer}`);
152
- console.log(` ${t('project.tech.test', lang)}: ${vitestVer}`);
204
+ console.log(` ${t('project.tech.runtime', lang)}: ${techStack.runtime}`);
205
+ console.log(` ${t('project.tech.language', lang)}: ${techStack.language}`);
206
+ console.log(` ${t('project.tech.cliFramework', lang)}: ${techStack.cliFramework}`);
207
+ console.log(` ${t('project.tech.validation', lang)}: ${techStack.validation}`);
208
+ console.log(` ${t('project.tech.config', lang)}: ${techStack.config}`);
209
+ console.log(` ${t('project.tech.fileMatch', lang)}: ${techStack.fileMatch}`);
210
+ console.log(` ${t('project.tech.test', lang)}: ${techStack.test}`);
153
211
  console.log('');
154
212
  }
155
213
  /** 从 .openfeel/kb/index.md 解析分类表格的条目数并求和 */
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/commands/project.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,8 @@
5
5
  * 命令层零业务逻辑:解析 / 校验 / ID 分配 / 写入全部单点在 `src/core/req/`;本文件仅做
6
6
  * 「参数解析 → 调用引擎原语 → 错误码→文案映射 → 退出码」。
7
7
  * 命令层零校验:状态流转合法性 / 认领占用 / 关联唯一性 / 写命令字段校验一律由引擎单点判定。
8
- * 正交声明:不引用工作流模式相关字段;不依赖归档层;不计算 done / 进度 / 聚合摘要(该职责归后续阶段)。
8
+ * 模式边界:需求可携带模式属性(`--workflow-mode` 选项 / 传参给引擎);模式解析与下发单点在引擎与 FlowManager,
9
+ * 本层不做值域 / 载体判定;不依赖归档层;不计算 done / 进度 / 聚合摘要。
9
10
  * 退出码:成功 0;校验 / 占用 / 存在性失败 1(恒经 `process.exitCode`);并发写冲突 2(共享单点)。
10
11
  */
11
12
  import { Command } from 'commander';
@@ -1 +1 @@
1
- {"version":3,"file":"req.d.ts","sourceRoot":"","sources":["../../src/commands/req.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8EpC,oBAAoB;AACpB,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqezD"}
1
+ {"version":3,"file":"req.d.ts","sourceRoot":"","sources":["../../src/commands/req.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0FpC,oBAAoB;AACpB,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuoBzD"}