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.
Files changed (75) hide show
  1. package/README.md +81 -41
  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 +17 -5
  7. package/dist/agents/core/Architect.d.ts.map +1 -1
  8. package/dist/agents/core/Architect.js +263 -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/Modifier.d.ts +13 -0
  19. package/dist/agents/core/Modifier.d.ts.map +1 -0
  20. package/dist/agents/core/Modifier.js +141 -0
  21. package/dist/agents/core/Modifier.js.map +1 -0
  22. package/dist/agents/core/Remediation.d.ts +3 -1
  23. package/dist/agents/core/Remediation.d.ts.map +1 -1
  24. package/dist/agents/core/Remediation.js +63 -3
  25. package/dist/agents/core/Remediation.js.map +1 -1
  26. package/dist/agents/specialists/CreativeSpecialist.d.ts.map +1 -1
  27. package/dist/agents/specialists/CreativeSpecialist.js +94 -25
  28. package/dist/agents/specialists/CreativeSpecialist.js.map +1 -1
  29. package/dist/agents/specialists/EntitySpecialist.d.ts.map +1 -1
  30. package/dist/agents/specialists/EntitySpecialist.js +63 -25
  31. package/dist/agents/specialists/EntitySpecialist.js.map +1 -1
  32. package/dist/agents/specialists/FeatureSpecialist.d.ts.map +1 -1
  33. package/dist/agents/specialists/FeatureSpecialist.js +53 -39
  34. package/dist/agents/specialists/FeatureSpecialist.js.map +1 -1
  35. package/dist/agents/specialists/TechSpecialist.d.ts.map +1 -1
  36. package/dist/agents/specialists/TechSpecialist.js +69 -32
  37. package/dist/agents/specialists/TechSpecialist.js.map +1 -1
  38. package/dist/config/schema.d.ts +1319 -709
  39. package/dist/config/schema.d.ts.map +1 -1
  40. package/dist/config/schema.js +142 -52
  41. package/dist/config/schema.js.map +1 -1
  42. package/dist/config/templates.d.ts.map +1 -1
  43. package/dist/config/templates.js +6 -66
  44. package/dist/config/templates.js.map +1 -1
  45. package/dist/core/Orchestrator.d.ts +17 -3
  46. package/dist/core/Orchestrator.d.ts.map +1 -1
  47. package/dist/core/Orchestrator.js +46 -16
  48. package/dist/core/Orchestrator.js.map +1 -1
  49. package/dist/index.js +335 -195
  50. package/dist/index.js.map +1 -1
  51. package/dist/types/issueReview.d.ts +19 -0
  52. package/dist/types/issueReview.d.ts.map +1 -0
  53. package/dist/types/issueReview.js +3 -0
  54. package/dist/types/issueReview.js.map +1 -0
  55. package/dist/utils/costTracker.d.ts +28 -0
  56. package/dist/utils/costTracker.d.ts.map +1 -1
  57. package/dist/utils/costTracker.js +71 -1
  58. package/dist/utils/costTracker.js.map +1 -1
  59. package/dist/utils/disambiguationHelper.d.ts +54 -0
  60. package/dist/utils/disambiguationHelper.d.ts.map +1 -0
  61. package/dist/utils/disambiguationHelper.js +252 -0
  62. package/dist/utils/disambiguationHelper.js.map +1 -0
  63. package/dist/utils/issueReviewer.d.ts +6 -0
  64. package/dist/utils/issueReviewer.d.ts.map +1 -0
  65. package/dist/utils/issueReviewer.js +159 -0
  66. package/dist/utils/issueReviewer.js.map +1 -0
  67. package/dist/utils/issueSelector.d.ts +26 -0
  68. package/dist/utils/issueSelector.d.ts.map +1 -0
  69. package/dist/utils/issueSelector.js +132 -0
  70. package/dist/utils/issueSelector.js.map +1 -0
  71. package/package.json +1 -1
  72. package/dist/core/CheckpointManager.d.ts +0 -16
  73. package/dist/core/CheckpointManager.d.ts.map +0 -1
  74. package/dist/core/CheckpointManager.js +0 -52
  75. package/dist/core/CheckpointManager.js.map +0 -1
package/README.md CHANGED
@@ -7,13 +7,15 @@ GameForge CLI is a terminal-based AI pipeline that turns raw game ideas into com
7
7
  ## Features
8
8
 
9
9
  - 🤖 **AI-Powered Interview**: Hybrid question system with smart defaults
10
+ - ❓ **Disambiguation**: Agents ask clarifying questions when needed
10
11
  - 📊 **Structured Output**: Valid JSON + readable Markdown
