@d34dman/flowdrop 0.0.63 → 0.0.65

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 (125) hide show
  1. package/README.md +2 -0
  2. package/dist/adapters/agentspec/AgentSpecAdapter.js +1 -40
  3. package/dist/api/enhanced-client.d.ts +19 -0
  4. package/dist/api/enhanced-client.js +9 -0
  5. package/dist/components/App.svelte +32 -36
  6. package/dist/components/CanvasBanner.stories.svelte +12 -8
  7. package/dist/components/CanvasBanner.stories.svelte.d.ts +1 -1
  8. package/dist/components/ConfigModal.svelte +7 -11
  9. package/dist/components/ConfigModal.svelte.d.ts +5 -23
  10. package/dist/components/ConfigPanel.stories.svelte +35 -26
  11. package/dist/components/ConfigPanel.stories.svelte.d.ts +1 -1
  12. package/dist/components/LoadingSpinner.stories.svelte +13 -13
  13. package/dist/components/LoadingSpinner.stories.svelte.d.ts +1 -1
  14. package/dist/components/Logo.stories.svelte +4 -4
  15. package/dist/components/Logo.stories.svelte.d.ts +1 -1
  16. package/dist/components/LogsSidebar.svelte +6 -9
  17. package/dist/components/LogsSidebar.svelte.d.ts +3 -20
  18. package/dist/components/MarkdownDisplay.stories.svelte +25 -10
  19. package/dist/components/MarkdownDisplay.stories.svelte.d.ts +1 -1
  20. package/dist/components/Navbar.stories.svelte +42 -30
  21. package/dist/components/Navbar.stories.svelte.d.ts +1 -1
  22. package/dist/components/Navbar.svelte +6 -3
  23. package/dist/components/NodeSidebar.svelte +1 -0
  24. package/dist/components/NodeStatusOverlay.stories.svelte +61 -50
  25. package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +1 -1
  26. package/dist/components/NodeStatusOverlay.svelte +4 -4
  27. package/dist/components/PipelineStatus.svelte +10 -12
  28. package/dist/components/PipelineStatus.svelte.d.ts +2 -2
  29. package/dist/components/SchemaForm.stories.svelte +97 -82
  30. package/dist/components/SchemaForm.stories.svelte.d.ts +1 -1
  31. package/dist/components/SchemaForm.svelte +6 -2
  32. package/dist/components/SettingsPanel.svelte +6 -1
  33. package/dist/components/StatusIcon.stories.svelte +15 -15
  34. package/dist/components/StatusIcon.stories.svelte.d.ts +1 -1
  35. package/dist/components/StatusIcon.svelte +1 -1
  36. package/dist/components/StatusLabel.stories.svelte +8 -8
  37. package/dist/components/StatusLabel.stories.svelte.d.ts +1 -1
  38. package/dist/components/ThemeToggle.stories.svelte +10 -10
  39. package/dist/components/ThemeToggle.stories.svelte.d.ts +1 -1
  40. package/dist/components/WorkflowEditor.svelte +23 -5
  41. package/dist/components/form/FormAutocomplete.svelte +2 -0
  42. package/dist/components/form/FormCheckboxGroup.stories.svelte +13 -13
  43. package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +1 -1
  44. package/dist/components/form/FormField.svelte +2 -2
  45. package/dist/components/form/FormFieldLight.svelte +4 -4
  46. package/dist/components/form/FormFieldWrapper.stories.svelte +38 -16
  47. package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +1 -1
  48. package/dist/components/form/FormNumberField.stories.svelte +21 -18
  49. package/dist/components/form/FormNumberField.stories.svelte.d.ts +1 -1
  50. package/dist/components/form/FormRangeField.stories.svelte +13 -13
  51. package/dist/components/form/FormRangeField.stories.svelte.d.ts +1 -1
  52. package/dist/components/form/FormSelect.stories.svelte +21 -21
  53. package/dist/components/form/FormSelect.stories.svelte.d.ts +1 -1
  54. package/dist/components/form/FormTemplateEditor.svelte +0 -13
  55. package/dist/components/form/FormTemplateEditor.svelte.d.ts +1 -7
  56. package/dist/components/form/FormTextField.stories.svelte +17 -17
  57. package/dist/components/form/FormTextField.stories.svelte.d.ts +1 -1
  58. package/dist/components/form/FormTextarea.stories.svelte +21 -18
  59. package/dist/components/form/FormTextarea.stories.svelte.d.ts +1 -1
  60. package/dist/components/form/FormToggle.stories.svelte +13 -13
  61. package/dist/components/form/FormToggle.stories.svelte.d.ts +1 -1
  62. package/dist/components/form/index.d.ts +2 -1
  63. package/dist/components/form/index.js +1 -2
  64. package/dist/components/form/types.d.ts +8 -20
  65. package/dist/components/form/types.js +3 -8
  66. package/dist/components/interrupt/ChoicePrompt.stories.svelte +37 -28
  67. package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +1 -1
  68. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +57 -35
  69. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +1 -1
  70. package/dist/components/interrupt/FormPrompt.svelte +1 -0
  71. package/dist/components/interrupt/ReviewPrompt.stories.svelte +52 -31
  72. package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +1 -1
  73. package/dist/components/interrupt/ReviewPrompt.svelte +44 -25
  74. package/dist/components/interrupt/TextInputPrompt.stories.svelte +32 -19
  75. package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +1 -1
  76. package/dist/components/interrupt/TextInputPrompt.svelte +1 -0
  77. package/dist/components/layouts/MainLayout.svelte +3 -0
  78. package/dist/components/nodes/GatewayNode.stories.svelte +96 -64
  79. package/dist/components/nodes/IdeaNode.stories.svelte +40 -36
  80. package/dist/components/nodes/NotesNode.stories.svelte +61 -54
  81. package/dist/components/nodes/SimpleNode.stories.svelte +141 -83
  82. package/dist/components/nodes/SquareNode.stories.svelte +70 -44
  83. package/dist/components/nodes/TerminalNode.stories.svelte +10 -10
  84. package/dist/components/nodes/TerminalNode.svelte +6 -2
  85. package/dist/components/nodes/ToolNode.stories.svelte +177 -59
  86. package/dist/components/nodes/WorkflowNode.stories.svelte +43 -38
  87. package/dist/components/playground/MessageBubble.stories.svelte +51 -38
  88. package/dist/components/playground/MessageBubble.stories.svelte.d.ts +1 -1
  89. package/dist/components/playground/Playground.svelte +2 -4
  90. package/dist/config/constants.d.ts +21 -0
  91. package/dist/config/constants.js +9 -0
  92. package/dist/core/index.d.ts +7 -5
  93. package/dist/core/index.js +5 -5
  94. package/dist/editor/index.d.ts +4 -4
  95. package/dist/editor/index.js +3 -4
  96. package/dist/form/code.js +16 -4
  97. package/dist/form/fieldRegistry.d.ts +8 -82
  98. package/dist/form/fieldRegistry.js +9 -101
  99. package/dist/form/full.d.ts +4 -1
  100. package/dist/form/full.js +6 -1
  101. package/dist/form/index.d.ts +1 -1
  102. package/dist/form/index.js +0 -2
  103. package/dist/form/markdown.js +11 -3
  104. package/dist/helpers/workflowEditorHelper.d.ts +0 -3
  105. package/dist/helpers/workflowEditorHelper.js +7 -26
  106. package/dist/index.js +3 -0
  107. package/dist/services/apiVariableService.d.ts +1 -3
  108. package/dist/services/apiVariableService.js +3 -4
  109. package/dist/services/dynamicSchemaService.js +3 -4
  110. package/dist/stories/CanvasDecorator.svelte +7 -8
  111. package/dist/stories/CanvasDecorator.svelte.d.ts +2 -2
  112. package/dist/stories/NodeDecorator.svelte +13 -14
  113. package/dist/stories/NodeDecorator.svelte.d.ts +1 -1
  114. package/dist/stories/utils.d.ts +2 -2
  115. package/dist/stories/utils.js +55 -55
  116. package/dist/styles/base.css +12 -4
  117. package/dist/styles/tokens.css +138 -130
  118. package/dist/types/interrupt.d.ts +1 -4
  119. package/dist/utils/errors.d.ts +28 -0
  120. package/dist/utils/errors.js +44 -0
  121. package/dist/utils/handleIds.d.ts +35 -0
  122. package/dist/utils/handleIds.js +58 -0
  123. package/package.json +53 -12
  124. package/dist/api/client.d.ts +0 -110
  125. package/dist/api/client.js +0 -240
