@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,492 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.geometryTemplates = void 0;
4
+ const index_1 = require("../index");
5
+ /**
6
+ * Geometry Educational Templates
7
+ * Pre-built geometric scenarios for common educational use cases
8
+ */
9
+ exports.geometryTemplates = [
10
+ {
11
+ id: 'triangle_basics',
12
+ name: 'Triangle Fundamentals',
13
+ category: 'geometry',
14
+ description: 'Interactive exploration of triangle properties, including angles, sides, and basic relationships',
15
+ gradeLevel: '6-8',
16
+ objectives: [
17
+ 'Understand triangle angle sum property',
18
+ 'Explore relationship between side lengths and angles',
19
+ 'Classify triangles by sides and angles'
20
+ ],
21
+ prerequisites: ['Basic angle concepts', 'Measurement skills'],
22
+ estimatedTime: 15,
23
+ setup: async () => {
24
+ // Create three points for a triangle
25
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
26
+ name: 'A',
27
+ x: 0,
28
+ y: 0,
29
+ color: '#FF0000',
30
+ size: 4
31
+ });
32
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
33
+ name: 'B',
34
+ x: 4,
35
+ y: 0,
36
+ color: '#FF0000',
37
+ size: 4
38
+ });
39
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
40
+ name: 'C',
41
+ x: 2,
42
+ y: 3,
43
+ color: '#FF0000',
44
+ size: 4,
45
+ moveable: true
46
+ });
47
+ // Create triangle sides
48
+ await index_1.toolRegistry.executeTool('geogebra_create_line_segment', {
49
+ name: 'AB',
50
+ point1: 'A',
51
+ point2: 'B',
52
+ color: '#0000FF',
53
+ thickness: 2
54
+ });
55
+ await index_1.toolRegistry.executeTool('geogebra_create_line_segment', {
56
+ name: 'BC',
57
+ point1: 'B',
58
+ point2: 'C',
59
+ color: '#0000FF',
60
+ thickness: 2
61
+ });
62
+ await index_1.toolRegistry.executeTool('geogebra_create_line_segment', {
63
+ name: 'CA',
64
+ point1: 'C',
65
+ point2: 'A',
66
+ color: '#0000FF',
67
+ thickness: 2
68
+ });
69
+ // Create angle measurements
70
+ await index_1.toolRegistry.executeTool('geogebra_eval_command', { command: 'angleA = Angle(B, A, C)' });
71
+ await index_1.toolRegistry.executeTool('geogebra_eval_command', { command: 'angleB = Angle(C, B, A)' });
72
+ await index_1.toolRegistry.executeTool('geogebra_eval_command', { command: 'angleC = Angle(A, C, B)' });
73
+ // Add dynamic text showing angle sum
74
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
75
+ text: '"Angle Sum: " + angleA + angleB + angleC',
76
+ x: 5,
77
+ y: 2,
78
+ fontSize: 16,
79
+ color: '#AA0000'
80
+ });
81
+ return {
82
+ construction: 'Triangle with interactive point C and angle measurements',
83
+ interactivity: 'Drag point C to see how angles change while sum remains 180°',
84
+ learningPoints: [
85
+ 'Triangle angle sum is always 180°',
86
+ 'Larger angles are opposite longer sides',
87
+ 'Moving vertices changes individual angles but not their sum'
88
+ ]
89
+ };
90
+ }
91
+ },
92
+ {
93
+ id: 'circle_theorems',
94
+ name: 'Circle Theorems Explorer',
95
+ category: 'geometry',
96
+ description: 'Interactive demonstration of fundamental circle theorems including inscribed angles and tangent properties',
97
+ gradeLevel: '9-12',
98
+ objectives: [
99
+ 'Understand inscribed angle theorem',
100
+ 'Explore tangent-chord relationships',
101
+ 'Investigate central vs inscribed angles'
102
+ ],
103
+ prerequisites: ['Circle basics', 'Angle measurement', 'Basic proofs'],
104
+ estimatedTime: 20,
105
+ setup: async () => {
106
+ // Create center and circle
107
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
108
+ name: 'O',
109
+ x: 0,
110
+ y: 0,
111
+ color: '#000000',
112
+ size: 4,
113
+ label: 'Center'
114
+ });
115
+ await index_1.toolRegistry.executeTool('geogebra_create_circle', {
116
+ name: 'circle',
117
+ center: 'O',
118
+ radius: 3,
119
+ color: '#0000FF',
120
+ thickness: 2
121
+ });
122
+ // Create points on circle for inscribed angle
123
+ await index_1.toolRegistry.executeTool('geogebra_create_point_on_object', {
124
+ name: 'A',
125
+ object: 'circle',
126
+ color: '#FF0000',
127
+ size: 4,
128
+ moveable: true
129
+ });
130
+ await index_1.toolRegistry.executeTool('geogebra_create_point_on_object', {
131
+ name: 'B',
132
+ object: 'circle',
133
+ color: '#FF0000',
134
+ size: 4,
135
+ moveable: true
136
+ });
137
+ await index_1.toolRegistry.executeTool('geogebra_create_point_on_object', {
138
+ name: 'C',
139
+ object: 'circle',
140
+ color: '#FF0000',
141
+ size: 4,
142
+ moveable: true
143
+ });
144
+ // Create chords
145
+ await index_1.toolRegistry.executeTool('geogebra_create_line_segment', {
146
+ name: 'AB',
147
+ point1: 'A',
148
+ point2: 'B',
149
+ color: '#00AA00',
150
+ thickness: 2
151
+ });
152
+ await index_1.toolRegistry.executeTool('geogebra_create_line_segment', {
153
+ name: 'AC',
154
+ point1: 'A',
155
+ point2: 'C',
156
+ color: '#00AA00',
157
+ thickness: 2
158
+ });
159
+ await index_1.toolRegistry.executeTool('geogebra_create_line_segment', {
160
+ name: 'BC',
161
+ point1: 'B',
162
+ point2: 'C',
163
+ color: '#00AA00',
164
+ thickness: 2
165
+ });
166
+ // Create central angle
167
+ await index_1.toolRegistry.executeTool('geogebra_create_line_segment', {
168
+ name: 'OB',
169
+ point1: 'O',
170
+ point2: 'B',
171
+ color: '#AA00AA',
172
+ thickness: 1,
173
+ style: 'dashed'
174
+ });
175
+ await index_1.toolRegistry.executeTool('geogebra_create_line_segment', {
176
+ name: 'OC',
177
+ point1: 'O',
178
+ point2: 'C',
179
+ color: '#AA00AA',
180
+ thickness: 1,
181
+ style: 'dashed'
182
+ });
183
+ // Create angles
184
+ await index_1.toolRegistry.executeTool('geogebra_eval_command', { command: 'inscribedAngle = Angle(B, A, C)' });
185
+ await index_1.toolRegistry.executeTool('geogebra_eval_command', { command: 'centralAngle = Angle(B, O, C)' });
186
+ // Add relationship text
187
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
188
+ text: '"Inscribed: " + inscribedAngle + " Central: " + centralAngle + " Ratio: " + centralAngle/inscribedAngle',
189
+ x: 4,
190
+ y: 2,
191
+ fontSize: 14,
192
+ color: '#000000'
193
+ });
194
+ return {
195
+ construction: 'Circle with inscribed and central angles',
196
+ interactivity: 'Move points A, B, C around the circle to see angle relationships',
197
+ theorems: [
198
+ 'Inscribed angle = 1/2 × Central angle (for same arc)',
199
+ 'Inscribed angles subtending same arc are equal',
200
+ 'Angle in semicircle is 90°'
201
+ ]
202
+ };
203
+ }
204
+ },
205
+ {
206
+ id: 'pythagorean_proof',
207
+ name: 'Pythagorean Theorem Visual Proof',
208
+ category: 'geometry',
209
+ description: 'Interactive visual proof of the Pythagorean theorem using area relationships',
210
+ gradeLevel: '8-10',
211
+ objectives: [
212
+ 'Understand Pythagorean theorem relationship',
213
+ 'Visualize proof through area',
214
+ 'Apply theorem to solve problems'
215
+ ],
216
+ prerequisites: ['Area of squares and triangles', 'Right angle recognition'],
217
+ estimatedTime: 25,
218
+ setup: async () => {
219
+ // Create right triangle
220
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
221
+ name: 'A',
222
+ x: 0,
223
+ y: 0,
224
+ color: '#FF0000',
225
+ size: 4
226
+ });
227
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
228
+ name: 'B',
229
+ x: 3,
230
+ y: 0,
231
+ color: '#FF0000',
232
+ size: 4
233
+ });
234
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
235
+ name: 'C',
236
+ x: 0,
237
+ y: 4,
238
+ color: '#FF0000',
239
+ size: 4,
240
+ moveable: true
241
+ });
242
+ // Create triangle
243
+ await index_1.toolRegistry.executeTool('geogebra_create_polygon', {
244
+ name: 'triangle',
245
+ points: ['A', 'B', 'C'],
246
+ color: '#CCCCCC',
247
+ fillOpacity: 0.3
248
+ });
249
+ // Create squares on each side
250
+ // Square on side AB (horizontal)
251
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
252
+ name: 'B1',
253
+ x: 3,
254
+ y: -3,
255
+ color: '#0000FF',
256
+ size: 3
257
+ });
258
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
259
+ name: 'A1',
260
+ x: 0,
261
+ y: -3,
262
+ color: '#0000FF',
263
+ size: 3
264
+ });
265
+ await index_1.toolRegistry.executeTool('geogebra_create_polygon', {
266
+ name: 'squareAB',
267
+ points: ['A', 'B', 'B1', 'A1'],
268
+ color: '#CCDDFF',
269
+ fillOpacity: 0.5
270
+ });
271
+ // Square on side AC (vertical)
272
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
273
+ name: 'A2',
274
+ x: -4,
275
+ y: 0,
276
+ color: '#00AA00',
277
+ size: 3
278
+ });
279
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
280
+ name: 'C2',
281
+ x: -4,
282
+ y: 4,
283
+ color: '#00AA00',
284
+ size: 3
285
+ });
286
+ await index_1.toolRegistry.executeTool('geogebra_create_polygon', {
287
+ name: 'squareAC',
288
+ points: ['A', 'C', 'C2', 'A2'],
289
+ color: '#CCFFCC',
290
+ fillOpacity: 0.5
291
+ });
292
+ // Square on hypotenuse BC
293
+ // Calculate perpendicular direction
294
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
295
+ name: 'C3',
296
+ x: 5.4,
297
+ y: 6.8,
298
+ color: '#AA0000',
299
+ size: 3
300
+ });
301
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
302
+ name: 'B3',
303
+ x: 1.4,
304
+ y: 2.8,
305
+ color: '#AA0000',
306
+ size: 3
307
+ });
308
+ await index_1.toolRegistry.executeTool('geogebra_create_polygon', {
309
+ name: 'squareBC',
310
+ points: ['B', 'C', 'C3', 'B3'],
311
+ color: '#FFCCCC',
312
+ fillOpacity: 0.5
313
+ });
314
+ // Add measurements and calculations
315
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
316
+ text: '"a = " + Length[AB] + ", a² = " + Length[AB]²',
317
+ x: 1.5,
318
+ y: -1.5,
319
+ fontSize: 12,
320
+ color: '#0000FF'
321
+ });
322
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
323
+ text: '"b = " + Length[AC] + ", b² = " + Length[AC]²',
324
+ x: -3,
325
+ y: 2,
326
+ fontSize: 12,
327
+ color: '#00AA00'
328
+ });
329
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
330
+ text: '"c = " + Length[BC] + ", c² = " + Length[BC]²',
331
+ x: 4,
332
+ y: 3,
333
+ fontSize: 12,
334
+ color: '#AA0000'
335
+ });
336
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
337
+ text: '"a² + b² = " + (Length[AB]² + Length[AC]²)',
338
+ x: 5,
339
+ y: 1,
340
+ fontSize: 14,
341
+ color: '#000000',
342
+ fontStyle: 'bold'
343
+ });
344
+ return {
345
+ construction: 'Right triangle with squares on all three sides',
346
+ interactivity: 'Move point C to change triangle dimensions',
347
+ proof: 'Visual demonstration that area of square on hypotenuse equals sum of areas on other two sides',
348
+ verification: 'Drag point C to verify a² + b² = c² for different right triangles'
349
+ };
350
+ }
351
+ },
352
+ {
353
+ id: 'similarity_triangles',
354
+ name: 'Triangle Similarity Explorer',
355
+ category: 'geometry',
356
+ description: 'Interactive exploration of similar triangles, scale factors, and corresponding parts',
357
+ gradeLevel: '9-12',
358
+ objectives: [
359
+ 'Understand triangle similarity criteria (AA, SAS, SSS)',
360
+ 'Calculate scale factors and corresponding measurements',
361
+ 'Apply similarity in problem solving'
362
+ ],
363
+ prerequisites: ['Angle measurement', 'Proportional reasoning', 'Basic triangle properties'],
364
+ estimatedTime: 18,
365
+ setup: async () => {
366
+ // Create original triangle
367
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
368
+ name: 'A',
369
+ x: 0,
370
+ y: 0,
371
+ color: '#FF0000',
372
+ size: 4
373
+ });
374
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
375
+ name: 'B',
376
+ x: 6,
377
+ y: 0,
378
+ color: '#FF0000',
379
+ size: 4
380
+ });
381
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
382
+ name: 'C',
383
+ x: 2,
384
+ y: 4,
385
+ color: '#FF0000',
386
+ size: 4,
387
+ moveable: true
388
+ });
389
+ await index_1.toolRegistry.executeTool('geogebra_create_polygon', {
390
+ name: 'originalTriangle',
391
+ points: ['A', 'B', 'C'],
392
+ color: '#FF6666',
393
+ fillOpacity: 0.3
394
+ });
395
+ // Create scale factor slider
396
+ await index_1.toolRegistry.executeTool('geogebra_create_slider', {
397
+ name: 'scaleFactor',
398
+ min: 0.3,
399
+ max: 2.0,
400
+ value: 0.7,
401
+ increment: 0.1,
402
+ x: 8,
403
+ y: 4,
404
+ width: 150,
405
+ caption: 'Scale Factor'
406
+ });
407
+ // Create similar triangle using scale factor
408
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
409
+ name: 'A2',
410
+ x: 8,
411
+ y: -2,
412
+ color: '#0000FF',
413
+ size: 4
414
+ });
415
+ // Note: In real implementation, these would use the scale factor
416
+ // For now, creating approximate similar triangle
417
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
418
+ name: 'B2',
419
+ x: 12.2,
420
+ y: -2,
421
+ color: '#0000FF',
422
+ size: 4
423
+ });
424
+ await index_1.toolRegistry.executeTool('geogebra_create_point', {
425
+ name: 'C2',
426
+ x: 9.4,
427
+ y: 0.8,
428
+ color: '#0000FF',
429
+ size: 4
430
+ });
431
+ await index_1.toolRegistry.executeTool('geogebra_create_polygon', {
432
+ name: 'similarTriangle',
433
+ points: ['A2', 'B2', 'C2'],
434
+ color: '#6666FF',
435
+ fillOpacity: 0.3
436
+ });
437
+ // Add corresponding angle markings
438
+ await index_1.toolRegistry.executeTool('geogebra_eval_command', { command: 'angleA1 = Angle(B, A, C)' });
439
+ await index_1.toolRegistry.executeTool('geogebra_eval_command', { command: 'angleA2 = Angle(B2, A2, C2)' });
440
+ // Add measurements and ratios
441
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
442
+ text: '"Original Triangle ABC"',
443
+ x: 1,
444
+ y: 5,
445
+ fontSize: 14,
446
+ color: '#FF0000',
447
+ fontStyle: 'bold'
448
+ });
449
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
450
+ text: '"Similar Triangle A\'B\'C\'"',
451
+ x: 8,
452
+ y: 2,
453
+ fontSize: 14,
454
+ color: '#0000FF',
455
+ fontStyle: 'bold'
456
+ });
457
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
458
+ text: '"AB = " + Length[AB] + ", A\'B\' = " + Length[A2B2]',
459
+ x: 1,
460
+ y: -3,
461
+ fontSize: 12,
462
+ color: '#000000'
463
+ });
464
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
465
+ text: '"Scale Factor = " + scaleFactor',
466
+ x: 8,
467
+ y: 1,
468
+ fontSize: 14,
469
+ color: '#AA00AA',
470
+ fontStyle: 'bold'
471
+ });
472
+ await index_1.toolRegistry.executeTool('geogebra_create_text', {
473
+ text: '"Ratio Check: A\'B\'/AB = " + Length[A2B2]/Length[AB]',
474
+ x: 1,
475
+ y: -4,
476
+ fontSize: 12,
477
+ color: '#AA00AA'
478
+ });
479
+ return {
480
+ construction: 'Two similar triangles with adjustable scale factor',
481
+ interactivity: 'Move point C and adjust scale factor to explore similarity',
482
+ concepts: [
483
+ 'Similar triangles have equal corresponding angles',
484
+ 'Corresponding sides are proportional',
485
+ 'Scale factor applies to all linear measurements',
486
+ 'Areas scale by square of the scale factor'
487
+ ]
488
+ };
489
+ }
490
+ }
491
+ ];
492
+ //# sourceMappingURL=geometry-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry-templates.js","sourceRoot":"","sources":["../../../src/tools/templates/geometry-templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * GeoGebra Integration Types
3
+ * Type definitions for GeoGebra Apps API integration
4
+ */
5
+ export interface GeoGebraConfig {
6
+ appName?: 'graphing' | 'geometry' | '3d' | 'classic' | 'suite' | 'evaluator' | 'scientific' | 'notes';
7
+ width?: number;
8
+ height?: number;
9
+ showMenuBar?: boolean;
10
+ showToolBar?: boolean;
11
+ showAlgebraInput?: boolean;
12
+ showResetIcon?: boolean;
13
+ enableRightClick?: boolean;
14
+ enableLabelDrags?: boolean;
15
+ enableShiftDragZoom?: boolean;
16
+ language?: string;
17
+ material_id?: string;
18
+ filename?: string;
19
+ ggbBase64?: string;
20
+ }
21
+ export interface GeoGebraCommandResult {
22
+ success: boolean;
23
+ result?: string | number | boolean;
24
+ labels?: string[];
25
+ error?: string;
26
+ objects?: string[];
27
+ }
28
+ export interface GeoGebraObject {
29
+ name: string;
30
+ type: string;
31
+ value?: string | number;
32
+ visible: boolean;
33
+ defined: boolean;
34
+ x?: number;
35
+ y?: number;
36
+ z?: number;
37
+ color?: string;
38
+ }
39
+ export interface GeoGebraInstanceState {
40
+ id: string;
41
+ isReady: boolean;
42
+ objectCount: number;
43
+ lastActivity: Date;
44
+ config: GeoGebraConfig;
45
+ }
46
+ export interface GeoGebraPoolConfig {
47
+ maxInstances: number;
48
+ instanceTimeout: number;
49
+ maxIdleTime: number;
50
+ headless: boolean;
51
+ browserArgs?: string[];
52
+ }
53
+ export interface GeoGebraAPI {
54
+ evalCommand(command: string): Promise<GeoGebraCommandResult>;
55
+ evalCommandGetLabels(command: string): Promise<string[]>;
56
+ deleteObject(objName: string): Promise<boolean>;
57
+ exists(objName: string): Promise<boolean>;
58
+ isDefined(objName: string): Promise<boolean>;
59
+ getAllObjectNames(type?: string): Promise<string[]>;
60
+ getObjectInfo(objName: string): Promise<GeoGebraObject | null>;
61
+ getXcoord(objName: string): Promise<number>;
62
+ getYcoord(objName: string): Promise<number>;
63
+ getZcoord(objName: string): Promise<number>;
64
+ getValue(objName: string): Promise<number>;
65
+ getValueString(objName: string): Promise<string>;
66
+ newConstruction(): Promise<void>;
67
+ reset(): Promise<void>;
68
+ refreshViews(): Promise<void>;
69
+ setCoordSystem(xmin: number, xmax: number, ymin: number, ymax: number): Promise<void>;
70
+ setAxesVisible(xAxis: boolean, yAxis: boolean): Promise<void>;
71
+ setGridVisible(visible: boolean): Promise<void>;
72
+ setAnimating(objName: string, animate: boolean): Promise<void>;
73
+ setAnimationSpeed(objName: string, speed: number): Promise<void>;
74
+ startAnimation(): Promise<void>;
75
+ stopAnimation(): Promise<void>;
76
+ isAnimationRunning(): Promise<boolean>;
77
+ setTrace(objName: string, flag: boolean): Promise<void>;
78
+ setValue(objName: string, value: number): Promise<void>;
79
+ isReady(): Promise<boolean>;
80
+ cleanup(): Promise<void>;
81
+ exportPNG(scale?: number, transparent?: boolean, dpi?: number, width?: number, height?: number): Promise<string>;
82
+ exportSVG(): Promise<string>;
83
+ exportPDF(): Promise<string>;
84
+ exportAnimation(options?: {
85
+ duration?: number;
86
+ frameRate?: number;
87
+ format?: 'gif' | 'frames';
88
+ width?: number;
89
+ height?: number;
90
+ }): Promise<string | string[]>;
91
+ }
92
+ export declare class GeoGebraError extends Error {
93
+ code?: string | undefined;
94
+ constructor(message: string, code?: string | undefined);
95
+ }
96
+ export declare class GeoGebraConnectionError extends GeoGebraError {
97
+ constructor(message: string);
98
+ }
99
+ export declare class GeoGebraCommandError extends GeoGebraError {
100
+ command?: string | undefined;
101
+ constructor(message: string, command?: string | undefined);
102
+ }
103
+ //# sourceMappingURL=geogebra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geogebra.d.ts","sourceRoot":"","sources":["../../src/types/geogebra.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ /**
3
+ * GeoGebra Integration Types
4
+ * Type definitions for GeoGebra Apps API integration
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.GeoGebraCommandError = exports.GeoGebraConnectionError = exports.GeoGebraError = void 0;
8
+ // Error types
9
+ class GeoGebraError extends Error {
10
+ code;
11
+ constructor(message, code) {
12
+ super(message);
13
+ this.code = code;
14
+ this.name = 'GeoGebraError';
15
+ }
16
+ }
17
+ exports.GeoGebraError = GeoGebraError;
18
+ class GeoGebraConnectionError extends GeoGebraError {
19
+ constructor(message) {
20
+ super(message, 'CONNECTION_ERROR');
21
+ this.name = 'GeoGebraConnectionError';
22
+ }
23
+ }
24
+ exports.GeoGebraConnectionError = GeoGebraConnectionError;
25
+ class GeoGebraCommandError extends GeoGebraError {
26
+ command;
27
+ constructor(message, command) {
28
+ super(message, 'COMMAND_ERROR');
29
+ this.command = command;
30
+ this.name = 'GeoGebraCommandError';
31
+ }
32
+ }
33
+ exports.GeoGebraCommandError = GeoGebraCommandError;
34
+ //# sourceMappingURL=geogebra.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geogebra.js","sourceRoot":"","sources":["../../src/types/geogebra.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAoHH,cAAc;AACd,MAAa,aAAc,SAAQ,KAAK;IACF;IAApC,YAAY,OAAe,EAAS,IAAa;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,SAAI,GAAJ,IAAI,CAAS;QAE/C,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AALD,sCAKC;AAED,MAAa,uBAAwB,SAAQ,aAAa;IACxD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AALD,0DAKC;AAED,MAAa,oBAAqB,SAAQ,aAAa;IACjB;IAApC,YAAY,OAAe,EAAS,OAAgB;QAClD,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QADE,YAAO,GAAP,OAAO,CAAS;QAElD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AALD,oDAKC"}