@pie-players/pie-assessment-toolkit 0.2.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 (194) hide show
  1. package/README.md +520 -0
  2. package/dist/attempt/TestSession.d.ts +90 -0
  3. package/dist/attempt/TestSession.d.ts.map +1 -0
  4. package/dist/attempt/TestSession.js +174 -0
  5. package/dist/attempt/TestSession.js.map +1 -0
  6. package/dist/core/TypedEventBus.d.ts +48 -0
  7. package/dist/core/TypedEventBus.d.ts.map +1 -0
  8. package/dist/core/TypedEventBus.js +63 -0
  9. package/dist/core/TypedEventBus.js.map +1 -0
  10. package/dist/index.d.ts +37 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +44 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/item-loader.d.ts +45 -0
  15. package/dist/item-loader.d.ts.map +1 -0
  16. package/dist/item-loader.js +62 -0
  17. package/dist/item-loader.js.map +1 -0
  18. package/dist/player/AssessmentPlayer.d.ts +388 -0
  19. package/dist/player/AssessmentPlayer.d.ts.map +1 -0
  20. package/dist/player/AssessmentPlayer.js +965 -0
  21. package/dist/player/AssessmentPlayer.js.map +1 -0
  22. package/dist/player/index.d.ts +17 -0
  23. package/dist/player/index.d.ts.map +1 -0
  24. package/dist/player/index.js +15 -0
  25. package/dist/player/index.js.map +1 -0
  26. package/dist/player/navigation-types.d.ts +63 -0
  27. package/dist/player/navigation-types.d.ts.map +1 -0
  28. package/dist/player/navigation-types.js +7 -0
  29. package/dist/player/navigation-types.js.map +1 -0
  30. package/dist/player/qti-navigation.d.ts +29 -0
  31. package/dist/player/qti-navigation.d.ts.map +1 -0
  32. package/dist/player/qti-navigation.js +160 -0
  33. package/dist/player/qti-navigation.js.map +1 -0
  34. package/dist/reference-layout/index.d.ts +19 -0
  35. package/dist/reference-layout/index.d.ts.map +1 -0
  36. package/dist/reference-layout/index.js +20 -0
  37. package/dist/reference-layout/index.js.map +1 -0
  38. package/dist/services/AccessibilityCatalogResolver.d.ts +141 -0
  39. package/dist/services/AccessibilityCatalogResolver.d.ts.map +1 -0
  40. package/dist/services/AccessibilityCatalogResolver.js +249 -0
  41. package/dist/services/AccessibilityCatalogResolver.js.map +1 -0
  42. package/dist/services/AssessmentAuthoringService.d.ts +60 -0
  43. package/dist/services/AssessmentAuthoringService.d.ts.map +1 -0
  44. package/dist/services/AssessmentAuthoringService.js +183 -0
  45. package/dist/services/AssessmentAuthoringService.js.map +1 -0
  46. package/dist/services/ContextVariableStore.d.ts +114 -0
  47. package/dist/services/ContextVariableStore.d.ts.map +1 -0
  48. package/dist/services/ContextVariableStore.js +207 -0
  49. package/dist/services/ContextVariableStore.js.map +1 -0
  50. package/dist/services/ElementToolStateStore.d.ts +125 -0
  51. package/dist/services/ElementToolStateStore.d.ts.map +1 -0
  52. package/dist/services/ElementToolStateStore.js +200 -0
  53. package/dist/services/ElementToolStateStore.js.map +1 -0
  54. package/dist/services/HighlightCoordinator.d.ts +179 -0
  55. package/dist/services/HighlightCoordinator.d.ts.map +1 -0
  56. package/dist/services/HighlightCoordinator.js +446 -0
  57. package/dist/services/HighlightCoordinator.js.map +1 -0
  58. package/dist/services/I18nService.d.ts +121 -0
  59. package/dist/services/I18nService.d.ts.map +1 -0
  60. package/dist/services/I18nService.js +276 -0
  61. package/dist/services/I18nService.js.map +1 -0
  62. package/dist/services/PNPMapper.d.ts +71 -0
  63. package/dist/services/PNPMapper.d.ts.map +1 -0
  64. package/dist/services/PNPMapper.js +98 -0
  65. package/dist/services/PNPMapper.js.map +1 -0
  66. package/dist/services/PNPToolResolver.d.ts +127 -0
  67. package/dist/services/PNPToolResolver.d.ts.map +1 -0
  68. package/dist/services/PNPToolResolver.js +222 -0
  69. package/dist/services/PNPToolResolver.js.map +1 -0
  70. package/dist/services/SSMLExtractor.d.ts +61 -0
  71. package/dist/services/SSMLExtractor.d.ts.map +1 -0
  72. package/dist/services/SSMLExtractor.js +181 -0
  73. package/dist/services/SSMLExtractor.js.map +1 -0
  74. package/dist/services/TTSService.d.ts +162 -0
  75. package/dist/services/TTSService.d.ts.map +1 -0
  76. package/dist/services/TTSService.js +465 -0
  77. package/dist/services/TTSService.js.map +1 -0
  78. package/dist/services/ThemeProvider.d.ts +95 -0
  79. package/dist/services/ThemeProvider.d.ts.map +1 -0
  80. package/dist/services/ThemeProvider.js +299 -0
  81. package/dist/services/ThemeProvider.js.map +1 -0
  82. package/dist/services/ToolConfigResolver.d.ts +162 -0
  83. package/dist/services/ToolConfigResolver.d.ts.map +1 -0
  84. package/dist/services/ToolConfigResolver.js +230 -0
  85. package/dist/services/ToolConfigResolver.js.map +1 -0
  86. package/dist/services/ToolCoordinator.d.ts +137 -0
  87. package/dist/services/ToolCoordinator.d.ts.map +1 -0
  88. package/dist/services/ToolCoordinator.js +318 -0
  89. package/dist/services/ToolCoordinator.js.map +1 -0
  90. package/dist/services/ToolkitCoordinator.d.ts +188 -0
  91. package/dist/services/ToolkitCoordinator.d.ts.map +1 -0
  92. package/dist/services/ToolkitCoordinator.js +252 -0
  93. package/dist/services/ToolkitCoordinator.js.map +1 -0
  94. package/dist/services/interfaces.d.ts +391 -0
  95. package/dist/services/interfaces.d.ts.map +1 -0
  96. package/dist/services/interfaces.js +12 -0
  97. package/dist/services/interfaces.js.map +1 -0
  98. package/dist/services/tool-providers/DesmosToolProvider.d.ts +103 -0
  99. package/dist/services/tool-providers/DesmosToolProvider.d.ts.map +1 -0
  100. package/dist/services/tool-providers/DesmosToolProvider.js +127 -0
  101. package/dist/services/tool-providers/DesmosToolProvider.js.map +1 -0
  102. package/dist/services/tool-providers/IToolProvider.d.ts +137 -0
  103. package/dist/services/tool-providers/IToolProvider.d.ts.map +1 -0
  104. package/dist/services/tool-providers/IToolProvider.js +13 -0
  105. package/dist/services/tool-providers/IToolProvider.js.map +1 -0
  106. package/dist/services/tool-providers/TIToolProvider.d.ts +107 -0
  107. package/dist/services/tool-providers/TIToolProvider.d.ts.map +1 -0
  108. package/dist/services/tool-providers/TIToolProvider.js +123 -0
  109. package/dist/services/tool-providers/TIToolProvider.js.map +1 -0
  110. package/dist/services/tool-providers/TTSToolProvider.d.ts +143 -0
  111. package/dist/services/tool-providers/TTSToolProvider.d.ts.map +1 -0
  112. package/dist/services/tool-providers/TTSToolProvider.js +168 -0
  113. package/dist/services/tool-providers/TTSToolProvider.js.map +1 -0
  114. package/dist/services/tool-providers/ToolProviderRegistry.d.ts +165 -0
  115. package/dist/services/tool-providers/ToolProviderRegistry.d.ts.map +1 -0
  116. package/dist/services/tool-providers/ToolProviderRegistry.js +240 -0
  117. package/dist/services/tool-providers/ToolProviderRegistry.js.map +1 -0
  118. package/dist/services/tool-providers/index.d.ts +18 -0
  119. package/dist/services/tool-providers/index.d.ts.map +1 -0
  120. package/dist/services/tool-providers/index.js +15 -0
  121. package/dist/services/tool-providers/index.js.map +1 -0
  122. package/dist/services/tts/browser-provider.d.ts +24 -0
  123. package/dist/services/tts/browser-provider.d.ts.map +1 -0
  124. package/dist/services/tts/browser-provider.js +177 -0
  125. package/dist/services/tts/browser-provider.js.map +1 -0
  126. package/dist/services/tts/provider-interface.d.ts +131 -0
  127. package/dist/services/tts/provider-interface.d.ts.map +1 -0
  128. package/dist/services/tts/provider-interface.js +10 -0
  129. package/dist/services/tts/provider-interface.js.map +1 -0
  130. package/dist/tools/calculators/desmos-provider.d.ts +54 -0
  131. package/dist/tools/calculators/desmos-provider.d.ts.map +1 -0
  132. package/dist/tools/calculators/desmos-provider.js +384 -0
  133. package/dist/tools/calculators/desmos-provider.js.map +1 -0
  134. package/dist/tools/calculators/mathjs-provider.d.ts +50 -0
  135. package/dist/tools/calculators/mathjs-provider.d.ts.map +1 -0
  136. package/dist/tools/calculators/mathjs-provider.js +660 -0
  137. package/dist/tools/calculators/mathjs-provider.js.map +1 -0
  138. package/dist/tools/calculators/ti-provider.d.ts +122 -0
  139. package/dist/tools/calculators/ti-provider.d.ts.map +1 -0
  140. package/dist/tools/calculators/ti-provider.js +587 -0
  141. package/dist/tools/calculators/ti-provider.js.map +1 -0
  142. package/dist/tools/client.d.ts +17 -0
  143. package/dist/tools/client.d.ts.map +1 -0
  144. package/dist/tools/client.js +26 -0
  145. package/dist/tools/client.js.map +1 -0
  146. package/dist/tools/index.d.ts +8 -0
  147. package/dist/tools/index.d.ts.map +1 -0
  148. package/dist/tools/index.js +10 -0
  149. package/dist/tools/index.js.map +1 -0
  150. package/dist/tools/library-loader.d.ts +63 -0
  151. package/dist/tools/library-loader.d.ts.map +1 -0
  152. package/dist/tools/library-loader.js +292 -0
  153. package/dist/tools/library-loader.js.map +1 -0
  154. package/dist/tools/response-discovery.d.ts +72 -0
  155. package/dist/tools/response-discovery.d.ts.map +1 -0
  156. package/dist/tools/response-discovery.js +183 -0
  157. package/dist/tools/response-discovery.js.map +1 -0
  158. package/dist/tools/tool-coordinator.d.ts +76 -0
  159. package/dist/tools/tool-coordinator.d.ts.map +1 -0
  160. package/dist/tools/tool-coordinator.js +197 -0
  161. package/dist/tools/tool-coordinator.js.map +1 -0
  162. package/dist/tools/types.d.ts +427 -0
  163. package/dist/tools/types.d.ts.map +1 -0
  164. package/dist/tools/types.js +13 -0
  165. package/dist/tools/types.js.map +1 -0
  166. package/dist/tools/variant-resolver.d.ts +48 -0
  167. package/dist/tools/variant-resolver.d.ts.map +1 -0
  168. package/dist/tools/variant-resolver.js +214 -0
  169. package/dist/tools/variant-resolver.js.map +1 -0
  170. package/dist/types/events.d.ts +157 -0
  171. package/dist/types/events.d.ts.map +1 -0
  172. package/dist/types/events.js +11 -0
  173. package/dist/types/events.js.map +1 -0
  174. package/dist/utils/logger.d.ts +7 -0
  175. package/dist/utils/logger.d.ts.map +1 -0
  176. package/dist/utils/logger.js +11 -0
  177. package/dist/utils/logger.js.map +1 -0
  178. package/package.json +71 -0
  179. package/src/README.md +626 -0
  180. package/src/components/QuestionToolBar.svelte +406 -0
  181. package/src/player/AssessmentLayout.svelte +68 -0
  182. package/src/player/README.md +154 -0
  183. package/src/reference-layout/README.md +135 -0
  184. package/src/reference-layout/ReferenceLayout.svelte +209 -0
  185. package/src/reference-layout/components/AssessmentContent.svelte +259 -0
  186. package/src/reference-layout/components/AssessmentFooter.svelte +89 -0
  187. package/src/reference-layout/components/AssessmentHeader.svelte +250 -0
  188. package/src/reference-layout/components/AssessmentNavigation.svelte +134 -0
  189. package/src/reference-layout/components/AssessmentToolsBar.svelte +176 -0
  190. package/src/reference-layout/components/ItemPanel.svelte +200 -0
  191. package/src/reference-layout/components/NotesPanel.svelte +179 -0
  192. package/src/reference-layout/components/PassagePanel.svelte +76 -0
  193. package/src/tools/README.md +616 -0
  194. package/src/tools/calculators/README.md +395 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolCoordinator.js","sourceRoot":"","sources":["../../src/services/ToolCoordinator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,188 @@
