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,550 @@
1
+ /**
2
+ * Advanced Macro - Intertemporal Models
3
+ *
4
+ * Postgraduate-level templates for dynamic optimization and intertemporal models.
5
+ */
6
+ /**
7
+ * Ramsey-Cass-Koopmans Optimal Growth Model
8
+ * Phase diagram showing saddle path dynamics
9
+ */
10
+ const ramseyCassKoopmans = {
11
+ id: 'ramsey_cass_koopmans',
12
+ name: 'Ramsey-Cass-Koopmans Model',
13
+ description: 'Optimal growth model with phase diagram showing capital and consumption dynamics along the saddle path.',
14
+ category: 'macro',
15
+ level: 'postgraduate',
16
+ tags: ['growth', 'Ramsey', 'optimal', 'phase diagram', 'saddle path', 'intertemporal'],
17
+ parameters: {
18
+ alpha: {
19
+ type: 'number',
20
+ default: 0.3,
21
+ description: 'Capital share in production (α)',
22
+ },
23
+ delta: {
24
+ type: 'number',
25
+ default: 0.05,
26
+ description: 'Depreciation rate (δ)',
27
+ },
28
+ rho: {
29
+ type: 'number',
30
+ default: 0.03,
31
+ description: 'Discount rate (ρ)',
32
+ },
33
+ n: {
34
+ type: 'number',
35
+ default: 0.01,
36
+ description: 'Population growth rate (n)',
37
+ },
38
+ theta: {
39
+ type: 'number',
40
+ default: 2,
41
+ description: 'Intertemporal elasticity of substitution (1/θ)',
42
+ },
43
+ },
44
+ generate: (params) => {
45
+ const alpha = params.alpha ?? 0.3;
46
+ const delta = params.delta ?? 0.05;
47
+ const rho = params.rho ?? 0.03;
48
+ const n = params.n ?? 0.01;
49
+ const theta = params.theta ?? 2;
50
+ return {
51
+ metadata: {
52
+ specVersion: '1.3',
53
+ title: 'Ramsey-Cass-Koopmans Model',
54
+ description: 'Optimal growth with saddle path dynamics',
55
+ },
56
+ parameters: {
57
+ alpha: { value: alpha, label: 'Capital Share (α)', min: 0.2, max: 0.5, step: 0.05 },
58
+ delta: { value: delta, label: 'Depreciation (δ)', min: 0.02, max: 0.1, step: 0.01 },
59
+ rho: { value: rho, label: 'Discount Rate (ρ)', min: 0.01, max: 0.1, step: 0.01 },
60
+ n: { value: n, label: 'Pop. Growth (n)', min: 0, max: 0.05, step: 0.005 },
61
+ theta: { value: theta, label: 'CRRA (θ)', min: 0.5, max: 4, step: 0.5 },
62
+ A: { value: 1, label: 'Technology' },
63
+ // Steady state capital (modified golden rule)
64
+ kStar: {
65
+ expression: '((rho + delta + theta * n) / (alpha * A)) ^ (1 / (alpha - 1))',
66
+ label: 'k* (Steady State)',
67
+ readonly: true,
68
+ },
69
+ // Steady state consumption
70
+ cStar: {
71
+ expression: 'A * kStar ^ alpha - (delta + n) * kStar',
72
+ label: 'c* (Steady State)',
73
+ readonly: true,
74
+ },
75
+ // Current state
76
+ k: { value: 5, label: 'Current k', min: 0.5, max: 15 },
77
+ c: { value: 1, label: 'Current c', min: 0.1, max: 3 },
78
+ },
79
+ charts: [
80
+ {
81
+ id: 'phase',
82
+ title: 'Phase Diagram',
83
+ xAxis: { label: 'Capital per Effective Worker (k)', min: 0, max: 15 },
84
+ yAxis: { label: 'Consumption per Effective Worker (c)', min: 0, max: 3 },
85
+ elements: [
86
+ // k̇ = 0 locus: c = f(k) - (δ+n)k
87
+ {
88
+ id: 'kdot-zero',
89
+ type: 'line',
90
+ equation: 'A * x ^ alpha - (delta + n) * x',
91
+ color: '#2563EB',
92
+ strokeWidth: 3,
93
+ label: 'k̇ = 0',
94
+ curveLabel: { text: 'k̇ = 0', x: 12, position: 'above' },
95
+ },
96
+ // ċ = 0 locus: vertical line at k*
97
+ {
98
+ id: 'cdot-zero',
99
+ type: 'verticalLine',
100
+ x: 'kStar',
101
+ color: '#DC2626',
102
+ strokeWidth: 3,
103
+ label: 'ċ = 0',
104
+ },
105
+ // Steady state point
106
+ {
107
+ id: 'steadyState',
108
+ type: 'point',
109
+ x: 'kStar',
110
+ y: 'cStar',
111
+ color: '#16A34A',
112
+ size: 12,
113
+ label: 'Steady State',
114
+ },
115
+ // Current position
116
+ {
117
+ id: 'current',
118
+ type: 'point',
119
+ x: 'k',
120
+ y: 'c',
121
+ color: '#F59E0B',
122
+ size: 10,
123
+ label: 'Current',
124
+ draggable: true,
125
+ dragConfig: {
126
+ mode: 'expression',
127
+ parameters: { expressions: { k: 'x', c: 'y' } },
128
+ constraints: { bounds: { minX: 0.5, maxX: 14, minY: 0.1, maxY: 2.9 } },
129
+ },
130
+ },
131
+ // Golden rule capital (for reference)
132
+ {
133
+ id: 'goldenRule',
134
+ type: 'verticalLine',
135
+ x: '(alpha * A / (delta + n)) ^ (1 / (1 - alpha))',
136
+ color: '#A855F7',
137
+ lineStyle: 'dotted',
138
+ strokeWidth: 1,
139
+ },
140
+ ],
141
+ annotations: [
142
+ {
143
+ id: 'cdot-label',
144
+ text: 'ċ = 0 (k* = ${kStar:.2f})',
145
+ x: 'kStar + 0.5',
146
+ y: 2.5,
147
+ color: '#DC2626',
148
+ },
149
+ {
150
+ id: 'ss-label',
151
+ text: '(k*, c*) = (${kStar:.2f}, ${cStar:.2f})',
152
+ x: 'kStar + 1',
153
+ y: 'cStar + 0.2',
154
+ color: '#16A34A',
155
+ },
156
+ {
157
+ id: 'dynamics-I',
158
+ text: '↗',
159
+ x: 'kStar * 0.5',
160
+ y: 'cStar * 0.5',
161
+ color: '#6B7280',
162
+ },
163
+ {
164
+ id: 'dynamics-II',
165
+ text: '↖',
166
+ x: 'kStar * 0.5',
167
+ y: 'cStar * 1.5',
168
+ color: '#6B7280',
169
+ },
170
+ {
171
+ id: 'dynamics-III',
172
+ text: '↙',
173
+ x: 'kStar * 1.5',
174
+ y: 'cStar * 1.5',
175
+ color: '#6B7280',
176
+ },
177
+ {
178
+ id: 'dynamics-IV',
179
+ text: '↘',
180
+ x: 'kStar * 1.5',
181
+ y: 'cStar * 0.5',
182
+ color: '#6B7280',
183
+ },
184
+ ],
185
+ },
186
+ ],
187
+ };
188
+ },
189
+ };
190
+ /**
191
+ * Overlapping Generations (OLG) Model
192
+ * Two-period consumption-saving model
193
+ */
194
+ const overlappingGenerations = {
195
+ id: 'overlapping_generations',
196
+ name: 'Overlapping Generations Model',
197
+ description: 'Diamond OLG model showing two-period consumption choice and capital accumulation across generations.',
198
+ category: 'macro',
199
+ level: 'postgraduate',
200
+ tags: ['OLG', 'overlapping generations', 'Diamond', 'savings', 'intergenerational'],
201
+ parameters: {
202
+ beta: {
203
+ type: 'number',
204
+ default: 0.5,
205
+ description: 'Discount factor (β)',
206
+ },
207
+ alpha: {
208
+ type: 'number',
209
+ default: 0.3,
210
+ description: 'Capital share (α)',
211
+ },
212
+ n: {
213
+ type: 'number',
214
+ default: 0.02,
215
+ description: 'Population growth rate',
216
+ },
217
+ },
218
+ generate: (params) => {
219
+ const beta = params.beta ?? 0.5;
220
+ const alpha = params.alpha ?? 0.3;
221
+ const n = params.n ?? 0.02;
222
+ return {
223
+ metadata: {
224
+ specVersion: '1.3',
225
+ title: 'Overlapping Generations Model',
226
+ description: 'Two-period lifecycle model with capital dynamics',
227
+ },
228
+ parameters: {
229
+ beta: { value: beta, label: 'Discount Factor (β)', min: 0.2, max: 0.9, step: 0.1 },
230
+ alpha: { value: alpha, label: 'Capital Share (α)', min: 0.2, max: 0.5, step: 0.05 },
231
+ n: { value: n, label: 'Pop. Growth (n)', min: 0, max: 0.05, step: 0.01 },
232
+ A: { value: 1, label: 'Technology' },
233
+ // Savings rate from log utility
234
+ savingsRate: {
235
+ expression: 'beta / (1 + beta)',
236
+ label: 'Savings Rate (s)',
237
+ readonly: true,
238
+ },
239
+ // Steady state capital (log utility)
240
+ kStar: {
241
+ expression: '((beta / (1 + beta)) * (1 - alpha) * A / (1 + n)) ^ (1 / (1 - alpha))',
242
+ label: 'k* (Steady State)',
243
+ readonly: true,
244
+ },
245
+ // Wage at steady state
246
+ wStar: {
247
+ expression: '(1 - alpha) * A * kStar ^ alpha',
248
+ label: 'w* (Wage)',
249
+ readonly: true,
250
+ },
251
+ // Interest rate at steady state
252
+ rStar: {
253
+ expression: 'alpha * A * kStar ^ (alpha - 1)',
254
+ label: 'r* (Interest)',
255
+ readonly: true,
256
+ },
257
+ // Current capital
258
+ k: { value: 3, label: 'Current k', min: 0.5, max: 10 },
259
+ // Capital next period
260
+ kNext: {
261
+ expression: '(savingsRate * (1 - alpha) * A * k ^ alpha) / (1 + n)',
262
+ label: 'k(t+1)',
263
+ readonly: true,
264
+ },
265
+ },
266
+ charts: [
267
+ {
268
+ id: 'main',
269
+ title: 'OLG Capital Dynamics',
270
+ xAxis: { label: 'Capital this period: kₜ', min: 0, max: 10 },
271
+ yAxis: { label: 'Capital next period: kₜ₊₁', min: 0, max: 10 },
272
+ elements: [
273
+ // 45-degree line
274
+ {
275
+ id: 'fortyfive',
276
+ type: 'line',
277
+ equation: 'x',
278
+ color: '#6B7280',
279
+ lineStyle: 'dashed',
280
+ strokeWidth: 1,
281
+ label: '45° line',
282
+ },
283
+ // Capital dynamics curve: k' = s(1-α)Ak^α / (1+n)
284
+ {
285
+ id: 'dynamics',
286
+ type: 'line',
287
+ equation: '(savingsRate * (1 - alpha) * A * x ^ alpha) / (1 + n)',
288
+ color: '#2563EB',
289
+ strokeWidth: 3,
290
+ label: 'k(t+1) = g(k(t))',
291
+ },
292
+ // Steady state
293
+ {
294
+ id: 'steadyState',
295
+ type: 'point',
296
+ x: 'kStar',
297
+ y: 'kStar',
298
+ color: '#16A34A',
299
+ size: 12,
300
+ label: 'Steady State',
301
+ droplines: { x: 'k*', y: 'k*' },
302
+ },
303
+ // Current position
304
+ {
305
+ id: 'current',
306
+ type: 'point',
307
+ x: 'k',
308
+ y: 'kNext',
309
+ color: '#F59E0B',
310
+ size: 10,
311
+ label: 'Current',
312
+ draggable: true,
313
+ dragConfig: {
314
+ mode: 'expression',
315
+ parameters: { expressions: { k: 'x' } },
316
+ constraints: { bounds: { minX: 0.5, maxX: 9.5 } },
317
+ },
318
+ },
319
+ ],
320
+ annotations: [
321
+ {
322
+ id: 'ss-label',
323
+ text: 'k* = ${kStar:.2f}',
324
+ x: 'kStar + 0.5',
325
+ y: 'kStar + 0.5',
326
+ color: '#16A34A',
327
+ },
328
+ {
329
+ id: 'convergence',
330
+ text: 'Converges to steady state',
331
+ x: 5,
332
+ y: 8,
333
+ color: '#6B7280',
334
+ },
335
+ ],
336
+ },
337
+ {
338
+ id: 'lifecycle',
339
+ title: 'Lifecycle Consumption',
340
+ xAxis: { label: 'Young Consumption (c₁)', min: 0, max: 'wStar * 1.5' },
341
+ yAxis: { label: 'Old Consumption (c₂)', min: 0, max: 'wStar * rStar * 2' },
342
+ elements: [
343
+ // Budget constraint at steady state: c1 + c2/r = w
344
+ {
345
+ id: 'budget',
346
+ type: 'line',
347
+ equation: 'rStar * (wStar - x)',
348
+ color: '#DC2626',
349
+ strokeWidth: 2,
350
+ label: 'Budget Constraint',
351
+ },
352
+ // Optimal consumption point
353
+ {
354
+ id: 'optimal',
355
+ type: 'point',
356
+ x: 'wStar / (1 + beta)',
357
+ y: 'beta * rStar * wStar / (1 + beta)',
358
+ color: '#16A34A',
359
+ size: 10,
360
+ label: 'Optimal',
361
+ },
362
+ ],
363
+ annotations: [
364
+ {
365
+ id: 'c1-label',
366
+ text: 'c₁* = w/(1+β)',
367
+ x: 'wStar / (1 + beta) + 0.1',
368
+ y: 'beta * rStar * wStar / (1 + beta) + 0.2',
369
+ color: '#16A34A',
370
+ },
371
+ ],
372
+ },
373
+ ],
374
+ };
375
+ },
376
+ };
377
+ /**
378
+ * Real Business Cycle (RBC) Model
379
+ * Technology shock impulse responses
380
+ */
381
+ const realBusinessCycle = {
382
+ id: 'real_business_cycle',
383
+ name: 'Real Business Cycle Model',
384
+ description: 'RBC model showing impulse responses to technology shocks with output, consumption, investment, and labor dynamics.',
385
+ category: 'macro',
386
+ level: 'postgraduate',
387
+ tags: ['RBC', 'business cycle', 'impulse response', 'technology shock', 'DSGE'],
388
+ parameters: {
389
+ rhoA: {
390
+ type: 'number',
391
+ default: 0.9,
392
+ description: 'Technology persistence (ρ_A)',
393
+ },
394
+ alpha: {
395
+ type: 'number',
396
+ default: 0.33,
397
+ description: 'Capital share',
398
+ },
399
+ beta: {
400
+ type: 'number',
401
+ default: 0.99,
402
+ description: 'Discount factor',
403
+ },
404
+ delta: {
405
+ type: 'number',
406
+ default: 0.025,
407
+ description: 'Depreciation rate',
408
+ },
409
+ shockSize: {
410
+ type: 'number',
411
+ default: 1,
412
+ description: 'Initial shock size (%)',
413
+ },
414
+ },
415
+ generate: (params) => {
416
+ const rhoA = params.rhoA ?? 0.9;
417
+ const alpha = params.alpha ?? 0.33;
418
+ const shockSize = params.shockSize ?? 1;
419
+ return {
420
+ metadata: {
421
+ specVersion: '1.3',
422
+ title: 'RBC Impulse Responses',
423
+ description: 'Response to 1% technology shock',
424
+ },
425
+ parameters: {
426
+ rhoA: { value: rhoA, label: 'Tech. Persistence (ρ)', min: 0.5, max: 0.99, step: 0.01 },
427
+ alpha: { value: alpha, label: 'Capital Share (α)', min: 0.25, max: 0.4, step: 0.01 },
428
+ shockSize: { value: shockSize, label: 'Shock Size (%)', min: 0.5, max: 3, step: 0.5 },
429
+ t: { value: 0, label: 'Periods', min: 0, max: 40 },
430
+ // Simplified IRF approximations (log-linearized)
431
+ outputResp: {
432
+ expression: 'shockSize * rhoA ^ t * (1 + 0.5 * (1 - rhoA ^ t))',
433
+ label: 'Output (%)',
434
+ readonly: true,
435
+ },
436
+ consumptionResp: {
437
+ expression: 'shockSize * 0.6 * (1 - 0.3 * rhoA ^ t)',
438
+ label: 'Consumption (%)',
439
+ readonly: true,
440
+ },
441
+ investmentResp: {
442
+ expression: 'shockSize * 3 * rhoA ^ t',
443
+ label: 'Investment (%)',
444
+ readonly: true,
445
+ },
446
+ laborResp: {
447
+ expression: 'shockSize * 0.4 * rhoA ^ t',
448
+ label: 'Labor (%)',
449
+ readonly: true,
450
+ },
451
+ techResp: {
452
+ expression: 'shockSize * rhoA ^ t',
453
+ label: 'Technology (%)',
454
+ readonly: true,
455
+ },
456
+ },
457
+ charts: [
458
+ {
459
+ id: 'irf',
460
+ title: 'Impulse Response Functions',
461
+ xAxis: { label: 'Periods after Shock', min: 0, max: 40 },
462
+ yAxis: { label: 'Percent Deviation from Steady State', min: -0.5, max: 'shockSize * 4' },
463
+ elements: [
464
+ // Zero line
465
+ {
466
+ id: 'zero',
467
+ type: 'horizontalLine',
468
+ y: 0,
469
+ color: '#6B7280',
470
+ lineStyle: 'dashed',
471
+ strokeWidth: 1,
472
+ },
473
+ // Technology
474
+ {
475
+ id: 'tech',
476
+ type: 'line',
477
+ equation: 'shockSize * rhoA ^ x',
478
+ color: '#F59E0B',
479
+ strokeWidth: 2,
480
+ label: 'Technology',
481
+ curveLabel: { text: 'A', x: 35, position: 'above' },
482
+ },
483
+ // Output
484
+ {
485
+ id: 'output',
486
+ type: 'line',
487
+ equation: 'shockSize * rhoA ^ x * (1 + 0.5 * (1 - rhoA ^ x))',
488
+ color: '#2563EB',
489
+ strokeWidth: 3,
490
+ label: 'Output',
491
+ curveLabel: { text: 'Y', x: 35, position: 'above' },
492
+ },
493
+ // Consumption
494
+ {
495
+ id: 'consumption',
496
+ type: 'line',
497
+ equation: 'shockSize * 0.6 * (1 - 0.3 * rhoA ^ x)',
498
+ color: '#16A34A',
499
+ strokeWidth: 2,
500
+ label: 'Consumption',
501
+ curveLabel: { text: 'C', x: 35, position: 'above' },
502
+ },
503
+ // Investment
504
+ {
505
+ id: 'investment',
506
+ type: 'line',
507
+ equation: 'shockSize * 3 * rhoA ^ x',
508
+ color: '#DC2626',
509
+ strokeWidth: 2,
510
+ label: 'Investment',
511
+ curveLabel: { text: 'I', x: 35, position: 'above' },
512
+ },
513
+ // Labor
514
+ {
515
+ id: 'labor',
516
+ type: 'line',
517
+ equation: 'shockSize * 0.4 * rhoA ^ x',
518
+ color: '#A855F7',
519
+ strokeWidth: 2,
520
+ label: 'Labor',
521
+ curveLabel: { text: 'L', x: 35, position: 'above' },
522
+ },
523
+ ],
524
+ annotations: [
525
+ {
526
+ id: 'shock-label',
527
+ text: '${shockSize}% TFP Shock at t=0',
528
+ x: 5,
529
+ y: 'shockSize * 3.5',
530
+ color: '#F59E0B',
531
+ },
532
+ {
533
+ id: 'persistence-label',
534
+ text: 'ρ = ${rhoA} (half-life ≈ ${ln(0.5) / ln(rhoA):.1f} periods)',
535
+ x: 20,
536
+ y: 'shockSize * 3.5',
537
+ color: '#6B7280',
538
+ },
539
+ ],
540
+ },
541
+ ],
542
+ };
543
+ },
544
+ };
545
+ export const intertemporalMacroTemplates = [
546
+ ramseyCassKoopmans,
547
+ overlappingGenerations,
548
+ realBusinessCycle,
549
+ ];
550
+ //# sourceMappingURL=intertemporalMacro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intertemporalMacro.js","sourceRoot":"","sources":["../../src/templates/intertemporalMacro.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * IS-LM Model Templates
3
+ *
4
+ * Templates for IS-LM macroeconomic analysis, policy effects, and extensions.
5
+ */
6
+ import type { ModelTemplate } from '../types/index.js';
7
+ export declare const isLmTemplates: ModelTemplate[];
8
+ //# sourceMappingURL=isLM.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isLM.d.ts","sourceRoot":"","sources":["../../src/templates/isLM.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAgvBvD,eAAO,MAAM,aAAa,EAAE,aAAa,EAMxC,CAAC"}