@mathscan/geometry-engine 0.1.0 → 0.1.1

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 (238) hide show
  1. package/README.md +24 -7
  2. package/dist/core.cjs +1 -1
  3. package/dist/core.mjs +4 -4
  4. package/dist/entries/core.d.cts +1 -1
  5. package/dist/entries/core.d.ts +1 -1
  6. package/dist/entries/core.d.ts.map +1 -1
  7. package/dist/exercise.schema-Bma3qN9P.js +251 -0
  8. package/dist/exercise.schema-Bma3qN9P.js.map +1 -0
  9. package/dist/exercise.schema-Oj5ZH-yO.cjs +2 -0
  10. package/dist/exercise.schema-Oj5ZH-yO.cjs.map +1 -0
  11. package/dist/exerciseLoad-Db9Cigxi.cjs +2 -0
  12. package/dist/exerciseLoad-Db9Cigxi.cjs.map +1 -0
  13. package/dist/{geometryAttemptStatus-5L_q6-9l.js → exerciseLoad-DgeDXYbf.js} +84 -71
  14. package/dist/exerciseLoad-DgeDXYbf.js.map +1 -0
  15. package/dist/geometry/entities/angle.d.cts +56 -0
  16. package/dist/geometry/entities/angle.d.ts +57 -0
  17. package/dist/geometry/entities/angle.d.ts.map +1 -0
  18. package/dist/geometry/entities/circle.d.ts.map +1 -1
  19. package/dist/geometry/entities/index.d.cts +8 -4
  20. package/dist/geometry/entities/index.d.ts +8 -4
  21. package/dist/geometry/entities/index.d.ts.map +1 -1
  22. package/dist/geometry/entities/line.d.ts.map +1 -1
  23. package/dist/geometry/entities/point.d.ts.map +1 -1
  24. package/dist/geometry/entities/relations.d.cts +8 -1
  25. package/dist/geometry/entities/relations.d.ts +8 -1
  26. package/dist/geometry/entities/relations.d.ts.map +1 -1
  27. package/dist/geometry/entities/segment.d.ts.map +1 -1
  28. package/dist/geometry/entityModel.d.cts +21 -3
  29. package/dist/geometry/entityModel.d.ts +21 -3
  30. package/dist/geometry/entityModel.d.ts.map +1 -1
  31. package/dist/geometryState.schema-B5ccMKDa.cjs +2 -0
  32. package/dist/geometryState.schema-B5ccMKDa.cjs.map +1 -0
  33. package/dist/geometryState.schema-CKFPlX8j.js +1177 -0
  34. package/dist/geometryState.schema-CKFPlX8j.js.map +1 -0
  35. package/dist/goals-BlSeniyt.js +563 -0
  36. package/dist/goals-BlSeniyt.js.map +1 -0
  37. package/dist/goals-DLbmBZD8.cjs +2 -0
  38. package/dist/goals-DLbmBZD8.cjs.map +1 -0
  39. package/dist/index.cjs +1 -1
  40. package/dist/index.mjs +8 -8
  41. package/dist/measure/angleType.d.cts +2 -0
  42. package/dist/measure/angleType.d.ts +3 -0
  43. package/dist/measure/angleType.d.ts.map +1 -0
  44. package/dist/measure/geometryAdapter.d.cts +3 -0
  45. package/dist/measure/geometryAdapter.d.ts +3 -0
  46. package/dist/measure/geometryAdapter.d.ts.map +1 -1
  47. package/dist/react-B26_e52I.cjs +2 -0
  48. package/dist/react-B26_e52I.cjs.map +1 -0
  49. package/dist/{react-BEcdx1f6.js → react-B5cGaxH8.js} +738 -513
  50. package/dist/react-B5cGaxH8.js.map +1 -0
  51. package/dist/react.cjs +1 -1
  52. package/dist/react.mjs +1 -1
  53. package/dist/renderer/GeometryCanvas.d.ts.map +1 -1
  54. package/dist/renderer/StudentGeometryCanvas.d.ts.map +1 -1
  55. package/dist/renderer/Toolbar.d.ts.map +1 -1
  56. package/dist/renderer/angleMeasure.d.cts +14 -0
  57. package/dist/renderer/angleMeasure.d.ts +15 -0
  58. package/dist/renderer/angleMeasure.d.ts.map +1 -0
  59. package/dist/renderer/deriveRenderableGeometry.d.cts +1 -0
  60. package/dist/renderer/deriveRenderableGeometry.d.ts +1 -0
  61. package/dist/renderer/deriveRenderableGeometry.d.ts.map +1 -1
  62. package/dist/renderer/deriveSemanticScene.d.ts.map +1 -1
  63. package/dist/renderer/dragSnap.d.cts +14 -0
  64. package/dist/renderer/dragSnap.d.ts +15 -0
  65. package/dist/renderer/dragSnap.d.ts.map +1 -0
  66. package/dist/renderer/shapes/AngleShape.d.cts +19 -0
  67. package/dist/renderer/shapes/AngleShape.d.ts +20 -0
  68. package/dist/renderer/shapes/AngleShape.d.ts.map +1 -0
  69. package/dist/renderer/shapes/EntityLabel.d.cts +9 -1
  70. package/dist/renderer/shapes/EntityLabel.d.ts +9 -1
  71. package/dist/renderer/shapes/EntityLabel.d.ts.map +1 -1
  72. package/dist/renderer/shapes/EntityShape.d.cts +2 -1
  73. package/dist/renderer/shapes/EntityShape.d.ts +2 -1
  74. package/dist/renderer/shapes/EntityShape.d.ts.map +1 -1
  75. package/dist/renderer/useConnectionPreview.d.cts +12 -1
  76. package/dist/renderer/useConnectionPreview.d.ts +12 -1
  77. package/dist/renderer/useConnectionPreview.d.ts.map +1 -1
  78. package/dist/renderer/usePointerGestures.d.cts +1 -1
  79. package/dist/renderer/usePointerGestures.d.ts +1 -1
  80. package/dist/renderer/usePointerGestures.d.ts.map +1 -1
  81. package/dist/schemas/entityDefinition.schema.d.cts +7 -0
  82. package/dist/schemas/entityDefinition.schema.d.ts +7 -0
  83. package/dist/schemas/entityDefinition.schema.d.ts.map +1 -1
  84. package/dist/schemas/entityDocument.d.cts +34 -13
  85. package/dist/schemas/entityDocument.d.ts +34 -13
  86. package/dist/schemas/entityDocument.d.ts.map +1 -1
  87. package/dist/schemas/entityPresentation.schema.d.cts +3 -0
  88. package/dist/schemas/entityPresentation.schema.d.ts +3 -0
  89. package/dist/schemas/entityPresentation.schema.d.ts.map +1 -1
  90. package/dist/schemas/exercise.schema.d.cts +80 -2
  91. package/dist/schemas/exercise.schema.d.ts +80 -2
  92. package/dist/schemas/exercise.schema.d.ts.map +1 -1
  93. package/dist/schemas/exerciseV2.schema.d.cts +57 -0
  94. package/dist/schemas/exerciseV2.schema.d.ts +57 -0
  95. package/dist/schemas/exerciseV2.schema.d.ts.map +1 -1
  96. package/dist/schemas/exerciseV4.schema.d.cts +168 -0
  97. package/dist/schemas/exerciseV4.schema.d.ts +169 -0
  98. package/dist/schemas/exerciseV4.schema.d.ts.map +1 -0
  99. package/dist/schemas/geometryState.schema.d.cts +8 -0
  100. package/dist/schemas/geometryState.schema.d.ts +8 -0
  101. package/dist/schemas/geometryState.schema.d.ts.map +1 -1
  102. package/dist/schemas/goals/angleBisectorGoal.schema.d.cts +15 -0
  103. package/dist/schemas/goals/angleBisectorGoal.schema.d.ts +16 -0
  104. package/dist/schemas/goals/angleBisectorGoal.schema.d.ts.map +1 -0
  105. package/dist/schemas/goals/angleCriterion.schema.d.cts +28 -0
  106. package/dist/schemas/goals/angleCriterion.schema.d.ts +29 -0
  107. package/dist/schemas/goals/angleCriterion.schema.d.ts.map +1 -0
  108. package/dist/schemas/goals/angleMeasureGoal.schema.d.cts +26 -0
  109. package/dist/schemas/goals/angleMeasureGoal.schema.d.ts +27 -0
  110. package/dist/schemas/goals/angleMeasureGoal.schema.d.ts.map +1 -0
  111. package/dist/schemas/goals/createGoal.schema.d.cts +1 -0
  112. package/dist/schemas/goals/createGoal.schema.d.ts +1 -0
  113. package/dist/schemas/goals/createGoal.schema.d.ts.map +1 -1
  114. package/dist/schemas/goals/geometryGoal.schema.d.cts +61 -0
  115. package/dist/schemas/goals/geometryGoal.schema.d.ts +61 -0
  116. package/dist/schemas/goals/geometryGoal.schema.d.ts.map +1 -1
  117. package/dist/schemas/goals/givenAngleGoal.schema.d.cts +35 -0
  118. package/dist/schemas/goals/givenAngleGoal.schema.d.ts +36 -0
  119. package/dist/schemas/goals/givenAngleGoal.schema.d.ts.map +1 -0
  120. package/dist/schemas/goals/goalKindDeclaration.d.cts +7 -0
  121. package/dist/schemas/goals/goalKindDeclaration.d.ts +7 -0
  122. package/dist/schemas/goals/goalKindDeclaration.d.ts.map +1 -1
  123. package/dist/schemas/goals/parallelGoal.schema.d.cts +1 -0
  124. package/dist/schemas/goals/parallelGoal.schema.d.ts +1 -0
  125. package/dist/schemas/goals/parallelGoal.schema.d.ts.map +1 -1
  126. package/dist/schemas/goals/perpendicularGoal.schema.d.cts +1 -0
  127. package/dist/schemas/goals/perpendicularGoal.schema.d.ts +1 -0
  128. package/dist/schemas/goals/perpendicularGoal.schema.d.ts.map +1 -1
  129. package/dist/schemas/goals/throughPointsGoal.schema.d.cts +1 -0
  130. package/dist/schemas/goals/throughPointsGoal.schema.d.ts +1 -0
  131. package/dist/schemas/goals/throughPointsGoal.schema.d.ts.map +1 -1
  132. package/dist/schemas/objectTypeName.schema.d.cts +1 -0
  133. package/dist/schemas/objectTypeName.schema.d.ts +1 -0
  134. package/dist/schemas/objectTypeName.schema.d.ts.map +1 -1
  135. package/dist/schemas/v2ToV3.d.cts +15 -1
  136. package/dist/schemas/v2ToV3.d.ts +15 -1
  137. package/dist/schemas/v2ToV3.d.ts.map +1 -1
  138. package/dist/schemas/v3ToV4.d.cts +2 -1
  139. package/dist/schemas/v3ToV4.d.ts +2 -1
  140. package/dist/schemas/v3ToV4.d.ts.map +1 -1
  141. package/dist/schemas/v4ToV5.d.cts +7 -0
  142. package/dist/schemas/v4ToV5.d.ts +8 -0
  143. package/dist/schemas/v4ToV5.d.ts.map +1 -0
  144. package/dist/schemas.cjs +1 -1
  145. package/dist/schemas.mjs +3 -3
  146. package/dist/snapping/computeDragSnap.d.cts +30 -0
  147. package/dist/snapping/computeDragSnap.d.ts +31 -0
  148. package/dist/snapping/computeDragSnap.d.ts.map +1 -0
  149. package/dist/state/geometryContext.d.ts.map +1 -1
  150. package/dist/store/attemptChange.d.cts +1 -1
  151. package/dist/store/attemptChange.d.ts +1 -1
  152. package/dist/store/attemptChange.d.ts.map +1 -1
  153. package/dist/store/constructionCommand.d.cts +14 -2
  154. package/dist/store/constructionCommand.d.ts +14 -2
  155. package/dist/store/constructionCommand.d.ts.map +1 -1
  156. package/dist/store/constructionIdentity.d.cts +9 -0
  157. package/dist/store/constructionIdentity.d.ts +9 -0
  158. package/dist/store/constructionIdentity.d.ts.map +1 -1
  159. package/dist/store/studentStore.d.cts +7 -0
  160. package/dist/store/studentStore.d.ts +7 -0
  161. package/dist/store/studentStore.d.ts.map +1 -1
  162. package/dist/store/teacherStore.d.cts +16 -0
  163. package/dist/store/teacherStore.d.ts +16 -0
  164. package/dist/store/teacherStore.d.ts.map +1 -1
  165. package/dist/{studentStore-CEKTtMCh.js → studentStore-CyYa0N93.js} +502 -370
  166. package/dist/studentStore-CyYa0N93.js.map +1 -0
  167. package/dist/studentStore-ubldy4PJ.cjs +2 -0
  168. package/dist/studentStore-ubldy4PJ.cjs.map +1 -0
  169. package/dist/validation/getGeometryExerciseWarnings.d.cts +3 -2
  170. package/dist/validation/getGeometryExerciseWarnings.d.ts +3 -2
  171. package/dist/validation/getGeometryExerciseWarnings.d.ts.map +1 -1
  172. package/dist/validation/goals/angleBisector.d.cts +3 -0
  173. package/dist/validation/goals/angleBisector.d.ts +4 -0
  174. package/dist/validation/goals/angleBisector.d.ts.map +1 -0
  175. package/dist/validation/goals/angleCriterion.d.cts +12 -0
  176. package/dist/validation/goals/angleCriterion.d.ts +13 -0
  177. package/dist/validation/goals/angleCriterion.d.ts.map +1 -0
  178. package/dist/validation/goals/angleMeasure.d.cts +9 -0
  179. package/dist/validation/goals/angleMeasure.d.ts +10 -0
  180. package/dist/validation/goals/angleMeasure.d.ts.map +1 -0
  181. package/dist/validation/goals/create.d.cts +2 -2
  182. package/dist/validation/goals/create.d.ts +2 -2
  183. package/dist/validation/goals/create.d.ts.map +1 -1
  184. package/dist/validation/goals/givenAngle.d.cts +11 -0
  185. package/dist/validation/goals/givenAngle.d.ts +12 -0
  186. package/dist/validation/goals/givenAngle.d.ts.map +1 -0
  187. package/dist/validation/goals/goalKindHandler.d.cts +38 -1
  188. package/dist/validation/goals/goalKindHandler.d.ts +38 -1
  189. package/dist/validation/goals/goalKindHandler.d.ts.map +1 -1
  190. package/dist/validation/goals/index.d.cts +9 -2
  191. package/dist/validation/goals/index.d.ts +9 -2
  192. package/dist/validation/goals/index.d.ts.map +1 -1
  193. package/dist/validation/goals/midpoint.d.cts +2 -2
  194. package/dist/validation/goals/midpoint.d.ts +2 -2
  195. package/dist/validation/goals/midpoint.d.ts.map +1 -1
  196. package/dist/validation/goals/parallel.d.cts +2 -2
  197. package/dist/validation/goals/parallel.d.ts +2 -2
  198. package/dist/validation/goals/parallel.d.ts.map +1 -1
  199. package/dist/validation/goals/perpendicular.d.cts +2 -2
  200. package/dist/validation/goals/perpendicular.d.ts +2 -2
  201. package/dist/validation/goals/perpendicular.d.ts.map +1 -1
  202. package/dist/validation/goals/segmentLength.d.cts +2 -2
  203. package/dist/validation/goals/segmentLength.d.ts +2 -2
  204. package/dist/validation/goals/segmentLength.d.ts.map +1 -1
  205. package/dist/validation/goals/throughPoints.d.cts +2 -2
  206. package/dist/validation/goals/throughPoints.d.ts +2 -2
  207. package/dist/validation/goals/throughPoints.d.ts.map +1 -1
  208. package/dist/validation/types.d.cts +5 -1
  209. package/dist/validation/types.d.ts +5 -1
  210. package/dist/validation/types.d.ts.map +1 -1
  211. package/dist/validation/validateGeometryState.d.ts.map +1 -1
  212. package/dist/validation/validateGeometryStateInput.d.ts.map +1 -1
  213. package/dist/validation.cjs +1 -1
  214. package/dist/validation.cjs.map +1 -1
  215. package/dist/validation.mjs +106 -85
  216. package/dist/validation.mjs.map +1 -1
  217. package/package.json +1 -1
  218. package/dist/exercise.schema-BV2b7rtN.cjs +0 -2
  219. package/dist/exercise.schema-BV2b7rtN.cjs.map +0 -1
  220. package/dist/exercise.schema-ckVBW9XA.js +0 -212
  221. package/dist/exercise.schema-ckVBW9XA.js.map +0 -1
  222. package/dist/geometryAttemptStatus-5L_q6-9l.js.map +0 -1
  223. package/dist/geometryAttemptStatus-N_XHIkiS.cjs +0 -2
  224. package/dist/geometryAttemptStatus-N_XHIkiS.cjs.map +0 -1
  225. package/dist/geometryState.schema-D0ixyGYE.js +0 -955
  226. package/dist/geometryState.schema-D0ixyGYE.js.map +0 -1
  227. package/dist/geometryState.schema-DKQ-durx.cjs +0 -2
  228. package/dist/geometryState.schema-DKQ-durx.cjs.map +0 -1
  229. package/dist/goals-C3ZwbEh_.js +0 -451
  230. package/dist/goals-C3ZwbEh_.js.map +0 -1
  231. package/dist/goals-CxR5qPDC.cjs +0 -2
  232. package/dist/goals-CxR5qPDC.cjs.map +0 -1
  233. package/dist/react-BEcdx1f6.js.map +0 -1
  234. package/dist/react-Pp_VSk--.cjs +0 -2
  235. package/dist/react-Pp_VSk--.cjs.map +0 -1
  236. package/dist/studentStore-CEKTtMCh.js.map +0 -1
  237. package/dist/studentStore-DLftfFAl.cjs +0 -2
  238. package/dist/studentStore-DLftfFAl.cjs.map +0 -1
