@workflow/web-shared 4.0.1-beta.9 → 4.1.0-beta.46

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 (137) hide show
  1. package/README.md +2 -0
  2. package/dist/api/workflow-api-client.d.ts +325 -85
  3. package/dist/api/workflow-api-client.d.ts.map +1 -1
  4. package/dist/api/workflow-api-client.js +370 -214
  5. package/dist/api/workflow-api-client.js.map +1 -1
  6. package/dist/api/workflow-server-actions.d.ts +136 -3
  7. package/dist/api/workflow-server-actions.d.ts.map +1 -1
  8. package/dist/api/workflow-server-actions.js +649 -116
  9. package/dist/api/workflow-server-actions.js.map +1 -1
  10. package/dist/components/ui/card.d.ts +9 -0
  11. package/dist/components/ui/card.d.ts.map +1 -0
  12. package/dist/components/ui/card.js +18 -0
  13. package/dist/components/ui/card.js.map +1 -0
  14. package/dist/components/ui/error-card.d.ts +15 -0
  15. package/dist/components/ui/error-card.d.ts.map +1 -0
  16. package/dist/components/ui/error-card.js +14 -0
  17. package/dist/components/ui/error-card.js.map +1 -0
  18. package/dist/components/ui/skeleton.d.ts +3 -0
  19. package/dist/components/ui/skeleton.d.ts.map +1 -0
  20. package/dist/components/ui/skeleton.js +7 -0
  21. package/dist/components/ui/skeleton.js.map +1 -0
  22. package/dist/error-boundary.d.ts +28 -0
  23. package/dist/error-boundary.d.ts.map +1 -0
  24. package/dist/error-boundary.js +51 -0
  25. package/dist/error-boundary.js.map +1 -0
  26. package/dist/event-list-view.d.ts +13 -0
  27. package/dist/event-list-view.d.ts.map +1 -0
  28. package/dist/event-list-view.js +183 -0
  29. package/dist/event-list-view.js.map +1 -0
  30. package/dist/hook-actions.d.ts +59 -0
  31. package/dist/hook-actions.d.ts.map +1 -0
  32. package/dist/hook-actions.js +76 -0
  33. package/dist/hook-actions.js.map +1 -0
  34. package/dist/hooks/use-dark-mode.d.ts +9 -0
  35. package/dist/hooks/use-dark-mode.d.ts.map +1 -0
  36. package/dist/hooks/use-dark-mode.js +30 -0
  37. package/dist/hooks/use-dark-mode.js.map +1 -0
  38. package/dist/index.d.ts +14 -1
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +9 -1
  41. package/dist/index.js.map +1 -1
  42. package/dist/lib/event-analysis.d.ts +55 -0
  43. package/dist/lib/event-analysis.d.ts.map +1 -0
  44. package/dist/lib/event-analysis.js +161 -0
  45. package/dist/lib/event-analysis.js.map +1 -0
  46. package/dist/lib/utils.d.ts +44 -0
  47. package/dist/lib/utils.d.ts.map +1 -1
  48. package/dist/lib/utils.js +109 -0
  49. package/dist/lib/utils.js.map +1 -1
  50. package/dist/run-trace-view.d.ts.map +1 -1
  51. package/dist/run-trace-view.js +1 -1
  52. package/dist/run-trace-view.js.map +1 -1
  53. package/dist/sidebar/attribute-panel.d.ts +12 -2
  54. package/dist/sidebar/attribute-panel.d.ts.map +1 -1
  55. package/dist/sidebar/attribute-panel.js +368 -23
  56. package/dist/sidebar/attribute-panel.js.map +1 -1
  57. package/dist/sidebar/conversation-view.d.ts +7 -0
  58. package/dist/sidebar/conversation-view.d.ts.map +1 -0
  59. package/dist/sidebar/conversation-view.js +125 -0
  60. package/dist/sidebar/conversation-view.js.map +1 -0
  61. package/dist/sidebar/detail-card.d.ts.map +1 -1
  62. package/dist/sidebar/detail-card.js +2 -2
  63. package/dist/sidebar/detail-card.js.map +1 -1
  64. package/dist/sidebar/entity-detail-panel.d.ts +12 -0
  65. package/dist/sidebar/entity-detail-panel.d.ts.map +1 -0
  66. package/dist/sidebar/entity-detail-panel.js +190 -0
  67. package/dist/sidebar/entity-detail-panel.js.map +1 -0
  68. package/dist/sidebar/events-list.d.ts +2 -1
  69. package/dist/sidebar/events-list.d.ts.map +1 -1
  70. package/dist/sidebar/events-list.js +11 -10
  71. package/dist/sidebar/events-list.js.map +1 -1
  72. package/dist/sidebar/resolve-hook-modal.d.ts +16 -0
  73. package/dist/sidebar/resolve-hook-modal.d.ts.map +1 -0
  74. package/dist/sidebar/resolve-hook-modal.js +74 -0
  75. package/dist/sidebar/resolve-hook-modal.js.map +1 -0
  76. package/dist/stream-viewer.d.ts +13 -0
  77. package/dist/stream-viewer.d.ts.map +1 -0
  78. package/dist/stream-viewer.js +109 -0
  79. package/dist/stream-viewer.js.map +1 -0
  80. package/dist/trace-viewer/components/markers.d.ts.map +1 -1
  81. package/dist/trace-viewer/components/markers.js +3 -2
  82. package/dist/trace-viewer/components/markers.js.map +1 -1
  83. package/dist/trace-viewer/components/node.d.ts.map +1 -1
  84. package/dist/trace-viewer/components/node.js +1 -0
  85. package/dist/trace-viewer/components/node.js.map +1 -1
  86. package/dist/trace-viewer/components/search.d.ts.map +1 -1
  87. package/dist/trace-viewer/components/search.js +1 -0
  88. package/dist/trace-viewer/components/search.js.map +1 -1
  89. package/dist/trace-viewer/components/span-detail-panel.js +2 -2
  90. package/dist/trace-viewer/components/span-detail-panel.js.map +1 -1
  91. package/dist/trace-viewer/context.d.ts.map +1 -1
  92. package/dist/trace-viewer/context.js +1 -0
  93. package/dist/trace-viewer/context.js.map +1 -1
  94. package/dist/trace-viewer/trace-viewer.module.css +47 -30
  95. package/dist/trace-viewer/types.d.ts +11 -0
  96. package/dist/trace-viewer/types.d.ts.map +1 -1
  97. package/dist/trace-viewer/util/timing.d.ts +7 -1
  98. package/dist/trace-viewer/util/timing.d.ts.map +1 -1
  99. package/dist/trace-viewer/util/timing.js +7 -12
  100. package/dist/trace-viewer/util/timing.js.map +1 -1
  101. package/dist/trace-viewer/util/tree.d.ts.map +1 -1
  102. package/dist/trace-viewer/util/tree.js +4 -0
  103. package/dist/trace-viewer/util/tree.js.map +1 -1
  104. package/dist/trace-viewer/util/use-immediate-style.d.ts.map +1 -1
  105. package/dist/trace-viewer/util/use-immediate-style.js +1 -0
  106. package/dist/trace-viewer/util/use-immediate-style.js.map +1 -1
  107. package/dist/trace-viewer/util/use-streaming-spans.d.ts.map +1 -1
  108. package/dist/trace-viewer/util/use-streaming-spans.js +2 -1
  109. package/dist/trace-viewer/util/use-streaming-spans.js.map +1 -1
  110. package/dist/trace-viewer/util/use-trackpad-zoom.d.ts.map +1 -1
  111. package/dist/trace-viewer/util/use-trackpad-zoom.js +1 -0
  112. package/dist/trace-viewer/util/use-trackpad-zoom.js.map +1 -1
  113. package/dist/trace-viewer/worker.js +1 -1
  114. package/dist/trace-viewer/worker.js.map +1 -1
  115. package/dist/workflow-trace-view.d.ts +3 -1
  116. package/dist/workflow-trace-view.d.ts.map +1 -1
  117. package/dist/workflow-trace-view.js +28 -11
  118. package/dist/workflow-trace-view.js.map +1 -1
  119. package/dist/workflow-traces/event-colors.d.ts +1 -1
  120. package/dist/workflow-traces/event-colors.js +2 -2
  121. package/dist/workflow-traces/event-colors.js.map +1 -1
  122. package/dist/workflow-traces/trace-colors.d.ts.map +1 -1
  123. package/dist/workflow-traces/trace-colors.js +1 -3
  124. package/dist/workflow-traces/trace-colors.js.map +1 -1
  125. package/dist/workflow-traces/trace-span-construction.d.ts +18 -3
  126. package/dist/workflow-traces/trace-span-construction.d.ts.map +1 -1
  127. package/dist/workflow-traces/trace-span-construction.js +84 -31
  128. package/dist/workflow-traces/trace-span-construction.js.map +1 -1
  129. package/dist/workflow-traces/trace-time-utils.d.ts +2 -2
  130. package/dist/workflow-traces/trace-time-utils.d.ts.map +1 -1
  131. package/dist/workflow-traces/trace-time-utils.js +9 -0
  132. package/dist/workflow-traces/trace-time-utils.js.map +1 -1
  133. package/package.json +24 -14
  134. package/dist/sidebar/workflow-detail-panel.d.ts +0 -8
  135. package/dist/sidebar/workflow-detail-panel.d.ts.map +0 -1
  136. package/dist/sidebar/workflow-detail-panel.js +0 -56
  137. package/dist/sidebar/workflow-detail-panel.js.map +0 -1
