@bestdefense/bd-agent 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -47,9 +47,9 @@ async function runSetup() {
47
47
  validate: (input) => input.length > 0 || 'Secret Access Key is required'
48
48
  },
49
49
  {
50
- type: 'input',
50
+ type: 'editor',
51
51
  name: 'AWS_SESSION_TOKEN',
52
- message: 'AWS Session Token (optional):'
52
+ message: 'AWS Session Token (optional - press Enter to open editor for long tokens):'
53
53
  },
54
54
  {
55
55
  type: 'input',
@@ -58,12 +58,55 @@ async function runSetup() {
58
58
  default: 'us-east-1'
59
59
  },
60
60
  {
61
- type: 'input',
61
+ type: 'list',
62
62
  name: 'BEDROCK_MODEL_ID',
63
63
  message: 'Bedrock Model ID:',
64
+ choices: [
65
+ { name: 'Claude 3.5 Sonnet v2 (Latest)', value: 'anthropic.claude-3-5-sonnet-20241022-v2:0' },
66
+ { name: 'Claude 3.5 Sonnet v1', value: 'anthropic.claude-3-5-sonnet-20240620-v1:0' },
67
+ { name: 'Claude 3 Sonnet', value: 'anthropic.claude-3-sonnet-20240229-v1:0' },
68
+ { name: 'Claude 3 Haiku', value: 'anthropic.claude-3-haiku-20240307-v1:0' },
69
+ { name: 'Claude Instant', value: 'anthropic.claude-instant-v1' },
70
+ { name: '--- Inference Profile Required ---', value: 'divider', disabled: true },
71
+ { name: 'Claude Opus 4 (requires setup)', value: 'opus-setup' },
72
+ { name: 'Custom Model/Profile (enter manually)', value: 'custom' }
73
+ ],
64
74
  default: 'anthropic.claude-3-5-sonnet-20241022-v2:0'
75
+ },
76
+ {
77
+ type: 'input',
78
+ name: 'CUSTOM_MODEL_ID',
79
+ message: 'Enter custom model ID:',
80
+ when: (answers) => answers.BEDROCK_MODEL_ID === 'custom'
65
81
  }
66
82
  ]);
83
+ // Handle special cases
84
+ if (answers.BEDROCK_MODEL_ID === 'opus-setup') {
85
+ console.log(chalk_1.default.yellow('\n⚠️ Claude Opus 4 requires an inference profile.'));
86
+ console.log(chalk_1.default.blue('\nOption 1: Try region-prefixed model ID'));
87
+ console.log(chalk_1.default.gray(`Example: ${answers.AWS_REGION}.anthropic.claude-opus-4-20250514-v1:0`));
88
+ const useRegionPrefix = await inquirer_1.default.prompt([{
89
+ type: 'confirm',
90
+ name: 'usePrefix',
91
+ message: 'Try using region-prefixed model ID?',
92
+ default: true
93
+ }]);
94
+ if (useRegionPrefix.usePrefix) {
95
+ answers.BEDROCK_MODEL_ID = `${answers.AWS_REGION}.anthropic.claude-opus-4-20250514-v1:0`;
96
+ }
97
+ else {
98
+ console.log(chalk_1.default.blue('\nOption 2: Create an inference profile'));
99
+ console.log('1. Go to: https://console.aws.amazon.com/bedrock/');
100
+ console.log('2. Create an inference profile for Claude Opus 4');
101
+ console.log('3. Copy the ARN and run bd-agent setup again');
102
+ console.log('\nFor now, using Claude 3.5 Sonnet as fallback.');
103
+ answers.BEDROCK_MODEL_ID = 'anthropic.claude-3-5-sonnet-20241022-v2:0';
104
+ }
105
+ }
106
+ else if (answers.BEDROCK_MODEL_ID === 'custom' && answers.CUSTOM_MODEL_ID) {
107
+ answers.BEDROCK_MODEL_ID = answers.CUSTOM_MODEL_ID;
108
+ delete answers.CUSTOM_MODEL_ID;
109
+ }
67
110
  (0, config_1.saveConfig)(answers);
68
111
  console.log(chalk_1.default.green('\n✓ Configuration saved successfully!'));
