@opengeni/sdk 0.44.3 → 0.44.6

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/dist/client.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type SessionEventStreamTransport, type StreamSessionEventsOptions } from "./stream";
2
2
  import { type WorkspaceControlStreamTransport } from "./workspace-control-stream";
3
- import type { AccessContext, ActivateCodexRealtimeConnectionRequest, AddWorkspaceMemberRequest, ApiKey, BillingEntitlementsResponse, CodexAccount, CodexAccountsResponse, CodexRotationSettings, CodexOverviewResponse, CodexAllocatorUpdate, CodexConnectionStatus, CodexRealtimeWebrtcRequest, CodexRealtimeWebrtcResponse, GatewayRealtimeConnectRequest, GatewayRealtimeConnectResponse, CodexConnectPoll, CodexConnectStart, CodexUsage, CodexUsageMap, BillingSummary, BillingUsageResponse, InsightsRange, WorkspaceInsightsResponse, BeginSessionRealtimeRequest, CapabilityCatalogItem, CapabilityCatalogResponse, CapabilityInstallation, AddDocumentRequest, CreateKnowledgeDropRequest, MoveDocumentRequest, ClientConfig, WorkspaceModelCatalogResponse, WorkspaceRealtimeModelCatalogResponse, ClientSessionEventInput, CompactSessionContextResult, ConnectionMetadata, CreateApiKeyRequest, CreateApiKeyResponse, CreateCapabilityCatalogItemRequest, CreateCheckoutRequest, CreateCheckoutResponse, OpenGeniSlackBotInstallRequest, OpenGeniSlackBotInstallStart, SlackReactionChannelListResponse, CreateConnectionRequest, CreateDocumentBaseRequest, CreateFileUploadRequest, CreateFileUploadResponse, CreateGitHubAppManifestRequest, CreateGitHubAppManifestResponse, CreateKnowledgeMemoryRequest, CreateScheduledTaskRequest, CreateSessionRequest, CreateSessionResponse, CreateVariableSetRequest, CreateRigRequest, CreateWorkspaceRequest, DeviceEnrollmentApproveResponse, DeviceEnrollmentDenyResponse, DeviceEnrollmentLookupResponse, MintEnrollTokenResponse, EndSessionRealtimeRequest, DiscoverMcpCapabilitiesResponse, Document, DocumentBase, DocumentSearchRequest, DocumentSearchResponse, EnableCapabilityRequest, EnablePackRequest, FileAsset, FileDownloadUrlResponse, GetPackResponse, GitHubAppInfo, GitHubRepositoriesResponse, GoogleDriveDisconnectRequest, GoogleDriveLifecycleActionRequest, KnowledgeMemory, KnowledgeMemorySearchRequest, ListPacksResponse, MachinesResponse, MetricSample, SwapActiveSandboxRequest, SwapActiveSandboxResponse, PackInstallation, LatencyMode, ReasoningEffort, RetainedArtifactContent, RetainedArtifactContentOptions, RetainedArtifactMetadata, RegisterCapabilityPackRequest, ResourceRef, ScheduledTask, ScheduledTaskRun, Session, SessionListResponse, UpdateSessionPinRequest, SessionEvent, SessionEventCompactResult, SessionEventCompactResultOptions, SessionEventListOptions, SessionEventPage, SessionGoal, SessionHumanInputRequest, SessionLineageResponse, SessionRealtimeMutationResponse, SyncSessionRealtimeLedgerRequest, SyncSessionRealtimeLedgerResponse, RenewSessionRealtimeRequest, SessionMcpCredentialUpdateInput, UpdateSessionMcpApprovalPolicyRequest, UpdateSessionMcpApprovalPolicyResponse, SessionQueueSnapshot, SessionQueueMutationResponse, ComposerDraft, DeleteSessionQueueItemRequest, EditSessionQueueItemRequest, MoveSessionQueueItemRequest, NewSessionDraft, SaveComposerDraftRequest, SaveNewSessionDraftRequest, SteerSessionQueueItemRequest, SessionControlResponse, WorkspaceInferenceControlResponse, WorkspaceControlEvent, SessionTurn, SubmitHumanInputResponseRequest, SessionCapabilities, AttachViewerRequest, AttachViewerResponse, AcknowledgeStreamRequest, AcknowledgeStreamResponse, ViewerHeartbeatRequest, ViewerHeartbeatResponse, FsListRequest, FsListResponse, FsReadRequest, FsReadResponse, FsWriteRequest, FsWriteResponse, FsDeleteRequest, FsDeleteResponse, FsMoveRequest, FsMoveResponse, FsMkdirRequest, FsMkdirResponse, GitStatusRequest, GitStatusResponse, GitDiffRequest, GitDiffResponse, GitLogRequest, GitLogResponse, GitShowRequest, GitShowResponse, GetWorkspaceCaptureResponse, GetWorkspaceCaptureFileResponse, TerminalExecRequest, TerminalExecResponse, PtyOpenRequest, PtyOpenResponse, PtyWriteRequest, PtyResizeRequest, PtyCloseRequest, ToolRef, TranscribeAudioResponse, UpdateConnectionRequest, UpdateKnowledgeMemoryRequest, UpdateScheduledTaskRequest, UpdateSessionGoalRequest, UpdateSessionRequest, UpdateSessionToolPolicyRequest, UpdateVariableSetRequest, UpdateRigRequest, UpdateWorkspaceMemberRequest, UpdateWorkspaceRequest, UpdateWorkspaceSettingsRequest, SetWorkspaceDefaultRigRequest, UploadFileInput, VariableSet, VariableSetVariableMetadata, Rig, RigVersion, RigChange, ProposeRigChangeRequest, WorkspaceMember, WorkspaceMemorySearchRequest, WorkspaceMemorySearchResponse, WorkspaceRegisteredPack, Workspace, OAuthStartRequest, OAuthStartResponse, SocialConnection, SocialOAuthStartRequest } from "./types";
3
+ import type { AccessContext, ActivateCodexRealtimeConnectionRequest, AddWorkspaceMemberRequest, ApiKey, BillingEntitlementsResponse, CodexAccount, CodexAccountsResponse, CodexAppsUpdate, CodexRotationSettings, CodexOverviewResponse, CodexAllocatorUpdate, CodexConnectionStatus, CodexRealtimeWebrtcRequest, CodexRealtimeWebrtcResponse, GatewayRealtimeConnectRequest, GatewayRealtimeConnectResponse, CodexConnectPoll, CodexConnectStart, CodexUsage, CodexUsageMap, BillingSummary, BillingUsageResponse, InsightsRange, WorkspaceInsightsResponse, BeginSessionRealtimeRequest, CapabilityCatalogItem, CapabilityCatalogResponse, CapabilityInstallation, AddDocumentRequest, CreateKnowledgeDropRequest, MoveDocumentRequest, ClientConfig, WorkspaceModelCatalogResponse, WorkspaceRealtimeModelCatalogResponse, ClientSessionEventInput, CompactSessionContextResult, ConnectionMetadata, CreateApiKeyRequest, CreateApiKeyResponse, CreateCapabilityCatalogItemRequest, CreateCheckoutRequest, CreateCheckoutResponse, OpenGeniSlackBotInstallRequest, OpenGeniSlackBotInstallStart, SlackReactionChannelListResponse, CreateConnectionRequest, CreateDocumentBaseRequest, CreateFileUploadRequest, CreateFileUploadResponse, CreateGitHubAppManifestRequest, CreateGitHubAppManifestResponse, CreateKnowledgeMemoryRequest, CreateScheduledTaskRequest, CreateSessionRequest, CreateSessionResponse, CreateVariableSetRequest, CreateRigRequest, CreateWorkspaceRequest, DeviceEnrollmentApproveResponse, DeviceEnrollmentDenyResponse, DeviceEnrollmentLookupResponse, MintEnrollTokenResponse, EndSessionRealtimeRequest, DiscoverMcpCapabilitiesResponse, Document, DocumentBase, DocumentSearchRequest, DocumentSearchResponse, EnableCapabilityRequest, EnablePackRequest, FileAsset, FileDownloadUrlResponse, GetPackResponse, GitHubAppInfo, GitHubRepositoriesResponse, GoogleDriveDisconnectRequest, GoogleDriveLifecycleActionRequest, KnowledgeMemory, KnowledgeMemorySearchRequest, ListPacksResponse, MachinesResponse, MetricSample, SwapActiveSandboxRequest, SwapActiveSandboxResponse, PackInstallation, LatencyMode, ReasoningEffort, RetainedArtifactContent, RetainedArtifactContentOptions, RetainedArtifactMetadata, RegisterCapabilityPackRequest, ResourceRef, ScheduledTask, ScheduledTaskRun, Session, SessionListResponse, UpdateSessionPinRequest, SessionEvent, SessionEventCompactResult, SessionEventCompactResultOptions, SessionEventListOptions, SessionEventPage, SessionGoal, SessionHumanInputRequest, SessionLineageResponse, SessionRealtimeMutationResponse, SyncSessionRealtimeLedgerRequest, SyncSessionRealtimeLedgerResponse, RenewSessionRealtimeRequest, SessionMcpCredentialUpdateInput, UpdateSessionMcpApprovalPolicyRequest, UpdateSessionMcpApprovalPolicyResponse, SessionQueueSnapshot, SessionQueueMutationResponse, ComposerDraft, DeleteSessionQueueItemRequest, EditSessionQueueItemRequest, MoveSessionQueueItemRequest, NewSessionDraft, SaveComposerDraftRequest, SaveNewSessionDraftRequest, SteerSessionQueueItemRequest, SessionControlResponse, WorkspaceInferenceControlResponse, WorkspaceControlEvent, SessionTurn, SubmitHumanInputResponseRequest, SessionCapabilities, AttachViewerRequest, AttachViewerResponse, AcknowledgeStreamRequest, AcknowledgeStreamResponse, ViewerHeartbeatRequest, ViewerHeartbeatResponse, FsListRequest, FsListResponse, FsReadRequest, FsReadResponse, FsWriteRequest, FsWriteResponse, FsDeleteRequest, FsDeleteResponse, FsMoveRequest, FsMoveResponse, FsMkdirRequest, FsMkdirResponse, GitStatusRequest, GitStatusResponse, GitDiffRequest, GitDiffResponse, GitLogRequest, GitLogResponse, GitShowRequest, GitShowResponse, GetWorkspaceCaptureResponse, GetWorkspaceCaptureFileResponse, TerminalExecRequest, TerminalExecResponse, PtyOpenRequest, PtyOpenResponse, PtyWriteRequest, PtyResizeRequest, PtyCloseRequest, ToolRef, TranscribeAudioResponse, UpdateConnectionRequest, UpdateKnowledgeMemoryRequest, UpdateScheduledTaskRequest, UpdateSessionGoalRequest, UpdateSessionRequest, UpdateSessionToolPolicyRequest, UpdateVariableSetRequest, UpdateRigRequest, UpdateWorkspaceMemberRequest, UpdateWorkspaceRequest, UpdateWorkspaceSettingsRequest, SetWorkspaceDefaultRigRequest, UploadFileInput, VariableSet, VariableSetVariableMetadata, Rig, RigVersion, RigChange, ProposeRigChangeRequest, WorkspaceMember, WorkspaceMemorySearchRequest, WorkspaceMemorySearchResponse, WorkspaceRegisteredPack, Workspace, OAuthStartRequest, OAuthStartResponse, SocialConnection, SocialOAuthStartRequest } from "./types";
4
4
  import type { ActivateWorkspaceInstructionPolicyRequest, CreateWorkspaceInstructionPolicyDraftRequest, CreateWorkspaceInstructionPolicyOnboardingProposalRequest, ImportLegacyWorkspaceInstructionPolicyDraftRequest, RollbackWorkspaceInstructionPolicyRequest, WorkspaceInstructionPolicyActivationResponse, WorkspaceInstructionPolicyDiffRequest, WorkspaceInstructionPolicyDiffResponse, WorkspaceInstructionPolicyListOptions, WorkspaceInstructionPolicyListResponse, WorkspaceInstructionPolicyOnboardingProposal, WorkspaceInstructionPolicyOnboardingProposalListOptions, WorkspaceInstructionPolicyOnboardingProposalListResponse, WorkspaceInstructionPolicyRevision } from "./workspace-instruction-policies";
