Added
- `TrafilaturaWebScraperDriver.no_ssl` parameter to disable SSL verification. Defaults to `False`.
- `CsvExtractionEngine.format_header` parameter to format the header row.
- `PromptStack.from_artifact` factory method for creating a Prompt Stack with a user message from an Artifact.
- `OpenAiChatPromptDriver.parallel_tool_calls` parameter for toggling parallel tool calling. Defaults to `True`.
- `AssistantTask` for running Assistants in Structures.
- `GriptapeCloudAssistantDriver` for interacting with Griptape Cloud's Assistant API.
- `OpenAiAssistantDriver` for interacting with OpenAI's Assistant API.
- `GriptapeCloudToolTool` for running Griptape Cloud hosted Tools.
- `JsonLoader` for loading and parsing JSON files.
- `StructureVisualizer.build_node_id` field for customizing the node ID.
- Support for Python `3.13`.
Changed
- **BREAKING**: Removed `stringcase` and `docker` from core dependencies. `ComputerTool` will now install these on the fly.
- **BREAKING**: Renamed `BaseTask.State.EXECUTING` to `BaseTask.State.RUNNING`.
- **BREAKING**: Renamed `BaseTask.is_executing()` to `BaseTask.is_running()`.
- **BREAKING**: Renamed `Structure.is_executing()` to `Structure.is_running()`.
- **BREAKING**: Removed ability to pass bytes to `BaseFileLoader.fetch`.
- **BREAKING**: Updated `CsvExtractionEngine.format_row` to format rows as comma-separated values instead of newline-separated key-value pairs.
- **BREAKING**: Removed all `ImageQueryDriver`s, use `PromptDriver`s instead.
- **BREAKING**: Removed `ImageQueryTask`, use `PromptTask` instead.
- **BREAKING**: Updated `ImageQueryTool.image_query_driver` to `ImageQueryTool.prompt_driver`.
- **BREAKING**: Updated `numpy` to `~2.0.2` and `pandas` to `^2.2`.
- **BREAKING**: Renamed `StructureRunTask.driver` to `StructureRunTask.structure_run_driver`.
- **BREAKING**: Renamed `StructureRunTool.driver` to `StructureRunTool.structure_run_driver`.
- **BREAKING**: Moved the following Google Tools to the [Griptape Google Extension](https://github.com/griptape-ai/griptape-google):
- `GoogleCalendarTool`
- `GoogleDocsTool`
- `GoogleDriveTool`
- `GoogleGmailTool`
- **BREAKING**: Moved the following AWS Tools to the [Griptape AWS Extension](https://github.com/griptape-ai/griptape-aws):
- `AwsCliTool`
- `AwsIamTool`
- `AwsPricingTool`
- `AwsS3Tool`
- **BREAKING**: Moved the `OpenWeatherTool` to the [Griptape Open Weather Extension](https://github.com/griptape-ai/griptape-open-weather)
- **BREAKING**: Removed `GriptapeCloudKnowledgeBaseTool`. Use a RAG Engine with `GriptapeCloudVectorStoreDriver` instead.
- **BREAKING**: Removed redundant Engines, use their respective Drivers instead.
- Removed `ImageQueryEngine`, use `ImageQueryDriver`s instead.
- Removed `InpaintingImageGenerationEngine`, use `ImageGenerationDriver`s instead.
- Removed `OutpaintingImageGenerationEngine`, use `ImageGenerationDriver`s instead.
- Removed `VariationImageGenerationEngine`, use `ImageGenerationDriver`s instead.
- Removed `PromptImageGenerationEngine`, use `ImageGenerationDriver`s instead.
- Removed `ImageGenerationEngine`, use `ImageGenerationDriver`s instead.
- Removed `AudioTranscriptionEngine`, use `AudioTranscriptionDriver`s instead.
- Removed `TextToSpeechEngine`, use `TextToSpeechDriver`s instead.
- **BREAKING**: Tools that previously took Engines now take their respective Drivers.
- Updated `AudioTranscriptionTool.engine` to `AudioTranscriptionTool.audio_transcription_driver`.
- Updated `TextToSpeechTool.engine` to `TextToSpeechTool.text_to_speech_driver`.
- Updated `ImageQueryTool.image_query_engine` to `ImageQueryTool.image_query_driver`.
- Updated `InpaintingImageGenerationTool.engine` to `InpaintingImageGenerationTool.image_generation_driver`.
- Updated `OutpaintingImageGenerationTool.engine` to `OutpaintingImageGenerationTool.image_generation_driver`.
- Updated `VariationImageGenerationTool.engine` to `VariationImageGenerationTool.image_generation_driver`.
- Updated `PromptImageGenerationTool.engine` to `PromptImageGenerationTool.image_generation_driver`.
- **BREAKING**: Tasks that previously took Engines now take their respective Drivers.
- Updated `AudioTranscriptionTask.audio_transcription_engine` to `AudioTranscriptionTask.audio_transcription_driver`.
- Updated `TextToSpeechTask.text_to_speech_engine` to `TextToSpeechTask.text_to_speech_driver`.
- Updated `ImageQueryTask.image_query_engine` to `ImageQueryTask.image_query_driver`.
- Updated `InpaintingImageGenerationTask.image_query_engine` to `InpaintingImageGenerationTask.image_generation_driver`.
- Updated `OutpaintingImageGenerationTask.image_query_engine` to `OutpaintingImageGenerationTask.image_generation_driver`.
- Updated `VariationImageGenerationTask.image_query_engine` to `VariationImageGenerationTask.image_generation_driver`.
- Updated `PromptImageGenerationTask.image_query_engine` to `PromptImageGenerationTask.image_generation_driver`.
- **BREAKING**: Renamed`BaseImageGenerationTask.all_negative_rulesets` to `BaseImageGenerationTask.negative_rulesets`.
- File Manager Driver path logic has been improved.
- `LocalFileManagerDriver.workdir` can now be a relative path or absolute path. Relative paths will be prefixed with the current working directory.
- `AmazonS3FileManagerDriver.workdir` can now be a relative path or absolute path. Relative paths will be prefixed with `/`.
- `GriptapeCloudFileManagerDriver.workdir` can now be a relative path or absolute path. Relative paths will be prefixed with `/`.
- Paths passed to `LocalFileManagerDriver` can now be relative or absolute. Absolute paths will be used as-is.
- `BasePromptDriver.run` can now accept an Artifact in addition to a Prompt Stack.
- Improved `CsvExtractionEngine` prompts.
- Tweaked `PromptResponseRagModule` system prompt to yield answers more consistently.
- Removed `azure-core` and `azure-storage-blob` dependencies.
- `GriptapeCloudFileManagerDriver` no longer requires `drivers-file-manager-griptape-cloud` extra.
- `TrafilaturaWebScraperDriver` no longer sets `no_ssl` to `True` by default.
- `AmazonBedrockPromptDriver` not working without setting `max_tokens`.
- `BaseImageGenerationTask` no longer prevents setting `negative_rulesets` _and_ `negative_rules` at the same time.
- `StructureVisualizer` now renders `StructureRunTask`s with a `LocalStructureRunDriver`.
- `StructureVisualizer` to titlecase the node IDs to avoid Mermaid.js reserved keywords.
- Updated Tokenizer model-to-max tokens lookup logic for more flexible matching.
- `BaseTool` now logs Tool activity exceptions after catching them.
- `BaseTool` now deep copies activity params.
Fixed
- Use of deprecated `pkg_resources` in `BaseTool`.
- Error when serializing `JsonArtifact`s.
- `GriptapeCloudVectorStoreDriver` not pulling `api_key` from `GT_CLOUD_API_KEY` environment variable.
- `MarqoVectorStoreDriver.query` failing when `include_metadata` is `True`.
- `with_contextvars` not properly wrapping functions in some cases.
- Crash when calling `ToolkitTask.run()` directly.
- `activity` decorator overwriting injected kwargs with default values as `None`.
- Multiple calls to `RuleMixin.rulesets` resulting in duplicate Rulesets.
- `BaseTool` incorrectly checking for empty values.