@h-rig/contracts 0.0.6-alpha.17 → 0.0.6-alpha.171

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 (176) hide show
  1. package/dist/index.cjs +3373 -0
  2. package/dist/index.mjs +3332 -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/browser.d.ts +80 -0
  9. package/dist/src/browser.js +13 -0
  10. package/dist/src/capability-id.d.ts +22 -0
  11. package/dist/src/capability-id.js +8 -0
  12. package/dist/src/cli-output.d.ts +348 -0
  13. package/dist/src/cli-output.js +190 -0
  14. package/dist/src/cli-runner.d.ts +43 -0
  15. package/dist/src/cli-runner.js +13 -0
  16. package/dist/src/cockpit.d.ts +28 -0
  17. package/dist/src/cockpit.js +13 -0
  18. package/dist/src/collab-session-viewer.d.ts +36 -0
  19. package/dist/src/collab-session-viewer.js +13 -0
  20. package/dist/src/config.d.ts +551 -0
  21. package/dist/src/config.js +765 -162
  22. package/dist/src/control-plane-types.d.ts +323 -0
  23. package/dist/src/control-plane-types.js +13 -0
  24. package/dist/src/conversation.d.ts +50 -0
  25. package/dist/src/conversation.js +3 -0
  26. package/dist/src/dependency-preflight.d.ts +43 -0
  27. package/dist/src/dependency-preflight.js +13 -0
  28. package/dist/src/docs-drift.d.ts +10 -0
  29. package/dist/src/docs-drift.js +12 -0
  30. package/dist/src/doctor.d.ts +90 -0
  31. package/dist/src/doctor.js +13 -0
  32. package/dist/src/drift.d.ts +28 -0
  33. package/dist/src/drift.js +69 -0
  34. package/dist/src/editor.d.ts +25 -0
  35. package/dist/src/editor.js +3 -0
  36. package/dist/src/errors.d.ts +13 -0
  37. package/dist/src/errors.js +17 -0
  38. package/dist/src/git.d.ts +152 -0
  39. package/dist/src/git.js +3 -0
  40. package/dist/src/github.d.ts +285 -0
  41. package/dist/src/github.js +17 -0
  42. package/dist/src/graph.d.ts +360 -0
  43. package/dist/src/graph.js +137 -1
  44. package/dist/src/guard.d.ts +111 -0
  45. package/dist/src/guard.js +6 -0
  46. package/dist/src/harness-events.d.ts +8 -0
  47. package/dist/src/harness-events.js +1 -0
  48. package/dist/src/help-catalog.d.ts +41 -0
  49. package/dist/src/help-catalog.js +13 -0
  50. package/dist/src/host.d.ts +41 -0
  51. package/dist/src/host.js +13 -0
  52. package/dist/src/identity.d.ts +44 -0
  53. package/dist/src/identity.js +1 -0
  54. package/dist/src/index.d.ts +84 -0
  55. package/dist/src/index.js +2746 -3962
  56. package/dist/src/isolation.d.ts +213 -0
  57. package/dist/src/isolation.js +13 -0
  58. package/dist/src/kernel.d.ts +200 -0
  59. package/dist/src/kernel.js +261 -0
  60. package/dist/src/keybindings.d.ts +71 -0
  61. package/dist/src/keybindings.js +3 -0
  62. package/dist/src/layout.d.ts +49 -0
  63. package/dist/src/layout.js +10 -0
  64. package/dist/src/lifecycle-capabilities.d.ts +186 -0
  65. package/dist/src/lifecycle-capabilities.js +33 -0
  66. package/dist/src/managed-repos.d.ts +239 -0
  67. package/dist/src/managed-repos.js +33 -0
  68. package/dist/src/memory.d.ts +199 -0
  69. package/dist/src/memory.js +15 -0
  70. package/dist/src/model.d.ts +77 -0
  71. package/dist/src/native-toolchain.d.ts +46 -0
  72. package/dist/src/native-toolchain.js +13 -0
  73. package/dist/src/notify.d.ts +46 -0
  74. package/dist/src/notify.js +13 -0
  75. package/dist/src/orchestration.d.ts +43 -0
  76. package/dist/src/orchestration.js +28 -961
  77. package/dist/src/panel-protocol.d.ts +17 -0
  78. package/dist/src/panel-protocol.js +10 -0
  79. package/dist/src/pi-session.d.ts +113 -0
  80. package/dist/src/pi-session.js +1 -0
  81. package/dist/src/planning.d.ts +64 -0
  82. package/dist/src/planning.js +90 -0
  83. package/dist/src/plugin-hooks.d.ts +51 -0
  84. package/dist/src/plugin-hooks.js +386 -0
  85. package/dist/src/plugin.d.ts +476 -0
  86. package/dist/src/plugin.js +346 -64
  87. package/dist/src/policy.d.ts +16 -0
  88. package/dist/src/policy.js +3 -0
  89. package/dist/src/project.d.ts +71 -0
  90. package/dist/src/project.js +3 -0
  91. package/dist/src/prompt.d.ts +29 -0
  92. package/dist/src/prompt.js +13 -0
  93. package/dist/src/protocol-version.d.ts +21 -0
  94. package/dist/src/protocol-version.js +6 -0
  95. package/dist/src/provider-instructions.d.ts +41 -0
  96. package/dist/src/provider-instructions.js +13 -0
  97. package/dist/src/provider.d.ts +105 -0
  98. package/dist/src/provider.js +4 -824
  99. package/dist/src/remote.d.ts +318 -0
  100. package/dist/src/remote.js +238 -1078
  101. package/dist/src/review.d.ts +18 -0
  102. package/dist/src/review.js +3 -0
  103. package/dist/src/rollups.d.ts +41 -0
  104. package/dist/src/rollups.js +70 -0
  105. package/dist/src/run-discovery.d.ts +79 -0
  106. package/dist/src/run-discovery.js +13 -0
  107. package/dist/src/run-dispatch.d.ts +34 -0
  108. package/dist/src/run-dispatch.js +13 -0
  109. package/dist/src/run-identity.d.ts +47 -0
  110. package/dist/src/run-identity.js +13 -0
  111. package/dist/src/run-journal.d.ts +694 -0
  112. package/dist/src/run-journal.js +569 -0
  113. package/dist/src/run-read-model.d.ts +255 -0
  114. package/dist/src/run-read-model.js +13 -0
  115. package/dist/src/run-record.d.ts +45 -0
  116. package/dist/src/run-record.js +1 -0
  117. package/dist/src/run-registry-backbone.d.ts +56 -0
  118. package/dist/src/run-registry-backbone.js +13 -0
  119. package/dist/src/run-session-journal.d.ts +69 -0
  120. package/dist/src/run-session-journal.js +78 -0
  121. package/dist/src/run-status.d.ts +10 -0
  122. package/dist/src/run-status.js +27 -0
  123. package/dist/src/run-timeline.d.ts +7 -0
  124. package/dist/src/run-timeline.js +1 -0
  125. package/dist/src/runtime-task-context.d.ts +82 -0
  126. package/dist/src/runtime-task-context.js +1 -0
  127. package/dist/src/runtime.d.ts +103 -0
  128. package/dist/src/runtime.js +73 -906
  129. package/dist/src/session-asset-materializer.d.ts +35 -0
  130. package/dist/src/session-asset-materializer.js +13 -0
  131. package/dist/src/setup.d.ts +88 -0
  132. package/dist/src/setup.js +13 -0
  133. package/dist/src/stage.d.ts +245 -0
  134. package/dist/src/stage.js +169 -0
  135. package/dist/src/supervisor-journal.d.ts +204 -0
  136. package/dist/src/supervisor-journal.js +334 -0
  137. package/dist/src/task-artifacts.d.ts +33 -0
  138. package/dist/src/task-artifacts.js +13 -0
  139. package/dist/src/task-context-renderer.d.ts +29 -0
  140. package/dist/src/task-context-renderer.js +13 -0
  141. package/dist/src/task-data.d.ts +198 -0
  142. package/dist/src/task-data.js +13 -0
  143. package/dist/src/task-graph-primitives.d.ts +47 -0
  144. package/dist/src/task-graph-primitives.js +1 -0
  145. package/dist/src/task-source.d.ts +136 -0
  146. package/dist/src/task-source.js +16 -0
  147. package/dist/src/task-state-metadata.d.ts +21 -0
  148. package/dist/src/task-state-metadata.js +1 -0
  149. package/dist/src/task-state-store.d.ts +16 -0
  150. package/dist/src/task-state-store.js +13 -0
  151. package/dist/src/task-tracker-state.d.ts +106 -0
  152. package/dist/src/task-tracker-state.js +39 -0
  153. package/dist/src/terminal.d.ts +130 -0
  154. package/dist/src/terminal.js +3 -0
  155. package/dist/src/tool-materializer.d.ts +36 -0
  156. package/dist/src/tool-materializer.js +13 -0
  157. package/dist/src/tool-registry.d.ts +3 -0
  158. package/dist/src/tool-registry.js +58 -0
  159. package/dist/src/toolchain-sources.d.ts +54 -0
  160. package/dist/src/toolchain-sources.js +17 -0
  161. package/dist/src/validation.d.ts +14 -0
  162. package/dist/src/validation.js +3 -0
  163. package/dist/src/workflow-journal.d.ts +92 -0
  164. package/dist/src/workflow-journal.js +18 -0
  165. package/dist/src/workspace-config.d.ts +18 -0
  166. package/dist/src/workspace-config.js +13 -0
  167. package/dist/src/workspace.d.ts +204 -0
  168. package/dist/src/workspace.js +76 -911
  169. package/package.json +51 -4
  170. package/dist/src/engine.js +0 -2278
  171. package/dist/src/providerRuntime.js +0 -1630
  172. package/dist/src/rig.js +0 -2374
  173. package/dist/src/server.js +0 -1053
  174. package/dist/src/serviceFabric.js +0 -1066
  175. package/dist/src/ws.js +0 -2968
  176. /package/dist/src/{ipc.js → agent-roles.js} +0 -0
