flaio-cli 1.1.2 → 1.1.3-beta.0

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 (34) hide show
  1. package/dist/agents/agent-detector.d.ts.map +1 -1
  2. package/dist/agents/agent-detector.js +9 -0
  3. package/dist/agents/agent-detector.js.map +1 -1
  4. package/dist/analytics/crash-recovery.d.ts +7 -0
  5. package/dist/analytics/crash-recovery.d.ts.map +1 -0
  6. package/dist/analytics/crash-recovery.js +79 -0
  7. package/dist/analytics/crash-recovery.js.map +1 -0
  8. package/dist/analytics/index.d.ts +1 -0
  9. package/dist/analytics/index.d.ts.map +1 -1
  10. package/dist/analytics/index.js +7 -2
  11. package/dist/analytics/index.js.map +1 -1
  12. package/dist/analytics/resource-monitor.d.ts.map +1 -1
  13. package/dist/analytics/resource-monitor.js +18 -0
  14. package/dist/analytics/resource-monitor.js.map +1 -1
  15. package/dist/analytics/sentry.d.ts +2 -0
  16. package/dist/analytics/sentry.d.ts.map +1 -1
  17. package/dist/analytics/sentry.js +29 -13
  18. package/dist/analytics/sentry.js.map +1 -1
  19. package/dist/cli.js +4 -1
  20. package/dist/cli.js.map +1 -1
  21. package/dist/config/config.d.ts +25 -313
  22. package/dist/config/config.d.ts.map +1 -1
  23. package/dist/config/config.js +15 -17
  24. package/dist/config/config.js.map +1 -1
  25. package/dist/relay/relay-client.d.ts +1 -0
  26. package/dist/relay/relay-client.d.ts.map +1 -1
  27. package/dist/relay/relay-client.js +24 -1
  28. package/dist/relay/relay-client.js.map +1 -1
  29. package/dist/relay/relay-message-schemas.d.ts +29 -325
  30. package/dist/relay/relay-message-schemas.d.ts.map +1 -1
  31. package/dist/relay/worktree-manager.d.ts.map +1 -1
  32. package/dist/relay/worktree-manager.js +4 -0
  33. package/dist/relay/worktree-manager.js.map +1 -1
  34. package/package.json +16 -16
