@cogitator-ai/core 0.3.0 → 0.5.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 (169) hide show
  1. package/README.md +117 -0
  2. package/dist/causal/capabilities/causal-explainer.d.ts +33 -0
  3. package/dist/causal/capabilities/causal-explainer.d.ts.map +1 -0
  4. package/dist/causal/capabilities/causal-explainer.js +334 -0
  5. package/dist/causal/capabilities/causal-explainer.js.map +1 -0
  6. package/dist/causal/capabilities/causal-planner.d.ts +42 -0
  7. package/dist/causal/capabilities/causal-planner.d.ts.map +1 -0
  8. package/dist/causal/capabilities/causal-planner.js +291 -0
  9. package/dist/causal/capabilities/causal-planner.js.map +1 -0
  10. package/dist/causal/capabilities/effect-predictor.d.ts +30 -0
  11. package/dist/causal/capabilities/effect-predictor.d.ts.map +1 -0
  12. package/dist/causal/capabilities/effect-predictor.js +266 -0
  13. package/dist/causal/capabilities/effect-predictor.js.map +1 -0
  14. package/dist/causal/causal-reasoner.d.ts +63 -0
  15. package/dist/causal/causal-reasoner.d.ts.map +1 -0
  16. package/dist/causal/causal-reasoner.js +328 -0
  17. package/dist/causal/causal-reasoner.js.map +1 -0
  18. package/dist/causal/discovery/causal-extractor.d.ts +46 -0
  19. package/dist/causal/discovery/causal-extractor.d.ts.map +1 -0
  20. package/dist/causal/discovery/causal-extractor.js +154 -0
  21. package/dist/causal/discovery/causal-extractor.js.map +1 -0
  22. package/dist/causal/discovery/causal-validator.d.ts +50 -0
  23. package/dist/causal/discovery/causal-validator.d.ts.map +1 -0
  24. package/dist/causal/discovery/causal-validator.js +237 -0
  25. package/dist/causal/discovery/causal-validator.js.map +1 -0
  26. package/dist/causal/discovery/hypothesis-generator.d.ts +37 -0
  27. package/dist/causal/discovery/hypothesis-generator.d.ts.map +1 -0
  28. package/dist/causal/discovery/hypothesis-generator.js +228 -0
  29. package/dist/causal/discovery/hypothesis-generator.js.map +1 -0
  30. package/dist/causal/discovery/prompts.d.ts +99 -0
  31. package/dist/causal/discovery/prompts.d.ts.map +1 -0
  32. package/dist/causal/discovery/prompts.js +265 -0
  33. package/dist/causal/discovery/prompts.js.map +1 -0
  34. package/dist/causal/graph/causal-graph.d.ts +38 -0
  35. package/dist/causal/graph/causal-graph.d.ts.map +1 -0
  36. package/dist/causal/graph/causal-graph.js +321 -0
  37. package/dist/causal/graph/causal-graph.js.map +1 -0
  38. package/dist/causal/graph/graph-builder.d.ts +68 -0
  39. package/dist/causal/graph/graph-builder.d.ts.map +1 -0
  40. package/dist/causal/graph/graph-builder.js +128 -0
  41. package/dist/causal/graph/graph-builder.js.map +1 -0
  42. package/dist/causal/index.d.ts +28 -0
  43. package/dist/causal/index.d.ts.map +1 -0
  44. package/dist/causal/index.js +18 -0
  45. package/dist/causal/index.js.map +1 -0
  46. package/dist/causal/inference/adjustment.d.ts +5 -0
  47. package/dist/causal/inference/adjustment.d.ts.map +1 -0
  48. package/dist/causal/inference/adjustment.js +188 -0
  49. package/dist/causal/inference/adjustment.js.map +1 -0
  50. package/dist/causal/inference/counterfactual.d.ts +24 -0
  51. package/dist/causal/inference/counterfactual.d.ts.map +1 -0
  52. package/dist/causal/inference/counterfactual.js +198 -0
  53. package/dist/causal/inference/counterfactual.js.map +1 -0
  54. package/dist/causal/inference/d-separation.d.ts +4 -0
  55. package/dist/causal/inference/d-separation.d.ts.map +1 -0
  56. package/dist/causal/inference/d-separation.js +168 -0
  57. package/dist/causal/inference/d-separation.js.map +1 -0
  58. package/dist/causal/inference/inference-engine.d.ts +33 -0
  59. package/dist/causal/inference/inference-engine.d.ts.map +1 -0
  60. package/dist/causal/inference/inference-engine.js +252 -0
  61. package/dist/causal/inference/inference-engine.js.map +1 -0
  62. package/dist/causal/stores/causal-graph-store.d.ts +12 -0
  63. package/dist/causal/stores/causal-graph-store.d.ts.map +1 -0
  64. package/dist/causal/stores/causal-graph-store.js +60 -0
  65. package/dist/causal/stores/causal-graph-store.js.map +1 -0
  66. package/dist/causal/stores/causal-pattern-store.d.ts +19 -0
  67. package/dist/causal/stores/causal-pattern-store.d.ts.map +1 -0
  68. package/dist/causal/stores/causal-pattern-store.js +117 -0
  69. package/dist/causal/stores/causal-pattern-store.js.map +1 -0
  70. package/dist/causal/stores/intervention-log.d.ts +16 -0
  71. package/dist/causal/stores/intervention-log.d.ts.map +1 -0
  72. package/dist/causal/stores/intervention-log.js +113 -0
  73. package/dist/causal/stores/intervention-log.js.map +1 -0
  74. package/dist/cogitator.d.ts.map +1 -1
  75. package/dist/cogitator.js +10 -5
  76. package/dist/cogitator.js.map +1 -1
  77. package/dist/index.d.ts +4 -0
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +2 -0
  80. package/dist/index.js.map +1 -1
  81. package/dist/learning/ab-testing.d.ts.map +1 -1
  82. package/dist/learning/ab-testing.js +6 -5
  83. package/dist/learning/ab-testing.js.map +1 -1
  84. package/dist/learning/auto-optimizer.d.ts.map +1 -1
  85. package/dist/learning/auto-optimizer.js +4 -2
  86. package/dist/learning/auto-optimizer.js.map +1 -1
  87. package/dist/learning/postgres-trace-store.d.ts.map +1 -1
  88. package/dist/learning/postgres-trace-store.js +15 -5
  89. package/dist/learning/postgres-trace-store.js.map +1 -1
  90. package/dist/learning/prompt-monitor.d.ts.map +1 -1
  91. package/dist/learning/prompt-monitor.js.map +1 -1
  92. package/dist/learning/rollback-manager.d.ts.map +1 -1
  93. package/dist/learning/rollback-manager.js.map +1 -1
  94. package/dist/llm/google.d.ts.map +1 -1
  95. package/dist/llm/google.js +5 -3
  96. package/dist/llm/google.js.map +1 -1
  97. package/package.json +5 -5
  98. package/dist/__tests__/agent.test.d.ts +0 -2
  99. package/dist/__tests__/agent.test.d.ts.map +0 -1
  100. package/dist/__tests__/agent.test.js +0 -91
  101. package/dist/__tests__/agent.test.js.map +0 -1
  102. package/dist/__tests__/base64.test.d.ts +0 -2
  103. package/dist/__tests__/base64.test.d.ts.map +0 -1
  104. package/dist/__tests__/base64.test.js +0 -62
  105. package/dist/__tests__/base64.test.js.map +0 -1
  106. package/dist/__tests__/calculator.test.d.ts +0 -2
  107. package/dist/__tests__/calculator.test.d.ts.map +0 -1
  108. package/dist/__tests__/calculator.test.js +0 -146
  109. package/dist/__tests__/calculator.test.js.map +0 -1
  110. package/dist/__tests__/cogitator-memory.test.d.ts +0 -2
  111. package/dist/__tests__/cogitator-memory.test.d.ts.map +0 -1
  112. package/dist/__tests__/cogitator-memory.test.js +0 -176
  113. package/dist/__tests__/cogitator-memory.test.js.map +0 -1
  114. package/dist/__tests__/datetime.test.d.ts +0 -2
  115. package/dist/__tests__/datetime.test.d.ts.map +0 -1
  116. package/dist/__tests__/datetime.test.js +0 -87
  117. package/dist/__tests__/datetime.test.js.map +0 -1
  118. package/dist/__tests__/exec.test.d.ts +0 -2
  119. package/dist/__tests__/exec.test.d.ts.map +0 -1
  120. package/dist/__tests__/exec.test.js +0 -59
  121. package/dist/__tests__/exec.test.js.map +0 -1
  122. package/dist/__tests__/filesystem.test.d.ts +0 -2
  123. package/dist/__tests__/filesystem.test.d.ts.map +0 -1
  124. package/dist/__tests__/filesystem.test.js +0 -148
  125. package/dist/__tests__/filesystem.test.js.map +0 -1
  126. package/dist/__tests__/google-backend.test.d.ts +0 -5
  127. package/dist/__tests__/google-backend.test.d.ts.map +0 -1
  128. package/dist/__tests__/google-backend.test.js +0 -429
  129. package/dist/__tests__/google-backend.test.js.map +0 -1
  130. package/dist/__tests__/hash.test.d.ts +0 -2
  131. package/dist/__tests__/hash.test.d.ts.map +0 -1
  132. package/dist/__tests__/hash.test.js +0 -50
  133. package/dist/__tests__/hash.test.js.map +0 -1
  134. package/dist/__tests__/http.test.d.ts +0 -2
  135. package/dist/__tests__/http.test.d.ts.map +0 -1
  136. package/dist/__tests__/http.test.js +0 -64
  137. package/dist/__tests__/http.test.js.map +0 -1
  138. package/dist/__tests__/json.test.d.ts +0 -2
  139. package/dist/__tests__/json.test.d.ts.map +0 -1
  140. package/dist/__tests__/json.test.js +0 -65
  141. package/dist/__tests__/json.test.js.map +0 -1
  142. package/dist/__tests__/logger.test.d.ts +0 -2
  143. package/dist/__tests__/logger.test.d.ts.map +0 -1
  144. package/dist/__tests__/logger.test.js +0 -186
  145. package/dist/__tests__/logger.test.js.map +0 -1
  146. package/dist/__tests__/random.test.d.ts +0 -2
  147. package/dist/__tests__/random.test.d.ts.map +0 -1
  148. package/dist/__tests__/random.test.js +0 -81
  149. package/dist/__tests__/random.test.js.map +0 -1
  150. package/dist/__tests__/regex.test.d.ts +0 -2
  151. package/dist/__tests__/regex.test.d.ts.map +0 -1
  152. package/dist/__tests__/regex.test.js +0 -75
  153. package/dist/__tests__/regex.test.js.map +0 -1
  154. package/dist/__tests__/registry.test.d.ts +0 -2
  155. package/dist/__tests__/registry.test.d.ts.map +0 -1
  156. package/dist/__tests__/registry.test.js +0 -102
  157. package/dist/__tests__/registry.test.js.map +0 -1
  158. package/dist/__tests__/sleep.test.d.ts +0 -2
  159. package/dist/__tests__/sleep.test.d.ts.map +0 -1
  160. package/dist/__tests__/sleep.test.js +0 -29
  161. package/dist/__tests__/sleep.test.js.map +0 -1
  162. package/dist/__tests__/tool.test.d.ts +0 -2
  163. package/dist/__tests__/tool.test.d.ts.map +0 -1
  164. package/dist/__tests__/tool.test.js +0 -103
  165. package/dist/__tests__/tool.test.js.map +0 -1
  166. package/dist/__tests__/uuid.test.d.ts +0 -2
  167. package/dist/__tests__/uuid.test.d.ts.map +0 -1
  168. package/dist/__tests__/uuid.test.js +0 -37
  169. package/dist/__tests__/uuid.test.js.map +0 -1
