@winspan/claude-forge 0.5.2 → 0.6.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.
Files changed (182) hide show
  1. package/README.md +3 -3
  2. package/dist/ai-gateway/index.d.ts +26 -0
  3. package/dist/ai-gateway/index.d.ts.map +1 -0
  4. package/dist/ai-gateway/index.js +67 -0
  5. package/dist/ai-gateway/index.js.map +1 -0
  6. package/dist/ai-gateway/model-selector.d.ts +6 -0
  7. package/dist/ai-gateway/model-selector.d.ts.map +1 -0
  8. package/dist/ai-gateway/model-selector.js +36 -0
  9. package/dist/ai-gateway/model-selector.js.map +1 -0
  10. package/dist/ai-gateway/rate-limiter.d.ts +20 -0
  11. package/dist/ai-gateway/rate-limiter.d.ts.map +1 -0
  12. package/dist/ai-gateway/rate-limiter.js +45 -0
  13. package/dist/ai-gateway/rate-limiter.js.map +1 -0
  14. package/dist/ai-gateway/response-cache.d.ts +17 -0
  15. package/dist/ai-gateway/response-cache.d.ts.map +1 -0
  16. package/dist/ai-gateway/response-cache.js +44 -0
  17. package/dist/ai-gateway/response-cache.js.map +1 -0
  18. package/dist/ai-provider/types.d.ts +2 -0
  19. package/dist/ai-provider/types.d.ts.map +1 -1
  20. package/dist/ai-provider/types.js.map +1 -1
  21. package/dist/daemon/handlers/context-builder.d.ts +55 -0
  22. package/dist/daemon/handlers/context-builder.d.ts.map +1 -0
  23. package/dist/daemon/handlers/context-builder.js +429 -0
  24. package/dist/daemon/handlers/context-builder.js.map +1 -0
  25. package/dist/daemon/handlers/orchestration-context.d.ts +37 -0
  26. package/dist/daemon/handlers/orchestration-context.d.ts.map +1 -0
  27. package/dist/daemon/handlers/orchestration-context.js +2 -0
  28. package/dist/daemon/handlers/orchestration-context.js.map +1 -0
  29. package/dist/daemon/handlers/session-cleanup.js +5 -5
  30. package/dist/daemon/handlers/session-cleanup.js.map +1 -1
  31. package/dist/daemon/handlers/stages/01-failure-signal.d.ts +8 -0
  32. package/dist/daemon/handlers/stages/01-failure-signal.d.ts.map +1 -0
  33. package/dist/daemon/handlers/stages/01-failure-signal.js +39 -0
  34. package/dist/daemon/handlers/stages/01-failure-signal.js.map +1 -0
  35. package/dist/daemon/handlers/stages/02-active-intervention.d.ts +8 -0
  36. package/dist/daemon/handlers/stages/02-active-intervention.d.ts.map +1 -0
  37. package/dist/daemon/handlers/stages/02-active-intervention.js +27 -0
  38. package/dist/daemon/handlers/stages/02-active-intervention.js.map +1 -0
  39. package/dist/daemon/handlers/stages/03-init-prompt.d.ts +8 -0
  40. package/dist/daemon/handlers/stages/03-init-prompt.d.ts.map +1 -0
  41. package/dist/daemon/handlers/stages/03-init-prompt.js +24 -0
  42. package/dist/daemon/handlers/stages/03-init-prompt.js.map +1 -0
  43. package/dist/daemon/handlers/stages/04-skill-suggestions.d.ts +8 -0
  44. package/dist/daemon/handlers/stages/04-skill-suggestions.d.ts.map +1 -0
  45. package/dist/daemon/handlers/stages/04-skill-suggestions.js +23 -0
  46. package/dist/daemon/handlers/stages/04-skill-suggestions.js.map +1 -0
  47. package/dist/daemon/handlers/stages/05-conv-config.d.ts +10 -0
  48. package/dist/daemon/handlers/stages/05-conv-config.d.ts.map +1 -0
  49. package/dist/daemon/handlers/stages/05-conv-config.js +23 -0
  50. package/dist/daemon/handlers/stages/05-conv-config.js.map +1 -0
  51. package/dist/daemon/handlers/stages/06-engine-check.d.ts +8 -0
  52. package/dist/daemon/handlers/stages/06-engine-check.d.ts.map +1 -0
  53. package/dist/daemon/handlers/stages/06-engine-check.js +13 -0
  54. package/dist/daemon/handlers/stages/06-engine-check.js.map +1 -0
  55. package/dist/daemon/handlers/stages/07-pipeline-reply.d.ts +9 -0
  56. package/dist/daemon/handlers/stages/07-pipeline-reply.d.ts.map +1 -0
  57. package/dist/daemon/handlers/stages/07-pipeline-reply.js +44 -0
  58. package/dist/daemon/handlers/stages/07-pipeline-reply.js.map +1 -0
  59. package/dist/daemon/handlers/stages/08-esc-interrupt.d.ts +9 -0
  60. package/dist/daemon/handlers/stages/08-esc-interrupt.d.ts.map +1 -0
  61. package/dist/daemon/handlers/stages/08-esc-interrupt.js +52 -0
  62. package/dist/daemon/handlers/stages/08-esc-interrupt.js.map +1 -0
  63. package/dist/daemon/handlers/stages/09-pipeline-active.d.ts +8 -0
  64. package/dist/daemon/handlers/stages/09-pipeline-active.d.ts.map +1 -0
  65. package/dist/daemon/handlers/stages/09-pipeline-active.js +20 -0
  66. package/dist/daemon/handlers/stages/09-pipeline-active.js.map +1 -0
  67. package/dist/daemon/handlers/stages/10-cooldown.d.ts +9 -0
  68. package/dist/daemon/handlers/stages/10-cooldown.d.ts.map +1 -0
  69. package/dist/daemon/handlers/stages/10-cooldown.js +44 -0
  70. package/dist/daemon/handlers/stages/10-cooldown.js.map +1 -0
  71. package/dist/daemon/handlers/stages/11-intent-analysis.d.ts +8 -0
  72. package/dist/daemon/handlers/stages/11-intent-analysis.d.ts.map +1 -0
  73. package/dist/daemon/handlers/stages/11-intent-analysis.js +38 -0
  74. package/dist/daemon/handlers/stages/11-intent-analysis.js.map +1 -0
  75. package/dist/daemon/handlers/stages/12-strategy-advice.d.ts +8 -0
  76. package/dist/daemon/handlers/stages/12-strategy-advice.d.ts.map +1 -0
  77. package/dist/daemon/handlers/stages/12-strategy-advice.js +20 -0
  78. package/dist/daemon/handlers/stages/12-strategy-advice.js.map +1 -0
  79. package/dist/daemon/handlers/stages/13-template-route.d.ts +8 -0
  80. package/dist/daemon/handlers/stages/13-template-route.d.ts.map +1 -0
  81. package/dist/daemon/handlers/stages/13-template-route.js +49 -0
  82. package/dist/daemon/handlers/stages/13-template-route.js.map +1 -0
  83. package/dist/daemon/handlers/stages/14-plan-resume.d.ts +8 -0
  84. package/dist/daemon/handlers/stages/14-plan-resume.d.ts.map +1 -0
  85. package/dist/daemon/handlers/stages/14-plan-resume.js +51 -0
  86. package/dist/daemon/handlers/stages/14-plan-resume.js.map +1 -0
  87. package/dist/daemon/handlers/stages/15-plan-enforcement.d.ts +8 -0
  88. package/dist/daemon/handlers/stages/15-plan-enforcement.d.ts.map +1 -0
  89. package/dist/daemon/handlers/stages/15-plan-enforcement.js +41 -0
  90. package/dist/daemon/handlers/stages/15-plan-enforcement.js.map +1 -0
  91. package/dist/daemon/handlers/stages/16-intervention-level.d.ts +8 -0
  92. package/dist/daemon/handlers/stages/16-intervention-level.d.ts.map +1 -0
  93. package/dist/daemon/handlers/stages/16-intervention-level.js +24 -0
  94. package/dist/daemon/handlers/stages/16-intervention-level.js.map +1 -0
  95. package/dist/daemon/handlers/stages/17-simple-task.d.ts +8 -0
  96. package/dist/daemon/handlers/stages/17-simple-task.d.ts.map +1 -0
  97. package/dist/daemon/handlers/stages/17-simple-task.js +47 -0
  98. package/dist/daemon/handlers/stages/17-simple-task.js.map +1 -0
  99. package/dist/daemon/handlers/stages/18-complex-task.d.ts +11 -0
  100. package/dist/daemon/handlers/stages/18-complex-task.d.ts.map +1 -0
  101. package/dist/daemon/handlers/stages/18-complex-task.js +84 -0
  102. package/dist/daemon/handlers/stages/18-complex-task.js.map +1 -0
  103. package/dist/daemon/handlers/stages/19-moderate-task.d.ts +8 -0
  104. package/dist/daemon/handlers/stages/19-moderate-task.d.ts.map +1 -0
  105. package/dist/daemon/handlers/stages/19-moderate-task.js +62 -0
  106. package/dist/daemon/handlers/stages/19-moderate-task.js.map +1 -0
  107. package/dist/daemon/handlers/stages/stage-interface.d.ts +24 -0
  108. package/dist/daemon/handlers/stages/stage-interface.d.ts.map +1 -0
  109. package/dist/daemon/handlers/stages/stage-interface.js +2 -0
  110. package/dist/daemon/handlers/stages/stage-interface.js.map +1 -0
  111. package/dist/daemon/handlers/stop-handler.js +2 -2
  112. package/dist/daemon/handlers/stop-handler.js.map +1 -1
  113. package/dist/daemon/handlers/user-prompt-handler.d.ts +1 -115
  114. package/dist/daemon/handlers/user-prompt-handler.d.ts.map +1 -1
  115. package/dist/daemon/handlers/user-prompt-handler.js +76 -1089
  116. package/dist/daemon/handlers/user-prompt-handler.js.map +1 -1
  117. package/dist/daemon/index.d.ts.map +1 -1
  118. package/dist/daemon/index.js +3 -1
  119. package/dist/daemon/index.js.map +1 -1
  120. package/dist/pipeline/artifact-generator.d.ts.map +1 -1
  121. package/dist/pipeline/artifact-generator.js +21 -0
  122. package/dist/pipeline/artifact-generator.js.map +1 -1
  123. package/dist/storage/repositories/api-usage-repository.d.ts +28 -0
  124. package/dist/storage/repositories/api-usage-repository.d.ts.map +1 -0
  125. package/dist/storage/repositories/api-usage-repository.js +59 -0
  126. package/dist/storage/repositories/api-usage-repository.js.map +1 -0
  127. package/dist/storage/repositories/base-repository.d.ts +6 -0
  128. package/dist/storage/repositories/base-repository.d.ts.map +1 -0
  129. package/dist/storage/repositories/base-repository.js +7 -0
  130. package/dist/storage/repositories/base-repository.js.map +1 -0
  131. package/dist/storage/repositories/distill-repository.d.ts +36 -0
  132. package/dist/storage/repositories/distill-repository.d.ts.map +1 -0
  133. package/dist/storage/repositories/distill-repository.js +85 -0
  134. package/dist/storage/repositories/distill-repository.js.map +1 -0
  135. package/dist/storage/repositories/event-repository.d.ts +14 -0
  136. package/dist/storage/repositories/event-repository.d.ts.map +1 -0
  137. package/dist/storage/repositories/event-repository.js +171 -0
  138. package/dist/storage/repositories/event-repository.js.map +1 -0
  139. package/dist/storage/repositories/failure-repository.d.ts +22 -0
  140. package/dist/storage/repositories/failure-repository.d.ts.map +1 -0
  141. package/dist/storage/repositories/failure-repository.js +26 -0
  142. package/dist/storage/repositories/failure-repository.js.map +1 -0
  143. package/dist/storage/repositories/intent-rule-repository.d.ts +20 -0
  144. package/dist/storage/repositories/intent-rule-repository.d.ts.map +1 -0
  145. package/dist/storage/repositories/intent-rule-repository.js +38 -0
  146. package/dist/storage/repositories/intent-rule-repository.js.map +1 -0
  147. package/dist/storage/repositories/knowledge-repository.d.ts +46 -0
  148. package/dist/storage/repositories/knowledge-repository.d.ts.map +1 -0
  149. package/dist/storage/repositories/knowledge-repository.js +84 -0
  150. package/dist/storage/repositories/knowledge-repository.js.map +1 -0
  151. package/dist/storage/repositories/latency-repository.d.ts +21 -0
  152. package/dist/storage/repositories/latency-repository.d.ts.map +1 -0
  153. package/dist/storage/repositories/latency-repository.js +42 -0
  154. package/dist/storage/repositories/latency-repository.js.map +1 -0
  155. package/dist/storage/repositories/maintenance-repository.d.ts +18 -0
  156. package/dist/storage/repositories/maintenance-repository.d.ts.map +1 -0
  157. package/dist/storage/repositories/maintenance-repository.js +61 -0
  158. package/dist/storage/repositories/maintenance-repository.js.map +1 -0
  159. package/dist/storage/repositories/satisfaction-repository.d.ts +21 -0
  160. package/dist/storage/repositories/satisfaction-repository.d.ts.map +1 -0
  161. package/dist/storage/repositories/satisfaction-repository.js +26 -0
  162. package/dist/storage/repositories/satisfaction-repository.js.map +1 -0
  163. package/dist/storage/repositories/session-repository.d.ts +16 -0
  164. package/dist/storage/repositories/session-repository.d.ts.map +1 -0
  165. package/dist/storage/repositories/session-repository.js +69 -0
  166. package/dist/storage/repositories/session-repository.js.map +1 -0
  167. package/dist/storage/repositories/task-repository.d.ts +82 -0
  168. package/dist/storage/repositories/task-repository.d.ts.map +1 -0
  169. package/dist/storage/repositories/task-repository.js +198 -0
  170. package/dist/storage/repositories/task-repository.js.map +1 -0
  171. package/dist/storage/sqlite.d.ts +25 -0
  172. package/dist/storage/sqlite.d.ts.map +1 -1
  173. package/dist/storage/sqlite.js +27 -0
  174. package/dist/storage/sqlite.js.map +1 -1
  175. package/dist/utils/claude-api.d.ts.map +1 -1
  176. package/dist/utils/claude-api.js +3 -1
  177. package/dist/utils/claude-api.js.map +1 -1
  178. package/dist/utils/logger.d.ts +7 -0
  179. package/dist/utils/logger.d.ts.map +1 -1
  180. package/dist/utils/logger.js +22 -0
  181. package/dist/utils/logger.js.map +1 -1
  182. package/package.json +1 -1