@@ -0,0 +1,169 @@
1
+ import { z } from 'zod';
2
+ export declare const v4ExerciseSchemaVersion = 4;
3
+ /** Version 4's vocabularies: version 2's plus the angle M3.4 added (ADR 0010). */
4
+ export declare const v4EntityKinds: readonly ["point", "segment", "line", "circle", "angle"];
5
+ export declare const v4ObjectTypeNames: readonly ["point", "segment", "line", "circle", "angle"];
6
+ export declare const v4ToolNames: readonly ["ruler", "setSquare", "protractor"];
7
+ export declare const v4GoalTypes: readonly ["create", "throughPoints", "perpendicular", "parallel", "segmentLength", "midpoint"];
8
+ export declare const v4PresentationKeys: readonly ["role", "label", "measureLabel"];
9
+ /**
10
+ * The exercise document at version 4 as M3.4 left it, frozen by ADR 0019 so the
11
+ * v4 → v5 step can ask "could version 4 have said this?" once the angle goals
12
+ * make the current schema wider — and so the v3 → v4 step still has a version 4
13
+ * to ask.
14
+ *
15
+ * Version 4 is version 3 plus `solution` (ADR 0015) and the angle — one entity
16
+ * kind, one object type, one presentation key — and no goal type, so it is built
17
+ * on the frozen v3 transcription with those written out and nothing imported
18
+ * from the current vocabulary (see `exerciseV2.schema.ts`).
19
+ *
20
+ * `solution` is admitted and never judged. It is an attempt document that
21
+ * migrates and validates on its own path (ADR 0015), a malformed one does not
22
+ * make the exercise unloadable, and both gates that ask this schema hand it the
23
+ * solution-free projection anyway (ADR 0019).
24
+ */
25
+ export declare const geometryExerciseV4Schema: z.ZodObject<{
26
+ id: z.ZodString;
27
+ viewport: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
28
+ showGrid: z.ZodOptional<z.ZodBoolean>;
29
+ draggableEntityIds: z.ZodArray<z.ZodString>;
30
+ tools: z.ZodArray<z.ZodEnum<{
31
+ ruler: "ruler";
32
+ setSquare: "setSquare";
33
+ protractor: "protractor";
34
+ }>>;
35
+ goals: z.ZodArray<z.ZodUnion<z.ZodObject<{
36
+ objectType: z.ZodEnum<{
37
+ point: "point";
38
+ segment: "segment";
39
+ line: "line";
40
+ circle: "circle";
41
+ }>;
42
+ id: z.ZodString;
43
+ type: z.ZodLiteral<"create" | "throughPoints" | "perpendicular" | "parallel" | "segmentLength" | "midpoint">;
44
+ } | {
45
+ objectType: z.ZodEnum<{
46
+ point: "point";
47
+ segment: "segment";
48
+ line: "line";
49
+ circle: "circle";
50
+ }>;
51
+ pointIds: z.ZodArray<z.ZodString>;
52
+ id: z.ZodString;
53
+ type: z.ZodLiteral<"create" | "throughPoints" | "perpendicular" | "parallel" | "segmentLength" | "midpoint">;
54
+ } | {
55
+ objectType: z.ZodEnum<{
56
+ point: "point";
57
+ segment: "segment";
58
+ line: "line";
59
+ circle: "circle";
60
+ }>;
61
+ referenceObjectId: z.ZodString;
62
+ throughPointId: z.ZodString;
63
+ toleranceDegrees: z.ZodNumber;
64
+ id: z.ZodString;
65
+ type: z.ZodLiteral<"create" | "throughPoints" | "perpendicular" | "parallel" | "segmentLength" | "midpoint">;
66
+ } | {
67
+ objectType: z.ZodEnum<{
68
+ point: "point";
69
+ segment: "segment";
70
+ line: "line";
71
+ circle: "circle";
72
+ }>;
73
+ referenceObjectId: z.ZodString;
74
+ throughPointId: z.ZodString;
75
+ toleranceDegrees: z.ZodNumber;
76
+ id: z.ZodString;
77
+ type: z.ZodLiteral<"create" | "throughPoints" | "perpendicular" | "parallel" | "segmentLength" | "midpoint">;
78
+ } | {
79
+ objectType: z.ZodLiteral<"segment">;
80
+ targetLength: z.ZodNumber;
81
+ toleranceUnits: z.ZodNumber;
82
+ id: z.ZodString;
83
+ type: z.ZodLiteral<"create" | "throughPoints" | "perpendicular" | "parallel" | "segmentLength" | "midpoint">;
84
+ } | {
85
+ objectType: z.ZodLiteral<"point">;
86
+ referenceObjectId: z.ZodString;
87
+ toleranceUnits: z.ZodNumber;
88
+ id: z.ZodString;
89
+ type: z.ZodLiteral<"create" | "throughPoints" | "perpendicular" | "parallel" | "segmentLength" | "midpoint">;
90
+ }, z.core.$strict>[]>>;
91
+ grading: z.ZodOptional<z.ZodObject<{
92
+ extraObjects: z.ZodEnum<{
93
+ allow: "allow";
94
+ reject: "reject";
95
+ }>;
96
+ }, z.core.$strict>>;
97
+ schemaVersion: z.ZodLiteral<4>;
98
+ entities: z.ZodType<Record<string, {
99
+ kind: "point";
100
+ at: {
101
+ x: number;
102
+ y: number;
103
+ };
104
+ } | {
105
+ kind: "point";
106
+ on: string;
107
+ t: number;
108
+ } | {
109
+ kind: "point";
110
+ intersectionOf: readonly [string, string];
111
+ which?: 0 | 1 | undefined;
112
+ } | {
113
+ kind: "segment";
114
+ parents: readonly [string, string];
115
+ } | {
116
+ kind: "line";
117
+ parents: readonly [string, string];
118
+ } | {
119
+ kind: "circle";
120
+ parents: readonly [string, string];
121
+ } | {
122
+ kind: "angle";
123
+ parents: readonly [string, string, string];
124
+ }>, unknown, z.core.$ZodTypeInternals<Record<string, {
125
+ kind: "point";
126
+ at: {
127
+ x: number;
128
+ y: number;
129
+ };
130
+ } | {
131
+ kind: "point";
132
+ on: string;
133
+ t: number;
134
+ } | {
135
+ kind: "point";
136
+ intersectionOf: readonly [string, string];
137
+ which?: 0 | 1 | undefined;
138
+ } | {
139
+ kind: "segment";
140
+ parents: readonly [string, string];
141
+ } | {
142
+ kind: "line";
143
+ parents: readonly [string, string];
144
+ } | {
145
+ kind: "circle";
146
+ parents: readonly [string, string];
147
+ } | {
148
+ kind: "angle";
149
+ parents: readonly [string, string, string];
150
+ }>, unknown>>;
151
+ presentation: z.ZodType<Record<string, {
152
+ role: "implicit" | "explicit";
153
+ label?: string | undefined;
154
+ measureLabel?: "degrees" | undefined;
155
+ }>, unknown, z.core.$ZodTypeInternals<Record<string, {
156
+ role: "implicit" | "explicit";
157
+ label?: string | undefined;
158
+ measureLabel?: "degrees" | undefined;
159
+ }>, unknown>>;
160
+ allowedObjects: z.ZodArray<z.ZodEnum<{
161
+ point: "point";
162
+ segment: "segment";
163
+ line: "line";
164
+ circle: "circle";
165
+ angle: "angle";
166
+ }>>;
167
+ solution: z.ZodOptional<z.ZodUnknown>;
168
+ }, z.core.$strict>;
169
+ //# sourceMappingURL=exerciseV4.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exerciseV4.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/exerciseV4.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAavB,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAExC,kFAAkF;AAClF,eAAO,MAAM,aAAa,0DAAuC,CAAA;AACjE,eAAO,MAAM,iBAAiB,0DAA2C,CAAA;AACzE,eAAO,MAAM,WAAW,+CAAc,CAAA;AACtC,eAAO,MAAM,WAAW,gGAAc,CAAA;AACtC,eAAO,MAAM,kBAAkB,4CAAmD,CAAA;AAElF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAwBnC,CAAA"}
@@ -27,6 +27,9 @@ export declare const geometryStateSchema: z.ZodObject<{
27
27
  } | {
28
28
  kind: "circle";
29
29
  parents: readonly [string, string];
30
+ } | {
31
+ kind: "angle";
32
+ parents: readonly [string, string, string];
30
33
  }>, unknown, z.core.$ZodTypeInternals<Record<string, {
31
34
  kind: "point";
32
35
  at: {
@@ -50,13 +53,18 @@ export declare const geometryStateSchema: z.ZodObject<{
50
53
  } | {
51
54
  kind: "circle";
52
55
  parents: readonly [string, string];
56
+ } | {
57
+ kind: "angle";
58
+ parents: readonly [string, string, string];
53
59
  }>, unknown>>;
54
60
  presentation: z.ZodType<Record<string, {
55
61
  role: "implicit" | "explicit";
56
62
  label?: string | undefined;
63
+ measureLabel?: "degrees" | undefined;
57
64
  }>, unknown, z.core.$ZodTypeInternals<Record<string, {
58
65
  role: "implicit" | "explicit";
59
66
  label?: string | undefined;
67
+ measureLabel?: "degrees" | undefined;
60
68
  }>, unknown>>;
61
69
  answerEntityIds: z.ZodArray<z.ZodString>;
62
70
  }, z.core.$strict>;
@@ -27,6 +27,9 @@ export declare const geometryStateSchema: z.ZodObject<{
27
27
  } | {
28
28
  kind: "circle";
29
29
  parents: readonly [string, string];
30
+ } | {
31
+ kind: "angle";
32
+ parents: readonly [string, string, string];
30
33
  }>, unknown, z.core.$ZodTypeInternals<Record<string, {
31
34
  kind: "point";
32
35
  at: {
@@ -50,13 +53,18 @@ export declare const geometryStateSchema: z.ZodObject<{
50
53
  } | {
51
54
  kind: "circle";
52
55
  parents: readonly [string, string];
56
+ } | {
57
+ kind: "angle";
58
+ parents: readonly [string, string, string];
53
59
  }>, unknown>>;
54
60
  presentation: z.ZodType<Record<string, {
55
61
  role: "implicit" | "explicit";
56
62
  label?: string | undefined;
63
+ measureLabel?: "degrees" | undefined;
57
64
  }>, unknown, z.core.$ZodTypeInternals<Record<string, {
58
65
  role: "implicit" | "explicit";
59
66
  label?: string | undefined;
67
+ measureLabel?: "degrees" | undefined;
60
68
  }>, unknown>>;
61
69
  answerEntityIds: z.ZodArray<z.ZodString>;
62
70
  }, z.core.$strict>;
@@ -1 +1 @@
1
- {"version":3,"file":"geometryState.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/geometryState.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,OAAO,EAAmB,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAA;AAatF,eAAO,MAAM,0BAA0B,IAAI,CAAA;AAG3C,eAAO,MAAM,uBAAuB,EAAE,SAAS,aAAa,EAA0B,CAAA;AAUtF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAuB5B,CAAA;AAEJ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAK/D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAErE"}
1
+ {"version":3,"file":"geometryState.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/geometryState.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAKvB,OAAO,EAAmB,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAA;AAatF,eAAO,MAAM,0BAA0B,IAAI,CAAA;AAG3C,eAAO,MAAM,uBAAuB,EAAE,SAAS,aAAa,EAA0B,CAAA;AAUtF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAuB5B,CAAA;AAEJ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAK/D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAErE"}
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod';
2
+ export declare const angleBisectorGoalSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ type: z.ZodLiteral<"angleBisector">;
5
+ objectType: z.ZodEnum<{
6
+ point: "point";
7
+ segment: "segment";
8
+ line: "line";
9
+ circle: "circle";
10
+ angle: "angle";
11
+ }>;
12
+ referenceAngleId: z.ZodString;
13
+ toleranceDegrees: z.ZodNumber;
14
+ }, z.core.$strict>;
15
+ export type AngleBisectorGoal = z.infer<typeof angleBisectorGoalSchema>;
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ export declare const angleBisectorGoalSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ type: z.ZodLiteral<"angleBisector">;
5
+ objectType: z.ZodEnum<{
6
+ point: "point";
7
+ segment: "segment";
8
+ line: "line";
9
+ circle: "circle";
10
+ angle: "angle";
11
+ }>;
12
+ referenceAngleId: z.ZodString;
13
+ toleranceDegrees: z.ZodNumber;
14
+ }, z.core.$strict>;
15
+ export type AngleBisectorGoal = z.infer<typeof angleBisectorGoalSchema>;
16
+ //# sourceMappingURL=angleBisectorGoal.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"angleBisectorGoal.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/goals/angleBisectorGoal.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;kBAUzB,CAAA;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { z } from 'zod';
2
+ export declare const angleTypeSchema: z.ZodEnum<{
3
+ acute: "acute";
4
+ right: "right";
5
+ obtuse: "obtuse";
6
+ straight: "straight";
7
+ reflex: "reflex";
8
+ }>;
9
+ /**
10
+ * What an angle goal asks of a measure (RFC 0006 § Decision 2): a degree with a
11
+ * tolerance, or a named type. A type takes no tolerance — "right, ± 2" is
12
+ * already `degrees` 90 ± 2 — so the strict member refuses one.
13
+ */
14
+ export declare const angleCriterionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
15
+ kind: z.ZodLiteral<"degrees">;
16
+ targetDegrees: z.ZodNumber;
17
+ toleranceDegrees: z.ZodNumber;
18
+ }, z.core.$strict>, z.ZodObject<{
19
+ kind: z.ZodLiteral<"type">;
20
+ angleType: z.ZodEnum<{
21
+ acute: "acute";
22
+ right: "right";
23
+ obtuse: "obtuse";
24
+ straight: "straight";
25
+ reflex: "reflex";
26
+ }>;
27
+ }, z.core.$strict>], "kind">;
28
+ export type AngleCriterion = z.infer<typeof angleCriterionSchema>;
@@ -0,0 +1,29 @@
1
+ import { z } from 'zod';
2
+ export declare const angleTypeSchema: z.ZodEnum<{
3
+ acute: "acute";
4
+ right: "right";
5
+ obtuse: "obtuse";
6
+ straight: "straight";
7
+ reflex: "reflex";
8
+ }>;
9
+ /**
10
+ * What an angle goal asks of a measure (RFC 0006 § Decision 2): a degree with a
11
+ * tolerance, or a named type. A type takes no tolerance — "right, ± 2" is
12
+ * already `degrees` 90 ± 2 — so the strict member refuses one.
13
+ */
14
+ export declare const angleCriterionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
15
+ kind: z.ZodLiteral<"degrees">;
16
+ targetDegrees: z.ZodNumber;
17
+ toleranceDegrees: z.ZodNumber;
18
+ }, z.core.$strict>, z.ZodObject<{
19
+ kind: z.ZodLiteral<"type">;
20
+ angleType: z.ZodEnum<{
21
+ acute: "acute";
22
+ right: "right";
23
+ obtuse: "obtuse";
24
+ straight: "straight";
25
+ reflex: "reflex";
26
+ }>;
27
+ }, z.core.$strict>], "kind">;
28
+ export type AngleCriterion = z.infer<typeof angleCriterionSchema>;
29
+ //# sourceMappingURL=angleCriterion.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"angleCriterion.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/goals/angleCriterion.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,eAAe;;;;;;EAA6D,CAAA;AAEzF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;4BAU/B,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { z } from 'zod';
2
+ export declare const angleMeasureGoalSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ type: z.ZodLiteral<"angleMeasure">;
5
+ objectType: z.ZodLiteral<"angle">;
6
+ vertexPointId: z.ZodString;
7
+ interpretation: z.ZodEnum<{
8
+ directed: "directed";
9
+ undirected: "undirected";
10
+ }>;
11
+ criterion: z.ZodDiscriminatedUnion<[z.ZodObject<{
12
+ kind: z.ZodLiteral<"degrees">;
13
+ targetDegrees: z.ZodNumber;
14
+ toleranceDegrees: z.ZodNumber;
15
+ }, z.core.$strict>, z.ZodObject<{
16
+ kind: z.ZodLiteral<"type">;
17
+ angleType: z.ZodEnum<{
18
+ acute: "acute";
19
+ right: "right";
20
+ obtuse: "obtuse";
21
+ straight: "straight";
22
+ reflex: "reflex";
23
+ }>;
24
+ }, z.core.$strict>], "kind">;
25
+ }, z.core.$strict>;
26
+ export type AngleMeasureGoal = z.infer<typeof angleMeasureGoalSchema>;
@@ -0,0 +1,27 @@
1
+ import { z } from 'zod';
2
+ export declare const angleMeasureGoalSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ type: z.ZodLiteral<"angleMeasure">;
5
+ objectType: z.ZodLiteral<"angle">;
6
+ vertexPointId: z.ZodString;
7
+ interpretation: z.ZodEnum<{
8
+ directed: "directed";
9
+ undirected: "undirected";
10
+ }>;
11
+ criterion: z.ZodDiscriminatedUnion<[z.ZodObject<{
12
+ kind: z.ZodLiteral<"degrees">;
13
+ targetDegrees: z.ZodNumber;
14
+ toleranceDegrees: z.ZodNumber;
15
+ }, z.core.$strict>, z.ZodObject<{
16
+ kind: z.ZodLiteral<"type">;
17
+ angleType: z.ZodEnum<{
18
+ acute: "acute";
19
+ right: "right";
20
+ obtuse: "obtuse";
21
+ straight: "straight";
22
+ reflex: "reflex";
23
+ }>;
24
+ }, z.core.$strict>], "kind">;
25
+ }, z.core.$strict>;
26
+ export type AngleMeasureGoal = z.infer<typeof angleMeasureGoalSchema>;
27
+ //# sourceMappingURL=angleMeasureGoal.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"angleMeasureGoal.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/goals/angleMeasureGoal.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;kBAWxB,CAAA;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA"}
@@ -7,6 +7,7 @@ export declare const createGoalSchema: z.ZodObject<{
7
7
  segment: "segment";
8
8
  line: "line";
9
9
  circle: "circle";
10
+ angle: "angle";
10
11
  }>;