@@ -0,0 +1,63 @@
1
+ import type { CausalGraph, CausalContext, CausalReasoningConfig, CausalReasonerStats, PredictedEffect, CausalExplanation, CausalPlan, CausalActionEvaluation, CausalHypothesis, ExecutionTrace, ToolCall, ThoughtBranch, LLMBackend } from '@cogitator-ai/types';
2
+ import { ValidationContext } from './discovery/causal-validator';
3
+ import { InMemoryCausalGraphStore } from './stores/causal-graph-store';
4
+ import { InMemoryCausalPatternStore } from './stores/causal-pattern-store';
5
+ import { InMemoryInterventionLog } from './stores/intervention-log';
6
+ export interface CausalReasonerOptions {
7
+ llmBackend: LLMBackend;
8
+ config?: Partial<CausalReasoningConfig>;
9
+ graphStore?: InMemoryCausalGraphStore;
10
+ patternStore?: InMemoryCausalPatternStore;
11
+ interventionLog?: InMemoryInterventionLog;
12
+ }
13
+ export declare class CausalReasoner {
14
+ private config;
15
+ private llm;
16
+ private graphs;
17
+ private graphStore;
18
+ private patternStore;
19
+ private interventionLog;
20
+ private extractor;
21
+ private hypothesisGenerator;
22
+ private validator;
23
+ private effectPredictor;
24
+ private explainer;
25
+ private planner;
26
+ private stats;
27
+ constructor(options: CausalReasonerOptions);
28
+ predictEffect(action: string, agentId: string, context?: Partial<CausalContext>): Promise<PredictedEffect>;
29
+ explainCause(effect: string, effectValue: number | string | boolean, agentId: string, context?: Partial<CausalContext>): Promise<CausalExplanation>;
30
+ planForGoal(goal: string, goalValue: number | string | boolean, agentId: string, context?: Partial<CausalContext>, constraints?: {
31
+ forbidden?: string[];
32
+ required?: string[];
33
+ }): Promise<CausalPlan>;
34
+ evaluateToolCall(toolCall: ToolCall, agentId: string, context?: Partial<CausalContext>): Promise<CausalActionEvaluation>;
35
+ scoreBranch(branch: ThoughtBranch, agentId: string, context?: Partial<CausalContext>): Promise<number>;
36
+ analyzeErrorCausally(error: {
37
+ message: string;
38
+ stack?: string;
39
+ }, trace: ExecutionTrace, agentId: string, context?: Partial<CausalContext>): Promise<CausalExplanation>;
40
+ learnFromTrace(trace: ExecutionTrace, agentId: string): Promise<{
41
+ nodesAdded: number;
42
+ edgesAdded: number;
43
+ patternsFound: number;
44
+ }>;
45
+ learnFromIntervention(intervention: Record<string, number | string | boolean>, observedBefore: Record<string, number | string | boolean>, observedAfter: Record<string, number | string | boolean>, expectedEffect: PredictedEffect, success: boolean, agentId: string, traceId?: string): Promise<void>;
46
+ generateHypotheses(agentId: string, goal?: string): Promise<CausalHypothesis[]>;
47
+ validateHypothesis(hypothesis: CausalHypothesis, context: ValidationContext): Promise<{
48
+ validated: boolean;
49
+ adjustedStrength: number;
50
+ adjustedConfidence: number;
51
+ }>;
52
+ getGraph(agentId: string): Promise<CausalGraph>;
53
+ saveGraph(agentId: string): Promise<void>;
54
+ loadGraph(agentId: string): Promise<CausalGraph | null>;
55
+ getStats(): CausalReasonerStats;
56
+ getConfig(): CausalReasoningConfig;
57
+ private getOrCreateGraph;
58
+ private buildContext;
59
+ private extractPatterns;
60
+ private describeStep;
61
+ private isStepSuccessful;
62
+ }
63
+ //# sourceMappingURL=causal-reasoner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"causal-reasoner.d.ts","sourceRoot":"","sources":["../../src/causal/causal-reasoner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,328 @@
1
+ import { DEFAULT_CAUSAL_CONFIG } from '@cogitator-ai/types';
2
+ import { CausalGraphImpl } from './graph/causal-graph';
3
+ import { CausalGraphBuilder } from './graph/graph-builder';
4
+ import { CausalExtractor } from './discovery/causal-extractor';
5
+ import { CausalHypothesisGenerator } from './discovery/hypothesis-generator';
6
+ import { CausalValidator } from './discovery/causal-validator';
7
+ import { CausalEffectPredictor } from './capabilities/effect-predictor';
8
+ import { CausalExplainer } from './capabilities/causal-explainer';
9
+ import { CausalPlanner } from './capabilities/causal-planner';
10
+ import { InMemoryCausalGraphStore } from './stores/causal-graph-store';
11
+ import { InMemoryCausalPatternStore } from './stores/causal-pattern-store';
12
+ import { InMemoryInterventionLog } from './stores/intervention-log';
13
+ let patternIdCounter = 0;
14
+ let interventionIdCounter = 0;
15
+ export class CausalReasoner {
16
+ config;
17
+ llm;
18
+ graphs = new Map();
19
+ graphStore;
20
+ patternStore;
21
+ interventionLog;
22
+ extractor;
23
+ hypothesisGenerator;
24
+ validator;
25
+ effectPredictor;
26
+ explainer;
27
+ planner;
28
+ stats = {
29
+ graphNodes: 0,
30
+ graphEdges: 0,
31
+ hypothesesPending: 0,
32
+ hypothesesValidated: 0,
33
+ hypothesesRejected: 0,
34
+ patternsStored: 0,
35
+ interventionsLogged: 0,
36
+ predictionsAccuracy: 0,
37
+ explanationsGenerated: 0,
38
+ plansGenerated: 0,
39
+ };
40
+ constructor(options) {
41
+ this.llm = options.llmBackend;
42
+ this.config = { ...DEFAULT_CAUSAL_CONFIG, ...options.config };
43
+ this.graphStore = options.graphStore ?? new InMemoryCausalGraphStore();
44
+ this.patternStore = options.patternStore ?? new InMemoryCausalPatternStore();
45
+ this.interventionLog = options.interventionLog ?? new InMemoryInterventionLog();
46
+ this.extractor = new CausalExtractor({
47
+ llmBackend: this.llm,
48
+ minConfidence: this.config.minEdgeConfidence,
49
+ minStrength: this.config.minEdgeStrength,
50
+ batchSize: this.config.discoveryBatchSize,
51
+ });
52
+ this.hypothesisGenerator = new CausalHypothesisGenerator({
53
+ llmBackend: this.llm,
54
+ });
55
+ this.validator = new CausalValidator({
56
+ llmBackend: this.llm,
57
+ validationThreshold: this.config.hypothesisValidationThreshold,
58
+ });
59
+ this.effectPredictor = new CausalEffectPredictor({
60
+ llmBackend: this.llm,
61
+ });
62
+ this.explainer = new CausalExplainer({
63
+ llmBackend: this.llm,
64
+ });
65
+ this.planner = new CausalPlanner({
66
+ llmBackend: this.llm,
67
+ });
68
+ }
69
+ async predictEffect(action, agentId, context) {
70
+ const graph = await this.getOrCreateGraph(agentId);
71
+ const fullContext = this.buildContext(agentId, context);
72
+ return this.effectPredictor.predictEffect(action, graph, fullContext);
73
+ }
74
+ async explainCause(effect, effectValue, agentId, context) {
75
+ const graph = await this.getOrCreateGraph(agentId);
76
+ const fullContext = this.buildContext(agentId, context);
77
+ const explanation = await this.explainer.explainCause(effect, effectValue, graph, fullContext);
78
+ this.stats.explanationsGenerated++;
79
+ return explanation;
80
+ }
81
+ async planForGoal(goal, goalValue, agentId, context, constraints) {
82
+ const graph = await this.getOrCreateGraph(agentId);
83
+ const fullContext = this.buildContext(agentId, context);
84
+ const plan = await this.planner.planForGoal(goal, goalValue, graph, fullContext, constraints);
85
+ this.stats.plansGenerated++;
86
+ return plan;
87
+ }
88
+ async evaluateToolCall(toolCall, agentId, context) {
89
+ if (!this.config.enableSafetyChecks) {
90
+ return {
91
+ action: toolCall.name,
92
+ isSafe: true,
93
+ riskLevel: 'low',
94
+ predictedEffects: {
95
+ action: toolCall.name,
96
+ effects: [],
97
+ sideEffects: [],
98
+ confidence: 0,
99
+ reasoning: 'Safety checks disabled',
100
+ },
101
+ warnings: [],
102
+ recommendations: [],
103
+ };
104
+ }
105
+ const graph = await this.getOrCreateGraph(agentId);
106
+ const fullContext = this.buildContext(agentId, context);
107
+ const action = `${toolCall.name}(${JSON.stringify(toolCall.arguments)})`;
108
+ return this.effectPredictor.evaluateSafety(action, graph, fullContext);
109
+ }
110
+ async scoreBranch(branch, agentId, context) {
111
+ const graph = await this.getOrCreateGraph(agentId);
112
+ const fullContext = this.buildContext(agentId, context);
113
+ const prediction = await this.effectPredictor.predictEffect(branch.thought, graph, fullContext);
114
+ let score = prediction.confidence;
115
+ for (const effect of prediction.effects) {
116
+ score += effect.probability * 0.2;
117
+ }
118
+ for (const sideEffect of prediction.sideEffects) {
119
+ if (sideEffect.unintended) {
120
+ score -= sideEffect.probability * 0.3;
121
+ }
122
+ }
123
+ return Math.max(0, Math.min(1, score));
124
+ }
125
+ async analyzeErrorCausally(error, trace, agentId, context) {
126
+ const graph = await this.getOrCreateGraph(agentId);
127
+ const fullContext = this.buildContext(agentId, context);
128
+ return this.explainer.analyzeError(error, trace, graph, fullContext);
129
+ }
130
+ async learnFromTrace(trace, agentId) {
131
+ if (!this.config.enableLLMDiscovery) {
132
+ return { nodesAdded: 0, edgesAdded: 0, patternsFound: 0 };
133
+ }
134
+ const graph = await this.getOrCreateGraph(agentId);
135
+ const extracted = await this.extractor.extractFromTrace(trace, graph);
136
+ for (const node of extracted.nodes) {
137
+ if (!graph.hasNode(node.id)) {
138
+ graph.addNode(node);
139
+ }
140
+ }
141
+ for (const edge of extracted.edges) {
142
+ if (!graph.getEdgeBetween(edge.source, edge.target)) {
143
+ graph.addEdge(edge);
144
+ }
145
+ }
146
+ const patterns = this.extractPatterns(trace, agentId);
147
+ for (const pattern of patterns) {
148
+ await this.patternStore.save(pattern);
149
+ }
150
+ this.stats.graphNodes = graph.getNodes().length;
151
+ this.stats.graphEdges = graph.getEdges().length;
152
+ this.stats.patternsStored += patterns.length;
153
+ await this.saveGraph(agentId);
154
+ return {
155
+ nodesAdded: extracted.nodes.length,
156
+ edgesAdded: extracted.edges.length,
157
+ patternsFound: patterns.length,
158
+ };
159
+ }
160
+ async learnFromIntervention(intervention, observedBefore, observedAfter, expectedEffect, success, agentId, traceId) {
161
+ const record = {
162
+ id: `intervention-${++interventionIdCounter}-${Date.now()}`,
163
+ agentId,
164
+ intervention,
165
+ observedBefore,
166
+ observedAfter,
167
+ expectedEffect,
168
+ actualEffect: observedAfter,
169
+ success,
170
+ timestamp: Date.now(),
171
+ traceId,
172
+ };
173
+ await this.interventionLog.log(record);
174
+ this.stats.interventionsLogged++;
175
+ const graph = await this.getOrCreateGraph(agentId);
176
+ for (const [variable, _] of Object.entries(intervention)) {
177
+ for (const [outcome, afterValue] of Object.entries(observedAfter)) {
178
+ const beforeValue = observedBefore[outcome];
179
+ if (beforeValue !== afterValue) {
180
+ const existingEdge = graph.getEdgeBetween(variable, outcome);
181
+ if (existingEdge) {
182
+ const newConfidence = success
183
+ ? Math.min(1, existingEdge.confidence + 0.1)
184
+ : Math.max(0.1, existingEdge.confidence - 0.1);
185
+ graph.removeEdge(existingEdge.id);
186
+ graph.addEdge({
187
+ ...existingEdge,
188
+ confidence: newConfidence,
189
+ });
190
+ }
191
+ }
192
+ }
193
+ }
194
+ await this.saveGraph(agentId);
195
+ }
196
+ async generateHypotheses(agentId, goal) {
197
+ const patterns = await this.patternStore.findRelevant(agentId, {}, 20);
198
+ const traces = [];
199
+ const hypotheses = await this.hypothesisGenerator.generateHypotheses(patterns, traces, {
200
+ agentId,
201
+ goal,
202
+ });
203
+ this.stats.hypothesesPending += hypotheses.length;
204
+ return hypotheses;
205
+ }
206
+ async validateHypothesis(hypothesis, context) {
207
+ const result = await this.validator.validateHypothesis(hypothesis, context);
208
+ if (result.validated) {
209
+ this.stats.hypothesesValidated++;
210
+ this.stats.hypothesesPending--;
211
+ const graph = await this.getOrCreateGraph(hypothesis.id.split('-')[0]);
212
+ if (!graph.hasNode(hypothesis.cause)) {
213
+ graph.addNode({
214
+ id: hypothesis.cause,
215
+ name: hypothesis.cause,
216
+ variableType: 'observed',
217
+ });
218
+ }
219
+ if (!graph.hasNode(hypothesis.effect)) {
220
+ graph.addNode({
221
+ id: hypothesis.effect,
222
+ name: hypothesis.effect,
223
+ variableType: 'observed',
224
+ });
225
+ }
226
+ if (!graph.getEdgeBetween(hypothesis.cause, hypothesis.effect)) {
227
+ graph.addEdge({
228
+ id: `edge-validated-${Date.now()}`,
229
+ source: hypothesis.cause,
230
+ target: hypothesis.effect,
231
+ relationType: hypothesis.relationType,
232
+ strength: result.adjustedStrength,
233
+ confidence: result.adjustedConfidence,
234
+ });
235
+ }
236
+ }
237
+ else {
238
+ this.stats.hypothesesRejected++;
239
+ this.stats.hypothesesPending--;
240
+ }
241
+ return {
242
+ validated: result.validated,
243
+ adjustedStrength: result.adjustedStrength,
244
+ adjustedConfidence: result.adjustedConfidence,
245
+ };
246
+ }
247
+ async getGraph(agentId) {
248
+ return this.getOrCreateGraph(agentId);
249
+ }
250
+ async saveGraph(agentId) {
251
+ const graph = this.graphs.get(agentId);
252
+ if (graph) {
253
+ const data = graph.toData();
254
+ data.metadata = { ...data.metadata, agentId };
255
+ await this.graphStore.save(data);
256
+ }
257
+ }
258
+ async loadGraph(agentId) {
259
+ const data = await this.graphStore.loadForAgent(agentId);
260
+ if (data) {
261
+ const graph = CausalGraphImpl.fromData(data);
262
+ this.graphs.set(agentId, graph);
263
+ return graph;
264
+ }
265
+ return null;
266
+ }
267
+ getStats() {
268
+ return { ...this.stats };
269
+ }
270
+ getConfig() {
271
+ return { ...this.config };
272
+ }
273
+ async getOrCreateGraph(agentId) {
274
+ let graph = this.graphs.get(agentId);
275
+ if (!graph) {
276
+ graph = (await this.loadGraph(agentId)) ?? undefined;
277
+ }
278
+ if (!graph) {
279
+ graph = CausalGraphBuilder.create(`${agentId}-causal-graph`).build();
280
+ this.graphs.set(agentId, graph);
281
+ }
282
+ return graph;
283
+ }
284
+ buildContext(agentId, partial) {
285
+ return {
286
+ agentId,
287
+ taskId: partial?.taskId,
288
+ observedVariables: partial?.observedVariables ?? {},
289
+ activeInterventions: partial?.activeInterventions ?? {},
290
+ recentPatterns: partial?.recentPatterns ?? [],
291
+ timestamp: Date.now(),
292
+ };
293
+ }
294
+ extractPatterns(trace, agentId) {
295
+ const patterns = [];
296
+ for (let i = 0; i < trace.steps.length - 1; i++) {
297
+ const current = trace.steps[i];
298
+ const next = trace.steps[i + 1];
299
+ if (this.isStepSuccessful(current) && this.isStepSuccessful(next)) {
300
+ patterns.push({
301
+ id: `pattern-${++patternIdCounter}-${Date.now()}`,
302
+ agentId,
303
+ pattern: {
304
+ trigger: this.describeStep(current),
305
+ effect: this.describeStep(next),
306
+ conditions: [],
307
+ },
308
+ occurrences: 1,
309
+ successRate: 1,
310
+ avgStrength: 0.5,
311
+ lastSeen: Date.now(),
312
+ createdAt: Date.now(),
313
+ });
314
+ }
315
+ }
316
+ return patterns;
317
+ }
318
+ describeStep(step) {
319
+ if (step.toolCall) {
320
+ return `${step.toolCall.name}(${JSON.stringify(step.toolCall.arguments)})`;
321
+ }
322
+ return step.type;
323
+ }
324
+ isStepSuccessful(step) {
325
+ return !step.toolResult?.error;
326
+ }
327
+ }
328
+ //# sourceMappingURL=causal-reasoner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"causal-reasoner.js","sourceRoot":"","sources":["../../src/causal/causal-reasoner.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAqB,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAUpE,IAAI,gBAAgB,GAAG,CAAC,CAAC;AACzB,IAAI,qBAAqB,GAAG,CAAC,CAAC;AAE9B,MAAM,OAAO,cAAc;IACjB,MAAM,CAAwB;IAC9B,GAAG,CAAa;IAEhB,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IACxC,UAAU,CAA2B;IACrC,YAAY,CAA6B;IACzC,eAAe,CAA0B;IAEzC,SAAS,CAAkB;IAC3B,mBAAmB,CAA4B;IAC/C,SAAS,CAAkB;IAC3B,eAAe,CAAwB;IACvC,SAAS,CAAkB;IAC3B,OAAO,CAAgB;IAEvB,KAAK,GAAwB;QACnC,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,CAAC;QACb,iBAAiB,EAAE,CAAC;QACpB,mBAAmB,EAAE,CAAC;QACtB,kBAAkB,EAAE,CAAC;QACrB,cAAc,EAAE,CAAC;QACjB,mBAAmB,EAAE,CAAC;QACtB,mBAAmB,EAAE,CAAC;QACtB,qBAAqB,EAAE,CAAC;QACxB,cAAc,EAAE,CAAC;KAClB,CAAC;IAEF,YAAY,OAA8B;QACxC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,qBAAqB,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAE9D,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,wBAAwB,EAAE,CAAC;QACvE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,0BAA0B,EAAE,CAAC;QAC7E,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,uBAAuB,EAAE,CAAC;QAEhF,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC;YACnC,UAAU,EAAE,IAAI,CAAC,GAAG;YACpB,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB;YAC5C,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;YACxC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB;SAC1C,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,GAAG,IAAI,yBAAyB,CAAC;YACvD,UAAU,EAAE,IAAI,CAAC,GAAG;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC;YACnC,UAAU,EAAE,IAAI,CAAC,GAAG;YACpB,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,6BAA6B;SAC/D,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,GAAG,IAAI,qBAAqB,CAAC;YAC/C,UAAU,EAAE,IAAI,CAAC,GAAG;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC;YACnC,UAAU,EAAE,IAAI,CAAC,GAAG;SACrB,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC;YAC/B,UAAU,EAAE,IAAI,CAAC,GAAG;SACrB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,MAAc,EACd,OAAe,EACf,OAAgC;QAEhC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAExD,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,MAAc,EACd,WAAsC,EACtC,OAAe,EACf,OAAgC;QAEhC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAExD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAE/F,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;QACnC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,IAAY,EACZ,SAAoC,EACpC,OAAe,EACf,OAAgC,EAChC,WAA2D;QAE3D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAExD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAE9F,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,QAAkB,EAClB,OAAe,EACf,OAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACpC,OAAO;gBACL,MAAM,EAAE,QAAQ,CAAC,IAAI;gBACrB,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,KAAK;gBAChB,gBAAgB,EAAE;oBAChB,MAAM,EAAE,QAAQ,CAAC,IAAI;oBACrB,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,EAAE;oBACf,UAAU,EAAE,CAAC;oBACb,SAAS,EAAE,wBAAwB;iBACpC;gBACD,QAAQ,EAAE,EAAE;gBACZ,eAAe,EAAE,EAAE;aACpB,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAExD,MAAM,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC;QACzE,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,WAAW,CACf,MAAqB,EACrB,OAAe,EACf,OAAgC;QAEhC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAExD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAEhG,IAAI,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC;QAElC,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACxC,KAAK,IAAI,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC;QACpC,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;YAChD,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;gBAC1B,KAAK,IAAI,UAAU,CAAC,WAAW,GAAG,GAAG,CAAC;YACxC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,KAA0C,EAC1C,KAAqB,EACrB,OAAe,EACf,OAAgC;QAEhC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAExD,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,KAAqB,EACrB,OAAe;QAEf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACpC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAC5D,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEnD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAEtE,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5B,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACtD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC;QAE7C,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE9B,OAAO;YACL,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM;YAClC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM;YAClC,aAAa,EAAE,QAAQ,CAAC,MAAM;SAC/B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,YAAuD,EACvD,cAAyD,EACzD,aAAwD,EACxD,cAA+B,EAC/B,OAAgB,EAChB,OAAe,EACf,OAAgB;QAEhB,MAAM,MAAM,GAAuB;YACjC,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;YAC3D,OAAO;YACP,YAAY;YACZ,cAAc;YACd,aAAa;YACb,cAAc;YACd,YAAY,EAAE,aAAa;YAC3B,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO;SACR,CAAC;QAEF,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAEjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEnD,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YACzD,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBAClE,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC5C,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;oBAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAC7D,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,aAAa,GAAG,OAAO;4BAC3B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,UAAU,GAAG,GAAG,CAAC;4BAC5C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;wBAEjD,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;wBAClC,KAAK,CAAC,OAAO,CAAC;4BACZ,GAAG,YAAY;4BACf,UAAU,EAAE,aAAa;yBAC1B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAe,EAAE,IAAa;QACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAEvE,MAAM,MAAM,GAAqB,EAAE,CAAC;QAEpC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE;YACrF,OAAO;YACP,IAAI;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,UAAU,CAAC,MAAM,CAAC;QAElD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,UAA4B,EAC5B,OAA0B;QAM1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAE5E,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAE/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrC,KAAK,CAAC,OAAO,CAAC;oBACZ,EAAE,EAAE,UAAU,CAAC,KAAK;oBACpB,IAAI,EAAE,UAAU,CAAC,KAAK;oBACtB,YAAY,EAAE,UAAU;iBACzB,CAAC,CAAC;YACL,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,KAAK,CAAC,OAAO,CAAC;oBACZ,EAAE,EAAE,UAAU,CAAC,MAAM;oBACrB,IAAI,EAAE,UAAU,CAAC,MAAM;oBACvB,YAAY,EAAE,UAAU;iBACzB,CAAC,CAAC;YACL,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/D,KAAK,CAAC,OAAO,CAAC;oBACZ,EAAE,EAAE,kBAAkB,IAAI,CAAC,GAAG,EAAE,EAAE;oBAClC,MAAM,EAAE,UAAU,CAAC,KAAK;oBACxB,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,YAAY,EAAE,UAAU,CAAC,YAAY;oBACrC,QAAQ,EAAE,MAAM,CAAC,gBAAgB;oBACjC,UAAU,EAAE,MAAM,CAAC,kBAAkB;iBACtC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;QACjC,CAAC;QAED,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;SAC9C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAe;QAC7B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,OAAe;QAC5C,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAErC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,GAAG,OAAO,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;YACrE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,YAAY,CAAC,OAAe,EAAE,OAAgC;QACpE,OAAO;YACL,OAAO;YACP,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,IAAI,EAAE;YACnD,mBAAmB,EAAE,OAAO,EAAE,mBAAmB,IAAI,EAAE;YACvD,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,EAAE;YAC7C,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,KAAqB,EAAE,OAAe;QAC5D,MAAM,QAAQ,GAAoB,EAAE,CAAC;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAEhC,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClE,QAAQ,CAAC,IAAI,CAAC;oBACZ,EAAE,EAAE,WAAW,EAAE,gBAAgB,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;oBACjD,OAAO;oBACP,OAAO,EAAE;wBACP,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;wBACnC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;wBAC/B,UAAU,EAAE,EAAE;qBACf;oBACD,WAAW,EAAE,CAAC;oBACd,WAAW,EAAE,CAAC;oBACd,WAAW,EAAE,GAAG;oBAChB,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;oBACpB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,YAAY,CAAC,IAAmB;QACtC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC;QAC7E,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAEO,gBAAgB,CAAC,IAAmB;QAC1C,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;IACjC,CAAC;CACF"}
@@ -0,0 +1,46 @@
1
+ import type { CausalGraph, CausalNode, CausalEdge, ExecutionTrace, ToolCall, LLMBackend } from '@cogitator-ai/types';
2
+ export interface CausalExtractorOptions {
3
+ llmBackend: LLMBackend;
4
+ model?: string;
5
+ minConfidence?: number;
6
+ minStrength?: number;
7
+ batchSize?: number;
8
+ }
9
+ export declare class CausalExtractor {
10
+ private llm;
11
+ private model;
12
+ private minConfidence;
13
+ private minStrength;
14
+ private batchSize;
15
+ constructor(options: CausalExtractorOptions);
16
+ extractFromText(text: string, graph: CausalGraph, context?: {
17
+ taskDescription?: string;
18
+ recentActions?: string[];
19
+ }): Promise<{
20
+ nodes: CausalNode[];
21
+ edges: CausalEdge[];
22
+ }>;
23
+ extractFromToolResult(toolCall: ToolCall, result: unknown, context: {
24
+ taskDescription?: string;
25
+ previousActions?: string[];
26
+ }, graph: CausalGraph): Promise<{
27
+ nodes: CausalNode[];
28
+ edges: CausalEdge[];
29
+ }>;
30
+ extractFromTrace(trace: ExecutionTrace, graph: CausalGraph): Promise<{
31
+ nodes: CausalNode[];
32
+ edges: CausalEdge[];
33
+ }>;
34
+ extractFromReflection(reflection: {
35
+ analysis: string;
36
+ insights: string[];
37
+ recommendations: string[];
38
+ }, graph: CausalGraph): Promise<{
39
+ nodes: CausalNode[];
40
+ edges: CausalEdge[];
41
+ }>;
42
+ private processExtractionResult;
43
+ private mapVariableType;
44
+ private mapRelationType;
45
+ }
46
+ //# sourceMappingURL=causal-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"causal-extractor.d.ts","sourceRoot":"","sources":["../../../src/causal/discovery/causal-extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,UAAU,EAGV,cAAc,EACd,QAAQ,EACR,UAAU,EACX,MAAM,qBAAqB,CAAC;AAO7B,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,qBAAa,eAAe;IAC1B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,sBAAsB;IAQrC,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC/D,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QAAC,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAoBlD,qBAAqB,CACzB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,OAAO,EACf,OAAO,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,EACjE,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QAAC,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAYlD,gBAAgB,CACpB,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QAAC,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAyClD,qBAAqB,CACzB,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,eAAe,EAAE,MAAM,EAAE,CAAA;KAAE,EAC/E,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QAAC,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAaxD,OAAO,CAAC,uBAAuB;IAmD/B,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,eAAe;CAWxB"}
@@ -0,0 +1,154 @@
1
+ import { buildCausalExtractionPrompt, parseCausalExtractionResponse, } from './prompts';
2
+ let edgeIdCounter = 0;
3
+ export class CausalExtractor {
4
+ llm;
5
+ model;
6
+ minConfidence;
7
+ minStrength;
8
+ batchSize;
9
+ constructor(options) {
10
+ this.llm = options.llmBackend;
11
+ this.model = options.model ?? 'gpt-4';
12
+ this.minConfidence = options.minConfidence ?? 0.3;
13
+ this.minStrength = options.minStrength ?? 0.1;
14
+ this.batchSize = options.batchSize ?? 5;
15
+ }
16
+ async extractFromText(text, graph, context) {
17
+ const existingNodes = graph.getNodes();
18
+ const prompt = buildCausalExtractionPrompt(text, existingNodes, context);
19
+ const response = await this.llm.chat({
20
+ model: this.model,
21
+ messages: [{ role: 'user', content: prompt }],
22
+ temperature: 0.3,
23
+ });
24
+ const content = response.content;
25
+ const parsed = parseCausalExtractionResponse(content);
26
+ if (!parsed) {
27
+ return { nodes: [], edges: [] };
28
+ }
29
+ return this.processExtractionResult(parsed.relationships, graph);
30
+ }
31
+ async extractFromToolResult(toolCall, result, context, graph) {
32
+ const text = `Tool execution:
33
+ Tool: ${toolCall.name}
34
+ Input: ${JSON.stringify(toolCall.arguments)}
35
+ Result: ${JSON.stringify(result)}
36
+
37
+ The agent called this tool as part of task: ${context.taskDescription || 'Unknown task'}
38
+ Previous actions: ${context.previousActions?.join(', ') || 'None'}`;
39
+ return this.extractFromText(text, graph, context);
40
+ }
41
+ async extractFromTrace(trace, graph) {
42
+ const allNodes = [];
43
+ const allEdges = [];
44
+ const batches = [];
45
+ for (let i = 0; i < trace.steps.length; i += this.batchSize) {
46
+ batches.push(trace.steps.slice(i, i + this.batchSize));
47
+ }
48
+ for (const batch of batches) {
49
+ const batchText = batch
50
+ .map((step, i) => {
51
+ const stepNum = i + 1;
52
+ const action = step.toolCall
53
+ ? `${step.toolCall.name}(${JSON.stringify(step.toolCall.arguments)})`
54
+ : step.type;
55
+ const result = step.toolResult
56
+ ? String(step.toolResult.result).substring(0, 500)
57
+ : step.response?.substring(0, 500) || 'No result';
58
+ const success = !step.toolResult?.error;
59
+ return `Step ${stepNum}:
60
+ Action: ${action}
61
+ ${step.toolCall ? `Tool: ${step.toolCall.name}` : ''}
62
+ Result: ${result}
63
+ Success: ${success}`;
64
+ })
65
+ .join('\n\n');
66
+ const context = {
67
+ taskDescription: trace.context?.task,
68
+ recentActions: batch.map((s) => s.toolCall?.name || s.type),
69
+ };
70
+ const result = await this.extractFromText(batchText, graph, context);
71
+ allNodes.push(...result.nodes);
72
+ allEdges.push(...result.edges);
73
+ }
74
+ return { nodes: allNodes, edges: allEdges };
75
+ }
76
+ async extractFromReflection(reflection, graph) {
77
+ const text = `Reflection analysis:
78
+ ${reflection.analysis}
79
+
80
+ Insights:
81
+ ${reflection.insights.map((i) => `- ${i}`).join('\n')}
82
+
83
+ Recommendations:
84
+ ${reflection.recommendations.map((r) => `- ${r}`).join('\n')}`;
85
+ return this.extractFromText(text, graph);
86
+ }
87
+ processExtractionResult(relationships, graph) {
88
+ const newNodes = [];
89
+ const newEdges = [];
90
+ const nodeIds = new Set(graph.getNodes().map((n) => n.id));
91
+ for (const rel of relationships) {
92
+ if (rel.confidence < this.minConfidence || rel.strength < this.minStrength) {
93
+ continue;
94
+ }
95
+ if (!nodeIds.has(rel.cause.id)) {
96
+ const causeNode = {
97
+ id: rel.cause.id,
98
+ name: rel.cause.name,
99
+ variableType: this.mapVariableType(rel.cause.type),
100
+ };
101
+ newNodes.push(causeNode);
102
+ nodeIds.add(rel.cause.id);
103
+ }
104
+ if (!nodeIds.has(rel.effect.id)) {
105
+ const effectNode = {
106
+ id: rel.effect.id,
107
+ name: rel.effect.name,
108
+ variableType: this.mapVariableType(rel.effect.type),
109
+ };
110
+ newNodes.push(effectNode);
111
+ nodeIds.add(rel.effect.id);
112
+ }
113
+ const existingEdge = graph.getEdgeBetween(rel.cause.id, rel.effect.id);
114
+ if (!existingEdge) {
115
+ const edge = {
116
+ id: `edge-extracted-${++edgeIdCounter}`,
117
+ source: rel.cause.id,
118
+ target: rel.effect.id,
119
+ relationType: this.mapRelationType(rel.relationType),
120
+ strength: rel.strength,
121
+ confidence: rel.confidence,
122
+ mechanism: rel.mechanism,
123
+ };
124
+ newEdges.push(edge);
125
+ }
126
+ }
127
+ return { nodes: newNodes, edges: newEdges };
128
+ }
129
+ mapVariableType(type) {
130
+ const mapping = {
131
+ treatment: 'treatment',
132
+ outcome: 'outcome',
133
+ confounder: 'confounder',
134
+ mediator: 'mediator',
135
+ instrumental: 'instrumental',
136
+ collider: 'collider',
137
+ observed: 'observed',
138
+ latent: 'latent',
139
+ };
140
+ return mapping[type.toLowerCase()] ?? 'observed';
141
+ }
142
+ mapRelationType(type) {
143
+ const mapping = {
144
+ causes: 'causes',
145
+ enables: 'enables',
146
+ prevents: 'prevents',
147
+ mediates: 'mediates',
148
+ confounds: 'confounds',
149
+ moderates: 'moderates',
150
+ };
151
+ return mapping[type.toLowerCase()] ?? 'causes';
152
+ }
153
+ }
154
+ //# sourceMappingURL=causal-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"causal-extractor.js","sourceRoot":"","sources":["../../../src/causal/discovery/causal-extractor.ts"],"names":[],"mappings":"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"}