diff --git a/.github/workflows/integration_tests.yml b/.github/workflows/integration_tests.yml index ac22966..5906ede 100644 --- a/.github/workflows/integration_tests.yml +++ b/.github/workflows/integration_tests.yml @@ -1,5 +1,7 @@ name: Integration Tests +permissions: read-all + on: workflow_call: inputs: diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index d2df255..b272f4d 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -2,6 +2,8 @@ name: Build, tests & soundness checks on: [pull_request, workflow_dispatch] +permissions: read-all + jobs: swift-bedrock-library: runs-on: ubuntu-latest diff --git a/.github/workflows/swift-6-language-mode.yml b/.github/workflows/swift-6-language-mode.yml index 818e9f4..8bc3043 100644 --- a/.github/workflows/swift-6-language-mode.yml +++ b/.github/workflows/swift-6-language-mode.yml @@ -1,5 +1,7 @@ name: Swift 6 language mode +permissions: read-all + on: workflow_call: diff --git a/Package.swift b/Package.swift index b68b61d..64e913a 100644 --- a/Package.swift +++ b/Package.swift @@ -11,10 +11,10 @@ let package = Package( ], dependencies: [ .package(url: "https://github.com/apple/swift-argument-parser.git", from: "1.6.1"), - .package(url: "https://github.com/awslabs/aws-sdk-swift", from: "1.5.16"), - .package(url: "https://github.com/smithy-lang/smithy-swift", from: "0.152.0"), + .package(url: "https://github.com/awslabs/aws-sdk-swift", from: "1.5.51"), + .package(url: "https://github.com/smithy-lang/smithy-swift", from: "0.158.0"), .package(url: "https://github.com/apple/swift-log.git", from: "1.6.4"), - .package(url: "https://github.com/awslabs/aws-crt-swift", from: "0.52.1"), + .package(url: "https://github.com/awslabs/aws-crt-swift", from: "0.53.0"), ], targets: [ .target( diff --git a/Sources/Models/Anthropic/AnthropicBedrockModels.swift b/Sources/Models/Anthropic/AnthropicBedrockModels.swift index 0bd8ff1..5a88979 100644 --- a/Sources/Models/Anthropic/AnthropicBedrockModels.swift +++ b/Sources/Models/Anthropic/AnthropicBedrockModels.swift @@ -30,6 +30,7 @@ typealias ClaudeV3_5Sonnet = AnthropicText typealias ClaudeV3_7Sonnet = AnthropicText typealias Claude_Sonnet_v4 = AnthropicText typealias Claude_Opus_v4 = AnthropicText +typealias Claude_Sonnet_v4_5 = AnthropicText // text // https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-anthropic-claude-messages.html @@ -219,4 +220,20 @@ extension BedrockModel { maxReasoningTokens: Parameter(.maxReasoningTokens, minValue: 1_024, maxValue: 8_191, defaultValue: 4_096) ) ) + public static let claude_sonnet_v4_5: BedrockModel = BedrockModel( + id: "anthropic.claude-sonnet-4-5-20250929-v1:0", + name: "Claude Sonnet v4.5", + modality: Claude_Sonnet_v4_5( + parameters: TextGenerationParameters( + temperature: Parameter(.temperature, minValue: 0, maxValue: 1, defaultValue: 1), + maxTokens: Parameter(.maxTokens, minValue: 1, maxValue: 64_000, defaultValue: 8_192), + topP: Parameter(.topP, minValue: 0, maxValue: 1, defaultValue: 0.999), + topK: Parameter(.topK, minValue: 0, maxValue: 500, defaultValue: 0), + stopSequences: StopSequenceParams(maxSequences: 8191, defaultValue: []), + maxPromptSize: 200_000 + ), + features: [.textGeneration, .systemPrompts, .document, .vision, .toolUse, .reasoning], + maxReasoningTokens: Parameter(.maxReasoningTokens, minValue: 1_024, maxValue: 8_191, defaultValue: 4_096) + ) + ) }