@@ -6,114 +6,45 @@ declare const SlackConfigSchema: z.ZodObject<{
6
6
  channelId: z.ZodOptional<z.ZodString>;
7
7
  pollInterval: z.ZodDefault<z.ZodNumber>;
8
8
  timeout: z.ZodDefault<z.ZodNumber>;
9
- }, "strip", z.ZodTypeAny, {
10
- enabled: boolean;
11
- pollInterval: number;
12
- timeout: number;
13
- botToken?: string | undefined;
14
- appToken?: string | undefined;
15
- channelId?: string | undefined;
16
- }, {
17
- enabled?: boolean | undefined;
18
- botToken?: string | undefined;
19
- appToken?: string | undefined;
20
- channelId?: string | undefined;
21
- pollInterval?: number | undefined;
22
- timeout?: number | undefined;
23
- }>;
9
+ }, z.core.$strip>;
24
10
  declare const DiscordConfigSchema: z.ZodObject<{
25
11
  enabled: z.ZodDefault<z.ZodBoolean>;
26
12
  botToken: z.ZodOptional<z.ZodString>;
27
13
  channelId: z.ZodOptional<z.ZodString>;
28
14
  timeout: z.ZodDefault<z.ZodNumber>;
29
- }, "strip", z.ZodTypeAny, {
30
- enabled: boolean;
31
- timeout: number;
32
- botToken?: string | undefined;
33
- channelId?: string | undefined;
34
- }, {
35
- enabled?: boolean | undefined;
36
- botToken?: string | undefined;
37
- channelId?: string | undefined;
38
- timeout?: number | undefined;
39
- }>;
15
+ }, z.core.$strip>;
40
16
  declare const TelegramConfigSchema: z.ZodObject<{
41
17
  enabled: z.ZodDefault<z.ZodBoolean>;
42
18
  botToken: z.ZodOptional<z.ZodString>;
43
- chatId: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
19
+ chatId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
44
20
  timeout: z.ZodDefault<z.ZodNumber>;
45
- }, "strip", z.ZodTypeAny, {
46
- enabled: boolean;
47
- timeout: number;
48
- botToken?: string | undefined;
49
- chatId?: string | number | undefined;
50
- }, {
51
- enabled?: boolean | undefined;
52
- botToken?: string | undefined;
53
- timeout?: number | undefined;
54
- chatId?: string | number | undefined;
55
- }>;
21
+ }, z.core.$strip>;
56
22
  declare const RelayConfigSchema: z.ZodObject<{
57
23
  enabled: z.ZodDefault<z.ZodBoolean>;
58
24
  authToken: z.ZodOptional<z.ZodString>;
59
25
  refreshToken: z.ZodOptional<z.ZodString>;
60
26
  autoConnect: z.ZodDefault<z.ZodBoolean>;
61
- defaultShareMode: z.ZodDefault<z.ZodEnum<["read-only", "read-write"]>>;
27
+ defaultShareMode: z.ZodDefault<z.ZodEnum<{
28
+ "read-write": "read-write";
29
+ "read-only": "read-only";
30
+ }>>;
62
31
  maxReplayBufferKB: z.ZodDefault<z.ZodNumber>;
63
32
  e2eEncryption: z.ZodDefault<z.ZodBoolean>;
64
33
  relayUrl: z.ZodDefault<z.ZodString>;
65
34
  authUrl: z.ZodDefault<z.ZodString>;
66
- }, "strip", z.ZodTypeAny, {
67
- enabled: boolean;
68
- autoConnect: boolean;
69
- defaultShareMode: "read-write" | "read-only";
70
- maxReplayBufferKB: number;
71
- e2eEncryption: boolean;
72
- relayUrl: string;
73
- authUrl: string;
74
- authToken?: string | undefined;
75
- refreshToken?: string | undefined;
76
- }, {
77
- enabled?: boolean | undefined;
78
- authToken?: string | undefined;
79
- refreshToken?: string | undefined;
80
- autoConnect?: boolean | undefined;
81
- defaultShareMode?: "read-write" | "read-only" | undefined;
82
- maxReplayBufferKB?: number | undefined;
83
- e2eEncryption?: boolean | undefined;
84
- relayUrl?: string | undefined;
85
- authUrl?: string | undefined;
86
- }>;
35
+ }, z.core.$strip>;
87
36
  declare const WorktreeConfigSchema: z.ZodObject<{
88
37
  planning: z.ZodDefault<z.ZodBoolean>;
89
38
  interactivePlanning: z.ZodDefault<z.ZodBoolean>;
90
39
  implementation: z.ZodDefault<z.ZodBoolean>;
91
- }, "strip", z.ZodTypeAny, {
92
- planning: boolean;
93
- interactivePlanning: boolean;
94
- implementation: boolean;
95
- }, {
96
- planning?: boolean | undefined;
97
- interactivePlanning?: boolean | undefined;
98
- implementation?: boolean | undefined;
99
- }>;
40
+ }, z.core.$strip>;
100
41
  declare const AppConfigSchema: z.ZodObject<{
101
42
  ui: z.ZodDefault<z.ZodObject<{
102
43
  sidebarWidth: z.ZodDefault<z.ZodNumber>;
103
44
  narrowBreakpoint: z.ZodDefault<z.ZodNumber>;
104
45
  targetFps: z.ZodDefault<z.ZodNumber>;
105
46
  showCost: z.ZodDefault<z.ZodBoolean>;
106
- }, "strip", z.ZodTypeAny, {
107
- sidebarWidth: number;
108
- narrowBreakpoint: number;
109
- targetFps: number;
110
- showCost: boolean;
111
- }, {
112
- sidebarWidth?: number | undefined;
113
- narrowBreakpoint?: number | undefined;
114
- targetFps?: number | undefined;
115
- showCost?: boolean | undefined;
116
- }>>;
47
+ }, z.core.$strip>>;
117
48
  connectors: z.ZodDefault<z.ZodObject<{
118
49
  slack: z.ZodDefault<z.ZodObject<{
119
50
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -122,267 +53,48 @@ declare const AppConfigSchema: z.ZodObject<{
122
53
  channelId: z.ZodOptional<z.ZodString>;
123
54
  pollInterval: z.ZodDefault<z.ZodNumber>;
124
55
  timeout: z.ZodDefault<z.ZodNumber>;
125
- }, "strip", z.ZodTypeAny, {
126
- enabled: boolean;
127
- pollInterval: number;
128
- timeout: number;
129
- botToken?: string | undefined;
130
- appToken?: string | undefined;
131
- channelId?: string | undefined;
132
- }, {
133
- enabled?: boolean | undefined;
134
- botToken?: string | undefined;
135
- appToken?: string | undefined;
136
- channelId?: string | undefined;
137
- pollInterval?: number | undefined;
138
- timeout?: number | undefined;
139
- }>>;
56
+ }, z.core.$strip>>;
140
57
  discord: z.ZodDefault<z.ZodObject<{
141
58
  enabled: z.ZodDefault<z.ZodBoolean>;
142
59
  botToken: z.ZodOptional<z.ZodString>;
143
60
  channelId: z.ZodOptional<z.ZodString>;
144
61
  timeout: z.ZodDefault<z.ZodNumber>;
145
- }, "strip", z.ZodTypeAny, {
146
- enabled: boolean;
147
- timeout: number;
148
- botToken?: string | undefined;
149
- channelId?: string | undefined;
150
- }, {
151
- enabled?: boolean | undefined;
152
- botToken?: string | undefined;
153
- channelId?: string | undefined;
154
- timeout?: number | undefined;
155
- }>>;
62
+ }, z.core.$strip>>;
156
63
  telegram: z.ZodDefault<z.ZodObject<{
157
64
  enabled: z.ZodDefault<z.ZodBoolean>;
158
65
  botToken: z.ZodOptional<z.ZodString>;
159
- chatId: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
66
+ chatId: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
160
67
  timeout: z.ZodDefault<z.ZodNumber>;
161
- }, "strip", z.ZodTypeAny, {
162
- enabled: boolean;
163
- timeout: number;
164
- botToken?: string | undefined;
165
- chatId?: string | number | undefined;
166
- }, {
167
- enabled?: boolean | undefined;
168
- botToken?: string | undefined;
169
- timeout?: number | undefined;
170
- chatId?: string | number | undefined;
171
- }>>;
172
- }, "strip", z.ZodTypeAny, {
173
- slack: {
174
- enabled: boolean;
175
- pollInterval: number;
176
- timeout: number;
177
- botToken?: string | undefined;
178
- appToken?: string | undefined;
179
- channelId?: string | undefined;
180
- };
181
- discord: {
182
- enabled: boolean;
183
- timeout: number;
184
- botToken?: string | undefined;
185
- channelId?: string | undefined;
186
- };
187
- telegram: {
188
- enabled: boolean;
189
- timeout: number;
190
- botToken?: string | undefined;
191
- chatId?: string | number | undefined;
192
- };
193
- }, {
194
- slack?: {
195
- enabled?: boolean | undefined;
196
- botToken?: string | undefined;
197
- appToken?: string | undefined;
198
- channelId?: string | undefined;
199
- pollInterval?: number | undefined;
200
- timeout?: number | undefined;
201
- } | undefined;
202
- discord?: {
203
- enabled?: boolean | undefined;
204
- botToken?: string | undefined;
205
- channelId?: string | undefined;
206
- timeout?: number | undefined;
207
- } | undefined;
208
- telegram?: {
209
- enabled?: boolean | undefined;
210
- botToken?: string | undefined;
211
- timeout?: number | undefined;
212
- chatId?: string | number | undefined;
213
- } | undefined;
214
- }>>;
68
+ }, z.core.$strip>>;
69
+ }, z.core.$strip>>;
215
70
  agents: z.ZodDefault<z.ZodObject<{
216
71
  statusCheckInterval: z.ZodDefault<z.ZodNumber>;
217
72
  detectorInterval: z.ZodDefault<z.ZodNumber>;
218
- }, "strip", z.ZodTypeAny, {
219
- statusCheckInterval: number;
220
- detectorInterval: number;
221
- }, {
222
- statusCheckInterval?: number | undefined;
223
- detectorInterval?: number | undefined;
224
- }>>;
73
+ }, z.core.$strip>>;
225
74
  relay: z.ZodDefault<z.ZodObject<{
226
75
  enabled: z.ZodDefault<z.ZodBoolean>;
227
76
  authToken: z.ZodOptional<z.ZodString>;
228
77
  refreshToken: z.ZodOptional<z.ZodString>;
229
78
  autoConnect: z.ZodDefault<z.ZodBoolean>;
230
- defaultShareMode: z.ZodDefault<z.ZodEnum<["read-only", "read-write"]>>;
79
+ defaultShareMode: z.ZodDefault<z.ZodEnum<{
80
+ "read-write": "read-write";
81
+ "read-only": "read-only";
82
+ }>>;
231
83
  maxReplayBufferKB: z.ZodDefault<z.ZodNumber>;
232
84
  e2eEncryption: z.ZodDefault<z.ZodBoolean>;
233
85
  relayUrl: z.ZodDefault<z.ZodString>;
234
86
  authUrl: z.ZodDefault<z.ZodString>;
235
- }, "strip", z.ZodTypeAny, {
236
- enabled: boolean;
237
- autoConnect: boolean;
238
- defaultShareMode: "read-write" | "read-only";
239
- maxReplayBufferKB: number;
240
- e2eEncryption: boolean;
241
- relayUrl: string;
242
- authUrl: string;
243
- authToken?: string | undefined;
244
- refreshToken?: string | undefined;
245
- }, {
246
- enabled?: boolean | undefined;
247
- authToken?: string | undefined;
248
- refreshToken?: string | undefined;
249
- autoConnect?: boolean | undefined;
250
- defaultShareMode?: "read-write" | "read-only" | undefined;
251
- maxReplayBufferKB?: number | undefined;
252
- e2eEncryption?: boolean | undefined;
253
- relayUrl?: string | undefined;
254
- authUrl?: string | undefined;
255
- }>>;
87
+ }, z.core.$strip>>;
256
88
  worktree: z.ZodDefault<z.ZodObject<{
257
89
  planning: z.ZodDefault<z.ZodBoolean>;
258
90
  interactivePlanning: z.ZodDefault<z.ZodBoolean>;
259
91
  implementation: z.ZodDefault<z.ZodBoolean>;
260
- }, "strip", z.ZodTypeAny, {
261
- planning: boolean;
262
- interactivePlanning: boolean;
263
- implementation: boolean;
264
- }, {
265
- planning?: boolean | undefined;
266
- interactivePlanning?: boolean | undefined;
267
- implementation?: boolean | undefined;
268
- }>>;
92
+ }, z.core.$strip>>;
269
93
  telemetry: z.ZodDefault<z.ZodObject<{
270
94
  enabled: z.ZodDefault<z.ZodBoolean>;
271
95
  crashReports: z.ZodDefault<z.ZodBoolean>;
272
- }, "strip", z.ZodTypeAny, {
273
- enabled: boolean;
274
- crashReports: boolean;
275
- }, {
276
- enabled?: boolean | undefined;
277
- crashReports?: boolean | undefined;
278
- }>>;
279
- }, "strip", z.ZodTypeAny, {
280
- agents: {
281
- statusCheckInterval: number;
282
- detectorInterval: number;
283
- };
284
- ui: {
285
- sidebarWidth: number;
286
- narrowBreakpoint: number;
287
- targetFps: number;
288
- showCost: boolean;
289
- };
290
- connectors: {
291
- slack: {
292
- enabled: boolean;
293
- pollInterval: number;
294
- timeout: number;
295
- botToken?: string | undefined;
296
- appToken?: string | undefined;
297
- channelId?: string | undefined;
298
- };
299
- discord: {
300
- enabled: boolean;
301
- timeout: number;
302
- botToken?: string | undefined;
303
- channelId?: string | undefined;
304
- };
305
- telegram: {
306
- enabled: boolean;
307
- timeout: number;
308
- botToken?: string | undefined;
309
- chatId?: string | number | undefined;
310
- };
311
- };
312
- relay: {
313
- enabled: boolean;
314
- autoConnect: boolean;
315
- defaultShareMode: "read-write" | "read-only";
316
- maxReplayBufferKB: number;
317
- e2eEncryption: boolean;
318
- relayUrl: string;
319
- authUrl: string;
320
- authToken?: string | undefined;
321
- refreshToken?: string | undefined;
322
- };
323
- worktree: {
324
- planning: boolean;
325
- interactivePlanning: boolean;
326
- implementation: boolean;
327
- };
328
- telemetry: {
329
- enabled: boolean;
330
- crashReports: boolean;
331
- };
332
- }, {
333
- agents?: {
334
- statusCheckInterval?: number | undefined;
335
- detectorInterval?: number | undefined;
336
- } | undefined;
337
- ui?: {
338
- sidebarWidth?: number | undefined;
339
- narrowBreakpoint?: number | undefined;
340
- targetFps?: number | undefined;
341
- showCost?: boolean | undefined;
342
- } | undefined;
343
- connectors?: {
344
- slack?: {
345
- enabled?: boolean | undefined;
346
- botToken?: string | undefined;
347
- appToken?: string | undefined;
348
- channelId?: string | undefined;
349
- pollInterval?: number | undefined;
350
- timeout?: number | undefined;
351
- } | undefined;
352
- discord?: {
353
- enabled?: boolean | undefined;
354
- botToken?: string | undefined;
355
- channelId?: string | undefined;
356
- timeout?: number | undefined;
357
- } | undefined;
358
- telegram?: {
359
- enabled?: boolean | undefined;
360
- botToken?: string | undefined;
361
- timeout?: number | undefined;
362
- chatId?: string | number | undefined;
363
- } | undefined;
364
- } | undefined;
365
- relay?: {
366
- enabled?: boolean | undefined;
367
- authToken?: string | undefined;
368
- refreshToken?: string | undefined;
369
- autoConnect?: boolean | undefined;
370
- defaultShareMode?: "read-write" | "read-only" | undefined;
371
- maxReplayBufferKB?: number | undefined;
372
- e2eEncryption?: boolean | undefined;
373
- relayUrl?: string | undefined;
374
- authUrl?: string | undefined;
375
- } | undefined;
376
- worktree?: {
377
- planning?: boolean | undefined;
378
- interactivePlanning?: boolean | undefined;
379
- implementation?: boolean | undefined;
380
- } | undefined;
381
- telemetry?: {
382
- enabled?: boolean | undefined;
383
- crashReports?: boolean | undefined;
384
- } | undefined;
385
- }>;
96
+ }, z.core.$strip>>;
97
+ }, z.core.$strip>;
386
98
  export type AppConfig = z.infer<typeof AppConfigSchema>;
