@h-rig/contracts 0.0.6-alpha.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,2278 @@
1
+ // @bun
2
+ // packages/contracts/src/engine.ts
3
+ import { Schema as Schema13 } from "effect";
4
+
5
+ // packages/contracts/src/baseSchemas.ts
6
+ import { Schema } from "effect";
7
+ var TrimmedString = Schema.Trim;
8
+ var TrimmedNonEmptyString = TrimmedString.check(Schema.isNonEmpty());
9
+ var NonNegativeInt = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0));
10
+ var PositiveInt = Schema.Int.check(Schema.isGreaterThanOrEqualTo(1));
11
+ var IsoDateTime = Schema.String;
12
+ var makeEntityId = (brand) => TrimmedNonEmptyString.pipe(Schema.brand(brand));
13
+ var ThreadId = makeEntityId("ThreadId");
14
+ var ProjectId = makeEntityId("ProjectId");
15
+ var WorkspaceId = makeEntityId("WorkspaceId");
16
+ var GraphId = makeEntityId("GraphId");
17
+ var TaskId = makeEntityId("TaskId");
18
+ var RunId = makeEntityId("RunId");
19
+ var EngineRuntimeId = makeEntityId("EngineRuntimeId");
20
+ var ConversationId = makeEntityId("ConversationId");
21
+ var ActionId = makeEntityId("ActionId");
22
+ var ArtifactId = makeEntityId("ArtifactId");
23
+ var WorktreeId = makeEntityId("WorktreeId");
24
+ var ValidationResultId = makeEntityId("ValidationResultId");
25
+ var ReviewResultId = makeEntityId("ReviewResultId");
26
+ var CommandId = makeEntityId("CommandId");
27
+ var EventId = makeEntityId("EventId");
28
+ var MessageId = makeEntityId("MessageId");
29
+ var TurnId = makeEntityId("TurnId");
30
+ var ProviderItemId = makeEntityId("ProviderItemId");
31
+ var RuntimeSessionId = makeEntityId("RuntimeSessionId");
32
+ var RuntimeItemId = makeEntityId("RuntimeItemId");
33
+ var RuntimeRequestId = makeEntityId("RuntimeRequestId");
34
+ var RuntimeTaskId = makeEntityId("RuntimeTaskId");
35
+ var ApprovalRequestId = makeEntityId("ApprovalRequestId");
36
+ var CheckpointRef = makeEntityId("CheckpointRef");
37
+ var RemoteEndpointId = makeEntityId("RemoteEndpointId");
38
+
39
+ // packages/contracts/src/conversation.ts
40
+ import { Schema as Schema2 } from "effect";
41
+ var EngineMessageRole = Schema2.Literals(["user", "assistant", "system"]);
42
+ var EngineMessageState = Schema2.Literals([
43
+ "streaming",
44
+ "completed",
45
+ "interrupted",
46
+ "errored"
47
+ ]);
48
+ var ConversationSummary = Schema2.Struct({
49
+ id: ConversationId,
50
+ runId: RunId,
51
+ title: TrimmedNonEmptyString,
52
+ createdAt: IsoDateTime,
53
+ updatedAt: IsoDateTime
54
+ });
55
+ var EngineMessage = Schema2.Struct({
56
+ id: MessageId,
57
+ conversationId: ConversationId,
58
+ role: EngineMessageRole,
59
+ text: Schema2.String,
60
+ attachments: Schema2.Array(Schema2.Unknown),
61
+ state: EngineMessageState,
62
+ createdAt: IsoDateTime,
63
+ completedAt: Schema2.NullOr(IsoDateTime)
64
+ });
65
+ var EngineAction = Schema2.Struct({
66
+ id: ActionId,
67
+ runId: RunId,
68
+ messageId: Schema2.NullOr(MessageId),
69
+ actionType: TrimmedNonEmptyString,
70
+ title: TrimmedNonEmptyString,
71
+ detail: Schema2.NullOr(Schema2.String),
72
+ state: TrimmedNonEmptyString,
73
+ payload: Schema2.Unknown,
74
+ startedAt: IsoDateTime,
75
+ completedAt: Schema2.NullOr(IsoDateTime)
76
+ });
77
+ var EngineLogTone = Schema2.Literals(["thinking", "tool", "info", "error"]);
78
+ var EngineRunLog = Schema2.Struct({
79
+ id: TrimmedNonEmptyString,
80
+ runId: RunId,
81
+ title: TrimmedNonEmptyString,
82
+ detail: Schema2.NullOr(Schema2.String),
83
+ tone: EngineLogTone,
84
+ status: Schema2.NullOr(TrimmedNonEmptyString),
85
+ payload: Schema2.Unknown,
86
+ createdAt: IsoDateTime
87
+ });
88
+
89
+ // packages/contracts/src/graph.ts
90
+ import { Schema as Schema3 } from "effect";
91
+ var TaskStatus = Schema3.Literals([
92
+ "draft",
93
+ "open",
94
+ "ready",
95
+ "queued",
96
+ "running",
97
+ "in_progress",
98
+ "under_review",
99
+ "blocked",
100
+ "unknown",
101
+ "completed",
102
+ "failed",
103
+ "cancelled",
104
+ "closed"
105
+ ]);
106
+ var GraphSummary = Schema3.Struct({
107
+ id: GraphId,
108
+ workspaceId: WorkspaceId,
109
+ title: TrimmedNonEmptyString,
110
+ description: Schema3.NullOr(Schema3.String),
111
+ createdAt: IsoDateTime,
112
+ updatedAt: IsoDateTime
113
+ });
114
+ var TaskSummary = Schema3.Struct({
115
+ id: TaskId,
116
+ workspaceId: WorkspaceId,
117
+ graphId: Schema3.NullOr(GraphId),
118
+ externalId: Schema3.NullOr(TrimmedNonEmptyString),
119
+ title: TrimmedNonEmptyString,
120
+ description: Schema3.String,
121
+ status: TaskStatus,
122
+ priority: Schema3.NullOr(PositiveInt),
123
+ role: Schema3.NullOr(TrimmedNonEmptyString),
124
+ scope: Schema3.Array(TrimmedNonEmptyString),
125
+ validationKeys: Schema3.Array(TrimmedNonEmptyString),
126
+ sourceIssueId: Schema3.optional(Schema3.NullOr(TrimmedNonEmptyString)),
127
+ dependencies: Schema3.optional(Schema3.Array(TrimmedNonEmptyString)),
128
+ parentChildDeps: Schema3.optional(Schema3.Array(TrimmedNonEmptyString)),
129
+ metadata: Schema3.Unknown,
130
+ createdAt: IsoDateTime,
131
+ updatedAt: IsoDateTime
132
+ });
133
+ var QueueEntry = Schema3.Struct({
134
+ taskId: TaskId,
135
+ score: NonNegativeInt,
136
+ unblockCount: NonNegativeInt,
137
+ position: NonNegativeInt
138
+ });
139
+
140
+ // packages/contracts/src/policy.ts
141
+ import { Schema as Schema4 } from "effect";
142
+ var PolicyDecision = Schema4.Literals(["allow", "warn", "block"]);
143
+ var PolicyMode = Schema4.Literals(["off", "observe", "enforce"]);
144
+ var PolicyDecisionSummary = Schema4.Struct({
145
+ id: TrimmedNonEmptyString,
146
+ runId: RunId,
147
+ actionId: Schema4.NullOr(ActionId),
148
+ decision: PolicyDecision,
149
+ mode: PolicyMode,
150
+ matchedRules: Schema4.Array(TrimmedNonEmptyString),
151
+ reason: Schema4.String,
152
+ createdAt: IsoDateTime
153
+ });
154
+
155
+ // packages/contracts/src/artifact.ts
156
+ import { Schema as Schema5 } from "effect";
157
+ var ArtifactSummary = Schema5.Struct({
158
+ id: ArtifactId,
159
+ runId: RunId,
160
+ taskId: Schema5.NullOr(TaskId),
161
+ kind: TrimmedNonEmptyString,
162
+ label: TrimmedNonEmptyString,
163
+ path: Schema5.NullOr(TrimmedNonEmptyString),
164
+ url: Schema5.NullOr(TrimmedNonEmptyString),
165
+ metadata: Schema5.Record(Schema5.String, Schema5.Unknown),
166
+ createdAt: IsoDateTime
167
+ });
168
+
169
+ // packages/contracts/src/orchestration.ts
170
+ import { Option, Schema as Schema7, SchemaIssue, Struct } from "effect";
171
+
172
+ // packages/contracts/src/model.ts
173
+ import { Schema as Schema6 } from "effect";
174
+ var CODEX_REASONING_EFFORT_OPTIONS = ["xhigh", "high", "medium", "low"];
175
+ var CodexModelOptions = Schema6.Struct({
176
+ reasoningEffort: Schema6.optional(Schema6.Literals(CODEX_REASONING_EFFORT_OPTIONS)),
177
+ fastMode: Schema6.optional(Schema6.Boolean)
178
+ });
179
+ var ClaudeModelOptions = Schema6.Struct({});
180
+ var ProviderModelOptions = Schema6.Struct({
181
+ codex: Schema6.optional(CodexModelOptions),
182
+ claude: Schema6.optional(ClaudeModelOptions)
183
+ });
184
+
185
+ // packages/contracts/src/orchestration.ts
186
+ var ProviderKind = Schema7.Literals(["codex", "claude"]);
187
+ var ProviderApprovalPolicy = Schema7.Literals([
188
+ "untrusted",
189
+ "on-failure",
190
+ "on-request",
191
+ "never"
192
+ ]);
193
+ var ProviderSandboxMode = Schema7.Literals([
194
+ "read-only",
195
+ "workspace-write",
196
+ "danger-full-access"
197
+ ]);
198
+ var ProviderServiceTier = Schema7.Literals(["fast", "flex"]);
199
+ var RuntimeMode = Schema7.Literals(["approval-required", "full-access"]);
200
+ var DEFAULT_RUNTIME_MODE = "full-access";
201
+ var ProviderInteractionMode = Schema7.Literals(["default", "plan"]);
202
+ var DEFAULT_PROVIDER_INTERACTION_MODE = "default";
203
+ var ProviderRequestKind = Schema7.Literals(["command", "file-read", "file-change"]);
204
+ var AssistantDeliveryMode = Schema7.Literals(["buffered", "streaming"]);
205
+ var ProviderApprovalDecision = Schema7.Literals([
206
+ "accept",
207
+ "acceptForSession",
208
+ "decline",
209
+ "cancel"
210
+ ]);
211
+ var ProviderUserInputAnswers = Schema7.Record(Schema7.String, Schema7.Unknown);
212
+ var PROVIDER_SEND_TURN_MAX_IMAGE_BYTES = 10 * 1024 * 1024;
213
+ var PROVIDER_SEND_TURN_MAX_IMAGE_DATA_URL_CHARS = 14000000;
214
+ var CHAT_ATTACHMENT_ID_MAX_CHARS = 128;
215
+ var ChatAttachmentId = TrimmedNonEmptyString.check(Schema7.isMaxLength(CHAT_ATTACHMENT_ID_MAX_CHARS), Schema7.isPattern(/^[a-z0-9_-]+$/i));
216
+ var ChatImageAttachment = Schema7.Struct({
217
+ type: Schema7.Literal("image"),
218
+ id: ChatAttachmentId,
219
+ name: TrimmedNonEmptyString.check(Schema7.isMaxLength(255)),
220
+ mimeType: TrimmedNonEmptyString.check(Schema7.isMaxLength(100), Schema7.isPattern(/^image\//i)),
221
+ sizeBytes: NonNegativeInt.check(Schema7.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_IMAGE_BYTES))
222
+ });
223
+ var UploadChatImageAttachment = Schema7.Struct({
224
+ type: Schema7.Literal("image"),
225
+ name: TrimmedNonEmptyString.check(Schema7.isMaxLength(255)),
226
+ mimeType: TrimmedNonEmptyString.check(Schema7.isMaxLength(100), Schema7.isPattern(/^image\//i)),
227
+ sizeBytes: NonNegativeInt.check(Schema7.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_IMAGE_BYTES)),
228
+ dataUrl: TrimmedNonEmptyString.check(Schema7.isMaxLength(PROVIDER_SEND_TURN_MAX_IMAGE_DATA_URL_CHARS))
229
+ });
230
+ var ChatAttachment = Schema7.Union([ChatImageAttachment]);
231
+ var UploadChatAttachment = Schema7.Union([UploadChatImageAttachment]);
232
+ var ProjectScriptIcon = Schema7.Literals([
233
+ "play",
234
+ "test",
235
+ "lint",
236
+ "configure",
237
+ "build",
238
+ "debug"
239
+ ]);
240
+ var ProjectScript = Schema7.Struct({
241
+ id: TrimmedNonEmptyString,
242
+ name: TrimmedNonEmptyString,
243
+ command: TrimmedNonEmptyString,
244
+ icon: ProjectScriptIcon,
245
+ runOnWorktreeCreate: Schema7.Boolean
246
+ });
247
+ var OrchestrationProject = Schema7.Struct({
248
+ id: ProjectId,
249
+ title: TrimmedNonEmptyString,
250
+ workspaceRoot: TrimmedNonEmptyString,
251
+ defaultModel: Schema7.NullOr(TrimmedNonEmptyString),
252
+ scripts: Schema7.Array(ProjectScript),
253
+ createdAt: IsoDateTime,
254
+ updatedAt: IsoDateTime,
255
+ deletedAt: Schema7.NullOr(IsoDateTime)
256
+ });
257
+ var OrchestrationMessageRole = Schema7.Literals(["user", "assistant", "system"]);
258
+ var OrchestrationMessage = Schema7.Struct({
259
+ id: MessageId,
260
+ role: OrchestrationMessageRole,
261
+ text: Schema7.String,
262
+ attachments: Schema7.optional(Schema7.Array(ChatAttachment)),
263
+ turnId: Schema7.NullOr(TurnId),
264
+ streaming: Schema7.Boolean,
265
+ createdAt: IsoDateTime,
266
+ updatedAt: IsoDateTime
267
+ });
268
+ var OrchestrationProposedPlanId = TrimmedNonEmptyString;
269
+ var OrchestrationProposedPlan = Schema7.Struct({
270
+ id: OrchestrationProposedPlanId,
271
+ turnId: Schema7.NullOr(TurnId),
272
+ planMarkdown: TrimmedNonEmptyString,
273
+ createdAt: IsoDateTime,
274
+ updatedAt: IsoDateTime
275
+ });
276
+ var OrchestrationSessionStatus = Schema7.Literals([
277
+ "idle",
278
+ "starting",
279
+ "running",
280
+ "ready",
281
+ "interrupted",
282
+ "stopped",
283
+ "error"
284
+ ]);
285
+ var OrchestrationSession = Schema7.Struct({
286
+ threadId: ThreadId,
287
+ status: OrchestrationSessionStatus,
288
+ providerName: Schema7.NullOr(TrimmedNonEmptyString),
289
+ runtimeMode: RuntimeMode.pipe(Schema7.withDecodingDefault(() => DEFAULT_RUNTIME_MODE)),
290
+ activeTurnId: Schema7.NullOr(TurnId),
291
+ lastError: Schema7.NullOr(TrimmedNonEmptyString),
292
+ updatedAt: IsoDateTime
293
+ });
294
+ var OrchestrationCheckpointFile = Schema7.Struct({
295
+ path: TrimmedNonEmptyString,
296
+ kind: TrimmedNonEmptyString,
297
+ additions: NonNegativeInt,
298
+ deletions: NonNegativeInt
299
+ });
300
+ var OrchestrationCheckpointStatus = Schema7.Literals(["ready", "missing", "error"]);
301
+ var OrchestrationCheckpointSummary = Schema7.Struct({
302
+ turnId: TurnId,
303
+ checkpointTurnCount: NonNegativeInt,
304
+ checkpointRef: CheckpointRef,
305
+ status: OrchestrationCheckpointStatus,
306
+ files: Schema7.Array(OrchestrationCheckpointFile),
307
+ assistantMessageId: Schema7.NullOr(MessageId),
308
+ completedAt: IsoDateTime
309
+ });
310
+ var OrchestrationThreadActivityTone = Schema7.Literals([
311
+ "info",
312
+ "tool",
313
+ "approval",
314
+ "error"
315
+ ]);
316
+ var OrchestrationThreadActivity = Schema7.Struct({
317
+ id: EventId,
318
+ tone: OrchestrationThreadActivityTone,
319
+ kind: TrimmedNonEmptyString,
320
+ summary: TrimmedNonEmptyString,
321
+ payload: Schema7.Unknown,
322
+ turnId: Schema7.NullOr(TurnId),
323
+ sequence: Schema7.optional(NonNegativeInt),
324
+ createdAt: IsoDateTime
325
+ });
326
+ var OrchestrationLatestTurnState = Schema7.Literals([
327
+ "running",
328
+ "interrupted",
329
+ "completed",
330
+ "error"
331
+ ]);
332
+ var OrchestrationLatestTurn = Schema7.Struct({
333
+ turnId: TurnId,
334
+ state: OrchestrationLatestTurnState,
335
+ requestedAt: IsoDateTime,
336
+ startedAt: Schema7.NullOr(IsoDateTime),
337
+ completedAt: Schema7.NullOr(IsoDateTime),
338
+ assistantMessageId: Schema7.NullOr(MessageId)
339
+ });
340
+ var OrchestrationThread = Schema7.Struct({
341
+ id: ThreadId,
342
+ projectId: ProjectId,
343
+ title: TrimmedNonEmptyString,
344
+ model: TrimmedNonEmptyString,
345
+ runtimeMode: RuntimeMode,
346
+ interactionMode: ProviderInteractionMode.pipe(Schema7.withDecodingDefault(() => DEFAULT_PROVIDER_INTERACTION_MODE)),
347
+ branch: Schema7.NullOr(TrimmedNonEmptyString),
348
+ worktreePath: Schema7.NullOr(TrimmedNonEmptyString),
349
+ latestTurn: Schema7.NullOr(OrchestrationLatestTurn),
350
+ createdAt: IsoDateTime,
351
+ updatedAt: IsoDateTime,
352
+ deletedAt: Schema7.NullOr(IsoDateTime),
353
+ messages: Schema7.Array(OrchestrationMessage),
354
+ proposedPlans: Schema7.Array(OrchestrationProposedPlan).pipe(Schema7.withDecodingDefault(() => [])),
355
+ activities: Schema7.Array(OrchestrationThreadActivity),
356
+ checkpoints: Schema7.Array(OrchestrationCheckpointSummary),
357
+ session: Schema7.NullOr(OrchestrationSession)
358
+ });
359
+ var OrchestrationReadModel = Schema7.Struct({
360
+ snapshotSequence: NonNegativeInt,
361
+ projects: Schema7.Array(OrchestrationProject),
362
+ threads: Schema7.Array(OrchestrationThread),
363
+ updatedAt: IsoDateTime
364
+ });
365
+ var ProjectCreateCommand = Schema7.Struct({
366
+ type: Schema7.Literal("project.create"),
367
+ commandId: CommandId,
368
+ projectId: ProjectId,
369
+ title: TrimmedNonEmptyString,
370
+ workspaceRoot: TrimmedNonEmptyString,
371
+ defaultModel: Schema7.optional(TrimmedNonEmptyString),
372
+ createdAt: IsoDateTime
373
+ });
374
+ var ProjectMetaUpdateCommand = Schema7.Struct({
375
+ type: Schema7.Literal("project.meta.update"),
376
+ commandId: CommandId,
377
+ projectId: ProjectId,
378
+ title: Schema7.optional(TrimmedNonEmptyString),
379
+ workspaceRoot: Schema7.optional(TrimmedNonEmptyString),
380
+ defaultModel: Schema7.optional(TrimmedNonEmptyString),
381
+ scripts: Schema7.optional(Schema7.Array(ProjectScript))
382
+ });
383
+ var ProjectDeleteCommand = Schema7.Struct({
384
+ type: Schema7.Literal("project.delete"),
385
+ commandId: CommandId,
386
+ projectId: ProjectId
387
+ });
388
+ var ThreadCreateCommand = Schema7.Struct({
389
+ type: Schema7.Literal("thread.create"),
390
+ commandId: CommandId,
391
+ threadId: ThreadId,
392
+ projectId: ProjectId,
393
+ title: TrimmedNonEmptyString,
394
+ model: TrimmedNonEmptyString,
395
+ runtimeMode: RuntimeMode,
396
+ interactionMode: ProviderInteractionMode.pipe(Schema7.withDecodingDefault(() => DEFAULT_PROVIDER_INTERACTION_MODE)),
397
+ branch: Schema7.NullOr(TrimmedNonEmptyString),
398
+ worktreePath: Schema7.NullOr(TrimmedNonEmptyString),
399
+ createdAt: IsoDateTime
400
+ });
401
+ var ThreadDeleteCommand = Schema7.Struct({
402
+ type: Schema7.Literal("thread.delete"),
403
+ commandId: CommandId,
404
+ threadId: ThreadId
405
+ });
406
+ var ThreadMetaUpdateCommand = Schema7.Struct({
407
+ type: Schema7.Literal("thread.meta.update"),
408
+ commandId: CommandId,
409
+ threadId: ThreadId,
410
+ title: Schema7.optional(TrimmedNonEmptyString),
411
+ model: Schema7.optional(TrimmedNonEmptyString),
412
+ branch: Schema7.optional(Schema7.NullOr(TrimmedNonEmptyString)),
413
+ worktreePath: Schema7.optional(Schema7.NullOr(TrimmedNonEmptyString))
414
+ });
415
+ var ThreadRuntimeModeSetCommand = Schema7.Struct({
416
+ type: Schema7.Literal("thread.runtime-mode.set"),
417
+ commandId: CommandId,
418
+ threadId: ThreadId,
419
+ runtimeMode: RuntimeMode,
420
+ createdAt: IsoDateTime
421
+ });
422
+ var ThreadInteractionModeSetCommand = Schema7.Struct({
423
+ type: Schema7.Literal("thread.interaction-mode.set"),
424
+ commandId: CommandId,
425
+ threadId: ThreadId,
426
+ interactionMode: ProviderInteractionMode,
427
+ createdAt: IsoDateTime
428
+ });
429
+ var ThreadTurnStartCommand = Schema7.Struct({
430
+ type: Schema7.Literal("thread.turn.start"),
431
+ commandId: CommandId,
432
+ threadId: ThreadId,
433
+ message: Schema7.Struct({
434
+ messageId: MessageId,
435
+ role: Schema7.Literal("user"),
436
+ text: Schema7.String,
437
+ attachments: Schema7.Array(ChatAttachment)
438
+ }),
439
+ provider: Schema7.optional(ProviderKind),
440
+ model: Schema7.optional(TrimmedNonEmptyString),
441
+ serviceTier: Schema7.optional(Schema7.NullOr(ProviderServiceTier)),
442
+ modelOptions: Schema7.optional(ProviderModelOptions),
443
+ assistantDeliveryMode: Schema7.optional(AssistantDeliveryMode),
444
+ runtimeMode: RuntimeMode.pipe(Schema7.withDecodingDefault(() => DEFAULT_RUNTIME_MODE)),
445
+ interactionMode: ProviderInteractionMode.pipe(Schema7.withDecodingDefault(() => DEFAULT_PROVIDER_INTERACTION_MODE)),
446
+ createdAt: IsoDateTime
447
+ });
448
+ var ClientThreadTurnStartCommand = Schema7.Struct({
449
+ type: Schema7.Literal("thread.turn.start"),
450
+ commandId: CommandId,
451
+ threadId: ThreadId,
452
+ message: Schema7.Struct({
453
+ messageId: MessageId,
454
+ role: Schema7.Literal("user"),
455
+ text: Schema7.String,
456
+ attachments: Schema7.Array(UploadChatAttachment)
457
+ }),
458
+ provider: Schema7.optional(ProviderKind),
459
+ model: Schema7.optional(TrimmedNonEmptyString),
460
+ serviceTier: Schema7.optional(Schema7.NullOr(ProviderServiceTier)),
461
+ modelOptions: Schema7.optional(ProviderModelOptions),
462
+ assistantDeliveryMode: Schema7.optional(AssistantDeliveryMode),
463
+ runtimeMode: RuntimeMode,
464
+ interactionMode: ProviderInteractionMode,
465
+ createdAt: IsoDateTime
466
+ });
467
+ var ThreadTurnInterruptCommand = Schema7.Struct({
468
+ type: Schema7.Literal("thread.turn.interrupt"),
469
+ commandId: CommandId,
470
+ threadId: ThreadId,
471
+ turnId: Schema7.optional(TurnId),
472
+ createdAt: IsoDateTime
473
+ });
474
+ var ThreadApprovalRespondCommand = Schema7.Struct({
475
+ type: Schema7.Literal("thread.approval.respond"),
476
+ commandId: CommandId,
477
+ threadId: ThreadId,
478
+ requestId: ApprovalRequestId,
479
+ decision: ProviderApprovalDecision,
480
+ createdAt: IsoDateTime
481
+ });
482
+ var ThreadUserInputRespondCommand = Schema7.Struct({
483
+ type: Schema7.Literal("thread.user-input.respond"),
484
+ commandId: CommandId,
485
+ threadId: ThreadId,
486
+ requestId: ApprovalRequestId,
487
+ answers: ProviderUserInputAnswers,
488
+ createdAt: IsoDateTime
489
+ });
490
+ var ThreadCheckpointRevertCommand = Schema7.Struct({
491
+ type: Schema7.Literal("thread.checkpoint.revert"),
492
+ commandId: CommandId,
493
+ threadId: ThreadId,
494
+ turnCount: NonNegativeInt,
495
+ createdAt: IsoDateTime
496
+ });
497
+ var ThreadSessionStopCommand = Schema7.Struct({
498
+ type: Schema7.Literal("thread.session.stop"),
499
+ commandId: CommandId,
500
+ threadId: ThreadId,
501
+ createdAt: IsoDateTime
502
+ });
503
+ var DispatchableClientOrchestrationCommand = Schema7.Union([
504
+ ProjectCreateCommand,
505
+ ProjectMetaUpdateCommand,
506
+ ProjectDeleteCommand,
507
+ ThreadCreateCommand,
508
+ ThreadDeleteCommand,
509
+ ThreadMetaUpdateCommand,
510
+ ThreadRuntimeModeSetCommand,
511
+ ThreadInteractionModeSetCommand,
512
+ ThreadTurnStartCommand,
513
+ ThreadTurnInterruptCommand,
514
+ ThreadApprovalRespondCommand,
515
+ ThreadUserInputRespondCommand,
516
+ ThreadCheckpointRevertCommand,
517
+ ThreadSessionStopCommand
518
+ ]);
519
+ var ClientOrchestrationCommand = Schema7.Union([
520
+ ProjectCreateCommand,
521
+ ProjectMetaUpdateCommand,
522
+ ProjectDeleteCommand,
523
+ ThreadCreateCommand,
524
+ ThreadDeleteCommand,
525
+ ThreadMetaUpdateCommand,
526
+ ThreadRuntimeModeSetCommand,
527
+ ThreadInteractionModeSetCommand,
528
+ ClientThreadTurnStartCommand,
529
+ ThreadTurnInterruptCommand,
530
+ ThreadApprovalRespondCommand,
531
+ ThreadUserInputRespondCommand,
532
+ ThreadCheckpointRevertCommand,
533
+ ThreadSessionStopCommand
534
+ ]);
535
+ var ThreadSessionSetCommand = Schema7.Struct({
536
+ type: Schema7.Literal("thread.session.set"),
537
+ commandId: CommandId,
538
+ threadId: ThreadId,
539
+ session: OrchestrationSession,
540
+ createdAt: IsoDateTime
541
+ });
542
+ var ThreadMessageAssistantDeltaCommand = Schema7.Struct({
543
+ type: Schema7.Literal("thread.message.assistant.delta"),
544
+ commandId: CommandId,
545
+ threadId: ThreadId,
546
+ messageId: MessageId,
547
+ delta: Schema7.String,
548
+ turnId: Schema7.optional(TurnId),
549
+ createdAt: IsoDateTime
550
+ });
551
+ var ThreadMessageAssistantCompleteCommand = Schema7.Struct({
552
+ type: Schema7.Literal("thread.message.assistant.complete"),
553
+ commandId: CommandId,
554
+ threadId: ThreadId,
555
+ messageId: MessageId,
556
+ turnId: Schema7.optional(TurnId),
557
+ createdAt: IsoDateTime
558
+ });
559
+ var ThreadProposedPlanUpsertCommand = Schema7.Struct({
560
+ type: Schema7.Literal("thread.proposed-plan.upsert"),
561
+ commandId: CommandId,
562
+ threadId: ThreadId,
563
+ proposedPlan: OrchestrationProposedPlan,
564
+ createdAt: IsoDateTime
565
+ });
566
+ var ThreadTurnDiffCompleteCommand = Schema7.Struct({
567
+ type: Schema7.Literal("thread.turn.diff.complete"),
568
+ commandId: CommandId,
569
+ threadId: ThreadId,
570
+ turnId: TurnId,
571
+ completedAt: IsoDateTime,
572
+ checkpointRef: CheckpointRef,
573
+ status: OrchestrationCheckpointStatus,
574
+ files: Schema7.Array(OrchestrationCheckpointFile),
575
+ assistantMessageId: Schema7.optional(MessageId),
576
+ checkpointTurnCount: NonNegativeInt,
577
+ createdAt: IsoDateTime
578
+ });
579
+ var ThreadActivityAppendCommand = Schema7.Struct({
580
+ type: Schema7.Literal("thread.activity.append"),
581
+ commandId: CommandId,
582
+ threadId: ThreadId,
583
+ activity: OrchestrationThreadActivity,
584
+ createdAt: IsoDateTime
585
+ });
586
+ var ThreadRevertCompleteCommand = Schema7.Struct({
587
+ type: Schema7.Literal("thread.revert.complete"),
588
+ commandId: CommandId,
589
+ threadId: ThreadId,
590
+ turnCount: NonNegativeInt,
591
+ createdAt: IsoDateTime
592
+ });
593
+ var InternalOrchestrationCommand = Schema7.Union([
594
+ ThreadSessionSetCommand,
595
+ ThreadMessageAssistantDeltaCommand,
596
+ ThreadMessageAssistantCompleteCommand,
597
+ ThreadProposedPlanUpsertCommand,
598
+ ThreadTurnDiffCompleteCommand,
599
+ ThreadActivityAppendCommand,
600
+ ThreadRevertCompleteCommand
601
+ ]);
602
+ var OrchestrationCommand = Schema7.Union([
603
+ DispatchableClientOrchestrationCommand,
604
+ InternalOrchestrationCommand
605
+ ]);
606
+ var OrchestrationEventType = Schema7.Literals([
607
+ "project.created",
608
+ "project.meta-updated",
609
+ "project.deleted",
610
+ "thread.created",
611
+ "thread.deleted",
612
+ "thread.meta-updated",
613
+ "thread.runtime-mode-set",
614
+ "thread.interaction-mode-set",
615
+ "thread.message-sent",
616
+ "thread.turn-start-requested",
617
+ "thread.turn-interrupt-requested",
618
+ "thread.approval-response-requested",
619
+ "thread.user-input-response-requested",
620
+ "thread.checkpoint-revert-requested",
621
+ "thread.reverted",
622
+ "thread.session-stop-requested",
623
+ "thread.session-set",
624
+ "thread.proposed-plan-upserted",
625
+ "thread.turn-diff-completed",
626
+ "thread.activity-appended"
627
+ ]);
628
+ var OrchestrationAggregateKind = Schema7.Literals(["project", "thread"]);
629
+ var OrchestrationActorKind = Schema7.Literals(["client", "server", "provider"]);
630
+ var ProjectCreatedPayload = Schema7.Struct({
631
+ projectId: ProjectId,
632
+ title: TrimmedNonEmptyString,
633
+ workspaceRoot: TrimmedNonEmptyString,
634
+ defaultModel: Schema7.NullOr(TrimmedNonEmptyString),
635
+ scripts: Schema7.Array(ProjectScript),
636
+ createdAt: IsoDateTime,
637
+ updatedAt: IsoDateTime
638
+ });
639
+ var ProjectMetaUpdatedPayload = Schema7.Struct({
640
+ projectId: ProjectId,
641
+ title: Schema7.optional(TrimmedNonEmptyString),
642
+ workspaceRoot: Schema7.optional(TrimmedNonEmptyString),
643
+ defaultModel: Schema7.optional(Schema7.NullOr(TrimmedNonEmptyString)),
644
+ scripts: Schema7.optional(Schema7.Array(ProjectScript)),
645
+ updatedAt: IsoDateTime
646
+ });
647
+ var ProjectDeletedPayload = Schema7.Struct({
648
+ projectId: ProjectId,
649
+ deletedAt: IsoDateTime
650
+ });
651
+ var ThreadCreatedPayload = Schema7.Struct({
652
+ threadId: ThreadId,
653
+ projectId: ProjectId,
654
+ title: TrimmedNonEmptyString,
655
+ model: TrimmedNonEmptyString,
656
+ runtimeMode: RuntimeMode.pipe(Schema7.withDecodingDefault(() => DEFAULT_RUNTIME_MODE)),
657
+ interactionMode: ProviderInteractionMode.pipe(Schema7.withDecodingDefault(() => DEFAULT_PROVIDER_INTERACTION_MODE)),
658
+ branch: Schema7.NullOr(TrimmedNonEmptyString),
659
+ worktreePath: Schema7.NullOr(TrimmedNonEmptyString),
660
+ createdAt: IsoDateTime,
661
+ updatedAt: IsoDateTime
662
+ });
663
+ var ThreadDeletedPayload = Schema7.Struct({
664
+ threadId: ThreadId,
665
+ deletedAt: IsoDateTime
666
+ });
667
+ var ThreadMetaUpdatedPayload = Schema7.Struct({
668
+ threadId: ThreadId,
669
+ title: Schema7.optional(TrimmedNonEmptyString),
670
+ model: Schema7.optional(TrimmedNonEmptyString),
671
+ branch: Schema7.optional(Schema7.NullOr(TrimmedNonEmptyString)),
672
+ worktreePath: Schema7.optional(Schema7.NullOr(TrimmedNonEmptyString)),
673
+ updatedAt: IsoDateTime
674
+ });
675
+ var ThreadRuntimeModeSetPayload = Schema7.Struct({
676
+ threadId: ThreadId,
677
+ runtimeMode: RuntimeMode,
678
+ updatedAt: IsoDateTime
679
+ });
680
+ var ThreadInteractionModeSetPayload = Schema7.Struct({
681
+ threadId: ThreadId,
682
+ interactionMode: ProviderInteractionMode.pipe(Schema7.withDecodingDefault(() => DEFAULT_PROVIDER_INTERACTION_MODE)),
683
+ updatedAt: IsoDateTime
684
+ });
685
+ var ThreadMessageSentPayload = Schema7.Struct({
686
+ threadId: ThreadId,
687
+ messageId: MessageId,
688
+ role: OrchestrationMessageRole,
689
+ text: Schema7.String,
690
+ attachments: Schema7.optional(Schema7.Array(ChatAttachment)),
691
+ turnId: Schema7.NullOr(TurnId),
692
+ streaming: Schema7.Boolean,
693
+ createdAt: IsoDateTime,
694
+ updatedAt: IsoDateTime
695
+ });
696
+ var ThreadTurnStartRequestedPayload = Schema7.Struct({
697
+ threadId: ThreadId,
698
+ messageId: MessageId,
699
+ provider: Schema7.optional(ProviderKind),
700
+ model: Schema7.optional(TrimmedNonEmptyString),
701
+ serviceTier: Schema7.optional(Schema7.NullOr(ProviderServiceTier)),
702
+ modelOptions: Schema7.optional(ProviderModelOptions),
703
+ assistantDeliveryMode: Schema7.optional(AssistantDeliveryMode),
704
+ runtimeMode: RuntimeMode.pipe(Schema7.withDecodingDefault(() => DEFAULT_RUNTIME_MODE)),
705
+ interactionMode: ProviderInteractionMode.pipe(Schema7.withDecodingDefault(() => DEFAULT_PROVIDER_INTERACTION_MODE)),
706
+ createdAt: IsoDateTime
707
+ });
708
+ var ThreadTurnInterruptRequestedPayload = Schema7.Struct({
709
+ threadId: ThreadId,
710
+ turnId: Schema7.optional(TurnId),
711
+ createdAt: IsoDateTime
712
+ });
713
+ var ThreadApprovalResponseRequestedPayload = Schema7.Struct({
714
+ threadId: ThreadId,
715
+ requestId: ApprovalRequestId,
716
+ decision: ProviderApprovalDecision,
717
+ createdAt: IsoDateTime
718
+ });
719
+ var ThreadUserInputResponseRequestedPayload = Schema7.Struct({
720
+ threadId: ThreadId,
721
+ requestId: ApprovalRequestId,
722
+ answers: ProviderUserInputAnswers,
723
+ createdAt: IsoDateTime
724
+ });
725
+ var ThreadCheckpointRevertRequestedPayload = Schema7.Struct({
726
+ threadId: ThreadId,
727
+ turnCount: NonNegativeInt,
728
+ createdAt: IsoDateTime
729
+ });
730
+ var ThreadRevertedPayload = Schema7.Struct({
731
+ threadId: ThreadId,
732
+ turnCount: NonNegativeInt
733
+ });
734
+ var ThreadSessionStopRequestedPayload = Schema7.Struct({
735
+ threadId: ThreadId,
736
+ createdAt: IsoDateTime
737
+ });
738
+ var ThreadSessionSetPayload = Schema7.Struct({
739
+ threadId: ThreadId,
740
+ session: OrchestrationSession
741
+ });
742
+ var ThreadProposedPlanUpsertedPayload = Schema7.Struct({
743
+ threadId: ThreadId,
744
+ proposedPlan: OrchestrationProposedPlan
745
+ });
746
+ var ThreadTurnDiffCompletedPayload = Schema7.Struct({
747
+ threadId: ThreadId,
748
+ turnId: TurnId,
749
+ checkpointTurnCount: NonNegativeInt,
750
+ checkpointRef: CheckpointRef,
751
+ status: OrchestrationCheckpointStatus,
752
+ files: Schema7.Array(OrchestrationCheckpointFile),
753
+ assistantMessageId: Schema7.NullOr(MessageId),
754
+ completedAt: IsoDateTime
755
+ });
756
+ var ThreadActivityAppendedPayload = Schema7.Struct({
757
+ threadId: ThreadId,
758
+ activity: OrchestrationThreadActivity
759
+ });
760
+ var OrchestrationEventMetadata = Schema7.Struct({
761
+ providerTurnId: Schema7.optional(TrimmedNonEmptyString),
762
+ providerItemId: Schema7.optional(ProviderItemId),
763
+ adapterKey: Schema7.optional(TrimmedNonEmptyString),
764
+ requestId: Schema7.optional(ApprovalRequestId),
765
+ ingestedAt: Schema7.optional(IsoDateTime)
766
+ });
767
+ var EventBaseFields = {
768
+ sequence: NonNegativeInt,
769
+ eventId: EventId,
770
+ aggregateKind: OrchestrationAggregateKind,
771
+ aggregateId: Schema7.Union([ProjectId, ThreadId]),
772
+ occurredAt: IsoDateTime,
773
+ commandId: Schema7.NullOr(CommandId),
774
+ causationEventId: Schema7.NullOr(EventId),
775
+ correlationId: Schema7.NullOr(CommandId),
776
+ metadata: OrchestrationEventMetadata
777
+ };
778
+ var PersistedEventBaseFields = {
779
+ sequence: NonNegativeInt,
780
+ eventId: EventId,
781
+ aggregateKind: OrchestrationAggregateKind,
782
+ streamId: Schema7.Union([ProjectId, ThreadId]),
783
+ streamVersion: NonNegativeInt,
784
+ occurredAt: IsoDateTime,
785
+ commandId: Schema7.NullOr(CommandId),
786
+ causationEventId: Schema7.NullOr(EventId),
787
+ correlationId: Schema7.NullOr(CommandId),
788
+ actorKind: OrchestrationActorKind,
789
+ metadata: OrchestrationEventMetadata
790
+ };
791
+ var OrchestrationEvent = Schema7.Union([
792
+ Schema7.Struct({
793
+ ...EventBaseFields,
794
+ type: Schema7.Literal("project.created"),
795
+ payload: ProjectCreatedPayload
796
+ }),
797
+ Schema7.Struct({
798
+ ...EventBaseFields,
799
+ type: Schema7.Literal("project.meta-updated"),
800
+ payload: ProjectMetaUpdatedPayload
801
+ }),
802
+ Schema7.Struct({
803
+ ...EventBaseFields,
804
+ type: Schema7.Literal("project.deleted"),
805
+ payload: ProjectDeletedPayload
806
+ }),
807
+ Schema7.Struct({
808
+ ...EventBaseFields,
809
+ type: Schema7.Literal("thread.created"),
810
+ payload: ThreadCreatedPayload
811
+ }),
812
+ Schema7.Struct({
813
+ ...EventBaseFields,
814
+ type: Schema7.Literal("thread.deleted"),
815
+ payload: ThreadDeletedPayload
816
+ }),
817
+ Schema7.Struct({
818
+ ...EventBaseFields,
819
+ type: Schema7.Literal("thread.meta-updated"),
820
+ payload: ThreadMetaUpdatedPayload
821
+ }),
822
+ Schema7.Struct({
823
+ ...EventBaseFields,
824
+ type: Schema7.Literal("thread.runtime-mode-set"),
825
+ payload: ThreadRuntimeModeSetPayload
826
+ }),
827
+ Schema7.Struct({
828
+ ...EventBaseFields,
829
+ type: Schema7.Literal("thread.interaction-mode-set"),
830
+ payload: ThreadInteractionModeSetPayload
831
+ }),
832
+ Schema7.Struct({
833
+ ...EventBaseFields,
834
+ type: Schema7.Literal("thread.message-sent"),
835
+ payload: ThreadMessageSentPayload
836
+ }),
837
+ Schema7.Struct({
838
+ ...EventBaseFields,
839
+ type: Schema7.Literal("thread.turn-start-requested"),
840
+ payload: ThreadTurnStartRequestedPayload
841
+ }),
842
+ Schema7.Struct({
843
+ ...EventBaseFields,
844
+ type: Schema7.Literal("thread.turn-interrupt-requested"),
845
+ payload: ThreadTurnInterruptRequestedPayload
846
+ }),
847
+ Schema7.Struct({
848
+ ...EventBaseFields,
849
+ type: Schema7.Literal("thread.approval-response-requested"),
850
+ payload: ThreadApprovalResponseRequestedPayload
851
+ }),
852
+ Schema7.Struct({
853
+ ...EventBaseFields,
854
+ type: Schema7.Literal("thread.user-input-response-requested"),
855
+ payload: ThreadUserInputResponseRequestedPayload
856
+ }),
857
+ Schema7.Struct({
858
+ ...EventBaseFields,
859
+ type: Schema7.Literal("thread.checkpoint-revert-requested"),
860
+ payload: ThreadCheckpointRevertRequestedPayload
861
+ }),
862
+ Schema7.Struct({
863
+ ...EventBaseFields,
864
+ type: Schema7.Literal("thread.reverted"),
865
+ payload: ThreadRevertedPayload
866
+ }),
867
+ Schema7.Struct({
868
+ ...EventBaseFields,
869
+ type: Schema7.Literal("thread.session-stop-requested"),
870
+ payload: ThreadSessionStopRequestedPayload
871
+ }),
872
+ Schema7.Struct({
873
+ ...EventBaseFields,
874
+ type: Schema7.Literal("thread.session-set"),
875
+ payload: ThreadSessionSetPayload
876
+ }),
877
+ Schema7.Struct({
878
+ ...EventBaseFields,
879
+ type: Schema7.Literal("thread.proposed-plan-upserted"),
880
+ payload: ThreadProposedPlanUpsertedPayload
881
+ }),
882
+ Schema7.Struct({
883
+ ...EventBaseFields,
884
+ type: Schema7.Literal("thread.turn-diff-completed"),
885
+ payload: ThreadTurnDiffCompletedPayload
886
+ }),
887
+ Schema7.Struct({
888
+ ...EventBaseFields,
889
+ type: Schema7.Literal("thread.activity-appended"),
890
+ payload: ThreadActivityAppendedPayload
891
+ })
892
+ ]);
893
+ var OrchestrationPersistedEvent = Schema7.Union([
894
+ Schema7.Struct({
895
+ ...PersistedEventBaseFields,
896
+ eventType: Schema7.Literal("project.created"),
897
+ payload: ProjectCreatedPayload
898
+ }),
899
+ Schema7.Struct({
900
+ ...PersistedEventBaseFields,
901
+ eventType: Schema7.Literal("project.meta-updated"),
902
+ payload: ProjectMetaUpdatedPayload
903
+ }),
904
+ Schema7.Struct({
905
+ ...PersistedEventBaseFields,
906
+ eventType: Schema7.Literal("project.deleted"),
907
+ payload: ProjectDeletedPayload
908
+ }),
909
+ Schema7.Struct({
910
+ ...PersistedEventBaseFields,
911
+ eventType: Schema7.Literal("thread.created"),
912
+ payload: ThreadCreatedPayload
913
+ }),
914
+ Schema7.Struct({
915
+ ...PersistedEventBaseFields,
916
+ eventType: Schema7.Literal("thread.deleted"),
917
+ payload: ThreadDeletedPayload
918
+ }),
919
+ Schema7.Struct({
920
+ ...PersistedEventBaseFields,
921
+ eventType: Schema7.Literal("thread.meta-updated"),
922
+ payload: ThreadMetaUpdatedPayload
923
+ }),
924
+ Schema7.Struct({
925
+ ...PersistedEventBaseFields,
926
+ eventType: Schema7.Literal("thread.runtime-mode-set"),
927
+ payload: ThreadRuntimeModeSetPayload
928
+ }),
929
+ Schema7.Struct({
930
+ ...PersistedEventBaseFields,
931
+ eventType: Schema7.Literal("thread.interaction-mode-set"),
932
+ payload: ThreadInteractionModeSetPayload
933
+ }),
934
+ Schema7.Struct({
935
+ ...PersistedEventBaseFields,
936
+ eventType: Schema7.Literal("thread.message-sent"),
937
+ payload: ThreadMessageSentPayload
938
+ }),
939
+ Schema7.Struct({
940
+ ...PersistedEventBaseFields,
941
+ eventType: Schema7.Literal("thread.turn-start-requested"),
942
+ payload: ThreadTurnStartRequestedPayload
943
+ }),
944
+ Schema7.Struct({
945
+ ...PersistedEventBaseFields,
946
+ eventType: Schema7.Literal("thread.turn-interrupt-requested"),
947
+ payload: ThreadTurnInterruptRequestedPayload
948
+ }),
949
+ Schema7.Struct({
950
+ ...PersistedEventBaseFields,
951
+ eventType: Schema7.Literal("thread.approval-response-requested"),
952
+ payload: ThreadApprovalResponseRequestedPayload
953
+ }),
954
+ Schema7.Struct({
955
+ ...PersistedEventBaseFields,
956
+ eventType: Schema7.Literal("thread.user-input-response-requested"),
957
+ payload: ThreadUserInputResponseRequestedPayload
958
+ }),
959
+ Schema7.Struct({
960
+ ...PersistedEventBaseFields,
961
+ eventType: Schema7.Literal("thread.checkpoint-revert-requested"),
962
+ payload: ThreadCheckpointRevertRequestedPayload
963
+ }),
964
+ Schema7.Struct({
965
+ ...PersistedEventBaseFields,
966
+ eventType: Schema7.Literal("thread.reverted"),
967
+ payload: ThreadRevertedPayload
968
+ }),
969
+ Schema7.Struct({
970
+ ...PersistedEventBaseFields,
971
+ eventType: Schema7.Literal("thread.session-stop-requested"),
972
+ payload: ThreadSessionStopRequestedPayload
973
+ }),
974
+ Schema7.Struct({
975
+ ...PersistedEventBaseFields,
976
+ eventType: Schema7.Literal("thread.session-set"),
977
+ payload: ThreadSessionSetPayload
978
+ }),
979
+ Schema7.Struct({
980
+ ...PersistedEventBaseFields,
981
+ eventType: Schema7.Literal("thread.proposed-plan-upserted"),
982
+ payload: ThreadProposedPlanUpsertedPayload
983
+ }),
984
+ Schema7.Struct({
985
+ ...PersistedEventBaseFields,
986
+ eventType: Schema7.Literal("thread.turn-diff-completed"),
987
+ payload: ThreadTurnDiffCompletedPayload
988
+ }),
989
+ Schema7.Struct({
990
+ ...PersistedEventBaseFields,
991
+ eventType: Schema7.Literal("thread.activity-appended"),
992
+ payload: ThreadActivityAppendedPayload
993
+ })
994
+ ]);
995
+ var OrchestrationCommandReceiptStatus = Schema7.Literals(["accepted", "rejected"]);
996
+ var TurnCountRange = Schema7.Struct({
997
+ fromTurnCount: NonNegativeInt,
998
+ toTurnCount: NonNegativeInt
999
+ }).check(Schema7.makeFilter((input) => input.fromTurnCount <= input.toTurnCount || new SchemaIssue.InvalidValue(Option.some(input.fromTurnCount), {
1000
+ message: "fromTurnCount must be less than or equal to toTurnCount"
1001
+ }), { identifier: "OrchestrationTurnDiffRange" }));
1002
+ var ThreadTurnDiff = TurnCountRange.mapFields(Struct.assign({
1003
+ threadId: ThreadId,
1004
+ diff: Schema7.String
1005
+ }), { unsafePreserveChecks: true });
1006
+ var ProviderSessionRuntimeStatus = Schema7.Literals([
1007
+ "starting",
1008
+ "running",
1009
+ "stopped",
1010
+ "error"
1011
+ ]);
1012
+ var ProjectionThreadTurnStatus = Schema7.Literals([
1013
+ "running",
1014
+ "completed",
1015
+ "interrupted",
1016
+ "error"
1017
+ ]);
1018
+ var ProjectionCheckpointRow = Schema7.Struct({
1019
+ threadId: ThreadId,
1020
+ turnId: TurnId,
1021
+ checkpointTurnCount: NonNegativeInt,
1022
+ checkpointRef: CheckpointRef,
1023
+ status: OrchestrationCheckpointStatus,
1024
+ files: Schema7.Array(OrchestrationCheckpointFile),
1025
+ assistantMessageId: Schema7.NullOr(MessageId),
1026
+ completedAt: IsoDateTime
1027
+ });
1028
+ var ProjectionPendingApprovalStatus = Schema7.Literals(["pending", "resolved"]);
1029
+ var ProjectionPendingApprovalDecision = Schema7.NullOr(ProviderApprovalDecision);
1030
+ var DispatchResult = Schema7.Struct({
1031
+ sequence: NonNegativeInt
1032
+ });
1033
+ var OrchestrationGetSnapshotInput = Schema7.Struct({});
1034
+ var OrchestrationGetTurnDiffInput = TurnCountRange.mapFields(Struct.assign({ threadId: ThreadId }), { unsafePreserveChecks: true });
1035
+ var OrchestrationGetFullThreadDiffInput = Schema7.Struct({
1036
+ threadId: ThreadId,
1037
+ toTurnCount: NonNegativeInt
1038
+ });
1039
+ var OrchestrationReplayEventsInput = Schema7.Struct({
1040
+ fromSequenceExclusive: NonNegativeInt
1041
+ });
1042
+ var OrchestrationReplayEventsResult = Schema7.Array(OrchestrationEvent);
1043
+
1044
+ // packages/contracts/src/review.ts
1045
+ import { Schema as Schema8 } from "effect";
1046
+ var ReviewMode = Schema8.Literals(["off", "advisory", "required"]);
1047
+ var ReviewStatus = Schema8.Literals(["pending", "running", "approved", "rejected", "error"]);
1048
+ var ReviewSummary = Schema8.Struct({
1049
+ id: ReviewResultId,
1050
+ runId: RunId,
1051
+ taskId: Schema8.NullOr(TaskId),
1052
+ provider: TrimmedNonEmptyString,
1053
+ mode: ReviewMode,
1054
+ status: ReviewStatus,
1055
+ summary: Schema8.NullOr(Schema8.String),
1056
+ output: Schema8.Unknown,
1057
+ createdAt: IsoDateTime,
1058
+ completedAt: Schema8.NullOr(IsoDateTime)
1059
+ });
1060
+
1061
+ // packages/contracts/src/runtime.ts
1062
+ import { Schema as Schema9 } from "effect";
1063
+ var RunKind = Schema9.Literals(["adhoc", "task", "batch", "validation", "review"]);
1064
+ var RunMode = Schema9.Literals(["interactive", "autonomous", "supervised"]);
1065
+ var RunStatus = Schema9.Literals([
1066
+ "created",
1067
+ "queued",
1068
+ "preparing",
1069
+ "running",
1070
+ "waiting-approval",
1071
+ "waiting-user-input",
1072
+ "validating",
1073
+ "reviewing",
1074
+ "completed",
1075
+ "failed",
1076
+ "cancelled",
1077
+ "paused"
1078
+ ]);
1079
+ var EngineSandboxMode = Schema9.Literals([
1080
+ "read-only",
1081
+ "workspace-write",
1082
+ "danger-full-access"
1083
+ ]);
1084
+ var IsolationMode = Schema9.Literals(["none", "env", "worktree"]);
1085
+ var RuntimeStatus = Schema9.Literals([
1086
+ "prepared",
1087
+ "starting",
1088
+ "running",
1089
+ "interrupted",
1090
+ "exited",
1091
+ "failed",
1092
+ "destroyed"
1093
+ ]);
1094
+ var RunExecutionTarget = Schema9.Literals(["local", "remote"]);
1095
+ var RunSummary = Schema9.Struct({
1096
+ id: RunId,
1097
+ workspaceId: WorkspaceId,
1098
+ taskId: Schema9.NullOr(TaskId),
1099
+ title: TrimmedNonEmptyString,
1100
+ runKind: RunKind,
1101
+ mode: RunMode,
1102
+ runtimeMode: RuntimeMode,
1103
+ interactionMode: ProviderInteractionMode,
1104
+ status: RunStatus,
1105
+ runtimeAdapter: TrimmedNonEmptyString,
1106
+ model: Schema9.NullOr(TrimmedNonEmptyString),
1107
+ initialPrompt: Schema9.NullOr(Schema9.String),
1108
+ executionTarget: Schema9.optional(RunExecutionTarget),
1109
+ remoteHostId: Schema9.optional(Schema9.NullOr(TrimmedNonEmptyString)),
1110
+ remoteLeaseId: Schema9.optional(Schema9.NullOr(TrimmedNonEmptyString)),
1111
+ remoteLeaseClaimedAt: Schema9.optional(Schema9.NullOr(IsoDateTime)),
1112
+ activeRuntimeId: Schema9.NullOr(EngineRuntimeId),
1113
+ latestMessageId: Schema9.NullOr(TrimmedNonEmptyString),
1114
+ pendingApprovalCount: NonNegativeInt,
1115
+ pendingUserInputCount: NonNegativeInt,
1116
+ branch: Schema9.NullOr(TrimmedNonEmptyString),
1117
+ worktreePath: Schema9.NullOr(TrimmedNonEmptyString),
1118
+ errorText: Schema9.NullOr(Schema9.String),
1119
+ createdAt: IsoDateTime,
1120
+ updatedAt: IsoDateTime,
1121
+ startedAt: Schema9.NullOr(IsoDateTime),
1122
+ completedAt: Schema9.NullOr(IsoDateTime)
1123
+ });
1124
+ var RuntimeSummary = Schema9.Struct({
1125
+ id: EngineRuntimeId,
1126
+ workspaceId: WorkspaceId,
1127
+ runId: RunId,
1128
+ adapterKind: TrimmedNonEmptyString,
1129
+ executionTarget: Schema9.optional(RunExecutionTarget),
1130
+ remoteHostId: Schema9.optional(Schema9.NullOr(TrimmedNonEmptyString)),
1131
+ status: RuntimeStatus,
1132
+ sandboxMode: EngineSandboxMode,
1133
+ isolationMode: IsolationMode,
1134
+ workspaceDir: Schema9.NullOr(TrimmedNonEmptyString),
1135
+ homeDir: Schema9.NullOr(TrimmedNonEmptyString),
1136
+ tmpDir: Schema9.NullOr(TrimmedNonEmptyString),
1137
+ cacheDir: Schema9.NullOr(TrimmedNonEmptyString),
1138
+ logsDir: Schema9.NullOr(TrimmedNonEmptyString),
1139
+ stateDir: Schema9.NullOr(TrimmedNonEmptyString),
1140
+ sessionDir: Schema9.NullOr(TrimmedNonEmptyString),
1141
+ sessionLogPath: Schema9.NullOr(TrimmedNonEmptyString),
1142
+ pid: Schema9.NullOr(NonNegativeInt),
1143
+ startedAt: Schema9.NullOr(IsoDateTime),
1144
+ updatedAt: IsoDateTime,
1145
+ exitedAt: Schema9.NullOr(IsoDateTime)
1146
+ });
1147
+ var ApprovalStatus = Schema9.Literals(["pending", "resolved"]);
1148
+ var ApprovalSummary = Schema9.Struct({
1149
+ id: TrimmedNonEmptyString,
1150
+ runId: RunId,
1151
+ actionId: Schema9.NullOr(TrimmedNonEmptyString),
1152
+ requestKind: TrimmedNonEmptyString,
1153
+ status: ApprovalStatus,
1154
+ payload: Schema9.Unknown,
1155
+ createdAt: IsoDateTime,
1156
+ resolvedAt: Schema9.NullOr(IsoDateTime)
1157
+ });
1158
+ var UserInputRequestSummary = Schema9.Struct({
1159
+ id: TrimmedNonEmptyString,
1160
+ runId: RunId,
1161
+ status: ApprovalStatus,
1162
+ payload: Schema9.Unknown,
1163
+ createdAt: IsoDateTime,
1164
+ resolvedAt: Schema9.NullOr(IsoDateTime)
1165
+ });
1166
+ var WorktreeSummary = Schema9.Struct({
1167
+ id: WorktreeId,
1168
+ workspaceId: WorkspaceId,
1169
+ runId: RunId,
1170
+ taskId: Schema9.NullOr(TaskId),
1171
+ branchName: TrimmedNonEmptyString,
1172
+ path: TrimmedNonEmptyString,
1173
+ status: TrimmedNonEmptyString,
1174
+ createdAt: IsoDateTime,
1175
+ cleanedAt: Schema9.NullOr(IsoDateTime)
1176
+ });
1177
+
1178
+ // packages/contracts/src/validation.ts
1179
+ import { Schema as Schema10 } from "effect";
1180
+ var ValidationStatus = Schema10.Literals([
1181
+ "pending",
1182
+ "running",
1183
+ "passed",
1184
+ "failed",
1185
+ "skipped"
1186
+ ]);
1187
+ var ValidationSummary = Schema10.Struct({
1188
+ id: ValidationResultId,
1189
+ runId: RunId,
1190
+ taskId: Schema10.NullOr(TaskId),
1191
+ validatorKey: TrimmedNonEmptyString,
1192
+ status: ValidationStatus,
1193
+ output: Schema10.Unknown,
1194
+ startedAt: IsoDateTime,
1195
+ completedAt: Schema10.NullOr(IsoDateTime)
1196
+ });
1197
+
1198
+ // packages/contracts/src/remote.ts
1199
+ import { Schema as Schema12 } from "effect";
1200
+
1201
+ // packages/contracts/src/workspace.ts
1202
+ import { Schema as Schema11 } from "effect";
1203
+ var WorkspaceSourceKind = Schema11.Literals(["native", "rig-import", "manual", "remote"]);
1204
+ var WorkspaceTopologyStatus = Schema11.Literals(["empty", "ready", "degraded"]);
1205
+ var WorkspaceRemoteFleetStatus = Schema11.Literals(["empty", "ready", "degraded"]);
1206
+ var WorkspaceServiceFabricStatus = Schema11.Literals([
1207
+ "empty",
1208
+ "booting",
1209
+ "ready",
1210
+ "degraded",
1211
+ "stopped"
1212
+ ]);
1213
+ var WorkspaceRemoteHostStatus = Schema11.Literals([
1214
+ "registering",
1215
+ "ready",
1216
+ "busy",
1217
+ "degraded",
1218
+ "draining",
1219
+ "offline",
1220
+ "quarantined"
1221
+ ]);
1222
+ var WorkspaceTopologyServiceSummary = Schema11.Struct({
1223
+ name: TrimmedNonEmptyString,
1224
+ relativeRootPath: TrimmedNonEmptyString,
1225
+ runtime: TrimmedNonEmptyString,
1226
+ port: Schema11.NullOr(Schema11.Number),
1227
+ healthcheck: Schema11.NullOr(TrimmedNonEmptyString),
1228
+ sourceOfTruth: Schema11.Struct({
1229
+ code: Schema11.NullOr(TrimmedNonEmptyString),
1230
+ tests: Schema11.NullOr(TrimmedNonEmptyString),
1231
+ infra: Schema11.NullOr(TrimmedNonEmptyString),
1232
+ deploy: Schema11.NullOr(TrimmedNonEmptyString),
1233
+ dependencies: Schema11.NullOr(TrimmedNonEmptyString)
1234
+ }),
1235
+ splitReadyChecklist: Schema11.Array(TrimmedNonEmptyString)
1236
+ });
1237
+ var WorkspaceTopologySummary = Schema11.Struct({
1238
+ compiledAt: IsoDateTime,
1239
+ status: WorkspaceTopologyStatus,
1240
+ manifestCount: Schema11.Number,
1241
+ serviceCount: Schema11.Number,
1242
+ services: Schema11.Array(WorkspaceTopologyServiceSummary),
1243
+ warnings: Schema11.Array(Schema11.String)
1244
+ });
1245
+ var WorkspaceRemoteHostSummary = Schema11.Struct({
1246
+ id: TrimmedNonEmptyString,
1247
+ name: TrimmedNonEmptyString,
1248
+ baseUrl: TrimmedNonEmptyString,
1249
+ workspacePath: Schema11.NullOr(TrimmedNonEmptyString),
1250
+ transport: TrimmedNonEmptyString,
1251
+ hostname: Schema11.NullOr(TrimmedNonEmptyString),
1252
+ region: Schema11.NullOr(TrimmedNonEmptyString),
1253
+ labels: Schema11.Array(TrimmedNonEmptyString),
1254
+ capabilities: Schema11.Array(TrimmedNonEmptyString),
1255
+ runtimeAdapters: Schema11.Array(TrimmedNonEmptyString),
1256
+ status: WorkspaceRemoteHostStatus,
1257
+ currentLeaseCount: Schema11.Number,
1258
+ lastHeartbeatAt: Schema11.NullOr(IsoDateTime),
1259
+ registeredAt: IsoDateTime,
1260
+ manifestPath: TrimmedNonEmptyString
1261
+ });
1262
+ var WorkspaceRemoteFleetSummary = Schema11.Struct({
1263
+ updatedAt: IsoDateTime,
1264
+ status: WorkspaceRemoteFleetStatus,
1265
+ manifestCount: Schema11.Number,
1266
+ hostCount: Schema11.Number,
1267
+ onlineHostCount: Schema11.Number,
1268
+ hosts: Schema11.Array(WorkspaceRemoteHostSummary),
1269
+ warnings: Schema11.Array(Schema11.String)
1270
+ });
1271
+ var WorkspaceServiceFabricServiceSummary = Schema11.Struct({
1272
+ name: TrimmedNonEmptyString,
1273
+ relativeRootPath: TrimmedNonEmptyString,
1274
+ mode: Schema11.Literals(["stub", "process"]),
1275
+ port: Schema11.Number,
1276
+ healthcheck: TrimmedNonEmptyString,
1277
+ routePrefix: Schema11.NullOr(TrimmedNonEmptyString),
1278
+ status: Schema11.Literals(["planned", "booting", "healthy", "degraded", "failed", "stopped"]),
1279
+ pid: Schema11.NullOr(Schema11.Number),
1280
+ logPath: Schema11.NullOr(TrimmedNonEmptyString)
1281
+ });
1282
+ var WorkspaceServiceFabricSummary = Schema11.Struct({
1283
+ updatedAt: IsoDateTime,
1284
+ status: WorkspaceServiceFabricStatus,
1285
+ serviceCount: Schema11.Number,
1286
+ healthyServiceCount: Schema11.Number,
1287
+ stateDir: TrimmedNonEmptyString,
1288
+ services: Schema11.Array(WorkspaceServiceFabricServiceSummary),
1289
+ warnings: Schema11.Array(Schema11.String)
1290
+ });
1291
+ var WorkspaceSummary = Schema11.Struct({
1292
+ id: WorkspaceId,
1293
+ title: TrimmedNonEmptyString,
1294
+ rootPath: TrimmedNonEmptyString,
1295
+ sourceKind: WorkspaceSourceKind,
1296
+ defaultRuntimeAdapter: Schema11.optional(TrimmedNonEmptyString),
1297
+ defaultProvider: Schema11.optional(ProviderKind),
1298
+ defaultModel: Schema11.NullOr(TrimmedNonEmptyString),
1299
+ topology: Schema11.optional(WorkspaceTopologySummary),
1300
+ remoteFleet: Schema11.optional(WorkspaceRemoteFleetSummary),
1301
+ serviceFabric: Schema11.optional(WorkspaceServiceFabricSummary),
1302
+ createdAt: IsoDateTime,
1303
+ updatedAt: IsoDateTime
1304
+ });
1305
+
1306
+ // packages/contracts/src/remote.ts
1307
+ var RemoteEndpoint = Schema12.Struct({
1308
+ id: RemoteEndpointId,
1309
+ alias: TrimmedNonEmptyString,
1310
+ host: TrimmedNonEmptyString,
1311
+ port: Schema12.Int.check(Schema12.isGreaterThanOrEqualTo(1)).check(Schema12.isLessThanOrEqualTo(65535)),
1312
+ token: Schema12.String,
1313
+ tokenConfigured: Schema12.optional(Schema12.Boolean),
1314
+ autoConnect: Schema12.optional(Schema12.Boolean),
1315
+ addedAt: IsoDateTime,
1316
+ lastConnectedAt: Schema12.NullOr(IsoDateTime)
1317
+ });
1318
+ var RemoteConnectionStatus = Schema12.Literals([
1319
+ "disconnected",
1320
+ "connecting",
1321
+ "authenticating",
1322
+ "connected",
1323
+ "reconnecting",
1324
+ "error"
1325
+ ]);
1326
+ var RemoteConnectionSummary = Schema12.Struct({
1327
+ endpointId: RemoteEndpointId,
1328
+ status: RemoteConnectionStatus,
1329
+ error: Schema12.NullOr(Schema12.String),
1330
+ connectedAt: Schema12.NullOr(IsoDateTime),
1331
+ tokenExpiresAt: Schema12.NullOr(IsoDateTime),
1332
+ latencyMs: Schema12.NullOr(Schema12.Number),
1333
+ subscribedEvents: Schema12.Array(Schema12.String)
1334
+ });
1335
+ var RemoteConnectionStatusChanged = Schema12.Struct({
1336
+ endpointId: Schema12.String,
1337
+ endpointAlias: Schema12.String,
1338
+ status: RemoteConnectionStatus,
1339
+ previousStatus: RemoteConnectionStatus,
1340
+ error: Schema12.NullOr(Schema12.String),
1341
+ connectedAt: Schema12.NullOr(Schema12.String),
1342
+ latencyMs: Schema12.NullOr(Schema12.Number),
1343
+ timestamp: Schema12.String
1344
+ });
1345
+ var EnrichedRemoteEvent = Schema12.Struct({
1346
+ endpointId: Schema12.String,
1347
+ endpointAlias: Schema12.String,
1348
+ receivedAt: Schema12.String,
1349
+ originalTimestamp: Schema12.optional(Schema12.NullOr(Schema12.String)),
1350
+ event: Schema12.Unknown
1351
+ });
1352
+ var RemoteOrchestratorState = Schema12.Struct({
1353
+ activeTaskId: Schema12.NullOr(Schema12.String),
1354
+ activeIteration: Schema12.NullOr(Schema12.Number),
1355
+ maxIterations: Schema12.Number,
1356
+ isPaused: Schema12.Boolean,
1357
+ isRunning: Schema12.Boolean,
1358
+ totalCompleted: NonNegativeInt,
1359
+ totalFailed: NonNegativeInt,
1360
+ lastActivity: Schema12.NullOr(IsoDateTime)
1361
+ });
1362
+ var RemoteOrchestrationSummary = Schema12.Struct({
1363
+ orchestrationId: TrimmedNonEmptyString,
1364
+ endpointId: RemoteEndpointId,
1365
+ status: Schema12.Literals(["running", "paused", "stopped", "completed"]),
1366
+ totalTasks: NonNegativeInt,
1367
+ totalGroups: NonNegativeInt,
1368
+ maxParallelism: NonNegativeInt,
1369
+ startedAt: IsoDateTime
1370
+ });
1371
+ var RemoteIterationOutput = Schema12.Struct({
1372
+ taskId: Schema12.optional(Schema12.String),
1373
+ iteration: Schema12.optional(Schema12.Number),
1374
+ output: Schema12.optional(Schema12.String),
1375
+ startedAt: Schema12.optional(IsoDateTime),
1376
+ endedAt: Schema12.optional(IsoDateTime),
1377
+ durationMs: Schema12.optional(Schema12.Number),
1378
+ isRunning: Schema12.optional(Schema12.Boolean)
1379
+ });
1380
+ var RemoteRunnerRegisterInput = Schema12.Struct({
1381
+ workspaceId: WorkspaceId,
1382
+ hostId: TrimmedNonEmptyString,
1383
+ name: TrimmedNonEmptyString,
1384
+ baseUrl: TrimmedNonEmptyString,
1385
+ workspacePath: Schema12.optional(TrimmedNonEmptyString),
1386
+ transport: Schema12.optional(TrimmedNonEmptyString),
1387
+ hostname: Schema12.optional(TrimmedNonEmptyString),
1388
+ region: Schema12.optional(TrimmedNonEmptyString),
1389
+ labels: Schema12.optional(Schema12.Array(TrimmedNonEmptyString)),
1390
+ capabilities: Schema12.optional(Schema12.Array(TrimmedNonEmptyString)),
1391
+ runtimeAdapters: Schema12.optional(Schema12.Array(TrimmedNonEmptyString)),
1392
+ status: Schema12.optional(WorkspaceRemoteHostStatus),
1393
+ currentLeaseCount: Schema12.optional(Schema12.Number)
1394
+ });
1395
+ var RemoteRunnerHeartbeatInput = Schema12.Struct({
1396
+ workspaceId: WorkspaceId,
1397
+ hostId: TrimmedNonEmptyString,
1398
+ status: WorkspaceRemoteHostStatus,
1399
+ currentLeaseCount: Schema12.optional(Schema12.Number),
1400
+ observedAt: Schema12.optional(IsoDateTime)
1401
+ });
1402
+ var RemoteRunnerLifecycleResult = Schema12.Struct({
1403
+ ok: Schema12.Boolean,
1404
+ workspaceId: WorkspaceId,
1405
+ hostId: TrimmedNonEmptyString,
1406
+ acceptedAt: IsoDateTime,
1407
+ heartbeatIntervalMs: Schema12.Number
1408
+ });
1409
+ var RemoteRunClaimInput = Schema12.Struct({
1410
+ workspaceId: WorkspaceId,
1411
+ hostId: TrimmedNonEmptyString,
1412
+ runtimeAdapters: Schema12.optional(Schema12.Array(TrimmedNonEmptyString))
1413
+ });
1414
+ var RemoteRunLeaseSummary = Schema12.Struct({
1415
+ leaseId: TrimmedNonEmptyString,
1416
+ runId: TrimmedNonEmptyString,
1417
+ workspaceId: WorkspaceId,
1418
+ title: TrimmedNonEmptyString,
1419
+ runtimeAdapter: TrimmedNonEmptyString,
1420
+ model: Schema12.NullOr(TrimmedNonEmptyString),
1421
+ runtimeMode: RuntimeMode,
1422
+ interactionMode: ProviderInteractionMode,
1423
+ executionTarget: RunExecutionTarget,
1424
+ remoteHostId: Schema12.NullOr(TrimmedNonEmptyString),
1425
+ claimedAt: IsoDateTime
1426
+ });
1427
+ var RemoteRunConversationEntry = Schema12.Struct({
1428
+ role: Schema12.Literals(["user", "assistant", "system"]),
1429
+ text: Schema12.String,
1430
+ createdAt: IsoDateTime
1431
+ });
1432
+ var RemoteRunExecutionBundle = Schema12.Struct({
1433
+ workspaceId: WorkspaceId,
1434
+ runId: TrimmedNonEmptyString,
1435
+ leaseId: TrimmedNonEmptyString,
1436
+ workspacePath: Schema12.NullOr(TrimmedNonEmptyString),
1437
+ runtimeAdapter: TrimmedNonEmptyString,
1438
+ model: Schema12.NullOr(TrimmedNonEmptyString),
1439
+ runtimeMode: RuntimeMode,
1440
+ interactionMode: ProviderInteractionMode,
1441
+ prompt: Schema12.String,
1442
+ conversation: Schema12.Array(RemoteRunConversationEntry),
1443
+ taskId: Schema12.NullOr(TrimmedNonEmptyString),
1444
+ taskTitle: Schema12.NullOr(TrimmedNonEmptyString)
1445
+ });
1446
+ var RemoteRunClaimResult = Schema12.Struct({
1447
+ ok: Schema12.Boolean,
1448
+ workspaceId: WorkspaceId,
1449
+ hostId: TrimmedNonEmptyString,
1450
+ acceptedAt: IsoDateTime,
1451
+ lease: Schema12.NullOr(RemoteRunLeaseSummary),
1452
+ bundle: Schema12.NullOr(RemoteRunExecutionBundle)
1453
+ });
1454
+ var RemoteRunReleaseInput = Schema12.Struct({
1455
+ workspaceId: WorkspaceId,
1456
+ hostId: TrimmedNonEmptyString,
1457
+ runId: TrimmedNonEmptyString,
1458
+ leaseId: TrimmedNonEmptyString,
1459
+ status: Schema12.optional(WorkspaceRemoteHostStatus)
1460
+ });
1461
+ var RemoteRunReleaseResult = Schema12.Struct({
1462
+ ok: Schema12.Boolean,
1463
+ workspaceId: WorkspaceId,
1464
+ hostId: TrimmedNonEmptyString,
1465
+ runId: TrimmedNonEmptyString,
1466
+ leaseId: TrimmedNonEmptyString,
1467
+ acceptedAt: IsoDateTime
1468
+ });
1469
+ var RemoteRunStartInput = Schema12.Struct({
1470
+ workspaceId: WorkspaceId,
1471
+ hostId: TrimmedNonEmptyString,
1472
+ runId: TrimmedNonEmptyString,
1473
+ leaseId: TrimmedNonEmptyString
1474
+ });
1475
+ var RemoteRunStartResult = Schema12.Struct({
1476
+ ok: Schema12.Boolean,
1477
+ workspaceId: WorkspaceId,
1478
+ hostId: TrimmedNonEmptyString,
1479
+ runId: TrimmedNonEmptyString,
1480
+ leaseId: TrimmedNonEmptyString,
1481
+ runtimeId: TrimmedNonEmptyString,
1482
+ acceptedAt: IsoDateTime
1483
+ });
1484
+ var RemoteRunLogInput = Schema12.Struct({
1485
+ workspaceId: WorkspaceId,
1486
+ hostId: TrimmedNonEmptyString,
1487
+ runId: TrimmedNonEmptyString,
1488
+ leaseId: TrimmedNonEmptyString,
1489
+ title: TrimmedNonEmptyString,
1490
+ detail: Schema12.optional(Schema12.String),
1491
+ tone: Schema12.optional(EngineLogTone),
1492
+ status: Schema12.optional(TrimmedNonEmptyString),
1493
+ payload: Schema12.optional(Schema12.Unknown)
1494
+ });
1495
+ var RemoteRunMessageInput = Schema12.Struct({
1496
+ workspaceId: WorkspaceId,
1497
+ hostId: TrimmedNonEmptyString,
1498
+ runId: TrimmedNonEmptyString,
1499
+ leaseId: TrimmedNonEmptyString,
1500
+ messageId: Schema12.optional(TrimmedNonEmptyString),
1501
+ text: Schema12.String,
1502
+ state: Schema12.optional(Schema12.Literals(["streaming", "completed"]))
1503
+ });
1504
+ var RemoteRunMutationResult = Schema12.Struct({
1505
+ ok: Schema12.Boolean,
1506
+ workspaceId: WorkspaceId,
1507
+ hostId: TrimmedNonEmptyString,
1508
+ runId: TrimmedNonEmptyString,
1509
+ leaseId: TrimmedNonEmptyString,
1510
+ acceptedAt: IsoDateTime
1511
+ });
1512
+ var RemoteRunCompleteInput = Schema12.Struct({
1513
+ workspaceId: WorkspaceId,
1514
+ hostId: TrimmedNonEmptyString,
1515
+ runId: TrimmedNonEmptyString,
1516
+ leaseId: TrimmedNonEmptyString
1517
+ });
1518
+ var RemoteRunFailInput = Schema12.Struct({
1519
+ workspaceId: WorkspaceId,
1520
+ hostId: TrimmedNonEmptyString,
1521
+ runId: TrimmedNonEmptyString,
1522
+ leaseId: TrimmedNonEmptyString,
1523
+ errorText: Schema12.optional(Schema12.String)
1524
+ });
1525
+ var RemoteRunArtifactInput = Schema12.Struct({
1526
+ workspaceId: WorkspaceId,
1527
+ hostId: TrimmedNonEmptyString,
1528
+ runId: TrimmedNonEmptyString,
1529
+ leaseId: TrimmedNonEmptyString,
1530
+ kind: TrimmedNonEmptyString,
1531
+ label: TrimmedNonEmptyString,
1532
+ filename: TrimmedNonEmptyString,
1533
+ contentType: TrimmedNonEmptyString,
1534
+ contentBase64: TrimmedNonEmptyString
1535
+ });
1536
+ var RemoteRunArtifactResult = Schema12.Struct({
1537
+ ok: Schema12.Boolean,
1538
+ workspaceId: WorkspaceId,
1539
+ hostId: TrimmedNonEmptyString,
1540
+ runId: TrimmedNonEmptyString,
1541
+ leaseId: TrimmedNonEmptyString,
1542
+ acceptedAt: IsoDateTime,
1543
+ artifactPath: TrimmedNonEmptyString
1544
+ });
1545
+ var RemoteRunArtifactSummary = Schema12.Struct({
1546
+ workspaceId: WorkspaceId,
1547
+ runId: TrimmedNonEmptyString,
1548
+ hostId: TrimmedNonEmptyString,
1549
+ leaseId: TrimmedNonEmptyString,
1550
+ kind: TrimmedNonEmptyString,
1551
+ label: TrimmedNonEmptyString,
1552
+ filename: TrimmedNonEmptyString,
1553
+ contentType: TrimmedNonEmptyString,
1554
+ uploadedAt: IsoDateTime,
1555
+ byteSize: Schema12.Number,
1556
+ artifactPath: TrimmedNonEmptyString,
1557
+ downloadPath: TrimmedNonEmptyString
1558
+ });
1559
+ var RemoteRunArtifactsResult = Schema12.Struct({
1560
+ workspaceId: WorkspaceId,
1561
+ runId: TrimmedNonEmptyString,
1562
+ artifacts: Schema12.Array(RemoteRunArtifactSummary)
1563
+ });
1564
+
1565
+ // packages/contracts/src/engine.ts
1566
+ var EngineEvent = Schema13.Struct({
1567
+ id: EventId,
1568
+ sequence: NonNegativeInt,
1569
+ createdAt: IsoDateTime,
1570
+ type: TrimmedNonEmptyString,
1571
+ aggregateId: TrimmedNonEmptyString,
1572
+ payload: Schema13.Unknown
1573
+ });
1574
+ var EngineReadModel = Schema13.Struct({
1575
+ snapshotSequence: NonNegativeInt,
1576
+ workspaces: Schema13.Array(WorkspaceSummary),
1577
+ graphs: Schema13.Array(GraphSummary),
1578
+ tasks: Schema13.Array(TaskSummary),
1579
+ runs: Schema13.Array(RunSummary),
1580
+ runtimes: Schema13.Array(RuntimeSummary),
1581
+ conversations: Schema13.Array(ConversationSummary),
1582
+ messages: Schema13.Array(EngineMessage),
1583
+ actions: Schema13.Array(EngineAction),
1584
+ logs: Schema13.Array(EngineRunLog),
1585
+ approvals: Schema13.Array(ApprovalSummary),
1586
+ userInputs: Schema13.optional(Schema13.Array(UserInputRequestSummary)),
1587
+ validations: Schema13.Array(ValidationSummary),
1588
+ reviews: Schema13.Array(ReviewSummary),
1589
+ artifacts: Schema13.Array(ArtifactSummary),
1590
+ policyDecisions: Schema13.Array(PolicyDecisionSummary),
1591
+ queue: Schema13.Array(QueueEntry),
1592
+ worktrees: Schema13.Array(WorktreeSummary),
1593
+ remoteEndpoints: Schema13.Array(RemoteEndpoint),
1594
+ remoteConnections: Schema13.Array(RemoteConnectionSummary),
1595
+ remoteOrchestrations: Schema13.Array(RemoteOrchestrationSummary),
1596
+ updatedAt: IsoDateTime
1597
+ });
1598
+ var RuntimeAdapterKind = Schema13.Literals(["codex", "claude-code", "pi"]);
1599
+ var WorkspaceRegisterCommand = Schema13.Struct({
1600
+ type: Schema13.Literal("workspace.register"),
1601
+ commandId: CommandId,
1602
+ workspaceId: WorkspaceId,
1603
+ title: TrimmedNonEmptyString,
1604
+ rootPath: TrimmedNonEmptyString,
1605
+ defaultModel: Schema13.optional(TrimmedNonEmptyString),
1606
+ createdAt: IsoDateTime
1607
+ });
1608
+ var WorkspaceImportRigCommand = Schema13.Struct({
1609
+ type: Schema13.Literal("workspace.importRig"),
1610
+ commandId: CommandId,
1611
+ workspaceId: WorkspaceId,
1612
+ rootPath: TrimmedNonEmptyString,
1613
+ title: Schema13.optional(TrimmedNonEmptyString),
1614
+ createdAt: IsoDateTime
1615
+ });
1616
+ var RunCreateAdhocCommand = Schema13.Struct({
1617
+ type: Schema13.Literal("run.createAdhoc"),
1618
+ commandId: CommandId,
1619
+ runId: RunId,
1620
+ workspaceId: WorkspaceId,
1621
+ title: TrimmedNonEmptyString,
1622
+ runtimeAdapter: Schema13.optional(RuntimeAdapterKind),
1623
+ model: Schema13.optional(TrimmedNonEmptyString),
1624
+ executionTarget: Schema13.optional(RunExecutionTarget),
1625
+ remoteHostId: Schema13.optional(TrimmedNonEmptyString),
1626
+ runtimeMode: RuntimeMode.pipe(Schema13.withDecodingDefault(() => DEFAULT_RUNTIME_MODE)),
1627
+ interactionMode: ProviderInteractionMode.pipe(Schema13.withDecodingDefault(() => DEFAULT_PROVIDER_INTERACTION_MODE)),
1628
+ initialPrompt: Schema13.optional(Schema13.String),
1629
+ createdAt: IsoDateTime
1630
+ });
1631
+ var RunCreateForTaskCommand = Schema13.Struct({
1632
+ type: Schema13.Literal("run.createForTask"),
1633
+ commandId: CommandId,
1634
+ runId: RunId,
1635
+ workspaceId: WorkspaceId,
1636
+ taskId: TaskId,
1637
+ runtimeAdapter: Schema13.optional(RuntimeAdapterKind),
1638
+ model: Schema13.optional(TrimmedNonEmptyString),
1639
+ executionTarget: Schema13.optional(RunExecutionTarget),
1640
+ remoteHostId: Schema13.optional(TrimmedNonEmptyString),
1641
+ runtimeMode: RuntimeMode.pipe(Schema13.withDecodingDefault(() => DEFAULT_RUNTIME_MODE)),
1642
+ interactionMode: ProviderInteractionMode.pipe(Schema13.withDecodingDefault(() => DEFAULT_PROVIDER_INTERACTION_MODE)),
1643
+ createdAt: IsoDateTime
1644
+ });
1645
+ var RunSubmitUserMessageCommand = Schema13.Struct({
1646
+ type: Schema13.Literal("run.submitUserMessage"),
1647
+ commandId: CommandId,
1648
+ runId: RunId,
1649
+ messageId: MessageId,
1650
+ text: Schema13.String,
1651
+ attachments: Schema13.optional(Schema13.Array(Schema13.Unknown)),
1652
+ createdAt: IsoDateTime
1653
+ });
1654
+ var RunInterruptCommand = Schema13.Struct({
1655
+ type: Schema13.Literal("run.interrupt"),
1656
+ commandId: CommandId,
1657
+ runId: RunId,
1658
+ createdAt: IsoDateTime
1659
+ });
1660
+ var RunStopCommand = Schema13.Struct({
1661
+ type: Schema13.Literal("run.stop"),
1662
+ commandId: CommandId,
1663
+ runId: RunId,
1664
+ createdAt: IsoDateTime
1665
+ });
1666
+ var RunSetRuntimeModeCommand = Schema13.Struct({
1667
+ type: Schema13.Literal("run.setRuntimeMode"),
1668
+ commandId: CommandId,
1669
+ runId: RunId,
1670
+ runtimeMode: RuntimeMode,
1671
+ createdAt: IsoDateTime
1672
+ });
1673
+ var RunSetInteractionModeCommand = Schema13.Struct({
1674
+ type: Schema13.Literal("run.setInteractionMode"),
1675
+ commandId: CommandId,
1676
+ runId: RunId,
1677
+ interactionMode: ProviderInteractionMode,
1678
+ createdAt: IsoDateTime
1679
+ });
1680
+ var RunRespondApprovalCommand = Schema13.Struct({
1681
+ type: Schema13.Literal("run.respondApproval"),
1682
+ commandId: CommandId,
1683
+ runId: RunId,
1684
+ requestId: ApprovalRequestId,
1685
+ decision: ProviderApprovalDecision,
1686
+ createdAt: IsoDateTime
1687
+ });
1688
+ var RunRespondUserInputCommand = Schema13.Struct({
1689
+ type: Schema13.Literal("run.respondUserInput"),
1690
+ commandId: CommandId,
1691
+ runId: RunId,
1692
+ requestId: ApprovalRequestId,
1693
+ answers: ProviderUserInputAnswers,
1694
+ createdAt: IsoDateTime
1695
+ });
1696
+ var RuntimePrepareCommand = Schema13.Struct({
1697
+ type: Schema13.Literal("runtime.prepare"),
1698
+ commandId: CommandId,
1699
+ runId: RunId,
1700
+ workspaceId: WorkspaceId,
1701
+ adapter: RuntimeAdapterKind,
1702
+ executionTarget: Schema13.optional(RunExecutionTarget),
1703
+ remoteHostId: Schema13.optional(TrimmedNonEmptyString),
1704
+ model: Schema13.optional(TrimmedNonEmptyString),
1705
+ createdAt: IsoDateTime
1706
+ });
1707
+ var RuntimeAttachCommand = Schema13.Struct({
1708
+ type: Schema13.Literal("runtime.attach"),
1709
+ commandId: CommandId,
1710
+ runId: RunId,
1711
+ runtimeId: EngineRuntimeId,
1712
+ createdAt: IsoDateTime
1713
+ });
1714
+ var RuntimeDetachCommand = Schema13.Struct({
1715
+ type: Schema13.Literal("runtime.detach"),
1716
+ commandId: CommandId,
1717
+ runId: RunId,
1718
+ reason: TrimmedNonEmptyString,
1719
+ createdAt: IsoDateTime
1720
+ });
1721
+ var GraphUpdateTaskStatusCommand = Schema13.Struct({
1722
+ type: Schema13.Literal("graph.updateTaskStatus"),
1723
+ commandId: CommandId,
1724
+ taskId: TaskId,
1725
+ status: TaskStatus,
1726
+ createdAt: IsoDateTime
1727
+ });
1728
+ var TaskEnqueueCommand = Schema13.Struct({
1729
+ type: Schema13.Literal("task.enqueue"),
1730
+ commandId: CommandId,
1731
+ taskId: TaskId,
1732
+ score: NonNegativeInt,
1733
+ createdAt: IsoDateTime
1734
+ });
1735
+ var WorkspaceHydrateImportedStateCommand = Schema13.Struct({
1736
+ type: Schema13.Literal("workspace.hydrateImportedState"),
1737
+ commandId: CommandId,
1738
+ workspaceId: WorkspaceId,
1739
+ rootPath: Schema13.optional(Schema13.String),
1740
+ graph: GraphSummary,
1741
+ tasks: Schema13.Array(TaskSummary),
1742
+ runs: Schema13.Array(RunSummary),
1743
+ runtimes: Schema13.Array(RuntimeSummary),
1744
+ actions: Schema13.Array(EngineAction),
1745
+ logs: Schema13.optional(Schema13.Array(EngineRunLog)),
1746
+ validations: Schema13.Array(ValidationSummary),
1747
+ reviews: Schema13.Array(ReviewSummary),
1748
+ artifacts: Schema13.Array(ArtifactSummary),
1749
+ policyDecisions: Schema13.Array(PolicyDecisionSummary),
1750
+ queue: Schema13.Array(QueueEntry),
1751
+ createdAt: IsoDateTime
1752
+ });
1753
+ var WorkspaceCompileTopologyCommand = Schema13.Struct({
1754
+ type: Schema13.Literal("workspace.compileTopology"),
1755
+ commandId: CommandId,
1756
+ workspaceId: WorkspaceId,
1757
+ rootPath: TrimmedNonEmptyString,
1758
+ topology: WorkspaceTopologySummary,
1759
+ createdAt: IsoDateTime
1760
+ });
1761
+ var WorkspaceSyncRemoteFleetCommand = Schema13.Struct({
1762
+ type: Schema13.Literal("workspace.syncRemoteFleet"),
1763
+ commandId: CommandId,
1764
+ workspaceId: WorkspaceId,
1765
+ rootPath: TrimmedNonEmptyString,
1766
+ remoteFleet: WorkspaceRemoteFleetSummary,
1767
+ createdAt: IsoDateTime
1768
+ });
1769
+ var WorkspaceSyncServiceFabricCommand = Schema13.Struct({
1770
+ type: Schema13.Literal("workspace.syncServiceFabric"),
1771
+ commandId: CommandId,
1772
+ workspaceId: WorkspaceId,
1773
+ rootPath: TrimmedNonEmptyString,
1774
+ serviceFabric: WorkspaceServiceFabricSummary,
1775
+ createdAt: IsoDateTime
1776
+ });
1777
+ var WorkspaceRegisterRemoteHostCommand = Schema13.Struct({
1778
+ type: Schema13.Literal("workspace.registerRemoteHost"),
1779
+ commandId: CommandId,
1780
+ workspaceId: WorkspaceId,
1781
+ host: Schema13.Struct({
1782
+ id: TrimmedNonEmptyString,
1783
+ name: TrimmedNonEmptyString,
1784
+ baseUrl: TrimmedNonEmptyString,
1785
+ workspacePath: Schema13.NullOr(TrimmedNonEmptyString),
1786
+ transport: TrimmedNonEmptyString,
1787
+ hostname: Schema13.NullOr(TrimmedNonEmptyString),
1788
+ region: Schema13.NullOr(TrimmedNonEmptyString),
1789
+ labels: Schema13.Array(TrimmedNonEmptyString),
1790
+ capabilities: Schema13.Array(TrimmedNonEmptyString),
1791
+ runtimeAdapters: Schema13.Array(TrimmedNonEmptyString),
1792
+ status: Schema13.Literals([
1793
+ "registering",
1794
+ "ready",
1795
+ "busy",
1796
+ "degraded",
1797
+ "draining",
1798
+ "offline",
1799
+ "quarantined"
1800
+ ]),
1801
+ currentLeaseCount: Schema13.Number,
1802
+ lastHeartbeatAt: Schema13.NullOr(IsoDateTime),
1803
+ registeredAt: IsoDateTime,
1804
+ manifestPath: TrimmedNonEmptyString
1805
+ }),
1806
+ createdAt: IsoDateTime
1807
+ });
1808
+ var WorkspaceUpdateRemoteHostStatusCommand = Schema13.Struct({
1809
+ type: Schema13.Literal("workspace.updateRemoteHostStatus"),
1810
+ commandId: CommandId,
1811
+ workspaceId: WorkspaceId,
1812
+ hostId: TrimmedNonEmptyString,
1813
+ status: Schema13.Literals([
1814
+ "registering",
1815
+ "ready",
1816
+ "busy",
1817
+ "degraded",
1818
+ "draining",
1819
+ "offline",
1820
+ "quarantined"
1821
+ ]),
1822
+ currentLeaseCount: Schema13.optional(Schema13.Number),
1823
+ lastHeartbeatAt: Schema13.optional(IsoDateTime),
1824
+ createdAt: IsoDateTime
1825
+ });
1826
+ var RunClaimRemoteLeaseCommand = Schema13.Struct({
1827
+ type: Schema13.Literal("run.claimRemoteLease"),
1828
+ commandId: CommandId,
1829
+ runId: RunId,
1830
+ hostId: TrimmedNonEmptyString,
1831
+ leaseId: TrimmedNonEmptyString,
1832
+ createdAt: IsoDateTime
1833
+ });
1834
+ var RunReleaseRemoteLeaseCommand = Schema13.Struct({
1835
+ type: Schema13.Literal("run.releaseRemoteLease"),
1836
+ commandId: CommandId,
1837
+ runId: RunId,
1838
+ leaseId: TrimmedNonEmptyString,
1839
+ createdAt: IsoDateTime
1840
+ });
1841
+ var RuntimeRecordMessageCommand = Schema13.Struct({
1842
+ type: Schema13.Literal("runtime.recordMessage"),
1843
+ commandId: CommandId,
1844
+ runId: RunId,
1845
+ messageId: MessageId,
1846
+ role: EngineMessageRole,
1847
+ text: Schema13.String,
1848
+ state: EngineMessageState,
1849
+ attachments: Schema13.optional(Schema13.Array(Schema13.Unknown)),
1850
+ createdAt: IsoDateTime,
1851
+ completedAt: Schema13.optional(IsoDateTime)
1852
+ });
1853
+ var RuntimeStartActionCommand = Schema13.Struct({
1854
+ type: Schema13.Literal("runtime.startAction"),
1855
+ commandId: CommandId,
1856
+ runId: RunId,
1857
+ actionId: ActionId,
1858
+ messageId: Schema13.optional(MessageId),
1859
+ actionType: TrimmedNonEmptyString,
1860
+ title: TrimmedNonEmptyString,
1861
+ detail: Schema13.optional(Schema13.String),
1862
+ payload: Schema13.Unknown,
1863
+ createdAt: IsoDateTime
1864
+ });
1865
+ var RuntimeCompleteActionCommand = Schema13.Struct({
1866
+ type: Schema13.Literal("runtime.completeAction"),
1867
+ commandId: CommandId,
1868
+ runId: RunId,
1869
+ actionId: ActionId,
1870
+ state: TrimmedNonEmptyString,
1871
+ detail: Schema13.optional(Schema13.String),
1872
+ payload: Schema13.Unknown,
1873
+ createdAt: IsoDateTime
1874
+ });
1875
+ var RuntimeRecordLogCommand = Schema13.Struct({
1876
+ type: Schema13.Literal("runtime.recordLog"),
1877
+ commandId: CommandId,
1878
+ runId: RunId,
1879
+ logId: TrimmedNonEmptyString,
1880
+ title: TrimmedNonEmptyString,
1881
+ detail: Schema13.optional(Schema13.String),
1882
+ tone: EngineLogTone,
1883
+ status: Schema13.optional(TrimmedNonEmptyString),
1884
+ payload: Schema13.optional(Schema13.Unknown),
1885
+ createdAt: IsoDateTime
1886
+ });
1887
+ var RuntimeUpdateMetadataCommand = Schema13.Struct({
1888
+ type: Schema13.Literal("runtime.updateMetadata"),
1889
+ commandId: CommandId,
1890
+ runId: RunId,
1891
+ runtimeId: EngineRuntimeId,
1892
+ sandboxMode: Schema13.optional(EngineSandboxMode),
1893
+ isolationMode: Schema13.optional(IsolationMode),
1894
+ workspaceDir: Schema13.optional(Schema13.NullOr(TrimmedNonEmptyString)),
1895
+ homeDir: Schema13.optional(Schema13.NullOr(TrimmedNonEmptyString)),
1896
+ tmpDir: Schema13.optional(Schema13.NullOr(TrimmedNonEmptyString)),
1897
+ cacheDir: Schema13.optional(Schema13.NullOr(TrimmedNonEmptyString)),
1898
+ logsDir: Schema13.optional(Schema13.NullOr(TrimmedNonEmptyString)),
1899
+ stateDir: Schema13.optional(Schema13.NullOr(TrimmedNonEmptyString)),
1900
+ sessionDir: Schema13.optional(Schema13.NullOr(TrimmedNonEmptyString)),
1901
+ sessionLogPath: Schema13.optional(Schema13.NullOr(TrimmedNonEmptyString)),
1902
+ pid: Schema13.optional(NonNegativeInt),
1903
+ worktreePath: Schema13.optional(Schema13.NullOr(TrimmedNonEmptyString)),
1904
+ branch: Schema13.optional(Schema13.NullOr(TrimmedNonEmptyString)),
1905
+ createdAt: IsoDateTime
1906
+ });
1907
+ var RuntimeRequestApprovalCommand = Schema13.Struct({
1908
+ type: Schema13.Literal("runtime.requestApproval"),
1909
+ commandId: CommandId,
1910
+ runId: RunId,
1911
+ requestId: ApprovalRequestId,
1912
+ requestKind: TrimmedNonEmptyString,
1913
+ actionId: Schema13.optional(ActionId),
1914
+ payload: Schema13.Unknown,
1915
+ createdAt: IsoDateTime
1916
+ });
1917
+ var RuntimeRequestUserInputCommand = Schema13.Struct({
1918
+ type: Schema13.Literal("runtime.requestUserInput"),
1919
+ commandId: CommandId,
1920
+ runId: RunId,
1921
+ requestId: ApprovalRequestId,
1922
+ payload: Schema13.Unknown,
1923
+ createdAt: IsoDateTime
1924
+ });
1925
+ var RunMarkCompletedCommand = Schema13.Struct({
1926
+ type: Schema13.Literal("run.markCompleted"),
1927
+ commandId: CommandId,
1928
+ runId: RunId,
1929
+ createdAt: IsoDateTime
1930
+ });
1931
+ var RunMarkFailedCommand = Schema13.Struct({
1932
+ type: Schema13.Literal("run.markFailed"),
1933
+ commandId: CommandId,
1934
+ runId: RunId,
1935
+ errorText: Schema13.optional(Schema13.String),
1936
+ createdAt: IsoDateTime
1937
+ });
1938
+ var RunSetStatusCommand = Schema13.Struct({
1939
+ type: Schema13.Literal("run.setStatus"),
1940
+ commandId: CommandId,
1941
+ runId: RunId,
1942
+ status: Schema13.Literals(["created", "queued", "preparing", "running", "validating", "reviewing", "paused"]),
1943
+ createdAt: IsoDateTime
1944
+ });
1945
+ var RuntimeRecordValidationCommand = Schema13.Struct({
1946
+ type: Schema13.Literal("runtime.recordValidation"),
1947
+ commandId: CommandId,
1948
+ runId: RunId,
1949
+ taskId: Schema13.optional(Schema13.NullOr(TaskId)),
1950
+ validationId: ValidationResultId,
1951
+ validatorKey: TrimmedNonEmptyString,
1952
+ status: Schema13.Literals(["pending", "running", "passed", "failed", "skipped"]),
1953
+ output: Schema13.Unknown,
1954
+ startedAt: IsoDateTime,
1955
+ completedAt: Schema13.optional(Schema13.NullOr(IsoDateTime)),
1956
+ createdAt: IsoDateTime
1957
+ });
1958
+ var RuntimeRecordReviewCommand = Schema13.Struct({
1959
+ type: Schema13.Literal("runtime.recordReview"),
1960
+ commandId: CommandId,
1961
+ runId: RunId,
1962
+ taskId: Schema13.optional(Schema13.NullOr(TaskId)),
1963
+ reviewId: ReviewResultId,
1964
+ provider: TrimmedNonEmptyString,
1965
+ mode: Schema13.Literals(["off", "advisory", "required"]),
1966
+ status: Schema13.Literals(["pending", "running", "approved", "rejected", "error"]),
1967
+ summary: Schema13.optional(Schema13.NullOr(Schema13.String)),
1968
+ output: Schema13.Unknown,
1969
+ createdAt: IsoDateTime,
1970
+ completedAt: Schema13.optional(Schema13.NullOr(IsoDateTime))
1971
+ });
1972
+ var RuntimeRegisterArtifactCommand = Schema13.Struct({
1973
+ type: Schema13.Literal("runtime.registerArtifact"),
1974
+ commandId: CommandId,
1975
+ runId: RunId,
1976
+ taskId: Schema13.optional(Schema13.NullOr(TaskId)),
1977
+ artifactId: ArtifactId,
1978
+ kind: TrimmedNonEmptyString,
1979
+ label: TrimmedNonEmptyString,
1980
+ path: Schema13.optional(Schema13.NullOr(TrimmedNonEmptyString)),
1981
+ url: Schema13.optional(Schema13.NullOr(TrimmedNonEmptyString)),
1982
+ metadata: Schema13.optional(Schema13.Record(Schema13.String, Schema13.Unknown)),
1983
+ createdAt: IsoDateTime
1984
+ });
1985
+ var RemoteRegisterEndpointCommand = Schema13.Struct({
1986
+ type: Schema13.Literal("remote.registerEndpoint"),
1987
+ commandId: CommandId,
1988
+ endpoint: RemoteEndpoint,
1989
+ createdAt: IsoDateTime
1990
+ });
1991
+ var RemoteRemoveEndpointCommand = Schema13.Struct({
1992
+ type: Schema13.Literal("remote.removeEndpoint"),
1993
+ commandId: CommandId,
1994
+ endpointId: RemoteEndpointId,
1995
+ createdAt: IsoDateTime
1996
+ });
1997
+ var RemoteUpdateEndpointCommand = Schema13.Struct({
1998
+ type: Schema13.Literal("remote.updateEndpoint"),
1999
+ commandId: CommandId,
2000
+ endpointId: RemoteEndpointId,
2001
+ updates: Schema13.Unknown,
2002
+ createdAt: IsoDateTime
2003
+ });
2004
+ var RemoteConnectCommand = Schema13.Struct({
2005
+ type: Schema13.Literal("remote.connect"),
2006
+ commandId: CommandId,
2007
+ endpointId: RemoteEndpointId,
2008
+ createdAt: IsoDateTime
2009
+ });
2010
+ var RemoteDisconnectCommand = Schema13.Struct({
2011
+ type: Schema13.Literal("remote.disconnect"),
2012
+ commandId: CommandId,
2013
+ endpointId: RemoteEndpointId,
2014
+ createdAt: IsoDateTime
2015
+ });
2016
+ var RemotePauseCommand = Schema13.Struct({
2017
+ type: Schema13.Literal("remote.pause"),
2018
+ commandId: CommandId,
2019
+ endpointId: RemoteEndpointId,
2020
+ createdAt: IsoDateTime
2021
+ });
2022
+ var RemoteResumeCommand = Schema13.Struct({
2023
+ type: Schema13.Literal("remote.resume"),
2024
+ commandId: CommandId,
2025
+ endpointId: RemoteEndpointId,
2026
+ createdAt: IsoDateTime
2027
+ });
2028
+ var RemoteStopCommand = Schema13.Struct({
2029
+ type: Schema13.Literal("remote.stop"),
2030
+ commandId: CommandId,
2031
+ endpointId: RemoteEndpointId,
2032
+ createdAt: IsoDateTime
2033
+ });
2034
+ var RemoteContinueCommand = Schema13.Struct({
2035
+ type: Schema13.Literal("remote.continue"),
2036
+ commandId: CommandId,
2037
+ endpointId: RemoteEndpointId,
2038
+ createdAt: IsoDateTime
2039
+ });
2040
+ var RemoteCreateRunForTaskCommand = Schema13.Struct({
2041
+ type: Schema13.Literal("remote.createRunForTask"),
2042
+ commandId: CommandId,
2043
+ endpointId: RemoteEndpointId,
2044
+ taskId: TrimmedNonEmptyString,
2045
+ runId: TrimmedNonEmptyString,
2046
+ workspaceId: TrimmedNonEmptyString,
2047
+ runtimeMode: Schema13.optional(Schema13.String),
2048
+ interactionMode: Schema13.optional(Schema13.String),
2049
+ createdAt: IsoDateTime
2050
+ });
2051
+ var RemoteRefreshTasksCommand = Schema13.Struct({
2052
+ type: Schema13.Literal("remote.refreshTasks"),
2053
+ commandId: CommandId,
2054
+ endpointId: RemoteEndpointId,
2055
+ createdAt: IsoDateTime
2056
+ });
2057
+ var RemoteAddIterationsCommand = Schema13.Struct({
2058
+ type: Schema13.Literal("remote.addIterations"),
2059
+ commandId: CommandId,
2060
+ endpointId: RemoteEndpointId,
2061
+ count: Schema13.Int.check(Schema13.isGreaterThanOrEqualTo(1)),
2062
+ createdAt: IsoDateTime
2063
+ });
2064
+ var RemoteRemoveIterationsCommand = Schema13.Struct({
2065
+ type: Schema13.Literal("remote.removeIterations"),
2066
+ commandId: CommandId,
2067
+ endpointId: RemoteEndpointId,
2068
+ count: Schema13.Int.check(Schema13.isGreaterThanOrEqualTo(1)),
2069
+ createdAt: IsoDateTime
2070
+ });
2071
+ var RemoteOrchestrateStartCommand = Schema13.Struct({
2072
+ type: Schema13.Literal("remote.orchestrate.start"),
2073
+ commandId: CommandId,
2074
+ endpointId: RemoteEndpointId,
2075
+ maxWorkers: Schema13.optional(Schema13.Int),
2076
+ maxIterations: Schema13.optional(Schema13.Int),
2077
+ directMerge: Schema13.optional(Schema13.Boolean),
2078
+ createdAt: IsoDateTime
2079
+ });
2080
+ var RemoteOrchestratePauseCommand = Schema13.Struct({
2081
+ type: Schema13.Literal("remote.orchestrate.pause"),
2082
+ commandId: CommandId,
2083
+ endpointId: RemoteEndpointId,
2084
+ orchestrationId: TrimmedNonEmptyString,
2085
+ createdAt: IsoDateTime
2086
+ });
2087
+ var RemoteOrchestrateResumeCommand = Schema13.Struct({
2088
+ type: Schema13.Literal("remote.orchestrate.resume"),
2089
+ commandId: CommandId,
2090
+ endpointId: RemoteEndpointId,
2091
+ orchestrationId: TrimmedNonEmptyString,
2092
+ createdAt: IsoDateTime
2093
+ });
2094
+ var RemoteOrchestrateStopCommand = Schema13.Struct({
2095
+ type: Schema13.Literal("remote.orchestrate.stop"),
2096
+ commandId: CommandId,
2097
+ endpointId: RemoteEndpointId,
2098
+ orchestrationId: TrimmedNonEmptyString,
2099
+ createdAt: IsoDateTime
2100
+ });
2101
+ var RemoteGetPromptPreviewCommand = Schema13.Struct({
2102
+ type: Schema13.Literal("remote.getPromptPreview"),
2103
+ commandId: CommandId,
2104
+ endpointId: RemoteEndpointId,
2105
+ taskId: TrimmedNonEmptyString,
2106
+ createdAt: IsoDateTime
2107
+ });
2108
+ var RemoteGetIterationOutputCommand = Schema13.Struct({
2109
+ type: Schema13.Literal("remote.getIterationOutput"),
2110
+ commandId: CommandId,
2111
+ endpointId: RemoteEndpointId,
2112
+ taskId: TrimmedNonEmptyString,
2113
+ createdAt: IsoDateTime
2114
+ });
2115
+ var EngineCommand = Schema13.Union([
2116
+ WorkspaceRegisterCommand,
2117
+ WorkspaceImportRigCommand,
2118
+ WorkspaceHydrateImportedStateCommand,
2119
+ WorkspaceCompileTopologyCommand,
2120
+ WorkspaceSyncRemoteFleetCommand,
2121
+ WorkspaceSyncServiceFabricCommand,
2122
+ WorkspaceRegisterRemoteHostCommand,
2123
+ WorkspaceUpdateRemoteHostStatusCommand,
2124
+ RunClaimRemoteLeaseCommand,
2125
+ RunReleaseRemoteLeaseCommand,
2126
+ RunCreateAdhocCommand,
2127
+ RunCreateForTaskCommand,
2128
+ RunMarkCompletedCommand,
2129
+ RunMarkFailedCommand,
2130
+ RunSetStatusCommand,
2131
+ RunSubmitUserMessageCommand,
2132
+ RunInterruptCommand,
2133
+ RunStopCommand,
2134
+ RunSetRuntimeModeCommand,
2135
+ RunSetInteractionModeCommand,
2136
+ RunRespondApprovalCommand,
2137
+ RunRespondUserInputCommand,
2138
+ RuntimePrepareCommand,
2139
+ RuntimeAttachCommand,
2140
+ RuntimeDetachCommand,
2141
+ RuntimeRecordMessageCommand,
2142
+ RuntimeStartActionCommand,
2143
+ RuntimeCompleteActionCommand,
2144
+ RuntimeRecordLogCommand,
2145
+ RuntimeUpdateMetadataCommand,
2146
+ RuntimeRequestApprovalCommand,
2147
+ RuntimeRequestUserInputCommand,
2148
+ RuntimeRecordValidationCommand,
2149
+ RuntimeRecordReviewCommand,
2150
+ RuntimeRegisterArtifactCommand,
2151
+ GraphUpdateTaskStatusCommand,
2152
+ TaskEnqueueCommand,
2153
+ RemoteRegisterEndpointCommand,
2154
+ RemoteRemoveEndpointCommand,
2155
+ RemoteUpdateEndpointCommand,
2156
+ RemoteConnectCommand,
2157
+ RemoteDisconnectCommand,
2158
+ RemotePauseCommand,
2159
+ RemoteResumeCommand,
2160
+ RemoteStopCommand,
2161
+ RemoteContinueCommand,
2162
+ RemoteCreateRunForTaskCommand,
2163
+ RemoteRefreshTasksCommand,
2164
+ RemoteAddIterationsCommand,
2165
+ RemoteRemoveIterationsCommand,
2166
+ RemoteOrchestrateStartCommand,
2167
+ RemoteOrchestratePauseCommand,
2168
+ RemoteOrchestrateResumeCommand,
2169
+ RemoteOrchestrateStopCommand,
2170
+ RemoteGetPromptPreviewCommand,
2171
+ RemoteGetIterationOutputCommand
2172
+ ]);
2173
+ var EngineDispatchResult = Schema13.Struct({
2174
+ sequence: NonNegativeInt
2175
+ });
2176
+ var EngineGetSnapshotInput = Schema13.Struct({});
2177
+ var EngineReplayEventsInput = Schema13.Struct({
2178
+ fromSequenceExclusive: NonNegativeInt
2179
+ });
2180
+ var EngineReplayEventsResult = Schema13.Array(EngineEvent);
2181
+ var EngineGetTaskArtifactsInput = Schema13.Struct({
2182
+ taskId: TaskId
2183
+ });
2184
+ var EngineGetTaskArtifactsResult = Schema13.Array(ArtifactSummary);
2185
+ var EngineRpcSchemas = {
2186
+ getSnapshot: {
2187
+ input: EngineGetSnapshotInput,
2188
+ output: EngineReadModel
2189
+ },
2190
+ dispatch: {
2191
+ input: EngineCommand,
2192
+ output: EngineDispatchResult
2193
+ },
2194
+ replayEvents: {
2195
+ input: EngineReplayEventsInput,
2196
+ output: EngineReplayEventsResult
2197
+ },
2198
+ getTaskArtifacts: {
2199
+ input: EngineGetTaskArtifactsInput,
2200
+ output: EngineGetTaskArtifactsResult
2201
+ }
2202
+ };
2203
+ var EngineRuntimeDefaults = Schema13.Struct({
2204
+ runtimeAdapter: TrimmedNonEmptyString,
2205
+ runMode: RunMode,
2206
+ sandboxMode: EngineSandboxMode,
2207
+ isolationMode: IsolationMode
2208
+ });
2209
+ export {
2210
+ WorkspaceUpdateRemoteHostStatusCommand,
2211
+ WorkspaceSyncServiceFabricCommand,
2212
+ WorkspaceSyncRemoteFleetCommand,
2213
+ WorkspaceRegisterRemoteHostCommand,
2214
+ WorkspaceRegisterCommand,
2215
+ WorkspaceImportRigCommand,
2216
+ WorkspaceHydrateImportedStateCommand,
2217
+ WorkspaceCompileTopologyCommand,
2218
+ TaskEnqueueCommand,
2219
+ RuntimeUpdateMetadataCommand,
2220
+ RuntimeStartActionCommand,
2221
+ RuntimeRequestUserInputCommand,
2222
+ RuntimeRequestApprovalCommand,
2223
+ RuntimeRegisterArtifactCommand,
2224
+ RuntimeRecordValidationCommand,
2225
+ RuntimeRecordReviewCommand,
2226
+ RuntimeRecordMessageCommand,
2227
+ RuntimeRecordLogCommand,
2228
+ RuntimePrepareCommand,
2229
+ RuntimeDetachCommand,
2230
+ RuntimeCompleteActionCommand,
2231
+ RuntimeAttachCommand,
2232
+ RuntimeAdapterKind,
2233
+ RunSubmitUserMessageCommand,
2234
+ RunStopCommand,
2235
+ RunSetStatusCommand,
2236
+ RunSetRuntimeModeCommand,
2237
+ RunSetInteractionModeCommand,
2238
+ RunRespondUserInputCommand,
2239
+ RunRespondApprovalCommand,
2240
+ RunReleaseRemoteLeaseCommand,
2241
+ RunMarkFailedCommand,
2242
+ RunMarkCompletedCommand,
2243
+ RunInterruptCommand,
2244
+ RunCreateForTaskCommand,
2245
+ RunCreateAdhocCommand,
2246
+ RunClaimRemoteLeaseCommand,
2247
+ RemoteUpdateEndpointCommand,
2248
+ RemoteStopCommand,
2249
+ RemoteResumeCommand,
2250
+ RemoteRemoveIterationsCommand,
2251
+ RemoteRemoveEndpointCommand,
2252
+ RemoteRegisterEndpointCommand,
2253
+ RemoteRefreshTasksCommand,
2254
+ RemotePauseCommand,
2255
+ RemoteOrchestrateStopCommand,
2256
+ RemoteOrchestrateStartCommand,
2257
+ RemoteOrchestrateResumeCommand,
2258
+ RemoteOrchestratePauseCommand,
2259
+ RemoteGetPromptPreviewCommand,
2260
+ RemoteGetIterationOutputCommand,
2261
+ RemoteDisconnectCommand,
2262
+ RemoteCreateRunForTaskCommand,
2263
+ RemoteContinueCommand,
2264
+ RemoteConnectCommand,
2265
+ RemoteAddIterationsCommand,
2266
+ GraphUpdateTaskStatusCommand,
2267
+ EngineRuntimeDefaults,
2268
+ EngineRpcSchemas,
2269
+ EngineReplayEventsResult,
2270
+ EngineReplayEventsInput,
2271
+ EngineReadModel,
2272
+ EngineGetTaskArtifactsResult,
2273
+ EngineGetTaskArtifactsInput,
2274
+ EngineGetSnapshotInput,
2275
+ EngineEvent,
2276
+ EngineDispatchResult,
2277
+ EngineCommand
2278
+ };