@pie-players/pie-assessment-toolkit 0.3.37 → 0.3.39

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 (58) hide show
  1. package/dist/components/ItemToolBar.custom-element.js +8939 -1870
  2. package/dist/components/PieAssessmentToolkit.custom-element.js +13519 -1745
  3. package/dist/components/SectionToolBar.custom-element.js +13119 -142
  4. package/dist/policy/core/PolicySource.d.ts +2 -2
  5. package/dist/policy/core/PolicySource.js +1 -1
  6. package/dist/policy/core/ToolPolicyEngine.d.ts +15 -17
  7. package/dist/policy/core/ToolPolicyEngine.d.ts.map +1 -1
  8. package/dist/policy/core/ToolPolicyEngine.js +21 -21
  9. package/dist/policy/core/ToolPolicyEngine.js.map +1 -1
  10. package/dist/policy/core/compose-decision.d.ts +5 -5
  11. package/dist/policy/core/compose-decision.d.ts.map +1 -1
  12. package/dist/policy/core/compose-decision.js +40 -38
  13. package/dist/policy/core/compose-decision.js.map +1 -1
  14. package/dist/policy/core/decision-types.d.ts +10 -10
  15. package/dist/policy/core/decision-types.d.ts.map +1 -1
  16. package/dist/policy/core/{qti-inputs.d.ts → pnp-policy-inputs.d.ts} +23 -23
  17. package/dist/policy/core/pnp-policy-inputs.d.ts.map +1 -0
  18. package/dist/policy/core/{qti-inputs.js → pnp-policy-inputs.js} +25 -25
  19. package/dist/policy/core/pnp-policy-inputs.js.map +1 -0
  20. package/dist/policy/core/policy-source-tag.d.ts +6 -6
  21. package/dist/policy/core/policy-source-tag.js +3 -3
  22. package/dist/policy/core/provenance.d.ts +11 -11
  23. package/dist/policy/core/provenance.d.ts.map +1 -1
  24. package/dist/policy/core/provenance.js +4 -4
  25. package/dist/policy/engine.d.ts +5 -5
  26. package/dist/policy/engine.d.ts.map +1 -1
  27. package/dist/policy/engine.js +2 -2
  28. package/dist/policy/internal.d.ts +4 -4
  29. package/dist/policy/internal.d.ts.map +1 -1
  30. package/dist/policy/internal.js +4 -4
  31. package/dist/policy/internal.js.map +1 -1
  32. package/dist/policy/sources/{QtiPolicySource.d.ts → PnpPolicySource.d.ts} +25 -25
  33. package/dist/policy/sources/PnpPolicySource.d.ts.map +1 -0
  34. package/dist/policy/sources/{QtiPolicySource.js → PnpPolicySource.js} +28 -27
  35. package/dist/policy/sources/PnpPolicySource.js.map +1 -0
  36. package/dist/services/PNPToolResolver.d.ts.map +1 -1
  37. package/dist/services/PNPToolResolver.js +14 -15
  38. package/dist/services/PNPToolResolver.js.map +1 -1
  39. package/dist/services/ToolkitCoordinator.d.ts +55 -50
  40. package/dist/services/ToolkitCoordinator.d.ts.map +1 -1
  41. package/dist/services/ToolkitCoordinator.js +92 -72
  42. package/dist/services/ToolkitCoordinator.js.map +1 -1
  43. package/dist/services/interfaces.d.ts +24 -16
  44. package/dist/services/interfaces.d.ts.map +1 -1
  45. package/dist/services/interfaces.js.map +1 -1
  46. package/dist/services/pnp-provenance.d.ts +1 -1
  47. package/dist/services/pnp-provenance.d.ts.map +1 -1
  48. package/dist/services/pnp-provenance.js +1 -0
  49. package/dist/services/pnp-provenance.js.map +1 -1
  50. package/dist/services/tools-config-normalizer.d.ts +14 -15
  51. package/dist/services/tools-config-normalizer.d.ts.map +1 -1
  52. package/dist/services/tools-config-normalizer.js +5 -5
  53. package/dist/services/tools-config-normalizer.js.map +1 -1
  54. package/package.json +8 -8
  55. package/dist/policy/core/qti-inputs.d.ts.map +0 -1
  56. package/dist/policy/core/qti-inputs.js.map +0 -1
  57. package/dist/policy/sources/QtiPolicySource.d.ts.map +0 -1
  58. package/dist/policy/sources/QtiPolicySource.js.map +0 -1
@@ -3,7 +3,7 @@
3
3
  * `.cursor/plans/m8-design.md` § 5).
4
4
  *
5
5
  * Custom sources run in step 6 of the composition pipeline — *after*
6
- * placement membership, provider veto, host policy, and QTI gates.
6
+ * placement membership, provider veto, host policy, and PNP/profile gates.
7
7
  * That ordering is deliberate: custom rules can only further *narrow*
