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

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,569 @@
1
+ // @bun
2
+ // packages/contracts/src/run-journal.ts
3
+ import { Schema as Schema5 } from "effect";
4
+
5
+ // packages/contracts/src/baseSchemas.ts
6
+ import { Schema } from "effect";
7
+ var TrimmedString = Schema.Trim;
8
+ var TrimmedNonEmptyString = TrimmedString.check(Schema.isNonEmpty());
9
+ var NonNegativeInt = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0));
10
+ var PositiveInt = Schema.Int.check(Schema.isGreaterThanOrEqualTo(1));
11
+ var IsoDateTime = Schema.String;
12
+ var makeEntityId = (brand) => TrimmedNonEmptyString.pipe(Schema.brand(brand));
13
+ var ThreadId = makeEntityId("ThreadId");
14
+ var ProjectId = makeEntityId("ProjectId");
15
+ var WorkspaceId = makeEntityId("WorkspaceId");
16
+ var GraphId = makeEntityId("GraphId");
17
+ var TaskId = makeEntityId("TaskId");
18
+ var RunId = makeEntityId("RunId");
19
+ var SafePathSegment = TrimmedNonEmptyString.check(Schema.isPattern(/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/)).pipe(Schema.brand("SafePathSegment"));
20
+ var SafeRunId = TrimmedNonEmptyString.check(Schema.isPattern(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/)).pipe(Schema.brand("SafeRunId"));
21
+ var SafeGitRefComponent = TrimmedNonEmptyString.check(Schema.isPattern(/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/)).pipe(Schema.brand("SafeGitRefComponent"));
22
+ var EngineRuntimeId = makeEntityId("EngineRuntimeId");
23
+ var ConversationId = makeEntityId("ConversationId");
24
+ var ActionId = makeEntityId("ActionId");
25
+ var ArtifactId = makeEntityId("ArtifactId");
26
+ var WorktreeId = makeEntityId("WorktreeId");
27
+ var ValidationResultId = makeEntityId("ValidationResultId");
28
+ var ReviewResultId = makeEntityId("ReviewResultId");
29
+ var CommandId = makeEntityId("CommandId");
30
+ var EventId = makeEntityId("EventId");
31
+ var MessageId = makeEntityId("MessageId");
32
+ var TurnId = makeEntityId("TurnId");
33
+ var ProviderItemId = makeEntityId("ProviderItemId");
34
+ var RuntimeSessionId = makeEntityId("RuntimeSessionId");
35
+ var RuntimeItemId = makeEntityId("RuntimeItemId");
36
+ var RuntimeRequestId = makeEntityId("RuntimeRequestId");
37
+ var RuntimeTaskId = makeEntityId("RuntimeTaskId");
38
+ var ApprovalRequestId = makeEntityId("ApprovalRequestId");
39
+ var CheckpointRef = makeEntityId("CheckpointRef");
40
+ var RemoteEndpointId = makeEntityId("RemoteEndpointId");
41
+
42
+ // packages/contracts/src/runtime.ts
43
+ import { Schema as Schema3 } from "effect";
44
+
45
+ // packages/contracts/src/orchestration.ts
46
+ import { Schema as Schema2 } from "effect";
47
+ var ProviderKind = Schema2.Literals(["codex", "claude"]);
48
+ var ProviderApprovalPolicy = Schema2.Literals([
49
+ "untrusted",
50
+ "on-failure",
51
+ "on-request",
52
+ "never"
53
+ ]);
54
+ var ProviderSandboxMode = Schema2.Literals([
55
+ "read-only",
56
+ "workspace-write",
57
+ "danger-full-access"
58
+ ]);
59
+ var ProviderServiceTier = Schema2.Literals(["fast", "flex"]);
60
+ var RuntimeMode = Schema2.Literals(["approval-required", "full-access"]);
61
+ var ProviderInteractionMode = Schema2.Literals(["default", "plan"]);
62
+ var ProviderRequestKind = Schema2.Literals(["command", "file-read", "file-change"]);
63
+ var ProviderApprovalDecision = Schema2.Literals([
64
+ "accept",
65
+ "acceptForSession",
66
+ "decline",
67
+ "cancel"
68
+ ]);
69
+ var ProviderUserInputAnswers = Schema2.Record(Schema2.String, Schema2.Unknown);
70
+ var PROVIDER_SEND_TURN_MAX_IMAGE_BYTES = 10 * 1024 * 1024;
71
+ var CHAT_ATTACHMENT_ID_MAX_CHARS = 128;
72
+ var ChatAttachmentId = TrimmedNonEmptyString.check(Schema2.isMaxLength(CHAT_ATTACHMENT_ID_MAX_CHARS), Schema2.isPattern(/^[a-z0-9_-]+$/i));
73
+ var ChatImageAttachment = Schema2.Struct({
74
+ type: Schema2.Literal("image"),
75
+ id: ChatAttachmentId,
76
+ name: TrimmedNonEmptyString.check(Schema2.isMaxLength(255)),
77
+ mimeType: TrimmedNonEmptyString.check(Schema2.isMaxLength(100), Schema2.isPattern(/^image\//i)),
78
+ sizeBytes: NonNegativeInt.check(Schema2.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_IMAGE_BYTES))
79
+ });
80
+ var ChatAttachment = Schema2.Union([ChatImageAttachment]);
81
+
82
+ // packages/contracts/src/runtime.ts
83
+ var RunKind = Schema3.Literals(["adhoc", "task", "batch", "validation", "review"]);
84
+ var RunMode = Schema3.Literals(["interactive", "autonomous", "supervised"]);
85
+ var RunStatus = Schema3.Literals([
86
+ "created",
87
+ "queued",
88
+ "preparing",
89
+ "running",
90
+ "waiting-approval",
91
+ "waiting-user-input",
92
+ "paused",
93
+ "validating",
94
+ "reviewing",
95
+ "closing-out",
96
+ "needs-attention",
97
+ "completed",
98
+ "failed",
99
+ "stopped"
100
+ ]);
101
+ var EngineSandboxMode = Schema3.Literals([
102
+ "read-only",
103
+ "workspace-write",
104
+ "danger-full-access"
105
+ ]);
106
+ var IsolationMode = Schema3.Literals(["none", "env", "worktree"]);
107
+ var RuntimeStatus = Schema3.Literals([
108
+ "prepared",
109
+ "starting",
110
+ "running",
111
+ "interrupted",
112
+ "exited",
113
+ "failed",
114
+ "destroyed"
115
+ ]);
116
+ var RunExecutionTarget = Schema3.Literals(["local", "remote"]);
117
+ var RunSummary = Schema3.Struct({
118
+ id: RunId,
119
+ workspaceId: WorkspaceId,
120
+ taskId: Schema3.NullOr(TaskId),
121
+ title: TrimmedNonEmptyString,
122
+ runKind: RunKind,
123
+ mode: RunMode,
124
+ runtimeMode: RuntimeMode,
125
+ interactionMode: ProviderInteractionMode,
126
+ status: RunStatus,
127
+ runtimeAdapter: Schema3.Literal("pi"),
128
+ model: Schema3.NullOr(TrimmedNonEmptyString),
129
+ initialPrompt: Schema3.NullOr(Schema3.String),
130
+ executionTarget: Schema3.optional(RunExecutionTarget),
131
+ remoteHostId: Schema3.optional(Schema3.NullOr(TrimmedNonEmptyString)),
132
+ remoteLeaseId: Schema3.optional(Schema3.NullOr(TrimmedNonEmptyString)),
133
+ remoteLeaseClaimedAt: Schema3.optional(Schema3.NullOr(IsoDateTime)),
134
+ activeRuntimeId: Schema3.NullOr(EngineRuntimeId),
135
+ latestMessageId: Schema3.NullOr(TrimmedNonEmptyString),
136
+ pendingApprovalCount: NonNegativeInt,
137
+ pendingUserInputCount: NonNegativeInt,
138
+ branch: Schema3.NullOr(TrimmedNonEmptyString),
139
+ worktreePath: Schema3.NullOr(TrimmedNonEmptyString),
140
+ errorText: Schema3.NullOr(Schema3.String),
141
+ createdAt: IsoDateTime,
142
+ updatedAt: IsoDateTime,
143
+ startedAt: Schema3.NullOr(IsoDateTime),
144
+ completedAt: Schema3.NullOr(IsoDateTime)
145
+ });
146
+ var RuntimeSummary = Schema3.Struct({
147
+ id: EngineRuntimeId,
148
+ workspaceId: WorkspaceId,
149
+ runId: RunId,
150
+ adapterKind: Schema3.Literal("pi"),
151
+ executionTarget: Schema3.optional(RunExecutionTarget),
152
+ remoteHostId: Schema3.optional(Schema3.NullOr(TrimmedNonEmptyString)),
153
+ status: RuntimeStatus,
154
+ sandboxMode: EngineSandboxMode,
155
+ isolationMode: IsolationMode,
156
+ workspaceDir: Schema3.NullOr(TrimmedNonEmptyString),
157
+ homeDir: Schema3.NullOr(TrimmedNonEmptyString),
158
+ tmpDir: Schema3.NullOr(TrimmedNonEmptyString),
159
+ cacheDir: Schema3.NullOr(TrimmedNonEmptyString),
160
+ logsDir: Schema3.NullOr(TrimmedNonEmptyString),
161
+ stateDir: Schema3.NullOr(TrimmedNonEmptyString),
162
+ sessionDir: Schema3.NullOr(TrimmedNonEmptyString),
163
+ sessionLogPath: Schema3.NullOr(TrimmedNonEmptyString),
164
+ pid: Schema3.NullOr(NonNegativeInt),
165
+ startedAt: Schema3.NullOr(IsoDateTime),
166
+ updatedAt: IsoDateTime,
167
+ exitedAt: Schema3.NullOr(IsoDateTime)
168
+ });
169
+ var ApprovalStatus = Schema3.Literals(["pending", "resolved"]);
170
+ var ApprovalSummary = Schema3.Struct({
171
+ id: TrimmedNonEmptyString,
172
+ runId: RunId,
173
+ actionId: Schema3.NullOr(TrimmedNonEmptyString),
174
+ requestKind: TrimmedNonEmptyString,
175
+ status: ApprovalStatus,
176
+ payload: Schema3.Unknown,
177
+ createdAt: IsoDateTime,
178
+ resolvedAt: Schema3.NullOr(IsoDateTime)
179
+ });
180
+ var UserInputRequestSummary = Schema3.Struct({
181
+ id: TrimmedNonEmptyString,
182
+ runId: RunId,
183
+ status: ApprovalStatus,
184
+ payload: Schema3.Unknown,
185
+ createdAt: IsoDateTime,
186
+ resolvedAt: Schema3.NullOr(IsoDateTime)
187
+ });
188
+ var WorktreeSummary = Schema3.Struct({
189
+ id: WorktreeId,
190
+ workspaceId: WorkspaceId,
191
+ runId: RunId,
192
+ taskId: Schema3.NullOr(TaskId),
193
+ branchName: TrimmedNonEmptyString,
194
+ path: TrimmedNonEmptyString,
195
+ status: TrimmedNonEmptyString,
196
+ createdAt: IsoDateTime,
197
+ cleanedAt: Schema3.NullOr(IsoDateTime)
198
+ });
199
+
200
+ // packages/contracts/src/stage.ts
201
+ import { Schema as Schema4 } from "effect";
202
+ var StageKind = Schema4.Literals(["transform", "gate", "observe"]);
203
+ var StageId = TrimmedNonEmptyString.pipe(Schema4.brand("StageId"));
204
+ var StageContext = Schema4.Struct({
205
+ runId: RunId,
206
+ taskId: Schema4.optional(Schema4.NullOr(TaskId)),
207
+ state: Schema4.Unknown,
208
+ metadata: Schema4.optional(Schema4.Record(Schema4.String, Schema4.Unknown))
209
+ });
210
+ var StageDescriptor = Schema4.Struct({
211
+ id: StageId,
212
+ kind: StageKind,
213
+ before: Schema4.optional(Schema4.Array(StageId)),
214
+ after: Schema4.optional(Schema4.Array(StageId)),
215
+ priority: Schema4.Number.pipe(Schema4.withDecodingDefault(() => 0)),
216
+ protected: Schema4.Boolean.pipe(Schema4.withDecodingDefault(() => false))
217
+ });
218
+ var StageContinueResult = Schema4.Struct({
219
+ kind: Schema4.Literal("continue"),
220
+ ctx: StageContext
221
+ });
222
+ var StageAllowResult = Schema4.Struct({
223
+ kind: Schema4.Literal("allow")
224
+ });
225
+ var StageBlockResult = Schema4.Struct({
226
+ kind: Schema4.Literal("block"),
227
+ reason: TrimmedNonEmptyString
228
+ });
229
+ var StageResult = Schema4.Union([
230
+ StageContinueResult,
231
+ StageAllowResult,
232
+ StageBlockResult
233
+ ]);
234
+ var StageWrapperDescriptor = Schema4.Struct({
235
+ id: TrimmedNonEmptyString,
236
+ priority: Schema4.Number.pipe(Schema4.withDecodingDefault(() => 0))
237
+ });
238
+ var StageMutationOp = Schema4.Literals(["insert", "remove", "replace", "wrap", "reorder"]);
239
+ var InsertStageMutation = Schema4.Struct({
240
+ op: Schema4.Literal("insert"),
241
+ stage: StageDescriptor,
242
+ contributedBy: Schema4.optional(TrimmedNonEmptyString)
243
+ });
244
+ var RemoveStageMutation = Schema4.Struct({
245
+ op: Schema4.Literal("remove"),
246
+ id: StageId,
247
+ contributedBy: Schema4.optional(TrimmedNonEmptyString)
248
+ });
249
+ var ReplaceStageMutation = Schema4.Struct({
250
+ op: Schema4.Literal("replace"),
251
+ id: StageId,
252
+ stage: StageDescriptor,
253
+ contributedBy: Schema4.optional(TrimmedNonEmptyString)
254
+ });
255
+ var WrapStageMutation = Schema4.Struct({
256
+ op: Schema4.Literal("wrap"),
257
+ id: StageId,
258
+ around: StageWrapperDescriptor,
259
+ contributedBy: Schema4.optional(TrimmedNonEmptyString)
260
+ });
261
+ var ReorderStageMutation = Schema4.Struct({
262
+ op: Schema4.Literal("reorder"),
263
+ id: StageId,
264
+ before: Schema4.optional(Schema4.Array(StageId)),
265
+ after: Schema4.optional(Schema4.Array(StageId)),
266
+ contributedBy: Schema4.optional(TrimmedNonEmptyString)
267
+ });
268
+ var StageMutation = Schema4.Union([
269
+ InsertStageMutation,
270
+ RemoveStageMutation,
271
+ ReplaceStageMutation,
272
+ WrapStageMutation,
273
+ ReorderStageMutation
274
+ ]);
275
+ var ResolutionGrantUse = Schema4.Struct({
276
+ kind: Schema4.Literal("kernel-replacement"),
277
+ target: TrimmedNonEmptyString,
278
+ pluginId: TrimmedNonEmptyString
279
+ });
280
+ var ResolutionRecordEntry = Schema4.Struct({
281
+ stageId: StageId,
282
+ contributedBy: TrimmedNonEmptyString,
283
+ removedBy: Schema4.optional(TrimmedNonEmptyString),
284
+ replacedBy: Schema4.optional(TrimmedNonEmptyString),
285
+ wrappedBy: Schema4.optional(Schema4.Array(TrimmedNonEmptyString)),
286
+ droppedAnchors: Schema4.optional(Schema4.Array(StageId)),
287
+ isProtected: Schema4.Boolean
288
+ });
289
+ var ResolvedPipeline = Schema4.Struct({
290
+ runId: Schema4.optional(RunId),
291
+ order: Schema4.Array(StageId),
292
+ record: Schema4.Array(ResolutionRecordEntry),
293
+ cycles: Schema4.Array(Schema4.Array(StageId)),
294
+ grantUses: Schema4.optional(Schema4.Array(ResolutionGrantUse)),
295
+ resolvedAt: Schema4.optional(IsoDateTime)
296
+ });
297
+ var StageRunOutcome = Schema4.Struct({
298
+ stageId: StageId,
299
+ result: StageResult,
300
+ startedAt: IsoDateTime,
301
+ finishedAt: IsoDateTime
302
+ });
303
+
304
+ // packages/contracts/src/run-journal.ts
305
+ var RunActor = Schema5.Struct({
306
+ kind: Schema5.Literals(["operator", "agent", "server", "system"]),
307
+ id: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString))
308
+ });
309
+ var RunCloseoutPhase = Schema5.Literals([
310
+ "queued",
311
+ "commit",
312
+ "push",
313
+ "pr-review-merge",
314
+ "pr-opened",
315
+ "merge",
316
+ "close-source",
317
+ "completed"
318
+ ]);
319
+ var RunCloseoutPhaseOutcome = Schema5.Literals(["started", "completed", "failed"]);
320
+ var RunCloseoutStatus = Schema5.Literals([
321
+ "pending",
322
+ "running",
323
+ "completed",
324
+ "needs-attention",
325
+ "failed"
326
+ ]);
327
+ var RunCloseoutState = Schema5.Struct({
328
+ phase: RunCloseoutPhase,
329
+ status: RunCloseoutStatus,
330
+ updatedAt: IsoDateTime,
331
+ taskId: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
332
+ runtimeWorkspace: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
333
+ branch: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
334
+ prUrl: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
335
+ artifactRoot: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
336
+ iterations: Schema5.optional(Schema5.NullOr(Schema5.Int)),
337
+ feedback: Schema5.optional(Schema5.Array(Schema5.String)),
338
+ error: Schema5.optional(Schema5.NullOr(Schema5.String)),
339
+ reason: Schema5.optional(Schema5.NullOr(Schema5.String)),
340
+ merged: Schema5.optional(Schema5.Boolean),
341
+ resumedAt: Schema5.optional(Schema5.NullOr(IsoDateTime)),
342
+ completedAt: Schema5.optional(Schema5.NullOr(IsoDateTime))
343
+ });
344
+ var ApprovalDecision = Schema5.Literals(["approve", "reject"]);
345
+ var runRecordFields = {
346
+ runId: TrimmedNonEmptyString,
347
+ workspaceId: TrimmedNonEmptyString,
348
+ taskId: Schema5.NullOr(TrimmedNonEmptyString),
349
+ threadId: Schema5.NullOr(TrimmedNonEmptyString),
350
+ mode: Schema5.Literals(["local", "remote"]),
351
+ runtimeAdapter: Schema5.Literal("pi"),
352
+ createdAt: IsoDateTime,
353
+ startedAt: Schema5.NullOr(IsoDateTime),
354
+ completedAt: Schema5.NullOr(IsoDateTime),
355
+ endpointId: Schema5.NullOr(TrimmedNonEmptyString),
356
+ hostId: Schema5.NullOr(TrimmedNonEmptyString),
357
+ worktreePath: Schema5.NullOr(TrimmedNonEmptyString),
358
+ artifactRoot: Schema5.NullOr(TrimmedNonEmptyString),
359
+ logRoot: Schema5.NullOr(TrimmedNonEmptyString),
360
+ sessionPath: Schema5.NullOr(TrimmedNonEmptyString),
361
+ sessionLogPath: Schema5.NullOr(TrimmedNonEmptyString),
362
+ pid: Schema5.optional(Schema5.NullOr(Schema5.Int)),
363
+ piSession: Schema5.optional(Schema5.Unknown),
364
+ piSessionPrivate: Schema5.optional(Schema5.Unknown),
365
+ updatedAt: IsoDateTime,
366
+ title: TrimmedNonEmptyString,
367
+ projectRoot: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
368
+ errorText: Schema5.optional(Schema5.NullOr(Schema5.String)),
369
+ latestMessageId: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
370
+ prUrl: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
371
+ leaseId: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
372
+ serverCloseout: Schema5.optional(Schema5.NullOr(RunCloseoutState)),
373
+ model: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
374
+ runtimeMode: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
375
+ interactionMode: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
376
+ runMode: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
377
+ initialPrompt: Schema5.optional(Schema5.NullOr(Schema5.String)),
378
+ baselineMode: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
379
+ prMode: Schema5.optional(Schema5.NullOr(Schema5.Literals(["auto", "ask", "off"]))),
380
+ initiatedBy: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
381
+ sourceTask: Schema5.optional(Schema5.Unknown),
382
+ serverPid: Schema5.optional(Schema5.NullOr(Schema5.Int)),
383
+ latestSteeringAt: Schema5.optional(Schema5.NullOr(IsoDateTime)),
384
+ latestSteeringDeliveredAt: Schema5.optional(Schema5.NullOr(IsoDateTime)),
385
+ statusDetail: Schema5.optional(Schema5.NullOr(Schema5.String)),
386
+ planning: Schema5.optional(Schema5.Unknown),
387
+ branch: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString))
388
+ };
389
+ var RunJournalRecord = Schema5.Struct({
390
+ ...runRecordFields,
391
+ status: RunStatus
392
+ });
393
+ var RunRecordPatch = Schema5.Struct({
394
+ runId: Schema5.optional(runRecordFields.runId),
395
+ workspaceId: Schema5.optional(runRecordFields.workspaceId),
396
+ taskId: Schema5.optional(runRecordFields.taskId),
397
+ threadId: Schema5.optional(runRecordFields.threadId),
398
+ mode: Schema5.optional(runRecordFields.mode),
399
+ runtimeAdapter: Schema5.optional(runRecordFields.runtimeAdapter),
400
+ createdAt: Schema5.optional(runRecordFields.createdAt),
401
+ startedAt: Schema5.optional(runRecordFields.startedAt),
402
+ completedAt: Schema5.optional(runRecordFields.completedAt),
403
+ endpointId: Schema5.optional(runRecordFields.endpointId),
404
+ hostId: Schema5.optional(runRecordFields.hostId),
405
+ worktreePath: Schema5.optional(runRecordFields.worktreePath),
406
+ artifactRoot: Schema5.optional(runRecordFields.artifactRoot),
407
+ logRoot: Schema5.optional(runRecordFields.logRoot),
408
+ sessionPath: Schema5.optional(runRecordFields.sessionPath),
409
+ sessionLogPath: Schema5.optional(runRecordFields.sessionLogPath),
410
+ pid: runRecordFields.pid,
411
+ piSession: runRecordFields.piSession,
412
+ piSessionPrivate: runRecordFields.piSessionPrivate,
413
+ updatedAt: Schema5.optional(runRecordFields.updatedAt),
414
+ title: Schema5.optional(runRecordFields.title),
415
+ projectRoot: runRecordFields.projectRoot,
416
+ errorText: runRecordFields.errorText,
417
+ latestMessageId: runRecordFields.latestMessageId,
418
+ prUrl: runRecordFields.prUrl,
419
+ leaseId: runRecordFields.leaseId,
420
+ serverCloseout: runRecordFields.serverCloseout,
421
+ model: runRecordFields.model,
422
+ runtimeMode: runRecordFields.runtimeMode,
423
+ interactionMode: runRecordFields.interactionMode,
424
+ runMode: runRecordFields.runMode,
425
+ initialPrompt: runRecordFields.initialPrompt,
426
+ baselineMode: runRecordFields.baselineMode,
427
+ prMode: runRecordFields.prMode,
428
+ initiatedBy: runRecordFields.initiatedBy,
429
+ sourceTask: runRecordFields.sourceTask,
430
+ serverPid: runRecordFields.serverPid,
431
+ latestSteeringAt: runRecordFields.latestSteeringAt,
432
+ latestSteeringDeliveredAt: runRecordFields.latestSteeringDeliveredAt,
433
+ statusDetail: runRecordFields.statusDetail,
434
+ planning: runRecordFields.planning,
435
+ branch: runRecordFields.branch
436
+ });
437
+ var journalEnvelopeFields = {
438
+ v: Schema5.Literal(1),
439
+ seq: PositiveInt,
440
+ at: IsoDateTime,
441
+ runId: RunId
442
+ };
443
+ var RunStatusChangedEvent = Schema5.Struct({
444
+ ...journalEnvelopeFields,
445
+ type: Schema5.Literal("status-changed"),
446
+ from: Schema5.NullOr(RunStatus),
447
+ to: RunStatus,
448
+ reason: Schema5.optional(Schema5.NullOr(Schema5.String)),
449
+ actor: Schema5.optional(RunActor)
450
+ });
451
+ var RunRecordPatchEvent = Schema5.Struct({
452
+ ...journalEnvelopeFields,
453
+ type: Schema5.Literal("record-patch"),
454
+ patch: RunRecordPatch
455
+ });
456
+ var RunTimelineEntryEvent = Schema5.Struct({
457
+ ...journalEnvelopeFields,
458
+ type: Schema5.Literal("timeline-entry"),
459
+ payload: Schema5.Unknown
460
+ });
461
+ var RunLogEntryEvent = Schema5.Struct({
462
+ ...journalEnvelopeFields,
463
+ type: Schema5.Literal("log-entry"),
464
+ payload: Schema5.Unknown
465
+ });
466
+ var RunApprovalRequestedEvent = Schema5.Struct({
467
+ ...journalEnvelopeFields,
468
+ type: Schema5.Literal("approval-requested"),
469
+ requestId: TrimmedNonEmptyString,
470
+ requestKind: TrimmedNonEmptyString,
471
+ actionId: Schema5.optional(Schema5.NullOr(TrimmedNonEmptyString)),
472
+ payload: Schema5.Unknown
473
+ });
474
+ var RunApprovalResolvedEvent = Schema5.Struct({
475
+ ...journalEnvelopeFields,
476
+ type: Schema5.Literal("approval-resolved"),
477
+ requestId: TrimmedNonEmptyString,
478
+ decision: ApprovalDecision,
479
+ note: Schema5.optional(Schema5.NullOr(Schema5.String)),
480
+ actor: RunActor
481
+ });
482
+ var RunInputRequestedEvent = Schema5.Struct({
483
+ ...journalEnvelopeFields,
484
+ type: Schema5.Literal("input-requested"),
485
+ requestId: TrimmedNonEmptyString,
486
+ payload: Schema5.Unknown
487
+ });
488
+ var RunInputResolvedEvent = Schema5.Struct({
489
+ ...journalEnvelopeFields,
490
+ type: Schema5.Literal("input-resolved"),
491
+ requestId: TrimmedNonEmptyString,
492
+ answers: Schema5.Record(Schema5.String, Schema5.String),
493
+ actor: RunActor
494
+ });
495
+ var RunSteeringEvent = Schema5.Struct({
496
+ ...journalEnvelopeFields,
497
+ type: Schema5.Literal("steering"),
498
+ actor: RunActor,
499
+ text: Schema5.String
500
+ });
501
+ var RunAdoptedEvent = Schema5.Struct({
502
+ ...journalEnvelopeFields,
503
+ type: Schema5.Literal("adopted"),
504
+ pid: Schema5.NullOr(Schema5.Int),
505
+ serverPid: Schema5.Int
506
+ });
507
+ var RunStallDetectedEvent = Schema5.Struct({
508
+ ...journalEnvelopeFields,
509
+ type: Schema5.Literal("stall-detected"),
510
+ detail: Schema5.String
511
+ });
512
+ var RunCloseoutPhaseEvent = Schema5.Struct({
513
+ ...journalEnvelopeFields,
514
+ type: Schema5.Literal("closeout-phase"),
515
+ phase: RunCloseoutPhase,
516
+ outcome: RunCloseoutPhaseOutcome,
517
+ detail: Schema5.optional(Schema5.NullOr(Schema5.String))
518
+ });
519
+ var RunPipelineResolvedEvent = Schema5.Struct({
520
+ ...journalEnvelopeFields,
521
+ type: Schema5.Literal("pipeline-resolved"),
522
+ pipeline: ResolvedPipeline
523
+ });
524
+ var RunStageOutcomeEvent = Schema5.Struct({
525
+ ...journalEnvelopeFields,
526
+ type: Schema5.Literal("stage-outcome"),
527
+ outcome: StageRunOutcome
528
+ });
529
+ var RunJournalEvent = Schema5.Union([
530
+ RunStatusChangedEvent,
531
+ RunRecordPatchEvent,
532
+ RunTimelineEntryEvent,
533
+ RunLogEntryEvent,
534
+ RunApprovalRequestedEvent,
535
+ RunApprovalResolvedEvent,
536
+ RunInputRequestedEvent,
537
+ RunInputResolvedEvent,
538
+ RunSteeringEvent,
539
+ RunAdoptedEvent,
540
+ RunStallDetectedEvent,
541
+ RunCloseoutPhaseEvent,
542
+ RunPipelineResolvedEvent,
543
+ RunStageOutcomeEvent
544
+ ]);
545
+ export {
546
+ RunTimelineEntryEvent,
547
+ RunSteeringEvent,
548
+ RunStatusChangedEvent,
549
+ RunStallDetectedEvent,
550
+ RunStageOutcomeEvent,
551
+ RunRecordPatchEvent,
552
+ RunRecordPatch,
553
+ RunPipelineResolvedEvent,
554
+ RunLogEntryEvent,
555
+ RunJournalRecord,
556
+ RunJournalEvent,
557
+ RunInputResolvedEvent,
558
+ RunInputRequestedEvent,
559
+ RunCloseoutStatus,
560
+ RunCloseoutState,
561
+ RunCloseoutPhaseOutcome,
562
+ RunCloseoutPhaseEvent,
563
+ RunCloseoutPhase,
564
+ RunApprovalResolvedEvent,
565
+ RunApprovalRequestedEvent,
566
+ RunAdoptedEvent,
567
+ RunActor,
568
+ ApprovalDecision
569
+ };