@xyne/workflow-ui 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/builder/v3/AiBuilderPanel.d.ts.map +1 -1
- package/dist/components/builder/v3/AiBuilderPanel.js +18 -50
- package/dist/components/builder/v3/AiBuilderPanel.js.map +1 -1
- package/dist/components/builder/v3/CitationEditor.d.ts +18 -0
- package/dist/components/builder/v3/CitationEditor.d.ts.map +1 -0
- package/dist/components/builder/v3/CitationEditor.js +32 -0
- package/dist/components/builder/v3/CitationEditor.js.map +1 -0
- package/dist/components/builder/v3/EnhancedSchemaFormRenderer.d.ts +6 -2
- package/dist/components/builder/v3/EnhancedSchemaFormRenderer.d.ts.map +1 -1
- package/dist/components/builder/v3/EnhancedSchemaFormRenderer.js +28 -9
- package/dist/components/builder/v3/EnhancedSchemaFormRenderer.js.map +1 -1
- package/dist/components/builder/v3/KeyValueEditor.d.ts +6 -1
- package/dist/components/builder/v3/KeyValueEditor.d.ts.map +1 -1
- package/dist/components/builder/v3/KeyValueEditor.js +3 -2
- package/dist/components/builder/v3/KeyValueEditor.js.map +1 -1
- package/dist/components/builder/v3/SidePanel.d.ts +3 -1
- package/dist/components/builder/v3/SidePanel.d.ts.map +1 -1
- package/dist/components/builder/v3/SidePanel.js +2 -2
- package/dist/components/builder/v3/SidePanel.js.map +1 -1
- package/dist/components/builder/v3/StepConfigPanel.d.ts +6 -2
- package/dist/components/builder/v3/StepConfigPanel.d.ts.map +1 -1
- package/dist/components/builder/v3/StepConfigPanel.js +2 -2
- package/dist/components/builder/v3/StepConfigPanel.js.map +1 -1
- package/dist/components/builder/v3/WorkflowBuilderV3.d.ts.map +1 -1
- package/dist/components/builder/v3/WorkflowBuilderV3.js +1 -1
- package/dist/components/builder/v3/WorkflowBuilderV3.js.map +1 -1
- package/dist/components/builder/v3/field-source-control.d.ts +20 -0
- package/dist/components/builder/v3/field-source-control.d.ts.map +1 -0
- package/dist/components/builder/v3/field-source-control.js +33 -0
- package/dist/components/builder/v3/field-source-control.js.map +1 -0
- package/dist/components/execution/ApprovalsView.d.ts.map +1 -1
- package/dist/components/execution/ApprovalsView.js +47 -21
- package/dist/components/execution/ApprovalsView.js.map +1 -1
- package/dist/components/execution/ExecutionViewer.d.ts.map +1 -1
- package/dist/components/execution/ExecutionViewer.js +31 -2
- package/dist/components/execution/ExecutionViewer.js.map +1 -1
- package/dist/components/execution/PauseFormRenderer.d.ts +5 -2
- package/dist/components/execution/PauseFormRenderer.d.ts.map +1 -1
- package/dist/components/execution/PauseFormRenderer.js +5 -4
- package/dist/components/execution/PauseFormRenderer.js.map +1 -1
- package/dist/components/execution/PauseInteractionPanel.d.ts +8 -1
- package/dist/components/execution/PauseInteractionPanel.d.ts.map +1 -1
- package/dist/components/execution/PauseInteractionPanel.js +16 -21
- package/dist/components/execution/PauseInteractionPanel.js.map +1 -1
- package/dist/components/execution/StepDetailPanel.d.ts +7 -1
- package/dist/components/execution/StepDetailPanel.d.ts.map +1 -1
- package/dist/components/execution/StepDetailPanel.js +2 -2
- package/dist/components/execution/StepDetailPanel.js.map +1 -1
- package/dist/components/execution/origin/OriginTrace.d.ts +40 -0
- package/dist/components/execution/origin/OriginTrace.d.ts.map +1 -0
- package/dist/components/execution/origin/OriginTrace.js +107 -0
- package/dist/components/execution/origin/OriginTrace.js.map +1 -0
- package/dist/components/execution/origin/origin-resolver.d.ts +99 -0
- package/dist/components/execution/origin/origin-resolver.d.ts.map +1 -0
- package/dist/components/execution/origin/origin-resolver.js +185 -0
- package/dist/components/execution/origin/origin-resolver.js.map +1 -0
- package/dist/components/shared/AttachmentCard.d.ts +14 -0
- package/dist/components/shared/AttachmentCard.d.ts.map +1 -1
- package/dist/components/shared/AttachmentCard.js +38 -0
- package/dist/components/shared/AttachmentCard.js.map +1 -1
- package/dist/components/shared/ChatPanel.d.ts +22 -0
- package/dist/components/shared/ChatPanel.d.ts.map +1 -0
- package/dist/components/shared/ChatPanel.js +64 -0
- package/dist/components/shared/ChatPanel.js.map +1 -0
- package/dist/hooks/use-ai-builder.d.ts +2 -2
- package/dist/hooks/use-ai-builder.d.ts.map +1 -1
- package/dist/hooks/use-ai-builder.js.map +1 -1
- package/dist/hooks/use-approval-ai.d.ts +13 -0
- package/dist/hooks/use-approval-ai.d.ts.map +1 -0
- package/dist/hooks/use-approval-ai.js +36 -0
- package/dist/hooks/use-approval-ai.js.map +1 -0
- package/dist/hooks/use-variable-picker.d.ts.map +1 -1
- package/dist/hooks/use-variable-picker.js +30 -9
- package/dist/hooks/use-variable-picker.js.map +1 -1
- package/dist/hooks/use-workflow-builder.d.ts +5 -1
- package/dist/hooks/use-workflow-builder.d.ts.map +1 -1
- package/dist/hooks/use-workflow-builder.js +48 -0
- package/dist/hooks/use-workflow-builder.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +2 -2
- package/dist/components/builder/AddStepButton.d.ts +0 -6
- package/dist/components/builder/AddStepButton.d.ts.map +0 -1
- package/dist/components/builder/AddStepButton.js +0 -7
- package/dist/components/builder/AddStepButton.js.map +0 -1
- package/dist/components/builder/BranchEdge.d.ts +0 -3
- package/dist/components/builder/BranchEdge.d.ts.map +0 -1
- package/dist/components/builder/BranchEdge.js +0 -19
- package/dist/components/builder/BranchEdge.js.map +0 -1
- package/dist/components/builder/BuilderToolbar.d.ts +0 -10
- package/dist/components/builder/BuilderToolbar.d.ts.map +0 -1
- package/dist/components/builder/BuilderToolbar.js +0 -16
- package/dist/components/builder/BuilderToolbar.js.map +0 -1
- package/dist/components/builder/StepConfigDrawer.d.ts +0 -11
- package/dist/components/builder/StepConfigDrawer.d.ts.map +0 -1
- package/dist/components/builder/StepConfigDrawer.js +0 -21
- package/dist/components/builder/StepConfigDrawer.js.map +0 -1
- package/dist/components/builder/StepNode.d.ts +0 -15
- package/dist/components/builder/StepNode.d.ts.map +0 -1
- package/dist/components/builder/StepNode.js +0 -56
- package/dist/components/builder/StepNode.js.map +0 -1
- package/dist/components/builder/StepPalette.d.ts +0 -7
- package/dist/components/builder/StepPalette.d.ts.map +0 -1
- package/dist/components/builder/StepPalette.js +0 -83
- package/dist/components/builder/StepPalette.js.map +0 -1
- package/dist/components/builder/StepPicker.d.ts +0 -9
- package/dist/components/builder/StepPicker.d.ts.map +0 -1
- package/dist/components/builder/StepPicker.js +0 -95
- package/dist/components/builder/StepPicker.js.map +0 -1
- package/dist/components/builder/TriggerConfigPanel.d.ts +0 -10
- package/dist/components/builder/TriggerConfigPanel.d.ts.map +0 -1
- package/dist/components/builder/TriggerConfigPanel.js +0 -49
- package/dist/components/builder/TriggerConfigPanel.js.map +0 -1
- package/dist/components/builder/TriggerNode.d.ts +0 -9
- package/dist/components/builder/TriggerNode.d.ts.map +0 -1
- package/dist/components/builder/TriggerNode.js +0 -30
- package/dist/components/builder/TriggerNode.js.map +0 -1
- package/dist/components/builder/TriggerPicker.d.ts +0 -8
- package/dist/components/builder/TriggerPicker.d.ts.map +0 -1
- package/dist/components/builder/TriggerPicker.js +0 -61
- package/dist/components/builder/TriggerPicker.js.map +0 -1
- package/dist/components/builder/WorkflowBuilder.d.ts +0 -20
- package/dist/components/builder/WorkflowBuilder.d.ts.map +0 -1
- package/dist/components/builder/WorkflowBuilder.js +0 -157
- package/dist/components/builder/WorkflowBuilder.js.map +0 -1
- package/dist/components/builder/edge-types.d.ts +0 -3
- package/dist/components/builder/edge-types.d.ts.map +0 -1
- package/dist/components/builder/edge-types.js +0 -5
- package/dist/components/builder/edge-types.js.map +0 -1
- package/dist/components/builder/node-types.d.ts +0 -3
- package/dist/components/builder/node-types.d.ts.map +0 -1
- package/dist/components/builder/node-types.js +0 -11
- package/dist/components/builder/node-types.js.map +0 -1
- package/dist/components/builder/v2/AddStepButton.d.ts +0 -6
- package/dist/components/builder/v2/AddStepButton.d.ts.map +0 -1
- package/dist/components/builder/v2/AddStepButton.js +0 -6
- package/dist/components/builder/v2/AddStepButton.js.map +0 -1
- package/dist/components/builder/v2/BranchEdge.d.ts +0 -3
- package/dist/components/builder/v2/BranchEdge.d.ts.map +0 -1
- package/dist/components/builder/v2/BranchEdge.js +0 -46
- package/dist/components/builder/v2/BranchEdge.js.map +0 -1
- package/dist/components/builder/v2/LoopBodyEdge.d.ts +0 -7
- package/dist/components/builder/v2/LoopBodyEdge.d.ts.map +0 -1
- package/dist/components/builder/v2/LoopBodyEdge.js +0 -19
- package/dist/components/builder/v2/LoopBodyEdge.js.map +0 -1
- package/dist/components/builder/v2/LoopbackEdge.d.ts +0 -10
- package/dist/components/builder/v2/LoopbackEdge.d.ts.map +0 -1
- package/dist/components/builder/v2/LoopbackEdge.js +0 -26
- package/dist/components/builder/v2/LoopbackEdge.js.map +0 -1
- package/dist/components/builder/v2/StepNode.d.ts +0 -21
- package/dist/components/builder/v2/StepNode.d.ts.map +0 -1
- package/dist/components/builder/v2/StepNode.js +0 -36
- package/dist/components/builder/v2/StepNode.js.map +0 -1
- package/dist/components/builder/v2/StepPicker.d.ts +0 -8
- package/dist/components/builder/v2/StepPicker.d.ts.map +0 -1
- package/dist/components/builder/v2/StepPicker.js +0 -73
- package/dist/components/builder/v2/StepPicker.js.map +0 -1
- package/dist/components/builder/v2/TerminalNode.d.ts +0 -6
- package/dist/components/builder/v2/TerminalNode.d.ts.map +0 -1
- package/dist/components/builder/v2/TerminalNode.js +0 -7
- package/dist/components/builder/v2/TerminalNode.js.map +0 -1
- package/dist/components/builder/v2/TriggerNode.d.ts +0 -10
- package/dist/components/builder/v2/TriggerNode.d.ts.map +0 -1
- package/dist/components/builder/v2/TriggerNode.js +0 -20
- package/dist/components/builder/v2/TriggerNode.js.map +0 -1
- package/dist/components/builder/v2/TriggerPicker.d.ts +0 -7
- package/dist/components/builder/v2/TriggerPicker.d.ts.map +0 -1
- package/dist/components/builder/v2/TriggerPicker.js +0 -45
- package/dist/components/builder/v2/TriggerPicker.js.map +0 -1
- package/dist/components/builder/v2/WorkflowBuilder.d.ts +0 -14
- package/dist/components/builder/v2/WorkflowBuilder.d.ts.map +0 -1
- package/dist/components/builder/v2/WorkflowBuilder.js +0 -189
- package/dist/components/builder/v2/WorkflowBuilder.js.map +0 -1
- package/dist/components/builder/v2/edge-types.d.ts +0 -3
- package/dist/components/builder/v2/edge-types.d.ts.map +0 -1
- package/dist/components/builder/v2/edge-types.js +0 -9
- package/dist/components/builder/v2/edge-types.js.map +0 -1
- package/dist/components/builder/v2/icons.d.ts +0 -25
- package/dist/components/builder/v2/icons.d.ts.map +0 -1
- package/dist/components/builder/v2/icons.js +0 -43
- package/dist/components/builder/v2/icons.js.map +0 -1
- package/dist/components/builder/v2/layout-engine.d.ts +0 -76
- package/dist/components/builder/v2/layout-engine.d.ts.map +0 -1
- package/dist/components/builder/v2/layout-engine.js +0 -465
- package/dist/components/builder/v2/layout-engine.js.map +0 -1
- package/dist/components/builder/v2/node-types.d.ts +0 -3
- package/dist/components/builder/v2/node-types.d.ts.map +0 -1
- package/dist/components/builder/v2/node-types.js +0 -11
- package/dist/components/builder/v2/node-types.js.map +0 -1
- package/dist/components/builder/v2/theme.d.ts +0 -28
- package/dist/components/builder/v2/theme.d.ts.map +0 -1
- package/dist/components/builder/v2/theme.js +0 -63
- package/dist/components/builder/v2/theme.js.map +0 -1
- package/dist/components/dashboard/WorkflowSummaryEditor.d.ts +0 -11
- package/dist/components/dashboard/WorkflowSummaryEditor.d.ts.map +0 -1
- package/dist/components/dashboard/WorkflowSummaryEditor.js +0 -46
- package/dist/components/dashboard/WorkflowSummaryEditor.js.map +0 -1
- package/dist/components/execution/ExecutionEdge.d.ts +0 -4
- package/dist/components/execution/ExecutionEdge.d.ts.map +0 -1
- package/dist/components/execution/ExecutionEdge.js +0 -27
- package/dist/components/execution/ExecutionEdge.js.map +0 -1
- package/dist/components/execution/ExecutionStepNode.d.ts +0 -14
- package/dist/components/execution/ExecutionStepNode.d.ts.map +0 -1
- package/dist/components/execution/ExecutionStepNode.js +0 -47
- package/dist/components/execution/ExecutionStepNode.js.map +0 -1
- package/dist/components/execution/ExecutionTriggerNode.d.ts +0 -9
- package/dist/components/execution/ExecutionTriggerNode.d.ts.map +0 -1
- package/dist/components/execution/ExecutionTriggerNode.js +0 -15
- package/dist/components/execution/ExecutionTriggerNode.js.map +0 -1
- package/dist/components/execution/StepAgentPanels.d.ts +0 -9
- package/dist/components/execution/StepAgentPanels.d.ts.map +0 -1
- package/dist/components/execution/StepAgentPanels.js +0 -133
- package/dist/components/execution/StepAgentPanels.js.map +0 -1
- package/dist/components/execution/execution-layout.d.ts +0 -31
- package/dist/components/execution/execution-layout.d.ts.map +0 -1
- package/dist/components/execution/execution-layout.js +0 -90
- package/dist/components/execution/execution-layout.js.map +0 -1
- package/dist/components/shared/JsonTreeViewer.d.ts +0 -9
- package/dist/components/shared/JsonTreeViewer.d.ts.map +0 -1
- package/dist/components/shared/JsonTreeViewer.js +0 -46
- package/dist/components/shared/JsonTreeViewer.js.map +0 -1
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* OriginTrace — the reviewer-facing "where did this value come from" UI.
|
|
4
|
+
*
|
|
5
|
+
* - `OriginChip`: quiet "⌄ source" affordance next to a value.
|
|
6
|
+
* - `useOriginInspector`: holds which value is being inspected.
|
|
7
|
+
* - `OriginPanel`: right-hand drawer that resolves the value's ref(s) and lets
|
|
8
|
+
* the reviewer trace upstream ("and above") recursively.
|
|
9
|
+
*
|
|
10
|
+
* The chip only *sets* state; the panel does the rendering — keeping the
|
|
11
|
+
* resolver (origin-resolver.ts) presentation-agnostic.
|
|
12
|
+
*/
|
|
13
|
+
import { useState } from 'react';
|
|
14
|
+
import { extractRefPath } from '@xyne/workflow-sdk/builder';
|
|
15
|
+
import { cn } from '../../shared/cn.js';
|
|
16
|
+
import { SidePanelShell } from '../SidePanelShell.js';
|
|
17
|
+
import { AttachmentList } from '../../shared/AttachmentCard.js';
|
|
18
|
+
import { resolveRef, getOriginRefs, } from './origin-resolver.js';
|
|
19
|
+
const MAX_DEPTH = 8;
|
|
20
|
+
export function useOriginInspector() {
|
|
21
|
+
const [inspected, setInspected] = useState(null);
|
|
22
|
+
return {
|
|
23
|
+
inspected,
|
|
24
|
+
open: (label, autoRefs, citations = []) => setInspected({ label, autoRefs, citations }),
|
|
25
|
+
close: () => setInspected(null),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
// ─── Chip ───
|
|
29
|
+
export function OriginChip({ onClick, className }) {
|
|
30
|
+
return (_jsxs("button", { type: "button", onClick: onClick, title: "Where this value came from", className: cn('inline-flex shrink-0 items-center gap-1 rounded-full border px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide transition-colors', 'border-[var(--wui-border)] bg-[var(--wui-bg)] text-[var(--wui-fg-muted)]', 'hover:border-[var(--wui-status-paused)] hover:text-[var(--wui-fg)]', className), children: [_jsxs("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.25, strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("line", { x1: "12", y1: "16", x2: "12", y2: "12" }), _jsx("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" })] }), "Source"] }));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Generic, value-driven chip. Shows the Source chip when the value has auto refs
|
|
34
|
+
* OR the field has author citations. The single mechanism at every
|
|
35
|
+
* reviewer-visible value — no field- or step-specific knowledge.
|
|
36
|
+
*/
|
|
37
|
+
export function OriginChipFor({ raw, label, citations = [], onInspect, className, }) {
|
|
38
|
+
if (!onInspect)
|
|
39
|
+
return null;
|
|
40
|
+
const autoRefs = getOriginRefs(raw);
|
|
41
|
+
if (autoRefs.length === 0 && citations.length === 0)
|
|
42
|
+
return null;
|
|
43
|
+
return _jsx(OriginChip, { onClick: () => onInspect(label, autoRefs, citations), className: className });
|
|
44
|
+
}
|
|
45
|
+
// ─── Panel (resizable, layout side-panel) ───
|
|
46
|
+
export function OriginPanel({ inspected, ctx, onClose, width, onWidthChange, className, }) {
|
|
47
|
+
if (!inspected)
|
|
48
|
+
return null;
|
|
49
|
+
const { autoRefs, citations } = inspected;
|
|
50
|
+
const multi = autoRefs.length > 1;
|
|
51
|
+
return (_jsxs(SidePanelShell, { accentClassName: "border-t-[var(--wui-status-paused)]", width: width, onWidthChange: onWidthChange, className: className, children: [_jsxs("div", { className: "flex shrink-0 items-center justify-between gap-3 border-b border-[var(--wui-border)] px-4", style: { minHeight: '53px' }, children: [_jsxs("div", { className: "min-w-0", children: [_jsx("p", { className: "text-[10px] font-semibold uppercase tracking-wider text-[var(--wui-fg-muted)]", children: "Value origin" }), _jsx("p", { className: "truncate text-[13px] font-semibold text-[var(--wui-fg)]", title: inspected.label, children: inspected.label })] }), _jsx("button", { type: "button", onClick: onClose, "aria-label": "Close", className: "grid h-7 w-7 shrink-0 place-items-center rounded-[var(--wui-radius-sm)] text-[var(--wui-fg-muted)] transition-colors hover:bg-[var(--wui-bg-subtle)]", children: _jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), _jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })] }) })] }), _jsxs("div", { className: "flex-1 space-y-4 overflow-y-auto px-4 py-4", children: [autoRefs.length > 0 && (_jsxs("section", { className: "space-y-2", children: [_jsx(SectionHeader, { children: "Where it came from" }), _jsx("p", { className: "text-[12px] leading-relaxed text-[var(--wui-fg-muted)]", children: multi
|
|
52
|
+
? `This value is assembled from ${String(autoRefs.length)} sources:`
|
|
53
|
+
: 'This value comes from:' }), autoRefs.map((ref) => (_jsx(OriginNode, { refPath: ref, ctx: ctx, depth: 0, visited: new Set([ref]), onClose: onClose }, ref)))] })), citations.length > 0 && (_jsxs("section", { className: "space-y-2", children: [_jsxs(SectionHeader, { children: ["Supporting sources", _jsx("span", { className: "ml-1.5 rounded-full bg-[var(--wui-status-paused)]/15 px-1.5 py-px text-[9px] font-semibold text-[var(--wui-status-paused)]", children: "added by author" })] }), _jsx("p", { className: "text-[12px] leading-relaxed text-[var(--wui-fg-muted)]", children: "Reference material attached to help you verify this value:" }), citations.map((c, i) => (_jsx(CitationNode, { citation: c, ctx: ctx, onClose: onClose }, `${c.ref}-${String(i)}`)))] })), autoRefs.length === 0 && citations.length === 0 && (_jsx("p", { className: "text-[12px] leading-relaxed text-[var(--wui-fg-muted)]", children: "This value was entered directly \u2014 it isn\u2019t derived from an earlier step." }))] })] }));
|
|
54
|
+
}
|
|
55
|
+
function SectionHeader({ children }) {
|
|
56
|
+
return (_jsx("h3", { className: "flex items-center text-[10px] font-bold uppercase tracking-wider text-[var(--wui-fg-muted)]", children: children }));
|
|
57
|
+
}
|
|
58
|
+
/** A single author citation: resolves its ref and renders it like an origin (or a file). */
|
|
59
|
+
function CitationNode({ citation, ctx, onClose }) {
|
|
60
|
+
// citation.ref is the full "{{...}}" form; resolveRef wants the bare path.
|
|
61
|
+
const origin = resolveRef(extractRefPath(citation.ref) ?? citation.ref, ctx);
|
|
62
|
+
return (_jsx("div", { className: "overflow-hidden rounded-[var(--wui-radius-sm)] border border-[var(--wui-border)] bg-[var(--wui-bg-subtle)]", children: _jsxs("div", { className: "border-l-2 border-[var(--wui-status-paused)] p-2.5", children: [citation.label && (_jsx("div", { className: "mb-0.5 text-[12.5px] font-semibold text-[var(--wui-fg)]", children: citation.label })), citation.description && (_jsx("p", { className: "mb-1.5 text-[11px] leading-snug text-[var(--wui-fg-muted)]", children: citation.description })), _jsx(OriginBody, { origin: origin, ctx: ctx, onClose: onClose })] }) }));
|
|
63
|
+
}
|
|
64
|
+
// ─── Recursive node ───
|
|
65
|
+
function OriginNode({ refPath, ctx, depth, visited, onClose, }) {
|
|
66
|
+
const origin = resolveRef(refPath, ctx);
|
|
67
|
+
const [open, setOpen] = useState(false);
|
|
68
|
+
const traceable = origin.upstreamRefs.filter((r) => !visited.has(r));
|
|
69
|
+
const canTrace = traceable.length > 0 && depth < MAX_DEPTH;
|
|
70
|
+
return (_jsx("div", { className: "overflow-hidden rounded-[var(--wui-radius-sm)] border border-[var(--wui-border)] bg-[var(--wui-bg-subtle)]", children: _jsxs("div", { className: "border-l-2 border-[var(--wui-status-paused)]/50 p-2.5", children: [_jsx(OriginBody, { origin: origin, ctx: ctx, onClose: onClose }), canTrace && (_jsxs("div", { className: "mt-2", children: [_jsxs("button", { type: "button", onClick: () => setOpen((o) => !o), className: "inline-flex items-center gap-1 text-[11px] font-medium text-[var(--wui-fg-muted)] transition-colors hover:text-[var(--wui-fg)]", children: [_jsx("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round", className: cn('transition-transform', open && 'rotate-90'), children: _jsx("polyline", { points: "9 18 15 12 9 6" }) }), open ? 'Hide' : 'Trace back', " (", traceable.length, ")"] }), open && (_jsx("div", { className: "mt-2 space-y-2 border-l-2 border-[var(--wui-border)] pl-2.5", children: traceable.map((r) => (_jsx(OriginNode, { refPath: r, ctx: ctx, depth: depth + 1, visited: new Set([...visited, r]), onClose: onClose }, r))) }))] }))] }) }));
|
|
71
|
+
}
|
|
72
|
+
/** Inner card content shared by an auto-origin node and an author-citation node. */
|
|
73
|
+
function OriginBody({ origin, ctx, onClose }) {
|
|
74
|
+
const [showAll, setShowAll] = useState(false);
|
|
75
|
+
// The full source object behind this value (a step's whole output, or the request).
|
|
76
|
+
const fullData = origin.stepId
|
|
77
|
+
? ctx.stepOutput(origin.stepId)
|
|
78
|
+
: origin.kind === 'trigger'
|
|
79
|
+
? ctx.triggerData
|
|
80
|
+
: undefined;
|
|
81
|
+
const fullLabel = origin.kind === 'trigger' ? 'request' : 'output';
|
|
82
|
+
const hasFull = fullData !== undefined &&
|
|
83
|
+
fullData !== null &&
|
|
84
|
+
typeof fullData === 'object' &&
|
|
85
|
+
Object.keys(fullData).length > 0;
|
|
86
|
+
return (_jsxs(_Fragment, { children: [origin.group && (_jsxs("div", { className: "mb-1.5 inline-flex max-w-full items-center gap-1 truncate rounded-full bg-[var(--wui-bg)] px-2 py-0.5 text-[10px] font-medium text-[var(--wui-fg-muted)] ring-1 ring-inset ring-[var(--wui-border)]", title: origin.group.description ?? origin.group.title, children: [_jsxs("svg", { width: "9", height: "9", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("rect", { x: "3", y: "3", width: "7", height: "7", rx: "1" }), _jsx("rect", { x: "14", y: "3", width: "7", height: "7", rx: "1" }), _jsx("rect", { x: "3", y: "14", width: "7", height: "7", rx: "1" })] }), origin.group.title] })), _jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsx("span", { className: "min-w-0 text-[13px] font-semibold text-[var(--wui-fg)]", title: origin.label, children: origin.label }), origin.stepId && ctx.onJump && (_jsx("button", { type: "button", onClick: () => { ctx.onJump?.(origin.stepId); onClose(); }, className: "shrink-0 rounded-full border border-[var(--wui-border)] px-2 py-0.5 text-[10.5px] font-medium text-[var(--wui-fg-muted)] transition hover:bg-[var(--wui-bg)] hover:text-[var(--wui-fg)]", children: "View step" }))] }), origin.stepDescription && (_jsx("p", { className: "mt-1 text-[11.5px] leading-relaxed text-[var(--wui-fg-muted)]", children: origin.stepDescription })), _jsxs("div", { className: "mt-2.5", children: [_jsx("div", { className: "mb-1 text-[10px] font-semibold uppercase tracking-wide text-[var(--wui-fg-muted)]", children: "Value" }), origin.attachments && origin.attachments.length > 0 ? (_jsx(AttachmentList, { attachments: origin.attachments })) : (_jsx("div", { className: "max-h-48 overflow-auto whitespace-pre-wrap break-words rounded-[var(--wui-radius-sm)] border border-[var(--wui-border)] bg-[var(--wui-bg)] px-2.5 py-2 text-[13px] text-[var(--wui-fg)]", children: formatValue(origin.value) }))] }), hasFull && (_jsxs("div", { className: "mt-2", children: [_jsxs("button", { type: "button", onClick: () => setShowAll((o) => !o), className: "inline-flex items-center gap-1 text-[11px] font-medium text-[var(--wui-fg-muted)] transition-colors hover:text-[var(--wui-fg)]", children: [_jsx("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2.25, strokeLinecap: "round", strokeLinejoin: "round", className: cn('transition-transform', showAll && 'rotate-90'), children: _jsx("polyline", { points: "9 18 15 12 9 6" }) }), showAll ? `Hide full ${fullLabel}` : `View full ${fullLabel}`] }), showAll && (_jsx("pre", { className: "mt-1.5 max-h-60 overflow-auto rounded-[var(--wui-radius-sm)] border border-[var(--wui-border)] bg-[var(--wui-bg)] px-2.5 py-2 text-[11.5px] leading-relaxed text-[var(--wui-fg)]", children: formatValue(fullData) }))] }))] }));
|
|
87
|
+
}
|
|
88
|
+
function formatValue(value) {
|
|
89
|
+
if (value === undefined)
|
|
90
|
+
return '—';
|
|
91
|
+
if (value === null)
|
|
92
|
+
return 'null';
|
|
93
|
+
if (typeof value === 'string')
|
|
94
|
+
return value.length ? value : '(empty)';
|
|
95
|
+
if (Array.isArray(value))
|
|
96
|
+
return value.map((v) => formatValue(v)).join(', ');
|
|
97
|
+
if (typeof value === 'object') {
|
|
98
|
+
try {
|
|
99
|
+
return JSON.stringify(value, null, 2);
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
return String(value);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return String(value);
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=OriginTrace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OriginTrace.js","sourceRoot":"","sources":["../../../../src/components/execution/origin/OriginTrace.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Value-origin resolution — derive "where did this value come from" entirely
|
|
3
|
+
* from the workflow definition (refs intact) + step outputs, both already
|
|
4
|
+
* loaded with an execution. No persistence, no extra fetches.
|
|
5
|
+
*
|
|
6
|
+
* Origins are the canonical `{{refs}}`; `parseRef` (SDK) turns a ref into
|
|
7
|
+
* source/stepId/path. Everything funnels through `getOriginRefs` and
|
|
8
|
+
* `resolveRef` so future tiers (author-tagged, agent-cited) layer in as a
|
|
9
|
+
* preferred provider — see plan "Forward-compat".
|
|
10
|
+
*
|
|
11
|
+
* Wiring a new reviewer surface: the resolver is generic, but each surface still
|
|
12
|
+
* enumerates the field values it renders. To make a new step's fields citable in
|
|
13
|
+
* review, for each visible field mount `<OriginChipFor raw={value}
|
|
14
|
+
* citations={getFieldCitations(stepConfig, citations, fieldPath)} … />`. There is
|
|
15
|
+
* deliberately no step-type switch here — resolution is value/ref-driven.
|
|
16
|
+
*/
|
|
17
|
+
import type { WorkflowConfig, WorkflowStepConfig, Citation } from '@xyne/workflow-sdk/builder';
|
|
18
|
+
import type { ExecutionDetail } from '@xyne/workflow-sdk/client';
|
|
19
|
+
import type { Attachment } from '@xyne/workflow-sdk';
|
|
20
|
+
/**
|
|
21
|
+
* Where the value comes from — a *structural* classification from the ref
|
|
22
|
+
* grammar (`parseRef`), NOT the producing step's type. Framework-agnostic: the
|
|
23
|
+
* resolver never special-cases specific step types.
|
|
24
|
+
*/
|
|
25
|
+
export type OriginKind = 'step' | 'trigger';
|
|
26
|
+
/** Provenance tier. Only `derived` today; `author`/`agent` layer in later. */
|
|
27
|
+
export type OriginTier = 'derived';
|
|
28
|
+
/** A step's documentation group (StepGroup), when it belongs to one. */
|
|
29
|
+
export interface OriginGroup {
|
|
30
|
+
title: string;
|
|
31
|
+
description?: string | undefined;
|
|
32
|
+
}
|
|
33
|
+
export interface ResolvedOrigin {
|
|
34
|
+
/** The raw ref this origin came from. */
|
|
35
|
+
refPath: string;
|
|
36
|
+
tier: OriginTier;
|
|
37
|
+
/** Human label — producing step title (or "the original request" for trigger). */
|
|
38
|
+
label: string;
|
|
39
|
+
/** The producing step's description (documentation), when set. */
|
|
40
|
+
stepDescription?: string | undefined;
|
|
41
|
+
/** The producing step's documentation group, when it belongs to one. */
|
|
42
|
+
group?: OriginGroup | undefined;
|
|
43
|
+
/** The live value at the source (walked from step output / trigger data). */
|
|
44
|
+
value: unknown;
|
|
45
|
+
/** When the resolved value is a file (or files), the attachment(s) to render. */
|
|
46
|
+
attachments?: Attachment[] | undefined;
|
|
47
|
+
kind: OriginKind;
|
|
48
|
+
/** Producing step id, when the ref targets a step. */
|
|
49
|
+
stepId?: string | undefined;
|
|
50
|
+
/** Sub-path within the source, e.g. `output.body.status`. */
|
|
51
|
+
path?: string | undefined;
|
|
52
|
+
/** Refs feeding the producing step — drives upstream ("trace back") recursion. */
|
|
53
|
+
upstreamRefs: string[];
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Accessors the resolver needs, built from data already in hand. Both surfaces
|
|
57
|
+
* (ExecutionViewer, ApprovalsView) construct this from their `ExecutionDetail`.
|
|
58
|
+
*/
|
|
59
|
+
export interface OriginResolverCtx {
|
|
60
|
+
stepTitle: (stepId: string) => string | undefined;
|
|
61
|
+
stepDescription: (stepId: string) => string | undefined;
|
|
62
|
+
/** The step's documentation group (resolved via groupId → workflow groups). */
|
|
63
|
+
stepGroup: (stepId: string) => OriginGroup | undefined;
|
|
64
|
+
stepOutput: (stepId: string) => unknown;
|
|
65
|
+
stepRawConfig: (stepId: string) => unknown;
|
|
66
|
+
triggerData: unknown;
|
|
67
|
+
/** Human label for the trigger, varied by trigger type. Defaults sensibly. */
|
|
68
|
+
triggerLabel?: string | undefined;
|
|
69
|
+
/** Navigate to the producing step (viewer only). */
|
|
70
|
+
onJump?: ((stepId: string) => void) | undefined;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Single funnel for "which refs explain this value". Today: extract every
|
|
74
|
+
* `{{ref}}` from the raw value via the SDK's `collectRefs`. (Future: prefer
|
|
75
|
+
* author-tagged `section.citations` here — one added branch.)
|
|
76
|
+
*/
|
|
77
|
+
export declare function getOriginRefs(rawValue: unknown): string[];
|
|
78
|
+
export declare function resolveRef(refPath: string, ctx: OriginResolverCtx): ResolvedOrigin;
|
|
79
|
+
/**
|
|
80
|
+
* The author citations relevant to a rendered field, looked up by its stable
|
|
81
|
+
* {@link tryCitationPath} into the step config. Read-only; returns [] when none.
|
|
82
|
+
*
|
|
83
|
+
* Prefix-aware: returns citations attached to the field's own path **and** to any
|
|
84
|
+
* node beneath it (e.g. the reviewer renders the `display[id]` row while the
|
|
85
|
+
* author cited `display[id].value`). This decouples author-write granularity from
|
|
86
|
+
* reviewer-read granularity, so neither side hardcodes the other's shape.
|
|
87
|
+
*/
|
|
88
|
+
export declare function getFieldCitations(stepConfig: Record<string, unknown> | undefined, citations: Record<string, Citation[]> | undefined, fieldPath: string): Citation[];
|
|
89
|
+
/**
|
|
90
|
+
* Flatten a workflow config's steps (incl. nested branches/loops/cases) → id →
|
|
91
|
+
* config. Delegates traversal to the canonical {@link walkStepConfigs} — the same
|
|
92
|
+
* structural walker the metadata cache and canvas use — so a new control-flow
|
|
93
|
+
* step type is covered automatically, with no nesting keys hardcoded here.
|
|
94
|
+
*/
|
|
95
|
+
export declare function buildStepConfigMap(config: WorkflowConfig | undefined): Map<string, WorkflowStepConfig>;
|
|
96
|
+
export declare function buildOriginCtx(detail: ExecutionDetail, onJump?: (stepId: string) => void): OriginResolverCtx;
|
|
97
|
+
/** The raw config of the step currently paused awaiting approval (EXTERNAL_WAIT). */
|
|
98
|
+
export declare function findPausedStepConfig(detail: ExecutionDetail): WorkflowStepConfig | undefined;
|
|
99
|
+
//# sourceMappingURL=origin-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"origin-resolver.d.ts","sourceRoot":"","sources":["../../../../src/components/execution/origin/origin-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { collectRefs, parseRef, tryCitationPath } from '@xyne/workflow-sdk/builder';
|
|
2
|
+
import { walkStepConfigs } from '../../../utils/branch-detection.js';
|
|
3
|
+
import { isAttachment, isAttachmentArray } from '../../shared/AttachmentCard.js';
|
|
4
|
+
// ─── Funnel: which refs explain a value ───
|
|
5
|
+
/**
|
|
6
|
+
* Single funnel for "which refs explain this value". Today: extract every
|
|
7
|
+
* `{{ref}}` from the raw value via the SDK's `collectRefs`. (Future: prefer
|
|
8
|
+
* author-tagged `section.citations` here — one added branch.)
|
|
9
|
+
*/
|
|
10
|
+
export function getOriginRefs(rawValue) {
|
|
11
|
+
if (rawValue == null)
|
|
12
|
+
return [];
|
|
13
|
+
const refs = collectRefs(rawValue, '').map((r) => r.refPath);
|
|
14
|
+
return [...new Set(refs)];
|
|
15
|
+
}
|
|
16
|
+
// ─── Resolve one ref against the execution data ───
|
|
17
|
+
function walkPath(root, path) {
|
|
18
|
+
if (!path)
|
|
19
|
+
return root;
|
|
20
|
+
let cur = root;
|
|
21
|
+
for (const seg of path.split('.')) {
|
|
22
|
+
if (cur == null || typeof cur !== 'object')
|
|
23
|
+
return undefined;
|
|
24
|
+
cur = cur[seg];
|
|
25
|
+
}
|
|
26
|
+
return cur;
|
|
27
|
+
}
|
|
28
|
+
/** Attachment(s) when a resolved value is a file or file array, else undefined. */
|
|
29
|
+
function attachmentsOf(value) {
|
|
30
|
+
if (isAttachmentArray(value))
|
|
31
|
+
return value;
|
|
32
|
+
if (isAttachment(value))
|
|
33
|
+
return [value];
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
export function resolveRef(refPath, ctx) {
|
|
37
|
+
const parsed = parseRef(refPath);
|
|
38
|
+
if (parsed.source === 'trigger') {
|
|
39
|
+
const value = walkPath(ctx.triggerData, parsed.path);
|
|
40
|
+
return {
|
|
41
|
+
refPath,
|
|
42
|
+
tier: 'derived',
|
|
43
|
+
label: ctx.triggerLabel ?? 'the original request',
|
|
44
|
+
kind: 'trigger',
|
|
45
|
+
path: parsed.path,
|
|
46
|
+
value,
|
|
47
|
+
attachments: attachmentsOf(value),
|
|
48
|
+
upstreamRefs: [],
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
// source === 'step' — classified structurally, never by step type.
|
|
52
|
+
const stepId = parsed.stepId;
|
|
53
|
+
const output = stepId ? ctx.stepOutput(stepId) : undefined;
|
|
54
|
+
const value = parsed.path ? walkPath({ output }, parsed.path) : output;
|
|
55
|
+
return {
|
|
56
|
+
refPath,
|
|
57
|
+
tier: 'derived',
|
|
58
|
+
label: (stepId && ctx.stepTitle(stepId)) || stepId || 'an earlier step',
|
|
59
|
+
stepDescription: stepId ? ctx.stepDescription(stepId) : undefined,
|
|
60
|
+
group: stepId ? ctx.stepGroup(stepId) : undefined,
|
|
61
|
+
kind: 'step',
|
|
62
|
+
stepId,
|
|
63
|
+
path: parsed.path,
|
|
64
|
+
value,
|
|
65
|
+
attachments: attachmentsOf(value),
|
|
66
|
+
upstreamRefs: stepId ? getOriginRefs(ctx.stepRawConfig(stepId)) : [],
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
// ─── Author citations (overlay lookup) ───
|
|
70
|
+
/**
|
|
71
|
+
* The author citations relevant to a rendered field, looked up by its stable
|
|
72
|
+
* {@link tryCitationPath} into the step config. Read-only; returns [] when none.
|
|
73
|
+
*
|
|
74
|
+
* Prefix-aware: returns citations attached to the field's own path **and** to any
|
|
75
|
+
* node beneath it (e.g. the reviewer renders the `display[id]` row while the
|
|
76
|
+
* author cited `display[id].value`). This decouples author-write granularity from
|
|
77
|
+
* reviewer-read granularity, so neither side hardcodes the other's shape.
|
|
78
|
+
*/
|
|
79
|
+
export function getFieldCitations(stepConfig, citations, fieldPath) {
|
|
80
|
+
if (!stepConfig || !citations)
|
|
81
|
+
return [];
|
|
82
|
+
const path = tryCitationPath(stepConfig, fieldPath);
|
|
83
|
+
if (!path)
|
|
84
|
+
return [];
|
|
85
|
+
const out = [];
|
|
86
|
+
for (const [key, list] of Object.entries(citations)) {
|
|
87
|
+
// exact, descendant object key (`path.`), or descendant array element (`path[`)
|
|
88
|
+
if (key === path || key.startsWith(`${path}.`) || key.startsWith(`${path}[`)) {
|
|
89
|
+
out.push(...list);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return out;
|
|
93
|
+
}
|
|
94
|
+
// ─── Build a resolver ctx from an ExecutionDetail (refs + outputs in hand) ───
|
|
95
|
+
/**
|
|
96
|
+
* Flatten a workflow config's steps (incl. nested branches/loops/cases) → id →
|
|
97
|
+
* config. Delegates traversal to the canonical {@link walkStepConfigs} — the same
|
|
98
|
+
* structural walker the metadata cache and canvas use — so a new control-flow
|
|
99
|
+
* step type is covered automatically, with no nesting keys hardcoded here.
|
|
100
|
+
*/
|
|
101
|
+
export function buildStepConfigMap(config) {
|
|
102
|
+
const map = new Map();
|
|
103
|
+
if (config?.steps)
|
|
104
|
+
walkStepConfigs(config.steps, (s) => map.set(s.id, s));
|
|
105
|
+
return map;
|
|
106
|
+
}
|
|
107
|
+
/** Map a step record's `stepName` (step_N or a config id) to its config id. */
|
|
108
|
+
function resolveStepId(stepName, config, configMap) {
|
|
109
|
+
if (configMap.has(stepName))
|
|
110
|
+
return stepName;
|
|
111
|
+
const m = /^step_(\d+)$/.exec(stepName);
|
|
112
|
+
if (m && config?.steps) {
|
|
113
|
+
const idx = Number(m[1]);
|
|
114
|
+
const id = config.steps[idx]?.id;
|
|
115
|
+
if (id)
|
|
116
|
+
return id;
|
|
117
|
+
}
|
|
118
|
+
return stepName;
|
|
119
|
+
}
|
|
120
|
+
export function buildOriginCtx(detail, onJump) {
|
|
121
|
+
const config = detail.config;
|
|
122
|
+
const configMap = buildStepConfigMap(config);
|
|
123
|
+
// groupId → group (workflow documentation groups)
|
|
124
|
+
const groupsById = new Map();
|
|
125
|
+
for (const g of (config?.groups ?? [])) {
|
|
126
|
+
groupsById.set(g.id, { title: g.title, description: g.description });
|
|
127
|
+
}
|
|
128
|
+
const groupFor = (id) => {
|
|
129
|
+
const gid = configMap.get(id)?.groupId;
|
|
130
|
+
return gid ? groupsById.get(gid) : undefined;
|
|
131
|
+
};
|
|
132
|
+
// stepId → output, parsed from each step record's data JSON.
|
|
133
|
+
const outputs = new Map();
|
|
134
|
+
for (const step of detail.steps) {
|
|
135
|
+
if (!step.data)
|
|
136
|
+
continue;
|
|
137
|
+
let parsed;
|
|
138
|
+
try {
|
|
139
|
+
parsed = JSON.parse(step.data);
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
const id = resolveStepId(step.stepName, config, configMap);
|
|
145
|
+
if ('output' in parsed)
|
|
146
|
+
outputs.set(id, parsed['output']);
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
stepTitle: (id) => configMap.get(id)?.title,
|
|
150
|
+
stepDescription: (id) => configMap.get(id)?.description,
|
|
151
|
+
stepGroup: groupFor,
|
|
152
|
+
stepOutput: (id) => outputs.get(id),
|
|
153
|
+
stepRawConfig: (id) => configMap.get(id)?.config,
|
|
154
|
+
triggerData: detail.triggerData,
|
|
155
|
+
triggerLabel: triggerLabelFor(config?.trigger?.type),
|
|
156
|
+
onJump,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* A human label for where the trigger data came from, varied by trigger type
|
|
161
|
+
* (a scheduled run isn't "the original request"). Falls back gracefully.
|
|
162
|
+
*/
|
|
163
|
+
function triggerLabelFor(type) {
|
|
164
|
+
switch (type) {
|
|
165
|
+
case 'MANUAL':
|
|
166
|
+
return 'the original request';
|
|
167
|
+
case 'CRON':
|
|
168
|
+
return 'the scheduled run';
|
|
169
|
+
case 'WEBHOOK':
|
|
170
|
+
case 'EVENT':
|
|
171
|
+
return 'the incoming request';
|
|
172
|
+
default:
|
|
173
|
+
return 'the trigger';
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/** The raw config of the step currently paused awaiting approval (EXTERNAL_WAIT). */
|
|
177
|
+
export function findPausedStepConfig(detail) {
|
|
178
|
+
const waitStep = detail.steps.find((s) => s.status === 'EXTERNAL_WAIT');
|
|
179
|
+
if (!waitStep)
|
|
180
|
+
return undefined;
|
|
181
|
+
const configMap = buildStepConfigMap(detail.config);
|
|
182
|
+
const id = resolveStepId(waitStep.stepName, detail.config, configMap);
|
|
183
|
+
return configMap.get(id);
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=origin-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"origin-resolver.js","sourceRoot":"","sources":["../../../../src/components/execution/origin/origin-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,4 +15,18 @@ export declare function AttachmentCard({ attachment }: {
|
|
|
15
15
|
export declare function AttachmentList({ attachments }: {
|
|
16
16
|
attachments: Attachment[];
|
|
17
17
|
}): import("react").JSX.Element;
|
|
18
|
+
/**
|
|
19
|
+
* Render a reviewer-facing display value:
|
|
20
|
+
* - attachment(s) → download/preview cards;
|
|
21
|
+
* - a **string** → Markdown (GFM), so authors can format reviewer-facing data
|
|
22
|
+
* (bold, lists, tables, links). A plain string just renders as a paragraph;
|
|
23
|
+
* - anything else (objects/arrays/numbers) → text fallback.
|
|
24
|
+
*
|
|
25
|
+
* `className` styles the surrounding box. Generic — detected from the value
|
|
26
|
+
* shape, used by the WAIT pause panels and anywhere data is shown to a reviewer.
|
|
27
|
+
*/
|
|
28
|
+
export declare function DisplayValue({ value, className }: {
|
|
29
|
+
value: unknown;
|
|
30
|
+
className?: string;
|
|
31
|
+
}): import("react").JSX.Element;
|
|
18
32
|
//# sourceMappingURL=AttachmentCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentCard.d.ts","sourceRoot":"","sources":["../../../src/components/shared/AttachmentCard.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,UAAU,CASxD;AAED,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,UAAU,EAAE,CAE/D;AASD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,+BAsDxE;AAED,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,EAAE,WAAW,EAAE,EAAE;IAAE,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,+BAQ5E"}
|
|
1
|
+
{"version":3,"file":"AttachmentCard.d.ts","sourceRoot":"","sources":["../../../src/components/shared/AttachmentCard.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAIrD,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,UAAU,CASxD;AAED,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,UAAU,EAAE,CAE/D;AASD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,UAAU,CAAA;CAAE,+BAsDxE;AAED,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,EAAE,WAAW,EAAE,EAAE;IAAE,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,+BAQ5E;AAaD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAOxF"}
|
|
@@ -53,4 +53,42 @@ export function AttachmentCard({ attachment }) {
|
|
|
53
53
|
export function AttachmentList({ attachments }) {
|
|
54
54
|
return (_jsx("div", { className: "space-y-2", children: attachments.map((att, i) => (_jsx(AttachmentCard, { attachment: att }, `${att.data}-${i}`))) }));
|
|
55
55
|
}
|
|
56
|
+
/** Text rendering for a non-attachment display value. */
|
|
57
|
+
function formatScalar(value) {
|
|
58
|
+
if (value == null)
|
|
59
|
+
return '—';
|
|
60
|
+
if (typeof value === 'string')
|
|
61
|
+
return value;
|
|
62
|
+
if (Array.isArray(value))
|
|
63
|
+
return value.map(String).join(', ');
|
|
64
|
+
if (typeof value === 'object') {
|
|
65
|
+
try {
|
|
66
|
+
return JSON.stringify(value, null, 2);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return String(value);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return String(value);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Render a reviewer-facing display value:
|
|
76
|
+
* - attachment(s) → download/preview cards;
|
|
77
|
+
* - a **string** → Markdown (GFM), so authors can format reviewer-facing data
|
|
78
|
+
* (bold, lists, tables, links). A plain string just renders as a paragraph;
|
|
79
|
+
* - anything else (objects/arrays/numbers) → text fallback.
|
|
80
|
+
*
|
|
81
|
+
* `className` styles the surrounding box. Generic — detected from the value
|
|
82
|
+
* shape, used by the WAIT pause panels and anywhere data is shown to a reviewer.
|
|
83
|
+
*/
|
|
84
|
+
export function DisplayValue({ value, className }) {
|
|
85
|
+
if (isAttachment(value))
|
|
86
|
+
return _jsx(AttachmentCard, { attachment: value });
|
|
87
|
+
if (isAttachmentArray(value))
|
|
88
|
+
return _jsx(AttachmentList, { attachments: value });
|
|
89
|
+
if (typeof value === 'string') {
|
|
90
|
+
return _jsx("div", { className: className, children: _jsx(MarkdownView, { children: value }) });
|
|
91
|
+
}
|
|
92
|
+
return _jsx("div", { className: className, children: formatScalar(value) });
|
|
93
|
+
}
|
|
56
94
|
//# sourceMappingURL=AttachmentCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentCard.js","sourceRoot":"","sources":["../../../src/components/shared/AttachmentCard.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,8EAA8E;AAC9E,MAAM,UAAU,YAAY,CAAC,CAAU;IACrC,OAAO,CACL,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,QAAQ;QACrB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACjB,OAAQ,CAAgB,CAAC,IAAI,KAAK,QAAQ;QAC1C,OAAQ,CAAgB,CAAC,IAAI,KAAK,QAAQ;QAC1C,OAAQ,CAAgB,CAAC,QAAQ,KAAK,QAAQ,CAC/C,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,iBAAiB,CAAC,CAAU;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,WAAW,CAAC,CAAU;IAC7B,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAC/B,IAAI,CAAC,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC;IAC9B,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;QAAE,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC1D,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,UAAU,EAA8B;IACvE,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,KAAK,eAAe,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9F,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAE5D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO;QACjD,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,KAAK,CAAC,GAAG,CAAC;aACZ,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACrB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS;YAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/C,KAAK,CAAC,GAAG,EAAE,GAAgC,CAAC,CAAC,CAAC;QACjD,OAAO,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvC,OAAO,CACL,eAAK,SAAS,EAAC,oDAAoD,aACjE,eAAK,SAAS,EAAC,kEAAkE,aAC/E,eAAK,SAAS,EAAC,iCAAiC,aAC9C,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,SAAS,EAAC,yBAAyB,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,aAClL,eAAM,CAAC,EAAC,4DAA4D,GAAG,EAAA,mBAAU,MAAM,EAAC,gBAAgB,GAAG,IACvG,EACN,eAAM,SAAS,EAAC,iDAAiD,YAAE,UAAU,CAAC,IAAI,GAAQ,EACzF,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,CAChC,eAAM,SAAS,EAAC,qCAAqC,YAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,GAAQ,CAC5F,IACG,EACN,aACE,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,UAAU,CAAC,IAAI,EACzB,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,sIAAsI,aAEhJ,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,aAC9I,eAAM,CAAC,EAAC,2CAA2C,GAAG,EAAA,mBAAU,MAAM,EAAC,kBAAkB,GAAG,EAAA,eAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,GAAG,IAC/H,gBAEJ,IACA,EACL,OAAO,IAAI,CACV,cAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS,EAAC,4CAA4C,GAAG,CAC/F,EACA,UAAU,IAAI,OAAO,KAAK,IAAI,IAAI,CACjC,cAAK,SAAS,EAAC,oCAAoC,YAAC,KAAC,YAAY,cAAE,OAAO,GAAgB,GAAM,CACjG,EACA,CAAC,UAAU,IAAI,MAAM,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,IAAI,IAAI,CACxD,cAAK,SAAS,EAAC,6FAA6F,YAAE,OAAO,GAAO,CAC7H,IACG,CACP,CAAC;AACJ,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,cAAc,CAAC,EAAE,WAAW,EAAiC;IAC3E,OAAO,CACL,cAAK,SAAS,EAAC,WAAW,YACvB,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAC3B,KAAC,cAAc,IAA0B,UAAU,EAAE,GAAG,IAAnC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,EAAE,CAAqB,CAC7D,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"AttachmentCard.js","sourceRoot":"","sources":["../../../src/components/shared/AttachmentCard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { AiBuilderMessage } from '@xyne/workflow-sdk/ai-builder';
|
|
2
|
+
export interface SharedChatPanelProps {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
messages: AiBuilderMessage[];
|
|
5
|
+
isLoading: boolean;
|
|
6
|
+
error: string | null;
|
|
7
|
+
draft: string;
|
|
8
|
+
onDraftChange: (value: string) => void;
|
|
9
|
+
onSend: () => Promise<void>;
|
|
10
|
+
onReset: () => void;
|
|
11
|
+
onClose: () => void;
|
|
12
|
+
suggestions: string[];
|
|
13
|
+
emptyStateDescription: string;
|
|
14
|
+
placeholder?: string;
|
|
15
|
+
canSend: boolean;
|
|
16
|
+
bannerSlot?: React.ReactNode;
|
|
17
|
+
inputPrefixSlot?: React.ReactNode;
|
|
18
|
+
containerStyle?: React.CSSProperties;
|
|
19
|
+
containerClassName?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function SharedChatPanel({ isOpen, messages, isLoading, error, draft, onDraftChange, onSend, onReset, onClose, suggestions, emptyStateDescription, placeholder, canSend, bannerSlot, inputPrefixSlot, containerStyle, containerClassName, }: SharedChatPanelProps): import("react").JSX.Element;
|
|
22
|
+
//# sourceMappingURL=ChatPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../../src/components/shared/ChatPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAqCtE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,QAAQ,EACR,SAAS,EACT,KAAK,EACL,KAAK,EACL,aAAa,EACb,MAAM,EACN,OAAO,EACP,OAAO,EACP,WAAW,EACX,qBAAqB,EACrB,WAA6B,EAC7B,OAAO,EACP,UAAU,EACV,eAAe,EACf,cAAc,EACd,kBAAkB,GACnB,EAAE,oBAAoB,+BA2MtB"}
|