@@ -1,71 +1,189 @@
1
1
  <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
- import NodeDecorator from "../../stories/NodeDecorator.svelte";
4
- import { createSampleNodeData } from "../../stories/utils.js";
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import NodeDecorator from '../../stories/NodeDecorator.svelte';
4
+ import { createSampleNodeData } from '../../stories/utils.js';
5
5
 
6
6
  const { Story } = defineMeta({
7
- title: "Nodes/ToolNode",
8
- tags: ["autodocs"],
7
+ title: 'Nodes/ToolNode',
8
+ tags: ['autodocs'],
9
9
  parameters: {
10
- layout: "centered",
11
- },
10
+ layout: 'centered'
11
+ }
12
12
  });
13
13
  </script>
14
14
 
15
15
  <Story name="Default">
16
- <NodeDecorator data={createSampleNodeData({
17
- label: "AI Content Analyzer",
18
- metadata: {
19
- id: "ai_content_analyzer",
20
- name: "AI Content Analyzer",
21
- description: "AI-powered content analysis for smart text processing and context understanding",
22
- category: "ai",
23
- version: "1.0.0",
24
- type: "tool",
25
- supportedTypes: ["tool", "default"],
26
- icon: "mdi:brain",
27
- color: "#9C27B0",
28
- inputs: [
29
- { id: "content", name: "Content to Analyze", type: "input", dataType: "mixed", required: false, description: "Text content or array of content items for AI analysis" },
30
- { id: "tool", name: "Tool", type: "input", dataType: "tool", required: false, description: "Available Tools" },
31
- { id: "trigger", name: "Trigger", type: "input", dataType: "trigger", required: false, description: "" },
32
- ],
33
- outputs: [
34
- { id: "tool", name: "Tool", type: "output", dataType: "tool", required: false, description: "Available tools" },
35
- { id: "analyzed_content", name: "analyzed_content", type: "output", dataType: "array", required: false, description: "Content items with AI analysis results" },
36
- { id: "total_analyzed", name: "total_analyzed", type: "output", dataType: "number", required: false, description: "Total number of items analyzed" },
37
- { id: "analysis_mode", name: "analysis_mode", type: "output", dataType: "string", required: false, description: "The analysis mode used" },
38
- ],
39
- },
40
- })} />
16
+ <NodeDecorator
17
+ data={createSampleNodeData({
18
+ label: 'AI Content Analyzer',
19
+ metadata: {
20
+ id: 'ai_content_analyzer',
21
+ name: 'AI Content Analyzer',
22
+ description:
23
+ 'AI-powered content analysis for smart text processing and context understanding',
24
+ category: 'ai',
25
+ version: '1.0.0',
26
+ type: 'tool',
27
+ supportedTypes: ['tool', 'default'],
28
+ icon: 'mdi:brain',
29
+ color: '#9C27B0',
30
+ inputs: [
31
+ {
32
+ id: 'content',
33
+ name: 'Content to Analyze',
34
+ type: 'input',
35
+ dataType: 'mixed',
36
+ required: false,
37
+ description: 'Text content or array of content items for AI analysis'
38
+ },
39
+ {
40
+ id: 'tool',
41
+ name: 'Tool',
42
+ type: 'input',
43
+ dataType: 'tool',
44
+ required: false,
45
+ description: 'Available Tools'
46
+ },
47
+ {
48
+ id: 'trigger',
49
+ name: 'Trigger',
50
+ type: 'input',
51
+ dataType: 'trigger',
52
+ required: false,
53
+ description: ''
54
+ }
55
+ ],
56
+ outputs: [
57
+ {
58
+ id: 'tool',
59
+ name: 'Tool',
60
+ type: 'output',
61
+ dataType: 'tool',
62
+ required: false,
63
+ description: 'Available tools'
64
+ },
65
+ {
66
+ id: 'analyzed_content',
67
+ name: 'analyzed_content',
68
+ type: 'output',
69
+ dataType: 'array',
70
+ required: false,
71
+ description: 'Content items with AI analysis results'
72
+ },
73
+ {
74
+ id: 'total_analyzed',
75
+ name: 'total_analyzed',
76
+ type: 'output',
77
+ dataType: 'number',
78
+ required: false,
79
+ description: 'Total number of items analyzed'
80
+ },
81
+ {
82
+ id: 'analysis_mode',
83
+ name: 'analysis_mode',
84
+ type: 'output',
85
+ dataType: 'string',
86
+ required: false,
87
+ description: 'The analysis mode used'
88
+ }
89
+ ]
90
+ }
91
+ })}
92
+ />
41
93
  </Story>
