@pie-players/pie-assessment-toolkit 0.2.10 → 0.2.11

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 (42) hide show
  1. package/dist/components/ItemToolBar.custom-element.js +12 -5
  2. package/dist/components/PieAssessmentToolkit.custom-element.js +75 -8
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/runtime/SectionRuntimeEngine.d.ts +56 -0
  8. package/dist/runtime/SectionRuntimeEngine.d.ts.map +1 -1
  9. package/dist/runtime/SectionRuntimeEngine.js +23 -0
  10. package/dist/runtime/SectionRuntimeEngine.js.map +1 -1
  11. package/dist/runtime/registration-events.d.ts +19 -0
  12. package/dist/runtime/registration-events.d.ts.map +1 -1
  13. package/dist/runtime/registration-events.js +3 -0
  14. package/dist/runtime/registration-events.js.map +1 -1
  15. package/dist/runtime/runtime-event-guards.d.ts +0 -1
  16. package/dist/runtime/runtime-event-guards.d.ts.map +1 -1
  17. package/dist/runtime/runtime-event-guards.js +0 -5
  18. package/dist/runtime/runtime-event-guards.js.map +1 -1
  19. package/dist/runtime/session-event-emitter-policy.d.ts +12 -0
  20. package/dist/runtime/session-event-emitter-policy.d.ts.map +1 -0
  21. package/dist/runtime/session-event-emitter-policy.js +57 -0
  22. package/dist/runtime/session-event-emitter-policy.js.map +1 -0
  23. package/dist/services/ToolRegistry.d.ts +26 -0
  24. package/dist/services/ToolRegistry.d.ts.map +1 -1
  25. package/dist/services/ToolRegistry.js +20 -0
  26. package/dist/services/ToolRegistry.js.map +1 -1
  27. package/dist/services/ToolkitCoordinator.d.ts +13 -0
  28. package/dist/services/ToolkitCoordinator.d.ts.map +1 -1
  29. package/dist/services/ToolkitCoordinator.js +97 -0
  30. package/dist/services/ToolkitCoordinator.js.map +1 -1
  31. package/dist/services/interfaces.d.ts +6 -1
  32. package/dist/services/interfaces.d.ts.map +1 -1
  33. package/dist/services/interfaces.js.map +1 -1
  34. package/dist/tools/registrations/accessibility-tools.d.ts.map +1 -1
  35. package/dist/tools/registrations/accessibility-tools.js +2 -0
  36. package/dist/tools/registrations/accessibility-tools.js.map +1 -1
  37. package/dist/tools/registrations/interaction-tools.d.ts.map +1 -1
  38. package/dist/tools/registrations/interaction-tools.js +1 -0
  39. package/dist/tools/registrations/interaction-tools.js.map +1 -1
  40. package/package.json +8 -8
  41. package/src/components/ItemToolBar.svelte +21 -5
  42. package/src/components/PieAssessmentToolkit.svelte +81 -10
@@ -129,21 +129,26 @@ export default function ItemToolBar($$anchor, $$props) {
129
129
  return $.get(effectiveToolRegistry).normalizeToolIds(resolved).filter(Boolean);
130
130
  });
131
131
 
132
+ const providerConfig = $.derived(() => $.get(effectiveToolsConfig)?.providers || {});
133
+ const isProviderEnabled = (toolId) => $.get(providerConfig)[toolId]?.enabled !== false;
134
+
132
135
  // Pass 1: determine allowed tools
133
136
  const allowedToolIds = $.derived(() => {
134
137
  const configuredTools = $.get(normalizedExplicitTools).length > 0
135
138
  ? $.get(normalizedExplicitTools)
136
139
  : $.get(placementAllowedToolIds);
137
140
 
141
+ const providerEnabledConfiguredTools = configuredTools.filter((toolId) => isProviderEnabled(toolId));
142
+
138
143
  if (pnpResolver() && assessment() && itemRef()) {
139
144
  const allowedByPnp = pnpResolver().getAllowedToolIds(assessment(), itemRef());
140
145
 
141
- if (configuredTools.length === 0) return allowedByPnp;
146
+ if (providerEnabledConfiguredTools.length === 0) return allowedByPnp;
142
147
 
143
- return allowedByPnp.filter((toolId) => configuredTools.includes(toolId));
148
+ return allowedByPnp.filter((toolId) => providerEnabledConfiguredTools.includes(toolId));
144
149
  }
145
150
 
146
- return configuredTools;
151
+ return providerEnabledConfiguredTools;
147
152
  });
148
153
 