11
12
  - 💰 **Cost Tracking**: Real-time budget monitoring and warnings
12
13
  - 💾 **Checkpoint System**: Save and resume at any phase
13
14
  - 📚 **Genre Templates**: Quick-start templates for common game types
14
- - ✅ **Validation**: Consistency checking + adversarial gap analysis
15
+ - ✅ **Validation**: Consistency checking + adversarial gap analysis + interactive issue review
15
16
  - 🎯 **Technical Specs**: Math formulas, data structures, user stories
16
17
  - 🎨 **Multi-Agent System**: Specialized agents for features, entities, creative, and technical specs
18
+ - 🔧 **Modifier Agent**: Edit existing GDDs with natural language requests
17
19
 
18
20
  ## Installation
19
21
 
@@ -132,22 +134,62 @@ The **Architect Agent** transforms your answers into a validated `GameBible` JSO
132
134
  - Technical requirements (engine, tools, localization)
133
135
 
134
136
  ### Phase 3: Production
135
- Four specialist agents run in parallel to generate detailed Markdown docs:
137
+ Four specialist agents run in sequence to generate detailed Markdown docs:
136
138
  1. **Creative Specialist** - Art style, asset lists, pipeline
137
139
  2. **Feature Specialist** - Mermaid diagrams, math formulas, data structures
138
140
  3. **Entity Specialist** - NPC/Item/Monster stat tables
139
141
  4. **Tech Specialist** - Engine setup, tools, directory structure
140
142
 
141
143
  ### Phase 4: Validation & Remediation
142
- Three-layer validation with optional auto-fix:
144
+ Three-layer validation with interactive issue review:
143
145
  1. **Consistency Agent** - Checks dependencies, naming conventions, circular refs
144
146
  2. **Chaos Agent** - Adversarial critic finding gameplay gaps and scope issues
145
- 3. **Remediation Agent** - Automatically fixes identified issues (up to 3 attempts)
147
+ 3. **Interactive Issue Review** - Review each issue one-by-one and select which to fix
148
+ 4. **Remediation Agent** - Automatically fixes selected issues (up to 3 attempts per issue)
149
+
150
+ At the review gate, you can:
151
+ - Review issues individually with context and descriptions
152
+ - Select which issues to fix and which to keep
153
+ - Run the Remediation Agent on selected issues only
154
+ - Export the final GDD with gap analysis showing any unfixable issues
155
+
156
+ ### Disambiguation System
157
+
158
+ Throughout the pipeline, agents can ask clarifying questions when they encounter ambiguity. This ensures the final GDD accurately reflects your vision.
159
+
160
+ **When Disambiguation Triggers:**
161
+ - **Architect**: Vague scope, unclear monetization, minimal art direction
162
+ - **Chaos**: Critical issues with vague recommendations
163
+ - **Feature Specialist**: Features marked as "Very High" complexity
164
+ - **Entity Specialist**: Entity count exceeds reasonable scope
165
+ - **Creative Specialist**: Asset requirements seem unrealistic for scope
166
+ - **Tech Specialist**: Multi-platform targeting in early projects
167
+
168
+ **Question Format:**
169
+ Each disambiguation question provides:
170
+ 1. **2 AI-generated suggestions** - Context-aware options based on your game
171
+ 2. **✨ AI Decide** - Let AI choose with reasoning
172
+ 3. **✏️ Custom Answer** - Use your system editor for detailed input
173
+
174
+ **Example:**
175
+ ```
176
+ ❓ The feature "Multiplayer Networking" is marked as "Very High" complexity.
177
+
178
+ Select an option:
179
+ › Keep it as-is and proceed
180
+ Simplify to peer-to-peer only
181
+ ✨ AI Decide (Smart Default)
182
+ ✏️ Custom Answer
183
+ ```
184
+
185
+ The AI Decide option provides reasoning:
186
+ ```
187
+ 🤖 AI Suggests: Simplify to peer-to-peer only
188
+ Reasoning: For a Prototype scope, full client-server architecture
189
+ would significantly increase complexity. P2P is faster to implement.
146
190
 
147
- At the review gate, you can choose to:
148
- - **Save** - Export the GDD as-is
149
- - **Fix** - Run the Remediation Agent to automatically resolve issues
150
- - **Exit** - Quit without saving
191
+ Accept this suggestion? (Y/n)
192
+ ```
151
193
 
152
194
  ### Output Structure
153
195
 
@@ -158,7 +200,7 @@ At the review gate, you can choose to:
158
200
  ├── Feature_Specifications.md # All features with diagrams
