@geenius/ai-workflow 0.1.0 → 0.4.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.
Files changed (159) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +69 -1
  3. package/package.json +60 -27
  4. package/packages/convex/dist/index.d.ts +363 -0
  5. package/packages/convex/dist/index.js +200 -0
  6. package/packages/convex/dist/index.js.map +1 -0
  7. package/packages/react/dist/index.d.ts +466 -0
  8. package/packages/react/dist/index.js +13914 -0
  9. package/packages/react/dist/index.js.map +1 -0
  10. package/packages/react-css/{src/styles.css → dist/index.css} +107 -253
  11. package/packages/react-css/dist/index.css.map +1 -0
  12. package/packages/react-css/dist/index.d.ts +495 -0
  13. package/packages/react-css/dist/index.js +13901 -0
  14. package/packages/react-css/dist/index.js.map +1 -0
  15. package/packages/shared/dist/index.d.ts +1368 -0
  16. package/packages/shared/dist/index.js +1681 -0
  17. package/packages/shared/dist/index.js.map +1 -0
  18. package/packages/solidjs/dist/index.d.ts +452 -0
  19. package/packages/solidjs/dist/index.js +13830 -0
  20. package/packages/solidjs/dist/index.js.map +1 -0
  21. package/packages/solidjs-css/{src/styles.css → dist/index.css} +107 -253
  22. package/packages/solidjs-css/dist/index.css.map +1 -0
  23. package/packages/solidjs-css/dist/index.d.ts +471 -0
  24. package/packages/solidjs-css/dist/index.js +13774 -0
  25. package/packages/solidjs-css/dist/index.js.map +1 -0
  26. package/.changeset/config.json +0 -11
  27. package/.github/CODEOWNERS +0 -1
  28. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -16
  29. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -11
  30. package/.github/PULL_REQUEST_TEMPLATE.md +0 -10
  31. package/.github/dependabot.yml +0 -11
  32. package/.github/workflows/ci.yml +0 -23
  33. package/.github/workflows/release.yml +0 -29
  34. package/.nvmrc +0 -1
  35. package/.project/ACCOUNT.yaml +0 -4
  36. package/.project/IDEAS.yaml +0 -7
  37. package/.project/PROJECT.yaml +0 -11
  38. package/.project/ROADMAP.yaml +0 -15
  39. package/CODE_OF_CONDUCT.md +0 -16
  40. package/CONTRIBUTING.md +0 -26
  41. package/SECURITY.md +0 -15
  42. package/SUPPORT.md +0 -8
  43. package/packages/convex/README.md +0 -1
  44. package/packages/convex/package.json +0 -12
  45. package/packages/convex/src/convex.config.ts +0 -3
  46. package/packages/convex/src/index.ts +0 -3
  47. package/packages/convex/src/mutations.ts +0 -36
  48. package/packages/convex/src/queries.ts +0 -19
  49. package/packages/convex/src/schema.ts +0 -24
  50. package/packages/convex/tsconfig.json +0 -25
  51. package/packages/react/README.md +0 -1
  52. package/packages/react/package.json +0 -46
  53. package/packages/react/src/components/ApprovalModal.tsx +0 -47
  54. package/packages/react/src/components/StepConfigPanel.tsx +0 -67
  55. package/packages/react/src/components/StepConnector.tsx +0 -47
  56. package/packages/react/src/components/StepNode.tsx +0 -38
  57. package/packages/react/src/components/StepPalette.tsx +0 -48
  58. package/packages/react/src/components/WorkflowCanvas.tsx +0 -42
  59. package/packages/react/src/components/WorkflowRunPanel.tsx +0 -64
  60. package/packages/react/src/components/WorkflowToolbar.tsx +0 -43
  61. package/packages/react/src/components/index.ts +0 -9
  62. package/packages/react/src/hooks/index.ts +0 -10
  63. package/packages/react/src/hooks/useApprovalGate.ts +0 -59
  64. package/packages/react/src/hooks/useWorkflow.ts +0 -39
  65. package/packages/react/src/hooks/useWorkflowBuilder.ts +0 -121
  66. package/packages/react/src/hooks/useWorkflowRun.ts +0 -75
  67. package/packages/react/src/hooks/useWorkflowStep.ts +0 -52
  68. package/packages/react/src/hooks/useWorkflowTemplates.ts +0 -54
  69. package/packages/react/src/index.ts +0 -16
  70. package/packages/react/src/pages/WorkflowBuilderPage.tsx +0 -81
  71. package/packages/react/src/pages/WorkflowRunsPage.tsx +0 -59
  72. package/packages/react/src/pages/index.ts +0 -3
  73. package/packages/react/tsconfig.json +0 -1
  74. package/packages/react/tsup.config.ts +0 -7
  75. package/packages/react-css/README.md +0 -1
  76. package/packages/react-css/package.json +0 -44
  77. package/packages/react-css/src/components/ApprovalModal.tsx +0 -6
  78. package/packages/react-css/src/components/StepConfigPanel.tsx +0 -7
  79. package/packages/react-css/src/components/StepConnector.tsx +0 -6
  80. package/packages/react-css/src/components/StepNode.tsx +0 -7
  81. package/packages/react-css/src/components/StepPalette.tsx +0 -6
  82. package/packages/react-css/src/components/WorkflowCanvas.tsx +0 -6
  83. package/packages/react-css/src/components/WorkflowRunPanel.tsx +0 -9
  84. package/packages/react-css/src/components/WorkflowToolbar.tsx +0 -4
  85. package/packages/react-css/src/components/index.ts +0 -9
  86. package/packages/react-css/src/hooks/index.ts +0 -3
  87. package/packages/react-css/src/hooks/useWorkflow.ts +0 -39
  88. package/packages/react-css/src/hooks/useWorkflowBuilder.ts +0 -121
  89. package/packages/react-css/src/index.ts +0 -7
  90. package/packages/react-css/src/pages/WorkflowBuilderPage.tsx +0 -16
  91. package/packages/react-css/src/pages/WorkflowRunsPage.tsx +0 -6
  92. package/packages/react-css/src/pages/index.ts +0 -3
  93. package/packages/react-css/tsconfig.json +0 -26
  94. package/packages/react-css/tsup.config.ts +0 -2
  95. package/packages/shared/README.md +0 -1
  96. package/packages/shared/package.json +0 -56
  97. package/packages/shared/src/__tests__/ai-workflow.test.ts +0 -217
  98. package/packages/shared/src/config.ts +0 -49
  99. package/packages/shared/src/convex/index.ts +0 -2
  100. package/packages/shared/src/convex/schemas.ts +0 -42
  101. package/packages/shared/src/engine.test.ts +0 -1
  102. package/packages/shared/src/engine.ts +0 -295
  103. package/packages/shared/src/index.ts +0 -43
  104. package/packages/shared/src/steps.ts +0 -68
  105. package/packages/shared/src/templates.ts +0 -172
  106. package/packages/shared/src/types.ts +0 -237
  107. package/packages/shared/src/utils/cost.ts +0 -79
  108. package/packages/shared/src/utils/dag.ts +0 -133
  109. package/packages/shared/src/utils/index.ts +0 -5
  110. package/packages/shared/src/utils/interpolation.ts +0 -53
  111. package/packages/shared/src/validators.ts +0 -215
  112. package/packages/shared/tsconfig.json +0 -1
  113. package/packages/shared/tsup.config.ts +0 -5
  114. package/packages/shared/vitest.config.ts +0 -4
  115. package/packages/solidjs/README.md +0 -1
  116. package/packages/solidjs/package.json +0 -45
  117. package/packages/solidjs/src/components/ApprovalModal.tsx +0 -18
  118. package/packages/solidjs/src/components/StepConfigPanel.tsx +0 -14
  119. package/packages/solidjs/src/components/StepConnector.tsx +0 -11
  120. package/packages/solidjs/src/components/StepNode.tsx +0 -12
  121. package/packages/solidjs/src/components/StepPalette.tsx +0 -22
  122. package/packages/solidjs/src/components/WorkflowCanvas.tsx +0 -23
  123. package/packages/solidjs/src/components/WorkflowRunPanel.tsx +0 -18
  124. package/packages/solidjs/src/components/WorkflowToolbar.tsx +0 -13
  125. package/packages/solidjs/src/components/index.ts +0 -9
  126. package/packages/solidjs/src/index.ts +0 -7
  127. package/packages/solidjs/src/pages/WorkflowBuilderPage.tsx +0 -37
  128. package/packages/solidjs/src/pages/WorkflowRunsPage.tsx +0 -20
  129. package/packages/solidjs/src/pages/index.ts +0 -3
  130. package/packages/solidjs/src/primitives/createApprovalGate.ts +0 -29
  131. package/packages/solidjs/src/primitives/createWorkflow.ts +0 -28
  132. package/packages/solidjs/src/primitives/createWorkflowBuilder.ts +0 -56
  133. package/packages/solidjs/src/primitives/createWorkflowRun.ts +0 -32
  134. package/packages/solidjs/src/primitives/createWorkflowStep.ts +0 -23
  135. package/packages/solidjs/src/primitives/createWorkflowTemplates.ts +0 -28
  136. package/packages/solidjs/src/primitives/index.ts +0 -8
  137. package/packages/solidjs/tsconfig.json +0 -1
  138. package/packages/solidjs/tsup.config.ts +0 -7
  139. package/packages/solidjs-css/README.md +0 -1
  140. package/packages/solidjs-css/package.json +0 -43
  141. package/packages/solidjs-css/src/components/ApprovalModal.tsx +0 -6
  142. package/packages/solidjs-css/src/components/StepConfigPanel.tsx +0 -7
  143. package/packages/solidjs-css/src/components/StepConnector.tsx +0 -6
  144. package/packages/solidjs-css/src/components/StepNode.tsx +0 -7
  145. package/packages/solidjs-css/src/components/StepPalette.tsx +0 -7
  146. package/packages/solidjs-css/src/components/WorkflowCanvas.tsx +0 -7
  147. package/packages/solidjs-css/src/components/WorkflowRunPanel.tsx +0 -8
  148. package/packages/solidjs-css/src/components/WorkflowToolbar.tsx +0 -5
  149. package/packages/solidjs-css/src/components/index.ts +0 -9
  150. package/packages/solidjs-css/src/index.ts +0 -7
  151. package/packages/solidjs-css/src/pages/WorkflowBuilderPage.tsx +0 -2
  152. package/packages/solidjs-css/src/pages/WorkflowRunsPage.tsx +0 -7
  153. package/packages/solidjs-css/src/pages/index.ts +0 -3
  154. package/packages/solidjs-css/src/primitives/createWorkflow.ts +0 -28
  155. package/packages/solidjs-css/src/primitives/createWorkflowBuilder.ts +0 -56
  156. package/packages/solidjs-css/src/primitives/index.ts +0 -1
  157. package/packages/solidjs-css/tsconfig.json +0 -27
  158. package/packages/solidjs-css/tsup.config.ts +0 -2
  159. package/pnpm-workspace.yaml +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/styles.css"],"sourcesContent":["/* @geenius/ai-workflow — styles.css\n * Unified BEM stylesheet for all CSS variant packages.\n * Ships local fallback tokens while allowing host apps to override them.\n */\n\n/* ========================================\n Color Tokens (OKLCH)\n ======================================== */\n:root {\n --gui-bg: oklch(0.985 0.003 255);\n --gui-foreground: oklch(0.278 0.03 257);\n --gui-primary: oklch(0.63 0.2 262);\n --gui-primary-fg: oklch(0.985 0.002 255);\n --gui-primary-subtle: color-mix(in oklab, var(--gui-primary) 12%, white);\n --gui-success: oklch(0.72 0.17 152);\n --gui-warning: oklch(0.82 0.16 84);\n --gui-danger: oklch(0.63 0.24 28);\n --gui-border: oklch(0.9 0.008 255);\n --gui-card: oklch(0.998 0.001 255);\n --gui-card-fg: var(--gui-foreground);\n --gui-muted-fg: oklch(0.56 0.018 255);\n --gui-surface: oklch(0.968 0.004 255);\n --gui-ring: color-mix(in oklab, var(--gui-primary) 35%, transparent);\n --background: var(--gui-bg);\n --foreground: var(--gui-foreground);\n --primary: var(--gui-primary);\n --primary-foreground: var(--gui-primary-fg);\n --primary-soft: var(--gui-primary-subtle);\n --success: var(--gui-success);\n --warning: var(--gui-warning);\n --danger: var(--gui-danger);\n --border: var(--gui-border);\n --card: var(--gui-card);\n --card-foreground: var(--gui-card-fg);\n --muted-foreground: var(--gui-muted-fg);\n --secondary: var(--gui-surface);\n --ring: var(--gui-ring);\n --shadow-color: color-mix(in oklab, var(--foreground) 20%, transparent);\n --shadow-color-sm: color-mix(in oklab, var(--foreground) 10%, transparent);\n --shadow-color-lg: color-mix(in oklab, var(--foreground) 40%, transparent);\n --primary-ring: color-mix(in oklab, var(--primary) 20%, transparent);\n --primary-ring-strong: color-mix(in oklab, var(--primary) 55%, transparent);\n --primary-glow: color-mix(in oklab, var(--primary) 40%, transparent);\n --warning-soft: color-mix(in oklab, var(--warning) 10%, transparent);\n --danger-soft: color-mix(in oklab, var(--danger) 10%, transparent);\n --success-soft: color-mix(in oklab, var(--success) 10%, transparent);\n --ai-workflow-bg: var(--background);\n --ai-workflow-surface: var(--card);\n --ai-workflow-surface-2: var(--secondary);\n --ai-workflow-border: var(--border);\n --ai-workflow-text: var(--foreground);\n --ai-workflow-text-muted: var(--muted-foreground);\n --ai-workflow-accent: var(--primary);\n --ai-workflow-running: var(--primary);\n --ai-workflow-success: var(--success);\n --ai-workflow-error: var(--danger);\n --ai-workflow-pending: var(--warning);\n --ai-workflow-skipped: var(--muted-foreground);\n --ai-workflow-connector: var(--border);\n --ai-workflow-radius: 1.5rem;\n --ai-workflow-radius-sm: 0.75rem;\n --ai-workflow-radius-lg: 2rem;\n --ai-workflow-shadow: 0 8px 32px var(--shadow-color);\n --ai-workflow-shadow-sm: 0 4px 16px var(--shadow-color-sm);\n --ai-workflow-shadow-lg: 0 16px 48px var(--shadow-color-lg);\n --ai-workflow-glow: 0 0 24px var(--primary-glow);\n --ai-workflow-transition: 200ms cubic-bezier(0.4, 0, 0.2, 1);\n --ai-workflow-transition-fast: 100ms ease;\n --ai-workflow-transition-slow: 300ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n[data-theme=\"dark\"],\n.dark {\n --gui-bg: oklch(0.19 0.01 255);\n --gui-foreground: oklch(0.94 0.01 255);\n --gui-primary: oklch(0.71 0.18 262);\n --gui-primary-fg: oklch(0.22 0.02 255);\n --gui-primary-subtle: color-mix(in oklab, var(--gui-primary) 16%, black);\n --gui-success: oklch(0.78 0.16 152);\n --gui-warning: oklch(0.86 0.15 84);\n --gui-danger: oklch(0.71 0.2 28);\n --gui-border: oklch(0.34 0.015 255);\n --gui-card: oklch(0.23 0.01 255);\n --gui-card-fg: var(--gui-foreground);\n --gui-muted-fg: oklch(0.72 0.014 255);\n --gui-surface: oklch(0.27 0.01 255);\n --gui-ring: color-mix(in oklab, var(--gui-primary) 45%, transparent);\n}\n\n/* ========================================\n BLOCK: ai-workflow__canvas\n ======================================== */\n.ai-workflow__canvas {\n position: relative;\n min-height: 500px;\n background: var(--ai-workflow-surface);\n border-radius: var(--ai-workflow-radius);\n overflow: hidden;\n border: 1px solid var(--ai-workflow-border);\n box-shadow: var(--ai-workflow-shadow-sm);\n backdrop-filter: blur(24px);\n -webkit-backdrop-filter: blur(24px);\n}\n\n.ai-workflow__canvas--empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n color: var(--ai-workflow-text-muted);\n}\n\n.ai-workflow__canvas-bg {\n position: absolute;\n inset: 0;\n background-image:\n linear-gradient(var(--ai-workflow-border) 1px, transparent 1px),\n linear-gradient(90deg, var(--ai-workflow-border) 1px, transparent 1px);\n background-size: 20px 20px;\n pointer-events: none;\n}\n\n.ai-workflow__canvas-grid {\n position: relative;\n z-index: 1;\n height: 100%;\n}\n\n/* ========================================\n BLOCK: ai-workflow__step-node\n ======================================== */\n.ai-workflow__step-node {\n position: relative;\n background: var(--ai-workflow-surface-2);\n border: 2px solid var(--ai-workflow-border);\n border-radius: var(--ai-workflow-radius-sm);\n padding: 1rem;\n min-width: 180px;\n cursor: pointer;\n transition: all var(--ai-workflow-transition);\n box-shadow: var(--ai-workflow-shadow-sm);\n}\n\n.ai-workflow__step-node:hover {\n border-color: var(--ai-workflow-accent);\n background: var(--ai-workflow-surface-2);\n}\n\n.ai-workflow__step-node--selected {\n border-color: var(--ai-workflow-accent);\n background: var(--primary-soft);\n box-shadow: 0 0 0 3px var(--primary-ring), var(--ai-workflow-glow);\n}\n\n.ai-workflow__step-node--pending {\n border-color: var(--ai-workflow-pending);\n}\n\n.ai-workflow__step-node--running {\n border-color: var(--ai-workflow-running);\n animation: ai-workflow-pulse-running 1.5s ease-in-out infinite;\n}\n\n.ai-workflow__step-node--success {\n border-color: var(--ai-workflow-success);\n}\n\n.ai-workflow__step-node--error {\n border-color: var(--ai-workflow-error);\n background: var(--danger-soft);\n}\n\n.ai-workflow__step-node--skipped {\n border-color: var(--ai-workflow-skipped);\n opacity: 0.7;\n}\n\n@keyframes ai-workflow-pulse-running {\n 0%, 100% {\n box-shadow: 0 0 0 0 var(--primary-ring-strong), var(--ai-workflow-shadow-sm);\n }\n 50% {\n box-shadow: 0 0 0 8px transparent, var(--ai-workflow-shadow-sm);\n }\n}\n\n.ai-workflow__step-header {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 0.5rem;\n}\n\n.ai-workflow__step-icon {\n font-size: 1.25rem;\n flex-shrink: 0;\n}\n\n.ai-workflow__step-name {\n font-weight: 600;\n color: var(--ai-workflow-text);\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ai-workflow__step-type-badge {\n font-size: 0.7rem;\n color: var(--ai-workflow-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n background: var(--ai-workflow-surface);\n padding: 0.2rem 0.4rem;\n border-radius: 2px;\n}\n\n.ai-workflow__step-optional-badge,\n.ai-workflow__step-retry-badge {\n display: inline-block;\n font-size: 0.65rem;\n padding: 0.1rem 0.4rem;\n border-radius: 999px;\n background: var(--ai-workflow-surface);\n color: var(--ai-workflow-text-muted);\n font-weight: 500;\n}\n\n.ai-workflow__step-status {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.5rem;\n height: 1.5rem;\n border-radius: 50%;\n font-size: 0.8rem;\n}\n\n.ai-workflow__step-status--pending {\n background: var(--ai-workflow-pending);\n}\n\n.ai-workflow__step-status--running {\n background: var(--ai-workflow-running);\n animation: ai-workflow-spin 1s linear infinite;\n}\n\n.ai-workflow__step-status--success {\n background: var(--ai-workflow-success);\n}\n\n.ai-workflow__step-status--error {\n background: var(--ai-workflow-error);\n}\n\n@keyframes ai-workflow-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n/* ========================================\n BLOCK: ai-workflow__connector\n ======================================== */\n.ai-workflow__connector {\n position: absolute;\n pointer-events: none;\n stroke: var(--ai-workflow-connector);\n stroke-width: 2px;\n fill: none;\n}\n\n.ai-workflow__connector--running {\n stroke: var(--ai-workflow-running);\n animation: ai-workflow-flow 2s ease-in-out infinite;\n}\n\n.ai-workflow__connector--error {\n stroke: var(--ai-workflow-error);\n}\n\n.ai-workflow__connector--success {\n stroke: var(--ai-workflow-success);\n}\n\n@keyframes ai-workflow-flow {\n 0%, 100% {\n opacity: 0.5;\n }\n 50% {\n opacity: 1;\n }\n}\n\n/* ========================================\n BLOCK: ai-workflow__step-detail-panel\n ======================================== */\n.ai-workflow__step-detail-panel {\n background: var(--ai-workflow-surface-2);\n border-left: 1px solid var(--ai-workflow-border);\n padding: 1.5rem;\n min-width: 300px;\n max-width: 400px;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n}\n\n.ai-workflow__detail-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 1rem;\n border-bottom: 1px solid var(--ai-workflow-border);\n padding-bottom: 1rem;\n}\n\n.ai-workflow__detail-title {\n font-size: 1.1rem;\n font-weight: 700;\n color: var(--ai-workflow-text);\n margin: 0;\n}\n\n.ai-workflow__detail-close {\n background: transparent;\n border: none;\n color: var(--ai-workflow-text-muted);\n cursor: pointer;\n font-size: 1.25rem;\n padding: 0;\n transition: color var(--ai-workflow-transition);\n}\n\n.ai-workflow__detail-close:hover {\n color: var(--ai-workflow-text);\n}\n\n.ai-workflow__detail-section {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.ai-workflow__detail-label {\n font-size: 0.8rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--ai-workflow-text-muted);\n}\n\n.ai-workflow__detail-value {\n font-size: 0.9rem;\n color: var(--ai-workflow-text);\n word-break: break-word;\n}\n\n.ai-workflow__detail-code {\n background: var(--ai-workflow-surface);\n padding: 0.75rem;\n border-radius: var(--ai-workflow-radius-sm);\n border: 1px solid var(--ai-workflow-border);\n font-family: 'Courier New', monospace;\n font-size: 0.8rem;\n color: var(--ai-workflow-accent);\n overflow-x: auto;\n}\n\n/* ========================================\n BLOCK: ai-workflow__run-history-table\n ======================================== */\n.ai-workflow__run-history-table {\n width: 100%;\n border-collapse: collapse;\n background: var(--ai-workflow-surface);\n}\n\n.ai-workflow__history-header {\n background: var(--ai-workflow-surface-2);\n border-bottom: 2px solid var(--ai-workflow-border);\n}\n\n.ai-workflow__history-th {\n padding: 1rem;\n text-align: left;\n font-weight: 600;\n font-size: 0.8rem;\n color: var(--ai-workflow-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n}\n\n.ai-workflow__history-row {\n border-bottom: 1px solid var(--ai-workflow-border);\n transition: background var(--ai-workflow-transition);\n}\n\n.ai-workflow__history-row:hover {\n background: var(--ai-workflow-surface-2);\n}\n\n.ai-workflow__history-td {\n padding: 1rem;\n font-size: 0.9rem;\n color: var(--ai-workflow-text);\n}\n\n.ai-workflow__history-status-badge {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.35rem 0.75rem;\n border-radius: 999px;\n font-size: 0.8rem;\n font-weight: 600;\n}\n\n.ai-workflow__history-status-badge--pending {\n background: var(--ai-workflow-pending);\n color: var(--ai-workflow-text);\n}\n\n.ai-workflow__history-status-badge--running {\n background: var(--ai-workflow-running);\n color: var(--ai-workflow-text);\n}\n\n.ai-workflow__history-status-badge--success {\n background: var(--ai-workflow-success);\n color: var(--ai-workflow-text);\n}\n\n.ai-workflow__history-status-badge--error {\n background: var(--ai-workflow-error);\n color: white;\n}\n\n.ai-workflow__history-time {\n font-size: 0.8rem;\n color: var(--ai-workflow-text-muted);\n}\n\n/* ========================================\n BLOCK: ai-workflow__trigger-selector\n ======================================== */\n.ai-workflow__trigger-selector {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n padding: 1rem;\n background: var(--ai-workflow-surface);\n border: 1px solid var(--ai-workflow-border);\n border-radius: var(--ai-workflow-radius-sm);\n}\n\n.ai-workflow__trigger-title {\n font-weight: 600;\n color: var(--ai-workflow-text);\n font-size: 0.9rem;\n}\n\n.ai-workflow__trigger-option {\n padding: 0.75rem;\n background: var(--ai-workflow-surface-2);\n border: 1px solid var(--ai-workflow-border);\n border-radius: var(--ai-workflow-radius-sm);\n cursor: pointer;\n transition: all var(--ai-workflow-transition);\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.ai-workflow__trigger-option:hover {\n border-color: var(--ai-workflow-accent);\n}\n\n.ai-workflow__trigger-option--selected {\n border-color: var(--ai-workflow-accent);\n background: var(--primary-soft);\n}\n\n.ai-workflow__trigger-radio {\n width: 1rem;\n height: 1rem;\n border-radius: 50%;\n border: 2px solid var(--ai-workflow-border);\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all var(--ai-workflow-transition);\n}\n\n.ai-workflow__trigger-option--selected .ai-workflow__trigger-radio {\n border-color: var(--ai-workflow-accent);\n background: var(--ai-workflow-accent);\n}\n\n.ai-workflow__trigger-label {\n flex: 1;\n color: var(--ai-workflow-text);\n font-size: 0.9rem;\n font-weight: 500;\n}\n\n/* ========================================\n BLOCK: ai-workflow__execution-log\n ======================================== */\n.ai-workflow__execution-log {\n background: var(--ai-workflow-surface);\n border: 1px solid var(--ai-workflow-border);\n border-radius: var(--ai-workflow-radius-sm);\n padding: 1rem;\n font-family: 'Courier New', monospace;\n font-size: 0.8rem;\n max-height: 400px;\n overflow-y: auto;\n}\n\n.ai-workflow__log-line {\n margin: 0.5rem 0;\n color: var(--ai-workflow-text-muted);\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n\n.ai-workflow__log-line--info {\n color: var(--ai-workflow-accent);\n}\n\n.ai-workflow__log-line--success {\n color: var(--ai-workflow-success);\n}\n\n.ai-workflow__log-line--error {\n color: var(--ai-workflow-error);\n}\n\n.ai-workflow__log-line--warning {\n color: var(--warning);\n}\n\n.ai-workflow__log-timestamp {\n color: var(--ai-workflow-border);\n margin-right: 0.5rem;\n}\n\n/* ========================================\n BLOCK: ai-workflow__progress-tracker\n ======================================== */\n.ai-workflow__progress-tracker {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: var(--ai-workflow-surface);\n border: 1px solid var(--ai-workflow-border);\n border-radius: var(--ai-workflow-radius-sm);\n}\n\n.ai-workflow__progress-bar {\n flex: 1;\n height: 0.5rem;\n background: var(--ai-workflow-surface-2);\n border-radius: 999px;\n overflow: hidden;\n}\n\n.ai-workflow__progress-fill {\n height: 100%;\n background: linear-gradient(90deg, var(--ai-workflow-accent), var(--ai-workflow-running));\n border-radius: 999px;\n animation: ai-workflow-progress 2s ease-in-out;\n}\n\n.ai-workflow__progress-fill--complete {\n background: var(--ai-workflow-success);\n animation: none;\n}\n\n@keyframes ai-workflow-progress {\n 0% {\n width: 0%;\n }\n}\n\n.ai-workflow__progress-text {\n font-size: 0.85rem;\n color: var(--ai-workflow-text);\n font-weight: 600;\n min-width: 60px;\n text-align: right;\n}\n\n/* ========================================\n BLOCK: ai-workflow__step-list\n ======================================== */\n.ai-workflow__step-list {\n list-style: none;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.ai-workflow__step-list-item {\n padding: 0.75rem 1rem;\n background: var(--ai-workflow-surface);\n border: 1px solid var(--ai-workflow-border);\n border-radius: var(--ai-workflow-radius-sm);\n display: flex;\n align-items: center;\n gap: 0.75rem;\n transition: all var(--ai-workflow-transition);\n cursor: pointer;\n}\n\n.ai-workflow__step-list-item:hover {\n background: var(--ai-workflow-surface-2);\n border-color: var(--ai-workflow-accent);\n}\n\n.ai-workflow__step-list-item--selected {\n border-color: var(--ai-workflow-accent);\n background: var(--primary-soft);\n}\n\n.ai-workflow__step-list-number {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.75rem;\n height: 1.75rem;\n border-radius: 50%;\n background: var(--ai-workflow-surface-2);\n font-size: 0.8rem;\n font-weight: 600;\n color: var(--ai-workflow-text);\n flex-shrink: 0;\n}\n\n.ai-workflow__step-list-item--success .ai-workflow__step-list-number {\n background: var(--ai-workflow-success);\n}\n\n.ai-workflow__step-list-item--error .ai-workflow__step-list-number {\n background: var(--ai-workflow-error);\n}\n\n.ai-workflow__step-list-label {\n flex: 1;\n font-size: 0.9rem;\n color: var(--ai-workflow-text);\n font-weight: 500;\n}\n\n/* ========================================\n BLOCK: ai-workflow__variable-editor\n ======================================== */\n.ai-workflow__variable-editor {\n background: var(--ai-workflow-surface);\n border: 1px solid var(--ai-workflow-border);\n border-radius: var(--ai-workflow-radius-sm);\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.ai-workflow__variable-header {\n font-weight: 600;\n color: var(--ai-workflow-text);\n font-size: 0.9rem;\n}\n\n.ai-workflow__variable-item {\n display: flex;\n gap: 0.75rem;\n}\n\n.ai-workflow__variable-name {\n flex: 0 0 120px;\n padding: 0.5rem;\n background: var(--ai-workflow-surface-2);\n border: 1px solid var(--ai-workflow-border);\n border-radius: var(--ai-workflow-radius-sm);\n color: var(--ai-workflow-text);\n font-size: 0.85rem;\n font-family: 'Courier New', monospace;\n}\n\n.ai-workflow__variable-value {\n flex: 1;\n padding: 0.5rem;\n background: var(--ai-workflow-surface-2);\n border: 1px solid var(--ai-workflow-border);\n border-radius: var(--ai-workflow-radius-sm);\n color: var(--ai-workflow-text);\n font-size: 0.85rem;\n}\n\n.ai-workflow__variable-value:focus {\n outline: none;\n border-color: var(--ai-workflow-accent);\n}\n\n/* ========================================\n BLOCK: ai-workflow__condition-block\n ======================================== */\n.ai-workflow__condition-block {\n background: var(--ai-workflow-surface);\n border: 1px solid var(--ai-workflow-border);\n border-radius: var(--ai-workflow-radius-sm);\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.ai-workflow__condition-label {\n font-weight: 600;\n color: var(--ai-workflow-text);\n font-size: 0.9rem;\n}\n\n.ai-workflow__condition-row {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n}\n\n.ai-workflow__condition-field {\n flex: 1;\n padding: 0.5rem;\n background: var(--ai-workflow-surface-2);\n border: 1px solid var(--ai-workflow-border);\n border-radius: var(--ai-workflow-radius-sm);\n color: var(--ai-workflow-text);\n font-size: 0.85rem;\n}\n\n.ai-workflow__condition-field:focus {\n outline: none;\n border-color: var(--ai-workflow-accent);\n}\n\n.ai-workflow__condition-operator {\n flex: 0 0 80px;\n padding: 0.5rem;\n background: var(--ai-workflow-surface-2);\n border: 1px solid var(--ai-workflow-border);\n border-radius: var(--ai-workflow-radius-sm);\n color: var(--ai-workflow-text);\n font-size: 0.85rem;\n text-align: center;\n}\n\n/* ========================================\n BLOCK: ai-workflow__loop-indicator\n ======================================== */\n.ai-workflow__loop-indicator {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.35rem 0.75rem;\n background: var(--ai-workflow-accent);\n color: var(--ai-workflow-text);\n border-radius: 999px;\n font-size: 0.8rem;\n font-weight: 600;\n}\n\n.ai-workflow__loop-icon {\n font-size: 0.9rem;\n animation: ai-workflow-spin 1s linear infinite;\n}\n\n/* ========================================\n BLOCK: ai-workflow__parallel-badge\n ======================================== */\n.ai-workflow__parallel-badge {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.35rem 0.75rem;\n background: var(--success);\n color: var(--ai-workflow-text);\n border-radius: 999px;\n font-size: 0.8rem;\n font-weight: 600;\n}\n\n.ai-workflow__parallel-icon {\n font-size: 0.9rem;\n}\n\n/* ========================================\n STATES: Skeleton Loading\n ======================================== */\n.ai-workflow__skeleton {\n background: linear-gradient(\n 90deg,\n var(--ai-workflow-surface-2) 0%,\n var(--ai-workflow-border) 50%,\n var(--ai-workflow-surface-2) 100%\n );\n background-size: 200% 100%;\n animation: ai-workflow-skeleton-loading 1.5s ease-in-out infinite;\n border-radius: var(--ai-workflow-radius-sm);\n}\n\n.ai-workflow__skeleton--text {\n height: 1rem;\n margin: 0.5rem 0;\n}\n\n.ai-workflow__skeleton--node {\n height: 5rem;\n width: 180px;\n}\n\n.ai-workflow__skeleton--card {\n height: 6rem;\n}\n\n@keyframes ai-workflow-skeleton-loading {\n 0% {\n background-position: 200% 0;\n }\n 100% {\n background-position: -200% 0;\n }\n}\n\n/* ========================================\n STATES: Empty State\n ======================================== */\n.ai-workflow__empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 1rem;\n padding: 3rem 2rem;\n text-align: center;\n min-height: 12rem;\n background: var(--ai-workflow-surface);\n border: 2px dashed var(--ai-workflow-border);\n border-radius: var(--ai-workflow-radius);\n}\n\n.ai-workflow__empty-icon {\n font-size: 3rem;\n opacity: 0.3;\n}\n\n.ai-workflow__empty-title {\n margin: 0;\n font-size: 1.1rem;\n font-weight: 600;\n color: var(--ai-workflow-text);\n}\n\n.ai-workflow__empty-description {\n margin: 0;\n color: var(--ai-workflow-text-muted);\n font-size: 0.9rem;\n max-width: 300px;\n}\n\n/* ========================================\n RESPONSIVE: Tablet\n ======================================== */\n@media (max-width: 768px) {\n .ai-workflow__step-detail-panel {\n max-width: none;\n min-width: 250px;\n }\n\n .ai-workflow__run-history-table {\n font-size: 0.85rem;\n }\n\n .ai-workflow__history-th,\n .ai-workflow__history-td {\n padding: 0.75rem;\n }\n\n .ai-workflow__execution-log {\n max-height: 300px;\n font-size: 0.75rem;\n }\n}\n\n/* ========================================\n RESPONSIVE: Mobile\n ======================================== */\n@media (max-width: 480px) {\n .ai-workflow__canvas {\n min-height: 300px;\n }\n\n .ai-workflow__step-detail-panel {\n min-width: 100%;\n max-width: none;\n border-left: none;\n border-top: 1px solid var(--ai-workflow-border);\n }\n\n .ai-workflow__step-node {\n min-width: 150px;\n padding: 0.75rem;\n }\n\n .ai-workflow__run-history-table {\n font-size: 0.75rem;\n }\n\n .ai-workflow__history-th,\n .ai-workflow__history-td {\n padding: 0.5rem;\n }\n\n .ai-workflow__condition-row {\n flex-direction: column;\n }\n\n .ai-workflow__condition-field,\n .ai-workflow__condition-operator {\n width: 100%;\n }\n\n .ai-workflow__execution-log {\n font-size: 0.7rem;\n max-height: 250px;\n }\n}\n\n/* ========================================\n UTILITY: Accessibility\n ======================================== */\n.ai-workflow__focus-visible:focus-visible {\n outline: 2px solid var(--ai-workflow-accent);\n outline-offset: 2px;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ai-workflow__step-node--running,\n .ai-workflow__step-status--running,\n .ai-workflow__loop-icon,\n .ai-workflow__progress-fill,\n .ai-workflow__skeleton,\n .ai-workflow__connector--running {\n animation: none;\n transition: none;\n }\n}\n\n/* ========================================\n UTILITY: Print Styles\n ======================================== */\n@media print {\n .ai-workflow__canvas {\n break-inside: avoid;\n page-break-inside: avoid;\n }\n\n .ai-workflow__step-node {\n break-inside: avoid;\n page-break-inside: avoid;\n }\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,471 @@
1
+ import { WorkflowEngineOptions, WorkflowDefinition, WorkflowRun, WorkflowError, StepResult, WorkflowBuilderState, WorkflowStepDef, StepConnection, RunStatus, StepStatus, WorkflowTemplate, StepType } from '@geenius/ai-workflow-shared';
2
+ export { RunStatus, StepConfig, StepResult, StepStatus, StepType, WORKFLOW_TEMPLATES, WorkflowBuilderState, WorkflowDefinition, WorkflowEngine, WorkflowRun, WorkflowStatus, WorkflowStepDef, getTemplate, getTemplatesByCategory, validateRun, validateWorkflow } from '@geenius/ai-workflow-shared';
3
+ import { JSX, JSXElement } from 'solid-js';
4
+
5
+ /**
6
+ * @module CssCreateApprovalGate
7
+ * @package @geenius/ai-workflow-solidjs-css
8
+ * @description Solid primitive for managing human approval requests in the
9
+ * plain-CSS workflow variant.
10
+ */
11
+ /**
12
+ * Pending human approval request tracked by the plain-CSS SolidJS primitive.
13
+ *
14
+ * @property id Stable approval request identifier.
15
+ * @property stepId Related workflow step identifier.
16
+ * @property message Approval prompt shown to operators.
17
+ * @property requestedAt Unix timestamp when approval was requested.
18
+ * @property approvers Optional list of approvers or approver groups.
19
+ */
20
+ interface ApprovalRequest {
21
+ id: string;
22
+ stepId: string;
23
+ message: string;
24
+ requestedAt: number;
25
+ approvers?: string[];
26
+ }
27
+ interface ApprovalHistoryEntry extends ApprovalRequest {
28
+ decision: "approved" | "rejected";
29
+ decidedAt: number;
30
+ }
31
+ /**
32
+ * Manage pending approvals and approval history with SolidJS signals.
33
+ *
34
+ * @returns Signal accessors and mutation helpers for approval state.
35
+ */
36
+ declare function createApprovalGate(): {
37
+ pendingApprovals: () => ApprovalRequest[];
38
+ history: () => ApprovalHistoryEntry[];
39
+ hasPending: () => boolean;
40
+ requestApproval: (stepId: string, message: string, approvers?: string[]) => string;
41
+ approve: (approvalId: string) => void;
42
+ reject: (approvalId: string) => void;
43
+ clearHistory: () => void;
44
+ };
45
+
46
+ /**
47
+ * @module CssCreateWorkflow
48
+ * @package @geenius/ai-workflow-solidjs-css
49
+ * @description Solid primitive for executing workflow definitions with the
50
+ * shared workflow engine in the plain-CSS variant.
51
+ */
52
+
53
+ /**
54
+ * Runtime integrations accepted by the plain-CSS SolidJS workflow primitive.
55
+ */
56
+ interface CreateWorkflowOptions extends WorkflowEngineOptions {
57
+ }
58
+ interface CreateWorkflowResult {
59
+ execute: (definition: WorkflowDefinition, input?: Record<string, unknown>) => Promise<WorkflowRun>;
60
+ cancel: () => void;
61
+ run: () => WorkflowRun | null;
62
+ isRunning: () => boolean;
63
+ error: () => WorkflowError | null;
64
+ stepResults: () => StepResult[];
65
+ reset: () => void;
66
+ }
67
+ /**
68
+ * Execute shared workflow definitions from the plain-CSS SolidJS surface.
69
+ *
70
+ * @param options Runtime integrations and callbacks for the shared engine.
71
+ * @returns Run state, execution methods, and cancellation controls.
72
+ */
73
+ declare function createWorkflow(options: CreateWorkflowOptions): CreateWorkflowResult;
74
+
75
+ /**
76
+ * @module CssCreateWorkflowBuilder
77
+ * @package @geenius/ai-workflow-solidjs-css
78
+ * @description Solid primitive for editing workflow definitions in the
79
+ * plain-CSS workflow variant.
80
+ */
81
+
82
+ /**
83
+ * Manage workflow builder state for the plain-CSS SolidJS surface.
84
+ *
85
+ * @param initial Optional initial workflow definition overrides.
86
+ * @returns Builder state, history controls, and mutation helpers.
87
+ */
88
+ declare function createWorkflowBuilder(initial?: Partial<WorkflowDefinition>): {
89
+ state: () => WorkflowBuilderState;
90
+ addStep: (step: WorkflowStepDef) => void;
91
+ removeStep: (stepId: string) => void;
92
+ updateStep: (stepId: string, updates: Partial<WorkflowStepDef>) => void;
93
+ addConnection: (connection: StepConnection) => void;
94
+ removeConnection: (fromStepId: string, toStepId: string) => void;
95
+ selectStep: (stepId: string | null) => void;
96
+ undo: () => void;
97
+ redo: () => void;
98
+ setDefinition: (definition: WorkflowDefinition) => void;
99
+ };
100
+
101
+ /**
102
+ * @module CssCreateWorkflowRun
103
+ * @package @geenius/ai-workflow-solidjs-css
104
+ * @description Solid primitive for tracking workflow execution progress in the
105
+ * plain-CSS workflow variant.
106
+ */
107
+
108
+ /**
109
+ * Track one workflow run and derive progress-oriented state for UI surfaces.
110
+ *
111
+ * @returns Signal accessors, progress values, and mutation helpers.
112
+ */
113
+ declare function createWorkflowRun(): {
114
+ run: () => WorkflowRun | null;
115
+ status: () => RunStatus;
116
+ currentStepIndex: () => number;
117
+ completedSteps: () => StepResult[];
118
+ progress: () => number;
119
+ error: () => string | null;
120
+ trackRun: (workflowRun: WorkflowRun) => void;
121
+ updateStep: (result: StepResult) => void;
122
+ reset: () => void;
123
+ isRunning: () => boolean;
124
+ isComplete: () => boolean;
125
+ isFailed: () => boolean;
126
+ };
127
+
128
+ /**
129
+ * @module CssCreateWorkflowStep
130
+ * @package @geenius/ai-workflow-solidjs-css
131
+ * @description Solid primitive for tracking the state of a single workflow
132
+ * step in the plain-CSS workflow surface.
133
+ */
134
+
135
+ /**
136
+ * Track one workflow step result and derive presentation metadata.
137
+ *
138
+ * @param stepDef Shared workflow step definition to observe.
139
+ * @returns Signal accessors, derived visuals, and mutation helpers.
140
+ */
141
+ declare function createWorkflowStep(stepDef: WorkflowStepDef): {
142
+ stepDef: WorkflowStepDef;
143
+ status: () => StepStatus;
144
+ output: () => unknown;
145
+ error: () => string | null;
146
+ durationMs: () => number;
147
+ icon: () => string;
148
+ statusColor: () => string;
149
+ updateFromResult: (result: StepResult) => void;
150
+ reset: () => void;
151
+ isComplete: () => boolean;
152
+ isRunning: () => boolean;
153
+ isFailed: () => boolean;
154
+ isWaiting: () => boolean;
155
+ config: WorkflowStepDef["config"];
156
+ };
157
+
158
+ /**
159
+ * @module CssCreateWorkflowTemplates
160
+ * @package @geenius/ai-workflow-solidjs-css
161
+ * @description Solid primitive for filtering and instantiating shared
162
+ * workflow templates in the plain-CSS workflow surface.
163
+ */
164
+
165
+ /**
166
+ * Filter and instantiate workflow templates for the plain-CSS SolidJS surface.
167
+ *
168
+ * @param userId Creator identifier injected into new workflow definitions.
169
+ * @returns Signal accessors and helpers for template discovery and creation.
170
+ */
171
+ declare function createWorkflowTemplates(userId: string): {
172
+ templates: () => WorkflowTemplate[];
173
+ allTemplates: WorkflowTemplate[];
174
+ selectedTemplate: () => WorkflowTemplate | null;
175
+ selectedTemplateId: () => string | null;
176
+ categories: () => WorkflowTemplate["category"][];
177
+ filterCategory: () => WorkflowTemplate["category"] | "all";
178
+ searchQuery: () => string;
179
+ setSelectedTemplateId: (templateId: string | null) => void;
180
+ setFilterCategory: (category: WorkflowTemplate["category"] | "all") => void;
181
+ setSearchQuery: (query: string) => void;
182
+ createFromTemplate: (templateId: string) => WorkflowDefinition | null;
183
+ };
184
+
185
+ /**
186
+ * @module CssSolidWorkflowCanvas
187
+ * @package @geenius/ai-workflow-solidjs-css
188
+ * @description Plain-CSS SolidJS workflow canvas that renders positioned steps
189
+ * and the connectors between them for the builder surface.
190
+ */
191
+
192
+ /**
193
+ * Props for the workflow canvas component.
194
+ */
195
+ interface WorkflowCanvasProps {
196
+ definition: WorkflowDefinition;
197
+ selectedStepId: string | null;
198
+ onSelectStep: (id: string | null) => void;
199
+ }
200
+ /**
201
+ * Render the builder canvas with positioned steps and connection lines.
202
+ *
203
+ * @param props Workflow definition plus selection state and click handler.
204
+ * @returns The plain-CSS workflow canvas.
205
+ */
206
+ declare function WorkflowCanvas(props: WorkflowCanvasProps): JSX.Element;
207
+
208
+ /**
209
+ * @module CssSolidStepNode
210
+ * @package @geenius/ai-workflow-solidjs-css
211
+ * @description Plain-CSS SolidJS workflow step node used by the builder canvas.
212
+ * This component mirrors the interactive affordances of the Tailwind variant
213
+ * while keeping styling in the CSS bundle.
214
+ */
215
+
216
+ /**
217
+ * Props for the plain-CSS SolidJS workflow step node.
218
+ *
219
+ * @property step Shared workflow step definition to render.
220
+ * @property isSelected Whether the node is currently selected.
221
+ * @property status Visual execution status displayed on the node.
222
+ * @property onClick Optional selection callback invoked from mouse or keyboard.
223
+ * @property class Optional class name override for outer layout composition.
224
+ */
225
+ interface StepNodeProps {
226
+ step: WorkflowStepDef;
227
+ isSelected?: boolean;
228
+ status?: "pending" | "running" | "success" | "error" | "skipped" | "default";
229
+ onClick?: () => void;
230
+ class?: string;
231
+ }
232
+ /**
233
+ * Render one plain-CSS workflow step node for SolidJS consumers.
234
+ *
235
+ * @param props Step node rendering props.
236
+ * @returns A keyboard-accessible workflow step node.
237
+ */
238
+ declare function StepNode(props: StepNodeProps): JSX.Element;
239
+
240
+ /**
241
+ * @module CssSolidWorkflowStepConnector
242
+ * @package @geenius/ai-workflow-solidjs-css
243
+ * @description SVG connector primitive for drawing directed edges between
244
+ * positioned workflow steps in the plain-CSS SolidJS builder canvas.
245
+ */
246
+
247
+ /**
248
+ * Props for a workflow step connector path.
249
+ */
250
+ interface StepConnectorProps {
251
+ from: {
252
+ x: number;
253
+ y: number;
254
+ };
255
+ to: {
256
+ x: number;
257
+ y: number;
258
+ };
259
+ label?: string;
260
+ isActive?: boolean;
261
+ }
262
+ /**
263
+ * Render a curved connector between two step positions.
264
+ *
265
+ * @param props Connector endpoints and optional label/state metadata.
266
+ * @returns The SVG group that draws the workflow edge.
267
+ */
268
+ declare function StepConnector(props: StepConnectorProps): JSX.Element;
269
+
270
+ /**
271
+ * @module CssSolidStepConfigPanel
272
+ * @package @geenius/ai-workflow-solidjs-css
273
+ * @description Plain-CSS SolidJS step configuration panel for builder flows.
274
+ * This component preserves the editable workflow metadata surface without relying
275
+ * on the Tailwind variant.
276
+ */
277
+
278
+ /**
279
+ * Props for the plain-CSS SolidJS step configuration panel.
280
+ *
281
+ * @property step Shared workflow step being edited.
282
+ * @property onUpdate Callback for partial step updates.
283
+ * @property onDelete Callback that removes the current step.
284
+ * @property onClose Callback that closes the panel.
285
+ */
286
+ interface StepConfigPanelProps {
287
+ step: WorkflowStepDef;
288
+ onUpdate: (id: string, updates: Partial<WorkflowStepDef>) => void;
289
+ onDelete: (id: string) => void;
290
+ onClose: () => void;
291
+ }
292
+ /**
293
+ * Render the plain-CSS SolidJS step configuration panel.
294
+ *
295
+ * @param props Step editing callbacks and selected step data.
296
+ * @returns A complementary panel for reviewing and editing step metadata.
297
+ */
298
+ declare function StepConfigPanel(props: StepConfigPanelProps): JSX.Element;
299
+
300
+ /**
301
+ * @module CssSolidWorkflowRunPanel
302
+ * @package @geenius/ai-workflow-solidjs-css
303
+ * @description Plain-CSS SolidJS execution panel for workflow runs. This surface
304
+ * mirrors the progress, error, and cost feedback from the Tailwind variant.
305
+ */
306
+
307
+ /**
308
+ * Props for the plain-CSS SolidJS workflow run panel.
309
+ *
310
+ * @property run Current workflow run snapshot or `null` when idle.
311
+ * @property isRunning Whether the run is still active.
312
+ * @property onCancel Optional callback that cancels the active run.
313
+ */
314
+ interface WorkflowRunPanelProps {
315
+ run: WorkflowRun | null;
316
+ isRunning: boolean;
317
+ onCancel?: () => void;
318
+ }
319
+ /**
320
+ * Render workflow execution progress in the plain-CSS SolidJS surface.
321
+ *
322
+ * @param props Run state and optional cancellation callback.
323
+ * @returns A run summary panel or idle placeholder.
324
+ */
325
+ declare function WorkflowRunPanel(props: WorkflowRunPanelProps): JSX.Element;
326
+
327
+ /**
328
+ * @module CssSolidApprovalModal
329
+ * @package @geenius/ai-workflow-solidjs-css
330
+ * @description Plain-CSS SolidJS approval dialog for human-gated workflow
331
+ * steps. This component preserves the accessible dialog semantics of the headless variant.
332
+ */
333
+
334
+ /**
335
+ * Props for the plain-CSS SolidJS approval dialog.
336
+ */
337
+ interface ApprovalModalProps {
338
+ request: ApprovalRequest | null;
339
+ onApprove: (id: string) => void;
340
+ onReject: (id: string) => void;
341
+ onDismiss?: (id: string) => void;
342
+ }
343
+ /**
344
+ * Render the pending approval request as an accessible plain-CSS Solid dialog.
345
+ *
346
+ * @param props Approval dialog callbacks and the current pending request.
347
+ * @returns The plain-CSS approval dialog when an approval is pending.
348
+ */
349
+ declare function ApprovalModal(props: ApprovalModalProps): JSX.Element;
350
+
351
+ /**
352
+ * @module CssSolidWorkflowToolbar
353
+ * @package @geenius/ai-workflow-solidjs-css
354
+ * @description Plain-CSS SolidJS toolbar for workflow builder actions such as
355
+ * save, run, cancel, undo, and redo. This component exposes the same command
356
+ * surface as the Tailwind variant without framework-specific styling.
357
+ */
358
+
359
+ /**
360
+ * Props for the workflow toolbar action surface.
361
+ */
362
+ interface WorkflowToolbarProps {
363
+ workflowName: string;
364
+ isDirty: boolean;
365
+ isRunning: boolean;
366
+ canUndo: boolean;
367
+ canRedo: boolean;
368
+ onSave: () => void;
369
+ onRun: () => void;
370
+ onCancel?: () => void;
371
+ onUndo: () => void;
372
+ onRedo: () => void;
373
+ onExport?: () => void;
374
+ class?: string;
375
+ }
376
+ /**
377
+ * Render the builder command toolbar for the plain-CSS SolidJS variant.
378
+ *
379
+ * @param props Action callbacks and builder status flags for the toolbar.
380
+ * @returns The workflow toolbar.
381
+ */
382
+ declare function WorkflowToolbar(props: WorkflowToolbarProps): JSX.Element;
383
+
384
+ /**
385
+ * @module CssSolidStepPalette
386
+ * @package @geenius/ai-workflow-solidjs-css
387
+ * @description Plain-CSS SolidJS palette of available workflow step types. This
388
+ * component keeps the builder taxonomy scannable without relying on Tailwind styles.
389
+ */
390
+
391
+ /**
392
+ * Props for the plain-CSS SolidJS step palette.
393
+ *
394
+ * @property onAddStep Callback invoked when a step type is selected.
395
+ */
396
+ interface StepPaletteProps {
397
+ onAddStep: (type: StepType) => void;
398
+ }
399
+ /**
400
+ * Render the plain-CSS SolidJS workflow step palette.
401
+ *
402
+ * @param props Palette interaction props.
403
+ * @returns A list of available workflow step types.
404
+ */
405
+ declare function StepPalette(props: StepPaletteProps): JSX.Element;
406
+
407
+ /**
408
+ * @module CssSolidWorkflowBuilderPage
409
+ * @package @geenius/ai-workflow-solidjs-css
410
+ * @description Plain-CSS SolidJS page for composing, editing, and running
411
+ * workflow definitions through the standalone CSS component surface.
412
+ */
413
+
414
+ /**
415
+ * Props for the plain-CSS SolidJS workflow builder page.
416
+ *
417
+ * @property engineOptions Shared workflow engine integrations used for execution.
418
+ * @property onSave Optional callback that persists the edited definition.
419
+ * @property class Optional class name override for outer layout composition.
420
+ * @property workflows Optional list of stored workflows shown in the summary strip.
421
+ * @property workflowRuns Optional list of stored workflow runs shown in the summary strip.
422
+ */
423
+ interface WorkflowBuilderPageProps {
424
+ engineOptions: WorkflowEngineOptions;
425
+ onSave?: (definition: WorkflowDefinition) => void;
426
+ class?: string;
427
+ workflows?: Array<{
428
+ _id: string;
429
+ name: string;
430
+ }>;
431
+ workflowRuns?: Array<{
432
+ _id: string;
433
+ workflowId: string;
434
+ }>;
435
+ }
436
+ /**
437
+ * Render the full plain-CSS workflow builder page for SolidJS consumers.
438
+ *
439
+ * @param props Builder dependencies, persistence callbacks, and optional summaries.
440
+ * @returns The composed workflow builder page.
441
+ */
442
+ declare function WorkflowBuilderPage(props: WorkflowBuilderPageProps): JSXElement;
443
+
444
+ /**
445
+ * @module CssSolidWorkflowRunsPage
446
+ * @package @geenius/ai-workflow-solidjs-css
447
+ * @description Plain-CSS SolidJS page for browsing stored workflow runs. This
448
+ * page keeps the run list keyboard-accessible while mirroring the Tailwind surface.
449
+ */
450
+
451
+ /**
452
+ * Props for the plain-CSS SolidJS workflow runs page.
453
+ *
454
+ * @property runs Workflow runs to display.
455
+ * @property onSelectRun Optional callback fired when a run card is selected.
456
+ * @property class Optional class name override for outer layout composition.
457
+ */
458
+ interface WorkflowRunsPageProps {
459
+ runs: WorkflowRun[];
460
+ onSelectRun?: (id: string) => void;
461
+ class?: string;
462
+ }
463
+ /**
464
+ * Render a browsable list of stored workflow runs in the plain-CSS SolidJS surface.
465
+ *
466
+ * @param props Run collection and optional selection callback.
467
+ * @returns The workflow runs page.
468
+ */
469
+ declare function WorkflowRunsPage(props: WorkflowRunsPageProps): JSX.Element;
470
+
471
+ export { ApprovalModal, type ApprovalModalProps, type ApprovalRequest, type CreateWorkflowOptions, StepConfigPanel, type StepConfigPanelProps, StepConnector, StepNode, type StepNodeProps, StepPalette, type StepPaletteProps, WorkflowBuilderPage, type WorkflowBuilderPageProps, WorkflowCanvas, WorkflowRunPanel, type WorkflowRunPanelProps, WorkflowRunsPage, type WorkflowRunsPageProps, WorkflowToolbar, createApprovalGate, createWorkflow, createWorkflowBuilder, createWorkflowRun, createWorkflowStep, createWorkflowTemplates };