@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.
- package/README.md +200 -67
- package/dist/attempt/TestSession.d.ts +23 -21
- package/dist/attempt/TestSession.d.ts.map +1 -1
- package/dist/attempt/TestSession.js +17 -15
- package/dist/attempt/TestSession.js.map +1 -1
- package/dist/attempt/adapters/activity-to-test-attempt-session.d.ts +50 -0
- package/dist/attempt/adapters/activity-to-test-attempt-session.d.ts.map +1 -0
- package/dist/attempt/adapters/activity-to-test-attempt-session.js +135 -0
- package/dist/attempt/adapters/activity-to-test-attempt-session.js.map +1 -0
- package/dist/components/ItemToolBar.custom-element.js +628 -0
- package/dist/components/PieAssessmentToolkit.custom-element.js +670 -0
- package/dist/components/item-toolbar-element.d.ts +3 -0
- package/dist/components/item-toolbar-element.d.ts.map +1 -0
- package/dist/components/item-toolbar-element.js +2 -0
- package/dist/components/item-toolbar-element.js.map +1 -0
- package/dist/components/pie-assessment-toolkit-element.d.ts +3 -0
- package/dist/components/pie-assessment-toolkit-element.d.ts.map +1 -0
- package/dist/components/pie-assessment-toolkit-element.js +2 -0
- package/dist/components/pie-assessment-toolkit-element.js.map +1 -0
- package/dist/context/assessment-toolkit-context.d.ts +52 -0
- package/dist/context/assessment-toolkit-context.d.ts.map +1 -0
- package/dist/context/assessment-toolkit-context.js +6 -0
- package/dist/context/assessment-toolkit-context.js.map +1 -0
- package/dist/context/runtime-context-consumer.d.ts +14 -0
- package/dist/context/runtime-context-consumer.d.ts.map +1 -0
- package/dist/context/runtime-context-consumer.js +52 -0
- package/dist/context/runtime-context-consumer.js.map +1 -0
- package/dist/index.d.ts +16 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -11
- package/dist/index.js.map +1 -1
- package/dist/runtime/RuntimeRegistry.d.ts +13 -0
- package/dist/runtime/RuntimeRegistry.d.ts.map +1 -0
- package/dist/runtime/RuntimeRegistry.js +50 -0
- package/dist/runtime/RuntimeRegistry.js.map +1 -0
- package/dist/runtime/SectionRuntimeEngine.d.ts +45 -0
- package/dist/runtime/SectionRuntimeEngine.d.ts.map +1 -0
- package/dist/runtime/SectionRuntimeEngine.js +81 -0
- package/dist/runtime/SectionRuntimeEngine.js.map +1 -0
- package/dist/runtime/registration-events.d.ts +19 -0
- package/dist/runtime/registration-events.d.ts.map +1 -0
- package/dist/runtime/registration-events.js +4 -0
- package/dist/runtime/registration-events.js.map +1 -0
- package/dist/runtime/runtime-event-guards.d.ts +3 -0
- package/dist/runtime/runtime-event-guards.d.ts.map +1 -0
- package/dist/runtime/runtime-event-guards.js +9 -0
- package/dist/runtime/runtime-event-guards.js.map +1 -0
- package/dist/runtime/tool-host-contract.d.ts +30 -0
- package/dist/runtime/tool-host-contract.d.ts.map +1 -0
- package/dist/runtime/tool-host-contract.js +48 -0
- package/dist/runtime/tool-host-contract.js.map +1 -0
- package/dist/services/TTSService.d.ts +3 -1
- package/dist/services/TTSService.d.ts.map +1 -1
- package/dist/services/TTSService.js +13 -12
- package/dist/services/TTSService.js.map +1 -1
- package/dist/services/ThemeProvider.d.ts +1 -0
- package/dist/services/ThemeProvider.d.ts.map +1 -1
- package/dist/services/ThemeProvider.js +82 -46
- package/dist/services/ThemeProvider.js.map +1 -1
- package/dist/services/ToolConfigResolver.d.ts +1 -1
- package/dist/services/ToolConfigResolver.js +1 -1
- package/dist/services/ToolCoordinator.d.ts +1 -1
- package/dist/services/ToolCoordinator.d.ts.map +1 -1
- package/dist/services/ToolRegistry.d.ts +64 -67
- package/dist/services/ToolRegistry.d.ts.map +1 -1
- package/dist/services/ToolRegistry.js +72 -22
- package/dist/services/ToolRegistry.js.map +1 -1
- package/dist/services/ToolkitCoordinator.d.ts +106 -8
- package/dist/services/ToolkitCoordinator.d.ts.map +1 -1
- package/dist/services/ToolkitCoordinator.js +502 -71
- package/dist/services/ToolkitCoordinator.js.map +1 -1
- package/dist/services/createDefaultToolRegistry.d.ts +12 -7
- package/dist/services/createDefaultToolRegistry.d.ts.map +1 -1
- package/dist/services/createDefaultToolRegistry.js +6 -10
- package/dist/services/createDefaultToolRegistry.js.map +1 -1
- package/dist/services/defaultPersonalNeedsProfile.d.ts +4 -0
- package/dist/services/defaultPersonalNeedsProfile.d.ts.map +1 -0
- package/dist/services/defaultPersonalNeedsProfile.js +25 -0
- package/dist/services/defaultPersonalNeedsProfile.js.map +1 -0
- package/dist/services/interfaces.d.ts +61 -1
- package/dist/services/interfaces.d.ts.map +1 -1
- package/dist/services/interfaces.js.map +1 -1
- package/dist/services/pnp-standard-features.d.ts +3 -4
- package/dist/services/pnp-standard-features.d.ts.map +1 -1
- package/dist/services/pnp-standard-features.js +0 -3
- package/dist/services/pnp-standard-features.js.map +1 -1
- package/dist/services/section-controller-types.d.ts +32 -0
- package/dist/services/section-controller-types.d.ts.map +1 -0
- package/dist/services/section-controller-types.js +2 -0
- package/dist/services/section-controller-types.js.map +1 -0
- package/dist/services/tool-context.d.ts +4 -4
- package/dist/services/tool-context.d.ts.map +1 -1
- package/dist/services/tool-context.js +106 -17
- package/dist/services/tool-context.js.map +1 -1
- package/dist/services/tool-instance-id.d.ts +17 -0
- package/dist/services/tool-instance-id.d.ts.map +1 -0
- package/dist/services/tool-instance-id.js +61 -0
- package/dist/services/tool-instance-id.js.map +1 -0
- package/dist/services/tool-providers/IToolProvider.d.ts +2 -3
- package/dist/services/tool-providers/IToolProvider.d.ts.map +1 -1
- package/dist/services/tool-providers/IToolProvider.js +1 -2
- package/dist/services/tool-providers/IToolProvider.js.map +1 -1
- package/dist/services/tool-providers/MathJsToolProvider.d.ts +25 -0
- package/dist/services/tool-providers/MathJsToolProvider.d.ts.map +1 -0
- package/dist/services/tool-providers/MathJsToolProvider.js +53 -0
- package/dist/services/tool-providers/MathJsToolProvider.js.map +1 -0
- package/dist/services/tool-providers/index.d.ts +2 -0
- package/dist/services/tool-providers/index.d.ts.map +1 -1
- package/dist/services/tool-providers/index.js +1 -0
- package/dist/services/tool-providers/index.js.map +1 -1
- package/dist/services/tools-config-normalizer.d.ts +26 -0
- package/dist/services/tools-config-normalizer.d.ts.map +1 -0
- package/dist/services/tools-config-normalizer.js +63 -0
- package/dist/services/tools-config-normalizer.js.map +1 -0
- package/dist/tools/calculators/ti-provider.d.ts.map +1 -1
- package/dist/tools/calculators/ti-provider.js +127 -4
- package/dist/tools/calculators/ti-provider.js.map +1 -1
- package/dist/tools/client.d.ts +2 -1
- package/dist/tools/client.d.ts.map +1 -1
- package/dist/tools/client.js +2 -1
- package/dist/tools/client.js.map +1 -1
- package/dist/tools/default-tool-module-loaders.d.ts +9 -0
- package/dist/tools/default-tool-module-loaders.d.ts.map +1 -0
- package/dist/tools/default-tool-module-loaders.js +17 -0
- package/dist/tools/default-tool-module-loaders.js.map +1 -0
- package/dist/tools/index.d.ts +2 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/library-loader.d.ts +1 -1
- package/dist/tools/library-loader.d.ts.map +1 -1
- package/dist/tools/library-loader.js +7 -2
- package/dist/tools/library-loader.js.map +1 -1
- package/dist/tools/registrations/accessibility-tools.d.ts +1 -9
- package/dist/tools/registrations/accessibility-tools.d.ts.map +1 -1
- package/dist/tools/registrations/accessibility-tools.js +95 -113
- package/dist/tools/registrations/accessibility-tools.js.map +1 -1
- package/dist/tools/registrations/calculator.d.ts +2 -2
- package/dist/tools/registrations/calculator.d.ts.map +1 -1
- package/dist/tools/registrations/calculator.js +34 -55
- package/dist/tools/registrations/calculator.js.map +1 -1
- package/dist/tools/registrations/interaction-tools.d.ts.map +1 -1
- package/dist/tools/registrations/interaction-tools.js +77 -52
- package/dist/tools/registrations/interaction-tools.js.map +1 -1
- package/dist/tools/registrations/measurement-tools.d.ts.map +1 -1
- package/dist/tools/registrations/measurement-tools.js +63 -38
- package/dist/tools/registrations/measurement-tools.js.map +1 -1
- package/dist/tools/registrations/subject-specific-tools.d.ts.map +1 -1
- package/dist/tools/registrations/subject-specific-tools.js +63 -38
- package/dist/tools/registrations/subject-specific-tools.js.map +1 -1
- package/dist/tools/registrations/tts.d.ts +1 -1
- package/dist/tools/registrations/tts.d.ts.map +1 -1
- package/dist/tools/registrations/tts.js +27 -41
- package/dist/tools/registrations/tts.js.map +1 -1
- package/dist/tools/response-discovery.d.ts +12 -14
- package/dist/tools/response-discovery.d.ts.map +1 -1
- package/dist/tools/response-discovery.js +23 -80
- package/dist/tools/response-discovery.js.map +1 -1
- package/dist/tools/tool-tag-map.d.ts +3 -3
- package/dist/tools/tool-tag-map.d.ts.map +1 -1
- package/dist/tools/tool-tag-map.js +2 -3
- package/dist/tools/tool-tag-map.js.map +1 -1
- package/dist/tools/types.d.ts +3 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/package.json +25 -28
- package/src/README.md +16 -32
- package/src/components/ItemToolBar.svelte +489 -0
- package/src/components/PNPProvenanceViewer.svelte +14 -4
- package/src/components/PieAssessmentToolkit.svelte +517 -0
- package/src/components/ToolButton.svelte +11 -11
- package/src/components/ToolButtonGroup.svelte +27 -11
- package/src/tools/README.md +6 -5
- package/src/tools/calculators/README.md +4 -4
- package/dist/player/AssessmentPlayer.d.ts +0 -397
- package/dist/player/AssessmentPlayer.d.ts.map +0 -1
- package/dist/player/AssessmentPlayer.js +0 -974
- package/dist/player/AssessmentPlayer.js.map +0 -1
- package/dist/player/index.d.ts +0 -17
- package/dist/player/index.d.ts.map +0 -1
- package/dist/player/index.js +0 -15
- package/dist/player/index.js.map +0 -1
- package/dist/player/navigation-types.d.ts +0 -63
- package/dist/player/navigation-types.d.ts.map +0 -1
- package/dist/player/navigation-types.js +0 -7
- package/dist/player/navigation-types.js.map +0 -1
- package/dist/player/qti-navigation.d.ts +0 -29
- package/dist/player/qti-navigation.d.ts.map +0 -1
- package/dist/player/qti-navigation.js +0 -160
- package/dist/player/qti-navigation.js.map +0 -1
- package/dist/reference-layout/index.d.ts +0 -19
- package/dist/reference-layout/index.d.ts.map +0 -1
- package/dist/reference-layout/index.js +0 -20
- package/dist/reference-layout/index.js.map +0 -1
- package/dist/services/AnnotationToolbarConfig.d.ts +0 -134
- package/dist/services/AnnotationToolbarConfig.d.ts.map +0 -1
- package/dist/services/AnnotationToolbarConfig.js +0 -100
- package/dist/services/AnnotationToolbarConfig.js.map +0 -1
- package/dist/services/AssessmentAuthoringService.d.ts +0 -60
- package/dist/services/AssessmentAuthoringService.d.ts.map +0 -1
- package/dist/services/AssessmentAuthoringService.js +0 -183
- package/dist/services/AssessmentAuthoringService.js.map +0 -1
- package/dist/services/PNPMapper.d.ts +0 -81
- package/dist/services/PNPMapper.d.ts.map +0 -1
- package/dist/services/PNPMapper.js +0 -108
- package/dist/services/PNPMapper.js.map +0 -1
- package/src/components/PNPProfileTester.example.svelte +0 -188
- package/src/components/PNPProfileTester.svelte +0 -397
- package/src/components/QuestionToolBar.svelte +0 -483
- package/src/player/AssessmentLayout.svelte +0 -68
- package/src/player/README.md +0 -154
- package/src/reference-layout/README.md +0 -135
- package/src/reference-layout/ReferenceLayout.svelte +0 -201
- package/src/reference-layout/components/AssessmentContent.svelte +0 -259
- package/src/reference-layout/components/AssessmentFooter.svelte +0 -89
- package/src/reference-layout/components/AssessmentHeader.svelte +0 -250
- package/src/reference-layout/components/AssessmentNavigation.svelte +0 -134
- package/src/reference-layout/components/AssessmentToolsBar.svelte +0 -176
- package/src/reference-layout/components/ItemPanel.svelte +0 -200
- package/src/reference-layout/components/NotesPanel.svelte +0 -179
- package/src/reference-layout/components/PassagePanel.svelte +0 -76
|
@@ -6,54 +6,45 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { ToolContext, ToolLevel } from "./tool-context.js";
|
|
8
8
|
import type { ToolComponentOverrides } from "../tools/tool-tag-map.js";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export interface ToolButtonOptions {
|
|
13
|
-
/** Whether the button should be disabled */
|
|
14
|
-
disabled?: boolean;
|
|
15
|
-
/** Additional CSS classes */
|
|
16
|
-
className?: string;
|
|
17
|
-
/** Callback when button is clicked */
|
|
18
|
-
onClick?: () => void;
|
|
19
|
-
/** Aria label override */
|
|
20
|
-
ariaLabel?: string;
|
|
21
|
-
/** Custom icon override */
|
|
22
|
-
icon?: string;
|
|
23
|
-
/** Tooltip text */
|
|
24
|
-
tooltip?: string;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Definition for a tool button component
|
|
28
|
-
*/
|
|
29
|
-
export interface ToolButtonDefinition {
|
|
30
|
-
/** Tool ID */
|
|
9
|
+
import type { IElementToolStateStore, IToolCoordinator, IToolkitCoordinator, ITTSService } from "./interfaces.js";
|
|
10
|
+
export type ToolModuleLoader = () => Promise<unknown>;
|
|
11
|
+
export interface ToolToolbarButtonDefinition {
|
|
31
12
|
toolId: string;
|
|
32
|
-
/** Display label */
|
|
33
13
|
label: string;
|
|
34
|
-
/** Icon (SVG string, icon name, or URL) */
|
|
35
14
|
icon: string;
|
|
36
|
-
/** Whether button is disabled */
|
|
37
|
-
disabled: boolean;
|
|
38
|
-
/** Aria label for accessibility */
|
|
39
15
|
ariaLabel: string;
|
|
40
|
-
/** Tooltip text */
|
|
41
16
|
tooltip?: string;
|
|
42
|
-
/** Click handler */
|
|
43
17
|
onClick: () => void;
|
|
44
|
-
/** Additional CSS classes */
|
|
45
18
|
className?: string;
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
active?: boolean;
|
|
46
21
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
22
|
+
export interface ToolbarContext {
|
|
23
|
+
itemId: string;
|
|
24
|
+
catalogId: string;
|
|
25
|
+
language: string;
|
|
26
|
+
ui?: {
|
|
27
|
+
size?: string;
|
|
28
|
+
};
|
|
29
|
+
getScopeElement?: () => HTMLElement | null;
|
|
30
|
+
getGlobalElementId?: () => string | null;
|
|
31
|
+
toolCoordinator: IToolCoordinator | null;
|
|
32
|
+
toolkitCoordinator: IToolkitCoordinator | null;
|
|
33
|
+
ttsService: ITTSService | null;
|
|
34
|
+
elementToolStateStore: IElementToolStateStore | null;
|
|
35
|
+
toggleTool: (toolId: string) => void;
|
|
36
|
+
isToolVisible: (toolId: string) => boolean;
|
|
37
|
+
subscribeVisibility: ((listener: () => void) => (() => void)) | null;
|
|
38
|
+
ensureTTSReady: (() => Promise<void>) | null;
|
|
39
|
+
componentOverrides?: ToolComponentOverrides;
|
|
40
|
+
}
|
|
41
|
+
export interface ToolToolbarRenderResult {
|
|
42
|
+
toolId: string;
|
|
43
|
+
inlineElement?: HTMLElement | null;
|
|
44
|
+
overlayElement?: HTMLElement | null;
|
|
45
|
+
button?: ToolToolbarButtonDefinition | null;
|
|
46
|
+
sync?: () => void;
|
|
47
|
+
subscribeActive?: (callback: (active: boolean) => void) => (() => void);
|
|
57
48
|
}
|
|
58
49
|
/**
|
|
59
50
|
* Tool registration interface
|
|
@@ -83,22 +74,8 @@ export interface ToolRegistration {
|
|
|
83
74
|
* @returns true if tool should be visible, false to hide
|
|
84
75
|
*/
|
|
85
76
|
isVisibleInContext(context: ToolContext): boolean;
|
|
86
|
-
/**
|
|
87
|
-
|
|
88
|
-
*
|
|
89
|
-
* @param context - Context where button will appear
|
|
90
|
-
* @param options - Button options (click handler, disabled state, etc.)
|
|
91
|
-
* @returns Button definition for rendering
|
|
92
|
-
*/
|
|
93
|
-
createButton(context: ToolContext, options: ToolButtonOptions): ToolButtonDefinition;
|
|
94
|
-
/**
|
|
95
|
-
* Create the actual tool instance (e.g., calculator component)
|
|
96
|
-
*
|
|
97
|
-
* @param context - Context where tool is being used
|
|
98
|
-
* @param options - Tool-specific options
|
|
99
|
-
* @returns HTMLElement containing the tool
|
|
100
|
-
*/
|
|
101
|
-
createToolInstance(context: ToolContext, options: ToolInstanceOptions): HTMLElement;
|
|
77
|
+
/** Required toolbar-first render contract. */
|
|
78
|
+
renderToolbar(context: ToolContext, toolbarContext: ToolbarContext): ToolToolbarRenderResult | null;
|
|
102
79
|
}
|
|
103
80
|
/**
|
|
104
81
|
* Tool Registry
|
|
@@ -109,6 +86,17 @@ export declare class ToolRegistry {
|
|
|
109
86
|
private tools;
|
|
110
87
|
private pnpIndex;
|
|
111
88
|
private componentOverrides;
|
|
89
|
+
private moduleLoaders;
|
|
90
|
+
private loadedToolModules;
|
|
91
|
+
private moduleLoadPromises;
|
|
92
|
+
/**
|
|
93
|
+
* Normalize a single tool alias to canonical toolId.
|
|
94
|
+
*/
|
|
95
|
+
normalizeToolId(toolId: string): string;
|
|
96
|
+
/**
|
|
97
|
+
* Normalize a list of tool aliases to canonical toolIds.
|
|
98
|
+
*/
|
|
99
|
+
normalizeToolIds(toolIds: string[]): string[];
|
|
112
100
|
/**
|
|
113
101
|
* Register a tool
|
|
114
102
|
*
|
|
@@ -179,15 +167,6 @@ export declare class ToolRegistry {
|
|
|
179
167
|
* @returns Array of visible tool registrations
|
|
180
168
|
*/
|
|
181
169
|
filterVisibleInContext(allowedToolIds: string[], context: ToolContext): ToolRegistration[];
|
|
182
|
-
/**
|
|
183
|
-
* Create button definitions for visible tools
|
|
184
|
-
*
|
|
185
|
-
* @param allowedToolIds - Tool IDs that passed Pass 1
|
|
186
|
-
* @param context - Context to evaluate
|
|
187
|
-
* @param buttonOptions - Options for button creation
|
|
188
|
-
* @returns Array of button definitions ready for rendering
|
|
189
|
-
*/
|
|
190
|
-
createButtons(allowedToolIds: string[], context: ToolContext, buttonOptions: (toolId: string) => ToolButtonOptions): ToolButtonDefinition[];
|
|
191
170
|
/**
|
|
192
171
|
* Get tool metadata for building UIs
|
|
193
172
|
* Useful for building PNP configuration interfaces
|
|
@@ -218,8 +197,26 @@ export declare class ToolRegistry {
|
|
|
218
197
|
*/
|
|
219
198
|
setComponentOverrides(overrides: ToolComponentOverrides): void;
|
|
220
199
|
/**
|
|
221
|
-
*
|
|
200
|
+
* Register lazy module loaders by toolId.
|
|
201
|
+
* Toolbars call ensureToolModuleLoaded(toolId) before instance creation.
|
|
202
|
+
*/
|
|
203
|
+
setToolModuleLoaders(loaders: Partial<Record<string, ToolModuleLoader>>): void;
|
|
204
|
+
/**
|
|
205
|
+
* Ensure tool module side-effects are loaded exactly once.
|
|
206
|
+
* Safe to call repeatedly; concurrent callers share the same promise.
|
|
207
|
+
*/
|
|
208
|
+
ensureToolModuleLoaded(toolId: string): Promise<void>;
|
|
209
|
+
/**
|
|
210
|
+
* Ensure a set of tool modules are loaded.
|
|
211
|
+
*/
|
|
212
|
+
ensureToolModulesLoaded(toolIds: string[]): Promise<void>;
|
|
213
|
+
/**
|
|
214
|
+
* Whether a tool module has already been loaded.
|
|
215
|
+
*/
|
|
216
|
+
isToolModuleLoaded(toolId: string): boolean;
|
|
217
|
+
/**
|
|
218
|
+
* Render a tool for toolbar use with component overrides attached.
|
|
222
219
|
*/
|
|
223
|
-
|
|
220
|
+
renderForToolbar(toolId: string, context: ToolContext, toolbarContext: ToolbarContext): ToolToolbarRenderResult | null;
|
|
224
221
|
}
|
|
225
222
|
//# sourceMappingURL=ToolRegistry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolRegistry.d.ts","sourceRoot":"","sources":["../../src/services/ToolRegistry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ToolRegistry.d.ts","sourceRoot":"","sources":["../../src/services/ToolRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,21 @@ export class ToolRegistry {
|
|
|
13
13
|
tools = new Map();
|
|
14
14
|
pnpIndex = new Map(); // pnpSupportId → Set<toolId>
|
|
15
15
|
componentOverrides = {};
|
|
16
|
+
moduleLoaders = new Map();
|
|
17
|
+
loadedToolModules = new Set();
|
|
18
|
+
moduleLoadPromises = new Map();
|
|
19
|
+
/**
|
|
20
|
+
* Normalize a single tool alias to canonical toolId.
|
|
21
|
+
*/
|
|
22
|
+
normalizeToolId(toolId) {
|
|
23
|
+
return toolId === "tts" ? "textToSpeech" : toolId;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Normalize a list of tool aliases to canonical toolIds.
|
|
27
|
+
*/
|
|
28
|
+
normalizeToolIds(toolIds) {
|
|
29
|
+
return toolIds.map((toolId) => this.normalizeToolId(toolId));
|
|
30
|
+
}
|
|
16
31
|
/**
|
|
17
32
|
* Register a tool
|
|
18
33
|
*
|
|
@@ -165,21 +180,6 @@ export class ToolRegistry {
|
|
|
165
180
|
}
|
|
166
181
|
return visible;
|
|
167
182
|
}
|
|
168
|
-
/**
|
|
169
|
-
* Create button definitions for visible tools
|
|
170
|
-
*
|
|
171
|
-
* @param allowedToolIds - Tool IDs that passed Pass 1
|
|
172
|
-
* @param context - Context to evaluate
|
|
173
|
-
* @param buttonOptions - Options for button creation
|
|
174
|
-
* @returns Array of button definitions ready for rendering
|
|
175
|
-
*/
|
|
176
|
-
createButtons(allowedToolIds, context, buttonOptions) {
|
|
177
|
-
const visibleTools = this.filterVisibleInContext(allowedToolIds, context);
|
|
178
|
-
return visibleTools.map((tool) => {
|
|
179
|
-
const options = buttonOptions(tool.toolId);
|
|
180
|
-
return tool.createButton(context, options);
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
183
|
/**
|
|
184
184
|
* Get tool metadata for building UIs
|
|
185
185
|
* Useful for building PNP configuration interfaces
|
|
@@ -228,21 +228,71 @@ export class ToolRegistry {
|
|
|
228
228
|
this.componentOverrides = overrides;
|
|
229
229
|
}
|
|
230
230
|
/**
|
|
231
|
-
*
|
|
231
|
+
* Register lazy module loaders by toolId.
|
|
232
|
+
* Toolbars call ensureToolModuleLoaded(toolId) before instance creation.
|
|
233
|
+
*/
|
|
234
|
+
setToolModuleLoaders(loaders) {
|
|
235
|
+
for (const [toolId, loader] of Object.entries(loaders)) {
|
|
236
|
+
if (!loader)
|
|
237
|
+
continue;
|
|
238
|
+
this.moduleLoaders.set(toolId, loader);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Ensure tool module side-effects are loaded exactly once.
|
|
243
|
+
* Safe to call repeatedly; concurrent callers share the same promise.
|
|
244
|
+
*/
|
|
245
|
+
async ensureToolModuleLoaded(toolId) {
|
|
246
|
+
if (this.loadedToolModules.has(toolId))
|
|
247
|
+
return;
|
|
248
|
+
const existingPromise = this.moduleLoadPromises.get(toolId);
|
|
249
|
+
if (existingPromise) {
|
|
250
|
+
await existingPromise;
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
const loader = this.moduleLoaders.get(toolId);
|
|
254
|
+
if (!loader)
|
|
255
|
+
return;
|
|
256
|
+
const loadPromise = (async () => {
|
|
257
|
+
await loader();
|
|
258
|
+
this.loadedToolModules.add(toolId);
|
|
259
|
+
})();
|
|
260
|
+
this.moduleLoadPromises.set(toolId, loadPromise);
|
|
261
|
+
try {
|
|
262
|
+
await loadPromise;
|
|
263
|
+
}
|
|
264
|
+
finally {
|
|
265
|
+
this.moduleLoadPromises.delete(toolId);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Ensure a set of tool modules are loaded.
|
|
270
|
+
*/
|
|
271
|
+
async ensureToolModulesLoaded(toolIds) {
|
|
272
|
+
await Promise.all(toolIds.map((toolId) => this.ensureToolModuleLoaded(toolId)));
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Whether a tool module has already been loaded.
|
|
276
|
+
*/
|
|
277
|
+
isToolModuleLoaded(toolId) {
|
|
278
|
+
return this.loadedToolModules.has(toolId);
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Render a tool for toolbar use with component overrides attached.
|
|
232
282
|
*/
|
|
233
|
-
|
|
283
|
+
renderForToolbar(toolId, context, toolbarContext) {
|
|
234
284
|
const tool = this.get(toolId);
|
|
235
285
|
if (!tool) {
|
|
236
286
|
throw new Error(`Tool '${toolId}' is not registered`);
|
|
237
287
|
}
|
|
238
|
-
const
|
|
239
|
-
...
|
|
240
|
-
|
|
288
|
+
const mergedContext = {
|
|
289
|
+
...toolbarContext,
|
|
290
|
+
componentOverrides: {
|
|
241
291
|
...(this.componentOverrides || {}),
|
|
242
|
-
...(
|
|
292
|
+
...(toolbarContext.componentOverrides || {}),
|
|
243
293
|
},
|
|
244
294
|
};
|
|
245
|
-
return tool.
|
|
295
|
+
return tool.renderToolbar(context, mergedContext);
|
|
246
296
|
}
|
|
247
297
|
}
|
|
248
298
|
//# sourceMappingURL=ToolRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../../src/services/ToolRegistry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../../src/services/ToolRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,13 +14,17 @@
|
|
|
14
14
|
* Part of PIE Assessment Toolkit.
|
|
15
15
|
*/
|
|
16
16
|
import type { AccessibilityCatalog } from "@pie-players/pie-players-shared/types";
|
|
17
|
+
import { type CanonicalToolsConfig, type ToolPlacementConfig, type ToolPolicyConfig, type ToolProvidersConfig } from "./tools-config-normalizer.js";
|
|
17
18
|
import { AccessibilityCatalogResolver } from "./AccessibilityCatalogResolver.js";
|
|
18
19
|
import { ElementToolStateStore } from "./ElementToolStateStore.js";
|
|
19
20
|
import { HighlightCoordinator } from "./HighlightCoordinator.js";
|
|
20
21
|
import { ToolCoordinator } from "./ToolCoordinator.js";
|
|
21
22
|
import { TTSService } from "./TTSService.js";
|
|
22
23
|
import { ToolProviderRegistry } from "./tool-providers/index.js";
|
|
23
|
-
import type {
|
|
24
|
+
import type { IToolProvider } from "./tool-providers/IToolProvider.js";
|
|
25
|
+
import type { DesmosToolProviderConfig, MathJsToolProviderConfig, TIToolProviderConfig, TTSToolProviderConfig } from "./tool-providers/index.js";
|
|
26
|
+
import type { SectionControllerContext, SectionControllerFactoryDefaults, SectionControllerHandle, SectionControllerPersistenceStrategy, SectionPersistenceFactoryDefaults } from "./section-controller-types.js";
|
|
27
|
+
export type { SectionControllerContext, SectionControllerFactoryDefaults, SectionControllerHandle, SectionControllerKey, SectionControllerPersistenceStrategy, SectionPersistenceFactoryDefaults, } from "./section-controller-types.js";
|
|
24
28
|
/**
|
|
25
29
|
* Generic tool configuration
|
|
26
30
|
*/
|
|
@@ -50,7 +54,7 @@ export interface AnswerEliminatorToolConfig extends ToolConfig {
|
|
|
50
54
|
*/
|
|
51
55
|
export interface CalculatorToolConfig extends ToolConfig {
|
|
52
56
|
provider?: "desmos" | "ti" | "mathjs";
|
|
53
|
-
authFetcher?: () => Promise<Partial<DesmosToolProviderConfig | TIToolProviderConfig>>;
|
|
57
|
+
authFetcher?: () => Promise<Partial<DesmosToolProviderConfig | TIToolProviderConfig | MathJsToolProviderConfig>>;
|
|
54
58
|
}
|
|
55
59
|
/**
|
|
56
60
|
* Floating tools configuration (calculator, graph, etc.)
|
|
@@ -59,6 +63,14 @@ export interface FloatingToolsConfig extends ToolConfig {
|
|
|
59
63
|
enabledTools?: string[];
|
|
60
64
|
calculator?: CalculatorToolConfig;
|
|
61
65
|
}
|
|
66
|
+
export interface ToolkitToolsConfig extends CanonicalToolsConfig {
|
|
67
|
+
policy: ToolPolicyConfig;
|
|
68
|
+
placement: Required<ToolPlacementConfig>;
|
|
69
|
+
providers: ToolProvidersConfig & {
|
|
70
|
+
tts?: TTSToolConfig;
|
|
71
|
+
calculator?: CalculatorToolConfig;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
62
74
|
/**
|
|
63
75
|
* Configuration for ToolkitCoordinator
|
|
64
76
|
*/
|
|
@@ -73,11 +85,9 @@ export interface ToolkitCoordinatorConfig {
|
|
|
73
85
|
* Defaults: all tools enabled with default settings.
|
|
74
86
|
*/
|
|
75
87
|
tools?: {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
flagging?: ToolConfig;
|
|
80
|
-
floatingTools?: FloatingToolsConfig;
|
|
88
|
+
policy?: ToolPolicyConfig;
|
|
89
|
+
placement?: ToolPlacementConfig;
|
|
90
|
+
providers?: ToolProvidersConfig;
|
|
81
91
|
};
|
|
82
92
|
/**
|
|
83
93
|
* Accessibility configuration.
|
|
@@ -87,6 +97,50 @@ export interface ToolkitCoordinatorConfig {
|
|
|
87
97
|
catalogs?: AccessibilityCatalog[];
|
|
88
98
|
language?: string;
|
|
89
99
|
};
|
|
100
|
+
/**
|
|
101
|
+
* Optional lifecycle and extension hooks for runtime customization.
|
|
102
|
+
*/
|
|
103
|
+
hooks?: ToolkitCoordinatorHooks;
|
|
104
|
+
/**
|
|
105
|
+
* Lazy initialization mode.
|
|
106
|
+
* When true, async service/provider initialization is deferred until ensure methods are called.
|
|
107
|
+
*
|
|
108
|
+
* @default false
|
|
109
|
+
*/
|
|
110
|
+
lazyInit?: boolean;
|
|
111
|
+
}
|
|
112
|
+
export interface ToolkitErrorContext {
|
|
113
|
+
phase: "coordinator-ready" | "state-load" | "state-save" | "provider-register" | "provider-init" | "tts-init" | "section-controller-init" | "section-controller-dispose";
|
|
114
|
+
providerId?: string;
|
|
115
|
+
details?: Record<string, unknown>;
|
|
116
|
+
}
|
|
117
|
+
export interface ProviderLifecycleContext {
|
|
118
|
+
providerId: string;
|
|
119
|
+
providerName?: string;
|
|
120
|
+
}
|
|
121
|
+
export interface ToolkitInitStatus {
|
|
122
|
+
tts: boolean;
|
|
123
|
+
stateLoaded: boolean;
|
|
124
|
+
coordinator: boolean;
|
|
125
|
+
providers: Record<string, boolean>;
|
|
126
|
+
}
|
|
127
|
+
export interface ToolkitCoordinatorHooks {
|
|
128
|
+
onError?: (error: Error, context: ToolkitErrorContext) => void;
|
|
129
|
+
onTTSError?: (error: Error, context: ToolkitErrorContext) => void;
|
|
130
|
+
onProviderError?: (providerId: string, error: Error, context: ToolkitErrorContext) => void;
|
|
131
|
+
onBeforeTTSInit?: (context: ToolkitErrorContext) => void | Promise<void>;
|
|
132
|
+
onTTSReady?: () => void | Promise<void>;
|
|
133
|
+
onCoordinatorReady?: (coordinator: ToolkitCoordinator) => void | Promise<void>;
|
|
134
|
+
onProviderRegistered?: (providerId: string, meta: ProviderLifecycleContext) => void | Promise<void>;
|
|
135
|
+
onProviderInitStart?: (providerId: string, meta: ProviderLifecycleContext) => void | Promise<void>;
|
|
136
|
+
onProviderReady?: (providerId: string, meta: ProviderLifecycleContext) => void | Promise<void>;
|
|
137
|
+
onTelemetry?: (eventName: string, payload?: Record<string, unknown>) => void | Promise<void>;
|
|
138
|
+
loadToolState?: () => Record<string, Record<string, unknown>> | Promise<Record<string, Record<string, unknown>> | null | undefined> | null | undefined;
|
|
139
|
+
saveToolState?: (state: Record<string, Record<string, unknown>>) => void | Promise<void>;
|
|
140
|
+
createSectionController?: (context: SectionControllerContext, defaults: SectionControllerFactoryDefaults) => SectionControllerHandle | Promise<SectionControllerHandle>;
|
|
141
|
+
createSectionPersistence?: (context: SectionControllerContext, defaults: SectionPersistenceFactoryDefaults) => SectionControllerPersistenceStrategy | Promise<SectionControllerPersistenceStrategy>;
|
|
142
|
+
onSectionControllerReady?: (context: SectionControllerContext, controller: SectionControllerHandle) => void | Promise<void>;
|
|
143
|
+
onSectionControllerDispose?: (context: SectionControllerContext, controller: SectionControllerHandle) => void | Promise<void>;
|
|
90
144
|
}
|
|
91
145
|
/**
|
|
92
146
|
* Service bundle returned by getServiceBundle()
|
|
@@ -133,18 +187,58 @@ export declare class ToolkitCoordinator {
|
|
|
133
187
|
readonly elementToolStateStore: ElementToolStateStore;
|
|
134
188
|
readonly catalogResolver: AccessibilityCatalogResolver;
|
|
135
189
|
readonly toolProviderRegistry: ToolProviderRegistry;
|
|
190
|
+
readonly hooks: ToolkitCoordinatorHooks;
|
|
191
|
+
readonly lazyInit: boolean;
|
|
136
192
|
/** Track TTS initialization state */
|
|
137
193
|
private ttsInitialized;
|
|
194
|
+
private ttsInitPromise?;
|
|
195
|
+
private stateLoaded;
|
|
196
|
+
private stateLoadPromise?;
|
|
197
|
+
private coordinatorReadyPromise?;
|
|
198
|
+
private coordinatorReadyNotified;
|
|
199
|
+
private readonly providerInitPromises;
|
|
200
|
+
private readonly sectionControllers;
|
|
201
|
+
private readonly sectionControllerInitPromises;
|
|
202
|
+
private readonly sectionPersistenceStrategies;
|
|
138
203
|
/** Callback for floating tools changes */
|
|
139
204
|
private floatingToolsChangeCallback;
|
|
205
|
+
private static resolveConfig;
|
|
140
206
|
constructor(config: ToolkitCoordinatorConfig);
|
|
207
|
+
private emitTelemetry;
|
|
208
|
+
private handleError;
|
|
209
|
+
private getSectionControllerMapKey;
|
|
210
|
+
private createDefaultSectionPersistence;
|
|
211
|
+
private resolveSectionPersistence;
|
|
212
|
+
private setupStatePersistenceHooks;
|
|
213
|
+
private ensureStateLoaded;
|
|
141
214
|
/**
|
|
142
215
|
* Register tool providers in the registry
|
|
143
216
|
*/
|
|
144
217
|
private _registerToolProviders;
|
|
218
|
+
private registerProvider;
|
|
219
|
+
ensureProviderReady(providerId: string): Promise<IToolProvider>;
|
|
220
|
+
setHooks(hooks: ToolkitCoordinatorHooks): void;
|
|
221
|
+
getSectionController(args: {
|
|
222
|
+
sectionId: string;
|
|
223
|
+
attemptId?: string;
|
|
224
|
+
}): SectionControllerHandle | undefined;
|
|
225
|
+
getOrCreateSectionController(args: {
|
|
226
|
+
sectionId: string;
|
|
227
|
+
attemptId?: string;
|
|
228
|
+
input?: unknown;
|
|
229
|
+
updateExisting?: boolean;
|
|
230
|
+
createDefaultController: () => SectionControllerHandle | Promise<SectionControllerHandle>;
|
|
231
|
+
}): Promise<SectionControllerHandle>;
|
|
232
|
+
disposeSectionController(args: {
|
|
233
|
+
sectionId: string;
|
|
234
|
+
attemptId?: string;
|
|
235
|
+
persistBeforeDispose?: boolean;
|
|
236
|
+
clearPersistence?: boolean;
|
|
237
|
+
}): Promise<void>;
|
|
145
238
|
/**
|
|
146
239
|
* Initialize TTS service with provider
|
|
147
240
|
*/
|
|
241
|
+
ensureTTSReady(config?: TTSToolConfig): Promise<void>;
|
|
148
242
|
private _initializeTTS;
|
|
149
243
|
/**
|
|
150
244
|
* Get all services as a bundle for section player convenience.
|
|
@@ -157,7 +251,10 @@ export declare class ToolkitCoordinator {
|
|
|
157
251
|
* @param providerId Provider identifier
|
|
158
252
|
* @returns Tool provider instance
|
|
159
253
|
*/
|
|
160
|
-
getToolProvider(providerId: string): Promise<
|
|
254
|
+
getToolProvider(providerId: string): Promise<IToolProvider<any, any>>;
|
|
255
|
+
waitUntilReady(): Promise<void>;
|
|
256
|
+
isReady(): boolean;
|
|
257
|
+
getInitStatus(): ToolkitInitStatus;
|
|
161
258
|
/**
|
|
162
259
|
* Check if a tool is enabled.
|
|
163
260
|
* Tools are enabled by default unless explicitly disabled.
|
|
@@ -206,5 +303,6 @@ export declare class ToolkitCoordinator {
|
|
|
206
303
|
* Called after updateToolConfig().
|
|
207
304
|
*/
|
|
208
305
|
private _applyToolConfigChange;
|
|
306
|
+
private _reconfigureTTSProvider;
|
|
209
307
|
}
|
|
210
308
|
//# sourceMappingURL=ToolkitCoordinator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolkitCoordinator.d.ts","sourceRoot":"","sources":["../../src/services/ToolkitCoordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EACN,oBAAoB,
|
|
1
|
+
{"version":3,"file":"ToolkitCoordinator.d.ts","sourceRoot":"","sources":["../../src/services/ToolkitCoordinator.ts"],"names":[],"mappings":"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"}
|