@@ -1,11 +1,21 @@
1
- export declare const AttributeBlock: ({ attribute, value, isLoading, }: {
1
+ export declare const localMillisecondTime: (value: unknown) => string;
2
+ interface DisplayContext {
3
+ stepName?: string;
4
+ }
5
+ export declare const AttributeBlock: ({ attribute, value, isLoading, inline, context, }: {
2
6
  attribute: string;
3
7
  value: unknown;
4
8
  isLoading?: boolean;
9
+ inline?: boolean;
10
+ context?: DisplayContext;
5
11
  }) => import("react/jsx-runtime").JSX.Element | null;
6
- export declare const AttributePanel: ({ data, isLoading, error, }: {
12
+ export declare const AttributePanel: ({ data, isLoading, error, expiredAt, onStreamClick, }: {
7
13
  data: Record<string, unknown>;
8
14
  isLoading?: boolean;
9
15
  error?: Error;
16
+ expiredAt?: string | Date;
17
+ /** Callback when a stream reference is clicked */
18
+ onStreamClick?: (streamId: string) => void;
10
19
  }) => import("react/jsx-runtime").JSX.Element;
20
+ export {};
11
21
  //# sourceMappingURL=attribute-panel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attribute-panel.d.ts","sourceRoot":"","sources":["../../src/sidebar/attribute-panel.tsx"],"names":[],"mappings":"AA8IA,eAAO,MAAM,cAAc,GAAI,kCAI5B;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,mDA4BA,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,6BAI5B;IACD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,4CAsCA,CAAC"}
1
+ {"version":3,"file":"attribute-panel.d.ts","sourceRoot":"","sources":["../../src/sidebar/attribute-panel.tsx"],"names":[],"mappings":"AA2hBA,eAAO,MAAM,oBAAoB,GAAI,OAAO,OAAO,KAAG,MAsBrD,CAAC;AAEF,UAAU,cAAc;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAoMD,eAAO,MAAM,cAAc,GAAI,mDAM5B;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,mDAkDA,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,uDAM5B;IACD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kDAAkD;IAClD,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C,4CAmGA,CAAC"}
@@ -1,15 +1,253 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { parseStepName, parseWorkflowName } from '@workflow/core/parse-name';
4
- import { AlertCircle } from 'lucide-react';
5
- import { Alert, AlertDescription, AlertTitle } from '../components/ui/alert';
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { parseStepName, parseWorkflowName } from '@workflow/utils/parse-name';
4
+ import { createContext, useContext, useMemo, useState } from 'react';
5
+ import { ErrorCard } from '../components/ui/error-card';
6
+ import { useDarkMode } from '../hooks/use-dark-mode';
7
+ import { extractConversation, isDoStreamStep } from '../lib/utils';
8
+ import { ConversationView } from './conversation-view';
6
9
  import { DetailCard } from './detail-card';
10
+ /**
11
+ * Tab button for conversation/JSON toggle
12
+ */
13
+ function TabButton({ active, onClick, children, }) {
14
+ return (_jsx("button", { type: "button", onClick: onClick, className: "px-3 py-1.5 text-[11px] font-medium transition-colors -mb-px", style: {
15
+ // Explicit styles to prevent app-level button overrides when web-shared
16
+ // is embedded in a self-hosted app.
17
+ backgroundColor: 'transparent',
18
+ borderTop: 'none',
19
+ borderLeft: 'none',
20
+ borderRight: 'none',
21
+ borderBottom: `2px solid ${active ? 'var(--ds-blue-600)' : 'transparent'}`,
22
+ borderRadius: 0,
23
+ outline: 'none',
24
+ boxShadow: 'none',
25
+ cursor: 'pointer',
26
+ color: active ? 'var(--ds-gray-1000)' : 'var(--ds-gray-600)',
27
+ }, children: children }));
28
+ }
29
+ /**
30
+ * Tabbed view for conversation and raw JSON
31
+ */
32
+ function ConversationWithTabs({ conversation, args, }) {
33
+ const [activeTab, setActiveTab] = useState('conversation');
34
+ return (_jsx(DetailCard, { summary: `Input (${conversation.length} messages)`, children: _jsxs("div", { className: "rounded-md border", style: {
35
+ borderColor: 'var(--ds-gray-300)',
36
+ backgroundColor: 'transparent',
37
+ }, children: [_jsxs("div", { className: "flex gap-1 border-b", style: {
38
+ borderColor: 'var(--ds-gray-300)',
39
+ backgroundColor: 'transparent',
40
+ }, children: [_jsx(TabButton, { active: activeTab === 'conversation', onClick: () => setActiveTab('conversation'), children: "Conversation" }), _jsx(TabButton, { active: activeTab === 'json', onClick: () => setActiveTab('json'), children: "Raw JSON" })] }), activeTab === 'conversation' ? (_jsx(ConversationView, { messages: conversation })) : (_jsx("div", { className: "p-3", children: Array.isArray(args)
41
+ ? args.map((v, i) => (_jsx("div", { className: "mt-2 first:mt-0", children: JsonBlock(v) }, i)))
42
+ : JsonBlock(args) }))] }) }));
43
+ }
44
+ /**
45
+ * Context for stream click handler
46
+ */
47
+ const StreamClickContext = createContext(undefined);
48
+ /**
49
+ * Marker for stream reference objects that can be rendered as links
50
+ * This is duplicated from @workflow/core/observability to avoid pulling in
51
+ * Node.js dependencies into the client bundle.
52
+ */
53
+ const STREAM_REF_TYPE = '__workflow_stream_ref__';
54
+ /**
55
+ * Check if a value is a StreamRef object
56
+ *
57
+ */
58
+ const isStreamRef = (value) => {
59
+ // TODO: This is duplicated from @workflow/core/observability, but can't be pulled
60
+ // in client-side code because it's a Node.js dependency.
61
+ return (value !== null &&
62
+ typeof value === 'object' &&
63
+ '__type' in value &&
64
+ value.__type === STREAM_REF_TYPE &&
65
+ 'streamId' in value &&
66
+ typeof value.streamId === 'string');
67
+ };
68
+ /**
69
+ * Marker for custom class instance references.
70
+ * This is duplicated from @workflow/core/observability to avoid pulling in
71
+ * Node.js dependencies into the client bundle.
72
+ */
73
+ const CLASS_INSTANCE_REF_TYPE = '__workflow_class_instance_ref__';
74
+ /**
75
+ * Check if a value is a ClassInstanceRef object
76
+ */
77
+ const isClassInstanceRef = (value) => {
78
+ return (value !== null &&
79
+ typeof value === 'object' &&
80
+ '__type' in value &&
81
+ value.__type === CLASS_INSTANCE_REF_TYPE &&
82
+ 'className' in value &&
83
+ typeof value.className === 'string');
84
+ };
85
+ import ColorHash from 'color-hash';
86
+ /**
87
+ * Color hash instance configured for nice saturation and lightness.
88
+ * Returns HSL values which we can transform for different use cases.
89
+ */
90
+ const colorHash = new ColorHash({
91
+ saturation: [0.5, 0.6, 0.7],
92
+ lightness: [0.4, 0.5, 0.6],
93
+ });
94
+ /**
95
+ * Convert HSL to CSS hsl() string
96
+ */
97
+ const hslToString = (h, s, l) => {
98
+ return `hsl(${h}, ${Math.round(s * 100)}%, ${Math.round(l * 100)}%)`;
99
+ };
100
+ /**
101
+ * Get consistent colors for a class ID using color-hash and HSL transformations.
102
+ * Adjusts colors based on light/dark mode for optimal appearance.
103
+ */
104
+ const getClassColors = (classId, isDark) => {
105
+ const [h, s, l] = colorHash.hsl(classId);
106
+ if (isDark) {
107
+ // Dark mode: vibrant header, dark body, light text
108
+ return {
109
+ header: hslToString(h, s, Math.min(l + 0.1, 0.6)), // Slightly brighter header
110
+ body: hslToString(h, s * 0.8, 0.15), // Very dark, slightly desaturated body
111
+ text: hslToString(h, s * 0.6, 0.8), // Light, slightly desaturated text
112
+ };
113
+ }
114
+ else {
115
+ // Light mode: vibrant header, light body, dark text
116
+ return {
117
+ header: hslToString(h, s, l), // Use base color for header
118
+ body: hslToString(h, s * 0.4, 0.95), // Very light, desaturated body
119
+ text: hslToString(h, s * 0.8, 0.25), // Dark, saturated text
120
+ };
121
+ }
122
+ };
123
+ /**
124
+ * Renders a ClassInstanceRef as a styled card showing the class name and serialized data.
125
+ * The header color is determined by hashing the classId for visual distinction.
126
+ * Reacts to theme changes for proper dark/light mode support.
127
+ */
128
+ const ClassInstanceRefDisplay = ({ classInstanceRef, }) => {
129
+ const isDark = useDarkMode();
130
+ const colors = getClassColors(classInstanceRef.classId, isDark);
131
+ return (_jsxs("div", { className: "inline-flex flex-col rounded text-[11px] font-mono my-1", style: {
132
+ backgroundColor: colors.body,
133
+ border: `1px solid ${colors.header}`,
134
+ }, children: [_jsxs("div", { className: "flex items-center gap-1.5 px-2 py-1 rounded-t", style: {
135
+ backgroundColor: colors.header,
136
+ color: '#FFFFFF',
137
+ }, title: `Custom class: ${classInstanceRef.classId}`, children: [_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("title", { children: "Class instance" }), _jsx("path", { d: "M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z" }), _jsx("polyline", { points: "3.27 6.96 12 12.01 20.73 6.96" }), _jsx("line", { x1: "12", y1: "22.08", x2: "12", y2: "12" })] }), _jsx("span", { className: "font-semibold", children: classInstanceRef.className })] }), _jsx("pre", { className: "px-2 py-1.5 overflow-x-auto whitespace-pre-wrap", style: { color: colors.text }, children: JSON.stringify(classInstanceRef.data, null, 2) })] }));
138
+ };
139
+ /**
140
+ * Renders a StreamRef as a styled link/badge
141
+ */
142
+ const StreamRefDisplay = ({ streamRef }) => {
143
+ const onStreamClick = useContext(StreamClickContext);
144
+ const handleClick = () => {
145
+ if (onStreamClick) {
146
+ onStreamClick(streamRef.streamId);
147
+ }
148
+ };
149
+ return (_jsxs("button", { type: "button", onClick: handleClick, className: "inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[10px] font-mono cursor-pointer hover:opacity-80 transition-opacity", style: {
150
+ backgroundColor: 'var(--ds-blue-200)',
151
+ color: 'var(--ds-blue-900)',
152
+ border: '1px solid var(--ds-blue-400)',
153
+ }, title: `Click to view stream: ${streamRef.streamId}`, children: [_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "10", height: "10", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("title", { children: "Stream icon" }), _jsx("path", { d: "M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z" }), _jsx("circle", { cx: "12", cy: "12", r: "3" })] }), streamRef.streamId.length > 40
154
+ ? `${streamRef.streamId.slice(0, 20)}...${streamRef.streamId.slice(-15)}`
155
+ : streamRef.streamId] }));
156
+ };
157
+ /**
158
+ * Recursively transforms a value for JSON display, replacing StreamRef and
159
+ * ClassInstanceRef objects with placeholder strings that can be identified
160
+ * and replaced with React elements.
161
+ */
162
+ const transformValueForDisplay = (value) => {
163
+ const streamRefs = new Map();
164
+ const classInstanceRefs = new Map();
165
+ let counter = 0;
166
+ const transform = (v) => {
167
+ if (isStreamRef(v)) {
168
+ const placeholder = `__STREAM_REF_${counter++}__`;
169
+ streamRefs.set(placeholder, v);
170
+ return placeholder;
171
+ }
172
+ if (isClassInstanceRef(v)) {
173
+ const placeholder = `__CLASS_INSTANCE_REF_${counter++}__`;
174
+ classInstanceRefs.set(placeholder, v);
175
+ return placeholder;
176
+ }
177
+ if (Array.isArray(v)) {
178
+ return v.map(transform);
179
+ }
180
+ if (v !== null && typeof v === 'object') {
181
+ const result = {};
182
+ for (const [key, val] of Object.entries(v)) {
183
+ result[key] = transform(val);
184
+ }
185
+ return result;
186
+ }
187
+ return v;
188
+ };
189
+ const transformed = transform(value);
190
+ return {
191
+ json: JSON.stringify(transformed, null, 2),
192
+ streamRefs,
193
+ classInstanceRefs,
194
+ };
195
+ };
7
196
  const JsonBlock = (value) => {
8
- return (_jsx("pre", { className: "text-copy-12 overflow-x-auto rounded-md border p-4", style: {
197
+ const { json, streamRefs, classInstanceRefs } = transformValueForDisplay(value);
198
+ // If no special refs, just render plain JSON
199
+ if (streamRefs.size === 0 && classInstanceRefs.size === 0) {
200
+ return (_jsx("pre", { className: "text-[11px] overflow-x-auto rounded-md border p-3", style: {
201
+ borderColor: 'var(--ds-gray-300)',
202
+ backgroundColor: 'var(--ds-gray-100)',
203
+ color: 'var(--ds-gray-1000)',
204
+ }, children: _jsx("code", { children: json }) }));
205
+ }
206
+ // Build a combined map of all placeholders to their React elements
207
+ const placeholderComponents = new Map();
208
+ let keyIndex = 0;
209
+ for (const [placeholder, streamRef] of streamRefs) {
210
+ placeholderComponents.set(placeholder, _jsx(StreamRefDisplay, { streamRef: streamRef }, keyIndex++));
211
+ }
212
+ for (const [placeholder, classInstanceRef] of classInstanceRefs) {
213
+ placeholderComponents.set(placeholder, _jsx(ClassInstanceRefDisplay, { classInstanceRef: classInstanceRef }, keyIndex++));
214
+ }
215
+ // Split the JSON by all placeholders and render with React elements
216
+ const parts = [];
217
+ let remaining = json;
218
+ // Process placeholders in order of their appearance in the string
219
+ while (remaining.length > 0) {
220
+ let earliestIndex = -1;
221
+ let earliestPlaceholder = '';
222
+ let earliestComponent = null;
223
+ // Find the earliest placeholder in the remaining string
224
+ for (const [placeholder, component] of placeholderComponents) {
225
+ const index = remaining.indexOf(`"${placeholder}"`);
226
+ if (index !== -1 && (earliestIndex === -1 || index < earliestIndex)) {
227
+ earliestIndex = index;
228
+ earliestPlaceholder = placeholder;
229
+ earliestComponent = component;
230
+ }
231
+ }
232
+ if (earliestIndex === -1) {
233
+ // No more placeholders found, add the rest
234
+ parts.push(remaining);
235
+ break;
236
+ }
237
+ // Add text before the placeholder
238
+ if (earliestIndex > 0) {
239
+ parts.push(remaining.slice(0, earliestIndex));
240
+ }
241
+ // Add the component
242
+ parts.push(earliestComponent);
243
+ // Move past the placeholder
244
+ remaining = remaining.slice(earliestIndex + earliestPlaceholder.length + 2); // +2 for quotes
245
+ }
246
+ return (_jsx("pre", { className: "text-[11px] overflow-x-auto rounded-md border p-3", style: {
9
247
  borderColor: 'var(--ds-gray-300)',
10
248
  backgroundColor: 'var(--ds-gray-100)',
11
249
  color: 'var(--ds-gray-1000)',
12
- }, children: _jsx("code", { children: JSON.stringify(value, null, 2) }) }));
250
+ }, children: _jsx("code", { children: parts }) }));
13
251
  };
