@flowdrop/flowdrop 2.0.0-beta.1 → 2.0.0-beta.3
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/CHANGELOG.md +67 -0
- package/MIGRATION-2.0.md +173 -3
- package/dist/api/enhanced-client.js +6 -11
- package/dist/components/App.svelte +22 -45
- package/dist/components/App.svelte.d.ts +2 -7
- package/dist/components/CanvasIconButton.svelte +76 -0
- package/dist/components/CanvasIconButton.svelte.d.ts +18 -0
- package/dist/components/ConfigForm.svelte +6 -21
- package/dist/components/ConfigPanel.svelte +4 -3
- package/dist/components/LogoWordmark.svelte +113 -0
- package/dist/components/LogoWordmark.svelte.d.ts +26 -0
- package/dist/components/Navbar.svelte +8 -59
- package/dist/components/NodeSidebar.svelte +4 -11
- package/dist/components/NodeSwapPicker.svelte +0 -2
- package/dist/components/PipelineStatus.svelte +6 -1
- package/dist/components/PipelineStatus.svelte.d.ts +3 -0
- package/dist/components/PortMappingRow.svelte +0 -2
- package/dist/components/SchemaForm.svelte +4 -14
- package/dist/components/SettingsModal.svelte +0 -5
- package/dist/components/SettingsPanel.svelte +2 -6
- package/dist/components/ThemeToggle.svelte +0 -5
- package/dist/components/UniversalNode.svelte +32 -1
- package/dist/components/WorkflowEditor.svelte +66 -52
- package/dist/components/WorkflowEditor.svelte.d.ts +21 -0
- package/dist/components/chat/AIChatPanel.svelte +7 -2
- package/dist/components/console/ConsoleAutocomplete.svelte +1 -1
- package/dist/components/console/ConsoleOutput.svelte +2 -2
- package/dist/components/form/FormArray.svelte +0 -16
- package/dist/components/form/FormAutocomplete.svelte +18 -15
- package/dist/components/form/FormCheckboxGroup.svelte +0 -4
- package/dist/components/form/FormCodeEditor.svelte +9 -7
- package/dist/components/form/FormFieldLight.svelte +33 -4
- package/dist/components/form/FormFieldLight.svelte.d.ts +12 -0
- package/dist/components/form/FormMarkdownEditor.svelte +8 -5
- package/dist/components/form/FormNumberField.svelte +0 -4
- package/dist/components/form/FormRangeField.svelte +1 -20
- package/dist/components/form/FormSelect.svelte +10 -6
- package/dist/components/form/FormTemplateEditor.svelte +6 -4
- package/dist/components/form/FormTextField.svelte +10 -6
- package/dist/components/form/FormTextarea.svelte +10 -6
- package/dist/components/form/FormToggle.svelte +0 -4
- package/dist/components/form/FormUISchemaRenderer.svelte +3 -1
- package/dist/components/icons/CommandLineIcon.svelte +15 -0
- package/dist/components/icons/CommandLineIcon.svelte.d.ts +26 -0
- package/dist/components/icons/MenuIcon.svelte +4 -0
- package/dist/components/icons/MenuIcon.svelte.d.ts +26 -0
- package/dist/components/icons/MenuOpenIcon.svelte +6 -0
- package/dist/components/icons/MenuOpenIcon.svelte.d.ts +26 -0
- package/dist/components/interrupt/ChoicePrompt.svelte +0 -10
- package/dist/components/interrupt/ConfirmationPrompt.svelte +0 -5
- package/dist/components/interrupt/InterruptBubble.svelte +11 -12
- package/dist/components/interrupt/ReviewPrompt.svelte +0 -20
- package/dist/components/interrupt/TextInputPrompt.svelte +0 -6
- package/dist/components/layouts/MainLayout.svelte +4 -5
- package/dist/components/nodes/AtomNode.svelte +46 -34
- package/dist/components/nodes/GatewayNode.svelte +91 -99
- package/dist/components/nodes/IdeaNode.svelte +62 -90
- package/dist/components/nodes/NodeConfigButton.svelte +86 -0
- package/dist/components/nodes/NodeConfigButton.svelte.d.ts +15 -0
- package/dist/components/nodes/NotesNode.svelte +70 -81
- package/dist/components/nodes/SimpleNode.svelte +28 -78
- package/dist/components/nodes/SquareNode.svelte +79 -109
- package/dist/components/nodes/TerminalNode.svelte +28 -86
- package/dist/components/nodes/ToolNode.svelte +82 -95
- package/dist/components/nodes/WorkflowNode.svelte +91 -100
- package/dist/components/playground/ChatInput.svelte +0 -1
- package/dist/components/playground/InputCollector.svelte +0 -2
- package/dist/components/playground/PipelineKanbanView.svelte +4 -2
- package/dist/components/playground/PipelineKanbanView.svelte.d.ts +2 -0
- package/dist/components/playground/PipelinePanel.svelte +20 -3
- package/dist/components/playground/PipelinePanel.svelte.d.ts +2 -0
- package/dist/components/playground/PipelineTableView.svelte +4 -2
- package/dist/components/playground/PipelineTableView.svelte.d.ts +2 -0
- package/dist/components/playground/Playground.svelte +76 -25
- package/dist/components/playground/Playground.svelte.d.ts +3 -0
- package/dist/components/playground/PlaygroundApp.svelte +6 -1
- package/dist/components/playground/PlaygroundApp.svelte.d.ts +3 -0
- package/dist/components/playground/PlaygroundModal.svelte +5 -0
- package/dist/components/playground/PlaygroundModal.svelte.d.ts +3 -0
- package/dist/components/playground/PlaygroundStudio.svelte +7 -6
- package/dist/components/playground/PlaygroundStudio.svelte.d.ts +3 -0
- package/dist/components/playground/pipelineViewUtils.svelte.d.ts +2 -1
- package/dist/components/playground/pipelineViewUtils.svelte.js +2 -2
- package/dist/config/endpoints.d.ts +23 -0
- package/dist/config/endpoints.js +28 -0
- package/dist/core/index.d.ts +1 -2
- package/dist/core/index.js +2 -6
- package/dist/display/index.d.ts +6 -1
- package/dist/display/index.js +9 -1
- package/dist/editor/index.d.ts +1 -1
- package/dist/editor/index.js +1 -1
- package/dist/form/full.d.ts +2 -1
- package/dist/form/full.js +4 -1
- package/dist/form/index.d.ts +0 -1
- package/dist/form/index.js +3 -2
- package/dist/helpers/workflowEditorHelper.d.ts +4 -2
- package/dist/helpers/workflowEditorHelper.js +4 -3
- package/dist/playground/index.d.ts +2 -2
- package/dist/playground/index.js +2 -2
- package/dist/playground/mount.d.ts +19 -5
- package/dist/playground/mount.js +16 -8
- package/dist/registry/builtinNodeTypes.d.ts +53 -0
- package/dist/registry/builtinNodeTypes.js +67 -0
- package/dist/registry/builtinNodes.d.ts +2 -39
- package/dist/registry/builtinNodes.js +6 -53
- package/dist/services/agentSpecExecutionService.d.ts +0 -2
- package/dist/services/agentSpecExecutionService.js +0 -2
- package/dist/services/apiVariableService.js +12 -26
- package/dist/services/categoriesApi.js +3 -6
- package/dist/services/chatService.d.ts +4 -3
- package/dist/services/chatService.js +13 -18
- package/dist/services/interruptService.d.ts +7 -6
- package/dist/services/interruptService.js +19 -21
- package/dist/services/playgroundService.d.ts +9 -8
- package/dist/services/playgroundService.js +23 -25
- package/dist/services/portConfigApi.js +3 -6
- package/dist/services/settingsService.d.ts +9 -4
- package/dist/services/settingsService.js +23 -12
- package/dist/skins/drafter.d.ts +30 -0
- package/dist/skins/drafter.js +185 -0
- package/dist/skins/index.d.ts +2 -1
- package/dist/skins/index.js +4 -2
- package/dist/stores/apiContext.d.ts +11 -0
- package/dist/stores/apiContext.js +15 -0
- package/dist/stores/categoriesStore.svelte.js +0 -1
- package/dist/stores/playgroundStore.svelte.js +0 -2
- package/dist/styles/base.css +38 -9
- package/dist/styles/tokens.css +54 -2
- package/dist/svelte-app.d.ts +6 -0
- package/dist/svelte-app.js +4 -2
- package/dist/themes/drafter.d.ts +2 -0
- package/dist/themes/drafter.js +15 -0
- package/dist/themes/index.d.ts +2 -1
- package/dist/themes/index.js +8 -2
- package/dist/types/auth.d.ts +9 -51
- package/dist/types/auth.js +4 -54
- package/dist/types/events.d.ts +18 -0
- package/dist/types/events.js +2 -1
- package/dist/types/index.d.ts +4 -2
- package/dist/types/index.js +0 -1
- package/dist/types/settings.d.ts +1 -1
- package/dist/types/settings.js +1 -1
- package/dist/types/skin.d.ts +1 -1
- package/dist/types/theme.d.ts +16 -2
- package/dist/utils/edgeStyling.js +9 -5
- package/dist/utils/fetchWithAuth.d.ts +36 -15
- package/dist/utils/fetchWithAuth.js +53 -23
- package/dist/utils/nodeTypes.js +1 -1
- package/package.json +2 -1
package/dist/config/endpoints.js
CHANGED
|
@@ -141,3 +141,31 @@ export function getEndpointHeaders(config, endpointKey) {
|
|
|
141
141
|
}
|
|
142
142
|
return baseHeaders;
|
|
143
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Build request headers for an endpoint, layering the auth provider's headers
|
|
146
|
+
* over the static endpoint headers.
|
|
147
|
+
*
|
|
148
|
+
* This is the single header-building path shared by the per-instance services
|
|
149
|
+
* (playground, chat, interrupt, settings, port config, categories). Routing all
|
|
150
|
+
* of them through this helper guarantees a configured {@link AuthProvider}
|
|
151
|
+
* authenticates every request consistently — matching the behaviour of
|
|
152
|
+
* {@link EnhancedFlowDropApiClient}, which owns the equivalent merge for the
|
|
153
|
+
* typed workflow/node API.
|
|
154
|
+
*
|
|
155
|
+
* `getAuthHeaders()` is awaited per call so providers can return freshly
|
|
156
|
+
* refreshed tokens. When no provider is supplied the result is identical to
|
|
157
|
+
* {@link getEndpointHeaders} (no auth) — keeping unauthenticated callers
|
|
158
|
+
* working unchanged.
|
|
159
|
+
*
|
|
160
|
+
* @param config - The endpoint configuration
|
|
161
|
+
* @param endpointKey - Key identifying the endpoint (for static header lookup)
|
|
162
|
+
* @param authProvider - Optional auth provider supplying `Authorization` etc.
|
|
163
|
+
* @returns Merged headers: static endpoint headers < auth headers
|
|
164
|
+
*/
|
|
165
|
+
export async function getRequestHeaders(config, endpointKey, authProvider) {
|
|
166
|
+
const headers = getEndpointHeaders(config, endpointKey);
|
|
167
|
+
if (authProvider) {
|
|
168
|
+
Object.assign(headers, await authProvider.getAuthHeaders());
|
|
169
|
+
}
|
|
170
|
+
return headers;
|
|
171
|
+
}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -68,7 +68,7 @@ export { computeAutoLayout } from '../adapters/agentspec/autoLayout.js';
|
|
|
68
68
|
export type { AutoLayoutConfig } from '../adapters/agentspec/autoLayout.js';
|
|
69
69
|
export type { AgentSpecEndpointConfig } from '../config/agentSpecEndpoints.js';
|
|
70
70
|
export { defaultAgentSpecEndpoints, createAgentSpecEndpointConfig, buildAgentSpecUrl, getAgentSpecAuthHeaders } from '../config/agentSpecEndpoints.js';
|
|
71
|
-
export { AgentSpecExecutionService
|
|
71
|
+
export { AgentSpecExecutionService } from '../services/agentSpecExecutionService.js';
|
|
72
72
|
export type { AgentSpecExecutionHandle } from '../services/agentSpecExecutionService.js';
|
|
73
73
|
export { workflowSchema, WORKFLOW_SCHEMA_VERSION } from '../schemas/index.js';
|
|
74
74
|
export type { FlowDropTheme, FlowDropThemeName, FlowDropThemeConfig } from '../types/theme.js';
|
|
@@ -77,7 +77,6 @@ export type { FlowDropSkin, FlowDropSkinName, FlowDropSkinTokens } from '../type
|
|
|
77
77
|
export { slateSkin, defaultSkin } from '../skins/index.js';
|
|
78
78
|
export type { ThemePreference, ResolvedTheme } from '../stores/settingsStore.svelte.js';
|
|
79
79
|
export { getTheme as theme, getResolvedTheme as resolvedTheme, setTheme, toggleTheme, cycleTheme, initializeTheme, isThemeInitialized } from '../stores/settingsStore.svelte.js';
|
|
80
|
-
export { sanitizeHtml } from '../utils/sanitize.js';
|
|
81
80
|
export { logger, setLogLevel, getLogLevel } from '../utils/logger.js';
|
|
82
81
|
export type { LogLevel } from '../utils/logger.js';
|
|
83
82
|
export { computeSwapPreview, computeSwapPreviewWithOptions, executeSwap, mapConfig, getVersionUpgrade, compareSemver, performSwap, validateSwapResult, SwapValidationError } from '../utils/nodeSwap.js';
|
package/dist/core/index.js
CHANGED
|
@@ -80,8 +80,8 @@ export { validateForAgentSpecExport, validateAgentSpecFlow } from '../adapters/a
|
|
|
80
80
|
// Agent Spec auto-layout
|
|
81
81
|
export { computeAutoLayout } from '../adapters/agentspec/autoLayout.js';
|
|
82
82
|
export { defaultAgentSpecEndpoints, createAgentSpecEndpointConfig, buildAgentSpecUrl, getAgentSpecAuthHeaders } from '../config/agentSpecEndpoints.js';
|
|
83
|
-
// Agent Spec execution service
|
|
84
|
-
export { AgentSpecExecutionService
|
|
83
|
+
// Agent Spec execution service (instantiate per instance — no global singleton)
|
|
84
|
+
export { AgentSpecExecutionService } from '../services/agentSpecExecutionService.js';
|
|
85
85
|
// ============================================================================
|
|
86
86
|
// Workflow JSON Schema
|
|
87
87
|
// ============================================================================
|
|
@@ -90,10 +90,6 @@ export { defaultTheme, minimalTheme, resolveTheme } from '../themes/index.js';
|
|
|
90
90
|
export { slateSkin, defaultSkin } from '../skins/index.js';
|
|
91
91
|
export { getTheme as theme, getResolvedTheme as resolvedTheme, setTheme, toggleTheme, cycleTheme, initializeTheme, isThemeInitialized } from '../stores/settingsStore.svelte.js';
|
|
92
92
|
// ============================================================================
|
|
93
|
-
// HTML Sanitization
|
|
94
|
-
// ============================================================================
|
|
95
|
-
export { sanitizeHtml } from '../utils/sanitize.js';
|
|
96
|
-
// ============================================================================
|
|
97
93
|
// Logger
|
|
98
94
|
// ============================================================================
|
|
99
95
|
export { logger, setLogLevel, getLogLevel } from '../utils/logger.js';
|
package/dist/display/index.d.ts
CHANGED
|
@@ -5,9 +5,13 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @module display
|
|
7
7
|
*
|
|
8
|
+
* This entry renders user/API-provided HTML, so it pulls in the HTML sanitizer
|
|
9
|
+
* (DOMPurify). `sanitizeHtml` is exposed here — rather than from
|
|
10
|
+
* `@flowdrop/flowdrop/core` — to keep `core` free of that heavier dependency.
|
|
11
|
+
*
|
|
8
12
|
* @example
|
|
9
13
|
* ```typescript
|
|
10
|
-
* import { MarkdownDisplay } from "@flowdrop/flowdrop/display";
|
|
14
|
+
* import { MarkdownDisplay, sanitizeHtml } from "@flowdrop/flowdrop/display";
|
|
11
15
|
* ```
|
|
12
16
|
*
|
|
13
17
|
* @example In Svelte:
|
|
@@ -25,3 +29,4 @@
|
|
|
25
29
|
* ```
|
|
26
30
|
*/
|
|
27
31
|
export { default as MarkdownDisplay } from '../components/MarkdownDisplay.svelte';
|
|
32
|
+
export { sanitizeHtml } from '../utils/sanitize.js';
|
package/dist/display/index.js
CHANGED
|
@@ -5,9 +5,13 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @module display
|
|
7
7
|
*
|
|
8
|
+
* This entry renders user/API-provided HTML, so it pulls in the HTML sanitizer
|
|
9
|
+
* (DOMPurify). `sanitizeHtml` is exposed here — rather than from
|
|
10
|
+
* `@flowdrop/flowdrop/core` — to keep `core` free of that heavier dependency.
|
|
11
|
+
*
|
|
8
12
|
* @example
|
|
9
13
|
* ```typescript
|
|
10
|
-
* import { MarkdownDisplay } from "@flowdrop/flowdrop/display";
|
|
14
|
+
* import { MarkdownDisplay, sanitizeHtml } from "@flowdrop/flowdrop/display";
|
|
11
15
|
* ```
|
|
12
16
|
*
|
|
13
17
|
* @example In Svelte:
|
|
@@ -28,3 +32,7 @@
|
|
|
28
32
|
// Display Components
|
|
29
33
|
// ============================================================================
|
|
30
34
|
export { default as MarkdownDisplay } from '../components/MarkdownDisplay.svelte';
|
|
35
|
+
// ============================================================================
|
|
36
|
+
// HTML Sanitization (DOMPurify-backed — lives here, not in core)
|
|
37
|
+
// ============================================================================
|
|
38
|
+
export { sanitizeHtml } from '../utils/sanitize.js';
|
package/dist/editor/index.d.ts
CHANGED
|
@@ -74,7 +74,7 @@ export { PortCoordinateStore } from '../stores/portCoordinateStore.svelte.js';
|
|
|
74
74
|
export { HistoryService } from '../services/historyService.js';
|
|
75
75
|
export type { HistoryEntry, HistoryState, PushOptions } from '../stores/historyStore.svelte.js';
|
|
76
76
|
export { showSuccess, showError, showWarning, showInfo, showLoading, dismissToast, dismissAllToasts, showPromise, showConfirmation, apiToasts, workflowToasts, pipelineToasts } from '../services/toastService.js';
|
|
77
|
-
export { NodeExecutionService
|
|
77
|
+
export { NodeExecutionService } from '../services/nodeExecutionService.js';
|
|
78
78
|
export { saveWorkflow, updateWorkflow, getWorkflow, getWorkflows, deleteWorkflow, getWorkflowCount, initializeSampleWorkflows } from '../services/workflowStorage.js';
|
|
79
79
|
export { globalSaveWorkflow, globalExportWorkflow } from '../services/globalSave.js';
|
|
80
80
|
export { fetchPortConfig, validatePortConfig } from '../services/portConfigApi.js';
|
package/dist/editor/index.js
CHANGED
|
@@ -109,7 +109,7 @@ export { HistoryService } from '../services/historyService.js';
|
|
|
109
109
|
// Services
|
|
110
110
|
// ============================================================================
|
|
111
111
|
export { showSuccess, showError, showWarning, showInfo, showLoading, dismissToast, dismissAllToasts, showPromise, showConfirmation, apiToasts, workflowToasts, pipelineToasts } from '../services/toastService.js';
|
|
112
|
-
export { NodeExecutionService
|
|
112
|
+
export { NodeExecutionService } from '../services/nodeExecutionService.js';
|
|
113
113
|
export { saveWorkflow, updateWorkflow, getWorkflow, getWorkflows, deleteWorkflow, getWorkflowCount, initializeSampleWorkflows } from '../services/workflowStorage.js';
|
|
114
114
|
export { globalSaveWorkflow, globalExportWorkflow } from '../services/globalSave.js';
|
|
115
115
|
export { fetchPortConfig, validatePortConfig } from '../services/portConfigApi.js';
|
package/dist/form/full.d.ts
CHANGED
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
* // Now all field types are available
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
|
-
export {
|
|
23
|
+
export { default as FormFieldFull } from '../components/form/FormField.svelte';
|
|
24
|
+
export { SchemaForm, FormField, FormFieldWrapper, FormTextField, FormTextarea, FormNumberField, FormRangeField, FormToggle, FormSelect, FormCheckboxGroup, FormArray, FormFieldset, FormUISchemaRenderer } from './index.js';
|
|
24
25
|
export type { FieldSchema, FieldType, FieldFormat, FieldOption, OneOfItem, SchemaFormProps, BaseFieldProps, TextFieldProps, TextareaFieldProps, NumberFieldProps, ToggleFieldProps, RangeFieldProps, SelectFieldProps, CheckboxGroupFieldProps, ArrayFieldProps, FormFieldFactoryProps, FormFieldWrapperProps, FieldComponentProps, FieldMatcher, FieldMatcherRegistration, FieldComponent, FieldComponentRegistration } from './index.js';
|
|
25
26
|
export { isFieldOptionArray, isOneOfArray, normalizeOptions, oneOfToOptions, getSchemaOptions } from './index.js';
|
|
26
27
|
export { FieldComponentRegistry, hiddenFieldMatcher, checkboxGroupMatcher, enumSelectMatcher, textareaMatcher, rangeMatcher, textFieldMatcher, numberFieldMatcher, toggleMatcher, selectOptionsMatcher, arrayMatcher } from './index.js';
|
package/dist/form/full.js
CHANGED
|
@@ -21,8 +21,11 @@
|
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
23
|
// Re-export everything from the light form module
|
|
24
|
+
// The "everything statically bundled" FormField variant lives here (this is the
|
|
25
|
+
// heavy entry), not in the light `@flowdrop/flowdrop/form`.
|
|
26
|
+
export { default as FormFieldFull } from '../components/form/FormField.svelte';
|
|
24
27
|
// Components
|
|
25
|
-
export { SchemaForm, FormField,
|
|
28
|
+
export { SchemaForm, FormField, FormFieldWrapper, FormTextField, FormTextarea, FormNumberField, FormRangeField, FormToggle, FormSelect, FormCheckboxGroup, FormArray, FormFieldset, FormUISchemaRenderer } from './index.js';
|
|
26
29
|
// Utility functions
|
|
27
30
|
export { isFieldOptionArray, isOneOfArray, normalizeOptions, oneOfToOptions, getSchemaOptions } from './index.js';
|
|
28
31
|
// Field Registry
|
package/dist/form/index.d.ts
CHANGED
|
@@ -59,7 +59,6 @@
|
|
|
59
59
|
*/
|
|
60
60
|
export { default as SchemaForm } from '../components/SchemaForm.svelte';
|
|
61
61
|
export { default as FormField } from '../components/form/FormFieldLight.svelte';
|
|
62
|
-
export { default as FormFieldFull } from '../components/form/FormField.svelte';
|
|
63
62
|
export { default as FormFieldWrapper } from '../components/form/FormFieldWrapper.svelte';
|
|
64
63
|
export { default as FormTextField } from '../components/form/FormTextField.svelte';
|
|
65
64
|
export { default as FormTextarea } from '../components/form/FormTextarea.svelte';
|
package/dist/form/index.js
CHANGED
|
@@ -66,8 +66,9 @@ export { default as SchemaForm } from '../components/SchemaForm.svelte';
|
|
|
66
66
|
// ============================================================================
|
|
67
67
|
// Use the light version of FormField that uses the registry for heavy editors
|
|
68
68
|
export { default as FormField } from '../components/form/FormFieldLight.svelte';
|
|
69
|
-
//
|
|
70
|
-
|
|
69
|
+
// NOTE: `FormFieldFull` — the variant that *statically* bundles every editor
|
|
70
|
+
// (including CodeMirror) — is intentionally NOT exported here; it would pull
|
|
71
|
+
// CodeMirror into this light entry. Import it from `@flowdrop/flowdrop/form/full`.
|
|
71
72
|
export { default as FormFieldWrapper } from '../components/form/FormFieldWrapper.svelte';
|
|
72
73
|
export { default as FormTextField } from '../components/form/FormTextField.svelte';
|
|
73
74
|
export { default as FormTextarea } from '../components/form/FormTextarea.svelte';
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import type { WorkflowNode as WorkflowNodeType, NodeMetadata, Workflow, WorkflowEdge, NodeExecutionInfo } from '../types/index.js';
|
|
6
6
|
import { type FlowDropInstance } from '../stores/instanceContainer.svelte.js';
|
|
7
7
|
import type { ApiContext } from '../stores/apiContext.js';
|
|
8
|
+
import type { AuthProvider } from '../types/auth.js';
|
|
8
9
|
import type { EndpointConfig } from '../config/endpoints.js';
|
|
9
10
|
export { generateNodeId, extractConfigDefaults } from '../utils/nodeIds.js';
|
|
10
11
|
/**
|
|
@@ -134,7 +135,8 @@ export declare class WorkflowOperationsHelper {
|
|
|
134
135
|
*/
|
|
135
136
|
export declare class ConfigurationHelper {
|
|
136
137
|
/**
|
|
137
|
-
* Configure API endpoints
|
|
138
|
+
* Configure API endpoints (and optionally the auth provider) on the given
|
|
139
|
+
* instance's API context.
|
|
138
140
|
*/
|
|
139
|
-
static configureEndpoints(api: ApiContext, config: EndpointConfig): void;
|
|
141
|
+
static configureEndpoints(api: ApiContext, config: EndpointConfig, authProvider?: AuthProvider): void;
|
|
140
142
|
}
|
|
@@ -382,9 +382,10 @@ export class WorkflowOperationsHelper {
|
|
|
382
382
|
*/
|
|
383
383
|
export class ConfigurationHelper {
|
|
384
384
|
/**
|
|
385
|
-
* Configure API endpoints
|
|
385
|
+
* Configure API endpoints (and optionally the auth provider) on the given
|
|
386
|
+
* instance's API context.
|
|
386
387
|
*/
|
|
387
|
-
static configureEndpoints(api, config) {
|
|
388
|
-
api.configure(config);
|
|
388
|
+
static configureEndpoints(api, config, authProvider) {
|
|
389
|
+
api.configure(config, authProvider);
|
|
389
390
|
}
|
|
390
391
|
}
|
|
@@ -126,8 +126,8 @@ export { default as InputCollector } from '../components/playground/InputCollect
|
|
|
126
126
|
export { default as ExecutionLogs } from '../components/playground/ExecutionLogs.svelte';
|
|
127
127
|
export { default as MessageBubble } from '../components/playground/MessageBubble.svelte';
|
|
128
128
|
export { InterruptBubble, ConfirmationPrompt, ChoicePrompt, TextInputPrompt, FormPrompt, ReviewPrompt } from '../components/interrupt/index.js';
|
|
129
|
-
export { PlaygroundService
|
|
130
|
-
export { InterruptService
|
|
129
|
+
export { PlaygroundService } from '../services/playgroundService.js';
|
|
130
|
+
export { InterruptService } from '../services/interruptService.js';
|
|
131
131
|
export { PlaygroundStore } from '../stores/playgroundStore.svelte.js';
|
|
132
132
|
export type { PlaygroundSession, PlaygroundMessage, PlaygroundInputField, PlaygroundMessageRequest, PlaygroundMessagesResult, PlaygroundConfig, PlaygroundMode, PlaygroundSessionStatus, PlaygroundMessageRole, PlaygroundMessageLevel, PlaygroundMessageMetadata, PlaygroundApiResponse, PlaygroundSessionsResponse, PlaygroundSessionResponse, PlaygroundMessageResponse, PlaygroundMessagesApiResponse, PlaygroundExecution } from '../types/playground.js';
|
|
133
133
|
export { isChatInputNode, CHAT_INPUT_PATTERNS, defaultShouldStopPolling, defaultIsTerminalStatus, DEFAULT_STOP_POLLING_STATUSES, DEFAULT_TERMINAL_STATUSES } from '../types/playground.js';
|
package/dist/playground/index.js
CHANGED
|
@@ -135,11 +135,11 @@ export { InterruptBubble, ConfirmationPrompt, ChoicePrompt, TextInputPrompt, For
|
|
|
135
135
|
// ============================================================================
|
|
136
136
|
// Playground Service
|
|
137
137
|
// ============================================================================
|
|
138
|
-
export { PlaygroundService
|
|
138
|
+
export { PlaygroundService } from '../services/playgroundService.js';
|
|
139
139
|
// ============================================================================
|
|
140
140
|
// Interrupt Service (Human-in-the-Loop)
|
|
141
141
|
// ============================================================================
|
|
142
|
-
export { InterruptService
|
|
142
|
+
export { InterruptService } from '../services/interruptService.js';
|
|
143
143
|
// ============================================================================
|
|
144
144
|
// Playground Store
|
|
145
145
|
// ============================================================================
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
*/
|
|
46
46
|
import type { Workflow } from '../types/index.js';
|
|
47
47
|
import type { EndpointConfig } from '../config/endpoints.js';
|
|
48
|
+
import type { AuthProvider } from '../types/auth.js';
|
|
48
49
|
import type { PlaygroundMode, PlaygroundConfig, PlaygroundSession, PlaygroundMessagesApiResponse, PlaygroundSessionStatus } from '../types/playground.js';
|
|
49
50
|
import type { PartialSettings, SettingsCategory } from '../types/settings.js';
|
|
50
51
|
import type { NavbarAction } from '../types/navbar.js';
|
|
@@ -81,6 +82,15 @@ export interface PlaygroundMountOptions {
|
|
|
81
82
|
* Use createEndpointConfig() to create this
|
|
82
83
|
*/
|
|
83
84
|
endpointConfig?: EndpointConfig;
|
|
85
|
+
/**
|
|
86
|
+
* Authentication provider for API requests.
|
|
87
|
+
*
|
|
88
|
+
* Applied to this instance via `fd.api.configure()` so every request the
|
|
89
|
+
* playground makes (sessions, messages, polling, interrupts) carries the
|
|
90
|
+
* provider's headers — e.g. an `Authorization` bearer token or an
|
|
91
|
+
* `X-CSRF-Token`. Omit for unauthenticated backends.
|
|
92
|
+
*/
|
|
93
|
+
authProvider?: AuthProvider;
|
|
84
94
|
/**
|
|
85
95
|
* Playground-specific configuration options
|
|
86
96
|
*/
|
|
@@ -242,7 +252,7 @@ export interface PlaygroundAppMountOptions extends Omit<PlaygroundStudioMountOpt
|
|
|
242
252
|
* @default "standalone"
|
|
243
253
|
*/
|
|
244
254
|
mode?: 'standalone' | 'embedded';
|
|
245
|
-
/** Render the FlowDrop Navbar above the playground (default:
|
|
255
|
+
/** Render the FlowDrop Navbar above the playground (default: false). */
|
|
246
256
|
showNavbar?: boolean;
|
|
247
257
|
/** Title shown in the navbar. Falls back to the workflow name, then "Playground". */
|
|
248
258
|
navbarTitle?: string;
|
|
@@ -258,17 +268,21 @@ export interface PlaygroundAppMountOptions extends Omit<PlaygroundStudioMountOpt
|
|
|
258
268
|
showSettingsResetButton?: boolean;
|
|
259
269
|
}
|
|
260
270
|
/**
|
|
261
|
-
* Mount the full-page PlaygroundApp (
|
|
271
|
+
* Mount the full-page PlaygroundApp (PlaygroundStudio, optionally wrapped in the
|
|
272
|
+
* FlowDrop Navbar) into a container.
|
|
262
273
|
*
|
|
263
|
-
*
|
|
264
|
-
*
|
|
265
|
-
*
|
|
274
|
+
* The navbar is opt-in (`showNavbar: true`) — matching the editor mount, so
|
|
275
|
+
* embedding into a page that already has its own header never double-stacks a
|
|
276
|
+
* header. Pass `showNavbar: true` when FlowDrop owns the whole page and you want
|
|
277
|
+
* its chrome (logo, branding, settings modal). For a leaner embeddable
|
|
278
|
+
* split-pane, mountPlaygroundStudio() omits the navbar wrapper entirely.
|
|
266
279
|
*
|
|
267
280
|
* @example
|
|
268
281
|
* ```typescript
|
|
269
282
|
* const app = await mountPlaygroundApp(container, {
|
|
270
283
|
* workflowId: 'wf-123',
|
|
271
284
|
* endpointConfig: createEndpointConfig('/api/flowdrop'),
|
|
285
|
+
* showNavbar: true,
|
|
272
286
|
* navbarTitle: 'My Workflow',
|
|
273
287
|
* primaryActions: [
|
|
274
288
|
* { label: 'Edit', href: '/workflows/wf-123/edit', icon: 'mdi:pencil-outline', variant: 'secondary' },
|
package/dist/playground/mount.js
CHANGED
|
@@ -125,7 +125,7 @@ function buildMountedPlayground(svelteApp, workflowId, config, fd, ownsInstance,
|
|
|
125
125
|
startPolling: () => {
|
|
126
126
|
const session = fd.playground.currentSession;
|
|
127
127
|
if (session) {
|
|
128
|
-
playgroundService.startPolling(fd.api.config, session.id, (response) => fd.playground.applyServerResponse(response, session.id), pollingInterval, config.shouldStopPolling, playgroundService.getLastSequenceNumber());
|
|
128
|
+
playgroundService.startPolling(fd.api.config, session.id, (response) => fd.playground.applyServerResponse(response, session.id), pollingInterval, config.shouldStopPolling, playgroundService.getLastSequenceNumber(), fd.api.authProvider);
|
|
129
129
|
}
|
|
130
130
|
},
|
|
131
131
|
pushMessages: (response) => fd.playground.applyServerResponse(response, null),
|
|
@@ -165,7 +165,7 @@ function buildMountedPlayground(svelteApp, workflowId, config, fd, ownsInstance,
|
|
|
165
165
|
* ```
|
|
166
166
|
*/
|
|
167
167
|
export async function mountPlayground(container, options) {
|
|
168
|
-
const { workflowId, workflow, mode = 'standalone', initialSessionId, endpointConfig, config = {}, height, width, settings: initialSettings, onClose, onSessionStatusChange, instanceId } = options;
|
|
168
|
+
const { workflowId, workflow, mode = 'standalone', initialSessionId, endpointConfig, authProvider, config = {}, height, width, settings: initialSettings, onClose, onSessionStatusChange, instanceId } = options;
|
|
169
169
|
// Validate required parameters
|
|
170
170
|
if (!workflowId) {
|
|
171
171
|
throw new Error('workflowId is required for mountPlayground()');
|
|
@@ -200,6 +200,7 @@ export async function mountPlayground(container, options) {
|
|
|
200
200
|
workflow,
|
|
201
201
|
initialSessionId,
|
|
202
202
|
endpointConfig: finalEndpointConfig,
|
|
203
|
+
authProvider,
|
|
203
204
|
config,
|
|
204
205
|
onClose: () => {
|
|
205
206
|
if (onClose) {
|
|
@@ -219,6 +220,7 @@ export async function mountPlayground(container, options) {
|
|
|
219
220
|
mode,
|
|
220
221
|
initialSessionId,
|
|
221
222
|
endpointConfig: finalEndpointConfig,
|
|
223
|
+
authProvider,
|
|
222
224
|
config,
|
|
223
225
|
onClose
|
|
224
226
|
}
|
|
@@ -247,7 +249,7 @@ export function unmountPlayground(app) {
|
|
|
247
249
|
}
|
|
248
250
|
}
|
|
249
251
|
export async function mountPlaygroundStudio(container, options) {
|
|
250
|
-
const { workflowId, workflow, mode = 'standalone', initialSessionId, endpointConfig, config = {}, height, width, initialPipelineOpen, minChatWidth, initialPipelineWidth, settings: initialSettings, onClose, onSessionNavigate, onSessionStatusChange, pipelineViews, instanceId } = options;
|
|
252
|
+
const { workflowId, workflow, mode = 'standalone', initialSessionId, endpointConfig, authProvider, config = {}, height, width, initialPipelineOpen, minChatWidth, initialPipelineWidth, settings: initialSettings, onClose, onSessionNavigate, onSessionStatusChange, pipelineViews, instanceId } = options;
|
|
251
253
|
if (!workflowId) {
|
|
252
254
|
throw new Error('workflowId is required for mountPlaygroundStudio()');
|
|
253
255
|
}
|
|
@@ -272,6 +274,7 @@ export async function mountPlaygroundStudio(container, options) {
|
|
|
272
274
|
mode,
|
|
273
275
|
initialSessionId,
|
|
274
276
|
endpointConfig: finalEndpointConfig,
|
|
277
|
+
authProvider,
|
|
275
278
|
config,
|
|
276
279
|
onClose,
|
|
277
280
|
onSessionNavigate,
|
|
@@ -284,17 +287,21 @@ export async function mountPlaygroundStudio(container, options) {
|
|
|
284
287
|
return buildMountedPlayground(svelteApp, workflowId, config, fd, ownsInstance, onSessionStatusChange);
|
|
285
288
|
}
|
|
286
289
|
/**
|
|
287
|
-
* Mount the full-page PlaygroundApp (
|
|
290
|
+
* Mount the full-page PlaygroundApp (PlaygroundStudio, optionally wrapped in the
|
|
291
|
+
* FlowDrop Navbar) into a container.
|
|
288
292
|
*
|
|
289
|
-
*
|
|
290
|
-
*
|
|
291
|
-
*
|
|
293
|
+
* The navbar is opt-in (`showNavbar: true`) — matching the editor mount, so
|
|
294
|
+
* embedding into a page that already has its own header never double-stacks a
|
|
295
|
+
* header. Pass `showNavbar: true` when FlowDrop owns the whole page and you want
|
|
296
|
+
* its chrome (logo, branding, settings modal). For a leaner embeddable
|
|
297
|
+
* split-pane, mountPlaygroundStudio() omits the navbar wrapper entirely.
|
|
292
298
|
*
|
|
293
299
|
* @example
|
|
294
300
|
* ```typescript
|
|
295
301
|
* const app = await mountPlaygroundApp(container, {
|
|
296
302
|
* workflowId: 'wf-123',
|
|
297
303
|
* endpointConfig: createEndpointConfig('/api/flowdrop'),
|
|
304
|
+
* showNavbar: true,
|
|
298
305
|
* navbarTitle: 'My Workflow',
|
|
299
306
|
* primaryActions: [
|
|
300
307
|
* { label: 'Edit', href: '/workflows/wf-123/edit', icon: 'mdi:pencil-outline', variant: 'secondary' },
|
|
@@ -304,7 +311,7 @@ export async function mountPlaygroundStudio(container, options) {
|
|
|
304
311
|
* ```
|
|
305
312
|
*/
|
|
306
313
|
export async function mountPlaygroundApp(container, options) {
|
|
307
|
-
const { workflowId, workflow, mode = 'standalone', initialSessionId, endpointConfig, config = {}, height, width, showNavbar =
|
|
314
|
+
const { workflowId, workflow, mode = 'standalone', initialSessionId, endpointConfig, authProvider, config = {}, height, width, showNavbar = false, navbarTitle, primaryActions, showSettings = true, settingsCategories, showSettingsSyncButton, showSettingsResetButton, initialPipelineOpen, minChatWidth, initialPipelineWidth, settings: initialSettings, onClose, onSessionNavigate, onSessionStatusChange, instanceId } = options;
|
|
308
315
|
if (!workflowId) {
|
|
309
316
|
throw new Error('workflowId is required for mountPlaygroundApp()');
|
|
310
317
|
}
|
|
@@ -332,6 +339,7 @@ export async function mountPlaygroundApp(container, options) {
|
|
|
332
339
|
mode,
|
|
333
340
|
initialSessionId,
|
|
334
341
|
endpointConfig: finalEndpointConfig,
|
|
342
|
+
authProvider,
|
|
335
343
|
config,
|
|
336
344
|
showNavbar,
|
|
337
345
|
navbarTitle,
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in Node Type Metadata (pure — no component imports)
|
|
3
|
+
*
|
|
4
|
+
* The type identifiers, aliases, and resolution helpers for FlowDrop's built-in
|
|
5
|
+
* node types, with ZERO dependency on the Svelte node components. Utilities that
|
|
6
|
+
* only need to reason about type strings (e.g. `utils/nodeTypes.ts`, reachable
|
|
7
|
+
* from `@flowdrop/flowdrop/core`) import from here, so the lightweight `core`
|
|
8
|
+
* entry never statically pulls in node components, marked, or DOMPurify.
|
|
9
|
+
*
|
|
10
|
+
* The component registrations themselves live in `./builtinNodes.ts`, which
|
|
11
|
+
* re-exports everything here for backward compatibility.
|
|
12
|
+
*
|
|
13
|
+
* @module registry/builtinNodeTypes
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Source identifier for built-in FlowDrop components.
|
|
17
|
+
*/
|
|
18
|
+
export declare const FLOWDROP_SOURCE = "flowdrop";
|
|
19
|
+
/**
|
|
20
|
+
* Type for built-in node types.
|
|
21
|
+
* Use this when you specifically need a built-in type.
|
|
22
|
+
*/
|
|
23
|
+
export type BuiltinNodeType = 'workflowNode' | 'simple' | 'square' | 'atom' | 'tool' | 'gateway' | 'note' | 'terminal' | 'idea';
|
|
24
|
+
/**
|
|
25
|
+
* Array of built-in type strings for runtime validation.
|
|
26
|
+
*/
|
|
27
|
+
export declare const BUILTIN_NODE_TYPES: BuiltinNodeType[];
|
|
28
|
+
/**
|
|
29
|
+
* Alias mapping for type resolution.
|
|
30
|
+
* Maps alternative type names to their canonical registration.
|
|
31
|
+
*/
|
|
32
|
+
export declare const BUILTIN_TYPE_ALIASES: Record<string, string>;
|
|
33
|
+
/**
|
|
34
|
+
* Get the canonical type for a given type string.
|
|
35
|
+
* Handles aliases like "default" -> "workflowNode".
|
|
36
|
+
*
|
|
37
|
+
* @param type - The type string to resolve
|
|
38
|
+
* @returns The canonical type string
|
|
39
|
+
*/
|
|
40
|
+
export declare function resolveBuiltinAlias(type: string): string;
|
|
41
|
+
/**
|
|
42
|
+
* Check if a type is a built-in FlowDrop type.
|
|
43
|
+
*
|
|
44
|
+
* @param type - The type to check
|
|
45
|
+
* @returns true if this is a built-in type
|
|
46
|
+
*/
|
|
47
|
+
export declare function isBuiltinType(type: string): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Get all built-in type identifiers.
|
|
50
|
+
*
|
|
51
|
+
* @returns Array of built-in type strings
|
|
52
|
+
*/
|
|
53
|
+
export declare function getBuiltinTypes(): string[];
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in Node Type Metadata (pure — no component imports)
|
|
3
|
+
*
|
|
4
|
+
* The type identifiers, aliases, and resolution helpers for FlowDrop's built-in
|
|
5
|
+
* node types, with ZERO dependency on the Svelte node components. Utilities that
|
|
6
|
+
* only need to reason about type strings (e.g. `utils/nodeTypes.ts`, reachable
|
|
7
|
+
* from `@flowdrop/flowdrop/core`) import from here, so the lightweight `core`
|
|
8
|
+
* entry never statically pulls in node components, marked, or DOMPurify.
|
|
9
|
+
*
|
|
10
|
+
* The component registrations themselves live in `./builtinNodes.ts`, which
|
|
11
|
+
* re-exports everything here for backward compatibility.
|
|
12
|
+
*
|
|
13
|
+
* @module registry/builtinNodeTypes
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Source identifier for built-in FlowDrop components.
|
|
17
|
+
*/
|
|
18
|
+
export const FLOWDROP_SOURCE = 'flowdrop';
|
|
19
|
+
/**
|
|
20
|
+
* Array of built-in type strings for runtime validation.
|
|
21
|
+
*/
|
|
22
|
+
export const BUILTIN_NODE_TYPES = [
|
|
23
|
+
'workflowNode',
|
|
24
|
+
'simple',
|
|
25
|
+
'square',
|
|
26
|
+
'atom',
|
|
27
|
+
'tool',
|
|
28
|
+
'gateway',
|
|
29
|
+
'note',
|
|
30
|
+
'terminal',
|
|
31
|
+
'idea'
|
|
32
|
+
];
|
|
33
|
+
/**
|
|
34
|
+
* Alias mapping for type resolution.
|
|
35
|
+
* Maps alternative type names to their canonical registration.
|
|
36
|
+
*/
|
|
37
|
+
export const BUILTIN_TYPE_ALIASES = {
|
|
38
|
+
default: 'workflowNode'
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Get the canonical type for a given type string.
|
|
42
|
+
* Handles aliases like "default" -> "workflowNode".
|
|
43
|
+
*
|
|
44
|
+
* @param type - The type string to resolve
|
|
45
|
+
* @returns The canonical type string
|
|
46
|
+
*/
|
|
47
|
+
export function resolveBuiltinAlias(type) {
|
|
48
|
+
return BUILTIN_TYPE_ALIASES[type] ?? type;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Check if a type is a built-in FlowDrop type.
|
|
52
|
+
*
|
|
53
|
+
* @param type - The type to check
|
|
54
|
+
* @returns true if this is a built-in type
|
|
55
|
+
*/
|
|
56
|
+
export function isBuiltinType(type) {
|
|
57
|
+
const canonicalType = resolveBuiltinAlias(type);
|
|
58
|
+
return BUILTIN_NODE_TYPES.includes(canonicalType);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get all built-in type identifiers.
|
|
62
|
+
*
|
|
63
|
+
* @returns Array of built-in type strings
|
|
64
|
+
*/
|
|
65
|
+
export function getBuiltinTypes() {
|
|
66
|
+
return [...BUILTIN_NODE_TYPES];
|
|
67
|
+
}
|
|
@@ -6,47 +6,10 @@
|
|
|
6
6
|
* ensuring all built-in node types are available without user action.
|
|
7
7
|
*/
|
|
8
8
|
import { type NodeComponentRegistration } from './nodeComponentRegistry.js';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*/
|
|
12
|
-
export declare const FLOWDROP_SOURCE = "flowdrop";
|
|
9
|
+
export { FLOWDROP_SOURCE, BUILTIN_TYPE_ALIASES, BUILTIN_NODE_TYPES, resolveBuiltinAlias, isBuiltinType, getBuiltinTypes } from './builtinNodeTypes.js';
|
|
10
|
+
export type { BuiltinNodeType } from './builtinNodeTypes.js';
|
|
13
11
|
/**
|
|
14
12
|
* Built-in FlowDrop node component registrations.
|
|
15
13
|
* These are the default node types that ship with FlowDrop.
|
|
16
14
|
*/
|
|
17
15
|
export declare const BUILTIN_NODE_COMPONENTS: NodeComponentRegistration[];
|
|
18
|
-
/**
|
|
19
|
-
* Alias mapping for type resolution.
|
|
20
|
-
* Maps alternative type names to their canonical registration.
|
|
21
|
-
*/
|
|
22
|
-
export declare const BUILTIN_TYPE_ALIASES: Record<string, string>;
|
|
23
|
-
/**
|
|
24
|
-
* Get the canonical type for a given type string.
|
|
25
|
-
* Handles aliases like "default" -> "workflowNode".
|
|
26
|
-
*
|
|
27
|
-
* @param type - The type string to resolve
|
|
28
|
-
* @returns The canonical type string
|
|
29
|
-
*/
|
|
30
|
-
export declare function resolveBuiltinAlias(type: string): string;
|
|
31
|
-
/**
|
|
32
|
-
* Check if a type is a built-in FlowDrop type.
|
|
33
|
-
*
|
|
34
|
-
* @param type - The type to check
|
|
35
|
-
* @returns true if this is a built-in type
|
|
36
|
-
*/
|
|
37
|
-
export declare function isBuiltinType(type: string): boolean;
|
|
38
|
-
/**
|
|
39
|
-
* Get all built-in type identifiers.
|
|
40
|
-
*
|
|
41
|
-
* @returns Array of built-in type strings
|
|
42
|
-
*/
|
|
43
|
-
export declare function getBuiltinTypes(): string[];
|
|
44
|
-
/**
|
|
45
|
-
* Type for built-in node types.
|
|
46
|
-
* Use this when you specifically need a built-in type.
|
|
47
|
-
*/
|
|
48
|
-
export type BuiltinNodeType = 'workflowNode' | 'simple' | 'square' | 'atom' | 'tool' | 'gateway' | 'note' | 'terminal' | 'idea';
|
|
49
|
-
/**
|
|
50
|
-
* Array of built-in type strings for runtime validation.
|
|
51
|
-
*/
|
|
52
|
-
export declare const BUILTIN_NODE_TYPES: BuiltinNodeType[];
|