@d34dman/flowdrop 0.0.63 → 0.0.64

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 (115) 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 +31 -35
  6. package/dist/components/CanvasBanner.stories.svelte +12 -8
  7. package/dist/components/CanvasBanner.stories.svelte.d.ts +1 -1
  8. package/dist/components/ConfigPanel.stories.svelte +35 -26
  9. package/dist/components/ConfigPanel.stories.svelte.d.ts +1 -1
  10. package/dist/components/LoadingSpinner.stories.svelte +13 -13
  11. package/dist/components/LoadingSpinner.stories.svelte.d.ts +1 -1
  12. package/dist/components/Logo.stories.svelte +4 -4
  13. package/dist/components/Logo.stories.svelte.d.ts +1 -1
  14. package/dist/components/MarkdownDisplay.stories.svelte +25 -10
  15. package/dist/components/MarkdownDisplay.stories.svelte.d.ts +1 -1
  16. package/dist/components/Navbar.stories.svelte +42 -30
  17. package/dist/components/Navbar.stories.svelte.d.ts +1 -1
  18. package/dist/components/Navbar.svelte +6 -3
  19. package/dist/components/NodeStatusOverlay.stories.svelte +61 -50
  20. package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +1 -1
  21. package/dist/components/PipelineStatus.svelte +9 -12
  22. package/dist/components/PipelineStatus.svelte.d.ts +2 -2
  23. package/dist/components/SchemaForm.stories.svelte +97 -82
  24. package/dist/components/SchemaForm.stories.svelte.d.ts +1 -1
  25. package/dist/components/SchemaForm.svelte +6 -2
  26. package/dist/components/SettingsPanel.svelte +5 -1
  27. package/dist/components/StatusIcon.stories.svelte +15 -15
  28. package/dist/components/StatusIcon.stories.svelte.d.ts +1 -1
  29. package/dist/components/StatusLabel.stories.svelte +8 -8
  30. package/dist/components/StatusLabel.stories.svelte.d.ts +1 -1
  31. package/dist/components/ThemeToggle.stories.svelte +10 -10
  32. package/dist/components/ThemeToggle.stories.svelte.d.ts +1 -1
  33. package/dist/components/WorkflowEditor.svelte +23 -5
  34. package/dist/components/form/FormCheckboxGroup.stories.svelte +13 -13
  35. package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +1 -1
  36. package/dist/components/form/FormField.svelte +2 -2
  37. package/dist/components/form/FormFieldLight.svelte +4 -4
  38. package/dist/components/form/FormFieldWrapper.stories.svelte +38 -16
  39. package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +1 -1
  40. package/dist/components/form/FormNumberField.stories.svelte +21 -18
  41. package/dist/components/form/FormNumberField.stories.svelte.d.ts +1 -1
  42. package/dist/components/form/FormRangeField.stories.svelte +13 -13
  43. package/dist/components/form/FormRangeField.stories.svelte.d.ts +1 -1
  44. package/dist/components/form/FormSelect.stories.svelte +21 -21
  45. package/dist/components/form/FormSelect.stories.svelte.d.ts +1 -1
  46. package/dist/components/form/FormTemplateEditor.svelte +0 -13
  47. package/dist/components/form/FormTemplateEditor.svelte.d.ts +1 -7
  48. package/dist/components/form/FormTextField.stories.svelte +17 -17
  49. package/dist/components/form/FormTextField.stories.svelte.d.ts +1 -1
  50. package/dist/components/form/FormTextarea.stories.svelte +21 -18
  51. package/dist/components/form/FormTextarea.stories.svelte.d.ts +1 -1
  52. package/dist/components/form/FormToggle.stories.svelte +13 -13
  53. package/dist/components/form/FormToggle.stories.svelte.d.ts +1 -1
  54. package/dist/components/form/index.d.ts +2 -1
  55. package/dist/components/form/index.js +1 -2
  56. package/dist/components/form/types.d.ts +8 -20
  57. package/dist/components/form/types.js +3 -8
  58. package/dist/components/interrupt/ChoicePrompt.stories.svelte +37 -28
  59. package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +1 -1
  60. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +57 -35
  61. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +1 -1
  62. package/dist/components/interrupt/ReviewPrompt.stories.svelte +52 -31
  63. package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +1 -1
  64. package/dist/components/interrupt/ReviewPrompt.svelte +42 -25
  65. package/dist/components/interrupt/TextInputPrompt.stories.svelte +32 -19
  66. package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +1 -1
  67. package/dist/components/nodes/GatewayNode.stories.svelte +96 -64
  68. package/dist/components/nodes/IdeaNode.stories.svelte +40 -36
  69. package/dist/components/nodes/NotesNode.stories.svelte +61 -54
  70. package/dist/components/nodes/SimpleNode.stories.svelte +141 -83
  71. package/dist/components/nodes/SquareNode.stories.svelte +70 -44
  72. package/dist/components/nodes/TerminalNode.stories.svelte +10 -10
  73. package/dist/components/nodes/TerminalNode.svelte +6 -2
  74. package/dist/components/nodes/ToolNode.stories.svelte +177 -59
  75. package/dist/components/nodes/WorkflowNode.stories.svelte +43 -38
  76. package/dist/components/playground/MessageBubble.stories.svelte +51 -38
  77. package/dist/components/playground/MessageBubble.stories.svelte.d.ts +1 -1
  78. package/dist/components/playground/Playground.svelte +1 -4
  79. package/dist/config/constants.d.ts +21 -0
  80. package/dist/config/constants.js +9 -0
  81. package/dist/core/index.d.ts +7 -5
  82. package/dist/core/index.js +5 -5
  83. package/dist/editor/index.d.ts +4 -4
  84. package/dist/editor/index.js +3 -4
  85. package/dist/form/code.js +16 -4
  86. package/dist/form/fieldRegistry.d.ts +8 -82
  87. package/dist/form/fieldRegistry.js +9 -101
  88. package/dist/form/full.d.ts +4 -1
  89. package/dist/form/full.js +6 -1
  90. package/dist/form/index.d.ts +1 -1
  91. package/dist/form/index.js +0 -2
  92. package/dist/form/markdown.js +11 -3
  93. package/dist/helpers/workflowEditorHelper.d.ts +0 -3
  94. package/dist/helpers/workflowEditorHelper.js +7 -26
  95. package/dist/index.js +3 -0
  96. package/dist/schemas/v1/workflow.schema.json +950 -1076
  97. package/dist/services/apiVariableService.d.ts +1 -3
  98. package/dist/services/apiVariableService.js +3 -4
  99. package/dist/services/dynamicSchemaService.js +3 -4
  100. package/dist/stories/CanvasDecorator.svelte +7 -8
  101. package/dist/stories/CanvasDecorator.svelte.d.ts +2 -2
  102. package/dist/stories/NodeDecorator.svelte +13 -14
  103. package/dist/stories/NodeDecorator.svelte.d.ts +1 -1
  104. package/dist/stories/utils.d.ts +2 -2
  105. package/dist/stories/utils.js +55 -55
  106. package/dist/styles/base.css +12 -4
  107. package/dist/styles/tokens.css +138 -130
  108. package/dist/types/interrupt.d.ts +1 -4
  109. package/dist/utils/errors.d.ts +28 -0
  110. package/dist/utils/errors.js +44 -0
  111. package/dist/utils/handleIds.d.ts +35 -0
  112. package/dist/utils/handleIds.js +58 -0
  113. package/package.json +53 -12
  114. package/dist/api/client.d.ts +0 -110
  115. package/dist/api/client.js +0 -240