11
12
  }, z.core.$strict>;
12
13
  export type CreateGoal = z.infer<typeof createGoalSchema>;
@@ -7,6 +7,7 @@ export declare const createGoalSchema: z.ZodObject<{
7
7
  segment: "segment";
8
8
  line: "line";
9
9
  circle: "circle";
10
+ angle: "angle";
10
11
  }>;
11
12
  }, z.core.$strict>;
12
13
  export type CreateGoal = z.infer<typeof createGoalSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"createGoal.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/goals/createGoal.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,gBAAgB;;;;;;;;;kBAMlB,CAAA;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA"}
1
+ {"version":3,"file":"createGoal.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/goals/createGoal.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,gBAAgB;;;;;;;;;;kBAMlB,CAAA;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA"}
@@ -7,6 +7,7 @@ export declare const geometryGoalSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7
7
  segment: "segment";
8
8
  line: "line";
9
9
  circle: "circle";
10
+ angle: "angle";
10
11
  }>;
11
12
  }, z.core.$strict>, z.ZodObject<{
12
13
  id: z.ZodString;
@@ -16,6 +17,7 @@ export declare const geometryGoalSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
16
17
  segment: "segment";
17
18
  line: "line";
18
19
  circle: "circle";
20
+ angle: "angle";
19
21
  }>;
