openfeel 1.5.3 → 1.5.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.md +1 -1
- package/dist/commands/flow.d.ts.map +1 -1
- package/dist/commands/flow.js +28 -0
- package/dist/commands/flow.js.map +1 -1
- package/dist/core/config.js +2 -2
- package/dist/core/flow-manager.d.ts +24 -0
- package/dist/core/flow-manager.d.ts.map +1 -1
- package/dist/core/flow-manager.js +43 -0
- package/dist/core/flow-manager.js.map +1 -1
- package/dist/core/template-loader.d.ts.map +1 -1
- package/dist/core/template-loader.js +14 -6
- package/dist/core/template-loader.js.map +1 -1
- package/dist/core/update.d.ts.map +1 -1
- package/dist/core/update.js +10 -2
- package/dist/core/update.js.map +1 -1
- package/dsh/ADAPTER.md +3 -2
- package/dsh/README.md +2 -1
- package/dsh/lib/adapters/dashboard.js +29 -0
- package/dsh/lib/adapters/recovery.js +13 -0
- package/dsh/lib/tools/index.js +8 -1
- package/dsh/package.json +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
OpenFeel 是一个 TypeScript CLI 工具,为 AI Agent 开发提供端到端的流程治理。核心理念:**「提示词瘦身,流程入工具」** —— Agent 不靠读长文本理解流程,而是通过 `flow.json` 获取当前状态和下一步指令。
|
|
12
12
|
|
|
13
|
-
> 📦 **最新版本 v1.5.
|
|
13
|
+
> 📦 **最新版本 v1.5.4**(批次:日志摘要 + 快照 revision/stale + 指标 + 闸门滥用提示) — ① `flow log` 追加阶段摘要(最近转换 / 失败 / resume);② `feel_status`/`feel_next` 返回快照 `revision`/`stale`;③ `flow metrics` 观测日志体积;④ `plan_pending` >10 分钟提示空转。无 JSON 契约变更;发布仍为批次制。版本能力概览见 [docs/VERSIONS.md](docs/VERSIONS.md)。
|
|
14
14
|
|
|
15
15
|
> 📌 本项目基于 [AI_Prompt](https://github.com/Liuary/AI_Prompt) 开发,参考了 [OpenSpec](https://github.com/Fission-AI/OpenSpec) 等工具的设计思路。
|
|
16
16
|
|
|
@@ -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;AAuBpC,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;AAuBpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8nF1D;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAE9G"}
|
package/dist/commands/flow.js
CHANGED
|
@@ -471,6 +471,18 @@ export function registerFlowCommand(program) {
|
|
|
471
471
|
return;
|
|
472
472
|
}
|
|
473
473
|
console.log(store.summary(lang));
|
|
474
|
+
// v1.5.4:观测代理指标(人类输出;--json 键集不变)
|
|
475
|
+
const mgr = new FlowManager(process.cwd());
|
|
476
|
+
if (mgr.isLoaded()) {
|
|
477
|
+
const logStats = mgr.getLogStats();
|
|
478
|
+
const data = mgr.getData();
|
|
479
|
+
const active = data ? Object.values(data.stages).filter((stage) => stage.phase !== 'done').length : 0;
|
|
480
|
+
const en = lang === 'en';
|
|
481
|
+
console.log('');
|
|
482
|
+
console.log(en ? '── Observability ──' : '── 观测指标 ──');
|
|
483
|
+
console.log(` ${en ? 'flow.log' : 'flow.log'}: ${logStats.entries} entries / ${logStats.bytes} bytes`);
|
|
484
|
+
console.log(` ${en ? 'active stages' : '活跃阶段'}: ${active}`);
|
|
485
|
+
}
|
|
474
486
|
});
|
|
475
487
|
// flow phases — 自描述:列出全部合法 phase 与运行时转移表
|
|
476
488
|
flow
|
|
@@ -1416,6 +1428,22 @@ export function registerFlowCommand(program) {
|
|
|
1416
1428
|
}
|
|
1417
1429
|
console.log('');
|
|
1418
1430
|
}
|
|
1431
|
+
// v1.5.4:阶段摘要(从最近 200 条日志派生;人类输出,不改 --json 契约)
|
|
1432
|
+
const activeStage = data.pipeline.current.stage
|
|
1433
|
+
|| Object.entries(data.stages).find(([, stage]) => stage.phase !== 'done')?.[0]
|
|
1434
|
+
|| '';
|
|
1435
|
+
if (activeStage !== '') {
|
|
1436
|
+
const s = mgr.getStageLogSummary(activeStage);
|
|
1437
|
+
const en = lang === 'en';
|
|
1438
|
+
console.log(en ? `── Stage summary: ${activeStage} ──` : `── 阶段摘要:${activeStage} ──`);
|
|
1439
|
+
if (s.lastTransition !== null) {
|
|
1440
|
+
console.log(` ${en ? 'last transition' : '最近转换'}: ${s.lastTransition.from} → ${s.lastTransition.to} @ ${s.lastTransition.time}`);
|
|
1441
|
+
}
|
|
1442
|
+
if (s.lastError !== null) {
|
|
1443
|
+
console.log(` ${en ? 'last failure' : '最近失败'}: ${s.lastError.phase} @ ${s.lastError.time}`);
|
|
1444
|
+
}
|
|
1445
|
+
console.log(` ${en ? 'resume count' : 'resume 次数'}: ${s.resumeCount}`);
|
|
1446
|
+
}
|
|
1419
1447
|
});
|
|
1420
1448
|
// flow review — 审查子命令组
|
|
1421
1449
|
const reviewCmd = flow
|