computer-agents 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +399 -170
- package/dist/index.d.ts +5 -28
- package/dist/index.js +194 -51
- package/dist/index.js.map +1 -1
- package/dist/metadata.d.ts +8 -0
- package/dist/metadata.js +13 -0
- package/dist/metadata.js.map +1 -0
- package/package.json +25 -23
- package/dist/ComputerAgentsClient.d.ts +0 -357
- package/dist/ComputerAgentsClient.js +0 -359
- package/dist/ComputerAgentsClient.js.map +0 -1
- package/dist/cloud/ApiClient.d.ts +0 -62
- package/dist/cloud/ApiClient.js +0 -150
- package/dist/cloud/ApiClient.js.map +0 -1
- package/dist/cloud/resources/AgentsResource.d.ts +0 -39
- package/dist/cloud/resources/AgentsResource.js +0 -58
- package/dist/cloud/resources/AgentsResource.js.map +0 -1
- package/dist/cloud/resources/BudgetResource.d.ts +0 -167
- package/dist/cloud/resources/BudgetResource.js +0 -179
- package/dist/cloud/resources/BudgetResource.js.map +0 -1
- package/dist/cloud/resources/EnvironmentsResource.d.ts +0 -78
- package/dist/cloud/resources/EnvironmentsResource.js +0 -118
- package/dist/cloud/resources/EnvironmentsResource.js.map +0 -1
- package/dist/cloud/resources/FilesResource.d.ts +0 -173
- package/dist/cloud/resources/FilesResource.js +0 -180
- package/dist/cloud/resources/FilesResource.js.map +0 -1
- package/dist/cloud/resources/GitResource.d.ts +0 -28
- package/dist/cloud/resources/GitResource.js +0 -45
- package/dist/cloud/resources/GitResource.js.map +0 -1
- package/dist/cloud/resources/ProjectsResource.d.ts +0 -78
- package/dist/cloud/resources/ProjectsResource.js +0 -117
- package/dist/cloud/resources/ProjectsResource.js.map +0 -1
- package/dist/cloud/resources/RunsResource.d.ts +0 -61
- package/dist/cloud/resources/RunsResource.js +0 -84
- package/dist/cloud/resources/RunsResource.js.map +0 -1
- package/dist/cloud/resources/SchedulesResource.d.ts +0 -58
- package/dist/cloud/resources/SchedulesResource.js +0 -82
- package/dist/cloud/resources/SchedulesResource.js.map +0 -1
- package/dist/cloud/resources/ThreadsResource.d.ts +0 -124
- package/dist/cloud/resources/ThreadsResource.js +0 -178
- package/dist/cloud/resources/ThreadsResource.js.map +0 -1
- package/dist/cloud/resources/index.d.ts +0 -16
- package/dist/cloud/resources/index.js +0 -28
- package/dist/cloud/resources/index.js.map +0 -1
- package/dist/cloud/types.d.ts +0 -573
- package/dist/cloud/types.js +0 -9
- package/dist/cloud/types.js.map +0 -1
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Threads Resource Manager
|
|
4
|
-
*
|
|
5
|
-
* Handles conversation threads including CRUD operations,
|
|
6
|
-
* message execution with SSE streaming, and conversation history.
|
|
7
|
-
*
|
|
8
|
-
* Note: projectId is now embedded in the API key, so routes use
|
|
9
|
-
* simplified paths without /projects/:projectId prefix.
|
|
10
|
-
*/
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.ThreadsResource = void 0;
|
|
13
|
-
class ThreadsResource {
|
|
14
|
-
client;
|
|
15
|
-
constructor(client) {
|
|
16
|
-
this.client = client;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Create a new thread
|
|
20
|
-
*
|
|
21
|
-
* Project is determined automatically from the API key.
|
|
22
|
-
*/
|
|
23
|
-
async create(params) {
|
|
24
|
-
const response = await this.client.post(`/threads`, params);
|
|
25
|
-
return response.thread;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* List threads
|
|
29
|
-
*
|
|
30
|
-
* Project is determined automatically from the API key.
|
|
31
|
-
*/
|
|
32
|
-
async list(params = {}) {
|
|
33
|
-
const response = await this.client.get(`/threads`, {
|
|
34
|
-
limit: params.limit,
|
|
35
|
-
offset: params.offset,
|
|
36
|
-
environmentId: params.environmentId,
|
|
37
|
-
status: params.status,
|
|
38
|
-
});
|
|
39
|
-
return {
|
|
40
|
-
data: response.data,
|
|
41
|
-
hasMore: response.has_more,
|
|
42
|
-
total: response.total_count,
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Get a thread by ID with full message history
|
|
47
|
-
*/
|
|
48
|
-
async get(threadId) {
|
|
49
|
-
const response = await this.client.get(`/threads/${threadId}`);
|
|
50
|
-
return response.thread;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Update a thread
|
|
54
|
-
*/
|
|
55
|
-
async update(threadId, params) {
|
|
56
|
-
const response = await this.client.patch(`/threads/${threadId}`, params);
|
|
57
|
-
return response.thread;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Delete a thread (soft delete)
|
|
61
|
-
*/
|
|
62
|
-
async delete(threadId) {
|
|
63
|
-
await this.client.delete(`/threads/${threadId}`);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Get message history for a thread
|
|
67
|
-
*/
|
|
68
|
-
async getMessages(threadId) {
|
|
69
|
-
const response = await this.client.get(`/threads/${threadId}/messages`);
|
|
70
|
-
return {
|
|
71
|
-
data: response.data,
|
|
72
|
-
hasMore: response.has_more,
|
|
73
|
-
total: response.total_count,
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Send a message to a thread and stream the response
|
|
78
|
-
*
|
|
79
|
-
* This method handles SSE streaming from the API and returns
|
|
80
|
-
* the complete result when finished.
|
|
81
|
-
*
|
|
82
|
-
* @example
|
|
83
|
-
* ```typescript
|
|
84
|
-
* const result = await client.threads.sendMessage(
|
|
85
|
-
* 'thread_456',
|
|
86
|
-
* {
|
|
87
|
-
* content: 'Create a REST API with Flask',
|
|
88
|
-
* onEvent: (event) => {
|
|
89
|
-
* if (event.type === 'response.item.completed') {
|
|
90
|
-
* console.log('Item:', event.item);
|
|
91
|
-
* }
|
|
92
|
-
* }
|
|
93
|
-
* }
|
|
94
|
-
* );
|
|
95
|
-
* console.log('Final response:', result.content);
|
|
96
|
-
* ```
|
|
97
|
-
*/
|
|
98
|
-
async sendMessage(threadId, options) {
|
|
99
|
-
const { onEvent, timeout = 600000, ...params } = options;
|
|
100
|
-
// Make streaming request
|
|
101
|
-
const response = await this.client.request('POST', `/threads/${threadId}/messages`, {
|
|
102
|
-
body: params,
|
|
103
|
-
stream: true,
|
|
104
|
-
timeout,
|
|
105
|
-
});
|
|
106
|
-
const events = [];
|
|
107
|
-
let finalContent = '';
|
|
108
|
-
let runDetails;
|
|
109
|
-
// Parse SSE stream
|
|
110
|
-
const reader = response.body?.getReader();
|
|
111
|
-
if (!reader) {
|
|
112
|
-
throw new Error('No response body');
|
|
113
|
-
}
|
|
114
|
-
const decoder = new TextDecoder();
|
|
115
|
-
let buffer = '';
|
|
116
|
-
try {
|
|
117
|
-
while (true) {
|
|
118
|
-
const { done, value } = await reader.read();
|
|
119
|
-
if (done)
|
|
120
|
-
break;
|
|
121
|
-
buffer += decoder.decode(value, { stream: true });
|
|
122
|
-
const lines = buffer.split('\n');
|
|
123
|
-
buffer = lines.pop() || '';
|
|
124
|
-
for (const line of lines) {
|
|
125
|
-
if (line.startsWith('data: ')) {
|
|
126
|
-
try {
|
|
127
|
-
const data = JSON.parse(line.slice(6));
|
|
128
|
-
events.push(data);
|
|
129
|
-
// Call event callback if provided
|
|
130
|
-
if (onEvent) {
|
|
131
|
-
onEvent(data);
|
|
132
|
-
}
|
|
133
|
-
// Extract final content and run details
|
|
134
|
-
if (data.type === 'response.completed') {
|
|
135
|
-
finalContent = data.response?.content || '';
|
|
136
|
-
}
|
|
137
|
-
else if (data.type === 'stream.completed') {
|
|
138
|
-
runDetails = data.run;
|
|
139
|
-
}
|
|
140
|
-
else if (data.type === 'stream.error') {
|
|
141
|
-
throw new Error(data.message || data.error);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
catch (parseError) {
|
|
145
|
-
// Ignore parse errors for non-JSON lines
|
|
146
|
-
if (line.slice(6).trim()) {
|
|
147
|
-
console.warn('Failed to parse SSE data:', line);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
finally {
|
|
155
|
-
reader.releaseLock();
|
|
156
|
-
}
|
|
157
|
-
return {
|
|
158
|
-
content: finalContent,
|
|
159
|
-
run: runDetails,
|
|
160
|
-
events,
|
|
161
|
-
};
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* Cancel an in-progress message execution
|
|
165
|
-
*/
|
|
166
|
-
async cancel(threadId) {
|
|
167
|
-
await this.client.post(`/threads/${threadId}/cancel`);
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Resume a thread (useful after server restart)
|
|
171
|
-
*/
|
|
172
|
-
async resume(threadId) {
|
|
173
|
-
const response = await this.client.post(`/threads/${threadId}/resume`);
|
|
174
|
-
return response.thread;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
exports.ThreadsResource = ThreadsResource;
|
|
178
|
-
//# sourceMappingURL=ThreadsResource.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadsResource.js","sourceRoot":"","sources":["../../../src/cloud/resources/ThreadsResource.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AA6DH,MAAa,eAAe;IACG;IAA7B,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,MAA0B;QACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACrC,UAAU,EACV,MAAM,CACP,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,SAA4B,EAAE;QAKvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAKnC,UAAU,EAAE;YACb,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,QAAQ,CAAC,QAAQ;YAC1B,KAAK,EAAE,QAAQ,CAAC,WAAW;SAC5B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,QAAgB;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CACpC,YAAY,QAAQ,EAAE,CACvB,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,QAAgB,EAChB,MAA0B;QAE1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACtC,YAAY,QAAQ,EAAE,EACtB,MAAM,CACP,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,QAAgB;QAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB;QAKhC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAMpC,YAAY,QAAQ,WAAW,CAChC,CAAC;QACF,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,OAAO,EAAE,QAAQ,CAAC,QAAQ;YAC1B,KAAK,EAAE,QAAQ,CAAC,WAAW;SAC5B,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,WAAW,CACf,QAAgB,EAChB,OAA2B;QAE3B,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;QAEzD,yBAAyB;QACzB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CACxC,MAAM,EACN,YAAY,QAAQ,WAAW,EAC/B;YACE,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI;YACZ,OAAO;SACR,CACF,CAAC;QAEF,MAAM,MAAM,GAAyB,EAAE,CAAC;QACxC,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,UAAoC,CAAC;QAEzC,mBAAmB;QACnB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI;oBAAE,MAAM;gBAEhB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC9B,IAAI,CAAC;4BACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAuB,CAAC;4BAC7D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BAElB,kCAAkC;4BAClC,IAAI,OAAO,EAAE,CAAC;gCACZ,OAAO,CAAC,IAAI,CAAC,CAAC;4BAChB,CAAC;4BAED,wCAAwC;4BACxC,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gCACvC,YAAY,GAAI,IAAY,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC;4BACvD,CAAC;iCAAM,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gCAC5C,UAAU,GAAI,IAAY,CAAC,GAAG,CAAC;4BACjC,CAAC;iCAAM,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gCACxC,MAAM,IAAI,KAAK,CAAE,IAAY,CAAC,OAAO,IAAK,IAAY,CAAC,KAAK,CAAC,CAAC;4BAChE,CAAC;wBACH,CAAC;wBAAC,OAAO,UAAU,EAAE,CAAC;4BACpB,yCAAyC;4BACzC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;gCACzB,OAAO,CAAC,IAAI,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;4BAClD,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QAED,OAAO;YACL,OAAO,EAAE,YAAY;YACrB,GAAG,EAAE,UAAU;YACf,MAAM;SACP,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,QAAgB;QAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,SAAS,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,QAAgB;QAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACrC,YAAY,QAAQ,SAAS,CAC9B,CAAC;QACF,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;CACF;AAtND,0CAsNC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cloud Resource Managers
|
|
3
|
-
*
|
|
4
|
-
* Export all resource managers for use in CloudClient.
|
|
5
|
-
*/
|
|
6
|
-
export { ProjectsResource } from './ProjectsResource';
|
|
7
|
-
export { EnvironmentsResource } from './EnvironmentsResource';
|
|
8
|
-
export { ThreadsResource } from './ThreadsResource';
|
|
9
|
-
export type { StreamEventCallback, SendMessageOptions, SendMessageResult } from './ThreadsResource';
|
|
10
|
-
export { RunsResource } from './RunsResource';
|
|
11
|
-
export { AgentsResource } from './AgentsResource';
|
|
12
|
-
export { BudgetResource, BillingResource } from './BudgetResource';
|
|
13
|
-
export { SchedulesResource } from './SchedulesResource';
|
|
14
|
-
export { GitResource } from './GitResource';
|
|
15
|
-
export { FilesResource } from './FilesResource';
|
|
16
|
-
export type { EnvironmentFile, ListFilesResult, UploadFileParams, UploadFileResult, MoveFileParams, MoveFileResult, DeleteFileResult, } from './FilesResource';
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Cloud Resource Managers
|
|
4
|
-
*
|
|
5
|
-
* Export all resource managers for use in CloudClient.
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.FilesResource = exports.GitResource = exports.SchedulesResource = exports.BillingResource = exports.BudgetResource = exports.AgentsResource = exports.RunsResource = exports.ThreadsResource = exports.EnvironmentsResource = exports.ProjectsResource = void 0;
|
|
9
|
-
var ProjectsResource_1 = require("./ProjectsResource");
|
|
10
|
-
Object.defineProperty(exports, "ProjectsResource", { enumerable: true, get: function () { return ProjectsResource_1.ProjectsResource; } });
|
|
11
|
-
var EnvironmentsResource_1 = require("./EnvironmentsResource");
|
|
12
|
-
Object.defineProperty(exports, "EnvironmentsResource", { enumerable: true, get: function () { return EnvironmentsResource_1.EnvironmentsResource; } });
|
|
13
|
-
var ThreadsResource_1 = require("./ThreadsResource");
|
|
14
|
-
Object.defineProperty(exports, "ThreadsResource", { enumerable: true, get: function () { return ThreadsResource_1.ThreadsResource; } });
|
|
15
|
-
var RunsResource_1 = require("./RunsResource");
|
|
16
|
-
Object.defineProperty(exports, "RunsResource", { enumerable: true, get: function () { return RunsResource_1.RunsResource; } });
|
|
17
|
-
var AgentsResource_1 = require("./AgentsResource");
|
|
18
|
-
Object.defineProperty(exports, "AgentsResource", { enumerable: true, get: function () { return AgentsResource_1.AgentsResource; } });
|
|
19
|
-
var BudgetResource_1 = require("./BudgetResource");
|
|
20
|
-
Object.defineProperty(exports, "BudgetResource", { enumerable: true, get: function () { return BudgetResource_1.BudgetResource; } });
|
|
21
|
-
Object.defineProperty(exports, "BillingResource", { enumerable: true, get: function () { return BudgetResource_1.BillingResource; } });
|
|
22
|
-
var SchedulesResource_1 = require("./SchedulesResource");
|
|
23
|
-
Object.defineProperty(exports, "SchedulesResource", { enumerable: true, get: function () { return SchedulesResource_1.SchedulesResource; } });
|
|
24
|
-
var GitResource_1 = require("./GitResource");
|
|
25
|
-
Object.defineProperty(exports, "GitResource", { enumerable: true, get: function () { return GitResource_1.GitResource; } });
|
|
26
|
-
var FilesResource_1 = require("./FilesResource");
|
|
27
|
-
Object.defineProperty(exports, "FilesResource", { enumerable: true, get: function () { return FilesResource_1.FilesResource; } });
|
|
28
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cloud/resources/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,+DAA8D;AAArD,4HAAA,oBAAoB,OAAA;AAC7B,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AAExB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AACrB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,mDAAmE;AAA1D,gHAAA,cAAc,OAAA;AAAE,iHAAA,eAAe,OAAA;AACxC,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA"}
|