@cogitator-ai/core 0.1.0 → 0.3.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 (252) hide show
  1. package/README.md +920 -15
  2. package/dist/__tests__/agent.test.js +2 -2
  3. package/dist/__tests__/agent.test.js.map +1 -1
  4. package/dist/__tests__/base64.test.js +1 -1
  5. package/dist/__tests__/base64.test.js.map +1 -1
  6. package/dist/__tests__/calculator.test.js +1 -1
  7. package/dist/__tests__/calculator.test.js.map +1 -1
  8. package/dist/__tests__/cogitator-memory.test.js +2 -2
  9. package/dist/__tests__/cogitator-memory.test.js.map +1 -1
  10. package/dist/__tests__/datetime.test.js +1 -1
  11. package/dist/__tests__/datetime.test.js.map +1 -1
  12. package/dist/__tests__/exec.test.js +1 -1
  13. package/dist/__tests__/exec.test.js.map +1 -1
  14. package/dist/__tests__/filesystem.test.js +1 -1
  15. package/dist/__tests__/filesystem.test.js.map +1 -1
  16. package/dist/__tests__/google-backend.test.js +1 -1
  17. package/dist/__tests__/google-backend.test.js.map +1 -1
  18. package/dist/__tests__/hash.test.js +1 -1
  19. package/dist/__tests__/hash.test.js.map +1 -1
  20. package/dist/__tests__/http.test.js +1 -1
  21. package/dist/__tests__/http.test.js.map +1 -1
  22. package/dist/__tests__/json.test.js +1 -1
  23. package/dist/__tests__/json.test.js.map +1 -1
  24. package/dist/__tests__/logger.test.js +1 -1
  25. package/dist/__tests__/logger.test.js.map +1 -1
  26. package/dist/__tests__/random.test.js +1 -1
  27. package/dist/__tests__/random.test.js.map +1 -1
  28. package/dist/__tests__/regex.test.js +1 -1
  29. package/dist/__tests__/regex.test.js.map +1 -1
  30. package/dist/__tests__/registry.test.js +2 -2
  31. package/dist/__tests__/registry.test.js.map +1 -1
  32. package/dist/__tests__/sleep.test.js +1 -1
  33. package/dist/__tests__/sleep.test.js.map +1 -1
  34. package/dist/__tests__/tool.test.js +1 -1
  35. package/dist/__tests__/tool.test.js.map +1 -1
  36. package/dist/__tests__/uuid.test.js +1 -1
  37. package/dist/__tests__/uuid.test.js.map +1 -1
  38. package/dist/cogitator.d.ts +46 -1
  39. package/dist/cogitator.d.ts.map +1 -1
  40. package/dist/cogitator.js +274 -17
  41. package/dist/cogitator.js.map +1 -1
  42. package/dist/constitutional/constitution.d.ts +9 -0
  43. package/dist/constitutional/constitution.d.ts.map +1 -0
  44. package/dist/constitutional/constitution.js +215 -0
  45. package/dist/constitutional/constitution.js.map +1 -0
  46. package/dist/constitutional/constitutional-ai.d.ts +36 -0
  47. package/dist/constitutional/constitutional-ai.d.ts.map +1 -0
  48. package/dist/constitutional/constitutional-ai.js +163 -0
  49. package/dist/constitutional/constitutional-ai.js.map +1 -0
  50. package/dist/constitutional/critique-reviser.d.ts +20 -0
  51. package/dist/constitutional/critique-reviser.d.ts.map +1 -0
  52. package/dist/constitutional/critique-reviser.js +98 -0
  53. package/dist/constitutional/critique-reviser.js.map +1 -0
  54. package/dist/constitutional/index.d.ts +13 -0
  55. package/dist/constitutional/index.d.ts.map +1 -0
  56. package/dist/constitutional/index.js +8 -0
  57. package/dist/constitutional/index.js.map +1 -0
  58. package/dist/constitutional/input-filter.d.ts +19 -0
  59. package/dist/constitutional/input-filter.d.ts.map +1 -0
  60. package/dist/constitutional/input-filter.js +88 -0
  61. package/dist/constitutional/input-filter.js.map +1 -0
  62. package/dist/constitutional/output-filter.d.ts +19 -0
  63. package/dist/constitutional/output-filter.d.ts.map +1 -0
  64. package/dist/constitutional/output-filter.js +86 -0
  65. package/dist/constitutional/output-filter.js.map +1 -0
  66. package/dist/constitutional/prompts.d.ts +11 -0
  67. package/dist/constitutional/prompts.d.ts.map +1 -0
  68. package/dist/constitutional/prompts.js +202 -0
  69. package/dist/constitutional/prompts.js.map +1 -0
  70. package/dist/constitutional/tool-guard.d.ts +18 -0
  71. package/dist/constitutional/tool-guard.d.ts.map +1 -0
  72. package/dist/constitutional/tool-guard.js +125 -0
  73. package/dist/constitutional/tool-guard.js.map +1 -0
  74. package/dist/cost-routing/budget-enforcer.d.ts +26 -0
  75. package/dist/cost-routing/budget-enforcer.d.ts.map +1 -0
  76. package/dist/cost-routing/budget-enforcer.js +86 -0
  77. package/dist/cost-routing/budget-enforcer.js.map +1 -0
  78. package/dist/cost-routing/cost-router.d.ts +34 -0
  79. package/dist/cost-routing/cost-router.d.ts.map +1 -0
  80. package/dist/cost-routing/cost-router.js +80 -0
  81. package/dist/cost-routing/cost-router.js.map +1 -0
  82. package/dist/cost-routing/cost-tracker.d.ts +20 -0
  83. package/dist/cost-routing/cost-tracker.d.ts.map +1 -0
  84. package/dist/cost-routing/cost-tracker.js +85 -0
  85. package/dist/cost-routing/cost-tracker.js.map +1 -0
  86. package/dist/cost-routing/index.d.ts +6 -0
  87. package/dist/cost-routing/index.d.ts.map +1 -0
  88. package/dist/cost-routing/index.js +6 -0
  89. package/dist/cost-routing/index.js.map +1 -0
  90. package/dist/cost-routing/model-selector.d.ts +15 -0
  91. package/dist/cost-routing/model-selector.d.ts.map +1 -0
  92. package/dist/cost-routing/model-selector.js +216 -0
  93. package/dist/cost-routing/model-selector.js.map +1 -0
  94. package/dist/cost-routing/task-analyzer.d.ts +13 -0
  95. package/dist/cost-routing/task-analyzer.d.ts.map +1 -0
  96. package/dist/cost-routing/task-analyzer.js +185 -0
  97. package/dist/cost-routing/task-analyzer.js.map +1 -0
  98. package/dist/index.d.ts +19 -1
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +9 -0
  101. package/dist/index.js.map +1 -1
  102. package/dist/learning/ab-testing.d.ts +45 -0
  103. package/dist/learning/ab-testing.d.ts.map +1 -0
  104. package/dist/learning/ab-testing.js +267 -0
  105. package/dist/learning/ab-testing.js.map +1 -0
  106. package/dist/learning/agent-optimizer.d.ts +42 -0
  107. package/dist/learning/agent-optimizer.d.ts.map +1 -0
  108. package/dist/learning/agent-optimizer.js +273 -0
  109. package/dist/learning/agent-optimizer.js.map +1 -0
  110. package/dist/learning/auto-optimizer.d.ts +38 -0
  111. package/dist/learning/auto-optimizer.d.ts.map +1 -0
  112. package/dist/learning/auto-optimizer.js +229 -0
  113. package/dist/learning/auto-optimizer.js.map +1 -0
  114. package/dist/learning/demo-selector.d.ts +29 -0
  115. package/dist/learning/demo-selector.d.ts.map +1 -0
  116. package/dist/learning/demo-selector.js +235 -0
  117. package/dist/learning/demo-selector.js.map +1 -0
  118. package/dist/learning/index.d.ts +24 -0
  119. package/dist/learning/index.d.ts.map +1 -0
  120. package/dist/learning/index.js +13 -0
  121. package/dist/learning/index.js.map +1 -0
  122. package/dist/learning/instruction-optimizer.d.ts +29 -0
  123. package/dist/learning/instruction-optimizer.d.ts.map +1 -0
  124. package/dist/learning/instruction-optimizer.js +175 -0
  125. package/dist/learning/instruction-optimizer.js.map +1 -0
  126. package/dist/learning/metrics.d.ts +37 -0
  127. package/dist/learning/metrics.d.ts.map +1 -0
  128. package/dist/learning/metrics.js +310 -0
  129. package/dist/learning/metrics.js.map +1 -0
  130. package/dist/learning/postgres-trace-store.d.ts +53 -0
  131. package/dist/learning/postgres-trace-store.d.ts.map +1 -0
  132. package/dist/learning/postgres-trace-store.js +692 -0
  133. package/dist/learning/postgres-trace-store.js.map +1 -0
  134. package/dist/learning/prompt-logger.d.ts +29 -0
  135. package/dist/learning/prompt-logger.d.ts.map +1 -0
  136. package/dist/learning/prompt-logger.js +157 -0
  137. package/dist/learning/prompt-logger.js.map +1 -0
  138. package/dist/learning/prompt-monitor.d.ts +29 -0
  139. package/dist/learning/prompt-monitor.d.ts.map +1 -0
  140. package/dist/learning/prompt-monitor.js +243 -0
  141. package/dist/learning/prompt-monitor.js.map +1 -0
  142. package/dist/learning/prompts.d.ts +28 -0
  143. package/dist/learning/prompts.d.ts.map +1 -0
  144. package/dist/learning/prompts.js +195 -0
  145. package/dist/learning/prompts.js.map +1 -0
  146. package/dist/learning/rollback-manager.d.ts +36 -0
  147. package/dist/learning/rollback-manager.d.ts.map +1 -0
  148. package/dist/learning/rollback-manager.js +177 -0
  149. package/dist/learning/rollback-manager.js.map +1 -0
  150. package/dist/learning/trace-store.d.ts +26 -0
  151. package/dist/learning/trace-store.d.ts.map +1 -0
  152. package/dist/learning/trace-store.js +218 -0
  153. package/dist/learning/trace-store.js.map +1 -0
  154. package/dist/llm/google.d.ts.map +1 -1
  155. package/dist/llm/google.js +1 -2
  156. package/dist/llm/google.js.map +1 -1
  157. package/dist/reasoning/branch-evaluator.d.ts +28 -0
  158. package/dist/reasoning/branch-evaluator.d.ts.map +1 -0
  159. package/dist/reasoning/branch-evaluator.js +143 -0
  160. package/dist/reasoning/branch-evaluator.js.map +1 -0
  161. package/dist/reasoning/branch-generator.d.ts +9 -0
  162. package/dist/reasoning/branch-generator.d.ts.map +1 -0
  163. package/dist/reasoning/branch-generator.js +60 -0
  164. package/dist/reasoning/branch-generator.js.map +1 -0
  165. package/dist/reasoning/index.d.ts +5 -0
  166. package/dist/reasoning/index.d.ts.map +1 -0
  167. package/dist/reasoning/index.js +5 -0
  168. package/dist/reasoning/index.js.map +1 -0
  169. package/dist/reasoning/prompts.d.ts +19 -0
  170. package/dist/reasoning/prompts.d.ts.map +1 -0
  171. package/dist/reasoning/prompts.js +161 -0
  172. package/dist/reasoning/prompts.js.map +1 -0
  173. package/dist/reasoning/thought-tree.d.ts +32 -0
  174. package/dist/reasoning/thought-tree.d.ts.map +1 -0
  175. package/dist/reasoning/thought-tree.js +352 -0
  176. package/dist/reasoning/thought-tree.js.map +1 -0
  177. package/dist/reflection/index.d.ts +4 -0
  178. package/dist/reflection/index.d.ts.map +1 -0
  179. package/dist/reflection/index.js +4 -0
  180. package/dist/reflection/index.js.map +1 -0
  181. package/dist/reflection/insight-store.d.ts +19 -0
  182. package/dist/reflection/insight-store.d.ts.map +1 -0
  183. package/dist/reflection/insight-store.js +129 -0
  184. package/dist/reflection/insight-store.js.map +1 -0
  185. package/dist/reflection/prompts.d.ts +18 -0
  186. package/dist/reflection/prompts.d.ts.map +1 -0
  187. package/dist/reflection/prompts.js +157 -0
  188. package/dist/reflection/prompts.js.map +1 -0
  189. package/dist/reflection/reflection-engine.d.ts +25 -0
  190. package/dist/reflection/reflection-engine.d.ts.map +1 -0
  191. package/dist/reflection/reflection-engine.js +202 -0
  192. package/dist/reflection/reflection-engine.js.map +1 -0
  193. package/dist/registry.d.ts +1 -0
  194. package/dist/registry.d.ts.map +1 -1
  195. package/dist/registry.js +3 -0
  196. package/dist/registry.js.map +1 -1
  197. package/dist/time-travel/checkpoint-store.d.ts +34 -0
  198. package/dist/time-travel/checkpoint-store.d.ts.map +1 -0
  199. package/dist/time-travel/checkpoint-store.js +240 -0
  200. package/dist/time-travel/checkpoint-store.js.map +1 -0
  201. package/dist/time-travel/comparator.d.ts +26 -0
  202. package/dist/time-travel/comparator.d.ts.map +1 -0
  203. package/dist/time-travel/comparator.js +253 -0
  204. package/dist/time-travel/comparator.js.map +1 -0
  205. package/dist/time-travel/forker.d.ts +22 -0
  206. package/dist/time-travel/forker.d.ts.map +1 -0
  207. package/dist/time-travel/forker.js +118 -0
  208. package/dist/time-travel/forker.js.map +1 -0
  209. package/dist/time-travel/index.d.ts +6 -0
  210. package/dist/time-travel/index.d.ts.map +1 -0
  211. package/dist/time-travel/index.js +6 -0
  212. package/dist/time-travel/index.js.map +1 -0
  213. package/dist/time-travel/replayer.d.ts +20 -0
  214. package/dist/time-travel/replayer.d.ts.map +1 -0
  215. package/dist/time-travel/replayer.js +147 -0
  216. package/dist/time-travel/replayer.js.map +1 -0
  217. package/dist/time-travel/time-travel.d.ts +41 -0
  218. package/dist/time-travel/time-travel.d.ts.map +1 -0
  219. package/dist/time-travel/time-travel.js +127 -0
  220. package/dist/time-travel/time-travel.js.map +1 -0
  221. package/dist/tool.d.ts.map +1 -1
  222. package/dist/tool.js +2 -0
  223. package/dist/tool.js.map +1 -1
  224. package/dist/tools/base64.d.ts.map +1 -1
  225. package/dist/tools/base64.js +2 -8
  226. package/dist/tools/base64.js.map +1 -1
  227. package/dist/tools/datetime.d.ts.map +1 -1
  228. package/dist/tools/datetime.js.map +1 -1
  229. package/dist/tools/exec.d.ts.map +1 -1
  230. package/dist/tools/exec.js +1 -4
  231. package/dist/tools/exec.js.map +1 -1
  232. package/dist/tools/filesystem.d.ts.map +1 -1
  233. package/dist/tools/filesystem.js +4 -1
  234. package/dist/tools/filesystem.js.map +1 -1
  235. package/dist/tools/hash.d.ts.map +1 -1
  236. package/dist/tools/hash.js +1 -4
  237. package/dist/tools/hash.js.map +1 -1
  238. package/dist/tools/http.d.ts.map +1 -1
  239. package/dist/tools/http.js +1 -4
  240. package/dist/tools/http.js.map +1 -1
  241. package/dist/tools/regex.d.ts.map +1 -1
  242. package/dist/tools/regex.js +4 -1
  243. package/dist/tools/regex.js.map +1 -1
  244. package/dist/utils/circuit-breaker.d.ts.map +1 -1
  245. package/dist/utils/circuit-breaker.js.map +1 -1
  246. package/dist/utils/fallback.d.ts.map +1 -1
  247. package/dist/utils/fallback.js +1 -4
  248. package/dist/utils/fallback.js.map +1 -1
  249. package/dist/utils/retry.d.ts.map +1 -1
  250. package/dist/utils/retry.js +8 -13
  251. package/dist/utils/retry.js.map +1 -1
  252. package/package.json +17 -8
