@workflow/web-shared 4.0.1-beta.26 → 4.0.1-beta.28
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/api/workflow-api-client.d.ts +27 -18
- package/dist/api/workflow-api-client.d.ts.map +1 -1
- package/dist/api/workflow-api-client.js +20 -1
- package/dist/api/workflow-api-client.js.map +1 -1
- package/dist/api/workflow-server-actions.d.ts +30 -0
- package/dist/api/workflow-server-actions.d.ts.map +1 -1
- package/dist/api/workflow-server-actions.js +80 -0
- package/dist/api/workflow-server-actions.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/event-analysis.d.ts +60 -0
- package/dist/lib/event-analysis.d.ts.map +1 -0
- package/dist/lib/event-analysis.js +168 -0
- package/dist/lib/event-analysis.js.map +1 -0
- package/dist/lib/utils.d.ts +25 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +45 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/sidebar/attribute-panel.d.ts +6 -1
- package/dist/sidebar/attribute-panel.d.ts.map +1 -1
- package/dist/sidebar/attribute-panel.js +43 -5
- package/dist/sidebar/attribute-panel.js.map +1 -1
- package/dist/sidebar/conversation-view.d.ts +7 -0
- package/dist/sidebar/conversation-view.d.ts.map +1 -0
- package/dist/sidebar/conversation-view.js +125 -0
- package/dist/sidebar/conversation-view.js.map +1 -0
- package/dist/sidebar/workflow-detail-panel.d.ts.map +1 -1
- package/dist/sidebar/workflow-detail-panel.js +46 -3
- package/dist/sidebar/workflow-detail-panel.js.map +1 -1
- package/dist/stream-viewer.d.ts +1 -0
- package/dist/stream-viewer.d.ts.map +1 -1
- package/dist/stream-viewer.js +16 -29
- package/dist/stream-viewer.js.map +1 -1
- package/package.json +6 -4
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import clsx from 'clsx';
|
|
4
|
-
import {
|
|
4
|
+
import { Zap } from 'lucide-react';
|
|
5
|
+
import { useEffect, useMemo, useState } from 'react';
|
|
5
6
|
import { toast } from 'sonner';
|
|
6
|
-
import { useWorkflowResourceData } from '../api/workflow-api-client';
|
|
7
|
+
import { useWorkflowResourceData, wakeUpRun } from '../api/workflow-api-client';
|
|
7
8
|
import { EventsList } from '../sidebar/events-list';
|
|
8
9
|
import { useTraceViewer } from '../trace-viewer';
|
|
9
10
|
import { AttributePanel } from './attribute-panel';
|
|
@@ -13,6 +14,7 @@ import { AttributePanel } from './attribute-panel';
|
|
|
13
14
|
export function WorkflowDetailPanel({ env, run, onStreamClick, }) {
|
|
14
15
|
const { state } = useTraceViewer();
|
|
15
16
|
const { selected } = state;
|
|
17
|
+
const [stoppingSleep, setStoppingSleep] = useState(false);
|
|
16
18
|
const data = selected?.span.attributes?.data;
|
|
17
19
|
// Determine resource ID and runId (needed for steps)
|
|
18
20
|
const { resource, resourceId, runId } = useMemo(() => {
|
|
@@ -38,6 +40,18 @@ export function WorkflowDetailPanel({ env, run, onStreamClick, }) {
|
|
|
38
40
|
}
|
|
39
41
|
return { resource: undefined, resourceId: undefined, runId: undefined };
|
|
40
42
|
}, [selected, data]);
|
|
43
|
+
// Check if this sleep is still pending (no wait_completed event)
|
|
44
|
+
// We include events length to ensure recomputation when new events are added
|
|
45
|
+
// (the array reference might not change when events are pushed to it)
|
|
46
|
+
const spanEvents = selected?.span.events;
|
|
47
|
+
const spanEventsLength = spanEvents?.length ?? 0;
|
|
48
|
+
const isSleepPending = useMemo(() => {
|
|
49
|
+
void spanEventsLength; // Force dependency on length for reactivity
|
|
50
|
+
if (resource !== 'sleep' || !spanEvents)
|
|
51
|
+
return false;
|
|
52
|
+
const hasWaitCompleted = spanEvents.some((e) => e.name === 'wait_completed');
|
|
53
|
+
return !hasWaitCompleted;
|
|
54
|
+
}, [resource, spanEvents, spanEventsLength]);
|
|
41
55
|
// Fetch full resource data with events
|
|
42
56
|
const { data: fetchedData, error, loading, } = useWorkflowResourceData(env, resource, resourceId ?? '', { runId });
|
|
43
57
|
useEffect(() => {
|
|
@@ -47,10 +61,39 @@ export function WorkflowDetailPanel({ env, run, onStreamClick, }) {
|
|
|
47
61
|
});
|
|
48
62
|
}
|
|
49
63
|
}, [error, resource, selected]);
|
|
64
|
+
const handleWakeUp = async () => {
|
|
65
|
+
if (stoppingSleep || !resourceId)
|
|
66
|
+
return;
|
|
67
|
+
try {
|
|
68
|
+
setStoppingSleep(true);
|
|
69
|
+
const result = await wakeUpRun(env, run.runId, {
|
|
70
|
+
correlationIds: [resourceId],
|
|
71
|
+
});
|
|
72
|
+
if (result.stoppedCount > 0) {
|
|
73
|
+
toast.success('Run woken up', {
|
|
74
|
+
description: 'The sleep call has been interrupted and the run woken up.',
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
toast.info('Sleep already completed', {
|
|
79
|
+
description: 'This sleep call has already finished.',
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
console.error('Failed to wake up run:', err);
|
|
85
|
+
toast.error('Failed to wake up run', {
|
|
86
|
+
description: err instanceof Error ? err.message : 'An unknown error occurred',
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
finally {
|
|
90
|
+
setStoppingSleep(false);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
50
93
|
if (!selected || !resource || !resourceId) {
|
|
51
94
|
return null;
|
|
52
95
|
}
|
|
53
96
|
const displayData = fetchedData || data;
|
|
54
|
-
return (_jsxs("div", { className: clsx('flex flex-col px-2'), children: [_jsx(AttributePanel, { data: displayData, expiredAt: run.expiredAt, isLoading: loading, error: error ?? undefined, onStreamClick: onStreamClick }), resource !== 'run' && (_jsx(EventsList, { correlationId: resourceId, env: env, events: selected.span.events, expiredAt: run.expiredAt }))] }));
|
|
97
|
+
return (_jsxs("div", { className: clsx('flex flex-col px-2'), children: [resource === 'sleep' && isSleepPending && (_jsxs("div", { className: "mb-3 pb-3 border-b border-gray-200 dark:border-gray-700", children: [_jsxs("button", { type: "button", onClick: handleWakeUp, disabled: stoppingSleep, className: clsx('flex items-center gap-2 px-3 py-2 text-sm font-medium rounded-md w-full', 'bg-amber-100 dark:bg-amber-900/30 text-amber-800 dark:text-amber-200', 'hover:bg-amber-200 dark:hover:bg-amber-900/50', 'disabled:opacity-50 disabled:cursor-not-allowed', 'transition-colors', stoppingSleep ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer'), children: [_jsx(Zap, { className: "h-4 w-4" }), stoppingSleep ? 'Waking up...' : 'Wake up'] }), _jsx("p", { className: "mt-1.5 text-xs text-gray-500 dark:text-gray-400", children: "Interrupt this sleep call and wake up the run." })] })), _jsx(AttributePanel, { data: displayData, expiredAt: run.expiredAt, isLoading: loading, error: error ?? undefined, onStreamClick: onStreamClick }), resource !== 'run' && (_jsx(EventsList, { correlationId: resourceId, env: env, events: selected.span.events, expiredAt: run.expiredAt }))] }));
|
|
55
98
|
}
|
|
56
99
|
//# sourceMappingURL=workflow-detail-panel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-detail-panel.js","sourceRoot":"","sources":["../../src/sidebar/workflow-detail-panel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow-detail-panel.js","sourceRoot":"","sources":["../../src/sidebar/workflow-detail-panel.tsx"],"names":[],"mappings":"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"}
|
package/dist/stream-viewer.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-viewer.d.ts","sourceRoot":"","sources":["../src/stream-viewer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAE5D,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAOD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"stream-viewer.d.ts","sourceRoot":"","sources":["../src/stream-viewer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAE5D,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAOD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAiKhE"}
|
package/dist/stream-viewer.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
3
|
+
import { useEffect, useRef, useState } from 'react';
|
|
4
4
|
import { readStream } from './api/workflow-api-client';
|
|
5
5
|
/**
|
|
6
6
|
* StreamViewer component that displays real-time stream data.
|
|
@@ -11,26 +11,15 @@ export function StreamViewer({ env, streamId }) {
|
|
|
11
11
|
const [chunks, setChunks] = useState([]);
|
|
12
12
|
const [isLive, setIsLive] = useState(true);
|
|
13
13
|
const [error, setError] = useState(null);
|
|
14
|
-
const [hasMoreBelow, setHasMoreBelow] = useState(false);
|
|
15
14
|
const scrollRef = useRef(null);
|
|
16
15
|
const abortControllerRef = useRef(null);
|
|
17
16
|
const chunkIdRef = useRef(0);
|
|
18
|
-
const checkScrollPosition = useCallback(() => {
|
|
19
|
-
if (scrollRef.current) {
|
|
20
|
-
const { scrollTop, scrollHeight, clientHeight } = scrollRef.current;
|
|
21
|
-
const isAtBottom = scrollHeight - scrollTop - clientHeight < 10;
|
|
22
|
-
setHasMoreBelow(!isAtBottom && scrollHeight > clientHeight);
|
|
23
|
-
}
|
|
24
|
-
}, []);
|
|
25
|
-
// biome-ignore lint/correctness/useExhaustiveDependencies: chunks.length triggers scroll on new chunks
|
|
26
17
|
useEffect(() => {
|
|
27
18
|
// Auto-scroll to bottom when new content arrives
|
|
28
19
|
if (scrollRef.current) {
|
|
29
20
|
scrollRef.current.scrollTop = scrollRef.current.scrollHeight;
|
|
30
21
|
}
|
|
31
|
-
|
|
32
|
-
checkScrollPosition();
|
|
33
|
-
}, [chunks.length, checkScrollPosition]);
|
|
22
|
+
}, [chunks.length]);
|
|
34
23
|
useEffect(() => {
|
|
35
24
|
let mounted = true;
|
|
36
25
|
abortControllerRef.current = new AbortController();
|
|
@@ -83,26 +72,24 @@ export function StreamViewer({ env, streamId }) {
|
|
|
83
72
|
}
|
|
84
73
|
};
|
|
85
74
|
}, [env, streamId]);
|
|
86
|
-
return (_jsxs("div", { className: "flex flex-col h-full
|
|
75
|
+
return (_jsxs("div", { className: "flex flex-col h-full", children: [_jsxs("div", { className: "flex items-center justify-between mb-3 px-1", children: [_jsx("code", { className: "text-xs font-mono truncate max-w-[80%]", style: { color: 'var(--ds-gray-900)' }, title: streamId, children: streamId }), _jsxs("span", { className: "text-xs flex items-center gap-1.5", style: {
|
|
87
76
|
color: isLive ? 'var(--ds-green-700)' : 'var(--ds-gray-600)',
|
|
88
77
|
}, children: [_jsx("span", { className: "inline-block w-2 h-2 rounded-full", style: {
|
|
89
78
|
backgroundColor: isLive
|
|
90
79
|
? 'var(--ds-green-600)'
|
|
91
80
|
: 'var(--ds-gray-500)',
|
|
92
|
-
} }), isLive ? 'Live' : 'Closed'] })] }),
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
background: 'linear-gradient(to top, var(--ds-background-100), transparent)',
|
|
106
|
-
} }))] })] }));
|
|
81
|
+
} }), isLive ? 'Live' : 'Closed'] })] }), _jsx("div", { ref: scrollRef, className: "flex-1 overflow-auto min-h-[200px] flex flex-col gap-2", children: error ? (_jsxs("div", { className: "text-[11px] rounded-md border p-3", style: {
|
|
82
|
+
borderColor: 'var(--ds-red-300)',
|
|
83
|
+
backgroundColor: 'var(--ds-red-100)',
|
|
84
|
+
color: 'var(--ds-red-700)',
|
|
85
|
+
}, children: [_jsx("div", { children: "Error reading stream:" }), _jsx("div", { children: error })] })) : chunks.length === 0 ? (_jsx("div", { className: "text-[11px] rounded-md border p-3", style: {
|
|
86
|
+
borderColor: 'var(--ds-gray-300)',
|
|
87
|
+
backgroundColor: 'var(--ds-gray-100)',
|
|
88
|
+
color: 'var(--ds-gray-600)',
|
|
89
|
+
}, children: isLive ? 'Waiting for stream data...' : 'Stream is empty' })) : (chunks.map((chunk, index) => (_jsx("pre", { className: "text-[11px] rounded-md border p-3 m-0 whitespace-pre-wrap break-words", style: {
|
|
90
|
+
borderColor: 'var(--ds-gray-300)',
|
|
91
|
+
backgroundColor: 'var(--ds-gray-100)',
|
|
92
|
+
color: 'var(--ds-gray-1000)',
|
|
93
|
+
}, children: _jsxs("code", { children: [_jsxs("span", { className: "select-none mr-2", style: { color: 'var(--ds-gray-500)' }, children: ["[", index, "]"] }), chunk.text] }) }, `${streamId}-chunk-${chunk.id}`)))) })] }));
|
|
107
94
|
}
|
|
108
95
|
//# sourceMappingURL=stream-viewer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-viewer.js","sourceRoot":"","sources":["../src/stream-viewer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"stream-viewer.js","sourceRoot":"","sources":["../src/stream-viewer.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workflow/web-shared",
|
|
3
3
|
"description": "Shared components for Workflow Observability UI",
|
|
4
|
-
"version": "4.0.1-beta.
|
|
4
|
+
"version": "4.0.1-beta.28",
|
|
5
5
|
"private": false,
|
|
6
6
|
"files": [
|
|
7
7
|
"dist",
|
|
@@ -37,18 +37,20 @@
|
|
|
37
37
|
"react": "19.1.0",
|
|
38
38
|
"react-dom": "19.1.0",
|
|
39
39
|
"sonner": "2.0.7",
|
|
40
|
+
"streamdown": "1.4.0",
|
|
40
41
|
"swr": "2.3.6",
|
|
41
42
|
"tailwind-merge": "2.5.5",
|
|
42
43
|
"tailwindcss": "4",
|
|
43
|
-
"@workflow/core": "4.0.1-beta.
|
|
44
|
-
"@workflow/
|
|
45
|
-
"@workflow/
|
|
44
|
+
"@workflow/core": "4.0.1-beta.27",
|
|
45
|
+
"@workflow/errors": "4.0.1-beta.9",
|
|
46
|
+
"@workflow/world": "4.0.1-beta.10"
|
|
46
47
|
},
|
|
47
48
|
"devDependencies": {
|
|
48
49
|
"@biomejs/biome": "^2.2.7",
|
|
49
50
|
"@types/node": "22.19.0",
|
|
50
51
|
"@types/react": "19",
|
|
51
52
|
"@types/react-dom": "19",
|
|
53
|
+
"ai": "5.0.104",
|
|
52
54
|
"typescript": "^5.9.3",
|
|
53
55
|
"@workflow/tsconfig": "4.0.1-beta.0"
|
|
54
56
|
},
|