gameforge-cli 0.1.0 → 0.2.0
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.
- package/README.md +81 -41
- package/dist/agents/base/BaseAgent.d.ts +31 -0
- package/dist/agents/base/BaseAgent.d.ts.map +1 -1
- package/dist/agents/base/BaseAgent.js +57 -0
- package/dist/agents/base/BaseAgent.js.map +1 -1
- package/dist/agents/core/Architect.d.ts +17 -5
- package/dist/agents/core/Architect.d.ts.map +1 -1
- package/dist/agents/core/Architect.js +263 -150
- package/dist/agents/core/Architect.js.map +1 -1
- package/dist/agents/core/Chaos.d.ts +4 -0
- package/dist/agents/core/Chaos.d.ts.map +1 -1
- package/dist/agents/core/Chaos.js +46 -11
- package/dist/agents/core/Chaos.js.map +1 -1
- package/dist/agents/core/Consistency.d.ts +1 -0
- package/dist/agents/core/Consistency.d.ts.map +1 -1
- package/dist/agents/core/Consistency.js +86 -11
- package/dist/agents/core/Consistency.js.map +1 -1
- package/dist/agents/core/Modifier.d.ts +13 -0
- package/dist/agents/core/Modifier.d.ts.map +1 -0
- package/dist/agents/core/Modifier.js +141 -0
- package/dist/agents/core/Modifier.js.map +1 -0
- package/dist/agents/core/Remediation.d.ts +3 -1
- package/dist/agents/core/Remediation.d.ts.map +1 -1
- package/dist/agents/core/Remediation.js +63 -3
- package/dist/agents/core/Remediation.js.map +1 -1
- package/dist/agents/specialists/CreativeSpecialist.d.ts.map +1 -1
- package/dist/agents/specialists/CreativeSpecialist.js +94 -25
- package/dist/agents/specialists/CreativeSpecialist.js.map +1 -1
- package/dist/agents/specialists/EntitySpecialist.d.ts.map +1 -1
- package/dist/agents/specialists/EntitySpecialist.js +63 -25
- package/dist/agents/specialists/EntitySpecialist.js.map +1 -1
- package/dist/agents/specialists/FeatureSpecialist.d.ts.map +1 -1
- package/dist/agents/specialists/FeatureSpecialist.js +53 -39
- package/dist/agents/specialists/FeatureSpecialist.js.map +1 -1
- package/dist/agents/specialists/TechSpecialist.d.ts.map +1 -1
- package/dist/agents/specialists/TechSpecialist.js +69 -32
- package/dist/agents/specialists/TechSpecialist.js.map +1 -1
- package/dist/config/schema.d.ts +1319 -709
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +142 -52
- package/dist/config/schema.js.map +1 -1
- package/dist/config/templates.d.ts.map +1 -1
- package/dist/config/templates.js +6 -66
- package/dist/config/templates.js.map +1 -1
- package/dist/core/Orchestrator.d.ts +17 -3
- package/dist/core/Orchestrator.d.ts.map +1 -1
- package/dist/core/Orchestrator.js +46 -16
- package/dist/core/Orchestrator.js.map +1 -1
- package/dist/index.js +335 -195
- package/dist/index.js.map +1 -1
- package/dist/types/issueReview.d.ts +19 -0
- package/dist/types/issueReview.d.ts.map +1 -0
- package/dist/types/issueReview.js +3 -0
- package/dist/types/issueReview.js.map +1 -0
- package/dist/utils/costTracker.d.ts +28 -0
- package/dist/utils/costTracker.d.ts.map +1 -1
- package/dist/utils/costTracker.js +71 -1
- package/dist/utils/costTracker.js.map +1 -1
- package/dist/utils/disambiguationHelper.d.ts +54 -0
- package/dist/utils/disambiguationHelper.d.ts.map +1 -0
- package/dist/utils/disambiguationHelper.js +252 -0
- package/dist/utils/disambiguationHelper.js.map +1 -0
- package/dist/utils/issueReviewer.d.ts +6 -0
- package/dist/utils/issueReviewer.d.ts.map +1 -0
- package/dist/utils/issueReviewer.js +159 -0
- package/dist/utils/issueReviewer.js.map +1 -0
- package/dist/utils/issueSelector.d.ts +26 -0
- package/dist/utils/issueSelector.d.ts.map +1 -0
- package/dist/utils/issueSelector.js +132 -0
- package/dist/utils/issueSelector.js.map +1 -0
- package/package.json +1 -1
- package/dist/core/CheckpointManager.d.ts +0 -16
- package/dist/core/CheckpointManager.d.ts.map +0 -1
- package/dist/core/CheckpointManager.js +0 -52
- package/dist/core/CheckpointManager.js.map +0 -1
|
@@ -23,24 +23,37 @@ Be critical but constructive. Every issue must have a recommendation.`,
|
|
|
23
23
|
}
|
|
24
24
|
async execute(bible, onProgress) {
|
|
25
25
|
const bibleStr = JSON.stringify(bible, null, 2);
|
|
26
|
-
const prompt = `Analyze this Game Design Document for
|
|
26
|
+
const prompt = `Analyze this Game Design Document for design and gameplay issues:
|
|
27
27
|
|
|
28
28
|
${bibleStr}
|
|
29
29
|
|
|
30
|
-
Identify
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
Identify problems that would impact the PLAYER EXPERIENCE or make the game unfun/broken.
|
|
31
|
+
|
|
32
|
+
## Categories to check:
|
|
33
|
+
1. **Gameplay**: Broken loops, missing mechanics, unfun systems, degenerate strategies
|
|
34
|
+
2. **Technical**: Over-scoping, engine limitations, impossible requirements, network issues
|
|
35
|
+
3. **Scope**: Unrealistic asset counts, feature bloat for stated scope
|
|
36
|
+
4. **Consistency**: Contradictory features, narrative mismatches, thematic inconsistencies
|
|
37
|
+
|
|
38
|
+
## Severity Definitions (use these STRICTLY):
|
|
39
|
+
- **Critical**: BREAKS core gameplay loop. Game cannot function as designed. Must fix before development.
|
|
40
|
+
- **Major**: Significant design flaw affecting player experience. Should fix before production.
|
|
41
|
+
- **Minor**: Polish issue or optimization. Can address later.
|
|
42
|
+
|
|
43
|
+
## DO NOT REPORT:
|
|
44
|
+
- ID format issues (CARD-001, ABILITY-001 are fine)
|
|
45
|
+
- Typos or formatting issues
|
|
46
|
+
- Missing optional fields
|
|
47
|
+
- Cosmetic concerns
|
|
35
48
|
|
|
36
49
|
For each issue, provide:
|
|
37
50
|
- category: Gameplay | Technical | Scope | Consistency
|
|
38
51
|
- severity: Critical | Major | Minor
|
|
39
|
-
- description: What's wrong (1-2 sentences)
|
|
40
|
-
- location: Where in the document (e.g., "features[2]")
|
|
41
|
-
- recommendation:
|
|
52
|
+
- description: What's wrong and WHY it matters to the player (1-2 sentences)
|
|
53
|
+
- location: Where in the document (e.g., "features[2].gameplayLoop")
|
|
54
|
+
- recommendation: Concrete fix (not "consider" or "maybe")
|
|
42
55
|
|
|
43
|
-
Output as JSON array of issues.
|
|
56
|
+
Output as JSON array of issues. Focus on quality over quantity - 5-10 real problems that matter.`;
|
|
44
57
|
const result = await this.callLLMWithAutoRetry(prompt, modelSelector_1.TaskComplexity.COMPLEX, {
|
|
45
58
|
initialMaxTokens: 16000,
|
|
46
59
|
maxRetries: 2,
|
|
@@ -49,7 +62,9 @@ Output as JSON array of issues. Be thorough - find 5-10 real problems.`;
|
|
|
49
62
|
try {
|
|
50
63
|
const jsonMatch = result.content.match(/```json\n([\s\S]*?)\n```/) || result.content.match(/\[([\s\S]*?)\]/);
|
|
51
64
|
const jsonStr = jsonMatch ? (jsonMatch[1] || jsonMatch[0]) : result.content;
|
|
52
|
-
|
|
65
|
+
let issues = JSON.parse(jsonStr);
|
|
66
|
+
// Check for critical issues that need user clarification
|
|
67
|
+
issues = await this.clarifyAmbiguousIssues(issues, bible);
|
|
53
68
|
return issues;
|
|
54
69
|
}
|
|
55
70
|
catch {
|
|
@@ -62,6 +77,26 @@ Output as JSON array of issues. Be thorough - find 5-10 real problems.`;
|
|
|
62
77
|
}];
|
|
63
78
|
}
|
|
64
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* For critical issues with ambiguous recommendations, ask the user for clarification
|
|
82
|
+
*/
|
|
83
|
+
async clarifyAmbiguousIssues(issues, bible) {
|
|
84
|
+
const criticalIssues = issues.filter(i => i.severity === 'Critical');
|
|
85
|
+
// Only ask about the first critical issue to avoid overwhelming the user
|
|
86
|
+
if (criticalIssues.length > 0) {
|
|
87
|
+
const issue = criticalIssues[0];
|
|
88
|
+
// Check if the recommendation is vague
|
|
89
|
+
if (issue.recommendation.length < 30 ||
|
|
90
|
+
issue.recommendation.toLowerCase().includes('consider') ||
|
|
91
|
+
issue.recommendation.toLowerCase().includes('maybe')) {
|
|
92
|
+
const result = await this.askClarification(`Critical Issue Found: ${issue.description}\n\nHow would you like to address this?`, bible, 'Critical Issue Resolution');
|
|
93
|
+
// Update the issue with the user's preferred resolution
|
|
94
|
+
issue.recommendation = result.answer;
|
|
95
|
+
issue.description += ' [User provided resolution]';
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return issues;
|
|
99
|
+
}
|
|
65
100
|
}
|
|
66
101
|
exports.Chaos = Chaos;
|
|
67
102
|
//# sourceMappingURL=Chaos.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chaos.js","sourceRoot":"","sources":["../../../src/agents/core/Chaos.ts"],"names":[],"mappings":";;;AAAA,iDAA2D;AAC3D,6DAA2D;AAW3D,MAAa,KAAM,SAAQ,qBAAS;IAClC,YAAY,MAAc,EAAE,WAAgB,EAAE,aAAkB;QAC9D,MAAM,MAAM,GAAgB;YAC1B,YAAY,EAAE;;;;;;;;;;sEAUkD;YAChE,WAAW,EAAE,GAAG;SACjB,CAAC;QACF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAgB,EAAE,UAAsC;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG;;EAEjB,QAAQ
|
|
1
|
+
{"version":3,"file":"Chaos.js","sourceRoot":"","sources":["../../../src/agents/core/Chaos.ts"],"names":[],"mappings":";;;AAAA,iDAA2D;AAC3D,6DAA2D;AAW3D,MAAa,KAAM,SAAQ,qBAAS;IAClC,YAAY,MAAc,EAAE,WAAgB,EAAE,aAAkB;QAC9D,MAAM,MAAM,GAAgB;YAC1B,YAAY,EAAE;;;;;;;;;;sEAUkD;YAChE,WAAW,EAAE,GAAG;SACjB,CAAC;QACF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAgB,EAAE,UAAsC;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG;;EAEjB,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;iGA4BuF,CAAC;QAE9F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,8BAAc,CAAC,OAAO,EAAE;YAC7E,gBAAgB,EAAE,KAAK;YACvB,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,UAAU;SACvB,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC7G,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YAC5E,IAAI,MAAM,GAAiB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE/C,yDAAyD;YACzD,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAE1D,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC;oBACN,QAAQ,EAAE,aAAa;oBACvB,QAAQ,EAAE,OAAO;oBACjB,WAAW,EAAE,oCAAoC;oBACjD,QAAQ,EAAE,KAAK;oBACf,cAAc,EAAE,2BAA2B;iBAC5C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,sBAAsB,CAClC,MAAoB,EACpB,KAAgB;QAEhB,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC;QAErE,yEAAyE;QACzE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;YAEhC,uCAAuC;YACvC,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE;gBAChC,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACvD,KAAK,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAEzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACxC,yBAAyB,KAAK,CAAC,WAAW,yCAAyC,EACnF,KAAK,EACL,2BAA2B,CAC5B,CAAC;gBAEF,wDAAwD;gBACxD,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;gBACrC,KAAK,CAAC,WAAW,IAAI,6BAA6B,CAAC;YACrD,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAhHD,sBAgHC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Consistency.d.ts","sourceRoot":"","sources":["../../../src/agents/core/Consistency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAW,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,gBAAgB,EAAE;
|
|
1
|
+
{"version":3,"file":"Consistency.d.ts","sourceRoot":"","sources":["../../../src/agents/core/Consistency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAW,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,gBAAgB,EAAE;IAa9C,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,wBAAwB;IAqChC,OAAO,CAAC,yBAAyB;IA2BjC,OAAO,CAAC,iBAAiB;IAgCzB,OAAO,CAAC,qBAAqB;IA2C7B,OAAO,CAAC,sBAAsB;CAqD/B"}
|
|
@@ -9,6 +9,7 @@ class ConsistencyAgent {
|
|
|
9
9
|
issues.push(...this.validateNamingConventions(bible));
|
|
10
10
|
issues.push(...this.checkAssetBalance(bible));
|
|
11
11
|
issues.push(...this.detectMissingFeatures(bible));
|
|
12
|
+
issues.push(...this.checkPlatformAlignment(bible));
|
|
12
13
|
return issues;
|
|
13
14
|
}
|
|
14
15
|
checkFeatureDependencies(bible) {
|
|
@@ -63,20 +64,21 @@ class ConsistencyAgent {
|
|
|
63
64
|
}
|
|
64
65
|
validateNamingConventions(bible) {
|
|
65
66
|
const issues = [];
|
|
67
|
+
// Only check for missing IDs, not format - descriptive IDs like CARD-001 or ABILITY-001 are fine
|
|
66
68
|
bible.features.forEach((feature, idx) => {
|
|
67
|
-
if (!feature.id.
|
|
69
|
+
if (!feature.id || feature.id.trim() === '') {
|
|
68
70
|
issues.push({
|
|
69
|
-
severity: '
|
|
70
|
-
message: `Feature
|
|
71
|
+
severity: 'Error',
|
|
72
|
+
message: `Feature at index ${idx} is missing an ID`,
|
|
71
73
|
location: `features[${idx}].id`
|
|
72
74
|
});
|
|
73
75
|
}
|
|
74
76
|
});
|
|
75
77
|
bible.gameObjects.forEach((entity, idx) => {
|
|
76
|
-
if (!entity.id.
|
|
78
|
+
if (!entity.id || entity.id.trim() === '') {
|
|
77
79
|
issues.push({
|
|
78
|
-
severity: '
|
|
79
|
-
message: `Entity
|
|
80
|
+
severity: 'Error',
|
|
81
|
+
message: `Entity at index ${idx} is missing an ID`,
|
|
80
82
|
location: `gameObjects[${idx}].id`
|
|
81
83
|
});
|
|
82
84
|
}
|
|
@@ -85,8 +87,12 @@ class ConsistencyAgent {
|
|
|
85
87
|
}
|
|
86
88
|
checkAssetBalance(bible) {
|
|
87
89
|
const issues = [];
|
|
90
|
+
// Skip check if creative section is not provided
|
|
91
|
+
if (!bible.creative) {
|
|
92
|
+
return issues;
|
|
93
|
+
}
|
|
88
94
|
const reqs = bible.creative.assetRequirements;
|
|
89
|
-
const total = Object.values(reqs).reduce((sum, val) => sum + val, 0);
|
|
95
|
+
const total = Object.values(reqs).reduce((sum, val) => sum + (val || 0), 0);
|
|
90
96
|
if (total > 500 && bible.meta.estimatedScope === 'Prototype') {
|
|
91
97
|
issues.push({
|
|
92
98
|
severity: 'Warning',
|
|
@@ -108,15 +114,21 @@ class ConsistencyAgent {
|
|
|
108
114
|
detectMissingFeatures(bible) {
|
|
109
115
|
const issues = [];
|
|
110
116
|
const featureNames = bible.features.map(f => f.name.toLowerCase());
|
|
111
|
-
|
|
117
|
+
const featureNamesStr = featureNames.join(' ');
|
|
118
|
+
// Heuristic checks for commonly paired features
|
|
112
119
|
const checks = [
|
|
113
120
|
{ has: 'crafting', needs: 'inventory', message: 'Crafting system typically requires Inventory management' },
|
|
114
|
-
{ has: 'multiplayer', needs: 'lobby', message: 'Multiplayer games usually need a Lobby/Matchmaking system' },
|
|
121
|
+
{ has: 'multiplayer', needs: 'lobby', needsAlt: 'matchmak', message: 'Multiplayer games usually need a Lobby/Matchmaking system' },
|
|
115
122
|
{ has: 'progression', needs: 'save', message: 'Progression systems require Save/Load functionality' },
|
|
116
|
-
{ has: 'combat', needs: 'health', message: 'Combat systems typically need Health/Damage management' }
|
|
123
|
+
{ has: 'combat', needs: 'health', needsAlt: 'damage', message: 'Combat systems typically need Health/Damage management' },
|
|
124
|
+
{ has: 'economy', needs: 'balance', needsAlt: 'sink', message: 'Economy systems need balance mechanisms (sinks, caps, etc.)' },
|
|
125
|
+
{ has: 'trading', needs: 'inventory', message: 'Trading systems require Inventory management' }
|
|
117
126
|
];
|
|
118
127
|
checks.forEach(check => {
|
|
119
|
-
|
|
128
|
+
const hasFeature = featureNames.some(n => n.includes(check.has));
|
|
129
|
+
const hasNeeded = featureNames.some(n => n.includes(check.needs));
|
|
130
|
+
const hasAlt = check.needsAlt ? featureNames.some(n => n.includes(check.needsAlt)) : false;
|
|
131
|
+
if (hasFeature && !hasNeeded && !hasAlt) {
|
|
120
132
|
issues.push({
|
|
121
133
|
severity: 'Info',
|
|
122
134
|
message: check.message,
|
|
@@ -125,6 +137,69 @@ class ConsistencyAgent {
|
|
|
125
137
|
});
|
|
126
138
|
}
|
|
127
139
|
});
|
|
140
|
+
// Check for tutorial/onboarding if game has many features
|
|
141
|
+
if (bible.features.length > 5 && !featureNamesStr.includes('tutorial') && !featureNamesStr.includes('onboard')) {
|
|
142
|
+
issues.push({
|
|
143
|
+
severity: 'Info',
|
|
144
|
+
message: `Game has ${bible.features.length} features but no tutorial/onboarding system mentioned`,
|
|
145
|
+
location: 'features',
|
|
146
|
+
suggestion: 'Consider adding a Tutorial or Onboarding feature to teach players the mechanics'
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
return issues;
|
|
150
|
+
}
|
|
151
|
+
checkPlatformAlignment(bible) {
|
|
152
|
+
const issues = [];
|
|
153
|
+
// Skip if technical section is not provided
|
|
154
|
+
if (!bible.technical) {
|
|
155
|
+
return issues;
|
|
156
|
+
}
|
|
157
|
+
const metaPlatforms = bible.meta.targetPlatform || [];
|
|
158
|
+
const buildTargets = bible.technical.buildTargets || [];
|
|
159
|
+
// Normalize platform names for comparison
|
|
160
|
+
const normalizeplatform = (p) => {
|
|
161
|
+
const lower = p.toLowerCase();
|
|
162
|
+
if (lower.includes('pc') || lower.includes('windows'))
|
|
163
|
+
return 'pc';
|
|
164
|
+
if (lower.includes('mac'))
|
|
165
|
+
return 'mac';
|
|
166
|
+
if (lower.includes('linux'))
|
|
167
|
+
return 'linux';
|
|
168
|
+
if (lower.includes('playstation') || lower.includes('ps4') || lower.includes('ps5'))
|
|
169
|
+
return 'playstation';
|
|
170
|
+
if (lower.includes('xbox'))
|
|
171
|
+
return 'xbox';
|
|
172
|
+
if (lower.includes('switch') || lower.includes('nintendo'))
|
|
173
|
+
return 'nintendo';
|
|
174
|
+
if (lower.includes('ios') || lower.includes('iphone') || lower.includes('ipad'))
|
|
175
|
+
return 'ios';
|
|
176
|
+
if (lower.includes('android'))
|
|
177
|
+
return 'android';
|
|
178
|
+
if (lower.includes('console'))
|
|
179
|
+
return 'console';
|
|
180
|
+
return lower;
|
|
181
|
+
};
|
|
182
|
+
const normalizedMeta = new Set(metaPlatforms.map(normalizeplatform));
|
|
183
|
+
const normalizedBuild = new Set(buildTargets.map(normalizeplatform));
|
|
184
|
+
// Check for platforms in meta but not in build targets
|
|
185
|
+
const inMetaNotBuild = [...normalizedMeta].filter(p => !normalizedBuild.has(p));
|
|
186
|
+
const inBuildNotMeta = [...normalizedBuild].filter(p => !normalizedMeta.has(p));
|
|
187
|
+
if (inMetaNotBuild.length > 0) {
|
|
188
|
+
issues.push({
|
|
189
|
+
severity: 'Warning',
|
|
190
|
+
message: `Target platforms "${inMetaNotBuild.join(', ')}" listed in meta but not in technical.buildTargets`,
|
|
191
|
+
location: 'meta.targetPlatform vs technical.buildTargets',
|
|
192
|
+
suggestion: 'Align target platforms in both sections or clarify which is the source of truth'
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
if (inBuildNotMeta.length > 0) {
|
|
196
|
+
issues.push({
|
|
197
|
+
severity: 'Warning',
|
|
198
|
+
message: `Build targets "${inBuildNotMeta.join(', ')}" listed in technical but not in meta.targetPlatform`,
|
|
199
|
+
location: 'technical.buildTargets vs meta.targetPlatform',
|
|
200
|
+
suggestion: 'Align target platforms in both sections'
|
|
201
|
+
});
|
|
202
|
+
}
|
|
128
203
|
return issues;
|
|
129
204
|
}
|
|
130
205
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Consistency.js","sourceRoot":"","sources":["../../../src/agents/core/Consistency.ts"],"names":[],"mappings":";;;AASA,MAAa,gBAAgB;IAC3B,QAAQ,CAAC,KAAgB;QACvB,MAAM,MAAM,GAAuB,EAAE,CAAC;QAEtC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Consistency.js","sourceRoot":"","sources":["../../../src/agents/core/Consistency.ts"],"names":[],"mappings":";;;AASA,MAAa,gBAAgB;IAC3B,QAAQ,CAAC,KAAgB;QACvB,MAAM,MAAM,GAAuB,EAAE,CAAC;QAEtC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;QAEnD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,wBAAwB,CAAC,KAAgB;QAC/C,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE1D,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC/B,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC;wBACV,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,YAAY,OAAO,CAAC,IAAI,sCAAsC,KAAK,GAAG;wBAC/E,QAAQ,EAAE,YAAY,OAAO,CAAC,EAAE,gBAAgB;wBAChD,UAAU,EAAE,kBAAkB,KAAK,4BAA4B;qBAChE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,wBAAwB,CAAC,KAAgB;QAC/C,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QAEzC,MAAM,QAAQ,GAAG,CAAC,SAAiB,EAAE,MAA6B,EAAW,EAAE;YAC7E,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvB,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAE9B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtB,IAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;wBAAE,OAAO,IAAI,CAAC;gBACzC,CAAC;qBAAM,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnC,MAAM,CAAC,IAAI,CAAC;wBACV,QAAQ,EAAE,OAAO;wBACjB,OAAO,EAAE,iCAAiC,SAAS,MAAM,GAAG,EAAE;wBAC9D,QAAQ,EAAE,YAAY,SAAS,gBAAgB;qBAChD,CAAC,CAAC;oBACH,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACxE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvB,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,yBAAyB,CAAC,KAAgB;QAChD,MAAM,MAAM,GAAuB,EAAE,CAAC;QAEtC,iGAAiG;QACjG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;YACtC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC5C,MAAM,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,oBAAoB,GAAG,mBAAmB;oBACnD,QAAQ,EAAE,YAAY,GAAG,MAAM;iBAChC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,mBAAmB,GAAG,mBAAmB;oBAClD,QAAQ,EAAE,eAAe,GAAG,MAAM;iBACnC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,iBAAiB,CAAC,KAAgB;QACxC,MAAM,MAAM,GAAuB,EAAE,CAAC;QAEtC,iDAAiD;QACjD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAE5E,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,cAAc,KAAK,WAAW,EAAE,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,GAAG,KAAK,yCAAyC;gBAC1D,QAAQ,EAAE,4BAA4B;gBACtC,UAAU,EAAE,mEAAmE;aAChF,CAAC,CAAC;QACL,CAAC;QAED,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,iCAAiC;gBAC1C,QAAQ,EAAE,4BAA4B;gBACtC,UAAU,EAAE,sCAAsC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,qBAAqB,CAAC,KAAgB;QAC5C,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACnE,MAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE/C,gDAAgD;QAChD,MAAM,MAAM,GAAG;YACb,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,yDAAyD,EAAE;YAC3G,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,2DAA2D,EAAE;YAClI,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,qDAAqD,EAAE;YACrG,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,wDAAwD,EAAE;YACzH,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,6DAA6D,EAAE;YAC9H,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,8CAA8C,EAAE;SAChG,CAAC;QAEF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACjE,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAE3F,IAAI,UAAU,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,QAAQ,EAAE,UAAU;oBACpB,UAAU,EAAE,sBAAsB,KAAK,CAAC,KAAK,WAAW;iBACzD,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,0DAA0D;QAC1D,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/G,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,YAAY,KAAK,CAAC,QAAQ,CAAC,MAAM,uDAAuD;gBACjG,QAAQ,EAAE,UAAU;gBACpB,UAAU,EAAE,iFAAiF;aAC9F,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,sBAAsB,CAAC,KAAgB;QAC7C,MAAM,MAAM,GAAuB,EAAE,CAAC;QAEtC,4CAA4C;QAC5C,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;QACtD,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC;QAExD,0CAA0C;QAC1C,MAAM,iBAAiB,GAAG,CAAC,CAAS,EAAU,EAAE;YAC9C,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,OAAO,IAAI,CAAC;YACnE,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YACxC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,OAAO,OAAO,CAAC;YAC5C,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,aAAa,CAAC;YAC1G,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,MAAM,CAAC;YAC1C,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO,UAAU,CAAC;YAC9E,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC9F,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,OAAO,SAAS,CAAC;YAChD,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,OAAO,SAAS,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACrE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAErE,uDAAuD;QACvD,MAAM,cAAc,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,MAAM,cAAc,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,qBAAqB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,oDAAoD;gBAC3G,QAAQ,EAAE,+CAA+C;gBACzD,UAAU,EAAE,iFAAiF;aAC9F,CAAC,CAAC;QACL,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC;gBACV,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,kBAAkB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,sDAAsD;gBAC1G,QAAQ,EAAE,+CAA+C;gBACzD,UAAU,EAAE,yCAAyC;aACtD,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAlOD,4CAkOC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseAgent } from '../base/BaseAgent';
|
|
2
|
+
import { GameBible } from '../../config/schema';
|
|
3
|
+
export interface ModificationResult {
|
|
4
|
+
updatedBible: GameBible;
|
|
5
|
+
changesSummary: string[];
|
|
6
|
+
errors: string[];
|
|
7
|
+
}
|
|
8
|
+
export declare class Modifier extends BaseAgent {
|
|
9
|
+
constructor(apiKey: string, costTracker: any, modelSelector: any);
|
|
10
|
+
execute(bible: GameBible, modificationRequest: string, onProgress?: (message: string) => void): Promise<ModificationResult>;
|
|
11
|
+
private parseResult;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=Modifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modifier.d.ts","sourceRoot":"","sources":["../../../src/agents/core/Modifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAmB,MAAM,qBAAqB,CAAC;AAGjE,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,SAAS,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,QAAS,SAAQ,SAAS;gBACzB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IA2B1D,OAAO,CACX,KAAK,EAAE,SAAS,EAChB,mBAAmB,EAAE,MAAM,EAC3B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,OAAO,CAAC,kBAAkB,CAAC;IAiD9B,OAAO,CAAC,WAAW;CA6DpB"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Modifier = void 0;
|
|
4
|
+
const BaseAgent_1 = require("../base/BaseAgent");
|
|
5
|
+
const modelSelector_1 = require("../../utils/modelSelector");
|
|
6
|
+
const schema_1 = require("../../config/schema");
|
|
7
|
+
const zod_1 = require("zod");
|
|
8
|
+
class Modifier extends BaseAgent_1.BaseAgent {
|
|
9
|
+
constructor(apiKey, costTracker, modelSelector) {
|
|
10
|
+
const config = {
|
|
11
|
+
systemPrompt: `You are the Modification Agent, responsible for applying user-requested changes to Game Design Documents.
|
|
12
|
+
|
|
13
|
+
Your role is to:
|
|
14
|
+
1. Understand the user's modification request in natural language
|
|
15
|
+
2. Apply targeted changes to the GameBible JSON
|
|
16
|
+
3. Preserve existing design intent unless explicitly asked to change it
|
|
17
|
+
4. Add new features/entities if requested
|
|
18
|
+
5. Remove or modify existing elements as requested
|
|
19
|
+
|
|
20
|
+
Rules:
|
|
21
|
+
1. Keep all existing data unless the modification explicitly affects it
|
|
22
|
+
2. When adding new features, follow existing naming conventions
|
|
23
|
+
3. Maintain ID patterns: FEAT-XXX, NPC-XXX, ITEM-XXX, MON-XXX, INT-XXX
|
|
24
|
+
4. Ensure dependencies are properly updated when adding/removing features
|
|
25
|
+
5. When removing features, also remove references to them from dependencies
|
|
26
|
+
6. Preserve the overall structure and schema compliance
|
|
27
|
+
7. Make the minimum changes needed to fulfill the request
|
|
28
|
+
|
|
29
|
+
Output ONLY raw JSON, no markdown code blocks, no commentary.
|
|
30
|
+
Do NOT wrap the JSON in \`\`\`json or \`\`\` tags.`,
|
|
31
|
+
temperature: 0.4
|
|
32
|
+
};
|
|
33
|
+
super(apiKey, config, costTracker, modelSelector);
|
|
34
|
+
}
|
|
35
|
+
async execute(bible, modificationRequest, onProgress) {
|
|
36
|
+
const prompt = `Apply the following modification to this Game Design Document.
|
|
37
|
+
|
|
38
|
+
## User's Modification Request:
|
|
39
|
+
${modificationRequest}
|
|
40
|
+
|
|
41
|
+
## Current GameBible:
|
|
42
|
+
${JSON.stringify(bible, null, 2)}
|
|
43
|
+
|
|
44
|
+
## Instructions:
|
|
45
|
+
1. Carefully read and understand the user's modification request
|
|
46
|
+
2. Apply the requested changes to the GameBible
|
|
47
|
+
3. Maintain consistency with the existing design
|
|
48
|
+
4. Update any related dependencies or references
|
|
49
|
+
5. Keep all unaffected sections unchanged
|
|
50
|
+
|
|
51
|
+
## Response Format:
|
|
52
|
+
{
|
|
53
|
+
"updatedBible": { /* Complete GameBible with modifications applied */ },
|
|
54
|
+
"changesSummary": ["Brief description of change 1", "Brief description of change 2"],
|
|
55
|
+
"errors": ["Any issues encountered while applying changes"]
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
CRITICAL SCHEMA RULES for updatedBible:
|
|
59
|
+
- mathFormulas/balanceFormulas MUST use this structure:
|
|
60
|
+
{
|
|
61
|
+
"expression": "result = input1 * input2",
|
|
62
|
+
"variables": {
|
|
63
|
+
"varName": {"type": "int|float|bool", "range": "min-max"}
|
|
64
|
+
},
|
|
65
|
+
"validated": false,
|
|
66
|
+
"balanceNotes": "optional notes"
|
|
67
|
+
}
|
|
68
|
+
- The field is "expression" NOT "formula" or "name"
|
|
69
|
+
- "variables" is an OBJECT keyed by variable name, NOT an array
|
|
70
|
+
- multiplayer.playerCount must be a STRING like "2-8", NOT an object
|
|
71
|
+
- Variable types must be exactly: "int", "float", or "bool"
|
|
72
|
+
|
|
73
|
+
Output only valid JSON. Apply the requested modifications completely.`;
|
|
74
|
+
const result = await this.callLLMWithAutoRetry(prompt, modelSelector_1.TaskComplexity.COMPLEX, {
|
|
75
|
+
initialMaxTokens: 32000,
|
|
76
|
+
maxRetries: 2,
|
|
77
|
+
onProgress
|
|
78
|
+
});
|
|
79
|
+
return this.parseResult(result.content, bible);
|
|
80
|
+
}
|
|
81
|
+
parseResult(content, originalBible) {
|
|
82
|
+
let jsonStr = content.trim();
|
|
83
|
+
// Handle markdown code blocks
|
|
84
|
+
const codeBlockMatch = content.match(/```(?:json)?\n?([\s\S]*?)\n?```/);
|
|
85
|
+
if (codeBlockMatch) {
|
|
86
|
+
jsonStr = codeBlockMatch[1].trim();
|
|
87
|
+
}
|
|
88
|
+
// Find JSON object boundaries
|
|
89
|
+
if (!jsonStr.startsWith('{')) {
|
|
90
|
+
const firstBrace = jsonStr.indexOf('{');
|
|
91
|
+
const lastBrace = jsonStr.lastIndexOf('}');
|
|
92
|
+
if (firstBrace !== -1 && lastBrace > firstBrace) {
|
|
93
|
+
jsonStr = jsonStr.substring(firstBrace, lastBrace + 1);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
const parsed = JSON.parse(jsonStr);
|
|
98
|
+
// Validate the updated bible against schema
|
|
99
|
+
if (parsed.updatedBible) {
|
|
100
|
+
try {
|
|
101
|
+
const validated = schema_1.GameBibleSchema.parse(parsed.updatedBible);
|
|
102
|
+
return {
|
|
103
|
+
updatedBible: validated,
|
|
104
|
+
changesSummary: parsed.changesSummary || [],
|
|
105
|
+
errors: parsed.errors || []
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
catch (zodError) {
|
|
109
|
+
if (zodError instanceof zod_1.ZodError) {
|
|
110
|
+
// Schema validation failed - return original bible
|
|
111
|
+
return {
|
|
112
|
+
updatedBible: originalBible,
|
|
113
|
+
changesSummary: [],
|
|
114
|
+
errors: [
|
|
115
|
+
'Modification output failed schema validation',
|
|
116
|
+
...zodError.errors.slice(0, 3).map((e) => `${e.path.join('.')}: ${e.message}`)
|
|
117
|
+
]
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
throw zodError;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// No updatedBible in response
|
|
124
|
+
return {
|
|
125
|
+
updatedBible: originalBible,
|
|
126
|
+
changesSummary: [],
|
|
127
|
+
errors: ['Modification response did not contain updatedBible']
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
// JSON parsing failed - return original bible unchanged
|
|
132
|
+
return {
|
|
133
|
+
updatedBible: originalBible,
|
|
134
|
+
changesSummary: [],
|
|
135
|
+
errors: ['Failed to parse modification response']
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
exports.Modifier = Modifier;
|
|
141
|
+
//# sourceMappingURL=Modifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modifier.js","sourceRoot":"","sources":["../../../src/agents/core/Modifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { BaseAgent } from '../base/BaseAgent';
|
|
|
2
2
|
import { GameBible } from '../../config/schema';
|
|
3
3
|
import { ChaosIssue } from './Chaos';
|
|
4
4
|
import { ConsistencyIssue } from './Consistency';
|
|
5
|
+
import { IssueWithNotes } from '../../types/issueReview';
|
|
5
6
|
export interface RemediationResult {
|
|
6
7
|
updatedBible: GameBible;
|
|
7
8
|
fixedIssues: string[];
|
|
@@ -9,8 +10,9 @@ export interface RemediationResult {
|
|
|
9
10
|
}
|
|
10
11
|
export declare class Remediation extends BaseAgent {
|
|
11
12
|
constructor(apiKey: string, costTracker: any, modelSelector: any);
|
|
12
|
-
execute(bible: GameBible,
|
|
13
|
+
execute(bible: GameBible, consistencyIssuesOrWithNotes: ConsistencyIssue[] | IssueWithNotes[], chaosIssuesOrProgress?: ChaosIssue[] | ((message: string) => void), onProgress?: (message: string) => void): Promise<RemediationResult>;
|
|
13
14
|
private formatIssues;
|
|
15
|
+
private formatIssuesWithNotes;
|
|
14
16
|
private parseResult;
|
|
15
17
|
}
|
|
16
18
|
//# sourceMappingURL=Remediation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Remediation.d.ts","sourceRoot":"","sources":["../../../src/agents/core/Remediation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAmB,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Remediation.d.ts","sourceRoot":"","sources":["../../../src/agents/core/Remediation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAmB,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGzD,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,SAAS,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,qBAAa,WAAY,SAAQ,SAAS;gBAC5B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IA4B1D,OAAO,CACX,KAAK,EAAE,SAAS,EAChB,4BAA4B,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,EACnE,qBAAqB,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,EAClE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,OAAO,CAAC,iBAAiB,CAAC;IAyE7B,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,qBAAqB;IA6B7B,OAAO,CAAC,WAAW;CA6DpB"}
|
|
@@ -15,6 +15,7 @@ Your role is to:
|
|
|
15
15
|
2. Apply targeted fixes to the GameBible JSON
|
|
16
16
|
3. Preserve the original design intent while resolving conflicts
|
|
17
17
|
4. Prioritize critical issues over minor ones
|
|
18
|
+
5. Follow any custom user instructions provided for specific issues
|
|
18
19
|
|
|
19
20
|
Rules:
|
|
20
21
|
1. NEVER remove features entirely - only modify them to fix issues
|
|
@@ -24,6 +25,7 @@ Rules:
|
|
|
24
25
|
5. Keep all existing data unless it directly causes the reported issue
|
|
25
26
|
6. For scope issues, adjust asset counts or estimatedScope field appropriately
|
|
26
27
|
7. For gameplay issues, add missing mechanics or clarify existing ones
|
|
28
|
+
8. When a user provides custom notes for an issue, follow their instructions as the primary guidance
|
|
27
29
|
|
|
28
30
|
Output ONLY raw JSON, no markdown code blocks, no commentary.
|
|
29
31
|
Do NOT wrap the JSON in \`\`\`json or \`\`\` tags.`,
|
|
@@ -31,8 +33,26 @@ Do NOT wrap the JSON in \`\`\`json or \`\`\` tags.`,
|
|
|
31
33
|
};
|
|
32
34
|
super(apiKey, config, costTracker, modelSelector);
|
|
33
35
|
}
|
|
34
|
-
async execute(bible,
|
|
35
|
-
|
|
36
|
+
async execute(bible, consistencyIssuesOrWithNotes, chaosIssuesOrProgress, onProgress) {
|
|
37
|
+
let issuesDescription;
|
|
38
|
+
let progressCallback;
|
|
39
|
+
// Check if using new IssueWithNotes[] signature
|
|
40
|
+
if (consistencyIssuesOrWithNotes.length > 0 &&
|
|
41
|
+
('consistencyIssue' in consistencyIssuesOrWithNotes[0] ||
|
|
42
|
+
'chaosIssue' in consistencyIssuesOrWithNotes[0])) {
|
|
43
|
+
// New signature: IssueWithNotes[]
|
|
44
|
+
const issuesWithNotes = consistencyIssuesOrWithNotes;
|
|
45
|
+
issuesDescription = this.formatIssuesWithNotes(issuesWithNotes);
|
|
46
|
+
progressCallback =
|
|
47
|
+
typeof chaosIssuesOrProgress === 'function' ? chaosIssuesOrProgress : undefined;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// Legacy signature: separate arrays
|
|
51
|
+
const consistencyIssues = consistencyIssuesOrWithNotes;
|
|
52
|
+
const chaosIssues = chaosIssuesOrProgress || [];
|
|
53
|
+
issuesDescription = this.formatIssues(consistencyIssues, chaosIssues);
|
|
54
|
+
progressCallback = onProgress;
|
|
55
|
+
}
|
|
36
56
|
const prompt = `Fix the following issues in this Game Design Document.
|
|
37
57
|
|
|
38
58
|
## Issues to Fix:
|
|
@@ -57,11 +77,26 @@ ${JSON.stringify(bible, null, 2)}
|
|
|
57
77
|
"unfixableIssues": ["Issue that cannot be automatically fixed"]
|
|
58
78
|
}
|
|
59
79
|
|
|
80
|
+
CRITICAL SCHEMA RULES for updatedBible:
|
|
81
|
+
- mathFormulas/balanceFormulas MUST use this structure:
|
|
82
|
+
{
|
|
83
|
+
"expression": "result = input1 * input2",
|
|
84
|
+
"variables": {
|
|
85
|
+
"varName": {"type": "int|float|bool", "range": "min-max"}
|
|
86
|
+
},
|
|
87
|
+
"validated": false,
|
|
88
|
+
"balanceNotes": "optional notes"
|
|
89
|
+
}
|
|
90
|
+
- The field is "expression" NOT "formula" or "name"
|
|
91
|
+
- "variables" is an OBJECT keyed by variable name, NOT an array
|
|
92
|
+
- multiplayer.playerCount must be a STRING like "2-8", NOT an object
|
|
93
|
+
- Variable types must be exactly: "int", "float", or "bool"
|
|
94
|
+
|
|
60
95
|
Output only valid JSON. Apply ALL fixes you can to the bible.`;
|
|
61
96
|
const result = await this.callLLMWithAutoRetry(prompt, modelSelector_1.TaskComplexity.COMPLEX, {
|
|
62
97
|
initialMaxTokens: 32000,
|
|
63
98
|
maxRetries: 2,
|
|
64
|
-
onProgress
|
|
99
|
+
onProgress: progressCallback
|
|
65
100
|
});
|
|
66
101
|
return this.parseResult(result.content, bible);
|
|
67
102
|
}
|
|
@@ -88,6 +123,31 @@ Output only valid JSON. Apply ALL fixes you can to the bible.`;
|
|
|
88
123
|
}
|
|
89
124
|
return lines.join('\n');
|
|
90
125
|
}
|
|
126
|
+
formatIssuesWithNotes(issuesWithNotes) {
|
|
127
|
+
const lines = [];
|
|
128
|
+
issuesWithNotes.forEach((item, idx) => {
|
|
129
|
+
if (item.consistencyIssue) {
|
|
130
|
+
const issue = item.consistencyIssue;
|
|
131
|
+
lines.push(`${idx + 1}. [${issue.severity}] Consistency Issue: ${issue.message}`);
|
|
132
|
+
lines.push(` Location: ${issue.location}`);
|
|
133
|
+
if (issue.suggestion) {
|
|
134
|
+
lines.push(` Suggestion: ${issue.suggestion}`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
else if (item.chaosIssue) {
|
|
138
|
+
const issue = item.chaosIssue;
|
|
139
|
+
lines.push(`${idx + 1}. [${issue.severity}] ${issue.category} Issue: ${issue.description}`);
|
|
140
|
+
lines.push(` Location: ${issue.location}`);
|
|
141
|
+
lines.push(` Recommendation: ${issue.recommendation}`);
|
|
142
|
+
}
|
|
143
|
+
// Add custom notes if provided - this is key for user instructions
|
|
144
|
+
if (item.customNotes) {
|
|
145
|
+
lines.push(` >>> USER INSTRUCTIONS: ${item.customNotes}`);
|
|
146
|
+
}
|
|
147
|
+
lines.push(''); // Blank line between issues
|
|
148
|
+
});
|
|
149
|
+
return lines.join('\n');
|
|
150
|
+
}
|
|
91
151
|
parseResult(content, originalBible) {
|
|
92
152
|
let jsonStr = content.trim();
|
|
93
153
|
// Handle markdown code blocks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Remediation.js","sourceRoot":"","sources":["../../../src/agents/core/Remediation.ts"],"names":[],"mappings":";;;AAAA,iDAA2D;AAC3D,6DAA2D;AAC3D,gDAAiE;
|
|
1
|
+
{"version":3,"file":"Remediation.js","sourceRoot":"","sources":["../../../src/agents/core/Remediation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreativeSpecialist.d.ts","sourceRoot":"","sources":["../../../src/agents/specialists/CreativeSpecialist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"CreativeSpecialist.d.ts","sourceRoot":"","sources":["../../../src/agents/specialists/CreativeSpecialist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IAa1D,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;CAgIzF"}
|