@ebowwa/codespaces-types 1.4.1 → 1.4.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/runtime/api.js CHANGED
@@ -1,677 +1,452 @@
1
- "use strict";
2
- /**
3
- * Zod schemas for API request/response validation
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TmuxDetailedInfoSchema = exports.TmuxKillPaneSchema = exports.TmuxRenameWindowSchema = exports.TmuxSwitchPaneSchema = exports.TmuxSwitchWindowSchema = exports.TmuxGetHistorySchema = exports.TmuxCapturePaneSchema = exports.TmuxListPanesSchema = exports.TmuxListWindowsSchema = exports.TmuxSplitPaneSchema = exports.TmuxSendCommandSchema = exports.VolumePriceQuerySchema = exports.VolumeProtectionRequestSchema = exports.ResizeVolumeRequestSchema = exports.DetachVolumeRequestSchema = exports.AttachVolumeRequestSchema = exports.UpdateVolumeRequestSchema = exports.CreateVolumeRequestSchema = exports.VolumeIdSchema = exports.LoginCommandsResponseSchema = exports.SeedStatusResponseSchema = exports.SeedInstallResponseSchema = exports.SeedInstallRequestSchema = exports.AIAnalyzeHistoricalRequestSchema = exports.InsertMetricRequestSchema = exports.MetricsQuerySchema = exports.AIStatusMessageRequestSchema = exports.AISuggestActionsRequestSchema = exports.AITroubleshootSSHRequestSchema = exports.AIAnalyzeResourcesRequestSchema = exports.AISuggestServerTypeRequestSchema = exports.AISuggestNameRequestSchema = exports.AIChatRequestSchema = exports.AIGenerateRequestSchema = exports.CreateSSHKeyRequestSchema = exports.SSHKeyIdSchema = exports.FilesPreviewRequestSchema = exports.FilesListRequestSchema = exports.SCPDownloadRequestSchema = exports.SCPUploadRequestSchema = exports.TerminalResizeSchema = exports.TerminalCreateSessionSchema = exports.SSHFingerprintRequestSchema = exports.SSHTestRequestSchema = exports.SSHConnectionRequestSchema = exports.UpdatePluginsRequestSchema = exports.UpdateActivityRequestSchema = exports.UpdateMetadataRequestSchema = exports.CreateEnvironmentRequestSchema = exports.EnvironmentIdSchema = void 0;
7
- exports.CleanupActivitiesRequestSchema = exports.ActivitiesQueryParamsSchema = exports.AddActivityRequestSchema = exports.TmuxManagerListSessionsQuerySchema = exports.TmuxManagerDetailedSessionSchema = exports.TmuxManagerCleanupOldSessionsSchema = exports.TmuxManagerKillPaneSchema = exports.TmuxManagerRenameWindowSchema = exports.TmuxManagerSwitchPaneSchema = exports.TmuxManagerSwitchWindowSchema = exports.TmuxManagerListPanesSchema = exports.TmuxManagerListWindowsSchema = exports.TmuxManagerGetHistorySchema = exports.TmuxManagerCapturePaneSchema = exports.TmuxManagerSplitPaneSchema = exports.TmuxManagerBatchSendCommandSchema = exports.TmuxManagerSendCommandSchema = exports.TmuxManagerKillSessionSchema = exports.TmuxManagerAttachSessionSchema = exports.TmuxManagerCreateSessionSchema = exports.TmuxManagerAddNodeSchema = void 0;
8
- var zod_1 = require("zod");
9
- /**
10
- * Environment ID validation
11
- */
12
- exports.EnvironmentIdSchema = zod_1.z
13
- .string()
14
- .transform(function (val) { return parseInt(val, 10); })
15
- .pipe(zod_1.z.number().int().positive("Environment ID must be a positive integer"));
16
- /**
17
- * Create Environment Request
18
- */
19
- exports.CreateEnvironmentRequestSchema = zod_1.z.object({
20
- name: zod_1.z
21
- .string()
22
- .min(1, "Name is required")
23
- .max(64, "Name must be 64 characters or less")
24
- .regex(/^[a-zA-Z0-9][a-zA-Z0-9-]*$/, "Name must start with letter/number and contain only letters, numbers, and hyphens"),
25
- serverType: zod_1.z.string().min(1, "Server type is required"),
26
- location: zod_1.z.string().min(1, "Location is required"),
27
- sshKeys: zod_1.z.array(zod_1.z.string()).optional(),
28
- autoInstallSeed: zod_1.z.boolean().default(false).optional(),
29
- metadata: zod_1.z
30
- .object({
31
- description: zod_1.z.string().optional(),
32
- project: zod_1.z.string().optional(),
33
- owner: zod_1.z.string().optional(),
34
- purpose: zod_1.z.string().optional(),
35
- environmentType: zod_1.z
36
- .enum(["development", "staging", "production", "testing"])
37
- .optional(),
38
- })
39
- .optional(),
40
- });
41
- /**
42
- * Update Metadata Request
43
- */
44
- exports.UpdateMetadataRequestSchema = zod_1.z.object({
45
- description: zod_1.z.string().optional(),
46
- project: zod_1.z.string().optional(),
47
- owner: zod_1.z.string().optional(),
48
- purpose: zod_1.z.string().optional(),
49
- environmentType: zod_1.z
50
- .enum(["development", "staging", "production", "testing"])
51
- .optional(),
52
- });
53
- /**
54
- * Update Activity Request
55
- */
56
- exports.UpdateActivityRequestSchema = zod_1.z.object({
57
- hoursActive: zod_1.z.number().min(0).optional(),
58
- lastActive: zod_1.z.string().datetime().optional(),
59
- activePorts: zod_1.z
60
- .array(zod_1.z.object({
61
- port: zod_1.z.number().int().min(1).max(65535),
62
- protocol: zod_1.z.enum(["tcp", "udp"]),
63
- service: zod_1.z.string().optional(),
64
- state: zod_1.z.enum(["open", "closed", "filtered"]),
65
- }))
66
- .optional(),
67
- });
68
- /**
69
- * Update Plugins Request
70
- */
71
- exports.UpdatePluginsRequestSchema = zod_1.z.object({
72
- plugins: zod_1.z
73
- .record(zod_1.z.string(), zod_1.z.object({
74
- enabled: zod_1.z.boolean(),
75
- config: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
76
- }))
77
- .optional(),
78
- });
79
- /**
80
- * SSH Connection Request
81
- */
82
- exports.SSHConnectionRequestSchema = zod_1.z.object({
83
- host: zod_1.z.string().min(1, "Host is required"),
84
- user: zod_1.z.string().default("root").optional(),
85
- });
86
- /**
87
- * SSH Test Request
88
- */
89
- exports.SSHTestRequestSchema = zod_1.z.object({
90
- host: zod_1.z.string().min(1, "Host is required"),
91
- user: zod_1.z.string().default("root").optional(),
92
- port: zod_1.z.number().int().positive().max(65535).default(22).optional(),
93
- });
94
- /**
95
- * SSH Fingerprint Request
96
- */
97
- exports.SSHFingerprintRequestSchema = zod_1.z.object({
98
- host: zod_1.z.string().min(1, "Host is required"),
99
- user: zod_1.z.string().default("root").optional(),
100
- port: zod_1.z.number().int().positive().max(65535).default(22).optional(),
101
- });
102
- /**
103
- * Terminal Create Session Request
104
- */
105
- exports.TerminalCreateSessionSchema = zod_1.z.object({
106
- host: zod_1.z.string().min(1, "Host is required"),
107
- user: zod_1.z.string().default("root").optional(),
108
- port: zod_1.z.number().int().positive().max(65535).default(22).optional(),
109
- rows: zod_1.z.number().int().positive().max(200).default(24).optional(),
110
- cols: zod_1.z.number().int().positive().max(500).default(80).optional(),
111
- });
112
- /**
113
- * Terminal Resize Request
114
- */
115
- exports.TerminalResizeSchema = zod_1.z.object({
116
- sessionId: zod_1.z.string().min(1, "Session ID is required"),
117
- rows: zod_1.z.number().int().positive().max(200),
118
- cols: zod_1.z.number().int().positive().max(500),
119
- });
120
- /**
121
- * SCP Upload Request
122
- */
123
- exports.SCPUploadRequestSchema = zod_1.z.object({
124
- host: zod_1.z.string().min(1, "Host is required"),
125
- user: zod_1.z.string().default("root").optional(),
126
- source: zod_1.z.string().min(1, "Source path is required"),
127
- destination: zod_1.z.string().min(1, "Destination path is required"),
128
- recursive: zod_1.z.boolean().default(false).optional(),
129
- preserve: zod_1.z.boolean().default(false).optional(),
130
- });
131
- /**
132
- * SCP Download Request
133
- */
134
- exports.SCPDownloadRequestSchema = zod_1.z.object({
135
- host: zod_1.z.string().min(1, "Host is required"),
136
- user: zod_1.z.string().default("root").optional(),
137
- source: zod_1.z.string().min(1, "Source path is required"),
138
- destination: zod_1.z.string().min(1, "Destination path is required"),
139
- recursive: zod_1.z.boolean().default(false).optional(),
140
- preserve: zod_1.z.boolean().default(false).optional(),
141
- });
142
- /**
143
- * Files List Request
144
- */
145
- exports.FilesListRequestSchema = zod_1.z.object({
146
- host: zod_1.z.string().min(1, "Host is required"),
147
- user: zod_1.z.string().default("root").optional(),
148
- path: zod_1.z.string().default(".").optional(),
149
- });
150
- /**
151
- * Files Preview Request
152
- */
153
- exports.FilesPreviewRequestSchema = zod_1.z.object({
154
- host: zod_1.z.string().min(1, "Host is required"),
155
- user: zod_1.z.string().default("root").optional(),
156
- path: zod_1.z.string().min(1, "Path is required"),
157
- });
158
- /**
159
- * SSH Key ID validation
160
- */
161
- exports.SSHKeyIdSchema = zod_1.z
162
- .string()
163
- .transform(function (val) { return parseInt(val, 10); })
164
- .pipe(zod_1.z.number().int().positive("SSH Key ID must be a positive integer"));
165
- /**
166
- * Create SSH Key Request
167
- */
168
- exports.CreateSSHKeyRequestSchema = zod_1.z.object({
169
- name: zod_1.z
170
- .string()
171
- .min(1, "Name is required")
172
- .max(64, "Name must be 64 characters or less")
173
- .regex(/^[a-zA-Z0-9][a-zA-Z0-9-]*$/, "Name must start with letter/number and contain only letters, numbers, and hyphens"),
174
- public_key: zod_1.z.string().min(1, "Public key is required"),
175
- labels: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
176
- });
177
- /**
178
- * AI Generate Request
179
- */
180
- exports.AIGenerateRequestSchema = zod_1.z.object({
181
- prompt: zod_1.z.string().min(1, "Prompt is required"),
182
- model: zod_1.z.string().optional(), // Generic string for any AI provider
183
- temperature: zod_1.z.number().min(0).max(2).optional(),
184
- maxTokens: zod_1.z.number().int().positive().optional(),
185
- });
186
- /**
187
- * AI Chat Request
188
- */
189
- exports.AIChatRequestSchema = zod_1.z.object({
190
- messages: zod_1.z.array(zod_1.z.any()).min(1, "At least one message is required"),
191
- model: zod_1.z.string().optional(), // Generic string for any AI provider
192
- temperature: zod_1.z.number().min(0).max(2).optional(),
193
- maxTokens: zod_1.z.number().int().positive().optional(),
194
- });
195
- /**
196
- * AI Suggest Name Request
197
- */
198
- exports.AISuggestNameRequestSchema = zod_1.z.object({
199
- project: zod_1.z.string().optional(),
200
- description: zod_1.z.string().optional(),
201
- });
202
- /**
203
- * AI Suggest Server Type Request
204
- */
205
- exports.AISuggestServerTypeRequestSchema = zod_1.z.object({
206
- workload: zod_1.z.string().min(1, "Workload description is required"),
207
- });
208
- /**
209
- * AI Analyze Resources Request
210
- */
211
- exports.AIAnalyzeResourcesRequestSchema = zod_1.z.object({
212
- cpu: zod_1.z.number().min(0).max(100),
213
- memory: zod_1.z.number().min(0).max(100),
214
- disk: zod_1.z.number().min(0).max(100),
215
- });
216
- /**
217
- * AI Troubleshoot SSH Request
218
- */
219
- exports.AITroubleshootSSHRequestSchema = zod_1.z.object({
220
- error: zod_1.z.string().min(1, "Error message is required"),
221
- });
222
- /**
223
- * AI Suggest Actions Request
224
- */
225
- exports.AISuggestActionsRequestSchema = zod_1.z.object({
226
- status: zod_1.z.string().min(1, "Status is required"),
227
- age: zod_1.z.string().optional(),
228
- });
229
- /**
230
- * AI Status Message Request
231
- */
232
- exports.AIStatusMessageRequestSchema = zod_1.z.object({
233
- status: zod_1.z.string().min(1, "Status is required"),
234
- name: zod_1.z.string().min(1, "Name is required"),
235
- });
236
- /**
237
- * Metrics Query Schema (for query parameters)
238
- */
239
- exports.MetricsQuerySchema = zod_1.z.object({
240
- hours: zod_1.z
241
- .string()
242
- .default("24")
243
- .transform(function (val) { return parseInt(val, 10); })
244
- .pipe(zod_1.z.number().int().positive().max(8760)),
245
- limit: zod_1.z
246
- .string()
247
- .default("100")
248
- .transform(function (val) { return parseInt(val, 10); })
249
- .pipe(zod_1.z.number().int().positive().max(1000)),
250
- });
251
- /**
252
- * Insert Metric Request
253
- */
254
- exports.InsertMetricRequestSchema = zod_1.z.object({
255
- environmentId: zod_1.z.number().int().positive(),
256
- cpuPercent: zod_1.z.number().min(0).max(100),
257
- memoryPercent: zod_1.z.number().min(0).max(100),
258
- memoryUsed: zod_1.z.number().min(0),
259
- memoryTotal: zod_1.z.number().min(0),
260
- diskPercent: zod_1.z.number().min(0).max(100),
261
- diskUsed: zod_1.z.number().min(0),
262
- diskTotal: zod_1.z.number().min(0),
263
- gpuPercent: zod_1.z.number().min(0).max(100).optional(),
264
- gpuMemoryUsed: zod_1.z.number().min(0).optional(),
265
- gpuMemoryTotal: zod_1.z.number().min(0).optional(),
266
- });
267
- /**
268
- * AI Analyze Historical Request
269
- */
270
- exports.AIAnalyzeHistoricalRequestSchema = zod_1.z.object({
271
- environmentId: zod_1.z.number().int().positive(),
272
- hours: zod_1.z.number().int().positive().max(8760).default(24),
273
- });
274
- /**
275
- * Seed Install Request
276
- */
277
- exports.SeedInstallRequestSchema = zod_1.z.object({
278
- environmentId: zod_1.z.string().min(1, "Environment ID is required"),
279
- autoConfirm: zod_1.z.boolean().default(true).optional(),
280
- });
281
- /**
282
- * Seed Install Response (partial - actual response includes more fields)
283
- */
284
- exports.SeedInstallResponseSchema = zod_1.z.object({
285
- success: zod_1.z.boolean(),
286
- cloned: zod_1.z.boolean(),
287
- setupRun: zod_1.z.boolean(),
288
- seedPath: zod_1.z.string(),
289
- error: zod_1.z.string().optional(),
290
- output: zod_1.z.array(zod_1.z.string()),
291
- });
292
- /**
293
- * Seed Status Response
294
- */
295
- exports.SeedStatusResponseSchema = zod_1.z.object({
296
- installed: zod_1.z.boolean(),
297
- setupComplete: zod_1.z.boolean(),
298
- version: zod_1.z.string().optional(),
299
- branch: zod_1.z.string().optional(),
300
- });
301
- /**
302
- * Login Commands Response
303
- */
304
- exports.LoginCommandsResponseSchema = zod_1.z.object({
305
- ssh: zod_1.z.string(),
306
- web: zod_1.z.string(),
307
- claude: zod_1.z.string(),
308
- quick: zod_1.z.string(),
309
- });
310
- // ============================================
311
- // Volume Schemas
312
- // ============================================
313
- /**
314
- * Volume ID validation
315
- */
316
- exports.VolumeIdSchema = zod_1.z
317
- .string()
318
- .transform(function (val) { return parseInt(val, 10); })
319
- .pipe(zod_1.z.number().int().positive("Volume ID must be a positive integer"));
320
- /**
321
- * Create Volume Request
322
- */
323
- exports.CreateVolumeRequestSchema = zod_1.z.object({
324
- name: zod_1.z
325
- .string()
326
- .min(1, "Name is required")
327
- .max(64, "Name must be 64 characters or less")
328
- .regex(/^[a-zA-Z0-9][a-zA-Z0-9-]*$/, "Name must start with letter/number and contain only letters, numbers, and hyphens"),
329
- size: zod_1.z
330
- .number()
331
- .int()
332
- .positive("Size must be a positive integer")
333
- .min(10, "Minimum volume size is 10 GB")
334
- .max(10240, "Maximum volume size is 10 TB"),
335
- server: zod_1.z.string().optional(), // Server ID to attach to
336
- location: zod_1.z.string().optional(), // Location if not attaching to server
337
- automount: zod_1.z.boolean().default(true).optional(),
338
- format: zod_1.z.enum(["ext4", "xfs"]).optional(),
339
- labels: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
340
- });
341
- /**
342
- * Update Volume Request
343
- */
344
- exports.UpdateVolumeRequestSchema = zod_1.z.object({
345
- name: zod_1.z.string().min(1).max(64).optional(),
346
- labels: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).optional(),
347
- });
348
- /**
349
- * Attach Volume Request
350
- */
351
- exports.AttachVolumeRequestSchema = zod_1.z.object({
352
- volumeId: zod_1.z.number().int().positive("Volume ID is required"),
353
- serverId: zod_1.z.number().int().positive("Server ID is required"),
354
- automount: zod_1.z.boolean().default(true).optional(),
355
- });
356
- /**
357
- * Detach Volume Request
358
- */
359
- exports.DetachVolumeRequestSchema = zod_1.z.object({
360
- volumeId: zod_1.z.number().int().positive("Volume ID is required"),
361
- });
362
- /**
363
- * Resize Volume Request
364
- */
365
- exports.ResizeVolumeRequestSchema = zod_1.z.object({
366
- volumeId: zod_1.z.number().int().positive("Volume ID is required"),
367
- size: zod_1.z
368
- .number()
369
- .int()
370
- .positive("Size must be a positive integer")
371
- .min(10, "Minimum volume size is 10 GB")
372
- .max(10240, "Maximum volume size is 10 TB"),
373
- });
374
- /**
375
- * Volume Protection Request
376
- */
377
- exports.VolumeProtectionRequestSchema = zod_1.z.object({
378
- delete: zod_1.z.boolean(),
379
- });
380
- /**
381
- * Volume Price Query
382
- */
383
- exports.VolumePriceQuerySchema = zod_1.z.object({
384
- size: zod_1.z
385
- .number()
386
- .int()
387
- .positive("Size must be a positive integer")
388
- .min(10, "Minimum volume size is 10 GB")
389
- .max(10240, "Maximum volume size is 10 TB"),
390
- });
391
- // ============================================
392
- // Tmux Session Management Schemas
393
- // ============================================
394
- /**
395
- * Tmux Send Command Request
396
- */
397
- exports.TmuxSendCommandSchema = zod_1.z.object({
398
- sessionId: zod_1.z.string().min(1, "Session ID is required"),
399
- command: zod_1.z.string().min(1, "Command is required"),
400
- paneIndex: zod_1.z.string().default("0").optional(),
401
- });
402
- /**
403
- * Tmux Split Pane Request
404
- */
405
- exports.TmuxSplitPaneSchema = zod_1.z.object({
406
- sessionId: zod_1.z.string().min(1, "Session ID is required"),
407
- direction: zod_1.z.enum(["h", "v"]).default("v"),
408
- command: zod_1.z.string().optional(),
409
- });
410
- /**
411
- * Tmux List Windows Request
412
- */
413
- exports.TmuxListWindowsSchema = zod_1.z.object({
414
- sessionId: zod_1.z.string().min(1, "Session ID is required"),
415
- });
416
- /**
417
- * Tmux List Panes Request
418
- */
419
- exports.TmuxListPanesSchema = zod_1.z.object({
420
- sessionId: zod_1.z.string().min(1, "Session ID is required"),
421
- windowIndex: zod_1.z.string().default("0").optional(),
422
- });
423
- /**
424
- * Tmux Capture Pane Request
425
- */
426
- exports.TmuxCapturePaneSchema = zod_1.z.object({
427
- sessionId: zod_1.z.string().min(1, "Session ID is required"),
428
- paneIndex: zod_1.z.string().default("0").optional(),
429
- });
430
- /**
431
- * Tmux Get History Request
432
- */
433
- exports.TmuxGetHistorySchema = zod_1.z.object({
434
- sessionId: zod_1.z.string().min(1, "Session ID is required"),
435
- paneIndex: zod_1.z.string().default("0").optional(),
436
- lines: zod_1.z.number().int().default(-1).optional(),
437
- });
438
- /**
439
- * Tmux Switch Window Request
440
- */
441
- exports.TmuxSwitchWindowSchema = zod_1.z.object({
442
- sessionId: zod_1.z.string().min(1, "Session ID is required"),
443
- windowIndex: zod_1.z.string().min(1, "Window index is required"),
444
- });
445
- /**
446
- * Tmux Switch Pane Request
447
- */
448
- exports.TmuxSwitchPaneSchema = zod_1.z.object({
449
- sessionId: zod_1.z.string().min(1, "Session ID is required"),
450
- paneIndex: zod_1.z.string().min(1, "Pane index is required"),
451
- });
452
- /**
453
- * Tmux Rename Window Request
454
- */
455
- exports.TmuxRenameWindowSchema = zod_1.z.object({
456
- sessionId: zod_1.z.string().min(1, "Session ID is required"),
457
- windowIndex: zod_1.z.string().min(1, "Window index is required"),
458
- newName: zod_1.z.string().min(1, "New name is required").max(64),
459
- });
460
- /**
461
- * Tmux Kill Pane Request
462
- */
463
- exports.TmuxKillPaneSchema = zod_1.z.object({
464
- sessionId: zod_1.z.string().min(1, "Session ID is required"),
465
- paneIndex: zod_1.z.string().min(1, "Pane index is required"),
466
- });
467
- /**
468
- * Tmux Detailed Info Request
469
- */
470
- exports.TmuxDetailedInfoSchema = zod_1.z.object({
471
- sessionId: zod_1.z.string().min(1, "Session ID is required"),
472
- });
473
- // ============================================
474
- // Multi-Node Tmux Manager Schemas
475
- // ============================================
476
- /**
477
- * Tmux Manager Add Node Request
478
- */
479
- exports.TmuxManagerAddNodeSchema = zod_1.z.object({
480
- id: zod_1.z.string().min(1, "Node ID is required"),
481
- name: zod_1.z.string().min(1, "Node name is required"),
482
- ip: zod_1.z.string().min(1, "IP address is required"),
483
- ipv6: zod_1.z.string().nullable().optional(),
484
- user: zod_1.z.string().default("root"),
485
- port: zod_1.z.number().int().positive().max(65535).default(22),
486
- keyPath: zod_1.z.string().optional(),
487
- status: zod_1.z.enum(["running", "stopped", "unreachable"]).default("running"),
488
- tags: zod_1.z.array(zod_1.z.string()).optional(),
489
- location: zod_1.z.string().optional(),
490
- });
491
- /**
492
- * Tmux Manager Create Session Request
493
- */
494
- exports.TmuxManagerCreateSessionSchema = zod_1.z.object({
495
- nodeId: zod_1.z.string().min(1, "Node ID is required"),
496
- sessionName: zod_1.z.string().optional(),
497
- cwd: zod_1.z.string().optional(),
498
- initialCommand: zod_1.z.string().optional(),
499
- layout: zod_1.z.enum(["even-horizontal", "even-vertical", "main-horizontal", "main-vertical", "tiled"]).optional(),
500
- });
501
- /**
502
- * Tmux Manager Attach Session Request
503
- */
504
- exports.TmuxManagerAttachSessionSchema = zod_1.z.object({
505
- nodeId: zod_1.z.string().min(1, "Node ID is required"),
506
- sessionName: zod_1.z.string().optional(),
507
- });
508
- /**
509
- * Tmux Manager Kill Session Request
510
- */
511
- exports.TmuxManagerKillSessionSchema = zod_1.z.object({
512
- nodeId: zod_1.z.string().min(1, "Node ID is required"),
513
- sessionName: zod_1.z.string().min(1, "Session name is required"),
514
- });
515
- /**
516
- * Tmux Manager Send Command Request
517
- */
518
- exports.TmuxManagerSendCommandSchema = zod_1.z.object({
519
- nodeId: zod_1.z.string().min(1, "Node ID is required"),
520
- sessionName: zod_1.z.string().min(1, "Session name is required"),
521
- command: zod_1.z.string().min(1, "Command is required"),
522
- paneIndex: zod_1.z.string().default("0"),
523
- });
524
- /**
525
- * Tmux Manager Batch Send Command Request
526
- */
527
- exports.TmuxManagerBatchSendCommandSchema = zod_1.z.object({
528
- nodeIds: zod_1.z.array(zod_1.z.string().min(1)).min(1, "At least one node ID is required"),
529
- sessionName: zod_1.z.string().min(1, "Session name is required"),
530
- command: zod_1.z.string().min(1, "Command is required"),
531
- paneIndex: zod_1.z.string().default("0"),
532
- parallel: zod_1.z.boolean().default(true),
533
- continueOnError: zod_1.z.boolean().default(true),
534
- timeout: zod_1.z.number().int().positive().default(30),
535
- });
536
- /**
537
- * Tmux Manager Split Pane Request
538
- */
539
- exports.TmuxManagerSplitPaneSchema = zod_1.z.object({
540
- nodeId: zod_1.z.string().min(1, "Node ID is required"),
541
- sessionName: zod_1.z.string().min(1, "Session name is required"),
542
- direction: zod_1.z.enum(["h", "v"]).default("v"),
543
- command: zod_1.z.string().nullable().optional(),
544
- windowIndex: zod_1.z.string().default("0"),
545
- });
546
- /**
547
- * Tmux Manager Capture Pane Request
548
- */
549
- exports.TmuxManagerCapturePaneSchema = zod_1.z.object({
550
- nodeId: zod_1.z.string().min(1, "Node ID is required"),
551
- sessionName: zod_1.z.string().min(1, "Session name is required"),
552
- paneIndex: zod_1.z.string().default("0"),
553
- });
554
- /**
555
- * Tmux Manager Get History Request
556
- */
557
- exports.TmuxManagerGetHistorySchema = zod_1.z.object({
558
- nodeId: zod_1.z.string().min(1, "Node ID is required"),
559
- sessionName: zod_1.z.string().min(1, "Session name is required"),
560
- paneIndex: zod_1.z.string().default("0"),
561
- lines: zod_1.z.number().int().default(-1),
562
- });
563
- /**
564
- * Tmux Manager List Windows Request
565
- */
566
- exports.TmuxManagerListWindowsSchema = zod_1.z.object({
567
- nodeId: zod_1.z.string().min(1, "Node ID is required"),
568
- sessionName: zod_1.z.string().min(1, "Session name is required"),
569
- });
570
- /**
571
- * Tmux Manager List Panes Request
572
- */
573
- exports.TmuxManagerListPanesSchema = zod_1.z.object({
574
- nodeId: zod_1.z.string().min(1, "Node ID is required"),
575
- sessionName: zod_1.z.string().min(1, "Session name is required"),
576
- windowIndex: zod_1.z.string().default("0"),
577
- });
578
- /**
579
- * Tmux Manager Switch Window Request
580
- */
581
- exports.TmuxManagerSwitchWindowSchema = zod_1.z.object({
582
- nodeId: zod_1.z.string().min(1, "Node ID is required"),
583
- sessionName: zod_1.z.string().min(1, "Session name is required"),
584
- windowIndex: zod_1.z.string().min(1, "Window index is required"),
585
- });
586
- /**
587
- * Tmux Manager Switch Pane Request
588
- */
589
- exports.TmuxManagerSwitchPaneSchema = zod_1.z.object({
590
- nodeId: zod_1.z.string().min(1, "Node ID is required"),
591
- sessionName: zod_1.z.string().min(1, "Session name is required"),
592
- paneIndex: zod_1.z.string().min(1, "Pane index is required"),
593
- });
594
- /**
595
- * Tmux Manager Rename Window Request
596
- */
597
- exports.TmuxManagerRenameWindowSchema = zod_1.z.object({
598
- nodeId: zod_1.z.string().min(1, "Node ID is required"),
599
- sessionName: zod_1.z.string().min(1, "Session name is required"),
600
- windowIndex: zod_1.z.string().min(1, "Window index is required"),
601
- newName: zod_1.z.string().min(1, "New name is required").max(64),
602
- });
603
- /**
604
- * Tmux Manager Kill Pane Request
605
- */
606
- exports.TmuxManagerKillPaneSchema = zod_1.z.object({
607
- nodeId: zod_1.z.string().min(1, "Node ID is required"),
608
- sessionName: zod_1.z.string().min(1, "Session name is required"),
609
- paneIndex: zod_1.z.string().min(1, "Pane index is required"),
610
- });
611
- /**
612
- * Tmux Manager Cleanup Old Sessions Request
613
- */
614
- exports.TmuxManagerCleanupOldSessionsSchema = zod_1.z.object({
615
- nodeId: zod_1.z.string().min(1, "Node ID is required"),
616
- ageLimitMs: zod_1.z.number().int().positive().default(30 * 24 * 60 * 60 * 1000), // 30 days
617
- });
618
- /**
619
- * Tmux Manager Detailed Session Request
620
- */
621
- exports.TmuxManagerDetailedSessionSchema = zod_1.z.object({
622
- nodeId: zod_1.z.string().min(1, "Node ID is required"),
623
- sessionName: zod_1.z.string().min(1, "Session name is required"),
624
- });
625
- /**
626
- * Tmux Manager List Sessions Query
627
- */
628
- exports.TmuxManagerListSessionsQuerySchema = zod_1.z.object({
629
- nodeIds: zod_1.z.array(zod_1.z.string()).optional(),
630
- tags: zod_1.z.array(zod_1.z.string()).optional(),
631
- detailed: zod_1.z.boolean().default(false).optional(),
632
- includeInactive: zod_1.z.boolean().default(false).optional(),
633
- });
634
- // ============================================
635
- // Activities Schemas
636
- // ============================================
637
- /**
638
- * Add Activity Request
639
- */
640
- exports.AddActivityRequestSchema = zod_1.z.object({
641
- environmentId: zod_1.z.string().min(1, "Environment ID is required"),
642
- action: zod_1.z.string().min(1, "Action is required").max(100),
643
- environmentName: zod_1.z.string().min(1, "Environment name is required").max(64),
644
- details: zod_1.z.string().max(1000).optional(),
645
- });
646
- /**
647
- * Activities Query Schema (for query parameters)
648
- */
649
- exports.ActivitiesQueryParamsSchema = zod_1.z.object({
650
- environmentId: zod_1.z.string().optional(),
651
- limit: zod_1.z
652
- .string()
653
- .default("100")
654
- .transform(function (val) { return parseInt(val, 10); })
655
- .pipe(zod_1.z.number().int().positive().max(1000))
656
- .optional(),
657
- hours: zod_1.z
658
- .string()
659
- .transform(function (val) { return parseInt(val, 10); })
660
- .pipe(zod_1.z.number().int().positive())
661
- .optional(),
662
- since: zod_1.z.string().datetime().optional(),
663
- until: zod_1.z.string().datetime().optional(),
664
- action: zod_1.z.string().optional(),
665
- });
666
- /**
667
- * Cleanup Activities Request
668
- */
669
- exports.CleanupActivitiesRequestSchema = zod_1.z.object({
670
- environmentId: zod_1.z.string().optional(),
671
- keepHours: zod_1.z
672
- .number()
673
- .int()
674
- .positive()
675
- .default(720) // 30 days
676
- .optional(),
677
- });
1
+ // @bun
2
+ // runtime/api.ts
3
+ import { z } from "zod";
4
+ var EnvironmentIdSchema = z.string().transform((val) => parseInt(val, 10)).pipe(z.number().int().positive("Environment ID must be a positive integer"));
5
+ var CreateEnvironmentRequestSchema = z.object({
6
+ name: z.string().min(1, "Name is required").max(64, "Name must be 64 characters or less").regex(/^[a-zA-Z0-9][a-zA-Z0-9-]*$/, "Name must start with letter/number and contain only letters, numbers, and hyphens"),
7
+ serverType: z.string().min(1, "Server type is required"),
8
+ location: z.string().min(1, "Location is required"),
9
+ sshKeys: z.array(z.string()).optional(),
10
+ autoInstallSeed: z.boolean().default(false).optional(),
11
+ metadata: z.object({
12
+ description: z.string().optional(),
13
+ project: z.string().optional(),
14
+ owner: z.string().optional(),
15
+ purpose: z.string().optional(),
16
+ environmentType: z.enum(["development", "staging", "production", "testing"]).optional()
17
+ }).optional()
18
+ });
19
+ var UpdateMetadataRequestSchema = z.object({
20
+ description: z.string().optional(),
21
+ project: z.string().optional(),
22
+ owner: z.string().optional(),
23
+ purpose: z.string().optional(),
24
+ environmentType: z.enum(["development", "staging", "production", "testing"]).optional()
25
+ });
26
+ var UpdateActivityRequestSchema = z.object({
27
+ hoursActive: z.number().min(0).optional(),
28
+ lastActive: z.string().datetime().optional(),
29
+ activePorts: z.array(z.object({
30
+ port: z.number().int().min(1).max(65535),
31
+ protocol: z.enum(["tcp", "udp"]),
32
+ service: z.string().optional(),
33
+ state: z.enum(["open", "closed", "filtered"])
34
+ })).optional()
35
+ });
36
+ var UpdatePluginsRequestSchema = z.object({
37
+ plugins: z.record(z.string(), z.object({
38
+ enabled: z.boolean(),
39
+ config: z.record(z.string(), z.any()).optional()
40
+ })).optional()
41
+ });
42
+ var SSHConnectionRequestSchema = z.object({
43
+ host: z.string().min(1, "Host is required"),
44
+ user: z.string().default("root").optional()
45
+ });
46
+ var SSHTestRequestSchema = z.object({
47
+ host: z.string().min(1, "Host is required"),
48
+ user: z.string().default("root").optional(),
49
+ port: z.number().int().positive().max(65535).default(22).optional()
50
+ });
51
+ var SSHFingerprintRequestSchema = z.object({
52
+ host: z.string().min(1, "Host is required"),
53
+ user: z.string().default("root").optional(),
54
+ port: z.number().int().positive().max(65535).default(22).optional()
55
+ });
56
+ var TerminalCreateSessionSchema = z.object({
57
+ host: z.string().min(1, "Host is required"),
58
+ user: z.string().default("root").optional(),
59
+ port: z.number().int().positive().max(65535).default(22).optional(),
60
+ rows: z.number().int().positive().max(200).default(24).optional(),
61
+ cols: z.number().int().positive().max(500).default(80).optional()
62
+ });
63
+ var TerminalResizeSchema = z.object({
64
+ sessionId: z.string().min(1, "Session ID is required"),
65
+ rows: z.number().int().positive().max(200),
66
+ cols: z.number().int().positive().max(500)
67
+ });
68
+ var SCPUploadRequestSchema = z.object({
69
+ host: z.string().min(1, "Host is required"),
70
+ user: z.string().default("root").optional(),
71
+ source: z.string().min(1, "Source path is required"),
72
+ destination: z.string().min(1, "Destination path is required"),
73
+ recursive: z.boolean().default(false).optional(),
74
+ preserve: z.boolean().default(false).optional()
75
+ });
76
+ var SCPDownloadRequestSchema = z.object({
77
+ host: z.string().min(1, "Host is required"),
78
+ user: z.string().default("root").optional(),
79
+ source: z.string().min(1, "Source path is required"),
80
+ destination: z.string().min(1, "Destination path is required"),
81
+ recursive: z.boolean().default(false).optional(),
82
+ preserve: z.boolean().default(false).optional()
83
+ });
84
+ var FilesListRequestSchema = z.object({
85
+ host: z.string().min(1, "Host is required"),
86
+ user: z.string().default("root").optional(),
87
+ path: z.string().default(".").optional()
88
+ });
89
+ var FilesPreviewRequestSchema = z.object({
90
+ host: z.string().min(1, "Host is required"),
91
+ user: z.string().default("root").optional(),
92
+ path: z.string().min(1, "Path is required")
93
+ });
94
+ var SSHKeyIdSchema = z.string().transform((val) => parseInt(val, 10)).pipe(z.number().int().positive("SSH Key ID must be a positive integer"));
95
+ var CreateSSHKeyRequestSchema = z.object({
96
+ name: z.string().min(1, "Name is required").max(64, "Name must be 64 characters or less").regex(/^[a-zA-Z0-9][a-zA-Z0-9-]*$/, "Name must start with letter/number and contain only letters, numbers, and hyphens"),
97
+ public_key: z.string().min(1, "Public key is required"),
98
+ labels: z.record(z.string(), z.any()).optional()
99
+ });
100
+ var AIGenerateRequestSchema = z.object({
101
+ prompt: z.string().min(1, "Prompt is required"),
102
+ model: z.string().optional(),
103
+ temperature: z.number().min(0).max(2).optional(),
104
+ maxTokens: z.number().int().positive().optional()
105
+ });
106
+ var AIChatRequestSchema = z.object({
107
+ messages: z.array(z.any()).min(1, "At least one message is required"),
108
+ model: z.string().optional(),
109
+ temperature: z.number().min(0).max(2).optional(),
110
+ maxTokens: z.number().int().positive().optional()
111
+ });
112
+ var AISuggestNameRequestSchema = z.object({
113
+ project: z.string().optional(),
114
+ description: z.string().optional()
115
+ });
116
+ var AISuggestServerTypeRequestSchema = z.object({
117
+ workload: z.string().min(1, "Workload description is required")
118
+ });
119
+ var AIAnalyzeResourcesRequestSchema = z.object({
120
+ cpu: z.number().min(0).max(100),
121
+ memory: z.number().min(0).max(100),
122
+ disk: z.number().min(0).max(100)
123
+ });
124
+ var AITroubleshootSSHRequestSchema = z.object({
125
+ error: z.string().min(1, "Error message is required")
126
+ });
127
+ var AISuggestActionsRequestSchema = z.object({
128
+ status: z.string().min(1, "Status is required"),
129
+ age: z.string().optional()
130
+ });
131
+ var AIStatusMessageRequestSchema = z.object({
132
+ status: z.string().min(1, "Status is required"),
133
+ name: z.string().min(1, "Name is required")
134
+ });
135
+ var MetricsQuerySchema = z.object({
136
+ hours: z.string().default("24").transform((val) => parseInt(val, 10)).pipe(z.number().int().positive().max(8760)),
137
+ limit: z.string().default("100").transform((val) => parseInt(val, 10)).pipe(z.number().int().positive().max(1000))
138
+ });
139
+ var InsertMetricRequestSchema = z.object({
140
+ environmentId: z.number().int().positive(),
141
+ cpuPercent: z.number().min(0).max(100),
142
+ memoryPercent: z.number().min(0).max(100),
143
+ memoryUsed: z.number().min(0),
144
+ memoryTotal: z.number().min(0),
145
+ diskPercent: z.number().min(0).max(100),
146
+ diskUsed: z.number().min(0),
147
+ diskTotal: z.number().min(0),
148
+ gpuPercent: z.number().min(0).max(100).optional(),
149
+ gpuMemoryUsed: z.number().min(0).optional(),
150
+ gpuMemoryTotal: z.number().min(0).optional()
151
+ });
152
+ var AIAnalyzeHistoricalRequestSchema = z.object({
153
+ environmentId: z.number().int().positive(),
154
+ hours: z.number().int().positive().max(8760).default(24)
155
+ });
156
+ var SeedInstallRequestSchema = z.object({
157
+ environmentId: z.string().min(1, "Environment ID is required"),
158
+ autoConfirm: z.boolean().default(true).optional()
159
+ });
160
+ var SeedInstallResponseSchema = z.object({
161
+ success: z.boolean(),
162
+ cloned: z.boolean(),
163
+ setupRun: z.boolean(),
164
+ seedPath: z.string(),
165
+ error: z.string().optional(),
166
+ output: z.array(z.string())
167
+ });
168
+ var SeedStatusResponseSchema = z.object({
169
+ installed: z.boolean(),
170
+ setupComplete: z.boolean(),
171
+ version: z.string().optional(),
172
+ branch: z.string().optional()
173
+ });
174
+ var LoginCommandsResponseSchema = z.object({
175
+ ssh: z.string(),
176
+ web: z.string(),
177
+ claude: z.string(),
178
+ quick: z.string()
179
+ });
180
+ var VolumeIdSchema = z.string().transform((val) => parseInt(val, 10)).pipe(z.number().int().positive("Volume ID must be a positive integer"));
181
+ var CreateVolumeRequestSchema = z.object({
182
+ name: z.string().min(1, "Name is required").max(64, "Name must be 64 characters or less").regex(/^[a-zA-Z0-9][a-zA-Z0-9-]*$/, "Name must start with letter/number and contain only letters, numbers, and hyphens"),
183
+ size: z.number().int().positive("Size must be a positive integer").min(10, "Minimum volume size is 10 GB").max(10240, "Maximum volume size is 10 TB"),
184
+ server: z.string().optional(),
185
+ location: z.string().optional(),
186
+ automount: z.boolean().default(true).optional(),
187
+ format: z.enum(["ext4", "xfs"]).optional(),
188
+ labels: z.record(z.string(), z.any()).optional()
189
+ });
190
+ var UpdateVolumeRequestSchema = z.object({
191
+ name: z.string().min(1).max(64).optional(),
192
+ labels: z.record(z.string(), z.any()).optional()
193
+ });
194
+ var AttachVolumeRequestSchema = z.object({
195
+ volumeId: z.number().int().positive("Volume ID is required"),
196
+ serverId: z.number().int().positive("Server ID is required"),
197
+ automount: z.boolean().default(true).optional()
198
+ });
199
+ var DetachVolumeRequestSchema = z.object({
200
+ volumeId: z.number().int().positive("Volume ID is required")
201
+ });
202
+ var ResizeVolumeRequestSchema = z.object({
203
+ volumeId: z.number().int().positive("Volume ID is required"),
204
+ size: z.number().int().positive("Size must be a positive integer").min(10, "Minimum volume size is 10 GB").max(10240, "Maximum volume size is 10 TB")
205
+ });
206
+ var VolumeProtectionRequestSchema = z.object({
207
+ delete: z.boolean()
208
+ });
209
+ var VolumePriceQuerySchema = z.object({
210
+ size: z.number().int().positive("Size must be a positive integer").min(10, "Minimum volume size is 10 GB").max(10240, "Maximum volume size is 10 TB")
211
+ });
212
+ var TmuxSendCommandSchema = z.object({
213
+ sessionId: z.string().min(1, "Session ID is required"),
214
+ command: z.string().min(1, "Command is required"),
215
+ paneIndex: z.string().default("0").optional()
216
+ });
217
+ var TmuxSplitPaneSchema = z.object({
218
+ sessionId: z.string().min(1, "Session ID is required"),
219
+ direction: z.enum(["h", "v"]).default("v"),
220
+ command: z.string().optional()
221
+ });
222
+ var TmuxListWindowsSchema = z.object({
223
+ sessionId: z.string().min(1, "Session ID is required")
224
+ });
225
+ var TmuxListPanesSchema = z.object({
226
+ sessionId: z.string().min(1, "Session ID is required"),
227
+ windowIndex: z.string().default("0").optional()
228
+ });
229
+ var TmuxCapturePaneSchema = z.object({
230
+ sessionId: z.string().min(1, "Session ID is required"),
231
+ paneIndex: z.string().default("0").optional()
232
+ });
233
+ var TmuxGetHistorySchema = z.object({
234
+ sessionId: z.string().min(1, "Session ID is required"),
235
+ paneIndex: z.string().default("0").optional(),
236
+ lines: z.number().int().default(-1).optional()
237
+ });
238
+ var TmuxSwitchWindowSchema = z.object({
239
+ sessionId: z.string().min(1, "Session ID is required"),
240
+ windowIndex: z.string().min(1, "Window index is required")
241
+ });
242
+ var TmuxSwitchPaneSchema = z.object({
243
+ sessionId: z.string().min(1, "Session ID is required"),
244
+ paneIndex: z.string().min(1, "Pane index is required")
245
+ });
246
+ var TmuxRenameWindowSchema = z.object({
247
+ sessionId: z.string().min(1, "Session ID is required"),
248
+ windowIndex: z.string().min(1, "Window index is required"),
249
+ newName: z.string().min(1, "New name is required").max(64)
250
+ });
251
+ var TmuxKillPaneSchema = z.object({
252
+ sessionId: z.string().min(1, "Session ID is required"),
253
+ paneIndex: z.string().min(1, "Pane index is required")
254
+ });
255
+ var TmuxDetailedInfoSchema = z.object({
256
+ sessionId: z.string().min(1, "Session ID is required")
257
+ });
258
+ var TmuxManagerAddNodeSchema = z.object({
259
+ id: z.string().min(1, "Node ID is required"),
260
+ name: z.string().min(1, "Node name is required"),
261
+ ip: z.string().min(1, "IP address is required"),
262
+ ipv6: z.string().nullable().optional(),
263
+ user: z.string().default("root"),
264
+ port: z.number().int().positive().max(65535).default(22),
265
+ keyPath: z.string().optional(),
266
+ status: z.enum(["running", "stopped", "unreachable"]).default("running"),
267
+ tags: z.array(z.string()).optional(),
268
+ location: z.string().optional()
269
+ });
270
+ var TmuxManagerCreateSessionSchema = z.object({
271
+ nodeId: z.string().min(1, "Node ID is required"),
272
+ sessionName: z.string().optional(),
273
+ cwd: z.string().optional(),
274
+ initialCommand: z.string().optional(),
275
+ layout: z.enum(["even-horizontal", "even-vertical", "main-horizontal", "main-vertical", "tiled"]).optional()
276
+ });
277
+ var TmuxManagerAttachSessionSchema = z.object({
278
+ nodeId: z.string().min(1, "Node ID is required"),
279
+ sessionName: z.string().optional()
280
+ });
281
+ var TmuxManagerKillSessionSchema = z.object({
282
+ nodeId: z.string().min(1, "Node ID is required"),
283
+ sessionName: z.string().min(1, "Session name is required")
284
+ });
285
+ var TmuxManagerSendCommandSchema = z.object({
286
+ nodeId: z.string().min(1, "Node ID is required"),
287
+ sessionName: z.string().min(1, "Session name is required"),
288
+ command: z.string().min(1, "Command is required"),
289
+ paneIndex: z.string().default("0")
290
+ });
291
+ var TmuxManagerBatchSendCommandSchema = z.object({
292
+ nodeIds: z.array(z.string().min(1)).min(1, "At least one node ID is required"),
293
+ sessionName: z.string().min(1, "Session name is required"),
294
+ command: z.string().min(1, "Command is required"),
295
+ paneIndex: z.string().default("0"),
296
+ parallel: z.boolean().default(true),
297
+ continueOnError: z.boolean().default(true),
298
+ timeout: z.number().int().positive().default(30)
299
+ });
300
+ var TmuxManagerSplitPaneSchema = z.object({
301
+ nodeId: z.string().min(1, "Node ID is required"),
302
+ sessionName: z.string().min(1, "Session name is required"),
303
+ direction: z.enum(["h", "v"]).default("v"),
304
+ command: z.string().nullable().optional(),
305
+ windowIndex: z.string().default("0")
306
+ });
307
+ var TmuxManagerCapturePaneSchema = z.object({
308
+ nodeId: z.string().min(1, "Node ID is required"),
309
+ sessionName: z.string().min(1, "Session name is required"),
310
+ paneIndex: z.string().default("0")
311
+ });
312
+ var TmuxManagerGetHistorySchema = z.object({
313
+ nodeId: z.string().min(1, "Node ID is required"),
314
+ sessionName: z.string().min(1, "Session name is required"),
315
+ paneIndex: z.string().default("0"),
316
+ lines: z.number().int().default(-1)
317
+ });
318
+ var TmuxManagerListWindowsSchema = z.object({
319
+ nodeId: z.string().min(1, "Node ID is required"),
320
+ sessionName: z.string().min(1, "Session name is required")
321
+ });
322
+ var TmuxManagerListPanesSchema = z.object({
323
+ nodeId: z.string().min(1, "Node ID is required"),
324
+ sessionName: z.string().min(1, "Session name is required"),
325
+ windowIndex: z.string().default("0")
326
+ });
327
+ var TmuxManagerSwitchWindowSchema = z.object({
328
+ nodeId: z.string().min(1, "Node ID is required"),
329
+ sessionName: z.string().min(1, "Session name is required"),
330
+ windowIndex: z.string().min(1, "Window index is required")
331
+ });
332
+ var TmuxManagerSwitchPaneSchema = z.object({
333
+ nodeId: z.string().min(1, "Node ID is required"),
334
+ sessionName: z.string().min(1, "Session name is required"),
335
+ paneIndex: z.string().min(1, "Pane index is required")
336
+ });
337
+ var TmuxManagerRenameWindowSchema = z.object({
338
+ nodeId: z.string().min(1, "Node ID is required"),
339
+ sessionName: z.string().min(1, "Session name is required"),
340
+ windowIndex: z.string().min(1, "Window index is required"),
341
+ newName: z.string().min(1, "New name is required").max(64)
342
+ });
343
+ var TmuxManagerKillPaneSchema = z.object({
344
+ nodeId: z.string().min(1, "Node ID is required"),
345
+ sessionName: z.string().min(1, "Session name is required"),
346
+ paneIndex: z.string().min(1, "Pane index is required")
347
+ });
348
+ var TmuxManagerCleanupOldSessionsSchema = z.object({
349
+ nodeId: z.string().min(1, "Node ID is required"),
350
+ ageLimitMs: z.number().int().positive().default(30 * 24 * 60 * 60 * 1000)
351
+ });
352
+ var TmuxManagerDetailedSessionSchema = z.object({
353
+ nodeId: z.string().min(1, "Node ID is required"),
354
+ sessionName: z.string().min(1, "Session name is required")
355
+ });
356
+ var TmuxManagerListSessionsQuerySchema = z.object({
357
+ nodeIds: z.array(z.string()).optional(),
358
+ tags: z.array(z.string()).optional(),
359
+ detailed: z.boolean().default(false).optional(),
360
+ includeInactive: z.boolean().default(false).optional()
361
+ });
362
+ var AddActivityRequestSchema = z.object({
363
+ environmentId: z.string().min(1, "Environment ID is required"),
364
+ action: z.string().min(1, "Action is required").max(100),
365
+ environmentName: z.string().min(1, "Environment name is required").max(64),
366
+ details: z.string().max(1000).optional()
367
+ });
368
+ var ActivitiesQueryParamsSchema = z.object({
369
+ environmentId: z.string().optional(),
370
+ limit: z.string().default("100").transform((val) => parseInt(val, 10)).pipe(z.number().int().positive().max(1000)).optional(),
371
+ hours: z.string().transform((val) => parseInt(val, 10)).pipe(z.number().int().positive()).optional(),
372
+ since: z.string().datetime().optional(),
373
+ until: z.string().datetime().optional(),
374
+ action: z.string().optional()
375
+ });
376
+ var CleanupActivitiesRequestSchema = z.object({
377
+ environmentId: z.string().optional(),
378
+ keepHours: z.number().int().positive().default(720).optional()
379
+ });
380
+ export {
381
+ VolumeProtectionRequestSchema,
382
+ VolumePriceQuerySchema,
383
+ VolumeIdSchema,
384
+ UpdateVolumeRequestSchema,
385
+ UpdatePluginsRequestSchema,
386
+ UpdateMetadataRequestSchema,
387
+ UpdateActivityRequestSchema,
388
+ TmuxSwitchWindowSchema,
389
+ TmuxSwitchPaneSchema,
390
+ TmuxSplitPaneSchema,
391
+ TmuxSendCommandSchema,
392
+ TmuxRenameWindowSchema,
393
+ TmuxManagerSwitchWindowSchema,
394
+ TmuxManagerSwitchPaneSchema,
395
+ TmuxManagerSplitPaneSchema,
396
+ TmuxManagerSendCommandSchema,
397
+ TmuxManagerRenameWindowSchema,
398
+ TmuxManagerListWindowsSchema,
399
+ TmuxManagerListSessionsQuerySchema,
400
+ TmuxManagerListPanesSchema,
401
+ TmuxManagerKillSessionSchema,
402
+ TmuxManagerKillPaneSchema,
403
+ TmuxManagerGetHistorySchema,
404
+ TmuxManagerDetailedSessionSchema,
405
+ TmuxManagerCreateSessionSchema,
406
+ TmuxManagerCleanupOldSessionsSchema,
407
+ TmuxManagerCapturePaneSchema,
408
+ TmuxManagerBatchSendCommandSchema,
409
+ TmuxManagerAttachSessionSchema,
410
+ TmuxManagerAddNodeSchema,
411
+ TmuxListWindowsSchema,
412
+ TmuxListPanesSchema,
413
+ TmuxKillPaneSchema,
414
+ TmuxGetHistorySchema,
415
+ TmuxDetailedInfoSchema,
416
+ TmuxCapturePaneSchema,
417
+ TerminalResizeSchema,
418
+ TerminalCreateSessionSchema,
419
+ SeedStatusResponseSchema,
420
+ SeedInstallResponseSchema,
421
+ SeedInstallRequestSchema,
422
+ SSHTestRequestSchema,
423
+ SSHKeyIdSchema,
424
+ SSHFingerprintRequestSchema,
425
+ SSHConnectionRequestSchema,
426
+ SCPUploadRequestSchema,
427
+ SCPDownloadRequestSchema,
428
+ ResizeVolumeRequestSchema,
429
+ MetricsQuerySchema,
430
+ LoginCommandsResponseSchema,
431
+ InsertMetricRequestSchema,
432
+ FilesPreviewRequestSchema,
433
+ FilesListRequestSchema,
434
+ EnvironmentIdSchema,
435
+ DetachVolumeRequestSchema,
436
+ CreateVolumeRequestSchema,
437
+ CreateSSHKeyRequestSchema,
438
+ CreateEnvironmentRequestSchema,
439
+ CleanupActivitiesRequestSchema,
440
+ AttachVolumeRequestSchema,
441
+ AddActivityRequestSchema,
442
+ ActivitiesQueryParamsSchema,
443
+ AITroubleshootSSHRequestSchema,
444
+ AISuggestServerTypeRequestSchema,
445
+ AISuggestNameRequestSchema,
446
+ AISuggestActionsRequestSchema,
447
+ AIStatusMessageRequestSchema,
448
+ AIGenerateRequestSchema,
449
+ AIChatRequestSchema,
450
+ AIAnalyzeResourcesRequestSchema,
451
+ AIAnalyzeHistoricalRequestSchema
452
+ };