@flowdrop/flowdrop 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +68 -24
  2. package/dist/adapters/WorkflowAdapter.js +2 -22
  3. package/dist/adapters/agentspec/autoLayout.d.ts +51 -5
  4. package/dist/adapters/agentspec/autoLayout.js +120 -23
  5. package/dist/chat/commandClassifier.d.ts +19 -0
  6. package/dist/chat/commandClassifier.js +30 -0
  7. package/dist/chat/index.d.ts +27 -0
  8. package/dist/chat/index.js +32 -0
  9. package/dist/chat/responseParser.d.ts +21 -0
  10. package/dist/chat/responseParser.js +87 -0
  11. package/dist/commands/batch.d.ts +18 -0
  12. package/dist/commands/batch.js +56 -0
  13. package/dist/commands/executor.d.ts +37 -0
  14. package/dist/commands/executor.js +1044 -0
  15. package/dist/commands/index.d.ts +14 -0
  16. package/dist/commands/index.js +17 -0
  17. package/dist/commands/parser.d.ts +16 -0
  18. package/dist/commands/parser.js +278 -0
  19. package/dist/commands/positioner.d.ts +19 -0
  20. package/dist/commands/positioner.js +33 -0
  21. package/dist/commands/storeIntegration.svelte.d.ts +16 -0
  22. package/dist/commands/storeIntegration.svelte.js +67 -0
  23. package/dist/commands/types.d.ts +343 -0
  24. package/dist/commands/types.js +45 -0
  25. package/dist/components/App.svelte +351 -12
  26. package/dist/components/App.svelte.d.ts +3 -0
  27. package/dist/components/CanvasController.svelte +38 -0
  28. package/dist/components/CanvasController.svelte.d.ts +32 -0
  29. package/dist/components/ConfigMappingRow.svelte +130 -0
  30. package/dist/components/ConfigMappingRow.svelte.d.ts +8 -0
  31. package/dist/components/ConfigPanel.svelte +56 -7
  32. package/dist/components/ConfigPanel.svelte.d.ts +2 -0
  33. package/dist/components/FlowDropEdge.svelte +2 -10
  34. package/dist/components/LogsSidebar.svelte +5 -5
  35. package/dist/components/NodeSidebar.svelte +15 -49
  36. package/dist/components/NodeSwapPicker.svelte +537 -0
  37. package/dist/components/NodeSwapPicker.svelte.d.ts +16 -0
  38. package/dist/components/PortMappingRow.svelte +209 -0
  39. package/dist/components/PortMappingRow.svelte.d.ts +12 -0
  40. package/dist/components/SwapMappingEditor.svelte +550 -0
  41. package/dist/components/SwapMappingEditor.svelte.d.ts +12 -0
  42. package/dist/components/WorkflowEditor.svelte +99 -4
  43. package/dist/components/WorkflowEditor.svelte.d.ts +8 -0
  44. package/dist/components/chat/AIChatPanel.svelte +658 -0
  45. package/dist/components/chat/AIChatPanel.svelte.d.ts +13 -0
  46. package/dist/components/chat/CommandPreview.svelte +184 -0
  47. package/dist/components/chat/CommandPreview.svelte.d.ts +9 -0
  48. package/dist/components/console/CommandConsole.stories.svelte +93 -0
  49. package/dist/components/console/CommandConsole.stories.svelte.d.ts +27 -0
  50. package/dist/components/console/CommandConsole.svelte +259 -0
  51. package/dist/components/console/CommandConsole.svelte.d.ts +11 -0
  52. package/dist/components/console/ConsoleAutocomplete.svelte +139 -0
  53. package/dist/components/console/ConsoleAutocomplete.svelte.d.ts +21 -0
  54. package/dist/components/console/ConsoleInput.svelte +712 -0
  55. package/dist/components/console/ConsoleInput.svelte.d.ts +16 -0
  56. package/dist/components/console/ConsoleOutput.svelte +121 -0
  57. package/dist/components/console/ConsoleOutput.svelte.d.ts +11 -0
  58. package/dist/components/console/formatters.d.ts +26 -0
  59. package/dist/components/console/formatters.js +118 -0
  60. package/dist/components/interrupt/index.d.ts +1 -0
  61. package/dist/components/interrupt/index.js +1 -0
  62. package/dist/config/endpoints.d.ts +8 -0
  63. package/dist/config/endpoints.js +5 -0
  64. package/dist/core/index.d.ts +5 -0
  65. package/dist/core/index.js +9 -0
  66. package/dist/editor/index.d.ts +3 -1
  67. package/dist/editor/index.js +4 -2
  68. package/dist/helpers/proximityConnect.js +8 -1
  69. package/dist/helpers/workflowEditorHelper.d.ts +3 -53
  70. package/dist/helpers/workflowEditorHelper.js +13 -228
  71. package/dist/playground/index.d.ts +1 -1
  72. package/dist/playground/index.js +1 -1
  73. package/dist/schemas/v1/workflow.schema.json +107 -22
  74. package/dist/services/chatService.d.ts +65 -0
  75. package/dist/services/chatService.js +131 -0
  76. package/dist/services/historyService.d.ts +6 -4
  77. package/dist/services/historyService.js +21 -6
  78. package/dist/stores/interruptStore.svelte.js +6 -1
  79. package/dist/stores/playgroundStore.svelte.d.ts +1 -1
  80. package/dist/stores/playgroundStore.svelte.js +11 -2
  81. package/dist/stores/portCoordinateStore.svelte.d.ts +4 -0
  82. package/dist/stores/portCoordinateStore.svelte.js +20 -26
  83. package/dist/stores/workflowStore.svelte.d.ts +31 -2
  84. package/dist/stores/workflowStore.svelte.js +84 -64
  85. package/dist/types/chat.d.ts +63 -0
  86. package/dist/types/chat.js +9 -0
  87. package/dist/types/events.d.ts +28 -2
  88. package/dist/types/events.js +1 -0
  89. package/dist/types/index.d.ts +8 -0
  90. package/dist/types/settings.d.ts +6 -0
  91. package/dist/types/settings.js +3 -0
  92. package/dist/utils/edgeStyling.d.ts +42 -0
  93. package/dist/utils/edgeStyling.js +176 -0
  94. package/dist/utils/nodeIds.d.ts +31 -0
  95. package/dist/utils/nodeIds.js +42 -0
  96. package/dist/utils/nodeSwap.d.ts +221 -0
  97. package/dist/utils/nodeSwap.js +686 -0
  98. package/package.json +6 -1
  99. package/dist/helpers/nodeLayoutHelper.d.ts +0 -14
  100. package/dist/helpers/nodeLayoutHelper.js +0 -19
