@pie-players/pie-assessment-toolkit 0.3.36 → 0.3.38

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 (72) hide show
  1. package/README.md +0 -4
  2. package/dist/components/ItemToolBar.custom-element.js +6 -4
  3. package/dist/components/PieAssessmentToolkit.custom-element.js +34 -39
  4. package/dist/index.d.ts +0 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +0 -4
  7. package/dist/index.js.map +1 -1
  8. package/dist/policy/core/PolicySource.d.ts +2 -2
  9. package/dist/policy/core/PolicySource.js +1 -1
  10. package/dist/policy/core/ToolPolicyEngine.d.ts +15 -17
  11. package/dist/policy/core/ToolPolicyEngine.d.ts.map +1 -1
  12. package/dist/policy/core/ToolPolicyEngine.js +21 -21
  13. package/dist/policy/core/ToolPolicyEngine.js.map +1 -1
  14. package/dist/policy/core/compose-decision.d.ts +5 -5
  15. package/dist/policy/core/compose-decision.d.ts.map +1 -1
  16. package/dist/policy/core/compose-decision.js +40 -38
  17. package/dist/policy/core/compose-decision.js.map +1 -1
  18. package/dist/policy/core/decision-types.d.ts +10 -10
  19. package/dist/policy/core/decision-types.d.ts.map +1 -1
  20. package/dist/policy/core/{qti-inputs.d.ts → pnp-policy-inputs.d.ts} +23 -23
  21. package/dist/policy/core/pnp-policy-inputs.d.ts.map +1 -0
  22. package/dist/policy/core/{qti-inputs.js → pnp-policy-inputs.js} +25 -25
  23. package/dist/policy/core/pnp-policy-inputs.js.map +1 -0
  24. package/dist/policy/core/policy-source-tag.d.ts +6 -6
  25. package/dist/policy/core/policy-source-tag.js +3 -3
  26. package/dist/policy/core/provenance.d.ts +11 -11
  27. package/dist/policy/core/provenance.d.ts.map +1 -1
  28. package/dist/policy/core/provenance.js +4 -4
  29. package/dist/policy/engine.d.ts +5 -5
  30. package/dist/policy/engine.d.ts.map +1 -1
  31. package/dist/policy/engine.js +2 -2
  32. package/dist/policy/internal.d.ts +4 -4
  33. package/dist/policy/internal.d.ts.map +1 -1
  34. package/dist/policy/internal.js +4 -4
  35. package/dist/policy/internal.js.map +1 -1
  36. package/dist/policy/sources/{QtiPolicySource.d.ts → PnpPolicySource.d.ts} +25 -25
  37. package/dist/policy/sources/PnpPolicySource.d.ts.map +1 -0
  38. package/dist/policy/sources/{QtiPolicySource.js → PnpPolicySource.js} +28 -27
  39. package/dist/policy/sources/PnpPolicySource.js.map +1 -0
  40. package/dist/services/I18nService.d.ts +0 -1
  41. package/dist/services/I18nService.d.ts.map +1 -1
  42. package/dist/services/I18nService.js +0 -1
  43. package/dist/services/I18nService.js.map +1 -1
  44. package/dist/services/PNPToolResolver.d.ts.map +1 -1
  45. package/dist/services/PNPToolResolver.js +14 -15
  46. package/dist/services/PNPToolResolver.js.map +1 -1
  47. package/dist/services/ToolkitCoordinator.d.ts +63 -50
  48. package/dist/services/ToolkitCoordinator.d.ts.map +1 -1
  49. package/dist/services/ToolkitCoordinator.js +118 -74
  50. package/dist/services/ToolkitCoordinator.js.map +1 -1
  51. package/dist/services/interfaces.d.ts +24 -16
  52. package/dist/services/interfaces.d.ts.map +1 -1
  53. package/dist/services/interfaces.js.map +1 -1
  54. package/dist/services/pnp-provenance.d.ts +1 -1
  55. package/dist/services/pnp-provenance.d.ts.map +1 -1
  56. package/dist/services/pnp-provenance.js +1 -0
  57. package/dist/services/pnp-provenance.js.map +1 -1
  58. package/dist/services/section-controller-types.d.ts +125 -0
  59. package/dist/services/section-controller-types.d.ts.map +1 -1
  60. package/dist/services/tools-config-normalizer.d.ts +14 -15
  61. package/dist/services/tools-config-normalizer.d.ts.map +1 -1
  62. package/dist/services/tools-config-normalizer.js +5 -5
  63. package/dist/services/tools-config-normalizer.js.map +1 -1
  64. package/package.json +7 -7
  65. package/dist/core/TypedEventBus.d.ts +0 -48
  66. package/dist/core/TypedEventBus.d.ts.map +0 -1
  67. package/dist/core/TypedEventBus.js +0 -63
  68. package/dist/core/TypedEventBus.js.map +0 -1
  69. package/dist/policy/core/qti-inputs.d.ts.map +0 -1
  70. package/dist/policy/core/qti-inputs.js.map +0 -1
  71. package/dist/policy/sources/QtiPolicySource.d.ts.map +0 -1
  72. package/dist/policy/sources/QtiPolicySource.js.map +0 -1
