@pie-players/pie-assessment-toolkit 0.2.7 → 0.2.9

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 (220) hide show
  1. package/README.md +200 -67
  2. package/dist/attempt/TestSession.d.ts +23 -21
  3. package/dist/attempt/TestSession.d.ts.map +1 -1
  4. package/dist/attempt/TestSession.js +17 -15
  5. package/dist/attempt/TestSession.js.map +1 -1
  6. package/dist/attempt/adapters/activity-to-test-attempt-session.d.ts +50 -0
  7. package/dist/attempt/adapters/activity-to-test-attempt-session.d.ts.map +1 -0
  8. package/dist/attempt/adapters/activity-to-test-attempt-session.js +135 -0
  9. package/dist/attempt/adapters/activity-to-test-attempt-session.js.map +1 -0
  10. package/dist/components/ItemToolBar.custom-element.js +628 -0
  11. package/dist/components/PieAssessmentToolkit.custom-element.js +670 -0
  12. package/dist/components/item-toolbar-element.d.ts +3 -0
  13. package/dist/components/item-toolbar-element.d.ts.map +1 -0
  14. package/dist/components/item-toolbar-element.js +2 -0
  15. package/dist/components/item-toolbar-element.js.map +1 -0
  16. package/dist/components/pie-assessment-toolkit-element.d.ts +3 -0
  17. package/dist/components/pie-assessment-toolkit-element.d.ts.map +1 -0
  18. package/dist/components/pie-assessment-toolkit-element.js +2 -0
  19. package/dist/components/pie-assessment-toolkit-element.js.map +1 -0
  20. package/dist/context/assessment-toolkit-context.d.ts +52 -0
  21. package/dist/context/assessment-toolkit-context.d.ts.map +1 -0
  22. package/dist/context/assessment-toolkit-context.js +6 -0
  23. package/dist/context/assessment-toolkit-context.js.map +1 -0
  24. package/dist/context/runtime-context-consumer.d.ts +14 -0
  25. package/dist/context/runtime-context-consumer.d.ts.map +1 -0
  26. package/dist/context/runtime-context-consumer.js +52 -0
  27. package/dist/context/runtime-context-consumer.js.map +1 -0
  28. package/dist/index.d.ts +16 -5
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +13 -11
  31. package/dist/index.js.map +1 -1
  32. package/dist/runtime/RuntimeRegistry.d.ts +13 -0
  33. package/dist/runtime/RuntimeRegistry.d.ts.map +1 -0
  34. package/dist/runtime/RuntimeRegistry.js +50 -0
  35. package/dist/runtime/RuntimeRegistry.js.map +1 -0
  36. package/dist/runtime/SectionRuntimeEngine.d.ts +45 -0
  37. package/dist/runtime/SectionRuntimeEngine.d.ts.map +1 -0
  38. package/dist/runtime/SectionRuntimeEngine.js +81 -0
  39. package/dist/runtime/SectionRuntimeEngine.js.map +1 -0
  40. package/dist/runtime/registration-events.d.ts +19 -0
  41. package/dist/runtime/registration-events.d.ts.map +1 -0
  42. package/dist/runtime/registration-events.js +4 -0
  43. package/dist/runtime/registration-events.js.map +1 -0
  44. package/dist/runtime/runtime-event-guards.d.ts +3 -0
  45. package/dist/runtime/runtime-event-guards.d.ts.map +1 -0
  46. package/dist/runtime/runtime-event-guards.js +9 -0
  47. package/dist/runtime/runtime-event-guards.js.map +1 -0
  48. package/dist/runtime/tool-host-contract.d.ts +30 -0
  49. package/dist/runtime/tool-host-contract.d.ts.map +1 -0
  50. package/dist/runtime/tool-host-contract.js +48 -0
  51. package/dist/runtime/tool-host-contract.js.map +1 -0
  52. package/dist/services/TTSService.d.ts +3 -1
  53. package/dist/services/TTSService.d.ts.map +1 -1
  54. package/dist/services/TTSService.js +13 -12
  55. package/dist/services/TTSService.js.map +1 -1
  56. package/dist/services/ThemeProvider.d.ts +1 -0
  57. package/dist/services/ThemeProvider.d.ts.map +1 -1
  58. package/dist/services/ThemeProvider.js +82 -46
  59. package/dist/services/ThemeProvider.js.map +1 -1
  60. package/dist/services/ToolConfigResolver.d.ts +1 -1
  61. package/dist/services/ToolConfigResolver.js +1 -1
  62. package/dist/services/ToolCoordinator.d.ts +1 -1
  63. package/dist/services/ToolCoordinator.d.ts.map +1 -1
  64. package/dist/services/ToolRegistry.d.ts +64 -67
  65. package/dist/services/ToolRegistry.d.ts.map +1 -1
  66. package/dist/services/ToolRegistry.js +72 -22
  67. package/dist/services/ToolRegistry.js.map +1 -1
  68. package/dist/services/ToolkitCoordinator.d.ts +106 -8
  69. package/dist/services/ToolkitCoordinator.d.ts.map +1 -1
  70. package/dist/services/ToolkitCoordinator.js +502 -71
  71. package/dist/services/ToolkitCoordinator.js.map +1 -1
  72. package/dist/services/createDefaultToolRegistry.d.ts +12 -7
  73. package/dist/services/createDefaultToolRegistry.d.ts.map +1 -1
  74. package/dist/services/createDefaultToolRegistry.js +6 -10
  75. package/dist/services/createDefaultToolRegistry.js.map +1 -1
  76. package/dist/services/defaultPersonalNeedsProfile.d.ts +4 -0
  77. package/dist/services/defaultPersonalNeedsProfile.d.ts.map +1 -0
  78. package/dist/services/defaultPersonalNeedsProfile.js +25 -0
  79. package/dist/services/defaultPersonalNeedsProfile.js.map +1 -0
  80. package/dist/services/interfaces.d.ts +61 -1
  81. package/dist/services/interfaces.d.ts.map +1 -1
  82. package/dist/services/interfaces.js.map +1 -1
  83. package/dist/services/pnp-standard-features.d.ts +3 -4
  84. package/dist/services/pnp-standard-features.d.ts.map +1 -1
  85. package/dist/services/pnp-standard-features.js +0 -3
  86. package/dist/services/pnp-standard-features.js.map +1 -1
  87. package/dist/services/section-controller-types.d.ts +32 -0
  88. package/dist/services/section-controller-types.d.ts.map +1 -0
  89. package/dist/services/section-controller-types.js +2 -0
  90. package/dist/services/section-controller-types.js.map +1 -0
  91. package/dist/services/tool-context.d.ts +4 -4
  92. package/dist/services/tool-context.d.ts.map +1 -1
  93. package/dist/services/tool-context.js +106 -17
  94. package/dist/services/tool-context.js.map +1 -1
  95. package/dist/services/tool-instance-id.d.ts +17 -0
  96. package/dist/services/tool-instance-id.d.ts.map +1 -0
  97. package/dist/services/tool-instance-id.js +61 -0
  98. package/dist/services/tool-instance-id.js.map +1 -0
  99. package/dist/services/tool-providers/IToolProvider.d.ts +2 -3
  100. package/dist/services/tool-providers/IToolProvider.d.ts.map +1 -1
  101. package/dist/services/tool-providers/IToolProvider.js +1 -2
  102. package/dist/services/tool-providers/IToolProvider.js.map +1 -1
  103. package/dist/services/tool-providers/MathJsToolProvider.d.ts +25 -0
  104. package/dist/services/tool-providers/MathJsToolProvider.d.ts.map +1 -0
  105. package/dist/services/tool-providers/MathJsToolProvider.js +53 -0
  106. package/dist/services/tool-providers/MathJsToolProvider.js.map +1 -0
  107. package/dist/services/tool-providers/index.d.ts +2 -0
  108. package/dist/services/tool-providers/index.d.ts.map +1 -1
  109. package/dist/services/tool-providers/index.js +1 -0
  110. package/dist/services/tool-providers/index.js.map +1 -1
  111. package/dist/services/tools-config-normalizer.d.ts +26 -0
  112. package/dist/services/tools-config-normalizer.d.ts.map +1 -0
  113. package/dist/services/tools-config-normalizer.js +63 -0
  114. package/dist/services/tools-config-normalizer.js.map +1 -0
  115. package/dist/tools/calculators/ti-provider.d.ts.map +1 -1
  116. package/dist/tools/calculators/ti-provider.js +127 -4
  117. package/dist/tools/calculators/ti-provider.js.map +1 -1
  118. package/dist/tools/client.d.ts +2 -1
  119. package/dist/tools/client.d.ts.map +1 -1
  120. package/dist/tools/client.js +2 -1
  121. package/dist/tools/client.js.map +1 -1
  122. package/dist/tools/default-tool-module-loaders.d.ts +9 -0
  123. package/dist/tools/default-tool-module-loaders.d.ts.map +1 -0
  124. package/dist/tools/default-tool-module-loaders.js +17 -0
  125. package/dist/tools/default-tool-module-loaders.js.map +1 -0
  126. package/dist/tools/index.d.ts +2 -1
  127. package/dist/tools/index.d.ts.map +1 -1
  128. package/dist/tools/index.js +2 -1
  129. package/dist/tools/index.js.map +1 -1
  130. package/dist/tools/library-loader.d.ts +1 -1
  131. package/dist/tools/library-loader.d.ts.map +1 -1
  132. package/dist/tools/library-loader.js +7 -2
  133. package/dist/tools/library-loader.js.map +1 -1
  134. package/dist/tools/registrations/accessibility-tools.d.ts +1 -9
  135. package/dist/tools/registrations/accessibility-tools.d.ts.map +1 -1
  136. package/dist/tools/registrations/accessibility-tools.js +95 -113
  137. package/dist/tools/registrations/accessibility-tools.js.map +1 -1
  138. package/dist/tools/registrations/calculator.d.ts +2 -2
  139. package/dist/tools/registrations/calculator.d.ts.map +1 -1
  140. package/dist/tools/registrations/calculator.js +34 -55
  141. package/dist/tools/registrations/calculator.js.map +1 -1
  142. package/dist/tools/registrations/interaction-tools.d.ts.map +1 -1
  143. package/dist/tools/registrations/interaction-tools.js +77 -52
  144. package/dist/tools/registrations/interaction-tools.js.map +1 -1
  145. package/dist/tools/registrations/measurement-tools.d.ts.map +1 -1
  146. package/dist/tools/registrations/measurement-tools.js +63 -38
  147. package/dist/tools/registrations/measurement-tools.js.map +1 -1
  148. package/dist/tools/registrations/subject-specific-tools.d.ts.map +1 -1
  149. package/dist/tools/registrations/subject-specific-tools.js +63 -38
  150. package/dist/tools/registrations/subject-specific-tools.js.map +1 -1
  151. package/dist/tools/registrations/tts.d.ts +1 -1
  152. package/dist/tools/registrations/tts.d.ts.map +1 -1
  153. package/dist/tools/registrations/tts.js +27 -41
  154. package/dist/tools/registrations/tts.js.map +1 -1
  155. package/dist/tools/response-discovery.d.ts +12 -14
  156. package/dist/tools/response-discovery.d.ts.map +1 -1
  157. package/dist/tools/response-discovery.js +23 -80
  158. package/dist/tools/response-discovery.js.map +1 -1
  159. package/dist/tools/tool-tag-map.d.ts +3 -3
  160. package/dist/tools/tool-tag-map.d.ts.map +1 -1
  161. package/dist/tools/tool-tag-map.js +2 -3
  162. package/dist/tools/tool-tag-map.js.map +1 -1
  163. package/dist/tools/types.d.ts +3 -1
  164. package/dist/tools/types.d.ts.map +1 -1
  165. package/package.json +25 -28
  166. package/src/README.md +16 -32
  167. package/src/components/ItemToolBar.svelte +489 -0
  168. package/src/components/PNPProvenanceViewer.svelte +14 -4
  169. package/src/components/PieAssessmentToolkit.svelte +517 -0
  170. package/src/components/ToolButton.svelte +11 -11
  171. package/src/components/ToolButtonGroup.svelte +27 -11
  172. package/src/tools/README.md +6 -5
  173. package/src/tools/calculators/README.md +4 -4
  174. package/dist/player/AssessmentPlayer.d.ts +0 -397
  175. package/dist/player/AssessmentPlayer.d.ts.map +0 -1
  176. package/dist/player/AssessmentPlayer.js +0 -974
  177. package/dist/player/AssessmentPlayer.js.map +0 -1
  178. package/dist/player/index.d.ts +0 -17
  179. package/dist/player/index.d.ts.map +0 -1
  180. package/dist/player/index.js +0 -15
  181. package/dist/player/index.js.map +0 -1
  182. package/dist/player/navigation-types.d.ts +0 -63
  183. package/dist/player/navigation-types.d.ts.map +0 -1
  184. package/dist/player/navigation-types.js +0 -7
  185. package/dist/player/navigation-types.js.map +0 -1
  186. package/dist/player/qti-navigation.d.ts +0 -29
  187. package/dist/player/qti-navigation.d.ts.map +0 -1
  188. package/dist/player/qti-navigation.js +0 -160
  189. package/dist/player/qti-navigation.js.map +0 -1
  190. package/dist/reference-layout/index.d.ts +0 -19
  191. package/dist/reference-layout/index.d.ts.map +0 -1
  192. package/dist/reference-layout/index.js +0 -20
  193. package/dist/reference-layout/index.js.map +0 -1
  194. package/dist/services/AnnotationToolbarConfig.d.ts +0 -134
  195. package/dist/services/AnnotationToolbarConfig.d.ts.map +0 -1
  196. package/dist/services/AnnotationToolbarConfig.js +0 -100
  197. package/dist/services/AnnotationToolbarConfig.js.map +0 -1
  198. package/dist/services/AssessmentAuthoringService.d.ts +0 -60
  199. package/dist/services/AssessmentAuthoringService.d.ts.map +0 -1
  200. package/dist/services/AssessmentAuthoringService.js +0 -183
  201. package/dist/services/AssessmentAuthoringService.js.map +0 -1
  202. package/dist/services/PNPMapper.d.ts +0 -81
  203. package/dist/services/PNPMapper.d.ts.map +0 -1
  204. package/dist/services/PNPMapper.js +0 -108
  205. package/dist/services/PNPMapper.js.map +0 -1
  206. package/src/components/PNPProfileTester.example.svelte +0 -188
  207. package/src/components/PNPProfileTester.svelte +0 -397
  208. package/src/components/QuestionToolBar.svelte +0 -483
  209. package/src/player/AssessmentLayout.svelte +0 -68
  210. package/src/player/README.md +0 -154
  211. package/src/reference-layout/README.md +0 -135
  212. package/src/reference-layout/ReferenceLayout.svelte +0 -201
  213. package/src/reference-layout/components/AssessmentContent.svelte +0 -259
  214. package/src/reference-layout/components/AssessmentFooter.svelte +0 -89
  215. package/src/reference-layout/components/AssessmentHeader.svelte +0 -250
  216. package/src/reference-layout/components/AssessmentNavigation.svelte +0 -134
  217. package/src/reference-layout/components/AssessmentToolsBar.svelte +0 -176
  218. package/src/reference-layout/components/ItemPanel.svelte +0 -200
  219. package/src/reference-layout/components/NotesPanel.svelte +0 -179
  220. package/src/reference-layout/components/PassagePanel.svelte +0 -76