5
5
  import type { WorkspaceStateExportResponse, WorkspaceStateGetOptions, WorkspaceStateResponse } from "./workspace-state";
6
6
  import type { ActivatePreferenceRegistryRevisionRequest, ChangePreferenceRegistryScopeRequest, CorrectPreferenceRegistryRequest, CreatePreferenceRegistryProposalRequest, DeactivatePreferenceRegistryRequest, PreferenceRegistryDetailResponse, PreferenceRegistryFullContent, PreferenceRegistryListOptions, PreferenceRegistryListResponse, PreferenceRegistryMutationResponse, PreferenceRegistryRecord, PreferenceRegistrySnapshot, RejectPreferenceRegistryProposalRequest, SupersedePreferenceRegistryRequest } from "./preference-registry";
@@ -667,9 +667,14 @@ export declare class OpenGeniClient {
667
667
  activated: boolean;
668
668
  accountId: string;
669
669
  }>;
670
- /** P3: enable/disable Codex auto-rotation and/or pick the strategy. Returns the effective settings. */
670
+ /** Designate one owner-connected subscription for Apps only. */
671
+ designateCodexAppsAccount(workspaceId: string, accountId: string, expectedVersion: number): Promise<CodexAppsUpdate>;
672
+ /** Clear the Apps credential without changing any inference selection. */
673
+ clearCodexAppsAccount(workspaceId: string, expectedVersion: number): Promise<CodexAppsUpdate>;
674
+ /** Enable or disable Codex auto-rotation. Returns the effective settings. */
671
675
  setCodexRotationSettings(workspaceId: string, patch: {
672
676
  rotationEnabled?: boolean;
677
+ /** @deprecated Rotation now has one effective sharded strategy. */
673
678
  rotationStrategy?: CodexRotationSettings["rotationStrategy"];
674
679
  }): Promise<CodexRotationSettings>;
