@agentforge4j/workflow-builder-react 0.2.1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/styles/tokens.css","../src/api/workflow-builder.css"],"sourcesContent":["/* SPDX-License-Identifier: Apache-2.0 */\n\n:root,\n.workflow-builder {\n --builder-color-bg: var(--color-surface, var(--surface-bg));\n --builder-color-fg: var(--color-text, var(--text-primary));\n --builder-color-border: var(--color-border, var(--border-default));\n --builder-color-muted: var(--color-text-muted, var(--text-secondary));\n --builder-color-accent: var(--color-accent, var(--accent-primary));\n --builder-color-accent-fg: var(--color-accent-fg, var(--text-on-accent));\n --builder-color-danger: var(--color-danger, var(--status-error));\n --builder-color-success: var(--color-success, var(--status-success));\n --builder-color-warning: var(--color-warning, var(--status-warning));\n --builder-color-card: var(--color-card, var(--surface-raised));\n --builder-color-canvas: var(--color-canvas, var(--canvas-surface));\n --builder-color-canvas-dot: var(--canvas-dot);\n --builder-color-edge: var(--canvas-edge);\n --builder-color-edge-approval: var(--canvas-edge-approval);\n --builder-color-edge-review: var(--canvas-edge-review);\n --builder-space-xs: var(--space-xs, 0.25rem);\n --builder-space-sm: var(--space-sm, 0.5rem);\n --builder-space-md: var(--space-md, 1rem);\n --builder-space-lg: var(--space-lg, 1.5rem);\n --builder-radius: var(--radius-md, 0.375rem);\n --builder-radius-lg: var(--radius-lg, 0.75rem);\n --builder-font-size-sm: 0.875rem;\n --builder-font-size-xs: 0.75rem;\n --builder-shadow: 0 1px 2px rgb(0 0 0 / 0.06);\n --builder-shadow-lg: 0 4px 12px rgb(0 0 0 / 0.12);\n}\n","@import '../styles/tokens.css';\r\n\r\n.workflow-builder {\r\n display: flex;\r\n flex-direction: column;\r\n min-height: 24rem;\r\n height: 100%;\r\n background: var(--builder-color-bg);\r\n color: var(--builder-color-fg);\r\n border: 1px solid var(--builder-color-border);\r\n border-radius: var(--builder-radius);\r\n font-family: inherit;\r\n position: relative;\r\n overflow: hidden;\r\n}\r\n\r\n.workflow-builder__header {\r\n display: flex;\r\n flex-wrap: wrap;\r\n align-items: center;\r\n gap: var(--builder-space-sm);\r\n padding: var(--builder-space-sm) var(--builder-space-md);\r\n border-bottom: 1px solid var(--builder-color-border);\r\n background: var(--builder-color-card);\r\n z-index: 2;\r\n}\r\n\r\n.workflow-builder__name-input,\r\n.workflow-builder__id-input {\r\n border: 1px solid transparent;\r\n background: transparent;\r\n color: var(--builder-color-fg);\r\n font: inherit;\r\n border-radius: var(--builder-radius);\r\n padding: var(--builder-space-xs) var(--builder-space-sm);\r\n}\r\n\r\n.workflow-builder__name-input {\r\n flex: 1;\r\n min-width: 8rem;\r\n max-width: 16rem;\r\n font-weight: 600;\r\n font-size: 1rem;\r\n}\r\n\r\n.workflow-builder__id-input {\r\n max-width: 10rem;\r\n font-size: var(--builder-font-size-xs);\r\n}\r\n\r\n.workflow-builder__name-input:focus-visible,\r\n.workflow-builder__id-input:focus-visible {\r\n outline: none;\r\n border-color: var(--builder-color-border);\r\n background: var(--builder-color-bg);\r\n}\r\n\r\n.workflow-builder__mode-toggle {\r\n display: flex;\r\n gap: var(--builder-space-xs);\r\n border: 1px solid var(--builder-color-border);\r\n border-radius: var(--builder-radius);\r\n padding: 2px;\r\n}\r\n\r\n.workflow-builder__subtitle {\r\n flex-basis: 100%;\r\n margin: 0;\r\n color: var(--builder-color-muted);\r\n font-size: var(--builder-font-size-xs);\r\n}\r\n\r\n.workflow-builder__workspace {\r\n position: relative;\r\n flex: 1;\r\n min-height: 16rem;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.workflow-builder__guided {\r\n position: absolute;\r\n top: var(--builder-space-sm);\r\n left: 3.5rem;\r\n right: var(--builder-space-md);\r\n z-index: 2;\r\n pointer-events: none;\r\n}\r\n\r\n.workflow-builder__guided > * {\r\n pointer-events: auto;\r\n}\r\n\r\n.workflow-builder__canvas {\r\n flex: 1;\r\n min-height: 16rem;\r\n position: relative;\r\n}\r\n\r\n.workflow-builder__canvas .react-flow {\r\n background: var(--builder-color-canvas);\r\n}\r\n\r\n.workflow-builder__actions {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: var(--builder-space-sm);\r\n padding: var(--builder-space-sm) var(--builder-space-md);\r\n border-top: 1px solid var(--builder-color-border);\r\n}\r\n\r\n.workflow-builder__button {\r\n padding: var(--builder-space-sm) var(--builder-space-md);\r\n border: 1px solid var(--builder-color-border);\r\n border-radius: var(--builder-radius);\r\n background: var(--builder-color-bg);\r\n color: var(--builder-color-fg);\r\n cursor: pointer;\r\n font: inherit;\r\n}\r\n\r\n.workflow-builder__button:disabled {\r\n opacity: 0.6;\r\n cursor: not-allowed;\r\n}\r\n\r\n.workflow-builder__status {\r\n padding: 0 var(--builder-space-md) var(--builder-space-md);\r\n font-size: var(--builder-font-size-sm);\r\n color: var(--builder-color-muted);\r\n}\r\n\r\n.workflow-builder__status--error {\r\n color: var(--builder-color-danger);\r\n}\r\n\r\n.workflow-builder__banner {\r\n padding: var(--builder-space-sm) var(--builder-space-md);\r\n border-bottom: 1px solid var(--builder-color-border);\r\n font-size: var(--builder-font-size-sm);\r\n}\r\n\r\n.workflow-builder__banner--warning {\r\n background: color-mix(in srgb, var(--builder-color-warning) 12%, transparent);\r\n border-color: color-mix(in srgb, var(--builder-color-warning) 35%, transparent);\r\n}\r\n\r\n.workflow-builder__banner-title {\r\n margin: 0;\r\n font-weight: 600;\r\n}\r\n\r\n.workflow-builder__banner-list {\r\n margin: var(--builder-space-xs) 0 0;\r\n padding-left: 1.25rem;\r\n font-size: var(--builder-font-size-xs);\r\n color: var(--builder-color-muted);\r\n}\r\n\r\n/* Shared controls */\r\n.wf-button {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: var(--builder-space-xs);\r\n padding: var(--builder-space-xs) var(--builder-space-sm);\r\n border: 1px solid var(--builder-color-border);\r\n border-radius: var(--builder-radius);\r\n background: var(--builder-color-bg);\r\n color: var(--builder-color-fg);\r\n font: inherit;\r\n font-size: var(--builder-font-size-sm);\r\n cursor: pointer;\r\n line-height: 1.25;\r\n}\r\n\r\n.wf-button:disabled {\r\n opacity: 0.55;\r\n cursor: not-allowed;\r\n}\r\n\r\n.wf-button--primary {\r\n background: var(--builder-color-accent);\r\n border-color: var(--builder-color-accent);\r\n color: var(--builder-color-accent-fg, var(--builder-color-bg));\r\n}\r\n\r\n.wf-button--secondary {\r\n background: var(--builder-color-card);\r\n}\r\n\r\n.wf-button--ghost {\r\n background: transparent;\r\n border-color: transparent;\r\n}\r\n\r\n.wf-button--icon {\r\n min-width: 2rem;\r\n min-height: 2rem;\r\n padding: 0;\r\n}\r\n\r\n.wf-panel {\r\n background: var(--builder-color-card);\r\n border: 1px solid var(--builder-color-border);\r\n border-radius: var(--builder-radius-lg);\r\n box-shadow: var(--builder-shadow-lg);\r\n}\r\n\r\n.wf-panel__header {\r\n padding: var(--builder-space-md);\r\n border-bottom: 1px solid var(--builder-color-border);\r\n position: relative;\r\n}\r\n\r\n.wf-panel__title {\r\n margin: 0;\r\n font-size: var(--builder-font-size-sm);\r\n font-weight: 600;\r\n}\r\n\r\n.wf-panel__description {\r\n margin: var(--builder-space-xs) 0 0;\r\n font-size: var(--builder-font-size-xs);\r\n color: var(--builder-color-muted);\r\n}\r\n\r\n.wf-panel__close {\r\n position: absolute;\r\n top: var(--builder-space-sm);\r\n right: var(--builder-space-sm);\r\n}\r\n\r\n.wf-panel__body {\r\n padding: var(--builder-space-md);\r\n overflow: auto;\r\n}\r\n\r\n/* Canvas nodes */\r\n.wf-flow-node {\r\n position: relative;\r\n}\r\n\r\n.wf-handle {\r\n width: 0.625rem !important;\r\n height: 0.625rem !important;\r\n border: 2px solid var(--builder-color-card) !important;\r\n background: var(--builder-color-accent) !important;\r\n}\r\n\r\n.wf-handle--selected {\r\n background: var(--builder-color-accent) !important;\r\n}\r\n\r\n.wf-node {\r\n min-width: 13.75rem;\r\n max-width: 17.5rem;\r\n border: 1px solid var(--builder-color-border);\r\n border-radius: var(--builder-radius-lg);\r\n background: var(--builder-color-card);\r\n box-shadow: var(--builder-shadow);\r\n}\r\n\r\n.wf-node--selected {\r\n border-color: var(--builder-color-accent);\r\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--builder-color-accent) 25%, transparent);\r\n}\r\n\r\n.wf-node--loop {\r\n min-width: 18.75rem;\r\n max-width: none;\r\n border-style: dashed;\r\n border-color: color-mix(in srgb, var(--builder-color-accent) 35%, transparent);\r\n background: color-mix(in srgb, var(--builder-color-canvas) 80%, var(--builder-color-card));\r\n}\r\n\r\n.wf-node__header {\r\n display: flex;\r\n gap: var(--builder-space-sm);\r\n align-items: center;\r\n padding: var(--builder-space-sm) var(--builder-space-md);\r\n border-bottom: 1px solid var(--builder-color-border);\r\n}\r\n\r\n.wf-node__icon {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 2rem;\r\n height: 2rem;\r\n border-radius: var(--builder-radius);\r\n background: color-mix(in srgb, var(--builder-color-muted) 15%, transparent);\r\n font-size: var(--builder-font-size-xs);\r\n font-weight: 700;\r\n}\r\n\r\n.wf-node__titles {\r\n min-width: 0;\r\n flex: 1;\r\n}\r\n\r\n.wf-node__kind {\r\n margin: 0;\r\n font-size: 0.625rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.04em;\r\n color: var(--builder-color-muted);\r\n}\r\n\r\n.wf-node__title {\r\n margin: 0;\r\n font-size: var(--builder-font-size-sm);\r\n font-weight: 600;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n\r\n.wf-node__body {\r\n padding: var(--builder-space-sm) var(--builder-space-md);\r\n}\r\n\r\n.wf-node__subtitle {\r\n margin: 0 0 var(--builder-space-xs);\r\n font-size: var(--builder-font-size-xs);\r\n color: var(--builder-color-muted);\r\n display: -webkit-box;\r\n -webkit-line-clamp: 2;\r\n -webkit-box-orient: vertical;\r\n overflow: hidden;\r\n}\r\n\r\n.wf-node-badge {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.25rem;\r\n padding: 0.125rem 0.5rem;\r\n border-radius: 999px;\r\n font-size: 0.625rem;\r\n font-weight: 600;\r\n}\r\n\r\n.wf-node-badge--success {\r\n background: color-mix(in srgb, var(--builder-color-success) 12%, transparent);\r\n color: var(--builder-color-success);\r\n}\r\n\r\n.wf-node-badge--warning {\r\n background: color-mix(in srgb, var(--builder-color-warning) 15%, transparent);\r\n color: var(--builder-color-warning);\r\n}\r\n\r\n.wf-node-badge--error {\r\n background: color-mix(in srgb, var(--builder-color-danger) 12%, transparent);\r\n color: var(--builder-color-danger);\r\n}\r\n\r\n.wf-node__branches {\r\n border-top: 1px solid var(--builder-color-border);\r\n padding: var(--builder-space-xs) var(--builder-space-md) var(--builder-space-sm);\r\n}\r\n\r\n.wf-node__branch {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n min-height: 1.75rem;\r\n font-size: var(--builder-font-size-xs);\r\n}\r\n\r\n.wf-node__branch-label {\r\n padding-right: var(--builder-space-sm);\r\n color: var(--builder-color-muted);\r\n}\r\n\r\n.wf-edge-label {\r\n position: absolute;\r\n pointer-events: none;\r\n padding: 0.125rem 0.5rem;\r\n border-radius: 999px;\r\n border: 1px solid var(--builder-color-border);\r\n background: var(--builder-color-card);\r\n font-size: 0.625rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.04em;\r\n}\r\n\r\n/* Palette */\r\n.wf-palette {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n z-index: 3;\r\n display: flex;\r\n flex-direction: column;\r\n height: 100%;\r\n border-right: 1px solid var(--builder-color-border);\r\n background: color-mix(in srgb, var(--builder-color-card) 95%, transparent);\r\n box-shadow: var(--builder-shadow-lg);\r\n transition: width 0.2s ease;\r\n}\r\n\r\n.wf-palette--expanded {\r\n width: 15rem;\r\n}\r\n\r\n.wf-palette--collapsed {\r\n width: 3.5rem;\r\n}\r\n\r\n.wf-palette__header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: var(--builder-space-sm) var(--builder-space-md);\r\n border-bottom: 1px solid var(--builder-color-border);\r\n}\r\n\r\n.wf-palette__title {\r\n font-size: var(--builder-font-size-sm);\r\n font-weight: 600;\r\n}\r\n\r\n.wf-palette__body {\r\n flex: 1;\r\n overflow: auto;\r\n padding: var(--builder-space-sm);\r\n}\r\n\r\n.wf-palette__section-label {\r\n margin: 0 0 var(--builder-space-xs);\r\n padding: 0 var(--builder-space-xs);\r\n font-size: var(--builder-font-size-xs);\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.04em;\r\n color: var(--builder-color-muted);\r\n}\r\n\r\n.wf-palette__list {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 2px;\r\n}\r\n\r\n.wf-palette__item {\r\n display: flex;\r\n align-items: flex-start;\r\n gap: var(--builder-space-sm);\r\n width: 100%;\r\n padding: var(--builder-space-sm);\r\n border: 1px solid transparent;\r\n border-radius: var(--builder-radius);\r\n background: transparent;\r\n color: inherit;\r\n text-align: left;\r\n cursor: grab;\r\n font: inherit;\r\n}\r\n\r\n.wf-palette__item:hover {\r\n border-color: var(--builder-color-border);\r\n background: color-mix(in srgb, var(--builder-color-muted) 8%, transparent);\r\n}\r\n\r\n.wf-palette__item--compact {\r\n justify-content: center;\r\n padding: var(--builder-space-sm) 0;\r\n}\r\n\r\n.wf-palette__item-icon {\r\n flex-shrink: 0;\r\n width: 1.25rem;\r\n text-align: center;\r\n font-size: var(--builder-font-size-xs);\r\n font-weight: 700;\r\n color: var(--builder-color-muted);\r\n}\r\n\r\n.wf-palette__item-text {\r\n display: flex;\r\n flex-direction: column;\r\n min-width: 0;\r\n}\r\n\r\n.wf-palette__item-label {\r\n font-size: var(--builder-font-size-sm);\r\n font-weight: 600;\r\n}\r\n\r\n.wf-palette__item-description {\r\n margin-top: 2px;\r\n font-size: var(--builder-font-size-xs);\r\n color: var(--builder-color-muted);\r\n}\r\n\r\n.wf-palette__advanced-toggle {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--builder-space-xs);\r\n width: 100%;\r\n margin-top: var(--builder-space-md);\r\n padding: 0 var(--builder-space-xs);\r\n border: none;\r\n background: transparent;\r\n color: inherit;\r\n font: inherit;\r\n font-size: var(--builder-font-size-xs);\r\n font-weight: 600;\r\n cursor: pointer;\r\n}\r\n\r\n.wf-palette__panel--hidden {\r\n display: none;\r\n}\r\n\r\n.wf-palette__collapsed-list {\r\n flex: 1;\r\n overflow: auto;\r\n padding: var(--builder-space-xs) 0;\r\n}\r\n\r\n.wf-palette__collapsed-header {\r\n display: flex;\r\n justify-content: center;\r\n padding: var(--builder-space-sm) 0;\r\n border-bottom: 1px solid var(--builder-color-border);\r\n}\r\n\r\n/* Inspector */\r\n.wf-inspector {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n z-index: 3;\r\n width: min(100%, 22rem);\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n border-left: 1px solid var(--builder-color-border);\r\n background: var(--builder-color-card);\r\n box-shadow: var(--builder-shadow-lg);\r\n}\r\n\r\n.wf-inspector__header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: var(--builder-space-sm) var(--builder-space-md);\r\n border-bottom: 1px solid var(--builder-color-border);\r\n}\r\n\r\n.wf-inspector__title {\r\n margin: 0;\r\n font-size: var(--builder-font-size-sm);\r\n font-weight: 600;\r\n}\r\n\r\n.wf-inspector__body {\r\n flex: 1;\r\n overflow: auto;\r\n padding: var(--builder-space-md);\r\n}\r\n\r\n.wf-field {\r\n display: block;\r\n margin-bottom: var(--builder-space-md);\r\n}\r\n\r\n.wf-field__label {\r\n display: block;\r\n margin-bottom: var(--builder-space-xs);\r\n font-size: var(--builder-font-size-xs);\r\n font-weight: 600;\r\n color: var(--builder-color-muted);\r\n}\r\n\r\n.wf-input,\r\n.wf-select,\r\n.wf-textarea {\r\n width: 100%;\r\n padding: var(--builder-space-xs) var(--builder-space-sm);\r\n border: 1px solid var(--builder-color-border);\r\n border-radius: var(--builder-radius);\r\n background: var(--builder-color-bg);\r\n color: var(--builder-color-fg);\r\n font: inherit;\r\n font-size: var(--builder-font-size-sm);\r\n}\r\n\r\n.wf-textarea {\r\n min-height: 5rem;\r\n resize: vertical;\r\n}\r\n\r\n.wf-section {\r\n margin-bottom: var(--builder-space-md);\r\n}\r\n\r\n.wf-section__title {\r\n margin: 0 0 var(--builder-space-sm);\r\n font-size: var(--builder-font-size-xs);\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.04em;\r\n color: var(--builder-color-muted);\r\n}\r\n\r\n.wf-notice {\r\n padding: var(--builder-space-sm);\r\n border: 1px solid color-mix(in srgb, var(--builder-color-warning) 40%, transparent);\r\n border-radius: var(--builder-radius);\r\n background: color-mix(in srgb, var(--builder-color-warning) 10%, transparent);\r\n font-size: var(--builder-font-size-xs);\r\n}\r\n\r\n/* Empty state */\r\n.wf-empty-state {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n gap: var(--builder-space-sm);\r\n padding: var(--builder-space-lg);\r\n text-align: center;\r\n max-width: 24rem;\r\n background: var(--builder-color-card);\r\n border: 1px solid var(--builder-color-border);\r\n border-radius: var(--builder-radius-lg);\r\n box-shadow: var(--builder-shadow-lg);\r\n}\r\n\r\n.wf-empty-state__title {\r\n margin: 0;\r\n font-size: var(--builder-font-size-sm);\r\n font-weight: 600;\r\n}\r\n\r\n.wf-empty-state__description {\r\n margin: 0;\r\n font-size: var(--builder-font-size-xs);\r\n color: var(--builder-color-muted);\r\n}\r\n\r\n.wf-empty-state__actions {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: var(--builder-space-sm);\r\n justify-content: center;\r\n}\r\n\r\n/* Guided stepper */\r\n.wf-guided-stepper__list {\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--builder-space-sm);\r\n margin: 0;\r\n padding: var(--builder-space-sm);\r\n list-style: none;\r\n}\r\n\r\n@media (min-width: 64rem) {\r\n .wf-guided-stepper__list {\r\n flex-direction: row;\r\n align-items: center;\r\n }\r\n}\r\n\r\n.wf-guided-stepper__item {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--builder-space-sm);\r\n flex: 1;\r\n min-width: 0;\r\n}\r\n\r\n.wf-guided-stepper__marker {\r\n flex-shrink: 0;\r\n width: 1rem;\r\n height: 1rem;\r\n border-radius: 999px;\r\n border: 2px solid var(--builder-color-muted);\r\n}\r\n\r\n.wf-guided-stepper__marker--done {\r\n border-color: var(--builder-color-success);\r\n background: var(--builder-color-success);\r\n}\r\n\r\n.wf-guided-stepper__marker--active {\r\n border-color: var(--builder-color-accent);\r\n}\r\n\r\n.wf-guided-stepper__text {\r\n font-size: var(--builder-font-size-sm);\r\n color: var(--builder-color-muted);\r\n}\r\n\r\n.wf-guided-stepper__text--done {\r\n color: var(--builder-color-fg);\r\n}\r\n\r\n/* Validation */\r\n.wf-validation-pill__glyph {\r\n font-weight: 700;\r\n}\r\n\r\n.wf-validation-pill__label-mobile {\r\n display: inline;\r\n}\r\n\r\n.wf-validation-pill__label-desktop {\r\n display: none;\r\n}\r\n\r\n@media (min-width: 40rem) {\r\n .wf-validation-pill__label-mobile {\r\n display: none;\r\n }\r\n\r\n .wf-validation-pill__label-desktop {\r\n display: inline;\r\n }\r\n}\r\n\r\n.wf-validation-pill__overlay {\r\n position: fixed;\r\n inset: 0;\r\n z-index: 50;\r\n background: color-mix(in srgb, var(--builder-color-fg) 25%, transparent);\r\n display: flex;\r\n justify-content: flex-end;\r\n}\r\n\r\n.wf-validation-pill__drawer {\r\n width: min(100%, 24rem);\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n border-radius: 0;\r\n}\r\n\r\n.wf-validation-group {\r\n margin-bottom: var(--builder-space-md);\r\n}\r\n\r\n.wf-validation-group__title {\r\n margin: 0 0 var(--builder-space-sm);\r\n font-size: var(--builder-font-size-xs);\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n color: var(--builder-color-muted);\r\n}\r\n\r\n.wf-validation-issue {\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--builder-space-sm);\r\n padding: var(--builder-space-sm);\r\n border: 1px solid var(--builder-color-border);\r\n border-radius: var(--builder-radius);\r\n margin-bottom: var(--builder-space-sm);\r\n font-size: var(--builder-font-size-sm);\r\n}\r\n\r\n.wf-validation-issue__fix {\r\n align-self: flex-start;\r\n padding: 0;\r\n border: none;\r\n background: none;\r\n color: var(--builder-color-accent);\r\n font: inherit;\r\n font-size: var(--builder-font-size-xs);\r\n font-weight: 600;\r\n cursor: pointer;\r\n}\r\n\r\n.wf-validation-issue__fix:disabled {\r\n color: var(--builder-color-muted);\r\n cursor: not-allowed;\r\n}\r\n"],"mappings":"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","names":[]}
@@ -0,0 +1,191 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { Dispatch } from 'react';
3
+
4
+ type BehaviourType = 'INPUT' | 'AGENT' | 'SPAR' | 'BRANCH' | 'WORKFLOW_BEHAVIOUR' | 'RESOURCE' | 'FAIL' | 'RETRY_PREVIOUS';
5
+ type StepTransition = 'AUTO' | 'HUMAN_REVIEW' | 'HUMAN_APPROVAL';
6
+ type RetryMode = 'SINGLE_STEP' | 'FROM_STEP';
7
+ type ArtifactItemType = 'TEXT' | 'TEXT_AREA' | 'SINGLE_CHOICE' | 'MULTI_CHOICE' | 'BOOLEAN' | 'NUMBER' | 'DATE';
8
+ type ContextMapping = {
9
+ inputKeys: string[];
10
+ outputKeys: string[];
11
+ };
12
+ type InputConfig = {
13
+ artifactId: string;
14
+ transition: StepTransition;
15
+ };
16
+ type AgentConfig = {
17
+ agentRef: string;
18
+ transition: StepTransition;
19
+ maxRetries?: number;
20
+ };
21
+ type SparConfig = {
22
+ agentRef: string;
23
+ challengerAgentId: string;
24
+ maxRounds: number;
25
+ resolutionPrompt: string;
26
+ transition: StepTransition;
27
+ };
28
+ type BranchConfig = {
29
+ contextKey: string;
30
+ branches: Record<string, string>;
31
+ defaultBranch: string;
32
+ };
33
+ type WorkflowBehaviourConfig = {
34
+ workflowRef: string;
35
+ transition: StepTransition;
36
+ };
37
+ type ResourceConfig = {
38
+ resourcePath: string;
39
+ contextKey: string;
40
+ transition: StepTransition;
41
+ };
42
+ type FailConfig = {
43
+ reason: string;
44
+ };
45
+ type RetryPreviousConfig = {
46
+ retryStepId: string;
47
+ retryMode: RetryMode;
48
+ maxAttempts: number;
49
+ fallback: string;
50
+ };
51
+ type StepConfig = InputConfig | AgentConfig | SparConfig | BranchConfig | WorkflowBehaviourConfig | ResourceConfig | FailConfig | RetryPreviousConfig;
52
+ type EditableArtifactItem = {
53
+ id: string;
54
+ type: ArtifactItemType;
55
+ label: string;
56
+ required: boolean;
57
+ options?: string[];
58
+ };
59
+ type EditableArtifact = {
60
+ id: string;
61
+ items: EditableArtifactItem[];
62
+ };
63
+ type EditableStep = {
64
+ stepId: string;
65
+ name: string;
66
+ behaviourType: BehaviourType;
67
+ config: StepConfig;
68
+ stepPrompt?: string;
69
+ contextMapping?: ContextMapping;
70
+ };
71
+ type BlueprintJsonObject = Record<string, unknown>;
72
+ type TopLevelScheduleEntry = {
73
+ kind: 'STEP';
74
+ stepIndex: number;
75
+ } | {
76
+ kind: 'BLUEPRINT_REF';
77
+ blueprintId: string;
78
+ };
79
+ /** Canonical workflow document shape used by the builder draft and host adapters. */
80
+ interface WorkflowDefinition {
81
+ id: string;
82
+ name: string;
83
+ description: string;
84
+ steps: EditableStep[];
85
+ artifacts: Record<string, EditableArtifact>;
86
+ blueprintBodies?: Record<string, BlueprintJsonObject>;
87
+ topLevelSchedule?: TopLevelScheduleEntry[];
88
+ }
89
+ type ExportFormat = 'json';
90
+ interface ValidationIssue {
91
+ path: string;
92
+ message: string;
93
+ severity: 'error' | 'warning';
94
+ }
95
+ interface ValidationResult {
96
+ valid: boolean;
97
+ issues: ValidationIssue[];
98
+ }
99
+ interface AgentRef {
100
+ id: string;
101
+ name: string;
102
+ }
103
+ interface BuilderCapabilities {
104
+ import: boolean;
105
+ export: boolean;
106
+ save: boolean;
107
+ run: boolean;
108
+ publish: boolean;
109
+ aiAssist: boolean;
110
+ }
111
+ interface BuilderTheme {
112
+ /** Optional root class; layout uses semantic CSS variables only. */
113
+ className?: string;
114
+ /** Optional CSS custom properties applied on the builder root element. */
115
+ variables?: Record<string, string>;
116
+ }
117
+ interface BuilderAdapters {
118
+ validateWorkflow?: (draft: WorkflowDefinition) => ValidationResult | Promise<ValidationResult>;
119
+ importBundle?: () => Promise<WorkflowDefinition>;
120
+ exportBundle?: (draft: WorkflowDefinition, format: ExportFormat) => Promise<void>;
121
+ }
122
+ interface BuilderActions {
123
+ save?: (draft: WorkflowDefinition) => Promise<void>;
124
+ run?: (draft: WorkflowDefinition) => Promise<void>;
125
+ publish?: (draft: WorkflowDefinition) => Promise<void>;
126
+ }
127
+ interface WorkflowBuilderProps {
128
+ capabilities: BuilderCapabilities;
129
+ adapters?: BuilderAdapters;
130
+ actions?: BuilderActions;
131
+ theme?: BuilderTheme;
132
+ initialWorkflow?: WorkflowDefinition;
133
+ /** Host-supplied agent catalog for inspector pickers (text fallback when omitted). */
134
+ agentCatalog?: AgentRef[];
135
+ }
136
+
137
+ declare function WorkflowBuilder({ capabilities, adapters, actions, theme, initialWorkflow, agentCatalog, }: WorkflowBuilderProps): react_jsx_runtime.JSX.Element;
138
+
139
+ interface BuilderSelection {
140
+ nodeId: string | null;
141
+ edgeId: string | null;
142
+ }
143
+ interface ImportMeta {
144
+ source: string | null;
145
+ importedAt: string | null;
146
+ }
147
+ interface BuilderState {
148
+ draft: WorkflowDefinition;
149
+ baseline: WorkflowDefinition;
150
+ selection: BuilderSelection;
151
+ validation: ValidationResult;
152
+ importMeta: ImportMeta;
153
+ }
154
+ type BuilderAction = {
155
+ type: 'SET_DRAFT';
156
+ draft: WorkflowDefinition;
157
+ } | {
158
+ type: 'SET_BASELINE';
159
+ baseline: WorkflowDefinition;
160
+ } | {
161
+ type: 'SELECT_NODE';
162
+ nodeId: string | null;
163
+ } | {
164
+ type: 'SELECT_EDGE';
165
+ edgeId: string | null;
166
+ } | {
167
+ type: 'SET_VALIDATION';
168
+ validation: ValidationResult;
169
+ } | {
170
+ type: 'SET_IMPORT_META';
171
+ importMeta: ImportMeta;
172
+ };
173
+
174
+ declare function builderReducer(state: BuilderState, action: BuilderAction): BuilderState;
175
+
176
+ interface UseBuilderStateResult {
177
+ state: BuilderState;
178
+ dispatch: Dispatch<BuilderAction>;
179
+ dirty: boolean;
180
+ }
181
+ declare function useBuilderState(initialWorkflow?: WorkflowDefinition): UseBuilderStateResult;
182
+
183
+ declare function validateWorkflow(draft: WorkflowDefinition): ValidationResult;
184
+
185
+ declare class WorkflowParseError extends Error {
186
+ constructor(message: string);
187
+ }
188
+ declare function serializeWorkflowJson(workflow: WorkflowDefinition): string;
189
+ declare function parseWorkflowJson(text: string): WorkflowDefinition;
190
+
191
+ export { type AgentRef, type BuilderAction, type BuilderActions, type BuilderAdapters, type BuilderCapabilities, type BuilderState, type BuilderTheme, type ExportFormat, type UseBuilderStateResult, type ValidationIssue, type ValidationResult, WorkflowBuilder, type WorkflowBuilderProps, type WorkflowDefinition, WorkflowParseError, builderReducer, WorkflowBuilder as default, parseWorkflowJson, serializeWorkflowJson, useBuilderState, validateWorkflow };
@@ -0,0 +1,191 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { Dispatch } from 'react';
3
+
4
+ type BehaviourType = 'INPUT' | 'AGENT' | 'SPAR' | 'BRANCH' | 'WORKFLOW_BEHAVIOUR' | 'RESOURCE' | 'FAIL' | 'RETRY_PREVIOUS';
5
+ type StepTransition = 'AUTO' | 'HUMAN_REVIEW' | 'HUMAN_APPROVAL';
6
+ type RetryMode = 'SINGLE_STEP' | 'FROM_STEP';
7
+ type ArtifactItemType = 'TEXT' | 'TEXT_AREA' | 'SINGLE_CHOICE' | 'MULTI_CHOICE' | 'BOOLEAN' | 'NUMBER' | 'DATE';
8
+ type ContextMapping = {
9
+ inputKeys: string[];
10
+ outputKeys: string[];
11
+ };
12
+ type InputConfig = {
13
+ artifactId: string;
14
+ transition: StepTransition;
15
+ };
16
+ type AgentConfig = {
17
+ agentRef: string;
18
+ transition: StepTransition;
19
+ maxRetries?: number;
20
+ };
21
+ type SparConfig = {
22
+ agentRef: string;
23
+ challengerAgentId: string;
24
+ maxRounds: number;
25
+ resolutionPrompt: string;
26
+ transition: StepTransition;
27
+ };
28
+ type BranchConfig = {
29
+ contextKey: string;
30
+ branches: Record<string, string>;
31
+ defaultBranch: string;
32
+ };
33
+ type WorkflowBehaviourConfig = {
34
+ workflowRef: string;
35
+ transition: StepTransition;
36
+ };
37
+ type ResourceConfig = {
38
+ resourcePath: string;
39
+ contextKey: string;
40
+ transition: StepTransition;
41
+ };
42
+ type FailConfig = {
43
+ reason: string;
44
+ };
45
+ type RetryPreviousConfig = {
46
+ retryStepId: string;
47
+ retryMode: RetryMode;
48
+ maxAttempts: number;
49
+ fallback: string;
50
+ };
51
+ type StepConfig = InputConfig | AgentConfig | SparConfig | BranchConfig | WorkflowBehaviourConfig | ResourceConfig | FailConfig | RetryPreviousConfig;
52
+ type EditableArtifactItem = {
53
+ id: string;
54
+ type: ArtifactItemType;
55
+ label: string;
56
+ required: boolean;
57
+ options?: string[];
58
+ };
59
+ type EditableArtifact = {
60
+ id: string;
61
+ items: EditableArtifactItem[];
62
+ };
63
+ type EditableStep = {
64
+ stepId: string;
65
+ name: string;
66
+ behaviourType: BehaviourType;
67
+ config: StepConfig;
68
+ stepPrompt?: string;
69
+ contextMapping?: ContextMapping;
70
+ };
71
+ type BlueprintJsonObject = Record<string, unknown>;
72
+ type TopLevelScheduleEntry = {
73
+ kind: 'STEP';
74
+ stepIndex: number;
75
+ } | {
76
+ kind: 'BLUEPRINT_REF';
77
+ blueprintId: string;
78
+ };
79
+ /** Canonical workflow document shape used by the builder draft and host adapters. */
80
+ interface WorkflowDefinition {
81
+ id: string;
82
+ name: string;
83
+ description: string;
84
+ steps: EditableStep[];
85
+ artifacts: Record<string, EditableArtifact>;
86
+ blueprintBodies?: Record<string, BlueprintJsonObject>;
87
+ topLevelSchedule?: TopLevelScheduleEntry[];
88
+ }
89
+ type ExportFormat = 'json';
90
+ interface ValidationIssue {
91
+ path: string;
92
+ message: string;
93
+ severity: 'error' | 'warning';
94
+ }
95
+ interface ValidationResult {
96
+ valid: boolean;
97
+ issues: ValidationIssue[];
98
+ }
99
+ interface AgentRef {
100
+ id: string;
101
+ name: string;
102
+ }
103
+ interface BuilderCapabilities {
104
+ import: boolean;
105
+ export: boolean;
106
+ save: boolean;
107
+ run: boolean;
108
+ publish: boolean;
109
+ aiAssist: boolean;
110
+ }
111
+ interface BuilderTheme {
112
+ /** Optional root class; layout uses semantic CSS variables only. */
113
+ className?: string;
114
+ /** Optional CSS custom properties applied on the builder root element. */
115
+ variables?: Record<string, string>;
116
+ }
117
+ interface BuilderAdapters {
118
+ validateWorkflow?: (draft: WorkflowDefinition) => ValidationResult | Promise<ValidationResult>;
119
+ importBundle?: () => Promise<WorkflowDefinition>;
120
+ exportBundle?: (draft: WorkflowDefinition, format: ExportFormat) => Promise<void>;
121
+ }
122
+ interface BuilderActions {
123
+ save?: (draft: WorkflowDefinition) => Promise<void>;
124
+ run?: (draft: WorkflowDefinition) => Promise<void>;
125
+ publish?: (draft: WorkflowDefinition) => Promise<void>;
126
+ }
127
+ interface WorkflowBuilderProps {
128
+ capabilities: BuilderCapabilities;
129
+ adapters?: BuilderAdapters;
130
+ actions?: BuilderActions;
131
+ theme?: BuilderTheme;
132
+ initialWorkflow?: WorkflowDefinition;
133
+ /** Host-supplied agent catalog for inspector pickers (text fallback when omitted). */
134
+ agentCatalog?: AgentRef[];
135
+ }
136
+
137
+ declare function WorkflowBuilder({ capabilities, adapters, actions, theme, initialWorkflow, agentCatalog, }: WorkflowBuilderProps): react_jsx_runtime.JSX.Element;
138
+
139
+ interface BuilderSelection {
140
+ nodeId: string | null;
141
+ edgeId: string | null;
142
+ }
143
+ interface ImportMeta {
144
+ source: string | null;
145
+ importedAt: string | null;
146
+ }
147
+ interface BuilderState {
148
+ draft: WorkflowDefinition;
149
+ baseline: WorkflowDefinition;
150
+ selection: BuilderSelection;
151
+ validation: ValidationResult;
152
+ importMeta: ImportMeta;
153
+ }
154
+ type BuilderAction = {
155
+ type: 'SET_DRAFT';
156
+ draft: WorkflowDefinition;
157
+ } | {
158
+ type: 'SET_BASELINE';
159
+ baseline: WorkflowDefinition;
160
+ } | {
161
+ type: 'SELECT_NODE';
162
+ nodeId: string | null;
163
+ } | {
164
+ type: 'SELECT_EDGE';
165
+ edgeId: string | null;
166
+ } | {
167
+ type: 'SET_VALIDATION';
168
+ validation: ValidationResult;
169
+ } | {
170
+ type: 'SET_IMPORT_META';
171
+ importMeta: ImportMeta;
172
+ };
173
+
174
+ declare function builderReducer(state: BuilderState, action: BuilderAction): BuilderState;
175
+
176
+ interface UseBuilderStateResult {
177
+ state: BuilderState;
178
+ dispatch: Dispatch<BuilderAction>;
179
+ dirty: boolean;
180
+ }
181
+ declare function useBuilderState(initialWorkflow?: WorkflowDefinition): UseBuilderStateResult;
182
+
183
+ declare function validateWorkflow(draft: WorkflowDefinition): ValidationResult;
184
+
185
+ declare class WorkflowParseError extends Error {
186
+ constructor(message: string);
187
+ }
188
+ declare function serializeWorkflowJson(workflow: WorkflowDefinition): string;
189
+ declare function parseWorkflowJson(text: string): WorkflowDefinition;
190
+
191
+ export { type AgentRef, type BuilderAction, type BuilderActions, type BuilderAdapters, type BuilderCapabilities, type BuilderState, type BuilderTheme, type ExportFormat, type UseBuilderStateResult, type ValidationIssue, type ValidationResult, WorkflowBuilder, type WorkflowBuilderProps, type WorkflowDefinition, WorkflowParseError, builderReducer, WorkflowBuilder as default, parseWorkflowJson, serializeWorkflowJson, useBuilderState, validateWorkflow };