griptape-nodes 0.38.1__py3-none-any.whl → 0.41.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.
Files changed (38) hide show
  1. griptape_nodes/__init__.py +13 -9
  2. griptape_nodes/app/__init__.py +10 -1
  3. griptape_nodes/app/app.py +2 -3
  4. griptape_nodes/app/app_sessions.py +458 -0
  5. griptape_nodes/bootstrap/workflow_executors/__init__.py +1 -0
  6. griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py +213 -0
  7. griptape_nodes/bootstrap/workflow_executors/workflow_executor.py +13 -0
  8. griptape_nodes/bootstrap/workflow_runners/local_workflow_runner.py +1 -1
  9. griptape_nodes/drivers/storage/__init__.py +4 -0
  10. griptape_nodes/drivers/storage/storage_backend.py +10 -0
  11. griptape_nodes/exe_types/core_types.py +5 -1
  12. griptape_nodes/exe_types/node_types.py +20 -24
  13. griptape_nodes/machines/node_resolution.py +5 -1
  14. griptape_nodes/node_library/advanced_node_library.py +51 -0
  15. griptape_nodes/node_library/library_registry.py +28 -2
  16. griptape_nodes/node_library/workflow_registry.py +1 -1
  17. griptape_nodes/retained_mode/events/agent_events.py +15 -2
  18. griptape_nodes/retained_mode/events/app_events.py +113 -2
  19. griptape_nodes/retained_mode/events/base_events.py +28 -1
  20. griptape_nodes/retained_mode/events/library_events.py +111 -1
  21. griptape_nodes/retained_mode/events/node_events.py +1 -0
  22. griptape_nodes/retained_mode/events/workflow_events.py +1 -0
  23. griptape_nodes/retained_mode/griptape_nodes.py +240 -18
  24. griptape_nodes/retained_mode/managers/agent_manager.py +123 -17
  25. griptape_nodes/retained_mode/managers/flow_manager.py +16 -48
  26. griptape_nodes/retained_mode/managers/library_manager.py +642 -121
  27. griptape_nodes/retained_mode/managers/node_manager.py +2 -2
  28. griptape_nodes/retained_mode/managers/static_files_manager.py +4 -3
  29. griptape_nodes/retained_mode/managers/workflow_manager.py +666 -37
  30. griptape_nodes/retained_mode/utils/__init__.py +1 -0
  31. griptape_nodes/retained_mode/utils/engine_identity.py +131 -0
  32. griptape_nodes/retained_mode/utils/name_generator.py +162 -0
  33. griptape_nodes/retained_mode/utils/session_persistence.py +105 -0
  34. {griptape_nodes-0.38.1.dist-info → griptape_nodes-0.41.0.dist-info}/METADATA +1 -1
  35. {griptape_nodes-0.38.1.dist-info → griptape_nodes-0.41.0.dist-info}/RECORD +38 -28
  36. {griptape_nodes-0.38.1.dist-info → griptape_nodes-0.41.0.dist-info}/WHEEL +0 -0
  37. {griptape_nodes-0.38.1.dist-info → griptape_nodes-0.41.0.dist-info}/entry_points.txt +0 -0
  38. {griptape_nodes-0.38.1.dist-info → griptape_nodes-0.41.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1 @@
1
+ """Utility modules for the retained mode system."""
@@ -0,0 +1,131 @@
1
+ """Manages engine identity for a single engine per machine.
2
+
3
+ Handles engine ID, name storage, and generation for unique engine identification.
4
+ """
5
+
6
+ import json
7
+ import os
8
+ import uuid
9
+ from datetime import UTC, datetime
10
+ from pathlib import Path
11
+
12
+ from xdg_base_dirs import xdg_data_home
13
+
14
+ from .name_generator import generate_engine_name
15
+
16
+
17
+ class EngineIdentity:
18
+ """Manages engine identity for a single engine per machine."""
19
+
20
+ _ENGINE_DATA_FILE = "engine.json"
21
+
22
+ @classmethod
23
+ def _get_engine_data_dir(cls) -> Path:
24
+ """Get the XDG data directory for engine identity storage."""
25
+ return xdg_data_home() / "griptape_nodes"
26
+
27
+ @classmethod
28
+ def _get_engine_data_file(cls) -> Path:
29
+ """Get the path to the engine data storage file."""
30
+ return cls._get_engine_data_dir() / cls._ENGINE_DATA_FILE
31
+
32
+ @classmethod
33
+ def _load_engine_data(cls) -> dict:
34
+ """Load engine data from storage.
35
+
36
+ Returns:
37
+ dict: Engine data including id, name, timestamps
38
+ """
39
+ engine_data_file = cls._get_engine_data_file()
40
+
41
+ if engine_data_file.exists():
42
+ try:
43
+ with engine_data_file.open("r") as f:
44
+ data = json.load(f)
45
+ if isinstance(data, dict):
46
+ return data
47
+ except (json.JSONDecodeError, OSError):
48
+ # If file is corrupted, return empty dict
49
+ pass
50
+
51
+ return {}
52
+
53
+ @classmethod
54
+ def _save_engine_data(cls, engine_data: dict) -> None:
55
+ """Save engine data to storage.
56
+
57
+ Args:
58
+ engine_data: Engine data to save
59
+ """
60
+ engine_data_dir = cls._get_engine_data_dir()
61
+ engine_data_dir.mkdir(parents=True, exist_ok=True)
62
+
63
+ engine_data_file = cls._get_engine_data_file()
64
+ with engine_data_file.open("w") as f:
65
+ json.dump(engine_data, f, indent=2)
66
+
67
+ @classmethod
68
+ def get_engine_data(cls) -> dict:
69
+ """Get the engine data, creating default if it doesn't exist.
70
+
71
+ Returns:
72
+ dict: The engine data
73
+ """
74
+ engine_data = cls._load_engine_data()
75
+
76
+ if not engine_data or "id" not in engine_data:
77
+ # Create default engine data
78
+ engine_data = {
79
+ "id": os.getenv("GTN_ENGINE_ID") or str(uuid.uuid4()),
80
+ "name": generate_engine_name(),
81
+ "created_at": datetime.now(tz=UTC).isoformat(),
82
+ }
83
+ cls._save_engine_data(engine_data)
84
+
85
+ return engine_data
86
+
87
+ @classmethod
88
+ def get_engine_id(cls) -> str:
89
+ """Get the engine ID.
90
+
91
+ Returns:
92
+ str: The engine ID (UUID)
93
+ """
94
+ engine_data = cls.get_engine_data()
95
+ return engine_data["id"]
96
+
97
+ @classmethod
98
+ def get_engine_name(cls) -> str:
99
+ """Get the engine name.
100
+
101
+ Returns:
102
+ str: The engine name
103
+ """
104
+ engine_data = cls.get_engine_data()
105
+ return engine_data["name"]
106
+
107
+ @classmethod
108
+ def set_engine_name(cls, engine_name: str) -> None:
109
+ """Set and persist the engine name.
110
+
111
+ Args:
112
+ engine_name: The new engine name to set
113
+ """
114
+ engine_data = cls._load_engine_data()
115
+
116
+ # Ensure we have basic engine data
117
+ if not engine_data or "id" not in engine_data:
118
+ engine_data = cls.get_engine_data()
119
+
120
+ engine_data["name"] = engine_name
121
+ engine_data["updated_at"] = datetime.now(tz=UTC).isoformat()
122
+ cls._save_engine_data(engine_data)
123
+
124
+ @classmethod
125
+ def get_engine_data_file_path(cls) -> Path:
126
+ """Get the path where engine data is stored (for debugging/inspection).
127
+
128
+ Returns:
129
+ Path: The path to the engine data file
130
+ """
131
+ return cls._get_engine_data_file()
@@ -0,0 +1,162 @@
1
+ """Generates random fun names for engines like 'admirable-finch' or 'ancient-green-cat'.
2
+
3
+ Used for default engine naming when no custom name is provided.
4
+ """
5
+
6
+ import random
7
+
8
+ ADJECTIVES = [
9
+ "admirable",
10
+ "ancient",
11
+ "brave",
12
+ "bright",
13
+ "calm",
14
+ "clever",
15
+ "cool",
16
+ "cozy",
17
+ "daring",
18
+ "dreamy",
19
+ "eager",
20
+ "elegant",
21
+ "epic",
22
+ "fancy",
23
+ "fierce",
24
+ "fluffy",
25
+ "gentle",
26
+ "golden",
27
+ "graceful",
28
+ "happy",
29
+ "honest",
30
+ "jolly",
31
+ "kind",
32
+ "lively",
33
+ "lucky",
34
+ "magical",
35
+ "mighty",
36
+ "noble",
37
+ "peaceful",
38
+ "playful",
39
+ "proud",
40
+ "quiet",
41
+ "radiant",
42
+ "serene",
43
+ "shiny",
44
+ "silver",
45
+ "smooth",
46
+ "stellar",
47
+ "swift",
48
+ "tender",
49
+ "valiant",
50
+ "vibrant",
51
+ "warm",
52
+ "wise",
53
+ "wonderful",
54
+ "zesty",
55
+ ]
56
+
57
+ ANIMALS = [
58
+ "ant",
59
+ "bear",
60
+ "cat",
61
+ "deer",
62
+ "eagle",
63
+ "finch",
64
+ "goat",
65
+ "hawk",
66
+ "ibis",
67
+ "jay",
68
+ "kiwi",
69
+ "llama",
70
+ "mouse",
71
+ "newt",
72
+ "owl",
73
+ "panda",
74
+ "quail",
75
+ "rabbit",
76
+ "seal",
77
+ "tiger",
78
+ "urchin",
79
+ "viper",
80
+ "whale",
81
+ "xerus",
82
+ "yak",
83
+ "zebra",
84
+ "badger",
85
+ "crane",
86
+ "dove",
87
+ "elk",
88
+ "fox",
89
+ "gecko",
90
+ "heron",
91
+ "iguana",
92
+ "jackal",
93
+ "koala",
94
+ "lynx",
95
+ "mole",
96
+ "narwhal",
97
+ "otter",
98
+ "penguin",
99
+ "quokka",
100
+ "raven",
101
+ "swan",
102
+ "turtle",
103
+ "unicorn",
104
+ "vulture",
105
+ "wolf",
106
+ "xenops",
107
+ "yellowhammer",
108
+ ]
109
+
110
+ COLORS = [
111
+ "amber",
112
+ "azure",
113
+ "bronze",
114
+ "coral",
115
+ "crimson",
116
+ "emerald",
117
+ "forest",
118
+ "golden",
119
+ "indigo",
120
+ "jade",
121
+ "lavender",
122
+ "magenta",
123
+ "navy",
124
+ "orange",
125
+ "pink",
126
+ "rose",
127
+ "ruby",
128
+ "sage",
129
+ "teal",
130
+ "violet",
131
+ "white",
132
+ "yellow",
133
+ "black",
134
+ "blue",
135
+ "brown",
136
+ "cyan",
137
+ "gray",
138
+ "green",
139
+ "lime",
140
+ "maroon",
141
+ "olive",
142
+ "purple",
143
+ "red",
144
+ "silver",
145
+ ]
146
+
147
+
148
+ def generate_engine_name() -> str:
149
+ """Generate a random engine name in the format 'adjective-animal' or 'adjective-color-animal'.
150
+
151
+ Returns:
152
+ str: A randomly generated engine name
153
+ """
154
+ adjective = random.choice(ADJECTIVES) # noqa: S311
155
+ animal = random.choice(ANIMALS) # noqa: S311
156
+
157
+ # 30% chance to include a color for more variety
158
+ color_chance = 0.3
159
+ if random.random() < color_chance: # noqa: S311
160
+ color = random.choice(COLORS) # noqa: S311
161
+ return f"{adjective}-{color}-{animal}"
162
+ return f"{adjective}-{animal}"
@@ -0,0 +1,105 @@
1
+ """Manages session persistence using XDG state directory.
2
+
3
+ Handles storing and retrieving active session information across engine restarts.
4
+ """
5
+
6
+ import json
7
+ from datetime import UTC, datetime
8
+ from pathlib import Path
9
+
10
+ from xdg_base_dirs import xdg_state_home
11
+
12
+
13
+ class SessionPersistence:
14
+ """Manages session persistence for active session tracking."""
15
+
16
+ _SESSION_STATE_FILE = "session.json"
17
+
18
+ @classmethod
19
+ def _get_session_state_dir(cls) -> Path:
20
+ """Get the XDG state directory for session persistence."""
21
+ return xdg_state_home() / "griptape_nodes"
22
+
23
+ @classmethod
24
+ def _get_session_state_file(cls) -> Path:
25
+ """Get the path to the session state storage file."""
26
+ return cls._get_session_state_dir() / cls._SESSION_STATE_FILE
27
+
28
+ @classmethod
29
+ def _load_session_data(cls) -> dict:
30
+ """Load session data from storage.
31
+
32
+ Returns:
33
+ dict: Session data including id, timestamps
34
+ """
35
+ session_state_file = cls._get_session_state_file()
36
+
37
+ if session_state_file.exists():
38
+ try:
39
+ with session_state_file.open("r") as f:
40
+ data = json.load(f)
41
+ if isinstance(data, dict):
42
+ return data
43
+ except (json.JSONDecodeError, OSError):
44
+ # If file is corrupted, return empty dict
45
+ pass
46
+
47
+ return {}
48
+
49
+ @classmethod
50
+ def _save_session_data(cls, session_data: dict) -> None:
51
+ """Save session data to storage.
52
+
53
+ Args:
54
+ session_data: Session data to save
55
+ """
56
+ session_state_dir = cls._get_session_state_dir()
57
+ session_state_dir.mkdir(parents=True, exist_ok=True)
58
+
59
+ session_state_file = cls._get_session_state_file()
60
+ with session_state_file.open("w") as f:
61
+ json.dump(session_data, f, indent=2)
62
+
63
+ @classmethod
64
+ def persist_session(cls, session_id: str) -> None:
65
+ """Persist the active session ID to storage.
66
+
67
+ Args:
68
+ session_id: The session ID to persist
69
+ """
70
+ session_data = {
71
+ "session_id": session_id,
72
+ "started_at": datetime.now(tz=UTC).isoformat(),
73
+ "last_updated": datetime.now(tz=UTC).isoformat(),
74
+ }
75
+ cls._save_session_data(session_data)
76
+
77
+ @classmethod
78
+ def get_persisted_session_id(cls) -> str | None:
79
+ """Get the persisted session ID if it exists.
80
+
81
+ Returns:
82
+ str | None: The persisted session ID or None if no session is persisted
83
+ """
84
+ session_data = cls._load_session_data()
85
+ return session_data.get("session_id")
86
+
87
+ @classmethod
88
+ def clear_persisted_session(cls) -> None:
89
+ """Clear the persisted session data."""
90
+ session_state_file = cls._get_session_state_file()
91
+ if session_state_file.exists():
92
+ try:
93
+ session_state_file.unlink()
94
+ except OSError:
95
+ # If we can't delete the file, just clear its contents
96
+ cls._save_session_data({})
97
+
98
+ @classmethod
99
+ def has_persisted_session(cls) -> bool:
100
+ """Check if there is a persisted session.
101
+
102
+ Returns:
103
+ bool: True if there is a persisted session, False otherwise
104
+ """
105
+ return cls.get_persisted_session_id() is not None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: griptape-nodes
3
- Version: 0.38.1
3
+ Version: 0.41.0
4
4
  Summary: Add your description here
5
5
  License-File: LICENSE
6
6
  Requires-Python: ~=3.12
@@ -1,8 +1,9 @@
1
- griptape_nodes/__init__.py,sha256=eR5gLjOtO8XGKLHIq8r076vx_t6uEY36EOZ1OJedgg0,36638
1
+ griptape_nodes/__init__.py,sha256=49jcr4gyvTjpdZDKCek0UqtAMeMdJr-OL_Hx7Ira8CE,37026
2
2
  griptape_nodes/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  griptape_nodes/app/.python-version,sha256=e1X45ntWI8S-8_ppEojalDfXnTq6FW3kjUgdsyrH0W0,5
4
- griptape_nodes/app/__init__.py,sha256=DB-DTsgcNnbmEClXEouwzGhrmo3gHBCWXB9BkPGpdQI,90
5
- griptape_nodes/app/app.py,sha256=O5zLX_xroifpOR-hAeStkhAZ-LUFjAgaGY3A-_RHVKY,18920
4
+ griptape_nodes/app/__init__.py,sha256=x6FNnJwW9e1cUmsq64UhXWXnHOP-ivv2KT3kST1EmPM,435
5
+ griptape_nodes/app/app.py,sha256=VmGUedjaLcFNu46nvXh2OJqlmLkcU7aYZJh72zW7em8,18876
6
+ griptape_nodes/app/app_sessions.py,sha256=yu9v853CchkcudevPYV_Gqi6P1FBTj-GgszUNc6ZMOA,17701
6
7
  griptape_nodes/app/watch.py,sha256=Jh7sQoptOuVzEobyhHG5EThxOcb8wfkW0JOmYE-WDpE,1848
7
8
  griptape_nodes/bootstrap/__init__.py,sha256=ENv3SIzQ9TtlRrg1y4e4CnoBpJaFpFSkNpTFBV8X5Ls,25
8
9
  griptape_nodes/bootstrap/bootstrap_script.py,sha256=QLLu3wu1VGmoUU8SKGeyLGDOijKBLGAJYv1RlI9sub0,1312
@@ -10,46 +11,51 @@ griptape_nodes/bootstrap/post_build_install_script.sh,sha256=t2ItVve_2Vk7jMFsfAf
10
11
  griptape_nodes/bootstrap/pre_build_install_script.sh,sha256=M7e9l9_VMXf2XXK-2gdUniH4qcTj6VCpEKcVvRO535k,84
11
12
  griptape_nodes/bootstrap/register_libraries_script.py,sha256=E6j8vhPha-hOVKZBKAGCibOpW3gIrxERlL-_WEeWc78,1019
12
13
  griptape_nodes/bootstrap/structure_config.yaml,sha256=JKFdZ6lRrfrbdubSusdvdwOg3yDHDeT5UvVWhXzWjxE,515
14
+ griptape_nodes/bootstrap/workflow_executors/__init__.py,sha256=pyjN81-eLtjyECFYLXOtMCixiiI9qBi5yald86iM7Ek,34
15
+ griptape_nodes/bootstrap/workflow_executors/local_workflow_executor.py,sha256=g7pxi20YexkjNcxVw-5dSa0I1voCJvIf689PZ7HZLtQ,8738
16
+ griptape_nodes/bootstrap/workflow_executors/workflow_executor.py,sha256=bE3dysKdVKU92jLvUPQZqzJ49cAutTZAM6tXeNo__go,355
13
17
  griptape_nodes/bootstrap/workflow_runners/__init__.py,sha256=Vlk2qn6OAlwulvtxvWwdSx__npjy1X7nDopX0qnMVJk,32
14
18
  griptape_nodes/bootstrap/workflow_runners/bootstrap_workflow_runner.py,sha256=3ct5lrW07oxW6-via_oF93BDKbiWYjReau7TyqPj6-s,1247
15
- griptape_nodes/bootstrap/workflow_runners/local_workflow_runner.py,sha256=Z1G9iKXlXJoou73AX261Y3G3kygTBYjDMihgvdsRYCA,9718
19
+ griptape_nodes/bootstrap/workflow_runners/local_workflow_runner.py,sha256=brY3p9LiIpZ_1CTKLmfEfLEqqOZU25-9FpihDpg6vvQ,9722
16
20
  griptape_nodes/bootstrap/workflow_runners/subprocess_workflow_runner.py,sha256=q-OE-sYJu9dKBJkCDbKGgl45TbUUaXSJeMw1i3ziApc,2223
17
21
  griptape_nodes/bootstrap/workflow_runners/workflow_runner.py,sha256=fmtCH8_c_VdudHAyCJCYL-L5TFexwAVyVIjQXC0OwGU,290
18
22
  griptape_nodes/drivers/__init__.py,sha256=tHmiFQn6uJyFVhC2PrqHgRUH3d3yDsqMQpWqRasmaqA,42
19
- griptape_nodes/drivers/storage/__init__.py,sha256=Ld66cE_B8mxl0ydcZzbX84hc9o2EV5E5q6sb2EUiqnA,133
23
+ griptape_nodes/drivers/storage/__init__.py,sha256=_7p8vJt3YnnF6sD3Uxxw38c-gazuMIHSS-m3G6sa2Qk,208
20
24
  griptape_nodes/drivers/storage/base_storage_driver.py,sha256=di1tqC-o8tEeZ8h_asUxb5KgixwJbTlQLe_lUtqcunQ,1050
21
25
  griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py,sha256=zYQHzHxlE3TcOitytk9WpD3YTKTRyfrzW-H_vXpgTLQ,6083
22
26
  griptape_nodes/drivers/storage/local_storage_driver.py,sha256=PnKgnjkhmnzI5SOI3VKXTkwbb5G1lLs25pLTr022W_c,2196
27
+ griptape_nodes/drivers/storage/storage_backend.py,sha256=3QBIwrgPc1krBIiPYLoK2swhIPDiKJnnucOEdyx7y3c,184
23
28
  griptape_nodes/exe_types/__init__.py,sha256=wGGwKGX9-TSarUFbXpDvdU_J7eXIbWTBl_NCLOZa-G8,32
24
29
  griptape_nodes/exe_types/connections.py,sha256=_-VNzf6Kay62QzJlSX-LlHTUhz-CKF-UDsbZLJ0l6Wk,12435
25
- griptape_nodes/exe_types/core_types.py,sha256=34Xvp1fzlSMgo957jBDH8RvGYxfawf1fa2wMyznF_fQ,58012
30
+ griptape_nodes/exe_types/core_types.py,sha256=gkWSehpB28kFwgKl8KNrW4MaxB2rcEEPTuOThCOg6ms,58259
26
31
  griptape_nodes/exe_types/flow.py,sha256=FAjs6vWEWbuoU5OvUGjs8BY_kEB7IWKvlJ-X5HXkoZ4,21095
27
- griptape_nodes/exe_types/node_types.py,sha256=Bxvh0x-LJ9VTpBKMCHAxDkQUZvgE915JW9v52GhYMXg,45972
32
+ griptape_nodes/exe_types/node_types.py,sha256=MwrZCFPsKU3VV1GoG6jeuGyyLjkCQ_7EZHfiuKcm0hU,45514
28
33
  griptape_nodes/exe_types/type_validator.py,sha256=RTz1vX09jzQpHhozITMJ0siOZUXvsERDhrApjdaM1WM,1120
29
34
  griptape_nodes/machines/__init__.py,sha256=v0jkwr-CFOLmfEYUQvX8BKQLOdvhSsA6toXkdHcPGUE,30
30
35
  griptape_nodes/machines/control_flow.py,sha256=LegXG4If6M5N6ZNlrQywLGQe-sjg_VKDeKPu5gmqbxU,8421
31
36
  griptape_nodes/machines/fsm.py,sha256=JwNz32UmcajoADDMm_fL5MqDRNjr6t8CIUzck-7TFhE,1784
32
- griptape_nodes/machines/node_resolution.py,sha256=w5eG2PGY6gPeYucwJ8phH80UF-xKDwIzOK4Em_eyMcY,19685
37
+ griptape_nodes/machines/node_resolution.py,sha256=Ou29TWTDWr0m54oYYszBIcVILauK7hET4tTWGDJojM4,19929
33
38
  griptape_nodes/node_library/__init__.py,sha256=U3FcSdmq6UW7qt6E3Up3NWKvUEn5_5lqL-u5qbzfxMQ,28
34
- griptape_nodes/node_library/library_registry.py,sha256=NZeQw_e0bkzka7D4hP-odNwb3LMQapAH6Mn54-HnXO8,11214
35
- griptape_nodes/node_library/workflow_registry.py,sha256=UabpodU15TpS5pcGYkw3-VgAs_eYOsASItNWzMgwC_U,4257
39
+ griptape_nodes/node_library/advanced_node_library.py,sha256=B1ZaxuFIzQ6tx_3MLIxlsHuahthEC1Hw_t6K_ByIdzs,2104
40
+ griptape_nodes/node_library/library_registry.py,sha256=fE1NF-9SeRPK_pWPQgfeDBsMzvxiAlShPBvi71DCG9Q,12099
41
+ griptape_nodes/node_library/workflow_registry.py,sha256=WF4jsXOa8AvWykkLPgnwYo-n2PYT5c3fJgjxYCaHOps,4257
36
42
  griptape_nodes/retained_mode/__init__.py,sha256=X12DKL6KhLsiRTPIlrPj2h76_sJ0q0eH4r0kMQkodm0,29
37
- griptape_nodes/retained_mode/griptape_nodes.py,sha256=_ydd84yIzuP4g7vgs1iZugGYwkN3SE_-ReY0RM6obiE,27466
43
+ griptape_nodes/retained_mode/griptape_nodes.py,sha256=F4EdAFSBm3tZsiKl9k2d5HB0hiv06A1EZit55bmqJWU,37167
38
44
  griptape_nodes/retained_mode/retained_mode.py,sha256=HUKoiTtDYm61a1wipeLKk_1oRfkMeIjiWrzGQ6x61d0,54779
39
45
  griptape_nodes/retained_mode/events/__init__.py,sha256=7B1C-c0jVvnShtHJ2lfX6BZPE0U1DgQwg1e4DorhKG0,22
40
- griptape_nodes/retained_mode/events/agent_events.py,sha256=dzjwKXPTSGVi8HGZTZjGR-4k5umyIKpfybWWnw-OWYU,1981
41
- griptape_nodes/retained_mode/events/app_events.py,sha256=tDoZFw1v8GHIVkh1PgpfkGcWu2WYeo94nJlfL9mCd_4,1456
46
+ griptape_nodes/retained_mode/events/agent_events.py,sha256=Ftwv_6jobQZ3ZEOAIFwTCdbYke0vN0fN0ZTRWqppM3M,2235
47
+ griptape_nodes/retained_mode/events/app_events.py,sha256=bke-50TIKkOPA-BXxP_BGqJBzbqAgKUlYFi-Zc6hMv8,3921
42
48
  griptape_nodes/retained_mode/events/arbitrary_python_events.py,sha256=9IJKVyzo9jqef2Dt3thoqnq4FWKTX5yG5SnOvXHvLns,797
43
- griptape_nodes/retained_mode/events/base_events.py,sha256=3HRcu9Q9P1olQxIKbLjxwk2yZMGl8CyF-y_piJCkjd8,19528
49
+ griptape_nodes/retained_mode/events/base_events.py,sha256=XtLnEvXK46Uph5oT3Y8KJN8KGFOrN0ntNE--ixf9Krs,20661
44
50
  griptape_nodes/retained_mode/events/config_events.py,sha256=cgx5Qe0wSHxpehHj7CDb4bF6UfUERD5oAMA0Eb3BSgk,2454
45
51
  griptape_nodes/retained_mode/events/connection_events.py,sha256=XbuzSchjNmM8SMD-QrnhEQxwyt5pQPmB6j46GGjFNRI,2261
46
52
  griptape_nodes/retained_mode/events/context_events.py,sha256=je81-kK-ORLUunvAM8r-2xtN4fIHlt0d2qoUZ3a-u0M,1042
47
53
  griptape_nodes/retained_mode/events/execution_events.py,sha256=ZYj87Us-iMaornesQRHbAeABftqNPfCdRevg1860ixM,5701
48
54
  griptape_nodes/retained_mode/events/flow_events.py,sha256=1BtdgefElLDRlVjELm1Dlcmn770z7Y0zA0Ml9hWcUN8,7967
49
55
  griptape_nodes/retained_mode/events/generate_request_payload_schemas.py,sha256=PQ0QRZAUBljSIGjB8QhYUeRmSrfmLsJ6XVcygJKi13I,1102
50
- griptape_nodes/retained_mode/events/library_events.py,sha256=5i9Tn2-L8GaN2wJr0-Z_ASoPpGPw7kd7MSyeZNmavSY,5752
56
+ griptape_nodes/retained_mode/events/library_events.py,sha256=hvLFc21wme55TfEUCPVTEI7-CkSotGmESDQGcuhs8es,10061
51
57
  griptape_nodes/retained_mode/events/logger_events.py,sha256=e5Xu9cVk4_V24dI-leqWbzWSf_c2wRHJpsEfJT9_p8M,325
52
- griptape_nodes/retained_mode/events/node_events.py,sha256=-rpsN0889umeQA8BRkV6cqhiyooK9j0Pz2dDlYFx9_A,14962
58
+ griptape_nodes/retained_mode/events/node_events.py,sha256=bX5XryjnCNlyBT-wauKc8Rcm3RVdI4Mu_AEeIG5TmEg,15009
53
59
  griptape_nodes/retained_mode/events/object_events.py,sha256=ZNuRFw2zhrfAIWKwu_aumn-1-kedvvEoVUq82P6RyAs,1283
54
60
  griptape_nodes/retained_mode/events/os_events.py,sha256=QWhTJs9SzGGIuvFB2-3w8Bfhk5KcCZOuFfn1eeJvWdk,659
55
61
  griptape_nodes/retained_mode/events/parameter_events.py,sha256=2Ex4_9-GE-dzasP1DHutslzLMuF-tu4egHLHSsTEdp4,9495
@@ -57,24 +63,28 @@ griptape_nodes/retained_mode/events/payload_registry.py,sha256=q-wxUqp63vhNj-Pl1
57
63
  griptape_nodes/retained_mode/events/secrets_events.py,sha256=gK6RkIHEIyQJRtYI-REf3FmSXCRw5VrP5YJH8D8rmWY,1788
58
64
  griptape_nodes/retained_mode/events/static_file_events.py,sha256=ZKsLQUHL5tFVETd4it6pwdiLhbMjsGkRJQrUxmFGaDQ,2091
59
65
  griptape_nodes/retained_mode/events/validation_events.py,sha256=a3DwE1xmrmAZ9Y2HCAMHecyRl1Q5Ozy0cEOKgzeAQNE,1434
60
- griptape_nodes/retained_mode/events/workflow_events.py,sha256=qninIeAh3aGCdmIPCJb25wbmcPoMVEf6hbVzrn3dA7M,4105
66
+ griptape_nodes/retained_mode/events/workflow_events.py,sha256=GKn_tbC2VDqgwqrObCSwbMiFS23gc0iSGQxqFgTiDw0,4139
61
67
  griptape_nodes/retained_mode/managers/__init__.py,sha256=OTXysKusqYCQeAYwnVj4PbE3MxvAUTq9xOZT6vUE3JA,24
62
- griptape_nodes/retained_mode/managers/agent_manager.py,sha256=_-4neXj6oe7OPXW-5EogAnTdiC5aMxX9Io9w1Xlk_eQ,5391
68
+ griptape_nodes/retained_mode/managers/agent_manager.py,sha256=5jlFl_wPa9NiUTgnIJhT3ZZVXEGE4MsR0pn-IhADkS4,10235
63
69
  griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py,sha256=QnqI2_IkDpc9SHzbb-jwsyYkm91W0V9kLlxARUbbVUI,1777
64
70
  griptape_nodes/retained_mode/managers/config_manager.py,sha256=0fs-xd6vpetBGYrsm6sqPBhWb0qChMdtUcxco92qTqQ,25344
65
71
  griptape_nodes/retained_mode/managers/context_manager.py,sha256=DiGNh09TZ7rsLEcXqqB9Yrh2ietBy59LPF7GM0OBQS8,22930
66
72
  griptape_nodes/retained_mode/managers/event_manager.py,sha256=5Y8oKasS2bISu5qdDhX9YRy2LD7lyIsfd2FxpXOnZ6c,6726
67
- griptape_nodes/retained_mode/managers/flow_manager.py,sha256=8r7XGkmUuudkfwmsZkyeEOlvFCSaD7YMG3Tghcx3CQI,72821
68
- griptape_nodes/retained_mode/managers/library_manager.py,sha256=iKB7pY9vFtRw-OCl6JkGnXj5pptVPCqK3pyMirPU7Io,62390
69
- griptape_nodes/retained_mode/managers/node_manager.py,sha256=3SdfB-WT84ewhEH6HNUEvg9v9xm2rELO7hQSC21RFPE,127142
73
+ griptape_nodes/retained_mode/managers/flow_manager.py,sha256=WvFVcSSyEfUJvvcdMKLrrmMrbsVA2FFMxZiD5uxqUS0,71597
74
+ griptape_nodes/retained_mode/managers/library_manager.py,sha256=JQDPImFBXqQ-zFH-DpBurr_0nnO4oLR6-rHSTBVsLOA,87745
75
+ griptape_nodes/retained_mode/managers/node_manager.py,sha256=uIK7rGeQ3XfSH1C8IzpftDoXIbrwQR0ha_W2WDzGZz8,127192
70
76
  griptape_nodes/retained_mode/managers/object_manager.py,sha256=mgNK8o-iYFzNl2IBzUKIqECiiqk5dI3cNNqirLam7vc,11828
71
77
  griptape_nodes/retained_mode/managers/operation_manager.py,sha256=6nHx1fADdj7nyt5dIrNNuSkR362XgR1AMVESI1UCF6o,19746
72
78
  griptape_nodes/retained_mode/managers/os_manager.py,sha256=jeWvm0X_ma40ZBJFqgU_RgNR2nSfDxCxGUEQxZyujmQ,5104
73
79
  griptape_nodes/retained_mode/managers/secrets_manager.py,sha256=oRdTN__mgM5tQTxVKZ8e0R8BcKfL6_zMA-AKuFV9QE8,6038
74
80
  griptape_nodes/retained_mode/managers/settings.py,sha256=nzEziQ1_Ba_PtQYtOgF_Uq7w0eF6eZ93Sqbl36mqlhk,4094
75
- griptape_nodes/retained_mode/managers/static_files_manager.py,sha256=xMQXHE2FNks7o5hP-jjuM6BJSpjMwO8JxTIQZ9wyIpg,7032
81
+ griptape_nodes/retained_mode/managers/static_files_manager.py,sha256=RbQHGeJgRa7tCGJwif0hGVMbEVkHgaUt4FB44McRxWA,7129
76
82
  griptape_nodes/retained_mode/managers/version_compatibility_manager.py,sha256=1lwwuof4C6Ho1xh59Re_ajmvcc2lUyxpO1-RkHfKBYc,4385
77
- griptape_nodes/retained_mode/managers/workflow_manager.py,sha256=29zCJi-_a5h7Gu-90A_K3bEelLYQGRX9wLDIDUpjvXQ,103320
83
+ griptape_nodes/retained_mode/managers/workflow_manager.py,sha256=qvjRvvNFTrqQmiC6B4ifudzSbepua4serKi8W1In4G8,128750
84
+ griptape_nodes/retained_mode/utils/__init__.py,sha256=W5dvv8YwvVVq_8eVTgMd3Z_VB_Dtq1sIIVq8745QH_I,52
85
+ griptape_nodes/retained_mode/utils/engine_identity.py,sha256=T28qJtpaS2JUmMxU7NRNws_zQxm5CIIgdujfAmodIMU,3817
86
+ griptape_nodes/retained_mode/utils/name_generator.py,sha256=IZLahtfP3XC79XApLdGoZ0IKKUkgiITpd16RK7NbyEs,2524
87
+ griptape_nodes/retained_mode/utils/session_persistence.py,sha256=zhCeE7_5zHXBtNoVjEjwWSdLQbFQn_mI3Ybq5TkWjPA,3339
78
88
  griptape_nodes/traits/__init__.py,sha256=bTLXTiZTJz2z15RRLoPI4nvLnNW9FiLcKL_2pT4E10g,32
79
89
  griptape_nodes/traits/add_param_button.py,sha256=Xtc39SfvYY6JDjhxu2wmdeaHW2X4LkpNAQufSTCP3hY,655
80
90
  griptape_nodes/traits/button.py,sha256=rpQQ77ASKH3YJabc5WWw9DpEHQiMg1jx0i0sdkwH-SA,611
@@ -95,8 +105,8 @@ griptape_nodes/version_compatibility/__init__.py,sha256=JMz1sB7Zsj6pS1S5sdsPR0kn
95
105
  griptape_nodes/version_compatibility/versions/__init__.py,sha256=PWSxM28LPUdBdRPA98j4RUWvuZ4NqfX1day2VU6SqPw,74
96
106
  griptape_nodes/version_compatibility/versions/v0_39_0/__init__.py,sha256=21iKlFpsmBW4WsAexSD0WMAJnsYmMq2sIbDeYC831fc,62
97
107
  griptape_nodes/version_compatibility/versions/v0_39_0/modified_parameters_set_removal.py,sha256=KJeyhyn_iUaDx32FRi1-__yxw6rp9tG4eTBCimpurBM,5306
98
- griptape_nodes-0.38.1.dist-info/METADATA,sha256=Bja4eONp2CrEzQZpuJA2RmMLyir-QWqAnQy428Oja-Y,4102
99
- griptape_nodes-0.38.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
100
- griptape_nodes-0.38.1.dist-info/entry_points.txt,sha256=Q8V3Ydy7PNfJgTjNEVkPui25AwZ4HJ3kZCU3oh4mq-c,81
101
- griptape_nodes-0.38.1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
102
- griptape_nodes-0.38.1.dist-info/RECORD,,
108
+ griptape_nodes-0.41.0.dist-info/METADATA,sha256=Zl0-jlk237s3d_sIRLPePQxuHcT45PIH3m4AuOOciac,4102
109
+ griptape_nodes-0.41.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
110
+ griptape_nodes-0.41.0.dist-info/entry_points.txt,sha256=Q8V3Ydy7PNfJgTjNEVkPui25AwZ4HJ3kZCU3oh4mq-c,81
111
+ griptape_nodes-0.41.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
112
+ griptape_nodes-0.41.0.dist-info/RECORD,,