@@ -0,0 +1,21 @@
1
+ import { BaseRepository } from './base-repository.js';
2
+ export declare class SatisfactionRepository extends BaseRepository {
3
+ insertSatisfactionSignal(signal: {
4
+ id: string;
5
+ session_id: string;
6
+ project_path: string;
7
+ task_session_id?: string;
8
+ signal_type: string;
9
+ signal_value: number;
10
+ weight?: number;
11
+ raw_data?: Record<string, unknown>;
12
+ }): void;
13
+ getSatisfactionHistory(projectPath: string, limit?: number): Array<{
14
+ session_id: string;
15
+ score: number;
16
+ task_type: string;
17
+ complexity: string;
18
+ ended_at: string | null;
19
+ }>;
20
+ }
21
+ //# sourceMappingURL=satisfaction-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"satisfaction-repository.d.ts","sourceRoot":"","sources":["../../../src/storage/repositories/satisfaction-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,qBAAa,sBAAuB,SAAQ,cAAc;IACxD,wBAAwB,CAAC,MAAM,EAAE;QAC/B,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QACrD,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAC9C,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC3E,GAAG,IAAI;IAaR,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,KAAK,CAAC;QAC7D,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACnG,CAAC;CASH"}
@@ -0,0 +1,26 @@
1
+ import { BaseRepository } from './base-repository.js';
2
+ export class SatisfactionRepository extends BaseRepository {
3
+ insertSatisfactionSignal(signal) {
4
+ try {
5
+ this.db.prepare(`
6
+ INSERT OR IGNORE INTO satisfaction_signals
7
+ (id, session_id, project_path, task_session_id, signal_type, signal_value, weight, raw_data)
8
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
9
+ `).run(signal.id, signal.session_id, signal.project_path, signal.task_session_id ?? null, signal.signal_type, signal.signal_value, signal.weight ?? 1.0, signal.raw_data ? JSON.stringify(signal.raw_data) : null);
10
+ }
11
+ catch { /* 信号写入失败不影响主流程 */ }
12
+ }
13
+ getSatisfactionHistory(projectPath, limit = 10) {
14
+ try {
15
+ return this.db.prepare(`
16
+ SELECT session_id, satisfaction_score as score, task_type, complexity, ended_at
17
+ FROM task_sessions WHERE project_path = ? AND satisfaction_score IS NOT NULL
18
+ ORDER BY ended_at DESC LIMIT ?
19
+ `).all(projectPath, limit);
20
+ }
21
+ catch {
22
+ return [];
23
+ }
24
+ }
25
+ }
26
+ //# sourceMappingURL=satisfaction-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"satisfaction-repository.js","sourceRoot":"","sources":["../../../src/storage/repositories/satisfaction-repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,OAAO,sBAAuB,SAAQ,cAAc;IACxD,wBAAwB,CAAC,MAIxB;QACC,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;OAIf,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,YAAY,EACtD,MAAM,CAAC,eAAe,IAAI,IAAI,EAAE,MAAM,CAAC,WAAW,EAClD,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,IAAI,GAAG,EACzC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC;IAED,sBAAsB,CAAC,WAAmB,EAAE,KAAK,GAAG,EAAE;QAGpD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;OAItB,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAiH,CAAC;QAC7I,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC;IACxB,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ import type { Session, SessionStatus } from '../../types/session.js';
2
+ import type { SessionQuery } from '../index.js';
3
+ import { BaseRepository } from './base-repository.js';
4
+ export declare class SessionRepository extends BaseRepository {
5
+ getSession(sessionId: string, projectPath?: string): Session | null;
6
+ querySessions(filters: SessionQuery): Session[];
7
+ updateSessionStatus(sessionId: string, status: SessionStatus, endTime?: string, projectPath?: string): void;
8
+ getLastCompletedTaskSession(projectPath: string): {
9
+ id: string;
10
+ session_id: string;
11
+ satisfaction_score: number | null;
12
+ ended_at: string | null;
13
+ } | null;
14
+ private rowToSession;
15
+ }
16
+ //# sourceMappingURL=session-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-repository.d.ts","sourceRoot":"","sources":["../../../src/storage/repositories/session-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,qBAAa,iBAAkB,SAAQ,cAAc;IACnD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAQnE,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,EAAE;IAW/C,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAa3G,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG;QAChD,EAAE,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5F,GAAG,IAAI;IAUR,OAAO,CAAC,YAAY;CAWrB"}
@@ -0,0 +1,69 @@
1
+ import { BaseRepository } from './base-repository.js';
2
+ export class SessionRepository extends BaseRepository {
3
+ getSession(sessionId, projectPath) {
4
+ let sql = 'SELECT * FROM sessions WHERE session_id = ?';
5
+ const params = [sessionId];
6
+ if (projectPath) {
7
+ sql += ' AND project_path = ?';
8
+ params.push(projectPath);
9
+ }
10
+ const row = this.db.prepare(sql).get(...params);
11
+ return row ? this.rowToSession(row) : null;
12
+ }
13
+ querySessions(filters) {
14
+ let sql = 'SELECT * FROM sessions WHERE 1=1';
15
+ const params = [];
16
+ if (filters.project_path) {
17
+ sql += ' AND project_path = ?';
18
+ params.push(filters.project_path);
19
+ }
20
+ if (filters.status) {
21
+ sql += ' AND status = ?';
22
+ params.push(filters.status);
23
+ }
24
+ sql += ' ORDER BY start_time DESC';
25
+ if (filters.limit) {
26
+ sql += ' LIMIT ?';
27
+ params.push(filters.limit);
28
+ }
29
+ const rows = this.db.prepare(sql).all(...params);
30
+ return rows.map(this.rowToSession);
31
+ }
32
+ updateSessionStatus(sessionId, status, endTime, projectPath) {
33
+ const pathFilter = projectPath ? ' AND project_path = ?' : '';
34
+ if (endTime) {
35
+ const sql = `UPDATE sessions SET status = ?, end_time = ?, updated_at = datetime('now') WHERE session_id = ?${pathFilter}`;
36
+ const params = projectPath ? [status, endTime, sessionId, projectPath] : [status, endTime, sessionId];
37
+ this.db.prepare(sql).run(...params);
38
+ }
39
+ else {
40
+ const sql = `UPDATE sessions SET status = ?, updated_at = datetime('now') WHERE session_id = ?${pathFilter}`;
41
+ const params = projectPath ? [status, sessionId, projectPath] : [status, sessionId];
42
+ this.db.prepare(sql).run(...params);
43
+ }
44
+ }
45
+ getLastCompletedTaskSession(projectPath) {
46
+ try {
47
+ return this.db.prepare(`
48
+ SELECT id, session_id, satisfaction_score, ended_at
49
+ FROM task_sessions WHERE project_path = ? AND outcome = 'success'
50
+ ORDER BY ended_at DESC LIMIT 1
51
+ `).get(projectPath) ?? null;
52
+ }
53
+ catch {
54
+ return null;
55
+ }
56
+ }
57
+ rowToSession(row) {
58
+ return {
59
+ session_id: row.session_id,
60
+ project_path: row.project_path,
61
+ status: row.status,
62
+ start_time: row.start_time,
63
+ end_time: row.end_time,
64
+ last_event_time: row.last_event_time,
65
+ event_count: row.event_count,
66
+ };
67
+ }
68
+ }
69
+ //# sourceMappingURL=session-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-repository.js","sourceRoot":"","sources":["../../../src/storage/repositories/session-repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { BaseRepository } from './base-repository.js';
2
+ export declare class TaskRepository extends BaseRepository {
3
+ insertTaskSession(data: {
4
+ id: string;
5
+ session_id: string;
6
+ project_path: string;
7
+ pipeline_id?: string;
8
+ requirement: string;
9
+ task_type: string;
10
+ complexity: string;
11
+ total_rounds: number;
12
+ total_tool_calls: number;
13
+ write_edit_count: number;
14
+ fix_attempt_count: number;
15
+ quality_fail_count: number;
16
+ quality_pass_count: number;
17
+ failure_signal_count: number;
18
+ phase_distribution?: Record<string, number>;
19
+ outcome: string;
20
+ duration_ms?: number;
21
+ started_at: string;
22
+ ended_at?: string;
23
+ }): void;
24
+ updateTaskSession(id: string, updates: Partial<{
25
+ outcome: string;
26
+ ended_at: string;
27
+ failure_signal_count: number;
28
+ total_rounds: number;
29
+ total_tool_calls: number;
30
+ }>): void;
31
+ getTaskSession(id: string): Record<string, unknown> | null;
32
+ getTaskSessionsByType(taskType: string, limit?: number): Record<string, unknown>[];
33
+ getSessionMetrics(sessionId: string): Record<string, unknown> | null;
34
+ getRecentSessions(projectPath?: string, limit?: number): Array<{
35
+ id: string;
36
+ session_id: string;
37
+ requirement: string;
38
+ outcome: string;
39
+ satisfaction_score: number | null;
40
+ started_at: string;
41
+ }>;
42
+ updateTaskSessionSatisfaction(id: string, score: number): void;
43
+ getAverageSatisfaction(projectPath?: string, days?: number): number;
44
+ upsertTaskPattern(data: {
45
+ id: string;
46
+ task_type: string;
47
+ failure_pattern: string;
48
+ prevention_strategy: string;
49
+ confidence_score: number;
50
+ sample_count: number;
51
+ }): void;
52
+ getTaskPatterns(taskType?: string): Record<string, unknown>[];
53
+ updatePatternEffectiveness(id: string, success: boolean): void;
54
+ incrementPatternAdoption(id: string): void;
55
+ getTopPatterns(taskTypeOrId: string, limit?: number): Record<string, unknown>[];
56
+ updatePatternEffectivenessScore(patternId: string, successRate: number): void;
57
+ incrementSuppressionCount(category: string, projectPath: string): void;
58
+ getActiveSuppressions(projectPath: string): string[];
59
+ insertQualityGateHistory(record: {
60
+ id: string;
61
+ session_id: string;
62
+ project_path: string;
63
+ file_path: string;
64
+ category: string;
65
+ level: string;
66
+ message: string;
67
+ }): void;
68
+ markQualityIssueResolved(filePath: string, category: string): void;
69
+ getUnresolvedIssues(filePath: string): Array<{
70
+ category: string;
71
+ message: string;
72
+ }>;
73
+ getSessionQualityHistory(sessionId: string, projectPath: string): Array<{
74
+ file_path: string;
75
+ category: string;
76
+ level: string;
77
+ message: string;
78
+ resolved: number;
79
+ }>;
80
+ cleanupExpiredSuppressions(): number;
81
+ }
82
+ //# sourceMappingURL=task-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-repository.d.ts","sourceRoot":"","sources":["../../../src/storage/repositories/task-repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,198 @@
1
+ import { BaseRepository } from './base-repository.js';
2
+ export class TaskRepository extends BaseRepository {
3
+ // ── Task Sessions ──────────────────────────────────────────────────────────
4
+ insertTaskSession(data) {
5
+ this.db.prepare(`
6
+ INSERT INTO task_sessions (
7
+ id, session_id, project_path, pipeline_id, requirement, task_type, complexity,
8
+ total_rounds, total_tool_calls, write_edit_count, fix_attempt_count,
9
+ quality_fail_count, quality_pass_count, failure_signal_count,
10
+ phase_distribution, outcome, duration_ms, started_at, ended_at
11
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
12
+ `).run(data.id, data.session_id, data.project_path, data.pipeline_id ?? null, data.requirement, data.task_type, data.complexity, data.total_rounds, data.total_tool_calls, data.write_edit_count, data.fix_attempt_count, data.quality_fail_count, data.quality_pass_count, data.failure_signal_count, data.phase_distribution ? JSON.stringify(data.phase_distribution) : null, data.outcome, data.duration_ms ?? null, data.started_at, data.ended_at ?? null);
13
+ }
14
+ updateTaskSession(id, updates) {
15
+ const fields = Object.keys(updates).map(k => `${k} = ?`).join(', ');
16
+ if (!fields)
17
+ return;
18
+ this.db.prepare(`UPDATE task_sessions SET ${fields} WHERE id = ?`)
19
+ .run(...Object.values(updates), id);
20
+ }
21
+ getTaskSession(id) {
22
+ return this.db.prepare('SELECT * FROM task_sessions WHERE id = ?').get(id) ?? null;
23
+ }
24
+ getTaskSessionsByType(taskType, limit = 20) {
25
+ return this.db.prepare('SELECT * FROM task_sessions WHERE task_type = ? ORDER BY started_at DESC LIMIT ?').all(taskType, limit);
26
+ }
27
+ getSessionMetrics(sessionId) {
28
+ try {
29
+ return this.db.prepare('SELECT * FROM task_sessions WHERE session_id = ? ORDER BY started_at DESC LIMIT 1').get(sessionId) ?? null;
30
+ }
31
+ catch {
32
+ return null;
33
+ }
34
+ }
35
+ getRecentSessions(projectPath, limit = 10) {
36
+ const conditions = ['1=1'];
37
+ const params = [];
38
+ if (projectPath) {
39
+ conditions.push('project_path = ?');
40
+ params.push(projectPath);
41
+ }
42
+ try {
43
+ return this.db.prepare(`
44
+ SELECT id, session_id, requirement, outcome, satisfaction_score, started_at
45
+ FROM task_sessions WHERE ${conditions.join(' AND ')}
46
+ ORDER BY started_at DESC LIMIT ?
47
+ `).all(...params, limit);
48
+ }
49
+ catch {
50
+ return [];
51
+ }
52
+ }
53
+ updateTaskSessionSatisfaction(id, score) {
54
+ try {
55
+ this.db.prepare(`UPDATE task_sessions SET satisfaction_score = ? WHERE id = ?`).run(score, id);
56
+ }
57
+ catch { /* 列可能尚未迁移 */ }
58
+ }
59
+ getAverageSatisfaction(projectPath, days) {
60
+ const conditions = ['satisfaction_score IS NOT NULL'];
61
+ const params = [];
62
+ if (projectPath) {
63
+ conditions.push('project_path = ?');
64
+ params.push(projectPath);
65
+ }
66
+ if (days) {
67
+ conditions.push(`started_at >= datetime('now', '-${days} days')`);
68
+ }
69
+ try {
70
+ const row = this.db.prepare(`SELECT AVG(satisfaction_score) as avg FROM task_sessions WHERE ${conditions.join(' AND ')}`).get(...params);
71
+ return row?.avg ?? 0;
72
+ }
73
+ catch {
74
+ return 0;
75
+ }
76
+ }
77
+ // ── Task Patterns ──────────────────────────────────────────────────────────
78
+ upsertTaskPattern(data) {
79
+ this.db.prepare(`
80
+ INSERT INTO task_patterns (id, task_type, failure_pattern, prevention_strategy, confidence_score, sample_count)
81
+ VALUES (?, ?, ?, ?, ?, ?)
82
+ ON CONFLICT(id) DO UPDATE SET
83
+ failure_pattern = excluded.failure_pattern,
84
+ prevention_strategy = excluded.prevention_strategy,
85
+ confidence_score = excluded.confidence_score,
86
+ sample_count = excluded.sample_count,
87
+ last_updated = datetime('now')
88
+ `).run(data.id, data.task_type, data.failure_pattern, data.prevention_strategy, data.confidence_score, data.sample_count);
89
+ }
90
+ getTaskPatterns(taskType) {
91
+ if (taskType) {
92
+ return this.db.prepare('SELECT * FROM task_patterns WHERE task_type = ? ORDER BY confidence_score DESC').all(taskType);
93
+ }
94
+ return this.db.prepare('SELECT * FROM task_patterns ORDER BY confidence_score DESC').all();
95
+ }
96
+ updatePatternEffectiveness(id, success) {
97
+ try {
98
+ const row = this.db.prepare('SELECT effectiveness_score FROM task_patterns WHERE id = ?').get(id);
99
+ if (!row)
100
+ return;
101
+ const newScore = row.effectiveness_score * 0.8 + (success ? 1.0 : 0.0) * 0.2;
102
+ this.db.prepare(`UPDATE task_patterns SET effectiveness_score = ?, last_used = datetime('now') WHERE id = ?`).run(newScore, id);
103
+ }
104
+ catch { /* 列可能尚未迁移 */ }
105
+ }
106
+ incrementPatternAdoption(id) {
107
+ try {
108
+ this.db.prepare(`UPDATE task_patterns SET adoption_count = adoption_count + 1, last_used = datetime('now') WHERE id = ?`).run(id);
109
+ }
110
+ catch { /* 列可能尚未迁移 */ }
111
+ }
112
+ getTopPatterns(taskTypeOrId, limit = 5) {
113
+ try {
114
+ if (taskTypeOrId === '') {
115
+ return this.db.prepare(`SELECT * FROM task_patterns ORDER BY effectiveness_score DESC, adoption_count DESC LIMIT ?`).all(limit);
116
+ }
117
+ const byId = this.db.prepare(`SELECT * FROM task_patterns WHERE id = ? LIMIT ?`).all(taskTypeOrId, limit);
118
+ if (byId.length > 0)
119
+ return byId;
120
+ return this.db.prepare(`SELECT * FROM task_patterns WHERE task_type = ? ORDER BY effectiveness_score DESC, adoption_count DESC LIMIT ?`).all(taskTypeOrId, limit);
121
+ }
122
+ catch {
123
+ return [];
124
+ }
125
+ }
126
+ updatePatternEffectivenessScore(patternId, successRate) {
127
+ try {
128
+ const row = this.db.prepare(`SELECT effectiveness_score FROM task_patterns WHERE id = ?`).get(patternId);
129
+ if (!row)
130
+ return;
131
+ const newScore = row.effectiveness_score * 0.7 + successRate * 0.3;
132
+ this.db.prepare(`UPDATE task_patterns SET effectiveness_score = ?, last_used = datetime('now') WHERE id = ?`).run(newScore, patternId);
133
+ }
134
+ catch { /* 忽略 */ }
135
+ }
136
+ // ── Quality Gate ───────────────────────────────────────────────────────────
137
+ incrementSuppressionCount(category, projectPath) {
138
+ try {
139
+ const existing = this.db.prepare(`SELECT id, suppression_count FROM quality_gate_suppressions WHERE category = ? AND project_path = ?`).get(category, projectPath);
140
+ if (existing) {
141
+ const newCount = existing.suppression_count + 1;
142
+ const expiresAt = newCount >= 3 ? new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString() : null;
143
+ this.db.prepare(`UPDATE quality_gate_suppressions SET suppression_count = ?, last_suppressed_at = datetime('now'), expires_at = ? WHERE id = ?`).run(newCount, expiresAt, existing.id);
144
+ }
145
+ else {
146
+ const id = `qgs_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;
147
+ this.db.prepare(`INSERT INTO quality_gate_suppressions (id, category, project_path, first_suppressed_at, last_suppressed_at) VALUES (?, ?, ?, datetime('now'), datetime('now'))`).run(id, category, projectPath);
148
+ }
149
+ }
150
+ catch { /* 忽略 */ }
151
+ }
152
+ getActiveSuppressions(projectPath) {
153
+ try {
154
+ const rows = this.db.prepare(`SELECT category FROM quality_gate_suppressions WHERE project_path = ? AND suppression_count >= 3 AND (expires_at IS NULL OR expires_at > datetime('now'))`).all(projectPath);
155
+ return rows.map(r => r.category);
156
+ }
157
+ catch {
158
+ return [];
159
+ }
160
+ }
161
+ insertQualityGateHistory(record) {
162
+ try {
163
+ this.db.prepare(`INSERT INTO quality_gate_history (id, session_id, project_path, file_path, category, level, message) VALUES (?, ?, ?, ?, ?, ?, ?)`).run(record.id, record.session_id, record.project_path, record.file_path, record.category, record.level, record.message);
164
+ }
165
+ catch { /* 忽略 */ }
166
+ }
167
+ markQualityIssueResolved(filePath, category) {
168
+ try {
169
+ this.db.prepare(`UPDATE quality_gate_history SET resolved = 1, resolved_at = datetime('now') WHERE file_path = ? AND category = ? AND resolved = 0`).run(filePath, category);
170
+ }
171
+ catch { /* 忽略 */ }
172
+ }
173
+ getUnresolvedIssues(filePath) {
174
+ try {
175
+ return this.db.prepare(`SELECT category, message FROM quality_gate_history WHERE file_path = ? AND resolved = 0 ORDER BY created_at DESC LIMIT 10`).all(filePath);
176
+ }
177
+ catch {
178
+ return [];
179
+ }
180
+ }
181
+ getSessionQualityHistory(sessionId, projectPath) {
182
+ try {
183
+ return this.db.prepare(`SELECT file_path, category, level, message, resolved FROM quality_gate_history WHERE session_id = ? AND project_path = ? ORDER BY created_at ASC LIMIT 50`).all(sessionId, projectPath);
184
+ }
185
+ catch {
186
+ return [];
187
+ }
188
+ }
189
+ cleanupExpiredSuppressions() {
190
+ try {
191
+ return this.db.prepare(`DELETE FROM quality_gate_suppressions WHERE expires_at IS NOT NULL AND expires_at < datetime('now')`).run().changes;
192
+ }
193
+ catch {
194
+ return 0;
195
+ }
196
+ }
197
+ }
198
+ //# sourceMappingURL=task-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-repository.js","sourceRoot":"","sources":["../../../src/storage/repositories/task-repository.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,34 @@ import type { ForgeEvent } from '../types/index.js';
3
3
  import type { Session, SessionStatus } from '../types/session.js';
4
4
  import type { StorageEngine, EventQuery, SessionQuery } from './index.js';
5
5
  import type { PatternExecution } from '../pattern-engine/types.js';
6
+ import { EventRepository } from './repositories/event-repository.js';
7
+ import { SessionRepository } from './repositories/session-repository.js';
8
+ import { TaskRepository } from './repositories/task-repository.js';
9
+ import { FailureRepository } from './repositories/failure-repository.js';
10
+ import { ApiUsageRepository } from './repositories/api-usage-repository.js';
11
+ import { LatencyRepository } from './repositories/latency-repository.js';
12
+ import { KnowledgeRepository } from './repositories/knowledge-repository.js';
13
+ import { SatisfactionRepository } from './repositories/satisfaction-repository.js';
14
+ import { IntentRuleRepository } from './repositories/intent-rule-repository.js';
15
+ import { DistillRepository } from './repositories/distill-repository.js';
16
+ import { MaintenanceRepository } from './repositories/maintenance-repository.js';
6
17
  export declare class SQLiteStorage implements StorageEngine {
7
18
  private db;
8
19
  private dbPath;
20
+ /** 结构化 Repository 命名空间(新代码推荐使用,向后兼容原有方法) */
21
+ readonly repositories: {
22
+ events: EventRepository;
23
+ sessions: SessionRepository;
24
+ tasks: TaskRepository;
25
+ failures: FailureRepository;
26
+ apiUsage: ApiUsageRepository;
27
+ latency: LatencyRepository;
28
+ knowledge: KnowledgeRepository;
29
+ satisfaction: SatisfactionRepository;
30
+ intentRules: IntentRuleRepository;
31
+ distill: DistillRepository;
32
+ maintenance: MaintenanceRepository;
33
+ };
9
34
  /** FTS5 查询停用词表:过滤无意义的高频词,提升关键词质量 */
10
35
  private static readonly STOPWORDS;
11
36
  constructor(dbPath: string);
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,22 @@ import Database from 'better-sqlite3';
2
2
  import fs from 'fs';
3
3
  import path from 'path';
4
4
  import { logger } from '../utils/logger.js';
5
+ import { EventRepository } from './repositories/event-repository.js';
6
+ import { SessionRepository } from './repositories/session-repository.js';
7
+ import { TaskRepository } from './repositories/task-repository.js';
8
+ import { FailureRepository } from './repositories/failure-repository.js';
9
+ import { ApiUsageRepository } from './repositories/api-usage-repository.js';
10
+ import { LatencyRepository } from './repositories/latency-repository.js';
11
+ import { KnowledgeRepository } from './repositories/knowledge-repository.js';
12
+ import { SatisfactionRepository } from './repositories/satisfaction-repository.js';
13
+ import { IntentRuleRepository } from './repositories/intent-rule-repository.js';
14
+ import { DistillRepository } from './repositories/distill-repository.js';
15
+ import { MaintenanceRepository } from './repositories/maintenance-repository.js';
5
16
  export class SQLiteStorage {
6
17
  db;
7
18
  dbPath;
19
+ /** 结构化 Repository 命名空间(新代码推荐使用,向后兼容原有方法) */
20
+ repositories;
8
21
  /** FTS5 查询停用词表:过滤无意义的高频词,提升关键词质量 */
9
22
  static STOPWORDS = new Set([
10
23
  '的', '了', '是', '在', '和', '我', '你', '它', '他', '她',
@@ -28,6 +41,20 @@ export class SQLiteStorage {
28
41
  this.db.pragma('synchronous = NORMAL');
29
42
  this.initSchema();
30
43
  this.runMigrations();
44
+ // 初始化 Repository 命名空间
45
+ this.repositories = {
46
+ events: new EventRepository(this.db),
47
+ sessions: new SessionRepository(this.db),
48
+ tasks: new TaskRepository(this.db),
49
+ failures: new FailureRepository(this.db),
50
+ apiUsage: new ApiUsageRepository(this.db),
51
+ latency: new LatencyRepository(this.db),
52
+ knowledge: new KnowledgeRepository(this.db),
53
+ satisfaction: new SatisfactionRepository(this.db),
54
+ intentRules: new IntentRuleRepository(this.db),
55
+ distill: new DistillRepository(this.db),
56
+ maintenance: new MaintenanceRepository(this.db, this.dbPath),
57
+ };
31
58
  }
32
59
  /** 当前 schema 版本号,每次新增迁移时递增 */
33
60
  static SCHEMA_VERSION = 9;