@@ -45,26 +45,95 @@ export function isElementContext(context) {
45
45
  */
46
46
  export function extractTextContent(context) {
47
47
  if (isElementContext(context)) {
48
- // Extract text from specific element in the config
49
48
  const config = context.item.config;
50
49
  if (!config)
51
50
  return "";
52
- // Try to find element markup
51
+ const textChunks = [];
52
+ const stripHtml = (value) => value.replace(/<[^>]*>/g, " ").trim();
53
+ // Try to find element markup by element id.
53
54
  const elementMarkup = config.elements?.[context.elementId];
54
55
  if (elementMarkup) {
55
- // Strip HTML tags for text analysis
56
- return elementMarkup.replace(/<[^>]*>/g, " ").trim();
56
+ if (typeof elementMarkup === "string") {
57
+ textChunks.push(stripHtml(elementMarkup));
58
+ }
57
59
  }
58
- return "";
60
+ // Also inspect model data keyed by this element id.
61
+ // In many items, math appears in model.prompt/labels rather than elements[elementId].
62
+ const modelsRaw = config.models;
63
+ const models = Array.isArray(modelsRaw)
64
+ ? modelsRaw
65
+ : modelsRaw && typeof modelsRaw === "object"
66
+ ? Object.values(modelsRaw)
67
+ : [];
68
+ const model = models.find((m) => m && typeof m === "object" && m.id === context.elementId);
69
+ if (model) {
70
+ for (const value of Object.values(model)) {
71
+ if (typeof value === "string") {
72
+ textChunks.push(stripHtml(value));
73
+ }
74
+ if (Array.isArray(value)) {
75
+ for (const entry of value) {
76
+ if (entry && typeof entry === "object") {
77
+ for (const nested of Object.values(entry)) {
78
+ if (typeof nested === "string") {
79
+ textChunks.push(stripHtml(nested));
80
+ }
81
+ }
82
+ }
83
+ }
84
+ }
85
+ }
86
+ }
87
+ return textChunks.filter(Boolean).join(" ").trim();
59
88
  }
60
89
  if (isItemContext(context)) {
61
90
  const item = context.item;
62
91
  if (!item?.config)
63
92
  return "";
64
- // Extract all markup from config
65
- const markup = item.config.markup || "";
66
- // Strip HTML tags
67
- return markup.replace(/<[^>]*>/g, " ").trim();
93
+ const config = item.config;
94
+ const textChunks = [];
95
+ const stripHtml = (value) => value.replace(/<[^>]*>/g, " ").trim();
96
+ // Primary item markup
97
+ if (typeof config.markup === "string") {
98
+ textChunks.push(stripHtml(config.markup));
99
+ }
100
+ // Element markup snippets
101
+ const elements = config.elements;
102
+ if (elements && typeof elements === "object") {
103
+ for (const elementMarkup of Object.values(elements)) {
104
+ if (typeof elementMarkup === "string") {
105
+ textChunks.push(stripHtml(elementMarkup));
106
+ }
107
+ }
108
+ }
109
+ // Model-level text (prompts, labels, etc.)
110
+ const modelsRaw = config.models;
111
+ const models = Array.isArray(modelsRaw)
112
+ ? modelsRaw
113
+ : modelsRaw && typeof modelsRaw === "object"
114
+ ? Object.values(modelsRaw)
115
+ : [];
116
+ for (const model of models) {
117
+ if (!model || typeof model !== "object")
118
+ continue;
119
+ for (const value of Object.values(model)) {
120
+ if (typeof value === "string") {
121
+ textChunks.push(stripHtml(value));
122
+ }
123
+ if (Array.isArray(value)) {
124
+ for (const entry of value) {
125
+ if (entry && typeof entry === "object") {
126
+ for (const nested of Object.values(entry)) {
127
+ if (typeof nested === "string") {
128
+ textChunks.push(stripHtml(nested));
129
+ }
130
+ }
131
+ }
132
+ }
133
+ }
134
+ }
135
+ }
136
+ return textChunks.filter(Boolean).join(" ").trim();
68
137
  }
69
138
  if (isPassageContext(context)) {
70
139
  const passage = context.passage;
@@ -108,24 +177,44 @@ export function hasMathContent(context) {
108
177
  * Helper to check if context contains choice-based interactions
109
178
  */
110
179
  export function hasChoiceInteraction(context) {
180
+ const interactionTypes = [
181
+ "pie-multiple-choice",
182
+ "pie-inline-choice",
183
+ "pie-select-text",
184
+ "multiple-choice",
185
+ "inline-choice",
186
+ "select-text",
187
+ ];
111
188
  if (isElementContext(context)) {
112
189
  const config = context.item.config;
113
190
  if (!config?.models)
114
191
  return false;
115
192
  // Find model for this element
116
- const model = config.models.find((m) => m.id === context.elementId);
193
+ const models = Array.isArray(config.models)
194
+ ? config.models
195
+ : Object.values(config.models);
196
+ const model = models.find((m) => m && typeof m === "object" && m.id === context.elementId);
117
197
  if (!model)
118
198
  return false;
119
199
  const type = model.element || "";
120
- return [
121
- "pie-multiple-choice",
122
- "pie-inline-choice",
123
- "pie-select-text",
124
- ].includes(type);
200
+ return interactionTypes.includes(type);
125
201
  }
126
202
  if (isItemContext(context)) {
127
- const models = context.item.config?.models || [];
128
- return models.some((m) => ["pie-multiple-choice", "pie-inline-choice", "pie-select-text"].includes(m.element || ""));
203
+ const modelsRaw = context.item.config?.models;
204
+ const models = Array.isArray(modelsRaw)
205
+ ? modelsRaw
206
+ : modelsRaw && typeof modelsRaw === "object"
207
+ ? Object.values(modelsRaw)
208
+ : [];
209
+ return models.some((m) => {
210
+ if (!m || typeof m !== "object")
211
+ return false;
212
+ const type = m.element || "";
213
+ if (interactionTypes.includes(type))
214
+ return true;
215
+ // Fallback for configs that don't provide canonical element names.
216
+ return Array.isArray(m.choices) && m.choices.length > 0;
217
+ });
129
218
  }
130
219
  return false;
131
220
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tool-context.js","sourceRoot":"","sources":["../../src/services/tool-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-context.js","sourceRoot":"","sources":["../../src/services/tool-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export declare const DEFAULT_TOOL_SCOPE_LEVELS: readonly ["assessment", "section", "item", "passage", "rubric"];
2
+ export type BuiltinToolScopeLevel = (typeof DEFAULT_TOOL_SCOPE_LEVELS)[number];
3
+ export type ToolScopeLevel = BuiltinToolScopeLevel | (string & {});
4
+ export type ToolInstanceRole = "overlay" | "inline";
5
+ export interface ParsedToolInstanceId {
6
+ baseToolId: string;
7
+ scopeLevel: ToolScopeLevel;
8
+ scopeId: string;
9
+ role: ToolInstanceRole;
10
+ }
11
+ export declare function getRegisteredToolScopeLevels(): string[];
12
+ export declare function registerToolScopeLevel(scopeLevel: string): void;
13
+ export declare function isRegisteredToolScopeLevel(scopeLevel: string): scopeLevel is ToolScopeLevel;
14
+ export declare function createScopedToolId(baseToolId: string, scopeLevel: ToolScopeLevel, scopeId: string, role?: ToolInstanceRole): string;
15
+ export declare function parseScopedToolId(id: string): ParsedToolInstanceId | null;
16
+ export declare function toOverlayToolId(id: string): string;
17
+ //# sourceMappingURL=tool-instance-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-instance-id.d.ts","sourceRoot":"","sources":["../../src/services/tool-instance-id.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,iEAM5B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/E,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AACnE,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpD,MAAM,WAAW,oBAAoB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,CAAC;CACvB;AAID,wBAAgB,4BAA4B,IAAI,MAAM,EAAE,CAEvD;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAM/D;AAED,wBAAgB,0BAA0B,CACzC,UAAU,EAAE,MAAM,GAChB,UAAU,IAAI,cAAc,CAE9B;AAED,wBAAgB,kBAAkB,CACjC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,gBAA4B,GAChC,MAAM,CAcR;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAgBzE;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CASlD"}
@@ -0,0 +1,61 @@
1
+ export const DEFAULT_TOOL_SCOPE_LEVELS = [
2
+ "assessment",
3
+ "section",
4
+ "item",
5
+ "passage",
6
+ "rubric",
7
+ ];
8
+ const registeredToolScopeLevels = new Set(DEFAULT_TOOL_SCOPE_LEVELS);
9
+ export function getRegisteredToolScopeLevels() {
10
+ return Array.from(registeredToolScopeLevels.values());
11
+ }
12
+ export function registerToolScopeLevel(scopeLevel) {
13
+ const normalized = scopeLevel.trim();
14
+ if (!normalized) {
15
+ throw new Error("Tool scope level must be a non-empty string");
16
+ }
17
+ registeredToolScopeLevels.add(normalized);
18
+ }
19
+ export function isRegisteredToolScopeLevel(scopeLevel) {
20
+ return registeredToolScopeLevels.has(scopeLevel);
21
+ }
22
+ export function createScopedToolId(baseToolId, scopeLevel, scopeId, role = "overlay") {
23
+ const normalizedBase = baseToolId.trim();
24
+ const normalizedScopeId = scopeId.trim();
25
+ if (!normalizedBase || !normalizedScopeId) {
26
+ throw new Error("Tool instance ids require non-empty tool and scope ids");
27
+ }
28
+ if (!isRegisteredToolScopeLevel(scopeLevel)) {
29
+ throw new Error(`Unknown tool scope level '${scopeLevel}'. Register custom levels with registerToolScopeLevel().`);
30
+ }
31
+ return role === "inline"
32
+ ? `${normalizedBase}:${scopeLevel}:${normalizedScopeId}:inline`
33
+ : `${normalizedBase}:${scopeLevel}:${normalizedScopeId}`;
34
+ }
35
+ export function parseScopedToolId(id) {
36
+ const parts = id.split(":");
37
+ if (parts.length !== 3 && parts.length !== 4)
38
+ return null;
39
+ const [baseToolId, scopeLevelRaw, scopeId, roleRaw] = parts;
40
+ if (!baseToolId || !scopeId)
41
+ return null;
42
+ if (!isRegisteredToolScopeLevel(scopeLevelRaw)) {
43
+ return null;
44
+ }
45
+ const role = roleRaw === "inline" ? "inline" : "overlay";
46
+ if (parts.length === 4 && roleRaw !== "inline")
47
+ return null;
48
+ return {
49
+ baseToolId,
50
+ scopeLevel: scopeLevelRaw,
51
+ scopeId,
52
+ role,
53
+ };
54
+ }
55
+ export function toOverlayToolId(id) {
56
+ const parsed = parseScopedToolId(id);
57
+ if (!parsed)
58
+ return id;
59
+ return createScopedToolId(parsed.baseToolId, parsed.scopeLevel, parsed.scopeId, "overlay");
60
+ }
61
+ //# sourceMappingURL=tool-instance-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-instance-id.js","sourceRoot":"","sources":["../../src/services/tool-instance-id.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACxC,YAAY;IACZ,SAAS;IACT,MAAM;IACN,SAAS;IACT,QAAQ;CACC,CAAC;AAaX,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAS,yBAAyB,CAAC,CAAC;AAE7E,MAAM,UAAU,4BAA4B;IAC3C,OAAO,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACxD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC,UAAU,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAChE,CAAC;IACD,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,0BAA0B,CACzC,UAAkB;IAElB,OAAO,yBAAyB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,kBAAkB,CACjC,UAAkB,EAClB,UAA0B,EAC1B,OAAe,EACf,OAAyB,SAAS;IAElC,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IACzC,IAAI,CAAC,cAAc,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,KAAK,CACd,6BAA6B,UAAU,0DAA0D,CACjG,CAAC;IACH,CAAC;IACD,OAAO,IAAI,KAAK,QAAQ;QACvB,CAAC,CAAC,GAAG,cAAc,IAAI,UAAU,IAAI,iBAAiB,SAAS;QAC/D,CAAC,CAAC,GAAG,cAAc,IAAI,UAAU,IAAI,iBAAiB,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC3C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,MAAM,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;IAC5D,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,IAAI,GAAqB,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC5D,OAAO;QACN,UAAU;QACV,UAAU,EAAE,aAAa;QACzB,OAAO;QACP,IAAI;KACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAU;IACzC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,OAAO,kBAAkB,CACxB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,OAAO,EACd,SAAS,CACT,CAAC;AACH,CAAC"}
@@ -4,15 +4,14 @@
4
4
  * Unified interface for all assessment tools that require
5
5
  * configuration, authentication, or external services.
6
6
  *
7
- * Examples: Desmos calculators, TI calculators, TTS services,
8
- * translation services, dictionary APIs, etc.
7
+ * Examples: Desmos calculators, TI calculators, and TTS services.
9
8
  *
10
9
  * Part of PIE Assessment Toolkit.
11
10
  */
12
11
  /**
13
12
  * Tool category classification
14
13
  */
15
- export type ToolCategory = "calculator" | "tts" | "translation" | "dictionary" | "annotation" | "accessibility" | "other";
14
+ export type ToolCategory = "calculator" | "tts" | "translation" | "annotation" | "accessibility" | "other";
16
15
  /**
17
16
  * Tool provider capabilities descriptor
18
17
  *
@@ -1 +1 @@
1
- {"version":3,"file":"IToolProvider.d.ts","sourceRoot":"","sources":["../../../src/services/tool-providers/IToolProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,MAAM,MAAM,YAAY,GACrB,YAAY,GACZ,KAAK,GACL,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,eAAe,GACf,OAAO,CAAC;AAEX;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACxC;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,aAAa,CAAC,OAAO,GAAG,GAAG,EAAE,SAAS,GAAG,GAAG;IAC5D;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAEhC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAE/B;;;;;;;;;OASG;IACH,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C;;;;;;;;;OASG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,eAAe,IAAI,wBAAwB,CAAC;IAE5C;;;;;;OAMG;IACH,OAAO,IAAI,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,OAAO,IAAI,IAAI,CAAC;CAChB"}
1
+ {"version":3,"file":"IToolProvider.d.ts","sourceRoot":"","sources":["../../../src/services/tool-providers/IToolProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;GAEG;AACH,MAAM,MAAM,YAAY,GACrB,YAAY,GACZ,KAAK,GACL,aAAa,GACb,YAAY,GACZ,eAAe,GACf,OAAO,CAAC;AAEX;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACxC;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,aAAa,CAAC,OAAO,GAAG,GAAG,EAAE,SAAS,GAAG,GAAG;IAC5D;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAEhC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAE/B;;;;;;;;;OASG;IACH,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C;;;;;;;;;OASG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,eAAe,IAAI,wBAAwB,CAAC;IAE5C;;;;;;OAMG;IACH,OAAO,IAAI,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,OAAO,IAAI,IAAI,CAAC;CAChB"}
@@ -4,8 +4,7 @@
4
4
  * Unified interface for all assessment tools that require
5
5
  * configuration, authentication, or external services.
6
6
  *
7
- * Examples: Desmos calculators, TI calculators, TTS services,
8
- * translation services, dictionary APIs, etc.
7
+ * Examples: Desmos calculators, TI calculators, and TTS services.
9
8
  *
10
9
  * Part of PIE Assessment Toolkit.
11
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"IToolProvider.js","sourceRoot":"","sources":["../../../src/services/tool-providers/IToolProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
1
+ {"version":3,"file":"IToolProvider.js","sourceRoot":"","sources":["../../../src/services/tool-providers/IToolProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Math.js Calculator Tool Provider
3
+ *
4
+ * Provides an open-source calculator provider that supports
5
+ * basic and scientific calculator types without API keys.
6
+ */
7
+ import type { CalculatorProvider } from "@pie-players/pie-calculator";
8
+ import type { IToolProvider, ToolProviderCapabilities } from "./IToolProvider.js";
9
+ export interface MathJsToolProviderConfig {
10
+ defaultConfig?: Record<string, unknown>;
11
+ }
12
+ export declare class MathJsToolProvider implements IToolProvider<MathJsToolProviderConfig, CalculatorProvider> {
13
+ readonly providerId = "mathjs-calculator";
14
+ readonly providerName = "Math.js Calculator";
15
+ readonly category: "calculator";
16
+ readonly version = "1.0";
17
+ readonly requiresAuth = false;
18
+ private mathjsProvider;
19
+ initialize(_config: MathJsToolProviderConfig): Promise<void>;
20
+ createInstance(): Promise<CalculatorProvider>;
21
+ getCapabilities(): ToolProviderCapabilities;
22
+ isReady(): boolean;
23
+ destroy(): void;
24
+ }
25
+ //# sourceMappingURL=MathJsToolProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MathJsToolProvider.d.ts","sourceRoot":"","sources":["../../../src/services/tool-providers/MathJsToolProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAElF,MAAM,WAAW,wBAAwB;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED,qBAAa,kBACZ,YAAW,aAAa,CAAC,wBAAwB,EAAE,kBAAkB,CAAC;IAEtE,QAAQ,CAAC,UAAU,uBAAuB;IAC1C,QAAQ,CAAC,YAAY,wBAAwB;IAC7C,QAAQ,CAAC,QAAQ,EAAG,YAAY,CAAU;IAC1C,QAAQ,CAAC,OAAO,SAAS;IACzB,QAAQ,CAAC,YAAY,SAAS;IAE9B,OAAO,CAAC,cAAc,CAAyC;IAEzD,UAAU,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5D,cAAc,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAUnD,eAAe,IAAI,wBAAwB;IAc3C,OAAO,IAAI,OAAO;IAIlB,OAAO,IAAI,IAAI;CAOf"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Math.js Calculator Tool Provider
3
+ *
4
+ * Provides an open-source calculator provider that supports
5
+ * basic and scientific calculator types without API keys.
6
+ */
7
+ import { MathJsCalculatorProvider } from "../../tools/calculators/mathjs-provider.js";
8
+ export class MathJsToolProvider {
9
+ providerId = "mathjs-calculator";
10
+ providerName = "Math.js Calculator";
11
+ category = "calculator";
12
+ version = "1.0";
13
+ requiresAuth = false;
14
+ mathjsProvider = null;
15
+ async initialize(_config) {
16
+ if (this.mathjsProvider) {
17
+ return;
18
+ }
19
+ this.mathjsProvider = new MathJsCalculatorProvider();
20
+ await this.mathjsProvider.initialize();
21
+ console.log("[MathJsToolProvider] Initialized successfully");
22
+ }
23
+ async createInstance() {
24
+ if (!this.mathjsProvider) {
25
+ throw new Error("[MathJsToolProvider] Provider not initialized. Call initialize() first.");
26
+ }
27
+ return this.mathjsProvider;
28
+ }
29
+ getCapabilities() {
30
+ return {
31
+ supportsOffline: false,
32
+ requiresAuth: false,
33
+ maxInstances: null,
34
+ features: {
35
+ basic: true,
36
+ scientific: true,
37
+ graphing: false,
38
+ fourFunction: true,
39
+ },
40
+ };
41
+ }
42
+ isReady() {
43
+ return this.mathjsProvider !== null;
44
+ }
45
+ destroy() {
46
+ if (this.mathjsProvider) {
47
+ this.mathjsProvider.destroy();
48
+ this.mathjsProvider = null;
49
+ }
50
+ console.log("[MathJsToolProvider] Destroyed");
51
+ }
52
+ }
53
+ //# sourceMappingURL=MathJsToolProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MathJsToolProvider.js","sourceRoot":"","sources":["../../../src/services/tool-providers/MathJsToolProvider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,wBAAwB,EAAE,MAAM,4CAA4C,CAAC;AAOtF,MAAM,OAAO,kBAAkB;IAGrB,UAAU,GAAG,mBAAmB,CAAC;IACjC,YAAY,GAAG,oBAAoB,CAAC;IACpC,QAAQ,GAAG,YAAqB,CAAC;IACjC,OAAO,GAAG,KAAK,CAAC;IAChB,YAAY,GAAG,KAAK,CAAC;IAEtB,cAAc,GAAoC,IAAI,CAAC;IAE/D,KAAK,CAAC,UAAU,CAAC,OAAiC;QACjD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACrD,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,cAAc;QACnB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACd,yEAAyE,CACzE,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC;IAC5B,CAAC;IAED,eAAe;QACd,OAAO;YACN,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE;gBACT,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,IAAI;aAClB;SACD,CAAC;IACH,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC;IACrC,CAAC;IAED,OAAO;QACN,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC/C,CAAC;CACD"}
@@ -13,6 +13,8 @@ export { DesmosToolProvider } from "./DesmosToolProvider.js";
13
13
  export type { DesmosToolProviderConfig } from "./DesmosToolProvider.js";
14
14
  export { TIToolProvider } from "./TIToolProvider.js";
15
15
  export type { TIToolProviderConfig } from "./TIToolProvider.js";
16
+ export { MathJsToolProvider } from "./MathJsToolProvider.js";
17
+ export type { MathJsToolProviderConfig } from "./MathJsToolProvider.js";
16
18
  export { TTSToolProvider } from "./TTSToolProvider.js";
17
19
  export type { TTSToolProviderConfig, TTSBackend, } from "./TTSToolProvider.js";
18
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/tool-providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACX,aAAa,EACb,YAAY,EACZ,wBAAwB,GACxB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EACX,qBAAqB,EACrB,UAAU,GACV,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/tool-providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,YAAY,EACX,aAAa,EACb,YAAY,EACZ,wBAAwB,GACxB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EACX,qBAAqB,EACrB,UAAU,GACV,MAAM,sBAAsB,CAAC"}
@@ -11,5 +11,6 @@ export { ToolProviderRegistry } from "./ToolProviderRegistry.js";
11
11
  // Concrete providers
12
12
  export { DesmosToolProvider } from "./DesmosToolProvider.js";
13
13
  export { TIToolProvider } from "./TIToolProvider.js";
14
+ export { MathJsToolProvider } from "./MathJsToolProvider.js";
14
15
  export { TTSToolProvider } from "./TTSToolProvider.js";
15
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/tool-providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,WAAW;AACX,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,qBAAqB;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/tool-providers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,WAAW;AACX,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjE,qBAAqB;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,26 @@
1
+ export type ToolPlacementLevel = "section" | "item" | "passage";
2
+ export interface ToolPolicyConfig {
3
+ allowed?: string[];
4
+ blocked?: string[];
5
+ }
6
+ export interface ToolPlacementConfig {
7
+ section?: string[];
8
+ item?: string[];
9
+ passage?: string[];
10
+ }
11
+ export interface ToolProvidersConfig {
12
+ tts?: Record<string, unknown>;
13
+ calculator?: Record<string, unknown>;
14
+ [key: string]: Record<string, unknown> | undefined;
15
+ }
16
+ export interface CanonicalToolsConfig {
17
+ policy: ToolPolicyConfig;
18
+ placement: Required<ToolPlacementConfig>;
19
+ providers: ToolProvidersConfig;
20
+ }
21
+ export declare function normalizeToolAlias(toolId: string): string;
22
+ export declare function normalizeToolList(toolIds: string[] | undefined | null): string[];
23
+ export declare function parseToolList(input: string | undefined | null): string[];
24
+ export declare function normalizeToolsConfig(input?: Partial<CanonicalToolsConfig> | null): CanonicalToolsConfig;
25
+ export declare function resolveToolsForLevel(config: CanonicalToolsConfig, level: ToolPlacementLevel): string[];
26
+ //# sourceMappingURL=tools-config-normalizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools-config-normalizer.d.ts","sourceRoot":"","sources":["../../src/services/tools-config-normalizer.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IACnC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CACnD;AAED,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IACzC,SAAS,EAAE,mBAAmB,CAAC;CAC/B;AAQD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKzD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,EAAE,CAShF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,EAAE,CAQxE;AAED,wBAAgB,oBAAoB,CACnC,KAAK,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,GAC1C,oBAAoB,CAqBtB;AAED,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,oBAAoB,EAC5B,KAAK,EAAE,kBAAkB,GACvB,MAAM,EAAE,CAOV"}
@@ -0,0 +1,63 @@
1
+ const DEFAULT_PLACEMENT = {
2
+ section: ["graph", "periodicTable", "protractor", "lineReader", "ruler"],
3
+ item: ["calculator", "textToSpeech", "answerEliminator"],
4
+ passage: ["textToSpeech"],
5
+ };
6
+ export function normalizeToolAlias(toolId) {
7
+ const trimmed = toolId.trim();
8
+ if (!trimmed)
9
+ return "";
10
+ if (trimmed === "tts")
11
+ return "textToSpeech";
12
+ return trimmed;
13
+ }
14
+ export function normalizeToolList(toolIds) {
15
+ if (!toolIds || toolIds.length === 0)
16
+ return [];
17
+ const deduped = new Set();
18
+ for (const rawToolId of toolIds) {
19
+ const normalized = normalizeToolAlias(rawToolId);
20
+ if (!normalized)
21
+ continue;
22
+ deduped.add(normalized);
23
+ }
24
+ return Array.from(deduped);
25
+ }
26
+ export function parseToolList(input) {
27
+ if (!input)
28
+ return [];
29
+ return normalizeToolList(input
30
+ .split(",")
31
+ .map((entry) => entry.trim())
32
+ .filter(Boolean));
33
+ }
34
+ export function normalizeToolsConfig(input) {
35
+ return {
36
+ policy: {
37
+ allowed: normalizeToolList(input?.policy?.allowed),
38
+ blocked: normalizeToolList(input?.policy?.blocked),
39
+ },
40
+ placement: {
41
+ section: normalizeToolList(input?.placement?.section).length
42
+ ? normalizeToolList(input?.placement?.section)
43
+ : [...DEFAULT_PLACEMENT.section],
44
+ item: normalizeToolList(input?.placement?.item).length
45
+ ? normalizeToolList(input?.placement?.item)
46
+ : [...DEFAULT_PLACEMENT.item],
47
+ passage: normalizeToolList(input?.placement?.passage).length
48
+ ? normalizeToolList(input?.placement?.passage)
49
+ : [...DEFAULT_PLACEMENT.passage],
50
+ },
51
+ providers: {
52
+ ...(input?.providers || {}),
53
+ },
54
+ };
55
+ }
56
+ export function resolveToolsForLevel(config, level) {
57
+ const placement = normalizeToolList(config.placement[level]);
58
+ const allowed = normalizeToolList(config.policy.allowed);
59
+ const blocked = new Set(normalizeToolList(config.policy.blocked));
60
+ const passAllowed = allowed.length === 0 ? placement : placement.filter((toolId) => allowed.includes(toolId));
61
+ return passAllowed.filter((toolId) => !blocked.has(toolId));
62
+ }
63
+ //# sourceMappingURL=tools-config-normalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools-config-normalizer.js","sourceRoot":"","sources":["../../src/services/tools-config-normalizer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ti-provider.d.ts","sourceRoot":"","sources":["../../../src/tools/calculators/ti-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAEX,UAAU,EACV,kBAAkB,EAClB,8BAA8B,EAC9B,wBAAwB,EAExB,cAAc,EAEd,MAAM,6BAA6B,CAAC;AAUrC,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAM;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,oBAAoB,CAAC;QACxE,KAAK,CAAC,EAAE,KAAK,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,oBAAoB,CAAC;QACtE,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,oBAAoB,CAAC;KACrE;CACD;AAGD,UAAU,oBAAoB;IAC7B,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,oBAAqB,YAAW,kBAAkB;IAC9D,QAAQ,CAAC,UAAU,QAAQ;IAC3B,QAAQ,CAAC,YAAY,uBAAuB;IAC5C,QAAQ,CAAC,cAAc,EAAE,cAAc,EAAE,CAAmC;IAC5E,QAAQ,CAAC,OAAO,WAAW;IAE3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAA6B;IAEpD;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBjC;;OAEG;YACW,eAAe;IA6B7B;;OAEG;IACG,gBAAgB,CACrB,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,WAAW,EACtB,MAAM,CAAC,EAAE,wBAAwB,GAC/B,OAAO,CAAC,UAAU,CAAC;IAkBtB;;OAEG;YACW,aAAa;IAkB3B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAgBnB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAkBhB;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO;IAI3C;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;OAEG;IACH,eAAe,IAAI,8BAA8B;CAUjD;AAwaD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,sBAA6B,CAAC;;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG"}
1
+ {"version":3,"file":"ti-provider.d.ts","sourceRoot":"","sources":["../../../src/tools/calculators/ti-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAEX,UAAU,EACV,kBAAkB,EAClB,8BAA8B,EAC9B,wBAAwB,EAExB,cAAc,EAEd,MAAM,6BAA6B,CAAC;AAUrC,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAM;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,oBAAoB,CAAC;QACxE,KAAK,CAAC,EAAE,KAAK,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,oBAAoB,CAAC;QACtE,IAAI,CAAC,EAAE,KAAK,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,oBAAoB,CAAC;KACrE;CACD;AAGD,UAAU,oBAAoB;IAC7B,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,oBAAqB,YAAW,kBAAkB;IAC9D,QAAQ,CAAC,UAAU,QAAQ;IAC3B,QAAQ,CAAC,YAAY,uBAAuB;IAC5C,QAAQ,CAAC,cAAc,EAAE,cAAc,EAAE,CAAmC;IAC5E,QAAQ,CAAC,OAAO,WAAW;IAE3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAA6B;IAEpD;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBjC;;OAEG;YACW,eAAe;IA6B7B;;OAEG;IACG,gBAAgB,CACrB,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,WAAW,EACtB,MAAM,CAAC,EAAE,wBAAwB,GAC/B,OAAO,CAAC,UAAU,CAAC;IAkBtB;;OAEG;YACW,aAAa;IAkB3B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAgBnB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAkBhB;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO;IAI3C;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;OAEG;IACH,eAAe,IAAI,8BAA8B;CAUjD;AAgkBD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,sBAA6B,CAAC;;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG"}