149
154
  const contentReady = $.derived(() => {
@@ -256,6 +261,8 @@ export default function ItemToolBar($$anchor, $$props) {
256
261
  return Array.from(visible);
257
262
  });
258
263
 
264
+ const toolbarVisibleToolIds = $.derived(() => $.get(effectiveToolRegistry).filterToolIdsByActivation($.get(visibleToolIds), 'toolbar-toggle'));
265
+
259
266
  // Dynamically load whatever tools are currently visible.
260
267
  // The registry owns module loader configuration by toolId.
261
268
  $.user_effect(() => {
@@ -263,7 +270,7 @@ export default function ItemToolBar($$anchor, $$props) {
263
270
 
264
271
  let cancelled = false;
265
272
 
266
- void $.get(effectiveToolRegistry).ensureToolModulesLoaded($.get(visibleToolIds)).then(() => {
273
+ void $.get(effectiveToolRegistry).ensureToolModulesLoaded($.get(toolbarVisibleToolIds)).then(() => {
267
274
  if (!cancelled) $.set(moduleLoadVersion, $.get(moduleLoadVersion) + 1);
268
275
  }).catch((error) => {
269
276
  console.error('[ItemToolBar] Failed to load one or more tool modules:', error);
@@ -351,7 +358,7 @@ export default function ItemToolBar($$anchor, $$props) {
351
358
 
352
359
  const rendered = [];
353
360
 
354
- for (const toolId of $.get(visibleToolIds)) {
361
+ for (const toolId of $.get(toolbarVisibleToolIds)) {
355
362
  const result = $.get(effectiveToolRegistry).renderForToolbar(toolId, $.get(renderContext), $.get(toolbarContext));
356
363
 
357
364
  if (result) {
@@ -12,14 +12,22 @@ import { connectAssessmentToolkitHostRuntimeContext } from "../context/runtime-c
12
12
  import { ToolkitCoordinator } from "../services/ToolkitCoordinator.js";
13
13
 
14
14
  import {
15
- PIE_ITEM_SESSION_CHANGED_EVENT,
15
+ PIE_INTERNAL_CONTENT_LOADED_EVENT,
16
+ PIE_INTERNAL_ITEM_SESSION_CHANGED_EVENT,
17
+ PIE_INTERNAL_ITEM_PLAYER_ERROR_EVENT,
16
18
  PIE_REGISTER_EVENT,
17
19
  PIE_UNREGISTER_EVENT
18
20
  } from "../runtime/registration-events.js";
19
21
 
20
22
  import { dispatchCrossBoundaryEvent } from "../runtime/tool-host-contract.js";
21
23
  import { SectionRuntimeEngine } from "../runtime/SectionRuntimeEngine.js";
22
- import { createRuntimeId, shouldHandleBySourceRuntime } from "../runtime/runtime-event-guards.js";
24
+ import { createRuntimeId } from "../runtime/runtime-event-guards.js";
25
+
26
+ import {
27
+ createSessionEmitPolicyState,
28
+ resetSessionEmitPolicyState,
29
+ shouldEmitCanonicalSessionEvent
30
+ } from "../runtime/session-event-emitter-policy.js";
23
31
 
24
32
  var root = $.from_html(`<div class="pie-assessment-toolkit-anchor svelte-vpe4u2" aria-hidden="true"></div> <!>`, 1);
25
33
 
@@ -73,6 +81,7 @@ export default function PieAssessmentToolkit($$anchor, $$props) {
73
81
  let pendingCompositionModel = null;
74
82
  let pendingCompositionEmit = false;
75
83
  let compositionEmitRaf = null;
84
+ const sessionEmitPolicyState = createSessionEmitPolicyState();
76
85
 
77
86
  function getHostElement() {
78
87
  if (!$.get(anchor)) return null;
@@ -316,12 +325,18 @@ export default function PieAssessmentToolkit($$anchor, $$props) {
316
325
  function emitNormalizedSessionChanged(args) {
317
326
  const normalized = args.result?.eventDetail || args.fallbackSession;
318
327
 
319
- emit("session-changed", {
328
+ const payload = {
320
329
  ...normalized,
321
330
  itemId: args.itemId,
322
331
  canonicalItemId: args.canonicalItemId || args.itemId,
323
332
  sourceRuntimeId: runtimeId
324
- });
333
+ };
334
+
335
+ if (!shouldEmitCanonicalSessionEvent({ state: sessionEmitPolicyState, itemId: args.itemId, payload })) {
336
+ return;
337
+ }
338
+
339
+ emit("session-changed", payload);
325
340
  }
326
341
 
327
342
  function isLocalToCurrentRuntime(eventTarget) {
@@ -360,6 +375,15 @@ export default function PieAssessmentToolkit($$anchor, $$props) {
360
375
  }
361
376
  });
362
377
 
378
+ $.user_effect(() => {
379
+ const currentSectionId = $.get(effectiveSectionId);
380
+ const currentAttemptId = attemptId() || "";
381
+
382
+ void currentSectionId;
383
+ void currentAttemptId;
384
+ resetSessionEmitPolicyState(sessionEmitPolicyState);
385
+ });
386
+
363
387
  $.user_effect(() => {
364
388
  if (!$.get(host) || !$.get(hostRuntimeContextValue)) return;
365
389
 
@@ -453,6 +477,7 @@ export default function PieAssessmentToolkit($$anchor, $$props) {
453
477
  emit("section-ready", { sectionId: $.get(effectiveSectionId) });
454
478
  }).catch((error) => {
455
479
  $.set(runtimeError, error, true);
480
+ sectionEngine.reportSectionError({ source: "section-runtime", error, timestamp: Date.now() });
456
481
  emit("runtime-error", { runtimeId, error });
457
482
  });
458
483
 
@@ -475,6 +500,8 @@ export default function PieAssessmentToolkit($$anchor, $$props) {
475
500
 
476
501
  const changed = sectionEngine.register(detail);
477
502
 
503
+ sectionEngine.handleContentRegistered(detail);
504
+
478
505
  if (changed) emitCompositionChanged();
479
506
  };
480
507
 
@@ -482,8 +509,13 @@ export default function PieAssessmentToolkit($$anchor, $$props) {
482
509
  if (!isLocalToCurrentRuntime(event.target)) return;
483
510
 
484
511
  const detail = event.detail;
512
+
513
+ if (!detail?.itemId) return;
514
+
485
515
  const changed = detail?.element ? sectionEngine.unregister(detail.element) : false;
486
516
 
517
+ sectionEngine.handleContentUnregistered(detail);
518
+
487
519
  if (changed) emitCompositionChanged();
488
520
  };
489
521
 
@@ -493,26 +525,61 @@ export default function PieAssessmentToolkit($$anchor, $$props) {
493
525
  const detail = event.detail;
494
526
 
495
527
  if (!detail?.itemId) return;
496
- if (!shouldHandleBySourceRuntime(detail.sourceRuntimeId, runtimeId)) return;
497
528
 
498
529
  const result = sectionEngine.handleItemSessionChanged(detail.itemId, detail.session);
499
530
 
500
531
  emitNormalizedSessionChanged({
501
532
  itemId: detail.itemId,
502
- canonicalItemId: detail.canonicalItemId,
533
+ canonicalItemId: sectionEngine.getCanonicalItemId(detail.itemId),
503
534
  result,
504
535
  fallbackSession: detail.session
505
536
  });
506
537
  };
507
538
 
539
+ const onContentLoaded = (event) => {
540
+ if (!isLocalToCurrentRuntime(event.target)) return;
541
+
542
+ const detail = event.detail;
543
+
544
+ if (!detail?.itemId) return;
545
+
546
+ sectionEngine.handleContentLoaded({
547
+ itemId: detail.itemId,
548
+ canonicalItemId: detail.canonicalItemId,
549
+ contentKind: detail.contentKind,
550
+ detail: detail.detail,
551
+ timestamp: Date.now()
552
+ });
553
+ };
554
+
555
+ const onItemPlayerError = (event) => {
556
+ if (!isLocalToCurrentRuntime(event.target)) return;
557
+
558
+ const detail = event.detail;
559
+
560
+ if (!detail?.itemId) return;
561
+
562
+ sectionEngine.handleItemPlayerError({
563
+ itemId: detail.itemId,
564
+ canonicalItemId: detail.canonicalItemId,
565
+ contentKind: detail.contentKind,
566
+ error: detail.error,
567
+ timestamp: Date.now()
568
+ });
569
+ };
570
+
508
571
  localHost.addEventListener(PIE_REGISTER_EVENT, onRegister);
509
572
  localHost.addEventListener(PIE_UNREGISTER_EVENT, onUnregister);
510
- localHost.addEventListener(PIE_ITEM_SESSION_CHANGED_EVENT, onItemSessionChanged);
573
+ localHost.addEventListener(PIE_INTERNAL_ITEM_SESSION_CHANGED_EVENT, onItemSessionChanged);
574
+ localHost.addEventListener(PIE_INTERNAL_CONTENT_LOADED_EVENT, onContentLoaded);
575
+ localHost.addEventListener(PIE_INTERNAL_ITEM_PLAYER_ERROR_EVENT, onItemPlayerError);
511
576
 
512
577
  return () => {
513
578
  localHost.removeEventListener(PIE_REGISTER_EVENT, onRegister);
514
579
  localHost.removeEventListener(PIE_UNREGISTER_EVENT, onUnregister);
515
- localHost.removeEventListener(PIE_ITEM_SESSION_CHANGED_EVENT, onItemSessionChanged);
580
+ localHost.removeEventListener(PIE_INTERNAL_ITEM_SESSION_CHANGED_EVENT, onItemSessionChanged);
581
+ localHost.removeEventListener(PIE_INTERNAL_CONTENT_LOADED_EVENT, onContentLoaded);
582
+ localHost.removeEventListener(PIE_INTERNAL_ITEM_PLAYER_ERROR_EVENT, onItemPlayerError);
516
583
  };
517
584
  });
518
585
 
package/dist/index.d.ts CHANGED
@@ -10,7 +10,7 @@ export { TypedEventBus } from "./core/TypedEventBus.js";
10
10
  export type { AssessmentToolkitHostRuntimeContext, AssessmentToolkitRegionScopeContext, AssessmentToolkitRuntimeContext, AssessmentToolkitShellContext, ItemPlayerConfig, ItemPlayerType, ShellContextKind, } from "./context/assessment-toolkit-context.js";
11
11
  export { assessmentToolkitHostRuntimeContext, assessmentToolkitRegionScopeContext, assessmentToolkitRuntimeContext, assessmentToolkitShellContext, } from "./context/assessment-toolkit-context.js";
12
12
  export { connectAssessmentToolkitHostRuntimeContext, connectAssessmentToolkitRegionScopeContext, connectAssessmentToolkitRuntimeContext, connectAssessmentToolkitShellContext, } from "./context/runtime-context-consumer.js";
13
- export { PIE_ITEM_SESSION_CHANGED_EVENT, PIE_REGISTER_EVENT, PIE_UNREGISTER_EVENT, type ItemSessionChangedDetail, type RuntimeRegistrationDetail, type RuntimeRegistrationKind, } from "./runtime/registration-events.js";
13
+ export { PIE_INTERNAL_CONTENT_LOADED_EVENT, PIE_INTERNAL_ITEM_SESSION_CHANGED_EVENT, PIE_INTERNAL_ITEM_PLAYER_ERROR_EVENT, PIE_ITEM_SESSION_CHANGED_EVENT, PIE_REGISTER_EVENT, PIE_UNREGISTER_EVENT, type InternalContentLoadedDetail, type InternalItemSessionChangedDetail, type InternalItemPlayerErrorDetail, type ItemSessionChangedDetail, type RuntimeRegistrationDetail, type RuntimeRegistrationKind, } from "./runtime/registration-events.js";
14
14
  export { connectToolRegionScopeContext, connectToolRuntimeContext, connectToolShellContext, createCrossBoundaryEvent, dispatchCrossBoundaryEvent, isContextValueDefined, } from "./runtime/tool-host-contract.js";
15
15
  export type { IAccessibilityCatalogResolver, IElementToolStateStore, IHighlightCoordinator, II18nService, IThemeProvider, IToolCoordinator, IToolkitCoordinator, ITTSService, ToolState, } from "./services/interfaces.js";
16
16
  export type { CatalogLookupOptions, CatalogStatistics, CatalogType, ResolvedCatalog, } from "./services/AccessibilityCatalogResolver.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -12,7 +12,7 @@
12
12
  export { TypedEventBus } from "./core/TypedEventBus.js";
13
13
  export { assessmentToolkitHostRuntimeContext, assessmentToolkitRegionScopeContext, assessmentToolkitRuntimeContext, assessmentToolkitShellContext, } from "./context/assessment-toolkit-context.js";
14
14
  export { connectAssessmentToolkitHostRuntimeContext, connectAssessmentToolkitRegionScopeContext, connectAssessmentToolkitRuntimeContext, connectAssessmentToolkitShellContext, } from "./context/runtime-context-consumer.js";
15
- export { PIE_ITEM_SESSION_CHANGED_EVENT, PIE_REGISTER_EVENT, PIE_UNREGISTER_EVENT, } from "./runtime/registration-events.js";
15
+ export { PIE_INTERNAL_CONTENT_LOADED_EVENT, PIE_INTERNAL_ITEM_SESSION_CHANGED_EVENT, PIE_INTERNAL_ITEM_PLAYER_ERROR_EVENT, PIE_ITEM_SESSION_CHANGED_EVENT, PIE_REGISTER_EVENT, PIE_UNREGISTER_EVENT, } from "./runtime/registration-events.js";
16
16
  export { connectToolRegionScopeContext, connectToolRuntimeContext, connectToolShellContext, createCrossBoundaryEvent, dispatchCrossBoundaryEvent, isContextValueDefined, } from "./runtime/tool-host-contract.js";
17
17
  export { AccessibilityCatalogResolver } from "./services/AccessibilityCatalogResolver.js";
18
18
  // Context Variable Store (QTI 3.0 Context Declarations)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,38 @@ import { RuntimeRegistry } from "./RuntimeRegistry.js";
5
5
  interface RuntimeController extends SectionControllerHandle {
6
6
  getCompositionModel?: () => unknown;
7
7
  getCanonicalItemId?: (itemId: string) => string;
8
+ handleContentLoaded?: (args: {
9
+ itemId: string;
10
+ canonicalItemId?: string;
11
+ contentKind?: string;
12
+ detail?: unknown;
13
+ timestamp?: number;
14
+ }) => void;
15
+ handleContentRegistered?: (args: {
16
+ itemId: string;
17
+ canonicalItemId?: string;
18
+ contentKind?: string;
19
+ }) => void;
20
+ handleContentUnregistered?: (args: {
21
+ itemId: string;
22
+ canonicalItemId?: string;
23
+ contentKind?: string;
24
+ }) => void;
25
+ handleItemPlayerError?: (args: {
26
+ itemId: string;
27
+ canonicalItemId?: string;
28
+ contentKind?: string;
29
+ error: unknown;
30
+ timestamp?: number;
31
+ }) => void;
32
+ reportSectionError?: (args: {
33
+ source: "item-player" | "section-runtime" | "toolkit" | "controller";
34
+ error: unknown;
35
+ itemId?: string;
36
+ canonicalItemId?: string;
37
+ contentKind?: string;
38
+ timestamp?: number;
39
+ }) => void;
8
40
  handleItemSessionChanged?: (itemId: string, session: unknown) => {
9
41
  eventDetail?: unknown;
10
42
  } | null;
@@ -34,6 +66,30 @@ export declare class SectionRuntimeEngine {
34
66
  unregister(element: HTMLElement): boolean;
35
67
  getCompositionModel(): unknown;
36
68
  getCanonicalItemId(itemId: string): string;
69
+ handleContentRegistered(detail: RuntimeRegistrationDetail): void;
70
+ handleContentUnregistered(detail: RuntimeRegistrationDetail): void;
71
+ handleContentLoaded(args: {
72
+ itemId: string;
73
+ canonicalItemId?: string;
74
+ contentKind?: string;
75
+ detail?: unknown;
76
+ timestamp?: number;
77
+ }): void;
78
+ handleItemPlayerError(args: {
79
+ itemId: string;
80
+ canonicalItemId?: string;
81
+ contentKind?: string;
82
+ error: unknown;
83
+ timestamp?: number;
84
+ }): void;
85
+ reportSectionError(args: {
86
+ source: "item-player" | "section-runtime" | "toolkit" | "controller";
87
+ error: unknown;
88
+ itemId?: string;
89
+ canonicalItemId?: string;
90
+ contentKind?: string;
91
+ timestamp?: number;
92
+ }): void;
37
93
  handleItemSessionChanged(itemId: string, session: unknown): unknown;
38
94
  navigateToItem(index: number): unknown;
39
95
  persist(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"SectionRuntimeEngine.d.ts","sourceRoot":"","sources":["../../src/runtime/SectionRuntimeEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AACvF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,UAAU,iBAAkB,SAAQ,uBAAuB;IAC1D,mBAAmB,CAAC,EAAE,MAAM,OAAO,CAAC;IACpC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAChD,wBAAwB,CAAC,EAAE,CAC1B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,KACZ;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IAC/D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5C;AAED,UAAU,cAAc;IACvB,WAAW,EAAE,kBAAkB,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,GAAG,iBAAiB,CAAC;IAC9E,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;CACtD;AAED,qBAAa,oBAAoB;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,qBAAqB,CAA6B;IAC1D,OAAO,CAAC,eAAe,CAAK;IAEtB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BrD,QAAQ,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO;IAIpD,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO;IAIzC,mBAAmB,IAAI,OAAO;IAI9B,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK1C,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO;IAKnE,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIhC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,WAAW;IAIL,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAc9B"}
1
+ {"version":3,"file":"SectionRuntimeEngine.d.ts","sourceRoot":"","sources":["../../src/runtime/SectionRuntimeEngine.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,29 @@ export class SectionRuntimeEngine {
47
47
  const map = this.registry.getCanonicalIdMap();
48
48
  return map[itemId] || this.controller?.getCanonicalItemId?.(itemId) || itemId;
49
49
  }
50
+ handleContentRegistered(detail) {
51
+ this.controller?.handleContentRegistered?.({
52
+ itemId: detail.itemId,
53
+ canonicalItemId: detail.canonicalItemId || detail.itemId,
54
+ contentKind: detail.contentKind || detail.kind,
55
+ });
56
+ }
57
+ handleContentUnregistered(detail) {
58
+ this.controller?.handleContentUnregistered?.({
59
+ itemId: detail.itemId,
60
+ canonicalItemId: detail.canonicalItemId || detail.itemId,
61
+ contentKind: detail.contentKind || detail.kind,
62
+ });
63
+ }
64
+ handleContentLoaded(args) {
65
+ this.controller?.handleContentLoaded?.(args);
66
+ }
67
+ handleItemPlayerError(args) {
68
+ this.controller?.handleItemPlayerError?.(args);
69
+ }
70
+ reportSectionError(args) {
71
+ this.controller?.reportSectionError?.(args);
72
+ }
50
73
  handleItemSessionChanged(itemId, session) {
51
74
  const canonicalId = this.getCanonicalItemId(itemId);
52
75
  return this.controller?.handleItemSessionChanged?.(canonicalId, session) ?? null;
@@ -1 +1 @@
1
- {"version":3,"file":"SectionRuntimeEngine.js","sourceRoot":"","sources":["../../src/runtime/SectionRuntimeEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SectionRuntimeEngine.js","sourceRoot":"","sources":["../../src/runtime/SectionRuntimeEngine.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  export declare const PIE_REGISTER_EVENT = "pie-register";
2
2
  export declare const PIE_UNREGISTER_EVENT = "pie-unregister";
3
+ export declare const PIE_INTERNAL_ITEM_SESSION_CHANGED_EVENT = "pie-item-session-changed";
3
4
  export declare const PIE_ITEM_SESSION_CHANGED_EVENT = "item-session-changed";
5
+ export declare const PIE_INTERNAL_CONTENT_LOADED_EVENT = "pie-content-loaded";
6
+ export declare const PIE_INTERNAL_ITEM_PLAYER_ERROR_EVENT = "pie-item-player-error";
4
7
  export type RuntimeRegistrationKind = "item" | "passage";
5
8
  export interface RuntimeRegistrationDetail {
6
9
  kind: RuntimeRegistrationKind;
@@ -16,4 +19,20 @@ export interface ItemSessionChangedDetail {
16
19
  session: unknown;
17
20
  sourceRuntimeId?: string;
18
21
  }
22
+ export interface InternalItemSessionChangedDetail {
23
+ itemId: string;
24
+ session: unknown;
25
+ }
26
+ export interface InternalContentLoadedDetail {
27
+ itemId: string;
28
+ canonicalItemId?: string;
29
+ contentKind?: string;
30
+ detail?: unknown;
31
+ }
32
+ export interface InternalItemPlayerErrorDetail {
33
+ itemId: string;
34
+ canonicalItemId?: string;
35
+ contentKind?: string;
36
+ error: unknown;
37
+ }
19
38
  //# sourceMappingURL=registration-events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registration-events.d.ts","sourceRoot":"","sources":["../../src/runtime/registration-events.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AACjD,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,8BAA8B,yBAAyB,CAAC;AAErE,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,yBAAyB;IACzC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB"}
1
+ {"version":3,"file":"registration-events.d.ts","sourceRoot":"","sources":["../../src/runtime/registration-events.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AACjD,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,uCAAuC,6BAA6B,CAAC;AAClF,eAAO,MAAM,8BAA8B,yBAAyB,CAAC;AACrE,eAAO,MAAM,iCAAiC,uBAAuB,CAAC;AACtE,eAAO,MAAM,oCAAoC,0BAA0B,CAAC;AAE5E,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,SAAS,CAAC;AAEzD,MAAM,WAAW,yBAAyB;IACzC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gCAAgC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,6BAA6B;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;CACf"}
@@ -1,4 +1,7 @@
1
1
  export const PIE_REGISTER_EVENT = "pie-register";
2
2
  export const PIE_UNREGISTER_EVENT = "pie-unregister";
3
+ export const PIE_INTERNAL_ITEM_SESSION_CHANGED_EVENT = "pie-item-session-changed";
3
4
  export const PIE_ITEM_SESSION_CHANGED_EVENT = "item-session-changed";
5
+ export const PIE_INTERNAL_CONTENT_LOADED_EVENT = "pie-content-loaded";
6
+ export const PIE_INTERNAL_ITEM_PLAYER_ERROR_EVENT = "pie-item-player-error";
4
7
  //# sourceMappingURL=registration-events.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registration-events.js","sourceRoot":"","sources":["../../src/runtime/registration-events.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AACrD,MAAM,CAAC,MAAM,8BAA8B,GAAG,sBAAsB,CAAC"}
1
+ {"version":3,"file":"registration-events.js","sourceRoot":"","sources":["../../src/runtime/registration-events.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AACrD,MAAM,CAAC,MAAM,uCAAuC,GAAG,0BAA0B,CAAC;AAClF,MAAM,CAAC,MAAM,8BAA8B,GAAG,sBAAsB,CAAC;AACrE,MAAM,CAAC,MAAM,iCAAiC,GAAG,oBAAoB,CAAC;AACtE,MAAM,CAAC,MAAM,oCAAoC,GAAG,uBAAuB,CAAC"}
@@ -1,3 +1,2 @@
1
1
  export declare function createRuntimeId(prefix?: string): string;
2
- export declare function shouldHandleBySourceRuntime(sourceRuntimeId: string | undefined, currentRuntimeId: string): boolean;
3
2
  //# sourceMappingURL=runtime-event-guards.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-event-guards.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime-event-guards.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,MAAM,SAAY,GAAG,MAAM,CAE1D;AAED,wBAAgB,2BAA2B,CAC1C,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,gBAAgB,EAAE,MAAM,GACtB,OAAO,CAGT"}
1
+ {"version":3,"file":"runtime-event-guards.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime-event-guards.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,MAAM,SAAY,GAAG,MAAM,CAE1D"}
@@ -1,9 +1,4 @@
1
1
  export function createRuntimeId(prefix = "runtime") {
2
2
  return `${prefix}-${Math.random().toString(16).slice(2)}-${Date.now()}`;
3
3
  }
4
- export function shouldHandleBySourceRuntime(sourceRuntimeId, currentRuntimeId) {
5
- if (!sourceRuntimeId)
6
- return true;
7
- return sourceRuntimeId !== currentRuntimeId;
8
- }
9
4
  //# sourceMappingURL=runtime-event-guards.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-event-guards.js","sourceRoot":"","sources":["../../src/runtime/runtime-event-guards.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,MAAM,GAAG,SAAS;IACjD,OAAO,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,2BAA2B,CAC1C,eAAmC,EACnC,gBAAwB;IAExB,IAAI,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,eAAe,KAAK,gBAAgB,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"runtime-event-guards.js","sourceRoot":"","sources":["../../src/runtime/runtime-event-guards.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,MAAM,GAAG,SAAS;IACjD,OAAO,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AACzE,CAAC"}
@@ -0,0 +1,12 @@
1
+ export type SessionEmitPolicyState = {
2
+ lastSessionEventSignatureByItemId: Map<string, string>;
3
+ lastMetadataSignatureByItemId: Map<string, string>;
4
+ };
5
+ export declare function createSessionEmitPolicyState(): SessionEmitPolicyState;
6
+ export declare function resetSessionEmitPolicyState(state: SessionEmitPolicyState): void;
7
+ export declare function shouldEmitCanonicalSessionEvent(args: {
8
+ state: SessionEmitPolicyState;
9
+ itemId: string;
10
+ payload: Record<string, unknown>;
11
+ }): boolean;
12
+ //# sourceMappingURL=session-event-emitter-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-event-emitter-policy.d.ts","sourceRoot":"","sources":["../../src/runtime/session-event-emitter-policy.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG;IACpC,iCAAiC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvD,6BAA6B,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnD,CAAC;AAEF,wBAAgB,4BAA4B,IAAI,sBAAsB,CAKrE;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAG/E;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE;IACrD,KAAK,EAAE,sBAAsB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC,GAAG,OAAO,CAiBV"}
@@ -0,0 +1,57 @@
1
+ export function createSessionEmitPolicyState() {
2
+ return {
3
+ lastSessionEventSignatureByItemId: new Map(),
4
+ lastMetadataSignatureByItemId: new Map(),
5
+ };
6
+ }
7
+ export function resetSessionEmitPolicyState(state) {
8
+ state.lastSessionEventSignatureByItemId.clear();
9
+ state.lastMetadataSignatureByItemId.clear();
10
+ }
11
+ export function shouldEmitCanonicalSessionEvent(args) {
12
+ const { state, itemId, payload } = args;
13
+ if (isMetadataOnlyEvent(payload)) {
14
+ const metadataSignature = getMetadataOnlySignature(payload);
15
+ const previousMetadataSignature = state.lastMetadataSignatureByItemId.get(itemId);
16
+ if (previousMetadataSignature === metadataSignature) {
17
+ return false;
18
+ }
19
+ state.lastMetadataSignatureByItemId.set(itemId, metadataSignature);
20
+ }
21
+ const signature = getSessionEventSemanticSignature(payload);
22
+ const previousSignature = state.lastSessionEventSignatureByItemId.get(itemId);
23
+ if (previousSignature === signature) {
24
+ return false;
25
+ }
26
+ state.lastSessionEventSignatureByItemId.set(itemId, signature);
27
+ return true;
28
+ }
29
+ function getSessionEventSemanticSignature(payload) {
30
+ const semanticPayload = { ...payload };
31
+ delete semanticPayload.timestamp;
32
+ delete semanticPayload.sourceRuntimeId;
33
+ try {
34
+ return JSON.stringify(semanticPayload);
35
+ }
36
+ catch {
37
+ return String(semanticPayload.itemId || "");
38
+ }
39
+ }
40
+ function isMetadataOnlyEvent(payload) {
41
+ return payload.intent === "metadata-only";
42
+ }
43
+ function getMetadataOnlySignature(payload) {
44
+ try {
45
+ return JSON.stringify({
46
+ itemId: payload.itemId,
47
+ canonicalItemId: payload.canonicalItemId,
48
+ intent: payload.intent,
49
+ complete: payload.complete ?? null,
50
+ component: payload.component ?? null,
51
+ });
52
+ }
53
+ catch {
54
+ return String(payload.itemId || "");
55
+ }
56
+ }
57
+ //# sourceMappingURL=session-event-emitter-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-event-emitter-policy.js","sourceRoot":"","sources":["../../src/runtime/session-event-emitter-policy.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,4BAA4B;IAC3C,OAAO;QACN,iCAAiC,EAAE,IAAI,GAAG,EAAkB;QAC5D,6BAA6B,EAAE,IAAI,GAAG,EAAkB;KACxD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAA6B;IACxE,KAAK,CAAC,iCAAiC,CAAC,KAAK,EAAE,CAAC;IAChD,KAAK,CAAC,6BAA6B,CAAC,KAAK,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,IAI/C;IACA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACxC,IAAI,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,yBAAyB,GAAG,KAAK,CAAC,6BAA6B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClF,IAAI,yBAAyB,KAAK,iBAAiB,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC;QACd,CAAC;QACD,KAAK,CAAC,6BAA6B,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,SAAS,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,iBAAiB,GAAG,KAAK,CAAC,iCAAiC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9E,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;IACd,CAAC;IACD,KAAK,CAAC,iCAAiC,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,gCAAgC,CAAC,OAAgC;IACzE,MAAM,eAAe,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IACvC,OAAO,eAAe,CAAC,SAAS,CAAC;IACjC,OAAO,eAAe,CAAC,eAAe,CAAC;IACvC,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,MAAM,CAAC,eAAe,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACF,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgC;IAC5D,OAAO,OAAO,CAAC,MAAM,KAAK,eAAe,CAAC;AAC3C,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAgC;IACjE,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC;YACrB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;YAClC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;SACpC,CAAC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;AACF,CAAC"}
@@ -58,6 +58,8 @@ export interface ToolToolbarRenderResult {
58
58
  sync?: () => void;
59
59
  subscribeActive?: (callback: (active: boolean) => void) => (() => void);
60
60
  }
61
+ export type ToolActivation = "toolbar-toggle" | "selection-gateway";
62
+ export type ToolSingletonScope = "section";
61
63
  /**
62
64
  * Tool registration interface
63
65
  */
@@ -72,6 +74,16 @@ export interface ToolRegistration {
72
74
  icon: string | ((context: ToolContext) => string);
73
75
  /** Which levels this tool supports */
74
76
  supportedLevels: ToolLevel[];
77
+ /**
78
+ * Activation model for this tool.
79
+ * - toolbar-toggle: rendered as a toolbar button (default)
80
+ * - selection-gateway: rendered as a singleton selection-driven gateway
81
+ */
82
+ activation?: ToolActivation;
83
+ /**
84
+ * Optional singleton scope for activation models that mount exactly one instance.
85
+ */
86
+ singletonScope?: ToolSingletonScope;
75
87
  /**
76
88
  * PNP support IDs that enable this tool (optional)
77
89
  * Used by PNPToolResolver to determine if tool is allowed
@@ -168,6 +180,18 @@ export declare class ToolRegistry {
168
180
  * @returns Array of tool registrations that support this level
169
181
  */
170
182
  getToolsByLevel(level: ToolLevel): ToolRegistration[];
183
+ /**
184
+ * Resolve tool activation with backward-compatible defaults.
185
+ */
186
+ getToolActivation(toolId: string): ToolActivation;
187
+ /**
188
+ * Resolve singleton scope for a tool when present.
189
+ */
190
+ getToolSingletonScope(toolId: string): ToolSingletonScope | null;
191
+ /**
192
+ * Filter tool IDs by activation type.
193
+ */
194
+ filterToolIdsByActivation(toolIds: string[], activation: ToolActivation): string[];
171
195
  /**
172
196
  * Filter tools by visibility in a given context
173
197
  *
@@ -191,6 +215,8 @@ export declare class ToolRegistry {
191
215
  description: string;
192
216
  pnpSupportIds: string[];
193
217
  supportedLevels: ToolLevel[];
218
+ activation: ToolActivation;
219
+ singletonScope: ToolSingletonScope | null;
194
220
  }>;
195
221
  /**
196
222
  * Generate PNP support IDs from enabled tools