griptape-nodes 0.35.0__tar.gz → 0.36.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 (521) hide show
  1. griptape_nodes-0.36.0/.env.example +2 -0
  2. griptape_nodes-0.36.0/.github/workflows/claude.yml +37 -0
  3. griptape_nodes-0.36.0/.github/workflows/workflow-tests.yml +52 -0
  4. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/CONTRIBUTING.md +5 -2
  5. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/Makefile +5 -1
  6. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/PKG-INFO +1 -1
  7. {griptape_nodes-0.35.0/docs/reference → griptape_nodes-0.36.0/docs}/command_line_interface.md +2 -2
  8. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/00_tour/FTUE_00_tour.md +1 -1
  9. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/FTUE.md +1 -1
  10. {griptape_nodes-0.35.0/docs/reference → griptape_nodes-0.36.0/docs}/glossary.md +3 -3
  11. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/index.md +1 -1
  12. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/installation.md +1 -1
  13. griptape_nodes-0.36.0/docs/nodes/config/groq_prompt_driver.md +58 -0
  14. {griptape_nodes-0.35.0/docs/reference → griptape_nodes-0.36.0/docs}/retained_mode.md +2 -2
  15. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/entrypoint.sh +1 -1
  16. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/parameters/huggingface_model_parameter.py +34 -3
  17. griptape_nodes-0.36.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/parameters/huggingface_repo_file_parameter.py +24 -0
  18. griptape_nodes-0.36.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/parameters/huggingface_repo_parameter.py +20 -0
  19. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/parameters/log_parameter.py +3 -0
  20. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/utils/torch_utils.py +1 -1
  21. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/controlnet/union_flux_control_net_pipeline.py +4 -1
  22. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/controlnet/union_pro_flux_control_net_pipeline.py +4 -1
  23. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/controlnet/union_pro_two_flux_control_net_pipeline.py +4 -1
  24. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/flux_fill_pipeline.py +4 -1
  25. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/flux_loras_parameter.py +1 -1
  26. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/flux_pipeline.py +4 -1
  27. griptape_nodes-0.36.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/__init__.py +1 -0
  28. griptape_nodes-0.36.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/train_flux_lora.py +154 -0
  29. griptape_nodes-0.36.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/train_flux_lora_parameters.py +276 -0
  30. griptape_nodes-0.36.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/__init__.py +1 -0
  31. griptape_nodes-0.36.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/accelerate_main.py +1172 -0
  32. griptape_nodes-0.36.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/accelerate_parse_args.py +484 -0
  33. griptape_nodes-0.36.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/utils/__init__.py +1 -0
  34. griptape_nodes-0.36.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/utils/accelerate_utils.py +84 -0
  35. griptape_nodes-0.36.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/utils/dreambooth_dataset.py +313 -0
  36. griptape_nodes-0.36.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/utils/encode_prompt.py +184 -0
  37. griptape_nodes-0.36.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/utils/logging.py +27 -0
  38. griptape_nodes-0.36.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/utils/memory.py +84 -0
  39. griptape_nodes-0.36.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/utils/optimizer.py +104 -0
  40. griptape_nodes-0.36.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/peft/training/utils/stdout_tracker.py +28 -0
  41. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/tiling_flux_img_2_img_pipeline.py +4 -1
  42. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/griptape_nodes_library.json +16 -1
  43. griptape_nodes-0.36.0/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/groq_prompt.py +137 -0
  44. griptape_nodes-0.36.0/libraries/griptape_nodes_library/griptape_nodes_library/image/paint_mask.py +261 -0
  45. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/load_text.py +1 -1
  46. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library.json +9 -0
  47. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/workflows/templates/compare_prompts.py +1 -1
  48. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/workflows/templates/coordinating_agents.py +1 -1
  49. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/workflows/templates/photography_team.py +1 -1
  50. griptape_nodes-0.36.0/mkdocs.yml +153 -0
  51. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/pyproject.toml +1 -1
  52. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/__init__.py +259 -92
  53. griptape_nodes-0.36.0/src/griptape_nodes/app/__init__.py +10 -0
  54. griptape_nodes-0.36.0/src/griptape_nodes/app/app_websocket.py +481 -0
  55. griptape_nodes-0.36.0/src/griptape_nodes/bootstrap/bootstrap_script.py +54 -0
  56. griptape_nodes-0.36.0/src/griptape_nodes/bootstrap/workflow_runners/__init__.py +1 -0
  57. griptape_nodes-0.36.0/src/griptape_nodes/bootstrap/workflow_runners/bootstrap_workflow_runner.py +28 -0
  58. griptape_nodes-0.36.0/src/griptape_nodes/bootstrap/workflow_runners/local_workflow_runner.py +237 -0
  59. griptape_nodes-0.36.0/src/griptape_nodes/bootstrap/workflow_runners/subprocess_workflow_runner.py +58 -0
  60. griptape_nodes-0.36.0/src/griptape_nodes/bootstrap/workflow_runners/workflow_runner.py +11 -0
  61. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/exe_types/core_types.py +50 -0
  62. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/machines/node_resolution.py +3 -3
  63. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/node_library/library_registry.py +18 -7
  64. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/node_events.py +2 -2
  65. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/parameter_events.py +4 -49
  66. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/managers/flow_manager.py +5 -5
  67. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/managers/node_manager.py +192 -21
  68. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/managers/object_manager.py +2 -0
  69. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/managers/workflow_manager.py +14 -4
  70. griptape_nodes-0.36.0/tests/workflows/__init__.py +0 -0
  71. griptape_nodes-0.36.0/tests/workflows/test_workflows.py +48 -0
  72. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/uv.lock +1 -1
  73. griptape_nodes-0.35.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/parameters/huggingface_repo_file_parameter.py +0 -44
  74. griptape_nodes-0.35.0/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/parameters/huggingface_repo_parameter.py +0 -38
  75. griptape_nodes-0.35.0/libraries/griptape_nodes_library/griptape_nodes_library/image/paint_mask.py +0 -229
  76. griptape_nodes-0.35.0/mkdocs.yml +0 -154
  77. griptape_nodes-0.35.0/src/griptape_nodes/app/__init__.py +0 -5
  78. griptape_nodes-0.35.0/src/griptape_nodes/bootstrap/bootstrap_script.py +0 -273
  79. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/.github/DISCUSSION_TEMPLATE/ideas.yml +0 -0
  80. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  81. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/.github/actions/init-environment/action.yml +0 -0
  82. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/.github/release.yml +0 -0
  83. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/.github/workflows/code-checks.yml +0 -0
  84. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/.github/workflows/latest-release.yml +0 -0
  85. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/.github/workflows/publish.yml +0 -0
  86. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/.github/workflows/pull-request-links.yml +0 -0
  87. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/.github/workflows/stable-release.yml +0 -0
  88. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/.github/workflows/unit-tests.yml +0 -0
  89. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/.gitignore +0 -0
  90. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/.python-version +0 -0
  91. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/.readthedocs.yml +0 -0
  92. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/.vscode/launch.json +0 -0
  93. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/Dockerfile +0 -0
  94. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/LICENSE +0 -0
  95. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/README.md +0 -0
  96. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/assets/css/extra.css +0 -0
  97. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/assets/img/getting_started/getting_started-blank_editor.png +0 -0
  98. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/assets/img/getting_started/getting_started-installation_page.webp +0 -0
  99. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/assets/img/getting_started/getting_started-installation_page_key_hint.png +0 -0
  100. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/assets/img/getting_started/getting_started-installation_page_key_hint.webp +0 -0
  101. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/assets/img/getting_started/getting_started-login.png +0 -0
  102. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/assets/img/getting_started/getting_started-nodes_landing_page.png +0 -0
  103. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/assets/img/griptape_nodes_header_logo.svg +0 -0
  104. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/assets/img/video-thumbnail.jpg +0 -0
  105. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/configuration.md +0 -0
  106. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/faq.md +0 -0
  107. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/00_tour/assets/connected.png +0 -0
  108. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/00_tour/assets/create_from_scratch.png +0 -0
  109. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/00_tour/assets/create_node_dblClick.gif +0 -0
  110. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/00_tour/assets/create_node_dragDrop.gif +0 -0
  111. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/00_tour/assets/create_node_spacebar.gif +0 -0
  112. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/00_tour/assets/create_nodes_panel.png +0 -0
  113. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/00_tour/assets/eg_prompt.png +0 -0
  114. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/00_tour/assets/landing_page.png +0 -0
  115. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/00_tour/assets/launch_link.png +0 -0
  116. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/00_tour/assets/nodes_in_workspace.png +0 -0
  117. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/00_tour/assets/run_node.png +0 -0
  118. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/00_tour/assets/workspace_interface.png +0 -0
  119. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/01_prompt_an_image/FTUE_01_prompt_an_image.md +0 -0
  120. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/01_prompt_an_image/assets/generate_image_node.png +0 -0
  121. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/01_prompt_an_image/assets/nav_bar.png +0 -0
  122. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/01_prompt_an_image/assets/node_running.gif +0 -0
  123. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/01_prompt_an_image/assets/potato_aerobics.png +0 -0
  124. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/01_prompt_an_image/assets/potato_painting.png +0 -0
  125. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/01_prompt_an_image/assets/prompt_image_example.png +0 -0
  126. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/01_prompt_an_image/assets/run_options.png +0 -0
  127. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/01_prompt_an_image/assets/text_prompt_field.png +0 -0
  128. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/01_prompt_an_image/assets/ways_to_run.png +0 -0
  129. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/02_coordinating_agents/FTUE_02_coordinating_agents.md +0 -0
  130. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/02_coordinating_agents/assets/build_your_own.png +0 -0
  131. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/02_coordinating_agents/assets/connect_your_own.png +0 -0
  132. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/02_coordinating_agents/assets/coordinating_agents_example.png +0 -0
  133. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/02_coordinating_agents/assets/exec_chain.png +0 -0
  134. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/02_coordinating_agents/assets/final_result.png +0 -0
  135. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/02_coordinating_agents/assets/mandarin.png +0 -0
  136. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/02_coordinating_agents/assets/mandarin_display.png +0 -0
  137. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/02_coordinating_agents/assets/mandarin_merge.png +0 -0
  138. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/02_coordinating_agents/assets/mandarin_to_english.png +0 -0
  139. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/02_coordinating_agents/assets/node_running.gif +0 -0
  140. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/02_coordinating_agents/assets/sibling_target.png +0 -0
  141. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/02_coordinating_agents/assets/summary_pre.png +0 -0
  142. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/02_coordinating_agents/assets/workflow_overview.png +0 -0
  143. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/02_coordinating_agents/assets/workflow_result.png +0 -0
  144. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/03_compare_prompts/FTUE_03_compare_prompts.md +0 -0
  145. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/03_compare_prompts/assets/agent_node_output.png +0 -0
  146. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/03_compare_prompts/assets/basic_image_node.png +0 -0
  147. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/03_compare_prompts/assets/bespoke_prompt_image.png +0 -0
  148. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/03_compare_prompts/assets/compare_prompts_example.png +0 -0
  149. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/03_compare_prompts/assets/compare_prompts_workflow.png +0 -0
  150. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/03_compare_prompts/assets/detailed_instructions.png +0 -0
  151. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/03_compare_prompts/assets/enhanced_prompt_image.png +0 -0
  152. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/03_compare_prompts/assets/trace_basic.png +0 -0
  153. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/03_compare_prompts/assets/trace_bespoke.png +0 -0
  154. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/03_compare_prompts/assets/trace_enhanced.png +0 -0
  155. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/04_photography_team/FTUE_04_photography_team.md +0 -0
  156. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/04_photography_team/assets/agent_tool_conversion.png +0 -0
  157. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/04_photography_team/assets/cinematographer_ruleset.png +0 -0
  158. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/04_photography_team/assets/orchestrator_setup.png +0 -0
  159. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/04_photography_team/assets/photography_team_example.png +0 -0
  160. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/04_photography_team/assets/rule_ruleset_agent_tool_chain.png +0 -0
  161. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/04_photography_team/assets/ruleset_direct_connect.png +0 -0
  162. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/04_photography_team/assets/ruleset_list.png +0 -0
  163. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/04_photography_team/assets/tool_list.png +0 -0
  164. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/04_photography_team/assets/tools_concept.png +0 -0
  165. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/04_photography_team/assets/workflow_overview.png +0 -0
  166. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/04_photography_team/assets/workflow_result.png +0 -0
  167. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/assets/FTUE_01_prompt_an_image.png +0 -0
  168. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/assets/FTUE_02_coordinating_agents.png +0 -0
  169. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/assets/FTUE_03_compare_prompts.png +0 -0
  170. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/ftue/assets/FTUE_04_photography_team.png +0 -0
  171. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/installs/assets/huggingface_00_MainPage.png +0 -0
  172. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/installs/assets/huggingface_01_signup.png +0 -0
  173. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/installs/assets/huggingface_02_Settings.png +0 -0
  174. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/installs/assets/huggingface_03_AccessTokens.png +0 -0
  175. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/installs/assets/huggingface_04_TokenRead.png +0 -0
  176. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/installs/assets/huggingface_05_SaveToken.png +0 -0
  177. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/installs/assets/huggingface_06_gated_model.png +0 -0
  178. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/installs/assets/huggingface_07_GN_Settings.png +0 -0
  179. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/installs/assets/huggingface_08_GN_HFToken.png +0 -0
  180. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/installs/hugging_face.md +0 -0
  181. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/assets/grok_00_main_page.png +0 -0
  182. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/assets/grok_01_console_login.png +0 -0
  183. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/assets/grok_02_signup.png +0 -0
  184. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/assets/grok_03_billing.png +0 -0
  185. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/assets/grok_04_key_links.png +0 -0
  186. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/assets/grok_05_create_api_key_button.png +0 -0
  187. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/assets/grok_06_create_api_key_page.png +0 -0
  188. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/assets/grok_07_gtn_settings.png +0 -0
  189. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/assets/gtn_settings_menu.png +0 -0
  190. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/assets/openai_00_main_page.png +0 -0
  191. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/assets/openai_01_login_api_platform.png +0 -0
  192. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/assets/openai_02_dashboard.png +0 -0
  193. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/assets/openai_03_api_keys.png +0 -0
  194. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/assets/openai_04_create_new_secret_key_button.png +0 -0
  195. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/assets/openai_05_create_new_secret_key_modal.png +0 -0
  196. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/assets/openai_06_gtn_settings.png +0 -0
  197. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/grok.md +0 -0
  198. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/keys/openai.md +0 -0
  199. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/making_custom_nodes.md +0 -0
  200. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/how_to/making_custom_scripts.md +0 -0
  201. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/advanced_media_library/flux_pipeline.md +0 -0
  202. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/advanced_media_library/pillow_resize.md +0 -0
  203. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/advanced_media_library/tiling_flux_img_2_img_pipeline.md +0 -0
  204. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/advanced_media_library/tiling_spandrel_pipeline.md +0 -0
  205. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/agents/create_agent.md +0 -0
  206. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/audio/load_audio.md +0 -0
  207. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/audio/microphone.md +0 -0
  208. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/audio/transcribe_audio.md +0 -0
  209. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/config/anthropic_prompt_driver.md +0 -0
  210. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/config/cohere_prompt_driver.md +0 -0
  211. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/config/griptape_cloud_image_driver.md +0 -0
  212. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/config/griptape_cloud_prompt_driver.md +0 -0
  213. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/config/grok_image_driver.md +0 -0
  214. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/config/grok_prompt_driver.md +0 -0
  215. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/config/openai_image_driver.md +0 -0
  216. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/config/openai_prompt_driver.md +0 -0
  217. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/dict/create_dict.md +0 -0
  218. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/dict/display_dict.md +0 -0
  219. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/dict/key_value_pair.md +0 -0
  220. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/dict/merge_key_value_pair.md +0 -0
  221. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/execution/end_flow.md +0 -0
  222. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/execution/reroute.md +0 -0
  223. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/execution/start_flow.md +0 -0
  224. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/image/create_image.md +0 -0
  225. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/image/describe_image.md +0 -0
  226. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/image/load_image.md +0 -0
  227. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/number/create_float.md +0 -0
  228. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/number/create_int.md +0 -0
  229. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/number/display_float.md +0 -0
  230. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/number/display_int.md +0 -0
  231. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/overview.md +0 -0
  232. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/rules/create_ruleset.md +0 -0
  233. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/rules/ruleset_list.md +0 -0
  234. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/text/create_multiline_text.md +0 -0
  235. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/text/display_text.md +0 -0
  236. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/text/load_text.md +0 -0
  237. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/text/merge_texts.md +0 -0
  238. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/text/random_text.md +0 -0
  239. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/text/save_text.md +0 -0
  240. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/text/search_replace_text.md +0 -0
  241. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/three_d/load_gltf.md +0 -0
  242. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/tools/calculator_tool.md +0 -0
  243. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/tools/date_time_tool.md +0 -0
  244. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/tools/rag_tool.md +0 -0
  245. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/tools/tool_list.md +0 -0
  246. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/tools/web_scraper_tool.md +0 -0
  247. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/utils/note.md +0 -0
  248. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/video/display_video.md +0 -0
  249. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/video/load_video.md +0 -0
  250. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/docs/nodes/video/save_video.md +0 -0
  251. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/install.ps1 +0 -0
  252. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/install.sh +0 -0
  253. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/controlnet_aux_nodes_library/__init__.py +0 -0
  254. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/controlnet_aux_nodes_library/anyline_detector.py +0 -0
  255. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/__init__.py +0 -0
  256. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/__init__.py +0 -0
  257. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/misc/__init__.py +0 -0
  258. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/misc/tiling_image_processor.py +0 -0
  259. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/parameters/__init__.py +0 -0
  260. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/parameters/file_path_parameter.py +0 -0
  261. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/parameters/seed_parameter.py +0 -0
  262. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/utils/__init__.py +0 -0
  263. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/utils/huggingface_utils.py +0 -0
  264. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/utils/logging_utils.py +0 -0
  265. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/utils/math_utils.py +0 -0
  266. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/utils/option_utils.py +0 -0
  267. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/common/utils/ui_option_utils.py +0 -0
  268. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/__init__.py +0 -0
  269. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/__init__.py +0 -0
  270. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/controlnet/__init__.py +0 -0
  271. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/controlnet/flux_control_net_parameters.py +0 -0
  272. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/controlnet/union_one_flux_control_net_model.py +0 -0
  273. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/controlnet/union_two_flux_control_net_parameters.py +0 -0
  274. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/diptych_flux_fill_pipeline.py +0 -0
  275. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/diptych_flux_fill_pipeline_parameters.py +0 -0
  276. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/flux_fill_pipeline_parameters.py +0 -0
  277. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/flux_pipeline_memory_footprint.py +0 -0
  278. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/flux_pipeline_parameters.py +0 -0
  279. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/lora/__init__.py +0 -0
  280. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/lora/flux_lora_from_file.py +0 -0
  281. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/lora/flux_lora_parameters.py +0 -0
  282. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/lora/huggingface_flux_lora.py +0 -0
  283. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/lora/lumatales_flux_lora.py +0 -0
  284. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/lora/micro_landscape_on_phone_flux_lora.py +0 -0
  285. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/lora/miniature_world_flux_lora.py +0 -0
  286. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/diffusers_nodes_library/pipelines/flux/lora/river_z_normal_diptych_flux_fill_lora.py +0 -0
  287. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/opencv_nodes_library/__init__.py +0 -0
  288. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/opencv_nodes_library/canny_convert_image.py +0 -0
  289. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/pillow_nodes_library/__init__.py +0 -0
  290. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/pillow_nodes_library/gaussian_blur_image.py +0 -0
  291. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/pillow_nodes_library/grayscale_convert_image.py +0 -0
  292. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/pillow_nodes_library/rescale_image.py +0 -0
  293. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/pillow_nodes_library/utils.py +0 -0
  294. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/spandrel_nodes_library/__init__.py +0 -0
  295. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/spandrel_nodes_library/tiling_span.py +0 -0
  296. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/spandrel_nodes_library/utils.py +0 -0
  297. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/transformers_nodes_library/__init__.py +0 -0
  298. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_advanced_media_library/transformers_nodes_library/depth_anything_for_depth_estimation.py +0 -0
  299. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/.python-version +0 -0
  300. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/__init__.py +0 -0
  301. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/agents/__init__.py +0 -0
  302. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/agents/agent.py +0 -0
  303. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/agents/griptape_nodes_agent.py +0 -0
  304. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/agents/library_style.json +0 -0
  305. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/audio/__init__.py +0 -0
  306. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/audio/audio_url_artifact.py +0 -0
  307. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/audio/library_style.json +0 -0
  308. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/audio/load_audio.py +0 -0
  309. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/audio/microphone.py +0 -0
  310. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/audio/transcribe_audio.py +0 -0
  311. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/__init__.py +0 -0
  312. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/base_driver.py +0 -0
  313. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/image/__init__.py +0 -0
  314. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/image/base_image_driver.py +0 -0
  315. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/image/griptape_cloud_image_driver.py +0 -0
  316. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/image/grok_image_driver.py +0 -0
  317. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/image/library_style.json +0 -0
  318. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/image/openai_image_driver.py +0 -0
  319. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/library_style.json +0 -0
  320. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/__init__.py +0 -0
  321. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/amazon_bedrock_prompt.py +0 -0
  322. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/anthropic_prompt.py +0 -0
  323. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/base_prompt.py +0 -0
  324. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/cohere_prompt.py +0 -0
  325. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/griptape_cloud_prompt.py +0 -0
  326. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/grok_prompt.py +0 -0
  327. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/library_style.json +0 -0
  328. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/ollama_prompt_driver.py +0 -0
  329. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/prompt/openai_prompt.py +0 -0
  330. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/web_search/__init__.py +0 -0
  331. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/config/web_search/web_search_drivers.py +0 -0
  332. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/convert/__init__.py +0 -0
  333. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/convert/agent_to_tool.py +0 -0
  334. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/convert/library_style.json +0 -0
  335. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/convert/to_bool.py +0 -0
  336. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/convert/to_dict.py +0 -0
  337. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/convert/to_float.py +0 -0
  338. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/convert/to_int.py +0 -0
  339. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/convert/to_text.py +0 -0
  340. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/__init__.py +0 -0
  341. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/create_dict.py +0 -0
  342. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/display_dict.py +0 -0
  343. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/key_value_pair.py +0 -0
  344. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/library_style.json +0 -0
  345. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/load_dict.py +0 -0
  346. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/merge_dict.py +0 -0
  347. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/merge_key_value_pair.py +0 -0
  348. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/dict/save_dict.py +0 -0
  349. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/execution/__init__.py +0 -0
  350. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/execution/compare_numbers.py +0 -0
  351. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/execution/compare_strings.py +0 -0
  352. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/execution/if_else.py +0 -0
  353. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/execution/library_style.json +0 -0
  354. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/execution/reroute.py +0 -0
  355. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/execution/select_output.py +0 -0
  356. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/__init__.py +0 -0
  357. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/compare_images.py +0 -0
  358. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/create_image.py +0 -0
  359. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/describe_image.py +0 -0
  360. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/display_image.py +0 -0
  361. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/library_style.json +0 -0
  362. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/load_image.py +0 -0
  363. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/save_image.py +0 -0
  364. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/image/webcam.py +0 -0
  365. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/misc/__init__.py +0 -0
  366. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/misc/api_key_check.py +0 -0
  367. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/note.py +0 -0
  368. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/number/__init__.py +0 -0
  369. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/number/create_float.py +0 -0
  370. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/number/create_int.py +0 -0
  371. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/number/display_float.py +0 -0
  372. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/number/display_int.py +0 -0
  373. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/number/library_style.json +0 -0
  374. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/rules/__init__.py +0 -0
  375. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/rules/create_ruleset.py +0 -0
  376. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/rules/library_style.json +0 -0
  377. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/rules/ruleset_list.py +0 -0
  378. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/__init__.py +0 -0
  379. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/create_multiline_text.py +0 -0
  380. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/display_text.py +0 -0
  381. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/library_style.json +0 -0
  382. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/list_texts.py +0 -0
  383. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/merge_texts.py +0 -0
  384. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/random_text.py +0 -0
  385. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/save_text.py +0 -0
  386. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/text/search_replace_text.py +0 -0
  387. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/three_d/__init__.py +0 -0
  388. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/three_d/gltf_artifact.py +0 -0
  389. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/three_d/library_style.json +0 -0
  390. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/three_d/load_gltf.py +0 -0
  391. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/__init__.py +0 -0
  392. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/audio_transcription_tool.py +0 -0
  393. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/base_tool.py +0 -0
  394. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/calculator_tool.py +0 -0
  395. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/date_time_tool.py +0 -0
  396. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/extraction_tool.py +0 -0
  397. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/file_manager_tool.py +0 -0
  398. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/library_style.json +0 -0
  399. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/prompt_summary_tool.py +0 -0
  400. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/rag_tool.py +0 -0
  401. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/tool_list.py +0 -0
  402. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/vector_store_tool.py +0 -0
  403. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/web_scraper_tool.py +0 -0
  404. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/tools/web_search_tool.py +0 -0
  405. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/__init__.py +0 -0
  406. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/anthropic_utils.py +0 -0
  407. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/audio_utils.py +0 -0
  408. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/error_utils.py +0 -0
  409. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/gltf_utils.py +0 -0
  410. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/image_utils.py +0 -0
  411. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/library_style.json +0 -0
  412. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/utilities.py +0 -0
  413. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/utils/video_utils.py +0 -0
  414. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/video/__init__.py +0 -0
  415. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/video/display_video.py +0 -0
  416. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/video/load_video.py +0 -0
  417. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/video/save_video.py +0 -0
  418. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/video/video_url_artifact.py +0 -0
  419. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/workflows/__init__.py +0 -0
  420. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/workflows/end_flow.py +0 -0
  421. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/workflows/library_style.json +0 -0
  422. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/workflows/published_workflow.py +0 -0
  423. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/griptape_nodes_library/workflows/start_flow.py +0 -0
  424. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/tests/__init__.py +0 -0
  425. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/tests/integration/__init__.py +0 -0
  426. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/tests/unit/__init__.py +0 -0
  427. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/tests/unit/drivers/__init__.py +0 -0
  428. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/tests/unit/drivers/test_griptape_cloud_image_generation_driver.py +0 -0
  429. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/workflows/__init__.py +0 -0
  430. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/workflows/templates/__init__.py +0 -0
  431. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/workflows/templates/prompt_an_image.py +0 -0
  432. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/workflows/templates/thumbnail_compare_prompts.webp +0 -0
  433. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/workflows/templates/thumbnail_coordinating_agents.webp +0 -0
  434. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/workflows/templates/thumbnail_photography_team.webp +0 -0
  435. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/libraries/griptape_nodes_library/workflows/templates/thumbnail_prompt_an_image.webp +0 -0
  436. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/__init__.py +0 -0
  437. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/app/.python-version +0 -0
  438. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/app/app.py +0 -0
  439. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/app/nodes_api_socket_manager.py +0 -0
  440. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/app/watch.py +0 -0
  441. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/bootstrap/__init__.py +0 -0
  442. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/bootstrap/post_build_install_script.sh +0 -0
  443. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/bootstrap/pre_build_install_script.sh +0 -0
  444. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/bootstrap/register_libraries_script.py +0 -0
  445. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/bootstrap/structure_config.yaml +0 -0
  446. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/drivers/__init__.py +0 -0
  447. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/drivers/storage/__init__.py +0 -0
  448. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/drivers/storage/base_storage_driver.py +0 -0
  449. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/drivers/storage/griptape_cloud_storage_driver.py +0 -0
  450. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/drivers/storage/local_storage_driver.py +0 -0
  451. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/exe_types/__init__.py +0 -0
  452. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/exe_types/connections.py +0 -0
  453. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/exe_types/flow.py +0 -0
  454. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/exe_types/node_types.py +0 -0
  455. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/exe_types/type_validator.py +0 -0
  456. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/machines/__init__.py +0 -0
  457. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/machines/control_flow.py +0 -0
  458. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/machines/fsm.py +0 -0
  459. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/node_library/__init__.py +0 -0
  460. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/node_library/workflow_registry.py +0 -0
  461. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/py.typed +0 -0
  462. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/__init__.py +0 -0
  463. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/__init__.py +0 -0
  464. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/app_events.py +0 -0
  465. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/arbitrary_python_events.py +0 -0
  466. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/base_events.py +0 -0
  467. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/config_events.py +0 -0
  468. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/connection_events.py +0 -0
  469. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/context_events.py +0 -0
  470. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/execution_events.py +0 -0
  471. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/flow_events.py +0 -0
  472. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/generate_request_payload_schemas.py +0 -0
  473. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/library_events.py +0 -0
  474. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/logger_events.py +0 -0
  475. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/object_events.py +0 -0
  476. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/os_events.py +0 -0
  477. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/payload_registry.py +0 -0
  478. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/secrets_events.py +0 -0
  479. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/static_file_events.py +0 -0
  480. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/validation_events.py +0 -0
  481. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/events/workflow_events.py +0 -0
  482. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/griptape_nodes.py +0 -0
  483. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/managers/__init__.py +0 -0
  484. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/managers/arbitrary_code_exec_manager.py +0 -0
  485. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/managers/config_manager.py +0 -0
  486. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/managers/context_manager.py +0 -0
  487. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/managers/event_manager.py +0 -0
  488. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/managers/library_manager.py +0 -0
  489. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/managers/operation_manager.py +0 -0
  490. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/managers/os_manager.py +0 -0
  491. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/managers/secrets_manager.py +0 -0
  492. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/managers/settings.py +0 -0
  493. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/managers/static_files_manager.py +0 -0
  494. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/retained_mode/retained_mode.py +0 -0
  495. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/traits/__init__.py +0 -0
  496. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/traits/add_param_button.py +0 -0
  497. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/traits/button.py +0 -0
  498. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/traits/clamp.py +0 -0
  499. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/traits/compare.py +0 -0
  500. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/traits/compare_images.py +0 -0
  501. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/traits/minmax.py +0 -0
  502. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/traits/options.py +0 -0
  503. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/traits/slider.py +0 -0
  504. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/traits/trait_registry.py +0 -0
  505. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/traits/traits.json +0 -0
  506. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/updater/__init__.py +0 -0
  507. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/updater/__main__.py +0 -0
  508. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/utils/__init__.py +0 -0
  509. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/utils/dict_utils.py +0 -0
  510. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/src/griptape_nodes/utils/metaclasses.py +0 -0
  511. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/tests/__init__.py +0 -0
  512. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/tests/integration/__init__.py +0 -0
  513. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/tests/integration/conftest.py +0 -0
  514. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/tests/integration/retained_mode/__init__.py +0 -0
  515. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/tests/integration/retained_mode/events/__init__.py +0 -0
  516. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/tests/integration/retained_mode/events/test_config_events.py +0 -0
  517. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/tests/integration/retained_mode/events/test_node_events.py +0 -0
  518. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/tests/integration/retained_mode/events/test_secret_events.py +0 -0
  519. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/tests/unit/__init__.py +0 -0
  520. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/tests/unit/exe_types/__init__.py +0 -0
  521. {griptape_nodes-0.35.0 → griptape_nodes-0.36.0}/tests/unit/exe_types/test_core_types.py +0 -0