20
22
  pointIds: z.ZodArray<z.ZodString>;
21
23
  }, z.core.$strict>, z.ZodObject<{
@@ -26,6 +28,7 @@ export declare const geometryGoalSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
26
28
  segment: "segment";
27
29
  line: "line";
28
30
  circle: "circle";
31
+ angle: "angle";
29
32
  }>;
30
33
  referenceObjectId: z.ZodString;
31
34
  throughPointId: z.ZodString;
@@ -38,6 +41,7 @@ export declare const geometryGoalSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
38
41
  segment: "segment";
39
42
  line: "line";
40
43
  circle: "circle";
44
+ angle: "angle";
41
45
  }>;
42
46
  referenceObjectId: z.ZodString;
43
47
  throughPointId: z.ZodString;
@@ -54,5 +58,62 @@ export declare const geometryGoalSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
54
58
  objectType: z.ZodLiteral<"point">;
55
59
  referenceObjectId: z.ZodString;
56
60
  toleranceUnits: z.ZodNumber;
61
+ }, z.core.$strict>, z.ZodObject<{
62
+ id: z.ZodString;
63
+ type: z.ZodLiteral<"angleMeasure">;
64
+ objectType: z.ZodLiteral<"angle">;
65
+ vertexPointId: z.ZodString;
66
+ interpretation: z.ZodEnum<{
67
+ directed: "directed";
68
+ undirected: "undirected";
69
+ }>;
70
+ criterion: z.ZodDiscriminatedUnion<[z.ZodObject<{
71
+ kind: z.ZodLiteral<"degrees">;
72
+ targetDegrees: z.ZodNumber;
73
+ toleranceDegrees: z.ZodNumber;
74
+ }, z.core.$strict>, z.ZodObject<{
75
+ kind: z.ZodLiteral<"type">;
76
+ angleType: z.ZodEnum<{
77
+ acute: "acute";
78
+ right: "right";
79
+ obtuse: "obtuse";
80
+ straight: "straight";
81
+ reflex: "reflex";
82
+ }>;
83
+ }, z.core.$strict>], "kind">;
84
+ }, z.core.$strict>, z.ZodObject<{
85
+ id: z.ZodString;
86
+ type: z.ZodLiteral<"angleBisector">;
87
+ objectType: z.ZodEnum<{
88
+ point: "point";
89
+ segment: "segment";
90
+ line: "line";
91
+ circle: "circle";
92
+ angle: "angle";
93
+ }>;
94
+ referenceAngleId: z.ZodString;
95
+ toleranceDegrees: z.ZodNumber;
96
+ }, z.core.$strict>, z.ZodObject<{
97
+ id: z.ZodString;
98
+ type: z.ZodLiteral<"givenAngle">;
99
+ angleId: z.ZodString;
100
+ interpretation: z.ZodEnum<{
101
+ directed: "directed";
102
+ undirected: "undirected";
103
+ }>;
104
+ criterion: z.ZodDiscriminatedUnion<[z.ZodObject<{
105
+ kind: z.ZodLiteral<"degrees">;
106
+ targetDegrees: z.ZodNumber;
107
+ toleranceDegrees: z.ZodNumber;
108
+ }, z.core.$strict>, z.ZodObject<{
109
+ kind: z.ZodLiteral<"type">;
110
+ angleType: z.ZodEnum<{
111
+ acute: "acute";
112
+ right: "right";
113
+ obtuse: "obtuse";
114
+ straight: "straight";
115
+ reflex: "reflex";
116
+ }>;
117
+ }, z.core.$strict>], "kind">;
57
118
  }, z.core.$strict>], "type">;
