@opengeni/sdk 0.13.0 → 0.20.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.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,191 @@
1
- type SessionStatus = "queued" | "running" | "idle" | "requires_action" | "recovering" | "waiting_capacity" | "paused" | "failed" | "cancelled";
1
+ /**
2
+ * Framework- and transport-agnostic speech-to-text capability contract.
3
+ *
4
+ * Audio transport, microphone access, credentials, and provider SDKs belong to
5
+ * host-supplied adapters. This module deliberately contains no browser globals
6
+ * and no provider implementation.
7
+ */
8
+ type TranscriptionCredentialMode = "managed" | "byok";
9
+ type WorkspaceTranscriptionTarget = {
10
+ provider: string;
11
+ model: string | null;
12
+ credentialMode: TranscriptionCredentialMode;
13
+ /** Workspace-scoped connection reference. This is never a secret. */
14
+ credentialConnectionId: string | null;
15
+ region: string | null;
16
+ };
17
+ type WorkspaceTranscriptionPolicy = {
18
+ enabled: boolean;
19
+ /** Exact admin-accepted policy identity; required whenever enabled. */
20
+ acceptanceId: string | null;
21
+ primary: WorkspaceTranscriptionTarget | null;
22
+ /** Explicit language preference. Required when automatic detection is not accepted. */
23
+ language: string | null;
24
+ /** Whether the accepted adapter may automatically detect the spoken language. */
25
+ autoDetectLanguage: boolean;
26
+ /** Whether the accepted adapter may identify distinct speakers. */
27
+ diarization: {
28
+ enabled: boolean;
29
+ maxSpeakers: number | null;
30
+ };
31
+ retention: {
32
+ mode: "none" | "provider-policy";
33
+ maxDays: number | null;
34
+ };
35
+ privacy: {
36
+ allowProviderLogging: boolean;
37
+ allowProviderTraining: boolean;
38
+ };
39
+ fallback: {
40
+ mode: "disabled" | "explicit";
41
+ targets: WorkspaceTranscriptionTarget[];
42
+ };
43
+ cost: {
44
+ currency: "USD";
45
+ maxPerHour: number | null;
46
+ maxPerMonth: number | null;
47
+ };
48
+ };
49
+ declare const DEFAULT_WORKSPACE_TRANSCRIPTION_POLICY: WorkspaceTranscriptionPolicy;
50
+ type TranscriptionAdapterDescriptor = {
51
+ provider: string;
52
+ model: string | null;
53
+ credentialMode: TranscriptionCredentialMode;
54
+ region: string | null;
55
+ };
56
+ type TranscriptionTargetSelection = {
57
+ kind: "primary";
58
+ } | {
59
+ kind: "fallback";
60
+ index: number;
61
+ };
62
+ type TranscriptionPolicyBlockReason = "disabled" | "unaccepted" | "target_missing" | "fallback_disabled" | "fallback_unaccepted" | "provider_mismatch" | "model_mismatch" | "credential_mode_mismatch" | "region_mismatch";
63
+ type TranscriptionAuthorization = {
64
+ authorized: true;
65
+ acceptanceId: string;
66
+ target: WorkspaceTranscriptionTarget;
67
+ selection: TranscriptionTargetSelection;
68
+ } | {
69
+ authorized: false;
70
+ reason: TranscriptionPolicyBlockReason;
71
+ };
72
+ type TranscriptionLifecycleStatus = "idle" | "requesting-permission" | "listening" | "reconnecting" | "cancelling" | "closed" | "error";
73
+ type TranscriptionErrorCode = "permission_denied" | "not_supported" | "network" | "provider" | "policy_blocked" | "timeout" | "cancelled" | "unknown";
74
+ type TranscriptionTimeSpan = {
75
+ startMilliseconds: number;
76
+ endMilliseconds: number;
77
+ };
78
+ type TranscriptionSpeaker = {
79
+ /** Provider-neutral identity stable within the local transcription session. */
80
+ id: string;
81
+ label?: string | undefined;
82
+ };
83
+ type TranscriptionWord = {
84
+ text: string;
85
+ span: TranscriptionTimeSpan;
86
+ confidence?: number | undefined;
87
+ speaker?: TranscriptionSpeaker | undefined;
88
+ };
89
+ /** Optional result detail; adapters omit fields their provider cannot supply. */
90
+ type TranscriptionResultMetadata = {
91
+ detectedLanguage?: string | undefined;
92
+ span?: TranscriptionTimeSpan | undefined;
93
+ confidence?: number | undefined;
94
+ speaker?: TranscriptionSpeaker | undefined;
95
+ words?: TranscriptionWord[] | undefined;
96
+ };
97
+ type TranscriptionDiagnostic = {
98
+ operation: "start" | "session" | "cancel" | "close";
99
+ code: TranscriptionErrorCode;
100
+ /** Diagnostic-only detail. React sanitizes and bounds this before forwarding it. */
101
+ detail: string;
102
+ };
103
+ type TranscriptionEventBase = {
104
+ /** Stable across reconnects and explicitly accepted fallback attempts. */
105
+ localSessionId: string;
106
+ /** Adapter-monotonic across the entire local session, including replay. */
107
+ sequence: number;
108
+ occurredAt: string;
109
+ };
110
+ type TranscriptionEvent = (TranscriptionEventBase & {
111
+ type: "permission.requested";
112
+ }) | (TranscriptionEventBase & {
113
+ type: "session.opened";
114
+ providerSessionId: string;
115
+ }) | (TranscriptionEventBase & {
116
+ type: "transcript.partial";
117
+ segmentId: string;
118
+ text: string;
119
+ metadata?: TranscriptionResultMetadata | undefined;
120
+ }) | (TranscriptionEventBase & {
121
+ type: "transcript.final";
122
+ segmentId: string;
123
+ text: string;
124
+ /** Stable provider/coordinator acceptance identity used for dedupe. */
125
+ providerAcceptanceId: string;
126
+ metadata?: TranscriptionResultMetadata | undefined;
127
+ }) | (TranscriptionEventBase & {
128
+ type: "usage";
129
+ audioMilliseconds: number;
130
+ costUsd: number | null;
131
+ }) | (TranscriptionEventBase & {
132
+ type: "session.reconnecting";
133
+ attempt: number;
134
+ reason: string;
135
+ }) | (TranscriptionEventBase & {
136
+ type: "session.error";
137
+ code: TranscriptionErrorCode;
138
+ recoverable: boolean;
139
+ }) | (TranscriptionEventBase & {
140
+ type: "session.closed";
141
+ reason: "completed" | "cancelled" | "error" | "replaced";
142
+ });
143
+ type TranscriptionSessionRequest = {
144
+ localSessionId: string;
145
+ policyAcceptanceId: string;
146
+ selection: TranscriptionTargetSelection;
147
+ target: WorkspaceTranscriptionTarget;
148
+ language: string | null;
149
+ autoDetectLanguage: boolean;
150
+ diarization: WorkspaceTranscriptionPolicy["diarization"];
151
+ retention: WorkspaceTranscriptionPolicy["retention"];
152
+ privacy: WorkspaceTranscriptionPolicy["privacy"];
153
+ cost: WorkspaceTranscriptionPolicy["cost"];
154
+ /** A replacement/reconnect adapter must emit events above this floor. */
155
+ sequenceFloor: number;
156
+ };
157
+ type TranscriptionEventListener = (event: TranscriptionEvent) => void;
158
+ type TranscriptionAdapterStartContext = {
159
+ /** Aborted on local cancellation, policy replacement, timeout, or unmount. */
160
+ signal: AbortSignal;
161
+ /** Non-UI observability seam; callers receive only bounded, redacted detail. */
162
+ reportDiagnostic: (diagnostic: TranscriptionDiagnostic) => void;
163
+ };
164
+ type TranscriptionSession = {
165
+ readonly localSessionId: string;
166
+ cancel(reason?: string): Promise<void>;
167
+ close(): Promise<void>;
168
+ };
169
+ type TranscriptionAdapter = {
170
+ readonly descriptor: TranscriptionAdapterDescriptor;
171
+ start(request: TranscriptionSessionRequest, listener: TranscriptionEventListener, context: TranscriptionAdapterStartContext): Promise<TranscriptionSession>;
172
+ };
173
+ /** Invalid or absent settings always resolve to the fail-closed default. */
174
+ declare function resolveWorkspaceTranscriptionPolicy(settings: unknown): WorkspaceTranscriptionPolicy;
175
+ /**
176
+ * Speech authorization is intentionally independent from turn model policy.
177
+ * Every selected adapter must match one exact admin-accepted target.
178
+ */
179
+ declare function authorizeTranscriptionAdapter(policy: WorkspaceTranscriptionPolicy, descriptor: TranscriptionAdapterDescriptor, selection?: TranscriptionTargetSelection): TranscriptionAuthorization;
180
+ declare function createTranscriptionSessionRequest(input: {
181
+ policy: WorkspaceTranscriptionPolicy;
182
+ adapter: TranscriptionAdapter;
183
+ localSessionId: string;
184
+ selection?: TranscriptionTargetSelection | undefined;
185
+ sequenceFloor?: number | undefined;
186
+ }): TranscriptionSessionRequest | null;
187
+
188
+ type SessionStatus = "queued" | "running" | "idle" | "requires_action" | "recovering" | "waiting_capacity" | "failed" | "cancelled";
2
189
  type SandboxBackend = "docker" | "modal" | "local" | "none" | "daytona" | "runloop" | "e2b" | "blaxel" | "cloudflare" | "vercel" | "selfhosted";
3
190
  type SandboxOs = "linux" | "macos" | "windows";
4
191
  type SandboxCapabilityName = "FileSystem" | "Terminal" | "Git" | "DesktopStream" | "Recording";
@@ -125,13 +312,23 @@ type ViewerHeartbeatResponse = {
125
312
  };
126
313
  type ReasoningEffort = "none" | "minimal" | "low" | "medium" | "high" | "xhigh";
127
314
  type GitCredentialProvider = "github" | "gitlab" | "azure_devops";
