@xyne/workflow-ui 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/components/automations/CreateWorkflowDialog.d.ts.map +1 -1
  2. package/dist/components/automations/CreateWorkflowDialog.js +4 -1
  3. package/dist/components/automations/CreateWorkflowDialog.js.map +1 -1
  4. package/dist/components/browser/EntryGrid.d.ts +4 -1
  5. package/dist/components/browser/EntryGrid.d.ts.map +1 -1
  6. package/dist/components/browser/EntryGrid.js +4 -4
  7. package/dist/components/browser/EntryGrid.js.map +1 -1
  8. package/dist/components/browser/EntryList.d.ts +4 -1
  9. package/dist/components/browser/EntryList.d.ts.map +1 -1
  10. package/dist/components/browser/EntryList.js +5 -5
  11. package/dist/components/browser/EntryList.js.map +1 -1
  12. package/dist/components/browser/types.d.ts +2 -0
  13. package/dist/components/browser/types.d.ts.map +1 -1
  14. package/dist/components/builder/v3/AiBuilderPanel.d.ts.map +1 -1
  15. package/dist/components/builder/v3/AiBuilderPanel.js +2 -2
  16. package/dist/components/builder/v3/AiBuilderPanel.js.map +1 -1
  17. package/dist/components/dashboard/TriggerFormModal.d.ts +2 -1
  18. package/dist/components/dashboard/TriggerFormModal.d.ts.map +1 -1
  19. package/dist/components/dashboard/TriggerFormModal.js +4 -3
  20. package/dist/components/dashboard/TriggerFormModal.js.map +1 -1
  21. package/dist/components/execution/ApprovalsView.d.ts.map +1 -1
  22. package/dist/components/execution/ApprovalsView.js +39 -19
  23. package/dist/components/execution/ApprovalsView.js.map +1 -1
  24. package/dist/components/shared/ChatPanel.d.ts +6 -1
  25. package/dist/components/shared/ChatPanel.d.ts.map +1 -1
  26. package/dist/components/shared/ChatPanel.js +31 -11
  27. package/dist/components/shared/ChatPanel.js.map +1 -1
  28. package/dist/components/shared/MarkdownView.d.ts.map +1 -1
  29. package/dist/components/shared/MarkdownView.js +4 -2
  30. package/dist/components/shared/MarkdownView.js.map +1 -1
  31. package/dist/components/shared/TagFilter.d.ts +15 -0
  32. package/dist/components/shared/TagFilter.d.ts.map +1 -0
  33. package/dist/components/shared/TagFilter.js +32 -0
  34. package/dist/components/shared/TagFilter.js.map +1 -0
  35. package/dist/components/shared/TagInput.d.ts +16 -0
  36. package/dist/components/shared/TagInput.d.ts.map +1 -0
  37. package/dist/components/shared/TagInput.js +41 -0
  38. package/dist/components/shared/TagInput.js.map +1 -0
  39. package/dist/components/shared/chat-types.d.ts +13 -0
  40. package/dist/components/shared/chat-types.d.ts.map +1 -0
  41. package/dist/components/shared/chat-types.js +2 -0
  42. package/dist/components/shared/chat-types.js.map +1 -0
  43. package/dist/components/workflows/WorkflowBrowser.d.ts.map +1 -1
  44. package/dist/components/workflows/WorkflowBrowser.js +86 -6
  45. package/dist/components/workflows/WorkflowBrowser.js.map +1 -1
  46. package/dist/hooks/use-ai-builder.d.ts +4 -0
  47. package/dist/hooks/use-ai-builder.d.ts.map +1 -1
  48. package/dist/hooks/use-ai-builder.js +54 -10
  49. package/dist/hooks/use-ai-builder.js.map +1 -1
  50. package/dist/hooks/use-approval-ai.d.ts +3 -0
  51. package/dist/hooks/use-approval-ai.d.ts.map +1 -1
  52. package/dist/hooks/use-approval-ai.js +55 -10
  53. package/dist/hooks/use-approval-ai.js.map +1 -1
  54. package/dist/styles.css +1 -1
  55. package/package.json +2 -2
