gameforge-cli 0.1.0 → 0.2.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 (88) hide show
  1. package/README.md +117 -44
  2. package/dist/agents/base/BaseAgent.d.ts +31 -0
  3. package/dist/agents/base/BaseAgent.d.ts.map +1 -1
  4. package/dist/agents/base/BaseAgent.js +57 -0
  5. package/dist/agents/base/BaseAgent.js.map +1 -1
  6. package/dist/agents/core/Architect.d.ts +21 -5
  7. package/dist/agents/core/Architect.d.ts.map +1 -1
  8. package/dist/agents/core/Architect.js +413 -150
  9. package/dist/agents/core/Architect.js.map +1 -1
  10. package/dist/agents/core/Chaos.d.ts +4 -0
  11. package/dist/agents/core/Chaos.d.ts.map +1 -1
  12. package/dist/agents/core/Chaos.js +46 -11
  13. package/dist/agents/core/Chaos.js.map +1 -1
  14. package/dist/agents/core/Consistency.d.ts +1 -0
  15. package/dist/agents/core/Consistency.d.ts.map +1 -1
  16. package/dist/agents/core/Consistency.js +86 -11
  17. package/dist/agents/core/Consistency.js.map +1 -1
  18. package/dist/agents/core/DocumentUpdater.d.ts +13 -0
  19. package/dist/agents/core/DocumentUpdater.d.ts.map +1 -0
  20. package/dist/agents/core/DocumentUpdater.js +165 -0
  21. package/dist/agents/core/DocumentUpdater.js.map +1 -0
  22. package/dist/agents/core/Modifier.d.ts +13 -0
  23. package/dist/agents/core/Modifier.d.ts.map +1 -0
  24. package/dist/agents/core/Modifier.js +141 -0
  25. package/dist/agents/core/Modifier.js.map +1 -0
  26. package/dist/agents/core/Remediation.d.ts +3 -1
  27. package/dist/agents/core/Remediation.d.ts.map +1 -1
  28. package/dist/agents/core/Remediation.js +63 -3
  29. package/dist/agents/core/Remediation.js.map +1 -1
  30. package/dist/agents/specialists/CreativeSpecialist.d.ts.map +1 -1
  31. package/dist/agents/specialists/CreativeSpecialist.js +162 -25
  32. package/dist/agents/specialists/CreativeSpecialist.js.map +1 -1
  33. package/dist/agents/specialists/EntitySpecialist.d.ts.map +1 -1
  34. package/dist/agents/specialists/EntitySpecialist.js +79 -25
  35. package/dist/agents/specialists/EntitySpecialist.js.map +1 -1
  36. package/dist/agents/specialists/FeatureSpecialist.d.ts +4 -0
  37. package/dist/agents/specialists/FeatureSpecialist.d.ts.map +1 -1
  38. package/dist/agents/specialists/FeatureSpecialist.js +114 -39
  39. package/dist/agents/specialists/FeatureSpecialist.js.map +1 -1
  40. package/dist/agents/specialists/TechSpecialist.d.ts.map +1 -1
  41. package/dist/agents/specialists/TechSpecialist.js +169 -32
  42. package/dist/agents/specialists/TechSpecialist.js.map +1 -1
  43. package/dist/config/schema.d.ts +1319 -709
  44. package/dist/config/schema.d.ts.map +1 -1
  45. package/dist/config/schema.js +142 -52
  46. package/dist/config/schema.js.map +1 -1
  47. package/dist/config/templates.d.ts.map +1 -1
  48. package/dist/config/templates.js +6 -66
  49. package/dist/config/templates.js.map +1 -1
  50. package/dist/core/Orchestrator.d.ts +17 -3
  51. package/dist/core/Orchestrator.d.ts.map +1 -1
  52. package/dist/core/Orchestrator.js +46 -16
  53. package/dist/core/Orchestrator.js.map +1 -1
  54. package/dist/index.js +544 -226
  55. package/dist/index.js.map +1 -1
  56. package/dist/types/issueReview.d.ts +19 -0
  57. package/dist/types/issueReview.d.ts.map +1 -0
  58. package/dist/types/issueReview.js +3 -0
  59. package/dist/types/issueReview.js.map +1 -0
  60. package/dist/utils/costTracker.d.ts +28 -0
  61. package/dist/utils/costTracker.d.ts.map +1 -1
  62. package/dist/utils/costTracker.js +71 -1
  63. package/dist/utils/costTracker.js.map +1 -1
  64. package/dist/utils/disambiguationHelper.d.ts +54 -0
  65. package/dist/utils/disambiguationHelper.d.ts.map +1 -0
  66. package/dist/utils/disambiguationHelper.js +262 -0
  67. package/dist/utils/disambiguationHelper.js.map +1 -0
  68. package/dist/utils/fileManager.d.ts +7 -0
  69. package/dist/utils/fileManager.d.ts.map +1 -1
  70. package/dist/utils/fileManager.js +47 -0
  71. package/dist/utils/fileManager.js.map +1 -1
  72. package/dist/utils/issueReviewer.d.ts +10 -0
  73. package/dist/utils/issueReviewer.d.ts.map +1 -0
  74. package/dist/utils/issueReviewer.js +206 -0
  75. package/dist/utils/issueReviewer.js.map +1 -0
  76. package/dist/utils/issueSelector.d.ts +26 -0
  77. package/dist/utils/issueSelector.d.ts.map +1 -0
  78. package/dist/utils/issueSelector.js +132 -0
  79. package/dist/utils/issueSelector.js.map +1 -0
  80. package/dist/utils/pdfGenerator.d.ts +12 -0
  81. package/dist/utils/pdfGenerator.d.ts.map +1 -0
  82. package/dist/utils/pdfGenerator.js +341 -0
  83. package/dist/utils/pdfGenerator.js.map +1 -0
  84. package/package.json +20 -15
  85. package/dist/core/CheckpointManager.d.ts +0 -16
  86. package/dist/core/CheckpointManager.d.ts.map +0 -1
  87. package/dist/core/CheckpointManager.js +0 -52
  88. package/dist/core/CheckpointManager.js.map +0 -1
