polpo-ai 0.4.10 → 0.5.1
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/dist/adapters/engine.d.ts +3 -3
- package/dist/adapters/engine.d.ts.map +1 -1
- package/dist/adapters/engine.js +205 -151
- package/dist/adapters/engine.js.map +1 -1
- package/dist/assessment/llm-review.d.ts +8 -8
- package/dist/assessment/llm-review.d.ts.map +1 -1
- package/dist/assessment/llm-review.js +209 -338
- package/dist/assessment/llm-review.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/orchestrator.d.ts.map +1 -1
- package/dist/core/orchestrator.js +3 -4
- package/dist/core/orchestrator.js.map +1 -1
- package/dist/llm/pi-client.d.ts +81 -45
- package/dist/llm/pi-client.d.ts.map +1 -1
- package/dist/llm/pi-client.js +341 -244
- package/dist/llm/pi-client.js.map +1 -1
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +3 -5
- package/dist/server/app.js.map +1 -1
- package/dist/setup/providers.d.ts +3 -3
- package/dist/setup/providers.d.ts.map +1 -1
- package/dist/setup/providers.js +2 -2
- package/dist/stores/file-session-store.d.ts +3 -3
- package/dist/stores/file-session-store.d.ts.map +1 -1
- package/dist/stores/file-session-store.js.map +1 -1
- package/dist/tools/attachment-tools.d.ts +1 -1
- package/dist/tools/attachment-tools.d.ts.map +1 -1
- package/dist/tools/audio-tools.d.ts +1 -1
- package/dist/tools/audio-tools.d.ts.map +1 -1
- package/dist/tools/browser-tools.d.ts +1 -1
- package/dist/tools/browser-tools.d.ts.map +1 -1
- package/dist/tools/docx-tools.d.ts +1 -1
- package/dist/tools/docx-tools.d.ts.map +1 -1
- package/dist/tools/email-tools.d.ts +1 -1
- package/dist/tools/email-tools.d.ts.map +1 -1
- package/dist/tools/excel-tools.d.ts +1 -1
- package/dist/tools/excel-tools.d.ts.map +1 -1
- package/dist/tools/http-tools.d.ts +1 -1
- package/dist/tools/http-tools.d.ts.map +1 -1
- package/dist/tools/image-tools.d.ts +1 -1
- package/dist/tools/image-tools.d.ts.map +1 -1
- package/dist/tools/memory-tools.d.ts +1 -1
- package/dist/tools/memory-tools.d.ts.map +1 -1
- package/dist/tools/outcome-tools.d.ts +1 -1
- package/dist/tools/outcome-tools.d.ts.map +1 -1
- package/dist/tools/pdf-tools.d.ts +1 -1
- package/dist/tools/pdf-tools.d.ts.map +1 -1
- package/dist/tools/phone-tools.d.ts +1 -1
- package/dist/tools/phone-tools.d.ts.map +1 -1
- package/dist/tools/search-tools.d.ts +1 -1
- package/dist/tools/search-tools.d.ts.map +1 -1
- package/dist/tools/system-tools.d.ts +1 -1
- package/dist/tools/system-tools.d.ts.map +1 -1
- package/dist/tools/vault-tools.d.ts +1 -1
- package/dist/tools/vault-tools.d.ts.map +1 -1
- package/package.json +7 -6
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Polpo Engine — the built-in agentic runtime.
|
|
3
3
|
*
|
|
4
|
-
* Uses
|
|
5
|
-
* with
|
|
4
|
+
* Uses Vercel AI SDK streamText in a manual loop for the agentic loop,
|
|
5
|
+
* with AI Gateway for multi-provider LLM abstraction.
|
|
6
6
|
* Works with any LLM provider (Anthropic, OpenAI, Google, Groq, etc.)
|
|
7
7
|
*/
|
|
8
8
|
import type { AgentConfig, AgentActivity, Task } from "../core/types.js";
|
|
@@ -14,7 +14,7 @@ export declare function createActivity(): AgentActivity;
|
|
|
14
14
|
*/
|
|
15
15
|
export declare function buildSystemPrompt(agent: AgentConfig, cwd: string, polpoDir?: string, outputDir?: string, allowedPaths?: string[]): string;
|
|
16
16
|
/**
|
|
17
|
-
* Spawn an agent using Polpo's built-in engine (
|
|
17
|
+
* Spawn an agent using Polpo's built-in engine (AI SDK streamText loop).
|
|
18
18
|
*
|
|
19
19
|
* This is the default execution path — used when no adapter is specified
|
|
20
20
|
* on an agent config.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/adapters/engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAwC,MAAM,kBAAkB,CAAC;AAC/G,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIpE,0CAA0C;AAC1C,wBAAgB,cAAc,IAAI,aAAa,CAQ9C;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/adapters/engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAwC,MAAM,kBAAkB,CAAC;AAC/G,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIpE,0CAA0C;AAC1C,wBAAgB,cAAc,IAAI,aAAa,CAQ9C;AAiND;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAoDzI;AA4GD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,WAAW,CA4U9G"}
|
package/dist/adapters/engine.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Polpo Engine — the built-in agentic runtime.
|
|
3
3
|
*
|
|
4
|
-
* Uses
|
|
5
|
-
* with
|
|
4
|
+
* Uses Vercel AI SDK streamText in a manual loop for the agentic loop,
|
|
5
|
+
* with AI Gateway for multi-provider LLM abstraction.
|
|
6
6
|
* Works with any LLM provider (Anthropic, OpenAI, Google, Groq, etc.)
|
|
7
7
|
*/
|
|
8
8
|
import { resolveAgentVault } from "../vault/index.js";
|
|
@@ -17,14 +17,13 @@ export function createActivity() {
|
|
|
17
17
|
lastUpdate: new Date().toISOString(),
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
import { Agent } from "@mariozechner/pi-agent-core";
|
|
21
20
|
import { join, sep } from "node:path";
|
|
22
|
-
import {
|
|
21
|
+
import { streamText, generateText, jsonSchema, tool as aiTool, } from "ai";
|
|
22
|
+
import { resolveModel, enforceModelAllowlist, mapReasoningToProviderOptions } from "../llm/pi-client.js";
|
|
23
23
|
import { createSystemTools, createAllTools } from "../tools/system-tools.js";
|
|
24
24
|
import { loadAgentSkills } from "../llm/skills.js";
|
|
25
25
|
import { nanoid } from "nanoid";
|
|
26
26
|
import { compactIfNeeded } from "@polpo-ai/core";
|
|
27
|
-
import { completeSimple } from "@mariozechner/pi-ai";
|
|
28
27
|
/**
|
|
29
28
|
* Build an "## Available Tools" section for the agent's system prompt.
|
|
30
29
|
*
|
|
@@ -136,8 +135,49 @@ function buildPrompt(task) {
|
|
|
136
135
|
parts.push(``, `IMPORTANT — Orchestration contract:`, `- You are being orchestrated by a supervisor. Complete the task autonomously and EXIT.`, `- Do NOT ask clarifying questions. Make reasonable decisions and proceed.`, `- You MUST terminate after completing your work. Never block indefinitely.`, `- Your session has a timeout. If you hang, you will be killed and the task will fail.`, ``, `CRITICAL — Bash tool rules:`, `- The bash tool has a default timeout of 30 seconds. Commands that exceed it are killed.`, `- For long commands (npm install, builds, etc.), pass an explicit timeout: {"command": "...", "timeout": 120000}`, `- NEVER run a server or long-lived process in the foreground. It will block forever and kill your session.`, `- To start a background server, ALWAYS use this exact pattern:`, ` {"command": "nohup python3 server.py > /tmp/server.log 2>&1 & echo \"PID=$!\"", "timeout": 5000}`, ` Then verify separately: {"command": "sleep 2 && curl -s --max-time 5 http://127.0.0.1:PORT/", "timeout": 10000}`, `- NEVER combine server start + verification in one command (e.g. "cmd & sleep 2 && lsof" WILL hang).`, `- NEVER use "lsof" or "netstat" to check if a server is running. Use "curl" instead.`, `- NEVER use "tail -f", "watch", or any command that runs forever.`, `- If a command times out, do NOT retry the same command. Analyze why it hung and fix the approach.`, ``, `CRITICAL — Outcome tracking:`, `When you produce artifacts (files, reports, data), the orchestrator attaches them to`, `task-done notifications (Telegram, Slack, etc.) and approval reviews.`, `Outcomes are NEVER auto-collected — you MUST explicitly register every deliverable.`, ``, `Use the register_outcome tool to declare artifacts as task outcomes:`, ` register_outcome({type: 'file', label: 'Sales Report', path: 'output/report.pdf'})`, ` register_outcome({type: 'media', label: 'Chart', path: 'charts/revenue.png'})`, ` register_outcome({type: 'url', label: 'Staging Deploy', url: 'https://staging.example.com'})`, ` register_outcome({type: 'text', label: 'Summary', text: 'Revenue increased 23%...'})`, ` register_outcome({type: 'json', label: 'Metrics', data: {revenue: 1234, growth: 0.23}})`, ``, `RULES:`, ` - ALWAYS call register_outcome for every artifact you produce — files, reports, screenshots,`, ` downloads, generated media, transcriptions, analysis results, URLs, data summaries`, ` - Producing a file (via write, pdf_create, bash, etc.) does NOT auto-register it as an outcome`, ` - Only register final deliverables — not intermediate/temporary files`, ` - If the task has expectedOutcomes defined, ensure you register matching outcomes`);
|
|
137
136
|
return parts.join("\n");
|
|
138
137
|
}
|
|
138
|
+
// ─── Tool Conversion ───────────────────────────────────
|
|
139
|
+
//
|
|
140
|
+
// Convert PolpoTool[] (TypeBox schema + execute) to AI SDK ToolSet
|
|
141
|
+
// (Record<string, Tool> with jsonSchema() + execute wrapper).
|
|
139
142
|
/**
|
|
140
|
-
*
|
|
143
|
+
* Convert an array of PolpoTool to an AI SDK ToolSet (Record<string, Tool>).
|
|
144
|
+
*
|
|
145
|
+
* Each PolpoTool uses TypeBox for its parameter schema (which produces JSON Schema).
|
|
146
|
+
* AI SDK tools use `jsonSchema()` to wrap raw JSON Schema objects.
|
|
147
|
+
* The execute function is wrapped to adapt the PolpoTool signature to AI SDK's.
|
|
148
|
+
*/
|
|
149
|
+
function convertToolsToToolSet(polpoTools, abortSignal, onToolResult) {
|
|
150
|
+
const toolSet = {};
|
|
151
|
+
for (const pt of polpoTools) {
|
|
152
|
+
toolSet[pt.name] = aiTool({
|
|
153
|
+
description: pt.description,
|
|
154
|
+
inputSchema: jsonSchema(pt.parameters),
|
|
155
|
+
execute: async (args, { toolCallId }) => {
|
|
156
|
+
let result;
|
|
157
|
+
let isError = false;
|
|
158
|
+
try {
|
|
159
|
+
result = await pt.execute(toolCallId, args, abortSignal);
|
|
160
|
+
}
|
|
161
|
+
catch (err) {
|
|
162
|
+
isError = true;
|
|
163
|
+
result = {
|
|
164
|
+
content: [{ type: "text", text: err instanceof Error ? err.message : String(err) }],
|
|
165
|
+
details: {},
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
// Notify caller for activity tracking
|
|
169
|
+
onToolResult?.(pt.name, toolCallId, result, isError);
|
|
170
|
+
// Return text content for the LLM — AI SDK serializes the return value
|
|
171
|
+
return result.content
|
|
172
|
+
.map(c => c.type === "text" ? c.text : `[image: ${c.mimeType}]`)
|
|
173
|
+
.join("\n");
|
|
174
|
+
},
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
return toolSet;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Spawn an agent using Polpo's built-in engine (AI SDK streamText loop).
|
|
141
181
|
*
|
|
142
182
|
* This is the default execution path — used when no adapter is specified
|
|
143
183
|
* on an agent config.
|
|
@@ -207,65 +247,10 @@ export function spawnEngine(agentConfig, task, cwd, ctx) {
|
|
|
207
247
|
const codingTools = createSystemTools(cwd, agentConfig.allowedTools, effectiveAllowedPaths, outputDir, undefined);
|
|
208
248
|
// Resolve reasoning level: agent config > global settings (via SpawnContext) > "off"
|
|
209
249
|
const thinkingLevel = agentConfig.reasoning ?? ctx?.reasoning ?? "off";
|
|
210
|
-
// Build the system prompt once for reuse in both the
|
|
250
|
+
// Build the system prompt once for reuse in both the agent loop and context compaction
|
|
211
251
|
const systemPrompt = buildSystemPrompt(agentConfig, cwd, ctx?.polpoDir, outputDir, effectiveAllowedPaths);
|
|
212
|
-
//
|
|
213
|
-
|
|
214
|
-
const agent = new Agent({
|
|
215
|
-
getApiKey: (provider) => resolveApiKeyAsync(provider),
|
|
216
|
-
// Context compaction: prune old tool outputs, then LLM-summarize if still over threshold.
|
|
217
|
-
// Runs before every LLM call. Under threshold → zero overhead (just token estimation).
|
|
218
|
-
transformContext: async (messages) => {
|
|
219
|
-
const summarize = async (msgs, prompt) => {
|
|
220
|
-
const apiKey = await resolveApiKeyAsync(model.provider);
|
|
221
|
-
const response = await completeSimple(model, {
|
|
222
|
-
systemPrompt: prompt,
|
|
223
|
-
messages: msgs,
|
|
224
|
-
}, apiKey ? { apiKey, maxTokens: model.maxTokens } : { maxTokens: model.maxTokens });
|
|
225
|
-
return response.content
|
|
226
|
-
.filter((c) => c.type === "text")
|
|
227
|
-
.map((c) => c.text)
|
|
228
|
-
.join("\n")
|
|
229
|
-
.trim();
|
|
230
|
-
};
|
|
231
|
-
const result = await compactIfNeeded({
|
|
232
|
-
systemPrompt,
|
|
233
|
-
messages,
|
|
234
|
-
tools: agent.state.tools,
|
|
235
|
-
config: {
|
|
236
|
-
contextWindow: model.contextWindow ?? 200_000,
|
|
237
|
-
maxOutputTokens: model.maxTokens ?? 8192,
|
|
238
|
-
},
|
|
239
|
-
summarize,
|
|
240
|
-
mode: "task",
|
|
241
|
-
onCompaction: (event) => {
|
|
242
|
-
handle.onTranscript?.({
|
|
243
|
-
type: "compaction",
|
|
244
|
-
phase: event.phase,
|
|
245
|
-
tokensBefore: event.tokensBefore,
|
|
246
|
-
tokensAfter: event.tokensAfter,
|
|
247
|
-
tokensReclaimed: event.tokensReclaimed,
|
|
248
|
-
messagesBefore: event.messagesBefore,
|
|
249
|
-
messagesAfter: event.messagesAfter,
|
|
250
|
-
toolOutputsPruned: event.toolOutputsPruned,
|
|
251
|
-
summary: event.summary,
|
|
252
|
-
});
|
|
253
|
-
},
|
|
254
|
-
});
|
|
255
|
-
return result.compacted ? result.messages : messages;
|
|
256
|
-
},
|
|
257
|
-
initialState: {
|
|
258
|
-
systemPrompt,
|
|
259
|
-
model,
|
|
260
|
-
thinkingLevel,
|
|
261
|
-
maxTokens: model.maxTokens,
|
|
262
|
-
tools: codingTools,
|
|
263
|
-
messages: [],
|
|
264
|
-
isStreaming: false,
|
|
265
|
-
streamMessage: null,
|
|
266
|
-
pendingToolCalls: new Set(),
|
|
267
|
-
},
|
|
268
|
-
});
|
|
252
|
+
// AbortController for the agent — used to cancel the loop
|
|
253
|
+
const abortController = new AbortController();
|
|
269
254
|
const handle = {
|
|
270
255
|
agentName: agentConfig.name,
|
|
271
256
|
taskId: task.id,
|
|
@@ -275,61 +260,55 @@ export function spawnEngine(agentConfig, task, cwd, ctx) {
|
|
|
275
260
|
done: null, // set below
|
|
276
261
|
isAlive: () => alive,
|
|
277
262
|
kill: () => {
|
|
278
|
-
|
|
263
|
+
abortController.abort();
|
|
279
264
|
alive = false;
|
|
280
265
|
},
|
|
281
266
|
};
|
|
282
267
|
// Track turns for maxTurns enforcement
|
|
283
|
-
let turnCount = 0;
|
|
284
268
|
const maxTurns = agentConfig.maxTurns ?? 150;
|
|
285
|
-
//
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
toolId: block.id,
|
|
310
|
-
input: block.arguments,
|
|
311
|
-
});
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
break;
|
|
269
|
+
// Provider options for reasoning/thinking
|
|
270
|
+
// Cast needed: mapReasoningToProviderOptions returns Record<string, Record<string, unknown>>
|
|
271
|
+
// but AI SDK expects Record<string, JSONObject> (JSONValue values). The values are always
|
|
272
|
+
// JSON-serializable (numbers, strings, objects), so this cast is safe.
|
|
273
|
+
const providerOptions = mapReasoningToProviderOptions(model.provider, thinkingLevel, model.maxTokens);
|
|
274
|
+
// Run the agent and capture result
|
|
275
|
+
handle.done = (async () => {
|
|
276
|
+
try {
|
|
277
|
+
// Resolve vault credentials (async) — then rebuild tools with vault included
|
|
278
|
+
const vaultEntries = await ctx?.vaultStore?.getAllForAgent(agentConfig.name);
|
|
279
|
+
const vault = resolveAgentVault(vaultEntries);
|
|
280
|
+
// Rebuild tools with vault resolved
|
|
281
|
+
let allPolpoTools = createSystemTools(cwd, agentConfig.allowedTools, effectiveAllowedPaths, outputDir, vault);
|
|
282
|
+
if (hasExtendedTools) {
|
|
283
|
+
allPolpoTools = await createAllTools({
|
|
284
|
+
cwd,
|
|
285
|
+
allowedTools: agentConfig.allowedTools,
|
|
286
|
+
allowedPaths: effectiveAllowedPaths,
|
|
287
|
+
browserSession: agentConfig.name,
|
|
288
|
+
browserProfileDir,
|
|
289
|
+
vault,
|
|
290
|
+
emailAllowedDomains: agentConfig.emailAllowedDomains ?? ctx?.emailAllowedDomains,
|
|
291
|
+
outputDir,
|
|
292
|
+
});
|
|
316
293
|
}
|
|
317
|
-
|
|
294
|
+
// Convert PolpoTool[] to AI SDK ToolSet with activity tracking
|
|
295
|
+
const toolSet = convertToolsToToolSet(allPolpoTools, abortController.signal, (toolName, toolCallId, result, isError) => {
|
|
296
|
+
activity.lastUpdate = new Date().toISOString();
|
|
318
297
|
// Track file operations from tool details
|
|
319
|
-
const details =
|
|
298
|
+
const details = result.details;
|
|
320
299
|
if (details?.path) {
|
|
321
300
|
const filePath = details.path;
|
|
322
301
|
activity.lastFile = filePath;
|
|
323
|
-
if (
|
|
302
|
+
if (toolName === "write" && !activity.filesCreated.includes(filePath)) {
|
|
324
303
|
activity.filesCreated.push(filePath);
|
|
325
304
|
}
|
|
326
|
-
if (
|
|
305
|
+
if (toolName === "edit" && !activity.filesEdited.includes(filePath)) {
|
|
327
306
|
activity.filesEdited.push(filePath);
|
|
328
307
|
}
|
|
329
308
|
}
|
|
330
309
|
// Collect outcomes from explicit register_outcome calls
|
|
331
|
-
if (!
|
|
332
|
-
const outcome = collectOutcome(
|
|
310
|
+
if (!isError && details) {
|
|
311
|
+
const outcome = collectOutcome(toolName, details);
|
|
333
312
|
if (outcome) {
|
|
334
313
|
if (!handle.outcomes)
|
|
335
314
|
handle.outcomes = [];
|
|
@@ -337,62 +316,137 @@ export function spawnEngine(agentConfig, task, cwd, ctx) {
|
|
|
337
316
|
}
|
|
338
317
|
}
|
|
339
318
|
// Emit tool result transcript
|
|
340
|
-
const resultText =
|
|
319
|
+
const resultText = result.content
|
|
320
|
+
.map((c) => c.text ?? "")
|
|
321
|
+
.join("");
|
|
341
322
|
handle.onTranscript?.({
|
|
342
323
|
type: "tool_result",
|
|
343
|
-
toolId:
|
|
344
|
-
tool:
|
|
324
|
+
toolId: toolCallId,
|
|
325
|
+
tool: toolName,
|
|
345
326
|
content: resultText.slice(0, 2000),
|
|
346
|
-
isError
|
|
347
|
-
});
|
|
348
|
-
break;
|
|
349
|
-
}
|
|
350
|
-
case "turn_end": {
|
|
351
|
-
turnCount++;
|
|
352
|
-
if (turnCount >= maxTurns) {
|
|
353
|
-
agent.abort();
|
|
354
|
-
}
|
|
355
|
-
break;
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
});
|
|
359
|
-
// Run the agent and capture result
|
|
360
|
-
handle.done = (async () => {
|
|
361
|
-
try {
|
|
362
|
-
// Resolve vault credentials (async) — then rebuild tools with vault included
|
|
363
|
-
const vaultEntries = await ctx?.vaultStore?.getAllForAgent(agentConfig.name);
|
|
364
|
-
const vault = resolveAgentVault(vaultEntries);
|
|
365
|
-
// Rebuild tools with vault resolved
|
|
366
|
-
let allTools = createSystemTools(cwd, agentConfig.allowedTools, effectiveAllowedPaths, outputDir, vault);
|
|
367
|
-
if (hasExtendedTools) {
|
|
368
|
-
allTools = await createAllTools({
|
|
369
|
-
cwd,
|
|
370
|
-
allowedTools: agentConfig.allowedTools,
|
|
371
|
-
allowedPaths: effectiveAllowedPaths,
|
|
372
|
-
browserSession: agentConfig.name,
|
|
373
|
-
browserProfileDir,
|
|
374
|
-
vault,
|
|
375
|
-
emailAllowedDomains: agentConfig.emailAllowedDomains ?? ctx?.emailAllowedDomains,
|
|
376
|
-
outputDir,
|
|
327
|
+
isError,
|
|
377
328
|
});
|
|
378
|
-
}
|
|
379
|
-
|
|
329
|
+
});
|
|
330
|
+
// Build the user prompt
|
|
380
331
|
const prompt = buildPrompt(task);
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
332
|
+
// Build the summarize function for context compaction (uses AI SDK generateText)
|
|
333
|
+
const summarize = async (msgs, compactionPrompt) => {
|
|
334
|
+
const response = await generateText({
|
|
335
|
+
model: model.aiModel,
|
|
336
|
+
system: compactionPrompt,
|
|
337
|
+
messages: msgs,
|
|
338
|
+
maxOutputTokens: model.maxTokens,
|
|
339
|
+
abortSignal: abortController.signal,
|
|
340
|
+
providerOptions,
|
|
341
|
+
});
|
|
342
|
+
return response.text;
|
|
343
|
+
};
|
|
344
|
+
// ─── Manual Agent Loop ───────────────────────────────
|
|
345
|
+
//
|
|
346
|
+
// Each iteration: context compaction → streamText (1 step) → process stream → append messages.
|
|
347
|
+
// The loop continues until the model finishes without tool calls (finishReason !== "tool-calls")
|
|
348
|
+
// or maxTurns is reached.
|
|
349
|
+
let messages = [{ role: "user", content: prompt }];
|
|
384
350
|
let resultText = "";
|
|
385
|
-
for (let
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
351
|
+
for (let turn = 0; turn < maxTurns; turn++) {
|
|
352
|
+
if (abortController.signal.aborted)
|
|
353
|
+
break;
|
|
354
|
+
// Context compaction — prune old tool outputs, then LLM-summarize if still over threshold.
|
|
355
|
+
// Under threshold → zero overhead (just token estimation).
|
|
356
|
+
const compactionResult = await compactIfNeeded({
|
|
357
|
+
systemPrompt,
|
|
358
|
+
messages,
|
|
359
|
+
tools: Object.values(toolSet).map(t => ({ description: t.description ?? "" })),
|
|
360
|
+
config: {
|
|
361
|
+
contextWindow: model.contextWindow ?? 200_000,
|
|
362
|
+
maxOutputTokens: model.maxTokens ?? 8192,
|
|
363
|
+
},
|
|
364
|
+
summarize,
|
|
365
|
+
mode: "task",
|
|
366
|
+
onCompaction: (event) => {
|
|
367
|
+
handle.onTranscript?.({
|
|
368
|
+
type: "compaction",
|
|
369
|
+
phase: event.phase,
|
|
370
|
+
tokensBefore: event.tokensBefore,
|
|
371
|
+
tokensAfter: event.tokensAfter,
|
|
372
|
+
tokensReclaimed: event.tokensReclaimed,
|
|
373
|
+
messagesBefore: event.messagesBefore,
|
|
374
|
+
messagesAfter: event.messagesAfter,
|
|
375
|
+
toolOutputsPruned: event.toolOutputsPruned,
|
|
376
|
+
summary: event.summary,
|
|
377
|
+
});
|
|
378
|
+
},
|
|
379
|
+
});
|
|
380
|
+
if (compactionResult.compacted) {
|
|
381
|
+
messages = compactionResult.messages;
|
|
382
|
+
}
|
|
383
|
+
// Single LLM call (streamText default: stopWhen = stepCountIs(1))
|
|
384
|
+
// This does one step: LLM generates text/tool-calls → tools are executed automatically
|
|
385
|
+
const stream = streamText({
|
|
386
|
+
model: model.aiModel,
|
|
387
|
+
system: systemPrompt,
|
|
388
|
+
messages,
|
|
389
|
+
tools: toolSet,
|
|
390
|
+
maxOutputTokens: model.maxTokens,
|
|
391
|
+
abortSignal: abortController.signal,
|
|
392
|
+
providerOptions,
|
|
393
|
+
onStepFinish: async ({ usage }) => {
|
|
394
|
+
// Accumulate token usage
|
|
395
|
+
if (usage) {
|
|
396
|
+
activity.totalTokens += (usage.totalTokens ?? 0);
|
|
397
|
+
}
|
|
398
|
+
activity.lastUpdate = new Date().toISOString();
|
|
399
|
+
},
|
|
400
|
+
});
|
|
401
|
+
// Process the full stream for transcript events
|
|
402
|
+
let stepAssistantText = "";
|
|
403
|
+
for await (const part of stream.fullStream) {
|
|
404
|
+
switch (part.type) {
|
|
405
|
+
case "text-delta": {
|
|
406
|
+
stepAssistantText += part.text;
|
|
407
|
+
break;
|
|
408
|
+
}
|
|
409
|
+
case "tool-call": {
|
|
410
|
+
// Track tool call in activity
|
|
411
|
+
activity.toolCalls++;
|
|
412
|
+
activity.lastTool = part.toolName;
|
|
413
|
+
activity.lastUpdate = new Date().toISOString();
|
|
414
|
+
handle.onTranscript?.({
|
|
415
|
+
type: "tool_use",
|
|
416
|
+
tool: part.toolName,
|
|
417
|
+
toolId: part.toolCallId,
|
|
418
|
+
input: part.input,
|
|
419
|
+
});
|
|
420
|
+
break;
|
|
421
|
+
}
|
|
422
|
+
// tool-result and tool-error are handled in the convertToolsToToolSet callback
|
|
423
|
+
case "error": {
|
|
424
|
+
handle.onTranscript?.({
|
|
425
|
+
type: "error",
|
|
426
|
+
message: part.error instanceof Error ? part.error.message : String(part.error),
|
|
427
|
+
});
|
|
391
428
|
break;
|
|
392
429
|
}
|
|
393
430
|
}
|
|
394
|
-
|
|
395
|
-
|
|
431
|
+
}
|
|
432
|
+
// Emit assistant text transcript
|
|
433
|
+
if (stepAssistantText) {
|
|
434
|
+
activity.summary = stepAssistantText.slice(0, 200);
|
|
435
|
+
handle.onTranscript?.({ type: "assistant", text: stepAssistantText });
|
|
436
|
+
}
|
|
437
|
+
// Get the finish reason and response messages
|
|
438
|
+
const finishReason = await stream.finishReason;
|
|
439
|
+
const responseMessages = (await stream.response).messages;
|
|
440
|
+
// Append the response messages to history (assistant message + tool results if any)
|
|
441
|
+
messages.push(...responseMessages);
|
|
442
|
+
// If the model finished without requesting tool calls, we're done
|
|
443
|
+
if (finishReason !== "tool-calls") {
|
|
444
|
+
resultText = await stream.text;
|
|
445
|
+
break;
|
|
446
|
+
}
|
|
447
|
+
// If we completed the last allowed turn with tool calls still pending, grab what text we have
|
|
448
|
+
if (turn === maxTurns - 1) {
|
|
449
|
+
resultText = await stream.text;
|
|
396
450
|
}
|
|
397
451
|
}
|
|
398
452
|
alive = false;
|
|
@@ -424,7 +478,7 @@ export function spawnEngine(agentConfig, task, cwd, ctx) {
|
|
|
424
478
|
})();
|
|
425
479
|
return handle;
|
|
426
480
|
}
|
|
427
|
-
// ─── Outcome Collection
|
|
481
|
+
// ─── Outcome Collection ────���────────────────────────
|
|
428
482
|
//
|
|
429
483
|
// Outcomes are ONLY created via the `register_outcome` tool.
|
|
430
484
|
// The agent explicitly decides what artifacts are deliverables.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/adapters/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/adapters/engine.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAExD,0CAA0C;AAC1C,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,CAAC;QACZ,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACrC,CAAC;AACJ,CAAC;AACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,UAAU,EACV,YAAY,EACZ,UAAU,EACV,IAAI,IAAI,MAAM,GAGf,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACzG,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAA0C,MAAM,gBAAgB,CAAC;AAGzF;;;;;;;;;;GAUG;AACH,SAAS,qBAAqB,CAAC,KAAkB;IAC/C,MAAM,KAAK,GAAa,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAEnD,sCAAsC;IACtC,KAAK,CAAC,IAAI,CACR,8BAA8B,EAC9B,uEAAuE,EACvE,uCAAuC,EACvC,yFAAyF,EACzF,kGAAkG,EAClG,mDAAmD,EACnD,0CAA0C,EAC1C,kCAAkC,EAClC,8DAA8D,EAC9D,8CAA8C,EAC9C,4EAA4E,EAC5E,qDAAqD,EACrD,+CAA+C,CAChD,CAAC;IAEF,8DAA8D;IAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAE7F,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,8BAA8B,EAC9B,mCAAmC,EACnC,4DAA4D,EAC5D,qFAAqF,EACrF,+CAA+C,EAC/C,4CAA4C,EAC5C,uMAAuM,EACvM,uGAAuG,CACxG,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,YAAY,EACZ,oEAAoE,EACpE,kDAAkD,EAClD,sCAAsC,EACtC,kHAAkH,EAClH,+EAA+E,EAC/E,sGAAsG,EACtG,+GAA+G,EAC/G,2DAA2D,EAC3D,kFAAkF,CACnF,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,eAAe,EACf,iFAAiF,EACjF,+CAA+C,EAC/C,qDAAqD,EACrD,uCAAuC,EACvC,uCAAuC,CACxC,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,YAAY,EACZ,4DAA4D,EAC5D,gEAAgE,CACjE,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,YAAY,EACZ,8DAA8D,CAC/D,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,YAAY,EACZ,iEAAiE,EACjE,0EAA0E,CAC3E,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,YAAY,EACZ,wCAAwC,EACxC,6CAA6C,EAC7C,+DAA+D,EAC/D,2CAA2C,EAC3C,0EAA0E,CAC3E,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,UAAU,EACV,uCAAuC,EACvC,uCAAuC,EACvC,qCAAqC,EACrC,iCAAiC,EACjC,kEAAkE,CACnE,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,qBAAqB,EACrB,0CAA0C,EAC1C,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,0BAA0B,EAC1B,iDAAiD,EACjD,6DAA6D,EAC7D,gEAAgE,CACjE,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,QAAQ,CAAC,IAAI,CACX,EAAE,EACF,yBAAyB,EACzB,4GAA4G,EAC5G,4EAA4E,EAC5E,gDAAgD,EAChD,6CAA6C,EAC7C,qEAAqE,EACrE,wEAAwE,EACxE,2DAA2D,EAC3D,uFAAuF,EACvF,+FAA+F,CAChG,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,IAAI,CACR,EAAE,EACF,oDAAoD,EACpD,2FAA2F,EAC3F,oEAAoE,EACpE,sFAAsF,EACtF,iFAAiF,EACjF,6EAA6E,EAC7E,0FAA0F,EAC1F,qDAAqD,CACtD,CAAC;IAEF,mBAAmB;IACnB,KAAK,CAAC,IAAI,CACR,EAAE,EACF,6GAA6G,EAC7G,6HAA6H,EAC7H,wFAAwF,CACzF,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAkB,EAAE,GAAW,EAAE,QAAiB,EAAE,SAAkB,EAAE,YAAuB;IAC/H,yCAAyC;IACzC,MAAM,MAAM,GAAG,QAAQ;QACrB,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;QAC1D,CAAC,CAAC,EAAE,CAAC;IAEP,8FAA8F;IAC9F,oFAAoF;IACpF,MAAM,KAAK,GAAG,CAAC,sBAAsB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAE1D,4DAA4D;IAE5D,6EAA6E;IAC7E,sFAAsF;IACtF,MAAM,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IAE7C,mFAAmF;IACnF,KAAK,CAAC,IAAI,CACR,EAAE,EACF,sBAAsB,EACtB,8BAA8B,GAAG,EAAE,EACnC,uGAAuG,EACvG,2FAA2F,EAC3F,6GAA6G,CAC9G,CAAC;IAEF,yCAAyC;IACzC,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CACR,EAAE,EACF,qBAAqB,EACrB,kCAAkC,SAAS,EAAE,EAC7C,sFAAsF,EACtF,sFAAsF,EACtF,2FAA2F,CAC5F,CAAC;IACJ,CAAC;IAED,uEAAuE;IACvE,yFAAyF;IACzF,MAAM,WAAW,GAAG,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,KAAK,CAAC,IAAI,CACR,EAAE,EACF,wBAAwB,EACxB,6DAA6D,EAC7D,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EACjC,0DAA0D,EAC1D,qHAAqH,CACtH,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,IAAU;IAC7B,MAAM,KAAK,GAAG,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5D,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,sBAAsB,CAAC,CAAC;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa;gBAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3F,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;gBAAE,KAAK,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5E,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;gBAAE,KAAK,CAAC,IAAI,CAAC,2BAA2B,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CACR,EAAE,EACF,qCAAqC,EACrC,wFAAwF,EACxF,2EAA2E,EAC3E,4EAA4E,EAC5E,uFAAuF,EACvF,EAAE,EACF,6BAA6B,EAC7B,0FAA0F,EAC1F,kHAAkH,EAClH,4GAA4G,EAC5G,gEAAgE,EAChE,oGAAoG,EACpG,mHAAmH,EACnH,sGAAsG,EACtG,sFAAsF,EACtF,mEAAmE,EACnE,oGAAoG,EACpG,EAAE,EACF,8BAA8B,EAC9B,sFAAsF,EACtF,uEAAuE,EACvE,qFAAqF,EACrF,EAAE,EACF,sEAAsE,EACtE,sFAAsF,EACtF,iFAAiF,EACjF,gGAAgG,EAChG,wFAAwF,EACxF,2FAA2F,EAC3F,EAAE,EACF,QAAQ,EACR,gGAAgG,EAChG,wFAAwF,EACxF,kGAAkG,EAClG,yEAAyE,EACzE,qFAAqF,CACtF,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,0DAA0D;AAC1D,EAAE;AACF,mEAAmE;AACnE,8DAA8D;AAE9D;;;;;;GAMG;AACH,SAAS,qBAAqB,CAC5B,UAAuB,EACvB,WAAwB,EACxB,YAAmG;IAEnG,MAAM,OAAO,GAAY,EAAE,CAAC;IAE5B,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;YACxB,WAAW,EAAE,EAAE,CAAC,WAAW;YAC3B,WAAW,EAAE,UAAU,CAAC,EAAE,CAAC,UAAiB,CAAC;YAC7C,OAAO,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;gBAC3C,IAAI,MAAkB,CAAC;gBACvB,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC3D,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,GAAG;wBACP,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;wBACnF,OAAO,EAAE,EAAE;qBACZ,CAAC;gBACJ,CAAC;gBAED,sCAAsC;gBACtC,YAAY,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBAErD,uEAAuE;gBACvE,OAAO,MAAM,CAAC,OAAO;qBAClB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,GAAG,CAAC;qBAC/D,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,WAAwB,EAAE,IAAU,EAAE,GAAW,EAAE,GAAkB;IAC/F,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,KAAK,GAAG,IAAI,CAAC;IAEjB,wDAAwD;IACxD,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,qBAAqB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,gBAAgB;IAChB,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAE9C,oEAAoE;IACpE,6IAA6I;IAC7I,kLAAkL;IAClL,qDAAqD;IACrD,6EAA6E;IAC7E,6EAA6E;IAC7E,+DAA+D;IAC/D,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,oGAAoG,CAAC,CAAC;IACxH,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAE9B,6FAA6F;IAC7F,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAE,kBAAkB,EAAE,WAAW,CAAC,cAAc,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IAE7G,iHAAiH;IACjH,4EAA4E;IAC5E,MAAM,gBAAgB,GAAG,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE;QAC1D,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;eACtD,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;eAC7E,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;eAC1E,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzF,CAAC,CAAC,IAAI,KAAK,CAAC;IAEZ,8EAA8E;IAC9E,MAAM,SAAS,GAAG,GAAG,EAAE,SAAS,CAAC;IAEjC,sFAAsF;IACtF,EAAE;IACF,kFAAkF;IAClF,gFAAgF;IAChF,6EAA6E;IAC7E,uCAAuC;IACvC,EAAE;IACF,8EAA8E;IAC9E,0CAA0C;IAC1C,EAAE;IACF,kFAAkF;IAClF,gFAAgF;IAChF,yBAAyB;IACzB,IAAI,qBAA2C,CAAC;IAChD,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;QAC7B,0EAA0E;QAC1E,qBAAqB,GAAG,CAAC,GAAG,WAAW,CAAC,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3F,CAAC;SAAM,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;QAC9E,+DAA+D;QAC/D,qBAAqB,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,kGAAkG;QAClG,qBAAqB,GAAG,SAAS,CAAC;IACpC,CAAC;IAED,qFAAqF;IACrF,wFAAwF;IACxF,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,YAAY,EAAE,qBAAqB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAGlH,qFAAqF;IACrF,MAAM,aAAa,GAAG,WAAW,CAAC,SAAS,IAAI,GAAG,EAAE,SAAS,IAAI,KAAK,CAAC;IAEvE,uFAAuF;IACvF,MAAM,YAAY,GAAG,iBAAiB,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAE1G,0DAA0D;IAC1D,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAE9C,MAAM,MAAM,GAAgB;QAC1B,SAAS,EAAE,WAAW,CAAC,IAAI;QAC3B,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,GAAG,EAAE,CAAC,EAAE,kCAAkC;QAC1C,QAAQ;QACR,IAAI,EAAE,IAAW,EAAE,YAAY;QAC/B,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK;QACpB,IAAI,EAAE,GAAG,EAAE;YACT,eAAe,CAAC,KAAK,EAAE,CAAC;YACxB,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;KACF,CAAC;IAEF,uCAAuC;IACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,IAAI,GAAG,CAAC;IAE7C,0CAA0C;IAC1C,6FAA6F;IAC7F,0FAA0F;IAC1F,uEAAuE;IACvE,MAAM,eAAe,GAAG,6BAA6B,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,SAAS,CACnD,CAAC;IAElD,mCAAmC;IACnC,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,IAAyB,EAAE;QAC7C,IAAI,CAAC;YACH,6EAA6E;YAC7E,MAAM,YAAY,GAAG,MAAM,GAAG,EAAE,UAAU,EAAE,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC7E,MAAM,KAAK,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAE9C,oCAAoC;YACpC,IAAI,aAAa,GAAG,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,YAAY,EAAE,qBAAqB,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAE9G,IAAI,gBAAgB,EAAE,CAAC;gBACrB,aAAa,GAAG,MAAM,cAAc,CAAC;oBACnC,GAAG;oBACH,YAAY,EAAE,WAAW,CAAC,YAAY;oBACtC,YAAY,EAAE,qBAAqB;oBACnC,cAAc,EAAE,WAAW,CAAC,IAAI;oBAChC,iBAAiB;oBACjB,KAAK;oBACL,mBAAmB,EAAE,WAAW,CAAC,mBAAmB,IAAI,GAAG,EAAE,mBAAmB;oBAChF,SAAS;iBACV,CAAC,CAAC;YACL,CAAC;YAED,+DAA+D;YAC/D,MAAM,OAAO,GAAG,qBAAqB,CACnC,aAAa,EACb,eAAe,CAAC,MAAM,EACtB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;gBACxC,QAAQ,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAE/C,0CAA0C;gBAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC/B,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAc,CAAC;oBACxC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAC7B,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACtE,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACvC,CAAC;oBACD,IAAI,QAAQ,KAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBACpE,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACtC,CAAC;gBACH,CAAC;gBAED,wDAAwD;gBACxD,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;oBACxB,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAClD,IAAI,OAAO,EAAE,CAAC;wBACZ,IAAI,CAAC,MAAM,CAAC,QAAQ;4BAAE,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;wBAC3C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAChC,CAAC;gBACH,CAAC;gBAED,8BAA8B;gBAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO;qBAC9B,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;qBAC7B,IAAI,CAAC,EAAE,CAAC,CAAC;gBACZ,MAAM,CAAC,YAAY,EAAE,CAAC;oBACpB,IAAI,EAAE,aAAa;oBACnB,MAAM,EAAE,UAAU;oBAClB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC;oBAClC,OAAO;iBACR,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YAEF,wBAAwB;YACxB,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAEjC,iFAAiF;YACjF,MAAM,SAAS,GAAgB,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE;gBAC9D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC;oBAClC,KAAK,EAAE,KAAK,CAAC,OAAO;oBACpB,MAAM,EAAE,gBAAgB;oBACxB,QAAQ,EAAE,IAAsB;oBAChC,eAAe,EAAE,KAAK,CAAC,SAAS;oBAChC,WAAW,EAAE,eAAe,CAAC,MAAM;oBACnC,eAAe;iBAChB,CAAC,CAAC;gBACH,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC,CAAC;YAEF,wDAAwD;YACxD,EAAE;YACF,+FAA+F;YAC/F,iGAAiG;YACjG,0BAA0B;YAE1B,IAAI,QAAQ,GAAmB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACnE,IAAI,UAAU,GAAG,EAAE,CAAC;YAEpB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC3C,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO;oBAAE,MAAM;gBAE1C,2FAA2F;gBAC3F,2DAA2D;gBAC3D,MAAM,gBAAgB,GAAG,MAAM,eAAe,CAAC;oBAC7C,YAAY;oBACZ,QAAQ;oBACR,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,EAAG,CAAS,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC;oBACvF,MAAM,EAAE;wBACN,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,OAAO;wBAC7C,eAAe,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;qBACzC;oBACD,SAAS;oBACT,IAAI,EAAE,MAAM;oBACZ,YAAY,EAAE,CAAC,KAAsB,EAAE,EAAE;wBACvC,MAAM,CAAC,YAAY,EAAE,CAAC;4BACpB,IAAI,EAAE,YAAY;4BAClB,KAAK,EAAE,KAAK,CAAC,KAAK;4BAClB,YAAY,EAAE,KAAK,CAAC,YAAY;4BAChC,WAAW,EAAE,KAAK,CAAC,WAAW;4BAC9B,eAAe,EAAE,KAAK,CAAC,eAAe;4BACtC,cAAc,EAAE,KAAK,CAAC,cAAc;4BACpC,aAAa,EAAE,KAAK,CAAC,aAAa;4BAClC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;4BAC1C,OAAO,EAAE,KAAK,CAAC,OAAO;yBACvB,CAAC,CAAC;oBACL,CAAC;iBACF,CAAC,CAAC;gBAEH,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC;oBAC/B,QAAQ,GAAG,gBAAgB,CAAC,QAA0B,CAAC;gBACzD,CAAC;gBAED,kEAAkE;gBAClE,uFAAuF;gBACvF,MAAM,MAAM,GAAG,UAAU,CAAC;oBACxB,KAAK,EAAE,KAAK,CAAC,OAAO;oBACpB,MAAM,EAAE,YAAY;oBACpB,QAAQ;oBACR,KAAK,EAAE,OAAO;oBACd,eAAe,EAAE,KAAK,CAAC,SAAS;oBAChC,WAAW,EAAE,eAAe,CAAC,MAAM;oBACnC,eAAe;oBACf,YAAY,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;wBAChC,yBAAyB;wBACzB,IAAI,KAAK,EAAE,CAAC;4BACV,QAAQ,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;wBACnD,CAAC;wBACD,QAAQ,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBACjD,CAAC;iBACF,CAAC,CAAC;gBAEH,gDAAgD;gBAChD,IAAI,iBAAiB,GAAG,EAAE,CAAC;gBAC3B,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBAC3C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;wBAClB,KAAK,YAAY,CAAC,CAAC,CAAC;4BAClB,iBAAiB,IAAI,IAAI,CAAC,IAAI,CAAC;4BAC/B,MAAM;wBACR,CAAC;wBACD,KAAK,WAAW,CAAC,CAAC,CAAC;4BACjB,8BAA8B;4BAC9B,QAAQ,CAAC,SAAS,EAAE,CAAC;4BACrB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;4BAClC,QAAQ,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;4BAC/C,MAAM,CAAC,YAAY,EAAE,CAAC;gCACpB,IAAI,EAAE,UAAU;gCAChB,IAAI,EAAE,IAAI,CAAC,QAAQ;gCACnB,MAAM,EAAE,IAAI,CAAC,UAAU;gCACvB,KAAK,EAAE,IAAI,CAAC,KAAK;6BAClB,CAAC,CAAC;4BACH,MAAM;wBACR,CAAC;wBACD,+EAA+E;wBAC/E,KAAK,OAAO,CAAC,CAAC,CAAC;4BACb,MAAM,CAAC,YAAY,EAAE,CAAC;gCACpB,IAAI,EAAE,OAAO;gCACb,OAAO,EAAE,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;6BAC/E,CAAC,CAAC;4BACH,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,iCAAiC;gBACjC,IAAI,iBAAiB,EAAE,CAAC;oBACtB,QAAQ,CAAC,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACnD,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBACxE,CAAC;gBAED,8CAA8C;gBAC9C,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;gBAC/C,MAAM,gBAAgB,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;gBAE1D,oFAAoF;gBACpF,QAAQ,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;gBAEnC,kEAAkE;gBAClE,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;oBAClC,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;oBAC/B,MAAM;gBACR,CAAC;gBAED,8FAA8F;gBAC9F,IAAI,IAAI,KAAK,QAAQ,GAAG,CAAC,EAAE,CAAC;oBAC1B,UAAU,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;gBACjC,CAAC;YACH,CAAC;YAED,KAAK,GAAG,KAAK,CAAC;YACd,OAAO;gBACL,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;aAC7B,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,GAAG,KAAK,CAAC;YACd,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,CAAC,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YACvD,OAAO;gBACL,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,GAAG;gBACX,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;aAC7B,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,yEAAyE;YACzE,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;gBACjF,MAAM,0BAA0B,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,yDAAyD;AACzD,EAAE;AACF,6DAA6D;AAC7D,gEAAgE;AAChE,4DAA4D;AAC5D,wDAAwD;AAExD,+CAA+C;AAC/C,MAAM,QAAQ,GAA2B;IACvC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY;IACrF,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW;IAC5G,MAAM,EAAE,iBAAiB;IACzB,OAAO,EAAE,mEAAmE;IAC5E,MAAM,EAAE,0BAA0B;IAClC,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,yEAAyE;IAClF,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,iBAAiB;CAC1B,CAAC;AAEF,SAAS,SAAS,CAAC,QAAgB;IACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACpE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CAAC,QAAgB,EAAE,OAAgC;IACxE,IAAI,QAAQ,KAAK,kBAAkB,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QACrF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAgB;QAC3B,EAAE,EAAE,MAAM,EAAE;QACZ,IAAI,EAAE,OAAO,CAAC,WAA0B;QACxC,KAAK,EAAE,OAAO,CAAC,YAAsB;QACrC,UAAU,EAAE,kBAAkB;QAC9B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACrC,CAAC;IACF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAc,CAAC;QACtC,OAAO,CAAC,QAAQ,GAAI,OAAO,CAAC,eAA0B,IAAI,SAAS,CAAC,OAAO,CAAC,IAAc,CAAC,CAAC;QAC5F,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,WAAqB,CAAC;IACtF,CAAC;IACD,IAAI,OAAO,CAAC,WAAW;QAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,WAAqB,CAAC;IACtE,IAAI,OAAO,CAAC,UAAU;QAAE,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,UAAoB,CAAC;IACnE,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAC1E,IAAI,OAAO,CAAC,WAAW;QAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,WAAuB,CAAC;IACxE,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* G-Eval LLM-as-Judge review using
|
|
2
|
+
* G-Eval LLM-as-Judge review using Vercel AI SDK.
|
|
3
3
|
*
|
|
4
4
|
* Architecture: 2-phase review for reliability.
|
|
5
5
|
*
|
|
6
|
-
* Phase 1 — EXPLORATION (tool loop)
|
|
6
|
+
* Phase 1 — EXPLORATION (tool loop via generateText + maxSteps)
|
|
7
7
|
* The reviewer explores the codebase using read_file, glob, grep.
|
|
8
|
-
*
|
|
8
|
+
* AI SDK handles the tool loop internally via `stopWhen: stepCountIs(20)`.
|
|
9
9
|
* After exploration, we collect all assistant text as the "analysis".
|
|
10
10
|
*
|
|
11
|
-
* Phase 2 — SCORING (
|
|
12
|
-
* A separate
|
|
13
|
-
* and
|
|
14
|
-
*
|
|
11
|
+
* Phase 2 — SCORING (structured output via Output.object)
|
|
12
|
+
* A separate generateText call receives the full analysis from Phase 1
|
|
13
|
+
* and produces structured scores via Output.object() — the provider
|
|
14
|
+
* enforces JSON schema compliance, zero manual parsing needed.
|
|
15
15
|
*
|
|
16
16
|
* This separation makes the system robust: exploration failures don't
|
|
17
17
|
* block scoring, and scoring failures are isolated from exploration.
|
|
@@ -25,7 +25,7 @@ export type LLMQueryFn = (prompt: string, cwd: string) => Promise<string>;
|
|
|
25
25
|
* Run a G-Eval LLM-as-Judge review (2-phase architecture).
|
|
26
26
|
*
|
|
27
27
|
* Phase 1: Each reviewer explores the codebase with tools (read_file, glob, grep).
|
|
28
|
-
* Phase 2:
|
|
28
|
+
* Phase 2: Structured scoring via Output.object() extracts validated scores.
|
|
29
29
|
*
|
|
30
30
|
* Runs 3 independent reviewers in parallel (multi-evaluator consensus).
|
|
31
31
|
* Falls back to single-reviewer if <2 succeed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-review.d.ts","sourceRoot":"","sources":["../../src/assessment/llm-review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"llm-review.d.ts","sourceRoot":"","sources":["../../src/assessment/llm-review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAYH,OAAO,KAAK,EAAE,eAAe,EAAiC,WAAW,EAAE,aAAa,EAAmB,MAAM,kBAAkB,CAAC;AAOpI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAkrB1E;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,eAAe,EAC5B,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAClC,OAAO,CAAC,EAAE,aAAa,EACvB,SAAS,CAAC,EAAE,cAAc,GACzB,OAAO,CAAC,WAAW,CAAC,CAuEtB"}
|