159
201
  ├── Entity_Specifications.md # NPCs, items, monsters
160
202
  ├── Technical_Specifications.md # Engine, tools, build
161
- ├── 99_Gap_Analysis.md # Validation issues
203
+ ├── 99_Gap_Analysis.md # Unfixable validation issues (if any)
162
204
  ├── game_bible.json # Complete structured data
163
205
  └── Game_Design_Document.md # Combined GDD with table of contents
164
206
  ```
@@ -266,12 +308,22 @@ npm run build
266
308
  npm run dev
267
309
  ```
268
310
 
269
- ### Run Tests (when implemented)
311
+ ### Run Tests
270
312
 
271
313
  ```bash
314
+ # Run all tests (18 unit tests + integration tests)
272
315
  npm test
316
+
317
+ # Run specific test suites
318
+ npm test tests/unit
319
+ npm test tests/integration
320
+
321
+ # Watch mode
322
+ npm test -- --watch
273
323
  ```
274
324
 
325
+ See [tests/README.md](tests/README.md) for detailed testing documentation.
326
+
275
327
  ### Lint
276
328
 
277
329
  ```bash
@@ -300,6 +352,22 @@ gameforge resume <session-id>
300
352
  gameforge resume <checkpoint-id>
301
353
  ```
302
354
 
355
+ ### Modify Existing GDD
356
+
357
+ ```bash
358
+ # Modify an existing Game Design Document
359
+ gameforge modify <session-id>
360
+
361
+ # Enable debug logging
362
+ gameforge modify <session-id> --debug
363
+ ```
364
+
365
+ The modify command allows you to make changes to previously generated GDDs using natural language. The Modifier agent will:
366
+ - Understand your requested changes
367
+ - Update the GameBible while preserving design intent
368
+ - Maintain ID naming conventions and dependency integrity
369
+ - Regenerate affected documentation sections
370
+
303
371
  ## Limitations & Known Issues
304
372
 
305
373
  - PDF export not yet available (Markdown only)
@@ -309,43 +377,15 @@ gameforge resume <checkpoint-id>
309
377
 
310
378
  ## Roadmap
311
379
 
380
+ - [x] Interactive editing mode (Modifier agent implemented)
381
+ - [x] Interactive issue review system
312
382
  - [ ] PDF export using Puppeteer
313
383
  - [ ] Notion/Confluence integration
314
- - [ ] Interactive editing mode (iterative refinement)
315
384
  - [ ] Team collaboration features
316
385
  - [ ] Asset generation integration (DALL-E, Midjourney)
317
386
  - [ ] More genre templates
318
387
  - [ ] Multi-language support
319
-
320
- ## Publishing to NPM
321
-
322
- ### First-time Setup
323
-
324
- ```bash
325
- # Login to NPM (create account at npmjs.com if needed)
326
- npm login
327
- ```
328
-
329
- ### Publish a Release
330
-
331
- ```bash
332
- # Make sure everything builds cleanly
333
- npm run build
334
-
335
- # Bump version (choose patch, minor, or major)
336
- npm version patch # 0.1.0 -> 0.1.1
337
- npm version minor # 0.1.0 -> 0.2.0
338
- npm version major # 0.1.0 -> 1.0.0
339
-
340
- # Publish to NPM
341
- npm publish
342
- ```
343
-
344
- After publishing, users can install globally with:
345
-
346
- ```bash
347
- npm install -g gameforge-cli
348
- ```
388
+ - [ ] Enhanced remediation strategies
349
389
 
350
390
  ## Contributing
351
391
 
@@ -1,6 +1,14 @@
1
1
  import Anthropic from '@anthropic-ai/sdk';
2
2
  import { CostTracker } from '../../utils/costTracker';
3
3
  import { TaskComplexity, ModelSelector } from '../../utils/modelSelector';
