@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,427 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool system type definitions
|
|
3
|
+
*/
|
|
4
|
+
export type { CalculationHistoryEntry, Calculator, CalculatorProvider, CalculatorProviderCapabilities, CalculatorProviderConfig, CalculatorState, CalculatorType, DesmosCalculatorConfig, TICalculatorConfig, } from "@pie-players/pie-calculator";
|
|
5
|
+
export type ToolId = string;
|
|
6
|
+
export interface ToolState {
|
|
7
|
+
id: ToolId;
|
|
8
|
+
name: string;
|
|
9
|
+
isVisible: boolean;
|
|
10
|
+
isActive: boolean;
|
|
11
|
+
zIndex: number;
|
|
12
|
+
element?: HTMLElement;
|
|
13
|
+
}
|
|
14
|
+
export interface ToolPosition {
|
|
15
|
+
x: number;
|
|
16
|
+
y: number;
|
|
17
|
+
}
|
|
18
|
+
export interface ToolSize {
|
|
19
|
+
width: number;
|
|
20
|
+
height: number;
|
|
21
|
+
}
|
|
22
|
+
export interface ToolConfig {
|
|
23
|
+
id: ToolId;
|
|
24
|
+
name: string;
|
|
25
|
+
icon?: string;
|
|
26
|
+
enabled: boolean;
|
|
27
|
+
alwaysAvailable?: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface AssessmentToolConfig {
|
|
30
|
+
enabledTools: ToolId[];
|
|
31
|
+
toolSettings?: Record<ToolId, any>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Tool allowance: "0" = blocked, "1" = allowed
|
|
35
|
+
* Based on existing platform patterns
|
|
36
|
+
*/
|
|
37
|
+
export type ToolAllowance = "0" | "1";
|
|
38
|
+
/**
|
|
39
|
+
* Roster/Test-level tool configuration
|
|
40
|
+
* Defines default tool availability for an assessment
|
|
41
|
+
*/
|
|
42
|
+
export interface RosterToolConfiguration {
|
|
43
|
+
rosterId: string;
|
|
44
|
+
testId?: string;
|
|
45
|
+
toolAllowances: Record<string, ToolAllowance>;
|
|
46
|
+
defaultToolConfigs?: Record<string, ToolConfig>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Configuration source for tool resolution
|
|
50
|
+
*/
|
|
51
|
+
export type ConfigurationSource = "roster-block" | "item-restriction" | "item-requirement" | "student-accommodation" | "roster-default" | "system-default";
|
|
52
|
+
/**
|
|
53
|
+
* Resolved tool configuration with source tracking
|
|
54
|
+
*/
|
|
55
|
+
export interface ResolvedToolConfig extends ToolConfig {
|
|
56
|
+
resolvedFrom: ConfigurationSource;
|
|
57
|
+
required: boolean;
|
|
58
|
+
reason: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Tool resolution result
|
|
62
|
+
*/
|
|
63
|
+
export interface ToolResolutionResult {
|
|
64
|
+
allowed: boolean;
|
|
65
|
+
reason: string;
|
|
66
|
+
source: ConfigurationSource;
|
|
67
|
+
config?: ToolConfig;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Item-level tool configuration
|
|
71
|
+
*/
|
|
72
|
+
export interface ItemToolConfig {
|
|
73
|
+
itemId: string;
|
|
74
|
+
requiredTools?: string[];
|
|
75
|
+
restrictedTools?: string[];
|
|
76
|
+
toolParameters?: Record<string, ItemToolParameters>;
|
|
77
|
+
variantConfig?: ItemVariantConfig;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Item tool parameters
|
|
81
|
+
*/
|
|
82
|
+
export interface ItemToolParameters {
|
|
83
|
+
config?: Partial<ToolConfig>;
|
|
84
|
+
hint?: string;
|
|
85
|
+
preOpen?: boolean;
|
|
86
|
+
variants?: Record<string, ItemToolParametersVariant>;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Item tool parameters variant
|
|
90
|
+
*/
|
|
91
|
+
export interface ItemToolParametersVariant {
|
|
92
|
+
config?: Partial<ToolConfig>;
|
|
93
|
+
hint?: string;
|
|
94
|
+
preOpen?: boolean;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Item variant configuration for A/B testing and scaffolding
|
|
98
|
+
*/
|
|
99
|
+
export interface ItemVariantConfig {
|
|
100
|
+
variantId?: string;
|
|
101
|
+
toolOverrides?: Record<string, ItemToolOverride>;
|
|
102
|
+
adaptations?: ContentAdaptation[];
|
|
103
|
+
experimental?: Record<string, any>;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Tool override for item variants
|
|
107
|
+
*/
|
|
108
|
+
export interface ItemToolOverride {
|
|
109
|
+
config?: Partial<ToolConfig>;
|
|
110
|
+
uiVariant?: string;
|
|
111
|
+
parameters?: Record<string, any>;
|
|
112
|
+
replacementTool?: string;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Content adaptation types
|
|
116
|
+
*/
|
|
117
|
+
export interface ContentAdaptation {
|
|
118
|
+
type: "scaffolding" | "difficulty" | "language" | "modality" | "custom";
|
|
119
|
+
level: string | number;
|
|
120
|
+
affectedTools?: string[];
|
|
121
|
+
config?: Record<string, any>;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Variant context for resolution
|
|
125
|
+
*/
|
|
126
|
+
export interface VariantContext {
|
|
127
|
+
studentId: string;
|
|
128
|
+
sessionId: string;
|
|
129
|
+
language?: string;
|
|
130
|
+
scaffoldingLevel?: number;
|
|
131
|
+
difficultyLevel?: string;
|
|
132
|
+
custom?: Record<string, any>;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Resolved item configuration with variants applied
|
|
136
|
+
*/
|
|
137
|
+
export interface ResolvedItemConfig {
|
|
138
|
+
itemId: string;
|
|
139
|
+
requiredTools: string[];
|
|
140
|
+
restrictedTools: string[];
|
|
141
|
+
toolParameters: Record<string, ResolvedItemToolParameters>;
|
|
142
|
+
appliedVariant?: string;
|
|
143
|
+
appliedAdaptations?: ContentAdaptation[];
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Resolved item tool parameters
|
|
147
|
+
*/
|
|
148
|
+
export interface ResolvedItemToolParameters extends ItemToolParameters {
|
|
149
|
+
finalConfig: ToolConfig;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Library configuration for external dependencies
|
|
153
|
+
*/
|
|
154
|
+
export interface LibraryConfig {
|
|
155
|
+
id: string;
|
|
156
|
+
url: string;
|
|
157
|
+
fallbackUrls?: string[];
|
|
158
|
+
globalVar?: string;
|
|
159
|
+
dependencies?: string[];
|
|
160
|
+
integrity?: string;
|
|
161
|
+
crossorigin?: "anonymous" | "use-credentials";
|
|
162
|
+
timeout?: number;
|
|
163
|
+
async?: boolean;
|
|
164
|
+
defer?: boolean;
|
|
165
|
+
retry?: RetryConfig;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Retry configuration for library loading
|
|
169
|
+
*/
|
|
170
|
+
export interface RetryConfig {
|
|
171
|
+
maxAttempts: number;
|
|
172
|
+
delay: number;
|
|
173
|
+
backoffMultiplier?: number;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Library loader statistics
|
|
177
|
+
*/
|
|
178
|
+
export interface LoaderStats {
|
|
179
|
+
loaded: string[];
|
|
180
|
+
failed: string[];
|
|
181
|
+
pending: string[];
|
|
182
|
+
cacheHits: number;
|
|
183
|
+
cacheMisses: number;
|
|
184
|
+
totalLoadTime: number;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Base interface that all tool components should implement
|
|
188
|
+
*/
|
|
189
|
+
export interface Tool {
|
|
190
|
+
/** Unique identifier for this tool */
|
|
191
|
+
id: ToolId;
|
|
192
|
+
/** Display name */
|
|
193
|
+
name: string;
|
|
194
|
+
/** Show the tool */
|
|
195
|
+
show(): void;
|
|
196
|
+
/** Hide the tool */
|
|
197
|
+
hide(): void;
|
|
198
|
+
/** Toggle visibility */
|
|
199
|
+
toggle(): void;
|
|
200
|
+
/** Cleanup when tool is destroyed */
|
|
201
|
+
destroy?(): void;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Tool categories for organizational purposes
|
|
205
|
+
*/
|
|
206
|
+
export declare enum ToolCategory {
|
|
207
|
+
STANDALONE = "standalone",
|
|
208
|
+
CONTENT_INTERACTIVE = "content-interactive",
|
|
209
|
+
SERVICE_DEPENDENT = "service-dependent"
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Tool metadata
|
|
213
|
+
*/
|
|
214
|
+
export interface ToolMetadata {
|
|
215
|
+
id: ToolId;
|
|
216
|
+
name: string;
|
|
217
|
+
description: string;
|
|
218
|
+
category: ToolCategory;
|
|
219
|
+
icon?: string;
|
|
220
|
+
dependencies?: string[];
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Tool Coordinator interface
|
|
224
|
+
* Manages tool registration, visibility, and z-index coordination
|
|
225
|
+
*/
|
|
226
|
+
export interface ToolCoordinator {
|
|
227
|
+
/** Bring an element to the front (highest z-index) */
|
|
228
|
+
bringToFront(element: HTMLElement): void;
|
|
229
|
+
/** Register a tool with the coordinator */
|
|
230
|
+
registerTool(id: ToolId, name: string, element?: HTMLElement): void;
|
|
231
|
+
/** Unregister a tool */
|
|
232
|
+
unregisterTool(id: ToolId): void;
|
|
233
|
+
/** Show a tool */
|
|
234
|
+
showTool(id: ToolId): void;
|
|
235
|
+
/** Hide a tool */
|
|
236
|
+
hideTool(id: ToolId): void;
|
|
237
|
+
/** Toggle a tool's visibility */
|
|
238
|
+
toggleTool(id: ToolId): void;
|
|
239
|
+
/** Update a tool's element reference */
|
|
240
|
+
updateToolElement(id: ToolId, element: HTMLElement): void;
|
|
241
|
+
/** Hide all tools */
|
|
242
|
+
hideAllTools(): void;
|
|
243
|
+
/** Get the state of a specific tool */
|
|
244
|
+
getToolState(id: ToolId): ToolState | undefined;
|
|
245
|
+
/** Check if a tool is visible */
|
|
246
|
+
isToolVisible(id: ToolId): boolean;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Accommodation Resolver Service
|
|
250
|
+
* Resolves final tool configuration by merging roster, student, and item configs
|
|
251
|
+
* Precedence: Roster block > Item restriction > Item requirement > Student accommodation > Roster default
|
|
252
|
+
*/
|
|
253
|
+
export interface AccommodationResolver {
|
|
254
|
+
/**
|
|
255
|
+
* Resolve final tools for an item given all configuration sources
|
|
256
|
+
*/
|
|
257
|
+
resolveToolsForItem(student: AccommodationProfile, roster: RosterToolConfiguration, item: ItemToolConfig): ResolvedToolConfig[];
|
|
258
|
+
/**
|
|
259
|
+
* Check if a specific tool is allowed
|
|
260
|
+
*/
|
|
261
|
+
isToolAllowed(toolType: string, student: AccommodationProfile, roster: RosterToolConfiguration, item: ItemToolConfig): ToolResolutionResult;
|
|
262
|
+
/**
|
|
263
|
+
* Get resolution trace for debugging
|
|
264
|
+
*/
|
|
265
|
+
getResolutionTrace(toolType: string, student: AccommodationProfile, roster: RosterToolConfiguration, item: ItemToolConfig): ResolutionTrace;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Accommodation profile (student-level tool permissions)
|
|
269
|
+
*/
|
|
270
|
+
export interface AccommodationProfile {
|
|
271
|
+
studentId: string;
|
|
272
|
+
testId?: string;
|
|
273
|
+
rosterId?: string;
|
|
274
|
+
accommodations: Record<string, boolean>;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Resolution trace for debugging
|
|
278
|
+
*/
|
|
279
|
+
export interface ResolutionTrace {
|
|
280
|
+
toolType: string;
|
|
281
|
+
steps: ResolutionStep[];
|
|
282
|
+
finalDecision: ToolResolutionResult;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Resolution step in trace
|
|
286
|
+
*/
|
|
287
|
+
export interface ResolutionStep {
|
|
288
|
+
source: ConfigurationSource;
|
|
289
|
+
decision: "allow" | "block" | "require" | "skip";
|
|
290
|
+
reason: string;
|
|
291
|
+
config?: Partial<ToolConfig>;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Variant Resolver Service
|
|
295
|
+
* Resolves item configuration considering variants
|
|
296
|
+
*/
|
|
297
|
+
export interface VariantResolver {
|
|
298
|
+
/**
|
|
299
|
+
* Resolve variant configuration for an item
|
|
300
|
+
*/
|
|
301
|
+
resolveVariant(itemConfig: ItemToolConfig, context: VariantContext): ResolvedItemConfig;
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Library Loader Service
|
|
305
|
+
* Dynamically loads external libraries with retry and fallback support
|
|
306
|
+
*/
|
|
307
|
+
export interface LibraryLoader {
|
|
308
|
+
/**
|
|
309
|
+
* Load a JavaScript library
|
|
310
|
+
*/
|
|
311
|
+
loadScript(library: LibraryConfig): Promise<void>;
|
|
312
|
+
/**
|
|
313
|
+
* Load a stylesheet
|
|
314
|
+
*/
|
|
315
|
+
loadStylesheet(url: string): Promise<void>;
|
|
316
|
+
/**
|
|
317
|
+
* Check if a library is already loaded
|
|
318
|
+
*/
|
|
319
|
+
isLoaded(libraryId: string): boolean;
|
|
320
|
+
/**
|
|
321
|
+
* Preload multiple libraries in parallel
|
|
322
|
+
*/
|
|
323
|
+
preload(libraries: LibraryConfig[]): Promise<void>;
|
|
324
|
+
/**
|
|
325
|
+
* Unload a library (remove script tag)
|
|
326
|
+
*/
|
|
327
|
+
unload(libraryId: string): void;
|
|
328
|
+
/**
|
|
329
|
+
* Get loader statistics
|
|
330
|
+
*/
|
|
331
|
+
getStats(): LoaderStats;
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* PIE Response Component Interface
|
|
335
|
+
* For tool-to-response integration (e.g., calculator inserting into text field)
|
|
336
|
+
*/
|
|
337
|
+
export interface PIEResponseComponent {
|
|
338
|
+
readonly responseId: string;
|
|
339
|
+
readonly responseType: PIEResponseType;
|
|
340
|
+
getCapabilities(): ResponseCapabilities;
|
|
341
|
+
canAccept(content: string, format: ContentFormat): boolean;
|
|
342
|
+
insertContent(content: string, options: InsertionOptions): Promise<InsertionResult>;
|
|
343
|
+
getContent(format?: ContentFormat): string;
|
|
344
|
+
getCursorPosition(): number | null;
|
|
345
|
+
setCursorPosition(position: number): void;
|
|
346
|
+
focus(): void;
|
|
347
|
+
isFocused(): boolean;
|
|
348
|
+
validate(content: string, format: ContentFormat): ValidationResult;
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* PIE response types
|
|
352
|
+
*/
|
|
353
|
+
export type PIEResponseType = "text-entry" | "extended-text-entry" | "math-inline" | "math-block" | "numeric" | "multiple-choice" | "custom";
|
|
354
|
+
/**
|
|
355
|
+
* Response capabilities
|
|
356
|
+
*/
|
|
357
|
+
export interface ResponseCapabilities {
|
|
358
|
+
acceptsPlainText?: boolean;
|
|
359
|
+
acceptsLatex?: boolean;
|
|
360
|
+
acceptsNumeric?: boolean;
|
|
361
|
+
acceptsHtml?: boolean;
|
|
362
|
+
acceptsFormattedText?: boolean;
|
|
363
|
+
supportedFormats: ContentFormat[];
|
|
364
|
+
supportsReplacement?: boolean;
|
|
365
|
+
supportsInsertion?: boolean;
|
|
366
|
+
supportsAppend?: boolean;
|
|
367
|
+
maxLength?: number;
|
|
368
|
+
allowedCharacters?: string;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Content formats
|
|
372
|
+
*/
|
|
373
|
+
export type ContentFormat = "plain-text" | "latex" | "mathml" | "numeric" | "html" | "markdown" | "formatted-text";
|
|
374
|
+
/**
|
|
375
|
+
* Insertion options for response content
|
|
376
|
+
*/
|
|
377
|
+
export interface InsertionOptions {
|
|
378
|
+
mode: "replace" | "insert" | "append";
|
|
379
|
+
format: ContentFormat;
|
|
380
|
+
position?: number;
|
|
381
|
+
select?: boolean;
|
|
382
|
+
focus?: boolean;
|
|
383
|
+
source?: {
|
|
384
|
+
toolId: string;
|
|
385
|
+
toolType: string;
|
|
386
|
+
timestamp: number;
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Insertion result
|
|
391
|
+
*/
|
|
392
|
+
export interface InsertionResult {
|
|
393
|
+
success: boolean;
|
|
394
|
+
error?: string;
|
|
395
|
+
insertedLength?: number;
|
|
396
|
+
finalCursorPosition?: number;
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Validation result
|
|
400
|
+
*/
|
|
401
|
+
export interface ValidationResult {
|
|
402
|
+
valid: boolean;
|
|
403
|
+
errors?: ValidationError[];
|
|
404
|
+
warnings?: string[];
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Validation error
|
|
408
|
+
*/
|
|
409
|
+
export interface ValidationError {
|
|
410
|
+
code: string;
|
|
411
|
+
message: string;
|
|
412
|
+
position?: number;
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Response Discovery Service
|
|
416
|
+
* Finds and manages PIE response components for tool integration
|
|
417
|
+
*/
|
|
418
|
+
export interface ResponseDiscoveryService {
|
|
419
|
+
getActiveResponse(): PIEResponseComponent | null;
|
|
420
|
+
getResponse(responseId: string): PIEResponseComponent | null;
|
|
421
|
+
getAllResponses(): PIEResponseComponent[];
|
|
422
|
+
getResponsesAccepting(format: ContentFormat): PIEResponseComponent[];
|
|
423
|
+
registerResponse(response: PIEResponseComponent): void;
|
|
424
|
+
unregisterResponse(responseId: string): void;
|
|
425
|
+
onActiveResponseChanged(listener: (response: PIEResponseComponent | null) => void): void;
|
|
426
|
+
}
|
|
427
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool system type definitions
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Tool categories for organizational purposes
|
|
6
|
+
*/
|
|
7
|
+
export var ToolCategory;
|
|
8
|
+
(function (ToolCategory) {
|
|
9
|
+
ToolCategory["STANDALONE"] = "standalone";
|
|
10
|
+
ToolCategory["CONTENT_INTERACTIVE"] = "content-interactive";
|
|
11
|
+
ToolCategory["SERVICE_DEPENDENT"] = "service-dependent";
|
|
12
|
+
})(ToolCategory || (ToolCategory = {}));
|
|
13
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0PH;;GAEG;AACH,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACvB,yCAAyB,CAAA;IACzB,2DAA2C,CAAA;IAC3C,uDAAuC,CAAA;AACxC,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Variant Resolver Service
|
|
3
|
+
* Resolves item configuration considering variants for A/B testing, scaffolding, and adaptations
|
|
4
|
+
*
|
|
5
|
+
* Based on architectural enhancements for item-level variant configuration
|
|
6
|
+
*/
|
|
7
|
+
import type { ItemToolConfig, ResolvedItemConfig, VariantContext, VariantResolver } from "./types";
|
|
8
|
+
export declare class VariantResolverImpl implements VariantResolver {
|
|
9
|
+
/**
|
|
10
|
+
* Resolve variant configuration for an item
|
|
11
|
+
*/
|
|
12
|
+
resolveVariant(itemConfig: ItemToolConfig, context: VariantContext): ResolvedItemConfig;
|
|
13
|
+
/**
|
|
14
|
+
* Resolve tool parameters considering variant and context
|
|
15
|
+
*/
|
|
16
|
+
private _resolveToolParameters;
|
|
17
|
+
/**
|
|
18
|
+
* Select variant parameters based on context
|
|
19
|
+
*/
|
|
20
|
+
private _selectVariantParameters;
|
|
21
|
+
/**
|
|
22
|
+
* Create tool parameters from override
|
|
23
|
+
*/
|
|
24
|
+
private _createToolParametersFromOverride;
|
|
25
|
+
/**
|
|
26
|
+
* Resolve required tools considering overrides
|
|
27
|
+
*/
|
|
28
|
+
private _resolveRequiredTools;
|
|
29
|
+
/**
|
|
30
|
+
* Filter adaptations based on context
|
|
31
|
+
*/
|
|
32
|
+
private _filterAdaptations;
|
|
33
|
+
/**
|
|
34
|
+
* Build resolved config without variants
|
|
35
|
+
*/
|
|
36
|
+
private _buildResolvedConfig;
|
|
37
|
+
/**
|
|
38
|
+
* Convert tool type to human-readable name
|
|
39
|
+
*/
|
|
40
|
+
private _humanizeName;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Singleton instance (deprecated)
|
|
44
|
+
* @deprecated Instantiate VariantResolverImpl directly instead:
|
|
45
|
+
* const resolver = new VariantResolverImpl();
|
|
46
|
+
*/
|
|
47
|
+
export declare const variantResolver: VariantResolverImpl;
|
|
48
|
+
//# sourceMappingURL=variant-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variant-resolver.d.ts","sourceRoot":"","sources":["../../src/tools/variant-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACX,cAAc,EAEd,kBAAkB,EAGlB,cAAc,EACd,eAAe,EACf,MAAM,SAAS,CAAC;AAEjB,qBAAa,mBAAoB,YAAW,eAAe;IAC1D;;OAEG;IACH,cAAc,CACb,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,cAAc,GACrB,kBAAkB;IA+CrB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA8C9B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAsChC;;OAEG;IACH,OAAO,CAAC,iCAAiC;IAiBzC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmB7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkC5B;;OAEG;IACH,OAAO,CAAC,aAAa;CAKrB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,qBAA4B,CAAC"}
|