Compare commits
2 Commits
fix/vscode
...
bedrock_fi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
30eac026c2 | ||
|
|
9d431b4b03 |
5
.changeset/modern-cats-pick.md
Normal file
5
.changeset/modern-cats-pick.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"task-master-ai": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Improves Amazon Bedrock support
|
||||||
@@ -596,9 +596,9 @@ async function runInteractiveSetup(projectRoot) {
|
|||||||
!process.env.AWS_ACCESS_KEY_ID ||
|
!process.env.AWS_ACCESS_KEY_ID ||
|
||||||
!process.env.AWS_SECRET_ACCESS_KEY
|
!process.env.AWS_SECRET_ACCESS_KEY
|
||||||
) {
|
) {
|
||||||
console.error(
|
console.warn(
|
||||||
chalk.red(
|
chalk.yellow(
|
||||||
'Error: AWS_ACCESS_KEY_ID and/or AWS_SECRET_ACCESS_KEY environment variables are missing. Please set them before using custom Bedrock models.'
|
'Warning: AWS_ACCESS_KEY_ID and/or AWS_SECRET_ACCESS_KEY environment variables are missing. Will fallback to system configuration. (ex: aws config files or ec2 instance profiles)'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
setupSuccess = false;
|
setupSuccess = false;
|
||||||
|
|||||||
@@ -496,7 +496,14 @@ function getParametersForRole(role, explicitRoot = null) {
|
|||||||
*/
|
*/
|
||||||
function isApiKeySet(providerName, session = null, projectRoot = null) {
|
function isApiKeySet(providerName, session = null, projectRoot = null) {
|
||||||
// Define the expected environment variable name for each provider
|
// Define the expected environment variable name for each provider
|
||||||
if (providerName?.toLowerCase() === 'ollama') {
|
|
||||||
|
// Providers that don't require API keys for authentication
|
||||||
|
const providersWithoutApiKeys = [
|
||||||
|
CUSTOM_PROVIDERS.OLLAMA,
|
||||||
|
CUSTOM_PROVIDERS.BEDROCK
|
||||||
|
];
|
||||||
|
|
||||||
|
if (providersWithoutApiKeys.includes(providerName?.toLowerCase())) {
|
||||||
return true; // Indicate key status is effectively "OK"
|
return true; // Indicate key status is effectively "OK"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,20 @@
|
|||||||
{
|
{
|
||||||
|
"bedrock": [
|
||||||
|
{
|
||||||
|
"id": "us.anthropic.claude-3-7-sonnet-20250219-v1:0",
|
||||||
|
"swe_score": 0.623,
|
||||||
|
"cost_per_1m_tokens": { "input": 3, "output": 15 },
|
||||||
|
"allowed_roles": ["main", "fallback"],
|
||||||
|
"max_tokens": 65536
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "us.deepseek.r1-v1:0",
|
||||||
|
"swe_score": 0,
|
||||||
|
"cost_per_1m_tokens": { "input": 1.35, "output": 5.4 },
|
||||||
|
"allowed_roles": ["research"],
|
||||||
|
"max_tokens": 65536
|
||||||
|
}
|
||||||
|
],
|
||||||
"anthropic": [
|
"anthropic": [
|
||||||
{
|
{
|
||||||
"id": "claude-sonnet-4-20250514",
|
"id": "claude-sonnet-4-20250514",
|
||||||
|
|||||||
@@ -21,18 +21,10 @@ export class BedrockAIProvider extends BaseAIProvider {
|
|||||||
*/
|
*/
|
||||||
getClient(params) {
|
getClient(params) {
|
||||||
try {
|
try {
|
||||||
const {
|
const credentialProvider = fromNodeProviderChain();
|
||||||
profile = process.env.AWS_PROFILE || 'default',
|
|
||||||
region = process.env.AWS_DEFAULT_REGION || 'us-east-1',
|
|
||||||
baseURL
|
|
||||||
} = params;
|
|
||||||
|
|
||||||
const credentialProvider = fromNodeProviderChain({ profile });
|
|
||||||
|
|
||||||
return createAmazonBedrock({
|
return createAmazonBedrock({
|
||||||
region,
|
credentialProvider
|
||||||
credentialProvider,
|
|
||||||
...(baseURL && { baseURL })
|
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.handleError('client initialization', error);
|
this.handleError('client initialization', error);
|
||||||
|
|||||||
@@ -266,6 +266,7 @@ describe('Validation Functions', () => {
|
|||||||
expect(configManager.validateProvider('perplexity')).toBe(true);
|
expect(configManager.validateProvider('perplexity')).toBe(true);
|
||||||
expect(configManager.validateProvider('ollama')).toBe(true);
|
expect(configManager.validateProvider('ollama')).toBe(true);
|
||||||
expect(configManager.validateProvider('openrouter')).toBe(true);
|
expect(configManager.validateProvider('openrouter')).toBe(true);
|
||||||
|
expect(configManager.validateProvider('bedrock')).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('validateProvider should return false for invalid providers', () => {
|
test('validateProvider should return false for invalid providers', () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user