@@ -0,0 +1,41 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useMemo, useState } from 'react';
3
+ import { cn } from './cn.js';
4
+ /** Normalise a raw tag: trimmed, collapsed whitespace, lower-cased. */
5
+ function normalize(raw) {
6
+ return raw.trim().replace(/\s+/g, ' ').toLowerCase();
7
+ }
8
+ /**
9
+ * A chip-style tag editor: type + Enter (or comma) to add, click ✕ or Backspace
10
+ * to remove, with suggestions from known tags. Tags are normalised + de-duped.
11
+ * Generic — used in the create dialog, the browser tag editor, and anywhere else.
12
+ */
13
+ export function TagInput({ value, onChange, suggestions = [], placeholder = 'Add a tag…', disabled, className }) {
14
+ const [draft, setDraft] = useState('');
15
+ const addTag = (raw) => {
16
+ const t = normalize(raw);
17
+ if (!t)
18
+ return;
19
+ if (!value.includes(t))
20
+ onChange([...value, t]);
21
+ setDraft('');
22
+ };
23
+ const removeTag = (t) => onChange(value.filter((x) => x !== t));
24
+ const open = draft.trim().length > 0;
25
+ const matches = useMemo(() => {
26
+ if (!open)
27
+ return [];
28
+ const q = normalize(draft);
29
+ return suggestions.filter((s) => s.includes(q) && !value.includes(s)).slice(0, 6);
30
+ }, [open, draft, suggestions, value]);
31
+ return (_jsxs("div", { className: cn('relative', className), children: [_jsxs("div", { className: cn('flex flex-wrap items-center gap-1.5 rounded-[var(--wui-radius-sm)] border px-2 py-1.5', 'border-[var(--wui-border)] bg-[var(--wui-bg)] focus-within:border-[var(--wui-primary)] focus-within:ring-1 focus-within:ring-[var(--wui-primary)]', disabled && 'opacity-60'), children: [value.map((t) => (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-full bg-[var(--wui-primary)]/10 px-2 py-0.5 text-[11px] font-medium text-[var(--wui-primary)]", children: [t, !disabled && (_jsx("button", { type: "button", "aria-label": `Remove ${t}`, onClick: () => removeTag(t), className: "text-[var(--wui-primary)]/60 hover:text-[var(--wui-primary)]", children: _jsxs("svg", { width: "9", height: "9", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", children: [_jsx("path", { d: "M18 6 6 18" }), _jsx("path", { d: "m6 6 12 12" })] }) }))] }, t))), _jsx("input", { type: "text", value: draft, disabled: disabled, onChange: (e) => setDraft(e.target.value), onKeyDown: (e) => {
32
+ if (e.key === 'Enter' || e.key === ',') {
33
+ e.preventDefault();
34
+ addTag(draft);
35
+ }
36
+ else if (e.key === 'Backspace' && draft === '' && value.length > 0) {
37
+ removeTag(value[value.length - 1]);
38
+ }
39
+ }, placeholder: value.length === 0 ? placeholder : '', className: "min-w-[80px] flex-1 bg-transparent text-[13px] text-[var(--wui-fg)] outline-none placeholder:text-[var(--wui-fg-muted)]/60" })] }), matches.length > 0 && (_jsx("div", { className: "absolute left-0 right-0 top-full z-10 mt-1 overflow-hidden rounded-[var(--wui-radius-sm)] border border-[var(--wui-border)] bg-[var(--wui-bg)] shadow-md", children: matches.map((s) => (_jsx("button", { type: "button", onClick: () => addTag(s), className: "block w-full px-2.5 py-1.5 text-left text-[12px] text-[var(--wui-fg)] hover:bg-[var(--wui-bg-subtle)]", children: s }, s))) }))] }));
40
+ }
41
+ //# sourceMappingURL=TagInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagInput.js","sourceRoot":"","sources":["../../../src/components/shared/TagInput.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /** A tool invocation shown as a live chip while a chat turn streams. */
2
+ export interface StreamingTool {
3
+ id: string;
4
+ name: string;
5
+ done: boolean;
6
+ isError?: boolean | undefined;
7
+ }
8
+ /** In-progress assistant turn: the latest text snapshot + active tool chips. */
9
+ export interface StreamingState {
10
+ text: string;
11
+ tools: StreamingTool[];
12
+ }
13
+ //# sourceMappingURL=chat-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-types.d.ts","sourceRoot":"","sources":["../../../src/components/shared/chat-types.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chat-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-types.js","sourceRoot":"","sources":["../../../src/components/shared/chat-types.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowBrowser.d.ts","sourceRoot":"","sources":["../../../src/components/workflows/WorkflowBrowser.tsx"],"names":[],"mappings":"AAuFA,MAAM,WAAW,WAAW;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAEzD,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IACpE,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,YAAY,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,wBAAgB,eAAe,CAAC,EAC9B,gBAAgB,EAChB,SAAS,EACT,IAAI,EAAE,UAAU,EAChB,YAAY,EACZ,OAAO,EACP,SAAS,GACV,EAAE,oBAAoB,+BAoetB"}
1
+ {"version":3,"file":"WorkflowBrowser.d.ts","sourceRoot":"","sources":["../../../src/components/workflows/WorkflowBrowser.tsx"],"names":[],"mappings":"AAkGA,MAAM,WAAW,WAAW;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAEzD,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IACpE,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,YAAY,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,wBAAgB,eAAe,CAAC,EAC9B,gBAAgB,EAChB,SAAS,EACT,IAAI,EAAE,UAAU,EAChB,YAAY,EACZ,OAAO,EACP,SAAS,GACV,EAAE,oBAAoB,+BAokBtB"}
@@ -12,6 +12,9 @@ import { SearchField } from '../browser/SearchField.js';
12
12
  import { ViewToggle } from '../browser/ViewToggle.js';
