@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.
- package/dist/components/automations/CreateWorkflowDialog.d.ts.map +1 -1
- package/dist/components/automations/CreateWorkflowDialog.js +4 -1
- package/dist/components/automations/CreateWorkflowDialog.js.map +1 -1
- package/dist/components/browser/EntryGrid.d.ts +4 -1
- package/dist/components/browser/EntryGrid.d.ts.map +1 -1
- package/dist/components/browser/EntryGrid.js +4 -4
- package/dist/components/browser/EntryGrid.js.map +1 -1
- package/dist/components/browser/EntryList.d.ts +4 -1
- package/dist/components/browser/EntryList.d.ts.map +1 -1
- package/dist/components/browser/EntryList.js +5 -5
- package/dist/components/browser/EntryList.js.map +1 -1
- package/dist/components/browser/types.d.ts +2 -0
- package/dist/components/browser/types.d.ts.map +1 -1
- package/dist/components/builder/v3/AiBuilderPanel.d.ts.map +1 -1
- package/dist/components/builder/v3/AiBuilderPanel.js +2 -2
- package/dist/components/builder/v3/AiBuilderPanel.js.map +1 -1
- package/dist/components/dashboard/TriggerFormModal.d.ts +2 -1
- package/dist/components/dashboard/TriggerFormModal.d.ts.map +1 -1
- package/dist/components/dashboard/TriggerFormModal.js +4 -3
- package/dist/components/dashboard/TriggerFormModal.js.map +1 -1
- package/dist/components/execution/ApprovalsView.d.ts.map +1 -1
- package/dist/components/execution/ApprovalsView.js +39 -19
- package/dist/components/execution/ApprovalsView.js.map +1 -1
- package/dist/components/shared/ChatPanel.d.ts +6 -1
- package/dist/components/shared/ChatPanel.d.ts.map +1 -1
- package/dist/components/shared/ChatPanel.js +31 -11
- package/dist/components/shared/ChatPanel.js.map +1 -1
- package/dist/components/shared/MarkdownView.d.ts.map +1 -1
- package/dist/components/shared/MarkdownView.js +4 -2
- package/dist/components/shared/MarkdownView.js.map +1 -1
- package/dist/components/shared/TagFilter.d.ts +15 -0
- package/dist/components/shared/TagFilter.d.ts.map +1 -0
- package/dist/components/shared/TagFilter.js +32 -0
- package/dist/components/shared/TagFilter.js.map +1 -0
- package/dist/components/shared/TagInput.d.ts +16 -0
- package/dist/components/shared/TagInput.d.ts.map +1 -0
- package/dist/components/shared/TagInput.js +41 -0
- package/dist/components/shared/TagInput.js.map +1 -0
- package/dist/components/shared/chat-types.d.ts +13 -0
- package/dist/components/shared/chat-types.d.ts.map +1 -0
- package/dist/components/shared/chat-types.js +2 -0
- package/dist/components/shared/chat-types.js.map +1 -0
- package/dist/components/workflows/WorkflowBrowser.d.ts.map +1 -1
- package/dist/components/workflows/WorkflowBrowser.js +86 -6
- package/dist/components/workflows/WorkflowBrowser.js.map +1 -1
- package/dist/hooks/use-ai-builder.d.ts +4 -0
- package/dist/hooks/use-ai-builder.d.ts.map +1 -1
- package/dist/hooks/use-ai-builder.js +54 -10
- package/dist/hooks/use-ai-builder.js.map +1 -1
- package/dist/hooks/use-approval-ai.d.ts +3 -0
- package/dist/hooks/use-approval-ai.d.ts.map +1 -1
- package/dist/hooks/use-approval-ai.js +55 -10
- package/dist/hooks/use-approval-ai.js.map +1 -1
- package/dist/styles.css +1 -1
- 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":";AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAY7B,uEAAuE;AACvE,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,GAAG,EAAE,EAAE,WAAW,GAAG,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAiB;IAC5H,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE;QAC7B,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC;YAAE,OAAO;QACf,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAChD,QAAQ,CAAC,EAAE,CAAC,CAAC;IACf,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAExE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IAEtC,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,aACvC,eACE,SAAS,EAAE,EAAE,CACX,uFAAuF,EACvF,mJAAmJ,EACnJ,QAAQ,IAAI,YAAY,CACzB,aAEA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAChB,gBAAc,SAAS,EAAC,sIAAsI,aAC3J,CAAC,EACD,CAAC,QAAQ,IAAI,CACZ,iBAAQ,IAAI,EAAC,QAAQ,gBAAa,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAC,8DAA8D,YACpJ,eAAK,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,aAAC,eAAM,CAAC,EAAC,YAAY,GAAG,EAAA,eAAM,CAAC,EAAC,YAAY,GAAG,IAAM,GACnK,CACV,KANQ,CAAC,CAOL,CACR,CAAC,EACF,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;4BACf,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gCACvC,CAAC,CAAC,cAAc,EAAE,CAAC;gCACnB,MAAM,CAAC,KAAK,CAAC,CAAC;4BAChB,CAAC;iCAAM,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCACrE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC;4BACtC,CAAC;wBACH,CAAC,EACD,WAAW,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAClD,SAAS,EAAC,4HAA4H,GACtI,IACE,EACL,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CACrB,cAAK,SAAS,EAAC,0JAA0J,YACtK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAClB,iBAEE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EACxB,SAAS,EAAC,uGAAuG,YAEhH,CAAC,IALG,CAAC,CAMC,CACV,CAAC,GACE,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -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 @@
|
|
|
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":"
|
|
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 =
|
|
150
|
-
|
|
151
|
-
|
|
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
|
-
|
|
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" })] })),
|
|
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,
|
|
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
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
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;
|
|
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,
|
|
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
|
|
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
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
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
|