@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,33 @@
1
+ import type { CausalGraph, CausalEffectEstimate, CounterfactualQuery, CounterfactualResult, InterventionQuery, AdjustmentSet, CausalReasoningConfig } from '@cogitator-ai/types';
2
+ import { CounterfactualReasonerOptions } from './counterfactual';
3
+ export interface CausalInferenceEngineOptions {
4
+ config?: Partial<CausalReasoningConfig>;
5
+ counterfactualOptions?: CounterfactualReasonerOptions;
6
+ }
7
+ export declare class CausalInferenceEngine {
8
+ private graph;
9
+ private config;
10
+ private counterfactualReasoner;
11
+ constructor(graph: CausalGraph, options?: CausalInferenceEngineOptions);
12
+ isIdentifiable(treatment: string, outcome: string): {
13
+ identifiable: boolean;
14
+ reason: string;
15
+ adjustmentSet?: AdjustmentSet;
16
+ };
17
+ computeInterventionalEffect(query: InterventionQuery, observedData?: Record<string, number[]>): CausalEffectEstimate;
18
+ private estimateEffectFromData;
19
+ private stratifyData;
20
+ computeCounterfactual(query: CounterfactualQuery): CounterfactualResult;
21
+ estimateATE(treatment: string, outcome: string, data: Record<string, number[]>): CausalEffectEstimate;
22
+ estimateATT(treatment: string, outcome: string, data: Record<string, number[]>): CausalEffectEstimate;
23
+ checkConditionalIndependence(x: string, y: string, z: string[]): {
24
+ independent: boolean;
25
+ paths: number;
26
+ openPaths: number;
27
+ };
28
+ findInstrumentalVariables(treatment: string, outcome: string): string[];
29
+ getAllAdjustmentSets(treatment: string, outcome: string): AdjustmentSet[];
30
+ updateGraph(graph: CausalGraph): void;
31
+ getGraph(): CausalGraph;
32
+ }
33
+ //# sourceMappingURL=inference-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inference-engine.d.ts","sourceRoot":"","sources":["../../../src/causal/inference/inference-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EAA0B,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAEzF,MAAM,WAAW,4BAA4B;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACxC,qBAAqB,CAAC,EAAE,6BAA6B,CAAC;CACvD;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,sBAAsB,CAAyB;gBAE3C,KAAK,EAAE,WAAW,EAAE,OAAO,GAAE,4BAAiC;IAM1E,cAAc,CACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,aAAa,CAAA;KAAE;IA0B3E,2BAA2B,CACzB,KAAK,EAAE,iBAAiB,EACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GACtC,oBAAoB;IAkDvB,OAAO,CAAC,sBAAsB;IA6G9B,OAAO,CAAC,YAAY;IAwBpB,qBAAqB,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB;IAOvE,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAC7B,oBAAoB;IAOvB,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAC7B,oBAAoB;IAkDvB,4BAA4B,CAC1B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EAAE,GACV;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAS7D,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAsBvE,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,EAAE;IAIzE,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAIrC,QAAQ,IAAI,WAAW;CAGxB"}
@@ -0,0 +1,252 @@
1
+ import { DEFAULT_CAUSAL_CONFIG } from '@cogitator-ai/types';
2
+ import { dSeparation } from './d-separation';
3
+ import { findBackdoorAdjustment, findFrontdoorAdjustment, findAllAdjustmentSets, } from './adjustment';
4
+ import { CounterfactualReasoner } from './counterfactual';
5
+ export class CausalInferenceEngine {
6
+ graph;
7
+ config;
8
+ counterfactualReasoner;
9
+ constructor(graph, options = {}) {
10
+ this.graph = graph;
11
+ this.config = { ...DEFAULT_CAUSAL_CONFIG, ...options.config };
12
+ this.counterfactualReasoner = new CounterfactualReasoner(options.counterfactualOptions);
13
+ }
14
+ isIdentifiable(treatment, outcome) {
15
+ const backdoor = findBackdoorAdjustment(this.graph, treatment, outcome);
16
+ if (backdoor) {
17
+ return {
18
+ identifiable: true,
19
+ reason: 'Identifiable via backdoor criterion',
20
+ adjustmentSet: backdoor,
21
+ };
22
+ }
23
+ const frontdoor = findFrontdoorAdjustment(this.graph, treatment, outcome);
24
+ if (frontdoor) {
25
+ return {
26
+ identifiable: true,
27
+ reason: 'Identifiable via frontdoor criterion',
28
+ adjustmentSet: frontdoor,
29
+ };
30
+ }
31
+ return {
32
+ identifiable: false,
33
+ reason: 'No valid adjustment set found. Effect may not be identifiable from observational data.',
34
+ };
35
+ }
36
+ computeInterventionalEffect(query, observedData) {
37
+ const treatment = Object.keys(query.interventions)[0];
38
+ const outcome = query.target;
39
+ const identifiability = this.isIdentifiable(treatment, outcome);
40
+ if (!identifiability.identifiable || !identifiability.adjustmentSet) {
41
+ return {
42
+ effect: NaN,
43
+ isIdentifiable: false,
44
+ adjustmentSet: {
45
+ variables: [],
46
+ type: 'backdoor',
47
+ formula: 'Not identifiable',
48
+ isMinimal: false,
49
+ isValid: false,
50
+ },
51
+ formula: identifiability.reason,
52
+ };
53
+ }
54
+ const adjustmentSet = identifiability.adjustmentSet;
55
+ if (observedData) {
56
+ const effect = this.estimateEffectFromData(treatment, outcome, adjustmentSet.variables, observedData, query.interventions[treatment]);
57
+ return {
58
+ effect: effect.estimate,
59
+ standardError: effect.standardError,
60
+ confidenceInterval: effect.confidenceInterval,
61
+ adjustmentSet,
62
+ isIdentifiable: true,
63
+ formula: adjustmentSet.formula,
64
+ };
65
+ }
66
+ return {
67
+ effect: NaN,
68
+ adjustmentSet,
69
+ isIdentifiable: true,
70
+ formula: adjustmentSet.formula,
71
+ };
72
+ }
73
+ estimateEffectFromData(treatment, outcome, adjustmentVars, data, interventionValue) {
74
+ const treatmentValues = data[treatment];
75
+ const outcomeValues = data[outcome];
76
+ if (!treatmentValues || !outcomeValues) {
77
+ return { estimate: NaN, standardError: NaN, confidenceInterval: [NaN, NaN] };
78
+ }
79
+ const n = Math.min(treatmentValues.length, outcomeValues.length);
80
+ if (n === 0) {
81
+ return { estimate: NaN, standardError: NaN, confidenceInterval: [NaN, NaN] };
82
+ }
83
+ const targetTreatment = typeof interventionValue === 'number' ? interventionValue : interventionValue ? 1 : 0;
84
+ if (adjustmentVars.length === 0) {
85
+ const treatedIndices = [];
86
+ const controlIndices = [];
87
+ for (let i = 0; i < n; i++) {
88
+ if (Math.abs(treatmentValues[i] - targetTreatment) < 0.5) {
89
+ treatedIndices.push(i);
90
+ }
91
+ else {
92
+ controlIndices.push(i);
93
+ }
94
+ }
95
+ const treatedOutcome = treatedIndices.length > 0
96
+ ? treatedIndices.reduce((sum, i) => sum + outcomeValues[i], 0) / treatedIndices.length
97
+ : NaN;
98
+ const controlOutcome = controlIndices.length > 0
99
+ ? controlIndices.reduce((sum, i) => sum + outcomeValues[i], 0) / controlIndices.length
100
+ : NaN;
101
+ const effect = treatedOutcome - controlOutcome;
102
+ const treatedVar = treatedIndices.length > 1
103
+ ? treatedIndices.reduce((sum, i) => sum + Math.pow(outcomeValues[i] - treatedOutcome, 2), 0) /
104
+ (treatedIndices.length - 1)
105
+ : 0;
106
+ const controlVar = controlIndices.length > 1
107
+ ? controlIndices.reduce((sum, i) => sum + Math.pow(outcomeValues[i] - controlOutcome, 2), 0) /
108
+ (controlIndices.length - 1)
109
+ : 0;
110
+ const se = Math.sqrt(treatedVar / treatedIndices.length + controlVar / controlIndices.length);
111
+ return {
112
+ estimate: effect,
113
+ standardError: se,
114
+ confidenceInterval: [effect - 1.96 * se, effect + 1.96 * se],
115
+ };
116
+ }
117
+ let weightedEffect = 0;
118
+ let totalWeight = 0;
119
+ const strata = this.stratifyData(data, adjustmentVars, n);
120
+ for (const stratum of strata) {
121
+ const stratumTreated = [];
122
+ const stratumControl = [];
123
+ for (const i of stratum.indices) {
124
+ if (Math.abs(treatmentValues[i] - targetTreatment) < 0.5) {
125
+ stratumTreated.push(outcomeValues[i]);
126
+ }
127
+ else {
128
+ stratumControl.push(outcomeValues[i]);
129
+ }
130
+ }
131
+ if (stratumTreated.length > 0 && stratumControl.length > 0) {
132
+ const treatedMean = stratumTreated.reduce((a, b) => a + b, 0) / stratumTreated.length;
133
+ const controlMean = stratumControl.reduce((a, b) => a + b, 0) / stratumControl.length;
134
+ const stratumEffect = treatedMean - controlMean;
135
+ const weight = stratum.indices.length / n;
136
+ weightedEffect += stratumEffect * weight;
137
+ totalWeight += weight;
138
+ }
139
+ }
140
+ const effect = totalWeight > 0 ? weightedEffect / totalWeight : NaN;
141
+ return {
142
+ estimate: effect,
143
+ standardError: NaN,
144
+ confidenceInterval: [NaN, NaN],
145
+ };
146
+ }
147
+ stratifyData(data, adjustmentVars, n) {
148
+ const strataMap = new Map();
149
+ for (let i = 0; i < n; i++) {
150
+ const key = adjustmentVars
151
+ .map((v) => {
152
+ const val = data[v]?.[i];
153
+ return val !== undefined ? Math.round(val).toString() : 'NA';
154
+ })
155
+ .join('|');
156
+ if (!strataMap.has(key)) {
157
+ strataMap.set(key, []);
158
+ }
159
+ strataMap.get(key).push(i);
160
+ }
161
+ return Array.from(strataMap.entries()).map(([key, indices]) => ({ key, indices }));
162
+ }
163
+ computeCounterfactual(query) {
164
+ if (!this.config.enableCounterfactual) {
165
+ throw new Error('Counterfactual reasoning is disabled in config');
166
+ }
167
+ return this.counterfactualReasoner.evaluate(this.graph, query);
168
+ }
169
+ estimateATE(treatment, outcome, data) {
170
+ return this.computeInterventionalEffect({ target: outcome, interventions: { [treatment]: 1 } }, data);
171
+ }
172
+ estimateATT(treatment, outcome, data) {
173
+ const treatmentValues = data[treatment];
174
+ const outcomeValues = data[outcome];
175
+ if (!treatmentValues || !outcomeValues) {
176
+ return {
177
+ effect: NaN,
178
+ isIdentifiable: false,
179
+ adjustmentSet: {
180
+ variables: [],
181
+ type: 'backdoor',
182
+ formula: 'No data available',
183
+ isMinimal: false,
184
+ isValid: false,
185
+ },
186
+ formula: 'No data available',
187
+ };
188
+ }
189
+ const identifiability = this.isIdentifiable(treatment, outcome);
190
+ if (!identifiability.identifiable) {
191
+ return {
192
+ effect: NaN,
193
+ isIdentifiable: false,
194
+ adjustmentSet: identifiability.adjustmentSet || {
195
+ variables: [],
196
+ type: 'backdoor',
197
+ formula: 'Not identifiable',
198
+ isMinimal: false,
199
+ isValid: false,
200
+ },
201
+ formula: identifiability.reason,
202
+ };
203
+ }
204
+ const ateResult = this.estimateATE(treatment, outcome, data);
205
+ const att = ateResult.effect;
206
+ return {
207
+ effect: att,
208
+ standardError: ateResult.standardError,
209
+ confidenceInterval: ateResult.confidenceInterval,
210
+ adjustmentSet: identifiability.adjustmentSet,
211
+ isIdentifiable: true,
212
+ formula: `ATT = E[Y(1) - Y(0) | T=1] estimated via ${identifiability.adjustmentSet.type} adjustment`,
213
+ };
214
+ }
215
+ checkConditionalIndependence(x, y, z) {
216
+ const result = dSeparation(this.graph, x, y, z);
217
+ return {
218
+ independent: result.separated,
219
+ paths: result.paths.length,
220
+ openPaths: result.openPaths.length,
221
+ };
222
+ }
223
+ findInstrumentalVariables(treatment, outcome) {
224
+ const instruments = [];
225
+ const allNodes = this.graph.getNodes();
226
+ for (const node of allNodes) {
227
+ if (node.id === treatment || node.id === outcome)
228
+ continue;
229
+ const hasPathToTreatment = this.graph.findPaths(node.id, treatment).length > 0;
230
+ if (!hasPathToTreatment)
231
+ continue;
232
+ const directPathToOutcome = this.graph.getEdgeBetween(node.id, outcome);
233
+ if (directPathToOutcome)
234
+ continue;
235
+ const independenceResult = dSeparation(this.graph, node.id, outcome, [treatment]);
236
+ if (independenceResult.separated) {
237
+ instruments.push(node.id);
238
+ }
239
+ }
240
+ return instruments;
241
+ }
242
+ getAllAdjustmentSets(treatment, outcome) {
243
+ return findAllAdjustmentSets(this.graph, treatment, outcome);
244
+ }
245
+ updateGraph(graph) {
246
+ this.graph = graph;
247
+ }
248
+ getGraph() {
249
+ return this.graph;
250
+ }
251
+ }
252
+ //# sourceMappingURL=inference-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inference-engine.js","sourceRoot":"","sources":["../../../src/causal/inference/inference-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { CausalGraphData, CausalGraphStore } from '@cogitator-ai/types';
2
+ export declare class InMemoryCausalGraphStore implements CausalGraphStore {
3
+ private graphs;
4
+ private agentIndex;
5
+ save(graph: CausalGraphData): Promise<void>;
6
+ load(graphId: string): Promise<CausalGraphData | null>;
7
+ loadForAgent(agentId: string): Promise<CausalGraphData | null>;
8
+ delete(graphId: string): Promise<void>;
9
+ list(agentId?: string): Promise<CausalGraphData[]>;
10
+ clear(): void;
11
+ }
12
+ //# sourceMappingURL=causal-graph-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"causal-graph-store.d.ts","sourceRoot":"","sources":["../../../src/causal/stores/causal-graph-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE7E,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,UAAU,CAA+B;IAE3C,IAAI,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAa3C,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAKtD,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAQ9D,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBtC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAcxD,KAAK,IAAI,IAAI;CAId"}
@@ -0,0 +1,60 @@
1
+ export class InMemoryCausalGraphStore {
2
+ graphs = new Map();
3
+ agentIndex = new Map();
4
+ async save(graph) {
5
+ this.graphs.set(graph.id, { ...graph });
6
+ const agentId = graph.metadata?.agentId;
7
+ if (agentId) {
8
+ const agentGraphs = this.agentIndex.get(agentId) || [];
9
+ if (!agentGraphs.includes(graph.id)) {
10
+ agentGraphs.push(graph.id);
11
+ this.agentIndex.set(agentId, agentGraphs);
12
+ }
13
+ }
14
+ }
15
+ async load(graphId) {
16
+ const graph = this.graphs.get(graphId);
17
+ return graph ? { ...graph } : null;
18
+ }
19
+ async loadForAgent(agentId) {
20
+ const graphIds = this.agentIndex.get(agentId);
21
+ if (!graphIds || graphIds.length === 0)
22
+ return null;
23
+ const latestId = graphIds[graphIds.length - 1];
24
+ return this.load(latestId);
25
+ }
26
+ async delete(graphId) {
27
+ const graph = this.graphs.get(graphId);
28
+ if (graph) {
29
+ const agentId = graph.metadata?.agentId;
30
+ if (agentId) {
31
+ const agentGraphs = this.agentIndex.get(agentId);
32
+ if (agentGraphs) {
33
+ const idx = agentGraphs.indexOf(graphId);
34
+ if (idx >= 0) {
35
+ agentGraphs.splice(idx, 1);
36
+ }
37
+ }
38
+ }
39
+ this.graphs.delete(graphId);
40
+ }
41
+ }
42
+ async list(agentId) {
43
+ if (agentId) {
44
+ const graphIds = this.agentIndex.get(agentId) || [];
45
+ const graphs = [];
46
+ for (const id of graphIds) {
47
+ const graph = await this.load(id);
48
+ if (graph)
49
+ graphs.push(graph);
50
+ }
51
+ return graphs;
52
+ }
53
+ return Array.from(this.graphs.values()).map((g) => ({ ...g }));
54
+ }
55
+ clear() {
56
+ this.graphs.clear();
57
+ this.agentIndex.clear();
58
+ }
59
+ }
60
+ //# sourceMappingURL=causal-graph-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"causal-graph-store.js","sourceRoot":"","sources":["../../../src/causal/stores/causal-graph-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { CausalPattern, CausalPatternStore } from '@cogitator-ai/types';
2
+ export declare class InMemoryCausalPatternStore implements CausalPatternStore {
3
+ private patterns;
4
+ private agentIndex;
5
+ save(pattern: CausalPattern): Promise<void>;
6
+ findRelevant(agentId: string, context: {
7
+ trigger?: string;
8
+ effect?: string;
9
+ }, limit: number): Promise<CausalPattern[]>;
10
+ markUsed(patternId: string): Promise<void>;
11
+ prune(agentId: string, maxAge: number, maxCount: number): Promise<number>;
12
+ getStats(agentId: string): Promise<{
13
+ totalPatterns: number;
14
+ avgSuccessRate: number;
15
+ topPatterns: CausalPattern[];
16
+ }>;
17
+ clear(agentId?: string): void;
18
+ }
19
+ //# sourceMappingURL=causal-pattern-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"causal-pattern-store.d.ts","sourceRoot":"","sources":["../../../src/causal/stores/causal-pattern-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE7E,qBAAa,0BAA2B,YAAW,kBAAkB;IACnE,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,UAAU,CAAkC;IAE9C,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3C,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAC9C,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,aAAa,EAAE,CAAC;IA8BrB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuCzE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QACvC,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,WAAW,EAAE,aAAa,EAAE,CAAC;KAC9B,CAAC;IA8BF,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;CAc9B"}
@@ -0,0 +1,117 @@
1
+ export class InMemoryCausalPatternStore {
2
+ patterns = new Map();
3
+ agentIndex = new Map();
4
+ async save(pattern) {
5
+ this.patterns.set(pattern.id, { ...pattern });
6
+ if (!this.agentIndex.has(pattern.agentId)) {
7
+ this.agentIndex.set(pattern.agentId, new Set());
8
+ }
9
+ this.agentIndex.get(pattern.agentId).add(pattern.id);
10
+ }
11
+ async findRelevant(agentId, context, limit) {
12
+ const patternIds = this.agentIndex.get(agentId);
13
+ if (!patternIds)
14
+ return [];
15
+ const patterns = [];
16
+ for (const id of patternIds) {
17
+ const pattern = this.patterns.get(id);
18
+ if (!pattern)
19
+ continue;
20
+ const triggerMatch = !context.trigger ||
21
+ pattern.pattern.trigger.toLowerCase().includes(context.trigger.toLowerCase());
22
+ const effectMatch = !context.effect ||
23
+ pattern.pattern.effect.toLowerCase().includes(context.effect.toLowerCase());
24
+ if (triggerMatch || effectMatch) {
25
+ patterns.push({ ...pattern });
26
+ }
27
+ }
28
+ patterns.sort((a, b) => {
29
+ const scoreA = a.occurrences * a.successRate * a.avgStrength;
30
+ const scoreB = b.occurrences * b.successRate * b.avgStrength;
31
+ return scoreB - scoreA;
32
+ });
33
+ return patterns.slice(0, limit);
34
+ }
35
+ async markUsed(patternId) {
36
+ const pattern = this.patterns.get(patternId);
37
+ if (pattern) {
38
+ pattern.lastSeen = Date.now();
39
+ pattern.occurrences++;
40
+ }
41
+ }
42
+ async prune(agentId, maxAge, maxCount) {
43
+ const patternIds = this.agentIndex.get(agentId);
44
+ if (!patternIds)
45
+ return 0;
46
+ const now = Date.now();
47
+ const toRemove = [];
48
+ const agentPatterns = [];
49
+ for (const id of patternIds) {
50
+ const pattern = this.patterns.get(id);
51
+ if (pattern) {
52
+ if (now - pattern.lastSeen > maxAge) {
53
+ toRemove.push(id);
54
+ }
55
+ else {
56
+ agentPatterns.push(pattern);
57
+ }
58
+ }
59
+ }
60
+ if (agentPatterns.length > maxCount) {
61
+ agentPatterns.sort((a, b) => {
62
+ const scoreA = a.occurrences * a.successRate;
63
+ const scoreB = b.occurrences * b.successRate;
64
+ return scoreB - scoreA;
65
+ });
66
+ for (let i = maxCount; i < agentPatterns.length; i++) {
67
+ toRemove.push(agentPatterns[i].id);
68
+ }
69
+ }
70
+ for (const id of toRemove) {
71
+ this.patterns.delete(id);
72
+ patternIds.delete(id);
73
+ }
74
+ return toRemove.length;
75
+ }
76
+ async getStats(agentId) {
77
+ const patternIds = this.agentIndex.get(agentId);
78
+ if (!patternIds || patternIds.size === 0) {
79
+ return { totalPatterns: 0, avgSuccessRate: 0, topPatterns: [] };
80
+ }
81
+ const patterns = [];
82
+ let totalSuccessRate = 0;
83
+ for (const id of patternIds) {
84
+ const pattern = this.patterns.get(id);
85
+ if (pattern) {
86
+ patterns.push({ ...pattern });
87
+ totalSuccessRate += pattern.successRate;
88
+ }
89
+ }
90
+ patterns.sort((a, b) => {
91
+ const scoreA = a.occurrences * a.successRate * a.avgStrength;
92
+ const scoreB = b.occurrences * b.successRate * b.avgStrength;
93
+ return scoreB - scoreA;
94
+ });
95
+ return {
96
+ totalPatterns: patterns.length,
97
+ avgSuccessRate: patterns.length > 0 ? totalSuccessRate / patterns.length : 0,
98
+ topPatterns: patterns.slice(0, 5),
99
+ };
100
+ }
101
+ clear(agentId) {
102
+ if (agentId) {
103
+ const patternIds = this.agentIndex.get(agentId);
104
+ if (patternIds) {
105
+ for (const id of patternIds) {
106
+ this.patterns.delete(id);
107
+ }
108
+ this.agentIndex.delete(agentId);
109
+ }
110
+ }
111
+ else {
112
+ this.patterns.clear();
113
+ this.agentIndex.clear();
114
+ }
115
+ }
116
+ }
117
+ //# sourceMappingURL=causal-pattern-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"causal-pattern-store.js","sourceRoot":"","sources":["../../../src/causal/stores/causal-pattern-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { InterventionRecord, InterventionLog } from '@cogitator-ai/types';
2
+ export declare class InMemoryInterventionLog implements InterventionLog {
3
+ private records;
4
+ private agentIndex;
5
+ log(record: InterventionRecord): Promise<void>;
6
+ getHistory(agentId: string, limit: number): Promise<InterventionRecord[]>;
7
+ findSimilar(agentId: string, intervention: Record<string, unknown>): Promise<InterventionRecord[]>;
8
+ getStats(agentId: string): Promise<{
9
+ totalInterventions: number;
10
+ successRate: number;
11
+ avgEffectAccuracy: number;
12
+ }>;
13
+ private calculateEffectAccuracy;
14
+ clear(agentId?: string): void;
15
+ }
16
+ //# sourceMappingURL=intervention-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intervention-log.d.ts","sourceRoot":"","sources":["../../../src/causal/stores/intervention-log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE/E,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,UAAU,CAA+B;IAE3C,GAAG,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9C,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAiBzE,WAAW,CACf,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAwB1B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QACvC,kBAAkB,EAAE,MAAM,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IA8BF,OAAO,CAAC,uBAAuB;IA8B/B,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;CAc9B"}