@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.
- package/README.md +520 -0
- package/dist/attempt/TestSession.d.ts +90 -0
- package/dist/attempt/TestSession.d.ts.map +1 -0
- package/dist/attempt/TestSession.js +174 -0
- package/dist/attempt/TestSession.js.map +1 -0
- package/dist/core/TypedEventBus.d.ts +48 -0
- package/dist/core/TypedEventBus.d.ts.map +1 -0
- package/dist/core/TypedEventBus.js +63 -0
- package/dist/core/TypedEventBus.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/item-loader.d.ts +45 -0
- package/dist/item-loader.d.ts.map +1 -0
- package/dist/item-loader.js +62 -0
- package/dist/item-loader.js.map +1 -0
- package/dist/player/AssessmentPlayer.d.ts +388 -0
- package/dist/player/AssessmentPlayer.d.ts.map +1 -0
- package/dist/player/AssessmentPlayer.js +965 -0
- package/dist/player/AssessmentPlayer.js.map +1 -0
- package/dist/player/index.d.ts +17 -0
- package/dist/player/index.d.ts.map +1 -0
- package/dist/player/index.js +15 -0
- package/dist/player/index.js.map +1 -0
- package/dist/player/navigation-types.d.ts +63 -0
- package/dist/player/navigation-types.d.ts.map +1 -0
- package/dist/player/navigation-types.js +7 -0
- package/dist/player/navigation-types.js.map +1 -0
- package/dist/player/qti-navigation.d.ts +29 -0
- package/dist/player/qti-navigation.d.ts.map +1 -0
- package/dist/player/qti-navigation.js +160 -0
- package/dist/player/qti-navigation.js.map +1 -0
- package/dist/reference-layout/index.d.ts +19 -0
- package/dist/reference-layout/index.d.ts.map +1 -0
- package/dist/reference-layout/index.js +20 -0
- package/dist/reference-layout/index.js.map +1 -0
- package/dist/services/AccessibilityCatalogResolver.d.ts +141 -0
- package/dist/services/AccessibilityCatalogResolver.d.ts.map +1 -0
- package/dist/services/AccessibilityCatalogResolver.js +249 -0
- package/dist/services/AccessibilityCatalogResolver.js.map +1 -0
- package/dist/services/AssessmentAuthoringService.d.ts +60 -0
- package/dist/services/AssessmentAuthoringService.d.ts.map +1 -0
- package/dist/services/AssessmentAuthoringService.js +183 -0
- package/dist/services/AssessmentAuthoringService.js.map +1 -0
- package/dist/services/ContextVariableStore.d.ts +114 -0
- package/dist/services/ContextVariableStore.d.ts.map +1 -0
- package/dist/services/ContextVariableStore.js +207 -0
- package/dist/services/ContextVariableStore.js.map +1 -0
- package/dist/services/ElementToolStateStore.d.ts +125 -0
- package/dist/services/ElementToolStateStore.d.ts.map +1 -0
- package/dist/services/ElementToolStateStore.js +200 -0
- package/dist/services/ElementToolStateStore.js.map +1 -0
- package/dist/services/HighlightCoordinator.d.ts +179 -0
- package/dist/services/HighlightCoordinator.d.ts.map +1 -0
- package/dist/services/HighlightCoordinator.js +446 -0
- package/dist/services/HighlightCoordinator.js.map +1 -0
- package/dist/services/I18nService.d.ts +121 -0
- package/dist/services/I18nService.d.ts.map +1 -0
- package/dist/services/I18nService.js +276 -0
- package/dist/services/I18nService.js.map +1 -0
- package/dist/services/PNPMapper.d.ts +71 -0
- package/dist/services/PNPMapper.d.ts.map +1 -0
- package/dist/services/PNPMapper.js +98 -0
- package/dist/services/PNPMapper.js.map +1 -0
- package/dist/services/PNPToolResolver.d.ts +127 -0
- package/dist/services/PNPToolResolver.d.ts.map +1 -0
- package/dist/services/PNPToolResolver.js +222 -0
- package/dist/services/PNPToolResolver.js.map +1 -0
- package/dist/services/SSMLExtractor.d.ts +61 -0
- package/dist/services/SSMLExtractor.d.ts.map +1 -0
- package/dist/services/SSMLExtractor.js +181 -0
- package/dist/services/SSMLExtractor.js.map +1 -0
- package/dist/services/TTSService.d.ts +162 -0
- package/dist/services/TTSService.d.ts.map +1 -0
- package/dist/services/TTSService.js +465 -0
- package/dist/services/TTSService.js.map +1 -0
- package/dist/services/ThemeProvider.d.ts +95 -0
- package/dist/services/ThemeProvider.d.ts.map +1 -0
- package/dist/services/ThemeProvider.js +299 -0
- package/dist/services/ThemeProvider.js.map +1 -0
- package/dist/services/ToolConfigResolver.d.ts +162 -0
- package/dist/services/ToolConfigResolver.d.ts.map +1 -0
- package/dist/services/ToolConfigResolver.js +230 -0
- package/dist/services/ToolConfigResolver.js.map +1 -0
- package/dist/services/ToolCoordinator.d.ts +137 -0
- package/dist/services/ToolCoordinator.d.ts.map +1 -0
- package/dist/services/ToolCoordinator.js +318 -0
- package/dist/services/ToolCoordinator.js.map +1 -0
- package/dist/services/ToolkitCoordinator.d.ts +188 -0
- package/dist/services/ToolkitCoordinator.d.ts.map +1 -0
- package/dist/services/ToolkitCoordinator.js +252 -0
- package/dist/services/ToolkitCoordinator.js.map +1 -0
- package/dist/services/interfaces.d.ts +391 -0
- package/dist/services/interfaces.d.ts.map +1 -0
- package/dist/services/interfaces.js +12 -0
- package/dist/services/interfaces.js.map +1 -0
- package/dist/services/tool-providers/DesmosToolProvider.d.ts +103 -0
- package/dist/services/tool-providers/DesmosToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/DesmosToolProvider.js +127 -0
- package/dist/services/tool-providers/DesmosToolProvider.js.map +1 -0
- package/dist/services/tool-providers/IToolProvider.d.ts +137 -0
- package/dist/services/tool-providers/IToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/IToolProvider.js +13 -0
- package/dist/services/tool-providers/IToolProvider.js.map +1 -0
- package/dist/services/tool-providers/TIToolProvider.d.ts +107 -0
- package/dist/services/tool-providers/TIToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/TIToolProvider.js +123 -0
- package/dist/services/tool-providers/TIToolProvider.js.map +1 -0
- package/dist/services/tool-providers/TTSToolProvider.d.ts +143 -0
- package/dist/services/tool-providers/TTSToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/TTSToolProvider.js +168 -0
- package/dist/services/tool-providers/TTSToolProvider.js.map +1 -0
- package/dist/services/tool-providers/ToolProviderRegistry.d.ts +165 -0
- package/dist/services/tool-providers/ToolProviderRegistry.d.ts.map +1 -0
- package/dist/services/tool-providers/ToolProviderRegistry.js +240 -0
- package/dist/services/tool-providers/ToolProviderRegistry.js.map +1 -0
- package/dist/services/tool-providers/index.d.ts +18 -0
- package/dist/services/tool-providers/index.d.ts.map +1 -0
- package/dist/services/tool-providers/index.js +15 -0
- package/dist/services/tool-providers/index.js.map +1 -0
- package/dist/services/tts/browser-provider.d.ts +24 -0
- package/dist/services/tts/browser-provider.d.ts.map +1 -0
- package/dist/services/tts/browser-provider.js +177 -0
- package/dist/services/tts/browser-provider.js.map +1 -0
- package/dist/services/tts/provider-interface.d.ts +131 -0
- package/dist/services/tts/provider-interface.d.ts.map +1 -0
- package/dist/services/tts/provider-interface.js +10 -0
- package/dist/services/tts/provider-interface.js.map +1 -0
- package/dist/tools/calculators/desmos-provider.d.ts +54 -0
- package/dist/tools/calculators/desmos-provider.d.ts.map +1 -0
- package/dist/tools/calculators/desmos-provider.js +384 -0
- package/dist/tools/calculators/desmos-provider.js.map +1 -0
- package/dist/tools/calculators/mathjs-provider.d.ts +50 -0
- package/dist/tools/calculators/mathjs-provider.d.ts.map +1 -0
- package/dist/tools/calculators/mathjs-provider.js +660 -0
- package/dist/tools/calculators/mathjs-provider.js.map +1 -0
- package/dist/tools/calculators/ti-provider.d.ts +122 -0
- package/dist/tools/calculators/ti-provider.d.ts.map +1 -0
- package/dist/tools/calculators/ti-provider.js +587 -0
- package/dist/tools/calculators/ti-provider.js.map +1 -0
- package/dist/tools/client.d.ts +17 -0
- package/dist/tools/client.d.ts.map +1 -0
- package/dist/tools/client.js +26 -0
- package/dist/tools/client.js.map +1 -0
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +10 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/library-loader.d.ts +63 -0
- package/dist/tools/library-loader.d.ts.map +1 -0
- package/dist/tools/library-loader.js +292 -0
- package/dist/tools/library-loader.js.map +1 -0
- package/dist/tools/response-discovery.d.ts +72 -0
- package/dist/tools/response-discovery.d.ts.map +1 -0
- package/dist/tools/response-discovery.js +183 -0
- package/dist/tools/response-discovery.js.map +1 -0
- package/dist/tools/tool-coordinator.d.ts +76 -0
- package/dist/tools/tool-coordinator.d.ts.map +1 -0
- package/dist/tools/tool-coordinator.js +197 -0
- package/dist/tools/tool-coordinator.js.map +1 -0
- package/dist/tools/types.d.ts +427 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +13 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/variant-resolver.d.ts +48 -0
- package/dist/tools/variant-resolver.d.ts.map +1 -0
- package/dist/tools/variant-resolver.js +214 -0
- package/dist/tools/variant-resolver.js.map +1 -0
- package/dist/types/events.d.ts +157 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +11 -0
- package/dist/types/events.js.map +1 -0
- package/dist/utils/logger.d.ts +7 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +11 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +71 -0
- package/src/README.md +626 -0
- package/src/components/QuestionToolBar.svelte +406 -0
- package/src/player/AssessmentLayout.svelte +68 -0
- package/src/player/README.md +154 -0
- package/src/reference-layout/README.md +135 -0
- package/src/reference-layout/ReferenceLayout.svelte +209 -0
- package/src/reference-layout/components/AssessmentContent.svelte +259 -0
- package/src/reference-layout/components/AssessmentFooter.svelte +89 -0
- package/src/reference-layout/components/AssessmentHeader.svelte +250 -0
- package/src/reference-layout/components/AssessmentNavigation.svelte +134 -0
- package/src/reference-layout/components/AssessmentToolsBar.svelte +176 -0
- package/src/reference-layout/components/ItemPanel.svelte +200 -0
- package/src/reference-layout/components/NotesPanel.svelte +179 -0
- package/src/reference-layout/components/PassagePanel.svelte +76 -0
- package/src/tools/README.md +616 -0
- 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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"}
|