@h-rig/contracts 0.0.6-alpha.131 → 0.0.6-alpha.133

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.
@@ -1,10 +1,248 @@
1
1
  // @bun
2
2
  // packages/contracts/src/plugin-hooks.ts
3
- import { Schema as Schema2 } from "effect";
3
+ import { Schema as Schema5 } 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 StageContinueResult = Schema2.Struct({
67
+ kind: Schema2.Literal("continue"),
68
+ ctx: StageContext
69
+ });
70
+ var StageAllowResult = Schema2.Struct({
71
+ kind: Schema2.Literal("allow")
72
+ });
73
+ var StageBlockResult = Schema2.Struct({
74
+ kind: Schema2.Literal("block"),
75
+ reason: TrimmedNonEmptyString
76
+ });
77
+ var StageResult = Schema2.Union([
78
+ StageContinueResult,
79
+ StageAllowResult,
80
+ StageBlockResult
81
+ ]);
82
+ var StageWrapperDescriptor = Schema2.Struct({
83
+ id: TrimmedNonEmptyString,
84
+ priority: Schema2.Number.pipe(Schema2.withDecodingDefault(() => 0))
85
+ });
86
+ var StageMutationOp = Schema2.Literals(["insert", "remove", "replace", "wrap", "reorder"]);
87
+ var InsertStageMutation = Schema2.Struct({
88
+ op: Schema2.Literal("insert"),
89
+ stage: StageDescriptor,
90
+ contributedBy: Schema2.optional(TrimmedNonEmptyString)
91
+ });
92
+ var RemoveStageMutation = Schema2.Struct({
93
+ op: Schema2.Literal("remove"),
94
+ id: StageId,
95
+ contributedBy: Schema2.optional(TrimmedNonEmptyString)
96
+ });
97
+ var ReplaceStageMutation = Schema2.Struct({
98
+ op: Schema2.Literal("replace"),
99
+ id: StageId,
100
+ stage: StageDescriptor,
101
+ contributedBy: Schema2.optional(TrimmedNonEmptyString)
102
+ });
103
+ var WrapStageMutation = Schema2.Struct({
104
+ op: Schema2.Literal("wrap"),
105
+ id: StageId,
106
+ around: StageWrapperDescriptor,
107
+ contributedBy: Schema2.optional(TrimmedNonEmptyString)
108
+ });
109
+ var ReorderStageMutation = Schema2.Struct({
110
+ op: Schema2.Literal("reorder"),
111
+ id: StageId,
112
+ before: Schema2.optional(Schema2.Array(StageId)),
113
+ after: Schema2.optional(Schema2.Array(StageId)),
114
+ contributedBy: Schema2.optional(TrimmedNonEmptyString)
115
+ });
116
+ var StageMutation = Schema2.Union([
117
+ InsertStageMutation,
118
+ RemoveStageMutation,
119
+ ReplaceStageMutation,
120
+ WrapStageMutation,
121
+ ReorderStageMutation
122
+ ]);
123
+ var ResolutionGrantUse = Schema2.Struct({
124
+ kind: Schema2.Literals(["protected-stage", "kernel-replacement"]),
125
+ target: TrimmedNonEmptyString,
126
+ pluginId: TrimmedNonEmptyString
127
+ });
128
+ var ResolutionRecordEntry = Schema2.Struct({
129
+ stageId: StageId,
130
+ contributedBy: TrimmedNonEmptyString,
131
+ removedBy: Schema2.optional(TrimmedNonEmptyString),
132
+ replacedBy: Schema2.optional(TrimmedNonEmptyString),
133
+ wrappedBy: Schema2.optional(Schema2.Array(TrimmedNonEmptyString)),
134
+ droppedAnchors: Schema2.optional(Schema2.Array(StageId)),
135
+ isProtected: Schema2.Boolean
136
+ });
137
+ var ResolvedPipeline = Schema2.Struct({
138
+ runId: Schema2.optional(RunId),
139
+ order: Schema2.Array(StageId),
140
+ record: Schema2.Array(ResolutionRecordEntry),
141
+ cycles: Schema2.Array(Schema2.Array(StageId)),
142
+ grantUses: Schema2.optional(Schema2.Array(ResolutionGrantUse)),
143
+ resolvedAt: Schema2.optional(IsoDateTime)
144
+ });
145
+ var StageRunOutcome = Schema2.Struct({
146
+ stageId: StageId,
147
+ result: StageResult,
148
+ startedAt: IsoDateTime,
149
+ finishedAt: IsoDateTime
150
+ });
151
+
152
+ // packages/contracts/src/kernel.ts
153
+ var CapabilityTag = Schema3.Literals([
154
+ "kernel",
155
+ "journal",
156
+ "stage-runner",
157
+ "transport",
158
+ "loader-policy"
159
+ ]);
160
+ var CapabilityProviderRef = Schema3.Struct({
161
+ capability: CapabilityTag,
162
+ pluginId: TrimmedNonEmptyString
163
+ });
164
+ var CapabilityReplacement = Schema3.Struct({
165
+ capability: CapabilityTag,
166
+ providerPluginId: TrimmedNonEmptyString
167
+ });
168
+ var CapabilityReplacementSpec = Schema3.Union([
169
+ CapabilityReplacement,
170
+ TrimmedNonEmptyString
171
+ ]);
172
+ var PluginMeta = Schema3.Struct({
173
+ id: TrimmedNonEmptyString,
174
+ version: TrimmedNonEmptyString,
175
+ provides: Schema3.Array(CapabilityTag),
176
+ requires: Schema3.optional(Schema3.Array(CapabilityTag)),
177
+ replaces: Schema3.optional(Schema3.Array(CapabilityReplacementSpec))
178
+ });
179
+ var LoadedPluginDescriptor = Schema3.Struct({
180
+ meta: PluginMeta,
181
+ provides: Schema3.Array(CapabilityTag),
182
+ contributes: Schema3.Unknown,
183
+ runtime: Schema3.Unknown
184
+ });
185
+ var ProtectedStageGrant = Schema3.Struct({
186
+ stageId: TrimmedNonEmptyString,
187
+ pluginId: TrimmedNonEmptyString,
188
+ operations: Schema3.Array(Schema3.Literals(["remove", "replace"])),
189
+ grantedBy: Schema3.optional(TrimmedNonEmptyString),
190
+ reason: Schema3.optional(Schema3.String)
191
+ });
192
+ var KernelReplacementGrant = Schema3.Struct({
193
+ pluginId: TrimmedNonEmptyString,
194
+ grantedBy: Schema3.optional(TrimmedNonEmptyString),
195
+ reason: Schema3.optional(Schema3.String)
196
+ });
197
+ var CapabilityGrants = Schema3.Struct({
198
+ capabilityPrecedence: Schema3.optional(Schema3.Record(Schema3.String, Schema3.Array(TrimmedNonEmptyString))),
199
+ protectedStageGrants: Schema3.optional(Schema3.Array(ProtectedStageGrant)),
200
+ kernelReplacementGrants: Schema3.optional(Schema3.Array(KernelReplacementGrant))
201
+ });
202
+ var KernelBootErrorCode = Schema3.Literals([
203
+ "BootIncoherent",
204
+ "AmbiguousCapability",
205
+ "MissingCapability",
206
+ "ProtectedStageViolation",
207
+ "KernelReplacementDenied",
208
+ "PipelineUnresolvable"
209
+ ]);
210
+ var KernelBootError = Schema3.Struct({
211
+ code: KernelBootErrorCode,
212
+ message: TrimmedNonEmptyString,
213
+ capability: Schema3.optional(CapabilityTag),
214
+ stageId: Schema3.optional(TrimmedNonEmptyString),
215
+ pluginIds: Schema3.optional(Schema3.Array(TrimmedNonEmptyString))
216
+ });
217
+ var CapabilityResolutionStatus = Schema3.Literals(["resolved", "ambiguous", "missing", "replaced"]);
218
+ var CapabilityResolutionRecord = Schema3.Struct({
219
+ capability: CapabilityTag,
220
+ status: CapabilityResolutionStatus,
221
+ selectedPluginId: Schema3.NullOr(TrimmedNonEmptyString),
222
+ candidatePluginIds: Schema3.Array(TrimmedNonEmptyString),
223
+ precedenceUsed: Schema3.Boolean,
224
+ replacementUsed: Schema3.optional(CapabilityReplacement),
225
+ error: Schema3.optional(Schema3.String)
226
+ });
227
+ var KernelResolutionRecord = Schema3.Struct({
228
+ resolvedAt: IsoDateTime,
229
+ capabilities: Schema3.Array(CapabilityResolutionRecord),
230
+ pipeline: Schema3.optional(ResolvedPipeline)
231
+ });
232
+ var BootResultDescriptor = Schema3.Struct({
233
+ kernelPluginId: TrimmedNonEmptyString,
234
+ pluginIds: Schema3.Array(TrimmedNonEmptyString),
235
+ resolution: KernelResolutionRecord
236
+ });
237
+ var JournalEvent = Schema3.Struct({
238
+ type: TrimmedNonEmptyString,
239
+ runId: Schema3.optional(RunId),
240
+ at: IsoDateTime,
241
+ payload: Schema3.Unknown
242
+ });
243
+
244
+ // packages/contracts/src/plugin.ts
245
+ var ValidatorCategory = Schema4.Literals([
8
246
  "boundary",
9
247
  "contract",
10
248
  "integration",
@@ -12,12 +250,12 @@ var ValidatorCategory = Schema.Literals([
12
250
  "external",
13
251
  "custom"
14
252
  ]);
15
- var ValidatorRegistration = Schema.Struct({
16
- id: Schema.String,
253
+ var ValidatorRegistration = Schema4.Struct({
254
+ id: Schema4.String,
17
255
  category: ValidatorCategory,
18
- description: Schema.optional(Schema.String)
256
+ description: Schema4.optional(Schema4.String)
19
257
  });
20
- var HookEvent = Schema.Literals([
258
+ var AgentSessionHookEvent = Schema4.Literals([
21
259
  "PreToolUse",
22
260
  "PostToolUse",
23
261
  "UserPromptSubmit",
@@ -25,84 +263,88 @@ var HookEvent = Schema.Literals([
25
263
  "SessionStart",
26
264
  "SessionEnd"
27
265
  ]);
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 })
266
+ var HookMatcher = Schema4.Union([
267
+ Schema4.Struct({ kind: Schema4.Literal("all") }),
268
+ Schema4.Struct({ kind: Schema4.Literal("tool"), name: Schema4.String }),
269
+ Schema4.Struct({ kind: Schema4.Literal("glob"), pattern: Schema4.String })
32
270
  ]);
33
- var HookRegistration = Schema.Struct({
34
- id: Schema.String,
35
- event: HookEvent,
271
+ var HookRegistration = Schema4.Struct({
272
+ id: Schema4.String,
273
+ event: AgentSessionHookEvent,
36
274
  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)
275
+ command: Schema4.optional(Schema4.String),
276
+ description: Schema4.optional(Schema4.String)
277
+ });
278
+ var SkillRegistration = Schema4.Struct({
279
+ id: Schema4.String,
280
+ path: Schema4.String,
281
+ description: Schema4.optional(Schema4.String)
282
+ });
283
+ var RepoSourceRegistration = Schema4.Struct({
284
+ id: Schema4.String,
285
+ url: Schema4.String,
286
+ defaultPath: Schema4.optional(Schema4.String),
287
+ description: Schema4.optional(Schema4.String),
288
+ defaultBranch: Schema4.optional(Schema4.String),
289
+ remoteEnvVar: Schema4.optional(Schema4.String),
290
+ checkoutEnvVar: Schema4.optional(Schema4.String)
291
+ });
292
+ var AgentRoleRegistration = Schema4.Struct({
293
+ id: Schema4.String,
294
+ defaultModel: Schema4.optional(Schema4.String),
295
+ description: Schema4.optional(Schema4.String)
296
+ });
297
+ var TaskFieldExtension = Schema4.Struct({
298
+ id: Schema4.String,
299
+ fieldName: Schema4.String,
300
+ schemaJson: Schema4.String
301
+ });
302
+ var TaskSourceKind = Schema4.String;
303
+ var TaskSourceRegistration = Schema4.Struct({
304
+ id: Schema4.String,
305
+ kind: Schema4.String,
306
+ description: Schema4.optional(Schema4.String)
307
+ });
308
+ var CliCommandRegistration = Schema4.Struct({
309
+ id: Schema4.String,
310
+ command: Schema4.String,
311
+ description: Schema4.optional(Schema4.String)
312
+ });
313
+ var PluginContributes = Schema4.Struct({
314
+ validators: Schema4.optional(Schema4.Array(ValidatorRegistration)),
315
+ hooks: Schema4.optional(Schema4.Array(HookRegistration)),
316
+ skills: Schema4.optional(Schema4.Array(SkillRegistration)),
317
+ repoSources: Schema4.optional(Schema4.Array(RepoSourceRegistration)),
318
+ agentRoles: Schema4.optional(Schema4.Array(AgentRoleRegistration)),
319
+ taskFieldSchemas: Schema4.optional(Schema4.Array(TaskFieldExtension)),
320
+ taskSources: Schema4.optional(Schema4.Array(TaskSourceRegistration)),
321
+ cliCommands: Schema4.optional(Schema4.Array(CliCommandRegistration)),
322
+ stageMutations: Schema4.optional(Schema4.Array(StageMutation))
323
+ });
324
+ var RigPlugin = Schema4.Struct({
325
+ name: Schema4.String,
326
+ version: Schema4.String,
327
+ provides: Schema4.optional(Schema4.Array(CapabilityTag)),
328
+ requires: Schema4.optional(Schema4.Array(CapabilityTag)),
329
+ replaces: Schema4.optional(Schema4.Array(CapabilityReplacementSpec)),
330
+ contributes: Schema4.optional(PluginContributes)
89
331
  });
90
332
 
91
333
  // packages/contracts/src/plugin-hooks.ts
92
- var HookToolInput = Schema2.Record(Schema2.String, Schema2.Unknown);
93
- var HookContext = Schema2.Struct({
94
- event: HookEvent,
95
- toolName: Schema2.optional(Schema2.String),
334
+ var HookToolInput = Schema5.Record(Schema5.String, Schema5.Unknown);
335
+ var HookContext = Schema5.Struct({
336
+ event: AgentSessionHookEvent,
337
+ toolName: Schema5.optional(Schema5.String),
96
338
  toolInput: HookToolInput,
97
- filePaths: Schema2.Array(Schema2.String),
98
- projectRoot: Schema2.String,
99
- taskId: Schema2.String
339
+ filePaths: Schema5.Array(Schema5.String),
340
+ projectRoot: Schema5.String,
341
+ taskId: Schema5.String
100
342
  });
101
- var HookDecision = Schema2.Literals(["allow", "block"]);
102
- var HookResult = Schema2.Struct({
343
+ var HookDecision = Schema5.Literals(["allow", "block"]);
344
+ var HookResult = Schema5.Struct({
103
345
  decision: HookDecision,
104
- reason: Schema2.optional(Schema2.String),
105
- systemMessage: Schema2.optional(Schema2.String)
346
+ reason: Schema5.optional(Schema5.String),
347
+ systemMessage: Schema5.optional(Schema5.String)
106
348
  });
107
349
  export {
108
350
  HookToolInput,
@@ -7,6 +7,8 @@ export declare const ValidatorRegistration: Schema.Struct<{
7
7
  readonly description: Schema.optional<Schema.String>;
8
8
  }>;
9
9
  export type ValidatorRegistration = typeof ValidatorRegistration.Type;
10
+ export declare const AgentSessionHookEvent: Schema.Literals<readonly ["PreToolUse", "PostToolUse", "UserPromptSubmit", "Stop", "SessionStart", "SessionEnd"]>;
11
+ export type AgentSessionHookEvent = typeof AgentSessionHookEvent.Type;
10
12
  export declare const HookEvent: Schema.Literals<readonly ["PreToolUse", "PostToolUse", "UserPromptSubmit", "Stop", "SessionStart", "SessionEnd"]>;
11
13
  export type HookEvent = typeof HookEvent.Type;
12
14
  export declare const HookMatcher: Schema.Union<readonly [Schema.Struct<{
@@ -154,11 +156,59 @@ export declare const PluginContributes: Schema.Struct<{
154
156
  readonly command: Schema.String;
155
157
  readonly description: Schema.optional<Schema.String>;
156
158
  }>>>;
159
+ readonly stageMutations: Schema.optional<Schema.$Array<Schema.Union<readonly [Schema.Struct<{
160
+ readonly op: Schema.Literal<"insert">;
161
+ readonly stage: Schema.Struct<{
162
+ readonly id: Schema.brand<Schema.Trim, "StageId">;
163
+ readonly kind: Schema.Literals<readonly ["transform", "gate", "observe"]>;
164
+ readonly before: Schema.optional<Schema.$Array<Schema.brand<Schema.Trim, "StageId">>>;
165
+ readonly after: Schema.optional<Schema.$Array<Schema.brand<Schema.Trim, "StageId">>>;
166
+ readonly priority: Schema.withDecodingDefault<Schema.Number>;
167
+ readonly protected: Schema.withDecodingDefault<Schema.Boolean>;
168
+ }>;
169
+ readonly contributedBy: Schema.optional<Schema.Trim>;
170
+ }>, Schema.Struct<{
171
+ readonly op: Schema.Literal<"remove">;
172
+ readonly id: Schema.brand<Schema.Trim, "StageId">;
173
+ readonly contributedBy: Schema.optional<Schema.Trim>;
174
+ }>, Schema.Struct<{
175
+ readonly op: Schema.Literal<"replace">;
176
+ readonly id: Schema.brand<Schema.Trim, "StageId">;
177
+ readonly stage: Schema.Struct<{
178
+ readonly id: Schema.brand<Schema.Trim, "StageId">;
179
+ readonly kind: Schema.Literals<readonly ["transform", "gate", "observe"]>;
180
+ readonly before: Schema.optional<Schema.$Array<Schema.brand<Schema.Trim, "StageId">>>;
181
+ readonly after: Schema.optional<Schema.$Array<Schema.brand<Schema.Trim, "StageId">>>;
182
+ readonly priority: Schema.withDecodingDefault<Schema.Number>;
183
+ readonly protected: Schema.withDecodingDefault<Schema.Boolean>;
184
+ }>;
185
+ readonly contributedBy: Schema.optional<Schema.Trim>;
186
+ }>, Schema.Struct<{
187
+ readonly op: Schema.Literal<"wrap">;
188
+ readonly id: Schema.brand<Schema.Trim, "StageId">;
189
+ readonly around: Schema.Struct<{
190
+ readonly id: Schema.Trim;
191
+ readonly priority: Schema.withDecodingDefault<Schema.Number>;
192
+ }>;
193
+ readonly contributedBy: Schema.optional<Schema.Trim>;
194
+ }>, Schema.Struct<{
195
+ readonly op: Schema.Literal<"reorder">;
196
+ readonly id: Schema.brand<Schema.Trim, "StageId">;
197
+ readonly before: Schema.optional<Schema.$Array<Schema.brand<Schema.Trim, "StageId">>>;
198
+ readonly after: Schema.optional<Schema.$Array<Schema.brand<Schema.Trim, "StageId">>>;
199
+ readonly contributedBy: Schema.optional<Schema.Trim>;
200
+ }>]>>>;
157
201
  }>;
158
202
  export type PluginContributes = typeof PluginContributes.Type;
159
203
  export declare const RigPlugin: Schema.Struct<{
160
204
  readonly name: Schema.String;
161
205
  readonly version: Schema.String;
206
+ readonly provides: Schema.optional<Schema.$Array<Schema.Literals<readonly ["kernel", "journal", "stage-runner", "transport", "loader-policy"]>>>;
207
+ readonly requires: Schema.optional<Schema.$Array<Schema.Literals<readonly ["kernel", "journal", "stage-runner", "transport", "loader-policy"]>>>;
208
+ readonly replaces: Schema.optional<Schema.$Array<Schema.Union<readonly [Schema.Struct<{
209
+ readonly capability: Schema.Literals<readonly ["kernel", "journal", "stage-runner", "transport", "loader-policy"]>;
210
+ readonly providerPluginId: Schema.Trim;
211
+ }>, Schema.Trim]>>>;
162
212
  readonly contributes: Schema.optional<Schema.Struct<{
163
213
  readonly validators: Schema.optional<Schema.$Array<Schema.Struct<{
164
214
  readonly id: Schema.String;
@@ -225,6 +275,48 @@ export declare const RigPlugin: Schema.Struct<{
225
275
  readonly command: Schema.String;
226
276
  readonly description: Schema.optional<Schema.String>;
227
277
  }>>>;
278
+ readonly stageMutations: Schema.optional<Schema.$Array<Schema.Union<readonly [Schema.Struct<{
279
+ readonly op: Schema.Literal<"insert">;
280
+ readonly stage: Schema.Struct<{
281
+ readonly id: Schema.brand<Schema.Trim, "StageId">;
282
+ readonly kind: Schema.Literals<readonly ["transform", "gate", "observe"]>;
283
+ readonly before: Schema.optional<Schema.$Array<Schema.brand<Schema.Trim, "StageId">>>;
284
+ readonly after: Schema.optional<Schema.$Array<Schema.brand<Schema.Trim, "StageId">>>;
285
+ readonly priority: Schema.withDecodingDefault<Schema.Number>;
286
+ readonly protected: Schema.withDecodingDefault<Schema.Boolean>;
287
+ }>;
288
+ readonly contributedBy: Schema.optional<Schema.Trim>;
289
+ }>, Schema.Struct<{
290
+ readonly op: Schema.Literal<"remove">;
291
+ readonly id: Schema.brand<Schema.Trim, "StageId">;
292
+ readonly contributedBy: Schema.optional<Schema.Trim>;
293
+ }>, Schema.Struct<{
294
+ readonly op: Schema.Literal<"replace">;
295
+ readonly id: Schema.brand<Schema.Trim, "StageId">;
296
+ readonly stage: Schema.Struct<{
297
+ readonly id: Schema.brand<Schema.Trim, "StageId">;
298
+ readonly kind: Schema.Literals<readonly ["transform", "gate", "observe"]>;
299
+ readonly before: Schema.optional<Schema.$Array<Schema.brand<Schema.Trim, "StageId">>>;
300
+ readonly after: Schema.optional<Schema.$Array<Schema.brand<Schema.Trim, "StageId">>>;
301
+ readonly priority: Schema.withDecodingDefault<Schema.Number>;
302
+ readonly protected: Schema.withDecodingDefault<Schema.Boolean>;
303
+ }>;
304
+ readonly contributedBy: Schema.optional<Schema.Trim>;
305
+ }>, Schema.Struct<{
306
+ readonly op: Schema.Literal<"wrap">;
307
+ readonly id: Schema.brand<Schema.Trim, "StageId">;
308
+ readonly around: Schema.Struct<{
309
+ readonly id: Schema.Trim;
310
+ readonly priority: Schema.withDecodingDefault<Schema.Number>;
311
+ }>;
312
+ readonly contributedBy: Schema.optional<Schema.Trim>;
313
+ }>, Schema.Struct<{
314
+ readonly op: Schema.Literal<"reorder">;
315
+ readonly id: Schema.brand<Schema.Trim, "StageId">;
316
+ readonly before: Schema.optional<Schema.$Array<Schema.brand<Schema.Trim, "StageId">>>;
317
+ readonly after: Schema.optional<Schema.$Array<Schema.brand<Schema.Trim, "StageId">>>;
318
+ readonly contributedBy: Schema.optional<Schema.Trim>;
319
+ }>]>>>;
228
320
  }>>;
229
321
  }>;
230
322
  export type RigPlugin = typeof RigPlugin.Type;