58
119
  export type GeometryGoal = z.infer<typeof geometryGoalSchema>;
@@ -7,6 +7,7 @@ export declare const geometryGoalSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
7
7
  segment: "segment";
8
8
  line: "line";
9
9
  circle: "circle";
10
+ angle: "angle";
10
11
  }>;
11
12
  }, z.core.$strict>, z.ZodObject<{
12
13
  id: z.ZodString;
@@ -16,6 +17,7 @@ export declare const geometryGoalSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
16
17
  segment: "segment";
17
18
  line: "line";
18
19
  circle: "circle";
20
+ angle: "angle";
19
21
  }>;
20
22
  pointIds: z.ZodArray<z.ZodString>;
21
23
  }, z.core.$strict>, z.ZodObject<{
@@ -26,6 +28,7 @@ export declare const geometryGoalSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
26
28
  segment: "segment";
27
29
  line: "line";
28
30
  circle: "circle";
31
+ angle: "angle";
29
32
  }>;
30
33
  referenceObjectId: z.ZodString;
31
34
  throughPointId: z.ZodString;
@@ -38,6 +41,7 @@ export declare const geometryGoalSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
38
41
  segment: "segment";
39
42
  line: "line";
40
43
  circle: "circle";
44
+ angle: "angle";
41
45
  }>;
