equilibria-mcp-server 1.0.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 (164) hide show
  1. package/CHANGELOG.md +142 -0
  2. package/LICENSE +21 -0
  3. package/README.md +240 -0
  4. package/dist/builders/YAMLBuilder.d.ts +77 -0
  5. package/dist/builders/YAMLBuilder.d.ts.map +1 -0
  6. package/dist/builders/YAMLBuilder.js +251 -0
  7. package/dist/builders/YAMLBuilder.js.map +1 -0
  8. package/dist/economics/constants.d.ts +39 -0
  9. package/dist/economics/constants.d.ts.map +1 -0
  10. package/dist/economics/constants.js +46 -0
  11. package/dist/economics/constants.js.map +1 -0
  12. package/dist/economics/formulas.d.ts +19 -0
  13. package/dist/economics/formulas.d.ts.map +1 -0
  14. package/dist/economics/formulas.js +260 -0
  15. package/dist/economics/formulas.js.map +1 -0
  16. package/dist/economics/index.d.ts +9 -0
  17. package/dist/economics/index.d.ts.map +1 -0
  18. package/dist/economics/index.js +9 -0
  19. package/dist/economics/index.js.map +1 -0
  20. package/dist/economics/validators.d.ts +18 -0
  21. package/dist/economics/validators.d.ts.map +1 -0
  22. package/dist/economics/validators.js +111 -0
  23. package/dist/economics/validators.js.map +1 -0
  24. package/dist/errors/index.d.ts +172 -0
  25. package/dist/errors/index.d.ts.map +1 -0
  26. package/dist/errors/index.js +313 -0
  27. package/dist/errors/index.js.map +1 -0
  28. package/dist/formatters/index.d.ts +8 -0
  29. package/dist/formatters/index.d.ts.map +1 -0
  30. package/dist/formatters/index.js +8 -0
  31. package/dist/formatters/index.js.map +1 -0
  32. package/dist/formatters/redux.d.ts +15 -0
  33. package/dist/formatters/redux.d.ts.map +1 -0
  34. package/dist/formatters/redux.js +35 -0
  35. package/dist/formatters/redux.js.map +1 -0
  36. package/dist/formatters/yaml.d.ts +18 -0
  37. package/dist/formatters/yaml.d.ts.map +1 -0
  38. package/dist/formatters/yaml.js +40 -0
  39. package/dist/formatters/yaml.js.map +1 -0
  40. package/dist/index.d.ts +11 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.js +19 -0
  43. package/dist/index.js.map +1 -0
  44. package/dist/server.d.ts +14 -0
  45. package/dist/server.d.ts.map +1 -0
  46. package/dist/server.js +86 -0
  47. package/dist/server.js.map +1 -0
  48. package/dist/templates/advancedMicro.d.ts +8 -0
  49. package/dist/templates/advancedMicro.d.ts.map +1 -0
  50. package/dist/templates/advancedMicro.js +834 -0
  51. package/dist/templates/advancedMicro.js.map +1 -0
  52. package/dist/templates/consumer.d.ts +12 -0
  53. package/dist/templates/consumer.d.ts.map +1 -0
  54. package/dist/templates/consumer.js +1978 -0
  55. package/dist/templates/consumer.js.map +1 -0
  56. package/dist/templates/elasticity.d.ts +8 -0
  57. package/dist/templates/elasticity.d.ts.map +1 -0
  58. package/dist/templates/elasticity.js +500 -0
  59. package/dist/templates/elasticity.js.map +1 -0
  60. package/dist/templates/externalities.d.ts +11 -0
  61. package/dist/templates/externalities.d.ts.map +1 -0
  62. package/dist/templates/externalities.js +997 -0
  63. package/dist/templates/externalities.js.map +1 -0
  64. package/dist/templates/financeBehavioral.d.ts +8 -0
  65. package/dist/templates/financeBehavioral.d.ts.map +1 -0
  66. package/dist/templates/financeBehavioral.js +860 -0
  67. package/dist/templates/financeBehavioral.js.map +1 -0
  68. package/dist/templates/growth.d.ts +8 -0
  69. package/dist/templates/growth.d.ts.map +1 -0
  70. package/dist/templates/growth.js +740 -0
  71. package/dist/templates/growth.js.map +1 -0
  72. package/dist/templates/index.d.ts +31 -0
  73. package/dist/templates/index.d.ts.map +1 -0
  74. package/dist/templates/index.js +91 -0
  75. package/dist/templates/index.js.map +1 -0
  76. package/dist/templates/inequality.d.ts +8 -0
  77. package/dist/templates/inequality.d.ts.map +1 -0
  78. package/dist/templates/inequality.js +562 -0
  79. package/dist/templates/inequality.js.map +1 -0
  80. package/dist/templates/intertemporalMacro.d.ts +8 -0
  81. package/dist/templates/intertemporalMacro.d.ts.map +1 -0
  82. package/dist/templates/intertemporalMacro.js +550 -0
  83. package/dist/templates/intertemporalMacro.js.map +1 -0
  84. package/dist/templates/isLM.d.ts +8 -0
  85. package/dist/templates/isLM.d.ts.map +1 -0
  86. package/dist/templates/isLM.js +747 -0
  87. package/dist/templates/isLM.js.map +1 -0
  88. package/dist/templates/macro.d.ts +8 -0
  89. package/dist/templates/macro.d.ts.map +1 -0
  90. package/dist/templates/macro.js +600 -0
  91. package/dist/templates/macro.js.map +1 -0
  92. package/dist/templates/marketStructures.d.ts +11 -0
  93. package/dist/templates/marketStructures.d.ts.map +1 -0
  94. package/dist/templates/marketStructures.js +1135 -0
  95. package/dist/templates/marketStructures.js.map +1 -0
  96. package/dist/templates/newKeynesian.d.ts +8 -0
  97. package/dist/templates/newKeynesian.d.ts.map +1 -0
  98. package/dist/templates/newKeynesian.js +633 -0
  99. package/dist/templates/newKeynesian.js.map +1 -0
  100. package/dist/templates/oligopoly.d.ts +11 -0
  101. package/dist/templates/oligopoly.d.ts.map +1 -0
  102. package/dist/templates/oligopoly.js +1113 -0
  103. package/dist/templates/oligopoly.js.map +1 -0
  104. package/dist/templates/ppf.d.ts +8 -0
  105. package/dist/templates/ppf.d.ts.map +1 -0
  106. package/dist/templates/ppf.js +439 -0
  107. package/dist/templates/ppf.js.map +1 -0
  108. package/dist/templates/producer.d.ts +11 -0
  109. package/dist/templates/producer.d.ts.map +1 -0
  110. package/dist/templates/producer.js +979 -0
  111. package/dist/templates/producer.js.map +1 -0
  112. package/dist/templates/production.d.ts +8 -0
  113. package/dist/templates/production.d.ts.map +1 -0
  114. package/dist/templates/production.js +574 -0
  115. package/dist/templates/production.js.map +1 -0
  116. package/dist/templates/supplyDemand.d.ts +8 -0
  117. package/dist/templates/supplyDemand.d.ts.map +1 -0
  118. package/dist/templates/supplyDemand.js +1282 -0
  119. package/dist/templates/supplyDemand.js.map +1 -0
  120. package/dist/templates/tradeGrowth.d.ts +8 -0
  121. package/dist/templates/tradeGrowth.d.ts.map +1 -0
  122. package/dist/templates/tradeGrowth.js +637 -0
  123. package/dist/templates/tradeGrowth.js.map +1 -0
  124. package/dist/tools/index.d.ts +25 -0
  125. package/dist/tools/index.d.ts.map +1 -0
  126. package/dist/tools/index.js +54 -0
  127. package/dist/tools/index.js.map +1 -0
  128. package/dist/tools/models.d.ts +8 -0
  129. package/dist/tools/models.d.ts.map +1 -0
  130. package/dist/tools/models.js +828 -0
  131. package/dist/tools/models.js.map +1 -0
  132. package/dist/tools/output.d.ts +8 -0
  133. package/dist/tools/output.d.ts.map +1 -0
  134. package/dist/tools/output.js +236 -0
  135. package/dist/tools/output.js.map +1 -0
  136. package/dist/tools/templates.d.ts +8 -0
  137. package/dist/tools/templates.d.ts.map +1 -0
  138. package/dist/tools/templates.js +247 -0
  139. package/dist/tools/templates.js.map +1 -0
  140. package/dist/tools/validation.d.ts +8 -0
  141. package/dist/tools/validation.d.ts.map +1 -0
  142. package/dist/tools/validation.js +181 -0
  143. package/dist/tools/validation.js.map +1 -0
  144. package/dist/types/index.d.ts +187 -0
  145. package/dist/types/index.d.ts.map +1 -0
  146. package/dist/types/index.js +7 -0
  147. package/dist/types/index.js.map +1 -0
  148. package/dist/utils/cache.d.ts +99 -0
  149. package/dist/utils/cache.d.ts.map +1 -0
  150. package/dist/utils/cache.js +192 -0
  151. package/dist/utils/cache.js.map +1 -0
  152. package/dist/utils/index.d.ts +8 -0
  153. package/dist/utils/index.d.ts.map +1 -0
  154. package/dist/utils/index.js +8 -0
  155. package/dist/utils/index.js.map +1 -0
  156. package/dist/utils/logger.d.ts +128 -0
  157. package/dist/utils/logger.d.ts.map +1 -0
  158. package/dist/utils/logger.js +251 -0
  159. package/dist/utils/logger.js.map +1 -0
  160. package/dist/validation/index.d.ts +42 -0
  161. package/dist/validation/index.d.ts.map +1 -0
  162. package/dist/validation/index.js +282 -0
  163. package/dist/validation/index.js.map +1 -0
  164. package/package.json +73 -0
