@knpkv/herdr-work 0.4.0 → 0.5.0
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.
- package/README.md +95 -1
- package/dist/agent-binding.d.ts +4 -0
- package/dist/agent-binding.d.ts.map +1 -0
- package/dist/agent-binding.js +26 -0
- package/dist/agent-binding.js.map +1 -0
- package/dist/errors.d.ts +141 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +97 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/agent-binding-admission.d.ts +15 -0
- package/dist/internal/agent-binding-admission.d.ts.map +1 -0
- package/dist/internal/agent-binding-admission.js +92 -0
- package/dist/internal/agent-binding-admission.js.map +1 -0
- package/dist/internal/agent-binding-readback.d.ts +55 -0
- package/dist/internal/agent-binding-readback.d.ts.map +1 -0
- package/dist/internal/agent-binding-readback.js +124 -0
- package/dist/internal/agent-binding-readback.js.map +1 -0
- package/dist/internal/coordinator-authority.d.ts +62 -0
- package/dist/internal/coordinator-authority.d.ts.map +1 -0
- package/dist/internal/coordinator-authority.js +214 -0
- package/dist/internal/coordinator-authority.js.map +1 -0
- package/dist/internal/decision-handoff-migration.d.ts +126 -0
- package/dist/internal/decision-handoff-migration.d.ts.map +1 -0
- package/dist/internal/decision-handoff-migration.js +51 -0
- package/dist/internal/decision-handoff-migration.js.map +1 -0
- package/dist/internal/history-validation.d.ts +5 -0
- package/dist/internal/history-validation.d.ts.map +1 -0
- package/dist/internal/history-validation.js +33 -0
- package/dist/internal/history-validation.js.map +1 -0
- package/dist/model.d.ts +3075 -51
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +334 -12
- package/dist/model.js.map +1 -1
- package/dist/navigation.d.ts +17 -0
- package/dist/navigation.d.ts.map +1 -0
- package/dist/navigation.js +62 -0
- package/dist/navigation.js.map +1 -0
- package/dist/projection.d.ts +644 -0
- package/dist/projection.d.ts.map +1 -1
- package/dist/projection.js +65 -30
- package/dist/projection.js.map +1 -1
- package/dist/service.d.ts +1870 -3
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +138 -5
- package/dist/service.js.map +1 -1
- package/dist/sql.d.ts +30 -0
- package/dist/sql.d.ts.map +1 -0
- package/dist/sql.js +1454 -0
- package/dist/sql.js.map +1 -0
- package/dist/store.d.ts +1068 -4
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +3309 -26
- package/dist/store.js.map +1 -1
- package/dist/view.d.ts.map +1 -1
- package/dist/view.js +154 -8
- package/dist/view.js.map +1 -1
- package/package.json +25 -13
- package/src/styles.css +91 -17
package/dist/service.d.ts
CHANGED
|
@@ -1,13 +1,1236 @@
|
|
|
1
|
-
import { Effect } from "effect";
|
|
2
|
-
import
|
|
3
|
-
import type {
|
|
1
|
+
import { Effect, Option } from "effect";
|
|
2
|
+
import { WorkPullRequestLinkError, WorkRecoveryContextError } from "./errors.js";
|
|
3
|
+
import type { WorkAdmissionConflictError, WorkAgentBindingAuthorityError, WorkAgentBindingConflictError, WorkCheckpointConflictError, WorkCoordinatorHandoffConflictError, WorkDecisionAuthorityConflictError, WorkDecisionHandoffConflictError, WorkDecisionRevisionConflictError, WorkGoalAgentTargetConflictError, WorkGoalBindingRequiresAgentError, WorkGoalOwnerMismatchError, WorkGoalReassignmentConflictError, WorkGoalRevisionConflictError, WorkLaneClaimConflictError, WorkLaneGoalConflictError, WorkLaneOperationConflictError, WorkProjectionError, WorkStoreError, WorkTransactionConflictError } from "./errors.js";
|
|
4
|
+
import type { WorkAdmissionPreflight, WorkAdmissionTarget, WorkAgentBinding, WorkAgentBindingRequest, WorkDecisionHandoff, WorkExistingGoalRecovery, WorkExistingOwnerReconciliation, WorkGoalCheckpoint, WorkGoalReassigned, WorkGoalReassignment, WorkLaneClaim, WorkLaneClaimed, WorkProspectiveAdmission, WorkRecoveryContext, WorkRecoveryPreflight, WorkRecoveryTarget, WorkSnapshots } from "./model.js";
|
|
5
|
+
import { WorkPullRequestLink, WorkPullRequestLinkRequest } from "./model.js";
|
|
4
6
|
import type { WorkStoreService } from "./store.js";
|
|
5
7
|
export interface WorkService {
|
|
8
|
+
/** Exact durable checkpoint facts, not recovery eligibility or approval authority. */
|
|
9
|
+
readonly recoveryContext: (goalId: string) => Effect.Effect<WorkRecoveryContext, WorkRecoveryContextError | WorkProjectionError | WorkStoreError>;
|
|
10
|
+
readonly recoveryPreflight: (target: WorkRecoveryTarget) => Effect.Effect<WorkRecoveryPreflight, WorkProjectionError | WorkStoreError>;
|
|
11
|
+
readonly recoverExistingGoal: (request: WorkExistingGoalRecovery) => Effect.Effect<WorkPullRequestLink, WorkAdmissionConflictError | WorkProjectionError | WorkStoreError>;
|
|
12
|
+
/** Approval-bound owner transfer; replaying the same approval job returns the prior result. */
|
|
13
|
+
readonly reassign: (request: WorkGoalReassignment) => Effect.Effect<WorkGoalReassigned, WorkGoalAgentTargetConflictError | WorkGoalBindingRequiresAgentError | WorkGoalOwnerMismatchError | WorkGoalReassignmentConflictError | WorkGoalRevisionConflictError | WorkProjectionError | WorkStoreError>;
|
|
14
|
+
readonly admissionPreflight: (target: WorkAdmissionTarget) => Effect.Effect<WorkAdmissionPreflight, WorkProjectionError | WorkStoreError>;
|
|
15
|
+
readonly admitExistingOwner: (request: WorkProspectiveAdmission) => Effect.Effect<WorkPullRequestLink, WorkAdmissionConflictError | WorkProjectionError | WorkStoreError>;
|
|
16
|
+
readonly inspectPullRequest: (request: WorkPullRequestLinkRequest) => Effect.Effect<WorkPullRequestLink, WorkPullRequestLinkError | WorkProjectionError | WorkStoreError>;
|
|
17
|
+
readonly reconcileExistingOwner: (request: WorkExistingOwnerReconciliation) => Effect.Effect<WorkLaneClaimed, WorkPullRequestLinkError | WorkLaneClaimConflictError | WorkLaneGoalConflictError | WorkLaneOperationConflictError | WorkProjectionError | WorkStoreError>;
|
|
18
|
+
readonly bindAgent: (request: WorkAgentBindingRequest) => Effect.Effect<WorkAgentBinding, WorkAgentBindingAuthorityError | WorkAgentBindingConflictError | WorkProjectionError | WorkStoreError>;
|
|
19
|
+
readonly agentBinding: (dispatchRequestId: string) => Effect.Effect<Option.Option<WorkAgentBinding>, WorkStoreError>;
|
|
6
20
|
readonly record: (event: WorkGoalCheckpoint) => Effect.Effect<WorkGoalCheckpoint, WorkCheckpointConflictError | WorkProjectionError | WorkStoreError>;
|
|
21
|
+
/**
|
|
22
|
+
* Projects history at an explicit timestamp, or at the later of the current
|
|
23
|
+
* clock and the coordinator-owned logical timestamp when none is given.
|
|
24
|
+
*/
|
|
7
25
|
readonly snapshots: (observedAt?: number) => Effect.Effect<WorkSnapshots, WorkStoreError | WorkProjectionError>;
|
|
26
|
+
readonly recordMany: (transactionId: string, events: ReadonlyArray<WorkGoalCheckpoint>) => Effect.Effect<ReadonlyArray<WorkGoalCheckpoint>, WorkCheckpointConflictError | WorkProjectionError | WorkTransactionConflictError | WorkStoreError>;
|
|
27
|
+
readonly claim: (claim: WorkLaneClaim) => Effect.Effect<WorkLaneClaimed, WorkLaneClaimConflictError | WorkLaneGoalConflictError | WorkLaneOperationConflictError | WorkPullRequestLinkError | WorkProjectionError | WorkStoreError>;
|
|
28
|
+
readonly currentClaim: (laneId: string) => Effect.Effect<Option.Option<WorkLaneClaimed>, WorkStoreError>;
|
|
29
|
+
readonly activeGoalClaim: (goalId: string) => Effect.Effect<Option.Option<WorkLaneClaimed>, WorkStoreError>;
|
|
30
|
+
readonly handoff: (handoff: WorkDecisionHandoff) => Effect.Effect<WorkDecisionHandoff, WorkCoordinatorHandoffConflictError | WorkDecisionAuthorityConflictError | WorkDecisionHandoffConflictError | WorkDecisionRevisionConflictError | WorkProjectionError | WorkStoreError>;
|
|
31
|
+
readonly coordinatorHandoff: (sessionId: string) => Effect.Effect<Option.Option<WorkDecisionHandoff>, WorkStoreError>;
|
|
32
|
+
readonly decisions: (laneId: string) => Effect.Effect<ReadonlyArray<WorkDecisionHandoff>, WorkStoreError>;
|
|
8
33
|
}
|
|
9
34
|
export declare const makeWorkService: (store: WorkStoreService) => Effect.Effect<{
|
|
35
|
+
recoveryContext: (goalId: string) => Effect.Effect<{
|
|
36
|
+
goalId: string;
|
|
37
|
+
expectedGoalEventId: string;
|
|
38
|
+
expectedGoalUpdatedAt: number;
|
|
39
|
+
}, WorkProjectionError | WorkRecoveryContextError | WorkStoreError, never>;
|
|
40
|
+
recoveryPreflight: (target: WorkRecoveryTarget) => Effect.Effect<{
|
|
41
|
+
readonly _tag: "conflict";
|
|
42
|
+
readonly target: {
|
|
43
|
+
readonly repository: string;
|
|
44
|
+
readonly pullRequest: number;
|
|
45
|
+
readonly reviewUrl: string;
|
|
46
|
+
readonly goalId: string;
|
|
47
|
+
readonly laneId: string;
|
|
48
|
+
readonly head: string;
|
|
49
|
+
readonly baseHead: string;
|
|
50
|
+
readonly owner: {
|
|
51
|
+
readonly id: string;
|
|
52
|
+
readonly name: string;
|
|
53
|
+
};
|
|
54
|
+
readonly sessionId: string;
|
|
55
|
+
readonly expectedWork: string;
|
|
56
|
+
readonly worker: {
|
|
57
|
+
readonly host: string;
|
|
58
|
+
readonly agentId: string;
|
|
59
|
+
readonly name: string;
|
|
60
|
+
readonly paneId: string;
|
|
61
|
+
readonly relationship?: {
|
|
62
|
+
readonly parentAgentId: string;
|
|
63
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
readonly worktree: string;
|
|
67
|
+
readonly branch: string;
|
|
68
|
+
readonly expectedGoalEventId: string;
|
|
69
|
+
readonly expectedGoalUpdatedAt: number;
|
|
70
|
+
};
|
|
71
|
+
readonly reason: string;
|
|
72
|
+
} | {
|
|
73
|
+
readonly _tag: "existing";
|
|
74
|
+
readonly target: {
|
|
75
|
+
readonly repository: string;
|
|
76
|
+
readonly pullRequest: number;
|
|
77
|
+
readonly reviewUrl: string;
|
|
78
|
+
readonly goalId: string;
|
|
79
|
+
readonly laneId: string;
|
|
80
|
+
readonly head: string;
|
|
81
|
+
readonly baseHead: string;
|
|
82
|
+
readonly owner: {
|
|
83
|
+
readonly id: string;
|
|
84
|
+
readonly name: string;
|
|
85
|
+
};
|
|
86
|
+
readonly sessionId: string;
|
|
87
|
+
readonly expectedWork: string;
|
|
88
|
+
readonly worker: {
|
|
89
|
+
readonly host: string;
|
|
90
|
+
readonly agentId: string;
|
|
91
|
+
readonly name: string;
|
|
92
|
+
readonly paneId: string;
|
|
93
|
+
readonly relationship?: {
|
|
94
|
+
readonly parentAgentId: string;
|
|
95
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
readonly worktree: string;
|
|
99
|
+
readonly branch: string;
|
|
100
|
+
readonly expectedGoalEventId: string;
|
|
101
|
+
readonly expectedGoalUpdatedAt: number;
|
|
102
|
+
};
|
|
103
|
+
readonly link: {
|
|
104
|
+
readonly request: {
|
|
105
|
+
readonly repository: string;
|
|
106
|
+
readonly pullRequest: number;
|
|
107
|
+
readonly goalId: string;
|
|
108
|
+
readonly laneId: string;
|
|
109
|
+
};
|
|
110
|
+
readonly goalEventId: string;
|
|
111
|
+
readonly goal: {
|
|
112
|
+
readonly id: string;
|
|
113
|
+
readonly title: string;
|
|
114
|
+
readonly summary: string;
|
|
115
|
+
readonly detail: string;
|
|
116
|
+
readonly state: "blocked" | "completed" | "deployed" | "planned" | "review" | "working";
|
|
117
|
+
readonly owner: {
|
|
118
|
+
readonly id: string;
|
|
119
|
+
readonly name: string;
|
|
120
|
+
};
|
|
121
|
+
readonly repository: {
|
|
122
|
+
readonly repository: string;
|
|
123
|
+
readonly branch: string;
|
|
124
|
+
};
|
|
125
|
+
readonly spend: {
|
|
126
|
+
readonly currency: string;
|
|
127
|
+
readonly minorUnits: number;
|
|
128
|
+
} | null;
|
|
129
|
+
readonly delivery: "deployed" | "local" | "merged" | "pull_request" | "review";
|
|
130
|
+
readonly blocker: {
|
|
131
|
+
readonly summary: string;
|
|
132
|
+
readonly since: number;
|
|
133
|
+
} | null;
|
|
134
|
+
readonly connectTarget: {
|
|
135
|
+
readonly host: string;
|
|
136
|
+
readonly agentId: string;
|
|
137
|
+
readonly url: string;
|
|
138
|
+
} | null;
|
|
139
|
+
readonly goalFamily?: {
|
|
140
|
+
readonly canonicalGoalId: string;
|
|
141
|
+
readonly role: "canonical" | "superseded";
|
|
142
|
+
};
|
|
143
|
+
readonly agentHierarchy?: {
|
|
144
|
+
readonly agent: {
|
|
145
|
+
readonly host: string;
|
|
146
|
+
readonly agentId: string;
|
|
147
|
+
readonly name: string;
|
|
148
|
+
readonly paneId: string;
|
|
149
|
+
readonly relationship?: {
|
|
150
|
+
readonly parentAgentId: string;
|
|
151
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
} | null;
|
|
155
|
+
readonly activity?: readonly {
|
|
156
|
+
readonly id: string;
|
|
157
|
+
readonly kind: "blocker" | "note" | "request" | "review" | "shipment" | "status";
|
|
158
|
+
readonly summary: string;
|
|
159
|
+
readonly occurredAt: number;
|
|
160
|
+
}[];
|
|
161
|
+
readonly blockers?: readonly {
|
|
162
|
+
readonly summary: string;
|
|
163
|
+
readonly since: number;
|
|
164
|
+
}[];
|
|
165
|
+
readonly requests?: readonly {
|
|
166
|
+
readonly id: string;
|
|
167
|
+
readonly summary: string;
|
|
168
|
+
readonly state: "approved" | "fulfilled" | "open" | "rejected";
|
|
169
|
+
readonly requestedAt: number;
|
|
170
|
+
readonly approvalTarget: {
|
|
171
|
+
readonly host: string;
|
|
172
|
+
readonly jobId: string;
|
|
173
|
+
readonly url: string;
|
|
174
|
+
} | null;
|
|
175
|
+
}[];
|
|
176
|
+
readonly review?: {
|
|
177
|
+
readonly state: "approved" | "changes_requested" | "not_requested" | "requested";
|
|
178
|
+
readonly summary: string | null;
|
|
179
|
+
readonly updatedAt: number;
|
|
180
|
+
readonly url: string | null;
|
|
181
|
+
} | null;
|
|
182
|
+
readonly approvalTarget?: {
|
|
183
|
+
readonly host: string;
|
|
184
|
+
readonly jobId: string;
|
|
185
|
+
readonly url: string;
|
|
186
|
+
} | null;
|
|
187
|
+
readonly createdAt: number;
|
|
188
|
+
readonly updatedAt: number;
|
|
189
|
+
};
|
|
190
|
+
readonly lane: {
|
|
191
|
+
readonly operationId: string;
|
|
192
|
+
readonly goalId: string;
|
|
193
|
+
readonly laneId: string;
|
|
194
|
+
readonly worktree: string;
|
|
195
|
+
readonly branch: string;
|
|
196
|
+
readonly head: string;
|
|
197
|
+
readonly owner: {
|
|
198
|
+
readonly id: string;
|
|
199
|
+
readonly name: string;
|
|
200
|
+
};
|
|
201
|
+
readonly parent: string | null;
|
|
202
|
+
readonly phase: "claim" | "implementation" | "review" | "shipped" | "validation";
|
|
203
|
+
readonly expectedRevision: number;
|
|
204
|
+
readonly reconciliation?: {
|
|
205
|
+
readonly repository: string;
|
|
206
|
+
readonly pullRequest: number;
|
|
207
|
+
readonly expectedHead: string;
|
|
208
|
+
readonly expectedOwner: {
|
|
209
|
+
readonly id: string;
|
|
210
|
+
readonly name: string;
|
|
211
|
+
};
|
|
212
|
+
readonly expectedGoalEventId: string;
|
|
213
|
+
readonly bindingDispatchRequestId: string;
|
|
214
|
+
readonly sessionId: string;
|
|
215
|
+
readonly worker: {
|
|
216
|
+
readonly host: string;
|
|
217
|
+
readonly agentId: string;
|
|
218
|
+
readonly name: string;
|
|
219
|
+
readonly paneId: string;
|
|
220
|
+
readonly relationship?: {
|
|
221
|
+
readonly parentAgentId: string;
|
|
222
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
223
|
+
};
|
|
224
|
+
};
|
|
225
|
+
};
|
|
226
|
+
readonly revision: number;
|
|
227
|
+
};
|
|
228
|
+
readonly binding: {
|
|
229
|
+
readonly version: "herdr.work.agent-binding.v1";
|
|
230
|
+
readonly request: {
|
|
231
|
+
readonly version: "herdr.work.agent-binding-request.v1";
|
|
232
|
+
readonly dispatchRequestId: string;
|
|
233
|
+
readonly laneId: string;
|
|
234
|
+
readonly expectedRevision: number;
|
|
235
|
+
readonly worker: {
|
|
236
|
+
readonly host: string;
|
|
237
|
+
readonly agentId: string;
|
|
238
|
+
readonly name: string;
|
|
239
|
+
readonly paneId: string;
|
|
240
|
+
readonly relationship?: {
|
|
241
|
+
readonly parentAgentId: string;
|
|
242
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
243
|
+
};
|
|
244
|
+
};
|
|
245
|
+
readonly prospectiveAdmission?: {
|
|
246
|
+
readonly sessionId: string;
|
|
247
|
+
readonly workAssignment: string;
|
|
248
|
+
readonly baseHead: string;
|
|
249
|
+
readonly expectedAbsenceToken: string;
|
|
250
|
+
readonly approvalJobId: string;
|
|
251
|
+
readonly approvalActor: string;
|
|
252
|
+
};
|
|
253
|
+
readonly existingGoalRecovery?: {
|
|
254
|
+
readonly sessionId: string;
|
|
255
|
+
readonly workAssignment: string;
|
|
256
|
+
readonly baseHead: string;
|
|
257
|
+
readonly expectedHistoryToken: string;
|
|
258
|
+
readonly expectedGoalEventId: string;
|
|
259
|
+
readonly expectedGoalUpdatedAt: number;
|
|
260
|
+
readonly approvalJobId: string;
|
|
261
|
+
readonly approvalActor: string;
|
|
262
|
+
readonly approvalApprovedBy: string;
|
|
263
|
+
readonly approvalApprovedAt: number;
|
|
264
|
+
readonly approvalHash: string;
|
|
265
|
+
};
|
|
266
|
+
readonly ownerReassignment?: {
|
|
267
|
+
readonly previousDispatchRequestId: string;
|
|
268
|
+
readonly approvalJobId: string;
|
|
269
|
+
readonly approvalActor: string;
|
|
270
|
+
readonly approvalApprovedBy: string;
|
|
271
|
+
readonly approvalApprovedAt: number;
|
|
272
|
+
readonly approvalHash: string;
|
|
273
|
+
};
|
|
274
|
+
};
|
|
275
|
+
readonly lane: {
|
|
276
|
+
readonly operationId: string;
|
|
277
|
+
readonly goalId: string;
|
|
278
|
+
readonly laneId: string;
|
|
279
|
+
readonly worktree: string;
|
|
280
|
+
readonly branch: string;
|
|
281
|
+
readonly head: string;
|
|
282
|
+
readonly owner: {
|
|
283
|
+
readonly id: string;
|
|
284
|
+
readonly name: string;
|
|
285
|
+
};
|
|
286
|
+
readonly parent: string | null;
|
|
287
|
+
readonly phase: "claim" | "implementation" | "review" | "shipped" | "validation";
|
|
288
|
+
readonly expectedRevision: number;
|
|
289
|
+
readonly reconciliation?: {
|
|
290
|
+
readonly repository: string;
|
|
291
|
+
readonly pullRequest: number;
|
|
292
|
+
readonly expectedHead: string;
|
|
293
|
+
readonly expectedOwner: {
|
|
294
|
+
readonly id: string;
|
|
295
|
+
readonly name: string;
|
|
296
|
+
};
|
|
297
|
+
readonly expectedGoalEventId: string;
|
|
298
|
+
readonly bindingDispatchRequestId: string;
|
|
299
|
+
readonly sessionId: string;
|
|
300
|
+
readonly worker: {
|
|
301
|
+
readonly host: string;
|
|
302
|
+
readonly agentId: string;
|
|
303
|
+
readonly name: string;
|
|
304
|
+
readonly paneId: string;
|
|
305
|
+
readonly relationship?: {
|
|
306
|
+
readonly parentAgentId: string;
|
|
307
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
308
|
+
};
|
|
309
|
+
};
|
|
310
|
+
};
|
|
311
|
+
readonly revision: number;
|
|
312
|
+
};
|
|
313
|
+
readonly checkpoint: {
|
|
314
|
+
readonly version: "herdr.work.event.v1";
|
|
315
|
+
readonly eventId: string;
|
|
316
|
+
readonly occurredAt: number;
|
|
317
|
+
readonly goal: {
|
|
318
|
+
readonly id: string;
|
|
319
|
+
readonly title: string;
|
|
320
|
+
readonly summary: string;
|
|
321
|
+
readonly detail: string;
|
|
322
|
+
readonly state: "blocked" | "completed" | "deployed" | "planned" | "review" | "working";
|
|
323
|
+
readonly owner: {
|
|
324
|
+
readonly id: string;
|
|
325
|
+
readonly name: string;
|
|
326
|
+
};
|
|
327
|
+
readonly repository: {
|
|
328
|
+
readonly repository: string;
|
|
329
|
+
readonly branch: string;
|
|
330
|
+
};
|
|
331
|
+
readonly spend: {
|
|
332
|
+
readonly currency: string;
|
|
333
|
+
readonly minorUnits: number;
|
|
334
|
+
} | null;
|
|
335
|
+
readonly delivery: "deployed" | "local" | "merged" | "pull_request" | "review";
|
|
336
|
+
readonly blocker: {
|
|
337
|
+
readonly summary: string;
|
|
338
|
+
readonly since: number;
|
|
339
|
+
} | null;
|
|
340
|
+
readonly connectTarget: {
|
|
341
|
+
readonly host: string;
|
|
342
|
+
readonly agentId: string;
|
|
343
|
+
readonly url: string;
|
|
344
|
+
} | null;
|
|
345
|
+
readonly goalFamily?: {
|
|
346
|
+
readonly canonicalGoalId: string;
|
|
347
|
+
readonly role: "canonical" | "superseded";
|
|
348
|
+
};
|
|
349
|
+
readonly agentHierarchy?: {
|
|
350
|
+
readonly agent: {
|
|
351
|
+
readonly host: string;
|
|
352
|
+
readonly agentId: string;
|
|
353
|
+
readonly name: string;
|
|
354
|
+
readonly paneId: string;
|
|
355
|
+
readonly relationship?: {
|
|
356
|
+
readonly parentAgentId: string;
|
|
357
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
358
|
+
};
|
|
359
|
+
};
|
|
360
|
+
} | null;
|
|
361
|
+
readonly activity?: readonly {
|
|
362
|
+
readonly id: string;
|
|
363
|
+
readonly kind: "blocker" | "note" | "request" | "review" | "shipment" | "status";
|
|
364
|
+
readonly summary: string;
|
|
365
|
+
readonly occurredAt: number;
|
|
366
|
+
}[];
|
|
367
|
+
readonly blockers?: readonly {
|
|
368
|
+
readonly summary: string;
|
|
369
|
+
readonly since: number;
|
|
370
|
+
}[];
|
|
371
|
+
readonly requests?: readonly {
|
|
372
|
+
readonly id: string;
|
|
373
|
+
readonly summary: string;
|
|
374
|
+
readonly state: "approved" | "fulfilled" | "open" | "rejected";
|
|
375
|
+
readonly requestedAt: number;
|
|
376
|
+
readonly approvalTarget: {
|
|
377
|
+
readonly host: string;
|
|
378
|
+
readonly jobId: string;
|
|
379
|
+
readonly url: string;
|
|
380
|
+
} | null;
|
|
381
|
+
}[];
|
|
382
|
+
readonly review?: {
|
|
383
|
+
readonly state: "approved" | "changes_requested" | "not_requested" | "requested";
|
|
384
|
+
readonly summary: string | null;
|
|
385
|
+
readonly updatedAt: number;
|
|
386
|
+
readonly url: string | null;
|
|
387
|
+
} | null;
|
|
388
|
+
readonly approvalTarget?: {
|
|
389
|
+
readonly host: string;
|
|
390
|
+
readonly jobId: string;
|
|
391
|
+
readonly url: string;
|
|
392
|
+
} | null;
|
|
393
|
+
readonly createdAt: number;
|
|
394
|
+
readonly updatedAt: number;
|
|
395
|
+
};
|
|
396
|
+
};
|
|
397
|
+
};
|
|
398
|
+
};
|
|
399
|
+
} | {
|
|
400
|
+
readonly _tag: "recoverable";
|
|
401
|
+
readonly target: {
|
|
402
|
+
readonly repository: string;
|
|
403
|
+
readonly pullRequest: number;
|
|
404
|
+
readonly reviewUrl: string;
|
|
405
|
+
readonly goalId: string;
|
|
406
|
+
readonly laneId: string;
|
|
407
|
+
readonly head: string;
|
|
408
|
+
readonly baseHead: string;
|
|
409
|
+
readonly owner: {
|
|
410
|
+
readonly id: string;
|
|
411
|
+
readonly name: string;
|
|
412
|
+
};
|
|
413
|
+
readonly sessionId: string;
|
|
414
|
+
readonly expectedWork: string;
|
|
415
|
+
readonly worker: {
|
|
416
|
+
readonly host: string;
|
|
417
|
+
readonly agentId: string;
|
|
418
|
+
readonly name: string;
|
|
419
|
+
readonly paneId: string;
|
|
420
|
+
readonly relationship?: {
|
|
421
|
+
readonly parentAgentId: string;
|
|
422
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
423
|
+
};
|
|
424
|
+
};
|
|
425
|
+
readonly worktree: string;
|
|
426
|
+
readonly branch: string;
|
|
427
|
+
readonly expectedGoalEventId: string;
|
|
428
|
+
readonly expectedGoalUpdatedAt: number;
|
|
429
|
+
};
|
|
430
|
+
readonly historyToken: string;
|
|
431
|
+
}, WorkProjectionError | WorkStoreError, never>;
|
|
432
|
+
recoverExistingGoal: (request: {
|
|
433
|
+
readonly kind: "work.recover";
|
|
434
|
+
readonly repository: string;
|
|
435
|
+
readonly pullRequest: number;
|
|
436
|
+
readonly reviewUrl: string;
|
|
437
|
+
readonly goalId: string;
|
|
438
|
+
readonly laneId: string;
|
|
439
|
+
readonly operationId: string;
|
|
440
|
+
readonly expectedGoalEventId: string;
|
|
441
|
+
readonly expectedGoalUpdatedAt: number;
|
|
442
|
+
readonly expectedHistoryToken: string;
|
|
443
|
+
readonly head: string;
|
|
444
|
+
readonly baseHead: string;
|
|
445
|
+
readonly owner: {
|
|
446
|
+
readonly id: string;
|
|
447
|
+
readonly name: string;
|
|
448
|
+
};
|
|
449
|
+
readonly sessionId: string;
|
|
450
|
+
readonly expectedWork: string;
|
|
451
|
+
readonly worker: {
|
|
452
|
+
readonly host: string;
|
|
453
|
+
readonly agentId: string;
|
|
454
|
+
readonly name: string;
|
|
455
|
+
readonly paneId: string;
|
|
456
|
+
readonly relationship?: {
|
|
457
|
+
readonly parentAgentId: string;
|
|
458
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
459
|
+
};
|
|
460
|
+
};
|
|
461
|
+
readonly worktree: string;
|
|
462
|
+
readonly branch: string;
|
|
463
|
+
readonly approvalJobId: string;
|
|
464
|
+
readonly approvalActor: string;
|
|
465
|
+
readonly approvalApprovedBy: string;
|
|
466
|
+
readonly approvalApprovedAt: number;
|
|
467
|
+
readonly approvalHash: string;
|
|
468
|
+
}) => Effect.Effect<WorkPullRequestLink, WorkAdmissionConflictError | WorkProjectionError | WorkStoreError, never>;
|
|
469
|
+
reassign: (request: {
|
|
470
|
+
readonly kind: "work.reassign";
|
|
471
|
+
readonly goalId: string;
|
|
472
|
+
readonly from: {
|
|
473
|
+
readonly id: string;
|
|
474
|
+
readonly name: string;
|
|
475
|
+
};
|
|
476
|
+
readonly to: {
|
|
477
|
+
readonly id: string;
|
|
478
|
+
readonly name: string;
|
|
479
|
+
};
|
|
480
|
+
readonly toAgent: {
|
|
481
|
+
readonly _tag: "clear";
|
|
482
|
+
} | {
|
|
483
|
+
readonly _tag: "keep";
|
|
484
|
+
} | {
|
|
485
|
+
readonly _tag: "set";
|
|
486
|
+
readonly agent: {
|
|
487
|
+
readonly host: string;
|
|
488
|
+
readonly agentId: string;
|
|
489
|
+
readonly name: string;
|
|
490
|
+
readonly paneId: string;
|
|
491
|
+
readonly relationship?: {
|
|
492
|
+
readonly parentAgentId: string;
|
|
493
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
494
|
+
};
|
|
495
|
+
};
|
|
496
|
+
};
|
|
497
|
+
readonly reason: string;
|
|
498
|
+
readonly expectedGoalEventId: string;
|
|
499
|
+
readonly expectedGoalUpdatedAt: number;
|
|
500
|
+
readonly approvalJobId: string;
|
|
501
|
+
readonly approvalActor: string;
|
|
502
|
+
readonly approvalApprovedBy: string;
|
|
503
|
+
readonly approvalApprovedAt: number;
|
|
504
|
+
readonly approvalHash: string;
|
|
505
|
+
}) => Effect.Effect<WorkGoalReassigned, WorkGoalAgentTargetConflictError | WorkGoalBindingRequiresAgentError | WorkGoalOwnerMismatchError | WorkGoalReassignmentConflictError | WorkGoalRevisionConflictError | WorkProjectionError | WorkStoreError, never>;
|
|
506
|
+
admissionPreflight: (target: WorkAdmissionTarget) => Effect.Effect<{
|
|
507
|
+
readonly _tag: "conflict";
|
|
508
|
+
readonly target: {
|
|
509
|
+
readonly repository: string;
|
|
510
|
+
readonly pullRequest: number;
|
|
511
|
+
readonly reviewUrl: string;
|
|
512
|
+
readonly goalId: string;
|
|
513
|
+
readonly laneId: string;
|
|
514
|
+
readonly head: string;
|
|
515
|
+
readonly baseHead: string;
|
|
516
|
+
readonly owner: {
|
|
517
|
+
readonly id: string;
|
|
518
|
+
readonly name: string;
|
|
519
|
+
};
|
|
520
|
+
readonly sessionId: string;
|
|
521
|
+
readonly expectedWork: string;
|
|
522
|
+
readonly worker: {
|
|
523
|
+
readonly host: string;
|
|
524
|
+
readonly agentId: string;
|
|
525
|
+
readonly name: string;
|
|
526
|
+
readonly paneId: string;
|
|
527
|
+
readonly relationship?: {
|
|
528
|
+
readonly parentAgentId: string;
|
|
529
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
530
|
+
};
|
|
531
|
+
};
|
|
532
|
+
readonly worktree: string;
|
|
533
|
+
readonly branch: string;
|
|
534
|
+
};
|
|
535
|
+
readonly reason: string;
|
|
536
|
+
} | {
|
|
537
|
+
readonly _tag: "existing";
|
|
538
|
+
readonly target: {
|
|
539
|
+
readonly repository: string;
|
|
540
|
+
readonly pullRequest: number;
|
|
541
|
+
readonly reviewUrl: string;
|
|
542
|
+
readonly goalId: string;
|
|
543
|
+
readonly laneId: string;
|
|
544
|
+
readonly head: string;
|
|
545
|
+
readonly baseHead: string;
|
|
546
|
+
readonly owner: {
|
|
547
|
+
readonly id: string;
|
|
548
|
+
readonly name: string;
|
|
549
|
+
};
|
|
550
|
+
readonly sessionId: string;
|
|
551
|
+
readonly expectedWork: string;
|
|
552
|
+
readonly worker: {
|
|
553
|
+
readonly host: string;
|
|
554
|
+
readonly agentId: string;
|
|
555
|
+
readonly name: string;
|
|
556
|
+
readonly paneId: string;
|
|
557
|
+
readonly relationship?: {
|
|
558
|
+
readonly parentAgentId: string;
|
|
559
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
560
|
+
};
|
|
561
|
+
};
|
|
562
|
+
readonly worktree: string;
|
|
563
|
+
readonly branch: string;
|
|
564
|
+
};
|
|
565
|
+
readonly link: {
|
|
566
|
+
readonly request: {
|
|
567
|
+
readonly repository: string;
|
|
568
|
+
readonly pullRequest: number;
|
|
569
|
+
readonly goalId: string;
|
|
570
|
+
readonly laneId: string;
|
|
571
|
+
};
|
|
572
|
+
readonly goalEventId: string;
|
|
573
|
+
readonly goal: {
|
|
574
|
+
readonly id: string;
|
|
575
|
+
readonly title: string;
|
|
576
|
+
readonly summary: string;
|
|
577
|
+
readonly detail: string;
|
|
578
|
+
readonly state: "blocked" | "completed" | "deployed" | "planned" | "review" | "working";
|
|
579
|
+
readonly owner: {
|
|
580
|
+
readonly id: string;
|
|
581
|
+
readonly name: string;
|
|
582
|
+
};
|
|
583
|
+
readonly repository: {
|
|
584
|
+
readonly repository: string;
|
|
585
|
+
readonly branch: string;
|
|
586
|
+
};
|
|
587
|
+
readonly spend: {
|
|
588
|
+
readonly currency: string;
|
|
589
|
+
readonly minorUnits: number;
|
|
590
|
+
} | null;
|
|
591
|
+
readonly delivery: "deployed" | "local" | "merged" | "pull_request" | "review";
|
|
592
|
+
readonly blocker: {
|
|
593
|
+
readonly summary: string;
|
|
594
|
+
readonly since: number;
|
|
595
|
+
} | null;
|
|
596
|
+
readonly connectTarget: {
|
|
597
|
+
readonly host: string;
|
|
598
|
+
readonly agentId: string;
|
|
599
|
+
readonly url: string;
|
|
600
|
+
} | null;
|
|
601
|
+
readonly goalFamily?: {
|
|
602
|
+
readonly canonicalGoalId: string;
|
|
603
|
+
readonly role: "canonical" | "superseded";
|
|
604
|
+
};
|
|
605
|
+
readonly agentHierarchy?: {
|
|
606
|
+
readonly agent: {
|
|
607
|
+
readonly host: string;
|
|
608
|
+
readonly agentId: string;
|
|
609
|
+
readonly name: string;
|
|
610
|
+
readonly paneId: string;
|
|
611
|
+
readonly relationship?: {
|
|
612
|
+
readonly parentAgentId: string;
|
|
613
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
614
|
+
};
|
|
615
|
+
};
|
|
616
|
+
} | null;
|
|
617
|
+
readonly activity?: readonly {
|
|
618
|
+
readonly id: string;
|
|
619
|
+
readonly kind: "blocker" | "note" | "request" | "review" | "shipment" | "status";
|
|
620
|
+
readonly summary: string;
|
|
621
|
+
readonly occurredAt: number;
|
|
622
|
+
}[];
|
|
623
|
+
readonly blockers?: readonly {
|
|
624
|
+
readonly summary: string;
|
|
625
|
+
readonly since: number;
|
|
626
|
+
}[];
|
|
627
|
+
readonly requests?: readonly {
|
|
628
|
+
readonly id: string;
|
|
629
|
+
readonly summary: string;
|
|
630
|
+
readonly state: "approved" | "fulfilled" | "open" | "rejected";
|
|
631
|
+
readonly requestedAt: number;
|
|
632
|
+
readonly approvalTarget: {
|
|
633
|
+
readonly host: string;
|
|
634
|
+
readonly jobId: string;
|
|
635
|
+
readonly url: string;
|
|
636
|
+
} | null;
|
|
637
|
+
}[];
|
|
638
|
+
readonly review?: {
|
|
639
|
+
readonly state: "approved" | "changes_requested" | "not_requested" | "requested";
|
|
640
|
+
readonly summary: string | null;
|
|
641
|
+
readonly updatedAt: number;
|
|
642
|
+
readonly url: string | null;
|
|
643
|
+
} | null;
|
|
644
|
+
readonly approvalTarget?: {
|
|
645
|
+
readonly host: string;
|
|
646
|
+
readonly jobId: string;
|
|
647
|
+
readonly url: string;
|
|
648
|
+
} | null;
|
|
649
|
+
readonly createdAt: number;
|
|
650
|
+
readonly updatedAt: number;
|
|
651
|
+
};
|
|
652
|
+
readonly lane: {
|
|
653
|
+
readonly operationId: string;
|
|
654
|
+
readonly goalId: string;
|
|
655
|
+
readonly laneId: string;
|
|
656
|
+
readonly worktree: string;
|
|
657
|
+
readonly branch: string;
|
|
658
|
+
readonly head: string;
|
|
659
|
+
readonly owner: {
|
|
660
|
+
readonly id: string;
|
|
661
|
+
readonly name: string;
|
|
662
|
+
};
|
|
663
|
+
readonly parent: string | null;
|
|
664
|
+
readonly phase: "claim" | "implementation" | "review" | "shipped" | "validation";
|
|
665
|
+
readonly expectedRevision: number;
|
|
666
|
+
readonly reconciliation?: {
|
|
667
|
+
readonly repository: string;
|
|
668
|
+
readonly pullRequest: number;
|
|
669
|
+
readonly expectedHead: string;
|
|
670
|
+
readonly expectedOwner: {
|
|
671
|
+
readonly id: string;
|
|
672
|
+
readonly name: string;
|
|
673
|
+
};
|
|
674
|
+
readonly expectedGoalEventId: string;
|
|
675
|
+
readonly bindingDispatchRequestId: string;
|
|
676
|
+
readonly sessionId: string;
|
|
677
|
+
readonly worker: {
|
|
678
|
+
readonly host: string;
|
|
679
|
+
readonly agentId: string;
|
|
680
|
+
readonly name: string;
|
|
681
|
+
readonly paneId: string;
|
|
682
|
+
readonly relationship?: {
|
|
683
|
+
readonly parentAgentId: string;
|
|
684
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
685
|
+
};
|
|
686
|
+
};
|
|
687
|
+
};
|
|
688
|
+
readonly revision: number;
|
|
689
|
+
};
|
|
690
|
+
readonly binding: {
|
|
691
|
+
readonly version: "herdr.work.agent-binding.v1";
|
|
692
|
+
readonly request: {
|
|
693
|
+
readonly version: "herdr.work.agent-binding-request.v1";
|
|
694
|
+
readonly dispatchRequestId: string;
|
|
695
|
+
readonly laneId: string;
|
|
696
|
+
readonly expectedRevision: number;
|
|
697
|
+
readonly worker: {
|
|
698
|
+
readonly host: string;
|
|
699
|
+
readonly agentId: string;
|
|
700
|
+
readonly name: string;
|
|
701
|
+
readonly paneId: string;
|
|
702
|
+
readonly relationship?: {
|
|
703
|
+
readonly parentAgentId: string;
|
|
704
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
705
|
+
};
|
|
706
|
+
};
|
|
707
|
+
readonly prospectiveAdmission?: {
|
|
708
|
+
readonly sessionId: string;
|
|
709
|
+
readonly workAssignment: string;
|
|
710
|
+
readonly baseHead: string;
|
|
711
|
+
readonly expectedAbsenceToken: string;
|
|
712
|
+
readonly approvalJobId: string;
|
|
713
|
+
readonly approvalActor: string;
|
|
714
|
+
};
|
|
715
|
+
readonly existingGoalRecovery?: {
|
|
716
|
+
readonly sessionId: string;
|
|
717
|
+
readonly workAssignment: string;
|
|
718
|
+
readonly baseHead: string;
|
|
719
|
+
readonly expectedHistoryToken: string;
|
|
720
|
+
readonly expectedGoalEventId: string;
|
|
721
|
+
readonly expectedGoalUpdatedAt: number;
|
|
722
|
+
readonly approvalJobId: string;
|
|
723
|
+
readonly approvalActor: string;
|
|
724
|
+
readonly approvalApprovedBy: string;
|
|
725
|
+
readonly approvalApprovedAt: number;
|
|
726
|
+
readonly approvalHash: string;
|
|
727
|
+
};
|
|
728
|
+
readonly ownerReassignment?: {
|
|
729
|
+
readonly previousDispatchRequestId: string;
|
|
730
|
+
readonly approvalJobId: string;
|
|
731
|
+
readonly approvalActor: string;
|
|
732
|
+
readonly approvalApprovedBy: string;
|
|
733
|
+
readonly approvalApprovedAt: number;
|
|
734
|
+
readonly approvalHash: string;
|
|
735
|
+
};
|
|
736
|
+
};
|
|
737
|
+
readonly lane: {
|
|
738
|
+
readonly operationId: string;
|
|
739
|
+
readonly goalId: string;
|
|
740
|
+
readonly laneId: string;
|
|
741
|
+
readonly worktree: string;
|
|
742
|
+
readonly branch: string;
|
|
743
|
+
readonly head: string;
|
|
744
|
+
readonly owner: {
|
|
745
|
+
readonly id: string;
|
|
746
|
+
readonly name: string;
|
|
747
|
+
};
|
|
748
|
+
readonly parent: string | null;
|
|
749
|
+
readonly phase: "claim" | "implementation" | "review" | "shipped" | "validation";
|
|
750
|
+
readonly expectedRevision: number;
|
|
751
|
+
readonly reconciliation?: {
|
|
752
|
+
readonly repository: string;
|
|
753
|
+
readonly pullRequest: number;
|
|
754
|
+
readonly expectedHead: string;
|
|
755
|
+
readonly expectedOwner: {
|
|
756
|
+
readonly id: string;
|
|
757
|
+
readonly name: string;
|
|
758
|
+
};
|
|
759
|
+
readonly expectedGoalEventId: string;
|
|
760
|
+
readonly bindingDispatchRequestId: string;
|
|
761
|
+
readonly sessionId: string;
|
|
762
|
+
readonly worker: {
|
|
763
|
+
readonly host: string;
|
|
764
|
+
readonly agentId: string;
|
|
765
|
+
readonly name: string;
|
|
766
|
+
readonly paneId: string;
|
|
767
|
+
readonly relationship?: {
|
|
768
|
+
readonly parentAgentId: string;
|
|
769
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
770
|
+
};
|
|
771
|
+
};
|
|
772
|
+
};
|
|
773
|
+
readonly revision: number;
|
|
774
|
+
};
|
|
775
|
+
readonly checkpoint: {
|
|
776
|
+
readonly version: "herdr.work.event.v1";
|
|
777
|
+
readonly eventId: string;
|
|
778
|
+
readonly occurredAt: number;
|
|
779
|
+
readonly goal: {
|
|
780
|
+
readonly id: string;
|
|
781
|
+
readonly title: string;
|
|
782
|
+
readonly summary: string;
|
|
783
|
+
readonly detail: string;
|
|
784
|
+
readonly state: "blocked" | "completed" | "deployed" | "planned" | "review" | "working";
|
|
785
|
+
readonly owner: {
|
|
786
|
+
readonly id: string;
|
|
787
|
+
readonly name: string;
|
|
788
|
+
};
|
|
789
|
+
readonly repository: {
|
|
790
|
+
readonly repository: string;
|
|
791
|
+
readonly branch: string;
|
|
792
|
+
};
|
|
793
|
+
readonly spend: {
|
|
794
|
+
readonly currency: string;
|
|
795
|
+
readonly minorUnits: number;
|
|
796
|
+
} | null;
|
|
797
|
+
readonly delivery: "deployed" | "local" | "merged" | "pull_request" | "review";
|
|
798
|
+
readonly blocker: {
|
|
799
|
+
readonly summary: string;
|
|
800
|
+
readonly since: number;
|
|
801
|
+
} | null;
|
|
802
|
+
readonly connectTarget: {
|
|
803
|
+
readonly host: string;
|
|
804
|
+
readonly agentId: string;
|
|
805
|
+
readonly url: string;
|
|
806
|
+
} | null;
|
|
807
|
+
readonly goalFamily?: {
|
|
808
|
+
readonly canonicalGoalId: string;
|
|
809
|
+
readonly role: "canonical" | "superseded";
|
|
810
|
+
};
|
|
811
|
+
readonly agentHierarchy?: {
|
|
812
|
+
readonly agent: {
|
|
813
|
+
readonly host: string;
|
|
814
|
+
readonly agentId: string;
|
|
815
|
+
readonly name: string;
|
|
816
|
+
readonly paneId: string;
|
|
817
|
+
readonly relationship?: {
|
|
818
|
+
readonly parentAgentId: string;
|
|
819
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
820
|
+
};
|
|
821
|
+
};
|
|
822
|
+
} | null;
|
|
823
|
+
readonly activity?: readonly {
|
|
824
|
+
readonly id: string;
|
|
825
|
+
readonly kind: "blocker" | "note" | "request" | "review" | "shipment" | "status";
|
|
826
|
+
readonly summary: string;
|
|
827
|
+
readonly occurredAt: number;
|
|
828
|
+
}[];
|
|
829
|
+
readonly blockers?: readonly {
|
|
830
|
+
readonly summary: string;
|
|
831
|
+
readonly since: number;
|
|
832
|
+
}[];
|
|
833
|
+
readonly requests?: readonly {
|
|
834
|
+
readonly id: string;
|
|
835
|
+
readonly summary: string;
|
|
836
|
+
readonly state: "approved" | "fulfilled" | "open" | "rejected";
|
|
837
|
+
readonly requestedAt: number;
|
|
838
|
+
readonly approvalTarget: {
|
|
839
|
+
readonly host: string;
|
|
840
|
+
readonly jobId: string;
|
|
841
|
+
readonly url: string;
|
|
842
|
+
} | null;
|
|
843
|
+
}[];
|
|
844
|
+
readonly review?: {
|
|
845
|
+
readonly state: "approved" | "changes_requested" | "not_requested" | "requested";
|
|
846
|
+
readonly summary: string | null;
|
|
847
|
+
readonly updatedAt: number;
|
|
848
|
+
readonly url: string | null;
|
|
849
|
+
} | null;
|
|
850
|
+
readonly approvalTarget?: {
|
|
851
|
+
readonly host: string;
|
|
852
|
+
readonly jobId: string;
|
|
853
|
+
readonly url: string;
|
|
854
|
+
} | null;
|
|
855
|
+
readonly createdAt: number;
|
|
856
|
+
readonly updatedAt: number;
|
|
857
|
+
};
|
|
858
|
+
};
|
|
859
|
+
};
|
|
860
|
+
};
|
|
861
|
+
} | {
|
|
862
|
+
readonly _tag: "prospective";
|
|
863
|
+
readonly target: {
|
|
864
|
+
readonly repository: string;
|
|
865
|
+
readonly pullRequest: number;
|
|
866
|
+
readonly reviewUrl: string;
|
|
867
|
+
readonly goalId: string;
|
|
868
|
+
readonly laneId: string;
|
|
869
|
+
readonly head: string;
|
|
870
|
+
readonly baseHead: string;
|
|
871
|
+
readonly owner: {
|
|
872
|
+
readonly id: string;
|
|
873
|
+
readonly name: string;
|
|
874
|
+
};
|
|
875
|
+
readonly sessionId: string;
|
|
876
|
+
readonly expectedWork: string;
|
|
877
|
+
readonly worker: {
|
|
878
|
+
readonly host: string;
|
|
879
|
+
readonly agentId: string;
|
|
880
|
+
readonly name: string;
|
|
881
|
+
readonly paneId: string;
|
|
882
|
+
readonly relationship?: {
|
|
883
|
+
readonly parentAgentId: string;
|
|
884
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
885
|
+
};
|
|
886
|
+
};
|
|
887
|
+
readonly worktree: string;
|
|
888
|
+
readonly branch: string;
|
|
889
|
+
};
|
|
890
|
+
readonly absenceToken: string;
|
|
891
|
+
}, WorkProjectionError | WorkStoreError, never>;
|
|
892
|
+
admitExistingOwner: (request: {
|
|
893
|
+
readonly kind: "work.admit";
|
|
894
|
+
readonly repository: string;
|
|
895
|
+
readonly pullRequest: number;
|
|
896
|
+
readonly reviewUrl: string;
|
|
897
|
+
readonly goalId: string;
|
|
898
|
+
readonly laneId: string;
|
|
899
|
+
readonly operationId: string;
|
|
900
|
+
readonly expectedAbsenceToken: string;
|
|
901
|
+
readonly head: string;
|
|
902
|
+
readonly baseHead: string;
|
|
903
|
+
readonly owner: {
|
|
904
|
+
readonly id: string;
|
|
905
|
+
readonly name: string;
|
|
906
|
+
};
|
|
907
|
+
readonly sessionId: string;
|
|
908
|
+
readonly expectedWork: string;
|
|
909
|
+
readonly worker: {
|
|
910
|
+
readonly host: string;
|
|
911
|
+
readonly agentId: string;
|
|
912
|
+
readonly name: string;
|
|
913
|
+
readonly paneId: string;
|
|
914
|
+
readonly relationship?: {
|
|
915
|
+
readonly parentAgentId: string;
|
|
916
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
917
|
+
};
|
|
918
|
+
};
|
|
919
|
+
readonly worktree: string;
|
|
920
|
+
readonly branch: string;
|
|
921
|
+
readonly title: string;
|
|
922
|
+
readonly summary: string;
|
|
923
|
+
readonly detail: string;
|
|
924
|
+
readonly approvalJobId: string;
|
|
925
|
+
readonly approvalActor: string;
|
|
926
|
+
}) => Effect.Effect<WorkPullRequestLink, WorkAdmissionConflictError | WorkProjectionError | WorkStoreError, never>;
|
|
927
|
+
agentBinding: (dispatchRequestId: string) => Effect.Effect<Option.Option<WorkAgentBinding>, WorkStoreError, never>;
|
|
928
|
+
inspectPullRequest: (request: WorkPullRequestLinkRequest) => Effect.Effect<{
|
|
929
|
+
readonly request: {
|
|
930
|
+
readonly repository: string;
|
|
931
|
+
readonly pullRequest: number;
|
|
932
|
+
readonly goalId: string;
|
|
933
|
+
readonly laneId: string;
|
|
934
|
+
};
|
|
935
|
+
readonly goalEventId: string;
|
|
936
|
+
readonly goal: {
|
|
937
|
+
readonly id: string;
|
|
938
|
+
readonly title: string;
|
|
939
|
+
readonly summary: string;
|
|
940
|
+
readonly detail: string;
|
|
941
|
+
readonly state: "blocked" | "completed" | "deployed" | "planned" | "review" | "working";
|
|
942
|
+
readonly owner: {
|
|
943
|
+
readonly id: string;
|
|
944
|
+
readonly name: string;
|
|
945
|
+
};
|
|
946
|
+
readonly repository: {
|
|
947
|
+
readonly repository: string;
|
|
948
|
+
readonly branch: string;
|
|
949
|
+
};
|
|
950
|
+
readonly spend: {
|
|
951
|
+
readonly currency: string;
|
|
952
|
+
readonly minorUnits: number;
|
|
953
|
+
} | null;
|
|
954
|
+
readonly delivery: "deployed" | "local" | "merged" | "pull_request" | "review";
|
|
955
|
+
readonly blocker: {
|
|
956
|
+
readonly summary: string;
|
|
957
|
+
readonly since: number;
|
|
958
|
+
} | null;
|
|
959
|
+
readonly connectTarget: {
|
|
960
|
+
readonly host: string;
|
|
961
|
+
readonly agentId: string;
|
|
962
|
+
readonly url: string;
|
|
963
|
+
} | null;
|
|
964
|
+
readonly goalFamily?: {
|
|
965
|
+
readonly canonicalGoalId: string;
|
|
966
|
+
readonly role: "canonical" | "superseded";
|
|
967
|
+
};
|
|
968
|
+
readonly agentHierarchy?: {
|
|
969
|
+
readonly agent: {
|
|
970
|
+
readonly host: string;
|
|
971
|
+
readonly agentId: string;
|
|
972
|
+
readonly name: string;
|
|
973
|
+
readonly paneId: string;
|
|
974
|
+
readonly relationship?: {
|
|
975
|
+
readonly parentAgentId: string;
|
|
976
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
977
|
+
};
|
|
978
|
+
};
|
|
979
|
+
} | null;
|
|
980
|
+
readonly activity?: readonly {
|
|
981
|
+
readonly id: string;
|
|
982
|
+
readonly kind: "blocker" | "note" | "request" | "review" | "shipment" | "status";
|
|
983
|
+
readonly summary: string;
|
|
984
|
+
readonly occurredAt: number;
|
|
985
|
+
}[];
|
|
986
|
+
readonly blockers?: readonly {
|
|
987
|
+
readonly summary: string;
|
|
988
|
+
readonly since: number;
|
|
989
|
+
}[];
|
|
990
|
+
readonly requests?: readonly {
|
|
991
|
+
readonly id: string;
|
|
992
|
+
readonly summary: string;
|
|
993
|
+
readonly state: "approved" | "fulfilled" | "open" | "rejected";
|
|
994
|
+
readonly requestedAt: number;
|
|
995
|
+
readonly approvalTarget: {
|
|
996
|
+
readonly host: string;
|
|
997
|
+
readonly jobId: string;
|
|
998
|
+
readonly url: string;
|
|
999
|
+
} | null;
|
|
1000
|
+
}[];
|
|
1001
|
+
readonly review?: {
|
|
1002
|
+
readonly state: "approved" | "changes_requested" | "not_requested" | "requested";
|
|
1003
|
+
readonly summary: string | null;
|
|
1004
|
+
readonly updatedAt: number;
|
|
1005
|
+
readonly url: string | null;
|
|
1006
|
+
} | null;
|
|
1007
|
+
readonly approvalTarget?: {
|
|
1008
|
+
readonly host: string;
|
|
1009
|
+
readonly jobId: string;
|
|
1010
|
+
readonly url: string;
|
|
1011
|
+
} | null;
|
|
1012
|
+
readonly createdAt: number;
|
|
1013
|
+
readonly updatedAt: number;
|
|
1014
|
+
};
|
|
1015
|
+
readonly lane: {
|
|
1016
|
+
readonly operationId: string;
|
|
1017
|
+
readonly goalId: string;
|
|
1018
|
+
readonly laneId: string;
|
|
1019
|
+
readonly worktree: string;
|
|
1020
|
+
readonly branch: string;
|
|
1021
|
+
readonly head: string;
|
|
1022
|
+
readonly owner: {
|
|
1023
|
+
readonly id: string;
|
|
1024
|
+
readonly name: string;
|
|
1025
|
+
};
|
|
1026
|
+
readonly parent: string | null;
|
|
1027
|
+
readonly phase: "claim" | "implementation" | "review" | "shipped" | "validation";
|
|
1028
|
+
readonly expectedRevision: number;
|
|
1029
|
+
readonly reconciliation?: {
|
|
1030
|
+
readonly repository: string;
|
|
1031
|
+
readonly pullRequest: number;
|
|
1032
|
+
readonly expectedHead: string;
|
|
1033
|
+
readonly expectedOwner: {
|
|
1034
|
+
readonly id: string;
|
|
1035
|
+
readonly name: string;
|
|
1036
|
+
};
|
|
1037
|
+
readonly expectedGoalEventId: string;
|
|
1038
|
+
readonly bindingDispatchRequestId: string;
|
|
1039
|
+
readonly sessionId: string;
|
|
1040
|
+
readonly worker: {
|
|
1041
|
+
readonly host: string;
|
|
1042
|
+
readonly agentId: string;
|
|
1043
|
+
readonly name: string;
|
|
1044
|
+
readonly paneId: string;
|
|
1045
|
+
readonly relationship?: {
|
|
1046
|
+
readonly parentAgentId: string;
|
|
1047
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
1048
|
+
};
|
|
1049
|
+
};
|
|
1050
|
+
};
|
|
1051
|
+
readonly revision: number;
|
|
1052
|
+
};
|
|
1053
|
+
readonly binding: {
|
|
1054
|
+
readonly version: "herdr.work.agent-binding.v1";
|
|
1055
|
+
readonly request: {
|
|
1056
|
+
readonly version: "herdr.work.agent-binding-request.v1";
|
|
1057
|
+
readonly dispatchRequestId: string;
|
|
1058
|
+
readonly laneId: string;
|
|
1059
|
+
readonly expectedRevision: number;
|
|
1060
|
+
readonly worker: {
|
|
1061
|
+
readonly host: string;
|
|
1062
|
+
readonly agentId: string;
|
|
1063
|
+
readonly name: string;
|
|
1064
|
+
readonly paneId: string;
|
|
1065
|
+
readonly relationship?: {
|
|
1066
|
+
readonly parentAgentId: string;
|
|
1067
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
1068
|
+
};
|
|
1069
|
+
};
|
|
1070
|
+
readonly prospectiveAdmission?: {
|
|
1071
|
+
readonly sessionId: string;
|
|
1072
|
+
readonly workAssignment: string;
|
|
1073
|
+
readonly baseHead: string;
|
|
1074
|
+
readonly expectedAbsenceToken: string;
|
|
1075
|
+
readonly approvalJobId: string;
|
|
1076
|
+
readonly approvalActor: string;
|
|
1077
|
+
};
|
|
1078
|
+
readonly existingGoalRecovery?: {
|
|
1079
|
+
readonly sessionId: string;
|
|
1080
|
+
readonly workAssignment: string;
|
|
1081
|
+
readonly baseHead: string;
|
|
1082
|
+
readonly expectedHistoryToken: string;
|
|
1083
|
+
readonly expectedGoalEventId: string;
|
|
1084
|
+
readonly expectedGoalUpdatedAt: number;
|
|
1085
|
+
readonly approvalJobId: string;
|
|
1086
|
+
readonly approvalActor: string;
|
|
1087
|
+
readonly approvalApprovedBy: string;
|
|
1088
|
+
readonly approvalApprovedAt: number;
|
|
1089
|
+
readonly approvalHash: string;
|
|
1090
|
+
};
|
|
1091
|
+
readonly ownerReassignment?: {
|
|
1092
|
+
readonly previousDispatchRequestId: string;
|
|
1093
|
+
readonly approvalJobId: string;
|
|
1094
|
+
readonly approvalActor: string;
|
|
1095
|
+
readonly approvalApprovedBy: string;
|
|
1096
|
+
readonly approvalApprovedAt: number;
|
|
1097
|
+
readonly approvalHash: string;
|
|
1098
|
+
};
|
|
1099
|
+
};
|
|
1100
|
+
readonly lane: {
|
|
1101
|
+
readonly operationId: string;
|
|
1102
|
+
readonly goalId: string;
|
|
1103
|
+
readonly laneId: string;
|
|
1104
|
+
readonly worktree: string;
|
|
1105
|
+
readonly branch: string;
|
|
1106
|
+
readonly head: string;
|
|
1107
|
+
readonly owner: {
|
|
1108
|
+
readonly id: string;
|
|
1109
|
+
readonly name: string;
|
|
1110
|
+
};
|
|
1111
|
+
readonly parent: string | null;
|
|
1112
|
+
readonly phase: "claim" | "implementation" | "review" | "shipped" | "validation";
|
|
1113
|
+
readonly expectedRevision: number;
|
|
1114
|
+
readonly reconciliation?: {
|
|
1115
|
+
readonly repository: string;
|
|
1116
|
+
readonly pullRequest: number;
|
|
1117
|
+
readonly expectedHead: string;
|
|
1118
|
+
readonly expectedOwner: {
|
|
1119
|
+
readonly id: string;
|
|
1120
|
+
readonly name: string;
|
|
1121
|
+
};
|
|
1122
|
+
readonly expectedGoalEventId: string;
|
|
1123
|
+
readonly bindingDispatchRequestId: string;
|
|
1124
|
+
readonly sessionId: string;
|
|
1125
|
+
readonly worker: {
|
|
1126
|
+
readonly host: string;
|
|
1127
|
+
readonly agentId: string;
|
|
1128
|
+
readonly name: string;
|
|
1129
|
+
readonly paneId: string;
|
|
1130
|
+
readonly relationship?: {
|
|
1131
|
+
readonly parentAgentId: string;
|
|
1132
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
1133
|
+
};
|
|
1134
|
+
};
|
|
1135
|
+
};
|
|
1136
|
+
readonly revision: number;
|
|
1137
|
+
};
|
|
1138
|
+
readonly checkpoint: {
|
|
1139
|
+
readonly version: "herdr.work.event.v1";
|
|
1140
|
+
readonly eventId: string;
|
|
1141
|
+
readonly occurredAt: number;
|
|
1142
|
+
readonly goal: {
|
|
1143
|
+
readonly id: string;
|
|
1144
|
+
readonly title: string;
|
|
1145
|
+
readonly summary: string;
|
|
1146
|
+
readonly detail: string;
|
|
1147
|
+
readonly state: "blocked" | "completed" | "deployed" | "planned" | "review" | "working";
|
|
1148
|
+
readonly owner: {
|
|
1149
|
+
readonly id: string;
|
|
1150
|
+
readonly name: string;
|
|
1151
|
+
};
|
|
1152
|
+
readonly repository: {
|
|
1153
|
+
readonly repository: string;
|
|
1154
|
+
readonly branch: string;
|
|
1155
|
+
};
|
|
1156
|
+
readonly spend: {
|
|
1157
|
+
readonly currency: string;
|
|
1158
|
+
readonly minorUnits: number;
|
|
1159
|
+
} | null;
|
|
1160
|
+
readonly delivery: "deployed" | "local" | "merged" | "pull_request" | "review";
|
|
1161
|
+
readonly blocker: {
|
|
1162
|
+
readonly summary: string;
|
|
1163
|
+
readonly since: number;
|
|
1164
|
+
} | null;
|
|
1165
|
+
readonly connectTarget: {
|
|
1166
|
+
readonly host: string;
|
|
1167
|
+
readonly agentId: string;
|
|
1168
|
+
readonly url: string;
|
|
1169
|
+
} | null;
|
|
1170
|
+
readonly goalFamily?: {
|
|
1171
|
+
readonly canonicalGoalId: string;
|
|
1172
|
+
readonly role: "canonical" | "superseded";
|
|
1173
|
+
};
|
|
1174
|
+
readonly agentHierarchy?: {
|
|
1175
|
+
readonly agent: {
|
|
1176
|
+
readonly host: string;
|
|
1177
|
+
readonly agentId: string;
|
|
1178
|
+
readonly name: string;
|
|
1179
|
+
readonly paneId: string;
|
|
1180
|
+
readonly relationship?: {
|
|
1181
|
+
readonly parentAgentId: string;
|
|
1182
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
1183
|
+
};
|
|
1184
|
+
};
|
|
1185
|
+
} | null;
|
|
1186
|
+
readonly activity?: readonly {
|
|
1187
|
+
readonly id: string;
|
|
1188
|
+
readonly kind: "blocker" | "note" | "request" | "review" | "shipment" | "status";
|
|
1189
|
+
readonly summary: string;
|
|
1190
|
+
readonly occurredAt: number;
|
|
1191
|
+
}[];
|
|
1192
|
+
readonly blockers?: readonly {
|
|
1193
|
+
readonly summary: string;
|
|
1194
|
+
readonly since: number;
|
|
1195
|
+
}[];
|
|
1196
|
+
readonly requests?: readonly {
|
|
1197
|
+
readonly id: string;
|
|
1198
|
+
readonly summary: string;
|
|
1199
|
+
readonly state: "approved" | "fulfilled" | "open" | "rejected";
|
|
1200
|
+
readonly requestedAt: number;
|
|
1201
|
+
readonly approvalTarget: {
|
|
1202
|
+
readonly host: string;
|
|
1203
|
+
readonly jobId: string;
|
|
1204
|
+
readonly url: string;
|
|
1205
|
+
} | null;
|
|
1206
|
+
}[];
|
|
1207
|
+
readonly review?: {
|
|
1208
|
+
readonly state: "approved" | "changes_requested" | "not_requested" | "requested";
|
|
1209
|
+
readonly summary: string | null;
|
|
1210
|
+
readonly updatedAt: number;
|
|
1211
|
+
readonly url: string | null;
|
|
1212
|
+
} | null;
|
|
1213
|
+
readonly approvalTarget?: {
|
|
1214
|
+
readonly host: string;
|
|
1215
|
+
readonly jobId: string;
|
|
1216
|
+
readonly url: string;
|
|
1217
|
+
} | null;
|
|
1218
|
+
readonly createdAt: number;
|
|
1219
|
+
readonly updatedAt: number;
|
|
1220
|
+
};
|
|
1221
|
+
};
|
|
1222
|
+
};
|
|
1223
|
+
}, WorkProjectionError | WorkPullRequestLinkError | WorkStoreError, never>;
|
|
1224
|
+
reconcileExistingOwner: (request: WorkExistingOwnerReconciliation) => Effect.Effect<WorkLaneClaimed, WorkLaneClaimConflictError | WorkLaneGoalConflictError | WorkLaneOperationConflictError | WorkProjectionError | WorkPullRequestLinkError | WorkStoreError, never>;
|
|
1225
|
+
activeGoalClaim: (goalId: string) => Effect.Effect<Option.Option<WorkLaneClaimed>, WorkStoreError, never>;
|
|
1226
|
+
bindAgent: (request: WorkAgentBindingRequest) => Effect.Effect<WorkAgentBinding, WorkAgentBindingAuthorityError | WorkAgentBindingConflictError | WorkProjectionError | WorkStoreError, never>;
|
|
1227
|
+
claim: (lane: WorkLaneClaim) => Effect.Effect<WorkLaneClaimed, WorkLaneClaimConflictError | WorkLaneGoalConflictError | WorkLaneOperationConflictError | WorkProjectionError | WorkPullRequestLinkError | WorkStoreError, never>;
|
|
1228
|
+
coordinatorHandoff: (sessionId: string) => Effect.Effect<Option.Option<WorkDecisionHandoff>, WorkStoreError, never>;
|
|
1229
|
+
currentClaim: (laneId: string) => Effect.Effect<Option.Option<WorkLaneClaimed>, WorkStoreError, never>;
|
|
1230
|
+
decisions: (laneId: string) => Effect.Effect<readonly WorkDecisionHandoff[], WorkStoreError, never>;
|
|
1231
|
+
handoff: (decision: WorkDecisionHandoff) => Effect.Effect<WorkDecisionHandoff, WorkCoordinatorHandoffConflictError | WorkDecisionAuthorityConflictError | WorkDecisionHandoffConflictError | WorkDecisionRevisionConflictError | WorkProjectionError | WorkStoreError, never>;
|
|
10
1232
|
record: (event: WorkGoalCheckpoint) => Effect.Effect<WorkGoalCheckpoint, WorkCheckpointConflictError | WorkProjectionError | WorkStoreError, never>;
|
|
1233
|
+
recordMany: (transactionId: string, events: readonly WorkGoalCheckpoint[]) => Effect.Effect<readonly WorkGoalCheckpoint[], WorkCheckpointConflictError | WorkProjectionError | WorkStoreError | WorkTransactionConflictError, never>;
|
|
11
1234
|
snapshots: (observedAt?: number | undefined) => Effect.Effect<{
|
|
12
1235
|
readonly observedAt: number;
|
|
13
1236
|
readonly now: {
|
|
@@ -93,6 +1316,167 @@ export declare const makeWorkService: (store: WorkStoreService) => Effect.Effect
|
|
|
93
1316
|
readonly createdAt: number;
|
|
94
1317
|
readonly updatedAt: number;
|
|
95
1318
|
}[];
|
|
1319
|
+
readonly families?: readonly {
|
|
1320
|
+
readonly canonicalGoalId: string;
|
|
1321
|
+
readonly canonical: {
|
|
1322
|
+
readonly id: string;
|
|
1323
|
+
readonly title: string;
|
|
1324
|
+
readonly summary: string;
|
|
1325
|
+
readonly detail: string;
|
|
1326
|
+
readonly state: "blocked" | "completed" | "deployed" | "planned" | "review" | "working";
|
|
1327
|
+
readonly owner: {
|
|
1328
|
+
readonly id: string;
|
|
1329
|
+
readonly name: string;
|
|
1330
|
+
};
|
|
1331
|
+
readonly repository: {
|
|
1332
|
+
readonly repository: string;
|
|
1333
|
+
readonly branch: string;
|
|
1334
|
+
};
|
|
1335
|
+
readonly spend: {
|
|
1336
|
+
readonly currency: string;
|
|
1337
|
+
readonly minorUnits: number;
|
|
1338
|
+
} | null;
|
|
1339
|
+
readonly delivery: "deployed" | "local" | "merged" | "pull_request" | "review";
|
|
1340
|
+
readonly blocker: {
|
|
1341
|
+
readonly summary: string;
|
|
1342
|
+
readonly since: number;
|
|
1343
|
+
} | null;
|
|
1344
|
+
readonly connectTarget: {
|
|
1345
|
+
readonly host: string;
|
|
1346
|
+
readonly agentId: string;
|
|
1347
|
+
readonly url: string;
|
|
1348
|
+
} | null;
|
|
1349
|
+
readonly goalFamily?: {
|
|
1350
|
+
readonly canonicalGoalId: string;
|
|
1351
|
+
readonly role: "canonical" | "superseded";
|
|
1352
|
+
};
|
|
1353
|
+
readonly agentHierarchy?: {
|
|
1354
|
+
readonly agent: {
|
|
1355
|
+
readonly host: string;
|
|
1356
|
+
readonly agentId: string;
|
|
1357
|
+
readonly name: string;
|
|
1358
|
+
readonly paneId: string;
|
|
1359
|
+
readonly relationship?: {
|
|
1360
|
+
readonly parentAgentId: string;
|
|
1361
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
1362
|
+
};
|
|
1363
|
+
};
|
|
1364
|
+
} | null;
|
|
1365
|
+
readonly activity?: readonly {
|
|
1366
|
+
readonly id: string;
|
|
1367
|
+
readonly kind: "blocker" | "note" | "request" | "review" | "shipment" | "status";
|
|
1368
|
+
readonly summary: string;
|
|
1369
|
+
readonly occurredAt: number;
|
|
1370
|
+
}[];
|
|
1371
|
+
readonly blockers?: readonly {
|
|
1372
|
+
readonly summary: string;
|
|
1373
|
+
readonly since: number;
|
|
1374
|
+
}[];
|
|
1375
|
+
readonly requests?: readonly {
|
|
1376
|
+
readonly id: string;
|
|
1377
|
+
readonly summary: string;
|
|
1378
|
+
readonly state: "approved" | "fulfilled" | "open" | "rejected";
|
|
1379
|
+
readonly requestedAt: number;
|
|
1380
|
+
readonly approvalTarget: {
|
|
1381
|
+
readonly host: string;
|
|
1382
|
+
readonly jobId: string;
|
|
1383
|
+
readonly url: string;
|
|
1384
|
+
} | null;
|
|
1385
|
+
}[];
|
|
1386
|
+
readonly review?: {
|
|
1387
|
+
readonly state: "approved" | "changes_requested" | "not_requested" | "requested";
|
|
1388
|
+
readonly summary: string | null;
|
|
1389
|
+
readonly updatedAt: number;
|
|
1390
|
+
readonly url: string | null;
|
|
1391
|
+
} | null;
|
|
1392
|
+
readonly approvalTarget?: {
|
|
1393
|
+
readonly host: string;
|
|
1394
|
+
readonly jobId: string;
|
|
1395
|
+
readonly url: string;
|
|
1396
|
+
} | null;
|
|
1397
|
+
readonly createdAt: number;
|
|
1398
|
+
readonly updatedAt: number;
|
|
1399
|
+
};
|
|
1400
|
+
readonly superseded: readonly {
|
|
1401
|
+
readonly id: string;
|
|
1402
|
+
readonly title: string;
|
|
1403
|
+
readonly summary: string;
|
|
1404
|
+
readonly detail: string;
|
|
1405
|
+
readonly state: "blocked" | "completed" | "deployed" | "planned" | "review" | "working";
|
|
1406
|
+
readonly owner: {
|
|
1407
|
+
readonly id: string;
|
|
1408
|
+
readonly name: string;
|
|
1409
|
+
};
|
|
1410
|
+
readonly repository: {
|
|
1411
|
+
readonly repository: string;
|
|
1412
|
+
readonly branch: string;
|
|
1413
|
+
};
|
|
1414
|
+
readonly spend: {
|
|
1415
|
+
readonly currency: string;
|
|
1416
|
+
readonly minorUnits: number;
|
|
1417
|
+
} | null;
|
|
1418
|
+
readonly delivery: "deployed" | "local" | "merged" | "pull_request" | "review";
|
|
1419
|
+
readonly blocker: {
|
|
1420
|
+
readonly summary: string;
|
|
1421
|
+
readonly since: number;
|
|
1422
|
+
} | null;
|
|
1423
|
+
readonly connectTarget: {
|
|
1424
|
+
readonly host: string;
|
|
1425
|
+
readonly agentId: string;
|
|
1426
|
+
readonly url: string;
|
|
1427
|
+
} | null;
|
|
1428
|
+
readonly goalFamily?: {
|
|
1429
|
+
readonly canonicalGoalId: string;
|
|
1430
|
+
readonly role: "canonical" | "superseded";
|
|
1431
|
+
};
|
|
1432
|
+
readonly agentHierarchy?: {
|
|
1433
|
+
readonly agent: {
|
|
1434
|
+
readonly host: string;
|
|
1435
|
+
readonly agentId: string;
|
|
1436
|
+
readonly name: string;
|
|
1437
|
+
readonly paneId: string;
|
|
1438
|
+
readonly relationship?: {
|
|
1439
|
+
readonly parentAgentId: string;
|
|
1440
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
1441
|
+
};
|
|
1442
|
+
};
|
|
1443
|
+
} | null;
|
|
1444
|
+
readonly activity?: readonly {
|
|
1445
|
+
readonly id: string;
|
|
1446
|
+
readonly kind: "blocker" | "note" | "request" | "review" | "shipment" | "status";
|
|
1447
|
+
readonly summary: string;
|
|
1448
|
+
readonly occurredAt: number;
|
|
1449
|
+
}[];
|
|
1450
|
+
readonly blockers?: readonly {
|
|
1451
|
+
readonly summary: string;
|
|
1452
|
+
readonly since: number;
|
|
1453
|
+
}[];
|
|
1454
|
+
readonly requests?: readonly {
|
|
1455
|
+
readonly id: string;
|
|
1456
|
+
readonly summary: string;
|
|
1457
|
+
readonly state: "approved" | "fulfilled" | "open" | "rejected";
|
|
1458
|
+
readonly requestedAt: number;
|
|
1459
|
+
readonly approvalTarget: {
|
|
1460
|
+
readonly host: string;
|
|
1461
|
+
readonly jobId: string;
|
|
1462
|
+
readonly url: string;
|
|
1463
|
+
} | null;
|
|
1464
|
+
}[];
|
|
1465
|
+
readonly review?: {
|
|
1466
|
+
readonly state: "approved" | "changes_requested" | "not_requested" | "requested";
|
|
1467
|
+
readonly summary: string | null;
|
|
1468
|
+
readonly updatedAt: number;
|
|
1469
|
+
readonly url: string | null;
|
|
1470
|
+
} | null;
|
|
1471
|
+
readonly approvalTarget?: {
|
|
1472
|
+
readonly host: string;
|
|
1473
|
+
readonly jobId: string;
|
|
1474
|
+
readonly url: string;
|
|
1475
|
+
} | null;
|
|
1476
|
+
readonly createdAt: number;
|
|
1477
|
+
readonly updatedAt: number;
|
|
1478
|
+
}[];
|
|
1479
|
+
}[];
|
|
96
1480
|
};
|
|
97
1481
|
readonly day: {
|
|
98
1482
|
readonly window: "day" | "month" | "now" | "week";
|
|
@@ -177,6 +1561,167 @@ export declare const makeWorkService: (store: WorkStoreService) => Effect.Effect
|
|
|
177
1561
|
readonly createdAt: number;
|
|
178
1562
|
readonly updatedAt: number;
|
|
179
1563
|
}[];
|
|
1564
|
+
readonly families?: readonly {
|
|
1565
|
+
readonly canonicalGoalId: string;
|
|
1566
|
+
readonly canonical: {
|
|
1567
|
+
readonly id: string;
|
|
1568
|
+
readonly title: string;
|
|
1569
|
+
readonly summary: string;
|
|
1570
|
+
readonly detail: string;
|
|
1571
|
+
readonly state: "blocked" | "completed" | "deployed" | "planned" | "review" | "working";
|
|
1572
|
+
readonly owner: {
|
|
1573
|
+
readonly id: string;
|
|
1574
|
+
readonly name: string;
|
|
1575
|
+
};
|
|
1576
|
+
readonly repository: {
|
|
1577
|
+
readonly repository: string;
|
|
1578
|
+
readonly branch: string;
|
|
1579
|
+
};
|
|
1580
|
+
readonly spend: {
|
|
1581
|
+
readonly currency: string;
|
|
1582
|
+
readonly minorUnits: number;
|
|
1583
|
+
} | null;
|
|
1584
|
+
readonly delivery: "deployed" | "local" | "merged" | "pull_request" | "review";
|
|
1585
|
+
readonly blocker: {
|
|
1586
|
+
readonly summary: string;
|
|
1587
|
+
readonly since: number;
|
|
1588
|
+
} | null;
|
|
1589
|
+
readonly connectTarget: {
|
|
1590
|
+
readonly host: string;
|
|
1591
|
+
readonly agentId: string;
|
|
1592
|
+
readonly url: string;
|
|
1593
|
+
} | null;
|
|
1594
|
+
readonly goalFamily?: {
|
|
1595
|
+
readonly canonicalGoalId: string;
|
|
1596
|
+
readonly role: "canonical" | "superseded";
|
|
1597
|
+
};
|
|
1598
|
+
readonly agentHierarchy?: {
|
|
1599
|
+
readonly agent: {
|
|
1600
|
+
readonly host: string;
|
|
1601
|
+
readonly agentId: string;
|
|
1602
|
+
readonly name: string;
|
|
1603
|
+
readonly paneId: string;
|
|
1604
|
+
readonly relationship?: {
|
|
1605
|
+
readonly parentAgentId: string;
|
|
1606
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
1607
|
+
};
|
|
1608
|
+
};
|
|
1609
|
+
} | null;
|
|
1610
|
+
readonly activity?: readonly {
|
|
1611
|
+
readonly id: string;
|
|
1612
|
+
readonly kind: "blocker" | "note" | "request" | "review" | "shipment" | "status";
|
|
1613
|
+
readonly summary: string;
|
|
1614
|
+
readonly occurredAt: number;
|
|
1615
|
+
}[];
|
|
1616
|
+
readonly blockers?: readonly {
|
|
1617
|
+
readonly summary: string;
|
|
1618
|
+
readonly since: number;
|
|
1619
|
+
}[];
|
|
1620
|
+
readonly requests?: readonly {
|
|
1621
|
+
readonly id: string;
|
|
1622
|
+
readonly summary: string;
|
|
1623
|
+
readonly state: "approved" | "fulfilled" | "open" | "rejected";
|
|
1624
|
+
readonly requestedAt: number;
|
|
1625
|
+
readonly approvalTarget: {
|
|
1626
|
+
readonly host: string;
|
|
1627
|
+
readonly jobId: string;
|
|
1628
|
+
readonly url: string;
|
|
1629
|
+
} | null;
|
|
1630
|
+
}[];
|
|
1631
|
+
readonly review?: {
|
|
1632
|
+
readonly state: "approved" | "changes_requested" | "not_requested" | "requested";
|
|
1633
|
+
readonly summary: string | null;
|
|
1634
|
+
readonly updatedAt: number;
|
|
1635
|
+
readonly url: string | null;
|
|
1636
|
+
} | null;
|
|
1637
|
+
readonly approvalTarget?: {
|
|
1638
|
+
readonly host: string;
|
|
1639
|
+
readonly jobId: string;
|
|
1640
|
+
readonly url: string;
|
|
1641
|
+
} | null;
|
|
1642
|
+
readonly createdAt: number;
|
|
1643
|
+
readonly updatedAt: number;
|
|
1644
|
+
};
|
|
1645
|
+
readonly superseded: readonly {
|
|
1646
|
+
readonly id: string;
|
|
1647
|
+
readonly title: string;
|
|
1648
|
+
readonly summary: string;
|
|
1649
|
+
readonly detail: string;
|
|
1650
|
+
readonly state: "blocked" | "completed" | "deployed" | "planned" | "review" | "working";
|
|
1651
|
+
readonly owner: {
|
|
1652
|
+
readonly id: string;
|
|
1653
|
+
readonly name: string;
|
|
1654
|
+
};
|
|
1655
|
+
readonly repository: {
|
|
1656
|
+
readonly repository: string;
|
|
1657
|
+
readonly branch: string;
|
|
1658
|
+
};
|
|
1659
|
+
readonly spend: {
|
|
1660
|
+
readonly currency: string;
|
|
1661
|
+
readonly minorUnits: number;
|
|
1662
|
+
} | null;
|
|
1663
|
+
readonly delivery: "deployed" | "local" | "merged" | "pull_request" | "review";
|
|
1664
|
+
readonly blocker: {
|
|
1665
|
+
readonly summary: string;
|
|
1666
|
+
readonly since: number;
|
|
1667
|
+
} | null;
|
|
1668
|
+
readonly connectTarget: {
|
|
1669
|
+
readonly host: string;
|
|
1670
|
+
readonly agentId: string;
|
|
1671
|
+
readonly url: string;
|
|
1672
|
+
} | null;
|
|
1673
|
+
readonly goalFamily?: {
|
|
1674
|
+
readonly canonicalGoalId: string;
|
|
1675
|
+
readonly role: "canonical" | "superseded";
|
|
1676
|
+
};
|
|
1677
|
+
readonly agentHierarchy?: {
|
|
1678
|
+
readonly agent: {
|
|
1679
|
+
readonly host: string;
|
|
1680
|
+
readonly agentId: string;
|
|
1681
|
+
readonly name: string;
|
|
1682
|
+
readonly paneId: string;
|
|
1683
|
+
readonly relationship?: {
|
|
1684
|
+
readonly parentAgentId: string;
|
|
1685
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
1686
|
+
};
|
|
1687
|
+
};
|
|
1688
|
+
} | null;
|
|
1689
|
+
readonly activity?: readonly {
|
|
1690
|
+
readonly id: string;
|
|
1691
|
+
readonly kind: "blocker" | "note" | "request" | "review" | "shipment" | "status";
|
|
1692
|
+
readonly summary: string;
|
|
1693
|
+
readonly occurredAt: number;
|
|
1694
|
+
}[];
|
|
1695
|
+
readonly blockers?: readonly {
|
|
1696
|
+
readonly summary: string;
|
|
1697
|
+
readonly since: number;
|
|
1698
|
+
}[];
|
|
1699
|
+
readonly requests?: readonly {
|
|
1700
|
+
readonly id: string;
|
|
1701
|
+
readonly summary: string;
|
|
1702
|
+
readonly state: "approved" | "fulfilled" | "open" | "rejected";
|
|
1703
|
+
readonly requestedAt: number;
|
|
1704
|
+
readonly approvalTarget: {
|
|
1705
|
+
readonly host: string;
|
|
1706
|
+
readonly jobId: string;
|
|
1707
|
+
readonly url: string;
|
|
1708
|
+
} | null;
|
|
1709
|
+
}[];
|
|
1710
|
+
readonly review?: {
|
|
1711
|
+
readonly state: "approved" | "changes_requested" | "not_requested" | "requested";
|
|
1712
|
+
readonly summary: string | null;
|
|
1713
|
+
readonly updatedAt: number;
|
|
1714
|
+
readonly url: string | null;
|
|
1715
|
+
} | null;
|
|
1716
|
+
readonly approvalTarget?: {
|
|
1717
|
+
readonly host: string;
|
|
1718
|
+
readonly jobId: string;
|
|
1719
|
+
readonly url: string;
|
|
1720
|
+
} | null;
|
|
1721
|
+
readonly createdAt: number;
|
|
1722
|
+
readonly updatedAt: number;
|
|
1723
|
+
}[];
|
|
1724
|
+
}[];
|
|
180
1725
|
};
|
|
181
1726
|
readonly week: {
|
|
182
1727
|
readonly window: "day" | "month" | "now" | "week";
|
|
@@ -261,6 +1806,167 @@ export declare const makeWorkService: (store: WorkStoreService) => Effect.Effect
|
|
|
261
1806
|
readonly createdAt: number;
|
|
262
1807
|
readonly updatedAt: number;
|
|
263
1808
|
}[];
|
|
1809
|
+
readonly families?: readonly {
|
|
1810
|
+
readonly canonicalGoalId: string;
|
|
1811
|
+
readonly canonical: {
|
|
1812
|
+
readonly id: string;
|
|
1813
|
+
readonly title: string;
|
|
1814
|
+
readonly summary: string;
|
|
1815
|
+
readonly detail: string;
|
|
1816
|
+
readonly state: "blocked" | "completed" | "deployed" | "planned" | "review" | "working";
|
|
1817
|
+
readonly owner: {
|
|
1818
|
+
readonly id: string;
|
|
1819
|
+
readonly name: string;
|
|
1820
|
+
};
|
|
1821
|
+
readonly repository: {
|
|
1822
|
+
readonly repository: string;
|
|
1823
|
+
readonly branch: string;
|
|
1824
|
+
};
|
|
1825
|
+
readonly spend: {
|
|
1826
|
+
readonly currency: string;
|
|
1827
|
+
readonly minorUnits: number;
|
|
1828
|
+
} | null;
|
|
1829
|
+
readonly delivery: "deployed" | "local" | "merged" | "pull_request" | "review";
|
|
1830
|
+
readonly blocker: {
|
|
1831
|
+
readonly summary: string;
|
|
1832
|
+
readonly since: number;
|
|
1833
|
+
} | null;
|
|
1834
|
+
readonly connectTarget: {
|
|
1835
|
+
readonly host: string;
|
|
1836
|
+
readonly agentId: string;
|
|
1837
|
+
readonly url: string;
|
|
1838
|
+
} | null;
|
|
1839
|
+
readonly goalFamily?: {
|
|
1840
|
+
readonly canonicalGoalId: string;
|
|
1841
|
+
readonly role: "canonical" | "superseded";
|
|
1842
|
+
};
|
|
1843
|
+
readonly agentHierarchy?: {
|
|
1844
|
+
readonly agent: {
|
|
1845
|
+
readonly host: string;
|
|
1846
|
+
readonly agentId: string;
|
|
1847
|
+
readonly name: string;
|
|
1848
|
+
readonly paneId: string;
|
|
1849
|
+
readonly relationship?: {
|
|
1850
|
+
readonly parentAgentId: string;
|
|
1851
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
1852
|
+
};
|
|
1853
|
+
};
|
|
1854
|
+
} | null;
|
|
1855
|
+
readonly activity?: readonly {
|
|
1856
|
+
readonly id: string;
|
|
1857
|
+
readonly kind: "blocker" | "note" | "request" | "review" | "shipment" | "status";
|
|
1858
|
+
readonly summary: string;
|
|
1859
|
+
readonly occurredAt: number;
|
|
1860
|
+
}[];
|
|
1861
|
+
readonly blockers?: readonly {
|
|
1862
|
+
readonly summary: string;
|
|
1863
|
+
readonly since: number;
|
|
1864
|
+
}[];
|
|
1865
|
+
readonly requests?: readonly {
|
|
1866
|
+
readonly id: string;
|
|
1867
|
+
readonly summary: string;
|
|
1868
|
+
readonly state: "approved" | "fulfilled" | "open" | "rejected";
|
|
1869
|
+
readonly requestedAt: number;
|
|
1870
|
+
readonly approvalTarget: {
|
|
1871
|
+
readonly host: string;
|
|
1872
|
+
readonly jobId: string;
|
|
1873
|
+
readonly url: string;
|
|
1874
|
+
} | null;
|
|
1875
|
+
}[];
|
|
1876
|
+
readonly review?: {
|
|
1877
|
+
readonly state: "approved" | "changes_requested" | "not_requested" | "requested";
|
|
1878
|
+
readonly summary: string | null;
|
|
1879
|
+
readonly updatedAt: number;
|
|
1880
|
+
readonly url: string | null;
|
|
1881
|
+
} | null;
|
|
1882
|
+
readonly approvalTarget?: {
|
|
1883
|
+
readonly host: string;
|
|
1884
|
+
readonly jobId: string;
|
|
1885
|
+
readonly url: string;
|
|
1886
|
+
} | null;
|
|
1887
|
+
readonly createdAt: number;
|
|
1888
|
+
readonly updatedAt: number;
|
|
1889
|
+
};
|
|
1890
|
+
readonly superseded: readonly {
|
|
1891
|
+
readonly id: string;
|
|
1892
|
+
readonly title: string;
|
|
1893
|
+
readonly summary: string;
|
|
1894
|
+
readonly detail: string;
|
|
1895
|
+
readonly state: "blocked" | "completed" | "deployed" | "planned" | "review" | "working";
|
|
1896
|
+
readonly owner: {
|
|
1897
|
+
readonly id: string;
|
|
1898
|
+
readonly name: string;
|
|
1899
|
+
};
|
|
1900
|
+
readonly repository: {
|
|
1901
|
+
readonly repository: string;
|
|
1902
|
+
readonly branch: string;
|
|
1903
|
+
};
|
|
1904
|
+
readonly spend: {
|
|
1905
|
+
readonly currency: string;
|
|
1906
|
+
readonly minorUnits: number;
|
|
1907
|
+
} | null;
|
|
1908
|
+
readonly delivery: "deployed" | "local" | "merged" | "pull_request" | "review";
|
|
1909
|
+
readonly blocker: {
|
|
1910
|
+
readonly summary: string;
|
|
1911
|
+
readonly since: number;
|
|
1912
|
+
} | null;
|
|
1913
|
+
readonly connectTarget: {
|
|
1914
|
+
readonly host: string;
|
|
1915
|
+
readonly agentId: string;
|
|
1916
|
+
readonly url: string;
|
|
1917
|
+
} | null;
|
|
1918
|
+
readonly goalFamily?: {
|
|
1919
|
+
readonly canonicalGoalId: string;
|
|
1920
|
+
readonly role: "canonical" | "superseded";
|
|
1921
|
+
};
|
|
1922
|
+
readonly agentHierarchy?: {
|
|
1923
|
+
readonly agent: {
|
|
1924
|
+
readonly host: string;
|
|
1925
|
+
readonly agentId: string;
|
|
1926
|
+
readonly name: string;
|
|
1927
|
+
readonly paneId: string;
|
|
1928
|
+
readonly relationship?: {
|
|
1929
|
+
readonly parentAgentId: string;
|
|
1930
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
1931
|
+
};
|
|
1932
|
+
};
|
|
1933
|
+
} | null;
|
|
1934
|
+
readonly activity?: readonly {
|
|
1935
|
+
readonly id: string;
|
|
1936
|
+
readonly kind: "blocker" | "note" | "request" | "review" | "shipment" | "status";
|
|
1937
|
+
readonly summary: string;
|
|
1938
|
+
readonly occurredAt: number;
|
|
1939
|
+
}[];
|
|
1940
|
+
readonly blockers?: readonly {
|
|
1941
|
+
readonly summary: string;
|
|
1942
|
+
readonly since: number;
|
|
1943
|
+
}[];
|
|
1944
|
+
readonly requests?: readonly {
|
|
1945
|
+
readonly id: string;
|
|
1946
|
+
readonly summary: string;
|
|
1947
|
+
readonly state: "approved" | "fulfilled" | "open" | "rejected";
|
|
1948
|
+
readonly requestedAt: number;
|
|
1949
|
+
readonly approvalTarget: {
|
|
1950
|
+
readonly host: string;
|
|
1951
|
+
readonly jobId: string;
|
|
1952
|
+
readonly url: string;
|
|
1953
|
+
} | null;
|
|
1954
|
+
}[];
|
|
1955
|
+
readonly review?: {
|
|
1956
|
+
readonly state: "approved" | "changes_requested" | "not_requested" | "requested";
|
|
1957
|
+
readonly summary: string | null;
|
|
1958
|
+
readonly updatedAt: number;
|
|
1959
|
+
readonly url: string | null;
|
|
1960
|
+
} | null;
|
|
1961
|
+
readonly approvalTarget?: {
|
|
1962
|
+
readonly host: string;
|
|
1963
|
+
readonly jobId: string;
|
|
1964
|
+
readonly url: string;
|
|
1965
|
+
} | null;
|
|
1966
|
+
readonly createdAt: number;
|
|
1967
|
+
readonly updatedAt: number;
|
|
1968
|
+
}[];
|
|
1969
|
+
}[];
|
|
264
1970
|
};
|
|
265
1971
|
readonly month: {
|
|
266
1972
|
readonly window: "day" | "month" | "now" | "week";
|
|
@@ -345,6 +2051,167 @@ export declare const makeWorkService: (store: WorkStoreService) => Effect.Effect
|
|
|
345
2051
|
readonly createdAt: number;
|
|
346
2052
|
readonly updatedAt: number;
|
|
347
2053
|
}[];
|
|
2054
|
+
readonly families?: readonly {
|
|
2055
|
+
readonly canonicalGoalId: string;
|
|
2056
|
+
readonly canonical: {
|
|
2057
|
+
readonly id: string;
|
|
2058
|
+
readonly title: string;
|
|
2059
|
+
readonly summary: string;
|
|
2060
|
+
readonly detail: string;
|
|
2061
|
+
readonly state: "blocked" | "completed" | "deployed" | "planned" | "review" | "working";
|
|
2062
|
+
readonly owner: {
|
|
2063
|
+
readonly id: string;
|
|
2064
|
+
readonly name: string;
|
|
2065
|
+
};
|
|
2066
|
+
readonly repository: {
|
|
2067
|
+
readonly repository: string;
|
|
2068
|
+
readonly branch: string;
|
|
2069
|
+
};
|
|
2070
|
+
readonly spend: {
|
|
2071
|
+
readonly currency: string;
|
|
2072
|
+
readonly minorUnits: number;
|
|
2073
|
+
} | null;
|
|
2074
|
+
readonly delivery: "deployed" | "local" | "merged" | "pull_request" | "review";
|
|
2075
|
+
readonly blocker: {
|
|
2076
|
+
readonly summary: string;
|
|
2077
|
+
readonly since: number;
|
|
2078
|
+
} | null;
|
|
2079
|
+
readonly connectTarget: {
|
|
2080
|
+
readonly host: string;
|
|
2081
|
+
readonly agentId: string;
|
|
2082
|
+
readonly url: string;
|
|
2083
|
+
} | null;
|
|
2084
|
+
readonly goalFamily?: {
|
|
2085
|
+
readonly canonicalGoalId: string;
|
|
2086
|
+
readonly role: "canonical" | "superseded";
|
|
2087
|
+
};
|
|
2088
|
+
readonly agentHierarchy?: {
|
|
2089
|
+
readonly agent: {
|
|
2090
|
+
readonly host: string;
|
|
2091
|
+
readonly agentId: string;
|
|
2092
|
+
readonly name: string;
|
|
2093
|
+
readonly paneId: string;
|
|
2094
|
+
readonly relationship?: {
|
|
2095
|
+
readonly parentAgentId: string;
|
|
2096
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
2097
|
+
};
|
|
2098
|
+
};
|
|
2099
|
+
} | null;
|
|
2100
|
+
readonly activity?: readonly {
|
|
2101
|
+
readonly id: string;
|
|
2102
|
+
readonly kind: "blocker" | "note" | "request" | "review" | "shipment" | "status";
|
|
2103
|
+
readonly summary: string;
|
|
2104
|
+
readonly occurredAt: number;
|
|
2105
|
+
}[];
|
|
2106
|
+
readonly blockers?: readonly {
|
|
2107
|
+
readonly summary: string;
|
|
2108
|
+
readonly since: number;
|
|
2109
|
+
}[];
|
|
2110
|
+
readonly requests?: readonly {
|
|
2111
|
+
readonly id: string;
|
|
2112
|
+
readonly summary: string;
|
|
2113
|
+
readonly state: "approved" | "fulfilled" | "open" | "rejected";
|
|
2114
|
+
readonly requestedAt: number;
|
|
2115
|
+
readonly approvalTarget: {
|
|
2116
|
+
readonly host: string;
|
|
2117
|
+
readonly jobId: string;
|
|
2118
|
+
readonly url: string;
|
|
2119
|
+
} | null;
|
|
2120
|
+
}[];
|
|
2121
|
+
readonly review?: {
|
|
2122
|
+
readonly state: "approved" | "changes_requested" | "not_requested" | "requested";
|
|
2123
|
+
readonly summary: string | null;
|
|
2124
|
+
readonly updatedAt: number;
|
|
2125
|
+
readonly url: string | null;
|
|
2126
|
+
} | null;
|
|
2127
|
+
readonly approvalTarget?: {
|
|
2128
|
+
readonly host: string;
|
|
2129
|
+
readonly jobId: string;
|
|
2130
|
+
readonly url: string;
|
|
2131
|
+
} | null;
|
|
2132
|
+
readonly createdAt: number;
|
|
2133
|
+
readonly updatedAt: number;
|
|
2134
|
+
};
|
|
2135
|
+
readonly superseded: readonly {
|
|
2136
|
+
readonly id: string;
|
|
2137
|
+
readonly title: string;
|
|
2138
|
+
readonly summary: string;
|
|
2139
|
+
readonly detail: string;
|
|
2140
|
+
readonly state: "blocked" | "completed" | "deployed" | "planned" | "review" | "working";
|
|
2141
|
+
readonly owner: {
|
|
2142
|
+
readonly id: string;
|
|
2143
|
+
readonly name: string;
|
|
2144
|
+
};
|
|
2145
|
+
readonly repository: {
|
|
2146
|
+
readonly repository: string;
|
|
2147
|
+
readonly branch: string;
|
|
2148
|
+
};
|
|
2149
|
+
readonly spend: {
|
|
2150
|
+
readonly currency: string;
|
|
2151
|
+
readonly minorUnits: number;
|
|
2152
|
+
} | null;
|
|
2153
|
+
readonly delivery: "deployed" | "local" | "merged" | "pull_request" | "review";
|
|
2154
|
+
readonly blocker: {
|
|
2155
|
+
readonly summary: string;
|
|
2156
|
+
readonly since: number;
|
|
2157
|
+
} | null;
|
|
2158
|
+
readonly connectTarget: {
|
|
2159
|
+
readonly host: string;
|
|
2160
|
+
readonly agentId: string;
|
|
2161
|
+
readonly url: string;
|
|
2162
|
+
} | null;
|
|
2163
|
+
readonly goalFamily?: {
|
|
2164
|
+
readonly canonicalGoalId: string;
|
|
2165
|
+
readonly role: "canonical" | "superseded";
|
|
2166
|
+
};
|
|
2167
|
+
readonly agentHierarchy?: {
|
|
2168
|
+
readonly agent: {
|
|
2169
|
+
readonly host: string;
|
|
2170
|
+
readonly agentId: string;
|
|
2171
|
+
readonly name: string;
|
|
2172
|
+
readonly paneId: string;
|
|
2173
|
+
readonly relationship?: {
|
|
2174
|
+
readonly parentAgentId: string;
|
|
2175
|
+
readonly relation: "delegated" | "pair" | "review";
|
|
2176
|
+
};
|
|
2177
|
+
};
|
|
2178
|
+
} | null;
|
|
2179
|
+
readonly activity?: readonly {
|
|
2180
|
+
readonly id: string;
|
|
2181
|
+
readonly kind: "blocker" | "note" | "request" | "review" | "shipment" | "status";
|
|
2182
|
+
readonly summary: string;
|
|
2183
|
+
readonly occurredAt: number;
|
|
2184
|
+
}[];
|
|
2185
|
+
readonly blockers?: readonly {
|
|
2186
|
+
readonly summary: string;
|
|
2187
|
+
readonly since: number;
|
|
2188
|
+
}[];
|
|
2189
|
+
readonly requests?: readonly {
|
|
2190
|
+
readonly id: string;
|
|
2191
|
+
readonly summary: string;
|
|
2192
|
+
readonly state: "approved" | "fulfilled" | "open" | "rejected";
|
|
2193
|
+
readonly requestedAt: number;
|
|
2194
|
+
readonly approvalTarget: {
|
|
2195
|
+
readonly host: string;
|
|
2196
|
+
readonly jobId: string;
|
|
2197
|
+
readonly url: string;
|
|
2198
|
+
} | null;
|
|
2199
|
+
}[];
|
|
2200
|
+
readonly review?: {
|
|
2201
|
+
readonly state: "approved" | "changes_requested" | "not_requested" | "requested";
|
|
2202
|
+
readonly summary: string | null;
|
|
2203
|
+
readonly updatedAt: number;
|
|
2204
|
+
readonly url: string | null;
|
|
2205
|
+
} | null;
|
|
2206
|
+
readonly approvalTarget?: {
|
|
2207
|
+
readonly host: string;
|
|
2208
|
+
readonly jobId: string;
|
|
2209
|
+
readonly url: string;
|
|
2210
|
+
} | null;
|
|
2211
|
+
readonly createdAt: number;
|
|
2212
|
+
readonly updatedAt: number;
|
|
2213
|
+
}[];
|
|
2214
|
+
}[];
|
|
348
2215
|
};
|
|
349
2216
|
}, WorkProjectionError | WorkStoreError, never>;
|
|
350
2217
|
}, never, never>;
|