@xyne/workflow-ui 1.3.8 → 1.3.10
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/components/execution/ApprovalsView.d.ts.map +1 -1
- package/dist/components/execution/ApprovalsView.js +4 -58
- package/dist/components/execution/ApprovalsView.js.map +1 -1
- package/dist/components/execution/ExecutionHeader.d.ts +7 -3
- package/dist/components/execution/ExecutionHeader.d.ts.map +1 -1
- package/dist/components/execution/ExecutionHeader.js +8 -4
- package/dist/components/execution/ExecutionHeader.js.map +1 -1
- package/dist/components/execution/ExecutionJourney.d.ts.map +1 -1
- package/dist/components/execution/ExecutionJourney.js +45 -147
- package/dist/components/execution/ExecutionJourney.js.map +1 -1
- package/dist/components/execution/ExecutionTabs.d.ts +34 -0
- package/dist/components/execution/ExecutionTabs.d.ts.map +1 -0
- package/dist/components/execution/ExecutionTabs.js +248 -0
- package/dist/components/execution/ExecutionTabs.js.map +1 -0
- package/dist/components/execution/ExecutionViewer.d.ts.map +1 -1
- package/dist/components/execution/ExecutionViewer.js +13 -2
- package/dist/components/execution/ExecutionViewer.js.map +1 -1
- package/dist/components/execution/journey-model.d.ts +112 -0
- package/dist/components/execution/journey-model.d.ts.map +1 -0
- package/dist/components/execution/journey-model.js +271 -0
- package/dist/components/execution/journey-model.js.map +1 -0
- package/dist/components/shared/AttachmentCard.d.ts.map +1 -1
- package/dist/components/shared/AttachmentCard.js +9 -5
- package/dist/components/shared/AttachmentCard.js.map +1 -1
- package/dist/components/shared/ChatPanel.d.ts.map +1 -1
- package/dist/components/shared/ChatPanel.js +14 -2
- package/dist/components/shared/ChatPanel.js.map +1 -1
- package/dist/components/shared/RunAiChat.d.ts +28 -0
- package/dist/components/shared/RunAiChat.d.ts.map +1 -0
- package/dist/components/shared/RunAiChat.js +67 -0
- package/dist/components/shared/RunAiChat.js.map +1 -0
- package/dist/hooks/use-execution-viewer.d.ts.map +1 -1
- package/dist/hooks/use-execution-viewer.js +17 -1
- package/dist/hooks/use-execution-viewer.js.map +1 -1
- package/dist/layout-engine/components.d.ts +5 -0
- package/dist/layout-engine/components.d.ts.map +1 -0
- package/dist/layout-engine/components.js +137 -0
- package/dist/layout-engine/components.js.map +1 -0
- package/dist/layout-engine/evaluate.d.ts +9 -0
- package/dist/layout-engine/evaluate.d.ts.map +1 -0
- package/dist/layout-engine/evaluate.js +66 -0
- package/dist/layout-engine/evaluate.js.map +1 -0
- package/dist/layout-engine/index.d.ts +22 -0
- package/dist/layout-engine/index.d.ts.map +1 -0
- package/dist/layout-engine/index.js +22 -0
- package/dist/layout-engine/index.js.map +1 -0
- package/dist/layout-engine/parse.d.ts +9 -0
- package/dist/layout-engine/parse.d.ts.map +1 -0
- package/dist/layout-engine/parse.js +213 -0
- package/dist/layout-engine/parse.js.map +1 -0
- package/dist/layout-engine/render.d.ts +5 -0
- package/dist/layout-engine/render.d.ts.map +1 -0
- package/dist/layout-engine/render.js +89 -0
- package/dist/layout-engine/render.js.map +1 -0
- package/dist/layout-engine/types.d.ts +65 -0
- package/dist/layout-engine/types.d.ts.map +1 -0
- package/dist/layout-engine/types.js +11 -0
- package/dist/layout-engine/types.js.map +1 -0
- package/dist/styles.css +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import { detectBranchesFromConfig } from '../../utils/branch-detection.js';
|
|
2
|
+
import { buildIterations, iterationItemValues } from '../../utils/iterations.js';
|
|
3
|
+
export function branchesOf(step, stepMeta) {
|
|
4
|
+
if (!step.config || typeof step.config !== 'object')
|
|
5
|
+
return {};
|
|
6
|
+
return detectBranchesFromConfig(step.config, stepMeta.get(step.type)?.configSchema);
|
|
7
|
+
}
|
|
8
|
+
export function branchSections(step, stepMeta) {
|
|
9
|
+
const entries = Object.values(branchesOf(step, stepMeta));
|
|
10
|
+
if (stepMeta.get(step.type)?.branchModel === 'iterate') {
|
|
11
|
+
return [{ steps: entries[0]?.steps ?? [] }];
|
|
12
|
+
}
|
|
13
|
+
return entries.map((b) => ({ label: b.label, steps: b.steps }));
|
|
14
|
+
}
|
|
15
|
+
/** Whether a construct iterates a single body over runtime items (MAP concurrent, LOOP sequential). */
|
|
16
|
+
export function isIterating(branchModel) {
|
|
17
|
+
return branchModel === 'map' || branchModel === 'iterate';
|
|
18
|
+
}
|
|
19
|
+
/** Config body steps of a single-body iterating construct (MAP / LOOP). */
|
|
20
|
+
export function bodyStepsOf(step, stepMeta) {
|
|
21
|
+
return Object.values(branchesOf(step, stepMeta))[0]?.steps ?? [];
|
|
22
|
+
}
|
|
23
|
+
/** Runtime iterations of a MAP/LOOP step as drillable folders (empty before it runs). */
|
|
24
|
+
export function iterationViewsOf(step, stepMeta, records) {
|
|
25
|
+
const body = bodyStepsOf(step, stepMeta);
|
|
26
|
+
const values = iterationItemValues(records, step.id);
|
|
27
|
+
return buildIterations(step.id, records).map((it) => ({
|
|
28
|
+
ctrlId: step.id,
|
|
29
|
+
index: it.index,
|
|
30
|
+
label: values[it.index] ? `Item ${String(it.index)} · ${values[it.index]}` : `Item ${String(it.index)}`,
|
|
31
|
+
states: it.states,
|
|
32
|
+
prefix: it.prefix,
|
|
33
|
+
bodySteps: body,
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
/** Worst-meaningful status across a subtree (recurses into branches). */
|
|
37
|
+
export function rollup(steps, states, stepMeta) {
|
|
38
|
+
const acc = [];
|
|
39
|
+
const walk = (list) => {
|
|
40
|
+
for (const s of list) {
|
|
41
|
+
const st = states.get(s.id)?.status ?? 'pending';
|
|
42
|
+
acc.push(st);
|
|
43
|
+
// A step whose own status is terminal already reflects its whole subtree — don't
|
|
44
|
+
// descend. Descending visits not-taken conditional branches, whose steps stay
|
|
45
|
+
// pending forever; the canonical case is a gate that resolved to its empty
|
|
46
|
+
// else-branch, leaving the if-branch's "hold" step pending — that lone pending
|
|
47
|
+
// would otherwise drag a fully-completed group down to 'pending' and hide it.
|
|
48
|
+
if (st === 'completed' || st === 'failed' || st === 'skipped')
|
|
49
|
+
continue;
|
|
50
|
+
// Live construct: follow the taken branch of a resolved if/switch, else all branches.
|
|
51
|
+
const taken = takenBranch(s, stepMeta, states);
|
|
52
|
+
if (taken)
|
|
53
|
+
walk(taken);
|
|
54
|
+
else
|
|
55
|
+
for (const b of Object.values(branchesOf(s, stepMeta)))
|
|
56
|
+
walk(b.steps);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
walk(steps);
|
|
60
|
+
if (acc.some((s) => s === 'failed'))
|
|
61
|
+
return 'failed';
|
|
62
|
+
if (acc.some((s) => s === 'running'))
|
|
63
|
+
return 'running';
|
|
64
|
+
if (acc.some((s) => s === 'paused'))
|
|
65
|
+
return 'paused';
|
|
66
|
+
if (acc.length > 0 && acc.every((s) => s === 'completed' || s === 'skipped')) {
|
|
67
|
+
return acc.every((s) => s === 'skipped') ? 'skipped' : 'completed';
|
|
68
|
+
}
|
|
69
|
+
return 'pending';
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The single ENTERED branch of a resolved exclusive construct (CONDITIONAL / SWITCH) —
|
|
73
|
+
* the if-block to inline. Null for loops, parallels, not-yet-resolved (pending) constructs,
|
|
74
|
+
* and non-constructs, which stay as drill-in folders.
|
|
75
|
+
*/
|
|
76
|
+
export function takenBranch(step, stepMeta, states) {
|
|
77
|
+
if (stepMeta.get(step.type)?.branchModel === 'iterate')
|
|
78
|
+
return null; // loop
|
|
79
|
+
const branches = branchesOf(step, stepMeta);
|
|
80
|
+
const keys = Object.keys(branches);
|
|
81
|
+
if (keys.length === 0)
|
|
82
|
+
return null; // not a construct
|
|
83
|
+
if (keys.some((k) => k.startsWith('branches.')))
|
|
84
|
+
return null; // parallel (all branches run)
|
|
85
|
+
// "Entered" = a direct step of the branch has started — a SHALLOW check by design.
|
|
86
|
+
// Using rollup() here recurses into the branch's OWN nested if-blocks, whose
|
|
87
|
+
// not-taken (pending) sub-branches make a fully-run branch look pending; then no
|
|
88
|
+
// branch qualifies and the whole subtree collapses to pending. A direct step's
|
|
89
|
+
// status is the reliable "did control reach this branch" signal.
|
|
90
|
+
const entered = Object.values(branches).filter((b) => b.steps.some((s) => {
|
|
91
|
+
const st = states.get(s.id)?.status;
|
|
92
|
+
return st != null && st !== 'pending' && st !== 'skipped';
|
|
93
|
+
}));
|
|
94
|
+
return entered.length === 1 ? entered[0].steps : null; // exactly one taken → inline
|
|
95
|
+
}
|
|
96
|
+
/** Flatten resolved if-blocks in place (recursively) so drilling can still find nested constructs. */
|
|
97
|
+
export function effectiveSteps(steps, stepMeta, states) {
|
|
98
|
+
const out = [];
|
|
99
|
+
for (const step of steps) {
|
|
100
|
+
const inline = takenBranch(step, stepMeta, states);
|
|
101
|
+
if (inline)
|
|
102
|
+
out.push(...effectiveSteps(inline, stepMeta, states));
|
|
103
|
+
else
|
|
104
|
+
out.push(step);
|
|
105
|
+
}
|
|
106
|
+
return out;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* A group's members — descends through inlined (taken) if-block branches so a
|
|
110
|
+
* group nested inside a resolved conditional is still found when drilled into.
|
|
111
|
+
* A matching step is kept raw (not descended) so its own conditionals inline at display.
|
|
112
|
+
*/
|
|
113
|
+
export function membersOfGroup(steps, groupId, stepMeta, states) {
|
|
114
|
+
const out = [];
|
|
115
|
+
for (const s of steps) {
|
|
116
|
+
if (s.groupId === groupId) {
|
|
117
|
+
out.push(s);
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
const taken = takenBranch(s, stepMeta, states);
|
|
121
|
+
if (taken)
|
|
122
|
+
out.push(...membersOfGroup(taken, groupId, stepMeta, states));
|
|
123
|
+
}
|
|
124
|
+
return out;
|
|
125
|
+
}
|
|
126
|
+
/** Resolve the current drill level (sections + breadcrumb) from the path by id. */
|
|
127
|
+
export function resolveLevel(rootSteps, stepMeta, path, records, states) {
|
|
128
|
+
let sections = [{ steps: rootSteps }];
|
|
129
|
+
const crumbs = [{ label: 'Run' }];
|
|
130
|
+
let insideGroupId;
|
|
131
|
+
for (const d of path) {
|
|
132
|
+
if (d.kind === 'group') {
|
|
133
|
+
const members = membersOfGroup(sections.flatMap((s) => s.steps), d.id, stepMeta, states);
|
|
134
|
+
if (members.length === 0)
|
|
135
|
+
break;
|
|
136
|
+
sections = [{ steps: members }];
|
|
137
|
+
insideGroupId = d.id;
|
|
138
|
+
}
|
|
139
|
+
else if (d.kind === 'iterationItem') {
|
|
140
|
+
// Drill into one MAP/LOOP iteration → its config body with that iteration's
|
|
141
|
+
// states + node-path prefix. Rendering from here is identical to any level.
|
|
142
|
+
const view = (sections[0]?.iterations ?? []).find((v) => v.index === d.index);
|
|
143
|
+
if (!view)
|
|
144
|
+
break;
|
|
145
|
+
sections = [{ steps: view.bodySteps, states: view.states, selectionPrefix: view.prefix }];
|
|
146
|
+
insideGroupId = undefined;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
// Inline resolved if-blocks so a construct nested in a taken branch stays findable.
|
|
150
|
+
const step = sections.flatMap((s) => effectiveSteps(s.steps, stepMeta, states)).find((s) => s.id === d.id);
|
|
151
|
+
if (!step)
|
|
152
|
+
break;
|
|
153
|
+
if (isIterating(stepMeta.get(step.type)?.branchModel)) {
|
|
154
|
+
// Drill into a MAP/LOOP → list its runtime iterations (empty pre-run → config body).
|
|
155
|
+
const iterations = iterationViewsOf(step, stepMeta, records);
|
|
156
|
+
sections = iterations.length > 0 ? [{ steps: [], iterations }] : branchSections(step, stepMeta);
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// Plain construct: resolves its branches from config. NOTE: a construct
|
|
160
|
+
// drilled from *inside* an iteration loses that iteration's prefix/states
|
|
161
|
+
// (we resolve from root), so its sub-steps fall back to the aggregated bare-id
|
|
162
|
+
// view — same known limitation as nested control in the graph. Flat bodies
|
|
163
|
+
// (the common case) are unaffected.
|
|
164
|
+
sections = branchSections(step, stepMeta);
|
|
165
|
+
}
|
|
166
|
+
insideGroupId = undefined;
|
|
167
|
+
}
|
|
168
|
+
crumbs.push({ label: d.label });
|
|
169
|
+
}
|
|
170
|
+
return { sections, crumbs, insideGroupId };
|
|
171
|
+
}
|
|
172
|
+
export function stepRow(step, stepMeta) {
|
|
173
|
+
const meta = stepMeta.get(step.type);
|
|
174
|
+
const branchCount = Object.keys(branchesOf(step, stepMeta)).length;
|
|
175
|
+
return branchCount > 0 ? { kind: 'construct', step, meta, branchCount } : { kind: 'leaf', step, meta };
|
|
176
|
+
}
|
|
177
|
+
/** A step's row(s): a resolved if-block inlines its taken branch (recursively); else a single row. */
|
|
178
|
+
export function rowsForStep(step, groups, stepMeta, ignoreGroupId, states, hoistedGroupIds) {
|
|
179
|
+
const inline = takenBranch(step, stepMeta, states);
|
|
180
|
+
return inline ? buildRows(inline, groups, stepMeta, ignoreGroupId, states, hoistedGroupIds) : [stepRow(step, stepMeta)];
|
|
181
|
+
}
|
|
182
|
+
export function buildRows(steps, groups, stepMeta, ignoreGroupId, states, hoistedGroupIds) {
|
|
183
|
+
const rows = [];
|
|
184
|
+
let i = 0;
|
|
185
|
+
while (i < steps.length) {
|
|
186
|
+
const step = steps[i];
|
|
187
|
+
const gid = step.groupId;
|
|
188
|
+
const group = gid && gid !== ignoreGroupId ? groups?.find((g) => g.id === gid) : undefined;
|
|
189
|
+
if (group) {
|
|
190
|
+
const members = [];
|
|
191
|
+
while (i < steps.length && steps[i].groupId === gid)
|
|
192
|
+
members.push(steps[i++]);
|
|
193
|
+
// A group hoisted to the top level (config `pinned`) is rendered there only — drop it
|
|
194
|
+
// from every nested view so it isn't duplicated once it has "come outside".
|
|
195
|
+
if (gid && hoistedGroupIds?.has(gid))
|
|
196
|
+
continue;
|
|
197
|
+
// A single-member group adds no value as a folder — float the member up
|
|
198
|
+
// so it's one click to its detail, not a drill into a one-item list.
|
|
199
|
+
if (members.length === 1)
|
|
200
|
+
rows.push(...rowsForStep(members[0], groups, stepMeta, ignoreGroupId, states, hoistedGroupIds));
|
|
201
|
+
else
|
|
202
|
+
rows.push({ kind: 'group', group, members });
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
rows.push(...rowsForStep(step, groups, stepMeta, ignoreGroupId, states, hoistedGroupIds));
|
|
206
|
+
i++;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
// Hide not-yet-executed (pending) nodes — the views list only the executed path.
|
|
210
|
+
return rows.filter((row) => {
|
|
211
|
+
if (row.kind === 'iteration')
|
|
212
|
+
return true;
|
|
213
|
+
if (row.kind === 'group')
|
|
214
|
+
return rollup(row.members, states, stepMeta) !== 'pending';
|
|
215
|
+
const st = states.get(row.step.id)?.status
|
|
216
|
+
?? (row.kind === 'construct' ? rollup([row.step], states, stepMeta) : 'pending');
|
|
217
|
+
return st !== 'pending';
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* The deepest running/paused leaf in the DISPLAYED tree (paused preferred) — where
|
|
222
|
+
* the run currently "is" — with the drill path to reach it. Null if nothing is active.
|
|
223
|
+
*/
|
|
224
|
+
export function findLivePath(steps, groups, stepMeta, states, ignoreGroupId, basePath) {
|
|
225
|
+
const rank = (s) => (s === 'paused' ? 2 : s === 'running' ? 1 : 0);
|
|
226
|
+
let best = null;
|
|
227
|
+
const consider = (c) => {
|
|
228
|
+
if (!c)
|
|
229
|
+
return;
|
|
230
|
+
const b = best;
|
|
231
|
+
if (b === null || rank(c.status) > rank(b.status) || (rank(c.status) === rank(b.status) && c.path.length > b.path.length))
|
|
232
|
+
best = c;
|
|
233
|
+
};
|
|
234
|
+
for (const row of buildRows(steps, groups, stepMeta, ignoreGroupId, states)) {
|
|
235
|
+
if (row.kind === 'leaf') {
|
|
236
|
+
const st = states.get(row.step.id)?.status ?? 'pending';
|
|
237
|
+
if (st === 'paused' || st === 'running') {
|
|
238
|
+
consider({ path: basePath, stepId: row.step.id, status: st, label: row.step.title || row.meta?.name || row.step.type });
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
else if (row.kind === 'group') {
|
|
242
|
+
const members = membersOfGroup(steps, row.group.id, stepMeta, states);
|
|
243
|
+
consider(findLivePath(members, groups, stepMeta, states, row.group.id, [...basePath, { kind: 'group', id: row.group.id, label: row.group.title }]));
|
|
244
|
+
}
|
|
245
|
+
else if (row.kind === 'construct') {
|
|
246
|
+
const label = row.step.title || row.meta?.name || row.step.type;
|
|
247
|
+
for (const sec of branchSections(row.step, stepMeta)) {
|
|
248
|
+
consider(findLivePath(sec.steps, groups, stepMeta, states, undefined, [...basePath, { kind: 'construct', id: row.step.id, label }]));
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
return best;
|
|
253
|
+
}
|
|
254
|
+
/** Tally each executable leaf's status across the active path (resolved if-blocks inlined). */
|
|
255
|
+
export function tallyLeaves(steps, stepMeta, states) {
|
|
256
|
+
const counts = { pending: 0, running: 0, completed: 0, failed: 0, paused: 0, skipped: 0 };
|
|
257
|
+
for (const s of effectiveSteps(steps, stepMeta, states)) {
|
|
258
|
+
const branches = Object.values(branchesOf(s, stepMeta));
|
|
259
|
+
if (branches.length === 0) {
|
|
260
|
+
counts[states.get(s.id)?.status ?? 'pending'] += 1;
|
|
261
|
+
}
|
|
262
|
+
else {
|
|
263
|
+
for (const b of branches) {
|
|
264
|
+
const sub = tallyLeaves(b.steps, stepMeta, states);
|
|
265
|
+
Object.keys(counts).forEach((k) => { counts[k] += sub[k]; });
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
return counts;
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=journey-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"journey-model.js","sourceRoot":"","sources":["../../../src/components/execution/journey-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentCard.d.ts","sourceRoot":"","sources":["../../../src/components/shared/AttachmentCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOrD,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,UAAU,CASxD;AAED,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,UAAU,EAAE,CAE/D;AASD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,+
|
|
1
|
+
{"version":3,"file":"AttachmentCard.d.ts","sourceRoot":"","sources":["../../../src/components/shared/AttachmentCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOrD,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,UAAU,CASxD;AAED,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,UAAU,EAAE,CAE/D;AASD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,+BA+ExE;AA0FD,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,EAAE,WAAW,EAAE,EAAE;IAAE,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,+BAQ5E;AAaD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,SAAS,EACT,QAAqB,GACtB,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,+BA6BA;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,sCAQrH"}
|
|
@@ -56,10 +56,11 @@ export function AttachmentCard({ attachment }) {
|
|
|
56
56
|
.catch(() => { });
|
|
57
57
|
return () => { cancelled = true; };
|
|
58
58
|
}, [url, isMarkdown, isText, isImage]);
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
const openPreview = () => { if (openAsTab)
|
|
60
|
+
openAsTab(attachment);
|
|
61
|
+
else
|
|
62
|
+
setPreviewOpen(true); };
|
|
63
|
+
return (_jsxs("div", { className: "rounded-lg border border-[var(--wui-border)] overflow-hidden", children: [_jsxs("div", { onClick: openPreview, className: "flex cursor-pointer items-center justify-between gap-2 px-3 py-2 bg-[var(--wui-bg-subtle)] transition-colors hover:bg-[color-mix(in_srgb,var(--wui-fg)_6%,transparent)]", children: [_jsxs("div", { className: "flex items-center gap-2 min-w-0", children: [_jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.8", className: "shrink-0 text-[var(--wui-fg-muted)]", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z" }), _jsx("polyline", { points: "13 2 13 9 20 9" })] }), _jsx("span", { className: "text-[12px] font-medium text-[var(--wui-fg)] truncate", children: attachment.name }), attachment.size !== undefined && (_jsx("span", { className: "text-[10px] text-[var(--wui-fg-muted)] shrink-0", children: formatBytes(attachment.size) }))] }), _jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [_jsx("button", { type: "button", onClick: (e) => { e.stopPropagation(); openPreview(); }, title: "Preview", "aria-label": "Preview", className: "grid place-items-center rounded-md p-1.5 text-[var(--wui-fg-muted)] hover:bg-[color-mix(in_srgb,var(--wui-fg)_8%,transparent)] hover:text-[var(--wui-fg)] transition-colors", children: _jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z" }), _jsx("circle", { cx: "12", cy: "12", r: "3" })] }) }), _jsx("a", { href: url, download: attachment.name, target: "_blank", rel: "noopener noreferrer", onClick: (e) => e.stopPropagation(), title: "Download", "aria-label": "Download", className: "grid place-items-center rounded-md p-1.5 text-[var(--wui-primary)] hover:bg-[color-mix(in_srgb,var(--wui-primary)_12%,transparent)] transition-colors", children: _jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), _jsx("polyline", { points: "7 10 12 15 17 10" }), _jsx("line", { x1: "12", y1: "15", x2: "12", y2: "3" })] }) })] })] }), isMarkdown && preview !== null && (_jsx("div", { className: "px-3 py-2 max-h-64 overflow-y-auto", children: _jsx(MarkdownView, { children: preview }) })), !isMarkdown && isText && !isImage && preview !== null && (_jsx("pre", { className: "px-3 py-2 max-h-64 overflow-y-auto whitespace-pre-wrap font-mono text-[11px] text-[var(--wui-fg-muted)]", children: preview })), previewOpen && (_jsx(AttachmentPreviewModal, { attachment: attachment, url: url, onClose: () => setPreviewOpen(false) }))] }));
|
|
63
64
|
}
|
|
64
65
|
/**
|
|
65
66
|
* Full-size, any-type document preview in a modal — the generic
|
|
@@ -75,7 +76,10 @@ function AttachmentPreviewModal({ attachment, url, onClose, }) {
|
|
|
75
76
|
window.addEventListener('keydown', onKey);
|
|
76
77
|
return () => { window.removeEventListener('keydown', onKey); };
|
|
77
78
|
}, [onClose]);
|
|
78
|
-
return createPortal(
|
|
79
|
+
return createPortal(
|
|
80
|
+
// Portals mount on document.body — outside the [data-workflow-ui] theme scope —
|
|
81
|
+
// so re-assert it here or every --wui-* token resolves to nothing.
|
|
82
|
+
_jsxs("div", { "data-workflow-ui": "true", className: "fixed inset-0 z-50 flex items-center justify-center p-4", children: [_jsx("button", { type: "button", "aria-label": "Close preview", onClick: onClose, className: "absolute inset-0 cursor-default bg-black/40 backdrop-blur-sm" }), _jsxs("div", { className: "relative flex max-h-[88vh] w-full max-w-[920px] flex-col overflow-hidden rounded-2xl border border-[var(--wui-border)] bg-[var(--wui-bg)] shadow-2xl", role: "dialog", "aria-modal": "true", "aria-label": attachment.name, children: [_jsxs("div", { className: "flex items-center gap-2 border-b border-[var(--wui-border)] px-4 py-3", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("p", { className: "truncate text-[14px] font-semibold text-[var(--wui-fg)]", children: attachment.name }), _jsxs("p", { className: "truncate text-[12px] text-[var(--wui-fg-muted)]", children: [attachment.mimeType, attachment.size !== undefined ? ` · ${formatBytes(attachment.size)}` : ''] })] }), _jsx("a", { href: url, target: "_blank", rel: "noopener noreferrer", title: "Open in new tab", className: "grid size-8 place-items-center rounded-lg text-[var(--wui-fg-muted)] transition-colors hover:bg-[var(--wui-bg-subtle)] hover:text-[var(--wui-fg)]", children: _jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" }), _jsx("polyline", { points: "15 3 21 3 21 9" }), _jsx("line", { x1: "10", y1: "14", x2: "21", y2: "3" })] }) }), _jsx("a", { href: url, download: attachment.name, title: "Download", className: "grid size-8 place-items-center rounded-lg text-[var(--wui-fg-muted)] transition-colors hover:bg-[var(--wui-bg-subtle)] hover:text-[var(--wui-fg)]", children: _jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), _jsx("polyline", { points: "7 10 12 15 17 10" }), _jsx("line", { x1: "12", y1: "15", x2: "12", y2: "3" })] }) }), _jsx("button", { type: "button", onClick: onClose, title: "Close", className: "grid size-8 place-items-center rounded-lg text-[var(--wui-fg-muted)] transition-colors hover:bg-[var(--wui-bg-subtle)] hover:text-[var(--wui-fg)]", children: _jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), _jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })] }) })] }), _jsx("div", { className: "min-h-0 flex-1 overflow-auto bg-[var(--wui-bg-subtle)]", children: _jsx(DocumentViewer, { url: url, mimeType: attachment.mimeType, name: attachment.name }) })] })] }), document.body);
|
|
79
83
|
}
|
|
80
84
|
/** Render one attachment or a list of them. */
|
|
81
85
|
export function AttachmentList({ attachments }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentCard.js","sourceRoot":"","sources":["../../../src/components/shared/AttachmentCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B,8EAA8E;AAC9E,MAAM,UAAU,YAAY,CAAC,CAAU;IACrC,OAAO,CACL,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,QAAQ;QACrB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACjB,OAAQ,CAAgB,CAAC,IAAI,KAAK,QAAQ;QAC1C,OAAQ,CAAgB,CAAC,IAAI,KAAK,QAAQ;QAC1C,OAAQ,CAAgB,CAAC,QAAQ,KAAK,QAAQ,CAC/C,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,iBAAiB,CAAC,CAAU;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,WAAW,CAAC,CAAU;IAC7B,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAC/B,IAAI,CAAC,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IAC9B,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1D,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,UAAU,EAA8B;IACvE,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,8EAA8E;IAC9E,qEAAqE;IACrE,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,KAAK,eAAe,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9F,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,KAAK,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5H,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IAClE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC5D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEtD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO;QACjD,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,KAAK,CAAC,GAAG,CAAC;aACZ,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACrB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS;YAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/C,KAAK,CAAC,GAAG,EAAE,GAAgC,CAAC,CAAC,CAAC;QACjD,OAAO,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvC,OAAO,CACL,eAAK,SAAS,EAAC,8DAA8D,aAC3E,
|
|
1
|
+
{"version":3,"file":"AttachmentCard.js","sourceRoot":"","sources":["../../../src/components/shared/AttachmentCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../../src/components/shared/ChatPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../../src/components/shared/ChatPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AA+FtD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,SAAS,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,QAAQ,EACR,SAAS,EACT,SAAS,EACT,KAAK,EACL,KAAK,EACL,aAAa,EACb,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,WAAW,EACX,qBAAqB,EACrB,WAA6B,EAC7B,OAAO,EACP,UAAU,EACV,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,YAAY,GACb,EAAE,oBAAoB,+BAiOtB"}
|
|
@@ -12,6 +12,18 @@ function ToolChip({ tool }) {
|
|
|
12
12
|
? 'border-[var(--wui-status-failed)] bg-[color-mix(in_srgb,var(--wui-status-failed)_10%,transparent)] text-[var(--wui-status-failed)]'
|
|
13
13
|
: 'border-[var(--wui-border)] bg-[var(--wui-bg)] text-[var(--wui-fg-muted)]'), children: [_jsxs("svg", { width: "9", height: "9", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: cn(!tool.done && 'animate-spin'), children: [_jsx("circle", { cx: "12", cy: "12", r: "3" }), _jsx("path", { d: "M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 8 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H2a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 3.6 8a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H8a1.65 1.65 0 0 0 1-1.51V2a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V8a1.65 1.65 0 0 0 1.51 1H22a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z" })] }), text, tool.done && !tool.isError && (_jsx("svg", { width: "9", height: "9", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round", className: "text-[var(--wui-status-completed)]", children: _jsx("polyline", { points: "20 6 9 17 4 12" }) }))] }));
|
|
14
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Renders only the MOST RECENT tool chip (+ a "+N" count of any earlier ones) —
|
|
17
|
+
* a long run_code sequence shows just the current "Running / Ran code," not an
|
|
18
|
+
* ever-growing list of chips.
|
|
19
|
+
*/
|
|
20
|
+
function ToolChipStrip({ tools }) {
|
|
21
|
+
if (tools.length === 0)
|
|
22
|
+
return null;
|
|
23
|
+
const last = tools[tools.length - 1];
|
|
24
|
+
const extra = tools.length - 1;
|
|
25
|
+
return (_jsxs("div", { className: "flex flex-wrap items-center gap-1", children: [_jsx(ToolChip, { tool: { name: last.name, done: last.done, ...(last.isError ? { isError: true } : {}) } }), extra > 0 && (_jsxs("span", { className: "text-[10px] font-medium text-[var(--wui-fg-muted)]", children: ["+", extra] }))] }));
|
|
26
|
+
}
|
|
15
27
|
/** The three-dot "typing" indicator. */
|
|
16
28
|
function TypingDots() {
|
|
17
29
|
return (_jsxs("div", { className: "flex items-center gap-1", children: [_jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-[var(--wui-fg-muted)] animate-bounce [animation-delay:0ms]" }), _jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-[var(--wui-fg-muted)] animate-bounce [animation-delay:150ms]" }), _jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-[var(--wui-fg-muted)] animate-bounce [animation-delay:300ms]" })] }));
|
|
@@ -70,10 +82,10 @@ export function SharedChatPanel({ isOpen, messages, isLoading, streaming, error,
|
|
|
70
82
|
.trim();
|
|
71
83
|
return (_jsx("div", { className: cn('flex', msg.role === 'user' ? 'justify-end' : 'justify-start'), children: _jsxs("div", { className: cn('max-w-[85%] break-words rounded-2xl px-3 py-2 text-[13px] leading-relaxed space-y-1.5', msg.role === 'user'
|
|
72
84
|
? 'bg-[var(--wui-primary)] text-[var(--wui-primary-fg)] rounded-br-sm'
|
|
73
|
-
: 'bg-[var(--wui-bg-subtle)] text-[var(--wui-fg)] rounded-bl-sm border border-[var(--wui-border)]'), children: [docNames.map((name) => (_jsxs("div", { className: "flex items-center gap-1.5 rounded-lg bg-white/20 px-2 py-1", children: [_jsxs("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "shrink-0", children: [_jsx("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), _jsx("polyline", { points: "14 2 14 8 20 8" })] }), _jsx("span", { className: "text-xs font-medium truncate", children: name })] }, name))), msg.role === 'assistant' && msg.tools && msg.tools.length > 0 && (_jsx(
|
|
85
|
+
: 'bg-[var(--wui-bg-subtle)] text-[var(--wui-fg)] rounded-bl-sm border border-[var(--wui-border)]'), children: [docNames.map((name) => (_jsxs("div", { className: "flex items-center gap-1.5 rounded-lg bg-white/20 px-2 py-1", children: [_jsxs("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "shrink-0", children: [_jsx("path", { d: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), _jsx("polyline", { points: "14 2 14 8 20 8" })] }), _jsx("span", { className: "text-xs font-medium truncate", children: name })] }, name))), msg.role === 'assistant' && msg.tools && msg.tools.length > 0 && (_jsx(ToolChipStrip, { tools: msg.tools.map((t) => ({ name: t.name, done: true, isError: t.isError })) })), visibleText && (msg.role === 'assistant'
|
|
74
86
|
? _jsx(MarkdownText, { text: visibleText })
|
|
75
87
|
: _jsx("p", { className: "whitespace-pre-wrap", children: visibleText }))] }) }, i));
|
|
76
|
-
}), streaming && (_jsx("div", { className: "flex justify-start", children: _jsxs("div", { className: "max-w-[85%] space-y-1.5 break-words rounded-2xl rounded-bl-sm border border-[var(--wui-border)] bg-[var(--wui-bg-subtle)] px-3 py-2 text-[13px] leading-relaxed text-[var(--wui-fg)]", children: [streaming.tools.length > 0 &&
|
|
88
|
+
}), streaming && (_jsx("div", { className: "flex justify-start", children: _jsxs("div", { className: "max-w-[85%] space-y-1.5 break-words rounded-2xl rounded-bl-sm border border-[var(--wui-border)] bg-[var(--wui-bg-subtle)] px-3 py-2 text-[13px] leading-relaxed text-[var(--wui-fg)]", children: [streaming.tools.length > 0 && _jsx(ToolChipStrip, { tools: streaming.tools }), streaming.text ? _jsx(MarkdownText, { text: streaming.text }) : _jsx(TypingDots, {})] }) })), isLoading && !streaming && (_jsx("div", { className: "flex justify-start", children: _jsx("div", { className: "rounded-2xl rounded-bl-sm border border-[var(--wui-border)] bg-[var(--wui-bg-subtle)] px-3 py-2", children: _jsx(TypingDots, {}) }) })), error && (_jsx("div", { className: "rounded-lg border border-[var(--wui-status-failed)] bg-[color-mix(in_srgb,var(--wui-status-failed)_10%,transparent)] px-3 py-2 text-[12px] text-[var(--wui-status-failed)]", children: error }))] }), _jsx("div", { className: "shrink-0 border-t border-[var(--wui-border)] p-3 space-y-2", children: _jsxs("div", { className: "flex items-end gap-2 rounded-xl border border-[var(--wui-border)] bg-[var(--wui-bg-subtle)] px-3 py-2.5 focus-within:border-[var(--wui-primary)] focus-within:bg-[var(--wui-bg)] transition-colors", children: [inputPrefixSlot, _jsx("textarea", { ref: textareaRef, value: draft, onChange: (e) => {
|
|
77
89
|
onDraftChange(e.target.value);
|
|
78
90
|
e.target.style.height = 'auto';
|
|
79
91
|
e.target.style.height = `${Math.min(e.target.scrollHeight, 96)}px`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatPanel.js","sourceRoot":"","sources":["../../../src/components/shared/ChatPanel.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ChatPanel.js","sourceRoot":"","sources":["../../../src/components/shared/ChatPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { AiBuilderClient } from '@xyne/workflow-sdk/ai-builder';
|
|
2
|
+
/**
|
|
3
|
+
* The "Ask AI" chat side panel over a single execution — shared by the
|
|
4
|
+
* Approvals view (with an optional form-fill capability) and the execution
|
|
5
|
+
* viewer (chat only). It owns its own chat + streaming + width/resize state so
|
|
6
|
+
* high-frequency streaming snapshots re-render only this subtree.
|
|
7
|
+
*
|
|
8
|
+
* Form-fill is optional: pass `setFormValues` (and `formValues`/`hasForm`) to
|
|
9
|
+
* enable the "AI suggested form values" banner. Without them the chat is a
|
|
10
|
+
* read-only Q&A over the run — the backend never emits a form-fill without a
|
|
11
|
+
* pause form, so the banner simply never shows.
|
|
12
|
+
*/
|
|
13
|
+
export declare function RunAiChat({ executionId, aiClient, isOpen, onClose, formValues, setFormValues, hasForm, suggestions, emptyStateDescription, placeholder, }: {
|
|
14
|
+
executionId: string;
|
|
15
|
+
aiClient: AiBuilderClient;
|
|
16
|
+
isOpen: boolean;
|
|
17
|
+
onClose: () => void;
|
|
18
|
+
/** Live form values — only for the approval form-fill capability. */
|
|
19
|
+
formValues?: Record<string, unknown> | undefined;
|
|
20
|
+
/** When provided, enables the AI form-fill "Apply suggestions" banner. */
|
|
21
|
+
setFormValues?: ((v: Record<string, unknown>) => void) | undefined;
|
|
22
|
+
hasForm?: boolean | undefined;
|
|
23
|
+
/** Override the empty-state suggestion chips. */
|
|
24
|
+
suggestions?: string[] | undefined;
|
|
25
|
+
emptyStateDescription?: string | undefined;
|
|
26
|
+
placeholder?: string | undefined;
|
|
27
|
+
}): import("react").JSX.Element;
|
|
28
|
+
//# sourceMappingURL=RunAiChat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RunAiChat.d.ts","sourceRoot":"","sources":["../../../src/components/shared/RunAiChat.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAIrE;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,EACxB,WAAW,EACX,QAAQ,EACR,MAAM,EACN,OAAO,EACP,UAAU,EACV,aAAa,EACb,OAAe,EACf,WAAW,EACX,qBAA4F,EAC5F,WAAmC,GACpC,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IACjD,0EAA0E;IAC1E,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACnE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACnC,qBAAqB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,+BA0GA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useState } from 'react';
|
|
3
|
+
import { useApprovalAI } from '../../hooks/use-approval-ai.js';
|
|
4
|
+
import { SharedChatPanel } from './ChatPanel.js';
|
|
5
|
+
/**
|
|
6
|
+
* The "Ask AI" chat side panel over a single execution — shared by the
|
|
7
|
+
* Approvals view (with an optional form-fill capability) and the execution
|
|
8
|
+
* viewer (chat only). It owns its own chat + streaming + width/resize state so
|
|
9
|
+
* high-frequency streaming snapshots re-render only this subtree.
|
|
10
|
+
*
|
|
11
|
+
* Form-fill is optional: pass `setFormValues` (and `formValues`/`hasForm`) to
|
|
12
|
+
* enable the "AI suggested form values" banner. Without them the chat is a
|
|
13
|
+
* read-only Q&A over the run — the backend never emits a form-fill without a
|
|
14
|
+
* pause form, so the banner simply never shows.
|
|
15
|
+
*/
|
|
16
|
+
export function RunAiChat({ executionId, aiClient, isOpen, onClose, formValues, setFormValues, hasForm = false, suggestions, emptyStateDescription = 'Ask about this run — where data came from, or to fill in the form.', placeholder = 'Ask about this run…', }) {
|
|
17
|
+
const { messages, pendingFormFill, isLoading, streaming, error: aiError, send, stop, clearFormFill, reset } = useApprovalAI(aiClient, executionId);
|
|
18
|
+
const [draft, setDraft] = useState('');
|
|
19
|
+
// Resizable width with a minimum; `resizing` disables the transition mid-drag.
|
|
20
|
+
const [aiWidth, setAiWidth] = useState(400);
|
|
21
|
+
const [resizing, setResizing] = useState(false);
|
|
22
|
+
const onAiResizeStart = useCallback((e) => {
|
|
23
|
+
e.preventDefault();
|
|
24
|
+
setResizing(true);
|
|
25
|
+
const startX = e.clientX;
|
|
26
|
+
const startW = aiWidth;
|
|
27
|
+
const onMove = (ev) => {
|
|
28
|
+
setAiWidth(Math.min(640, Math.max(320, startW + (startX - ev.clientX))));
|
|
29
|
+
};
|
|
30
|
+
const onUp = () => {
|
|
31
|
+
setResizing(false);
|
|
32
|
+
document.removeEventListener('mousemove', onMove);
|
|
33
|
+
document.removeEventListener('mouseup', onUp);
|
|
34
|
+
document.body.style.cursor = '';
|
|
35
|
+
document.body.style.userSelect = '';
|
|
36
|
+
};
|
|
37
|
+
document.addEventListener('mousemove', onMove);
|
|
38
|
+
document.addEventListener('mouseup', onUp);
|
|
39
|
+
document.body.style.cursor = 'col-resize';
|
|
40
|
+
document.body.style.userSelect = 'none';
|
|
41
|
+
}, [aiWidth]);
|
|
42
|
+
const handleSend = useCallback(async () => {
|
|
43
|
+
if (!draft.trim() || isLoading)
|
|
44
|
+
return;
|
|
45
|
+
const text = draft.trim();
|
|
46
|
+
setDraft('');
|
|
47
|
+
await send(text, formValues);
|
|
48
|
+
}, [draft, isLoading, send, formValues]);
|
|
49
|
+
// Form-fill banner only when a form-fill sink is wired (approval view).
|
|
50
|
+
const values = formValues ?? {};
|
|
51
|
+
const formFillBanner = pendingFormFill && setFormValues ? (_jsxs("div", { className: "shrink-0 border-b border-[var(--wui-status-completed)] bg-[color-mix(in_srgb,var(--wui-status-completed)_12%,transparent)] px-4 py-3", children: [_jsx("p", { className: "mb-2 text-[12px] font-medium text-[var(--wui-status-completed)]", children: "AI suggested form values" }), _jsx("div", { className: "mb-2 divide-y divide-[color-mix(in_srgb,var(--wui-status-completed)_20%,transparent)] rounded-lg border border-[var(--wui-status-completed)] bg-[var(--wui-surface)] overflow-hidden max-h-32 overflow-y-auto", children: Object.entries(pendingFormFill).map(([key, value]) => (_jsxs("div", { className: "flex items-center gap-2 px-3 py-1.5", children: [_jsx("span", { className: "shrink-0 text-[11px] font-medium text-[var(--wui-status-completed)] min-w-0 truncate", style: { maxWidth: '45%' }, title: key, children: key.replace(/_/g, ' ') }), _jsx("span", { className: "ml-auto text-[11px] text-[var(--wui-status-completed)] font-mono truncate", title: String(value ?? ''), children: value === '' || value === null || value === undefined
|
|
52
|
+
? _jsx("span", { className: "italic text-[var(--wui-status-completed)]", children: "empty" })
|
|
53
|
+
: String(value) })] }, key))) }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { type: "button", onClick: () => { setFormValues({ ...values, ...pendingFormFill }); clearFormFill(); }, className: "flex-1 rounded-lg bg-[var(--wui-status-completed)] py-1.5 text-[12px] font-semibold text-[var(--wui-primary-fg)] transition hover:brightness-95", children: "Apply suggestions" }), _jsx("button", { type: "button", onClick: clearFormFill, className: "rounded-lg border border-[var(--wui-status-completed)] px-3 py-1.5 text-[12px] text-[var(--wui-status-completed)] transition hover:bg-[color-mix(in_srgb,var(--wui-status-completed)_18%,transparent)]", children: "Dismiss" })] })] })) : null;
|
|
54
|
+
const defaultSuggestions = [
|
|
55
|
+
'Where did this data come from?',
|
|
56
|
+
...(hasForm ? ['Can you fill in the form for me?'] : []),
|
|
57
|
+
'Summarise what this workflow has done so far.',
|
|
58
|
+
];
|
|
59
|
+
return (_jsx(SharedChatPanel, { isOpen: isOpen, messages: messages, isLoading: isLoading, streaming: streaming, error: aiError, draft: draft, onDraftChange: setDraft, onSend: handleSend, onStop: stop, onReset: reset, onClose: onClose, suggestions: suggestions ?? defaultSuggestions, emptyStateDescription: emptyStateDescription, placeholder: placeholder, canSend: !!draft.trim(), bannerSlot: formFillBanner, resizeHandle: _jsx("div", { className: "absolute left-0 top-0 bottom-0 z-10 w-1 cursor-col-resize transition-colors hover:bg-[color-mix(in_srgb,var(--wui-primary)_40%,transparent)] active:bg-[color-mix(in_srgb,var(--wui-primary)_55%,transparent)]", onMouseDown: onAiResizeStart }), containerStyle: {
|
|
60
|
+
width: isOpen ? `${String(aiWidth)}px` : '0px',
|
|
61
|
+
minWidth: isOpen ? 320 : 0,
|
|
62
|
+
opacity: isOpen ? 1 : 0,
|
|
63
|
+
flexShrink: 0,
|
|
64
|
+
transition: resizing ? 'none' : 'width 280ms cubic-bezier(0.4,0,0.2,1), opacity 280ms cubic-bezier(0.4,0,0.2,1)',
|
|
65
|
+
} }));
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=RunAiChat.js.map
|