42
94
 
43
95
  <Story name="Multiple Parameters">
44
- <NodeDecorator data={createSampleNodeData({
45
- label: "Content Classifier",
46
- metadata: {
47
- id: "content_classifier",
48
- name: "Content Classifier",
49
- description: "Classify content into categories (support, features, sales) for proper triage",
50
- category: "ai",
51
- version: "1.0.0",
52
- type: "tool",
53
- supportedTypes: ["tool", "default"],
54
- icon: "mdi:tag-multiple",
55
- color: "#9C27B0",
56
- inputs: [
57
- { id: "tool", name: "Tool", type: "input", dataType: "tool", required: false, description: "Available Tools" },
58
- { id: "structured_data", name: "Structured Data", type: "input", dataType: "json", required: false, description: "Processed form data for classification" },
59
- { id: "raw_data", name: "Raw Data", type: "input", dataType: "json", required: false, description: "Original form data" },
60
- { id: "submission_id", name: "Submission ID", type: "input", dataType: "string", required: false, description: "Unique submission identifier" },
61
- { id: "trigger", name: "Trigger", type: "input", dataType: "trigger", required: false, description: "" },
62
- ],
63
- outputs: [
64
- { id: "tool", name: "Tool", type: "output", dataType: "tool", required: false, description: "Available tools" },
65
- { id: "primary_category", name: "primary_category", type: "output", dataType: "string", required: false, description: "Primary classification category" },
66
- { id: "confidence", name: "confidence", type: "output", dataType: "number", required: false, description: "Classification confidence score (0-1)" },
67
- { id: "priority_level", name: "priority_level", type: "output", dataType: "string", required: false, description: "Priority level (normal, medium, high)" },
68
- ],
69
- },
70
- })} />
96
+ <NodeDecorator
97
+ data={createSampleNodeData({
98
+ label: 'Content Classifier',
99
+ metadata: {
100
+ id: 'content_classifier',
101
+ name: 'Content Classifier',
102
+ description:
103
+ 'Classify content into categories (support, features, sales) for proper triage',
104
+ category: 'ai',
105
+ version: '1.0.0',
106
+ type: 'tool',
107
+ supportedTypes: ['tool', 'default'],
108
+ icon: 'mdi:tag-multiple',
109
+ color: '#9C27B0',
110
+ inputs: [
111
+ {
112
+ id: 'tool',
113
+ name: 'Tool',
114
+ type: 'input',
115
+ dataType: 'tool',
116
+ required: false,
117
+ description: 'Available Tools'
118
+ },
119
+ {
120
+ id: 'structured_data',
121
+ name: 'Structured Data',
122
+ type: 'input',
123
+ dataType: 'json',
124
+ required: false,
125
+ description: 'Processed form data for classification'
126
+ },
127
+ {
128
+ id: 'raw_data',
129
+ name: 'Raw Data',
130
+ type: 'input',
131
+ dataType: 'json',
132
+ required: false,
133
+ description: 'Original form data'
134
+ },
135
+ {
136
+ id: 'submission_id',
137
+ name: 'Submission ID',
138
+ type: 'input',
139
+ dataType: 'string',
140
+ required: false,
141
+ description: 'Unique submission identifier'
142
+ },
143
+ {
144
+ id: 'trigger',
145
+ name: 'Trigger',
146
+ type: 'input',
147
+ dataType: 'trigger',
148
+ required: false,
149
+ description: ''
150
+ }
151
+ ],
152
+ outputs: [
153
+ {
154
+ id: 'tool',
155
+ name: 'Tool',
156
+ type: 'output',
157
+ dataType: 'tool',
158
+ required: false,
159
+ description: 'Available tools'
160
+ },
161
+ {
162
+ id: 'primary_category',
163
+ name: 'primary_category',
164
+ type: 'output',
165
+ dataType: 'string',
166
+ required: false,
167
+ description: 'Primary classification category'
168
+ },
169
+ {
170
+ id: 'confidence',
171
+ name: 'confidence',
172
+ type: 'output',
173
+ dataType: 'number',
174
+ required: false,
175
+ description: 'Classification confidence score (0-1)'
176
+ },
177
+ {
178
+ id: 'priority_level',
179
+ name: 'priority_level',
180
+ type: 'output',
181
+ dataType: 'string',
182
+ required: false,
183
+ description: 'Priority level (normal, medium, high)'
184
+ }
185
+ ]
186
+ }
187
+ })}
188
+ />
71
189
  </Story>