1
+ /**
2
+ * ToolkitCoordinator - Centralized Assessment Toolkit Service Management
3
+ *
4
+ * Orchestrates all toolkit services (TTS, tools, accessibility, state management) from a single entry point.
5
+ * Provides centralized configuration for tool availability and settings.
6
+ *
7
+ * Key features:
8
+ * - Owns all toolkit services (TTSService, ToolCoordinator, HighlightCoordinator, ElementToolStateStore, AccessibilityCatalogResolver)
9
+ * - Single configuration point for tool availability and settings
10
+ * - Sensible defaults for standalone usage
11
+ * - Direct access for settings widgets (no player dependency)
12
+ * - Clean separation: toolkit concerns only (NOT assessment state like navigation, timing, progress)
13
+ *
14
+ * Part of PIE Assessment Toolkit.
15
+ */
16
+ import type { AccessibilityCatalog } from "@pie-players/pie-players-shared/types";
17
+ import { AccessibilityCatalogResolver } from "./AccessibilityCatalogResolver";
18
+ import { ElementToolStateStore } from "./ElementToolStateStore";
19
+ import { HighlightCoordinator } from "./HighlightCoordinator";
20
+ import { ToolCoordinator } from "./ToolCoordinator";
21
+ import { TTSService } from "./TTSService";
22
+ import { ToolProviderRegistry } from "./tool-providers";
23
+ import type { DesmosToolProviderConfig, TIToolProviderConfig, TTSToolProviderConfig } from "./tool-providers";
24
+ /**
25
+ * Generic tool configuration
26
+ */
27
+ export interface ToolConfig {
28
+ enabled?: boolean;
29
+ [key: string]: any;
30
+ }
31
+ /**
32
+ * TTS tool configuration
33
+ */
34
+ export interface TTSToolConfig extends ToolConfig {
35
+ backend?: "browser" | "polly" | "google" | "server";
36
+ defaultVoice?: string;
37
+ rate?: number;
38
+ pitch?: number;
39
+ apiEndpoint?: string;
40
+ authFetcher?: () => Promise<Partial<TTSToolProviderConfig>>;
41
+ }
42
+ /**
43
+ * Answer eliminator tool configuration
44
+ */
45
+ export interface AnswerEliminatorToolConfig extends ToolConfig {
46
+ strategy?: "strikethrough" | "hide";
47
+ }
48
+ /**
49
+ * Calculator tool configuration
50
+ */
51
+ export interface CalculatorToolConfig extends ToolConfig {
52
+ provider?: "desmos" | "ti" | "mathjs";
53
+ authFetcher?: () => Promise<Partial<DesmosToolProviderConfig | TIToolProviderConfig>>;
54
+ }
55
+ /**
56
+ * Floating tools configuration (calculator, graph, etc.)
57
+ */
58
+ export interface FloatingToolsConfig extends ToolConfig {
59
+ enabledTools?: string[];
60
+ calculator?: CalculatorToolConfig;
61
+ }
62
+ /**
63
+ * Configuration for ToolkitCoordinator
64
+ */
65
+ export interface ToolkitCoordinatorConfig {
66
+ /**
67
+ * Unique identifier for the assessment content.
68
+ * Used for scoping tool state across sections.
69
+ */
70
+ assessmentId: string;
71
+ /**
72
+ * Tool availability and configuration.
73
+ * Defaults: all tools enabled with default settings.
74
+ */
75
+ tools?: {
76
+ tts?: TTSToolConfig;
77
+ answerEliminator?: AnswerEliminatorToolConfig;
78
+ highlighter?: ToolConfig;
79
+ flagging?: ToolConfig;
80
+ floatingTools?: FloatingToolsConfig;
81
+ };
82
+ /**
83
+ * Accessibility configuration.
84
+ * Includes QTI 3.0 accessibility catalogs and language settings.
85
+ */
86
+ accessibility?: {
87
+ catalogs?: AccessibilityCatalog[];
88
+ language?: string;
89
+ };
90
+ }
91
+ /**
92
+ * Service bundle returned by getServiceBundle()
93
+ */
94
+ export interface ToolkitServiceBundle {
95
+ ttsService: TTSService;
96
+ toolCoordinator: ToolCoordinator;
97
+ highlightCoordinator: HighlightCoordinator;
98
+ elementToolStateStore: ElementToolStateStore;
99
+ catalogResolver: AccessibilityCatalogResolver;
100
+ toolProviderRegistry: ToolProviderRegistry;
101
+ }
102
+ /**
103
+ * ToolkitCoordinator - Orchestrates all assessment toolkit services
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * // Create coordinator with configuration
108
+ * const coordinator = new ToolkitCoordinator({
109
+ * assessmentId: 'demo-three-questions',
110
+ * tools: {
111
+ * tts: { enabled: true, defaultVoice: 'en-US' },
112
+ * answerEliminator: { enabled: true, strategy: 'strikethrough' }
113
+ * }
114
+ * });
115
+ *
116
+ * // Pass to section player
117
+ * player.toolkitCoordinator = coordinator;
118
+ *
119
+ * // Access services directly
120
+ * const ttsService = coordinator.ttsService;
121
+ * const toolState = coordinator.elementToolStateStore.getAllState();
122
+ * ```
123
+ */
124
+ export declare class ToolkitCoordinator {
125
+ /** Assessment identifier (for scoping tool state) */
126
+ readonly assessmentId: string;
127
+ /** Configuration */
128
+ readonly config: ToolkitCoordinatorConfig;
129
+ /** Managed services (public for direct access) */
130
+ readonly ttsService: TTSService;
131
+ readonly toolCoordinator: ToolCoordinator;
132
+ readonly highlightCoordinator: HighlightCoordinator;
133
+ readonly elementToolStateStore: ElementToolStateStore;
134
+ readonly catalogResolver: AccessibilityCatalogResolver;
135
+ readonly toolProviderRegistry: ToolProviderRegistry;
136
+ /** Track TTS initialization state */
137
+ private ttsInitialized;
138
+ constructor(config: ToolkitCoordinatorConfig);
139
+ /**
140
+ * Register tool providers in the registry
141
+ */
142
+ private _registerToolProviders;
143
+ /**
144
+ * Initialize TTS service with provider
145
+ */
146
+ private _initializeTTS;
147
+ /**
148
+ * Get all services as a bundle for section player convenience.
149
+ * Section player can extract and pass services to child components.
150
+ */
151
+ getServiceBundle(): ToolkitServiceBundle;
152
+ /**
153
+ * Get a tool provider from the registry
154
+ *
155
+ * @param providerId Provider identifier
156
+ * @returns Tool provider instance
157
+ */
158
+ getToolProvider(providerId: string): Promise<import("./tool-providers").IToolProvider<any, any>>;
159
+ /**
160
+ * Check if a tool is enabled.
161
+ * Tools are enabled by default unless explicitly disabled.
162
+ *
163
+ * @param toolId Tool identifier (e.g., 'tts', 'answerEliminator')
164
+ * @returns True if tool is enabled
165
+ */
166
+ isToolEnabled(toolId: string): boolean;
167
+ /**
168
+ * Get tool configuration.
169
+ *
170
+ * @param toolId Tool identifier
171
+ * @returns Tool configuration or null if not configured
172
+ */
173
+ getToolConfig(toolId: string): ToolConfig | null;
174
+ /**
175
+ * Update tool configuration.
176
+ * Applies changes to underlying services.
177
+ *
178
+ * @param toolId Tool identifier
179
+ * @param updates Partial configuration updates
180
+ */
181
+ updateToolConfig(toolId: string, updates: Partial<ToolConfig>): void;
182
+ /**
183
+ * Apply tool configuration changes to underlying services.
184
+ * Called after updateToolConfig().
185
+ */
186
+ private _applyToolConfigChange;
187
+ }
188
+ //# sourceMappingURL=ToolkitCoordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolkitCoordinator.d.ts","sourceRoot":"","sources":["../../src/services/ToolkitCoordinator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,252 @@
1
+ /**
2
+ * ToolkitCoordinator - Centralized Assessment Toolkit Service Management
3
+ *
4
+ * Orchestrates all toolkit services (TTS, tools, accessibility, state management) from a single entry point.
5
+ * Provides centralized configuration for tool availability and settings.
6
+ *
7
+ * Key features:
8
+ * - Owns all toolkit services (TTSService, ToolCoordinator, HighlightCoordinator, ElementToolStateStore, AccessibilityCatalogResolver)
9
+ * - Single configuration point for tool availability and settings
10
+ * - Sensible defaults for standalone usage
11
+ * - Direct access for settings widgets (no player dependency)
12
+ * - Clean separation: toolkit concerns only (NOT assessment state like navigation, timing, progress)
13
+ *
14
+ * Part of PIE Assessment Toolkit.
15
+ */
16
+ import { AccessibilityCatalogResolver } from "./AccessibilityCatalogResolver";
17
+ import { ElementToolStateStore } from "./ElementToolStateStore";
18
+ import { HighlightCoordinator } from "./HighlightCoordinator";
19
+ import { ToolCoordinator } from "./ToolCoordinator";
20
+ import { TTSService } from "./TTSService";
21
+ import { BrowserTTSProvider } from "./tts/browser-provider";
22
+ import { ToolProviderRegistry, DesmosToolProvider, TIToolProvider, TTSToolProvider, } from "./tool-providers";
23
+ /**
24
+ * ToolkitCoordinator - Orchestrates all assessment toolkit services
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * // Create coordinator with configuration
29
+ * const coordinator = new ToolkitCoordinator({
30
+ * assessmentId: 'demo-three-questions',
31
+ * tools: {
32
+ * tts: { enabled: true, defaultVoice: 'en-US' },
33
+ * answerEliminator: { enabled: true, strategy: 'strikethrough' }
34
+ * }
35
+ * });
36
+ *
37
+ * // Pass to section player
38
+ * player.toolkitCoordinator = coordinator;
39
+ *
40
+ * // Access services directly
41
+ * const ttsService = coordinator.ttsService;
42
+ * const toolState = coordinator.elementToolStateStore.getAllState();
43
+ * ```
44
+ */
45
+ export class ToolkitCoordinator {
46
+ /** Assessment identifier (for scoping tool state) */
47
+ assessmentId;
48
+ /** Configuration */
49
+ config;
50
+ /** Managed services (public for direct access) */
51
+ ttsService;
52
+ toolCoordinator;
53
+ highlightCoordinator;
54
+ elementToolStateStore;
55
+ catalogResolver;
56
+ toolProviderRegistry;
57
+ /** Track TTS initialization state */
58
+ ttsInitialized = false;
59
+ constructor(config) {
60
+ if (!config.assessmentId) {
61
+ throw new Error("ToolkitCoordinator requires assessmentId in config");
62
+ }
63
+ this.assessmentId = config.assessmentId;
64
+ this.config = config;
65
+ // Initialize all services
66
+ this.toolCoordinator = new ToolCoordinator();
67
+ this.highlightCoordinator = new HighlightCoordinator();
68
+ this.elementToolStateStore = new ElementToolStateStore();
69
+ this.catalogResolver = new AccessibilityCatalogResolver(config.accessibility?.catalogs || [], config.accessibility?.language || "en-US");
70
+ // Initialize tool provider registry
71
+ this.toolProviderRegistry = new ToolProviderRegistry();
72
+ this._registerToolProviders();
73
+ // Initialize TTS service based on config
74
+ this.ttsService = new TTSService();
75
+ const ttsConfig = config.tools?.tts;
76
+ if (ttsConfig?.enabled !== false) {
77
+ // Initialize async (fire and forget - service will become available when ready)
78
+ this._initializeTTS(ttsConfig).catch((err) => {
79
+ console.error("[ToolkitCoordinator] Failed to initialize TTS:", err);
80
+ });
81
+ }
82
+ }
83
+ /**
84
+ * Register tool providers in the registry
85
+ */
86
+ _registerToolProviders() {
87
+ // Register TTS provider
88
+ const ttsConfig = this.config.tools?.tts;
89
+ if (ttsConfig?.enabled !== false) {
90
+ const backend = ttsConfig?.backend || "browser";
91
+ try {
92
+ this.toolProviderRegistry.register("tts", {
93
+ provider: new TTSToolProvider(backend),
94
+ config: {
95
+ backend,
96
+ apiEndpoint: ttsConfig?.apiEndpoint,
97
+ voice: ttsConfig?.defaultVoice,
98
+ rate: ttsConfig?.rate,
99
+ pitch: ttsConfig?.pitch,
100
+ },
101
+ lazy: true,
102
+ authFetcher: ttsConfig?.authFetcher,
103
+ });
104
+ }
105
+ catch (error) {
106
+ console.warn("[ToolkitCoordinator] Failed to register TTS provider:", error);
107
+ }
108
+ }
109
+ // Register calculator providers
110
+ const floatingTools = this.config.tools?.floatingTools;
111
+ const calculatorConfig = floatingTools?.calculator;
112
+ if (calculatorConfig?.enabled !== false) {
113
+ const provider = calculatorConfig?.provider || "desmos";
114
+ if (provider === "desmos") {
115
+ try {
116
+ this.toolProviderRegistry.register("calculator-desmos", {
117
+ provider: new DesmosToolProvider(),
118
+ config: {},
119
+ lazy: true,
120
+ authFetcher: calculatorConfig?.authFetcher,
121
+ });
122
+ }
123
+ catch (error) {
124
+ console.warn("[ToolkitCoordinator] Failed to register Desmos calculator provider:", error);
125
+ }
126
+ }
127
+ else if (provider === "ti") {
128
+ try {
129
+ this.toolProviderRegistry.register("calculator-ti", {
130
+ provider: new TIToolProvider(),
131
+ config: {},
132
+ lazy: true,
133
+ });
134
+ }
135
+ catch (error) {
136
+ console.warn("[ToolkitCoordinator] Failed to register TI calculator provider:", error);
137
+ }
138
+ }
139
+ }
140
+ }
141
+ /**
142
+ * Initialize TTS service with provider
143
+ */
144
+ async _initializeTTS(config) {
145
+ if (this.ttsInitialized)
146
+ return;
147
+ // Try to use TTS provider from registry if available
148
+ if (this.toolProviderRegistry.has("tts")) {
149
+ try {
150
+ const ttsProvider = await this.toolProviderRegistry.getProvider("tts");
151
+ const providerInstance = await ttsProvider.createInstance();
152
+ await this.ttsService.initialize(providerInstance);
153
+ this.ttsService.setCatalogResolver(this.catalogResolver);
154
+ this.ttsInitialized = true;
155
+ console.log("[ToolkitCoordinator] TTS initialized via ToolProviderRegistry");
156
+ return;
157
+ }
158
+ catch (error) {
159
+ console.warn("[ToolkitCoordinator] Failed to initialize TTS via registry, falling back to browser provider:", error);
160
+ }
161
+ }
162
+ // Fallback to browser provider
163
+ const provider = new BrowserTTSProvider();
164
+ await this.ttsService.initialize(provider);
165
+ this.ttsService.setCatalogResolver(this.catalogResolver);
166
+ // Apply TTS-specific configuration
167
+ if (config) {
168
+ // Future: Apply voice, rate, pitch settings to provider
169
+ // For now, these are hints for UI (voice picker, rate slider)
170
+ }
171
+ this.ttsInitialized = true;
172
+ }
173
+ /**
174
+ * Get all services as a bundle for section player convenience.
175
+ * Section player can extract and pass services to child components.
176
+ */
177
+ getServiceBundle() {
178
+ return {
179
+ ttsService: this.ttsService,
180
+ toolCoordinator: this.toolCoordinator,
181
+ highlightCoordinator: this.highlightCoordinator,
182
+ elementToolStateStore: this.elementToolStateStore,
183
+ catalogResolver: this.catalogResolver,
184
+ toolProviderRegistry: this.toolProviderRegistry,
185
+ };
186
+ }
187
+ /**
188
+ * Get a tool provider from the registry
189
+ *
190
+ * @param providerId Provider identifier
191
+ * @returns Tool provider instance
192
+ */
193
+ async getToolProvider(providerId) {
194
+ return this.toolProviderRegistry.getProvider(providerId);
195
+ }
196
+ /**
197
+ * Check if a tool is enabled.
198
+ * Tools are enabled by default unless explicitly disabled.
199
+ *
200
+ * @param toolId Tool identifier (e.g., 'tts', 'answerEliminator')
201
+ * @returns True if tool is enabled
202
+ */
203
+ isToolEnabled(toolId) {
204
+ const toolConfig = this.config.tools?.[toolId];
205
+ // Enabled by default unless explicitly set to false
206
+ return toolConfig?.enabled !== false;
207
+ }
208
+ /**
209
+ * Get tool configuration.
210
+ *
211
+ * @param toolId Tool identifier
212
+ * @returns Tool configuration or null if not configured
213
+ */
214
+ getToolConfig(toolId) {
215
+ return this.config.tools?.[toolId] || null;
216
+ }
217
+ /**
218
+ * Update tool configuration.
219
+ * Applies changes to underlying services.
220
+ *
221
+ * @param toolId Tool identifier
222
+ * @param updates Partial configuration updates
223
+ */
224
+ updateToolConfig(toolId, updates) {
225
+ // Update config
226
+ const current = this.getToolConfig(toolId) || {};
227
+ if (!this.config.tools) {
228
+ this.config.tools = {};
229
+ }
230
+ this.config.tools[toolId] = { ...current, ...updates };
231
+ // Apply configuration changes to services
232
+ this._applyToolConfigChange(toolId, updates);
233
+ }
234
+ /**
235
+ * Apply tool configuration changes to underlying services.
236
+ * Called after updateToolConfig().
237
+ */
238
+ _applyToolConfigChange(toolId, updates) {
239
+ // Apply configuration changes based on tool
240
+ switch (toolId) {
241
+ case "tts":
242
+ // Future: Update TTSService with voice/rate/pitch changes
243
+ // For now, config is used by UI widgets to show current settings
244
+ break;
245
+ case "answerEliminator":
246
+ // Future: Could notify answer eliminator tools of strategy change
247
+ break;
248
+ // Add cases for other tools as needed
249
+ }
250
+ }
251
+ }
252
+ //# sourceMappingURL=ToolkitCoordinator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolkitCoordinator.js","sourceRoot":"","sources":["../../src/services/ToolkitCoordinator.ts"],"names":[],"mappings":"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"}