387
99
  export type SlackConfig = z.infer<typeof SlackConfigSchema>;
388
100
  export type DiscordConfig = z.infer<typeof DiscordConfigSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAOrB,CAAC;AAEH,QAAA,MAAM,mBAAmB;;;;;;;;;;;;;;;EAKvB,CAAC;AAEH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;EAKxB,CAAC;AAEH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYrB,CAAC;AAEH,QAAA,MAAM,oBAAoB;;;;;;;;;;;;EAIxB,CAAC;AAcH,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBnB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAQlE,wBAAgB,UAAU,IAAI,SAAS,CAiBtC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAOlD;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,QAAA,MAAM,iBAAiB;;;;;;;iBAOrB,CAAC;AAEH,QAAA,MAAM,mBAAmB;;;;;iBAKvB,CAAC;AAEH,QAAA,MAAM,oBAAoB;;;;;iBAKxB,CAAC;AAEH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;iBAYrB,CAAC;AAEH,QAAA,MAAM,oBAAoB;;;;iBAIxB,CAAC;AAyBH,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOnB,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAQlE,wBAAgB,UAAU,IAAI,SAAS,CAiBtC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAOlD;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
@@ -51,24 +51,22 @@ const TelemetryConfigSchema = z.object({
51
51
  enabled: z.boolean().default(true),
52
52
  crashReports: z.boolean().default(true),
53
53
  });
