@winspan/claude-forge 8.33.5 → 8.35.0
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 +10 -30
- package/dist/agents/definition.d.ts +3 -0
- package/dist/agents/definition.d.ts.map +1 -1
- package/dist/agents/definition.js +3 -0
- package/dist/agents/definition.js.map +1 -1
- package/dist/agents/official-agents.d.ts.map +1 -1
- package/dist/agents/official-agents.js +6 -3
- package/dist/agents/official-agents.js.map +1 -1
- package/dist/agents/registry.d.ts +17 -1
- package/dist/agents/registry.d.ts.map +1 -1
- package/dist/agents/registry.js +106 -7
- package/dist/agents/registry.js.map +1 -1
- package/dist/capability/index.d.ts +6 -5
- package/dist/capability/index.d.ts.map +1 -1
- package/dist/capability/index.js +6 -5
- package/dist/capability/index.js.map +1 -1
- package/dist/capability/types.d.ts +5 -74
- package/dist/capability/types.d.ts.map +1 -1
- package/dist/capability/types.js +4 -1
- package/dist/capability/types.js.map +1 -1
- package/dist/cli/commands/executions.d.ts +3 -0
- package/dist/cli/commands/executions.d.ts.map +1 -0
- package/dist/cli/commands/executions.js +109 -0
- package/dist/cli/commands/executions.js.map +1 -0
- package/dist/cli/commands/skills.d.ts.map +1 -1
- package/dist/cli/commands/skills.js +83 -20
- package/dist/cli/commands/skills.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/storage/rows.d.ts +14 -36
- package/dist/core/storage/rows.d.ts.map +1 -1
- package/dist/core/storage/schema.sql +27 -45
- package/dist/core/storage/sqlite.d.ts +11 -79
- package/dist/core/storage/sqlite.d.ts.map +1 -1
- package/dist/core/storage/sqlite.js +35 -362
- package/dist/core/storage/sqlite.js.map +1 -1
- package/dist/core/utils/token-tracker.d.ts +0 -1
- package/dist/core/utils/token-tracker.d.ts.map +1 -1
- package/dist/core/utils/token-tracker.js +0 -1
- package/dist/core/utils/token-tracker.js.map +1 -1
- package/dist/daemon/handlers/post-tool-use.d.ts +1 -9
- package/dist/daemon/handlers/post-tool-use.d.ts.map +1 -1
- package/dist/daemon/handlers/post-tool-use.js +2 -99
- package/dist/daemon/handlers/post-tool-use.js.map +1 -1
- package/dist/daemon/handlers/stop.d.ts +5 -15
- package/dist/daemon/handlers/stop.d.ts.map +1 -1
- package/dist/daemon/handlers/stop.js +25 -93
- package/dist/daemon/handlers/stop.js.map +1 -1
- package/dist/daemon/handlers/user-prompt.d.ts +3 -5
- package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
- package/dist/daemon/handlers/user-prompt.js +39 -98
- package/dist/daemon/handlers/user-prompt.js.map +1 -1
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +11 -56
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/routing-observer.d.ts.map +1 -1
- package/dist/daemon/routing-observer.js +24 -1
- package/dist/daemon/routing-observer.js.map +1 -1
- package/dist/intelligence/execution-doc-builder.d.ts +61 -0
- package/dist/intelligence/execution-doc-builder.d.ts.map +1 -0
- package/dist/intelligence/execution-doc-builder.js +601 -0
- package/dist/intelligence/execution-doc-builder.js.map +1 -0
- package/dist/skills/invocation-guard.d.ts +45 -0
- package/dist/skills/invocation-guard.d.ts.map +1 -0
- package/dist/skills/invocation-guard.js +82 -0
- package/dist/skills/invocation-guard.js.map +1 -0
- package/dist/skills/official-skills.d.ts.map +1 -1
- package/dist/skills/official-skills.js +218 -20
- package/dist/skills/official-skills.js.map +1 -1
- package/dist/skills/registry.d.ts +22 -0
- package/dist/skills/registry.d.ts.map +1 -1
- package/dist/skills/registry.js +30 -2
- package/dist/skills/registry.js.map +1 -1
- package/dist/skills/tools/skill-invoke.d.ts +36 -0
- package/dist/skills/tools/skill-invoke.d.ts.map +1 -0
- package/dist/skills/tools/skill-invoke.js +82 -0
- package/dist/skills/tools/skill-invoke.js.map +1 -0
- package/dist/skills/tools/skill-list.d.ts +26 -0
- package/dist/skills/tools/skill-list.d.ts.map +1 -0
- package/dist/skills/tools/skill-list.js +35 -0
- package/dist/skills/tools/skill-list.js.map +1 -0
- package/dist/web/routes/execution-trace.d.ts.map +1 -1
- package/dist/web/routes/execution-trace.js +16 -0
- package/dist/web/routes/execution-trace.js.map +1 -1
- package/dist/web/routes/skill-stats.d.ts +12 -0
- package/dist/web/routes/skill-stats.d.ts.map +1 -0
- package/dist/web/routes/skill-stats.js +72 -0
- package/dist/web/routes/skill-stats.js.map +1 -0
- package/dist/web/routes/status.d.ts.map +1 -1
- package/dist/web/routes/status.js +8 -10
- package/dist/web/routes/status.js.map +1 -1
- package/dist/web/routes/token-usage.d.ts +1 -1
- package/dist/web/routes/token-usage.d.ts.map +1 -1
- package/dist/web/routes/token-usage.js +1 -16
- package/dist/web/routes/token-usage.js.map +1 -1
- package/dist/web/routes/types.d.ts +0 -6
- package/dist/web/routes/types.d.ts.map +1 -1
- package/dist/web/routes/types.js.map +1 -1
- package/dist/web/server.d.ts +0 -6
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +0 -5
- package/dist/web/server.js.map +1 -1
- package/dist/web/static/assets/{AIConfig-BbwRuWzm.js → AIConfig-DiUFET_Q.js} +2 -2
- package/dist/web/static/assets/{AIConfig-BbwRuWzm.js.map → AIConfig-DiUFET_Q.js.map} +1 -1
- package/dist/web/static/assets/{Agents-FyKzsN-g.js → Agents-bNNGbQnL.js} +2 -2
- package/dist/web/static/assets/{Agents-FyKzsN-g.js.map → Agents-bNNGbQnL.js.map} +1 -1
- package/dist/web/static/assets/{Events-C2OCOKAD.js → Events-DQHP6Uaq.js} +2 -2
- package/dist/web/static/assets/{Events-C2OCOKAD.js.map → Events-DQHP6Uaq.js.map} +1 -1
- package/dist/web/static/assets/ExecutionTrace-Co8ARdg-.js +3 -0
- package/dist/web/static/assets/ExecutionTrace-Co8ARdg-.js.map +1 -0
- package/dist/web/static/assets/{Methodologies-DwYLXc8o.js → Methodologies-CXNrDXwG.js} +2 -2
- package/dist/web/static/assets/{Methodologies-DwYLXc8o.js.map → Methodologies-CXNrDXwG.js.map} +1 -1
- package/dist/web/static/assets/{Sessions-CFpFk-5I.js → Sessions-ZQSCgXyy.js} +2 -2
- package/dist/web/static/assets/{Sessions-CFpFk-5I.js.map → Sessions-ZQSCgXyy.js.map} +1 -1
- package/dist/web/static/assets/{Skills-BkbegTV1.js → Skills-C5-5zOSH.js} +2 -2
- package/dist/web/static/assets/{Skills-BkbegTV1.js.map → Skills-C5-5zOSH.js.map} +1 -1
- package/dist/web/static/assets/{index-CIRlno4E.js → index-DJK5beK6.js} +3 -3
- package/dist/web/static/assets/{index-CIRlno4E.js.map → index-DJK5beK6.js.map} +1 -1
- package/dist/web/static/assets/index-phpuytMI.css +1 -0
- package/dist/web/static/index.html +2 -2
- package/package.json +2 -2
- package/dist/capability/execution-manager.d.ts +0 -96
- package/dist/capability/execution-manager.d.ts.map +0 -1
- package/dist/capability/execution-manager.js +0 -260
- package/dist/capability/execution-manager.js.map +0 -1
- package/dist/capability/executor/background-executor.d.ts +0 -58
- package/dist/capability/executor/background-executor.d.ts.map +0 -1
- package/dist/capability/executor/background-executor.js +0 -322
- package/dist/capability/executor/background-executor.js.map +0 -1
- package/dist/capability/executor/foreground-executor.d.ts +0 -26
- package/dist/capability/executor/foreground-executor.d.ts.map +0 -1
- package/dist/capability/executor/foreground-executor.js +0 -82
- package/dist/capability/executor/foreground-executor.js.map +0 -1
- package/dist/capability/executor/orchestrator.d.ts +0 -38
- package/dist/capability/executor/orchestrator.d.ts.map +0 -1
- package/dist/capability/executor/orchestrator.js +0 -158
- package/dist/capability/executor/orchestrator.js.map +0 -1
- package/dist/capability/executor/stream-parser.d.ts +0 -73
- package/dist/capability/executor/stream-parser.d.ts.map +0 -1
- package/dist/capability/executor/stream-parser.js +0 -56
- package/dist/capability/executor/stream-parser.js.map +0 -1
- package/dist/capability/executor/types.d.ts +0 -44
- package/dist/capability/executor/types.d.ts.map +0 -1
- package/dist/capability/executor/types.js +0 -9
- package/dist/capability/executor/types.js.map +0 -1
- package/dist/capability/executor/worker-auth-probe.d.ts +0 -30
- package/dist/capability/executor/worker-auth-probe.d.ts.map +0 -1
- package/dist/capability/executor/worker-auth-probe.js +0 -108
- package/dist/capability/executor/worker-auth-probe.js.map +0 -1
- package/dist/capability/methodologies/bmad.yaml +0 -81
- package/dist/capability/methodologies/code-quality-audit.yaml +0 -26
- package/dist/capability/methodologies/harness-engineering.yaml +0 -75
- package/dist/capability/methodologies/test-coverage-scan.yaml +0 -26
- package/dist/capability/methodology-planner.d.ts +0 -49
- package/dist/capability/methodology-planner.d.ts.map +0 -1
- package/dist/capability/methodology-planner.js +0 -306
- package/dist/capability/methodology-planner.js.map +0 -1
- package/dist/capability/methodology-registry.d.ts +0 -32
- package/dist/capability/methodology-registry.d.ts.map +0 -1
- package/dist/capability/methodology-registry.js +0 -113
- package/dist/capability/methodology-registry.js.map +0 -1
- package/dist/daemon/handlers/methodology-formatter.d.ts +0 -16
- package/dist/daemon/handlers/methodology-formatter.d.ts.map +0 -1
- package/dist/daemon/handlers/methodology-formatter.js +0 -119
- package/dist/daemon/handlers/methodology-formatter.js.map +0 -1
- package/dist/daemon/idle-detector.d.ts +0 -35
- package/dist/daemon/idle-detector.d.ts.map +0 -1
- package/dist/daemon/idle-detector.js +0 -56
- package/dist/daemon/idle-detector.js.map +0 -1
- package/dist/daemon/idle-trigger.d.ts +0 -53
- package/dist/daemon/idle-trigger.d.ts.map +0 -1
- package/dist/daemon/idle-trigger.js +0 -153
- package/dist/daemon/idle-trigger.js.map +0 -1
- package/dist/daemon/methodology-pending-queue.d.ts +0 -33
- package/dist/daemon/methodology-pending-queue.d.ts.map +0 -1
- package/dist/daemon/methodology-pending-queue.js +0 -120
- package/dist/daemon/methodology-pending-queue.js.map +0 -1
- package/dist/web/routes/methodology.d.ts +0 -12
- package/dist/web/routes/methodology.d.ts.map +0 -1
- package/dist/web/routes/methodology.js +0 -228
- package/dist/web/routes/methodology.js.map +0 -1
- package/dist/web/static/assets/ExecutionTrace-BsWSpu2v.js +0 -3
- package/dist/web/static/assets/ExecutionTrace-BsWSpu2v.js.map +0 -1
- package/dist/web/static/assets/index-N1EByy_h.css +0 -1
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Claude Forge
|
|
2
2
|
|
|
3
|
-
> 为 Claude Code 设计的会话治理引擎 —— 通过 Hook
|
|
3
|
+
> 为 Claude Code 设计的会话治理引擎 —— 通过 Hook 机制把 Agent 路由、Skill 推荐、治理规则注入到 AI 开发流程中。
|
|
4
4
|
|
|
5
|
-
Claude Forge 是一个在本地运行的守护进程,通过 Claude Code 的 Hook API 拦截 `UserPromptSubmit`、`PreToolUse`、`PostToolUse`、`Stop`
|
|
5
|
+
Claude Forge 是一个在本地运行的守护进程,通过 Claude Code 的 Hook API 拦截 `UserPromptSubmit`、`PreToolUse`、`PostToolUse`、`Stop` 等事件,在其中做意图分类、Agent 路由、Skill 推荐、规则阻断、治理建议。
|
|
6
6
|
|
|
7
7
|
**版本**: 8.31.0(实时版本以 `cf --version` 为准) · **Node**: >= 18 · **License**: MIT
|
|
8
8
|
|
|
@@ -13,19 +13,14 @@ Claude Forge 是一个在本地运行的守护进程,通过 Claude Code 的 Ho
|
|
|
13
13
|
### 1. Hook 驱动的治理
|
|
14
14
|
daemon 以 Unix socket 形式与 Claude Code 的 Hook 脚本通信。每次 `UserPromptSubmit` / `PostToolUse` 等事件,daemon 在 100ms 内决定要不要往上下文注入额外指令或建议。
|
|
15
15
|
|
|
16
|
-
### 2.
|
|
17
|
-
内置两种方法论(`harness-engineering`、`bmad`),AI Planner 根据任务复杂度自动生成多阶段执行计划。执行分两种模式:
|
|
18
|
-
|
|
19
|
-
- **前台(foreground)** —— 指令注入到当前 Claude Code 会话,由主对话按 plan 调用 `Task(subagent_type=...)` 完成每个阶段
|
|
20
|
-
- **后台(background)** —— daemon 直接 spawn 独立的 `claude -p` 子进程,与当前会话完全隔离地跑完整条 plan,用户离场也能自动完成
|
|
21
|
-
|
|
22
|
-
两种模式共享 plan / phase 数据模型,可在 Web 后台随时切换。
|
|
23
|
-
|
|
24
|
-
### 3. Agent 路由
|
|
16
|
+
### 2. Agent 路由
|
|
25
17
|
基于 intent 分析(`complexity`、`taskType`)和 YAML 规则,UserPromptSubmit 阶段建议 Claude 用哪个子 agent(`researcher`、`tester`、`coder` 等)。路由决策全程记录到 `routing_events` 表,可用于离线分析和 A/B 实验。
|
|
26
18
|
|
|
19
|
+
### 3. Skill 推荐系统
|
|
20
|
+
根据用户意图和项目上下文,自动推荐合适的 Skill(如 `official-debug`、`official-tdd`、`official-refactor` 等)。Skill 是可复用的工作流模板,帮助 Claude 按照最佳实践完成特定类型的任务。
|
|
21
|
+
|
|
27
22
|
### 4. Web 管理后台
|
|
28
|
-
`claude-forge daemon start` 默认在 `http://127.0.0.1:<port>`(默认端口 `3456`,可在 `~/.claude-forge/config.yaml` 的 `web.port` 修改)开放一个 React
|
|
23
|
+
`claude-forge daemon start` 默认在 `http://127.0.0.1:<port>`(默认端口 `3456`,可在 `~/.claude-forge/config.yaml` 的 `web.port` 修改)开放一个 React 管理后台,覆盖:会话浏览、事件流、执行追踪、Agent/Skill 编辑、AI 配置、实时 SSE 日志。
|
|
29
24
|
|
|
30
25
|
---
|
|
31
26
|
|
|
@@ -38,7 +33,7 @@ npm install -g @winspan/claude-forge
|
|
|
38
33
|
# 2. 初始化(把 hook 脚本装到 ~/.claude/hooks/)
|
|
39
34
|
cf init
|
|
40
35
|
|
|
41
|
-
# 3. 配置 AI Provider
|
|
36
|
+
# 3. 配置 AI Provider(可选)
|
|
42
37
|
cf config
|
|
43
38
|
|
|
44
39
|
# 4. 启动 daemon
|
|
@@ -52,19 +47,6 @@ open http://127.0.0.1:3456
|
|
|
52
47
|
|
|
53
48
|
---
|
|
54
49
|
|
|
55
|
-
## 方法论执行模式
|
|
56
|
-
|
|
57
|
-
创建执行有两种途径:
|
|
58
|
-
|
|
59
|
-
- **UserPromptSubmit 自动触发** → 默认走**前台**。用户发出类似"帮我重构 xxx"时,daemon 识别 refactor 类任务自动创建 methodology execution,并把阶段 1 指令注入到当前 Claude Code 会话。
|
|
60
|
-
- **Web 管理后台手动创建** → 默认走**后台**。在 `/methodologies` 页面点"新建执行",选择方法论、session id、mode,daemon 立即 spawn `claude -p` 子进程按 plan 顺序跑完所有阶段。
|
|
61
|
-
|
|
62
|
-
> **前台模式的边界**:如果 Claude 主会话没有任何新输入,daemon 无法主动推 —— 只有 UserPromptSubmit / Stop hook 被触发时才能搭便车注入指令。Stop hook 会检测"当前阶段未推进"并把指令写入 pending 队列,下一次 UserPrompt 时自动消费。**实际生效需要用户至少输入一次任意内容**。
|
|
63
|
-
|
|
64
|
-
后台模式不受此影响,但消耗额外 API 预算(每个阶段默认上限 `$2`)。
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
50
|
## CLI 命令
|
|
69
51
|
|
|
70
52
|
| 命令 | 说明 |
|
|
@@ -74,7 +56,7 @@ open http://127.0.0.1:3456
|
|
|
74
56
|
| `cf config` | AI Provider 配置(API key、base_url、model) |
|
|
75
57
|
| `cf status` | 当前 daemon + Web + 存储概况 |
|
|
76
58
|
| `cf logs [--tail]` | 查看 daemon 日志 |
|
|
77
|
-
| `cf stats` | 近期 intent /
|
|
59
|
+
| `cf stats` | 近期 intent / 路由统计 |
|
|
78
60
|
| `cf rules` | 查看/编辑治理规则(YAML) |
|
|
79
61
|
| `cf agents` | 列出已注册 agent |
|
|
80
62
|
| `cf skills` | 列出可用 skills |
|
|
@@ -92,8 +74,6 @@ open http://127.0.0.1:3456
|
|
|
92
74
|
- `/sessions` — 会话列表 + 详情
|
|
93
75
|
- `/events` — Hook 事件流
|
|
94
76
|
- `/execution-trace` — 路由决策追踪(含 SSE 实时)
|
|
95
|
-
- `/methodologies` — 方法论执行列表(mode 徽章 + 新建入口)
|
|
96
|
-
- `/methodologies/:id` — 执行详情(实时 SSE 事件流 + 每阶段 output/error)
|
|
97
77
|
- `/agents` / `/skills` — 在线编辑 `~/.claude/agents/*.md` 和 `~/.claude/skills/*.md`
|
|
98
78
|
- `/ai-config` — 切换 AI Provider / 测试连接
|
|
99
79
|
- `/routing` — 路由规则查看
|
|
@@ -104,7 +84,7 @@ open http://127.0.0.1:3456
|
|
|
104
84
|
|
|
105
85
|
## 贡献
|
|
106
86
|
|
|
107
|
-
开发者文档见 [DEVELOPMENT.md](./DEVELOPMENT.md)
|
|
87
|
+
开发者文档见 [DEVELOPMENT.md](./DEVELOPMENT.md),包含仓库布局、构建/测试流程、架构说明、如何新增 Agent 或 Skill。
|
|
108
88
|
|
|
109
89
|
## License
|
|
110
90
|
|
|
@@ -26,6 +26,8 @@ export interface AgentDefinition {
|
|
|
26
26
|
tools: string[];
|
|
27
27
|
/** Suggested model slug (sonnet/opus/haiku); optional */
|
|
28
28
|
model?: string;
|
|
29
|
+
/** Skill dependencies (skill IDs to inject as methodology) */
|
|
30
|
+
skills?: string[];
|
|
29
31
|
/** Full markdown body that lands in ~/.claude/agents/<name>.md */
|
|
30
32
|
content: string;
|
|
31
33
|
}
|
|
@@ -39,6 +41,7 @@ export interface AgentRecord {
|
|
|
39
41
|
version: string;
|
|
40
42
|
tools: string[];
|
|
41
43
|
model?: string;
|
|
44
|
+
skills?: string[];
|
|
42
45
|
content: string;
|
|
43
46
|
source: AgentSource;
|
|
44
47
|
/** Absolute path if loaded from disk, '<builtin>' for embedded */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/agents/definition.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,UAAU,GACV,YAAY,GACZ,SAAS,GACT,UAAU,GACV,eAAe,GACf,UAAU,GACV,eAAe,CAAC;AAEpB;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,EAAE,aAAa,CAAC;IACxB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"definition.d.ts","sourceRoot":"","sources":["../../src/agents/definition.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,UAAU,GACV,YAAY,GACZ,SAAS,GACT,UAAU,GACV,eAAe,GACf,UAAU,GACV,eAAe,CAAC;AAEpB;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,QAAQ,EAAE,aAAa,CAAC;IACxB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAchE"}
|
|
@@ -18,6 +18,9 @@ export function renderAgentMarkdown(def) {
|
|
|
18
18
|
];
|
|
19
19
|
if (def.model)
|
|
20
20
|
fm.push(`model: ${def.model}`);
|
|
21
|
+
if (def.skills && def.skills.length > 0) {
|
|
22
|
+
fm.push(`skills: [${def.skills.join(', ')}]`);
|
|
23
|
+
}
|
|
21
24
|
fm.push('---', '');
|
|
22
25
|
return fm.join('\n') + def.content.trimStart();
|
|
23
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/agents/definition.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../src/agents/definition.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA0DH;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAoB;IACtD,MAAM,EAAE,GAAa;QACnB,KAAK;QACL,SAAS,GAAG,CAAC,IAAI,EAAE;QACnB,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QACjD,YAAY,GAAG,CAAC,OAAO,EAAE;QACzB,UAAU,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;KACjC,CAAC;IACF,IAAI,GAAG,CAAC,KAAK;QAAE,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9C,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;IACD,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;AACjD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"official-agents.d.ts","sourceRoot":"","sources":["../../src/agents/official-agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AA0cvD,eAAO,MAAM,eAAe,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"official-agents.d.ts","sourceRoot":"","sources":["../../src/agents/official-agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AA0cvD,eAAO,MAAM,eAAe,EAAE,eAAe,EA4G5C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE3E"}
|
|
@@ -478,8 +478,9 @@ export const OFFICIAL_AGENTS = [
|
|
|
478
478
|
name: 'refactor-specialist',
|
|
479
479
|
description: '大规模重构与技术债消除',
|
|
480
480
|
category: 'specialist',
|
|
481
|
-
version: '0.
|
|
481
|
+
version: '0.3.0',
|
|
482
482
|
tools: ['Read', 'Write', 'Edit', 'Grep', 'Glob', 'Bash'],
|
|
483
|
+
skills: ['official-refactor', 'official-harness-engineering'],
|
|
483
484
|
content: REFACTOR_SPECIALIST_BODY,
|
|
484
485
|
},
|
|
485
486
|
{
|
|
@@ -494,16 +495,18 @@ export const OFFICIAL_AGENTS = [
|
|
|
494
495
|
name: 'tester',
|
|
495
496
|
description: '测试编写与覆盖率提升',
|
|
496
497
|
category: 'quality',
|
|
497
|
-
version: '0.
|
|
498
|
+
version: '0.3.0',
|
|
498
499
|
tools: ['Read', 'Write', 'Edit', 'Grep', 'Glob', 'Bash'],
|
|
500
|
+
skills: ['official-tdd'],
|
|
499
501
|
content: TESTER_BODY,
|
|
500
502
|
},
|
|
501
503
|
{
|
|
502
504
|
name: 'reviewer',
|
|
503
505
|
description: '代码评审和质量检查',
|
|
504
506
|
category: 'quality',
|
|
505
|
-
version: '0.
|
|
507
|
+
version: '0.4.0',
|
|
506
508
|
tools: ['Read', 'Grep', 'Glob'],
|
|
509
|
+
skills: ['official-pr-review'],
|
|
507
510
|
content: REVIEWER_BODY,
|
|
508
511
|
},
|
|
509
512
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"official-agents.js","sourceRoot":"","sources":["../../src/agents/official-agents.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"official-agents.js","sourceRoot":"","sources":["../../src/agents/official-agents.ts"],"names":[],"mappings":"AAEA,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCpB,CAAC;AAEF,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgClB,CAAC;AAEF,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BhC,CAAC;AAEF,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiC9B,CAAC;AAEF,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BhC,CAAC;AAEF,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B9B,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BnB,CAAC;AAEF,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCrB,CAAC;AAEF,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCvB,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BxB,CAAC;AAEF,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCzB,CAAC;AAEF,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C5B,CAAC;AAEF,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCvB,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAsB;IAChD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,2BAA2B;QACxC,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC;QACxD,OAAO,EAAE,YAAY;KACtB;IACD;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,uBAAuB;QACpC,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QACxD,OAAO,EAAE,UAAU;KACpB;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,yBAAyB;QACtC,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;QACjE,OAAO,EAAE,wBAAwB;KAClC;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,YAAY;QACzB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QACxD,OAAO,EAAE,sBAAsB;KAChC;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,aAAa;QAC1B,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QACxD,MAAM,EAAE,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;QAC7D,OAAO,EAAE,wBAAwB;KAClC;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,0BAA0B;QACvC,QAAQ,EAAE,YAAY;QACtB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC;QACxD,OAAO,EAAE,sBAAsB;KAChC;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,YAAY;QACzB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QACxD,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,OAAO,EAAE,WAAW;KACrB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,MAAM,EAAE,CAAC,oBAAoB,CAAC;QAC9B,OAAO,EAAE,aAAa;KACvB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC;QACxD,OAAO,EAAE,eAAe;KACzB;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,+BAA+B;QAC5C,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;QACxC,OAAO,EAAE,gBAAgB;KAC1B;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,uBAAuB;QACpC,QAAQ,EAAE,eAAe;QACzB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,OAAO,EAAE,iBAAiB;KAC3B;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,yBAAyB;QACtC,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,GAAG,CAAC;QACZ,OAAO,EAAE,oBAAoB;KAC9B;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,sBAAsB;QACnC,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QAC/B,OAAO,EAAE,eAAe;KACzB;CACF,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -10,10 +10,12 @@
|
|
|
10
10
|
* Phase 1 ships builtin + user + project; preset layer plugs in at Phase 3.
|
|
11
11
|
*/
|
|
12
12
|
import type { AgentRecord } from './definition.js';
|
|
13
|
+
import type { SkillRegistry } from '../skills/registry.js';
|
|
13
14
|
export declare class AgentRegistry {
|
|
14
15
|
private readonly projectPath?;
|
|
15
16
|
private agents;
|
|
16
|
-
|
|
17
|
+
private skillRegistry;
|
|
18
|
+
constructor(projectPath?: string | undefined, skillRegistry?: SkillRegistry);
|
|
17
19
|
private scan;
|
|
18
20
|
private loadBuiltin;
|
|
19
21
|
private loadFromDir;
|
|
@@ -23,5 +25,19 @@ export declare class AgentRegistry {
|
|
|
23
25
|
getAll(): AgentRecord[];
|
|
24
26
|
/** Re-scan layers. */
|
|
25
27
|
reload(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Inject skill content as methodology reference into agent content.
|
|
30
|
+
* If skills are declared but SkillRegistry is not available, log warning.
|
|
31
|
+
*/
|
|
32
|
+
private injectSkillContent;
|
|
33
|
+
/**
|
|
34
|
+
* Inject a dynamic skill manifest (id + description only) at the end of agent content.
|
|
35
|
+
* This tells the Agent which skills are available for on-demand invocation via
|
|
36
|
+
* the SkillInvoke tool, without injecting the full skill bodies (to save tokens).
|
|
37
|
+
*
|
|
38
|
+
* Skills already statically injected via injectSkillContent() are excluded from
|
|
39
|
+
* the manifest to avoid duplication.
|
|
40
|
+
*/
|
|
41
|
+
private injectDynamicSkillManifest;
|
|
26
42
|
}
|
|
27
43
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,KAAK,EAAiB,WAAW,EAAe,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,KAAK,EAAiB,WAAW,EAAe,MAAM,iBAAiB,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI3D,qBAAa,aAAa;IAKtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAJ/B,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,aAAa,CAA8B;gBAGhC,WAAW,CAAC,EAAE,MAAM,YAAA,EACrC,aAAa,CAAC,EAAE,aAAa;IAM/B,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,WAAW;IAgEnB,mCAAmC;IACnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAI1C,gCAAgC;IAChC,MAAM,IAAI,WAAW,EAAE;IAIvB,sBAAsB;IACtB,MAAM,IAAI,IAAI;IAKd;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAuC1B;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;CA2CnC"}
|
package/dist/agents/registry.js
CHANGED
|
@@ -19,8 +19,10 @@ const USER_AGENTS_DIR = path.join(homedir(), '.claude', 'agents');
|
|
|
19
19
|
export class AgentRegistry {
|
|
20
20
|
projectPath;
|
|
21
21
|
agents = new Map();
|
|
22
|
-
|
|
22
|
+
skillRegistry = null;
|
|
23
|
+
constructor(projectPath, skillRegistry) {
|
|
23
24
|
this.projectPath = projectPath;
|
|
25
|
+
this.skillRegistry = skillRegistry ?? null;
|
|
24
26
|
this.scan();
|
|
25
27
|
}
|
|
26
28
|
scan() {
|
|
@@ -33,17 +35,26 @@ export class AgentRegistry {
|
|
|
33
35
|
}
|
|
34
36
|
loadBuiltin() {
|
|
35
37
|
for (const def of OFFICIAL_AGENTS) {
|
|
36
|
-
|
|
38
|
+
logger.debug(`[AgentRegistry] Loading agent ${def.name}, skills: ${JSON.stringify(def.skills)}`);
|
|
39
|
+
const contentWithStatic = this.injectSkillContent(def.content, def.skills);
|
|
40
|
+
const content = this.injectDynamicSkillManifest(contentWithStatic, def.skills ?? []);
|
|
41
|
+
const record = {
|
|
37
42
|
name: def.name,
|
|
38
43
|
description: def.description,
|
|
39
44
|
category: def.category,
|
|
40
45
|
version: def.version,
|
|
41
46
|
tools: def.tools,
|
|
42
47
|
model: def.model,
|
|
43
|
-
content
|
|
48
|
+
content,
|
|
44
49
|
source: 'builtin',
|
|
45
50
|
path: '<builtin>',
|
|
46
|
-
}
|
|
51
|
+
};
|
|
52
|
+
if (def.skills && def.skills.length > 0) {
|
|
53
|
+
record.skills = def.skills;
|
|
54
|
+
logger.debug(`[AgentRegistry] Agent ${def.name} has ${def.skills.length} skill(s): ${def.skills.join(', ')}`);
|
|
55
|
+
}
|
|
56
|
+
logger.debug(`[AgentRegistry] Stored agent ${def.name}, record.skills: ${JSON.stringify(record.skills)}`);
|
|
57
|
+
this.agents.set(def.name, record);
|
|
47
58
|
}
|
|
48
59
|
}
|
|
49
60
|
loadFromDir(dir, source) {
|
|
@@ -71,17 +82,27 @@ export class AgentRegistry {
|
|
|
71
82
|
? data.category
|
|
72
83
|
: 'core';
|
|
73
84
|
const model = typeof data.model === 'string' ? data.model : undefined;
|
|
74
|
-
|
|
85
|
+
// Parse skills field
|
|
86
|
+
const rawSkills = data.skills;
|
|
87
|
+
const skills = Array.isArray(rawSkills)
|
|
88
|
+
? rawSkills.filter((s) => typeof s === 'string')
|
|
89
|
+
: undefined;
|
|
90
|
+
const content = this.injectDynamicSkillManifest(this.injectSkillContent(parsed.content.trim(), skills), skills ?? []);
|
|
91
|
+
const record = {
|
|
75
92
|
name,
|
|
76
93
|
description,
|
|
77
94
|
category,
|
|
78
95
|
version,
|
|
79
96
|
tools,
|
|
80
97
|
model,
|
|
81
|
-
content
|
|
98
|
+
content,
|
|
82
99
|
source,
|
|
83
100
|
path: filePath,
|
|
84
|
-
}
|
|
101
|
+
};
|
|
102
|
+
if (skills && skills.length > 0) {
|
|
103
|
+
record.skills = skills;
|
|
104
|
+
}
|
|
105
|
+
this.agents.set(name, record);
|
|
85
106
|
}
|
|
86
107
|
catch (err) {
|
|
87
108
|
logger.warn(`[AgentRegistry] Failed to parse ${filePath}: ${err}`);
|
|
@@ -101,5 +122,83 @@ export class AgentRegistry {
|
|
|
101
122
|
this.agents.clear();
|
|
102
123
|
this.scan();
|
|
103
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* Inject skill content as methodology reference into agent content.
|
|
127
|
+
* If skills are declared but SkillRegistry is not available, log warning.
|
|
128
|
+
*/
|
|
129
|
+
injectSkillContent(content, skills) {
|
|
130
|
+
if (!skills || skills.length === 0) {
|
|
131
|
+
return content;
|
|
132
|
+
}
|
|
133
|
+
if (!this.skillRegistry) {
|
|
134
|
+
logger.warn(`[AgentRegistry] Skills declared [${skills.join(', ')}] but SkillRegistry not available`);
|
|
135
|
+
return content;
|
|
136
|
+
}
|
|
137
|
+
const skillContents = [];
|
|
138
|
+
for (const skillId of skills) {
|
|
139
|
+
const skill = this.skillRegistry.getAll().find(s => s.id === skillId);
|
|
140
|
+
if (skill) {
|
|
141
|
+
skillContents.push(`### ${skill.name}\n\n${skill.content}`);
|
|
142
|
+
logger.debug(`[AgentRegistry] Injected skill: ${skillId}`);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
logger.warn(`[AgentRegistry] Skill not found: ${skillId}`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (skillContents.length === 0) {
|
|
149
|
+
return content;
|
|
150
|
+
}
|
|
151
|
+
return `${content}
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 参考方法论
|
|
156
|
+
|
|
157
|
+
以下是本 Agent 依赖的 Skill 方法论,供参考使用:
|
|
158
|
+
|
|
159
|
+
${skillContents.join('\n\n---\n\n')}
|
|
160
|
+
`;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Inject a dynamic skill manifest (id + description only) at the end of agent content.
|
|
164
|
+
* This tells the Agent which skills are available for on-demand invocation via
|
|
165
|
+
* the SkillInvoke tool, without injecting the full skill bodies (to save tokens).
|
|
166
|
+
*
|
|
167
|
+
* Skills already statically injected via injectSkillContent() are excluded from
|
|
168
|
+
* the manifest to avoid duplication.
|
|
169
|
+
*/
|
|
170
|
+
injectDynamicSkillManifest(agentContent, staticSkillIds) {
|
|
171
|
+
if (!this.skillRegistry) {
|
|
172
|
+
return agentContent;
|
|
173
|
+
}
|
|
174
|
+
const allSkills = this.skillRegistry.getManifest();
|
|
175
|
+
const availableSkills = allSkills.filter((s) => !staticSkillIds.includes(s.id));
|
|
176
|
+
if (availableSkills.length === 0) {
|
|
177
|
+
return agentContent;
|
|
178
|
+
}
|
|
179
|
+
const manifest = availableSkills
|
|
180
|
+
.map((s) => {
|
|
181
|
+
const desc = s.description?.trim() || s.name;
|
|
182
|
+
return `- \`${s.id}\`: ${desc}`;
|
|
183
|
+
})
|
|
184
|
+
.join('\n');
|
|
185
|
+
const section = `
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## 可动态调用的 Skill 清单
|
|
190
|
+
|
|
191
|
+
以下 Skill 可通过 \`SkillInvoke({ skill_id, reason })\` 工具动态调用,获取完整方法论内容:
|
|
192
|
+
|
|
193
|
+
${manifest}
|
|
194
|
+
|
|
195
|
+
**使用建议**:
|
|
196
|
+
- 当你需要特定领域的方法论指导时(如 TDD、重构、性能优化),调用 \`SkillInvoke\`
|
|
197
|
+
- 调用前请说明 \`reason\`(为什么需要这个 Skill)
|
|
198
|
+
- 同一 Skill 在同一会话中只能调用一次(幂等保护)
|
|
199
|
+
- 单会话总调用次数限制:10 次
|
|
200
|
+
`;
|
|
201
|
+
return agentContent + section;
|
|
202
|
+
}
|
|
104
203
|
}
|
|
105
204
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Capability System
|
|
2
|
+
* Capability System
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* NOTE: The methodology orchestration subsystem was removed in v8.36.0
|
|
5
|
+
* (hard deprecation phase B.1). This namespace is intentionally left empty
|
|
6
|
+
* so that legacy imports fail with a clear "module not found" error during
|
|
7
|
+
* the migration window. Functionality has migrated to the Skill system.
|
|
5
8
|
*/
|
|
6
|
-
export
|
|
7
|
-
export * from './methodology-registry.js';
|
|
8
|
-
export * from './methodology-planner.js';
|
|
9
|
+
export {};
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capability/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/capability/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC"}
|
package/dist/capability/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Capability System
|
|
2
|
+
* Capability System
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* NOTE: The methodology orchestration subsystem was removed in v8.36.0
|
|
5
|
+
* (hard deprecation phase B.1). This namespace is intentionally left empty
|
|
6
|
+
* so that legacy imports fail with a clear "module not found" error during
|
|
7
|
+
* the migration window. Functionality has migrated to the Skill system.
|
|
5
8
|
*/
|
|
6
|
-
export
|
|
7
|
-
export * from './methodology-registry.js';
|
|
8
|
-
export * from './methodology-planner.js';
|
|
9
|
+
export {};
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capability/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/capability/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -1,79 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Capability System Types
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* NOTE: Methodology system was removed in v8.36.0 (hard deprecation phase B.1).
|
|
5
|
+
* This file is intentionally left as a placeholder so that residual imports
|
|
6
|
+
* fail loudly during the migration window; remove entirely once all callers
|
|
7
|
+
* have been updated.
|
|
5
8
|
*/
|
|
6
|
-
export
|
|
7
|
-
id: string;
|
|
8
|
-
name: string;
|
|
9
|
-
description: string;
|
|
10
|
-
trigger: MethodologyTrigger;
|
|
11
|
-
phase_templates: Record<string, PhaseTemplate>;
|
|
12
|
-
decision_rules?: DecisionRule[];
|
|
13
|
-
}
|
|
14
|
-
export interface MethodologyTrigger {
|
|
15
|
-
taskType?: string[];
|
|
16
|
-
complexity?: string[];
|
|
17
|
-
keywords?: string[];
|
|
18
|
-
}
|
|
19
|
-
export interface PhaseTemplate {
|
|
20
|
-
agent: string;
|
|
21
|
-
prompt_template: string;
|
|
22
|
-
artifacts?: ArtifactRequirement[];
|
|
23
|
-
description?: string;
|
|
24
|
-
}
|
|
25
|
-
export interface ArtifactRequirement {
|
|
26
|
-
type: 'file' | 'test_coverage' | 'test_pass' | 'git_diff';
|
|
27
|
-
pattern?: string;
|
|
28
|
-
min?: number;
|
|
29
|
-
required?: boolean;
|
|
30
|
-
}
|
|
31
|
-
export interface DecisionRule {
|
|
32
|
-
condition: string;
|
|
33
|
-
phases: string[];
|
|
34
|
-
description?: string;
|
|
35
|
-
}
|
|
36
|
-
export interface ExecutionPlan {
|
|
37
|
-
phases: PlannedPhase[];
|
|
38
|
-
rationale: string;
|
|
39
|
-
methodology_id: string;
|
|
40
|
-
}
|
|
41
|
-
export interface PlannedPhase {
|
|
42
|
-
id: string;
|
|
43
|
-
agent: string;
|
|
44
|
-
prompt: string;
|
|
45
|
-
rationale: string;
|
|
46
|
-
artifacts?: ArtifactRequirement[];
|
|
47
|
-
}
|
|
48
|
-
export interface MethodologyExecution {
|
|
49
|
-
id: number;
|
|
50
|
-
session_id: string;
|
|
51
|
-
methodology_id: string;
|
|
52
|
-
plan_json: string;
|
|
53
|
-
original_plan_json?: string | null;
|
|
54
|
-
current_phase_index: number;
|
|
55
|
-
status: 'running' | 'completed' | 'failed' | 'cancelled';
|
|
56
|
-
mode?: 'foreground' | 'background';
|
|
57
|
-
worker_pid?: number | null;
|
|
58
|
-
worker_session_id?: string | null;
|
|
59
|
-
retry_count?: number;
|
|
60
|
-
started_at: number;
|
|
61
|
-
completed_at?: number;
|
|
62
|
-
}
|
|
63
|
-
export interface PhaseExecution {
|
|
64
|
-
id: number;
|
|
65
|
-
methodology_execution_id: number;
|
|
66
|
-
phase_id: string;
|
|
67
|
-
phase_index: number;
|
|
68
|
-
agent_name: string;
|
|
69
|
-
prompt: string;
|
|
70
|
-
status: 'pending' | 'running' | 'completed' | 'failed';
|
|
71
|
-
started_at?: number;
|
|
72
|
-
completed_at?: number;
|
|
73
|
-
duration_ms?: number;
|
|
74
|
-
artifacts_json?: string | null;
|
|
75
|
-
output_text?: string | null;
|
|
76
|
-
error_message?: string | null;
|
|
77
|
-
stream_log_path?: string | null;
|
|
78
|
-
}
|
|
9
|
+
export {};
|
|
79
10
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/capability/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/capability/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC"}
|
package/dist/capability/types.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Capability System Types
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* NOTE: Methodology system was removed in v8.36.0 (hard deprecation phase B.1).
|
|
5
|
+
* This file is intentionally left as a placeholder so that residual imports
|
|
6
|
+
* fail loudly during the migration window; remove entirely once all callers
|
|
7
|
+
* have been updated.
|
|
5
8
|
*/
|
|
6
9
|
export {};
|
|
7
10
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/capability/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/capability/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executions.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/executions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4GhE"}
|