@okrlinkhub/fly-agents 0.1.0 → 0.1.2

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 CHANGED
@@ -25,6 +25,7 @@ Required runtime values for OpenClaw provisioning:
25
25
  - `OPENCLAW_SERVICE_ID`
26
26
  - `OPENCLAW_SERVICE_KEY`
27
27
  - `OPENCLAW_GATEWAY_TOKEN`
28
+ - `AGENT_SECRETS_ENCRYPTION_KEY` (required if using stored-secrets APIs)
28
29
 
29
30
  ## Installation
30
31
 
@@ -55,10 +56,23 @@ Main component functions (`components.flyAgents.lib.*`):
55
56
  - `deprovisionAgentMachine`
56
57
  - `touchAgentActivity`
57
58
  - `createAgentSnapshot`
58
- - `sweepIdleAgentsAndSnapshot`
59
59
  - `listAgentMachinesByTenant`
60
60
  - `getAgentMachine`
61
61
  - `updateAllowedSkills`
62
+ - `upsertAgentSecrets`
63
+ - `getAgentSecretsMeta`
64
+ - `clearAgentSecrets`
65
+ - `provisionAgentMachineWithStoredSecrets`
66
+ - `recreateAgentFromLatestSnapshotWithStoredSecrets`
67
+ - `startAgentMachineWithStoredSecrets`
68
+ - `stopAgentMachineWithStoredSecrets`
69
+ - `deprovisionAgentMachineWithStoredSecrets`
70
+ - `createAgentSnapshotWithStoredSecrets`
71
+ - `approveTelegramPairing`
72
+ - `approveTelegramPairingWithStoredSecrets`
73
+
74
+ Agent secrets are stored in component table `agentVmSecrets` and encrypted
75
+ at rest using `AGENT_SECRETS_ENCRYPTION_KEY`.
62
76
 
63
77
  ## Example
64
78
 
@@ -104,6 +118,16 @@ When the user sends a Telegram pairing code, approve it on the target machine:
104
118
  fly ssh console -a "<fly-app-name>" --machine "<machine-id>" -C "sh -lc 'cd /app && node ./openclaw.mjs pairing approve telegram <PAIRING_CODE>'"
