jiva-core 0.3.2 → 0.3.3-dev.bd250bd
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/.github/workflows/npm-publish-dev.yml +39 -0
- package/.github/workflows/npm-publish.yml +31 -0
- package/Dockerfile +12 -7
- package/README.md +10 -0
- package/cloud-run.yaml +1 -1
- package/cloud-run.yaml.template +1 -1
- 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 +46 -19
- package/dist/core/client-agent.d.ts.map +1 -1
- package/dist/core/client-agent.js +332 -219
- package/dist/core/client-agent.js.map +1 -1
- package/dist/core/config.d.ts +73 -17
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +20 -6
- package/dist/core/config.js.map +1 -1
- package/dist/core/dual-agent.d.ts +20 -0
- package/dist/core/dual-agent.d.ts.map +1 -1
- package/dist/core/dual-agent.js +217 -49
- package/dist/core/dual-agent.js.map +1 -1
- package/dist/core/manager-agent.d.ts +9 -2
- package/dist/core/manager-agent.d.ts.map +1 -1
- package/dist/core/manager-agent.js +43 -14
- 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 +73 -0
- package/dist/core/utils/serialize-agent-context.js.map +1 -0
- package/dist/core/worker-agent.d.ts +9 -1
- package/dist/core/worker-agent.d.ts.map +1 -1
- package/dist/core/worker-agent.js +235 -39
- package/dist/core/worker-agent.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/cli/index.js +91 -14
- package/dist/interfaces/cli/index.js.map +1 -1
- package/dist/interfaces/cli/setup-wizard.d.ts.map +1 -1
- package/dist/interfaces/cli/setup-wizard.js +93 -1
- package/dist/interfaces/cli/setup-wizard.js.map +1 -1
- package/dist/interfaces/http/session-manager.d.ts.map +1 -1
- package/dist/interfaces/http/session-manager.js +34 -7
- package/dist/interfaces/http/session-manager.js.map +1 -1
- package/dist/models/krutrim.d.ts +1 -1
- package/dist/models/krutrim.d.ts.map +1 -1
- package/dist/models/krutrim.js +4 -3
- 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/dist/storage/gcp-bucket-provider.d.ts.map +1 -1
- package/dist/storage/gcp-bucket-provider.js +1 -11
- package/dist/storage/gcp-bucket-provider.js.map +1 -1
- package/dist/utils/platform.d.ts +13 -0
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +23 -0
- package/dist/utils/platform.js.map +1 -0
- package/package.json +7 -8
- package/.claude/settings.local.json +0 -18
package/dist/core/dual-agent.js
CHANGED
|
@@ -10,6 +10,7 @@ import { AgentSpawner } from './agent-spawner.js';
|
|
|
10
10
|
import { ManagerAgent } from './manager-agent.js';
|
|
11
11
|
import { WorkerAgent } from './worker-agent.js';
|
|
12
12
|
import { ClientAgent } from './client-agent.js';
|
|
13
|
+
import { serializeAgentContext } from './utils/serialize-agent-context.js';
|
|
13
14
|
import { logger } from '../utils/logger.js';
|
|
14
15
|
import { orchestrationLogger } from '../utils/orchestration-logger.js';
|
|
15
16
|
export class DualAgent {
|
|
@@ -67,6 +68,125 @@ export class DualAgent {
|
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Build a shared AgentContext for the current turn.
|
|
73
|
+
* Single source of truth: all three agents receive the same context object.
|
|
74
|
+
*
|
|
75
|
+
* Strategy:
|
|
76
|
+
* - Option A (primary): If ConversationManager is available, condense + last N messages.
|
|
77
|
+
* - Option B (fallback): Keep last N messages of all roles when ConversationManager is null.
|
|
78
|
+
*/
|
|
79
|
+
buildAgentContext() {
|
|
80
|
+
// Fresh directive each turn
|
|
81
|
+
const directive = this.workspace.getDirectivePrompt() || undefined;
|
|
82
|
+
// Conversation history: include user + assistant + tool roles
|
|
83
|
+
const allRoleMessages = this.userConversationHistory.filter(m => m.role === 'user' || m.role === 'assistant' || m.role === 'tool');
|
|
84
|
+
// Option A uses summary from condensed history; Option B uses raw tail.
|
|
85
|
+
// After condensing (which happens before this call in chat()), the first
|
|
86
|
+
// system-role entry starting with "[Previous conversation summary]" serves
|
|
87
|
+
// as the summary.
|
|
88
|
+
let summary;
|
|
89
|
+
if (this.conversationManager) {
|
|
90
|
+
const summaryMsg = this.userConversationHistory.find(m => m.role === 'system' && typeof m.content === 'string' && m.content.startsWith('[Previous conversation summary]'));
|
|
91
|
+
if (summaryMsg && typeof summaryMsg.content === 'string') {
|
|
92
|
+
summary = summaryMsg.content;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Pass the full conversation history — the conversation manager already
|
|
96
|
+
// condenses history (at condensingThreshold) before this is called, so
|
|
97
|
+
// no artificial slice is needed here. The 128k context window handles the rest.
|
|
98
|
+
const recentMessages = allRoleMessages;
|
|
99
|
+
// Persona context
|
|
100
|
+
let persona;
|
|
101
|
+
if (this.personaManager) {
|
|
102
|
+
const activePersona = this.personaManager.getActivePersona();
|
|
103
|
+
if (activePersona) {
|
|
104
|
+
persona = {
|
|
105
|
+
name: activePersona.manifest.name,
|
|
106
|
+
systemPromptAddition: this.personaManager.getSystemPromptAddition(),
|
|
107
|
+
validationContext: this.buildValidationContext(),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
workspaceDir: this.workspace.getWorkspaceDir(),
|
|
113
|
+
directive,
|
|
114
|
+
conversation: {
|
|
115
|
+
summary,
|
|
116
|
+
recentMessages,
|
|
117
|
+
},
|
|
118
|
+
persona,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Build validation-specific persona context for Client.
|
|
123
|
+
* Contains persona name/description + skill names + constraints but NOT
|
|
124
|
+
* the full execution persona block (avoids Client trying to direct execution).
|
|
125
|
+
*/
|
|
126
|
+
buildValidationContext() {
|
|
127
|
+
if (!this.personaManager)
|
|
128
|
+
return undefined;
|
|
129
|
+
const activePersona = this.personaManager.getActivePersona();
|
|
130
|
+
if (!activePersona)
|
|
131
|
+
return undefined;
|
|
132
|
+
const skills = this.personaManager.getActiveSkills();
|
|
133
|
+
const skillLines = skills.map(s => {
|
|
134
|
+
let line = `- ${s.metadata.name}: ${s.metadata.description}`;
|
|
135
|
+
if (s.metadata.allowedTools && s.metadata.allowedTools.length > 0) {
|
|
136
|
+
line += `\n Allowed tools: ${s.metadata.allowedTools.join(', ')}`;
|
|
137
|
+
}
|
|
138
|
+
return line;
|
|
139
|
+
}).join('\n');
|
|
140
|
+
return `ACTIVE PERSONA: ${activePersona.manifest.name} — ${activePersona.manifest.description}
|
|
141
|
+
|
|
142
|
+
SKILLS AVAILABLE TO WORKER:
|
|
143
|
+
${skillLines || '(no skills registered)'}
|
|
144
|
+
|
|
145
|
+
VALIDATION GUIDANCE:
|
|
146
|
+
- Worker is expected to use skills above when relevant to the user's request.
|
|
147
|
+
- Validate that Worker's tool usage is consistent with the skills it was expected to apply.
|
|
148
|
+
- Validate that any mandatory steps or safety constraints defined above were followed.`;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Determine corrective strategy for a subtask based on CompletionSignal.
|
|
152
|
+
* Returns a description of the action taken, or null if no correction needed.
|
|
153
|
+
*/
|
|
154
|
+
applyCorrectionStrategy(signal, subtask, retryCount, maxRetries, subtasksToExecute, results) {
|
|
155
|
+
if (signal.confidence === 'high')
|
|
156
|
+
return null;
|
|
157
|
+
const strategy = signal.suggestedStrategy || 'retry';
|
|
158
|
+
// Budget exhausted
|
|
159
|
+
if (retryCount >= maxRetries) {
|
|
160
|
+
if (signal.progressMade) {
|
|
161
|
+
logger.info(`[DualAgent] Retry budget exhausted but progress was made — continuing to synthesis`);
|
|
162
|
+
return null;
|
|
163
|
+
}
|
|
164
|
+
logger.warn(`[DualAgent] Retry budget exhausted with no progress — skipping subtask`);
|
|
165
|
+
return null; // handled by caller
|
|
166
|
+
}
|
|
167
|
+
switch (strategy) {
|
|
168
|
+
case 'retry':
|
|
169
|
+
return subtask; // re-queue same instruction
|
|
170
|
+
case 'rephrase':
|
|
171
|
+
return `[CLARIFIED] ${subtask} — Please ensure the correct tools and approach are used. Avoid scope drift.`;
|
|
172
|
+
case 'decompose':
|
|
173
|
+
// Manager would ideally split this; we approximate by re-queuing with guidance
|
|
174
|
+
return `[DECOMPOSE] Break this task into smaller concrete steps and execute them: ${subtask}`;
|
|
175
|
+
case 'skip':
|
|
176
|
+
logger.warn(`[DualAgent] Strategy=skip for subtask: ${subtask}`);
|
|
177
|
+
return null; // caller skips
|
|
178
|
+
case 'escalate':
|
|
179
|
+
// Do NOT overwrite results[] here. The Worker's actual result (with
|
|
180
|
+
// specific tool error detail from failedTools) was already pushed into
|
|
181
|
+
// results[] before Client validation ran. The approved:false flag on
|
|
182
|
+
// that entry is enough for synthesizeResponse() to handle it honestly.
|
|
183
|
+
// Pushing a generic ⚠️ string would lose the specific error information.
|
|
184
|
+
logger.warn(`[DualAgent] Escalating subtask to user — evidence-backed failure, no retry: ${subtask}`);
|
|
185
|
+
return null;
|
|
186
|
+
default:
|
|
187
|
+
return subtask;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
70
190
|
/**
|
|
71
191
|
* Process user message using dual-agent architecture
|
|
72
192
|
*/
|
|
@@ -85,6 +205,8 @@ export class DualAgent {
|
|
|
85
205
|
role: 'user',
|
|
86
206
|
content: userMessage,
|
|
87
207
|
});
|
|
208
|
+
// Build shared context ONCE per turn (single source of truth)
|
|
209
|
+
const agentContext = this.buildAgentContext();
|
|
88
210
|
const allToolsUsed = [];
|
|
89
211
|
let totalIterations = 0;
|
|
90
212
|
// PHASE 1: Manager creates plan
|
|
@@ -94,51 +216,100 @@ export class DualAgent {
|
|
|
94
216
|
orchestrationLogger.logPhaseStart('PLANNING');
|
|
95
217
|
const plan = await this.manager.createPlan({
|
|
96
218
|
userRequest: userMessage,
|
|
97
|
-
context:
|
|
98
|
-
});
|
|
219
|
+
context: serializeAgentContext(agentContext, 'manager'),
|
|
220
|
+
}, agentContext);
|
|
99
221
|
orchestrationLogger.logPhaseEnd('PLANNING', Date.now() - phaseStartTime);
|
|
100
|
-
// PHASE 2: Execute subtasks
|
|
222
|
+
// PHASE 2: Execute subtasks with per-subtask retry budget
|
|
101
223
|
logger.info('\n[PHASE 2: Execution]');
|
|
102
224
|
logger.info('─────────────────────────────────────────');
|
|
103
225
|
const executionStartTime = Date.now();
|
|
104
226
|
orchestrationLogger.logPhaseStart('EXECUTION');
|
|
105
227
|
const results = [];
|
|
106
228
|
const subtasksToExecute = plan.subtasks.slice(0, this.maxSubtasks);
|
|
229
|
+
const MAX_RETRIES_PER_SUBTASK = 2;
|
|
230
|
+
// Track per-subtask retry counts (keyed by original subtask text)
|
|
231
|
+
const subtaskRetryCounts = new Map();
|
|
107
232
|
for (let i = 0; i < subtasksToExecute.length; i++) {
|
|
108
233
|
const subtask = subtasksToExecute[i];
|
|
109
234
|
logger.info(`\n[Subtask ${i + 1}/${subtasksToExecute.length}] ${subtask}`);
|
|
110
|
-
// Worker executes subtask
|
|
235
|
+
// Worker executes subtask with shared context
|
|
111
236
|
const workerResult = await this.worker.executeSubtask({
|
|
112
237
|
instruction: subtask,
|
|
113
|
-
context:
|
|
114
|
-
});
|
|
238
|
+
context: serializeAgentContext(agentContext, 'worker'),
|
|
239
|
+
}, agentContext);
|
|
115
240
|
totalIterations += 1;
|
|
116
241
|
allToolsUsed.push(...workerResult.toolsUsed);
|
|
242
|
+
// Client validates Worker's result with shared context (adaptive involvement)
|
|
243
|
+
const validation = await this.client.validate(userMessage, plan.subtasks, workerResult, undefined, // let Client determine involvement level
|
|
244
|
+
agentContext);
|
|
245
|
+
// Record result alongside Client's approval verdict.
|
|
246
|
+
// The synthesis phase uses this to produce an honest response when
|
|
247
|
+
// some subtasks were not completed successfully.
|
|
117
248
|
results.push({
|
|
118
249
|
subtask,
|
|
119
250
|
result: workerResult.result,
|
|
251
|
+
approved: validation.approved,
|
|
120
252
|
});
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
253
|
+
if (!validation.approved) {
|
|
254
|
+
const signal = validation.completionSignal;
|
|
255
|
+
const retryCount = subtaskRetryCounts.get(subtask) || 0;
|
|
256
|
+
// Build a context-correction prefix so the Worker isn't misled by prior
|
|
257
|
+
// conversation turns that claimed success for the same task.
|
|
258
|
+
const contextCorrectionPrefix = `CONTEXT CORRECTION: Previous conversation messages claiming this task was already completed are INCORRECT — those claims were not validated. You MUST execute the required actions now using the appropriate tools. Do NOT produce a text-only response.
|
|
259
|
+
|
|
260
|
+
`;
|
|
261
|
+
if (signal) {
|
|
262
|
+
logger.info(`[DualAgent] CompletionSignal: confidence=${signal.confidence}, blocker=${signal.blockerType || 'none'}, strategy=${signal.suggestedStrategy || 'none'}, progress=${signal.progressMade}`);
|
|
263
|
+
const rawCorrection = this.applyCorrectionStrategy(signal, subtask, retryCount, MAX_RETRIES_PER_SUBTASK, subtasksToExecute, results);
|
|
264
|
+
const correction = rawCorrection ? `${contextCorrectionPrefix}${rawCorrection}` : null;
|
|
265
|
+
if (correction) {
|
|
266
|
+
// Deduplicate against the pending queue only — NOT against results.
|
|
267
|
+
// Correction subtasks intentionally re-execute something that failed,
|
|
268
|
+
// so checking results would always flag a retry as a duplicate.
|
|
269
|
+
const normalizedCorrection = correction.toLowerCase().trim();
|
|
270
|
+
const isDuplicate = subtasksToExecute.some(existing => existing.toLowerCase().trim() === normalizedCorrection);
|
|
271
|
+
if (isDuplicate) {
|
|
272
|
+
logger.warn(`[DualAgent] Skipping duplicate correction subtask`);
|
|
273
|
+
}
|
|
274
|
+
else if (subtasksToExecute.length < this.maxSubtasks) {
|
|
275
|
+
// Insert correction immediately after current position so it runs
|
|
276
|
+
// BEFORE any subsequent subtasks that may depend on this one.
|
|
277
|
+
subtasksToExecute.splice(i + 1, 0, correction);
|
|
278
|
+
subtaskRetryCounts.set(subtask, retryCount + 1);
|
|
279
|
+
logger.info(`[DualAgent] Inserted correction at position ${i + 2} via ${signal.suggestedStrategy} (${subtasksToExecute.length} total, retry ${retryCount + 1}/${MAX_RETRIES_PER_SUBTASK})`);
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
logger.warn(`[DualAgent] Cannot add correction — maxSubtasks (${this.maxSubtasks}) reached`);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
else if (!signal.progressMade && retryCount >= MAX_RETRIES_PER_SUBTASK) {
|
|
286
|
+
logger.warn(`[DualAgent] No progress after ${MAX_RETRIES_PER_SUBTASK} retries — skipping subtask`);
|
|
287
|
+
}
|
|
132
288
|
}
|
|
133
|
-
else if (
|
|
134
|
-
|
|
135
|
-
logger.info(`[Client]
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
289
|
+
else if (validation.nextAction) {
|
|
290
|
+
// Fallback to legacy correction if no signal present
|
|
291
|
+
logger.info(`[Client] Validation failed: ${validation.issues.join(', ')}`);
|
|
292
|
+
logger.info(`[Client] Requesting correction: ${validation.nextAction}`);
|
|
293
|
+
const correction = `${contextCorrectionPrefix}${validation.nextAction}`;
|
|
294
|
+
const normalizedCorrection = correction.toLowerCase().trim();
|
|
295
|
+
// Only deduplicate against the pending queue — corrections are intentional
|
|
296
|
+
// re-attempts, so matching against results would always skip them.
|
|
297
|
+
const isDuplicate = subtasksToExecute.some(existing => existing.toLowerCase().trim() === normalizedCorrection);
|
|
298
|
+
if (isDuplicate) {
|
|
299
|
+
logger.warn(`[Client] Skipping duplicate correction subtask`);
|
|
300
|
+
}
|
|
301
|
+
else if (subtasksToExecute.length < this.maxSubtasks) {
|
|
302
|
+
// Insert correction immediately after current position so it runs
|
|
303
|
+
// BEFORE any subsequent subtasks that may depend on this one.
|
|
304
|
+
subtasksToExecute.splice(i + 1, 0, correction);
|
|
305
|
+
logger.info(`[Client] Inserted correction at position ${i + 2} (${subtasksToExecute.length} total)`);
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
logger.warn(`[Client] Cannot add correction - maxSubtasks (${this.maxSubtasks}) reached`);
|
|
309
|
+
}
|
|
139
310
|
}
|
|
140
311
|
}
|
|
141
|
-
else
|
|
312
|
+
else {
|
|
142
313
|
logger.info(`[Client] Validation passed (${validation.involvementLevel} level)`);
|
|
143
314
|
}
|
|
144
315
|
}
|
|
@@ -148,7 +319,7 @@ export class DualAgent {
|
|
|
148
319
|
logger.info('─────────────────────────────────────────');
|
|
149
320
|
const synthesisStartTime = Date.now();
|
|
150
321
|
orchestrationLogger.logPhaseStart('SYNTHESIS');
|
|
151
|
-
const finalResponse = await this.synthesizeResponse(plan, results);
|
|
322
|
+
const finalResponse = await this.synthesizeResponse(plan, results, agentContext);
|
|
152
323
|
totalIterations += 1;
|
|
153
324
|
orchestrationLogger.logPhaseEnd('SYNTHESIS', Date.now() - synthesisStartTime);
|
|
154
325
|
// Add assistant response to user conversation history
|
|
@@ -174,33 +345,26 @@ export class DualAgent {
|
|
|
174
345
|
},
|
|
175
346
|
};
|
|
176
347
|
}
|
|
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);
|
|
348
|
+
async synthesizeResponse(plan, results, agentContext) {
|
|
349
|
+
// Always have the Manager synthesize a final response.
|
|
350
|
+
//
|
|
351
|
+
// The previous short-circuit (returning Worker's raw result when it was a
|
|
352
|
+
// single short subtask) caused the user to see Worker-internal operational
|
|
353
|
+
// strings like "Task work completed (1 operations performed). Max iterations
|
|
354
|
+
// reached but all tool operations succeeded." as their final answer. The
|
|
355
|
+
// Manager synthesis step is cheap (one LLM call) and guarantees the user
|
|
356
|
+
// always receives a properly formatted, contextually accurate response.
|
|
357
|
+
return await this.manager.synthesizeResponse(results, agentContext);
|
|
197
358
|
}
|
|
198
359
|
getRecentContext() {
|
|
199
|
-
//
|
|
360
|
+
// Include user + assistant + tool messages for full context
|
|
200
361
|
const recent = this.userConversationHistory
|
|
201
|
-
.filter(m => m.role === 'user')
|
|
202
|
-
.slice(-
|
|
203
|
-
.map(m =>
|
|
362
|
+
.filter(m => m.role === 'user' || m.role === 'assistant' || m.role === 'tool')
|
|
363
|
+
.slice(-6)
|
|
364
|
+
.map(m => {
|
|
365
|
+
const content = typeof m.content === 'string' ? m.content : JSON.stringify(m.content);
|
|
366
|
+
return `[${m.role.toUpperCase()}]: ${content}`;
|
|
367
|
+
})
|
|
204
368
|
.join('\n');
|
|
205
369
|
return recent || '';
|
|
206
370
|
}
|
|
@@ -216,6 +380,10 @@ export class DualAgent {
|
|
|
216
380
|
resetConversation() {
|
|
217
381
|
this.userConversationHistory = [];
|
|
218
382
|
this.manager.resetConversation();
|
|
383
|
+
this.client.resetSessionState();
|
|
384
|
+
// Null out the conversation ID so the next autoSave generates a fresh file
|
|
385
|
+
// rather than continuing to append to the previous conversation's storage entry.
|
|
386
|
+
this.conversationManager?.setCurrentConversationId(null);
|
|
219
387
|
logger.info('[*] Conversation reset');
|
|
220
388
|
}
|
|
221
389
|
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":"AAAA;;;;;;;GAOG;AAOH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AA0BvE,MAAM,OAAO,SAAS;IACZ,YAAY,CAAoB;IAChC,UAAU,CAAmB;IAC7B,SAAS,CAAmB;IAC5B,mBAAmB,CAA6B;IAChD,cAAc,CAAwB;IACtC,YAAY,GAAwB,IAAI,CAAC;IAEzC,OAAO,CAAe;IACtB,MAAM,CAAc;IACpB,MAAM,CAAc;IAEpB,WAAW,CAAS;IACpB,aAAa,CAAS;IACtB,aAAa,CAAS;IACtB,QAAQ,CAAU;IAClB,mBAAmB,CAAS;IAE5B,uBAAuB,GAAc,EAAE,CAAC;IAEhD,YAAY,MAAuB;QACjC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,IAAI,CAAC;QAC9D,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC;QAEpD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,kCAAkC;QAClF,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC;QAC1C,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAC;QAE5D,+CAA+C;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC,CAAC;QACrG,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC,CAAC;QACxI,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAElE,gEAAgE;QAChE,iDAAiD;QACjD,IAAI,qBAAqB,GAAmB,IAAI,CAAC,cAAe,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC;YACrE,wEAAwE;YACxE,8DAA8D;YAC9D,qBAAqB,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACtD,uEAAuE;QACzE,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAClC,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,mBAAmB,EACxB,qBAAqB,EACrB;YACE,QAAQ,EAAE,IAAI,CAAC,aAAa;YAC5B,YAAY,EAAE,CAAC;SAChB,CACF,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE/C,MAAM,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC9E,MAAM,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,cAAc,GAAG,CAAC,CAAC;QAEjK,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;YAC7D,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,uBAAuB,aAAa,CAAC,QAAQ,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,CAAC,MAAM,UAAU,CAAC,CAAC;YAC5G,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,iBAAiB;QACvB,4BAA4B;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,IAAI,SAAS,CAAC;QAEnE,8DAA8D;QAC9D,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CACzD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CACtE,CAAC;QAEF,wEAAwE;QACxE,yEAAyE;QACzE,2EAA2E;QAC3E,kBAAkB;QAClB,IAAI,OAA2B,CAAC;QAChC,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAClD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,iCAAiC,CAAC,CACrH,CAAC;YACF,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzD,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,uEAAuE;QACvE,gFAAgF;QAChF,MAAM,cAAc,GAAG,eAAe,CAAC;QAEvC,kBAAkB;QAClB,IAAI,OAAgC,CAAC;QACrC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;YAC7D,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,GAAG;oBACR,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,IAAI;oBACjC,oBAAoB,EAAE,IAAI,CAAC,cAAc,CAAC,uBAAuB,EAAE;oBACnE,iBAAiB,EAAE,IAAI,CAAC,sBAAsB,EAAE;iBACjD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE;YAC9C,SAAS;YACT,YAAY,EAAE;gBACZ,OAAO;gBACP,cAAc;aACf;YACD,OAAO;SACR,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,sBAAsB;QAC5B,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,SAAS,CAAC;QAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAC7D,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC;QAErC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAChC,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC7D,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClE,IAAI,IAAI,sBAAsB,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrE,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,mBAAmB,aAAa,CAAC,QAAQ,CAAC,IAAI,MAAM,aAAa,CAAC,QAAQ,CAAC,WAAW;;;EAG/F,UAAU,IAAI,wBAAwB;;;;;uFAK+C,CAAC;IACtF,CAAC;IAED;;;OAGG;IACK,uBAAuB,CAC7B,MAAwB,EACxB,OAAe,EACf,UAAkB,EAClB,UAAkB,EAClB,iBAA2B,EAC3B,OAA8C;QAE9C,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAE9C,MAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,IAAI,OAAO,CAAC;QAErD,mBAAmB;QACnB,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;gBAClG,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;YACtF,OAAO,IAAI,CAAC,CAAC,oBAAoB;QACnC,CAAC;QAED,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,OAAO;gBACV,OAAO,OAAO,CAAC,CAAC,4BAA4B;YAE9C,KAAK,UAAU;gBACb,OAAO,eAAe,OAAO,8EAA8E,CAAC;YAE9G,KAAK,WAAW;gBACd,+EAA+E;gBAC/E,OAAO,6EAA6E,OAAO,EAAE,CAAC;YAEhG,KAAK,MAAM;gBACT,MAAM,CAAC,IAAI,CAAC,0CAA0C,OAAO,EAAE,CAAC,CAAC;gBACjE,OAAO,IAAI,CAAC,CAAC,eAAe;YAE9B,KAAK,UAAU;gBACb,oEAAoE;gBACpE,uEAAuE;gBACvE,qEAAqE;gBACrE,uEAAuE;gBACvE,yEAAyE;gBACzE,MAAM,CAAC,IAAI,CAAC,+EAA+E,OAAO,EAAE,CAAC,CAAC;gBACtG,OAAO,IAAI,CAAC;YAEd;gBACE,OAAO,OAAO,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,WAAmB;QAC5B,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAExD,mBAAmB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAEhD,mEAAmE;QACnE,IAAI,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC/F,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACtD,IAAI,CAAC,uBAAuB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAChF,IAAI,CAAC,uBAAuB,EAC5B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,CAC3C,CAAC;QACJ,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;YAChC,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;QAEH,8DAA8D;QAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE9C,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,gCAAgC;QAChC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAEzD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,mBAAmB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAE9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YACzC,WAAW,EAAE,WAAW;YACxB,OAAO,EAAE,qBAAqB,CAAC,YAAY,EAAE,SAAS,CAAC;SACxD,EAAE,YAAY,CAAC,CAAC;QAEjB,mBAAmB,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC,CAAC;QAEzE,0DAA0D;QAC1D,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAEzD,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,mBAAmB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAE/C,MAAM,OAAO,GAA6D,EAAE,CAAC;QAC7E,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACnE,MAAM,uBAAuB,GAAG,CAAC,CAAC;QAElC,kEAAkE;QAClE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;QAErD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAErC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;YAE3E,8CAA8C;YAC9C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;gBACpD,WAAW,EAAE,OAAO;gBACpB,OAAO,EAAE,qBAAqB,CAAC,YAAY,EAAE,QAAQ,CAAC;aACvD,EAAE,YAAY,CAAC,CAAC;YAEjB,eAAe,IAAI,CAAC,CAAC;YACrB,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YAE7C,8EAA8E;YAC9E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAC3C,WAAW,EACX,IAAI,CAAC,QAAQ,EACb,YAAY,EACZ,SAAS,EAAE,yCAAyC;YACpD,YAAY,CACb,CAAC;YAEF,qDAAqD;YACrD,mEAAmE;YACnE,iDAAiD;YACjD,OAAO,CAAC,IAAI,CAAC;gBACX,OAAO;gBACP,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,UAAU,CAAC,gBAAgB,CAAC;gBAC3C,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAExD,wEAAwE;gBACxE,6DAA6D;gBAC7D,MAAM,uBAAuB,GAAG;;CAEvC,CAAC;gBAEM,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,IAAI,CAAC,4CAA4C,MAAM,CAAC,UAAU,aAAa,MAAM,CAAC,WAAW,IAAI,MAAM,cAAc,MAAM,CAAC,iBAAiB,IAAI,MAAM,cAAc,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;oBAEvM,MAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,CAChD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,OAAO,CACjF,CAAC;oBAEF,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,uBAAuB,GAAG,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;oBAEvF,IAAI,UAAU,EAAE,CAAC;wBACf,oEAAoE;wBACpE,sEAAsE;wBACtE,gEAAgE;wBAChE,MAAM,oBAAoB,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;wBAC7D,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CACpD,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,oBAAoB,CACvD,CAAC;wBAEF,IAAI,WAAW,EAAE,CAAC;4BAChB,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;wBACnE,CAAC;6BAAM,IAAI,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;4BACvD,kEAAkE;4BAClE,8DAA8D;4BAC9D,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;4BAC/C,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;4BAChD,MAAM,CAAC,IAAI,CAAC,+CAA+C,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,MAAM,iBAAiB,UAAU,GAAG,CAAC,IAAI,uBAAuB,GAAG,CAAC,CAAC;wBAC9L,CAAC;6BAAM,CAAC;4BACN,MAAM,CAAC,IAAI,CAAC,oDAAoD,IAAI,CAAC,WAAW,WAAW,CAAC,CAAC;wBAC/F,CAAC;oBACH,CAAC;yBAAM,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,UAAU,IAAI,uBAAuB,EAAE,CAAC;wBACzE,MAAM,CAAC,IAAI,CAAC,iCAAiC,uBAAuB,6BAA6B,CAAC,CAAC;oBACrG,CAAC;gBACH,CAAC;qBAAM,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;oBACjC,qDAAqD;oBACrD,MAAM,CAAC,IAAI,CAAC,+BAA+B,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC3E,MAAM,CAAC,IAAI,CAAC,mCAAmC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;oBAExE,MAAM,UAAU,GAAG,GAAG,uBAAuB,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;oBACxE,MAAM,oBAAoB,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;oBAC7D,2EAA2E;oBAC3E,mEAAmE;oBACnE,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CACpD,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,oBAAoB,CACvD,CAAC;oBAEF,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;oBAChE,CAAC;yBAAM,IAAI,iBAAiB,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;wBACvD,kEAAkE;wBAClE,8DAA8D;wBAC9D,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;wBAC/C,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC,MAAM,SAAS,CAAC,CAAC;oBACvG,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,CAAC,iDAAiD,IAAI,CAAC,WAAW,WAAW,CAAC,CAAC;oBAC5F,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,+BAA+B,UAAU,CAAC,gBAAgB,SAAS,CAAC,CAAC;YACnF,CAAC;QACH,CAAC;QAED,mBAAmB,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAC,CAAC;QAE9E,qCAAqC;QACrC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAEzD,MAAM,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtC,mBAAmB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAE/C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACjF,eAAe,IAAI,CAAC,CAAC;QAErB,mBAAmB,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAC,CAAC;QAE9E,sDAAsD;QACtD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;YAChC,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QAEH,uBAAuB;QACvB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CACrC,IAAI,CAAC,uBAAuB,EAC5B,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,EAChC,IAAI,CAAC,YAAY,CAClB,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC,iBAAiB,eAAe,gBAAgB,YAAY,CAAC,MAAM,aAAa,CAAC,CAAC;QAC9F,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAE1D,mBAAmB,CAAC,gBAAgB,CAAC,aAAa,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;QAEnF,OAAO;YACL,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,eAAe;YAC3B,SAAS,EAAE,YAAY;YACvB,IAAI,EAAE;gBACJ,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B;SACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,IAA+C,EAC/C,OAAiE,EACjE,YAA2B;QAE3B,uDAAuD;QACvD,EAAE;QACF,0EAA0E;QAC1E,2EAA2E;QAC3E,6EAA6E;QAC7E,0EAA0E;QAC1E,yEAAyE;QACzE,wEAAwE;QACxE,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACtE,CAAC;IAEO,gBAAgB;QACtB,4DAA4D;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB;aACxC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;aAC7E,KAAK,CAAC,CAAC,CAAC,CAAC;aACT,GAAG,CAAC,CAAC,CAAC,EAAE;YACP,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACtF,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,OAAO,EAAE,CAAC;QACjD,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAE1C,yBAAyB;QACzB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAClD,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAChC,2EAA2E;QAC3E,iFAAiF;QACjF,IAAI,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;IAED,sBAAsB;QACpB,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACtC,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,sBAAsB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,OAAqB;QACnC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CACxD,IAAI,CAAC,uBAAuB,EAC5B,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,EAChC,SAAS,EACT,IAAI,CAAC,YAAY,CAClB,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;QAC7C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,EAAU;QAC/B,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,uBAAuB,GAAG,YAAY,CAAC,QAAQ,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAEjC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,CAAC;IAC5D,CAAC;CACF"}
|
|
@@ -12,6 +12,7 @@
|
|
|
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';
|
|
15
16
|
import { Message } from '../models/base.js';
|
|
16
17
|
export interface ManagerTask {
|
|
17
18
|
userRequest: string;
|
|
@@ -33,10 +34,15 @@ export declare class ManagerAgent {
|
|
|
33
34
|
private conversationHistory;
|
|
34
35
|
constructor(orchestrator: ModelOrchestrator, workspace: WorkspaceManager, personaManager?: PersonaManager);
|
|
35
36
|
private initializeSystemPrompt;
|
|
37
|
+
/**
|
|
38
|
+
* Get system messages with fresh directive + optional AgentContext.
|
|
39
|
+
* Follows the per-call directive injection pattern from JivaAgent.getSystemMessages().
|
|
40
|
+
*/
|
|
41
|
+
private getSystemMessages;
|
|
36
42
|
/**
|
|
37
43
|
* Create a plan for handling the user's request
|
|
38
44
|
*/
|
|
39
|
-
createPlan(task: ManagerTask): Promise<ManagerPlan>;
|
|
45
|
+
createPlan(task: ManagerTask, agentContext?: AgentContext): Promise<ManagerPlan>;
|
|
40
46
|
/**
|
|
41
47
|
* Review Worker's results and decide next action
|
|
42
48
|
*/
|
|
@@ -47,7 +53,8 @@ export declare class ManagerAgent {
|
|
|
47
53
|
synthesizeResponse(allResults: {
|
|
48
54
|
subtask: string;
|
|
49
55
|
result: string;
|
|
50
|
-
|
|
56
|
+
approved?: boolean;
|
|
57
|
+
}[], agentContext?: AgentContext): Promise<string>;
|
|
51
58
|
/**
|
|
52
59
|
* Parse a JSON plan from LLM output. Extracts the first JSON object found.
|
|
53
60
|
*/
|
|
@@ -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;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,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;
|
|
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,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,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;IA4EtF;;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,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IA2C7I;;OAEG;IACH,OAAO,CAAC,aAAa;IAkBrB;;OAEG;YACW,gBAAgB;IAmC9B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,cAAc;IAMtB,sBAAsB,IAAI,OAAO,EAAE;IAInC,iBAAiB;CAIlB"}
|
|
@@ -30,7 +30,7 @@ export class ManagerAgent {
|
|
|
30
30
|
this.initializeSystemPrompt();
|
|
31
31
|
}
|
|
32
32
|
initializeSystemPrompt() {
|
|
33
|
-
|
|
33
|
+
// Store base system prompt WITHOUT directive — directive is injected fresh per-call
|
|
34
34
|
const personaPrompt = this.personaManager?.getSystemPromptAddition() || '';
|
|
35
35
|
let systemContent = `You are the Manager Agent in a two-agent system.
|
|
36
36
|
|
|
@@ -61,18 +61,39 @@ IMPORTANT:
|
|
|
61
61
|
if (personaPrompt) {
|
|
62
62
|
systemContent += `\n${personaPrompt}\n`;
|
|
63
63
|
}
|
|
64
|
-
|
|
65
|
-
systemContent += `\n${directivePrompt}`;
|
|
66
|
-
}
|
|
64
|
+
// NOTE: Directive is NOT baked in here; it's injected fresh each call via getSystemMessages()
|
|
67
65
|
this.conversationHistory.push({
|
|
68
66
|
role: 'system',
|
|
69
67
|
content: systemContent,
|
|
70
68
|
});
|
|
71
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Get system messages with fresh directive + optional AgentContext.
|
|
72
|
+
* Follows the per-call directive injection pattern from JivaAgent.getSystemMessages().
|
|
73
|
+
*/
|
|
74
|
+
getSystemMessages(agentContext) {
|
|
75
|
+
const systemMessage = this.conversationHistory[0];
|
|
76
|
+
// Inject fresh directive per-call
|
|
77
|
+
const freshDirective = agentContext?.directive || this.workspace.getDirectivePrompt() || '';
|
|
78
|
+
const parts = [];
|
|
79
|
+
if (freshDirective) {
|
|
80
|
+
parts.push(freshDirective);
|
|
81
|
+
}
|
|
82
|
+
if (parts.length === 0) {
|
|
83
|
+
return [systemMessage];
|
|
84
|
+
}
|
|
85
|
+
return [
|
|
86
|
+
systemMessage,
|
|
87
|
+
{
|
|
88
|
+
role: 'developer',
|
|
89
|
+
content: parts.join('\n'),
|
|
90
|
+
},
|
|
91
|
+
];
|
|
92
|
+
}
|
|
72
93
|
/**
|
|
73
94
|
* Create a plan for handling the user's request
|
|
74
95
|
*/
|
|
75
|
-
async createPlan(task) {
|
|
96
|
+
async createPlan(task, agentContext) {
|
|
76
97
|
logger.info('[Manager] Creating plan...');
|
|
77
98
|
orchestrationLogger.logManagerCreatePlan(task.userRequest, task.context || '');
|
|
78
99
|
const planPrompt = `User Request: ${task.userRequest}
|
|
@@ -113,7 +134,7 @@ Respond ONLY with valid JSON in this exact format (no other text before or after
|
|
|
113
134
|
content: planPrompt,
|
|
114
135
|
});
|
|
115
136
|
const response = await this.orchestrator.chat({
|
|
116
|
-
messages: this.conversationHistory,
|
|
137
|
+
messages: [...this.getSystemMessages(agentContext), ...this.conversationHistory.slice(1)],
|
|
117
138
|
temperature: 0.1, // Low temperature for deterministic planning
|
|
118
139
|
});
|
|
119
140
|
this.conversationHistory.push({
|
|
@@ -164,7 +185,7 @@ NEXT_ACTION: <what to do next, if CONTINUE>`;
|
|
|
164
185
|
content: reviewPrompt,
|
|
165
186
|
});
|
|
166
187
|
const response = await this.orchestrator.chat({
|
|
167
|
-
messages: this.conversationHistory,
|
|
188
|
+
messages: [...this.getSystemMessages(), ...this.conversationHistory.slice(1)],
|
|
168
189
|
temperature: 0.1, // Low temperature for deterministic decisions
|
|
169
190
|
});
|
|
170
191
|
this.conversationHistory.push({
|
|
@@ -187,22 +208,30 @@ NEXT_ACTION: <what to do next, if CONTINUE>`;
|
|
|
187
208
|
/**
|
|
188
209
|
* Create final response for user
|
|
189
210
|
*/
|
|
190
|
-
async synthesizeResponse(allResults) {
|
|
211
|
+
async synthesizeResponse(allResults, agentContext) {
|
|
191
212
|
logger.info('[Manager] Synthesizing final response...');
|
|
192
213
|
orchestrationLogger.logManagerSynthesize(allResults.length);
|
|
193
|
-
const
|
|
214
|
+
const approvedResults = allResults.filter(r => r.approved !== false);
|
|
215
|
+
const failedResults = allResults.filter(r => r.approved === false);
|
|
216
|
+
const completedSection = approvedResults.length > 0
|
|
217
|
+
? `Validated Completed Work:\n${approvedResults.map((r, i) => `${i + 1}. ${r.subtask}\nResult: ${r.result}`).join('\n\n')}`
|
|
218
|
+
: 'No subtasks were validated as successfully completed.';
|
|
219
|
+
const failedSection = failedResults.length > 0
|
|
220
|
+
? `\n\nSubtasks That Did NOT Complete Successfully (Client validation rejected these):\n${failedResults.map((r, i) => `${i + 1}. ${r.subtask}\nWorker output (unvalidated): ${r.result}`).join('\n\n')}`
|
|
221
|
+
: '';
|
|
222
|
+
const synthesisPrompt = `Based on the work below, create a final response for the user.
|
|
223
|
+
|
|
224
|
+
IMPORTANT: Some subtasks may not have been completed successfully — the Client validation agent explicitly rejected them. You MUST be honest about what was and was not accomplished. Do NOT claim files were created, actions were performed, or results were produced if the corresponding subtask is listed as failed.
|
|
194
225
|
|
|
195
|
-
|
|
196
|
-
${allResults.map((r, i) => `${i + 1}. ${r.subtask}\nResult: ${r.result}`).join('\n\n')}
|
|
226
|
+
${completedSection}${failedSection}
|
|
197
227
|
|
|
198
|
-
Create a clear,
|
|
199
|
-
Present information clearly with relevant details, code snippets, or examples as appropriate.`;
|
|
228
|
+
Create a clear, honest response that accurately reflects what was accomplished and what was not. If work failed, explain what happened and what the user should expect.`;
|
|
200
229
|
this.conversationHistory.push({
|
|
201
230
|
role: 'user',
|
|
202
231
|
content: synthesisPrompt,
|
|
203
232
|
});
|
|
204
233
|
const response = await this.orchestrator.chat({
|
|
205
|
-
messages: this.conversationHistory,
|
|
234
|
+
messages: [...this.getSystemMessages(agentContext), ...this.conversationHistory.slice(1)],
|
|
206
235
|
temperature: 0.1, // Low temperature for deterministic synthesis
|
|
207
236
|
});
|
|
208
237
|
this.conversationHistory.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-agent.js","sourceRoot":"","sources":["../../src/core/manager-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"manager-agent.js","sourceRoot":"","sources":["../../src/core/manager-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentContext - Shared context payload for all three agents (Manager, Worker, Client)
|
|
3
|
+
*
|
|
4
|
+
* Produced once per turn by DualAgent.buildAgentContext() and passed consistently
|
|
5
|
+
* to Manager plan creation, Worker execution, and Client validation.
|
|
6
|
+
*/
|
|
7
|
+
import { Message } from '../../models/base.js';
|
|
8
|
+
export interface AgentContext {
|
|
9
|
+
/** Absolute path to the current workspace directory */
|
|
10
|
+
workspaceDir: string;
|
|
11
|
+
/** Raw directive prompt block, freshly loaded each turn */
|
|
12
|
+
directive?: string;
|
|
13
|
+
/** Bounded conversation history */
|
|
14
|
+
conversation: {
|
|
15
|
+
/** Optional condensed summary (from ConversationManager) */
|
|
16
|
+
summary?: string;
|
|
17
|
+
/** Bounded list of recent messages (user + assistant + tool roles) */
|
|
18
|
+
recentMessages: Message[];
|
|
19
|
+
};
|
|
20
|
+
/** Persona context, split by purpose */
|
|
21
|
+
persona?: {
|
|
22
|
+
/** Active persona name */
|
|
23
|
+
name?: string;
|
|
24
|
+
/** For Manager/Worker: full persona block + <available_skills> */
|
|
25
|
+
systemPromptAddition?: string;
|
|
26
|
+
/** For Client: skills metadata + constraints only (no execution directives) */
|
|
27
|
+
validationContext?: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=agent-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-context.d.ts","sourceRoot":"","sources":["../../../src/core/types/agent-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IAErB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mCAAmC;IACnC,YAAY,EAAE;QACZ,4DAA4D;QAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,sEAAsE;QACtE,cAAc,EAAE,OAAO,EAAE,CAAC;KAC3B,CAAC;IAEF,wCAAwC;IACxC,OAAO,CAAC,EAAE;QACR,0BAA0B;QAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,kEAAkE;QAClE,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,+EAA+E;QAC/E,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentContext - Shared context payload for all three agents (Manager, Worker, Client)
|
|
3
|
+
*
|
|
4
|
+
* Produced once per turn by DualAgent.buildAgentContext() and passed consistently
|
|
5
|
+
* to Manager plan creation, Worker execution, and Client validation.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=agent-context.js.map
|