13
13
  import { NameDialog } from '../browser/NameDialog.js';
14
14
  import { MoveDialog } from '../browser/MoveDialog.js';
15
+ import { TriggerFormModal } from '../dashboard/TriggerFormModal.js';
16
+ import { TagInput } from '../shared/TagInput.js';
17
+ import { TagFilter } from '../shared/TagFilter.js';
15
18
  import { cn } from '../shared/cn.js';
16
19
  // ─── Column definitions ───────────────────────────────────────────────────────
17
20
  const WF_COLUMNS = [
@@ -44,9 +47,14 @@ function parseStepCount(raw) {
44
47
  return 0;
45
48
  }
46
49
  }
50
+ function parseTags(meta) {
51
+ const raw = meta['tags'];
52
+ return Array.isArray(raw) ? raw.filter((t) => typeof t === 'string') : [];
53
+ }
47
54
  function workflowToEntry(wf) {
48
55
  const meta = parseMeta(wf.metadata);
49
56
  const stepCount = parseStepCount(wf.config);
57
+ const tags = parseTags(meta);
50
58
  return {
51
59
  kind: 'file',
52
60
  id: wf.id,
@@ -58,6 +66,7 @@ function workflowToEntry(wf) {
58
66
  steps: String(stepCount),
59
67
  trigger: wf.eventType || '—',
60
68
  },
69
+ ...(tags.length > 0 ? { tags } : {}),
61
70
  };
62
71
  }