@@ -1,34 +1,47 @@
1
1
  <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
- import TextInputPrompt from "./TextInputPrompt.svelte";
4
- import { fn } from "storybook/test";
5
- import { createTextConfig } from "../../stories/utils.js";
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import TextInputPrompt from './TextInputPrompt.svelte';
4
+ import { fn } from 'storybook/test';
5
+ import { createTextConfig } from '../../stories/utils.js';
6
6
 
7
7
  const { Story } = defineMeta({
8
- title: "Interrupt/TextInputPrompt",
8
+ title: 'Interrupt/TextInputPrompt',
9
9
  component: TextInputPrompt,
10
- tags: ["autodocs"],
10
+ tags: ['autodocs'],
11
11
  args: {
12
12
  config: createTextConfig(),
13
13
  isResolved: false,
14
14
  isSubmitting: false,
15
- onSubmit: fn(),
16
- },
15
+ onSubmit: fn()
16
+ }
17
17
  });
18
18
  </script>
19
19
 
20
20
  <Story name="Default" />
21
21
 
22
- <Story name="Multiline" args={{
23
- config: createTextConfig({ message: "Describe the issue in detail:", multiline: true, placeholder: "Type your description..." }),
24
- }} />
22
+ <Story
23
+ name="Multiline"
24
+ args={{
25
+ config: createTextConfig({
26
+ message: 'Describe the issue in detail:',
27
+ multiline: true,
28
+ placeholder: 'Type your description...'
29
+ })
30
+ }}
31
+ />
25
32
 
