@h-rig/contracts 0.0.6-alpha.18 → 0.0.6-alpha.180

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 (205) hide show
  1. package/dist/index.cjs +3442 -0
  2. package/dist/index.mjs +3401 -0
  3. package/dist/src/agent-roles.d.ts +8 -0
  4. package/dist/src/artifact.d.ts +13 -0
  5. package/dist/src/artifact.js +3 -0
  6. package/dist/src/baseSchemas.d.ts +63 -0
  7. package/dist/src/baseSchemas.js +6 -0
  8. package/dist/src/blocker-classifier.d.ts +21 -0
  9. package/dist/src/blocker-classifier.js +13 -0
  10. package/dist/src/browser.d.ts +80 -0
  11. package/dist/src/browser.js +13 -0
  12. package/dist/src/capability-id.d.ts +22 -0
  13. package/dist/src/capability-id.js +8 -0
  14. package/dist/src/cli-output.d.ts +348 -0
  15. package/dist/src/cli-output.js +190 -0
  16. package/dist/src/cli-runner.d.ts +43 -0
  17. package/dist/src/cli-runner.js +13 -0
  18. package/dist/src/cockpit.d.ts +58 -0
  19. package/dist/src/cockpit.js +13 -0
  20. package/dist/src/collab-session-viewer.d.ts +36 -0
  21. package/dist/src/collab-session-viewer.js +13 -0
  22. package/dist/src/config.d.ts +553 -0
  23. package/dist/src/config.js +767 -162
  24. package/dist/src/control-plane-types.d.ts +323 -0
  25. package/dist/src/control-plane-types.js +13 -0
  26. package/dist/src/conversation.d.ts +50 -0
  27. package/dist/src/conversation.js +3 -0
  28. package/dist/src/dependency-preflight.d.ts +43 -0
  29. package/dist/src/dependency-preflight.js +13 -0
  30. package/dist/src/docs-drift.d.ts +10 -0
  31. package/dist/src/docs-drift.js +12 -0
  32. package/dist/src/doctor.d.ts +90 -0
  33. package/dist/src/doctor.js +13 -0
  34. package/dist/src/drift.d.ts +28 -0
  35. package/dist/src/drift.js +69 -0
  36. package/dist/src/editor.d.ts +25 -0
  37. package/dist/src/editor.js +3 -0
  38. package/dist/src/errors.d.ts +13 -0
  39. package/dist/src/errors.js +17 -0
  40. package/dist/src/git.d.ts +152 -0
  41. package/dist/src/git.js +3 -0
  42. package/dist/src/github.d.ts +295 -0
  43. package/dist/src/github.js +17 -0
  44. package/dist/src/graph.d.ts +360 -0
  45. package/dist/src/graph.js +137 -1
  46. package/dist/src/guard.d.ts +118 -0
  47. package/dist/src/guard.js +15 -0
  48. package/dist/src/harness-events.d.ts +8 -0
  49. package/dist/src/harness-events.js +1 -0
  50. package/dist/src/harness-profile-state.d.ts +10 -0
  51. package/dist/src/harness-profile-state.js +13 -0
  52. package/dist/src/help-catalog.d.ts +41 -0
  53. package/dist/src/help-catalog.js +13 -0
  54. package/dist/src/host.d.ts +41 -0
  55. package/dist/src/host.js +13 -0
  56. package/dist/src/identity.d.ts +44 -0
  57. package/dist/src/identity.js +1 -0
  58. package/dist/src/index.d.ts +98 -0
  59. package/dist/src/index.js +2605 -3752
  60. package/dist/src/isolation.d.ts +213 -0
  61. package/dist/src/isolation.js +13 -0
  62. package/dist/src/kernel.d.ts +200 -0
  63. package/dist/src/kernel.js +261 -0
  64. package/dist/src/keybindings.d.ts +71 -0
  65. package/dist/src/keybindings.js +3 -0
  66. package/dist/src/layout.d.ts +44 -0
  67. package/dist/src/layout.js +8 -0
  68. package/dist/src/lifecycle-capabilities.d.ts +224 -0
  69. package/dist/src/lifecycle-capabilities.js +45 -0
  70. package/dist/src/managed-repos.d.ts +339 -0
  71. package/dist/src/managed-repos.js +37 -0
  72. package/dist/src/memory.d.ts +199 -0
  73. package/dist/src/memory.js +15 -0
  74. package/dist/src/model.d.ts +13 -0
  75. package/dist/src/model.js +3 -58
  76. package/dist/src/native-toolchain.d.ts +46 -0
  77. package/dist/src/native-toolchain.js +13 -0
  78. package/dist/src/notify.d.ts +46 -0
  79. package/dist/src/notify.js +13 -0
  80. package/dist/src/orchestration.d.ts +43 -0
  81. package/dist/src/orchestration.js +28 -961
  82. package/dist/src/panel-protocol.d.ts +17 -0
  83. package/dist/src/panel-protocol.js +10 -0
  84. package/dist/src/pi-session.d.ts +113 -0
  85. package/dist/src/pi-session.js +1 -0
  86. package/dist/src/placement.d.ts +47 -0
  87. package/dist/src/placement.js +13 -0
  88. package/dist/src/planning.d.ts +64 -0
  89. package/dist/src/planning.js +90 -0
  90. package/dist/src/plugin-hooks.d.ts +51 -0
  91. package/dist/src/plugin-hooks.js +386 -0
  92. package/dist/src/plugin.d.ts +476 -0
  93. package/dist/src/plugin.js +346 -64
  94. package/dist/src/policy.d.ts +16 -0
  95. package/dist/src/policy.js +3 -0
  96. package/dist/src/product-entrypoint.d.ts +22 -0
  97. package/dist/src/product-entrypoint.js +13 -0
  98. package/dist/src/project.d.ts +71 -0
  99. package/dist/src/project.js +3 -0
  100. package/dist/src/prompt.d.ts +29 -0
  101. package/dist/src/prompt.js +13 -0
  102. package/dist/src/protocol-version.d.ts +21 -0
  103. package/dist/src/protocol-version.js +6 -0
  104. package/dist/src/provider-instructions.d.ts +41 -0
  105. package/dist/src/provider-instructions.js +13 -0
  106. package/dist/src/provider.d.ts +105 -0
  107. package/dist/src/provider.js +16 -835
  108. package/dist/src/remote-control.d.ts +93 -0
  109. package/dist/src/remote-control.js +26 -0
  110. package/dist/src/remote.d.ts +318 -0
  111. package/dist/src/remote.js +238 -1078
  112. package/dist/src/review.d.ts +18 -0
  113. package/dist/src/review.js +3 -0
  114. package/dist/src/rollups.d.ts +41 -0
  115. package/dist/src/rollups.js +70 -0
  116. package/dist/src/run-control.d.ts +164 -0
  117. package/dist/src/run-control.js +13 -0
  118. package/dist/src/run-discovery.d.ts +83 -0
  119. package/dist/src/run-discovery.js +13 -0
  120. package/dist/src/run-dispatch.d.ts +34 -0
  121. package/dist/src/run-dispatch.js +13 -0
  122. package/dist/src/run-identity.d.ts +47 -0
  123. package/dist/src/run-identity.js +13 -0
  124. package/dist/src/run-journal.d.ts +694 -0
  125. package/dist/src/run-journal.js +569 -0
  126. package/dist/src/run-queue.d.ts +36 -0
  127. package/dist/src/run-queue.js +13 -0
  128. package/dist/src/run-read-model.d.ts +200 -0
  129. package/dist/src/run-read-model.js +13 -0
  130. package/dist/src/run-record.d.ts +45 -0
  131. package/dist/src/run-record.js +1 -0
  132. package/dist/src/run-registry-backbone.d.ts +56 -0
  133. package/dist/src/run-registry-backbone.js +13 -0
  134. package/dist/src/run-session-journal.d.ts +154 -0
  135. package/dist/src/run-session-journal.js +87 -0
  136. package/dist/src/run-status.d.ts +10 -0
  137. package/dist/src/run-status.js +27 -0
  138. package/dist/src/run-timeline.d.ts +7 -0
  139. package/dist/src/run-timeline.js +1 -0
  140. package/dist/src/runtime-secrets.d.ts +10 -0
  141. package/dist/src/runtime-secrets.js +13 -0
  142. package/dist/src/runtime-task-context.d.ts +82 -0
  143. package/dist/src/runtime-task-context.js +1 -0
  144. package/dist/src/runtime.d.ts +103 -0
  145. package/dist/src/runtime.js +73 -906
  146. package/dist/src/session-asset-materializer.d.ts +35 -0
  147. package/dist/src/session-asset-materializer.js +13 -0
  148. package/dist/src/session-hook-materializer.d.ts +41 -0
  149. package/dist/src/session-hook-materializer.js +13 -0
  150. package/dist/src/setup.d.ts +154 -0
  151. package/dist/src/setup.js +13 -0
  152. package/dist/src/stage.d.ts +245 -0
  153. package/dist/src/stage.js +169 -0
  154. package/dist/src/supervisor-journal.d.ts +204 -0
  155. package/dist/src/supervisor-journal.js +336 -0
  156. package/dist/src/supervisor-loop.d.ts +40 -0
  157. package/dist/src/supervisor-loop.js +13 -0
  158. package/dist/src/task-artifacts.d.ts +53 -0
  159. package/dist/src/task-artifacts.js +13 -0
  160. package/dist/src/task-config.d.ts +22 -0
  161. package/dist/src/task-config.js +1 -0
  162. package/dist/src/task-context-renderer.d.ts +29 -0
  163. package/dist/src/task-context-renderer.js +13 -0
  164. package/dist/src/task-data.d.ts +196 -0
  165. package/dist/src/task-data.js +13 -0
  166. package/dist/src/task-graph-primitives.d.ts +47 -0
  167. package/dist/src/task-graph-primitives.js +1 -0
  168. package/dist/src/task-source.d.ts +167 -0
  169. package/dist/src/task-source.js +24 -0
  170. package/dist/src/task-state-metadata.d.ts +21 -0
  171. package/dist/src/task-state-metadata.js +1 -0
  172. package/dist/src/task-state-paths.d.ts +14 -0
  173. package/dist/src/task-state-paths.js +13 -0
  174. package/dist/src/task-state-store.d.ts +36 -0
  175. package/dist/src/task-state-store.js +17 -0
  176. package/dist/src/task-tracker-state.d.ts +101 -0
  177. package/dist/src/task-tracker-state.js +39 -0
  178. package/dist/src/terminal.d.ts +130 -0
  179. package/dist/src/terminal.js +3 -0
  180. package/dist/src/tool-materializer.d.ts +36 -0
  181. package/dist/src/tool-materializer.js +13 -0
  182. package/dist/src/tool-registry.d.ts +3 -0
  183. package/dist/src/tool-registry.js +58 -0
  184. package/dist/src/toolchain-sources.d.ts +54 -0
  185. package/dist/src/toolchain-sources.js +17 -0
  186. package/dist/src/transport-config.d.ts +161 -0
  187. package/dist/src/transport-config.js +15 -0
  188. package/dist/src/validation.d.ts +14 -0
  189. package/dist/src/validation.js +3 -0
  190. package/dist/src/workflow-journal.d.ts +125 -0
  191. package/dist/src/workflow-journal.js +27 -0
  192. package/dist/src/workspace-config.d.ts +18 -0
  193. package/dist/src/workspace-config.js +13 -0
  194. package/dist/src/workspace-service.d.ts +16 -0
  195. package/dist/src/workspace-service.js +13 -0
  196. package/dist/src/workspace.d.ts +204 -0
  197. package/dist/src/workspace.js +76 -911
  198. package/package.json +55 -4
  199. package/dist/src/engine.js +0 -2278
  200. package/dist/src/providerRuntime.js +0 -1630
  201. package/dist/src/rig.js +0 -2374
  202. package/dist/src/server.js +0 -1053
  203. package/dist/src/serviceFabric.js +0 -1066
  204. package/dist/src/ws.js +0 -2968
  205. /package/dist/src/{ipc.js → agent-roles.js} +0 -0
