@cleanslate/sdk 1.0.9 → 1.0.11

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.
Files changed (88) hide show
  1. package/README.md +39 -1
  2. package/dist/agent/cleanSlateToolResultPromptSerializer.d.ts.map +1 -1
  3. package/dist/agent/cleanSlateToolResultPromptSerializer.js +31 -0
  4. package/dist/agent/cleanSlateToolResultPromptSerializer.js.map +1 -1
  5. package/dist/externalAgents/externalAgentTypes.d.ts +168 -0
  6. package/dist/externalAgents/externalAgentTypes.d.ts.map +1 -0
  7. package/dist/externalAgents/externalAgentTypes.js +6 -0
  8. package/dist/externalAgents/externalAgentTypes.js.map +1 -0
  9. package/dist/externalAgents/handoff.d.ts +8 -0
  10. package/dist/externalAgents/handoff.d.ts.map +1 -0
  11. package/dist/externalAgents/handoff.js +20 -0
  12. package/dist/externalAgents/handoff.js.map +1 -0
  13. package/dist/externalAgents/index.d.ts +3 -0
  14. package/dist/externalAgents/index.d.ts.map +1 -0
  15. package/dist/externalAgents/index.js +7 -0
  16. package/dist/externalAgents/index.js.map +1 -0
  17. package/dist/node/externalAgents/externalAgentEvents.d.ts +2 -0
  18. package/dist/node/externalAgents/externalAgentEvents.d.ts.map +1 -0
  19. package/dist/node/externalAgents/externalAgentEvents.js +6 -0
  20. package/dist/node/externalAgents/externalAgentEvents.js.map +1 -0
  21. package/dist/node/externalAgents/externalAgentRegistry.d.ts +36 -0
  22. package/dist/node/externalAgents/externalAgentRegistry.d.ts.map +1 -0
  23. package/dist/node/externalAgents/externalAgentRegistry.js +181 -0
  24. package/dist/node/externalAgents/externalAgentRegistry.js.map +1 -0
  25. package/dist/node/externalAgents/externalAgentService.d.ts +37 -0
  26. package/dist/node/externalAgents/externalAgentService.d.ts.map +1 -0
  27. package/dist/node/externalAgents/externalAgentService.js +252 -0
  28. package/dist/node/externalAgents/externalAgentService.js.map +1 -0
  29. package/dist/node/externalAgents/externalAgentSession.d.ts +49 -0
  30. package/dist/node/externalAgents/externalAgentSession.d.ts.map +1 -0
  31. package/dist/node/externalAgents/externalAgentSession.js +54 -0
  32. package/dist/node/externalAgents/externalAgentSession.js.map +1 -0
  33. package/dist/node/externalAgents/externalAgentUsage.d.ts +5 -0
  34. package/dist/node/externalAgents/externalAgentUsage.d.ts.map +1 -0
  35. package/dist/node/externalAgents/externalAgentUsage.js +98 -0
  36. package/dist/node/externalAgents/externalAgentUsage.js.map +1 -0
  37. package/dist/node/externalAgents/externalAgentVersion.d.ts +2 -0
  38. package/dist/node/externalAgents/externalAgentVersion.d.ts.map +1 -0
  39. package/dist/node/externalAgents/externalAgentVersion.js +6 -0
  40. package/dist/node/externalAgents/externalAgentVersion.js.map +1 -0
  41. package/dist/node/externalAgents/externalFileSnapshots.d.ts +20 -0
  42. package/dist/node/externalAgents/externalFileSnapshots.d.ts.map +1 -0
  43. package/dist/node/externalAgents/externalFileSnapshots.js +105 -0
  44. package/dist/node/externalAgents/externalFileSnapshots.js.map +1 -0
  45. package/dist/node/externalAgents/generatedSdkVersion.d.ts +2 -0
  46. package/dist/node/externalAgents/generatedSdkVersion.d.ts.map +1 -0
  47. package/dist/node/externalAgents/generatedSdkVersion.js +3 -0
  48. package/dist/node/externalAgents/generatedSdkVersion.js.map +1 -0
  49. package/dist/node/externalAgents/hostToolsBridge.d.ts +9 -0
  50. package/dist/node/externalAgents/hostToolsBridge.d.ts.map +1 -0
  51. package/dist/node/externalAgents/hostToolsBridge.js +94 -0
  52. package/dist/node/externalAgents/hostToolsBridge.js.map +1 -0
  53. package/dist/node/externalAgents/hostToolsProxy.d.ts +2 -0
  54. package/dist/node/externalAgents/hostToolsProxy.d.ts.map +1 -0
  55. package/dist/node/externalAgents/hostToolsProxy.js +25 -0
  56. package/dist/node/externalAgents/hostToolsProxy.js.map +1 -0
  57. package/dist/node/externalAgents/index.d.ts +4 -0
  58. package/dist/node/externalAgents/index.d.ts.map +1 -0
  59. package/dist/node/externalAgents/index.js +8 -0
  60. package/dist/node/externalAgents/index.js.map +1 -0
  61. package/dist/node/externalAgents/transports/acp/acpClient.d.ts +49 -0
  62. package/dist/node/externalAgents/transports/acp/acpClient.d.ts.map +1 -0
  63. package/dist/node/externalAgents/transports/acp/acpClient.js +152 -0
  64. package/dist/node/externalAgents/transports/acp/acpClient.js.map +1 -0
  65. package/dist/node/externalAgents/transports/acp/acpConnection.d.ts +31 -0
  66. package/dist/node/externalAgents/transports/acp/acpConnection.d.ts.map +1 -0
  67. package/dist/node/externalAgents/transports/acp/acpConnection.js +125 -0
  68. package/dist/node/externalAgents/transports/acp/acpConnection.js.map +1 -0
  69. package/dist/node/externalAgents/transports/acp/acpEventMapper.d.ts +4 -0
  70. package/dist/node/externalAgents/transports/acp/acpEventMapper.d.ts.map +1 -0
  71. package/dist/node/externalAgents/transports/acp/acpEventMapper.js +109 -0
  72. package/dist/node/externalAgents/transports/acp/acpEventMapper.js.map +1 -0
  73. package/dist/node/externalAgents/transports/acp/acpModePresentation.d.ts +4 -0
  74. package/dist/node/externalAgents/transports/acp/acpModePresentation.d.ts.map +1 -0
  75. package/dist/node/externalAgents/transports/acp/acpModePresentation.js +15 -0
  76. package/dist/node/externalAgents/transports/acp/acpModePresentation.js.map +1 -0
  77. package/dist/node/externalAgents/transports/acp/acpProcess.d.ts +15 -0
  78. package/dist/node/externalAgents/transports/acp/acpProcess.d.ts.map +1 -0
  79. package/dist/node/externalAgents/transports/acp/acpProcess.js +60 -0
  80. package/dist/node/externalAgents/transports/acp/acpProcess.js.map +1 -0
  81. package/dist/protocol/cleanSlateAI.d.ts +6 -0
  82. package/dist/protocol/cleanSlateAI.d.ts.map +1 -1
  83. package/dist/protocol/cleanSlateAI.js.map +1 -1
  84. package/dist/services/cleanSlateDiffService.d.ts +6 -0
  85. package/dist/services/cleanSlateDiffService.d.ts.map +1 -1
  86. package/dist/services/cleanSlateDiffService.js +34 -0
  87. package/dist/services/cleanSlateDiffService.js.map +1 -1
  88. package/package.json +14 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"externalAgentRegistry.js","sourceRoot":"","sources":["../../../src/node/externalAgents/externalAgentRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { Event } from '../../core/event.js';
2
+ import { Disposable } from '../../core/lifecycle.js';
3
+ import { IExternalAgentDescriptor, IExternalAgentEvent, IExternalAgentPermissionResponse, IExternalAgentPromptRequest, IExternalAgentSessionInfo, IExternalAgentStartRequest } from '../../externalAgents/externalAgentTypes.js';
4
+ import { ExternalAgentRegistry } from './externalAgentRegistry.js';
5
+ export declare class ExternalAgentService extends Disposable {
6
+ private readonly registry;
7
+ private readonly createHostTools?;
8
+ constructor(registry?: ExternalAgentRegistry, createHostTools?: ((sessionId: string, cwd: string) => Promise<import("./externalAgentSession.js").IExternalAgentHostTools>) | undefined);
9
+ private readonly sessions;
10
+ private readonly starting;
11
+ private readonly permissions;
12
+ private readonly cancelledStarts;
13
+ private readonly prompting;
14
+ private readonly eventOwners;
15
+ private disposed;
16
+ private readonly hostRequests;
17
+ private readonly hostOwners;
18
+ private readonly _onDidEmitEvent;
19
+ readonly onDidEmitEvent: Event<IExternalAgentEvent>;
20
+ getUsage(agentId: string): Promise<import('../../externalAgents/externalAgentTypes.js').IExternalAgentUsage>;
21
+ listAgents(env?: NodeJS.ProcessEnv): IExternalAgentDescriptor[];
22
+ registerAgent(value: import('../../externalAgents/externalAgentTypes.js').IExternalAgentRegistration): void;
23
+ startSession(request: IExternalAgentStartRequest, env?: NodeJS.ProcessEnv): Promise<IExternalAgentSessionInfo>;
24
+ private createOrUpdateSession;
25
+ prompt(request: IExternalAgentPromptRequest): Promise<void>;
26
+ cancel(cleanSlateSessionId: string): Promise<void>;
27
+ respondToPermission(response: IExternalAgentPermissionResponse): void;
28
+ closeSession(cleanSlateSessionId: string): Promise<void>;
29
+ private disposeSession;
30
+ private cancelPermissions;
31
+ private requestHostTool;
32
+ respondToHostTool(response: import('../../externalAgents/externalAgentTypes.js').IExternalAgentHostToolResponse): void;
33
+ private cancelHostRequests;
34
+ private requestPermission;
35
+ dispose(): void;
36
+ }
37
+ //# sourceMappingURL=externalAgentService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"externalAgentService.d.ts","sourceRoot":"","sources":["../../../src/node/externalAgents/externalAgentService.ts"],"names":[],"mappings":"AAUA,OAAO,EAAW,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EACN,wBAAwB,EACxB,mBAAmB,EACnB,gCAAgC,EAChC,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,EAC1B,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAWnE,qBAAa,oBAAqB,SAAQ,UAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAAgC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;gBAAzE,QAAQ,wBAA8B,EAAmB,eAAe,CAAC,GAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,2BAA2B,EAAE,uBAAuB,CAAC,aAAA;IAChN,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;IACpE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyD;IAClF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyC;IACrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IACzD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8J;IAC3L,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsD;IACtF,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAA8B;IAEjF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,4CAA4C,EAAE,mBAAmB,CAAC;IAO5G,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,wBAAwB,EAAE;IAG/D,aAAa,CAAC,KAAK,EAAE,OAAO,4CAA4C,EAAE,0BAA0B,GAAG,IAAI;IAErG,YAAY,CAAC,OAAO,EAAE,0BAA0B,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,yBAAyB,CAAC;YAYtG,qBAAqB;IAuE7B,MAAM,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAe3D,MAAM,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxD,mBAAmB,CAAC,QAAQ,EAAE,gCAAgC,GAAG,IAAI;IAY/D,YAAY,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAMhD,cAAc;IAc5B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,eAAe;IAcvB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,4CAA4C,EAAE,8BAA8B,GAAG,IAAI;IAStH,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,iBAAiB;IAYhB,OAAO,IAAI,IAAI;CAQxB"}
@@ -0,0 +1,252 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) CleanSlate. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { mkdir } from 'fs/promises';
6
+ import { tmpdir } from 'os';
7
+ import * as path from 'path';
8
+ import { fileURLToPath } from 'url';
9
+ import { Emitter } from '../../core/event.js';
10
+ import { Disposable } from '../../core/lifecycle.js';
11
+ import { randomUUID as generateUuid } from 'node:crypto';
12
+ import { ExternalAgentRegistry } from './externalAgentRegistry.js';
13
+ import { ExternalAgentSession } from './externalAgentSession.js';
14
+ import { createHostToolsBridge } from './hostToolsBridge.js';
15
+ import { readCodexAppServerUsage } from './externalAgentUsage.js';
16
+ export class ExternalAgentService extends Disposable {
17
+ constructor(registry = new ExternalAgentRegistry(), createHostTools) {
18
+ super();
19
+ this.registry = registry;
20
+ this.createHostTools = createHostTools;
21
+ this.sessions = new Map();
22
+ this.starting = new Map();
23
+ this.permissions = new Map();
24
+ this.cancelledStarts = new Set();
25
+ this.prompting = new Set();
26
+ this.eventOwners = new Map();
27
+ this.disposed = false;
28
+ this.hostRequests = new Map();
29
+ this.hostOwners = new Map();
30
+ this._onDidEmitEvent = this._register(new Emitter());
31
+ this.onDidEmitEvent = this._onDidEmitEvent.event;
32
+ }
33
+ getUsage(agentId) {
34
+ const usage = this.registry.resolveUsage(agentId);
35
+ return usage
36
+ ? readCodexAppServerUsage(usage.executable, usage.args, usage.runAsNode)
37
+ : Promise.resolve({ detail: 'Account limits are not exposed by this agent. Check usage with its provider.', windows: [] });
38
+ }
39
+ listAgents(env) {
40
+ return this.registry.list(env);
41
+ }
42
+ registerAgent(value) { this.registry.register(value); }
43
+ async startSession(request, env) {
44
+ if (this.disposed) {
45
+ throw new Error('External agent service is disposed.');
46
+ }
47
+ const pending = this.starting.get(request.cleanSlateSessionId);
48
+ if (pending) {
49
+ return pending.then(info => request.modelSelection || info.config.agentId !== request.config.agentId ? this.startSession(request, env) : info);
50
+ }
51
+ this.cancelledStarts.delete(request.cleanSlateSessionId);
52
+ const starting = this.createOrUpdateSession(request, env).finally(() => this.starting.delete(request.cleanSlateSessionId));
53
+ this.starting.set(request.cleanSlateSessionId, starting);
54
+ return starting;
55
+ }
56
+ async createOrUpdateSession(request, env) {
57
+ const requestedCwd = request.cwd?.trim();
58
+ const cwd = requestedCwd
59
+ ? (requestedCwd.startsWith('file:') ? fileURLToPath(requestedCwd) : requestedCwd)
60
+ : path.join(tmpdir(), 'cleanslate-external-agents', request.cleanSlateSessionId);
61
+ if (!path.isAbsolute(cwd)) {
62
+ throw new Error('External agents require an absolute project path.');
63
+ }
64
+ if (!requestedCwd) {
65
+ await mkdir(cwd, { recursive: true, mode: 0o700 });
66
+ }
67
+ const existing = this.sessions.get(request.cleanSlateSessionId);
68
+ if (this.prompting.has(request.cleanSlateSessionId) && (request.modelSelection
69
+ || existing?.config.agentId !== request.config.agentId || existing.cwd !== cwd
70
+ || request.hostTools && this.hostOwners.get(request.cleanSlateSessionId) !== request.hostTools.ownerId)) {
71
+ throw new Error('Stop the current response before changing its agent, model, workspace, or IDE owner.');
72
+ }
73
+ if (existing && existing.config.agentId === request.config.agentId && existing.cwd === cwd
74
+ && (!request.hostTools || this.hostOwners.get(request.cleanSlateSessionId) === request.hostTools.ownerId)) {
75
+ if (request.modelSelection) {
76
+ await existing.selectModel(request.modelSelection.configId, request.modelSelection.value);
77
+ }
78
+ return { cleanSlateSessionId: request.cleanSlateSessionId, externalSessionId: existing.externalSessionId, config: existing.config, models: existing.models, controls: existing.controls };
79
+ }
80
+ await this.disposeSession(request.cleanSlateSessionId);
81
+ const launch = this.registry.resolve(request.config.agentId, env);
82
+ const eventOwner = Symbol();
83
+ this.eventOwners.set(request.cleanSlateSessionId, eventOwner);
84
+ if (request.hostTools) {
85
+ this.hostOwners.set(request.cleanSlateSessionId, request.hostTools.ownerId);
86
+ }
87
+ let session;
88
+ session = await ExternalAgentSession.create(request.cleanSlateSessionId, request.config, cwd, launch, {
89
+ createHostTools: request.hostTools ? () => createHostToolsBridge(request.hostTools.tools.map(tool => ({
90
+ definition: { ...tool, inputSchema: { ...tool.inputSchema, type: 'object' } },
91
+ call: async (input) => {
92
+ const result = await this.requestHostTool(request.cleanSlateSessionId, request.hostTools.ownerId, tool.name, input);
93
+ return { content: [{ type: 'text', text: JSON.stringify(result ?? null) }] };
94
+ }
95
+ })), async () => { this.cancelHostRequests(request.cleanSlateSessionId); })
96
+ : this.createHostTools ? () => this.createHostTools(request.cleanSlateSessionId, cwd) : undefined,
97
+ onEvent: event => {
98
+ if (this.disposed || this.eventOwners.get(request.cleanSlateSessionId) !== eventOwner) {
99
+ return;
100
+ }
101
+ this._onDidEmitEvent.fire(event);
102
+ if (event.type === 'status' && event.status !== 'running') {
103
+ this.cancelPermissions(request.cleanSlateSessionId);
104
+ this.cancelHostRequests(request.cleanSlateSessionId);
105
+ }
106
+ if (event.type === 'status' && event.status === 'failed' && session && this.sessions.get(request.cleanSlateSessionId) === session) {
107
+ this.sessions.delete(request.cleanSlateSessionId);
108
+ this.eventOwners.delete(request.cleanSlateSessionId);
109
+ this.cancelPermissions(request.cleanSlateSessionId);
110
+ void session.dispose();
111
+ }
112
+ },
113
+ requestPermission: permission => this.disposed || this.eventOwners.get(request.cleanSlateSessionId) !== eventOwner
114
+ ? Promise.resolve({ outcome: { outcome: 'cancelled' } })
115
+ : this.requestPermission(request.cleanSlateSessionId, permission)
116
+ }, request.externalSessionId);
117
+ if (this.disposed) {
118
+ await session.dispose();
119
+ throw new Error('External agent service is disposed.');
120
+ }
121
+ this.sessions.set(request.cleanSlateSessionId, session);
122
+ if (request.modelSelection) {
123
+ await session.selectModel(request.modelSelection.configId, request.modelSelection.value);
124
+ }
125
+ return { cleanSlateSessionId: request.cleanSlateSessionId, externalSessionId: session.externalSessionId, config: request.config, models: session.models, controls: session.controls };
126
+ }
127
+ async prompt(request) {
128
+ if (this.cancelledStarts.delete(request.cleanSlateSessionId)) {
129
+ this._onDidEmitEvent.fire({ type: 'status', cleanSlateSessionId: request.cleanSlateSessionId, status: 'cancelled' });
130
+ return;
131
+ }
132
+ const session = this.sessions.get(request.cleanSlateSessionId);
133
+ if (!session) {
134
+ throw new Error('External agent session is not active.');
135
+ }
136
+ if (this.prompting.has(request.cleanSlateSessionId)) {
137
+ throw new Error('This agent already has a running response.');
138
+ }
139
+ this.prompting.add(request.cleanSlateSessionId);
140
+ try {
141
+ await session.prompt(request.prompt, request.images);
142
+ }
143
+ finally {
144
+ this.prompting.delete(request.cleanSlateSessionId);
145
+ }
146
+ }
147
+ async cancel(cleanSlateSessionId) {
148
+ this.cancelHostRequests(cleanSlateSessionId);
149
+ if (this.starting.has(cleanSlateSessionId) && !this.prompting.has(cleanSlateSessionId)) {
150
+ this.cancelledStarts.add(cleanSlateSessionId);
151
+ }
152
+ this.cancelPermissions(cleanSlateSessionId);
153
+ await this.sessions.get(cleanSlateSessionId)?.cancel();
154
+ }
155
+ respondToPermission(response) {
156
+ const pending = this.permissions.get(response.requestId);
157
+ if (!pending) {
158
+ return;
159
+ }
160
+ this.permissions.delete(response.requestId);
161
+ const validOption = pending.request.options.find(option => option.optionId === response.optionId);
162
+ pending.resolve(validOption
163
+ ? { outcome: { outcome: 'selected', optionId: validOption.optionId } }
164
+ : { outcome: { outcome: 'cancelled' } });
165
+ }
166
+ async closeSession(cleanSlateSessionId) {
167
+ await this.starting.get(cleanSlateSessionId)?.catch(() => undefined);
168
+ await this.disposeSession(cleanSlateSessionId);
169
+ this.cancelledStarts.delete(cleanSlateSessionId);
170
+ }
171
+ async disposeSession(cleanSlateSessionId) {
172
+ this.cancelHostRequests(cleanSlateSessionId);
173
+ this.hostOwners.delete(cleanSlateSessionId);
174
+ this.eventOwners.delete(cleanSlateSessionId);
175
+ this.cancelPermissions(cleanSlateSessionId);
176
+ const session = this.sessions.get(cleanSlateSessionId);
177
+ if (!session) {
178
+ return;
179
+ }
180
+ this.sessions.delete(cleanSlateSessionId);
181
+ this.cancelPermissions(cleanSlateSessionId);
182
+ await session.dispose();
183
+ }
184
+ cancelPermissions(cleanSlateSessionId) {
185
+ for (const [requestId, pending] of this.permissions) {
186
+ if (pending.cleanSlateSessionId === cleanSlateSessionId) {
187
+ this.permissions.delete(requestId);
188
+ pending.resolve({ outcome: { outcome: 'cancelled' } });
189
+ }
190
+ }
191
+ }
192
+ requestHostTool(sessionId, ownerId, name, input) {
193
+ if (this.disposed || !this.prompting.has(sessionId)) {
194
+ return Promise.reject(new Error('No active agent response.'));
195
+ }
196
+ const requestId = generateUuid();
197
+ return new Promise((resolve, reject) => {
198
+ const timer = setTimeout(() => {
199
+ this.hostRequests.delete(requestId);
200
+ this._onDidEmitEvent.fire({ type: 'host_tool_cancel', cleanSlateSessionId: sessionId, ownerId, requestId });
201
+ reject(new Error('The IDE did not answer this tool request.'));
202
+ }, 120000);
203
+ this.hostRequests.set(requestId, { sessionId, ownerId, resolve, reject, timer });
204
+ this._onDidEmitEvent.fire({ type: 'host_tool', cleanSlateSessionId: sessionId, ownerId, requestId, name, input });
205
+ });
206
+ }
207
+ respondToHostTool(response) {
208
+ const request = this.hostRequests.get(response.requestId);
209
+ if (!request || request.ownerId !== response.ownerId) {
210
+ return;
211
+ }
212
+ this.hostRequests.delete(response.requestId);
213
+ clearTimeout(request.timer);
214
+ if (response.error) {
215
+ request.reject(new Error(response.error));
216
+ }
217
+ else {
218
+ request.resolve(response.result);
219
+ }
220
+ }
221
+ cancelHostRequests(sessionId) {
222
+ for (const [id, request] of this.hostRequests) {
223
+ if (request.sessionId !== sessionId) {
224
+ continue;
225
+ }
226
+ this.hostRequests.delete(id);
227
+ this._onDidEmitEvent.fire({ type: 'host_tool_cancel', cleanSlateSessionId: sessionId, ownerId: request.ownerId, requestId: id });
228
+ clearTimeout(request.timer);
229
+ request.reject(new Error('The agent tool request was cancelled.'));
230
+ }
231
+ }
232
+ requestPermission(cleanSlateSessionId, request) {
233
+ const requestId = generateUuid();
234
+ return new Promise(resolve => {
235
+ this.permissions.set(requestId, { cleanSlateSessionId, request, resolve });
236
+ this._onDidEmitEvent.fire({
237
+ type: 'permission', cleanSlateSessionId, requestId,
238
+ title: request.toolCall.title ?? 'Permission required',
239
+ options: request.options.map(option => ({ id: option.optionId, name: option.name, kind: option.kind }))
240
+ });
241
+ });
242
+ }
243
+ dispose() {
244
+ this.disposed = true;
245
+ this.eventOwners.clear();
246
+ for (const sessionId of [...this.sessions.keys()]) {
247
+ void this.closeSession(sessionId);
248
+ }
249
+ super.dispose();
250
+ }
251
+ }
252
+ //# sourceMappingURL=externalAgentService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"externalAgentService.js","sourceRoot":"","sources":["../../../src/node/externalAgents/externalAgentService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { RequestPermissionRequest, RequestPermissionResponse } from '@agentclientprotocol/sdk';
2
+ import { IExternalAgentConfig, IExternalAgentEvent } from '../../externalAgents/externalAgentTypes.js';
3
+ import { IExternalAgentLaunchConfiguration } from './externalAgentRegistry.js';
4
+ export interface IExternalAgentSessionHandlers {
5
+ readonly createHostTools?: () => Promise<IExternalAgentHostTools>;
6
+ readonly onEvent: (event: IExternalAgentEvent) => void;
7
+ readonly requestPermission: (request: RequestPermissionRequest) => Promise<RequestPermissionResponse>;
8
+ }
9
+ export interface IExternalAgentHostTools {
10
+ readonly servers: import('@agentclientprotocol/sdk').McpServer[];
11
+ dispose(): Promise<void>;
12
+ }
13
+ export declare class ExternalAgentSession {
14
+ readonly cleanSlateSessionId: string;
15
+ readonly config: IExternalAgentConfig;
16
+ readonly cwd: string;
17
+ private readonly client;
18
+ private readonly hostTools?;
19
+ private constructor();
20
+ static create(cleanSlateSessionId: string, config: IExternalAgentConfig, cwd: string, launch: IExternalAgentLaunchConfiguration & {
21
+ executable: string;
22
+ }, handlers: IExternalAgentSessionHandlers, existingSessionId?: string): Promise<ExternalAgentSession>;
23
+ get externalSessionId(): string;
24
+ prompt(text: string, images?: readonly string[]): Promise<void>;
25
+ get models(): {
26
+ readonly configId: string;
27
+ readonly current: string;
28
+ readonly options: readonly {
29
+ readonly value: string;
30
+ readonly name: string;
31
+ }[];
32
+ } | undefined;
33
+ get controls(): readonly {
34
+ readonly configId: string;
35
+ readonly name: string;
36
+ readonly category?: string;
37
+ readonly current: string;
38
+ readonly options: readonly {
39
+ readonly value: string;
40
+ readonly name: string;
41
+ readonly description?: string;
42
+ readonly kind?: import("../../externalAgents/externalAgentTypes.js").ExternalApprovalPresentation;
43
+ }[];
44
+ }[];
45
+ selectModel(configId: string, value: string): Promise<void>;
46
+ cancel(): Promise<void>;
47
+ dispose(): Promise<void>;
48
+ }
49
+ //# sourceMappingURL=externalAgentSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"externalAgentSession.d.ts","sourceRoot":"","sources":["../../../src/node/externalAgents/externalAgentSession.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACvG,OAAO,EAAE,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;AAG/E,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAClE,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACvD,QAAQ,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAAC;CACtG;AAED,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,0BAA0B,EAAE,SAAS,EAAE,CAAC;IACjE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACzB;AAED,qBAAa,oBAAoB;IAE/B,QAAQ,CAAC,mBAAmB,EAAE,MAAM;IACpC,QAAQ,CAAC,MAAM,EAAE,oBAAoB;IACrC,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;IAL5B,OAAO;WAQM,MAAM,CAAC,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,iCAAiC,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,EAAE,6BAA6B,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgBnQ,IAAI,iBAAiB,IAAI,MAAM,CAK9B;IAED,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAG/D,IAAI,MAAM;;;;;;;kBAAiC;IAC3C,IAAI,QAAQ;;;;;;;;gCAhBqC,CAAC;yBAAuB,CAAC;;QAgB3B;IAC/C,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAE3D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAI9B"}
@@ -0,0 +1,54 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) CleanSlate. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { AcpClient } from './transports/acp/acpClient.js';
6
+ export class ExternalAgentSession {
7
+ constructor(cleanSlateSessionId, config, cwd, client, hostTools) {
8
+ this.cleanSlateSessionId = cleanSlateSessionId;
9
+ this.config = config;
10
+ this.cwd = cwd;
11
+ this.client = client;
12
+ this.hostTools = hostTools;
13
+ }
14
+ static async create(cleanSlateSessionId, config, cwd, launch, handlers, existingSessionId) {
15
+ const hostTools = await handlers.createHostTools?.();
16
+ let client;
17
+ try {
18
+ client = await AcpClient.create(cleanSlateSessionId, cwd, launch, handlers);
19
+ await client.start(cwd, existingSessionId, hostTools?.servers);
20
+ }
21
+ catch (error) {
22
+ await client?.dispose();
23
+ await hostTools?.dispose();
24
+ throw error;
25
+ }
26
+ const session = new ExternalAgentSession(cleanSlateSessionId, config, cwd, client, hostTools);
27
+ handlers.onEvent({ type: 'status', cleanSlateSessionId, status: 'ready' });
28
+ return session;
29
+ }
30
+ get externalSessionId() {
31
+ if (!this.client.externalSessionId) {
32
+ throw new Error('External agent session has not started.');
33
+ }
34
+ return this.client.externalSessionId;
35
+ }
36
+ prompt(text, images) {
37
+ return this.client.prompt(text, images);
38
+ }
39
+ get models() { return this.client.models; }
40
+ get controls() { return this.client.controls; }
41
+ selectModel(configId, value) { return this.client.selectModel(configId, value); }
42
+ cancel() {
43
+ return this.client.cancel();
44
+ }
45
+ async dispose() {
46
+ try {
47
+ await this.client.dispose();
48
+ }
49
+ finally {
50
+ await this.hostTools?.dispose();
51
+ }
52
+ }
53
+ }
54
+ //# sourceMappingURL=externalAgentSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"externalAgentSession.js","sourceRoot":"","sources":["../../../src/node/externalAgents/externalAgentSession.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAKhG,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAa1D,MAAM,OAAO,oBAAoB;IAChC,YACU,mBAA2B,EAC3B,MAA4B,EAC5B,GAAW,EACH,MAAiB,EACjB,SAAmC;QAJ3C,wBAAmB,GAAnB,mBAAmB,CAAQ;QAC3B,WAAM,GAAN,MAAM,CAAsB;QAC5B,QAAG,GAAH,GAAG,CAAQ;QACH,WAAM,GAAN,MAAM,CAAW;QACjB,cAAS,GAAT,SAAS,CAA0B;IACjD,CAAC;IAEL,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,mBAA2B,EAAE,MAA4B,EAAE,GAAW,EAAE,MAAkE,EAAE,QAAuC,EAAE,iBAA0B;QAClO,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,EAAE,CAAC;QACrD,IAAI,MAA6B,CAAC;QAClC,IAAI,CAAC;YACJ,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC5E,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,MAAM,EAAE,OAAO,EAAE,CAAC;YACxB,MAAM,SAAS,EAAE,OAAO,EAAE,CAAC;YAC3B,MAAM,KAAK,CAAC;QACb,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,oBAAoB,CAAC,mBAAmB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAC9F,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3E,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,IAAI,iBAAiB;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,IAAY,EAAE,MAA0B;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,WAAW,CAAC,QAAgB,EAAE,KAAa,IAAmB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAEhH,MAAM;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,IAAI,CAAC;YAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAAC,CAAC;gBAC5B,CAAC;YAAC,MAAM,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;QAAC,CAAC;IAC7C,CAAC;CACD"}
@@ -0,0 +1,5 @@
1
+ import type { IExternalAgentUsage } from '../../externalAgents/externalAgentTypes.js';
2
+ export declare function formatCodexRateLimits(value: unknown): IExternalAgentUsage;
3
+ /** Reads account limits through the documented Codex app-server protocol. Credentials stay inside Codex. */
4
+ export declare function readCodexAppServerUsage(command: string, args: readonly string[], runAsNode?: boolean): Promise<IExternalAgentUsage>;
5
+ //# sourceMappingURL=externalAgentUsage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"externalAgentUsage.d.ts","sourceRoot":"","sources":["../../../src/node/externalAgents/externalAgentUsage.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAwBtF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAoBzE;AAED,4GAA4G;AAC5G,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,UAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAiCjI"}
@@ -0,0 +1,98 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) CleanSlate. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { spawn } from 'node:child_process';
6
+ import { createInterface } from 'node:readline';
7
+ function labelForWindow(limit, window) {
8
+ if (typeof limit.limitName === 'string' && limit.limitName.trim()) {
9
+ return limit.limitName.trim();
10
+ }
11
+ const minutes = typeof window.windowDurationMins === 'number' ? window.windowDurationMins : 0;
12
+ if (minutes >= 10080) {
13
+ return 'Weekly';
14
+ }
15
+ if (minutes >= 1440 && minutes % 1440 === 0) {
16
+ const days = minutes / 1440;
17
+ return `${days} ${days === 1 ? 'day' : 'days'}`;
18
+ }
19
+ if (minutes >= 60 && minutes % 60 === 0) {
20
+ const hours = minutes / 60;
21
+ return `${hours} ${hours === 1 ? 'hour' : 'hours'}`;
22
+ }
23
+ return typeof limit.limitId === 'string' && limit.limitId !== 'codex' ? limit.limitId : 'Allowance';
24
+ }
25
+ export function formatCodexRateLimits(value) {
26
+ if (!value || typeof value !== 'object') {
27
+ return { detail: 'No account limits reported.', windows: [] };
28
+ }
29
+ const result = value;
30
+ const limits = result.rateLimitsByLimitId && typeof result.rateLimitsByLimitId === 'object'
31
+ ? Object.values(result.rateLimitsByLimitId)
32
+ : result.rateLimits ? [result.rateLimits] : [];
33
+ const windows = [];
34
+ const seen = new Set();
35
+ for (const limit of limits) {
36
+ for (const window of [limit.primary, limit.secondary]) {
37
+ if (!window || typeof window.usedPercent !== 'number' || !Number.isFinite(window.usedPercent)) {
38
+ continue;
39
+ }
40
+ const label = labelForWindow(limit, window);
41
+ const resetsAt = typeof window.resetsAt === 'number' && Number.isFinite(window.resetsAt) && window.resetsAt > 0 ? window.resetsAt : undefined;
42
+ const key = `${label}:${window.windowDurationMins ?? ''}:${resetsAt ?? ''}`;
43
+ if (seen.has(key)) {
44
+ continue;
45
+ }
46
+ seen.add(key);
47
+ windows.push({ label, usedPercent: Math.max(0, Math.min(100, window.usedPercent)), resetsAt });
48
+ }
49
+ }
50
+ return { detail: windows.length ? 'Account usage' : 'No account limits reported.', windows };
51
+ }
52
+ /** Reads account limits through the documented Codex app-server protocol. Credentials stay inside Codex. */
53
+ export function readCodexAppServerUsage(command, args, runAsNode = false) {
54
+ return new Promise(resolve => {
55
+ const env = runAsNode ? { ...process.env, ELECTRON_RUN_AS_NODE: '1' } : process.env;
56
+ const child = spawn(command, args, { env, stdio: ['pipe', 'pipe', 'ignore'], windowsHide: true });
57
+ const lines = createInterface({ input: child.stdout });
58
+ let settled = false;
59
+ const finish = (usage) => {
60
+ if (settled) {
61
+ return;
62
+ }
63
+ settled = true;
64
+ clearTimeout(timer);
65
+ lines.close();
66
+ child.kill();
67
+ resolve(usage);
68
+ };
69
+ const send = (message) => child.stdin.write(`${JSON.stringify(message)}\n`);
70
+ const timer = setTimeout(() => finish({ detail: 'Account usage is temporarily unavailable. Reopen to retry.', windows: [] }), 8000);
71
+ child.once('error', () => finish({ detail: 'Codex is unavailable. Install or repair the Codex runtime.', windows: [] }));
72
+ child.once('exit', () => finish({ detail: 'Account usage is temporarily unavailable. Reopen to retry.', windows: [] }));
73
+ lines.on('line', line => {
74
+ let message;
75
+ try {
76
+ message = JSON.parse(line);
77
+ }
78
+ catch {
79
+ return;
80
+ }
81
+ if (message.id === 1) {
82
+ if (message.error) {
83
+ finish({ detail: 'Codex could not initialize account usage.', windows: [] });
84
+ return;
85
+ }
86
+ send({ method: 'initialized', params: {} });
87
+ send({ method: 'account/rateLimits/read', id: 2 });
88
+ }
89
+ else if (message.id === 2) {
90
+ finish(message.error
91
+ ? { detail: 'Sign in to Codex with ChatGPT to view account usage.', windows: [] }
92
+ : formatCodexRateLimits(message.result));
93
+ }
94
+ });
95
+ send({ method: 'initialize', id: 1, params: { clientInfo: { name: 'cleanslate', title: 'CleanSlate', version: '1.0.0' } } });
96
+ });
97
+ }
98
+ //# sourceMappingURL=externalAgentUsage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"externalAgentUsage.js","sourceRoot":"","sources":["../../../src/node/externalAgents/externalAgentUsage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { CLEANSLATE_SDK_VERSION } from './generatedSdkVersion.js';
2
+ //# sourceMappingURL=externalAgentVersion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"externalAgentVersion.d.ts","sourceRoot":"","sources":["../../../src/node/externalAgents/externalAgentVersion.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,6 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) CleanSlate. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ export { CLEANSLATE_SDK_VERSION } from './generatedSdkVersion.js';
6
+ //# sourceMappingURL=externalAgentVersion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"externalAgentVersion.js","sourceRoot":"","sources":["../../../src/node/externalAgents/externalAgentVersion.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { IExternalAgentEvent } from '../../externalAgents/externalAgentTypes.js';
2
+ type ToolEvent = Extract<IExternalAgentEvent, {
3
+ type: 'tool';
4
+ }>;
5
+ /** Turn-local file evidence. Never changes the workspace or the user's Git index. */
6
+ export declare class ExternalFileSnapshots {
7
+ private readonly root;
8
+ private readonly requestedRoot;
9
+ private readonly files;
10
+ private readonly directories;
11
+ private readonly excludedDirectories;
12
+ private bytes;
13
+ private constructor();
14
+ static capture(cwd: string): Promise<ExternalFileSnapshots>;
15
+ private text;
16
+ private scan;
17
+ changes(event: ToolEvent): Promise<ToolEvent['fileChanges']>;
18
+ }
19
+ export {};
20
+ //# sourceMappingURL=externalFileSnapshots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"externalFileSnapshots.d.ts","sourceRoot":"","sources":["../../../src/node/externalAgents/externalFileSnapshots.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAEtF,KAAK,SAAS,GAAG,OAAO,CAAC,mBAAmB,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhE,qFAAqF;AACrF,qBAAa,qBAAqB;IAKV,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAU,OAAO,CAAC,QAAQ,CAAC,aAAa;IAJjF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyC;IAC/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO;WAEM,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;YAMnD,IAAI;YAQJ,IAAI;IAqBZ,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;CA6BrE"}