@@ -1,50 +1,55 @@
1
1
  <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
- import NodeDecorator from "../../stories/NodeDecorator.svelte";
4
- import { createSampleNodeData } from "../../stories/utils.js";
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import NodeDecorator from '../../stories/NodeDecorator.svelte';
4
+ import { createSampleNodeData } from '../../stories/utils.js';
5
5
 
6
6
  const { Story } = defineMeta({
7
- title: "Nodes/WorkflowNode",
8
- tags: ["autodocs"],
7
+ title: 'Nodes/WorkflowNode',
8
+ tags: ['autodocs'],
9
9
  parameters: {
10
- layout: "centered",
11
- },
10
+ layout: 'centered'
11
+ }
12
12
  });
13
13
  </script>
14
14
 
15
15
  <Story name="Default">
16
- <NodeDecorator data={createSampleNodeData({
17
- label: "Sub Workflow",
18
- metadata: {
19
- id: "sub-workflow",
20
- name: "Sub Workflow",
21
- description: "Execute a nested workflow",
22
- category: "bundles",
23
- version: "1.0.0",
24
- type: "workflow",
25
- icon: "mdi:sitemap",
26
- inputs: [{ id: "input", name: "Input", type: "input", dataType: "any", required: false }],
27
- outputs: [{ id: "output", name: "Output", type: "output", dataType: "any" }],
28
- },
29
- })} />
16
+ <NodeDecorator
17
+ data={createSampleNodeData({
18
+ label: 'Sub Workflow',
19
+ metadata: {
20
+ id: 'sub-workflow',
21
+ name: 'Sub Workflow',
22
+ description: 'Execute a nested workflow',
23
+ category: 'bundles',
24
+ version: '1.0.0',
25
+ type: 'workflow',
26
+ icon: 'mdi:sitemap',
27
+ inputs: [{ id: 'input', name: 'Input', type: 'input', dataType: 'any', required: false }],
28
+ outputs: [{ id: 'output', name: 'Output', type: 'output', dataType: 'any' }]
29
+ }
30
+ })}
31
+ />
30
32
  </Story>
31
33
 
32
34
  <Story name="Selected">
33
- <NodeDecorator data={createSampleNodeData({
34
- label: "Data Pipeline",
35
- metadata: {
36
- id: "data-pipeline",
37
- name: "Data Pipeline",
38
- description: "Process data through a pipeline workflow",
39
- category: "bundles",
40
- version: "1.0.0",
41
- type: "workflow",
42
- icon: "mdi:pipe",
43
- inputs: [
44
- { id: "data", name: "Data", type: "input", dataType: "any", required: true },
45
- { id: "config", name: "Config", type: "input", dataType: "object", required: false },
46
- ],
47
- outputs: [{ id: "result", name: "Result", type: "output", dataType: "any" }],
48
- },
49
- })} selected={true} />
35
+ <NodeDecorator
36
+ data={createSampleNodeData({
37
+ label: 'Data Pipeline',
38
+ metadata: {
39
+ id: 'data-pipeline',
40
+ name: 'Data Pipeline',
41
+ description: 'Process data through a pipeline workflow',
42
+ category: 'bundles',
43
+ version: '1.0.0',
44
+ type: 'workflow',
45
+ icon: 'mdi:pipe',
46
+ inputs: [
47
+ { id: 'data', name: 'Data', type: 'input', dataType: 'any', required: true },
48
+ { id: 'config', name: 'Config', type: 'input', dataType: 'object', required: false }
49
+ ],
50
+ outputs: [{ id: 'result', name: 'Result', type: 'output', dataType: 'any' }]
51
+ }
52
+ })}
53
+ selected={true}
54
+ />
50
55
  </Story>
