jiva-core 0.2.1 → 0.2.3

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.
@@ -9,7 +9,8 @@
9
9
  "Bash(jiva:*)",
10
10
  "Bash(npm config:*)",
11
11
  "Bash(echo:*)",
12
- "Bash(/Users/abidev/.npm-global/bin/jiva:*)"
12
+ "Bash(/Users/abidev/.npm-global/bin/jiva:*)",
13
+ "Bash(npm info:*)"
13
14
  ],
14
15
  "deny": [],
15
16
  "ask": []
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 KarmaloopAI
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # Jiva - Versatile Autonomous AI Agent
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/jiva-core.svg)](https://www.npmjs.com/package/jiva-core) [![License](https://img.shields.io/github/license/KarmaloopAI/Jiva.svg)](LICENSE) [![GitHub stars](https://img.shields.io/github/stars/KarmaloopAI/Jiva.svg?style=social&label=Star)](https://github.com/KarmaloopAI/Jiva)
4
+
3
5
  Jiva is a powerful autonomous AI agent powered by gpt-oss-120b with full MCP (Model Context Protocol) support. It's designed to be highly goal-oriented, autonomous, and extensible for various use cases.
4
6
 
5
- ## 🚀 Quick Links
7
+ ## Quick Links
6
8
 
7
9
  - **[Quick Start Guide](docs/QUICKSTART.md)** - Get up and running in 30 seconds
8
10
  - **[Configuration Guide](docs/CONFIGURATION.md)** - Detailed configuration and provider setup
@@ -10,29 +12,35 @@ Jiva is a powerful autonomous AI agent powered by gpt-oss-120b with full MCP (Mo
10
12
  - **[Build Instructions](docs/BUILD.md)** - Detailed setup and development workflow
11
13
  - **[Troubleshooting](docs/TROUBLESHOOTING.md)** - Common issues and solutions
12
14
 
13
- ## ✨ Features
15
+ ## Demo
16
+
17
+ ![Demo](jiva-new-demo.gif)
18
+
19
+ ## Features
14
20
 
15
21
  ### Core Capabilities
16
- - 🤖 **Powered by gpt-oss-120b**: Leverages OpenAI's powerful open-weight reasoning model
17
- - 🔌 **Provider Agnostic**: Works with Krutrim, Groq, OpenAI, Ollama, and any OpenAI-compatible API
18
- - 🎯 **Mission-Driven Execution**: Completes tasks thoroughly with ~95% success rate
19
- - 🔧 **MCP Integration**: Seamless integration with Model Context Protocol servers for extensible tooling
20
- - 💬 **Smart Conversations**: Auto-save, restore, and AI-generated titles for all conversations
21
- - 📝 **Pretty Markdown**: Beautiful terminal output with syntax highlighting
22
- - 🎨 **Directive-Based**: Orient agent behavior with custom `jiva-directive.md` files
23
- - 🌐 **Multi-Modal Support**: Optional image understanding via Llama-4-Maverick-17B
24
- - 🔄 **Auto-Condensing**: Intelligent conversation history management to prevent token overload
25
-
26
- ### Advanced Features
22
+ - **Dual-Agent Architecture**: Manager + Worker pattern for reliable task execution and planning
23
+ - **Provider Agnostic**: Works with Krutrim, Groq, OpenAI, Ollama, and any OpenAI-compatible API
24
+ - **Three-Phase Execution**: Planning Execution Synthesis for structured task completion
25
+ - **MCP Integration**: Seamless integration with Model Context Protocol servers for extensible tooling
26
+ - **Smart Conversations**: Auto-save, restore, and AI-generated titles for all conversations
27
+ - **Pretty Markdown**: Beautiful terminal output with syntax highlighting
28
+ - **Directive-Based**: Orient agent behavior with custom `jiva-directive.md` files
29
+ - **Multi-Modal Support**: Optional image understanding via Llama-4-Maverick-17B
30
+ - **Auto-Condensing**: Intelligent conversation history management to prevent token overload
31
+
32
+ ### Advanced Features (v0.2.1)
33
+ - **Dual-Agent System**: Separate Manager and Worker agents for better task focus and reliability
34
+ - **Chain-of-Thought Logging**: Transparent reasoning at INFO level with clean ASCII formatting
35
+ - **Robust Error Recovery**: Automatic retry with error feedback for API and tool failures
36
+ - **Workspace-Aware Operations**: Smart path resolution for file operations
27
37
  - **Slash Commands**: Use `/help`, `/load`, `/save`, `/list` for easy conversation management
28
38
  - **Smart Tool Format Detection**: Auto-detects Harmony vs Standard OpenAI tool calling format
29
- - **Robust Tool Calling**: Advanced parsing supporting hyphens in tool names (e.g., `desktop-commander`)
30
39
  - **Extensible Architecture**: Designed to expand from CLI to desktop or web applications
31
- - **Smart Title Generation**: LLM-powered conversation titles based on first user message
32
40
 
33
41
  See [NEW_FEATURES.md](docs/NEW_FEATURES.md) for detailed information.
34
42
 
35
- ## 📦 Installation
43
+ ## Installation
36
44
 
37
45
  ### Global Install (Recommended)
38
46
 
@@ -49,14 +57,14 @@ jiva setup
49
57
  ### Development Install
50
58
 
51
59
  ```bash
52
- git clone https://github.com/yourusername/jiva.git
60
+ git clone https://github.com/KarmaloopAI/Jiva.git
53
61
  cd jiva
54
62
  npm install
55
63
  npm run build
56
64
  npm link # For global CLI access
57
65
  ```
58
66
 
59
- ## 🚀 Quick Start
67
+ ## Quick Start
60
68
 
61
69
  ### 1. Install Jiva
62
70
 
@@ -73,10 +81,10 @@ jiva setup
73
81
  ```
74
82
 
75
83
  You'll be prompted for:
76
- - ☁️ Krutrim API endpoint (default: `https://cloud.olakrutrim.com/v1/chat/completions`)
77
- - 🔑 API key for gpt-oss-120b ([Get your API key](https://cloud.olakrutrim.com))
78
- - 🎨 Optional multimodal model (Llama-4-Maverick-17B)
79
- - 🔌 MCP server configuration
84
+ - Krutrim API endpoint (default: `https://cloud.olakrutrim.com/v1/chat/completions`)
85
+ - API key for gpt-oss-120b ([Get your API key](https://cloud.olakrutrim.com))
86
+ - Optional multimodal model (Llama-4-Maverick-17B)
87
+ - MCP server configuration
80
88
 
81
89
  ### 3. Start Chatting
82
90
 
@@ -196,7 +204,7 @@ Jiva will automatically look for this file in:
196
204
  2. `jiva-directive.md` in workspace root
197
205
  3. `.jiva/directive.md` in workspace root
198
206
 
199
- ## 🔌 MCP Servers
207
+ ## MCP Servers
200
208
 
201
209
  Jiva leverages the Model Context Protocol (MCP) to provide extensible tooling. It comes pre-configured with the Filesystem server and makes it easy to add more.
202
210
 
@@ -370,11 +378,15 @@ jiva/
370
378
 
371
379
  ### Key Components
372
380
 
373
- 1. **JivaAgent**: Main orchestrator coordinating models, tools, and workspace
374
- 2. **ModelOrchestrator**: Manages multi-model coordination (reasoning + multimodal)
375
- 3. **MCPServerManager**: Handles MCP server lifecycle and tool discovery
376
- 4. **WorkspaceManager**: Manages workspace directory and directive files
377
- 5. **Harmony Format Handler**: Implements gpt-oss-120b's required response format
381
+ 1. **DualAgent**: Main orchestrator coordinating Manager and Worker agents (v0.2.1+)
382
+ 2. **ManagerAgent**: High-level planning, task breakdown, and result synthesis
383
+ 3. **WorkerAgent**: Focused tool execution and information gathering
384
+ 4. **ModelOrchestrator**: Manages multi-model coordination (reasoning + multimodal)
385
+ 5. **MCPServerManager**: Handles MCP server lifecycle and tool discovery
386
+ 6. **WorkspaceManager**: Manages workspace directory and directive files
387
+ 7. **Harmony Format Handler**: Implements gpt-oss-120b's required response format
388
+
389
+ **Legacy:** JivaAgent (single-agent) remains available for compatibility
378
390
 
379
391
  ## Working with gpt-oss-120b
380
392
 
@@ -421,11 +433,12 @@ Jiva can also be used programmatically:
421
433
 
422
434
  ```typescript
423
435
  import {
424
- JivaAgent,
436
+ DualAgent,
425
437
  createKrutrimModel,
426
438
  ModelOrchestrator,
427
439
  MCPServerManager,
428
440
  WorkspaceManager,
441
+ ConversationManager,
429
442
  } from 'jiva';
430
443
 
431
444
  // Create models
@@ -455,16 +468,24 @@ const workspace = new WorkspaceManager({
455
468
  });
456
469
  await workspace.initialize();
457
470
 
458
- // Create agent
459
- const agent = new JivaAgent({
471
+ // Initialize conversation manager (optional)
472
+ const conversationManager = new ConversationManager();
473
+ await conversationManager.initialize();
474
+
475
+ // Create dual-agent
476
+ const agent = new DualAgent({
460
477
  orchestrator,
461
478
  mcpManager,
462
479
  workspace,
480
+ conversationManager,
481
+ maxSubtasks: 10,
463
482
  });
464
483
 
465
484
  // Use agent
466
485
  const response = await agent.chat('Hello, Jiva!');
467
486
  console.log(response.content);
487
+ console.log(`Plan: ${response.plan?.subtasks.join(', ')}`);
488
+ console.log(`Tools used: ${response.toolsUsed.join(', ')}`);
468
489
 
469
490
  // Cleanup
470
491
  await agent.cleanup();
@@ -15,6 +15,7 @@ export interface DualAgentConfig {
15
15
  workspace: WorkspaceManager;
16
16
  conversationManager?: ConversationManager;
17
17
  maxSubtasks?: number;
18
+ maxIterations?: number;
18
19
  autoSave?: boolean;
19
20
  condensingThreshold?: number;
20
21
  }
@@ -35,6 +36,7 @@ export declare class DualAgent {
35
36
  private manager;
36
37
  private worker;
37
38
  private maxSubtasks;
39
+ private maxIterations;
38
40
  private autoSave;
39
41
  private condensingThreshold;
40
42
  private userConversationHistory;
@@ -1 +1 @@
1
- {"version":3,"file":"dual-agent.d.ts","sourceRoot":"","sources":["../../src/core/dual-agent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIhE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,iBAAiB,CAAC;IAChC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,mBAAmB,CAA6B;IAExD,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAc;IAE5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,mBAAmB,CAAS;IAEpC,OAAO,CAAC,uBAAuB,CAAiB;gBAEpC,MAAM,EAAE,eAAe;IAiBnC;;OAEG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;YA+G7C,kBAAkB;IAahC,OAAO,CAAC,gBAAgB;IAWlB,OAAO;IAKb,iBAAiB;IAMjB,sBAAsB,IAAI,OAAO,EAAE;IAInC,YAAY,IAAI,gBAAgB;IAIhC,aAAa,IAAI,gBAAgB;IAIjC,sBAAsB,IAAI,mBAAmB,GAAG,IAAI;IAI9C,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiB1C,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3C,iBAAiB;CAOxB"}
1
+ {"version":3,"file":"dual-agent.d.ts","sourceRoot":"","sources":["../../src/core/dual-agent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAKhE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,iBAAiB,CAAC;IAChC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,mBAAmB,CAA6B;IAExD,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,MAAM,CAAc;IAE5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,mBAAmB,CAAS;IAEpC,OAAO,CAAC,uBAAuB,CAAiB;gBAEpC,MAAM,EAAE,eAAe;IAkBnC;;OAEG;IACG,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAwH7C,kBAAkB;IA6BhC,OAAO,CAAC,gBAAgB;IAWlB,OAAO;IAKb,iBAAiB;IAMjB,sBAAsB,IAAI,OAAO,EAAE;IAInC,YAAY,IAAI,gBAAgB;IAIhC,aAAa,IAAI,gBAAgB;IAIjC,sBAAsB,IAAI,mBAAmB,GAAG,IAAI;IAI9C,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAiB1C,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3C,iBAAiB;CAOxB"}
@@ -7,6 +7,7 @@
7
7
  import { ManagerAgent } from './manager-agent.js';
8
8
  import { WorkerAgent } from './worker-agent.js';
9
9
  import { logger } from '../utils/logger.js';
10
+ import { orchestrationLogger } from '../utils/orchestration-logger.js';
10
11
  export class DualAgent {
11
12
  orchestrator;
12
13
  mcpManager;
@@ -15,6 +16,7 @@ export class DualAgent {
15
16
  manager;
16
17
  worker;
17
18
  maxSubtasks;
19
+ maxIterations;
18
20
  autoSave;
19
21
  condensingThreshold;
20
22
  userConversationHistory = [];
@@ -24,11 +26,12 @@ export class DualAgent {
24
26
  this.workspace = config.workspace;
25
27
  this.conversationManager = config.conversationManager || null;
26
28
  this.maxSubtasks = config.maxSubtasks || 10;
29
+ this.maxIterations = config.maxIterations || 10;
27
30
  this.autoSave = config.autoSave !== false;
28
31
  this.condensingThreshold = config.condensingThreshold || 30;
29
32
  // Initialize agents
30
33
  this.manager = new ManagerAgent(this.orchestrator, this.workspace);
31
- this.worker = new WorkerAgent(this.orchestrator, this.mcpManager, this.workspace);
34
+ this.worker = new WorkerAgent(this.orchestrator, this.mcpManager, this.workspace, this.maxIterations);
32
35
  logger.info('[*] Dual-agent system initialized (Manager + Worker)');
33
36
  }
34
37
  /**
@@ -38,6 +41,7 @@ export class DualAgent {
38
41
  logger.info('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
39
42
  logger.info(`>> User: ${userMessage}`);
40
43
  logger.info('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
44
+ orchestrationLogger.logUserMessage(userMessage);
41
45
  // Check if conversation needs condensing BEFORE adding new message
42
46
  if (this.userConversationHistory.length > this.condensingThreshold && this.conversationManager) {
43
47
  logger.info('[*] Condensing conversation history...');
@@ -53,13 +57,18 @@ export class DualAgent {
53
57
  // PHASE 1: Manager creates plan
54
58
  logger.info('\n[PHASE 1: Planning]');
55
59
  logger.info('─────────────────────────────────────────');
60
+ const phaseStartTime = Date.now();
61
+ orchestrationLogger.logPhaseStart('PLANNING');
56
62
  const plan = await this.manager.createPlan({
57
63
  userRequest: userMessage,
58
64
  context: this.getRecentContext(),
59
65
  });
66
+ orchestrationLogger.logPhaseEnd('PLANNING', Date.now() - phaseStartTime);
60
67
  // PHASE 2: Execute subtasks
61
68
  logger.info('\n[PHASE 2: Execution]');
62
69
  logger.info('─────────────────────────────────────────');
70
+ const executionStartTime = Date.now();
71
+ orchestrationLogger.logPhaseStart('EXECUTION');
63
72
  const results = [];
64
73
  const subtasksToExecute = plan.subtasks.slice(0, this.maxSubtasks);
65
74
  for (let i = 0; i < subtasksToExecute.length; i++) {
@@ -76,23 +85,19 @@ export class DualAgent {
76
85
  subtask,
77
86
  result: workerResult.result,
78
87
  });
79
- // Manager reviews result
80
- const decision = await this.manager.reviewResults(subtask, workerResult.result);
81
- totalIterations += 1;
82
- if (!decision.isComplete && decision.nextAction) {
83
- // Manager wants to do something else
84
- logger.info(`[Manager] Next action: ${decision.nextAction}`);
85
- // Add as new subtask if not at limit
86
- if (results.length < this.maxSubtasks) {
87
- subtasksToExecute.push(decision.nextAction);
88
- }
89
- }
88
+ // Note: Manager reviews are now disabled for individual subtasks
89
+ // Manager only synthesizes final response at the end
90
+ // This reduces overhead from 27 reviews to 1 synthesis for typical tasks
90
91
  }
92
+ orchestrationLogger.logPhaseEnd('EXECUTION', Date.now() - executionStartTime);
91
93
  // PHASE 3: Synthesize final response
92
94
  logger.info('\n[PHASE 3: Synthesis]');
93
95
  logger.info('─────────────────────────────────────────');
96
+ const synthesisStartTime = Date.now();
97
+ orchestrationLogger.logPhaseStart('SYNTHESIS');
94
98
  const finalResponse = await this.synthesizeResponse(plan, results);
95
99
  totalIterations += 1;
100
+ orchestrationLogger.logPhaseEnd('SYNTHESIS', Date.now() - synthesisStartTime);
96
101
  // Add assistant response to user conversation history
97
102
  this.userConversationHistory.push({
98
103
  role: 'assistant',
@@ -105,6 +110,7 @@ export class DualAgent {
105
110
  logger.info('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
106
111
  logger.info(`[+] Complete: ${totalIterations} iterations, ${allToolsUsed.length} tools used`);
107
112
  logger.info('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
113
+ orchestrationLogger.logFinalResponse(finalResponse, totalIterations, allToolsUsed);
108
114
  return {
109
115
  content: finalResponse,
110
116
  iterations: totalIterations,
@@ -116,11 +122,24 @@ export class DualAgent {
116
122
  };
117
123
  }
118
124
  async synthesizeResponse(plan, results) {
119
- // If only one subtask and simple, just return the result
125
+ // If only one subtask and it's a short success message, return directly
126
+ // But ALWAYS synthesize if result indicates failure or incomplete work
120
127
  if (results.length === 1 && results[0].result.length < 500) {
121
- return results[0].result;
128
+ const result = results[0].result;
129
+ // Check if this is a failure/incomplete message
130
+ const isFailure = result.includes('could not be completed') ||
131
+ result.includes('failed') ||
132
+ result.includes('error') ||
133
+ result.toLowerCase().includes('unable to');
134
+ // If it's a failure, always let Manager synthesize to provide proper context
135
+ if (isFailure) {
136
+ logger.info('[DualAgent] Result indicates failure, invoking Manager synthesis');
137
+ return await this.manager.synthesizeResponse(results);
138
+ }
139
+ // Otherwise, short successful result can be returned directly
140
+ return result;
122
141
  }
123
- // Otherwise, ask Manager to synthesize
142
+ // Multiple subtasks or long result - ask Manager to synthesize
124
143
  return await this.manager.synthesizeResponse(results);
125
144
  }
126
145
  getRecentContext() {
@@ -1 +1 @@
1
- {"version":3,"file":"dual-agent.js","sourceRoot":"","sources":["../../src/core/dual-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dual-agent.js","sourceRoot":"","sources":["../../src/core/dual-agent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"manager-agent.d.ts","sourceRoot":"","sources":["../../src/core/manager-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,mBAAmB,CAAiB;gBAEhC,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB;IAMxE,OAAO,CAAC,sBAAsB;IAiC9B;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAgDzD;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAgDpF;;OAEG;IACG,kBAAkB,CAAC,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA+B5F,OAAO,CAAC,cAAc;IAMtB,sBAAsB,IAAI,OAAO,EAAE;IAInC,iBAAiB;CAIlB"}
1
+ {"version":3,"file":"manager-agent.d.ts","sourceRoot":"","sources":["../../src/core/manager-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAI5C,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,mBAAmB,CAAiB;gBAEhC,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB;IAMxE,OAAO,CAAC,sBAAsB;IAwC9B;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAmFzD;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAoDpF;;OAEG;IACG,kBAAkB,CAAC,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAgC5F,OAAO,CAAC,cAAc;IAMtB,sBAAsB,IAAI,OAAO,EAAE;IAInC,iBAAiB;CAIlB"}
@@ -10,6 +10,7 @@
10
10
  * - Format final response
11
11
  */
12
12
  import { logger } from '../utils/logger.js';
13
+ import { orchestrationLogger } from '../utils/orchestration-logger.js';
13
14
  export class ManagerAgent {
14
15
  orchestrator;
15
16
  workspace;
@@ -24,19 +25,26 @@ export class ManagerAgent {
24
25
  let systemContent = `You are the Manager Agent in a two-agent system.
25
26
 
26
27
  ROLE:
27
- You plan and coordinate tasks. You do NOT execute tools directly.
28
+ You plan and coordinate at a HIGH LEVEL. You do NOT execute tools or create detailed implementation plans.
28
29
 
29
30
  WORKFLOW:
30
31
  1. Understand the user's request
31
- 2. Break it down into clear, actionable subtasks
32
- 3. Delegate subtasks to the Worker agent
33
- 4. Review Worker's results
32
+ 2. Create a MINIMAL, high-level plan (typically 1-3 subtasks)
33
+ 3. Delegate subtasks to the capable Worker agent
34
+ 4. Review Worker's final results
34
35
  5. Decide if task is complete or more work needed
35
36
  6. Format final response for user
36
37
 
38
+ CRITICAL PRINCIPLES:
39
+ - LESS IS MORE: Fewer, broader subtasks are better than many micro-tasks
40
+ - TRUST THE WORKER: Worker is highly capable and handles implementation details
41
+ - AVOID MICRO-MANAGEMENT: Don't break down tasks into tiny steps
42
+ - CODE TASKS = 1-2 SUBTASKS: File creation, editing, generation should be single subtasks
43
+ - INFO TASKS = 1-2 SUBTASKS: Reading, analyzing, listing should be single subtasks
44
+
37
45
  IMPORTANT:
38
- - Think step-by-step and explain your reasoning
39
- - Be specific in your subtask instructions to Worker
46
+ - Think strategically, not tactically
47
+ - Be specific but high-level in your subtask instructions
40
48
  - Review Worker results critically
41
49
  - Only mark complete when user's request is fully satisfied
42
50
  `;
@@ -53,19 +61,52 @@ IMPORTANT:
53
61
  */
54
62
  async createPlan(task) {
55
63
  logger.info('[Manager] Creating plan...');
64
+ orchestrationLogger.logManagerCreatePlan(task.userRequest, task.context || '');
56
65
  const planPrompt = `User Request: ${task.userRequest}
57
66
  ${task.context ? `\nContext: ${task.context}` : ''}
58
67
 
59
- Please analyze this request and create a plan:
60
- 1. What subtasks are needed?
61
- 2. What order should they be executed?
62
- 3. What information needs to be gathered?
68
+ Create a HIGH-LEVEL plan with MINIMAL subtasks. Follow these guidelines:
69
+
70
+ CRITICAL - Subtask Granularity:
71
+ - Keep subtasks at a HIGH LEVEL - let Worker handle implementation details
72
+ - For code generation/file operations: 1-3 subtasks maximum
73
+ - For information gathering: 1-2 subtasks maximum
74
+ - Only create separate subtasks when they are truly independent or sequential dependencies exist
75
+
76
+ Examples:
77
+ BAD (too granular):
78
+ - Ask user for requirements
79
+ - Create HTML structure
80
+ - Add CSS styling
81
+ - Add JavaScript logic
82
+ - Test in browser
83
+ (This should be 1 subtask: "Create calculator app as calc.html")
84
+
85
+ GOOD (appropriate level):
86
+ - Create the calculator application
87
+ - Refine based on user feedback (if needed)
88
+
89
+ BAD (too granular):
90
+ - List directory contents
91
+ - Read package.json
92
+ - Identify dependencies
93
+ - Format output
94
+ (This should be 1 subtask: "List and analyze project dependencies")
95
+
96
+ GOOD (appropriate level):
97
+ - Analyze project dependencies and structure
98
+
99
+ Guidelines:
100
+ - Don't create subtasks for clarifying requirements - Worker can ask if needed
101
+ - Don't create subtasks for implementation details (styling, specific code structure)
102
+ - Don't create separate "test" or "verify" subtasks - Worker does this naturally
103
+ - Trust Worker to handle file operations, error checking, and iteration
63
104
 
64
105
  Respond in this format:
65
- REASONING: <your analysis>
106
+ REASONING: <brief explanation of your high-level approach>
66
107
  SUBTASKS:
67
108
  - <subtask 1>
68
- - <subtask 2>
109
+ - <subtask 2> (only if truly necessary)
69
110
  ...`;
70
111
  this.conversationHistory.push({
71
112
  role: 'user',
@@ -89,6 +130,7 @@ SUBTASKS:
89
130
  logger.info(`[Manager] Reasoning: ${reasoning}`);
90
131
  logger.info(`[Manager] Plan: ${subtasks.length} subtasks`);
91
132
  subtasks.forEach((task, i) => logger.info(` ${i + 1}. ${task}`));
133
+ orchestrationLogger.logManagerPlanCreated(subtasks, reasoning);
92
134
  return { subtasks, reasoning };
93
135
  }
94
136
  /**
@@ -96,6 +138,7 @@ SUBTASKS:
96
138
  */
97
139
  async reviewResults(subtask, workerResult) {
98
140
  logger.info(`[Manager] Reviewing: "${subtask}"`);
141
+ orchestrationLogger.logManagerReview(subtask, workerResult);
99
142
  const reviewPrompt = `The Worker completed this subtask:
100
143
  Subtask: ${subtask}
101
144
 
@@ -128,8 +171,10 @@ NEXT_ACTION: <what to do next, if CONTINUE>`;
128
171
  const nextAction = this.extractSection(response.content, 'NEXT_ACTION');
129
172
  logger.info(`[Manager] Review: ${reasoning}`);
130
173
  logger.info(`[Manager] Decision: ${decision}`);
174
+ const isComplete = decision.toUpperCase().includes('COMPLETE');
175
+ orchestrationLogger.logManagerDecision(isComplete, reasoning, nextAction || undefined);
131
176
  return {
132
- isComplete: decision.toUpperCase().includes('COMPLETE'),
177
+ isComplete,
133
178
  reasoning,
134
179
  nextAction: nextAction || undefined,
135
180
  };
@@ -139,6 +184,7 @@ NEXT_ACTION: <what to do next, if CONTINUE>`;
139
184
  */
140
185
  async synthesizeResponse(allResults) {
141
186
  logger.info('[Manager] Synthesizing final response...');
187
+ orchestrationLogger.logManagerSynthesize(allResults.length);
142
188
  const synthesisPrompt = `Based on all the work completed, create a final response for the user.
143
189
 
144
190
  Completed Work:
@@ -1 +1 @@
1
- {"version":3,"file":"manager-agent.js","sourceRoot":"","sources":["../../src/core/manager-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager-agent.js","sourceRoot":"","sources":["../../src/core/manager-agent.ts"],"names":[],"mappings":"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"}
@@ -25,11 +25,17 @@ export declare class WorkerAgent {
25
25
  private mcpManager;
26
26
  private workspace;
27
27
  private maxIterations;
28
- constructor(orchestrator: ModelOrchestrator, mcpManager: MCPServerManager, workspace: WorkspaceManager);
28
+ private contextMemory;
29
+ constructor(orchestrator: ModelOrchestrator, mcpManager: MCPServerManager, workspace: WorkspaceManager, maxIterations?: number);
29
30
  /**
30
31
  * Execute a subtask assigned by Manager
31
32
  */
32
33
  executeSubtask(subtask: WorkerSubtask): Promise<WorkerResult>;
33
34
  private extractReasoning;
35
+ /**
36
+ * Determine if we should prompt Worker to check for completion
37
+ * This helps prevent over-iteration by asking Worker to confirm task is done
38
+ */
39
+ private shouldPromptForCompletion;
34
40
  }
35
41
  //# sourceMappingURL=worker-agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-agent.d.ts","sourceRoot":"","sources":["../../src/core/worker-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAKlD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,aAAa,CAAa;gBAEtB,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB;IAMtG;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAyJnE,OAAO,CAAC,gBAAgB;CAKzB"}
1
+ {"version":3,"file":"worker-agent.d.ts","sourceRoot":"","sources":["../../src/core/worker-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAsBlD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAsB;gBAGzC,YAAY,EAAE,iBAAiB,EAC/B,UAAU,EAAE,gBAAgB,EAC5B,SAAS,EAAE,gBAAgB,EAC3B,aAAa,GAAE,MAAU;IAY3B;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA2PnE,OAAO,CAAC,gBAAgB;IAMxB;;;OAGG;IACH,OAAO,CAAC,yBAAyB;CAuClC"}