| ... | @@ -1,226 +1,438 @@ | ... | @@ -1,226 +1,438 @@ |
| 1 | import { Schema } from "effect"; | 1 | import { Schema } from "effect"; |
| 2 | import { TrimmedNonEmptyString } from "./baseSchemas"; | | |
| 3 | | | |
| 4 | import { | 2 | import { |
| 5 | ApprovalRequestId, | | |
| 6 | EventId, | 3 | EventId, |
| 7 | NonNegativeInt, | 4 | IsoDateTime, |
| 8 | ProviderItemId, | 5 | ProviderItemId, |
| 9 | ProviderSessionId, | 6 | ProviderSessionId, |
| 10 | ProviderThreadId, | 7 | ProviderThreadId, |
| 11 | ProviderTurnId, | 8 | ProviderTurnId, |
| 12 | IsoDateTime, | 9 | RuntimeItemId, |
| | 10 | RuntimeRequestId, |
| | 11 | RuntimeSessionId, |
| | 12 | ThreadId, |
| | 13 | TrimmedNonEmptyString, |
| | 14 | TurnId, |
| 13 | } from "./baseSchemas"; | 15 | } from "./baseSchemas"; |
| 14 | import { ProviderApprovalDecision, ProviderKind, ProviderRequestKind } from "./orchestration"; | 16 | import { ProviderKind } from "./orchestration"; |
| 15 | | 17 | |
| 16 | const TrimmedNonEmptyStringSchema = TrimmedNonEmptyString; | 18 | const TrimmedNonEmptyStringSchema = TrimmedNonEmptyString; |
| | 19 | const UnknownRecordSchema = Schema.Record(Schema.String, Schema.Unknown); |
| 17 | | 20 | |
| 18 | export const ProviderRuntimeToolKind = Schema.Union([ProviderRequestKind, Schema.Literal("other")]); | 21 | export const RuntimeEventRawSource = Schema.Literals([ |
| 19 | export type ProviderRuntimeToolKind = typeof ProviderRuntimeToolKind.Type; | 22 | "codex.app-server.notification", |
| | 23 | "codex.app-server.request", |
| | 24 | "codex.eventmsg", |
| | 25 | "claude.sdk.message", |
| | 26 | "claude.sdk.permission", |
| | 27 | "codex.sdk.thread-event", |
| | 28 | ]); |
| | 29 | export type RuntimeEventRawSource = typeof RuntimeEventRawSource.Type; |
| | 30 | |
| | 31 | export const RuntimeEventRaw = Schema.Struct({ |
| | 32 | source: RuntimeEventRawSource, |
| | 33 | method: Schema.optional(TrimmedNonEmptyStringSchema), |
| | 34 | messageType: Schema.optional(TrimmedNonEmptyStringSchema), |
| | 35 | payload: Schema.Unknown, |
| | 36 | }); |
| | 37 | export type RuntimeEventRaw = typeof RuntimeEventRaw.Type; |
| | 38 | |
| | 39 | export const ProviderRequestId = TrimmedNonEmptyStringSchema; |
| | 40 | export type ProviderRequestId = typeof ProviderRequestId.Type; |
| 20 | | 41 | |
| 21 | export const ProviderRuntimeTurnStatus = Schema.Literals([ | 42 | export const ProviderRefs = Schema.Struct({ |
| | 43 | providerSessionId: Schema.optional(ProviderSessionId), |
| | 44 | providerThreadId: Schema.optional(ProviderThreadId), |
| | 45 | providerTurnId: Schema.optional(ProviderTurnId), |
| | 46 | providerItemId: Schema.optional(ProviderItemId), |
| | 47 | providerRequestId: Schema.optional(ProviderRequestId), |
| | 48 | }); |
| | 49 | export type ProviderRefs = typeof ProviderRefs.Type; |
| | 50 | |
| | 51 | export const RuntimeTurnState = Schema.Literals([ |
| 22 | "completed", | 52 | "completed", |
| 23 | "failed", | 53 | "failed", |
| 24 | "cancelled", | | |
| 25 | "interrupted", | 54 | "interrupted", |
| | 55 | "cancelled", |
| 26 | ]); | 56 | ]); |
| 27 | export type ProviderRuntimeTurnStatus = typeof ProviderRuntimeTurnStatus.Type; | 57 | export type RuntimeTurnState = typeof RuntimeTurnState.Type; |
| 28 | | 58 | |
| 29 | export const ProviderRuntimeSessionStartedEvent = Schema.Struct({ | 59 | export const RuntimePlanStepStatus = Schema.Literals(["pending", "inProgress", "completed"]); |
| 30 | type: Schema.Literal("session.started"), | 60 | export type RuntimePlanStepStatus = typeof RuntimePlanStepStatus.Type; |
| | 61 | |
| | 62 | export const RuntimeItemStatus = Schema.Literals(["inProgress", "completed", "failed", "declined"]); |
| | 63 | export type RuntimeItemStatus = typeof RuntimeItemStatus.Type; |
| | 64 | |
| | 65 | export const RuntimeContentStreamKind = Schema.Literals([ |
| | 66 | "assistant_text", |
| | 67 | "reasoning_text", |
| | 68 | "reasoning_summary_text", |
| | 69 | "plan_text", |
| | 70 | "command_output", |
| | 71 | "file_change_output", |
| | 72 | "unknown", |
| | 73 | ]); |
| | 74 | export type RuntimeContentStreamKind = typeof RuntimeContentStreamKind.Type; |
| | 75 | |
| | 76 | export const RuntimeSessionExitKind = Schema.Literals(["graceful", "error"]); |
| | 77 | export type RuntimeSessionExitKind = typeof RuntimeSessionExitKind.Type; |
| | 78 | |
| | 79 | export const RuntimeErrorClass = Schema.Literals([ |
| | 80 | "provider_error", |
| | 81 | "transport_error", |
| | 82 | "permission_error", |
| | 83 | "validation_error", |
| | 84 | "unknown", |
| | 85 | ]); |
| | 86 | export type RuntimeErrorClass = typeof RuntimeErrorClass.Type; |
| | 87 | |
| | 88 | export const CanonicalItemType = Schema.Literals([ |
| | 89 | "user_message", |
| | 90 | "assistant_message", |
| | 91 | "reasoning", |
| | 92 | "plan", |
| | 93 | "command_execution", |
| | 94 | "file_change", |
| | 95 | "mcp_tool_call", |
| | 96 | "dynamic_tool_call", |
| | 97 | "error", |
| | 98 | "unknown", |
| | 99 | ]); |
| | 100 | export type CanonicalItemType = typeof CanonicalItemType.Type; |
| | 101 | |
| | 102 | export const CanonicalRequestType = Schema.Literals([ |
| | 103 | "command_execution_approval", |
| | 104 | "file_change_approval", |
| | 105 | "apply_patch_approval", |
| | 106 | "exec_command_approval", |
| | 107 | "tool_user_input", |
| | 108 | "dynamic_tool_call", |
| | 109 | "unknown", |
| | 110 | ]); |
| | 111 | export type CanonicalRequestType = typeof CanonicalRequestType.Type; |
| | 112 | |
| | 113 | export const ProviderRuntimeEventType = Schema.Literals([ |
| | 114 | "session.started", |
| | 115 | "session.exited", |
| | 116 | "thread.started", |
| | 117 | "turn.started", |
| | 118 | "turn.completed", |
| | 119 | "turn.plan.updated", |
| | 120 | "item.started", |
| | 121 | "item.updated", |
| | 122 | "item.completed", |
| | 123 | "content.delta", |
| | 124 | "request.opened", |
| | 125 | "request.resolved", |
| | 126 | "user-input.requested", |
| | 127 | "user-input.resolved", |
| | 128 | "runtime.warning", |
| | 129 | "runtime.error", |
| | 130 | ]); |
| | 131 | export type ProviderRuntimeEventType = typeof ProviderRuntimeEventType.Type; |
| | 132 | |
| | 133 | export const SessionStartedType = Schema.Literal("session.started"); |
| | 134 | export const SessionExitedType = Schema.Literal("session.exited"); |
| | 135 | export const ThreadStartedType = Schema.Literal("thread.started"); |
| | 136 | export const TurnStartedType = Schema.Literal("turn.started"); |
| | 137 | export const TurnCompletedType = Schema.Literal("turn.completed"); |
| | 138 | export const TurnPlanUpdatedType = Schema.Literal("turn.plan.updated"); |
| | 139 | export const ItemStartedType = Schema.Literal("item.started"); |
| | 140 | export const ItemUpdatedType = Schema.Literal("item.updated"); |
| | 141 | export const ItemCompletedType = Schema.Literal("item.completed"); |
| | 142 | export const ContentDeltaType = Schema.Literal("content.delta"); |
| | 143 | export const RequestOpenedType = Schema.Literal("request.opened"); |
| | 144 | export const RequestResolvedType = Schema.Literal("request.resolved"); |
| | 145 | export const UserInputRequestedType = Schema.Literal("user-input.requested"); |
| | 146 | export const UserInputResolvedType = Schema.Literal("user-input.resolved"); |
| | 147 | export const RuntimeWarningType = Schema.Literal("runtime.warning"); |
| | 148 | export const RuntimeErrorType = Schema.Literal("runtime.error"); |
| | 149 | |
| | 150 | export const ProviderRuntimeEventBase = Schema.Struct({ |
| 31 | eventId: EventId, | 151 | eventId: EventId, |
| 32 | provider: ProviderKind, | 152 | provider: ProviderKind, |
| 33 | sessionId: ProviderSessionId, | 153 | sessionId: RuntimeSessionId, |
| 34 | sessionSequence: Schema.optional(NonNegativeInt), | | |
| 35 | createdAt: IsoDateTime, | 154 | createdAt: IsoDateTime, |
| 36 | threadId: Schema.optional(ProviderThreadId), | 155 | threadId: Schema.optional(ThreadId), |
| | 156 | turnId: Schema.optional(TurnId), |
| | 157 | itemId: Schema.optional(RuntimeItemId), |
| | 158 | requestId: Schema.optional(RuntimeRequestId), |
| | 159 | providerRefs: Schema.optional(ProviderRefs), |
| | 160 | raw: Schema.optional(RuntimeEventRaw), |
| | 161 | }); |
| | 162 | export type ProviderRuntimeEventBase = typeof ProviderRuntimeEventBase.Type; |
| | 163 | |
| | 164 | export const SessionStartedPayload = Schema.Struct({ |
| 37 | message: Schema.optional(TrimmedNonEmptyStringSchema), | 165 | message: Schema.optional(TrimmedNonEmptyStringSchema), |
| | 166 | resume: Schema.optional(Schema.Unknown), |
| | 167 | }); |
| | 168 | export type SessionStartedPayload = typeof SessionStartedPayload.Type; |
| | 169 | |
| | 170 | export const SessionExitedPayload = Schema.Struct({ |
| | 171 | reason: Schema.optional(TrimmedNonEmptyStringSchema), |
| | 172 | recoverable: Schema.optional(Schema.Boolean), |
| | 173 | exitKind: Schema.optional(RuntimeSessionExitKind), |
| | 174 | }); |
| | 175 | export type SessionExitedPayload = typeof SessionExitedPayload.Type; |
| | 176 | |
| | 177 | export const ThreadStartedPayload = Schema.Struct({ |
| | 178 | providerThreadId: Schema.optional(ProviderThreadId), |
| | 179 | }); |
| | 180 | export type ThreadStartedPayload = typeof ThreadStartedPayload.Type; |
| | 181 | |
| | 182 | export const TurnStartedPayload = Schema.Struct({ |
| | 183 | model: Schema.optional(TrimmedNonEmptyStringSchema), |
| | 184 | effort: Schema.optional(TrimmedNonEmptyStringSchema), |
| | 185 | }); |
| | 186 | export type TurnStartedPayload = typeof TurnStartedPayload.Type; |
| | 187 | |
| | 188 | export const TurnCompletedPayload = Schema.Struct({ |
| | 189 | state: RuntimeTurnState, |
| | 190 | stopReason: Schema.optional(Schema.NullOr(TrimmedNonEmptyStringSchema)), |
| | 191 | usage: Schema.optional(Schema.Unknown), |
| | 192 | modelUsage: Schema.optional(UnknownRecordSchema), |
| | 193 | totalCostUsd: Schema.optional(Schema.Number), |
| | 194 | errorMessage: Schema.optional(TrimmedNonEmptyStringSchema), |
| | 195 | }); |
| | 196 | export type TurnCompletedPayload = typeof TurnCompletedPayload.Type; |
| | 197 | |
| | 198 | export const RuntimePlanStep = Schema.Struct({ |
| | 199 | step: TrimmedNonEmptyStringSchema, |
| | 200 | status: RuntimePlanStepStatus, |
| | 201 | }); |
| | 202 | export type RuntimePlanStep = typeof RuntimePlanStep.Type; |
| | 203 | |
| | 204 | export const TurnPlanUpdatedPayload = Schema.Struct({ |
| | 205 | explanation: Schema.optional(Schema.NullOr(TrimmedNonEmptyStringSchema)), |
| | 206 | plan: Schema.Array(RuntimePlanStep), |
| | 207 | }); |
| | 208 | export type TurnPlanUpdatedPayload = typeof TurnPlanUpdatedPayload.Type; |
| | 209 | |
| | 210 | export const ItemLifecyclePayload = Schema.Struct({ |
| | 211 | itemType: CanonicalItemType, |
| | 212 | status: Schema.optional(RuntimeItemStatus), |
| | 213 | title: Schema.optional(TrimmedNonEmptyStringSchema), |
| | 214 | detail: Schema.optional(TrimmedNonEmptyStringSchema), |
| | 215 | data: Schema.optional(Schema.Unknown), |
| | 216 | }); |
| | 217 | export type ItemLifecyclePayload = typeof ItemLifecyclePayload.Type; |
| | 218 | |
| | 219 | export const ContentDeltaPayload = Schema.Struct({ |
| | 220 | streamKind: RuntimeContentStreamKind, |
| | 221 | delta: Schema.String, |
| | 222 | contentIndex: Schema.optional(Schema.Int), |
| | 223 | summaryIndex: Schema.optional(Schema.Int), |
| | 224 | }); |
| | 225 | export type ContentDeltaPayload = typeof ContentDeltaPayload.Type; |
| | 226 | |
| | 227 | export const RequestOpenedPayload = Schema.Struct({ |
| | 228 | requestType: CanonicalRequestType, |
| | 229 | detail: Schema.optional(TrimmedNonEmptyStringSchema), |
| | 230 | args: Schema.optional(Schema.Unknown), |
| | 231 | }); |
| | 232 | export type RequestOpenedPayload = typeof RequestOpenedPayload.Type; |
| | 233 | |
| | 234 | export const RequestResolvedPayload = Schema.Struct({ |
| | 235 | requestType: CanonicalRequestType, |
| | 236 | decision: Schema.optional(TrimmedNonEmptyStringSchema), |
| | 237 | resolution: Schema.optional(Schema.Unknown), |
| | 238 | }); |
| | 239 | export type RequestResolvedPayload = typeof RequestResolvedPayload.Type; |
| | 240 | |
| | 241 | export const UserInputQuestionOption = Schema.Struct({ |
| | 242 | label: TrimmedNonEmptyStringSchema, |
| | 243 | description: TrimmedNonEmptyStringSchema, |
| | 244 | }); |
| | 245 | export type UserInputQuestionOption = typeof UserInputQuestionOption.Type; |
| | 246 | |
| | 247 | export const UserInputQuestion = Schema.Struct({ |
| | 248 | id: TrimmedNonEmptyStringSchema, |
| | 249 | header: TrimmedNonEmptyStringSchema, |
| | 250 | question: TrimmedNonEmptyStringSchema, |
| | 251 | options: Schema.Array(UserInputQuestionOption), |
| | 252 | }); |
| | 253 | export type UserInputQuestion = typeof UserInputQuestion.Type; |
| | 254 | |
| | 255 | export const UserInputRequestedPayload = Schema.Struct({ |
| | 256 | questions: Schema.Array(UserInputQuestion), |
| | 257 | }); |
| | 258 | export type UserInputRequestedPayload = typeof UserInputRequestedPayload.Type; |
| | 259 | |
| | 260 | export const UserInputResolvedPayload = Schema.Struct({ |
| | 261 | answers: UnknownRecordSchema, |
| | 262 | }); |
| | 263 | export type UserInputResolvedPayload = typeof UserInputResolvedPayload.Type; |
| | 264 | |
| | 265 | export const RuntimeWarningPayload = Schema.Struct({ |
| | 266 | message: TrimmedNonEmptyStringSchema, |
| | 267 | detail: Schema.optional(Schema.Unknown), |
| | 268 | }); |
| | 269 | export type RuntimeWarningPayload = typeof RuntimeWarningPayload.Type; |
| | 270 | |
| | 271 | export const RuntimeErrorPayload = Schema.Struct({ |
| | 272 | message: TrimmedNonEmptyStringSchema, |
| | 273 | class: Schema.optional(RuntimeErrorClass), |
| | 274 | detail: Schema.optional(Schema.Unknown), |
| | 275 | }); |
| | 276 | export type RuntimeErrorPayload = typeof RuntimeErrorPayload.Type; |
| | 277 | |
| | 278 | export const ProviderRuntimeSessionStartedEvent = Schema.Struct({ |
| | 279 | ...ProviderRuntimeEventBase.fields, |
| | 280 | type: SessionStartedType, |
| | 281 | payload: SessionStartedPayload, |
| 38 | }); | 282 | }); |
| 39 | export type ProviderRuntimeSessionStartedEvent = typeof ProviderRuntimeSessionStartedEvent.Type; | 283 | export type ProviderRuntimeSessionStartedEvent = typeof ProviderRuntimeSessionStartedEvent.Type; |
| 40 | | 284 | |
| 41 | export const ProviderRuntimeSessionExitedEvent = Schema.Struct({ | 285 | export const ProviderRuntimeSessionExitedEvent = Schema.Struct({ |
| 42 | type: Schema.Literal("session.exited"), | 286 | ...ProviderRuntimeEventBase.fields, |
| 43 | eventId: EventId, | 287 | type: SessionExitedType, |
| 44 | provider: ProviderKind, | 288 | payload: SessionExitedPayload, |
| 45 | sessionId: ProviderSessionId, | | |
| 46 | sessionSequence: Schema.optional(NonNegativeInt), | | |
| 47 | createdAt: IsoDateTime, | | |
| 48 | threadId: Schema.optional(ProviderThreadId), | | |
| 49 | message: Schema.optional(TrimmedNonEmptyStringSchema), | | |
| 50 | }); | 289 | }); |
| 51 | export type ProviderRuntimeSessionExitedEvent = typeof ProviderRuntimeSessionExitedEvent.Type; | 290 | export type ProviderRuntimeSessionExitedEvent = typeof ProviderRuntimeSessionExitedEvent.Type; |
| 52 | | 291 | |
| 53 | export const ProviderRuntimeThreadStartedEvent = Schema.Struct({ | 292 | export const ProviderRuntimeThreadStartedEvent = Schema.Struct({ |
| 54 | type: Schema.Literal("thread.started"), | 293 | ...ProviderRuntimeEventBase.fields, |
| 55 | eventId: EventId, | 294 | type: ThreadStartedType, |
| 56 | provider: ProviderKind, | 295 | payload: ThreadStartedPayload, |
| 57 | sessionId: ProviderSessionId, | | |
| 58 | sessionSequence: Schema.optional(NonNegativeInt), | | |
| 59 | createdAt: IsoDateTime, | | |
| 60 | threadId: ProviderThreadId, | | |
| 61 | }); | 296 | }); |
| 62 | export type ProviderRuntimeThreadStartedEvent = typeof ProviderRuntimeThreadStartedEvent.Type; | 297 | export type ProviderRuntimeThreadStartedEvent = typeof ProviderRuntimeThreadStartedEvent.Type; |
| 63 | | 298 | |
| 64 | export const ProviderRuntimeTurnStartedEvent = Schema.Struct({ | 299 | export const ProviderRuntimeTurnStartedEvent = Schema.Struct({ |
| 65 | type: Schema.Literal("turn.started"), | 300 | ...ProviderRuntimeEventBase.fields, |
| 66 | eventId: EventId, | 301 | type: TurnStartedType, |
| 67 | provider: ProviderKind, | 302 | payload: TurnStartedPayload, |
| 68 | sessionId: ProviderSessionId, | | |
| 69 | sessionSequence: Schema.optional(NonNegativeInt), | | |
| 70 | createdAt: IsoDateTime, | | |
| 71 | threadId: Schema.optional(ProviderThreadId), | | |
| 72 | turnId: ProviderTurnId, | | |
| 73 | }); | 303 | }); |
| 74 | export type ProviderRuntimeTurnStartedEvent = typeof ProviderRuntimeTurnStartedEvent.Type; | 304 | export type ProviderRuntimeTurnStartedEvent = typeof ProviderRuntimeTurnStartedEvent.Type; |
| 75 | | 305 | |
| 76 | export const ProviderRuntimeTurnCompletedEvent = Schema.Struct({ | 306 | export const ProviderRuntimeTurnCompletedEvent = Schema.Struct({ |
| 77 | type: Schema.Literal("turn.completed"), | 307 | ...ProviderRuntimeEventBase.fields, |
| 78 | eventId: EventId, | 308 | type: TurnCompletedType, |
| 79 | provider: ProviderKind, | 309 | payload: TurnCompletedPayload, |
| 80 | sessionId: ProviderSessionId, | | |
| 81 | sessionSequence: Schema.optional(NonNegativeInt), | | |
| 82 | createdAt: IsoDateTime, | | |
| 83 | threadId: Schema.optional(ProviderThreadId), | | |
| 84 | turnId: Schema.optional(ProviderTurnId), | | |
| 85 | status: Schema.optional(ProviderRuntimeTurnStatus), | | |
| 86 | errorMessage: Schema.optional(TrimmedNonEmptyStringSchema), | | |
| 87 | }); | 310 | }); |
| 88 | export type ProviderRuntimeTurnCompletedEvent = typeof ProviderRuntimeTurnCompletedEvent.Type; | 311 | export type ProviderRuntimeTurnCompletedEvent = typeof ProviderRuntimeTurnCompletedEvent.Type; |
| 89 | | 312 | |
| 90 | export const ProviderRuntimeMessageDeltaEvent = Schema.Struct({ | 313 | export const ProviderRuntimeTurnPlanUpdatedEvent = Schema.Struct({ |
| 91 | type: Schema.Literal("message.delta"), | 314 | ...ProviderRuntimeEventBase.fields, |
| 92 | eventId: EventId, | 315 | type: TurnPlanUpdatedType, |
| 93 | provider: ProviderKind, | 316 | payload: TurnPlanUpdatedPayload, |
| 94 | sessionId: ProviderSessionId, | | |
| 95 | sessionSequence: Schema.optional(NonNegativeInt), | | |
| 96 | createdAt: IsoDateTime, | | |
| 97 | threadId: Schema.optional(ProviderThreadId), | | |
| 98 | turnId: Schema.optional(ProviderTurnId), | | |
| 99 | itemId: Schema.optional(ProviderItemId), | | |
| 100 | delta: Schema.String, | | |
| 101 | }); | 317 | }); |
| 102 | export type ProviderRuntimeMessageDeltaEvent = typeof ProviderRuntimeMessageDeltaEvent.Type; | 318 | export type ProviderRuntimeTurnPlanUpdatedEvent = typeof ProviderRuntimeTurnPlanUpdatedEvent.Type; |
| 103 | | 319 | |
| 104 | export const ProviderRuntimeMessageCompletedEvent = Schema.Struct({ | 320 | export const ProviderRuntimeItemStartedEvent = Schema.Struct({ |
| 105 | type: Schema.Literal("message.completed"), | 321 | ...ProviderRuntimeEventBase.fields, |
| 106 | eventId: EventId, | 322 | type: ItemStartedType, |
| 107 | provider: ProviderKind, | 323 | payload: ItemLifecyclePayload, |
| 108 | sessionId: ProviderSessionId, | | |
| 109 | sessionSequence: Schema.optional(NonNegativeInt), | | |
| 110 | createdAt: IsoDateTime, | | |
| 111 | itemId: ProviderItemId, | | |
| 112 | threadId: Schema.optional(ProviderThreadId), | | |
| 113 | turnId: Schema.optional(ProviderTurnId), | | |
| 114 | }); | 324 | }); |
| 115 | export type ProviderRuntimeMessageCompletedEvent = typeof ProviderRuntimeMessageCompletedEvent.Type; | 325 | export type ProviderRuntimeItemStartedEvent = typeof ProviderRuntimeItemStartedEvent.Type; |
| 116 | | 326 | |
| 117 | export const ProviderRuntimeToolStartedEvent = Schema.Struct({ | 327 | export const ProviderRuntimeItemUpdatedEvent = Schema.Struct({ |
| 118 | type: Schema.Literal("tool.started"), | 328 | ...ProviderRuntimeEventBase.fields, |
| 119 | eventId: EventId, | 329 | type: ItemUpdatedType, |
| 120 | provider: ProviderKind, | 330 | payload: ItemLifecyclePayload, |
| 121 | sessionId: ProviderSessionId, | | |
| 122 | sessionSequence: Schema.optional(NonNegativeInt), | | |
| 123 | createdAt: IsoDateTime, | | |
| 124 | threadId: Schema.optional(ProviderThreadId), | | |
| 125 | turnId: Schema.optional(ProviderTurnId), | | |
| 126 | itemId: Schema.optional(ProviderItemId), | | |
| 127 | toolKind: ProviderRuntimeToolKind, | | |
| 128 | title: TrimmedNonEmptyStringSchema, | | |
| 129 | detail: Schema.optional(TrimmedNonEmptyStringSchema), | | |
| 130 | }); | 331 | }); |
| 131 | export type ProviderRuntimeToolStartedEvent = typeof ProviderRuntimeToolStartedEvent.Type; | 332 | export type ProviderRuntimeItemUpdatedEvent = typeof ProviderRuntimeItemUpdatedEvent.Type; |
| 132 | | 333 | |
| 133 | export const ProviderRuntimeToolCompletedEvent = Schema.Struct({ | 334 | export const ProviderRuntimeItemCompletedEvent = Schema.Struct({ |
| 134 | type: Schema.Literal("tool.completed"), | 335 | ...ProviderRuntimeEventBase.fields, |
| 135 | eventId: EventId, | 336 | type: ItemCompletedType, |
| 136 | provider: ProviderKind, | 337 | payload: ItemLifecyclePayload, |
| 137 | sessionId: ProviderSessionId, | | |
| 138 | sessionSequence: Schema.optional(NonNegativeInt), | | |
| 139 | createdAt: IsoDateTime, | | |
| 140 | threadId: Schema.optional(ProviderThreadId), | | |
| 141 | turnId: Schema.optional(ProviderTurnId), | | |
| 142 | itemId: Schema.optional(ProviderItemId), | | |
| 143 | toolKind: ProviderRuntimeToolKind, | | |
| 144 | title: TrimmedNonEmptyStringSchema, | | |
| 145 | detail: Schema.optional(TrimmedNonEmptyStringSchema), | | |
| 146 | }); | 338 | }); |
| 147 | export type ProviderRuntimeToolCompletedEvent = typeof ProviderRuntimeToolCompletedEvent.Type; | 339 | export type ProviderRuntimeItemCompletedEvent = typeof ProviderRuntimeItemCompletedEvent.Type; |
| 148 | | 340 | |
| 149 | export const ProviderRuntimeApprovalRequestedEvent = Schema.Struct({ | 341 | export const ProviderRuntimeContentDeltaEvent = Schema.Struct({ |
| 150 | type: Schema.Literal("approval.requested"), | 342 | ...ProviderRuntimeEventBase.fields, |
| 151 | eventId: EventId, | 343 | type: ContentDeltaType, |
| 152 | provider: ProviderKind, | 344 | payload: ContentDeltaPayload, |
| 153 | sessionId: ProviderSessionId, | | |
| 154 | sessionSequence: Schema.optional(NonNegativeInt), | | |
| 155 | createdAt: IsoDateTime, | | |
| 156 | threadId: Schema.optional(ProviderThreadId), | | |
| 157 | turnId: Schema.optional(ProviderTurnId), | | |
| 158 | itemId: Schema.optional(ProviderItemId), | | |
| 159 | requestId: ApprovalRequestId, | | |
| 160 | requestKind: ProviderRequestKind, | | |
| 161 | detail: Schema.optional(TrimmedNonEmptyStringSchema), | | |
| 162 | }); | 345 | }); |
| 163 | export type ProviderRuntimeApprovalRequestedEvent = | 346 | export type ProviderRuntimeContentDeltaEvent = typeof ProviderRuntimeContentDeltaEvent.Type; |
| 164 | typeof ProviderRuntimeApprovalRequestedEvent.Type; | | |
| 165 | | 347 | |
| 166 | export const ProviderRuntimeApprovalResolvedEvent = Schema.Struct({ | 348 | export const ProviderRuntimeRequestOpenedEvent = Schema.Struct({ |
| 167 | type: Schema.Literal("approval.resolved"), | 349 | ...ProviderRuntimeEventBase.fields, |
| 168 | eventId: EventId, | 350 | type: RequestOpenedType, |
| 169 | provider: ProviderKind, | 351 | payload: RequestOpenedPayload, |
| 170 | sessionId: ProviderSessionId, | | |
| 171 | sessionSequence: Schema.optional(NonNegativeInt), | | |
| 172 | createdAt: IsoDateTime, | | |
| 173 | threadId: Schema.optional(ProviderThreadId), | | |
| 174 | turnId: Schema.optional(ProviderTurnId), | | |
| 175 | itemId: Schema.optional(ProviderItemId), | | |
| 176 | requestId: ApprovalRequestId, | | |
| 177 | requestKind: Schema.optional(ProviderRequestKind), | | |
| 178 | decision: Schema.optional(ProviderApprovalDecision), | | |
| 179 | }); | 352 | }); |
| 180 | export type ProviderRuntimeApprovalResolvedEvent = typeof ProviderRuntimeApprovalResolvedEvent.Type; | 353 | export type ProviderRuntimeRequestOpenedEvent = typeof ProviderRuntimeRequestOpenedEvent.Type; |
| 181 | | 354 | |
| 182 | export const ProviderRuntimeCheckpointCapturedEvent = Schema.Struct({ | 355 | export const ProviderRuntimeRequestResolvedEvent = Schema.Struct({ |
| 183 | type: Schema.Literal("checkpoint.captured"), | 356 | ...ProviderRuntimeEventBase.fields, |
| 184 | eventId: EventId, | 357 | type: RequestResolvedType, |
| 185 | provider: ProviderKind, | 358 | payload: RequestResolvedPayload, |
| 186 | sessionId: ProviderSessionId, | | |
| 187 | sessionSequence: Schema.optional(NonNegativeInt), | | |
| 188 | createdAt: IsoDateTime, | | |
| 189 | threadId: ProviderThreadId, | | |
| 190 | turnId: Schema.optional(ProviderTurnId), | | |
| 191 | turnCount: NonNegativeInt, | | |
| 192 | status: Schema.optional(ProviderRuntimeTurnStatus), | | |
| 193 | }); | 359 | }); |
| 194 | export type ProviderRuntimeCheckpointCapturedEvent = | 360 | export type ProviderRuntimeRequestResolvedEvent = typeof ProviderRuntimeRequestResolvedEvent.Type; |
| 195 | typeof ProviderRuntimeCheckpointCapturedEvent.Type; | 361 | |
| | 362 | export const ProviderRuntimeUserInputRequestedEvent = Schema.Struct({ |
| | 363 | ...ProviderRuntimeEventBase.fields, |
| | 364 | type: UserInputRequestedType, |
| | 365 | payload: UserInputRequestedPayload, |
| | 366 | }); |
| | 367 | export type ProviderRuntimeUserInputRequestedEvent = |
| | 368 | typeof ProviderRuntimeUserInputRequestedEvent.Type; |
| | 369 | |
| | 370 | export const ProviderRuntimeUserInputResolvedEvent = Schema.Struct({ |
| | 371 | ...ProviderRuntimeEventBase.fields, |
| | 372 | type: UserInputResolvedType, |
| | 373 | payload: UserInputResolvedPayload, |
| | 374 | }); |
| | 375 | export type ProviderRuntimeUserInputResolvedEvent = |
| | 376 | typeof ProviderRuntimeUserInputResolvedEvent.Type; |
| | 377 | |
| | 378 | export const ProviderRuntimeWarningEvent = Schema.Struct({ |
| | 379 | ...ProviderRuntimeEventBase.fields, |
| | 380 | type: RuntimeWarningType, |
| | 381 | payload: RuntimeWarningPayload, |
| | 382 | }); |
| | 383 | export type ProviderRuntimeWarningEvent = typeof ProviderRuntimeWarningEvent.Type; |
| 196 | | 384 | |
| 197 | export const ProviderRuntimeErrorEvent = Schema.Struct({ | 385 | export const ProviderRuntimeErrorEvent = Schema.Struct({ |
| 198 | type: Schema.Literal("runtime.error"), | 386 | ...ProviderRuntimeEventBase.fields, |
| 199 | eventId: EventId, | 387 | type: RuntimeErrorType, |
| 200 | provider: ProviderKind, | 388 | payload: RuntimeErrorPayload, |
| 201 | sessionId: ProviderSessionId, | | |
| 202 | sessionSequence: Schema.optional(NonNegativeInt), | | |
| 203 | createdAt: IsoDateTime, | | |
| 204 | threadId: Schema.optional(ProviderThreadId), | | |
| 205 | turnId: Schema.optional(ProviderTurnId), | | |
| 206 | itemId: Schema.optional(ProviderItemId), | | |
| 207 | message: TrimmedNonEmptyStringSchema, | | |
| 208 | }); | 389 | }); |
| 209 | export type ProviderRuntimeErrorEvent = typeof ProviderRuntimeErrorEvent.Type; | 390 | export type ProviderRuntimeErrorEvent = typeof ProviderRuntimeErrorEvent.Type; |
| 210 | | 391 | |
| 211 | export const ProviderRuntimeEvent = Schema.Union([ | 392 | export const ProviderRuntimeEventV2 = Schema.Union([ |
| 212 | ProviderRuntimeSessionStartedEvent, | 393 | ProviderRuntimeSessionStartedEvent, |
| 213 | ProviderRuntimeSessionExitedEvent, | 394 | ProviderRuntimeSessionExitedEvent, |
| 214 | ProviderRuntimeThreadStartedEvent, | 395 | ProviderRuntimeThreadStartedEvent, |
| 215 | ProviderRuntimeTurnStartedEvent, | 396 | ProviderRuntimeTurnStartedEvent, |
| 216 | ProviderRuntimeTurnCompletedEvent, | 397 | ProviderRuntimeTurnCompletedEvent, |
| 217 | ProviderRuntimeMessageDeltaEvent, | 398 | ProviderRuntimeTurnPlanUpdatedEvent, |
| 218 | ProviderRuntimeMessageCompletedEvent, | 399 | ProviderRuntimeItemStartedEvent, |
| 219 | ProviderRuntimeToolStartedEvent, | 400 | ProviderRuntimeItemUpdatedEvent, |
| 220 | ProviderRuntimeToolCompletedEvent, | 401 | ProviderRuntimeItemCompletedEvent, |
| 221 | ProviderRuntimeApprovalRequestedEvent, | 402 | ProviderRuntimeContentDeltaEvent, |
| 222 | ProviderRuntimeApprovalResolvedEvent, | 403 | ProviderRuntimeRequestOpenedEvent, |
| 223 | ProviderRuntimeCheckpointCapturedEvent, | 404 | ProviderRuntimeRequestResolvedEvent, |
| | 405 | ProviderRuntimeUserInputRequestedEvent, |
| | 406 | ProviderRuntimeUserInputResolvedEvent, |
| | 407 | ProviderRuntimeWarningEvent, |
| 224 | ProviderRuntimeErrorEvent, | 408 | ProviderRuntimeErrorEvent, |
| 225 | ]); | 409 | ]); |
| 226 | export type ProviderRuntimeEvent = typeof ProviderRuntimeEvent.Type; | 410 | export type ProviderRuntimeEventV2 = typeof ProviderRuntimeEventV2.Type; |
| | 411 | |
| | 412 | export const ProviderRuntimeEvent = ProviderRuntimeEventV2; |
| | 413 | export type ProviderRuntimeEvent = ProviderRuntimeEventV2; |
| | 414 | |
| | 415 | export const ProviderRuntimeMessageDeltaEvent = ProviderRuntimeContentDeltaEvent; |
| | 416 | export type ProviderRuntimeMessageDeltaEvent = ProviderRuntimeContentDeltaEvent; |
| | 417 | export const ProviderRuntimeMessageCompletedEvent = ProviderRuntimeItemCompletedEvent; |
| | 418 | export type ProviderRuntimeMessageCompletedEvent = ProviderRuntimeItemCompletedEvent; |
| | 419 | export const ProviderRuntimeToolStartedEvent = ProviderRuntimeItemStartedEvent; |
| | 420 | export type ProviderRuntimeToolStartedEvent = ProviderRuntimeItemStartedEvent; |
| | 421 | export const ProviderRuntimeToolCompletedEvent = ProviderRuntimeItemCompletedEvent; |
| | 422 | export type ProviderRuntimeToolCompletedEvent = ProviderRuntimeItemCompletedEvent; |
| | 423 | export const ProviderRuntimeApprovalRequestedEvent = ProviderRuntimeRequestOpenedEvent; |
| | 424 | export type ProviderRuntimeApprovalRequestedEvent = ProviderRuntimeRequestOpenedEvent; |
| | 425 | export const ProviderRuntimeApprovalResolvedEvent = ProviderRuntimeRequestResolvedEvent; |
| | 426 | export type ProviderRuntimeApprovalResolvedEvent = ProviderRuntimeRequestResolvedEvent; |
| | 427 | |
| | 428 | export const ProviderRuntimeToolKind = Schema.Literals([ |
| | 429 | "command_execution", |
| | 430 | "file_change", |
| | 431 | "mcp_tool_call", |
| | 432 | "dynamic_tool_call", |
| | 433 | "other", |
| | 434 | ]); |
| | 435 | export type ProviderRuntimeToolKind = typeof ProviderRuntimeToolKind.Type; |
| | 436 | |
| | 437 | export const ProviderRuntimeTurnStatus = RuntimeTurnState; |
| | 438 | export type ProviderRuntimeTurnStatus = RuntimeTurnState; |