@opengeni/sdk 0.36.1 → 0.37.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/README.md +6 -1
- package/dist/chunk-DXDL7EEW.js +573 -0
- package/dist/chunk-DXDL7EEW.js.map +1 -0
- package/dist/chunk-OB5PGV6N.js +1988 -0
- package/dist/chunk-OB5PGV6N.js.map +1 -0
- package/dist/chunk-OINSI33U.js +97 -0
- package/dist/chunk-OINSI33U.js.map +1 -0
- package/dist/{chunk-B7E4FPNZ.js → chunk-VOQ235WN.js} +136 -106
- package/dist/chunk-VOQ235WN.js.map +1 -0
- package/dist/client.d.ts +35 -2
- package/dist/codex-realtime-controller.d.ts +109 -0
- package/dist/codex-realtime-controller.js +12 -0
- package/dist/codex-realtime-controller.js.map +1 -0
- package/dist/codex-realtime-lifecycle.d.ts +18 -0
- package/dist/codex-realtime-v3-wire.d.ts +86 -0
- package/dist/codex-realtime-v3.d.ts +52 -0
- package/dist/codex-realtime.d.ts +68 -0
- package/dist/core.js +6 -4
- package/dist/gateway-realtime-transport.d.ts +2 -0
- package/dist/gateway-realtime-transport.js +7 -0
- package/dist/gateway-realtime-transport.js.map +1 -0
- package/dist/index.d.ts +10 -1
- package/dist/index.js +38 -6
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +193 -3
- package/package.json +10 -1
- package/src/client.ts +211 -17
- package/src/codex-realtime-controller.ts +1427 -0
- package/src/codex-realtime-lifecycle.ts +97 -0
- package/src/codex-realtime-v3-wire.ts +349 -0
- package/src/codex-realtime-v3.ts +575 -0
- package/src/codex-realtime.ts +411 -0
- package/src/gateway-realtime-transport.ts +650 -0
- package/src/index.ts +71 -0
- package/src/types.ts +238 -3
- package/dist/chunk-B7E4FPNZ.js.map +0 -1
package/src/index.ts
CHANGED
|
@@ -27,6 +27,56 @@ export { parseSseStream } from "./sse";
|
|
|
27
27
|
export type { SseMessage } from "./sse";
|
|
28
28
|
export { normalizeMcpOutput } from "./mcp-output";
|
|
29
29
|
export type { NormalizedMcpOutput } from "./mcp-output";
|
|
30
|
+
export {
|
|
31
|
+
CodexRealtimeMicrophoneError,
|
|
32
|
+
acquireCodexRealtimeMicrophone,
|
|
33
|
+
codexRealtimeMicrophoneHealthy,
|
|
34
|
+
startCodexRealtimeWebrtc,
|
|
35
|
+
} from "./codex-realtime";
|
|
36
|
+
export type {
|
|
37
|
+
AcquireCodexRealtimeMicrophoneOptions,
|
|
38
|
+
CodexRealtimeAudibleOutputState,
|
|
39
|
+
CodexRealtimeConnectionHealth,
|
|
40
|
+
CodexRealtimeMicrophoneErrorCode,
|
|
41
|
+
CodexRealtimeNegotiator,
|
|
42
|
+
CodexRealtimeWebrtcSession,
|
|
43
|
+
StartCodexRealtimeWebrtcOptions,
|
|
44
|
+
} from "./codex-realtime";
|
|
45
|
+
export {
|
|
46
|
+
CODEX_REALTIME_CONTEXT_APPEND_MAX_BYTES,
|
|
47
|
+
contextAppendChunks,
|
|
48
|
+
createCodexRealtimeV3Bridge,
|
|
49
|
+
encodeCodexRealtimeV3DelegationContextAppend,
|
|
50
|
+
encodeCodexRealtimeV3SessionContextAppend,
|
|
51
|
+
parseCodexRealtimeV3Event,
|
|
52
|
+
} from "./codex-realtime-v3";
|
|
53
|
+
export type {
|
|
54
|
+
CodexRealtimeV3Bridge,
|
|
55
|
+
CodexRealtimeV3BridgeOptions,
|
|
56
|
+
CodexRealtimeV3BridgeSnapshot,
|
|
57
|
+
CodexRealtimeV3ContextAppendChannel,
|
|
58
|
+
CodexRealtimeV3DelegationContextAppend,
|
|
59
|
+
CodexRealtimeV3Event,
|
|
60
|
+
CodexRealtimeV3ParseFailure,
|
|
61
|
+
CodexRealtimeV3ParseResult,
|
|
62
|
+
CodexRealtimeV3SessionContextAppend,
|
|
63
|
+
} from "./codex-realtime-v3";
|
|
64
|
+
export { createCodexRealtimeController } from "./codex-realtime-controller";
|
|
65
|
+
export type {
|
|
66
|
+
CodexRealtimeController,
|
|
67
|
+
CodexRealtimeControllerClient,
|
|
68
|
+
CodexRealtimeDiagnostic,
|
|
69
|
+
CodexRealtimeDiagnosticKind,
|
|
70
|
+
CodexRealtimeControllerSnapshot,
|
|
71
|
+
CodexRealtimeControllerStatus,
|
|
72
|
+
CodexRealtimeMicrophoneState,
|
|
73
|
+
CodexRealtimeOwnerStorage,
|
|
74
|
+
CreateCodexRealtimeControllerOptions,
|
|
75
|
+
RealtimeControllerTransportStarter,
|
|
76
|
+
} from "./codex-realtime-controller";
|
|
77
|
+
export { createGatewayRealtimeTransportStarter } from "./gateway-realtime-transport";
|
|
78
|
+
export { projectSessionRealtimeLifecycle } from "./codex-realtime-lifecycle";
|
|
79
|
+
export type { SessionRealtimeLifecycleProjection } from "./codex-realtime-lifecycle";
|
|
30
80
|
// Desktop (noVNC) transport contract — pure, zero-dep (the RFB import lives in
|
|
31
81
|
// @opengeni/react). URL assembler + connection state machine + rotation fence.
|
|
32
82
|
export { desktopSocketUrl, nextDesktopState, applyUrlRotation } from "./desktop";
|
|
@@ -169,10 +219,12 @@ export {
|
|
|
169
219
|
} from "./types";
|
|
170
220
|
export type {
|
|
171
221
|
AccessContext,
|
|
222
|
+
ActivateCodexRealtimeConnectionRequest,
|
|
172
223
|
AccessGrant,
|
|
173
224
|
AccountGrant,
|
|
174
225
|
AccountRole,
|
|
175
226
|
AddWorkspaceMemberRequest,
|
|
227
|
+
BeginSessionRealtimeRequest,
|
|
176
228
|
AgentMessageCompletedPayload,
|
|
177
229
|
AgentTextDeltaPayload,
|
|
178
230
|
AgentToolCallCreatedPayload,
|
|
@@ -215,6 +267,14 @@ export type {
|
|
|
215
267
|
ClientConfig,
|
|
216
268
|
ClientVoiceInputConfig,
|
|
217
269
|
ClientModel,
|
|
270
|
+
CodexRealtimeVoice,
|
|
271
|
+
CodexRealtimeWebrtcRequest,
|
|
272
|
+
CodexRealtimeWebrtcResponse,
|
|
273
|
+
CodexRealtimeWebrtcVersion,
|
|
274
|
+
GatewayRealtimeConnectRequest,
|
|
275
|
+
GatewayRealtimeConnectResponse,
|
|
276
|
+
GatewayRealtimeInitialItem,
|
|
277
|
+
EndSessionRealtimeRequest,
|
|
218
278
|
ModelAvailabilityV1,
|
|
219
279
|
ModelBillingAttributionV1,
|
|
220
280
|
ModelCapabilitiesV1,
|
|
@@ -224,8 +284,16 @@ export type {
|
|
|
224
284
|
ModelCredentialSourceV1,
|
|
225
285
|
ModelPricingScheduleV1,
|
|
226
286
|
ModelPricingV1,
|
|
287
|
+
RenewSessionRealtimeRequest,
|
|
288
|
+
SessionRealtimeEndReason,
|
|
289
|
+
SessionRealtimeMode,
|
|
290
|
+
SessionRealtimeModel,
|
|
291
|
+
SessionRealtimeMutationResponse,
|
|
292
|
+
SessionRealtimeState,
|
|
227
293
|
WorkspaceModelCatalogModel,
|
|
228
294
|
WorkspaceModelCatalogResponse,
|
|
295
|
+
WorkspaceRealtimeModelCatalogItem,
|
|
296
|
+
WorkspaceRealtimeModelCatalogResponse,
|
|
229
297
|
CodexAccount,
|
|
230
298
|
CodexAccountOverview,
|
|
231
299
|
CodexAccountsResponse,
|
|
@@ -261,6 +329,8 @@ export type {
|
|
|
261
329
|
CreateCapabilityCatalogItemRequest,
|
|
262
330
|
OpenGeniSlackBotInstallRequest,
|
|
263
331
|
OpenGeniSlackBotInstallStart,
|
|
332
|
+
SlackReactionChannel,
|
|
333
|
+
SlackReactionChannelListResponse,
|
|
264
334
|
CreateConnectionRequest,
|
|
265
335
|
CreateCheckoutRequest,
|
|
266
336
|
CreateCheckoutResponse,
|
|
@@ -535,6 +605,7 @@ export type {
|
|
|
535
605
|
UpdateWorkspaceMemberRequest,
|
|
536
606
|
UpdateWorkspaceRequest,
|
|
537
607
|
UpdateWorkspaceSettingsRequest,
|
|
608
|
+
WorkspaceSlackReactionSummonSettings,
|
|
538
609
|
TranscribeAudioResponse,
|
|
539
610
|
UploadFileInput,
|
|
540
611
|
UsageEvent,
|
package/src/types.ts
CHANGED
|
@@ -5,6 +5,210 @@ import type { WorkspaceTranscriptionPolicy } from "./transcription";
|
|
|
5
5
|
// publishable on its own; `test/contract-parity.test.ts` pins these types to
|
|
6
6
|
// the contracts package so drift fails the gate instead of shipping.
|
|
7
7
|
|
|
8
|
+
export type CodexRealtimeWebrtcVersion = "v3";
|
|
9
|
+
export type CodexRealtimeVoice =
|
|
10
|
+
| "juniper"
|
|
11
|
+
| "maple"
|
|
12
|
+
| "spruce"
|
|
13
|
+
| "ember"
|
|
14
|
+
| "vale"
|
|
15
|
+
| "breeze"
|
|
16
|
+
| "arbor"
|
|
17
|
+
| "sol"
|
|
18
|
+
| "cove";
|
|
19
|
+
|
|
20
|
+
export type CodexRealtimeWebrtcRequest = {
|
|
21
|
+
realtimeId: string;
|
|
22
|
+
operationId: string;
|
|
23
|
+
browserInstanceId: string;
|
|
24
|
+
ownerKey: string;
|
|
25
|
+
expectedVersion: number;
|
|
26
|
+
expectedConnectionEpoch: number;
|
|
27
|
+
rotate: boolean;
|
|
28
|
+
browserActivation?: "required" | undefined;
|
|
29
|
+
sdp: string;
|
|
30
|
+
version: CodexRealtimeWebrtcVersion;
|
|
31
|
+
instructions?: string | undefined;
|
|
32
|
+
voice?: CodexRealtimeVoice | undefined;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export type CodexRealtimeWebrtcResponse = {
|
|
36
|
+
sdp: string;
|
|
37
|
+
version: CodexRealtimeWebrtcVersion;
|
|
38
|
+
model: "gpt-live-1-boulder-alpha";
|
|
39
|
+
connectionId: string;
|
|
40
|
+
connectionEpoch: number;
|
|
41
|
+
startupFenceSequence: number;
|
|
42
|
+
modeVersion: number;
|
|
43
|
+
replay: boolean;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export type GatewayRealtimeConnectRequest = {
|
|
47
|
+
realtimeId: string;
|
|
48
|
+
operationId: string;
|
|
49
|
+
browserInstanceId: string;
|
|
50
|
+
ownerKey: string;
|
|
51
|
+
expectedVersion: number;
|
|
52
|
+
expectedConnectionEpoch: number;
|
|
53
|
+
rotate: boolean;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export type GatewayRealtimeInitialItem = {
|
|
57
|
+
role: "user" | "developer" | "assistant";
|
|
58
|
+
text: string;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export type GatewayRealtimeConnectResponse = {
|
|
62
|
+
token: string;
|
|
63
|
+
url: string;
|
|
64
|
+
upstreamModelId: string;
|
|
65
|
+
expiresAt: number | null;
|
|
66
|
+
connectionId: string;
|
|
67
|
+
connectionEpoch: number;
|
|
68
|
+
startupFenceSequence: number;
|
|
69
|
+
modeVersion: number;
|
|
70
|
+
initialItems: GatewayRealtimeInitialItem[];
|
|
71
|
+
instructions: string;
|
|
72
|
+
replay: false;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export type ActivateCodexRealtimeConnectionRequest = {
|
|
76
|
+
operationId: string;
|
|
77
|
+
browserInstanceId: string;
|
|
78
|
+
ownerKey: string;
|
|
79
|
+
connectionEpoch: number;
|
|
80
|
+
expectedVersion: number;
|
|
81
|
+
expectedConnectionEpoch: number;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export type SessionRealtimeLedgerDirection = "provider_in" | "provider_out";
|
|
85
|
+
export type SessionRealtimeLedgerKind =
|
|
86
|
+
| "user_transcript"
|
|
87
|
+
| "assistant_transcript"
|
|
88
|
+
| "delegation_call"
|
|
89
|
+
| "delegation_progress"
|
|
90
|
+
| "delegation_result"
|
|
91
|
+
| "interruption"
|
|
92
|
+
| "session_update"
|
|
93
|
+
| "error";
|
|
94
|
+
|
|
95
|
+
export type SessionRealtimeLedgerEntry = {
|
|
96
|
+
id: string;
|
|
97
|
+
realtimeId: string;
|
|
98
|
+
operationId: string;
|
|
99
|
+
connectionEpoch: number;
|
|
100
|
+
sequence: number;
|
|
101
|
+
direction: SessionRealtimeLedgerDirection;
|
|
102
|
+
kind: SessionRealtimeLedgerKind;
|
|
103
|
+
role: "user" | "assistant" | null;
|
|
104
|
+
providerEventId: string | null;
|
|
105
|
+
delegationItemId: string | null;
|
|
106
|
+
sourceUpdateId: string | null;
|
|
107
|
+
historyItemId: string | null;
|
|
108
|
+
turnId: string | null;
|
|
109
|
+
text: string | null;
|
|
110
|
+
payload: Record<string, unknown>;
|
|
111
|
+
clientAckedAt: string | null;
|
|
112
|
+
providerAckedAt: string | null;
|
|
113
|
+
createdAt: string;
|
|
114
|
+
updatedAt: string;
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
export type SessionRealtimeInboundEntry = {
|
|
118
|
+
operationId: string;
|
|
119
|
+
kind: Exclude<
|
|
120
|
+
SessionRealtimeLedgerKind,
|
|
121
|
+
"delegation_progress" | "delegation_result" | "session_update"
|
|
122
|
+
>;
|
|
123
|
+
role?: "user" | "assistant" | null | undefined;
|
|
124
|
+
providerEventId?: string | null | undefined;
|
|
125
|
+
delegationItemId?: string | null | undefined;
|
|
126
|
+
text?: string | null | undefined;
|
|
127
|
+
payload?: Record<string, unknown> | undefined;
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
export type SyncSessionRealtimeLedgerRequest = {
|
|
131
|
+
browserInstanceId: string;
|
|
132
|
+
ownerKey: string;
|
|
133
|
+
expectedVersion: number;
|
|
134
|
+
connectionId: string;
|
|
135
|
+
connectionEpoch: number;
|
|
136
|
+
entries?: SessionRealtimeInboundEntry[] | undefined;
|
|
137
|
+
clientAckThroughSequence?: number | null | undefined;
|
|
138
|
+
providerAckSequences?: number[] | undefined;
|
|
139
|
+
providerStarted?:
|
|
140
|
+
| { providerSessionId: string; providerEventId?: string | null | undefined }
|
|
141
|
+
| undefined;
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
export type SyncSessionRealtimeLedgerResponse = {
|
|
145
|
+
accepted: Array<{ entry: SessionRealtimeLedgerEntry; replay: boolean }>;
|
|
146
|
+
outbound: SessionRealtimeLedgerEntry[];
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
export type SessionRealtimeModel =
|
|
150
|
+
| "gpt-live-1-boulder-alpha"
|
|
151
|
+
| "opengeni-gateway/openai/gpt-realtime-2.1"
|
|
152
|
+
| "opengeni-gateway/openai/gpt-realtime-mini"
|
|
153
|
+
| "opengeni-gateway/xai/grok-voice-think-fast-2.0"
|
|
154
|
+
| "workspace-gateway/openai/gpt-realtime-2.1"
|
|
155
|
+
| "workspace-gateway/openai/gpt-realtime-mini"
|
|
156
|
+
| "workspace-gateway/xai/grok-voice-think-fast-2.0";
|
|
157
|
+
|
|
158
|
+
export type WorkspaceRealtimeModelCatalogItem = {
|
|
159
|
+
id: SessionRealtimeModel;
|
|
160
|
+
label: string;
|
|
161
|
+
provider: "OpenGeni" | "Connected Codex" | "Your Gateway";
|
|
162
|
+
description: string;
|
|
163
|
+
available: boolean;
|
|
164
|
+
unavailableReason: string | null;
|
|
165
|
+
recommended: boolean;
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
export type WorkspaceRealtimeModelCatalogResponse = {
|
|
169
|
+
models: WorkspaceRealtimeModelCatalogItem[];
|
|
170
|
+
};
|
|
171
|
+
export type SessionRealtimeState = "active" | "ended";
|
|
172
|
+
export type SessionRealtimeEndReason = "user_stop" | "browser_unload" | "lease_expired";
|
|
173
|
+
|
|
174
|
+
export type SessionRealtimeMode = {
|
|
175
|
+
id: string;
|
|
176
|
+
sessionId: string;
|
|
177
|
+
operationId: string;
|
|
178
|
+
browserInstanceId: string;
|
|
179
|
+
model: SessionRealtimeModel;
|
|
180
|
+
state: SessionRealtimeState;
|
|
181
|
+
version: number;
|
|
182
|
+
connectionEpoch: number;
|
|
183
|
+
leaseExpiresAt: string;
|
|
184
|
+
lastHeartbeatAt: string;
|
|
185
|
+
startedAt: string;
|
|
186
|
+
endedAt: string | null;
|
|
187
|
+
endReason: SessionRealtimeEndReason | null;
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
export type BeginSessionRealtimeRequest = {
|
|
191
|
+
operationId: string;
|
|
192
|
+
browserInstanceId: string;
|
|
193
|
+
ownerKey: string;
|
|
194
|
+
model: SessionRealtimeModel;
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
export type RenewSessionRealtimeRequest = {
|
|
198
|
+
browserInstanceId: string;
|
|
199
|
+
ownerKey: string;
|
|
200
|
+
expectedVersion: number;
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
export type EndSessionRealtimeRequest = RenewSessionRealtimeRequest & {
|
|
204
|
+
reason: Extract<SessionRealtimeEndReason, "user_stop" | "browser_unload">;
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
export type SessionRealtimeMutationResponse = {
|
|
208
|
+
mode: SessionRealtimeMode;
|
|
209
|
+
replay: boolean;
|
|
210
|
+
};
|
|
211
|
+
|
|
8
212
|
export type SessionStatus =
|
|
9
213
|
| "queued"
|
|
10
214
|
| "running"
|
|
@@ -228,7 +432,7 @@ export type AcknowledgeStreamResponse = {
|
|
|
228
432
|
export type ViewerHeartbeatRequest = { leaseEpoch: number };
|
|
229
433
|
export type ViewerHeartbeatResponse = { alive: boolean };
|
|
230
434
|
|
|
231
|
-
export type ReasoningEffort = "none" | "minimal" | "low" | "medium" | "high" | "xhigh";
|
|
435
|
+
export type ReasoningEffort = "none" | "minimal" | "low" | "medium" | "high" | "xhigh" | "max";
|
|
232
436
|
export type LatencyMode = "standard" | "priority" | "fast";
|
|
233
437
|
export type GitCredentialProvider = "github" | "gitlab" | "azure_devops";
|
|
234
438
|
export type GitCredentialBindingId = string;
|
|
@@ -614,6 +818,8 @@ export type Session = {
|
|
|
614
818
|
// Per-session agent persona/system instructions supplied at create; null when
|
|
615
819
|
// the session carried none. Org-visible metadata, never a timeline event.
|
|
616
820
|
instructions: string | null;
|
|
821
|
+
/** Immutable normalized prompt-policy role; distinct from membership roles. */
|
|
822
|
+
policyRole: string | null;
|
|
617
823
|
resources: ResourceRef[];
|
|
618
824
|
skills: SessionSkill[];
|
|
619
825
|
tools: ToolRef[];
|
|
@@ -841,6 +1047,8 @@ export const SESSION_EVENT_TYPES = [
|
|
|
841
1047
|
// Defensive bounded projection for malformed/legacy oversized envelopes.
|
|
842
1048
|
"session.event.envelope_omitted",
|
|
843
1049
|
"session.status.changed",
|
|
1050
|
+
"session.realtime.started",
|
|
1051
|
+
"session.realtime.ended",
|
|
844
1052
|
"session.requiresAction",
|
|
845
1053
|
"session.humanInput.requested",
|
|
846
1054
|
"session.context.compaction.requested",
|
|
@@ -1692,7 +1900,9 @@ export type CreateSessionRequest = {
|
|
|
1692
1900
|
// projection before OpenGeni admits the initial turn. Replays must retain the
|
|
1693
1901
|
// same UUID and idempotency key.
|
|
1694
1902
|
requestedSessionId?: string | undefined;
|
|
1695
|
-
initialMessage
|
|
1903
|
+
initialMessage?: string | undefined;
|
|
1904
|
+
/** Create an idle session shell so realtime voice can be the first interaction. */
|
|
1905
|
+
startMode?: "realtime" | undefined;
|
|
1696
1906
|
/** System instructions scoped to the initial turn; never visible timeline text. */
|
|
1697
1907
|
turnInstructions?: string | undefined;
|
|
1698
1908
|
// Per-session agent persona/system instructions (org-visible metadata, not a
|
|
@@ -1700,6 +1910,8 @@ export type CreateSessionRequest = {
|
|
|
1700
1910
|
// how a host supplies per-agent-type prompts without leaking them into the
|
|
1701
1911
|
// user-visible timeline. Trimmed, non-empty, max 32768 chars.
|
|
1702
1912
|
instructions?: string | undefined;
|
|
1913
|
+
/** Immutable normalized prompt-policy role; distinct from membership roles. */
|
|
1914
|
+
policyRole?: string | undefined;
|
|
1703
1915
|
resources?: ResourceRef[] | undefined;
|
|
1704
1916
|
/** Inline skills fixed onto this session; omitted children inherit them. */
|
|
1705
1917
|
skills?: SessionSkill[] | undefined;
|
|
@@ -2163,7 +2375,9 @@ export type CodexAccountOverview = {
|
|
|
2163
2375
|
};
|
|
2164
2376
|
|
|
2165
2377
|
/** Independently settled live overview keyed by workspace credential id. */
|
|
2166
|
-
export type CodexOverviewResponse = {
|
|
2378
|
+
export type CodexOverviewResponse = {
|
|
2379
|
+
accounts: Record<string, CodexAccountOverview>;
|
|
2380
|
+
};
|
|
2167
2381
|
|
|
2168
2382
|
export type CodexAllocatorUpdate = {
|
|
2169
2383
|
allocatorEnabled: boolean;
|
|
@@ -2366,9 +2580,27 @@ export type WorkspaceSettings = {
|
|
|
2366
2580
|
maxNestedAgentDepth?: number | null | undefined;
|
|
2367
2581
|
/** Default for new Codex sessions; absent ⇒ remote_v2. */
|
|
2368
2582
|
codexCompactionDefault?: "remote_v2" | "portable" | undefined;
|
|
2583
|
+
slackReactionSummon?: WorkspaceSlackReactionSummonSettings | undefined;
|
|
2369
2584
|
[key: string]: unknown;
|
|
2370
2585
|
};
|
|
2371
2586
|
|
|
2587
|
+
export type WorkspaceSlackReactionSummonSettings = {
|
|
2588
|
+
enabled: boolean;
|
|
2589
|
+
emoji: string;
|
|
2590
|
+
channelPolicy: { mode: "bot_member" } | { mode: "allowlist"; channelIds: string[] };
|
|
2591
|
+
};
|
|
2592
|
+
|
|
2593
|
+
export type SlackReactionChannel = {
|
|
2594
|
+
id: string;
|
|
2595
|
+
name: string | null;
|
|
2596
|
+
isPrivate: boolean;
|
|
2597
|
+
};
|
|
2598
|
+
|
|
2599
|
+
export type SlackReactionChannelListResponse = {
|
|
2600
|
+
channels: SlackReactionChannel[];
|
|
2601
|
+
nextCursor: string | null;
|
|
2602
|
+
};
|
|
2603
|
+
|
|
2372
2604
|
export type WorkspaceVoiceInputSettings = {
|
|
2373
2605
|
enabled: boolean;
|
|
2374
2606
|
};
|
|
@@ -2379,6 +2611,7 @@ export type UpdateWorkspaceSettingsRequest = {
|
|
|
2379
2611
|
transcription?: WorkspaceTranscriptionPolicy | undefined;
|
|
2380
2612
|
maxNestedAgentDepth?: number | null | undefined;
|
|
2381
2613
|
codexCompactionDefault?: "remote_v2" | "portable" | undefined;
|
|
2614
|
+
slackReactionSummon?: WorkspaceSlackReactionSummonSettings | undefined;
|
|
2382
2615
|
[key: string]: unknown;
|
|
2383
2616
|
};
|
|
2384
2617
|
|
|
@@ -2682,6 +2915,8 @@ export type SessionControlResponse = {
|
|
|
2682
2915
|
effectiveControl: EffectiveSessionControl;
|
|
2683
2916
|
interruptionCount: number;
|
|
2684
2917
|
wakeCount: number;
|
|
2918
|
+
cancelledSessionCount: number;
|
|
2919
|
+
cancelledTurnCount: number;
|
|
2685
2920
|
};
|
|
2686
2921
|
|
|
2687
2922
|
export type WorkspaceInferenceControlResponse = {
|