jiva-core 0.3.23 → 0.3.41-dev.fe6fe48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +232 -570
- package/dist/code/agent.d.ts +105 -0
- package/dist/code/agent.d.ts.map +1 -0
- package/dist/code/agent.js +837 -0
- package/dist/code/agent.js.map +1 -0
- package/dist/code/file-lock.d.ts +15 -0
- package/dist/code/file-lock.d.ts.map +1 -0
- package/dist/code/file-lock.js +36 -0
- package/dist/code/file-lock.js.map +1 -0
- package/dist/code/lsp/client.d.ts +30 -0
- package/dist/code/lsp/client.d.ts.map +1 -0
- package/dist/code/lsp/client.js +181 -0
- package/dist/code/lsp/client.js.map +1 -0
- package/dist/code/lsp/language.d.ts +12 -0
- package/dist/code/lsp/language.d.ts.map +1 -0
- package/dist/code/lsp/language.js +145 -0
- package/dist/code/lsp/language.js.map +1 -0
- package/dist/code/lsp/manager.d.ts +39 -0
- package/dist/code/lsp/manager.d.ts.map +1 -0
- package/dist/code/lsp/manager.js +108 -0
- package/dist/code/lsp/manager.js.map +1 -0
- package/dist/code/lsp/server.d.ts +15 -0
- package/dist/code/lsp/server.d.ts.map +1 -0
- package/dist/code/lsp/server.js +78 -0
- package/dist/code/lsp/server.js.map +1 -0
- package/dist/code/tools/bash.d.ts +3 -0
- package/dist/code/tools/bash.d.ts.map +1 -0
- package/dist/code/tools/bash.js +110 -0
- package/dist/code/tools/bash.js.map +1 -0
- package/dist/code/tools/edit.d.ts +11 -0
- package/dist/code/tools/edit.d.ts.map +1 -0
- package/dist/code/tools/edit.js +459 -0
- package/dist/code/tools/edit.js.map +1 -0
- package/dist/code/tools/glob.d.ts +3 -0
- package/dist/code/tools/glob.d.ts.map +1 -0
- package/dist/code/tools/glob.js +62 -0
- package/dist/code/tools/glob.js.map +1 -0
- package/dist/code/tools/grep.d.ts +3 -0
- package/dist/code/tools/grep.d.ts.map +1 -0
- package/dist/code/tools/grep.js +147 -0
- package/dist/code/tools/grep.js.map +1 -0
- package/dist/code/tools/index.d.ts +31 -0
- package/dist/code/tools/index.d.ts.map +1 -0
- package/dist/code/tools/index.js +9 -0
- package/dist/code/tools/index.js.map +1 -0
- package/dist/code/tools/read.d.ts +3 -0
- package/dist/code/tools/read.d.ts.map +1 -0
- package/dist/code/tools/read.js +120 -0
- package/dist/code/tools/read.js.map +1 -0
- package/dist/code/tools/spawn.d.ts +3 -0
- package/dist/code/tools/spawn.d.ts.map +1 -0
- package/dist/code/tools/spawn.js +49 -0
- package/dist/code/tools/spawn.js.map +1 -0
- package/dist/code/tools/write.d.ts +3 -0
- package/dist/code/tools/write.d.ts.map +1 -0
- package/dist/code/tools/write.js +82 -0
- package/dist/code/tools/write.js.map +1 -0
- package/dist/core/agent-interface.d.ts +54 -0
- package/dist/core/agent-interface.d.ts.map +1 -0
- package/dist/core/agent-interface.js +8 -0
- package/dist/core/agent-interface.js.map +1 -0
- package/dist/core/agent-spawner.d.ts.map +1 -1
- package/dist/core/agent-spawner.js +3 -0
- package/dist/core/agent-spawner.js.map +1 -1
- package/dist/core/client-agent.d.ts +22 -2
- package/dist/core/client-agent.d.ts.map +1 -1
- package/dist/core/client-agent.js +145 -26
- package/dist/core/client-agent.js.map +1 -1
- package/dist/core/config.d.ts +144 -17
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +25 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/conversation-manager.d.ts +4 -1
- package/dist/core/conversation-manager.d.ts.map +1 -1
- package/dist/core/conversation-manager.js +47 -17
- package/dist/core/conversation-manager.js.map +1 -1
- package/dist/core/dual-agent.d.ts +18 -5
- package/dist/core/dual-agent.d.ts.map +1 -1
- package/dist/core/dual-agent.js +152 -59
- package/dist/core/dual-agent.js.map +1 -1
- package/dist/core/manager-agent.d.ts +38 -2
- package/dist/core/manager-agent.d.ts.map +1 -1
- package/dist/core/manager-agent.js +144 -23
- package/dist/core/manager-agent.js.map +1 -1
- package/dist/core/types/agent-context.d.ts +30 -0
- package/dist/core/types/agent-context.d.ts.map +1 -0
- package/dist/core/types/agent-context.js +8 -0
- package/dist/core/types/agent-context.js.map +1 -0
- package/dist/core/types/completion-signal.d.ts +17 -0
- package/dist/core/types/completion-signal.d.ts.map +1 -0
- package/dist/core/types/completion-signal.js +8 -0
- package/dist/core/types/completion-signal.js.map +1 -0
- package/dist/core/utils/serialize-agent-context.d.ts +23 -0
- package/dist/core/utils/serialize-agent-context.d.ts.map +1 -0
- package/dist/core/utils/serialize-agent-context.js +75 -0
- package/dist/core/utils/serialize-agent-context.js.map +1 -0
- package/dist/core/worker-agent.d.ts +14 -3
- package/dist/core/worker-agent.d.ts.map +1 -1
- package/dist/core/worker-agent.js +261 -68
- package/dist/core/worker-agent.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/cli/index.js +146 -25
- package/dist/interfaces/cli/index.js.map +1 -1
- package/dist/interfaces/cli/repl.d.ts +8 -2
- package/dist/interfaces/cli/repl.d.ts.map +1 -1
- package/dist/interfaces/cli/repl.js +39 -3
- package/dist/interfaces/cli/repl.js.map +1 -1
- package/dist/interfaces/cli/setup-wizard.d.ts.map +1 -1
- package/dist/interfaces/cli/setup-wizard.js +92 -0
- package/dist/interfaces/cli/setup-wizard.js.map +1 -1
- package/dist/interfaces/http/routes/chat.js +2 -2
- package/dist/interfaces/http/routes/chat.js.map +1 -1
- package/dist/interfaces/http/session-manager.d.ts +7 -4
- package/dist/interfaces/http/session-manager.d.ts.map +1 -1
- package/dist/interfaces/http/session-manager.js +56 -15
- package/dist/interfaces/http/session-manager.js.map +1 -1
- package/dist/models/base.d.ts +16 -1
- package/dist/models/base.d.ts.map +1 -1
- package/dist/models/harmony.d.ts +7 -1
- package/dist/models/harmony.d.ts.map +1 -1
- package/dist/models/harmony.js +21 -3
- package/dist/models/harmony.js.map +1 -1
- package/dist/models/krutrim.d.ts +31 -1
- package/dist/models/krutrim.d.ts.map +1 -1
- package/dist/models/krutrim.js +55 -11
- package/dist/models/krutrim.js.map +1 -1
- package/dist/models/orchestrator.d.ts +24 -0
- package/dist/models/orchestrator.d.ts.map +1 -1
- package/dist/models/orchestrator.js +40 -6
- package/dist/models/orchestrator.js.map +1 -1
- package/package.json +8 -6
package/dist/core/dual-agent.js
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Dual Agent System - Coordinates Manager
|
|
2
|
+
* Dual Agent System - Coordinates Manager and Worker agents
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* - Manager: High-level planning and
|
|
4
|
+
* Two-agent architecture:
|
|
5
|
+
* - Manager: High-level planning, review, and synthesis
|
|
6
6
|
* - Worker: Task execution with tools
|
|
7
|
-
* - Client: Adaptive validation and quality control
|
|
8
7
|
*/
|
|
9
8
|
import { AgentSpawner } from './agent-spawner.js';
|
|
10
9
|
import { ManagerAgent } from './manager-agent.js';
|
|
11
10
|
import { WorkerAgent } from './worker-agent.js';
|
|
12
|
-
import {
|
|
11
|
+
import { serializeAgentContext } from './utils/serialize-agent-context.js';
|
|
13
12
|
import { logger } from '../utils/logger.js';
|
|
14
13
|
import { orchestrationLogger } from '../utils/orchestration-logger.js';
|
|
15
14
|
export class DualAgent {
|
|
@@ -21,7 +20,6 @@ export class DualAgent {
|
|
|
21
20
|
agentSpawner = null;
|
|
22
21
|
manager;
|
|
23
22
|
worker;
|
|
24
|
-
client;
|
|
25
23
|
maxSubtasks;
|
|
26
24
|
maxIterations;
|
|
27
25
|
maxAgentDepth;
|
|
@@ -35,14 +33,13 @@ export class DualAgent {
|
|
|
35
33
|
this.conversationManager = config.conversationManager || null;
|
|
36
34
|
this.personaManager = config.personaManager || null;
|
|
37
35
|
this.maxSubtasks = config.maxSubtasks || 10;
|
|
38
|
-
this.maxIterations = config.maxIterations ||
|
|
36
|
+
this.maxIterations = config.maxIterations || 20;
|
|
39
37
|
this.maxAgentDepth = config.maxAgentDepth ?? 1; // Default: only Manager can spawn
|
|
40
38
|
this.autoSave = config.autoSave !== false;
|
|
41
39
|
this.condensingThreshold = config.condensingThreshold || 30;
|
|
42
|
-
// Initialize agents (
|
|
40
|
+
// Initialize agents (Manager + Worker architecture)
|
|
43
41
|
this.manager = new ManagerAgent(this.orchestrator, this.workspace, this.personaManager || undefined);
|
|
44
42
|
this.worker = new WorkerAgent(this.orchestrator, this.mcpManager, this.workspace, this.maxIterations, this.personaManager || undefined);
|
|
45
|
-
this.client = new ClientAgent(this.orchestrator, this.mcpManager);
|
|
46
43
|
// Initialize AgentSpawner - always available as a baseline tool
|
|
47
44
|
// Create a PersonaManager if one wasn't provided
|
|
48
45
|
let spawnerPersonaManager = this.personaManager;
|
|
@@ -58,7 +55,7 @@ export class DualAgent {
|
|
|
58
55
|
currentDepth: 0,
|
|
59
56
|
});
|
|
60
57
|
this.worker.setAgentSpawner(this.agentSpawner);
|
|
61
|
-
logger.info('[*]
|
|
58
|
+
logger.info('[*] Two-agent system initialized (Manager + Worker)');
|
|
62
59
|
logger.info(`[*] Agent spawn depth limit: ${this.maxAgentDepth} (${this.maxAgentDepth === 1 ? 'only Manager can spawn' : `${this.maxAgentDepth} levels deep`})`);
|
|
63
60
|
if (this.personaManager) {
|
|
64
61
|
const activePersona = this.personaManager.getActivePersona();
|
|
@@ -67,6 +64,85 @@ export class DualAgent {
|
|
|
67
64
|
}
|
|
68
65
|
}
|
|
69
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Build a shared AgentContext for the current turn.
|
|
69
|
+
* Single source of truth: all three agents receive the same context object.
|
|
70
|
+
*
|
|
71
|
+
* Strategy:
|
|
72
|
+
* - Option A (primary): If ConversationManager is available, condense + last N messages.
|
|
73
|
+
* - Option B (fallback): Keep last N messages of all roles when ConversationManager is null.
|
|
74
|
+
*/
|
|
75
|
+
buildAgentContext() {
|
|
76
|
+
// Fresh directive each turn
|
|
77
|
+
const directive = this.workspace.getDirectivePrompt() || undefined;
|
|
78
|
+
// Conversation history: include user + assistant + tool roles
|
|
79
|
+
const allRoleMessages = this.userConversationHistory.filter(m => m.role === 'user' || m.role === 'assistant' || m.role === 'tool');
|
|
80
|
+
// Option A uses summary from condensed history; Option B uses raw tail.
|
|
81
|
+
// After condensing (which happens before this call in chat()), the first
|
|
82
|
+
// system-role entry starting with "[Previous conversation summary]" serves
|
|
83
|
+
// as the summary.
|
|
84
|
+
let summary;
|
|
85
|
+
if (this.conversationManager) {
|
|
86
|
+
const summaryMsg = this.userConversationHistory.find(m => m.role === 'system' && typeof m.content === 'string' && m.content.startsWith('[Previous conversation summary]'));
|
|
87
|
+
if (summaryMsg && typeof summaryMsg.content === 'string') {
|
|
88
|
+
summary = summaryMsg.content;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Pass the full conversation history — the conversation manager already
|
|
92
|
+
// condenses history (at condensingThreshold) before this is called, so
|
|
93
|
+
// no artificial slice is needed here. The 128k context window handles the rest.
|
|
94
|
+
const recentMessages = allRoleMessages;
|
|
95
|
+
// Persona context
|
|
96
|
+
let persona;
|
|
97
|
+
if (this.personaManager) {
|
|
98
|
+
const activePersona = this.personaManager.getActivePersona();
|
|
99
|
+
if (activePersona) {
|
|
100
|
+
persona = {
|
|
101
|
+
name: activePersona.manifest.name,
|
|
102
|
+
systemPromptAddition: this.personaManager.getSystemPromptAddition(),
|
|
103
|
+
validationContext: this.buildValidationContext(),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
workspaceDir: this.workspace.getWorkspaceDir(),
|
|
109
|
+
directive,
|
|
110
|
+
conversation: {
|
|
111
|
+
summary,
|
|
112
|
+
recentMessages,
|
|
113
|
+
},
|
|
114
|
+
persona,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Build validation-specific persona context for Client.
|
|
119
|
+
* Contains persona name/description + skill names + constraints but NOT
|
|
120
|
+
* the full execution persona block (avoids Client trying to direct execution).
|
|
121
|
+
*/
|
|
122
|
+
buildValidationContext() {
|
|
123
|
+
if (!this.personaManager)
|
|
124
|
+
return undefined;
|
|
125
|
+
const activePersona = this.personaManager.getActivePersona();
|
|
126
|
+
if (!activePersona)
|
|
127
|
+
return undefined;
|
|
128
|
+
const skills = this.personaManager.getActiveSkills();
|
|
129
|
+
const skillLines = skills.map(s => {
|
|
130
|
+
let line = `- ${s.metadata.name}: ${s.metadata.description}`;
|
|
131
|
+
if (s.metadata.allowedTools && s.metadata.allowedTools.length > 0) {
|
|
132
|
+
line += `\n Allowed tools: ${s.metadata.allowedTools.join(', ')}`;
|
|
133
|
+
}
|
|
134
|
+
return line;
|
|
135
|
+
}).join('\n');
|
|
136
|
+
return `ACTIVE PERSONA: ${activePersona.manifest.name} — ${activePersona.manifest.description}
|
|
137
|
+
|
|
138
|
+
SKILLS AVAILABLE TO WORKER:
|
|
139
|
+
${skillLines || '(no skills registered)'}
|
|
140
|
+
|
|
141
|
+
VALIDATION GUIDANCE:
|
|
142
|
+
- Worker is expected to use skills above when relevant to the user's request.
|
|
143
|
+
- Validate that Worker's tool usage is consistent with the skills it was expected to apply.
|
|
144
|
+
- Validate that any mandatory steps or safety constraints defined above were followed.`;
|
|
145
|
+
}
|
|
70
146
|
/**
|
|
71
147
|
* Process user message using dual-agent architecture
|
|
72
148
|
*/
|
|
@@ -85,6 +161,8 @@ export class DualAgent {
|
|
|
85
161
|
role: 'user',
|
|
86
162
|
content: userMessage,
|
|
87
163
|
});
|
|
164
|
+
// Build shared context ONCE per turn (single source of truth)
|
|
165
|
+
const agentContext = this.buildAgentContext();
|
|
88
166
|
const allToolsUsed = [];
|
|
89
167
|
let totalIterations = 0;
|
|
90
168
|
// PHASE 1: Manager creates plan
|
|
@@ -94,52 +172,71 @@ export class DualAgent {
|
|
|
94
172
|
orchestrationLogger.logPhaseStart('PLANNING');
|
|
95
173
|
const plan = await this.manager.createPlan({
|
|
96
174
|
userRequest: userMessage,
|
|
97
|
-
context:
|
|
98
|
-
});
|
|
175
|
+
context: serializeAgentContext(agentContext, 'manager'),
|
|
176
|
+
}, agentContext);
|
|
99
177
|
orchestrationLogger.logPhaseEnd('PLANNING', Date.now() - phaseStartTime);
|
|
100
|
-
//
|
|
178
|
+
// Conversational short-circuit: skip execution entirely for greetings, thank-yous, etc.
|
|
179
|
+
if (plan.conversational) {
|
|
180
|
+
logger.info('[DualAgent] Conversational message — returning direct reply');
|
|
181
|
+
const directReply = await this.manager.directReply(this.userConversationHistory, agentContext);
|
|
182
|
+
this.userConversationHistory.push({ role: 'assistant', content: directReply });
|
|
183
|
+
if (this.autoSave && this.conversationManager) {
|
|
184
|
+
await this.conversationManager.autoSave(this.userConversationHistory, this.workspace.getWorkspaceDir(), this.orchestrator);
|
|
185
|
+
}
|
|
186
|
+
logger.info('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
|
|
187
|
+
logger.info('[+] Complete: 1 iteration, 0 tools used (conversational)');
|
|
188
|
+
logger.info('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
|
|
189
|
+
return {
|
|
190
|
+
content: directReply,
|
|
191
|
+
iterations: 1,
|
|
192
|
+
toolsUsed: [],
|
|
193
|
+
plan: { subtasks: [], reasoning: plan.reasoning },
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
// PHASE 2: Execute subtasks with per-subtask retry budget
|
|
101
197
|
logger.info('\n[PHASE 2: Execution]');
|
|
102
198
|
logger.info('─────────────────────────────────────────');
|
|
103
199
|
const executionStartTime = Date.now();
|
|
104
200
|
orchestrationLogger.logPhaseStart('EXECUTION');
|
|
105
201
|
const results = [];
|
|
106
202
|
const subtasksToExecute = plan.subtasks.slice(0, this.maxSubtasks);
|
|
203
|
+
// Max 1 retry per original subtask — keyed by original subtask text (not correction text)
|
|
204
|
+
const MAX_RETRIES_PER_SUBTASK = 1;
|
|
205
|
+
const subtaskRetryCounts = new Map();
|
|
107
206
|
for (let i = 0; i < subtasksToExecute.length; i++) {
|
|
108
207
|
const subtask = subtasksToExecute[i];
|
|
109
208
|
logger.info(`\n[Subtask ${i + 1}/${subtasksToExecute.length}] ${subtask}`);
|
|
110
|
-
// Worker executes subtask
|
|
209
|
+
// Worker executes subtask with shared context
|
|
111
210
|
const workerResult = await this.worker.executeSubtask({
|
|
112
211
|
instruction: subtask,
|
|
113
|
-
context:
|
|
114
|
-
});
|
|
212
|
+
context: serializeAgentContext(agentContext, 'worker'),
|
|
213
|
+
}, agentContext);
|
|
115
214
|
totalIterations += 1;
|
|
116
215
|
allToolsUsed.push(...workerResult.toolsUsed);
|
|
216
|
+
// Manager reviews Worker's result — fast-path for common cases, LLM only for edge cases
|
|
217
|
+
const review = await this.manager.reviewSubtaskResult(subtask, workerResult, userMessage);
|
|
117
218
|
results.push({
|
|
118
219
|
subtask,
|
|
119
220
|
result: workerResult.result,
|
|
221
|
+
accepted: review.accepted,
|
|
120
222
|
});
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
logger.warn(`[Client] Skipping duplicate correction subtask`);
|
|
132
|
-
}
|
|
133
|
-
else if (subtasksToExecute.length < this.maxSubtasks) {
|
|
134
|
-
subtasksToExecute.push(validation.nextAction);
|
|
135
|
-
logger.info(`[Client] Added correction subtask (${subtasksToExecute.length} total)`);
|
|
223
|
+
if (!review.accepted && review.specificCorrection) {
|
|
224
|
+
// Determine the original subtask key for retry counting.
|
|
225
|
+
// Correction subtasks always start fresh — map them back to the original via
|
|
226
|
+
// their position in the queue vs the original plan length.
|
|
227
|
+
const originalSubtask = plan.subtasks[Math.min(i, plan.subtasks.length - 1)] || subtask;
|
|
228
|
+
const retryCount = subtaskRetryCounts.get(originalSubtask) || 0;
|
|
229
|
+
if (retryCount < MAX_RETRIES_PER_SUBTASK && subtasksToExecute.length < this.maxSubtasks) {
|
|
230
|
+
subtasksToExecute.splice(i + 1, 0, review.specificCorrection);
|
|
231
|
+
subtaskRetryCounts.set(originalSubtask, retryCount + 1);
|
|
232
|
+
logger.info(`[DualAgent] Inserted targeted retry at position ${i + 2} (retry ${retryCount + 1}/${MAX_RETRIES_PER_SUBTASK})`);
|
|
136
233
|
}
|
|
137
234
|
else {
|
|
138
|
-
logger.warn(`[
|
|
235
|
+
logger.warn(`[DualAgent] Retry budget exhausted or queue full — accepting partial result`);
|
|
139
236
|
}
|
|
140
237
|
}
|
|
141
|
-
else
|
|
142
|
-
logger.info(`[
|
|
238
|
+
else {
|
|
239
|
+
logger.info(`[Manager] Subtask accepted`);
|
|
143
240
|
}
|
|
144
241
|
}
|
|
145
242
|
orchestrationLogger.logPhaseEnd('EXECUTION', Date.now() - executionStartTime);
|
|
@@ -148,7 +245,7 @@ export class DualAgent {
|
|
|
148
245
|
logger.info('─────────────────────────────────────────');
|
|
149
246
|
const synthesisStartTime = Date.now();
|
|
150
247
|
orchestrationLogger.logPhaseStart('SYNTHESIS');
|
|
151
|
-
const finalResponse = await this.synthesizeResponse(plan, results);
|
|
248
|
+
const finalResponse = await this.synthesizeResponse(plan, results, agentContext);
|
|
152
249
|
totalIterations += 1;
|
|
153
250
|
orchestrationLogger.logPhaseEnd('SYNTHESIS', Date.now() - synthesisStartTime);
|
|
154
251
|
// Add assistant response to user conversation history
|
|
@@ -174,33 +271,26 @@ export class DualAgent {
|
|
|
174
271
|
},
|
|
175
272
|
};
|
|
176
273
|
}
|
|
177
|
-
async synthesizeResponse(plan, results) {
|
|
178
|
-
//
|
|
179
|
-
//
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
// If it's a failure, always let Manager synthesize to provide proper context
|
|
188
|
-
if (isFailure) {
|
|
189
|
-
logger.info('[DualAgent] Result indicates failure, invoking Manager synthesis');
|
|
190
|
-
return await this.manager.synthesizeResponse(results);
|
|
191
|
-
}
|
|
192
|
-
// Otherwise, short successful result can be returned directly
|
|
193
|
-
return result;
|
|
194
|
-
}
|
|
195
|
-
// Multiple subtasks or long result - ask Manager to synthesize
|
|
196
|
-
return await this.manager.synthesizeResponse(results);
|
|
274
|
+
async synthesizeResponse(plan, results, agentContext) {
|
|
275
|
+
// Always have the Manager synthesize a final response.
|
|
276
|
+
//
|
|
277
|
+
// The previous short-circuit (returning Worker's raw result when it was a
|
|
278
|
+
// single short subtask) caused the user to see Worker-internal operational
|
|
279
|
+
// strings like "Task work completed (1 operations performed). Max iterations
|
|
280
|
+
// reached but all tool operations succeeded." as their final answer. The
|
|
281
|
+
// Manager synthesis step is cheap (one LLM call) and guarantees the user
|
|
282
|
+
// always receives a properly formatted, contextually accurate response.
|
|
283
|
+
return await this.manager.synthesizeResponse(results, agentContext);
|
|
197
284
|
}
|
|
198
285
|
getRecentContext() {
|
|
199
|
-
//
|
|
286
|
+
// Include user + assistant + tool messages for full context
|
|
200
287
|
const recent = this.userConversationHistory
|
|
201
|
-
.filter(m => m.role === 'user')
|
|
202
|
-
.slice(-
|
|
203
|
-
.map(m =>
|
|
288
|
+
.filter(m => m.role === 'user' || m.role === 'assistant' || m.role === 'tool')
|
|
289
|
+
.slice(-6)
|
|
290
|
+
.map(m => {
|
|
291
|
+
const content = typeof m.content === 'string' ? m.content : JSON.stringify(m.content);
|
|
292
|
+
return `[${m.role.toUpperCase()}]: ${content}`;
|
|
293
|
+
})
|
|
204
294
|
.join('\n');
|
|
205
295
|
return recent || '';
|
|
206
296
|
}
|
|
@@ -216,6 +306,9 @@ export class DualAgent {
|
|
|
216
306
|
resetConversation() {
|
|
217
307
|
this.userConversationHistory = [];
|
|
218
308
|
this.manager.resetConversation();
|
|
309
|
+
// Null out the conversation ID so the next autoSave generates a fresh file
|
|
310
|
+
// rather than continuing to append to the previous conversation's storage entry.
|
|
311
|
+
this.conversationManager?.setCurrentConversationId(null);
|
|
219
312
|
logger.info('[*] Conversation reset');
|
|
220
313
|
}
|
|
221
314
|
getConversationHistory() {
|
|
@@ -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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"}
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
import { ModelOrchestrator } from '../models/orchestrator.js';
|
|
13
13
|
import { WorkspaceManager } from './workspace.js';
|
|
14
14
|
import { PersonaManager } from '../personas/persona-manager.js';
|
|
15
|
+
import { AgentContext } from './types/agent-context.js';
|
|
16
|
+
import { WorkerResult } from './worker-agent.js';
|
|
15
17
|
import { Message } from '../models/base.js';
|
|
16
18
|
export interface ManagerTask {
|
|
17
19
|
userRequest: string;
|
|
@@ -20,6 +22,8 @@ export interface ManagerTask {
|
|
|
20
22
|
export interface ManagerPlan {
|
|
21
23
|
subtasks: string[];
|
|
22
24
|
reasoning: string;
|
|
25
|
+
/** True when the user's message is purely conversational — no task execution needed. */
|
|
26
|
+
conversational?: boolean;
|
|
23
27
|
}
|
|
24
28
|
export interface ManagerDecision {
|
|
25
29
|
isComplete: boolean;
|
|
@@ -33,21 +37,51 @@ export declare class ManagerAgent {
|
|
|
33
37
|
private conversationHistory;
|
|
34
38
|
constructor(orchestrator: ModelOrchestrator, workspace: WorkspaceManager, personaManager?: PersonaManager);
|
|
35
39
|
private initializeSystemPrompt;
|
|
40
|
+
/**
|
|
41
|
+
* Get system messages with fresh directive + optional AgentContext.
|
|
42
|
+
* Follows the per-call directive injection pattern from JivaAgent.getSystemMessages().
|
|
43
|
+
*/
|
|
44
|
+
private getSystemMessages;
|
|
36
45
|
/**
|
|
37
46
|
* Create a plan for handling the user's request
|
|
38
47
|
*/
|
|
39
|
-
createPlan(task: ManagerTask): Promise<ManagerPlan>;
|
|
48
|
+
createPlan(task: ManagerTask, agentContext?: AgentContext): Promise<ManagerPlan>;
|
|
40
49
|
/**
|
|
41
50
|
* Review Worker's results and decide next action
|
|
42
51
|
*/
|
|
43
52
|
reviewResults(subtask: string, workerResult: string): Promise<ManagerDecision>;
|
|
53
|
+
/**
|
|
54
|
+
* Review a Worker's subtask result and decide whether to accept it or request a retry.
|
|
55
|
+
*
|
|
56
|
+
* Rules (fast-path first — avoids an LLM call for the common case):
|
|
57
|
+
* - AUTO-ACCEPT: tools were used AND the result is substantive (>100 chars)
|
|
58
|
+
* - AUTO-REJECT: no tools were used at all (pure hallucination / text-only response)
|
|
59
|
+
* - LLM REVIEW: tools were used but result is suspiciously short (<100 chars)
|
|
60
|
+
*
|
|
61
|
+
* Returns { accepted: true } or { accepted: false, specificCorrection: "…" }.
|
|
62
|
+
* The specificCorrection is a clean, targeted instruction — NOT a stacked prefix.
|
|
63
|
+
*/
|
|
64
|
+
reviewSubtaskResult(subtask: string, workerResult: WorkerResult, originalRequest: string): Promise<{
|
|
65
|
+
accepted: boolean;
|
|
66
|
+
specificCorrection?: string;
|
|
67
|
+
}>;
|
|
44
68
|
/**
|
|
45
69
|
* Create final response for user
|
|
46
70
|
*/
|
|
47
71
|
synthesizeResponse(allResults: {
|
|
48
72
|
subtask: string;
|
|
49
73
|
result: string;
|
|
50
|
-
|
|
74
|
+
accepted?: boolean;
|
|
75
|
+
}[], agentContext?: AgentContext): Promise<string>;
|
|
76
|
+
/**
|
|
77
|
+
* Respond directly to a conversational message — no planning or tool execution.
|
|
78
|
+
* Used when `createPlan()` signals `conversational: true`.
|
|
79
|
+
*
|
|
80
|
+
* @param userConversationHistory - The full user-facing conversation so far
|
|
81
|
+
* (already includes the current user message at the tail).
|
|
82
|
+
* @param agentContext - Current agent context for directive injection.
|
|
83
|
+
*/
|
|
84
|
+
directReply(userConversationHistory: Message[], agentContext?: AgentContext): Promise<string>;
|
|
51
85
|
/**
|
|
52
86
|
* Parse a JSON plan from LLM output. Extracts the first JSON object found.
|
|
53
87
|
*/
|
|
@@ -59,6 +93,8 @@ export declare class ManagerAgent {
|
|
|
59
93
|
/**
|
|
60
94
|
* Validate that each subtask is a reasonable, actionable instruction.
|
|
61
95
|
* Removes garbage entries like separators, prose fragments, or empty strings.
|
|
96
|
+
*
|
|
97
|
+
* @param isConversational - When true, allow an empty list (no min-1 enforcement).
|
|
62
98
|
*/
|
|
63
99
|
private validateSubtasks;
|
|
64
100
|
private extractSection;
|
|
@@ -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,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,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;
|
|
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,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,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;IAClB,wFAAwF;IACxF,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;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,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,mBAAmB,CAAiB;gBAEhC,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAAE,cAAc,CAAC,EAAE,cAAc;IAgBzG,OAAO,CAAC,sBAAsB;IA0C9B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAwBzB;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAwFtF;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAoDpF;;;;;;;;;;OAUG;IACG,mBAAmB,CACvB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAuD9D;;OAEG;IACG,kBAAkB,CAAC,UAAU,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IA2C7I;;;;;;;OAOG;IACG,WAAW,CACf,uBAAuB,EAAE,OAAO,EAAE,EAClC,YAAY,CAAC,EAAE,YAAY,GAC1B,OAAO,CAAC,MAAM,CAAC;IAUlB;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;YACW,gBAAgB;IAmC9B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,cAAc;IAMtB,sBAAsB,IAAI,OAAO,EAAE;IAInC,iBAAiB;CAIlB"}
|