griptape-nodes 0.36.2__tar.gz → 0.37.0__tar.gz

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 (544) hide show
  1. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/.github/workflows/publish.yml +43 -12
  2. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/.gitignore +1 -0
  3. griptape_nodes-0.37.0/Dockerfile +234 -0
  4. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/PKG-INFO +3 -2
  5. griptape_nodes-0.37.0/docs/nodes/text/date_and_time.md +43 -0
  6. griptape_nodes-0.37.0/docs/nodes/text/evaluate_text_result.md +80 -0
  7. griptape_nodes-0.37.0/docs/nodes/text/scrape_web.md +42 -0
  8. griptape_nodes-0.37.0/docs/nodes/text/search_web.md +44 -0
  9. griptape_nodes-0.37.0/docs/nodes/text/summarize_text.md +42 -0
  10. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/tools/calculator_tool.md +5 -5
  11. griptape_nodes-0.37.0/docs/nodes/tools/date_time_tool.md +37 -0
  12. griptape_nodes-0.37.0/docs/nodes/tools/file_manager_tool.md +38 -0
  13. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/tools/web_scraper_tool.md +16 -19
  14. griptape_nodes-0.37.0/docs/nodes/tools/web_search_tool.md +53 -0
  15. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/entrypoint.sh +1 -1
  16. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/griptape_nodes_library.json +3 -4
  17. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/execution/for_each_end.py +104 -0
  18. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/execution/for_each_start.py +138 -0
  19. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/image/merge_images.py +171 -0
  20. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/lists/__init__.py +1 -0
  21. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/lists/display_list.py +80 -0
  22. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/lists/library_style.json +6 -0
  23. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/number/askulator.py +124 -0
  24. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/number/math.py +125 -0
  25. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/tasks/__init__.py +1 -0
  26. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/tasks/base_task.py +38 -0
  27. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/text/date_and_time.py +102 -0
  28. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/text/evaluate_text_result.py +194 -0
  29. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/text/scrape_web.py +70 -0
  30. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/text/search_web.py +166 -0
  31. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/text/summarize_text_task.py +62 -0
  32. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/base_tool.py +23 -1
  33. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/calculator_tool.py +9 -0
  34. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/date_time_tool.py +9 -0
  35. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/tools/file_manager_tool.py +113 -0
  36. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/tools/web_scraper_tool.py +22 -0
  37. griptape_nodes-0.37.0/libraries/griptape_nodes_library/griptape_nodes_library/tools/web_search_tool.py +117 -0
  38. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library.json +139 -34
  39. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/mkdocs.yml +5 -0
  40. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/pyproject.toml +3 -2
  41. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/__init__.py +68 -2
  42. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/app/__init__.py +1 -1
  43. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/app/app.py +6 -6
  44. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/app/app_websocket.py +6 -6
  45. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/exe_types/connections.py +32 -1
  46. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/exe_types/core_types.py +16 -0
  47. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/exe_types/flow.py +2 -2
  48. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/exe_types/node_types.py +207 -0
  49. griptape_nodes-0.37.0/src/griptape_nodes/retained_mode/events/agent_events.py +83 -0
  50. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/griptape_nodes.py +8 -0
  51. griptape_nodes-0.37.0/src/griptape_nodes/retained_mode/managers/agent_manager.py +103 -0
  52. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/managers/library_manager.py +50 -37
  53. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/managers/node_manager.py +29 -2
  54. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/retained_mode.py +662 -18
  55. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/tests/unit/exe_types/test_core_types.py +67 -9
  56. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/uv.lock +34 -3
  57. griptape_nodes-0.36.2/Dockerfile +0 -37
  58. griptape_nodes-0.36.2/docs/nodes/tools/date_time_tool.md +0 -37
  59. griptape_nodes-0.36.2/libraries/griptape_nodes_library/griptape_nodes_library/tools/file_manager_tool.py +0 -14
  60. griptape_nodes-0.36.2/libraries/griptape_nodes_library/griptape_nodes_library/tools/web_scraper_tool.py +0 -23
  61. griptape_nodes-0.36.2/libraries/griptape_nodes_library/griptape_nodes_library/tools/web_search_tool.py +0 -33
  62. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/.env.example +0 -0
  63. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
  64. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  65. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/.github/actions/init-environment/action.yml +0 -0
  66. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/.github/release.yml +0 -0
  67. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/.github/workflows/claude.yml +0 -0
  68. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/.github/workflows/code-checks.yml +0 -0
  69. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/.github/workflows/latest-release.yml +0 -0
  70. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/.github/workflows/pull-request-links.yml +0 -0
  71. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/.github/workflows/stable-release.yml +0 -0
  72. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/.github/workflows/unit-tests.yml +0 -0
  73. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/.github/workflows/workflow-tests.yml +0 -0
  74. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/.python-version +0 -0
  75. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/.readthedocs.yml +0 -0
  76. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/.vscode/launch.json +0 -0
  77. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/CONTRIBUTING.md +0 -0
  78. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/LICENSE +0 -0
  79. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/Makefile +0 -0
  80. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/README.md +0 -0
  81. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/assets/css/extra.css +0 -0
  82. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/assets/img/getting_started/getting_started-blank_editor.png +0 -0
  83. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/assets/img/getting_started/getting_started-installation_page.webp +0 -0
  84. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/assets/img/getting_started/getting_started-installation_page_key_hint.png +0 -0
  85. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/assets/img/getting_started/getting_started-installation_page_key_hint.webp +0 -0
  86. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/assets/img/getting_started/getting_started-login.png +0 -0
  87. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/assets/img/getting_started/getting_started-nodes_landing_page.png +0 -0
  88. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/assets/img/griptape_nodes_header_logo.svg +0 -0
  89. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/assets/img/video-thumbnail.jpg +0 -0
  90. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/command_line_interface.md +0 -0
  91. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/configuration.md +0 -0
  92. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/faq.md +0 -0
  93. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/00_tour/FTUE_00_tour.md +0 -0
  94. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/00_tour/assets/connected.png +0 -0
  95. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/00_tour/assets/create_from_scratch.png +0 -0
  96. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/00_tour/assets/create_node_dblClick.gif +0 -0
  97. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/00_tour/assets/create_node_dragDrop.gif +0 -0
  98. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/00_tour/assets/create_node_spacebar.gif +0 -0
  99. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/00_tour/assets/create_nodes_panel.png +0 -0
  100. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/00_tour/assets/eg_prompt.png +0 -0
  101. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/00_tour/assets/landing_page.png +0 -0
  102. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/00_tour/assets/launch_link.png +0 -0
  103. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/00_tour/assets/nodes_in_workspace.png +0 -0
  104. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/00_tour/assets/run_node.png +0 -0
  105. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/00_tour/assets/workspace_interface.png +0 -0
  106. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/01_prompt_an_image/FTUE_01_prompt_an_image.md +0 -0
  107. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/01_prompt_an_image/assets/generate_image_node.png +0 -0
  108. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/01_prompt_an_image/assets/nav_bar.png +0 -0
  109. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/01_prompt_an_image/assets/node_running.gif +0 -0
  110. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/01_prompt_an_image/assets/potato_aerobics.png +0 -0
  111. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/01_prompt_an_image/assets/potato_painting.png +0 -0
  112. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/01_prompt_an_image/assets/prompt_image_example.png +0 -0
  113. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/01_prompt_an_image/assets/run_options.png +0 -0
  114. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/01_prompt_an_image/assets/text_prompt_field.png +0 -0
  115. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/01_prompt_an_image/assets/ways_to_run.png +0 -0
  116. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/02_coordinating_agents/FTUE_02_coordinating_agents.md +0 -0
  117. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/02_coordinating_agents/assets/build_your_own.png +0 -0
  118. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/02_coordinating_agents/assets/connect_your_own.png +0 -0
  119. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/02_coordinating_agents/assets/coordinating_agents_example.png +0 -0
  120. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/02_coordinating_agents/assets/exec_chain.png +0 -0
  121. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/02_coordinating_agents/assets/final_result.png +0 -0
  122. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/02_coordinating_agents/assets/mandarin.png +0 -0
  123. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/02_coordinating_agents/assets/mandarin_display.png +0 -0
  124. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/02_coordinating_agents/assets/mandarin_merge.png +0 -0
  125. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/02_coordinating_agents/assets/mandarin_to_english.png +0 -0
  126. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/02_coordinating_agents/assets/node_running.gif +0 -0
  127. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/02_coordinating_agents/assets/sibling_target.png +0 -0
  128. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/02_coordinating_agents/assets/summary_pre.png +0 -0
  129. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/02_coordinating_agents/assets/workflow_overview.png +0 -0
  130. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/02_coordinating_agents/assets/workflow_result.png +0 -0
  131. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/03_compare_prompts/FTUE_03_compare_prompts.md +0 -0
  132. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/03_compare_prompts/assets/agent_node_output.png +0 -0
  133. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/03_compare_prompts/assets/basic_image_node.png +0 -0
  134. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/03_compare_prompts/assets/bespoke_prompt_image.png +0 -0
  135. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/03_compare_prompts/assets/compare_prompts_example.png +0 -0
  136. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/03_compare_prompts/assets/compare_prompts_workflow.png +0 -0
  137. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/03_compare_prompts/assets/detailed_instructions.png +0 -0
  138. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/03_compare_prompts/assets/enhanced_prompt_image.png +0 -0
  139. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/03_compare_prompts/assets/trace_basic.png +0 -0
  140. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/03_compare_prompts/assets/trace_bespoke.png +0 -0
  141. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/03_compare_prompts/assets/trace_enhanced.png +0 -0
  142. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/04_photography_team/FTUE_04_photography_team.md +0 -0
  143. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/04_photography_team/assets/agent_tool_conversion.png +0 -0
  144. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/04_photography_team/assets/cinematographer_ruleset.png +0 -0
  145. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/04_photography_team/assets/orchestrator_setup.png +0 -0
  146. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/04_photography_team/assets/photography_team_example.png +0 -0
  147. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/04_photography_team/assets/rule_ruleset_agent_tool_chain.png +0 -0
  148. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/04_photography_team/assets/ruleset_direct_connect.png +0 -0
  149. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/04_photography_team/assets/ruleset_list.png +0 -0
  150. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/04_photography_team/assets/tool_list.png +0 -0
  151. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/04_photography_team/assets/tools_concept.png +0 -0
  152. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/04_photography_team/assets/workflow_overview.png +0 -0
  153. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/04_photography_team/assets/workflow_result.png +0 -0
  154. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/FTUE.md +0 -0
  155. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/assets/FTUE_01_prompt_an_image.png +0 -0
  156. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/assets/FTUE_02_coordinating_agents.png +0 -0
  157. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/assets/FTUE_03_compare_prompts.png +0 -0
  158. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/ftue/assets/FTUE_04_photography_team.png +0 -0
  159. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/glossary.md +0 -0
  160. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/installs/assets/huggingface_00_MainPage.png +0 -0
  161. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/installs/assets/huggingface_01_signup.png +0 -0
  162. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/installs/assets/huggingface_02_Settings.png +0 -0
  163. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/installs/assets/huggingface_03_AccessTokens.png +0 -0
  164. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/installs/assets/huggingface_04_TokenRead.png +0 -0
  165. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/installs/assets/huggingface_05_SaveToken.png +0 -0
  166. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/installs/assets/huggingface_06_gated_model.png +0 -0
  167. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/installs/assets/huggingface_07_GN_Settings.png +0 -0
  168. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/installs/assets/huggingface_08_GN_HFToken.png +0 -0
  169. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/installs/hugging_face.md +0 -0
  170. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/assets/grok_00_main_page.png +0 -0
  171. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/assets/grok_01_console_login.png +0 -0
  172. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/assets/grok_02_signup.png +0 -0
  173. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/assets/grok_03_billing.png +0 -0
  174. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/assets/grok_04_key_links.png +0 -0
  175. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/assets/grok_05_create_api_key_button.png +0 -0
  176. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/assets/grok_06_create_api_key_page.png +0 -0
  177. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/assets/grok_07_gtn_settings.png +0 -0
  178. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/assets/gtn_settings_menu.png +0 -0
  179. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/assets/openai_00_main_page.png +0 -0
  180. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/assets/openai_01_login_api_platform.png +0 -0
  181. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/assets/openai_02_dashboard.png +0 -0
  182. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/assets/openai_03_api_keys.png +0 -0
  183. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/assets/openai_04_create_new_secret_key_button.png +0 -0
  184. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/assets/openai_05_create_new_secret_key_modal.png +0 -0
  185. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/assets/openai_06_gtn_settings.png +0 -0
  186. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/grok.md +0 -0
  187. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/keys/openai.md +0 -0
  188. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/making_custom_nodes.md +0 -0
  189. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/how_to/making_custom_scripts.md +0 -0
  190. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/index.md +0 -0
  191. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/installation.md +0 -0
  192. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/advanced_media_library/flux_pipeline.md +0 -0
  193. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/advanced_media_library/pillow_resize.md +0 -0
  194. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/advanced_media_library/tiling_flux_img_2_img_pipeline.md +0 -0
  195. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/advanced_media_library/tiling_spandrel_pipeline.md +0 -0
  196. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/agents/create_agent.md +0 -0
  197. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/audio/load_audio.md +0 -0
  198. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/audio/microphone.md +0 -0
  199. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/audio/transcribe_audio.md +0 -0
  200. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/config/anthropic_prompt_driver.md +0 -0
  201. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/config/cohere_prompt_driver.md +0 -0
  202. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/config/griptape_cloud_image_driver.md +0 -0
  203. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/config/griptape_cloud_prompt_driver.md +0 -0
  204. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/config/grok_image_driver.md +0 -0
  205. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/config/grok_prompt_driver.md +0 -0
  206. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/config/groq_prompt_driver.md +0 -0
  207. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/config/openai_image_driver.md +0 -0
  208. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/config/openai_prompt_driver.md +0 -0
  209. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/dict/create_dict.md +0 -0
  210. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/dict/display_dict.md +0 -0
  211. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/dict/key_value_pair.md +0 -0
  212. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/dict/merge_key_value_pair.md +0 -0
  213. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/execution/end_flow.md +0 -0
  214. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/execution/reroute.md +0 -0
  215. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/execution/start_flow.md +0 -0
  216. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/image/create_image.md +0 -0
  217. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/image/describe_image.md +0 -0
  218. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/image/load_image.md +0 -0
  219. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/number/create_float.md +0 -0
  220. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/number/create_int.md +0 -0
  221. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/number/display_float.md +0 -0
  222. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/number/display_int.md +0 -0
  223. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/overview.md +0 -0
  224. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/rules/create_ruleset.md +0 -0
  225. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/rules/ruleset_list.md +0 -0
  226. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/text/create_multiline_text.md +0 -0
  227. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/text/display_text.md +0 -0
  228. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/text/load_text.md +0 -0
  229. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/text/merge_texts.md +0 -0
  230. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/text/random_text.md +0 -0
  231. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/text/save_text.md +0 -0
  232. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/text/search_replace_text.md +0 -0
  233. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/three_d/load_gltf.md +0 -0
  234. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/tools/rag_tool.md +0 -0
  235. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/tools/tool_list.md +0 -0
  236. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/utils/note.md +0 -0
  237. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/video/display_video.md +0 -0
  238. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/video/load_video.md +0 -0
  239. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/nodes/video/save_video.md +0 -0
  240. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/docs/retained_mode.md +0 -0
  241. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/install.ps1 +0 -0
  242. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/install.sh +0 -0
  243. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/controlnet_aux_nodes_library/__init__.py +0 -0
  244. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/controlnet_aux_nodes_library/anyline_detector.py +0 -0
  245. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/__init__.py +0 -0
  246. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/__init__.py +0 -0
  247. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/misc/__init__.py +0 -0
  248. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/misc/tiling_image_processor.py +0 -0
  249. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/parameters/__init__.py +0 -0
  250. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/parameters/file_path_parameter.py +0 -0
  251. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/parameters/huggingface_model_parameter.py +0 -0
  252. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/parameters/huggingface_repo_file_parameter.py +0 -0
  253. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/parameters/huggingface_repo_parameter.py +0 -0
  254. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/parameters/log_parameter.py +0 -0
  255. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/parameters/seed_parameter.py +0 -0
  256. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/utils/__init__.py +0 -0
  257. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/utils/huggingface_utils.py +0 -0
  258. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/utils/logging_utils.py +0 -0
  259. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/utils/math_utils.py +0 -0
  260. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/utils/option_utils.py +0 -0
  261. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/utils/torch_utils.py +0 -0
  262. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/utils/ui_option_utils.py +0 -0
  263. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/__init__.py +0 -0
  264. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/__init__.py +0 -0
  265. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/controlnet/__init__.py +0 -0
  266. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/controlnet/flux_control_net_parameters.py +0 -0
  267. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/controlnet/union_flux_control_net_pipeline.py +0 -0
  268. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/controlnet/union_one_flux_control_net_model.py +0 -0
  269. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/controlnet/union_pro_flux_control_net_pipeline.py +0 -0
  270. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/controlnet/union_pro_two_flux_control_net_pipeline.py +0 -0
  271. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/controlnet/union_two_flux_control_net_parameters.py +0 -0
  272. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/diptych_flux_fill_pipeline.py +0 -0
  273. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/diptych_flux_fill_pipeline_parameters.py +0 -0
  274. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/flux_fill_pipeline.py +0 -0
  275. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/flux_fill_pipeline_parameters.py +0 -0
  276. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/flux_loras_parameter.py +0 -0
  277. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/flux_pipeline.py +0 -0
  278. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/flux_pipeline_memory_footprint.py +0 -0
  279. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/flux_pipeline_parameters.py +0 -0
  280. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/lora/__init__.py +0 -0
  281. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/lora/flux_lora_from_file.py +0 -0
  282. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/lora/flux_lora_parameters.py +0 -0
  283. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/lora/huggingface_flux_lora.py +0 -0
  284. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/lora/lumatales_flux_lora.py +0 -0
  285. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/lora/micro_landscape_on_phone_flux_lora.py +0 -0
  286. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/lora/miniature_world_flux_lora.py +0 -0
  287. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/lora/river_z_normal_diptych_flux_fill_lora.py +0 -0
  288. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/__init__.py +0 -0
  289. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/train_flux_lora.py +0 -0
  290. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/train_flux_lora_parameters.py +0 -0
  291. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/__init__.py +0 -0
  292. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/accelerate_main.py +0 -0
  293. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/accelerate_parse_args.py +0 -0
  294. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/utils/__init__.py +0 -0
  295. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/utils/accelerate_utils.py +0 -0
  296. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/utils/dreambooth_dataset.py +0 -0
  297. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/utils/encode_prompt.py +0 -0
  298. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/utils/logging.py +0 -0
  299. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/utils/memory.py +0 -0
  300. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/utils/optimizer.py +0 -0
  301. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/utils/stdout_tracker.py +0 -0
  302. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/tiling_flux_img_2_img_pipeline.py +0 -0
  303. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/opencv_nodes_library/__init__.py +0 -0
  304. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/opencv_nodes_library/canny_convert_image.py +0 -0
  305. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/pillow_nodes_library/__init__.py +0 -0
  306. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/pillow_nodes_library/gaussian_blur_image.py +0 -0
  307. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/pillow_nodes_library/grayscale_convert_image.py +0 -0
  308. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/pillow_nodes_library/rescale_image.py +0 -0
  309. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/pillow_nodes_library/utils.py +0 -0
  310. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/spandrel_nodes_library/__init__.py +0 -0
  311. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/spandrel_nodes_library/tiling_span.py +0 -0
  312. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/spandrel_nodes_library/utils.py +0 -0
  313. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/transformers_nodes_library/__init__.py +0 -0
  314. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_advanced_media_library/transformers_nodes_library/depth_anything_for_depth_estimation.py +0 -0
  315. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/.python-version +0 -0
  316. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/__init__.py +0 -0
  317. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/agents/__init__.py +0 -0
  318. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/agents/agent.py +0 -0
  319. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/agents/griptape_nodes_agent.py +0 -0
  320. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/agents/library_style.json +0 -0
  321. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/audio/__init__.py +0 -0
  322. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/audio/audio_url_artifact.py +0 -0
  323. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/audio/library_style.json +0 -0
  324. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/audio/load_audio.py +0 -0
  325. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/audio/microphone.py +0 -0
  326. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/audio/transcribe_audio.py +0 -0
  327. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/__init__.py +0 -0
  328. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/base_driver.py +0 -0
  329. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/image/__init__.py +0 -0
  330. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/image/base_image_driver.py +0 -0
  331. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/image/griptape_cloud_image_driver.py +0 -0
  332. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/image/grok_image_driver.py +0 -0
  333. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/image/library_style.json +0 -0
  334. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/image/openai_image_driver.py +0 -0
  335. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/library_style.json +0 -0
  336. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/__init__.py +0 -0
  337. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/amazon_bedrock_prompt.py +0 -0
  338. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/anthropic_prompt.py +0 -0
  339. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/base_prompt.py +0 -0
  340. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/cohere_prompt.py +0 -0
  341. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/griptape_cloud_prompt.py +0 -0
  342. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/grok_prompt.py +0 -0
  343. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/groq_prompt.py +0 -0
  344. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/library_style.json +0 -0
  345. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/ollama_prompt_driver.py +0 -0
  346. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/openai_prompt.py +0 -0
  347. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/web_search/__init__.py +0 -0
  348. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/web_search/web_search_drivers.py +0 -0
  349. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/convert/__init__.py +0 -0
  350. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/convert/agent_to_tool.py +0 -0
  351. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/convert/library_style.json +0 -0
  352. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/convert/to_bool.py +0 -0
  353. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/convert/to_dict.py +0 -0
  354. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/convert/to_float.py +0 -0
  355. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/convert/to_int.py +0 -0
  356. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/convert/to_text.py +0 -0
  357. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/__init__.py +0 -0
  358. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/create_dict.py +0 -0
  359. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/display_dict.py +0 -0
  360. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/key_value_pair.py +0 -0
  361. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/library_style.json +0 -0
  362. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/load_dict.py +0 -0
  363. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/merge_dict.py +0 -0
  364. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/merge_key_value_pair.py +0 -0
  365. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/save_dict.py +0 -0
  366. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/execution/__init__.py +0 -0
  367. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/execution/compare_numbers.py +0 -0
  368. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/execution/compare_strings.py +0 -0
  369. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/execution/if_else.py +0 -0
  370. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/execution/library_style.json +0 -0
  371. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/execution/reroute.py +0 -0
  372. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/execution/select_output.py +0 -0
  373. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/__init__.py +0 -0
  374. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/compare_images.py +0 -0
  375. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/create_image.py +0 -0
  376. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/describe_image.py +0 -0
  377. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/display_image.py +0 -0
  378. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/library_style.json +0 -0
  379. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/load_image.py +0 -0
  380. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/paint_mask.py +0 -0
  381. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/save_image.py +0 -0
  382. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/webcam.py +0 -0
  383. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/misc/__init__.py +0 -0
  384. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/misc/api_key_check.py +0 -0
  385. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/note.py +0 -0
  386. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/number/__init__.py +0 -0
  387. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/number/create_float.py +0 -0
  388. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/number/create_int.py +0 -0
  389. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/number/display_float.py +0 -0
  390. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/number/display_int.py +0 -0
  391. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/number/library_style.json +0 -0
  392. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/rules/__init__.py +0 -0
  393. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/rules/create_ruleset.py +0 -0
  394. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/rules/library_style.json +0 -0
  395. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/rules/ruleset_list.py +0 -0
  396. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/__init__.py +0 -0
  397. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/create_multiline_text.py +0 -0
  398. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/display_text.py +0 -0
  399. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/library_style.json +0 -0
  400. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/list_texts.py +0 -0
  401. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/load_text.py +0 -0
  402. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/merge_texts.py +0 -0
  403. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/random_text.py +0 -0
  404. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/save_text.py +0 -0
  405. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/search_replace_text.py +0 -0
  406. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/three_d/__init__.py +0 -0
  407. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/three_d/gltf_artifact.py +0 -0
  408. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/three_d/library_style.json +0 -0
  409. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/three_d/load_gltf.py +0 -0
  410. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/__init__.py +0 -0
  411. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/audio_transcription_tool.py +0 -0
  412. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/extraction_tool.py +0 -0
  413. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/library_style.json +0 -0
  414. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/prompt_summary_tool.py +0 -0
  415. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/rag_tool.py +0 -0
  416. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/tool_list.py +0 -0
  417. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/vector_store_tool.py +0 -0
  418. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/__init__.py +0 -0
  419. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/anthropic_utils.py +0 -0
  420. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/audio_utils.py +0 -0
  421. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/error_utils.py +0 -0
  422. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/gltf_utils.py +0 -0
  423. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/image_utils.py +0 -0
  424. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/library_style.json +0 -0
  425. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/utilities.py +0 -0
  426. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/video_utils.py +0 -0
  427. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/video/__init__.py +0 -0
  428. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/video/display_video.py +0 -0
  429. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/video/load_video.py +0 -0
  430. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/video/save_video.py +0 -0
  431. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/video/video_url_artifact.py +0 -0
  432. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/workflows/__init__.py +0 -0
  433. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/workflows/end_flow.py +0 -0
  434. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/workflows/library_style.json +0 -0
  435. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/workflows/published_workflow.py +0 -0
  436. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/griptape_nodes_library/workflows/start_flow.py +0 -0
  437. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/tests/__init__.py +0 -0
  438. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/tests/integration/__init__.py +0 -0
  439. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/tests/unit/__init__.py +0 -0
  440. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/tests/unit/drivers/__init__.py +0 -0
  441. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/tests/unit/drivers/test_griptape_cloud_image_generation_driver.py +0 -0
  442. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/workflows/__init__.py +0 -0
  443. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/workflows/templates/__init__.py +0 -0
  444. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/workflows/templates/compare_prompts.py +0 -0
  445. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/workflows/templates/coordinating_agents.py +0 -0
  446. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/workflows/templates/photography_team.py +0 -0
  447. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/workflows/templates/prompt_an_image.py +0 -0
  448. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/workflows/templates/thumbnail_compare_prompts.webp +0 -0
  449. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/workflows/templates/thumbnail_coordinating_agents.webp +0 -0
  450. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/workflows/templates/thumbnail_photography_team.webp +0 -0
  451. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/libraries/griptape_nodes_library/workflows/templates/thumbnail_prompt_an_image.webp +0 -0
  452. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/__init__.py +0 -0
  453. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/app/.python-version +0 -0
  454. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/app/nodes_api_socket_manager.py +0 -0
  455. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/app/watch.py +0 -0
  456. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/bootstrap/__init__.py +0 -0
  457. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/bootstrap/bootstrap_script.py +0 -0
  458. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/bootstrap/post_build_install_script.sh +0 -0
  459. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/bootstrap/pre_build_install_script.sh +0 -0
  460. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/bootstrap/register_libraries_script.py +0 -0
  461. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/bootstrap/structure_config.yaml +0 -0
  462. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/bootstrap/workflow_runners/__init__.py +0 -0
  463. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/bootstrap/workflow_runners/bootstrap_workflow_runner.py +0 -0
  464. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/bootstrap/workflow_runners/local_workflow_runner.py +0 -0
  465. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/bootstrap/workflow_runners/subprocess_workflow_runner.py +0 -0
  466. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/bootstrap/workflow_runners/workflow_runner.py +0 -0
  467. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/drivers/__init__.py +0 -0
  468. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/drivers/storage/__init__.py +0 -0
  469. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/drivers/storage/base_storage_driver.py +0 -0
  470. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +0 -0
  471. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/drivers/storage/local_storage_driver.py +0 -0
  472. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/exe_types/__init__.py +0 -0
  473. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/exe_types/type_validator.py +0 -0
  474. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/machines/__init__.py +0 -0
  475. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/machines/control_flow.py +0 -0
  476. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/machines/fsm.py +0 -0
  477. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/machines/node_resolution.py +0 -0
  478. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/node_library/__init__.py +0 -0
  479. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/node_library/library_registry.py +0 -0
  480. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/node_library/workflow_registry.py +0 -0
  481. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/py.typed +0 -0
  482. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/__init__.py +0 -0
  483. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/__init__.py +0 -0
  484. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/app_events.py +0 -0
  485. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/arbitrary_python_events.py +0 -0
  486. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/base_events.py +0 -0
  487. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/config_events.py +0 -0
  488. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/connection_events.py +0 -0
  489. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/context_events.py +0 -0
  490. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/execution_events.py +0 -0
  491. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/flow_events.py +0 -0
  492. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/generate_request_payload_schemas.py +0 -0
  493. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/library_events.py +0 -0
  494. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/logger_events.py +0 -0
  495. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/node_events.py +0 -0
  496. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/object_events.py +0 -0
  497. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/os_events.py +0 -0
  498. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/parameter_events.py +0 -0
  499. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/payload_registry.py +0 -0
  500. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/secrets_events.py +0 -0
  501. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/static_file_events.py +0 -0
  502. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/validation_events.py +0 -0
  503. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/events/workflow_events.py +0 -0
  504. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/managers/__init__.py +0 -0
  505. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py +0 -0
  506. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/managers/config_manager.py +0 -0
  507. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/managers/context_manager.py +0 -0
  508. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/managers/event_manager.py +0 -0
  509. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/managers/flow_manager.py +0 -0
  510. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/managers/object_manager.py +0 -0
  511. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/managers/operation_manager.py +0 -0
  512. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/managers/os_manager.py +0 -0
  513. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/managers/secrets_manager.py +0 -0
  514. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/managers/settings.py +0 -0
  515. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/managers/static_files_manager.py +0 -0
  516. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/retained_mode/managers/workflow_manager.py +0 -0
  517. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/traits/__init__.py +0 -0
  518. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/traits/add_param_button.py +0 -0
  519. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/traits/button.py +0 -0
  520. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/traits/clamp.py +0 -0
  521. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/traits/compare.py +0 -0
  522. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/traits/compare_images.py +0 -0
  523. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/traits/minmax.py +0 -0
  524. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/traits/options.py +0 -0
  525. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/traits/slider.py +0 -0
  526. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/traits/trait_registry.py +0 -0
  527. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/traits/traits.json +0 -0
  528. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/updater/__init__.py +0 -0
  529. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/updater/__main__.py +0 -0
  530. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/utils/__init__.py +0 -0
  531. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/utils/dict_utils.py +0 -0
  532. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/src/griptape_nodes/utils/metaclasses.py +0 -0
  533. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/tests/__init__.py +0 -0
  534. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/tests/integration/__init__.py +0 -0
  535. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/tests/integration/conftest.py +0 -0
  536. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/tests/integration/retained_mode/__init__.py +0 -0
  537. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/tests/integration/retained_mode/events/__init__.py +0 -0
  538. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/tests/integration/retained_mode/events/test_config_events.py +0 -0
  539. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/tests/integration/retained_mode/events/test_node_events.py +0 -0
  540. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/tests/integration/retained_mode/events/test_secret_events.py +0 -0
  541. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/tests/unit/__init__.py +0 -0
  542. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/tests/unit/exe_types/__init__.py +0 -0
  543. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/tests/workflows/__init__.py +0 -0
  544. {griptape_nodes-0.36.2 → griptape_nodes-0.37.0}/tests/workflows/test_workflows.py +0 -0