@@ -1,49 +1,62 @@
1
1
  <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
- import MessageBubble from "./MessageBubble.svelte";
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import MessageBubble from './MessageBubble.svelte';
4
4
 
5
5
  const { Story } = defineMeta({
6
- title: "Playground/MessageBubble",
6
+ title: 'Playground/MessageBubble',
7
7
  component: MessageBubble,
8
- tags: ["autodocs"],
8
+ tags: ['autodocs'],
9
9
  parameters: {
10
- layout: "padded",
11
- },
10
+ layout: 'padded'
11
+ }
12
12
  });
13
13
  </script>
14
14
 
15
- <Story name="User Message" args={{
16
- message: {
17
- id: "msg-1",
18
- role: "user",
19
- content: "Can you process this workflow for me?",
20
- timestamp: new Date().toISOString(),
21
- },
22
- }} />
15
+ <Story
16
+ name="User Message"
17
+ args={{
18
+ message: {
19
+ id: 'msg-1',
20
+ role: 'user',
21
+ content: 'Can you process this workflow for me?',
22
+ timestamp: new Date().toISOString()
23
+ }
24
+ }}
25
+ />
23
26
 
24
- <Story name="Assistant Message" args={{
25
- message: {
26
- id: "msg-2",
27
- role: "assistant",
28
- content: "I've processed the workflow successfully. Here are the results:\n\n- **Step 1**: Data validated\n- **Step 2**: Transformation applied\n- **Step 3**: Output generated\n\nAll checks passed.",
29
- timestamp: new Date().toISOString(),
30
- },
31
- }} />
27
+ <Story
28
+ name="Assistant Message"
29
+ args={{
30
+ message: {
31
+ id: 'msg-2',
32
+ role: 'assistant',
33
+ content:
34
+ "I've processed the workflow successfully. Here are the results:\n\n- **Step 1**: Data validated\n- **Step 2**: Transformation applied\n- **Step 3**: Output generated\n\nAll checks passed.",
35
+ timestamp: new Date().toISOString()
36
+ }
37
+ }}
38
+ />
32
39
 
33
- <Story name="System Message" args={{
34
- message: {
35
- id: "msg-3",
36
- role: "system",
37
- content: "Workflow execution started",
38
- timestamp: new Date().toISOString(),
39
- },
40
- }} />
40
+ <Story
41
+ name="System Message"
42
+ args={{
43
+ message: {
44
+ id: 'msg-3',
45
+ role: 'system',
46
+ content: 'Workflow execution started',
47
+ timestamp: new Date().toISOString()
48
+ }
49
+ }}
50
+ />
41
51
 
42
- <Story name="Log Message" args={{
43
- message: {
44
- id: "msg-4",
45
- role: "log",
46
- content: "[INFO] Processing node: data-transform-1",
47
- timestamp: new Date().toISOString(),
48
- },
49
- }} />
52
+ <Story
53
+ name="Log Message"
54
+ args={{
55
+ message: {
56
+ id: 'msg-4',
57
+ role: 'log',
58
+ content: '[INFO] Processing node: data-transform-1',
59
+ timestamp: new Date().toISOString()
60
+ }
61
+ }}
62
+ />
@@ -11,7 +11,7 @@ declare const MessageBubble: $$__sveltets_2_IsomorphicComponent<{
11
11
  }, {
12
12
  [evt: string]: CustomEvent<any>;
13
13
  }, {}, {}, string>;
14
- import MessageBubble from "./MessageBubble.svelte";
14
+ import MessageBubble from './MessageBubble.svelte';
15
15
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
16
16
  new (options: import("svelte").ComponentConstructorOptions<Props>): import("svelte").SvelteComponent<Props, Events, Slots> & {
17
17
  $$bindings?: Bindings;
@@ -13,10 +13,7 @@
13
13
  import ChatPanel from './ChatPanel.svelte';
14
14
  import type { Workflow } from '../../types/index.js';
15
15
  import type { EndpointConfig } from '../../config/endpoints.js';
16
- import type {
17
- PlaygroundMode,
18
- PlaygroundConfig
19
- } from '../../types/playground.js';
16
+ import type { PlaygroundMode, PlaygroundConfig } from '../../types/playground.js';
20
17
  import { playgroundService } from '../../services/playgroundService.js';
21
18
  import { interruptService } from '../../services/interruptService.js';
22
19
  import { setEndpointConfig } from '../../services/api.js';
@@ -419,6 +416,7 @@
419
416
  }
420
417
 
421
418
  /** Shared polling callback created from config lifecycle hooks */
419
+ // svelte-ignore state_referenced_locally — config is static
422
420
  const pollingCallback = createPollingCallback(config.isTerminalStatus);
423
421
 
424
422
  /**
@@ -12,6 +12,27 @@ export declare const DEFAULT_API_TIMEOUT_MS = 30000;
12
12
  export declare const NODE_EXECUTION_CACHE_TIMEOUT_MS = 30000;
13
13
  /** Duration to mark pipeline API as unavailable after 404 (milliseconds) */