26
- <Story name="With Constraints" args={{
27
- config: createTextConfig({ message: "Enter a short summary:", minLength: 10, maxLength: 100 }),
28
- }} />
33
+ <Story
34
+ name="With Constraints"
35
+ args={{
36
+ config: createTextConfig({ message: 'Enter a short summary:', minLength: 10, maxLength: 100 })
37
+ }}
38
+ />
29
39
 
30
- <Story name="Resolved" args={{
31
- isResolved: true,
32
- resolvedValue: "The workflow completed successfully with all checks passed.",
33
- resolvedByUserName: "Charlie",
34
- }} />
40
+ <Story
41
+ name="Resolved"
42
+ args={{
43
+ isResolved: true,
44
+ resolvedValue: 'The workflow completed successfully with all checks passed.',
45
+ resolvedByUserName: 'Charlie'
46
+ }}
47
+ />
@@ -11,7 +11,7 @@ declare const TextInputPrompt: $$__sveltets_2_IsomorphicComponent<{
11
11
  }, {
12
12
  [evt: string]: CustomEvent<any>;
13
13
  }, {}, {}, string>;
14
- import TextInputPrompt from "./TextInputPrompt.svelte";
14
+ import TextInputPrompt from './TextInputPrompt.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;
@@ -1,76 +1,108 @@
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/GatewayNode",
8
- tags: ["autodocs"],
7
+ title: 'Nodes/GatewayNode',
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: "If/Else",
18
- config: {
19
- textInput: "",
20
- matchText: "",
21
- operator: "equals",
22
- caseSensitive: false,
23
- branches: [
24
- { name: "True", value: true },
25
- { name: "False", value: false },
26
- ],
27
- },
28
- metadata: {
29
- id: "if_else",
30
- name: "If/Else",
31
- description: "Simple conditional logic with text input, match text, and operator",
32
- category: "logic",
33
- version: "1.0.0",
34
- type: "gateway",
35
- supportedTypes: ["gateway"],
36
- icon: "mdi:code-braces",
37
- color: "#8b5cf6",
38
- inputs: [
39
- { id: "data", name: "Input Data", type: "input", dataType: "mixed", required: false, description: "Optional input data (if not using textInput config)" },
40
- { id: "trigger", name: "Trigger", type: "input", dataType: "trigger", required: false, description: "" },
41
- ],
42
- outputs: [],
43
- },
44
- })} />
16
+ <NodeDecorator
17
+ data={createSampleNodeData({
18
+ label: 'If/Else',
19
+ config: {
20
+ textInput: '',
21
+ matchText: '',
22
+ operator: 'equals',
23
+ caseSensitive: false,
24
+ branches: [
25
+ { name: 'True', value: true },
26
+ { name: 'False', value: false }
27
+ ]
28
+ },
29
+ metadata: {
30
+ id: 'if_else',
31
+ name: 'If/Else',
32
+ description: 'Simple conditional logic with text input, match text, and operator',
33
+ category: 'logic',
34
+ version: '1.0.0',
35
+ type: 'gateway',
36
+ supportedTypes: ['gateway'],
37
+ icon: 'mdi:code-braces',
38
+ color: '#8b5cf6',
39
+ inputs: [
40
+ {
41
+ id: 'data',
42
+ name: 'Input Data',
43
+ type: 'input',
44
+ dataType: 'mixed',
45
+ required: false,
46
+ description: 'Optional input data (if not using textInput config)'
47
+ },
48
+ {
49
+ id: 'trigger',
50
+ name: 'Trigger',
51
+ type: 'input',
52
+ dataType: 'trigger',
53
+ required: false,
54
+ description: ''
55
+ }
56
+ ],
57
+ outputs: []
58
+ }
59
+ })}
60
+ />
45
61
  </Story>
46
62
 
47
63
  <Story name="Multiple Branches">
