@getaclaw/agent 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/cli.d.ts +3 -0
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/cli.js +203 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/index.d.ts +9 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +6 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/manage/channels.d.ts +15 -0
  10. package/dist/manage/channels.d.ts.map +1 -0
  11. package/dist/manage/channels.js +34 -0
  12. package/dist/manage/channels.js.map +1 -0
  13. package/dist/manage/config.d.ts +3 -0
  14. package/dist/manage/config.d.ts.map +1 -0
  15. package/dist/manage/config.js +36 -0
  16. package/dist/manage/config.js.map +1 -0
  17. package/dist/manage/devices.d.ts +5 -0
  18. package/dist/manage/devices.d.ts.map +1 -0
  19. package/dist/manage/devices.js +90 -0
  20. package/dist/manage/devices.js.map +1 -0
  21. package/dist/manage/health.d.ts +3 -0
  22. package/dist/manage/health.d.ts.map +1 -0
  23. package/dist/manage/health.js +115 -0
  24. package/dist/manage/health.js.map +1 -0
  25. package/dist/manage/update.d.ts +3 -0
  26. package/dist/manage/update.d.ts.map +1 -0
  27. package/dist/manage/update.js +303 -0
  28. package/dist/manage/update.js.map +1 -0
  29. package/dist/protocol.d.ts +31 -0
  30. package/dist/protocol.d.ts.map +1 -0
  31. package/dist/protocol.js +11 -0
  32. package/dist/protocol.js.map +1 -0
  33. package/dist/server.d.ts +29 -0
  34. package/dist/server.d.ts.map +1 -0
  35. package/dist/server.js +339 -0
  36. package/dist/server.js.map +1 -0
  37. package/dist/setup/orchestrator.d.ts +23 -0
  38. package/dist/setup/orchestrator.d.ts.map +1 -0
  39. package/dist/setup/orchestrator.js +142 -0
  40. package/dist/setup/orchestrator.js.map +1 -0
  41. package/dist/setup/steps/channels.d.ts +3 -0
  42. package/dist/setup/steps/channels.d.ts.map +1 -0
  43. package/dist/setup/steps/channels.js +38 -0
  44. package/dist/setup/steps/channels.js.map +1 -0
  45. package/dist/setup/steps/configure.d.ts +3 -0
  46. package/dist/setup/steps/configure.d.ts.map +1 -0
  47. package/dist/setup/steps/configure.js +65 -0
  48. package/dist/setup/steps/configure.js.map +1 -0
  49. package/dist/setup/steps/health.d.ts +3 -0
  50. package/dist/setup/steps/health.d.ts.map +1 -0
  51. package/dist/setup/steps/health.js +95 -0
  52. package/dist/setup/steps/health.js.map +1 -0
  53. package/dist/setup/steps/openclaw.d.ts +3 -0
  54. package/dist/setup/steps/openclaw.d.ts.map +1 -0
  55. package/dist/setup/steps/openclaw.js +22 -0
  56. package/dist/setup/steps/openclaw.js.map +1 -0
  57. package/dist/setup/steps/service.d.ts +3 -0
  58. package/dist/setup/steps/service.d.ts.map +1 -0
  59. package/dist/setup/steps/service.js +37 -0
  60. package/dist/setup/steps/service.js.map +1 -0
  61. package/dist/setup/steps/system.d.ts +3 -0
  62. package/dist/setup/steps/system.d.ts.map +1 -0
  63. package/dist/setup/steps/system.js +60 -0
  64. package/dist/setup/steps/system.js.map +1 -0
  65. package/dist/setup/steps/tailscale.d.ts +3 -0
  66. package/dist/setup/steps/tailscale.d.ts.map +1 -0
  67. package/dist/setup/steps/tailscale.js +40 -0
  68. package/dist/setup/steps/tailscale.js.map +1 -0
  69. package/dist/setup/types.d.ts +36 -0
  70. package/dist/setup/types.d.ts.map +1 -0
  71. package/dist/setup/types.js +2 -0
  72. package/dist/setup/types.js.map +1 -0
  73. package/dist/utils/crypto.d.ts +11 -0
  74. package/dist/utils/crypto.d.ts.map +1 -0
  75. package/dist/utils/crypto.js +47 -0
  76. package/dist/utils/crypto.js.map +1 -0
  77. package/dist/utils/exec.d.ts +12 -0
  78. package/dist/utils/exec.d.ts.map +1 -0
  79. package/dist/utils/exec.js +99 -0
  80. package/dist/utils/exec.js.map +1 -0
  81. package/dist/utils/logger.d.ts +4 -0
  82. package/dist/utils/logger.d.ts.map +1 -0
  83. package/dist/utils/logger.js +30 -0
  84. package/dist/utils/logger.js.map +1 -0
  85. package/package.json +40 -0
