openfeel 1.1.2 → 1.1.4
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 +1 -1
- package/README.zh-CN.md +1 -1
- package/dist/cli/output-encoding.d.ts +1 -10
- package/dist/cli/output-encoding.d.ts.map +1 -1
- package/dist/cli/output-encoding.js +6 -51
- package/dist/cli/output-encoding.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +47 -8
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/flow.d.ts.map +1 -1
- package/dist/commands/flow.js +88 -3
- package/dist/commands/flow.js.map +1 -1
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +67 -2
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/stage.js +2 -2
- package/dist/commands/stage.js.map +1 -1
- package/dist/core/artifact-graph/instruction-loader.d.ts.map +1 -1
- package/dist/core/artifact-graph/instruction-loader.js +0 -4
- package/dist/core/artifact-graph/instruction-loader.js.map +1 -1
- package/dist/core/config.d.ts +25 -4
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +55 -13
- package/dist/core/config.js.map +1 -1
- package/dist/core/flow-manager.d.ts +126 -9
- package/dist/core/flow-manager.d.ts.map +1 -1
- package/dist/core/flow-manager.js +281 -33
- package/dist/core/flow-manager.js.map +1 -1
- package/dist/core/fs/sequence.d.ts +6 -0
- package/dist/core/fs/sequence.d.ts.map +1 -1
- package/dist/core/fs/sequence.js +13 -0
- package/dist/core/fs/sequence.js.map +1 -1
- package/dist/core/i18n-data/en.d.ts.map +1 -1
- package/dist/core/i18n-data/en.js +28 -4
- package/dist/core/i18n-data/en.js.map +1 -1
- package/dist/core/i18n-data/zh-CN.d.ts.map +1 -1
- package/dist/core/i18n-data/zh-CN.js +28 -4
- package/dist/core/i18n-data/zh-CN.js.map +1 -1
- package/dist/core/plan/scheme.d.ts +25 -0
- package/dist/core/plan/scheme.d.ts.map +1 -1
- package/dist/core/plan/scheme.js +168 -2
- package/dist/core/plan/scheme.js.map +1 -1
- package/dist/core/plan/stage.d.ts +11 -2
- package/dist/core/plan/stage.d.ts.map +1 -1
- package/dist/core/plan/stage.js +12 -5
- package/dist/core/plan/stage.js.map +1 -1
- package/dist/core/template-loader.d.ts.map +1 -1
- package/dist/core/template-loader.js +23 -17
- package/dist/core/template-loader.js.map +1 -1
- package/dist/core/update.d.ts.map +1 -1
- package/dist/core/update.js +21 -15
- package/dist/core/update.js.map +1 -1
- package/package.json +1 -1
package/README.en.md
CHANGED
|
@@ -56,7 +56,7 @@ openfeel flow status
|
|
|
56
56
|
- **Structured output**: `flow status/current/health/metrics/overview --json` (pure JSON + `schemaVersion`).
|
|
57
57
|
- **Correction/cleanup CLI surface**: `plan scheme remove/rename/publish`, `flow ops list`, `flow health --fix`, `knowledge dedup`, `lint` non-zero exit on findings.
|
|
58
58
|
- **Deployment & backup**: automatic backup before overwrite at `~/.openfeel/backup/{ts}/`; new skill `openfeel-cli-usage` (skills 16 → 17).
|
|
59
|
-
- **Output encoding adaptation (stage-58)**: on Windows non-TTY (pipe
|
|
59
|
+
- **Output encoding adaptation (stage-58 / stage-61 fix)**: `auto` passes through **UTF-8** on Windows non-TTY (pipe-friendly); TTY / POSIX pass through UTF-8; **GBK requires explicit** `--encoding gbk` / `OPENFEEL_ENCODING`; `--json` is **always UTF-8**; unencodable chars degrade to `?` without warning.
|
|
60
60
|
- **Runtime log (stage-58)**: written by default to `~/.openfeel/cli/logs/openfeel-YYYY-MM-DD.log` (UTF-8, one file per day); `--log-file <path>` changes the path, `--no-log` / `OPENFEEL_LOG=0` disables it, `--debug` enables debug-level entries.
|
|
61
61
|
|
|
62
62
|
## Command Reference
|
package/README.zh-CN.md
CHANGED
|
@@ -56,7 +56,7 @@ openfeel flow status
|
|
|
56
56
|
- **结构化输出**:`flow status/current/health/metrics/overview --json`(纯 JSON + `schemaVersion`)。
|
|
57
57
|
- **纠正/清理侧命令面**:`plan scheme remove/rename/publish`、`flow ops list`、`flow health --fix`、`knowledge dedup`、`lint` 发现问题非 0 退出。
|
|
58
58
|
- **部署与备份**:部署覆盖前自动备份 `~/.openfeel/backup/{ts}/`;新增 skill `openfeel-cli-usage`(skill 16 → 17)。
|
|
59
|
-
- **输出编码自适应(stage-58
|
|
59
|
+
- **输出编码自适应(stage-58 / stage-61 修正)**:`auto` 在 Windows 非 TTY(管道/重定向)下**直通 UTF-8**(管道/CI 友好);TTY / POSIX 直通 UTF-8;**GBK 需 `--encoding gbk` / `OPENFEEL_ENCODING` 显式**;`--json` **恒 UTF-8**;不可编码字符降 `?` 不告警。
|
|
60
60
|
- **运行日志(stage-58)**:默认写入 `~/.openfeel/cli/logs/openfeel-YYYY-MM-DD.log`(UTF-8,按日一文件);`--log-file <path>` 改路径,`--no-log` / `OPENFEEL_LOG=0` 关闭,`--debug` 记录 debug 级。
|
|
61
61
|
|
|
62
62
|
## 命令参考
|
|
@@ -10,8 +10,6 @@ export interface ResolveTargetEncodingContext {
|
|
|
10
10
|
platform: NodeJS.Platform;
|
|
11
11
|
/** 该输出流是否为 TTY */
|
|
12
12
|
isTTY: boolean;
|
|
13
|
-
/** 已探测的控制台代码页(测试注入;undefined 表示需真实调用 detectConsoleCodepage) */
|
|
14
|
-
codepage?: number | null;
|
|
15
13
|
}
|
|
16
14
|
/** 安装选项(仅注入输出流,便于单测;不含 force——无 env 守卫可绕) */
|
|
17
15
|
export interface InstallOutputEncodingOptions {
|
|
@@ -20,17 +18,10 @@ export interface InstallOutputEncodingOptions {
|
|
|
20
18
|
}
|
|
21
19
|
/** 归一化编码值:命中别名返回目标编码;'auto'/空/未知返回 null */
|
|
22
20
|
export declare function normalizeEncoding(value: string | undefined): OutputEncoding | null;
|
|
23
|
-
/** 代码页 → iconv 编码名;未知代码页回退 utf8 */
|
|
24
|
-
export declare function codepageToIconv(cp: number): OutputEncoding;
|
|
25
|
-
/**
|
|
26
|
-
* 探测当前控制台代码页(仅 win32 非 TTY 场景调用)。
|
|
27
|
-
* 从 chcp 输出按 latin1 提取首个数字(**勿按 UTF-8 解码整串**);失败/无匹配返回 null。
|
|
28
|
-
*/
|
|
29
|
-
export declare function detectConsoleCodepage(): number | null;
|
|
30
21
|
/**
|
|
31
22
|
* 解析目标输出编码(纯函数)。
|
|
32
23
|
* 优先级:① --json→utf8(最高) ② 显式 --encoding ③ OPENFEEL_ENCODING ④ 非 win32/TTY→utf8
|
|
33
|
-
* ⑤ win32 非 TTY→
|
|
24
|
+
* ⑤ win32 非 TTY→utf8。
|
|
34
25
|
*/
|
|
35
26
|
export declare function resolveTargetEncoding(ctx: ResolveTargetEncodingContext): OutputEncoding;
|
|
36
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output-encoding.d.ts","sourceRoot":"","sources":["../../src/cli/output-encoding.ts"],"names":[],"mappings":"AAkBA,8BAA8B;AAC9B,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAErF,8CAA8C;AAC9C,MAAM,WAAW,4BAA4B;IAC3C,kDAAkD;IAClD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,kBAAkB;IAClB,KAAK,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"output-encoding.d.ts","sourceRoot":"","sources":["../../src/cli/output-encoding.ts"],"names":[],"mappings":"AAkBA,8BAA8B;AAC9B,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAErF,8CAA8C;AAC9C,MAAM,WAAW,4BAA4B;IAC3C,kDAAkD;IAClD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,kBAAkB;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,6CAA6C;AAC7C,MAAM,WAAW,4BAA4B;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;CAC7B;AAoBD,2CAA2C;AAC3C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,IAAI,CAMlF;AAgBD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,4BAA4B,GAAG,cAAc,CAsBvF;AA6BD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,GAAE,4BAAiC,GAAG,IAAI,CAOnF"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CLI 输出编码自适应模块(stage-58 op-001)
|
|
3
3
|
*
|
|
4
|
-
* 职责:在 CLI 进程入口(bin/openfeel.js)安装 stdout/stderr
|
|
5
|
-
*
|
|
4
|
+
* 职责:在 CLI 进程入口(bin/openfeel.js)安装 stdout/stderr 写包装,把人类可读文本按目标编码转码。
|
|
5
|
+
* win32 非 TTY 默认直通 UTF-8(对齐 Node 默认与管道/CI 消费者);GBK 仅经显式
|
|
6
|
+
* `--encoding gbk` / `OPENFEEL_ENCODING=gbk` 生效。
|
|
6
7
|
*
|
|
7
8
|
* 设计边界:
|
|
8
9
|
* - **库侧默认 no-op**:未调用 installOutputEncoding 时不包装任何流(测试 import 零副作用)。
|
|
@@ -13,12 +14,9 @@
|
|
|
13
14
|
* 直接 write(如 write(str, 'latin1', cb))不受支持。当前全仓 process.stdout/stderr.write 直调为 0。
|
|
14
15
|
* - 不可编码字符由 iconv-lite 降级为 '?',**不额外告警**。
|
|
15
16
|
*/
|
|
16
|
-
import { spawnSync } from 'node:child_process';
|
|
17
17
|
import iconv from 'iconv-lite';
|
|
18
18
|
/** 已安装标志(幂等) */
|
|
19
19
|
let installed = false;
|
|
20
|
-
/** chcp 探测结果进程内缓存(undefined=未探测,null=探测失败) */
|
|
21
|
-
let cachedCodepage;
|
|
22
20
|
/** 编码别名 → iconv 编码名('auto'/空/未知返回 null → 调用方继续回退) */
|
|
23
21
|
const ENCODING_ALIASES = {
|
|
24
22
|
utf8: 'utf8',
|
|
@@ -54,52 +52,10 @@ function readEncodingArg(argv) {
|
|
|
54
52
|
}
|
|
55
53
|
return undefined;
|
|
56
54
|
}
|
|
57
|
-
/** 代码页 → iconv 编码名;未知代码页回退 utf8 */
|
|
58
|
-
export function codepageToIconv(cp) {
|
|
59
|
-
switch (cp) {
|
|
60
|
-
case 936:
|
|
61
|
-
return 'gbk';
|
|
62
|
-
case 54936:
|
|
63
|
-
return 'gb18030';
|
|
64
|
-
case 950:
|
|
65
|
-
return 'big5';
|
|
66
|
-
case 932:
|
|
67
|
-
return 'cp932';
|
|
68
|
-
case 949:
|
|
69
|
-
return 'cp949';
|
|
70
|
-
case 65001:
|
|
71
|
-
return 'utf8';
|
|
72
|
-
default:
|
|
73
|
-
return 'utf8';
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* 探测当前控制台代码页(仅 win32 非 TTY 场景调用)。
|
|
78
|
-
* 从 chcp 输出按 latin1 提取首个数字(**勿按 UTF-8 解码整串**);失败/无匹配返回 null。
|
|
79
|
-
*/
|
|
80
|
-
export function detectConsoleCodepage() {
|
|
81
|
-
if (cachedCodepage !== undefined) {
|
|
82
|
-
return cachedCodepage;
|
|
83
|
-
}
|
|
84
|
-
try {
|
|
85
|
-
const r = spawnSync('chcp', [], { stdio: ['ignore', 'pipe', 'ignore'], windowsHide: true });
|
|
86
|
-
if (r.status !== 0 || !r.stdout) {
|
|
87
|
-
cachedCodepage = null;
|
|
88
|
-
return cachedCodepage;
|
|
89
|
-
}
|
|
90
|
-
const m = /\d+/.exec(r.stdout.toString('latin1'));
|
|
91
|
-
cachedCodepage = m ? Number(m[0]) : null;
|
|
92
|
-
}
|
|
93
|
-
catch {
|
|
94
|
-
// chcp 不可用(非 Windows / 命令缺失)→ 安全降级
|
|
95
|
-
cachedCodepage = null;
|
|
96
|
-
}
|
|
97
|
-
return cachedCodepage;
|
|
98
|
-
}
|
|
99
55
|
/**
|
|
100
56
|
* 解析目标输出编码(纯函数)。
|
|
101
57
|
* 优先级:① --json→utf8(最高) ② 显式 --encoding ③ OPENFEEL_ENCODING ④ 非 win32/TTY→utf8
|
|
102
|
-
* ⑤ win32 非 TTY→
|
|
58
|
+
* ⑤ win32 非 TTY→utf8。
|
|
103
59
|
*/
|
|
104
60
|
export function resolveTargetEncoding(ctx) {
|
|
105
61
|
const { argv, env, platform, isTTY } = ctx;
|
|
@@ -121,9 +77,8 @@ export function resolveTargetEncoding(ctx) {
|
|
|
121
77
|
if (platform !== 'win32' || isTTY) {
|
|
122
78
|
return 'utf8';
|
|
123
79
|
}
|
|
124
|
-
// ⑤ win32 非 TTY
|
|
125
|
-
|
|
126
|
-
return cp === null ? 'utf8' : codepageToIconv(cp);
|
|
80
|
+
// ⑤ win32 非 TTY:直接 UTF-8(对齐 Node 默认与管道/CI 消费者;GBK 仅显式 ②/③)
|
|
81
|
+
return 'utf8';
|
|
127
82
|
}
|
|
128
83
|
/** 包装单个输出流:仅字符串 chunk 转码,Buffer 直通,保留 callback/返回值 */
|
|
129
84
|
function wrapStream(stream) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output-encoding.js","sourceRoot":"","sources":["../../src/cli/output-encoding.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"output-encoding.js","sourceRoot":"","sources":["../../src/cli/output-encoding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4DpC;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4DpC;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsP5D"}
|
package/dist/commands/config.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getGlobalConfig, setGlobalConfig } from '../core/workspace/identity.js';
|
|
2
|
-
import { getConfigValue, setConfigValue, readProfile, writeProfile, ProfileSchema, ConfigDefaultsSchema, getConfigFieldLegalValues } from '../core/config.js';
|
|
2
|
+
import { getConfigValue, setConfigValue, readProfile, writeProfile, ProfileSchema, ConfigDefaultsSchema, getConfigFieldLegalValues, normalizeConfigKey, STAGE_FIELD_BY_CONFIG_KEY } from '../core/config.js';
|
|
3
3
|
import { FlowManager } from '../core/flow-manager.js';
|
|
4
4
|
import { t, getCliLang } from '../core/i18n.js';
|
|
5
5
|
/** 全局配置 key 白名单:key → 合法值列表(null 表示任意 string) */
|
|
@@ -142,7 +142,9 @@ export function registerConfigCommand(program) {
|
|
|
142
142
|
process.exit(1);
|
|
143
143
|
}
|
|
144
144
|
try {
|
|
145
|
-
|
|
145
|
+
// 键名归一:`defaults.X` 与 `X` 等价(输出回显用户输入原键以保留可识别性)
|
|
146
|
+
const normalized = normalizeConfigKey(key);
|
|
147
|
+
const value = getConfigValue(process.cwd(), normalized);
|
|
146
148
|
if (value === null) {
|
|
147
149
|
console.log(t('config.get.result', lang, { key, value: t('common.noConfig', lang) }));
|
|
148
150
|
}
|
|
@@ -161,9 +163,16 @@ export function registerConfigCommand(program) {
|
|
|
161
163
|
.command('set <key> <value>')
|
|
162
164
|
.description(t('help.config.set'))
|
|
163
165
|
.option('-g, --global', '操作全局 profile(~/.config/openfeel/profile.yaml)')
|
|
166
|
+
.option('--sync-stages', '将配置值同步写入所有已注册阶段的 status.md 对应字段(仅项目模式)')
|
|
164
167
|
.action(function (key, value) {
|
|
165
168
|
const opts = this.opts();
|
|
166
169
|
const lang = getCliLang(process.cwd());
|
|
170
|
+
// --sync-stages 仅项目模式可用(与 --global 组合 → exit 1)
|
|
171
|
+
if (opts.global && opts.syncStages) {
|
|
172
|
+
console.error(t('common.errorTmpl', lang, { msg: '--sync-stages 仅项目模式可用(不能与 --global 组合)' }));
|
|
173
|
+
process.exit(1);
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
167
176
|
// 全局模式:操作 ~/.config/openfeel/profile.yaml
|
|
168
177
|
if (opts.global) {
|
|
169
178
|
// key 白名单校验(Object.hasOwn 防原型链穿透,T30)
|
|
@@ -201,29 +210,59 @@ export function registerConfigCommand(program) {
|
|
|
201
210
|
return;
|
|
202
211
|
}
|
|
203
212
|
// 项目模式(原行为)
|
|
213
|
+
// 键名归一:`defaults.X` 与 `X` 等价(单一来源 normalizeConfigKey)
|
|
214
|
+
const normalizedKey = normalizeConfigKey(key);
|
|
204
215
|
// 白名单 = ConfigDefaultsSchema 全量键(schema 驱动,schema 新增键自动纳入,T36/R3)
|
|
205
216
|
const allowedKeys = Object.keys(ConfigDefaultsSchema.shape);
|
|
206
|
-
if (!allowedKeys.includes(
|
|
207
|
-
|
|
217
|
+
if (!allowedKeys.includes(normalizedKey)) {
|
|
218
|
+
// 错误文案回显支持键清单与 `defaults.` 等价说明(不新增 i18n 键)
|
|
219
|
+
const keysHint = allowedKeys.map((k) => `${k}(或 defaults.${k})`).join(', ');
|
|
220
|
+
console.error(t('config.set.invalidKey', lang, { val: key, keys: keysHint }));
|
|
208
221
|
process.exit(1);
|
|
209
222
|
return;
|
|
210
223
|
}
|
|
211
224
|
// 取值校验 schema 驱动(枚举非法须报错且不写盘,T36/R3)
|
|
212
|
-
const legalValues = getConfigFieldLegalValues(
|
|
225
|
+
const legalValues = getConfigFieldLegalValues(normalizedKey);
|
|
213
226
|
if (legalValues && !legalValues.includes(value)) {
|
|
214
|
-
console.error(t('config.set.invalidValue', lang, { val: value, key, values: legalValues.join(', ') }));
|
|
227
|
+
console.error(t('config.set.invalidValue', lang, { val: value, key: normalizedKey, values: legalValues.join(', ') }));
|
|
215
228
|
process.exit(1);
|
|
216
229
|
return;
|
|
217
230
|
}
|
|
218
231
|
try {
|
|
219
|
-
setConfigValue(process.cwd(),
|
|
220
|
-
console.log(t('config.set.valueOk', lang, { key, value }));
|
|
232
|
+
setConfigValue(process.cwd(), normalizedKey, value);
|
|
233
|
+
console.log(t('config.set.valueOk', lang, { key: normalizedKey, value }));
|
|
221
234
|
}
|
|
222
235
|
catch (err) {
|
|
223
236
|
// 写入 config.yaml 失败(YAML 语法错误、权限问题等),输出实际错误原因
|
|
224
237
|
console.error(t('config.set.error', lang, { err: err.message }));
|
|
225
238
|
process.exit(1);
|
|
226
239
|
}
|
|
240
|
+
// --sync-stages:将目标键批量同步到所有已注册阶段 status.md 对应字段(仅项目模式)
|
|
241
|
+
if (opts.syncStages) {
|
|
242
|
+
const field = STAGE_FIELD_BY_CONFIG_KEY[normalizedKey];
|
|
243
|
+
const mgr = new FlowManager(process.cwd());
|
|
244
|
+
const results = mgr.isLoaded() ? mgr.syncConfigFieldToStages(normalizedKey, value) : [];
|
|
245
|
+
let updated = 0;
|
|
246
|
+
for (const r of results) {
|
|
247
|
+
switch (r.result) {
|
|
248
|
+
case 'updated':
|
|
249
|
+
updated++;
|
|
250
|
+
console.log(t('stage.set.updatedTmpl', lang, { stageId: r.stage, field: field ?? normalizedKey, value }));
|
|
251
|
+
break;
|
|
252
|
+
case 'noop':
|
|
253
|
+
console.log(t('stage.set.noopTmpl', lang, { field: field ?? normalizedKey }));
|
|
254
|
+
break;
|
|
255
|
+
case 'skipped-no-status':
|
|
256
|
+
console.error(t('stage.errorStageNotFoundTmpl', lang, { stageId: r.stage }));
|
|
257
|
+
break;
|
|
258
|
+
default: // skipped-no-field
|
|
259
|
+
console.error(t('stage.set.errorFieldNotFoundTmpl', lang, { stageId: r.stage, field: field ?? normalizedKey }));
|
|
260
|
+
break;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
// 汇总:同步 N / 跳过 M(跳过含 no-op 与无字段/无 status;退出码保持 0)
|
|
264
|
+
console.log(`同步 ${updated} / 跳过 ${results.length - updated}`);
|
|
265
|
+
}
|
|
227
266
|
});
|
|
228
267
|
// openfeel config effective [key] — 输出有效值 + 生效来源(P9)
|
|
229
268
|
// 与 `config get`(原始值读取)语义不同:此处为级联解析结果(值 + 来源)。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC7M,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGhD,iDAAiD;AACjD,MAAM,mBAAmB,GAAoC;IAC3D,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;IAC5B,0BAA0B,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;IACnD,yBAAyB,EAAE,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACzD,2BAA2B,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;IACpD,+BAA+B,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;CAC3D,CAAC;AAEF;;;;;GAKG;AACH,SAAS,cAAc,CAAC,GAA4B,EAAE,IAAY;IAChE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,OAAO,GAAY,GAAG,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,4DAA4D;QAC5D,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC7E,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,GAAI,OAAmC,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,GAA4B,EAAE,IAAY,EAAE,KAAa;IAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,OAAO,GAA4B,GAAG,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,oBAAoB;QACpB,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,GAAG,CAA4B,CAAC;IACpD,CAAC;IACD,QAAQ;IACR,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;SACxC,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAE5D,sCAAsC;IACtC,SAAS;SACN,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,CAAC,CAAC,qBAAqB,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;SAChE,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEL,6CAA6C;IAC7C,SAAS;SACN,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;QACvB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1C,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,wBAAwB,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,eAAe,CAAC,MAAM,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEL,8CAA8C;IAC9C,SAAS;SACN,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,6DAA6D;IAC7D,SAAS;SACN,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;SACjC,MAAM,CAAC,cAAc,EAAE,+CAA+C,CAAC;SACvE,MAAM,CAAC,UAAU,GAAuB;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAA0B,CAAC;QACjD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAEvC,0CAA0C;QAC1C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,WAAW,EAAwC,CAAC;YACpE,2CAA2C;YAC3C,MAAM,UAAU,GAAI,OAAmC,CAAC,UAAU,CAAC;YACnE,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,2BAA2B,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YAC5E,CAAC;YACD,qBAAqB;YACrB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,0BAA0B,EAAE,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,0BAA0B,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/J,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,yBAAyB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7J,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,2BAA2B,EAAE,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,2BAA2B,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,+BAA+B,EAAE,KAAK,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,+BAA+B,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzK,OAAO;YACT,CAAC;YACD,aAAa;YACb,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,8BAA8B,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YAChE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YACjF,CAAC;YACD,OAAO;QACT,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAAC;YAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC;YACH,gDAAgD;YAChD,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;YACxD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACxF,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,8CAA8C;YAC9C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,qEAAqE;IACrE,SAAS;SACN,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;SACjC,MAAM,CAAC,cAAc,EAAE,+CAA+C,CAAC;SACvE,MAAM,CAAC,eAAe,EAAE,wCAAwC,CAAC;SACjE,MAAM,CAAC,UAAU,GAAW,EAAE,KAAa;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAgD,CAAC;QACvE,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAEvC,gDAAgD;QAChD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,wCAAwC,EAAE,CAAC,CAAC,CAAC;YAC9F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,0CAA0C;QAC1C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,sCAAsC;YACtC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC7C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,6BAA6B,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;gBACpE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,8BAA8B,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,cAAc;YACd,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,+BAA+B,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,CAAC;gBACH,0BAA0B;gBAC1B,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;gBAC9B,6CAA6C;gBAC7C,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;oBACvB,OAAO,CAAC,KAAK,CAAC,aAAa,OAAO,CAAC,UAAU,mCAAmC,CAAC,CAAC;oBAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAChB,OAAO,CAAC,iCAAiC;gBAC3C,CAAC;gBACD,MAAM,UAAU,GAAG,OAA6C,CAAC;gBACjE,cAAc,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBACvC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,CAAY,CAAC;gBAC7D,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,0BAA0B,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACnE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,+CAA+C;gBAC/C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO;QACT,CAAC;QAED,YAAY;QACZ,sDAAsD;QACtD,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC9C,kEAAkE;QAClE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACzC,4CAA4C;YAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5E,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,uBAAuB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,qCAAqC;QACrC,MAAM,WAAW,GAAG,yBAAyB,CAAC,aAAa,CAAC,CAAC;QAC7D,IAAI,WAAW,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,yBAAyB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACtH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,8CAA8C;YAC9C,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,uDAAuD;QACvD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,yBAAyB,CAAC,aAAa,CAAC,CAAC;YACvD,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;oBACjB,KAAK,SAAS;wBACZ,OAAO,EAAE,CAAC;wBACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,uBAAuB,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;wBAC1G,MAAM;oBACR,KAAK,MAAM;wBACT,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC;wBAC9E,MAAM;oBACR,KAAK,mBAAmB;wBACtB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,8BAA8B,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBAC7E,MAAM;oBACR,SAAS,mBAAmB;wBAC1B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,kCAAkC,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC;wBAChH,MAAM;gBACV,CAAC;YACH,CAAC;YACD,kDAAkD;YAClD,OAAO,CAAC,GAAG,CAAC,MAAM,OAAO,SAAS,OAAO,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,qDAAqD;IACrD,+CAA+C;IAC/C,SAAS;SACN,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;SACvC,MAAM,CAAC,CAAC,GAAY,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,sBAAsB,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEnC,IAAI,GAAG,EAAE,CAAC;YACR,mBAAmB;YACnB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,6BAA6B,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAsB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACxF,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC,CAAC;QAC/C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,sBAAsB,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/commands/flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/commands/flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkyD1D"}
|
package/dist/commands/flow.js
CHANGED
|
@@ -558,6 +558,54 @@ export function registerFlowCommand(program) {
|
|
|
558
558
|
deps: deps.length > 0 ? deps.join(', ') : t('common.none', lang),
|
|
559
559
|
}));
|
|
560
560
|
});
|
|
561
|
+
// flow stage reset <stageId> --to <phase> [--dry-run]
|
|
562
|
+
stageCmd
|
|
563
|
+
.command('reset <stageId>')
|
|
564
|
+
.description('复位阶段 phase(允许回退;受合法值域与 to=done 的 REV 阻塞约束)')
|
|
565
|
+
.requiredOption('--to <phase>', '目标 phase(如 review_pending / test_pending / done);合法值见 openfeel flow phases')
|
|
566
|
+
.option('--dry-run', '仅预览,不写盘')
|
|
567
|
+
.action((stageId, options) => {
|
|
568
|
+
const lang = getCliLang(process.cwd());
|
|
569
|
+
const mgr = createManager();
|
|
570
|
+
if (!mgr.isLoaded()) {
|
|
571
|
+
console.error(t('common.errorNoInit', lang));
|
|
572
|
+
process.exit(1);
|
|
573
|
+
}
|
|
574
|
+
const stageArg = normalizeStageId(stageId) ?? stageId;
|
|
575
|
+
try {
|
|
576
|
+
const result = mgr.resetStagePhase(stageArg, options.to, { dryRun: options.dryRun });
|
|
577
|
+
if (options.dryRun) {
|
|
578
|
+
console.log(t('flow.stage.reset.previewTitle', lang));
|
|
579
|
+
console.log(t('flow.stage.reset.previewTmpl', lang, {
|
|
580
|
+
stage: stageArg,
|
|
581
|
+
from: result.from,
|
|
582
|
+
to: result.to,
|
|
583
|
+
status: result.status,
|
|
584
|
+
}));
|
|
585
|
+
return;
|
|
586
|
+
}
|
|
587
|
+
if (!result.changed) {
|
|
588
|
+
console.log(t('flow.stage.reset.noopTmpl', lang, { stage: stageArg, phase: result.to }));
|
|
589
|
+
return;
|
|
590
|
+
}
|
|
591
|
+
// 核心层仅改内存;命令层 save()(与 advance 同范式)
|
|
592
|
+
mgr.save();
|
|
593
|
+
console.log(t('flow.stage.reset.okTmpl', lang, {
|
|
594
|
+
stage: stageArg,
|
|
595
|
+
from: result.from,
|
|
596
|
+
to: result.to,
|
|
597
|
+
}));
|
|
598
|
+
}
|
|
599
|
+
catch (err) {
|
|
600
|
+
// 并发写冲突:统一单点(i18n 文案 + 退出码 2);其余走通用错误
|
|
601
|
+
if (isFlowConcurrentError(err)) {
|
|
602
|
+
handleConcurrentConflict(err, lang);
|
|
603
|
+
}
|
|
604
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
605
|
+
console.error(t('common.errorTmpl', lang, { msg }));
|
|
606
|
+
process.exit(1);
|
|
607
|
+
}
|
|
608
|
+
});
|
|
561
609
|
// flow advance --stage <id> --to <phase> [--op <id>] [--force]
|
|
562
610
|
flow
|
|
563
611
|
.command('advance')
|
|
@@ -1308,21 +1356,58 @@ export function registerFlowCommand(program) {
|
|
|
1308
1356
|
}
|
|
1309
1357
|
console.log(t('flow.checkpoint.listCountTmpl', lang, { n: String(snapshots.length) }));
|
|
1310
1358
|
});
|
|
1311
|
-
// flow checkpoint restore <checkpoint-file> [--force]
|
|
1359
|
+
// flow checkpoint restore <checkpoint-file> [--force] [--stage <id>] [--dry-run]
|
|
1312
1360
|
checkpointCmd
|
|
1313
1361
|
.command('restore')
|
|
1314
|
-
.description('从 Checkpoint 快照恢复 flow.json
|
|
1362
|
+
.description('从 Checkpoint 快照恢复 flow.json(默认全量覆盖,需 --force 确认;--stage 选择性、--dry-run 预览)')
|
|
1315
1363
|
.argument('<checkpoint-file>', '快照文件名(如 v5.3-stage-01-20260807T162300-exec_running.json)')
|
|
1316
1364
|
.option('--force', '确认恢复操作(覆盖当前 flow.json)')
|
|
1365
|
+
.option('--stage <id>', '仅回退指定阶段子树(选择性恢复;缺省为全量覆盖)')
|
|
1366
|
+
.option('--dry-run', '仅预览差异,不写盘')
|
|
1317
1367
|
.action((file, options) => {
|
|
1318
1368
|
const lang = getCliLang(process.cwd());
|
|
1319
1369
|
const mgr = createManager();
|
|
1370
|
+
// --dry-run:只读预览(零写盘),不要求 --force
|
|
1371
|
+
if (options.dryRun) {
|
|
1372
|
+
const preview = mgr.previewRestore(file, { stage: options.stage });
|
|
1373
|
+
if (preview.ok && preview.conflicts) {
|
|
1374
|
+
console.error(t('flow.manager.snapshotRestoreRefused', lang));
|
|
1375
|
+
process.exit(1);
|
|
1376
|
+
return;
|
|
1377
|
+
}
|
|
1378
|
+
if (!preview.ok) {
|
|
1379
|
+
if (preview.reason === 'stage-not-in-snapshot') {
|
|
1380
|
+
console.error(t('flow.checkpoint.restoreStageMissingTmpl', lang, { stage: options.stage ?? '' }));
|
|
1381
|
+
}
|
|
1382
|
+
else {
|
|
1383
|
+
console.error(t('flow.checkpoint.restoreFailTmpl', lang, { file }));
|
|
1384
|
+
}
|
|
1385
|
+
process.exit(1);
|
|
1386
|
+
return;
|
|
1387
|
+
}
|
|
1388
|
+
console.log(t('flow.checkpoint.restoreDryRunTitle', lang) + (options.stage ? ` [${options.stage}]` : ''));
|
|
1389
|
+
if (preview.diffs.length === 0) {
|
|
1390
|
+
console.log(t('flow.checkpoint.restoreNoDiff', lang));
|
|
1391
|
+
}
|
|
1392
|
+
else {
|
|
1393
|
+
for (const d of preview.diffs) {
|
|
1394
|
+
console.log(t('flow.checkpoint.restoreDiffTmpl', lang, {
|
|
1395
|
+
stage: d.stage,
|
|
1396
|
+
fromPhase: d.fromPhase,
|
|
1397
|
+
toPhase: d.toPhase,
|
|
1398
|
+
fromStatus: d.fromStatus,
|
|
1399
|
+
toStatus: d.toStatus,
|
|
1400
|
+
}));
|
|
1401
|
+
}
|
|
1402
|
+
}
|
|
1403
|
+
return;
|
|
1404
|
+
}
|
|
1320
1405
|
// 安全确认:恢复会覆盖当前 flow.json,必须显式 --force
|
|
1321
1406
|
if (!options.force) {
|
|
1322
1407
|
console.error(t('flow.checkpoint.restoreNeedForce', lang));
|
|
1323
1408
|
process.exit(1);
|
|
1324
1409
|
}
|
|
1325
|
-
const ok = mgr.restoreCheckpoint(file);
|
|
1410
|
+
const ok = mgr.restoreCheckpoint(file, { stage: options.stage });
|
|
1326
1411
|
if (ok) {
|
|
1327
1412
|
console.log(t('flow.checkpoint.restoreOkTmpl', lang, { file }));
|
|
1328
1413
|
}
|