48
- <NodeDecorator data={createSampleNodeData({
49
- label: "Switch",
50
- config: {
51
- defaultBranch: "default",
52
- caseSensitive: false,
53
- branches: [
54
- { name: "case_1", label: "Case 1", value: "option1" },
55
- { name: "case_2", label: "Case 2", value: "option2" },
56
- { name: "default", label: "Default", value: "" },
57
- ],
58
- },
59
- metadata: {
60
- id: "switch",
61
- name: "Switch",
62
- description: "Multi-branch routing based on configurable case values",
63
- category: "logic",
64
- version: "1.0.0",
65
- type: "gateway",
66
- supportedTypes: ["gateway"],
67
- icon: "mdi:source-branch-sync",
68
- color: "#8b5cf6",
69
- inputs: [
70
- { id: "value", name: "Value", type: "input", dataType: "string", required: true, description: "The value to match against branch cases" },
71
- { id: "trigger", name: "Trigger", type: "input", dataType: "trigger", required: false, description: "" },
72
- ],
73
- outputs: [],
74
- },
75
- })} />
64
+ <NodeDecorator
65
+ data={createSampleNodeData({
66
+ label: 'Switch',
67
+ config: {
68
+ defaultBranch: 'default',
69
+ caseSensitive: false,
70
+ branches: [
71
+ { name: 'case_1', label: 'Case 1', value: 'option1' },
72
+ { name: 'case_2', label: 'Case 2', value: 'option2' },
73
+ { name: 'default', label: 'Default', value: '' }
74
+ ]
75
+ },
76
+ metadata: {
77
+ id: 'switch',
78
+ name: 'Switch',
79
+ description: 'Multi-branch routing based on configurable case values',
80
+ category: 'logic',
81
+ version: '1.0.0',
82
+ type: 'gateway',
83
+ supportedTypes: ['gateway'],
84
+ icon: 'mdi:source-branch-sync',
85
+ color: '#8b5cf6',
86
+ inputs: [
87
+ {
88
+ id: 'value',
89
+ name: 'Value',
90
+ type: 'input',
91
+ dataType: 'string',
92
+ required: true,
93
+ description: 'The value to match against branch cases'
94
+ },
95
+ {
96
+ id: 'trigger',
97
+ name: 'Trigger',
98
+ type: 'input',
99
+ dataType: 'trigger',
100
+ required: false,
101
+ description: ''
102
+ }
103
+ ],
104
+ outputs: []
105
+ }
106
+ })}
107
+ />
76
108
  </Story>
@@ -1,48 +1,52 @@
1
1
  <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
- import NodeDecorator from "../../stories/NodeDecorator.svelte";
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import NodeDecorator from '../../stories/NodeDecorator.svelte';
4
4
 
5
5
  const { Story } = defineMeta({
6
- title: "Nodes/IdeaNode",
7
- tags: ["autodocs"],
6
+ title: 'Nodes/IdeaNode',
7
+ tags: ['autodocs'],
8
8
  parameters: {
9
- layout: "centered",
10
- },
9
+ layout: 'centered'
10
+ }
11
11
  });
12
12
  </script>
13
13
 
14
14
  <Story name="Default">
15
- <NodeDecorator data={{
16
- label: "Idea",
17
- config: {},
18
- metadata: {
19
- id: "idea",
20
- name: "Idea",
21
- description: "Planning node",
22
- category: "helpers",
23
- version: "1.0.0",
24
- type: "idea",
25
- inputs: [],
26
- outputs: [],
27
- },
28
- }} />
15
+ <NodeDecorator
16
+ data={{
17
+ label: 'Idea',
18
+ config: {},
19
+ metadata: {
20
+ id: 'idea',
21
+ name: 'Idea',
22
+ description: 'Planning node',
23
+ category: 'helpers',
24
+ version: '1.0.0',
25
+ type: 'idea',
26
+ inputs: [],
27
+ outputs: []
28
+ }
29
+ }}
30
+ />
29
31
  </Story>
30
32
 
31
33
  <Story name="With Content">
32
- <NodeDecorator data={{
33
- label: "Feature Idea",
34
- config: {
35
- content: "Add batch processing support to handle multiple items in parallel.",
36
- },
37
- metadata: {
38
- id: "idea",
39
- name: "Idea",
40
- description: "Planning node",
41
- category: "helpers",
42
- version: "1.0.0",
43
- type: "idea",
44
- inputs: [],
45
- outputs: [],
46
- },
47
- }} />
34
+ <NodeDecorator
35
+ data={{
36
+ label: 'Feature Idea',
37
+ config: {
38
+ content: 'Add batch processing support to handle multiple items in parallel.'
39
+ },
40
+ metadata: {
41
+ id: 'idea',
42
+ name: 'Idea',
43
+ description: 'Planning node',
44
+ category: 'helpers',
45
+ version: '1.0.0',
46
+ type: 'idea',
47
+ inputs: [],
48
+ outputs: []
49
+ }
50
+ }}
51
+ />
48
52
  </Story>