@@ -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"}
@@ -1,21 +1,21 @@
1
1
  /**
2
- * QTI input detection (M8 PR 4 — see `.cursor/plans/m8-design.md` F2 and
2
+ * PNP/profile policy input detection (M8 PR 4 — see `.cursor/plans/m8-design.md` F2 and
3
3
  * `.cursor/plans/m8-implementation-plan.md` § PR 4).
4
4
  *
5
5
  * Pure helpers that decide whether the inputs the engine has been given
6
- * actually carry QTI 6-level precedence material. Used by:
6
+ * actually carry PNP/profile policy material. Used by:
7
7
  *
8
8
  * - {@link ToolPolicyEngine}'s constructor as the auto-default for
9
- * `qtiEnforcement` when the host did not pass an explicit `"on"` /
9
+ * `pnpEnforcement` when the host did not pass an explicit `"on"` /
10
10
  * `"off"`.
11
- * - {@link ToolkitCoordinator.resolveEffectiveQtiEnforcement} as the
11
+ * - {@link ToolkitCoordinator.resolveEffectivePnpEnforcement} as the
12
12
  * auto-mode rule. PR 2 used a coarse "any non-null assessment → on"
13
13
  * placeholder; PR 4 narrows it to "assessment OR currentItemRef
14
- * carries QTI material."
14
+ * carries profile policy material."
15
15
  *
16
16
  * The rule is intentionally narrow. Hosts that bind a bare assessment
17
17
  * record (only `id` / `name`, no PNP and no settings) get the legacy
18
- * floating-tools behavior — QTI gates do not engage. The flip happens
18
+ * floating-tools behavior — PNP/profile gates do not engage. The flip happens
19
19
  * the moment the assessment carries any of:
20
20
  *
21
21
  * - `personalNeedsProfile` (any `supports`, `prohibitedSupports`, or
@@ -28,40 +28,40 @@
28
28
  * `requiredTools` / `restrictedTools` / `toolParameters`.
29
29
  *
30
30
  * Hosts opt out of the auto-on behavior by passing
31
- * `qtiEnforcement: "off"` explicitly (engine input or
32
- * `ToolkitCoordinator.setQtiEnforcement("off")`).
31
+ * `pnpEnforcement: "off"` explicitly (engine input or
32
+ * `ToolkitCoordinator.setPnpEnforcement("off")`).
33
33
  */
34
34
  import type { AssessmentEntity, AssessmentItemRef } from "@pie-players/pie-players-shared/types";
35
35
  /**
36
- * Return `true` when the assessment carries any QTI 6-level precedence
37
- * material that the engine's `QtiPolicySource` would consume.
36
+ * Return `true` when the assessment carries any PNP/profile policy
37
+ * material that the engine's `PnpPolicySource` would consume.
38
38
  *
39
39
  * The check is structural — the presence of a non-empty PNP, district
40
40
  * policy, or test administration block is enough; the content does not
41
41
  * have to validate against any specific rule.
42
42
  */
