openfeel 1.2.1 → 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.
- package/README.en.md +23 -1
- package/README.md +23 -1
- package/README.zh-CN.md +23 -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 +32 -2
- package/dist/commands/archive.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +65 -7
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/flow.d.ts.map +1 -1
- package/dist/commands/flow.js +394 -114
- 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/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +24 -6
- 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/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/config.js +2 -2
- package/dist/core/errors.d.ts +100 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +58 -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 +42 -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 +42 -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/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 +33 -9
- package/dist/core/template-loader.js.map +1 -1
- package/dist/core/update.d.ts.map +1 -1
- package/dist/core/update.js +29 -5
- 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,UAOrB,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,UAalB,CAAC;AAGF,eAAO,MAAM,IAAI,EAAE,UA2TlB,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' },
|
|
@@ -568,6 +590,7 @@ export const help = {
|
|
|
568
590
|
'global.logFile': { key: 'help.global.logFile', zh: '', en: 'Runtime log file path (default ~/.openfeel/cli/logs/openfeel-YYYY-MM-DD.log)' },
|
|
569
591
|
'global.noLog': { key: 'help.global.noLog', zh: '', en: 'Disable runtime log (also via OPENFEEL_LOG=0 / OPENFEEL_NO_LOG=1)' },
|
|
570
592
|
'global.debug': { key: 'help.global.debug', zh: '', en: 'Record debug-level logs (default: info/warn/error only)' },
|
|
593
|
+
'global.project': { key: 'help.global.project', zh: '', en: 'Project root path (equivalent to running in that directory; defaults to the current directory)' },
|
|
571
594
|
'openfeel.version': { key: 'help.openfeel.version', zh: '', en: 'Output version number' },
|
|
572
595
|
'init': { key: 'help.init', zh: '', en: 'Initialize project workspace, create .openfeel/ directory structure and config files' },
|
|
573
596
|
'init.demo': { key: 'help.init.demo', zh: '', en: 'Create demo project skeleton (NumKit style)' },
|
|
@@ -588,6 +611,8 @@ export const help = {
|
|
|
588
611
|
'flow.status.verbose': { key: 'help.flow.status.verbose', zh: '', en: 'Enhanced output: config cascade, recent changes, downstream agent readiness' },
|
|
589
612
|
'flow.status.lines': { key: 'help.flow.status.lines', zh: '', en: 'Number of recent status changes (default 5)' },
|
|
590
613
|
'flow.status.json': { key: 'help.flow.status.json', zh: '', en: 'Output as JSON (machine-readable, single JSON document)' },
|
|
614
|
+
'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)' },
|
|
615
|
+
'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
616
|
'flow.overview': { key: 'help.flow.overview', zh: '', en: 'Full status visualization (openfeel flow overview backend)' },
|
|
592
617
|
'flow.overview.json': { key: 'help.flow.overview.json', zh: '', en: 'Output as JSON' },
|
|
593
618
|
'flow.current': { key: 'help.flow.current', zh: '', en: 'Show current stage and operation' },
|
|
@@ -595,7 +620,7 @@ export const help = {
|
|
|
595
620
|
'flow.metrics': { key: 'help.flow.metrics', zh: '', en: 'Show Agent performance metrics' },
|
|
596
621
|
'flow.metrics.json': { key: 'help.flow.metrics.json', zh: '', en: 'Output as JSON' },
|
|
597
622
|
'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)' },
|
|
623
|
+
'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
624
|
'flow.phases.mode': { key: 'help.flow.phases.mode', zh: '', en: 'Explicit workflow mode (full | fast | general; default derived from --stage / current stage)' },
|
|
600
625
|
'flow.phases.stage': { key: 'help.flow.phases.stage', zh: '', en: "Show the transition table for the given stage's mode (default: current stage)" },
|
|
601
626
|
'flow.mode': { key: 'help.flow.mode', zh: '', en: 'Show current workflow mode and its source (read-only)' },
|
|
@@ -604,7 +629,7 @@ export const help = {
|
|
|
604
629
|
'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
630
|
'flow.archive.argversion': { key: 'help.flow.archive.argversion', zh: '', en: 'Version (e.g. v1.1.7; the leading v may be omitted)' },
|
|
606
631
|
'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' },
|
|
632
|
+
'flow.archive.json': { key: 'help.flow.archive.json', zh: '', en: 'Output { schemaVersion, version, stages, reviews, log, dryRun, eligible, unfinishedStages, blockingReviews } as JSON' },
|
|
608
633
|
'flow.archive.list': { key: 'help.flow.archive.list', zh: '', en: 'List archived versions and their counts (read-only; engine lexicographic order)' },
|
|
609
634
|
'flow.archive.list.json': { key: 'help.flow.archive.list.json', zh: '', en: 'Output { schemaVersion, versions: [{version, counts}] } as JSON' },
|
|
610
635
|
'flow.archive.show': { key: 'help.flow.archive.show', zh: '', en: 'Show a given archived version (read-only; human output = counts + stage overview)' },
|
|
@@ -630,7 +655,7 @@ export const help = {
|
|
|
630
655
|
'flow.advance.stage': { key: 'help.flow.advance.stage', zh: '', en: 'Stage ID (e.g. stage-03), required' },
|
|
631
656
|
'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
657
|
'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 =
|
|
658
|
+
'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
659
|
'flow.advance.quiet': { key: 'help.flow.advance.quiet', zh: '', en: 'Silence non-error output (no success confirmation or Git warning)' },
|
|
635
660
|
'flow.attempt': { key: 'help.flow.attempt', zh: '', en: 'Record operation execution result' },
|
|
636
661
|
'flow.attempt.op': { key: 'help.flow.attempt.op', zh: '', en: 'Operation ID (e.g. stage-01.op-001)' },
|
|
@@ -641,6 +666,7 @@ export const help = {
|
|
|
641
666
|
'flow.ops.list.json': { key: 'help.flow.ops.list.json', zh: '', en: 'Output as JSON' },
|
|
642
667
|
'flow.log': { key: 'help.flow.log', zh: '', en: 'Show recent operation logs' },
|
|
643
668
|
'flow.log.last': { key: 'help.flow.log.last', zh: '', en: 'Show last n entries (default 10)' },
|
|
669
|
+
'flow.log.json': { key: 'help.flow.log.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
644
670
|
'flow.review': { key: 'help.flow.review', zh: '', en: 'Manage review entries' },
|
|
645
671
|
'flow.review.add': { key: 'help.flow.review.add', zh: '', en: 'Add review entry' },
|
|
646
672
|
'flow.review.add.op': { key: 'help.flow.review.add.op', zh: '', en: 'Operation ID (e.g. stage-01.op-001)' },
|
|
@@ -673,12 +699,14 @@ export const help = {
|
|
|
673
699
|
'flow.checkpoint': { key: 'help.flow.checkpoint', zh: '', en: 'Checkpoint snapshot management (auto-saves flow.json snapshots on phase advance)' },
|
|
674
700
|
'flow.checkpoint.list': { key: 'help.flow.checkpoint.list', zh: '', en: 'List all (or stage-filtered) checkpoint snapshots' },
|
|
675
701
|
'flow.checkpoint.list.argstage': { key: 'help.flow.checkpoint.list.argstage', zh: '', en: 'Stage ID (optional), e.g. v5.3-stage-01' },
|
|
702
|
+
'flow.checkpoint.list.json': { key: 'help.flow.checkpoint.list.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
676
703
|
'flow.checkpoint.restore': { key: 'help.flow.checkpoint.restore', zh: '', en: 'Restore flow.json from a checkpoint snapshot (overwrites current file, requires --force)' },
|
|
677
704
|
'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
705
|
'flow.checkpoint.restore.force': { key: 'help.flow.checkpoint.restore.force', zh: '', en: 'Confirm restore operation (overwrites current flow.json)' },
|
|
679
706
|
'flow.checkpoint.restore.stage': { key: 'help.flow.checkpoint.restore.stage', zh: '', en: 'Restore only the given stage subtree (selective; default full overwrite)' },
|
|
680
707
|
'flow.checkpoint.restore.dryRun': { key: 'help.flow.checkpoint.restore.dryRun', zh: '', en: 'Preview differences only; nothing is written' },
|
|
681
708
|
'flow.recover': { key: 'help.flow.recover', zh: '', en: 'Cross-session context recovery: pipeline status, blockers, and pending tasks' },
|
|
709
|
+
'flow.recover.json': { key: 'help.flow.recover.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
682
710
|
'flow.wizard': { key: 'help.flow.wizard', zh: '', en: 'Interactive pipeline wizard, advance stage by stage' },
|
|
683
711
|
'config.get-lang': { key: 'help.config.get-lang', zh: '', en: 'Show global default language' },
|
|
684
712
|
'config.set-lang': { key: 'help.config.set-lang', zh: '', en: 'Change global default language (zh-CN or en)' },
|
|
@@ -686,11 +714,14 @@ export const help = {
|
|
|
686
714
|
'config': { key: 'help.config', zh: '', en: 'View or modify project config' },
|
|
687
715
|
'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
716
|
'config.get.global': { key: 'help.config.get.global', zh: '', en: 'Operate on global profile (~/.config/openfeel/profile.yaml)' },
|
|
717
|
+
'config.get.json': { key: 'help.config.get.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
689
718
|
'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
719
|
'config.set.global': { key: 'help.config.set.global', zh: '', en: 'Operate on global profile (~/.config/openfeel/profile.yaml)' },
|
|
691
720
|
'config.effective': { key: 'help.config.effective', zh: '', en: 'Show effective config values and their source (status.md > config.yaml > profile.yaml > builtin)' },
|
|
721
|
+
'config.effective.json': { key: 'help.config.effective.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
692
722
|
'project': { key: 'help.project', zh: '', en: 'Project management and overview' },
|
|
693
723
|
'project.overview': { key: 'help.project.overview', zh: '', en: 'Scan project structure in real-time, output structured overview' },
|
|
724
|
+
'project.overview.json': { key: 'help.project.overview.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
694
725
|
'plan': { key: 'help.plan', zh: '', en: 'Plan management' },
|
|
695
726
|
'plan.stage': { key: 'help.plan.stage', zh: '', en: 'Work stage management' },
|
|
696
727
|
'plan.stage.add': { key: 'help.plan.stage.add', zh: '', en: 'Add a work stage (full entry: creates dir + overview/status + registers flow.json)' },
|
|
@@ -706,6 +737,7 @@ export const help = {
|
|
|
706
737
|
'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
738
|
'plan.scheme.list': { key: 'help.plan.scheme.list', zh: '', en: 'List operation schemes (optionally filter by stage)' },
|
|
708
739
|
'plan.scheme.list.argstage': { key: 'help.plan.scheme.list.argstage', zh: '', en: 'Stage name (optional)' },
|
|
740
|
+
'plan.scheme.list.json': { key: 'help.plan.scheme.list.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
709
741
|
'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
742
|
'plan.scheme.remove.force': { key: 'help.plan.scheme.remove.force', zh: '', en: 'Bypass protection (op done / has checkpoint progress)' },
|
|
711
743
|
'plan.scheme.remove.dryRun': { key: 'help.plan.scheme.remove.dryRun', zh: '', en: 'Preview only, do not write' },
|
|
@@ -725,6 +757,7 @@ export const help = {
|
|
|
725
757
|
'stage': { key: 'help.stage', zh: '', en: 'Work stage status management (status.md atomic operations)' },
|
|
726
758
|
'stage.status': { key: 'help.stage.status', zh: '', en: 'View stage status (list all stages when no arg)' },
|
|
727
759
|
'stage.status.argstageId': { key: 'help.stage.status.argstageId', zh: '', en: 'Stage ID (e.g. v4-stage-04)' },
|
|
760
|
+
'stage.status.json': { key: 'help.stage.status.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
728
761
|
'stage.set': { key: 'help.stage.set', zh: '', en: 'Set stage status field (atomic update, preserve rest)' },
|
|
729
762
|
'stage.set.argstageId': { key: 'help.stage.set.argstageId', zh: '', en: 'Stage ID (e.g. v4-stage-04)' },
|
|
730
763
|
'stage.set.status': { key: 'help.stage.set.status', zh: '', en: 'Status value (coarse-grained: planned/review_failed/review_passed/testing/archiving/done)' },
|
|
@@ -743,12 +776,14 @@ export const help = {
|
|
|
743
776
|
'view': { key: 'help.view', zh: '', en: 'Review entry management' },
|
|
744
777
|
'view.list': { key: 'help.view.list', zh: '', en: 'List review entries' },
|
|
745
778
|
'view.list.op': { key: 'help.view.list.op', zh: '', en: 'Filter by operation ID' },
|
|
779
|
+
'view.list.json': { key: 'help.view.list.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
746
780
|
'view.note': { key: 'help.view.note', zh: '', en: 'Use `openfeel flow review add|update|remove` to add/modify/remove review entries' },
|
|
747
781
|
'view.accept': { key: 'help.view.accept', zh: '', en: 'Accept review entry (mark as closed)' },
|
|
748
782
|
'view.accept.argrev-id': { key: 'help.view.accept.argrev-id', zh: '', en: 'Review entry ID (e.g. REV-001)' },
|
|
749
783
|
'knowledge': { key: 'help.knowledge', zh: '', en: 'Knowledge base management' },
|
|
750
784
|
'knowledge.list': { key: 'help.knowledge.list', zh: '', en: 'List knowledge entries' },
|
|
751
785
|
'knowledge.list.type': { key: 'help.knowledge.list.type', zh: '', en: 'Filter by category' },
|
|
786
|
+
'knowledge.list.json': { key: 'help.knowledge.list.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
752
787
|
'knowledge.add': { key: 'help.knowledge.add', zh: '', en: 'Add knowledge entry' },
|
|
753
788
|
'knowledge.add.argcategory': { key: 'help.knowledge.add.argcategory', zh: '', en: 'Category (architecture | patterns | troubleshooting | setup)' },
|
|
754
789
|
'knowledge.add.argtitle': { key: 'help.knowledge.add.argtitle', zh: '', en: 'Entry title' },
|
|
@@ -757,14 +792,18 @@ export const help = {
|
|
|
757
792
|
'knowledge.search.argquery': { key: 'help.knowledge.search.argquery', zh: '', en: 'Search query' },
|
|
758
793
|
'knowledge.search.limit': { key: 'help.knowledge.search.limit', zh: '', en: 'Max results (default 10)' },
|
|
759
794
|
'knowledge.search.offset': { key: 'help.knowledge.search.offset', zh: '', en: 'Result offset (default 0)' },
|
|
795
|
+
'knowledge.search.json': { key: 'help.knowledge.search.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
760
796
|
'knowledge.index': { key: 'help.knowledge.index', zh: '', en: 'Show knowledge base index overview' },
|
|
797
|
+
'knowledge.index.json': { key: 'help.knowledge.index.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
761
798
|
'knowledge.dedup': { key: 'help.knowledge.dedup', zh: '', en: 'Find similar knowledge entries (read-only suggestions; does not modify kb)' },
|
|
762
799
|
'knowledge.dedup.argcontent': { key: 'help.knowledge.dedup.argcontent', zh: '', en: 'Content to archive (read from stdin if omitted)' },
|
|
763
800
|
'knowledge.dedup.project': { key: 'help.knowledge.dedup.project', zh: '', en: 'Target project root (defaults to current directory)' },
|
|
764
801
|
'knowledge.dedup.category': { key: 'help.knowledge.dedup.category', zh: '', en: 'Check only the given category (architecture|patterns|troubleshooting|setup)' },
|
|
765
802
|
'knowledge.dedup.threshold': { key: 'help.knowledge.dedup.threshold', zh: '', en: 'Similarity threshold 0–1 (default 0.8)' },
|
|
803
|
+
'knowledge.dedup.json': { key: 'help.knowledge.dedup.json', zh: '', en: 'Output as JSON (single JSON document with schemaVersion)' },
|
|
766
804
|
'archive': { key: 'help.archive', zh: '', en: 'Archive stage (summarize output, generate summary, extract knowledge)' },
|
|
767
805
|
'archive.argstage': { key: 'help.archive.argstage', zh: '', en: 'Stage name (e.g. stage-06)' },
|
|
806
|
+
'archive.json': { key: 'help.archive.json', zh: '', en: 'Output { schemaVersion, stage, archivePath, opsCount, reviewsCount, knowledgeExtracts } as JSON' },
|
|
768
807
|
'roadmap': { key: 'help.roadmap', zh: '', en: 'Roadmap management' },
|
|
769
808
|
'roadmap.create': { key: 'help.roadmap.create', zh: '', en: 'Create roadmap (version number like 1.0, 2.0)' },
|
|
770
809
|
'roadmap.create.argversion': { key: 'help.roadmap.create.argversion', zh: '', en: 'Version number' },
|