@@ -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":";;;AAAA,iDAA2D;AAC3D,6DAA2D;AAC3D,gDAAiE;AACjE,6BAA+B;AAQ/B,MAAa,QAAS,SAAQ,qBAAS;IACrC,YAAY,MAAc,EAAE,WAAgB,EAAE,aAAkB;QAC9D,MAAM,MAAM,GAAgB;YAC1B,YAAY,EAAE;;;;;;;;;;;;;;;;;;;mDAmB+B;YAC7C,WAAW,EAAE,GAAG;SACjB,CAAC;QACF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,OAAO,CACX,KAAgB,EAChB,mBAA2B,EAC3B,UAAsC;QAEtC,MAAM,MAAM,GAAG;;;EAGjB,mBAAmB;;;EAGnB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sEA+BsC,CAAC;QAEnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,8BAAc,CAAC,OAAO,EAAE;YAC7E,gBAAgB,EAAE,KAAK;YACvB,UAAU,EAAE,CAAC;YACb,UAAU;SACX,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAEO,WAAW,CAAC,OAAe,EAAE,aAAwB;QAC3D,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAE7B,8BAA8B;QAC9B,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACxE,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,SAAS,GAAG,UAAU,EAAE,CAAC;gBAChD,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEnC,4CAA4C;YAC5C,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,wBAAe,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBAC7D,OAAO;wBACL,YAAY,EAAE,SAAS;wBACvB,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE;wBAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;qBAC5B,CAAC;gBACJ,CAAC;gBAAC,OAAO,QAAQ,EAAE,CAAC;oBAClB,IAAI,QAAQ,YAAY,cAAQ,EAAE,CAAC;wBACjC,mDAAmD;wBACnD,OAAO;4BACL,YAAY,EAAE,aAAa;4BAC3B,cAAc,EAAE,EAAE;4BAClB,MAAM,EAAE;gCACN,8CAA8C;gCAC9C,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;6BAC/E;yBACF,CAAC;oBACJ,CAAC;oBACD,MAAM,QAAQ,CAAC;gBACjB,CAAC;YACH,CAAC;YAED,8BAA8B;YAC9B,OAAO;gBACL,YAAY,EAAE,aAAa;gBAC3B,cAAc,EAAE,EAAE;gBAClB,MAAM,EAAE,CAAC,oDAAoD,CAAC;aAC/D,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;YACxD,OAAO;gBACL,YAAY,EAAE,aAAa;gBAC3B,cAAc,EAAE,EAAE;gBAClB,MAAM,EAAE,CAAC,uCAAuC,CAAC;aAClD,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AA9ID,4BA8IC"}
@@ -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, consistencyIssues: ConsistencyIssue[], chaosIssues: ChaosIssue[], onProgress?: (message: string) => void): Promise<RemediationResult>;
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;AAGjD,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;IA0B1D,OAAO,CACX,KAAK,EAAE,SAAS,EAChB,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,WAAW,EAAE,UAAU,EAAE,EACzB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,OAAO,CAAC,iBAAiB,CAAC;IAsC7B,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,WAAW;CA6DpB"}
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, consistencyIssues, chaosIssues, onProgress) {
35
- const issuesDescription = this.formatIssues(consistencyIssues, chaosIssues);
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;AAGjE,6BAA+B;AAQ/B,MAAa,WAAY,SAAQ,qBAAS;IACxC,YAAY,MAAc,EAAE,WAAgB,EAAE,aAAkB;QAC9D,MAAM,MAAM,GAAgB;YAC1B,YAAY,EAAE;;;;;;;;;;;;;;;;;;mDAkB+B;YAC7C,WAAW,EAAE,GAAG;SACjB,CAAC;QACF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,OAAO,CACX,KAAgB,EAChB,iBAAqC,EACrC,WAAyB,EACzB,UAAsC;QAEtC,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAE5E,MAAM,MAAM,GAAG;;;EAGjB,iBAAiB;;;EAGjB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;;;8DAkB8B,CAAC;QAE3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,8BAAc,CAAC,OAAO,EAAE;YAC7E,gBAAgB,EAAE,KAAK;YACvB,UAAU,EAAE,CAAC;YACb,UAAU;SACX,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAEO,YAAY,CAClB,iBAAqC,EACrC,WAAyB;QAEzB,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACnD,iBAAiB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACvC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/D,KAAK,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC7C,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;oBACrB,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YAChD,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACjC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;gBACtF,KAAK,CAAC,IAAI,CAAC,gBAAgB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC7C,KAAK,CAAC,IAAI,CAAC,sBAAsB,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,WAAW,CAAC,OAAe,EAAE,aAAwB;QAC3D,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAE7B,8BAA8B;QAC9B,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACxE,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrC,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,SAAS,GAAG,UAAU,EAAE,CAAC;gBAChD,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEnC,4CAA4C;YAC5C,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,wBAAe,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBAC7D,OAAO;wBACL,YAAY,EAAE,SAAS;wBACvB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;wBACrC,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,EAAE;qBAC9C,CAAC;gBACJ,CAAC;gBAAC,OAAO,QAAQ,EAAE,CAAC;oBAClB,IAAI,QAAQ,YAAY,cAAQ,EAAE,CAAC;wBACjC,mDAAmD;wBACnD,OAAO;4BACL,YAAY,EAAE,aAAa;4BAC3B,WAAW,EAAE,EAAE;4BACf,eAAe,EAAE;gCACf,6CAA6C;gCAC7C,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;6BAC7E;yBACF,CAAC;oBACJ,CAAC;oBACD,MAAM,QAAQ,CAAC;gBACjB,CAAC;YACH,CAAC;YAED,8BAA8B;YAC9B,OAAO;gBACL,YAAY,EAAE,aAAa;gBAC3B,WAAW,EAAE,EAAE;gBACf,eAAe,EAAE,CAAC,mDAAmD,CAAC;aACvE,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;YACxD,OAAO;gBACL,YAAY,EAAE,aAAa;gBAC3B,WAAW,EAAE,EAAE;gBACf,eAAe,EAAE,CAAC,sCAAsC,CAAC;aAC1D,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAjKD,kCAiKC"}
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;IAc1D,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;CAiDzF"}
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;CA6NzF"}
@@ -7,38 +7,163 @@ class CreativeSpecialist extends BaseAgent_1.BaseAgent {
7
7
  constructor(apiKey, costTracker, modelSelector) {
8
8
  const config = {
9
9
  systemPrompt: `You are a Creative Direction Specialist.
10
- Generate detailed creative documentation including:
11
- - Art style guides
12
- - Audio mood boards
13
- - Asset requirements breakdown
14
- - Pipeline and workflow
10
+ Generate creative vision documentation including:
11
+ - Art style description and mood
12
+ - Audio direction and tone
13
+ - Asset quantity estimates
15
14
 
16
- Be descriptive and provide actionable direction for artists.`
15
+ Focus on the creative vision, not production pipeline details.`
17
16
  };
18
17
  super(apiKey, config, costTracker, modelSelector);
19
18
  }
20
19
  async execute(bible, onProgress) {
21
- const prompt = `Generate comprehensive creative direction documentation:
20
+ if (!bible.creative) {
21
+ return '# Creative Direction\n\n*No creative specifications provided for this design document.*';
22
+ }
23
+ // Per-category MAXIMUM thresholds - only flag if exceeded (not minimums)
24
+ const scope = bible.meta.estimatedScope;
25
+ const assetMaxThresholds = {
26
+ 'Prototype': {
27
+ characters: 4, environments: 2, props: 15, ui: 15,
28
+ sfx: 20, music: 5, animations: 20, cards: 30, vehicles: 3
29
+ },
30
+ 'Vertical Slice': {
31
+ characters: 6, environments: 3, props: 30, ui: 20,
32
+ sfx: 40, music: 8, animations: 40, cards: 60, vehicles: 5
33
+ },
34
+ 'MVP': {
35
+ characters: 10, environments: 5, props: 60, ui: 35,
36
+ sfx: 60, music: 12, animations: 60, cards: 80, vehicles: 10
37
+ },
38
+ 'Full Game': {
39
+ characters: 25, environments: 15, props: 200, ui: 75,
40
+ sfx: 150, music: 30, animations: 200, cards: 200, vehicles: 25
41
+ }
42
+ };
43
+ const thresholds = assetMaxThresholds[scope] || assetMaxThresholds['MVP'];
44
+ const reqs = bible.creative.assetRequirements;
45
+ const overages = [];
46
+ // Check each category against its max threshold
47
+ if (reqs.characters > thresholds.characters) {
48
+ overages.push(`characters (${reqs.characters} > ${thresholds.characters} max)`);
49
+ }
50
+ if (reqs.environments > thresholds.environments) {
51
+ overages.push(`environments (${reqs.environments} > ${thresholds.environments} max)`);
52
+ }
53
+ if (reqs.props > thresholds.props) {
54
+ overages.push(`props (${reqs.props} > ${thresholds.props} max)`);
55
+ }
56
+ if (reqs.ui > thresholds.ui) {
57
+ overages.push(`UI elements (${reqs.ui} > ${thresholds.ui} max)`);
58
+ }
59
+ if (reqs.sfx > thresholds.sfx) {
60
+ overages.push(`SFX (${reqs.sfx} > ${thresholds.sfx} max)`);
61
+ }
62
+ if (reqs.music > thresholds.music) {
63
+ overages.push(`music tracks (${reqs.music} > ${thresholds.music} max)`);
64
+ }
65
+ if (reqs.animations && reqs.animations > thresholds.animations) {
66
+ overages.push(`animations (${reqs.animations} > ${thresholds.animations} max)`);
67
+ }
68
+ if (reqs.cards && reqs.cards > thresholds.cards) {
69
+ overages.push(`cards (${reqs.cards} > ${thresholds.cards} max)`);
70
+ }
71
+ if (reqs.vehicles && reqs.vehicles > thresholds.vehicles) {
72
+ overages.push(`vehicles (${reqs.vehicles} > ${thresholds.vehicles} max)`);
73
+ }
74
+ if (overages.length > 0) {
75
+ await this.askClarification(`The following asset categories exceed typical limits for a "${scope}" scope:\n\n${overages.map(o => `- ${o}`).join('\n')}`, bible, 'Asset Scope');
76
+ }
77
+ // Check for art style-genre mismatch
78
+ const genres = bible.meta.genre.map((g) => g.toLowerCase());
79
+ const artStyle = bible.creative.artStyle.toLowerCase();
80
+ // Horror game check - more nuanced to allow horror-comedy or intentional contrast
81
+ if (genres.some((g) => g.includes('horror'))) {
82
+ // Only flag if BOTH bright/cheerful AND no indication of comedy/intentional contrast
83
+ const hasConflictingStyle = (artStyle.includes('bright') || artStyle.includes('cheerful') || artStyle.includes('colorful')) &&
84
+ !artStyle.includes('contrast') && !artStyle.includes('ironic');
85
+ const isHorrorComedy = genres.some((g) => g.includes('comedy')) || artStyle.includes('comedy');
86
+ if (hasConflictingStyle && !isHorrorComedy) {
87
+ const result = await this.askClarification(`Art style "${bible.creative.artStyle}" seems unusual for a horror game. Is this intentional (e.g., horror-comedy, ironic contrast)?`, bible, 'Art Style Genre Match');
88
+ const decision = (result.answer || '').toLowerCase();
89
+ if (decision.includes('comedy') || decision.includes('ironic') || decision.includes('contrast')) {
90
+ onProgress?.('Unconventional horror art style acknowledged as intentional design choice');
91
+ }
92
+ else if (decision.includes('change') || decision.includes('darken')) {
93
+ onProgress?.('Note: Consider darkening art style to match horror atmosphere');
94
+ }
95
+ }
96
+ }
97
+ if (genres.some((g) => g.includes('realistic') || g.includes('simulation') || g.includes('military'))) {
98
+ if (artStyle.includes('stylized') || artStyle.includes('anime') ||
99
+ artStyle.includes('cartoon') || artStyle.includes('cute')) {
100
+ const result = await this.askClarification(`Art style "${bible.creative.artStyle}" seems unusual for a ${genres.join('/')} game. Is this intentional?`, bible, 'Art Style Realism');
101
+ const decision = (result.answer || '').toLowerCase();
102
+ if (decision.includes('yes') || decision.includes('intentional') || decision.includes('stylized')) {
103
+ onProgress?.('Stylized art for realistic game acknowledged as design choice');
104
+ }
105
+ }
106
+ }
107
+ if (genres.some((g) => g.includes('serious') || g.includes('tactical'))) {
108
+ if (artStyle.includes('cute') || artStyle.includes('whimsical') ||
109
+ artStyle.includes('playful')) {
110
+ const result = await this.askClarification(`Art style "${bible.creative.artStyle}" seems unusual for a serious/tactical game. Is this a deliberate contrast?`, bible, 'Art Style Tone');
111
+ const decision = (result.answer || '').toLowerCase();
112
+ if (decision.includes('yes') || decision.includes('deliberate') || decision.includes('contrast')) {
113
+ onProgress?.('Contrasting art style acknowledged as deliberate design choice');
114
+ }
115
+ else {
116
+ onProgress?.('Note: Consider aligning art style with serious/tactical tone');
117
+ }
118
+ }
119
+ }
120
+ // Check for audio-genre mismatch
121
+ const audioMood = bible.creative.audioMood.toLowerCase();
122
+ if (genres.some((g) => g.includes('horror'))) {
123
+ if (audioMood.includes('upbeat') || audioMood.includes('cheerful') ||
124
+ audioMood.includes('lighthearted') || audioMood.includes('happy')) {
125
+ const result = await this.askClarification(`Audio mood "${bible.creative.audioMood}" seems unusual for a horror game. Is this intentional?`, bible, 'Audio Mood Genre Match');
126
+ const decision = (result.answer || '').toLowerCase();
127
+ if (decision.includes('yes') || decision.includes('intentional') || decision.includes('contrast')) {
128
+ onProgress?.('Unconventional horror audio mood acknowledged as design choice');
129
+ }
130
+ }
131
+ }
132
+ if (genres.some((g) => g.includes('puzzle') || g.includes('relaxing'))) {
133
+ if (audioMood.includes('intense') || audioMood.includes('aggressive') ||
134
+ audioMood.includes('heavy metal') || audioMood.includes('chaotic')) {
135
+ const result = await this.askClarification(`Audio mood "${bible.creative.audioMood}" seems unusual for a ${genres.join('/')} game. Is this intentional?`, bible, 'Audio Mood Intensity');
136
+ const decision = (result.answer || '').toLowerCase();
137
+ if (decision.includes('yes') || decision.includes('intentional') || decision.includes('tension')) {
138
+ onProgress?.('High-intensity audio for puzzle game acknowledged as design choice');
139
+ }
140
+ else {
141
+ onProgress?.('Note: Consider calmer audio mood for puzzle/relaxing game');
142
+ }
143
+ }
144
+ }
145
+ const prompt = `Generate creative direction documentation focused on vision and mood:
22
146
 
23
- Creative Spec: ${JSON.stringify(bible.creative, null, 2)}
24
147
  Game: ${bible.meta.title} (${bible.meta.genre.join(', ')})
148
+ Creative Spec: ${JSON.stringify(bible.creative, null, 2)}
25
149
 
26
- Create markdown with these sections:
150
+ Create a markdown document with these sections:
27
151
 
28
- # 01. Creative Direction
152
+ # Creative Direction
29
153
 
30
- ## Art Style
31
- ${bible.creative.artStyle}
154
+ ## Art Style & Visual Identity
155
+ Expand on: "${bible.creative.artStyle}"
156
+ Describe the visual mood, color palette suggestions, and aesthetic influences in 2-3 paragraphs. Focus on the feeling and tone, not technical specifications like texture resolutions or polygon counts.
32
157
 
33
- ## Audio Mood
34
- ${bible.creative.audioMood}
158
+ ## Audio Direction
159
+ Expand on: "${bible.creative.audioMood}"
160
+ Describe the music style, sound design approach, and audio atmosphere in 2-3 paragraphs. Focus on the emotional impact and player experience.
35
161
 
36
- ${bible.creative.referenceLinks && bible.creative.referenceLinks.length > 0 ? `
37
- ## References
162
+ ${bible.creative.referenceLinks && bible.creative.referenceLinks.length > 0 ? `## Visual & Audio References
38
163
  ${bible.creative.referenceLinks.map(link => `- ${link}`).join('\n')}
39
164
  ` : ''}
40
165
 
41
- ## Asset Requirements
166
+ ## Estimated Asset Counts
42
167
 
43
168
  | Category | Quantity |
44
169
  |----------|----------|
@@ -48,18 +173,30 @@ ${bible.creative.referenceLinks.map(link => `- ${link}`).join('\n')}
48
173
  | UI Elements | ${bible.creative.assetRequirements.ui} |
49
174
  | Sound Effects | ${bible.creative.assetRequirements.sfx} |
50
175
  | Music Tracks | ${bible.creative.assetRequirements.music} |
176
+ ${bible.creative.assetRequirements.vehicles !== undefined ? `| Vehicles | ${bible.creative.assetRequirements.vehicles} |` : ''}
177
+ ${bible.creative.assetRequirements.cards !== undefined ? `| Cards | ${bible.creative.assetRequirements.cards} |` : ''}
178
+ ${bible.creative.assetRequirements.animations !== undefined ? `| Animations | ${bible.creative.assetRequirements.animations} |` : ''}
51
179
 
52
- **Total Assets**: ${Object.values(bible.creative.assetRequirements).reduce((a, b) => a + b, 0)}
53
-
54
- ## Production Pipeline
180
+ ${bible.creative.visualNovel ? `## Visual Novel Style
181
+ ${bible.creative.visualNovel.artStyle2D ? `Art approach: ${bible.creative.visualNovel.artStyle2D}` : ''}
182
+ Describe the visual novel aesthetic and character presentation style.
183
+ ` : ''}
55
184
 
56
- **Tools Required**: ${bible.creative.pipeline.toolsRequired.join(', ')}
185
+ ${bible.creative.horror ? `## Horror Atmosphere
186
+ ${bible.creative.horror.atmosphere ? `Mood: ${bible.creative.horror.atmosphere}` : ''}
187
+ ${bible.creative.horror.lighting ? `Lighting approach: ${bible.creative.horror.lighting}` : ''}
188
+ Describe how the visual and audio design creates tension and fear.
189
+ ` : ''}
57
190
 
58
- ${bible.creative.pipeline.workflowNotes ? `**Workflow Notes**: ${bible.creative.pipeline.workflowNotes}` : ''}
191
+ IMPORTANT: Focus on the creative VISION and MOOD. Do NOT include:
192
+ - Production pipeline or workflow details
193
+ - Tool lists or software requirements
194
+ - Technical specifications (texture sizes, poly counts, etc.)
195
+ - File naming conventions or directory structures
59
196
 
60
- Expand each section with practical guidance for the art team.`;
61
- const result = await this.callLLMWithAutoRetry(prompt, modelSelector_1.TaskComplexity.MODERATE, {
62
- initialMaxTokens: 16000,
197
+ Keep the document concise (2-3 pages max) and focused on inspiring the creative team.`;
198
+ const result = await this.callLLMWithAutoRetry(prompt, modelSelector_1.TaskComplexity.SIMPLE, {
199
+ initialMaxTokens: 6000,
63
200
  maxRetries: 2,
64
201
  onProgress: onProgress
65
202
  });
@@ -1 +1 @@
1
- {"version":3,"file":"CreativeSpecialist.js","sourceRoot":"","sources":["../../../src/agents/specialists/CreativeSpecialist.ts"],"names":[],"mappings":";;;AAAA,iDAA2D;AAC3D,6DAA2D;AAG3D,MAAa,kBAAmB,SAAQ,qBAAS;IAC/C,YAAY,MAAc,EAAE,WAAgB,EAAE,aAAkB;QAC9D,MAAM,MAAM,GAAgB;YAC1B,YAAY,EAAE;;;;;;;6DAOyC;SACxD,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,MAAM,GAAG;;iBAEF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;EAOtD,KAAK,CAAC,QAAQ,CAAC,QAAQ;;;EAGvB,KAAK,CAAC,QAAQ,CAAC,SAAS;;EAExB,KAAK,CAAC,QAAQ,CAAC,cAAc,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;;EAE5E,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CAClE,CAAC,CAAC,CAAC,EAAE;;;;;;iBAMW,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,UAAU;mBACzC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY;YACpD,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK;kBAChC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;oBACjC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG;mBACrC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK;;oBAErC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;;;;sBAIxE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;;EAEpE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,uBAAuB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE;;8DAE/C,CAAC;QAE3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,8BAAc,CAAC,QAAQ,EAAE;YAC9E,gBAAgB,EAAE,KAAK;YACvB,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,UAAU;SACvB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;CACF;AAhED,gDAgEC"}
1
+ {"version":3,"file":"CreativeSpecialist.js","sourceRoot":"","sources":["../../../src/agents/specialists/CreativeSpecialist.ts"],"names":[],"mappings":";;;AAAA,iDAA2D;AAC3D,6DAA2D;AAG3D,MAAa,kBAAmB,SAAQ,qBAAS;IAC/C,YAAY,MAAc,EAAE,WAAgB,EAAE,aAAkB;QAC9D,MAAM,MAAM,GAAgB;YAC1B,YAAY,EAAE;;;;;;+DAM2C;SAC1D,CAAC;QACF,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAgB,EAAE,UAAsC;QACpE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,yFAAyF,CAAC;QACnG,CAAC;QAED,yEAAyE;QACzE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;QACxC,MAAM,kBAAkB,GAA2C;YACjE,WAAW,EAAE;gBACX,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;gBACjD,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;aAC1D;YACD,gBAAgB,EAAE;gBAChB,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;gBACjD,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;aAC1D;YACD,KAAK,EAAE;gBACL,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;gBAClD,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE;aAC5D;YACD,WAAW,EAAE;gBACX,UAAU,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE;gBACpD,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;aAC/D;SACF,CAAC;QAEF,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC9C,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,gDAAgD;QAChD,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;YAC5C,QAAQ,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,UAAU,MAAM,UAAU,CAAC,UAAU,OAAO,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;YAChD,QAAQ,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,YAAY,MAAM,UAAU,CAAC,YAAY,OAAO,CAAC,CAAC;QACxF,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,MAAM,UAAU,CAAC,KAAK,OAAO,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,EAAE,MAAM,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,MAAM,UAAU,CAAC,GAAG,OAAO,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,MAAM,UAAU,CAAC,KAAK,OAAO,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;YAC/D,QAAQ,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,UAAU,MAAM,UAAU,CAAC,UAAU,OAAO,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;YAChD,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,MAAM,UAAU,CAAC,KAAK,OAAO,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;YACzD,QAAQ,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,QAAQ,MAAM,UAAU,CAAC,QAAQ,OAAO,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,gBAAgB,CACzB,+DAA+D,KAAK,eAAe,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC3H,KAAK,EACL,aAAa,CACd,CAAC;QACJ,CAAC;QAED,qCAAqC;QACrC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEvD,kFAAkF;QAClF,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACrD,qFAAqF;YACrF,MAAM,mBAAmB,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC/F,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC3F,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAEvG,IAAI,mBAAmB,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACxC,cAAc,KAAK,CAAC,QAAQ,CAAC,QAAQ,gGAAgG,EACrI,KAAK,EACL,uBAAuB,CACxB,CAAC;gBACF,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBACrD,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAChG,UAAU,EAAE,CAAC,2EAA2E,CAAC,CAAC;gBAC5F,CAAC;qBAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACtE,UAAU,EAAE,CAAC,+DAA+D,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAC9G,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC3D,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACxC,cAAc,KAAK,CAAC,QAAQ,CAAC,QAAQ,yBAAyB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,EAC3G,KAAK,EACL,mBAAmB,CACpB,CAAC;gBACF,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBACrD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAClG,UAAU,EAAE,CAAC,+DAA+D,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAChF,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAC3D,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACxC,cAAc,KAAK,CAAC,QAAQ,CAAC,QAAQ,6EAA6E,EAClH,KAAK,EACL,gBAAgB,CACjB,CAAC;gBACF,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBACrD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACjG,UAAU,EAAE,CAAC,gEAAgE,CAAC,CAAC;gBACjF,CAAC;qBAAM,CAAC;oBACN,UAAU,EAAE,CAAC,8DAA8D,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QAEzD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACrD,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAC9D,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACxC,eAAe,KAAK,CAAC,QAAQ,CAAC,SAAS,yDAAyD,EAChG,KAAK,EACL,wBAAwB,CACzB,CAAC;gBACF,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBACrD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAClG,UAAU,EAAE,CAAC,gEAAgE,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAC/E,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACjE,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CACxC,eAAe,KAAK,CAAC,QAAQ,CAAC,SAAS,yBAAyB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,6BAA6B,EAC7G,KAAK,EACL,sBAAsB,CACvB,CAAC;gBACF,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;gBACrD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACjG,UAAU,EAAE,CAAC,oEAAoE,CAAC,CAAC;gBACrF,CAAC;qBAAM,CAAC;oBACN,UAAU,EAAE,CAAC,2DAA2D,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG;;QAEX,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;iBACvC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;;;;;;;cAO1C,KAAK,CAAC,QAAQ,CAAC,QAAQ;;;;cAIvB,KAAK,CAAC,QAAQ,CAAC,SAAS;;;EAGpC,KAAK,CAAC,QAAQ,CAAC,cAAc,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;EAC5E,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CAClE,CAAC,CAAC,CAAC,EAAE;;;;;;iBAMW,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,UAAU;mBACzC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY;YACpD,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK;kBAChC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;oBACjC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG;mBACrC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK;EACvD,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE;EAC5H,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE;EACnH,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,EAAE;;EAElI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;EAC7B,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,iBAAiB,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;;CAEtG,CAAC,CAAC,CAAC,EAAE;;EAEJ,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;EACxB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE;EACnF,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;;CAE7F,CAAC,CAAC,CAAC,EAAE;;;;;;;;sFAQgF,CAAC;QAEnF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,8BAAc,CAAC,MAAM,EAAE;YAC5E,gBAAgB,EAAE,IAAI;YACtB,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,UAAU;SACvB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;CACF;AA3OD,gDA2OC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntitySpecialist.d.ts","sourceRoot":"","sources":["../../../src/agents/specialists/EntitySpecialist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAU,MAAM,qBAAqB,CAAC;AAExD,qBAAa,gBAAiB,SAAQ,SAAS;gBACjC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IAc1D,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;YAqB1E,iBAAiB;CAoChC"}
1
+ {"version":3,"file":"EntitySpecialist.d.ts","sourceRoot":"","sources":["../../../src/agents/specialists/EntitySpecialist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAU,MAAM,qBAAqB,CAAC;AAExD,qBAAa,gBAAiB,SAAQ,SAAS;gBACjC,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;YA4F1E,iBAAiB;CA4ChC"}