54
+ const ConnectorsSchema = z.object({
55
+ slack: SlackConfigSchema.default(() => SlackConfigSchema.parse({})),
56
+ discord: DiscordConfigSchema.default(() => DiscordConfigSchema.parse({})),
57
+ telegram: TelegramConfigSchema.default(() => TelegramConfigSchema.parse({})),
58
+ });
59
+ const AgentsSchema = z.object({
60
+ statusCheckInterval: z.number().default(DEFAULTS.agents.statusCheckInterval),
61
+ detectorInterval: z.number().default(DEFAULTS.agents.detectorInterval),
62
+ });
54
63
  const AppConfigSchema = z.object({
55
- ui: UiConfigSchema.default({}),
56
- connectors: z
57
- .object({
58
- slack: SlackConfigSchema.default({}),
59
- discord: DiscordConfigSchema.default({}),
60
- telegram: TelegramConfigSchema.default({}),
61
- })
62
- .default({}),
63
- agents: z
64
- .object({
65
- statusCheckInterval: z.number().default(DEFAULTS.agents.statusCheckInterval),
66
- detectorInterval: z.number().default(DEFAULTS.agents.detectorInterval),
67
- })
68
- .default({}),
69
- relay: RelayConfigSchema.default({}),
70
- worktree: WorktreeConfigSchema.default({}),
71
- telemetry: TelemetryConfigSchema.default({}),
64
+ ui: UiConfigSchema.default(() => UiConfigSchema.parse({})),
65
+ connectors: ConnectorsSchema.default(() => ConnectorsSchema.parse({})),
66
+ agents: AgentsSchema.default(() => AgentsSchema.parse({})),
67
+ relay: RelayConfigSchema.default(() => RelayConfigSchema.parse({})),
68
+ worktree: WorktreeConfigSchema.default(() => WorktreeConfigSchema.parse({})),
69
+ telemetry: TelemetryConfigSchema.default(() => TelemetryConfigSchema.parse({})),
72
70
  });
