Compare commits

...

1 Commits

Author SHA1 Message Date
Shawn Yuan (from Dev Box)
790fc6c4dc Added claud support 2026-01-07 13:57:30 +08:00
7 changed files with 47 additions and 0 deletions

View File

@@ -7,6 +7,8 @@
<PackageVersion Include="AdaptiveCards.ObjectModel.WinUI3" Version="2.0.0-beta" />
<PackageVersion Include="AdaptiveCards.Rendering.WinUI3" Version="2.1.0-beta" />
<PackageVersion Include="AdaptiveCards.Templating" Version="2.0.5" />
<PackageVersion Include="AWSSDK.BedrockRuntime" Version="4.0.7.2" />
<PackageVersion Include="AWSSDK.Core" Version="4.0.0.32" />
<PackageVersion Include="boost" Version="1.87.0" TargetFramework="native" />
<PackageVersion Include="boost_regex-vc143" Version="1.87.0" TargetFramework="native" />
<PackageVersion Include="CommunityToolkit.Labs.WinUI.Controls.OpacityMaskView" Version="0.1.251101-build.2372" />
@@ -56,6 +58,7 @@
<PackageVersion Include="Microsoft.AI.Foundry.Local" Version="0.3.0" />
<PackageVersion Include="Microsoft.SemanticKernel" Version="1.66.0" />
<PackageVersion Include="Microsoft.SemanticKernel.Connectors.OpenAI" Version="1.66.0" />
<PackageVersion Include="Microsoft.SemanticKernel.Connectors.Amazon" Version="1.66.0-alpha" />
<PackageVersion Include="Microsoft.SemanticKernel.Connectors.AzureAIInference" Version="1.66.0-beta" />
<PackageVersion Include="Microsoft.SemanticKernel.Connectors.Google" Version="1.66.0-alpha" />
<PackageVersion Include="Microsoft.SemanticKernel.Connectors.MistralAI" Version="1.66.0-alpha" />

View File

@@ -59,6 +59,9 @@
<PackageReference Include="CommunityToolkit.WinUI.Controls.Primitives" />
<!-- Including MessagePack to force version, since it's used by StreamJsonRpc but contains vulnerabilities. After StreamJsonRpc updates the version of MessagePack, we can upgrade StreamJsonRpc instead. -->
<PackageReference Include="MessagePack" />
<PackageReference Include="AWSSDK.BedrockRuntime" />
<PackageReference Include="AWSSDK.Core" />
<PackageReference Include="Microsoft.SemanticKernel.Connectors.Amazon" />
<PackageReference Include="Microsoft.SemanticKernel.Connectors.AzureAIInference" />
<PackageReference Include="Microsoft.SemanticKernel.Connectors.Google" />
<PackageReference Include="Microsoft.SemanticKernel.Connectors.MistralAI" />

View File

@@ -8,6 +8,9 @@ using System.Threading;
using System.Threading.Tasks;
using AdvancedPaste.Helpers;
using AdvancedPaste.Models;
using Amazon;
using Amazon.BedrockRuntime;
using Amazon.Runtime;
using Microsoft.PowerToys.Settings.UI.Library;
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.ChatCompletion;
@@ -29,6 +32,7 @@ namespace AdvancedPaste.Services.CustomActions
AIServiceType.Google,
AIServiceType.AzureAIInference,
AIServiceType.Ollama,
AIServiceType.Bedrock,
};
public static PasteAIProviderRegistration Registration { get; } = new(SupportedTypes, config => new SemanticKernelPasteProvider(config));
@@ -160,6 +164,18 @@ namespace AdvancedPaste.Services.CustomActions
case AIServiceType.Ollama:
kernelBuilder.AddOllamaChatCompletion(_config.Model, endpoint: new Uri(endpoint));
break;
case AIServiceType.Bedrock:
var region = RequireEndpoint(endpoint, _serviceType);
var parts = apiKey.Split(':');
if (parts.Length != 2)
{
throw new ArgumentException("API Key for Bedrock must be in the format 'AccessKey:SecretKey'");
}
var credentials = new BasicAWSCredentials(parts[0], parts[1]);
var bedrockRuntime = new AmazonBedrockRuntimeClient(credentials, RegionEndpoint.GetBySystemName(region));
kernelBuilder.AddBedrockChatCompletionService(_config.Model, bedrockRuntime: bedrockRuntime, serviceId: _config.Model);
break;
default:
throw new NotSupportedException($"Provider '{_config.ProviderType}' is not supported by {nameof(SemanticKernelPasteProvider)}");

View File

@@ -19,5 +19,6 @@ namespace Microsoft.PowerToys.Settings.UI.Library
Google,
AzureAIInference,
Ollama,
Bedrock,
}
}

View File

@@ -31,6 +31,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library
"google" or "googleai" or "googlegemini" => AIServiceType.Google,
"azureaiinference" or "azureinference" => AIServiceType.AzureAIInference,
"ollama" => AIServiceType.Ollama,
"bedrock" => AIServiceType.Bedrock,
_ => AIServiceType.Unknown,
};
}
@@ -51,6 +52,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library
AIServiceType.Google => "Google",
AIServiceType.AzureAIInference => "AzureAIInference",
AIServiceType.Ollama => "Ollama",
AIServiceType.Bedrock => "Bedrock",
AIServiceType.Unknown => string.Empty,
_ => throw new ArgumentOutOfRangeException(nameof(serviceType), serviceType, "Unsupported AI service type."),
};
@@ -72,6 +74,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library
AIServiceType.Google => "google",
AIServiceType.AzureAIInference => "azureaiinference",
AIServiceType.Ollama => "ollama",
AIServiceType.Bedrock => "bedrock",
_ => string.Empty,
};
}

View File

@@ -97,6 +97,18 @@ public static class AIServiceTypeRegistry
PrivacyLabel = "AdvancedPaste_Ollama_PrivacyLabel",
PrivacyUri = new Uri("https://ollama.org/privacy"),
},
[AIServiceType.Bedrock] = new AIServiceTypeMetadata
{
ServiceType = AIServiceType.Bedrock,
DisplayName = "Bedrock",
IconPath = "ms-appx:///Assets/Settings/Icons/Models/AzureAI.svg",
IsOnlineService = true,
LegalDescription = "AdvancedPaste_Bedrock_LegalDescription",
TermsLabel = "AdvancedPaste_Bedrock_TermsLabel",
TermsUri = new Uri("https://aws.amazon.com/bedrock/"),
PrivacyLabel = "AdvancedPaste_Bedrock_PrivacyLabel",
PrivacyUri = new Uri("https://aws.amazon.com/privacy/"),
},
[AIServiceType.Onnx] = new AIServiceTypeMetadata
{
ServiceType = AIServiceType.Onnx,

View File

@@ -711,6 +711,15 @@ Please review the placeholder content that represents the final terms and usage
<data name="AdvancedPaste_Mistral_PrivacyLabel" xml:space="preserve">
<value>Mistral Privacy Policy</value>
</data>
<data name="AdvancedPaste_Bedrock_LegalDescription" xml:space="preserve">
<value>Your credentials connect directly to AWS Bedrock services. By setting up this provider, you agree to comply with AWS usage policies and data handling practices.</value>
</data>
<data name="AdvancedPaste_Bedrock_TermsLabel" xml:space="preserve">
<value>AWS Service Terms</value>
</data>
<data name="AdvancedPaste_Bedrock_PrivacyLabel" xml:space="preserve">
<value>AWS Privacy Policy</value>
</data>
<data name="AdvancedPaste_Ollama_TermsLabel" xml:space="preserve">
<value>Ollama Terms of Service</value>
</data>