openfeel 1.3.1 → 1.3.2
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/core/config.js +2 -2
- package/dist/core/template-loader.d.ts.map +1 -1
- package/dist/core/template-loader.js +15 -6
- package/dist/core/template-loader.js.map +1 -1
- package/dist/core/update.d.ts.map +1 -1
- package/dist/core/update.js +11 -2
- package/dist/core/update.js.map +1 -1
- package/dsh/ADAPTER.md +10 -4
- package/dsh/README.md +41 -5
- package/dsh/cordis.patch.yml +14 -0
- package/dsh/lib/guard.js +357 -0
- package/dsh/lib/index.js +53 -7
- package/dsh/lib/surface/prompt.js +78 -2
- 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.3.
|
|
13
|
+
> 📦 **最新版本 v1.3.2**(DSH 激活与写入门禁) — 新增 `ctx.tools.guard` 写入门禁与非 OpenFeel 工作区 bootstrap:未初始化时默认 `enforce=always` 会拒绝文件写入,直到 `openfeel init`;`project` / `off` 可 opt-out。版本能力概览见 [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
|
|
package/dist/core/config.js
CHANGED
|
@@ -349,7 +349,7 @@ const CONFIG_TEMPLATE_ZH = `# .openfeel/config.yaml
|
|
|
349
349
|
# 本文件为所有阶段提供默认值,status.md 可覆盖
|
|
350
350
|
|
|
351
351
|
meta:
|
|
352
|
-
version: 1.3.
|
|
352
|
+
version: 1.3.2
|
|
353
353
|
project: OpenFeel
|
|
354
354
|
tech_stack: TypeScript
|
|
355
355
|
|
|
@@ -405,7 +405,7 @@ const CONFIG_TEMPLATE_EN = `# .openfeel/config.yaml
|
|
|
405
405
|
# This file provides defaults for all stages; status.md can override
|
|
406
406
|
|
|
407
407
|
meta:
|
|
408
|
-
version: 1.3.
|
|
408
|
+
version: 1.3.2
|
|
409
409
|
project: OpenFeel
|
|
410
410
|
tech_stack: TypeScript
|
|
411
411
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-loader.d.ts","sourceRoot":"","sources":["../../src/core/template-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkqEH;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAWvE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGnD;AAED,yCAAyC;AACzC,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC;AAEvC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,MAAM,CAS7E;
|
|
1
|
+
{"version":3,"file":"template-loader.d.ts","sourceRoot":"","sources":["../../src/core/template-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkqEH;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAWvE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGnD;AAED,yCAAyC;AACzC,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC;AAEvC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,MAAM,CAS7E;AA0oMD,eAAO,MAAM,kBAAkB,EAAE,MAAqC,CAAC;AAEvE;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAO/E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAWnF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAG3D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAO7E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGzD"}
|
|
@@ -2019,7 +2019,7 @@ Version progression must be prudent, using the four-level X.Y.Z.W version number
|
|
|
2019
2019
|
| Level 4 (W) | Feature detail | Independently committed feature or submodule |
|
|
2020
2020
|
|
|
2021
2021
|
When Feel starts a new version, it defaults to incrementing the fourth level (W+1), unless the user explicitly specifies otherwise.
|
|
2022
|
-
The OpenFeel framework has released the official v1.0.x (currently v1.3.
|
|
2022
|
+
The OpenFeel framework has released the official v1.0.x (currently v1.3.2). After deploying the global constraints via openfeel setup, new projects set their own starting version number as needed.
|
|
2023
2023
|
|
|
2024
2024
|
### Module Manuals
|
|
2025
2025
|
|
|
@@ -2180,7 +2180,7 @@ AI Agent 行为约束与编码规范。本文件为永久性约束,适用于
|
|
|
2180
2180
|
| 四级(W) | 功能细节 | 独立提交的功能或子模块 |
|
|
2181
2181
|
|
|
2182
2182
|
Feel 启动新版本时默认使用四级版本递增(W+1),除非用户明确指定。
|
|
2183
|
-
OpenFeel 框架已发布正式版 v1.0.x(当前 v1.3.
|
|
2183
|
+
OpenFeel 框架已发布正式版 v1.0.x(当前 v1.3.2)。新项目经 openfeel setup 部署全局约束后,按自身需求设定起始版本号。
|
|
2184
2184
|
|
|
2185
2185
|
### 模块手册
|
|
2186
2186
|
|
|
@@ -4421,7 +4421,7 @@ Skill 加载后,根据步骤 3 的匹配结果决定是否追加提示:
|
|
|
4421
4421
|
`,
|
|
4422
4422
|
'openfeel-cli-usage': `---
|
|
4423
4423
|
name: openfeel-cli-usage
|
|
4424
|
-
description: OpenFeel CLI 命令用法参考:命令清单与关键参数、15 个 phase 枚举与转移表、stageId 命名与目录映射约定、v1.1.2 新增能力(自描述/可纠错、--json 结构化输出、health --fix、scheme draft、knowledge dedup、纠正清理侧命令面)、v1.1.4 新增能力(checkpoint 选择性恢复 --stage/--dry-run、flow stage reset 精准复位、故障恢复路径)、v1.1.5 新增能力(setup --check [--json] 诊断 / 被动部署提示)、v1.1.6 新增能力(Claude Code 适配器 \`--tools claude\` / settings 注入)、v1.1.7 新增能力(双模式工作流 workflow_mode:flow mode 只读查询 / flow phases --mode 模式分节 / plan stage add --workflow-mode / stage set --workflow-mode / config set --sync-stages --stage)、v1.2.0 新增能力(需求流转命令组 \`openfeel req\`:需求 7 状态与 10 子命令 / 认领协议;flow.json 版本分片归档 \`flow archive\`:\`<version>\` / \`list\` / \`show\`)、v1.2.1 新增能力(需求拆分 \`req split\` / 三模式 \`full/fast/general\` / 审查档位 \`--review-tier\` / 通用工作者 \`openfeel-explorer\` / 可观测性字段 / 模型默认值统一与部署非破坏性)、v1.2.2 新增能力(flow next 调度决策 / 全局 --project / 13 读命令 --json 与 33 成功出口·34 注册选项 / 错误封装 code+kind+errorKind / --version --json / flow archive 判据明细 / archive <stage> --json / reviewTier 消歧)、v1.2.3 修复(并发 JSON 退出统一 / --review-tier help 文案订正 / req 过滤单点化 / 锁超时 E2E 测试钩子)、v1.2.4 收口(archive <stage> 覆盖保护 + --force / plan stage list·model list|get·flow retry·lint i18n|kb·roadmap show --json / config get --all / 40 成功出口·41 注册选项)、v1.3.0(DSH 适配器单包分发 / setup --tools dsh / README 版本能力概览迁出)、v1.3.1 修复(setup --tools dsh 的 pnpm frozen-lockfile
|
|
4424
|
+
description: OpenFeel CLI 命令用法参考:命令清单与关键参数、15 个 phase 枚举与转移表、stageId 命名与目录映射约定、v1.1.2 新增能力(自描述/可纠错、--json 结构化输出、health --fix、scheme draft、knowledge dedup、纠正清理侧命令面)、v1.1.4 新增能力(checkpoint 选择性恢复 --stage/--dry-run、flow stage reset 精准复位、故障恢复路径)、v1.1.5 新增能力(setup --check [--json] 诊断 / 被动部署提示)、v1.1.6 新增能力(Claude Code 适配器 \`--tools claude\` / settings 注入)、v1.1.7 新增能力(双模式工作流 workflow_mode:flow mode 只读查询 / flow phases --mode 模式分节 / plan stage add --workflow-mode / stage set --workflow-mode / config set --sync-stages --stage)、v1.2.0 新增能力(需求流转命令组 \`openfeel req\`:需求 7 状态与 10 子命令 / 认领协议;flow.json 版本分片归档 \`flow archive\`:\`<version>\` / \`list\` / \`show\`)、v1.2.1 新增能力(需求拆分 \`req split\` / 三模式 \`full/fast/general\` / 审查档位 \`--review-tier\` / 通用工作者 \`openfeel-explorer\` / 可观测性字段 / 模型默认值统一与部署非破坏性)、v1.2.2 新增能力(flow next 调度决策 / 全局 --project / 13 读命令 --json 与 33 成功出口·34 注册选项 / 错误封装 code+kind+errorKind / --version --json / flow archive 判据明细 / archive <stage> --json / reviewTier 消歧)、v1.2.3 修复(并发 JSON 退出统一 / --review-tier help 文案订正 / req 过滤单点化 / 锁超时 E2E 测试钩子)、v1.2.4 收口(archive <stage> 覆盖保护 + --force / plan stage list·model list|get·flow retry·lint i18n|kb·roadmap show --json / config get --all / 40 成功出口·41 注册选项)、v1.3.0(DSH 适配器单包分发 / setup --tools dsh / README 版本能力概览迁出)、v1.3.1 修复(setup --tools dsh 的 pnpm frozen-lockfile 部署失败)、v1.3.2(DSH 写入门禁 \`ctx.tools.guard\` + 非项目 bootstrap)。当需要查询 CLI 命令、参数、phase、stageId、阶段命名时加载。
|
|
4425
4425
|
---
|
|
4426
4426
|
|
|
4427
4427
|
# OpenFeel CLI 用法参考
|
|
@@ -4433,7 +4433,7 @@ description: OpenFeel CLI 命令用法参考:命令清单与关键参数、15
|
|
|
4433
4433
|
- 与 \`openfeel-tool-usage\` 协同:工具选择规范见该 skill;本 skill 补充 CLI 命令细节。
|
|
4434
4434
|
- 正文以**能力名**叙述;平台差异见 \`### opencode 适配器\` / \`### Claude Code 适配器\` 两小节。
|
|
4435
4435
|
|
|
4436
|
-
> 本文档为 v1.3.
|
|
4436
|
+
> 本文档为 v1.3.2 快照;命令/参数细节以 \`openfeel <cmd> --help\`(本仓执行)实时输出为准(CLI 演进后本文档可能滞后)。
|
|
4437
4437
|
>
|
|
4438
4438
|
> ⚠️ **本仓自举**:本仓(openfeel 源码仓库)开发/执行时请用 \`node bin/openfeel.js <cmd>\`;安装后使用 \`openfeel <cmd>\`。
|
|
4439
4439
|
|
|
@@ -4492,6 +4492,15 @@ description: OpenFeel CLI 命令用法参考:命令清单与关键参数、15
|
|
|
4492
4492
|
- **错误映射**:预检 / 用法 / profile → \`INVALID_ARGUMENT\`(refusal/1,\`detail.reason=dsh-*\`);备份 / pnpm install → \`INTERNAL_ERROR\`(internal/3,\`dsh-backup-failed\` / \`dsh-pnpm-install-failed\`)。不新增 CLI 错误码。
|
|
4493
4493
|
- **单包**:不发布独立 \`openfeel-dsh\`;\`dsh/\` 随 \`openfeel\` npm 包分发,默认不部署。README 版本能力概览迁至 \`docs/VERSIONS.md\`。
|
|
4494
4494
|
|
|
4495
|
+
## v1.3.2(stage-103)
|
|
4496
|
+
|
|
4497
|
+
> 补丁版本:DSH 适配器激活与写入门禁。CLI JSON 契约保持 **13 错误码 / 40 成功出口 / 41 注册选项**,命令面不变。
|
|
4498
|
+
|
|
4499
|
+
- **DSH 写入门禁(适配器侧)**:\`ctx.tools.guard()\` 同步拒绝 \`edit\` / \`write\` / \`apply_patch\` / \`str_replace_editor\`;\`.openfeel/**\` 流程产物任意阶段可写(\`flow.json\` / \`status.md\` 除外),外部源码要求 \`exec_running\`。
|
|
4500
|
+
- **默认 \`enforce=always\`**:无 \`.openfeel\` 的工作区也会拒绝文件写入,防止绕过 \`openfeel init\`;\`project\` / \`off\` 可 opt-out。
|
|
4501
|
+
- **非项目 bootstrap**:\`activation=auto\` 时未初始化工作区注入短提示(只读可进行;写文件需 init 或改 enforce),不再静默。
|
|
4502
|
+
- **\`pwsh\` 边界**:默认不守,仍是显式逃生通道;\`guardShell\` 留到后续。
|
|
4503
|
+
|
|
4495
4504
|
## v1.2.4 收口(stage-100)
|
|
4496
4505
|
|
|
4497
4506
|
> 补丁版本:DSH ACTION-GUIDE A1~A5 收口。JSON 契约升级为 **40 成功出口 / 41 注册选项**;退出码 0/1/2/3 语义不变。本仓收口基线 **75 文件 / 21 阶段**。
|
|
@@ -8311,7 +8320,7 @@ Version progression must be prudent, using the four-level X.Y.Z.W version number
|
|
|
8311
8320
|
| Level 4 (W) | Feature detail | Independently committed feature or submodule |
|
|
8312
8321
|
|
|
8313
8322
|
When Feel starts a new version, it defaults to incrementing the fourth level (W+1), unless the user explicitly specifies otherwise.
|
|
8314
|
-
The OpenFeel framework has released the official v1.0.x (currently v1.3.
|
|
8323
|
+
The OpenFeel framework has released the official v1.0.x (currently v1.3.2). After deploying the global constraints via openfeel setup, new projects set their own starting version number as needed.
|
|
8315
8324
|
|
|
8316
8325
|
### Module Manuals
|
|
8317
8326
|
|
|
@@ -8475,7 +8484,7 @@ Claude Code 的权限与工具可用性由 subagent 的 \`tools\` 白名单与 \
|
|
|
8475
8484
|
| 四级(W) | 功能细节 | 独立提交的功能或子模块 |
|
|
8476
8485
|
|
|
8477
8486
|
Feel 启动新版本时默认使用四级版本递增(W+1),除非用户明确指定。
|
|
8478
|
-
OpenFeel 框架已发布正式版 v1.0.x(当前 v1.3.
|
|
8487
|
+
OpenFeel 框架已发布正式版 v1.0.x(当前 v1.3.2)。新项目经 openfeel setup 部署全局约束后,按自身需求设定起始版本号。
|
|
8479
8488
|
|
|
8480
8489
|
### 模块手册
|
|
8481
8490
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-loader.js","sourceRoot":"","sources":["../../src/core/template-loader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"template-loader.js","sourceRoot":"","sources":["../../src/core/template-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/core/update.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAyD,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAIxG,OAAO,EAWL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAE3B,WAAW;AACX,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAID,kBAAkB;AAClB,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,sBAAsB;AACtB,eAAO,MAAM,cAAc,EAAE,SAAS,EAsBrC,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBrD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAcjF;AAMD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/core/update.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAyD,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAIxG,OAAO,EAWL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAE3B,WAAW;AACX,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAID,kBAAkB;AAClB,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,sBAAsB;AACtB,eAAO,MAAM,cAAc,EAAE,SAAS,EAsBrC,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBrD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAcjF;AAMD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqtEpD,CAAC;AAcF,4BAA4B;AAC5B,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAiH3E;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,aAAa,GACrB,aAAa,CAEf;AAqBD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,WAAW,EAAE,MAAM,EACnB,aAAa,GAAE,MAAM,EAAiB,EACtC,IAAI,GAAE,OAAO,GAAG,IAAc,EAC9B,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CAAE,GAC1E,YAAY,CAqPd"}
|
package/dist/core/update.js
CHANGED
|
@@ -405,7 +405,7 @@ Skill 加载后,根据步骤 3 的匹配结果决定是否追加提示:
|
|
|
405
405
|
`,
|
|
406
406
|
'openfeel-cli-usage': `---
|
|
407
407
|
name: openfeel-cli-usage
|
|
408
|
-
description: OpenFeel CLI 命令用法参考:命令清单与关键参数、15 个 phase 枚举与转移表、stageId 命名与目录映射约定、v1.1.2 新增能力(自描述/可纠错、--json 结构化输出、health --fix、scheme draft、knowledge dedup、纠正清理侧命令面)、v1.1.4 新增能力(checkpoint 选择性恢复 --stage/--dry-run、flow stage reset 精准复位、故障恢复路径)、v1.1.5 新增能力(setup --check [--json] 诊断 / 被动部署提示)、v1.1.6 新增能力(Claude Code 适配器 \`--tools claude\` / settings 注入)、v1.1.7 新增能力(双模式工作流 workflow_mode:flow mode 只读查询 / flow phases --mode 模式分节 / plan stage add --workflow-mode / stage set --workflow-mode / config set --sync-stages --stage)、v1.2.0 新增能力(需求流转命令组 \`openfeel req\`:需求 7 状态与 10 子命令 / 认领协议;flow.json 版本分片归档 \`flow archive\`:\`<version>\` / \`list\` / \`show\`)、v1.2.1 新增能力(需求拆分 \`req split\` / 三模式 \`full/fast/general\` / 审查档位 \`--review-tier\` / 通用工作者 \`openfeel-explorer\` / 可观测性字段 / 模型默认值统一与部署非破坏性)、v1.2.2 新增能力(flow next 调度决策 / 全局 --project / 13 读命令 --json 与 33 成功出口·34 注册选项 / 错误封装 code+kind+errorKind / --version --json / flow archive 判据明细 / archive <stage> --json / reviewTier 消歧)、v1.2.3 修复(并发 JSON 退出统一 / --review-tier help 文案订正 / req 过滤单点化 / 锁超时 E2E 测试钩子)、v1.2.4 收口(archive <stage> 覆盖保护 + --force / plan stage list·model list|get·flow retry·lint i18n|kb·roadmap show --json / config get --all / 40 成功出口·41 注册选项)、v1.3.0(DSH 适配器单包分发 / setup --tools dsh / README 版本能力概览迁出)、v1.3.1 修复(setup --tools dsh 的 pnpm frozen-lockfile
|
|
408
|
+
description: OpenFeel CLI 命令用法参考:命令清单与关键参数、15 个 phase 枚举与转移表、stageId 命名与目录映射约定、v1.1.2 新增能力(自描述/可纠错、--json 结构化输出、health --fix、scheme draft、knowledge dedup、纠正清理侧命令面)、v1.1.4 新增能力(checkpoint 选择性恢复 --stage/--dry-run、flow stage reset 精准复位、故障恢复路径)、v1.1.5 新增能力(setup --check [--json] 诊断 / 被动部署提示)、v1.1.6 新增能力(Claude Code 适配器 \`--tools claude\` / settings 注入)、v1.1.7 新增能力(双模式工作流 workflow_mode:flow mode 只读查询 / flow phases --mode 模式分节 / plan stage add --workflow-mode / stage set --workflow-mode / config set --sync-stages --stage)、v1.2.0 新增能力(需求流转命令组 \`openfeel req\`:需求 7 状态与 10 子命令 / 认领协议;flow.json 版本分片归档 \`flow archive\`:\`<version>\` / \`list\` / \`show\`)、v1.2.1 新增能力(需求拆分 \`req split\` / 三模式 \`full/fast/general\` / 审查档位 \`--review-tier\` / 通用工作者 \`openfeel-explorer\` / 可观测性字段 / 模型默认值统一与部署非破坏性)、v1.2.2 新增能力(flow next 调度决策 / 全局 --project / 13 读命令 --json 与 33 成功出口·34 注册选项 / 错误封装 code+kind+errorKind / --version --json / flow archive 判据明细 / archive <stage> --json / reviewTier 消歧)、v1.2.3 修复(并发 JSON 退出统一 / --review-tier help 文案订正 / req 过滤单点化 / 锁超时 E2E 测试钩子)、v1.2.4 收口(archive <stage> 覆盖保护 + --force / plan stage list·model list|get·flow retry·lint i18n|kb·roadmap show --json / config get --all / 40 成功出口·41 注册选项)、v1.3.0(DSH 适配器单包分发 / setup --tools dsh / README 版本能力概览迁出)、v1.3.1 修复(setup --tools dsh 的 pnpm frozen-lockfile 部署失败)、v1.3.2(DSH 写入门禁 \`ctx.tools.guard\` + 非项目 bootstrap)。当需要查询 CLI 命令、参数、phase、stageId、阶段命名时加载。
|
|
409
409
|
---
|
|
410
410
|
|
|
411
411
|
# OpenFeel CLI 用法参考
|
|
@@ -417,7 +417,7 @@ description: OpenFeel CLI 命令用法参考:命令清单与关键参数、15
|
|
|
417
417
|
- 与 \`openfeel-tool-usage\` 协同:工具选择规范见该 skill;本 skill 补充 CLI 命令细节。
|
|
418
418
|
- 正文以**能力名**叙述;平台差异见 \`### opencode 适配器\` / \`### Claude Code 适配器\` 两小节。
|
|
419
419
|
|
|
420
|
-
> 本文档为 v1.3.
|
|
420
|
+
> 本文档为 v1.3.2 快照;命令/参数细节以 \`openfeel <cmd> --help\`(本仓执行)实时输出为准(CLI 演进后本文档可能滞后)。
|
|
421
421
|
>
|
|
422
422
|
> ⚠️ **本仓自举**:本仓(openfeel 源码仓库)开发/执行时请用 \`node bin/openfeel.js <cmd>\`;安装后使用 \`openfeel <cmd>\`。
|
|
423
423
|
|
|
@@ -476,6 +476,15 @@ description: OpenFeel CLI 命令用法参考:命令清单与关键参数、15
|
|
|
476
476
|
- **错误映射**:预检 / 用法 / profile → \`INVALID_ARGUMENT\`(refusal/1,\`detail.reason=dsh-*\`);备份 / pnpm install → \`INTERNAL_ERROR\`(internal/3,\`dsh-backup-failed\` / \`dsh-pnpm-install-failed\`)。不新增 CLI 错误码。
|
|
477
477
|
- **单包**:不发布独立 \`openfeel-dsh\`;\`dsh/\` 随 \`openfeel\` npm 包分发,默认不部署。README 版本能力概览迁至 \`docs/VERSIONS.md\`。
|
|
478
478
|
|
|
479
|
+
## v1.3.2(stage-103)
|
|
480
|
+
|
|
481
|
+
> 补丁版本:DSH 适配器激活与写入门禁。CLI JSON 契约保持 **13 错误码 / 40 成功出口 / 41 注册选项**,命令面不变。
|
|
482
|
+
|
|
483
|
+
- **DSH 写入门禁(适配器侧)**:\`ctx.tools.guard()\` 同步拒绝 \`edit\` / \`write\` / \`apply_patch\` / \`str_replace_editor\`;\`.openfeel/**\` 流程产物任意阶段可写(\`flow.json\` / \`status.md\` 除外),外部源码要求 \`exec_running\`。
|
|
484
|
+
- **默认 \`enforce=always\`**:无 \`.openfeel\` 的工作区也会拒绝文件写入,防止绕过 \`openfeel init\`;\`project\` / \`off\` 可 opt-out。
|
|
485
|
+
- **非项目 bootstrap**:\`activation=auto\` 时未初始化工作区注入短提示(只读可进行;写文件需 init 或改 enforce),不再静默。
|
|
486
|
+
- **\`pwsh\` 边界**:默认不守,仍是显式逃生通道;\`guardShell\` 留到后续。
|
|
487
|
+
|
|
479
488
|
## v1.2.4 收口(stage-100)
|
|
480
489
|
|
|
481
490
|
> 补丁版本:DSH ACTION-GUIDE A1~A5 收口。JSON 契约升级为 **40 成功出口 / 41 注册选项**;退出码 0/1/2/3 语义不变。本仓收口基线 **75 文件 / 21 阶段**。
|
package/dist/core/update.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/core/update.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/core/update.ts"],"names":[],"mappings":"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"}
|
package/dsh/ADAPTER.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# DSH 适配器
|
|
2
2
|
|
|
3
|
-
> ✅ 已实现(OpenFeel v1.3.
|
|
3
|
+
> ✅ 已实现(OpenFeel v1.3.2 / DSH 0.2.0-rc.2+;硬门禁依赖 `ctx.tools.guard`,缺失时降级为提示)。
|
|
4
4
|
|
|
5
5
|
- **安装(推荐,单包)**:`npm i -g openfeel@latest` → `openfeel setup --tools dsh`
|
|
6
6
|
(写入 DSH profile 的 `link:<openfeelRoot>/dsh` 依赖与 `dsh.profile.bundles`,按需 `pnpm install`),
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
- **契约**:CLI 的 `--json` 出口以 [`docs/json-contract.md`](https://github.com/Liuary/OpenFeel/blob/master/docs/json-contract.md) 为**单一权威**
|
|
16
16
|
(v1.3.0 起仍 40 个成功出口);本适配器只消费、不重实现。
|
|
17
17
|
- **升级**:`npm i -g openfeel@latest` → 重启 DSH。适配器版本要求见 `package.json`
|
|
18
|
-
的 `openfeel.requiresCli`(≥1.3.
|
|
18
|
+
的 `openfeel.requiresCli`(≥1.3.2)。
|
|
19
19
|
|
|
20
20
|
## 设计边界
|
|
21
21
|
|
|
@@ -28,11 +28,16 @@ OpenFeel 采用「核心层 + 适配器层」架构(`claude/`、`kilo/`、`.op
|
|
|
28
28
|
- **不解析**中文文本:优先消费 `--json`;失败读 `error.kind` / `error.code` / `error.detail`。
|
|
29
29
|
- **不 shadow** 既有能力:DSH 已有的 `subagent` / `workflow` / `todo_write` 照常使用;
|
|
30
30
|
`feel_next` 只给「该谁做」,实际派发交给 DSH。
|
|
31
|
+
- **写入门禁**(v1.3.2):用 DSH `ctx.tools.guard()` 同步拒绝 `edit` / `write` / `apply_patch` /
|
|
32
|
+
`str_replace_editor`;`.openfeel/**` 流程产物任意阶段可写(flow.json / `status.md` 除外),
|
|
33
|
+
`.openfeel/` 外源码要求 `exec_running`。`pwsh` / `bash` 默认不守,是显式逃生通道;
|
|
34
|
+
`enforce=always`(默认)对非 OpenFeel 工作区也拦截,可用 `project` / `off` opt-out。
|
|
31
35
|
|
|
32
36
|
## 目录
|
|
33
37
|
|
|
34
38
|
| 路径 | 内容 |
|
|
35
39
|
|---|---|
|
|
40
|
+
| `lib/guard.js` | 写入门禁:`enforce`、`.openfeel/**` 产物区、`exec_running`、apply_patch 目标解析 |
|
|
36
41
|
| [`ACTION-GUIDE.md`](ACTION-GUIDE.md) | **给 OpenFeel 本体的操作指南**:剩余 5 项待办、验收标准、边界约定 |
|
|
37
42
|
| `lib/index.js` | 插件入口(`name` / `inject` / `apply` / `normalizeConfig`) |
|
|
38
43
|
| `lib/adapters/cli.js` | CLI 执行器:可执行文件解析、UTF-8/无色/无日志、退出码与 envelope 语义 |
|
|
@@ -42,7 +47,7 @@ OpenFeel 采用「核心层 + 适配器层」架构(`claude/`、`kilo/`、`.op
|
|
|
42
47
|
| `lib/tools/shared.js` | 输出封装、参数编译、渲染 |
|
|
43
48
|
| `lib/surface/command.js` | `/feel` 人类命令 |
|
|
44
49
|
| `lib/surface/prompt.js` | `<feel_mode>` 系统提示段 |
|
|
45
|
-
| `test/` | 契约 / 行为 / 真实注册表
|
|
50
|
+
| `test/` | 契约 / 行为 / 门禁 / 真实注册表 四套验证(42 + 83 + 36 + 10 = 171 断言) |
|
|
46
51
|
| `docs/compat/` | OpenFeel v1.2.1 逆向兼容性契约(6 份;仅供回归参照,权威以 [docs/json-contract.md](https://github.com/Liuary/OpenFeel/blob/master/docs/json-contract.md) 为准) |
|
|
47
52
|
|
|
48
53
|
## 验证
|
|
@@ -50,7 +55,8 @@ OpenFeel 采用「核心层 + 适配器层」架构(`claude/`、`kilo/`、`.op
|
|
|
50
55
|
```bash
|
|
51
56
|
cd dsh
|
|
52
57
|
node test/contract.js # 42 — DSH schema 契约(真实 assertSupportedJsonSchema)
|
|
53
|
-
node test/verify.js #
|
|
58
|
+
node test/verify.js # 83 — 行为(真实 CLI + 真实 .openfeel 副本)
|
|
59
|
+
node test/guard.js # 36 — 写入门禁(fake ToolExecution + 临时工作区)
|
|
54
60
|
node test/integration.js # 10 — 真实 cordis + 真实 ToolRuntime 挂载
|
|
55
61
|
```
|
|
56
62
|
|
package/dsh/README.md
CHANGED
|
@@ -73,9 +73,13 @@ Windows 上的 `openfeel.cmd` 垫片。
|
|
|
73
73
|
commandPrefix: [] # 从源码跑时:[node, <repo>/bin/openfeel.js]
|
|
74
74
|
timeoutMs: 120000 # 单次调用超时
|
|
75
75
|
log: false # 是否写 ~/.openfeel/cli/logs/(默认关闭,只读沙箱更安全)
|
|
76
|
-
autoPrompt: true #
|
|
76
|
+
autoPrompt: true # 是否注入系统提示段
|
|
77
77
|
language: zh-CN # 提示段语言:zh-CN | en
|
|
78
78
|
cwd: null # 兜底工作目录(默认取会话工作区)
|
|
79
|
+
activation: auto # auto=项目→完整纪律/非项目→bootstrap;always=完整纪律;off=不注入
|
|
80
|
+
enforce: always # always=所有工作区守门禁;project=仅项目;off=完全不注册 guard
|
|
81
|
+
allowGeneral: true # general 需求 in_progress 且无阶段时放行源码写入
|
|
82
|
+
# mutatingTools 默认 [edit, write, apply_patch, str_replace_editor];pwsh 默认不守
|
|
79
83
|
```
|
|
80
84
|
|
|
81
85
|
`normalizeConfig` 对非法值做安全回落(如 `timeoutMs: -5` → `120000`)。
|
|
@@ -184,24 +188,48 @@ provider 桥接层会把「只有 description、没有 type」的节点转成 `t
|
|
|
184
188
|
|
|
185
189
|
段落正文每次装配时探测 `.openfeel/` 是否存在,因此提示会随工作区状态变化。
|
|
186
190
|
|
|
191
|
+
`activation`:
|
|
192
|
+
|
|
193
|
+
- `auto`(默认):已初始化 → 完整 `<feel_mode>`;未初始化 → 短 bootstrap(只读可进行;写文件按 `enforce` 说明)。
|
|
194
|
+
- `always`:所有工作区都注入完整 `<feel_mode>`(未初始化时 `detected:false`,不会误报已初始化)。
|
|
195
|
+
- `off`:不注入任何提示(写入门禁仍可独立开启)。
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## 6.5 写入门禁(v1.3.2)
|
|
200
|
+
|
|
201
|
+
适配器在 `apply()` 中用 DSH 的 `ctx.tools.guard()` 注册同步守卫(`dsh/lib/guard.js`):
|
|
202
|
+
|
|
203
|
+
- **只守** `edit` / `write` / `apply_patch` / `str_replace_editor`。`feel_*`、`pwsh`、`read`、`todo_write` 等不受影响。
|
|
204
|
+
- `.openfeel/**` 是**流程产物区**:plan / scheme / review 产物在任意阶段可写;但 `.openfeel/flow.json` 与 `.openfeel/**/status.md` **始终拒绝**(用 `feel_*`)。受保护路径按**会话工作区 `<cwd>`** 判定;执行阶段仍可编辑其他项目的 `.openfeel/`(不做跨项目全局保护)。
|
|
205
|
+
- `.openfeel/` 外的源码/文档:要求存在 `exec_running` 阶段;无活跃阶段或相位不符时拒绝,消息带 phase 与 `feel_flow action=advance` 建议。
|
|
206
|
+
- 无 `.openfeel/`:`enforce=always` 拒绝所有文件写入(含 `.openfeel/plan`,防止绕过 init);`project`/`off` 放行。
|
|
207
|
+
- `apply_patch` 解析所有 patch 头(`*** Update/Add/Delete File:`、`*** Move to:`、`---/+++`);全部目标在 `.openfeel/**` 才内部放行,混合/无头保守拒绝。
|
|
208
|
+
- `enforce=off` **完全不注册 guard**(连 flow.json/status.md 也不拦)。
|
|
209
|
+
- `ctx.tools.guard` 缺失时记警告并降级;`ctx.effect` 负责 disposer,避免 HMR 累积。
|
|
210
|
+
|
|
211
|
+
**逃生通道**:`pwsh` / `bash` 默认不守,仍可直接写盘;`enforce=always` 对非 OpenFeel 工作区较激进,可用 `project` / `off` opt-out。
|
|
212
|
+
|
|
187
213
|
---
|
|
188
214
|
|
|
189
215
|
## 7. 验证
|
|
190
216
|
|
|
191
|
-
|
|
217
|
+
四套测试,全部本地可跑:
|
|
192
218
|
|
|
193
219
|
```powershell
|
|
194
220
|
cd plugin
|
|
195
221
|
node test/contract.js # DSH 契约:schema 子集、无 type:null、参数契约(42 项)
|
|
196
|
-
node test/verify.js # 行为:真实 CLI + 真实 .openfeel 副本(
|
|
222
|
+
node test/verify.js # 行为:真实 CLI + 真实 .openfeel 副本(83 项)
|
|
223
|
+
node test/guard.js # 写入门禁:fake ToolExecution + 临时工作区(36 项)
|
|
197
224
|
node test/integration.js # 真实注册表:真 cordis + 真 ToolRuntime 挂载(10 项)
|
|
198
225
|
```
|
|
199
226
|
|
|
200
227
|
- `contract.js` 用宿主 asar 提取出的**真实** `assertSupportedJsonSchema`。
|
|
201
228
|
- `verify.js` 对真实 OpenFeel 项目做只读校验,**所有写操作只打在 `os.tmpdir()` 副本上**,并断言原项目 `revision` 未被改动。
|
|
229
|
+
- `guard.js` 覆盖 `off/project/always`、`.openfeel/**` 产物、`exec_running`、general 需求、apply_patch 混合/无头/Move 同块、受保护路径、bootstrap 文案等 36 条。
|
|
202
230
|
- `integration.js` 构造真实 Cordis 上下文 + 真实 `ToolRuntime`,调用适配器 `apply()`,断言 13 个工具真的完成注册与投影。
|
|
203
231
|
|
|
204
|
-
|
|
232
|
+
依赖提取:`contract.js` / `integration.js` 默认读 `%TEMP%\dsh-asar\dsh\node_modules\@deepseek-ai`(从宿主
|
|
205
233
|
`app.asar` 解出的包)。缺失时 `contract.js` / `integration.js` 会跳过并说明。
|
|
206
234
|
|
|
207
235
|
---
|
|
@@ -215,6 +243,7 @@ dsh/ # OpenFeel 仓库内的一等适配器目录
|
|
|
215
243
|
├── cordis.patch.yml # 一行 insert:id=openfeel-feel, name=openfeel-dsh
|
|
216
244
|
├── lib/
|
|
217
245
|
│ ├── index.js # 插件入口:name / inject / apply / normalizeConfig
|
|
246
|
+
│ ├── guard.js # 写入门禁:enforce / .openfeel 产物区 / exec_running
|
|
218
247
|
│ ├── adapters/
|
|
219
248
|
│ │ ├── cli.js # CLI 执行器:可执行文件解析、UTF-8/无色/无日志、退出码语义
|
|
220
249
|
│ │ ├── workspace.js # 会话工作区 = 项目根(与 CLI 一致,**不回溯**)
|
|
@@ -229,6 +258,7 @@ dsh/ # OpenFeel 仓库内的一等适配器目录
|
|
|
229
258
|
└── test/
|
|
230
259
|
├── contract.js # DSH schema 契约
|
|
231
260
|
├── verify.js # 行为验证(真实 CLI)
|
|
261
|
+
├── guard.js # 写入门禁矩阵(fake ToolExecution)
|
|
232
262
|
└── integration.js # 真实注册表挂载
|
|
233
263
|
```
|
|
234
264
|
|
|
@@ -245,7 +275,7 @@ dsh/ # OpenFeel 仓库内的一等适配器目录
|
|
|
245
275
|
在深层子目录返回空态可证 CLI 从不回溯)。判定项目以 `.openfeel/flow.json` 或
|
|
246
276
|
`config.yaml` 为标记;`~/.openfeel/`(`openfeel setup` 的**全局家目录**)不含这些标记,
|
|
247
277
|
因此不会被误判为项目。未命中项目时工具返回 `refusal` 并提示 `openfeel init`,
|
|
248
|
-
|
|
278
|
+
提示段注入**短 bootstrap**(`activation=auto`)而非完整 Feel 纪律;`enforce=always` 时写文件也会被门禁拒绝。
|
|
249
279
|
> 若需要 monorepo(子目录里工作),那应作为 OpenFeel CLI 的能力
|
|
250
280
|
> (如 `openfeel project resolve --json`)由各适配器共享,而不是每个 harness 各写一套回溯。
|
|
251
281
|
3. **CLI 契约(v1.3.0)**:`flow next --json` 提供调度决策;`flow status --json` 的
|
|
@@ -262,3 +292,9 @@ dsh/ # OpenFeel 仓库内的一等适配器目录
|
|
|
262
292
|
6. **超时**:默认单次 120s。超大 `flow.json`(数百 KB)的 `flow status` 可能接近上限。
|
|
263
293
|
7. **不替代 agent 委派**:`feel_next` 给出负责 Agent 与 `[HANDOFF: agent]` 标记,实际派发
|
|
264
294
|
由 DSH 的 `subagent` / `workflow` 完成——DSH 没有 OpenFeel 的 `Task` 语义。
|
|
295
|
+
8. **硬门禁只覆盖文件修改工具**:`edit` / `write` / `apply_patch` / `str_replace_editor`;
|
|
296
|
+
`pwsh` / `bash` 默认不守,仍可直接写盘(显式逃生通道)。若需要 shell 级策略,属于后续
|
|
297
|
+
`guardShell` 的独立设计。
|
|
298
|
+
9. **默认 `enforce=always` 较激进**:所有工作区(含非 OpenFeel)都会拦截文件写入,直到
|
|
299
|
+
`openfeel init` 或用户把 profile 的 `enforce` 改为 `project` / `off`。适合“OpenFeel 必须启用”
|
|
300
|
+
的机器;普通试用建议 `project`。
|
package/dsh/cordis.patch.yml
CHANGED
|
@@ -24,3 +24,17 @@
|
|
|
24
24
|
autoPrompt: true
|
|
25
25
|
# 系统提示段语言:zh-CN | en
|
|
26
26
|
language: zh-CN
|
|
27
|
+
# 未初始化工作区的提示策略:
|
|
28
|
+
# auto = 已初始化→完整 Feel 纪律;未初始化→短 bootstrap(默认)
|
|
29
|
+
# always = 所有工作区都注入完整 Feel 纪律
|
|
30
|
+
# off = 不注入任何提示
|
|
31
|
+
activation: auto
|
|
32
|
+
# 写入门禁(ctx.tools.guard):
|
|
33
|
+
# always = 所有工作区都拦截(默认;无 .openfeel 时也会拒绝写文件)
|
|
34
|
+
# project = 仅当会话工作区本身是 OpenFeel 项目时拦截
|
|
35
|
+
# off = 完全不注册 guard(含 flow.json/status.md 也不拦)
|
|
36
|
+
enforce: always
|
|
37
|
+
# general 需求在 in_progress 且无阶段时,允许源码写入(需求级例外)。
|
|
38
|
+
allowGeneral: true
|
|
39
|
+
# mutatingTools 默认:[edit, write, apply_patch, str_replace_editor]。
|
|
40
|
+
# 需要时显式覆盖;pwsh/bash 默认不守(显式逃生通道)。
|
package/dsh/lib/guard.js
ADDED
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenFeel × DSH — 写入门禁
|
|
3
|
+
*
|
|
4
|
+
* 用 DSH 的 `ctx.tools.guard()` 在工具执行前做**同步拒绝**。守卫只读
|
|
5
|
+
* `.openfeel/flow.json`,不写任何状态;所有状态变更仍由 OpenFeel CLI 负责。
|
|
6
|
+
*
|
|
7
|
+
* 规则(与 `.openfeel/plan/v1/stage-103/plan.md` 一致):
|
|
8
|
+
* - 只守文件修改工具(默认 edit/write/apply_patch/str_replace_editor);
|
|
9
|
+
* - `.openfeel/**` 是流程产物区,任意阶段可写;但 flow.json / status.md 始终拒绝;
|
|
10
|
+
* - `.openfeel/` 外的源码/文档要求存在 `exec_running` 阶段(或 general 需求例外);
|
|
11
|
+
* - 无 `.openfeel/` 时:`always` 拒绝全部写文件,`project`/`off` 放行;
|
|
12
|
+
* - `apply_patch` 解析所有 patch 头目标,混合/无头时保守拒绝。
|
|
13
|
+
*
|
|
14
|
+
* @module openfeel-dsh/guard
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { readFileSync, statSync } from 'node:fs';
|
|
18
|
+
import { basename, join, resolve } from 'node:path';
|
|
19
|
+
|
|
20
|
+
import { isProjectWorkspace, OPENFEEL_DIR } from './adapters/workspace.js';
|
|
21
|
+
|
|
22
|
+
/** 默认受守卫的文件修改工具。 */
|
|
23
|
+
export const DEFAULT_MUTATING_TOOLS = Object.freeze([
|
|
24
|
+
'edit',
|
|
25
|
+
'write',
|
|
26
|
+
'apply_patch',
|
|
27
|
+
'str_replace_editor',
|
|
28
|
+
]);
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* 大小写不敏感文件系统:Windows + 默认 macOS(APFS/HFS+)。
|
|
32
|
+
* 在这两类平台上把路径统一小写,防止 `.OPENFEEL/FLOW.JSON` 绕过。
|
|
33
|
+
* 导出以允许在任意平台测试该分支(platform 可注入)。
|
|
34
|
+
*
|
|
35
|
+
* @param {string} value
|
|
36
|
+
* @param {NodeJS.Platform} [platform]
|
|
37
|
+
* @returns {string}
|
|
38
|
+
*/
|
|
39
|
+
export function normalizeForComparison(value, platform = process.platform) {
|
|
40
|
+
return platform === 'win32' || platform === 'darwin' ? value.toLowerCase() : value;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/** flow.json 读取缓存(path → { mtimeMs, size, value })。 */
|
|
44
|
+
const flowCache = new Map();
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* 归一化路径:绝对化 + Windows 小写。
|
|
48
|
+
* @param {string} cwd
|
|
49
|
+
* @param {string} target
|
|
50
|
+
* @returns {string}
|
|
51
|
+
*/
|
|
52
|
+
function normalizeTarget(cwd, target) {
|
|
53
|
+
const absolute = resolve(cwd, target);
|
|
54
|
+
return normalizeForComparison(absolute);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* 去引号并去空白(patch 头里的路径可能带引号/空格)。
|
|
59
|
+
* @param {string} raw
|
|
60
|
+
* @returns {string}
|
|
61
|
+
*/
|
|
62
|
+
function cleanPatchPath(raw) {
|
|
63
|
+
let value = String(raw).trim();
|
|
64
|
+
if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
|
|
65
|
+
value = value.slice(1, -1).trim();
|
|
66
|
+
}
|
|
67
|
+
return value;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* 是否为 `.openfeel/` 下的路径(含目录本身)。
|
|
72
|
+
* @param {string} absolute 已归一化
|
|
73
|
+
* @param {string} cwd 归一化后的工作区
|
|
74
|
+
* @returns {boolean}
|
|
75
|
+
*/
|
|
76
|
+
function isUnderOpenFeel(absolute, cwd) {
|
|
77
|
+
const root = normalizeTarget(cwd, OPENFEEL_DIR);
|
|
78
|
+
return absolute === root || absolute.startsWith(`${root}\\`) || absolute.startsWith(`${root}/`);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* 是否为受保护路径(flow.json / `.openfeel/**\/status.md`)。
|
|
83
|
+
* @param {string} absolute 已归一化
|
|
84
|
+
* @param {string} cwd 归一化后的工作区
|
|
85
|
+
* @returns {boolean}
|
|
86
|
+
*/
|
|
87
|
+
function isProtectedPath(absolute, cwd) {
|
|
88
|
+
const flow = normalizeTarget(cwd, join(OPENFEEL_DIR, 'flow.json'));
|
|
89
|
+
if (absolute === flow) return true;
|
|
90
|
+
return isUnderOpenFeel(absolute, cwd) && basename(absolute).toLowerCase() === 'status.md';
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* 从工具参数提取目标路径(edit/write/str_replace_editor)。
|
|
95
|
+
* @param {unknown} args
|
|
96
|
+
* @returns {string[]}
|
|
97
|
+
*/
|
|
98
|
+
function extractArgumentPaths(args) {
|
|
99
|
+
if (typeof args !== 'object' || args === null) return [];
|
|
100
|
+
const out = [];
|
|
101
|
+
for (const key of ['path', 'file_path', 'filePath', 'target_file', 'targetFile']) {
|
|
102
|
+
const value = /** @type {Record<string, unknown>} */ (args)[key];
|
|
103
|
+
if (typeof value === 'string' && value.trim() !== '') out.push(value.trim());
|
|
104
|
+
}
|
|
105
|
+
return out;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* 从 apply_patch 参数提取 patch 文本。
|
|
110
|
+
* @param {unknown} args
|
|
111
|
+
* @returns {string | undefined}
|
|
112
|
+
*/
|
|
113
|
+
function extractPatchText(args) {
|
|
114
|
+
if (typeof args !== 'object' || args === null) return undefined;
|
|
115
|
+
for (const key of ['patch', 'input', 'diff', 'content']) {
|
|
116
|
+
const value = /** @type {Record<string, unknown>} */ (args)[key];
|
|
117
|
+
if (typeof value === 'string' && value.trim() !== '') return value;
|
|
118
|
+
}
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* 解析 apply_patch 的全部目标路径。
|
|
124
|
+
*
|
|
125
|
+
* 只认 patch 头,避免正文里出现 `.openfeel/` 被误判。支持:
|
|
126
|
+
* - `*** Update File:`, `*** Add File:`, `*** Delete File:`
|
|
127
|
+
* - `*** Move to:`(要求同块 `*** Update File:` 源,否则拒绝)
|
|
128
|
+
* - `--- a/path`, `+++ b/path`;忽略 `/dev/null`
|
|
129
|
+
*
|
|
130
|
+
* @param {string} patch
|
|
131
|
+
* @returns {{ ok: true, paths: string[] } | { ok: false, reason: string }}
|
|
132
|
+
*/
|
|
133
|
+
export function parsePatchTargets(patch) {
|
|
134
|
+
const paths = [];
|
|
135
|
+
const seen = new Set();
|
|
136
|
+
const add = (raw) => {
|
|
137
|
+
const value = cleanPatchPath(raw);
|
|
138
|
+
if (value === '' || value === '/dev/null') return;
|
|
139
|
+
if (seen.has(value)) return;
|
|
140
|
+
seen.add(value);
|
|
141
|
+
paths.push(value);
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
// 按块跟踪:*** Move to: 必须位于同一块 *** Update File: 之后。
|
|
145
|
+
let currentBlock = null;
|
|
146
|
+
for (const line of patch.split(/\r?\n/)) {
|
|
147
|
+
const update = /^\*\*\* Update File:\s*(.+?)\s*$/.exec(line);
|
|
148
|
+
if (update !== null) {
|
|
149
|
+
currentBlock = 'update';
|
|
150
|
+
add(update[1]);
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
const addFile = /^\*\*\* Add File:\s*(.+?)\s*$/.exec(line);
|
|
154
|
+
if (addFile !== null) {
|
|
155
|
+
currentBlock = 'add';
|
|
156
|
+
add(addFile[1]);
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
const deleteFile = /^\*\*\* Delete File:\s*(.+?)\s*$/.exec(line);
|
|
160
|
+
if (deleteFile !== null) {
|
|
161
|
+
currentBlock = 'delete';
|
|
162
|
+
add(deleteFile[1]);
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
165
|
+
const move = /^\*\*\* Move to:\s*(.+?)\s*$/.exec(line);
|
|
166
|
+
if (move !== null) {
|
|
167
|
+
if (currentBlock !== 'update') {
|
|
168
|
+
return { ok: false, reason: '*** Move to: 缺少同块 *** Update File: 源路径' };
|
|
169
|
+
}
|
|
170
|
+
add(move[1]);
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
if (/^\*\*\* (?:Begin|End) Patch/.test(line)) {
|
|
174
|
+
currentBlock = null;
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
const diff = /^(?:---|\+\+\+) [ab]\/(.+?)\s*$/.exec(line);
|
|
178
|
+
if (diff !== null) add(diff[1]);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
if (paths.length === 0) {
|
|
182
|
+
return { ok: false, reason: '无法从 patch 头确定目标路径' };
|
|
183
|
+
}
|
|
184
|
+
return { ok: true, paths };
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* 读取 flow.json(同步、按 mtime/size 缓存)。
|
|
189
|
+
* @param {string} cwd
|
|
190
|
+
* @returns {{ ok: true, value: any } | { ok: false, reason: string }}
|
|
191
|
+
*/
|
|
192
|
+
function readFlow(cwd) {
|
|
193
|
+
const path = join(cwd, OPENFEEL_DIR, 'flow.json');
|
|
194
|
+
try {
|
|
195
|
+
const stat = statSync(path);
|
|
196
|
+
const cached = flowCache.get(path);
|
|
197
|
+
if (cached !== undefined && cached.mtimeMs === stat.mtimeMs && cached.size === stat.size) {
|
|
198
|
+
return { ok: true, value: cached.value };
|
|
199
|
+
}
|
|
200
|
+
const value = JSON.parse(readFileSync(path, 'utf8'));
|
|
201
|
+
flowCache.set(path, { mtimeMs: stat.mtimeMs, size: stat.size, value });
|
|
202
|
+
return { ok: true, value };
|
|
203
|
+
} catch (error) {
|
|
204
|
+
return {
|
|
205
|
+
ok: false,
|
|
206
|
+
reason: error instanceof Error ? error.message : String(error),
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* 是否存在 general 模式的 in_progress 需求(允许无阶段直接改)。
|
|
213
|
+
* @param {any} flow
|
|
214
|
+
* @returns {boolean}
|
|
215
|
+
*/
|
|
216
|
+
function hasGeneralRequirement(flow) {
|
|
217
|
+
const requirements = flow?.requirements;
|
|
218
|
+
if (!Array.isArray(requirements)) return false;
|
|
219
|
+
return requirements.some((requirement) => requirement
|
|
220
|
+
&& requirement.status === 'in_progress'
|
|
221
|
+
&& requirement.workflow_mode === 'general');
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/** 活跃阶段(phase !== done)。 */
|
|
225
|
+
function activeStages(flow) {
|
|
226
|
+
const stages = flow?.stages;
|
|
227
|
+
if (typeof stages !== 'object' || stages === null) return [];
|
|
228
|
+
return Object.entries(stages)
|
|
229
|
+
.filter(([, stage]) => stage && stage.phase !== 'done')
|
|
230
|
+
.map(([id, stage]) => ({ ...stage, id }));
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* 生成守卫。
|
|
235
|
+
*
|
|
236
|
+
* @param {object} options
|
|
237
|
+
* @param {'off'|'project'|'always'} [options.enforce]
|
|
238
|
+
* @param {string[]} [options.mutatingTools]
|
|
239
|
+
* @param {boolean} [options.allowGeneral]
|
|
240
|
+
* @param {'zh-CN'|'en'} [options.language]
|
|
241
|
+
* @param {string} [options.cwd] 无会话时的兜底目录(通常为 config.cwd)
|
|
242
|
+
* @returns {(execution: { name?: string, arguments?: unknown, agent?: { session?: { header?: { cwd?: string } } } }) => string | undefined}
|
|
243
|
+
*/
|
|
244
|
+
export function createOpenFeelGuard(options = {}) {
|
|
245
|
+
const enforce = options.enforce === 'off' || options.enforce === 'project' || options.enforce === 'always'
|
|
246
|
+
? options.enforce
|
|
247
|
+
: 'always';
|
|
248
|
+
const mutating = new Set(Array.isArray(options.mutatingTools) && options.mutatingTools.length > 0
|
|
249
|
+
? options.mutatingTools
|
|
250
|
+
: DEFAULT_MUTATING_TOOLS);
|
|
251
|
+
const allowGeneral = options.allowGeneral !== false;
|
|
252
|
+
const english = options.language === 'en';
|
|
253
|
+
const fallbackCwd = typeof options.cwd === 'string' && options.cwd !== '' ? options.cwd : undefined;
|
|
254
|
+
|
|
255
|
+
const t = (zh, en) => (english ? en : zh);
|
|
256
|
+
|
|
257
|
+
if (enforce === 'off') {
|
|
258
|
+
// 完全关闭:连 flow.json/status.md 也不拦。
|
|
259
|
+
return () => undefined;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
return (execution) => {
|
|
263
|
+
const name = execution?.name;
|
|
264
|
+
if (typeof name !== 'string' || !mutating.has(name)) return undefined;
|
|
265
|
+
|
|
266
|
+
const sessionCwd = execution?.agent?.session?.header?.cwd;
|
|
267
|
+
const cwd = typeof sessionCwd === 'string' && sessionCwd !== '' ? sessionCwd : fallbackCwd;
|
|
268
|
+
if (typeof cwd !== 'string' || cwd === '') return undefined;
|
|
269
|
+
const resolvedCwd = resolve(cwd);
|
|
270
|
+
const normalizedCwd = normalizeForComparison(resolvedCwd);
|
|
271
|
+
|
|
272
|
+
let rawTargets;
|
|
273
|
+
if (name === 'apply_patch') {
|
|
274
|
+
const patch = extractPatchText(execution?.arguments);
|
|
275
|
+
if (patch === undefined) {
|
|
276
|
+
return t(
|
|
277
|
+
'OpenFeel 写入门禁:apply_patch 缺少 patch 文本,无法确定目标;请改用 write/edit,或提供标准 patch 头。',
|
|
278
|
+
'OpenFeel write guard: apply_patch has no patch text, so targets are unknown. Use write/edit, or provide standard patch headers.',
|
|
279
|
+
);
|
|
280
|
+
}
|
|
281
|
+
const parsed = parsePatchTargets(patch);
|
|
282
|
+
if (!parsed.ok) {
|
|
283
|
+
return t(
|
|
284
|
+
`OpenFeel 写入门禁:${parsed.reason}。请改用 write/edit,或提供 *** Update File: 等标准头。`,
|
|
285
|
+
`OpenFeel write guard: ${parsed.reason}. Use write/edit, or provide standard *** Update File: headers.`,
|
|
286
|
+
);
|
|
287
|
+
}
|
|
288
|
+
rawTargets = parsed.paths;
|
|
289
|
+
} else {
|
|
290
|
+
rawTargets = extractArgumentPaths(execution?.arguments);
|
|
291
|
+
if (rawTargets.length === 0) {
|
|
292
|
+
return t(
|
|
293
|
+
'OpenFeel 写入门禁:无法确定目标路径;请提供 path / file_path。',
|
|
294
|
+
'OpenFeel write guard: cannot determine the target path; provide path / file_path.',
|
|
295
|
+
);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
const targets = rawTargets.map((target) => normalizeTarget(resolvedCwd, target));
|
|
300
|
+
|
|
301
|
+
// 受保护路径:guard 启用时始终拒绝(enforce=off 已提前返回)。
|
|
302
|
+
if (targets.some((target) => isProtectedPath(target, normalizedCwd))) {
|
|
303
|
+
return t(
|
|
304
|
+
'OpenFeel 写入门禁:禁止手改 `.openfeel/flow.json` 或 `.openfeel/**/status.md`。请改用 feel_flow / feel_stage 等 CLI 工具。',
|
|
305
|
+
'OpenFeel write guard: never hand-edit `.openfeel/flow.json` or `.openfeel/**/status.md`. Use feel_flow / feel_stage instead.',
|
|
306
|
+
);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
const initialized = isProjectWorkspace(resolvedCwd);
|
|
310
|
+
if (!initialized) {
|
|
311
|
+
if (enforce === 'always') {
|
|
312
|
+
return t(
|
|
313
|
+
'OpenFeel 写入门禁:当前工作区尚未初始化 OpenFeel(无 `.openfeel/`)。请先运行 `openfeel init` 并建立需求/阶段;或让用户把 profile 的 `enforce` 改为 `project` / `off`。',
|
|
314
|
+
'OpenFeel write guard: this workspace is not OpenFeel-initialized (no `.openfeel/`). Run `openfeel init` and create a requirement/stage first; or ask the user to set `enforce` to `project` / `off`.',
|
|
315
|
+
);
|
|
316
|
+
}
|
|
317
|
+
return undefined;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
const allInternal = targets.every((target) => isUnderOpenFeel(target, normalizedCwd));
|
|
321
|
+
if (allInternal) return undefined;
|
|
322
|
+
|
|
323
|
+
const flow = readFlow(resolvedCwd);
|
|
324
|
+
if (!flow.ok) {
|
|
325
|
+
return t(
|
|
326
|
+
`OpenFeel 写入门禁:无法读取 .openfeel/flow.json(${flow.reason})。请运行 feel_verify action=health。`,
|
|
327
|
+
`OpenFeel write guard: cannot read .openfeel/flow.json (${flow.reason}). Run feel_verify action=health.`,
|
|
328
|
+
);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
const active = activeStages(flow.value);
|
|
332
|
+
if (active.length === 0) {
|
|
333
|
+
if (allowGeneral && hasGeneralRequirement(flow.value)) return undefined;
|
|
334
|
+
return t(
|
|
335
|
+
'OpenFeel 写入门禁:当前无活跃阶段,不能修改源码/文档。请先 feel_req add → claim → feel_stage add 建立阶段。',
|
|
336
|
+
'OpenFeel write guard: no active stage, so source/docs are read-only. Create a stage via feel_req add → claim → feel_stage add.',
|
|
337
|
+
);
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
if (active.some((stage) => stage.phase === 'exec_running')) return undefined;
|
|
341
|
+
|
|
342
|
+
const summary = active
|
|
343
|
+
.map((stage) => `${stage.id ?? '(unknown)'}=${stage.phase ?? '(unknown)'}`)
|
|
344
|
+
.join(', ');
|
|
345
|
+
return t(
|
|
346
|
+
`OpenFeel 写入门禁:活跃阶段当前不在 exec_running(${summary}),不能修改源码/文档。请先 feel_flow action=advance 推进到 exec_running。`,
|
|
347
|
+
`OpenFeel write guard: active stage(s) are not in exec_running (${summary}), so source/docs are read-only. Advance to exec_running with feel_flow action=advance.`,
|
|
348
|
+
);
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* 测试用:清空 flow.json 缓存。
|
|
354
|
+
*/
|
|
355
|
+
export function clearGuardCache() {
|
|
356
|
+
flowCache.clear();
|
|
357
|
+
}
|
package/dsh/lib/index.js
CHANGED
|
@@ -24,8 +24,9 @@
|
|
|
24
24
|
|
|
25
25
|
import { FeelCli } from './adapters/cli.js';
|
|
26
26
|
import { resolveWorkspace } from './adapters/workspace.js';
|
|
27
|
+
import { createOpenFeelGuard } from './guard.js';
|
|
27
28
|
import { createFeelCommandHandler } from './surface/command.js';
|
|
28
|
-
import { FEEL_PROMPT_NAME, FEEL_PROMPT_ORDER, renderFeelPrompt } from './surface/prompt.js';
|
|
29
|
+
import { FEEL_PROMPT_NAME, FEEL_PROMPT_ORDER, renderBootstrapPrompt, renderFeelPrompt } from './surface/prompt.js';
|
|
29
30
|
import { createTools } from './tools/index.js';
|
|
30
31
|
|
|
31
32
|
/** Loader 入口 id。 */
|
|
@@ -51,7 +52,7 @@ const COMMAND_ID = '@openfeel/dsh/feel';
|
|
|
51
52
|
* - `log: false`(不写 `~/.openfeel/cli/logs/`,避免只读沙箱下失败)。
|
|
52
53
|
*
|
|
53
54
|
* @param {Record<string, any> | undefined} raw Loader 传入的配置。
|
|
54
|
-
* @returns {{ command: string, commandPrefix: string[], timeoutMs: number, log: boolean, autoPrompt: boolean, language: string, cwd: string | undefined }}
|
|
55
|
+
* @returns {{ command: string, commandPrefix: string[], timeoutMs: number, log: boolean, autoPrompt: boolean, activation: 'auto'|'always'|'off', language: string, cwd: string | undefined, enforce: 'off'|'project'|'always', mutatingTools: string[], allowGeneral: boolean }}
|
|
55
56
|
*/
|
|
56
57
|
export function normalizeConfig(raw) {
|
|
57
58
|
const source = typeof raw === 'object' && raw !== null ? raw : {};
|
|
@@ -59,14 +60,25 @@ export function normalizeConfig(raw) {
|
|
|
59
60
|
? source.commandPrefix.filter((item) => typeof item === 'string')
|
|
60
61
|
: [];
|
|
61
62
|
const timeoutMs = Number.isFinite(source.timeoutMs) && source.timeoutMs > 0 ? Number(source.timeoutMs) : 120_000;
|
|
63
|
+
const activation = source.activation === 'always' || source.activation === 'off' ? source.activation : 'auto';
|
|
64
|
+
const enforce = source.enforce === 'off' || source.enforce === 'project' || source.enforce === 'always'
|
|
65
|
+
? source.enforce
|
|
66
|
+
: 'always';
|
|
67
|
+
const mutatingTools = Array.isArray(source.mutatingTools)
|
|
68
|
+
? source.mutatingTools.filter((item) => typeof item === 'string' && item !== '')
|
|
69
|
+
: ['edit', 'write', 'apply_patch', 'str_replace_editor'];
|
|
62
70
|
return {
|
|
63
71
|
command: typeof source.command === 'string' && source.command !== '' ? source.command : 'openfeel',
|
|
64
72
|
commandPrefix,
|
|
65
73
|
timeoutMs,
|
|
66
74
|
log: source.log === true,
|
|
67
75
|
autoPrompt: source.autoPrompt !== false,
|
|
76
|
+
activation,
|
|
68
77
|
language: source.language === 'en' ? 'en' : 'zh-CN',
|
|
69
78
|
cwd: typeof source.cwd === 'string' && source.cwd !== '' ? source.cwd : undefined,
|
|
79
|
+
enforce,
|
|
80
|
+
mutatingTools,
|
|
81
|
+
allowGeneral: source.allowGeneral !== false,
|
|
70
82
|
};
|
|
71
83
|
}
|
|
72
84
|
|
|
@@ -122,6 +134,28 @@ export function apply(ctx, rawConfig) {
|
|
|
122
134
|
ctx.tools.register(tool);
|
|
123
135
|
}
|
|
124
136
|
|
|
137
|
+
/* ── 写入门禁 ───────────────────────────────────────────── */
|
|
138
|
+
|
|
139
|
+
if (config.enforce !== 'off') {
|
|
140
|
+
if (typeof ctx.tools.guard !== 'function') {
|
|
141
|
+
log.warn('当前 DSH 不支持 ctx.tools.guard;写入门禁未启用(仍可用 feel_* 工具)');
|
|
142
|
+
} else {
|
|
143
|
+
const registerGuard = () => ctx.tools.guard(createOpenFeelGuard({
|
|
144
|
+
enforce: config.enforce,
|
|
145
|
+
mutatingTools: config.mutatingTools,
|
|
146
|
+
allowGeneral: config.allowGeneral,
|
|
147
|
+
language: config.language,
|
|
148
|
+
cwd: config.cwd,
|
|
149
|
+
}));
|
|
150
|
+
if (typeof ctx.effect === 'function') {
|
|
151
|
+
ctx.effect(registerGuard);
|
|
152
|
+
} else {
|
|
153
|
+
const dispose = registerGuard();
|
|
154
|
+
if (typeof ctx.on === 'function' && typeof dispose === 'function') ctx.on('dispose', dispose);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
125
159
|
/* ── 人类命令面 ─────────────────────────────────────────── */
|
|
126
160
|
|
|
127
161
|
ctx.commands.register({
|
|
@@ -137,7 +171,7 @@ export function apply(ctx, rawConfig) {
|
|
|
137
171
|
|
|
138
172
|
/* ── 系统提示面 ─────────────────────────────────────────── */
|
|
139
173
|
|
|
140
|
-
if (config.autoPrompt) {
|
|
174
|
+
if (config.autoPrompt && config.activation !== 'off') {
|
|
141
175
|
ctx.systemPrompt.section({
|
|
142
176
|
name: FEEL_PROMPT_NAME,
|
|
143
177
|
order: FEEL_PROMPT_ORDER,
|
|
@@ -157,10 +191,22 @@ export function apply(ctx, rawConfig) {
|
|
|
157
191
|
} catch {
|
|
158
192
|
return '';
|
|
159
193
|
}
|
|
160
|
-
//
|
|
161
|
-
//
|
|
162
|
-
|
|
163
|
-
|
|
194
|
+
// 不回溯:只按会话工作区本身判定。
|
|
195
|
+
// - 已初始化 → 完整 Feel 纪律;
|
|
196
|
+
// - 未初始化 + activation=always → 完整提示(detected:false);
|
|
197
|
+
// - 未初始化 + activation=auto → 短 bootstrap;
|
|
198
|
+
// - activation=off → 外层不注册 section。
|
|
199
|
+
if (resolved.initialized) {
|
|
200
|
+
return renderFeelPrompt({ projectRoot: resolved.projectRoot, detected: true, language: config.language });
|
|
201
|
+
}
|
|
202
|
+
if (config.activation === 'always') {
|
|
203
|
+
return renderFeelPrompt({ projectRoot: resolved.projectRoot, detected: false, language: config.language });
|
|
204
|
+
}
|
|
205
|
+
return renderBootstrapPrompt({
|
|
206
|
+
projectRoot: resolved.projectRoot,
|
|
207
|
+
language: config.language,
|
|
208
|
+
enforce: config.enforce,
|
|
209
|
+
});
|
|
164
210
|
},
|
|
165
211
|
});
|
|
166
212
|
}
|
|
@@ -31,6 +31,80 @@ export function renderFeelPrompt(options = {}) {
|
|
|
31
31
|
return renderChinese(options);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
/**
|
|
35
|
+
* 生成「未初始化工作区」的短 bootstrap 段落。
|
|
36
|
+
*
|
|
37
|
+
* 只在 `activation=auto` 且 `resolveWorkspace().initialized === false` 时注入;
|
|
38
|
+
* 不展开完整 Feel 纪律,避免把任意目录都灌成流程提示。
|
|
39
|
+
*
|
|
40
|
+
* @param {object} [options]
|
|
41
|
+
* @param {string} [options.projectRoot]
|
|
42
|
+
* @param {'zh-CN'|'en'} [options.language]
|
|
43
|
+
* @param {'off'|'project'|'always'} [options.enforce]
|
|
44
|
+
* @returns {string}
|
|
45
|
+
*/
|
|
46
|
+
export function renderBootstrapPrompt(options = {}) {
|
|
47
|
+
const language = options.language ?? 'zh-CN';
|
|
48
|
+
const enforce = options.enforce === 'off' || options.enforce === 'project' || options.enforce === 'always'
|
|
49
|
+
? options.enforce
|
|
50
|
+
: 'always';
|
|
51
|
+
return language === 'en' ? renderBootstrapEnglish(enforce, options.projectRoot) : renderBootstrapChinese(enforce, options.projectRoot);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* 未初始化 bootstrap(中文)。
|
|
56
|
+
* @param {'off'|'project'|'always'} enforce
|
|
57
|
+
* @param {string} [projectRoot]
|
|
58
|
+
* @returns {string}
|
|
59
|
+
*/
|
|
60
|
+
function renderBootstrapChinese(enforce, projectRoot) {
|
|
61
|
+
const where = typeof projectRoot === 'string' && projectRoot !== '' ? `(\`${projectRoot}\`)` : '';
|
|
62
|
+
const writeRule = enforce === 'always'
|
|
63
|
+
? '- 写文件(代码/文档):默认 `enforce=always`,写入门禁会**拒绝**,直到运行 `openfeel init` 并建立需求/阶段;或请用户把 profile 的 `enforce` 改为 `project` / `off`。'
|
|
64
|
+
: enforce === 'project'
|
|
65
|
+
? '- 写文件(代码/文档):当前 `enforce=project`,非 OpenFeel 工作区不拦截;建议先 `openfeel init` → `feel_req add` → `feel_stage add`。'
|
|
66
|
+
: '- 写文件(代码/文档):当前 `enforce=off`,不拦截;建议先 `openfeel init` → `feel_req add` → `feel_stage add`。';
|
|
67
|
+
|
|
68
|
+
return `<feel_mode>
|
|
69
|
+
OpenFeel 未初始化:当前工作区尚未检测到 \`.openfeel/\`${where}。
|
|
70
|
+
|
|
71
|
+
## 只读任务
|
|
72
|
+
- 只读任务可直接进行。
|
|
73
|
+
|
|
74
|
+
## 写文件
|
|
75
|
+
${writeRule}
|
|
76
|
+
- 用户要求使用 OpenFeel 时:先确认,再 \`openfeel init\` → \`feel_req add\` → \`feel_stage add\`。
|
|
77
|
+
- 不要假装 Feel 模式已激活;不要手改 \`.openfeel/flow.json\` / \`status.md\`。
|
|
78
|
+
</feel_mode>`;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* 未初始化 bootstrap(英文)。
|
|
83
|
+
* @param {'off'|'project'|'always'} enforce
|
|
84
|
+
* @param {string} [projectRoot]
|
|
85
|
+
* @returns {string}
|
|
86
|
+
*/
|
|
87
|
+
function renderBootstrapEnglish(enforce, projectRoot) {
|
|
88
|
+
const where = typeof projectRoot === 'string' && projectRoot !== '' ? ` (${projectRoot})` : '';
|
|
89
|
+
const writeRule = enforce === 'always'
|
|
90
|
+
? '- Writing files (code/docs): the default `enforce=always` write guard will **deny** until you run `openfeel init` and create a requirement/stage; or ask the user to set the profile `enforce` to `project` / `off`.'
|
|
91
|
+
: enforce === 'project'
|
|
92
|
+
? '- Writing files (code/docs): `enforce=project` does not intercept non-OpenFeel workspaces; prefer `openfeel init` → `feel_req add` → `feel_stage add` first.'
|
|
93
|
+
: '- Writing files (code/docs): `enforce=off` does not intercept; prefer `openfeel init` → `feel_req add` → `feel_stage add` first.';
|
|
94
|
+
|
|
95
|
+
return `<feel_mode>
|
|
96
|
+
OpenFeel is not initialized: no \`.openfeel/\` detected in this workspace${where}.
|
|
97
|
+
|
|
98
|
+
## Read-only work
|
|
99
|
+
- Read-only work may proceed directly.
|
|
100
|
+
|
|
101
|
+
## Writing files
|
|
102
|
+
${writeRule}
|
|
103
|
+
- If the user wants OpenFeel: confirm first, then \`openfeel init\` → \`feel_req add\` → \`feel_stage add\`.
|
|
104
|
+
- Do not pretend Feel mode is active; never hand-edit \`.openfeel/flow.json\` / \`status.md\`.
|
|
105
|
+
</feel_mode>`;
|
|
106
|
+
}
|
|
107
|
+
|
|
34
108
|
/**
|
|
35
109
|
* 中文段落。
|
|
36
110
|
* @param {{ projectRoot?: string, detected?: boolean }} options
|
|
@@ -40,9 +114,10 @@ function renderChinese(options) {
|
|
|
40
114
|
const where = options.detected === true && options.projectRoot !== undefined
|
|
41
115
|
? `当前项目:\`${options.projectRoot}\`(已初始化 \`.openfeel/\`)。`
|
|
42
116
|
: '当前工作区尚未检测到 `.openfeel/`:若用户要求使用 Feel 流程,先提示运行 `openfeel init`。';
|
|
117
|
+
const status = options.detected === true ? 'Feel 模式已启用' : 'Feel 模式未初始化';
|
|
43
118
|
|
|
44
119
|
return `<feel_mode>
|
|
45
|
-
|
|
120
|
+
${status}:本会话在 OpenFeel 流程治理下工作。${where}
|
|
46
121
|
|
|
47
122
|
## 你的角色:调度者,不是执行者
|
|
48
123
|
你的价值是判断「该谁做」,而不是自己做。OpenFeel 的 15 个相位各有负责 Agent:
|
|
@@ -90,9 +165,10 @@ function renderEnglish(options) {
|
|
|
90
165
|
const where = options.detected === true && options.projectRoot !== undefined
|
|
91
166
|
? `Project: \`${options.projectRoot}\` (initialized \`.openfeel/\`).`
|
|
92
167
|
: 'No `.openfeel/` detected in this workspace: if the user asks for the Feel process, suggest `openfeel init` first.';
|
|
168
|
+
const status = options.detected === true ? 'Feel mode is active' : 'Feel mode is not initialized';
|
|
93
169
|
|
|
94
170
|
return `<feel_mode>
|
|
95
|
-
|
|
171
|
+
${status}: this session works under OpenFeel process governance. ${where}
|
|
96
172
|
|
|
97
173
|
## Your role: orchestrator, not implementer
|
|
98
174
|
Your value is deciding WHO acts, not acting yourself. The 15 pipeline phases each have an owning agent:
|
package/dsh/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openfeel-dsh",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.2",
|
|
4
4
|
"description": "OpenFeel × DSH — Feel 模式适配器:把 OpenFeel 的流水线、需求分发、版本归档与知识库接入 DeepSeek Harness",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"private": true,
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
},
|
|
33
33
|
"openfeel": {
|
|
34
34
|
"adapter": "dsh",
|
|
35
|
-
"requiresCli": ">=1.3.
|
|
35
|
+
"requiresCli": ">=1.3.2"
|
|
36
36
|
},
|
|
37
37
|
"keywords": [
|
|
38
38
|
"openfeel",
|