@@ -0,0 +1,209 @@
1
+ <!--
2
+ PortMappingRow Component
3
+ A single row in the port mapping editor showing an old port → new port dropdown.
4
+ Styled with BEM syntax.
5
+ -->
6
+
7
+ <script lang="ts">
8
+ import type { NodePort } from "../types/index.js";
9
+ import type { EditablePortMapping, MatchQuality } from "../utils/nodeSwap.js";
10
+
11
+ interface Props {
12
+ mapping: EditablePortMapping;
13
+ availablePorts: NodePort[];
14
+ usedPortIds: Set<string>;
15
+ onUpdate: (newPortId: string | null) => void;
16
+ onReset: () => void;
17
+ }
18
+
19
+ const { mapping, availablePorts, usedPortIds, onUpdate, onReset }: Props =
20
+ $props();
21
+
22
+ const QUALITY_LABELS: Record<MatchQuality, string> = {
23
+ id: "ID match",
24
+ name: "Name match",
25
+ type: "Type match",
26
+ manual: "Manual",
27
+ unmapped: "No match",
28
+ };
29
+
30
+ const QUALITY_CLASSES: Record<MatchQuality, string> = {
31
+ id: "port-mapping-row__badge--id",
32
+ name: "port-mapping-row__badge--name",
33
+ type: "port-mapping-row__badge--type",
34
+ manual: "port-mapping-row__badge--manual",
35
+ unmapped: "port-mapping-row__badge--unmapped",
36
+ };
37
+
38
+ function handleChange(event: Event): void {
39
+ const select = event.target as HTMLSelectElement;
40
+ const value = select.value;
41
+ onUpdate(value === "__drop__" ? null : value);
42
+ }
43
+ </script>
44
+
45
+ <div class="port-mapping-row">
46
+ <div class="port-mapping-row__info">
47
+ <span class="port-mapping-row__port-name">{mapping.oldPort.name}</span>
48
+ <span class="port-mapping-row__port-type">({mapping.oldPort.dataType})</span>
49
+ </div>
50
+
51
+ <div class="port-mapping-row__arrow">&rarr;</div>
52
+
53
+ <div class="port-mapping-row__select-wrapper">
54
+ <select
55
+ class="port-mapping-row__select"
56
+ class:port-mapping-row__select--dropped={!mapping.selectedNewPortId}
57
+ value={mapping.selectedNewPortId ?? "__drop__"}
58
+ onchange={handleChange}
59
+ >
60
+ <option value="__drop__">(Drop connection)</option>
61
+ {#each availablePorts as port (port.id)}
62
+ <option
63
+ value={port.id}
64
+ disabled={usedPortIds.has(port.id) && port.id !== mapping.selectedNewPortId}
65
+ >
66
+ {port.name} ({port.dataType}){usedPortIds.has(port.id) && port.id !== mapping.selectedNewPortId ? " (in use)" : ""}
67
+ </option>
68
+ {/each}
69
+ </select>
70
+ </div>
71
+
72
+ <div class="port-mapping-row__meta">
73
+ <span class="port-mapping-row__badge {QUALITY_CLASSES[mapping.matchQuality]}">
74
+ {QUALITY_LABELS[mapping.matchQuality]}
75
+ </span>
76
+ {#if mapping.isOverridden}
77
+ <button
78
+ class="port-mapping-row__reset"
79
+ onclick={onReset}
80
+ type="button"
81
+ >
82
+ reset
83
+ </button>
84
+ {/if}
85
+ </div>
86
+ </div>
87
+
88
+ <style>
89
+ .port-mapping-row {
90
+ display: flex;
91
+ align-items: center;
92
+ gap: var(--fd-space-xs);
93
+ padding: var(--fd-space-xs) 0;
94
+ font-size: var(--fd-text-xs);
95
+ }
96
+
97
+ .port-mapping-row__info {
98
+ flex: 0 0 auto;
99
+ min-width: 0;
100
+ display: flex;
101
+ align-items: baseline;
102
+ gap: var(--fd-space-3xs);
103
+ }
104
+
105
+ .port-mapping-row__port-name {
106
+ font-weight: 500;
107
+ color: var(--fd-foreground);
108
+ white-space: nowrap;
109
+ overflow: hidden;
110
+ text-overflow: ellipsis;
111
+ }
112
+
113
+ .port-mapping-row__port-type {
114
+ color: var(--fd-muted-foreground);
115
+ font-size: var(--fd-text-xs);
116
+ }
117
+
118
+ .port-mapping-row__arrow {
119
+ flex-shrink: 0;
120
+ color: var(--fd-muted-foreground);
121
+ }
122
+
123
+ .port-mapping-row__select-wrapper {
124
+ flex: 1;
125
+ min-width: 0;
126
+ }
127
+
128
+ .port-mapping-row__select {
129
+ width: 100%;
130
+ padding: 0.25rem 0.375rem;
131
+ border: 1px solid var(--fd-border);
132
+ border-radius: var(--fd-radius-sm);
133
+ background-color: var(--fd-background);
134
+ color: var(--fd-foreground);
135
+ font-size: var(--fd-text-xs);
136
+ cursor: pointer;
137
+ transition:
138
+ border-color var(--fd-transition-normal),
139
+ box-shadow var(--fd-transition-normal);
140
+ }
141
+
142
+ .port-mapping-row__select:focus {
143
+ outline: none;
144
+ border-color: var(--fd-ring);
145
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--fd-ring) 20%, transparent);
146
+ }
147
+
148
+ .port-mapping-row__select--dropped {
149
+ border-color: var(--fd-warning);
150
+ color: var(--fd-warning);
151
+ }
152
+
153
+ .port-mapping-row__meta {
154
+ flex-shrink: 0;
155
+ display: flex;
156
+ align-items: center;
157
+ gap: var(--fd-space-3xs);
158
+ }
159
+
160
+ .port-mapping-row__badge {
161
+ font-size: var(--fd-text-xs);
162
+ padding: 0.0625rem 0.375rem;
163
+ border-radius: var(--fd-radius-sm);
164
+ font-weight: 600;
165
+ text-transform: uppercase;
166
+ letter-spacing: 0.03em;
167
+ white-space: nowrap;
168
+ }
169
+
170
+ .port-mapping-row__badge--id {
171
+ background-color: color-mix(in srgb, var(--fd-success) 15%, transparent);
172
+ color: var(--fd-success);
173
+ }
174
+
175
+ .port-mapping-row__badge--name {
176
+ background-color: color-mix(in srgb, var(--fd-primary) 15%, transparent);
177
+ color: var(--fd-primary);
178
+ }
179
+
180
+ .port-mapping-row__badge--type {
181
+ background-color: color-mix(in srgb, var(--fd-warning) 15%, transparent);
182
+ color: var(--fd-warning);
183
+ }
184
+
185
+ .port-mapping-row__badge--manual {
186
+ background-color: color-mix(in srgb, #a855f7 15%, transparent);
187
+ color: #a855f7;
188
+ }
189
+
190
+ .port-mapping-row__badge--unmapped {
191
+ background-color: color-mix(in srgb, var(--fd-error) 15%, transparent);
192
+ color: var(--fd-error);
193
+ }
194
+
195
+ .port-mapping-row__reset {
196
+ background: none;
197
+ border: none;
198
+ cursor: pointer;
199
+ color: var(--fd-muted-foreground);
200
+ font-size: var(--fd-text-xs);
201
+ text-decoration: underline;
202
+ padding: 0;
203
+ transition: color var(--fd-transition-fast);
204
+ }
205
+
206
+ .port-mapping-row__reset:hover {
207
+ color: var(--fd-primary);
208
+ }
209
+ </style>
@@ -0,0 +1,12 @@
1
+ import type { NodePort } from "../types/index.js";
2
+ import type { EditablePortMapping } from "../utils/nodeSwap.js";
3
+ interface Props {
4
+ mapping: EditablePortMapping;
5
+ availablePorts: NodePort[];
6
+ usedPortIds: Set<string>;
7
+ onUpdate: (newPortId: string | null) => void;
8
+ onReset: () => void;
9
+ }
10
+ declare const PortMappingRow: import("svelte").Component<Props, {}, "">;
11
+ type PortMappingRow = ReturnType<typeof PortMappingRow>;
12
+ export default PortMappingRow;