@@ -21,17 +21,16 @@ jobs:
21
21
  - name: uv Build
22
22
  run: uv build
23
23
  - name: uv Publish
24
- run: uv publish --token ${{ secrets.PYPI_TOKEN }}
25
-
24
+ run: uv publish --token ${{ secrets.PYPI_TOKEN }}
26
25
 
27
26
  push_to_registries:
28
- name: Push Docker image to multiple registries
27
+ name: Push Docker images to multiple registries
29
28
  runs-on: ubuntu-latest
30
29
  permissions:
31
30
  packages: write
32
31
  contents: read
33
- attestations: write
34
32
  id-token: write
33
+
35
34
  steps:
36
35
  - name: Check out the repo
37
36
  uses: actions/checkout@v4
@@ -42,7 +41,7 @@ jobs:
42
41
  username: ${{ secrets.DOCKER_USERNAME }}
43
42
  password: ${{ secrets.DOCKER_PASSWORD }}
44
43
 
45
- - name: Log in to the Container registry
44
+ - name: Log in to GitHub Container Registry
46
45
  uses: docker/login-action@v3
47
46
  with:
48
47
  registry: ghcr.io
@@ -57,18 +56,50 @@ jobs:
57
56
  griptape/griptape-nodes
58
57
  ghcr.io/${{ github.repository }}
