@workflow/web-shared 4.1.0-beta.47 → 4.1.0-beta.49

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 (301) hide show
  1. package/README.md +26 -52
  2. package/dist/components/error-boundary.d.ts.map +1 -0
  3. package/dist/{error-boundary.js → components/error-boundary.js} +1 -1
  4. package/dist/components/error-boundary.js.map +1 -0
  5. package/dist/{event-list-view.d.ts → components/event-list-view.d.ts} +2 -3
  6. package/dist/components/event-list-view.d.ts.map +1 -0
  7. package/dist/{event-list-view.js → components/event-list-view.js} +9 -17
  8. package/dist/components/event-list-view.js.map +1 -0
  9. package/dist/{hook-actions.d.ts → components/hook-actions.d.ts} +2 -3
  10. package/dist/components/hook-actions.d.ts.map +1 -0
  11. package/dist/{hook-actions.js → components/hook-actions.js} +3 -4
  12. package/dist/components/hook-actions.js.map +1 -0
  13. package/dist/components/index.d.ts +10 -0
  14. package/dist/components/index.d.ts.map +1 -0
  15. package/dist/components/index.js +8 -0
  16. package/dist/components/index.js.map +1 -0
  17. package/dist/components/run-trace-view.d.ts +22 -0
  18. package/dist/components/run-trace-view.d.ts.map +1 -0
  19. package/dist/components/run-trace-view.js +11 -0
  20. package/dist/components/run-trace-view.js.map +1 -0
  21. package/dist/components/sidebar/attribute-panel.d.ts.map +1 -0
  22. package/dist/{sidebar → components/sidebar}/attribute-panel.js +3 -3
  23. package/dist/components/sidebar/attribute-panel.js.map +1 -0
  24. package/dist/components/sidebar/conversation-view.d.ts.map +1 -0
  25. package/dist/components/sidebar/conversation-view.js.map +1 -0
  26. package/dist/components/sidebar/detail-card.d.ts.map +1 -0
  27. package/dist/components/sidebar/detail-card.js.map +1 -0
  28. package/dist/components/sidebar/entity-detail-panel.d.ts +32 -0
  29. package/dist/components/sidebar/entity-detail-panel.d.ts.map +1 -0
  30. package/dist/{sidebar → components/sidebar}/entity-detail-panel.js +61 -49
  31. package/dist/components/sidebar/entity-detail-panel.js.map +1 -0
  32. package/dist/components/sidebar/events-list.d.ts +8 -0
  33. package/dist/components/sidebar/events-list.d.ts.map +1 -0
  34. package/dist/components/sidebar/events-list.js +16 -0
  35. package/dist/components/sidebar/events-list.js.map +1 -0
  36. package/dist/components/sidebar/resolve-hook-modal.d.ts.map +1 -0
  37. package/dist/components/sidebar/resolve-hook-modal.js.map +1 -0
  38. package/dist/components/stream-viewer.d.ts +18 -0
  39. package/dist/components/stream-viewer.d.ts.map +1 -0
  40. package/dist/{stream-viewer.js → components/stream-viewer.js} +1 -59
  41. package/dist/components/stream-viewer.js.map +1 -0
  42. package/dist/components/trace-viewer/components/map.d.ts.map +1 -0
  43. package/dist/components/trace-viewer/components/map.js.map +1 -0
  44. package/dist/components/trace-viewer/components/markers.d.ts.map +1 -0
  45. package/dist/components/trace-viewer/components/markers.js.map +1 -0
  46. package/dist/components/trace-viewer/components/node.d.ts.map +1 -0
  47. package/dist/components/trace-viewer/components/node.js.map +1 -0
  48. package/dist/components/trace-viewer/components/search-input.d.ts.map +1 -0
  49. package/dist/components/trace-viewer/components/search-input.js.map +1 -0
  50. package/dist/components/trace-viewer/components/search.d.ts.map +1 -0
  51. package/dist/components/trace-viewer/components/search.js.map +1 -0
  52. package/dist/components/trace-viewer/components/span-detail-panel.d.ts.map +1 -0
  53. package/dist/components/trace-viewer/components/span-detail-panel.js.map +1 -0
  54. package/dist/components/trace-viewer/components/ui.d.ts.map +1 -0
  55. package/dist/components/trace-viewer/components/ui.js.map +1 -0
  56. package/dist/components/trace-viewer/components/zoom-button.d.ts.map +1 -0
  57. package/dist/components/trace-viewer/components/zoom-button.js.map +1 -0
  58. package/dist/components/trace-viewer/components/zoom-icons.d.ts.map +1 -0
  59. package/dist/components/trace-viewer/components/zoom-icons.js.map +1 -0
  60. package/dist/components/trace-viewer/context.d.ts.map +1 -0
  61. package/dist/components/trace-viewer/context.js.map +1 -0
  62. package/dist/components/trace-viewer/index.d.ts.map +1 -0
  63. package/dist/components/trace-viewer/index.js.map +1 -0
  64. package/dist/components/trace-viewer/trace-viewer.d.ts.map +1 -0
  65. package/dist/components/trace-viewer/trace-viewer.js.map +1 -0
  66. package/dist/components/trace-viewer/types.d.ts.map +1 -0
  67. package/dist/components/trace-viewer/types.js.map +1 -0
  68. package/dist/components/trace-viewer/util/constants.d.ts.map +1 -0
  69. package/dist/components/trace-viewer/util/constants.js.map +1 -0
  70. package/dist/components/trace-viewer/util/scrollbar-width.d.ts.map +1 -0
  71. package/dist/components/trace-viewer/util/scrollbar-width.js.map +1 -0
  72. package/dist/{trace-viewer → components/trace-viewer}/util/timing.d.ts +1 -1
  73. package/dist/components/trace-viewer/util/timing.d.ts.map +1 -0
  74. package/dist/{trace-viewer → components/trace-viewer}/util/timing.js +1 -1
  75. package/dist/components/trace-viewer/util/timing.js.map +1 -0
  76. package/dist/components/trace-viewer/util/tree.d.ts.map +1 -0
  77. package/dist/components/trace-viewer/util/tree.js.map +1 -0
  78. package/dist/components/trace-viewer/util/use-immediate-style.d.ts.map +1 -0
  79. package/dist/components/trace-viewer/util/use-immediate-style.js.map +1 -0
  80. package/dist/components/trace-viewer/util/use-streaming-spans.d.ts.map +1 -0
  81. package/dist/components/trace-viewer/util/use-streaming-spans.js.map +1 -0
  82. package/dist/components/trace-viewer/util/use-trackpad-zoom.d.ts.map +1 -0
  83. package/dist/components/trace-viewer/util/use-trackpad-zoom.js.map +1 -0
  84. package/dist/components/trace-viewer/worker.d.ts.map +1 -0
  85. package/dist/components/trace-viewer/worker.js.map +1 -0
  86. package/dist/components/workflow-trace-view.d.ts +24 -0
  87. package/dist/components/workflow-trace-view.d.ts.map +1 -0
  88. package/dist/components/workflow-trace-view.js +152 -0
  89. package/dist/components/workflow-trace-view.js.map +1 -0
  90. package/dist/components/workflow-traces/event-colors.d.ts.map +1 -0
  91. package/dist/components/workflow-traces/event-colors.js.map +1 -0
  92. package/dist/components/workflow-traces/trace-colors.d.ts.map +1 -0
  93. package/dist/components/workflow-traces/trace-colors.js.map +1 -0
  94. package/dist/components/workflow-traces/trace-span-construction.d.ts.map +1 -0
  95. package/dist/components/workflow-traces/trace-span-construction.js.map +1 -0
  96. package/dist/components/workflow-traces/trace-time-utils.d.ts.map +1 -0
  97. package/dist/components/workflow-traces/trace-time-utils.js.map +1 -0
  98. package/dist/index.d.ts +3 -13
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +2 -9
  101. package/dist/index.js.map +1 -1
  102. package/package.json +15 -11
  103. package/src/components/error-boundary.tsx +79 -0
  104. package/src/components/event-list-view.tsx +429 -0
  105. package/src/components/hook-actions.tsx +167 -0
  106. package/src/components/index.d.ts +1 -0
  107. package/src/components/index.ts +23 -0
  108. package/src/components/run-trace-view.tsx +75 -0
  109. package/src/components/sidebar/attribute-panel.tsx +938 -0
  110. package/src/components/sidebar/conversation-view.tsx +235 -0
  111. package/src/components/sidebar/detail-card.tsx +43 -0
  112. package/src/components/sidebar/entity-detail-panel.tsx +338 -0
  113. package/src/components/sidebar/events-list.tsx +119 -0
  114. package/src/components/sidebar/resolve-hook-modal.tsx +219 -0
  115. package/src/components/stream-viewer.tsx +143 -0
  116. package/src/components/trace-viewer/components/map.tsx +226 -0
  117. package/src/components/trace-viewer/components/markers.tsx +564 -0
  118. package/src/components/trace-viewer/components/node.tsx +259 -0
  119. package/src/components/trace-viewer/components/search-input.tsx +52 -0
  120. package/src/components/trace-viewer/components/search.tsx +47 -0
  121. package/src/components/trace-viewer/components/span-detail-panel.tsx +650 -0
  122. package/src/components/trace-viewer/components/ui.tsx +156 -0
  123. package/src/components/trace-viewer/components/zoom-button.tsx +61 -0
  124. package/src/components/trace-viewer/components/zoom-icons.tsx +65 -0
  125. package/src/components/trace-viewer/context.tsx +633 -0
  126. package/src/components/trace-viewer/index.tsx +4 -0
  127. package/src/components/trace-viewer/modules.d.ts +16 -0
  128. package/src/components/trace-viewer/trace-viewer.module.css +1292 -0
  129. package/src/components/trace-viewer/trace-viewer.tsx +448 -0
  130. package/src/components/trace-viewer/types.ts +234 -0
  131. package/src/components/trace-viewer/util/constants.ts +8 -0
  132. package/src/components/trace-viewer/util/scrollbar-width.ts +13 -0
  133. package/src/components/trace-viewer/util/timing.ts +33 -0
  134. package/src/components/trace-viewer/util/tree.ts +277 -0
  135. package/src/components/trace-viewer/util/use-immediate-style.ts +38 -0
  136. package/src/components/trace-viewer/util/use-streaming-spans.ts +415 -0
  137. package/src/components/trace-viewer/util/use-trackpad-zoom.tsx +51 -0
  138. package/src/components/trace-viewer/worker.ts +128 -0
  139. package/src/components/ui/alert.tsx +59 -0
  140. package/src/components/ui/card.tsx +88 -0
  141. package/src/components/ui/error-card.tsx +65 -0
  142. package/src/components/ui/skeleton.tsx +15 -0
  143. package/src/components/workflow-trace-view.tsx +306 -0
  144. package/src/components/workflow-traces/event-colors.ts +94 -0
  145. package/src/components/workflow-traces/trace-colors.ts +112 -0
  146. package/src/components/workflow-traces/trace-span-construction.ts +299 -0
  147. package/src/components/workflow-traces/trace-time-utils.ts +50 -0
  148. package/src/hooks/use-dark-mode.ts +34 -0
  149. package/src/index.d.ts +1 -0
  150. package/src/index.ts +29 -0
  151. package/src/lib/event-analysis.ts +231 -0
  152. package/src/lib/utils.ts +166 -0
  153. package/dist/api/workflow-api-client.d.ts +0 -543
  154. package/dist/api/workflow-api-client.d.ts.map +0 -1
  155. package/dist/api/workflow-api-client.js +0 -953
  156. package/dist/api/workflow-api-client.js.map +0 -1
  157. package/dist/api/workflow-server-actions.d.ts +0 -230
  158. package/dist/api/workflow-server-actions.d.ts.map +0 -1
  159. package/dist/api/workflow-server-actions.js +0 -861
  160. package/dist/api/workflow-server-actions.js.map +0 -1
  161. package/dist/error-boundary.d.ts.map +0 -1
  162. package/dist/error-boundary.js.map +0 -1
  163. package/dist/event-list-view.d.ts.map +0 -1
  164. package/dist/event-list-view.js.map +0 -1
  165. package/dist/hook-actions.d.ts.map +0 -1
  166. package/dist/hook-actions.js.map +0 -1
  167. package/dist/run-trace-view.d.ts +0 -8
  168. package/dist/run-trace-view.d.ts.map +0 -1
  169. package/dist/run-trace-view.js +0 -15
  170. package/dist/run-trace-view.js.map +0 -1
  171. package/dist/sidebar/attribute-panel.d.ts.map +0 -1
  172. package/dist/sidebar/attribute-panel.js.map +0 -1
  173. package/dist/sidebar/conversation-view.d.ts.map +0 -1
  174. package/dist/sidebar/conversation-view.js.map +0 -1
  175. package/dist/sidebar/detail-card.d.ts.map +0 -1
  176. package/dist/sidebar/detail-card.js.map +0 -1
  177. package/dist/sidebar/entity-detail-panel.d.ts +0 -12
  178. package/dist/sidebar/entity-detail-panel.d.ts.map +0 -1
  179. package/dist/sidebar/entity-detail-panel.js.map +0 -1
  180. package/dist/sidebar/events-list.d.ts +0 -9
  181. package/dist/sidebar/events-list.d.ts.map +0 -1
  182. package/dist/sidebar/events-list.js +0 -36
  183. package/dist/sidebar/events-list.js.map +0 -1
  184. package/dist/sidebar/resolve-hook-modal.d.ts.map +0 -1
  185. package/dist/sidebar/resolve-hook-modal.js.map +0 -1
  186. package/dist/stream-viewer.d.ts +0 -13
  187. package/dist/stream-viewer.d.ts.map +0 -1
  188. package/dist/stream-viewer.js.map +0 -1
  189. package/dist/trace-viewer/components/map.d.ts.map +0 -1
  190. package/dist/trace-viewer/components/map.js.map +0 -1
  191. package/dist/trace-viewer/components/markers.d.ts.map +0 -1
  192. package/dist/trace-viewer/components/markers.js.map +0 -1
  193. package/dist/trace-viewer/components/node.d.ts.map +0 -1
  194. package/dist/trace-viewer/components/node.js.map +0 -1
  195. package/dist/trace-viewer/components/search-input.d.ts.map +0 -1
  196. package/dist/trace-viewer/components/search-input.js.map +0 -1
  197. package/dist/trace-viewer/components/search.d.ts.map +0 -1
  198. package/dist/trace-viewer/components/search.js.map +0 -1
  199. package/dist/trace-viewer/components/span-detail-panel.d.ts.map +0 -1
  200. package/dist/trace-viewer/components/span-detail-panel.js.map +0 -1
  201. package/dist/trace-viewer/components/ui.d.ts.map +0 -1
  202. package/dist/trace-viewer/components/ui.js.map +0 -1
  203. package/dist/trace-viewer/components/zoom-button.d.ts.map +0 -1
  204. package/dist/trace-viewer/components/zoom-button.js.map +0 -1
  205. package/dist/trace-viewer/components/zoom-icons.d.ts.map +0 -1
  206. package/dist/trace-viewer/components/zoom-icons.js.map +0 -1
  207. package/dist/trace-viewer/context.d.ts.map +0 -1
  208. package/dist/trace-viewer/context.js.map +0 -1
  209. package/dist/trace-viewer/index.d.ts.map +0 -1
  210. package/dist/trace-viewer/index.js.map +0 -1
  211. package/dist/trace-viewer/trace-viewer.d.ts.map +0 -1
  212. package/dist/trace-viewer/trace-viewer.js.map +0 -1
  213. package/dist/trace-viewer/types.d.ts.map +0 -1
  214. package/dist/trace-viewer/types.js.map +0 -1
  215. package/dist/trace-viewer/util/constants.d.ts.map +0 -1
  216. package/dist/trace-viewer/util/constants.js.map +0 -1
  217. package/dist/trace-viewer/util/scrollbar-width.d.ts.map +0 -1
  218. package/dist/trace-viewer/util/scrollbar-width.js.map +0 -1
  219. package/dist/trace-viewer/util/timing.d.ts.map +0 -1
  220. package/dist/trace-viewer/util/timing.js.map +0 -1
  221. package/dist/trace-viewer/util/tree.d.ts.map +0 -1
  222. package/dist/trace-viewer/util/tree.js.map +0 -1
  223. package/dist/trace-viewer/util/use-immediate-style.d.ts.map +0 -1
  224. package/dist/trace-viewer/util/use-immediate-style.js.map +0 -1
  225. package/dist/trace-viewer/util/use-streaming-spans.d.ts.map +0 -1
  226. package/dist/trace-viewer/util/use-streaming-spans.js.map +0 -1
  227. package/dist/trace-viewer/util/use-trackpad-zoom.d.ts.map +0 -1
  228. package/dist/trace-viewer/util/use-trackpad-zoom.js.map +0 -1
  229. package/dist/trace-viewer/worker.d.ts.map +0 -1
  230. package/dist/trace-viewer/worker.js.map +0 -1
  231. package/dist/workflow-trace-view.d.ts +0 -14
  232. package/dist/workflow-trace-view.d.ts.map +0 -1
  233. package/dist/workflow-trace-view.js +0 -135
  234. package/dist/workflow-trace-view.js.map +0 -1
  235. package/dist/workflow-traces/event-colors.d.ts.map +0 -1
  236. package/dist/workflow-traces/event-colors.js.map +0 -1
  237. package/dist/workflow-traces/trace-colors.d.ts.map +0 -1
  238. package/dist/workflow-traces/trace-colors.js.map +0 -1
  239. package/dist/workflow-traces/trace-span-construction.d.ts.map +0 -1
  240. package/dist/workflow-traces/trace-span-construction.js.map +0 -1
  241. package/dist/workflow-traces/trace-time-utils.d.ts.map +0 -1
  242. package/dist/workflow-traces/trace-time-utils.js.map +0 -1
  243. package/server/README.md +0 -1
  244. package/server/package.json +0 -4
  245. /package/dist/{error-boundary.d.ts → components/error-boundary.d.ts} +0 -0
  246. /package/dist/{sidebar → components/sidebar}/attribute-panel.d.ts +0 -0
  247. /package/dist/{sidebar → components/sidebar}/conversation-view.d.ts +0 -0
  248. /package/dist/{sidebar → components/sidebar}/conversation-view.js +0 -0
  249. /package/dist/{sidebar → components/sidebar}/detail-card.d.ts +0 -0
  250. /package/dist/{sidebar → components/sidebar}/detail-card.js +0 -0
  251. /package/dist/{sidebar → components/sidebar}/resolve-hook-modal.d.ts +0 -0
  252. /package/dist/{sidebar → components/sidebar}/resolve-hook-modal.js +0 -0
  253. /package/dist/{trace-viewer → components/trace-viewer}/components/map.d.ts +0 -0
  254. /package/dist/{trace-viewer → components/trace-viewer}/components/map.js +0 -0
  255. /package/dist/{trace-viewer → components/trace-viewer}/components/markers.d.ts +0 -0
  256. /package/dist/{trace-viewer → components/trace-viewer}/components/markers.js +0 -0
  257. /package/dist/{trace-viewer → components/trace-viewer}/components/node.d.ts +0 -0
  258. /package/dist/{trace-viewer → components/trace-viewer}/components/node.js +0 -0
  259. /package/dist/{trace-viewer → components/trace-viewer}/components/search-input.d.ts +0 -0
  260. /package/dist/{trace-viewer → components/trace-viewer}/components/search-input.js +0 -0
  261. /package/dist/{trace-viewer → components/trace-viewer}/components/search.d.ts +0 -0
  262. /package/dist/{trace-viewer → components/trace-viewer}/components/search.js +0 -0
  263. /package/dist/{trace-viewer → components/trace-viewer}/components/span-detail-panel.d.ts +0 -0
  264. /package/dist/{trace-viewer → components/trace-viewer}/components/span-detail-panel.js +0 -0
  265. /package/dist/{trace-viewer → components/trace-viewer}/components/ui.d.ts +0 -0
  266. /package/dist/{trace-viewer → components/trace-viewer}/components/ui.js +0 -0
  267. /package/dist/{trace-viewer → components/trace-viewer}/components/zoom-button.d.ts +0 -0
  268. /package/dist/{trace-viewer → components/trace-viewer}/components/zoom-button.js +0 -0
  269. /package/dist/{trace-viewer → components/trace-viewer}/components/zoom-icons.d.ts +0 -0
  270. /package/dist/{trace-viewer → components/trace-viewer}/components/zoom-icons.js +0 -0
  271. /package/dist/{trace-viewer → components/trace-viewer}/context.d.ts +0 -0
  272. /package/dist/{trace-viewer → components/trace-viewer}/context.js +0 -0
  273. /package/dist/{trace-viewer → components/trace-viewer}/index.d.ts +0 -0
  274. /package/dist/{trace-viewer → components/trace-viewer}/index.js +0 -0
  275. /package/dist/{trace-viewer → components/trace-viewer}/trace-viewer.d.ts +0 -0
  276. /package/dist/{trace-viewer → components/trace-viewer}/trace-viewer.js +0 -0
  277. /package/dist/{trace-viewer → components/trace-viewer}/trace-viewer.module.css +0 -0
  278. /package/dist/{trace-viewer → components/trace-viewer}/types.d.ts +0 -0
  279. /package/dist/{trace-viewer → components/trace-viewer}/types.js +0 -0
  280. /package/dist/{trace-viewer → components/trace-viewer}/util/constants.d.ts +0 -0
  281. /package/dist/{trace-viewer → components/trace-viewer}/util/constants.js +0 -0
  282. /package/dist/{trace-viewer → components/trace-viewer}/util/scrollbar-width.d.ts +0 -0
  283. /package/dist/{trace-viewer → components/trace-viewer}/util/scrollbar-width.js +0 -0
  284. /package/dist/{trace-viewer → components/trace-viewer}/util/tree.d.ts +0 -0
  285. /package/dist/{trace-viewer → components/trace-viewer}/util/tree.js +0 -0
  286. /package/dist/{trace-viewer → components/trace-viewer}/util/use-immediate-style.d.ts +0 -0
  287. /package/dist/{trace-viewer → components/trace-viewer}/util/use-immediate-style.js +0 -0
  288. /package/dist/{trace-viewer → components/trace-viewer}/util/use-streaming-spans.d.ts +0 -0
  289. /package/dist/{trace-viewer → components/trace-viewer}/util/use-streaming-spans.js +0 -0
  290. /package/dist/{trace-viewer → components/trace-viewer}/util/use-trackpad-zoom.d.ts +0 -0
  291. /package/dist/{trace-viewer → components/trace-viewer}/util/use-trackpad-zoom.js +0 -0
  292. /package/dist/{trace-viewer → components/trace-viewer}/worker.d.ts +0 -0
  293. /package/dist/{trace-viewer → components/trace-viewer}/worker.js +0 -0
  294. /package/dist/{workflow-traces → components/workflow-traces}/event-colors.d.ts +0 -0
  295. /package/dist/{workflow-traces → components/workflow-traces}/event-colors.js +0 -0
  296. /package/dist/{workflow-traces → components/workflow-traces}/trace-colors.d.ts +0 -0
  297. /package/dist/{workflow-traces → components/workflow-traces}/trace-colors.js +0 -0
  298. /package/dist/{workflow-traces → components/workflow-traces}/trace-span-construction.d.ts +0 -0
  299. /package/dist/{workflow-traces → components/workflow-traces}/trace-span-construction.js +0 -0
  300. /package/dist/{workflow-traces → components/workflow-traces}/trace-time-utils.d.ts +0 -0
  301. /package/dist/{workflow-traces → components/workflow-traces}/trace-time-utils.js +0 -0
