@pie-players/pie-assessment-toolkit 0.3.3 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +6 -9
  2. package/dist/components/ItemToolBar.custom-element.js +540 -95
  3. package/dist/components/SectionToolBar.custom-element.js +2 -1
  4. package/dist/index.d.ts +2 -3
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/runtime/SectionRuntimeEngine.d.ts +2 -2
  9. package/dist/runtime/SectionRuntimeEngine.d.ts.map +1 -1
  10. package/dist/runtime/SectionRuntimeEngine.js.map +1 -1
  11. package/dist/services/PNPToolResolver.d.ts +1 -3
  12. package/dist/services/PNPToolResolver.d.ts.map +1 -1
  13. package/dist/services/PNPToolResolver.js +5 -4
  14. package/dist/services/PNPToolResolver.js.map +1 -1
  15. package/dist/services/ThemeProvider.js +7 -7
  16. package/dist/services/ToolCoordinator.d.ts +3 -3
  17. package/dist/services/ToolCoordinator.js +3 -3
  18. package/dist/services/ToolRegistry.d.ts +51 -0
  19. package/dist/services/ToolRegistry.d.ts.map +1 -1
  20. package/dist/services/ToolRegistry.js +60 -0
  21. package/dist/services/ToolRegistry.js.map +1 -1
  22. package/dist/services/ToolkitCoordinator.d.ts +18 -29
  23. package/dist/services/ToolkitCoordinator.d.ts.map +1 -1
  24. package/dist/services/ToolkitCoordinator.js +153 -138
  25. package/dist/services/ToolkitCoordinator.js.map +1 -1
  26. package/dist/services/defaultPersonalNeedsProfile.js +2 -2
  27. package/dist/services/defaultPersonalNeedsProfile.js.map +1 -1
  28. package/dist/services/interfaces.d.ts +8 -3
  29. package/dist/services/interfaces.d.ts.map +1 -1
  30. package/dist/services/interfaces.js.map +1 -1
  31. package/dist/services/pnp-standard-features.d.ts +1 -1
  32. package/dist/services/section-controller-types.d.ts +108 -6
  33. package/dist/services/section-controller-types.d.ts.map +1 -1
  34. package/dist/services/tool-providers/index.d.ts +0 -4
  35. package/dist/services/tool-providers/index.d.ts.map +1 -1
  36. package/dist/services/tool-providers/index.js +0 -2
  37. package/dist/services/tool-providers/index.js.map +1 -1
  38. package/dist/services/tools-config-normalizer.d.ts +40 -3
  39. package/dist/services/tools-config-normalizer.d.ts.map +1 -1
  40. package/dist/services/tools-config-normalizer.js +86 -11
  41. package/dist/services/tools-config-normalizer.js.map +1 -1
  42. package/dist/tools/calculators/desmos-provider.d.ts +0 -7
  43. package/dist/tools/calculators/desmos-provider.d.ts.map +1 -1
  44. package/dist/tools/calculators/desmos-provider.js +0 -8
  45. package/dist/tools/calculators/desmos-provider.js.map +1 -1
  46. package/dist/tools/client.d.ts +1 -3
  47. package/dist/tools/client.d.ts.map +1 -1
  48. package/dist/tools/client.js +1 -7
  49. package/dist/tools/client.js.map +1 -1
  50. package/dist/tools/default-tool-module-loaders.js +1 -1
  51. package/dist/tools/default-tool-module-loaders.js.map +1 -1
  52. package/dist/tools/index.d.ts +1 -1
  53. package/dist/tools/index.d.ts.map +1 -1
  54. package/dist/tools/index.js +1 -1
  55. package/dist/tools/index.js.map +1 -1
  56. package/dist/tools/library-loader.d.ts.map +1 -1
  57. package/dist/tools/library-loader.js +0 -35
  58. package/dist/tools/library-loader.js.map +1 -1
  59. package/dist/tools/registrations/accessibility-tools.d.ts.map +1 -1
  60. package/dist/tools/registrations/accessibility-tools.js +44 -41
  61. package/dist/tools/registrations/accessibility-tools.js.map +1 -1
  62. package/dist/tools/registrations/calculator.d.ts.map +1 -1
  63. package/dist/tools/registrations/calculator.js +50 -2
  64. package/dist/tools/registrations/calculator.js.map +1 -1
  65. package/dist/tools/registrations/interaction-tools.d.ts.map +1 -1
  66. package/dist/tools/registrations/interaction-tools.js +22 -28
  67. package/dist/tools/registrations/interaction-tools.js.map +1 -1
  68. package/dist/tools/registrations/measurement-tools.d.ts.map +1 -1
  69. package/dist/tools/registrations/measurement-tools.js +19 -27
  70. package/dist/tools/registrations/measurement-tools.js.map +1 -1
  71. package/dist/tools/registrations/subject-specific-tools.d.ts.map +1 -1
  72. package/dist/tools/registrations/subject-specific-tools.js +53 -37
  73. package/dist/tools/registrations/subject-specific-tools.js.map +1 -1
  74. package/dist/tools/registrations/toolbar-registration-helpers.d.ts +15 -0
  75. package/dist/tools/registrations/toolbar-registration-helpers.d.ts.map +1 -0
  76. package/dist/tools/registrations/toolbar-registration-helpers.js +22 -0
  77. package/dist/tools/registrations/toolbar-registration-helpers.js.map +1 -0
  78. package/dist/tools/registrations/tts.d.ts.map +1 -1
  79. package/dist/tools/registrations/tts.js +49 -0
  80. package/dist/tools/registrations/tts.js.map +1 -1
  81. package/dist/tools/response-discovery.d.ts +0 -8
  82. package/dist/tools/response-discovery.d.ts.map +1 -1
  83. package/dist/tools/response-discovery.js +0 -12
  84. package/dist/tools/response-discovery.js.map +1 -1
  85. package/dist/tools/tool-coordinator.d.ts +0 -4
  86. package/dist/tools/tool-coordinator.d.ts.map +1 -1
  87. package/dist/tools/tool-coordinator.js +1 -4
  88. package/dist/tools/tool-coordinator.js.map +1 -1
  89. package/dist/tools/types.d.ts +1 -1
  90. package/dist/tools/types.d.ts.map +1 -1
  91. package/dist/tools/types.js.map +1 -1
  92. package/dist/tools/variant-resolver.d.ts +0 -6
  93. package/dist/tools/variant-resolver.d.ts.map +1 -1
  94. package/dist/tools/variant-resolver.js +0 -6
  95. package/dist/tools/variant-resolver.js.map +1 -1
  96. package/package.json +8 -10
  97. package/dist/services/tool-providers/MathJsToolProvider.d.ts +0 -25
  98. package/dist/services/tool-providers/MathJsToolProvider.d.ts.map +0 -1
  99. package/dist/services/tool-providers/MathJsToolProvider.js +0 -53
  100. package/dist/services/tool-providers/MathJsToolProvider.js.map +0 -1
  101. package/dist/services/tool-providers/TIToolProvider.d.ts +0 -107
  102. package/dist/services/tool-providers/TIToolProvider.d.ts.map +0 -1
  103. package/dist/services/tool-providers/TIToolProvider.js +0 -123
  104. package/dist/services/tool-providers/TIToolProvider.js.map +0 -1
  105. package/dist/tools/calculators/mathjs-provider.d.ts +0 -50
  106. package/dist/tools/calculators/mathjs-provider.d.ts.map +0 -1
  107. package/dist/tools/calculators/mathjs-provider.js +0 -660
  108. package/dist/tools/calculators/mathjs-provider.js.map +0 -1
  109. package/dist/tools/calculators/ti-provider.d.ts +0 -122
  110. package/dist/tools/calculators/ti-provider.d.ts.map +0 -1
  111. package/dist/tools/calculators/ti-provider.js +0 -710
  112. package/dist/tools/calculators/ti-provider.js.map +0 -1
  113. package/src/README.md +0 -626
  114. package/src/components/ItemToolBar.svelte +0 -717
  115. package/src/components/PieAssessmentToolkit.svelte +0 -681
  116. package/src/components/SectionToolBar.svelte +0 -58
  117. package/src/components/ToolButton.svelte +0 -146
  118. package/src/components/ToolButtonGroup.svelte +0 -125
  119. package/src/tools/README.md +0 -617
  120. package/src/tools/calculators/README.md +0 -395
