@winspan/claude-forge 8.34.0 → 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/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/core/storage/rows.d.ts +0 -36
- package/dist/core/storage/rows.d.ts.map +1 -1
- package/dist/core/storage/schema.sql +1 -45
- package/dist/core/storage/sqlite.d.ts +2 -79
- package/dist/core/storage/sqlite.d.ts.map +1 -1
- package/dist/core/storage/sqlite.js +3 -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 +1 -15
- package/dist/daemon/handlers/stop.d.ts.map +1 -1
- package/dist/daemon/handlers/stop.js +1 -95
- package/dist/daemon/handlers/stop.js.map +1 -1
- package/dist/daemon/handlers/user-prompt.d.ts +1 -5
- package/dist/daemon/handlers/user-prompt.d.ts.map +1 -1
- package/dist/daemon/handlers/user-prompt.js +4 -96
- package/dist/daemon/handlers/user-prompt.js.map +1 -1
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +3 -54
- package/dist/daemon/index.js.map +1 -1
- 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/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/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/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
|
|
|
@@ -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"}
|
|
@@ -103,45 +103,9 @@ export interface TaskRow {
|
|
|
103
103
|
event_count: number;
|
|
104
104
|
created_at: string;
|
|
105
105
|
}
|
|
106
|
-
export interface MethodologyExecutionRow {
|
|
107
|
-
id: number;
|
|
108
|
-
session_id: string;
|
|
109
|
-
methodology_id: string;
|
|
110
|
-
plan_json: string;
|
|
111
|
-
original_plan_json: string | null;
|
|
112
|
-
current_phase_index: number;
|
|
113
|
-
status: 'running' | 'completed' | 'failed' | 'cancelled' | 'stale';
|
|
114
|
-
mode: 'foreground' | 'background';
|
|
115
|
-
worker_pid: number | null;
|
|
116
|
-
worker_session_id: string | null;
|
|
117
|
-
trigger_type: 'manual' | 'idle' | 'scheduled' | null;
|
|
118
|
-
retry_count: number | null;
|
|
119
|
-
last_progress_at: number | null;
|
|
120
|
-
started_at: number;
|
|
121
|
-
completed_at: number | null;
|
|
122
|
-
created_at: string;
|
|
123
|
-
}
|
|
124
|
-
export interface PhaseExecutionRow {
|
|
125
|
-
id: number;
|
|
126
|
-
methodology_execution_id: number;
|
|
127
|
-
phase_id: string;
|
|
128
|
-
phase_index: number;
|
|
129
|
-
agent_name: string;
|
|
130
|
-
prompt: string;
|
|
131
|
-
status: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
|
|
132
|
-
started_at: number | null;
|
|
133
|
-
completed_at: number | null;
|
|
134
|
-
duration_ms: number | null;
|
|
135
|
-
artifacts_json: string | null;
|
|
136
|
-
output_text: string | null;
|
|
137
|
-
error_message: string | null;
|
|
138
|
-
stream_log_path: string | null;
|
|
139
|
-
created_at: string;
|
|
140
|
-
}
|
|
141
106
|
export interface TokenUsageRow {
|
|
142
107
|
id: number;
|
|
143
108
|
session_id: string;
|
|
144
|
-
methodology_execution_id: number | null;
|
|
145
109
|
timestamp: number;
|
|
146
110
|
input_tokens: number;
|
|
147
111
|
output_tokens: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../../src/core/storage/rows.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../../src/core/storage/rows.ts"],"names":[],"mappings":"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"}
|
|
@@ -224,66 +224,22 @@ CREATE TABLE IF NOT EXISTS routing_rule_states (
|
|
|
224
224
|
|
|
225
225
|
CREATE INDEX IF NOT EXISTS idx_rule_states_disabled ON routing_rule_states(disabled);
|
|
226
226
|
|
|
227
|
-
-- ── Methodology Executions (方法论执行追踪) ──────────────────────────────
|
|
228
|
-
-- 记录方法论的执行实例和动态生成的执行计划
|
|
229
|
-
|
|
230
|
-
CREATE TABLE IF NOT EXISTS methodology_executions (
|
|
231
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
232
|
-
session_id TEXT NOT NULL,
|
|
233
|
-
methodology_id TEXT NOT NULL,
|
|
234
|
-
plan_json TEXT NOT NULL, -- 动态生成的执行计划(JSON)
|
|
235
|
-
current_phase_index INTEGER DEFAULT 0,
|
|
236
|
-
status TEXT NOT NULL DEFAULT 'running' CHECK(status IN ('running', 'completed', 'failed', 'cancelled', 'stale')),
|
|
237
|
-
started_at INTEGER NOT NULL,
|
|
238
|
-
completed_at INTEGER,
|
|
239
|
-
last_progress_at INTEGER, -- 最后一次推进时间戳(ms),用于 stale 判定
|
|
240
|
-
created_at TEXT DEFAULT (datetime('now'))
|
|
241
|
-
);
|
|
242
|
-
|
|
243
|
-
CREATE INDEX IF NOT EXISTS idx_methodology_exec_session ON methodology_executions(session_id);
|
|
244
|
-
CREATE INDEX IF NOT EXISTS idx_methodology_exec_status ON methodology_executions(status);
|
|
245
|
-
|
|
246
|
-
-- ── Phase Executions (阶段执行记录) ──────────────────────────────────────
|
|
247
|
-
-- 记录每个阶段的执行情况
|
|
248
|
-
|
|
249
|
-
CREATE TABLE IF NOT EXISTS phase_executions (
|
|
250
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
251
|
-
methodology_execution_id INTEGER NOT NULL,
|
|
252
|
-
phase_id TEXT NOT NULL,
|
|
253
|
-
phase_index INTEGER NOT NULL,
|
|
254
|
-
agent_name TEXT NOT NULL,
|
|
255
|
-
prompt TEXT NOT NULL,
|
|
256
|
-
status TEXT NOT NULL DEFAULT 'pending' CHECK(status IN ('pending', 'running', 'completed', 'failed', 'cancelled')),
|
|
257
|
-
started_at INTEGER,
|
|
258
|
-
completed_at INTEGER,
|
|
259
|
-
duration_ms INTEGER,
|
|
260
|
-
artifacts_json TEXT, -- 产物记录(JSON)
|
|
261
|
-
created_at TEXT DEFAULT (datetime('now')),
|
|
262
|
-
FOREIGN KEY (methodology_execution_id) REFERENCES methodology_executions(id)
|
|
263
|
-
);
|
|
264
|
-
|
|
265
|
-
CREATE INDEX IF NOT EXISTS idx_phase_exec_methodology ON phase_executions(methodology_execution_id);
|
|
266
|
-
CREATE INDEX IF NOT EXISTS idx_phase_exec_status ON phase_executions(status);
|
|
267
|
-
|
|
268
227
|
-- ── Token Usage (Token 用量追踪) ──────────────────────────────────────────
|
|
269
228
|
-- 记录每次 AI 调用的 token 用量,用于成本可观测和预算控制
|
|
270
229
|
|
|
271
230
|
CREATE TABLE IF NOT EXISTS token_usage (
|
|
272
231
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
273
232
|
session_id TEXT NOT NULL,
|
|
274
|
-
methodology_execution_id INTEGER, -- 可选,关联方法论执行
|
|
275
233
|
timestamp INTEGER NOT NULL,
|
|
276
234
|
input_tokens INTEGER NOT NULL,
|
|
277
235
|
output_tokens INTEGER NOT NULL,
|
|
278
236
|
total_tokens INTEGER NOT NULL,
|
|
279
237
|
model TEXT, -- 如 'claude-opus-4-7'
|
|
280
238
|
tool_name TEXT, -- 如 'Task' / 'Read' / 'Agent' / 'classify' / 'plan'
|
|
281
|
-
created_at TEXT DEFAULT (datetime('now'))
|
|
282
|
-
FOREIGN KEY (methodology_execution_id) REFERENCES methodology_executions(id)
|
|
239
|
+
created_at TEXT DEFAULT (datetime('now'))
|
|
283
240
|
);
|
|
284
241
|
|
|
285
242
|
CREATE INDEX IF NOT EXISTS idx_token_usage_session ON token_usage(session_id);
|
|
286
|
-
CREATE INDEX IF NOT EXISTS idx_token_usage_methodology ON token_usage(methodology_execution_id);
|
|
287
243
|
CREATE INDEX IF NOT EXISTS idx_token_usage_timestamp ON token_usage(timestamp DESC);
|
|
288
244
|
|
|
289
245
|
-- ── Skill Invocations (Skill 调用链路追踪) ─────────────────────────────────
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
import Database from 'better-sqlite3';
|
|
6
6
|
import { EventEmitter } from 'node:events';
|
|
7
7
|
import type { ForgeEvent } from '../types.js';
|
|
8
|
-
import type {
|
|
9
|
-
export type { EventRow, SessionRow, QualityIssueRow, DistillResultRow, ToolEventRow, DecisionRow, InjectionRow, TaskRow,
|
|
8
|
+
import type { SkillInvocationRow } from './rows.js';
|
|
9
|
+
export type { EventRow, SessionRow, QualityIssueRow, DistillResultRow, ToolEventRow, DecisionRow, InjectionRow, TaskRow, TokenUsageRow, SkillInvocationRow, } from './rows.js';
|
|
10
10
|
type DecisionLevel = 'allow' | 'warn' | 'confirm' | 'block';
|
|
11
11
|
export interface SessionSummary {
|
|
12
12
|
session_id: string;
|
|
@@ -117,24 +117,6 @@ export declare class SQLiteStorage extends EventEmitter {
|
|
|
117
117
|
* upsert 过的数据。
|
|
118
118
|
*/
|
|
119
119
|
private backfillSessionsIfNeeded;
|
|
120
|
-
/**
|
|
121
|
-
* SQLite 无法直接修改 CHECK 约束。若旧库的 phase_executions.status CHECK
|
|
122
|
-
* 还没有 'cancelled',走经典的"新表 + 拷数据 + 重命名"路径升级。
|
|
123
|
-
*
|
|
124
|
-
* 幂等:检测到当前 CREATE TABLE 语句里已有 'cancelled' 就跳过。fresh install
|
|
125
|
-
* 的库会直接命中 schema.sql 里的新定义,这里也直接跳过。
|
|
126
|
-
*/
|
|
127
|
-
private rebuildPhaseExecutionsIfNeeded;
|
|
128
|
-
/**
|
|
129
|
-
* methodology_executions.status CHECK 升级:加入 'stale' 枚举值。
|
|
130
|
-
* 幂等:CREATE TABLE 语句里已含 'stale' 则跳过;fresh install 会命中 schema.sql
|
|
131
|
-
* 的新定义,这里也跳过。
|
|
132
|
-
*
|
|
133
|
-
* 注意:必须在 addColumnIfMissing('last_progress_at' / 'retry_count' /
|
|
134
|
-
* 'original_plan_json' / 'trigger_type', ...) 之后执行,重建表时才能把它们一起
|
|
135
|
-
* 拷贝过去。重建方法内部再做一次兜底 addColumnIfMissing,避免未来新列漏同步。
|
|
136
|
-
*/
|
|
137
|
-
private rebuildMethodologyExecutionsIfNeeded;
|
|
138
120
|
getDatabase(): Database.Database;
|
|
139
121
|
getDbPath(): string;
|
|
140
122
|
writeEvent(event: ForgeEvent): void;
|
|
@@ -258,60 +240,8 @@ export declare class SQLiteStorage extends EventEmitter {
|
|
|
258
240
|
close(): void;
|
|
259
241
|
private getDbSizeMb;
|
|
260
242
|
private rowToEvent;
|
|
261
|
-
createMethodologyExecution(data: {
|
|
262
|
-
session_id: string;
|
|
263
|
-
methodology_id: string;
|
|
264
|
-
plan_json: string;
|
|
265
|
-
mode?: 'foreground' | 'background';
|
|
266
|
-
trigger_type?: 'manual' | 'idle' | 'scheduled';
|
|
267
|
-
}): number;
|
|
268
|
-
getActiveMethodologyExecution(session_id: string): MethodologyExecutionRow | null;
|
|
269
|
-
updateMethodologyExecution(id: number, data: {
|
|
270
|
-
current_phase_index?: number;
|
|
271
|
-
status?: MethodologyExecutionRow['status'];
|
|
272
|
-
completed_at?: number;
|
|
273
|
-
worker_pid?: number | null;
|
|
274
|
-
worker_session_id?: string | null;
|
|
275
|
-
last_progress_at?: number;
|
|
276
|
-
plan_json?: string;
|
|
277
|
-
retry_count?: number;
|
|
278
|
-
}): void;
|
|
279
|
-
getMethodologyExecution(id: number): MethodologyExecutionRow | null;
|
|
280
|
-
/**
|
|
281
|
-
* List all methodology_executions with status='running' and mode='background'.
|
|
282
|
-
* Used at daemon startup to detect crashed workers (worker_pid not alive).
|
|
283
|
-
*/
|
|
284
|
-
listRunningBackgroundExecutions(): MethodologyExecutionRow[];
|
|
285
|
-
/**
|
|
286
|
-
* List all methodology_executions with status='running' and mode='foreground'.
|
|
287
|
-
* Used at daemon startup to sweep stale foreground executions — rows left
|
|
288
|
-
* behind when the originating Claude session ended without Stop hook firing
|
|
289
|
-
* (crash / detach / pre-guard legacy data).
|
|
290
|
-
*/
|
|
291
|
-
listRunningForegroundExecutions(): MethodologyExecutionRow[];
|
|
292
|
-
createPhaseExecution(data: {
|
|
293
|
-
methodology_execution_id: number;
|
|
294
|
-
phase_id: string;
|
|
295
|
-
phase_index: number;
|
|
296
|
-
agent_name: string;
|
|
297
|
-
prompt: string;
|
|
298
|
-
}): number;
|
|
299
|
-
updatePhaseExecution(id: number, data: {
|
|
300
|
-
status?: PhaseExecutionRow['status'];
|
|
301
|
-
completed_at?: number;
|
|
302
|
-
artifacts_json?: string;
|
|
303
|
-
output_text?: string | null;
|
|
304
|
-
error_message?: string | null;
|
|
305
|
-
stream_log_path?: string | null;
|
|
306
|
-
}): void;
|
|
307
|
-
getPhaseExecutions(methodology_execution_id: number): PhaseExecutionRow[];
|
|
308
|
-
/**
|
|
309
|
-
* 获取指定 session 和 methodology 的最后一次 idle 触发时间
|
|
310
|
-
*/
|
|
311
|
-
getLastIdleTrigger(session_id: string, methodology_id: string): number | null;
|
|
312
243
|
recordTokenUsage(params: {
|
|
313
244
|
session_id: string;
|
|
314
|
-
methodology_execution_id?: number;
|
|
315
245
|
input_tokens: number;
|
|
316
246
|
output_tokens: number;
|
|
317
247
|
model?: string;
|
|
@@ -322,19 +252,12 @@ export declare class SQLiteStorage extends EventEmitter {
|
|
|
322
252
|
input_tokens: number;
|
|
323
253
|
output_tokens: number;
|
|
324
254
|
};
|
|
325
|
-
getTokenUsageByMethodology(methodology_execution_id: number): {
|
|
326
|
-
total_tokens: number;
|
|
327
|
-
input_tokens: number;
|
|
328
|
-
output_tokens: number;
|
|
329
|
-
};
|
|
330
255
|
listTokenUsage(filter?: {
|
|
331
256
|
session_id?: string;
|
|
332
|
-
methodology_execution_id?: number;
|
|
333
257
|
limit?: number;
|
|
334
258
|
}): Array<{
|
|
335
259
|
id: number;
|
|
336
260
|
session_id: string;
|
|
337
|
-
methodology_execution_id: number | null;
|
|
338
261
|
timestamp: number;
|
|
339
262
|
input_tokens: number;
|
|
340
263
|
output_tokens: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/core/storage/sqlite.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAKtC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/core/storage/sqlite.ts"],"names":[],"mappings":"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"}
|