43
- export declare function assessmentHasQtiInputs(assessment: AssessmentEntity | null | undefined): boolean;
43
+ export declare function assessmentHasPnpPolicyInputs(assessment: AssessmentEntity | null | undefined): boolean;
44
44
  /**
45
- * Return `true` when the bound item reference carries item-level QTI
45
+ * Return `true` when the bound item reference carries item-level profile policy
46
46
  * material (`requiredTools`, `restrictedTools`, or `toolParameters`).
47
47
  *
48
- * Used in addition to {@link assessmentHasQtiInputs} so a host that
49
- * navigates to an item with QTI-relevant settings — without a parent
48
+ * Used in addition to {@link assessmentHasPnpPolicyInputs} so a host that
49
+ * navigates to an item with profile-relevant settings — without a parent
50
50
  * assessment carrying its own PNP/district/test-admin block — still
51
- * gets QTI gates engaged for that item.
51
+ * gets PNP/profile gates engaged for that item.
52
52
  */
53
- export declare function itemRefHasQtiInputs(itemRef: AssessmentItemRef | null | undefined): boolean;
53
+ export declare function itemRefHasPnpPolicyInputs(itemRef: AssessmentItemRef | null | undefined): boolean;
54
54
  /**
55
- * Resolve the default `qtiEnforcement` mode given the bound inputs.
55
+ * Resolve the default `pnpEnforcement` mode given the bound inputs.
56
56
  *
57
- * Returns `"on"` when {@link assessmentHasQtiInputs} or
58
- * {@link itemRefHasQtiInputs} reports any QTI material; otherwise
57
+ * Returns `"on"` when {@link assessmentHasPnpPolicyInputs} or
58
+ * {@link itemRefHasPnpPolicyInputs} reports any profile policy material; otherwise
59
59
  * `"off"`. Hosts override the default by passing an explicit
60
- * `qtiEnforcement` value (engine input) or by calling
61
- * `ToolkitCoordinator.setQtiEnforcement("on" | "off")`.
60
+ * `pnpEnforcement` value (engine input) or by calling
61
+ * `ToolkitCoordinator.setPnpEnforcement("on" | "off")`.
62
62
  */