63
72
  function folderToEntry(f, childCount) {
@@ -100,8 +109,13 @@ export function WorkflowBrowser({ onSelectWorkflow, onViewRun, path: breadcrumb,
100
109
  const [reloadKey, setReloadKey] = useState(0);
101
110
  const [dialog, setDialog] = useState(null);
102
111
  const [moveEntries, setMoveEntries] = useState(null);
112
+ const [runTarget, setRunTarget] = useState(null);
103
113
  const [selectedIds, setSelectedIds] = useState(new Set());
104
114
  const [lastSelectedIndex, setLastSelectedIndex] = useState(null);
115
+ /** Active tag filter (ANY-match). */
116
+ const [selectedTags, setSelectedTags] = useState([]);
117
+ /** Workflow whose tags are being edited. */
118
+ const [tagEditTarget, setTagEditTarget] = useState(null);
105
119
  const [showCreateDialog, setShowCreateDialog] = useState(false);
106
120
  const [showApprovals, setShowApprovals] = useState(false);
107
121
  const polledCount = useApprovalCount();
@@ -145,10 +159,23 @@ export function WorkflowBrowser({ onSelectWorkflow, onViewRun, path: breadcrumb,
145
159
  ...childFolders.map((f) => folderToEntry(f, itemCount(f.id))),
146
160
  ...(isAtRoot ? [] : workflows.map(workflowToEntry)),
147
161
  ];
162
+ // Tags present in this folder's workflows — drives the filter selector.
163
+ const availableTags = [
164
+ ...new Set(allEntries.flatMap((e) => (e.kind === 'file' ? (e.tags ?? []) : []))),
165
+ ].sort();
148
166
  const trimmedQ = query.trim().toLowerCase();
149
- const entries = trimmedQ
150
- ? allEntries.filter((e) => e.name.toLowerCase().includes(trimmedQ))
151
- : allEntries;
167
+ const entries = allEntries.filter((e) => {
168
+ if (trimmedQ && !e.name.toLowerCase().includes(trimmedQ))
169
+ return false;
170
+ // Tag filter applies to workflows only (ANY-match); folders always pass so
171
+ // navigation isn't blocked.
172
+ if (selectedTags.length > 0 && e.kind === 'file') {
173
+ const tags = e.tags ?? [];
174
+ if (!selectedTags.some((t) => tags.includes(t)))
175
+ return false;
176
+ }
177
+ return true;
178
+ });
152
179
  const folderCount = entries.filter((e) => e.kind === 'folder').length;
153
180
  const wfCount = entries.filter((e) => e.kind === 'file').length;
154
181
  const countText = loading
@@ -173,7 +200,7 @@ export function WorkflowBrowser({ onSelectWorkflow, onViewRun, path: breadcrumb,
173
200
  setBreadcrumb((prev) => [...prev, { id: entry.id, name: entry.name }]);
174
201
  return;
175
202
  }
176
- onSelectWorkflow(entry.id, breadcrumb);
203
+ handleRunEntry(entry);
177
204
  };
178
205
  const goUp = () => {
179
206
  setQuery('');
@@ -214,6 +241,27 @@ export function WorkflowBrowser({ onSelectWorkflow, onViewRun, path: breadcrumb,
214
241
  onToast?.('error', err instanceof Error ? err.message : 'Rename failed');
215
242
  }
216
243
  };
244
+ // Open the tag editor for a workflow (reads its current tags from metadata).
245
+ const openTagEditor = (entry) => {
246
+ if (entry.kind !== 'file')
247
+ return;
248
+ const wf = workflows.find((w) => w.id === entry.id);
249
+ setTagEditTarget({ id: entry.id, name: entry.name, tags: parseTags(parseMeta(wf?.metadata)) });
250
+ };
251
+ // Persist edited tags into the workflow's metadata (merged, so name etc. survive).
252
+ const saveTags = async (id, tags) => {
253
+ try {
254
+ const wf = workflows.find((w) => w.id === id);
255
+ const meta = parseMeta(wf?.metadata);
256
+ await client.workflows.update(id, { metadata: { ...meta, tags } });
257
+ setTagEditTarget(null);
258
+ onToast?.('success', 'Teams updated');
259
+ refresh();
260
+ }
261
+ catch (err) {
262
+ onToast?.('error', err instanceof Error ? err.message : 'Could not update tags');
263
+ }
264
+ };
217
265
  const handleDelete = async (entry) => {
218
266
  if (entry.kind === 'folder') {
219
267
  const ok = window.confirm(`Delete folder "${entry.name}"?`);
@@ -229,6 +277,33 @@ export function WorkflowBrowser({ onSelectWorkflow, onViewRun, path: breadcrumb,
229
277
  }
230
278
  }
231
279
  };
280
+ const triggerWorkflow = async (id, name, payload, attachments = []) => {
281
+ try {
282
+ await client.workflows.trigger(id, payload, attachments);
283
+ setRunTarget(null);
284
+ onToast?.('success', `Started "${name}"`);
285
+ }
286
+ catch (err) {
287
+ onToast?.('error', err instanceof Error ? err.message : 'Could not start workflow');
288
+ }
289
+ };
290
+ const handleRunEntry = (entry) => {
291
+ if (entry.kind !== 'file')
292
+ return;
293
+ const wf = workflows.find((w) => w.id === entry.id);
294
+ const triggerCfg = (() => {
295
+ try {
296
+ const cfg = wf?.config ? JSON.parse(wf.config) : {};
297
+ return cfg.trigger?.config ?? {};
298
+ }
299
+ catch {
300
+ return {};
301
+ }
302
+ })();
303
+ const inputSchema = triggerCfg['inputSchema'];
304
+ const attachmentsConfig = triggerCfg['attachments'];
305
+ setRunTarget({ id: entry.id, name: entry.name, inputSchema, attachmentsConfig });
306
+ };
232
307
  const clearSelection = useCallback(() => {
233
308
  setSelectedIds(new Set());
234
309
  setLastSelectedIndex(null);
@@ -301,12 +376,17 @@ export function WorkflowBrowser({ onSelectWorkflow, onViewRun, path: breadcrumb,
301
376
  onViewRun(executionId, workflowName);
302
377
  },
303
378
  }
304
- : {}) }) })), _jsx("main", { ref: mainRef, className: cn('relative flex-1 overflow-auto px-5 py-5', showApprovals && 'hidden'), children: _jsx("div", { className: "mx-auto w-full max-w-7xl", children: false ? null : (_jsxs(_Fragment, { children: [approvalCount > 0 && (_jsxs("button", { type: "button", onClick: () => { setShowApprovals(true); }, className: "mb-4 flex w-full items-center gap-3 rounded-xl border border-orange-200 bg-orange-50 px-4 py-3 text-left transition hover:bg-orange-100 dark:border-orange-800 dark:bg-orange-950/30 dark:hover:bg-orange-950/50", children: [_jsx(AlertCircle, { className: "h-4 w-4 shrink-0 text-orange-500", strokeWidth: 1.75 }), _jsxs("span", { className: "flex-1 text-[13px] font-medium text-orange-800 dark:text-orange-300", children: [approvalCount, " workflow", approvalCount === 1 ? '' : 's', " waiting for approval"] }), _jsx("span", { className: "text-[12px] text-orange-600 dark:text-orange-400", children: "Review \u2192" })] })), _jsx("p", { className: "mb-3 text-[12px] text-muted-foreground", children: countText }), entries.length === 0 && !loading ? (_jsx(EmptyPane, { isRoot: isAtRoot })) : view === 'grid' ? (_jsx(EntryGrid, { entries: entries, renderLeading: wfLeading, onOpen: openEntry, onRename: (e, name) => { void handleRename(e, name); }, onDelete: (e) => { void handleDelete(e); }, onMove: (e) => { setMoveEntries([e]); }, selectedIds: selectedIds, onToggleSelect: toggleSelect, scrollParentRef: mainRef })) : (_jsx(EntryList, { entries: entries, columns: isAtRoot ? [] : WF_COLUMNS, renderLeading: wfLeading, onOpen: openEntry, onRename: (e, name) => { void handleRename(e, name); }, onDelete: (e) => { void handleDelete(e); }, onMove: (e) => { setMoveEntries([e]); }, selectedIds: selectedIds, onToggleSelect: toggleSelect, scrollParentRef: mainRef }))] })) }) }), _jsx(NameDialog, { open: dialog === 'folder', title: "New folder", description: currentFolderId
379
+ : {}) }) })), _jsx("main", { ref: mainRef, className: cn('relative flex-1 overflow-auto px-5 py-5', showApprovals && 'hidden'), children: _jsx("div", { className: "mx-auto w-full max-w-7xl", children: false ? null : (_jsxs(_Fragment, { children: [approvalCount > 0 && (_jsxs("button", { type: "button", onClick: () => { setShowApprovals(true); }, className: "mb-4 flex w-full items-center gap-3 rounded-xl border border-orange-200 bg-orange-50 px-4 py-3 text-left transition hover:bg-orange-100 dark:border-orange-800 dark:bg-orange-950/30 dark:hover:bg-orange-950/50", children: [_jsx(AlertCircle, { className: "h-4 w-4 shrink-0 text-orange-500", strokeWidth: 1.75 }), _jsxs("span", { className: "flex-1 text-[13px] font-medium text-orange-800 dark:text-orange-300", children: [approvalCount, " workflow", approvalCount === 1 ? '' : 's', " waiting for approval"] }), _jsx("span", { className: "text-[12px] text-orange-600 dark:text-orange-400", children: "Review \u2192" })] })), _jsxs("div", { className: "mb-3 flex items-center justify-between gap-2", children: [_jsx("p", { className: "text-[12px] text-muted-foreground", children: countText }), _jsx(TagFilter, { tags: availableTags, selected: selectedTags, onChange: setSelectedTags })] }), entries.length === 0 && !loading ? (_jsx(EmptyPane, { isRoot: isAtRoot })) : view === 'grid' ? (_jsx(EntryGrid, { entries: entries, renderLeading: wfLeading, onOpen: openEntry, onOpenEditor: (e) => { onSelectWorkflow(e.id, breadcrumb); }, onEditTags: openTagEditor, onRename: (e, name) => { void handleRename(e, name); }, onDelete: (e) => { void handleDelete(e); }, onMove: (e) => { setMoveEntries([e]); }, selectedIds: selectedIds, onToggleSelect: toggleSelect, scrollParentRef: mainRef })) : (_jsx(EntryList, { entries: entries, columns: isAtRoot ? [] : WF_COLUMNS, renderLeading: wfLeading, onOpen: openEntry, onOpenEditor: (e) => { onSelectWorkflow(e.id, breadcrumb); }, onEditTags: openTagEditor, onRename: (e, name) => { void handleRename(e, name); }, onDelete: (e) => { void handleDelete(e); }, onMove: (e) => { setMoveEntries([e]); }, selectedIds: selectedIds, onToggleSelect: toggleSelect, scrollParentRef: mainRef }))] })) }) }), _jsx(NameDialog, { open: dialog === 'folder', title: "New folder", description: currentFolderId
305
380
  ? 'Adds a subfolder inside the current folder.'
306
- : 'Adds a top-level folder for organising workflows.', label: "Folder name", placeholder: "e.g. Notifications", helper: "Up to 255 characters.", submitLabel: "Create folder", onSubmit: submitNewFolder, onClose: () => { setDialog(null); } }), showCreateDialog && (_jsx(CreateWorkflowDialog, { folders: allFolders, defaultFolderId: currentFolderId ?? undefined, onCreateFolder: handleCreateFolder, onCreated: handleWorkflowCreated, onClose: () => { setShowCreateDialog(false); } })), moveEntries && moveEntries.length > 0 && (_jsx(MoveDialog, { entries: moveEntries, folders: allFolders, currentParentId: moveEntries.length === 1 && moveEntries[0].kind === 'folder'
381
+ : 'Adds a top-level folder for organising workflows.', label: "Folder name", placeholder: "e.g. Notifications", helper: "Up to 255 characters.", submitLabel: "Create folder", onSubmit: submitNewFolder, onClose: () => { setDialog(null); } }), showCreateDialog && (_jsx(CreateWorkflowDialog, { folders: allFolders, defaultFolderId: currentFolderId ?? undefined, onCreateFolder: handleCreateFolder, onCreated: handleWorkflowCreated, onClose: () => { setShowCreateDialog(false); } })), tagEditTarget && (_jsx(TagEditDialog, { target: tagEditTarget, suggestions: availableTags, onSave: (tags) => { void saveTags(tagEditTarget.id, tags); }, onClose: () => { setTagEditTarget(null); } })), runTarget && (_jsx(TriggerFormModal, { inputSchema: runTarget.inputSchema, attachmentsConfig: runTarget.attachmentsConfig, workflowName: runTarget.name, onSubmit: (payload, attachments) => triggerWorkflow(runTarget.id, runTarget.name, payload, attachments), onClose: () => { setRunTarget(null); } })), moveEntries && moveEntries.length > 0 && (_jsx(MoveDialog, { entries: moveEntries, folders: allFolders, currentParentId: moveEntries.length === 1 && moveEntries[0].kind === 'folder'
307
382
  ? (allFolders.find((f) => f.id === moveEntries[0].id)?.parentId ?? null)
308
383
  : currentFolderId, onMove: (targetId) => { void handleMoveConfirm(moveEntries, targetId); }, onClose: () => { setMoveEntries(null); } }))] }));
