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
|
@@ -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}
|
|
@@ -100,9 +121,15 @@ Guidelines:
|
|
|
100
121
|
- Trust Worker to handle file operations, error checking, and iteration
|
|
101
122
|
- Each subtask MUST be a clear, actionable instruction - NOT prose, advice, or explanation
|
|
102
123
|
|
|
124
|
+
CONVERSATIONAL MESSAGES:
|
|
125
|
+
- If the message is purely conversational (greeting, thank-you, compliment, acknowledgment, small talk) with NO actionable task embedded, return:
|
|
126
|
+
{"conversational": true, "subtasks": [], "reasoning": "Conversational message — no task required"}
|
|
127
|
+
- Do NOT invent tasks from prior conversation context just because a topic was mentioned earlier.
|
|
128
|
+
|
|
103
129
|
Respond ONLY with valid JSON in this exact format (no other text before or after):
|
|
104
130
|
{
|
|
105
131
|
"reasoning": "<brief explanation of your high-level approach>",
|
|
132
|
+
"conversational": false,
|
|
106
133
|
"subtasks": [
|
|
107
134
|
"<subtask 1 - a clear, actionable instruction>",
|
|
108
135
|
"<subtask 2 - only if truly necessary>"
|
|
@@ -113,7 +140,7 @@ Respond ONLY with valid JSON in this exact format (no other text before or after
|
|
|
113
140
|
content: planPrompt,
|
|
114
141
|
});
|
|
115
142
|
const response = await this.orchestrator.chat({
|
|
116
|
-
messages: this.conversationHistory,
|
|
143
|
+
messages: [...this.getSystemMessages(agentContext), ...this.conversationHistory.slice(1)],
|
|
117
144
|
temperature: 0.1, // Low temperature for deterministic planning
|
|
118
145
|
});
|
|
119
146
|
this.conversationHistory.push({
|
|
@@ -130,13 +157,19 @@ Respond ONLY with valid JSON in this exact format (no other text before or after
|
|
|
130
157
|
logger.warn('[Manager] Failed to parse plan JSON, attempting LLM cleanup');
|
|
131
158
|
plan = await this.cleanPlanWithLLM(response.content);
|
|
132
159
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
160
|
+
const isConversational = !!plan.conversational;
|
|
161
|
+
// Validate subtasks - filter out garbage entries (allow empty list for conversational)
|
|
162
|
+
plan.subtasks = this.validateSubtasks(plan.subtasks, isConversational);
|
|
163
|
+
if (isConversational) {
|
|
164
|
+
logger.info('[Manager] Conversational message detected — skipping task execution');
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
logger.info(`[Manager] Reasoning: ${plan.reasoning}`);
|
|
168
|
+
logger.info(`[Manager] Plan: ${plan.subtasks.length} subtasks`);
|
|
169
|
+
plan.subtasks.forEach((task, i) => logger.info(` ${i + 1}. ${task}`));
|
|
170
|
+
}
|
|
138
171
|
orchestrationLogger.logManagerPlanCreated(plan.subtasks, plan.reasoning);
|
|
139
|
-
return { subtasks: plan.subtasks, reasoning: plan.reasoning };
|
|
172
|
+
return { subtasks: plan.subtasks, reasoning: plan.reasoning, conversational: isConversational };
|
|
140
173
|
}
|
|
141
174
|
/**
|
|
142
175
|
* Review Worker's results and decide next action
|
|
@@ -164,7 +197,7 @@ NEXT_ACTION: <what to do next, if CONTINUE>`;
|
|
|
164
197
|
content: reviewPrompt,
|
|
165
198
|
});
|
|
166
199
|
const response = await this.orchestrator.chat({
|
|
167
|
-
messages: this.conversationHistory,
|
|
200
|
+
messages: [...this.getSystemMessages(), ...this.conversationHistory.slice(1)],
|
|
168
201
|
temperature: 0.1, // Low temperature for deterministic decisions
|
|
169
202
|
});
|
|
170
203
|
this.conversationHistory.push({
|
|
@@ -184,25 +217,93 @@ NEXT_ACTION: <what to do next, if CONTINUE>`;
|
|
|
184
217
|
nextAction: nextAction || undefined,
|
|
185
218
|
};
|
|
186
219
|
}
|
|
220
|
+
/**
|
|
221
|
+
* Review a Worker's subtask result and decide whether to accept it or request a retry.
|
|
222
|
+
*
|
|
223
|
+
* Rules (fast-path first — avoids an LLM call for the common case):
|
|
224
|
+
* - AUTO-ACCEPT: tools were used AND the result is substantive (>100 chars)
|
|
225
|
+
* - AUTO-REJECT: no tools were used at all (pure hallucination / text-only response)
|
|
226
|
+
* - LLM REVIEW: tools were used but result is suspiciously short (<100 chars)
|
|
227
|
+
*
|
|
228
|
+
* Returns { accepted: true } or { accepted: false, specificCorrection: "…" }.
|
|
229
|
+
* The specificCorrection is a clean, targeted instruction — NOT a stacked prefix.
|
|
230
|
+
*/
|
|
231
|
+
async reviewSubtaskResult(subtask, workerResult, originalRequest) {
|
|
232
|
+
// Fast-path accept: tools were used and result has substance
|
|
233
|
+
if (workerResult.toolsUsed.length > 0 && workerResult.result.length >= 100) {
|
|
234
|
+
logger.info(`[Manager] Auto-accepted subtask (${workerResult.toolsUsed.length} tools used, ${workerResult.result.length} chars)`);
|
|
235
|
+
return { accepted: true };
|
|
236
|
+
}
|
|
237
|
+
// Fast-path reject: no tools at all — pure text-only response (hallucination)
|
|
238
|
+
if (workerResult.toolsUsed.length === 0) {
|
|
239
|
+
logger.warn(`[Manager] Auto-rejected subtask — Worker used no tools`);
|
|
240
|
+
const correction = `You produced a text-only response without using any tools. You MUST use the available tools to complete this task. Do not fabricate or infer data — call the appropriate tools now.\n\nOriginal task: ${subtask}`;
|
|
241
|
+
return { accepted: false, specificCorrection: correction };
|
|
242
|
+
}
|
|
243
|
+
// Edge case: tools used but result is very short — ask LLM to judge
|
|
244
|
+
logger.info(`[Manager] LLM review: tools=${workerResult.toolsUsed.length}, result length=${workerResult.result.length}`);
|
|
245
|
+
const reviewPrompt = `You are reviewing whether a Worker agent's result satisfactorily completes a subtask.
|
|
246
|
+
|
|
247
|
+
Original user request: ${originalRequest}
|
|
248
|
+
|
|
249
|
+
Subtask assigned to Worker: ${subtask}
|
|
250
|
+
|
|
251
|
+
Tools used by Worker: ${workerResult.toolsUsed.join(', ')}
|
|
252
|
+
|
|
253
|
+
Worker's result:
|
|
254
|
+
${workerResult.result}
|
|
255
|
+
|
|
256
|
+
DECISION RULES:
|
|
257
|
+
- ACCEPT if the Worker gathered real data and provided a substantive result, even if partial
|
|
258
|
+
- REJECT only if the result is clearly empty, fabricated, or completely off-task
|
|
259
|
+
|
|
260
|
+
Respond with ONLY one of:
|
|
261
|
+
ACCEPT
|
|
262
|
+
REJECT: <one sentence explaining what specific data is still missing>`;
|
|
263
|
+
const response = await this.orchestrator.chat({
|
|
264
|
+
messages: [
|
|
265
|
+
{ role: 'system', content: 'You are a task reviewer. Reply with ACCEPT or REJECT: <reason>.' },
|
|
266
|
+
{ role: 'user', content: reviewPrompt },
|
|
267
|
+
],
|
|
268
|
+
temperature: 0.1,
|
|
269
|
+
});
|
|
270
|
+
const verdict = response.content.trim();
|
|
271
|
+
if (verdict.startsWith('REJECT')) {
|
|
272
|
+
const reason = verdict.replace(/^REJECT:?\s*/i, '').trim();
|
|
273
|
+
logger.warn(`[Manager] LLM rejected subtask: ${reason}`);
|
|
274
|
+
const correction = `The previous attempt was insufficient: ${reason}\n\nRetry the subtask using the appropriate tools: ${subtask}`;
|
|
275
|
+
return { accepted: false, specificCorrection: correction };
|
|
276
|
+
}
|
|
277
|
+
logger.info(`[Manager] LLM accepted subtask`);
|
|
278
|
+
return { accepted: true };
|
|
279
|
+
}
|
|
187
280
|
/**
|
|
188
281
|
* Create final response for user
|
|
189
282
|
*/
|
|
190
|
-
async synthesizeResponse(allResults) {
|
|
283
|
+
async synthesizeResponse(allResults, agentContext) {
|
|
191
284
|
logger.info('[Manager] Synthesizing final response...');
|
|
192
285
|
orchestrationLogger.logManagerSynthesize(allResults.length);
|
|
193
|
-
const
|
|
286
|
+
const acceptedResults = allResults.filter(r => r.accepted !== false);
|
|
287
|
+
const failedResults = allResults.filter(r => r.accepted === false);
|
|
288
|
+
const completedSection = acceptedResults.length > 0
|
|
289
|
+
? `Completed Work:\n${acceptedResults.map((r, i) => `${i + 1}. ${r.subtask}\nResult: ${r.result}`).join('\n\n')}`
|
|
290
|
+
: 'No subtasks completed successfully.';
|
|
291
|
+
const failedSection = failedResults.length > 0
|
|
292
|
+
? `\n\nSubtasks That Could Not Be Completed:\n${failedResults.map((r, i) => `${i + 1}. ${r.subtask}\nWorker output: ${r.result}`).join('\n\n')}`
|
|
293
|
+
: '';
|
|
294
|
+
const synthesisPrompt = `Based on the work below, create a final response for the user.
|
|
194
295
|
|
|
195
|
-
|
|
196
|
-
${allResults.map((r, i) => `${i + 1}. ${r.subtask}\nResult: ${r.result}`).join('\n\n')}
|
|
296
|
+
IMPORTANT: Be honest about what was and was not accomplished. Do NOT claim results were produced if the corresponding subtask is listed as failed.
|
|
197
297
|
|
|
198
|
-
|
|
199
|
-
|
|
298
|
+
${completedSection}${failedSection}
|
|
299
|
+
|
|
300
|
+
Create a clear, honest response that accurately reflects what was accomplished. If any work failed, explain briefly what happened.`;
|
|
200
301
|
this.conversationHistory.push({
|
|
201
302
|
role: 'user',
|
|
202
303
|
content: synthesisPrompt,
|
|
203
304
|
});
|
|
204
305
|
const response = await this.orchestrator.chat({
|
|
205
|
-
messages: this.conversationHistory,
|
|
306
|
+
messages: [...this.getSystemMessages(agentContext), ...this.conversationHistory.slice(1)],
|
|
206
307
|
temperature: 0.1, // Low temperature for deterministic synthesis
|
|
207
308
|
});
|
|
208
309
|
this.conversationHistory.push({
|
|
@@ -212,6 +313,23 @@ Present information clearly with relevant details, code snippets, or examples as
|
|
|
212
313
|
logger.info('[Manager] Final response created');
|
|
213
314
|
return response.content;
|
|
214
315
|
}
|
|
316
|
+
/**
|
|
317
|
+
* Respond directly to a conversational message — no planning or tool execution.
|
|
318
|
+
* Used when `createPlan()` signals `conversational: true`.
|
|
319
|
+
*
|
|
320
|
+
* @param userConversationHistory - The full user-facing conversation so far
|
|
321
|
+
* (already includes the current user message at the tail).
|
|
322
|
+
* @param agentContext - Current agent context for directive injection.
|
|
323
|
+
*/
|
|
324
|
+
async directReply(userConversationHistory, agentContext) {
|
|
325
|
+
const systemMessages = this.getSystemMessages(agentContext);
|
|
326
|
+
const response = await this.orchestrator.chat({
|
|
327
|
+
messages: [...systemMessages, ...userConversationHistory],
|
|
328
|
+
temperature: 0.7, // Slightly higher for natural conversation
|
|
329
|
+
});
|
|
330
|
+
logger.info('[Manager] Direct conversational reply produced');
|
|
331
|
+
return response.content;
|
|
332
|
+
}
|
|
215
333
|
/**
|
|
216
334
|
* Parse a JSON plan from LLM output. Extracts the first JSON object found.
|
|
217
335
|
*/
|
|
@@ -268,8 +386,10 @@ Return ONLY valid JSON in this exact format (no other text):
|
|
|
268
386
|
/**
|
|
269
387
|
* Validate that each subtask is a reasonable, actionable instruction.
|
|
270
388
|
* Removes garbage entries like separators, prose fragments, or empty strings.
|
|
389
|
+
*
|
|
390
|
+
* @param isConversational - When true, allow an empty list (no min-1 enforcement).
|
|
271
391
|
*/
|
|
272
|
-
validateSubtasks(subtasks) {
|
|
392
|
+
validateSubtasks(subtasks, isConversational = false) {
|
|
273
393
|
const validated = subtasks.filter(task => {
|
|
274
394
|
const trimmed = task.trim();
|
|
275
395
|
// Reject empty or too-short entries
|
|
@@ -283,8 +403,9 @@ Return ONLY valid JSON in this exact format (no other text):
|
|
|
283
403
|
return false;
|
|
284
404
|
return true;
|
|
285
405
|
});
|
|
286
|
-
//
|
|
287
|
-
|
|
406
|
+
// Enforce at least one subtask for real task plans.
|
|
407
|
+
// For conversational messages the LLM intentionally returns subtasks: [] — allow that.
|
|
408
|
+
if (validated.length === 0 && !isConversational) {
|
|
288
409
|
logger.warn('[Manager] All subtasks filtered out, preserving first original');
|
|
289
410
|
return subtasks.length > 0 ? [subtasks[0]] : ['Complete the user request'];
|
|
290
411
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-agent.js","sourceRoot":"","sources":["../../src/core/manager-agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager-agent.js","sourceRoot":"","sources":["../../src/core/manager-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-context.js","sourceRoot":"","sources":["../../../src/core/types/agent-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CompletionSignal - Per-subtask assessment emitted by Client alongside ValidationResult
|
|
3
|
+
*
|
|
4
|
+
* Replaces the blunt failureCount escalation with a richer signal that DualAgent
|
|
5
|
+
* uses to decide corrective strategy per subtask.
|
|
6
|
+
*/
|
|
7
|
+
export interface CompletionSignal {
|
|
8
|
+
/** How confident the Client is that the subtask was completed correctly */
|
|
9
|
+
confidence: 'high' | 'medium' | 'low' | 'none';
|
|
10
|
+
/** Did Worker make any measurable forward progress? */
|
|
11
|
+
progressMade: boolean;
|
|
12
|
+
/** Classification of the blocker (if confidence is not 'high') */
|
|
13
|
+
blockerType?: 'tool_failure' | 'hallucination' | 'scope_drift' | 'partial' | 'loop' | 'capability_gap';
|
|
14
|
+
/** Suggested corrective strategy for DualAgent */
|
|
15
|
+
suggestedStrategy?: 'retry' | 'rephrase' | 'decompose' | 'skip' | 'escalate';
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=completion-signal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion-signal.d.ts","sourceRoot":"","sources":["../../../src/core/types/completion-signal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,2EAA2E;IAC3E,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IAE/C,uDAAuD;IACvD,YAAY,EAAE,OAAO,CAAC;IAEtB,kEAAkE;IAClE,WAAW,CAAC,EAAE,cAAc,GACd,eAAe,GACf,aAAa,GACb,SAAS,GACT,MAAM,GACN,gBAAgB,CAAC;IAE/B,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,OAAO,GACP,UAAU,GACV,WAAW,GACX,MAAM,GACN,UAAU,CAAC;CAChC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CompletionSignal - Per-subtask assessment emitted by Client alongside ValidationResult
|
|
3
|
+
*
|
|
4
|
+
* Replaces the blunt failureCount escalation with a richer signal that DualAgent
|
|
5
|
+
* uses to decide corrective strategy per subtask.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=completion-signal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completion-signal.js","sourceRoot":"","sources":["../../../src/core/types/completion-signal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* serializeAgentContext - Produces a consistent, role-appropriate string block
|
|
3
|
+
* that each agent embeds in its prompt.
|
|
4
|
+
*
|
|
5
|
+
* Using the same serializer for all three agents ensures the format is identical;
|
|
6
|
+
* the `role` parameter governs what is included, not how it is formatted.
|
|
7
|
+
*
|
|
8
|
+
* Token budget guidelines (tunable):
|
|
9
|
+
* Directive: ~500 tokens max (truncate with notice if exceeded)
|
|
10
|
+
* Conversation summary: ~300 tokens max
|
|
11
|
+
* Recent messages: last 6 messages of all roles, ~800 tokens
|
|
12
|
+
* Validation context: ~400 tokens max
|
|
13
|
+
*/
|
|
14
|
+
import { AgentContext } from '../types/agent-context.js';
|
|
15
|
+
/**
|
|
16
|
+
* Serialize AgentContext into a role-appropriate string block.
|
|
17
|
+
*
|
|
18
|
+
* - manager: directive + conversation (summary + recent). Omits validationContext.
|
|
19
|
+
* - worker: directive + conversation (summary + recent, incl. tool messages). Omits validationContext.
|
|
20
|
+
* - client: directive + conversation (summary + recent, incl. tool messages) + validationContext. Omits execution persona.
|
|
21
|
+
*/
|
|
22
|
+
export declare function serializeAgentContext(ctx: AgentContext, role: 'manager' | 'worker' | 'client'): string;
|
|
23
|
+
//# sourceMappingURL=serialize-agent-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize-agent-context.d.ts","sourceRoot":"","sources":["../../../src/core/utils/serialize-agent-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAkCzD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GACpC,MAAM,CAuCR"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* serializeAgentContext - Produces a consistent, role-appropriate string block
|
|
3
|
+
* that each agent embeds in its prompt.
|
|
4
|
+
*
|
|
5
|
+
* Using the same serializer for all three agents ensures the format is identical;
|
|
6
|
+
* the `role` parameter governs what is included, not how it is formatted.
|
|
7
|
+
*
|
|
8
|
+
* Token budget guidelines (tunable):
|
|
9
|
+
* Directive: ~500 tokens max (truncate with notice if exceeded)
|
|
10
|
+
* Conversation summary: ~300 tokens max
|
|
11
|
+
* Recent messages: last 6 messages of all roles, ~800 tokens
|
|
12
|
+
* Validation context: ~400 tokens max
|
|
13
|
+
*/
|
|
14
|
+
// Rough estimate: 1 token ≈ 4 characters
|
|
15
|
+
const CHARS_PER_TOKEN = 4;
|
|
16
|
+
const DIRECTIVE_TOKEN_LIMIT = 500;
|
|
17
|
+
const SUMMARY_TOKEN_LIMIT = 300;
|
|
18
|
+
// Recent messages are no longer truncated — the underlying LLM supports a 128k
|
|
19
|
+
// context window and the conversation manager condenses history before this is
|
|
20
|
+
// called, so there is no need for an artificial per-role cap here.
|
|
21
|
+
const VALIDATION_CONTEXT_TOKEN_LIMIT = 400;
|
|
22
|
+
/**
|
|
23
|
+
* Truncate text to a token-approximate character limit, appending a notice if truncated.
|
|
24
|
+
*/
|
|
25
|
+
function truncate(text, tokenLimit) {
|
|
26
|
+
const charLimit = tokenLimit * CHARS_PER_TOKEN;
|
|
27
|
+
if (text.length <= charLimit)
|
|
28
|
+
return text;
|
|
29
|
+
return text.substring(0, charLimit) + '\n[...truncated due to token limit]';
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Serialize a single message to a compact string representation.
|
|
33
|
+
*/
|
|
34
|
+
function serializeMessage(msg) {
|
|
35
|
+
const role = msg.role.toUpperCase();
|
|
36
|
+
const content = typeof msg.content === 'string'
|
|
37
|
+
? msg.content
|
|
38
|
+
: msg.content
|
|
39
|
+
? msg.content.map(c => c.text || '[image]').join(' ')
|
|
40
|
+
: '[tool call]';
|
|
41
|
+
return `[${role}]: ${content}`;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Serialize AgentContext into a role-appropriate string block.
|
|
45
|
+
*
|
|
46
|
+
* - manager: directive + conversation (summary + recent). Omits validationContext.
|
|
47
|
+
* - worker: directive + conversation (summary + recent, incl. tool messages). Omits validationContext.
|
|
48
|
+
* - client: directive + conversation (summary + recent, incl. tool messages) + validationContext. Omits execution persona.
|
|
49
|
+
*/
|
|
50
|
+
export function serializeAgentContext(ctx, role) {
|
|
51
|
+
const sections = [];
|
|
52
|
+
// ── Directive ──────────────────────────────────────────────────────────
|
|
53
|
+
if (ctx.directive) {
|
|
54
|
+
sections.push('=== DIRECTIVE ===\n' + truncate(ctx.directive, DIRECTIVE_TOKEN_LIMIT));
|
|
55
|
+
}
|
|
56
|
+
// ── Conversation context ──────────────────────────────────────────────
|
|
57
|
+
const convParts = [];
|
|
58
|
+
if (ctx.conversation.summary) {
|
|
59
|
+
convParts.push('[Conversation Summary]\n' + truncate(ctx.conversation.summary, SUMMARY_TOKEN_LIMIT));
|
|
60
|
+
}
|
|
61
|
+
if (ctx.conversation.recentMessages.length > 0) {
|
|
62
|
+
const serialized = ctx.conversation.recentMessages.map(serializeMessage).join('\n');
|
|
63
|
+
convParts.push('[Recent Messages]\n' + serialized);
|
|
64
|
+
}
|
|
65
|
+
if (convParts.length > 0) {
|
|
66
|
+
sections.push('=== CONVERSATION CONTEXT ===\n' + convParts.join('\n\n'));
|
|
67
|
+
}
|
|
68
|
+
// ── Validation context (client only) ──────────────────────────────────
|
|
69
|
+
if (role === 'client' && ctx.persona?.validationContext) {
|
|
70
|
+
sections.push('=== VALIDATION CONTEXT ===\n' +
|
|
71
|
+
truncate(ctx.persona.validationContext, VALIDATION_CONTEXT_TOKEN_LIMIT));
|
|
72
|
+
}
|
|
73
|
+
return sections.join('\n\n');
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=serialize-agent-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize-agent-context.js","sourceRoot":"","sources":["../../../src/core/utils/serialize-agent-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,yCAAyC;AACzC,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,+EAA+E;AAC/E,+EAA+E;AAC/E,mEAAmE;AACnE,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAE3C;;GAEG;AACH,SAAS,QAAQ,CAAC,IAAY,EAAE,UAAkB;IAChD,MAAM,SAAS,GAAG,UAAU,GAAG,eAAe,CAAC;IAC/C,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,qCAAqC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,GAAY;IACpC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAC7C,CAAC,CAAC,GAAG,CAAC,OAAO;QACb,CAAC,CAAC,GAAG,CAAC,OAAO;YACX,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YACrD,CAAC,CAAC,aAAa,CAAC;IACpB,OAAO,IAAI,IAAI,MAAM,OAAO,EAAE,CAAC;AACjC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAiB,EACjB,IAAqC;IAErC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,0EAA0E;IAC1E,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAClB,QAAQ,CAAC,IAAI,CACX,qBAAqB,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,qBAAqB,CAAC,CACvE,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC7B,SAAS,CAAC,IAAI,CACZ,0BAA0B,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,mBAAmB,CAAC,CACrF,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpF,SAAS,CAAC,IAAI,CACZ,qBAAqB,GAAG,UAAU,CACnC,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CAAC,gCAAgC,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,yEAAyE;IACzE,IAAI,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,EAAE,iBAAiB,EAAE,CAAC;QACxD,QAAQ,CAAC,IAAI,CACX,8BAA8B;YAC9B,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,8BAA8B,CAAC,CACxE,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -12,14 +12,22 @@ import { MCPServerManager } from '../mcp/server-manager.js';
|
|
|
12
12
|
import { WorkspaceManager } from './workspace.js';
|
|
13
13
|
import { PersonaManager } from '../personas/persona-manager.js';
|
|
14
14
|
import { AgentSpawner } from './agent-spawner.js';
|
|
15
|
+
import { AgentContext } from './types/agent-context.js';
|
|
15
16
|
export interface WorkerSubtask {
|
|
16
17
|
instruction: string;
|
|
17
18
|
context?: string;
|
|
18
19
|
}
|
|
20
|
+
export interface ToolFailure {
|
|
21
|
+
toolName: string;
|
|
22
|
+
args: Record<string, any>;
|
|
23
|
+
lastError: string;
|
|
24
|
+
attempts: number;
|
|
25
|
+
}
|
|
19
26
|
export interface WorkerResult {
|
|
20
27
|
success: boolean;
|
|
21
28
|
result: string;
|
|
22
29
|
toolsUsed: string[];
|
|
30
|
+
failedTools: ToolFailure[];
|
|
23
31
|
reasoning: string;
|
|
24
32
|
}
|
|
25
33
|
export declare class WorkerAgent {
|
|
@@ -38,11 +46,14 @@ export declare class WorkerAgent {
|
|
|
38
46
|
/**
|
|
39
47
|
* Execute a subtask assigned by Manager
|
|
40
48
|
*/
|
|
41
|
-
executeSubtask(subtask: WorkerSubtask): Promise<WorkerResult>;
|
|
49
|
+
executeSubtask(subtask: WorkerSubtask, agentContext?: AgentContext): Promise<WorkerResult>;
|
|
42
50
|
private extractReasoning;
|
|
43
51
|
/**
|
|
44
|
-
* Determine if we should prompt Worker to check for completion
|
|
45
|
-
*
|
|
52
|
+
* Determine if we should prompt Worker to check for completion.
|
|
53
|
+
* Fires every 3 successful tool calls (regardless of tool type) so research
|
|
54
|
+
* tasks (yfinance, brave-search, etc.) get a "are you done?" nudge just like
|
|
55
|
+
* file-operation tasks do. Also fires when we are approaching the iteration
|
|
56
|
+
* cap so the model has a chance to synthesise before hitting the hard limit.
|
|
46
57
|
*/
|
|
47
58
|
private shouldPromptForCompletion;
|
|
48
59
|
}
|
|
@@ -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;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,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;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAsBxD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,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,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,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,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,YAAY,CAAC,CAAe;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,MAAW,EAC1B,cAAc,CAAC,EAAE,cAAc;IAqBjC;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAI5C;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAgnBhG,OAAO,CAAC,gBAAgB;IAMxB;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;CAqBlC"}
|