@@ -0,0 +1,633 @@
1
+ /**
2
+ * DSGE & New Keynesian Model Templates
3
+ *
4
+ * Postgraduate-level templates for modern macroeconomic models.
5
+ */
6
+ /**
7
+ * New Keynesian IS Curve (Dynamic IS)
8
+ * Forward-looking consumption Euler equation
9
+ */
10
+ const newKeynesianIS = {
11
+ id: 'new_keynesian_is',
12
+ name: 'New Keynesian IS Curve',
13
+ description: 'Dynamic IS curve derived from the consumption Euler equation showing output gap and real interest rate relationship.',
14
+ category: 'macro',
15
+ level: 'postgraduate',
16
+ tags: ['New Keynesian', 'IS curve', 'DSGE', 'output gap', 'Euler equation'],
17
+ parameters: {
18
+ sigma: {
19
+ type: 'number',
20
+ default: 1,
21
+ description: 'Intertemporal elasticity of substitution (1/σ)',
22
+ },
23
+ rStar: {
24
+ type: 'number',
25
+ default: 2,
26
+ description: 'Natural rate of interest (%)',
27
+ },
28
+ expectedOutput: {
29
+ type: 'number',
30
+ default: 0,
31
+ description: 'Expected future output gap (%)',
32
+ },
33
+ },
34
+ generate: (params) => {
35
+ const sigma = params.sigma ?? 1;
36
+ const rStar = params.rStar ?? 2;
37
+ const Ey = params.expectedOutput ?? 0;
38
+ return {
39
+ metadata: {
40
+ specVersion: '1.3',
41
+ title: 'New Keynesian IS Curve',
42
+ description: 'Output gap as function of real interest rate',
43
+ },
44
+ parameters: {
45
+ sigma: { value: sigma, label: 'IES (1/σ)', min: 0.5, max: 3, step: 0.25 },
46
+ rStar: { value: rStar, label: 'Natural Rate r* (%)', min: 0, max: 5, step: 0.5 },
47
+ Ey: { value: Ey, label: 'Expected Output Gap (%)', min: -3, max: 3, step: 0.5 },
48
+ g: { value: 0, label: 'Government Shock' },
49
+ // Current interest rate
50
+ r: { value: rStar, label: 'Real Rate r (%)', min: -2, max: 8 },
51
+ // Output gap from IS: y = Ey - (1/σ)(r - r*)
52
+ outputGap: {
53
+ expression: 'Ey - (1/sigma) * (r - rStar) + g',
54
+ label: 'Output Gap (%)',
55
+ readonly: true,
56
+ },
57
+ },
58
+ charts: [
59
+ {
60
+ id: 'main',
61
+ title: 'Dynamic IS Curve',
62
+ xAxis: { label: 'Output Gap (ỹ)', min: -5, max: 5 },
63
+ yAxis: { label: 'Real Interest Rate (r)', min: -2, max: 8 },
64
+ elements: [
65
+ // IS curve: r = r* + σ(Ey - y)
66
+ {
67
+ id: 'is',
68
+ type: 'line',
69
+ equation: 'rStar + sigma * (Ey - x)',
70
+ color: '#2563EB',
71
+ strokeWidth: 3,
72
+ label: 'IS',
73
+ curveLabel: { text: 'IS', x: 4, position: 'below' },
74
+ },
75
+ // Natural rate horizontal line
76
+ {
77
+ id: 'natural-rate',
78
+ type: 'horizontalLine',
79
+ y: 'rStar',
80
+ color: '#16A34A',
81
+ lineStyle: 'dashed',
82
+ strokeWidth: 1,
83
+ },
84
+ // Zero output gap line
85
+ {
86
+ id: 'zero-gap',
87
+ type: 'verticalLine',
88
+ x: 0,
89
+ color: '#6B7280',
90
+ lineStyle: 'dashed',
91
+ strokeWidth: 1,
92
+ },
93
+ // Natural rate equilibrium
94
+ {
95
+ id: 'natural-eq',
96
+ type: 'point',
97
+ x: 'Ey',
98
+ y: 'rStar',
99
+ color: '#16A34A',
100
+ size: 8,
101
+ label: 'Natural',
102
+ },
103
+ // Current position
104
+ {
105
+ id: 'current',
106
+ type: 'point',
107
+ x: 'outputGap',
108
+ y: 'r',
109
+ color: '#DC2626',
110
+ size: 10,
111
+ label: 'Current',
112
+ droplines: { x: true, y: true },
113
+ draggable: true,
114
+ dragConfig: {
115
+ mode: 'expression',
116
+ parameters: { expressions: { r: 'y' } },
117
+ constraints: { bounds: { minY: -1, maxY: 7 } },
118
+ },
119
+ },
120
+ ],
121
+ annotations: [
122
+ {
123
+ id: 'is-equation',
124
+ text: 'ỹ = Eỹ - (1/σ)(r - r*)',
125
+ x: -4,
126
+ y: 7,
127
+ color: '#2563EB',
128
+ },
129
+ {
130
+ id: 'natural-label',
131
+ text: 'r* = ${rStar}%',
132
+ x: -4.5,
133
+ y: 'rStar + 0.5',
134
+ color: '#16A34A',
135
+ },
136
+ {
137
+ id: 'monetary-note',
138
+ text: 'r > r* → ỹ < 0 (recession)',
139
+ x: 2,
140
+ y: 'rStar + 2',
141
+ color: '#6B7280',
142
+ },
143
+ ],
144
+ },
145
+ ],
146
+ };
147
+ },
148
+ };
149
+ /**
150
+ * New Keynesian Phillips Curve (NKPC)
151
+ * Forward-looking inflation dynamics
152
+ */
153
+ const newKeynesianPhillips = {
154
+ id: 'new_keynesian_phillips',
155
+ name: 'New Keynesian Phillips Curve',
156
+ description: 'Forward-looking Phillips curve with inflation expectations and real marginal cost (output gap).',
157
+ category: 'macro',
158
+ level: 'postgraduate',
159
+ tags: ['New Keynesian', 'Phillips curve', 'NKPC', 'inflation', 'Calvo pricing'],
160
+ parameters: {
161
+ beta: {
162
+ type: 'number',
163
+ default: 0.99,
164
+ description: 'Discount factor (β)',
165
+ },
166
+ kappa: {
167
+ type: 'number',
168
+ default: 0.3,
169
+ description: 'Slope of NKPC (κ)',
170
+ },
171
+ expectedInflation: {
172
+ type: 'number',
173
+ default: 2,
174
+ description: 'Expected future inflation (%)',
175
+ },
176
+ },
177
+ generate: (params) => {
178
+ const beta = params.beta ?? 0.99;
179
+ const kappa = params.kappa ?? 0.3;
180
+ const Epi = params.expectedInflation ?? 2;
181
+ return {
182
+ metadata: {
183
+ specVersion: '1.3',
184
+ title: 'New Keynesian Phillips Curve',
185
+ description: 'Inflation as function of expected inflation and output gap',
186
+ },
187
+ parameters: {
188
+ beta: { value: beta, label: 'Discount (β)', min: 0.9, max: 0.999, step: 0.01 },
189
+ kappa: { value: kappa, label: 'Slope (κ)', min: 0.1, max: 0.5, step: 0.05 },
190
+ Epi: { value: Epi, label: 'Eπ_{t+1} (%)', min: 0, max: 6, step: 0.5 },
191
+ costPush: { value: 0, label: 'Cost-Push Shock (u)' },
192
+ // Output gap
193
+ y: { value: 0, label: 'Output Gap (%)', min: -5, max: 5 },
194
+ // Inflation from NKPC: π = βEπ + κy + u
195
+ inflation: {
196
+ expression: 'beta * Epi + kappa * y + costPush',
197
+ label: 'Inflation (%)',
198
+ readonly: true,
199
+ },
200
+ },
201
+ charts: [
202
+ {
203
+ id: 'main',
204
+ title: 'New Keynesian Phillips Curve',
205
+ xAxis: { label: 'Output Gap (ỹ)', min: -5, max: 5 },
206
+ yAxis: { label: 'Inflation (π)', min: 0, max: 8 },
207
+ elements: [
208
+ // NKPC: π = βEπ + κy
209
+ {
210
+ id: 'nkpc',
211
+ type: 'line',
212
+ equation: 'beta * Epi + kappa * x + costPush',
213
+ color: '#DC2626',
214
+ strokeWidth: 3,
215
+ label: 'NKPC',
216
+ curveLabel: { text: 'π = βEπ + κỹ', x: 3, position: 'above' },
217
+ },
218
+ // Inflation target reference
219
+ {
220
+ id: 'target',
221
+ type: 'horizontalLine',
222
+ y: 2,
223
+ color: '#16A34A',
224
+ lineStyle: 'dotted',
225
+ strokeWidth: 1,
226
+ },
227
+ // Zero gap line
228
+ {
229
+ id: 'zero-gap',
230
+ type: 'verticalLine',
231
+ x: 0,
232
+ color: '#6B7280',
233
+ lineStyle: 'dashed',
234
+ strokeWidth: 1,
235
+ },
236
+ // Current position
237
+ {
238
+ id: 'current',
239
+ type: 'point',
240
+ x: 'y',
241
+ y: 'inflation',
242
+ color: '#2563EB',
243
+ size: 10,
244
+ label: 'Current',
245
+ droplines: { x: true, y: true },
246
+ draggable: true,
247
+ dragConfig: {
248
+ mode: 'expression',
249
+ parameters: { expressions: { y: 'x' } },
250
+ constraints: { bounds: { minX: -4.5, maxX: 4.5 } },
251
+ },
252
+ },
253
+ ],
254
+ annotations: [
255
+ {
256
+ id: 'expectations-label',
257
+ text: 'Eπ = ${Epi}%',
258
+ x: -4,
259
+ y: 'beta * Epi + 0.5',
260
+ color: '#F59E0B',
261
+ },
262
+ {
263
+ id: 'target-label',
264
+ text: 'Target = 2%',
265
+ x: 3,
266
+ y: 2.4,
267
+ color: '#16A34A',
268
+ },
269
+ {
270
+ id: 'slope-note',
271
+ text: 'κ = ${kappa} (Calvo parameter)',
272
+ x: -4,
273
+ y: 7,
274
+ color: '#6B7280',
275
+ },
276
+ ],
277
+ },
278
+ ],
279
+ };
280
+ },
281
+ };
282
+ /**
283
+ * Taylor Rule
284
+ * Monetary policy reaction function
285
+ */
286
+ const taylorRule = {
287
+ id: 'taylor_rule',
288
+ name: 'Taylor Rule',
289
+ description: 'Central bank reaction function showing interest rate response to inflation and output deviations.',
290
+ category: 'macro',
291
+ level: 'postgraduate',
292
+ tags: ['Taylor rule', 'monetary policy', 'interest rate', 'central bank', 'reaction function'],
293
+ parameters: {
294
+ rStar: {
295
+ type: 'number',
296
+ default: 2,
297
+ description: 'Natural rate of interest (%)',
298
+ },
299
+ piStar: {
300
+ type: 'number',
301
+ default: 2,
302
+ description: 'Inflation target (%)',
303
+ },
304
+ phiPi: {
305
+ type: 'number',
306
+ default: 1.5,
307
+ description: 'Inflation coefficient (φ_π)',
308
+ },
309
+ phiY: {
310
+ type: 'number',
311
+ default: 0.5,
312
+ description: 'Output gap coefficient (φ_y)',
313
+ },
314
+ },
315
+ generate: (params) => {
316
+ const rStar = params.rStar ?? 2;
317
+ const piStar = params.piStar ?? 2;
318
+ const phiPi = params.phiPi ?? 1.5;
319
+ const phiY = params.phiY ?? 0.5;
320
+ return {
321
+ metadata: {
322
+ specVersion: '1.3',
323
+ title: 'Taylor Rule',
324
+ description: 'Monetary policy reaction function',
325
+ },
326
+ parameters: {
327
+ rStar: { value: rStar, label: 'r* (%)', min: 0, max: 4, step: 0.5 },
328
+ piStar: { value: piStar, label: 'π* (%)', min: 0, max: 4, step: 0.5 },
329
+ phiPi: { value: phiPi, label: 'φ_π', min: 1, max: 3, step: 0.1 },
330
+ phiY: { value: phiY, label: 'φ_y', min: 0, max: 1, step: 0.1 },
331
+ // Current state
332
+ pi: { value: 2, label: 'Current π (%)', min: 0, max: 8 },
333
+ y: { value: 0, label: 'Output Gap (%)', min: -4, max: 4 },
334
+ // Taylor rule: i = r* + π + φ_π(π - π*) + φ_y(y)
335
+ // Simplified: i = r* + π* + φ_π(π - π*) + φ_y(y)
336
+ policyRate: {
337
+ expression: 'rStar + piStar + phiPi * (pi - piStar) + phiY * y',
338
+ label: 'Policy Rate i (%)',
339
+ readonly: true,
340
+ },
341
+ realRate: {
342
+ expression: 'policyRate - pi',
343
+ label: 'Real Rate r (%)',
344
+ readonly: true,
345
+ },
346
+ // Neutral rate
347
+ neutralRate: {
348
+ expression: 'rStar + piStar',
349
+ label: 'Neutral Rate (%)',
350
+ readonly: true,
351
+ },
352
+ },
353
+ charts: [
354
+ {
355
+ id: 'inflation',
356
+ title: 'Taylor Rule: Inflation Response',
357
+ xAxis: { label: 'Inflation (π)', min: 0, max: 8 },
358
+ yAxis: { label: 'Nominal Interest Rate (i)', min: 0, max: 14 },
359
+ elements: [
360
+ // Taylor rule as function of inflation (at y=0)
361
+ {
362
+ id: 'taylor-inflation',
363
+ type: 'line',
364
+ equation: 'rStar + piStar + phiPi * (x - piStar) + phiY * y',
365
+ color: '#2563EB',
366
+ strokeWidth: 3,
367
+ label: 'Taylor Rule',
368
+ },
369
+ // 1-to-1 line (passive policy)
370
+ {
371
+ id: 'passive',
372
+ type: 'line',
373
+ equation: 'rStar + x',
374
+ color: '#6B7280',
375
+ lineStyle: 'dashed',
376
+ strokeWidth: 1,
377
+ label: 'Passive (φ_π = 1)',
378
+ },
379
+ // Inflation target
380
+ {
381
+ id: 'target',
382
+ type: 'verticalLine',
383
+ x: 'piStar',
384
+ color: '#16A34A',
385
+ lineStyle: 'dotted',
386
+ strokeWidth: 1,
387
+ },
388
+ // Current position
389
+ {
390
+ id: 'current',
391
+ type: 'point',
392
+ x: 'pi',
393
+ y: 'policyRate',
394
+ color: '#DC2626',
395
+ size: 10,
396
+ label: 'Current',
397
+ droplines: { x: true, y: true },
398
+ draggable: true,
399
+ dragConfig: {
400
+ mode: 'expression',
401
+ parameters: { expressions: { pi: 'x' } },
402
+ constraints: { bounds: { minX: 0.5, maxX: 7.5 } },
403
+ },
404
+ },
405
+ ],
406
+ annotations: [
407
+ {
408
+ id: 'taylor-eq',
409
+ text: 'i = r* + π* + φ_π(π-π*) + φ_y·ỹ',
410
+ x: 0.5,
411
+ y: 12,
412
+ color: '#2563EB',
413
+ },
414
+ {
415
+ id: 'principle-label',
416
+ text: 'φ_π > 1 (Taylor Principle)',
417
+ x: 5,
418
+ y: 4,
419
+ color: '#F59E0B',
420
+ },
421
+ {
422
+ id: 'target-label',
423
+ text: 'π* = ${piStar}%',
424
+ x: 'piStar + 0.3',
425
+ y: 1,
426
+ color: '#16A34A',
427
+ },
428
+ ],
429
+ },
430
+ {
431
+ id: 'output',
432
+ title: 'Taylor Rule: Output Gap Response',
433
+ xAxis: { label: 'Output Gap (ỹ)', min: -4, max: 4 },
434
+ yAxis: { label: 'Nominal Interest Rate (i)', min: 0, max: 10 },
435
+ elements: [
436
+ // Taylor rule as function of output (at current π)
437
+ {
438
+ id: 'taylor-output',
439
+ type: 'line',
440
+ equation: 'rStar + piStar + phiPi * (pi - piStar) + phiY * x',
441
+ color: '#DC2626',
442
+ strokeWidth: 3,
443
+ label: 'Taylor Rule',
444
+ },
445
+ // Zero gap line
446
+ {
447
+ id: 'zero-gap',
448
+ type: 'verticalLine',
449
+ x: 0,
450
+ color: '#6B7280',
451
+ lineStyle: 'dashed',
452
+ strokeWidth: 1,
453
+ },
454
+ // Current position
455
+ {
456
+ id: 'current',
457
+ type: 'point',
458
+ x: 'y',
459
+ y: 'policyRate',
460
+ color: '#2563EB',
461
+ size: 10,
462
+ label: 'Current',
463
+ droplines: { x: true, y: true },
464
+ },
465
+ ],
466
+ annotations: [
467
+ {
468
+ id: 'output-response',
469
+ text: 'φ_y = ${phiY}',
470
+ x: 2,
471
+ y: 8,
472
+ color: '#DC2626',
473
+ },
474
+ ],
475
+ },
476
+ ],
477
+ };
478
+ },
479
+ };
480
+ /**
481
+ * Three-Equation NK Model
482
+ * Combined IS, NKPC, and Taylor Rule
483
+ */
484
+ const threeEquationNK = {
485
+ id: 'three_equation_nk',
486
+ name: 'Three-Equation NK Model',
487
+ description: 'Complete New Keynesian model combining IS curve, Phillips curve, and Taylor rule for equilibrium determination.',
488
+ category: 'macro',
489
+ level: 'postgraduate',
490
+ tags: ['New Keynesian', 'DSGE', 'IS-PC-MR', 'three equation', 'macro model'],
491
+ parameters: {
492
+ demandShock: {
493
+ type: 'number',
494
+ default: 0,
495
+ description: 'Demand shock (%)',
496
+ },
497
+ costPushShock: {
498
+ type: 'number',
499
+ default: 0,
500
+ description: 'Cost-push shock (%)',
501
+ },
502
+ },
503
+ generate: (params) => {
504
+ const demandShock = params.demandShock ?? 0;
505
+ const costPushShock = params.costPushShock ?? 0;
506
+ return {
507
+ metadata: {
508
+ specVersion: '1.3',
509
+ title: 'Three-Equation NK Model',
510
+ description: 'IS-PC-MR framework for macroeconomic analysis',
511
+ },
512
+ parameters: {
513
+ // Structural parameters
514
+ sigma: { value: 1, label: 'σ (IES⁻¹)' },
515
+ kappa: { value: 0.3, label: 'κ (PC slope)' },
516
+ beta: { value: 0.99, label: 'β (discount)' },
517
+ phiPi: { value: 1.5, label: 'φ_π' },
518
+ phiY: { value: 0.5, label: 'φ_y' },
519
+ rStar: { value: 2, label: 'r* (%)' },
520
+ piStar: { value: 2, label: 'π* (%)' },
521
+ // Shocks
522
+ g: { value: demandShock, label: 'Demand Shock (%)', min: -3, max: 3 },
523
+ u: { value: costPushShock, label: 'Cost-Push Shock (%)', min: -2, max: 2 },
524
+ // Equilibrium (simplified, assuming Eπ = π, Ey = y in steady state)
525
+ // From IS: y = -1/σ (r - rStar) + g
526
+ // From PC: π = piStar + kappa*y + u (assuming beta*Eπ ≈ piStar)
527
+ // From TR: r = rStar + phiPi*(π - piStar) + phiY*y
528
+ // Solving...
529
+ yEq: {
530
+ expression: '(g - u * phiPi / (kappa * sigma)) / (1 + phiY/sigma + phiPi * kappa / sigma)',
531
+ label: 'Output Gap y*',
532
+ readonly: true,
533
+ },
534
+ piEq: {
535
+ expression: 'piStar + kappa * yEq + u',
536
+ label: 'Inflation π*',
537
+ readonly: true,
538
+ },
539
+ rEq: {
540
+ expression: 'rStar + phiPi * (piEq - piStar) + phiY * yEq',
541
+ label: 'Real Rate r*',
542
+ readonly: true,
543
+ },
544
+ },
545
+ charts: [
546
+ {
547
+ id: 'main',
548
+ title: 'NK Equilibrium',
549
+ xAxis: { label: 'Output Gap (ỹ)', min: -4, max: 4 },
550
+ yAxis: { label: 'Inflation (π)', min: 0, max: 6 },
551
+ elements: [
552
+ // Phillips Curve (PC)
553
+ {
554
+ id: 'pc',
555
+ type: 'line',
556
+ equation: 'piStar + kappa * x + u',
557
+ color: '#DC2626',
558
+ strokeWidth: 3,
559
+ label: 'PC',
560
+ curveLabel: { text: 'PC', x: 3, position: 'above' },
561
+ },
562
+ // Monetary Rule (MR) - derived from IS + TR
563
+ // From TR: r = rStar + phiPi(π - piStar) + phiY*y
564
+ // Sub into IS: y = -1/σ (r - rStar) + g
565
+ // → y = -1/σ [phiPi(π - piStar) + phiY*y] + g
566
+ // → y(1 + phiY/σ) = -phiPi/σ (π - piStar) + g
567
+ // → π = piStar - σ(1 + phiY/σ)/phiPi * (y - g/(1+phiY/σ))
568
+ {
569
+ id: 'mr',
570
+ type: 'line',
571
+ equation: 'piStar - sigma * (1 + phiY/sigma) / phiPi * (x - g/(1+phiY/sigma))',
572
+ color: '#2563EB',
573
+ strokeWidth: 3,
574
+ label: 'MR',
575
+ curveLabel: { text: 'MR', x: -3, position: 'above' },
576
+ },
577
+ // Target point
578
+ {
579
+ id: 'target',
580
+ type: 'point',
581
+ x: 0,
582
+ y: 'piStar',
583
+ color: '#16A34A',
584
+ size: 8,
585
+ label: 'Target',
586
+ },
587
+ // Equilibrium
588
+ {
589
+ id: 'equilibrium',
590
+ type: 'point',
591
+ x: 'yEq',
592
+ y: 'piEq',
593
+ color: '#7C3AED',
594
+ size: 12,
595
+ label: 'Equilibrium',
596
+ droplines: { x: true, y: true },
597
+ },
598
+ ],
599
+ annotations: [
600
+ {
601
+ id: 'pc-label',
602
+ text: 'π = π* + κỹ + u',
603
+ x: 2,
604
+ y: 5,
605
+ color: '#DC2626',
606
+ },
607
+ {
608
+ id: 'mr-label',
609
+ text: 'MR (IS + Taylor)',
610
+ x: -3,
611
+ y: 1,
612
+ color: '#2563EB',
613
+ },
614
+ {
615
+ id: 'eq-label',
616
+ text: '(ỹ, π) = (${yEq:.2f}, ${piEq:.2f})',
617
+ x: 'yEq + 0.5',
618
+ y: 'piEq + 0.5',
619
+ color: '#7C3AED',
620
+ },
621
+ ],
622
+ },
623
+ ],
624
+ };
625
+ },
626
+ };
627
+ export const newKeynesianTemplates = [
628
+ newKeynesianIS,
629
+ newKeynesianPhillips,
630
+ taylorRule,
631
+ threeEquationNK,
632
+ ];
633
+ //# sourceMappingURL=newKeynesian.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"newKeynesian.js","sourceRoot":"","sources":["../../src/templates/newKeynesian.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Oligopoly Templates
3
+ *
4
+ * Templates for oligopoly models including Cournot, Bertrand, Stackelberg,
5
+ * kinked demand, and monopolistic competition.
6
+ *
7
+ * Phase 3.5: Market Structures - Oligopoly
8
+ */
9
+ import type { ModelTemplate } from '../types/index.js';
10
+ export declare const oligopolyTemplates: ModelTemplate[];
11
+ //# sourceMappingURL=oligopoly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oligopoly.d.ts","sourceRoot":"","sources":["../../src/templates/oligopoly.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AA8lCvD,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAM7C,CAAC"}