@aura3d/scripting 1.5.2 → 2.0.1

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/README.md +5 -0
  2. package/dist/AnimationVisualNodes.d.ts +1 -1
  3. package/dist/Behavior.d.ts +1 -1
  4. package/dist/BehaviorHost.d.ts +1 -1
  5. package/dist/BehaviorRegistry.d.ts +1 -1
  6. package/dist/BehaviorSystem.d.ts +2 -2
  7. package/dist/HTN.d.ts +1 -1
  8. package/dist/ScriptContext.d.ts +1 -1
  9. package/dist/StateMachine.d.ts +1 -1
  10. package/dist/UtilityAI.d.ts +1 -1
  11. package/dist/VisualGraph.d.ts +2 -2
  12. package/dist/VisualGraphExecutor.d.ts +2 -2
  13. package/dist/VisualNodeCatalog.d.ts +1 -1
  14. package/dist/index.d.ts +37 -53
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +0 -8
  17. package/dist/index.js.map +1 -1
  18. package/package.json +1 -1
  19. package/dist/AdaptiveDifficultyFixtures.d.ts +0 -58
  20. package/dist/AdaptiveDifficultyFixtures.d.ts.map +0 -1
  21. package/dist/AdaptiveDifficultyFixtures.js +0 -228
  22. package/dist/AdaptiveDifficultyFixtures.js.map +0 -1
  23. package/dist/AnalyticsPrivacyFixtures.d.ts +0 -63
  24. package/dist/AnalyticsPrivacyFixtures.d.ts.map +0 -1
  25. package/dist/AnalyticsPrivacyFixtures.js +0 -120
  26. package/dist/AnalyticsPrivacyFixtures.js.map +0 -1
  27. package/dist/CartoonNodeCategories.d.ts +0 -3
  28. package/dist/CartoonNodeCategories.d.ts.map +0 -1
  29. package/dist/CartoonNodeCategories.js +0 -9
  30. package/dist/CartoonNodeCategories.js.map +0 -1
  31. package/dist/CartoonVisualNodes.d.ts +0 -3
  32. package/dist/CartoonVisualNodes.d.ts.map +0 -1
  33. package/dist/CartoonVisualNodes.js +0 -41
  34. package/dist/CartoonVisualNodes.js.map +0 -1
  35. package/dist/CloudServiceFixtures.d.ts +0 -81
  36. package/dist/CloudServiceFixtures.d.ts.map +0 -1
  37. package/dist/CloudServiceFixtures.js +0 -144
  38. package/dist/CloudServiceFixtures.js.map +0 -1
  39. package/dist/CulturalBehaviorFixtures.d.ts +0 -75
  40. package/dist/CulturalBehaviorFixtures.d.ts.map +0 -1
  41. package/dist/CulturalBehaviorFixtures.js +0 -180
  42. package/dist/CulturalBehaviorFixtures.js.map +0 -1
  43. package/dist/LearningAgentFixtures.d.ts +0 -60
  44. package/dist/LearningAgentFixtures.d.ts.map +0 -1
  45. package/dist/LearningAgentFixtures.js +0 -122
  46. package/dist/LearningAgentFixtures.js.map +0 -1
  47. package/dist/NetworkReplicationFixtures.d.ts +0 -82
  48. package/dist/NetworkReplicationFixtures.d.ts.map +0 -1
  49. package/dist/NetworkReplicationFixtures.js +0 -330
  50. package/dist/NetworkReplicationFixtures.js.map +0 -1
  51. package/dist/PlayerBehaviorTelemetryFixtures.d.ts +0 -74
  52. package/dist/PlayerBehaviorTelemetryFixtures.d.ts.map +0 -1
  53. package/dist/PlayerBehaviorTelemetryFixtures.js +0 -189
  54. package/dist/PlayerBehaviorTelemetryFixtures.js.map +0 -1
  55. package/dist/ProceduralContentAdaptationFixtures.d.ts +0 -52
  56. package/dist/ProceduralContentAdaptationFixtures.d.ts.map +0 -1
  57. package/dist/ProceduralContentAdaptationFixtures.js +0 -149
  58. package/dist/ProceduralContentAdaptationFixtures.js.map +0 -1
