@workflow/web-shared 4.0.1-beta.8 → 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.
- package/README.md +2 -0
- package/dist/api/workflow-api-client.d.ts +325 -85
- package/dist/api/workflow-api-client.d.ts.map +1 -1
- package/dist/api/workflow-api-client.js +370 -214
- package/dist/api/workflow-api-client.js.map +1 -1
- package/dist/api/workflow-server-actions.d.ts +136 -3
- package/dist/api/workflow-server-actions.d.ts.map +1 -1
- package/dist/api/workflow-server-actions.js +649 -116
- package/dist/api/workflow-server-actions.js.map +1 -1
- package/dist/components/ui/card.d.ts +9 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +18 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/error-card.d.ts +15 -0
- package/dist/components/ui/error-card.d.ts.map +1 -0
- package/dist/components/ui/error-card.js +14 -0
- package/dist/components/ui/error-card.js.map +1 -0
- package/dist/components/ui/skeleton.d.ts +3 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeleton.js +7 -0
- package/dist/components/ui/skeleton.js.map +1 -0
- package/dist/error-boundary.d.ts +28 -0
- package/dist/error-boundary.d.ts.map +1 -0
- package/dist/error-boundary.js +51 -0
- package/dist/error-boundary.js.map +1 -0
- package/dist/event-list-view.d.ts +13 -0
- package/dist/event-list-view.d.ts.map +1 -0
- package/dist/event-list-view.js +183 -0
- package/dist/event-list-view.js.map +1 -0
- package/dist/hook-actions.d.ts +59 -0
- package/dist/hook-actions.d.ts.map +1 -0
- package/dist/hook-actions.js +76 -0
- package/dist/hook-actions.js.map +1 -0
- package/dist/hooks/use-dark-mode.d.ts +9 -0
- package/dist/hooks/use-dark-mode.d.ts.map +1 -0
- package/dist/hooks/use-dark-mode.js +30 -0
- package/dist/hooks/use-dark-mode.js.map +1 -0
- package/dist/index.d.ts +14 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/event-analysis.d.ts +55 -0
- package/dist/lib/event-analysis.d.ts.map +1 -0
- package/dist/lib/event-analysis.js +161 -0
- package/dist/lib/event-analysis.js.map +1 -0
- package/dist/lib/utils.d.ts +44 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +109 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/run-trace-view.d.ts.map +1 -1
- package/dist/run-trace-view.js +1 -1
- package/dist/run-trace-view.js.map +1 -1
- package/dist/sidebar/attribute-panel.d.ts +12 -2
- package/dist/sidebar/attribute-panel.d.ts.map +1 -1
- package/dist/sidebar/attribute-panel.js +368 -23
- package/dist/sidebar/attribute-panel.js.map +1 -1
- package/dist/sidebar/conversation-view.d.ts +7 -0
- package/dist/sidebar/conversation-view.d.ts.map +1 -0
- package/dist/sidebar/conversation-view.js +125 -0
- package/dist/sidebar/conversation-view.js.map +1 -0
- package/dist/sidebar/detail-card.d.ts.map +1 -1
- package/dist/sidebar/detail-card.js +2 -2
- package/dist/sidebar/detail-card.js.map +1 -1
- package/dist/sidebar/entity-detail-panel.d.ts +12 -0
- package/dist/sidebar/entity-detail-panel.d.ts.map +1 -0
- package/dist/sidebar/entity-detail-panel.js +190 -0
- package/dist/sidebar/entity-detail-panel.js.map +1 -0
- package/dist/sidebar/events-list.d.ts +2 -1
- package/dist/sidebar/events-list.d.ts.map +1 -1
- package/dist/sidebar/events-list.js +11 -10
- package/dist/sidebar/events-list.js.map +1 -1
- package/dist/sidebar/resolve-hook-modal.d.ts +16 -0
- package/dist/sidebar/resolve-hook-modal.d.ts.map +1 -0
- package/dist/sidebar/resolve-hook-modal.js +74 -0
- package/dist/sidebar/resolve-hook-modal.js.map +1 -0
- package/dist/stream-viewer.d.ts +13 -0
- package/dist/stream-viewer.d.ts.map +1 -0
- package/dist/stream-viewer.js +109 -0
- package/dist/stream-viewer.js.map +1 -0
- package/dist/trace-viewer/components/markers.d.ts.map +1 -1
- package/dist/trace-viewer/components/markers.js +3 -2
- package/dist/trace-viewer/components/markers.js.map +1 -1
- package/dist/trace-viewer/components/node.d.ts.map +1 -1
- package/dist/trace-viewer/components/node.js +1 -0
- package/dist/trace-viewer/components/node.js.map +1 -1
- package/dist/trace-viewer/components/search.d.ts.map +1 -1
- package/dist/trace-viewer/components/search.js +1 -0
- package/dist/trace-viewer/components/search.js.map +1 -1
- package/dist/trace-viewer/components/span-detail-panel.js +2 -2
- package/dist/trace-viewer/components/span-detail-panel.js.map +1 -1
- package/dist/trace-viewer/context.d.ts.map +1 -1
- package/dist/trace-viewer/context.js +1 -0
- package/dist/trace-viewer/context.js.map +1 -1
- package/dist/trace-viewer/trace-viewer.module.css +47 -30
- package/dist/trace-viewer/types.d.ts +11 -0
- package/dist/trace-viewer/types.d.ts.map +1 -1
- package/dist/trace-viewer/util/timing.d.ts +7 -1
- package/dist/trace-viewer/util/timing.d.ts.map +1 -1
- package/dist/trace-viewer/util/timing.js +7 -12
- package/dist/trace-viewer/util/timing.js.map +1 -1
- package/dist/trace-viewer/util/tree.d.ts.map +1 -1
- package/dist/trace-viewer/util/tree.js +4 -0
- package/dist/trace-viewer/util/tree.js.map +1 -1
- package/dist/trace-viewer/util/use-immediate-style.d.ts.map +1 -1
- package/dist/trace-viewer/util/use-immediate-style.js +1 -0
- package/dist/trace-viewer/util/use-immediate-style.js.map +1 -1
- package/dist/trace-viewer/util/use-streaming-spans.d.ts.map +1 -1
- package/dist/trace-viewer/util/use-streaming-spans.js +2 -1
- package/dist/trace-viewer/util/use-streaming-spans.js.map +1 -1
- package/dist/trace-viewer/util/use-trackpad-zoom.d.ts.map +1 -1
- package/dist/trace-viewer/util/use-trackpad-zoom.js +1 -0
- package/dist/trace-viewer/util/use-trackpad-zoom.js.map +1 -1
- package/dist/trace-viewer/worker.js +1 -1
- package/dist/trace-viewer/worker.js.map +1 -1
- package/dist/workflow-trace-view.d.ts +3 -1
- package/dist/workflow-trace-view.d.ts.map +1 -1
- package/dist/workflow-trace-view.js +28 -11
- package/dist/workflow-trace-view.js.map +1 -1
- package/dist/workflow-traces/event-colors.d.ts +1 -1
- package/dist/workflow-traces/event-colors.js +2 -2
- package/dist/workflow-traces/event-colors.js.map +1 -1
- package/dist/workflow-traces/trace-colors.d.ts.map +1 -1
- package/dist/workflow-traces/trace-colors.js +1 -3
- package/dist/workflow-traces/trace-colors.js.map +1 -1
- package/dist/workflow-traces/trace-span-construction.d.ts +18 -3
- package/dist/workflow-traces/trace-span-construction.d.ts.map +1 -1
- package/dist/workflow-traces/trace-span-construction.js +84 -31
- package/dist/workflow-traces/trace-span-construction.js.map +1 -1
- package/dist/workflow-traces/trace-time-utils.d.ts +2 -2
- package/dist/workflow-traces/trace-time-utils.d.ts.map +1 -1
- package/dist/workflow-traces/trace-time-utils.js +9 -0
- package/dist/workflow-traces/trace-time-utils.js.map +1 -1
- package/package.json +26 -15
- package/server/README.md +1 -0
- package/server/package.json +4 -0
- package/dist/sidebar/workflow-detail-panel.d.ts +0 -8
- package/dist/sidebar/workflow-detail-panel.d.ts.map +0 -1
- package/dist/sidebar/workflow-detail-panel.js +0 -56
- package/dist/sidebar/workflow-detail-panel.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-trace-view.js","sourceRoot":"","sources":["../src/workflow-trace-view.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workflow-trace-view.js","sourceRoot":"","sources":["../src/workflow-trace-view.tsx"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ export interface EventColorPalette {
|
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Get the color palette for an event based on its type
|
|
19
|
-
* - Red for failures (step_failed,
|
|
19
|
+
* - Red for failures (step_failed, run_failed)
|
|
20
20
|
* - Orange/yellow for retries (step_retrying)
|
|
21
21
|
* - Purple for webhook-related events
|
|
22
22
|
* - Blue otherwise (default)
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
5
|
* Get the color palette for an event based on its type
|
|
6
|
-
* - Red for failures (step_failed,
|
|
6
|
+
* - Red for failures (step_failed, run_failed)
|
|
7
7
|
* - Orange/yellow for retries (step_retrying)
|
|
8
8
|
* - Purple for webhook-related events
|
|
9
9
|
* - Blue otherwise (default)
|
|
10
10
|
*/
|
|
11
11
|
export function getEventColor(eventType) {
|
|
12
12
|
// Failures - Red
|
|
13
|
-
if (eventType === 'step_failed' || eventType === '
|
|
13
|
+
if (eventType === 'step_failed' || eventType === 'run_failed') {
|
|
14
14
|
return {
|
|
15
15
|
color: 'var(--ds-red-600)',
|
|
16
16
|
background: 'var(--ds-red-100)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-colors.js","sourceRoot":"","sources":["../../src/workflow-traces/event-colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,SAA6B;IAE7B,iBAAiB;IACjB,IAAI,SAAS,KAAK,aAAa,IAAI,SAAS,KAAK,
|
|
1
|
+
{"version":3,"file":"event-colors.js","sourceRoot":"","sources":["../../src/workflow-traces/event-colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAC3B,SAA6B;IAE7B,iBAAiB;IACjB,IAAI,SAAS,KAAK,aAAa,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;QAC9D,OAAO;YACL,KAAK,EAAE,mBAAmB;YAC1B,UAAU,EAAE,mBAAmB;YAC/B,MAAM,EAAE,mBAAmB;YAC3B,IAAI,EAAE,mBAAmB;YACzB,SAAS,EAAE,mBAAmB;SAC/B,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;QAClC,OAAO;YACL,KAAK,EAAE,qBAAqB;YAC5B,UAAU,EAAE,qBAAqB;YACjC,MAAM,EAAE,qBAAqB;YAC7B,IAAI,EAAE,qBAAqB;YAC3B,SAAS,EAAE,qBAAqB;SACjC,CAAC;IACJ,CAAC;IAED,2BAA2B;IAC3B,IACE,SAAS,KAAK,cAAc;QAC5B,SAAS,KAAK,eAAe;QAC7B,SAAS,KAAK,eAAe,EAC7B,CAAC;QACD,OAAO;YACL,KAAK,EAAE,sBAAsB;YAC7B,UAAU,EAAE,sBAAsB;YAClC,MAAM,EAAE,sBAAsB;YAC9B,IAAI,EAAE,sBAAsB;YAC5B,SAAS,EAAE,sBAAsB;SAClC,CAAC;IACJ,CAAC;IAED,iBAAiB;IACjB,OAAO;QACL,KAAK,EAAE,oBAAoB;QAC3B,UAAU,EAAE,oBAAoB;QAChC,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,oBAAoB;QAC1B,SAAS,EAAE,oBAAoB;KAChC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAA6B;IAClE,8CAA8C;IAC9C,IACE,SAAS,KAAK,cAAc;QAC5B,SAAS,KAAK,eAAe;QAC7B,SAAS,KAAK,eAAe,EAC7B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oDAAoD;IACpD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-colors.d.ts","sourceRoot":"","sources":["../../src/workflow-traces/trace-colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"trace-colors.d.ts","sourceRoot":"","sources":["../../src/workflow-traces/trace-colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAoCrE;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GAAI,MAAM,QAAQ,KAAG,MAiCvD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,GACtC,WAAW,aAAa,KACvB,MAwBF,CAAC"}
|
|
@@ -18,8 +18,6 @@ function getStatusClassName(status, isStripped = false) {
|
|
|
18
18
|
return styles.spanCompleted;
|
|
19
19
|
case 'cancelled':
|
|
20
20
|
return styles.spanCancelled;
|
|
21
|
-
case 'paused':
|
|
22
|
-
return styles.spanPaused;
|
|
23
21
|
case 'failed':
|
|
24
22
|
return styles.spanFailed;
|
|
25
23
|
default:
|
|
@@ -70,7 +68,7 @@ export const getCustomSpanClassName = (span) => {
|
|
|
70
68
|
export const getCustomSpanEventClassName = (spanEvent) => {
|
|
71
69
|
const eventName = spanEvent.event.name;
|
|
72
70
|
// Failure events - Red
|
|
73
|
-
if (eventName === 'step_failed' || eventName === '
|
|
71
|
+
if (eventName === 'step_failed' || eventName === 'run_failed') {
|
|
74
72
|
return styles.eventFailed;
|
|
75
73
|
}
|
|
76
74
|
// Retry events - Orange/Yellow
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-colors.js","sourceRoot":"","sources":["../../src/workflow-traces/trace-colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,MAAM,MAAM,yCAAyC,CAAC;AAG7D;;GAEG;AACH,SAAS,kBAAkB,CACzB,MAA8C,EAC9C,UAAU,GAAG,KAAK;IAElB,IAAI,UAAU,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAED,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,WAAW,CAAC;QAC5B,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,WAAW,CAAC;QAC5B,KAAK,WAAW;YACd,OAAO,MAAM,CAAC,aAAa,CAAC;QAC9B,KAAK,WAAW;YACd,OAAO,MAAM,CAAC,aAAa,CAAC;QAC9B,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,UAAU,CAAC;QAC3B
|
|
1
|
+
{"version":3,"file":"trace-colors.js","sourceRoot":"","sources":["../../src/workflow-traces/trace-colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,MAAM,MAAM,yCAAyC,CAAC;AAG7D;;GAEG;AACH,SAAS,kBAAkB,CACzB,MAA8C,EAC9C,UAAU,GAAG,KAAK;IAElB,IAAI,UAAU,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,kBAAkB,CAAC;IACnC,CAAC;IAED,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,WAAW,CAAC;QAC5B,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,WAAW,CAAC;QAC5B,KAAK,WAAW;YACd,OAAO,MAAM,CAAC,aAAa,CAAC;QAC9B,KAAK,WAAW;YACd,OAAO,MAAM,CAAC,aAAa,CAAC;QAC9B,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC,UAAU,CAAC;QAC3B;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,IAAc,EAAU,EAAE;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IACxC,MAAM,QAAQ,GAAG,UAAU,EAAE,QAAQ,CAAC;IAEtC,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAY,CAAC;QACzC,MAAM,QAAQ,GAAG,QAAQ,EAAE,QAAQ,CAAC;QAEpC,yCAAyC;QACzC,IAAI,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC,SAAS,CAAC;QAC1B,CAAC;QAED,mCAAmC;QACnC,MAAM,UAAU,GAAG,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAC;QAClD,OAAO,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAmB,CAAC;QAC/C,OAAO,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,2BAA2B;IAC3B,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,SAAwB,EAChB,EAAE;IACV,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;IAEvC,uBAAuB;IACvB,IAAI,SAAS,KAAK,aAAa,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;QAC9D,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,+BAA+B;IAC/B,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,kCAAkC;IAClC,IACE,SAAS,KAAK,cAAc;QAC5B,SAAS,KAAK,eAAe;QAC7B,SAAS,KAAK,eAAe,EAC7B,CAAC;QACD,OAAO,MAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IAED,iBAAiB;IACjB,OAAO,MAAM,CAAC,YAAY,CAAC;AAC7B,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Functions for constructing OpenTelemetry spans from workflow entities
|
|
3
3
|
*/
|
|
4
|
-
import type { Event,
|
|
4
|
+
import type { Event, Step, WorkflowRun } from '@workflow/world';
|
|
5
5
|
import type { Span, SpanEvent } from '../trace-viewer/types';
|
|
6
6
|
export declare const WORKFLOW_LIBRARY: {
|
|
7
7
|
name: string;
|
|
@@ -12,18 +12,33 @@ export declare const WORKFLOW_LIBRARY: {
|
|
|
12
12
|
* Only includes events that should be displayed as markers
|
|
13
13
|
*/
|
|
14
14
|
export declare function convertEventsToSpanEvents(events: Event[], filterTypes?: boolean): SpanEvent[];
|
|
15
|
+
export declare const waitEventsToWaitEntity: (events: Event[]) => {
|
|
16
|
+
waitId: string;
|
|
17
|
+
runId: string;
|
|
18
|
+
createdAt: Date;
|
|
19
|
+
resumeAt: Date;
|
|
20
|
+
completedAt?: Date;
|
|
21
|
+
} | null;
|
|
15
22
|
/**
|
|
16
23
|
* Converts a workflow Wait to an OpenTelemetry Span
|
|
17
24
|
*/
|
|
18
|
-
export declare function waitToSpan(
|
|
25
|
+
export declare function waitToSpan(events: Event[], run: WorkflowRun, nowTime: Date): Span | null;
|
|
19
26
|
/**
|
|
20
27
|
* Converts a workflow Step to an OpenTelemetry Span
|
|
21
28
|
*/
|
|
22
29
|
export declare function stepToSpan(step: Step, stepEvents: Event[], nowTime?: Date): Span;
|
|
30
|
+
export declare const hookEventsToHookEntity: (events: Event[]) => {
|
|
31
|
+
hookId: string;
|
|
32
|
+
runId: string;
|
|
33
|
+
createdAt: Date;
|
|
34
|
+
receivedCount: number;
|
|
35
|
+
lastReceivedAt?: Date;
|
|
36
|
+
disposedAt?: Date;
|
|
37
|
+
} | null;
|
|
23
38
|
/**
|
|
24
39
|
* Converts a workflow Hook to an OpenTelemetry Span
|
|
25
40
|
*/
|
|
26
|
-
export declare function hookToSpan(
|
|
41
|
+
export declare function hookToSpan(hookEvents: Event[], run: WorkflowRun, nowTime: Date): Span | null;
|
|
27
42
|
/**
|
|
28
43
|
* Creates a root span for the workflow run
|
|
29
44
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-span-construction.d.ts","sourceRoot":"","sources":["../../src/workflow-traces/trace-span-construction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"trace-span-construction.d.ts","sourceRoot":"","sources":["../../src/workflow-traces/trace-span-construction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAI7D,eAAO,MAAM,gBAAgB;;;CAG5B,CAAC;AAiBF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,KAAK,EAAE,EACf,WAAW,UAAO,GACjB,SAAS,EAAE,CAgBb;AAED,eAAO,MAAM,sBAAsB,GACjC,QAAQ,KAAK,EAAE,KACd;IACD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,IAAI,CAAC;IACf,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB,GAAG,IAeH,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,KAAK,EAAE,EACf,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,IAAI,GACZ,IAAI,GAAG,IAAI,CA8Bb;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,KAAK,EAAE,EACnB,OAAO,CAAC,EAAE,IAAI,GACb,IAAI,CAoDN;AAED,eAAO,MAAM,sBAAsB,GACjC,QAAQ,KAAK,EAAE,KACd;IACD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,IAAI,CAAC;CACnB,GAAG,IAsBH,CAAC;AAEF;;GAEG;AACH,wBAAgB,UAAU,CACxB,UAAU,EAAE,KAAK,EAAE,EACnB,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,IAAI,GACZ,IAAI,GAAG,IAAI,CAgCb;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,KAAK,EAAE,EAClB,OAAO,CAAC,EAAE,IAAI,GACb,IAAI,CAqCN"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Functions for constructing OpenTelemetry spans from workflow entities
|
|
3
3
|
*/
|
|
4
|
-
import { parseStepName, parseWorkflowName } from '@workflow/
|
|
4
|
+
import { parseStepName, parseWorkflowName } from '@workflow/utils/parse-name';
|
|
5
5
|
import { shouldShowVerticalLine } from './event-colors';
|
|
6
6
|
import { calculateDuration, dateToOtelTime } from './trace-time-utils';
|
|
7
7
|
export const WORKFLOW_LIBRARY = {
|
|
@@ -15,9 +15,10 @@ const MARKER_EVENT_TYPES = new Set([
|
|
|
15
15
|
'hook_created',
|
|
16
16
|
'hook_received',
|
|
17
17
|
'hook_disposed',
|
|
18
|
+
'step_started',
|
|
18
19
|
'step_retrying',
|
|
19
20
|
'step_failed',
|
|
20
|
-
'
|
|
21
|
+
'run_failed',
|
|
21
22
|
'wait_created',
|
|
22
23
|
'wait_completed',
|
|
23
24
|
]);
|
|
@@ -40,20 +41,37 @@ export function convertEventsToSpanEvents(events, filterTypes = true) {
|
|
|
40
41
|
showVerticalLine: shouldShowVerticalLine(event.eventType),
|
|
41
42
|
}));
|
|
42
43
|
}
|
|
44
|
+
export const waitEventsToWaitEntity = (events) => {
|
|
45
|
+
const startEvent = events.find((event) => event.eventType === 'wait_created');
|
|
46
|
+
if (!startEvent) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const completedEvent = events.find((event) => event.eventType === 'wait_completed');
|
|
50
|
+
return {
|
|
51
|
+
waitId: startEvent.correlationId,
|
|
52
|
+
runId: startEvent.runId,
|
|
53
|
+
createdAt: startEvent.createdAt,
|
|
54
|
+
resumeAt: startEvent.eventData?.resumeAt,
|
|
55
|
+
completedAt: completedEvent?.createdAt,
|
|
56
|
+
};
|
|
57
|
+
};
|
|
43
58
|
/**
|
|
44
59
|
* Converts a workflow Wait to an OpenTelemetry Span
|
|
45
60
|
*/
|
|
46
|
-
export function waitToSpan(
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
61
|
+
export function waitToSpan(events, run, nowTime) {
|
|
62
|
+
const wait = waitEventsToWaitEntity(events);
|
|
63
|
+
if (!wait) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
const viewerEndTime = new Date(run.completedAt || nowTime) ?? nowTime;
|
|
67
|
+
const startTime = wait?.createdAt ?? nowTime;
|
|
68
|
+
const endTime = wait?.completedAt ?? viewerEndTime;
|
|
51
69
|
const start = dateToOtelTime(startTime);
|
|
52
70
|
const end = dateToOtelTime(endTime);
|
|
53
71
|
const duration = calculateDuration(startTime, endTime);
|
|
54
72
|
const spanEvents = convertEventsToSpanEvents(events);
|
|
55
73
|
return {
|
|
56
|
-
spanId:
|
|
74
|
+
spanId: wait.waitId,
|
|
57
75
|
name: 'sleep',
|
|
58
76
|
kind: 1, // INTERNAL span kind
|
|
59
77
|
resource: 'sleep',
|
|
@@ -62,9 +80,7 @@ export function waitToSpan(correlationId, events, nowTime) {
|
|
|
62
80
|
traceFlags: 1,
|
|
63
81
|
attributes: {
|
|
64
82
|
resource: 'sleep',
|
|
65
|
-
data:
|
|
66
|
-
correlationId,
|
|
67
|
-
},
|
|
83
|
+
data: wait,
|
|
68
84
|
},
|
|
69
85
|
links: [],
|
|
70
86
|
events: spanEvents,
|
|
@@ -85,11 +101,22 @@ export function stepToSpan(step, stepEvents, nowTime) {
|
|
|
85
101
|
data: step,
|
|
86
102
|
};
|
|
87
103
|
const resource = 'step';
|
|
88
|
-
const endTime = step.completedAt ?? now;
|
|
104
|
+
const endTime = new Date(step.completedAt ?? now);
|
|
89
105
|
// Convert step-related events to span events (for markers like hook_created, step_retrying, etc.)
|
|
90
106
|
// This determines which events are displayed as markers. In the detail view,
|
|
91
107
|
// we'll show all events that correlate with the selected resource.
|
|
92
108
|
const events = convertEventsToSpanEvents(stepEvents);
|
|
109
|
+
// Use createdAt as span start time, with activeStartTime for when execution began
|
|
110
|
+
// This allows visualization of the "queued" period before execution
|
|
111
|
+
const spanStartTime = new Date(step.createdAt);
|
|
112
|
+
let activeStartTime = step.startedAt ? new Date(step.startedAt) : undefined;
|
|
113
|
+
const firstStartEvent = stepEvents.find((event) => event.eventType === 'step_started');
|
|
114
|
+
if (firstStartEvent) {
|
|
115
|
+
// `step.startedAt` is the server-side creation timestamp, and `event.createdAt` is
|
|
116
|
+
// the client-side creation timestamp. For now, to align the event marker with the
|
|
117
|
+
// line we show for step.startedAt, we overwrite here to always use client-side time.
|
|
118
|
+
activeStartTime = new Date(firstStartEvent.createdAt);
|
|
119
|
+
}
|
|
93
120
|
return {
|
|
94
121
|
spanId: String(step.stepId),
|
|
95
122
|
name: parsedName?.shortName ?? '',
|
|
@@ -101,29 +128,46 @@ export function stepToSpan(step, stepEvents, nowTime) {
|
|
|
101
128
|
attributes,
|
|
102
129
|
links: [],
|
|
103
130
|
events,
|
|
104
|
-
startTime: dateToOtelTime(
|
|
131
|
+
startTime: dateToOtelTime(spanStartTime),
|
|
105
132
|
endTime: dateToOtelTime(endTime),
|
|
106
|
-
duration: calculateDuration(
|
|
133
|
+
duration: calculateDuration(spanStartTime, endTime),
|
|
134
|
+
// Only set activeStartTime if it differs from startTime (i.e., there was a queued period)
|
|
135
|
+
activeStartTime: activeStartTime && activeStartTime.getTime() > spanStartTime.getTime()
|
|
136
|
+
? dateToOtelTime(activeStartTime)
|
|
137
|
+
: undefined,
|
|
107
138
|
};
|
|
108
139
|
}
|
|
140
|
+
export const hookEventsToHookEntity = (events) => {
|
|
141
|
+
const createdEvent = events.find((event) => event.eventType === 'hook_created');
|
|
142
|
+
if (!createdEvent) {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
const receivedEvents = events.filter((event) => event.eventType === 'hook_received');
|
|
146
|
+
const disposedEvents = events.filter((event) => event.eventType === 'hook_disposed');
|
|
147
|
+
const lastReceivedEvent = receivedEvents.at(-1);
|
|
148
|
+
return {
|
|
149
|
+
hookId: createdEvent.correlationId,
|
|
150
|
+
runId: createdEvent.runId,
|
|
151
|
+
createdAt: createdEvent.createdAt,
|
|
152
|
+
receivedCount: receivedEvents.length,
|
|
153
|
+
lastReceivedAt: lastReceivedEvent?.createdAt || undefined,
|
|
154
|
+
disposedAt: disposedEvents.at(-1)?.createdAt || undefined,
|
|
155
|
+
};
|
|
156
|
+
};
|
|
109
157
|
/**
|
|
110
158
|
* Converts a workflow Hook to an OpenTelemetry Span
|
|
111
159
|
*/
|
|
112
|
-
export function hookToSpan(
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
};
|
|
118
|
-
const lastHookReceivedEvent = hookEvents
|
|
119
|
-
.slice()
|
|
120
|
-
.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime())
|
|
121
|
-
.find((event) => event.eventType === 'hook_received');
|
|
122
|
-
const endTime = lastHookReceivedEvent
|
|
123
|
-
? lastHookReceivedEvent.createdAt
|
|
124
|
-
: new Date(Math.max(hook.createdAt.getTime() + 10_000, Date.now()));
|
|
160
|
+
export function hookToSpan(hookEvents, run, nowTime) {
|
|
161
|
+
const hook = hookEventsToHookEntity(hookEvents);
|
|
162
|
+
if (!hook) {
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
125
165
|
// Convert hook-related events to span events
|
|
126
166
|
const events = convertEventsToSpanEvents(hookEvents);
|
|
167
|
+
// We display hooks as a minimum span size of 10 seconds, just to ensure
|
|
168
|
+
// it's clickable even if there is no
|
|
169
|
+
const viewerEndTime = new Date(run.completedAt || nowTime) ?? nowTime;
|
|
170
|
+
const endTime = hook.disposedAt || viewerEndTime;
|
|
127
171
|
return {
|
|
128
172
|
spanId: String(hook.hookId),
|
|
129
173
|
name: String(hook.hookId),
|
|
@@ -132,7 +176,10 @@ export function hookToSpan(hook, hookEvents) {
|
|
|
132
176
|
library: WORKFLOW_LIBRARY,
|
|
133
177
|
status: { code: 1 },
|
|
134
178
|
traceFlags: 1,
|
|
135
|
-
attributes
|
|
179
|
+
attributes: {
|
|
180
|
+
resource: 'hook',
|
|
181
|
+
data: hook,
|
|
182
|
+
},
|
|
136
183
|
links: [],
|
|
137
184
|
events,
|
|
138
185
|
startTime: dateToOtelTime(hook.createdAt),
|
|
@@ -150,7 +197,9 @@ export function runToSpan(run, runEvents, nowTime) {
|
|
|
150
197
|
resource: 'run',
|
|
151
198
|
data: run,
|
|
152
199
|
};
|
|
153
|
-
|
|
200
|
+
// Use createdAt as span start time, with activeStartTime for when execution began
|
|
201
|
+
const spanStartTime = new Date(run.createdAt);
|
|
202
|
+
const activeStartTime = run.startedAt ? new Date(run.startedAt) : undefined;
|
|
154
203
|
const endTime = run.completedAt ?? now;
|
|
155
204
|
// Convert run-level events to span events
|
|
156
205
|
const events = convertEventsToSpanEvents(runEvents);
|
|
@@ -165,9 +214,13 @@ export function runToSpan(run, runEvents, nowTime) {
|
|
|
165
214
|
attributes,
|
|
166
215
|
links: [],
|
|
167
216
|
events,
|
|
168
|
-
startTime: dateToOtelTime(
|
|
217
|
+
startTime: dateToOtelTime(spanStartTime),
|
|
169
218
|
endTime: dateToOtelTime(endTime),
|
|
170
|
-
duration: calculateDuration(
|
|
219
|
+
duration: calculateDuration(spanStartTime, endTime),
|
|
220
|
+
// Only set activeStartTime if it differs from startTime (i.e., there was a queued period)
|
|
221
|
+
activeStartTime: activeStartTime && activeStartTime.getTime() > spanStartTime.getTime()
|
|
222
|
+
? dateToOtelTime(activeStartTime)
|
|
223
|
+
: undefined,
|
|
171
224
|
};
|
|
172
225
|
}
|
|
173
226
|
//# sourceMappingURL=trace-span-construction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-span-construction.js","sourceRoot":"","sources":["../../src/workflow-traces/trace-span-construction.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"trace-span-construction.js","sourceRoot":"","sources":["../../src/workflow-traces/trace-span-construction.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
/**
|
|
5
5
|
* Converts a Date to OpenTelemetry time format [seconds, nanoseconds]
|
|
6
6
|
*/
|
|
7
|
-
export declare function dateToOtelTime(date: Date | unknown): [number, number];
|
|
7
|
+
export declare function dateToOtelTime(date: Date | string | unknown): [number, number];
|
|
8
8
|
export declare function otelTimeToMs(time: [number, number]): number;
|
|
9
9
|
/**
|
|
10
10
|
* Calculates duration in [seconds, nanoseconds] format
|
|
11
11
|
*/
|
|
12
|
-
export declare function calculateDuration(start: Date | unknown, end: Date | unknown): [number, number];
|
|
12
|
+
export declare function calculateDuration(start: Date | string | unknown, end: Date | string | unknown): [number, number];
|
|
13
13
|
//# sourceMappingURL=trace-time-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-time-utils.d.ts","sourceRoot":"","sources":["../../src/workflow-traces/trace-time-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,cAAc,
|
|
1
|
+
{"version":3,"file":"trace-time-utils.d.ts","sourceRoot":"","sources":["../../src/workflow-traces/trace-time-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,GAC5B,CAAC,MAAM,EAAE,MAAM,CAAC,CAWlB;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAI3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,EAC9B,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,GAC3B,CAAC,MAAM,EAAE,MAAM,CAAC,CAelB"}
|
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
* Converts a Date to OpenTelemetry time format [seconds, nanoseconds]
|
|
6
6
|
*/
|
|
7
7
|
export function dateToOtelTime(date) {
|
|
8
|
+
if (typeof date === 'string') {
|
|
9
|
+
date = new Date(date);
|
|
10
|
+
}
|
|
8
11
|
if (!date || !(date instanceof Date)) {
|
|
9
12
|
return [0, 0];
|
|
10
13
|
}
|
|
@@ -22,6 +25,12 @@ export function otelTimeToMs(time) {
|
|
|
22
25
|
* Calculates duration in [seconds, nanoseconds] format
|
|
23
26
|
*/
|
|
24
27
|
export function calculateDuration(start, end) {
|
|
28
|
+
if (typeof start === 'string') {
|
|
29
|
+
start = new Date(start);
|
|
30
|
+
}
|
|
31
|
+
if (typeof end === 'string') {
|
|
32
|
+
end = new Date(end);
|
|
33
|
+
}
|
|
25
34
|
if (!start || !(start instanceof Date)) {
|
|
26
35
|
return [0, 0];
|
|
27
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-time-utils.js","sourceRoot":"","sources":["../../src/workflow-traces/trace-time-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"trace-time-utils.js","sourceRoot":"","sources":["../../src/workflow-traces/trace-time-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,IAA6B;IAE7B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChB,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5C,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAsB;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACpC,MAAM,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAC5C,OAAO,WAAW,GAAG,eAAe,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,KAA8B,EAC9B,GAA4B;IAE5B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChB,CAAC;IACD,MAAM,OAAO,GAAG,GAAG,IAAI,GAAG,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IACpD,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAChC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@workflow/web-shared",
|
|
3
3
|
"description": "Shared components for Workflow Observability UI",
|
|
4
|
-
"version": "4.0
|
|
4
|
+
"version": "4.1.0-beta.46",
|
|
5
5
|
"private": false,
|
|
6
6
|
"files": [
|
|
7
|
-
"dist"
|
|
7
|
+
"dist",
|
|
8
|
+
"server"
|
|
8
9
|
],
|
|
9
10
|
"publishConfig": {
|
|
10
11
|
"access": "public"
|
|
11
12
|
},
|
|
12
13
|
"license": "Apache-2.0",
|
|
14
|
+
"main": "./dist/index.js",
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
13
16
|
"exports": {
|
|
14
17
|
".": {
|
|
15
18
|
"types": "./dist/index.d.ts",
|
|
@@ -26,25 +29,33 @@
|
|
|
26
29
|
"directory": "packages/web-shared"
|
|
27
30
|
},
|
|
28
31
|
"dependencies": {
|
|
29
|
-
"@tailwindcss/postcss": "
|
|
30
|
-
"class-variance-authority": "
|
|
31
|
-
"clsx": "
|
|
32
|
-
"
|
|
33
|
-
"
|
|
32
|
+
"@tailwindcss/postcss": "4",
|
|
33
|
+
"class-variance-authority": "0.7.1",
|
|
34
|
+
"clsx": "2.1.1",
|
|
35
|
+
"color-hash": "2.0.2",
|
|
36
|
+
"date-fns": "4.1.0",
|
|
37
|
+
"lucide-react": "0.469.0",
|
|
34
38
|
"react": "19.1.0",
|
|
35
39
|
"react-dom": "19.1.0",
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
40
|
+
"shiki": "3.13.0",
|
|
41
|
+
"sonner": "2.0.7",
|
|
42
|
+
"streamdown": "1.6.11",
|
|
43
|
+
"swr": "2.3.6",
|
|
44
|
+
"tailwind-merge": "2.5.5",
|
|
45
|
+
"tailwindcss": "4",
|
|
46
|
+
"@workflow/core": "4.1.0-beta.51",
|
|
47
|
+
"@workflow/errors": "4.1.0-beta.14",
|
|
48
|
+
"@workflow/utils": "4.1.0-beta.11",
|
|
49
|
+
"@workflow/world": "4.1.0-beta.1",
|
|
50
|
+
"@workflow/world-vercel": "4.1.0-beta.29"
|
|
42
51
|
},
|
|
43
52
|
"devDependencies": {
|
|
44
53
|
"@biomejs/biome": "^2.2.7",
|
|
54
|
+
"@types/color-hash": "2.0.0",
|
|
45
55
|
"@types/node": "22.19.0",
|
|
46
|
-
"@types/react": "
|
|
47
|
-
"@types/react-dom": "
|
|
56
|
+
"@types/react": "19",
|
|
57
|
+
"@types/react-dom": "19",
|
|
58
|
+
"ai": "5.0.104",
|
|
48
59
|
"typescript": "^5.9.3",
|
|
49
60
|
"@workflow/tsconfig": "4.0.1-beta.0"
|
|
50
61
|
},
|
package/server/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Here for backwards compatibility with "moduleResolution": "node16" in tsconfig.json of older projects.
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { EnvMap } from '../api/workflow-server-actions';
|
|
2
|
-
/**
|
|
3
|
-
* Custom panel component for workflow traces that displays entity details
|
|
4
|
-
*/
|
|
5
|
-
export declare function WorkflowDetailPanel({ env, }: {
|
|
6
|
-
env: EnvMap;
|
|
7
|
-
}): React.JSX.Element | null;
|
|
8
|
-
//# sourceMappingURL=workflow-detail-panel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-detail-panel.d.ts","sourceRoot":"","sources":["../../src/sidebar/workflow-detail-panel.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAK7D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,GAAG,GACJ,EAAE;IACD,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CA2E3B"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import clsx from 'clsx';
|
|
4
|
-
import { useEffect, useMemo } from 'react';
|
|
5
|
-
import { toast } from 'sonner';
|
|
6
|
-
import { useWorkflowResourceData } from '../api/workflow-api-client';
|
|
7
|
-
import { EventsList } from '../sidebar/events-list';
|
|
8
|
-
import { useTraceViewer } from '../trace-viewer';
|
|
9
|
-
import { AttributePanel } from './attribute-panel';
|
|
10
|
-
/**
|
|
11
|
-
* Custom panel component for workflow traces that displays entity details
|
|
12
|
-
*/
|
|
13
|
-
export function WorkflowDetailPanel({ env, }) {
|
|
14
|
-
const { state } = useTraceViewer();
|
|
15
|
-
const { selected } = state;
|
|
16
|
-
const data = selected?.span.attributes?.data;
|
|
17
|
-
// Determine resource ID and runId (needed for steps)
|
|
18
|
-
const { resource, resourceId, runId } = useMemo(() => {
|
|
19
|
-
const resource = selected?.span.attributes?.resource;
|
|
20
|
-
if (resource === 'step') {
|
|
21
|
-
const step = data;
|
|
22
|
-
return { resource: 'step', resourceId: step.stepId, runId: step.runId };
|
|
23
|
-
}
|
|
24
|
-
else if (resource === 'run') {
|
|
25
|
-
const run = data;
|
|
26
|
-
return { resource: 'run', resourceId: run.runId, runId: undefined };
|
|
27
|
-
}
|
|
28
|
-
else if (resource === 'hook') {
|
|
29
|
-
const hook = data;
|
|
30
|
-
return { resource: 'hook', resourceId: hook.hookId, runId: undefined };
|
|
31
|
-
}
|
|
32
|
-
else if (resource === 'sleep') {
|
|
33
|
-
return {
|
|
34
|
-
resource: 'sleep',
|
|
35
|
-
resourceId: selected?.span?.spanId,
|
|
36
|
-
runId: undefined,
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
return { resource: undefined, resourceId: undefined, runId: undefined };
|
|
40
|
-
}, [selected, data]);
|
|
41
|
-
// Fetch full resource data with events
|
|
42
|
-
const { data: fetchedData, error, loading, } = useWorkflowResourceData(env, resource, resourceId ?? '', { runId });
|
|
43
|
-
useEffect(() => {
|
|
44
|
-
if (error && selected && resource) {
|
|
45
|
-
toast.error(`Failed to load ${resource} details`, {
|
|
46
|
-
description: error.message,
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
}, [error, resource, selected]);
|
|
50
|
-
if (!selected || !resource || !resourceId) {
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
const displayData = fetchedData || data;
|
|
54
|
-
return (_jsxs("div", { className: clsx('flex flex-col px-2'), children: [_jsx(AttributePanel, { data: displayData, isLoading: loading, error: error ?? undefined }), resource !== 'run' && (_jsx(EventsList, { correlationId: resourceId, env: env, events: selected.span.events }))] }));
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=workflow-detail-panel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-detail-panel.js","sourceRoot":"","sources":["../../src/sidebar/workflow-detail-panel.tsx"],"names":[],"mappings":"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"}
|