@@ -14,7 +14,7 @@
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
+ import { type CanonicalToolsConfig, type ToolPlacementConfig, type ToolPolicyConfig, type ToolProviderConfig, type ToolProvidersConfig } from "./tools-config-normalizer.js";
18
18
  import { AccessibilityCatalogResolver } from "./AccessibilityCatalogResolver.js";
19
19
  import { ElementToolStateStore } from "./ElementToolStateStore.js";
20
20
  import { HighlightCoordinator } from "./HighlightCoordinator.js";
@@ -22,15 +22,17 @@ import { ToolCoordinator } from "./ToolCoordinator.js";
22
22
  import { TTSService } from "./TTSService.js";
23
23
  import { ToolProviderRegistry } from "./tool-providers/index.js";
24
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, SectionControllerKey, SectionControllerPersistenceStrategy, SectionPersistenceFactoryDefaults } from "./section-controller-types.js";
27
- export type { SectionControllerContext, SectionControllerFactoryDefaults, SectionControllerHandle, SectionControllerKey, SectionControllerPersistenceStrategy, SectionPersistenceFactoryDefaults, } from "./section-controller-types.js";
25
+ import type { TTSToolProviderConfig } from "./tool-providers/index.js";
26
+ import type { SectionControllerContext, SectionControllerEvent, SectionControllerEventType, SectionControllerFactoryDefaults, SectionControllerHandle, SectionControllerKey, SectionControllerPersistenceStrategy, SectionPersistenceFactoryDefaults } from "./section-controller-types.js";
27
+ export type { SectionControllerContext, SectionControllerEvent, SectionControllerEventType, SectionControllerFactoryDefaults, SectionControllerHandle, SectionControllerKey, SectionControllerPersistenceStrategy, SectionControllerRuntimeState, SectionControllerSessionState, SectionPersistenceFactoryDefaults, } from "./section-controller-types.js";
28
28
  /**
29
29
  * Generic tool configuration
30
30
  */