675
680
  /** Toggle only NEW automatic allocations under independent allocator OCC. */
package/dist/core.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  OPENGENI_API_CONTRACT_REVISION,
4
4
  OpenGeniClient,
5
5
  resolveWorkspaceVoiceInputEnabled
6
- } from "./chunk-UZNQOMWX.js";
6
+ } from "./chunk-ONKUBP7A.js";
7
7
  import {
8
8
  OpenGeniApiContractMismatchError,
9
9
  OpenGeniApiError,
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ import {
17
17
  resolveWorkspaceVoiceInputEnabled,
18
18
  streamSessionEvents,
19
19
  streamWorkspaceControlEvents
20
- } from "./chunk-UZNQOMWX.js";
20
+ } from "./chunk-ONKUBP7A.js";
21
21
  import {
22
22
  CODEX_REALTIME_CONTEXT_APPEND_MAX_BYTES,
23
23
  CodexRealtimeMicrophoneError,
package/dist/types.d.ts CHANGED
@@ -1564,7 +1564,7 @@ export type KnownPermission = (typeof KNOWN_PERMISSIONS)[number];
1564
1564
  * can introduce permissions without breaking older SDK consumers.
1565
1565
  */
1566
1566
  export type Permission = KnownPermission | (string & {});
1567
- export type FirstPartyMcpToolName = "set_session_title" | "goal_set" | "goal_update" | "goal_complete" | "goal_pause" | "memory_search" | "memory_save" | "memory_correct" | "preference_registry_summary" | "preference_registry_get" | "sandboxes_list" | "sandbox_attach" | "sandbox_swap" | "run_on" | "sandbox_provision" | "rig_list" | "rig_get" | "rig_propose_change" | "rig_verify" | "rig_promote" | "sessions_list" | "session_get" | "session_events" | "session_create" | "session_send_message" | "session_pause" | "session_resume" | "session_steer" | "set_other_session_title" | "variable_set_list" | "environment_list" | "variable_set_set_variable" | "environment_set_variable" | "github_connect_link" | "github_token" | "github_repositories_list" | "social_connections_list" | "social_posts_recent" | "social_daily_analysis_context" | "social_search_live" | "social_mentions_live" | "social_thread_fetch" | "social_posts_sync" | "social_post_reply" | "scheduled_tasks_list" | "scheduled_tasks_get" | "scheduled_tasks_create" | "scheduled_tasks_update" | "scheduled_tasks_pause" | "scheduled_tasks_resume" | "scheduled_tasks_trigger" | "scheduled_tasks_delete" | "scheduled_task_runs_list" | "slack_bot_list_channels" | "slack_bot_channel_history" | "slack_bot_thread_replies" | "slack_bot_list_users" | "slack_bot_list_files" | "slack_bot_file_info" | "slack_bot_file_content" | "slack_bot_post_message" | "slack_bot_delete_message" | "artifacts_list" | "artifacts_get_source" | "artifacts_create" | "artifacts_publish" | "artifacts_rollback";
1567
+ export type FirstPartyMcpToolName = "set_session_title" | "goal_set" | "goal_update" | "goal_complete" | "goal_pause" | "memory_search" | "memory_save" | "memory_correct" | "preference_registry_summary" | "preference_registry_get" | "sandboxes_list" | "sandbox_attach" | "sandbox_swap" | "run_on" | "sandbox_provision" | "rig_list" | "rig_get" | "rig_propose_change" | "rig_verify" | "rig_promote" | "sessions_list" | "session_get" | "session_events" | "session_create" | "session_send_message" | "session_pause" | "session_resume" | "session_steer" | "set_other_session_title" | "variable_set_list" | "environment_list" | "variable_set_set_variable" | "environment_set_variable" | "github_connect_link" | "github_repositories_list" | "social_connections_list" | "social_posts_recent" | "social_daily_analysis_context" | "social_search_live" | "social_mentions_live" | "social_thread_fetch" | "social_posts_sync" | "social_post_reply" | "scheduled_tasks_list" | "scheduled_tasks_get" | "scheduled_tasks_create" | "scheduled_tasks_update" | "scheduled_tasks_pause" | "scheduled_tasks_resume" | "scheduled_tasks_trigger" | "scheduled_tasks_delete" | "scheduled_task_runs_list" | "slack_bot_list_channels" | "slack_bot_channel_history" | "slack_bot_thread_replies" | "slack_bot_list_users" | "slack_bot_list_files" | "slack_bot_file_info" | "slack_bot_file_content" | "slack_bot_post_message" | "slack_bot_delete_message" | "artifacts_list" | "artifacts_get_source" | "artifacts_create" | "artifacts_publish" | "artifacts_rollback";
1568
1568
  export type ProductAccessMode = "local" | "configured" | "managed";
1569
1569
  export type ModelCapabilitySupportV1 = "supported" | "unsupported" | "unknown";
1570
1570
  export type ModelCapabilityStateV1 = {
@@ -1774,6 +1774,10 @@ export type CodexAccount = {
1774
1774
  /** Cached authoritative summary count, never detailed redemption authority. */
1775
1775
  resetCreditAvailableCount?: number | null;
1776
1776
  resetCreditsCheckedAt?: string | null;
1777
+ /** True when this exact credential is the workspace's independent Apps credential. */
1778
+ appsDesignated: boolean;
1779
+ /** True only for the scoped managed human who connected it. */
1780
+ canEnableApps: boolean;
1777
1781
  };
1778
1782
  export type CodexResetCredit = {
1779
1783
  id: string;
@@ -1834,24 +1838,37 @@ export type CodexAllocatorUpdate = {
1834
1838
  allocatorUpdatedAt: string | null;
1835
1839
  changed: boolean;
1836
1840
  };
1837
- /** Per-workspace Codex rotation/active settings. P1: rotation inert, only activeCredentialId loads. */
1841
+ /** Per-workspace Codex rotation/active settings. New servers return `sharded`. */
1838
1842
  export type CodexRotationSettings = {
1839
1843
  rotationEnabled: boolean;
1840
- rotationStrategy: "most_remaining" | "round_robin" | "drain_then_next";
1844
+ rotationStrategy: "sharded" | "most_remaining" | "round_robin" | "drain_then_next";
1841
1845
  activeCredentialId: string | null;
1842
1846
  };
1843
1847
  /** GET /codex/accounts — the accounts list + the workspace active pointer + settings. */
1844
1848
  export type CodexAccountsResponse = {
1845
1849
  accounts: CodexAccount[];
1846
1850
  activeAccountId: string | null;
1851
+ /** Added by Apps-aware servers; absent on older same-major deployments. */
1852
+ apps?: {
1853
+ available: boolean;
1854
+ credentialId: string | null;
1855
+ version: number;
1856
+ designatedAt: string | null;
1857
+ canDisable: boolean;
1858
+ };
1847
1859
  settings: CodexRotationSettings;
1848
1860
  };
1861
+ export type CodexAppsUpdate = {
1862
+ credentialId: string | null;
1863
+ version: number;
1864
+ designatedAt: string | null;
1865
+ changed: boolean;
1866
+ };
1849
1867
  /** Payload of a `codex.account.switched` session event. */
1850
1868
  export type CodexAccountSwitchedPayload = {
1851
1869
  fromAccountId: string | null;
1852
1870
  toAccountId: string;
1853
1871
  reason: "manual" | "exhausted" | "rotation";
1854
- droppedConnectors?: string[];
1855
1872
  };
1856
1873
  /** Device-code start: show `userCode` at `verificationUri`, then poll with `state`. */
1857
1874
  export type CodexConnectStart = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opengeni/sdk",
3
- "version": "0.44.3",
3
+ "version": "0.44.6",
4
4
  "description": "Framework-agnostic TypeScript SDK for the OpenGeni API: typed client, session lifecycle, SSE event streaming with reconnect + replay-by-sequence, and proxy re-streaming helpers.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
package/src/client.ts CHANGED
@@ -20,6 +20,7 @@ import type {
20
20
  BillingEntitlementsResponse,
21
21
  CodexAccount,
22
22
  CodexAccountsResponse,
23
+ CodexAppsUpdate,
23
24
  CodexRotationSettings,
24
25
  CodexOverviewResponse,
25
26
  CodexAllocatorUpdate,
@@ -3418,11 +3419,37 @@ export class OpenGeniClient {
3418
3419
  );
3419
3420
  }
3420
3421
 
3421
- /** P3: enable/disable Codex auto-rotation and/or pick the strategy. Returns the effective settings. */
3422
+ /** Designate one owner-connected subscription for Apps only. */
3423
+ async designateCodexAppsAccount(
3424
+ workspaceId: string,
3425
+ accountId: string,
3426
+ expectedVersion: number,
3427
+ ): Promise<CodexAppsUpdate> {
3428
+ return await this.requestJson<CodexAppsUpdate>(
3429
+ "POST",
3430
+ `/v1/workspaces/${workspaceId}/codex/apps`,
3431
+ { accountId, expectedVersion },
3432
+ );
3433
+ }
3434
+
3435
+ /** Clear the Apps credential without changing any inference selection. */
3436
+ async clearCodexAppsAccount(
3437
+ workspaceId: string,
3438
+ expectedVersion: number,
3439
+ ): Promise<CodexAppsUpdate> {
3440
+ return await this.requestJson<CodexAppsUpdate>(
3441
+ "DELETE",
3442
+ `/v1/workspaces/${workspaceId}/codex/apps`,
3443
+ { expectedVersion },
3444
+ );
3445
+ }
3446
+
3447
+ /** Enable or disable Codex auto-rotation. Returns the effective settings. */
3422
3448
  async setCodexRotationSettings(
3423
3449
  workspaceId: string,
3424
3450
  patch: {
3425
3451
  rotationEnabled?: boolean;
3452
+ /** @deprecated Rotation now has one effective sharded strategy. */
3426
3453
  rotationStrategy?: CodexRotationSettings["rotationStrategy"];
3427
3454
  },
3428
3455
  ): Promise<CodexRotationSettings> {
package/src/types.ts CHANGED
@@ -2094,7 +2094,6 @@ export type FirstPartyMcpToolName =
2094
2094
  | "variable_set_set_variable"
2095
2095
  | "environment_set_variable"
2096
2096
  | "github_connect_link"
2097
- | "github_token"
2098
2097
  | "github_repositories_list"
2099
2098
  | "social_connections_list"
2100
2099
  | "social_posts_recent"
@@ -2370,6 +2369,10 @@ export type CodexAccount = {
2370
2369
  /** Cached authoritative summary count, never detailed redemption authority. */
2371
2370
  resetCreditAvailableCount?: number | null;
2372
2371
  resetCreditsCheckedAt?: string | null;
2372
+ /** True when this exact credential is the workspace's independent Apps credential. */
2373
+ appsDesignated: boolean;
2374
+ /** True only for the scoped managed human who connected it. */
2375
+ canEnableApps: boolean;
2373
2376
  };
2374
2377
 
2375
2378
  export type CodexResetCredit = {
@@ -2436,10 +2439,10 @@ export type CodexAllocatorUpdate = {
2436
2439
  changed: boolean;
2437
2440
  };
2438
2441
 
2439
- /** Per-workspace Codex rotation/active settings. P1: rotation inert, only activeCredentialId loads. */
2442
+ /** Per-workspace Codex rotation/active settings. New servers return `sharded`. */
2440
2443
  export type CodexRotationSettings = {
2441
2444
  rotationEnabled: boolean;
2442
- rotationStrategy: "most_remaining" | "round_robin" | "drain_then_next";
2445
+ rotationStrategy: "sharded" | "most_remaining" | "round_robin" | "drain_then_next";
2443
2446
  activeCredentialId: string | null;
2444
2447
  };
2445
2448
 
@@ -2447,18 +2450,29 @@ export type CodexRotationSettings = {
2447
2450
  export type CodexAccountsResponse = {
2448
2451
  accounts: CodexAccount[];
2449
2452
  activeAccountId: string | null;
2453
+ /** Added by Apps-aware servers; absent on older same-major deployments. */
2454
+ apps?: {
2455
+ available: boolean;
2456
+ credentialId: string | null;
2457
+ version: number;
2458
+ designatedAt: string | null;
2459
+ canDisable: boolean;
2460
+ };
2450
2461
  settings: CodexRotationSettings;
2451
2462
  };
2452
2463
 
2464
+ export type CodexAppsUpdate = {
2465
+ credentialId: string | null;
2466
+ version: number;
2467
+ designatedAt: string | null;
2468
+ changed: boolean;
2469
+ };
2470
+
2453
2471
  /** Payload of a `codex.account.switched` session event. */
2454
2472
  export type CodexAccountSwitchedPayload = {
2455
2473
  fromAccountId: string | null;
2456
2474
  toAccountId: string;
2457
2475
  reason: "manual" | "exhausted" | "rotation";
2458
- // P4 connector-aware rotation: the session's used connectors that the new account
2459
- // does NOT cover (a prefer-not-require failover that dropped a connector). Present
2460
- // only on such a switch; the UI renders a "dropped <connector>" badge on the pill.
2461
- droppedConnectors?: string[];
2462
2476
  };
2463
2477
 
2464
2478
  /** Device-code start: show `userCode` at `verificationUri`, then poll with `state`. */