14
252
  const attributeOrder = [
15
253
  'workflowName',
@@ -24,6 +262,8 @@ const attributeOrder = [
24
262
  'correlationId',
25
263
  'eventType',
26
264
  'deploymentId',
265
+ 'specVersion',
266
+ 'workflowCoreVersion',
27
267
  'ownerId',
28
268
  'projectId',
29
269
  'environment',
@@ -32,9 +272,9 @@ const attributeOrder = [
32
272
  'startedAt',
33
273
  'updatedAt',
34
274
  'completedAt',
275
+ 'expiredAt',
35
276
  'retryAfter',
36
277
  'error',
37
- 'errorCode',
38
278
  'metadata',
39
279
  'eventData',
40
280
  'input',
@@ -46,6 +286,43 @@ const sortByAttributeOrder = (a, b) => {
46
286
  const bIndex = attributeOrder.indexOf(b) || 0;
47
287
  return aIndex - bIndex;
48
288
  };
289
+ /**
290
+ * Display names for attributes that should render differently from their key.
291
+ */
292
+ const attributeDisplayNames = {
293
+ workflowCoreVersion: '@workflow/core version',
294
+ };
295
+ /**
296
+ * Get the display name for an attribute key.
297
+ */
298
+ const getAttributeDisplayName = (attribute) => {
299
+ return attributeDisplayNames[attribute] ?? attribute;
300
+ };
301
+ export const localMillisecondTime = (value) => {
302
+ let date;
303
+ if (value instanceof Date) {
304
+ date = value;
305
+ }
306
+ else if (typeof value === 'number') {
307
+ date = new Date(value);
308
+ }
309
+ else if (typeof value === 'string') {
310
+ date = new Date(value);
311
+ }
312
+ else {
313
+ date = new Date(String(value));
314
+ }
315
+ // e.g. 12/17/2025, 9:08:55.182 AM
316
+ return date.toLocaleString(undefined, {
317
+ year: 'numeric',
318
+ month: 'numeric',
319
+ day: 'numeric',
320
+ hour: 'numeric',
321
+ minute: 'numeric',
322
+ second: 'numeric',
323
+ fractionalSecondDigits: 3,
324
+ });
325
+ };
49
326
  const attributeToDisplayFn = {
50
327
  // Names that need pretty-printing
51
328
  workflowName: (value) => parseWorkflowName(String(value))?.shortName ?? '?',
@@ -65,6 +342,8 @@ const attributeToDisplayFn = {
65
342
  correlationId: (value) => String(value),
66
343
  // Project details
67
344
  deploymentId: (value) => String(value),
345
+ specVersion: (value) => String(value),
346
+ workflowCoreVersion: (value) => String(value),
68
347
  // Tenancy (we don't show these)
69
348
  ownerId: (_value) => null,
70
349
  projectId: (_value) => null,
@@ -72,15 +351,33 @@ const attributeToDisplayFn = {
72
351
  executionContext: (_value) => null,
73
352
  // Dates
74
353
  // TODO: relative time with tooltips for ISO times
75
- createdAt: (value) => new Date(String(value)).toLocaleString(),
76
- startedAt: (value) => new Date(String(value)).toLocaleString(),
77
- updatedAt: (value) => new Date(String(value)).toLocaleString(),
78
- completedAt: (value) => new Date(String(value)).toLocaleString(),
79
- retryAfter: (value) => new Date(String(value)).toLocaleString(),
80
- resumeAt: (value) => new Date(String(value)).toLocaleString(),
354
+ createdAt: localMillisecondTime,
355
+ startedAt: localMillisecondTime,
356
+ updatedAt: localMillisecondTime,
357
+ completedAt: localMillisecondTime,
358
+ expiredAt: localMillisecondTime,
359
+ retryAfter: localMillisecondTime,
360
+ resumeAt: localMillisecondTime,
81
361
  // Resolved attributes, won't actually use this function
82
362
  metadata: JsonBlock,
83
- input: (value) => {
363
+ input: (value, context) => {
364
+ // Check if input has args + closure vars structure
365
+ if (value && typeof value === 'object' && 'args' in value) {
366
+ const { args, closureVars } = value;
367
+ const argCount = Array.isArray(args) ? args.length : 0;
368
+ const hasClosureVars = closureVars && Object.keys(closureVars).length > 0;
369
+ // Check if this is a doStreamStep - show conversation view with tabs
370
+ if (context?.stepName && isDoStreamStep(context.stepName)) {
371
+ const conversation = extractConversation(args);
372
+ if (conversation && conversation.length > 0) {
373
+ return (_jsxs(_Fragment, { children: [_jsx(ConversationWithTabs, { conversation: conversation, args: args }), hasClosureVars && (_jsx(DetailCard, { summary: "Closure Variables", children: JsonBlock(closureVars) }))] }));
374
+ }
375
+ }
376
+ return (_jsxs(_Fragment, { children: [_jsx(DetailCard, { summary: `Input (${argCount} arguments)`, children: Array.isArray(args)
377
+ ? args.map((v, i) => (_jsx("div", { className: "mt-2", children: JsonBlock(v) }, i)))
378
+ : JsonBlock(args) }), hasClosureVars && (_jsx(DetailCard, { summary: "Closure Variables", children: JsonBlock(closureVars) }))] }));
379
+ }
380
+ // Fallback: treat as plain array or object
84
381
  const argCount = Array.isArray(value) ? value.length : 0;
85
382
  return (_jsx(DetailCard, { summary: `Input (${argCount} arguments)`, children: Array.isArray(value)
86
383
  ? value.map((v, i) => (_jsx("div", { className: "mt-2", children: JsonBlock(v) }, i)))
@@ -90,9 +387,24 @@ const attributeToDisplayFn = {
90
387
  return _jsx(DetailCard, { summary: "Output", children: JsonBlock(value) });
91
388
  },
92
389
  error: (value) => {
93
- return _jsx(DetailCard, { summary: "Error", children: JsonBlock(value) });
390
+ // Handle structured error format
391
+ if (value && typeof value === 'object' && 'message' in value) {
392
+ const error = value;
393
+ return (_jsx(DetailCard, { summary: "Error", children: _jsxs("div", { className: "flex flex-col gap-2", children: [error.code && (_jsxs("div", { children: [_jsxs("span", { className: "text-[11px] font-medium", style: { color: 'var(--ds-gray-700)' }, children: ["Error Code:", ' '] }), _jsx("code", { className: "text-[11px]", style: { color: 'var(--ds-gray-1000)' }, children: error.code })] })), _jsx("pre", { className: "text-[11px] overflow-x-auto rounded-md border p-3", style: {
394
+ borderColor: 'var(--ds-gray-300)',
395
+ backgroundColor: 'var(--ds-gray-100)',
396
+ color: 'var(--ds-gray-1000)',
397
+ whiteSpace: 'pre-wrap',
398
+ }, children: _jsx("code", { children: error.stack || error.message }) })] }) }));
399
+ }
400
+ // Fallback for plain string errors
401
+ return (_jsx(DetailCard, { summary: "Error", children: _jsx("pre", { className: "text-[11px] overflow-x-auto rounded-md border p-3", style: {
402
+ borderColor: 'var(--ds-gray-300)',
403
+ backgroundColor: 'var(--ds-gray-100)',
404
+ color: 'var(--ds-gray-1000)',
405
+ whiteSpace: 'pre-wrap',
406
+ }, children: _jsx("code", { children: String(value) }) }) }));
94
407
  },
95
- errorCode: JsonBlock,
96
408
  eventData: (value) => {
97
409
  return _jsx(DetailCard, { summary: "Event Data", children: JsonBlock(value) });
98
410
  },
@@ -101,29 +413,62 @@ const resolvableAttributes = [
101
413
  'input',
102
414
  'output',
103
415
  'error',
104
- 'errorCode',
105
416
  'metadata',
106
417
  'eventData',
107
418
  ];
108
- export const AttributeBlock = ({ attribute, value, isLoading, }) => {
419
+ const ExpiredDataMessage = () => (_jsx("div", { className: "text-copy-12 rounded-md border p-4 my-2", style: {
420
+ borderColor: 'var(--ds-gray-300)',
421
+ backgroundColor: 'var(--ds-gray-100)',
422
+ color: 'var(--ds-gray-700)',
423
+ }, children: _jsx("span", { children: "The data for this run has expired and is no longer available." }) }));
424
+ export const AttributeBlock = ({ attribute, value, isLoading, inline = false, context, }) => {
109
425
  const displayFn = attributeToDisplayFn[attribute];
110
426
  if (!displayFn) {
111
427
  return null;
112
428
  }
113
- const displayValue = displayFn(value);
429
+ const displayValue = displayFn(value, context);
114
430
  if (!displayValue) {
115
431
  return null;
116
432
  }
117
- return (_jsxs("div", { className: "relative", children: [typeof isLoading === 'boolean' && isLoading && (_jsx("div", { className: "absolute top-9 right-4", children: _jsx("div", { className: "animate-spin rounded-full h-4 w-4 border-b-2", style: { borderColor: 'var(--ds-gray-900)' } }) })), _jsxs("div", { className: "flex flex-col gap-0 my-2", children: [_jsx("span", { className: "font-medium", style: { color: 'var(--ds-gray-500)' }, children: attribute }), _jsx("span", { style: { color: 'var(--ds-gray-1000)' }, children: displayValue })] }, attribute)] }));
433
+ if (inline) {
434
+ return (_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("span", { className: "text-[11px] font-medium", style: { color: 'var(--ds-gray-700)' }, children: attribute }), _jsx("span", { className: "text-[11px]", style: { color: 'var(--ds-gray-1000)' }, children: displayValue })] }));
435
+ }
436
+ return (_jsxs("div", { className: "relative", children: [typeof isLoading === 'boolean' && isLoading && (_jsx("div", { className: "absolute top-9 right-4", children: _jsx("div", { className: "animate-spin rounded-full h-4 w-4 border-b-2", style: { borderColor: 'var(--ds-gray-900)' } }) })), _jsxs("div", { className: "flex flex-col gap-0 my-2", children: [_jsx("span", { className: "text-xs font-medium", style: { color: 'var(--ds-gray-700)' }, children: attribute }), _jsx("span", { className: "text-xs", style: { color: 'var(--ds-gray-1000)' }, children: displayValue })] }, attribute)] }));
118
437
  };
119
- export const AttributePanel = ({ data, isLoading, error, }) => {
120
- const displayData = data;
438
+ export const AttributePanel = ({ data, isLoading, error, expiredAt, onStreamClick, }) => {
439
+ // Extract workflowCoreVersion from executionContext for display
440
+ const displayData = useMemo(() => {
441
+ const result = { ...data };
442
+ const execCtx = data.executionContext;
443
+ if (execCtx?.workflowCoreVersion) {
444
+ result.workflowCoreVersion = execCtx.workflowCoreVersion;
445
+ }
446
+ return result;
447
+ }, [data]);
448
+ const hasExpired = expiredAt != null && new Date(expiredAt) < new Date();
121
449
  const basicAttributes = Object.keys(displayData)
122
450
  .filter((key) => !resolvableAttributes.includes(key))
123
451
  .sort(sortByAttributeOrder);
124
452
  const resolvedAttributes = Object.keys(displayData)
125
453
  .filter((key) => resolvableAttributes.includes(key))
126
454
  .sort(sortByAttributeOrder);
127
- return (_jsxs("div", { children: [basicAttributes.map((attribute) => (_jsx(AttributeBlock, { attribute: attribute, value: displayData[attribute] }, attribute))), error ? (_jsxs(Alert, { variant: "destructive", className: "my-4", children: [_jsx(AlertCircle, { className: "h-4 w-4" }), _jsx(AlertTitle, { children: "Failed to load resource details" }), _jsx(AlertDescription, { className: "text-sm", children: error.message })] })) : (resolvedAttributes.map((attribute) => (_jsx(AttributeBlock, { isLoading: isLoading, attribute: attribute, value: displayData[attribute] }, attribute))))] }));
455
+ // Filter out attributes that return null
456
+ const visibleBasicAttributes = basicAttributes.filter((attribute) => {
457
+ const displayFn = attributeToDisplayFn[attribute];
458
+ if (!displayFn)
459
+ return false;
460
+ const displayValue = displayFn(displayData[attribute]);
461
+ return displayValue !== null;
462
+ });
463
+ // Memoize context object to avoid object reconstruction on render
464
+ const displayContext = useMemo(() => ({
465
+ stepName: displayData.stepName,
466
+ }), [displayData.stepName]);
467
+ return (_jsx(StreamClickContext.Provider, { value: onStreamClick, children: _jsxs("div", { children: [visibleBasicAttributes.length > 0 && (_jsx("div", { className: "flex flex-col divide-y rounded-lg border mb-3 overflow-hidden", style: {
468
+ borderColor: 'var(--ds-gray-300)',
469
+ backgroundColor: 'var(--ds-gray-100)',
470
+ }, children: visibleBasicAttributes.map((attribute) => (_jsxs("div", { className: "flex items-center justify-between px-3 py-1.5", style: {
471
+ borderColor: 'var(--ds-gray-300)',
472
+ }, children: [_jsx("span", { className: "text-[11px] font-medium", style: { color: 'var(--ds-gray-700)' }, children: getAttributeDisplayName(attribute) }), _jsx("span", { className: "text-[11px] font-mono", style: { color: 'var(--ds-gray-1000)' }, children: attributeToDisplayFn[attribute]?.(displayData[attribute]) })] }, attribute))) })), error ? (_jsx(ErrorCard, { title: "Failed to load resource details", details: error.message, className: "my-4" })) : hasExpired ? (_jsx(ExpiredDataMessage, {})) : (resolvedAttributes.map((attribute) => (_jsx(AttributeBlock, { isLoading: isLoading, attribute: attribute, value: displayData[attribute], context: displayContext }, attribute))))] }) }));
128
473
  };
129
474
  //# sourceMappingURL=attribute-panel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attribute-panel.js","sourceRoot":"","sources":["../../src/sidebar/attribute-panel.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE7E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,SAAS,GAAG,CAAC,KAAc,EAAE,EAAE;IACnC,OAAO,CACL,cACE,SAAS,EAAC,oDAAoD,EAC9D,KAAK,EAAE;YACL,WAAW,EAAE,oBAAoB;YACjC,eAAe,EAAE,oBAAoB;YACrC,KAAK,EAAE,qBAAqB;SAC7B,YAED,yBAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAQ,GACzC,CACP,CAAC;AACJ,CAAC,CAAC;AAUF,MAAM,cAAc,GAAmB;IACrC,cAAc;IACd,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;IACT,OAAO;IACP,eAAe;IACf,WAAW;IACX,cAAc;IACd,SAAS;IACT,WAAW;IACX,aAAa;IACb,kBAAkB;IAClB,WAAW;IACX,WAAW;IACX,WAAW;IACX,aAAa;IACb,YAAY;IACZ,OAAO;IACP,WAAW;IACX,UAAU;IACV,WAAW;IACX,OAAO;IACP,QAAQ;IACR,UAAU;CACX,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE;IAC5D,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAiB,CAAC,IAAI,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAiB,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,MAAM,GAAG,MAAM,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAGtB;IACF,kCAAkC;IAClC,YAAY,EAAE,CAAC,KAAc,EAAE,EAAE,CAC/B,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,IAAI,GAAG;IACpD,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,IAAI,GAAG;IAC5E,MAAM;IACN,KAAK,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;IACxC,MAAM,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;IACzC,MAAM,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;IACzC,OAAO,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;IAC1C,mBAAmB;IACnB,MAAM,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;IACzC,OAAO,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;IAC1C,eAAe;IACf,KAAK,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;IACxC,gBAAgB;IAChB,SAAS,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;IAC5C,aAAa,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;IAChD,kBAAkB;IAClB,YAAY,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;IAC/C,gCAAgC;IAChC,OAAO,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,IAAI;IAClC,SAAS,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,IAAI;IACpC,WAAW,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,IAAI;IACtC,gBAAgB,EAAE,CAAC,MAAe,EAAE,EAAE,CAAC,IAAI;IAC3C,QAAQ;IACR,kDAAkD;IAClD,SAAS,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,EAAE;IACvE,SAAS,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,EAAE;IACvE,SAAS,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,EAAE;IACvE,WAAW,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,EAAE;IACzE,UAAU,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,EAAE;IACxE,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,EAAE;IACtE,wDAAwD;IACxD,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,CAAC,KAAc,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,OAAO,CACL,KAAC,UAAU,IAAC,OAAO,EAAE,UAAU,QAAQ,aAAa,YACjD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACnB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAClB,cAAK,SAAS,EAAC,MAAM,YAClB,SAAS,CAAC,CAAC,CAAC,IADY,CAAC,CAEtB,CACP,CAAC;gBACJ,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GACT,CACd,CAAC;IACJ,CAAC;IACD,MAAM,EAAE,CAAC,KAAc,EAAE,EAAE;QACzB,OAAO,KAAC,UAAU,IAAC,OAAO,EAAC,QAAQ,YAAE,SAAS,CAAC,KAAK,CAAC,GAAc,CAAC;IACtE,CAAC;IACD,KAAK,EAAE,CAAC,KAAc,EAAE,EAAE;QACxB,OAAO,KAAC,UAAU,IAAC,OAAO,EAAC,OAAO,YAAE,SAAS,CAAC,KAAK,CAAC,GAAc,CAAC;IACrE,CAAC;IACD,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,CAAC,KAAc,EAAE,EAAE;QAC5B,OAAO,KAAC,UAAU,IAAC,OAAO,EAAC,YAAY,YAAE,SAAS,CAAC,KAAK,CAAC,GAAc,CAAC;IAC1E,CAAC;CACF,CAAC;AAEF,MAAM,oBAAoB,GAAG;IAC3B,OAAO;IACP,QAAQ;IACR,OAAO;IACP,WAAW;IACX,UAAU;IACV,WAAW;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,SAAS,EACT,KAAK,EACL,SAAS,GAKV,EAAE,EAAE;IACH,MAAM,SAAS,GACb,oBAAoB,CAAC,SAA8C,CAAC,CAAC;IACvE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,aACtB,OAAO,SAAS,KAAK,SAAS,IAAI,SAAS,IAAI,CAC9C,cAAK,SAAS,EAAC,wBAAwB,YACrC,cACE,SAAS,EAAC,8CAA8C,EACxD,KAAK,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE,GAC5C,GACE,CACP,EACD,eAAqB,SAAS,EAAC,0BAA0B,aACvD,eAAM,SAAS,EAAC,aAAa,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,YACjE,SAAS,GACL,EACP,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,YAAG,YAAY,GAAQ,KAJ5D,SAAS,CAKb,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAC7B,IAAI,EACJ,SAAS,EACT,KAAK,GAKN,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;SAC7C,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SACpD,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC9B,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;SAChD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SACnD,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAE9B,OAAO,CACL,0BACG,eAAe,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAClC,KAAC,cAAc,IAEb,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,WAAW,CAAC,SAAqC,CAAC,IAFpD,SAAS,CAGd,CACH,CAAC,EACD,KAAK,CAAC,CAAC,CAAC,CACP,MAAC,KAAK,IAAC,OAAO,EAAC,aAAa,EAAC,SAAS,EAAC,MAAM,aAC3C,KAAC,WAAW,IAAC,SAAS,EAAC,SAAS,GAAG,EACnC,KAAC,UAAU,kDAA6C,EACxD,KAAC,gBAAgB,IAAC,SAAS,EAAC,SAAS,YAClC,KAAK,CAAC,OAAO,GACG,IACb,CACT,CAAC,CAAC,CAAC,CACF,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CACpC,KAAC,cAAc,IACb,SAAS,EAAE,SAAS,EAEpB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,WAAW,CAAC,SAAqC,CAAC,IAFpD,SAAS,CAGd,CACH,CAAC,CACH,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"attribute-panel.js","sourceRoot":"","sources":["../../src/sidebar/attribute-panel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ModelMessage } from 'ai';
2
+ interface ConversationViewProps {
3
+ messages: ModelMessage[];
4
+ }
5
+ export declare function ConversationView({ messages }: ConversationViewProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=conversation-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-view.d.ts","sourceRoot":"","sources":["../../src/sidebar/conversation-view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAGvC,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,wBAAgB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,qBAAqB,2CAmBnE"}