@lydt/geogebra-studio 0.0.0-stage → 0.4.0-rc.2

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 (189) hide show
  1. package/.agents/plugins/marketplace.json +21 -0
  2. package/.codex-plugin/plugin.json +21 -0
  3. package/.mcp.json +18 -0
  4. package/LICENSE +339 -0
  5. package/LICENSE-MIT +21 -0
  6. package/README.md +108 -2
  7. package/README.zh-CN.md +89 -0
  8. package/THIRD_PARTY_NOTICES.md +35 -0
  9. package/dist/cli.d.ts +27 -0
  10. package/dist/cli.d.ts.map +1 -0
  11. package/dist/cli.js +234 -0
  12. package/dist/cli.js.map +1 -0
  13. package/dist/export/files.d.ts +4 -0
  14. package/dist/export/files.d.ts.map +1 -0
  15. package/dist/export/files.js +44 -0
  16. package/dist/export/files.js.map +1 -0
  17. package/dist/export/gikz.d.ts +11 -0
  18. package/dist/export/gikz.d.ts.map +1 -0
  19. package/dist/export/gikz.js +28 -0
  20. package/dist/export/gikz.js.map +1 -0
  21. package/dist/export/html.d.ts +14 -0
  22. package/dist/export/html.d.ts.map +1 -0
  23. package/dist/export/html.js +97 -0
  24. package/dist/export/html.js.map +1 -0
  25. package/dist/export/semantic.d.ts +43 -0
  26. package/dist/export/semantic.d.ts.map +1 -0
  27. package/dist/export/semantic.js +212 -0
  28. package/dist/export/semantic.js.map +1 -0
  29. package/dist/export/viewer-themes.d.ts +76 -0
  30. package/dist/export/viewer-themes.d.ts.map +1 -0
  31. package/dist/export/viewer-themes.js +169 -0
  32. package/dist/export/viewer-themes.js.map +1 -0
  33. package/dist/export/workspace.d.ts +4 -0
  34. package/dist/export/workspace.d.ts.map +1 -0
  35. package/dist/export/workspace.js +25 -0
  36. package/dist/export/workspace.js.map +1 -0
  37. package/dist/gikz-browser.js +770 -0
  38. package/dist/index.d.ts +5 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +84 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/server.d.ts +35 -0
  43. package/dist/server.d.ts.map +1 -0
  44. package/dist/server.js +187 -0
  45. package/dist/server.js.map +1 -0
  46. package/dist/studio/artifact.d.ts +37 -0
  47. package/dist/studio/artifact.d.ts.map +1 -0
  48. package/dist/studio/artifact.js +61 -0
  49. package/dist/studio/artifact.js.map +1 -0
  50. package/dist/studio/browser.d.ts +7 -0
  51. package/dist/studio/browser.d.ts.map +1 -0
  52. package/dist/studio/browser.js +67 -0
  53. package/dist/studio/browser.js.map +1 -0
  54. package/dist/studio/install.d.ts +4 -0
  55. package/dist/studio/install.d.ts.map +1 -0
  56. package/dist/studio/install.js +60 -0
  57. package/dist/studio/install.js.map +1 -0
  58. package/dist/tools/apps-api-tools.d.ts +4 -0
  59. package/dist/tools/apps-api-tools.d.ts.map +1 -0
  60. package/dist/tools/apps-api-tools.js +96 -0
  61. package/dist/tools/apps-api-tools.js.map +1 -0
  62. package/dist/tools/educational-templates.d.ts +33 -0
  63. package/dist/tools/educational-templates.d.ts.map +1 -0
  64. package/dist/tools/educational-templates.js +261 -0
  65. package/dist/tools/educational-templates.js.map +1 -0
  66. package/dist/tools/export-tools.d.ts +3 -0
  67. package/dist/tools/export-tools.d.ts.map +1 -0
  68. package/dist/tools/export-tools.js +118 -0
  69. package/dist/tools/export-tools.js.map +1 -0
  70. package/dist/tools/geogebra-tools.d.ts +15 -0
  71. package/dist/tools/geogebra-tools.d.ts.map +1 -0
  72. package/dist/tools/geogebra-tools.js +3442 -0
  73. package/dist/tools/geogebra-tools.js.map +1 -0
  74. package/dist/tools/index.d.ts +43 -0
  75. package/dist/tools/index.d.ts.map +1 -0
  76. package/dist/tools/index.js +183 -0
  77. package/dist/tools/index.js.map +1 -0
  78. package/dist/tools/performance-tools.d.ts +7 -0
  79. package/dist/tools/performance-tools.d.ts.map +1 -0
  80. package/dist/tools/performance-tools.js +312 -0
  81. package/dist/tools/performance-tools.js.map +1 -0
  82. package/dist/tools/templates/algebra-templates.d.ts +7 -0
  83. package/dist/tools/templates/algebra-templates.d.ts.map +1 -0
  84. package/dist/tools/templates/algebra-templates.js +568 -0
  85. package/dist/tools/templates/algebra-templates.js.map +1 -0
  86. package/dist/tools/templates/geometry-templates.d.ts +7 -0
  87. package/dist/tools/templates/geometry-templates.d.ts.map +1 -0
  88. package/dist/tools/templates/geometry-templates.js +492 -0
  89. package/dist/tools/templates/geometry-templates.js.map +1 -0
  90. package/dist/types/geogebra.d.ts +103 -0
  91. package/dist/types/geogebra.d.ts.map +1 -0
  92. package/dist/types/geogebra.js +34 -0
  93. package/dist/types/geogebra.js.map +1 -0
  94. package/dist/types/mcp.d.ts +125 -0
  95. package/dist/types/mcp.d.ts.map +1 -0
  96. package/dist/types/mcp.js +19 -0
  97. package/dist/types/mcp.js.map +1 -0
  98. package/dist/utils/app-info.d.ts +12 -0
  99. package/dist/utils/app-info.d.ts.map +1 -0
  100. package/dist/utils/app-info.js +30 -0
  101. package/dist/utils/app-info.js.map +1 -0
  102. package/dist/utils/errors.d.ts +37 -0
  103. package/dist/utils/errors.d.ts.map +1 -0
  104. package/dist/utils/errors.js +72 -0
  105. package/dist/utils/errors.js.map +1 -0
  106. package/dist/utils/gemini-compatibility.d.ts +39 -0
  107. package/dist/utils/gemini-compatibility.d.ts.map +1 -0
  108. package/dist/utils/gemini-compatibility.js +154 -0
  109. package/dist/utils/gemini-compatibility.js.map +1 -0
  110. package/dist/utils/geogebra-instance.d.ts +252 -0
  111. package/dist/utils/geogebra-instance.d.ts.map +1 -0
  112. package/dist/utils/geogebra-instance.js +1560 -0
  113. package/dist/utils/geogebra-instance.js.map +1 -0
  114. package/dist/utils/geogebra-mock.d.ts +172 -0
  115. package/dist/utils/geogebra-mock.d.ts.map +1 -0
  116. package/dist/utils/geogebra-mock.js +732 -0
  117. package/dist/utils/geogebra-mock.js.map +1 -0
  118. package/dist/utils/logger.d.ts +4 -0
  119. package/dist/utils/logger.d.ts.map +1 -0
  120. package/dist/utils/logger.js +46 -0
  121. package/dist/utils/logger.js.map +1 -0
  122. package/dist/utils/performance/index.d.ts +76 -0
  123. package/dist/utils/performance/index.d.ts.map +1 -0
  124. package/dist/utils/performance/index.js +163 -0
  125. package/dist/utils/performance/index.js.map +1 -0
  126. package/dist/utils/performance/instance-pool.d.ts +78 -0
  127. package/dist/utils/performance/instance-pool.d.ts.map +1 -0
  128. package/dist/utils/performance/instance-pool.js +268 -0
  129. package/dist/utils/performance/instance-pool.js.map +1 -0
  130. package/dist/utils/validation.d.ts +92 -0
  131. package/dist/utils/validation.d.ts.map +1 -0
  132. package/dist/utils/validation.js +557 -0
  133. package/dist/utils/validation.js.map +1 -0
  134. package/dist/widget.html +110 -0
  135. package/docs/APPS-API-BRIDGE.md +28 -0
  136. package/docs/MODERNIZATION.md +15 -0
  137. package/docs/TANGENT-REGRESSION.md +34 -0
  138. package/docs/VALIDATION.md +26 -0
  139. package/docs/VISUAL-STANDARD.md +26 -0
  140. package/docs/images/native-construction.png +0 -0
  141. package/examples/tangent-construction.json +26 -0
  142. package/gikz/LICENSE +339 -0
  143. package/gikz/PROVENANCE.md +8 -0
  144. package/gikz/browser.cjs +2 -0
  145. package/gikz/cli.cjs +195 -0
  146. package/gikz/core.cjs +806 -0
  147. package/mcp.json +20 -0
  148. package/package.json +107 -4
  149. package/plugin.json +35 -0
  150. package/runtime/package.json +4 -0
  151. package/scripts/build-plugin.cjs +15 -0
  152. package/scripts/build-widget.cjs +7 -0
  153. package/skills/geogebra-construct/SKILL.md +40 -0
  154. package/skills/geogebra-setup/SKILL.md +37 -0
  155. package/skills/geometry-export/SKILL.md +31 -0
  156. package/src/cli.ts +212 -0
  157. package/src/export/files.ts +26 -0
  158. package/src/export/gikz.ts +22 -0
  159. package/src/export/html.ts +108 -0
  160. package/src/export/semantic.ts +180 -0
  161. package/src/export/viewer-themes.ts +165 -0
  162. package/src/export/workspace.ts +15 -0
  163. package/src/index.ts +71 -0
  164. package/src/server.ts +168 -0
  165. package/src/studio/artifact.ts +50 -0
  166. package/src/studio/browser.ts +38 -0
  167. package/src/studio/install.ts +43 -0
  168. package/src/tools/apps-api-tools.ts +96 -0
  169. package/src/tools/educational-templates.ts +299 -0
  170. package/src/tools/export-tools.ts +110 -0
  171. package/src/tools/geogebra-tools.ts +3836 -0
  172. package/src/tools/index.ts +192 -0
  173. package/src/tools/performance-tools.ts +322 -0
  174. package/src/tools/templates/algebra-templates.ts +619 -0
  175. package/src/tools/templates/geometry-templates.ts +550 -0
  176. package/src/types/geogebra.ts +140 -0
  177. package/src/types/global.d.ts +31 -0
  178. package/src/types/mcp.ts +141 -0
  179. package/src/utils/app-info.ts +35 -0
  180. package/src/utils/errors.ts +97 -0
  181. package/src/utils/gemini-compatibility.ts +193 -0
  182. package/src/utils/geogebra-instance.ts +1712 -0
  183. package/src/utils/geogebra-mock.ts +867 -0
  184. package/src/utils/logger.ts +60 -0
  185. package/src/utils/performance/index.ts +211 -0
  186. package/src/utils/performance/instance-pool.ts +323 -0
  187. package/src/utils/validation.ts +647 -0
  188. package/tsconfig.json +35 -0
  189. package/widget/main.ts +12 -0
