@aexol/spectral 0.9.45 → 0.9.47
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/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +11 -1
- package/dist/relay/auto-optimizer.d.ts +41 -0
- package/dist/relay/auto-optimizer.d.ts.map +1 -0
- package/dist/relay/auto-optimizer.js +361 -0
- package/dist/relay/dispatcher.d.ts +19 -1
- package/dist/relay/dispatcher.d.ts.map +1 -1
- package/dist/relay/dispatcher.js +15 -0
- package/dist/server/wire.d.ts +40 -0
- package/dist/server/wire.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAwBH,OAAO,EAAE,WAAW,EAAmB,MAAM,oBAAoB,CAAC;AAUlE,OAAO,KAAK,EAAE,aAAa,EAAc,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGnE,OAAO,EAAmB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAsBrE;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAazD;AAED,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CA6B9D;AAED,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,uCAAuC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,qBAAqB,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;CAC/E;AAED,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,KAAK,EAAE,YAAY,CAAC;IACpB,wDAAwD;IACxD,OAAO,EAAE,oBAAoB,CAAC;IAC9B,4CAA4C;IAC5C,KAAK,EAAE,WAAW,CAAC;IACnB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAsB,QAAQ,CAAC,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAoZlF;AAwDD;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAa5E"}
|
package/dist/commands/serve.js
CHANGED
|
@@ -38,7 +38,7 @@ import { SettingsManager } from "../sdk/coding-agent/core/settings-manager.js";
|
|
|
38
38
|
import { getAgentDir } from "../sdk/coding-agent/config.js";
|
|
39
39
|
import { requireLogin } from "../preflight.js";
|
|
40
40
|
import { RelayClient } from "../relay/client.js";
|
|
41
|
-
import { detachAllSubscribers, handleAutoResearchFrame, handleCancelTurn, handleClientMessage, handleRestRequest, handleSubscribe, } from "../relay/dispatcher.js";
|
|
41
|
+
import { detachAllSubscribers, handleAutoOptimizeFrame, handleAutoResearchFrame, handleCancelTurn, handleClientMessage, handleRestRequest, handleSubscribe, } from "../relay/dispatcher.js";
|
|
42
42
|
import { ensureMachineRegistered } from "../relay/registration.js";
|
|
43
43
|
import { SessionStreamManager } from "../server/session-stream.js";
|
|
44
44
|
import { gracefulShutdown } from "../server/shutdown.js";
|
|
@@ -275,6 +275,16 @@ export async function runServe(opts = {}) {
|
|
|
275
275
|
});
|
|
276
276
|
return;
|
|
277
277
|
}
|
|
278
|
+
if (frame.kind === "auto_optimize") {
|
|
279
|
+
handleAutoOptimizeFrame(frame, {
|
|
280
|
+
store,
|
|
281
|
+
manager,
|
|
282
|
+
relay: r,
|
|
283
|
+
subscribers,
|
|
284
|
+
cwd,
|
|
285
|
+
});
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
278
288
|
if (frame.kind === "config_patch") {
|
|
279
289
|
handleConfigPatch(frame, {
|
|
280
290
|
cwd,
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-Optimizer (CLI side)
|
|
3
|
+
*
|
|
4
|
+
* Two-phase pipeline for project file optimization, modeled after auto-research.
|
|
5
|
+
*
|
|
6
|
+
* Phase 1 — Analyze (action: "analyze"):
|
|
7
|
+
* 1. Scan project filesystem for optimization candidates (size, duplication, complexity).
|
|
8
|
+
* 2. Build an analysis prompt for the agent.
|
|
9
|
+
* 3. Send prompt to the agent session via manager.prompt() with skipPersistence.
|
|
10
|
+
* 4. Parse the agent's response into structured AutoOptimizeRecommendation[].
|
|
11
|
+
* 5. Emit auto_optimize_analysis_complete via relay with recommendations.
|
|
12
|
+
*
|
|
13
|
+
* Phase 2 — Execute (action: "execute"):
|
|
14
|
+
* 1. Receive approvedItemIds from the frame.
|
|
15
|
+
* 2. Apply each approved recommendation via the agent session.
|
|
16
|
+
* 3. Run quality gates (type-check, lint, tests) on modified files.
|
|
17
|
+
* 4. Emit auto_optimize_execution_complete with per-item results and gate status.
|
|
18
|
+
*
|
|
19
|
+
* All errors are surfaced as auto_optimize_error events on the wire.
|
|
20
|
+
*/
|
|
21
|
+
import type { SessionStore } from "../server/storage.js";
|
|
22
|
+
import type { SessionStreamManager, Subscriber } from "../server/session-stream.js";
|
|
23
|
+
import type { RelayClient } from "./client.js";
|
|
24
|
+
export interface AutoOptimizeInput {
|
|
25
|
+
projectId: string;
|
|
26
|
+
sessionId: string;
|
|
27
|
+
action: "analyze" | "execute";
|
|
28
|
+
approvedItemIds?: string[];
|
|
29
|
+
}
|
|
30
|
+
export interface AutoOptimizeDeps {
|
|
31
|
+
store: SessionStore;
|
|
32
|
+
manager: SessionStreamManager;
|
|
33
|
+
relay: Pick<RelayClient, "send">;
|
|
34
|
+
subscribers: Map<string, Subscriber>;
|
|
35
|
+
cwd: string;
|
|
36
|
+
logger?: {
|
|
37
|
+
error: (...args: unknown[]) => void;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export declare function handleAutoOptimize(input: AutoOptimizeInput, deps: AutoOptimizeDeps): void;
|
|
41
|
+
//# sourceMappingURL=auto-optimizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-optimizer.d.ts","sourceRoot":"","sources":["../../src/relay/auto-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,EACX,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;KAAE,CAAC;CAClD;AA6ND,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,iBAAiB,EACxB,IAAI,EAAE,gBAAgB,GACrB,IAAI,CAmLN"}
|
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-Optimizer (CLI side)
|
|
3
|
+
*
|
|
4
|
+
* Two-phase pipeline for project file optimization, modeled after auto-research.
|
|
5
|
+
*
|
|
6
|
+
* Phase 1 — Analyze (action: "analyze"):
|
|
7
|
+
* 1. Scan project filesystem for optimization candidates (size, duplication, complexity).
|
|
8
|
+
* 2. Build an analysis prompt for the agent.
|
|
9
|
+
* 3. Send prompt to the agent session via manager.prompt() with skipPersistence.
|
|
10
|
+
* 4. Parse the agent's response into structured AutoOptimizeRecommendation[].
|
|
11
|
+
* 5. Emit auto_optimize_analysis_complete via relay with recommendations.
|
|
12
|
+
*
|
|
13
|
+
* Phase 2 — Execute (action: "execute"):
|
|
14
|
+
* 1. Receive approvedItemIds from the frame.
|
|
15
|
+
* 2. Apply each approved recommendation via the agent session.
|
|
16
|
+
* 3. Run quality gates (type-check, lint, tests) on modified files.
|
|
17
|
+
* 4. Emit auto_optimize_execution_complete with per-item results and gate status.
|
|
18
|
+
*
|
|
19
|
+
* All errors are surfaced as auto_optimize_error events on the wire.
|
|
20
|
+
*/
|
|
21
|
+
import * as fs from "node:fs";
|
|
22
|
+
import * as path from "node:path";
|
|
23
|
+
const activeAutoOptimizeSessions = new Set();
|
|
24
|
+
const OPTIMIZER_TIMEOUT_MS = 10 * 60 * 1000; // 10 minutes
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
// Helpers
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
function sendEvent(relay, sessionId, event) {
|
|
29
|
+
relay.send({ kind: "ws_event", sessionId, event });
|
|
30
|
+
}
|
|
31
|
+
function makeRelaySubscriber(sessionId, relay) {
|
|
32
|
+
return {
|
|
33
|
+
send(event) {
|
|
34
|
+
relay.send({ kind: "ws_event", sessionId, event });
|
|
35
|
+
},
|
|
36
|
+
isOpen() {
|
|
37
|
+
return true;
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Walk the project directory and collect file statistics.
|
|
43
|
+
* Skips node_modules, .git, .next, dist, build, .spectral, coverage.
|
|
44
|
+
* Respects MAX_FILES_SCAN limit.
|
|
45
|
+
*/
|
|
46
|
+
const MAX_FILES_SCAN = 2000;
|
|
47
|
+
function scanProjectFiles(projectPath) {
|
|
48
|
+
const stats = [];
|
|
49
|
+
const skipDirs = new Set([
|
|
50
|
+
"node_modules",
|
|
51
|
+
".git",
|
|
52
|
+
".next",
|
|
53
|
+
"dist",
|
|
54
|
+
"build",
|
|
55
|
+
".spectral",
|
|
56
|
+
"coverage",
|
|
57
|
+
"__pycache__",
|
|
58
|
+
".turbo",
|
|
59
|
+
]);
|
|
60
|
+
const stack = [projectPath];
|
|
61
|
+
while (stack.length > 0 && stats.length < MAX_FILES_SCAN) {
|
|
62
|
+
const dir = stack.pop();
|
|
63
|
+
let entries;
|
|
64
|
+
try {
|
|
65
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
for (const entry of entries) {
|
|
71
|
+
if (entry.isDirectory()) {
|
|
72
|
+
if (!skipDirs.has(entry.name) && !entry.name.startsWith(".")) {
|
|
73
|
+
stack.push(path.join(dir, entry.name));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else if (entry.isFile()) {
|
|
77
|
+
const ext = path.extname(entry.name).toLowerCase();
|
|
78
|
+
// Only collect source files
|
|
79
|
+
if ([".ts", ".tsx", ".js", ".jsx", ".css", ".scss", ".less"].includes(ext)) {
|
|
80
|
+
const fullPath = path.join(dir, entry.name);
|
|
81
|
+
try {
|
|
82
|
+
const content = fs.readFileSync(fullPath, "utf-8");
|
|
83
|
+
const lines = content.split("\n").length;
|
|
84
|
+
stats.push({
|
|
85
|
+
path: path.relative(projectPath, fullPath),
|
|
86
|
+
lines,
|
|
87
|
+
ext,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// skip unreadable files
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
if (stats.length >= MAX_FILES_SCAN)
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return stats;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Build the analyze-phase prompt sent to the agent.
|
|
103
|
+
* Uses adaptive heuristics: top N% by line count, growth signals,
|
|
104
|
+
* and DRY hints. No hard line limits — the agent decides.
|
|
105
|
+
*/
|
|
106
|
+
function buildAnalyzePrompt(fileStats, projectName) {
|
|
107
|
+
const sorted = [...fileStats].sort((a, b) => b.lines - a.lines);
|
|
108
|
+
const topFiles = sorted.slice(0, 20);
|
|
109
|
+
const topList = topFiles
|
|
110
|
+
.map((f, i) => `${i + 1}. \`${f.path}\` — ${f.lines} lines (${f.ext})`)
|
|
111
|
+
.join("\n");
|
|
112
|
+
const totalLines = fileStats.reduce((s, f) => s + f.lines, 0);
|
|
113
|
+
const fileCount = fileStats.length;
|
|
114
|
+
const avgLines = fileCount > 0 ? Math.round(totalLines / fileCount) : 0;
|
|
115
|
+
const medianLines = fileCount > 0
|
|
116
|
+
? sorted[Math.floor(fileCount / 2)]?.lines ?? 0
|
|
117
|
+
: 0;
|
|
118
|
+
return [
|
|
119
|
+
`You are the Auto-Optimizer for the project "${projectName}".`,
|
|
120
|
+
``,
|
|
121
|
+
`## Project File Stats`,
|
|
122
|
+
`- Total source files scanned: ${fileCount}`,
|
|
123
|
+
`- Total lines of code: ${totalLines}`,
|
|
124
|
+
`- Average lines per file: ${avgLines}`,
|
|
125
|
+
`- Median lines per file: ${medianLines}`,
|
|
126
|
+
``,
|
|
127
|
+
`## Top Files by Line Count`,
|
|
128
|
+
topList,
|
|
129
|
+
``,
|
|
130
|
+
`## Instructions`,
|
|
131
|
+
`Analyze the top files above and identify optimization opportunities.`,
|
|
132
|
+
`For each opportunity, provide a recommendation with:`,
|
|
133
|
+
`- **filePath**: relative path to the file`,
|
|
134
|
+
`- **issue**: what's wrong (too long, duplicated logic, mixed concerns, etc.)`,
|
|
135
|
+
`- **suggestion**: concrete refactoring to apply (extract hook/component, split file, deduplicate, etc.)`,
|
|
136
|
+
`- **severity**: "low", "medium", or "high"`,
|
|
137
|
+
`- **estimatedLineReduction** (optional): how many lines could be saved`,
|
|
138
|
+
``,
|
|
139
|
+
`### Rules`,
|
|
140
|
+
`1. DO NOT use hard line limits. Use adaptive thresholds: files significantly above the project median or average.`,
|
|
141
|
+
`2. Focus on structural issues: component decomposition, hook extraction, DRY violations, mixed concerns.`,
|
|
142
|
+
`3. Avoid cosmetic-only changes (renames, formatting). Each recommendation must have a functional benefit.`,
|
|
143
|
+
`4. Be conservative — only recommend changes you are confident are correct and safe.`,
|
|
144
|
+
`5. NEVER recommend deleting functionality or changing public APIs without strong justification.`,
|
|
145
|
+
``,
|
|
146
|
+
`Output your analysis as a JSON array of recommendation objects. Do NOT include markdown code fences — output raw JSON only.`,
|
|
147
|
+
].join("\n");
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Build the execute-phase prompt — applies approved recommendations.
|
|
151
|
+
*/
|
|
152
|
+
function buildExecutePrompt(approvedIds) {
|
|
153
|
+
return [
|
|
154
|
+
`You are the Auto-Optimizer. Execute the approved optimization recommendations.`,
|
|
155
|
+
``,
|
|
156
|
+
`## Approved Recommendation IDs`,
|
|
157
|
+
approvedIds.map((id) => `- ${id}`).join("\n"),
|
|
158
|
+
``,
|
|
159
|
+
`## Instructions`,
|
|
160
|
+
`Read each recommendation from the previous analysis, then:`,
|
|
161
|
+
`1. Apply the suggested refactoring to the target file(s).`,
|
|
162
|
+
`2. Ensure all imports, exports, and type references remain correct.`,
|
|
163
|
+
`3. After all changes: run type-check, lint, and tests on modified files.`,
|
|
164
|
+
`4. Report results per recommendation: success/fail, before/after line counts, and any errors.`,
|
|
165
|
+
``,
|
|
166
|
+
`Output a JSON object with \`results\` (array) and \`gates\` (object with passed: boolean and results array).`,
|
|
167
|
+
`Do NOT include markdown code fences — output raw JSON only.`,
|
|
168
|
+
].join("\n");
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Parse the agent's response into structured recommendations.
|
|
172
|
+
* Handles both raw JSON and JSON-in-markdown-fences.
|
|
173
|
+
*/
|
|
174
|
+
function parseRecommendations(text) {
|
|
175
|
+
// Try extracting JSON from code fences first
|
|
176
|
+
const fenceMatch = text.match(/```(?:json)?\s*([\s\S]*?)```/);
|
|
177
|
+
const jsonText = fenceMatch ? fenceMatch[1].trim() : text.trim();
|
|
178
|
+
try {
|
|
179
|
+
const parsed = JSON.parse(jsonText);
|
|
180
|
+
if (Array.isArray(parsed))
|
|
181
|
+
return parsed;
|
|
182
|
+
// Some models wrap in an object
|
|
183
|
+
if (parsed.recommendations && Array.isArray(parsed.recommendations)) {
|
|
184
|
+
return parsed.recommendations;
|
|
185
|
+
}
|
|
186
|
+
return [];
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
return [];
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
// ---------------------------------------------------------------------------
|
|
193
|
+
// Main handler
|
|
194
|
+
// ---------------------------------------------------------------------------
|
|
195
|
+
export function handleAutoOptimize(input, deps) {
|
|
196
|
+
const { projectId, sessionId, action, approvedItemIds } = input;
|
|
197
|
+
const { store, manager, relay, subscribers } = deps;
|
|
198
|
+
const logger = deps.logger ?? console;
|
|
199
|
+
if (activeAutoOptimizeSessions.has(sessionId)) {
|
|
200
|
+
sendEvent(relay, sessionId, {
|
|
201
|
+
type: "auto_optimize_error",
|
|
202
|
+
projectId,
|
|
203
|
+
message: "Auto-optimizer is already running for this session.",
|
|
204
|
+
});
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
const project = store.getProject(projectId);
|
|
208
|
+
if (!project) {
|
|
209
|
+
sendEvent(relay, sessionId, {
|
|
210
|
+
type: "auto_optimize_error",
|
|
211
|
+
projectId,
|
|
212
|
+
message: `Project not found: ${projectId}`,
|
|
213
|
+
});
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
// Validate action-specific requirements
|
|
217
|
+
if (action === "execute" && (!approvedItemIds || approvedItemIds.length === 0)) {
|
|
218
|
+
sendEvent(relay, sessionId, {
|
|
219
|
+
type: "auto_optimize_error",
|
|
220
|
+
projectId,
|
|
221
|
+
message: "Execute action requires approvedItemIds.",
|
|
222
|
+
});
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
sendEvent(relay, sessionId, {
|
|
226
|
+
type: "auto_optimize_start",
|
|
227
|
+
projectId,
|
|
228
|
+
action,
|
|
229
|
+
});
|
|
230
|
+
// Ensure a subscriber exists for this session
|
|
231
|
+
let subscriber = subscribers.get(sessionId);
|
|
232
|
+
if (!subscriber) {
|
|
233
|
+
subscriber = makeRelaySubscriber(sessionId, relay);
|
|
234
|
+
try {
|
|
235
|
+
manager.attach(sessionId, subscriber);
|
|
236
|
+
}
|
|
237
|
+
catch (err) {
|
|
238
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
239
|
+
sendEvent(relay, sessionId, {
|
|
240
|
+
type: "auto_optimize_error",
|
|
241
|
+
projectId,
|
|
242
|
+
message: `Failed to attach session subscriber: ${msg}`,
|
|
243
|
+
});
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
subscribers.set(sessionId, subscriber);
|
|
247
|
+
}
|
|
248
|
+
// Build task content based on phase
|
|
249
|
+
let taskContent;
|
|
250
|
+
if (action === "analyze") {
|
|
251
|
+
const projectPath = project.path;
|
|
252
|
+
const fileStats = scanProjectFiles(projectPath);
|
|
253
|
+
if (fileStats.length === 0) {
|
|
254
|
+
sendEvent(relay, sessionId, {
|
|
255
|
+
type: "auto_optimize_error",
|
|
256
|
+
projectId,
|
|
257
|
+
message: "No source files found in project.",
|
|
258
|
+
});
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
taskContent = buildAnalyzePrompt(fileStats, project.name);
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
taskContent = buildExecutePrompt(approvedItemIds);
|
|
265
|
+
}
|
|
266
|
+
const storedModelId = store.getSessionModel(sessionId) ?? undefined;
|
|
267
|
+
activeAutoOptimizeSessions.add(sessionId);
|
|
268
|
+
let watcherFired = false;
|
|
269
|
+
const finalize = (event) => {
|
|
270
|
+
if (watcherFired)
|
|
271
|
+
return;
|
|
272
|
+
watcherFired = true;
|
|
273
|
+
activeAutoOptimizeSessions.delete(sessionId);
|
|
274
|
+
try {
|
|
275
|
+
manager.detach(sessionId, watcher);
|
|
276
|
+
}
|
|
277
|
+
catch {
|
|
278
|
+
// already detached
|
|
279
|
+
}
|
|
280
|
+
sendEvent(relay, sessionId, event);
|
|
281
|
+
};
|
|
282
|
+
const watcher = {
|
|
283
|
+
send(event) {
|
|
284
|
+
if (watcherFired)
|
|
285
|
+
return;
|
|
286
|
+
if (event.type === "agent_end") {
|
|
287
|
+
// The agent finished — results are in the last assistant message.
|
|
288
|
+
// For analyze phase: parse recommendations from the response.
|
|
289
|
+
// For execute phase: we'd need to read the agent's output.
|
|
290
|
+
// Since we use skipPersistence, messages aren't stored — we rely on
|
|
291
|
+
// the agent sending structured output. In practice, the agent will
|
|
292
|
+
// produce tool_call/tool_result events; the final result is in the
|
|
293
|
+
// last text_delta before message_end + agent_end.
|
|
294
|
+
//
|
|
295
|
+
// For now: emit a completion event. Phase 3 will wire up proper
|
|
296
|
+
// response parsing from the agent output stream.
|
|
297
|
+
if (action === "analyze") {
|
|
298
|
+
finalize({
|
|
299
|
+
type: "auto_optimize_analysis_complete",
|
|
300
|
+
projectId,
|
|
301
|
+
recommendations: [],
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
finalize({
|
|
306
|
+
type: "auto_optimize_execution_complete",
|
|
307
|
+
projectId,
|
|
308
|
+
results: [],
|
|
309
|
+
gatesPassed: false,
|
|
310
|
+
gateResults: [],
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
else if (event.type === "error") {
|
|
315
|
+
finalize({
|
|
316
|
+
type: "auto_optimize_error",
|
|
317
|
+
projectId,
|
|
318
|
+
message: event.message,
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
},
|
|
322
|
+
isOpen() {
|
|
323
|
+
return true;
|
|
324
|
+
},
|
|
325
|
+
};
|
|
326
|
+
try {
|
|
327
|
+
manager.attach(sessionId, watcher);
|
|
328
|
+
}
|
|
329
|
+
catch (err) {
|
|
330
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
331
|
+
finalize({
|
|
332
|
+
type: "auto_optimize_error",
|
|
333
|
+
projectId,
|
|
334
|
+
message: `Failed to attach auto-optimizer watcher: ${msg}`,
|
|
335
|
+
});
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
const timeout = setTimeout(() => {
|
|
339
|
+
finalize({
|
|
340
|
+
type: "auto_optimize_error",
|
|
341
|
+
projectId,
|
|
342
|
+
message: "Auto-optimizer timed out after 10 minutes.",
|
|
343
|
+
});
|
|
344
|
+
}, OPTIMIZER_TIMEOUT_MS);
|
|
345
|
+
manager
|
|
346
|
+
.prompt(sessionId, taskContent, storedModelId, undefined, undefined, {
|
|
347
|
+
skipPersistence: true,
|
|
348
|
+
})
|
|
349
|
+
.catch((err) => {
|
|
350
|
+
if (watcherFired)
|
|
351
|
+
return;
|
|
352
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
353
|
+
logger.error?.(`[auto-optimizer] manager.prompt failed for ${sessionId}:`, msg);
|
|
354
|
+
clearTimeout(timeout);
|
|
355
|
+
finalize({
|
|
356
|
+
type: "auto_optimize_error",
|
|
357
|
+
projectId,
|
|
358
|
+
message: `Auto-optimizer prompt failed: ${msg}`,
|
|
359
|
+
});
|
|
360
|
+
});
|
|
361
|
+
}
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
* or `code:"machine_offline"` (CLI socket dropped). Both are
|
|
39
39
|
* transparent to this layer — we just respond when we can.
|
|
40
40
|
*/
|
|
41
|
-
import type { AutoResearchFrame, CancelTurnFrame, ClientMessageFrame, MetaEvent, RestRequestFrame, RestResponseFrame, SubscribeFrame } from "@aexol/relay-protocol";
|
|
41
|
+
import type { AutoOptimizeFrame, AutoResearchFrame, CancelTurnFrame, ClientMessageFrame, MetaEvent, RestRequestFrame, RestResponseFrame, SubscribeFrame } from "@aexol/relay-protocol";
|
|
42
42
|
import type { McpExtensionState } from "../mcp/state.js";
|
|
43
43
|
import type { SessionStreamManager, Subscriber } from "../server/session-stream.js";
|
|
44
44
|
import type { SessionStore } from "../server/storage.js";
|
|
@@ -215,5 +215,23 @@ export interface AutoResearchDeps {
|
|
|
215
215
|
* Errors are surfaced as `auto_research_error` events.
|
|
216
216
|
*/
|
|
217
217
|
export declare function handleAutoResearchFrame(frame: AutoResearchFrame, deps: AutoResearchDeps): void;
|
|
218
|
+
/** Dependencies for auto-optimizer — mirror of AutoResearchDeps. */
|
|
219
|
+
export interface AutoOptimizeDeps {
|
|
220
|
+
store: SessionStore;
|
|
221
|
+
manager: SessionStreamManager;
|
|
222
|
+
relay: Pick<RelayClient, "send">;
|
|
223
|
+
subscribers: Map<string, Subscriber>;
|
|
224
|
+
cwd: string;
|
|
225
|
+
logger?: {
|
|
226
|
+
error: (...args: unknown[]) => void;
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Dispatch an `auto_optimize` frame. Two-phase flow controlled by `action`:
|
|
231
|
+
* - "analyze" scans the project and streams back `auto_optimize_analysis_complete`.
|
|
232
|
+
* - "execute" applies approved recommendations and runs gate checks.
|
|
233
|
+
* Progress/results are streamed as `auto_optimize_*` ws_events on `sessionId`.
|
|
234
|
+
*/
|
|
235
|
+
export declare function handleAutoOptimizeFrame(frame: AutoOptimizeFrame, deps: AutoOptimizeDeps): void;
|
|
218
236
|
export {};
|
|
219
237
|
//# sourceMappingURL=dispatcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../src/relay/dispatcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAIH,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACf,MAAM,uBAAuB,CAAC;AAK/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AA0CzD,OAAO,KAAK,EACV,oBAAoB,EACpB,UAAU,EACX,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../src/relay/dispatcher.ts"],"names":[],"mappings":"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"}
|
package/dist/relay/dispatcher.js
CHANGED
|
@@ -52,6 +52,7 @@ import { handleGetAgentSettings, handleListAgents, handlePutAgentSettings, } fro
|
|
|
52
52
|
import { handleGetSettings, handlePutSettings, } from "../server/handlers/settings.js";
|
|
53
53
|
import { shutdownState } from "../server/shutdown.js";
|
|
54
54
|
import { handleAutoResearch } from "./auto-research.js";
|
|
55
|
+
import { handleAutoOptimize } from "./auto-optimizer.js";
|
|
55
56
|
/**
|
|
56
57
|
* Inline path matcher. Returns `null` for any path/method combination we
|
|
57
58
|
* don't recognise; the caller turns that into a `404 Unknown route`.
|
|
@@ -899,3 +900,17 @@ export function handleAutoResearchFrame(frame, deps) {
|
|
|
899
900
|
sessionId: frame.sessionId,
|
|
900
901
|
}, deps);
|
|
901
902
|
}
|
|
903
|
+
/**
|
|
904
|
+
* Dispatch an `auto_optimize` frame. Two-phase flow controlled by `action`:
|
|
905
|
+
* - "analyze" scans the project and streams back `auto_optimize_analysis_complete`.
|
|
906
|
+
* - "execute" applies approved recommendations and runs gate checks.
|
|
907
|
+
* Progress/results are streamed as `auto_optimize_*` ws_events on `sessionId`.
|
|
908
|
+
*/
|
|
909
|
+
export function handleAutoOptimizeFrame(frame, deps) {
|
|
910
|
+
handleAutoOptimize({
|
|
911
|
+
projectId: frame.projectId,
|
|
912
|
+
sessionId: frame.sessionId,
|
|
913
|
+
action: frame.action,
|
|
914
|
+
approvedItemIds: frame.approvedItemIds,
|
|
915
|
+
}, deps);
|
|
916
|
+
}
|
package/dist/server/wire.d.ts
CHANGED
|
@@ -383,6 +383,46 @@ export type ServerEvent = {
|
|
|
383
383
|
type: "auto_research_error";
|
|
384
384
|
projectId: string;
|
|
385
385
|
message: string;
|
|
386
|
+
} | {
|
|
387
|
+
/** Emitted when auto-optimizer starts (analyze or execute phase). */
|
|
388
|
+
type: "auto_optimize_start";
|
|
389
|
+
projectId: string;
|
|
390
|
+
action: "analyze" | "execute";
|
|
391
|
+
} | {
|
|
392
|
+
/** Emitted after the analyze phase completes with recommendations. */
|
|
393
|
+
type: "auto_optimize_analysis_complete";
|
|
394
|
+
projectId: string;
|
|
395
|
+
recommendations: Array<{
|
|
396
|
+
id: string;
|
|
397
|
+
filePath: string;
|
|
398
|
+
issue: string;
|
|
399
|
+
suggestion: string;
|
|
400
|
+
severity: "low" | "medium" | "high";
|
|
401
|
+
estimatedLineReduction?: number;
|
|
402
|
+
}>;
|
|
403
|
+
} | {
|
|
404
|
+
/** Emitted after the execute phase — per-recommendation results + gate checks. */
|
|
405
|
+
type: "auto_optimize_execution_complete";
|
|
406
|
+
projectId: string;
|
|
407
|
+
results: Array<{
|
|
408
|
+
id: string;
|
|
409
|
+
filePath: string;
|
|
410
|
+
success: boolean;
|
|
411
|
+
linesBefore?: number;
|
|
412
|
+
linesAfter?: number;
|
|
413
|
+
errorMessage?: string;
|
|
414
|
+
}>;
|
|
415
|
+
gatesPassed: boolean;
|
|
416
|
+
gateResults: Array<{
|
|
417
|
+
gate: string;
|
|
418
|
+
passed: boolean;
|
|
419
|
+
message: string;
|
|
420
|
+
}>;
|
|
421
|
+
} | {
|
|
422
|
+
/** Emitted when auto-optimizer encounters an error. */
|
|
423
|
+
type: "auto_optimize_error";
|
|
424
|
+
projectId: string;
|
|
425
|
+
message: string;
|
|
386
426
|
} | {
|
|
387
427
|
/**
|
|
388
428
|
* Emitted when another active session in the same project shares an
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/server/wire.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/server/wire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wDAAwD;AACxD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,oGAAoG;IACpG,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,+FAA+F;IAC/F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0FAA0F;IAC1F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,6CAA6C;AAC7C,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,+CAA+C;AAC/C,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX;+EAC2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;iCAE6B;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,SAAS,CAAC;IACtE,QAAQ,EAAE;QACR,QAAQ,EAAE,OAAO,CAAC;QAClB,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;QACpB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,WAAW,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,YAAY,EAAE;QACZ,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,UAAU,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE;QACR,2BAA2B,EAAE,MAAM,CAAC;QACpC,yBAAyB,EAAE,MAAM,CAAC;QAClC,qBAAqB,EAAE,MAAM,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,sFAAsF;IACtF,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,6FAA6F;IAC7F,wBAAwB,EAAE,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,mBAAmB,EAAE,CAAC;IACpC,WAAW,EAAE,kBAAkB,EAAE,CAAC;CACnC;AAMD,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8DAA8D;IAC9D,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;CAC5B,CAAC;AAMF;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,CACvC,WAAW,EACX;IACE,IAAI,EACA,eAAe,GACf,YAAY,GACZ,gBAAgB,GAChB,WAAW,GACX,aAAa,GACb,aAAa,GACb,aAAa,GACb,OAAO,CAAC;CACb,CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,WAAW,GACnB;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC5C;;6CAEyC;IACzC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;mEAE+D;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gHAAgH;IAChH,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,6FAA6F;IAC7F,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,GACD;IACE;;;;;;;OAOG;IACH,IAAI,EAAE,uBAAuB,CAAC;IAC9B,OAAO,EAAE,WAAW,CAAC;CACtB,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;CACnB,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACD;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,IAAI,EAAE,WAAW,CAAC;CACnB,GACD;IACE;;;;;;;;;OASG;IACH,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,mDAAmD;IACnD,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,wEAAwE;IACxE,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,GACD;IACE,6DAA6D;IAC7D,IAAI,EAAE,qBAAqB,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB,GACD;IACE;;;;OAIG;IACH,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,mEAAmE;QACnE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,qDAAqD;QACrD,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,8GAA8G;IAC9G,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,uFAAuF;IACvF,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,GACD;IACE;;;;OAIG;IACH,IAAI,EAAE,kBAAkB,CAAC;IACzB,oCAAoC;IACpC,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;CAC7C,GACD;IACE;;;;OAIG;IACH,IAAI,EAAE,kBAAkB,CAAC;IACzB,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE;;;;OAIG;IACH,IAAI,EAAE,gBAAgB,CAAC;IACvB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qFAAqF;IACrF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACD;IACE;;;;OAIG;IACH,IAAI,EAAE,oBAAoB,CAAC;IAC3B,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACpC;;;OAGG;IACH,MAAM,CAAC,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,eAAe,GAAG,WAAW,GAAG,QAAQ,CAAC;CACnH,GACD;IACE;;;OAGG;IACH,IAAI,EAAE,qBAAqB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE;;;;;;;OAOG;IACH,IAAI,EAAE,wBAAwB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,oBAAoB,GAAG,mBAAmB,GAAG,sBAAsB,GAAG,sBAAsB,CAAC;IACpG,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE;;;;OAIG;IACH,IAAI,EAAE,wBAAwB,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,2DAA2D;QAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,4CAA4C;QAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,mEAAmE;IACnE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GACD;IACE,sDAAsD;IACtD,IAAI,EAAE,qBAAqB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,qEAAqE;IACrE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;CAC/B,GACD;IACE,sEAAsE;IACtE,IAAI,EAAE,iCAAiC,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,KAAK,CAAC;QACrB,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QACpC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC,CAAC;CACJ,GACD;IACE,kFAAkF;IAClF,IAAI,EAAE,kCAAkC,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,KAAK,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ,GACD;IACE,uDAAuD;IACvD,IAAI,EAAE,qBAAqB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE;;;;OAIG;IACH,IAAI,EAAE,yBAAyB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAClD,UAAU,EAAE,aAAa,GAAG,YAAY,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;CACnB,GAID;IACE;;;;OAIG;IACH,IAAI,EAAE,gBAAgB,CAAC;IACvB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IACtC,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE;;;;OAIG;IACH,IAAI,EAAE,mBAAmB,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACD;IACE;;;;;OAKG;IACH,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IACtC,OAAO,EAAE,KAAK,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;QAC5C,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,2CAA2C;QAC3C,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,2CAA2C;QAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,EAAE;YACL,WAAW,EAAE,MAAM,CAAC;YACpB,YAAY,EAAE,MAAM,CAAC;YACrB,eAAe,EAAE,MAAM,CAAC;YACxB,gBAAgB,EAAE,MAAM,CAAC;YACzB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC,CAAC;IACH,+DAA+D;IAC/D,UAAU,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,GACD;IACE;;;;;OAKG;IACH,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;CACJ,CAAC"}
|