59
58
 
60
- - name: Build and push Docker images
61
- id: push
59
+ - name: Generate GPU tags
60
+ id: meta_gpu
61
+ run: |
62
+ # Read the comma‐separated list of CPU tags from metadata-action
63
+ CPU_TAGS="${{ steps.meta.outputs.tags }}"
64
+
65
+ # Split into array
66
+ IFS=',' read -r -a TAG_ARRAY <<< "$CPU_TAGS"
67
+
68
+ # Append "-gpu" to each tag name
69
+ GPU_TAGS=""
70
+ for full_ref in "${TAG_ARRAY[@]}"; do
71
+ # full_ref has form "repo:tag"
72
+ image_name="${full_ref%%:*}"
73
+ image_tag="${full_ref##*:}"
74
+ gpu_ref="${image_name}:${image_tag}-gpu"
75
+
76
+ if [ -z "$GPU_TAGS" ]; then
77
+ GPU_TAGS="$gpu_ref"
78
+ else
79
+ GPU_TAGS="$GPU_TAGS,$gpu_ref"
80
+ fi
81
+ done
82
+
83
+ echo "tags=$GPU_TAGS" >> $GITHUB_OUTPUT
84
+
85
+ - name: Build and push CPU image
86
+ id: push_cpu
62
87
  uses: docker/build-push-action@v6
