jiva-core 0.2.2 → 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.
- package/LICENSE +21 -0
- package/README.md +25 -19
- package/dist/core/dual-agent.d.ts +2 -0
- package/dist/core/dual-agent.d.ts.map +1 -1
- package/dist/core/dual-agent.js +34 -15
- package/dist/core/dual-agent.js.map +1 -1
- package/dist/core/manager-agent.d.ts.map +1 -1
- package/dist/core/manager-agent.js +59 -13
- package/dist/core/manager-agent.js.map +1 -1
- package/dist/core/worker-agent.d.ts +7 -1
- package/dist/core/worker-agent.d.ts.map +1 -1
- package/dist/core/worker-agent.js +91 -5
- package/dist/core/worker-agent.js.map +1 -1
- package/dist/interfaces/cli/index.js +29 -4
- package/dist/interfaces/cli/index.js.map +1 -1
- package/dist/interfaces/cli/repl.d.ts.map +1 -1
- package/dist/interfaces/cli/repl.js +6 -0
- package/dist/interfaces/cli/repl.js.map +1 -1
- package/dist/utils/orchestration-logger.d.ts +36 -0
- package/dist/utils/orchestration-logger.d.ts.map +1 -0
- package/dist/utils/orchestration-logger.js +224 -0
- package/dist/utils/orchestration-logger.js.map +1 -0
- package/jiva-new-demo.gif +0 -0
- package/package.json +1 -1
- package/downloaded_image.avif +0 -0
- package/downloads/snipping_tool.avif +0 -0
- package/image.avif +0 -0
- package/ms_image.avif +0 -0
- package/screenshot.png +0 -0
- package/snipping_tool.avif +0 -0
- package/tmp_image.avif +0 -0
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
|
+
[](https://www.npmjs.com/package/jiva-core) [](LICENSE) [](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
|
-
##
|
|
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,18 +12,22 @@ 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
|
-
##
|
|
15
|
+
## Demo
|
|
16
|
+
|
|
17
|
+

|
|
18
|
+
|
|
19
|
+
## Features
|
|
14
20
|
|
|
15
21
|
### Core Capabilities
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
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
|
|
25
31
|
|
|
26
32
|
### Advanced Features (v0.2.1)
|
|
27
33
|
- **Dual-Agent System**: Separate Manager and Worker agents for better task focus and reliability
|
|
@@ -34,7 +40,7 @@ Jiva is a powerful autonomous AI agent powered by gpt-oss-120b with full MCP (Mo
|
|
|
34
40
|
|
|
35
41
|
See [NEW_FEATURES.md](docs/NEW_FEATURES.md) for detailed information.
|
|
36
42
|
|
|
37
|
-
##
|
|
43
|
+
## Installation
|
|
38
44
|
|
|
39
45
|
### Global Install (Recommended)
|
|
40
46
|
|
|
@@ -51,14 +57,14 @@ jiva setup
|
|
|
51
57
|
### Development Install
|
|
52
58
|
|
|
53
59
|
```bash
|
|
54
|
-
git clone https://github.com/
|
|
60
|
+
git clone https://github.com/KarmaloopAI/Jiva.git
|
|
55
61
|
cd jiva
|
|
56
62
|
npm install
|
|
57
63
|
npm run build
|
|
58
64
|
npm link # For global CLI access
|
|
59
65
|
```
|
|
60
66
|
|
|
61
|
-
##
|
|
67
|
+
## Quick Start
|
|
62
68
|
|
|
63
69
|
### 1. Install Jiva
|
|
64
70
|
|
|
@@ -75,10 +81,10 @@ jiva setup
|
|
|
75
81
|
```
|
|
76
82
|
|
|
77
83
|
You'll be prompted for:
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
-
|
|
81
|
-
-
|
|
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
|
|
82
88
|
|
|
83
89
|
### 3. Start Chatting
|
|
84
90
|
|
|
@@ -198,7 +204,7 @@ Jiva will automatically look for this file in:
|
|
|
198
204
|
2. `jiva-directive.md` in workspace root
|
|
199
205
|
3. `.jiva/directive.md` in workspace root
|
|
200
206
|
|
|
201
|
-
##
|
|
207
|
+
## MCP Servers
|
|
202
208
|
|
|
203
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.
|
|
204
210
|
|
|
@@ -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;
|
|
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"}
|
package/dist/core/dual-agent.js
CHANGED
|
@@ -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
|
|
80
|
-
|
|
81
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
//
|
|
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":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
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;
|
|
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
|
|
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.
|
|
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
|
|
39
|
-
- Be specific in your subtask instructions
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
|
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
|
|
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":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;
|
|
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
|
-
|
|
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;
|
|
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"}
|