73
71
  const CONFIG_DIR = path.join(os.homedir(), ".config", "flaio");
74
72
  const CONFIG_FILE = path.join(CONFIG_DIR, "settings.json");
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export declare class RelayClient extends EventEmitter {
16
16
  private started;
17
17
  private lastPingTime;
18
18
  private connectSpan;
19
+ private errorSafetyTimer;
19
20
  private inputLimiter;
20
21
  private browseLimiter;
21
22
  private createSessionLimiter;
@@ -1 +1 @@
1
- {"version":3,"file":"relay-client.d.ts","sourceRoot":"","sources":["../../src/relay/relay-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA8L3C,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,EAAE,CAAuC;IACjD,OAAO,CAAC,eAAe,CAAqC;IAC5D,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,UAAU,CAA6B;IAG/C,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,iBAAiB,CAA8C;IACvE,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAM;IAGvD,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,SAAS,CAA8C;IAE/D,OAAO,CAAC,OAAO,CAAS;IAGxB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAqB;IAGxC,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,oBAAoB,CAA2B;IAGvD,OAAO,CAAC,mBAAmB,CAAgG;;IAQ3H,OAAO,KAAK,UAAU,GAErB;IAMK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YA8Cb,OAAO;IAyGrB,OAAO,CAAC,aAAa;YA8GP,iBAAiB;IAgB/B,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,wBAAwB;IAsBhC,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,kBAAkB;YAYZ,iBAAiB;YAejB,eAAe;YA6Cf,iBAAiB;YAoDjB,oBAAoB;YA6EpB,mBAAmB;YAsKnB,8BAA8B;YA4E9B,yBAAyB;IA0JvC,OAAO,CAAC,oBAAoB;YAsBd,qBAAqB;YA+CrB,oBAAoB;IAoClC,OAAO,CAAC,mBAAmB;YAWb,WAAW;YAwDX,mBAAmB;YAyBnB,aAAa;YA+Db,YAAY;IA2G1B,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,eAAe;IA4CvB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,oBAAoB;YA2Bd,uBAAuB;IAyBrC,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,mBAAmB;IAWpB,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,mBAAmB,EAAE,OAAO,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,IAAI;IAOtI,OAAO,CAAC,IAAI;CAiBb"}
1
+ {"version":3,"file":"relay-client.d.ts","sourceRoot":"","sources":["../../src/relay/relay-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA8L3C,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,EAAE,CAAuC;IACjD,OAAO,CAAC,eAAe,CAAqC;IAC5D,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,UAAU,CAA6B;IAG/C,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,iBAAiB,CAA8C;IACvE,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAM;IAGvD,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,SAAS,CAA8C;IAE/D,OAAO,CAAC,OAAO,CAAS;IAGxB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,gBAAgB,CAA8C;IAGtE,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,oBAAoB,CAA2B;IAGvD,OAAO,CAAC,mBAAmB,CAAgG;;IAQ3H,OAAO,KAAK,UAAU,GAErB;IAMK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YA0Db,OAAO;IAsHrB,OAAO,CAAC,aAAa;YA8GP,iBAAiB;IAgB/B,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,wBAAwB;IAsBhC,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,kBAAkB;YAYZ,iBAAiB;YAejB,eAAe;YA6Cf,iBAAiB;YAoDjB,oBAAoB;YA6EpB,mBAAmB;YAsKnB,8BAA8B;YA4E9B,yBAAyB;IA0JvC,OAAO,CAAC,oBAAoB;YAsBd,qBAAqB;YA+CrB,oBAAoB;IAoClC,OAAO,CAAC,mBAAmB;YAWb,WAAW;YAwDX,mBAAmB;YAyBnB,aAAa;YA+Db,YAAY;IA2G1B,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,eAAe;IA4CvB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,oBAAoB;YA2Bd,uBAAuB;IAyBrC,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,mBAAmB;IAWpB,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,mBAAmB,EAAE,OAAO,CAAC;QAAC,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,IAAI;IAOtI,OAAO,CAAC,IAAI;CAiBb"}
@@ -134,6 +134,7 @@ export class RelayClient extends EventEmitter {
134
134
  // Analytics
135
135
  lastPingTime = 0;
136
136
  connectSpan = null;
137
+ errorSafetyTimer = null;
137
138
  // Rate limiters
138
139
  inputLimiter = new RateLimiter(30, 30); // 30 inputs/sec per key
139
140
  browseLimiter = new RateLimiter(10, 10); // 10 browse requests/sec
@@ -181,6 +182,16 @@ export class RelayClient extends EventEmitter {
181
182
  this.clearReconnectTimer();
182
183
  this.clearHeartbeat();
183
184
  this.clearTokenRefreshTimer();
185
+ // Clean up orphaned connect span
186
+ if (this.connectSpan) {
187
+ this.connectSpan.end();
188
+ this.connectSpan = null;
189
+ }
190
+ // Clean up error safety timer
191
+ if (this.errorSafetyTimer) {
192
+ clearTimeout(this.errorSafetyTimer);
193
+ this.errorSafetyTimer = null;
194
+ }
184
195
  // Untrack all sessions
185
196
  for (const tracked of this.trackedSessions.values()) {
186
197
  this.untrackSession(tracked);
@@ -253,6 +264,11 @@ export class RelayClient extends EventEmitter {
253
264
  this.ws = null;
254
265
  this.clearHeartbeat();
255
266
  clearViewerCounts();
267
+ // Cancel the error handler safety-net timer — close already fired
268
+ if (this.errorSafetyTimer) {
269
+ clearTimeout(this.errorSafetyTimer);
270
+ this.errorSafetyTimer = null;
271
+ }
256
272
  // Clear viewer keys on disconnect — viewers must re-handshake
257
273
  for (const tracked of this.trackedSessions.values()) {
258
274
  tracked.viewerKeys.clear();
@@ -273,7 +289,8 @@ export class RelayClient extends EventEmitter {
273
289
  // Note: "error" is always followed by "close" in the ws library,
274
290
  // so reconnect is handled in the "close" handler. If for some reason
275
291
  // "close" doesn't fire, schedule reconnect as a safety net.
276
- setTimeout(() => {
292
+ this.errorSafetyTimer = setTimeout(() => {
293
+ this.errorSafetyTimer = null;
277
294
  if (this.ws && this.shouldReconnect && this.ws.readyState > 1) {
278
295
  debugLog("relay: error handler safety net — forcing reconnect");
279
296
  this.ws = null;
@@ -286,6 +303,12 @@ export class RelayClient extends EventEmitter {
286
303
  catch (err) {
287
304
  const message = err instanceof Error ? err.message : String(err);
288
305
  debugLog(`relay: failed to connect: ${message}`);
306
+ // End orphaned connect span
307
+ if (this.connectSpan) {
308
+ this.connectSpan.setStatus({ code: 2, message });
309
+ this.connectSpan.end();
310
+ this.connectSpan = null;
311
+ }
289
312
  setRelayConnectionStatus("error", message);
290
313
  if (this.shouldReconnect) {
291
314
  this.scheduleReconnect();