31
31
  export interface ToolConfig {
32
32
  enabled?: boolean;
33
- [key: string]: any;
33
+ provider?: unknown;
34
+ settings?: Record<string, unknown>;
35
+ [key: string]: unknown;
34
36
  }
35
37
  /**
36
38
  * TTS tool configuration
@@ -56,28 +58,10 @@ export interface TTSToolConfig extends ToolConfig {
56
58
  export interface AnswerEliminatorToolConfig extends ToolConfig {
57
59
  strategy?: "strikethrough" | "hide";
58
60
  }
59
- /**
60
- * Calculator tool configuration
61
- */
62
- export interface CalculatorToolConfig extends ToolConfig {
63
- provider?: "desmos" | "ti" | "mathjs";
64
- authFetcher?: () => Promise<Partial<DesmosToolProviderConfig | TIToolProviderConfig | MathJsToolProviderConfig>>;
65
- }
66
- /**
67
- * Floating tools configuration (calculator, graph, etc.)
68
- */
69
- export interface FloatingToolsConfig extends ToolConfig {
70
- enabledTools?: string[];
71
- calculator?: CalculatorToolConfig;
72
- }
73
61
  export interface ToolkitToolsConfig extends CanonicalToolsConfig {
74
62
  policy: ToolPolicyConfig;
75
63
  placement: Required<ToolPlacementConfig>;
76
- providers: ToolProvidersConfig & {
77
- tts?: TTSToolConfig;
78
- calculator?: CalculatorToolConfig;
79
- annotationToolbar?: ToolConfig;
80
- };
64
+ providers: ToolProvidersConfig;
81
65
  }
82
66
  /**
83
67
  * Configuration for ToolkitCoordinator
@@ -138,10 +122,11 @@ export interface SectionControllerLifecycleEvent {
138
122
  controller?: SectionControllerHandle;
139
123
  }
140
124
  export interface SectionEventSubscriptionArgs {
141
- sectionId: string;
125
+ sectionId?: string;
142
126
  attemptId?: string;
143
- listener: (event: unknown) => void;
144
- eventTypes?: readonly string[];
127
+ listener: (event: SectionControllerEvent) => void;
128
+ eventTypes?: readonly SectionControllerEventType[];
129
+ itemIds?: readonly string[];
145
130
  }
146
131
  export interface ToolkitCoordinatorHooks {
147
132
  onError?: (error: Error, context: ToolkitErrorContext) => void;
@@ -221,6 +206,7 @@ export declare class ToolkitCoordinator {
221
206
  private coordinatorReadyPromise?;
222
207
  private coordinatorReadyNotified;
223
208
  private readonly providerInitPromises;
209
+ private readonly packagedToolRegistry;
224
210
  private readonly sectionControllers;
225
211
  private readonly sectionControllerKeys;
226
212
  private readonly sectionControllerInitPromises;
@@ -245,6 +231,8 @@ export declare class ToolkitCoordinator {
245
231
  * Register tool providers in the registry
246
232
  */