@@ -0,0 +1,166 @@
1
+ import type { Step } from '@workflow/world';
2
+ import type { ModelMessage } from 'ai';
3
+ import { type ClassValue, clsx } from 'clsx';
4
+ import { twMerge } from 'tailwind-merge';
5
+
6
+ export function cn(...inputs: ClassValue[]) {
7
+ return twMerge(clsx(inputs));
8
+ }
9
+
10
+ const durationFormatter = new Intl.NumberFormat(undefined, {
11
+ maximumFractionDigits: 2,
12
+ });
13
+
14
+ const MS_IN_SECOND = 1000;
15
+ const MS_IN_MINUTE = 60 * MS_IN_SECOND;
16
+ const MS_IN_HOUR = 60 * MS_IN_MINUTE;
17
+ const MS_IN_DAY = 24 * MS_IN_HOUR;
18
+
19
+ /**
20
+ * Formats a duration in milliseconds to a human-readable string.
21
+ *
22
+ * @param ms - Duration in milliseconds
23
+ * @param compact - If true, returns a single-unit format (e.g., "45s", "2.5m").
24
+ * If false (default), returns multi-part format (e.g., "1h 30m", "2d 5h").
25
+ *
26
+ * Compact format:
27
+ * - < 1s: shows milliseconds (e.g., "500ms")
28
+ * - < 1m: shows seconds (e.g., "45s")
29
+ * - < 1h: shows minutes (e.g., "45m")
30
+ * - >= 1h: shows hours (e.g., "2.5h")
31
+ *
32
+ * Full format:
33
+ * - < 1s: shows milliseconds (e.g., "500ms")
34
+ * - < 1m: shows seconds (e.g., "45.5s")
35
+ * - >= 1m: shows human-readable format (e.g., "1h 30m", "2d 5h")
36
+ */
37
+ export function formatDuration(ms: number, compact = false): string {
38
+ if (ms === 0) {
39
+ return '0';
40
+ }
41
+
42
+ // For durations less than 1 second, show milliseconds
43
+ if (ms < MS_IN_SECOND) {
44
+ return `${durationFormatter.format(ms)}ms`;
45
+ }
46
+
47
+ // For durations less than 1 minute, show seconds
48
+ if (ms < MS_IN_MINUTE) {
49
+ return `${durationFormatter.format(ms / MS_IN_SECOND)}s`;
50
+ }
51
+
52
+ // Compact format: single unit
53
+ if (compact) {
54
+ if (ms < MS_IN_HOUR) {
55
+ return `${durationFormatter.format(ms / MS_IN_MINUTE)}m`;
56
+ }
57
+ return `${durationFormatter.format(ms / MS_IN_HOUR)}h`;
58
+ }
59
+
60
+ // Full format: human-readable multi-part
61
+ const days = Math.floor(ms / MS_IN_DAY);
62
+ const hours = Math.floor((ms % MS_IN_DAY) / MS_IN_HOUR);
63
+ const minutes = Math.floor((ms % MS_IN_HOUR) / MS_IN_MINUTE);
64
+ const seconds = Math.floor((ms % MS_IN_MINUTE) / MS_IN_SECOND);
65
+
66
+ const parts: string[] = [];
67
+
68
+ if (days > 0) {
69
+ parts.push(`${days}d`);
70
+ }
71
+ if (hours > 0) {
72
+ parts.push(`${hours}h`);
73
+ }
74
+ if (minutes > 0) {
75
+ parts.push(`${minutes}m`);
76
+ }
77
+ if (hours <= 1 && (seconds > 0 || parts.length === 0)) {
78
+ parts.push(`${seconds}s`);
79
+ }
80
+
81
+ return parts.join(' ');
82
+ }
83
+
84
+ /**
85
+ * Returns a formatted pagination display string
86
+ * @param currentPage - The current page number
87
+ * @param totalPages - The total number of pages visited so far
88
+ * @param hasMore - Whether there are more pages available
89
+ * @returns Formatted string like "Page 1 of 3+" or "Page 2 of 2"
90
+ */
91
+ export function getPaginationDisplay(
92
+ currentPage: number,
93
+ totalPages: number,
94
+ hasMore: boolean
95
+ ): string {
96
+ if (hasMore) {
97
+ return `Page ${currentPage} of ${totalPages}+`;
98
+ }
99
+ return `Page ${currentPage} of ${totalPages}`;
100
+ }
101
+
102
+ // ============================================================================
103
+ // Durable Agent Utilities
104
+ // ============================================================================
105
+
106
+ /**
107
+ * Check if a step is a doStreamStep (LLM call with conversation input)
108
+ */
109
+ export function isDoStreamStep(stepName: string): boolean {
110
+ return stepName.endsWith('//doStreamStep');
111
+ }
112
+
113
+ /**
114
+ * Extract the conversation from a hydrated doStreamStep input.
115
+ * doStreamStep signature: (conversationPrompt, model, writable, tools, options)
116
+ * So input[0] is the conversation.
117
+ */
118
+ export function extractConversation(stepInput: unknown): ModelMessage[] | null {
119
+ if (!Array.isArray(stepInput) || stepInput.length === 0) {
120
+ return null;
121
+ }
122
+
123
+ const firstArg = stepInput[0];
124
+
125
+ if (!Array.isArray(firstArg)) {
126
+ return null;
127
+ }
128
+
129
+ // Validate it looks like ModelMessage[]
130
+ if (
131
+ !firstArg.every((msg) => msg && typeof msg === 'object' && 'role' in msg)
132
+ ) {
133
+ return null;
134
+ }
135
+
136
+ return firstArg as ModelMessage[];
137
+ }
138
+
139
+ /**
140
+ * A doStreamStep with its conversation input extracted
141
+ */
142
+ export interface StreamStep {
143
+ stepId: string;
144
+ stepName: string;
145
+ displayName: string;
146
+ conversation: ModelMessage[];
147
+ }
148
+
149
+ /**
150
+ * Identifies all stream steps (doStreamStep) in a run and extracts their conversations.
151
+ */
152
+ export function identifyStreamSteps(steps: Step[]): StreamStep[] {
153
+ return steps
154
+ .filter((step) => isDoStreamStep(step.stepName))
155
+ .map((step) => {
156
+ const functionName = step.stepName.split('//').pop() ?? 'unknown';
157
+ const conversation = extractConversation(step.input) ?? [];
158
+
159
+ return {
160
+ stepId: step.stepId,
161
+ stepName: step.stepName,
162
+ displayName: functionName,
163
+ conversation,
164
+ };
165
+ });
166
+ }
@@ -1,543 +0,0 @@
1
- import type { Hook, WorkflowRun, WorkflowRunStatus } from '@workflow/world';
2
- import type { EnvMap, ServerActionError } from './workflow-server-actions';
3
- import { type ResumeHookResult, type StopSleepOptions, type StopSleepResult } from './workflow-server-actions';
4
- /**
5
- * Gets a user-facing error message from an error object.
6
- * Handles both WorkflowWebAPIError and regular Error instances.
7
- */
8
- export declare const getErrorMessage: (error: Error | WorkflowWebAPIError) => string;
9
- /**
10
- * Helper to handle server action results and throw WorkflowWebAPIError on failure
11
- */
12
- export declare function unwrapServerActionResult<T>(promise: Promise<{
13
- success: boolean;
14
- data?: T;
15
- error?: ServerActionError;
16
- }>): Promise<{
17
- error: WorkflowWebAPIError;
18
- result: null;
19
- } | {
20
- error: null;
21
- result: T;
22
- }>;
23
- /**
24
- * Error instance for API and server-side errors.
25
- * `error.message` will be a user-facing error message, to be displayed in UI.
26
- * `error.cause` will be a developer-facing error message, to be displayed in logs.
27
- *
28
- * If the error originates from an HTTP request made from a server action,
29
- * these fields will be populated:
30
- * - `error.request` will be a JSON-serializable object representing the request made.
31
- * - `error.layer` will be 'API'
32
- *
33
- * If the error originates from inside the server action, or there's an error with
34
- * calling the server action, these fields will be populated:
35
- * - `error.layer` will be 'server'
36
- */
37
- export declare class WorkflowWebAPIError extends Error {
38
- request?: any;
39
- layer?: 'client' | 'server' | 'API';
40
- constructor(message: string, options?: {
41
- cause?: unknown;
42
- request?: any;
43
- layer?: 'client' | 'server' | 'API';
44
- });
45
- }
46
- interface PageResult<T> {
47
- data: T[] | null;
48
- isLoading: boolean;
49
- error: Error | null;
50
- }
51
- interface PaginatedList<T> {
52
- data: PageResult<T>;
53
- allData: PageResult<T>[];
54
- error: Error | null;
55
- isLoading: boolean;
56
- currentPage: number;
57
- totalPages: number;
58
- nextPage: () => void;
59
- previousPage: () => void;
60
- hasNextPage: boolean;
61
- hasPreviousPage: boolean;
62
- reload: () => void;
63
- refresh: () => void;
64
- pageInfo: string;
65
- }
66
- /**
67
- * Returns a list of runs with pagination control
68
- */
69
- export declare function useWorkflowRuns(env: EnvMap, params: {
70
- workflowName?: string;
71
- status?: WorkflowRunStatus;
72
- limit?: number;
73
- sortOrder?: 'asc' | 'desc';
74
- }): PaginatedList<WorkflowRun>;
75
- /**
76
- * Returns a list of hooks with pagination control
77
- */
78
- export declare function useWorkflowHooks(env: EnvMap, params: {
79
- runId?: string;
80
- limit?: number;
81
- sortOrder?: 'asc' | 'desc';
82
- }): PaginatedList<Hook>;
83
- /**
84
- * Returns (and keeps up-to-date) all data related to a run.
85
- * Items returned will _not_ have resolved data (like input/output values).
86
- */
87
- export declare function useWorkflowTraceViewerData(env: EnvMap, runId: string, options?: {
88
- live?: boolean;
89
- }): {
90
- run: {
91
- runId: string;
92
- deploymentId: string;
93
- workflowName: string;
94
- input: unknown;
95
- createdAt: Date;
96
- updatedAt: Date;
97
- status: "pending" | "running";
98
- output: undefined;
99
- error: undefined;
100
- completedAt: undefined;
101
- specVersion?: number | undefined;
102
- executionContext?: Record<string, any> | undefined;
103
- expiredAt?: Date | undefined;
104
- startedAt?: Date | undefined;
105
- } | {
106
- runId: string;
107
- deploymentId: string;
108
- workflowName: string;
109
- input: unknown;
110
- createdAt: Date;
111
- updatedAt: Date;
112
- status: "cancelled";
113
- output: undefined;
114
- error: undefined;
115
- completedAt: Date;
116
- specVersion?: number | undefined;
117
- executionContext?: Record<string, any> | undefined;
118
- expiredAt?: Date | undefined;
119
- startedAt?: Date | undefined;
120
- } | {
121
- runId: string;
122
- deploymentId: string;
123
- workflowName: string;
124
- input: unknown;
125
- createdAt: Date;
126
- updatedAt: Date;
127
- status: "completed";
128
- output: unknown;
129
- error: undefined;
130
- completedAt: Date;
131
- specVersion?: number | undefined;
132
- executionContext?: Record<string, any> | undefined;
133
- expiredAt?: Date | undefined;
134
- startedAt?: Date | undefined;
135
- } | {
136
- runId: string;
137
- deploymentId: string;
138
- workflowName: string;
139
- input: unknown;
140
- createdAt: Date;
141
- updatedAt: Date;
142
- status: "failed";
143
- output: undefined;
144
- error: {
145
- message: string;
146
- stack?: string | undefined;
147
- code?: string | undefined;
148
- };
149
- completedAt: Date;
150
- specVersion?: number | undefined;
151
- executionContext?: Record<string, any> | undefined;
152
- expiredAt?: Date | undefined;
153
- startedAt?: Date | undefined;
154
- };
155
- steps: {
156
- runId: string;
157
- stepId: string;
158
- stepName: string;
159
- status: "pending" | "running" | "completed" | "failed" | "cancelled";
160
- input: unknown;
161
- attempt: number;
162
- createdAt: Date;
163
- updatedAt: Date;
164
- output?: unknown;
165
- error?: {
166
- message: string;
167
- stack?: string | undefined;
168
- code?: string | undefined;
169
- } | undefined;
170
- startedAt?: Date | undefined;
171
- completedAt?: Date | undefined;
172
- retryAfter?: Date | undefined;
173
- specVersion?: number | undefined;
174
- }[];
175
- hooks: Hook[];
176
- events: (({
177
- eventType: "run_created";
178
- eventData: {
179
- deploymentId: string;
180
- workflowName: string;
181
- input: unknown;
182
- executionContext?: Record<string, any> | undefined;
183
- };
184
- correlationId?: string | undefined;
185
- specVersion?: number | undefined;
186
- } | {
187
- eventType: "run_started";
188
- correlationId?: string | undefined;
189
- specVersion?: number | undefined;
190
- } | {
191
- eventType: "run_completed";
192
- eventData: {
193
- output?: unknown;
194
- };
195
- correlationId?: string | undefined;
196
- specVersion?: number | undefined;
197
- } | {
198
- eventType: "run_failed";
199
- eventData: {
200
- error: any;
201
- errorCode?: string | undefined;
202
- };
203
- correlationId?: string | undefined;
204
- specVersion?: number | undefined;
205
- } | {
206
- eventType: "run_cancelled";
207
- correlationId?: string | undefined;
208
- specVersion?: number | undefined;
209
- } | {
210
- eventType: "step_created";
211
- correlationId: string;
212
- eventData: {
213
- stepName: string;
214
- input: unknown;
215
- };
216
- specVersion?: number | undefined;
217
- } | {
218
- eventType: "step_completed";
219
- correlationId: string;
220
- eventData: {
221
- result: unknown;
222
- };
223
- specVersion?: number | undefined;
224
- } | {
225
- eventType: "step_failed";
226
- correlationId: string;
227
- eventData: {
228
- error: any;
229
- stack?: string | undefined;
230
- };
231
- specVersion?: number | undefined;
232
- } | {
233
- eventType: "step_retrying";
234
- correlationId: string;
235
- eventData: {
236
- error: any;
237
- stack?: string | undefined;
238
- retryAfter?: Date | undefined;
239
- };
240
- specVersion?: number | undefined;
241
- } | {
242
- eventType: "step_started";
243
- correlationId: string;
244
- specVersion?: number | undefined;
245
- eventData?: {
246
- attempt?: number | undefined;
247
- } | undefined;
248
- } | {
249
- eventType: "hook_created";
250
- correlationId: string;
251
- eventData: {
252
- token: string;
253
- metadata?: unknown;
254
- };
255
- specVersion?: number | undefined;
256
- } | {
257
- eventType: "hook_received";
258
- correlationId: string;
259
- eventData: {
260
- payload: unknown;
261
- };
262
- specVersion?: number | undefined;
263
- } | {
264
- eventType: "hook_disposed";
265
- correlationId: string;
266
- specVersion?: number | undefined;
267
- } | {
268
- eventType: "hook_conflict";
269
- correlationId: string;
270
- eventData: {
271
- token: string;
272
- };
273
- specVersion?: number | undefined;
274
- } | {
275
- eventType: "wait_created";
276
- correlationId: string;
277
- eventData: {
278
- resumeAt: Date;
279
- };
280
- specVersion?: number | undefined;
281
- } | {
282
- eventType: "wait_completed";
283
- correlationId: string;
284
- specVersion?: number | undefined;
285
- }) & {
286
- runId: string;
287
- eventId: string;
288
- createdAt: Date;
289
- specVersion?: number | undefined;
290
- })[];
291
- loading: boolean;
292
- auxiliaryDataLoading: boolean;
293
- error: Error | null;
294
- update: (stepsOnly?: boolean) => Promise<{
295
- foundNewItems: boolean;
296
- }>;
297
- };
298
- /**
299
- * Returns (and keeps up-to-date) data inherent to a specific run/step/hook,
300
- * resolving input/output/metadata, AND loading all related events with full event data.
301
- */
302
- export declare function useWorkflowResourceData(env: EnvMap, resource: 'run' | 'step' | 'hook' | 'sleep', resourceId: string, options?: {
303
- refreshInterval?: number;
304
- runId?: string;
305
- }): {
306
- data: {
307
- runId: string;
308
- stepId: string;
309
- stepName: string;
310
- status: "pending" | "running" | "completed" | "failed" | "cancelled";
311
- input: unknown;
312
- attempt: number;
313
- createdAt: Date;
314
- updatedAt: Date;
315
- output?: unknown;
316
- error?: {
317
- message: string;
318
- stack?: string | undefined;
319
- code?: string | undefined;
320
- } | undefined;
321
- startedAt?: Date | undefined;
322
- completedAt?: Date | undefined;
323
- retryAfter?: Date | undefined;
324
- specVersion?: number | undefined;
325
- } | {
326
- runId: string;
327
- deploymentId: string;
328
- workflowName: string;
329
- input: unknown;
330
- createdAt: Date;
331
- updatedAt: Date;
332
- status: "pending" | "running";
333
- output: undefined;
334
- error: undefined;
335
- completedAt: undefined;
336
- specVersion?: number | undefined;
337
- executionContext?: Record<string, any> | undefined;
338
- expiredAt?: Date | undefined;
339
- startedAt?: Date | undefined;
340
- } | {
341
- runId: string;
342
- deploymentId: string;
343
- workflowName: string;
344
- input: unknown;
345
- createdAt: Date;
346
- updatedAt: Date;
347
- status: "cancelled";
348
- output: undefined;
349
- error: undefined;
350
- completedAt: Date;
351
- specVersion?: number | undefined;
352
- executionContext?: Record<string, any> | undefined;
353
- expiredAt?: Date | undefined;
354
- startedAt?: Date | undefined;
355
- } | {
356
- runId: string;
357
- deploymentId: string;
358
- workflowName: string;
359
- input: unknown;
360
- createdAt: Date;
361
- updatedAt: Date;
362
- status: "completed";
363
- output: unknown;
364
- error: undefined;
365
- completedAt: Date;
366
- specVersion?: number | undefined;
367
- executionContext?: Record<string, any> | undefined;
368
- expiredAt?: Date | undefined;
369
- startedAt?: Date | undefined;
370
- } | {
371
- runId: string;
372
- deploymentId: string;
373
- workflowName: string;
374
- input: unknown;
375
- createdAt: Date;
376
- updatedAt: Date;
377
- status: "failed";
378
- output: undefined;
379
- error: {
380
- message: string;
381
- stack?: string | undefined;
382
- code?: string | undefined;
383
- };
384
- completedAt: Date;
385
- specVersion?: number | undefined;
386
- executionContext?: Record<string, any> | undefined;
387
- expiredAt?: Date | undefined;
388
- startedAt?: Date | undefined;
389
- } | (({
390
- eventType: "run_created";
391
- eventData: {
392
- deploymentId: string;
393
- workflowName: string;
394
- input: unknown;
395
- executionContext?: Record<string, any> | undefined;
396
- };
397
- correlationId?: string | undefined;
398
- specVersion?: number | undefined;
399
- } | {
400
- eventType: "run_started";
401
- correlationId?: string | undefined;
402
- specVersion?: number | undefined;
403
- } | {
404
- eventType: "run_completed";
405
- eventData: {
406
- output?: unknown;
407
- };
408
- correlationId?: string | undefined;
409
- specVersion?: number | undefined;
410
- } | {
411
- eventType: "run_failed";
412
- eventData: {
413
- error: any;
414
- errorCode?: string | undefined;
415
- };
416
- correlationId?: string | undefined;
417
- specVersion?: number | undefined;
418
- } | {
419
- eventType: "run_cancelled";
420
- correlationId?: string | undefined;
421
- specVersion?: number | undefined;
422
- } | {
423
- eventType: "step_created";
424
- correlationId: string;
425
- eventData: {
426
- stepName: string;
427
- input: unknown;
428
- };
429
- specVersion?: number | undefined;
430
- } | {
431
- eventType: "step_completed";
432
- correlationId: string;
433
- eventData: {
434
- result: unknown;
435
- };
436
- specVersion?: number | undefined;
437
- } | {
438
- eventType: "step_failed";
439
- correlationId: string;
440
- eventData: {
441
- error: any;
442
- stack?: string | undefined;
443
- };
444
- specVersion?: number | undefined;
445
- } | {
446
- eventType: "step_retrying";
447
- correlationId: string;
448
- eventData: {
449
- error: any;
450
- stack?: string | undefined;
451
- retryAfter?: Date | undefined;
452
- };
453
- specVersion?: number | undefined;
454
- } | {
455
- eventType: "step_started";
456
- correlationId: string;
457
- specVersion?: number | undefined;
458
- eventData?: {
459
- attempt?: number | undefined;
460
- } | undefined;
461
- } | {
462
- eventType: "hook_created";
463
- correlationId: string;
464
- eventData: {
465
- token: string;
466
- metadata?: unknown;
467
- };
468
- specVersion?: number | undefined;
469
- } | {
470
- eventType: "hook_received";
471
- correlationId: string;
472
- eventData: {
473
- payload: unknown;
474
- };
475
- specVersion?: number | undefined;
476
- } | {
477
- eventType: "hook_disposed";
478
- correlationId: string;
479
- specVersion?: number | undefined;
480
- } | {
481
- eventType: "hook_conflict";
482
- correlationId: string;
483
- eventData: {
484
- token: string;
485
- };
486
- specVersion?: number | undefined;
487
- } | {
488
- eventType: "wait_created";
489
- correlationId: string;
490
- eventData: {
491
- resumeAt: Date;
492
- };
493
- specVersion?: number | undefined;
494
- } | {
495
- eventType: "wait_completed";
496
- correlationId: string;
497
- specVersion?: number | undefined;
498
- }) & {
499
- runId: string;
500
- eventId: string;
501
- createdAt: Date;
502
- specVersion?: number | undefined;
503
- }) | Hook | null;
504
- loading: boolean;
505
- error: Error | null;
506
- refresh: () => Promise<void>;
507
- };
508
- /**
509
- * Cancel a workflow run
510
- */
511
- export declare function cancelRun(env: EnvMap, runId: string): Promise<void>;
512
- /**
513
- * Start a new workflow run
514
- */
515
- export declare function recreateRun(env: EnvMap, runId: string): Promise<string>;
516
- /**
517
- * Wake up a workflow run by re-enqueuing it
518
- */
519
- export declare function reenqueueRun(env: EnvMap, runId: string): Promise<void>;
520
- /**
521
- * Wake up a workflow run by interrupting any pending sleep() calls
522
- */
523
- export declare function wakeUpRun(env: EnvMap, runId: string, options?: StopSleepOptions): Promise<StopSleepResult>;
524
- export type { ResumeHookResult };
525
- /**
526
- * Resume a hook by sending a JSON payload
527
- */
528
- export declare function resumeHook(env: EnvMap, token: string, payload: unknown): Promise<ResumeHookResult>;
529
- export declare function readStream(env: EnvMap, streamId: string, startIndex?: number): Promise<ReadableStream<unknown>>;
530
- /**
531
- * List all stream IDs for a run
532
- */
533
- export declare function listStreams(env: EnvMap, runId: string): Promise<string[]>;
534
- /**
535
- * Hook to fetch and manage stream list for a run
536
- */
537
- export declare function useWorkflowStreams(env: EnvMap, runId: string, refreshInterval?: number): {
538
- streams: string[];
539
- loading: boolean;
540
- error: Error | null;
541
- refresh: () => Promise<void>;
542
- };
543
- //# sourceMappingURL=workflow-api-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-api-client.d.ts","sourceRoot":"","sources":["../../src/api/workflow-api-client.ts"],"names":[],"mappings":"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"}