315
+ type GitCredentialBindingId = string;
316
+ type GitRepositoryAccess = "read" | "write";
128
317
  type RepositoryResourceRef = {
129
318
  kind: "repository";
130
319
  uri: string;
131
320
  ref: string;
321
+ /**
322
+ * Optional workspace-relative override. When omitted, OpenGeni persists
323
+ * `repos/<encoded-host>/<owner>/<repo>` so equal names on different Git
324
+ * providers do not collide. Explicit paths are portable, traversal-free, and
325
+ * collision-checked case-insensitively before sandbox execution.
326
+ */
132
327
  mountPath?: string | undefined;
133
328
  subpath?: string | undefined;
134
329
  provider?: GitCredentialProvider | undefined;
330
+ credentialBindingId?: GitCredentialBindingId | undefined;
331
+ access?: GitRepositoryAccess | undefined;
135
332
  repositoryId?: number | string | undefined;
136
333
  installationId?: number | string | undefined;
137
334
  projectId?: number | string | undefined;
@@ -142,6 +339,7 @@ type RepositoryResourceRef = {
142
339
  type FileResourceRef = {
143
340
  kind: "file";
144
341
  fileId: string;
342
+ /** Optional workspace-relative override; defaults to `files/<file-id>`. */
145
343
  mountPath?: string | undefined;
146
344
  };
147
345
  type ResourceRef = RepositoryResourceRef | FileResourceRef;
@@ -161,7 +359,10 @@ type SessionMcpServerInput = {
161
359
  allowedTools?: string[] | undefined;
162
360
  timeoutMs?: number | undefined;
163
361
  cacheToolsList?: boolean | undefined;
362
+ /** Require human approval for every tool, or only the listed unprefixed tool names. */
363
+ requireApproval?: boolean | string[] | undefined;
164
364
  headers?: Record<string, string> | undefined;
365
+ connectionRef?: McpServerConnectionRef | undefined;
165
366
  };
166
367
  type SessionMcpCredentialUpdateInput = {
167
368
  id: string;
@@ -173,15 +374,21 @@ type SessionMcpServerMetadata = {
173
374
  url: string;
174
375
  headerNames: string[];
175
376
  credentialVersion: number;
377
+ connectionRef: McpServerConnectionRef | null;
176
378
  };
177
379
  type ConnectionKind = "oauth2" | "api_key" | "app_install" | "delegated";
178
380
  type ConnectionStatus = "active" | "needs_reauth" | "revoked" | "error";
179
381
  type McpServerConnectionRef = {
180
382
  connectionId?: string | undefined;
383
+ provider?: string | undefined;
181
384
  providerDomain: string;
182
385
  kind?: ConnectionKind | undefined;
183
386
  scopes?: string[] | undefined;
184
387
  resource?: string | undefined;
388
+ selectedResources?: Array<{
389
+ id: string;
390
+ kind: "repository";
391
+ }> | undefined;
185
392
  subjectScope?: "workspace" | "subject" | undefined;
186
393
  };
187
394
  type ConnectionMetadata = {
@@ -247,6 +454,19 @@ type OAuthStartResponse = {
247
454
  authorizationUrl: string | null;
248
455
  expiresAt: string;
249
456
  };
457
+ /** The immutable principal whose authority accepted a session or turn. */
458
+ type TurnInitiator = {
459
+ kind: "subject" | "service";
460
+ subjectId: string;
461
+ /** Display-only snapshot; never an authorization input. */
462
+ label?: string | undefined;
463
+ };
464
+ /** A trusted embedding host's causal machine/service principal. */
465
+ type ServiceTurnInitiator = TurnInitiator & {
466
+ kind: "service";
467
+ };
468
+ /** Bounded host provenance; OpenGeni-owned lineage keys are reserved. */
469
+ type ServiceTurnInitiatorContext = Record<string, unknown>;
250
470
  type IntegrationClientMetadata = {
251
471
  client_id: string;
252
472
  client_name: "OpenGeni";
@@ -267,6 +487,9 @@ type Session = {
267
487
  resources: ResourceRef[];
268
488
  tools: ToolRef[];
269
489
  metadata: Record<string, unknown>;
490
+ /** Frozen creator fact; later turns carry their own independent initiator. */
491
+ createdBy: TurnInitiator;
492
+ createdByContext: Record<string, unknown>;
270
493
  model: string;
271
494
  sandboxBackend: SandboxBackend;
272
495
  sandboxOs: SandboxOs;
@@ -287,12 +510,7 @@ type Session = {
287
510
  queueVersion: number;
288
511
  queueHeadPosition: number;
289
512
  queueTailPosition: number;
290
- controlState: "active" | "paused";
291
- controlGeneration: number;
292
- controlReason: string | null;
293
- controlChangedBy: string | null;
294
- controlChangedAt: string | null;
295
- workspaceRunExceptionGeneration: number | null;
513
+ effectiveControl: EffectiveSessionControl;
296
514
  lastSequence: number;
297
515
  /** Multi-account Codex (P1): the account this session is pinned to (null ⇒ follow workspace active). */
298
516
  codexPinnedCredentialId?: string | null;
@@ -313,14 +531,22 @@ type Session = {
313
531
  attentionDescendants: number;
314
532
  pausedDescendants: number;
315
533
  failedDescendants: number;
534
+ /** Counts are lower bounds rather than exact totals when true. */
535
+ truncated: boolean;
316
536
  } | undefined;
317
537
  createdAt: string;
318
538
  updatedAt: string;
319
539
  };
540
+ /** Additive receipt returned by POST /sessions. */
541
+ type CreateSessionResponse = Session & {
542
+ initialTurnId: string | null;
543
+ };
320
544
  type SessionSummary = Session;
321
545
  /** Canonical session-list page; pinned rows are excluded from ordinary pages. */
322
546
  type SessionListResponse = {
323
547
  pinned: Session[];
548
+ /** True when the server omitted older pins from its bounded pinned section. */
549
+ pinnedTruncated?: boolean;
324
550
  sessions: Session[];
325
551
  nextCursor: string | null;
326
552
  };
@@ -337,7 +563,7 @@ type SessionLineageResponse = {
337
563
  children: LineageNode[];
338
564
  truncated: boolean;
339
565
  };
340
- type SessionTurnStatus = "queued" | "running" | "requires_action" | "recovering" | "waiting_capacity" | "completed" | "failed" | "cancelled" | "superseded";
566
+ type SessionTurnStatus = "queued" | "running" | "requires_action" | "recovering" | "waiting_capacity" | "completed" | "failed" | "cancelled" | "superseded" | "withdrawn_for_edit";
341
567
  type SessionTurnSource = "user" | "scheduled_task" | "api" | "goal" | "system" | "compaction";
342
568
  type SessionTurn = {
343
569
  id: string;
@@ -360,6 +586,8 @@ type SessionTurn = {
360
586
  executionGeneration: number;
361
587
  activeAttemptId: string | null;
362
588
  lineage: Record<string, unknown>;
589
+ initiator: TurnInitiator;
590
+ initiatorContext: Record<string, unknown>;
363
591
  cancelledBy?: string | null;
364
592
  cancelReason?: string | null;
365
593
  startedAt: string | null;
@@ -367,7 +595,64 @@ type SessionTurn = {
367
595
  createdAt: string;
368
596
  updatedAt: string;
369
597
  };
370
- declare const SESSION_EVENT_TYPES: readonly ["session.created", "session.status.changed", "session.requiresAction", "session.context.compaction.requested", "session.context.compacted", "session.context.compaction.skipped", "session.context.cleared", "user.message", "user.pause", "user.approvalDecision", "turn.queued", "turn.started", "turn.completed", "turn.failed", "turn.cancelled", "turn.superseded", "turn.recovery.requested", "turn.capacity_waiting", "agent.message.delta", "agent.message.completed", "agent.reasoning.delta", "agent.toolCall.created", "agent.toolCall.output", "agent.model.usage", "tool.auth_needed", "agent.updated", "rig.setup.started", "rig.setup.completed", "rig.setup.skipped", "rig.setup.failed", "sandbox.operation.started", "sandbox.operation.completed", "sandbox.operation.failed", "sandbox.command.output.delta", "artifact.created", "goal.set", "goal.updated", "goal.completed", "goal.paused", "goal.resumed", "goal.cleared", "goal.continuation", "system.update.pending", "system.update.delivered", "session.control.paused", "session.control.resumed", "session.control.steer_requested", "workspace.inference.paused", "workspace.inference.resumed", "session.queue.prompt.cancelled", "session.queue.history", "turn.event.rejected_late", "memory.saved", "memory.corrected", "stream.url.rotated", "stream.opened", "stream.closed", "stream.revoked", "recording.started", "recording.available", "recording.failed", "fs.changed", "git.changed", "terminal.pty.started", "terminal.pty.output.delta", "terminal.pty.exited", "session.title_set", "codex.account.switched", "codex.credential.selected", "codex.capacity.waiting", "codex.capacity.resumed", "codex.capacity.superseded", "sandbox.box.created", "sandbox.box.lost", "sandbox.box.terminated", "sandbox.box.snapshot", "sandbox.env.drift", "session.route.reconciled", "workspace.revision.captured", "workspace.revision.degraded", "machine.op.failed", "machine.op.recovered", "machine.link.lost", "machine.link.restored", "machine.runner.restarted"];
598
+ type HumanInputQuestionKind = "text" | "single_select" | "multi_select";
599
+ type HumanInputOption = {
600
+ id: string;
601
+ label: string;
602
+ description?: string | null | undefined;
603
+ };
604
+ type HumanInputQuestion = {
605
+ id: string;
606
+ kind: HumanInputQuestionKind;
607
+ prompt: string;
608
+ label?: string | null | undefined;
609
+ helpText?: string | null | undefined;
610
+ options: HumanInputOption[];
611
+ required: boolean;
612
+ allowOther: boolean;
613
+ validation?: {
614
+ minLength?: number | null | undefined;
615
+ maxLength?: number | null | undefined;
616
+ minSelections?: number | null | undefined;
617
+ maxSelections?: number | null | undefined;
618
+ } | null | undefined;
619
+ };
620
+ type HumanInputAnswer = {
621
+ questionId: string;
622
+ values: string[];
623
+ other?: string | null | undefined;
624
+ };
625
+ type HumanInputResponse = {
626
+ outcome: "answered";
627
+ answers: HumanInputAnswer[];
628
+ } | {
629
+ outcome: "skipped" | "expired" | "cancelled";
630
+ };
631
+ type SubmitHumanInputResponseRequest = {
632
+ outcome: "answered";
633
+ answers: HumanInputAnswer[];
634
+ } | {
635
+ outcome: "skipped";
636
+ };
637
+ type SessionHumanInputRequest = {
638
+ id: string;
639
+ workspaceId: string;
640
+ sessionId: string;
641
+ turnId: string;
642
+ turnGeneration: number;
643
+ creationAttemptId: string;
644
+ toolCallId: string;
645
+ status: "pending" | "answered" | "skipped" | "expired" | "cancelled";
646
+ questions: HumanInputQuestion[];
647
+ allowSkip: boolean;
648
+ response: HumanInputResponse | null;
649
+ respondedBy: string | null;
650
+ respondedAt: string | null;
651
+ expiresAt: string | null;
652
+ createdAt: string;
653
+ updatedAt: string;
654
+ };
655
+ declare const SESSION_EVENT_TYPES: readonly ["session.created", "session.event.envelope_omitted", "session.status.changed", "session.requiresAction", "session.humanInput.requested", "session.context.compaction.requested", "session.context.compacted", "session.context.compaction.skipped", "session.context.cleared", "user.message", "user.pause", "user.approvalDecision", "user.humanInputResponse", "turn.queued", "turn.started", "turn.completed", "turn.failed", "turn.cancelled", "turn.superseded", "turn.recovery.requested", "turn.capacity_waiting", "agent.message.delta", "agent.message.completed", "agent.reasoning.delta", "agent.toolCall.created", "agent.toolCall.output", "agent.model.usage", "tool.auth_needed", "credential.auth_needed", "agent.updated", "rig.setup.started", "rig.setup.completed", "rig.setup.skipped", "rig.setup.failed", "sandbox.operation.started", "sandbox.operation.completed", "sandbox.operation.failed", "sandbox.command.output.delta", "artifact.created", "goal.set", "goal.updated", "goal.completed", "goal.paused", "goal.resumed", "goal.cleared", "goal.continuation", "system.update.pending", "system.update.delivered", "session.control.paused", "session.control.resumed", "session.control.steer_requested", "workspace.inference.paused", "workspace.inference.resumed", "session.queue.changed", "session.queue.prompt.cancelled", "session.queue.history", "turn.event.rejected_late", "memory.saved", "memory.corrected", "stream.url.rotated", "stream.opened", "stream.closed", "stream.revoked", "recording.started", "recording.available", "recording.failed", "fs.changed", "git.changed", "terminal.pty.started", "terminal.pty.output.delta", "terminal.pty.exited", "session.title_set", "codex.account.switched", "codex.credential.selected", "codex.capacity.waiting", "codex.capacity.resumed", "codex.capacity.superseded", "sandbox.box.created", "sandbox.box.lost", "sandbox.box.terminated", "sandbox.box.snapshot", "sandbox.env.drift", "session.route.reconciled", "workspace.revision.captured", "workspace.revision.degraded", "machine.op.failed", "machine.op.recovered", "machine.link.lost", "machine.link.restored", "machine.runner.restarted"];
371
656
  type KnownSessionEventType = (typeof SESSION_EVENT_TYPES)[number];
372
657
  /**
373
658
  * Event types the SDK knows about today, kept open so a newer OpenGeni server
@@ -391,14 +676,64 @@ type SessionEvent = {
391
676
  duplicateOfEventId?: string | null | undefined;
392
677
  duplicateReason?: string | null | undefined;
393
678
  };
679
+ type SessionEventSemanticClass = "control" | "terminal" | "failure" | "checkpoint" | "tool_receipt" | "provider_account";
680
+ type SessionEventPayloadMode = "none" | "summary" | "full";
681
+ type SessionEventReadMode = "monitoring" | "forensic";
682
+ type SessionEventReadDirection = "after" | "before";
683
+ type SessionEventListCommonOptions = {
684
+ after?: number;
685
+ before?: number;
686
+ limit?: number;
687
+ compact?: boolean;
688
+ mode?: SessionEventReadMode;
689
+ direction?: SessionEventReadDirection;
690
+ payloadMode?: SessionEventPayloadMode;
691
+ };
692
+ type SessionEventListOptions = SessionEventListCommonOptions & ({
693
+ latest?: never;
694
+ includeTypes?: SessionEventType[];
695
+ excludeTypes?: SessionEventType[];
696
+ includeClasses?: SessionEventSemanticClass[];
697
+ excludeClasses?: SessionEventSemanticClass[];
698
+ } | {
699
+ /** Exclusive lookup for the newest event in exactly this semantic class. */
700
+ latest: SessionEventSemanticClass;
701
+ includeTypes?: never;
702
+ excludeTypes?: never;
703
+ includeClasses?: never;
704
+ excludeClasses?: never;
705
+ });
706
+ type SessionEventPage = {
707
+ events: SessionEvent[];
708
+ mode: SessionEventReadMode;
709
+ payloadMode: SessionEventPayloadMode;
710
+ direction: SessionEventReadDirection;
711
+ bytes: number;
712
+ maxBytes: number;
713
+ truncated: boolean;
714
+ hasMore: boolean;
715
+ truncatedBy: "count" | "bytes" | "http_bytes" | null;
716
+ coveredSequence: {
717
+ first: number;
718
+ last: number;
719
+ } | null;
720
+ nextAfter: number | null;
721
+ nextBefore: number | null;
722
+ forensicExact: boolean;
723
+ };
394
724
  type ToolAuthNeededPayload = {
395
725
  serverId: string;
396
726
  toolName?: string | null | undefined;
397
727
  providerDomain: string;
728
+ provider?: string | undefined;
398
729
  connectionId?: string | null | undefined;
399
- reason: "missing_connection" | "expired" | "insufficient_scope" | "refresh_failed";
730
+ reason: "missing_connection" | "expired" | "insufficient_scope" | "refresh_failed" | "unsupported_auth" | "resource_scope_unavailable";
400
731
  scopes?: string[] | undefined;
401
732
  resource?: string | undefined;
733
+ selectedResources?: Array<{
734
+ id: string;
735
+ kind: "repository";
736
+ }> | undefined;
402
737
  authorizationUrl?: string | undefined;
403
738
  subjectId?: string | null | undefined;
404
739
  };
@@ -623,6 +958,7 @@ type GitFileDiff = {
623
958
  type GitDiffRequest = {
624
959
  path?: string;
625
960
  staged?: boolean;
961
+ includeUntracked?: boolean;
626
962
  fromRef?: string;
627
963
  toRef?: string;
628
964
  pathspec?: string[];
@@ -881,7 +1217,10 @@ type ScheduledTask = {
881
1217
  updatedAt: string;
882
1218
  };
883
1219
  type CreateSessionRequest = {
1220
+ requestedSessionId?: string | undefined;
884
1221
  initialMessage: string;
1222
+ /** System instructions scoped to the initial turn; never visible timeline text. */
1223
+ turnInstructions?: string | undefined;
885
1224
  instructions?: string | undefined;
886
1225
  resources?: ResourceRef[] | undefined;
887
1226
  tools?: ToolRef[] | undefined;
@@ -1068,6 +1407,8 @@ type ClientAuthConfig = {
1068
1407
  mode: "managedSession";
1069
1408
  session: "cookie";
1070
1409
  };
1410
+ declare const OPENGENI_API_CONTRACT_REVISION: "2026-07-turn-instructions-v1";
1411
+ declare const OPENGENI_API_CONTRACT_HEADER: "x-opengeni-api-contract";
1071
1412
  /**
1072
1413
  * Public, unauthenticated-by-default client bootstrap config returned by
1073
1414
  * `GET /v1/config/client`: which models + reasoning efforts are exposed, the
@@ -1077,6 +1418,8 @@ type ClientAuthConfig = {
1077
1418
  */
1078
1419
  type ClientConfig = {
1079
1420
  deploymentRevision: string;
1421
+ apiContractRevision: typeof OPENGENI_API_CONTRACT_REVISION;
1422
+ serverVersion?: string | undefined;
1080
1423
  defaultModel: string;
1081
1424
  allowedModels: string[];
1082
1425
  models: ClientModel[];
@@ -1114,6 +1457,8 @@ type AccessGrant = {
1114
1457
  subjectLabel?: string | undefined;
1115
1458
  permissions: Permission[];
1116
1459
  metadata?: Record<string, unknown> | undefined;
1460
+ serviceInitiator?: ServiceTurnInitiator | undefined;
1461
+ serviceInitiatorContext?: ServiceTurnInitiatorContext | undefined;
1117
1462
  };
1118
1463
  type AccessContext = {
1119
1464
  mode: ProductAccessMode;
@@ -1133,21 +1478,25 @@ type Workspace = {
1133
1478
  externalId: string | null;
1134
1479
  agentInstructions: string | null;
1135
1480
  settings: Record<string, unknown>;
1136
- inferenceState?: "active" | "paused";
1137
- inferenceGeneration?: number;
1138
- inferenceReason?: string | null;
1139
- inferenceChangedBy?: string | null;
1140
- inferenceChangedAt?: string | null;
1481
+ inferenceControl: {
1482
+ state: "active" | "paused";
1483
+ revision: number;
1484
+ reason: string | null;
1485
+ changedBy: string | null;
1486
+ changedAt: string | null;
1487
+ };
1141
1488
  defaultRigId?: string | null;
1142
1489
  createdAt: string;
1143
1490
  updatedAt: string;
1144
1491
  };
1145
1492
  type WorkspaceSettings = {
1146
1493
  memoryEnabled?: boolean | undefined;
1494
+ transcription?: WorkspaceTranscriptionPolicy | undefined;
1147
1495
  [key: string]: unknown;
1148
1496
  };
1149
1497
  type UpdateWorkspaceSettingsRequest = {
1150
1498
  memoryEnabled?: boolean | undefined;
1499
+ transcription?: WorkspaceTranscriptionPolicy | undefined;
1151
1500
  [key: string]: unknown;
1152
1501
  };
1153
1502
  type SetWorkspaceDefaultRigRequest = {
@@ -1246,18 +1595,75 @@ type CompactSessionContextResult = {
1246
1595
  status: "pending" | "completed" | "noop";
1247
1596
  message: string;
1248
1597
  };
1598
+ type EffectiveControlBlocker = {
1599
+ kind: "session" | "workspace";
1600
+ sessionId?: string | undefined;
1601
+ displayName: string;
1602
+ actor: string | null;
1603
+ reason: string | null;
1604
+ changedAt: string | null;
1605
+ revision: number;
1606
+ };
1607
+ type EffectiveControlResumeOption = {
1608
+ scope: "selected" | "session" | "workspace";
1609
+ targetId?: string | undefined;
1610
+ selectedStateAfter: "active" | "paused";
1611
+ remainingPrimaryBlocker?: EffectiveControlBlocker | undefined;
1612
+ impactCopy: string;
1613
+ };
1614
+ type EffectiveSessionControl = {
1615
+ state: "active" | "paused";
1616
+ controlVersion: number;
1617
+ controlEtag: string;
1618
+ directState: "active" | "paused";
1619
+ primaryBlocker: EffectiveControlBlocker | null;
1620
+ additionalBlockerCount: number;
1621
+ blockers: EffectiveControlBlocker[];
1622
+ resumeOptions: EffectiveControlResumeOption[];
1623
+ override: {
1624
+ rootSessionId: string;
1625
+ revision: number;
1626
+ } | null;
1627
+ settlement: {
1628
+ state: "stopping";
1629
+ attemptCount: number;
1630
+ interruptionPendingCount: number;
1631
+ quiescencePendingCount: number;
1632
+ } | null;
1633
+ };
1634
+ type SessionCommandReceipt = {
1635
+ id: string;
1636
+ action: string;
1637
+ operationKey: string;
1638
+ targetSessionId: string | null;
1639
+ targetTurnId: string | null;
1640
+ appliedControlRevision: number | null;
1641
+ appliedQueueVersion: number | null;
1642
+ appliedTurnVersion: number | null;
1643
+ appliedDraftRevision: number | null;
1644
+ createdAt: string;
1645
+ };
1646
+ type ComposerDraft = {
1647
+ revision: number;
1648
+ text: string;
1649
+ resources: ResourceRef[];
1650
+ tools: ToolRef[];
1651
+ model: string;
1652
+ reasoningEffort: ReasoningEffort;
1653
+ sourceTurnId: string | null;
1654
+ sourceTurnVersion: number | null;
1655
+ updatedAt: string | null;
1656
+ };
1249
1657
  type SessionQueueSnapshot = {
1250
1658
  version: number;
1251
- controlState: "active" | "paused";
1252
- controlGeneration: number;
1253
- workspaceInferenceState: "active" | "paused";
1254
- workspaceInferenceGeneration: number;
1255
- workspaceRunExceptionGeneration: number | null;
1659
+ effectiveControl: EffectiveSessionControl;
1660
+ /** The latest interrupted attempt has not yet durably proved physical quiescence. */
1661
+ stoppingPreviousAttempt: boolean;
1256
1662
  items: SessionTurn[];
1257
1663
  };
1258
1664
  type SystemUpdateClassification = "success" | "failure" | "action_required" | "info";
1259
- type SessionSystemUpdateKind = "child_session_update" | "scheduled_wake" | "lifecycle_event" | "runtime_notice";
1260
- type SessionSystemUpdateState = "pending" | "deferred" | "delivered" | "cancelled" | "failed";
1665
+ type SessionSystemUpdateKind = "scheduled_occurrence" | "goal_continuation" | "agent_message" | "agent_steer_instruction" | "child_terminal_result";
1666
+ type SessionSystemUpdateState = "pending" | "deferred" | "delivered" | "cancelled" | "superseded" | "failed";
1261
1667
  type SessionSystemUpdate = {
1262
1668
  id: string;
1263
1669
  sessionId: string;
@@ -1274,29 +1680,76 @@ type SessionSystemUpdate = {
1274
1680
  createdAt: string;
1275
1681
  };
1276
1682
  type SessionControlResponse = {
1277
- operationId: string;
1278
- event: SessionEvent;
1279
- controlState: "active" | "paused";
1280
- controlGeneration: number;
1281
- expectedActiveTurnId: string | null;
1282
- expectedExecutionGeneration: number | null;
1283
- expectedAttemptId: string | null;
1284
- deliveryEventId: string | null;
1285
- shouldSignalControl: boolean;
1286
- shouldWake: boolean;
1683
+ receipt: SessionCommandReceipt;
1684
+ effectiveControl: EffectiveSessionControl;
1685
+ interruptionCount: number;
1686
+ wakeCount: number;
1287
1687
  };
1288
1688
  type WorkspaceInferenceControlResponse = {
1289
- operationId: string;
1689
+ receipt: SessionCommandReceipt;
1290
1690
  state: "active" | "paused";
1291
- generation: number;
1292
- affectedSessionIds: string[];
1293
- controlSessionIds: string[];
1294
- exceptionSessionIds: string[];
1691
+ revision: number;
1692
+ interruptionCount: number;
1693
+ wakeCount: number;
1694
+ };
1695
+ type WorkspaceControlEvent = {
1696
+ id: string;
1697
+ workspaceId: string;
1698
+ /** Same monotonic value as revision; named sequence for SSE resume cursors. */
1699
+ sequence: number;
1700
+ revision: number;
1701
+ type: "workspace.control.changed";
1702
+ scope: "workspace" | "session";
1703
+ rootSessionId: string | null;
1704
+ action: "pause" | "resume";
1705
+ automatic: boolean;
1706
+ reason: string | null;
1707
+ actor: string;
1708
+ occurredAt: string;
1709
+ truncation?: {
1710
+ truncated: true;
1711
+ surface: "durable_control" | "database_guard" | "http_projection" | "nats_legacy_guard" | "sse_legacy_guard";
1712
+ deliveredBytes: number;
1713
+ fields: Array<{
1714
+ field: "reason" | "actor";
1715
+ originalBytes: number;
1716
+ deliveredBytes: number;
1717
+ omittedBytes: number;
1718
+ }>;
1719
+ fullEvidence: {
1720
+ available: false;
1721
+ reason: "not_retained";
1722
+ };
1723
+ } | null;
1295
1724
  };
1296
1725
  type SessionQueueMutationResponse = {
1726
+ receipt: SessionCommandReceipt;
1297
1727
  snapshot: SessionQueueSnapshot;
1298
- events: SessionEvent[];
1299
- shouldWake: boolean;
1728
+ draft?: ComposerDraft;
1729
+ };
1730
+ type MoveSessionQueueItemRequest = {
1731
+ clientEventId: string;
1732
+ expectedQueueVersion: number;
1733
+ beforeTurnId: string | null;
1734
+ };
1735
+ type EditSessionQueueItemRequest = {
1736
+ clientEventId: string;
1737
+ expectedTurnVersion: number;
1738
+ expectedDraftRevision: number;
1739
+ replaceDraft: boolean;
1740
+ };
1741
+ type SteerSessionQueueItemRequest = {
1742
+ clientEventId: string;
1743
+ expectedTurnVersion: number;
1744
+ controlEtag?: string;
1745
+ };
1746
+ type DeleteSessionQueueItemRequest = {
1747
+ clientEventId: string;
1748
+ expectedTurnVersion: number;
1749
+ reason?: string;
1750
+ };
1751
+ type SaveComposerDraftRequest = Omit<ComposerDraft, "revision" | "sourceTurnId" | "sourceTurnVersion" | "updatedAt"> & {
1752
+ expectedRevision: number;
1300
1753
  };
1301
1754
  /** Input shape for agent config on create/update (server applies defaults). */
1302
1755
  type ScheduledTaskAgentConfigInput = {
@@ -1842,7 +2295,7 @@ type GetPackResponse = {
1842
2295
  installation: PackInstallation | null;
1843
2296
  };
1844
2297
  type CapabilityKind = "pack" | "mcp" | "api" | "skill" | "plugin";
1845
- type CapabilitySource = "built_in" | "configured" | "public_registry" | "registry" | "manual";
2298
+ type CapabilitySource = "built_in" | "library" | "configured" | "public_registry" | "registry" | "manual";
1846
2299
  type CapabilityInstallationStatus = "active" | "disabled";
1847
2300
  type CapabilityCatalogAuthKind = "oauth2" | "api_key" | "none" | "unknown";
1848
2301
  type CapabilityCatalogTier = "verified" | "community";
@@ -1958,13 +2411,27 @@ type GitHubRepository = {
1958
2411
  accountLogin: string;
1959
2412
  accountType: string | null;
1960
2413
  };
2414
+ type GitHubRepositoryScope = "all" | "selected";
2415
+ type GitHubInstallationBinding = {
2416
+ installationId: number;
2417
+ accountLogin: string | null;
2418
+ accountType: string | null;
2419
+ repositoryScope: GitHubRepositoryScope;
2420
+ repositoryCount: number;
2421
+ createdAt: string;
2422
+ updatedAt: string;
2423
+ };
1961
2424
  type GitHubAppInfo = {
1962
2425
  configured: boolean;
1963
2426
  appId: string | null;
1964
2427
  clientId: string | null;
1965
2428
  appSlug: string | null;
1966
- /** Ready-to-open GitHub install URL (carries the signed state), if configured. */
2429
+ /** Reserved compatibility field; null while new installation binding is disabled. */
1967
2430
  installUrl: string | null;
2431
+ /** Reserved compatibility field; null while new installation binding is disabled. */
2432
+ linkUrl: string | null;
2433
+ /** Installation bindings owned independently by this workspace. */
2434
+ installations: GitHubInstallationBinding[];
1968
2435
  /** Setting names still missing when `configured` is false. */
1969
2436
  missing: string[];
1970
2437
  };
@@ -2041,6 +2508,7 @@ type UserMessageEventInput = {
2041
2508
  clientEventId?: string | undefined;
2042
2509
  payload: {
2043
2510
  text: string;
2511
+ turnInstructions?: string | undefined;
2044
2512
  resources?: ResourceRef[] | undefined;
2045
2513
  tools?: ToolRef[] | undefined;
2046
2514
  model?: string | undefined;
@@ -2057,8 +2525,16 @@ type UserApprovalDecisionEventInput = {
2057
2525
  message?: string | undefined;
2058
2526
  };
2059
2527
  };
2528
+ type UserHumanInputResponseEventInput = {
2529
+ type: "user.humanInputResponse";
2530
+ clientEventId?: string | undefined;
2531
+ payload: {
2532
+ requestId: string;
2533
+ response: SubmitHumanInputResponseRequest;
2534
+ };
2535
+ };
2060
2536
  /** Control/user events a client may POST to a session's event log. */
2061
- type ClientSessionEventInput = UserMessageEventInput | UserApprovalDecisionEventInput;
2537
+ type ClientSessionEventInput = UserMessageEventInput | UserApprovalDecisionEventInput | UserHumanInputResponseEventInput;
2062
2538
  /** A point-in-time machine metrics sample. `gpuUtilPct`/`gpuMemBytes` are null
2063
2539
  * when no GPU was present (not-reported, never a real zero); the bytes/load are
2064
2540
  * numbers; `sampledAt` is an ISO-8601 instant. */
@@ -2239,6 +2715,8 @@ type StreamSessionEventsOptions = {
2239
2715
  * reconnects = N+1 total open-stream calls). Defaults to unlimited.
2240
2716
  */
2241
2717
  maxReconnectAttempts?: number;
2718
+ /** Await authoritative client reconciliation before exposing `live`. */
2719
+ beforeLive?: (() => void | Promise<void>) | undefined;
2242
2720
  onStateChange?: (state: StreamConnectionState) => void;
2243
2721
  };
2244
2722
  /**
@@ -2258,7 +2736,24 @@ type StreamSessionEventsOptions = {
2258
2736
  */
2259
2737
  declare function streamSessionEvents(transport: SessionEventStreamTransport, options?: StreamSessionEventsOptions): AsyncGenerator<SessionEvent, void, void>;
2260
2738
 
2739
+ type WorkspaceControlStreamTransport = {
2740
+ /** The server replays every durable event after the cursor before going live. */
2741
+ openStream: (after: number, signal: AbortSignal | undefined) => Promise<ReadableStream<Uint8Array>>;
2742
+ };
2743
+ /**
2744
+ * Reconnecting workspace invalidation stream. Control revisions are monotonic
2745
+ * but can begin above one after the one-way migration, so unlike conversation
2746
+ * events this stream intentionally permits sparse sequence values.
2747
+ */
2748
+ declare function streamWorkspaceControlEvents(transport: WorkspaceControlStreamTransport, options?: StreamSessionEventsOptions): AsyncGenerator<WorkspaceControlEvent, void, void>;
2749
+
2261
2750
  type FetchLike = (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
2751
+ type WorkspaceControlEventPage = {
2752
+ events: WorkspaceControlEvent[];
2753
+ bytes: number;
2754
+ truncated: boolean;
2755
+ nextAfter: number | null;
2756
+ };
2262
2757
  type OpenGeniClientOptions = {
2263
2758
  /** Base URL of the OpenGeni API, e.g. `https://api.example.com`. */
2264
2759
  baseUrl: string;
@@ -2269,15 +2764,21 @@ type OpenGeniClientOptions = {
2269
2764
  /** Custom fetch implementation. Defaults to the global `fetch`. */
2270
2765
  fetch?: FetchLike;
2271
2766
  };
2767
+ /** Per-request cancellation for identity-scoped, side-effect-free reads. */
2768
+ type OpenGeniRequestOptions = {
2769
+ signal?: AbortSignal | undefined;
2770
+ };
2272
2771
  type SendMessageInput = {
2273
2772
  text: string;
2773
+ /** System instructions scoped to this exact turn; never visible timeline text. */
2774
+ turnInstructions?: string;
2274
2775
  resources?: ResourceRef[];
2275
2776
  tools?: ToolRef[];
2276
2777
  model?: string;
2277
2778
  reasoningEffort?: ReasoningEffort;
2278
2779
  clientEventId?: string;
2279
- expectedControlGeneration?: number;
2280
- expectedWorkspaceInferenceGeneration?: number;
2780
+ controlEtag?: string;
2781
+ expectedDraftRevision?: number;
2281
2782
  mcpCredentialUpdates?: SessionMcpCredentialUpdateInput[];
2282
2783
  };
2283
2784
  type SteerMessageResult = {
@@ -2296,7 +2797,7 @@ declare class OpenGeniClient {
2296
2797
  private readonly options;
2297
2798
  private readonly fetchImpl;
2298
2799
  constructor(options: OpenGeniClientOptions);
2299
- createSession(workspaceId: string, request: CreateSessionRequest): Promise<Session>;
2800
+ createSession(workspaceId: string, request: CreateSessionRequest): Promise<CreateSessionResponse>;
2300
2801
  getSession(workspaceId: string, sessionId: string): Promise<Session>;
2301
2802
  updateSession(workspaceId: string, sessionId: string, request: UpdateSessionRequest): Promise<Session>;
2302
2803
  listSessions(workspaceId: string, options?: {
@@ -2325,6 +2826,7 @@ declare class OpenGeniClient {
2325
2826
  */
2326
2827
  listMachines(workspaceId: string, options?: {
2327
2828
  sessionId?: string;
2829
+ signal?: AbortSignal;
2328
2830
  }): Promise<MachinesResponse>;
2329
2831
  /**
2330
2832
  * Read the downsampled (~1/min) metrics series for ONE machine over a time
@@ -2379,30 +2881,35 @@ declare class OpenGeniClient {
2379
2881
  }): Promise<ScheduledTask[]>;
2380
2882
  getScheduledTask(workspaceId: string, taskId: string): Promise<ScheduledTask>;
2381
2883
  /**
2382
- * Replay durable events by sequence, ascending. `before` is exclusive and
2383
- * returns the newest matching window. With `compact`, consecutive delta runs
2384
- * may be coalesced; `payload.coalescedUntil` carries the run's last sequence
2385
- * for resume cursors.
2884
+ * Return the events from one bounded page. With no cursor, this uses the safe
2885
+ * semantic monitoring tail; pass explicit forensic options and a cursor for
2886
+ * retained audit replay. Use `listEventPage` when projection, coverage, or
2887
+ * resume-cursor facts are required.
2386
2888
  */
2387
- listEvents(workspaceId: string, sessionId: string, options?: {
2388
- after?: number;
2389
- before?: number;
2390
- limit?: number;
2391
- compact?: boolean;
2392
- }): Promise<SessionEvent[]>;
2889
+ listEvents(workspaceId: string, sessionId: string, options?: SessionEventListOptions): Promise<SessionEvent[]>;
2890
+ /** Bounded durable/monitoring page plus exact projection and cursor facts. */
2891
+ listEventPage(workspaceId: string, sessionId: string, options?: SessionEventListOptions): Promise<SessionEventPage>;
2393
2892
  /** POST a user/control event to the session. Returns the accepted event. */
2394
2893
  sendEvent(workspaceId: string, sessionId: string, event: ClientSessionEventInput): Promise<SessionEvent>;
2395
2894
  sendMessage(workspaceId: string, sessionId: string, message: string | SendMessageInput): Promise<SessionEvent>;
2396
2895
  pauseSession(workspaceId: string, sessionId: string, options?: {
2397
2896
  reason?: string;
2398
2897
  clientEventId?: string;
2399
- }): Promise<SessionEvent>;
2898
+ expectedControlEtag?: string;
2899
+ }): Promise<SessionControlResponse>;
2400
2900
  sendApprovalDecision(workspaceId: string, sessionId: string, decision: {
2401
2901
  approvalId: string;
2402
2902
  decision: "approve" | "reject";
2403
2903
  message?: string;
2404
2904
  clientEventId?: string;
2405
2905
  }): Promise<SessionEvent>;
2906
+ listHumanInputRequests(workspaceId: string, sessionId: string, options?: {
2907
+ status?: SessionHumanInputRequest["status"];
2908
+ }): Promise<SessionHumanInputRequest[]>;
2909
+ getHumanInputRequest(workspaceId: string, sessionId: string, requestId: string): Promise<SessionHumanInputRequest>;
2910
+ submitHumanInputResponse(workspaceId: string, sessionId: string, requestId: string, response: SubmitHumanInputResponseRequest, options?: {
2911
+ clientEventId?: string;
2912
+ }): Promise<SessionEvent>;
2406
2913
  /**
2407
2914
  * Live-stream a session's events with automatic reconnect, resume from the
2408
2915
  * last seen sequence, gap backfill, and duplicate suppression. See
@@ -2417,33 +2924,44 @@ declare class OpenGeniClient {
2417
2924
  signal?: AbortSignal;
2418
2925
  }): Promise<ReadableStream<Uint8Array>>;
2419
2926
  getQueue(workspaceId: string, sessionId: string): Promise<SessionQueueSnapshot>;
2420
- cancelQueueItem(workspaceId: string, sessionId: string, turnId: string, request: {
2421
- expectedQueueVersion: number;
2422
- expectedItemVersion: number;
2423
- reason?: string;
2424
- }): Promise<SessionQueueMutationResponse>;
2927
+ moveQueueItem(workspaceId: string, sessionId: string, turnId: string, request: MoveSessionQueueItemRequest): Promise<SessionQueueMutationResponse>;
2928
+ editQueueItem(workspaceId: string, sessionId: string, turnId: string, request: EditSessionQueueItemRequest): Promise<SessionQueueMutationResponse>;
2929
+ steerQueueItem(workspaceId: string, sessionId: string, turnId: string, request: SteerSessionQueueItemRequest): Promise<SessionQueueMutationResponse>;
2930
+ deleteQueueItem(workspaceId: string, sessionId: string, turnId: string, request: DeleteSessionQueueItemRequest): Promise<SessionQueueMutationResponse>;
2931
+ getComposerDraft(workspaceId: string, sessionId: string): Promise<ComposerDraft>;
2932
+ saveComposerDraft(workspaceId: string, sessionId: string, request: SaveComposerDraftRequest): Promise<ComposerDraft>;
2425
2933
  controlSession(workspaceId: string, sessionId: string, request: {
2426
- mode: "pause" | "resume";
2934
+ action: "pause" | "resume";
2427
2935
  reason?: string;
2428
- clientEventId?: string;
2429
- expectedControlState?: "active" | "paused";
2430
- expectedControlGeneration?: number;
2431
- expectedWorkspaceInferenceGeneration?: number;
2936
+ clientEventId: string;
2937
+ expectedControlEtag?: string;
2432
2938
  }): Promise<SessionControlResponse>;
2433
2939
  resumeSession(workspaceId: string, sessionId: string, options?: {
2434
2940
  reason?: string;
2435
2941
  clientEventId?: string;
2942
+ expectedControlEtag?: string;
2436
2943
  }): Promise<SessionControlResponse>;
2437
2944
  setWorkspaceInferenceState(workspaceId: string, request: {
2438
- state: "active" | "paused";
2439
- reason: string;
2945
+ action: "pause" | "resume";
2946
+ reason?: string;
2440
2947
  clientEventId: string;
2441
- expectedState: "active" | "paused";
2442
- expectedGeneration: number;
2443
- exceptSessionIds?: string[];
2948
+ expectedRevision?: number;
2444
2949
  }): Promise<WorkspaceInferenceControlResponse>;
2445
- /** Cancel a queued turn before it is claimed. Returns the cancelled turn. */
2446
- deleteQueuedTurn(workspaceId: string, sessionId: string, turnId: string): Promise<SessionTurn>;
2950
+ listWorkspaceControlEvents(workspaceId: string, options?: {
2951
+ after?: number;
2952
+ limit?: number;
2953
+ }): Promise<WorkspaceControlEvent[]>;
2954
+ /** Count/byte-bounded page plus an explicit continuation cursor. */
2955
+ listWorkspaceControlEventPage(workspaceId: string, options?: {
2956
+ after?: number;
2957
+ limit?: number;
2958
+ }): Promise<WorkspaceControlEventPage>;
2959
+ streamWorkspaceControlEvents(workspaceId: string, options?: StreamSessionEventsOptions): AsyncGenerator<WorkspaceControlEvent, void, void>;
2960
+ workspaceControlStreamTransport(workspaceId: string): WorkspaceControlStreamTransport;
2961
+ openWorkspaceControlEventStream(workspaceId: string, options?: {
2962
+ after?: number;
2963
+ signal?: AbortSignal;
2964
+ }): Promise<ReadableStream<Uint8Array>>;
2447
2965
  /**
2448
2966
  * Steer: atomically put this prompt at the head and supersede the current
2449
2967
  * inference. The client performs one request and renders server order.
@@ -2470,9 +2988,9 @@ declare class OpenGeniClient {
2470
2988
  /** Request one durable portable compaction at the next safe model boundary. */
2471
2989
  compactSessionContext(workspaceId: string, sessionId: string): Promise<CompactSessionContextResult>;
2472
2990
  /** FileSystem: list a directory tree (feeds the Pierre file tree). */
2473
- fsList(workspaceId: string, sessionId: string, request?: FsListRequest): Promise<FsListResponse>;
2991
+ fsList(workspaceId: string, sessionId: string, request?: FsListRequest, options?: OpenGeniRequestOptions): Promise<FsListResponse>;
2474
2992
  /** FileSystem: read a file (text or base64; binary-safe, size-capped). */
2475
- fsRead(workspaceId: string, sessionId: string, request: FsReadRequest): Promise<FsReadResponse>;
2993
+ fsRead(workspaceId: string, sessionId: string, request: FsReadRequest, options?: OpenGeniRequestOptions): Promise<FsReadResponse>;
2476
2994
  /** FileSystem: write a file (last-writer-wins; emits fs.changed). */
2477
2995
  fsWrite(workspaceId: string, sessionId: string, request: FsWriteRequest): Promise<FsWriteResponse>;
2478
2996
  /** FileSystem: delete a path (emits fs.changed). */
@@ -2482,9 +3000,9 @@ declare class OpenGeniClient {
2482
3000
  /** FileSystem: create a directory (emits fs.changed; recursive defaults to true). */
2483
3001
  fsMkdir(workspaceId: string, sessionId: string, request: FsMkdirRequest): Promise<FsMkdirResponse>;
2484
3002
  /** Git: working-tree/index status (the Pierre file-status feed). */
2485
- gitStatus(workspaceId: string, sessionId: string, request?: GitStatusRequest): Promise<GitStatusResponse>;
3003
+ gitStatus(workspaceId: string, sessionId: string, request?: GitStatusRequest, options?: OpenGeniRequestOptions): Promise<GitStatusResponse>;
2486
3004
  /** Git: structured diff hunks (the Pierre diff feed). */
2487
- gitDiff(workspaceId: string, sessionId: string, request?: GitDiffRequest): Promise<GitDiffResponse>;
3005
+ gitDiff(workspaceId: string, sessionId: string, request?: GitDiffRequest, options?: OpenGeniRequestOptions): Promise<GitDiffResponse>;
2488
3006
  /** Git: commit log. */
2489
3007
  gitLog(workspaceId: string, sessionId: string, request?: GitLogRequest): Promise<GitLogResponse>;
2490
3008
  /** Git: show a commit (diff vs first parent) or fetch a raw blob at a ref. */
@@ -2493,11 +3011,11 @@ declare class OpenGeniClient {
2493
3011
  * (tree + per-repo diff + file after-image refs), served from durable storage
2494
3012
  * WITHOUT warming a machine — the workbench cold-paint source. Returns
2495
3013
  * `{available:false}` when no capture exists yet (fall back to the live path). */
2496
- getWorkspaceCapture(workspaceId: string, sessionId: string): Promise<GetWorkspaceCaptureResponse>;
3014
+ getWorkspaceCapture(workspaceId: string, sessionId: string, options?: OpenGeniRequestOptions): Promise<GetWorkspaceCaptureResponse>;
2497
3015
  /** Workspace capture: a single file's after-image from the capture (revision
2498
3016
  * pins a specific one; omitted → latest). Content is inline for small files,
2499
3017
  * else a short-TTL signed URL; a tooLarge file returns metadata only. */
2500
- getWorkspaceCaptureFile(workspaceId: string, sessionId: string, path: string, revision?: number): Promise<GetWorkspaceCaptureFileResponse>;
3018
+ getWorkspaceCaptureFile(workspaceId: string, sessionId: string, path: string, revision?: number, options?: OpenGeniRequestOptions): Promise<GetWorkspaceCaptureFileResponse>;
2501
3019
  /** Terminal: run a bounded command, returning buffered stdout/stderr inline. */
2502
3020
  terminalExec(workspaceId: string, sessionId: string, request: TerminalExecRequest): Promise<TerminalExecResponse>;
2503
3021
  /** Terminal: open an interactive PTY. Output streams on the event SSE as
@@ -2515,7 +3033,7 @@ declare class OpenGeniClient {
2515
3033
  * liveness the client polls on while `cold`/`warming`. The desktop URL/token
2516
3034
  * are minted in-process only when the box is warm AND the principal has
2517
3035
  * acknowledged the un-redacted plane. */
2518
- getStreamCapabilities(workspaceId: string, sessionId: string): Promise<SessionCapabilities>;
3036
+ getStreamCapabilities(workspaceId: string, sessionId: string, options?: OpenGeniRequestOptions): Promise<SessionCapabilities>;
2519
3037
  /** Record the calling principal's acknowledgment of the un-redacted desktop
2520
3038
  * pixel plane (and, when the box is shared, the shared-exposure disclosure).
2521
3039
  * The desktop viewer-attach path returns 409 until this is recorded. */
@@ -2702,17 +3220,18 @@ declare class OpenGeniClient {
2702
3220
  startConnectionOAuth(workspaceId: string, request: OAuthStartRequest): Promise<OAuthStartResponse>;
2703
3221
  /** Public, immutably-cached URL for a catalog item's logo, or null when the item has none. */
2704
3222
  catalogAssetUrl(logoAssetPath: string | null): string | null;
2705
- /** GitHub App configuration status + a signed install URL when configured. */
3223
+ /** GitHub App configuration status; install/link URLs are null while new binding is disabled. */
2706
3224
  getGitHubApp(workspaceId: string): Promise<GitHubAppInfo>;
2707
3225
  /**
2708
- * Browser entry point that plants the CSRF cookie and forwards to GitHub's
2709
- * install page. Open this in a browser (it redirects); `state` comes from
2710
- * `getGitHubApp().installUrl` or a github_connect_link tool.
3226
+ * Compatibility URL for previously issued state. New installation binding is
3227
+ * disabled, so the endpoint validates state and terminates with HTTP 410.
2711
3228
  */
2712
3229
  githubConnectUrl(workspaceId: string, state: string): string;
2713
3230
  listGitHubRepositories(workspaceId: string): Promise<GitHubRepositoriesResponse>;
2714
3231
  /** Re-sync the installation's repository list from GitHub. */
2715
3232
  syncGitHubRepositories(workspaceId: string): Promise<GitHubRepositoriesResponse>;
3233
+ /** Remove one workspace binding without uninstalling the GitHub App itself. */
3234
+ unlinkGitHubInstallation(workspaceId: string, installationId: number): Promise<void>;
2716
3235
  /** Build a GitHub App manifest + the GitHub URL to submit it to. */
2717
3236
  createGitHubAppManifest(workspaceId: string, request?: CreateGitHubAppManifestRequest): Promise<CreateGitHubAppManifestResponse>;
2718
3237
  listApiKeys(workspaceId: string): Promise<ApiKey[]>;
@@ -2786,6 +3305,12 @@ declare class OpenGeniApiError extends Error {
2786
3305
  readonly body: string;
2787
3306
  constructor(status: number, body: string);
2788
3307
  }
3308
+ /** The browser bundle and API disagree about their state-changing wire contract. */
3309
+ declare class OpenGeniApiContractMismatchError extends Error {
3310
+ readonly expected: string;
3311
+ readonly actual: string;
3312
+ constructor(expected: string, actual: string);
3313
+ }
2789
3314
  /** Error for an unrecoverable event-stream condition (not a transient drop). */
2790
3315
  declare class OpenGeniStreamError extends Error {
2791
3316
  constructor(message: string);
@@ -2995,4 +3520,4 @@ declare function ttydInputFrame(data: string): string;
2995
3520
  /** Build a client→server RESIZE frame: "1" + JSON.stringify({ columns, rows }). */
2996
3521
  declare function ttydResizeFrame(columns: number, rows: number): string;
2997
3522
 
2998
- export { type AccessContext, type AccessGrant, type AccountGrant, type AccountRole, type AcknowledgeStreamRequest, type AcknowledgeStreamResponse, type AddDocumentRequest, type AddWorkspaceMemberRequest, type AgentMessageCompletedPayload, type AgentTextDeltaPayload, type AgentToolCallCreatedPayload, type AgentToolCallOutputPayload, type ApiKey, type AttachViewerRequest, type AttachViewerResponse, type BillingBalance, type BillingEntitlementsResponse, type BillingMode, type BillingSummary, type BillingUsageResponse, type CapabilityCatalogItem, type CapabilityCatalogResponse, type CapabilityInstallation, type CapabilityInstallationStatus, type CapabilityKind, type CapabilityPack, type CapabilityPackConnector, type CapabilityPackConnectorAuthModel, type CapabilityPackKnowledge, type CapabilityPackScheduledTaskTemplate, type CapabilityPackSkill, type CapabilityPackSkillFile, type CapabilityPackVariableSetSpec, type CapabilityRuntime, type CapabilitySource, type CapabilityUnavailableReason, type ClientAuthConfig, type ClientConfig, type ClientModel, type ClientSessionEventInput, type CodexAccount, type CodexAccountSwitchedPayload, type CodexAccountsResponse, type CodexConnectPoll, type CodexConnectStart, type CodexConnectionStatus, type CodexRotationSettings, type CodexUsage, type CodexUsageMap, type CodexUsagePayload, type CodexUsageWindow, type CompactSessionContextResult, type CompleteFileUploadResponse, type ComputerUseCapability, type ConnectionKind, type ConnectionMetadata, type ConnectionResponse, type ConnectionStatus, type CreateApiKeyRequest, type CreateApiKeyResponse, type CreateCapabilityCatalogItemRequest, type CreateCheckoutRequest, type CreateCheckoutResponse, type CreateConnectionRequest, type CreateDocumentBaseRequest, type CreateFileUploadRequest, type CreateFileUploadResponse, type CreateGitHubAppManifestRequest, type CreateGitHubAppManifestResponse, type CreateKnowledgeMemoryRequest, type CreateRigRequest, type CreateScheduledTaskRequest, type CreateSessionRequest, type CreateVariableSetRequest, type CreateWorkspaceEnvironmentRequest, type CreateWorkspaceRequest, type DesktopConnectionState, type DesktopRfbFactory, type DesktopRfbLike, type DesktopStreamCapability, type DesktopStreamEvent, type DeviceEnrollmentApproveRequest, type DeviceEnrollmentApproveResponse, type DeviceEnrollmentDenyRequest, type DeviceEnrollmentDenyResponse, type DeviceEnrollmentLookupMachine, type DeviceEnrollmentLookupRequest, type DeviceEnrollmentLookupResponse, type DiscoverMcpCapabilitiesResponse, type Document, type DocumentBase, type DocumentSearchMode, type DocumentSearchRequest, type DocumentSearchResponse, type DocumentSearchResult, type DocumentStatus, type EnableCapabilityRequest, type EnablePackRequest, type EnrollTokenExchangeRequest, type EnrollTokenExchangeResponse, type EnrollmentCredentials, type EnrollmentOs, type EntitlementValue, type Entitlements, type EntitlementsMode, type FetchLike, type FileAsset, type FileDownloadUrlResponse, type FileResourceRef, type FileStatus, type FileSystemCapability, type FileUploadData, type FsChangeKind, type FsChangedPayload, type FsDeleteRequest, type FsDeleteResponse, type FsEncoding, type FsListRequest, type FsListResponse, type FsMkdirRequest, type FsMkdirResponse, type FsMoveRequest, type FsMoveResponse, type FsNodeType, type FsReadRequest, type FsReadResponse, type FsTreeNode, type FsWriteRequest, type FsWriteResponse, type GetPackResponse, type GetWorkspaceCaptureFileResponse, type GetWorkspaceCaptureResponse, type GitCapability, type GitChangedPayload, type GitCommit, type GitCredentialProvider, type GitDiffHunk, type GitDiffLine, type GitDiffLineType, type GitDiffRequest, type GitDiffResponse, type GitFileDiff, type GitFileStatus, type GitFileStatusCode, type GitHubAppInfo, type GitHubRepositoriesResponse, type GitHubRepository, type GitLogRequest, type GitLogResponse, type GitShowRequest, type GitShowResponse, type GitStatusRequest, type GitStatusResponse, type GoalSpec, type IntegrationClientMetadata, KNOWN_PERMISSIONS, KNOWN_USAGE_EVENT_TYPES, type KnowledgeMemory, type KnowledgeMemoryKind, type KnowledgeMemorySearchRequest, type KnowledgeMemoryStatus, type KnowledgeSourceKind, type KnowledgeSourceRef, type KnownPermission, type KnownSessionEventType, type KnownUsageEventType, type LineageNode, type ListApiKeysResponse, type ListConnectionsResponse, type ListPacksResponse, type ListWorkspaceMembersResponse, type MachineKind, type MachineMetricsSeriesResponse, type MachineState, type MachineView, type MachinesResponse, type McpServerConnectionRef, type MetricSample, type MintEnrollTokenRequest, type MintEnrollTokenResponse, type OAuthStartRequest, type OAuthStartResponse, OpenGeniApiError, OpenGeniClient, type OpenGeniClientOptions, OpenGeniStreamError, type PackInstallation, type PackInstallationStatus, type Permission, type ProductAccessMode, type ProposeRigChangeRequest, type ProxySessionEventStreamOptions, type PtyCloseRequest, type PtyOpenRequest, type PtyOpenResponse, type PtyResizeRequest, type PtyWriteRequest, type ReasoningEffort, type RecordingAvailablePayload, type RecordingCapability, type RecordingCodec, type RecordingContentType, type RecordingFailedPayload, type RecordingFailedReason, type RecordingMode, type RecordingStartedPayload, type RegisterCapabilityPackRequest, type RepositoryResourceRef, type ResourceRef, type Rig, type RigChange, type RigChangeKind, type RigChangeStatus, type RigChangeVerification, type RigCheck, type RigCheckResult, type RigDefinitionEditPayload, type RigSetupAppendPayload, type RigVersion, SESSION_EVENT_TYPES, type SandboxBackend, type SandboxCapabilityName, type SandboxCommandOutputDeltaPayload, type SandboxOs, type ScheduledTask, type ScheduledTaskAgentConfig, type ScheduledTaskAgentConfigInput, type ScheduledTaskDayOfWeek, type ScheduledTaskOverlapPolicy, type ScheduledTaskRun, type ScheduledTaskRunMode, type ScheduledTaskRunStatus, type ScheduledTaskScheduleSpec, type ScheduledTaskStatus, type ScheduledTaskTriggerType, type SendMessageInput, type Session, type SessionCapabilities, type SessionControlResponse, type SessionEvent, type SessionEventStreamTransport, type SessionEventType, type SessionGoal, type SessionGoalCreatedBy, type SessionGoalStatus, type SessionLineageResponse, type SessionListResponse, type SessionMcpCredentialUpdateInput, type SessionMcpServerInput, type SessionMcpServerMetadata, type SessionQueueMutationResponse, type SessionQueueSnapshot, type SessionStatus, type SessionStatusChangedPayload, type SessionStructuredCapabilities, type SessionSummary, type SessionSystemUpdate, type SessionSystemUpdateKind, type SessionSystemUpdateState, type SessionTurn, type SessionTurnSource, type SessionTurnStatus, type SetWorkspaceEnvironmentVariableRequest, type SseMessage, type SseReStreamOptions, type SteerMessageResult, type StreamClosedPayload, type StreamConnectionState, type StreamOpenedPayload, type StreamRevokedPayload, type StreamSessionEventsOptions, type StreamUrlRotatedPayload, type SwapActiveSandboxRequest, type SwapActiveSandboxResponse, TTYD_SUBPROTOCOL, type TerminalCapability, type TerminalExecRequest, type TerminalExecResponse, type TerminalPtyExitedPayload, type TerminalPtyOutputDeltaPayload, type TerminalPtyStartedPayload, type ToolAuthNeededPayload, type ToolRef, TtydClientCommand, TtydServerCommand, type UpdateConnectionRequest, type UpdateKnowledgeMemoryRequest, type UpdateRigRequest, type UpdateScheduledTaskRequest, type UpdateSessionGoalRequest, type UpdateSessionPinRequest, type UpdateSessionRequest, type UpdateVariableSetRequest, type UpdateWorkspaceEnvironmentRequest, type UpdateWorkspaceMemberRequest, type UpdateWorkspaceRequest, type UpdateWorkspaceSettingsRequest, type UploadFileInput, type UsageEvent, type UsageEventType, type UserApprovalDecisionEventInput, type UserMessageEventInput, type VariableSet, type VariableSetVariableMetadata, type ViewerHeartbeatRequest, type ViewerHeartbeatResponse, type ViewerHolder, type Workspace, type WorkspaceCaptureDegradedReason, type WorkspaceCaptureFile, type WorkspaceCaptureManifest, type WorkspaceCaptureRepo, type WorkspaceCaptureSignedUrl, type WorkspaceCaptureStats, type WorkspaceEnvironment, type WorkspaceEnvironmentVariableMetadata, type WorkspaceInferenceControlResponse, type WorkspaceMember, type WorkspaceMemorySearchMode, type WorkspaceMemorySearchRequest, type WorkspaceMemorySearchResponse, type WorkspaceMemorySearchResult, type WorkspaceRegisteredPack, type WorkspaceRevisionCapturedPayload, type WorkspaceRevisionDegradedPayload, type WorkspaceSettings, applyUrlRotation, desktopSocketUrl, formatSseEvent, isRetryableStreamError, nextDesktopState, parseSseStream, proxySessionEventStream, resumeSequenceFromRequest, sessionEventsToSseResponse, sessionEventsToSseStream, streamSessionEvents, terminalSocketUrl, ttydAuthFrame, ttydInputFrame, ttydResizeFrame };
3523
+ export { type AccessContext, type AccessGrant, type AccountGrant, type AccountRole, type AcknowledgeStreamRequest, type AcknowledgeStreamResponse, type AddDocumentRequest, type AddWorkspaceMemberRequest, type AgentMessageCompletedPayload, type AgentTextDeltaPayload, type AgentToolCallCreatedPayload, type AgentToolCallOutputPayload, type ApiKey, type AttachViewerRequest, type AttachViewerResponse, type BillingBalance, type BillingEntitlementsResponse, type BillingMode, type BillingSummary, type BillingUsageResponse, type CapabilityCatalogItem, type CapabilityCatalogResponse, type CapabilityInstallation, type CapabilityInstallationStatus, type CapabilityKind, type CapabilityPack, type CapabilityPackConnector, type CapabilityPackConnectorAuthModel, type CapabilityPackKnowledge, type CapabilityPackScheduledTaskTemplate, type CapabilityPackSkill, type CapabilityPackSkillFile, type CapabilityPackVariableSetSpec, type CapabilityRuntime, type CapabilitySource, type CapabilityUnavailableReason, type ClientAuthConfig, type ClientConfig, type ClientModel, type ClientSessionEventInput, type CodexAccount, type CodexAccountSwitchedPayload, type CodexAccountsResponse, type CodexConnectPoll, type CodexConnectStart, type CodexConnectionStatus, type CodexRotationSettings, type CodexUsage, type CodexUsageMap, type CodexUsagePayload, type CodexUsageWindow, type CompactSessionContextResult, type CompleteFileUploadResponse, type ComposerDraft, type ComputerUseCapability, type ConnectionKind, type ConnectionMetadata, type ConnectionResponse, type ConnectionStatus, type CreateApiKeyRequest, type CreateApiKeyResponse, type CreateCapabilityCatalogItemRequest, type CreateCheckoutRequest, type CreateCheckoutResponse, type CreateConnectionRequest, type CreateDocumentBaseRequest, type CreateFileUploadRequest, type CreateFileUploadResponse, type CreateGitHubAppManifestRequest, type CreateGitHubAppManifestResponse, type CreateKnowledgeMemoryRequest, type CreateRigRequest, type CreateScheduledTaskRequest, type CreateSessionRequest, type CreateVariableSetRequest, type CreateWorkspaceEnvironmentRequest, type CreateWorkspaceRequest, DEFAULT_WORKSPACE_TRANSCRIPTION_POLICY, type DeleteSessionQueueItemRequest, type DesktopConnectionState, type DesktopRfbFactory, type DesktopRfbLike, type DesktopStreamCapability, type DesktopStreamEvent, type DeviceEnrollmentApproveRequest, type DeviceEnrollmentApproveResponse, type DeviceEnrollmentDenyRequest, type DeviceEnrollmentDenyResponse, type DeviceEnrollmentLookupMachine, type DeviceEnrollmentLookupRequest, type DeviceEnrollmentLookupResponse, type DiscoverMcpCapabilitiesResponse, type Document, type DocumentBase, type DocumentSearchMode, type DocumentSearchRequest, type DocumentSearchResponse, type DocumentSearchResult, type DocumentStatus, type EditSessionQueueItemRequest, type EffectiveControlBlocker, type EffectiveControlResumeOption, type EffectiveSessionControl, type EnableCapabilityRequest, type EnablePackRequest, type EnrollTokenExchangeRequest, type EnrollTokenExchangeResponse, type EnrollmentCredentials, type EnrollmentOs, type EntitlementValue, type Entitlements, type EntitlementsMode, type FetchLike, type FileAsset, type FileDownloadUrlResponse, type FileResourceRef, type FileStatus, type FileSystemCapability, type FileUploadData, type FsChangeKind, type FsChangedPayload, type FsDeleteRequest, type FsDeleteResponse, type FsEncoding, type FsListRequest, type FsListResponse, type FsMkdirRequest, type FsMkdirResponse, type FsMoveRequest, type FsMoveResponse, type FsNodeType, type FsReadRequest, type FsReadResponse, type FsTreeNode, type FsWriteRequest, type FsWriteResponse, type GetPackResponse, type GetWorkspaceCaptureFileResponse, type GetWorkspaceCaptureResponse, type GitCapability, type GitChangedPayload, type GitCommit, type GitCredentialBindingId, type GitCredentialProvider, type GitDiffHunk, type GitDiffLine, type GitDiffLineType, type GitDiffRequest, type GitDiffResponse, type GitFileDiff, type GitFileStatus, type GitFileStatusCode, type GitHubAppInfo, type GitHubInstallationBinding, type GitHubRepositoriesResponse, type GitHubRepository, type GitHubRepositoryScope, type GitLogRequest, type GitLogResponse, type GitRepositoryAccess, type GitShowRequest, type GitShowResponse, type GitStatusRequest, type GitStatusResponse, type GoalSpec, type HumanInputAnswer, type HumanInputOption, type HumanInputQuestion, type HumanInputQuestionKind, type HumanInputResponse, type IntegrationClientMetadata, KNOWN_PERMISSIONS, KNOWN_USAGE_EVENT_TYPES, type KnowledgeMemory, type KnowledgeMemoryKind, type KnowledgeMemorySearchRequest, type KnowledgeMemoryStatus, type KnowledgeSourceKind, type KnowledgeSourceRef, type KnownPermission, type KnownSessionEventType, type KnownUsageEventType, type LineageNode, type ListApiKeysResponse, type ListConnectionsResponse, type ListPacksResponse, type ListWorkspaceMembersResponse, type MachineKind, type MachineMetricsSeriesResponse, type MachineState, type MachineView, type MachinesResponse, type McpServerConnectionRef, type MetricSample, type MintEnrollTokenRequest, type MintEnrollTokenResponse, type MoveSessionQueueItemRequest, type OAuthStartRequest, type OAuthStartResponse, OPENGENI_API_CONTRACT_HEADER, OPENGENI_API_CONTRACT_REVISION, OpenGeniApiContractMismatchError, OpenGeniApiError, OpenGeniClient, type OpenGeniClientOptions, type OpenGeniRequestOptions, OpenGeniStreamError, type PackInstallation, type PackInstallationStatus, type Permission, type ProductAccessMode, type ProposeRigChangeRequest, type ProxySessionEventStreamOptions, type PtyCloseRequest, type PtyOpenRequest, type PtyOpenResponse, type PtyResizeRequest, type PtyWriteRequest, type ReasoningEffort, type RecordingAvailablePayload, type RecordingCapability, type RecordingCodec, type RecordingContentType, type RecordingFailedPayload, type RecordingFailedReason, type RecordingMode, type RecordingStartedPayload, type RegisterCapabilityPackRequest, type RepositoryResourceRef, type ResourceRef, type Rig, type RigChange, type RigChangeKind, type RigChangeStatus, type RigChangeVerification, type RigCheck, type RigCheckResult, type RigDefinitionEditPayload, type RigSetupAppendPayload, type RigVersion, SESSION_EVENT_TYPES, type SandboxBackend, type SandboxCapabilityName, type SandboxCommandOutputDeltaPayload, type SandboxOs, type SaveComposerDraftRequest, type ScheduledTask, type ScheduledTaskAgentConfig, type ScheduledTaskAgentConfigInput, type ScheduledTaskDayOfWeek, type ScheduledTaskOverlapPolicy, type ScheduledTaskRun, type ScheduledTaskRunMode, type ScheduledTaskRunStatus, type ScheduledTaskScheduleSpec, type ScheduledTaskStatus, type ScheduledTaskTriggerType, type SendMessageInput, type ServiceTurnInitiator, type ServiceTurnInitiatorContext, type Session, type SessionCapabilities, type SessionCommandReceipt, type SessionControlResponse, type SessionEvent, type SessionEventListOptions, type SessionEventPage, type SessionEventPayloadMode, type SessionEventReadDirection, type SessionEventReadMode, type SessionEventSemanticClass, type SessionEventStreamTransport, type SessionEventType, type SessionGoal, type SessionGoalCreatedBy, type SessionGoalStatus, type SessionHumanInputRequest, type SessionLineageResponse, type SessionListResponse, type SessionMcpCredentialUpdateInput, type SessionMcpServerInput, type SessionMcpServerMetadata, type SessionQueueMutationResponse, type SessionQueueSnapshot, type SessionStatus, type SessionStatusChangedPayload, type SessionStructuredCapabilities, type SessionSummary, type SessionSystemUpdate, type SessionSystemUpdateKind, type SessionSystemUpdateState, type SessionTurn, type SessionTurnSource, type SessionTurnStatus, type SetWorkspaceEnvironmentVariableRequest, type SseMessage, type SseReStreamOptions, type SteerMessageResult, type SteerSessionQueueItemRequest, type StreamClosedPayload, type StreamConnectionState, type StreamOpenedPayload, type StreamRevokedPayload, type StreamSessionEventsOptions, type StreamUrlRotatedPayload, type SubmitHumanInputResponseRequest, type SwapActiveSandboxRequest, type SwapActiveSandboxResponse, TTYD_SUBPROTOCOL, type TerminalCapability, type TerminalExecRequest, type TerminalExecResponse, type TerminalPtyExitedPayload, type TerminalPtyOutputDeltaPayload, type TerminalPtyStartedPayload, type ToolAuthNeededPayload, type ToolRef, type TranscriptionAdapter, type TranscriptionAdapterDescriptor, type TranscriptionAdapterStartContext, type TranscriptionAuthorization, type TranscriptionCredentialMode, type TranscriptionDiagnostic, type TranscriptionErrorCode, type TranscriptionEvent, type TranscriptionEventListener, type TranscriptionLifecycleStatus, type TranscriptionPolicyBlockReason, type TranscriptionResultMetadata, type TranscriptionSession, type TranscriptionSessionRequest, type TranscriptionSpeaker, type TranscriptionTargetSelection, type TranscriptionTimeSpan, type TranscriptionWord, TtydClientCommand, TtydServerCommand, type TurnInitiator, type UpdateConnectionRequest, type UpdateKnowledgeMemoryRequest, type UpdateRigRequest, type UpdateScheduledTaskRequest, type UpdateSessionGoalRequest, type UpdateSessionPinRequest, type UpdateSessionRequest, type UpdateVariableSetRequest, type UpdateWorkspaceEnvironmentRequest, type UpdateWorkspaceMemberRequest, type UpdateWorkspaceRequest, type UpdateWorkspaceSettingsRequest, type UploadFileInput, type UsageEvent, type UsageEventType, type UserApprovalDecisionEventInput, type UserHumanInputResponseEventInput, type UserMessageEventInput, type VariableSet, type VariableSetVariableMetadata, type ViewerHeartbeatRequest, type ViewerHeartbeatResponse, type ViewerHolder, type Workspace, type WorkspaceCaptureDegradedReason, type WorkspaceCaptureFile, type WorkspaceCaptureManifest, type WorkspaceCaptureRepo, type WorkspaceCaptureSignedUrl, type WorkspaceCaptureStats, type WorkspaceControlEvent, type WorkspaceControlEventPage, type WorkspaceControlStreamTransport, type WorkspaceEnvironment, type WorkspaceEnvironmentVariableMetadata, type WorkspaceInferenceControlResponse, type WorkspaceMember, type WorkspaceMemorySearchMode, type WorkspaceMemorySearchRequest, type WorkspaceMemorySearchResponse, type WorkspaceMemorySearchResult, type WorkspaceRegisteredPack, type WorkspaceRevisionCapturedPayload, type WorkspaceRevisionDegradedPayload, type WorkspaceSettings, type WorkspaceTranscriptionPolicy, type WorkspaceTranscriptionTarget, applyUrlRotation, authorizeTranscriptionAdapter, createTranscriptionSessionRequest, desktopSocketUrl, formatSseEvent, isRetryableStreamError, nextDesktopState, parseSseStream, proxySessionEventStream, resolveWorkspaceTranscriptionPolicy, resumeSequenceFromRequest, sessionEventsToSseResponse, sessionEventsToSseStream, streamSessionEvents, streamWorkspaceControlEvents, terminalSocketUrl, ttydAuthFrame, ttydInputFrame, ttydResizeFrame };