@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.
Files changed (36) hide show
  1. package/dist/api/workflow-api-client.d.ts +27 -18
  2. package/dist/api/workflow-api-client.d.ts.map +1 -1
  3. package/dist/api/workflow-api-client.js +20 -1
  4. package/dist/api/workflow-api-client.js.map +1 -1
  5. package/dist/api/workflow-server-actions.d.ts +30 -0
  6. package/dist/api/workflow-server-actions.d.ts.map +1 -1
  7. package/dist/api/workflow-server-actions.js +80 -0
  8. package/dist/api/workflow-server-actions.js.map +1 -1
  9. package/dist/index.d.ts +5 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +3 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/lib/event-analysis.d.ts +60 -0
  14. package/dist/lib/event-analysis.d.ts.map +1 -0
  15. package/dist/lib/event-analysis.js +168 -0
  16. package/dist/lib/event-analysis.js.map +1 -0
  17. package/dist/lib/utils.d.ts +25 -0
  18. package/dist/lib/utils.d.ts.map +1 -1
  19. package/dist/lib/utils.js +45 -0
  20. package/dist/lib/utils.js.map +1 -1
  21. package/dist/sidebar/attribute-panel.d.ts +6 -1
  22. package/dist/sidebar/attribute-panel.d.ts.map +1 -1
  23. package/dist/sidebar/attribute-panel.js +43 -5
  24. package/dist/sidebar/attribute-panel.js.map +1 -1
  25. package/dist/sidebar/conversation-view.d.ts +7 -0
  26. package/dist/sidebar/conversation-view.d.ts.map +1 -0
  27. package/dist/sidebar/conversation-view.js +125 -0
  28. package/dist/sidebar/conversation-view.js.map +1 -0
  29. package/dist/sidebar/workflow-detail-panel.d.ts.map +1 -1
  30. package/dist/sidebar/workflow-detail-panel.js +46 -3
  31. package/dist/sidebar/workflow-detail-panel.js.map +1 -1
  32. package/dist/stream-viewer.d.ts +1 -0
  33. package/dist/stream-viewer.d.ts.map +1 -1
  34. package/dist/stream-viewer.js +16 -29
  35. package/dist/stream-viewer.js.map +1 -1
  36. 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 { useEffect, useMemo } from 'react';
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":"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"}
1
+ {"version":3,"file":"workflow-detail-panel.js","sourceRoot":"","sources":["../../src/sidebar/workflow-detail-panel.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { EnvMap } from './api/workflow-server-actions';
2
2
  interface StreamViewerProps {
3
3
  env: EnvMap;
4
+ runId: string;
4
5
  streamId: string;
5
6
  }
6
7
  /**
@@ -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,2CAyLhE"}
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"}
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { useCallback, useEffect, useRef, useState } from 'react';
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
- // Check scroll position after content changes
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 pb-4", 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: {
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'] })] }), _jsxs("div", { className: "relative flex-1 min-h-[200px]", children: [_jsx("div", { ref: scrollRef, onScroll: checkScrollPosition, className: "absolute inset-0 overflow-auto flex flex-col gap-2", children: error ? (_jsxs("div", { className: "text-[11px] rounded-md border p-3", style: {
93
- borderColor: 'var(--ds-red-300)',
94
- backgroundColor: 'var(--ds-red-100)',
95
- color: 'var(--ds-red-700)',
96
- }, 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: {
97
- borderColor: 'var(--ds-gray-300)',
98
- backgroundColor: 'var(--ds-gray-100)',
99
- color: 'var(--ds-gray-600)',
100
- }, 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: {
101
- borderColor: 'var(--ds-gray-300)',
102
- backgroundColor: 'var(--ds-gray-100)',
103
- color: 'var(--ds-gray-1000)',
104
- }, 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}`)))) }), hasMoreBelow && (_jsx("div", { className: "absolute bottom-0 left-0 right-0 h-8 pointer-events-none", style: {
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":"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"}
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.26",
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.25",
44
- "@workflow/world": "4.0.1-beta.10",
45
- "@workflow/errors": "4.0.1-beta.7"
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
  },