@winspan/claude-forge 0.6.9 → 0.7.1

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.
Files changed (51) hide show
  1. package/dist/autopilot/intent-engine.js +2 -2
  2. package/dist/autopilot/intent-engine.js.map +1 -1
  3. package/dist/autopilot/quality-gate.d.ts.map +1 -1
  4. package/dist/autopilot/quality-gate.js +9 -0
  5. package/dist/autopilot/quality-gate.js.map +1 -1
  6. package/dist/claudemd/index.d.ts.map +1 -1
  7. package/dist/claudemd/index.js +8 -6
  8. package/dist/claudemd/index.js.map +1 -1
  9. package/dist/claudemd/writer.js +4 -4
  10. package/dist/claudemd/writer.js.map +1 -1
  11. package/dist/daemon/handlers/orchestration-context.d.ts +2 -0
  12. package/dist/daemon/handlers/orchestration-context.d.ts.map +1 -1
  13. package/dist/daemon/handlers/stages/05-conv-config.js +1 -1
  14. package/dist/daemon/handlers/stages/05-conv-config.js.map +1 -1
  15. package/dist/daemon/handlers/stages/06-engine-check.js +1 -1
  16. package/dist/daemon/handlers/stages/06-engine-check.js.map +1 -1
  17. package/dist/daemon/handlers/stages/07-pipeline-reply.js +3 -3
  18. package/dist/daemon/handlers/stages/07-pipeline-reply.js.map +1 -1
  19. package/dist/daemon/handlers/stages/11-intent-analysis.d.ts.map +1 -1
  20. package/dist/daemon/handlers/stages/11-intent-analysis.js +23 -2
  21. package/dist/daemon/handlers/stages/11-intent-analysis.js.map +1 -1
  22. package/dist/daemon/handlers/stages/18-complex-task.d.ts.map +1 -1
  23. package/dist/daemon/handlers/stages/18-complex-task.js +32 -6
  24. package/dist/daemon/handlers/stages/18-complex-task.js.map +1 -1
  25. package/dist/daemon/handlers/user-prompt-handler.d.ts.map +1 -1
  26. package/dist/daemon/handlers/user-prompt-handler.js +30 -7
  27. package/dist/daemon/handlers/user-prompt-handler.js.map +1 -1
  28. package/dist/daemon/index.d.ts.map +1 -1
  29. package/dist/daemon/index.js +11 -2
  30. package/dist/daemon/index.js.map +1 -1
  31. package/dist/distill/index.js +3 -3
  32. package/dist/distill/index.js.map +1 -1
  33. package/dist/pipeline/index.d.ts.map +1 -1
  34. package/dist/pipeline/index.js +9 -1
  35. package/dist/pipeline/index.js.map +1 -1
  36. package/dist/skill-registry/evolver/community-distiller.js +6 -6
  37. package/dist/skill-registry/evolver/community-distiller.js.map +1 -1
  38. package/dist/skill-registry/orchestrator.d.ts.map +1 -1
  39. package/dist/skill-registry/orchestrator.js +11 -4
  40. package/dist/skill-registry/orchestrator.js.map +1 -1
  41. package/dist/storage/repositories/event-repository.d.ts.map +1 -1
  42. package/dist/storage/repositories/event-repository.js +14 -4
  43. package/dist/storage/repositories/event-repository.js.map +1 -1
  44. package/dist/storage/sqlite.d.ts.map +1 -1
  45. package/dist/storage/sqlite.js +14 -4
  46. package/dist/storage/sqlite.js.map +1 -1
  47. package/dist/utils/stage-trace.d.ts +74 -0
  48. package/dist/utils/stage-trace.d.ts.map +1 -0
  49. package/dist/utils/stage-trace.js +125 -0
  50. package/dist/utils/stage-trace.js.map +1 -0
  51. package/package.json +1 -1
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Stage 执行透明度追踪
3
+ * 记录每个 Stage 的决策依据、执行动作、产出结果
4
+ */
5
+ /**
6
+ * Stage 追踪日志器
7
+ * 提供结构化的 Stage 执行记录能力
8
+ */
9
+ export class StageTraceLogger {
10
+ traces = [];
11
+ /** 开始追踪一个 Stage */
12
+ start(stage, index) {
13
+ this.traces.push({
14
+ stage,
15
+ index,
16
+ startTs: Date.now(),
17
+ status: 'running',
18
+ });
19
+ }
20
+ /** 记录决策依据 */
21
+ recordDecision(stage, basis, reason) {
22
+ const trace = this.findTrace(stage);
23
+ if (trace) {
24
+ trace.decisionBasis = basis;
25
+ trace.decisionReason = reason;
26
+ }
27
+ }
28
+ /** 记录执行动作 */
29
+ recordAction(stage, action) {
30
+ const trace = this.findTrace(stage);
31
+ if (trace) {
32
+ trace.executionAction = action;
33
+ }
34
+ }
35
+ /** 记录执行结果 */
36
+ recordResult(stage, result) {
37
+ const trace = this.findTrace(stage);
38
+ if (trace) {
39
+ trace.executionResult = result;
40
+ }
41
+ }
42
+ /** 标记 Stage 成功完成 */
43
+ success(stage) {
44
+ const trace = this.findTrace(stage);
45
+ if (trace) {
46
+ trace.status = 'success';
47
+ trace.endTs = Date.now();
48
+ }
49
+ }
50
+ /** 标记 Stage 降级处理 */
51
+ fallback(stage, error) {
52
+ const trace = this.findTrace(stage);
53
+ if (trace) {
54
+ trace.status = 'fallback';
55
+ trace.error = error;
56
+ trace.endTs = Date.now();
57
+ }
58
+ }
59
+ /** 标记 Stage 失败 */
60
+ error(stage, error) {
61
+ const trace = this.findTrace(stage);
62
+ if (trace) {
63
+ trace.status = 'error';
64
+ trace.error = error;
65
+ trace.endTs = Date.now();
66
+ }
67
+ }
68
+ /** 标记 Stage 跳过 */
69
+ skip(stage) {
70
+ const trace = this.findTrace(stage);
71
+ if (trace) {
72
+ trace.status = 'skipped';
73
+ trace.endTs = Date.now();
74
+ }
75
+ }
76
+ /** 获取所有追踪记录 */
77
+ getTraces() {
78
+ return this.traces;
79
+ }
80
+ /** 获取简明摘要(用户友好) */
81
+ getSummary() {
82
+ const lines = [];
83
+ for (const trace of this.traces) {
84
+ const duration = trace.endTs ? `${trace.endTs - trace.startTs}ms` : '进行中';
85
+ const statusIcon = this.getStatusIcon(trace.status);
86
+ lines.push(`${statusIcon} [${trace.index}] ${trace.stage} (${duration})`);
87
+ if (trace.decisionReason) {
88
+ lines.push(` 决策:${trace.decisionReason}`);
89
+ }
90
+ if (trace.executionAction) {
91
+ lines.push(` 动作:${trace.executionAction}`);
92
+ }
93
+ if (trace.executionResult?.summary) {
94
+ lines.push(` 结果:${trace.executionResult.summary}`);
95
+ }
96
+ if (trace.error) {
97
+ lines.push(` 错误:${trace.error}`);
98
+ }
99
+ }
100
+ return lines.join('\n');
101
+ }
102
+ /** 获取完整 JSON(调试用) */
103
+ getJSON() {
104
+ return JSON.stringify(this.traces, null, 2);
105
+ }
106
+ findTrace(stage) {
107
+ // 从后往前找,支持同名 Stage 多次执行
108
+ for (let i = this.traces.length - 1; i >= 0; i--) {
109
+ if (this.traces[i].stage === stage && this.traces[i].status === 'running') {
110
+ return this.traces[i];
111
+ }
112
+ }
113
+ return undefined;
114
+ }
115
+ getStatusIcon(status) {
116
+ switch (status) {
117
+ case 'success': return '✓';
118
+ case 'fallback': return '⚠';
119
+ case 'error': return '✗';
120
+ case 'skipped': return '○';
121
+ case 'running': return '●';
122
+ }
123
+ }
124
+ }
125
+ //# sourceMappingURL=stage-trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage-trace.js","sourceRoot":"","sources":["../../src/utils/stage-trace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@winspan/claude-forge",
3
- "version": "0.6.9",
3
+ "version": "0.7.1",
4
4
  "description": "SDLC intelligent orchestration engine for Claude Code",
5
5
  "main": "dist/cli/index.js",
6
6
  "type": "module",