@@ -1,330 +0,0 @@
1
- const source = "origin-master-net-prediction-replication-adapted";
2
- const blockedClaims = [
3
- "real socket transport",
4
- "authoritative production multiplayer server",
5
- "matchmaking/lobby service parity",
6
- "rollback netcode parity",
7
- "voice chat transport parity",
8
- "anti-cheat security parity",
9
- "Unity Netcode parity",
10
- "Unreal replication parity"
11
- ];
12
- export function sampleNetworkReplicationFixture(options = {}) {
13
- const seed = integerOption(options.seed ?? 2026, "seed");
14
- const tickRate = positiveNumber(options.tickRate ?? 60, "tickRate");
15
- const latencyMs = nonNegativeNumber(options.latencyMs ?? 64, "latencyMs");
16
- const jitterMs = nonNegativeNumber(options.jitterMs ?? 11, "jitterMs");
17
- const interestRadius = positiveNumber(options.interestRadius ?? 18, "interestRadius");
18
- const clientPosition = vec3Option(options.clientPosition ?? [0, 0, 0], "clientPosition");
19
- const inputFrames = buildInputFrames(seed, tickRate, latencyMs, jitterMs);
20
- const initial = entityState({
21
- id: "net-player",
22
- ownerId: "player-a",
23
- replicationMode: "all-clients",
24
- position: [0, 0, 0],
25
- velocity: [0, 0, 0],
26
- health: 100,
27
- ammo: 30,
28
- animation: "idle",
29
- timestampMs: 1_000,
30
- lastProcessedInput: 99
31
- });
32
- const clientPredicted = inputFrames.reduce((state, input) => applyInput(state, input, 1 / tickRate), initial);
33
- const acknowledgedSequence = inputFrames[2]?.sequence ?? inputFrames[0]?.sequence ?? 100;
34
- const serverAuthoritative = entityState({
35
- ...clientPredicted,
36
- position: [
37
- round3(clientPredicted.position[0] - 0.18),
38
- round3(clientPredicted.position[1]),
39
- round3(clientPredicted.position[2] + 0.14)
40
- ],
41
- velocity: [round3(clientPredicted.velocity[0] * 0.88), 0, round3(clientPredicted.velocity[2] * 0.9)],
42
- health: 92,
43
- ammo: 29,
44
- timestampMs: clientPredicted.timestampMs - latencyMs,
45
- lastProcessedInput: acknowledgedSequence
46
- });
47
- const pending = inputFrames.filter((input) => input.sequence > acknowledgedSequence);
48
- const error = vectorDelta(serverAuthoritative.position, clientPredicted.position);
49
- const smoothCorrection = [round3(error[0] * 0.18), round3(error[1] * 0.18), round3(error[2] * 0.18)];
50
- const replayed = pending.reduce((state, input) => applyInput(state, input, 1 / tickRate), serverAuthoritative);
51
- const baseSnapshot = stateMap(initial);
52
- const currentSnapshot = stateMap(serverAuthoritative);
53
- const delta = createDeltaSummary(baseSnapshot, currentSnapshot);
54
- const interest = createInterestSummary(clientPosition, interestRadius);
55
- const interpolation = createInterpolationSummary();
56
- const prediction = {
57
- inputCount: inputFrames.length,
58
- predictedSequence: clientPredicted.lastProcessedInput,
59
- acknowledgedSequence,
60
- pendingInputs: pending.length,
61
- predictionError: round3(vectorLength(error)),
62
- smoothCorrection,
63
- replayedPosition: replayed.position,
64
- reconciliationAccepted: delta.reconstructedMatches && pending.length > 0 && vectorLength(error) > 0
65
- };
66
- const hash = stableHash([
67
- source,
68
- tickRate,
69
- latencyMs,
70
- jitterMs,
71
- prediction.predictionError,
72
- prediction.pendingInputs,
73
- delta.changedFields.join(","),
74
- interest.relevant.join(","),
75
- interpolation.interpolatedPosition.join(",")
76
- ].join("|"));
77
- return {
78
- source,
79
- claimBoundary: "This fixture adapts old local networking algorithms into deterministic runtime telemetry only; it does not open sockets, run a server, synchronize browsers, or claim production multiplayer.",
80
- blockedClaims,
81
- tickRate,
82
- latencyMs,
83
- jitterMs,
84
- inputFrames,
85
- clientPredicted,
86
- serverAuthoritative,
87
- prediction,
88
- delta,
89
- interest,
90
- interpolation,
91
- hash
92
- };
93
- }
94
- function buildInputFrames(seed, tickRate, latencyMs, jitterMs) {
95
- const start = 2_000 + (seed % 29) + Math.round(latencyMs * 0.25);
96
- const step = Math.round(1_000 / tickRate);
97
- return Array.from({ length: 6 }, (_, index) => ({
98
- sequence: 100 + index,
99
- timestampMs: start + index * step + Math.round(Math.sin(seed + index) * jitterMs),
100
- forward: index !== 4,
101
- right: index >= 1 && index <= 3,
102
- fire: index === 2
103
- }));
104
- }
105
- function applyInput(state, input, deltaSeconds) {
106
- const speed = input.fire ? 4.4 : 5.2;
107
- const vx = input.right ? speed : round3(state.velocity[0] * 0.55);
108
- const vz = input.forward ? -speed : round3(state.velocity[2] * 0.45);
109
- return entityState({
110
- ...state,
111
- position: [
112
- round3(state.position[0] + vx * deltaSeconds),
113
- round3(state.position[1]),
114
- round3(state.position[2] + vz * deltaSeconds)
115
- ],
116
- velocity: [round3(vx), 0, round3(vz)],
117
- ammo: input.fire ? Math.max(0, state.ammo - 1) : state.ammo,
118
- animation: input.forward || input.right ? "run" : "idle",
119
- timestampMs: input.timestampMs,
120
- lastProcessedInput: input.sequence
121
- });
122
- }
123
- function createDeltaSummary(base, current) {
124
- const changedFields = [];
125
- const removedFields = [];
126
- const reconstructed = new Map(base);
127
- for (const [key, value] of current) {
128
- if (!valuesEqual(base.get(key), value)) {
129
- changedFields.push(key);
130
- reconstructed.set(key, value);
131
- }
132
- }
133
- for (const key of base.keys()) {
134
- if (!current.has(key)) {
135
- removedFields.push(key);
136
- reconstructed.delete(key);
137
- }
138
- }
139
- const fullSnapshotBytes = estimateSnapshotBytes(current);
140
- const deltaBytes = 18 + changedFields.reduce((sum, key) => sum + key.length + estimateValueBytes(current.get(key)), 0) + removedFields.reduce((sum, key) => sum + key.length + 1, 0);
141
- return {
142
- changedFields: changedFields.sort(),
143
- removedFields: removedFields.sort(),
144
- fullSnapshotBytes,
145
- deltaBytes,
146
- compressionRatio: round3(deltaBytes / fullSnapshotBytes),
147
- reconstructedMatches: mapsEqual(reconstructed, current),
148
- bytesSaved: fullSnapshotBytes - deltaBytes
149
- };
150
- }
151
- function createInterestSummary(clientPosition, radius) {
152
- const previous = new Set(["net-player", "net-distant-prop"]);
153
- const entities = [
154
- entityState({ id: "net-player", ownerId: "player-a", replicationMode: "all-clients", position: [1, 0, -2], velocity: [0, 0, 0], health: 92, ammo: 29, animation: "run", timestampMs: 2_096, lastProcessedInput: 105 }),
155
- entityState({ id: "net-enemy-alpha", ownerId: "server", replicationMode: "all-clients", position: [8, 0, -6], velocity: [0, 0, 0], health: 60, ammo: 0, animation: "alert", timestampMs: 2_096, lastProcessedInput: -1 }),
156
- entityState({ id: "net-loot-health", ownerId: "server", replicationMode: "all-clients", position: [-5, 0, 3], velocity: [0, 0, 0], health: 1, ammo: 0, animation: "idle", timestampMs: 2_096, lastProcessedInput: -1 }),
157
- entityState({ id: "net-owner-secret", ownerId: "player-b", replicationMode: "owner-only", position: [2, 0, 1], velocity: [0, 0, 0], health: 100, ammo: 0, animation: "idle", timestampMs: 2_096, lastProcessedInput: -1 }),
158
- entityState({ id: "net-distant-prop", ownerId: "server", replicationMode: "all-clients", position: [48, 0, 2], velocity: [0, 0, 0], health: 1, ammo: 0, animation: "idle", timestampMs: 2_096, lastProcessedInput: -1 })
159
- ];
160
- const relevant = entities
161
- .filter((entity) => shouldReplicate(entity, "player-a") && vectorLength(vectorDelta(entity.position, clientPosition)) <= radius)
162
- .map((entity) => entity.id)
163
- .sort();
164
- const next = new Set(relevant);
165
- const added = relevant.filter((id) => !previous.has(id));
166
- const removed = [...previous].filter((id) => !next.has(id)).sort();
167
- const unchanged = relevant.filter((id) => previous.has(id));
168
- const culled = entities.map((entity) => entity.id).filter((id) => !next.has(id)).sort();
169
- const gridCells = new Set(entities.map((entity) => `${Math.floor(entity.position[0] / 16)}:${Math.floor(entity.position[2] / 16)}`));
170
- return {
171
- playerId: "player-a",
172
- radius,
173
- added,
174
- removed,
175
- unchanged,
176
- relevant,
177
- culled,
178
- gridCellCount: gridCells.size
179
- };
180
- }
181
- function createInterpolationSummary() {
182
- const before = entityState({
183
- id: "net-enemy-alpha",
184
- ownerId: "server",
185
- replicationMode: "all-clients",
186
- position: [4, 0, -3],
187
- velocity: [1.6, 0, -0.8],
188
- health: 60,
189
- ammo: 0,
190
- animation: "run",
191
- timestampMs: 1_000,
192
- lastProcessedInput: -1
193
- });
194
- const after = entityState({
195
- id: before.id,
196
- ownerId: before.ownerId,
197
- replicationMode: before.replicationMode,
198
- position: [5, 0, -3.5],
199
- velocity: [before.velocity[0], before.velocity[1], before.velocity[2]],
200
- health: before.health,
201
- ammo: before.ammo,
202
- animation: before.animation,
203
- timestampMs: 1_050,
204
- lastProcessedInput: before.lastProcessedInput
205
- });
206
- const sampleTimestampMs = 1_025;
207
- const t = (sampleTimestampMs - before.timestampMs) / (after.timestampMs - before.timestampMs);
208
- const interpolatedPosition = [
209
- round3(before.position[0] + (after.position[0] - before.position[0]) * t),
210
- round3(before.position[1] + (after.position[1] - before.position[1]) * t),
211
- round3(before.position[2] + (after.position[2] - before.position[2]) * t)
212
- ];
213
- const extrapolatedPosition = [
214
- round3(after.position[0] + after.velocity[0] * 0.1),
215
- round3(after.position[1] + after.velocity[1] * 0.1),
216
- round3(after.position[2] + after.velocity[2] * 0.1)
217
- ];
218
- return {
219
- sampleTimestampMs,
220
- beforeTimestampMs: before.timestampMs,
221
- afterTimestampMs: after.timestampMs,
222
- interpolatedPosition,
223
- extrapolatedPosition
224
- };
225
- }
226
- function stateMap(state) {
227
- return new Map([
228
- ["x", state.position[0]],
229
- ["y", state.position[1]],
230
- ["z", state.position[2]],
231
- ["vx", state.velocity[0]],
232
- ["vz", state.velocity[2]],
233
- ["health", state.health],
234
- ["ammo", state.ammo],
235
- ["animation", state.animation],
236
- ["lastProcessedInput", state.lastProcessedInput]
237
- ]);
238
- }
239
- function entityState(state) {
240
- return {
241
- id: state.id,
242
- ownerId: state.ownerId,
243
- replicationMode: state.replicationMode,
244
- position: [round3(state.position[0]), round3(state.position[1]), round3(state.position[2])],
245
- velocity: [round3(state.velocity[0]), round3(state.velocity[1]), round3(state.velocity[2])],
246
- health: Math.max(0, Math.round(state.health)),
247
- ammo: Math.max(0, Math.round(state.ammo)),
248
- animation: state.animation,
249
- timestampMs: Math.round(state.timestampMs),
250
- lastProcessedInput: Math.round(state.lastProcessedInput)
251
- };
252
- }
253
- function shouldReplicate(entity, playerId) {
254
- if (entity.replicationMode === "none")
255
- return false;
256
- if (entity.replicationMode === "owner-only")
257
- return entity.ownerId === playerId;
258
- if (entity.replicationMode === "all-except-owner")
259
- return entity.ownerId !== playerId;
260
- return true;
261
- }
262
- function vectorDelta(left, right) {
263
- return [left[0] - right[0], left[1] - right[1], left[2] - right[2]];
264
- }
265
- function vectorLength(value) {
266
- return Math.hypot(value[0], value[1], value[2]);
267
- }
268
- function valuesEqual(left, right) {
269
- if (typeof left === "number" && typeof right === "number")
270
- return Math.abs(left - right) < 0.0001;
271
- return left === right;
272
- }
273
- function mapsEqual(left, right) {
274
- if (left.size !== right.size)
275
- return false;
276
- for (const [key, value] of left) {
277
- if (!valuesEqual(value, right.get(key)))
278
- return false;
279
- }
280
- return true;
281
- }
282
- function estimateSnapshotBytes(snapshot) {
283
- let bytes = 16;
284
- for (const [key, value] of snapshot) {
285
- bytes += key.length + estimateValueBytes(value);
286
- }
287
- return bytes;
288
- }
289
- function estimateValueBytes(value) {
290
- if (typeof value === "number")
291
- return 9;
292
- if (typeof value === "string")
293
- return 3 + value.length;
294
- if (typeof value === "boolean")
295
- return 2;
296
- return 1;
297
- }
298
- function vec3Option(value, name) {
299
- if (!Array.isArray(value) || value.length !== 3 || value.some((entry) => typeof entry !== "number" || !Number.isFinite(entry))) {
300
- throw new RangeError(`${name} must be a finite vec3.`);
301
- }
302
- return [value[0], value[1], value[2]];
303
- }
304
- function integerOption(value, name) {
305
- if (!Number.isInteger(value))
306
- throw new RangeError(`${name} must be an integer.`);
307
- return value;
308
- }
309
- function positiveNumber(value, name) {
310
- if (!Number.isFinite(value) || value <= 0)
311
- throw new RangeError(`${name} must be positive.`);
312
- return value;
313
- }
314
- function nonNegativeNumber(value, name) {
315
- if (!Number.isFinite(value) || value < 0)
316
- throw new RangeError(`${name} must be non-negative.`);
317
- return value;
318
- }
319
- function round3(value) {
320
- return Math.round(value * 1_000) / 1_000;
321
- }
322
- function stableHash(value) {
323
- let hash = 0x811c9dc5;
324
- for (let index = 0; index < value.length; index += 1) {
325
- hash ^= value.charCodeAt(index);
326
- hash = Math.imul(hash, 0x01000193);
327
- }
328
- return (hash >>> 0).toString(16).padStart(8, "0");
329
- }
330
- //# sourceMappingURL=NetworkReplicationFixtures.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NetworkReplicationFixtures.js","sourceRoot":"","sources":["../../../../packages/scripting/src/NetworkReplicationFixtures.ts"],"names":[],"mappings":"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"}
@@ -1,74 +0,0 @@
1
- export type PlayerSkillLevel = "beginner" | "novice" | "intermediate" | "advanced" | "expert";
2
- export type PlayerPlaystyle = "aggressive" | "defensive" | "balanced" | "stealth" | "exploration" | "speedrun" | "completionist";
3
- export type PlayerEngagementLevel = "casual" | "regular" | "dedicated" | "hardcore";
4
- export type PlayerEventCategory = "combat" | "movement" | "interaction" | "progression" | "economy" | "social" | "custom";
5
- export type PlayerEventSeverity = "low" | "medium" | "high" | "critical";
6
- export interface PlayerBehaviorTelemetryOptions {
7
- readonly seed?: number;
8
- readonly playerId?: string;
9
- readonly sessionSeconds?: number;
10
- readonly combatEvents?: number;
11
- readonly movementEvents?: number;
12
- readonly interactionEvents?: number;
13
- readonly progressionEvents?: number;
14
- readonly successEvents?: number;
15
- }
16
- export interface PlayerSkillAssessmentTelemetry {
17
- readonly area: string;
18
- readonly level: number;
19
- readonly confidence: number;
20
- readonly sampleSize: number;
21
- }
22
- export interface PlayerBehaviorPatternTelemetry {
23
- readonly name: string;
24
- readonly frequency: number;
25
- readonly confidence: number;
26
- }
27
- export interface PlayerBehaviorTelemetryFixture {
28
- readonly source: "origin-master-player-profile-event-analysis-adapted";
29
- readonly playerId: string;
30
- readonly profile: {
31
- readonly skillLevel: PlayerSkillLevel;
32
- readonly playstyle: PlayerPlaystyle;
33
- readonly engagement: PlayerEngagementLevel;
34
- readonly skills: readonly PlayerSkillAssessmentTelemetry[];
35
- readonly preferences: readonly {
36
- readonly category: string;
37
- readonly value: string;
38
- readonly strength: number;
39
- }[];
40
- readonly patterns: readonly PlayerBehaviorPatternTelemetry[];
41
- readonly totalPlaytimeMs: number;
42
- readonly sessionCount: number;
43
- };
44
- readonly events: {
45
- readonly total: number;
46
- readonly byCategory: Record<PlayerEventCategory, number>;
47
- readonly bySeverity: Record<PlayerEventSeverity, number>;
48
- readonly successRate: number;
49
- readonly avgDurationMs: number;
50
- readonly eventsPerMinute: number;
51
- };
52
- readonly sessionAnalysis: {
53
- readonly durationMs: number;
54
- readonly dominantPlaystyle: PlayerPlaystyle;
55
- readonly skillEstimate: PlayerSkillLevel;
56
- readonly insights: readonly {
57
- readonly type: string;
58
- readonly confidence: number;
59
- readonly evidence: readonly string[];
60
- readonly recommendations: readonly string[];
61
- }[];
62
- };
63
- readonly productionReadiness: {
64
- readonly playerProfileTelemetry: true;
65
- readonly eventTrackingTelemetry: true;
66
- readonly behaviorPatternTelemetry: true;
67
- readonly adaptiveSystemInputTelemetry: true;
68
- };
69
- readonly blockedClaims: readonly string[];
70
- readonly claimBoundary: string;
71
- readonly hash: string;
72
- }
73
- export declare function samplePlayerBehaviorTelemetryFixture(options?: PlayerBehaviorTelemetryOptions): PlayerBehaviorTelemetryFixture;
74
- //# sourceMappingURL=PlayerBehaviorTelemetryFixtures.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PlayerBehaviorTelemetryFixtures.d.ts","sourceRoot":"","sources":["../../../../packages/scripting/src/PlayerBehaviorTelemetryFixtures.ts"],"names":[],"mappings":"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"}
@@ -1,189 +0,0 @@
1
- export function samplePlayerBehaviorTelemetryFixture(options = {}) {
2
- const seed = normalizeSeed(options.seed ?? 0xb34a);
3
- const playerId = normalizePlayerId(options.playerId ?? "external-parity-runtime-player");
4
- const sessionSeconds = positive(options.sessionSeconds ?? 180, "sessionSeconds");
5
- const combat = count(options.combatEvents ?? 12, "combatEvents");
6
- const movement = count(options.movementEvents ?? 18, "movementEvents");
7
- const interaction = count(options.interactionEvents ?? 7, "interactionEvents");
8
- const progression = count(options.progressionEvents ?? 5, "progressionEvents");
9
- const success = count(options.successEvents ?? 24, "successEvents");
10
- const total = combat + movement + interaction + progression;
11
- const successRate = Number((success / Math.max(1, total)).toFixed(4));
12
- const eventsPerMinute = Number((total / Math.max(1, sessionSeconds / 60)).toFixed(3));
13
- const combatRatio = combat / Math.max(1, total);
14
- const movementRatio = movement / Math.max(1, total);
15
- const interactionRatio = interaction / Math.max(1, total);
16
- const progressionRatio = progression / Math.max(1, total);
17
- const playstyle = detectPlaystyle({ combatRatio, movementRatio, interactionRatio, progressionRatio, successRate, eventsPerMinute });
18
- const skillScore = successRate * 0.4 + Math.min(eventsPerMinute / 10, 1) * 0.3 + Math.min(4 / Math.max(1, total), 1) * 0.3;
19
- const skillLevel = skillForScore(skillScore);
20
- const engagement = sessionSeconds > 900 ? "hardcore" : sessionSeconds > 420 ? "dedicated" : sessionSeconds > 180 ? "regular" : "casual";
21
- const skills = [
22
- skill("combat", clamp01(successRate * 0.7 + combatRatio * 0.3), combat),
23
- skill("navigation", clamp01(0.45 + movementRatio * 0.65), movement),
24
- skill("objective-routing", clamp01(0.36 + progressionRatio * 1.1), progression),
25
- skill("interaction", clamp01(0.42 + interactionRatio * 1.15), interaction)
26
- ];
27
- const patterns = [
28
- { name: `${playstyle}-loop`, frequency: Number(Math.max(1, eventsPerMinute).toFixed(3)), confidence: Number((0.62 + successRate * 0.24).toFixed(3)) },
29
- { name: "objective-retry", frequency: Number((Math.max(0, total - success) / Math.max(1, sessionSeconds / 60)).toFixed(3)), confidence: Number((0.5 + (1 - successRate) * 0.32).toFixed(3)) }
30
- ];
31
- const insights = [
32
- {
33
- type: "playstyle",
34
- confidence: patterns[0]?.confidence ?? 0.6,
35
- evidence: [`combat=${combat}`, `movement=${movement}`, `progression=${progression}`],
36
- recommendations: [playstyle === "aggressive" ? "offer-combat-optional-objective" : "offer-navigation-shortcut"]
37
- },
38
- {
39
- type: "skill-estimate",
40
- confidence: Number((0.58 + skillScore * 0.3).toFixed(3)),
41
- evidence: [`successRate=${successRate}`, `eventsPerMinute=${eventsPerMinute}`],
42
- recommendations: [skillScore > 0.6 ? "raise-optional-challenge" : "keep-assistive-checkpoints"]
43
- }
44
- ];
45
- const core = {
46
- playerId,
47
- skillLevel,
48
- playstyle,
49
- engagement,
50
- successRate,
51
- eventsPerMinute,
52
- skills,
53
- patterns,
54
- insights
55
- };
56
- return {
57
- source: "origin-master-player-profile-event-analysis-adapted",
58
- playerId,
59
- profile: {
60
- skillLevel,
61
- playstyle,
62
- engagement,
63
- skills,
64
- preferences: [
65
- { category: "difficulty", value: skillScore > 0.6 ? "advanced" : "adaptive", strength: Number((0.62 + seededUnit(seed) * 0.22).toFixed(3)) },
66
- { category: "route", value: movementRatio > combatRatio ? "exploration" : "direct", strength: Number((0.56 + seededUnit(seed ^ 0x2735) * 0.2).toFixed(3)) }
67
- ],
68
- patterns,
69
- totalPlaytimeMs: Math.round(sessionSeconds * 1000),
70
- sessionCount: 3 + Math.round(seededUnit(seed ^ 0x9e37) * 4)
71
- },
72
- events: {
73
- total,
74
- byCategory: {
75
- combat,
76
- movement,
77
- interaction,
78
- progression,
79
- economy: 0,
80
- social: 0,
81
- custom: 0
82
- },
83
- bySeverity: {
84
- low: movement,
85
- medium: interaction + progression,
86
- high: combat,
87
- critical: 0
88
- },
89
- successRate,
90
- avgDurationMs: Number((180 + seededUnit(seed ^ 0xf00d) * 140).toFixed(2)),
91
- eventsPerMinute
92
- },
93
- sessionAnalysis: {
94
- durationMs: Math.round(sessionSeconds * 1000),
95
- dominantPlaystyle: playstyle,
96
- skillEstimate: skillLevel,
97
- insights
98
- },
99
- productionReadiness: {
100
- playerProfileTelemetry: true,
101
- eventTrackingTelemetry: true,
102
- behaviorPatternTelemetry: true,
103
- adaptiveSystemInputTelemetry: true
104
- },
105
- blockedClaims: [
106
- "production player modeling certification",
107
- "privacy/compliance analytics certification",
108
- "cloud telemetry pipeline parity",
109
- "Unity Analytics/Remote Config parity",
110
- "Unreal Insights gameplay telemetry parity"
111
- ],
112
- claimBoundary: "This fixture ports old smart PlayerProfile/EventTracker/BehaviorAnalyzer concepts into deterministic local runtime telemetry. It does not claim production player modeling, privacy/compliance analytics certification, cloud telemetry pipelines, Unity Analytics, or Unreal Insights parity.",
113
- hash: stableHash(JSON.stringify(core))
114
- };
115
- }
116
- function detectPlaystyle(stats) {
117
- if (stats.combatRatio > 0.45 && stats.eventsPerMinute > 8)
118
- return "aggressive";
119
- if (stats.movementRatio > 0.45 && stats.combatRatio < 0.35)
120
- return "exploration";
121
- if (stats.successRate > 0.7 && stats.combatRatio < 0.4)
122
- return "stealth";
123
- if (stats.eventsPerMinute > 10 && stats.progressionRatio > 0.2)
124
- return "speedrun";
125
- if (stats.interactionRatio > 0.35)
126
- return "completionist";
127
- if (stats.combatRatio > 0.3 && stats.successRate > 0.6)
128
- return "defensive";
129
- return "balanced";
130
- }
131
- function skillForScore(score) {
132
- if (score < 0.2)
133
- return "beginner";
134
- if (score < 0.4)
135
- return "novice";
136
- if (score < 0.6)
137
- return "intermediate";
138
- if (score < 0.8)
139
- return "advanced";
140
- return "expert";
141
- }
142
- function skill(area, level, sampleSize) {
143
- return {
144
- area,
145
- level: Number(level.toFixed(4)),
146
- confidence: Number(Math.min(1, Math.max(0.1, sampleSize / 40)).toFixed(3)),
147
- sampleSize
148
- };
149
- }
150
- function count(value, name) {
151
- if (!Number.isFinite(value) || value < 0)
152
- throw new Error(`${name} must be a non-negative finite number.`);
153
- return Math.trunc(value);
154
- }
155
- function positive(value, name) {
156
- if (!Number.isFinite(value) || value <= 0)
157
- throw new Error(`${name} must be a positive finite number.`);
158
- return value;
159
- }
160
- function normalizeSeed(seed) {
161
- if (!Number.isInteger(seed) || seed < 0)
162
- throw new Error("seed must be a non-negative integer.");
163
- return seed >>> 0;
164
- }
165
- function normalizePlayerId(playerId) {
166
- const normalized = playerId.trim();
167
- if (normalized.length === 0)
168
- throw new Error("playerId is required.");
169
- return normalized;
170
- }
171
- function clamp01(value) {
172
- return Math.max(0, Math.min(1, value));
173
- }
174
- function seededUnit(seed) {
175
- let value = seed >>> 0;
176
- value ^= value << 13;
177
- value ^= value >>> 17;
178
- value ^= value << 5;
179
- return (value >>> 0) / 0xffffffff;
180
- }
181
- function stableHash(value) {
182
- let hash = 2166136261;
183
- for (let index = 0; index < value.length; index += 1) {
184
- hash ^= value.charCodeAt(index);
185
- hash = Math.imul(hash, 16777619);
186
- }
187
- return (hash >>> 0).toString(16).padStart(8, "0");
188
- }
189
- //# sourceMappingURL=PlayerBehaviorTelemetryFixtures.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PlayerBehaviorTelemetryFixtures.js","sourceRoot":"","sources":["../../../../packages/scripting/src/PlayerBehaviorTelemetryFixtures.ts"],"names":[],"mappings":"AAyEA,MAAM,UAAU,oCAAoC,CAAC,UAA0C,EAAE;IAC/F,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,QAAQ,IAAI,gCAAgC,CAAC,CAAC;IACzF,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,IAAI,GAAG,EAAE,gBAAgB,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACvE,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,IAAI,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAC/E,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,IAAI,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,EAAE,eAAe,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;IAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC;IACpI,MAAM,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;IAC3H,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IACxI,MAAM,MAAM,GAA8C;QACxD,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,WAAW,GAAG,GAAG,GAAG,WAAW,GAAG,GAAG,CAAC,EAAE,MAAM,CAAC;QACvE,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,GAAG,aAAa,GAAG,IAAI,CAAC,EAAE,QAAQ,CAAC;QACnE,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC,IAAI,GAAG,gBAAgB,GAAG,GAAG,CAAC,EAAE,WAAW,CAAC;QAC/E,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,GAAG,gBAAgB,GAAG,IAAI,CAAC,EAAE,WAAW,CAAC;KAC3E,CAAC;IACF,MAAM,QAAQ,GAA8C;QAC1D,EAAE,IAAI,EAAE,GAAG,SAAS,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,GAAG,WAAW,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;QACrJ,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;KAC9L,CAAC;IACF,MAAM,QAAQ,GAAG;QACf;YACE,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,GAAG;YAC1C,QAAQ,EAAE,CAAC,UAAU,MAAM,EAAE,EAAE,YAAY,QAAQ,EAAE,EAAE,eAAe,WAAW,EAAE,CAAC;YACpF,eAAe,EAAE,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,2BAA2B,CAAC;SAChH;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,GAAG,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACxD,QAAQ,EAAE,CAAC,eAAe,WAAW,EAAE,EAAE,mBAAmB,eAAe,EAAE,CAAC;YAC9E,eAAe,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,4BAA4B,CAAC;SAChG;KACO,CAAC;IACX,MAAM,IAAI,GAAG;QACX,QAAQ;QACR,UAAU;QACV,SAAS;QACT,UAAU;QACV,WAAW;QACX,eAAe;QACf,MAAM;QACN,QAAQ;QACR,QAAQ;KACT,CAAC;IACF,OAAO;QACL,MAAM,EAAE,qDAAqD;QAC7D,QAAQ;QACR,OAAO,EAAE;YACP,UAAU;YACV,SAAS;YACT,UAAU;YACV,MAAM;YACN,WAAW,EAAE;gBACX,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC5I,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;aAC5J;YACD,QAAQ;YACR,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YAClD,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SAC5D;QACD,MAAM,EAAE;YACN,KAAK;YACL,UAAU,EAAE;gBACV,MAAM;gBACN,QAAQ;gBACR,WAAW;gBACX,WAAW;gBACX,OAAO,EAAE,CAAC;gBACV,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC;aACV;YACD,UAAU,EAAE;gBACV,GAAG,EAAE,QAAQ;gBACb,MAAM,EAAE,WAAW,GAAG,WAAW;gBACjC,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,CAAC;aACZ;YACD,WAAW;YACX,aAAa,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACzE,eAAe;SAChB;QACD,eAAe,EAAE;YACf,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7C,iBAAiB,EAAE,SAAS;YAC5B,aAAa,EAAE,UAAU;YACzB,QAAQ;SACT;QACD,mBAAmB,EAAE;YACnB,sBAAsB,EAAE,IAAI;YAC5B,sBAAsB,EAAE,IAAI;YAC5B,wBAAwB,EAAE,IAAI;YAC9B,4BAA4B,EAAE,IAAI;SACnC;QACD,aAAa,EAAE;YACb,0CAA0C;YAC1C,4CAA4C;YAC5C,iCAAiC;YACjC,sCAAsC;YACtC,2CAA2C;SAC5C;QACD,aAAa,EAAE,gSAAgS;QAC/S,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAA6M;IACpO,IAAI,KAAK,CAAC,WAAW,GAAG,IAAI,IAAI,KAAK,CAAC,eAAe,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC;IAC/E,IAAI,KAAK,CAAC,aAAa,GAAG,IAAI,IAAI,KAAK,CAAC,WAAW,GAAG,IAAI;QAAE,OAAO,aAAa,CAAC;IACjF,IAAI,KAAK,CAAC,WAAW,GAAG,GAAG,IAAI,KAAK,CAAC,WAAW,GAAG,GAAG;QAAE,OAAO,SAAS,CAAC;IACzE,IAAI,KAAK,CAAC,eAAe,GAAG,EAAE,IAAI,KAAK,CAAC,gBAAgB,GAAG,GAAG;QAAE,OAAO,UAAU,CAAC;IAClF,IAAI,KAAK,CAAC,gBAAgB,GAAG,IAAI;QAAE,OAAO,eAAe,CAAC;IAC1D,IAAI,KAAK,CAAC,WAAW,GAAG,GAAG,IAAI,KAAK,CAAC,WAAW,GAAG,GAAG;QAAE,OAAO,WAAW,CAAC;IAC3E,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,KAAK,GAAG,GAAG;QAAE,OAAO,UAAU,CAAC;IACnC,IAAI,KAAK,GAAG,GAAG;QAAE,OAAO,QAAQ,CAAC;IACjC,IAAI,KAAK,GAAG,GAAG;QAAE,OAAO,cAAc,CAAC;IACvC,IAAI,KAAK,GAAG,GAAG;QAAE,OAAO,UAAU,CAAC;IACnC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,KAAK,CAAC,IAAY,EAAE,KAAa,EAAE,UAAkB;IAC5D,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1E,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,IAAY;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,wCAAwC,CAAC,CAAC;IAC3G,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,IAAY;IAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,oCAAoC,CAAC,CAAC;IACxG,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACjG,OAAO,IAAI,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACtE,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC;IACvB,KAAK,IAAI,KAAK,IAAI,EAAE,CAAC;IACrB,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC;IACtB,KAAK,IAAI,KAAK,IAAI,CAAC,CAAC;IACpB,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,UAAU,CAAC;AACpC,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACpD,CAAC"}