@@ -0,0 +1,568 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.algebraTemplates = void 0;
4
+ const index_1 = require("../index");
5
+ /**
6
+ * Algebra Educational Templates
7
+ * Pre-built algebraic scenarios for common educational use cases
8
+ */
9
+ exports.algebraTemplates = [
10
+ {
11
+ id: 'quadratic_explorer',
12
+ name: 'Quadratic Function Explorer',
13
+ category: 'algebra',
14
+ description: 'Interactive exploration of quadratic functions, including vertex form, factored form, and transformations',
15
+ gradeLevel: '9-12',
16
+ objectives: [
17
+ 'Understand different forms of quadratic functions',
18
+ 'Explore the effects of parameters on graph shape and position',
19
+ 'Connect algebraic and geometric representations'
20
+ ],
21
+ prerequisites: ['Linear functions', 'Basic graphing skills', 'Algebraic manipulation'],
22
+ estimatedTime: 20,
23
+ setup: async () => {
24
+ // Create parameter sliders for quadratic function y = ax² + bx + c
25
+ await index_1.toolRegistry.executeTool('geogebra_create_slider', {
26
+ name: 'a',
27
+ min: -3,
28
+ max: 3,
29
+ value: 1,
30
+ increment: 0.1,
31
+ x: -8,
32
+ y: 6,
33
+ width: 120,
34
+ caption: 'a coefficient'
35
+ });
36
+ await index_1.toolRegistry.executeTool('geogebra_create_slider', {
37
+ name: 'b',
38
+ min: -6,
39
+ max: 6,
40
+ value: 0,
41
+ increment: 0.5,
42
+ x: -8,
43
+ y: 5,
44
+ width: 120,
45
+ caption: 'b coefficient'
46
+ });
47
+ await index_1.toolRegistry.executeTool('geogebra_create_slider', {
48
+ name: 'c',
49
+ min: -5,
50
+ max: 5,
51
+ value: 0,
52
+ increment: 0.5,
53
+ x: -8,
54
+ y: 4,
55
+ width: 120,
56
+ caption: 'c coefficient'
57
+ });
58
+ // Create the quadratic function
59
+ await index_1.toolRegistry.executeTool('geogebra_plot_function', {
60
+ name: 'quadratic',
61
+ expression: 'a*x^2 + b*x + c',
62
+ color: '#FF0000',
63
+ thickness: 3,
64
+ style: 'solid'
65
+ });
66
+ // Calculate and show vertex
67
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
68
+ name: 'vertex',
69
+ x: -0.5, // Will be calculated as -b/(2a) in real implementation
70
+ y: 0, // Will be calculated as f(-b/(2a)) in real implementation
71
+ color: '#00AA00',
72
+ size: 6,
73
+ label: 'Vertex'
74
+ });
75
+ // Show axis of symmetry
76
+ await index_1.toolRegistry.executeTool('geogebra_create_line', {
77
+ name: 'axisOfSymmetry',
78
+ type: 'vertical',
79
+ value: -0.5, // x = -b/(2a)
80
+ color: '#00AA00',
81
+ thickness: 1,
82
+ style: 'dashed'
83
+ });
84
+ // Create x-intercepts (if they exist)
85
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
86
+ name: 'yIntercept',
87
+ x: 0,
88
+ y: 0, // Will be c in real implementation
89
+ color: '#0000FF',
90
+ size: 4,
91
+ label: 'y-intercept'
92
+ });
93
+ // Add function equation display
94
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
95
+ text: '"f(x) = " + a + "x² + " + b + "x + " + c',
96
+ x: -8,
97
+ y: 2,
98
+ fontSize: 16,
99
+ color: '#FF0000',
100
+ fontStyle: 'bold'
101
+ });
102
+ // Add vertex form display
103
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
104
+ text: '"Vertex Form: f(x) = " + a + "(x - " + (-b/(2*a)) + ")² + " + (c - b²/(4*a))',
105
+ x: -8,
106
+ y: 1,
107
+ fontSize: 14,
108
+ color: '#00AA00'
109
+ });
110
+ // Add discriminant information
111
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
112
+ text: '"Discriminant: Δ = " + (b² - 4*a*c)',
113
+ x: -8,
114
+ y: 0,
115
+ fontSize: 14,
116
+ color: '#0000FF'
117
+ });
118
+ // Add interpretation text
119
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
120
+ text: 'If[a > 0, "Opens upward", "Opens downward"]',
121
+ x: 2,
122
+ y: 6,
123
+ fontSize: 12,
124
+ color: '#AA00AA'
125
+ });
126
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
127
+ text: 'If[b² - 4*a*c > 0, "Two real roots", If[b² - 4*a*c = 0, "One real root", "No real roots"]]',
128
+ x: 2,
129
+ y: 5,
130
+ fontSize: 12,
131
+ color: '#AA00AA'
132
+ });
133
+ return {
134
+ construction: 'Interactive quadratic function with adjustable parameters',
135
+ interactivity: 'Adjust sliders a, b, c to see how they affect the parabola',
136
+ concepts: [
137
+ 'Parameter a controls opening direction and width',
138
+ 'Parameter b affects the axis of symmetry location',
139
+ 'Parameter c is the y-intercept',
140
+ 'Vertex form reveals transformations clearly',
141
+ 'Discriminant determines number of x-intercepts'
142
+ ]
143
+ };
144
+ }
145
+ },
146
+ {
147
+ id: 'linear_systems_graphical',
148
+ name: 'Linear Systems: Graphical Solution',
149
+ category: 'algebra',
150
+ description: 'Visual exploration of linear systems of equations and their solutions through graphing',
151
+ gradeLevel: '8-10',
152
+ objectives: [
153
+ 'Understand that solutions are intersection points',
154
+ 'Explore different types of systems (consistent, inconsistent, dependent)',
155
+ 'Connect algebraic and geometric representations of systems'
156
+ ],
157
+ prerequisites: ['Linear equations', 'Graphing lines', 'Slope-intercept form'],
158
+ estimatedTime: 18,
159
+ setup: async () => {
160
+ // Create sliders for first line: y = m1*x + b1
161
+ await index_1.toolRegistry.executeTool('geogebra_create_slider', {
162
+ name: 'm1',
163
+ min: -3,
164
+ max: 3,
165
+ value: 1,
166
+ increment: 0.25,
167
+ x: -8,
168
+ y: 6,
169
+ width: 120,
170
+ caption: 'Slope of Line 1'
171
+ });
172
+ await index_1.toolRegistry.executeTool('geogebra_create_slider', {
173
+ name: 'b1',
174
+ min: -5,
175
+ max: 5,
176
+ value: 2,
177
+ increment: 0.5,
178
+ x: -8,
179
+ y: 5,
180
+ width: 120,
181
+ caption: 'y-intercept of Line 1'
182
+ });
183
+ // Create sliders for second line: y = m2*x + b2
184
+ await index_1.toolRegistry.executeTool('geogebra_create_slider', {
185
+ name: 'm2',
186
+ min: -3,
187
+ max: 3,
188
+ value: -0.5,
189
+ increment: 0.25,
190
+ x: -8,
191
+ y: 4,
192
+ width: 120,
193
+ caption: 'Slope of Line 2'
194
+ });
195
+ await index_1.toolRegistry.executeTool('geogebra_create_slider', {
196
+ name: 'b2',
197
+ min: -5,
198
+ max: 5,
199
+ value: -1,
200
+ increment: 0.5,
201
+ x: -8,
202
+ y: 3,
203
+ width: 120,
204
+ caption: 'y-intercept of Line 2'
205
+ });
206
+ // Create the two lines
207
+ await index_1.toolRegistry.executeTool('geogebra_plot_function', {
208
+ name: 'line1',
209
+ expression: 'm1*x + b1',
210
+ color: '#FF0000',
211
+ thickness: 3,
212
+ style: 'solid'
213
+ });
214
+ await index_1.toolRegistry.executeTool('geogebra_plot_function', {
215
+ name: 'line2',
216
+ expression: 'm2*x + b2',
217
+ color: '#0000FF',
218
+ thickness: 3,
219
+ style: 'solid'
220
+ });
221
+ // Calculate and show intersection point
222
+ // In real implementation, this would be calculated automatically
223
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
224
+ name: 'intersection',
225
+ x: 2, // Will be (b2-b1)/(m1-m2) in real implementation
226
+ y: 4, // Will be m1*x + b1 at intersection in real implementation
227
+ color: '#00AA00',
228
+ size: 8,
229
+ label: 'Solution'
230
+ });
231
+ // Add equation displays
232
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
233
+ text: '"Line 1: y = " + m1 + "x + " + b1',
234
+ x: 3,
235
+ y: 6,
236
+ fontSize: 14,
237
+ color: '#FF0000',
238
+ fontStyle: 'bold'
239
+ });
240
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
241
+ text: '"Line 2: y = " + m2 + "x + " + b2',
242
+ x: 3,
243
+ y: 5,
244
+ fontSize: 14,
245
+ color: '#0000FF',
246
+ fontStyle: 'bold'
247
+ });
248
+ // Add solution display
249
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
250
+ text: 'If[m1 ≠ m2, "Solution: (" + (b2-b1)/(m1-m2) + ", " + (m1*(b2-b1)/(m1-m2) + b1) + ")", If[b1 = b2, "Infinitely many solutions", "No solution"]]',
251
+ x: 3,
252
+ y: 4,
253
+ fontSize: 14,
254
+ color: '#00AA00',
255
+ fontStyle: 'bold'
256
+ });
257
+ // Add system type classification
258
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
259
+ text: 'If[m1 ≠ m2, "System Type: Consistent & Independent", If[b1 = b2, "System Type: Consistent & Dependent", "System Type: Inconsistent"]]',
260
+ x: 3,
261
+ y: 3,
262
+ fontSize: 12,
263
+ color: '#AA00AA'
264
+ });
265
+ // Add slope comparison
266
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
267
+ text: 'If[m1 = m2, "Lines are parallel", "Lines intersect"]',
268
+ x: 3,
269
+ y: 2,
270
+ fontSize: 12,
271
+ color: '#666666'
272
+ });
273
+ return {
274
+ construction: 'Two adjustable linear functions with intersection point',
275
+ interactivity: 'Adjust slopes and y-intercepts to explore different system types',
276
+ systemTypes: [
277
+ 'Consistent & Independent: Different slopes → unique solution',
278
+ 'Consistent & Dependent: Same line → infinitely many solutions',
279
+ 'Inconsistent: Parallel but different → no solution'
280
+ ]
281
+ };
282
+ }
283
+ },
284
+ {
285
+ id: 'exponential_growth_decay',
286
+ name: 'Exponential Functions: Growth and Decay',
287
+ category: 'algebra',
288
+ description: 'Interactive exploration of exponential functions, including growth, decay, and real-world applications',
289
+ gradeLevel: '9-12',
290
+ objectives: [
291
+ 'Understand exponential function behavior',
292
+ 'Distinguish between growth and decay',
293
+ 'Explore effects of base and initial value',
294
+ 'Connect to real-world scenarios'
295
+ ],
296
+ prerequisites: ['Function notation', 'Basic graphing', 'Exponent rules'],
297
+ estimatedTime: 22,
298
+ setup: async () => {
299
+ // Create sliders for exponential function y = a * b^x
300
+ await index_1.toolRegistry.executeTool('geogebra_create_slider', {
301
+ name: 'a',
302
+ min: 0.1,
303
+ max: 5,
304
+ value: 1,
305
+ increment: 0.1,
306
+ x: -8,
307
+ y: 6,
308
+ width: 120,
309
+ caption: 'Initial Value (a)'
310
+ });
311
+ await index_1.toolRegistry.executeTool('geogebra_create_slider', {
312
+ name: 'b',
313
+ min: 0.1,
314
+ max: 3,
315
+ value: 2,
316
+ increment: 0.1,
317
+ x: -8,
318
+ y: 5,
319
+ width: 120,
320
+ caption: 'Base (b)'
321
+ });
322
+ // Create the exponential function
323
+ await index_1.toolRegistry.executeTool('geogebra_plot_function', {
324
+ name: 'exponential',
325
+ expression: 'a * b^x',
326
+ color: '#FF0000',
327
+ thickness: 3,
328
+ xMin: -5,
329
+ xMax: 5
330
+ });
331
+ // Add horizontal asymptote
332
+ await index_1.toolRegistry.executeTool('geogebra_create_line', {
333
+ name: 'asymptote',
334
+ type: 'horizontal',
335
+ value: 0,
336
+ color: '#666666',
337
+ thickness: 1,
338
+ style: 'dashed'
339
+ });
340
+ // Add y-intercept point
341
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
342
+ name: 'yIntercept',
343
+ x: 0,
344
+ y: 1, // Will be 'a' in real implementation
345
+ color: '#00AA00',
346
+ size: 6,
347
+ label: 'y-intercept'
348
+ });
349
+ // Create comparison points to show growth/decay
350
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
351
+ name: 'point1',
352
+ x: 1,
353
+ y: 2, // Will be a*b^1 in real implementation
354
+ color: '#0000FF',
355
+ size: 4,
356
+ label: 'f(1)'
357
+ });
358
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
359
+ name: 'point2',
360
+ x: 2,
361
+ y: 4, // Will be a*b^2 in real implementation
362
+ color: '#0000FF',
363
+ size: 4,
364
+ label: 'f(2)'
365
+ });
366
+ // Add function equation display
367
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
368
+ text: '"f(x) = " + a + " × " + b + "^x"',
369
+ x: 3,
370
+ y: 6,
371
+ fontSize: 16,
372
+ color: '#FF0000',
373
+ fontStyle: 'bold'
374
+ });
375
+ // Add growth/decay classification
376
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
377
+ text: 'If[b > 1, "EXPONENTIAL GROWTH", If[b = 1, "CONSTANT FUNCTION", "EXPONENTIAL DECAY"]]',
378
+ x: 3,
379
+ y: 5,
380
+ fontSize: 14,
381
+ color: '#00AA00',
382
+ fontStyle: 'bold'
383
+ });
384
+ // Add growth factor information
385
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
386
+ text: 'If[b > 1, "Growth Factor: " + b + " (increases by " + (100*(b-1)) + "% each unit)", "Decay Factor: " + b + " (decreases by " + (100*(1-b)) + "% each unit)"]',
387
+ x: 3,
388
+ y: 4,
389
+ fontSize: 12,
390
+ color: '#0000FF'
391
+ });
392
+ // Add doubling/halving time (approximate)
393
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
394
+ text: 'If[b > 1, "Doubling time ≈ " + ln(2)/ln(b) + " units", "Half-life ≈ " + ln(0.5)/ln(b) + " units"]',
395
+ x: 3,
396
+ y: 3,
397
+ fontSize: 12,
398
+ color: '#AA00AA'
399
+ });
400
+ // Add real-world examples
401
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
402
+ text: 'If[b > 1, "Examples: Population growth, compound interest, bacterial growth", "Examples: Radioactive decay, depreciation, cooling"]',
403
+ x: 3,
404
+ y: 2,
405
+ fontSize: 11,
406
+ color: '#666666'
407
+ });
408
+ return {
409
+ construction: 'Interactive exponential function with adjustable parameters',
410
+ interactivity: 'Adjust initial value (a) and base (b) to explore growth and decay',
411
+ concepts: [
412
+ 'Base b > 1: exponential growth',
413
+ 'Base 0 < b < 1: exponential decay',
414
+ 'Parameter a determines y-intercept and scale',
415
+ 'Horizontal asymptote at y = 0',
416
+ 'Real-world applications vary by context'
417
+ ]
418
+ };
419
+ }
420
+ },
421
+ {
422
+ id: 'polynomial_factoring',
423
+ name: 'Polynomial Factoring Visualizer',
424
+ category: 'algebra',
425
+ description: 'Visual exploration of polynomial factoring, showing the relationship between factors and zeros',
426
+ gradeLevel: '9-12',
427
+ objectives: [
428
+ 'Connect factored form to graph zeros',
429
+ 'Understand multiplicity effects on graph behavior',
430
+ 'Explore relationship between factors and x-intercepts'
431
+ ],
432
+ prerequisites: ['Polynomial basics', 'Factoring techniques', 'Function graphing'],
433
+ estimatedTime: 20,
434
+ setup: async () => {
435
+ // Create sliders for factors (x - r1)(x - r2)(x - r3)
436
+ await index_1.toolRegistry.executeTool('geogebra_create_slider', {
437
+ name: 'r1',
438
+ min: -5,
439
+ max: 5,
440
+ value: -2,
441
+ increment: 0.5,
442
+ x: -8,
443
+ y: 6,
444
+ width: 120,
445
+ caption: 'Zero 1 (r₁)'
446
+ });
447
+ await index_1.toolRegistry.executeTool('geogebra_create_slider', {
448
+ name: 'r2',
449
+ min: -5,
450
+ max: 5,
451
+ value: 1,
452
+ increment: 0.5,
453
+ x: -8,
454
+ y: 5,
455
+ width: 120,
456
+ caption: 'Zero 2 (r₂)'
457
+ });
458
+ await index_1.toolRegistry.executeTool('geogebra_create_slider', {
459
+ name: 'r3',
460
+ min: -5,
461
+ max: 5,
462
+ value: 3,
463
+ increment: 0.5,
464
+ x: -8,
465
+ y: 4,
466
+ width: 120,
467
+ caption: 'Zero 3 (r₃)'
468
+ });
469
+ // Create leading coefficient slider
470
+ await index_1.toolRegistry.executeTool('geogebra_create_slider', {
471
+ name: 'leadCoeff',
472
+ min: -2,
473
+ max: 2,
474
+ value: 1,
475
+ increment: 0.25,
476
+ x: -8,
477
+ y: 3,
478
+ width: 120,
479
+ caption: 'Leading Coefficient'
480
+ });
481
+ // Create the polynomial function
482
+ await index_1.toolRegistry.executeTool('geogebra_plot_function', {
483
+ name: 'polynomial',
484
+ expression: 'leadCoeff * (x - r1) * (x - r2) * (x - r3)',
485
+ color: '#FF0000',
486
+ thickness: 3,
487
+ xMin: -6,
488
+ xMax: 6
489
+ });
490
+ // Mark the zeros on the x-axis
491
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
492
+ name: 'zero1',
493
+ x: -2, // Will be r1 in real implementation
494
+ y: 0,
495
+ color: '#00AA00',
496
+ size: 6,
497
+ label: 'r₁'
498
+ });
499
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
500
+ name: 'zero2',
501
+ x: 1, // Will be r2 in real implementation
502
+ y: 0,
503
+ color: '#00AA00',
504
+ size: 6,
505
+ label: 'r₂'
506
+ });
507
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
508
+ name: 'zero3',
509
+ x: 3, // Will be r3 in real implementation
510
+ y: 0,
511
+ color: '#00AA00',
512
+ size: 6,
513
+ label: 'r₃'
514
+ });
515
+ // Add factored form display
516
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
517
+ text: '"Factored Form: f(x) = " + leadCoeff + "(x - " + r1 + ")(x - " + r2 + ")(x - " + r3 + ")"',
518
+ x: 2,
519
+ y: 6,
520
+ fontSize: 14,
521
+ color: '#FF0000',
522
+ fontStyle: 'bold'
523
+ });
524
+ // Add zeros list
525
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
526
+ text: '"Zeros: x = " + r1 + ", x = " + r2 + ", x = " + r3',
527
+ x: 2,
528
+ y: 5,
529
+ fontSize: 14,
530
+ color: '#00AA00'
531
+ });
532
+ // Add degree and leading coefficient info
533
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
534
+ text: '"Degree: 3 (cubic polynomial)"',
535
+ x: 2,
536
+ y: 4,
537
+ fontSize: 12,
538
+ color: '#0000FF'
539
+ });
540
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
541
+ text: 'If[leadCoeff > 0, "Leading coefficient positive: rises to right", "Leading coefficient negative: falls to right"]',
542
+ x: 2,
543
+ y: 3,
544
+ fontSize: 12,
545
+ color: '#0000FF'
546
+ });
547
+ // Add behavior description
548
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
549
+ text: '"The graph crosses the x-axis at each zero"',
550
+ x: 2,
551
+ y: 2,
552
+ fontSize: 12,
553
+ color: '#AA00AA'
554
+ });
555
+ return {
556
+ construction: 'Cubic polynomial in factored form with adjustable zeros',
557
+ interactivity: 'Move zeros r₁, r₂, r₃ and adjust leading coefficient',
558
+ concepts: [
559
+ 'Zeros of polynomial are x-intercepts of graph',
560
+ 'Factored form directly shows zeros',
561
+ 'Leading coefficient affects vertical scaling and end behavior',
562
+ 'Number of zeros ≤ degree of polynomial'
563
+ ]
564
+ };
565
+ }
566
+ }
567
+ ];
568
+ //# sourceMappingURL=algebra-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"algebra-templates.js","sourceRoot":"","sources":["../../../src/tools/templates/algebra-templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { EducationalTemplate } from '../educational-templates';
2
+ /**
3
+ * Geometry Educational Templates
4
+ * Pre-built geometric scenarios for common educational use cases
5
+ */
6
+ export declare const geometryTemplates: EducationalTemplate[];
7
+ //# sourceMappingURL=geometry-templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry-templates.d.ts","sourceRoot":"","sources":["../../../src/tools/templates/geometry-templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D;;;GAGG;AAEH,eAAO,MAAM,iBAAiB,EAAE,mBAAmB,EA6hBlD,CAAC"}