4
+ import { DisambiguationHelper, DisambiguationResult } from '../../utils/disambiguationHelper';
5
+ import { GameBible } from '../../config/schema';
6
+ import { SpinnerControl } from '../../core/Orchestrator';
7
+ type TranscriptEntry = {
8
+ question: string;
9
+ answer: string;
10
+ autoGenerated?: boolean;
11
+ };
4
12
  export interface AgentConfig {
5
13
  systemPrompt: string;
6
14
  temperature?: number;
@@ -11,8 +19,30 @@ export declare abstract class BaseAgent {
11
19
  protected config: AgentConfig;
12
20
  protected costTracker: CostTracker;
13
21
  protected modelSelector: ModelSelector;
22
+ protected disambiguationHelper: DisambiguationHelper;
23
+ protected skipDisambiguation: boolean;
24
+ protected spinnerControl: SpinnerControl | null;
14
25
  constructor(apiKey: string, config: AgentConfig, costTracker: CostTracker, modelSelector: ModelSelector);
15
26
  protected getAgentName(): string;
27
+ /**
28
+ * Set whether to skip disambiguation prompts.
29
+ * When true, askClarification will return an auto-generated answer instead of prompting the user.
30
+ */
31
+ setSkipDisambiguation(skip: boolean): void;
32
+ /**
33
+ * Set the spinner control for auto-pausing during user interactions.
34
+ */
35
+ setSpinnerControl(control: SpinnerControl | null): void;
36
+ /**
37
+ * Ask the user a clarifying question when the agent encounters ambiguity.
38
+ * This provides a consistent UX across all agents for disambiguation.
39
+ *
40
+ * @param question The question to ask
41
+ * @param context The game context (can be GameBible, transcript, or formatted string)
42
+ * @param category Optional category for logging/debugging
43
+ * @returns The user's answer and whether it was AI-generated
44
+ */
45
+ protected askClarification(question: string, context: GameBible | TranscriptEntry[] | string, category?: string): Promise<DisambiguationResult>;
16
46
  protected callLLM(prompt: string, complexity: TaskComplexity, options?: {
17
47
  maxTokens?: number;
18
48
  temperature?: number;
@@ -42,4 +72,5 @@ export declare abstract class BaseAgent {
42
72
  protected sleep(ms: number): Promise<void>;
43
73
  abstract execute(...args: any[]): Promise<any>;
44
74
  }
75
+ export {};
45
76
  //# sourceMappingURL=BaseAgent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAgent.d.ts","sourceRoot":"","sources":["../../../src/agents/base/BaseAgent.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1E,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,8BAAsB,SAAS;IAC7B,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;IAC5B,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;IACnC,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC;gBAGrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa;IAS9B,SAAS,CAAC,YAAY,IAAI,MAAM;cAIhB,OAAO,CACrB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,cAAc,EAC1B,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;KAAO,GACjG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,WAAW,EAAE,UAAU,GAAG,YAAY,GAAG,eAAe,CAAA;KAAE,CAAC;IA+EjJ,OAAO,CAAC,mBAAmB;cAKX,KAAK,CAAC,CAAC,EACrB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,WAAW,GAAE,MAAU,GACtB,OAAO,CAAC,CAAC,CAAC;cAiBG,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,cAAc,EAC1B,OAAO,GAAE;QACP,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;KACnC,GACL,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAiFvF,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;CAC/C"}
1
+ {"version":3,"file":"BaseAgent.d.ts","sourceRoot":"","sources":["../../../src/agents/base/BaseAgent.ts"],"names":[],"mappings":"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"}
@@ -6,21 +6,78 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.BaseAgent = void 0;
7
7
  const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
8
8
  const debugLogger_1 = require("../../utils/debugLogger");
9
+ const disambiguationHelper_1 = require("../../utils/disambiguationHelper");
9
10
  class BaseAgent {
10
11
  client;
11
12
  config;
12
13
  costTracker;
13
14
  modelSelector;
15
+ disambiguationHelper;
16
+ skipDisambiguation = false;
17
+ spinnerControl = null;
14
18
  constructor(apiKey, config, costTracker, modelSelector) {
15
19
  this.client = new sdk_1.default({ apiKey });
16
20
  this.config = config;
17
21
  this.costTracker = costTracker;
18
22
  this.modelSelector = modelSelector;
23
+ this.disambiguationHelper = new disambiguationHelper_1.DisambiguationHelper(apiKey);
19
24
  }
20
25
  // Get agent name for logging
21
26
  getAgentName() {
22
27
  return this.constructor.name;
23
28
  }
29
+ /**
30
+ * Set whether to skip disambiguation prompts.
31
+ * When true, askClarification will return an auto-generated answer instead of prompting the user.
32
+ */
33
+ setSkipDisambiguation(skip) {
34
+ this.skipDisambiguation = skip;
35
+ }
36
+ /**
37
+ * Set the spinner control for auto-pausing during user interactions.
38
+ */
39
+ setSpinnerControl(control) {
40
+ this.spinnerControl = control;
41
+ }
42
+ /**
43
+ * Ask the user a clarifying question when the agent encounters ambiguity.
44
+ * This provides a consistent UX across all agents for disambiguation.
45
+ *
46
+ * @param question The question to ask
47
+ * @param context The game context (can be GameBible, transcript, or formatted string)
48
+ * @param category Optional category for logging/debugging
49
+ * @returns The user's answer and whether it was AI-generated
50
+ */
51
+ async askClarification(question, context, category) {
52
+ // Format context appropriately
53
+ let contextStr;
54
+ if (typeof context === 'string') {
55
+ contextStr = context;
56
+ }
57
+ else if (Array.isArray(context)) {
58
+ // It's likely a transcript
59
+ contextStr = disambiguationHelper_1.DisambiguationHelper.formatTranscriptContext(context);
60
+ }
61
+ else {
62
+ // It's likely a GameBible or similar object
63
+ contextStr = disambiguationHelper_1.DisambiguationHelper.formatGameContext(context);
64
+ }
65
+ const disambiguationQuestion = {
66
+ question,
67
+ context: contextStr,
68
+ category: category || this.getAgentName()
69
+ };
70
+ // If skipDisambiguation is set, return a default answer without prompting
71
+ if (this.skipDisambiguation) {
72
+ return { answer: 'Skipped (post-remediation regeneration)', wasAIGenerated: true };
73
+ }
74
+ // Auto-pause spinner before prompting user
75
+ this.spinnerControl?.pause();
76
+ const result = await this.disambiguationHelper.ask(disambiguationQuestion);
77
+ // Auto-resume spinner after user responds
78
+ this.spinnerControl?.resume();
79
+ return result;
80
+ }
24
81
  async callLLM(prompt, complexity, options = {}) {
25
82
  const budgetReport = this.costTracker.getReport();
26
83
  const model = this.modelSelector.selectModel(complexity, budgetReport.remaining);
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAgent.js","sourceRoot":"","sources":["../../../src/agents/base/BaseAgent.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA0C;AAG1C,yDAAsD;AAQtD,MAAsB,SAAS;IACnB,MAAM,CAAY;IAClB,MAAM,CAAc;IACpB,WAAW,CAAc;IACzB,aAAa,CAAgB;IAEvC,YACE,MAAc,EACd,MAAmB,EACnB,WAAwB,EACxB,aAA4B;QAE5B,IAAI,CAAC,MAAM,GAAG,IAAI,aAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,6BAA6B;IACnB,YAAY;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAES,KAAK,CAAC,OAAO,CACrB,MAAc,EACd,UAA0B,EAC1B,UAAgG,EAAE;QAElG,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACjF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE/E,+BAA+B;QAC/B,OAAO,CAAC,UAAU,EAAE,CAAC,oBAAoB,CAAC,CAAC;QAC3C,MAAM,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CACjD,oBAAoB,EACpB,SAAS,EACT,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;YAC3F,MAAM,IAAI,KAAK,CACb,yCAAyC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CACtH,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;QACnE,OAAO,CAAC,UAAU,EAAE,CAAC,WAAW,SAAS,UAAU,oBAAoB,sBAAsB,SAAS,aAAa,CAAC,CAAC;QAErH,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,GAAG,CAAC;QAE1E,6BAA6B;QAC7B,IAAI,yBAAW,CAAC,SAAS,EAAE,EAAE,CAAC;YAC5B,yBAAW,CAAC,aAAa,CAAC;gBACxB,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE;gBAC1B,KAAK,EAAE,SAAS;gBAChB,SAAS;gBACT,WAAW;gBACX,aAAa,EAAE,MAAM;aACtB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjD,KAAK;YACL,UAAU,EAAE,SAAS;YACrB,WAAW;YACX,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YAChC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SAC9C,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAE1C,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;YAClC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;SACrC,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM;YACjD,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;YAC1B,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO,CAAC,UAAU,EAAE,CAAC,YAAY,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;QAExD,sEAAsE;QACtE,IAAI,yBAAW,CAAC,SAAS,EAAE,EAAE,CAAC;YAC5B,yBAAW,CAAC,cAAc,CAAC;gBACzB,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE;gBAC1B,UAAU,EAAE,QAAQ,CAAC,WAAW,IAAI,SAAS;gBAC7C,WAAW,EAAE,KAAK,CAAC,KAAK;gBACxB,YAAY,EAAE,KAAK,CAAC,MAAM;gBAC1B,UAAU;gBACV,cAAc,EAAE,OAAO;gBACvB,WAAW,EAAE,OAAO,CAAC,6CAA6C;aACnE,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,OAAO;YACP,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE;YACjE,WAAW,EAAE,QAAQ,CAAC,WAA0D;SACjF,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,IAAY;QACtC,0CAA0C;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IAES,KAAK,CAAC,KAAK,CACnB,SAA2B,EAC3B,cAAsB,CAAC;QAEvB,IAAI,SAAS,GAAiB,IAAI,CAAC;QAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,CAAC;gBACH,OAAO,MAAM,SAAS,EAAE,CAAC;YAC3B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,GAAG,KAAc,CAAC;gBAC3B,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;oBAC1B,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,sBAAsB;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,SAAS,CAAC;IAClB,CAAC;IAES,KAAK,CAAC,oBAAoB,CAClC,MAAc,EACd,UAA0B,EAC1B,UAKI,EAAE;QAEN,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACjF,IAAI,SAAS,GAAG,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpF,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;QAC3C,IAAI,qBAAqB,GAAG,KAAK,CAAC,CAAC,qCAAqC;QAExE,OAAO,OAAO,GAAG,UAAU,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;YAEV,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,OAAO,CAAC,UAAU,EAAE,CAAC,SAAS,OAAO,IAAI,UAAU,SAAS,SAAS,8CAA8C,CAAC,CAAC;YACvH,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE;oBACtD,SAAS;oBACT,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,UAAU,EAAE,OAAO,CAAC,UAAU;iBAC/B,CAAC,CAAC;gBAEH,wCAAwC;gBACxC,IAAI,QAAQ,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;oBACxC,OAAO,CAAC,UAAU,EAAE,CAAC,sBAAsB,QAAQ,CAAC,KAAK,CAAC,aAAa,UAAU,CAAC,CAAC;oBACnF,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC9D,CAAC;gBAED,yBAAyB;gBACzB,IAAI,QAAQ,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;oBAC1C,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;wBACzB,OAAO,CAAC,UAAU,EAAE,CAAC,yBAAyB,SAAS,4BAA4B,CAAC,CAAC;wBACrF,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,yBAAyB;wBACpD,SAAS,CAAC,0BAA0B;oBACtC,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,kBAAkB,SAAS,4CAA4C,CAAC,CAAC;oBACvI,CAAC;gBACH,CAAC;gBAED,yBAAyB;gBACzB,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;YAE9D,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,2BAA2B;gBAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;oBAC9D,kCAAkC;oBAClC,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBAC3B,qBAAqB,GAAG,IAAI,CAAC;wBAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,yCAAyC,CAAC,CAAC;wBAC7E,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAEpG,OAAO,CAAC,UAAU,EAAE,CAAC,2BAA2B,WAAW,gBAAgB,CAAC,CAAC;wBAE7E,0BAA0B;wBAC1B,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;4BACzC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BAC5C,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gCACX,OAAO,CAAC,UAAU,EAAE,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;4BACzD,CAAC;wBACH,CAAC;wBAED,OAAO,CAAC,UAAU,EAAE,CAAC,+BAA+B,CAAC,CAAC;wBACtD,SAAS,CAAC,sBAAsB;oBAClC,CAAC;yBAAM,CAAC;wBACN,oDAAoD;wBACpD,MAAM,IAAI,KAAK,CAAC;;;;qCAIS,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBAED,yBAAyB;gBACzB,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,gBAAgB,UAAU,WAAW,CAAC,CAAC;IACzD,CAAC;IAES,KAAK,CAAC,EAAU;QACxB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;CAGF;AAlOD,8BAkOC"}
1
+ {"version":3,"file":"BaseAgent.js","sourceRoot":"","sources":["../../../src/agents/base/BaseAgent.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA0C;AAG1C,yDAAsD;AACtD,2EAAsH;AAatH,MAAsB,SAAS;IACnB,MAAM,CAAY;IAClB,MAAM,CAAc;IACpB,WAAW,CAAc;IACzB,aAAa,CAAgB;IAC7B,oBAAoB,CAAuB;IAC3C,kBAAkB,GAAY,KAAK,CAAC;IACpC,cAAc,GAA0B,IAAI,CAAC;IAEvD,YACE,MAAc,EACd,MAAmB,EACnB,WAAwB,EACxB,aAA4B;QAE5B,IAAI,CAAC,MAAM,GAAG,IAAI,aAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,oBAAoB,GAAG,IAAI,2CAAoB,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,6BAA6B;IACnB,YAAY;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,IAAa;QACjC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,OAA8B;QAC9C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAChC,CAAC;IAED;;;;;;;;OAQG;IACO,KAAK,CAAC,gBAAgB,CAC9B,QAAgB,EAChB,OAA+C,EAC/C,QAAiB;QAEjB,+BAA+B;QAC/B,IAAI,UAAkB,CAAC;QACvB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,UAAU,GAAG,OAAO,CAAC;QACvB,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,2BAA2B;YAC3B,UAAU,GAAG,2CAAoB,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,4CAA4C;YAC5C,UAAU,GAAG,2CAAoB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,sBAAsB,GAA2B;YACrD,QAAQ;YACR,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;SAC1C,CAAC;QAEF,0EAA0E;QAC1E,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,OAAO,EAAE,MAAM,EAAE,yCAAyC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;QACrF,CAAC;QAED,2CAA2C;QAC3C,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC;QAE7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAE3E,0CAA0C;QAC1C,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QAE9B,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,KAAK,CAAC,OAAO,CACrB,MAAc,EACd,UAA0B,EAC1B,UAAgG,EAAE;QAElG,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACjF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE/E,+BAA+B;QAC/B,OAAO,CAAC,UAAU,EAAE,CAAC,oBAAoB,CAAC,CAAC;QAC3C,MAAM,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CACjD,oBAAoB,EACpB,SAAS,EACT,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;YAC3F,MAAM,IAAI,KAAK,CACb,yCAAyC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CACtH,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;QACnE,OAAO,CAAC,UAAU,EAAE,CAAC,WAAW,SAAS,UAAU,oBAAoB,sBAAsB,SAAS,aAAa,CAAC,CAAC;QAErH,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,GAAG,CAAC;QAE1E,6BAA6B;QAC7B,IAAI,yBAAW,CAAC,SAAS,EAAE,EAAE,CAAC;YAC5B,yBAAW,CAAC,aAAa,CAAC;gBACxB,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE;gBAC1B,KAAK,EAAE,SAAS;gBAChB,SAAS;gBACT,WAAW;gBACX,aAAa,EAAE,MAAM;aACtB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjD,KAAK;YACL,UAAU,EAAE,SAAS;YACrB,WAAW;YACX,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YAChC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SAC9C,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAE1C,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY;YAClC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa;SACrC,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM;YACjD,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;YAC1B,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO,CAAC,UAAU,EAAE,CAAC,YAAY,KAAK,CAAC,MAAM,SAAS,CAAC,CAAC;QAExD,sEAAsE;QACtE,IAAI,yBAAW,CAAC,SAAS,EAAE,EAAE,CAAC;YAC5B,yBAAW,CAAC,cAAc,CAAC;gBACzB,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE;gBAC1B,UAAU,EAAE,QAAQ,CAAC,WAAW,IAAI,SAAS;gBAC7C,WAAW,EAAE,KAAK,CAAC,KAAK;gBACxB,YAAY,EAAE,KAAK,CAAC,MAAM;gBAC1B,UAAU;gBACV,cAAc,EAAE,OAAO;gBACvB,WAAW,EAAE,OAAO,CAAC,6CAA6C;aACnE,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,OAAO;YACP,KAAK,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE;YACjE,WAAW,EAAE,QAAQ,CAAC,WAA0D;SACjF,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,IAAY;QACtC,0CAA0C;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IAES,KAAK,CAAC,KAAK,CACnB,SAA2B,EAC3B,cAAsB,CAAC;QAEvB,IAAI,SAAS,GAAiB,IAAI,CAAC;QAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;YACxD,IAAI,CAAC;gBACH,OAAO,MAAM,SAAS,EAAE,CAAC;YAC3B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,SAAS,GAAG,KAAc,CAAC;gBAC3B,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;oBAC1B,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,sBAAsB;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,SAAS,CAAC;IAClB,CAAC;IAES,KAAK,CAAC,oBAAoB,CAClC,MAAc,EACd,UAA0B,EAC1B,UAKI,EAAE;QAEN,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACjF,IAAI,SAAS,GAAG,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACpF,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;QAC3C,IAAI,qBAAqB,GAAG,KAAK,CAAC,CAAC,qCAAqC;QAExE,OAAO,OAAO,GAAG,UAAU,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;YAEV,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,OAAO,CAAC,UAAU,EAAE,CAAC,SAAS,OAAO,IAAI,UAAU,SAAS,SAAS,8CAA8C,CAAC,CAAC;YACvH,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE;oBACtD,SAAS;oBACT,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,UAAU,EAAE,OAAO,CAAC,UAAU;iBAC/B,CAAC,CAAC;gBAEH,wCAAwC;gBACxC,IAAI,QAAQ,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;oBACxC,OAAO,CAAC,UAAU,EAAE,CAAC,sBAAsB,QAAQ,CAAC,KAAK,CAAC,aAAa,UAAU,CAAC,CAAC;oBACnF,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC9D,CAAC;gBAED,yBAAyB;gBACzB,IAAI,QAAQ,CAAC,WAAW,KAAK,YAAY,EAAE,CAAC;oBAC1C,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;wBACzB,OAAO,CAAC,UAAU,EAAE,CAAC,yBAAyB,SAAS,4BAA4B,CAAC,CAAC;wBACrF,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,yBAAyB;wBACpD,SAAS,CAAC,0BAA0B;oBACtC,CAAC;yBAAM,CAAC;wBACN,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,kBAAkB,SAAS,4CAA4C,CAAC,CAAC;oBACvI,CAAC;gBACH,CAAC;gBAED,yBAAyB;gBACzB,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;YAE9D,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,2BAA2B;gBAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;oBAC9D,kCAAkC;oBAClC,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBAC3B,qBAAqB,GAAG,IAAI,CAAC;wBAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,yCAAyC,CAAC,CAAC;wBAC7E,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBAEpG,OAAO,CAAC,UAAU,EAAE,CAAC,2BAA2B,WAAW,gBAAgB,CAAC,CAAC;wBAE7E,0BAA0B;wBAC1B,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;4BACzC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;4BAC5C,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gCACX,OAAO,CAAC,UAAU,EAAE,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;4BACzD,CAAC;wBACH,CAAC;wBAED,OAAO,CAAC,UAAU,EAAE,CAAC,+BAA+B,CAAC,CAAC;wBACtD,SAAS,CAAC,sBAAsB;oBAClC,CAAC;yBAAM,CAAC;wBACN,oDAAoD;wBACpD,MAAM,IAAI,KAAK,CAAC;;;;qCAIS,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBAED,yBAAyB;gBACzB,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,gBAAgB,UAAU,WAAW,CAAC,CAAC;IACzD,CAAC;IAES,KAAK,CAAC,EAAU;QACxB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;CAGF;AArSD,8BAqSC"}
@@ -1,16 +1,28 @@
1
1
  import { BaseAgent } from '../base/BaseAgent';
2
2
  import { GameBible } from '../../config/schema';
3
+ type TranscriptEntry = {
4
+ question: string;
5
+ answer: string;
6
+ autoGenerated: boolean;
7
+ };
3
8
  export declare class Architect extends BaseAgent {
4
9
  constructor(apiKey: string, costTracker: any, modelSelector: any);
5
- execute(transcript: Array<{
6
- question: string;
7
- answer: string;
8
- autoGenerated: boolean;
9
- }>, onProgress?: (message: string) => void): Promise<GameBible>;
10
+ execute(transcript: TranscriptEntry[], onProgress?: (message: string) => void): Promise<GameBible>;
11
+ /**
12
+ * Normalize/coerce common LLM output issues before schema validation.
13
+ * Fixes issues like strings-instead-of-arrays, missing defaults, etc.
14
+ */
15
+ private normalizeGameBible;
16
+ /**
17
+ * Check the transcript for potential ambiguities and ask clarifying questions
18
+ * Returns additional transcript entries with clarifications
19
+ */
20
+ private checkForAmbiguities;
10
21
  private generateMetaAndFeatures;
11
22
  private generateGameObjects;
12
23
  private generateCreativeAndTech;
13
24
  private parseJSON;
14
25
  private getSchemaDescription;
15
26
  }
27
+ export {};
16
28
  //# sourceMappingURL=Architect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Architect.d.ts","sourceRoot":"","sources":["../../../src/agents/core/Architect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAmB,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIjE,qBAAa,SAAU,SAAQ,SAAS;gBAC1B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IAmB1D,OAAO,CACX,UAAU,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,CAAC,EAC/E,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,OAAO,CAAC,SAAS,CAAC;YAuEP,uBAAuB;YAiFvB,mBAAmB;YA0GnB,uBAAuB;IAiFrC,OAAO,CAAC,SAAS;IAoGjB,OAAO,CAAC,oBAAoB;CA8D7B"}
1
+ {"version":3,"file":"Architect.d.ts","sourceRoot":"","sources":["../../../src/agents/core/Architect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAmB,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAKjE,KAAK,eAAe,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpF,qBAAa,SAAU,SAAQ,SAAS;gBAC1B,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG;IAmB1D,OAAO,CACX,UAAU,EAAE,eAAe,EAAE,EAC7B,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACrC,OAAO,CAAC,SAAS,CAAC;IAsFrB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAsG1B;;;OAGG;YACW,mBAAmB;YA0EnB,uBAAuB;YA2EvB,mBAAmB;YA+EnB,uBAAuB;IA6ErC,OAAO,CAAC,SAAS;IAoGjB,OAAO,CAAC,oBAAoB;CA8C7B"}