@knpkv/herdr-work 0.3.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 +99 -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/goal-family.d.ts +4 -0
- package/dist/goal-family.d.ts.map +1 -0
- package/dist/goal-family.js +32 -0
- package/dist/goal-family.js.map +1 -0
- 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 +3109 -51
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +340 -11
- 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 +660 -0
- package/dist/projection.d.ts.map +1 -1
- package/dist/projection.js +65 -25
- package/dist/projection.js.map +1 -1
- package/dist/service.d.ts +1886 -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 +1072 -4
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +3328 -43
- package/dist/store.js.map +1 -1
- package/dist/view.d.ts +9 -2
- package/dist/view.d.ts.map +1 -1
- package/dist/view.js +156 -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: {
|
|
@@ -42,6 +1265,10 @@ export declare const makeWorkService: (store: WorkStoreService) => Effect.Effect
|
|
|
42
1265
|
readonly agentId: string;
|
|
43
1266
|
readonly url: string;
|
|
44
1267
|
} | null;
|
|
1268
|
+
readonly goalFamily?: {
|
|
1269
|
+
readonly canonicalGoalId: string;
|
|
1270
|
+
readonly role: "canonical" | "superseded";
|
|
1271
|
+
};
|
|
45
1272
|
readonly agentHierarchy?: {
|
|
46
1273
|
readonly agent: {
|
|
47
1274
|
readonly host: string;
|
|
@@ -89,6 +1316,167 @@ export declare const makeWorkService: (store: WorkStoreService) => Effect.Effect
|
|
|
89
1316
|
readonly createdAt: number;
|
|
90
1317
|
readonly updatedAt: number;
|
|
91
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
|
+
}[];
|
|
92
1480
|
};
|
|
93
1481
|
readonly day: {
|
|
94
1482
|
readonly window: "day" | "month" | "now" | "week";
|
|
@@ -122,6 +1510,10 @@ export declare const makeWorkService: (store: WorkStoreService) => Effect.Effect
|
|
|
122
1510
|
readonly agentId: string;
|
|
123
1511
|
readonly url: string;
|
|
124
1512
|
} | null;
|
|
1513
|
+
readonly goalFamily?: {
|
|
1514
|
+
readonly canonicalGoalId: string;
|
|
1515
|
+
readonly role: "canonical" | "superseded";
|
|
1516
|
+
};
|
|
125
1517
|
readonly agentHierarchy?: {
|
|
126
1518
|
readonly agent: {
|
|
127
1519
|
readonly host: string;
|
|
@@ -169,6 +1561,167 @@ export declare const makeWorkService: (store: WorkStoreService) => Effect.Effect
|
|
|
169
1561
|
readonly createdAt: number;
|
|
170
1562
|
readonly updatedAt: number;
|
|
171
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
|
+
}[];
|
|
172
1725
|
};
|
|
173
1726
|
readonly week: {
|
|
174
1727
|
readonly window: "day" | "month" | "now" | "week";
|
|
@@ -202,6 +1755,10 @@ export declare const makeWorkService: (store: WorkStoreService) => Effect.Effect
|
|
|
202
1755
|
readonly agentId: string;
|
|
203
1756
|
readonly url: string;
|
|
204
1757
|
} | null;
|
|
1758
|
+
readonly goalFamily?: {
|
|
1759
|
+
readonly canonicalGoalId: string;
|
|
1760
|
+
readonly role: "canonical" | "superseded";
|
|
1761
|
+
};
|
|
205
1762
|
readonly agentHierarchy?: {
|
|
206
1763
|
readonly agent: {
|
|
207
1764
|
readonly host: string;
|
|
@@ -249,6 +1806,167 @@ export declare const makeWorkService: (store: WorkStoreService) => Effect.Effect
|
|
|
249
1806
|
readonly createdAt: number;
|
|
250
1807
|
readonly updatedAt: number;
|
|
251
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
|
+
}[];
|
|
252
1970
|
};
|
|
253
1971
|
readonly month: {
|
|
254
1972
|
readonly window: "day" | "month" | "now" | "week";
|
|
@@ -282,6 +2000,10 @@ export declare const makeWorkService: (store: WorkStoreService) => Effect.Effect
|
|
|
282
2000
|
readonly agentId: string;
|
|
283
2001
|
readonly url: string;
|
|
284
2002
|
} | null;
|
|
2003
|
+
readonly goalFamily?: {
|
|
2004
|
+
readonly canonicalGoalId: string;
|
|
2005
|
+
readonly role: "canonical" | "superseded";
|
|
2006
|
+
};
|
|
285
2007
|
readonly agentHierarchy?: {
|
|
286
2008
|
readonly agent: {
|
|
287
2009
|
readonly host: string;
|
|
@@ -329,6 +2051,167 @@ export declare const makeWorkService: (store: WorkStoreService) => Effect.Effect
|
|
|
329
2051
|
readonly createdAt: number;
|
|
330
2052
|
readonly updatedAt: number;
|
|
331
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
|
+
}[];
|
|
332
2215
|
};
|
|
333
2216
|
}, WorkProjectionError | WorkStoreError, never>;
|
|
334
2217
|
}, never, never>;
|