@aura3d/scripting 1.0.6

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 (139) hide show
  1. package/README.md +16 -0
  2. package/dist/AdaptiveDifficultyFixtures.d.ts +58 -0
  3. package/dist/AdaptiveDifficultyFixtures.d.ts.map +1 -0
  4. package/dist/AdaptiveDifficultyFixtures.js +228 -0
  5. package/dist/AdaptiveDifficultyFixtures.js.map +1 -0
  6. package/dist/AnalyticsPrivacyFixtures.d.ts +63 -0
  7. package/dist/AnalyticsPrivacyFixtures.d.ts.map +1 -0
  8. package/dist/AnalyticsPrivacyFixtures.js +120 -0
  9. package/dist/AnalyticsPrivacyFixtures.js.map +1 -0
  10. package/dist/Behavior.d.ts +10 -0
  11. package/dist/Behavior.d.ts.map +1 -0
  12. package/dist/Behavior.js +2 -0
  13. package/dist/Behavior.js.map +1 -0
  14. package/dist/BehaviorHost.d.ts +17 -0
  15. package/dist/BehaviorHost.d.ts.map +1 -0
  16. package/dist/BehaviorHost.js +39 -0
  17. package/dist/BehaviorHost.js.map +1 -0
  18. package/dist/BehaviorRegistry.d.ts +8 -0
  19. package/dist/BehaviorRegistry.d.ts.map +1 -0
  20. package/dist/BehaviorRegistry.js +17 -0
  21. package/dist/BehaviorRegistry.js.map +1 -0
  22. package/dist/BehaviorSystem.d.ts +26 -0
  23. package/dist/BehaviorSystem.d.ts.map +1 -0
  24. package/dist/BehaviorSystem.js +76 -0
  25. package/dist/BehaviorSystem.js.map +1 -0
  26. package/dist/BehaviorTree.d.ts +75 -0
  27. package/dist/BehaviorTree.d.ts.map +1 -0
  28. package/dist/BehaviorTree.js +204 -0
  29. package/dist/BehaviorTree.js.map +1 -0
  30. package/dist/CloudServiceFixtures.d.ts +81 -0
  31. package/dist/CloudServiceFixtures.d.ts.map +1 -0
  32. package/dist/CloudServiceFixtures.js +144 -0
  33. package/dist/CloudServiceFixtures.js.map +1 -0
  34. package/dist/CulturalBehaviorFixtures.d.ts +75 -0
  35. package/dist/CulturalBehaviorFixtures.d.ts.map +1 -0
  36. package/dist/CulturalBehaviorFixtures.js +180 -0
  37. package/dist/CulturalBehaviorFixtures.js.map +1 -0
  38. package/dist/DecisionTree.d.ts +42 -0
  39. package/dist/DecisionTree.d.ts.map +1 -0
  40. package/dist/DecisionTree.js +125 -0
  41. package/dist/DecisionTree.js.map +1 -0
  42. package/dist/GOAP.d.ts +51 -0
  43. package/dist/GOAP.d.ts.map +1 -0
  44. package/dist/GOAP.js +105 -0
  45. package/dist/GOAP.js.map +1 -0
  46. package/dist/HTN.d.ts +58 -0
  47. package/dist/HTN.d.ts.map +1 -0
  48. package/dist/HTN.js +115 -0
  49. package/dist/HTN.js.map +1 -0
  50. package/dist/LearningAgentFixtures.d.ts +60 -0
  51. package/dist/LearningAgentFixtures.d.ts.map +1 -0
  52. package/dist/LearningAgentFixtures.js +122 -0
  53. package/dist/LearningAgentFixtures.js.map +1 -0
  54. package/dist/NetworkReplicationFixtures.d.ts +82 -0
  55. package/dist/NetworkReplicationFixtures.d.ts.map +1 -0
  56. package/dist/NetworkReplicationFixtures.js +330 -0
  57. package/dist/NetworkReplicationFixtures.js.map +1 -0
  58. package/dist/Perception.d.ts +58 -0
  59. package/dist/Perception.d.ts.map +1 -0
  60. package/dist/Perception.js +111 -0
  61. package/dist/Perception.js.map +1 -0
  62. package/dist/PlayerBehaviorTelemetryFixtures.d.ts +74 -0
  63. package/dist/PlayerBehaviorTelemetryFixtures.d.ts.map +1 -0
  64. package/dist/PlayerBehaviorTelemetryFixtures.js +189 -0
  65. package/dist/PlayerBehaviorTelemetryFixtures.js.map +1 -0
  66. package/dist/ProceduralContentAdaptationFixtures.d.ts +52 -0
  67. package/dist/ProceduralContentAdaptationFixtures.d.ts.map +1 -0
  68. package/dist/ProceduralContentAdaptationFixtures.js +149 -0
  69. package/dist/ProceduralContentAdaptationFixtures.js.map +1 -0
  70. package/dist/ScriptContext.d.ts +18 -0
  71. package/dist/ScriptContext.d.ts.map +1 -0
  72. package/dist/ScriptContext.js +21 -0
  73. package/dist/ScriptContext.js.map +1 -0
  74. package/dist/StateMachine.d.ts +52 -0
  75. package/dist/StateMachine.d.ts.map +1 -0
  76. package/dist/StateMachine.js +117 -0
  77. package/dist/StateMachine.js.map +1 -0
  78. package/dist/UtilityAI.d.ts +55 -0
  79. package/dist/UtilityAI.d.ts.map +1 -0
  80. package/dist/UtilityAI.js +113 -0
  81. package/dist/UtilityAI.js.map +1 -0
  82. package/dist/VisualGraph.d.ts +20 -0
  83. package/dist/VisualGraph.d.ts.map +1 -0
  84. package/dist/VisualGraph.js +191 -0
  85. package/dist/VisualGraph.js.map +1 -0
  86. package/dist/VisualGraphContext.d.ts +123 -0
  87. package/dist/VisualGraphContext.d.ts.map +1 -0
  88. package/dist/VisualGraphContext.js +2 -0
  89. package/dist/VisualGraphContext.js.map +1 -0
  90. package/dist/VisualGraphExecutor.d.ts +16 -0
  91. package/dist/VisualGraphExecutor.d.ts.map +1 -0
  92. package/dist/VisualGraphExecutor.js +571 -0
  93. package/dist/VisualGraphExecutor.js.map +1 -0
  94. package/dist/VisualNode.d.ts +17 -0
  95. package/dist/VisualNode.d.ts.map +1 -0
  96. package/dist/VisualNode.js +24 -0
  97. package/dist/VisualNode.js.map +1 -0
  98. package/dist/VisualNodeCatalog.d.ts +14 -0
  99. package/dist/VisualNodeCatalog.d.ts.map +1 -0
  100. package/dist/VisualNodeCatalog.js +142 -0
  101. package/dist/VisualNodeCatalog.js.map +1 -0
  102. package/dist/WeaponSystem.d.ts +228 -0
  103. package/dist/WeaponSystem.d.ts.map +1 -0
  104. package/dist/WeaponSystem.js +530 -0
  105. package/dist/WeaponSystem.js.map +1 -0
  106. package/dist/index.d.ts +51 -0
  107. package/dist/index.d.ts.map +1 -0
  108. package/dist/index.js +25 -0
  109. package/dist/index.js.map +1 -0
  110. package/package.json +13 -0
  111. package/src/AdaptiveDifficultyFixtures.ts +324 -0
  112. package/src/AnalyticsPrivacyFixtures.ts +182 -0
  113. package/src/Behavior.ts +11 -0
  114. package/src/BehaviorHost.ts +51 -0
  115. package/src/BehaviorRegistry.ts +22 -0
  116. package/src/BehaviorSystem.ts +103 -0
  117. package/src/BehaviorTree.ts +234 -0
  118. package/src/CloudServiceFixtures.ts +225 -0
  119. package/src/CulturalBehaviorFixtures.ts +262 -0
  120. package/src/DecisionTree.ts +162 -0
  121. package/src/GOAP.ts +150 -0
  122. package/src/HTN.ts +178 -0
  123. package/src/LearningAgentFixtures.ts +184 -0
  124. package/src/NetworkReplicationFixtures.ts +440 -0
  125. package/src/Perception.ts +163 -0
  126. package/src/PlayerBehaviorTelemetryFixtures.ts +257 -0
  127. package/src/ProceduralContentAdaptationFixtures.ts +205 -0
  128. package/src/ScriptContext.ts +34 -0
  129. package/src/StateMachine.ts +138 -0
  130. package/src/UtilityAI.ts +158 -0
  131. package/src/VisualGraph.ts +236 -0
  132. package/src/VisualGraphContext.ts +138 -0
  133. package/src/VisualGraphExecutor.ts +663 -0
  134. package/src/VisualNode.ts +44 -0
  135. package/src/VisualNodeCatalog.ts +195 -0
  136. package/src/WeaponSystem.ts +793 -0
  137. package/src/index.ts +175 -0
  138. package/tests/scripting.test.ts +229 -0
  139. package/tsconfig.json +7 -0