69
112
  console.log(chalk_1.default.gray('You can now use: bd-agent chat'));
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,wDAAgC;AAChC,2CAA4D;AAC5D,0CAA4C;AAC5C,kDAA0C;AAE1C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,0DAA0D,CAAC;KACvE,OAAO,CAAC,sBAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;KACxD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC,IAAA,uBAAc,GAAE,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kDAAkD,CAAC,CAAC,CAAC;QAC9E,MAAM,QAAQ,EAAE,CAAC;IACnB,CAAC;IACD,MAAM,IAAA,gBAAS,EAAC,OAAO,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEpB,KAAK,UAAU,QAAQ;IACrB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC,CAAC;IAE/E,MAAM,OAAO,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC;QACpC;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,oBAAoB;YAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,2BAA2B;SACrE;QACD;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,wBAAwB;YACjC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,+BAA+B;SACzE;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,+BAA+B;SACzC;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,WAAW;SACrB;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,mBAAmB;YAC5B,OAAO,EAAE,2CAA2C;SACrD;KACF,CAAC,CAAC;IAEH,IAAA,mBAAU,EAAC,OAAO,CAAC,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bedrock-client.d.ts","sourceRoot":"","sources":["../../src/services/bedrock-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,qBAAqB,EAErB,YAAY,EAEZ,YAAY,EAGb,MAAM,iCAAiC,CAAC;AAGzC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAS;;IAclB,WAAW,CACf,QAAQ,EAAE,cAAc,EAAE,EAC1B,KAAK,CAAC,EAAE,WAAW,EAAE,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,qBAAqB,CAAC;IAiC1B,aAAa,CAClB,QAAQ,EAAE,cAAc,EAAE,EAC1B,KAAK,CAAC,EAAE,WAAW,EAAE,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,cAAc,CAAC,MAAM,GAAG,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC;CAaxD"}
1
+ {"version":3,"file":"bedrock-client.d.ts","sourceRoot":"","sources":["../../src/services/bedrock-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,qBAAqB,EAErB,YAAY,EAEZ,YAAY,EAGb,MAAM,iCAAiC,CAAC;AAIzC,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QACZ,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;CACH;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAS;;IAoClB,WAAW,CACf,QAAQ,EAAE,cAAc,EAAE,EAC1B,KAAK,CAAC,EAAE,WAAW,EAAE,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,qBAAqB,CAAC;IAwC1B,aAAa,CAClB,QAAQ,EAAE,cAAc,EAAE,EAC1B,KAAK,CAAC,EAAE,WAAW,EAAE,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,cAAc,CAAC,MAAM,GAAG,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC;CAaxD"}
@@ -1,51 +1,81 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.BedrockClient = void 0;
4
7
  const client_bedrock_runtime_1 = require("@aws-sdk/client-bedrock-runtime");
5
8
  const config_1 = require("../utils/config");
9
+ const chalk_1 = __importDefault(require("chalk"));
6
10
  class BedrockClient {
7
11
  client;
8
12
  modelId;
9
13
  constructor() {
10
- this.client = new client_bedrock_runtime_1.BedrockRuntimeClient({
11
- region: config_1.config.AWS_REGION || 'us-east-1',
12
- credentials: {
14
+ const clientConfig = {
15
+ region: config_1.config.AWS_REGION || 'us-east-1'
16
+ };
17
+ // Only add credentials if they are properly defined
18
+ if (config_1.config.AWS_ACCESS_KEY_ID && config_1.config.AWS_SECRET_ACCESS_KEY) {
19
+ clientConfig.credentials = {
13
20
  accessKeyId: config_1.config.AWS_ACCESS_KEY_ID,
14
- secretAccessKey: config_1.config.AWS_SECRET_ACCESS_KEY,
15
- sessionToken: config_1.config.AWS_SESSION_TOKEN
21
+ secretAccessKey: config_1.config.AWS_SECRET_ACCESS_KEY
22
+ };
23
+ // Only add session token if it exists and is not empty
24
+ if (config_1.config.AWS_SESSION_TOKEN && config_1.config.AWS_SESSION_TOKEN.trim()) {
25
+ clientConfig.credentials.sessionToken = config_1.config.AWS_SESSION_TOKEN.trim();
16
26
  }
17
- });
27
+ }
28
+ try {
29
+ this.client = new client_bedrock_runtime_1.BedrockRuntimeClient(clientConfig);
30
+ }
31
+ catch (error) {
32
+ console.error('Failed to initialize Bedrock client:', error);
33
+ throw new Error('Invalid AWS credentials. Please check your configuration.');
34
+ }
35
+ // Support both model IDs and inference profile ARNs
18
36
  this.modelId = config_1.config.BEDROCK_MODEL_ID || 'anthropic.claude-3-5-sonnet-20241022-v2:0';
37
+ // Log if using an inference profile
38
+ if (this.modelId.startsWith('arn:') || this.modelId.includes('.anthropic.')) {
39
+ console.log(chalk_1.default.gray(`Using inference profile: ${this.modelId}`));
40
+ }
19
41
  }
20
42
  async sendMessage(messages, tools, systemPrompt) {
21
- const formattedMessages = messages.map(msg => ({
22
- role: msg.role,
23
- content: typeof msg.content === 'string'
24
- ? [{ text: msg.content }]
25
- : msg.content
26
- }));
27
- const input = {
28
- modelId: this.modelId,
29
- messages: formattedMessages,
30
- system: systemPrompt ? [{ text: systemPrompt }] : undefined,
31
- toolConfig: tools ? {
32
- tools: tools.map(tool => ({
33
- toolSpec: {
34
- name: tool.name,
35
- description: tool.description,
36
- inputSchema: {
37
- json: tool.input_schema
43
+ try {
44
+ const formattedMessages = messages.map(msg => ({
45
+ role: msg.role,
46
+ content: typeof msg.content === 'string'
47
+ ? [{ text: msg.content }]
48
+ : msg.content
49
+ }));
50
+ const input = {
51
+ modelId: this.modelId,
52
+ messages: formattedMessages,
53
+ system: systemPrompt ? [{ text: systemPrompt }] : undefined,
54
+ toolConfig: tools ? {
55
+ tools: tools.map(tool => ({
56
+ toolSpec: {
57
+ name: tool.name,
58
+ description: tool.description,
59
+ inputSchema: {
60
+ json: tool.input_schema
61
+ }
38
62
  }
39
- }
40
- }))
41
- } : undefined,
42
- inferenceConfig: {
43
- maxTokens: 4096,
44
- temperature: 0.0
63
+ }))
64
+ } : undefined,
65
+ inferenceConfig: {
66
+ maxTokens: 4096,
67
+ temperature: 0.0
68
+ }
69
+ };
70
+ const command = new client_bedrock_runtime_1.ConverseCommand(input);
71
+ return await this.client.send(command);
72
+ }
73
+ catch (error) {
74
+ if (error.name === 'CredentialsProviderError' || error.message?.includes('credential')) {
75
+ throw new Error('AWS credentials are invalid or expired. Please run: bd-agent setup');
45
76
  }
46
- };
47
- const command = new client_bedrock_runtime_1.ConverseCommand(input);
48
- return await this.client.send(command);
77
+ throw error;
78
+ }
49
79
  }
50
80
  async *streamMessage(messages, tools, systemPrompt) {
51
81
  const response = await this.sendMessage(messages, tools, systemPrompt);
@@ -1 +1 @@
1
- {"version":3,"file":"bedrock-client.js","sourceRoot":"","sources":["../../src/services/bedrock-client.ts"],"names":[],"mappings":";;;AAAA,4EAWyC;AACzC,4CAAyC;AAiBzC,MAAa,aAAa;IAChB,MAAM,CAAuB;IAC7B,OAAO,CAAS;IAExB;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,6CAAoB,CAAC;YACrC,MAAM,EAAE,eAAM,CAAC,UAAU,IAAI,WAAW;YACxC,WAAW,EAAE;gBACX,WAAW,EAAE,eAAM,CAAC,iBAAkB;gBACtC,eAAe,EAAE,eAAM,CAAC,qBAAsB;gBAC9C,YAAY,EAAE,eAAM,CAAC,iBAAiB;aACvC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,eAAM,CAAC,gBAAgB,IAAI,2CAA2C,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,WAAW,CACf,QAA0B,EAC1B,KAAqB,EACrB,YAAqB;QAErB,MAAM,iBAAiB,GAAc,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACxD,IAAI,EAAE,GAAG,CAAC,IAAwB;YAClC,OAAO,EAAE,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;gBACtC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;gBACzB,CAAC,CAAC,GAAG,CAAC,OAAO;SAChB,CAAC,CAAC,CAAC;QAEJ,MAAM,KAAK,GAAyB;YAClC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,iBAAiB;YAC3B,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;YAC3D,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;gBAClB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACxB,QAAQ,EAAE;wBACR,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,WAAW,EAAE;4BACX,IAAI,EAAE,IAAI,CAAC,YAAY;yBACxB;qBACF;iBACF,CAAC,CAAC;aACJ,CAAC,CAAC,CAAC,SAAS;YACb,eAAe,EAAE;gBACf,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,GAAG;aACjB;SACF,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,wCAAe,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAA,CAAE,aAAa,CAClB,QAA0B,EAC1B,KAAqB,EACrB,YAAqB;QAErB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;QAEvE,IAAI,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;YACtC,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpD,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBAClC,MAAM,KAAK,CAAC,IAAI,CAAC;gBACnB,CAAC;qBAAM,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAC/C,MAAM,KAAK,CAAC,OAAO,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAtED,sCAsEC"}
1
+ {"version":3,"file":"bedrock-client.js","sourceRoot":"","sources":["../../src/services/bedrock-client.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bestdefense/bd-agent",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "An AI-powered coding assistant CLI that connects to AWS Bedrock",
5
5
  "main": "dist/index.js",
6
6
  "bin": {