@h-rig/contracts 0.0.6-alpha.157 → 0.0.6-alpha.159

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.
Files changed (126) hide show
  1. package/dist/index.cjs +2340 -6832
  2. package/dist/index.mjs +2116 -6608
  3. package/dist/src/agent-roles.d.ts +8 -0
  4. package/dist/src/browser.d.ts +34 -4
  5. package/dist/src/browser.js +8 -1
  6. package/dist/src/capability-id.d.ts +22 -0
  7. package/dist/src/capability-id.js +8 -0
  8. package/dist/src/cli-output.d.ts +24 -0
  9. package/dist/src/cli-runner.d.ts +43 -0
  10. package/dist/src/cli-runner.js +13 -0
  11. package/dist/src/collab-session-viewer.d.ts +36 -0
  12. package/dist/src/collab-session-viewer.js +13 -0
  13. package/dist/src/config.d.ts +11 -0
  14. package/dist/src/config.js +279 -1098
  15. package/dist/src/control-plane-types.d.ts +41 -1
  16. package/dist/src/control-plane-types.js +9 -25
  17. package/dist/src/dependency-preflight.d.ts +43 -0
  18. package/dist/src/dependency-preflight.js +13 -0
  19. package/dist/src/doctor.d.ts +67 -4
  20. package/dist/src/doctor.js +8 -9
  21. package/dist/src/errors.d.ts +13 -0
  22. package/dist/src/errors.js +17 -0
  23. package/dist/src/github.d.ts +43 -0
  24. package/dist/src/github.js +12 -1
  25. package/dist/src/graph.d.ts +37 -0
  26. package/dist/src/graph.js +13 -0
  27. package/dist/src/guard.d.ts +111 -0
  28. package/dist/src/guard.js +6 -0
  29. package/dist/src/harness-events.d.ts +8 -0
  30. package/dist/src/harness-events.js +1 -0
  31. package/dist/src/help-catalog.d.ts +17 -10
  32. package/dist/src/help-catalog.js +9 -651
  33. package/dist/src/host.d.ts +41 -0
  34. package/dist/src/host.js +13 -0
  35. package/dist/src/identity.d.ts +44 -0
  36. package/dist/src/identity.js +1 -0
  37. package/dist/src/index.d.ts +27 -7
  38. package/dist/src/index.js +2116 -6608
  39. package/dist/src/isolation.d.ts +207 -15
  40. package/dist/src/isolation.js +8 -1
  41. package/dist/src/kernel.d.ts +11 -0
  42. package/dist/src/kernel.js +7 -0
  43. package/dist/src/layout.d.ts +49 -0
  44. package/dist/src/layout.js +10 -0
  45. package/dist/src/lifecycle-capabilities.d.ts +99 -0
  46. package/dist/src/lifecycle-capabilities.js +18 -1
  47. package/dist/src/managed-repos.d.ts +79 -16
  48. package/dist/src/managed-repos.js +12 -1
  49. package/dist/src/memory.d.ts +52 -4
  50. package/dist/src/memory.js +8 -1
  51. package/dist/src/notify.d.ts +46 -0
  52. package/dist/src/notify.js +13 -0
  53. package/dist/src/orchestration.d.ts +0 -3652
  54. package/dist/src/orchestration.js +28 -964
  55. package/dist/src/plugin-hooks.js +22 -3
  56. package/dist/src/plugin.d.ts +47 -0
  57. package/dist/src/plugin.js +24 -3
  58. package/dist/src/prompt.d.ts +29 -0
  59. package/dist/src/prompt.js +13 -0
  60. package/dist/src/provider-instructions.d.ts +26 -4
  61. package/dist/src/provider-instructions.js +8 -1
  62. package/dist/src/provider.js +1 -824
  63. package/dist/src/remote.d.ts +0 -8
  64. package/dist/src/remote.js +229 -1075
  65. package/dist/src/run-discovery.d.ts +79 -0
  66. package/dist/src/run-discovery.js +13 -0
  67. package/dist/src/run-dispatch.d.ts +34 -0
  68. package/dist/src/run-dispatch.js +13 -0
  69. package/dist/src/run-identity.d.ts +47 -0
  70. package/dist/src/run-identity.js +13 -0
  71. package/dist/src/run-journal.d.ts +0 -236
  72. package/dist/src/run-journal.js +249 -1321
  73. package/dist/src/run-read-model.d.ts +234 -0
  74. package/dist/src/run-read-model.js +13 -0
  75. package/dist/src/run-record.d.ts +0 -11
  76. package/dist/src/run-record.js +0 -16
  77. package/dist/src/run-registry-backbone.d.ts +56 -0
  78. package/dist/src/run-registry-backbone.js +13 -0
  79. package/dist/src/run-session-journal.d.ts +1 -25
  80. package/dist/src/run-session-journal.js +0 -1731
  81. package/dist/src/run-status.d.ts +0 -2
  82. package/dist/src/run-status.js +0 -11
  83. package/dist/src/run-timeline.d.ts +0 -3
  84. package/dist/src/run-timeline.js +0 -1498
  85. package/dist/src/runtime-task-context.d.ts +82 -0
  86. package/dist/src/runtime-task-context.js +1 -0
  87. package/dist/src/runtime.js +66 -904
  88. package/dist/src/session-asset-materializer.d.ts +35 -0
  89. package/dist/src/session-asset-materializer.js +13 -0
  90. package/dist/src/setup.d.ts +47 -0
  91. package/dist/src/setup.js +13 -0
  92. package/dist/src/supervisor-journal.js +117 -955
  93. package/dist/src/task-data.d.ts +239 -0
  94. package/dist/src/task-data.js +13 -0
  95. package/dist/src/task-graph-primitives.d.ts +0 -21
  96. package/dist/src/task-graph-primitives.js +0 -318
  97. package/dist/src/task-source.d.ts +65 -0
  98. package/dist/src/task-source.js +12 -0
  99. package/dist/src/task-state-metadata.d.ts +21 -0
  100. package/dist/src/task-state-metadata.js +1 -0
  101. package/dist/src/tool-materializer.d.ts +36 -0
  102. package/dist/src/tool-materializer.js +13 -0
  103. package/dist/src/tool-registry.d.ts +3 -0
  104. package/dist/src/tool-registry.js +58 -0
  105. package/dist/src/toolchain-sources.d.ts +54 -0
  106. package/dist/src/toolchain-sources.js +17 -0
  107. package/dist/src/workflow-journal.d.ts +0 -32
  108. package/dist/src/workflow-journal.js +0 -371
  109. package/dist/src/workspace-config.d.ts +18 -0
  110. package/dist/src/workspace-config.js +13 -0
  111. package/dist/src/workspace.js +73 -911
  112. package/package.json +1 -1
  113. package/dist/src/engine.d.ts +0 -2789
  114. package/dist/src/engine.js +0 -2392
  115. package/dist/src/ipc.d.ts +0 -248
  116. package/dist/src/providerRuntime.d.ts +0 -3949
  117. package/dist/src/providerRuntime.js +0 -1633
  118. package/dist/src/rig.d.ts +0 -783
  119. package/dist/src/rig.js +0 -2537
  120. package/dist/src/server.d.ts +0 -106
  121. package/dist/src/server.js +0 -1056
  122. package/dist/src/serviceFabric.d.ts +0 -62
  123. package/dist/src/serviceFabric.js +0 -1069
  124. package/dist/src/ws.d.ts +0 -747
  125. package/dist/src/ws.js +0 -3126
  126. /package/dist/src/{ipc.js → agent-roles.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  // @bun
2
2
  // packages/contracts/src/run-journal.ts
3
- import { Schema as Schema6 } from "effect";
3
+ import { Schema as Schema5 } from "effect";
4
4
 
5
5
  // packages/contracts/src/baseSchemas.ts
6
6
  import { Schema } from "effect";
@@ -40,887 +40,49 @@ var CheckpointRef = makeEntityId("CheckpointRef");
40
40
  var RemoteEndpointId = makeEntityId("RemoteEndpointId");
41
41
 
42
42
  // packages/contracts/src/runtime.ts
43
- import { Schema as Schema4 } from "effect";
43
+ import { Schema as Schema3 } from "effect";
44
44
 
45
45
  // packages/contracts/src/orchestration.ts
46
- import { Option, Schema as Schema3, SchemaIssue, Struct } from "effect";
47
-
48
- // packages/contracts/src/model.ts
49
46
  import { Schema as Schema2 } from "effect";
50
- var CODEX_REASONING_EFFORT_OPTIONS = ["xhigh", "high", "medium", "low"];
51
- var CodexModelOptions = Schema2.Struct({
52
- reasoningEffort: Schema2.optional(Schema2.Literals(CODEX_REASONING_EFFORT_OPTIONS)),
53
- fastMode: Schema2.optional(Schema2.Boolean)
54
- });
55
- var ClaudeModelOptions = Schema2.Struct({});
56
- var ProviderModelOptions = Schema2.Struct({
57
- codex: Schema2.optional(CodexModelOptions),
58
- claude: Schema2.optional(ClaudeModelOptions)
59
- });
60
-
61
- // packages/contracts/src/orchestration.ts
62
- var ProviderKind = Schema3.Literals(["codex", "claude"]);
63
- var ProviderApprovalPolicy = Schema3.Literals([
47
+ var ProviderKind = Schema2.Literals(["codex", "claude"]);
48
+ var ProviderApprovalPolicy = Schema2.Literals([
64
49
  "untrusted",
65
50
  "on-failure",
66
51
  "on-request",
67
52
  "never"
68
53
  ]);
69
- var ProviderSandboxMode = Schema3.Literals([
54
+ var ProviderSandboxMode = Schema2.Literals([
70
55
  "read-only",
71
56
  "workspace-write",
72
57
  "danger-full-access"
73
58
  ]);
74
- var ProviderServiceTier = Schema3.Literals(["fast", "flex"]);
75
- var RuntimeMode = Schema3.Literals(["approval-required", "full-access"]);
76
- var DEFAULT_RUNTIME_MODE = "full-access";
77
- var ProviderInteractionMode = Schema3.Literals(["default", "plan"]);
78
- var DEFAULT_PROVIDER_INTERACTION_MODE = "default";
79
- var ProviderRequestKind = Schema3.Literals(["command", "file-read", "file-change"]);
80
- var AssistantDeliveryMode = Schema3.Literals(["buffered", "streaming"]);
81
- var ProviderApprovalDecision = Schema3.Literals([
59
+ var ProviderServiceTier = Schema2.Literals(["fast", "flex"]);
60
+ var RuntimeMode = Schema2.Literals(["approval-required", "full-access"]);
61
+ var ProviderInteractionMode = Schema2.Literals(["default", "plan"]);
62
+ var ProviderRequestKind = Schema2.Literals(["command", "file-read", "file-change"]);
63
+ var ProviderApprovalDecision = Schema2.Literals([
82
64
  "accept",
83
65
  "acceptForSession",
84
66
  "decline",
85
67
  "cancel"
86
68
  ]);
87
- var ProviderUserInputAnswers = Schema3.Record(Schema3.String, Schema3.Unknown);
69
+ var ProviderUserInputAnswers = Schema2.Record(Schema2.String, Schema2.Unknown);
88
70
  var PROVIDER_SEND_TURN_MAX_IMAGE_BYTES = 10 * 1024 * 1024;
89
- var PROVIDER_SEND_TURN_MAX_IMAGE_DATA_URL_CHARS = 14000000;
90
71
  var CHAT_ATTACHMENT_ID_MAX_CHARS = 128;
91
- var ChatAttachmentId = TrimmedNonEmptyString.check(Schema3.isMaxLength(CHAT_ATTACHMENT_ID_MAX_CHARS), Schema3.isPattern(/^[a-z0-9_-]+$/i));
92
- var ChatImageAttachment = Schema3.Struct({
93
- type: Schema3.Literal("image"),
72
+ var ChatAttachmentId = TrimmedNonEmptyString.check(Schema2.isMaxLength(CHAT_ATTACHMENT_ID_MAX_CHARS), Schema2.isPattern(/^[a-z0-9_-]+$/i));
73
+ var ChatImageAttachment = Schema2.Struct({
74
+ type: Schema2.Literal("image"),
94
75
  id: ChatAttachmentId,
95
- name: TrimmedNonEmptyString.check(Schema3.isMaxLength(255)),
96
- mimeType: TrimmedNonEmptyString.check(Schema3.isMaxLength(100), Schema3.isPattern(/^image\//i)),
97
- sizeBytes: NonNegativeInt.check(Schema3.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_IMAGE_BYTES))
98
- });
99
- var UploadChatImageAttachment = Schema3.Struct({
100
- type: Schema3.Literal("image"),
101
- name: TrimmedNonEmptyString.check(Schema3.isMaxLength(255)),
102
- mimeType: TrimmedNonEmptyString.check(Schema3.isMaxLength(100), Schema3.isPattern(/^image\//i)),
103
- sizeBytes: NonNegativeInt.check(Schema3.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_IMAGE_BYTES)),
104
- dataUrl: TrimmedNonEmptyString.check(Schema3.isMaxLength(PROVIDER_SEND_TURN_MAX_IMAGE_DATA_URL_CHARS))
105
- });
106
- var ChatAttachment = Schema3.Union([ChatImageAttachment]);
107
- var UploadChatAttachment = Schema3.Union([UploadChatImageAttachment]);
108
- var ProjectScriptIcon = Schema3.Literals([
109
- "play",
110
- "test",
111
- "lint",
112
- "configure",
113
- "build",
114
- "debug"
115
- ]);
116
- var ProjectScript = Schema3.Struct({
117
- id: TrimmedNonEmptyString,
118
- name: TrimmedNonEmptyString,
119
- command: TrimmedNonEmptyString,
120
- icon: ProjectScriptIcon,
121
- runOnWorktreeCreate: Schema3.Boolean
122
- });
123
- var OrchestrationProject = Schema3.Struct({
124
- id: ProjectId,
125
- title: TrimmedNonEmptyString,
126
- workspaceRoot: TrimmedNonEmptyString,
127
- defaultModel: Schema3.NullOr(TrimmedNonEmptyString),
128
- scripts: Schema3.Array(ProjectScript),
129
- createdAt: IsoDateTime,
130
- updatedAt: IsoDateTime,
131
- deletedAt: Schema3.NullOr(IsoDateTime)
132
- });
133
- var OrchestrationMessageRole = Schema3.Literals(["user", "assistant", "system"]);
134
- var OrchestrationMessage = Schema3.Struct({
135
- id: MessageId,
136
- role: OrchestrationMessageRole,
137
- text: Schema3.String,
138
- attachments: Schema3.optional(Schema3.Array(ChatAttachment)),
139
- turnId: Schema3.NullOr(TurnId),
140
- streaming: Schema3.Boolean,
141
- createdAt: IsoDateTime,
142
- updatedAt: IsoDateTime
143
- });
144
- var OrchestrationProposedPlanId = TrimmedNonEmptyString;
145
- var OrchestrationProposedPlan = Schema3.Struct({
146
- id: OrchestrationProposedPlanId,
147
- turnId: Schema3.NullOr(TurnId),
148
- planMarkdown: TrimmedNonEmptyString,
149
- createdAt: IsoDateTime,
150
- updatedAt: IsoDateTime
151
- });
152
- var OrchestrationSessionStatus = Schema3.Literals([
153
- "idle",
154
- "starting",
155
- "running",
156
- "ready",
157
- "interrupted",
158
- "stopped",
159
- "error"
160
- ]);
161
- var OrchestrationSession = Schema3.Struct({
162
- threadId: ThreadId,
163
- status: OrchestrationSessionStatus,
164
- providerName: Schema3.NullOr(TrimmedNonEmptyString),
165
- runtimeMode: RuntimeMode.pipe(Schema3.withDecodingDefault(() => DEFAULT_RUNTIME_MODE)),
166
- activeTurnId: Schema3.NullOr(TurnId),
167
- lastError: Schema3.NullOr(TrimmedNonEmptyString),
168
- updatedAt: IsoDateTime
169
- });
170
- var OrchestrationCheckpointFile = Schema3.Struct({
171
- path: TrimmedNonEmptyString,
172
- kind: TrimmedNonEmptyString,
173
- additions: NonNegativeInt,
174
- deletions: NonNegativeInt
175
- });
176
- var OrchestrationCheckpointStatus = Schema3.Literals(["ready", "missing", "error"]);
177
- var OrchestrationCheckpointSummary = Schema3.Struct({
178
- turnId: TurnId,
179
- checkpointTurnCount: NonNegativeInt,
180
- checkpointRef: CheckpointRef,
181
- status: OrchestrationCheckpointStatus,
182
- files: Schema3.Array(OrchestrationCheckpointFile),
183
- assistantMessageId: Schema3.NullOr(MessageId),
184
- completedAt: IsoDateTime
185
- });
186
- var OrchestrationThreadActivityTone = Schema3.Literals([
187
- "info",
188
- "tool",
189
- "approval",
190
- "error"
191
- ]);
192
- var OrchestrationThreadActivity = Schema3.Struct({
193
- id: EventId,
194
- tone: OrchestrationThreadActivityTone,
195
- kind: TrimmedNonEmptyString,
196
- summary: TrimmedNonEmptyString,
197
- payload: Schema3.Unknown,
198
- turnId: Schema3.NullOr(TurnId),
199
- sequence: Schema3.optional(NonNegativeInt),
200
- createdAt: IsoDateTime
201
- });
202
- var OrchestrationLatestTurnState = Schema3.Literals([
203
- "running",
204
- "interrupted",
205
- "completed",
206
- "error"
207
- ]);
208
- var OrchestrationLatestTurn = Schema3.Struct({
209
- turnId: TurnId,
210
- state: OrchestrationLatestTurnState,
211
- requestedAt: IsoDateTime,
212
- startedAt: Schema3.NullOr(IsoDateTime),
213
- completedAt: Schema3.NullOr(IsoDateTime),
214
- assistantMessageId: Schema3.NullOr(MessageId)
215
- });
216
- var OrchestrationThread = Schema3.Struct({
217
- id: ThreadId,
218
- projectId: ProjectId,
219
- title: TrimmedNonEmptyString,
220
- model: TrimmedNonEmptyString,
221
- runtimeMode: RuntimeMode,
222
- interactionMode: ProviderInteractionMode.pipe(Schema3.withDecodingDefault(() => DEFAULT_PROVIDER_INTERACTION_MODE)),
223
- branch: Schema3.NullOr(TrimmedNonEmptyString),
224
- worktreePath: Schema3.NullOr(TrimmedNonEmptyString),
225
- latestTurn: Schema3.NullOr(OrchestrationLatestTurn),
226
- createdAt: IsoDateTime,
227
- updatedAt: IsoDateTime,
228
- deletedAt: Schema3.NullOr(IsoDateTime),
229
- messages: Schema3.Array(OrchestrationMessage),
230
- proposedPlans: Schema3.Array(OrchestrationProposedPlan).pipe(Schema3.withDecodingDefault(() => [])),
231
- activities: Schema3.Array(OrchestrationThreadActivity),
232
- checkpoints: Schema3.Array(OrchestrationCheckpointSummary),
233
- session: Schema3.NullOr(OrchestrationSession)
234
- });
235
- var OrchestrationReadModel = Schema3.Struct({
236
- snapshotSequence: NonNegativeInt,
237
- projects: Schema3.Array(OrchestrationProject),
238
- threads: Schema3.Array(OrchestrationThread),
239
- updatedAt: IsoDateTime
240
- });
241
- var ProjectCreateCommand = Schema3.Struct({
242
- type: Schema3.Literal("project.create"),
243
- commandId: CommandId,
244
- projectId: ProjectId,
245
- title: TrimmedNonEmptyString,
246
- workspaceRoot: TrimmedNonEmptyString,
247
- defaultModel: Schema3.optional(TrimmedNonEmptyString),
248
- createdAt: IsoDateTime
249
- });
250
- var ProjectMetaUpdateCommand = Schema3.Struct({
251
- type: Schema3.Literal("project.meta.update"),
252
- commandId: CommandId,
253
- projectId: ProjectId,
254
- title: Schema3.optional(TrimmedNonEmptyString),
255
- workspaceRoot: Schema3.optional(TrimmedNonEmptyString),
256
- defaultModel: Schema3.optional(TrimmedNonEmptyString),
257
- scripts: Schema3.optional(Schema3.Array(ProjectScript))
258
- });
259
- var ProjectDeleteCommand = Schema3.Struct({
260
- type: Schema3.Literal("project.delete"),
261
- commandId: CommandId,
262
- projectId: ProjectId
263
- });
264
- var ThreadCreateCommand = Schema3.Struct({
265
- type: Schema3.Literal("thread.create"),
266
- commandId: CommandId,
267
- threadId: ThreadId,
268
- projectId: ProjectId,
269
- title: TrimmedNonEmptyString,
270
- model: TrimmedNonEmptyString,
271
- runtimeMode: RuntimeMode,
272
- interactionMode: ProviderInteractionMode.pipe(Schema3.withDecodingDefault(() => DEFAULT_PROVIDER_INTERACTION_MODE)),
273
- branch: Schema3.NullOr(TrimmedNonEmptyString),
274
- worktreePath: Schema3.NullOr(TrimmedNonEmptyString),
275
- createdAt: IsoDateTime
276
- });
277
- var ThreadDeleteCommand = Schema3.Struct({
278
- type: Schema3.Literal("thread.delete"),
279
- commandId: CommandId,
280
- threadId: ThreadId
281
- });
282
- var ThreadMetaUpdateCommand = Schema3.Struct({
283
- type: Schema3.Literal("thread.meta.update"),
284
- commandId: CommandId,
285
- threadId: ThreadId,
286
- title: Schema3.optional(TrimmedNonEmptyString),
287
- model: Schema3.optional(TrimmedNonEmptyString),
288
- branch: Schema3.optional(Schema3.NullOr(TrimmedNonEmptyString)),
289
- worktreePath: Schema3.optional(Schema3.NullOr(TrimmedNonEmptyString))
290
- });
291
- var ThreadRuntimeModeSetCommand = Schema3.Struct({
292
- type: Schema3.Literal("thread.runtime-mode.set"),
293
- commandId: CommandId,
294
- threadId: ThreadId,
295
- runtimeMode: RuntimeMode,
296
- createdAt: IsoDateTime
297
- });
298
- var ThreadInteractionModeSetCommand = Schema3.Struct({
299
- type: Schema3.Literal("thread.interaction-mode.set"),
300
- commandId: CommandId,
301
- threadId: ThreadId,
302
- interactionMode: ProviderInteractionMode,
303
- createdAt: IsoDateTime
304
- });
305
- var ThreadTurnStartCommand = Schema3.Struct({
306
- type: Schema3.Literal("thread.turn.start"),
307
- commandId: CommandId,
308
- threadId: ThreadId,
309
- message: Schema3.Struct({
310
- messageId: MessageId,
311
- role: Schema3.Literal("user"),
312
- text: Schema3.String,
313
- attachments: Schema3.Array(ChatAttachment)
314
- }),
315
- provider: Schema3.optional(ProviderKind),
316
- model: Schema3.optional(TrimmedNonEmptyString),
317
- serviceTier: Schema3.optional(Schema3.NullOr(ProviderServiceTier)),
318
- modelOptions: Schema3.optional(ProviderModelOptions),
319
- assistantDeliveryMode: Schema3.optional(AssistantDeliveryMode),
320
- runtimeMode: RuntimeMode.pipe(Schema3.withDecodingDefault(() => DEFAULT_RUNTIME_MODE)),
321
- interactionMode: ProviderInteractionMode.pipe(Schema3.withDecodingDefault(() => DEFAULT_PROVIDER_INTERACTION_MODE)),
322
- createdAt: IsoDateTime
323
- });
324
- var ClientThreadTurnStartCommand = Schema3.Struct({
325
- type: Schema3.Literal("thread.turn.start"),
326
- commandId: CommandId,
327
- threadId: ThreadId,
328
- message: Schema3.Struct({
329
- messageId: MessageId,
330
- role: Schema3.Literal("user"),
331
- text: Schema3.String,
332
- attachments: Schema3.Array(UploadChatAttachment)
333
- }),
334
- provider: Schema3.optional(ProviderKind),
335
- model: Schema3.optional(TrimmedNonEmptyString),
336
- serviceTier: Schema3.optional(Schema3.NullOr(ProviderServiceTier)),
337
- modelOptions: Schema3.optional(ProviderModelOptions),
338
- assistantDeliveryMode: Schema3.optional(AssistantDeliveryMode),
339
- runtimeMode: RuntimeMode,
340
- interactionMode: ProviderInteractionMode,
341
- createdAt: IsoDateTime
342
- });
343
- var ThreadTurnInterruptCommand = Schema3.Struct({
344
- type: Schema3.Literal("thread.turn.interrupt"),
345
- commandId: CommandId,
346
- threadId: ThreadId,
347
- turnId: Schema3.optional(TurnId),
348
- createdAt: IsoDateTime
349
- });
350
- var ThreadApprovalRespondCommand = Schema3.Struct({
351
- type: Schema3.Literal("thread.approval.respond"),
352
- commandId: CommandId,
353
- threadId: ThreadId,
354
- requestId: ApprovalRequestId,
355
- decision: ProviderApprovalDecision,
356
- createdAt: IsoDateTime
357
- });
358
- var ThreadUserInputRespondCommand = Schema3.Struct({
359
- type: Schema3.Literal("thread.user-input.respond"),
360
- commandId: CommandId,
361
- threadId: ThreadId,
362
- requestId: ApprovalRequestId,
363
- answers: ProviderUserInputAnswers,
364
- createdAt: IsoDateTime
365
- });
366
- var ThreadCheckpointRevertCommand = Schema3.Struct({
367
- type: Schema3.Literal("thread.checkpoint.revert"),
368
- commandId: CommandId,
369
- threadId: ThreadId,
370
- turnCount: NonNegativeInt,
371
- createdAt: IsoDateTime
372
- });
373
- var ThreadSessionStopCommand = Schema3.Struct({
374
- type: Schema3.Literal("thread.session.stop"),
375
- commandId: CommandId,
376
- threadId: ThreadId,
377
- createdAt: IsoDateTime
76
+ name: TrimmedNonEmptyString.check(Schema2.isMaxLength(255)),
77
+ mimeType: TrimmedNonEmptyString.check(Schema2.isMaxLength(100), Schema2.isPattern(/^image\//i)),
78
+ sizeBytes: NonNegativeInt.check(Schema2.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_IMAGE_BYTES))
378
79
  });
379
- var DispatchableClientOrchestrationCommand = Schema3.Union([
380
- ProjectCreateCommand,
381
- ProjectMetaUpdateCommand,
382
- ProjectDeleteCommand,
383
- ThreadCreateCommand,
384
- ThreadDeleteCommand,
385
- ThreadMetaUpdateCommand,
386
- ThreadRuntimeModeSetCommand,
387
- ThreadInteractionModeSetCommand,
388
- ThreadTurnStartCommand,
389
- ThreadTurnInterruptCommand,
390
- ThreadApprovalRespondCommand,
391
- ThreadUserInputRespondCommand,
392
- ThreadCheckpointRevertCommand,
393
- ThreadSessionStopCommand
394
- ]);
395
- var ClientOrchestrationCommand = Schema3.Union([
396
- ProjectCreateCommand,
397
- ProjectMetaUpdateCommand,
398
- ProjectDeleteCommand,
399
- ThreadCreateCommand,
400
- ThreadDeleteCommand,
401
- ThreadMetaUpdateCommand,
402
- ThreadRuntimeModeSetCommand,
403
- ThreadInteractionModeSetCommand,
404
- ClientThreadTurnStartCommand,
405
- ThreadTurnInterruptCommand,
406
- ThreadApprovalRespondCommand,
407
- ThreadUserInputRespondCommand,
408
- ThreadCheckpointRevertCommand,
409
- ThreadSessionStopCommand
410
- ]);
411
- var ThreadSessionSetCommand = Schema3.Struct({
412
- type: Schema3.Literal("thread.session.set"),
413
- commandId: CommandId,
414
- threadId: ThreadId,
415
- session: OrchestrationSession,
416
- createdAt: IsoDateTime
417
- });
418
- var ThreadMessageAssistantDeltaCommand = Schema3.Struct({
419
- type: Schema3.Literal("thread.message.assistant.delta"),
420
- commandId: CommandId,
421
- threadId: ThreadId,
422
- messageId: MessageId,
423
- delta: Schema3.String,
424
- turnId: Schema3.optional(TurnId),
425
- createdAt: IsoDateTime
426
- });
427
- var ThreadMessageAssistantCompleteCommand = Schema3.Struct({
428
- type: Schema3.Literal("thread.message.assistant.complete"),
429
- commandId: CommandId,
430
- threadId: ThreadId,
431
- messageId: MessageId,
432
- turnId: Schema3.optional(TurnId),
433
- createdAt: IsoDateTime
434
- });
435
- var ThreadProposedPlanUpsertCommand = Schema3.Struct({
436
- type: Schema3.Literal("thread.proposed-plan.upsert"),
437
- commandId: CommandId,
438
- threadId: ThreadId,
439
- proposedPlan: OrchestrationProposedPlan,
440
- createdAt: IsoDateTime
441
- });
442
- var ThreadTurnDiffCompleteCommand = Schema3.Struct({
443
- type: Schema3.Literal("thread.turn.diff.complete"),
444
- commandId: CommandId,
445
- threadId: ThreadId,
446
- turnId: TurnId,
447
- completedAt: IsoDateTime,
448
- checkpointRef: CheckpointRef,
449
- status: OrchestrationCheckpointStatus,
450
- files: Schema3.Array(OrchestrationCheckpointFile),
451
- assistantMessageId: Schema3.optional(MessageId),
452
- checkpointTurnCount: NonNegativeInt,
453
- createdAt: IsoDateTime
454
- });
455
- var ThreadActivityAppendCommand = Schema3.Struct({
456
- type: Schema3.Literal("thread.activity.append"),
457
- commandId: CommandId,
458
- threadId: ThreadId,
459
- activity: OrchestrationThreadActivity,
460
- createdAt: IsoDateTime
461
- });
462
- var ThreadRevertCompleteCommand = Schema3.Struct({
463
- type: Schema3.Literal("thread.revert.complete"),
464
- commandId: CommandId,
465
- threadId: ThreadId,
466
- turnCount: NonNegativeInt,
467
- createdAt: IsoDateTime
468
- });
469
- var InternalOrchestrationCommand = Schema3.Union([
470
- ThreadSessionSetCommand,
471
- ThreadMessageAssistantDeltaCommand,
472
- ThreadMessageAssistantCompleteCommand,
473
- ThreadProposedPlanUpsertCommand,
474
- ThreadTurnDiffCompleteCommand,
475
- ThreadActivityAppendCommand,
476
- ThreadRevertCompleteCommand
477
- ]);
478
- var OrchestrationCommand = Schema3.Union([
479
- DispatchableClientOrchestrationCommand,
480
- InternalOrchestrationCommand
481
- ]);
482
- var OrchestrationEventType = Schema3.Literals([
483
- "project.created",
484
- "project.meta-updated",
485
- "project.deleted",
486
- "thread.created",
487
- "thread.deleted",
488
- "thread.meta-updated",
489
- "thread.runtime-mode-set",
490
- "thread.interaction-mode-set",
491
- "thread.message-sent",
492
- "thread.turn-start-requested",
493
- "thread.turn-interrupt-requested",
494
- "thread.approval-response-requested",
495
- "thread.user-input-response-requested",
496
- "thread.checkpoint-revert-requested",
497
- "thread.reverted",
498
- "thread.session-stop-requested",
499
- "thread.session-set",
500
- "thread.proposed-plan-upserted",
501
- "thread.turn-diff-completed",
502
- "thread.activity-appended"
503
- ]);
504
- var OrchestrationAggregateKind = Schema3.Literals(["project", "thread"]);
505
- var OrchestrationActorKind = Schema3.Literals(["client", "server", "provider"]);
506
- var ProjectCreatedPayload = Schema3.Struct({
507
- projectId: ProjectId,
508
- title: TrimmedNonEmptyString,
509
- workspaceRoot: TrimmedNonEmptyString,
510
- defaultModel: Schema3.NullOr(TrimmedNonEmptyString),
511
- scripts: Schema3.Array(ProjectScript),
512
- createdAt: IsoDateTime,
513
- updatedAt: IsoDateTime
514
- });
515
- var ProjectMetaUpdatedPayload = Schema3.Struct({
516
- projectId: ProjectId,
517
- title: Schema3.optional(TrimmedNonEmptyString),
518
- workspaceRoot: Schema3.optional(TrimmedNonEmptyString),
519
- defaultModel: Schema3.optional(Schema3.NullOr(TrimmedNonEmptyString)),
520
- scripts: Schema3.optional(Schema3.Array(ProjectScript)),
521
- updatedAt: IsoDateTime
522
- });
523
- var ProjectDeletedPayload = Schema3.Struct({
524
- projectId: ProjectId,
525
- deletedAt: IsoDateTime
526
- });
527
- var ThreadCreatedPayload = Schema3.Struct({
528
- threadId: ThreadId,
529
- projectId: ProjectId,
530
- title: TrimmedNonEmptyString,
531
- model: TrimmedNonEmptyString,
532
- runtimeMode: RuntimeMode.pipe(Schema3.withDecodingDefault(() => DEFAULT_RUNTIME_MODE)),
533
- interactionMode: ProviderInteractionMode.pipe(Schema3.withDecodingDefault(() => DEFAULT_PROVIDER_INTERACTION_MODE)),
534
- branch: Schema3.NullOr(TrimmedNonEmptyString),
535
- worktreePath: Schema3.NullOr(TrimmedNonEmptyString),
536
- createdAt: IsoDateTime,
537
- updatedAt: IsoDateTime
538
- });
539
- var ThreadDeletedPayload = Schema3.Struct({
540
- threadId: ThreadId,
541
- deletedAt: IsoDateTime
542
- });
543
- var ThreadMetaUpdatedPayload = Schema3.Struct({
544
- threadId: ThreadId,
545
- title: Schema3.optional(TrimmedNonEmptyString),
546
- model: Schema3.optional(TrimmedNonEmptyString),
547
- branch: Schema3.optional(Schema3.NullOr(TrimmedNonEmptyString)),
548
- worktreePath: Schema3.optional(Schema3.NullOr(TrimmedNonEmptyString)),
549
- updatedAt: IsoDateTime
550
- });
551
- var ThreadRuntimeModeSetPayload = Schema3.Struct({
552
- threadId: ThreadId,
553
- runtimeMode: RuntimeMode,
554
- updatedAt: IsoDateTime
555
- });
556
- var ThreadInteractionModeSetPayload = Schema3.Struct({
557
- threadId: ThreadId,
558
- interactionMode: ProviderInteractionMode.pipe(Schema3.withDecodingDefault(() => DEFAULT_PROVIDER_INTERACTION_MODE)),
559
- updatedAt: IsoDateTime
560
- });
561
- var ThreadMessageSentPayload = Schema3.Struct({
562
- threadId: ThreadId,
563
- messageId: MessageId,
564
- role: OrchestrationMessageRole,
565
- text: Schema3.String,
566
- attachments: Schema3.optional(Schema3.Array(ChatAttachment)),
567
- turnId: Schema3.NullOr(TurnId),
568
- streaming: Schema3.Boolean,
569
- createdAt: IsoDateTime,
570
- updatedAt: IsoDateTime
571
- });
572
- var ThreadTurnStartRequestedPayload = Schema3.Struct({
573
- threadId: ThreadId,
574
- messageId: MessageId,
575
- provider: Schema3.optional(ProviderKind),
576
- model: Schema3.optional(TrimmedNonEmptyString),
577
- serviceTier: Schema3.optional(Schema3.NullOr(ProviderServiceTier)),
578
- modelOptions: Schema3.optional(ProviderModelOptions),
579
- assistantDeliveryMode: Schema3.optional(AssistantDeliveryMode),
580
- runtimeMode: RuntimeMode.pipe(Schema3.withDecodingDefault(() => DEFAULT_RUNTIME_MODE)),
581
- interactionMode: ProviderInteractionMode.pipe(Schema3.withDecodingDefault(() => DEFAULT_PROVIDER_INTERACTION_MODE)),
582
- createdAt: IsoDateTime
583
- });
584
- var ThreadTurnInterruptRequestedPayload = Schema3.Struct({
585
- threadId: ThreadId,
586
- turnId: Schema3.optional(TurnId),
587
- createdAt: IsoDateTime
588
- });
589
- var ThreadApprovalResponseRequestedPayload = Schema3.Struct({
590
- threadId: ThreadId,
591
- requestId: ApprovalRequestId,
592
- decision: ProviderApprovalDecision,
593
- createdAt: IsoDateTime
594
- });
595
- var ThreadUserInputResponseRequestedPayload = Schema3.Struct({
596
- threadId: ThreadId,
597
- requestId: ApprovalRequestId,
598
- answers: ProviderUserInputAnswers,
599
- createdAt: IsoDateTime
600
- });
601
- var ThreadCheckpointRevertRequestedPayload = Schema3.Struct({
602
- threadId: ThreadId,
603
- turnCount: NonNegativeInt,
604
- createdAt: IsoDateTime
605
- });
606
- var ThreadRevertedPayload = Schema3.Struct({
607
- threadId: ThreadId,
608
- turnCount: NonNegativeInt
609
- });
610
- var ThreadSessionStopRequestedPayload = Schema3.Struct({
611
- threadId: ThreadId,
612
- createdAt: IsoDateTime
613
- });
614
- var ThreadSessionSetPayload = Schema3.Struct({
615
- threadId: ThreadId,
616
- session: OrchestrationSession
617
- });
618
- var ThreadProposedPlanUpsertedPayload = Schema3.Struct({
619
- threadId: ThreadId,
620
- proposedPlan: OrchestrationProposedPlan
621
- });
622
- var ThreadTurnDiffCompletedPayload = Schema3.Struct({
623
- threadId: ThreadId,
624
- turnId: TurnId,
625
- checkpointTurnCount: NonNegativeInt,
626
- checkpointRef: CheckpointRef,
627
- status: OrchestrationCheckpointStatus,
628
- files: Schema3.Array(OrchestrationCheckpointFile),
629
- assistantMessageId: Schema3.NullOr(MessageId),
630
- completedAt: IsoDateTime
631
- });
632
- var ThreadActivityAppendedPayload = Schema3.Struct({
633
- threadId: ThreadId,
634
- activity: OrchestrationThreadActivity
635
- });
636
- var OrchestrationEventMetadata = Schema3.Struct({
637
- providerTurnId: Schema3.optional(TrimmedNonEmptyString),
638
- providerItemId: Schema3.optional(ProviderItemId),
639
- adapterKey: Schema3.optional(TrimmedNonEmptyString),
640
- requestId: Schema3.optional(ApprovalRequestId),
641
- ingestedAt: Schema3.optional(IsoDateTime)
642
- });
643
- var EventBaseFields = {
644
- sequence: NonNegativeInt,
645
- eventId: EventId,
646
- aggregateKind: OrchestrationAggregateKind,
647
- aggregateId: Schema3.Union([ProjectId, ThreadId]),
648
- occurredAt: IsoDateTime,
649
- commandId: Schema3.NullOr(CommandId),
650
- causationEventId: Schema3.NullOr(EventId),
651
- correlationId: Schema3.NullOr(CommandId),
652
- metadata: OrchestrationEventMetadata
653
- };
654
- var PersistedEventBaseFields = {
655
- sequence: NonNegativeInt,
656
- eventId: EventId,
657
- aggregateKind: OrchestrationAggregateKind,
658
- streamId: Schema3.Union([ProjectId, ThreadId]),
659
- streamVersion: NonNegativeInt,
660
- occurredAt: IsoDateTime,
661
- commandId: Schema3.NullOr(CommandId),
662
- causationEventId: Schema3.NullOr(EventId),
663
- correlationId: Schema3.NullOr(CommandId),
664
- actorKind: OrchestrationActorKind,
665
- metadata: OrchestrationEventMetadata
666
- };
667
- var OrchestrationEvent = Schema3.Union([
668
- Schema3.Struct({
669
- ...EventBaseFields,
670
- type: Schema3.Literal("project.created"),
671
- payload: ProjectCreatedPayload
672
- }),
673
- Schema3.Struct({
674
- ...EventBaseFields,
675
- type: Schema3.Literal("project.meta-updated"),
676
- payload: ProjectMetaUpdatedPayload
677
- }),
678
- Schema3.Struct({
679
- ...EventBaseFields,
680
- type: Schema3.Literal("project.deleted"),
681
- payload: ProjectDeletedPayload
682
- }),
683
- Schema3.Struct({
684
- ...EventBaseFields,
685
- type: Schema3.Literal("thread.created"),
686
- payload: ThreadCreatedPayload
687
- }),
688
- Schema3.Struct({
689
- ...EventBaseFields,
690
- type: Schema3.Literal("thread.deleted"),
691
- payload: ThreadDeletedPayload
692
- }),
693
- Schema3.Struct({
694
- ...EventBaseFields,
695
- type: Schema3.Literal("thread.meta-updated"),
696
- payload: ThreadMetaUpdatedPayload
697
- }),
698
- Schema3.Struct({
699
- ...EventBaseFields,
700
- type: Schema3.Literal("thread.runtime-mode-set"),
701
- payload: ThreadRuntimeModeSetPayload
702
- }),
703
- Schema3.Struct({
704
- ...EventBaseFields,
705
- type: Schema3.Literal("thread.interaction-mode-set"),
706
- payload: ThreadInteractionModeSetPayload
707
- }),
708
- Schema3.Struct({
709
- ...EventBaseFields,
710
- type: Schema3.Literal("thread.message-sent"),
711
- payload: ThreadMessageSentPayload
712
- }),
713
- Schema3.Struct({
714
- ...EventBaseFields,
715
- type: Schema3.Literal("thread.turn-start-requested"),
716
- payload: ThreadTurnStartRequestedPayload
717
- }),
718
- Schema3.Struct({
719
- ...EventBaseFields,
720
- type: Schema3.Literal("thread.turn-interrupt-requested"),
721
- payload: ThreadTurnInterruptRequestedPayload
722
- }),
723
- Schema3.Struct({
724
- ...EventBaseFields,
725
- type: Schema3.Literal("thread.approval-response-requested"),
726
- payload: ThreadApprovalResponseRequestedPayload
727
- }),
728
- Schema3.Struct({
729
- ...EventBaseFields,
730
- type: Schema3.Literal("thread.user-input-response-requested"),
731
- payload: ThreadUserInputResponseRequestedPayload
732
- }),
733
- Schema3.Struct({
734
- ...EventBaseFields,
735
- type: Schema3.Literal("thread.checkpoint-revert-requested"),
736
- payload: ThreadCheckpointRevertRequestedPayload
737
- }),
738
- Schema3.Struct({
739
- ...EventBaseFields,
740
- type: Schema3.Literal("thread.reverted"),
741
- payload: ThreadRevertedPayload
742
- }),
743
- Schema3.Struct({
744
- ...EventBaseFields,
745
- type: Schema3.Literal("thread.session-stop-requested"),
746
- payload: ThreadSessionStopRequestedPayload
747
- }),
748
- Schema3.Struct({
749
- ...EventBaseFields,
750
- type: Schema3.Literal("thread.session-set"),
751
- payload: ThreadSessionSetPayload
752
- }),
753
- Schema3.Struct({
754
- ...EventBaseFields,
755
- type: Schema3.Literal("thread.proposed-plan-upserted"),
756
- payload: ThreadProposedPlanUpsertedPayload
757
- }),
758
- Schema3.Struct({
759
- ...EventBaseFields,
760
- type: Schema3.Literal("thread.turn-diff-completed"),
761
- payload: ThreadTurnDiffCompletedPayload
762
- }),
763
- Schema3.Struct({
764
- ...EventBaseFields,
765
- type: Schema3.Literal("thread.activity-appended"),
766
- payload: ThreadActivityAppendedPayload
767
- })
768
- ]);
769
- var OrchestrationPersistedEvent = Schema3.Union([
770
- Schema3.Struct({
771
- ...PersistedEventBaseFields,
772
- eventType: Schema3.Literal("project.created"),
773
- payload: ProjectCreatedPayload
774
- }),
775
- Schema3.Struct({
776
- ...PersistedEventBaseFields,
777
- eventType: Schema3.Literal("project.meta-updated"),
778
- payload: ProjectMetaUpdatedPayload
779
- }),
780
- Schema3.Struct({
781
- ...PersistedEventBaseFields,
782
- eventType: Schema3.Literal("project.deleted"),
783
- payload: ProjectDeletedPayload
784
- }),
785
- Schema3.Struct({
786
- ...PersistedEventBaseFields,
787
- eventType: Schema3.Literal("thread.created"),
788
- payload: ThreadCreatedPayload
789
- }),
790
- Schema3.Struct({
791
- ...PersistedEventBaseFields,
792
- eventType: Schema3.Literal("thread.deleted"),
793
- payload: ThreadDeletedPayload
794
- }),
795
- Schema3.Struct({
796
- ...PersistedEventBaseFields,
797
- eventType: Schema3.Literal("thread.meta-updated"),
798
- payload: ThreadMetaUpdatedPayload
799
- }),
800
- Schema3.Struct({
801
- ...PersistedEventBaseFields,
802
- eventType: Schema3.Literal("thread.runtime-mode-set"),
803
- payload: ThreadRuntimeModeSetPayload
804
- }),
805
- Schema3.Struct({
806
- ...PersistedEventBaseFields,
807
- eventType: Schema3.Literal("thread.interaction-mode-set"),
808
- payload: ThreadInteractionModeSetPayload
809
- }),
810
- Schema3.Struct({
811
- ...PersistedEventBaseFields,
812
- eventType: Schema3.Literal("thread.message-sent"),
813
- payload: ThreadMessageSentPayload
814
- }),
815
- Schema3.Struct({
816
- ...PersistedEventBaseFields,
817
- eventType: Schema3.Literal("thread.turn-start-requested"),
818
- payload: ThreadTurnStartRequestedPayload
819
- }),
820
- Schema3.Struct({
821
- ...PersistedEventBaseFields,
822
- eventType: Schema3.Literal("thread.turn-interrupt-requested"),
823
- payload: ThreadTurnInterruptRequestedPayload
824
- }),
825
- Schema3.Struct({
826
- ...PersistedEventBaseFields,
827
- eventType: Schema3.Literal("thread.approval-response-requested"),
828
- payload: ThreadApprovalResponseRequestedPayload
829
- }),
830
- Schema3.Struct({
831
- ...PersistedEventBaseFields,
832
- eventType: Schema3.Literal("thread.user-input-response-requested"),
833
- payload: ThreadUserInputResponseRequestedPayload
834
- }),
835
- Schema3.Struct({
836
- ...PersistedEventBaseFields,
837
- eventType: Schema3.Literal("thread.checkpoint-revert-requested"),
838
- payload: ThreadCheckpointRevertRequestedPayload
839
- }),
840
- Schema3.Struct({
841
- ...PersistedEventBaseFields,
842
- eventType: Schema3.Literal("thread.reverted"),
843
- payload: ThreadRevertedPayload
844
- }),
845
- Schema3.Struct({
846
- ...PersistedEventBaseFields,
847
- eventType: Schema3.Literal("thread.session-stop-requested"),
848
- payload: ThreadSessionStopRequestedPayload
849
- }),
850
- Schema3.Struct({
851
- ...PersistedEventBaseFields,
852
- eventType: Schema3.Literal("thread.session-set"),
853
- payload: ThreadSessionSetPayload
854
- }),
855
- Schema3.Struct({
856
- ...PersistedEventBaseFields,
857
- eventType: Schema3.Literal("thread.proposed-plan-upserted"),
858
- payload: ThreadProposedPlanUpsertedPayload
859
- }),
860
- Schema3.Struct({
861
- ...PersistedEventBaseFields,
862
- eventType: Schema3.Literal("thread.turn-diff-completed"),
863
- payload: ThreadTurnDiffCompletedPayload
864
- }),
865
- Schema3.Struct({
866
- ...PersistedEventBaseFields,
867
- eventType: Schema3.Literal("thread.activity-appended"),
868
- payload: ThreadActivityAppendedPayload
869
- })
870
- ]);
871
- var OrchestrationCommandReceiptStatus = Schema3.Literals(["accepted", "rejected"]);
872
- var TurnCountRange = Schema3.Struct({
873
- fromTurnCount: NonNegativeInt,
874
- toTurnCount: NonNegativeInt
875
- }).check(Schema3.makeFilter((input) => input.fromTurnCount <= input.toTurnCount || new SchemaIssue.InvalidValue(Option.some(input.fromTurnCount), {
876
- message: "fromTurnCount must be less than or equal to toTurnCount"
877
- }), { identifier: "OrchestrationTurnDiffRange" }));
878
- var ThreadTurnDiff = TurnCountRange.mapFields(Struct.assign({
879
- threadId: ThreadId,
880
- diff: Schema3.String
881
- }), { unsafePreserveChecks: true });
882
- var ProviderSessionRuntimeStatus = Schema3.Literals([
883
- "starting",
884
- "running",
885
- "stopped",
886
- "error"
887
- ]);
888
- var ProjectionThreadTurnStatus = Schema3.Literals([
889
- "running",
890
- "completed",
891
- "interrupted",
892
- "error"
893
- ]);
894
- var ProjectionCheckpointRow = Schema3.Struct({
895
- threadId: ThreadId,
896
- turnId: TurnId,
897
- checkpointTurnCount: NonNegativeInt,
898
- checkpointRef: CheckpointRef,
899
- status: OrchestrationCheckpointStatus,
900
- files: Schema3.Array(OrchestrationCheckpointFile),
901
- assistantMessageId: Schema3.NullOr(MessageId),
902
- completedAt: IsoDateTime
903
- });
904
- var ProjectionPendingApprovalStatus = Schema3.Literals(["pending", "resolved"]);
905
- var ProjectionPendingApprovalDecision = Schema3.NullOr(ProviderApprovalDecision);
906
- var DispatchResult = Schema3.Struct({
907
- sequence: NonNegativeInt
908
- });
909
- var OrchestrationGetSnapshotInput = Schema3.Struct({});
910
- var OrchestrationGetTurnDiffInput = TurnCountRange.mapFields(Struct.assign({ threadId: ThreadId }), { unsafePreserveChecks: true });
911
- var OrchestrationGetFullThreadDiffInput = Schema3.Struct({
912
- threadId: ThreadId,
913
- toTurnCount: NonNegativeInt
914
- });
915
- var OrchestrationReplayEventsInput = Schema3.Struct({
916
- fromSequenceExclusive: NonNegativeInt
917
- });
918
- var OrchestrationReplayEventsResult = Schema3.Array(OrchestrationEvent);
80
+ var ChatAttachment = Schema2.Union([ChatImageAttachment]);
919
81
 
920
82
  // packages/contracts/src/runtime.ts
921
- var RunKind = Schema4.Literals(["adhoc", "task", "batch", "validation", "review"]);
922
- var RunMode = Schema4.Literals(["interactive", "autonomous", "supervised"]);
923
- var RunStatus = Schema4.Literals([
83
+ var RunKind = Schema3.Literals(["adhoc", "task", "batch", "validation", "review"]);
84
+ var RunMode = Schema3.Literals(["interactive", "autonomous", "supervised"]);
85
+ var RunStatus = Schema3.Literals([
924
86
  "created",
925
87
  "queued",
926
88
  "preparing",
@@ -936,13 +98,13 @@ var RunStatus = Schema4.Literals([
936
98
  "failed",
937
99
  "stopped"
938
100
  ]);
939
- var EngineSandboxMode = Schema4.Literals([
101
+ var EngineSandboxMode = Schema3.Literals([
940
102
  "read-only",
941
103
  "workspace-write",
942
104
  "danger-full-access"
943
105
  ]);
944
- var IsolationMode = Schema4.Literals(["none", "env", "worktree"]);
945
- var RuntimeStatus = Schema4.Literals([
106
+ var IsolationMode = Schema3.Literals(["none", "env", "worktree"]);
107
+ var RuntimeStatus = Schema3.Literals([
946
108
  "prepared",
947
109
  "starting",
948
110
  "running",
@@ -951,188 +113,188 @@ var RuntimeStatus = Schema4.Literals([
951
113
  "failed",
952
114
  "destroyed"
953
115
  ]);
954
- var RunExecutionTarget = Schema4.Literals(["local", "remote"]);
955
- var RunSummary = Schema4.Struct({
116
+ var RunExecutionTarget = Schema3.Literals(["local", "remote"]);
117
+ var RunSummary = Schema3.Struct({
956
118
  id: RunId,
957
119
  workspaceId: WorkspaceId,
958
- taskId: Schema4.NullOr(TaskId),
120
+ taskId: Schema3.NullOr(TaskId),
959
121
  title: TrimmedNonEmptyString,
960
122
  runKind: RunKind,
961
123
  mode: RunMode,
962
124
  runtimeMode: RuntimeMode,
963
125
  interactionMode: ProviderInteractionMode,
964
126
  status: RunStatus,
965
- runtimeAdapter: Schema4.Literal("pi"),
966
- model: Schema4.NullOr(TrimmedNonEmptyString),
967
- initialPrompt: Schema4.NullOr(Schema4.String),
968
- executionTarget: Schema4.optional(RunExecutionTarget),
969
- remoteHostId: Schema4.optional(Schema4.NullOr(TrimmedNonEmptyString)),
970
- remoteLeaseId: Schema4.optional(Schema4.NullOr(TrimmedNonEmptyString)),
971
- remoteLeaseClaimedAt: Schema4.optional(Schema4.NullOr(IsoDateTime)),
972
- activeRuntimeId: Schema4.NullOr(EngineRuntimeId),
973
- latestMessageId: Schema4.NullOr(TrimmedNonEmptyString),
127
+ runtimeAdapter: Schema3.Literal("pi"),
128
+ model: Schema3.NullOr(TrimmedNonEmptyString),
129
+ initialPrompt: Schema3.NullOr(Schema3.String),
130
+ executionTarget: Schema3.optional(RunExecutionTarget),
131
+ remoteHostId: Schema3.optional(Schema3.NullOr(TrimmedNonEmptyString)),
132
+ remoteLeaseId: Schema3.optional(Schema3.NullOr(TrimmedNonEmptyString)),
133
+ remoteLeaseClaimedAt: Schema3.optional(Schema3.NullOr(IsoDateTime)),
134
+ activeRuntimeId: Schema3.NullOr(EngineRuntimeId),
135
+ latestMessageId: Schema3.NullOr(TrimmedNonEmptyString),
974
136
  pendingApprovalCount: NonNegativeInt,
975
137
  pendingUserInputCount: NonNegativeInt,
976
- branch: Schema4.NullOr(TrimmedNonEmptyString),
977
- worktreePath: Schema4.NullOr(TrimmedNonEmptyString),
978
- errorText: Schema4.NullOr(Schema4.String),
138
+ branch: Schema3.NullOr(TrimmedNonEmptyString),
139
+ worktreePath: Schema3.NullOr(TrimmedNonEmptyString),
140
+ errorText: Schema3.NullOr(Schema3.String),
979
141
  createdAt: IsoDateTime,
980
142
  updatedAt: IsoDateTime,
981
- startedAt: Schema4.NullOr(IsoDateTime),
982
- completedAt: Schema4.NullOr(IsoDateTime)
143
+ startedAt: Schema3.NullOr(IsoDateTime),
144
+ completedAt: Schema3.NullOr(IsoDateTime)
983
145
  });
984
- var RuntimeSummary = Schema4.Struct({
146
+ var RuntimeSummary = Schema3.Struct({
985
147
  id: EngineRuntimeId,
986
148
  workspaceId: WorkspaceId,
987
149
  runId: RunId,
988
- adapterKind: Schema4.Literal("pi"),
989
- executionTarget: Schema4.optional(RunExecutionTarget),
990
- remoteHostId: Schema4.optional(Schema4.NullOr(TrimmedNonEmptyString)),
150
+ adapterKind: Schema3.Literal("pi"),
151
+ executionTarget: Schema3.optional(RunExecutionTarget),
152
+ remoteHostId: Schema3.optional(Schema3.NullOr(TrimmedNonEmptyString)),
991
153
  status: RuntimeStatus,
992
154
  sandboxMode: EngineSandboxMode,
993
155
  isolationMode: IsolationMode,
994
- workspaceDir: Schema4.NullOr(TrimmedNonEmptyString),
995
- homeDir: Schema4.NullOr(TrimmedNonEmptyString),
996
- tmpDir: Schema4.NullOr(TrimmedNonEmptyString),
997
- cacheDir: Schema4.NullOr(TrimmedNonEmptyString),
998
- logsDir: Schema4.NullOr(TrimmedNonEmptyString),
999
- stateDir: Schema4.NullOr(TrimmedNonEmptyString),
1000
- sessionDir: Schema4.NullOr(TrimmedNonEmptyString),
1001
- sessionLogPath: Schema4.NullOr(TrimmedNonEmptyString),
1002
- pid: Schema4.NullOr(NonNegativeInt),
1003
- startedAt: Schema4.NullOr(IsoDateTime),
156
+ workspaceDir: Schema3.NullOr(TrimmedNonEmptyString),
157
+ homeDir: Schema3.NullOr(TrimmedNonEmptyString),
158
+ tmpDir: Schema3.NullOr(TrimmedNonEmptyString),
159
+ cacheDir: Schema3.NullOr(TrimmedNonEmptyString),
160
+ logsDir: Schema3.NullOr(TrimmedNonEmptyString),
161
+ stateDir: Schema3.NullOr(TrimmedNonEmptyString),
162
+ sessionDir: Schema3.NullOr(TrimmedNonEmptyString),
163
+ sessionLogPath: Schema3.NullOr(TrimmedNonEmptyString),
164
+ pid: Schema3.NullOr(NonNegativeInt),
165
+ startedAt: Schema3.NullOr(IsoDateTime),
1004
166
  updatedAt: IsoDateTime,
1005
- exitedAt: Schema4.NullOr(IsoDateTime)
167
+ exitedAt: Schema3.NullOr(IsoDateTime)
1006
168
  });
1007
- var ApprovalStatus = Schema4.Literals(["pending", "resolved"]);
1008
- var ApprovalSummary = Schema4.Struct({
169
+ var ApprovalStatus = Schema3.Literals(["pending", "resolved"]);
170
+ var ApprovalSummary = Schema3.Struct({
1009
171
  id: TrimmedNonEmptyString,
1010
172
  runId: RunId,
1011
- actionId: Schema4.NullOr(TrimmedNonEmptyString),
173
+ actionId: Schema3.NullOr(TrimmedNonEmptyString),
1012
174
  requestKind: TrimmedNonEmptyString,
1013
175
  status: ApprovalStatus,
1014
- payload: Schema4.Unknown,
176
+ payload: Schema3.Unknown,
1015
177
  createdAt: IsoDateTime,
1016
- resolvedAt: Schema4.NullOr(IsoDateTime)
178
+ resolvedAt: Schema3.NullOr(IsoDateTime)
1017
179
  });
1018
- var UserInputRequestSummary = Schema4.Struct({
180
+ var UserInputRequestSummary = Schema3.Struct({
1019
181
  id: TrimmedNonEmptyString,
1020
182
  runId: RunId,
1021
183
  status: ApprovalStatus,
1022
- payload: Schema4.Unknown,
184
+ payload: Schema3.Unknown,
1023
185
  createdAt: IsoDateTime,
1024
- resolvedAt: Schema4.NullOr(IsoDateTime)
186
+ resolvedAt: Schema3.NullOr(IsoDateTime)
1025
187
  });
1026
- var WorktreeSummary = Schema4.Struct({
188
+ var WorktreeSummary = Schema3.Struct({
1027
189
  id: WorktreeId,
1028
190
  workspaceId: WorkspaceId,
1029
191
  runId: RunId,
1030
- taskId: Schema4.NullOr(TaskId),
192
+ taskId: Schema3.NullOr(TaskId),
1031
193
  branchName: TrimmedNonEmptyString,
1032
194
  path: TrimmedNonEmptyString,
1033
195
  status: TrimmedNonEmptyString,
1034
196
  createdAt: IsoDateTime,
1035
- cleanedAt: Schema4.NullOr(IsoDateTime)
197
+ cleanedAt: Schema3.NullOr(IsoDateTime)
1036
198
  });
1037
199
 
1038
200
  // packages/contracts/src/stage.ts
1039
- import { Schema as Schema5 } from "effect";
1040
- var StageKind = Schema5.Literals(["transform", "gate", "observe"]);
1041
- var StageId = TrimmedNonEmptyString.pipe(Schema5.brand("StageId"));
1042
- var StageContext = Schema5.Struct({
201
+ import { Schema as Schema4 } from "effect";
202
+ var StageKind = Schema4.Literals(["transform", "gate", "observe"]);
203
+ var StageId = TrimmedNonEmptyString.pipe(Schema4.brand("StageId"));
204
+ var StageContext = Schema4.Struct({
1043
205
  runId: RunId,
1044
- taskId: Schema5.optional(Schema5.NullOr(TaskId)),
1045
- state: Schema5.Unknown,
1046
- metadata: Schema5.optional(Schema5.Record(Schema5.String, Schema5.Unknown))
206
+ taskId: Schema4.optional(Schema4.NullOr(TaskId)),
207
+ state: Schema4.Unknown,
208
+ metadata: Schema4.optional(Schema4.Record(Schema4.String, Schema4.Unknown))
1047
209
  });
1048
- var StageDescriptor = Schema5.Struct({
210
+ var StageDescriptor = Schema4.Struct({
1049
211
  id: StageId,
1050
212
  kind: StageKind,
1051
- before: Schema5.optional(Schema5.Array(StageId)),
1052
- after: Schema5.optional(Schema5.Array(StageId)),
1053
- priority: Schema5.Number.pipe(Schema5.withDecodingDefault(() => 0)),
1054
- protected: Schema5.Boolean.pipe(Schema5.withDecodingDefault(() => false))
213
+ before: Schema4.optional(Schema4.Array(StageId)),
214
+ after: Schema4.optional(Schema4.Array(StageId)),
215
+ priority: Schema4.Number.pipe(Schema4.withDecodingDefault(() => 0)),
216
+ protected: Schema4.Boolean.pipe(Schema4.withDecodingDefault(() => false))
1055
217
  });
1056
- var StageContinueResult = Schema5.Struct({
1057
- kind: Schema5.Literal("continue"),
218
+ var StageContinueResult = Schema4.Struct({
219
+ kind: Schema4.Literal("continue"),
1058
220
  ctx: StageContext
1059
221
  });
1060
- var StageAllowResult = Schema5.Struct({
1061
- kind: Schema5.Literal("allow")
222
+ var StageAllowResult = Schema4.Struct({
223
+ kind: Schema4.Literal("allow")
1062
224
  });
1063
- var StageBlockResult = Schema5.Struct({
1064
- kind: Schema5.Literal("block"),
225
+ var StageBlockResult = Schema4.Struct({
226
+ kind: Schema4.Literal("block"),
1065
227
  reason: TrimmedNonEmptyString
1066
228
  });
1067
- var StageResult = Schema5.Union([
229
+ var StageResult = Schema4.Union([
1068
230
  StageContinueResult,
1069
231
  StageAllowResult,
1070
232
  StageBlockResult
1071
233
  ]);
1072
- var StageWrapperDescriptor = Schema5.Struct({
234
+ var StageWrapperDescriptor = Schema4.Struct({
1073
235
  id: TrimmedNonEmptyString,
1074
- priority: Schema5.Number.pipe(Schema5.withDecodingDefault(() => 0))
236
+ priority: Schema4.Number.pipe(Schema4.withDecodingDefault(() => 0))
1075
237
  });
1076
- var StageMutationOp = Schema5.Literals(["insert", "remove", "replace", "wrap", "reorder"]);
1077
- var InsertStageMutation = Schema5.Struct({
1078
- op: Schema5.Literal("insert"),
238
+ var StageMutationOp = Schema4.Literals(["insert", "remove", "replace", "wrap", "reorder"]);
239
+ var InsertStageMutation = Schema4.Struct({
240
+ op: Schema4.Literal("insert"),
1079
241
  stage: StageDescriptor,
1080
- contributedBy: Schema5.optional(TrimmedNonEmptyString)
242
+ contributedBy: Schema4.optional(TrimmedNonEmptyString)
1081
243
  });
1082
- var RemoveStageMutation = Schema5.Struct({
1083
- op: Schema5.Literal("remove"),
244
+ var RemoveStageMutation = Schema4.Struct({
245
+ op: Schema4.Literal("remove"),
1084
246
  id: StageId,
1085
- contributedBy: Schema5.optional(TrimmedNonEmptyString)
247
+ contributedBy: Schema4.optional(TrimmedNonEmptyString)
1086
248
  });
1087
- var ReplaceStageMutation = Schema5.Struct({
1088
- op: Schema5.Literal("replace"),
249
+ var ReplaceStageMutation = Schema4.Struct({
250
+ op: Schema4.Literal("replace"),
1089
251
  id: StageId,
1090
252
  stage: StageDescriptor,
1091
- contributedBy: Schema5.optional(TrimmedNonEmptyString)
253
+ contributedBy: Schema4.optional(TrimmedNonEmptyString)
1092
254
  });
1093
- var WrapStageMutation = Schema5.Struct({
1094
- op: Schema5.Literal("wrap"),
255
+ var WrapStageMutation = Schema4.Struct({
256
+ op: Schema4.Literal("wrap"),
1095
257
  id: StageId,
1096
258
  around: StageWrapperDescriptor,
1097
- contributedBy: Schema5.optional(TrimmedNonEmptyString)
259
+ contributedBy: Schema4.optional(TrimmedNonEmptyString)
1098
260
  });
1099
- var ReorderStageMutation = Schema5.Struct({
1100
- op: Schema5.Literal("reorder"),
261
+ var ReorderStageMutation = Schema4.Struct({
262
+ op: Schema4.Literal("reorder"),
1101
263
  id: StageId,
1102
- before: Schema5.optional(Schema5.Array(StageId)),
1103
- after: Schema5.optional(Schema5.Array(StageId)),
1104
- contributedBy: Schema5.optional(TrimmedNonEmptyString)
264
+ before: Schema4.optional(Schema4.Array(StageId)),
265
+ after: Schema4.optional(Schema4.Array(StageId)),
266
+ contributedBy: Schema4.optional(TrimmedNonEmptyString)
1105
267
  });
1106
- var StageMutation = Schema5.Union([
268
+ var StageMutation = Schema4.Union([
1107
269
  InsertStageMutation,
1108
270
  RemoveStageMutation,
1109
271
  ReplaceStageMutation,
1110
272
  WrapStageMutation,
1111
273
  ReorderStageMutation
1112
274
  ]);
1113
- var ResolutionGrantUse = Schema5.Struct({
1114
- kind: Schema5.Literal("kernel-replacement"),
275
+ var ResolutionGrantUse = Schema4.Struct({
276
+ kind: Schema4.Literal("kernel-replacement"),
1115
277
  target: TrimmedNonEmptyString,
1116
278
  pluginId: TrimmedNonEmptyString
1117
279
  });
1118
- var ResolutionRecordEntry = Schema5.Struct({
280
+ var ResolutionRecordEntry = Schema4.Struct({
1119
281
  stageId: StageId,
1120
282
  contributedBy: TrimmedNonEmptyString,
1121
- removedBy: Schema5.optional(TrimmedNonEmptyString),
1122
- replacedBy: Schema5.optional(TrimmedNonEmptyString),
1123
- wrappedBy: Schema5.optional(Schema5.Array(TrimmedNonEmptyString)),
1124
- droppedAnchors: Schema5.optional(Schema5.Array(StageId)),
1125
- isProtected: Schema5.Boolean
1126
- });
1127
- var ResolvedPipeline = Schema5.Struct({
1128
- runId: Schema5.optional(RunId),
1129
- order: Schema5.Array(StageId),
1130
- record: Schema5.Array(ResolutionRecordEntry),
1131
- cycles: Schema5.Array(Schema5.Array(StageId)),
1132
- grantUses: Schema5.optional(Schema5.Array(ResolutionGrantUse)),
1133
- resolvedAt: Schema5.optional(IsoDateTime)
1134
- });
1135
- var StageRunOutcome = Schema5.Struct({
283
+ removedBy: Schema4.optional(TrimmedNonEmptyString),
284
+ replacedBy: Schema4.optional(TrimmedNonEmptyString),
285
+ wrappedBy: Schema4.optional(Schema4.Array(TrimmedNonEmptyString)),
286
+ droppedAnchors: Schema4.optional(Schema4.Array(StageId)),
287
+ isProtected: Schema4.Boolean
288
+ });
289
+ var ResolvedPipeline = Schema4.Struct({
290
+ runId: Schema4.optional(RunId),
291
+ order: Schema4.Array(StageId),
292
+ record: Schema4.Array(ResolutionRecordEntry),
293
+ cycles: Schema4.Array(Schema4.Array(StageId)),
294
+ grantUses: Schema4.optional(Schema4.Array(ResolutionGrantUse)),
295
+ resolvedAt: Schema4.optional(IsoDateTime)
296
+ });
297
+ var StageRunOutcome = Schema4.Struct({
1136
298
  stageId: StageId,
1137
299
  result: StageResult,
1138
300
  startedAt: IsoDateTime,
@@ -1140,11 +302,11 @@ var StageRunOutcome = Schema5.Struct({
1140
302
  });
1141
303
 
1142
304
  // packages/contracts/src/run-journal.ts
1143
- var RunActor = Schema6.Struct({
1144
- kind: Schema6.Literals(["operator", "agent", "server", "system"]),
1145
- id: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString))
305
+ var RunActor = Schema5.Struct({
306
+ kind: Schema5.Literals(["operator", "agent", "server", "system"]),
307
+ id: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString))
1146
308
  });
1147
- var RunCloseoutPhase = Schema6.Literals([
309
+ var RunCloseoutPhase = Schema5.Literals([
1148
310
  "queued",
1149
311
  "commit",
1150
312
  "push",
@@ -1154,102 +316,102 @@ var RunCloseoutPhase = Schema6.Literals([
1154
316
  "close-source",
1155
317
  "completed"
1156
318
  ]);
1157
- var RunCloseoutPhaseOutcome = Schema6.Literals(["started", "completed", "failed"]);
1158
- var RunCloseoutStatus = Schema6.Literals([
319
+ var RunCloseoutPhaseOutcome = Schema5.Literals(["started", "completed", "failed"]);
320
+ var RunCloseoutStatus = Schema5.Literals([
1159
321
  "pending",
1160
322
  "running",
1161
323
  "completed",
1162
324
  "needs-attention",
1163
325
  "failed"
1164
326
  ]);
1165
- var RunCloseoutState = Schema6.Struct({
327
+ var RunCloseoutState = Schema5.Struct({
1166
328
  phase: RunCloseoutPhase,
1167
329
  status: RunCloseoutStatus,
1168
330
  updatedAt: IsoDateTime,
1169
- taskId: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
1170
- runtimeWorkspace: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
1171
- branch: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
1172
- prUrl: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
1173
- artifactRoot: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
1174
- iterations: Schema6.optional(Schema6.NullOr(Schema6.Int)),
1175
- feedback: Schema6.optional(Schema6.Array(Schema6.String)),
1176
- error: Schema6.optional(Schema6.NullOr(Schema6.String)),
1177
- reason: Schema6.optional(Schema6.NullOr(Schema6.String)),
1178
- merged: Schema6.optional(Schema6.Boolean),
1179
- resumedAt: Schema6.optional(Schema6.NullOr(IsoDateTime)),
1180
- completedAt: Schema6.optional(Schema6.NullOr(IsoDateTime))
1181
- });
1182
- var ApprovalDecision = Schema6.Literals(["approve", "reject"]);
331
+ taskId: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
332
+ runtimeWorkspace: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
333
+ branch: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
334
+ prUrl: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
335
+ artifactRoot: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
336
+ iterations: Schema5.optional(Schema5.NullOr(Schema5.Int)),
337
+ feedback: Schema5.optional(Schema5.Array(Schema5.String)),
338
+ error: Schema5.optional(Schema5.NullOr(Schema5.String)),
339
+ reason: Schema5.optional(Schema5.NullOr(Schema5.String)),
340
+ merged: Schema5.optional(Schema5.Boolean),
341
+ resumedAt: Schema5.optional(Schema5.NullOr(IsoDateTime)),
342
+ completedAt: Schema5.optional(Schema5.NullOr(IsoDateTime))
343
+ });
344
+ var ApprovalDecision = Schema5.Literals(["approve", "reject"]);
1183
345
  var runRecordFields = {
1184
346
  runId: TrimmedNonEmptyString,
1185
347
  workspaceId: TrimmedNonEmptyString,
1186
- taskId: Schema6.NullOr(TrimmedNonEmptyString),
1187
- threadId: Schema6.NullOr(TrimmedNonEmptyString),
1188
- mode: Schema6.Literals(["local", "remote"]),
1189
- runtimeAdapter: Schema6.Literal("pi"),
348
+ taskId: Schema5.NullOr(TrimmedNonEmptyString),
349
+ threadId: Schema5.NullOr(TrimmedNonEmptyString),
350
+ mode: Schema5.Literals(["local", "remote"]),
351
+ runtimeAdapter: Schema5.Literal("pi"),
1190
352
  createdAt: IsoDateTime,
1191
- startedAt: Schema6.NullOr(IsoDateTime),
1192
- completedAt: Schema6.NullOr(IsoDateTime),
1193
- endpointId: Schema6.NullOr(TrimmedNonEmptyString),
1194
- hostId: Schema6.NullOr(TrimmedNonEmptyString),
1195
- worktreePath: Schema6.NullOr(TrimmedNonEmptyString),
1196
- artifactRoot: Schema6.NullOr(TrimmedNonEmptyString),
1197
- logRoot: Schema6.NullOr(TrimmedNonEmptyString),
1198
- sessionPath: Schema6.NullOr(TrimmedNonEmptyString),
1199
- sessionLogPath: Schema6.NullOr(TrimmedNonEmptyString),
1200
- pid: Schema6.optional(Schema6.NullOr(Schema6.Int)),
1201
- piSession: Schema6.optional(Schema6.Unknown),
1202
- piSessionPrivate: Schema6.optional(Schema6.Unknown),
353
+ startedAt: Schema5.NullOr(IsoDateTime),
354
+ completedAt: Schema5.NullOr(IsoDateTime),
355
+ endpointId: Schema5.NullOr(TrimmedNonEmptyString),
356
+ hostId: Schema5.NullOr(TrimmedNonEmptyString),
357
+ worktreePath: Schema5.NullOr(TrimmedNonEmptyString),
358
+ artifactRoot: Schema5.NullOr(TrimmedNonEmptyString),
359
+ logRoot: Schema5.NullOr(TrimmedNonEmptyString),
360
+ sessionPath: Schema5.NullOr(TrimmedNonEmptyString),
361
+ sessionLogPath: Schema5.NullOr(TrimmedNonEmptyString),
362
+ pid: Schema5.optional(Schema5.NullOr(Schema5.Int)),
363
+ piSession: Schema5.optional(Schema5.Unknown),
364
+ piSessionPrivate: Schema5.optional(Schema5.Unknown),
1203
365
  updatedAt: IsoDateTime,
1204
366
  title: TrimmedNonEmptyString,
1205
- projectRoot: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
1206
- errorText: Schema6.optional(Schema6.NullOr(Schema6.String)),
1207
- latestMessageId: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
1208
- prUrl: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
1209
- leaseId: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
1210
- serverCloseout: Schema6.optional(Schema6.NullOr(RunCloseoutState)),
1211
- model: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
1212
- runtimeMode: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
1213
- interactionMode: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
1214
- runMode: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
1215
- initialPrompt: Schema6.optional(Schema6.NullOr(Schema6.String)),
1216
- baselineMode: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
1217
- prMode: Schema6.optional(Schema6.NullOr(Schema6.Literals(["auto", "ask", "off"]))),
1218
- initiatedBy: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
1219
- sourceTask: Schema6.optional(Schema6.Unknown),
1220
- serverPid: Schema6.optional(Schema6.NullOr(Schema6.Int)),
1221
- latestSteeringAt: Schema6.optional(Schema6.NullOr(IsoDateTime)),
1222
- latestSteeringDeliveredAt: Schema6.optional(Schema6.NullOr(IsoDateTime)),
1223
- statusDetail: Schema6.optional(Schema6.NullOr(Schema6.String)),
1224
- planning: Schema6.optional(Schema6.Unknown),
1225
- branch: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString))
367
+ projectRoot: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
368
+ errorText: Schema5.optional(Schema5.NullOr(Schema5.String)),
369
+ latestMessageId: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
370
+ prUrl: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
371
+ leaseId: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
372
+ serverCloseout: Schema5.optional(Schema5.NullOr(RunCloseoutState)),
373
+ model: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
374
+ runtimeMode: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
375
+ interactionMode: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
376
+ runMode: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
377
+ initialPrompt: Schema5.optional(Schema5.NullOr(Schema5.String)),
378
+ baselineMode: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
379
+ prMode: Schema5.optional(Schema5.NullOr(Schema5.Literals(["auto", "ask", "off"]))),
380
+ initiatedBy: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
381
+ sourceTask: Schema5.optional(Schema5.Unknown),
382
+ serverPid: Schema5.optional(Schema5.NullOr(Schema5.Int)),
383
+ latestSteeringAt: Schema5.optional(Schema5.NullOr(IsoDateTime)),
384
+ latestSteeringDeliveredAt: Schema5.optional(Schema5.NullOr(IsoDateTime)),
385
+ statusDetail: Schema5.optional(Schema5.NullOr(Schema5.String)),
386
+ planning: Schema5.optional(Schema5.Unknown),
387
+ branch: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString))
1226
388
  };
1227
- var RunJournalRecord = Schema6.Struct({
389
+ var RunJournalRecord = Schema5.Struct({
1228
390
  ...runRecordFields,
1229
391
  status: RunStatus
1230
392
  });
1231
- var RunRecordPatch = Schema6.Struct({
1232
- runId: Schema6.optional(runRecordFields.runId),
1233
- workspaceId: Schema6.optional(runRecordFields.workspaceId),
1234
- taskId: Schema6.optional(runRecordFields.taskId),
1235
- threadId: Schema6.optional(runRecordFields.threadId),
1236
- mode: Schema6.optional(runRecordFields.mode),
1237
- runtimeAdapter: Schema6.optional(runRecordFields.runtimeAdapter),
1238
- createdAt: Schema6.optional(runRecordFields.createdAt),
1239
- startedAt: Schema6.optional(runRecordFields.startedAt),
1240
- completedAt: Schema6.optional(runRecordFields.completedAt),
1241
- endpointId: Schema6.optional(runRecordFields.endpointId),
1242
- hostId: Schema6.optional(runRecordFields.hostId),
1243
- worktreePath: Schema6.optional(runRecordFields.worktreePath),
1244
- artifactRoot: Schema6.optional(runRecordFields.artifactRoot),
1245
- logRoot: Schema6.optional(runRecordFields.logRoot),
1246
- sessionPath: Schema6.optional(runRecordFields.sessionPath),
1247
- sessionLogPath: Schema6.optional(runRecordFields.sessionLogPath),
393
+ var RunRecordPatch = Schema5.Struct({
394
+ runId: Schema5.optional(runRecordFields.runId),
395
+ workspaceId: Schema5.optional(runRecordFields.workspaceId),
396
+ taskId: Schema5.optional(runRecordFields.taskId),
397
+ threadId: Schema5.optional(runRecordFields.threadId),
398
+ mode: Schema5.optional(runRecordFields.mode),
399
+ runtimeAdapter: Schema5.optional(runRecordFields.runtimeAdapter),
400
+ createdAt: Schema5.optional(runRecordFields.createdAt),
401
+ startedAt: Schema5.optional(runRecordFields.startedAt),
402
+ completedAt: Schema5.optional(runRecordFields.completedAt),
403
+ endpointId: Schema5.optional(runRecordFields.endpointId),
404
+ hostId: Schema5.optional(runRecordFields.hostId),
405
+ worktreePath: Schema5.optional(runRecordFields.worktreePath),
406
+ artifactRoot: Schema5.optional(runRecordFields.artifactRoot),
407
+ logRoot: Schema5.optional(runRecordFields.logRoot),
408
+ sessionPath: Schema5.optional(runRecordFields.sessionPath),
409
+ sessionLogPath: Schema5.optional(runRecordFields.sessionLogPath),
1248
410
  pid: runRecordFields.pid,
1249
411
  piSession: runRecordFields.piSession,
1250
412
  piSessionPrivate: runRecordFields.piSessionPrivate,
1251
- updatedAt: Schema6.optional(runRecordFields.updatedAt),
1252
- title: Schema6.optional(runRecordFields.title),
413
+ updatedAt: Schema5.optional(runRecordFields.updatedAt),
414
+ title: Schema5.optional(runRecordFields.title),
1253
415
  projectRoot: runRecordFields.projectRoot,
1254
416
  errorText: runRecordFields.errorText,
1255
417
  latestMessageId: runRecordFields.latestMessageId,
@@ -1273,98 +435,98 @@ var RunRecordPatch = Schema6.Struct({
1273
435
  branch: runRecordFields.branch
1274
436
  });
1275
437
  var journalEnvelopeFields = {
1276
- v: Schema6.Literal(1),
438
+ v: Schema5.Literal(1),
1277
439
  seq: PositiveInt,
1278
440
  at: IsoDateTime,
1279
441
  runId: RunId
1280
442
  };
1281
- var RunStatusChangedEvent = Schema6.Struct({
443
+ var RunStatusChangedEvent = Schema5.Struct({
1282
444
  ...journalEnvelopeFields,
1283
- type: Schema6.Literal("status-changed"),
1284
- from: Schema6.NullOr(RunStatus),
445
+ type: Schema5.Literal("status-changed"),
446
+ from: Schema5.NullOr(RunStatus),
1285
447
  to: RunStatus,
1286
- reason: Schema6.optional(Schema6.NullOr(Schema6.String)),
1287
- actor: Schema6.optional(RunActor)
448
+ reason: Schema5.optional(Schema5.NullOr(Schema5.String)),
449
+ actor: Schema5.optional(RunActor)
1288
450
  });
1289
- var RunRecordPatchEvent = Schema6.Struct({
451
+ var RunRecordPatchEvent = Schema5.Struct({
1290
452
  ...journalEnvelopeFields,
1291
- type: Schema6.Literal("record-patch"),
453
+ type: Schema5.Literal("record-patch"),
1292
454
  patch: RunRecordPatch
1293
455
  });
1294
- var RunTimelineEntryEvent = Schema6.Struct({
456
+ var RunTimelineEntryEvent = Schema5.Struct({
1295
457
  ...journalEnvelopeFields,
1296
- type: Schema6.Literal("timeline-entry"),
1297
- payload: Schema6.Unknown
458
+ type: Schema5.Literal("timeline-entry"),
459
+ payload: Schema5.Unknown
1298
460
  });
1299
- var RunLogEntryEvent = Schema6.Struct({
461
+ var RunLogEntryEvent = Schema5.Struct({
1300
462
  ...journalEnvelopeFields,
1301
- type: Schema6.Literal("log-entry"),
1302
- payload: Schema6.Unknown
463
+ type: Schema5.Literal("log-entry"),
464
+ payload: Schema5.Unknown
1303
465
  });
1304
- var RunApprovalRequestedEvent = Schema6.Struct({
466
+ var RunApprovalRequestedEvent = Schema5.Struct({
1305
467
  ...journalEnvelopeFields,
1306
- type: Schema6.Literal("approval-requested"),
468
+ type: Schema5.Literal("approval-requested"),
1307
469
  requestId: TrimmedNonEmptyString,
1308
470
  requestKind: TrimmedNonEmptyString,
1309
- actionId: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
1310
- payload: Schema6.Unknown
471
+ actionId: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
472
+ payload: Schema5.Unknown
1311
473
  });
1312
- var RunApprovalResolvedEvent = Schema6.Struct({
474
+ var RunApprovalResolvedEvent = Schema5.Struct({
1313
475
  ...journalEnvelopeFields,
1314
- type: Schema6.Literal("approval-resolved"),
476
+ type: Schema5.Literal("approval-resolved"),
1315
477
  requestId: TrimmedNonEmptyString,
1316
478
  decision: ApprovalDecision,
1317
- note: Schema6.optional(Schema6.NullOr(Schema6.String)),
479
+ note: Schema5.optional(Schema5.NullOr(Schema5.String)),
1318
480
  actor: RunActor
1319
481
  });
1320
- var RunInputRequestedEvent = Schema6.Struct({
482
+ var RunInputRequestedEvent = Schema5.Struct({
1321
483
  ...journalEnvelopeFields,
1322
- type: Schema6.Literal("input-requested"),
484
+ type: Schema5.Literal("input-requested"),
1323
485
  requestId: TrimmedNonEmptyString,
1324
- payload: Schema6.Unknown
486
+ payload: Schema5.Unknown
1325
487
  });
1326
- var RunInputResolvedEvent = Schema6.Struct({
488
+ var RunInputResolvedEvent = Schema5.Struct({
1327
489
  ...journalEnvelopeFields,
1328
- type: Schema6.Literal("input-resolved"),
490
+ type: Schema5.Literal("input-resolved"),
1329
491
  requestId: TrimmedNonEmptyString,
1330
- answers: Schema6.Record(Schema6.String, Schema6.String),
492
+ answers: Schema5.Record(Schema5.String, Schema5.String),
1331
493
  actor: RunActor
1332
494
  });
1333
- var RunSteeringEvent = Schema6.Struct({
495
+ var RunSteeringEvent = Schema5.Struct({
1334
496
  ...journalEnvelopeFields,
1335
- type: Schema6.Literal("steering"),
497
+ type: Schema5.Literal("steering"),
1336
498
  actor: RunActor,
1337
- text: Schema6.String
499
+ text: Schema5.String
1338
500
  });
1339
- var RunAdoptedEvent = Schema6.Struct({
501
+ var RunAdoptedEvent = Schema5.Struct({
1340
502
  ...journalEnvelopeFields,
1341
- type: Schema6.Literal("adopted"),
1342
- pid: Schema6.NullOr(Schema6.Int),
1343
- serverPid: Schema6.Int
503
+ type: Schema5.Literal("adopted"),
504
+ pid: Schema5.NullOr(Schema5.Int),
505
+ serverPid: Schema5.Int
1344
506
  });
1345
- var RunStallDetectedEvent = Schema6.Struct({
507
+ var RunStallDetectedEvent = Schema5.Struct({
1346
508
  ...journalEnvelopeFields,
1347
- type: Schema6.Literal("stall-detected"),
1348
- detail: Schema6.String
509
+ type: Schema5.Literal("stall-detected"),
510
+ detail: Schema5.String
1349
511
  });
1350
- var RunCloseoutPhaseEvent = Schema6.Struct({
512
+ var RunCloseoutPhaseEvent = Schema5.Struct({
1351
513
  ...journalEnvelopeFields,
1352
- type: Schema6.Literal("closeout-phase"),
514
+ type: Schema5.Literal("closeout-phase"),
1353
515
  phase: RunCloseoutPhase,
1354
516
  outcome: RunCloseoutPhaseOutcome,
1355
- detail: Schema6.optional(Schema6.NullOr(Schema6.String))
517
+ detail: Schema5.optional(Schema5.NullOr(Schema5.String))
1356
518
  });
1357
- var RunPipelineResolvedEvent = Schema6.Struct({
519
+ var RunPipelineResolvedEvent = Schema5.Struct({
1358
520
  ...journalEnvelopeFields,
1359
- type: Schema6.Literal("pipeline-resolved"),
521
+ type: Schema5.Literal("pipeline-resolved"),
1360
522
  pipeline: ResolvedPipeline
1361
523
  });
1362
- var RunStageOutcomeEvent = Schema6.Struct({
524
+ var RunStageOutcomeEvent = Schema5.Struct({
1363
525
  ...journalEnvelopeFields,
1364
- type: Schema6.Literal("stage-outcome"),
526
+ type: Schema5.Literal("stage-outcome"),
1365
527
  outcome: StageRunOutcome
1366
528
  });
1367
- var RunJournalEvent = Schema6.Union([
529
+ var RunJournalEvent = Schema5.Union([
1368
530
  RunStatusChangedEvent,
1369
531
  RunRecordPatchEvent,
1370
532
  RunTimelineEntryEvent,
@@ -1380,239 +542,7 @@ var RunJournalEvent = Schema6.Union([
1380
542
  RunPipelineResolvedEvent,
1381
543
  RunStageOutcomeEvent
1382
544
  ]);
1383
- var decodeRunJournalEvent = Schema6.decodeUnknownSync(RunJournalEvent);
1384
- var RUN_STATUS_TRANSITIONS = {
1385
- created: ["queued", "preparing", "running", "failed", "stopped"],
1386
- queued: ["preparing", "running", "failed", "stopped"],
1387
- preparing: ["queued", "running", "needs-attention", "failed", "stopped"],
1388
- running: [
1389
- "queued",
1390
- "waiting-approval",
1391
- "waiting-user-input",
1392
- "paused",
1393
- "validating",
1394
- "reviewing",
1395
- "closing-out",
1396
- "needs-attention",
1397
- "completed",
1398
- "failed",
1399
- "stopped"
1400
- ],
1401
- "waiting-approval": ["running", "needs-attention", "failed", "stopped"],
1402
- "waiting-user-input": ["running", "needs-attention", "failed", "stopped"],
1403
- paused: ["running", "failed", "stopped"],
1404
- validating: ["running", "reviewing", "closing-out", "needs-attention", "completed", "failed", "stopped"],
1405
- reviewing: ["running", "validating", "closing-out", "needs-attention", "completed", "failed", "stopped"],
1406
- "closing-out": ["running", "needs-attention", "completed", "failed", "stopped"],
1407
- "needs-attention": ["queued", "preparing", "running", "closing-out", "completed", "failed", "stopped"],
1408
- completed: [],
1409
- failed: ["queued", "preparing", "running", "closing-out"],
1410
- stopped: ["queued", "preparing", "running", "closing-out"]
1411
- };
1412
- var TERMINAL_RUN_STATUSES = ["completed", "failed", "stopped"];
1413
- var ACTIVE_RUN_STATUSES = Object.keys(RUN_STATUS_TRANSITIONS).filter((status) => !TERMINAL_RUN_STATUSES.includes(status));
1414
- function isTerminalRunStatus(status) {
1415
- return TERMINAL_RUN_STATUSES.includes(status);
1416
- }
1417
- function isActiveRunStatus(status) {
1418
- return !isTerminalRunStatus(status);
1419
- }
1420
- function canTransitionRunStatus(from, to) {
1421
- if (from === null)
1422
- return true;
1423
- if (from === to)
1424
- return true;
1425
- return RUN_STATUS_TRANSITIONS[from].includes(to);
1426
- }
1427
- function assertRunStatusTransition(from, to) {
1428
- if (!canTransitionRunStatus(from, to)) {
1429
- throw new Error(`Illegal run status transition: ${from ?? "(none)"} -> ${to}. ` + `Allowed from ${from ?? "(none)"}: ${from ? RUN_STATUS_TRANSITIONS[from].join(", ") : "(any)"}.`);
1430
- }
1431
- }
1432
- function reduceRunJournal(events, runId = null) {
1433
- let record = {};
1434
- let status = null;
1435
- const statusHistory = [];
1436
- const pendingApprovals = new Map;
1437
- const resolvedApprovals = [];
1438
- const pendingUserInputs = new Map;
1439
- const resolvedUserInputs = [];
1440
- const closeoutPhases = [];
1441
- let resolvedPipeline = null;
1442
- const stageOutcomes = [];
1443
- const anomalies = [];
1444
- let steeringCount = 0;
1445
- let stallCount = 0;
1446
- let lastSeq = 0;
1447
- let lastEventAt = null;
1448
- const projectedRunId = runId ?? events[0]?.runId ?? null;
1449
- for (const event of events) {
1450
- lastSeq = event.seq;
1451
- lastEventAt = event.at;
1452
- switch (event.type) {
1453
- case "status-changed": {
1454
- if (!canTransitionRunStatus(status, event.to)) {
1455
- anomalies.push({
1456
- seq: event.seq,
1457
- kind: "illegal-transition",
1458
- detail: `${status ?? "(none)"} -> ${event.to}`
1459
- });
1460
- }
1461
- statusHistory.push({
1462
- seq: event.seq,
1463
- at: event.at,
1464
- from: status,
1465
- to: event.to,
1466
- reason: event.reason ?? null
1467
- });
1468
- const wasTerminal = status !== null && isTerminalRunStatus(status);
1469
- status = event.to;
1470
- record = { ...record, updatedAt: event.at };
1471
- if (isTerminalRunStatus(event.to) && !record.completedAt) {
1472
- record = { ...record, completedAt: event.at };
1473
- }
1474
- if (!isTerminalRunStatus(event.to) && wasTerminal) {
1475
- record = { ...record, completedAt: null };
1476
- }
1477
- if (event.to === "running" && !record.startedAt) {
1478
- record = { ...record, startedAt: event.at };
1479
- }
1480
- break;
1481
- }
1482
- case "record-patch": {
1483
- const next = { ...record };
1484
- for (const [key, value] of Object.entries(event.patch)) {
1485
- if (value !== undefined) {
1486
- next[key] = value;
1487
- }
1488
- }
1489
- next.updatedAt = event.patch.updatedAt ?? event.at;
1490
- record = next;
1491
- break;
1492
- }
1493
- case "approval-requested": {
1494
- pendingApprovals.set(event.requestId, {
1495
- requestId: event.requestId,
1496
- requestKind: event.requestKind,
1497
- actionId: event.actionId ?? null,
1498
- payload: event.payload,
1499
- requestedAt: event.at
1500
- });
1501
- break;
1502
- }
1503
- case "approval-resolved": {
1504
- const pending = pendingApprovals.get(event.requestId);
1505
- if (!pending) {
1506
- const alreadyResolved = resolvedApprovals.some((entry) => entry.requestId === event.requestId);
1507
- anomalies.push({
1508
- seq: event.seq,
1509
- kind: alreadyResolved ? "duplicate-resolution" : "unknown-request",
1510
- detail: `approval ${event.requestId}`
1511
- });
1512
- break;
1513
- }
1514
- pendingApprovals.delete(event.requestId);
1515
- resolvedApprovals.push({
1516
- ...pending,
1517
- decision: event.decision,
1518
- note: event.note ?? null,
1519
- actor: event.actor,
1520
- resolvedAt: event.at
1521
- });
1522
- break;
1523
- }
1524
- case "input-requested": {
1525
- pendingUserInputs.set(event.requestId, {
1526
- requestId: event.requestId,
1527
- requestKind: "user-input",
1528
- actionId: null,
1529
- payload: event.payload,
1530
- requestedAt: event.at
1531
- });
1532
- break;
1533
- }
1534
- case "input-resolved": {
1535
- const pending = pendingUserInputs.get(event.requestId);
1536
- if (!pending) {
1537
- const alreadyResolved = resolvedUserInputs.some((entry) => entry.requestId === event.requestId);
1538
- anomalies.push({
1539
- seq: event.seq,
1540
- kind: alreadyResolved ? "duplicate-resolution" : "unknown-request",
1541
- detail: `user-input ${event.requestId}`
1542
- });
1543
- break;
1544
- }
1545
- pendingUserInputs.delete(event.requestId);
1546
- resolvedUserInputs.push({
1547
- ...pending,
1548
- answers: event.answers,
1549
- actor: event.actor,
1550
- resolvedAt: event.at
1551
- });
1552
- break;
1553
- }
1554
- case "steering": {
1555
- steeringCount += 1;
1556
- break;
1557
- }
1558
- case "adopted": {
1559
- record = { ...record, pid: event.pid, updatedAt: event.at };
1560
- break;
1561
- }
1562
- case "stall-detected": {
1563
- stallCount += 1;
1564
- break;
1565
- }
1566
- case "closeout-phase": {
1567
- closeoutPhases.push({
1568
- seq: event.seq,
1569
- at: event.at,
1570
- phase: event.phase,
1571
- outcome: event.outcome,
1572
- detail: event.detail ?? null
1573
- });
1574
- break;
1575
- }
1576
- case "pipeline-resolved": {
1577
- resolvedPipeline = event.pipeline;
1578
- break;
1579
- }
1580
- case "stage-outcome": {
1581
- stageOutcomes.push({ seq: event.seq, at: event.at, outcome: event.outcome });
1582
- break;
1583
- }
1584
- case "timeline-entry":
1585
- case "log-entry":
1586
- break;
1587
- }
1588
- }
1589
- return {
1590
- runId: projectedRunId,
1591
- record,
1592
- status,
1593
- statusHistory,
1594
- pendingApprovals: [...pendingApprovals.values()],
1595
- resolvedApprovals,
1596
- pendingUserInputs: [...pendingUserInputs.values()],
1597
- resolvedUserInputs,
1598
- steeringCount,
1599
- stallCount,
1600
- closeoutPhases,
1601
- resolvedPipeline,
1602
- stageOutcomes,
1603
- lastSeq,
1604
- lastEventAt,
1605
- anomalies
1606
- };
1607
- }
1608
545
  export {
1609
- reduceRunJournal,
1610
- isTerminalRunStatus,
1611
- isActiveRunStatus,
1612
- decodeRunJournalEvent,
1613
- canTransitionRunStatus,
1614
- assertRunStatusTransition,
1615
- TERMINAL_RUN_STATUSES,
1616
546
  RunTimelineEntryEvent,
1617
547
  RunSteeringEvent,
1618
548
  RunStatusChangedEvent,
@@ -1635,7 +565,5 @@ export {
1635
565
  RunApprovalRequestedEvent,
1636
566
  RunAdoptedEvent,
1637
567
  RunActor,
1638
- RUN_STATUS_TRANSITIONS,
1639
- ApprovalDecision,
1640
- ACTIVE_RUN_STATUSES
568
+ ApprovalDecision
1641
569
  };