@@ -0,0 +1,129 @@
1
+ export class InMemoryInsightStore {
2
+ insights = new Map();
3
+ agentIndex = new Map();
4
+ async store(insight) {
5
+ this.insights.set(insight.id, insight);
6
+ let agentInsights = this.agentIndex.get(insight.agentId);
7
+ if (!agentInsights) {
8
+ agentInsights = new Set();
9
+ this.agentIndex.set(insight.agentId, agentInsights);
10
+ }
11
+ agentInsights.add(insight.id);
12
+ }
13
+ async storeMany(insights) {
14
+ for (const insight of insights) {
15
+ await this.store(insight);
16
+ }
17
+ }
18
+ async findRelevant(agentId, context, limit = 5) {
19
+ const agentInsights = this.agentIndex.get(agentId);
20
+ if (!agentInsights)
21
+ return [];
22
+ const contextLower = context.toLowerCase();
23
+ const contextWords = new Set(contextLower.split(/\s+/).filter((w) => w.length > 3));
24
+ const scored = [];
25
+ for (const id of agentInsights) {
26
+ const insight = this.insights.get(id);
27
+ if (!insight)
28
+ continue;
29
+ let score = 0;
30
+ const insightText = `${insight.content} ${insight.context}`.toLowerCase();
31
+ for (const word of contextWords) {
32
+ if (insightText.includes(word)) {
33
+ score += 1;
34
+ }
35
+ }
36
+ score += insight.confidence * 0.5;
37
+ score += Math.min(insight.usageCount * 0.1, 1);
38
+ const ageMs = Date.now() - insight.lastUsedAt.getTime();
39
+ const ageDays = ageMs / (1000 * 60 * 60 * 24);
40
+ score -= Math.min(ageDays * 0.01, 0.5);
41
+ const typeBoost = {
42
+ pattern: 0.3,
43
+ success: 0.2,
44
+ tip: 0.2,
45
+ mistake: 0.4,
46
+ warning: 0.4,
47
+ };
48
+ score += typeBoost[insight.type] ?? 0;
49
+ if (score > 0) {
50
+ scored.push({ insight, score });
51
+ }
52
+ }
53
+ scored.sort((a, b) => b.score - a.score);
54
+ return scored.slice(0, limit).map((s) => s.insight);
55
+ }
56
+ async getAll(agentId) {
57
+ const agentInsights = this.agentIndex.get(agentId);
58
+ if (!agentInsights)
59
+ return [];
60
+ const result = [];
61
+ for (const id of agentInsights) {
62
+ const insight = this.insights.get(id);
63
+ if (insight)
64
+ result.push(insight);
65
+ }
66
+ result.sort((a, b) => b.lastUsedAt.getTime() - a.lastUsedAt.getTime());
67
+ return result;
68
+ }
69
+ async getById(id) {
70
+ return this.insights.get(id) ?? null;
71
+ }
72
+ async markUsed(id) {
73
+ const insight = this.insights.get(id);
74
+ if (insight) {
75
+ insight.usageCount += 1;
76
+ insight.lastUsedAt = new Date();
77
+ }
78
+ }
79
+ async prune(agentId, maxInsights) {
80
+ const agentInsights = this.agentIndex.get(agentId);
81
+ if (!agentInsights || agentInsights.size <= maxInsights)
82
+ return 0;
83
+ const insights = [];
84
+ for (const id of agentInsights) {
85
+ const insight = this.insights.get(id);
86
+ if (insight)
87
+ insights.push(insight);
88
+ }
89
+ insights.sort((a, b) => {
90
+ const scoreA = a.usageCount * 0.5 +
91
+ a.confidence * 0.3 +
92
+ ((Date.now() - a.lastUsedAt.getTime()) / (1000 * 60 * 60 * 24)) * -0.2;
93
+ const scoreB = b.usageCount * 0.5 +
94
+ b.confidence * 0.3 +
95
+ ((Date.now() - b.lastUsedAt.getTime()) / (1000 * 60 * 60 * 24)) * -0.2;
96
+ return scoreB - scoreA;
97
+ });
98
+ const toRemove = insights.slice(maxInsights);
99
+ for (const insight of toRemove) {
100
+ this.insights.delete(insight.id);
101
+ agentInsights.delete(insight.id);
102
+ }
103
+ return toRemove.length;
104
+ }
105
+ async delete(id) {
106
+ const insight = this.insights.get(id);
107
+ if (!insight)
108
+ return false;
109
+ this.insights.delete(id);
110
+ this.agentIndex.get(insight.agentId)?.delete(id);
111
+ return true;
112
+ }
113
+ async clear(agentId) {
114
+ const agentInsights = this.agentIndex.get(agentId);
115
+ if (!agentInsights)
116
+ return;
117
+ for (const id of agentInsights) {
118
+ this.insights.delete(id);
119
+ }
120
+ this.agentIndex.delete(agentId);
121
+ }
122
+ getStats() {
123
+ return {
124
+ totalInsights: this.insights.size,
125
+ agentCount: this.agentIndex.size,
126
+ };
127
+ }
128
+ }
129
+ //# sourceMappingURL=insight-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insight-store.js","sourceRoot":"","sources":["../../src/reflection/insight-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { ReflectionAction, AgentContext, Insight } from '@cogitator-ai/types';
2
+ export declare function buildToolReflectionPrompt(action: ReflectionAction, context: AgentContext, relevantInsights: Insight[]): string;
3
+ export declare function buildErrorReflectionPrompt(action: ReflectionAction, context: AgentContext, relevantInsights: Insight[]): string;
4
+ export declare function buildRunReflectionPrompt(context: AgentContext, actions: ReflectionAction[], finalOutput: string, success: boolean): string;
5
+ export interface ParsedReflection {
6
+ wasSuccessful: boolean;
7
+ confidence: number;
8
+ reasoning: string;
9
+ alternativesConsidered?: string[];
10
+ whatCouldImprove?: string;
11
+ insights: Array<{
12
+ type: string;
13
+ content: string;
14
+ context: string;
15
+ }>;
16
+ }
17
+ export declare function parseReflectionResponse(response: string): ParsedReflection | null;
18
+ //# sourceMappingURL=prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/reflection/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnF,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,YAAY,EACrB,gBAAgB,EAAE,OAAO,EAAE,GAC1B,MAAM,CAsCR;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,YAAY,EACrB,gBAAgB,EAAE,OAAO,EAAE,GAC1B,MAAM,CA6CR;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,gBAAgB,EAAE,EAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,GACf,MAAM,CAwCR;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CA0CjF"}
@@ -0,0 +1,157 @@
1
+ export function buildToolReflectionPrompt(action, context, relevantInsights) {
2
+ const insightsSection = relevantInsights.length > 0
3
+ ? `\nRelevant past learnings:\n${relevantInsights.map((i) => `- ${i.content}`).join('\n')}`
4
+ : '';
5
+ return `You just executed a tool. Analyze the result and extract learnings.
6
+
7
+ Tool: ${action.toolName}
8
+ Input: ${JSON.stringify(action.input, null, 2)}
9
+ Output: ${JSON.stringify(action.output, null, 2)}
10
+ Duration: ${action.duration ?? 'unknown'}ms
11
+ Goal: ${context.goal}
12
+ Iteration: ${context.iterationIndex + 1}
13
+ Available tools: ${context.availableTools.join(', ')}
14
+ ${insightsSection}
15
+
16
+ Analyze this tool execution:
17
+ 1. Was this the right tool for the task? Rate confidence 0.0-1.0
18
+ 2. Did the output help progress toward the goal?
19
+ 3. What alternatives could have been considered?
20
+ 4. What can be learned for future similar situations?
21
+
22
+ Respond ONLY with valid JSON (no markdown, no code blocks):
23
+ {
24
+ "wasSuccessful": boolean,
25
+ "confidence": number,
26
+ "reasoning": "brief explanation",
27
+ "alternativesConsidered": ["alternative 1", "alternative 2"],
28
+ "whatCouldImprove": "suggestion or null",
29
+ "insights": [
30
+ {
31
+ "type": "pattern|mistake|success|tip|warning",
32
+ "content": "what was learned",
33
+ "context": "when this applies"
34
+ }
35
+ ]
36
+ }`;
37
+ }
38
+ export function buildErrorReflectionPrompt(action, context, relevantInsights) {
39
+ const previousActions = context.previousActions.length > 0
40
+ ? `\nPrevious actions:\n${context.previousActions
41
+ .map((a, i) => `${i + 1}. ${a.type}${a.toolName ? `: ${a.toolName}` : ''}`)
42
+ .join('\n')}`
43
+ : '';
44
+ const insightsSection = relevantInsights.length > 0
45
+ ? `\nRelevant past learnings:\n${relevantInsights.map((i) => `- ${i.content}`).join('\n')}`
46
+ : '';
47
+ return `An error occurred during agent execution. Analyze what went wrong.
48
+
49
+ Error: ${action.error}
50
+ Action type: ${action.type}
51
+ ${action.toolName ? `Tool: ${action.toolName}` : ''}
52
+ ${action.input ? `Input: ${JSON.stringify(action.input, null, 2)}` : ''}
53
+ Goal: ${context.goal}
54
+ Iteration: ${context.iterationIndex + 1}
55
+ ${previousActions}
56
+ ${insightsSection}
57
+
58
+ Analyze this error:
59
+ 1. What caused this error?
60
+ 2. Could it have been prevented?
61
+ 3. Is this recoverable? How?
62
+ 4. What should be done differently next time?
63
+
64
+ Respond ONLY with valid JSON (no markdown, no code blocks):
65
+ {
66
+ "wasSuccessful": false,
67
+ "confidence": number,
68
+ "reasoning": "what went wrong and why",
69
+ "alternativesConsidered": ["what could have been done instead"],
70
+ "whatCouldImprove": "specific improvement",
71
+ "insights": [
72
+ {
73
+ "type": "mistake|warning|tip",
74
+ "content": "what was learned from this error",
75
+ "context": "when this applies"
76
+ }
77
+ ]
78
+ }`;
79
+ }
80
+ export function buildRunReflectionPrompt(context, actions, finalOutput, success) {
81
+ const actionsSummary = actions
82
+ .map((a, i) => {
83
+ const result = a.error ? `ERROR: ${a.error}` : 'OK';
84
+ return `${i + 1}. ${a.type}${a.toolName ? `: ${a.toolName}` : ''} - ${result}`;
85
+ })
86
+ .join('\n');
87
+ return `The agent run has completed. Provide an overall analysis.
88
+
89
+ Goal: ${context.goal}
90
+ Total iterations: ${context.iterationIndex + 1}
91
+ Final outcome: ${success ? 'SUCCESS' : 'FAILED'}
92
+
93
+ Actions taken:
94
+ ${actionsSummary}
95
+
96
+ Final output: ${finalOutput.slice(0, 500)}${finalOutput.length > 500 ? '...' : ''}
97
+
98
+ Analyze the entire run:
99
+ 1. Was the goal achieved? Rate confidence 0.0-1.0
100
+ 2. What worked well?
101
+ 3. What could be improved?
102
+ 4. What patterns or strategies should be remembered?
103
+
104
+ Respond ONLY with valid JSON (no markdown, no code blocks):
105
+ {
106
+ "wasSuccessful": ${success},
107
+ "confidence": number,
108
+ "reasoning": "overall assessment",
109
+ "alternativesConsidered": ["what could have been done differently"],
110
+ "whatCouldImprove": "key improvement for future runs",
111
+ "insights": [
112
+ {
113
+ "type": "pattern|success|tip",
114
+ "content": "key learning from this run",
115
+ "context": "when to apply this"
116
+ }
117
+ ]
118
+ }`;
119
+ }
120
+ export function parseReflectionResponse(response) {
121
+ try {
122
+ let cleaned = response.trim();
123
+ if (cleaned.startsWith('```json')) {
124
+ cleaned = cleaned.slice(7);
125
+ }
126
+ else if (cleaned.startsWith('```')) {
127
+ cleaned = cleaned.slice(3);
128
+ }
129
+ if (cleaned.endsWith('```')) {
130
+ cleaned = cleaned.slice(0, -3);
131
+ }
132
+ cleaned = cleaned.trim();
133
+ const parsed = JSON.parse(cleaned);
134
+ if (typeof parsed.wasSuccessful !== 'boolean') {
135
+ parsed.wasSuccessful = false;
136
+ }
137
+ if (typeof parsed.confidence !== 'number' || parsed.confidence < 0 || parsed.confidence > 1) {
138
+ parsed.confidence = 0.5;
139
+ }
140
+ if (typeof parsed.reasoning !== 'string') {
141
+ parsed.reasoning = '';
142
+ }
143
+ if (!Array.isArray(parsed.insights)) {
144
+ parsed.insights = [];
145
+ }
146
+ parsed.insights = parsed.insights.filter((i) => i &&
147
+ typeof i === 'object' &&
148
+ typeof i.type === 'string' &&
149
+ typeof i.content === 'string' &&
150
+ typeof i.context === 'string');
151
+ return parsed;
152
+ }
153
+ catch {
154
+ return null;
155
+ }
156
+ }
157
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/reflection/prompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { LLMBackend, Insight, InsightStore, Reflection, ReflectionConfig, ReflectionAction, ReflectionResult, AgentContext, ReflectionSummary } from '@cogitator-ai/types';
2
+ export interface ReflectionEngineOptions {
3
+ llm: LLMBackend;
4
+ insightStore: InsightStore;
5
+ config: ReflectionConfig;
6
+ }
7
+ export declare class ReflectionEngine {
8
+ private llm;
9
+ private insightStore;
10
+ private config;
11
+ private reflections;
12
+ constructor(options: ReflectionEngineOptions);
13
+ reflectOnToolCall(action: ReflectionAction, context: AgentContext): Promise<ReflectionResult>;
14
+ reflectOnError(action: ReflectionAction, context: AgentContext): Promise<ReflectionResult>;
15
+ reflectOnRun(context: AgentContext, actions: ReflectionAction[], finalOutput: string, success: boolean): Promise<ReflectionResult>;
16
+ getRelevantInsights(context: AgentContext, limit?: number): Promise<Insight[]>;
17
+ getRunReflections(runId: string): Reflection[];
18
+ getSummary(agentId: string): Promise<ReflectionSummary>;
19
+ private callLLM;
20
+ private createReflection;
21
+ private processReflection;
22
+ private createFallbackResult;
23
+ private validateInsightType;
24
+ }
25
+ //# sourceMappingURL=reflection-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflection-engine.d.ts","sourceRoot":"","sources":["../../src/reflection/reflection-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,OAAO,EACP,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EAElB,MAAM,qBAAqB,CAAC;AAY7B,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,UAAU,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,WAAW,CAAmC;gBAE1C,OAAO,EAAE,uBAAuB;IAMtC,iBAAiB,CACrB,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,gBAAgB,CAAC;IAqBtB,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAyB1F,YAAY,CAChB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,gBAAgB,EAAE,EAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,gBAAgB,CAAC;IAwBtB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAU/E,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE;IAIxC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;YA+B/C,OAAO;IAqBrB,OAAO,CAAC,gBAAgB;YAiDV,iBAAiB;IAqB/B,OAAO,CAAC,oBAAoB;IA8B5B,OAAO,CAAC,mBAAmB;CAO5B"}
@@ -0,0 +1,202 @@
1
+ import { buildToolReflectionPrompt, buildErrorReflectionPrompt, buildRunReflectionPrompt, parseReflectionResponse, } from './prompts';
2
+ function generateId() {
3
+ return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 9)}`;
4
+ }
5
+ export class ReflectionEngine {
6
+ llm;
7
+ insightStore;
8
+ config;
9
+ reflections = new Map();
10
+ constructor(options) {
11
+ this.llm = options.llm;
12
+ this.insightStore = options.insightStore;
13
+ this.config = options.config;
14
+ }
15
+ async reflectOnToolCall(action, context) {
16
+ const relevantInsights = await this.insightStore.findRelevant(context.agentId, context.goal, 5);
17
+ const prompt = buildToolReflectionPrompt(action, context, relevantInsights);
18
+ const response = await this.callLLM(prompt);
19
+ const parsed = parseReflectionResponse(response);
20
+ if (!parsed) {
21
+ return this.createFallbackResult(action, context);
22
+ }
23
+ const reflection = this.createReflection(action, context, parsed);
24
+ await this.processReflection(reflection, context);
25
+ return {
26
+ reflection,
27
+ shouldAdjustStrategy: parsed.confidence < 0.5,
28
+ suggestedAction: parsed.whatCouldImprove ?? undefined,
29
+ };
30
+ }
31
+ async reflectOnError(action, context) {
32
+ const relevantInsights = await this.insightStore.findRelevant(context.agentId, `error ${action.error ?? ''}`, 5);
33
+ const prompt = buildErrorReflectionPrompt(action, context, relevantInsights);
34
+ const response = await this.callLLM(prompt);
35
+ const parsed = parseReflectionResponse(response);
36
+ if (!parsed) {
37
+ return this.createFallbackResult(action, context, true);
38
+ }
39
+ const reflection = this.createReflection(action, context, parsed);
40
+ await this.processReflection(reflection, context);
41
+ return {
42
+ reflection,
43
+ shouldAdjustStrategy: true,
44
+ suggestedAction: parsed.whatCouldImprove ?? 'Consider alternative approaches',
45
+ };
46
+ }
47
+ async reflectOnRun(context, actions, finalOutput, success) {
48
+ const prompt = buildRunReflectionPrompt(context, actions, finalOutput, success);
49
+ const response = await this.callLLM(prompt);
50
+ const parsed = parseReflectionResponse(response);
51
+ const action = {
52
+ type: 'response',
53
+ output: finalOutput,
54
+ };
55
+ if (!parsed) {
56
+ return this.createFallbackResult(action, context, !success);
57
+ }
58
+ const reflection = this.createReflection(action, context, parsed);
59
+ await this.processReflection(reflection, context);
60
+ return {
61
+ reflection,
62
+ shouldAdjustStrategy: false,
63
+ suggestedAction: parsed.whatCouldImprove ?? undefined,
64
+ };
65
+ }
66
+ async getRelevantInsights(context, limit = 5) {
67
+ const insights = await this.insightStore.findRelevant(context.agentId, context.goal, limit);
68
+ for (const insight of insights) {
69
+ await this.insightStore.markUsed(insight.id);
70
+ }
71
+ return insights;
72
+ }
73
+ getRunReflections(runId) {
74
+ return this.reflections.get(runId) ?? [];
75
+ }
76
+ async getSummary(agentId) {
77
+ const allInsights = await this.insightStore.getAll(agentId);
78
+ let allReflections = [];
79
+ for (const reflections of this.reflections.values()) {
80
+ allReflections = allReflections.concat(reflections.filter((r) => r.agentId === agentId));
81
+ }
82
+ const successCount = allReflections.filter((r) => r.analysis.wasSuccessful).length;
83
+ const totalConfidence = allReflections.reduce((sum, r) => sum + r.analysis.confidence, 0);
84
+ const mistakes = allInsights.filter((i) => i.type === 'mistake').map((i) => i.content);
85
+ const patterns = allInsights
86
+ .filter((i) => i.type === 'pattern' || i.type === 'success')
87
+ .map((i) => i.content);
88
+ const topInsights = [...allInsights]
89
+ .sort((a, b) => b.usageCount * b.confidence - a.usageCount * a.confidence)
90
+ .slice(0, 10);
91
+ return {
92
+ totalReflections: allReflections.length,
93
+ successRate: allReflections.length > 0 ? successCount / allReflections.length : 0,
94
+ averageConfidence: allReflections.length > 0 ? totalConfidence / allReflections.length : 0,
95
+ topInsights,
96
+ commonMistakes: [...new Set(mistakes)].slice(0, 5),
97
+ learnedPatterns: [...new Set(patterns)].slice(0, 5),
98
+ };
99
+ }
100
+ async callLLM(prompt) {
101
+ const response = await this.llm.chat({
102
+ model: this.config.reflectionModel ?? '',
103
+ messages: [
104
+ {
105
+ role: 'system',
106
+ content: 'You are a reflection assistant. Analyze actions and extract learnings. Always respond with valid JSON only.',
107
+ },
108
+ {
109
+ role: 'user',
110
+ content: prompt,
111
+ },
112
+ ],
113
+ temperature: 0.3,
114
+ maxTokens: 1000,
115
+ });
116
+ return response.content;
117
+ }
118
+ createReflection(action, context, parsed) {
119
+ const reflectionId = generateId();
120
+ const insights = parsed.insights.map((i) => ({
121
+ id: generateId(),
122
+ type: this.validateInsightType(i.type),
123
+ content: i.content,
124
+ context: i.context,
125
+ confidence: parsed.confidence,
126
+ usageCount: 0,
127
+ createdAt: new Date(),
128
+ lastUsedAt: new Date(),
129
+ agentId: context.agentId,
130
+ source: {
131
+ runId: context.runId,
132
+ reflectionId,
133
+ },
134
+ }));
135
+ return {
136
+ id: reflectionId,
137
+ runId: context.runId,
138
+ agentId: context.agentId,
139
+ timestamp: new Date(),
140
+ action,
141
+ analysis: {
142
+ wasSuccessful: parsed.wasSuccessful,
143
+ confidence: parsed.confidence,
144
+ reasoning: parsed.reasoning,
145
+ alternativesConsidered: parsed.alternativesConsidered,
146
+ whatCouldImprove: parsed.whatCouldImprove,
147
+ },
148
+ insights,
149
+ goal: context.goal,
150
+ iterationIndex: context.iterationIndex,
151
+ };
152
+ }
153
+ async processReflection(reflection, context) {
154
+ let runReflections = this.reflections.get(reflection.runId);
155
+ if (!runReflections) {
156
+ runReflections = [];
157
+ this.reflections.set(reflection.runId, runReflections);
158
+ }
159
+ runReflections.push(reflection);
160
+ if (this.config.storeInsights !== false) {
161
+ const minConfidence = this.config.minConfidenceToStore ?? 0.3;
162
+ const valuableInsights = reflection.insights.filter((i) => i.confidence >= minConfidence);
163
+ if (valuableInsights.length > 0) {
164
+ await this.insightStore.storeMany(valuableInsights);
165
+ const maxInsights = this.config.maxInsightsPerAgent ?? 100;
166
+ await this.insightStore.prune(context.agentId, maxInsights);
167
+ }
168
+ }
169
+ }
170
+ createFallbackResult(action, context, isError = false) {
171
+ const reflection = {
172
+ id: generateId(),
173
+ runId: context.runId,
174
+ agentId: context.agentId,
175
+ timestamp: new Date(),
176
+ action,
177
+ analysis: {
178
+ wasSuccessful: !isError,
179
+ confidence: 0.5,
180
+ reasoning: isError ? 'Error occurred during execution' : 'Action completed',
181
+ alternativesConsidered: [],
182
+ whatCouldImprove: undefined,
183
+ },
184
+ insights: [],
185
+ goal: context.goal,
186
+ iterationIndex: context.iterationIndex,
187
+ };
188
+ return {
189
+ reflection,
190
+ shouldAdjustStrategy: isError,
191
+ suggestedAction: undefined,
192
+ };
193
+ }
194
+ validateInsightType(type) {
195
+ const validTypes = ['pattern', 'mistake', 'success', 'tip', 'warning'];
196
+ if (validTypes.includes(type)) {
197
+ return type;
198
+ }
199
+ return 'tip';
200
+ }
201
+ }
202
+ //# sourceMappingURL=reflection-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflection-engine.js","sourceRoot":"","sources":["../../src/reflection/reflection-engine.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export declare class ToolRegistry {
10
10
  has(name: string): boolean;
11
11
  getAll(): Tool[];
12
12
  getSchemas(): ToolSchema[];
13
+ getNames(): string[];
13
14
  clear(): void;
14
15
  }
15
16
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG5D,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA2B;IAExC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI1B,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAMjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAInC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,MAAM,IAAI,IAAI,EAAE;IAIhB,UAAU,IAAI,UAAU,EAAE;IAI1B,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAG5D,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA2B;IAExC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI1B,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAMjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAInC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,MAAM,IAAI,IAAI,EAAE;IAIhB,UAAU,IAAI,UAAU,EAAE;IAI1B,QAAQ,IAAI,MAAM,EAAE;IAIpB,KAAK,IAAI,IAAI;CAGd"}
package/dist/registry.js CHANGED
@@ -24,6 +24,9 @@ export class ToolRegistry {
24
24
  getSchemas() {
25
25
  return this.getAll().map(toolToSchema);
26
26
  }
27
+ getNames() {
28
+ return Array.from(this.tools.keys());
29
+ }
27
30
  clear() {
28
31
  this.tools.clear();
29
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,OAAO,YAAY;IACf,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;IAExC,QAAQ,CAAC,IAAU;QACjB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,OAAO,YAAY;IACf,KAAK,GAAG,IAAI,GAAG,EAAgB,CAAC;IAExC,QAAQ,CAAC,IAAU;QACjB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM;QACJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;IAED,QAAQ;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
@@ -0,0 +1,34 @@
1
+ import type { ExecutionCheckpoint, TimeTravelCheckpointStore, CheckpointQuery, RunResult, ExecutionTrace } from '@cogitator-ai/types';
2
+ export declare class InMemoryCheckpointStore implements TimeTravelCheckpointStore {
3
+ private checkpoints;
4
+ private traceIndex;
5
+ private agentIndex;
6
+ private runIdIndex;
7
+ private labelIndex;
8
+ save(checkpoint: ExecutionCheckpoint): Promise<void>;
9
+ load(id: string): Promise<ExecutionCheckpoint | null>;
10
+ list(query: CheckpointQuery): Promise<ExecutionCheckpoint[]>;
11
+ delete(id: string): Promise<boolean>;
12
+ getByTrace(traceId: string): Promise<ExecutionCheckpoint[]>;
13
+ getByAgent(agentId: string, limit?: number): Promise<ExecutionCheckpoint[]>;
14
+ getByLabel(label: string): Promise<ExecutionCheckpoint[]>;
15
+ clear(agentId?: string): Promise<void>;
16
+ createFromRunResult(result: RunResult, stepIndex: number, options?: {
17
+ label?: string;
18
+ metadata?: Record<string, unknown>;
19
+ }): ExecutionCheckpoint;
20
+ createFromTrace(trace: ExecutionTrace, stepIndex: number, options?: {
21
+ label?: string;
22
+ metadata?: Record<string, unknown>;
23
+ }): ExecutionCheckpoint;
24
+ createAllFromRunResult(result: RunResult, options?: {
25
+ labelPrefix?: string;
26
+ }): Promise<ExecutionCheckpoint[]>;
27
+ private addToIndex;
28
+ private removeFromIndex;
29
+ private extractMessagesUpToStep;
30
+ private extractToolResultsUpToStep;
31
+ private extractPendingToolCalls;
32
+ private countStepsFromSpans;
33
+ }
34
+ //# sourceMappingURL=checkpoint-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint-store.d.ts","sourceRoot":"","sources":["../../src/time-travel/checkpoint-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EAEf,SAAS,EACT,cAAc,EACf,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,uBAAwB,YAAW,yBAAyB;IACvE,OAAO,CAAC,WAAW,CAA0C;IAC7D,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,UAAU,CAAkC;IAE9C,IAAI,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWpD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAIrD,IAAI,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAoD5D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBpC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAI3D,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAI3E,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAIzD,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB5C,mBAAmB,CACjB,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAC/D,mBAAmB;IAsBtB,eAAe,CACb,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAC/D,mBAAmB;IAmChB,sBAAsB,CAC1B,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GACjC,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAejC,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,0BAA0B;IAsBlC,OAAO,CAAC,uBAAuB;IAoB/B,OAAO,CAAC,mBAAmB;CAa5B"}