griptape-nodes 0.52.0__py3-none-any.whl → 0.53.0__py3-none-any.whl
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.
- griptape_nodes/__init__.py +6 -943
- griptape_nodes/__main__.py +6 -0
- griptape_nodes/app/api.py +1 -12
- griptape_nodes/app/app.py +256 -209
- griptape_nodes/cli/__init__.py +1 -0
- griptape_nodes/cli/commands/__init__.py +1 -0
- griptape_nodes/cli/commands/config.py +71 -0
- griptape_nodes/cli/commands/engine.py +80 -0
- griptape_nodes/cli/commands/init.py +548 -0
- griptape_nodes/cli/commands/libraries.py +90 -0
- griptape_nodes/cli/commands/self.py +117 -0
- griptape_nodes/cli/main.py +46 -0
- griptape_nodes/cli/shared.py +84 -0
- griptape_nodes/common/__init__.py +1 -0
- griptape_nodes/common/directed_graph.py +55 -0
- griptape_nodes/drivers/storage/local_storage_driver.py +7 -2
- griptape_nodes/exe_types/core_types.py +60 -2
- griptape_nodes/exe_types/node_types.py +38 -24
- griptape_nodes/machines/control_flow.py +86 -22
- griptape_nodes/machines/fsm.py +10 -1
- griptape_nodes/machines/parallel_resolution.py +570 -0
- griptape_nodes/machines/{node_resolution.py → sequential_resolution.py} +22 -51
- griptape_nodes/mcp_server/server.py +1 -1
- griptape_nodes/retained_mode/events/base_events.py +2 -2
- griptape_nodes/retained_mode/events/node_events.py +4 -3
- griptape_nodes/retained_mode/griptape_nodes.py +25 -12
- griptape_nodes/retained_mode/managers/agent_manager.py +9 -5
- griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py +3 -1
- griptape_nodes/retained_mode/managers/context_manager.py +6 -5
- griptape_nodes/retained_mode/managers/flow_manager.py +117 -204
- griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py +1 -1
- griptape_nodes/retained_mode/managers/library_manager.py +35 -25
- griptape_nodes/retained_mode/managers/node_manager.py +81 -199
- griptape_nodes/retained_mode/managers/object_manager.py +11 -5
- griptape_nodes/retained_mode/managers/os_manager.py +24 -9
- griptape_nodes/retained_mode/managers/secrets_manager.py +8 -4
- griptape_nodes/retained_mode/managers/settings.py +32 -1
- griptape_nodes/retained_mode/managers/static_files_manager.py +8 -3
- griptape_nodes/retained_mode/managers/sync_manager.py +8 -5
- griptape_nodes/retained_mode/managers/workflow_manager.py +110 -122
- griptape_nodes/traits/add_param_button.py +1 -1
- griptape_nodes/traits/button.py +216 -6
- griptape_nodes/traits/color_picker.py +66 -0
- griptape_nodes/traits/traits.json +4 -0
- {griptape_nodes-0.52.0.dist-info → griptape_nodes-0.53.0.dist-info}/METADATA +2 -1
- {griptape_nodes-0.52.0.dist-info → griptape_nodes-0.53.0.dist-info}/RECORD +48 -34
- {griptape_nodes-0.52.0.dist-info → griptape_nodes-0.53.0.dist-info}/WHEEL +0 -0
- {griptape_nodes-0.52.0.dist-info → griptape_nodes-0.53.0.dist-info}/entry_points.txt +0 -0
|
@@ -11,7 +11,7 @@ class AddParameterButton(Trait):
|
|
|
11
11
|
|
|
12
12
|
def __init__(self) -> None:
|
|
13
13
|
super().__init__(element_id="AddParameterButton")
|
|
14
|
-
self.add_child(Button(
|
|
14
|
+
self.add_child(Button(label="AddParameter"))
|
|
15
15
|
|
|
16
16
|
@classmethod
|
|
17
17
|
def get_trait_keys(cls) -> list[str]:
|
griptape_nodes/traits/button.py
CHANGED
|
@@ -1,21 +1,231 @@
|
|
|
1
|
+
import logging
|
|
1
2
|
from dataclasses import dataclass, field
|
|
3
|
+
from typing import TYPE_CHECKING, Literal
|
|
2
4
|
|
|
3
|
-
from griptape_nodes.exe_types.core_types import Trait
|
|
5
|
+
from griptape_nodes.exe_types.core_types import NodeMessagePayload, NodeMessageResult, Trait
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
from collections.abc import Callable
|
|
9
|
+
|
|
10
|
+
# Don't export callback types - let users import explicitly
|
|
11
|
+
|
|
12
|
+
logger = logging.getLogger("griptape_nodes")
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
# Type aliases using Literals
|
|
16
|
+
ButtonVariant = Literal[
|
|
17
|
+
"default",
|
|
18
|
+
"secondary",
|
|
19
|
+
"destructive",
|
|
20
|
+
"outline",
|
|
21
|
+
"ghost",
|
|
22
|
+
"link",
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
ButtonSize = Literal[
|
|
26
|
+
"default",
|
|
27
|
+
"sm",
|
|
28
|
+
"icon",
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
ButtonState = Literal[
|
|
32
|
+
"normal",
|
|
33
|
+
"disabled",
|
|
34
|
+
"loading",
|
|
35
|
+
"hidden",
|
|
36
|
+
]
|
|
37
|
+
|
|
38
|
+
IconPosition = Literal[
|
|
39
|
+
"left",
|
|
40
|
+
"right",
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class ButtonDetailsMessagePayload(NodeMessagePayload):
|
|
45
|
+
"""Payload containing complete button details and status information."""
|
|
46
|
+
|
|
47
|
+
label: str
|
|
48
|
+
variant: str
|
|
49
|
+
size: str
|
|
50
|
+
state: str
|
|
51
|
+
icon: str | None = None
|
|
52
|
+
icon_class: str | None = None
|
|
53
|
+
icon_position: str | None = None
|
|
54
|
+
full_width: bool = False
|
|
55
|
+
loading_label: str | None = None
|
|
56
|
+
loading_icon: str | None = None
|
|
57
|
+
loading_icon_class: str | None = None
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class OnClickMessageResultPayload(NodeMessagePayload):
|
|
61
|
+
"""Payload for button click result messages."""
|
|
62
|
+
|
|
63
|
+
button_details: ButtonDetailsMessagePayload
|
|
4
64
|
|
|
5
65
|
|
|
6
66
|
@dataclass(eq=False)
|
|
7
67
|
class Button(Trait):
|
|
8
|
-
type
|
|
68
|
+
# Specific callback types for better type safety and clarity
|
|
69
|
+
type OnClickCallback = Callable[[Button, ButtonDetailsMessagePayload], NodeMessageResult]
|
|
70
|
+
type GetButtonStateCallback = Callable[[Button, ButtonDetailsMessagePayload], NodeMessageResult]
|
|
71
|
+
|
|
72
|
+
# Static message type constants
|
|
73
|
+
ON_CLICK_MESSAGE_TYPE = "on_click"
|
|
74
|
+
GET_BUTTON_STATUS_MESSAGE_TYPE = "get_button_status"
|
|
75
|
+
|
|
76
|
+
# Button styling and behavior properties
|
|
77
|
+
label: str = "Button"
|
|
78
|
+
variant: ButtonVariant = "default"
|
|
79
|
+
size: ButtonSize = "default"
|
|
80
|
+
state: ButtonState = "normal"
|
|
81
|
+
icon: str | None = None
|
|
82
|
+
icon_class: str | None = None
|
|
83
|
+
icon_position: IconPosition | None = None
|
|
84
|
+
full_width: bool = False
|
|
85
|
+
loading_label: str | None = None
|
|
86
|
+
loading_icon: str | None = None
|
|
87
|
+
loading_icon_class: str | None = None
|
|
88
|
+
|
|
9
89
|
element_id: str = field(default_factory=lambda: "Button")
|
|
90
|
+
on_click_callback: OnClickCallback | None = field(default=None, init=False)
|
|
91
|
+
get_button_state_callback: GetButtonStateCallback | None = field(default=None, init=False)
|
|
10
92
|
|
|
11
|
-
def __init__(
|
|
93
|
+
def __init__( # noqa: PLR0913
|
|
94
|
+
self,
|
|
95
|
+
*,
|
|
96
|
+
label: str = "", # Allows a button with no text.
|
|
97
|
+
variant: ButtonVariant = "secondary",
|
|
98
|
+
size: ButtonSize = "default",
|
|
99
|
+
state: ButtonState = "normal",
|
|
100
|
+
icon: str | None = None,
|
|
101
|
+
icon_class: str | None = None,
|
|
102
|
+
icon_position: IconPosition | None = None,
|
|
103
|
+
full_width: bool = False,
|
|
104
|
+
loading_label: str | None = None,
|
|
105
|
+
loading_icon: str | None = None,
|
|
106
|
+
loading_icon_class: str | None = None,
|
|
107
|
+
on_click: OnClickCallback | None = None,
|
|
108
|
+
get_button_state: GetButtonStateCallback | None = None,
|
|
109
|
+
) -> None:
|
|
12
110
|
super().__init__(element_id="Button")
|
|
13
|
-
|
|
14
|
-
|
|
111
|
+
self.label = label
|
|
112
|
+
self.variant = variant
|
|
113
|
+
self.size = size
|
|
114
|
+
self.state = state
|
|
115
|
+
self.icon = icon
|
|
116
|
+
self.icon_class = icon_class
|
|
117
|
+
self.icon_position = icon_position
|
|
118
|
+
self.full_width = full_width
|
|
119
|
+
self.loading_label = loading_label
|
|
120
|
+
self.loading_icon = loading_icon
|
|
121
|
+
self.loading_icon_class = loading_icon_class
|
|
122
|
+
self.on_click_callback = on_click
|
|
123
|
+
self.get_button_state_callback = get_button_state
|
|
15
124
|
|
|
16
125
|
@classmethod
|
|
17
126
|
def get_trait_keys(cls) -> list[str]:
|
|
18
127
|
return ["button", "addbutton"]
|
|
19
128
|
|
|
129
|
+
def get_button_details(self, state: ButtonState | None = None) -> ButtonDetailsMessagePayload:
|
|
130
|
+
"""Create a ButtonDetailsMessagePayload with current or specified button state."""
|
|
131
|
+
return ButtonDetailsMessagePayload(
|
|
132
|
+
label=self.label,
|
|
133
|
+
variant=self.variant,
|
|
134
|
+
size=self.size,
|
|
135
|
+
state=state or self.state,
|
|
136
|
+
icon=self.icon,
|
|
137
|
+
icon_class=self.icon_class,
|
|
138
|
+
icon_position=self.icon_position,
|
|
139
|
+
full_width=self.full_width,
|
|
140
|
+
loading_label=self.loading_label,
|
|
141
|
+
loading_icon=self.loading_icon,
|
|
142
|
+
loading_icon_class=self.loading_icon_class,
|
|
143
|
+
)
|
|
144
|
+
|
|
20
145
|
def ui_options_for_trait(self) -> dict:
|
|
21
|
-
|
|
146
|
+
"""Generate UI options for the button trait with all styling properties."""
|
|
147
|
+
options = {
|
|
148
|
+
"button_label": self.label,
|
|
149
|
+
"variant": self.variant,
|
|
150
|
+
"size": self.size,
|
|
151
|
+
"state": self.state,
|
|
152
|
+
"full_width": self.full_width,
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
# Only include icon properties if icon is specified
|
|
156
|
+
if self.icon:
|
|
157
|
+
options["button_icon"] = self.icon
|
|
158
|
+
options["iconPosition"] = self.icon_position or "left"
|
|
159
|
+
if self.icon_class:
|
|
160
|
+
options["icon_class"] = self.icon_class
|
|
161
|
+
|
|
162
|
+
# Include loading properties if specified
|
|
163
|
+
if self.loading_label:
|
|
164
|
+
options["loading_label"] = self.loading_label
|
|
165
|
+
if self.loading_icon:
|
|
166
|
+
options["loading_icon"] = self.loading_icon
|
|
167
|
+
if self.loading_icon_class:
|
|
168
|
+
options["loading_icon_class"] = self.loading_icon_class
|
|
169
|
+
|
|
170
|
+
return options
|
|
171
|
+
|
|
172
|
+
def on_message_received(self, message_type: str, message: NodeMessagePayload | None) -> NodeMessageResult | None:
|
|
173
|
+
"""Handle messages sent to this button trait.
|
|
174
|
+
|
|
175
|
+
Args:
|
|
176
|
+
message_type: String indicating the message type for parsing
|
|
177
|
+
message: Message payload as NodeMessagePayload or None
|
|
178
|
+
|
|
179
|
+
Returns:
|
|
180
|
+
NodeMessageResult | None: Result if handled, None if no handler available
|
|
181
|
+
"""
|
|
182
|
+
match message_type.lower():
|
|
183
|
+
case self.ON_CLICK_MESSAGE_TYPE:
|
|
184
|
+
if self.on_click_callback is not None:
|
|
185
|
+
try:
|
|
186
|
+
# Pre-fill button details with current state and pass to callback
|
|
187
|
+
button_details = self.get_button_details()
|
|
188
|
+
return self.on_click_callback(self, button_details)
|
|
189
|
+
except Exception as e:
|
|
190
|
+
return NodeMessageResult(
|
|
191
|
+
success=False,
|
|
192
|
+
details=f"Button '{self.label}' callback failed: {e!s}",
|
|
193
|
+
response=None,
|
|
194
|
+
)
|
|
195
|
+
|
|
196
|
+
# Log debug message and fall through if no callback specified
|
|
197
|
+
logger.debug("Button '%s' was clicked, but no on_click_callback was specified.", self.label)
|
|
198
|
+
|
|
199
|
+
case self.GET_BUTTON_STATUS_MESSAGE_TYPE:
|
|
200
|
+
# Use custom callback if provided, otherwise use default implementation
|
|
201
|
+
if self.get_button_state_callback is not None:
|
|
202
|
+
try:
|
|
203
|
+
# Pre-fill button details with current state and pass to callback
|
|
204
|
+
button_details = self.get_button_details()
|
|
205
|
+
return self.get_button_state_callback(self, button_details)
|
|
206
|
+
except Exception as e:
|
|
207
|
+
return NodeMessageResult(
|
|
208
|
+
success=False,
|
|
209
|
+
details=f"Button '{self.label}' get_button_state callback failed: {e!s}",
|
|
210
|
+
response=None,
|
|
211
|
+
)
|
|
212
|
+
else:
|
|
213
|
+
return self._default_get_button_status(message_type, message)
|
|
214
|
+
|
|
215
|
+
# Delegate to parent implementation for unhandled messages or no callback
|
|
216
|
+
return super().on_message_received(message_type, message)
|
|
217
|
+
|
|
218
|
+
def _default_get_button_status(
|
|
219
|
+
self,
|
|
220
|
+
message_type: str, # noqa: ARG002
|
|
221
|
+
message: NodeMessagePayload | None, # noqa: ARG002
|
|
222
|
+
) -> NodeMessageResult:
|
|
223
|
+
"""Default implementation for get_button_status that returns current button details."""
|
|
224
|
+
button_details = self.get_button_details()
|
|
225
|
+
|
|
226
|
+
return NodeMessageResult(
|
|
227
|
+
success=True,
|
|
228
|
+
details=f"Button '{self.label}' details retrieved",
|
|
229
|
+
response=button_details,
|
|
230
|
+
altered_workflow_state=False,
|
|
231
|
+
)
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
from collections.abc import Callable
|
|
2
|
+
from dataclasses import dataclass, field
|
|
3
|
+
from typing import Any, Literal
|
|
4
|
+
|
|
5
|
+
from griptape_nodes.exe_types.core_types import Parameter, ParameterMode, Trait
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@dataclass(eq=False)
|
|
9
|
+
class ColorPicker(Trait):
|
|
10
|
+
format: Literal["hex", "hexa", "rgb", "rgba", "hsl", "hsla", "hsv", "hsva"] = "hex"
|
|
11
|
+
element_id: str = field(default_factory=lambda: "ColorPicker")
|
|
12
|
+
|
|
13
|
+
_allowed_modes: set = field(default_factory=lambda: {ParameterMode.PROPERTY})
|
|
14
|
+
|
|
15
|
+
def __init__(self, format: Literal["hex", "hexa", "rgb", "rgba", "hsl", "hsla", "hsv", "hsva"] = "hex") -> None: # noqa: A002
|
|
16
|
+
super().__init__()
|
|
17
|
+
self.format = format
|
|
18
|
+
|
|
19
|
+
@classmethod
|
|
20
|
+
def get_trait_keys(cls) -> list[str]:
|
|
21
|
+
return ["color_picker"]
|
|
22
|
+
|
|
23
|
+
def ui_options_for_trait(self) -> dict:
|
|
24
|
+
return {"color_picker": {"format": self.format}}
|
|
25
|
+
|
|
26
|
+
def _validate_hex_format(self, value: str) -> None:
|
|
27
|
+
"""Validate hex and hexa color formats."""
|
|
28
|
+
if not value.startswith("#"):
|
|
29
|
+
# Allow hex without # prefix
|
|
30
|
+
if len(value) in [6, 8] and all(c in "0123456789ABCDEFabcdef" for c in value):
|
|
31
|
+
return # Valid hex without # prefix
|
|
32
|
+
msg = f"Invalid {self.format} format: {value}. Expected format like #FF0000 or #FF000088"
|
|
33
|
+
raise ValueError(msg)
|
|
34
|
+
if self.format == "hex" and len(value) not in [4, 7]: # #fff or #ffffff
|
|
35
|
+
msg = f"Invalid hex format: {value}. Expected format like #FF0000 or #FFF"
|
|
36
|
+
raise ValueError(msg)
|
|
37
|
+
if self.format == "hexa" and len(value) not in [5, 9]: # #ffff or #ffffffff
|
|
38
|
+
msg = f"Invalid hexa format: {value}. Expected format like #FF000088 or #FFFF"
|
|
39
|
+
raise ValueError(msg)
|
|
40
|
+
|
|
41
|
+
def _validate_function_format(self, value: str, prefixes: tuple[str, ...], example: str) -> None:
|
|
42
|
+
"""Validate function-based color formats (rgb, hsl, hsv)."""
|
|
43
|
+
if not value.startswith(prefixes):
|
|
44
|
+
msg = f"Invalid {self.format} format: {value}. Expected format like {example}"
|
|
45
|
+
raise ValueError(msg)
|
|
46
|
+
|
|
47
|
+
def validators_for_trait(self) -> list[Callable[..., Any]]:
|
|
48
|
+
def validate(param: Parameter, value: Any) -> None: # noqa: ARG001
|
|
49
|
+
if value is None:
|
|
50
|
+
return
|
|
51
|
+
|
|
52
|
+
if not isinstance(value, str):
|
|
53
|
+
msg = f"Color value must be a string for format {self.format}"
|
|
54
|
+
raise TypeError(msg)
|
|
55
|
+
|
|
56
|
+
# Validate based on format
|
|
57
|
+
if self.format in ["hex", "hexa"]:
|
|
58
|
+
self._validate_hex_format(value)
|
|
59
|
+
elif self.format in ["rgb", "rgba"]:
|
|
60
|
+
self._validate_function_format(value, ("rgb(", "rgba("), "rgb(255, 255, 255)")
|
|
61
|
+
elif self.format in ["hsl", "hsla"]:
|
|
62
|
+
self._validate_function_format(value, ("hsl(", "hsla("), "hsl(0, 0%, 100%)")
|
|
63
|
+
elif self.format in ["hsv", "hsva"]:
|
|
64
|
+
self._validate_function_format(value, ("hsv(", "hsva("), "hsv(0, 0%, 100%)")
|
|
65
|
+
|
|
66
|
+
return [validate]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: griptape-nodes
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.53.0
|
|
4
4
|
Summary: Add your description here
|
|
5
5
|
Requires-Dist: griptape>=1.8.2
|
|
6
6
|
Requires-Dist: pydantic>=2.10.6
|
|
@@ -19,6 +19,7 @@ Requires-Dist: mcp[ws]>=1.10.1
|
|
|
19
19
|
Requires-Dist: binaryornot>=0.4.4
|
|
20
20
|
Requires-Dist: pillow>=11.3.0
|
|
21
21
|
Requires-Dist: watchfiles>=1.1.0
|
|
22
|
+
Requires-Dist: typer>=0.15.0
|
|
22
23
|
Requires-Dist: austin-dist>=3.7.0 ; extra == 'profiling'
|
|
23
24
|
Requires-Python: >=3.12.0, <3.13
|
|
24
25
|
Provides-Extra: profiling
|
|
@@ -1,31 +1,44 @@
|
|
|
1
|
-
griptape_nodes/__init__.py,sha256=
|
|
1
|
+
griptape_nodes/__init__.py,sha256=Mrq0BBoPD2Auta_0Li8mS-geMqM7l4H17DX56qZzpBg,560
|
|
2
|
+
griptape_nodes/__main__.py,sha256=fJhor6_1A27abwbnceyNheONP1iXkPzjjsV5jBEfF2M,144
|
|
2
3
|
griptape_nodes/app/.python-version,sha256=e1X45ntWI8S-8_ppEojalDfXnTq6FW3kjUgdsyrH0W0,5
|
|
3
4
|
griptape_nodes/app/__init__.py,sha256=DB-DTsgcNnbmEClXEouwzGhrmo3gHBCWXB9BkPGpdQI,90
|
|
4
|
-
griptape_nodes/app/api.py,sha256=
|
|
5
|
-
griptape_nodes/app/app.py,sha256=
|
|
5
|
+
griptape_nodes/app/api.py,sha256=5IQgyXtcJeppwBpGmLdAQCOc5kh0KX2t1WOqkpo8P30,6579
|
|
6
|
+
griptape_nodes/app/app.py,sha256=QtsLXAaqT_eAhoVW2DCEnNXKl2GmVbeDrhB1fGacTxo,20047
|
|
6
7
|
griptape_nodes/app/watch.py,sha256=WE3P0Hl_jDezqy_UetNK2K5NTQFYKcoEbcKwzRWY4MU,2648
|
|
7
8
|
griptape_nodes/bootstrap/__init__.py,sha256=ENv3SIzQ9TtlRrg1y4e4CnoBpJaFpFSkNpTFBV8X5Ls,25
|
|
8
9
|
griptape_nodes/bootstrap/workflow_executors/__init__.py,sha256=pyjN81-eLtjyECFYLXOtMCixiiI9qBi5yald86iM7Ek,34
|
|
9
10
|
griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py,sha256=SNRJax-GEqMp6_y6JHLcLV1AQejQbKKBYodHea98MHQ,7615
|
|
10
11
|
griptape_nodes/bootstrap/workflow_executors/workflow_executor.py,sha256=ersKKwf1jcwyKr4UVlqvFMfvjKblvVx0Vf9oRfEoeRk,768
|
|
12
|
+
griptape_nodes/cli/__init__.py,sha256=HuXHtxqDMtpYRokxiFYuNB7R5EgkOshPil273kTmgNg,33
|
|
13
|
+
griptape_nodes/cli/commands/__init__.py,sha256=8EbS15rm9xrbcPocuQO2RmOwSD1BBwa8iDgPSdsvzuU,35
|
|
14
|
+
griptape_nodes/cli/commands/config.py,sha256=-hKkuQ0HDtSs-ZggIxcHxL2az5Kf3aVom_Ju1iR0Rkw,2200
|
|
15
|
+
griptape_nodes/cli/commands/engine.py,sha256=r6Qz3pWYCKdy4hv2cg7W5dFbBGvNVXnsll2LXVtDJZ4,2869
|
|
16
|
+
griptape_nodes/cli/commands/init.py,sha256=ucJ4yBp-Fai9EgJ7Xn1-kBpCQKIa4wDGNywrjbuSkaM,21595
|
|
17
|
+
griptape_nodes/cli/commands/libraries.py,sha256=jmiP8XXRHjeQrC0J8XXBFvkXzXN1rOb106X2K65WX8s,3452
|
|
18
|
+
griptape_nodes/cli/commands/self.py,sha256=VYhyHSqQLTeeBh-KdtITFpyxl5KAnf7SHcaGVtqumqs,3851
|
|
19
|
+
griptape_nodes/cli/main.py,sha256=8OniOQt9m_bufI6wqB3D5mEW65rQcHsKXiWeF1wQDzY,1176
|
|
20
|
+
griptape_nodes/cli/shared.py,sha256=wMV7yedNY6HQ0i7QbHE7ZuR33tJJQ0bM2nAoOsCThp8,2930
|
|
21
|
+
griptape_nodes/common/__init__.py,sha256=HTbJfTpu6-nU91zFCZW2qUNeW6bitNWNDayWqH6fpbA,22
|
|
22
|
+
griptape_nodes/common/directed_graph.py,sha256=LNtLLPmUCR0MiBWSaKj-mtbxXmuD8joTkGIWiFnaiAY,1781
|
|
11
23
|
griptape_nodes/drivers/__init__.py,sha256=tHmiFQn6uJyFVhC2PrqHgRUH3d3yDsqMQpWqRasmaqA,42
|
|
12
24
|
griptape_nodes/drivers/storage/__init__.py,sha256=_7p8vJt3YnnF6sD3Uxxw38c-gazuMIHSS-m3G6sa2Qk,208
|
|
13
25
|
griptape_nodes/drivers/storage/base_storage_driver.py,sha256=so2Syl3QSN3iPvllEST6yuYOLaGg5h5Nwo3m8I51N-Y,3734
|
|
14
26
|
griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py,sha256=DTi1S--uxG6xi1U_EMQyu42vEc07ZIy-egLFu0tJ8-c,7847
|
|
15
|
-
griptape_nodes/drivers/storage/local_storage_driver.py,sha256=
|
|
27
|
+
griptape_nodes/drivers/storage/local_storage_driver.py,sha256=YLVT-4PCmov6YtZ2h_DTaSjWwBrSNU0woMZb1Gl7Gzw,3524
|
|
16
28
|
griptape_nodes/drivers/storage/storage_backend.py,sha256=3QBIwrgPc1krBIiPYLoK2swhIPDiKJnnucOEdyx7y3c,184
|
|
17
29
|
griptape_nodes/exe_types/__init__.py,sha256=wGGwKGX9-TSarUFbXpDvdU_J7eXIbWTBl_NCLOZa-G8,32
|
|
18
30
|
griptape_nodes/exe_types/connections.py,sha256=_-VNzf6Kay62QzJlSX-LlHTUhz-CKF-UDsbZLJ0l6Wk,12435
|
|
19
|
-
griptape_nodes/exe_types/core_types.py,sha256=
|
|
31
|
+
griptape_nodes/exe_types/core_types.py,sha256=eG7rUjQl9tc_BRwqWqeJ8RGqZWoqNuO0khVAYlzva3I,73985
|
|
20
32
|
griptape_nodes/exe_types/flow.py,sha256=pCeTrx8yrUgLw1U9yQxC7arzJjyP2vag-pG0QTKut-M,5716
|
|
21
|
-
griptape_nodes/exe_types/node_types.py,sha256=
|
|
33
|
+
griptape_nodes/exe_types/node_types.py,sha256=k6hXDLYllAxd44L4idkNkKeRbpV_qkZD6TlIg85hPZ0,62907
|
|
22
34
|
griptape_nodes/exe_types/type_validator.py,sha256=RTz1vX09jzQpHhozITMJ0siOZUXvsERDhrApjdaM1WM,1120
|
|
23
35
|
griptape_nodes/machines/__init__.py,sha256=v0jkwr-CFOLmfEYUQvX8BKQLOdvhSsA6toXkdHcPGUE,30
|
|
24
|
-
griptape_nodes/machines/control_flow.py,sha256=
|
|
25
|
-
griptape_nodes/machines/fsm.py,sha256=
|
|
26
|
-
griptape_nodes/machines/
|
|
36
|
+
griptape_nodes/machines/control_flow.py,sha256=70-tkgMS3gnkuMq19INNJ7vPZoBl3Axs8gSUPdGIKEk,12890
|
|
37
|
+
griptape_nodes/machines/fsm.py,sha256=WNo2w5c9Gbgzo5odcvbRT02EhCMFf3n3WYbZ0GYk1WI,2553
|
|
38
|
+
griptape_nodes/machines/parallel_resolution.py,sha256=F1_4Wz8upqzXbWJtFVCq8H1T4k_luIJFCrxJViLNHf8,24264
|
|
39
|
+
griptape_nodes/machines/sequential_resolution.py,sha256=VmtSg6RxXZ7Up9vU1lNXYNQwlCs5A05diDSUPpNRYiY,16847
|
|
27
40
|
griptape_nodes/mcp_server/__init__.py,sha256=GSpJWqE4lICaryhsQR1okeMH2x6j1bBL0HVxtr52WLg,42
|
|
28
|
-
griptape_nodes/mcp_server/server.py,sha256=
|
|
41
|
+
griptape_nodes/mcp_server/server.py,sha256=X1ulGyHqQCFiRnJ8PgJh4lf83k62a_D9vFQThgKUaMw,5217
|
|
29
42
|
griptape_nodes/mcp_server/ws_request_manager.py,sha256=UpXOKNq_VauQmJ0Rx0C7OrzcwjeCoDfjpx3IE38NgsE,10949
|
|
30
43
|
griptape_nodes/node_library/__init__.py,sha256=U3FcSdmq6UW7qt6E3Up3NWKvUEn5_5lqL-u5qbzfxMQ,28
|
|
31
44
|
griptape_nodes/node_library/advanced_node_library.py,sha256=B1ZaxuFIzQ6tx_3MLIxlsHuahthEC1Hw_t6K_ByIdzs,2104
|
|
@@ -37,7 +50,7 @@ griptape_nodes/retained_mode/events/__init__.py,sha256=7B1C-c0jVvnShtHJ2lfX6BZPE
|
|
|
37
50
|
griptape_nodes/retained_mode/events/agent_events.py,sha256=xyCtR-Hf1vv6Ft-z0At0ytIMYBRckYympxdByVZXrCE,4880
|
|
38
51
|
griptape_nodes/retained_mode/events/app_events.py,sha256=_1Hq2ynjeyry8WlJ8psvfYSAGHJtRmUowqypksF8Nfs,8416
|
|
39
52
|
griptape_nodes/retained_mode/events/arbitrary_python_events.py,sha256=uhep1c1xjUc-YQO5nIStAE48PS6rFZLTDQIr_Qb3we8,1460
|
|
40
|
-
griptape_nodes/retained_mode/events/base_events.py,sha256=
|
|
53
|
+
griptape_nodes/retained_mode/events/base_events.py,sha256=9DYHnOVuSew6Qj8t6Hfd2I4YECNQP_cKJudmWmxM4wo,23232
|
|
41
54
|
griptape_nodes/retained_mode/events/config_events.py,sha256=9WhFx6mD7QF_h1ldFAPRE_iLtrQBAFEvA6_MzhGOomk,6129
|
|
42
55
|
griptape_nodes/retained_mode/events/connection_events.py,sha256=QjHAp0SeCbRSG-dF_nU_CPaOcSKItq2DWJ_FHWgF1b4,4744
|
|
43
56
|
griptape_nodes/retained_mode/events/context_events.py,sha256=-FIwjI0hJodDhfM4BF-3GTRycu80v1TlSSOX34oA9nA,2122
|
|
@@ -46,7 +59,7 @@ griptape_nodes/retained_mode/events/flow_events.py,sha256=CE7aFHvByY6ii0hI-_Q9uk
|
|
|
46
59
|
griptape_nodes/retained_mode/events/generate_request_payload_schemas.py,sha256=PQ0QRZAUBljSIGjB8QhYUeRmSrfmLsJ6XVcygJKi13I,1102
|
|
47
60
|
griptape_nodes/retained_mode/events/library_events.py,sha256=9KVMHA5VazY3fXEIm31Zmy-rJ43AxNgna4SzVPmy8Pg,17629
|
|
48
61
|
griptape_nodes/retained_mode/events/logger_events.py,sha256=jYlxzPomgCsJuPtJ0znWBhD8QJfC8qC4xfChDiuVuyg,705
|
|
49
|
-
griptape_nodes/retained_mode/events/node_events.py,sha256=
|
|
62
|
+
griptape_nodes/retained_mode/events/node_events.py,sha256=bVB7y_2C2NdAfXZWoTUyzuWs3z11Nlz8qXyDNsy-0Uo,30062
|
|
50
63
|
griptape_nodes/retained_mode/events/object_events.py,sha256=cJaqEU73Lzf1RRxJrFqEpl8eTr-gDhKpXKywJ-vVCJQ,2631
|
|
51
64
|
griptape_nodes/retained_mode/events/os_events.py,sha256=X0mmyk_r5t6upaQ8eWClD7J25AiX2ggsAuxMZSW9Vx0,8085
|
|
52
65
|
griptape_nodes/retained_mode/events/parameter_events.py,sha256=32dDaVe9oV_fNRtz5xv4_9GP_yr_EXUMsRi2i1rTSNI,19276
|
|
@@ -57,18 +70,18 @@ griptape_nodes/retained_mode/events/sync_events.py,sha256=AoxBZLPPdzx4S5CiOJVRDe
|
|
|
57
70
|
griptape_nodes/retained_mode/events/validation_events.py,sha256=H2yWoHp2t7QwGV_fDQXRy7JojYnK4k6SOAlEvRYST_Q,3062
|
|
58
71
|
griptape_nodes/retained_mode/events/variable_events.py,sha256=fnl_sY8GWI_R4UJQTEJSlmsyCD9TiEW0U2UD2seBabs,10587
|
|
59
72
|
griptape_nodes/retained_mode/events/workflow_events.py,sha256=MwNmOC6RZXcsXvIzk6zMIH-gEPcKkkphkPe03YocOaI,19703
|
|
60
|
-
griptape_nodes/retained_mode/griptape_nodes.py,sha256
|
|
73
|
+
griptape_nodes/retained_mode/griptape_nodes.py,sha256=s86_1nqH7q1k0f1rPQWSnqljP98XhJY3kwGh7zBUSh4,26997
|
|
61
74
|
griptape_nodes/retained_mode/managers/__init__.py,sha256=OTXysKusqYCQeAYwnVj4PbE3MxvAUTq9xOZT6vUE3JA,24
|
|
62
|
-
griptape_nodes/retained_mode/managers/agent_manager.py,sha256=
|
|
63
|
-
griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py,sha256=
|
|
75
|
+
griptape_nodes/retained_mode/managers/agent_manager.py,sha256=gxLKpxJmJWQvo7vwv8p8Xl9WQYazHmhb-fGpMQ4qtQI,11618
|
|
76
|
+
griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py,sha256=3IRIrpKR62MvTdGWfQa1ARUVxCmMUNtzUU4xMcQdlCY,1891
|
|
64
77
|
griptape_nodes/retained_mode/managers/config_manager.py,sha256=11shHccjKfS3WvCYH4F2s2HIKnbPMsZ6iWBVgZkxPDA,25676
|
|
65
|
-
griptape_nodes/retained_mode/managers/context_manager.py,sha256=
|
|
78
|
+
griptape_nodes/retained_mode/managers/context_manager.py,sha256=eb44_CAZhCg2iYIoodlAPpYc67tG3sHyq9dPNoiq_1s,23031
|
|
66
79
|
griptape_nodes/retained_mode/managers/engine_identity_manager.py,sha256=GBBz7HJBJVNyXLGRdAvqDgihMRB_YjWqdEwLMCnadUg,4409
|
|
67
80
|
griptape_nodes/retained_mode/managers/event_manager.py,sha256=VYSYf5_ydTGjmjqY2PcT_l0enTafAGn3IQzTE7qVvbs,11715
|
|
68
|
-
griptape_nodes/retained_mode/managers/flow_manager.py,sha256=
|
|
81
|
+
griptape_nodes/retained_mode/managers/flow_manager.py,sha256=6ipC1hypDJqa7usE8oXYDbhkRMHFbnQgZxlFZUNXO_4,109726
|
|
69
82
|
griptape_nodes/retained_mode/managers/library_lifecycle/__init__.py,sha256=Iq79VxTdETiExBfFWXceJggDZqS6X3OkzXE9XwFclVw,1340
|
|
70
83
|
griptape_nodes/retained_mode/managers/library_lifecycle/data_models.py,sha256=fvAP0VaYGPHYl_Kg3RL4gdJlpqya8UTvpP-C49r950k,6723
|
|
71
|
-
griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py,sha256=
|
|
84
|
+
griptape_nodes/retained_mode/managers/library_lifecycle/library_directory.py,sha256=Ywno93eVJH4sAtQ1dgHG2Pw9B3vw8fN8oAL0gn_l6OI,14836
|
|
72
85
|
griptape_nodes/retained_mode/managers/library_lifecycle/library_fsm.py,sha256=ZlX-FMhGxqafpLjHGftN3iV1r5LVxV9Qa6mWshBla8w,18669
|
|
73
86
|
griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/__init__.py,sha256=X0SnqNuEtBVPvccfrUr_wBQQ9i5xJzcaWJLwFJTRRco,814
|
|
74
87
|
griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/base.py,sha256=eVV6p9B-aQeaoDbA-c4s1MPpkKtESV7KS1Fxr2E9z4Q,2615
|
|
@@ -78,28 +91,29 @@ griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/packa
|
|
|
78
91
|
griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance/sandbox.py,sha256=XgG7whE74zWDxX1pOvhASW0pwjOei1EDLvIH19xdzT0,6117
|
|
79
92
|
griptape_nodes/retained_mode/managers/library_lifecycle/library_provenance.py,sha256=cCGr-MQ1RlVBiUTZepYEKdVhPgC4ebcYrmpv8rI3VeM,894
|
|
80
93
|
griptape_nodes/retained_mode/managers/library_lifecycle/library_status.py,sha256=K3UEBzAdCY9wphyBbLxDYP0Q43aYvhLZ_Pz7_SzcPec,443
|
|
81
|
-
griptape_nodes/retained_mode/managers/library_manager.py,sha256
|
|
82
|
-
griptape_nodes/retained_mode/managers/node_manager.py,sha256=
|
|
83
|
-
griptape_nodes/retained_mode/managers/object_manager.py,sha256=
|
|
94
|
+
griptape_nodes/retained_mode/managers/library_manager.py,sha256=0_2qeFSal_zZETUUrReD2Otke2_NLvt8qaWkbONLEW8,99626
|
|
95
|
+
griptape_nodes/retained_mode/managers/node_manager.py,sha256=cL299xfz3nOBt-9GCKwFGe1Wf22nCg8jfsgW1gQWjwM,150174
|
|
96
|
+
griptape_nodes/retained_mode/managers/object_manager.py,sha256=BOgKqoEFQbO9LhxKLezKUovdLQZXwip1PiZsQKSVfJ4,12808
|
|
84
97
|
griptape_nodes/retained_mode/managers/operation_manager.py,sha256=lTkMZlaacTgtV5oV-YF6HG8xsx9V_LwX1eg074WTs2k,20137
|
|
85
|
-
griptape_nodes/retained_mode/managers/os_manager.py,sha256=
|
|
86
|
-
griptape_nodes/retained_mode/managers/secrets_manager.py,sha256=
|
|
98
|
+
griptape_nodes/retained_mode/managers/os_manager.py,sha256=ke1S-vHVDMBAdApaUbV3kOY7Bw1WkOmS1SgX8CAvkO8,35050
|
|
99
|
+
griptape_nodes/retained_mode/managers/secrets_manager.py,sha256=tYiUpUhQYdpfu6Tvj98xGNHLc2ytSjH1tOshubD7BHI,6712
|
|
87
100
|
griptape_nodes/retained_mode/managers/session_manager.py,sha256=fLjtBvgGY3daq1vbpJPXq069n35Z-Zr5dF3B0XyD2JY,11817
|
|
88
|
-
griptape_nodes/retained_mode/managers/settings.py,sha256=
|
|
89
|
-
griptape_nodes/retained_mode/managers/static_files_manager.py,sha256=
|
|
90
|
-
griptape_nodes/retained_mode/managers/sync_manager.py,sha256=
|
|
101
|
+
griptape_nodes/retained_mode/managers/settings.py,sha256=GACKlaB6NjZ5TcinO_-omFY-Sjt0lhz_ZWT_Hf7Eg_Y,5896
|
|
102
|
+
griptape_nodes/retained_mode/managers/static_files_manager.py,sha256=qCuvnghnsCamvB6Ce3hnSTu6NQiz7P7ISNn_BuQT7K4,7583
|
|
103
|
+
griptape_nodes/retained_mode/managers/sync_manager.py,sha256=qyQbPX0L0zjst_NhtPe-blvy7GpN9J3FXEsMzDMALj8,20599
|
|
91
104
|
griptape_nodes/retained_mode/managers/variable_manager.py,sha256=TnuqHSRK9Yiu_EtKxQksF9SyyQb72lbFQuTQZdpBxeE,24116
|
|
92
105
|
griptape_nodes/retained_mode/managers/version_compatibility_manager.py,sha256=85gpl9WCgHbWNifxoiAidHmsXyqpUCTjuEW-FziFYME,8375
|
|
93
|
-
griptape_nodes/retained_mode/managers/workflow_manager.py,sha256=
|
|
106
|
+
griptape_nodes/retained_mode/managers/workflow_manager.py,sha256=GFOvCj8sD5lzieNwCjJABAzsQm1xsYxDVr7p_DP8sZQ,183890
|
|
94
107
|
griptape_nodes/retained_mode/retained_mode.py,sha256=NmpAQ3NksDdAZ9SMGRfbSDKBr5cDRjSu06SJNGH2Vvw,56903
|
|
95
108
|
griptape_nodes/retained_mode/utils/__init__.py,sha256=W5dvv8YwvVVq_8eVTgMd3Z_VB_Dtq1sIIVq8745QH_I,52
|
|
96
109
|
griptape_nodes/retained_mode/utils/engine_identity.py,sha256=PZmdlYM69-B-6Z1F4iJfZyVm2twJY5cSGoiUJCMj0xU,7846
|
|
97
110
|
griptape_nodes/retained_mode/utils/name_generator.py,sha256=IZLahtfP3XC79XApLdGoZ0IKKUkgiITpd16RK7NbyEs,2524
|
|
98
111
|
griptape_nodes/retained_mode/variable_types.py,sha256=GVrSWMB3gEDAufSPOBXbNfIRhA9M43MoxpqLyuIg_HE,435
|
|
99
112
|
griptape_nodes/traits/__init__.py,sha256=bTLXTiZTJz2z15RRLoPI4nvLnNW9FiLcKL_2pT4E10g,32
|
|
100
|
-
griptape_nodes/traits/add_param_button.py,sha256=
|
|
101
|
-
griptape_nodes/traits/button.py,sha256=
|
|
113
|
+
griptape_nodes/traits/add_param_button.py,sha256=27RZDVLMD0HmRF6hjfz7iV7LBau92vMc_d2eD2Ey8fA,649
|
|
114
|
+
griptape_nodes/traits/button.py,sha256=b-N1aFfhlgb4PUOtrj3eCc7pEweSpJxU21QvNyFPTdc,8250
|
|
102
115
|
griptape_nodes/traits/clamp.py,sha256=BZVHiWfBNePWaPMaLyOgtcWzkM7Ls4hcPlm_afmGiIs,1030
|
|
116
|
+
griptape_nodes/traits/color_picker.py,sha256=ySKaoZw319yfuTSEtkVT2vSR6Goy9pBm4rusjx95F0c,3024
|
|
103
117
|
griptape_nodes/traits/compare.py,sha256=X-BXGemRDxQV4EX8X24LdtcwMWwfQ1jGqDvH2bSiSuc,521
|
|
104
118
|
griptape_nodes/traits/compare_images.py,sha256=KW0WlwsJP6nBoC1irdeRnUWUnZIJvlROlDhyWhX8iEs,1594
|
|
105
119
|
griptape_nodes/traits/file_system_picker.py,sha256=p-RaH4xwb2Fo0wuFsYbsiL66W23KdESX0Qq6EAtDFj8,5806
|
|
@@ -107,7 +121,7 @@ griptape_nodes/traits/minmax.py,sha256=eVySrz02WPvpwbSrqW7FRTmetNBOBKyf8YrXrzyOG
|
|
|
107
121
|
griptape_nodes/traits/options.py,sha256=Kj7isw0XkhI1jmCCYuXP63Td8K8rg21nGC77ultNXnI,1096
|
|
108
122
|
griptape_nodes/traits/slider.py,sha256=bLe46gtCmjhMCHaGzUstIWMJv2Zl2Yee7fkT6g4Q6Rk,1236
|
|
109
123
|
griptape_nodes/traits/trait_registry.py,sha256=pU26mW2ztfu1UARGYloflsTPqJ1X_-u013cMNoel9Hw,1171
|
|
110
|
-
griptape_nodes/traits/traits.json,sha256=
|
|
124
|
+
griptape_nodes/traits/traits.json,sha256=JwFsOaFfLeR1ohcyh6XApc5N2-mWMPGSaYbpA-mD7mk,133
|
|
111
125
|
griptape_nodes/updater/__init__.py,sha256=eWalSt_N5a0RPT2YkXeIee_YPiCL47OB0G9GB0gn3pY,2522
|
|
112
126
|
griptape_nodes/updater/__main__.py,sha256=lhMMctbBeni57ximitvkwqJ1TQzk79Jg9w0rkKjtp5Y,79
|
|
113
127
|
griptape_nodes/utils/__init__.py,sha256=kzDZW_VPyxWJFonM3kYTl7A91_JmtHPK0Io4KPLTYT4,122
|
|
@@ -124,7 +138,7 @@ griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_re
|
|
|
124
138
|
griptape_nodes/version_compatibility/workflow_versions/__init__.py,sha256=z5XDgkizoNByCXpyo34hfsJKFsWlOHbD6hgzfYH9ubc,52
|
|
125
139
|
griptape_nodes/version_compatibility/workflow_versions/v0_7_0/__init__.py,sha256=IzPPmGK86h2swfGGTOHyVcBIlOng6SjgWQzlbf3ngmo,51
|
|
126
140
|
griptape_nodes/version_compatibility/workflow_versions/v0_7_0/local_executor_argument_addition.py,sha256=9PclAp_Mm5IPtd5yj5XSS5-x7QYmifvhTly20CgBZmo,2018
|
|
127
|
-
griptape_nodes-0.
|
|
128
|
-
griptape_nodes-0.
|
|
129
|
-
griptape_nodes-0.
|
|
130
|
-
griptape_nodes-0.
|
|
141
|
+
griptape_nodes-0.53.0.dist-info/WHEEL,sha256=Jb20R3Ili4n9P1fcwuLup21eQ5r9WXhs4_qy7VTrgPI,79
|
|
142
|
+
griptape_nodes-0.53.0.dist-info/entry_points.txt,sha256=qvevqd3BVbAV5TcantnAm0ouqaqYKhsRO3pkFymWLWM,82
|
|
143
|
+
griptape_nodes-0.53.0.dist-info/METADATA,sha256=mlgE0MxmT5zO0tsjLeu00yhEbDiYbiGESUShY0SCi_Y,4972
|
|
144
|
+
griptape_nodes-0.53.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|