@nestos/kanban 0.0.0-stage → 0.5.2
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/LICENSE +674 -0
- package/README.md +165 -2
- package/dist/activity-BbC4sgKL.d.cts +258 -0
- package/dist/activity-Czlan5xW.d.ts +258 -0
- package/dist/activity-module-DaO1Rry0.d.cts +22 -0
- package/dist/activity-module-T22wliZu.d.ts +22 -0
- package/dist/activity-ports-Dqxa86zT.d.cts +12 -0
- package/dist/activity-ports-cxfrelaL.d.ts +12 -0
- package/dist/activity.cjs +16 -0
- package/dist/activity.cjs.map +1 -0
- package/dist/activity.d.cts +12 -0
- package/dist/activity.d.ts +12 -0
- package/dist/activity.js +16 -0
- package/dist/activity.js.map +1 -0
- package/dist/chunk-3JYLJPE5.js +95 -0
- package/dist/chunk-3JYLJPE5.js.map +1 -0
- package/dist/chunk-3LEIHB7Y.js +221 -0
- package/dist/chunk-3LEIHB7Y.js.map +1 -0
- package/dist/chunk-4XF6LQSU.cjs +9 -0
- package/dist/chunk-4XF6LQSU.cjs.map +1 -0
- package/dist/chunk-5Q7WB63A.cjs +282 -0
- package/dist/chunk-5Q7WB63A.cjs.map +1 -0
- package/dist/chunk-7KDOTBRX.cjs +58 -0
- package/dist/chunk-7KDOTBRX.cjs.map +1 -0
- package/dist/chunk-AHHEGTUA.js +148 -0
- package/dist/chunk-AHHEGTUA.js.map +1 -0
- package/dist/chunk-AOHQCX7K.cjs +95 -0
- package/dist/chunk-AOHQCX7K.cjs.map +1 -0
- package/dist/chunk-DINLR6E6.cjs +443 -0
- package/dist/chunk-DINLR6E6.cjs.map +1 -0
- package/dist/chunk-EYTVC2H5.cjs +1612 -0
- package/dist/chunk-EYTVC2H5.cjs.map +1 -0
- package/dist/chunk-FEE2YBZ7.js +1972 -0
- package/dist/chunk-FEE2YBZ7.js.map +1 -0
- package/dist/chunk-FNO5K3A7.js +282 -0
- package/dist/chunk-FNO5K3A7.js.map +1 -0
- package/dist/chunk-IHHDXZPZ.js +382 -0
- package/dist/chunk-IHHDXZPZ.js.map +1 -0
- package/dist/chunk-J3EAIVA3.js +280 -0
- package/dist/chunk-J3EAIVA3.js.map +1 -0
- package/dist/chunk-KH3WF3K4.js +443 -0
- package/dist/chunk-KH3WF3K4.js.map +1 -0
- package/dist/chunk-M35X5PHO.js +196 -0
- package/dist/chunk-M35X5PHO.js.map +1 -0
- package/dist/chunk-QRGZD2JU.cjs +1972 -0
- package/dist/chunk-QRGZD2JU.cjs.map +1 -0
- package/dist/chunk-RBOER6EW.cjs +221 -0
- package/dist/chunk-RBOER6EW.cjs.map +1 -0
- package/dist/chunk-RQP77ZTY.js +9 -0
- package/dist/chunk-RQP77ZTY.js.map +1 -0
- package/dist/chunk-RSH6QSEC.cjs +196 -0
- package/dist/chunk-RSH6QSEC.cjs.map +1 -0
- package/dist/chunk-VMRDXOLX.cjs +148 -0
- package/dist/chunk-VMRDXOLX.cjs.map +1 -0
- package/dist/chunk-X4UHZX6F.js +58 -0
- package/dist/chunk-X4UHZX6F.js.map +1 -0
- package/dist/chunk-XBSGUVCY.cjs +382 -0
- package/dist/chunk-XBSGUVCY.cjs.map +1 -0
- package/dist/chunk-XKDZHAUE.js +1612 -0
- package/dist/chunk-XKDZHAUE.js.map +1 -0
- package/dist/chunk-ZUZGAO6G.cjs +280 -0
- package/dist/chunk-ZUZGAO6G.cjs.map +1 -0
- package/dist/content-C5aJZFlw.d.cts +35 -0
- package/dist/content-hLH5BNud.d.ts +35 -0
- package/dist/contracts/index.cjs +31 -0
- package/dist/contracts/index.cjs.map +1 -0
- package/dist/contracts/index.d.cts +5 -0
- package/dist/contracts/index.d.ts +5 -0
- package/dist/contracts/index.js +31 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/discovery-9E-LfwIw.d.cts +61 -0
- package/dist/discovery-D60yrjej.d.ts +61 -0
- package/dist/discovery.cjs +377 -0
- package/dist/discovery.cjs.map +1 -0
- package/dist/discovery.d.cts +22 -0
- package/dist/discovery.d.ts +22 -0
- package/dist/discovery.js +377 -0
- package/dist/discovery.js.map +1 -0
- package/dist/execution-bridge-fpCnH6z5.d.cts +52 -0
- package/dist/execution-bridge-rk0uVy_n.d.ts +52 -0
- package/dist/execution.cjs +18 -0
- package/dist/execution.cjs.map +1 -0
- package/dist/execution.d.cts +42 -0
- package/dist/execution.d.ts +42 -0
- package/dist/execution.js +18 -0
- package/dist/execution.js.map +1 -0
- package/dist/index.cjs +74 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +54 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.js +74 -0
- package/dist/index.js.map +1 -0
- package/dist/module-CYfE7YhM.d.ts +11 -0
- package/dist/module-Ca9L3qCn.d.cts +11 -0
- package/dist/planning-CHrOqQ6b.d.cts +879 -0
- package/dist/planning-CHrOqQ6b.d.ts +879 -0
- package/dist/ports-B0McVg7B.d.ts +143 -0
- package/dist/ports-BeGO1VRI.d.cts +49 -0
- package/dist/ports-GQy0x-RI.d.cts +143 -0
- package/dist/ports-ykGiNUSx.d.ts +49 -0
- package/dist/runtime/index.cjs +205 -0
- package/dist/runtime/index.cjs.map +1 -0
- package/dist/runtime/index.d.cts +75 -0
- package/dist/runtime/index.d.ts +75 -0
- package/dist/runtime/index.js +205 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/integration.cjs +423 -0
- package/dist/runtime/integration.cjs.map +1 -0
- package/dist/runtime/integration.d.cts +658 -0
- package/dist/runtime/integration.d.ts +658 -0
- package/dist/runtime/integration.js +423 -0
- package/dist/runtime/integration.js.map +1 -0
- package/dist/storage.cjs +21 -0
- package/dist/storage.cjs.map +1 -0
- package/dist/storage.d.cts +71 -0
- package/dist/storage.d.ts +71 -0
- package/dist/storage.js +21 -0
- package/dist/storage.js.map +1 -0
- package/dist/store-DPwHzGiz.d.cts +28 -0
- package/dist/store-DgdrPCV9.d.ts +28 -0
- package/dist/task-projection-CSorlMws.d.ts +11 -0
- package/dist/task-projection-DKKB_ueb.d.cts +11 -0
- package/examples/standalone.ts +22 -0
- package/package.json +143 -4
|
@@ -0,0 +1,879 @@
|
|
|
1
|
+
type KanbanSuggestionKind = 'item' | 'parent' | 'dependency' | 'area' | 'milestone' | 'decision' | 'session';
|
|
2
|
+
interface KanbanSuggestionQuery {
|
|
3
|
+
kind: KanbanSuggestionKind;
|
|
4
|
+
search?: string;
|
|
5
|
+
limit?: number;
|
|
6
|
+
excludeItemId?: string;
|
|
7
|
+
excludeIds?: string[];
|
|
8
|
+
childKind?: string;
|
|
9
|
+
}
|
|
10
|
+
interface KanbanSuggestion {
|
|
11
|
+
id: string;
|
|
12
|
+
label: string;
|
|
13
|
+
detail?: string;
|
|
14
|
+
status?: KanbanItem['status'];
|
|
15
|
+
archived?: boolean;
|
|
16
|
+
}
|
|
17
|
+
interface KanbanSuggestionPage {
|
|
18
|
+
revision: number;
|
|
19
|
+
items: KanbanSuggestion[];
|
|
20
|
+
hasMore: boolean;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
interface KanbanReferenceTarget {
|
|
24
|
+
boardId: string;
|
|
25
|
+
itemId?: string;
|
|
26
|
+
recordId?: string;
|
|
27
|
+
reference: string;
|
|
28
|
+
scope: KanbanBoard['scope'];
|
|
29
|
+
}
|
|
30
|
+
declare function kanbanReference(board: {
|
|
31
|
+
id: string;
|
|
32
|
+
number?: number;
|
|
33
|
+
}, entity?: {
|
|
34
|
+
id: string;
|
|
35
|
+
number?: number;
|
|
36
|
+
kind?: 'log' | 'decision';
|
|
37
|
+
}): string;
|
|
38
|
+
|
|
39
|
+
interface KanbanArtifactRef {
|
|
40
|
+
name: string;
|
|
41
|
+
ref: string;
|
|
42
|
+
sha256: string;
|
|
43
|
+
bytes: number;
|
|
44
|
+
}
|
|
45
|
+
interface KanbanWorkDefinition {
|
|
46
|
+
expectedRevision?: number;
|
|
47
|
+
workType?: string;
|
|
48
|
+
externalRefs?: KanbanExternalReference[];
|
|
49
|
+
id: string;
|
|
50
|
+
title: string;
|
|
51
|
+
responsibility: string;
|
|
52
|
+
acceptance: string;
|
|
53
|
+
assignee: KanbanPrincipal;
|
|
54
|
+
dependsOn: string[];
|
|
55
|
+
inputs?: Record<string, {
|
|
56
|
+
fromItemId: string;
|
|
57
|
+
output: string;
|
|
58
|
+
}>;
|
|
59
|
+
outputs?: string[];
|
|
60
|
+
}
|
|
61
|
+
interface KanbanWorkPlan {
|
|
62
|
+
schema: 'kanban.plan/1';
|
|
63
|
+
id: string;
|
|
64
|
+
revision: number;
|
|
65
|
+
decisionId?: string;
|
|
66
|
+
rootItemId?: string;
|
|
67
|
+
sealed: boolean;
|
|
68
|
+
items: KanbanWorkDefinition[];
|
|
69
|
+
}
|
|
70
|
+
interface KanbanPublishedPlan extends Omit<KanbanWorkPlan, 'items'> {
|
|
71
|
+
itemIds: string[];
|
|
72
|
+
definitions: Record<string, {
|
|
73
|
+
digest: string;
|
|
74
|
+
inputs: KanbanWorkDefinition['inputs'];
|
|
75
|
+
outputs: string[];
|
|
76
|
+
}>;
|
|
77
|
+
}
|
|
78
|
+
interface KanbanDispatch {
|
|
79
|
+
continuation?: {
|
|
80
|
+
previousDispatchId: string;
|
|
81
|
+
instruction?: string;
|
|
82
|
+
};
|
|
83
|
+
controlCapabilities?: {
|
|
84
|
+
pause: 'boundary' | 'none';
|
|
85
|
+
resume: boolean;
|
|
86
|
+
};
|
|
87
|
+
executionSessionId?: string;
|
|
88
|
+
id: string;
|
|
89
|
+
itemId: string;
|
|
90
|
+
itemRevision: number;
|
|
91
|
+
planId: string;
|
|
92
|
+
planRevision: number;
|
|
93
|
+
principal: KanbanPrincipal;
|
|
94
|
+
definitionDigest: string;
|
|
95
|
+
attempt: number;
|
|
96
|
+
fence: string;
|
|
97
|
+
preparedAt: number;
|
|
98
|
+
outcome: 'prepared' | 'running' | 'unknown' | 'succeeded' | 'failed' | 'cancelled' | 'accepted' | 'rejected';
|
|
99
|
+
inputs: Record<string, KanbanArtifactRef>;
|
|
100
|
+
outputs?: KanbanArtifactRef[];
|
|
101
|
+
code?: string;
|
|
102
|
+
}
|
|
103
|
+
interface KanbanWorkflowState {
|
|
104
|
+
plans: Record<string, KanbanPublishedPlan>;
|
|
105
|
+
dispatches: Record<string, KanbanDispatch>;
|
|
106
|
+
ready: string[];
|
|
107
|
+
completedPlans: string[];
|
|
108
|
+
}
|
|
109
|
+
type KanbanWorkflowCommand = {
|
|
110
|
+
type: 'continue-execution';
|
|
111
|
+
previousDispatchId: string;
|
|
112
|
+
dispatchId: string;
|
|
113
|
+
instruction?: string;
|
|
114
|
+
} | {
|
|
115
|
+
type: 'publish-plan';
|
|
116
|
+
plan: KanbanWorkPlan;
|
|
117
|
+
} | {
|
|
118
|
+
type: 'prepare-dispatch';
|
|
119
|
+
itemId: string;
|
|
120
|
+
dispatchId: string;
|
|
121
|
+
trigger?: 'manual' | 'automatic';
|
|
122
|
+
estimate?: KanbanEstimate;
|
|
123
|
+
} | {
|
|
124
|
+
type: 'observe-execution';
|
|
125
|
+
dispatchId: string;
|
|
126
|
+
fence: string;
|
|
127
|
+
outcome: 'running' | 'unknown' | 'succeeded' | 'failed' | 'cancelled';
|
|
128
|
+
outputs?: KanbanArtifactRef[];
|
|
129
|
+
code?: string;
|
|
130
|
+
executionSessionId?: string;
|
|
131
|
+
controlCapabilities?: {
|
|
132
|
+
pause: 'boundary' | 'none';
|
|
133
|
+
resume: boolean;
|
|
134
|
+
};
|
|
135
|
+
} | {
|
|
136
|
+
type: 'accept-execution';
|
|
137
|
+
dispatchId: string;
|
|
138
|
+
accept: boolean;
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
interface KanbanBoardControl {
|
|
142
|
+
mode: 'automatic' | 'manual';
|
|
143
|
+
paused: boolean;
|
|
144
|
+
controls: Record<string, string>;
|
|
145
|
+
}
|
|
146
|
+
/** Manual mode still honors an explicit per-task run request. */
|
|
147
|
+
declare function boardAllowsStart(board: Pick<KanbanBoard, 'executionControl' | 'lifecycle'>, item?: Pick<KanbanItem, 'launch'>): boolean;
|
|
148
|
+
declare function boardControlPhase(board: Pick<KanbanBoard, 'executionControl' | 'lifecycle'> & {
|
|
149
|
+
items: Array<Pick<KanbanItem, 'id' | 'status' | 'control'>>;
|
|
150
|
+
}): 'automatic' | 'manual' | 'pausing' | 'paused' | 'resuming' | 'error' | 'cancelling' | 'cancelled' | 'waiting-deletion';
|
|
151
|
+
|
|
152
|
+
interface KanbanLaunch {
|
|
153
|
+
mode?: 'automatic' | 'manual';
|
|
154
|
+
startAt: number;
|
|
155
|
+
analysisEpoch?: string;
|
|
156
|
+
requestedAt?: number;
|
|
157
|
+
admittedAt?: number;
|
|
158
|
+
editing?: {
|
|
159
|
+
id: string;
|
|
160
|
+
principal: KanbanPrincipal;
|
|
161
|
+
expiresAt: number;
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
interface KanbanTaskControl {
|
|
165
|
+
id: string;
|
|
166
|
+
dispatchId?: string;
|
|
167
|
+
action: 'pause' | 'resume' | 'cancel';
|
|
168
|
+
state: 'requested' | 'accepted' | 'paused' | 'resumed' | 'cancelled' | 'failed' | 'unknown';
|
|
169
|
+
code?: string;
|
|
170
|
+
}
|
|
171
|
+
interface KanbanTaskIssue {
|
|
172
|
+
id: string;
|
|
173
|
+
attemptId: string;
|
|
174
|
+
type: 'clarification' | 'error';
|
|
175
|
+
resolvedBy?: string;
|
|
176
|
+
}
|
|
177
|
+
type KanbanTaskPhase = 'waiting-start' | 'analyzing' | 'queued' | 'waiting-dependency' | 'preparing' | 'running' | 'cancelling' | 'pausing' | 'paused' | 'resuming' | 'waiting-input' | 'error' | 'review' | 'completed' | 'cancelled' | 'unknown';
|
|
178
|
+
interface KanbanTaskProjection {
|
|
179
|
+
phase: KanbanTaskPhase;
|
|
180
|
+
reason?: string;
|
|
181
|
+
startAt?: number;
|
|
182
|
+
sessionId?: string;
|
|
183
|
+
dispatchId?: string;
|
|
184
|
+
actions: Array<'delete' | 'run' | 'edit' | 'cancel' | 'pause' | 'resume' | 'fix' | 'open-session' | 'resolve' | 'review'>;
|
|
185
|
+
}
|
|
186
|
+
type KanbanTaskCommand = {
|
|
187
|
+
type: 'begin-edit';
|
|
188
|
+
itemId: string;
|
|
189
|
+
editId: string;
|
|
190
|
+
leaseMs: number;
|
|
191
|
+
} | {
|
|
192
|
+
type: 'end-edit';
|
|
193
|
+
itemId: string;
|
|
194
|
+
editId: string;
|
|
195
|
+
} | {
|
|
196
|
+
type: 'save-edit';
|
|
197
|
+
itemId: string;
|
|
198
|
+
editId: string;
|
|
199
|
+
title: string;
|
|
200
|
+
responsibility: string;
|
|
201
|
+
acceptance: string;
|
|
202
|
+
planning: KanbanPlanning;
|
|
203
|
+
launchMode?: 'automatic' | 'manual';
|
|
204
|
+
externalRefs?: KanbanExternalReference[];
|
|
205
|
+
} | {
|
|
206
|
+
type: 'retry-analysis';
|
|
207
|
+
itemId: string;
|
|
208
|
+
retryId: string;
|
|
209
|
+
} | {
|
|
210
|
+
type: 'set-launch-mode';
|
|
211
|
+
itemId: string;
|
|
212
|
+
mode: 'automatic' | 'manual';
|
|
213
|
+
} | {
|
|
214
|
+
type: 'request-run';
|
|
215
|
+
itemId: string;
|
|
216
|
+
} | {
|
|
217
|
+
type: 'admit-item';
|
|
218
|
+
itemId: string;
|
|
219
|
+
trigger: 'manual' | 'automatic';
|
|
220
|
+
} | {
|
|
221
|
+
type: 'report-analysis';
|
|
222
|
+
itemId: string;
|
|
223
|
+
operationId: string;
|
|
224
|
+
status: KanbanAnalysisStatus;
|
|
225
|
+
} | {
|
|
226
|
+
type: 'request-control';
|
|
227
|
+
itemId: string;
|
|
228
|
+
controlId: string;
|
|
229
|
+
action: 'pause' | 'resume' | 'cancel';
|
|
230
|
+
} | {
|
|
231
|
+
type: 'control-receipt';
|
|
232
|
+
itemId: string;
|
|
233
|
+
controlId: string;
|
|
234
|
+
state: KanbanTaskControl['state'];
|
|
235
|
+
code?: string;
|
|
236
|
+
} | {
|
|
237
|
+
type: 'report-issue';
|
|
238
|
+
itemId: string;
|
|
239
|
+
issue: KanbanTaskIssue;
|
|
240
|
+
} | {
|
|
241
|
+
type: 'resolve-issue';
|
|
242
|
+
itemId: string;
|
|
243
|
+
issueId: string;
|
|
244
|
+
attemptId: string;
|
|
245
|
+
resolvedBy: string;
|
|
246
|
+
};
|
|
247
|
+
interface KanbanFixSession {
|
|
248
|
+
code?: string;
|
|
249
|
+
id: string;
|
|
250
|
+
boardId: string;
|
|
251
|
+
itemId: string;
|
|
252
|
+
sessionId: string;
|
|
253
|
+
state: 'clarifying' | 'frozen' | 'accepted' | 'cancelling' | 'cancelled';
|
|
254
|
+
createdItemId?: string;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
interface KanbanSourceRef {
|
|
258
|
+
sessionId: string;
|
|
259
|
+
messageId: string;
|
|
260
|
+
revision: string;
|
|
261
|
+
role: 'user' | 'assistant';
|
|
262
|
+
}
|
|
263
|
+
interface KanbanDiscoveryChange {
|
|
264
|
+
action: 'create' | 'update' | 'link';
|
|
265
|
+
itemId: string;
|
|
266
|
+
title: string;
|
|
267
|
+
responsibility: string;
|
|
268
|
+
acceptance: string;
|
|
269
|
+
eligibleAgentIds?: string[];
|
|
270
|
+
eligiblePrincipals?: KanbanPrincipal[];
|
|
271
|
+
sources: KanbanSourceRef[];
|
|
272
|
+
planning?: KanbanPlanning;
|
|
273
|
+
}
|
|
274
|
+
interface KanbanDiscoveryBatch {
|
|
275
|
+
records?: KanbanRecordInput[];
|
|
276
|
+
runId: string;
|
|
277
|
+
leaseToken: string;
|
|
278
|
+
changes: KanbanDiscoveryChange[];
|
|
279
|
+
checkpoints: Array<{
|
|
280
|
+
sessionId: string;
|
|
281
|
+
revision: string;
|
|
282
|
+
}>;
|
|
283
|
+
autoCreate: boolean;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
interface KanbanText {
|
|
287
|
+
title: string;
|
|
288
|
+
responsibility: string;
|
|
289
|
+
acceptance: string;
|
|
290
|
+
}
|
|
291
|
+
interface KanbanAmendment {
|
|
292
|
+
runId: string;
|
|
293
|
+
id: string;
|
|
294
|
+
fingerprint: string;
|
|
295
|
+
baseRevision: number;
|
|
296
|
+
baseDigest: string;
|
|
297
|
+
proposed: KanbanText;
|
|
298
|
+
proposedBy: KanbanPrincipal;
|
|
299
|
+
sources: KanbanSourceRef[];
|
|
300
|
+
createdAt: number;
|
|
301
|
+
status: 'pending' | 'accepted' | 'rejected';
|
|
302
|
+
reviewedAt?: number;
|
|
303
|
+
reviewedBy?: KanbanPrincipal;
|
|
304
|
+
reason?: string;
|
|
305
|
+
}
|
|
306
|
+
interface KanbanRecordActivity {
|
|
307
|
+
actor?: KanbanPrincipal;
|
|
308
|
+
stage: string;
|
|
309
|
+
result: 'success' | 'failure' | 'cancelled';
|
|
310
|
+
dispatchId?: string;
|
|
311
|
+
code?: string;
|
|
312
|
+
fields?: Record<string, string | number>;
|
|
313
|
+
}
|
|
314
|
+
interface KanbanProjectRecord {
|
|
315
|
+
/** Immutable, host-projected activity; decisions remain in the coordination store. */
|
|
316
|
+
activity?: KanbanRecordActivity;
|
|
317
|
+
externalRefs?: KanbanExternalReference[];
|
|
318
|
+
coordination?: {
|
|
319
|
+
manager: KanbanPrincipal;
|
|
320
|
+
executor?: KanbanPrincipal;
|
|
321
|
+
};
|
|
322
|
+
number?: number;
|
|
323
|
+
originRunId?: string;
|
|
324
|
+
id: string;
|
|
325
|
+
kind: 'log' | 'decision';
|
|
326
|
+
title: string;
|
|
327
|
+
content: string;
|
|
328
|
+
rationale?: string;
|
|
329
|
+
deletedAt?: number;
|
|
330
|
+
status: 'draft' | 'confirmed' | 'rejected' | 'superseded' | 'cancelling' | 'cancelled';
|
|
331
|
+
itemIds: string[];
|
|
332
|
+
sources: KanbanSourceRef[];
|
|
333
|
+
author: KanbanPrincipal;
|
|
334
|
+
origin: 'manual' | 'flow';
|
|
335
|
+
revision: number;
|
|
336
|
+
createdAt: number;
|
|
337
|
+
updatedAt: number;
|
|
338
|
+
reviewedBy?: KanbanPrincipal;
|
|
339
|
+
supersedes?: string;
|
|
340
|
+
supersededBy?: string;
|
|
341
|
+
}
|
|
342
|
+
type KanbanRecordInput = Pick<KanbanProjectRecord, 'id' | 'kind' | 'title' | 'content' | 'rationale' | 'itemIds' | 'sources' | 'supersedes' | 'coordination' | 'externalRefs'>;
|
|
343
|
+
type KanbanRecordSummary = Omit<KanbanProjectRecord, 'content' | 'rationale' | 'sources'> & {
|
|
344
|
+
sessionIds: string[];
|
|
345
|
+
};
|
|
346
|
+
interface KanbanRecordQuery {
|
|
347
|
+
includeDeleted?: boolean;
|
|
348
|
+
kind?: KanbanProjectRecord['kind'];
|
|
349
|
+
itemId?: string;
|
|
350
|
+
status?: KanbanProjectRecord['status'];
|
|
351
|
+
limit?: number;
|
|
352
|
+
cursor?: string;
|
|
353
|
+
}
|
|
354
|
+
interface KanbanRecordPage {
|
|
355
|
+
revision: number;
|
|
356
|
+
total: number;
|
|
357
|
+
items: KanbanRecordSummary[];
|
|
358
|
+
nextCursor?: string;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
interface KanbanActor {
|
|
362
|
+
kind?: KanbanPrincipal['kind'];
|
|
363
|
+
id?: string;
|
|
364
|
+
agentId?: string;
|
|
365
|
+
sessionId?: string;
|
|
366
|
+
taskId?: string;
|
|
367
|
+
}
|
|
368
|
+
interface KanbanEstimate {
|
|
369
|
+
complexity: number;
|
|
370
|
+
workUnits: number;
|
|
371
|
+
durationMs: number;
|
|
372
|
+
confidence: 'low' | 'medium' | 'high';
|
|
373
|
+
}
|
|
374
|
+
interface KanbanPolicy {
|
|
375
|
+
maxInProgressPerAssignee?: number;
|
|
376
|
+
requireEstimate?: boolean;
|
|
377
|
+
review?: 'independent' | 'assignee';
|
|
378
|
+
maxReady?: number;
|
|
379
|
+
maxInProgress?: number;
|
|
380
|
+
maxInProgressPerAgent?: number;
|
|
381
|
+
archiveAfterMs?: number;
|
|
382
|
+
backlogReviewMs?: number;
|
|
383
|
+
claimTimeoutMs: number;
|
|
384
|
+
leaseMs: number;
|
|
385
|
+
progressTimeoutMs: number;
|
|
386
|
+
transferTimeoutMs: number;
|
|
387
|
+
maxComplexity: number;
|
|
388
|
+
maxWorkUnits: number;
|
|
389
|
+
maxDurationMs: number;
|
|
390
|
+
escalationSessionIds: string[];
|
|
391
|
+
}
|
|
392
|
+
interface KanbanParticipant {
|
|
393
|
+
sessionId: string;
|
|
394
|
+
agentId?: string;
|
|
395
|
+
roles: Array<'creator' | 'owner' | 'consultant' | 'reviewer' | 'observer' | 'escalation'>;
|
|
396
|
+
joinedAt: number;
|
|
397
|
+
subscribed: boolean;
|
|
398
|
+
}
|
|
399
|
+
interface KanbanAssignment extends KanbanActor {
|
|
400
|
+
principalId?: string;
|
|
401
|
+
token: string;
|
|
402
|
+
leaseUntil: number;
|
|
403
|
+
claimedAt: number;
|
|
404
|
+
}
|
|
405
|
+
interface KanbanItem {
|
|
406
|
+
launch?: KanbanLaunch;
|
|
407
|
+
analysis?: KanbanAnalysisStatus;
|
|
408
|
+
control?: KanbanTaskControl;
|
|
409
|
+
issues?: KanbanTaskIssue[];
|
|
410
|
+
deletedAt?: number;
|
|
411
|
+
number?: number;
|
|
412
|
+
origin?: {
|
|
413
|
+
kind: 'direct' | 'discovery';
|
|
414
|
+
principal: KanbanPrincipal;
|
|
415
|
+
runId?: string;
|
|
416
|
+
fingerprint?: string;
|
|
417
|
+
};
|
|
418
|
+
amendments?: KanbanAmendment[];
|
|
419
|
+
id: string;
|
|
420
|
+
title: string;
|
|
421
|
+
responsibility: string;
|
|
422
|
+
acceptance: string;
|
|
423
|
+
eligibleAgentIds?: string[];
|
|
424
|
+
eligiblePrincipals?: KanbanPrincipal[];
|
|
425
|
+
status: 'proposed' | 'backlog' | 'open' | 'claimed' | 'review' | 'completed' | 'cancelled';
|
|
426
|
+
revision: number;
|
|
427
|
+
createdAt: number;
|
|
428
|
+
readyAt: number;
|
|
429
|
+
updatedAt: number;
|
|
430
|
+
progressAt?: number;
|
|
431
|
+
owner?: KanbanAssignment;
|
|
432
|
+
estimate?: KanbanEstimate;
|
|
433
|
+
workUnits: number;
|
|
434
|
+
resultRef?: string;
|
|
435
|
+
transfer?: {
|
|
436
|
+
id: string;
|
|
437
|
+
agentId?: string;
|
|
438
|
+
target?: KanbanPrincipal;
|
|
439
|
+
requestedAt: number;
|
|
440
|
+
expiresAt: number;
|
|
441
|
+
};
|
|
442
|
+
participants: KanbanParticipant[];
|
|
443
|
+
sources?: KanbanSourceRef[];
|
|
444
|
+
externalRefs?: KanbanExternalReference[];
|
|
445
|
+
blocked?: {
|
|
446
|
+
reason: string;
|
|
447
|
+
at: number;
|
|
448
|
+
};
|
|
449
|
+
planning?: KanbanPlanning;
|
|
450
|
+
closedAt?: number;
|
|
451
|
+
restoredAt?: number;
|
|
452
|
+
closureReason?: string;
|
|
453
|
+
}
|
|
454
|
+
interface KanbanBoard {
|
|
455
|
+
lifecycle?: {
|
|
456
|
+
operationId: string;
|
|
457
|
+
intent: 'cancel' | 'delete';
|
|
458
|
+
mode: 'drain' | 'cancel';
|
|
459
|
+
phase: 'waiting' | 'ready' | 'blocked';
|
|
460
|
+
code?: string;
|
|
461
|
+
};
|
|
462
|
+
/** Logical deletion retains audit, Session and resource associations. */
|
|
463
|
+
deletedAt?: number;
|
|
464
|
+
executionControl?: KanbanBoardControl;
|
|
465
|
+
automation?: KanbanAutomationSettings;
|
|
466
|
+
number?: number;
|
|
467
|
+
id: string;
|
|
468
|
+
scope: {
|
|
469
|
+
kind: 'system';
|
|
470
|
+
} | {
|
|
471
|
+
kind: 'project';
|
|
472
|
+
projectId: string;
|
|
473
|
+
} | {
|
|
474
|
+
kind: 'collection';
|
|
475
|
+
namespace: string;
|
|
476
|
+
id: string;
|
|
477
|
+
};
|
|
478
|
+
title: string;
|
|
479
|
+
policy: KanbanPolicy;
|
|
480
|
+
agents?: Array<{
|
|
481
|
+
agentId: string;
|
|
482
|
+
responsibility: string;
|
|
483
|
+
}>;
|
|
484
|
+
members?: KanbanMember[];
|
|
485
|
+
workTypes?: KanbanWorkType[];
|
|
486
|
+
defaultWorkType?: string;
|
|
487
|
+
columns?: KanbanColumn[];
|
|
488
|
+
notifications?: KanbanNotificationPolicy;
|
|
489
|
+
revision: number;
|
|
490
|
+
items: KanbanItem[];
|
|
491
|
+
participants: KanbanParticipant[];
|
|
492
|
+
}
|
|
493
|
+
interface KanbanEvent {
|
|
494
|
+
sequence: number;
|
|
495
|
+
boardId: string;
|
|
496
|
+
itemId?: string;
|
|
497
|
+
operationId: string;
|
|
498
|
+
at: number;
|
|
499
|
+
kind: string;
|
|
500
|
+
actor: KanbanActor;
|
|
501
|
+
recipients: string[];
|
|
502
|
+
data: {
|
|
503
|
+
status?: KanbanItem['status'];
|
|
504
|
+
reference?: KanbanExternalReference;
|
|
505
|
+
code?: string;
|
|
506
|
+
itemTitle?: string;
|
|
507
|
+
dispatchId?: string;
|
|
508
|
+
readyItemIds?: string[];
|
|
509
|
+
planId?: string;
|
|
510
|
+
recordId?: string;
|
|
511
|
+
recordIds?: string[];
|
|
512
|
+
itemIds?: string[];
|
|
513
|
+
planning?: KanbanPlanning;
|
|
514
|
+
message?: string;
|
|
515
|
+
reason?: string;
|
|
516
|
+
resultRef?: string;
|
|
517
|
+
estimate?: KanbanEstimate;
|
|
518
|
+
workUnits?: number;
|
|
519
|
+
};
|
|
520
|
+
}
|
|
521
|
+
type KanbanCommand = KanbanTaskCommand | KanbanWorkflowCommand | {
|
|
522
|
+
type: 'delete-item';
|
|
523
|
+
itemId: string;
|
|
524
|
+
} | {
|
|
525
|
+
type: 'request-record-cancellation';
|
|
526
|
+
recordId: string;
|
|
527
|
+
} | {
|
|
528
|
+
type: 'cancel-record';
|
|
529
|
+
recordId: string;
|
|
530
|
+
} | {
|
|
531
|
+
type: 'delete-record';
|
|
532
|
+
recordId: string;
|
|
533
|
+
} | {
|
|
534
|
+
type: 'request-board-stop';
|
|
535
|
+
controlId: string;
|
|
536
|
+
intent: 'cancel' | 'delete';
|
|
537
|
+
mode: 'drain' | 'cancel';
|
|
538
|
+
} | {
|
|
539
|
+
type: 'observe-board-stop';
|
|
540
|
+
controlId: string;
|
|
541
|
+
phase: 'waiting' | 'ready' | 'blocked';
|
|
542
|
+
code?: string;
|
|
543
|
+
} | {
|
|
544
|
+
type: 'delete-board';
|
|
545
|
+
} | {
|
|
546
|
+
type: 'set-board-control';
|
|
547
|
+
mode?: 'automatic' | 'manual';
|
|
548
|
+
paused?: boolean;
|
|
549
|
+
} | {
|
|
550
|
+
type: 'edit-item';
|
|
551
|
+
itemId: string;
|
|
552
|
+
title: string;
|
|
553
|
+
responsibility: string;
|
|
554
|
+
acceptance: string;
|
|
555
|
+
} | {
|
|
556
|
+
type: 'configure-automation';
|
|
557
|
+
settings: KanbanAutomationSettings;
|
|
558
|
+
} | {
|
|
559
|
+
type: 'review-amendment';
|
|
560
|
+
itemId: string;
|
|
561
|
+
amendmentId: string;
|
|
562
|
+
accept: boolean;
|
|
563
|
+
reason?: string;
|
|
564
|
+
} | {
|
|
565
|
+
type: 'append-record';
|
|
566
|
+
record: KanbanRecordInput;
|
|
567
|
+
} | {
|
|
568
|
+
type: 'review-record';
|
|
569
|
+
recordId: string;
|
|
570
|
+
accept: boolean;
|
|
571
|
+
} | {
|
|
572
|
+
type: 'link-record';
|
|
573
|
+
recordId: string;
|
|
574
|
+
itemId: string;
|
|
575
|
+
} | {
|
|
576
|
+
type: 'create-item';
|
|
577
|
+
item: Pick<KanbanItem, 'id' | 'title' | 'responsibility' | 'acceptance' | 'eligibleAgentIds' | 'eligiblePrincipals' | 'externalRefs'>;
|
|
578
|
+
planning?: KanbanPlanning;
|
|
579
|
+
stage?: 'backlog' | 'open';
|
|
580
|
+
launch?: {
|
|
581
|
+
mode?: 'automatic' | 'manual';
|
|
582
|
+
paused?: boolean;
|
|
583
|
+
};
|
|
584
|
+
} | {
|
|
585
|
+
type: 'register-session';
|
|
586
|
+
itemId?: string;
|
|
587
|
+
sessionId: string;
|
|
588
|
+
agentId?: string;
|
|
589
|
+
role: KanbanParticipant['roles'][number];
|
|
590
|
+
subscribed: boolean;
|
|
591
|
+
} | {
|
|
592
|
+
type: 'claim';
|
|
593
|
+
itemId: string;
|
|
594
|
+
estimate?: KanbanEstimate;
|
|
595
|
+
} | {
|
|
596
|
+
type: 'renew';
|
|
597
|
+
itemId: string;
|
|
598
|
+
token: string;
|
|
599
|
+
} | {
|
|
600
|
+
type: 'progress';
|
|
601
|
+
itemId: string;
|
|
602
|
+
token: string;
|
|
603
|
+
workUnits: number;
|
|
604
|
+
estimate?: KanbanEstimate;
|
|
605
|
+
} | {
|
|
606
|
+
type: 'request-transfer';
|
|
607
|
+
itemId: string;
|
|
608
|
+
token: string;
|
|
609
|
+
agentId?: string;
|
|
610
|
+
target?: KanbanPrincipal;
|
|
611
|
+
} | {
|
|
612
|
+
type: 'accept-transfer';
|
|
613
|
+
itemId: string;
|
|
614
|
+
estimate?: KanbanEstimate;
|
|
615
|
+
} | {
|
|
616
|
+
type: 'submit';
|
|
617
|
+
itemId: string;
|
|
618
|
+
token: string;
|
|
619
|
+
resultRef: string;
|
|
620
|
+
} | {
|
|
621
|
+
type: 'review';
|
|
622
|
+
itemId: string;
|
|
623
|
+
accept: boolean;
|
|
624
|
+
} | {
|
|
625
|
+
type: 'message';
|
|
626
|
+
itemId?: string;
|
|
627
|
+
message: string;
|
|
628
|
+
recipientSessionIds: string[];
|
|
629
|
+
} | {
|
|
630
|
+
type: 'scan';
|
|
631
|
+
} | {
|
|
632
|
+
type: 'apply-discovery';
|
|
633
|
+
batch: KanbanDiscoveryBatch;
|
|
634
|
+
} | {
|
|
635
|
+
type: 'publish-proposal';
|
|
636
|
+
itemId: string;
|
|
637
|
+
stage?: 'backlog' | 'open';
|
|
638
|
+
} | {
|
|
639
|
+
type: 'plan-item';
|
|
640
|
+
itemId: string;
|
|
641
|
+
planning: KanbanPlanning;
|
|
642
|
+
} | {
|
|
643
|
+
type: 'set-stage';
|
|
644
|
+
itemId: string;
|
|
645
|
+
stage: 'backlog' | 'open';
|
|
646
|
+
} | {
|
|
647
|
+
type: 'cancel-item';
|
|
648
|
+
itemId: string;
|
|
649
|
+
reason: string;
|
|
650
|
+
} | {
|
|
651
|
+
type: 'close-plan';
|
|
652
|
+
itemId: string;
|
|
653
|
+
resultRef: string;
|
|
654
|
+
} | {
|
|
655
|
+
type: 'archive-items';
|
|
656
|
+
itemIds: string[];
|
|
657
|
+
reason: string;
|
|
658
|
+
} | {
|
|
659
|
+
type: 'restore-item';
|
|
660
|
+
itemId: string;
|
|
661
|
+
} | {
|
|
662
|
+
type: 'release-item';
|
|
663
|
+
itemId: string;
|
|
664
|
+
token: string;
|
|
665
|
+
next: 'backlog' | 'cancelled';
|
|
666
|
+
reason: string;
|
|
667
|
+
} | {
|
|
668
|
+
type: 'link-reference';
|
|
669
|
+
itemId: string;
|
|
670
|
+
reference: KanbanExternalReference;
|
|
671
|
+
} | {
|
|
672
|
+
type: 'block-item';
|
|
673
|
+
itemId: string;
|
|
674
|
+
reason: string;
|
|
675
|
+
token?: string;
|
|
676
|
+
} | {
|
|
677
|
+
type: 'unblock-item';
|
|
678
|
+
itemId: string;
|
|
679
|
+
token?: string;
|
|
680
|
+
};
|
|
681
|
+
interface KanbanRequest {
|
|
682
|
+
operationId: string;
|
|
683
|
+
expectedRevision: number;
|
|
684
|
+
command: KanbanCommand;
|
|
685
|
+
}
|
|
686
|
+
/** Board directory metadata with item labels; coordination bodies require read()/item(). */
|
|
687
|
+
type KanbanBoardSummary = Omit<KanbanBoard, 'items'> & {
|
|
688
|
+
executionPhase?: ReturnType<typeof boardControlPhase>;
|
|
689
|
+
items: Array<Pick<KanbanItem, 'id' | 'title' | 'number'>>;
|
|
690
|
+
};
|
|
691
|
+
interface KanbanService {
|
|
692
|
+
workflow(boardId: string): Promise<KanbanWorkflowState>;
|
|
693
|
+
resolve(reference: string): Promise<KanbanReferenceTarget>;
|
|
694
|
+
suggest(boardId: string, query: KanbanSuggestionQuery): Promise<KanbanSuggestionPage>;
|
|
695
|
+
records(boardId: string, query?: KanbanRecordQuery): Promise<KanbanRecordPage>;
|
|
696
|
+
record(boardId: string, recordId: string): Promise<KanbanProjectRecord>;
|
|
697
|
+
currentPrincipal(): Promise<KanbanPrincipal>;
|
|
698
|
+
create(board: KanbanBoardInput): Promise<KanbanBoard>;
|
|
699
|
+
/** Full coordination snapshot; user-facing lists should use query(). */
|
|
700
|
+
read(boardId: string): Promise<KanbanBoard>;
|
|
701
|
+
list(): Promise<KanbanBoard[]>;
|
|
702
|
+
catalog(): Promise<KanbanBoardSummary[]>;
|
|
703
|
+
execute(boardId: string, request: KanbanRequest): Promise<KanbanBoard>;
|
|
704
|
+
events(boardId: string, afterSequence?: number, limit?: number): Promise<KanbanEvent[]>;
|
|
705
|
+
related(sessionId: string): Promise<KanbanBoard[]>;
|
|
706
|
+
query(boardId: string, query?: KanbanItemQuery): Promise<KanbanItemPage>;
|
|
707
|
+
item(boardId: string, itemId: string): Promise<{
|
|
708
|
+
item: KanbanItem;
|
|
709
|
+
task?: KanbanTaskProjection;
|
|
710
|
+
archive?: Omit<KanbanArchivedItem, 'item'>;
|
|
711
|
+
}>;
|
|
712
|
+
overview(boardId: string): Promise<KanbanOverview>;
|
|
713
|
+
scan(): Promise<void>;
|
|
714
|
+
}
|
|
715
|
+
type KanbanBoardInput = Pick<KanbanBoard, 'id' | 'scope' | 'title' | 'agents' | 'members' | 'workTypes' | 'defaultWorkType' | 'columns' | 'notifications'> & {
|
|
716
|
+
policy?: Partial<KanbanPolicy>;
|
|
717
|
+
};
|
|
718
|
+
|
|
719
|
+
interface KanbanPrincipal {
|
|
720
|
+
kind: 'agent' | 'human' | 'service';
|
|
721
|
+
id: string;
|
|
722
|
+
}
|
|
723
|
+
interface KanbanMember extends KanbanPrincipal {
|
|
724
|
+
responsibility: string;
|
|
725
|
+
roles?: Array<'worker' | 'reviewer' | 'coordinator'>;
|
|
726
|
+
}
|
|
727
|
+
interface KanbanWorkType {
|
|
728
|
+
id: string;
|
|
729
|
+
label: string;
|
|
730
|
+
rank: number;
|
|
731
|
+
executable: boolean;
|
|
732
|
+
}
|
|
733
|
+
interface KanbanColumn {
|
|
734
|
+
id: string;
|
|
735
|
+
label: string;
|
|
736
|
+
states: KanbanItem['status'][];
|
|
737
|
+
}
|
|
738
|
+
interface KanbanNotificationPolicy {
|
|
739
|
+
rules?: Record<string, 'info' | 'error' | 'none'>;
|
|
740
|
+
}
|
|
741
|
+
declare const DEFAULT_KANBAN_WORK_TYPES: readonly KanbanWorkType[];
|
|
742
|
+
interface KanbanExternalReference {
|
|
743
|
+
system: string;
|
|
744
|
+
id: string;
|
|
745
|
+
revision?: string;
|
|
746
|
+
}
|
|
747
|
+
/** A composite work item delegates execution to its children. */
|
|
748
|
+
declare function executableWorkItem(board: Pick<KanbanBoard, 'workTypes' | 'defaultWorkType'>, item: {
|
|
749
|
+
planning?: {
|
|
750
|
+
kind: string;
|
|
751
|
+
execution?: 'direct' | 'children';
|
|
752
|
+
};
|
|
753
|
+
}): boolean;
|
|
754
|
+
|
|
755
|
+
interface KanbanAutomationSettings {
|
|
756
|
+
preparation?: KanbanExternalReference;
|
|
757
|
+
preparationOptions?: Record<string, string>;
|
|
758
|
+
enabled: boolean;
|
|
759
|
+
planner: KanbanExternalReference;
|
|
760
|
+
executor: KanbanExternalReference;
|
|
761
|
+
coordinator: KanbanPrincipal;
|
|
762
|
+
worker: KanbanPrincipal;
|
|
763
|
+
autoAccept: boolean;
|
|
764
|
+
}
|
|
765
|
+
interface KanbanAutomationOption {
|
|
766
|
+
name: string;
|
|
767
|
+
label: string;
|
|
768
|
+
defaultValue?: string;
|
|
769
|
+
choices?: Array<{
|
|
770
|
+
value: string;
|
|
771
|
+
label: string;
|
|
772
|
+
}>;
|
|
773
|
+
}
|
|
774
|
+
interface KanbanAutomationTarget {
|
|
775
|
+
reference: KanbanExternalReference;
|
|
776
|
+
label: string;
|
|
777
|
+
options?: KanbanAutomationOption[];
|
|
778
|
+
}
|
|
779
|
+
interface KanbanAutomationCatalog {
|
|
780
|
+
preparations?: KanbanAutomationTarget[];
|
|
781
|
+
targets: KanbanAutomationTarget[];
|
|
782
|
+
coordinator: KanbanPrincipal;
|
|
783
|
+
worker: KanbanPrincipal;
|
|
784
|
+
}
|
|
785
|
+
interface KanbanAnalysisStatus {
|
|
786
|
+
itemId: string;
|
|
787
|
+
state: 'analyzing' | 'ready' | 'clarification' | 'failed' | 'unknown';
|
|
788
|
+
reason?: string;
|
|
789
|
+
code?: string;
|
|
790
|
+
dependencies?: string[];
|
|
791
|
+
}
|
|
792
|
+
declare function sameAutomationBinding(left?: KanbanAutomationSettings, right?: KanbanAutomationSettings): boolean;
|
|
793
|
+
|
|
794
|
+
interface KanbanPlanning {
|
|
795
|
+
kind: string;
|
|
796
|
+
execution?: 'direct' | 'children';
|
|
797
|
+
dueAt?: number;
|
|
798
|
+
parentId?: string;
|
|
799
|
+
area?: string;
|
|
800
|
+
milestone?: string;
|
|
801
|
+
priority: number;
|
|
802
|
+
dependencies: string[];
|
|
803
|
+
references: string[];
|
|
804
|
+
}
|
|
805
|
+
interface KanbanItemSummary {
|
|
806
|
+
deletedAt?: number;
|
|
807
|
+
launch?: KanbanLaunch;
|
|
808
|
+
analysis?: KanbanAnalysisStatus;
|
|
809
|
+
control?: KanbanTaskControl;
|
|
810
|
+
issues?: KanbanTaskIssue[];
|
|
811
|
+
blocked?: KanbanItem['blocked'];
|
|
812
|
+
task?: KanbanTaskProjection;
|
|
813
|
+
number?: number;
|
|
814
|
+
discoveryFingerprint?: string;
|
|
815
|
+
pendingAmendments?: number;
|
|
816
|
+
id: string;
|
|
817
|
+
title: string;
|
|
818
|
+
status: KanbanItem['status'];
|
|
819
|
+
revision: number;
|
|
820
|
+
createdAt: number;
|
|
821
|
+
updatedAt: number;
|
|
822
|
+
externalRefs?: KanbanExternalReference[];
|
|
823
|
+
planning: KanbanPlanning;
|
|
824
|
+
sessionIds: string[];
|
|
825
|
+
closedAt?: number;
|
|
826
|
+
archivedAt?: number;
|
|
827
|
+
archiveReason?: string;
|
|
828
|
+
progress?: {
|
|
829
|
+
total: number;
|
|
830
|
+
completed: number;
|
|
831
|
+
cancelled: number;
|
|
832
|
+
inProgress: number;
|
|
833
|
+
};
|
|
834
|
+
}
|
|
835
|
+
interface KanbanArchivedItem {
|
|
836
|
+
item: KanbanItem;
|
|
837
|
+
archivedAt: number;
|
|
838
|
+
reason: string;
|
|
839
|
+
}
|
|
840
|
+
interface KanbanItemQuery {
|
|
841
|
+
includeDeleted?: boolean;
|
|
842
|
+
phase?: KanbanTaskPhase;
|
|
843
|
+
view?: 'ready' | 'backlog' | 'in-progress' | 'review' | 'closed' | 'proposed' | 'archive' | 'all';
|
|
844
|
+
area?: string;
|
|
845
|
+
milestone?: string;
|
|
846
|
+
parentId?: string;
|
|
847
|
+
kind?: KanbanPlanning['kind'];
|
|
848
|
+
reference?: Pick<KanbanExternalReference, 'system' | 'id'>;
|
|
849
|
+
sessionId?: string;
|
|
850
|
+
search?: string;
|
|
851
|
+
limit?: number;
|
|
852
|
+
cursor?: string;
|
|
853
|
+
}
|
|
854
|
+
interface KanbanItemPage {
|
|
855
|
+
revision: number;
|
|
856
|
+
total: number;
|
|
857
|
+
items: KanbanItemSummary[];
|
|
858
|
+
nextCursor?: string;
|
|
859
|
+
}
|
|
860
|
+
interface KanbanOverview {
|
|
861
|
+
revision: number;
|
|
862
|
+
visible: number;
|
|
863
|
+
active: number;
|
|
864
|
+
archived: number;
|
|
865
|
+
ready: number;
|
|
866
|
+
inProgress: number;
|
|
867
|
+
backlog: number;
|
|
868
|
+
proposed: number;
|
|
869
|
+
closed: number;
|
|
870
|
+
dueForReview: number;
|
|
871
|
+
limits: {
|
|
872
|
+
ready: number;
|
|
873
|
+
inProgress: number;
|
|
874
|
+
perAgent: number;
|
|
875
|
+
perAssignee: number;
|
|
876
|
+
};
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
export { type KanbanTaskIssue as $, type KanbanLaunch as A, type KanbanMember as B, type KanbanNotificationPolicy as C, DEFAULT_KANBAN_WORK_TYPES as D, type KanbanOverview as E, type KanbanParticipant as F, type KanbanPlanning as G, type KanbanPolicy as H, type KanbanPrincipal as I, type KanbanProjectRecord as J, type KanbanActor as K, type KanbanPublishedPlan as L, type KanbanRecordActivity as M, type KanbanRecordInput as N, type KanbanRecordPage as O, type KanbanRecordQuery as P, type KanbanRecordSummary as Q, type KanbanReferenceTarget as R, type KanbanRequest as S, type KanbanService as T, type KanbanSourceRef as U, type KanbanSuggestion as V, type KanbanSuggestionKind as W, type KanbanSuggestionPage as X, type KanbanSuggestionQuery as Y, type KanbanTaskCommand as Z, type KanbanTaskControl as _, type KanbanAmendment as a, type KanbanTaskPhase as a0, type KanbanTaskProjection as a1, type KanbanText as a2, type KanbanWorkDefinition as a3, type KanbanWorkPlan as a4, type KanbanWorkType as a5, type KanbanWorkflowCommand as a6, type KanbanWorkflowState as a7, boardAllowsStart as a8, boardControlPhase as a9, executableWorkItem as aa, kanbanReference as ab, sameAutomationBinding as ac, type KanbanAnalysisStatus as b, type KanbanArchivedItem as c, type KanbanArtifactRef as d, type KanbanAssignment as e, type KanbanAutomationCatalog as f, type KanbanAutomationOption as g, type KanbanAutomationSettings as h, type KanbanAutomationTarget as i, type KanbanBoard as j, type KanbanBoardControl as k, type KanbanBoardInput as l, type KanbanBoardSummary as m, type KanbanColumn as n, type KanbanCommand as o, type KanbanDiscoveryBatch as p, type KanbanDiscoveryChange as q, type KanbanDispatch as r, type KanbanEstimate as s, type KanbanEvent as t, type KanbanExternalReference as u, type KanbanFixSession as v, type KanbanItem as w, type KanbanItemPage as x, type KanbanItemQuery as y, type KanbanItemSummary as z };
|