@aiden-ade/sandbox-agent 0.1.6 → 0.1.7
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/aiden-system-prompt.d.ts +6 -0
- package/dist/aiden-system-prompt.d.ts.map +1 -0
- package/dist/aiden-system-prompt.js +6 -0
- package/dist/aiden-system-prompt.js.map +1 -0
- package/dist/core-agent.d.ts +33 -27
- package/dist/core-agent.d.ts.map +1 -1
- package/dist/core-agent.js +137 -216
- package/dist/core-agent.js.map +1 -1
- package/dist/index.cjs +361 -132
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime-backends.d.ts +1 -19
- package/dist/runtime-backends.d.ts.map +1 -1
- package/dist/runtime-backends.js +1 -768
- package/dist/runtime-backends.js.map +1 -1
- package/dist/sandbox.d.ts +1 -0
- package/dist/sandbox.d.ts.map +1 -1
- package/dist/sandbox.js +69 -53
- package/dist/sandbox.js.map +1 -1
- package/dist/types.d.ts +3 -207
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -3
- package/dist/types.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/web-presenter.d.ts +18 -2
- package/dist/web-presenter.d.ts.map +1 -1
- package/dist/web-presenter.js +53 -6
- package/dist/web-presenter.js.map +1 -1
- package/dist/ws-client.d.ts +11 -4
- package/dist/ws-client.d.ts.map +1 -1
- package/dist/ws-client.js +14 -9
- package/dist/ws-client.js.map +1 -1
- package/package.json +11 -13
- package/dist/updater.d.ts +0 -15
- package/dist/updater.d.ts.map +0 -1
- package/dist/updater.js +0 -50
- package/dist/updater.js.map +0 -1
package/dist/web-presenter.js
CHANGED
|
@@ -2,6 +2,13 @@ export class WebPresenter {
|
|
|
2
2
|
wsClient;
|
|
3
3
|
conversationId;
|
|
4
4
|
suppressSessionLifecycle = false;
|
|
5
|
+
/**
|
|
6
|
+
* Guards against duplicate query_complete events in continuation mode.
|
|
7
|
+
* Claude CLI calls onComplete early (when result event fires) then again when
|
|
8
|
+
* the subprocess exits. The second call must be suppressed so the browser
|
|
9
|
+
* does not receive a duplicate (or error) query_complete.
|
|
10
|
+
*/
|
|
11
|
+
turnCompleteSent = false;
|
|
5
12
|
constructor(wsClient, conversationId) {
|
|
6
13
|
this.wsClient = wsClient;
|
|
7
14
|
this.conversationId = conversationId;
|
|
@@ -24,8 +31,14 @@ export class WebPresenter {
|
|
|
24
31
|
onToolUse(tool, input, toolId) {
|
|
25
32
|
this.wsClient.emitEvent({ type: "tool_use", id: toolId, name: tool, input, ts: Date.now() });
|
|
26
33
|
}
|
|
27
|
-
onToolResult(toolId, content) {
|
|
28
|
-
this.wsClient.emitEvent({
|
|
34
|
+
onToolResult(toolId, content, isError) {
|
|
35
|
+
this.wsClient.emitEvent({
|
|
36
|
+
type: "tool_result",
|
|
37
|
+
id: toolId,
|
|
38
|
+
content,
|
|
39
|
+
ts: Date.now(),
|
|
40
|
+
...(isError ? { is_error: true } : {}),
|
|
41
|
+
});
|
|
29
42
|
}
|
|
30
43
|
onTurnComplete(content) {
|
|
31
44
|
this.wsClient.emitEvent({ type: "turn_complete", content, ts: Date.now() });
|
|
@@ -33,6 +46,27 @@ export class WebPresenter {
|
|
|
33
46
|
onUsageUpdate(usage) {
|
|
34
47
|
this.wsClient.emitEvent({ type: "usage", usage });
|
|
35
48
|
}
|
|
49
|
+
onAskUser(id, questions) {
|
|
50
|
+
this.wsClient.emitEvent({ type: "ask_user", id, questions });
|
|
51
|
+
}
|
|
52
|
+
onTodoWrite(todos) {
|
|
53
|
+
this.wsClient.emitEvent({ type: "todo_write", todos });
|
|
54
|
+
}
|
|
55
|
+
onExitPlanMode(id, input, planFilePath) {
|
|
56
|
+
this.wsClient.emitEvent({ type: "exit_plan_mode", id, input, ...(planFilePath ? { planFilePath } : {}) });
|
|
57
|
+
}
|
|
58
|
+
onCheckpoint(id) {
|
|
59
|
+
this.wsClient.emitEvent({ type: "checkpoint", id });
|
|
60
|
+
}
|
|
61
|
+
onActivity(status) {
|
|
62
|
+
this.wsClient.emitEvent({ type: "activity", status, ts: Date.now() });
|
|
63
|
+
}
|
|
64
|
+
onOpenBrowserTab(browserId, url) {
|
|
65
|
+
this.wsClient.emitEvent({ type: "open_browser_tab", browserId, ...(url ? { url } : {}) });
|
|
66
|
+
}
|
|
67
|
+
recordRawTranscript() {
|
|
68
|
+
// No-op for sandbox — raw transcripts stay in the container
|
|
69
|
+
}
|
|
36
70
|
onError(message, _isAgentError) {
|
|
37
71
|
this.wsClient.emitEvent({ type: "error", message });
|
|
38
72
|
if (!this.suppressSessionLifecycle) {
|
|
@@ -41,13 +75,22 @@ export class WebPresenter {
|
|
|
41
75
|
}
|
|
42
76
|
}
|
|
43
77
|
onComplete(result) {
|
|
44
|
-
// Always send query_complete so the server persists query content
|
|
45
|
-
this.wsClient.emitEvent({ type: "query_complete", result, ts: Date.now() });
|
|
46
|
-
// In multi-turn mode (suppressSessionLifecycle=true), skip session lifecycle
|
|
47
78
|
if (this.suppressSessionLifecycle) {
|
|
79
|
+
// Multi-turn mode: guard against duplicate onComplete calls.
|
|
80
|
+
// In continuation mode (allowContinuation=true in runtime-backends), the CLI
|
|
81
|
+
// backend calls onComplete early when the result event fires, then calls it
|
|
82
|
+
// again when the subprocess exits (or is aborted). Suppress the second call
|
|
83
|
+
// so the browser never receives a duplicate — or error — query_complete.
|
|
84
|
+
if (this.turnCompleteSent) {
|
|
85
|
+
this.turnCompleteSent = false; // reset for next turn
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
this.turnCompleteSent = true;
|
|
89
|
+
this.wsClient.emitEvent({ type: "query_complete", result, ts: Date.now() });
|
|
48
90
|
return;
|
|
49
91
|
}
|
|
50
|
-
// Single-turn mode:
|
|
92
|
+
// Single-turn mode: send query_complete + session lifecycle event and close
|
|
93
|
+
this.wsClient.emitEvent({ type: "query_complete", result, ts: Date.now() });
|
|
51
94
|
if (result.success) {
|
|
52
95
|
this.wsClient.emitEvent({ type: "session_complete", result });
|
|
53
96
|
}
|
|
@@ -56,6 +99,10 @@ export class WebPresenter {
|
|
|
56
99
|
}
|
|
57
100
|
this.wsClient.close();
|
|
58
101
|
}
|
|
102
|
+
/** Reset the turn-complete flag before starting a new agent turn. */
|
|
103
|
+
resetForNewTurn() {
|
|
104
|
+
this.turnCompleteSent = false;
|
|
105
|
+
}
|
|
59
106
|
/**
|
|
60
107
|
* Manually emit session lifecycle events and close.
|
|
61
108
|
* Called after the multi-turn loop exits.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-presenter.js","sourceRoot":"","sources":["../src/web-presenter.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,YAAY;IACf,QAAQ,CAAW;IACnB,cAAc,CAAS;IACvB,wBAAwB,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"web-presenter.js","sourceRoot":"","sources":["../src/web-presenter.ts"],"names":[],"mappings":"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"}
|
package/dist/ws-client.d.ts
CHANGED
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import type { AgentEvent } from "./types.js";
|
|
2
|
-
|
|
2
|
+
export interface ResolvedImage {
|
|
3
|
+
id: string;
|
|
4
|
+
data: string;
|
|
5
|
+
mimeType: string;
|
|
6
|
+
filename: string;
|
|
7
|
+
}
|
|
3
8
|
export interface UserMessagePayload {
|
|
4
9
|
text: string;
|
|
10
|
+
images?: ResolvedImage[];
|
|
5
11
|
providerSessionId?: string;
|
|
12
|
+
backendKind?: string;
|
|
13
|
+
selectedModel?: string;
|
|
14
|
+
mode?: string;
|
|
6
15
|
}
|
|
7
16
|
export interface WSClientCallbacks {
|
|
8
17
|
onUserMessage: (payload: UserMessagePayload) => void;
|
|
9
18
|
onStop: () => void;
|
|
10
|
-
|
|
19
|
+
onToolResponse?: (toolId: string, response: string) => void;
|
|
11
20
|
onConnect?: () => void;
|
|
12
21
|
onDisconnect?: (reason: string) => void;
|
|
13
22
|
}
|
|
@@ -17,8 +26,6 @@ export declare class WSClient {
|
|
|
17
26
|
taskId: string, token: string, // sandboxSessionToken
|
|
18
27
|
callbacks: WSClientCallbacks, agentVersion?: string);
|
|
19
28
|
emitEvent(event: AgentEvent): void;
|
|
20
|
-
/** Signal the WS relay that this agent is about to update (not crashing). */
|
|
21
|
-
emitUpdating(): void;
|
|
22
29
|
waitForConnection(timeoutMs?: number): Promise<void>;
|
|
23
30
|
get connected(): boolean;
|
|
24
31
|
close(): void;
|
package/dist/ws-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-client.d.ts","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ws-client.d.ts","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACrD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAS;gBAGrB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EAAK,iBAAiB;IACvC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAAS,sBAAsB;IAC5C,SAAS,EAAE,iBAAiB,EAC5B,YAAY,CAAC,EAAE,MAAM;IAiBvB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIlC,iBAAiB,CAAC,SAAS,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IASnD,IAAI,SAAS,IAAI,OAAO,CAAkC;IAC1D,KAAK,IAAI,IAAI;IAEb,OAAO,CAAC,cAAc;CAuBvB"}
|
package/dist/ws-client.js
CHANGED
|
@@ -21,10 +21,6 @@ export class WSClient {
|
|
|
21
21
|
emitEvent(event) {
|
|
22
22
|
this.socket.emit("agent_event", event);
|
|
23
23
|
}
|
|
24
|
-
/** Signal the WS relay that this agent is about to update (not crashing). */
|
|
25
|
-
emitUpdating() {
|
|
26
|
-
this.socket.emit("agent_updating");
|
|
27
|
-
}
|
|
28
24
|
waitForConnection(timeoutMs = 15000) {
|
|
29
25
|
return new Promise((resolve, reject) => {
|
|
30
26
|
if (this.socket.connected) {
|
|
@@ -42,13 +38,22 @@ export class WSClient {
|
|
|
42
38
|
this.socket.on("connect", () => { console.debug("[WSClient] Connected to WS server"); callbacks.onConnect?.(); });
|
|
43
39
|
this.socket.on("disconnect", (reason) => { console.debug(`[WSClient] Disconnected: ${reason}`); callbacks.onDisconnect?.(reason); });
|
|
44
40
|
this.socket.on("connect_error", (error) => { console.warn(`[WSClient] Connection error: ${error.message}`); });
|
|
45
|
-
this.socket.on("user_message", (data) => {
|
|
46
|
-
|
|
41
|
+
this.socket.on("user_message", (data, ack) => {
|
|
42
|
+
ack?.({ ok: true });
|
|
43
|
+
callbacks.onUserMessage({
|
|
44
|
+
text: data.text,
|
|
45
|
+
images: data.images,
|
|
46
|
+
providerSessionId: data.providerSessionId,
|
|
47
|
+
backendKind: data.backendKind,
|
|
48
|
+
selectedModel: data.selectedModel,
|
|
49
|
+
mode: data.mode,
|
|
50
|
+
});
|
|
47
51
|
});
|
|
48
52
|
this.socket.on("stop", () => { callbacks.onStop(); });
|
|
49
|
-
this.socket.on("
|
|
50
|
-
|
|
51
|
-
|
|
53
|
+
this.socket.on("tool_response", (data) => {
|
|
54
|
+
if (data?.toolId && typeof data.response === "string") {
|
|
55
|
+
callbacks.onToolResponse?.(data.toolId, data.response);
|
|
56
|
+
}
|
|
52
57
|
});
|
|
53
58
|
this.socket.on("error", (data) => { console.error(`[WSClient] Server error: ${data.message} (${data.code})`); });
|
|
54
59
|
}
|
package/dist/ws-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAe,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,29 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aiden-ade/sandbox-agent",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"aiden-agent": "./dist/index.cjs"
|
|
7
7
|
},
|
|
8
|
-
"files": [
|
|
9
|
-
"dist/"
|
|
10
|
-
],
|
|
8
|
+
"files": ["dist/"],
|
|
11
9
|
"publishConfig": {
|
|
12
10
|
"access": "public"
|
|
13
11
|
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"build": "tsup",
|
|
14
|
+
"dev": "tsx src/index.ts",
|
|
15
|
+
"type-check": "tsc --noEmit"
|
|
16
|
+
},
|
|
14
17
|
"dependencies": {},
|
|
15
18
|
"devDependencies": {
|
|
19
|
+
"@aiden/agent-core": "workspace:*",
|
|
20
|
+
"@aiden/shared": "workspace:*",
|
|
16
21
|
"socket.io-client": "^4.8.0",
|
|
17
22
|
"@types/node": "^22.0.0",
|
|
18
23
|
"tsup": "^8.5.1",
|
|
19
24
|
"tsx": "^4.19.0",
|
|
20
|
-
"typescript": "~5.9.3"
|
|
21
|
-
"@aiden/agent-core": "0.1.0",
|
|
22
|
-
"@aiden/shared": "0.1.0"
|
|
23
|
-
},
|
|
24
|
-
"scripts": {
|
|
25
|
-
"build": "tsup",
|
|
26
|
-
"dev": "tsx src/index.ts",
|
|
27
|
-
"type-check": "tsc --noEmit"
|
|
25
|
+
"typescript": "~5.9.3"
|
|
28
26
|
}
|
|
29
|
-
}
|
|
27
|
+
}
|
package/dist/updater.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export interface UpdatePayload {
|
|
2
|
-
devMode: boolean;
|
|
3
|
-
version?: string;
|
|
4
|
-
}
|
|
5
|
-
/**
|
|
6
|
-
* Install the new agent version via npm.
|
|
7
|
-
* Returns true if the install succeeded.
|
|
8
|
-
*/
|
|
9
|
-
export declare function installUpdate(payload: UpdatePayload): Promise<boolean>;
|
|
10
|
-
/**
|
|
11
|
-
* Spawn a new agent process with the same env vars, then exit this process.
|
|
12
|
-
* Preserves the provider session ID so the new agent can resume Claude context.
|
|
13
|
-
*/
|
|
14
|
-
export declare function respawnAgent(lastProviderSessionId?: string): void;
|
|
15
|
-
//# sourceMappingURL=updater.d.ts.map
|
package/dist/updater.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAe5E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAmBjE"}
|
package/dist/updater.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Self-update logic for the sandbox agent.
|
|
3
|
-
* In prod/staging, installs the new version from npm.
|
|
4
|
-
*/
|
|
5
|
-
import { execSync, spawn } from "node:child_process";
|
|
6
|
-
const DEFAULT_PATH = "/home/user/.local/node/bin:/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin";
|
|
7
|
-
/**
|
|
8
|
-
* Install the new agent version via npm.
|
|
9
|
-
* Returns true if the install succeeded.
|
|
10
|
-
*/
|
|
11
|
-
export async function installUpdate(payload) {
|
|
12
|
-
const version = payload.version ?? "latest";
|
|
13
|
-
try {
|
|
14
|
-
console.info(`[updater] Installing @aiden-ade/sandbox-agent@${version} via npm`);
|
|
15
|
-
execSync(`npm install -g @aiden-ade/sandbox-agent@${version}`, {
|
|
16
|
-
timeout: 60_000,
|
|
17
|
-
env: { ...process.env, PATH: DEFAULT_PATH },
|
|
18
|
-
stdio: "pipe",
|
|
19
|
-
});
|
|
20
|
-
console.info("[updater] npm install complete");
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
console.error("[updater] npm install failed:", error.message);
|
|
25
|
-
return false;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Spawn a new agent process with the same env vars, then exit this process.
|
|
30
|
-
* Preserves the provider session ID so the new agent can resume Claude context.
|
|
31
|
-
*/
|
|
32
|
-
export function respawnAgent(lastProviderSessionId) {
|
|
33
|
-
const env = { ...process.env };
|
|
34
|
-
if (lastProviderSessionId) {
|
|
35
|
-
env.AIDEN_PROVIDER_SESSION_ID = lastProviderSessionId;
|
|
36
|
-
}
|
|
37
|
-
console.info("[updater] Spawning new agent process");
|
|
38
|
-
const child = spawn("aiden-agent", [], {
|
|
39
|
-
detached: true,
|
|
40
|
-
stdio: "ignore",
|
|
41
|
-
env: { ...env, PATH: DEFAULT_PATH },
|
|
42
|
-
});
|
|
43
|
-
child.unref();
|
|
44
|
-
// Give the new process a moment to start before we exit
|
|
45
|
-
setTimeout(() => {
|
|
46
|
-
console.info("[updater] Old agent exiting after respawn");
|
|
47
|
-
process.exit(0);
|
|
48
|
-
}, 500);
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=updater.js.map
|
package/dist/updater.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,YAAY,GAAG,+GAA+G,CAAC;AAOrI;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAsB;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC;IAC5C,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,iDAAiD,OAAO,UAAU,CAAC,CAAC;QACjF,QAAQ,CAAC,2CAA2C,OAAO,EAAE,EAAE;YAC7D,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE;YAC3C,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,qBAA8B;IACzD,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,IAAI,qBAAqB,EAAE,CAAC;QAC1B,GAAG,CAAC,yBAAyB,GAAG,qBAAqB,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,EAAE,EAAE;QACrC,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE;KACpC,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,EAAE,CAAC;IAEd,wDAAwD;IACxD,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,EAAE,GAAG,CAAC,CAAC;AACV,CAAC"}
|