14
14
  export declare const PIPELINE_API_UNAVAILABLE_DURATION_MS: number;
15
+ /** Default cache TTL for schema and variable data in milliseconds (5 minutes) */
16
+ export declare const DEFAULT_CACHE_TTL_MS: number;
17
+ /** Edge marker arrow sizes by category */
18
+ export declare const EDGE_MARKER_SIZES: {
19
+ readonly loopback: {
20
+ readonly width: 14;
21
+ readonly height: 14;
22
+ };
23
+ readonly trigger: {
24
+ readonly width: 16;
25
+ readonly height: 16;
26
+ };
27
+ readonly tool: {
28
+ readonly width: 16;
29
+ readonly height: 16;
30
+ };
31
+ readonly data: {
32
+ readonly width: 16;
33
+ readonly height: 16;
34
+ };
35
+ };
15
36
  /** Toast notification durations in milliseconds */
16
37
  export declare const TOAST_DURATION: {
17
38
  readonly SUCCESS: 4000;
@@ -12,6 +12,15 @@ export const DEFAULT_API_TIMEOUT_MS = 30_000;
12
12
  export const NODE_EXECUTION_CACHE_TIMEOUT_MS = 30_000;
13
13
  /** Duration to mark pipeline API as unavailable after 404 (milliseconds) */
14
14
  export const PIPELINE_API_UNAVAILABLE_DURATION_MS = 5 * 60 * 1000;
15
+ /** Default cache TTL for schema and variable data in milliseconds (5 minutes) */
16
+ export const DEFAULT_CACHE_TTL_MS = 5 * 60 * 1000;
17
+ /** Edge marker arrow sizes by category */
18
+ export const EDGE_MARKER_SIZES = {
19
+ loopback: { width: 14, height: 14 },
20
+ trigger: { width: 16, height: 16 },
21
+ tool: { width: 16, height: 16 },
22
+ data: { width: 16, height: 16 }
23
+ };
15
24
  /** Toast notification durations in milliseconds */
16
25
  export const TOAST_DURATION = {
17
26
  SUCCESS: 4_000,
@@ -39,16 +39,18 @@ export { DEFAULT_FEATURES, mergeFeatures } from '../types/events.js';
39
39
  export { getStatusColor, getStatusIcon, getStatusLabel, getStatusBackgroundColor, getStatusTextColor, createDefaultExecutionInfo, updateExecutionStart, updateExecutionComplete, updateExecutionFailed, resetExecutionInfo, formatExecutionDuration, formatLastExecuted } from '../utils/nodeStatus.js';
40
40
  export { createNodeWrapperConfig, shouldShowNodeStatus, getOptimalStatusPosition, getOptimalStatusSize, DEFAULT_NODE_STATUS_CONFIG } from '../utils/nodeWrapper.js';
41
41
  export type { NodeStatusConfig } from '../utils/nodeWrapper.js';
42
- export * from '../utils/colors.js';
43
- export * from '../utils/icons.js';
44
- export * from '../utils/config.js';
45
- export * from '../utils/nodeTypes.js';
42
+ export { CATEGORY_COLOR_TOKENS, DEFAULT_COLORS, getCategoryColorToken, getDataTypeColorToken, getDataTypeConfig, getAvailableDataTypes, getCategoryColors, getCategoryBackground, getCategoryAccent, getCategoryText, getCategoryBorder, getNodeColors, getNodeBackground, getNodeAccent, getNodeText, getNodeBorder, getDataTypeColor, parseDataTypeDisplay, getDataTypeDisplayText, isArrayDataType, getArrayElementType, hexToRgb, getRelativeLuminance, isLightColor, getContrastTextColor, resolveColorToken, getContrastTextColorForDataType, getContrastTextColorForCategory, getPortBackgroundColor, getPortBorderColor, rgbToHex, getLightTint, getDarkTint, getBorderTint, getDarkBorderTint, getColorVariants, getThemeAwareColorVariants } from '../utils/colors.js';
43
+ export type { ColorVariants } from '../utils/colors.js';
44
+ export { DEFAULT_ICONS, CATEGORY_ICONS, getNodeIcon, getCategoryIcon, getDefaultIcon, isValidIcon, getValidIcon } from '../utils/icons.js';
45
+ export { createDefaultFeatures, createDefaultUIConfig, createDefaultAPIConfig, createDefaultExecutionConfig, createDefaultStorageConfig, createDefaultConfig, mergeConfig, validateConfig } from '../utils/config.js';
46
+ export { getComponentNameForNodeType, getAvailableNodeTypes, getPrimaryNodeType, resolveNodeType, resolveComponentName, isNodeTypeSupported, getNodeTypeOneOfOptions, createNodeTypeConfigProperty, isValidNodeType, getAllNodeTypes } from '../utils/nodeTypes.js';
46
47
  export { isLoopbackEdge, isValidLoopbackCycle, hasCycles, hasInvalidCycles } from '../utils/connections.js';
47
48
  export { isFieldOptionArray, normalizeOptions } from '../components/form/types.js';
48
49
  export { resolveScopeToKey, keyToScope, generateDefaultUISchema, collectReferencedKeys } from '../utils/uischema.js';
49
50
  export { DEFAULT_PORT_CONFIG } from '../config/defaultPortConfig.js';
50
51
  export { defaultEndpointConfig, createEndpointConfig } from '../config/endpoints.js';
51
- export * from '../adapters/WorkflowAdapter.js';
52
+ export { WorkflowAdapter } from '../adapters/WorkflowAdapter.js';
53
+ export type { StandardNode, StandardEdge, StandardWorkflow, WorkflowExecutionResult, WorkflowValidationResult } from '../adapters/WorkflowAdapter.js';
52
54
  export type { AgentSpecNodeComponentType, AgentSpecToolComponentType, AgentSpecComponentType, AgentSpecProperty, AgentSpecNodeBase, AgentSpecStartNode, AgentSpecEndNode, AgentSpecLLMNode, AgentSpecAPINode, AgentSpecAgentNode, AgentSpecFlowNode, AgentSpecMapNode, AgentSpecBranchingNode, AgentSpecToolNode, AgentSpecNode, AgentSpecBranch, AgentSpecControlFlowEdge, AgentSpecDataFlowEdge, AgentSpecFlow, AgentSpecToolBase, AgentSpecServerTool, AgentSpecClientTool, AgentSpecRemoteTool, AgentSpecTool, AgentSpecLLMConfig, AgentSpecAgent, AgentSpecDocument } from '../types/agentspec.js';
53
55
  export { COMPONENT_REF_PREFIX, isComponentRef, extractComponentRefId, createComponentRef } from '../types/agentspec.js';
54
56
  export { getAgentSpecNodeMetadata, getDefaultAgentSpecNodeTypes, createAgentSpecNodeMetadata } from '../adapters/agentspec/defaultNodeTypes.js';
@@ -39,13 +39,13 @@ export { getStatusColor, getStatusIcon, getStatusLabel, getStatusBackgroundColor
39
39
  // Node wrapper utilities
40
40
  export { createNodeWrapperConfig, shouldShowNodeStatus, getOptimalStatusPosition, getOptimalStatusSize, DEFAULT_NODE_STATUS_CONFIG } from '../utils/nodeWrapper.js';
41
41
  // Color utilities
42
- export * from '../utils/colors.js';
42
+ export { CATEGORY_COLOR_TOKENS, DEFAULT_COLORS, getCategoryColorToken, getDataTypeColorToken, getDataTypeConfig, getAvailableDataTypes, getCategoryColors, getCategoryBackground, getCategoryAccent, getCategoryText, getCategoryBorder, getNodeColors, getNodeBackground, getNodeAccent, getNodeText, getNodeBorder, getDataTypeColor, parseDataTypeDisplay, getDataTypeDisplayText, isArrayDataType, getArrayElementType, hexToRgb, getRelativeLuminance, isLightColor, getContrastTextColor, resolveColorToken, getContrastTextColorForDataType, getContrastTextColorForCategory, getPortBackgroundColor, getPortBorderColor, rgbToHex, getLightTint, getDarkTint, getBorderTint, getDarkBorderTint, getColorVariants, getThemeAwareColorVariants } from '../utils/colors.js';
43
43
  // Icon utilities
44
- export * from '../utils/icons.js';
44
+ export { DEFAULT_ICONS, CATEGORY_ICONS, getNodeIcon, getCategoryIcon, getDefaultIcon, isValidIcon, getValidIcon } from '../utils/icons.js';
45
45
  // Config utilities
46
- export * from '../utils/config.js';
46
+ export { createDefaultFeatures, createDefaultUIConfig, createDefaultAPIConfig, createDefaultExecutionConfig, createDefaultStorageConfig, createDefaultConfig, mergeConfig, validateConfig } from '../utils/config.js';
47
47
  // Node type utilities
48
- export * from '../utils/nodeTypes.js';
48
+ export { getComponentNameForNodeType, getAvailableNodeTypes, getPrimaryNodeType, resolveNodeType, resolveComponentName, isNodeTypeSupported, getNodeTypeOneOfOptions, createNodeTypeConfigProperty, isValidNodeType, getAllNodeTypes } from '../utils/nodeTypes.js';
49
49
  // Connection utilities (including loopback edge detection)
50
50
  export { isLoopbackEdge, isValidLoopbackCycle, hasCycles, hasInvalidCycles } from '../utils/connections.js';
51
51
  // Form type utilities
@@ -60,7 +60,7 @@ export { defaultEndpointConfig, createEndpointConfig } from '../config/endpoints
60
60
  // ============================================================================
61
61
  // Adapters
62
62
  // ============================================================================
63
- export * from '../adapters/WorkflowAdapter.js';
63
+ export { WorkflowAdapter } from '../adapters/WorkflowAdapter.js';
64
64
  export { COMPONENT_REF_PREFIX, isComponentRef, extractComponentRefId, createComponentRef } from '../types/agentspec.js';
65
65
  // Agent Spec default node types (optional starter templates — users can provide their own)
66
66
  export { getAgentSpecNodeMetadata, getDefaultAgentSpecNodeTypes, createAgentSpecNodeMetadata } from '../adapters/agentspec/defaultNodeTypes.js';
@@ -71,7 +71,7 @@ export { getWorkflowStore, workflowActions, getWorkflowId, getWorkflowName, getW
71
71
  export { rebuildAllPortCoordinates, updateNodePortCoordinates, removeNodePortCoordinates, getPortCoordinate, getNodePortCoordinates, getPortCoordinateSnapshot, getPortCoordinates } from '../stores/portCoordinateStore.svelte.js';
72
72
  export { getHistoryState, getCanUndo, getCanRedo, historyActions, setOnRestoreCallback, cleanupHistorySubscription, historyService, HistoryService } from '../stores/historyStore.svelte.js';
73
73
  export type { HistoryEntry, HistoryState, PushOptions } from '../stores/historyStore.svelte.js';
74
- export * from '../services/api.js';
74
+ export { setEndpointConfig, getEndpointConfig, nodeApi, workflowApi, api } from '../services/api.js';
75
75
  export { showSuccess, showError, showWarning, showInfo, showLoading, dismissToast, dismissAllToasts, showPromise, showConfirmation, apiToasts, workflowToasts, pipelineToasts } from '../services/toastService.js';
76
76
  export { NodeExecutionService, nodeExecutionService } from '../services/nodeExecutionService.js';
77
77
  export { PlaygroundService, playgroundService } from '../services/playgroundService.js';
@@ -82,10 +82,10 @@ export { fetchPortConfig, validatePortConfig } from '../services/portConfigApi.j
82
82
  export { fetchCategories, validateCategories } from '../services/categoriesApi.js';
83
83
  export { fetchDynamicSchema, resolveExternalEditUrl, getEffectiveConfigEditOptions, clearSchemaCache, invalidateSchemaCache, hasConfigEditOptions, shouldShowExternalEdit, shouldUseDynamicSchema } from '../services/dynamicSchemaService.js';
84
84
  export { getDraftStorageKey, saveDraft, loadDraft, deleteDraft, hasDraft, getDraftMetadata, DraftAutoSaveManager } from '../services/draftStorage.js';
85
- export { FlowDropApiClient } from '../api/client.js';
86
85
  export { EnhancedFlowDropApiClient, ApiError } from '../api/enhanced-client.js';
87
- export * from '../utils/connections.js';
88
- export * from '../config/runtimeConfig.js';
86
+ export { isLoopbackEdge, isValidLoopbackCycle, PortCompatibilityChecker, initializePortCompatibility, getPortCompatibilityChecker, getPossibleConnections, validateConnection, getConnectionSuggestions, hasCycles, hasInvalidCycles, getExecutionOrder } from '../utils/connections.js';
87
+ export { fetchRuntimeConfig, getRuntimeConfig, clearRuntimeConfigCache, initRuntimeConfig } from '../config/runtimeConfig.js';
88
+ export type { RuntimeConfig } from '../config/runtimeConfig.js';
89
89
  export type { Workflow, WorkflowNode, WorkflowEdge, NodeMetadata, NodePort, DynamicPort, Branch, ExecutionStatus, ExecutionResult, FlowDropConfig, PortConfig, ConfigSchema, ConfigProperty, ConfigEditOptions } from '../types/index.js';
90
90
  export type { WorkflowEditorConfig, EditorFeatures, UIConfig, APIConfig } from '../types/config.js';
91
91
  export type { AuthProvider, StaticAuthConfig, CallbackAuthConfig } from '../types/auth.js';
@@ -112,7 +112,7 @@ export { getHistoryState, getCanUndo, getCanRedo, historyActions, setOnRestoreCa
112
112
  // ============================================================================
113
113
  // Services
114
114
  // ============================================================================
115
- export * from '../services/api.js';
115
+ export { setEndpointConfig, getEndpointConfig, nodeApi, workflowApi, api } from '../services/api.js';
116
116
  export { showSuccess, showError, showWarning, showInfo, showLoading, dismissToast, dismissAllToasts, showPromise, showConfirmation, apiToasts, workflowToasts, pipelineToasts } from '../services/toastService.js';
117
117
  export { NodeExecutionService, nodeExecutionService } from '../services/nodeExecutionService.js';
118
118
  // Playground Service and Store
@@ -127,13 +127,12 @@ export { getDraftStorageKey, saveDraft, loadDraft, deleteDraft, hasDraft, getDra
127
127
  // ============================================================================
128
128
  // API Clients
129
129
  // ============================================================================
130
- export { FlowDropApiClient } from '../api/client.js';
131
130
  export { EnhancedFlowDropApiClient, ApiError } from '../api/enhanced-client.js';
132
131
  // ============================================================================
133
132
  // Connection Utilities
134
133
  // ============================================================================
135
- export * from '../utils/connections.js';
134
+ export { isLoopbackEdge, isValidLoopbackCycle, PortCompatibilityChecker, initializePortCompatibility, getPortCompatibilityChecker, getPossibleConnections, validateConnection, getConnectionSuggestions, hasCycles, hasInvalidCycles, getExecutionOrder } from '../utils/connections.js';
136
135
  // ============================================================================
137
136
  // Runtime Configuration
138
137
  // ============================================================================
139
- export * from '../config/runtimeConfig.js';
138
+ export { fetchRuntimeConfig, getRuntimeConfig, clearRuntimeConfigCache, initRuntimeConfig } from '../config/runtimeConfig.js';