remote-codex 0.11.31 → 0.11.32

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.
@@ -1,6 +1,4 @@
1
- import type {
2
- AgentBackendIdDto,
3
- } from './agent-providers';
1
+ import type { AgentBackendIdDto } from './agent-providers';
4
2
 
5
3
  export {
6
4
  agentBackendIds,
@@ -110,6 +108,9 @@ export interface RelayDeviceDto {
110
108
  connectedAt: string | null;
111
109
  lastHeartbeatAt: string | null;
112
110
  createdAt: string;
111
+ hostedStatus?: RelayHostedSandboxStatusDto | null;
112
+ hostedActiveTurnCount?: number;
113
+ hostedIdleDeadlineAt?: string | null;
113
114
  }
114
115
 
115
116
  export interface RelayAdminUserDto extends RelayUserDto {
@@ -145,6 +146,12 @@ export interface RelayRegistrationSettingsDto {
145
146
  enabled: boolean;
146
147
  registrationPassword: string | null;
147
148
  approvalRequired: boolean;
149
+ googleAuthEnabled: boolean;
150
+ githubAuthEnabled: boolean;
151
+ emailVerificationEnabled: boolean;
152
+ googleAuthAvailable: boolean;
153
+ githubAuthAvailable: boolean;
154
+ emailVerificationAvailable: boolean;
148
155
  }
149
156
 
150
157
  export interface RelayPendingRegistrationDto {
@@ -152,6 +159,7 @@ export interface RelayPendingRegistrationDto {
152
159
  email: string;
153
160
  username: string;
154
161
  createdAt: string;
162
+ provider?: 'password' | 'google' | 'github';
155
163
  }
156
164
 
157
165
  export type RelayThreadAccessDto = 'read' | 'control';
@@ -297,6 +305,7 @@ export interface RelaySessionDto {
297
305
  authenticated: boolean;
298
306
  user: RelayUserDto | null;
299
307
  registrationEnabled: boolean;
308
+ registrationSettings?: RelayRegistrationSettingsDto;
300
309
  }
301
310
 
302
311
  export interface RelayLoginResultDto {
@@ -337,6 +346,153 @@ export interface RelayAdminSummaryDto {
337
346
  registrationEnabled: boolean;
338
347
  }
339
348
 
349
+ export type RelayHostedSandboxProviderDto = 'disabled' | 'incus';
350
+
351
+ export interface RelayHostedSandboxCapabilityDto {
352
+ provider: RelayHostedSandboxProviderDto;
353
+ configured: boolean;
354
+ reachable: boolean;
355
+ available: boolean;
356
+ reasonCode: string | null;
357
+ reason: string | null;
358
+ checkedAt: string;
359
+ limits?: {
360
+ maxInstances: number;
361
+ maxRunningInstances: number;
362
+ };
363
+ capacity?: {
364
+ totalInstances: number;
365
+ runningInstances: number;
366
+ };
367
+ metrics?: {
368
+ cpuCount: number;
369
+ load1: number;
370
+ loadPerCpu: number;
371
+ memoryTotalMiB: number;
372
+ memoryAvailableMiB: number;
373
+ diskTotalGiB: number;
374
+ diskAvailableGiB: number;
375
+ monitorPath: string;
376
+ };
377
+ alerts?: Array<{
378
+ code: 'host_memory_low' | 'host_disk_low' | 'host_load_high';
379
+ severity: 'warning';
380
+ message: string;
381
+ }>;
382
+ }
383
+
384
+ export type RelayHostedSandboxStatusDto =
385
+ | 'requested'
386
+ | 'creating'
387
+ | 'starting'
388
+ | 'provisioning'
389
+ | 'stopped'
390
+ | 'online'
391
+ | 'stopping'
392
+ | 'error'
393
+ | 'deleting';
394
+
395
+ export type RelayHostedSandboxOperationActionDto =
396
+ | 'create'
397
+ | 'start'
398
+ | 'stop'
399
+ | 'snapshot'
400
+ | 'delete'
401
+ | 'rotate_credential';
402
+
403
+ export type RelayHostedSandboxOperationStatusDto =
404
+ | 'pending'
405
+ | 'running'
406
+ | 'succeeded'
407
+ | 'failed';
408
+
409
+ export interface RelayHostedSandboxResourcesDto {
410
+ cpuCount: number;
411
+ memoryMiB: number;
412
+ diskGiB: number;
413
+ }
414
+
415
+ export interface RelayHostedCodexConfigDto {
416
+ modelProvider: string;
417
+ model: string;
418
+ reviewModel: string;
419
+ reasoningEffort: 'low' | 'medium' | 'high' | 'xhigh';
420
+ baseUrl: string;
421
+ wireApi: 'responses';
422
+ requiresOpenaiAuth: boolean;
423
+ disableResponseStorage: boolean;
424
+ networkAccess: 'enabled' | 'disabled';
425
+ goals: boolean;
426
+ }
427
+
428
+ export interface RelayHostedSandboxMemberDto {
429
+ userId: string;
430
+ username: string;
431
+ email: string;
432
+ }
433
+
434
+ export interface RelayHostedCodexFilesDto {
435
+ configToml: string;
436
+ authJson: string;
437
+ }
438
+
439
+ export interface RelayHostedSandboxDto {
440
+ id: string;
441
+ deviceId: string;
442
+ deviceName: string;
443
+ assignedUserId: string;
444
+ assignedUsername: string;
445
+ assignedUsers: RelayHostedSandboxMemberDto[];
446
+ workspaceIsolationEnabled: boolean;
447
+ createdByAdminUserId: string;
448
+ provider: 'incus';
449
+ providerInstanceId: string | null;
450
+ imageVersion: string;
451
+ resources: RelayHostedSandboxResourcesDto;
452
+ status: RelayHostedSandboxStatusDto;
453
+ lastErrorCode: string | null;
454
+ lastErrorMessage: string | null;
455
+ activeTurnCount: number;
456
+ lastUserActivityAt: string | null;
457
+ idleDeadlineAt: string | null;
458
+ runningSince: string | null;
459
+ createdAt: string;
460
+ updatedAt: string;
461
+ }
462
+
463
+ export interface RelayHostedSandboxOperationDto {
464
+ id: string;
465
+ sandboxId: string;
466
+ action: RelayHostedSandboxOperationActionDto;
467
+ status: RelayHostedSandboxOperationStatusDto;
468
+ errorCode: string | null;
469
+ errorMessage: string | null;
470
+ createdAt: string;
471
+ updatedAt: string;
472
+ }
473
+
474
+ export interface RelayHostedSandboxDetailDto extends RelayHostedSandboxDto {
475
+ operations: RelayHostedSandboxOperationDto[];
476
+ }
477
+
478
+ export interface RelayHostedSandboxReconciliationDto {
479
+ status: 'never_run' | 'healthy' | 'issues' | 'unavailable';
480
+ checkedAt: string | null;
481
+ errorCode: string | null;
482
+ missingInstanceSandboxIds: string[];
483
+ missingCredentialSandboxIds: string[];
484
+ orphanInstances: Array<{
485
+ id: string;
486
+ status: string;
487
+ snapshots: string[];
488
+ }>;
489
+ orphanCredentials: Array<{
490
+ credentialRef: string;
491
+ createdAt: string;
492
+ }>;
493
+ orphanSnapshotCount: number;
494
+ }
495
+
340
496
  export type RelaySupervisorEnvelope =
341
497
  | {
342
498
  type: 'relay.connected';
@@ -348,6 +504,16 @@ export type RelaySupervisorEnvelope =
348
504
  timestamp: string;
349
505
  deviceId?: string;
350
506
  }
507
+ | {
508
+ type: 'relay.activity';
509
+ timestamp: string;
510
+ deviceId?: string;
511
+ payload: {
512
+ kind: 'turn_started' | 'turn_terminal';
513
+ threadId: string;
514
+ turnId: string;
515
+ };
516
+ }
351
517
  | {
352
518
  type: 'relay.request';
353
519
  timestamp: string;
@@ -408,6 +574,22 @@ export interface AgentRuntimeStatusDto {
408
574
  restartCount: number;
409
575
  }
410
576
 
577
+ export interface AgentSubscriptionUsageWindowDto {
578
+ id: string;
579
+ durationMinutes: number | null;
580
+ label: string;
581
+ usedPercent: number;
582
+ resetsAt: string | null;
583
+ }
584
+
585
+ export interface AgentSubscriptionUsageDto {
586
+ provider: 'codex' | 'claude';
587
+ authKind: 'subscription' | 'apiKey' | 'unknown';
588
+ observedAt: string;
589
+ stale: boolean;
590
+ windows: AgentSubscriptionUsageWindowDto[];
591
+ }
592
+
411
593
  export interface AgentProviderCapabilitiesDto {
412
594
  sessions: {
413
595
  list: boolean;
@@ -535,6 +717,7 @@ export interface VersionDto {
535
717
  export interface HealthDto {
536
718
  status: 'ok';
537
719
  timestamp: string;
720
+ activeTurnCount: number;
538
721
  }
539
722
 
540
723
  export type ProviderHostFileNameDto = string;
@@ -596,7 +779,9 @@ export interface CreateWorkspaceFromGitInput {
596
779
  label?: string;
597
780
  }
598
781
 
599
- export type CreateWorkspaceInput = CreateWorkspaceFromPathInput | CreateWorkspaceFromGitInput;
782
+ export type CreateWorkspaceInput =
783
+ | CreateWorkspaceFromPathInput
784
+ | CreateWorkspaceFromGitInput;
600
785
 
601
786
  export interface WorkspaceSettingsDto {
602
787
  workspaceRoot: string;
@@ -705,7 +890,10 @@ export type ReasoningEffortDto =
705
890
  | 'max'
706
891
  | 'ultra';
707
892
  export type CollaborationModeDto = 'default' | 'plan';
708
- export type SandboxModeDto = 'read-only' | 'workspace-write' | 'danger-full-access';
893
+ export type SandboxModeDto =
894
+ | 'read-only'
895
+ | 'workspace-write'
896
+ | 'danger-full-access';
709
897
 
710
898
  export interface ReasoningEffortOptionDto {
711
899
  reasoningEffort: ReasoningEffortDto;
@@ -1053,7 +1241,11 @@ export type AgentHookSourceDto =
1053
1241
  | 'legacyManagedConfigFile'
1054
1242
  | 'legacyManagedConfigMdm'
1055
1243
  | 'unknown';
1056
- export type AgentHookTrustStatusDto = 'managed' | 'untrusted' | 'trusted' | 'modified';
1244
+ export type AgentHookTrustStatusDto =
1245
+ | 'managed'
1246
+ | 'untrusted'
1247
+ | 'trusted'
1248
+ | 'modified';
1057
1249
 
1058
1250
  export interface AgentHookDto {
1059
1251
  key: string;
@@ -1156,6 +1348,7 @@ export interface ThreadPendingSteerDto {
1156
1348
  clientRequestId: string | null;
1157
1349
  turnId: string;
1158
1350
  prompt: string;
1351
+ delivery: 'steer' | 'continuation';
1159
1352
  createdAt: string;
1160
1353
  }
1161
1354
 
@@ -13,9 +13,9 @@ const sourceCheckout =
13
13
  const defaultServicePort = sourceCheckout ? 4173 : 45673;
14
14
  const defaultApiPort = sourceCheckout ? 8787 : 45674;
15
15
 
16
- const serviceHost = process.env.SERVICE_HOST ?? '127.0.0.1';
16
+ const serviceHost = process.env.SERVICE_HOST ?? '0.0.0.0';
17
17
  const servicePort = parsePort(process.env.SERVICE_PORT, defaultServicePort);
18
- const apiHost = process.env.SERVICE_API_HOST ?? '127.0.0.1';
18
+ const apiHost = process.env.SERVICE_API_HOST ?? '0.0.0.0';
19
19
  const apiPort = parsePort(process.env.SERVICE_API_PORT, defaultApiPort);
20
20
  const distDir = path.resolve(
21
21
  process.env.SERVICE_WEB_DIST_DIR ?? path.join(repoRoot, 'apps/supervisor-web/dist')
@@ -23,9 +23,9 @@ const webIndex = path.join(repoRoot, 'apps', 'supervisor-web', 'dist', 'index.ht
23
23
  const defaultServicePort = supportsSourceRestart ? 4173 : 45673;
24
24
  const defaultApiPort = supportsSourceRestart ? 8787 : 45674;
25
25
 
26
- const serviceHost = process.env.SERVICE_HOST ?? '127.0.0.1';
26
+ const serviceHost = process.env.SERVICE_HOST ?? '0.0.0.0';
27
27
  const servicePort = parsePort(process.env.SERVICE_PORT, defaultServicePort);
28
- const apiHost = process.env.SERVICE_API_HOST ?? '127.0.0.1';
28
+ const apiHost = process.env.SERVICE_API_HOST ?? '0.0.0.0';
29
29
  const apiPort = parsePort(process.env.SERVICE_API_PORT, defaultApiPort);
30
30
 
31
31
  const command = process.argv[2];