@h-rig/contracts 0.0.6-alpha.15 → 0.0.6-alpha.151

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