8
8
  * the candidate set or add advisory provenance entries; they cannot
9
9
  * promote a tool that the host already removed.
@@ -36,7 +36,7 @@ export interface PolicySourceProvenanceEntry {
36
36
  * Custom precedence value used for the decision log. Defaults to
37
37
  * `100 + sourceIndex` (engine-assigned) when `undefined`. Sources
38
38
  * MAY override only if they know what they are doing — overriding
39
- * to a value `<= 6` lets the source masquerade as a QTI rule and
39
+ * to a value `<= 6` lets the source masquerade as a PNP/profile rule and
40
40
  * is generally a bug.
41
41
  */
42
42
  precedence?: number;
@@ -3,7 +3,7 @@
3
3
  * `.cursor/plans/m8-design.md` § 5).
4
4
  *
5
5
  * Custom sources run in step 6 of the composition pipeline — *after*
6
- * placement membership, provider veto, host policy, and QTI gates.
6
+ * placement membership, provider veto, host policy, and PNP/profile gates.
7
7
  * That ordering is deliberate: custom rules can only further *narrow*
8
8
  * the candidate set or add advisory provenance entries; they cannot
9
9
  * promote a tool that the host already removed.
@@ -21,26 +21,24 @@ import type { CanonicalToolsConfig, ToolPlacementLevel } from "../../services/to
21
21
  import type { ToolRegistry } from "../../services/ToolRegistry.js";
22
22
  import type { ToolPolicyDecision, ToolPolicyDecisionRequest } from "./decision-types.js";
23
23
  import type { PolicySource } from "./PolicySource.js";
24
- export type QtiEnforcementMode = "on" | "off";
24
+ export type PnpEnforcementMode = "on" | "off";
25
25
  export interface ToolPolicyEngineInputs {
26
26
  tools?: CanonicalToolsConfig | null;
27
27
  assessment?: AssessmentEntity | null;
28
28
  currentItemRef?: AssessmentItemRef | null;
29
29
  /**
30
- * Explicit override. When omitted (or `undefined`), the engine
31
- * defaults to {@link resolveDefaultQtiEnforcement} over the bound
32
- * `assessment` and `currentItemRef`: `"on"` if they carry any QTI
33
- * 6-level precedence material (PNP, district policy, test
30
+ * Explicit PNP/profile override. When omitted (or `undefined`), the engine
31
+ * defaults to {@link resolveDefaultPnpEnforcement} over the bound
32
+ * `assessment` and `currentItemRef`: `"on"` if they carry any
33
+ * PNP/profile policy material (PNP, district policy, test
34
34
  * administration, item-level required/restricted/parameters),
35
35
  * `"off"` otherwise. See `.cursor/plans/m8-design.md` F2.
36
36
  *
37
- * Hosts that want to force a mode (test fixtures, demos that
38
- * intentionally bypass QTI gates) pass `"on"` or `"off"`
39
- * explicitly. Embedded under `<pie-section-player-*>` the same
40
- * override flows through `runtime.tools.qtiEnforcement` (see the
41
- * M5 mirror rule).
37
+ * Hosts that want to force a mode pass `"on"` or `"off"`
38
+ * explicitly. Embedded under `<pie-section-player-*>` the preferred
39
+ * override flows through `runtime.tools.pnpEnforcement`.
42
40
  */
43
- qtiEnforcement?: QtiEnforcementMode;
41
+ pnpEnforcement?: PnpEnforcementMode;
44
42
  }