@@ -1,10 +1,233 @@
1
1
  // @bun
2
2
  // packages/contracts/src/config.ts
3
- import { Schema as Schema2 } from "effect";
3
+ import { Schema as Schema8 } 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/capability-id.ts
49
+ function makeCapabilityId(id) {
50
+ return id;
51
+ }
52
+
53
+ // packages/contracts/src/stage.ts
54
+ import { Schema as Schema2 } from "effect";
55
+ var StageKind = Schema2.Literals(["transform", "gate", "observe"]);
56
+ var StageId = TrimmedNonEmptyString.pipe(Schema2.brand("StageId"));
57
+ var StageContext = Schema2.Struct({
58
+ runId: RunId,
59
+ taskId: Schema2.optional(Schema2.NullOr(TaskId)),
60
+ state: Schema2.Unknown,
61
+ metadata: Schema2.optional(Schema2.Record(Schema2.String, Schema2.Unknown))
62
+ });
63
+ var StageDescriptor = Schema2.Struct({
64
+ id: StageId,
65
+ kind: StageKind,
66
+ before: Schema2.optional(Schema2.Array(StageId)),
67
+ after: Schema2.optional(Schema2.Array(StageId)),
68
+ priority: Schema2.Number.pipe(Schema2.withDecodingDefault(() => 0)),
69
+ protected: Schema2.Boolean.pipe(Schema2.withDecodingDefault(() => false))
70
+ });
71
+ var Stage = StageDescriptor;
72
+ var StageContinueResult = Schema2.Struct({
73
+ kind: Schema2.Literal("continue"),
74
+ ctx: StageContext
75
+ });
76
+ var StageAllowResult = Schema2.Struct({
77
+ kind: Schema2.Literal("allow")
78
+ });
79
+ var StageBlockResult = Schema2.Struct({
80
+ kind: Schema2.Literal("block"),
81
+ reason: TrimmedNonEmptyString
82
+ });
83
+ var StageResult = Schema2.Union([
84
+ StageContinueResult,
85
+ StageAllowResult,
86
+ StageBlockResult
87
+ ]);
88
+ var StageWrapperDescriptor = Schema2.Struct({
89
+ id: TrimmedNonEmptyString,
90
+ priority: Schema2.Number.pipe(Schema2.withDecodingDefault(() => 0))
91
+ });
92
+ var StageMutationOp = Schema2.Literals(["insert", "remove", "replace", "wrap", "reorder"]);
93
+ var InsertStageMutation = Schema2.Struct({
94
+ op: Schema2.Literal("insert"),
95
+ stage: StageDescriptor,
96
+ contributedBy: Schema2.optional(TrimmedNonEmptyString)
97
+ });
98
+ var RemoveStageMutation = Schema2.Struct({
99
+ op: Schema2.Literal("remove"),
100
+ id: StageId,
101
+ contributedBy: Schema2.optional(TrimmedNonEmptyString)
102
+ });
103
+ var ReplaceStageMutation = Schema2.Struct({
104
+ op: Schema2.Literal("replace"),
105
+ id: StageId,
106
+ stage: StageDescriptor,
107
+ contributedBy: Schema2.optional(TrimmedNonEmptyString)
108
+ });
109
+ var WrapStageMutation = Schema2.Struct({
110
+ op: Schema2.Literal("wrap"),
111
+ id: StageId,
112
+ around: StageWrapperDescriptor,
113
+ contributedBy: Schema2.optional(TrimmedNonEmptyString)
114
+ });
115
+ var ReorderStageMutation = Schema2.Struct({
116
+ op: Schema2.Literal("reorder"),
117
+ id: StageId,
118
+ before: Schema2.optional(Schema2.Array(StageId)),
119
+ after: Schema2.optional(Schema2.Array(StageId)),
120
+ contributedBy: Schema2.optional(TrimmedNonEmptyString)
121
+ });
122
+ var StageMutation = Schema2.Union([
123
+ InsertStageMutation,
124
+ RemoveStageMutation,
125
+ ReplaceStageMutation,
126
+ WrapStageMutation,
127
+ ReorderStageMutation
128
+ ]);
129
+ var ResolutionGrantUse = Schema2.Struct({
130
+ kind: Schema2.Literal("kernel-replacement"),
131
+ target: TrimmedNonEmptyString,
132
+ pluginId: TrimmedNonEmptyString
133
+ });
134
+ var ResolutionRecordEntry = Schema2.Struct({
135
+ stageId: StageId,
136
+ contributedBy: TrimmedNonEmptyString,
137
+ removedBy: Schema2.optional(TrimmedNonEmptyString),
138
+ replacedBy: Schema2.optional(TrimmedNonEmptyString),
139
+ wrappedBy: Schema2.optional(Schema2.Array(TrimmedNonEmptyString)),
140
+ droppedAnchors: Schema2.optional(Schema2.Array(StageId)),
141
+ isProtected: Schema2.Boolean
142
+ });
143
+ var ResolvedPipeline = Schema2.Struct({
144
+ runId: Schema2.optional(RunId),
145
+ order: Schema2.Array(StageId),
146
+ record: Schema2.Array(ResolutionRecordEntry),
147
+ cycles: Schema2.Array(Schema2.Array(StageId)),
148
+ grantUses: Schema2.optional(Schema2.Array(ResolutionGrantUse)),
149
+ resolvedAt: Schema2.optional(IsoDateTime)
150
+ });
151
+ var StageRunOutcome = Schema2.Struct({
152
+ stageId: StageId,
153
+ result: StageResult,
154
+ startedAt: IsoDateTime,
155
+ finishedAt: IsoDateTime
156
+ });
157
+
158
+ // packages/contracts/src/kernel.ts
159
+ var CapabilityTag = Schema3.Literals([
160
+ "kernel",
161
+ "journal",
162
+ "stage-runner",
163
+ "transport",
164
+ "loader-policy"
165
+ ]);
166
+ var CapabilityProviderRef = Schema3.Struct({
167
+ capability: CapabilityTag,
168
+ pluginId: TrimmedNonEmptyString
169
+ });
170
+ var CapabilityReplacement = Schema3.Struct({
171
+ capability: CapabilityTag,
172
+ providerPluginId: TrimmedNonEmptyString
173
+ });
174
+ var CapabilityReplacementSpec = Schema3.Union([
175
+ CapabilityReplacement,
176
+ TrimmedNonEmptyString
177
+ ]);
178
+ var KernelReplacementGrant = Schema3.Struct({
179
+ pluginId: TrimmedNonEmptyString,
180
+ grantedBy: Schema3.optional(TrimmedNonEmptyString),
181
+ reason: Schema3.optional(Schema3.String)
182
+ });
183
+ var CapabilityGrants = Schema3.Struct({
184
+ capabilityPrecedence: Schema3.optional(Schema3.Record(Schema3.String, Schema3.Array(TrimmedNonEmptyString))),
185
+ kernelReplacementGrants: Schema3.optional(Schema3.Array(KernelReplacementGrant))
186
+ });
187
+ var KernelBootErrorCode = Schema3.Literals([
188
+ "BootIncoherent",
189
+ "AmbiguousCapability",
190
+ "MissingCapability",
191
+ "KernelReplacementDenied",
192
+ "PipelineUnresolvable"
193
+ ]);
194
+ var KernelBootError = Schema3.Struct({
195
+ code: KernelBootErrorCode,
196
+ message: TrimmedNonEmptyString,
197
+ capability: Schema3.optional(CapabilityTag),
198
+ stageId: Schema3.optional(TrimmedNonEmptyString),
199
+ pluginIds: Schema3.optional(Schema3.Array(TrimmedNonEmptyString))
200
+ });
201
+ var CapabilityResolutionStatus = Schema3.Literals(["resolved", "ambiguous", "missing", "replaced"]);
202
+ var CapabilityResolutionRecord = Schema3.Struct({
203
+ capability: CapabilityTag,
204
+ status: CapabilityResolutionStatus,
205
+ selectedPluginId: Schema3.NullOr(TrimmedNonEmptyString),
206
+ candidatePluginIds: Schema3.Array(TrimmedNonEmptyString),
207
+ precedenceUsed: Schema3.Boolean,
208
+ replacementUsed: Schema3.optional(CapabilityReplacement),
209
+ error: Schema3.optional(Schema3.String)
210
+ });
211
+ var KernelResolutionRecord = Schema3.Struct({
212
+ resolvedAt: IsoDateTime,
213
+ capabilities: Schema3.Array(CapabilityResolutionRecord),
214
+ pipeline: Schema3.optional(ResolvedPipeline)
215
+ });
216
+ var BootResultDescriptor = Schema3.Struct({
217
+ kernelPluginId: TrimmedNonEmptyString,
218
+ pluginIds: Schema3.Array(TrimmedNonEmptyString),
219
+ resolution: KernelResolutionRecord
220
+ });
221
+ var JournalEvent = Schema3.Struct({
222
+ type: TrimmedNonEmptyString,
223
+ runId: Schema3.optional(RunId),
224
+ at: IsoDateTime,
225
+ payload: Schema3.Unknown
226
+ });
227
+ var PLACEMENT_RUN_TRANSPORT = makeCapabilityId("transport.placement-run");
228
+
229
+ // packages/contracts/src/plugin.ts
230
+ var ValidatorCategory = Schema4.Literals([
8
231
  "boundary",
9
232
  "contract",
10
233
  "integration",
@@ -12,12 +235,12 @@ var ValidatorCategory = Schema.Literals([
12
235
  "external",
13
236
  "custom"
14
237
  ]);
15
- var ValidatorRegistration = Schema.Struct({
16
- id: Schema.String,
238
+ var ValidatorRegistration = Schema4.Struct({
239
+ id: Schema4.String,
17
240
  category: ValidatorCategory,
18
- description: Schema.optional(Schema.String)
241
+ description: Schema4.optional(Schema4.String)
19
242
  });
20
- var HookEvent = Schema.Literals([
243
+ var AgentSessionHookEvent = Schema4.Literals([
21
244
  "PreToolUse",
22
245
  "PostToolUse",
23
246
  "UserPromptSubmit",
@@ -25,190 +248,572 @@ var HookEvent = Schema.Literals([
25
248
  "SessionStart",
26
249
  "SessionEnd"
27
250
  ]);
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 })
251
+ var HookMatcher = Schema4.Union([
252
+ Schema4.Struct({ kind: Schema4.Literal("all") }),
253
+ Schema4.Struct({ kind: Schema4.Literal("tool"), name: Schema4.String }),
254
+ Schema4.Struct({ kind: Schema4.Literal("glob"), pattern: Schema4.String })
32
255
  ]);
33
- var HookRegistration = Schema.Struct({
34
- id: Schema.String,
35
- event: HookEvent,
256
+ var HookRegistration = Schema4.Struct({
257
+ id: Schema4.String,
258
+ event: AgentSessionHookEvent,
36
259
  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)
260
+ command: Schema4.optional(Schema4.String),
261
+ description: Schema4.optional(Schema4.String)
262
+ });
263
+ var SkillRegistration = Schema4.Struct({
264
+ id: Schema4.String,
265
+ path: Schema4.String,
266
+ description: Schema4.optional(Schema4.String)
267
+ });
268
+ var RepoSourceRegistration = Schema4.Struct({
269
+ id: Schema4.String,
270
+ url: Schema4.String,
271
+ defaultPath: Schema4.optional(Schema4.String),
272
+ description: Schema4.optional(Schema4.String),
273
+ defaultBranch: Schema4.optional(Schema4.String),
274
+ remoteEnvVar: Schema4.optional(Schema4.String),
275
+ checkoutEnvVar: Schema4.optional(Schema4.String)
276
+ });
277
+ var AgentRoleRegistration = Schema4.Struct({
278
+ id: Schema4.String,
279
+ defaultModel: Schema4.optional(Schema4.String),
280
+ description: Schema4.optional(Schema4.String)
281
+ });
282
+ var TaskFieldExtension = Schema4.Struct({
283
+ id: Schema4.String,
284
+ fieldName: Schema4.String,
285
+ schemaJson: Schema4.String
286
+ });
287
+ var TaskSourceKind = Schema4.String;
288
+ var TaskSourceRegistration = Schema4.Struct({
289
+ id: Schema4.String,
290
+ kind: Schema4.String,
291
+ description: Schema4.optional(Schema4.String)
292
+ });
293
+ var CliCommandRegistration = Schema4.Struct({
294
+ id: Schema4.String,
295
+ family: Schema4.optional(Schema4.String),
296
+ command: Schema4.optional(Schema4.String),
297
+ description: Schema4.optional(Schema4.String),
298
+ usage: Schema4.optional(Schema4.String),
299
+ aliases: Schema4.optional(Schema4.Array(Schema4.String)),
300
+ projectRequired: Schema4.optional(Schema4.Boolean),
301
+ rootDefault: Schema4.optional(Schema4.Boolean),
302
+ productRoot: Schema4.optional(Schema4.Boolean),
303
+ subcommands: Schema4.optional(Schema4.Array(Schema4.String))
304
+ });
305
+ var CapabilityRunSchema = Schema4.declare((u) => typeof u === "function", { identifier: "CapabilityRun" });
306
+ var ProductCapabilityRegistration = Schema4.Struct({
307
+ id: Schema4.String,
308
+ title: Schema4.String,
309
+ description: Schema4.optional(Schema4.String),
310
+ commandId: Schema4.optional(Schema4.String),
311
+ panelId: Schema4.optional(Schema4.String),
312
+ run: Schema4.optional(CapabilityRunSchema)
313
+ });
314
+ var PanelRegistration = Schema4.Struct({
315
+ id: Schema4.String,
316
+ slot: Schema4.String,
317
+ title: Schema4.String,
318
+ capabilityId: Schema4.optional(Schema4.String),
319
+ badge: Schema4.optional(Schema4.String),
320
+ disabled: Schema4.optional(Schema4.Boolean),
321
+ description: Schema4.optional(Schema4.String)
322
+ });
323
+ var BlockerClassifierRegistration = Schema4.Struct({
324
+ id: Schema4.String,
325
+ description: Schema4.optional(Schema4.String),
326
+ priority: Schema4.optional(Schema4.Number)
327
+ });
328
+ var SessionExtensionRegistration = Schema4.Struct({
329
+ id: Schema4.String,
330
+ description: Schema4.optional(Schema4.String)
331
+ });
332
+ var SeedEntrypointRegistration = Schema4.Struct({
333
+ id: Schema4.String,
334
+ description: Schema4.optional(Schema4.String),
335
+ basename: Schema4.optional(Schema4.String),
336
+ workerArg: Schema4.optional(Schema4.String),
337
+ insidePty: Schema4.optional(Schema4.Boolean)
338
+ });
339
+ var PluginContributes = Schema4.Struct({
340
+ validators: Schema4.optional(Schema4.Array(ValidatorRegistration)),
341
+ hooks: Schema4.optional(Schema4.Array(HookRegistration)),
342
+ skills: Schema4.optional(Schema4.Array(SkillRegistration)),
343
+ repoSources: Schema4.optional(Schema4.Array(RepoSourceRegistration)),
344
+ agentRoles: Schema4.optional(Schema4.Array(AgentRoleRegistration)),
345
+ taskFieldSchemas: Schema4.optional(Schema4.Array(TaskFieldExtension)),
346
+ taskSources: Schema4.optional(Schema4.Array(TaskSourceRegistration)),
347
+ cliCommands: Schema4.optional(Schema4.Array(CliCommandRegistration)),
348
+ stages: Schema4.optional(Schema4.Array(Stage)),
349
+ stageMutations: Schema4.optional(Schema4.Array(StageMutation)),
350
+ capabilities: Schema4.optional(Schema4.Array(ProductCapabilityRegistration)),
351
+ panels: Schema4.optional(Schema4.Array(PanelRegistration)),
352
+ blockerClassifiers: Schema4.optional(Schema4.Array(BlockerClassifierRegistration)),
353
+ sessionExtensions: Schema4.optional(Schema4.Array(SessionExtensionRegistration)),
354
+ seedEntrypoints: Schema4.optional(Schema4.Array(SeedEntrypointRegistration))
355
+ });
356
+ var RigPlugin = Schema4.Struct({
357
+ name: Schema4.String,
358
+ version: Schema4.String,
359
+ provides: Schema4.optional(Schema4.Array(CapabilityTag)),
360
+ requires: Schema4.optional(Schema4.Array(CapabilityTag)),
361
+ replaces: Schema4.optional(Schema4.Array(CapabilityReplacementSpec)),
362
+ contributes: Schema4.optional(PluginContributes)
363
+ });
364
+
365
+ // packages/contracts/src/supervisor-journal.ts
366
+ import { Schema as Schema7 } from "effect";
367
+
368
+ // packages/contracts/src/runtime.ts
369
+ import { Schema as Schema6 } from "effect";
370
+
371
+ // packages/contracts/src/orchestration.ts
372
+ import { Schema as Schema5 } from "effect";
373
+ var ProviderKind = Schema5.Literals(["codex", "claude"]);
374
+ var ProviderApprovalPolicy = Schema5.Literals([
375
+ "untrusted",
376
+ "on-failure",
377
+ "on-request",
378
+ "never"
379
+ ]);
380
+ var ProviderSandboxMode = Schema5.Literals([
381
+ "read-only",
382
+ "workspace-write",
383
+ "danger-full-access"
384
+ ]);
385
+ var ProviderServiceTier = Schema5.Literals(["fast", "flex"]);
386
+ var RuntimeMode = Schema5.Literals(["approval-required", "full-access"]);
387
+ var ProviderInteractionMode = Schema5.Literals(["default", "plan"]);
388
+ var ProviderRequestKind = Schema5.Literals(["command", "file-read", "file-change"]);
389
+ var ProviderApprovalDecision = Schema5.Literals([
390
+ "accept",
391
+ "acceptForSession",
392
+ "decline",
393
+ "cancel"
394
+ ]);
395
+ var ProviderUserInputAnswers = Schema5.Record(Schema5.String, Schema5.Unknown);
396
+ var PROVIDER_SEND_TURN_MAX_IMAGE_BYTES = 10 * 1024 * 1024;
397
+ var CHAT_ATTACHMENT_ID_MAX_CHARS = 128;
398
+ var ChatAttachmentId = TrimmedNonEmptyString.check(Schema5.isMaxLength(CHAT_ATTACHMENT_ID_MAX_CHARS), Schema5.isPattern(/^[a-z0-9_-]+$/i));
399
+ var ChatImageAttachment = Schema5.Struct({
400
+ type: Schema5.Literal("image"),
401
+ id: ChatAttachmentId,
402
+ name: TrimmedNonEmptyString.check(Schema5.isMaxLength(255)),
403
+ mimeType: TrimmedNonEmptyString.check(Schema5.isMaxLength(100), Schema5.isPattern(/^image\//i)),
404
+ sizeBytes: NonNegativeInt.check(Schema5.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_IMAGE_BYTES))
405
+ });
406
+ var ChatAttachment = Schema5.Union([ChatImageAttachment]);
407
+
408
+ // packages/contracts/src/runtime.ts
409
+ var RunKind = Schema6.Literals(["adhoc", "task", "batch", "validation", "review"]);
410
+ var RunMode = Schema6.Literals(["interactive", "autonomous", "supervised"]);
411
+ var RunStatus = Schema6.Literals([
412
+ "created",
413
+ "queued",
414
+ "preparing",
415
+ "running",
416
+ "waiting-approval",
417
+ "waiting-user-input",
418
+ "paused",
419
+ "validating",
420
+ "reviewing",
421
+ "closing-out",
422
+ "needs-attention",
423
+ "completed",
424
+ "failed",
425
+ "stopped"
426
+ ]);
427
+ var EngineSandboxMode = Schema6.Literals([
428
+ "read-only",
429
+ "workspace-write",
430
+ "danger-full-access"
431
+ ]);
432
+ var IsolationMode = Schema6.Literals(["none", "env", "worktree"]);
433
+ var RuntimeStatus = Schema6.Literals([
434
+ "prepared",
435
+ "starting",
436
+ "running",
437
+ "interrupted",
438
+ "exited",
439
+ "failed",
440
+ "destroyed"
441
+ ]);
442
+ var RunExecutionTarget = Schema6.Literals(["local", "remote"]);
443
+ var RunSummary = Schema6.Struct({
444
+ id: RunId,
445
+ workspaceId: WorkspaceId,
446
+ taskId: Schema6.NullOr(TaskId),
447
+ title: TrimmedNonEmptyString,
448
+ runKind: RunKind,
449
+ mode: RunMode,
450
+ runtimeMode: RuntimeMode,
451
+ interactionMode: ProviderInteractionMode,
452
+ status: RunStatus,
453
+ runtimeAdapter: Schema6.Literal("pi"),
454
+ model: Schema6.NullOr(TrimmedNonEmptyString),
455
+ initialPrompt: Schema6.NullOr(Schema6.String),
456
+ executionTarget: Schema6.optional(RunExecutionTarget),
457
+ remoteHostId: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
458
+ remoteLeaseId: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
459
+ remoteLeaseClaimedAt: Schema6.optional(Schema6.NullOr(IsoDateTime)),
460
+ activeRuntimeId: Schema6.NullOr(EngineRuntimeId),
461
+ latestMessageId: Schema6.NullOr(TrimmedNonEmptyString),
462
+ pendingApprovalCount: NonNegativeInt,
463
+ pendingUserInputCount: NonNegativeInt,
464
+ branch: Schema6.NullOr(TrimmedNonEmptyString),
465
+ worktreePath: Schema6.NullOr(TrimmedNonEmptyString),
466
+ errorText: Schema6.NullOr(Schema6.String),
467
+ createdAt: IsoDateTime,
468
+ updatedAt: IsoDateTime,
469
+ startedAt: Schema6.NullOr(IsoDateTime),
470
+ completedAt: Schema6.NullOr(IsoDateTime)
471
+ });
472
+ var RuntimeSummary = Schema6.Struct({
473
+ id: EngineRuntimeId,
474
+ workspaceId: WorkspaceId,
475
+ runId: RunId,
476
+ adapterKind: Schema6.Literal("pi"),
477
+ executionTarget: Schema6.optional(RunExecutionTarget),
478
+ remoteHostId: Schema6.optional(Schema6.NullOr(TrimmedNonEmptyString)),
479
+ status: RuntimeStatus,
480
+ sandboxMode: EngineSandboxMode,
481
+ isolationMode: IsolationMode,
482
+ workspaceDir: Schema6.NullOr(TrimmedNonEmptyString),
483
+ homeDir: Schema6.NullOr(TrimmedNonEmptyString),
484
+ tmpDir: Schema6.NullOr(TrimmedNonEmptyString),
485
+ cacheDir: Schema6.NullOr(TrimmedNonEmptyString),
486
+ logsDir: Schema6.NullOr(TrimmedNonEmptyString),
487
+ stateDir: Schema6.NullOr(TrimmedNonEmptyString),
488
+ sessionDir: Schema6.NullOr(TrimmedNonEmptyString),
489
+ sessionLogPath: Schema6.NullOr(TrimmedNonEmptyString),
490
+ pid: Schema6.NullOr(NonNegativeInt),
491
+ startedAt: Schema6.NullOr(IsoDateTime),
492
+ updatedAt: IsoDateTime,
493
+ exitedAt: Schema6.NullOr(IsoDateTime)
494
+ });
495
+ var ApprovalStatus = Schema6.Literals(["pending", "resolved"]);
496
+ var ApprovalSummary = Schema6.Struct({
497
+ id: TrimmedNonEmptyString,
498
+ runId: RunId,
499
+ actionId: Schema6.NullOr(TrimmedNonEmptyString),
500
+ requestKind: TrimmedNonEmptyString,
501
+ status: ApprovalStatus,
502
+ payload: Schema6.Unknown,
503
+ createdAt: IsoDateTime,
504
+ resolvedAt: Schema6.NullOr(IsoDateTime)
505
+ });
506
+ var UserInputRequestSummary = Schema6.Struct({
507
+ id: TrimmedNonEmptyString,
508
+ runId: RunId,
509
+ status: ApprovalStatus,
510
+ payload: Schema6.Unknown,
511
+ createdAt: IsoDateTime,
512
+ resolvedAt: Schema6.NullOr(IsoDateTime)
513
+ });
514
+ var WorktreeSummary = Schema6.Struct({
515
+ id: WorktreeId,
516
+ workspaceId: WorkspaceId,
517
+ runId: RunId,
518
+ taskId: Schema6.NullOr(TaskId),
519
+ branchName: TrimmedNonEmptyString,
520
+ path: TrimmedNonEmptyString,
521
+ status: TrimmedNonEmptyString,
522
+ createdAt: IsoDateTime,
523
+ cleanedAt: Schema6.NullOr(IsoDateTime)
524
+ });
525
+
526
+ // packages/contracts/src/supervisor-journal.ts
527
+ var SupervisorStopReason = Schema7.Literals([
528
+ "all-done",
529
+ "all-human-blocked",
530
+ "blocked",
531
+ "work-pending",
532
+ "max-tasks",
533
+ "budget",
534
+ "judge-stop",
535
+ "operator-stop",
536
+ "source-error"
537
+ ]);
538
+ var SupervisorSelectionPolicy = Schema7.Literals(["rank", "max-unblock", "blocking-only"]);
539
+ var SupervisorStatus = Schema7.Literals(["running", "idle", "stopped", "finished"]);
540
+ var TaskClosureSummary = Schema7.Struct({
541
+ taskId: TaskId,
542
+ runId: RunId,
543
+ prUrl: Schema7.NullOr(Schema7.String),
544
+ mergeGate: Schema7.NullOr(Schema7.Literals(["passed", "blocked", "skipped"])),
545
+ acceptanceChecked: Schema7.Array(Schema7.Struct({
546
+ item: Schema7.String,
547
+ met: Schema7.Boolean
548
+ })),
549
+ unblockedTaskIds: Schema7.Array(TaskId)
550
+ });
551
+ var SupervisorStartedEvent = Schema7.Struct({
552
+ kind: Schema7.Literal("supervisor.started"),
553
+ at: IsoDateTime,
554
+ options: Schema7.Unknown
555
+ });
556
+ var SupervisorSelectionPlannedEvent = Schema7.Struct({
557
+ kind: Schema7.Literal("supervisor.selection-planned"),
558
+ at: IsoDateTime,
559
+ taskIds: Schema7.Array(TaskId),
560
+ policy: SupervisorSelectionPolicy
561
+ });
562
+ var SupervisorDispatchStartedEvent = Schema7.Struct({
563
+ kind: Schema7.Literal("supervisor.dispatch-started"),
564
+ at: IsoDateTime,
565
+ taskId: TaskId,
566
+ score: NonNegativeInt
567
+ });
568
+ var SupervisorDispatchConfirmedEvent = Schema7.Struct({
569
+ kind: Schema7.Literal("supervisor.dispatch-confirmed"),
570
+ at: IsoDateTime,
571
+ taskId: TaskId,
572
+ runId: RunId,
573
+ dispatchHandle: Schema7.optional(Schema7.NullOr(Schema7.String))
574
+ });
575
+ var SupervisorDispatchEvent = Schema7.Struct({
576
+ kind: Schema7.Literal("supervisor.dispatch"),
577
+ at: IsoDateTime,
578
+ taskId: TaskId,
579
+ runId: RunId,
580
+ score: NonNegativeInt,
581
+ dispatchHandle: Schema7.optional(Schema7.NullOr(Schema7.String))
582
+ });
583
+ var SupervisorOutcomeEvent = Schema7.Struct({
584
+ kind: Schema7.Literal("supervisor.outcome"),
585
+ at: IsoDateTime,
586
+ taskId: TaskId,
587
+ runId: RunId,
588
+ status: RunStatus,
589
+ failed: Schema7.Boolean,
590
+ unblockedTaskIds: Schema7.Array(TaskId),
591
+ closure: Schema7.optional(TaskClosureSummary)
592
+ });
593
+ var SupervisorSkippedEvent = Schema7.Struct({
594
+ kind: Schema7.Literal("supervisor.skipped"),
595
+ at: IsoDateTime,
596
+ taskId: TaskId,
597
+ reason: Schema7.String
598
+ });
599
+ var SupervisorIdleEvent = Schema7.Struct({
600
+ kind: Schema7.Literal("supervisor.idle"),
601
+ at: IsoDateTime,
602
+ reason: SupervisorStopReason
603
+ });
604
+ var SupervisorStoppedEvent = Schema7.Struct({
605
+ kind: Schema7.Literal("supervisor.stopped"),
606
+ at: IsoDateTime,
607
+ reason: SupervisorStopReason
608
+ });
609
+ var SupervisorFinishedEvent = Schema7.Struct({
610
+ kind: Schema7.Literal("supervisor.finished"),
611
+ at: IsoDateTime,
612
+ processed: NonNegativeInt,
613
+ succeeded: NonNegativeInt,
614
+ failed: NonNegativeInt,
615
+ skipped: Schema7.optional(NonNegativeInt),
616
+ idleReason: Schema7.NullOr(SupervisorStopReason)
617
+ });
618
+ var SupervisorEvent = Schema7.Union([
619
+ SupervisorStartedEvent,
620
+ SupervisorSelectionPlannedEvent,
621
+ SupervisorDispatchStartedEvent,
622
+ SupervisorDispatchConfirmedEvent,
623
+ SupervisorDispatchEvent,
624
+ SupervisorOutcomeEvent,
625
+ SupervisorSkippedEvent,
626
+ SupervisorIdleEvent,
627
+ SupervisorStoppedEvent,
628
+ SupervisorFinishedEvent
629
+ ]);
630
+ var SupervisorProjection = Schema7.Struct({
631
+ status: SupervisorStatus,
632
+ processed: NonNegativeInt,
633
+ succeeded: NonNegativeInt,
634
+ failed: NonNegativeInt,
635
+ skipped: NonNegativeInt,
636
+ current: Schema7.NullOr(Schema7.Struct({ taskId: TaskId, runId: RunId })),
637
+ plannedOrder: Schema7.Array(TaskId),
638
+ selectionPolicy: Schema7.NullOr(SupervisorSelectionPolicy),
639
+ concurrency: Schema7.NullOr(NonNegativeInt),
640
+ idleReason: Schema7.NullOr(SupervisorStopReason),
641
+ stopReason: Schema7.NullOr(SupervisorStopReason),
642
+ closures: Schema7.Array(TaskClosureSummary),
643
+ anomalies: Schema7.Array(Schema7.String)
89
644
  });
90
645
 
91
646
  // packages/contracts/src/config.ts
92
- var WorkspaceIsolation = Schema2.Literals([
647
+ var WorkspaceIsolation = Schema8.Literals([
93
648
  "worktree",
94
649
  "directory"
95
650
  ]);
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)
651
+ var WorkspaceCheckout = WorkspaceIsolation;
652
+ var WorkspaceSandbox = Schema8.Literals(["enforce", "auto", "off"]);
653
+ var ScopeSearchPrefix = Schema8.Struct({
654
+ prefix: Schema8.String,
655
+ matchStartsWith: Schema8.optional(Schema8.Array(Schema8.String)),
656
+ matchExact: Schema8.optional(Schema8.Array(Schema8.String))
657
+ });
658
+ var ScopeNormalizationRules = Schema8.Struct({
659
+ stripPrefixes: Schema8.optional(Schema8.Array(Schema8.String)),
660
+ searchPrefixes: Schema8.optional(Schema8.Array(ScopeSearchPrefix))
661
+ });
662
+ var WorkspaceConfig = Schema8.Struct({
663
+ mainRepo: Schema8.String,
664
+ checkout: Schema8.optional(WorkspaceCheckout),
665
+ isolation: Schema8.optional(WorkspaceIsolation),
666
+ sandbox: Schema8.optional(WorkspaceSandbox),
667
+ scopeNormalization: Schema8.optional(ScopeNormalizationRules)
668
+ });
669
+ var TaskSourceConfig = Schema8.Struct({
670
+ kind: Schema8.String,
671
+ path: Schema8.optional(Schema8.String),
672
+ owner: Schema8.optional(Schema8.String),
673
+ repo: Schema8.optional(Schema8.String),
674
+ labels: Schema8.optional(Schema8.Array(Schema8.String)),
675
+ state: Schema8.optional(Schema8.Literals(["open", "closed", "all"])),
676
+ url: Schema8.optional(Schema8.String),
677
+ options: Schema8.optional(Schema8.Record(Schema8.String, Schema8.Unknown))
678
+ });
679
+ var RuntimeHarness = Schema8.Literal("pi");
680
+ var RigRuntimeMode = Schema8.Literals(["yolo", "approval-required"]);
681
+ var PiRuntimeConfig = Schema8.Struct({
682
+ packages: Schema8.optional(Schema8.Array(Schema8.String))
683
+ });
684
+ var RigServerConfig = Schema8.Struct({
685
+ host: Schema8.optional(Schema8.String),
686
+ relayUrl: Schema8.optional(Schema8.String),
687
+ registryUrl: Schema8.optional(Schema8.String),
688
+ sshTarget: Schema8.optional(Schema8.String),
689
+ checkout: Schema8.optional(Schema8.String)
690
+ });
691
+ var RuntimePositiveInt = Schema8.Int.check(Schema8.isGreaterThanOrEqualTo(1));
692
+ var RuntimeSupervisorConfig = Schema8.Struct({
693
+ concurrency: Schema8.optional(RuntimePositiveInt),
694
+ pauseOnAttention: Schema8.optional(Schema8.Boolean),
695
+ stopWhen: Schema8.optional(Schema8.Array(SupervisorStopReason)),
696
+ maxTasks: Schema8.optional(RuntimePositiveInt),
697
+ selectionPolicy: Schema8.optional(SupervisorSelectionPolicy),
698
+ failFast: Schema8.optional(Schema8.Boolean)
699
+ });
700
+ var RuntimeDriftConfig = Schema8.Struct({
701
+ enabled: Schema8.optional(Schema8.Boolean),
702
+ failOnDrift: Schema8.optional(Schema8.Boolean),
703
+ docsGlobs: Schema8.optional(Schema8.Array(Schema8.String)),
704
+ ignoreGlobs: Schema8.optional(Schema8.Array(Schema8.String)),
705
+ judge: Schema8.optional(Schema8.Boolean)
706
+ });
707
+ var RuntimePlanningConfig = Schema8.Struct({
708
+ architectRole: Schema8.optional(Schema8.String),
709
+ autoResolveFromCode: Schema8.optional(Schema8.Boolean),
710
+ materialize: Schema8.optional(Schema8.Literals(["dry-run", "create"]))
711
+ });
712
+ var RuntimeConfig = Schema8.Struct({
713
+ agentRoles: Schema8.optional(Schema8.Record(Schema8.String, Schema8.Unknown)),
714
+ timeouts: Schema8.optional(Schema8.Record(Schema8.String, Schema8.Number)),
715
+ harness: Schema8.optional(RuntimeHarness),
716
+ model: Schema8.optional(Schema8.String),
717
+ mode: Schema8.optional(RigRuntimeMode),
718
+ pi: Schema8.optional(PiRuntimeConfig),
719
+ server: Schema8.optional(RigServerConfig),
720
+ capabilities: Schema8.optional(CapabilityGrants),
721
+ supervisor: Schema8.optional(RuntimeSupervisorConfig),
722
+ drift: Schema8.optional(RuntimeDriftConfig),
723
+ planning: Schema8.optional(RuntimePlanningConfig)
724
+ });
725
+ var ProjectIdentity = Schema8.Struct({
726
+ name: Schema8.String,
727
+ repo: Schema8.optional(Schema8.String)
728
+ });
729
+ var PlanningConfig = Schema8.Struct({
730
+ mode: Schema8.optional(Schema8.Literals(["auto", "always", "off"])),
731
+ requireForLabels: Schema8.optional(Schema8.Array(Schema8.String)),
732
+ skipForLabels: Schema8.optional(Schema8.Array(Schema8.String))
733
+ });
734
+ var GitHubProjectStatusConfig = Schema8.Struct({
735
+ enabled: Schema8.optional(Schema8.Boolean),
736
+ projectId: Schema8.optional(Schema8.String),
737
+ statusFieldId: Schema8.optional(Schema8.String),
738
+ statuses: Schema8.optional(Schema8.Struct({
739
+ running: Schema8.optional(Schema8.String),
740
+ prOpen: Schema8.optional(Schema8.String),
741
+ ciFixing: Schema8.optional(Schema8.String),
742
+ merging: Schema8.optional(Schema8.String),
743
+ done: Schema8.optional(Schema8.String),
744
+ needsAttention: Schema8.optional(Schema8.String)
149
745
  }))
150
746
  });
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({
747
+ var GitHubConfig = Schema8.Struct({
748
+ issueUpdates: Schema8.optional(Schema8.String),
749
+ projects: Schema8.optional(GitHubProjectStatusConfig)
750
+ });
751
+ var AutomationConfig = Schema8.Struct({
752
+ maxValidationAttempts: Schema8.optional(Schema8.Number),
753
+ maxPrFixIterations: Schema8.optional(Schema8.Number)
754
+ });
755
+ var PullRequestConfig = Schema8.Struct({
756
+ mode: Schema8.optional(Schema8.Literals(["auto", "ask", "off"])),
757
+ watchChecks: Schema8.optional(Schema8.Boolean),
758
+ autoFixChecks: Schema8.optional(Schema8.Boolean),
759
+ autoFixReview: Schema8.optional(Schema8.Boolean),
760
+ pendingTimeoutMs: Schema8.optional(Schema8.Number),
761
+ pendingPollMs: Schema8.optional(Schema8.Number)
762
+ });
763
+ var MergeConfig = Schema8.Struct({
764
+ mode: Schema8.optional(Schema8.Literals(["auto", "off", "pr-ready"])),
765
+ method: Schema8.optional(Schema8.Literals(["repo-default", "squash", "merge", "rebase"])),
766
+ deleteBranch: Schema8.optional(Schema8.Union([Schema8.Literal("repo-default"), Schema8.Boolean])),
767
+ allowedFailures: Schema8.optional(Schema8.Array(Schema8.String)),
768
+ bypass: Schema8.optional(Schema8.Boolean)
769
+ });
770
+ var IssueAnalysisConfig = Schema8.Struct({
771
+ enabled: Schema8.optional(Schema8.Boolean),
772
+ harness: Schema8.optional(Schema8.Literal("pi")),
773
+ model: Schema8.optional(Schema8.String),
774
+ mode: Schema8.optional(Schema8.Literals(["continuous", "off"]))
775
+ });
776
+ var ReviewConfig = Schema8.Struct({
777
+ mode: Schema8.optional(Schema8.Literals(["off", "advisory", "required"])),
778
+ provider: Schema8.optional(Schema8.Literals(["greptile", "github"]))
779
+ });
780
+ var RigConfig = Schema8.Struct({
185
781
  project: ProjectIdentity,
186
- plugins: Schema2.Array(RigPlugin),
782
+ plugins: Schema8.Array(RigPlugin),
187
783
  taskSource: TaskSourceConfig,
188
784
  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)
785
+ runtime: Schema8.optional(RuntimeConfig),
786
+ planning: Schema8.optional(PlanningConfig),
787
+ github: Schema8.optional(GitHubConfig),
788
+ automation: Schema8.optional(AutomationConfig),
789
+ pr: Schema8.optional(PullRequestConfig),
790
+ merge: Schema8.optional(MergeConfig),
791
+ review: Schema8.optional(ReviewConfig),
792
+ issueAnalysis: Schema8.optional(IssueAnalysisConfig),
793
+ capabilities: Schema8.optional(CapabilityGrants),
794
+ env: Schema8.optional(Schema8.Record(Schema8.String, Schema8.String))
197
795
  });
198
796
  export {
797
+ WorkspaceSandbox,
199
798
  WorkspaceIsolation,
200
799
  WorkspaceConfig,
800
+ WorkspaceCheckout,
201
801
  TaskSourceConfig,
202
802
  ScopeSearchPrefix,
203
803
  ScopeNormalizationRules,
804
+ RuntimeSupervisorConfig,
805
+ RuntimePlanningConfig,
204
806
  RuntimeHarness,
807
+ RuntimeDriftConfig,
205
808
  RuntimeConfig,
809
+ RigServerConfig,
206
810
  RigRuntimeMode,
207
811
  RigConfig,
208
812
  ReviewConfig,
209
813
  PullRequestConfig,
210
814
  ProjectIdentity,
211
815
  PlanningConfig,
816
+ PiRuntimeConfig,
212
817
  MergeConfig,
213
818
  IssueAnalysisConfig,
214
819
  GitHubProjectStatusConfig,