@lumea-labs/orchestrator 0.1.0 → 0.1.1
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/dist/index.d.ts +1 -0
- package/dist/orchestrator-document.d.ts +2 -2
- package/dist/orchestrator-document.js +2 -1
- package/dist/plan-detail.d.ts +6 -6
- package/dist/plan-detail.js +214 -156
- package/dist/plan-graph.d.ts +2 -2
- package/dist/plan-graph.js +178 -119
- package/dist/plan-node-detail.d.ts +4 -4
- package/dist/plan-node-detail.js +177 -125
- package/dist/plan-task-detail.d.ts +2 -2
- package/dist/plan-task-detail.js +282 -172
- package/dist/run-kanban-filter-menu.d.ts +3 -2
- package/dist/run-kanban-filter-menu.js +96 -77
- package/dist/run-kanban.d.ts +3 -3
- package/dist/run-kanban.js +93 -79
- package/dist/swarm-agent-badge.d.ts +2 -2
- package/dist/swarm-agent-badge.js +21 -18
- package/dist/swarm-run-activity.d.ts +2 -2
- package/dist/swarm-run-activity.js +150 -95
- package/dist/swarm-run-card.d.ts +2 -2
- package/dist/swarm-run-card.js +76 -55
- package/dist/swarm-run-detail.d.ts +2 -2
- package/dist/swarm-run-detail.js +415 -310
- package/dist/swarm-run-list.d.ts +2 -2
- package/dist/swarm-run-list.js +37 -27
- package/dist/swarm-run-row.d.ts +2 -2
- package/dist/swarm-run-row.js +82 -72
- package/dist/swarm-skeletons.d.ts +3 -3
- package/dist/swarm-skeletons.js +65 -16
- package/dist/swarm-status-bar.d.ts +2 -2
- package/dist/swarm-status-bar.js +62 -44
- package/dist/swarm-status-pill.d.ts +2 -2
- package/dist/swarm-status-pill.js +14 -11
- package/dist/swarm-timeline.d.ts +2 -2
- package/dist/swarm-timeline.js +284 -225
- package/dist/task-workspace-sidebar.d.ts +2 -2
- package/dist/task-workspace-sidebar.js +145 -113
- package/package.json +1 -1
package/dist/plan-node-detail.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
3
|
import { useMemo } from "react";
|
|
3
4
|
import {
|
|
4
5
|
ArrowRight,
|
|
@@ -28,30 +29,38 @@ function PlanCheckpointDetail({
|
|
|
28
29
|
const L = useMergedLabels(labels);
|
|
29
30
|
const after = checkpoint.afterTasks ?? [];
|
|
30
31
|
const blocks = checkpoint.blocksTasks ?? [];
|
|
31
|
-
return /* @__PURE__ */
|
|
32
|
+
return /* @__PURE__ */ jsxs(
|
|
32
33
|
Frame,
|
|
33
34
|
{
|
|
34
35
|
tone: CHECKPOINT_TONE,
|
|
35
36
|
kind: L.checkpoint,
|
|
36
|
-
icon: /* @__PURE__ */
|
|
37
|
+
icon: /* @__PURE__ */ jsx(Hourglass, { className: "size-3.5", "aria-hidden": true }),
|
|
37
38
|
name: checkpoint.name,
|
|
38
39
|
headerTrailing,
|
|
39
40
|
actionsSlot,
|
|
40
|
-
className
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
41
|
+
className,
|
|
42
|
+
children: [
|
|
43
|
+
checkpoint.message ? /* @__PURE__ */ jsxs(Section, { children: [
|
|
44
|
+
/* @__PURE__ */ jsx(Kicker, { children: "review prompt" }),
|
|
45
|
+
/* @__PURE__ */ jsx("p", { className: "mt-1 font-body text-[13px] leading-[1.55] text-p-ink-2", children: checkpoint.message })
|
|
46
|
+
] }) : null,
|
|
47
|
+
/* @__PURE__ */ jsxs(MetaGrid, { children: [
|
|
48
|
+
/* @__PURE__ */ jsx(Cell, { label: "kind", children: /* @__PURE__ */ jsx(ChipText, { tone: CHECKPOINT_TONE, children: L.checkpoint }) }),
|
|
49
|
+
/* @__PURE__ */ jsx(Cell, { label: "gates", children: /* @__PURE__ */ jsx("span", { className: "font-mono text-[10.5px] uppercase tracking-[0.14em] text-p-ink", children: "human review" }) })
|
|
50
|
+
] }),
|
|
51
|
+
/* @__PURE__ */ jsx(
|
|
52
|
+
RelatedSections,
|
|
53
|
+
{
|
|
54
|
+
after,
|
|
55
|
+
blocks,
|
|
56
|
+
runtimeByTitle,
|
|
57
|
+
plan,
|
|
58
|
+
onOpenRelated,
|
|
59
|
+
L
|
|
60
|
+
}
|
|
61
|
+
)
|
|
62
|
+
]
|
|
63
|
+
}
|
|
55
64
|
);
|
|
56
65
|
}
|
|
57
66
|
function PlanQualityGateDetail({
|
|
@@ -67,30 +76,41 @@ function PlanQualityGateDetail({
|
|
|
67
76
|
const L = useMergedLabels(labels);
|
|
68
77
|
const after = gate.afterTasks ?? [];
|
|
69
78
|
const blocks = gate.blocksTasks ?? [];
|
|
70
|
-
return /* @__PURE__ */
|
|
79
|
+
return /* @__PURE__ */ jsxs(
|
|
71
80
|
Frame,
|
|
72
81
|
{
|
|
73
82
|
tone: GATE_TONE,
|
|
74
83
|
kind: L.qualityGate,
|
|
75
|
-
icon: /* @__PURE__ */
|
|
84
|
+
icon: /* @__PURE__ */ jsx(ShieldCheck, { className: "size-3.5", "aria-hidden": true }),
|
|
76
85
|
name: gate.name,
|
|
77
86
|
headerTrailing,
|
|
78
87
|
actionsSlot,
|
|
79
|
-
className
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
88
|
+
className,
|
|
89
|
+
children: [
|
|
90
|
+
gate.condition ? /* @__PURE__ */ jsxs(Section, { children: [
|
|
91
|
+
/* @__PURE__ */ jsx(Kicker, { children: "condition" }),
|
|
92
|
+
/* @__PURE__ */ jsx("p", { className: "mt-1 font-body text-[13px] leading-[1.55] text-p-ink-2", children: gate.condition })
|
|
93
|
+
] }) : null,
|
|
94
|
+
/* @__PURE__ */ jsxs(MetaGrid, { children: [
|
|
95
|
+
/* @__PURE__ */ jsx(Cell, { label: L.qualityMinScore, children: typeof gate.minScore === "number" ? /* @__PURE__ */ jsxs("span", { className: "font-display text-[16px] font-bold tabular-nums text-p-ink", children: [
|
|
96
|
+
gate.minScore,
|
|
97
|
+
/* @__PURE__ */ jsx("span", { className: "ml-0.5 font-mono text-[10px] font-bold uppercase tracking-[0.14em] text-p-ink-3", children: "/10" })
|
|
98
|
+
] }) : /* @__PURE__ */ jsx(Dash, {}) }),
|
|
99
|
+
/* @__PURE__ */ jsx(Cell, { label: L.qualityRequireAll, children: /* @__PURE__ */ jsx("span", { className: "font-mono text-[10.5px] font-bold uppercase tracking-[0.14em] text-p-ink", children: gate.requireAllPassed ? "yes" : "no" }) })
|
|
100
|
+
] }),
|
|
101
|
+
/* @__PURE__ */ jsx(
|
|
102
|
+
RelatedSections,
|
|
103
|
+
{
|
|
104
|
+
after,
|
|
105
|
+
blocks,
|
|
106
|
+
runtimeByTitle,
|
|
107
|
+
plan,
|
|
108
|
+
onOpenRelated,
|
|
109
|
+
L
|
|
110
|
+
}
|
|
111
|
+
)
|
|
112
|
+
]
|
|
113
|
+
}
|
|
94
114
|
);
|
|
95
115
|
}
|
|
96
116
|
function PlanDelayDetail({
|
|
@@ -107,30 +127,38 @@ function PlanDelayDetail({
|
|
|
107
127
|
const after = delay.afterTasks ?? [];
|
|
108
128
|
const blocks = delay.blocksTasks ?? [];
|
|
109
129
|
const human = useMemo(() => parseIsoDuration(delay.duration), [delay.duration]);
|
|
110
|
-
return /* @__PURE__ */
|
|
130
|
+
return /* @__PURE__ */ jsxs(
|
|
111
131
|
Frame,
|
|
112
132
|
{
|
|
113
133
|
tone: DELAY_TONE,
|
|
114
134
|
kind: L.delay,
|
|
115
|
-
icon: /* @__PURE__ */
|
|
135
|
+
icon: /* @__PURE__ */ jsx(Clock, { className: "size-3.5", "aria-hidden": true }),
|
|
116
136
|
name: delay.name,
|
|
117
137
|
headerTrailing,
|
|
118
138
|
actionsSlot,
|
|
119
|
-
className
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
139
|
+
className,
|
|
140
|
+
children: [
|
|
141
|
+
delay.message ? /* @__PURE__ */ jsxs(Section, { children: [
|
|
142
|
+
/* @__PURE__ */ jsx(Kicker, { children: "note" }),
|
|
143
|
+
/* @__PURE__ */ jsx("p", { className: "mt-1 font-body text-[13px] leading-[1.55] text-p-ink-2", children: delay.message })
|
|
144
|
+
] }) : null,
|
|
145
|
+
/* @__PURE__ */ jsxs(MetaGrid, { children: [
|
|
146
|
+
/* @__PURE__ */ jsx(Cell, { label: "duration", children: /* @__PURE__ */ jsx("span", { className: "font-display text-[18px] font-bold tabular-nums text-p-ink", children: human }) }),
|
|
147
|
+
/* @__PURE__ */ jsx(Cell, { label: "iso", children: /* @__PURE__ */ jsx("code", { className: "font-mono text-[11px] tracking-[0.04em] text-p-ink-2", children: delay.duration }) })
|
|
148
|
+
] }),
|
|
149
|
+
/* @__PURE__ */ jsx(
|
|
150
|
+
RelatedSections,
|
|
151
|
+
{
|
|
152
|
+
after,
|
|
153
|
+
blocks,
|
|
154
|
+
runtimeByTitle,
|
|
155
|
+
plan,
|
|
156
|
+
onOpenRelated,
|
|
157
|
+
L
|
|
158
|
+
}
|
|
159
|
+
)
|
|
160
|
+
]
|
|
161
|
+
}
|
|
134
162
|
);
|
|
135
163
|
}
|
|
136
164
|
const CHECKPOINT_TONE = {
|
|
@@ -164,41 +192,48 @@ function Frame({
|
|
|
164
192
|
actionsSlot,
|
|
165
193
|
className
|
|
166
194
|
}) {
|
|
167
|
-
return /* @__PURE__ */
|
|
195
|
+
return /* @__PURE__ */ jsxs(
|
|
168
196
|
"article",
|
|
169
197
|
{
|
|
170
198
|
className: [
|
|
171
199
|
"flex h-full min-h-0 flex-col overflow-hidden bg-p-surface",
|
|
172
200
|
className || ""
|
|
173
|
-
].join(" ")
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
201
|
+
].join(" "),
|
|
202
|
+
children: [
|
|
203
|
+
/* @__PURE__ */ jsxs(
|
|
204
|
+
"header",
|
|
205
|
+
{
|
|
206
|
+
className: "flex shrink-0 items-start gap-3 border-b border-p-line px-5 py-4",
|
|
207
|
+
style: { background: tone.bg },
|
|
208
|
+
children: [
|
|
209
|
+
/* @__PURE__ */ jsx(
|
|
210
|
+
"span",
|
|
211
|
+
{
|
|
212
|
+
"aria-hidden": true,
|
|
213
|
+
className: "mt-0.5 grid size-7 shrink-0 place-items-center rounded-full bg-p-surface ring-1",
|
|
214
|
+
style: { color: tone.fg, boxShadow: `inset 0 0 0 1px ${tone.border}` },
|
|
215
|
+
children: icon
|
|
216
|
+
}
|
|
217
|
+
),
|
|
218
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
219
|
+
/* @__PURE__ */ jsx(
|
|
220
|
+
"div",
|
|
221
|
+
{
|
|
222
|
+
className: "font-mono text-[10px] font-bold uppercase tracking-[0.22em]",
|
|
223
|
+
style: { color: tone.fg },
|
|
224
|
+
children: kind
|
|
225
|
+
}
|
|
226
|
+
),
|
|
227
|
+
/* @__PURE__ */ jsx("h3", { className: "mt-1 font-display text-[18px] font-bold leading-tight tracking-[-0.01em] text-p-ink", children: name })
|
|
228
|
+
] }),
|
|
229
|
+
headerTrailing
|
|
230
|
+
]
|
|
231
|
+
}
|
|
232
|
+
),
|
|
233
|
+
/* @__PURE__ */ jsx("div", { className: "flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-5 py-4", children }),
|
|
234
|
+
actionsSlot ? /* @__PURE__ */ jsx("footer", { className: "flex shrink-0 items-center justify-end gap-2 border-t border-p-line bg-p-bg/50 px-5 py-3", children: actionsSlot }) : null
|
|
235
|
+
]
|
|
236
|
+
}
|
|
202
237
|
);
|
|
203
238
|
}
|
|
204
239
|
const STATUS_ICON = {
|
|
@@ -224,34 +259,40 @@ function useMergedLabels(labels) {
|
|
|
224
259
|
);
|
|
225
260
|
}
|
|
226
261
|
function Section({ children }) {
|
|
227
|
-
return /* @__PURE__ */
|
|
262
|
+
return /* @__PURE__ */ jsx("section", { children });
|
|
228
263
|
}
|
|
229
264
|
function MetaGrid({ children }) {
|
|
230
|
-
return /* @__PURE__ */
|
|
265
|
+
return /* @__PURE__ */ jsx("section", { className: "grid grid-cols-2 gap-px overflow-hidden rounded-md border border-p-line bg-p-line text-[11px]", children });
|
|
231
266
|
}
|
|
232
267
|
function Cell({ label, children }) {
|
|
233
|
-
return /* @__PURE__ */
|
|
268
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1 bg-p-surface px-3 py-2", children: [
|
|
269
|
+
/* @__PURE__ */ jsx("span", { className: "font-mono text-[9.5px] font-bold uppercase tracking-[0.18em] text-p-ink-3", children: label }),
|
|
270
|
+
/* @__PURE__ */ jsx("span", { className: "min-h-[18px]", children })
|
|
271
|
+
] });
|
|
234
272
|
}
|
|
235
273
|
function Kicker({
|
|
236
274
|
children,
|
|
237
275
|
icon
|
|
238
276
|
}) {
|
|
239
|
-
return /* @__PURE__ */
|
|
277
|
+
return /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1.5 font-mono text-[10px] font-bold uppercase tracking-[0.22em] text-p-ink-3", children: [
|
|
278
|
+
icon,
|
|
279
|
+
children
|
|
280
|
+
] });
|
|
240
281
|
}
|
|
241
282
|
function Dash() {
|
|
242
|
-
return /* @__PURE__ */
|
|
283
|
+
return /* @__PURE__ */ jsx("span", { className: "font-mono text-[10.5px] uppercase tracking-[0.14em] text-p-ink-3", children: "\u2014" });
|
|
243
284
|
}
|
|
244
285
|
function ChipText({
|
|
245
286
|
tone,
|
|
246
287
|
children
|
|
247
288
|
}) {
|
|
248
|
-
return /* @__PURE__ */
|
|
289
|
+
return /* @__PURE__ */ jsx(
|
|
249
290
|
"span",
|
|
250
291
|
{
|
|
251
292
|
className: "inline-flex items-center rounded-sm px-1.5 py-0.5 font-mono text-[10px] font-bold uppercase tracking-[0.16em]",
|
|
252
|
-
style: { background: tone.chipBg, color: tone.chipFg }
|
|
253
|
-
|
|
254
|
-
|
|
293
|
+
style: { background: tone.chipBg, color: tone.chipFg },
|
|
294
|
+
children
|
|
295
|
+
}
|
|
255
296
|
);
|
|
256
297
|
}
|
|
257
298
|
function RelatedSections({
|
|
@@ -270,27 +311,36 @@ function RelatedSections({
|
|
|
270
311
|
const safeAfter = filterValid(after);
|
|
271
312
|
const safeBlocks = filterValid(blocks);
|
|
272
313
|
if (safeAfter.length === 0 && safeBlocks.length === 0) {
|
|
273
|
-
return /* @__PURE__ */
|
|
314
|
+
return /* @__PURE__ */ jsx("section", { className: "flex flex-col items-center gap-2 rounded-md border border-dashed border-p-line bg-p-bg p-6 text-center", children: /* @__PURE__ */ jsx("span", { className: "font-mono text-[10.5px] uppercase tracking-[0.16em] text-p-ink-3", children: "standalone \u2014 not gating any task" }) });
|
|
274
315
|
}
|
|
275
|
-
return /* @__PURE__ */
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
316
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
317
|
+
safeAfter.length > 0 ? /* @__PURE__ */ jsxs("section", { children: [
|
|
318
|
+
/* @__PURE__ */ jsx(Kicker, { icon: /* @__PURE__ */ jsx(ArrowRight, { className: "size-2.5 rotate-180" }), children: "after" }),
|
|
319
|
+
/* @__PURE__ */ jsx("ol", { className: "mt-1 flex flex-col gap-0.5", children: safeAfter.map((title) => /* @__PURE__ */ jsx(
|
|
320
|
+
RelatedRow,
|
|
321
|
+
{
|
|
322
|
+
title,
|
|
323
|
+
runtime: runtimeByTitle?.get(title),
|
|
324
|
+
onOpen: onOpenRelated,
|
|
325
|
+
L
|
|
326
|
+
},
|
|
327
|
+
title
|
|
328
|
+
)) })
|
|
329
|
+
] }) : null,
|
|
330
|
+
safeBlocks.length > 0 ? /* @__PURE__ */ jsxs("section", { children: [
|
|
331
|
+
/* @__PURE__ */ jsx(Kicker, { icon: /* @__PURE__ */ jsx(ArrowRight, { className: "size-2.5" }), children: "blocks" }),
|
|
332
|
+
/* @__PURE__ */ jsx("ol", { className: "mt-1 flex flex-col gap-0.5", children: safeBlocks.map((title) => /* @__PURE__ */ jsx(
|
|
333
|
+
RelatedRow,
|
|
334
|
+
{
|
|
335
|
+
title,
|
|
336
|
+
runtime: runtimeByTitle?.get(title),
|
|
337
|
+
onOpen: onOpenRelated,
|
|
338
|
+
L
|
|
339
|
+
},
|
|
340
|
+
title
|
|
341
|
+
)) })
|
|
342
|
+
] }) : null
|
|
343
|
+
] });
|
|
294
344
|
}
|
|
295
345
|
function RelatedRow({
|
|
296
346
|
title,
|
|
@@ -303,7 +353,7 @@ function RelatedRow({
|
|
|
303
353
|
const tone = STATUS_TONE[status];
|
|
304
354
|
const interactive = !!onOpen;
|
|
305
355
|
const Wrapper = interactive ? "button" : "div";
|
|
306
|
-
return /* @__PURE__ */
|
|
356
|
+
return /* @__PURE__ */ jsxs(
|
|
307
357
|
Wrapper,
|
|
308
358
|
{
|
|
309
359
|
type: interactive ? "button" : void 0,
|
|
@@ -311,20 +361,22 @@ function RelatedRow({
|
|
|
311
361
|
className: [
|
|
312
362
|
"group flex items-center gap-2 rounded-md border border-p-line bg-p-surface px-2.5 py-1.5 text-left transition-colors",
|
|
313
363
|
interactive ? "cursor-pointer hover:border-p-ink-3 hover:bg-p-warm/40" : ""
|
|
314
|
-
].join(" ")
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
364
|
+
].join(" "),
|
|
365
|
+
children: [
|
|
366
|
+
/* @__PURE__ */ jsx(Icon, { className: ["size-3 shrink-0", tone].join(" "), "aria-hidden": true }),
|
|
367
|
+
/* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1 truncate font-display text-[12.5px] font-semibold text-p-ink", children: title }),
|
|
368
|
+
/* @__PURE__ */ jsx(
|
|
369
|
+
"span",
|
|
370
|
+
{
|
|
371
|
+
className: [
|
|
372
|
+
"shrink-0 font-mono text-[9.5px] font-bold uppercase tracking-[0.16em]",
|
|
373
|
+
tone
|
|
374
|
+
].join(" "),
|
|
375
|
+
children: L.status[status]
|
|
376
|
+
}
|
|
377
|
+
)
|
|
378
|
+
]
|
|
379
|
+
}
|
|
328
380
|
);
|
|
329
381
|
}
|
|
330
382
|
function parseIsoDuration(iso) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
3
|
import { PlanTask, Plan, PlanTaskRuntime, PlanGraphLabels } from './plan-types.js';
|
|
4
4
|
import { SwarmAgentRef } from './types.js';
|
|
@@ -71,6 +71,6 @@ interface PlanTaskDetailProps {
|
|
|
71
71
|
labels?: Partial<PlanGraphLabels>;
|
|
72
72
|
className?: string;
|
|
73
73
|
}
|
|
74
|
-
declare function PlanTaskDetail({ task, plan, runtimeByTitle, agents, variant, headerTrailing, actionsSlot, actions, confirm, onOpenRelated, renderMarkdown, labels, className, }: PlanTaskDetailProps):
|
|
74
|
+
declare function PlanTaskDetail({ task, plan, runtimeByTitle, agents, variant, headerTrailing, actionsSlot, actions, confirm, onOpenRelated, renderMarkdown, labels, className, }: PlanTaskDetailProps): react_jsx_runtime.JSX.Element;
|
|
75
75
|
|
|
76
76
|
export { type PlanTaskActionConfig, type PlanTaskActions, type PlanTaskConfirmFn, PlanTaskDetail, type PlanTaskDetailProps, type PlanTaskDetailVariant };
|