@edpear/sdk 1.1.7 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +141 -0
  2. package/dist/cli.js +262 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/features/analyzeHistoricalArtifact.d.ts +11 -0
  5. package/dist/features/analyzeHistoricalArtifact.d.ts.map +1 -0
  6. package/dist/features/analyzeHistoricalArtifact.js +33 -0
  7. package/dist/features/analyzeHistoricalArtifact.js.map +1 -0
  8. package/dist/features/checkLabSetup.d.ts +12 -0
  9. package/dist/features/checkLabSetup.d.ts.map +1 -0
  10. package/dist/features/checkLabSetup.js +31 -0
  11. package/dist/features/checkLabSetup.js.map +1 -0
  12. package/dist/features/debugMathSolution.d.ts +11 -0
  13. package/dist/features/debugMathSolution.d.ts.map +1 -0
  14. package/dist/features/debugMathSolution.js +29 -0
  15. package/dist/features/debugMathSolution.js.map +1 -0
  16. package/dist/features/generateSpatialFlashcards.d.ts +11 -0
  17. package/dist/features/generateSpatialFlashcards.d.ts.map +1 -0
  18. package/dist/features/generateSpatialFlashcards.js +36 -0
  19. package/dist/features/generateSpatialFlashcards.js.map +1 -0
  20. package/dist/features/gradeVisualRubric.d.ts +12 -0
  21. package/dist/features/gradeVisualRubric.d.ts.map +1 -0
  22. package/dist/features/gradeVisualRubric.js +42 -0
  23. package/dist/features/gradeVisualRubric.js.map +1 -0
  24. package/dist/features/reduceCognitiveLoad.d.ts +11 -0
  25. package/dist/features/reduceCognitiveLoad.d.ts.map +1 -0
  26. package/dist/features/reduceCognitiveLoad.js +33 -0
  27. package/dist/features/reduceCognitiveLoad.js.map +1 -0
  28. package/dist/features/storyboardToOutline.d.ts +11 -0
  29. package/dist/features/storyboardToOutline.d.ts.map +1 -0
  30. package/dist/features/storyboardToOutline.js +37 -0
  31. package/dist/features/storyboardToOutline.js.map +1 -0
  32. package/dist/features/translateManipulatives.d.ts +11 -0
  33. package/dist/features/translateManipulatives.d.ts.map +1 -0
  34. package/dist/features/translateManipulatives.js +37 -0
  35. package/dist/features/translateManipulatives.js.map +1 -0
  36. package/dist/features/types.d.ts +101 -0
  37. package/dist/features/types.d.ts.map +1 -0
  38. package/dist/features/types.js +5 -0
  39. package/dist/features/types.js.map +1 -0
  40. package/dist/features/verifyRealWorldConcept.d.ts +12 -0
  41. package/dist/features/verifyRealWorldConcept.d.ts.map +1 -0
  42. package/dist/features/verifyRealWorldConcept.js +31 -0
  43. package/dist/features/verifyRealWorldConcept.js.map +1 -0
  44. package/dist/features/whiteboardToCode.d.ts +12 -0
  45. package/dist/features/whiteboardToCode.d.ts.map +1 -0
  46. package/dist/features/whiteboardToCode.js +29 -0
  47. package/dist/features/whiteboardToCode.js.map +1 -0
  48. package/dist/index.d.ts +53 -0
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +111 -0
  51. package/dist/index.js.map +1 -1
  52. package/package.json +53 -53
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.debugMathSolution = debugMathSolution;
4
+ /**
5
+ * Analyzes a photo of multi-step handwritten math and pinpoints the exact line
6
+ * containing an error, returning the correct formula and a full explanation.
7
+ *
8
+ * @param analyzeImage - Bound reference to EdPearClient.analyzeImage
9
+ * @param image - Base64-encoded image string
10
+ */
11
+ async function debugMathSolution(analyzeImage, image) {
12
+ const prompt = `You are a math tutoring AI. Carefully examine this handwritten multi-step math solution.
13
+ Identify the FIRST line where an error occurs.
14
+ Return ONLY valid JSON (no markdown fences) matching this exact schema:
15
+ {
16
+ "errorAtLine": <integer – 1-indexed line number, or 0 if no error>,
17
+ "incorrectStep": "<the erroneous expression or equation as written>",
18
+ "correctFormula": "<the corrected expression or equation>",
19
+ "explanation": "<brief explanation of the mistake>",
20
+ "hints": ["<hint 1>", "<hint 2>"]
21
+ }`;
22
+ const response = await analyzeImage({ image, prompt, maxTokens: 512 });
23
+ const cleaned = response.result
24
+ .replace(/^```(?:json)?\s*/i, '')
25
+ .replace(/\s*```\s*$/, '')
26
+ .trim();
27
+ return JSON.parse(cleaned);
28
+ }
29
+ //# sourceMappingURL=debugMathSolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debugMathSolution.js","sourceRoot":"","sources":["../../src/features/debugMathSolution.ts"],"names":[],"mappings":";;AAUA,8CAoBC;AA3BD;;;;;;GAMG;AACI,KAAK,UAAU,iBAAiB,CACrC,YAA6D,EAC7D,KAAa;IAEb,MAAM,MAAM,GAAG;;;;;;;;;EASf,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM;SAC5B,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,IAAI,EAAE,CAAC;IACV,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAC;AAChD,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { VisionRequest, VisionResponse } from '../index';
2
+ import type { SpatialFlashcardsResult } from './types';
3
+ /**
4
+ * Takes a complex educational diagram and returns an array of image-occlusion
5
+ * style flashcard prompts keyed to specific regions of the diagram.
6
+ *
7
+ * @param analyzeImage - Bound reference to EdPearClient.analyzeImage
8
+ * @param image - Base64-encoded image string
9
+ */
10
+ export declare function generateSpatialFlashcards(analyzeImage: (req: VisionRequest) => Promise<VisionResponse>, image: string): Promise<SpatialFlashcardsResult>;
11
+ //# sourceMappingURL=generateSpatialFlashcards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateSpatialFlashcards.d.ts","sourceRoot":"","sources":["../../src/features/generateSpatialFlashcards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,cAAc,CAAC,EAC7D,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,uBAAuB,CAAC,CAwBlC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateSpatialFlashcards = generateSpatialFlashcards;
4
+ /**
5
+ * Takes a complex educational diagram and returns an array of image-occlusion
6
+ * style flashcard prompts keyed to specific regions of the diagram.
7
+ *
8
+ * @param analyzeImage - Bound reference to EdPearClient.analyzeImage
9
+ * @param image - Base64-encoded image string
10
+ */
11
+ async function generateSpatialFlashcards(analyzeImage, image) {
12
+ const prompt = `You are an educational content designer. Analyze this diagram and create image-occlusion flashcards.
13
+ For each important labeled region, concept, or component, generate one flashcard.
14
+ Return ONLY valid JSON matching this exact schema:
15
+ {
16
+ "diagramType": "<e.g. 'cell diagram', 'circuit schematic', 'geometric proof'>",
17
+ "totalCards": <integer>,
18
+ "flashcards": [
19
+ {
20
+ "id": "<string, e.g. 'fc-1'>",
21
+ "front": "<question text – ask to identify or explain the region>",
22
+ "back": "<answer text>",
23
+ "region": "<human-readable region descriptor, e.g. 'top-left', 'label A', 'inner circle'>",
24
+ "difficulty": "<easy|medium|hard>",
25
+ "tags": ["<tag1>", "<tag2>"]
26
+ }
27
+ ]
28
+ }`;
29
+ const response = await analyzeImage({ image, prompt, maxTokens: 1024 });
30
+ const cleaned = response.result
31
+ .replace(/^```(?:json)?\s*/i, '')
32
+ .replace(/\s*```\s*$/, '')
33
+ .trim();
34
+ return JSON.parse(cleaned);
35
+ }
36
+ //# sourceMappingURL=generateSpatialFlashcards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateSpatialFlashcards.js","sourceRoot":"","sources":["../../src/features/generateSpatialFlashcards.ts"],"names":[],"mappings":";;AAUA,8DA2BC;AAlCD;;;;;;GAMG;AACI,KAAK,UAAU,yBAAyB,CAC7C,YAA6D,EAC7D,KAAa;IAEb,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;EAgBf,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM;SAC5B,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,IAAI,EAAE,CAAC;IACV,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;AACxD,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { VisionRequest, VisionResponse } from '../index';
2
+ import type { VisualRubricResult } from './types';
3
+ /**
4
+ * Evaluates a creative or technical drawing against an array of rubric
5
+ * constraint strings (e.g. ["has vanishing point", "uses hatching for shade"]).
6
+ *
7
+ * @param analyzeImage - Bound reference to EdPearClient.analyzeImage
8
+ * @param image - Base64-encoded image string
9
+ * @param rubricConstraints - Array of constraint descriptions to evaluate
10
+ */
11
+ export declare function gradeVisualRubric(analyzeImage: (req: VisionRequest) => Promise<VisionResponse>, image: string, rubricConstraints: string[]): Promise<VisualRubricResult>;
12
+ //# sourceMappingURL=gradeVisualRubric.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gradeVisualRubric.d.ts","sourceRoot":"","sources":["../../src/features/gradeVisualRubric.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,YAAY,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,cAAc,CAAC,EAC7D,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,MAAM,EAAE,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CA6B7B"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.gradeVisualRubric = gradeVisualRubric;
4
+ /**
5
+ * Evaluates a creative or technical drawing against an array of rubric
6
+ * constraint strings (e.g. ["has vanishing point", "uses hatching for shade"]).
7
+ *
8
+ * @param analyzeImage - Bound reference to EdPearClient.analyzeImage
9
+ * @param image - Base64-encoded image string
10
+ * @param rubricConstraints - Array of constraint descriptions to evaluate
11
+ */
12
+ async function gradeVisualRubric(analyzeImage, image, rubricConstraints) {
13
+ const constraintList = rubricConstraints.map((c, i) => `${i + 1}. ${c}`).join('\n');
14
+ const prompt = `You are an art and technical drawing evaluator. Grade this drawing against the following rubric constraints:
15
+ ${constraintList}
16
+
17
+ For each constraint, assign a score of 0 (not met), 1 (partially met), or 2 (fully met).
18
+ Return ONLY valid JSON matching this exact schema:
19
+ {
20
+ "totalScore": <integer>,
21
+ "maxScore": ${rubricConstraints.length * 2},
22
+ "percentage": <float 0–100>,
23
+ "grade": "<A/B/C/D/F or descriptive>",
24
+ "breakdown": [
25
+ {
26
+ "constraint": "<constraint text>",
27
+ "passed": <true|false>,
28
+ "score": <0|1|2>,
29
+ "maxScore": 2,
30
+ "feedback": "<specific feedback>"
31
+ }
32
+ ],
33
+ "overallFeedback": "<paragraph of overall feedback>"
34
+ }`;
35
+ const response = await analyzeImage({ image, prompt, maxTokens: 1024 });
36
+ const cleaned = response.result
37
+ .replace(/^```(?:json)?\s*/i, '')
38
+ .replace(/\s*```\s*$/, '')
39
+ .trim();
40
+ return JSON.parse(cleaned);
41
+ }
42
+ //# sourceMappingURL=gradeVisualRubric.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gradeVisualRubric.js","sourceRoot":"","sources":["../../src/features/gradeVisualRubric.ts"],"names":[],"mappings":";;AAWA,8CAiCC;AAzCD;;;;;;;GAOG;AACI,KAAK,UAAU,iBAAiB,CACrC,YAA6D,EAC7D,KAAa,EACb,iBAA2B;IAE3B,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG;EACf,cAAc;;;;;;gBAMA,iBAAiB,CAAC,MAAM,GAAG,CAAC;;;;;;;;;;;;;EAa1C,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM;SAC5B,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,IAAI,EAAE,CAAC;IACV,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAuB,CAAC;AACnD,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { VisionRequest, VisionResponse } from '../index';
2
+ import type { CognitiveLoadResult } from './types';
3
+ /**
4
+ * Extracts dense textbook or whiteboard text from an image and reformats it
5
+ * into high-contrast, bulleted, dyslexia-friendly markdown.
6
+ *
7
+ * @param analyzeImage - Bound reference to EdPearClient.analyzeImage
8
+ * @param image - Base64-encoded image string
9
+ */
10
+ export declare function reduceCognitiveLoad(analyzeImage: (req: VisionRequest) => Promise<VisionResponse>, image: string): Promise<CognitiveLoadResult>;
11
+ //# sourceMappingURL=reduceCognitiveLoad.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reduceCognitiveLoad.d.ts","sourceRoot":"","sources":["../../src/features/reduceCognitiveLoad.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,cAAc,CAAC,EAC7D,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,mBAAmB,CAAC,CAqB9B"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.reduceCognitiveLoad = reduceCognitiveLoad;
4
+ /**
5
+ * Extracts dense textbook or whiteboard text from an image and reformats it
6
+ * into high-contrast, bulleted, dyslexia-friendly markdown.
7
+ *
8
+ * @param analyzeImage - Bound reference to EdPearClient.analyzeImage
9
+ * @param image - Base64-encoded image string
10
+ */
11
+ async function reduceCognitiveLoad(analyzeImage, image) {
12
+ const prompt = `You are an accessibility and learning-design specialist. The student has a learning difficulty such as dyslexia.
13
+ Extract all text and diagrams from this image and reformat them into clean, accessible markdown using:
14
+ - Short sentences (max 15 words each)
15
+ - Bullet points instead of paragraphs
16
+ - Bold key terms
17
+ - Clear headings
18
+
19
+ Return ONLY valid JSON matching this exact schema:
20
+ {
21
+ "markdown": "<the fully reformatted markdown string>",
22
+ "keyTerms": ["<term1>", "<term2>"],
23
+ "summary": "<2–3 sentence plain-language summary>",
24
+ "readingLevel": "<e.g. 'Grade 5', 'Simple', 'Technical'>"
25
+ }`;
26
+ const response = await analyzeImage({ image, prompt, maxTokens: 1024 });
27
+ const cleaned = response.result
28
+ .replace(/^```(?:json)?\s*/i, '')
29
+ .replace(/\s*```\s*$/, '')
30
+ .trim();
31
+ return JSON.parse(cleaned);
32
+ }
33
+ //# sourceMappingURL=reduceCognitiveLoad.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reduceCognitiveLoad.js","sourceRoot":"","sources":["../../src/features/reduceCognitiveLoad.ts"],"names":[],"mappings":";;AAUA,kDAwBC;AA/BD;;;;;;GAMG;AACI,KAAK,UAAU,mBAAmB,CACvC,YAA6D,EAC7D,KAAa;IAEb,MAAM,MAAM,GAAG;;;;;;;;;;;;;EAaf,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM;SAC5B,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,IAAI,EAAE,CAAC;IACV,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAwB,CAAC;AACpD,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { VisionRequest, VisionResponse } from '../index';
2
+ import type { StoryboardOutlineResult } from './types';
3
+ /**
4
+ * Converts a photo of sticky-note storyboards or hand-drawn mind maps into a
5
+ * structured, hierarchical JSON outline.
6
+ *
7
+ * @param analyzeImage - Bound reference to EdPearClient.analyzeImage
8
+ * @param image - Base64-encoded image string
9
+ */
10
+ export declare function storyboardToOutline(analyzeImage: (req: VisionRequest) => Promise<VisionResponse>, image: string): Promise<StoryboardOutlineResult>;
11
+ //# sourceMappingURL=storyboardToOutline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storyboardToOutline.d.ts","sourceRoot":"","sources":["../../src/features/storyboardToOutline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAEvD;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,cAAc,CAAC,EAC7D,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,uBAAuB,CAAC,CAyBlC"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.storyboardToOutline = storyboardToOutline;
4
+ /**
5
+ * Converts a photo of sticky-note storyboards or hand-drawn mind maps into a
6
+ * structured, hierarchical JSON outline.
7
+ *
8
+ * @param analyzeImage - Bound reference to EdPearClient.analyzeImage
9
+ * @param image - Base64-encoded image string
10
+ */
11
+ async function storyboardToOutline(analyzeImage, image) {
12
+ const prompt = `You are an information architect and project-planning AI. Analyze this image of sticky notes, a whiteboard mind map, or a hand-drawn storyboard.
13
+ Convert the visual structure into a hierarchical text outline.
14
+ Return ONLY valid JSON matching this exact schema:
15
+ {
16
+ "title": "<inferred overall topic or project title>",
17
+ "totalNodes": <integer>,
18
+ "nodes": [
19
+ {
20
+ "id": "<string, e.g. 'n-0'>",
21
+ "text": "<the text content of this node or sticky note>",
22
+ "level": <0 for root, 1 for main branches, 2 for sub-items, etc.>,
23
+ "children": ["<child node id 1>", "<child node id 2>"],
24
+ "notes": "<any extra annotation or arrow text>"
25
+ }
26
+ ],
27
+ "linearSummary": "<a paragraph describing the outline in reading order>"
28
+ }
29
+ Ensure the nodes array includes the root node (level 0) and all descendant nodes.`;
30
+ const response = await analyzeImage({ image, prompt, maxTokens: 1024 });
31
+ const cleaned = response.result
32
+ .replace(/^```(?:json)?\s*/i, '')
33
+ .replace(/\s*```\s*$/, '')
34
+ .trim();
35
+ return JSON.parse(cleaned);
36
+ }
37
+ //# sourceMappingURL=storyboardToOutline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storyboardToOutline.js","sourceRoot":"","sources":["../../src/features/storyboardToOutline.ts"],"names":[],"mappings":";;AAUA,kDA4BC;AAnCD;;;;;;GAMG;AACI,KAAK,UAAU,mBAAmB,CACvC,YAA6D,EAC7D,KAAa;IAEb,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;kFAiBiE,CAAC;IACjF,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM;SAC5B,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,IAAI,EAAE,CAAC;IACV,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;AACxD,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { VisionRequest, VisionResponse } from '../index';
2
+ import type { ManipulativesResult } from './types';
3
+ /**
4
+ * Analyzes physical educational manipulative blocks or arrangements on a desk
5
+ * (e.g. base-10 blocks, fraction tiles) and returns a structured digital state.
6
+ *
7
+ * @param analyzeImage - Bound reference to EdPearClient.analyzeImage
8
+ * @param image - Base64-encoded image string
9
+ */
10
+ export declare function translateManipulatives(analyzeImage: (req: VisionRequest) => Promise<VisionResponse>, image: string): Promise<ManipulativesResult>;
11
+ //# sourceMappingURL=translateManipulatives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translateManipulatives.d.ts","sourceRoot":"","sources":["../../src/features/translateManipulatives.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,cAAc,CAAC,EAC7D,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,mBAAmB,CAAC,CAyB9B"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.translateManipulatives = translateManipulatives;
4
+ /**
5
+ * Analyzes physical educational manipulative blocks or arrangements on a desk
6
+ * (e.g. base-10 blocks, fraction tiles) and returns a structured digital state.
7
+ *
8
+ * @param analyzeImage - Bound reference to EdPearClient.analyzeImage
9
+ * @param image - Base64-encoded image string
10
+ */
11
+ async function translateManipulatives(analyzeImage, image) {
12
+ const prompt = `You are an educational manipulative interpreter. Analyze this photo of physical educational objects (blocks, tiles, counters, etc.) arranged on a surface.
13
+ Identify each individual piece, its type, value, and position.
14
+ Return ONLY valid JSON matching this exact schema:
15
+ {
16
+ "blocks": [
17
+ {
18
+ "id": "<string, e.g. 'b-1'>",
19
+ "type": "<e.g. 'tens-block', 'unit-cube', 'fraction-tile', 'pattern-tile'>",
20
+ "value": "<numeric or label value>",
21
+ "position": "<human-readable position, e.g. 'row 1 col 2'>",
22
+ "color": "<color if identifiable>"
23
+ }
24
+ ],
25
+ "totalValue": "<numeric total or expression if applicable>",
26
+ "arrangement": "<description of the overall arrangement or pattern>",
27
+ "digitalState": { "<key>": "<value>" },
28
+ "interpretation": "<what mathematical or educational concept this arrangement represents>"
29
+ }`;
30
+ const response = await analyzeImage({ image, prompt, maxTokens: 768 });
31
+ const cleaned = response.result
32
+ .replace(/^```(?:json)?\s*/i, '')
33
+ .replace(/\s*```\s*$/, '')
34
+ .trim();
35
+ return JSON.parse(cleaned);
36
+ }
37
+ //# sourceMappingURL=translateManipulatives.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translateManipulatives.js","sourceRoot":"","sources":["../../src/features/translateManipulatives.ts"],"names":[],"mappings":";;AAUA,wDA4BC;AAnCD;;;;;;GAMG;AACI,KAAK,UAAU,sBAAsB,CAC1C,YAA6D,EAC7D,KAAa;IAEb,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;EAiBf,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM;SAC5B,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,IAAI,EAAE,CAAC;IACV,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAwB,CAAC;AACpD,CAAC"}
@@ -0,0 +1,101 @@
1
+ export interface MathDebugResult {
2
+ errorAtLine: number;
3
+ incorrectStep: string;
4
+ correctFormula: string;
5
+ explanation: string;
6
+ hints: string[];
7
+ }
8
+ export interface ConceptVerificationResult {
9
+ matches: boolean;
10
+ confidence: number;
11
+ concept: string;
12
+ explanation: string;
13
+ visualEvidence: string[];
14
+ suggestedCorrection?: string;
15
+ }
16
+ export interface LabCheckResult {
17
+ overallCorrect: boolean;
18
+ safetyIssues: string[];
19
+ correctnessIssues: string[];
20
+ recommendations: string[];
21
+ riskLevel: 'low' | 'medium' | 'high';
22
+ }
23
+ export interface Flashcard {
24
+ id: string;
25
+ front: string;
26
+ back: string;
27
+ region: string;
28
+ difficulty: 'easy' | 'medium' | 'hard';
29
+ tags: string[];
30
+ }
31
+ export interface SpatialFlashcardsResult {
32
+ flashcards: Flashcard[];
33
+ diagramType: string;
34
+ totalCards: number;
35
+ }
36
+ export interface WhiteboardCodeResult {
37
+ output: string;
38
+ format: 'latex' | 'python' | 'pseudocode' | 'markdown' | string;
39
+ explanation: string;
40
+ variables?: Record<string, string>;
41
+ }
42
+ export interface RubricItem {
43
+ constraint: string;
44
+ passed: boolean;
45
+ score: number;
46
+ maxScore: number;
47
+ feedback: string;
48
+ }
49
+ export interface VisualRubricResult {
50
+ totalScore: number;
51
+ maxScore: number;
52
+ percentage: number;
53
+ grade: string;
54
+ breakdown: RubricItem[];
55
+ overallFeedback: string;
56
+ }
57
+ export interface CognitiveLoadResult {
58
+ markdown: string;
59
+ keyTerms: string[];
60
+ summary: string;
61
+ readingLevel: string;
62
+ }
63
+ export interface ManipulativeBlock {
64
+ id: string;
65
+ type: string;
66
+ value: string;
67
+ position: string;
68
+ color?: string;
69
+ }
70
+ export interface ManipulativesResult {
71
+ blocks: ManipulativeBlock[];
72
+ totalValue?: number | string;
73
+ arrangement: string;
74
+ digitalState: Record<string, unknown>;
75
+ interpretation: string;
76
+ }
77
+ export interface HistoricalArtifactResult {
78
+ title: string;
79
+ period: string;
80
+ origin: string;
81
+ medium?: string;
82
+ techniques: string[];
83
+ historicalContext: string;
84
+ significance: string;
85
+ primarySourceNotes?: string;
86
+ relatedTopics: string[];
87
+ }
88
+ export interface OutlineNode {
89
+ id: string;
90
+ text: string;
91
+ level: number;
92
+ children: string[];
93
+ notes?: string;
94
+ }
95
+ export interface StoryboardOutlineResult {
96
+ title: string;
97
+ totalNodes: number;
98
+ nodes: OutlineNode[];
99
+ linearSummary: string;
100
+ }
101
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/features/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // ─── Feature Response Types ──────────────────────────────────────────────────
3
+ // All structured response types for the 10 EdPear educational AI wrappers.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/features/types.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,2EAA2E"}
@@ -0,0 +1,12 @@
1
+ import type { VisionRequest, VisionResponse } from '../index';
2
+ import type { ConceptVerificationResult } from './types';
3
+ /**
4
+ * Validates whether a user's photograph visually demonstrates a specific
5
+ * physics or geometry concept (e.g. "acute angle", "tension", "buoyancy").
6
+ *
7
+ * @param analyzeImage - Bound reference to EdPearClient.analyzeImage
8
+ * @param image - Base64-encoded image string
9
+ * @param concept - The concept to verify (e.g. "acute angle")
10
+ */
11
+ export declare function verifyRealWorldConcept(analyzeImage: (req: VisionRequest) => Promise<VisionResponse>, image: string, concept: string): Promise<ConceptVerificationResult>;
12
+ //# sourceMappingURL=verifyRealWorldConcept.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyRealWorldConcept.d.ts","sourceRoot":"","sources":["../../src/features/verifyRealWorldConcept.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEzD;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,cAAc,CAAC,EAC7D,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,yBAAyB,CAAC,CAkBpC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verifyRealWorldConcept = verifyRealWorldConcept;
4
+ /**
5
+ * Validates whether a user's photograph visually demonstrates a specific
6
+ * physics or geometry concept (e.g. "acute angle", "tension", "buoyancy").
7
+ *
8
+ * @param analyzeImage - Bound reference to EdPearClient.analyzeImage
9
+ * @param image - Base64-encoded image string
10
+ * @param concept - The concept to verify (e.g. "acute angle")
11
+ */
12
+ async function verifyRealWorldConcept(analyzeImage, image, concept) {
13
+ const prompt = `You are a science and geometry tutor. The student claims this photo demonstrates the concept: "${concept}".
14
+ Assess whether the image genuinely illustrates that concept.
15
+ Return ONLY valid JSON matching this exact schema:
16
+ {
17
+ "matches": <true|false>,
18
+ "confidence": <float 0.0–1.0>,
19
+ "concept": "${concept}",
20
+ "explanation": "<why it matches or does not>",
21
+ "visualEvidence": ["<evidence item 1>", "<evidence item 2>"],
22
+ "suggestedCorrection": "<optional – what the student should change to correctly show the concept>"
23
+ }`;
24
+ const response = await analyzeImage({ image, prompt, maxTokens: 512 });
25
+ const cleaned = response.result
26
+ .replace(/^```(?:json)?\s*/i, '')
27
+ .replace(/\s*```\s*$/, '')
28
+ .trim();
29
+ return JSON.parse(cleaned);
30
+ }
31
+ //# sourceMappingURL=verifyRealWorldConcept.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyRealWorldConcept.js","sourceRoot":"","sources":["../../src/features/verifyRealWorldConcept.ts"],"names":[],"mappings":";;AAWA,wDAsBC;AA9BD;;;;;;;GAOG;AACI,KAAK,UAAU,sBAAsB,CAC1C,YAA6D,EAC7D,KAAa,EACb,OAAe;IAEf,MAAM,MAAM,GAAG,kGAAkG,OAAO;;;;;;gBAM1G,OAAO;;;;EAIrB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM;SAC5B,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,IAAI,EAAE,CAAC;IACV,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAA8B,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { VisionRequest, VisionResponse } from '../index';
2
+ import type { WhiteboardCodeResult } from './types';
3
+ /**
4
+ * Translates whiteboard content to a target format:
5
+ * equations → LaTeX, flowcharts → Python pseudocode, etc.
6
+ *
7
+ * @param analyzeImage - Bound reference to EdPearClient.analyzeImage
8
+ * @param image - Base64-encoded image string
9
+ * @param targetFormat - Target output format: 'latex' | 'python' | 'pseudocode' | 'markdown'
10
+ */
11
+ export declare function whiteboardToCode(analyzeImage: (req: VisionRequest) => Promise<VisionResponse>, image: string, targetFormat?: string): Promise<WhiteboardCodeResult>;
12
+ //# sourceMappingURL=whiteboardToCode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whiteboardToCode.d.ts","sourceRoot":"","sources":["../../src/features/whiteboardToCode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,cAAc,CAAC,EAC7D,KAAK,EAAE,MAAM,EACb,YAAY,GAAE,MAAgB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAgB/B"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.whiteboardToCode = whiteboardToCode;
4
+ /**
5
+ * Translates whiteboard content to a target format:
6
+ * equations → LaTeX, flowcharts → Python pseudocode, etc.
7
+ *
8
+ * @param analyzeImage - Bound reference to EdPearClient.analyzeImage
9
+ * @param image - Base64-encoded image string
10
+ * @param targetFormat - Target output format: 'latex' | 'python' | 'pseudocode' | 'markdown'
11
+ */
12
+ async function whiteboardToCode(analyzeImage, image, targetFormat = 'latex') {
13
+ const prompt = `You are a technical transcription AI. Convert the whiteboard content in this image to ${targetFormat}.
14
+ If equations are present, translate them. If flowcharts/logic diagrams are present, convert to ${targetFormat} pseudocode or code.
15
+ Return ONLY valid JSON matching this exact schema:
16
+ {
17
+ "output": "<the full converted ${targetFormat} output as a single string>",
18
+ "format": "${targetFormat}",
19
+ "explanation": "<brief description of what was on the whiteboard and how it was converted>",
20
+ "variables": { "<varName>": "<description>" }
21
+ }`;
22
+ const response = await analyzeImage({ image, prompt, maxTokens: 1024 });
23
+ const cleaned = response.result
24
+ .replace(/^```(?:json)?\s*/i, '')
25
+ .replace(/\s*```\s*$/, '')
26
+ .trim();
27
+ return JSON.parse(cleaned);
28
+ }
29
+ //# sourceMappingURL=whiteboardToCode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whiteboardToCode.js","sourceRoot":"","sources":["../../src/features/whiteboardToCode.ts"],"names":[],"mappings":";;AAWA,4CAoBC;AA5BD;;;;;;;GAOG;AACI,KAAK,UAAU,gBAAgB,CACpC,YAA6D,EAC7D,KAAa,EACb,eAAuB,OAAO;IAE9B,MAAM,MAAM,GAAG,yFAAyF,YAAY;iGACrB,YAAY;;;mCAG1E,YAAY;eAChC,YAAY;;;EAGzB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM;SAC5B,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;SAChC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,IAAI,EAAE,CAAC;IACV,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAyB,CAAC;AACrD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import type { MathDebugResult, ConceptVerificationResult, LabCheckResult, SpatialFlashcardsResult, WhiteboardCodeResult, VisualRubricResult, CognitiveLoadResult, ManipulativesResult, HistoricalArtifactResult, StoryboardOutlineResult } from './features/types';
2
+ export * from './features/types';
1
3
  export interface VisionRequest {
2
4
  image?: string;
3
5
  prompt: string;
@@ -44,6 +46,57 @@ export declare class EdPearClient {
44
46
  credits: number;
45
47
  user: any;
46
48
  }>;
49
+ private parseJsonResult;
50
+ /**
51
+ * Analyzes a photo of multi-step handwritten math and pinpoints the exact line
52
+ * containing an error, returning the correct formula and an explanation.
53
+ */
54
+ debugMathSolution(image: string): Promise<MathDebugResult>;
55
+ /**
56
+ * Validates whether a user's photograph visually demonstrates a specific
57
+ * physics or geometry concept (e.g. "acute angle", "tension", "buoyancy").
58
+ */
59
+ verifyRealWorldConcept(image: string, concept: string): Promise<ConceptVerificationResult>;
60
+ /**
61
+ * Verifies physical lab equipment or circuit wiring against an expected
62
+ * experiment type, reporting safety issues and correctness problems.
63
+ */
64
+ checkLabSetup(image: string, experimentType: string): Promise<LabCheckResult>;
65
+ /**
66
+ * Takes a complex educational diagram and returns an array of image-occlusion
67
+ * style flashcard prompts keyed to specific regions of the diagram.
68
+ */
69
+ generateSpatialFlashcards(image: string): Promise<SpatialFlashcardsResult>;
70
+ /**
71
+ * Translates whiteboard content: equations → LaTeX, flowcharts → Python
72
+ * pseudocode, or other formats as specified by `targetFormat`.
73
+ */
74
+ whiteboardToCode(image: string, targetFormat?: string): Promise<WhiteboardCodeResult>;
75
+ /**
76
+ * Evaluates a creative or technical drawing against an array of rubric
77
+ * constraint strings (e.g. ["has vanishing point", "uses hatching for shade"]).
78
+ */
79
+ gradeVisualRubric(image: string, rubricConstraints: string[]): Promise<VisualRubricResult>;
80
+ /**
81
+ * Extracts dense textbook or whiteboard text from an image and reformats it
82
+ * into high-contrast, bulleted, dyslexia-friendly markdown.
83
+ */
84
+ reduceCognitiveLoad(image: string): Promise<CognitiveLoadResult>;
85
+ /**
86
+ * Analyzes physical educational manipulative blocks or arrangements on a desk
87
+ * (e.g. base-10 blocks, fraction tiles) and returns a digital state object.
88
+ */
89
+ translateManipulatives(image: string): Promise<ManipulativesResult>;
90
+ /**
91
+ * Acts as an AR museum docent: identifies a historical artifact, artwork, or
92
+ * primary source document and returns rich contextual information.
93
+ */
94
+ analyzeHistoricalArtifact(image: string): Promise<HistoricalArtifactResult>;
95
+ /**
96
+ * Converts a photo of sticky-note storyboards or hand-drawn mind maps into a
97
+ * structured, hierarchical JSON outline.
98
+ */
99
+ storyboardToOutline(image: string): Promise<StoryboardOutlineResult>;
47
100
  }
48
101
  export declare function createEdPearClient(apiKey: string, baseURL?: string): EdPearClient;
49
102
  export default EdPearClient;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,YAAY;IAKhC;;;;OAIG;IACG,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAInE;;;;;OAKG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;YAO7F,cAAc;IA2B5B;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,CAAC;CAa3D;AAGD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAEjF;AAGD,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EACzB,cAAc,EACd,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,kBAAkB,CAAC;AAY1B,cAAc,kBAAkB,CAAC;AAEjC,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,YAAY;IAKhC;;;;OAIG;IACG,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAInE;;;;;OAKG;IACG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;YAO7F,cAAc;IA2B5B;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,CAAC;IAgB1D,OAAO,CAAC,eAAe;IAQvB;;;OAGG;IACG,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAMhE;;;OAGG;IACG,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAMhG;;;OAGG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMnF;;;OAGG;IACG,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAMhF;;;OAGG;IACG,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,GAAE,MAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAMpG;;;OAGG;IACG,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAMhG;;;OAGG;IACG,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMtE;;;OAGG;IACG,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMzE;;;OAGG;IACG,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAMjF;;;OAGG;IACG,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAG3E;AAGD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAEjF;AAGD,eAAe,YAAY,CAAC"}