@@ -0,0 +1,303 @@
1
+ import { safeExec, safeExecPipe } from '../utils/exec.js';
2
+ import { logger } from '../utils/logger.js';
3
+ import { getConfig, setConfig } from './config.js';
4
+ import { listChannels, addChannel, removeChannel } from './channels.js';
5
+ import { handleDevicesList, handleDevicesApprove, handleDevicesReject } from './devices.js';
6
+ export async function handleManageAction(msg, sendEvent, configDir) {
7
+ switch (msg.action) {
8
+ case 'manage.update':
9
+ await handleUpdate(msg, sendEvent);
10
+ break;
11
+ case 'manage.agent.update':
12
+ await handleAgentUpdate(msg, sendEvent);
13
+ break;
14
+ case 'manage.config.get':
15
+ await handleConfigGet(msg, sendEvent);
16
+ break;
17
+ case 'manage.config.set':
18
+ await handleConfigSet(msg, sendEvent);
19
+ break;
20
+ case 'manage.restart':
21
+ await handleRestart(msg, sendEvent);
22
+ break;
23
+ case 'manage.channels.list':
24
+ await handleChannelsList(msg, sendEvent);
25
+ break;
26
+ case 'manage.channels.add':
27
+ await handleChannelsAdd(msg, sendEvent);
28
+ break;
29
+ case 'manage.channels.remove':
30
+ await handleChannelsRemove(msg, sendEvent);
31
+ break;
32
+ case 'manage.devices.list':
33
+ await handleDevicesList(msg, sendEvent);
34
+ break;
35
+ case 'manage.devices.approve':
36
+ await handleDevicesApprove(msg, sendEvent);
37
+ break;
38
+ case 'manage.devices.reject':
39
+ await handleDevicesReject(msg, sendEvent);
40
+ break;
41
+ case 'manage.tailscale.status':
42
+ await handleTailscaleStatus(msg, sendEvent);
43
+ break;
44
+ default:
45
+ sendEvent({
46
+ id: msg.id,
47
+ type: 'error',
48
+ status: 'error',
49
+ data: { message: `Unknown manage action: ${msg.action}` },
50
+ });
51
+ }
52
+ }
53
+ async function handleUpdate(msg, sendEvent) {
54
+ sendEvent({ type: 'event', event: 'step.started', payload: { step: 'update', message: 'Updating OpenClaw...' } });
55
+ try {
56
+ await safeExecPipe('npm', ['update', '-g', 'openclaw'], {}, (output) => sendEvent({ type: 'event', event: 'log', payload: { step: 'update', output } }));
57
+ // Get new version
58
+ const versionResult = await safeExec('openclaw', ['--version']);
59
+ const version = versionResult.stdout.trim();
60
+ // Restart the gateway service
61
+ await safeExec('systemctl', ['restart', 'openclaw-gateway']);
62
+ sendEvent({
63
+ type: 'event',
64
+ event: 'step.completed',
65
+ payload: { step: 'update', message: `Updated to ${version}` },
66
+ });
67
+ sendEvent({
68
+ id: msg.id,
69
+ type: 'response',
70
+ action: msg.action,
71
+ status: 'ok',
72
+ data: { version },
73
+ });
74
+ }
75
+ catch (err) {
76
+ const errorMessage = err instanceof Error ? err.message : String(err);
77
+ logger.error('OpenClaw update failed', { error: errorMessage });
78
+ sendEvent({
79
+ id: msg.id,
80
+ type: 'error',
81
+ status: 'error',
82
+ data: { message: `Update failed: ${errorMessage}` },
83
+ });
84
+ }
85
+ }
86
+ async function handleAgentUpdate(msg, sendEvent) {
87
+ sendEvent({ type: 'event', event: 'step.started', payload: { step: 'agent-update', message: 'Updating agent...' } });
88
+ try {
89
+ await safeExecPipe('npm', ['update', '-g', '@getaclaw/agent'], {}, (output) => sendEvent({ type: 'event', event: 'log', payload: { step: 'agent-update', output } }));
90
+ // Restart the agent service
91
+ await safeExec('systemctl', ['restart', 'getaclaw-agent']);
92
+ sendEvent({
93
+ type: 'event',
94
+ event: 'step.completed',
95
+ payload: { step: 'agent-update', message: 'Agent updated, restarting...' },
96
+ });
97
+ sendEvent({
98
+ id: msg.id,
99
+ type: 'response',
100
+ action: msg.action,
101
+ status: 'ok',
102
+ data: { message: 'Agent updated and restarting' },
103
+ });
104
+ }
105
+ catch (err) {
106
+ const errorMessage = err instanceof Error ? err.message : String(err);
107
+ logger.error('Agent update failed', { error: errorMessage });
108
+ sendEvent({
109
+ id: msg.id,
110
+ type: 'error',
111
+ status: 'error',
112
+ data: { message: `Agent update failed: ${errorMessage}` },
113
+ });
114
+ }
115
+ }
116
+ async function handleConfigGet(msg, sendEvent) {
117
+ try {
118
+ const config = await getConfig();
119
+ sendEvent({
120
+ id: msg.id,
121
+ type: 'response',
122
+ action: msg.action,
123
+ status: 'ok',
124
+ data: { config },
125
+ });
126
+ }
127
+ catch (err) {
128
+ const errorMessage = err instanceof Error ? err.message : String(err);
129
+ sendEvent({
130
+ id: msg.id,
131
+ type: 'error',
132
+ status: 'error',
133
+ data: { message: `Failed to read config: ${errorMessage}` },
134
+ });
135
+ }
136
+ }
137
+ async function handleConfigSet(msg, sendEvent) {
138
+ try {
139
+ const updates = msg.params;
140
+ if (!updates) {
141
+ sendEvent({
142
+ id: msg.id,
143
+ type: 'error',
144
+ status: 'error',
145
+ data: { message: 'Missing config updates in params' },
146
+ });
147
+ return;
148
+ }
149
+ await setConfig(updates);
150
+ // Restart gateway to pick up changes
151
+ await safeExec('systemctl', ['restart', 'openclaw-gateway']);
152
+ sendEvent({
153
+ id: msg.id,
154
+ type: 'response',
155
+ action: msg.action,
156
+ status: 'ok',
157
+ data: { message: 'Configuration updated and gateway restarted' },
158
+ });
159
+ }
160
+ catch (err) {
161
+ const errorMessage = err instanceof Error ? err.message : String(err);
162
+ sendEvent({
163
+ id: msg.id,
164
+ type: 'error',
165
+ status: 'error',
166
+ data: { message: `Failed to update config: ${errorMessage}` },
167
+ });
168
+ }
169
+ }
170
+ async function handleRestart(msg, sendEvent) {
171
+ try {
172
+ await safeExec('systemctl', ['restart', 'openclaw-gateway']);
173
+ sendEvent({
174
+ id: msg.id,
175
+ type: 'response',
176
+ action: msg.action,
177
+ status: 'ok',
178
+ data: { message: 'Gateway restarted' },
179
+ });
180
+ }
181
+ catch (err) {
182
+ const errorMessage = err instanceof Error ? err.message : String(err);
183
+ sendEvent({
184
+ id: msg.id,
185
+ type: 'error',
186
+ status: 'error',
187
+ data: { message: `Restart failed: ${errorMessage}` },
188
+ });
189
+ }
190
+ }
191
+ async function handleChannelsList(msg, sendEvent) {
192
+ try {
193
+ const channels = await listChannels();
194
+ sendEvent({
195
+ id: msg.id,
196
+ type: 'response',
197
+ action: msg.action,
198
+ status: 'ok',
199
+ data: { channels },
200
+ });
201
+ }
202
+ catch (err) {
203
+ const errorMessage = err instanceof Error ? err.message : String(err);
204
+ sendEvent({
205
+ id: msg.id,
206
+ type: 'error',
207
+ status: 'error',
208
+ data: { message: errorMessage },
209
+ });
210
+ }
211
+ }
212
+ async function handleChannelsAdd(msg, sendEvent) {
213
+ try {
214
+ const channel = msg.params;
215
+ if (!channel?.type || !channel?.name) {
216
+ sendEvent({
217
+ id: msg.id,
218
+ type: 'error',
219
+ status: 'error',
220
+ data: { message: 'Missing channel type and name in params' },
221
+ });
222
+ return;
223
+ }
224
+ await addChannel(channel);
225
+ // Restart gateway
226
+ await safeExec('systemctl', ['restart', 'openclaw-gateway']);
227
+ sendEvent({
228
+ id: msg.id,
229
+ type: 'response',
230
+ action: msg.action,
231
+ status: 'ok',
232
+ data: { message: `Channel ${channel.name} added` },
233
+ });
234
+ }
235
+ catch (err) {
236
+ const errorMessage = err instanceof Error ? err.message : String(err);
237
+ sendEvent({
238
+ id: msg.id,
239
+ type: 'error',
240
+ status: 'error',
241
+ data: { message: errorMessage },
242
+ });
243
+ }
244
+ }
245
+ async function handleChannelsRemove(msg, sendEvent) {
246
+ try {
247
+ const channelName = msg.params?.name;
248
+ if (!channelName) {
249
+ sendEvent({
250
+ id: msg.id,
251
+ type: 'error',
252
+ status: 'error',
253
+ data: { message: 'Missing channel name in params' },
254
+ });
255
+ return;
256
+ }
257
+ await removeChannel(channelName);
258
+ // Restart gateway
259
+ await safeExec('systemctl', ['restart', 'openclaw-gateway']);
260
+ sendEvent({
261
+ id: msg.id,
262
+ type: 'response',
263
+ action: msg.action,
264
+ status: 'ok',
265
+ data: { message: `Channel ${channelName} removed` },
266
+ });
267
+ }
268
+ catch (err) {
269
+ const errorMessage = err instanceof Error ? err.message : String(err);
270
+ sendEvent({
271
+ id: msg.id,
272
+ type: 'error',
273
+ status: 'error',
274
+ data: { message: errorMessage },
275
+ });
276
+ }
277
+ }
278
+ async function handleTailscaleStatus(msg, sendEvent) {
279
+ try {
280
+ const result = await safeExec('tailscale', ['status', '--json']);
281
+ const status = JSON.parse(result.stdout);
282
+ sendEvent({
283
+ id: msg.id,
284
+ type: 'response',
285
+ action: msg.action,
286
+ status: 'ok',
287
+ data: { tailscale: status },
288
+ });
289
+ }
290
+ catch (err) {
291
+ const errorMessage = err instanceof Error ? err.message : String(err);
292
+ sendEvent({
293
+ id: msg.id,
294
+ type: 'response',
295
+ action: msg.action,
296
+ status: 'ok',
297
+ data: {
298
+ tailscale: { installed: false, error: errorMessage },
299
+ },
300
+ });
301
+ }
302
+ }
303
+ //# sourceMappingURL=update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/manage/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export interface ClientMessage {
2
+ id: string;
3
+ type: 'setup' | 'manage' | 'health';
4
+ action: string;
5
+ params?: Record<string, unknown>;
6
+ token: string;
7
+ }
8
+ export interface AgentMessage {
9
+ id?: string;
10
+ type: 'response' | 'event' | 'error';
11
+ action?: string;
12
+ status?: 'ok' | 'error';
13
+ data?: unknown;
14
+ event?: string;
15
+ payload?: AgentEventPayload;
16
+ }
17
+ export interface AgentEventPayload {
18
+ step?: string;
19
+ progress?: number;
20
+ message?: string;
21
+ output?: string;
22
+ error?: string;
23
+ duration?: number;
24
+ }
25
+ export type SetupAction = 'setup.start' | 'setup.status' | 'setup.retry';
26
+ export type ManageAction = 'manage.update' | 'manage.agent.update' | 'manage.config.get' | 'manage.config.set' | 'manage.restart' | 'manage.channels.list' | 'manage.channels.add' | 'manage.channels.remove' | 'manage.devices.list' | 'manage.devices.approve' | 'manage.devices.reject' | 'manage.tailscale.status';
27
+ export type HealthAction = 'health.check' | 'health.logs';
28
+ export type Action = SetupAction | ManageAction | HealthAction;
29
+ export type SetupEvent = 'step.started' | 'step.progress' | 'step.completed' | 'step.error' | 'setup.completed' | 'log';
30
+ export declare function isValidClientMessage(data: unknown): data is ClientMessage;
31
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,MAAM,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IAGf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,CAAC;AAEzE,MAAM,MAAM,YAAY,GACpB,eAAe,GACf,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,GACnB,gBAAgB,GAChB,sBAAsB,GACtB,qBAAqB,GACrB,wBAAwB,GACxB,qBAAqB,GACrB,wBAAwB,GACxB,uBAAuB,GACvB,yBAAyB,CAAC;AAE9B,MAAM,MAAM,YAAY,GAAG,cAAc,GAAG,aAAa,CAAC;AAE1D,MAAM,MAAM,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;AAG/D,MAAM,MAAM,UAAU,GAClB,cAAc,GACd,eAAe,GACf,gBAAgB,GAChB,YAAY,GACZ,iBAAiB,GACjB,KAAK,CAAC;AAEV,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,aAAa,CAUzE"}
@@ -0,0 +1,11 @@
1
+ export function isValidClientMessage(data) {
2
+ if (typeof data !== 'object' || data === null)
3
+ return false;
4
+ const msg = data;
5
+ return (typeof msg.id === 'string' &&
6
+ typeof msg.type === 'string' &&
7
+ ['setup', 'manage', 'health'].includes(msg.type) &&
8
+ typeof msg.action === 'string' &&
9
+ typeof msg.token === 'string');
10
+ }
11
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AA+DA,MAAM,UAAU,oBAAoB,CAAC,IAAa;IAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,OAAO,CACL,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ;QAC1B,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAC5B,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAc,CAAC;QAC1D,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;QAC9B,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAC9B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,29 @@
1
+ export interface AgentServerConfig {
2
+ port: number;
3
+ certPath: string;
4
+ keyPath: string;
5
+ pairingTokenHash: string;
6
+ configDir: string;
7
+ }
8
+ export declare class AgentServer {
9
+ private httpsServer;
10
+ private wss;
11
+ private config;
12
+ private orchestrator;
13
+ private rateLimits;
14
+ private sessionTokens;
15
+ private authenticatedClients;
16
+ constructor(config: AgentServerConfig);
17
+ start(): Promise<void>;
18
+ stop(): Promise<void>;
19
+ private handleHttpRequest;
20
+ private handleConnection;
21
+ private handleMessage;
22
+ private routeMessage;
23
+ private handleSetupAction;
24
+ autoStartSetup(config: Record<string, unknown>): Promise<Record<string, unknown>>;
25
+ private send;
26
+ private isRateLimited;
27
+ private recordAuthFailure;
28
+ }
29
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAWD,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,oBAAoB,CAAqC;gBAErD,MAAM,EAAE,iBAAiB;IAe/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B,OAAO,CAAC,iBAAiB;IAmCzB,OAAO,CAAC,gBAAgB;YA8CV,aAAa;YA6Db,YAAY;YAiCZ,iBAAiB;IA0FzB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAcvF,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,iBAAiB;CAwB1B"}