openfeel 1.2.1 → 1.2.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 +34 -1
- package/README.md +34 -1
- package/README.zh-CN.md +34 -1
- package/dist/cli/index.d.ts +17 -3
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +96 -8
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/project-option.d.ts +40 -0
- package/dist/cli/project-option.d.ts.map +1 -0
- package/dist/cli/project-option.js +140 -0
- package/dist/cli/project-option.js.map +1 -0
- package/dist/commands/archive.d.ts.map +1 -1
- package/dist/commands/archive.js +45 -4
- package/dist/commands/archive.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +103 -9
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/flow.d.ts.map +1 -1
- package/dist/commands/flow.js +438 -125
- package/dist/commands/flow.js.map +1 -1
- package/dist/commands/instructions.d.ts.map +1 -1
- package/dist/commands/instructions.js +13 -3
- package/dist/commands/instructions.js.map +1 -1
- package/dist/commands/knowledge.d.ts.map +1 -1
- package/dist/commands/knowledge.js +113 -17
- package/dist/commands/knowledge.js.map +1 -1
- package/dist/commands/lint.d.ts.map +1 -1
- package/dist/commands/lint.js +78 -39
- package/dist/commands/lint.js.map +1 -1
- package/dist/commands/model.d.ts.map +1 -1
- package/dist/commands/model.js +86 -8
- package/dist/commands/model.js.map +1 -1
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +45 -7
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/project.d.ts +66 -0
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +122 -64
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/req.d.ts.map +1 -1
- package/dist/commands/req.js +23 -11
- package/dist/commands/req.js.map +1 -1
- package/dist/commands/roadmap.d.ts.map +1 -1
- package/dist/commands/roadmap.js +21 -2
- package/dist/commands/roadmap.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +11 -3
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/shared/errors.d.ts +55 -4
- package/dist/commands/shared/errors.d.ts.map +1 -1
- package/dist/commands/shared/errors.js +108 -10
- package/dist/commands/shared/errors.js.map +1 -1
- package/dist/commands/shared/json-output.d.ts +60 -0
- package/dist/commands/shared/json-output.d.ts.map +1 -0
- package/dist/commands/shared/json-output.js +152 -0
- package/dist/commands/shared/json-output.js.map +1 -0
- package/dist/commands/stage.d.ts.map +1 -1
- package/dist/commands/stage.js +62 -6
- package/dist/commands/stage.js.map +1 -1
- package/dist/commands/view.d.ts.map +1 -1
- package/dist/commands/view.js +27 -0
- package/dist/commands/view.js.map +1 -1
- package/dist/core/archive/merge.d.ts +16 -1
- package/dist/core/archive/merge.d.ts.map +1 -1
- package/dist/core/archive/merge.js +27 -4
- package/dist/core/archive/merge.js.map +1 -1
- package/dist/core/config.js +2 -2
- package/dist/core/errors.d.ts +105 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +61 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/flow-manager.d.ts +13 -0
- package/dist/core/flow-manager.d.ts.map +1 -1
- package/dist/core/flow-manager.js +22 -0
- package/dist/core/flow-manager.js.map +1 -1
- package/dist/core/fs/file-lock.d.ts +9 -0
- package/dist/core/fs/file-lock.d.ts.map +1 -1
- package/dist/core/fs/file-lock.js +27 -1
- package/dist/core/fs/file-lock.js.map +1 -1
- package/dist/core/i18n-data/en.d.ts.map +1 -1
- package/dist/core/i18n-data/en.js +53 -3
- 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 +53 -3
- package/dist/core/i18n-data/zh-CN.js.map +1 -1
- package/dist/core/pipeline-schema.d.ts +7 -0
- package/dist/core/pipeline-schema.d.ts.map +1 -1
- package/dist/core/pipeline-schema.js +7 -0
- package/dist/core/pipeline-schema.js.map +1 -1
- package/dist/core/plan/roadmap.d.ts +29 -0
- package/dist/core/plan/roadmap.d.ts.map +1 -1
- package/dist/core/plan/roadmap.js +95 -0
- package/dist/core/plan/roadmap.js.map +1 -1
- package/dist/core/req/aggregate.d.ts +19 -1
- package/dist/core/req/aggregate.d.ts.map +1 -1
- package/dist/core/req/aggregate.js +18 -5
- package/dist/core/req/aggregate.js.map +1 -1
- package/dist/core/template-loader.d.ts.map +1 -1
- package/dist/core/template-loader.js +48 -14
- package/dist/core/template-loader.js.map +1 -1
- package/dist/core/update.d.ts.map +1 -1
- package/dist/core/update.js +44 -10
- package/dist/core/update.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-lock.d.ts","sourceRoot":"","sources":["../../../src/core/fs/file-lock.ts"],"names":[],"mappings":"AA6BA,iBAAiB;AACjB,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C,wCAAwC;AACxC,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,iBAAiB;AACjB,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAClD,eAAe;AACf,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,YAAY;AACZ,MAAM,WAAW,eAAe;IAC9B,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AASD,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,sDAAsD;AACtD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;
|
|
1
|
+
{"version":3,"file":"file-lock.d.ts","sourceRoot":"","sources":["../../../src/core/fs/file-lock.ts"],"names":[],"mappings":"AA6BA,iBAAiB;AACjB,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C,wCAAwC;AACxC,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,iBAAiB;AACjB,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAClD,eAAe;AACf,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,YAAY;AACZ,MAAM,WAAW,eAAe;IAC9B,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AASD,iEAAiE;AACjE,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,sDAAsD;AACtD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AAOD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAU/E;AAyCD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,CAAC,EACX,OAAO,GAAE,eAAoB,GAC5B,CAAC,CAgEH"}
|
|
@@ -38,6 +38,25 @@ export function globalLockPath(name) {
|
|
|
38
38
|
function sleepSync(ms) {
|
|
39
39
|
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* 测试专用默认值解析(REV-98-006①;非公开 CLI 契约)。
|
|
43
|
+
* 仅当 `OPENFEEL_TEST_MODE=1` 时读取 env(gate off 时零副作用);
|
|
44
|
+
* `Number(raw)` 且为正整数才生效,非法/缺失一律回落既有默认。
|
|
45
|
+
* 必须在函数体内读取 env(不得提为模块级常量),保证子进程 E2E 可注入。
|
|
46
|
+
* @param envKey 测试 env 键名
|
|
47
|
+
* @param fallback 生产默认值
|
|
48
|
+
*/
|
|
49
|
+
export function resolveTestLockDefault(envKey, fallback) {
|
|
50
|
+
if (process.env.OPENFEEL_TEST_MODE !== '1') {
|
|
51
|
+
return fallback;
|
|
52
|
+
}
|
|
53
|
+
const raw = process.env[envKey];
|
|
54
|
+
if (raw === undefined || raw === '') {
|
|
55
|
+
return fallback;
|
|
56
|
+
}
|
|
57
|
+
const n = Number(raw);
|
|
58
|
+
return Number.isInteger(n) && n > 0 ? n : fallback;
|
|
59
|
+
}
|
|
41
60
|
/** 读取锁文件内容;读取/解析失败返回 null */
|
|
42
61
|
function readLockInfo(lockPath) {
|
|
43
62
|
try {
|
|
@@ -88,7 +107,14 @@ function tryReclaimStale(lockPath, staleMs) {
|
|
|
88
107
|
* @throws 超过 timeoutMs 仍无法获取锁时抛出;fn 自身抛错原样透传
|
|
89
108
|
*/
|
|
90
109
|
export function withFileLock(lockPath, fn, options = {}) {
|
|
91
|
-
|
|
110
|
+
// 显式 options > 测试 env seam(仅 OPENFEEL_TEST_MODE=1 生效)> 生产默认常量
|
|
111
|
+
const timeoutMs = options.timeoutMs === undefined
|
|
112
|
+
? resolveTestLockDefault('OPENFEEL_TEST_LOCK_TIMEOUT_MS', LOCK_TIMEOUT_MS_DEFAULT)
|
|
113
|
+
: options.timeoutMs;
|
|
114
|
+
const staleMs = options.staleMs === undefined
|
|
115
|
+
? resolveTestLockDefault('OPENFEEL_TEST_LOCK_STALE_MS', LOCK_STALE_MS_DEFAULT)
|
|
116
|
+
: options.staleMs;
|
|
117
|
+
const { initialBackoffMs = LOCK_INITIAL_BACKOFF_MS_DEFAULT, maxBackoffMs = LOCK_MAX_BACKOFF_MS_DEFAULT, } = options;
|
|
92
118
|
mkdirSync(dirname(lockPath), { recursive: true });
|
|
93
119
|
const token = randomBytes(8).toString('hex');
|
|
94
120
|
const deadline = Date.now() + timeoutMs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-lock.js","sourceRoot":"","sources":["../../../src/core/fs/file-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EACL,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,UAAU,EACV,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,iBAAiB;AACjB,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAC5C,wCAAwC;AACxC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAC1C,iBAAiB;AACjB,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,CAAC;AAClD,eAAe;AACf,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAC;AAqB/C,iEAAiE;AACjE,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,IAAY;IAC/D,OAAO,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;AACxE,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,iDAAiD;IACjD,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,+BAA+B;AAC/B,SAAS,SAAS,CAAC,EAAU;IAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,6BAA6B;AAC7B,SAAS,YAAY,CAAC,QAAgB;IACpC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAa,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,QAAgB,EAAE,OAAe;IACxD,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC,CAAC,WAAW;IAC3B,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,IAAI,OAAO,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC,CAAC,MAAM;IACtB,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,QAAQ,UAAU,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACvF,IAAI,CAAC;QACH,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,iBAAiB;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,sDAAsD;QACtD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,UAAU,CAAC,SAAS,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,yBAAyB;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,EAAW,EACX,UAA2B,EAAE;IAE7B,MAAM,
|
|
1
|
+
{"version":3,"file":"file-lock.js","sourceRoot":"","sources":["../../../src/core/fs/file-lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/core/i18n-data/en.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxD,eAAO,MAAM,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/core/i18n-data/en.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAa,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxD,eAAO,MAAM,MAAM,EAAE,UA6BpB,CAAC;AAGF,eAAO,MAAM,IAAI,EAAE,UAmUlB,CAAC;AAGF,eAAO,MAAM,IAAI,EAAE,UAyBlB,CAAC;AAGF,eAAO,MAAM,MAAM,EAAE,UAiCpB,CAAC;AAGF,eAAO,MAAM,OAAO,EAAE,UA8CrB,CAAC;AAGF,eAAO,MAAM,KAAK,EAAE,UAgCnB,CAAC;AAGF,eAAO,MAAM,IAAI,EAAE,UAoClB,CAAC;AAGF,eAAO,MAAM,SAAS,EAAE,UAiCvB,CAAC;AAGF,eAAO,MAAM,OAAO,EAAE,UAQrB,CAAC;AAGF,eAAO,MAAM,OAAO,EAAE,UAAe,CAAC;AAGtC,eAAO,MAAM,IAAI,EAAE,UAMlB,CAAC;AAGF,eAAO,MAAM,YAAY,EAAE,UAAe,CAAC;AAG3C,eAAO,MAAM,IAAI,EAAE,UAclB,CAAC;AAGF,eAAO,MAAM,IAAI,EAAE,UAoUlB,CAAC;AAGF,eAAO,MAAM,MAAM,EAAE,UA+BpB,CAAC;AAGF,eAAO,MAAM,OAAO,EAAE,UA4BrB,CAAC;AAGF,eAAO,MAAM,KAAK,EAAE,UAqBnB,CAAC;AAGF,eAAO,MAAM,KAAK,EAAE,UAenB,CAAC;AAGF,eAAO,MAAM,OAAO,EAAE,UAUrB,CAAC;AAGF,eAAO,MAAM,IAAI,EAAE,UAMlB,CAAC;AAGF,eAAO,MAAM,GAAG,EAAE,UA6EjB,CAAC;AAGF,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAsBlE,CAAC"}
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
export const common = {
|
|
3
3
|
error: { key: 'common.error', zh: '', en: 'Error' },
|
|
4
4
|
errorTmpl: { key: 'common.errorTmpl', zh: '', en: 'Error: {msg}' },
|
|
5
|
+
invalidArgumentTmpl: { key: 'common.invalidArgumentTmpl', zh: '', en: 'Invalid argument or usage: {detail}' },
|
|
6
|
+
projectNotFoundTmpl: { key: 'common.projectNotFoundTmpl', zh: '', en: 'Project path does not exist or is not a directory: {path}' },
|
|
7
|
+
projectMissingValueTmpl: { key: 'common.projectMissingValueTmpl', zh: '', en: '--project requires a path value' },
|
|
8
|
+
projectConflictTmpl: { key: 'common.projectConflictTmpl', zh: '', en: '--project was given multiple times with different resolved paths: {values}' },
|
|
5
9
|
concurrentConflict: { key: 'common.concurrentConflict', zh: '', en: '[concurrent conflict] flow.json was modified by another process (expected revision={expected}, on-disk={actual}); this change was not written, please retry.' },
|
|
6
10
|
ok: { key: 'common.ok', zh: '', en: '✓' },
|
|
7
11
|
none: { key: 'common.none', zh: '', en: '(none)' },
|
|
@@ -51,6 +55,24 @@ export const flow = {
|
|
|
51
55
|
'status.lastUpdated': { key: 'flow.status.lastUpdated', zh: '', en: 'Last Updated' },
|
|
52
56
|
'status.recoveryTitle': { key: 'flow.status.recoveryTitle', zh: '', en: '── Cross-Session Recovery Info ──' },
|
|
53
57
|
'status.recoveryMoreTmpl': { key: 'flow.status.recoveryMoreTmpl', zh: '', en: '... {n} more items' },
|
|
58
|
+
// flow next (dispatch decision, read-only)
|
|
59
|
+
'next.title': { key: 'flow.next.title', zh: '', en: 'Pipeline next step (read-only)' },
|
|
60
|
+
'next.stageLabel': { key: 'flow.next.stageLabel', zh: '', en: 'Stage' },
|
|
61
|
+
'next.phaseLabel': { key: 'flow.next.phaseLabel', zh: '', en: 'Phase' },
|
|
62
|
+
'next.responsibleAgentLabel': { key: 'flow.next.responsibleAgentLabel', zh: '', en: 'Responsible agent' },
|
|
63
|
+
'next.workflowModeLabel': { key: 'flow.next.workflowModeLabel', zh: '', en: 'Workflow mode' },
|
|
64
|
+
'next.displayTierLabel': { key: 'flow.next.displayTierLabel', zh: '', en: 'Display review tier' },
|
|
65
|
+
'next.effectiveTierLabel': { key: 'flow.next.effectiveTierLabel', zh: '', en: 'Effective review tier' },
|
|
66
|
+
'next.legalNextPhasesLabel': { key: 'flow.next.legalNextPhasesLabel', zh: '', en: 'Legal next phases' },
|
|
67
|
+
'next.suggestedCommandLabel': { key: 'flow.next.suggestedCommandLabel', zh: '', en: 'Suggested command' },
|
|
68
|
+
'next.guardsLabel': { key: 'flow.next.guardsLabel', zh: '', en: 'Guards' },
|
|
69
|
+
'next.blockingReviewsLabel': { key: 'flow.next.blockingReviewsLabel', zh: '', en: 'Blocking reviews' },
|
|
70
|
+
'next.blockingReviewItemTmpl': { key: 'flow.next.blockingReviewItemTmpl', zh: '', en: '{id}: {title} (priority {priority}, op {op})' },
|
|
71
|
+
'next.guardNoActiveStage': { key: 'flow.next.guardNoActiveStage', zh: '', en: 'No active stage (pipeline.current.stage is empty or the stage record is missing): Feel decides the next step' },
|
|
72
|
+
'next.guardAutoAdvanceDisabled': { key: 'flow.next.guardAutoAdvanceDisabled', zh: '', en: 'Auto-advance is disabled (auto_advance=disabled): ask the user before advancing' },
|
|
73
|
+
'next.guardBlockingReviewsTmpl': { key: 'flow.next.guardBlockingReviewsTmpl', zh: '', en: '{n} blocking open REV(s) present: resolve before advancing to done' },
|
|
74
|
+
'next.guardNoLegalTargets': { key: 'flow.next.guardNoLegalTargets', zh: '', en: 'No legal next phase from the current phase (consider --force, adjusting workflow mode, or checking the transition table)' },
|
|
75
|
+
'next.guardTierDiffTmpl': { key: 'flow.next.guardTierDiffTmpl', zh: '', en: 'Display tier {display} ≠ effective tier {effective} (flow advance defaults to {effective})' },
|
|
54
76
|
'overview.title': { key: 'flow.overview.title', zh: '', en: 'OpenFeel Pipeline Overview' },
|
|
55
77
|
'overview.currentStatus': { key: 'flow.overview.currentStatus', zh: '', en: '📍 Current Status' },
|
|
56
78
|
'overview.stagesOverview': { key: 'flow.overview.stagesOverview', zh: '', en: '📋 Stages Overview' },
|
|
@@ -527,6 +549,7 @@ export const knowledge = {
|
|
|
527
549
|
/* ==================== archive ==================== */
|
|
528
550
|
export const archive = {
|
|
529
551
|
'errorArchiveFailedTmpl': { key: 'archive.errorArchiveFailedTmpl', zh: '', en: 'Error: Archive failed, please confirm stage "{stage}" exists and flow.json is initialized.' },
|
|
552
|
+
'errorArchiveExistsTmpl': { key: 'archive.errorArchiveExistsTmpl', zh: '', en: 'Error: the archive file for stage "{stage}" already exists ({path}); pass --force to overwrite explicitly.' },
|
|
530
553
|
'okTmpl': { key: 'archive.okTmpl', zh: '', en: '✓ Stage archived: {stage}' },
|
|
531
554
|
'opsCount': { key: 'archive.opsCount', zh: '', en: 'Ops' },
|
|
532
555
|
'reviewsCount': { key: 'archive.reviewsCount', zh: '', en: 'Review Entries' },
|
|
@@ -559,6 +582,7 @@ export const lint = {
|
|
|
559
582
|
'kb.okTmpl': { key: 'lint.kb.okTmpl', zh: '', en: '✅ No stale references (checked {n} reference(s))' },
|
|
560
583
|
'kb.staleTmpl': { key: 'lint.kb.staleTmpl', zh: '', en: '❌ Found {n} stale reference(s)' },
|
|
561
584
|
'kb.staleItemTmpl': { key: 'lint.kb.staleItemTmpl', zh: '', en: ' {file} L{line}: "{ref}" → file not found' },
|
|
585
|
+
'kb.issueTmpl': { key: 'lint.kb.issueTmpl', zh: '', en: 'L{line}: "{ref}" → file not found' },
|
|
562
586
|
};
|
|
563
587
|
/* ==================== help ==================== */
|
|
564
588
|
export const help = {
|
|
@@ -568,6 +592,7 @@ export const help = {
|
|
|
568
592
|
'global.logFile': { key: 'help.global.logFile', zh: '', en: 'Runtime log file path (default ~/.openfeel/cli/logs/openfeel-YYYY-MM-DD.log)' },
|
|
569
593
|
'global.noLog': { key: 'help.global.noLog', zh: '', en: 'Disable runtime log (also via OPENFEEL_LOG=0 / OPENFEEL_NO_LOG=1)' },
|
|
570
594
|
'global.debug': { key: 'help.global.debug', zh: '', en: 'Record debug-level logs (default: info/warn/error only)' },
|
|
595
|
+
'global.project': { key: 'help.global.project', zh: '', en: 'Project root path (equivalent to running in that directory; defaults to the current directory)' },
|
|
571
596
|
'openfeel.version': { key: 'help.openfeel.version', zh: '', en: 'Output version number' },
|
|
572
597
|
'init': { key: 'help.init', zh: '', en: 'Initialize project workspace, create .openfeel/ directory structure and config files' },
|
|
573
598
|
'init.demo': { key: 'help.init.demo', zh: '', en: 'Create demo project skeleton (NumKit style)' },
|
|
@@ -588,6 +613,8 @@ export const help = {
|
|
|
588
613
|
'flow.status.verbose': { key: 'help.flow.status.verbose', zh: '', en: 'Enhanced output: config cascade, recent changes, downstream agent readiness' },
|
|
589
614
|
'flow.status.lines': { key: 'help.flow.status.lines', zh: '', en: 'Number of recent status changes (default 5)' },
|
|
590
615
|
'flow.status.json': { key: 'help.flow.status.json', zh: '', en: 'Output as JSON (machine-readable, single JSON document)' },
|
|
616
|
+
'flow.next': { key: 'help.flow.next', zh: '', en: 'Show dispatch decision for the current stage (responsible agent / legal next phases / suggested command / guards / blocking reviews; read-only)' },
|
|
617
|
+
'flow.next.json': { key: 'help.flow.next.json', zh: '', en: 'Output { schemaVersion, stage, phase, phaseLabel, responsibleAgent, workflowMode, reviewTier, effectiveReviewTier, legalNextPhases, suggestedCommand, guards, blockingReviews } as JSON' },
|
|
591
618
|
'flow.overview': { key: 'help.flow.overview', zh: '', en: 'Full status visualization (openfeel flow overview backend)' },
|
|
592
619
|
'flow.overview.json': { key: 'help.flow.overview.json', zh: '', en: 'Output as JSON' },
|
|
593
620
|
'flow.current': { key: 'help.flow.current', zh: '', en: 'Show current stage and operation' },
|
|
@@ -595,7 +622,7 @@ export const help = {
|
|
|
595
622
|
'flow.metrics': { key: 'help.flow.metrics', zh: '', en: 'Show Agent performance metrics' },
|
|
596
623
|
'flow.metrics.json': { key: 'help.flow.metrics.json', zh: '', en: 'Output as JSON' },
|
|
597
624
|
'flow.phases': { key: 'help.flow.phases', zh: '', en: 'List all valid phases and transitions (self-describing)' },
|
|
598
|
-
'flow.phases.json': { key: 'help.flow.phases.json', zh: '', en: 'Output { phases, transitions, advanceAccepted, transitionsDiff, schemaVersion, workflowMode, reviewTier } as JSON (advanceAccepted = the built-in 15 phases accepted by flow advance; transitionsDiff = diff report between runtime and built-in default transitions; workflowMode = the workflow mode used for this view; reviewTier = the review tier derived from that mode)' },
|
|
625
|
+
'flow.phases.json': { key: 'help.flow.phases.json', zh: '', en: 'Output { phases, transitions, advanceAccepted, transitionsDiff, schemaVersion, workflowMode, reviewTier, displayReviewTier, effectiveReviewTier } as JSON (advanceAccepted = the built-in 15 phases accepted by flow advance; transitionsDiff = diff report between runtime and built-in default transitions; workflowMode = the workflow mode used for this view; reviewTier = the review tier derived from that mode, kept as a display-tier compatibility alias; displayReviewTier = the display tier (same value as reviewTier); effectiveReviewTier = the default effective tier for flow advance, always full)' },
|
|
599
626
|
'flow.phases.mode': { key: 'help.flow.phases.mode', zh: '', en: 'Explicit workflow mode (full | fast | general; default derived from --stage / current stage)' },
|
|
600
627
|
'flow.phases.stage': { key: 'help.flow.phases.stage', zh: '', en: "Show the transition table for the given stage's mode (default: current stage)" },
|
|
601
628
|
'flow.mode': { key: 'help.flow.mode', zh: '', en: 'Show current workflow mode and its source (read-only)' },
|
|
@@ -604,7 +631,7 @@ export const help = {
|
|
|
604
631
|
'flow.archive': { key: 'help.flow.archive', zh: '', en: 'Archive flow.json slices by version (archives completed history by version prefix; separate from top-level openfeel archive [stage summaries])' },
|
|
605
632
|
'flow.archive.argversion': { key: 'help.flow.archive.argversion', zh: '', en: 'Version (e.g. v1.1.7; the leading v may be omitted)' },
|
|
606
633
|
'flow.archive.dryRun': { key: 'help.flow.archive.dryRun', zh: '', en: 'Preview only (the gate is still checked; zero writes)' },
|
|
607
|
-
'flow.archive.json': { key: 'help.flow.archive.json', zh: '', en: 'Output { schemaVersion, version, stages, reviews, log, dryRun } as JSON' },
|
|
634
|
+
'flow.archive.json': { key: 'help.flow.archive.json', zh: '', en: 'Output { schemaVersion, version, stages, reviews, log, dryRun, eligible, unfinishedStages, blockingReviews } as JSON' },
|
|
608
635
|
'flow.archive.list': { key: 'help.flow.archive.list', zh: '', en: 'List archived versions and their counts (read-only; engine lexicographic order)' },
|
|
609
636
|
'flow.archive.list.json': { key: 'help.flow.archive.list.json', zh: '', en: 'Output { schemaVersion, versions: [{version, counts}] } as JSON' },
|
|
610
637
|
'flow.archive.show': { key: 'help.flow.archive.show', zh: '', en: 'Show a given archived version (read-only; human output = counts + stage overview)' },
|
|
@@ -630,7 +657,7 @@ export const help = {
|
|
|
630
657
|
'flow.advance.stage': { key: 'help.flow.advance.stage', zh: '', en: 'Stage ID (e.g. stage-03), required' },
|
|
631
658
|
'flow.advance.force': { key: 'help.flow.advance.force', zh: '', en: 'Force execution (skip invalid phase check and phase jump check, but not REV block check)' },
|
|
632
659
|
'flow.advance.dryRun': { key: 'help.flow.advance.dryRun', zh: '', en: 'Validate only without modifying (preview output). When combined with --force, skips validation but still does not modify' },
|
|
633
|
-
'flow.advance.reviewTier': { key: 'help.flow.advance.reviewTier', zh: '', en: 'Review tier (full / lean / skip; default =
|
|
660
|
+
'flow.advance.reviewTier': { key: 'help.flow.advance.reviewTier', zh: '', en: 'Review tier (full / lean / skip; default = full (zero pruning); the tier trims review gates only when declared explicitly, and cannot bypass the REV block check)' },
|
|
634
661
|
'flow.advance.quiet': { key: 'help.flow.advance.quiet', zh: '', en: 'Silence non-error output (no success confirmation or Git warning)' },
|
|
635
662
|
'flow.attempt': { key: 'help.flow.attempt', zh: '', en: 'Record operation execution result' },
|
|
636
663
|
'flow.attempt.op': { key: 'help.flow.attempt.op', zh: '', en: 'Operation ID (e.g. stage-01.op-001)' },
|
|
@@ -641,6 +668,7 @@ export const help = {
|
|
|
641
668
|
'flow.ops.list.json': { key: 'help.flow.ops.list.json', zh: '', en: 'Output as JSON' },
|
|
642
669
|
'flow.log': { key: 'help.flow.log', zh: '', en: 'Show recent operation logs' },
|
|
643
670
|
'flow.log.last': { key: 'help.flow.log.last', zh: '', en: 'Show last n entries (default 10)' },
|
|
671
|
+
'flow.log.json': { key: 'help.flow.log.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
644
672
|
'flow.review': { key: 'help.flow.review', zh: '', en: 'Manage review entries' },
|
|
645
673
|
'flow.review.add': { key: 'help.flow.review.add', zh: '', en: 'Add review entry' },
|
|
646
674
|
'flow.review.add.op': { key: 'help.flow.review.add.op', zh: '', en: 'Operation ID (e.g. stage-01.op-001)' },
|
|
@@ -658,6 +686,7 @@ export const help = {
|
|
|
658
686
|
'flow.review.remove.argrev-id': { key: 'help.flow.review.remove.argrev-id', zh: '', en: 'Review entry ID (e.g. REV-001)' },
|
|
659
687
|
'flow.retry': { key: 'help.flow.retry', zh: '', en: 'Query operation retry status' },
|
|
660
688
|
'flow.retry.op': { key: 'help.flow.retry.op', zh: '', en: 'Operation ID (e.g. stage-01.op-001)' },
|
|
689
|
+
'flow.retry.json': { key: 'help.flow.retry.json', zh: '', en: 'Output { schemaVersion, op, attempts, maxAttempts, exhausted, state } as JSON' },
|
|
661
690
|
'flow.repair': { key: 'help.flow.repair', zh: '', en: 'Auto-detect and fix common issues in flow.json' },
|
|
662
691
|
'flow.repair.dryRun': { key: 'help.flow.repair.dryRun', zh: '', en: 'Detect only, do not fix' },
|
|
663
692
|
'flow.repair.backup': { key: 'help.flow.repair.backup', zh: '', en: 'Backup as .bak before repair' },
|
|
@@ -673,12 +702,14 @@ export const help = {
|
|
|
673
702
|
'flow.checkpoint': { key: 'help.flow.checkpoint', zh: '', en: 'Checkpoint snapshot management (auto-saves flow.json snapshots on phase advance)' },
|
|
674
703
|
'flow.checkpoint.list': { key: 'help.flow.checkpoint.list', zh: '', en: 'List all (or stage-filtered) checkpoint snapshots' },
|
|
675
704
|
'flow.checkpoint.list.argstage': { key: 'help.flow.checkpoint.list.argstage', zh: '', en: 'Stage ID (optional), e.g. v5.3-stage-01' },
|
|
705
|
+
'flow.checkpoint.list.json': { key: 'help.flow.checkpoint.list.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
676
706
|
'flow.checkpoint.restore': { key: 'help.flow.checkpoint.restore', zh: '', en: 'Restore flow.json from a checkpoint snapshot (overwrites current file, requires --force)' },
|
|
677
707
|
'flow.checkpoint.restore.argcheckpoint-file': { key: 'help.flow.checkpoint.restore.argcheckpoint-file', zh: '', en: 'Checkpoint file name (e.g. v5.3-stage-01-20260807T162300-exec_running.json)' },
|
|
678
708
|
'flow.checkpoint.restore.force': { key: 'help.flow.checkpoint.restore.force', zh: '', en: 'Confirm restore operation (overwrites current flow.json)' },
|
|
679
709
|
'flow.checkpoint.restore.stage': { key: 'help.flow.checkpoint.restore.stage', zh: '', en: 'Restore only the given stage subtree (selective; default full overwrite)' },
|
|
680
710
|
'flow.checkpoint.restore.dryRun': { key: 'help.flow.checkpoint.restore.dryRun', zh: '', en: 'Preview differences only; nothing is written' },
|
|
681
711
|
'flow.recover': { key: 'help.flow.recover', zh: '', en: 'Cross-session context recovery: pipeline status, blockers, and pending tasks' },
|
|
712
|
+
'flow.recover.json': { key: 'help.flow.recover.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
682
713
|
'flow.wizard': { key: 'help.flow.wizard', zh: '', en: 'Interactive pipeline wizard, advance stage by stage' },
|
|
683
714
|
'config.get-lang': { key: 'help.config.get-lang', zh: '', en: 'Show global default language' },
|
|
684
715
|
'config.set-lang': { key: 'help.config.set-lang', zh: '', en: 'Change global default language (zh-CN or en)' },
|
|
@@ -686,11 +717,15 @@ export const help = {
|
|
|
686
717
|
'config': { key: 'help.config', zh: '', en: 'View or modify project config' },
|
|
687
718
|
'config.get': { key: 'help.config.get', zh: '', en: 'Read a config value (project config; --global reads global profile; keys accept defaults.X, equivalent to X)' },
|
|
688
719
|
'config.get.global': { key: 'help.config.get.global', zh: '', en: 'Operate on global profile (~/.config/openfeel/profile.yaml)' },
|
|
720
|
+
'config.get.json': { key: 'help.config.get.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
721
|
+
'config.get.all': { key: 'help.config.get.all', zh: '', en: 'Read all project defaults at once (four keys; cannot combine with --global or a key)' },
|
|
689
722
|
'config.set': { key: 'help.config.set', zh: '', en: 'Set a config value (project config; --global writes global profile; keys accept defaults.X, equivalent to X)' },
|
|
690
723
|
'config.set.global': { key: 'help.config.set.global', zh: '', en: 'Operate on global profile (~/.config/openfeel/profile.yaml)' },
|
|
691
724
|
'config.effective': { key: 'help.config.effective', zh: '', en: 'Show effective config values and their source (status.md > config.yaml > profile.yaml > builtin)' },
|
|
725
|
+
'config.effective.json': { key: 'help.config.effective.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
692
726
|
'project': { key: 'help.project', zh: '', en: 'Project management and overview' },
|
|
693
727
|
'project.overview': { key: 'help.project.overview', zh: '', en: 'Scan project structure in real-time, output structured overview' },
|
|
728
|
+
'project.overview.json': { key: 'help.project.overview.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
694
729
|
'plan': { key: 'help.plan', zh: '', en: 'Plan management' },
|
|
695
730
|
'plan.stage': { key: 'help.plan.stage', zh: '', en: 'Work stage management' },
|
|
696
731
|
'plan.stage.add': { key: 'help.plan.stage.add', zh: '', en: 'Add a work stage (full entry: creates dir + overview/status + registers flow.json)' },
|
|
@@ -698,6 +733,7 @@ export const help = {
|
|
|
698
733
|
'plan.stage.add.argname': { key: 'help.plan.stage.add.argname', zh: '', en: 'Stage ID (e.g. stage-01 or v1.0.0-stage-01)' },
|
|
699
734
|
'plan.stage.add.tasks': { key: 'help.plan.stage.add.tasks', zh: '', en: 'Initial task list (space- or comma-separated, written to status.md)' },
|
|
700
735
|
'plan.stage.list': { key: 'help.plan.stage.list', zh: '', en: 'List all work stages' },
|
|
736
|
+
'plan.stage.list.json': { key: 'help.plan.stage.list.json', zh: '', en: 'Output { schemaVersion, stages: [{ id, phase, status, deps, workflowMode, opsTotal, opsDone }], count } as JSON' },
|
|
701
737
|
'plan.scheme': { key: 'help.plan.scheme', zh: '', en: 'Operation scheme management' },
|
|
702
738
|
'plan.scheme.create': { key: 'help.plan.scheme.create', zh: '', en: 'Create operation scheme' },
|
|
703
739
|
'plan.scheme.create.argstage': { key: 'help.plan.scheme.create.argstage', zh: '', en: 'Stage ID (e.g. stage-01 or v1.0.0-stage-01)' },
|
|
@@ -706,6 +742,7 @@ export const help = {
|
|
|
706
742
|
'plan.scheme.create.fromTasks': { key: 'help.plan.scheme.create.fromTasks', zh: '', en: 'Mechanically generate ops/op-NNN.md skeletons + ops/deps.yaml placeholder from the stage task table (no Agent involved)' },
|
|
707
743
|
'plan.scheme.list': { key: 'help.plan.scheme.list', zh: '', en: 'List operation schemes (optionally filter by stage)' },
|
|
708
744
|
'plan.scheme.list.argstage': { key: 'help.plan.scheme.list.argstage', zh: '', en: 'Stage name (optional)' },
|
|
745
|
+
'plan.scheme.list.json': { key: 'help.plan.scheme.list.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
709
746
|
'plan.scheme.remove': { key: 'help.plan.scheme.remove', zh: '', en: 'Remove an operation scheme (deregisters the flow.json key only; does not delete the op template file)' },
|
|
710
747
|
'plan.scheme.remove.force': { key: 'help.plan.scheme.remove.force', zh: '', en: 'Bypass protection (op done / has checkpoint progress)' },
|
|
711
748
|
'plan.scheme.remove.dryRun': { key: 'help.plan.scheme.remove.dryRun', zh: '', en: 'Preview only, do not write' },
|
|
@@ -725,6 +762,7 @@ export const help = {
|
|
|
725
762
|
'stage': { key: 'help.stage', zh: '', en: 'Work stage status management (status.md atomic operations)' },
|
|
726
763
|
'stage.status': { key: 'help.stage.status', zh: '', en: 'View stage status (list all stages when no arg)' },
|
|
727
764
|
'stage.status.argstageId': { key: 'help.stage.status.argstageId', zh: '', en: 'Stage ID (e.g. v4-stage-04)' },
|
|
765
|
+
'stage.status.json': { key: 'help.stage.status.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
728
766
|
'stage.set': { key: 'help.stage.set', zh: '', en: 'Set stage status field (atomic update, preserve rest)' },
|
|
729
767
|
'stage.set.argstageId': { key: 'help.stage.set.argstageId', zh: '', en: 'Stage ID (e.g. v4-stage-04)' },
|
|
730
768
|
'stage.set.status': { key: 'help.stage.set.status', zh: '', en: 'Status value (coarse-grained: planned/review_failed/review_passed/testing/archiving/done)' },
|
|
@@ -743,12 +781,14 @@ export const help = {
|
|
|
743
781
|
'view': { key: 'help.view', zh: '', en: 'Review entry management' },
|
|
744
782
|
'view.list': { key: 'help.view.list', zh: '', en: 'List review entries' },
|
|
745
783
|
'view.list.op': { key: 'help.view.list.op', zh: '', en: 'Filter by operation ID' },
|
|
784
|
+
'view.list.json': { key: 'help.view.list.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
746
785
|
'view.note': { key: 'help.view.note', zh: '', en: 'Use `openfeel flow review add|update|remove` to add/modify/remove review entries' },
|
|
747
786
|
'view.accept': { key: 'help.view.accept', zh: '', en: 'Accept review entry (mark as closed)' },
|
|
748
787
|
'view.accept.argrev-id': { key: 'help.view.accept.argrev-id', zh: '', en: 'Review entry ID (e.g. REV-001)' },
|
|
749
788
|
'knowledge': { key: 'help.knowledge', zh: '', en: 'Knowledge base management' },
|
|
750
789
|
'knowledge.list': { key: 'help.knowledge.list', zh: '', en: 'List knowledge entries' },
|
|
751
790
|
'knowledge.list.type': { key: 'help.knowledge.list.type', zh: '', en: 'Filter by category' },
|
|
791
|
+
'knowledge.list.json': { key: 'help.knowledge.list.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
752
792
|
'knowledge.add': { key: 'help.knowledge.add', zh: '', en: 'Add knowledge entry' },
|
|
753
793
|
'knowledge.add.argcategory': { key: 'help.knowledge.add.argcategory', zh: '', en: 'Category (architecture | patterns | troubleshooting | setup)' },
|
|
754
794
|
'knowledge.add.argtitle': { key: 'help.knowledge.add.argtitle', zh: '', en: 'Entry title' },
|
|
@@ -757,19 +797,25 @@ export const help = {
|
|
|
757
797
|
'knowledge.search.argquery': { key: 'help.knowledge.search.argquery', zh: '', en: 'Search query' },
|
|
758
798
|
'knowledge.search.limit': { key: 'help.knowledge.search.limit', zh: '', en: 'Max results (default 10)' },
|
|
759
799
|
'knowledge.search.offset': { key: 'help.knowledge.search.offset', zh: '', en: 'Result offset (default 0)' },
|
|
800
|
+
'knowledge.search.json': { key: 'help.knowledge.search.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
760
801
|
'knowledge.index': { key: 'help.knowledge.index', zh: '', en: 'Show knowledge base index overview' },
|
|
802
|
+
'knowledge.index.json': { key: 'help.knowledge.index.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
761
803
|
'knowledge.dedup': { key: 'help.knowledge.dedup', zh: '', en: 'Find similar knowledge entries (read-only suggestions; does not modify kb)' },
|
|
762
804
|
'knowledge.dedup.argcontent': { key: 'help.knowledge.dedup.argcontent', zh: '', en: 'Content to archive (read from stdin if omitted)' },
|
|
763
805
|
'knowledge.dedup.project': { key: 'help.knowledge.dedup.project', zh: '', en: 'Target project root (defaults to current directory)' },
|
|
764
806
|
'knowledge.dedup.category': { key: 'help.knowledge.dedup.category', zh: '', en: 'Check only the given category (architecture|patterns|troubleshooting|setup)' },
|
|
765
807
|
'knowledge.dedup.threshold': { key: 'help.knowledge.dedup.threshold', zh: '', en: 'Similarity threshold 0–1 (default 0.8)' },
|
|
808
|
+
'knowledge.dedup.json': { key: 'help.knowledge.dedup.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
766
809
|
'archive': { key: 'help.archive', zh: '', en: 'Archive stage (summarize output, generate summary, extract knowledge)' },
|
|
767
810
|
'archive.argstage': { key: 'help.archive.argstage', zh: '', en: 'Stage name (e.g. stage-06)' },
|
|
811
|
+
'archive.json': { key: 'help.archive.json', zh: '', en: 'Output { schemaVersion, stage, archivePath, opsCount, reviewsCount, knowledgeExtracts } as JSON' },
|
|
812
|
+
'archive.force': { key: 'help.archive.force', zh: '', en: 'Explicitly overwrite an existing archive file (refused by default with zero writes)' },
|
|
768
813
|
'roadmap': { key: 'help.roadmap', zh: '', en: 'Roadmap management' },
|
|
769
814
|
'roadmap.create': { key: 'help.roadmap.create', zh: '', en: 'Create roadmap (version number like 1.0, 2.0)' },
|
|
770
815
|
'roadmap.create.argversion': { key: 'help.roadmap.create.argversion', zh: '', en: 'Version number' },
|
|
771
816
|
'roadmap.show': { key: 'help.roadmap.show', zh: '', en: 'Show roadmap content (list all if no version)' },
|
|
772
817
|
'roadmap.show.argversion': { key: 'help.roadmap.show.argversion', zh: '', en: 'Version number (optional)' },
|
|
818
|
+
'roadmap.show.json': { key: 'help.roadmap.show.json', zh: '', en: 'Output { schemaVersion, version, milestones: [{ title, theme, stage, deliverable }] } as JSON' },
|
|
773
819
|
'instructions': { key: 'help.instructions', zh: '', en: 'Generate structured instructions (XML or JSON) for an artifact' },
|
|
774
820
|
'instructions.argartifactId': { key: 'help.instructions.argartifactId', zh: '', en: 'Target artifact ID (e.g. proposal, implementation)' },
|
|
775
821
|
'instructions.change': { key: 'help.instructions.change', zh: '', en: 'Change name (e.g. feat-login)' },
|
|
@@ -777,7 +823,9 @@ export const help = {
|
|
|
777
823
|
'instructions.schema': { key: 'help.instructions.schema', zh: '', en: 'Schema name (default spec-driven)' },
|
|
778
824
|
'lint': { key: 'help.lint', zh: '', en: 'Project health checks (i18n key consistency, kb reference validity)' },
|
|
779
825
|
'lint.i18n': { key: 'help.lint.i18n', zh: '', en: 'Validate i18n key consistency (empty values / zh-CN-only / en-only keys)' },
|
|
826
|
+
'lint.i18n.json': { key: 'help.lint.i18n.json', zh: '', en: 'Output { schemaVersion, target, ok, issues: [{ path, message }] } as JSON' },
|
|
780
827
|
'lint.kb': { key: 'help.lint.kb', zh: '', en: 'Detect stale file references in .openfeel/kb/' },
|
|
828
|
+
'lint.kb.json': { key: 'help.lint.kb.json', zh: '', en: 'Output { schemaVersion, target, ok, issues: [{ path, message }] } as JSON' },
|
|
781
829
|
// migrate (legacy layout migration)
|
|
782
830
|
'migrate': { key: 'help.migrate', zh: '', en: 'Legacy layout migration (detect/backup/migrate/rollback existing project legacy layout)' },
|
|
783
831
|
'migrate.dryRun': { key: 'help.migrate.dryRun', zh: '', en: 'Detect and preview only, do not write' },
|
|
@@ -793,8 +841,10 @@ export const help = {
|
|
|
793
841
|
'model.set.force': { key: 'help.model.set.force', zh: '', en: 'Confirm modifying the framework default (required for --scope default in non-TTY)' },
|
|
794
842
|
'model.get': { key: 'help.model.get', zh: '', en: 'Read the model of a given agent' },
|
|
795
843
|
'model.get.scope': { key: 'help.model.get.scope', zh: '', en: 'Scope (omit to show effective value)' },
|
|
844
|
+
'model.get.json': { key: 'help.model.get.json', zh: '', en: 'Output { schemaVersion, scope, agent, provider, model, source } as JSON' },
|
|
796
845
|
'model.list': { key: 'help.model.list', zh: '', en: 'List models of all agents' },
|
|
797
846
|
'model.list.scope': { key: 'help.model.list.scope', zh: '', en: 'Scope (omit to show effective value)' },
|
|
847
|
+
'model.list.json': { key: 'help.model.list.json', zh: '', en: 'Output { schemaVersion, scope, agents: [{ agent, provider, model, source }] } as JSON' },
|
|
798
848
|
// req (requirement flow command group)
|
|
799
849
|
'req': { key: 'help.req', zh: '', en: 'Requirement management (add/list/show/claim/release/set/link/advance/board/next)' },
|
|
800
850
|
'req.add': { key: 'help.req.add', zh: '', en: 'Create a requirement (auto ID; body skeleton under .openfeel/requirements/)' },
|