63
88
  with:
64
89
  context: .
65
90
  push: true
91
+ build-args: |
92
+ BUILD_TYPE=cpu
66
93
  tags: ${{ steps.meta.outputs.tags }}
67
94
  labels: ${{ steps.meta.outputs.labels }}
68
95
 
69
- - name: Generate artifact attestation
70
- uses: actions/attest-build-provenance@v2
96
+ - name: Build and push GPU image
97
+ id: push_gpu
98
+ uses: docker/build-push-action@v6
71
99
  with:
72
- subject-name: ghcr.io/${{ github.repository }}
73
- subject-digest: ${{ steps.push.outputs.digest }}
74
- push-to-registry: true
100
+ context: .
101
+ push: true
102
+ build-args: |
103
+ BUILD_TYPE=gpu
104
+ tags: ${{ steps.meta_gpu.outputs.tags }}
105
+ labels: ${{ steps.meta.outputs.labels }}
@@ -190,3 +190,4 @@ request_payload_schemas.json
190
190
  # JetBrains
191
191
  .idea/
192
192
 
193
+ .vscode/settings.json
@@ -0,0 +1,234 @@
1
+ # Single Dockerfile for both CPU and GPU type builds.
2
+ # Use --build-arg BUILD_TYPE=cpu (default) or BUILD_TYPE=gpu to switch modes.
3
+
4
+ #────────────────────────────
5
+ # 1) ARGs and base‐image definitions
6
+ #────────────────────────────
7
+ ARG BUILD_TYPE=cpu
8
+ ARG BASE_IMAGE_CPU=ubuntu:22.04
9
+ ARG BASE_IMAGE_GPU=nvidia/cuda:12.8.1-cudnn-runtime-ubuntu22.04
10
+
11
+ #────────────────────────────
12
+ # 2) Shared Python installation stage
13
+ #────────────────────────────
14
+ FROM ubuntu:22.04 AS python_base
15
+
16
+ # Force noninteractive front‐end and set a dummy TZ so tzdata won't prompt
17
+ ENV DEBIAN_FRONTEND=noninteractive
18
+ ENV TZ=Etc/UTC
19
+
20
+ # Install prerequisites and add Deadsnakes for Python 3.12
21
+ RUN apt-get update \
22
+ && apt-get install -y --no-install-recommends \
23
+ software-properties-common \
24
+ wget \
25
+ tzdata \
26
+ gpg-agent \
27
+ && ln -fs /usr/share/zoneinfo/Etc/UTC /etc/localtime \
28
+ && dpkg-reconfigure -f noninteractive tzdata \
29
+ && wget -qO- https://keyserver.ubuntu.com/pks/lookup?op=get\&search=0xF23C5A6CF475977595C89F51BA6932366A755776 | gpg --dearmor > /etc/apt/trusted.gpg.d/deadsnakes.gpg \
30
+ && echo "deb https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/deadsnakes-ppa.list \
31
+ && apt-get update \
32
+ && apt-get install -y --no-install-recommends \
33
+ git \
34
+ build-essential \
35
+ pkg-config \
36
+ cmake \
37
+ libprotobuf-dev \
38
+ protobuf-compiler \
39
+ python3.12 \
40
+ python3.12-dev \
41
+ python3.12-venv \
42
+ && rm -rf /var/lib/apt/lists/* \
43
+ && pkg-config --version \
44
+ && cmake --version
45
+
46
+ #────────────────────────────
47
+ # 3) CPU builder stage
48
+ #────────────────────────────
49
+ FROM python_base AS builder_cpu
50
+
51
+ # Bring in uv/uvx binaries from the official Astral SH image
52
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
53
+
54
+ WORKDIR /app
55
+
56
+ # Set virtual environment location outside of /app to avoid mount conflicts
57
+ ENV UV_PROJECT_ENVIRONMENT=/opt/venv
58
+
59
+ # Install dependencies (without yet installing the project itself)
60
+ # - Use BuildKit cache mounts for pip/uv caches
61
+ ENV UV_LINK_MODE=copy
62
+ ENV UV_COMPILE_BYTECODE=1
63
+ ENV UV_PYTHON_DOWNLOADS=never
64
+ ENV UV_PYTHON=/usr/bin/python3.12
65
+ RUN --mount=type=cache,target=/root/.cache/uv \
66
+ --mount=type=bind,source=uv.lock,target=uv.lock \
67
+ --mount=type=bind,source=pyproject.toml,target=pyproject.toml \
68
+ uv sync --locked --no-install-project --no-editable
69
+
70
+ # Copy everything needed for the actual project sync
71
+ COPY pyproject.toml pyproject.toml
72
+ COPY uv.lock uv.lock
73
+ COPY README.md README.md
74
+ COPY src src
75
+ COPY libraries libraries
76
+
77
+ # Install the project (puts it into a venv at /opt/venv)
78
+ RUN --mount=type=cache,target=/root/.cache/uv \
79
+ uv sync --locked --no-editable
80
+
81
+
82
+ #────────────────────────────
83
+ # 4) GPU builder stage
84
+ #────────────────────────────
85
+ FROM ${BASE_IMAGE_GPU} AS builder_gpu
86
+
87
+ # Force noninteractive front‐end and set a dummy TZ so tzdata won’t prompt
88
+ # Bring in uv/uvx binaries from the official Astral SH image
89
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
90
+
91
+ ENV DEBIAN_FRONTEND=noninteractive
92
+ ENV TZ=Etc/UTC
93
+
94
+ # Install prerequisites and add Deadsnakes for Python 3.12
95
+ RUN apt-get update \
96
+ && apt-get install -y --no-install-recommends \
97
+ software-properties-common \
98
+ wget \
99
+ tzdata \
100
+ && ln -fs /usr/share/zoneinfo/Etc/UTC /etc/localtime \
101
+ && dpkg-reconfigure -f noninteractive tzdata \
102
+ && add-apt-repository ppa:deadsnakes/ppa \
103
+ && apt-get update \
104
+ && apt-get install -y --no-install-recommends \
105
+ git \
106
+ ffmpeg libgl1 \
107
+ libjpeg-dev zlib1g-dev libpng-dev libwebp-dev \
108
+ build-essential \
109
+ pkg-config \
110
+ cmake \
111
+ libprotobuf-dev \
112
+ protobuf-compiler \
113
+ python3.12 \
114
+ python3.12-dev \
115
+ python3.12-venv \
116
+ && rm -rf /var/lib/apt/lists/* \
117
+ && pkg-config --version \
118
+ && cmake --version
119
+
120
+ WORKDIR /app
121
+
122
+ # Set virtual environment location outside of /app to avoid mount conflicts
123
+ ENV UV_PROJECT_ENVIRONMENT=/opt/venv
124
+
125
+ # Install dependencies (without yet installing the project itself)
126
+ # - Use BuildKit cache mounts for pip/uv caches
127
+ ENV UV_LINK_MODE=copy
128
+ ENV UV_COMPILE_BYTECODE=1
129
+ ENV UV_PYTHON_DOWNLOADS=never
130
+ ENV UV_PYTHON=/usr/bin/python3.12
131
+ RUN --mount=type=cache,target=/root/.cache/uv \
132
+ --mount=type=bind,source=uv.lock,target=uv.lock \
133
+ --mount=type=bind,source=pyproject.toml,target=pyproject.toml \
134
+ uv sync --locked --no-install-project --no-editable
135
+
136
+ # Copy everything needed for the actual project sync
137
+ COPY pyproject.toml pyproject.toml
138
+ COPY uv.lock uv.lock
139
+ COPY README.md README.md
140
+ COPY src src
141
+ COPY libraries libraries
142
+
143
+ # Install the project (puts it into a venv at /opt/venv)
144
+ RUN --mount=type=cache,target=/root/.cache/uv \
145
+ uv sync --locked --no-editable
146
+
147
+
148
+ #────────────────────────────
149
+ # 5) "builder" alias: pick CPU or GPU builder based on BUILD_TYPE
150
+ #────────────────────────────
151
+ FROM builder_${BUILD_TYPE} AS builder
152
+
153
+
154
+ #────────────────────────────
155
+ # 6) CPU runtime stage
156
+ #────────────────────────────
157
+ FROM python_base AS runtime_cpu
158
+
159
+ # Install additional runtime libraries for CPU
160
+ RUN apt-get update \
161
+ && apt-get install -y --no-install-recommends \
162
+ libgl1-mesa-glx \
163
+ libglib2.0-0 \
164
+ && rm -rf /var/lib/apt/lists/* \
165
+ && update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1 \
166
+ && update-alternatives --install /usr/bin/python python /usr/bin/python3.12 1
167
+
168
+ WORKDIR /app
169
+
170
+
171
+ #────────────────────────────
172
+ # 7) GPU runtime stage
173
+ #────────────────────────────
174
+ FROM ${BASE_IMAGE_GPU} AS runtime_gpu
175
+
176
+ # Install additional libraries needed at runtime for GPU
177
+ ENV DEBIAN_FRONTEND=noninteractive
178
+ ENV TZ=Etc/UTC
179
+ RUN apt-get update \
180
+ && apt-get install -y --no-install-recommends \
181
+ software-properties-common \
182
+ tzdata \
183
+ && ln -fs /usr/share/zoneinfo/Etc/UTC /etc/localtime \
184
+ && dpkg-reconfigure -f noninteractive tzdata \
185
+ && add-apt-repository ppa:deadsnakes/ppa \
186
+ && apt-get update \
187
+ && apt-get install -y --no-install-recommends \
188
+ git ffmpeg libgl1 \
189
+ libjpeg-dev zlib1g-dev libpng-dev libwebp-dev \
190
+ build-essential pkg-config cmake libprotobuf-dev protobuf-compiler \
191
+ python3.12 python3.12-dev python3.12-venv \
192
+ && rm -rf /var/lib/apt/lists/* \
193
+ && update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 1 \
194
+ && update-alternatives --install /usr/bin/python python /usr/bin/python3.12 1
195
+
196
+ WORKDIR /app
197
+
198
+
199
+ #────────────────────────────
200
+ # 8) Final stage: pick runtime_${BUILD_TYPE}, then add user / copy venv / entrypoint
201
+ #────────────────────────────
202
+ ARG BUILD_TYPE
203
+ FROM runtime_${BUILD_TYPE} AS final
204
+
205
+ # Create a non-root user and prepare /app/models
206
+ RUN groupadd --gid 1000 appuser \
207
+ && useradd --uid 1000 --gid appuser --shell /bin/bash --create-home appuser
208
+
209
+ # Create app directory structure and set permissions for volume mount points
210
+ RUN mkdir -p /app /opt/venv && \
211
+ chown -R appuser:appuser /app /opt/venv
212
+
213
+ # Copy the venv from the chosen builder into /opt/venv, preserving ownership
214
+ COPY --from=builder --chown=appuser:appuser /opt/venv /opt/venv
215
+
216
+ LABEL org.opencontainers.image.source="https://github.com/griptape-ai/griptape-nodes"
217
+ LABEL org.opencontainers.image.description="Griptape Nodes."
218
+ LABEL org.opencontainers.image.licenses="Apache-2.0"
219
+
220
+ # Copy entrypoint and make sure it’s executable
221
+ COPY --chown=appuser:appuser entrypoint.sh /entrypoint.sh
222
+ RUN chmod +x /entrypoint.sh
223
+
224
+ # Switch to non-root user and set working directory
225
+ USER appuser
226
+ WORKDIR /app
227
+
228
+ # Ensure XDG directories and Python user base point to the user's home
229
+ ENV HOME=/app
230
+
231
+ EXPOSE 8124
232
+
233
+ ENTRYPOINT ["/entrypoint.sh"]
234
+ CMD ["/opt/venv/bin/griptape-nodes", "--no-update"]
@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: griptape-nodes
3
- Version: 0.36.2
3
+ Version: 0.37.0
4
4
  Summary: Add your description here
5
5
  License-File: LICENSE
6
6
  Requires-Python: ~=3.12
7
7
  Requires-Dist: fastapi>=0.115.12
8
- Requires-Dist: griptape[drivers-prompt-amazon-bedrock,drivers-prompt-anthropic,drivers-prompt-cohere,drivers-prompt-ollama,drivers-web-scraper-trafilatura,drivers-web-search-duckduckgo,loaders-image]>=1.7.1
8
+ Requires-Dist: griptape[drivers-prompt-amazon-bedrock,drivers-prompt-anthropic,drivers-prompt-cohere,drivers-prompt-ollama,drivers-web-scraper-trafilatura,drivers-web-search-duckduckgo,drivers-web-search-exa,loaders-image]>=1.7.1
9
9
  Requires-Dist: httpx<1.0.0,>=0.28.0
10
+ Requires-Dist: json-repair>=0.46.1
10
11
  Requires-Dist: packaging>=25.0
11
12
  Requires-Dist: pydantic>=2.10.6
12
13
  Requires-Dist: python-dotenv>=1.0.1
@@ -0,0 +1,43 @@
1
+ # Date and Time
2
+
3
+ ## What is it?
4
+
5
+ The Date and Time tool is a utility that helps you format and manipulate date and time information as text.
6
+
7
+ ## When would I use it?
8
+
9
+ Use this node when you want to:
10
+
11
+ - Format dates and times in specific text formats
12
+ - Convert between different date/time formats
13
+ - Generate date/time strings for use in text
14
+ - Create time-based text content
15
+
16
+ ## How to use it
17
+
18
+ ### Basic Setup
19
+
20
+ 1. Add the Date and Time tool to your workflow
21
+ 1. Configure the date/time parameters
22
+ 1. Connect its output to nodes that need formatted date/time text
23
+
24
+ ### Parameters
25
+
26
+ - **prompt**: The thing you'd like to get the date for (e.g. "Christmas, 2027", "Next friday")
27
+ - **format**: The format for the date/time (e.g., "%Y-%m-%d %H:%M:%S", "Fri 25, March, 9pm")
28
+
29
+ ### Outputs
30
+
31
+ - **output**: The formatted date/time as text
32
+
33
+ ## Example
34
+
35
+ Imagine you want to format a date in a specific way:
36
+
37
+ 1. Add a Date and Time tool to your workflow
38
+ 1. Set the desired date format
39
+ 1. Connect the "output" to another node that needs the formatted date/time
40
+
41
+ ## Implementation Details
42
+
43
+ The Date and Time tool provides flexible date and time formatting capabilities. It supports various format strings and timezone handling to generate properly formatted date/time text.
@@ -0,0 +1,80 @@
1
+ # Evaluate Text Result
2
+
3
+ The Evaluate Text Result node allows you to evaluate text outputs against specific criteria using Griptape's Eval Engine. This node is useful for validating AI-generated content, checking factual accuracy, or assessing the quality of text outputs.
4
+
5
+ ## Inputs
6
+
7
+ - **Examples** (Property): Choose from preset examples or create your own evaluation
8
+
9
+ - Options:
10
+
11
+ - Choose a preset..
12
+ - Paraphrase
13
+ - Factual
14
+ - Analogy
15
+
16
+ - **Input** (Input/Property): The input text to be evaluated
17
+
18
+ - Supports multiline text input
19
+
20
+ - **Expected Output** (Input/Property): The expected or reference output text
21
+
22
+ - Single line text input
23
+
24
+ - **Actual Output** (Input/Property): The actual output text to be evaluated
25
+
26
+ - Single line text input
27
+
28
+ - **Criteria** (Input/Property): The evaluation criteria to use
29
+
30
+ - Supports multiline text input
31
+ - Example: "Does the output accurately paraphrase the input without losing meaning?"
32
+
33
+ ## Outputs
34
+
35
+ - **Score** (Output): A float value between 0 and 1 representing the evaluation score
36
+
37
+ - 1.0 indicates perfect match
38
+ - 0.0 indicates complete mismatch
39
+
40
+ - **Reason** (Output): A detailed explanation of the evaluation result
41
+
42
+ - Provides feedback on why the score was given
43
+ - Explains any discrepancies found
44
+
45
+ ## Example Usage
46
+
47
+ ### Paraphrase Evaluation
48
+
49
+ ```python
50
+ Input: "The quick brown fox jumps over the lazy dog."
51
+ Expected Output: "A swift brown fox leaps above a sleeping dog."
52
+ Actual Output: "A fast fox jumps over a dog that's not awake."
53
+ Criteria: "Does the output accurately paraphrase the input without losing meaning?"
54
+ ```
55
+
56
+ ### Factual Evaluation
57
+
58
+ ```python
59
+ Input: "The capital of France is Paris."
60
+ Expected Output: "Paris is the capital city of France."
61
+ Actual Output: "France's capital is Paris."
62
+ Criteria: "Is the output factually correct based on the input?"
63
+ ```
64
+
65
+ ### Analogy Evaluation
66
+
67
+ ```python
68
+ Input: "A bird is to sky as a fish is to ______."
69
+ Expected Output: "water"
70
+ Actual Output: "concrete"
71
+ Criteria: "Does the output correctly complete the analogy?"
72
+ ```
73
+
74
+ ## Notes
75
+
76
+ - The node uses Griptape's Eval Engine to perform the evaluation
77
+ - The evaluation is based on the provided criteria
78
+ - The score is normalized between 0 and 1
79
+ - The reason provides detailed feedback about the evaluation
80
+ - You can use preset examples or create your own custom evaluations
@@ -0,0 +1,42 @@
1
+ # Scrape Web
2
+
3
+ ## What is it?
4
+
5
+ The Scrape Web tool is a utility that allows you to extract text content from web pages.
6
+
7
+ ## When would I use it?
8
+
9
+ Use this node when you want to:
10
+
11
+ - Extract text content from specific web pages
12
+ - Gather information from websites
13
+ - Collect data from online sources
14
+ - Automate web content extraction
15
+
16
+ ## How to use it
17
+
18
+ ### Basic Setup
19
+
20
+ 1. Add the Scrape Web tool to your workflow
21
+ 1. Configure the scraping parameters
22
+ 1. Connect its output to nodes that need the scraped content
23
+
24
+ ### Parameters
25
+
26
+ - **url**: The URL of the web page to scrape
27
+
28
+ ### Outputs
29
+
30
+ - **output**: The text content extracted from the web page
31
+
32
+ ## Example
33
+
34
+ Imagine you want to extract content from a specific web page:
35
+
36
+ 1. Add a Scrape Web tool to your workflow
37
+ 1. Set the URL of the page you want to scrape
38
+ 1. Connect the "output" to another node that needs the scraped content
39
+
40
+ ## Implementation Details
41
+
42
+ The Scrape Web tool uses web scraping capabilities to extract text content from web pages. It can target specific content using CSS selectors and handles timeouts and errors gracefully.
@@ -0,0 +1,44 @@
1
+ # Search Web
2
+
3
+ ## What is it?
4
+
5
+ The Search Web tool is a utility that allows you to search the web and retrieve text content from search results.
6
+
7
+ ## When would I use it?
8
+
9
+ Use this node when you want to:
10
+
11
+ - Search the web for specific information
12
+ - Retrieve text content from search results
13
+ - Gather information from multiple web sources
14
+ - Research topics online
15
+
16
+ ## How to use it
17
+
18
+ ### Basic Setup
19
+
20
+ 1. Add the Search Web tool to your workflow
21
+ 1. Connect its output to nodes that need web search results
22
+
23
+ ### Parameters
24
+
25
+ - **prompt**: The search query to use
26
+ - **summarize**: Whether or not you want an LLM to summarize the text
27
+ - **search_engine**: The search engine to use. Note: some engines require an API key.
28
+
29
+ ### Outputs
30
+
31
+ - **output**: The text content retrieved from the search results
32
+
33
+ ## Example
34
+
35
+ Imagine you want to search for information about a specific topic:
36
+
37
+ 1. Add a Search Web tool to your workflow
38
+ 1. Set the search query
39
+ 1. Connect the "output to another node that needs the search results
40
+ 1. The tool will return the text content from the search results
41
+
42
+ ## Implementation Details
43
+
44
+ The Search Web tool uses web search capabilities to find relevant information and extracts text content from the search results. It's designed to help you gather information from the web in a structured way.
@@ -0,0 +1,42 @@
1
+ # Summarize Text
2
+
3
+ ## What is it?
4
+
5
+ The Summarize Text Task tool is a utility that summarizes text for you.
6
+
7
+ ## When would I use it?
8
+
9
+ Use this node when you want to:
10
+
11
+ - Create tasks for summarizing text content
12
+ - Define summarization requirements and parameters
13
+ - Set up structured summarization workflows
14
+ - Manage text summarization processes
15
+
16
+ ## How to use it
17
+
18
+ ### Basic Setup
19
+
20
+ 1. Add the Summarize Text Task tool to your workflow
21
+ 1. Configure the summarization parameters
22
+ 1. Connect its output to nodes that need summarization tasks
23
+
24
+ ### Parameters
25
+
26
+ - **text**: The text content to be summarized
27
+
28
+ ### Outputs
29
+
30
+ - **output**: The summary of the text
31
+
32
+ ## Example
33
+
34
+ Imagine you want to create a summarization task for a long text:
35
+
36
+ 1. Add a Summarize Text Task tool to your workflow
37
+ 1. Connect the text input to your source text
38
+ 1. Connect the "output" to a node that can process the summarization task
39
+
40
+ ## Implementation Details
41
+
42
+ The Summarize Text Task tool helps you summarize long amonts of text.
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## What is it?
4
4
 
5
- The Calculator tool is a calculator. A calculator you give an agent. So the agent can do math.
5
+ The Calculator tool is a mathematical calculation tool that can be given to an agent to help it perform precise calculations.
6
6
 
7
7
  ## When would I use it?
8
8
 
@@ -19,10 +19,6 @@ Use this node when you want to:
19
19
  1. Add the Calculator to your workflow
20
20
  1. Connect its output to nodes that need calculation capabilities (like an Agent)
21
21
 
22
- ### Parameters
23
-
24
- - **off_prompt**: Whether to run calculations outside the main prompt (default is true)
25
-
26
22
  ### Outputs
27
23
 
28
24
  - **tool**: The configured calculator tool that other nodes can use
@@ -34,3 +30,7 @@ Imagine you want to create an agent that can perform calculations:
34
30
  1. Add a Calculator to your workflow
35
31
  1. Connect the "tool" output to an Agent's "tools" input
36
32
  1. Now that agent can perform calculations when needed in conversations
33
+
34
+ ## Implementation Details
35
+
36
+ The Calculator tool is implemented using Griptape's `CalculatorTool` class and provides a simple interface for performing mathematical calculations. The tool is designed to be used by agents to handle numerical operations accurately and efficiently.
@@ -0,0 +1,37 @@
1
+ # Date Time
2
+
3
+ ## What is it?
4
+
5
+ The Date Time tool is a utility that can be given to an agent to help it perform date and time operations.
6
+
7
+ ## When would I use it?
8
+
9
+ Use this node when you want to:
10
+
11
+ - Enable agents to work with dates and times
12
+ - Perform date/time calculations and manipulations
13
+ - Get current time information
14
+ - Format dates and times in different ways
15
+
16
+ ## How to use it
17
+
18
+ ### Basic Setup
19
+
20
+ 1. Add the Date Time tool to your workflow
21
+ 1. Connect its output to nodes that need date/time capabilities (like an Agent)
22
+
23
+ ### Outputs
24
+
25
+ - **tool**: The configured date time tool that other nodes can use
26
+
27
+ ## Example
28
+
29
+ Imagine you want to create an agent that can work with dates and times:
30
+
31
+ 1. Add a Date Time tool to your workflow
32
+ 1. Connect the "tool" output to an Agent's "tools" input
33
+ 1. Now that agent can perform date and time operations when needed in conversations
34
+
35
+ ## Implementation Details
36
+
37
+ The Date Time tool is implemented using Griptape's `DateTimeTool` class and provides a comprehensive interface for handling date and time operations. The tool is designed to be used by agents to manage temporal data and perform time-based calculations.