@@ -0,0 +1,330 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkReplicationFixtures.js","sourceRoot":"","sources":["../../../../packages/scripting/src/NetworkReplicationFixtures.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ export type PerceptionPoint = readonly [number, number];
2
+ export interface PerceptionTarget {
3
+ readonly id: string;
4
+ readonly position: PerceptionPoint;
5
+ readonly priority?: number;
6
+ }
7
+ export interface PerceptionSensorOptions {
8
+ readonly position: PerceptionPoint;
9
+ readonly forward?: PerceptionPoint;
10
+ readonly range?: number;
11
+ readonly fovRadians?: number;
12
+ readonly peripheralRadians?: number;
13
+ readonly minConfidence?: number;
14
+ readonly memoryDecayPerSecond?: number;
15
+ readonly forgetBelowConfidence?: number;
16
+ }
17
+ export interface PerceptionHit {
18
+ readonly id: string;
19
+ readonly position: PerceptionPoint;
20
+ readonly distance: number;
21
+ readonly angleRadians: number;
22
+ readonly confidence: number;
23
+ readonly peripheral: boolean;
24
+ readonly justEntered: boolean;
25
+ }
26
+ export interface PerceptionMemory {
27
+ readonly id: string;
28
+ readonly lastKnownPosition: PerceptionPoint;
29
+ readonly confidence: number;
30
+ readonly lastSeenSeconds: number;
31
+ readonly seenCount: number;
32
+ }
33
+ export interface PerceptionSnapshot {
34
+ readonly visible: readonly PerceptionHit[];
35
+ readonly memories: readonly PerceptionMemory[];
36
+ readonly closestVisible?: PerceptionHit;
37
+ readonly strongestMemory?: PerceptionMemory;
38
+ readonly enteredIds: readonly string[];
39
+ readonly forgottenIds: readonly string[];
40
+ }
41
+ export declare class PerceptionSensor {
42
+ private position;
43
+ private forward;
44
+ private readonly range;
45
+ private readonly fovRadians;
46
+ private readonly peripheralRadians;
47
+ private readonly minConfidence;
48
+ private readonly memoryDecayPerSecond;
49
+ private readonly forgetBelowConfidence;
50
+ private readonly memories;
51
+ private readonly visibleLastTick;
52
+ private elapsedSeconds;
53
+ constructor(options: PerceptionSensorOptions);
54
+ updateTransform(position: PerceptionPoint, forward?: PerceptionPoint): void;
55
+ scan(targets: readonly PerceptionTarget[], deltaSeconds: number): PerceptionSnapshot;
56
+ private evaluateTarget;
57
+ }
58
+ //# sourceMappingURL=Perception.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Perception.d.ts","sourceRoot":"","sources":["../../../../packages/scripting/src/Perception.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,iBAAiB,EAAE,eAAe,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC/C,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuC;IAChE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,cAAc,CAAK;gBAEf,OAAO,EAAE,uBAAuB;IAc5C,eAAe,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,GAAE,eAA8B,GAAG,IAAI;IAKzF,IAAI,CAAC,OAAO,EAAE,SAAS,gBAAgB,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,kBAAkB;IA4CpF,OAAO,CAAC,cAAc;CAuBvB"}
@@ -0,0 +1,111 @@
1
+ export class PerceptionSensor {
2
+ position;
3
+ forward;
4
+ range;
5
+ fovRadians;
6
+ peripheralRadians;
7
+ minConfidence;
8
+ memoryDecayPerSecond;
9
+ forgetBelowConfidence;
10
+ memories = new Map();
11
+ visibleLastTick = new Set();
12
+ elapsedSeconds = 0;
13
+ constructor(options) {
14
+ this.position = options.position;
15
+ this.forward = normalize(options.forward ?? [1, 0]);
16
+ this.range = options.range ?? 3;
17
+ this.fovRadians = options.fovRadians ?? Math.PI / 2;
18
+ this.peripheralRadians = options.peripheralRadians ?? Math.PI;
19
+ this.minConfidence = options.minConfidence ?? 0.05;
20
+ this.memoryDecayPerSecond = options.memoryDecayPerSecond ?? 0.25;
21
+ this.forgetBelowConfidence = options.forgetBelowConfidence ?? 0.05;
22
+ if (this.range <= 0 || this.fovRadians <= 0 || this.peripheralRadians < this.fovRadians) {
23
+ throw new RangeError("PerceptionSensor requires positive range/fov and peripheralRadians >= fovRadians.");
24
+ }
25
+ }
26
+ updateTransform(position, forward = this.forward) {
27
+ this.position = position;
28
+ this.forward = normalize(forward);
29
+ }
30
+ scan(targets, deltaSeconds) {
31
+ this.elapsedSeconds += Math.max(0, deltaSeconds);
32
+ const previousVisible = new Set(this.visibleLastTick);
33
+ this.visibleLastTick.clear();
34
+ const visible = [];
35
+ const forgottenIds = [];
36
+ for (const [id, memory] of [...this.memories]) {
37
+ const decayed = Math.max(0, memory.confidence - this.memoryDecayPerSecond * Math.max(0, deltaSeconds));
38
+ if (decayed < this.forgetBelowConfidence) {
39
+ this.memories.delete(id);
40
+ forgottenIds.push(id);
41
+ }
42
+ else {
43
+ this.memories.set(id, { ...memory, confidence: round3(decayed) });
44
+ }
45
+ }
46
+ for (const target of targets) {
47
+ const hit = this.evaluateTarget(target, previousVisible.has(target.id));
48
+ if (!hit || hit.confidence < this.minConfidence)
49
+ continue;
50
+ visible.push(hit);
51
+ this.visibleLastTick.add(target.id);
52
+ const previous = this.memories.get(target.id);
53
+ this.memories.set(target.id, {
54
+ id: target.id,
55
+ lastKnownPosition: [round3(target.position[0]), round3(target.position[1])],
56
+ confidence: hit.confidence,
57
+ lastSeenSeconds: round3(this.elapsedSeconds),
58
+ seenCount: (previous?.seenCount ?? 0) + 1
59
+ });
60
+ }
61
+ visible.sort((left, right) => right.confidence - left.confidence || left.distance - right.distance || left.id.localeCompare(right.id));
62
+ const memories = [...this.memories.values()].sort((left, right) => right.confidence - left.confidence || left.id.localeCompare(right.id));
63
+ return {
64
+ visible,
65
+ memories,
66
+ closestVisible: [...visible].sort((left, right) => left.distance - right.distance)[0],
67
+ strongestMemory: memories[0],
68
+ enteredIds: visible.filter((hit) => hit.justEntered).map((hit) => hit.id),
69
+ forgottenIds
70
+ };
71
+ }
72
+ evaluateTarget(target, wasVisible) {
73
+ const offset = [target.position[0] - this.position[0], target.position[1] - this.position[1]];
74
+ const distance = length(offset);
75
+ if (distance > this.range || distance === 0)
76
+ return undefined;
77
+ const direction = normalize(offset);
78
+ const angle = Math.acos(Math.max(-1, Math.min(1, dot(this.forward, direction))));
79
+ if (angle > this.peripheralRadians / 2)
80
+ return undefined;
81
+ const peripheral = angle > this.fovRadians / 2;
82
+ const distanceConfidence = 1 - distance / this.range;
83
+ const angleConfidence = peripheral
84
+ ? 0.35 * (1 - (angle - this.fovRadians / 2) / Math.max(0.001, (this.peripheralRadians - this.fovRadians) / 2))
85
+ : 1 - angle / Math.max(0.001, this.fovRadians / 2) * 0.4;
86
+ const priority = target.priority ?? 1;
87
+ return {
88
+ id: target.id,
89
+ position: [round3(target.position[0]), round3(target.position[1])],
90
+ distance: round3(distance),
91
+ angleRadians: round3(angle),
92
+ confidence: round3(Math.max(0, Math.min(1, distanceConfidence * angleConfidence * priority))),
93
+ peripheral,
94
+ justEntered: !wasVisible
95
+ };
96
+ }
97
+ }
98
+ function normalize(value) {
99
+ const magnitude = length(value);
100
+ return magnitude === 0 ? [1, 0] : [value[0] / magnitude, value[1] / magnitude];
101
+ }
102
+ function length(value) {
103
+ return Math.hypot(value[0], value[1]);
104
+ }
105
+ function dot(left, right) {
106
+ return left[0] * right[0] + left[1] * right[1];
107
+ }
108
+ function round3(value) {
109
+ return Number(value.toFixed(3));
110
+ }
111
+ //# sourceMappingURL=Perception.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Perception.js","sourceRoot":"","sources":["../../../../packages/scripting/src/Perception.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlayerBehaviorTelemetryFixtures.d.ts","sourceRoot":"","sources":["../../../../packages/scripting/src/PlayerBehaviorTelemetryFixtures.ts"],"names":[],"mappings":"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"}