247
233
  private _registerToolProviders;
234
+ private getProviderDescriptorTools;
235
+ private registerProviderFromTool;
248
236
  private registerProvider;
249
237
  ensureProviderReady(providerId: string): Promise<IToolProvider>;
250
238
  setHooks(hooks: ToolkitCoordinatorHooks): void;
@@ -288,6 +276,7 @@ export declare class ToolkitCoordinator {
288
276
  waitUntilReady(): Promise<void>;
289
277
  isReady(): boolean;
290
278
  getInitStatus(): ToolkitInitStatus;
279
+ private resolveProviderConfigKey;
291
280
  /**
292
281
  * Check if a tool is enabled.
293
282
  * Tools are enabled by default unless explicitly disabled.
@@ -302,7 +291,7 @@ export declare class ToolkitCoordinator {
302
291
  * @param toolId Tool identifier
303
292
  * @returns Tool configuration or null if not configured
304
293
  */
305
- getToolConfig(toolId: string): ToolConfig | null;
294
+ getToolConfig(toolId: string): ToolProviderConfig | null;
306
295
  /**
307
296
  * Update tool configuration.
308
297
  * Applies changes to underlying services.
@@ -310,7 +299,7 @@ export declare class ToolkitCoordinator {
310
299
  * @param toolId Tool identifier
311
300
  * @param updates Partial configuration updates
312
301
  */
313
- updateToolConfig(toolId: string, updates: Partial<ToolConfig>): void;
302
+ updateToolConfig(toolId: string, updates: Partial<ToolProviderConfig>): void;
314
303
  /**
315
304
  * Update the enabled tools list for floating tools (calculator, graph, etc.).
316
305
  * Used for PNP profile changes or dynamic tool configuration.
@@ -1 +1 @@
1
- {"version":3,"file":"ToolkitCoordinator.d.ts","sourceRoot":"","sources":["../../src/services/ToolkitCoordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolkitCoordinator.d.ts","sourceRoot":"","sources":["../../src/services/ToolkitCoordinator.ts"],"names":[],"mappings":"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"}
@@ -14,13 +14,15 @@
14
14
  * Part of PIE Assessment Toolkit.
15
15
  */
16
16
  import { normalizeToolsConfig, resolveToolsForLevel, } from "./tools-config-normalizer.js";
17
+ import { DEFAULT_TOOL_ALIAS_MAP } from "./tool-config-defaults.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 { BrowserTTSProvider } from "./tts/browser-provider.js";
23
- import { ToolProviderRegistry, DesmosToolProvider, MathJsToolProvider, TIToolProvider, TTSToolProvider, } from "./tool-providers/index.js";
24
+ import { ToolProviderRegistry } from "./tool-providers/index.js";
25
+ import { createPackagedToolRegistry } from "./createDefaultToolRegistry.js";
24
26
  /**
25
27
  * ToolkitCoordinator - Orchestrates all assessment toolkit services
26
28
  *
@@ -65,6 +67,7 @@ export class ToolkitCoordinator {
65
67
  coordinatorReadyPromise;
66
68
  coordinatorReadyNotified = false;
67
69
  providerInitPromises = new Map();
70
+ packagedToolRegistry = createPackagedToolRegistry();
68
71
  sectionControllers = new Map();
69
72
  sectionControllerKeys = new Map();
70
73
  sectionControllerInitPromises = new Map();
@@ -82,10 +85,6 @@ export class ToolkitCoordinator {
82
85
  enabled: true,
83
86
  backend: "browser",
84
87
  },
85
- calculator: {
86
- enabled: true,
87
- provider: "desmos",
88
- },
89
88
  annotationToolbar: {
90
89
  enabled: true,
91
90
  },
@@ -258,67 +257,39 @@ export class ToolkitCoordinator {
258
257
  * Register tool providers in the registry
259
258
  */
260
259
  _registerToolProviders() {
261
- // Register TTS provider
262
- const ttsConfig = this.config.tools?.providers?.tts;
263
- if (ttsConfig?.enabled !== false) {
264
- const backend = ttsConfig?.backend || "browser";
265
- const serverProvider = ttsConfig?.serverProvider ||
266
- ttsConfig?.provider ||
267
- (backend === "polly" || backend === "google" ? backend : undefined);
268
- void this.registerProvider("tts", {
269
- provider: new TTSToolProvider(backend),
270
- config: {
271
- backend,
272
- apiEndpoint: ttsConfig?.apiEndpoint,
273
- serverProvider,
274
- providerOptions: backend === "polly"
275
- ? {
276
- ...(ttsConfig?.engine ? { engine: ttsConfig.engine } : {}),
277
- ...(typeof ttsConfig?.sampleRate === "number"
278
- ? { sampleRate: ttsConfig.sampleRate }
279
- : {}),
280
- ...(ttsConfig?.format ? { format: ttsConfig.format } : {}),
281
- speechMarkTypes: ttsConfig?.speechMarksMode === "word+sentence"
282
- ? ["word", "sentence"]
283
- : ["word"],
284
- }
285
- : undefined,
286
- voice: ttsConfig?.defaultVoice,
287
- rate: ttsConfig?.rate,
288
- pitch: ttsConfig?.pitch,
289
- },
290
- lazy: true,
291
- authFetcher: ttsConfig?.authFetcher,
292
- });
293
- }
294
- // Register calculator providers
295
- const calculatorConfig = this.config.tools?.providers?.calculator;
296
- if (calculatorConfig?.enabled !== false) {
297
- const provider = calculatorConfig?.provider || "desmos";
298
- if (provider === "desmos") {
299
- void this.registerProvider("calculator-desmos", {
300
- provider: new DesmosToolProvider(),
301
- config: {},
302
- lazy: true,
303
- authFetcher: calculatorConfig?.authFetcher,
304
- });
305
- }
306
- else if (provider === "ti") {
307
- void this.registerProvider("calculator-ti", {
308
- provider: new TIToolProvider(),
309
- config: {},
310
- lazy: true,
311
- });
312
- }
313
- else if (provider === "mathjs") {
314
- void this.registerProvider("calculator-mathjs", {
315
- provider: new MathJsToolProvider(),
316
- config: {},
317
- lazy: true,
318
- });
319
- }
260
+ const descriptorTools = this.getProviderDescriptorTools();
261
+ for (const tool of descriptorTools) {
262
+ void this.registerProviderFromTool(tool);
320
263
  }
321
264
  }
265
+ getProviderDescriptorTools() {
266
+ return this.packagedToolRegistry
267
+ .getAllTools()
268
+ .filter((tool) => !!tool.provider);
269
+ }
270
+ async registerProviderFromTool(tool) {
271
+ const descriptor = tool.provider;
272
+ if (!descriptor)
273
+ return;
274
+ const toolConfig = this.getToolConfig(tool.toolId) || undefined;
275
+ if (toolConfig?.enabled === false)
276
+ return;
277
+ const providerId = descriptor.getProviderId?.(toolConfig) ??
278
+ toolConfig?.provider?.id ??
279
+ tool.toolId;
280
+ if (this.toolProviderRegistry.has(providerId))
281
+ return;
282
+ const provider = descriptor.createProvider(toolConfig);
283
+ const initConfig = descriptor.getInitConfig?.(toolConfig) ?? toolConfig?.provider?.init ?? {};
284
+ const authFetcher = descriptor.getAuthFetcher?.(toolConfig) ??
285
+ toolConfig?.provider?.runtime?.authFetcher;
286
+ await this.registerProvider(providerId, {
287
+ provider,
288
+ config: initConfig,
289
+ lazy: descriptor.lazy ?? true,
290
+ authFetcher,
291
+ });
292
+ }
322
293
  async registerProvider(providerId, config) {
323
294
  try {
324
295
  this.toolProviderRegistry.register(providerId, config);
@@ -391,14 +362,31 @@ export class ToolkitCoordinator {
391
362
  return this.sectionControllers.get(this.getSectionControllerMapKey(key));
392
363
  }
393
364
  subscribeSectionEvents(args) {
394
- const controllerEntry = this.resolveSectionControllerForSubscription({
395
- sectionId: args.sectionId,
396
- attemptId: args.attemptId,
397
- });
398
- const controller = controllerEntry?.controller;
399
- const subscribe = controller?.subscribe;
400
- if (!controller || !subscribe) {
401
- return () => { };
365
+ let controllerEntry;
366
+ try {
367
+ controllerEntry = this.resolveSectionControllerForSubscription({
368
+ sectionId: args.sectionId,
369
+ attemptId: args.attemptId,
370
+ });
371
+ }
372
+ catch (error) {
373
+ const message = error instanceof Error ? error.message : String(error);
374
+ const isAmbiguousSectionWithoutAttempt = args.sectionId !== undefined &&
375
+ args.attemptId === undefined &&
376
+ message.includes("subscribeSectionEvents is ambiguous for section");
377
+ if (isAmbiguousSectionWithoutAttempt) {
378
+ console.warn(message);
379
+ return () => { };
380
+ }
381
+ throw error;
382
+ }
383
+ const controller = controllerEntry.controller;
384
+ const subscribe = controller.subscribe;
385
+ if (!subscribe) {
386
+ const resolvedKey = this.sectionControllerKeys.get(controllerEntry.mapKey);
387
+ const sectionLabel = resolvedKey?.sectionId || args.sectionId || "<unknown>";
388
+ const attemptLabel = resolvedKey?.attemptId || args.attemptId || "<default>";
389
+ throw new Error(`[ToolkitCoordinator] subscribeSectionEvents could not subscribe: resolved controller for section "${sectionLabel}" attempt "${attemptLabel}" does not expose subscribe().`);
402
390
  }
403
391
  const { mapKey } = controllerEntry;
404
392
  let listenerId = this.sectionEventListenerIds.get(args.listener);
@@ -412,19 +400,35 @@ export class ToolkitCoordinator {
412
400
  const eventTypeFilter = args.eventTypes
413
401
  ? new Set(args.eventTypes)
414
402
  : null;
403
+ const itemIdFilter = args.itemIds ? new Set(args.itemIds) : null;
415
404
  const unsubscribeController = subscribe.call(controller, (event) => {
416
- if (!eventTypeFilter) {
417
- args.listener(event);
418
- return;
419
- }
420
- const eventType = typeof event === "object" &&
421
- event !== null &&
422
- "type" in event &&
423
- typeof event.type === "string"
424
- ? event.type
425
- : null;
426
- if (!eventType || !eventTypeFilter.has(eventType)) {
427
- return;
405
+ if (eventTypeFilter || itemIdFilter) {
406
+ const eventType = event?.type || null;
407
+ if (eventTypeFilter && (!eventType || !eventTypeFilter.has(eventType))) {
408
+ return;
409
+ }
410
+ if (itemIdFilter) {
411
+ const eventItemCandidates = new Set();
412
+ if ("itemId" in event && typeof event.itemId === "string") {
413
+ eventItemCandidates.add(event.itemId);
414
+ }
415
+ if ("canonicalItemId" in event &&
416
+ typeof event.canonicalItemId === "string") {
417
+ eventItemCandidates.add(event.canonicalItemId);
418
+ }
419
+ if ("currentItemId" in event &&
420
+ typeof event.currentItemId === "string") {
421
+ eventItemCandidates.add(event.currentItemId);
422
+ }
423
+ if ("previousItemId" in event &&
424
+ typeof event.previousItemId === "string") {
425
+ eventItemCandidates.add(event.previousItemId);
426
+ }
427
+ const hasMatchingItem = Array.from(eventItemCandidates).some((itemId) => itemIdFilter.has(itemId));
428
+ if (!hasMatchingItem) {
429
+ return;
430
+ }
431
+ }
428
432
  }
429
433
  args.listener(event);
430
434
  });
@@ -440,36 +444,57 @@ export class ToolkitCoordinator {
440
444
  return detach;
441
445
  }
442
446
  resolveSectionControllerForSubscription(args) {
443
- const explicitKey = {
444
- assessmentId: this.assessmentId,
445
- sectionId: args.sectionId,
446
- attemptId: args.attemptId,
447
- };
448
- const explicitMapKey = this.getSectionControllerMapKey(explicitKey);
449
- const explicitController = this.sectionControllers.get(explicitMapKey);
450
- if (explicitController) {
451
- return { mapKey: explicitMapKey, controller: explicitController };
447
+ if (args.sectionId) {
448
+ const explicitKey = {
449
+ assessmentId: this.assessmentId,
450
+ sectionId: args.sectionId,
451
+ attemptId: args.attemptId,
452
+ };
453
+ const explicitMapKey = this.getSectionControllerMapKey(explicitKey);
454
+ const explicitController = this.sectionControllers.get(explicitMapKey);
455
+ if (explicitController) {
456
+ return { mapKey: explicitMapKey, controller: explicitController };
457
+ }
458
+ if (args.attemptId !== undefined) {
459
+ throw new Error(`[ToolkitCoordinator] subscribeSectionEvents could not resolve controller for section "${args.sectionId}" and attempt "${args.attemptId}".`);
460
+ }
461
+ const sectionMatches = [];
462
+ for (const [mapKey, key] of this.sectionControllerKeys.entries()) {
463
+ if (key.assessmentId !== this.assessmentId || key.sectionId !== args.sectionId) {
464
+ continue;
465
+ }
466
+ const controller = this.sectionControllers.get(mapKey);
467
+ if (!controller)
468
+ continue;
469
+ sectionMatches.push({ mapKey, controller });
470
+ }
471
+ if (sectionMatches.length === 1) {
472
+ return sectionMatches[0];
473
+ }
474
+ if (sectionMatches.length === 0) {
475
+ throw new Error(`[ToolkitCoordinator] subscribeSectionEvents found no active controller for section "${args.sectionId}".`);
476
+ }
477
+ throw new Error(`[ToolkitCoordinator] subscribeSectionEvents is ambiguous for section "${args.sectionId}" without attemptId; ${sectionMatches.length} controllers are active.`);
452
478
  }
453
479
  if (args.attemptId !== undefined) {
454
- return null;
480
+ throw new Error(`[ToolkitCoordinator] subscribeSectionEvents requires sectionId when attemptId is provided ("${args.attemptId}").`);
455
481
  }
456
- const matches = [];
482
+ const allMatches = [];
457
483
  for (const [mapKey, key] of this.sectionControllerKeys.entries()) {
458
- if (key.assessmentId !== this.assessmentId || key.sectionId !== args.sectionId) {
484
+ if (key.assessmentId !== this.assessmentId)
459
485
  continue;
460
- }
461
486
  const controller = this.sectionControllers.get(mapKey);
462
487
  if (!controller)
463
488
  continue;
464
- matches.push({ mapKey, controller });
489
+ allMatches.push({ mapKey, controller });
465
490
  }
466
- if (matches.length === 1) {
467
- return matches[0];
491
+ if (allMatches.length === 1) {
492
+ return allMatches[0];
468
493
  }
469
- if (matches.length > 1) {
470
- console.warn(`[ToolkitCoordinator] subscribeSectionEvents is ambiguous for section "${args.sectionId}" without attemptId; ${matches.length} controllers are active.`);
494
+ if (allMatches.length === 0) {
495
+ throw new Error("[ToolkitCoordinator] subscribeSectionEvents found no active controllers; provide sectionId or initialize a section controller first.");
471
496
  }
472
- return null;
497
+ throw new Error(`[ToolkitCoordinator] subscribeSectionEvents is ambiguous without sectionId; ${allMatches.length} active controllers are registered.`);
473
498
  }
474
499
  onSectionControllerLifecycle(listener) {
475
500
  this.sectionControllerLifecycleListeners.add(listener);
@@ -773,6 +798,18 @@ export class ToolkitCoordinator {
773
798
  providers,
774
799
  };
775
800
  }
801
+ resolveProviderConfigKey(toolId) {
802
+ const providers = this.config.tools
803
+ ?.providers || {};
804
+ if (toolId in providers)
805
+ return toolId;
806
+ for (const [alias, canonical] of Object.entries(DEFAULT_TOOL_ALIAS_MAP)) {
807
+ if (canonical === toolId && alias in providers) {
808
+ return alias;
809
+ }
810
+ }
811
+ return toolId;
812
+ }
776
813
  /**
777
814
  * Check if a tool is enabled.
778
815
  * Tools are enabled by default unless explicitly disabled.
@@ -781,7 +818,8 @@ export class ToolkitCoordinator {
781
818
  * @returns True if tool is enabled
782
819
  */
783
820
  isToolEnabled(toolId) {
784
- const toolConfig = this.config.tools?.providers?.[toolId];
821
+ const configKey = this.resolveProviderConfigKey(toolId);
822
+ const toolConfig = this.config.tools?.providers?.[configKey];
785
823
  // Enabled by default unless explicitly set to false
786
824
  return toolConfig?.enabled !== false;
787
825
  }
@@ -792,7 +830,9 @@ export class ToolkitCoordinator {
792
830
  * @returns Tool configuration or null if not configured
793
831
  */
794
832
  getToolConfig(toolId) {
795
- return this.config.tools?.providers?.[toolId] || null;
833
+ const configKey = this.resolveProviderConfigKey(toolId);
834
+ return (this.config.tools
835
+ ?.providers?.[configKey] || null);
796
836
  }
797
837
  /**
798
838
  * Update tool configuration.
@@ -803,6 +843,7 @@ export class ToolkitCoordinator {
803
843
  */
804
844
  updateToolConfig(toolId, updates) {
805
845
  // Update config
846
+ const configKey = this.resolveProviderConfigKey(toolId);
806
847
  const current = this.getToolConfig(toolId) || {};
807
848
  if (!this.config.tools) {
808
849
  this.config.tools = normalizeToolsConfig();
@@ -810,9 +851,9 @@ export class ToolkitCoordinator {
810
851
  if (!this.config.tools.providers) {
811
852
  this.config.tools.providers = {};
812
853
  }
813
- this.config.tools.providers[toolId] = { ...current, ...updates };
854
+ this.config.tools.providers[configKey] = { ...current, ...updates };
814
855
  // Apply configuration changes to services
815
- this._applyToolConfigChange(toolId, updates);
856
+ this._applyToolConfigChange(configKey, updates);
816
857
  }
817
858
  /**
818
859
  * Update the enabled tools list for floating tools (calculator, graph, etc.).
@@ -891,38 +932,12 @@ export class ToolkitCoordinator {
891
932
  if (this.toolProviderRegistry.has("tts")) {
892
933
  await this.toolProviderRegistry.unregister("tts");
893
934
  }
894
- const ttsConfig = this.config.tools?.providers?.tts;
895
- if (ttsConfig?.enabled === false)
935
+ const ttsRegistration = this
936
+ .getProviderDescriptorTools()
937
+ .find((tool) => tool.toolId === "textToSpeech");
938
+ if (!ttsRegistration)
896
939
  return;
897
- const backend = ttsConfig?.backend || "browser";
898
- const serverProvider = ttsConfig?.serverProvider ||
899
- ttsConfig?.provider ||
900
- (backend === "polly" || backend === "google" ? backend : undefined);
901
- await this.registerProvider("tts", {
902
- provider: new TTSToolProvider(backend),
903
- config: {
904
- backend,
905
- apiEndpoint: ttsConfig?.apiEndpoint,
906
- serverProvider,
907
- providerOptions: backend === "polly"
908
- ? {
909
- ...(ttsConfig?.engine ? { engine: ttsConfig.engine } : {}),
910
- ...(typeof ttsConfig?.sampleRate === "number"
911
- ? { sampleRate: ttsConfig.sampleRate }
912
- : {}),
913
- ...(ttsConfig?.format ? { format: ttsConfig.format } : {}),
914
- speechMarkTypes: ttsConfig?.speechMarksMode === "word+sentence"
915
- ? ["word", "sentence"]
916
- : ["word"],
917
- }
918
- : undefined,
919
- voice: ttsConfig?.defaultVoice,
920
- rate: ttsConfig?.rate,
921
- pitch: ttsConfig?.pitch,
922
- },
923
- lazy: true,
924
- authFetcher: ttsConfig?.authFetcher,
925
- });
940
+ await this.registerProviderFromTool(ttsRegistration);
926
941
  }
927
942
  }
928
943
  //# sourceMappingURL=ToolkitCoordinator.js.map