@@ -0,0 +1,386 @@
1
+ // @bun
2
+ // packages/contracts/src/plugin-hooks.ts
3
+ import { Schema as Schema5 } from "effect";
4
+
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
12
+ import { Schema } from "effect";
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([
231
+ "boundary",
232
+ "contract",
233
+ "integration",
234
+ "regression",
235
+ "external",
236
+ "custom"
237
+ ]);
238
+ var ValidatorRegistration = Schema4.Struct({
239
+ id: Schema4.String,
240
+ category: ValidatorCategory,
241
+ description: Schema4.optional(Schema4.String)
242
+ });
243
+ var AgentSessionHookEvent = Schema4.Literals([
244
+ "PreToolUse",
245
+ "PostToolUse",
246
+ "UserPromptSubmit",
247
+ "Stop",
248
+ "SessionStart",
249
+ "SessionEnd"
250
+ ]);
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 })
255
+ ]);
256
+ var HookRegistration = Schema4.Struct({
257
+ id: Schema4.String,
258
+ event: AgentSessionHookEvent,
259
+ matcher: HookMatcher,
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/plugin-hooks.ts
366
+ var HookToolInput = Schema5.Record(Schema5.String, Schema5.Unknown);
367
+ var HookContext = Schema5.Struct({
368
+ event: AgentSessionHookEvent,
369
+ toolName: Schema5.optional(Schema5.String),
370
+ toolInput: HookToolInput,
371
+ filePaths: Schema5.Array(Schema5.String),
372
+ projectRoot: Schema5.String,
373
+ taskId: Schema5.String
374
+ });
375
+ var HookDecision = Schema5.Literals(["allow", "block"]);
376
+ var HookResult = Schema5.Struct({
377
+ decision: HookDecision,
378
+ reason: Schema5.optional(Schema5.String),
379
+ systemMessage: Schema5.optional(Schema5.String)
380
+ });
381
+ export {
382
+ HookToolInput,
383
+ HookResult,
384
+ HookDecision,
385
+ HookContext
386
+ };