105
119
  ```
106
120
 
121
+ Or via component action:
122
+
123
+ ```ts
124
+ await ctx.runAction(components.flyAgents.lib.approveTelegramPairingWithStoredSecrets, {
125
+ machineDocId,
126
+ flyAppName: "your-fly-app",
127
+ telegramPairingCode: "<PAIRING_CODE>",
128
+ });
129
+ ```
130
+
107
131
  Notes:
108
132
 
109
133
  - Use `node ./openclaw.mjs ...` (the `openclaw` binary may not be in `PATH`).
@@ -166,33 +190,20 @@ Current hardened image behavior:
166
190
  - Uses TCP readiness checks with `grace_period=240s` to reduce false positives
167
191
  (`VM started` while gateway is still booting).
168
192
 
169
- ## Idle Backup + Recreate flow
170
-
171
- To reduce active-machine costs while preserving state, the component supports:
193
+ ## Lifecycle model
172
194
 
173
- 1. heartbeat activity update (`touchAgentActivity`);
174
- 2. idle sweep after 30m (`sweepIdleAgentsAndSnapshot`);
175
- 3. snapshot metadata persisted in Convex (`agentSnapshots`);
176
- 4. recreate from latest snapshot (`recreateAgentFromLatestSnapshot`).
195
+ The component does not perform automatic idle shutdowns. Machines stay active
196
+ until an explicit lifecycle action is called.
177
197
 
178
- ### Recommended operational sequence
179
-
180
- ```sh
181
- # 1) Update activity when agent receives traffic
182
- components.flyAgents.lib.touchAgentActivity
183
-
184
- # 2) Run periodic sweeper (every 5 minutes)
185
- components.flyAgents.lib.sweepIdleAgentsAndSnapshot
186
-
187
- # 3) When same agent returns, recreate from latest snapshot
188
- components.flyAgents.lib.recreateAgentFromLatestSnapshot
189
- ```
198
+ Use manual actions when needed:
190
199
 
191
- ### Idle sweep defaults
200
+ - `startAgentMachine` / `startAgentMachineWithStoredSecrets`
201
+ - `stopAgentMachine` / `stopAgentMachineWithStoredSecrets`
202
+ - `deprovisionAgentMachine` / `deprovisionAgentMachineWithStoredSecrets`
192
203
 
193
- - inactivity threshold: `30` minutes (configurable per call via `idleMinutes`);
194
- - pre-stop backup: `openclaw-state-plus-manifest`;
195
- - safe rollout option: `dryRun=true` to inspect candidates without stopping.
204
+ Snapshots remain available as explicit operations (`createAgentSnapshot`,
205
+ `recreateAgentFromLatestSnapshot`) and are not tied to an automatic idle
206
+ sweeper.
196
207
 
197
208
  ### Gateway auth requirement (critical)
198
209
 
@@ -34,7 +34,11 @@ export declare function exposeApi(component: ComponentApi, options: {
34
34
  type: "snapshot";
35
35
  machineDocId: string;
36
36
  } | {
37
- type: "sweep";
37
+ type: "pairTelegram";
38
+ machineDocId: string;
39
+ } | {
40
+ type: "secrets";
41
+ tenantId: string;
38
42
  }) => Promise<string>;
39
43
  }): {
40
44
  listAgentMachinesByTenant: import("convex/server").RegisteredQuery<"public", {
@@ -87,6 +91,23 @@ export declare function exposeApi(component: ComponentApi, options: {
87
91
  machineDocId: string;
88
92
  allowedSkills: string[];
89
93
  }, Promise<null>>;
94
+ getAgentSecretsMeta: import("convex/server").RegisteredQuery<"public", {
95
+ tenantId: string;
96
+ userId: string;
97
+ }, Promise<any>>;
98
+ upsertAgentSecrets: import("convex/server").RegisteredMutation<"public", {
99
+ flyApiToken?: string | undefined;
100
+ llmApiKey?: string | undefined;
101
+ openaiApiKey?: string | undefined;
102
+ openclawGatewayToken?: string | undefined;
103
+ telegramBotToken?: string | undefined;
104
+ tenantId: string;
105
+ userId: string;
106
+ }, Promise<any>>;
107
+ clearAgentSecrets: import("convex/server").RegisteredMutation<"public", {
108
+ tenantId: string;
109
+ userId: string;
110
+ }, Promise<any>>;
90
111
  touchAgentActivity: import("convex/server").RegisteredMutation<"public", {
91
112
  machineDocId: string;
92
113
  }, Promise<any>>;
@@ -107,13 +128,29 @@ export declare function exposeApi(component: ComponentApi, options: {
107
128
  flyApiToken: string;
108
129
  flyAppName: string;
109
130
  tenantId: string;
110
- openclawGatewayToken: string;
111
131
  userId: string;
132
+ openclawGatewayToken: string;
112
133
  }, Promise<{
113
134
  machineDocId: string;
114
135
  machineId: string;
115
136
  volumeId: string;
116
137
  }>>;
138
+ provisionAgentMachineWithStoredSecrets: import("convex/server").RegisteredAction<"public", {
139
+ allowedSkills?: string[] | undefined;
140
+ allowedSkillsJson?: string | undefined;
141
+ appKey?: string | undefined;
142
+ bridgeUrl?: string | undefined;
143
+ image?: string | undefined;
144
+ llmModel?: string | undefined;
145
+ memoryMB?: number | undefined;
146
+ region?: string | undefined;
147
+ restoreFromLatestSnapshot?: boolean | undefined;
148
+ serviceId?: string | undefined;
149
+ serviceKey?: string | undefined;
150
+ flyAppName: string;
151
+ tenantId: string;
152
+ userId: string;
153
+ }, Promise<any>>;
117
154
  recreateAgentFromLatestSnapshot: import("convex/server").RegisteredAction<"public", {
118
155
  allowedSkills?: string[] | undefined;
119
156
  allowedSkillsJson?: string | undefined;
@@ -130,7 +167,22 @@ export declare function exposeApi(component: ComponentApi, options: {
130
167
  flyApiToken: string;
131
168
  flyAppName: string;
132
169
  tenantId: string;
170
+ userId: string;
133
171
  openclawGatewayToken: string;
172
+ }, Promise<any>>;
173
+ recreateAgentFromLatestSnapshotWithStoredSecrets: import("convex/server").RegisteredAction<"public", {
174
+ allowedSkills?: string[] | undefined;
175
+ allowedSkillsJson?: string | undefined;
176
+ appKey?: string | undefined;
177
+ bridgeUrl?: string | undefined;
178
+ image?: string | undefined;
179
+ llmModel?: string | undefined;
180
+ memoryMB?: number | undefined;
181
+ region?: string | undefined;
182
+ serviceId?: string | undefined;
183
+ serviceKey?: string | undefined;
184
+ flyAppName: string;
185
+ tenantId: string;
134
186
  userId: string;
135
187
  }, Promise<any>>;
136
188
  createAgentSnapshot: import("convex/server").RegisteredAction<"public", {
@@ -138,27 +190,47 @@ export declare function exposeApi(component: ComponentApi, options: {
138
190
  flyAppName: string;
139
191
  machineDocId: string;
140
192
  }, Promise<any>>;
141
- sweepIdleAgentsAndSnapshot: import("convex/server").RegisteredAction<"public", {
142
- dryRun?: boolean | undefined;
143
- idleMinutes?: number | undefined;
144
- limit?: number | undefined;
145
- flyApiToken: string;
193
+ createAgentSnapshotWithStoredSecrets: import("convex/server").RegisteredAction<"public", {
146
194
  flyAppName: string;
195
+ machineDocId: string;
147
196
  }, Promise<any>>;
148
197
  startAgentMachine: import("convex/server").RegisteredAction<"public", {
149
198
  flyApiToken: string;
150
199
  flyAppName: string;
151
200
  machineDocId: string;
152
201
  }, Promise<null>>;
202
+ startAgentMachineWithStoredSecrets: import("convex/server").RegisteredAction<"public", {
203
+ flyAppName: string;
204
+ machineDocId: string;
205
+ }, Promise<any>>;
153
206
  stopAgentMachine: import("convex/server").RegisteredAction<"public", {
154
207
  flyApiToken: string;
155
208
  flyAppName: string;
156
209
  machineDocId: string;
157
210
  }, Promise<null>>;
211
+ stopAgentMachineWithStoredSecrets: import("convex/server").RegisteredAction<"public", {
212
+ flyAppName: string;
213
+ machineDocId: string;
214
+ }, Promise<any>>;
158
215
  deprovisionAgentMachine: import("convex/server").RegisteredAction<"public", {
159
216
  flyApiToken: string;
160
217
  flyAppName: string;
161
218
  machineDocId: string;
162
219
  }, Promise<null>>;
220
+ deprovisionAgentMachineWithStoredSecrets: import("convex/server").RegisteredAction<"public", {
221
+ flyAppName: string;
222
+ machineDocId: string;
223
+ }, Promise<any>>;
224
+ approveTelegramPairing: import("convex/server").RegisteredAction<"public", {
225
+ flyApiToken: string;
226
+ flyAppName: string;
227
+ machineDocId: string;
228
+ telegramPairingCode: string;
229
+ }, Promise<any>>;
230
+ approveTelegramPairingWithStoredSecrets: import("convex/server").RegisteredAction<"public", {
231
+ flyAppName: string;
232
+ machineDocId: string;
233
+ telegramPairingCode: string;
234
+ }, Promise<any>>;
163
235
  };
164
236
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEzE,wBAAgB,SAAS,CACvB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE;IACP,IAAI,EAAE,CACJ,GAAG,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,EACnB,SAAS,EACL;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAClC;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GACrC;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAC9C;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GACvC;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GACtC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GACvC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GACtC;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAC7C;QAAE,IAAI,EAAE,eAAe,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAC/C;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAC1C;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,KAClB,OAAO,CAAC,MAAM,CAAC,CAAC;CACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyLF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEzE,wBAAgB,SAAS,CACvB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE;IACP,IAAI,EAAE,CACJ,GAAG,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,EACnB,SAAS,EACL;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAClC;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GACrC;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAC9C;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GACvC;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GACtC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GACvC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GACtC;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAC7C;QAAE,IAAI,EAAE,eAAe,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAC/C;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAC1C;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAC9C;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,KACtC,OAAO,CAAC,MAAM,CAAC,CAAC;CACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyWF"}
@@ -36,6 +36,50 @@ export function exposeApi(component, options) {
36
36
  });
37
37
  },
38
38
  }),
39
+ getAgentSecretsMeta: queryGeneric({
40
+ args: {
41
+ tenantId: v.string(),
42
+ userId: v.string(),
43
+ },
44
+ handler: async (ctx, args) => {
45
+ await options.auth(ctx, {
46
+ type: "secrets",
47
+ tenantId: args.tenantId,
48
+ });
49
+ return await ctx.runQuery(component.lib.getAgentSecretsMeta, args);
50
+ },
51
+ }),
52
+ upsertAgentSecrets: mutationGeneric({
53
+ args: {
54
+ tenantId: v.string(),
55
+ userId: v.string(),
56
+ flyApiToken: v.optional(v.string()),
57
+ llmApiKey: v.optional(v.string()),
58
+ openaiApiKey: v.optional(v.string()),
59
+ telegramBotToken: v.optional(v.string()),
60
+ openclawGatewayToken: v.optional(v.string()),
61
+ },
62
+ handler: async (ctx, args) => {
63
+ await options.auth(ctx, {
64
+ type: "secrets",
65
+ tenantId: args.tenantId,
66
+ });
67
+ return await ctx.runMutation(component.lib.upsertAgentSecrets, args);
68
+ },
69
+ }),
70
+ clearAgentSecrets: mutationGeneric({
71
+ args: {
72
+ tenantId: v.string(),
73
+ userId: v.string(),
74
+ },
75
+ handler: async (ctx, args) => {
76
+ await options.auth(ctx, {
77
+ type: "secrets",
78
+ tenantId: args.tenantId,
79
+ });
80
+ return await ctx.runMutation(component.lib.clearAgentSecrets, args);
81
+ },
82
+ }),
39
83
  touchAgentActivity: mutationGeneric({
40
84
  args: {
41
85
  machineDocId: v.string(),
@@ -79,6 +123,31 @@ export function exposeApi(component, options) {
79
123
  return await ctx.runAction(component.lib.provisionAgentMachine, args);
80
124
  },
81
125
  }),
126
+ provisionAgentMachineWithStoredSecrets: actionGeneric({
127
+ args: {
128
+ userId: v.string(),
129
+ tenantId: v.string(),
130
+ flyAppName: v.string(),
131
+ image: v.optional(v.string()),
132
+ region: v.optional(v.string()),
133
+ memoryMB: v.optional(v.number()),
134
+ bridgeUrl: v.optional(v.string()),
135
+ llmModel: v.optional(v.string()),
136
+ serviceId: v.optional(v.string()),
137
+ serviceKey: v.optional(v.string()),
138
+ appKey: v.optional(v.string()),
139
+ allowedSkillsJson: v.optional(v.string()),
140
+ allowedSkills: v.optional(v.array(v.string())),
141
+ restoreFromLatestSnapshot: v.optional(v.boolean()),
142
+ },
143
+ handler: async (ctx, args) => {
144
+ await options.auth(ctx, {
145
+ type: "provision",
146
+ tenantId: args.tenantId,
147
+ });
148
+ return await ctx.runAction(component.lib.provisionAgentMachineWithStoredSecrets, args);
149
+ },
150
+ }),
82
151
  recreateAgentFromLatestSnapshot: actionGeneric({
83
152
  args: {
84
153
  userId: v.string(),
@@ -107,6 +176,30 @@ export function exposeApi(component, options) {
107
176
  return await ctx.runAction(component.lib.recreateAgentFromLatestSnapshot, args);
108
177
  },
109
178
  }),
179
+ recreateAgentFromLatestSnapshotWithStoredSecrets: actionGeneric({
180
+ args: {
181
+ userId: v.string(),
182
+ tenantId: v.string(),
183
+ flyAppName: v.string(),
184
+ image: v.optional(v.string()),
185
+ region: v.optional(v.string()),
186
+ memoryMB: v.optional(v.number()),
187
+ bridgeUrl: v.optional(v.string()),
188
+ llmModel: v.optional(v.string()),
189
+ serviceId: v.optional(v.string()),
190
+ serviceKey: v.optional(v.string()),
191
+ appKey: v.optional(v.string()),
192
+ allowedSkillsJson: v.optional(v.string()),
193
+ allowedSkills: v.optional(v.array(v.string())),
194
+ },
195
+ handler: async (ctx, args) => {
196
+ await options.auth(ctx, {
197
+ type: "recreate",
198
+ tenantId: args.tenantId,
199
+ });
200
+ return await ctx.runAction(component.lib.recreateAgentFromLatestSnapshotWithStoredSecrets, args);
201
+ },
202
+ }),
110
203
  createAgentSnapshot: actionGeneric({
111
204
  args: {
112
205
  machineDocId: v.string(),
@@ -122,17 +215,17 @@ export function exposeApi(component, options) {
122
215
  });
123
216
  },
124
217
  }),
125
- sweepIdleAgentsAndSnapshot: actionGeneric({
218
+ createAgentSnapshotWithStoredSecrets: actionGeneric({
126
219
  args: {
127
- flyApiToken: v.string(),
220
+ machineDocId: v.string(),
128
221
  flyAppName: v.string(),
129
- idleMinutes: v.optional(v.number()),
130
- limit: v.optional(v.number()),
131
- dryRun: v.optional(v.boolean()),
132
222
  },
133
223
  handler: async (ctx, args) => {
134
- await options.auth(ctx, { type: "sweep" });
135
- return await ctx.runAction(component.lib.sweepIdleAgentsAndSnapshot, args);
224
+ await options.auth(ctx, { type: "snapshot", machineDocId: args.machineDocId });
225
+ return await ctx.runAction(component.lib.createAgentSnapshotWithStoredSecrets, {
226
+ machineDocId: args.machineDocId,
227
+ flyAppName: args.flyAppName,
228
+ });
136
229
  },
137
230
  }),
138
231
  startAgentMachine: actionGeneric({
@@ -150,6 +243,19 @@ export function exposeApi(component, options) {
150
243
  });
151
244
  },
152
245
  }),
246
+ startAgentMachineWithStoredSecrets: actionGeneric({
247
+ args: {
248
+ machineDocId: v.string(),
249
+ flyAppName: v.string(),
250
+ },
251
+ handler: async (ctx, args) => {
252
+ await options.auth(ctx, { type: "start", machineDocId: args.machineDocId });
253
+ return await ctx.runAction(component.lib.startAgentMachineWithStoredSecrets, {
254
+ machineDocId: args.machineDocId,
255
+ flyAppName: args.flyAppName,
256
+ });
257
+ },
258
+ }),
153
259
  stopAgentMachine: actionGeneric({
154
260
  args: {
155
261
  machineDocId: v.string(),
@@ -165,6 +271,19 @@ export function exposeApi(component, options) {
165
271
  });
166
272
  },
167
273
  }),
274
+ stopAgentMachineWithStoredSecrets: actionGeneric({
275
+ args: {
276
+ machineDocId: v.string(),
277
+ flyAppName: v.string(),
278
+ },
279
+ handler: async (ctx, args) => {
280
+ await options.auth(ctx, { type: "stop", machineDocId: args.machineDocId });
281
+ return await ctx.runAction(component.lib.stopAgentMachineWithStoredSecrets, {
282
+ machineDocId: args.machineDocId,
283
+ flyAppName: args.flyAppName,
284
+ });
285
+ },
286
+ }),
168
287
  deprovisionAgentMachine: actionGeneric({
169
288
  args: {
170
289
  machineDocId: v.string(),
@@ -183,6 +302,60 @@ export function exposeApi(component, options) {
183
302
  });
184
303
  },
185
304
  }),
305
+ deprovisionAgentMachineWithStoredSecrets: actionGeneric({
306
+ args: {
307
+ machineDocId: v.string(),
308
+ flyAppName: v.string(),
309
+ },
310
+ handler: async (ctx, args) => {
311
+ await options.auth(ctx, {
312
+ type: "deprovision",
313
+ machineDocId: args.machineDocId,
314
+ });
315
+ return await ctx.runAction(component.lib.deprovisionAgentMachineWithStoredSecrets, {
316
+ machineDocId: args.machineDocId,
317
+ flyAppName: args.flyAppName,
318
+ });
319
+ },
320
+ }),
321
+ approveTelegramPairing: actionGeneric({
322
+ args: {
323
+ machineDocId: v.string(),
324
+ flyApiToken: v.string(),
325
+ flyAppName: v.string(),
326
+ telegramPairingCode: v.string(),
327
+ },
328
+ handler: async (ctx, args) => {
329
+ await options.auth(ctx, {
330
+ type: "pairTelegram",
331
+ machineDocId: args.machineDocId,
332
+ });
333
+ return await ctx.runAction(component.lib.approveTelegramPairing, {
334
+ machineDocId: args.machineDocId,
335
+ flyApiToken: args.flyApiToken,
336
+ flyAppName: args.flyAppName,
337
+ telegramPairingCode: args.telegramPairingCode,
338
+ });
339
+ },
340
+ }),
341
+ approveTelegramPairingWithStoredSecrets: actionGeneric({
342
+ args: {
343
+ machineDocId: v.string(),
344
+ flyAppName: v.string(),
345
+ telegramPairingCode: v.string(),
346
+ },
347
+ handler: async (ctx, args) => {
348
+ await options.auth(ctx, {
349
+ type: "pairTelegram",
350
+ machineDocId: args.machineDocId,
351
+ });
352
+ return await ctx.runAction(component.lib.approveTelegramPairingWithStoredSecrets, {
353
+ machineDocId: args.machineDocId,
354
+ flyAppName: args.flyAppName,
355
+ telegramPairingCode: args.telegramPairingCode,
356
+ });
357
+ },
358
+ }),
186
359
  };
187
360
  }
188
361
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,eAAe,EACf,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAGlC,MAAM,UAAU,SAAS,CACvB,SAAuB,EACvB,OAiBC;IAED,OAAO;QACL,yBAAyB,EAAE,YAAY,CAAC;YACtC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;YAC9B,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACnE,OAAO,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,yBAAyB,EAAE;oBACjE,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QACF,eAAe,EAAE,YAAY,CAAC;YAC5B,IAAI,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;YAClC,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC1E,OAAO,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,EAAE;oBACvD,YAAY,EAAE,IAAI,CAAC,YAAqB;iBACzC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QACF,mBAAmB,EAAE,eAAe,CAAC;YACnC,IAAI,EAAE;gBACJ,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;gBACxB,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACnC;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;oBACtB,IAAI,EAAE,cAAc;oBACpB,YAAY,EAAE,IAAI,CAAC,YAAY;iBAChC,CAAC,CAAC;gBACH,OAAO,MAAM,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,EAAE;oBAC9D,YAAY,EAAE,IAAI,CAAC,YAAqB;oBACxC,aAAa,EAAE,IAAI,CAAC,aAAa;iBAClC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QACF,mBAAmB,EAAE,YAAY,CAAC;YAChC,IAAI,EAAE;gBACJ,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;aACnB;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;oBACtB,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;gBACH,OAAO,MAAM,GAAG,CAAC,QAAQ,CAAE,SAAS,CAAC,GAAW,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;YAC9E,CAAC;SACF,CAAC;QACF,kBAAkB,EAAE,eAAe,CAAC;YAClC,IAAI,EAAE;gBACJ,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;gBAClB,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACnC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjC,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACpC,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACxC,oBAAoB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aAC7C;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;oBACtB,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;gBACH,OAAO,MAAM,GAAG,CAAC,WAAW,CAAE,SAAS,CAAC,GAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;YAChF,CAAC;SACF,CAAC;QACF,iBAAiB,EAAE,eAAe,CAAC;YACjC,IAAI,EAAE;gBACJ,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;aACnB;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;oBACtB,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;gBACH,OAAO,MAAM,GAAG,CAAC,WAAW,CAAE,SAAS,CAAC,GAAW,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YAC/E,CAAC;SACF,CAAC;QACF,kBAAkB,EAAE,eAAe,CAAC;YAClC,IAAI,EAAE;gBACJ,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;aACzB;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;oBACtB,IAAI,EAAE,eAAe;oBACrB,YAAY,EAAE,IAAI,CAAC,YAAY;iBAChC,CAAC,CAAC;gBACH,OAAO,MAAM,GAAG,CAAC,WAAW,CAAE,SAAS,CAAC,GAAW,CAAC,kBAAkB,EAAE;oBACtE,YAAY,EAAE,IAAI,CAAC,YAAqB;iBACzC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QACF,qBAAqB,EAAE,aAAa,CAAC;YACnC,IAAI,EAAE;gBACJ,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;gBAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;gBACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;gBACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;gBACtB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAChC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAChC,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACxC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC9B,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE;gBAChC,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACzC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC9C,yBAAyB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;aACnD;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;oBACtB,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;gBACH,OAAO,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;YACxE,CAAC;SACF,CAAC;QACF,sCAAsC,EAAE,aAAa,CAAC;YACpD,IAAI,EAAE;gBACJ,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;gBAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;gBACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;gBACtB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAChC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAChC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC9B,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACzC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC9C,yBAAyB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;aACnD;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;oBACtB,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;gBACH,OAAO,MAAM,GAAG,CAAC,SAAS,CAAE,SAAS,CAAC,GAAW,CAAC,sCAAsC,EAAE,IAAI,CAAC,CAAC;YAClG,CAAC;SACF,CAAC;QACF,+BAA+B,EAAE,aAAa,CAAC;YAC7C,IAAI,EAAE;gBACJ,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;gBAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;gBACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;gBACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;gBACtB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAChC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAChC,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACxC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC9B,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE;gBAChC,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACzC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;aAC/C;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;oBACtB,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;gBACH,OAAO,MAAM,GAAG,CAAC,SAAS,CAAE,SAAS,CAAC,GAAW,CAAC,+BAA+B,EAAE,IAAI,CAAC,CAAC;YAC3F,CAAC;SACF,CAAC;QACF,gDAAgD,EAAE,aAAa,CAAC;YAC9D,IAAI,EAAE;gBACJ,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;gBAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;gBACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;gBACtB,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAChC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAChC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBAC9B,iBAAiB,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACzC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;aAC/C;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;oBACtB,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;gBACH,OAAO,MAAM,GAAG,CAAC,SAAS,CACvB,SAAS,CAAC,GAAW,CAAC,gDAAgD,EACvE,IAAI,CACL,CAAC;YACJ,CAAC;SACF,CAAC;QACF,mBAAmB,EAAE,aAAa,CAAC;YACjC,IAAI,EAAE;gBACJ,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;gBACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;gBACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;aACvB;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC/E,OAAO,MAAM,GAAG,CAAC,SAAS,CAAE,SAAS,CAAC,GAAW,CAAC,mBAAmB,EAAE;oBACrE,YAAY,EAAE,IAAI,CAAC,YAAqB;oBACxC,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC5B,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QACF,oCAAoC,EAAE,aAAa,CAAC;YAClD,IAAI,EAAE;gBACJ,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;gBACxB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;aACvB;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC/E,OAAO,MAAM,GAAG,CAAC,SAAS,CAAE,SAAS,CAAC,GAAW,CAAC,oCAAoC,EAAE;oBACtF,YAAY,EAAE,IAAI,CAAC,YAAqB;oBACxC,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC5B,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QACF,iBAAiB,EAAE,aAAa,CAAC;YAC/B,IAAI,EAAE;gBACJ,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;gBACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;gBACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;aACvB;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC5E,OAAO,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,EAAE;oBAC1D,YAAY,EAAE,IAAI,CAAC,YAAqB;oBACxC,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC5B,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QACF,kCAAkC,EAAE,aAAa,CAAC;YAChD,IAAI,EAAE;gBACJ,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;gBACxB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;aACvB;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC5E,OAAO,MAAM,GAAG,CAAC,SAAS,CAAE,SAAS,CAAC,GAAW,CAAC,kCAAkC,EAAE;oBACpF,YAAY,EAAE,IAAI,CAAC,YAAqB;oBACxC,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC5B,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QACF,gBAAgB,EAAE,aAAa,CAAC;YAC9B,IAAI,EAAE;gBACJ,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;gBACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;gBACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;aACvB;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC3E,OAAO,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,EAAE;oBACzD,YAAY,EAAE,IAAI,CAAC,YAAqB;oBACxC,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC5B,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QACF,iCAAiC,EAAE,aAAa,CAAC;YAC/C,IAAI,EAAE;gBACJ,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;gBACxB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;aACvB;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC3E,OAAO,MAAM,GAAG,CAAC,SAAS,CAAE,SAAS,CAAC,GAAW,CAAC,iCAAiC,EAAE;oBACnF,YAAY,EAAE,IAAI,CAAC,YAAqB;oBACxC,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC5B,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QACF,uBAAuB,EAAE,aAAa,CAAC;YACrC,IAAI,EAAE;gBACJ,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;gBACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;gBACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;aACvB;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;oBACtB,IAAI,EAAE,aAAa;oBACnB,YAAY,EAAE,IAAI,CAAC,YAAY;iBAChC,CAAC,CAAC;gBACH,OAAO,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,EAAE;oBAChE,YAAY,EAAE,IAAI,CAAC,YAAqB;oBACxC,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC5B,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QACF,wCAAwC,EAAE,aAAa,CAAC;YACtD,IAAI,EAAE;gBACJ,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;gBACxB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;aACvB;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;oBACtB,IAAI,EAAE,aAAa;oBACnB,YAAY,EAAE,IAAI,CAAC,YAAY;iBAChC,CAAC,CAAC;gBACH,OAAO,MAAM,GAAG,CAAC,SAAS,CAAE,SAAS,CAAC,GAAW,CAAC,wCAAwC,EAAE;oBAC1F,YAAY,EAAE,IAAI,CAAC,YAAqB;oBACxC,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC5B,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QACF,sBAAsB,EAAE,aAAa,CAAC;YACpC,IAAI,EAAE;gBACJ,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;gBACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;gBACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;gBACtB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;aAChC;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;oBACtB,IAAI,EAAE,cAAc;oBACpB,YAAY,EAAE,IAAI,CAAC,YAAY;iBAChC,CAAC,CAAC;gBACH,OAAO,MAAM,GAAG,CAAC,SAAS,CAAE,SAAS,CAAC,GAAW,CAAC,sBAAsB,EAAE;oBACxE,YAAY,EAAE,IAAI,CAAC,YAAqB;oBACxC,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;iBAC9C,CAAC,CAAC;YACL,CAAC;SACF,CAAC;QACF,uCAAuC,EAAE,aAAa,CAAC;YACrD,IAAI,EAAE;gBACJ,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;gBACxB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;gBACtB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;aAChC;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAC3B,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;oBACtB,IAAI,EAAE,cAAc;oBACpB,YAAY,EAAE,IAAI,CAAC,YAAY;iBAChC,CAAC,CAAC;gBACH,OAAO,MAAM,GAAG,CAAC,SAAS,CAAE,SAAS,CAAC,GAAW,CAAC,uCAAuC,EAAE;oBACzF,YAAY,EAAE,IAAI,CAAC,YAAqB;oBACxC,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;iBAC9C,CAAC,CAAC;YACL,CAAC;SACF,CAAC;KACH,CAAC;AACJ,CAAC"}