@@ -0,0 +1,2 @@
1
+ GT_CLOUD_API_KEY=<your_api_key>
2
+ GTN_USE_WEBSOCKETS=false
@@ -0,0 +1,37 @@
1
+ name: Claude Code
2
+
3
+ on:
4
+ issue_comment:
5
+ types: [created]
6
+ pull_request_review_comment:
7
+ types: [created]
8
+ issues:
9
+ types: [opened, assigned]
10
+ pull_request_review:
11
+ types: [submitted]
12
+
13
+ jobs:
14
+ claude:
15
+ if: |
16
+ (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
17
+ (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
18
+ (github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
19
+ (github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
20
+ runs-on: ubuntu-latest
21
+ permissions:
22
+ contents: read
23
+ pull-requests: read
24
+ issues: read
25
+ id-token: write
26
+ steps:
27
+ - name: Checkout repository
28
+ uses: actions/checkout@v4
29
+ with:
30
+ fetch-depth: 1
31
+
32
+ - name: Run Claude Code
33
+ id: claude
34
+ uses: anthropics/claude-code-action@beta
35
+ with:
36
+ anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
37
+
@@ -0,0 +1,52 @@
1
+ name: Workflow Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main" ]
6
+ pull_request:
7
+ branches: [ "main" ]
8
+ merge_group:
9
+ types: [checks_requested]
10
+
11
+ concurrency:
12
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
13
+ cancel-in-progress: true
14
+
15
+ jobs:
16
+ test-ubuntu:
17
+ runs-on: ubuntu-latest
18
+ env:
19
+ GT_CLOUD_API_KEY: ${{ secrets.GT_CLOUD_API_KEY }}
20
+ strategy:
21
+ fail-fast: false
22
+ matrix:
23
+ python-version: ["3.12"]
24
+ steps:
25
+ - name: Checkout actions
26
+ uses: actions/checkout@v4
27
+ - name: Init environment
28
+ uses: ./.github/actions/init-environment
29
+ - name: Run workflow tests
30
+ run: make test/workflows
31
+ test-windows:
32
+ runs-on: windows-latest
33
+ env:
34
+ GT_CLOUD_API_KEY: ${{ secrets.GT_CLOUD_API_KEY }}
35
+ strategy:
36
+ fail-fast: false
37
+ matrix:
38
+ python-version: ["3.12"]
39
+ defaults:
40
+ run:
41
+ shell: bash
42
+ steps:
43
+ - name: Checkout actions
44
+ uses: actions/checkout@v4
45
+ - name: Init environment
46
+ uses: ./.github/actions/init-environment
47
+ - name: Run workflow tests
48
+ # TODO: make test/unit fails with the following error:
49
+ # process_begin: CreateProcess(NULL, uv run pytest -n auto tests/unit, ...) failed.
50
+ # make (e=2): The system cannot find the file specified.
51
+ # make: *** [Makefile:24: test/unit] Error 2
52
+ run: uv run pytest -s tests/workflows
@@ -65,10 +65,10 @@ When developing, you typically want to run the engine using your local source co
65
65
  uv run gtn init
66
66
  ```
67
67
 
68
- - **Run Tests:**
68
+ - **Run Unit Tests:**
69
69
 
70
70
  ```shell
71
- uv run pytest
71
+ uv run pytest test/unit
72
72
  ```
73
73
 
74
74
  Or use the Makefile shortcut:
@@ -77,6 +77,9 @@ When developing, you typically want to run the engine using your local source co
77
77
  make test/unit
78
78
  ```
79
79
 
80
+ > Other test targets (e.g. `test/integration` and `test/workflow`) require
81
+ > a `.env` in the repo root with all keys found in `.env.example` to run.
82
+
80
83
  - **Check Code (Linting & Formatting):**
81
84
 
82
85
  ```shell
@@ -100,7 +100,7 @@ check/spell:
100
100
  @uv run typos
101
101
 
102
102
  .PHONY: test ## Run all tests.
103
- test: test/unit test/integration
103
+ test: test/unit test/integration test/workflows
104
104
 
105
105
  .PHONY: test/unit
106
106
  test/unit: ## Run unit tests.
@@ -112,6 +112,10 @@ test/integration: ## Run integration tests.
112
112
  @uv run pytest -n auto tests/integration
113
113
  @uv run pytest -n auto libraries/griptape_nodes_library/tests/integration
114
114
 
115
+ .PHONY: test/workflows
116
+ test/workflows: ## Run workflow tests.
117
+ @uv run pytest -s tests/workflows
118
+
115
119
  .PHONY: docs
116
120
  docs: ## Build documentation.
117
121
  @uv run python -m mkdocs build --clean --strict
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: griptape-nodes
3
- Version: 0.35.0
3
+ Version: 0.36.0
4
4
  Summary: Add your description here
5
5
  License-File: LICENSE
6
6
  Requires-Python: ~=3.12
@@ -1,6 +1,6 @@
1
- # Griptape Nodes Command Line Documentation
1
+ # Griptape Nodes Command Line Interface (CLI)
2
2
 
3
- This page describes what can be done in the terminal (or PowerShell) regarding the `griptape-nodes` (or `gtn`) command. For those who may be new to command-line interfaces (CLIs), a CLI is a text-based way to interact with software by typing commands instead of clicking buttons in a UI.
3
+ If you're new to command-line interfaces (CLIs), a CLI is a text-based way to interact with software by typing commands instead of clicking buttons in a UI. Griptape Nodes provides a CLI with the the `griptape-nodes` (or `gtn`) command. This enables you to interact with Griptape Nodes in the terminal (and via PowerShell).
4
4
 
5
5
  `griptape-nodes` (or its shorthand alias `gtn`) is a command-line tool specifically designed to launch, update, and manage the Griptape Nodes Engine installation on your computer. This tool handles tasks like initializing your workspace, updating the software, managing configuration settings, and starting the engine that powers the web-based Griptape Nodes editor. The actual creation and editing of workflows happens in the web interface that opens when you run the engine.
6
6
 
@@ -75,7 +75,7 @@ The most important area to focus on initially is the left panel, the node librar
75
75
 
76
76
  ## Adding Nodes to the Workspace
77
77
 
78
- There are three interactive methods to creating nodes (and even more in [Retained Mode](../../reference/retained_mode.md))
78
+ There are three interactive methods to creating nodes (and even more in [Retained Mode](../../retained_mode.md))
79
79
 
80
80
  <div style="display: flex; justify-content: space-between; gap: 20px; margin-bottom: 30px;">
81
81
  <div style="flex: 1;">
@@ -1,4 +1,4 @@
1
- # Lesson Overview
1
+ # Tutorial Overview
2
2
 
3
3
  Welcome to your journey with Griptape Nodes! This learning path will guide you through everything from basic setup to creating complex, coordinated workflows with multiple agents.
4
4
 
@@ -1,10 +1,10 @@
1
- # Griptape Nodes Glossary for Artists
1
+ # Griptape Nodes Glossary for Artists & Creators
2
2
 
3
3
  ## What is Griptape Nodes?
4
4
 
5
- Griptape Nodes is a creative toolkit (built with Python) that helps artists and creators build AI-powered projects without needing deep technical expertise. Think of it like a set of building blocks that you can connect together to create art, generate images, process text, or even build other workhorse applications.
5
+ Griptape Nodes is a toolkit that enables artists and creators to build AI-powered projects without the need for deep technical expertise. You can think of Griptape Nodes as a set of building blocks that you can connect together to create art, generate images, process text, or even build other workflow-centric applications.
6
6
 
7
- ### The Big Ones in the Griptape Nodes world
7
+ ### Core Griptape Nodes Concepts
8
8
 
9
9
  - **Workflow**: A document containing nodes, connections, and values. While technically a Workflow is also a Script, avoid calling them Scripts, so that the term Script can communicate a clearly different thing than the term Workflow. This is also what we call the saved file.
10
10
 
@@ -12,5 +12,5 @@ With Griptape Nodes, you can connect visual building blocks that represent powe
12
12
 
13
13
  Whether you're a creative who wants to explore new AI-powered possibilities, a knowledge worker looking to automate tedious tasks, or a curious mind wanting to experiment with cutting-edge technology, Griptape Nodes opens doors you might have thought were locked to all but professional programmers.
14
14
 
15
- And for those who want to go deeper? A little Python knowledge goes a long way here. Our [simple scripting interface](reference/retained_mode.md) lets you customize and extend what's possible, turning your big ideas into working solutions without requiring an engineering degree.
15
+ And for those who want to go deeper? A little Python knowledge goes a long way here. Our [simple scripting interface](retained_mode.md) lets you customize and extend what's possible, turning your big ideas into working solutions without requiring an engineering degree.
16
16
  Griptape Nodes is where your imagination meets AI capability. Let's build something amazing together.
@@ -69,7 +69,7 @@ After typing and running `griptape-nodes` or `gtn` in the terminal *for the firs
69
69
 
70
70
  ## 3. Configuration
71
71
 
72
- **First**, you'll be prompted to set your *workspace directory*. Your workspace directory is where the Griptape Nodes engine will save [project files](./reference/glossary.md#project-files), and [generated assets](./reference/glossary.md#generated-assets). It will also contain a [.env](./reference/glossary.md#.env) for your Griptape Nodes [secret keys](./reference/glossary.md#secret-keys).
72
+ **First**, you'll be prompted to set your *workspace directory*. Your workspace directory is where the Griptape Nodes engine will save [project files](./glossary.md#project-files), and [generated assets](./glossary.md#generated-assets). It will also contain a [.env](./glossary.md#.env) for your Griptape Nodes [secret keys](./glossary.md#secret-keys).
73
73
 
74
74
  ```
75
75
  ╭───────────────────────────────────────────────────────────────────╮
@@ -0,0 +1,58 @@
1
+ # Groq Prompt Driver
2
+
3
+ The Groq Prompt Driver node allows you to configure and utilize Groq's language models within the Griptape Nodes framework. This node provides access to Groq's high-performance inference engine and various language models.
4
+
5
+ ## Configuration
6
+
7
+ ### API Key
8
+
9
+ To use the Groq Prompt Driver, you need to provide a Groq API key. You can obtain an API key from the [Groq Console](https://console.groq.com/keys).
10
+
11
+ ### Available Models
12
+
13
+ The Groq Prompt Driver supports the following models:
14
+
15
+ #### Production Models
16
+
17
+ - [gemma2-9b-it](https://huggingface.co/google/gemma-2-9b-it) - Google's Gemma 2 9B model
18
+ - [meta-llama/llama-guard-4-12b](https://console.groq.com/docs/model/llama-guard-4-12b) - Meta's Llama Guard model for content moderation
19
+ - [llama-3.3-70b-versatile](https://console.groq.com/docs/model/llama-3.3-70b-versatile) - Meta's versatile 70B parameter model
20
+ - [llama-3.1-8b-instant](https://console.groq.com/docs/model/llama-3.1-8b-instant) - Meta's fast 8B parameter model
21
+ - [llama3-70b-8192](https://console.groq.com/docs/model/llama3-70b-8192) - Meta's 70B parameter model with 8K context
22
+ - [llama3-8b-8192](https://console.groq.com/docs/model/llama3-8b-8192) - Meta's 8B parameter model with 8K context
23
+ - [meta-llama/llama-4-scout-17b-16e-instruct](https://console.groq.com/docs/model/llama-4-scout-17b-16e-instruct) - Meta's vision model with 16K context, compatible with the Image Description node
24
+ - [meta-llama/llama-4-maverick-17b-128e-instruct](https://console.groq.com/docs/model/llama-4-maverick-17b-128e-instruct) - Meta's vision model with 128K context, compatible with the Image Description node
25
+
26
+ #### Preview Models
27
+
28
+ - [allam-2-7b](https://ai.azure.com/explore/models/ALLaM-2-7b-instruct/version/2/registry/azureml) - Saudi Data and AI Authority's 7B parameter model
29
+ - [deepseek-r1-distill-llama-70b](https://console.groq.com/docs/model/deepseek-r1-distill-llama-70b) - DeepSeek's distilled 70B parameter model
30
+
31
+ ### Parameters
32
+
33
+ The Groq Prompt Driver supports the following configuration parameters:
34
+
35
+ | Parameter | Type | Default | Description |
36
+ | ------------ | ------- | ------------ | ---------------------------------------------------- |
37
+ | model | string | gemma2-9b-it | The Groq model to use for text generation |
38
+ | temperature | float | 0.7 | Controls randomness in the output (0.0 to 1.0) |
39
+ | top_p | float | 0.9 | Controls diversity via nucleus sampling (0.0 to 1.0) |
40
+ | max_tokens | integer | 2048 | Maximum number of tokens to generate |
41
+ | stream | boolean | false | Whether to stream the response |
42
+ | max_attempts | integer | 3 | Maximum number of retry attempts for failed requests |
43
+
44
+ ## Usage
45
+
46
+ 1. Add the Groq Prompt Driver node to your workflow
47
+ 1. Make sure to get an API key here: [Groq API Keys](https://console.groq.com/keys)
48
+ 1. Configure your `GROQ_API_KEY` in the Griptape Configuration settings
49
+ 1. Select your desired model from the available options
50
+ 1. Adjust the generation parameters as needed
51
+ 1. Connect the node to other nodes in your workflow
52
+
53
+ ## Notes
54
+
55
+ - The Groq Prompt Driver uses the OpenAI-compatible API endpoint at `https://api.groq.com/openai/v1`
56
+ - Preview models are intended for evaluation purposes and may be discontinued at short notice
57
+ - Production models are recommended for production environments
58
+ - The node automatically handles API key validation before workflow execution
@@ -1,6 +1,6 @@
1
- # Griptape Nodes Scripting
1
+ # Griptape Nodes Retained Mode Scripting
2
2
 
3
- "Retained Mode" is a Python scripting interface to interact with Griptape Nodes. These methods allow users to create, modify, and manage nodes, parameters, connections, and flows through a simplified Python API.
3
+ "Retained Mode" provides a Python scripting interface for interacting with Griptape Nodes. This allows users to create, modify, and manage nodes, parameters, connections, and flows through a simplified Python API.
4
4
 
5
5
  > **Note:** The actual import command for RetainedMode is:
6
6
  >
@@ -2,7 +2,7 @@
2
2
  set -e
3
3
 
4
4
  if [ "$GTN_INIT" = "true" ]; then
5
- /griptape-nodes/.venv/bin/griptape-nodes init
5
+ /griptape-nodes/.venv/bin/griptape-nodes init --no-interactive
6
6
  fi
7
7
 
8
8
  exec "$@"
@@ -2,7 +2,7 @@ import logging
2
2
  from abc import ABC, abstractmethod
3
3
 
4
4
  from diffusers_nodes_library.common.utils.option_utils import update_option_choices
5
- from griptape_nodes.exe_types.core_types import Parameter
5
+ from griptape_nodes.exe_types.core_types import Parameter, ParameterMessage
6
6
  from griptape_nodes.exe_types.node_types import BaseNode
7
7
  from griptape_nodes.traits.options import Options
8
8
 
@@ -40,6 +40,18 @@ class HuggingFaceModelParameter(ABC):
40
40
  def add_input_parameters(self) -> None:
41
41
  self._repo_revisions = self.fetch_repo_revisions()
42
42
  choices = self.get_choices()
43
+
44
+ if not choices:
45
+ self._node.add_node_element(
46
+ ParameterMessage(
47
+ name="huggingface_repo_parameter_message",
48
+ title="Huggingface Model Download Required",
49
+ variant="warning",
50
+ value=self.get_help_message(),
51
+ )
52
+ )
53
+ return
54
+
43
55
  self._node.add_parameter(
44
56
  Parameter(
45
57
  name=self._parameter_name,
@@ -73,12 +85,31 @@ class HuggingFaceModelParameter(ABC):
73
85
  def get_repo_revision(self) -> tuple[str, str]:
74
86
  value = self._node.get_parameter_value(self._parameter_name)
75
87
  if value is None:
76
- raise RuntimeError(self.get_help_message())
88
+ msg = "Model download required!"
89
+ raise RuntimeError(msg)
77
90
  base_repo_id, base_revision = self._key_to_repo_revision(value)
78
91
  return base_repo_id, base_revision
79
92
 
93
+ def get_help_message(self) -> str:
94
+ download_commands = "\n".join([f" - `{cmd}`" for cmd in self.get_download_commands()])
95
+ return (
96
+ "📥 How to download the models:\n"
97
+ "1. Setup huggingface-cli as per our docs: https://docs.griptapenodes.com/en/stable/how_to/installs/hugging_face/ \n"
98
+ "2. Download at least one model:\n"
99
+ f"{download_commands}\n"
100
+ "3. Save, close, then open the again workflow. (❌ Do not just reload the page)\n"
101
+ "\n"
102
+ "✅ If successful, you should see a dropdown with the available models.\n"
103
+ "❌ If not successful because download fails then check huggingface-cli docs.\n"
104
+ "❌ If not successful for some other reason then reach out to us on Discord or GitHub.\n"
105
+ "\n"
106
+ "Note: Currently this is the only supported method for downloading models. \n"
107
+ "Hopefully this gets more intuitive (and customizable) soon!\n"
108
+ "- from ✊📼🍜 with ❤️\n"
109
+ )
110
+
80
111
  @abstractmethod
81
112
  def fetch_repo_revisions(self) -> list[tuple[str, str]]: ...
82
113
 
83
114
  @abstractmethod
84
- def get_help_message(self) -> str: ...
115
+ def get_download_commands(self) -> list[str]: ...
@@ -0,0 +1,24 @@
1
+ import logging
2
+
3
+ from diffusers_nodes_library.common.parameters.huggingface_model_parameter import HuggingFaceModelParameter
4
+ from diffusers_nodes_library.common.utils.huggingface_utils import list_repo_revisions_with_file_in_cache
5
+ from griptape_nodes.exe_types.node_types import BaseNode # type: ignore[reportMissingImports]
6
+
7
+ logger = logging.getLogger("diffusers_nodes_library")
8
+
9
+
10
+ class HuggingFaceRepoFileParameter(HuggingFaceModelParameter):
11
+ def __init__(self, node: BaseNode, repo_files: list[tuple[str, str]], parameter_name: str = "model"):
12
+ super().__init__(node, parameter_name)
13
+ self._repo_files = repo_files
14
+ self.refresh_parameters()
15
+
16
+ def fetch_repo_revisions(self) -> list[tuple[str, str]]:
17
+ return [
18
+ repo_revision
19
+ for (repo, file) in self._repo_files
20
+ for repo_revision in list_repo_revisions_with_file_in_cache(repo, file)
21
+ ]
22
+
23
+ def get_download_commands(self) -> list[str]:
24
+ return [f'huggingface-cli download "{repo}" "{file}"' for (repo, file) in self._repo_files]
@@ -0,0 +1,20 @@
1
+ import logging
2
+
3
+ from diffusers_nodes_library.common.parameters.huggingface_model_parameter import HuggingFaceModelParameter
4
+ from diffusers_nodes_library.common.utils.huggingface_utils import list_repo_revisions_in_cache
5
+ from griptape_nodes.exe_types.node_types import BaseNode # type: ignore[reportMissingImports]
6
+
7
+ logger = logging.getLogger("diffusers_nodes_library")
8
+
9
+
10
+ class HuggingFaceRepoParameter(HuggingFaceModelParameter):
11
+ def __init__(self, node: BaseNode, repo_ids: list[str], parameter_name: str = "model"):
12
+ super().__init__(node, parameter_name)
13
+ self._repo_ids = repo_ids
14
+ self.refresh_parameters()
15
+
16
+ def fetch_repo_revisions(self) -> list[tuple[str, str]]:
17
+ return [repo_revision for repo in self._repo_ids for repo_revision in list_repo_revisions_in_cache(repo)]
18
+
19
+ def get_download_commands(self) -> list[str]:
20
+ return [f'huggingface-cli download "{repo}"' for repo in self._repo_ids]
@@ -49,3 +49,6 @@ class LogParameter:
49
49
 
50
50
  def append_to_logs(self, text: str) -> None:
51
51
  self._node.append_value_to_parameter("logs", text)
52
+
53
+ def clear_logs(self) -> None:
54
+ self._node.publish_update_to_parameter("logs", "")
@@ -22,7 +22,7 @@ def to_human_readable_size(size_in_bytes: float) -> str:
22
22
 
23
23
  def human_readable_memory_footprint(model: torch.nn.Module) -> str:
24
24
  """Return a human-readable memory footprint."""
25
- return to_human_readable_size(model.get_memory_footprint())
25
+ return to_human_readable_size(model.get_memory_footprint()) # type: ignore[reportAttributeAccessIssue]
26
26
 
27
27
 
28
28
  def print_pipeline_memory_footprint(pipe: diffusers.DiffusionPipeline, component_names: list[str]) -> None:
@@ -84,7 +84,10 @@ class UnionFluxControlNetPipeline(ControlNode):
84
84
  with self.log_params.append_profile_to_logs("Loading model"), self.log_params.append_logs_to_logs(logger):
85
85
  optimize_flux_pipeline_memory_footprint(pipe)
86
86
 
87
- with self.log_params.append_profile_to_logs("Configuring flux loras"):
87
+ with (
88
+ self.log_params.append_profile_to_logs("Configuring flux loras"),
89
+ self.log_params.append_logs_to_logs(logger),
90
+ ):
88
91
  self.flux_lora_params.configure_loras(pipe)
89
92
 
90
93
  num_inference_steps = self.flux_params.get_num_inference_steps()
@@ -80,7 +80,10 @@ class UnionProFluxControlNetPipeline(ControlNode):
80
80
  with self.log_params.append_profile_to_logs("Loading model"), self.log_params.append_logs_to_logs(logger):
81
81
  optimize_flux_pipeline_memory_footprint(pipe)
82
82
 
83
- with self.log_params.append_profile_to_logs("Configuring flux loras"):
83
+ with (
84
+ self.log_params.append_profile_to_logs("Configuring flux loras"),
85
+ self.log_params.append_logs_to_logs(logger),
86
+ ):
84
87
  self.flux_lora_params.configure_loras(pipe)
85
88
 
86
89
  num_inference_steps = self.flux_params.get_num_inference_steps()
@@ -80,7 +80,10 @@ class UnionProTwoFluxControlNetPipeline(ControlNode):
80
80
  with self.log_params.append_profile_to_logs("Loading model"), self.log_params.append_logs_to_logs(logger):
81
81
  optimize_flux_pipeline_memory_footprint(pipe)
82
82
 
83
- with self.log_params.append_profile_to_logs("Configuring flux loras"):
83
+ with (
84
+ self.log_params.append_profile_to_logs("Configuring flux loras"),
85
+ self.log_params.append_logs_to_logs(logger),
86
+ ):
84
87
  self.flux_lora_params.configure_loras(pipe)
85
88
 
86
89
  num_inference_steps = self.flux_params.get_num_inference_steps()
@@ -74,7 +74,10 @@ class FluxFillPipeline(ControlNode):
74
74
  with self.log_params.append_profile_to_logs("Loading model"), self.log_params.append_logs_to_logs(logger):
75
75
  optimize_flux_pipeline_memory_footprint(pipe)
76
76
 
77
- with self.log_params.append_profile_to_logs("Configuring flux loras"):
77
+ with (
78
+ self.log_params.append_profile_to_logs("Configuring flux loras"),
79
+ self.log_params.append_logs_to_logs(logger),
80
+ ):
78
81
  self.loras_params.configure_loras(pipe)
79
82
 
80
83
  num_inference_steps = self.pipe_params.get_num_inference_steps()
@@ -62,7 +62,7 @@ class FluxLorasParameter:
62
62
  lora_path = item["path"]
63
63
  msg = f"Loading lora weights: {lora_path}"
64
64
  logger.info(msg)
65
- state_dict = safetensors.torch.load_file(lora_path)
65
+ state_dict = safetensors.torch.load_file(lora_path) # type: ignore[reportAttributeAccessIssue]
66
66
  pipe.load_lora_weights(state_dict, adapter_name=item["name"])
67
67
 
68
68
  if loras_to_load and get_best_device(quiet=True) == torch.device("cuda"):
@@ -63,7 +63,10 @@ class FluxPipeline(ControlNode):
63
63
  with self.log_params.append_profile_to_logs("Loading model"), self.log_params.append_logs_to_logs(logger):
64
64
  optimize_flux_pipeline_memory_footprint(pipe)
65
65
 
66
- with self.log_params.append_profile_to_logs("Configuring flux loras"):
66
+ with (
67
+ self.log_params.append_profile_to_logs("Configuring flux loras"),
68
+ self.log_params.append_logs_to_logs(logger),
69
+ ):
67
70
  self.loras_params.configure_loras(pipe)
68
71
 
69
72
  num_inference_steps = self.pipe_params.get_num_inference_steps()