@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,52 +0,0 @@
1
- import type { PlayerBehaviorTelemetryFixture } from "./PlayerBehaviorTelemetryFixtures";
2
- export type GeneratedContentType = "level" | "quest" | "enemy_encounter" | "puzzle" | "reward" | "narrative";
3
- export type GeneratedContentDifficulty = "trivial" | "easy" | "moderate" | "challenging" | "extreme";
4
- export type AdaptiveAiStrategy = "mirror" | "counter" | "exploit" | "match_skill" | "challenge";
5
- export interface ProceduralContentAdaptationOptions {
6
- readonly seed?: number;
7
- readonly playerTelemetry: PlayerBehaviorTelemetryFixture;
8
- readonly strategy?: AdaptiveAiStrategy;
9
- }
10
- export interface GeneratedContentTelemetry {
11
- readonly id: string;
12
- readonly type: GeneratedContentType;
13
- readonly difficulty: GeneratedContentDifficulty;
14
- readonly estimatedDurationMs: number;
15
- readonly tags: readonly string[];
16
- readonly parameters: {
17
- readonly size?: number;
18
- readonly enemyCount?: number;
19
- readonly resourceCount?: number;
20
- readonly hasSecretAreas?: boolean;
21
- readonly hasTimeLimit?: boolean;
22
- readonly layout?: "linear" | "branching";
23
- readonly objectiveCount?: number;
24
- readonly rewardTier?: string;
25
- };
26
- }
27
- export interface ProceduralContentAdaptationFixture {
28
- readonly source: "origin-master-content-generator-adaptive-ai-adapted";
29
- readonly content: readonly GeneratedContentTelemetry[];
30
- readonly adaptiveAi: {
31
- readonly strategy: AdaptiveAiStrategy;
32
- readonly behaviorMode: "passive" | "balanced" | "aggressive" | "tactical" | "adaptive";
33
- readonly aggression: number;
34
- readonly defensiveness: number;
35
- readonly tacticalAwareness: number;
36
- readonly reactionSpeed: number;
37
- readonly accuracy: number;
38
- readonly abilityUsage: number;
39
- readonly coordination: number;
40
- };
41
- readonly productionReadiness: {
42
- readonly contentGenerationTelemetry: true;
43
- readonly playstyleCustomizationTelemetry: true;
44
- readonly skillScalingTelemetry: true;
45
- readonly adaptiveAiParameterTelemetry: true;
46
- };
47
- readonly blockedClaims: readonly string[];
48
- readonly claimBoundary: string;
49
- readonly hash: string;
50
- }
51
- export declare function sampleProceduralContentAdaptationFixture(options: ProceduralContentAdaptationOptions): ProceduralContentAdaptationFixture;
52
- //# sourceMappingURL=ProceduralContentAdaptationFixtures.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProceduralContentAdaptationFixtures.d.ts","sourceRoot":"","sources":["../../../../packages/scripting/src/ProceduralContentAdaptationFixtures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAqC,MAAM,mCAAmC,CAAC;AAE3H,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,OAAO,GAAG,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;AAC7G,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC;AACrG,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;AAEhG,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,eAAe,EAAE,8BAA8B,CAAC;IACzD,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CACxC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC;IAChD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;QACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,MAAM,EAAE,qDAAqD,CAAC;IACvE,QAAQ,CAAC,OAAO,EAAE,SAAS,yBAAyB,EAAE,CAAC;IACvD,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;QACtC,QAAQ,CAAC,YAAY,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,CAAC;QACvF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;QACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,QAAQ,CAAC,mBAAmB,EAAE;QAC5B,QAAQ,CAAC,0BAA0B,EAAE,IAAI,CAAC;QAC1C,QAAQ,CAAC,+BAA+B,EAAE,IAAI,CAAC;QAC/C,QAAQ,CAAC,qBAAqB,EAAE,IAAI,CAAC;QACrC,QAAQ,CAAC,4BAA4B,EAAE,IAAI,CAAC;KAC7C,CAAC;IACF,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,wCAAwC,CAAC,OAAO,EAAE,kCAAkC,GAAG,kCAAkC,CAiCxI"}
@@ -1,149 +0,0 @@
1
- export function sampleProceduralContentAdaptationFixture(options) {
2
- const seed = normalizeSeed(options.seed ?? 0xc067);
3
- const profile = options.playerTelemetry.profile;
4
- const difficulty = difficultyForSkill(profile.skillLevel);
5
- const playstyle = profile.playstyle;
6
- const content = [
7
- generateLevel(seed, difficulty, playstyle),
8
- generateEncounter(seed ^ 0x1138, difficulty, playstyle),
9
- generateReward(seed ^ 0x9821, difficulty, profile.skillLevel),
10
- generateQuest(seed ^ 0xa77a, difficulty, playstyle)
11
- ];
12
- const adaptiveAi = adaptiveAiFor(options.strategy ?? "counter", playstyle, profile.skillLevel, options.playerTelemetry.events.successRate);
13
- const core = { content, adaptiveAi, playerHash: options.playerTelemetry.hash };
14
- return {
15
- source: "origin-master-content-generator-adaptive-ai-adapted",
16
- content,
17
- adaptiveAi,
18
- productionReadiness: {
19
- contentGenerationTelemetry: true,
20
- playstyleCustomizationTelemetry: true,
21
- skillScalingTelemetry: true,
22
- adaptiveAiParameterTelemetry: true
23
- },
24
- blockedClaims: [
25
- "production procedural content generation parity",
26
- "runtime-authored quest/narrative generation",
27
- "Unity Adaptive Performance/Game Foundation parity",
28
- "Unreal PCG Framework/MassAI parity",
29
- "LLM-authored live content generation"
30
- ],
31
- claimBoundary: "This fixture ports old ContentGenerator/AdaptiveAI concepts into deterministic content-plan and adaptive-parameter telemetry. It does not create production PCG levels, generate live narrative, or claim Unity/Unreal PCG or AI-system parity.",
32
- hash: stableHash(JSON.stringify(core))
33
- };
34
- }
35
- function generateLevel(seed, difficulty, playstyle) {
36
- const multiplier = difficultyMultiplier(difficulty);
37
- return {
38
- id: "content-level-1",
39
- type: "level",
40
- difficulty,
41
- estimatedDurationMs: Math.round(240000 * multiplier),
42
- tags: ["procedural", "level", playstyle],
43
- parameters: {
44
- size: Math.round(90 * multiplier),
45
- enemyCount: playstyle === "stealth" ? Math.round(4 * multiplier) : Math.round(7 * multiplier),
46
- resourceCount: playstyle === "exploration" || playstyle === "completionist" ? Math.round(10 * multiplier) : Math.round(6 * multiplier),
47
- hasSecretAreas: playstyle === "exploration" || playstyle === "completionist",
48
- hasTimeLimit: playstyle === "speedrun",
49
- layout: seededUnit(seed) > 0.5 ? "branching" : "linear"
50
- }
51
- };
52
- }
53
- function generateEncounter(seed, difficulty, playstyle) {
54
- const multiplier = difficultyMultiplier(difficulty);
55
- return {
56
- id: "content-encounter-1",
57
- type: "enemy_encounter",
58
- difficulty,
59
- estimatedDurationMs: Math.round(95000 * multiplier),
60
- tags: ["combat", "encounter", playstyle === "defensive" ? "cover" : "pressure"],
61
- parameters: {
62
- enemyCount: Math.max(1, Math.round((playstyle === "aggressive" ? 6 : 4) * multiplier)),
63
- resourceCount: Math.max(1, Math.round((1 + seededUnit(seed) * 3) * multiplier)),
64
- layout: playstyle === "defensive" ? "branching" : "linear"
65
- }
66
- };
67
- }
68
- function generateReward(seed, difficulty, skill) {
69
- return {
70
- id: "content-reward-1",
71
- type: "reward",
72
- difficulty,
73
- estimatedDurationMs: 0,
74
- tags: ["reward", "loot", skill],
75
- parameters: {
76
- rewardTier: skill === "expert" || skill === "advanced" ? "rare" : seededUnit(seed) > 0.55 ? "uncommon" : "standard",
77
- resourceCount: Math.round(2 + seededUnit(seed ^ 0x55aa) * 4)
78
- }
79
- };
80
- }
81
- function generateQuest(seed, difficulty, playstyle) {
82
- return {
83
- id: "content-quest-1",
84
- type: "quest",
85
- difficulty,
86
- estimatedDurationMs: Math.round(360000 * difficultyMultiplier(difficulty)),
87
- tags: ["quest", playstyle === "exploration" ? "optional" : "objective"],
88
- parameters: {
89
- objectiveCount: Math.round(2 + seededUnit(seed) * 3),
90
- hasSecretAreas: playstyle === "completionist" || playstyle === "exploration"
91
- }
92
- };
93
- }
94
- function adaptiveAiFor(strategy, playstyle, skill, successRate) {
95
- const skillScale = skill === "expert" ? 1 : skill === "advanced" ? 0.85 : skill === "intermediate" ? 0.65 : skill === "novice" ? 0.48 : 0.35;
96
- const counterAggression = playstyle === "defensive" || playstyle === "stealth" ? 0.72 : playstyle === "aggressive" ? 0.48 : 0.58;
97
- return {
98
- strategy,
99
- behaviorMode: strategy === "counter" || strategy === "challenge" ? "adaptive" : "balanced",
100
- aggression: Number(Math.min(1, counterAggression + skillScale * 0.12).toFixed(3)),
101
- defensiveness: Number((playstyle === "aggressive" ? 0.72 : 0.48 + skillScale * 0.16).toFixed(3)),
102
- tacticalAwareness: Number((0.42 + skillScale * 0.44).toFixed(3)),
103
- reactionSpeed: Number((0.82 + skillScale * 0.38).toFixed(3)),
104
- accuracy: Number((0.36 + skillScale * 0.36 + successRate * 0.08).toFixed(3)),
105
- abilityUsage: Number((0.3 + skillScale * 0.48).toFixed(3)),
106
- coordination: Number((0.38 + skillScale * 0.32).toFixed(3))
107
- };
108
- }
109
- function difficultyForSkill(skill) {
110
- if (skill === "beginner")
111
- return "easy";
112
- if (skill === "novice" || skill === "intermediate")
113
- return "moderate";
114
- if (skill === "advanced")
115
- return "challenging";
116
- return "extreme";
117
- }
118
- function difficultyMultiplier(difficulty) {
119
- if (difficulty === "trivial")
120
- return 0.6;
121
- if (difficulty === "easy")
122
- return 0.8;
123
- if (difficulty === "moderate")
124
- return 1;
125
- if (difficulty === "challenging")
126
- return 1.28;
127
- return 1.55;
128
- }
129
- function normalizeSeed(seed) {
130
- if (!Number.isInteger(seed) || seed < 0)
131
- throw new Error("seed must be a non-negative integer.");
132
- return seed >>> 0;
133
- }
134
- function seededUnit(seed) {
135
- let value = seed >>> 0;
136
- value ^= value << 13;
137
- value ^= value >>> 17;
138
- value ^= value << 5;
139
- return (value >>> 0) / 0xffffffff;
140
- }
141
- function stableHash(value) {
142
- let hash = 2166136261;
143
- for (let index = 0; index < value.length; index += 1) {
144
- hash ^= value.charCodeAt(index);
145
- hash = Math.imul(hash, 16777619);
146
- }
147
- return (hash >>> 0).toString(16).padStart(8, "0");
148
- }
149
- //# sourceMappingURL=ProceduralContentAdaptationFixtures.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProceduralContentAdaptationFixtures.js","sourceRoot":"","sources":["../../../../packages/scripting/src/ProceduralContentAdaptationFixtures.ts"],"names":[],"mappings":"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"}