63
- export declare function resolveDefaultQtiEnforcement(args: {
63
+ export declare function resolveDefaultPnpEnforcement(args: {
64
64
  assessment?: AssessmentEntity | null;
65
65
  currentItemRef?: AssessmentItemRef | null;
66
66
  }): "on" | "off";
67
- //# sourceMappingURL=qti-inputs.d.ts.map
67
+ //# sourceMappingURL=pnp-policy-inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pnp-policy-inputs.d.ts","sourceRoot":"","sources":["../../../src/policy/core/pnp-policy-inputs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAChB,iBAAiB,EACjB,MAAM,uCAAuC,CAAC;AAE/C;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC3C,UAAU,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,GAC7C,OAAO,CA4DT;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACxC,OAAO,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAC3C,OAAO,CAuBT;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IAClD,UAAU,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,cAAc,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC1C,GAAG,IAAI,GAAG,KAAK,CAIf"}
@@ -1,21 +1,21 @@
1
1
  /**
2
- * QTI input detection (M8 PR 4 — see `.cursor/plans/m8-design.md` F2 and
2
+ * PNP/profile policy input detection (M8 PR 4 — see `.cursor/plans/m8-design.md` F2 and
3
3
  * `.cursor/plans/m8-implementation-plan.md` § PR 4).
4
4
  *
5
5
  * Pure helpers that decide whether the inputs the engine has been given
6
- * actually carry QTI 6-level precedence material. Used by:
6
+ * actually carry PNP/profile policy material. Used by:
7
7
  *
8
8
  * - {@link ToolPolicyEngine}'s constructor as the auto-default for
9
- * `qtiEnforcement` when the host did not pass an explicit `"on"` /
9
+ * `pnpEnforcement` when the host did not pass an explicit `"on"` /
10
10
  * `"off"`.
11
- * - {@link ToolkitCoordinator.resolveEffectiveQtiEnforcement} as the
11
+ * - {@link ToolkitCoordinator.resolveEffectivePnpEnforcement} as the
12
12
  * auto-mode rule. PR 2 used a coarse "any non-null assessment → on"
13
13
  * placeholder; PR 4 narrows it to "assessment OR currentItemRef
14
- * carries QTI material."
14
+ * carries profile policy material."
15
15
  *
16
16
  * The rule is intentionally narrow. Hosts that bind a bare assessment
17
17
  * record (only `id` / `name`, no PNP and no settings) get the legacy
18
- * floating-tools behavior — QTI gates do not engage. The flip happens
18
+ * floating-tools behavior — PNP/profile gates do not engage. The flip happens
19
19
  * the moment the assessment carries any of:
20
20
  *
21
21
  * - `personalNeedsProfile` (any `supports`, `prohibitedSupports`, or
@@ -28,18 +28,18 @@
28
28
  * `requiredTools` / `restrictedTools` / `toolParameters`.
29
29
  *
30
30
  * Hosts opt out of the auto-on behavior by passing
31
- * `qtiEnforcement: "off"` explicitly (engine input or
32
- * `ToolkitCoordinator.setQtiEnforcement("off")`).
31
+ * `pnpEnforcement: "off"` explicitly (engine input or
32
+ * `ToolkitCoordinator.setPnpEnforcement("off")`).
33
33
  */
34
34
  /**
35
- * Return `true` when the assessment carries any QTI 6-level precedence
36
- * material that the engine's `QtiPolicySource` would consume.
35
+ * Return `true` when the assessment carries any PNP/profile policy
36
+ * material that the engine's `PnpPolicySource` would consume.
37
37
  *
38
38
  * The check is structural — the presence of a non-empty PNP, district
39
39
  * policy, or test administration block is enough; the content does not
40
40
  * have to validate against any specific rule.
41
41
  */
42
- export function assessmentHasQtiInputs(assessment) {
42
+ export function assessmentHasPnpPolicyInputs(assessment) {
43
43
  if (!assessment)
44
44
  return false;
45
45
  const pnp = assessment.personalNeedsProfile;
@@ -93,15 +93,15 @@ export function assessmentHasQtiInputs(assessment) {
93
93
  return false;
94
94
  }
95
95
  /**
96
- * Return `true` when the bound item reference carries item-level QTI
96
+ * Return `true` when the bound item reference carries item-level profile policy
97
97
  * material (`requiredTools`, `restrictedTools`, or `toolParameters`).
98
98
  *
99
- * Used in addition to {@link assessmentHasQtiInputs} so a host that
100
- * navigates to an item with QTI-relevant settings — without a parent
99
+ * Used in addition to {@link assessmentHasPnpPolicyInputs} so a host that
100
+ * navigates to an item with profile-relevant settings — without a parent
101
101
  * assessment carrying its own PNP/district/test-admin block — still
102
- * gets QTI gates engaged for that item.
102
+ * gets PNP/profile gates engaged for that item.
103
103
  */
104
- export function itemRefHasQtiInputs(itemRef) {
104
+ export function itemRefHasPnpPolicyInputs(itemRef) {
105
105
  const settings = itemRef?.settings;
106
106
  if (!settings)
107
107
  return false;
@@ -121,19 +121,19 @@ export function itemRefHasQtiInputs(itemRef) {
121
121
  return false;
122
122
  }
123
123
  /**
124
- * Resolve the default `qtiEnforcement` mode given the bound inputs.
124
+ * Resolve the default `pnpEnforcement` mode given the bound inputs.
125
125
  *
126
- * Returns `"on"` when {@link assessmentHasQtiInputs} or
127
- * {@link itemRefHasQtiInputs} reports any QTI material; otherwise
126
+ * Returns `"on"` when {@link assessmentHasPnpPolicyInputs} or
127
+ * {@link itemRefHasPnpPolicyInputs} reports any profile policy material; otherwise
128
128
  * `"off"`. Hosts override the default by passing an explicit
129
- * `qtiEnforcement` value (engine input) or by calling
130
- * `ToolkitCoordinator.setQtiEnforcement("on" | "off")`.
129
+ * `pnpEnforcement` value (engine input) or by calling
130
+ * `ToolkitCoordinator.setPnpEnforcement("on" | "off")`.
131
131
  */
132
- export function resolveDefaultQtiEnforcement(args) {
133
- if (assessmentHasQtiInputs(args.assessment))
132
+ export function resolveDefaultPnpEnforcement(args) {
133
+ if (assessmentHasPnpPolicyInputs(args.assessment))
134
134
  return "on";
135
- if (itemRefHasQtiInputs(args.currentItemRef))
135
+ if (itemRefHasPnpPolicyInputs(args.currentItemRef))
136
136
  return "on";
137
137
  return "off";
138
138
  }
139
- //# sourceMappingURL=qti-inputs.js.map
139
+ //# sourceMappingURL=pnp-policy-inputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pnp-policy-inputs.js","sourceRoot":"","sources":["../../../src/policy/core/pnp-policy-inputs.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * The engine attaches a `PolicySourceTag` to every `ToolPolicyEntry` it
5
5
  * emits, capturing every step from `compose-decision.ts` that contributed
6
- * to the entry being kept (or, in the case of `qti-required-blocked`,
6
+ * to the entry being kept (or, in the case of `required-tool-blocked`,
7
7
  * the step that surfaced the conflict).
8
8
  *
9
9
  * Tag vocabulary maps onto the six composition steps in
@@ -15,8 +15,8 @@
15
15
  * non-`enabled: false` check)
16
16
  * 3. Host whitelist → `"policy"`
17
17
  * 4. Host blocklist → `"policy"` (negative)
18
- * 5. QTI gates → `"qti.${rule}"` (e.g. `"qti.pnp-support"`,
19
- * `"qti.item-requirement"`)
18
+ * 5. PNP/profile gates → `"pnp.${rule}"` (e.g. `"pnp.pnp-support"`,
19
+ * `"pnp.item-requirement"`)
20
20
  * 6. Custom PolicySources → `"custom.${source.id}"`
21
21
  *
22
22
  * Negative tags do not appear on surviving entries — they are reflected
@@ -25,8 +25,8 @@
25
25
  * *removed* one. Diagnostic surfacing of removals is the
26
26
  * provenance/diagnostic channel's job.
27
27
  */
28
- export type QtiPolicySourceRule = "district-block" | "test-admin-override" | "item-restriction" | "item-requirement" | "district-requirement" | "pnp-support" | "pnp-prohibited";
29
- export type QtiPolicySourceTag = `qti.${QtiPolicySourceRule}`;
28
+ export type PnpPolicySourceRule = "district-block" | "test-admin-override" | "item-restriction" | "item-requirement" | "district-requirement" | "pnp-support" | "pnp-prohibited";
29
+ export type PnpPolicySourceTag = `pnp.${PnpPolicySourceRule}`;
30
30
  export type CustomPolicySourceTag = `custom.${string}`;
31
- export type PolicySourceTag = "placement" | "policy" | "provider" | QtiPolicySourceTag | CustomPolicySourceTag;
31
+ export type PolicySourceTag = "placement" | "policy" | "provider" | PnpPolicySourceTag | CustomPolicySourceTag;
32
32
  //# sourceMappingURL=policy-source-tag.d.ts.map
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * The engine attaches a `PolicySourceTag` to every `ToolPolicyEntry` it
5
5
  * emits, capturing every step from `compose-decision.ts` that contributed
6
- * to the entry being kept (or, in the case of `qti-required-blocked`,
6
+ * to the entry being kept (or, in the case of `required-tool-blocked`,
7
7
  * the step that surfaced the conflict).
8
8
  *
9
9
  * Tag vocabulary maps onto the six composition steps in
@@ -15,8 +15,8 @@
15
15
  * non-`enabled: false` check)
16
16
  * 3. Host whitelist → `"policy"`
17
17
  * 4. Host blocklist → `"policy"` (negative)
18
- * 5. QTI gates → `"qti.${rule}"` (e.g. `"qti.pnp-support"`,
19
- * `"qti.item-requirement"`)
18
+ * 5. PNP/profile gates → `"pnp.${rule}"` (e.g. `"pnp.pnp-support"`,
19
+ * `"pnp.item-requirement"`)
20
20
  * 6. Custom PolicySources → `"custom.${source.id}"`
21
21
  *
22
22
  * Negative tags do not appear on surviving entries — they are reflected
@@ -5,7 +5,7 @@
5
5
  * Today's `PnpResolutionProvenance` (in `services/pnp-provenance.ts`)
6
6
  * tracks decisions made by `PnpToolResolver` only. M8 generalizes the
7
7
  * shape to track decisions from every Pass-1 contributor — host
8
- * placement, host policy, provider veto, QTI gates, and custom policy
8
+ * placement, host policy, provider veto, PNP/profile gates, and custom policy
9
9
  * sources — without losing PNP debugger compatibility.
10
10
  *
11
11
  * **Compatibility posture.** This module is the new home of the shape;
@@ -15,30 +15,30 @@
15
15
  * fields (`contextId`, `resolvedAt`, `sources`, `features`,
16
16
  * `decisionLog`, `summary`) are preserved verbatim. The rule
17
17
  * vocabulary expands, and `ResolutionDecision.precedence` widens from
18
- * `1 | 2 | 3 | 4 | 5 | 6` to a `number` so non-QTI rules can fit
19
- * (the QTI rules continue to use `1`–`6` exactly as before).
18
+ * `1 | 2 | 3 | 4 | 5 | 6` to a `number` so non-profile rules can fit
19
+ * (the PNP/profile rules continue to use `1`–`6` exactly as before).
20
20
  */
21
21
  /**
22
22
  * Expanded rule vocabulary for `ResolutionDecision.rule` in M8.
23
23
  *
24
24
  * The first six values map 1:1 onto `PnpResolutionProvenance`'s
25
- * existing rule names (the QTI 6-level precedence). The remaining
25
+ * existing rule names (the PNP/profile precedence ladder). The remaining
26
26
  * values capture the new contributors the M8 engine surfaces:
27
27
  * placement membership (step 1), provider veto (step 2), host policy
28
- * (steps 3 / 4), the QTI-conflict diagnostic (`qti-required-blocked`),
28
+ * (steps 3 / 4), the required-tool conflict diagnostic (`required-tool-blocked`),
29
29
  * custom sources (step 6), and the catch-all `system-default` for the
30
30
  * "not configured at any level" fallback.
31
31
  */
32
- export type ToolPolicyDecisionRule = "district-block" | "test-admin-override" | "item-restriction" | "item-requirement" | "district-requirement" | "pnp-support" | "pnp-prohibited" | "placement-membership" | "provider-disabled" | "host-allowlist" | "host-blocked" | "qti-required-blocked" | "custom-source" | "system-default";
32
+ export type ToolPolicyDecisionRule = "district-block" | "test-admin-override" | "item-restriction" | "item-requirement" | "district-requirement" | "pnp-support" | "pnp-prohibited" | "placement-membership" | "provider-disabled" | "host-allowlist" | "host-blocked" | "required-tool-blocked" | "custom-source" | "system-default";
33
33
  export type ToolPolicySourceType = "organization" | "assessment" | "section" | "item" | "student" | "system" | "host" | "custom";
34
34
  export interface ToolPolicyResolutionDecision {
35
35
  /** Monotonic step index across the entire decision log. */
36
36
  step: number;
37
37
  /**
38
- * Precedence level. QTI rules use `1`–`6` exactly as in today's
39
- * `PnpResolutionProvenance`. Non-QTI rules use `0` (host-side
40
- * gates that always fire before QTI) or `7+` (custom sources that
41
- * fire after QTI).
38
+ * Precedence level. PNP/profile rules use `1`–`6` exactly as in today's
39
+ * `PnpResolutionProvenance`. Non-profile rules use `0` (host-side
40
+ * gates that always fire before PNP/profile policy) or `7+` (custom sources that
41
+ * fire after PNP/profile policy).
42
42
  */
43
43
  precedence: number;
44
44
  rule: ToolPolicyDecisionRule;
@@ -140,7 +140,7 @@ export declare class ToolPolicyProvenanceBuilder {
140
140
  * highest-precedence non-skip decision per feature, but a tool's
141
141
  * *actual* visibility is only known after step 6 of the
142
142
  * composition pipeline — earlier decisions can be reversed by
143
- * later host gates, QTI gates, or custom sources. This method
143
+ * later host gates, PNP/profile gates, or custom sources. This method
144
144
  * walks every feature trail and rewrites `finalState` from the
145
145
  * final candidate set so callers can rely on
146
146
  * `provenance.features.get(toolId)?.finalState` as the canonical
@@ -1 +1 @@
1
- {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../../src/policy/core/provenance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../../src/policy/core/provenance.ts"],"names":[],"mappings":"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"}