309
384
  }
385
+ // ─── Tag editor dialog ─────────────────────────────────────────────────────────
386
+ function TagEditDialog({ target, suggestions, onSave, onClose, }) {
387
+ const [tags, setTags] = useState(target.tags);
388
+ return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [_jsx("div", { className: "absolute inset-0 bg-black/30", onClick: onClose }), _jsxs("div", { className: "relative z-10 w-full max-w-md rounded-xl border border-border bg-surface-elevated shadow-xl", children: [_jsxs("div", { className: "flex items-center justify-between border-b border-border px-5 py-3.5", children: [_jsxs("h3", { className: "truncate text-sm font-semibold text-foreground", title: target.name, children: ["Teams \u00B7 ", target.name] }), _jsx("button", { onClick: onClose, "aria-label": "Close", className: "grid h-6 w-6 place-items-center rounded-md text-muted-foreground hover:bg-secondary hover:text-foreground", children: _jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: [_jsx("path", { d: "M18 6 6 18" }), _jsx("path", { d: "m6 6 12 12" })] }) })] }), _jsx("div", { className: "px-5 py-4", children: _jsx(TagInput, { value: tags, onChange: setTags, suggestions: suggestions, placeholder: "Add a team \u2014 Enter to confirm" }) }), _jsxs("div", { className: "flex items-center justify-end gap-2 border-t border-border px-5 py-3", children: [_jsx("button", { onClick: onClose, className: "rounded-md border border-border px-3.5 py-1.5 text-[13px] font-medium text-muted-foreground hover:bg-secondary", children: "Cancel" }), _jsx("button", { onClick: () => onSave(tags), className: "rounded-md bg-foreground px-3.5 py-1.5 text-[13px] font-semibold text-background hover:opacity-90", children: "Save tags" })] })] })] }));
389
+ }
310
390
  // ─── Empty state ──────────────────────────────────────────────────────────────