45
43
  export interface ToolPolicyEngineArgs {
46
44
  toolRegistry: ToolRegistry;
@@ -51,7 +49,7 @@ export interface ToolPolicyEngineArgs {
51
49
  }
52
50
  export interface ToolPolicyChangeEvent {
53
51
  /** What changed in this update. */
54
- reason: "inputs" | "policy-source-added" | "policy-source-removed" | "qti-enforcement" | "disposed";
52
+ reason: "inputs" | "policy-source-added" | "policy-source-removed" | "pnp-enforcement" | "disposed";
55
53
  /** Snapshot of the engine's inputs after the change. */
56
54
  inputs: Readonly<ResolvedEngineInputs>;
57
55
  }
@@ -59,19 +57,19 @@ export interface ResolvedEngineInputs {
59
57
  tools: CanonicalToolsConfig;
60
58
  assessment: AssessmentEntity | null;
61
59
  currentItemRef: AssessmentItemRef | null;
62
- qtiEnforcement: QtiEnforcementMode;
60
+ pnpEnforcement: PnpEnforcementMode;
63
61
  }
64
62
  export type ToolPolicyChangeListener = (event: ToolPolicyChangeEvent) => void;
65
63
  export declare class ToolPolicyEngine {
66
64
  private readonly toolRegistry;
67
65
  private readonly contextId;
68
- private readonly qtiSource;
66
+ private readonly pnpPolicySource;
69
67
  private readonly customSources;
70
68
  private readonly listeners;
71
69
  private tools;
72
70
  private assessment;
73
71
  private currentItemRef;
74
- private qtiEnforcement;
72
+ private pnpEnforcement;
75
73
  private disposed;
76
74
  constructor(args: ToolPolicyEngineArgs);
77
75
  /**
@@ -106,8 +104,8 @@ export declare class ToolPolicyEngine {
106
104
  * coordinator's `getFloatingTools()` / `decideToolPolicy()` lockstep
107
105
  * tests.
108
106
  *
109
- * `qtiEnforcement` is stored on its own field and always emits with
110
- * a distinct `"qti-enforcement"` reason when no other key changed,
107
+ * `pnpEnforcement` is stored on its own field and always emits with
108
+ * a distinct `"pnp-enforcement"` reason when no other key changed,
111
109
  * so PR 4's auto-on flip can target that reason without a separate
112
110
  * event channel.
113
111
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ToolPolicyEngine.d.ts","sourceRoot":"","sources":["../../../src/policy/core/ToolPolicyEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EACX,oBAAoB,EACpB,kBAAkB,EAClB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,KAAK,EACX,kBAAkB,EAClB,yBAAyB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKtD,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,KAAK,CAAC;AAE9C,MAAM,WAAW,sBAAsB;IACtC,KAAK,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,cAAc,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC1C;;;;;;;;;;;;;OAaG;IACH,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAED,MAAM,WAAW,oBAAoB;IACpC,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACrC,mCAAmC;IACnC,MAAM,EACH,QAAQ,GACR,qBAAqB,GACrB,uBAAuB,GACvB,iBAAiB,GACjB,UAAU,CAAC;IACd,wDAAwD;IACxD,MAAM,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,cAAc,EAAE,kBAAkB,CAAC;CACnC;AAED,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAQ9E,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IAEjE,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAS;gBAEb,IAAI,EAAE,oBAAoB;IAkBtC;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,OAAO,EAAE,yBAAyB,GAAG,kBAAkB;IAmB9D;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAOvE;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI;IAuC1D,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI;IAqBtD,cAAc,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAO9D,SAAS,IAAI,QAAQ,CAAC,oBAAoB,CAAC;IAI3C,OAAO,IAAI,IAAI;IAWf,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,IAAI;IAWZ,OAAO,CAAC,iBAAiB;CAKzB"}
1
+ {"version":3,"file":"ToolPolicyEngine.d.ts","sourceRoot":"","sources":["../../../src/policy/core/ToolPolicyEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EACX,oBAAoB,EACpB,kBAAkB,EAClB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,KAAK,EACX,kBAAkB,EAClB,yBAAyB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKtD,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,KAAK,CAAC;AAE9C,MAAM,WAAW,sBAAsB;IACtC,KAAK,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,cAAc,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC1C;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAED,MAAM,WAAW,oBAAoB;IACpC,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACrC,mCAAmC;IACnC,MAAM,EACH,QAAQ,GACR,qBAAqB,GACrB,uBAAuB,GACvB,iBAAiB,GACjB,UAAU,CAAC;IACd,wDAAwD;IACxD,MAAM,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,oBAAoB;IACpC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,cAAc,EAAE,kBAAkB,CAAC;CACnC;AAED,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAQ9E,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IAEjE,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,cAAc,CAA2B;IACjD,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAS;gBAEb,IAAI,EAAE,oBAAoB;IAkBtC;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,OAAO,EAAE,yBAAyB,GAAG,kBAAkB;IAmB9D;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAOvE;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI;IAuC1D,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,IAAI;IAqBtD,cAAc,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAO9D,SAAS,IAAI,QAAQ,CAAC,oBAAoB,CAAC;IAI3C,OAAO,IAAI,IAAI;IAWf,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,IAAI;IAWZ,OAAO,CAAC,iBAAiB;CAKzB"}
@@ -18,8 +18,8 @@
18
18
  */
19
19
  import { normalizeToolsConfig } from "../../services/tools-config-normalizer.js";
20
20
  import { composeDecision } from "./compose-decision.js";
21
- import { resolveDefaultQtiEnforcement } from "./qti-inputs.js";
22
- import { QtiPolicySource } from "../sources/QtiPolicySource.js";
21
+ import { resolveDefaultPnpEnforcement } from "./pnp-policy-inputs.js";
22
+ import { PnpPolicySource } from "../sources/PnpPolicySource.js";
23
23
  const DEFAULT_TOOLS = normalizeToolsConfig({
24
24
  policy: { allowed: [], blocked: [] },
25
25
  placement: { section: [], item: [], passage: [] },
@@ -28,26 +28,26 @@ const DEFAULT_TOOLS = normalizeToolsConfig({
28
28
  export class ToolPolicyEngine {
29
29
  toolRegistry;
30
30
  contextId;
31
- qtiSource;
31
+ pnpPolicySource;
32
32
  customSources;
33
33
  listeners = new Set();
34
34
  tools;
35
35
  assessment;
36
36
  currentItemRef;
37
- qtiEnforcement;
37
+ pnpEnforcement;
38
38
  disposed = false;
39
39
  constructor(args) {
40
40
  this.toolRegistry = args.toolRegistry;
41
41
  this.contextId = args.contextId ?? "tool-policy";
42
- this.qtiSource = new QtiPolicySource(this.toolRegistry);
42
+ this.pnpPolicySource = new PnpPolicySource(this.toolRegistry);
43
43
  this.customSources = args.customSources ? [...args.customSources] : [];
44
44
  const inputs = args.inputs ?? {};
45
45
  this.tools = inputs.tools ?? DEFAULT_TOOLS;
46
46
  this.assessment = inputs.assessment ?? null;
47
47
  this.currentItemRef = inputs.currentItemRef ?? null;
48
- this.qtiEnforcement =
49
- inputs.qtiEnforcement ??
50
- resolveDefaultQtiEnforcement({
48
+ this.pnpEnforcement =
49
+ inputs.pnpEnforcement ??
50
+ resolveDefaultPnpEnforcement({
51
51
  assessment: this.assessment,
52
52
  currentItemRef: this.currentItemRef,
53
53
  });
@@ -75,11 +75,11 @@ export class ToolPolicyEngine {
75
75
  return composeDecision({
76
76
  request,
77
77
  tools: this.tools,
78
- qti: {
79
- source: this.qtiSource,
78
+ pnpPolicy: {
79
+ source: this.pnpPolicySource,
80
80
  assessment: this.assessment ?? undefined,
81
81
  currentItemRef: this.currentItemRef ?? undefined,
82
- enforcement: this.qtiEnforcement,
82
+ enforcement: this.pnpEnforcement,
83
83
  },
84
84
  customSources: this.customSources,
85
85
  contextId: requestContextId,
@@ -106,15 +106,15 @@ export class ToolPolicyEngine {
106
106
  * coordinator's `getFloatingTools()` / `decideToolPolicy()` lockstep
107
107
  * tests.
108
108
  *
109
- * `qtiEnforcement` is stored on its own field and always emits with
110
- * a distinct `"qti-enforcement"` reason when no other key changed,
109
+ * `pnpEnforcement` is stored on its own field and always emits with
110
+ * a distinct `"pnp-enforcement"` reason when no other key changed,
111
111
  * so PR 4's auto-on flip can target that reason without a separate
112
112
  * event channel.
113
113
  */
114
114
  updateInputs(patch) {
115
115
  this.assertNotDisposed();
116
116
  let changed = false;
117
- let qtiChanged = false;
117
+ let pnpChanged = false;
118
118
  if ("tools" in patch) {
119
119
  const next = patch.tools ?? DEFAULT_TOOLS;
120
120
  if (!Object.is(this.tools, next)) {
@@ -136,15 +136,15 @@ export class ToolPolicyEngine {
136
136
  changed = true;
137
137
  }
138
138
  }
139
- if ("qtiEnforcement" in patch && patch.qtiEnforcement) {
140
- if (this.qtiEnforcement !== patch.qtiEnforcement) {
141
- this.qtiEnforcement = patch.qtiEnforcement;
142
- qtiChanged = true;
139
+ if ("pnpEnforcement" in patch && patch.pnpEnforcement) {
140
+ if (this.pnpEnforcement !== patch.pnpEnforcement) {
141
+ this.pnpEnforcement = patch.pnpEnforcement;
142
+ pnpChanged = true;
143
143
  }
144
144
  }
145
- if (changed || qtiChanged) {
145
+ if (changed || pnpChanged) {
146
146
  this.emit({
147
- reason: qtiChanged && !changed ? "qti-enforcement" : "inputs",
147
+ reason: pnpChanged && !changed ? "pnp-enforcement" : "inputs",
148
148
  inputs: this.snapshotInputs(),
149
149
  });
150
150
  }
@@ -194,7 +194,7 @@ export class ToolPolicyEngine {
194
194
  tools: this.tools,
195
195
  assessment: this.assessment,
196
196
  currentItemRef: this.currentItemRef,
197
- qtiEnforcement: this.qtiEnforcement,
197
+ pnpEnforcement: this.pnpEnforcement,
198
198
  });
199
199
  }
200
200
  emit(event) {
@@ -1 +1 @@
1
- {"version":3,"file":"ToolPolicyEngine.js","sourceRoot":"","sources":["../../../src/policy/core/ToolPolicyEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolPolicyEngine.js","sourceRoot":"","sources":["../../../src/policy/core/ToolPolicyEngine.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Compose-decision pipeline (M8 — see `.cursor/plans/m8-design.md` § 3).
3
3
  *
4
4
  * Pure function: given a decision request, the host's tools config,
5
- * an optional QTI source, and the registered custom sources, returns
5
+ * an optional PNP policy source, and the registered custom sources, returns
6
6
  * a `ToolPolicyDecision`. The function performs no I/O, holds no
7
7
  * mutable state, and never reaches into Svelte / DOM — that is the
8
8
  * `ToolPolicyEngine` class's job.
@@ -14,16 +14,16 @@ import type { AssessmentEntity, AssessmentItemRef } from "@pie-players/pie-playe
14
14
  import { type CanonicalToolsConfig } from "../../services/tools-config-normalizer.js";
15
15
  import type { ToolPolicyDecision, ToolPolicyDecisionRequest } from "./decision-types.js";
16
16
  import type { PolicySource } from "./PolicySource.js";
17
- import type { QtiPolicySource } from "../sources/QtiPolicySource.js";
17
+ import type { PnpPolicySource } from "../sources/PnpPolicySource.js";
18
18
  export interface ComposeDecisionInputs {
19
19
  request: ToolPolicyDecisionRequest;
20
20
  tools: CanonicalToolsConfig;
21
- qti: {
22
- source: QtiPolicySource | null;
21
+ pnpPolicy: {
22
+ source: PnpPolicySource | null;
23
23
  assessment?: AssessmentEntity;
24
24
  currentItemRef?: AssessmentItemRef;
25
25
  /**
26
- * "on" applies the QTI 6-level precedence; "off" skips step 5
26
+ * "on" applies the PNP/profile precedence rules; "off" skips step 5
27
27
  * entirely. Defaults to "on" when an assessment is present
28
28
  * and the source is non-null (see M8 design Q5).
29
29
  */
@@ -1 +1 @@
1
- {"version":3,"file":"compose-decision.d.ts","sourceRoot":"","sources":["../../../src/policy/core/compose-decision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACN,KAAK,oBAAoB,EAEzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAEX,kBAAkB,EAClB,yBAAyB,EAIzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,WAAW,qBAAqB;IACrC,OAAO,EAAE,yBAAyB,CAAC;IACnC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,GAAG,EAAE;QACJ,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;QAC/B,UAAU,CAAC,EAAE,gBAAgB,CAAC;QAC9B,cAAc,CAAC,EAAE,iBAAiB,CAAC;QACnC;;;;WAIG;QACH,WAAW,EAAE,IAAI,GAAG,KAAK,CAAC;KAC1B,CAAC;IACF,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IACvC,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,eAAe,CAC9B,MAAM,EAAE,qBAAqB,GAC3B,kBAAkB,CAgTpB"}
1
+ {"version":3,"file":"compose-decision.d.ts","sourceRoot":"","sources":["../../../src/policy/core/compose-decision.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACN,KAAK,oBAAoB,EAEzB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAEX,kBAAkB,EAClB,yBAAyB,EAIzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,WAAW,qBAAqB;IACrC,OAAO,EAAE,yBAAyB,CAAC;IACnC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,SAAS,EAAE;QACV,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;QAC/B,UAAU,CAAC,EAAE,gBAAgB,CAAC;QAC9B,cAAc,CAAC,EAAE,iBAAiB,CAAC;QACnC;;;;WAIG;QACH,WAAW,EAAE,IAAI,GAAG,KAAK,CAAC;KAC1B,CAAC;IACF,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;IACvC,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,eAAe,CAC9B,MAAM,EAAE,qBAAqB,GAC3B,kBAAkB,CAoTpB"}
@@ -2,7 +2,7 @@
2
2
  * Compose-decision pipeline (M8 — see `.cursor/plans/m8-design.md` § 3).
3
3
  *
4
4
  * Pure function: given a decision request, the host's tools config,
5
- * an optional QTI source, and the registered custom sources, returns
5
+ * an optional PNP policy source, and the registered custom sources, returns
6
6
  * a `ToolPolicyDecision`. The function performs no I/O, holds no
7
7
  * mutable state, and never reaches into Svelte / DOM — that is the
8
8
  * `ToolPolicyEngine` class's job.
@@ -13,7 +13,7 @@
13
13
  import { normalizeToolList, } from "../../services/tools-config-normalizer.js";
14
14
  import { ToolPolicyProvenanceBuilder } from "./provenance.js";
15
15
  export function composeDecision(inputs) {
16
- const { request, tools, qti, customSources, contextId } = inputs;
16
+ const { request, tools, pnpPolicy, customSources, contextId } = inputs;
17
17
  const builder = new ToolPolicyProvenanceBuilder(contextId);
18
18
  builder.addSource("host", {
19
19
  id: request.scope.scopeId,
@@ -100,34 +100,36 @@ export function composeDecision(inputs) {
100
100
  }
101
101
  return true;
102
102
  });
103
- // Step 5 — QTI gates.
103
+ // Step 5 — PNP/profile policy gates.
104
104
  const diagnostics = [];
105
105
  const sourcesByTool = new Map();
106
106
  for (const toolId of candidates) {
107
107
  sourcesByTool.set(toolId, ["placement"]);
108
108
  }
109
109
  // Snapshot the post-host candidate set so step 5b can distinguish
110
- // "host removed a QTI-mandated tool" (qtiRequiredBlocked fires)
111
- // from "QTI's own precedence removed a QTI-mandated tool" (fix
110
+ // "host removed a required tool" (requiredToolBlocked fires)
111
+ // from "profile policy's own precedence removed a required tool" (fix
112
112
  // per M8 PR 1 R1 S1 — multi-rule conflict on the same tool must
113
113
  // not blame the host).
114
114
  const postHostCandidates = new Set(candidates);
115
- let qtiResult = null;
116
- if (qti.enforcement === "on" && qti.source && qti.assessment) {
117
- qtiResult = qti.source.apply({
118
- assessment: qti.assessment,
119
- currentItemRef: qti.currentItemRef,
115
+ let pnpPolicyResult = null;
116
+ if (pnpPolicy.enforcement === "on" &&
117
+ pnpPolicy.source &&
118
+ (pnpPolicy.assessment || pnpPolicy.currentItemRef)) {
119
+ pnpPolicyResult = pnpPolicy.source.apply({
120
+ assessment: pnpPolicy.assessment,
121
+ currentItemRef: pnpPolicy.currentItemRef,
120
122
  });
121
- if (qtiResult.sources.assessment) {
122
- builder.addSource("assessment", qtiResult.sources.assessment);
123
+ if (pnpPolicyResult.sources.assessment) {
124
+ builder.addSource("assessment", pnpPolicyResult.sources.assessment);
123
125
  }
124
- if (qtiResult.sources.student) {
125
- builder.addSource("student", qtiResult.sources.student);
126
+ if (pnpPolicyResult.sources.student) {
127
+ builder.addSource("student", pnpPolicyResult.sources.student);
126
128
  }
127
- if (qtiResult.sources.item) {
128
- builder.addSource("item", qtiResult.sources.item);
129
+ if (pnpPolicyResult.sources.item) {
130
+ builder.addSource("item", pnpPolicyResult.sources.item);
129
131
  }
130
- for (const decision of qtiResult.decisions) {
132
+ for (const decision of pnpPolicyResult.decisions) {
131
133
  builder.addDecision({
132
134
  precedence: decision.precedence,
133
135
  rule: decision.rule,
@@ -138,34 +140,34 @@ export function composeDecision(inputs) {
138
140
  value: decision.value,
139
141
  });
140
142
  }
141
- // 5a — remove QTI-blocked tools from the candidate set.
143
+ // 5a — remove PNP/profile-blocked tools from the candidate set.
142
144
  candidates = candidates.filter((toolId) => {
143
- return !qtiResult.blockedToolIds.has(toolId);
145
+ return !pnpPolicyResult.blockedToolIds.has(toolId);
144
146
  });
145
147
  for (const toolId of Array.from(sourcesByTool.keys())) {
146
- if (qtiResult.blockedToolIds.has(toolId)) {
148
+ if (pnpPolicyResult.blockedToolIds.has(toolId)) {
147
149
  sourcesByTool.delete(toolId);
148
150
  }
149
151
  }
150
- // 5b — surface qtiRequiredBlocked diagnostics ONLY for
151
- // QTI-mandated tools that the host removed (i.e., the tool was
152
+ // 5b — surface requiredToolBlocked diagnostics ONLY for
153
+ // PNP/profile-mandated tools that the host removed (i.e., the tool was
152
154
  // NOT in `postHostCandidates`). Mandated tools removed by
153
- // QTI's own higher-precedence rule (e.g. `restrictedTools`
154
- // blocking a `requiredTools` mandate) are an internal QTI
155
+ // profile policy's own higher-precedence rule (e.g. `restrictedTools`
156
+ // blocking a `requiredTools` mandate) are an internal policy
155
157
  // resolution and must not be reported as a host conflict — the
156
158
  // loser's `block` decision is already in the trail with full
157
- // QTI provenance.
159
+ // provenance.
158
160
  //
159
161
  // `details` carries `{ rule, hostRule, hostValue }` so consumers
160
162
  // can render the conflict as a single sentence without
161
163
  // re-deriving the host gate from `provenance.features`. See
162
- // `QtiRequiredBlockedDetails` for the typed shape.
163
- for (const mandatedToolId of qtiResult.mandatedToolIds) {
164
+ // `RequiredToolBlockedDetails` for the typed shape.
165
+ for (const mandatedToolId of pnpPolicyResult.mandatedToolIds) {
164
166
  const removedByHost = !postHostCandidates.has(mandatedToolId);
165
167
  if (!removedByHost)
166
168
  continue;
167
- const flag = qtiResult.perToolFlags.get(mandatedToolId);
168
- const ruleName = flag?.rule ?? "qti-required";
169
+ const flag = pnpPolicyResult.perToolFlags.get(mandatedToolId);
170
+ const ruleName = flag?.rule ?? "required-tool";
169
171
  const hostGate = detectHostRemovalGate(mandatedToolId, {
170
172
  placement,
171
173
  allowed,
@@ -178,28 +180,28 @@ export function composeDecision(inputs) {
178
180
  hostValue: hostGate.hostValue,
179
181
  };
180
182
  diagnostics.push({
181
- code: "tool-policy.qtiRequiredBlocked",
183
+ code: "tool-policy.requiredToolBlocked",
182
184
  level: request.level,
183
185
  toolId: mandatedToolId,
184
- message: `QTI mandates "${mandatedToolId}" (${ruleName}) but host policy removed it from level "${request.level}" via ${hostGate.hostRule}.`,
186
+ message: `Profile policy mandates "${mandatedToolId}" (${ruleName}) but host policy removed it from level "${request.level}" via ${hostGate.hostRule}.`,
185
187
  details,
186
188
  });
187
189
  builder.addDecision({
188
190
  precedence: 0,
189
- rule: "qti-required-blocked",
191
+ rule: "required-tool-blocked",
190
192
  featureId: mandatedToolId,
191
193
  action: "advisory",
192
194
  sourceType: "host",
193
- reason: `Host removed QTI-mandated tool "${mandatedToolId}" via ${hostGate.hostRule}`,
195
+ reason: `Host removed required tool "${mandatedToolId}" via ${hostGate.hostRule}`,
194
196
  value: details,
195
197
  });
196
198
  }
197
- // 5c — attach QTI source tags to surviving entries.
199
+ // 5c — attach PNP policy source tags to surviving entries.
198
200
  for (const toolId of candidates) {
199
- const flag = qtiResult.perToolFlags.get(toolId);
201
+ const flag = pnpPolicyResult.perToolFlags.get(toolId);
200
202
  if (flag) {
201
203
  const tags = sourcesByTool.get(toolId) ?? [];
202
- tags.push(`qti.${flag.rule}`);
204
+ tags.push(`pnp.${flag.rule}`);
203
205
  sourcesByTool.set(toolId, tags);
204
206
  }
205
207
  }
@@ -283,7 +285,7 @@ export function composeDecision(inputs) {
283
285
  }
284
286
  const survivingIds = new Set(candidates);
285
287
  const visibleTools = candidates.map((toolId) => {
286
- const flag = qtiResult?.perToolFlags.get(toolId);
288
+ const flag = pnpPolicyResult?.perToolFlags.get(toolId);
287
289
  return {
288
290
  toolId,
289
291
  required: flag?.required ?? false,
@@ -301,7 +303,7 @@ export function composeDecision(inputs) {
301
303
  }
302
304
  /**
303
305
  * Identify which step-1-through-4 host gate removed a tool. Used by
304
- * step 5b to enrich `tool-policy.qtiRequiredBlocked` diagnostics. The
306
+ * step 5b to enrich `tool-policy.requiredToolBlocked` diagnostics. The
305
307
  * checks mirror the pipeline order — step 1 (placement) first, step 4
306
308
  * (blocklist) last — so the FIRST gate that would have matched wins,
307
309
  * which is the gate the pipeline actually invoked. Subsequent gates
@@ -1 +1 @@
1
- {"version":3,"file":"compose-decision.js","sourceRoot":"","sources":["../../../src/policy/core/compose-decision.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose-decision.js","sourceRoot":"","sources":["../../../src/policy/core/compose-decision.ts"],"names":[],"mappings":"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"}
@@ -52,9 +52,9 @@ export interface ToolPolicyDecisionRequest {
52
52
  }
53
53
  /**
54
54
  * Diagnostic codes the engine may emit alongside a decision. The
55
- * canonical case in M8 is `tool-policy.qtiRequiredBlocked` — fired
55
+ * canonical case in M8 is `tool-policy.requiredToolBlocked` — fired
56
56
  * when a host policy gate (`policy.blocked`, missing-from-`placement`,
57
- * provider veto) removed a tool that QTI's `requiredTools` /
57
+ * provider veto) removed a tool that profile policy `requiredTools` /
58
58
  * `district.requiredTools` mandates.
59
59
  *
60
60
  * `tool-policy.placementMissing` fires when a custom `PolicySource`
@@ -63,10 +63,10 @@ export interface ToolPolicyDecisionRequest {
63
63
  * (already used by `tool-config-validation.ts`) covers config-time
64
64
  * misconfiguration; this channel covers per-decision conflicts.
65
65
  */
66
- export type ToolPolicyDiagnosticCode = "tool-policy.qtiRequiredBlocked" | "tool-policy.placementMissing";
66
+ export type ToolPolicyDiagnosticCode = "tool-policy.requiredToolBlocked" | "tool-policy.placementMissing";
67
67
  /**
68
- * Which host gate removed a QTI-mandated tool. Surfaced inside
69
- * `ToolPolicyDiagnostic.details` for `tool-policy.qtiRequiredBlocked`
68
+ * Which host gate removed a profile-mandated tool. Surfaced inside
69
+ * `ToolPolicyDiagnostic.details` for `tool-policy.requiredToolBlocked`
70
70
  * so consumers can render a single human-readable explanation
71
71
  * ("the proctor blocked the calculator that this student's IEP
72
72
  * requires") without re-deriving the host gate from
@@ -80,14 +80,14 @@ export type ToolPolicyDiagnosticCode = "tool-policy.qtiRequiredBlocked" | "tool-
80
80
  */
81
81
  export type ToolPolicyHostGate = "placement-missing" | "provider-disabled" | "host-allowlist" | "host-blocked";
82
82
  /**
83
- * Strongly-typed payload for `tool-policy.qtiRequiredBlocked`
83
+ * Strongly-typed payload for `tool-policy.requiredToolBlocked`
84
84
  * diagnostics. The diagnostic's `details` field still types as
85
85
  * `Record<string, unknown>` for forward compatibility, but engines
86
86
  * always populate this exact shape today and consumers can safely
87
87
  * cast.
88
88
  */
89
- export interface QtiRequiredBlockedDetails extends Record<string, unknown> {
90
- /** The QTI rule that mandated the tool (e.g. `district-requirement`). */
89
+ export interface RequiredToolBlockedDetails extends Record<string, unknown> {
90
+ /** The profile policy rule that mandated the tool (e.g. `district-requirement`). */
91
91
  rule: string;
92
92
  /** Which host gate removed the tool. */
93
93
  hostRule: ToolPolicyHostGate;
@@ -105,7 +105,7 @@ export interface ToolPolicyDiagnostic {
105
105
  export interface ToolPolicyEntry {
106
106
  toolId: string;
107
107
  /**
108
- * `true` when QTI mandates this tool (item or district
108
+ * `true` when PNP/profile policy mandates this tool (item or district
109
109
  * `requiredTools`, or PNP support without prohibition). Advisory
110
110
  * mandates that the host blocked do *not* surface here — they
111
111
  * appear in `diagnostics` instead. Hosts that need to know about
@@ -121,7 +121,7 @@ export interface ToolPolicyEntry {
121
121
  alwaysAvailable: boolean;
122
122
  /**
123
123
  * Tool-specific settings resolved from the assessment / item
124
- * settings via the QTI source. Hosts that want to read these
124
+ * settings via the PNP policy source. Hosts that want to read these
125
125
  * directly should use `entry.settings` rather than peeking into
126
126
  * the assessment entity from above the engine.
127
127
  */
@@ -1 +1 @@
1
- {"version":3,"file":"decision-types.d.ts","sourceRoot":"","sources":["../../../src/policy/core/decision-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACzB,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACzC;;;;;OAKG;IACH,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,wBAAwB,GACjC,gCAAgC,GAChC,8BAA8B,CAAC;AAElC;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,kBAAkB,GAC3B,mBAAmB,GACnB,mBAAmB,GACnB,gBAAgB,GAChB,cAAc,CAAC;AAElB;;;;;;GAMG;AACH,MAAM,WAAW,yBAA0B,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACzE,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,0FAA0F;IAC1F,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,OAAO,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IAClC,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,UAAU,EAAE,oBAAoB,CAAC;CACjC"}
1
+ {"version":3,"file":"decision-types.d.ts","sourceRoot":"","sources":["../../../src/policy/core/decision-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACzB,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACzC;;;;;OAKG;IACH,KAAK,EAAE,kBAAkB,CAAC;IAC1B,KAAK,EAAE,SAAS,CAAC;IACjB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,wBAAwB,GACjC,iCAAiC,GACjC,8BAA8B,CAAC;AAElC;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,kBAAkB,GAC3B,mBAAmB,GACnB,mBAAmB,GACnB,gBAAgB,GAChB,cAAc,CAAC;AAElB;;;;;;GAMG;AACH,MAAM,WAAW,0BAA2B,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1E,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,0FAA0F;IAC1F,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,OAAO,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IAClC,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,UAAU,EAAE,oBAAoB,CAAC;CACjC"}