@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,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Provider Interface
|
|
3
|
+
*
|
|
4
|
+
* Unified interface for all assessment tools that require
|
|
5
|
+
* configuration, authentication, or external services.
|
|
6
|
+
*
|
|
7
|
+
* Examples: Desmos calculators, TI calculators, TTS services,
|
|
8
|
+
* translation services, dictionary APIs, etc.
|
|
9
|
+
*
|
|
10
|
+
* Part of PIE Assessment Toolkit.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Tool category classification
|
|
14
|
+
*/
|
|
15
|
+
export type ToolCategory = "calculator" | "tts" | "translation" | "dictionary" | "annotation" | "accessibility" | "other";
|
|
16
|
+
/**
|
|
17
|
+
* Tool provider capabilities descriptor
|
|
18
|
+
*
|
|
19
|
+
* Describes what features and limitations a provider has.
|
|
20
|
+
*/
|
|
21
|
+
export interface ToolProviderCapabilities {
|
|
22
|
+
/**
|
|
23
|
+
* Can be used offline (no network required)
|
|
24
|
+
*/
|
|
25
|
+
supportsOffline: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Requires API key or authentication
|
|
28
|
+
*/
|
|
29
|
+
requiresAuth: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Maximum concurrent instances (null = unlimited)
|
|
32
|
+
*/
|
|
33
|
+
maxInstances?: number | null;
|
|
34
|
+
/**
|
|
35
|
+
* Provider-specific capabilities/features
|
|
36
|
+
* @example { graphing: true, scientific: true, basic: true }
|
|
37
|
+
*/
|
|
38
|
+
features: Record<string, boolean>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Tool Provider Interface
|
|
42
|
+
*
|
|
43
|
+
* Base interface for all tool providers in the assessment toolkit.
|
|
44
|
+
* Providers are stateless factories that create configured tool instances.
|
|
45
|
+
*
|
|
46
|
+
* @template TConfig Configuration type for this provider
|
|
47
|
+
* @template TInstance Instance type created by this provider
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* class DesmosToolProvider implements IToolProvider<DesmosConfig, CalculatorProvider> {
|
|
52
|
+
* readonly providerId = 'desmos-calculator';
|
|
53
|
+
* readonly providerName = 'Desmos Calculator';
|
|
54
|
+
* readonly category = 'calculator';
|
|
55
|
+
* // ...
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export interface IToolProvider<TConfig = any, TInstance = any> {
|
|
60
|
+
/**
|
|
61
|
+
* Unique identifier for this provider
|
|
62
|
+
*
|
|
63
|
+
* @example 'desmos-calculator', 'aws-polly-tts', 'ti-calculator'
|
|
64
|
+
*/
|
|
65
|
+
readonly providerId: string;
|
|
66
|
+
/**
|
|
67
|
+
* Human-readable provider name
|
|
68
|
+
*
|
|
69
|
+
* @example 'Desmos Calculator', 'AWS Polly TTS'
|
|
70
|
+
*/
|
|
71
|
+
readonly providerName: string;
|
|
72
|
+
/**
|
|
73
|
+
* Tool category for this provider
|
|
74
|
+
*
|
|
75
|
+
* @example 'calculator', 'tts', 'translation'
|
|
76
|
+
*/
|
|
77
|
+
readonly category: ToolCategory;
|
|
78
|
+
/**
|
|
79
|
+
* Provider version
|
|
80
|
+
*
|
|
81
|
+
* @example '1.0', '2.5', '1.10'
|
|
82
|
+
*/
|
|
83
|
+
readonly version: string;
|
|
84
|
+
/**
|
|
85
|
+
* Does this provider require authentication/API keys?
|
|
86
|
+
*
|
|
87
|
+
* When true, the provider should be initialized with auth credentials
|
|
88
|
+
* or an authFetcher function to retrieve them from a backend service.
|
|
89
|
+
*/
|
|
90
|
+
readonly requiresAuth: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Initialize the provider
|
|
93
|
+
*
|
|
94
|
+
* Sets up the provider with configuration and prepares it for use.
|
|
95
|
+
* For auth-based providers, this is where API keys/tokens are validated.
|
|
96
|
+
*
|
|
97
|
+
* @param config Provider configuration (may include auth)
|
|
98
|
+
* @returns Promise that resolves when provider is ready
|
|
99
|
+
* @throws Error if initialization fails
|
|
100
|
+
*/
|
|
101
|
+
initialize(config: TConfig): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Create a tool instance
|
|
104
|
+
*
|
|
105
|
+
* Creates a configured instance of the tool ready for use.
|
|
106
|
+
* The provider must be initialized before calling this method.
|
|
107
|
+
*
|
|
108
|
+
* @param config Instance-specific configuration (optional)
|
|
109
|
+
* @returns Tool instance ready for use
|
|
110
|
+
* @throws Error if provider not initialized
|
|
111
|
+
*/
|
|
112
|
+
createInstance(config?: Partial<TConfig>): Promise<TInstance>;
|
|
113
|
+
/**
|
|
114
|
+
* Get provider capabilities
|
|
115
|
+
*
|
|
116
|
+
* Returns a description of what this provider supports.
|
|
117
|
+
*
|
|
118
|
+
* @returns Capabilities descriptor
|
|
119
|
+
*/
|
|
120
|
+
getCapabilities(): ToolProviderCapabilities;
|
|
121
|
+
/**
|
|
122
|
+
* Check if provider is ready to use
|
|
123
|
+
*
|
|
124
|
+
* Returns true if initialize() has completed successfully.
|
|
125
|
+
*
|
|
126
|
+
* @returns true if provider is initialized and ready
|
|
127
|
+
*/
|
|
128
|
+
isReady(): boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Clean up provider resources
|
|
131
|
+
*
|
|
132
|
+
* Destroys the provider and releases any resources (connections, timers, etc.).
|
|
133
|
+
* After calling this, the provider should not be used.
|
|
134
|
+
*/
|
|
135
|
+
destroy(): void;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=IToolProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IToolProvider.d.ts","sourceRoot":"","sources":["../../../src/services/tool-providers/IToolProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,MAAM,MAAM,YAAY,GACrB,YAAY,GACZ,KAAK,GACL,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,eAAe,GACf,OAAO,CAAC;AAEX;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACxC;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,aAAa,CAAC,OAAO,GAAG,GAAG,EAAE,SAAS,GAAG,GAAG;IAC5D;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAEhC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAE/B;;;;;;;;;OASG;IACH,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C;;;;;;;;;OASG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAE9D;;;;;;OAMG;IACH,eAAe,IAAI,wBAAwB,CAAC;IAE5C;;;;;;OAMG;IACH,OAAO,IAAI,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,OAAO,IAAI,IAAI,CAAC;CAChB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Provider Interface
|
|
3
|
+
*
|
|
4
|
+
* Unified interface for all assessment tools that require
|
|
5
|
+
* configuration, authentication, or external services.
|
|
6
|
+
*
|
|
7
|
+
* Examples: Desmos calculators, TI calculators, TTS services,
|
|
8
|
+
* translation services, dictionary APIs, etc.
|
|
9
|
+
*
|
|
10
|
+
* Part of PIE Assessment Toolkit.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=IToolProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IToolProvider.js","sourceRoot":"","sources":["../../../src/services/tool-providers/IToolProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TI Calculator Tool Provider
|
|
3
|
+
*
|
|
4
|
+
* Provides Texas Instruments calculator emulators (TI-84, TI-108, TI-34 MV).
|
|
5
|
+
*
|
|
6
|
+
* NOTE: Requires licensed TI emulator libraries from Texas Instruments.
|
|
7
|
+
* These libraries must be hosted on your server at /lib/ti/{version}/
|
|
8
|
+
*
|
|
9
|
+
* Part of PIE Assessment Toolkit.
|
|
10
|
+
*/
|
|
11
|
+
import type { CalculatorProvider, TICalculatorConfig } from "@pie-players/pie-calculator";
|
|
12
|
+
import type { IToolProvider, ToolProviderCapabilities } from "./IToolProvider";
|
|
13
|
+
/**
|
|
14
|
+
* TI tool provider configuration
|
|
15
|
+
*/
|
|
16
|
+
export interface TIToolProviderConfig {
|
|
17
|
+
/**
|
|
18
|
+
* Base URL for TI emulator libraries
|
|
19
|
+
* @default '/lib/ti'
|
|
20
|
+
* @example '/static/calculators/ti'
|
|
21
|
+
* @example 'https://cdn.example.com/ti'
|
|
22
|
+
*/
|
|
23
|
+
libraryBaseUrl?: string;
|
|
24
|
+
/**
|
|
25
|
+
* TI emulator version to load
|
|
26
|
+
* @default 'v2.8.0'
|
|
27
|
+
*/
|
|
28
|
+
version?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Default calculator configuration applied to all instances
|
|
31
|
+
*/
|
|
32
|
+
defaultConfig?: TICalculatorConfig;
|
|
33
|
+
/**
|
|
34
|
+
* Restricted mode (test mode) - disables certain features
|
|
35
|
+
* @default false
|
|
36
|
+
*/
|
|
37
|
+
restrictedMode?: boolean;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* TI Calculator Tool Provider
|
|
41
|
+
*
|
|
42
|
+
* Wraps TICalculatorProvider with the IToolProvider interface
|
|
43
|
+
* for use in the ToolProviderRegistry.
|
|
44
|
+
*
|
|
45
|
+
* TI calculators do not require API keys, but DO require
|
|
46
|
+
* licensed emulator libraries to be hosted on your server.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const provider = new TIToolProvider();
|
|
51
|
+
*
|
|
52
|
+
* await provider.initialize({
|
|
53
|
+
* libraryBaseUrl: '/lib/ti',
|
|
54
|
+
* version: 'v2.8.0',
|
|
55
|
+
* restrictedMode: false,
|
|
56
|
+
* });
|
|
57
|
+
*
|
|
58
|
+
* const calculatorProvider = await provider.createInstance();
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare class TIToolProvider implements IToolProvider<TIToolProviderConfig, CalculatorProvider> {
|
|
62
|
+
readonly providerId = "ti-calculator";
|
|
63
|
+
readonly providerName = "Texas Instruments Calculator";
|
|
64
|
+
readonly category: "calculator";
|
|
65
|
+
readonly version = "2.8.0";
|
|
66
|
+
readonly requiresAuth = false;
|
|
67
|
+
private tiProvider;
|
|
68
|
+
private config;
|
|
69
|
+
/**
|
|
70
|
+
* Initialize TI calculator provider
|
|
71
|
+
*
|
|
72
|
+
* Loads the TI emulator libraries (ELG shared library).
|
|
73
|
+
*
|
|
74
|
+
* @param config Configuration with library base URL and version
|
|
75
|
+
* @throws Error if initialization fails or libraries not found
|
|
76
|
+
*/
|
|
77
|
+
initialize(config: TIToolProviderConfig): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Create a calculator provider instance
|
|
80
|
+
*
|
|
81
|
+
* Returns the initialized TI calculator provider.
|
|
82
|
+
*
|
|
83
|
+
* @param config Optional instance-specific configuration (currently unused)
|
|
84
|
+
* @returns TI calculator provider
|
|
85
|
+
* @throws Error if provider not initialized
|
|
86
|
+
*/
|
|
87
|
+
createInstance(config?: Partial<TIToolProviderConfig>): Promise<CalculatorProvider>;
|
|
88
|
+
/**
|
|
89
|
+
* Get provider capabilities
|
|
90
|
+
*
|
|
91
|
+
* @returns TI calculator capabilities
|
|
92
|
+
*/
|
|
93
|
+
getCapabilities(): ToolProviderCapabilities;
|
|
94
|
+
/**
|
|
95
|
+
* Check if provider is ready
|
|
96
|
+
*
|
|
97
|
+
* @returns true if provider is initialized
|
|
98
|
+
*/
|
|
99
|
+
isReady(): boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Clean up provider resources
|
|
102
|
+
*
|
|
103
|
+
* Destroys the TI calculator provider and releases resources.
|
|
104
|
+
*/
|
|
105
|
+
destroy(): void;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=TIToolProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TIToolProvider.d.ts","sourceRoot":"","sources":["../../../src/services/tool-providers/TIToolProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACX,kBAAkB,EAClB,kBAAkB,EAClB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,aAAa,CAAC,EAAE,kBAAkB,CAAC;IAEnC;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,cACZ,YAAW,aAAa,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;IAElE,QAAQ,CAAC,UAAU,mBAAmB;IACtC,QAAQ,CAAC,YAAY,kCAAkC;IACvD,QAAQ,CAAC,QAAQ,EAAG,YAAY,CAAU;IAC1C,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,YAAY,SAAS;IAE9B,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,MAAM,CAAqC;IAEnD;;;;;;;OAOG;IACG,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB7D;;;;;;;;OAQG;IACG,cAAc,CACnB,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACpC,OAAO,CAAC,kBAAkB,CAAC;IAU9B;;;;OAIG;IACH,eAAe,IAAI,wBAAwB;IAe3C;;;;OAIG;IACH,OAAO,IAAI,OAAO;IAIlB;;;;OAIG;IACH,OAAO,IAAI,IAAI;CAQf"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TI Calculator Tool Provider
|
|
3
|
+
*
|
|
4
|
+
* Provides Texas Instruments calculator emulators (TI-84, TI-108, TI-34 MV).
|
|
5
|
+
*
|
|
6
|
+
* NOTE: Requires licensed TI emulator libraries from Texas Instruments.
|
|
7
|
+
* These libraries must be hosted on your server at /lib/ti/{version}/
|
|
8
|
+
*
|
|
9
|
+
* Part of PIE Assessment Toolkit.
|
|
10
|
+
*/
|
|
11
|
+
import { TICalculatorProvider } from "../../tools/calculators/ti-provider";
|
|
12
|
+
/**
|
|
13
|
+
* TI Calculator Tool Provider
|
|
14
|
+
*
|
|
15
|
+
* Wraps TICalculatorProvider with the IToolProvider interface
|
|
16
|
+
* for use in the ToolProviderRegistry.
|
|
17
|
+
*
|
|
18
|
+
* TI calculators do not require API keys, but DO require
|
|
19
|
+
* licensed emulator libraries to be hosted on your server.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const provider = new TIToolProvider();
|
|
24
|
+
*
|
|
25
|
+
* await provider.initialize({
|
|
26
|
+
* libraryBaseUrl: '/lib/ti',
|
|
27
|
+
* version: 'v2.8.0',
|
|
28
|
+
* restrictedMode: false,
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* const calculatorProvider = await provider.createInstance();
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export class TIToolProvider {
|
|
35
|
+
providerId = "ti-calculator";
|
|
36
|
+
providerName = "Texas Instruments Calculator";
|
|
37
|
+
category = "calculator";
|
|
38
|
+
version = "2.8.0";
|
|
39
|
+
requiresAuth = false; // No API key needed, but requires licensed libraries
|
|
40
|
+
tiProvider = null;
|
|
41
|
+
config = null;
|
|
42
|
+
/**
|
|
43
|
+
* Initialize TI calculator provider
|
|
44
|
+
*
|
|
45
|
+
* Loads the TI emulator libraries (ELG shared library).
|
|
46
|
+
*
|
|
47
|
+
* @param config Configuration with library base URL and version
|
|
48
|
+
* @throws Error if initialization fails or libraries not found
|
|
49
|
+
*/
|
|
50
|
+
async initialize(config) {
|
|
51
|
+
if (this.tiProvider) {
|
|
52
|
+
console.warn("[TIToolProvider] Already initialized, skipping reinitialization");
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
this.config = config;
|
|
56
|
+
this.tiProvider = new TICalculatorProvider();
|
|
57
|
+
// Initialize TI emulator libraries
|
|
58
|
+
try {
|
|
59
|
+
await this.tiProvider.initialize();
|
|
60
|
+
console.log("[TIToolProvider] Initialized successfully (TI emulator libraries loaded)");
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
console.error("[TIToolProvider] Initialization failed:", error);
|
|
64
|
+
throw new Error("Failed to initialize TI calculator provider. Ensure TI emulator libraries are available.");
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Create a calculator provider instance
|
|
69
|
+
*
|
|
70
|
+
* Returns the initialized TI calculator provider.
|
|
71
|
+
*
|
|
72
|
+
* @param config Optional instance-specific configuration (currently unused)
|
|
73
|
+
* @returns TI calculator provider
|
|
74
|
+
* @throws Error if provider not initialized
|
|
75
|
+
*/
|
|
76
|
+
async createInstance(config) {
|
|
77
|
+
if (!this.tiProvider) {
|
|
78
|
+
throw new Error("[TIToolProvider] Provider not initialized. Call initialize() first.");
|
|
79
|
+
}
|
|
80
|
+
return this.tiProvider;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get provider capabilities
|
|
84
|
+
*
|
|
85
|
+
* @returns TI calculator capabilities
|
|
86
|
+
*/
|
|
87
|
+
getCapabilities() {
|
|
88
|
+
return {
|
|
89
|
+
supportsOffline: true, // Works offline once libraries loaded
|
|
90
|
+
requiresAuth: false,
|
|
91
|
+
maxInstances: null, // Unlimited calculator instances
|
|
92
|
+
features: {
|
|
93
|
+
"ti-84": true,
|
|
94
|
+
"ti-108": true,
|
|
95
|
+
"ti-34-mv": true,
|
|
96
|
+
graphing: true, // TI-84 supports graphing
|
|
97
|
+
scientific: true, // All TI models support scientific functions
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Check if provider is ready
|
|
103
|
+
*
|
|
104
|
+
* @returns true if provider is initialized
|
|
105
|
+
*/
|
|
106
|
+
isReady() {
|
|
107
|
+
return this.tiProvider !== null;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Clean up provider resources
|
|
111
|
+
*
|
|
112
|
+
* Destroys the TI calculator provider and releases resources.
|
|
113
|
+
*/
|
|
114
|
+
destroy() {
|
|
115
|
+
if (this.tiProvider) {
|
|
116
|
+
this.tiProvider.destroy();
|
|
117
|
+
this.tiProvider = null;
|
|
118
|
+
}
|
|
119
|
+
this.config = null;
|
|
120
|
+
console.log("[TIToolProvider] Destroyed");
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=TIToolProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TIToolProvider.js","sourceRoot":"","sources":["../../../src/services/tool-providers/TIToolProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAiC3E;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,cAAc;IAGjB,UAAU,GAAG,eAAe,CAAC;IAC7B,YAAY,GAAG,8BAA8B,CAAC;IAC9C,QAAQ,GAAG,YAAqB,CAAC;IACjC,OAAO,GAAG,OAAO,CAAC;IAClB,YAAY,GAAG,KAAK,CAAC,CAAC,qDAAqD;IAE5E,UAAU,GAAgC,IAAI,CAAC;IAC/C,MAAM,GAAgC,IAAI,CAAC;IAEnD;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CAAC,MAA4B;QAC5C,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CACX,iEAAiE,CACjE,CAAC;YACF,OAAO;QACR,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAE7C,mCAAmC;QACnC,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CACV,0EAA0E,CAC1E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;YAChE,MAAM,IAAI,KAAK,CACd,0FAA0F,CAC1F,CAAC;QACH,CAAC;IACF,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,cAAc,CACnB,MAAsC;QAEtC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACd,qEAAqE,CACrE,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,eAAe;QACd,OAAO;YACN,eAAe,EAAE,IAAI,EAAE,sCAAsC;YAC7D,YAAY,EAAE,KAAK;YACnB,YAAY,EAAE,IAAI,EAAE,iCAAiC;YACrD,QAAQ,EAAE;gBACT,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,IAAI,EAAE,0BAA0B;gBAC1C,UAAU,EAAE,IAAI,EAAE,6CAA6C;aAC/D;SACD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,OAAO;QACN,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,OAAO;QACN,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC3C,CAAC;CACD"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TTS Tool Provider
|
|
3
|
+
*
|
|
4
|
+
* Unified provider for all TTS backends:
|
|
5
|
+
* - Browser Web Speech API (no auth)
|
|
6
|
+
* - AWS Polly (requires auth via server proxy)
|
|
7
|
+
* - Google Cloud TTS (requires auth via server proxy)
|
|
8
|
+
*
|
|
9
|
+
* Part of PIE Assessment Toolkit.
|
|
10
|
+
*/
|
|
11
|
+
import type { ITTSProvider, TTSConfig } from "@pie-players/pie-tts";
|
|
12
|
+
import type { IToolProvider, ToolProviderCapabilities } from "./IToolProvider";
|
|
13
|
+
/**
|
|
14
|
+
* TTS backend type
|
|
15
|
+
*/
|
|
16
|
+
export type TTSBackend = "browser" | "polly" | "google" | "server";
|
|
17
|
+
/**
|
|
18
|
+
* TTS tool provider configuration
|
|
19
|
+
*/
|
|
20
|
+
export interface TTSToolProviderConfig extends Partial<TTSConfig> {
|
|
21
|
+
/**
|
|
22
|
+
* TTS backend to use
|
|
23
|
+
*/
|
|
24
|
+
backend: TTSBackend;
|
|
25
|
+
/**
|
|
26
|
+
* Server API endpoint (for server backends)
|
|
27
|
+
* @example '/api/tts/synthesize'
|
|
28
|
+
* @example 'https://api.example.com/tts/synthesize'
|
|
29
|
+
*/
|
|
30
|
+
apiEndpoint?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Provider to use on server ('polly', 'google')
|
|
33
|
+
* Only used when backend is 'server', 'polly', or 'google'
|
|
34
|
+
*/
|
|
35
|
+
serverProvider?: "polly" | "google";
|
|
36
|
+
/**
|
|
37
|
+
* Auth token (if required)
|
|
38
|
+
* Typically fetched via authFetcher in ToolProviderRegistry
|
|
39
|
+
*/
|
|
40
|
+
authToken?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Organization ID for multi-tenant applications
|
|
43
|
+
*/
|
|
44
|
+
organizationId?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Default voice to use
|
|
47
|
+
*/
|
|
48
|
+
voice?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Speech rate (0.25 to 4.0, default 1.0)
|
|
51
|
+
*/
|
|
52
|
+
rate?: number;
|
|
53
|
+
/**
|
|
54
|
+
* Speech pitch (0 to 2, default 1.0)
|
|
55
|
+
* Note: Only browser backend supports pitch
|
|
56
|
+
*/
|
|
57
|
+
pitch?: number;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* TTS Tool Provider
|
|
61
|
+
*
|
|
62
|
+
* Wraps TTS providers (Browser, Polly, Google) with the IToolProvider interface
|
|
63
|
+
* for use in the ToolProviderRegistry.
|
|
64
|
+
*
|
|
65
|
+
* @example Browser TTS (no auth)
|
|
66
|
+
* ```typescript
|
|
67
|
+
* const provider = new TTSToolProvider();
|
|
68
|
+
* await provider.initialize({ backend: 'browser' });
|
|
69
|
+
* const ttsProvider = await provider.createInstance();
|
|
70
|
+
* ```
|
|
71
|
+
*
|
|
72
|
+
* @example Server TTS (with auth)
|
|
73
|
+
* ```typescript
|
|
74
|
+
* const provider = new TTSToolProvider();
|
|
75
|
+
* await provider.initialize({
|
|
76
|
+
* backend: 'polly',
|
|
77
|
+
* apiEndpoint: '/api/tts/synthesize',
|
|
78
|
+
* authToken: 'bearer-token', // Fetched via authFetcher
|
|
79
|
+
* });
|
|
80
|
+
* const ttsProvider = await provider.createInstance();
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
export declare class TTSToolProvider implements IToolProvider<TTSToolProviderConfig, ITTSProvider> {
|
|
84
|
+
readonly providerId = "tts-service";
|
|
85
|
+
readonly providerName = "Text-to-Speech";
|
|
86
|
+
readonly category: "tts";
|
|
87
|
+
readonly version = "1.0";
|
|
88
|
+
readonly requiresAuth: boolean;
|
|
89
|
+
private ttsProvider;
|
|
90
|
+
private config;
|
|
91
|
+
/**
|
|
92
|
+
* Create TTS tool provider
|
|
93
|
+
*
|
|
94
|
+
* @param backend TTS backend to use (default: 'browser')
|
|
95
|
+
*/
|
|
96
|
+
constructor(backend?: TTSBackend);
|
|
97
|
+
/**
|
|
98
|
+
* Initialize TTS provider
|
|
99
|
+
*
|
|
100
|
+
* Sets up the appropriate TTS backend.
|
|
101
|
+
*
|
|
102
|
+
* @param config Configuration with backend type and credentials
|
|
103
|
+
* @throws Error if initialization fails or required config missing
|
|
104
|
+
*/
|
|
105
|
+
initialize(config: TTSToolProviderConfig): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* Initialize browser TTS (Web Speech API)
|
|
108
|
+
*/
|
|
109
|
+
private _initializeBrowserTTS;
|
|
110
|
+
/**
|
|
111
|
+
* Initialize server-based TTS (Polly, Google)
|
|
112
|
+
*/
|
|
113
|
+
private _initializeServerTTS;
|
|
114
|
+
/**
|
|
115
|
+
* Create a TTS provider instance
|
|
116
|
+
*
|
|
117
|
+
* Returns the initialized TTS provider.
|
|
118
|
+
*
|
|
119
|
+
* @param config Optional instance-specific configuration (currently unused)
|
|
120
|
+
* @returns TTS provider
|
|
121
|
+
* @throws Error if provider not initialized
|
|
122
|
+
*/
|
|
123
|
+
createInstance(config?: Partial<TTSToolProviderConfig>): Promise<ITTSProvider>;
|
|
124
|
+
/**
|
|
125
|
+
* Get provider capabilities
|
|
126
|
+
*
|
|
127
|
+
* @returns TTS capabilities based on backend
|
|
128
|
+
*/
|
|
129
|
+
getCapabilities(): ToolProviderCapabilities;
|
|
130
|
+
/**
|
|
131
|
+
* Check if provider is ready
|
|
132
|
+
*
|
|
133
|
+
* @returns true if provider is initialized
|
|
134
|
+
*/
|
|
135
|
+
isReady(): boolean;
|
|
136
|
+
/**
|
|
137
|
+
* Clean up provider resources
|
|
138
|
+
*
|
|
139
|
+
* Destroys the TTS provider and releases resources.
|
|
140
|
+
*/
|
|
141
|
+
destroy(): void;
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=TTSToolProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TTSToolProvider.d.ts","sourceRoot":"","sources":["../../../src/services/tool-providers/TTSToolProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE/E;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,OAAO,CAAC,SAAS,CAAC;IAChE;;OAEG;IACH,OAAO,EAAE,UAAU,CAAC;IAEpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAEpC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,eACZ,YAAW,aAAa,CAAC,qBAAqB,EAAE,YAAY,CAAC;IAE7D,QAAQ,CAAC,UAAU,iBAAiB;IACpC,QAAQ,CAAC,YAAY,oBAAoB;IACzC,QAAQ,CAAC,QAAQ,EAAG,KAAK,CAAU;IACnC,QAAQ,CAAC,OAAO,SAAS;IACzB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAE/B,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,MAAM,CAAsC;IAEpD;;;;OAIG;gBACS,OAAO,GAAE,UAAsB;IAI3C;;;;;;;OAOG;IACG,UAAU,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B9D;;OAEG;YACW,qBAAqB;IAcnC;;OAEG;YACW,oBAAoB;IAgClC;;;;;;;;OAQG;IACG,cAAc,CACnB,MAAM,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACrC,OAAO,CAAC,YAAY,CAAC;IAUxB;;;;OAIG;IACH,eAAe,IAAI,wBAAwB;IAkB3C;;;;OAIG;IACH,OAAO,IAAI,OAAO;IAIlB;;;;OAIG;IACH,OAAO,IAAI,IAAI;CAQf"}
|