311
391
  function EmptyPane({ isRoot }) {
312
392
  return (_jsxs("div", { className: "flex h-52 flex-col items-center justify-center gap-2 text-sm text-muted-foreground", children: [_jsx(Workflow, { className: "h-9 w-9 opacity-25", strokeWidth: 1.25 }), _jsx("span", { children: isRoot ? 'No folders yet — create one to get started' : 'This folder is empty' })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowBrowser.js","sourceRoot":"","sources":["../../../src/components/workflows/WorkflowBrowser.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkflowBrowser.js","sourceRoot":"","sources":["../../../src/components/workflows/WorkflowBrowser.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,15 @@
1
1
  import type { AiBuilderClient, AiBuilderMessage, BuilderChatResponse } from '@xyne/workflow-sdk/ai-builder';
2
2
  import type { WorkflowConfig } from '@xyne/workflow-sdk/builder';
3
+ import type { StreamingState } from '../components/shared/chat-types.js';
3
4
  export interface UseAiBuilderReturn {
4
5
  messages: AiBuilderMessage[];
5
6
  pendingPatch: BuilderChatResponse['workflowPatch'] | null;
6
7
  isLoading: boolean;
8
+ /** Live assistant turn while streaming (text snapshot + tool chips), else null. */
9
+ streaming: StreamingState | null;
7
10
  error: string | null;
8
11
  send: (text: string, currentConfig: WorkflowConfig) => Promise<void>;
12
+ stop: () => void;
9
13
  clearPatch: () => void;
10
14
  reset: () => void;
11
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-ai-builder.d.ts","sourceRoot":"","sources":["../../src/hooks/use-ai-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAC5G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,YAAY,EAAE,mBAAmB,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,kBAAkB,CAsCxE"}
1
+ {"version":3,"file":"use-ai-builder.d.ts","sourceRoot":"","sources":["../../src/hooks/use-ai-builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAqB,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAC/H,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,oCAAoC,CAAC;AAExF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,YAAY,EAAE,mBAAmB,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,mFAAmF;IACnF,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,kBAAkB,CAmFxE"}
@@ -1,35 +1,79 @@
1
- import { useCallback, useState } from 'react';
1
+ import { useCallback, useRef, useState } from 'react';
2
2
  export function useAiBuilder(client) {
3
3
  const [messages, setMessages] = useState([]);
4
4
  const [pendingPatch, setPendingPatch] = useState(null);
5
5
  const [isLoading, setIsLoading] = useState(false);
6
+ const [streaming, setStreaming] = useState(null);
6
7
  const [error, setError] = useState(null);
8
+ const abortRef = useRef(null);
7
9
  const send = useCallback(async (text, currentConfig) => {
8
- const userMsg = { role: 'user', content: text };
9
- const next = [...messages, userMsg];
10
+ const next = [...messages, { role: 'user', content: text }];
10
11
  setMessages(next);
11
12
  setIsLoading(true);
12
13
  setError(null);
14
+ setStreaming({ text: '', tools: [] });
15
+ const controller = new AbortController();
16
+ abortRef.current = controller;
17
+ let runningText = '';
18
+ const tools = [];
19
+ let patch = null;
20
+ let aborted = false;
13
21
  try {
14
- const res = await client.chat(next, currentConfig);
15
- setMessages([...next, { role: 'assistant', content: res.message }]);
16
- if (res.workflowPatch) {
17
- setPendingPatch(res.workflowPatch);
18
- }
22
+ await client.chatStream(next, currentConfig, {
23
+ onText: (t) => { runningText = t; setStreaming({ text: t, tools: [...tools] }); },
24
+ onTool: (tc) => {
25
+ if (tc.status === 'start') {
26
+ tools.push({ id: tc.id, name: tc.name, done: false });
27
+ }
28
+ else {
29
+ const ex = tools.find((x) => x.id === tc.id);
30
+ if (ex) {
31
+ ex.done = true;
32
+ ex.isError = tc.isError;
33
+ }
34
+ else
35
+ tools.push({ id: tc.id, name: tc.name, done: true, isError: tc.isError });
36
+ }
37
+ setStreaming({ text: runningText, tools: [...tools] });
38
+ },
39
+ onPatch: (wp) => { patch = wp; },
40
+ onDone: (message) => { runningText = message; },
41
+ onError: (e) => { setError(e); },
42
+ }, controller.signal);
19
43
  }
20
44
  catch (err) {
21
- setError(err instanceof Error ? err.message : 'Unknown error');
45
+ if (controller.signal.aborted) {
46
+ aborted = true;
47
+ }
48
+ else {
49
+ setError(err instanceof Error ? err.message : 'Unknown error');
50
+ }
22
51
  }
23
52
  finally {
53
+ const toolChips = tools.map((t) => ({ name: t.name, ...(t.isError ? { isError: true } : {}) }));
54
+ const content = runningText || (aborted ? '_(stopped)_' : '');
55
+ if (content || toolChips.length > 0) {
56
+ setMessages([
57
+ ...next,
58
+ { role: 'assistant', content, ...(toolChips.length ? { tools: toolChips } : {}) },
59
+ ]);
60
+ }
61
+ if (patch)
62
+ setPendingPatch(patch);
63
+ setStreaming(null);
24
64
  setIsLoading(false);
65
+ abortRef.current = null;
25
66
  }
26
67
  }, [client, messages]);
68
+ const stop = useCallback(() => { abortRef.current?.abort(); }, []);
27
69
  const clearPatch = useCallback(() => setPendingPatch(null), []);
28
70
  const reset = useCallback(() => {
71
+ abortRef.current?.abort();
29
72
  setMessages([]);
30
73
  setPendingPatch(null);
74
+ setStreaming(null);
31
75
  setError(null);
32
76
  }, []);
33
- return { messages, pendingPatch, isLoading, error, send, clearPatch, reset };
77
+ return { messages, pendingPatch, isLoading, streaming, error, send, stop, clearPatch, reset };
34
78
  }
35
79
  //# sourceMappingURL=use-ai-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-ai-builder.js","sourceRoot":"","sources":["../../src/hooks/use-ai-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAc9C,MAAM,UAAU,YAAY,CAAC,MAAuB;IAClD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAqB,EAAE,CAAC,CAAC;IACjE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAA8C,IAAI,CAAC,CAAC;IACpG,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,MAAM,IAAI,GAAG,WAAW,CACtB,KAAK,EAAE,IAAY,EAAE,aAA6B,EAAE,EAAE;QACpD,MAAM,OAAO,GAAqB,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClE,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACnD,WAAW,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACpE,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;gBACtB,eAAe,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QACjE,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EACD,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,WAAW,CAAC,EAAE,CAAC,CAAC;QAChB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"use-ai-builder.js","sourceRoot":"","sources":["../../src/hooks/use-ai-builder.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
1
  import type { AiBuilderClient, AiBuilderMessage } from '@xyne/workflow-sdk/ai-builder';
2
2
  import type { ExecutionDetail } from '@xyne/workflow-sdk/client';
3
+ import type { StreamingState } from '../components/shared/chat-types.js';
3
4
  export interface UseApprovalAIReturn {
4
5
  messages: AiBuilderMessage[];
5
6
  pendingFormFill: Record<string, unknown> | null;
6
7
  isLoading: boolean;
8
+ streaming: StreamingState | null;
7
9
  error: string | null;
8
10
  send: (text: string, currentFormValues?: Record<string, unknown>) => Promise<void>;
11
+ stop: () => void;
9
12
  clearFormFill: () => void;
10
13
  reset: () => void;
11
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-approval-ai.d.ts","sourceRoot":"","sources":["../../src/hooks/use-approval-ai.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChD,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,EACvB,gBAAgB,EAAE,eAAe,GAChC,mBAAmB,CAuCrB"}
1
+ {"version":3,"file":"use-approval-ai.d.ts","sourceRoot":"","sources":["../../src/hooks/use-approval-ai.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAqB,MAAM,+BAA+B,CAAC;AAC1G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,oCAAoC,CAAC;AAExF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChD,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IACjC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,EACvB,gBAAgB,EAAE,eAAe,GAChC,mBAAmB,CAsFrB"}
@@ -1,36 +1,81 @@
1
- import { useCallback, useState } from 'react';
1
+ import { useCallback, useRef, useState } from 'react';
2
2
  export function useApprovalAI(client, executionContext) {
3
3
  const [messages, setMessages] = useState([]);
4
4
  const [pendingFormFill, setPendingFormFill] = useState(null);
5
5
  const [isLoading, setIsLoading] = useState(false);
6
+ const [streaming, setStreaming] = useState(null);
6
7
  const [error, setError] = useState(null);
8
+ const abortRef = useRef(null);
7
9
  const send = useCallback(async (text, currentFormValues) => {
8
- const userMsg = { role: 'user', content: text };
9
- const next = [...messages, userMsg];
10
+ const next = [...messages, { role: 'user', content: text }];
10
11
  setMessages(next);
11
12
  setIsLoading(true);
12
13
  setError(null);
14
+ setStreaming({ text: '', tools: [] });
15
+ const controller = new AbortController();
16
+ abortRef.current = controller;
17
+ let runningText = '';
18
+ const tools = [];
19
+ let formFill = null;
20
+ let aborted = false;
13
21
  try {
14
- const res = await client.approvalChat(next, executionContext, currentFormValues);
15
- setMessages([...next, { role: 'assistant', content: res.message }]);
16
- if ('formFill' in res && res.formFill) {
17
- setPendingFormFill(res.formFill);
18
- }
22
+ await client.approvalChatStream(next, executionContext, {
23
+ onText: (t) => { runningText = t; setStreaming({ text: t, tools: [...tools] }); },
24
+ onTool: (tc) => {
25
+ if (tc.status === 'start') {
26
+ tools.push({ id: tc.id, name: tc.name, done: false });
27
+ }
28
+ else {
29
+ const ex = tools.find((x) => x.id === tc.id);
30
+ if (ex) {
31
+ ex.done = true;
32
+ ex.isError = tc.isError;
33
+ }
34
+ else
35
+ tools.push({ id: tc.id, name: tc.name, done: true, isError: tc.isError });
36
+ }
37
+ setStreaming({ text: runningText, tools: [...tools] });
38
+ },
39
+ onFormFill: (ff) => { formFill = ff; },
40
+ onDone: (message) => { runningText = message; },
41
+ onError: (e) => { setError(e); },
42
+ }, currentFormValues, controller.signal);
19
43
  }
20
44
  catch (err) {
21
- setError(err instanceof Error ? err.message : 'Unknown error');
45
+ // AbortError (user pressed Stop) is expected keep the partial text.
46
+ if (controller.signal.aborted) {
47
+ aborted = true;
48
+ }
49
+ else {
50
+ setError(err instanceof Error ? err.message : 'Unknown error');
51
+ }
22
52
  }
23
53
  finally {
54
+ const toolChips = tools.map((t) => ({ name: t.name, ...(t.isError ? { isError: true } : {}) }));
55
+ const content = runningText || (aborted ? '_(stopped)_' : '');
56
+ if (content || toolChips.length > 0) {
57
+ setMessages([
58
+ ...next,
59
+ { role: 'assistant', content, ...(toolChips.length ? { tools: toolChips } : {}) },
60
+ ]);
61
+ }
62
+ if (formFill)
63
+ setPendingFormFill(formFill);
64
+ setStreaming(null);
24
65
  setIsLoading(false);
66
+ abortRef.current = null;
25
67
  }
26
68
  }, [client, executionContext, messages]);
69
+ const stop = useCallback(() => { abortRef.current?.abort(); }, []);
27
70
  const clearFormFill = useCallback(() => setPendingFormFill(null), []);
28
71
  const reset = useCallback(() => {
72
+ abortRef.current?.abort();
29
73
  setMessages([]);
30
74
  setPendingFormFill(null);
75
+ setStreaming(null);
31
76
  setError(null);
32
77
  setIsLoading(false);
33
78
  }, []);
34
- return { messages, pendingFormFill, isLoading, error, send, clearFormFill, reset };
79
+ return { messages, pendingFormFill, isLoading, streaming, error, send, stop, clearFormFill, reset };
35
80
  }
36
81
  //# sourceMappingURL=use-approval-ai.js.map