@@ -1,69 +1,76 @@
1
1
  <script module>
2
- import { defineMeta } from "@storybook/addon-svelte-csf";
3
- import NodeDecorator from "../../stories/NodeDecorator.svelte";
2
+ import { defineMeta } from '@storybook/addon-svelte-csf';
3
+ import NodeDecorator from '../../stories/NodeDecorator.svelte';
4
4
 
5
5
  const { Story } = defineMeta({
6
- title: "Nodes/NotesNode",
7
- tags: ["autodocs"],
6
+ title: 'Nodes/NotesNode',
7
+ tags: ['autodocs'],
8
8
  parameters: {
9
- layout: "centered",
10
- },
9
+ layout: 'centered'
10
+ }
11
11
  });
12
12
  </script>
13
13
 
14
14
  <Story name="Default">
15
- <NodeDecorator data={{
16
- label: "Notes",
17
- config: {},
18
- metadata: {
19
- id: "notes",
20
- name: "Notes",
21
- description: "Documentation node",
22
- category: "helpers",
23
- version: "1.0.0",
24
- type: "note",
25
- inputs: [],
26
- outputs: [],
27
- },
28
- }} />
15
+ <NodeDecorator
16
+ data={{
17
+ label: 'Notes',
18
+ config: {},
19
+ metadata: {
20
+ id: 'notes',
21
+ name: 'Notes',
22
+ description: 'Documentation node',
23
+ category: 'helpers',
24
+ version: '1.0.0',
25
+ type: 'note',
26
+ inputs: [],
27
+ outputs: []
28
+ }
29
+ }}
30
+ />
29
31
  </Story>
30
32
 
31
33
  <Story name="With Content">
32
- <NodeDecorator data={{
33
- label: "Notes",
34
- config: {
35
- content: "## Important\n\nThis workflow handles **user onboarding**.\n\n- Step 1: Validate email\n- Step 2: Create account\n- Step 3: Send welcome email",
36
- noteType: "info",
37
- },
38
- metadata: {
39
- id: "notes",
40
- name: "Notes",
41
- description: "Documentation node",
42
- category: "helpers",
43
- version: "1.0.0",
44
- type: "note",
45
- inputs: [],
46
- outputs: [],
47
- },
48
- }} />
34
+ <NodeDecorator
35
+ data={{
36
+ label: 'Notes',
37
+ config: {
38
+ content:
39
+ '## Important\n\nThis workflow handles **user onboarding**.\n\n- Step 1: Validate email\n- Step 2: Create account\n- Step 3: Send welcome email',
40
+ noteType: 'info'
41
+ },
42
+ metadata: {
43
+ id: 'notes',
44
+ name: 'Notes',
45
+ description: 'Documentation node',
46
+ category: 'helpers',
47
+ version: '1.0.0',
48
+ type: 'note',
49
+ inputs: [],
50
+ outputs: []
51
+ }
52
+ }}
53
+ />
49
54
  </Story>
50
55
 
51
56
  <Story name="Warning">
52
- <NodeDecorator data={{
53
- label: "Warning",
54
- config: {
55
- content: "Rate limiting is applied to this API call. Max 100 requests/minute.",
56
- noteType: "warning",
57
- },
58
- metadata: {
59
- id: "notes",
60
- name: "Notes",
61
- description: "Documentation node",
62
- category: "helpers",
63
- version: "1.0.0",
64
- type: "note",
65
- inputs: [],
66
- outputs: [],
67
- },
68
- }} />
57
+ <NodeDecorator
58
+ data={{
59
+ label: 'Warning',
60
+ config: {
61
+ content: 'Rate limiting is applied to this API call. Max 100 requests/minute.',
62
+ noteType: 'warning'
63
+ },
64
+ metadata: {
65
+ id: 'notes',
66
+ name: 'Notes',
67
+ description: 'Documentation node',
68
+ category: 'helpers',
69
+ version: '1.0.0',
70
+ type: 'note',
71
+ inputs: [],
72
+ outputs: []
73
+ }
74
+ }}
75
+ />
69
76
  </Story>