@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
@@ -0,0 +1,336 @@
1
+ // @bun
2
+ // packages/contracts/src/supervisor-journal.ts
3
+ import { Schema as Schema4 } 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/supervisor-journal.ts
201
+ var SupervisorStopReason = Schema4.Literals([
202
+ "all-done",
203
+ "all-human-blocked",
204
+ "blocked",
205
+ "work-pending",
206
+ "max-tasks",
207
+ "budget",
208
+ "judge-stop",
209
+ "operator-stop",
210
+ "source-error"
211
+ ]);
212
+ var SupervisorSelectionPolicy = Schema4.Literals(["rank", "max-unblock", "blocking-only"]);
213
+ var SupervisorStatus = Schema4.Literals(["running", "idle", "stopped", "finished"]);
214
+ var TaskClosureSummary = Schema4.Struct({
215
+ taskId: TaskId,
216
+ runId: RunId,
217
+ prUrl: Schema4.NullOr(Schema4.String),
218
+ mergeGate: Schema4.NullOr(Schema4.Literals(["passed", "blocked", "skipped"])),
219
+ acceptanceChecked: Schema4.Array(Schema4.Struct({
220
+ item: Schema4.String,
221
+ met: Schema4.Boolean
222
+ })),
223
+ unblockedTaskIds: Schema4.Array(TaskId)
224
+ });
225
+ var SupervisorStartedEvent = Schema4.Struct({
226
+ kind: Schema4.Literal("supervisor.started"),
227
+ at: IsoDateTime,
228
+ options: Schema4.Unknown
229
+ });
230
+ var SupervisorSelectionPlannedEvent = Schema4.Struct({
231
+ kind: Schema4.Literal("supervisor.selection-planned"),
232
+ at: IsoDateTime,
233
+ taskIds: Schema4.Array(TaskId),
234
+ policy: SupervisorSelectionPolicy
235
+ });
236
+ var SupervisorDispatchStartedEvent = Schema4.Struct({
237
+ kind: Schema4.Literal("supervisor.dispatch-started"),
238
+ at: IsoDateTime,
239
+ taskId: TaskId,
240
+ score: NonNegativeInt
241
+ });
242
+ var SupervisorDispatchConfirmedEvent = Schema4.Struct({
243
+ kind: Schema4.Literal("supervisor.dispatch-confirmed"),
244
+ at: IsoDateTime,
245
+ taskId: TaskId,
246
+ runId: RunId,
247
+ dispatchHandle: Schema4.optional(Schema4.NullOr(Schema4.String))
248
+ });
249
+ var SupervisorDispatchEvent = Schema4.Struct({
250
+ kind: Schema4.Literal("supervisor.dispatch"),
251
+ at: IsoDateTime,
252
+ taskId: TaskId,
253
+ runId: RunId,
254
+ score: NonNegativeInt,
255
+ dispatchHandle: Schema4.optional(Schema4.NullOr(Schema4.String))
256
+ });
257
+ var SupervisorOutcomeEvent = Schema4.Struct({
258
+ kind: Schema4.Literal("supervisor.outcome"),
259
+ at: IsoDateTime,
260
+ taskId: TaskId,
261
+ runId: RunId,
262
+ status: RunStatus,
263
+ failed: Schema4.Boolean,
264
+ unblockedTaskIds: Schema4.Array(TaskId),
265
+ closure: Schema4.optional(TaskClosureSummary)
266
+ });
267
+ var SupervisorSkippedEvent = Schema4.Struct({
268
+ kind: Schema4.Literal("supervisor.skipped"),
269
+ at: IsoDateTime,
270
+ taskId: TaskId,
271
+ reason: Schema4.String
272
+ });
273
+ var SupervisorIdleEvent = Schema4.Struct({
274
+ kind: Schema4.Literal("supervisor.idle"),
275
+ at: IsoDateTime,
276
+ reason: SupervisorStopReason
277
+ });
278
+ var SupervisorStoppedEvent = Schema4.Struct({
279
+ kind: Schema4.Literal("supervisor.stopped"),
280
+ at: IsoDateTime,
281
+ reason: SupervisorStopReason
282
+ });
283
+ var SupervisorFinishedEvent = Schema4.Struct({
284
+ kind: Schema4.Literal("supervisor.finished"),
285
+ at: IsoDateTime,
286
+ processed: NonNegativeInt,
287
+ succeeded: NonNegativeInt,
288
+ failed: NonNegativeInt,
289
+ skipped: Schema4.optional(NonNegativeInt),
290
+ idleReason: Schema4.NullOr(SupervisorStopReason)
291
+ });
292
+ var SupervisorEvent = Schema4.Union([
293
+ SupervisorStartedEvent,
294
+ SupervisorSelectionPlannedEvent,
295
+ SupervisorDispatchStartedEvent,
296
+ SupervisorDispatchConfirmedEvent,
297
+ SupervisorDispatchEvent,
298
+ SupervisorOutcomeEvent,
299
+ SupervisorSkippedEvent,
300
+ SupervisorIdleEvent,
301
+ SupervisorStoppedEvent,
302
+ SupervisorFinishedEvent
303
+ ]);
304
+ var SupervisorProjection = Schema4.Struct({
305
+ status: SupervisorStatus,
306
+ processed: NonNegativeInt,
307
+ succeeded: NonNegativeInt,
308
+ failed: NonNegativeInt,
309
+ skipped: NonNegativeInt,
310
+ current: Schema4.NullOr(Schema4.Struct({ taskId: TaskId, runId: RunId })),
311
+ plannedOrder: Schema4.Array(TaskId),
312
+ selectionPolicy: Schema4.NullOr(SupervisorSelectionPolicy),
313
+ concurrency: Schema4.NullOr(NonNegativeInt),
314
+ idleReason: Schema4.NullOr(SupervisorStopReason),
315
+ stopReason: Schema4.NullOr(SupervisorStopReason),
316
+ closures: Schema4.Array(TaskClosureSummary),
317
+ anomalies: Schema4.Array(Schema4.String)
318
+ });
319
+ export {
320
+ TaskClosureSummary,
321
+ SupervisorStoppedEvent,
322
+ SupervisorStopReason,
323
+ SupervisorStatus,
324
+ SupervisorStartedEvent,
325
+ SupervisorSkippedEvent,
326
+ SupervisorSelectionPolicy,
327
+ SupervisorSelectionPlannedEvent,
328
+ SupervisorProjection,
329
+ SupervisorOutcomeEvent,
330
+ SupervisorIdleEvent,
331
+ SupervisorFinishedEvent,
332
+ SupervisorEvent,
333
+ SupervisorDispatchStartedEvent,
334
+ SupervisorDispatchEvent,
335
+ SupervisorDispatchConfirmedEvent
336
+ };
@@ -0,0 +1,40 @@
1
+ /**
2
+ * supervisor-loop.ts — typed service boundary for autonomous supervisor control.
3
+ *
4
+ * The supervisor plugin owns loop orchestration. Its implementation resolves the
5
+ * scheduler RUN_QUEUE, run read-model, and transport dispatch capabilities rather
6
+ * than making CLI surfaces assemble those cross-package decisions.
7
+ */
8
+ import type { CapabilityId } from "./capability-id";
9
+ import type { SupervisorEvent, SupervisorProjection, SupervisorSelectionPolicy } from "./supervisor-journal";
10
+ export interface SupervisorLoopRunInput {
11
+ readonly projectRoot: string;
12
+ readonly maxTasks?: number;
13
+ readonly concurrency?: number;
14
+ readonly selectionPolicy?: SupervisorSelectionPolicy;
15
+ readonly candidateTaskIds?: Iterable<string>;
16
+ readonly excludeTaskIds?: Iterable<string>;
17
+ readonly dryRun?: boolean;
18
+ readonly model?: string | null;
19
+ readonly force?: boolean;
20
+ readonly timeoutMs?: number;
21
+ }
22
+ export interface SupervisorLoopUnblockInput {
23
+ readonly projectRoot: string;
24
+ readonly taskId?: string | null;
25
+ readonly dryRun?: boolean;
26
+ readonly timeoutMs?: number;
27
+ }
28
+ export interface SupervisorLoopResult {
29
+ readonly ok: boolean;
30
+ readonly dryRun: boolean;
31
+ readonly plannedOrder: readonly string[];
32
+ readonly events: readonly SupervisorEvent[];
33
+ readonly projection: SupervisorProjection;
34
+ }
35
+ export interface SupervisorLoopService {
36
+ readonly runLoop: (input: SupervisorLoopRunInput) => Promise<SupervisorLoopResult>;
37
+ readonly unblock: (input: SupervisorLoopUnblockInput) => Promise<SupervisorLoopResult>;
38
+ }
39
+ export declare const SUPERVISOR_LOOP_CAPABILITY_ID = "rig.supervisor.loop";
40
+ export declare const SUPERVISOR_LOOP: CapabilityId<SupervisorLoopService>;
@@ -0,0 +1,13 @@
1
+ // @bun
2
+ // packages/contracts/src/capability-id.ts
3
+ function makeCapabilityId(id) {
4
+ return id;
5
+ }
6
+
7
+ // packages/contracts/src/supervisor-loop.ts
8
+ var SUPERVISOR_LOOP_CAPABILITY_ID = "rig.supervisor.loop";
9
+ var SUPERVISOR_LOOP = makeCapabilityId(SUPERVISOR_LOOP_CAPABILITY_ID);
10
+ export {
11
+ SUPERVISOR_LOOP_CAPABILITY_ID,
12
+ SUPERVISOR_LOOP
13
+ };
@@ -0,0 +1,53 @@
1
+ import type { CapabilityId } from "./capability-id";
2
+ import type { TaskArtifactReadResult } from "./task-data";
3
+ export type TaskArtifactRef = {
4
+ readonly projectRoot: string;
5
+ readonly taskId?: string;
6
+ };
7
+ export type TaskArtifactListEntry = {
8
+ readonly path: string;
9
+ readonly sizeBytes: number;
10
+ readonly kind: "file" | "directory" | "other";
11
+ readonly modifiedAt?: string | null;
12
+ };
13
+ export type TaskArtifactWriteInput = TaskArtifactRef & {
14
+ readonly filename: string;
15
+ readonly content: string;
16
+ };
17
+ export type TaskArtifactReadInput = TaskArtifactRef & {
18
+ readonly filename: string;
19
+ readonly maxBytes?: number;
20
+ };
21
+ export type TaskArtifactWriteResult = {
22
+ readonly path: string;
23
+ readonly sizeBytes: number;
24
+ };
25
+ export type TaskDecisionAppendInput = TaskArtifactRef & {
26
+ readonly text: string;
27
+ readonly timestamp?: string;
28
+ };
29
+ export type TaskDecisionAppendResult = {
30
+ readonly taskId: string;
31
+ readonly path: string;
32
+ readonly message: string;
33
+ };
34
+ export type TaskCompletionArtifactsPrepareInput = TaskArtifactRef & {
35
+ readonly changedFiles: readonly string[];
36
+ readonly completedAt?: string;
37
+ };
38
+ export type TaskCompletionArtifactsPrepareResult = {
39
+ readonly taskId: string;
40
+ readonly artifactDir: string;
41
+ readonly message: string;
42
+ };
43
+ /** Task artifact directory/list/read/write vocabulary. */
44
+ export interface TaskArtifactsService {
45
+ artifactDir(input: TaskArtifactRef): string;
46
+ listArtifacts(input: TaskArtifactRef): Promise<readonly TaskArtifactListEntry[]>;
47
+ readArtifact(input: TaskArtifactReadInput): Promise<TaskArtifactReadResult>;
48
+ writeArtifact(input: TaskArtifactWriteInput): Promise<TaskArtifactWriteResult>;
49
+ appendDecision(input: TaskDecisionAppendInput): Promise<TaskDecisionAppendResult>;
50
+ prepareCompletionArtifacts(input: TaskCompletionArtifactsPrepareInput): Promise<TaskCompletionArtifactsPrepareResult>;
51
+ }
52
+ export declare const TASK_ARTIFACTS_CAPABILITY_ID = "task-state.artifacts";
53
+ export declare const TASK_ARTIFACTS: CapabilityId<TaskArtifactsService>;
@@ -0,0 +1,13 @@
1
+ // @bun
2
+ // packages/contracts/src/capability-id.ts
3
+ function makeCapabilityId(id) {
4
+ return id;
5
+ }
6
+
7
+ // packages/contracts/src/task-artifacts.ts
8
+ var TASK_ARTIFACTS_CAPABILITY_ID = "task-state.artifacts";
9
+ var TASK_ARTIFACTS = makeCapabilityId(TASK_ARTIFACTS_CAPABILITY_ID);
10
+ export {
11
+ TASK_ARTIFACTS_CAPABILITY_ID,
12
+ TASK_ARTIFACTS
13
+ };
@@ -0,0 +1,22 @@
1
+ /**
2
+ * task-config.ts - floor-neutral local task config entry vocabulary.
3
+ *
4
+ * The shape is shared by task-state/task-io compatibility paths, but read,
5
+ * write, normalization, and source materialization policy are owned by plugins.
6
+ */
7
+ import type { TaskBrowserConfig } from "./browser";
8
+ export type TaskConfigEntry = {
9
+ title?: string;
10
+ status?: string;
11
+ role?: string;
12
+ description?: string;
13
+ acceptance_criteria?: string;
14
+ scope?: string[];
15
+ validation?: string[];
16
+ browser?: TaskBrowserConfig;
17
+ repo_pins?: Record<string, string>;
18
+ criticality?: "core" | "high" | "normal";
19
+ queue_weight?: number;
20
+ creates_repo?: boolean;
21
+ auto_synced?: boolean;
22
+ };
@@ -0,0 +1 @@
1
+ // @bun
@@ -0,0 +1,29 @@
1
+ import type { CapabilityId } from "./capability-id";
2
+ import type { RuntimeInstructionProvider } from "./provider-instructions";
3
+ import type { RigTask, TaskRecord } from "./task-source";
4
+ export type TaskContextRenderInput = {
5
+ readonly projectRoot: string;
6
+ readonly taskId?: string;
7
+ readonly task?: RigTask | TaskRecord | null;
8
+ readonly provider?: RuntimeInstructionProvider;
9
+ };
10
+ export type TaskScopeRenderInput = TaskContextRenderInput & {
11
+ readonly expandFiles?: boolean;
12
+ };
13
+ export type TaskPromptContextSection = {
14
+ readonly title: string;
15
+ readonly content: string;
16
+ };
17
+ export type TaskPromptContext = {
18
+ readonly taskId: string | null;
19
+ readonly sections: readonly TaskPromptContextSection[];
20
+ };
21
+ /** Provider/prompt-owned task info, scope, and dependency rendering vocabulary. */
22
+ export interface TaskContextRendererService {
23
+ renderTaskInfo(input: TaskContextRenderInput): Promise<TaskPromptContextSection>;
24
+ renderTaskScope(input: TaskScopeRenderInput): Promise<TaskPromptContextSection>;
25
+ renderTaskDependencies(input: TaskContextRenderInput): Promise<TaskPromptContextSection>;
26
+ renderPromptContext(input: TaskContextRenderInput): Promise<TaskPromptContext>;
27
+ }
28
+ export declare const TASK_CONTEXT_RENDERER_CAPABILITY_ID = "provider.task-context-renderer";
29
+ export declare const TASK_CONTEXT_RENDERER: CapabilityId<TaskContextRendererService>;
@@ -0,0 +1,13 @@
1
+ // @bun
2
+ // packages/contracts/src/capability-id.ts
3
+ function makeCapabilityId(id) {
4
+ return id;
5
+ }
6
+
7
+ // packages/contracts/src/task-context-renderer.ts
8
+ var TASK_CONTEXT_RENDERER_CAPABILITY_ID = "provider.task-context-renderer";
9
+ var TASK_CONTEXT_RENDERER = makeCapabilityId(TASK_CONTEXT_RENDERER_CAPABILITY_ID);
10
+ export {
11
+ TASK_CONTEXT_RENDERER_CAPABILITY_ID,
12
+ TASK_CONTEXT_RENDERER
13
+ };