@seed-app-studio/protocol 0.1.1-canary.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.
@@ -0,0 +1,1597 @@
1
+ //#region src/manifest.d.ts
2
+ type SeedAppKind = "vertical-app";
3
+ type SeedAppEntry = {
4
+ type: "iframe" | "webcontents";
5
+ url: string;
6
+ };
7
+ type SeedAppRouteContribution = {
8
+ path: string;
9
+ title: string;
10
+ };
11
+ type SeedAppResourceOpenerContribution = {
12
+ resourceType: string;
13
+ route: string;
14
+ };
15
+ type SeedAppLauncherContribution = {
16
+ label: string;
17
+ icon?: string;
18
+ order?: number;
19
+ };
20
+ type SeedAppContributions = {
21
+ launcher?: SeedAppLauncherContribution;
22
+ routes?: SeedAppRouteContribution[];
23
+ resourceOpeners?: SeedAppResourceOpenerContribution[];
24
+ conversationPanels?: Array<{
25
+ id: string;
26
+ title: string;
27
+ }>;
28
+ };
29
+ type SeedAppRuntime = {
30
+ sdkVersion: string;
31
+ framework: "react" | "vanilla" | string;
32
+ };
33
+ type SeedAppCapabilities = Record<string, string[]>;
34
+ type SeedAppPermissions = {
35
+ network?: {
36
+ allowedDomains?: string[];
37
+ };
38
+ memoryScopes?: string[];
39
+ mcpServers?: string[];
40
+ sensitiveActionsRequireApproval?: boolean;
41
+ };
42
+ type SeedAppGrantPolicy = "enabled" | "ask" | "disabled";
43
+ type SeedAppBundleSummary = {
44
+ format: "static-spa" | string;
45
+ entryHtml: string;
46
+ integrity?: string;
47
+ checksum?: string;
48
+ };
49
+ type SeedAppManifest = {
50
+ schemaVersion: 1;
51
+ id: string;
52
+ version: string;
53
+ name: string;
54
+ description?: string;
55
+ kind: SeedAppKind;
56
+ entry: SeedAppEntry;
57
+ contributes?: SeedAppContributions;
58
+ runtime: SeedAppRuntime;
59
+ capabilities: SeedAppCapabilities;
60
+ permissions?: SeedAppPermissions;
61
+ grantDefaults?: Record<string, SeedAppGrantPolicy>;
62
+ userConfigurable?: Record<string, boolean>;
63
+ tenantPolicy?: {
64
+ installScope?: "user" | "team" | "tenant";
65
+ dataResidency?: "inherit" | string;
66
+ };
67
+ bundle?: SeedAppBundleSummary;
68
+ };
69
+ type SeedAppBundleAsset = {
70
+ path: string;
71
+ sha256: string;
72
+ size: number;
73
+ contentType: string;
74
+ };
75
+ type SeedAppBundleManifest = {
76
+ format: "static-spa" | string;
77
+ entryHtml: string;
78
+ baseUrl: string;
79
+ assets: SeedAppBundleAsset[];
80
+ integrity?: string;
81
+ signature?: string | null;
82
+ };
83
+ type SeedAppValidationIssue = {
84
+ path: string;
85
+ message: string;
86
+ };
87
+ type SeedAppValidationResult<T> = {
88
+ success: true;
89
+ data: T;
90
+ errors: [];
91
+ } | {
92
+ success: false;
93
+ errors: SeedAppValidationIssue[];
94
+ };
95
+ declare function validateSeedAppManifest(input: unknown): SeedAppValidationResult<SeedAppManifest>;
96
+ declare function validateSeedAppBundleManifest(input: unknown): SeedAppValidationResult<SeedAppBundleManifest>;
97
+ //#endregion
98
+ //#region src/constants.d.ts
99
+ declare const SEED_BRIDGE_SCHEMA_VERSION: "seed.jsonrpc.v1";
100
+ declare const SEED_BRIDGE_ELECTRON_IPC_CHANNEL: "seed-bridge-adapter";
101
+ declare const SEED_APP_HOST_EVENT_NAMES: {
102
+ readonly hostReady: "host.ready";
103
+ readonly hostThemeChanged: "host.theme.changed";
104
+ readonly agentStream: "seed.agent.stream";
105
+ readonly aguiStream: "seed.agui.stream";
106
+ readonly backgroundStream: "seed.background.stream";
107
+ readonly agentApprovalChanged: "seed.agent.approval.changed";
108
+ readonly conversationChanged: "seed.conversation.changed";
109
+ readonly remotePcPresenceChanged: "seed.remotePc.presence.changed";
110
+ readonly employeeChanged: "seed.employee.changed";
111
+ readonly employeeMemoryEventsChanged: "seed.employee.memory.events.changed";
112
+ readonly roleTemplateChanged: "seed.roleTemplate.changed";
113
+ readonly roleMakerSessionChanged: "seed.roleMaker.session.changed";
114
+ readonly teamChanged: "seed.team.changed";
115
+ readonly teamAgentSpawned: "seed.team.agent.spawned";
116
+ readonly teamAgentRemoved: "seed.team.agent.removed";
117
+ readonly teamAgentRenamed: "seed.team.agent.renamed";
118
+ readonly teamAgentStatusChanged: "seed.team.agent.statusChanged";
119
+ readonly workspaceChanged: "seed.workspace.changed";
120
+ };
121
+ declare const SEED_APP_HOST_EVENT_NAME_LIST: readonly ["host.ready", "host.theme.changed", "seed.agent.stream", "seed.agui.stream", "seed.background.stream", "seed.agent.approval.changed", "seed.conversation.changed", "seed.remotePc.presence.changed", "seed.employee.changed", "seed.employee.memory.events.changed", "seed.team.changed", "seed.team.agent.statusChanged", "seed.team.agent.spawned", "seed.team.agent.removed", "seed.team.agent.renamed", "seed.roleTemplate.changed", "seed.roleMaker.session.changed", "seed.workspace.changed"];
122
+ declare const SEED_AGENT_STREAM_EVENT_NAMES: {
123
+ readonly runStarted: "agent.run.started";
124
+ readonly runCompleted: "agent.run.completed";
125
+ readonly runFailed: "agent.run.failed";
126
+ readonly runCancelled: "agent.run.cancelled";
127
+ readonly inputSteer: "agent.input.steer";
128
+ readonly inputCollect: "agent.input.collect";
129
+ readonly inputFollowup: "agent.input.followup";
130
+ readonly inputSide: "agent.input.side";
131
+ readonly messageDelta: "agent.message.delta";
132
+ readonly thoughtDelta: "agent.thought.delta";
133
+ readonly toolStarted: "agent.tool.started";
134
+ readonly toolUpdated: "agent.tool.updated";
135
+ readonly planUpdated: "agent.plan.updated";
136
+ readonly goalUpdated: "agent.goal.updated";
137
+ readonly commandsUpdated: "agent.commands.updated";
138
+ readonly modeUpdated: "agent.mode.updated";
139
+ readonly configUpdated: "agent.config.updated";
140
+ readonly contextUsageUpdated: "agent.context.usage.updated";
141
+ readonly sessionInfoUpdated: "agent.session.info.updated";
142
+ readonly audioTranscriptUpdated: "agent.audio.transcript.updated";
143
+ readonly artifactCreated: "agent.artifact.created";
144
+ readonly connectionDegraded: "agent.connection.degraded";
145
+ readonly turnCompleted: "agent.turn.completed";
146
+ readonly userConfirmed: "agent.user.confirmed";
147
+ readonly userDelta: "agent.user.delta";
148
+ readonly permissionRequired: "agent.permission.required";
149
+ readonly elicitationRequired: "agent.elicitation.required";
150
+ readonly backgroundOutput: "agent.background.output";
151
+ readonly subagentAnchor: "agent.subagent.anchor";
152
+ readonly subagentMessageDelta: "agent.subagent.message.delta";
153
+ readonly subagentStatusUpdated: "agent.subagent.status.updated";
154
+ };
155
+ declare const SEED_AGENT_STREAM_EVENT_NAME_LIST: readonly ["agent.run.started", "agent.run.completed", "agent.run.failed", "agent.run.cancelled", "agent.input.steer", "agent.input.collect", "agent.input.followup", "agent.input.side", "agent.message.delta", "agent.thought.delta", "agent.tool.started", "agent.tool.updated", "agent.plan.updated", "agent.goal.updated", "agent.commands.updated", "agent.mode.updated", "agent.config.updated", "agent.context.usage.updated", "agent.session.info.updated", "agent.audio.transcript.updated", "agent.artifact.created", "agent.connection.degraded", "agent.turn.completed", "agent.user.confirmed", "agent.user.delta", "agent.permission.required", "agent.elicitation.required", "agent.background.output", "agent.subagent.anchor", "agent.subagent.message.delta", "agent.subagent.status.updated"];
156
+ declare const SEED_BACKGROUND_STREAM_EVENT_NAMES: {
157
+ readonly taskOutput: "background.task.output";
158
+ };
159
+ declare const SEED_BACKGROUND_STREAM_EVENT_NAME_LIST: readonly ["background.task.output"];
160
+ declare const SEED_AGUI_STREAM_EVENT_NAMES: {
161
+ readonly runStarted: "RUN_STARTED";
162
+ readonly runFinished: "RUN_FINISHED";
163
+ readonly runError: "RUN_ERROR";
164
+ readonly textMessageStart: "TEXT_MESSAGE_START";
165
+ readonly textMessageContent: "TEXT_MESSAGE_CONTENT";
166
+ readonly textMessageEnd: "TEXT_MESSAGE_END";
167
+ readonly toolCallStart: "TOOL_CALL_START";
168
+ readonly toolCallArgs: "TOOL_CALL_ARGS";
169
+ readonly toolCallEnd: "TOOL_CALL_END";
170
+ readonly toolCallResult: "TOOL_CALL_RESULT";
171
+ readonly stateDelta: "STATE_DELTA";
172
+ readonly custom: "CUSTOM";
173
+ };
174
+ declare const SEED_AGUI_STREAM_EVENT_NAME_LIST: readonly ["RUN_STARTED", "RUN_FINISHED", "RUN_ERROR", "TEXT_MESSAGE_START", "TEXT_MESSAGE_CONTENT", "TEXT_MESSAGE_END", "TOOL_CALL_START", "TOOL_CALL_ARGS", "TOOL_CALL_END", "TOOL_CALL_RESULT", "STATE_DELTA", "CUSTOM"];
175
+ declare const SEED_BRIDGE_EVENT_CATALOG: readonly [{
176
+ readonly id: "app-host";
177
+ readonly owner: "app-host.runtime";
178
+ readonly purpose: "Host-level event contracts visible through the Seed Bridge envelope.";
179
+ readonly events: readonly ["host.ready", "host.theme.changed", "seed.agent.stream", "seed.agui.stream", "seed.background.stream", "seed.agent.approval.changed", "seed.conversation.changed", "seed.remotePc.presence.changed", "seed.employee.changed", "seed.employee.memory.events.changed", "seed.team.changed", "seed.team.agent.statusChanged", "seed.team.agent.spawned", "seed.team.agent.removed", "seed.team.agent.renamed", "seed.roleTemplate.changed", "seed.roleMaker.session.changed", "seed.workspace.changed"];
180
+ }, {
181
+ readonly id: "agent-stream";
182
+ readonly owner: "app-host.agent";
183
+ readonly purpose: "ACP-aligned agent lifecycle and replay events carried by seed.agent.stream.";
184
+ readonly events: readonly ["agent.run.started", "agent.run.completed", "agent.run.failed", "agent.run.cancelled", "agent.input.steer", "agent.input.collect", "agent.input.followup", "agent.input.side", "agent.message.delta", "agent.thought.delta", "agent.tool.started", "agent.tool.updated", "agent.plan.updated", "agent.goal.updated", "agent.commands.updated", "agent.mode.updated", "agent.config.updated", "agent.context.usage.updated", "agent.session.info.updated", "agent.audio.transcript.updated", "agent.artifact.created", "agent.connection.degraded", "agent.turn.completed", "agent.user.confirmed", "agent.user.delta", "agent.permission.required", "agent.elicitation.required", "agent.background.output", "agent.subagent.anchor", "agent.subagent.message.delta", "agent.subagent.status.updated"];
185
+ }, {
186
+ readonly id: "agui-stream";
187
+ readonly owner: "app-host.agui";
188
+ readonly purpose: "AGUI run lifecycle and form events carried by seed.agui.stream.";
189
+ readonly events: readonly ["RUN_STARTED", "RUN_FINISHED", "RUN_ERROR", "TEXT_MESSAGE_START", "TEXT_MESSAGE_CONTENT", "TEXT_MESSAGE_END", "TOOL_CALL_START", "TOOL_CALL_ARGS", "TOOL_CALL_END", "TOOL_CALL_RESULT", "STATE_DELTA", "CUSTOM"];
190
+ }, {
191
+ readonly id: "background-stream";
192
+ readonly owner: "app-host.agent";
193
+ readonly purpose: "Background task lifecycle and output events carried by seed.background.stream.";
194
+ readonly events: readonly ["background.task.output"];
195
+ }];
196
+ type SeedBridgeSchemaVersion = typeof SEED_BRIDGE_SCHEMA_VERSION;
197
+ //#endregion
198
+ //#region src/workspaceContracts.d.ts
199
+ declare const workspaceBridgeMethodSpecs: readonly SeedBridgeMethodSpec[];
200
+ //#endregion
201
+ //#region src/routeMetadata.d.ts
202
+ declare const SEED_BRIDGE_ROUTE_IMPLEMENTATIONS: readonly ["bridge-provider", "conversation-runtime", "electron-local", "electron-runner"];
203
+ type SeedBridgeRouteImplementation = (typeof SEED_BRIDGE_ROUTE_IMPLEMENTATIONS)[number];
204
+ declare const SEED_BRIDGE_ROUTE_COMMAND_TRANSPORTS: readonly ["seed-jsonrpc", "conversation-command", "electron-ipc", "dual-channel"];
205
+ type SeedBridgeRouteCommandTransport = (typeof SEED_BRIDGE_ROUTE_COMMAND_TRANSPORTS)[number];
206
+ type SeedBridgeRouteEventSource = "bridge-provider" | "websocket-hub" | "conversation-runtime" | "electron-ipc" | "dual-channel";
207
+ type SeedBridgeRouteAuthority = "server" | "host";
208
+ type SeedBridgeAuditAuthority = SeedBridgeRouteAuthority;
209
+ declare const SEED_CONVERSATION_AUTHORITY_KINDS: readonly ["cloud", "remote-pc"];
210
+ type SeedCloudConversationAuthorityDescriptor = {
211
+ kind: "cloud";
212
+ cloudConversationId: string;
213
+ };
214
+ type SeedRemotePcConversationAuthorityDescriptor = {
215
+ kind: "remote-pc";
216
+ deviceId: string;
217
+ hostConversationId: string;
218
+ };
219
+ type SeedConversationAuthorityDescriptor = SeedCloudConversationAuthorityDescriptor | SeedRemotePcConversationAuthorityDescriptor;
220
+ type SeedConversationAuthorityValidationCode = "invalid_authority_object" | "unsupported_authority_kind" | "cloud_conversation_id_required" | "remote_pc_identity_required" | "mixed_authority_identifiers";
221
+ type SeedConversationAuthorityValidationResult = {
222
+ ok: true;
223
+ value: SeedConversationAuthorityDescriptor;
224
+ } | {
225
+ ok: false;
226
+ code: SeedConversationAuthorityValidationCode;
227
+ };
228
+ declare function validateSeedConversationAuthorityDescriptor(value: unknown): SeedConversationAuthorityValidationResult;
229
+ type SeedBridgeRouteFallback = "none" | "legacy-provider";
230
+ type SeedBridgeMethodRuntimeRoute = {
231
+ method: string;
232
+ capability: string;
233
+ implementation: SeedBridgeRouteImplementation;
234
+ commandTransport: SeedBridgeRouteCommandTransport;
235
+ eventType?: string;
236
+ eventSource?: SeedBridgeRouteEventSource;
237
+ routeAuthority: SeedBridgeRouteAuthority;
238
+ auditAuthority: SeedBridgeAuditAuthority;
239
+ fallback: SeedBridgeRouteFallback;
240
+ };
241
+ type SeedBridgeAgentRuntimeRouteMethod = "seed.agent.run" | "seed.agent.stop" | "seed.agent.approval.respond" | "seed.agent.elicitation.respond" | "seed.event.subscribe" | "seed.event.unsubscribe";
242
+ declare const seedBridgeMethodRuntimeRoutes: readonly SeedBridgeMethodRuntimeRoute[];
243
+ declare function getSeedBridgeRouteMetadataForMethod(method: string): SeedBridgeMethodRuntimeRoute | undefined;
244
+ declare function listSeedBridgeRouteMetadata(): SeedBridgeMethodRuntimeRoute[];
245
+ declare function listSeedBridgeRouteMetadataForCapability(capability: string): SeedBridgeMethodRuntimeRoute[];
246
+ //#endregion
247
+ //#region src/acp/reasoningConfig.d.ts
248
+ type RuntimeReasoningEffort = "minimal" | "low" | "medium" | "high";
249
+ type RuntimeReasoningConfig = {
250
+ enabled?: boolean;
251
+ effort?: RuntimeReasoningEffort;
252
+ budgetTokens?: number;
253
+ };
254
+ type RuntimeReasoningConfigOption = {
255
+ id: string;
256
+ name?: string;
257
+ label?: string;
258
+ description?: string;
259
+ category?: string;
260
+ type?: string;
261
+ currentValue?: string | boolean;
262
+ selectedValue?: string | boolean;
263
+ options?: Array<{
264
+ value?: string;
265
+ id?: string;
266
+ name?: string;
267
+ label?: string;
268
+ description?: string;
269
+ }>;
270
+ };
271
+ type RuntimeReasoningConfigOptionUpdate = {
272
+ configId: string;
273
+ value: string | boolean;
274
+ reason: "enabled" | "disabled" | "effort" | "budget";
275
+ offUnsupported?: boolean;
276
+ };
277
+ type RuntimeReasoningConfigOptionResolution = {
278
+ updates: RuntimeReasoningConfigOptionUpdate[];
279
+ diagnostics: Array<{
280
+ code: "reasoning_unsupported" | "reasoning_off_unsupported" | "reasoning_effort_unsupported";
281
+ requested?: RuntimeReasoningConfig;
282
+ fallback?: RuntimeReasoningConfigOptionUpdate;
283
+ }>;
284
+ };
285
+ declare function normalizeRuntimeReasoningConfig(input: unknown): RuntimeReasoningConfig | undefined;
286
+ declare function normalizeRuntimeConfigReasoning(input: Record<string, unknown> | undefined): Record<string, unknown> | undefined;
287
+ declare function isRuntimeReasoningConfigOption(option: RuntimeReasoningConfigOption): boolean;
288
+ declare function resolveRuntimeReasoningConfigOptions(options: readonly RuntimeReasoningConfigOption[] | undefined, config: RuntimeReasoningConfig | undefined): RuntimeReasoningConfigOptionResolution;
289
+ //#endregion
290
+ //#region src/jsonRpc.d.ts
291
+ /**
292
+ * JSON-RPC 2.0 frame creation, parsing, validation, and serialization.
293
+ *
294
+ * This module replaces the legacy SeedBridgeRequest / SeedBridgeResult / SeedBridgeEvent
295
+ * envelope system. All cross-runtime communication MUST use JSON-RPC 2.0 frames.
296
+ */
297
+ declare const JSONRPC_VERSION: "2.0";
298
+ type JsonRpcId = string | number;
299
+ type JsonRpcRequest = {
300
+ jsonrpc: typeof JSONRPC_VERSION;
301
+ id: JsonRpcId;
302
+ method: string;
303
+ params?: Record<string, unknown>;
304
+ };
305
+ type JsonRpcResponse = {
306
+ jsonrpc: typeof JSONRPC_VERSION;
307
+ id: JsonRpcId;
308
+ result: unknown;
309
+ };
310
+ type JsonRpcErrorObject = {
311
+ code: number;
312
+ message: string;
313
+ data?: unknown;
314
+ };
315
+ type JsonRpcErrorResponse = {
316
+ jsonrpc: typeof JSONRPC_VERSION;
317
+ id: JsonRpcId | null;
318
+ error: JsonRpcErrorObject;
319
+ };
320
+ type JsonRpcNotification = {
321
+ jsonrpc: typeof JSONRPC_VERSION;
322
+ method: string;
323
+ params?: Record<string, unknown>;
324
+ };
325
+ type JsonRpcFrame = JsonRpcRequest | JsonRpcResponse | JsonRpcErrorResponse | JsonRpcNotification;
326
+ type ParsedJsonRpcFrame = {
327
+ type: "request";
328
+ id: JsonRpcId;
329
+ method: string;
330
+ params: Record<string, unknown> | undefined;
331
+ } | {
332
+ type: "response";
333
+ id: JsonRpcId;
334
+ result: unknown;
335
+ } | {
336
+ type: "error";
337
+ id: JsonRpcId | null;
338
+ error: JsonRpcErrorObject;
339
+ } | {
340
+ type: "notification";
341
+ method: string;
342
+ params: Record<string, unknown> | undefined;
343
+ };
344
+ declare const JSON_RPC_ERROR_CODES: {
345
+ readonly PARSE_ERROR: -32700;
346
+ readonly INVALID_REQUEST: -32600;
347
+ readonly METHOD_NOT_FOUND: -32601;
348
+ readonly INVALID_PARAMS: -32602;
349
+ readonly INTERNAL_ERROR: -32603;
350
+ };
351
+ declare function createJsonRpcRequest(method: string, id: JsonRpcId, params?: Record<string, unknown>): JsonRpcRequest;
352
+ declare function createJsonRpcResponse(id: JsonRpcId, result: unknown): JsonRpcResponse;
353
+ declare function createJsonRpcError(id: JsonRpcId | null, code: number, message: string, data?: unknown): JsonRpcErrorResponse;
354
+ declare function createJsonRpcNotification(method: string, params?: Record<string, unknown>): JsonRpcNotification;
355
+ declare function parseJsonRpcFrame(value: unknown): ParsedJsonRpcFrame | undefined;
356
+ type JsonRpcValidationResult = {
357
+ valid: true;
358
+ } | {
359
+ valid: false;
360
+ error: JsonRpcErrorObject;
361
+ };
362
+ declare function validateJsonRpcRequest(frame: unknown): JsonRpcValidationResult;
363
+ declare function serializeJsonRpcFrame(frame: JsonRpcFrame): string;
364
+ declare function deserializeJsonRpcFrame(value: string): ParsedJsonRpcFrame | undefined;
365
+ //#endregion
366
+ //#region src/events.d.ts
367
+ declare const SEED_BACKGROUND_STREAM_EVENT_TYPE: "seed.background.stream";
368
+ declare const SEED_AGUI_STREAM_EVENT_TYPE: "seed.agui.stream";
369
+ declare const seedBackgroundStreamEventTypes: readonly ["background.task.output"];
370
+ type SeedBackgroundStreamEventType = (typeof seedBackgroundStreamEventTypes)[number];
371
+ declare const CANONICAL_EVENT_TYPES: {
372
+ readonly AGENT_RUN_STARTED: "agent.run.started";
373
+ readonly AGENT_RUN_COMPLETED: "agent.run.completed";
374
+ readonly AGENT_RUN_FAILED: "agent.run.failed";
375
+ readonly AGENT_RUN_CANCELLED: "agent.run.cancelled";
376
+ readonly AGENT_MESSAGE_DELTA: "agent.message.delta";
377
+ readonly AGENT_THOUGHT_DELTA: "agent.thought.delta";
378
+ readonly AGENT_TOOL_STARTED: "agent.tool.started";
379
+ readonly AGENT_TOOL_UPDATED: "agent.tool.updated";
380
+ readonly AGENT_TURN_COMPLETED: "agent.turn.completed";
381
+ readonly AGENT_PERMISSION_REQUIRED: "agent.permission.required";
382
+ readonly AGENT_ELICITATION_REQUIRED: "agent.elicitation.required";
383
+ readonly AGENT_USER_CONFIRMED: "agent.user.confirmed";
384
+ readonly AGENT_USER_DELTA: "agent.user.delta";
385
+ readonly AGENT_INPUT_STEER: "agent.input.steer";
386
+ readonly AGENT_INPUT_COLLECT: "agent.input.collect";
387
+ readonly AGENT_INPUT_FOLLOWUP: "agent.input.followup";
388
+ readonly AGENT_INPUT_SIDE: "agent.input.side";
389
+ readonly AGENT_PLAN_UPDATED: "agent.plan.updated";
390
+ readonly AGENT_BACKGROUND_OUTPUT: "agent.background.output";
391
+ readonly BACKGROUND_TASK_OUTPUT: "background.task.output";
392
+ readonly AGENT_SUBAGENT_ANCHOR: "agent.subagent.anchor";
393
+ readonly AGENT_SUBAGENT_MESSAGE_DELTA: "agent.subagent.message.delta";
394
+ readonly AGENT_SUBAGENT_STATUS_UPDATED: "agent.subagent.status.updated";
395
+ readonly SEED_AGENT_STREAM: "seed.agent.stream";
396
+ readonly SEED_AGUI_STREAM: "seed.agui.stream";
397
+ readonly SEED_BACKGROUND_STREAM: "seed.background.stream";
398
+ readonly SEED_AGENT_APPROVAL_CHANGED: "seed.agent.approval.changed";
399
+ readonly SEED_CONVERSATION_CHANGED: "seed.conversation.changed";
400
+ readonly SEED_REMOTE_PC_PRESENCE_CHANGED: "seed.remotePc.presence.changed";
401
+ readonly SEED_EMPLOYEE_CHANGED: "seed.employee.changed";
402
+ readonly SEED_EMPLOYEE_MEMORY_EVENTS_CHANGED: "seed.employee.memory.events.changed";
403
+ readonly SEED_ROLE_TEMPLATE_CHANGED: "seed.roleTemplate.changed";
404
+ readonly SEED_ROLE_MAKER_SESSION_CHANGED: "seed.roleMaker.session.changed";
405
+ readonly SEED_TEAM_CHANGED: "seed.team.changed";
406
+ readonly SEED_TEAM_AGENT_SPAWNED: "seed.team.agent.spawned";
407
+ readonly SEED_TEAM_AGENT_REMOVED: "seed.team.agent.removed";
408
+ readonly SEED_TEAM_AGENT_RENAMED: "seed.team.agent.renamed";
409
+ readonly SEED_TEAM_AGENT_STATUS_CHANGED: "seed.team.agent.statusChanged";
410
+ readonly SEED_WORKSPACE_CHANGED: "seed.workspace.changed";
411
+ readonly BRIDGE_ERROR: "jsonrpc.error";
412
+ };
413
+ type CanonicalEventType = (typeof CANONICAL_EVENT_TYPES)[keyof typeof CANONICAL_EVENT_TYPES];
414
+ type AgentMessageDeltaPayload = {
415
+ conversationId: string;
416
+ runId: string;
417
+ content: string;
418
+ role: "assistant";
419
+ };
420
+ type AgentThoughtDeltaPayload = {
421
+ conversationId: string;
422
+ runId: string;
423
+ content: string;
424
+ };
425
+ type AgentToolStartedPayload = {
426
+ conversationId: string;
427
+ runId: string;
428
+ toolName: string;
429
+ toolInput?: unknown;
430
+ };
431
+ type AgentToolUpdatedPayload = {
432
+ conversationId: string;
433
+ runId: string;
434
+ toolName: string;
435
+ output?: unknown;
436
+ status?: "running" | "completed" | "failed";
437
+ };
438
+ type AgentPermissionRequiredPayload = {
439
+ conversationId: string;
440
+ runId: string;
441
+ toolName: string;
442
+ toolInput?: unknown;
443
+ };
444
+ type AgentElicitationRequiredPayload = {
445
+ conversationId: string;
446
+ runId: string;
447
+ question: string;
448
+ options?: string[];
449
+ };
450
+ type AgentTurnCompletedPayload = {
451
+ conversationId: string;
452
+ runId: string;
453
+ stopReason: string;
454
+ status: "completed" | "failed" | "cancelled";
455
+ };
456
+ type AgentRunStartedPayload = {
457
+ conversationId: string;
458
+ runId: string;
459
+ };
460
+ type AgentRunCompletedPayload = {
461
+ conversationId: string;
462
+ runId: string;
463
+ };
464
+ type AgentRunFailedPayload = {
465
+ conversationId: string;
466
+ runId: string;
467
+ error?: string;
468
+ };
469
+ type AgentRunCancelledPayload = {
470
+ conversationId: string;
471
+ runId: string;
472
+ };
473
+ type AgentRuntimeEventPayload = {
474
+ conversationId: string;
475
+ runId: string;
476
+ type: string;
477
+ payload: unknown;
478
+ source?: string;
479
+ reason?: string;
480
+ };
481
+ type CanonicalEventPayload = AgentMessageDeltaPayload | AgentThoughtDeltaPayload | AgentToolStartedPayload | AgentToolUpdatedPayload | AgentPermissionRequiredPayload | AgentElicitationRequiredPayload | AgentTurnCompletedPayload | AgentRunStartedPayload | AgentRunCompletedPayload | AgentRunFailedPayload | AgentRunCancelledPayload | AgentRuntimeEventPayload | Record<string, unknown>;
482
+ type CanonicalEventMeta = {
483
+ traceId: string;
484
+ eventId: string;
485
+ cursor?: string;
486
+ seq?: number;
487
+ tenantId?: string;
488
+ userId?: string;
489
+ appId?: string;
490
+ conversationId?: string;
491
+ runId?: string;
492
+ projection?: SeedEventProjectionTrace;
493
+ };
494
+ declare const SEED_EVENT_NOTIFICATION_METHOD: "seed.event";
495
+ type SeedEventProjectionTrace = {
496
+ source: "acp";
497
+ type: string;
498
+ direction?: string;
499
+ entryId?: string;
500
+ sessionId?: string;
501
+ conversationId?: string;
502
+ timestamp?: number;
503
+ payload?: unknown;
504
+ };
505
+ type SeedEventAcpProjectionTraceInput = {
506
+ type: string;
507
+ direction?: string;
508
+ entryId?: string;
509
+ sessionId?: string;
510
+ conversationId?: string;
511
+ timestamp?: number;
512
+ payload?: unknown;
513
+ includePayload?: boolean;
514
+ };
515
+ type SeedEventClientEvent = Record<string, unknown> & {
516
+ type: string;
517
+ payload?: unknown;
518
+ status?: string;
519
+ timestamp?: number;
520
+ };
521
+ type SeedBackgroundStreamEvent = SeedEventClientEvent & {
522
+ type: SeedBackgroundStreamEventType;
523
+ };
524
+ type SeedEventTransportMeta = Partial<CanonicalEventMeta> & Record<string, unknown> & {
525
+ projection?: SeedEventProjectionTrace;
526
+ };
527
+ type SeedEventTransportParams = {
528
+ type: string;
529
+ runtime?: string;
530
+ payload?: unknown;
531
+ meta?: SeedEventTransportMeta;
532
+ };
533
+ type SeedEventAcpInspectorProjection = {
534
+ streamEvent: SeedEventClientEvent;
535
+ trace?: SeedEventProjectionTrace;
536
+ acp?: {
537
+ type: string;
538
+ direction?: string;
539
+ entryId?: string;
540
+ sessionId?: string;
541
+ conversationId?: string;
542
+ timestamp?: number;
543
+ payload?: unknown;
544
+ };
545
+ lossless: boolean;
546
+ reason?: "missing_projection_trace" | "missing_projection_payload";
547
+ };
548
+ type SeedEventNotificationParams = {
549
+ type: CanonicalEventType;
550
+ runtime: string;
551
+ payload?: CanonicalEventPayload;
552
+ meta: CanonicalEventMeta;
553
+ };
554
+ type CanonicalEventValidationResult = {
555
+ valid: true;
556
+ } | {
557
+ valid: false;
558
+ reason: string;
559
+ };
560
+ declare function validateCanonicalEvent(eventType: string, payload?: unknown): CanonicalEventValidationResult;
561
+ declare function isSeedBackgroundStreamEvent(event: unknown): event is SeedBackgroundStreamEvent;
562
+ declare function validateCanonicalEventMeta(meta: unknown): CanonicalEventValidationResult;
563
+ declare function createSeedEventNotification(params: SeedEventNotificationParams): JsonRpcNotification;
564
+ declare function readSeedEventTransportParams(params: Record<string, unknown> | undefined): SeedEventTransportParams | undefined;
565
+ declare function projectSeedEventFrameToClientEvent(frame: ParsedJsonRpcFrame): SeedEventClientEvent | undefined;
566
+ declare function projectSeedEventParamsToClientEvent(params: Record<string, unknown> | undefined): SeedEventClientEvent | undefined;
567
+ declare function createSeedEventAcpProjectionTrace(input: SeedEventAcpProjectionTraceInput): SeedEventProjectionTrace;
568
+ declare function readSeedEventProjectionTrace(params: Record<string, unknown> | undefined): SeedEventProjectionTrace | undefined;
569
+ declare function projectSeedClientEventToAcpInspectorProjection(streamEvent: SeedEventClientEvent, params?: Record<string, unknown>): SeedEventAcpInspectorProjection;
570
+ //#endregion
571
+ //#region src/electronIpc.d.ts
572
+ type JsonRpcElectronIpcAdapterContract = {
573
+ channel?: string;
574
+ transportId?: SeedBridgeTransportId;
575
+ authBoundary?: SeedBridgeAuthBoundary;
576
+ supportsStreaming?: boolean;
577
+ supportsBroadcast?: boolean;
578
+ };
579
+ type JsonRpcElectronIpcFrame = JsonRpcFrame;
580
+ declare function serializeJsonRpcElectronIpcFrame(frame: JsonRpcElectronIpcFrame): string;
581
+ declare function parseJsonRpcElectronIpcFrame(value: unknown): ParsedJsonRpcFrame | undefined;
582
+ declare function validateJsonRpcElectronIpcAdapterContract(input?: JsonRpcElectronIpcAdapterContract): string[];
583
+ //#endregion
584
+ //#region src/localWebui.d.ts
585
+ type JsonRpcLocalWebuiFrame = JsonRpcFrame;
586
+ declare function serializeJsonRpcLocalWebuiFrame(frame: JsonRpcLocalWebuiFrame): string;
587
+ declare function parseJsonRpcLocalWebuiFrame(value: unknown): ParsedJsonRpcFrame | undefined;
588
+ //#endregion
589
+ //#region src/controlGateway.d.ts
590
+ declare const jsonRpcControlGatewayPayloadKinds: {
591
+ readonly request: "seed.bridge.jsonrpc.request";
592
+ readonly response: "seed.bridge.jsonrpc.response";
593
+ readonly notification: "seed.bridge.jsonrpc.notification";
594
+ };
595
+ type JsonRpcControlGatewayFrameType = "session.input" | "run.completed" | "run.event";
596
+ type JsonRpcControlGatewayFrameContext = {
597
+ nodeId: string;
598
+ seq: number;
599
+ ts?: number;
600
+ tenantId?: string;
601
+ userId?: string;
602
+ id?: string;
603
+ traceId?: string;
604
+ };
605
+ type JsonRpcControlGatewayAdapterContract = {
606
+ transportId?: SeedBridgeTransportId;
607
+ authBoundary?: SeedBridgeAuthBoundary;
608
+ supportsStreaming?: boolean;
609
+ supportsBroadcast?: boolean;
610
+ };
611
+ type JsonRpcControlGatewayFrame<TType extends JsonRpcControlGatewayFrameType, TPayload> = {
612
+ type: TType;
613
+ id: string;
614
+ traceId: string;
615
+ tenantId: string;
616
+ userId: string;
617
+ nodeId: string;
618
+ seq: number;
619
+ ts: number;
620
+ payload: TPayload;
621
+ };
622
+ type JsonRpcControlGatewayRequestPayload = {
623
+ schemaVersion: typeof SEED_BRIDGE_SCHEMA_VERSION;
624
+ kind: typeof jsonRpcControlGatewayPayloadKinds.request;
625
+ frame: JsonRpcRequest;
626
+ };
627
+ type JsonRpcControlGatewayResponsePayload = {
628
+ schemaVersion: typeof SEED_BRIDGE_SCHEMA_VERSION;
629
+ kind: typeof jsonRpcControlGatewayPayloadKinds.response;
630
+ frame: JsonRpcResponse | JsonRpcErrorResponse;
631
+ };
632
+ type JsonRpcControlGatewayNotificationPayload = {
633
+ schemaVersion: typeof SEED_BRIDGE_SCHEMA_VERSION;
634
+ kind: typeof jsonRpcControlGatewayPayloadKinds.notification;
635
+ frame: JsonRpcNotification;
636
+ };
637
+ type JsonRpcControlGatewayRequestFrame = JsonRpcControlGatewayFrame<"session.input", JsonRpcControlGatewayRequestPayload>;
638
+ type JsonRpcControlGatewayResponseFrame = JsonRpcControlGatewayFrame<"run.completed", JsonRpcControlGatewayResponsePayload>;
639
+ type JsonRpcControlGatewayNotificationFrame = JsonRpcControlGatewayFrame<"run.event", JsonRpcControlGatewayNotificationPayload>;
640
+ type JsonRpcControlGatewayFrameUnion = JsonRpcControlGatewayRequestFrame | JsonRpcControlGatewayResponseFrame | JsonRpcControlGatewayNotificationFrame;
641
+ declare function createJsonRpcControlGatewayRequestFrame(request: JsonRpcRequest, context: JsonRpcControlGatewayFrameContext): JsonRpcControlGatewayRequestFrame;
642
+ declare function createJsonRpcControlGatewayResponseFrame(response: JsonRpcResponse | JsonRpcErrorResponse, context: JsonRpcControlGatewayFrameContext & {
643
+ tenantId: string;
644
+ userId: string;
645
+ traceId: string;
646
+ }): JsonRpcControlGatewayResponseFrame;
647
+ declare function createJsonRpcControlGatewayNotificationFrame(notification: JsonRpcNotification, context: JsonRpcControlGatewayFrameContext & {
648
+ id: string;
649
+ traceId: string;
650
+ }): JsonRpcControlGatewayNotificationFrame;
651
+ declare function serializeJsonRpcControlGatewayFrame(frame: JsonRpcControlGatewayFrameUnion): string;
652
+ declare function parseJsonRpcControlGatewayFrame(value: unknown): JsonRpcControlGatewayFrameUnion | undefined;
653
+ declare function validateJsonRpcControlGatewayAdapterContract(input?: JsonRpcControlGatewayAdapterContract): string[];
654
+ //#endregion
655
+ //#region src/reactNative.d.ts
656
+ type JsonRpcReactNativeWebViewPort = {
657
+ postMessage(message: string): void;
658
+ };
659
+ type JsonRpcReactNativeWebViewAdapter = {
660
+ postFrame<TFrame extends JsonRpcFrame>(frame: TFrame): TFrame;
661
+ postRequest(request: JsonRpcRequest): JsonRpcRequest;
662
+ postResponse(response: JsonRpcResponse | JsonRpcErrorResponse): JsonRpcResponse | JsonRpcErrorResponse;
663
+ postNotification(notification: JsonRpcNotification): JsonRpcNotification;
664
+ parseMessage(message: unknown): ParsedJsonRpcFrame | undefined;
665
+ };
666
+ type JsonRpcReactNativeWebViewAdapterOptions = {
667
+ port: JsonRpcReactNativeWebViewPort;
668
+ onInvalidFrame?(message: unknown): void;
669
+ };
670
+ type JsonRpcReactNativeFrame = JsonRpcFrame;
671
+ declare function serializeJsonRpcReactNativeFrame(frame: JsonRpcReactNativeFrame): string;
672
+ declare function parseJsonRpcReactNativeFrame(value: unknown): ParsedJsonRpcFrame | undefined;
673
+ declare function createJsonRpcReactNativeWebViewAdapter(options: JsonRpcReactNativeWebViewAdapterOptions): JsonRpcReactNativeWebViewAdapter;
674
+ //#endregion
675
+ //#region src/transportContracts.d.ts
676
+ type SeedBridgeRuntimeTransportContract = {
677
+ runtime: SeedBridgeRuntime;
678
+ primaryTransportId: SeedBridgeTransportId;
679
+ authBoundary: SeedBridgeAuthBoundary;
680
+ requestFrame: string;
681
+ responseFrame: string;
682
+ eventFrame: string;
683
+ supportsStreaming: boolean;
684
+ supportsBroadcast: boolean;
685
+ };
686
+ type SeedBridgeRuntimeTransportContractValidation = {
687
+ runtime: SeedBridgeRuntime;
688
+ transportId?: SeedBridgeTransportId;
689
+ authBoundary?: SeedBridgeAuthBoundary;
690
+ supportsStreaming?: boolean;
691
+ supportsBroadcast?: boolean;
692
+ };
693
+ type SeedBridgeRuntimeTransportVerificationCommand = {
694
+ command: string;
695
+ scope: "unit" | "browser-smoke" | "package-build" | "gateway-smoke";
696
+ };
697
+ type SeedBridgeRuntimeTransportVerification = {
698
+ runtime: SeedBridgeRuntime;
699
+ primaryTransportId: SeedBridgeTransportId;
700
+ authBoundary: SeedBridgeAuthBoundary;
701
+ adapterEntries: readonly string[];
702
+ verificationCommands: readonly SeedBridgeRuntimeTransportVerificationCommand[];
703
+ evidence: readonly string[];
704
+ };
705
+ type SeedBridgeRuntimeTransportDiagnosticsSummary = {
706
+ runtime: SeedBridgeRuntime;
707
+ transportId: SeedBridgeTransportId;
708
+ contractRole: "primary-runtime-transport";
709
+ endpointRole: "runtime-primary-endpoint";
710
+ protocolVersion: "JSON-RPC 2.0";
711
+ authBoundary: SeedBridgeAuthBoundary;
712
+ requestFrame: string;
713
+ responseFrame: string;
714
+ eventFrame: string;
715
+ supportsStreaming: boolean;
716
+ supportsBroadcast: boolean;
717
+ portHint?: number;
718
+ adapterEntries: readonly string[];
719
+ verificationCommands: readonly SeedBridgeRuntimeTransportVerificationCommand[];
720
+ evidence: readonly string[];
721
+ };
722
+ declare const seedBridgeRuntimeTransportContracts: readonly [{
723
+ readonly runtime: "electron";
724
+ readonly primaryTransportId: "electron-ipc";
725
+ readonly authBoundary: "preload-main";
726
+ readonly requestFrame: "JSON-RPC request";
727
+ readonly responseFrame: "JSON-RPC response | error";
728
+ readonly eventFrame: "JSON-RPC notification";
729
+ readonly supportsStreaming: true;
730
+ readonly supportsBroadcast: true;
731
+ }, {
732
+ readonly runtime: "local-webui";
733
+ readonly primaryTransportId: "local-websocket";
734
+ readonly authBoundary: "local-session";
735
+ readonly requestFrame: "JSON-RPC request";
736
+ readonly responseFrame: "JSON-RPC response | error";
737
+ readonly eventFrame: "JSON-RPC notification";
738
+ readonly supportsStreaming: true;
739
+ readonly supportsBroadcast: true;
740
+ }, {
741
+ readonly runtime: "web-saas";
742
+ readonly primaryTransportId: "web-saas-bridge-ws";
743
+ readonly authBoundary: "session-cookie";
744
+ readonly requestFrame: "JSON-RPC request";
745
+ readonly responseFrame: "JSON-RPC response | error";
746
+ readonly eventFrame: "JSON-RPC notification";
747
+ readonly supportsStreaming: true;
748
+ readonly supportsBroadcast: false;
749
+ }, {
750
+ readonly runtime: "react-native";
751
+ readonly primaryTransportId: "react-native-webview";
752
+ readonly authBoundary: "manifest-capability";
753
+ readonly requestFrame: "JSON-RPC request";
754
+ readonly responseFrame: "JSON-RPC response | error";
755
+ readonly eventFrame: "JSON-RPC notification";
756
+ readonly supportsStreaming: true;
757
+ readonly supportsBroadcast: false;
758
+ }, {
759
+ readonly runtime: "app-host";
760
+ readonly primaryTransportId: "app-host-postmessage";
761
+ readonly authBoundary: "manifest-capability";
762
+ readonly requestFrame: "SeedAppSdkEnvelope";
763
+ readonly responseFrame: "SeedAppHostEnvelope";
764
+ readonly eventFrame: "SeedAppHostEnvelope.event";
765
+ readonly supportsStreaming: false;
766
+ readonly supportsBroadcast: false;
767
+ }];
768
+ declare const seedBridgeRuntimeTransportVerificationMatrix: readonly [{
769
+ readonly runtime: "electron";
770
+ readonly primaryTransportId: "electron-ipc";
771
+ readonly authBoundary: "preload-main";
772
+ readonly adapterEntries: readonly ["packages/seed-runtime-state/bridge-protocol/src/electronIpc.ts", "apps/desktop/src/preload/main.ts", "apps/desktop/src/common/adapter/ipcBridge.ts"];
773
+ readonly verificationCommands: readonly [{
774
+ readonly command: "npm --prefix packages/seed-runtime-state/bridge-protocol test -- --run tests/electronIpc.test.ts";
775
+ readonly scope: "unit";
776
+ }, {
777
+ readonly command: "npm --prefix apps/desktop test -- --run tests/unit/adapterBrowserElectronTypedBridge.dom.test.ts";
778
+ readonly scope: "unit";
779
+ }, {
780
+ readonly command: "npm run smoke:electron-bridge-artifacts";
781
+ readonly scope: "package-build";
782
+ }, {
783
+ readonly command: "npm run smoke:electron-bridge-artifacts:fresh";
784
+ readonly scope: "package-build";
785
+ }, {
786
+ readonly command: "npm run smoke:electron-bridge-artifacts:launch";
787
+ readonly scope: "package-build";
788
+ }];
789
+ readonly evidence: readonly ["Electron IPC frames stay on the preload/main channel.", "Renderer callers send JSON-RPC frames through preload instead of importing Electron or Node APIs.", "Electron build artifacts preserve the preload/main JSON-RPC bridge channel and App Studio renderer route.", "Electron artifact freshness smoke fails when bridge or App Studio sources are newer than the packaged output.", "Electron launch smoke opens the built app and verifies the renderer preload bridge is exposed in a real BrowserWindow."];
790
+ }, {
791
+ readonly runtime: "local-webui";
792
+ readonly primaryTransportId: "local-websocket";
793
+ readonly authBoundary: "local-session";
794
+ readonly adapterEntries: readonly ["packages/seed-runtime-state/bridge-protocol/src/localWebui.ts"];
795
+ readonly verificationCommands: readonly [{
796
+ readonly command: "npm --prefix packages/seed-runtime-state/bridge-protocol test -- --run tests/localWebui.test.ts";
797
+ readonly scope: "unit";
798
+ }];
799
+ readonly evidence: readonly ["Local WebUI exchanges JSON-RPC request, response, error, and notification frames."];
800
+ }, {
801
+ readonly runtime: "web-saas";
802
+ readonly primaryTransportId: "web-saas-bridge-ws";
803
+ readonly authBoundary: "session-cookie";
804
+ readonly adapterEntries: readonly ["packages/seed-web-api/src/websocket/index.ts", "packages/seed-web-api/src/websocket/appBridgeProvider.ts", "packages/seed-runtime-state/bridge-protocol/src/controlGateway.ts", "packages/seed-web-api/src/service.ts", "control-gateway/src/server/ControlGatewayServer.ts"];
805
+ readonly verificationCommands: readonly [{
806
+ readonly command: "bun test packages/seed-web-api/tests/appBridgeProvider.bun.test.ts";
807
+ readonly scope: "unit";
808
+ }, {
809
+ readonly command: "npm --prefix packages/seed-runtime-state/bridge-protocol test -- --run tests/controlGateway.test.ts";
810
+ readonly scope: "unit";
811
+ }, {
812
+ readonly command: "bun test packages/seed-web-api/tests/realtimeProtocol.bun.test.ts";
813
+ readonly scope: "gateway-smoke";
814
+ }, {
815
+ readonly command: "bun test control-gateway/src/server/managementDashboard.bun.test.ts";
816
+ readonly scope: "gateway-smoke";
817
+ }, {
818
+ readonly command: "npm run smoke:web-gateway-process";
819
+ readonly scope: "gateway-smoke";
820
+ }];
821
+ readonly evidence: readonly ["SaaS browser calls enter through /v1/ws JSON-RPC before any downstream runner dispatch.", "Control Gateway frames wrap JSON-RPC evidence and carry tenant/user metadata without Electron IPC assumptions."];
822
+ }, {
823
+ readonly runtime: "react-native";
824
+ readonly primaryTransportId: "react-native-webview";
825
+ readonly authBoundary: "manifest-capability";
826
+ readonly adapterEntries: readonly ["packages/seed-runtime-state/bridge-protocol/src/reactNative.ts"];
827
+ readonly verificationCommands: readonly [{
828
+ readonly command: "npm --prefix packages/seed-runtime-state/bridge-protocol test -- --run tests/reactNative.test.ts";
829
+ readonly scope: "unit";
830
+ }];
831
+ readonly evidence: readonly ["React Native WebView ports exchange stringified request/result/event frames.", "Malformed WebView messages are rejected before adapter dispatch."];
832
+ }, {
833
+ readonly runtime: "app-host";
834
+ readonly primaryTransportId: "app-host-postmessage";
835
+ readonly authBoundary: "manifest-capability";
836
+ readonly adapterEntries: readonly ["packages/seed-runtime-state/app-sdk/src/windowTransport.ts", "apps/desktop/src/renderer/pages/dev/appStudioBroker.ts", "apps/desktop/scripts/dev/app-studio/appStudioPageBrowserSmoke.mjs"];
837
+ readonly verificationCommands: readonly [{
838
+ readonly command: "npm --prefix apps/desktop test -- --run tests/unit/renderer/dev/appStudioBrokerPreview.dom.test.tsx";
839
+ readonly scope: "unit";
840
+ }, {
841
+ readonly command: "npm run smoke:app-studio-page-browser";
842
+ readonly scope: "browser-smoke";
843
+ }];
844
+ readonly evidence: readonly ["App Studio brokers SDK postMessage envelopes through manifest capability grants.", "The full page browser smoke verifies app-dev-demo stories inside the real Studio preview iframe."];
845
+ }];
846
+ declare function getSeedBridgeRuntimeTransportContract(runtime: SeedBridgeRuntime): SeedBridgeRuntimeTransportContract | undefined;
847
+ declare function validateSeedBridgeRuntimeTransportContract(input: SeedBridgeRuntimeTransportContractValidation): string[];
848
+ declare function getSeedBridgeRuntimeTransportVerification(runtime: SeedBridgeRuntime): SeedBridgeRuntimeTransportVerification | undefined;
849
+ declare function getSeedBridgeRuntimeTransportDiagnosticsSummary(runtime: SeedBridgeRuntime): SeedBridgeRuntimeTransportDiagnosticsSummary | undefined;
850
+ declare function listSeedBridgeRuntimeTransportDiagnosticsSummaries(): SeedBridgeRuntimeTransportDiagnosticsSummary[];
851
+ declare function validateSeedBridgeRuntimeTransportVerificationMatrix(matrix?: readonly SeedBridgeRuntimeTransportVerification[]): string[];
852
+ //#endregion
853
+ //#region src/agentStream.d.ts
854
+ declare const seedAgentStreamEventTypes: readonly ["agent.run.started", "agent.run.completed", "agent.run.failed", "agent.run.cancelled", "agent.input.steer", "agent.input.collect", "agent.input.followup", "agent.input.side", "agent.message.delta", "agent.thought.delta", "agent.tool.started", "agent.tool.updated", "agent.plan.updated", "agent.goal.updated", "agent.commands.updated", "agent.mode.updated", "agent.config.updated", "agent.context.usage.updated", "agent.session.info.updated", "agent.audio.transcript.updated", "agent.artifact.created", "agent.connection.degraded", "agent.turn.completed", "agent.user.confirmed", "agent.user.delta", "agent.permission.required", "agent.elicitation.required", "agent.background.output", "agent.subagent.anchor", "agent.subagent.message.delta", "agent.subagent.status.updated"];
855
+ type SeedAgentStreamEventType = (typeof seedAgentStreamEventTypes)[number];
856
+ type SeedAgentStreamStatus = "started" | "running" | "pending" | "blocked" | "completed" | "failed" | "cancelled";
857
+ type SeedAgentStreamPayloadPolicy = "metadata-only" | "redacted";
858
+ type SeedAgentStreamEventSpec = {
859
+ event: SeedAgentStreamEventType;
860
+ capability: "agent.stream";
861
+ owner: "app-host.agent";
862
+ status: SeedAgentStreamStatus;
863
+ audit: SeedAgentStreamPayloadPolicy;
864
+ mergeKey?: string;
865
+ terminal?: boolean;
866
+ replayable: boolean;
867
+ };
868
+ type SeedAgentBasePayload = {
869
+ runId: string;
870
+ conversationId?: string;
871
+ sessionId?: string;
872
+ };
873
+ type SeedAgentTextDeltaPayload = SeedAgentBasePayload & {
874
+ messageId?: string;
875
+ text: string;
876
+ };
877
+ type SeedAgentToolPayload = SeedAgentBasePayload & {
878
+ toolCallId: string;
879
+ title?: string;
880
+ kind?: string;
881
+ name?: string;
882
+ status?: string;
883
+ redactedInput?: unknown;
884
+ redactedOutput?: unknown;
885
+ content?: unknown;
886
+ locations?: unknown;
887
+ metadata?: Record<string, unknown>;
888
+ };
889
+ type SeedAgentInputDispatchPayload = SeedAgentBasePayload & {
890
+ inputId?: string;
891
+ contentSummary?: string;
892
+ createdAt?: string | number;
893
+ itemCount?: number;
894
+ qwenNative?: boolean;
895
+ };
896
+ type SeedAgentRuntimeStatus = "connecting" | "connected" | "authenticated" | "session_active" | "error";
897
+ type SeedAgentStreamPayloadByType = {
898
+ [SEED_AGENT_STREAM_EVENT_NAMES.runStarted]: SeedAgentBasePayload & {
899
+ inputSummary?: string;
900
+ };
901
+ [SEED_AGENT_STREAM_EVENT_NAMES.runCompleted]: SeedAgentBasePayload & {
902
+ outputSummary?: string;
903
+ metrics?: unknown;
904
+ };
905
+ [SEED_AGENT_STREAM_EVENT_NAMES.runFailed]: SeedAgentBasePayload & {
906
+ errorCode?: string;
907
+ message?: string;
908
+ metrics?: unknown;
909
+ };
910
+ [SEED_AGENT_STREAM_EVENT_NAMES.runCancelled]: SeedAgentBasePayload & {
911
+ reason?: string;
912
+ metrics?: unknown;
913
+ };
914
+ [SEED_AGENT_STREAM_EVENT_NAMES.inputSteer]: SeedAgentInputDispatchPayload;
915
+ [SEED_AGENT_STREAM_EVENT_NAMES.inputCollect]: SeedAgentInputDispatchPayload;
916
+ [SEED_AGENT_STREAM_EVENT_NAMES.inputFollowup]: SeedAgentInputDispatchPayload;
917
+ [SEED_AGENT_STREAM_EVENT_NAMES.inputSide]: SeedAgentInputDispatchPayload;
918
+ [SEED_AGENT_STREAM_EVENT_NAMES.messageDelta]: SeedAgentTextDeltaPayload;
919
+ [SEED_AGENT_STREAM_EVENT_NAMES.thoughtDelta]: SeedAgentTextDeltaPayload;
920
+ [SEED_AGENT_STREAM_EVENT_NAMES.toolStarted]: SeedAgentToolPayload;
921
+ [SEED_AGENT_STREAM_EVENT_NAMES.toolUpdated]: SeedAgentToolPayload;
922
+ [SEED_AGENT_STREAM_EVENT_NAMES.planUpdated]: SeedAgentBasePayload & {
923
+ entries: unknown[];
924
+ };
925
+ [SEED_AGENT_STREAM_EVENT_NAMES.goalUpdated]: SeedAgentBasePayload & {
926
+ condition?: string;
927
+ kind?: "set" | "checking" | "achieved" | "failed" | "aborted" | "cleared";
928
+ iterations?: number;
929
+ durationMs?: number;
930
+ lastReason?: string;
931
+ };
932
+ [SEED_AGENT_STREAM_EVENT_NAMES.commandsUpdated]: SeedAgentBasePayload & {
933
+ commands: unknown[];
934
+ };
935
+ [SEED_AGENT_STREAM_EVENT_NAMES.modeUpdated]: SeedAgentBasePayload & {
936
+ modeId?: string;
937
+ };
938
+ [SEED_AGENT_STREAM_EVENT_NAMES.configUpdated]: SeedAgentBasePayload & {
939
+ options: unknown[];
940
+ };
941
+ [SEED_AGENT_STREAM_EVENT_NAMES.contextUsageUpdated]: SeedAgentBasePayload & {
942
+ used?: number;
943
+ size?: number;
944
+ total?: number;
945
+ totalTokens?: number;
946
+ inputTokens?: number;
947
+ outputTokens?: number;
948
+ cost?: unknown;
949
+ };
950
+ [SEED_AGENT_STREAM_EVENT_NAMES.sessionInfoUpdated]: SeedAgentBasePayload & {
951
+ title?: string;
952
+ updatedAt?: string;
953
+ runtimeStatus?: SeedAgentRuntimeStatus;
954
+ backend?: string;
955
+ agentName?: string;
956
+ detail?: string;
957
+ messageId?: string;
958
+ };
959
+ [SEED_AGENT_STREAM_EVENT_NAMES.audioTranscriptUpdated]: SeedAgentBasePayload & {
960
+ status?: string;
961
+ text?: string;
962
+ };
963
+ [SEED_AGENT_STREAM_EVENT_NAMES.artifactCreated]: SeedAgentBasePayload & {
964
+ artifact?: unknown;
965
+ };
966
+ [SEED_AGENT_STREAM_EVENT_NAMES.connectionDegraded]: SeedAgentBasePayload & {
967
+ status?: string;
968
+ reason?: string;
969
+ message?: string;
970
+ };
971
+ [SEED_AGENT_STREAM_EVENT_NAMES.turnCompleted]: SeedAgentBasePayload & {
972
+ promptRequestId?: string;
973
+ stopReason?: string;
974
+ metrics?: unknown;
975
+ };
976
+ [SEED_AGENT_STREAM_EVENT_NAMES.userConfirmed]: SeedAgentBasePayload & {
977
+ messageId?: string;
978
+ clientMessageId?: string;
979
+ };
980
+ [SEED_AGENT_STREAM_EVENT_NAMES.userDelta]: SeedAgentTextDeltaPayload;
981
+ [SEED_AGENT_STREAM_EVENT_NAMES.permissionRequired]: SeedAgentBasePayload & {
982
+ requestId: string;
983
+ toolCallId?: string;
984
+ options?: unknown[];
985
+ toolName?: string;
986
+ redactedInput?: unknown;
987
+ description?: string;
988
+ };
989
+ [SEED_AGENT_STREAM_EVENT_NAMES.elicitationRequired]: SeedAgentBasePayload & {
990
+ requestId: string;
991
+ toolCallId?: string;
992
+ requestScopeId?: string;
993
+ title?: string;
994
+ message?: string;
995
+ description?: string;
996
+ schema?: unknown;
997
+ choices?: unknown[];
998
+ fields?: unknown[];
999
+ rawRequest?: unknown;
1000
+ };
1001
+ [SEED_AGENT_STREAM_EVENT_NAMES.backgroundOutput]: SeedAgentBasePayload & {
1002
+ taskId?: string;
1003
+ agent?: string;
1004
+ description?: string;
1005
+ outputText?: string;
1006
+ };
1007
+ [SEED_AGENT_STREAM_EVENT_NAMES.subagentAnchor]: SeedAgentBasePayload & {
1008
+ parentToolCallId?: string;
1009
+ childSessionId: string;
1010
+ title?: string;
1011
+ };
1012
+ [SEED_AGENT_STREAM_EVENT_NAMES.subagentMessageDelta]: SeedAgentBasePayload & {
1013
+ childSessionId: string;
1014
+ childEntryIndex?: number;
1015
+ event?: string;
1016
+ text?: string;
1017
+ };
1018
+ [SEED_AGENT_STREAM_EVENT_NAMES.subagentStatusUpdated]: SeedAgentBasePayload & {
1019
+ childSessionId: string;
1020
+ status: string;
1021
+ };
1022
+ };
1023
+ type SeedAgentStreamEvent<TEvent extends SeedAgentStreamEventType = SeedAgentStreamEventType> = {
1024
+ schemaVersion: SeedBridgeSchemaVersion;
1025
+ id: string;
1026
+ traceId: string;
1027
+ event: TEvent;
1028
+ runtime: SeedBridgeRuntime;
1029
+ status: SeedAgentStreamStatus;
1030
+ timestamp: number;
1031
+ payload: SeedAgentStreamPayloadByType[TEvent];
1032
+ appId?: string;
1033
+ tenantId?: string;
1034
+ userId?: string;
1035
+ requestId?: string;
1036
+ seq?: number;
1037
+ };
1038
+ declare const seedAgentStreamEventSpecs: readonly SeedAgentStreamEventSpec[];
1039
+ declare function isSeedAgentStreamEventType(value: string): value is SeedAgentStreamEventType;
1040
+ declare function getSeedAgentStreamEventSpec(event: string): SeedAgentStreamEventSpec | undefined;
1041
+ declare function createSeedAgentStreamEvent<TEvent extends SeedAgentStreamEventType>(input: Omit<SeedAgentStreamEvent<TEvent>, "schemaVersion">): SeedAgentStreamEvent<TEvent>;
1042
+ type SeedAgentStreamOutboxRecord = {
1043
+ channel: string;
1044
+ cursor: string;
1045
+ eventId: string;
1046
+ event: SeedAgentStreamEvent;
1047
+ recordedAt: number;
1048
+ };
1049
+ type SeedAgentStreamOutboxAppendInput = {
1050
+ channel: string;
1051
+ event: SeedAgentStreamEvent;
1052
+ cursor?: string;
1053
+ eventId?: string;
1054
+ recordedAt?: number;
1055
+ };
1056
+ type SeedAgentStreamOutboxSnapshot = {
1057
+ records: SeedAgentStreamOutboxRecord[];
1058
+ cursor?: string;
1059
+ replayRequired?: boolean;
1060
+ reason?: "cursor_not_found";
1061
+ };
1062
+ type SeedAgentStreamOutboxOptions = {
1063
+ maxRecordsPerChannel?: number;
1064
+ now?: () => number;
1065
+ };
1066
+ declare class SeedAgentStreamOutbox {
1067
+ private readonly maxRecordsPerChannel;
1068
+ private readonly now;
1069
+ private readonly recordsByChannel;
1070
+ constructor(options?: SeedAgentStreamOutboxOptions);
1071
+ append(input: SeedAgentStreamOutboxAppendInput): SeedAgentStreamOutboxRecord;
1072
+ appendMany(inputs: readonly SeedAgentStreamOutboxAppendInput[]): SeedAgentStreamOutboxRecord[];
1073
+ snapshot(channelInput: string, cursorInput?: string): SeedAgentStreamOutboxSnapshot;
1074
+ }
1075
+ declare function createSeedAgentStreamOutbox(options?: SeedAgentStreamOutboxOptions): SeedAgentStreamOutbox;
1076
+ //#endregion
1077
+ //#region src/seedAppAgentStream.d.ts
1078
+ declare const seedAppAgentStreamEventTypes: readonly ["agent.run.started", "agent.run.completed", "agent.run.failed", "agent.run.cancelled", "agent.input.steer", "agent.input.collect", "agent.input.followup", "agent.input.side", "agent.message.delta", "agent.thought.delta", "agent.tool.started", "agent.tool.updated", "agent.plan.updated", "agent.goal.updated", "agent.commands.updated", "agent.mode.updated", "agent.config.updated", "agent.context.usage.updated", "agent.session.info.updated", "agent.audio.transcript.updated", "agent.artifact.created", "agent.connection.degraded", "agent.turn.completed", "agent.user.confirmed", "agent.user.delta", "agent.permission.required", "agent.elicitation.required", "agent.background.output", "agent.subagent.anchor", "agent.subagent.message.delta", "agent.subagent.status.updated"];
1079
+ type SeedAppAgentStreamEventType = SeedAgentStreamEventType;
1080
+ type SeedAppAgentStreamStatus = SeedAgentStreamStatus;
1081
+ type SeedAppEventLike = {
1082
+ type: string;
1083
+ payload?: unknown;
1084
+ status?: string;
1085
+ timestamp?: number;
1086
+ };
1087
+ type SeedAppAgentBasePayload = {
1088
+ cursor?: string;
1089
+ eventId?: string;
1090
+ replay?: boolean;
1091
+ };
1092
+ type SeedAppAgentStreamPayloadByType = { [TEvent in SeedAppAgentStreamEventType]: SeedAgentStreamPayloadByType[TEvent] & SeedAppAgentBasePayload; };
1093
+ type SeedAppAgentStreamEvent<TEvent extends SeedAppAgentStreamEventType = SeedAppAgentStreamEventType> = TEvent extends SeedAppAgentStreamEventType ? SeedAppEventLike & {
1094
+ cursor?: string;
1095
+ id?: string;
1096
+ type: TEvent;
1097
+ payload: SeedAppAgentStreamPayloadByType[TEvent];
1098
+ status?: SeedAppAgentStreamStatus;
1099
+ } : never;
1100
+ type SeedAppAgentStreamHandler = (event: SeedAppAgentStreamEvent) => void;
1101
+ type SeedAppAgentStreamSubscribeOptions = {
1102
+ conversationId?: string;
1103
+ runId?: string;
1104
+ };
1105
+ type SeedAppAgentStreamSubscribeConversationInput = {
1106
+ conversationId: string;
1107
+ cursor?: string;
1108
+ };
1109
+ type SeedAppAgentStreamSubscribeRunInput = {
1110
+ runId: string;
1111
+ cursor?: string;
1112
+ };
1113
+ type SeedAppAgentStreamSubscribeRequest = SeedAppAgentStreamSubscribeConversationInput | SeedAppAgentStreamSubscribeRunInput;
1114
+ type SeedAppAgentStreamChannel = `conversation:${string}` | `run:${string}`;
1115
+ type SeedAppAgentStreamSubscribeResult = {
1116
+ subscriptionId: string;
1117
+ channel: SeedAppAgentStreamChannel;
1118
+ cursor?: string;
1119
+ replayRequired?: boolean;
1120
+ reason?: "cursor_not_found";
1121
+ events: SeedAppAgentStreamEvent[];
1122
+ };
1123
+ type SeedAppAgentStreamUnsubscribeRequest = {
1124
+ subscriptionId: string;
1125
+ };
1126
+ type SeedAppAgentStreamScopedSubscribeOptions = {
1127
+ requestTimeoutMs?: number;
1128
+ };
1129
+ type SeedAppAgentStreamScopedUnsubscribe = () => Promise<void>;
1130
+ type SeedAppAgentRunAndWatchHandlers = {
1131
+ onEvent?: SeedAppAgentStreamHandler;
1132
+ onMessageDelta?: (event: SeedAppAgentStreamEvent<"agent.message.delta">) => void;
1133
+ onThoughtDelta?: (event: SeedAppAgentStreamEvent<"agent.thought.delta">) => void;
1134
+ onTool?: (event: SeedAppAgentStreamEvent<"agent.tool.started" | "agent.tool.updated">) => void;
1135
+ onBlocked?: (event: SeedAppAgentStreamEvent<"agent.permission.required" | "agent.elicitation.required">) => void;
1136
+ onTerminal?: (event: SeedAppAgentStreamEvent<"agent.run.completed" | "agent.run.failed" | "agent.run.cancelled" | "agent.turn.completed">) => void;
1137
+ };
1138
+ type SeedAppAgentRunAndWatchOptions = {
1139
+ requestTimeoutMs?: number;
1140
+ streamTimeoutMs?: number;
1141
+ };
1142
+ type SeedAppAgentStreamConsumptionGuardMode = "dedupe" | "strict-dev";
1143
+ type SeedAppAgentStreamConsumptionGuardConsumeOptions = {
1144
+ deliveryScope?: string;
1145
+ };
1146
+ type SeedAppAgentStreamConsumptionGuardIssueCode = "duplicate_event" | "missing_assistant_message_id" | "multiple_assistant_message_ids_for_run" | "tool_update_without_start";
1147
+ type SeedAppAgentStreamConsumptionGuardIssue = {
1148
+ code: SeedAppAgentStreamConsumptionGuardIssueCode;
1149
+ consumerName: string;
1150
+ deliveryKey?: string;
1151
+ semanticKey?: string;
1152
+ eventType: SeedAppAgentStreamEventType;
1153
+ conversationId?: string;
1154
+ runId: string;
1155
+ message: string;
1156
+ };
1157
+ type SeedAppAgentStreamConsumptionGuardOptions = {
1158
+ consumerName: string;
1159
+ mode?: SeedAppAgentStreamConsumptionGuardMode;
1160
+ maxDeliveryKeys?: number;
1161
+ logger?: Pick<Console, "error" | "warn">;
1162
+ throwOnDeveloperError?: boolean;
1163
+ };
1164
+ declare function isSeedAppAgentStreamEvent(event: SeedAppEventLike): event is SeedAppAgentStreamEvent;
1165
+ declare function createSeedAppAgentStreamEvent<TEvent extends SeedAppAgentStreamEventType>(event: SeedAppAgentStreamEvent<TEvent>): SeedAppAgentStreamEvent<TEvent>;
1166
+ declare function resolveSeedAppAgentStreamEventIdentity(event: SeedAppAgentStreamEvent): string;
1167
+ /**
1168
+ * Resolve the business-level merge key for one canonical agent stream event.
1169
+ *
1170
+ * This is intentionally separate from delivery identity. Delivery identity answers
1171
+ * "have I received this exact frame before?", while semantic identity answers
1172
+ * "which UI/runtime object should this frame update?". Inspectors should display
1173
+ * this key when explaining why live, replay, WebSocket, Electron IPC, and Mobile
1174
+ * streams converge into the same rendered object.
1175
+ */
1176
+ declare function resolveSeedAppAgentStreamSemanticKey(event: SeedAppAgentStreamEvent): string;
1177
+ /**
1178
+ * Shared consumer-side protection for canonical agent stream events.
1179
+ *
1180
+ * The guard treats agent streams as at-least-once delivery: the same transport
1181
+ * frame may arrive twice, and replay/live streams may converge on the same
1182
+ * semantic object. Use this class at the consumer boundary before mutating UI or
1183
+ * runtime state. It performs:
1184
+ * - delivery dedupe via `event.id` / `payload.eventId` / `cursor`
1185
+ * - semantic-key inspection for assistant messages and tool calls
1186
+ * - development-only error reporting for protocol shapes that would duplicate UI
1187
+ */
1188
+ declare class SeedAppAgentStreamConsumptionGuard {
1189
+ private readonly consumerName;
1190
+ private readonly mode;
1191
+ private readonly maxDeliveryKeys;
1192
+ private readonly logger;
1193
+ private readonly throwOnDeveloperError;
1194
+ private readonly seenDeliveryKeys;
1195
+ private readonly runStateByKey;
1196
+ private readonly reportedIssueKeys;
1197
+ private readonly issues;
1198
+ constructor(options: SeedAppAgentStreamConsumptionGuardOptions);
1199
+ shouldConsume(event: SeedAppAgentStreamEvent, options?: SeedAppAgentStreamConsumptionGuardConsumeOptions): boolean;
1200
+ assertCanonical(event: SeedAppAgentStreamEvent): SeedAppAgentStreamConsumptionGuardIssue[];
1201
+ resolveDeliveryKey(event: SeedAppAgentStreamEvent, options?: SeedAppAgentStreamConsumptionGuardConsumeOptions): string;
1202
+ resolveSemanticKey(event: SeedAppAgentStreamEvent): string;
1203
+ getIssues(): SeedAppAgentStreamConsumptionGuardIssue[];
1204
+ reset(): void;
1205
+ private inspectCanonicalEvent;
1206
+ private getRunState;
1207
+ private rememberDeliveryKey;
1208
+ private reportIssue;
1209
+ }
1210
+ declare function createSeedAppAgentStreamConsumptionGuard(options: SeedAppAgentStreamConsumptionGuardOptions): SeedAppAgentStreamConsumptionGuard;
1211
+ //#endregion
1212
+ //#region src/seedAppAguiStream.d.ts
1213
+ declare const seedAppAguiStreamEventTypes: readonly ["RUN_STARTED", "RUN_FINISHED", "RUN_ERROR", "TEXT_MESSAGE_START", "TEXT_MESSAGE_CONTENT", "TEXT_MESSAGE_END", "TOOL_CALL_START", "TOOL_CALL_ARGS", "TOOL_CALL_END", "TOOL_CALL_RESULT", "STATE_DELTA", "CUSTOM"];
1214
+ type SeedAguiSource = "seed-web" | "desktop-acp" | "control-gateway";
1215
+ type SeedAguiEventType = (typeof seedAppAguiStreamEventTypes)[number];
1216
+ type SeedAguiMetadata = {
1217
+ conversationId: string;
1218
+ runId: string;
1219
+ source: SeedAguiSource;
1220
+ tenantId?: string;
1221
+ employeeId?: string;
1222
+ roleTemplateId?: string;
1223
+ seq?: number;
1224
+ sourceEventId?: string;
1225
+ };
1226
+ type SeedAguiBaseEvent = {
1227
+ type: SeedAguiEventType;
1228
+ eventId: string;
1229
+ threadId: string;
1230
+ runId: string;
1231
+ seed: SeedAguiMetadata;
1232
+ };
1233
+ type SeedAguiRunStartedEvent = SeedAguiBaseEvent & {
1234
+ type: "RUN_STARTED";
1235
+ };
1236
+ type SeedAguiRunFinishedEvent = SeedAguiBaseEvent & {
1237
+ type: "RUN_FINISHED";
1238
+ };
1239
+ type SeedAguiRunErrorEvent = SeedAguiBaseEvent & {
1240
+ type: "RUN_ERROR";
1241
+ message: string;
1242
+ };
1243
+ type SeedAguiTextMessageStartEvent = SeedAguiBaseEvent & {
1244
+ type: "TEXT_MESSAGE_START";
1245
+ messageId: string;
1246
+ role: "assistant";
1247
+ };
1248
+ type SeedAguiTextMessageContentEvent = SeedAguiBaseEvent & {
1249
+ type: "TEXT_MESSAGE_CONTENT";
1250
+ messageId: string;
1251
+ delta: string;
1252
+ };
1253
+ type SeedAguiTextMessageEndEvent = SeedAguiBaseEvent & {
1254
+ type: "TEXT_MESSAGE_END";
1255
+ messageId: string;
1256
+ };
1257
+ type SeedAguiToolCallStartEvent = SeedAguiBaseEvent & {
1258
+ type: "TOOL_CALL_START";
1259
+ toolCallId: string;
1260
+ toolCallName: string;
1261
+ parentMessageId?: string;
1262
+ };
1263
+ type SeedAguiToolCallArgsEvent = SeedAguiBaseEvent & {
1264
+ type: "TOOL_CALL_ARGS";
1265
+ toolCallId: string;
1266
+ delta: string;
1267
+ };
1268
+ type SeedAguiToolCallEndEvent = SeedAguiBaseEvent & {
1269
+ type: "TOOL_CALL_END";
1270
+ toolCallId: string;
1271
+ };
1272
+ type SeedAguiToolCallResultEvent = SeedAguiBaseEvent & {
1273
+ type: "TOOL_CALL_RESULT";
1274
+ toolCallId: string;
1275
+ content: unknown;
1276
+ };
1277
+ type SeedAguiJsonPatchOperation = {
1278
+ op: "add" | "replace";
1279
+ path: string;
1280
+ value: unknown;
1281
+ } | {
1282
+ op: "remove";
1283
+ path: string;
1284
+ };
1285
+ type SeedAguiStateDeltaEvent = SeedAguiBaseEvent & {
1286
+ type: "STATE_DELTA";
1287
+ delta: SeedAguiJsonPatchOperation[];
1288
+ };
1289
+ type SeedAguiCustomEvent = SeedAguiBaseEvent & {
1290
+ type: "CUSTOM";
1291
+ name: string;
1292
+ value: unknown;
1293
+ };
1294
+ type SeedAguiFormField = {
1295
+ key: string;
1296
+ label: string;
1297
+ type: "text" | "select" | "number" | "boolean" | "email" | "textarea";
1298
+ required?: boolean;
1299
+ placeholder?: string;
1300
+ options?: Array<{
1301
+ label: string;
1302
+ value: string;
1303
+ }>;
1304
+ };
1305
+ type SeedAguiFormSchema = {
1306
+ title: string;
1307
+ fields: SeedAguiFormField[];
1308
+ };
1309
+ type SeedAguiEvent = SeedAguiRunStartedEvent | SeedAguiRunFinishedEvent | SeedAguiRunErrorEvent | SeedAguiTextMessageStartEvent | SeedAguiTextMessageContentEvent | SeedAguiTextMessageEndEvent | SeedAguiToolCallStartEvent | SeedAguiToolCallArgsEvent | SeedAguiToolCallEndEvent | SeedAguiToolCallResultEvent | SeedAguiStateDeltaEvent | SeedAguiCustomEvent;
1310
+ type SeedAppAguiStreamHandler = (event: SeedAguiEvent) => void;
1311
+ type SeedAppAguiStreamSubscribeOptions = {
1312
+ conversationId?: string;
1313
+ runId?: string;
1314
+ };
1315
+ type SeedAppAguiStreamSubscribeConversationInput = {
1316
+ conversationId: string;
1317
+ cursor?: string;
1318
+ };
1319
+ type SeedAppAguiStreamSubscribeRunInput = {
1320
+ runId: string;
1321
+ cursor?: string;
1322
+ };
1323
+ type SeedAppAguiStreamSubscribeRequest = SeedAppAguiStreamSubscribeConversationInput | SeedAppAguiStreamSubscribeRunInput;
1324
+ type SeedAppAguiStreamChannel = `conversation:${string}` | `run:${string}`;
1325
+ type SeedAppAguiStreamSubscribeResult = {
1326
+ subscriptionId: string;
1327
+ channel: SeedAppAguiStreamChannel;
1328
+ cursor?: string;
1329
+ replayRequired?: boolean;
1330
+ reason?: "cursor_not_found";
1331
+ events: SeedAguiEvent[];
1332
+ };
1333
+ type SeedAppAguiStreamUnsubscribeRequest = {
1334
+ subscriptionId: string;
1335
+ };
1336
+ type SeedAppAguiStreamScopedSubscribeOptions = {
1337
+ requestTimeoutMs?: number;
1338
+ };
1339
+ type SeedAppAguiStreamScopedUnsubscribe = () => Promise<void>;
1340
+ declare function isSeedAguiEvent(event: unknown): event is SeedAguiEvent;
1341
+ declare function resolveSeedAguiEventIdentity(event: SeedAguiEvent): string;
1342
+ declare function matchesSeedAguiStreamScope(event: SeedAguiEvent, input: SeedAppAguiStreamSubscribeRequest): boolean;
1343
+ //#endregion
1344
+ //#region src/acp/alignment.d.ts
1345
+ declare const SEED_ACP_STABLE_PROTOCOL_VERSION = 1;
1346
+ declare const SEED_ACP_ALIGNMENT_SOURCE_CHECKED_AT = "2026-06-20";
1347
+ type SeedAcpAlignmentClass = "stable" | "rfd-preview" | "seed-extension" | "out-of-scope";
1348
+ type SeedAcpAlignmentLifecycle = "protocol-v1" | "completed-rfd" | "draft-rfd" | "preview-rfd" | "seed-owned";
1349
+ type SeedAcpAlignmentExposure = "candidate-only" | "runtime-gated-candidate";
1350
+ type SeedAcpLocalWebuiRole = "adapter-parity" | "diagnostics-only" | "not-applicable";
1351
+ type SeedAcpAlignmentSource = {
1352
+ id: string;
1353
+ url: string;
1354
+ checkedAt: string;
1355
+ };
1356
+ type SeedAcpAlignmentTarget = {
1357
+ kind: "diagnostics-metadata" | "method-candidate" | "event-candidate" | "runtime-extension" | "none";
1358
+ method?: string;
1359
+ event?: string;
1360
+ capability?: string;
1361
+ };
1362
+ type SeedAcpAlignmentRuntimeCandidate = {
1363
+ runtime: SeedBridgeRuntime;
1364
+ transport?: SeedBridgeTransportId;
1365
+ support: "candidate" | "diagnostics-only" | "blocked";
1366
+ };
1367
+ type SeedAcpAlignmentCapability = {
1368
+ id: string;
1369
+ acpName: string;
1370
+ classification: SeedAcpAlignmentClass;
1371
+ lifecycle: SeedAcpAlignmentLifecycle;
1372
+ exposure: SeedAcpAlignmentExposure;
1373
+ seedBridge: SeedAcpAlignmentTarget;
1374
+ runtimeCandidates: readonly SeedAcpAlignmentRuntimeCandidate[];
1375
+ localWebuiRole: SeedAcpLocalWebuiRole;
1376
+ diagnosticsEligible: boolean;
1377
+ webSaasDefaultAllowlist: boolean;
1378
+ mobileDefaultEnabledDomain: boolean;
1379
+ sources: readonly SeedAcpAlignmentSource[];
1380
+ note: string;
1381
+ };
1382
+ type SeedAcpAlignmentCapabilityFilter = {
1383
+ classification?: SeedAcpAlignmentClass;
1384
+ lifecycle?: SeedAcpAlignmentLifecycle;
1385
+ diagnosticsEligible?: boolean;
1386
+ localWebuiRole?: SeedAcpLocalWebuiRole;
1387
+ };
1388
+ type SeedAcpAlignmentGateIssue = {
1389
+ id: string;
1390
+ message: string;
1391
+ };
1392
+ declare const seedAcpAlignmentCapabilities: readonly SeedAcpAlignmentCapability[];
1393
+ declare function listSeedAcpAlignmentCapabilities(filter?: SeedAcpAlignmentCapabilityFilter): SeedAcpAlignmentCapability[];
1394
+ declare function getSeedAcpAlignmentCapability(id: string): SeedAcpAlignmentCapability | undefined;
1395
+ declare function validateSeedAcpAlignmentCapabilityGates(capabilities?: readonly SeedAcpAlignmentCapability[]): SeedAcpAlignmentGateIssue[];
1396
+ //#endregion
1397
+ //#region src/acp/diagnostics.d.ts
1398
+ type SeedAcpStableDiagnosticsLifecycle = Extract<SeedAcpAlignmentLifecycle, "protocol-v1" | "completed-rfd">;
1399
+ type SeedAcpRfdPreviewDiagnosticsLifecycle = Extract<SeedAcpAlignmentLifecycle, "draft-rfd" | "preview-rfd">;
1400
+ type SeedAcpStableDiagnosticsCandidate = {
1401
+ id: string;
1402
+ acpName: string;
1403
+ classification: "stable";
1404
+ lifecycle: SeedAcpStableDiagnosticsLifecycle;
1405
+ seedBridge: SeedAcpAlignmentTarget;
1406
+ runtimeCandidates: readonly SeedAcpAlignmentRuntimeCandidate[];
1407
+ localWebuiRole: SeedAcpLocalWebuiRole;
1408
+ webSaasDefaultAllowlist: false;
1409
+ mobileDefaultEnabledDomain: false;
1410
+ sources: readonly SeedAcpAlignmentSource[];
1411
+ note: string;
1412
+ };
1413
+ type SeedAcpStableDiagnosticsSnapshot = {
1414
+ schemaVersion: "seed.acp.diagnostics.v1";
1415
+ source: "seed-acp-alignment";
1416
+ stableProtocolVersion: typeof SEED_ACP_STABLE_PROTOCOL_VERSION;
1417
+ candidates: readonly SeedAcpStableDiagnosticsCandidate[];
1418
+ };
1419
+ type SeedAcpRfdPreviewDiagnosticsCandidate = {
1420
+ id: `rfd-acp.${string}`;
1421
+ acpName: string;
1422
+ classification: "rfd-preview";
1423
+ lifecycle: SeedAcpRfdPreviewDiagnosticsLifecycle;
1424
+ seedBridge: SeedAcpAlignmentTarget;
1425
+ runtimeCandidates: readonly SeedAcpAlignmentRuntimeCandidate[];
1426
+ localWebuiRole: SeedAcpLocalWebuiRole;
1427
+ webSaasDefaultAllowlist: false;
1428
+ mobileDefaultEnabledDomain: false;
1429
+ sources: readonly SeedAcpAlignmentSource[];
1430
+ note: string;
1431
+ };
1432
+ type SeedAcpRfdPreviewDiagnosticsSnapshot = {
1433
+ schemaVersion: "seed.acp.rfd-preview.diagnostics.v1";
1434
+ source: "seed-acp-alignment";
1435
+ candidates: readonly SeedAcpRfdPreviewDiagnosticsCandidate[];
1436
+ };
1437
+ type SeedAcpStableDiagnosticsCandidateValidationInput = Omit<SeedAcpStableDiagnosticsCandidate, "classification" | "lifecycle" | "webSaasDefaultAllowlist" | "mobileDefaultEnabledDomain"> & {
1438
+ classification: string;
1439
+ lifecycle: string;
1440
+ webSaasDefaultAllowlist: boolean;
1441
+ mobileDefaultEnabledDomain: boolean;
1442
+ };
1443
+ type SeedAcpRfdPreviewDiagnosticsCandidateValidationInput = Omit<SeedAcpRfdPreviewDiagnosticsCandidate, "id" | "classification" | "lifecycle" | "webSaasDefaultAllowlist" | "mobileDefaultEnabledDomain"> & {
1444
+ id: string;
1445
+ classification: string;
1446
+ lifecycle: string;
1447
+ webSaasDefaultAllowlist: boolean;
1448
+ mobileDefaultEnabledDomain: boolean;
1449
+ };
1450
+ declare function listSeedAcpStableDiagnosticsCandidates(capabilities?: readonly SeedAcpAlignmentCapability[]): SeedAcpStableDiagnosticsCandidate[];
1451
+ declare function createSeedAcpStableDiagnosticsSnapshot(capabilities?: readonly SeedAcpAlignmentCapability[]): SeedAcpStableDiagnosticsSnapshot;
1452
+ declare function listSeedAcpRfdPreviewDiagnosticsCandidates(capabilities?: readonly SeedAcpAlignmentCapability[]): SeedAcpRfdPreviewDiagnosticsCandidate[];
1453
+ declare function createSeedAcpRfdPreviewDiagnosticsSnapshot(capabilities?: readonly SeedAcpAlignmentCapability[]): SeedAcpRfdPreviewDiagnosticsSnapshot;
1454
+ declare function validateSeedAcpStableDiagnosticsCandidates(candidates: readonly SeedAcpStableDiagnosticsCandidateValidationInput[]): string[];
1455
+ declare function validateSeedAcpRfdPreviewDiagnosticsCandidates(candidates: readonly SeedAcpRfdPreviewDiagnosticsCandidateValidationInput[]): string[];
1456
+ //#endregion
1457
+ //#region src/acp/types.d.ts
1458
+ type SeedAcpEventLogEntry = {
1459
+ id?: string;
1460
+ timestamp?: number;
1461
+ type: string;
1462
+ direction?: "inbound" | "outbound" | "internal" | string;
1463
+ payload?: unknown;
1464
+ sessionId?: string;
1465
+ conversationId?: string;
1466
+ error?: string;
1467
+ };
1468
+ type SeedAcpEventLogExport = {
1469
+ events: SeedAcpEventLogEntry[];
1470
+ };
1471
+ type SeedAcpEventLogParseIssue = {
1472
+ line?: number;
1473
+ message: string;
1474
+ raw?: string;
1475
+ };
1476
+ type SeedAcpEventLogParseResult = {
1477
+ entries: SeedAcpEventLogEntry[];
1478
+ issues: SeedAcpEventLogParseIssue[];
1479
+ };
1480
+ type SeedAcpProjectionOptions = {
1481
+ runId: string;
1482
+ traceId: string;
1483
+ runtime?: SeedBridgeRuntime;
1484
+ appId?: string;
1485
+ tenantId?: string;
1486
+ userId?: string;
1487
+ requestId?: string;
1488
+ conversationId?: string;
1489
+ defaultSessionId?: string;
1490
+ includeBackupEvents?: boolean;
1491
+ };
1492
+ //#endregion
1493
+ //#region src/acp/projection.d.ts
1494
+ declare function projectAcpEventLogToSeedAgentStreamEvents(input: readonly SeedAcpEventLogEntry[] | SeedAcpEventLogExport, options: SeedAcpProjectionOptions): SeedAgentStreamEvent[];
1495
+ declare function projectAcpEventLogEntryToSeedAgentStreamEvents(entry: SeedAcpEventLogEntry, options: SeedAcpProjectionOptions): SeedAgentStreamEvent[];
1496
+ //#endregion
1497
+ //#region src/acp/projectionParse.d.ts
1498
+ declare function parseAcpEventLogExport(input: string): SeedAcpEventLogParseResult;
1499
+ //#endregion
1500
+ //#region src/workspaceEvents.d.ts
1501
+ type SeedWorkspaceFileEventType = "workspace.file.created" | "workspace.file.updated" | "workspace.file.deleted" | "workspace.file.moved" | "workspace.file.patched";
1502
+ type SeedWorkspaceFileEventInput = {
1503
+ eventId: string;
1504
+ type: SeedWorkspaceFileEventType;
1505
+ workspaceId?: string;
1506
+ sessionId: string;
1507
+ operationId?: string;
1508
+ origin?: string;
1509
+ providerKind?: string;
1510
+ providerInstanceId?: string;
1511
+ providerRef?: string;
1512
+ paths: string[];
1513
+ parentDirs: string[];
1514
+ updatedAt: string;
1515
+ timestamp: string;
1516
+ source: string;
1517
+ workspaceRoot?: string;
1518
+ fullPaths?: string[];
1519
+ };
1520
+ type SeedWorkspaceChangedOperation = "created" | "updated" | "deleted" | "moved" | "patched";
1521
+ type SeedWorkspaceChangedPayload = {
1522
+ workspaceId: string;
1523
+ sessionId: string;
1524
+ operation: SeedWorkspaceChangedOperation;
1525
+ uri: string;
1526
+ paths: string[];
1527
+ parentDirs: string[];
1528
+ source: string;
1529
+ updatedAt: string;
1530
+ providerKind?: string;
1531
+ providerInstanceId?: string;
1532
+ providerRef?: string;
1533
+ operationId?: string;
1534
+ origin?: string;
1535
+ pathCount: number;
1536
+ };
1537
+ declare function projectWorkspaceFileEventToJsonRpcNotification(input: {
1538
+ appId?: string;
1539
+ event: SeedWorkspaceFileEventInput;
1540
+ runtime?: SeedBridgeRuntime;
1541
+ seq?: number;
1542
+ tenantId?: string;
1543
+ traceId?: string;
1544
+ userId?: string;
1545
+ }): JsonRpcNotification | undefined;
1546
+ //#endregion
1547
+ //#region src/index.d.ts
1548
+ type SeedBridgeRuntime = "electron" | "local-webui" | "web-saas" | "react-native" | "app-host";
1549
+ type SeedBridgeRisk = "safe" | "conditional" | "blocked" | "needs_design";
1550
+ type SeedBridgeTransportId = "electron-ipc" | "local-websocket" | "web-saas-api" | "web-saas-bridge-ws" | "control-gateway" | "react-native-webview" | "acp-provider" | "app-host-postmessage";
1551
+ type SeedBridgeAuthBoundary = "preload-main" | "local-session" | "session-cookie" | "bearer-token" | "manifest-capability";
1552
+ type SeedBridgeTransportSpec = {
1553
+ id: SeedBridgeTransportId;
1554
+ requestFrame: string;
1555
+ responseFrame: string;
1556
+ eventFrame: string;
1557
+ authBoundary: SeedBridgeAuthBoundary;
1558
+ supportsStreaming: boolean;
1559
+ supportsBroadcast: boolean;
1560
+ };
1561
+ type SeedBridgeErrorCode = "host_unavailable" | "app_not_installed" | "app_disabled" | "handshake_timeout" | "unsupported_runtime" | "unauthenticated" | "capability_denied" | "approval_required" | "approval_denied" | "tenant_policy_denied" | "origin_denied" | "grant_required" | "nonce_invalid" | "csrf_required" | "mcp_unavailable" | "memory_scope_denied" | "resource_scope_denied" | "skill_scope_denied" | "bundle_integrity_failed" | "sdk_version_incompatible" | "bridge_policy_denied" | "provider_unavailable" | "provider_failed" | "payload_too_large" | "rate_limited" | "invalid_payload_schema" | "reserved_bridge_key" | "invalid_request" | "invalid_target" | "not_found" | "already_exists" | "not_a_file" | "not_a_directory" | "parent_not_found" | "directory_not_empty" | "protected_path" | "permission_denied" | "mount_not_found" | "resource_not_found" | "resource_disabled" | "resource_unavailable" | "mode_not_allowed" | "unsupported_operation" | "unsupported_option_combination" | "execute_preflight_unknown" | "cross_mount_move_unsupported" | "version_conflict" | "edit_conflict" | "idempotency_conflict" | "stale_writer" | "write_fence_expired" | "write_fence_scope_denied" | "file_too_large" | "cursor_invalid" | "timeout" | "cancelled" | "provider_error" | "internal_error";
1562
+ type SeedBridgeError = {
1563
+ code: SeedBridgeErrorCode;
1564
+ message: string;
1565
+ retryable: boolean;
1566
+ requestId: string;
1567
+ capability?: string;
1568
+ action?: string;
1569
+ operationId?: string;
1570
+ details?: unknown;
1571
+ };
1572
+ type SeedBridgeTransportSupport = "native" | "websocket" | "api" | "gateway" | "compat-projection" | "capability-broker" | "planned" | "unsupported";
1573
+ type SeedBridgeMethodSpec = {
1574
+ method: string;
1575
+ kind: "provider" | "event";
1576
+ owner: string;
1577
+ risk: SeedBridgeRisk;
1578
+ errors: SeedBridgeErrorCode[];
1579
+ transports: Partial<Record<SeedBridgeRuntime, SeedBridgeTransportSupport>>;
1580
+ capability?: string;
1581
+ audit: {
1582
+ payload: "none" | "metadata-only" | "inline-attachments" | "redacted";
1583
+ tenantScoped: boolean;
1584
+ userScoped: boolean;
1585
+ };
1586
+ };
1587
+ declare const seedBridgeTransportSpecs: readonly SeedBridgeTransportSpec[];
1588
+ declare const appHostBridgeMethodSpecs: readonly SeedBridgeMethodSpec[];
1589
+ declare const seedBridgeMethodSpecs: readonly SeedBridgeMethodSpec[];
1590
+ declare function getSeedBridgeMethodSpec(method: string): SeedBridgeMethodSpec | undefined;
1591
+ declare function getSeedBridgeCapabilityForMethod(method: string): string | undefined;
1592
+ declare function listSeedBridgeMethodsForCapability(capability: string): SeedBridgeMethodSpec[];
1593
+ declare function createSeedBridgeError(input: Omit<SeedBridgeError, "retryable"> & {
1594
+ retryable?: boolean;
1595
+ }): SeedBridgeError;
1596
+ //#endregion
1597
+ export { type AgentElicitationRequiredPayload, type AgentMessageDeltaPayload, type AgentPermissionRequiredPayload, type AgentRunCancelledPayload, type AgentRunCompletedPayload, type AgentRunFailedPayload, type AgentRunStartedPayload, type AgentRuntimeEventPayload, type AgentThoughtDeltaPayload, type AgentToolStartedPayload, type AgentToolUpdatedPayload, type AgentTurnCompletedPayload, CANONICAL_EVENT_TYPES, type CanonicalEventMeta, type CanonicalEventPayload, type CanonicalEventType, type CanonicalEventValidationResult, JSON_RPC_ERROR_CODES, JsonRpcControlGatewayAdapterContract, JsonRpcControlGatewayFrame, JsonRpcControlGatewayFrameContext, JsonRpcControlGatewayFrameType, JsonRpcControlGatewayFrameUnion, JsonRpcControlGatewayNotificationFrame, JsonRpcControlGatewayNotificationPayload, JsonRpcControlGatewayRequestFrame, JsonRpcControlGatewayRequestPayload, JsonRpcControlGatewayResponseFrame, JsonRpcControlGatewayResponsePayload, JsonRpcElectronIpcAdapterContract, JsonRpcElectronIpcFrame, type JsonRpcErrorObject, type JsonRpcErrorResponse, type JsonRpcFrame, type JsonRpcId, JsonRpcLocalWebuiFrame, type JsonRpcNotification, JsonRpcReactNativeFrame, JsonRpcReactNativeWebViewAdapter, JsonRpcReactNativeWebViewAdapterOptions, JsonRpcReactNativeWebViewPort, type JsonRpcRequest, type JsonRpcResponse, type JsonRpcValidationResult, type ParsedJsonRpcFrame, RuntimeReasoningConfig, RuntimeReasoningConfigOption, RuntimeReasoningConfigOptionResolution, RuntimeReasoningConfigOptionUpdate, RuntimeReasoningEffort, SEED_ACP_ALIGNMENT_SOURCE_CHECKED_AT, SEED_ACP_STABLE_PROTOCOL_VERSION, SEED_AGENT_STREAM_EVENT_NAMES, SEED_AGENT_STREAM_EVENT_NAME_LIST, SEED_AGUI_STREAM_EVENT_NAMES, SEED_AGUI_STREAM_EVENT_NAME_LIST, SEED_AGUI_STREAM_EVENT_TYPE, SEED_APP_HOST_EVENT_NAMES, SEED_APP_HOST_EVENT_NAME_LIST, SEED_BACKGROUND_STREAM_EVENT_NAMES, SEED_BACKGROUND_STREAM_EVENT_NAME_LIST, SEED_BACKGROUND_STREAM_EVENT_TYPE, SEED_BRIDGE_ELECTRON_IPC_CHANNEL, SEED_BRIDGE_EVENT_CATALOG, SEED_BRIDGE_ROUTE_COMMAND_TRANSPORTS, SEED_BRIDGE_ROUTE_IMPLEMENTATIONS, SEED_BRIDGE_SCHEMA_VERSION, SEED_CONVERSATION_AUTHORITY_KINDS, SEED_EVENT_NOTIFICATION_METHOD, SeedAcpAlignmentCapability, SeedAcpAlignmentCapabilityFilter, SeedAcpAlignmentClass, SeedAcpAlignmentExposure, SeedAcpAlignmentGateIssue, SeedAcpAlignmentLifecycle, SeedAcpAlignmentRuntimeCandidate, SeedAcpAlignmentSource, SeedAcpAlignmentTarget, SeedAcpEventLogEntry, SeedAcpEventLogExport, SeedAcpEventLogParseIssue, SeedAcpEventLogParseResult, SeedAcpLocalWebuiRole, SeedAcpProjectionOptions, SeedAcpRfdPreviewDiagnosticsCandidate, SeedAcpRfdPreviewDiagnosticsCandidateValidationInput, SeedAcpRfdPreviewDiagnosticsLifecycle, SeedAcpRfdPreviewDiagnosticsSnapshot, SeedAcpStableDiagnosticsCandidate, SeedAcpStableDiagnosticsCandidateValidationInput, SeedAcpStableDiagnosticsLifecycle, SeedAcpStableDiagnosticsSnapshot, SeedAgentBasePayload, SeedAgentInputDispatchPayload, SeedAgentRuntimeStatus, SeedAgentStreamEvent, SeedAgentStreamEventSpec, SeedAgentStreamEventType, SeedAgentStreamOutbox, SeedAgentStreamOutboxAppendInput, SeedAgentStreamOutboxOptions, SeedAgentStreamOutboxRecord, SeedAgentStreamOutboxSnapshot, SeedAgentStreamPayloadByType, SeedAgentStreamPayloadPolicy, SeedAgentStreamStatus, SeedAgentTextDeltaPayload, SeedAgentToolPayload, SeedAguiBaseEvent, SeedAguiCustomEvent, SeedAguiEvent, SeedAguiEventType, SeedAguiFormField, SeedAguiFormSchema, SeedAguiJsonPatchOperation, SeedAguiMetadata, SeedAguiRunErrorEvent, SeedAguiRunFinishedEvent, SeedAguiRunStartedEvent, SeedAguiSource, SeedAguiStateDeltaEvent, SeedAguiTextMessageContentEvent, SeedAguiTextMessageEndEvent, SeedAguiTextMessageStartEvent, SeedAguiToolCallArgsEvent, SeedAguiToolCallEndEvent, SeedAguiToolCallResultEvent, SeedAguiToolCallStartEvent, SeedAppAgentBasePayload, SeedAppAgentRunAndWatchHandlers, SeedAppAgentRunAndWatchOptions, SeedAppAgentStreamChannel, SeedAppAgentStreamConsumptionGuard, SeedAppAgentStreamConsumptionGuardConsumeOptions, SeedAppAgentStreamConsumptionGuardIssue, SeedAppAgentStreamConsumptionGuardIssueCode, SeedAppAgentStreamConsumptionGuardMode, SeedAppAgentStreamConsumptionGuardOptions, SeedAppAgentStreamEvent, SeedAppAgentStreamEventType, SeedAppAgentStreamHandler, SeedAppAgentStreamPayloadByType, SeedAppAgentStreamScopedSubscribeOptions, SeedAppAgentStreamScopedUnsubscribe, SeedAppAgentStreamStatus, SeedAppAgentStreamSubscribeConversationInput, SeedAppAgentStreamSubscribeOptions, SeedAppAgentStreamSubscribeRequest, SeedAppAgentStreamSubscribeResult, SeedAppAgentStreamSubscribeRunInput, SeedAppAgentStreamUnsubscribeRequest, SeedAppAguiStreamChannel, SeedAppAguiStreamHandler, SeedAppAguiStreamScopedSubscribeOptions, SeedAppAguiStreamScopedUnsubscribe, SeedAppAguiStreamSubscribeConversationInput, SeedAppAguiStreamSubscribeOptions, SeedAppAguiStreamSubscribeRequest, SeedAppAguiStreamSubscribeResult, SeedAppAguiStreamSubscribeRunInput, SeedAppAguiStreamUnsubscribeRequest, type SeedAppBundleAsset, type SeedAppBundleManifest, type SeedAppBundleSummary, type SeedAppCapabilities, type SeedAppContributions, type SeedAppEntry, SeedAppEventLike, type SeedAppGrantPolicy, type SeedAppKind, type SeedAppLauncherContribution, type SeedAppManifest, type SeedAppPermissions, type SeedAppRuntime, type SeedAppValidationIssue, type SeedAppValidationResult, type SeedBackgroundStreamEvent, type SeedBackgroundStreamEventType, type SeedBridgeAgentRuntimeRouteMethod, type SeedBridgeAuditAuthority, SeedBridgeAuthBoundary, SeedBridgeError, SeedBridgeErrorCode, type SeedBridgeMethodRuntimeRoute, SeedBridgeMethodSpec, SeedBridgeRisk, type SeedBridgeRouteAuthority, type SeedBridgeRouteCommandTransport, type SeedBridgeRouteEventSource, type SeedBridgeRouteFallback, type SeedBridgeRouteImplementation, SeedBridgeRuntime, SeedBridgeRuntimeTransportContract, SeedBridgeRuntimeTransportContractValidation, SeedBridgeRuntimeTransportDiagnosticsSummary, SeedBridgeRuntimeTransportVerification, SeedBridgeRuntimeTransportVerificationCommand, type SeedBridgeSchemaVersion, SeedBridgeTransportId, SeedBridgeTransportSpec, SeedBridgeTransportSupport, type SeedCloudConversationAuthorityDescriptor, type SeedConversationAuthorityDescriptor, type SeedConversationAuthorityValidationCode, type SeedConversationAuthorityValidationResult, type SeedEventAcpInspectorProjection, type SeedEventAcpProjectionTraceInput, type SeedEventClientEvent, type SeedEventNotificationParams, type SeedEventProjectionTrace, type SeedEventTransportMeta, type SeedEventTransportParams, type SeedRemotePcConversationAuthorityDescriptor, SeedWorkspaceChangedOperation, SeedWorkspaceChangedPayload, SeedWorkspaceFileEventInput, SeedWorkspaceFileEventType, appHostBridgeMethodSpecs, createJsonRpcControlGatewayNotificationFrame, createJsonRpcControlGatewayRequestFrame, createJsonRpcControlGatewayResponseFrame, createJsonRpcError, createJsonRpcNotification, createJsonRpcReactNativeWebViewAdapter, createJsonRpcRequest, createJsonRpcResponse, createSeedAcpRfdPreviewDiagnosticsSnapshot, createSeedAcpStableDiagnosticsSnapshot, createSeedAgentStreamEvent, createSeedAgentStreamOutbox, createSeedAppAgentStreamConsumptionGuard, createSeedAppAgentStreamEvent, createSeedBridgeError, createSeedEventAcpProjectionTrace, createSeedEventNotification, deserializeJsonRpcFrame, getSeedAcpAlignmentCapability, getSeedAgentStreamEventSpec, getSeedBridgeCapabilityForMethod, getSeedBridgeMethodSpec, getSeedBridgeRouteMetadataForMethod, getSeedBridgeRuntimeTransportContract, getSeedBridgeRuntimeTransportDiagnosticsSummary, getSeedBridgeRuntimeTransportVerification, isRuntimeReasoningConfigOption, isSeedAgentStreamEventType, isSeedAguiEvent, isSeedAppAgentStreamEvent, isSeedBackgroundStreamEvent, jsonRpcControlGatewayPayloadKinds, listSeedAcpAlignmentCapabilities, listSeedAcpRfdPreviewDiagnosticsCandidates, listSeedAcpStableDiagnosticsCandidates, listSeedBridgeMethodsForCapability, listSeedBridgeRouteMetadata, listSeedBridgeRouteMetadataForCapability, listSeedBridgeRuntimeTransportDiagnosticsSummaries, matchesSeedAguiStreamScope, normalizeRuntimeConfigReasoning, normalizeRuntimeReasoningConfig, parseAcpEventLogExport, parseJsonRpcControlGatewayFrame, parseJsonRpcElectronIpcFrame, parseJsonRpcFrame, parseJsonRpcLocalWebuiFrame, parseJsonRpcReactNativeFrame, projectAcpEventLogEntryToSeedAgentStreamEvents, projectAcpEventLogToSeedAgentStreamEvents, projectSeedClientEventToAcpInspectorProjection, projectSeedEventFrameToClientEvent, projectSeedEventParamsToClientEvent, projectWorkspaceFileEventToJsonRpcNotification, readSeedEventProjectionTrace, readSeedEventTransportParams, resolveRuntimeReasoningConfigOptions, resolveSeedAguiEventIdentity, resolveSeedAppAgentStreamEventIdentity, resolveSeedAppAgentStreamSemanticKey, seedAcpAlignmentCapabilities, seedAgentStreamEventSpecs, seedAgentStreamEventTypes, seedAppAgentStreamEventTypes, seedAppAguiStreamEventTypes, seedBridgeMethodRuntimeRoutes, seedBridgeMethodSpecs, seedBridgeRuntimeTransportContracts, seedBridgeRuntimeTransportVerificationMatrix, seedBridgeTransportSpecs, serializeJsonRpcControlGatewayFrame, serializeJsonRpcElectronIpcFrame, serializeJsonRpcFrame, serializeJsonRpcLocalWebuiFrame, serializeJsonRpcReactNativeFrame, validateCanonicalEvent, validateCanonicalEventMeta, validateJsonRpcControlGatewayAdapterContract, validateJsonRpcElectronIpcAdapterContract, validateJsonRpcRequest, validateSeedAcpAlignmentCapabilityGates, validateSeedAcpRfdPreviewDiagnosticsCandidates, validateSeedAcpStableDiagnosticsCandidates, validateSeedAppBundleManifest, validateSeedAppManifest, validateSeedBridgeRuntimeTransportContract, validateSeedBridgeRuntimeTransportVerificationMatrix, validateSeedConversationAuthorityDescriptor, workspaceBridgeMethodSpecs };