@foresthubai/workflow-builder 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -661
- package/NOTICE +16 -16
- package/README.md +110 -93
- package/dist/components/ui/command.d.ts +2 -2
- package/dist/components/ui/input.d.ts +1 -1
- package/dist/components/ui/resizable.d.ts +1 -1
- package/dist/components/ui/textarea.d.ts +1 -1
- package/dist/graph/BaseNode.js +10 -10
- package/dist/graph/reactFlowRegistry.d.ts.map +1 -1
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +6 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/toolbars/CanvasTabsToolbar.d.ts +11 -0
- package/dist/toolbars/CanvasTabsToolbar.d.ts.map +1 -0
- package/dist/toolbars/CanvasTabsToolbar.js +101 -0
- package/dist/toolbars/CanvasTabsToolbar.js.map +1 -0
- package/package.json +2 -2
- package/src/BuilderLayout.tsx +345 -345
- package/src/Canvas.tsx +261 -261
- package/src/CanvasEditor.tsx +142 -142
- package/src/CanvasTabsToolbar.tsx +176 -176
- package/src/RightConfigPanel.tsx +266 -266
- package/src/WorkflowBuilder.tsx +412 -412
- package/src/cn.ts +6 -6
- package/src/components/ui/add-button.tsx +39 -39
- package/src/components/ui/alert-dialog.tsx +141 -141
- package/src/components/ui/alert.tsx +59 -59
- package/src/components/ui/badge.tsx +36 -36
- package/src/components/ui/button.tsx +85 -85
- package/src/components/ui/card.tsx +79 -79
- package/src/components/ui/checkbox.tsx +28 -28
- package/src/components/ui/collapsible.tsx +9 -9
- package/src/components/ui/command.tsx +153 -153
- package/src/components/ui/delete-button.tsx +23 -23
- package/src/components/ui/dialog.tsx +125 -125
- package/src/components/ui/dropdown-menu.tsx +198 -198
- package/src/components/ui/input.tsx +55 -55
- package/src/components/ui/label.tsx +24 -24
- package/src/components/ui/readonly-banner.tsx +15 -15
- package/src/components/ui/resizable.tsx +43 -43
- package/src/components/ui/scroll-area.tsx +102 -102
- package/src/components/ui/select.tsx +160 -160
- package/src/components/ui/separator.tsx +29 -29
- package/src/components/ui/switch.tsx +27 -27
- package/src/components/ui/textarea.tsx +51 -51
- package/src/components/ui/toast.tsx +127 -127
- package/src/components/ui/toaster.tsx +33 -33
- package/src/components/ui/toggle-group.tsx +59 -59
- package/src/components/ui/toggle.tsx +43 -43
- package/src/components/ui/tooltip.tsx +32 -32
- package/src/dialogs/NodePickerDialog.tsx +84 -84
- package/src/dialogs/ValidationDialog.tsx +184 -184
- package/src/graph/BaseNode.tsx +557 -557
- package/src/graph/CustomEdge.tsx +185 -185
- package/src/graph/CustomNode.tsx +16 -16
- package/src/graph/FunctionCallNode.tsx +30 -30
- package/src/graph/PortHandle.tsx +189 -189
- package/src/graph/reactFlowRegistry.ts +26 -26
- package/src/hooks/use-toast.ts +125 -125
- package/src/hooks/useAvailableVariables.ts +20 -20
- package/src/hooks/useCanvasHistory.ts +22 -22
- package/src/hooks/useCanvasTabs.ts +168 -168
- package/src/hooks/useFunctionDiagnosticsSync.ts +40 -40
- package/src/hooks/useFunctionRegistry.ts +26 -26
- package/src/hooks/useFunctions.ts +44 -44
- package/src/hooks/useGraph.ts +161 -161
- package/src/hooks/useNodeDefinitions.ts +82 -82
- package/src/hooks/useParamErrors.ts +26 -26
- package/src/hooks/useResolvedTheme.ts +30 -30
- package/src/hooks/useResourceDiagnosticsSync.ts +58 -58
- package/src/hooks/useSuppressThemeTransition.ts +79 -79
- package/src/hooks/useWorkflowSerialization.ts +127 -127
- package/src/i18n/index.ts +53 -53
- package/src/i18n/locales/de.json +501 -501
- package/src/i18n/locales/en.json +557 -557
- package/src/index.ts +27 -27
- package/src/inputs/ExpressionInput.tsx +297 -297
- package/src/inputs/ParameterEditor.tsx +515 -515
- package/src/inputs/PortSection.tsx +144 -144
- package/src/panels/BuilderSidebar.tsx +301 -301
- package/src/panels/ChannelConfigPanel.tsx +49 -49
- package/src/panels/ChannelsPanel.tsx +28 -28
- package/src/panels/DebugConsolePanel.tsx +73 -73
- package/src/panels/DebugContextPanel.tsx +77 -77
- package/src/panels/DebugExternalIOPanel.tsx +180 -180
- package/src/panels/DiagnosticsPanel.tsx +170 -170
- package/src/panels/EdgeConfigPanel.tsx +104 -104
- package/src/panels/FunctionConfigPanel.tsx +179 -179
- package/src/panels/FunctionListPanel.tsx +45 -45
- package/src/panels/MemoryConfigPanel.tsx +55 -55
- package/src/panels/MemoryPanel.tsx +40 -40
- package/src/panels/ModelConfigPanel.tsx +41 -41
- package/src/panels/ModelsPanel.tsx +36 -36
- package/src/panels/NodeConfigPanel.tsx +630 -630
- package/src/panels/NodeLibrary.tsx +288 -288
- package/src/panels/ResourceConfigPanel.tsx +132 -132
- package/src/panels/ResourceListPanel.tsx +113 -113
- package/src/panels/VariableConfigPanel.tsx +161 -161
- package/src/panels/VariablesPanel.tsx +145 -145
- package/src/stores/canvasStore.test.ts +44 -44
- package/src/stores/canvasStore.ts +245 -245
- package/src/stores/debugStore.ts +74 -74
- package/src/stores/diagnosticsStore.ts +130 -130
- package/src/stores/editorStore.ts +202 -202
- package/src/styles/index.css +526 -526
- package/src/utils/categoryConstants.ts +26 -26
- package/src/utils/channelOperations.ts +86 -86
- package/src/utils/connectionRules.ts +137 -137
- package/src/utils/functionOperations.ts +179 -179
- package/src/utils/graphOperations.ts +550 -550
- package/src/utils/history.ts +207 -207
- package/src/utils/memoryOperations.ts +57 -57
- package/src/utils/migrateFunctionNodes.ts +107 -107
- package/src/utils/modelOperations.ts +55 -55
- package/src/utils/paramDisplay.ts +71 -71
- package/src/utils/resourceHelpers.ts +32 -32
- package/src/utils/translation.ts +28 -28
- package/src/utils/variableOperations.ts +75 -75
- package/tailwind-preset.ts +166 -166
package/src/i18n/locales/de.json
CHANGED
|
@@ -1,501 +1,501 @@
|
|
|
1
|
-
{
|
|
2
|
-
"nodeLibrary": "Node-Bibliothek",
|
|
3
|
-
"blockLibrary": "Node-Bibliothek",
|
|
4
|
-
"diagnostics": "Diagnose",
|
|
5
|
-
"functionDefinition": "Funktionsdefinition",
|
|
6
|
-
"open": "Öffnen",
|
|
7
|
-
"close": "Schließen",
|
|
8
|
-
"save": "Speichern",
|
|
9
|
-
"exportAsJSON": "Als JSON exportieren",
|
|
10
|
-
"versionHistory": "Versionsverlauf",
|
|
11
|
-
"test": "Testen",
|
|
12
|
-
"run": "Ausführen",
|
|
13
|
-
"stop": "Stoppen",
|
|
14
|
-
"deploy": "Bereitstellen",
|
|
15
|
-
"configure": "Konfigurieren",
|
|
16
|
-
"addBlock": "Node hinzufügen",
|
|
17
|
-
"deleteBlock": "Node löschen",
|
|
18
|
-
"duplicateBlock": "Node duplizieren",
|
|
19
|
-
"connectBlocks": "Nodes verbinden",
|
|
20
|
-
"disconnectBlocks": "Nodes trennen",
|
|
21
|
-
"zoomIn": "Vergrößern",
|
|
22
|
-
"zoomOut": "Verkleinern",
|
|
23
|
-
"fitView": "An Ansicht anpassen",
|
|
24
|
-
"autoLayout": "Auto-Layout",
|
|
25
|
-
"grid": "Raster",
|
|
26
|
-
"showGrid": "Raster anzeigen",
|
|
27
|
-
"snapToGrid": "Am Raster ausrichten",
|
|
28
|
-
"undo": "Rückgängig",
|
|
29
|
-
"redo": "Wiederholen",
|
|
30
|
-
"cut": "Ausschneiden",
|
|
31
|
-
"copy": "Kopieren",
|
|
32
|
-
"paste": "Einfügen",
|
|
33
|
-
"selectAll": "Alle auswählen",
|
|
34
|
-
"deselectAll": "Auswahl aufheben",
|
|
35
|
-
"delete": "Löschen",
|
|
36
|
-
"canvas": "Canvas",
|
|
37
|
-
"parameters": "Parameter",
|
|
38
|
-
"connections": "Verbindungen",
|
|
39
|
-
"validation": "Validierung",
|
|
40
|
-
"errors": "Fehler",
|
|
41
|
-
"warnings": "Warnungen",
|
|
42
|
-
"noErrors": "Keine Fehler gefunden",
|
|
43
|
-
"unknownNodeType": "Unbekannter Nodetyp: {{type}}",
|
|
44
|
-
"deleteNode": "Node löschen",
|
|
45
|
-
"updateToLatestDefinition": "Auf neueste Definition aktualisieren",
|
|
46
|
-
"functionCallNodesMigrated": "Funktionsaufruf-Nodes aktualisiert",
|
|
47
|
-
"functionCallNodesMigratedDesc": "{{count}} Node(s) wurden auf die neueste Funktionsdefinition migriert.",
|
|
48
|
-
"variables": "Variablen",
|
|
49
|
-
"models": "KI-Modelle",
|
|
50
|
-
"agents": "Agenten",
|
|
51
|
-
"conversations": "Konversationen",
|
|
52
|
-
"noVariables": "Keine Variablen verfügbar",
|
|
53
|
-
"addBlocksForVariables": "Fügen Sie Nodes hinzu, um deren Ausgabevariablen zu sehen",
|
|
54
|
-
"agentsDescription": "AI-Agenten für Ihren Workflow verwalten und konfigurieren",
|
|
55
|
-
"noAgentsConfigured": "Noch keine Agenten konfiguriert",
|
|
56
|
-
"addAgent": "Agent hinzufügen",
|
|
57
|
-
"availableAgents": "Verfügbare Agenten",
|
|
58
|
-
"comingSoon": "Demnächst...",
|
|
59
|
-
"conversationsDescription": "Konversationsabläufe anzeigen und verwalten",
|
|
60
|
-
"noConversations": "Noch keine Konversationen",
|
|
61
|
-
"newConversation": "Neue Konversation",
|
|
62
|
-
"conversationTemplates": "Vorlagen",
|
|
63
|
-
"newWorkflow": "Neuer Workflow",
|
|
64
|
-
"searchBlocks": "Nodes durchsuchen...",
|
|
65
|
-
"noParameters": "Keine Parameter",
|
|
66
|
-
"moreCount": "+{{count}} weitere",
|
|
67
|
-
"parametersLabel": "Parameter:",
|
|
68
|
-
"required": "Erforderlich",
|
|
69
|
-
"optional": "Optional",
|
|
70
|
-
"typeLabel": "Typ:",
|
|
71
|
-
"defaultLabel": "Standard:",
|
|
72
|
-
"optionsLabel": "Optionen:",
|
|
73
|
-
"parameterCount": "{{count}} Parameter",
|
|
74
|
-
"paramTypeText": "Text",
|
|
75
|
-
"paramTypeNumber": "Zahl",
|
|
76
|
-
"paramTypeBoolean": "Boolean",
|
|
77
|
-
"paramTypeSelection": "Auswahl",
|
|
78
|
-
"paramTypeExpression": "Expr",
|
|
79
|
-
"noModelsAvailable": "Derzeit sind keine LLM-Modelle verfügbar. Bitte kontaktieren Sie den Support.",
|
|
80
|
-
"generatedConfig": "Generierte Konfiguration",
|
|
81
|
-
"importProject": "Projekt importieren",
|
|
82
|
-
"jsonConfig": "JSON-Konfiguration",
|
|
83
|
-
"jsonConfigPlaceholder": "JSON-Konfiguration hier einfügen...",
|
|
84
|
-
"orUploadFile": "Oder Datei hochladen",
|
|
85
|
-
"import": "Importieren",
|
|
86
|
-
"saveWorkflow": "Workflow speichern",
|
|
87
|
-
"createProject": "Projekt erstellen",
|
|
88
|
-
"create": "Erstellen",
|
|
89
|
-
"unsavedDraft": "Ungespeicherter Entwurf",
|
|
90
|
-
"unsavedDraftWarning": "Sie haben ungespeicherte Änderungen, die verloren gehen. Trotzdem verlassen?",
|
|
91
|
-
"saveFailedMessage": "Das Projekt konnte nicht erstellt werden. Laden Sie Ihre Arbeit als JSON herunter, um sie nicht zu verlieren.",
|
|
92
|
-
"downloadAsJSON": "Als JSON herunterladen",
|
|
93
|
-
"namePlaceholder": "Workflow Name eingeben...",
|
|
94
|
-
"descriptionOptional": "Beschreibung (optional)",
|
|
95
|
-
"descriptionPlaceholder": "Kurze Beschreibung des Workflows...",
|
|
96
|
-
"saving": "Speichere...",
|
|
97
|
-
"testAgentNode": "Agenten-Node testen",
|
|
98
|
-
"testAgentDescription": "Sende einen Prompt an den Agenten und streame die Antwort. Die Kosten werden mit deinem Guthaben verrechnet.",
|
|
99
|
-
"prompt": "Prompt",
|
|
100
|
-
"promptPlaceholder": "Beschreibe die Aufgabe für den Agenten",
|
|
101
|
-
"testing": "Wird getestet…",
|
|
102
|
-
"startTest": "Test starten",
|
|
103
|
-
"stopTest": "Stopp",
|
|
104
|
-
"testAgent": "Agent testen",
|
|
105
|
-
"maxTurns": "Max. Durchläufe",
|
|
106
|
-
"toolCall": "Tool-Aufruf: {{name}}",
|
|
107
|
-
"toolResult": "Tool-Ergebnis: {{name}}",
|
|
108
|
-
"finalOutput": "Endergebnis ({{turns}} Durchläufe)",
|
|
109
|
-
"structuredOutput": "Strukturierte Ausgabe",
|
|
110
|
-
"structuredOutputParseError": "Strukturierte Ausgabe konnte nicht als JSON geparst werden",
|
|
111
|
-
"rawJson": "Roh-JSON",
|
|
112
|
-
"outputName": "Name",
|
|
113
|
-
"outputType": "Typ",
|
|
114
|
-
"outputValue": "Wert",
|
|
115
|
-
"noNodeSelected": "Kein Node gewählt",
|
|
116
|
-
"selectNodeMessage": "Bitte wähle einen Ziel-Node im Canvas.",
|
|
117
|
-
"importError": "Import Fehler",
|
|
118
|
-
"invalidJson": "Ungültiges JSON-Format",
|
|
119
|
-
"exportSuccess": "Export erfolgreich",
|
|
120
|
-
"configDownloaded": "Konfiguration wurde heruntergeladen",
|
|
121
|
-
"copied": "Kopiert",
|
|
122
|
-
"configCopied": "Konfiguration wurde in die Zwischenablage kopiert",
|
|
123
|
-
"autoVersionMessage": "Automatischer Checkpoint",
|
|
124
|
-
"autoVersionLabel": "Auto",
|
|
125
|
-
"saveStatus.saved": "Gespeichert",
|
|
126
|
-
"saveStatus.saving": "Speichern...",
|
|
127
|
-
"saveStatus.unsaved": "Ungespeicherte Änderungen",
|
|
128
|
-
"versionRenameTooltip": "Version umbenennen",
|
|
129
|
-
"versionPreviewPlaceholder": "Visuelle Vorschau kommt bald",
|
|
130
|
-
"preview.viewingVersion": "Version #{{number}} vom {{date}}",
|
|
131
|
-
"preview.restore": "Wiederherstellen",
|
|
132
|
-
"preview.cancel": "Zurück zum aktuellen Stand",
|
|
133
|
-
"preview.viewButton": "Ansehen",
|
|
134
|
-
"preview.viewOnly": "Nur Ansicht",
|
|
135
|
-
"preview.noPreview": "Version auswählen für Vorschau",
|
|
136
|
-
"preview.selectVersion": "Version auswählen zum Ansehen",
|
|
137
|
-
"preview.template": "Template: {{name}}",
|
|
138
|
-
"preview.useAsProject": "Als Projekt verwenden",
|
|
139
|
-
"preview.emptyCanvas": "Keine Nodes in dieser Version",
|
|
140
|
-
"preview.setAsCurrent": "Als aktuell setzen",
|
|
141
|
-
"preview.returnToCurrent": "Zurück zur aktuellen",
|
|
142
|
-
"debug.session": "Debug-Sitzung",
|
|
143
|
-
"debug.start": "Debug",
|
|
144
|
-
"debug.stop": "Stopp",
|
|
145
|
-
"debug.step": "Schritt",
|
|
146
|
-
"debug.building": "Kompiliert",
|
|
147
|
-
"debug.idle": "Bereit",
|
|
148
|
-
"debug.paused": "Pausiert",
|
|
149
|
-
"debug.stepping": "Ausführung",
|
|
150
|
-
"debug.error": "Fehler",
|
|
151
|
-
"debug.console": "Konsole",
|
|
152
|
-
"debug.clearConsole": "Konsole leeren",
|
|
153
|
-
"debug.consoleEmpty": "Konsolenausgaben erscheinen hier während der Ausführung.",
|
|
154
|
-
"debug.context": "Kontext",
|
|
155
|
-
"debug.externalIO": "Externe E/A",
|
|
156
|
-
"debug.noVariables": "Keine Workflow-Variablen definiert.",
|
|
157
|
-
"debug.noInputsNeeded": "Keine externen Eingaben für diesen Node erforderlich.",
|
|
158
|
-
"debug.selectNode": "Wähle einen Node zum Debuggen.",
|
|
159
|
-
"debug.triggerNotSteppable": "Trigger-Nodes können nicht einzeln ausgeführt werden. Wähle einen nachfolgenden Node.",
|
|
160
|
-
"debug.gpioPin": "GPIO Pin {{pin}}",
|
|
161
|
-
"debug.serialInput": "Serielle Eingabe",
|
|
162
|
-
"debug.serialPlaceholder": "Serielle Daten eingeben...",
|
|
163
|
-
"versionsLoading": "Lade Versionen...",
|
|
164
|
-
"noVersions": "Keine Versionen vorhanden.",
|
|
165
|
-
"versionsReadOnly": "Versionen sind schreibgeschützt und können nicht verändert werden.",
|
|
166
|
-
"loadingDialogs": "Dialoge laden…",
|
|
167
|
-
"loadingVersions": "Versionen laden…",
|
|
168
|
-
"loadingTest": "Testdialog lädt…",
|
|
169
|
-
"current": "Aktuell",
|
|
170
|
-
"newFunction": "Neue Funktion",
|
|
171
|
-
"enterExpression": "Ausdruck eingeben...",
|
|
172
|
-
"enterTypeExpression": "{{type}}-Ausdruck eingeben...",
|
|
173
|
-
"fromNode": "von {{node}}",
|
|
174
|
-
"addFunction": "Funktion hinzufügen",
|
|
175
|
-
"addFunctionHint": "Wiederverwendbare Funktion erstellen",
|
|
176
|
-
"addNodesForVariables": "Nodes hinzufügen, um deren Ausgabevariablen zu sehen",
|
|
177
|
-
"addVariable": "Variable hinzufügen",
|
|
178
|
-
"continueWithWarnings": "Mit Warnungen fortfahren",
|
|
179
|
-
"createFunction": "Funktion erstellen",
|
|
180
|
-
"definedVariables": "Definierte Variablen",
|
|
181
|
-
"deleteFunction": "Funktion löschen",
|
|
182
|
-
"deleteFunctionTitle": "Funktion löschen?",
|
|
183
|
-
"done": "Fertig",
|
|
184
|
-
"editFunction": "Funktion bearbeiten",
|
|
185
|
-
"expressionFor": "Ausdruck für",
|
|
186
|
-
"fnarg": "Arg",
|
|
187
|
-
"functionArguments": "Funktionsargumente",
|
|
188
|
-
"functionDialogDesc": "Funktionsnamen, Eingaben und Ausgaben konfigurieren.",
|
|
189
|
-
"functionInputsDesc": "Argumente, die beim Aufruf der Funktion übergeben werden",
|
|
190
|
-
"functionOutputsDesc": "Werte, die die Funktion zurückgibt; jeder ist ein Ausdruck über ihre Eingaben und ihren Rumpf",
|
|
191
|
-
"functionName": "Funktionsname",
|
|
192
|
-
"functionNamePlaceholder": "Funktionsname eingeben...",
|
|
193
|
-
"functions": "Funktionen",
|
|
194
|
-
"openFunction": "Funktion öffnen",
|
|
195
|
-
"globalVariable": "Globale Variable",
|
|
196
|
-
"initialValue": "Anfangswert",
|
|
197
|
-
"inputs": "Eingaben",
|
|
198
|
-
"nodeOutputVariables": "Node-Ausgabevariablen",
|
|
199
|
-
"noEdgeParams": "Keine Kantenparameter",
|
|
200
|
-
"noFunctionInfo": "Keine Funktionsinformationen verfügbar",
|
|
201
|
-
"noFunctions": "Noch keine Funktionen",
|
|
202
|
-
"noInputs": "Keine Eingaben",
|
|
203
|
-
"noIssuesFound": "Keine Probleme gefunden",
|
|
204
|
-
"noOutputs": "Keine Ausgaben",
|
|
205
|
-
"outputs": "Ausgaben",
|
|
206
|
-
"returnValueAssignments": "Rückgabewert-Zuweisungen",
|
|
207
|
-
"returnValueAssignmentsDesc": "Ausdrücke den Funktions-Rückgabewerten zuweisen",
|
|
208
|
-
"deleteEdge": "Verbindung löschen",
|
|
209
|
-
"renameProject": "Projekt umbenennen",
|
|
210
|
-
"functionCallDesc": "Die Funktion \"{{name}}\" aufrufen",
|
|
211
|
-
"functionParamDesc": "Wert für {{name}} eingeben",
|
|
212
|
-
"functionOutputDesc": "Name der Ausgabevariable für {{name}} eingeben",
|
|
213
|
-
"deleteFunctionDesc": "Diese Funktion und alle zugehörigen Knoten werden dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.",
|
|
214
|
-
"nodeLabel": "Knoten",
|
|
215
|
-
"validationPassed": "Keine Fehler oder Warnungen in Workflow",
|
|
216
|
-
"validationIssues": "Validierungsprobleme",
|
|
217
|
-
"validationErrorsDesc": "{{errorCount}} Fehler und {{warningCount}} Warnung(en) gefunden. Fehler müssen vor dem Export behoben werden.",
|
|
218
|
-
"validationWarningsDesc": "{{warningCount}} Warnung(en) gefunden. Sie können trotzdem fortfahren.",
|
|
219
|
-
"versionSaved": "Version gespeichert",
|
|
220
|
-
"versionSaveError": "Version konnte nicht gespeichert werden",
|
|
221
|
-
"versionRestored": "Version wiederhergestellt",
|
|
222
|
-
"versionRestoreError": "Version konnte nicht wiederhergestellt werden",
|
|
223
|
-
"versionRenamed": "Version umbenannt",
|
|
224
|
-
"versionRenameError": "Version konnte nicht umbenannt werden",
|
|
225
|
-
"codeGenSuccess": "Die Embedded-Firmware wurde erfolgreich generiert und heruntergeladen.",
|
|
226
|
-
"codeGenTitle": "C-Code generiert",
|
|
227
|
-
"codeGenError": "C-Code Generierung fehlgeschlagen",
|
|
228
|
-
"codeGenErrorDesc": "Der C-Code konnte nicht generiert werden.",
|
|
229
|
-
"seoDescription": "Visueller Builder für Ihre Projekte.",
|
|
230
|
-
"projectNotFound": "Projekt nicht gefunden",
|
|
231
|
-
"projectNotFoundDesc": "Das ausgewählte Projekt existiert nicht.",
|
|
232
|
-
"deploymentNotFound": "Deployment nicht gefunden",
|
|
233
|
-
"deployDialog": {
|
|
234
|
-
"title": "Workflow bereitstellen",
|
|
235
|
-
"description": "Diesen Workflow auf einem Gerät bereitstellen.",
|
|
236
|
-
"redeployTab": "Agent aktualisieren",
|
|
237
|
-
"newAgentTab": "Neuer Agent",
|
|
238
|
-
"selectAgent": "Agent auswählen",
|
|
239
|
-
"redeploy": "Erneut bereitstellen",
|
|
240
|
-
"selectDevice": "Gerät auswählen",
|
|
241
|
-
"agentName": "Agent-Name",
|
|
242
|
-
"agentNamePlaceholder": "z. B. Gewächshaus-Controller",
|
|
243
|
-
"confirm": "Bereitstellen",
|
|
244
|
-
"platform": "Plattform",
|
|
245
|
-
"platformPlaceholder": "Plattform auswählen",
|
|
246
|
-
"submitPush": "An Engine pushen",
|
|
247
|
-
"submitBundle": "Bundle herunterladen",
|
|
248
|
-
"submitCreateAndBundle": "Agent anlegen & herunterladen",
|
|
249
|
-
"method": {
|
|
250
|
-
"sectionTitle": "Deploy-Methode",
|
|
251
|
-
"push": "An Engine pushen",
|
|
252
|
-
"pushHint": "Den Workflow direkt über das lokale Netzwerk an die laufende Engine senden.",
|
|
253
|
-
"bundle": "Bundle herunterladen",
|
|
254
|
-
"bundleHint": "Deploy-Bundle herunterladen und manuell auf dem Gerät anwenden.",
|
|
255
|
-
"includeImage": "Auch Engine-Image (.tar) herunterladen",
|
|
256
|
-
"offlineHint": "Engine ist offline — zuletzt gesehen {{time}}. Bitte das Bundle herunterladen und auf dem Gerät anwenden.",
|
|
257
|
-
"pendingHint": "Engine startet nach dem letzten Deployment. Sie können das Bundle herunterladen, um es manuell anzuwenden.",
|
|
258
|
-
"bootErrorHint": "Engine meldet einen Boot-Fehler. Bitte das Bundle herunterladen und erneut auf dem Gerät anwenden.",
|
|
259
|
-
"newAgentHint": "Ein neuer Agent hat noch keine laufende Engine. Beim Bestätigen wird der Agent angelegt und das Deploy-Bundle für die manuelle Installation heruntergeladen."
|
|
260
|
-
},
|
|
261
|
-
"redeployHeader": "{{workflow}} auf {{agent}} erneut bereitstellen",
|
|
262
|
-
"success": {
|
|
263
|
-
"push": "Workflow an Engine gepusht",
|
|
264
|
-
"bundle": "Deploy-Bundle heruntergeladen",
|
|
265
|
-
"bundleWithImage": "Bundle und Engine-Image heruntergeladen"
|
|
266
|
-
},
|
|
267
|
-
"warn": {
|
|
268
|
-
"imageFailed": "Engine-Image-Download fehlgeschlagen",
|
|
269
|
-
"imageFailedDescription": "Bundle wurde erfolgreich heruntergeladen. Sie können den Image-Download von der Agent-Detailseite erneut starten."
|
|
270
|
-
},
|
|
271
|
-
"error": {
|
|
272
|
-
"save": "Speichern des Workflows fehlgeschlagen",
|
|
273
|
-
"push": "Push an Engine fehlgeschlagen",
|
|
274
|
-
"pushUnreachable": "Engine ist nicht erreichbar — versuchen Sie es mit dem Bundle-Download",
|
|
275
|
-
"pushForbidden": "Engine hat die Anfrage abgelehnt — bitte Agent-Zugangsdaten prüfen",
|
|
276
|
-
"bundle": "Bundle-Download fehlgeschlagen"
|
|
277
|
-
},
|
|
278
|
-
"releaseInfo": "Release {{number}}",
|
|
279
|
-
"newRelease": "Neues Release wird erstellt",
|
|
280
|
-
"savingChanges": "Änderungen werden gespeichert...",
|
|
281
|
-
"deploying": "Wird bereitgestellt...",
|
|
282
|
-
"deploySuccess": "Erfolgreich bereitgestellt",
|
|
283
|
-
"deploySuccessDesc": "Auf {{device}} bereitgestellt",
|
|
284
|
-
"draftError": "Speichern Sie Ihr Projekt vor der Bereitstellung"
|
|
285
|
-
},
|
|
286
|
-
"blocks": {
|
|
287
|
-
"input": "Eingang",
|
|
288
|
-
"output": "Ausgang",
|
|
289
|
-
"logic": "Logik",
|
|
290
|
-
"math": "Mathematik",
|
|
291
|
-
"ai": "KI",
|
|
292
|
-
"control": "Steuerung",
|
|
293
|
-
"sensor": "Sensor",
|
|
294
|
-
"actuator": "Aktor",
|
|
295
|
-
"communication": "Kommunikation",
|
|
296
|
-
"storage": "Speicher",
|
|
297
|
-
"custom": "Benutzerdefiniert"
|
|
298
|
-
},
|
|
299
|
-
"add": "Hinzufügen",
|
|
300
|
-
"cancel": "Abbrechen",
|
|
301
|
-
"nodes": {
|
|
302
|
-
"ReadPin": {
|
|
303
|
-
"description": "Daten von einem Pin lesen",
|
|
304
|
-
"params": {
|
|
305
|
-
"pinNumber": {
|
|
306
|
-
"description": "Nummer des zu lesenden Pins"
|
|
307
|
-
},
|
|
308
|
-
"signalType": {
|
|
309
|
-
"description": "Art des Signals"
|
|
310
|
-
},
|
|
311
|
-
"outputName": {
|
|
312
|
-
"description": "Name für die erzeugte Ausgabevariable"
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
},
|
|
316
|
-
"SerialRead": {
|
|
317
|
-
"description": "Zeichenkette von serieller Schnittstelle lesen",
|
|
318
|
-
"params": {
|
|
319
|
-
"prompt": {
|
|
320
|
-
"description": "Aufforderung für den seriellen Lesevorgang"
|
|
321
|
-
},
|
|
322
|
-
"outputName": {
|
|
323
|
-
"description": "Name der Variable für den gelesenen Wert"
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
},
|
|
327
|
-
"Retriever": {
|
|
328
|
-
"description": "Ruft relevante Dokumente aus einer Wissensdatenbank ab",
|
|
329
|
-
"params": {
|
|
330
|
-
"memoryReference": {
|
|
331
|
-
"description": "Die zu durchsuchende Vektordatenbank"
|
|
332
|
-
},
|
|
333
|
-
"topK": {
|
|
334
|
-
"description": "Anzahl der abzurufenden Ergebnisse"
|
|
335
|
-
},
|
|
336
|
-
"outputName": {
|
|
337
|
-
"description": "Variablenname für die abgerufenen Ergebnisse"
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
},
|
|
341
|
-
"WritePin": {
|
|
342
|
-
"description": "Daten an einen Pin schreiben",
|
|
343
|
-
"params": {
|
|
344
|
-
"pinNumber": {
|
|
345
|
-
"description": "Nummer des zu beschreibenden Pins"
|
|
346
|
-
},
|
|
347
|
-
"signalType": {
|
|
348
|
-
"description": "Art des Signals"
|
|
349
|
-
},
|
|
350
|
-
"value": {
|
|
351
|
-
"description": "Welcher Wert an den Pin geschrieben werden soll"
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
},
|
|
355
|
-
"SerialWrite": {
|
|
356
|
-
"description": "Zeichenkette an serielle Schnittstelle schreiben",
|
|
357
|
-
"params": {
|
|
358
|
-
"value": {
|
|
359
|
-
"description": "Ausdruck für den zu schreibenden Wert"
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
},
|
|
363
|
-
"OnFunctionCall": {
|
|
364
|
-
"description": "Wird ausgelöst, wenn diese Funktion von einem Funktionsaufruf-Knoten aufgerufen wird"
|
|
365
|
-
},
|
|
366
|
-
"Delay": {
|
|
367
|
-
"description": "Pausiert die Ausführung für eine bestimmte Dauer und löst aus, wenn die Verzögerung abgeschlossen ist. Während dieser Pause können andere Knotenketten ausgeführt werden.",
|
|
368
|
-
"params": {
|
|
369
|
-
"delayMs": {
|
|
370
|
-
"description": "Zeit in Millisekunden für die Pause"
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
},
|
|
374
|
-
"Ticker": {
|
|
375
|
-
"description": "Wird wiederholt in einem festgelegten Intervall ausgelöst",
|
|
376
|
-
"params": {
|
|
377
|
-
"intervalValue": {
|
|
378
|
-
"description": "Anzahl der Einheiten zwischen Takten"
|
|
379
|
-
},
|
|
380
|
-
"intervalUnit": {
|
|
381
|
-
"description": "Zeiteinheit für das Intervall"
|
|
382
|
-
}
|
|
383
|
-
}
|
|
384
|
-
},
|
|
385
|
-
"Alarm": {
|
|
386
|
-
"description": "Wird zu einer geplanten Zeit an ausgewählten Wochentagen ausgelöst",
|
|
387
|
-
"params": {
|
|
388
|
-
"time": {
|
|
389
|
-
"description": "Tageszeit für die Auslösung (24-Stunden-Format)"
|
|
390
|
-
},
|
|
391
|
-
"days": {
|
|
392
|
-
"description": "Wochentage für die Auslösung (leer = jeden Tag)"
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
},
|
|
396
|
-
"OnStartup": {
|
|
397
|
-
"description": "Wird einmal ausgelöst, wenn das Gerät eingeschaltet wird"
|
|
398
|
-
},
|
|
399
|
-
"OnPinChange": {
|
|
400
|
-
"description": "Wird ausgelöst, wenn sich ein Pin-Wert ändert",
|
|
401
|
-
"params": {
|
|
402
|
-
"pinNumber": {
|
|
403
|
-
"description": "Zu überwachende Pin-Nummer"
|
|
404
|
-
},
|
|
405
|
-
"outputName": {
|
|
406
|
-
"description": "Name der Variable, die den Pin-Wert enthält, wenn der Trigger ausgelöst wird"
|
|
407
|
-
},
|
|
408
|
-
"mode": {
|
|
409
|
-
"description": "Ob der Pin als digital oder analog gelesen werden soll"
|
|
410
|
-
},
|
|
411
|
-
"edge": {
|
|
412
|
-
"description": "Welcher Flankenübergang das Ereignis auslöst"
|
|
413
|
-
},
|
|
414
|
-
"threshold": {
|
|
415
|
-
"description": "Analoger Schwellenwert (0-1023)"
|
|
416
|
-
},
|
|
417
|
-
"direction": {
|
|
418
|
-
"description": "Richtung der Schwellenwertüberschreitung, die das Ereignis auslöst"
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
},
|
|
422
|
-
"OnSerialReceive": {
|
|
423
|
-
"description": "Wird ausgelöst, wenn serielle Daten eintreffen"
|
|
424
|
-
},
|
|
425
|
-
"OnThreshold": {
|
|
426
|
-
"description": "Wird ausgelöst, wenn ein Ausdruckswert einen Schwellenwert überschreitet",
|
|
427
|
-
"params": {
|
|
428
|
-
"value": {
|
|
429
|
-
"description": "Zu überwachender Ausdruck"
|
|
430
|
-
},
|
|
431
|
-
"threshold": {
|
|
432
|
-
"description": "Schwellenwert"
|
|
433
|
-
},
|
|
434
|
-
"direction": {
|
|
435
|
-
"description": "Richtung der Schwellenwertüberschreitung, die das Ereignis auslöst"
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
},
|
|
439
|
-
"Agent": {
|
|
440
|
-
"description": "KI-gesteuerter Agent für intelligente Verarbeitung",
|
|
441
|
-
"params": {
|
|
442
|
-
"name": {
|
|
443
|
-
"description": "Name des Agenten"
|
|
444
|
-
},
|
|
445
|
-
"model": {
|
|
446
|
-
"description": "KI-Modell für den Cloud-Agenten"
|
|
447
|
-
},
|
|
448
|
-
"instructions": {
|
|
449
|
-
"description": "Anweisungen für den Cloud-Agenten als Systemaufforderung"
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
},
|
|
453
|
-
"If": {
|
|
454
|
-
"description": "Bedingte Verzweigung basierend auf booleschem Ausdruck",
|
|
455
|
-
"params": {
|
|
456
|
-
"condition": {
|
|
457
|
-
"description": "Boolescher Ausdruck (z.B. ${Input_1.value} > 50)"
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
},
|
|
461
|
-
"SetVariable": {
|
|
462
|
-
"description": "Einer bestehenden Variable einen neuen Wert zuweisen",
|
|
463
|
-
"params": {
|
|
464
|
-
"variable": {
|
|
465
|
-
"description": "Die zu aktualisierende Variable"
|
|
466
|
-
},
|
|
467
|
-
"value": {
|
|
468
|
-
"description": "Zuzuweisender Ausdruck"
|
|
469
|
-
}
|
|
470
|
-
}
|
|
471
|
-
},
|
|
472
|
-
"WebSearchTool": {
|
|
473
|
-
"description": "Stellt Websuchfunktionalität für verbundene Agenten bereit",
|
|
474
|
-
"params": {
|
|
475
|
-
"maxResults": {
|
|
476
|
-
"description": "Maximale Anzahl der zurückzugebenden Suchergebnisse"
|
|
477
|
-
},
|
|
478
|
-
"searchDomain": {
|
|
479
|
-
"description": "Optionale Domäne zur Einschränkung der Suche"
|
|
480
|
-
}
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
},
|
|
484
|
-
"edges": {
|
|
485
|
-
"agentTask": {
|
|
486
|
-
"description": "Weist einem Agenten eine Aufgabe mit einem Prompt zu"
|
|
487
|
-
},
|
|
488
|
-
"agentChoice": {
|
|
489
|
-
"description": "Ein Pfad, den der Agent basierend auf seiner Beschreibung wählen kann"
|
|
490
|
-
},
|
|
491
|
-
"agentDelegate": {
|
|
492
|
-
"description": "Ermöglicht einem Agenten, die Kontrolle an einen anderen Agenten zu übergeben"
|
|
493
|
-
},
|
|
494
|
-
"control": {
|
|
495
|
-
"description": "Sequenzieller Steuerungsfluss zwischen Knoten"
|
|
496
|
-
},
|
|
497
|
-
"tool": {
|
|
498
|
-
"description": "Werkzeugverbindung zwischen Knoten"
|
|
499
|
-
}
|
|
500
|
-
}
|
|
501
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"nodeLibrary": "Node-Bibliothek",
|
|
3
|
+
"blockLibrary": "Node-Bibliothek",
|
|
4
|
+
"diagnostics": "Diagnose",
|
|
5
|
+
"functionDefinition": "Funktionsdefinition",
|
|
6
|
+
"open": "Öffnen",
|
|
7
|
+
"close": "Schließen",
|
|
8
|
+
"save": "Speichern",
|
|
9
|
+
"exportAsJSON": "Als JSON exportieren",
|
|
10
|
+
"versionHistory": "Versionsverlauf",
|
|
11
|
+
"test": "Testen",
|
|
12
|
+
"run": "Ausführen",
|
|
13
|
+
"stop": "Stoppen",
|
|
14
|
+
"deploy": "Bereitstellen",
|
|
15
|
+
"configure": "Konfigurieren",
|
|
16
|
+
"addBlock": "Node hinzufügen",
|
|
17
|
+
"deleteBlock": "Node löschen",
|
|
18
|
+
"duplicateBlock": "Node duplizieren",
|
|
19
|
+
"connectBlocks": "Nodes verbinden",
|
|
20
|
+
"disconnectBlocks": "Nodes trennen",
|
|
21
|
+
"zoomIn": "Vergrößern",
|
|
22
|
+
"zoomOut": "Verkleinern",
|
|
23
|
+
"fitView": "An Ansicht anpassen",
|
|
24
|
+
"autoLayout": "Auto-Layout",
|
|
25
|
+
"grid": "Raster",
|
|
26
|
+
"showGrid": "Raster anzeigen",
|
|
27
|
+
"snapToGrid": "Am Raster ausrichten",
|
|
28
|
+
"undo": "Rückgängig",
|
|
29
|
+
"redo": "Wiederholen",
|
|
30
|
+
"cut": "Ausschneiden",
|
|
31
|
+
"copy": "Kopieren",
|
|
32
|
+
"paste": "Einfügen",
|
|
33
|
+
"selectAll": "Alle auswählen",
|
|
34
|
+
"deselectAll": "Auswahl aufheben",
|
|
35
|
+
"delete": "Löschen",
|
|
36
|
+
"canvas": "Canvas",
|
|
37
|
+
"parameters": "Parameter",
|
|
38
|
+
"connections": "Verbindungen",
|
|
39
|
+
"validation": "Validierung",
|
|
40
|
+
"errors": "Fehler",
|
|
41
|
+
"warnings": "Warnungen",
|
|
42
|
+
"noErrors": "Keine Fehler gefunden",
|
|
43
|
+
"unknownNodeType": "Unbekannter Nodetyp: {{type}}",
|
|
44
|
+
"deleteNode": "Node löschen",
|
|
45
|
+
"updateToLatestDefinition": "Auf neueste Definition aktualisieren",
|
|
46
|
+
"functionCallNodesMigrated": "Funktionsaufruf-Nodes aktualisiert",
|
|
47
|
+
"functionCallNodesMigratedDesc": "{{count}} Node(s) wurden auf die neueste Funktionsdefinition migriert.",
|
|
48
|
+
"variables": "Variablen",
|
|
49
|
+
"models": "KI-Modelle",
|
|
50
|
+
"agents": "Agenten",
|
|
51
|
+
"conversations": "Konversationen",
|
|
52
|
+
"noVariables": "Keine Variablen verfügbar",
|
|
53
|
+
"addBlocksForVariables": "Fügen Sie Nodes hinzu, um deren Ausgabevariablen zu sehen",
|
|
54
|
+
"agentsDescription": "AI-Agenten für Ihren Workflow verwalten und konfigurieren",
|
|
55
|
+
"noAgentsConfigured": "Noch keine Agenten konfiguriert",
|
|
56
|
+
"addAgent": "Agent hinzufügen",
|
|
57
|
+
"availableAgents": "Verfügbare Agenten",
|
|
58
|
+
"comingSoon": "Demnächst...",
|
|
59
|
+
"conversationsDescription": "Konversationsabläufe anzeigen und verwalten",
|
|
60
|
+
"noConversations": "Noch keine Konversationen",
|
|
61
|
+
"newConversation": "Neue Konversation",
|
|
62
|
+
"conversationTemplates": "Vorlagen",
|
|
63
|
+
"newWorkflow": "Neuer Workflow",
|
|
64
|
+
"searchBlocks": "Nodes durchsuchen...",
|
|
65
|
+
"noParameters": "Keine Parameter",
|
|
66
|
+
"moreCount": "+{{count}} weitere",
|
|
67
|
+
"parametersLabel": "Parameter:",
|
|
68
|
+
"required": "Erforderlich",
|
|
69
|
+
"optional": "Optional",
|
|
70
|
+
"typeLabel": "Typ:",
|
|
71
|
+
"defaultLabel": "Standard:",
|
|
72
|
+
"optionsLabel": "Optionen:",
|
|
73
|
+
"parameterCount": "{{count}} Parameter",
|
|
74
|
+
"paramTypeText": "Text",
|
|
75
|
+
"paramTypeNumber": "Zahl",
|
|
76
|
+
"paramTypeBoolean": "Boolean",
|
|
77
|
+
"paramTypeSelection": "Auswahl",
|
|
78
|
+
"paramTypeExpression": "Expr",
|
|
79
|
+
"noModelsAvailable": "Derzeit sind keine LLM-Modelle verfügbar. Bitte kontaktieren Sie den Support.",
|
|
80
|
+
"generatedConfig": "Generierte Konfiguration",
|
|
81
|
+
"importProject": "Projekt importieren",
|
|
82
|
+
"jsonConfig": "JSON-Konfiguration",
|
|
83
|
+
"jsonConfigPlaceholder": "JSON-Konfiguration hier einfügen...",
|
|
84
|
+
"orUploadFile": "Oder Datei hochladen",
|
|
85
|
+
"import": "Importieren",
|
|
86
|
+
"saveWorkflow": "Workflow speichern",
|
|
87
|
+
"createProject": "Projekt erstellen",
|
|
88
|
+
"create": "Erstellen",
|
|
89
|
+
"unsavedDraft": "Ungespeicherter Entwurf",
|
|
90
|
+
"unsavedDraftWarning": "Sie haben ungespeicherte Änderungen, die verloren gehen. Trotzdem verlassen?",
|
|
91
|
+
"saveFailedMessage": "Das Projekt konnte nicht erstellt werden. Laden Sie Ihre Arbeit als JSON herunter, um sie nicht zu verlieren.",
|
|
92
|
+
"downloadAsJSON": "Als JSON herunterladen",
|
|
93
|
+
"namePlaceholder": "Workflow Name eingeben...",
|
|
94
|
+
"descriptionOptional": "Beschreibung (optional)",
|
|
95
|
+
"descriptionPlaceholder": "Kurze Beschreibung des Workflows...",
|
|
96
|
+
"saving": "Speichere...",
|
|
97
|
+
"testAgentNode": "Agenten-Node testen",
|
|
98
|
+
"testAgentDescription": "Sende einen Prompt an den Agenten und streame die Antwort. Die Kosten werden mit deinem Guthaben verrechnet.",
|
|
99
|
+
"prompt": "Prompt",
|
|
100
|
+
"promptPlaceholder": "Beschreibe die Aufgabe für den Agenten",
|
|
101
|
+
"testing": "Wird getestet…",
|
|
102
|
+
"startTest": "Test starten",
|
|
103
|
+
"stopTest": "Stopp",
|
|
104
|
+
"testAgent": "Agent testen",
|
|
105
|
+
"maxTurns": "Max. Durchläufe",
|
|
106
|
+
"toolCall": "Tool-Aufruf: {{name}}",
|
|
107
|
+
"toolResult": "Tool-Ergebnis: {{name}}",
|
|
108
|
+
"finalOutput": "Endergebnis ({{turns}} Durchläufe)",
|
|
109
|
+
"structuredOutput": "Strukturierte Ausgabe",
|
|
110
|
+
"structuredOutputParseError": "Strukturierte Ausgabe konnte nicht als JSON geparst werden",
|
|
111
|
+
"rawJson": "Roh-JSON",
|
|
112
|
+
"outputName": "Name",
|
|
113
|
+
"outputType": "Typ",
|
|
114
|
+
"outputValue": "Wert",
|
|
115
|
+
"noNodeSelected": "Kein Node gewählt",
|
|
116
|
+
"selectNodeMessage": "Bitte wähle einen Ziel-Node im Canvas.",
|
|
117
|
+
"importError": "Import Fehler",
|
|
118
|
+
"invalidJson": "Ungültiges JSON-Format",
|
|
119
|
+
"exportSuccess": "Export erfolgreich",
|
|
120
|
+
"configDownloaded": "Konfiguration wurde heruntergeladen",
|
|
121
|
+
"copied": "Kopiert",
|
|
122
|
+
"configCopied": "Konfiguration wurde in die Zwischenablage kopiert",
|
|
123
|
+
"autoVersionMessage": "Automatischer Checkpoint",
|
|
124
|
+
"autoVersionLabel": "Auto",
|
|
125
|
+
"saveStatus.saved": "Gespeichert",
|
|
126
|
+
"saveStatus.saving": "Speichern...",
|
|
127
|
+
"saveStatus.unsaved": "Ungespeicherte Änderungen",
|
|
128
|
+
"versionRenameTooltip": "Version umbenennen",
|
|
129
|
+
"versionPreviewPlaceholder": "Visuelle Vorschau kommt bald",
|
|
130
|
+
"preview.viewingVersion": "Version #{{number}} vom {{date}}",
|
|
131
|
+
"preview.restore": "Wiederherstellen",
|
|
132
|
+
"preview.cancel": "Zurück zum aktuellen Stand",
|
|
133
|
+
"preview.viewButton": "Ansehen",
|
|
134
|
+
"preview.viewOnly": "Nur Ansicht",
|
|
135
|
+
"preview.noPreview": "Version auswählen für Vorschau",
|
|
136
|
+
"preview.selectVersion": "Version auswählen zum Ansehen",
|
|
137
|
+
"preview.template": "Template: {{name}}",
|
|
138
|
+
"preview.useAsProject": "Als Projekt verwenden",
|
|
139
|
+
"preview.emptyCanvas": "Keine Nodes in dieser Version",
|
|
140
|
+
"preview.setAsCurrent": "Als aktuell setzen",
|
|
141
|
+
"preview.returnToCurrent": "Zurück zur aktuellen",
|
|
142
|
+
"debug.session": "Debug-Sitzung",
|
|
143
|
+
"debug.start": "Debug",
|
|
144
|
+
"debug.stop": "Stopp",
|
|
145
|
+
"debug.step": "Schritt",
|
|
146
|
+
"debug.building": "Kompiliert",
|
|
147
|
+
"debug.idle": "Bereit",
|
|
148
|
+
"debug.paused": "Pausiert",
|
|
149
|
+
"debug.stepping": "Ausführung",
|
|
150
|
+
"debug.error": "Fehler",
|
|
151
|
+
"debug.console": "Konsole",
|
|
152
|
+
"debug.clearConsole": "Konsole leeren",
|
|
153
|
+
"debug.consoleEmpty": "Konsolenausgaben erscheinen hier während der Ausführung.",
|
|
154
|
+
"debug.context": "Kontext",
|
|
155
|
+
"debug.externalIO": "Externe E/A",
|
|
156
|
+
"debug.noVariables": "Keine Workflow-Variablen definiert.",
|
|
157
|
+
"debug.noInputsNeeded": "Keine externen Eingaben für diesen Node erforderlich.",
|
|
158
|
+
"debug.selectNode": "Wähle einen Node zum Debuggen.",
|
|
159
|
+
"debug.triggerNotSteppable": "Trigger-Nodes können nicht einzeln ausgeführt werden. Wähle einen nachfolgenden Node.",
|
|
160
|
+
"debug.gpioPin": "GPIO Pin {{pin}}",
|
|
161
|
+
"debug.serialInput": "Serielle Eingabe",
|
|
162
|
+
"debug.serialPlaceholder": "Serielle Daten eingeben...",
|
|
163
|
+
"versionsLoading": "Lade Versionen...",
|
|
164
|
+
"noVersions": "Keine Versionen vorhanden.",
|
|
165
|
+
"versionsReadOnly": "Versionen sind schreibgeschützt und können nicht verändert werden.",
|
|
166
|
+
"loadingDialogs": "Dialoge laden…",
|
|
167
|
+
"loadingVersions": "Versionen laden…",
|
|
168
|
+
"loadingTest": "Testdialog lädt…",
|
|
169
|
+
"current": "Aktuell",
|
|
170
|
+
"newFunction": "Neue Funktion",
|
|
171
|
+
"enterExpression": "Ausdruck eingeben...",
|
|
172
|
+
"enterTypeExpression": "{{type}}-Ausdruck eingeben...",
|
|
173
|
+
"fromNode": "von {{node}}",
|
|
174
|
+
"addFunction": "Funktion hinzufügen",
|
|
175
|
+
"addFunctionHint": "Wiederverwendbare Funktion erstellen",
|
|
176
|
+
"addNodesForVariables": "Nodes hinzufügen, um deren Ausgabevariablen zu sehen",
|
|
177
|
+
"addVariable": "Variable hinzufügen",
|
|
178
|
+
"continueWithWarnings": "Mit Warnungen fortfahren",
|
|
179
|
+
"createFunction": "Funktion erstellen",
|
|
180
|
+
"definedVariables": "Definierte Variablen",
|
|
181
|
+
"deleteFunction": "Funktion löschen",
|
|
182
|
+
"deleteFunctionTitle": "Funktion löschen?",
|
|
183
|
+
"done": "Fertig",
|
|
184
|
+
"editFunction": "Funktion bearbeiten",
|
|
185
|
+
"expressionFor": "Ausdruck für",
|
|
186
|
+
"fnarg": "Arg",
|
|
187
|
+
"functionArguments": "Funktionsargumente",
|
|
188
|
+
"functionDialogDesc": "Funktionsnamen, Eingaben und Ausgaben konfigurieren.",
|
|
189
|
+
"functionInputsDesc": "Argumente, die beim Aufruf der Funktion übergeben werden",
|
|
190
|
+
"functionOutputsDesc": "Werte, die die Funktion zurückgibt; jeder ist ein Ausdruck über ihre Eingaben und ihren Rumpf",
|
|
191
|
+
"functionName": "Funktionsname",
|
|
192
|
+
"functionNamePlaceholder": "Funktionsname eingeben...",
|
|
193
|
+
"functions": "Funktionen",
|
|
194
|
+
"openFunction": "Funktion öffnen",
|
|
195
|
+
"globalVariable": "Globale Variable",
|
|
196
|
+
"initialValue": "Anfangswert",
|
|
197
|
+
"inputs": "Eingaben",
|
|
198
|
+
"nodeOutputVariables": "Node-Ausgabevariablen",
|
|
199
|
+
"noEdgeParams": "Keine Kantenparameter",
|
|
200
|
+
"noFunctionInfo": "Keine Funktionsinformationen verfügbar",
|
|
201
|
+
"noFunctions": "Noch keine Funktionen",
|
|
202
|
+
"noInputs": "Keine Eingaben",
|
|
203
|
+
"noIssuesFound": "Keine Probleme gefunden",
|
|
204
|
+
"noOutputs": "Keine Ausgaben",
|
|
205
|
+
"outputs": "Ausgaben",
|
|
206
|
+
"returnValueAssignments": "Rückgabewert-Zuweisungen",
|
|
207
|
+
"returnValueAssignmentsDesc": "Ausdrücke den Funktions-Rückgabewerten zuweisen",
|
|
208
|
+
"deleteEdge": "Verbindung löschen",
|
|
209
|
+
"renameProject": "Projekt umbenennen",
|
|
210
|
+
"functionCallDesc": "Die Funktion \"{{name}}\" aufrufen",
|
|
211
|
+
"functionParamDesc": "Wert für {{name}} eingeben",
|
|
212
|
+
"functionOutputDesc": "Name der Ausgabevariable für {{name}} eingeben",
|
|
213
|
+
"deleteFunctionDesc": "Diese Funktion und alle zugehörigen Knoten werden dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.",
|
|
214
|
+
"nodeLabel": "Knoten",
|
|
215
|
+
"validationPassed": "Keine Fehler oder Warnungen in Workflow",
|
|
216
|
+
"validationIssues": "Validierungsprobleme",
|
|
217
|
+
"validationErrorsDesc": "{{errorCount}} Fehler und {{warningCount}} Warnung(en) gefunden. Fehler müssen vor dem Export behoben werden.",
|
|
218
|
+
"validationWarningsDesc": "{{warningCount}} Warnung(en) gefunden. Sie können trotzdem fortfahren.",
|
|
219
|
+
"versionSaved": "Version gespeichert",
|
|
220
|
+
"versionSaveError": "Version konnte nicht gespeichert werden",
|
|
221
|
+
"versionRestored": "Version wiederhergestellt",
|
|
222
|
+
"versionRestoreError": "Version konnte nicht wiederhergestellt werden",
|
|
223
|
+
"versionRenamed": "Version umbenannt",
|
|
224
|
+
"versionRenameError": "Version konnte nicht umbenannt werden",
|
|
225
|
+
"codeGenSuccess": "Die Embedded-Firmware wurde erfolgreich generiert und heruntergeladen.",
|
|
226
|
+
"codeGenTitle": "C-Code generiert",
|
|
227
|
+
"codeGenError": "C-Code Generierung fehlgeschlagen",
|
|
228
|
+
"codeGenErrorDesc": "Der C-Code konnte nicht generiert werden.",
|
|
229
|
+
"seoDescription": "Visueller Builder für Ihre Projekte.",
|
|
230
|
+
"projectNotFound": "Projekt nicht gefunden",
|
|
231
|
+
"projectNotFoundDesc": "Das ausgewählte Projekt existiert nicht.",
|
|
232
|
+
"deploymentNotFound": "Deployment nicht gefunden",
|
|
233
|
+
"deployDialog": {
|
|
234
|
+
"title": "Workflow bereitstellen",
|
|
235
|
+
"description": "Diesen Workflow auf einem Gerät bereitstellen.",
|
|
236
|
+
"redeployTab": "Agent aktualisieren",
|
|
237
|
+
"newAgentTab": "Neuer Agent",
|
|
238
|
+
"selectAgent": "Agent auswählen",
|
|
239
|
+
"redeploy": "Erneut bereitstellen",
|
|
240
|
+
"selectDevice": "Gerät auswählen",
|
|
241
|
+
"agentName": "Agent-Name",
|
|
242
|
+
"agentNamePlaceholder": "z. B. Gewächshaus-Controller",
|
|
243
|
+
"confirm": "Bereitstellen",
|
|
244
|
+
"platform": "Plattform",
|
|
245
|
+
"platformPlaceholder": "Plattform auswählen",
|
|
246
|
+
"submitPush": "An Engine pushen",
|
|
247
|
+
"submitBundle": "Bundle herunterladen",
|
|
248
|
+
"submitCreateAndBundle": "Agent anlegen & herunterladen",
|
|
249
|
+
"method": {
|
|
250
|
+
"sectionTitle": "Deploy-Methode",
|
|
251
|
+
"push": "An Engine pushen",
|
|
252
|
+
"pushHint": "Den Workflow direkt über das lokale Netzwerk an die laufende Engine senden.",
|
|
253
|
+
"bundle": "Bundle herunterladen",
|
|
254
|
+
"bundleHint": "Deploy-Bundle herunterladen und manuell auf dem Gerät anwenden.",
|
|
255
|
+
"includeImage": "Auch Engine-Image (.tar) herunterladen",
|
|
256
|
+
"offlineHint": "Engine ist offline — zuletzt gesehen {{time}}. Bitte das Bundle herunterladen und auf dem Gerät anwenden.",
|
|
257
|
+
"pendingHint": "Engine startet nach dem letzten Deployment. Sie können das Bundle herunterladen, um es manuell anzuwenden.",
|
|
258
|
+
"bootErrorHint": "Engine meldet einen Boot-Fehler. Bitte das Bundle herunterladen und erneut auf dem Gerät anwenden.",
|
|
259
|
+
"newAgentHint": "Ein neuer Agent hat noch keine laufende Engine. Beim Bestätigen wird der Agent angelegt und das Deploy-Bundle für die manuelle Installation heruntergeladen."
|
|
260
|
+
},
|
|
261
|
+
"redeployHeader": "{{workflow}} auf {{agent}} erneut bereitstellen",
|
|
262
|
+
"success": {
|
|
263
|
+
"push": "Workflow an Engine gepusht",
|
|
264
|
+
"bundle": "Deploy-Bundle heruntergeladen",
|
|
265
|
+
"bundleWithImage": "Bundle und Engine-Image heruntergeladen"
|
|
266
|
+
},
|
|
267
|
+
"warn": {
|
|
268
|
+
"imageFailed": "Engine-Image-Download fehlgeschlagen",
|
|
269
|
+
"imageFailedDescription": "Bundle wurde erfolgreich heruntergeladen. Sie können den Image-Download von der Agent-Detailseite erneut starten."
|
|
270
|
+
},
|
|
271
|
+
"error": {
|
|
272
|
+
"save": "Speichern des Workflows fehlgeschlagen",
|
|
273
|
+
"push": "Push an Engine fehlgeschlagen",
|
|
274
|
+
"pushUnreachable": "Engine ist nicht erreichbar — versuchen Sie es mit dem Bundle-Download",
|
|
275
|
+
"pushForbidden": "Engine hat die Anfrage abgelehnt — bitte Agent-Zugangsdaten prüfen",
|
|
276
|
+
"bundle": "Bundle-Download fehlgeschlagen"
|
|
277
|
+
},
|
|
278
|
+
"releaseInfo": "Release {{number}}",
|
|
279
|
+
"newRelease": "Neues Release wird erstellt",
|
|
280
|
+
"savingChanges": "Änderungen werden gespeichert...",
|
|
281
|
+
"deploying": "Wird bereitgestellt...",
|
|
282
|
+
"deploySuccess": "Erfolgreich bereitgestellt",
|
|
283
|
+
"deploySuccessDesc": "Auf {{device}} bereitgestellt",
|
|
284
|
+
"draftError": "Speichern Sie Ihr Projekt vor der Bereitstellung"
|
|
285
|
+
},
|
|
286
|
+
"blocks": {
|
|
287
|
+
"input": "Eingang",
|
|
288
|
+
"output": "Ausgang",
|
|
289
|
+
"logic": "Logik",
|
|
290
|
+
"math": "Mathematik",
|
|
291
|
+
"ai": "KI",
|
|
292
|
+
"control": "Steuerung",
|
|
293
|
+
"sensor": "Sensor",
|
|
294
|
+
"actuator": "Aktor",
|
|
295
|
+
"communication": "Kommunikation",
|
|
296
|
+
"storage": "Speicher",
|
|
297
|
+
"custom": "Benutzerdefiniert"
|
|
298
|
+
},
|
|
299
|
+
"add": "Hinzufügen",
|
|
300
|
+
"cancel": "Abbrechen",
|
|
301
|
+
"nodes": {
|
|
302
|
+
"ReadPin": {
|
|
303
|
+
"description": "Daten von einem Pin lesen",
|
|
304
|
+
"params": {
|
|
305
|
+
"pinNumber": {
|
|
306
|
+
"description": "Nummer des zu lesenden Pins"
|
|
307
|
+
},
|
|
308
|
+
"signalType": {
|
|
309
|
+
"description": "Art des Signals"
|
|
310
|
+
},
|
|
311
|
+
"outputName": {
|
|
312
|
+
"description": "Name für die erzeugte Ausgabevariable"
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
},
|
|
316
|
+
"SerialRead": {
|
|
317
|
+
"description": "Zeichenkette von serieller Schnittstelle lesen",
|
|
318
|
+
"params": {
|
|
319
|
+
"prompt": {
|
|
320
|
+
"description": "Aufforderung für den seriellen Lesevorgang"
|
|
321
|
+
},
|
|
322
|
+
"outputName": {
|
|
323
|
+
"description": "Name der Variable für den gelesenen Wert"
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
},
|
|
327
|
+
"Retriever": {
|
|
328
|
+
"description": "Ruft relevante Dokumente aus einer Wissensdatenbank ab",
|
|
329
|
+
"params": {
|
|
330
|
+
"memoryReference": {
|
|
331
|
+
"description": "Die zu durchsuchende Vektordatenbank"
|
|
332
|
+
},
|
|
333
|
+
"topK": {
|
|
334
|
+
"description": "Anzahl der abzurufenden Ergebnisse"
|
|
335
|
+
},
|
|
336
|
+
"outputName": {
|
|
337
|
+
"description": "Variablenname für die abgerufenen Ergebnisse"
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
},
|
|
341
|
+
"WritePin": {
|
|
342
|
+
"description": "Daten an einen Pin schreiben",
|
|
343
|
+
"params": {
|
|
344
|
+
"pinNumber": {
|
|
345
|
+
"description": "Nummer des zu beschreibenden Pins"
|
|
346
|
+
},
|
|
347
|
+
"signalType": {
|
|
348
|
+
"description": "Art des Signals"
|
|
349
|
+
},
|
|
350
|
+
"value": {
|
|
351
|
+
"description": "Welcher Wert an den Pin geschrieben werden soll"
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
},
|
|
355
|
+
"SerialWrite": {
|
|
356
|
+
"description": "Zeichenkette an serielle Schnittstelle schreiben",
|
|
357
|
+
"params": {
|
|
358
|
+
"value": {
|
|
359
|
+
"description": "Ausdruck für den zu schreibenden Wert"
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
"OnFunctionCall": {
|
|
364
|
+
"description": "Wird ausgelöst, wenn diese Funktion von einem Funktionsaufruf-Knoten aufgerufen wird"
|
|
365
|
+
},
|
|
366
|
+
"Delay": {
|
|
367
|
+
"description": "Pausiert die Ausführung für eine bestimmte Dauer und löst aus, wenn die Verzögerung abgeschlossen ist. Während dieser Pause können andere Knotenketten ausgeführt werden.",
|
|
368
|
+
"params": {
|
|
369
|
+
"delayMs": {
|
|
370
|
+
"description": "Zeit in Millisekunden für die Pause"
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
},
|
|
374
|
+
"Ticker": {
|
|
375
|
+
"description": "Wird wiederholt in einem festgelegten Intervall ausgelöst",
|
|
376
|
+
"params": {
|
|
377
|
+
"intervalValue": {
|
|
378
|
+
"description": "Anzahl der Einheiten zwischen Takten"
|
|
379
|
+
},
|
|
380
|
+
"intervalUnit": {
|
|
381
|
+
"description": "Zeiteinheit für das Intervall"
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
},
|
|
385
|
+
"Alarm": {
|
|
386
|
+
"description": "Wird zu einer geplanten Zeit an ausgewählten Wochentagen ausgelöst",
|
|
387
|
+
"params": {
|
|
388
|
+
"time": {
|
|
389
|
+
"description": "Tageszeit für die Auslösung (24-Stunden-Format)"
|
|
390
|
+
},
|
|
391
|
+
"days": {
|
|
392
|
+
"description": "Wochentage für die Auslösung (leer = jeden Tag)"
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
},
|
|
396
|
+
"OnStartup": {
|
|
397
|
+
"description": "Wird einmal ausgelöst, wenn das Gerät eingeschaltet wird"
|
|
398
|
+
},
|
|
399
|
+
"OnPinChange": {
|
|
400
|
+
"description": "Wird ausgelöst, wenn sich ein Pin-Wert ändert",
|
|
401
|
+
"params": {
|
|
402
|
+
"pinNumber": {
|
|
403
|
+
"description": "Zu überwachende Pin-Nummer"
|
|
404
|
+
},
|
|
405
|
+
"outputName": {
|
|
406
|
+
"description": "Name der Variable, die den Pin-Wert enthält, wenn der Trigger ausgelöst wird"
|
|
407
|
+
},
|
|
408
|
+
"mode": {
|
|
409
|
+
"description": "Ob der Pin als digital oder analog gelesen werden soll"
|
|
410
|
+
},
|
|
411
|
+
"edge": {
|
|
412
|
+
"description": "Welcher Flankenübergang das Ereignis auslöst"
|
|
413
|
+
},
|
|
414
|
+
"threshold": {
|
|
415
|
+
"description": "Analoger Schwellenwert (0-1023)"
|
|
416
|
+
},
|
|
417
|
+
"direction": {
|
|
418
|
+
"description": "Richtung der Schwellenwertüberschreitung, die das Ereignis auslöst"
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
},
|
|
422
|
+
"OnSerialReceive": {
|
|
423
|
+
"description": "Wird ausgelöst, wenn serielle Daten eintreffen"
|
|
424
|
+
},
|
|
425
|
+
"OnThreshold": {
|
|
426
|
+
"description": "Wird ausgelöst, wenn ein Ausdruckswert einen Schwellenwert überschreitet",
|
|
427
|
+
"params": {
|
|
428
|
+
"value": {
|
|
429
|
+
"description": "Zu überwachender Ausdruck"
|
|
430
|
+
},
|
|
431
|
+
"threshold": {
|
|
432
|
+
"description": "Schwellenwert"
|
|
433
|
+
},
|
|
434
|
+
"direction": {
|
|
435
|
+
"description": "Richtung der Schwellenwertüberschreitung, die das Ereignis auslöst"
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
},
|
|
439
|
+
"Agent": {
|
|
440
|
+
"description": "KI-gesteuerter Agent für intelligente Verarbeitung",
|
|
441
|
+
"params": {
|
|
442
|
+
"name": {
|
|
443
|
+
"description": "Name des Agenten"
|
|
444
|
+
},
|
|
445
|
+
"model": {
|
|
446
|
+
"description": "KI-Modell für den Cloud-Agenten"
|
|
447
|
+
},
|
|
448
|
+
"instructions": {
|
|
449
|
+
"description": "Anweisungen für den Cloud-Agenten als Systemaufforderung"
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
},
|
|
453
|
+
"If": {
|
|
454
|
+
"description": "Bedingte Verzweigung basierend auf booleschem Ausdruck",
|
|
455
|
+
"params": {
|
|
456
|
+
"condition": {
|
|
457
|
+
"description": "Boolescher Ausdruck (z.B. ${Input_1.value} > 50)"
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
},
|
|
461
|
+
"SetVariable": {
|
|
462
|
+
"description": "Einer bestehenden Variable einen neuen Wert zuweisen",
|
|
463
|
+
"params": {
|
|
464
|
+
"variable": {
|
|
465
|
+
"description": "Die zu aktualisierende Variable"
|
|
466
|
+
},
|
|
467
|
+
"value": {
|
|
468
|
+
"description": "Zuzuweisender Ausdruck"
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
},
|
|
472
|
+
"WebSearchTool": {
|
|
473
|
+
"description": "Stellt Websuchfunktionalität für verbundene Agenten bereit",
|
|
474
|
+
"params": {
|
|
475
|
+
"maxResults": {
|
|
476
|
+
"description": "Maximale Anzahl der zurückzugebenden Suchergebnisse"
|
|
477
|
+
},
|
|
478
|
+
"searchDomain": {
|
|
479
|
+
"description": "Optionale Domäne zur Einschränkung der Suche"
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
},
|
|
484
|
+
"edges": {
|
|
485
|
+
"agentTask": {
|
|
486
|
+
"description": "Weist einem Agenten eine Aufgabe mit einem Prompt zu"
|
|
487
|
+
},
|
|
488
|
+
"agentChoice": {
|
|
489
|
+
"description": "Ein Pfad, den der Agent basierend auf seiner Beschreibung wählen kann"
|
|
490
|
+
},
|
|
491
|
+
"agentDelegate": {
|
|
492
|
+
"description": "Ermöglicht einem Agenten, die Kontrolle an einen anderen Agenten zu übergeben"
|
|
493
|
+
},
|
|
494
|
+
"control": {
|
|
495
|
+
"description": "Sequenzieller Steuerungsfluss zwischen Knoten"
|
|
496
|
+
},
|
|
497
|
+
"tool": {
|
|
498
|
+
"description": "Werkzeugverbindung zwischen Knoten"
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
}
|