42
46
  referenceObjectId: z.ZodString;
43
47
  throughPointId: z.ZodString;
@@ -54,6 +58,63 @@ export declare const geometryGoalSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
54
58
  objectType: z.ZodLiteral<"point">;
55
59
  referenceObjectId: z.ZodString;
56
60
  toleranceUnits: z.ZodNumber;
61
+ }, z.core.$strict>, z.ZodObject<{
62
+ id: z.ZodString;
63
+ type: z.ZodLiteral<"angleMeasure">;
64
+ objectType: z.ZodLiteral<"angle">;
65
+ vertexPointId: z.ZodString;
66
+ interpretation: z.ZodEnum<{
67
+ directed: "directed";
68
+ undirected: "undirected";
69
+ }>;
70
+ criterion: z.ZodDiscriminatedUnion<[z.ZodObject<{
71
+ kind: z.ZodLiteral<"degrees">;
72
+ targetDegrees: z.ZodNumber;
73
+ toleranceDegrees: z.ZodNumber;
74
+ }, z.core.$strict>, z.ZodObject<{
75
+ kind: z.ZodLiteral<"type">;
76
+ angleType: z.ZodEnum<{
77
+ acute: "acute";
78
+ right: "right";
79
+ obtuse: "obtuse";
80
+ straight: "straight";
81
+ reflex: "reflex";
82
+ }>;
83
+ }, z.core.$strict>], "kind">;
84
+ }, z.core.$strict>, z.ZodObject<{
85
+ id: z.ZodString;
86
+ type: z.ZodLiteral<"angleBisector">;
87
+ objectType: z.ZodEnum<{
88
+ point: "point";
89
+ segment: "segment";
90
+ line: "line";
91
+ circle: "circle";
92
+ angle: "angle";
93
+ }>;
94
+ referenceAngleId: z.ZodString;
95
+ toleranceDegrees: z.ZodNumber;
96
+ }, z.core.$strict>, z.ZodObject<{
97
+ id: z.ZodString;
98
+ type: z.ZodLiteral<"givenAngle">;
99
+ angleId: z.ZodString;
100
+ interpretation: z.ZodEnum<{
101
+ directed: "directed";
102
+ undirected: "undirected";
103
+ }>;
104
+ criterion: z.ZodDiscriminatedUnion<[z.ZodObject<{
105
+ kind: z.ZodLiteral<"degrees">;
106
+ targetDegrees: z.ZodNumber;
107
+ toleranceDegrees: z.ZodNumber;
108
+ }, z.core.$strict>, z.ZodObject<{
109
+ kind: z.ZodLiteral<"type">;
110
+ angleType: z.ZodEnum<{
111
+ acute: "acute";
112
+ right: "right";
113
+ obtuse: "obtuse";
114
+ straight: "straight";
115
+ reflex: "reflex";
116
+ }>;
117
+ }, z.core.$strict>], "kind">;
57
118
  }, z.core.$strict>], "type">;
