diff --git a/Examples/converse/.gitignore b/Examples/converse/.gitignore new file mode 100644 index 00000000..0023a534 --- /dev/null +++ b/Examples/converse/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc diff --git a/Examples/converse/Package.swift b/Examples/converse/Package.swift new file mode 100644 index 00000000..d1226877 --- /dev/null +++ b/Examples/converse/Package.swift @@ -0,0 +1,27 @@ +// swift-tools-version: 6.1 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "Converse", + platforms: [.macOS(.v15), .iOS(.v18), .tvOS(.v18)], + products: [ + .executable(name: "Converse", targets: ["Converse"]) + ], + dependencies: [ + .package(url: "https://github.com/build-on-aws/swift-bedrock-library.git", branch: "main"), + .package(url: "https://github.com/apple/swift-log.git", from: "1.5.0"), + ], + targets: [ + // Targets are the basic building blocks of a package, defining a module or a test suite. + // Targets can depend on other targets in this package and products from dependencies. + .executableTarget( + name: "Converse", + dependencies: [ + .product(name: "BedrockService", package: "swift-bedrock-library"), + .product(name: "Logging", package: "swift-log"), + ] + ) + ] +) diff --git a/Examples/converse/Sources/Converse.swift b/Examples/converse/Sources/Converse.swift new file mode 100644 index 00000000..ebd1a460 --- /dev/null +++ b/Examples/converse/Sources/Converse.swift @@ -0,0 +1,70 @@ +//===----------------------------------------------------------------------===// +// +// This source file is part of the Swift Bedrock Library open source project +// +// Copyright (c) 2025 Amazon.com, Inc. or its affiliates +// and the Swift Bedrock Library project authors +// Licensed under Apache License v2.0 +// +// See LICENSE.txt for license information +// See CONTRIBUTORS.txt for the list of Swift Bedrock Library project authors +// +// SPDX-License-Identifier: Apache-2.0 +// +//===----------------------------------------------------------------------===// + +import BedrockService +import Logging + +@main +struct Main { + static func main() async throws { + do { + try await Main.converse() + } catch { + print("Error:\n\(error)") + } + } + static func converse() async throws { + var logger = Logger(label: "Converse") + logger.logLevel = .debug + + let bedrock = try await BedrockService( + region: .useast1, + logger: logger + // uncomment if you use SSO with AWS Identity Center + // authentication: .sso + ) + + // select a model that supports the converse modality + // models must be enabled in your AWS account + let model: BedrockModel = .nova_lite + + guard model.hasConverseModality() else { + throw MyError.incorrectModality("\(model.name) does not support converse") + } + + // create a request + var builder = try ConverseRequestBuilder(with: model) + .withPrompt("Tell me about rainbows") + + // send the request + var reply = try await bedrock.converse(with: builder) + + print("Assistant: \(reply)") + + // create the next request + // you can use the previous reply to continue the conversation + builder = try ConverseRequestBuilder(from: builder, with: reply) + .withPrompt("Do you think birds can see them too?") + + // send the next request + reply = try await bedrock.converse(with: builder) + + print("Assistant: \(reply)") + } + + enum MyError: Error { + case incorrectModality(String) + } +} diff --git a/Package.swift b/Package.swift index 52c78f68..c8c3bdb3 100644 --- a/Package.swift +++ b/Package.swift @@ -26,15 +26,13 @@ let package = Package( .product(name: "Smithy", package: "smithy-swift"), .product(name: "Logging", package: "swift-log"), .product(name: "AwsCommonRuntimeKit", package: "aws-crt-swift"), - ], - path: "Sources/BedrockService" + ] ), .testTarget( name: "BedrockServiceTests", dependencies: [ .target(name: "BedrockService") - ], - path: "Tests/BedrockServiceTests" + ] ), ] ) diff --git a/Sources/BedrockService/BedrockAuthentication+JWT.swift b/Sources/BedrockAuthentication+JWT.swift similarity index 100% rename from Sources/BedrockService/BedrockAuthentication+JWT.swift rename to Sources/BedrockAuthentication+JWT.swift diff --git a/Sources/BedrockService/BedrockAuthentication.swift b/Sources/BedrockAuthentication.swift similarity index 100% rename from Sources/BedrockService/BedrockAuthentication.swift rename to Sources/BedrockAuthentication.swift diff --git a/Sources/BedrockService/BedrockModel.swift b/Sources/BedrockModel.swift similarity index 100% rename from Sources/BedrockService/BedrockModel.swift rename to Sources/BedrockModel.swift diff --git a/Sources/BedrockService/BedrockService.swift b/Sources/BedrockService.swift similarity index 100% rename from Sources/BedrockService/BedrockService.swift rename to Sources/BedrockService.swift diff --git a/Sources/BedrockService/BedrockServiceError.swift b/Sources/BedrockServiceError.swift similarity index 100% rename from Sources/BedrockService/BedrockServiceError.swift rename to Sources/BedrockServiceError.swift diff --git a/Sources/BedrockService/Converse/BedrockService+Converse.swift b/Sources/Converse/BedrockService+Converse.swift similarity index 100% rename from Sources/BedrockService/Converse/BedrockService+Converse.swift rename to Sources/Converse/BedrockService+Converse.swift diff --git a/Sources/BedrockService/Converse/BedrockService+ConverseStreaming.swift b/Sources/Converse/BedrockService+ConverseStreaming.swift similarity index 100% rename from Sources/BedrockService/Converse/BedrockService+ConverseStreaming.swift rename to Sources/Converse/BedrockService+ConverseStreaming.swift diff --git a/Sources/BedrockService/Converse/ContentBlocks/Content.swift b/Sources/Converse/ContentBlocks/Content.swift similarity index 100% rename from Sources/BedrockService/Converse/ContentBlocks/Content.swift rename to Sources/Converse/ContentBlocks/Content.swift diff --git a/Sources/BedrockService/Converse/ContentBlocks/DocumentBlock.swift b/Sources/Converse/ContentBlocks/DocumentBlock.swift similarity index 100% rename from Sources/BedrockService/Converse/ContentBlocks/DocumentBlock.swift rename to Sources/Converse/ContentBlocks/DocumentBlock.swift diff --git a/Sources/BedrockService/Converse/ContentBlocks/DocumentToJSON.swift b/Sources/Converse/ContentBlocks/DocumentToJSON.swift similarity index 100% rename from Sources/BedrockService/Converse/ContentBlocks/DocumentToJSON.swift rename to Sources/Converse/ContentBlocks/DocumentToJSON.swift diff --git a/Sources/BedrockService/Converse/ContentBlocks/History.swift b/Sources/Converse/ContentBlocks/History.swift similarity index 100% rename from Sources/BedrockService/Converse/ContentBlocks/History.swift rename to Sources/Converse/ContentBlocks/History.swift diff --git a/Sources/BedrockService/Converse/ContentBlocks/ImageBlock.swift b/Sources/Converse/ContentBlocks/ImageBlock.swift similarity index 100% rename from Sources/BedrockService/Converse/ContentBlocks/ImageBlock.swift rename to Sources/Converse/ContentBlocks/ImageBlock.swift diff --git a/Sources/BedrockService/Converse/ContentBlocks/JSON.swift b/Sources/Converse/ContentBlocks/JSON.swift similarity index 100% rename from Sources/BedrockService/Converse/ContentBlocks/JSON.swift rename to Sources/Converse/ContentBlocks/JSON.swift diff --git a/Sources/BedrockService/Converse/ContentBlocks/JSONtoDocument.swift b/Sources/Converse/ContentBlocks/JSONtoDocument.swift similarity index 100% rename from Sources/BedrockService/Converse/ContentBlocks/JSONtoDocument.swift rename to Sources/Converse/ContentBlocks/JSONtoDocument.swift diff --git a/Sources/BedrockService/Converse/ContentBlocks/ReasoningBlock.swift b/Sources/Converse/ContentBlocks/ReasoningBlock.swift similarity index 100% rename from Sources/BedrockService/Converse/ContentBlocks/ReasoningBlock.swift rename to Sources/Converse/ContentBlocks/ReasoningBlock.swift diff --git a/Sources/BedrockService/Converse/ContentBlocks/S3Location.swift b/Sources/Converse/ContentBlocks/S3Location.swift similarity index 100% rename from Sources/BedrockService/Converse/ContentBlocks/S3Location.swift rename to Sources/Converse/ContentBlocks/S3Location.swift diff --git a/Sources/BedrockService/Converse/ContentBlocks/ToolResultBlock.swift b/Sources/Converse/ContentBlocks/ToolResultBlock.swift similarity index 100% rename from Sources/BedrockService/Converse/ContentBlocks/ToolResultBlock.swift rename to Sources/Converse/ContentBlocks/ToolResultBlock.swift diff --git a/Sources/BedrockService/Converse/ContentBlocks/ToolUseBlock.swift b/Sources/Converse/ContentBlocks/ToolUseBlock.swift similarity index 100% rename from Sources/BedrockService/Converse/ContentBlocks/ToolUseBlock.swift rename to Sources/Converse/ContentBlocks/ToolUseBlock.swift diff --git a/Sources/BedrockService/Converse/ContentBlocks/VideoBlock.swift b/Sources/Converse/ContentBlocks/VideoBlock.swift similarity index 100% rename from Sources/BedrockService/Converse/ContentBlocks/VideoBlock.swift rename to Sources/Converse/ContentBlocks/VideoBlock.swift diff --git a/Sources/BedrockService/Converse/ConverseReply.swift b/Sources/Converse/ConverseReply.swift similarity index 100% rename from Sources/BedrockService/Converse/ConverseReply.swift rename to Sources/Converse/ConverseReply.swift diff --git a/Sources/BedrockService/Converse/ConverseRequest.swift b/Sources/Converse/ConverseRequest.swift similarity index 100% rename from Sources/BedrockService/Converse/ConverseRequest.swift rename to Sources/Converse/ConverseRequest.swift diff --git a/Sources/BedrockService/Converse/ConverseRequestBuilder.swift b/Sources/Converse/ConverseRequestBuilder.swift similarity index 100% rename from Sources/BedrockService/Converse/ConverseRequestBuilder.swift rename to Sources/Converse/ConverseRequestBuilder.swift diff --git a/Sources/BedrockService/Converse/ConverseRequestStreaming.swift b/Sources/Converse/ConverseRequestStreaming.swift similarity index 100% rename from Sources/BedrockService/Converse/ConverseRequestStreaming.swift rename to Sources/Converse/ConverseRequestStreaming.swift diff --git a/Sources/BedrockService/Converse/ConverseResponseStreaming.swift b/Sources/Converse/ConverseResponseStreaming.swift similarity index 100% rename from Sources/BedrockService/Converse/ConverseResponseStreaming.swift rename to Sources/Converse/ConverseResponseStreaming.swift diff --git a/Sources/BedrockService/Converse/Message.swift b/Sources/Converse/Message.swift similarity index 100% rename from Sources/BedrockService/Converse/Message.swift rename to Sources/Converse/Message.swift diff --git a/Sources/BedrockService/Converse/Role.swift b/Sources/Converse/Role.swift similarity index 100% rename from Sources/BedrockService/Converse/Role.swift rename to Sources/Converse/Role.swift diff --git a/Sources/BedrockService/Converse/Streaming/Content+getFromSegements.swift b/Sources/Converse/Streaming/Content+getFromSegements.swift similarity index 100% rename from Sources/BedrockService/Converse/Streaming/Content+getFromSegements.swift rename to Sources/Converse/Streaming/Content+getFromSegements.swift diff --git a/Sources/BedrockService/Converse/Streaming/ContentSegment.swift b/Sources/Converse/Streaming/ContentSegment.swift similarity index 100% rename from Sources/BedrockService/Converse/Streaming/ContentSegment.swift rename to Sources/Converse/Streaming/ContentSegment.swift diff --git a/Sources/BedrockService/Converse/Streaming/ConverseReplyStream.swift b/Sources/Converse/Streaming/ConverseReplyStream.swift similarity index 100% rename from Sources/BedrockService/Converse/Streaming/ConverseReplyStream.swift rename to Sources/Converse/Streaming/ConverseReplyStream.swift diff --git a/Sources/BedrockService/Converse/Streaming/ConverseStreamElement.swift b/Sources/Converse/Streaming/ConverseStreamElement.swift similarity index 100% rename from Sources/BedrockService/Converse/Streaming/ConverseStreamElement.swift rename to Sources/Converse/Streaming/ConverseStreamElement.swift diff --git a/Sources/BedrockService/Converse/Streaming/ToolUseStart.swift b/Sources/Converse/Streaming/ToolUseStart.swift similarity index 100% rename from Sources/BedrockService/Converse/Streaming/ToolUseStart.swift rename to Sources/Converse/Streaming/ToolUseStart.swift diff --git a/Sources/BedrockService/Converse/Tool.swift b/Sources/Converse/Tool.swift similarity index 100% rename from Sources/BedrockService/Converse/Tool.swift rename to Sources/Converse/Tool.swift diff --git a/Sources/BedrockService/InvokeModel/BedrockService+ImageParameterValidation.swift b/Sources/InvokeModel/BedrockService+ImageParameterValidation.swift similarity index 100% rename from Sources/BedrockService/InvokeModel/BedrockService+ImageParameterValidation.swift rename to Sources/InvokeModel/BedrockService+ImageParameterValidation.swift diff --git a/Sources/BedrockService/InvokeModel/BedrockService+InvokeModelImage.swift b/Sources/InvokeModel/BedrockService+InvokeModelImage.swift similarity index 100% rename from Sources/BedrockService/InvokeModel/BedrockService+InvokeModelImage.swift rename to Sources/InvokeModel/BedrockService+InvokeModelImage.swift diff --git a/Sources/BedrockService/InvokeModel/BedrockService+InvokeModelText.swift b/Sources/InvokeModel/BedrockService+InvokeModelText.swift similarity index 100% rename from Sources/BedrockService/InvokeModel/BedrockService+InvokeModelText.swift rename to Sources/InvokeModel/BedrockService+InvokeModelText.swift diff --git a/Sources/BedrockService/InvokeModel/ContentType.swift b/Sources/InvokeModel/ContentType.swift similarity index 100% rename from Sources/BedrockService/InvokeModel/ContentType.swift rename to Sources/InvokeModel/ContentType.swift diff --git a/Sources/BedrockService/InvokeModel/ImageGenerationOutput.swift b/Sources/InvokeModel/ImageGenerationOutput.swift similarity index 100% rename from Sources/BedrockService/InvokeModel/ImageGenerationOutput.swift rename to Sources/InvokeModel/ImageGenerationOutput.swift diff --git a/Sources/BedrockService/InvokeModel/ImageResolution.swift b/Sources/InvokeModel/ImageResolution.swift similarity index 100% rename from Sources/BedrockService/InvokeModel/ImageResolution.swift rename to Sources/InvokeModel/ImageResolution.swift diff --git a/Sources/BedrockService/InvokeModel/InvokeModelRequest.swift b/Sources/InvokeModel/InvokeModelRequest.swift similarity index 100% rename from Sources/BedrockService/InvokeModel/InvokeModelRequest.swift rename to Sources/InvokeModel/InvokeModelRequest.swift diff --git a/Sources/BedrockService/InvokeModel/InvokeModelResponse.swift b/Sources/InvokeModel/InvokeModelResponse.swift similarity index 100% rename from Sources/BedrockService/InvokeModel/InvokeModelResponse.swift rename to Sources/InvokeModel/InvokeModelResponse.swift diff --git a/Sources/BedrockService/InvokeModel/Protocols.swift b/Sources/InvokeModel/Protocols.swift similarity index 100% rename from Sources/BedrockService/InvokeModel/Protocols.swift rename to Sources/InvokeModel/Protocols.swift diff --git a/Sources/BedrockService/InvokeModel/TextCompletion.swift b/Sources/InvokeModel/TextCompletion.swift similarity index 100% rename from Sources/BedrockService/InvokeModel/TextCompletion.swift rename to Sources/InvokeModel/TextCompletion.swift diff --git a/Sources/BedrockService/ListModels/ModelSummary.swift b/Sources/ListModels/ModelSummary.swift similarity index 100% rename from Sources/BedrockService/ListModels/ModelSummary.swift rename to Sources/ListModels/ModelSummary.swift diff --git a/Sources/BedrockService/Modalities/ConverseFeature.swift b/Sources/Modalities/ConverseFeature.swift similarity index 100% rename from Sources/BedrockService/Modalities/ConverseFeature.swift rename to Sources/Modalities/ConverseFeature.swift diff --git a/Sources/BedrockService/Modalities/ConverseModality.swift b/Sources/Modalities/ConverseModality.swift similarity index 100% rename from Sources/BedrockService/Modalities/ConverseModality.swift rename to Sources/Modalities/ConverseModality.swift diff --git a/Sources/BedrockService/Modalities/ImageModality.swift b/Sources/Modalities/ImageModality.swift similarity index 100% rename from Sources/BedrockService/Modalities/ImageModality.swift rename to Sources/Modalities/ImageModality.swift diff --git a/Sources/BedrockService/Modalities/Modality.swift b/Sources/Modalities/Modality.swift similarity index 100% rename from Sources/BedrockService/Modalities/Modality.swift rename to Sources/Modalities/Modality.swift diff --git a/Sources/BedrockService/Modalities/StandardConverse.swift b/Sources/Modalities/StandardConverse.swift similarity index 100% rename from Sources/BedrockService/Modalities/StandardConverse.swift rename to Sources/Modalities/StandardConverse.swift diff --git a/Sources/BedrockService/Modalities/TextModality.swift b/Sources/Modalities/TextModality.swift similarity index 100% rename from Sources/BedrockService/Modalities/TextModality.swift rename to Sources/Modalities/TextModality.swift diff --git a/Sources/BedrockService/Models/Amazon/AmazonImage.swift b/Sources/Models/Amazon/AmazonImage.swift similarity index 100% rename from Sources/BedrockService/Models/Amazon/AmazonImage.swift rename to Sources/Models/Amazon/AmazonImage.swift diff --git a/Sources/BedrockService/Models/Amazon/AmazonImageRequestBody.swift b/Sources/Models/Amazon/AmazonImageRequestBody.swift similarity index 100% rename from Sources/BedrockService/Models/Amazon/AmazonImageRequestBody.swift rename to Sources/Models/Amazon/AmazonImageRequestBody.swift diff --git a/Sources/BedrockService/Models/Amazon/AmazonImageResponseBody.swift b/Sources/Models/Amazon/AmazonImageResponseBody.swift similarity index 100% rename from Sources/BedrockService/Models/Amazon/AmazonImageResponseBody.swift rename to Sources/Models/Amazon/AmazonImageResponseBody.swift diff --git a/Sources/BedrockService/Models/Amazon/Nova/Nova.swift b/Sources/Models/Amazon/Nova/Nova.swift similarity index 100% rename from Sources/BedrockService/Models/Amazon/Nova/Nova.swift rename to Sources/Models/Amazon/Nova/Nova.swift diff --git a/Sources/BedrockService/Models/Amazon/Nova/NovaBedrockModels.swift b/Sources/Models/Amazon/Nova/NovaBedrockModels.swift similarity index 100% rename from Sources/BedrockService/Models/Amazon/Nova/NovaBedrockModels.swift rename to Sources/Models/Amazon/Nova/NovaBedrockModels.swift diff --git a/Sources/BedrockService/Models/Amazon/Nova/NovaImageResolutionValidator.swift b/Sources/Models/Amazon/Nova/NovaImageResolutionValidator.swift similarity index 100% rename from Sources/BedrockService/Models/Amazon/Nova/NovaImageResolutionValidator.swift rename to Sources/Models/Amazon/Nova/NovaImageResolutionValidator.swift diff --git a/Sources/BedrockService/Models/Amazon/Nova/NovaRequestBody.swift b/Sources/Models/Amazon/Nova/NovaRequestBody.swift similarity index 100% rename from Sources/BedrockService/Models/Amazon/Nova/NovaRequestBody.swift rename to Sources/Models/Amazon/Nova/NovaRequestBody.swift diff --git a/Sources/BedrockService/Models/Amazon/Nova/NovaResponseBody.swift b/Sources/Models/Amazon/Nova/NovaResponseBody.swift similarity index 100% rename from Sources/BedrockService/Models/Amazon/Nova/NovaResponseBody.swift rename to Sources/Models/Amazon/Nova/NovaResponseBody.swift diff --git a/Sources/BedrockService/Models/Amazon/TaskType.swift b/Sources/Models/Amazon/TaskType.swift similarity index 100% rename from Sources/BedrockService/Models/Amazon/TaskType.swift rename to Sources/Models/Amazon/TaskType.swift diff --git a/Sources/BedrockService/Models/Amazon/Titan/Titan.swift b/Sources/Models/Amazon/Titan/Titan.swift similarity index 100% rename from Sources/BedrockService/Models/Amazon/Titan/Titan.swift rename to Sources/Models/Amazon/Titan/Titan.swift diff --git a/Sources/BedrockService/Models/Amazon/Titan/TitanBedrockModels.swift b/Sources/Models/Amazon/Titan/TitanBedrockModels.swift similarity index 100% rename from Sources/BedrockService/Models/Amazon/Titan/TitanBedrockModels.swift rename to Sources/Models/Amazon/Titan/TitanBedrockModels.swift diff --git a/Sources/BedrockService/Models/Amazon/Titan/TitanImageResolutionValidator.swift b/Sources/Models/Amazon/Titan/TitanImageResolutionValidator.swift similarity index 100% rename from Sources/BedrockService/Models/Amazon/Titan/TitanImageResolutionValidator.swift rename to Sources/Models/Amazon/Titan/TitanImageResolutionValidator.swift diff --git a/Sources/BedrockService/Models/Amazon/Titan/TitanRequestBody.swift b/Sources/Models/Amazon/Titan/TitanRequestBody.swift similarity index 100% rename from Sources/BedrockService/Models/Amazon/Titan/TitanRequestBody.swift rename to Sources/Models/Amazon/Titan/TitanRequestBody.swift diff --git a/Sources/BedrockService/Models/Amazon/Titan/TitanResponseBody.swift b/Sources/Models/Amazon/Titan/TitanResponseBody.swift similarity index 100% rename from Sources/BedrockService/Models/Amazon/Titan/TitanResponseBody.swift rename to Sources/Models/Amazon/Titan/TitanResponseBody.swift diff --git a/Sources/BedrockService/Models/Anthropic/Anthropic.swift b/Sources/Models/Anthropic/Anthropic.swift similarity index 100% rename from Sources/BedrockService/Models/Anthropic/Anthropic.swift rename to Sources/Models/Anthropic/Anthropic.swift diff --git a/Sources/BedrockService/Models/Anthropic/AnthropicBedrockModels.swift b/Sources/Models/Anthropic/AnthropicBedrockModels.swift similarity index 100% rename from Sources/BedrockService/Models/Anthropic/AnthropicBedrockModels.swift rename to Sources/Models/Anthropic/AnthropicBedrockModels.swift diff --git a/Sources/BedrockService/Models/Anthropic/AnthropicRequestBody.swift b/Sources/Models/Anthropic/AnthropicRequestBody.swift similarity index 100% rename from Sources/BedrockService/Models/Anthropic/AnthropicRequestBody.swift rename to Sources/Models/Anthropic/AnthropicRequestBody.swift diff --git a/Sources/BedrockService/Models/Anthropic/AnthropicResponseBody.swift b/Sources/Models/Anthropic/AnthropicResponseBody.swift similarity index 100% rename from Sources/BedrockService/Models/Anthropic/AnthropicResponseBody.swift rename to Sources/Models/Anthropic/AnthropicResponseBody.swift diff --git a/Sources/BedrockService/Models/Cohere/CohereBedrockModels.swift b/Sources/Models/Cohere/CohereBedrockModels.swift similarity index 100% rename from Sources/BedrockService/Models/Cohere/CohereBedrockModels.swift rename to Sources/Models/Cohere/CohereBedrockModels.swift diff --git a/Sources/BedrockService/Models/DeepSeek/DeepSeek.swift b/Sources/Models/DeepSeek/DeepSeek.swift similarity index 100% rename from Sources/BedrockService/Models/DeepSeek/DeepSeek.swift rename to Sources/Models/DeepSeek/DeepSeek.swift diff --git a/Sources/BedrockService/Models/DeepSeek/DeepSeekBedrockModels.swift b/Sources/Models/DeepSeek/DeepSeekBedrockModels.swift similarity index 100% rename from Sources/BedrockService/Models/DeepSeek/DeepSeekBedrockModels.swift rename to Sources/Models/DeepSeek/DeepSeekBedrockModels.swift diff --git a/Sources/BedrockService/Models/DeepSeek/DeepSeekRequestBody.swift b/Sources/Models/DeepSeek/DeepSeekRequestBody.swift similarity index 100% rename from Sources/BedrockService/Models/DeepSeek/DeepSeekRequestBody.swift rename to Sources/Models/DeepSeek/DeepSeekRequestBody.swift diff --git a/Sources/BedrockService/Models/DeepSeek/DeepSeekResponseBody.swift b/Sources/Models/DeepSeek/DeepSeekResponseBody.swift similarity index 100% rename from Sources/BedrockService/Models/DeepSeek/DeepSeekResponseBody.swift rename to Sources/Models/DeepSeek/DeepSeekResponseBody.swift diff --git a/Sources/BedrockService/Models/Jamba/JambaBedrockModels.swift b/Sources/Models/Jamba/JambaBedrockModels.swift similarity index 100% rename from Sources/BedrockService/Models/Jamba/JambaBedrockModels.swift rename to Sources/Models/Jamba/JambaBedrockModels.swift diff --git a/Sources/BedrockService/Models/Llama/Llama.swift b/Sources/Models/Llama/Llama.swift similarity index 100% rename from Sources/BedrockService/Models/Llama/Llama.swift rename to Sources/Models/Llama/Llama.swift diff --git a/Sources/BedrockService/Models/Llama/LlamaBedrockModels.swift b/Sources/Models/Llama/LlamaBedrockModels.swift similarity index 100% rename from Sources/BedrockService/Models/Llama/LlamaBedrockModels.swift rename to Sources/Models/Llama/LlamaBedrockModels.swift diff --git a/Sources/BedrockService/Models/Llama/LlamaRequestBody.swift b/Sources/Models/Llama/LlamaRequestBody.swift similarity index 100% rename from Sources/BedrockService/Models/Llama/LlamaRequestBody.swift rename to Sources/Models/Llama/LlamaRequestBody.swift diff --git a/Sources/BedrockService/Models/Llama/LlamaResponseBody.swift b/Sources/Models/Llama/LlamaResponseBody.swift similarity index 100% rename from Sources/BedrockService/Models/Llama/LlamaResponseBody.swift rename to Sources/Models/Llama/LlamaResponseBody.swift diff --git a/Sources/BedrockService/Models/Mistral/MistralBedrockModels.swift b/Sources/Models/Mistral/MistralBedrockModels.swift similarity index 100% rename from Sources/BedrockService/Models/Mistral/MistralBedrockModels.swift rename to Sources/Models/Mistral/MistralBedrockModels.swift diff --git a/Sources/BedrockService/Parameters/ConverseParameters.swift b/Sources/Parameters/ConverseParameters.swift similarity index 100% rename from Sources/BedrockService/Parameters/ConverseParameters.swift rename to Sources/Parameters/ConverseParameters.swift diff --git a/Sources/BedrockService/Parameters/ImageGenerationParameters.swift b/Sources/Parameters/ImageGenerationParameters.swift similarity index 100% rename from Sources/BedrockService/Parameters/ImageGenerationParameters.swift rename to Sources/Parameters/ImageGenerationParameters.swift diff --git a/Sources/BedrockService/Parameters/ParameterName.swift b/Sources/Parameters/ParameterName.swift similarity index 100% rename from Sources/BedrockService/Parameters/ParameterName.swift rename to Sources/Parameters/ParameterName.swift diff --git a/Sources/BedrockService/Parameters/Parameters.swift b/Sources/Parameters/Parameters.swift similarity index 100% rename from Sources/BedrockService/Parameters/Parameters.swift rename to Sources/Parameters/Parameters.swift diff --git a/Sources/BedrockService/Parameters/TextGenerationParameters.swift b/Sources/Parameters/TextGenerationParameters.swift similarity index 100% rename from Sources/BedrockService/Parameters/TextGenerationParameters.swift rename to Sources/Parameters/TextGenerationParameters.swift diff --git a/Sources/BedrockService/Protocols/BedrockClientProtocol.swift b/Sources/Protocols/BedrockClientProtocol.swift similarity index 100% rename from Sources/BedrockService/Protocols/BedrockClientProtocol.swift rename to Sources/Protocols/BedrockClientProtocol.swift diff --git a/Sources/BedrockService/Protocols/BedrockRuntimeClientProtocol.swift b/Sources/Protocols/BedrockRuntimeClientProtocol.swift similarity index 100% rename from Sources/BedrockService/Protocols/BedrockRuntimeClientProtocol.swift rename to Sources/Protocols/BedrockRuntimeClientProtocol.swift diff --git a/Sources/BedrockService/Region.swift b/Sources/Region.swift similarity index 100% rename from Sources/BedrockService/Region.swift rename to Sources/Region.swift diff --git a/Tests/BedrockServiceTests/AuthenticationTests.swift b/Tests/AuthenticationTests.swift similarity index 100% rename from Tests/BedrockServiceTests/AuthenticationTests.swift rename to Tests/AuthenticationTests.swift diff --git a/Tests/BedrockServiceTests/BedrockServiceTests.swift b/Tests/BedrockServiceTests.swift similarity index 100% rename from Tests/BedrockServiceTests/BedrockServiceTests.swift rename to Tests/BedrockServiceTests.swift diff --git a/Tests/BedrockServiceTests/Converse/ConverseDocumentTests.swift b/Tests/Converse/ConverseDocumentTests.swift similarity index 100% rename from Tests/BedrockServiceTests/Converse/ConverseDocumentTests.swift rename to Tests/Converse/ConverseDocumentTests.swift diff --git a/Tests/BedrockServiceTests/Converse/ConverseReasoningTests.swift b/Tests/Converse/ConverseReasoningTests.swift similarity index 100% rename from Tests/BedrockServiceTests/Converse/ConverseReasoningTests.swift rename to Tests/Converse/ConverseReasoningTests.swift diff --git a/Tests/BedrockServiceTests/Converse/ConverseTextTests.swift b/Tests/Converse/ConverseTextTests.swift similarity index 100% rename from Tests/BedrockServiceTests/Converse/ConverseTextTests.swift rename to Tests/Converse/ConverseTextTests.swift diff --git a/Tests/BedrockServiceTests/Converse/ConverseToolTests.swift b/Tests/Converse/ConverseToolTests.swift similarity index 100% rename from Tests/BedrockServiceTests/Converse/ConverseToolTests.swift rename to Tests/Converse/ConverseToolTests.swift diff --git a/Tests/BedrockServiceTests/Converse/ConverseVisionTests.swift b/Tests/Converse/ConverseVisionTests.swift similarity index 100% rename from Tests/BedrockServiceTests/Converse/ConverseVisionTests.swift rename to Tests/Converse/ConverseVisionTests.swift diff --git a/Tests/BedrockServiceTests/Converse/JSONTests.swift b/Tests/Converse/JSONTests.swift similarity index 100% rename from Tests/BedrockServiceTests/Converse/JSONTests.swift rename to Tests/Converse/JSONTests.swift diff --git a/Tests/BedrockServiceTests/Converse/ToolResultBlockTests.swift b/Tests/Converse/ToolResultBlockTests.swift similarity index 100% rename from Tests/BedrockServiceTests/Converse/ToolResultBlockTests.swift rename to Tests/Converse/ToolResultBlockTests.swift diff --git a/Tests/BedrockServiceTests/ConverseStream/ConverseReplyStreamTests.swift b/Tests/ConverseStream/ConverseReplyStreamTests.swift similarity index 100% rename from Tests/BedrockServiceTests/ConverseStream/ConverseReplyStreamTests.swift rename to Tests/ConverseStream/ConverseReplyStreamTests.swift diff --git a/Tests/BedrockServiceTests/ConverseStream/ConverseStreamDocumentTests.swift b/Tests/ConverseStream/ConverseStreamDocumentTests.swift similarity index 100% rename from Tests/BedrockServiceTests/ConverseStream/ConverseStreamDocumentTests.swift rename to Tests/ConverseStream/ConverseStreamDocumentTests.swift diff --git a/Tests/BedrockServiceTests/ConverseStream/ConverseStreamReasoningTests.swift b/Tests/ConverseStream/ConverseStreamReasoningTests.swift similarity index 100% rename from Tests/BedrockServiceTests/ConverseStream/ConverseStreamReasoningTests.swift rename to Tests/ConverseStream/ConverseStreamReasoningTests.swift diff --git a/Tests/BedrockServiceTests/ConverseStream/ConverseStreamTextTests.swift b/Tests/ConverseStream/ConverseStreamTextTests.swift similarity index 100% rename from Tests/BedrockServiceTests/ConverseStream/ConverseStreamTextTests.swift rename to Tests/ConverseStream/ConverseStreamTextTests.swift diff --git a/Tests/BedrockServiceTests/ConverseStream/ConverseStreamToolTests.swift b/Tests/ConverseStream/ConverseStreamToolTests.swift similarity index 100% rename from Tests/BedrockServiceTests/ConverseStream/ConverseStreamToolTests.swift rename to Tests/ConverseStream/ConverseStreamToolTests.swift diff --git a/Tests/BedrockServiceTests/ConverseStream/ConverseStreamVisionTests.swift b/Tests/ConverseStream/ConverseStreamVisionTests.swift similarity index 100% rename from Tests/BedrockServiceTests/ConverseStream/ConverseStreamVisionTests.swift rename to Tests/ConverseStream/ConverseStreamVisionTests.swift diff --git a/Tests/BedrockServiceTests/InvokeModel/ImageGenerationTests.swift b/Tests/InvokeModel/ImageGenerationTests.swift similarity index 100% rename from Tests/BedrockServiceTests/InvokeModel/ImageGenerationTests.swift rename to Tests/InvokeModel/ImageGenerationTests.swift diff --git a/Tests/BedrockServiceTests/InvokeModel/ImageVariationTests.swift b/Tests/InvokeModel/ImageVariationTests.swift similarity index 100% rename from Tests/BedrockServiceTests/InvokeModel/ImageVariationTests.swift rename to Tests/InvokeModel/ImageVariationTests.swift diff --git a/Tests/BedrockServiceTests/InvokeModel/TextGenerationTests.swift b/Tests/InvokeModel/TextGenerationTests.swift similarity index 100% rename from Tests/BedrockServiceTests/InvokeModel/TextGenerationTests.swift rename to Tests/InvokeModel/TextGenerationTests.swift diff --git a/Tests/BedrockServiceTests/Mock/MockBedrockClient.swift b/Tests/Mock/MockBedrockClient.swift similarity index 100% rename from Tests/BedrockServiceTests/Mock/MockBedrockClient.swift rename to Tests/Mock/MockBedrockClient.swift diff --git a/Tests/BedrockServiceTests/Mock/MockBedrockRuntimeClient.swift b/Tests/Mock/MockBedrockRuntimeClient.swift similarity index 100% rename from Tests/BedrockServiceTests/Mock/MockBedrockRuntimeClient.swift rename to Tests/Mock/MockBedrockRuntimeClient.swift diff --git a/Tests/BedrockServiceTests/NovaTestConstants.swift b/Tests/NovaTestConstants.swift similarity index 100% rename from Tests/BedrockServiceTests/NovaTestConstants.swift rename to Tests/NovaTestConstants.swift