58
119
  export type GeometryGoal = z.infer<typeof geometryGoalSchema>;
59
120
  //# sourceMappingURL=geometryGoal.schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"geometryGoal.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/goals/geometryGoal.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAQvB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAO7B,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA"}
1
+ {"version":3,"file":"geometryGoal.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/goals/geometryGoal.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAWvB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAU7B,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA"}
@@ -0,0 +1,35 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * The first **figure goal** (ADR 0016): it judges a given angle as the evaluated
4
+ * figure resolves it, rather than an entity the student built.
5
+ *
6
+ * An exercise that pins an angle's vertex and first arm and lets the student
7
+ * drag the second has no candidate to grade — a given is never a candidate
8
+ * (ADR 0008 § Amendment) — so its only subject is the figure itself. What makes
9
+ * that safe is the override invariant: an attempt may move an authorized point
10
+ * and nothing else, so the figure judged here is the exercise's.
11
+ */
12
+ export declare const givenAngleGoalSchema: z.ZodObject<{
13
+ id: z.ZodString;
14
+ type: z.ZodLiteral<"givenAngle">;
15
+ angleId: z.ZodString;
16
+ interpretation: z.ZodEnum<{
17
+ directed: "directed";
18
+ undirected: "undirected";
19
+ }>;
20
+ criterion: z.ZodDiscriminatedUnion<[z.ZodObject<{
21
+ kind: z.ZodLiteral<"degrees">;
22
+ targetDegrees: z.ZodNumber;
23
+ toleranceDegrees: z.ZodNumber;
24
+ }, z.core.$strict>, z.ZodObject<{
25
+ kind: z.ZodLiteral<"type">;
26
+ angleType: z.ZodEnum<{
27
+ acute: "acute";
28
+ right: "right";
29
+ obtuse: "obtuse";
30
+ straight: "straight";
31
+ reflex: "reflex";
32
+ }>;
33
+ }, z.core.$strict>], "kind">;
34
+ }, z.core.$strict>;
35
+ export type GivenAngleGoal = z.infer<typeof givenAngleGoalSchema>;