promptfoo 0.119.13 → 0.119.14

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.
Files changed (131) hide show
  1. package/dist/package.json +28 -26
  2. package/dist/src/app/assets/index-eJ2lMe94.js +51 -0
  3. package/dist/src/app/assets/{source-map-support-Bnh0UQ2S.js → source-map-support-1v4oeb7P.js} +1 -1
  4. package/dist/src/app/assets/sync-CtLQRuC1.js +1 -0
  5. package/dist/src/app/assets/{vendor-charts-T60Uk0Z3.js → vendor-charts-DnVv66VV.js} +1 -1
  6. package/dist/src/app/assets/{vendor-markdown-DLig-KJh.js → vendor-markdown-DCpQIyMA.js} +1 -1
  7. package/dist/src/app/assets/{vendor-mui-core-5BLaiG3c.js → vendor-mui-core-Boqnpf9f.js} +1 -1
  8. package/dist/src/app/assets/{vendor-mui-icons-fn39Fu2e.js → vendor-mui-icons-B8MqoVbj.js} +1 -1
  9. package/dist/src/app/assets/vendor-mui-x-CGSS6QHF.js +45 -0
  10. package/dist/src/app/assets/{vendor-utils-DYBMEuwX.js → vendor-utils-DdfHIEy8.js} +1 -1
  11. package/dist/src/app/index.html +7 -7
  12. package/dist/src/assertions/guardrails.d.ts +1 -1
  13. package/dist/src/assertions/guardrails.js +18 -9
  14. package/dist/src/assertions/index.d.ts +1 -1
  15. package/dist/src/assertions/index.js +9 -3
  16. package/dist/src/assertions/searchRubric.d.ts +3 -0
  17. package/dist/src/assertions/searchRubric.js +18 -0
  18. package/dist/src/commands/eval.js +1 -1
  19. package/dist/src/commands/modelScan.d.ts +7 -1
  20. package/dist/src/commands/modelScan.js +121 -59
  21. package/dist/src/database/index.d.ts +6 -0
  22. package/dist/src/database/index.js +11 -0
  23. package/dist/src/database/tables.d.ts +46 -24
  24. package/dist/src/envars.d.ts +17 -0
  25. package/dist/src/generated/constants.js +1 -1
  26. package/dist/src/logger.d.ts +5 -0
  27. package/dist/src/logger.js +28 -0
  28. package/dist/src/main.js +17 -6
  29. package/dist/src/matchers.d.ts +1 -0
  30. package/dist/src/matchers.js +80 -0
  31. package/dist/src/models/eval.d.ts +2 -1
  32. package/dist/src/models/eval.js +44 -2
  33. package/dist/src/prompts/grading.d.ts +1 -0
  34. package/dist/src/prompts/grading.js +26 -1
  35. package/dist/src/prompts/index.d.ts +1 -0
  36. package/dist/src/prompts/index.js +4 -1
  37. package/dist/src/providers/adaline.gateway.js +2 -2
  38. package/dist/src/providers/anthropic/defaults.d.ts +1 -1
  39. package/dist/src/providers/anthropic/defaults.js +15 -0
  40. package/dist/src/providers/azure/chat.d.ts +3 -1
  41. package/dist/src/providers/azure/chat.js +16 -3
  42. package/dist/src/providers/azure/defaults.js +660 -141
  43. package/dist/src/providers/azure/responses.d.ts +5 -0
  44. package/dist/src/providers/azure/responses.js +33 -4
  45. package/dist/src/providers/azure/types.d.ts +4 -0
  46. package/dist/src/providers/bedrock/agents.d.ts +1 -1
  47. package/dist/src/providers/bedrock/agents.js +2 -2
  48. package/dist/src/providers/bedrock/base.d.ts +40 -0
  49. package/dist/src/providers/bedrock/base.js +171 -0
  50. package/dist/src/providers/bedrock/converse.d.ts +146 -0
  51. package/dist/src/providers/bedrock/converse.js +1044 -0
  52. package/dist/src/providers/bedrock/index.d.ts +1 -34
  53. package/dist/src/providers/bedrock/index.js +4 -159
  54. package/dist/src/providers/bedrock/knowledgeBase.d.ts +1 -1
  55. package/dist/src/providers/bedrock/knowledgeBase.js +2 -2
  56. package/dist/src/providers/bedrock/nova-sonic.d.ts +2 -1
  57. package/dist/src/providers/bedrock/nova-sonic.js +2 -2
  58. package/dist/src/providers/claude-agent-sdk.d.ts +58 -1
  59. package/dist/src/providers/claude-agent-sdk.js +22 -1
  60. package/dist/src/providers/defaults.js +4 -0
  61. package/dist/src/providers/github/defaults.js +6 -6
  62. package/dist/src/providers/google/types.d.ts +25 -0
  63. package/dist/src/providers/google/util.d.ts +2 -0
  64. package/dist/src/providers/google/vertex.js +78 -22
  65. package/dist/src/providers/{groq.d.ts → groq/chat.d.ts} +26 -20
  66. package/dist/src/providers/groq/chat.js +79 -0
  67. package/dist/src/providers/groq/index.d.ts +5 -0
  68. package/dist/src/providers/groq/index.js +24 -0
  69. package/dist/src/providers/groq/responses.d.ts +106 -0
  70. package/dist/src/providers/groq/responses.js +64 -0
  71. package/dist/src/providers/groq/types.d.ts +44 -0
  72. package/dist/src/providers/groq/types.js +3 -0
  73. package/dist/src/providers/groq/util.d.ts +15 -0
  74. package/dist/src/providers/groq/util.js +28 -0
  75. package/dist/src/providers/mcp/client.d.ts +8 -0
  76. package/dist/src/providers/mcp/client.js +60 -10
  77. package/dist/src/providers/mcp/types.d.ts +21 -0
  78. package/dist/src/providers/openai/chatkit-pool.d.ts +114 -0
  79. package/dist/src/providers/openai/chatkit-pool.js +548 -0
  80. package/dist/src/providers/openai/chatkit-types.d.ts +73 -0
  81. package/dist/src/providers/openai/chatkit-types.js +3 -0
  82. package/dist/src/providers/openai/chatkit.d.ts +76 -0
  83. package/dist/src/providers/openai/chatkit.js +879 -0
  84. package/dist/src/providers/openai/codex-sdk.d.ts +109 -0
  85. package/dist/src/providers/openai/codex-sdk.js +346 -0
  86. package/dist/src/providers/openai/defaults.d.ts +2 -0
  87. package/dist/src/providers/openai/defaults.js +10 -4
  88. package/dist/src/providers/registry.js +48 -9
  89. package/dist/src/providers/responses/types.d.ts +1 -1
  90. package/dist/src/providers/sagemaker.d.ts +2 -2
  91. package/dist/src/providers/webSearchUtils.d.ts +17 -0
  92. package/dist/src/providers/webSearchUtils.js +169 -0
  93. package/dist/src/providers/xai/chat.d.ts +61 -0
  94. package/dist/src/providers/xai/chat.js +68 -3
  95. package/dist/src/providers/xai/responses.d.ts +189 -0
  96. package/dist/src/providers/xai/responses.js +268 -0
  97. package/dist/src/redteam/constants/plugins.d.ts +1 -1
  98. package/dist/src/redteam/constants/plugins.js +1 -1
  99. package/dist/src/redteam/constants/strategies.d.ts +1 -1
  100. package/dist/src/redteam/constants/strategies.js +1 -0
  101. package/dist/src/redteam/plugins/vlguard.d.ts +53 -4
  102. package/dist/src/redteam/plugins/vlguard.js +362 -46
  103. package/dist/src/redteam/providers/constants.d.ts +2 -2
  104. package/dist/src/redteam/providers/constants.js +2 -2
  105. package/dist/src/redteam/providers/crescendo/index.d.ts +1 -1
  106. package/dist/src/redteam/providers/crescendo/index.js +5 -3
  107. package/dist/src/redteam/providers/hydra/index.js +1 -1
  108. package/dist/src/server/routes/modelAudit.js +4 -4
  109. package/dist/src/share.js +4 -2
  110. package/dist/src/telemetry.js +44 -8
  111. package/dist/src/types/env.d.ts +3 -0
  112. package/dist/src/types/env.js +1 -0
  113. package/dist/src/types/index.d.ts +896 -615
  114. package/dist/src/types/index.js +1 -0
  115. package/dist/src/types/providers.d.ts +1 -0
  116. package/dist/src/types/tracing.d.ts +3 -0
  117. package/dist/src/util/database.d.ts +6 -4
  118. package/dist/src/util/file.js +6 -4
  119. package/dist/src/util/modelAuditCliParser.d.ts +4 -4
  120. package/dist/src/util/xlsx.js +52 -26
  121. package/dist/src/validators/providers.d.ts +142 -122
  122. package/dist/src/validators/providers.js +4 -6
  123. package/dist/src/validators/redteam.d.ts +36 -28
  124. package/dist/src/validators/redteam.js +9 -3
  125. package/dist/tsconfig.tsbuildinfo +1 -1
  126. package/package.json +28 -26
  127. package/dist/drizzle/CLAUDE.md +0 -65
  128. package/dist/src/app/assets/index-DifT6VGT.js +0 -51
  129. package/dist/src/app/assets/sync-Oo-W_Rbj.js +0 -1
  130. package/dist/src/app/assets/vendor-mui-x-C2xF-yiO.js +0 -45
  131. package/dist/src/providers/groq.js +0 -48
@@ -5,6 +5,11 @@ export declare class AzureResponsesProvider extends AzureGenericProvider {
5
5
  private processor;
6
6
  constructor(...args: ConstructorParameters<typeof AzureGenericProvider>);
7
7
  private initializeMCP;
8
+ /**
9
+ * Check if the current deployment is a reasoning model.
10
+ * Reasoning models use max_completion_tokens instead of max_tokens,
11
+ * don't support temperature, and accept reasoning_effort parameter.
12
+ */
8
13
  isReasoningModel(): boolean;
9
14
  supportsTemperature(): boolean;
10
15
  getAzureResponsesBody(prompt: string, context?: CallApiContextParams, _callApiOptions?: CallApiOptionsParams): Promise<Record<string, any>>;
@@ -35,11 +35,36 @@ class AzureResponsesProvider extends generic_1.AzureGenericProvider {
35
35
  async initializeMCP() {
36
36
  // TODO: Initialize MCP if needed
37
37
  }
38
+ /**
39
+ * Check if the current deployment is a reasoning model.
40
+ * Reasoning models use max_completion_tokens instead of max_tokens,
41
+ * don't support temperature, and accept reasoning_effort parameter.
42
+ */
38
43
  isReasoningModel() {
39
- return (this.deploymentName.startsWith('o1') ||
40
- this.deploymentName.startsWith('o3') ||
41
- this.deploymentName.startsWith('o4') ||
42
- this.deploymentName.startsWith('gpt-5'));
44
+ // Check explicit config flags first (match chat.ts behavior)
45
+ if (this.config.isReasoningModel || this.config.o1) {
46
+ return true;
47
+ }
48
+ const lowerName = this.deploymentName.toLowerCase();
49
+ return (
50
+ // OpenAI reasoning models
51
+ lowerName.startsWith('o1') ||
52
+ lowerName.includes('-o1') ||
53
+ lowerName.startsWith('o3') ||
54
+ lowerName.includes('-o3') ||
55
+ lowerName.startsWith('o4') ||
56
+ lowerName.includes('-o4') ||
57
+ // GPT-5 series (reasoning by default)
58
+ lowerName.startsWith('gpt-5') ||
59
+ lowerName.includes('-gpt-5') ||
60
+ // DeepSeek reasoning models
61
+ lowerName.includes('deepseek-r1') ||
62
+ lowerName.includes('deepseek_r1') ||
63
+ // Microsoft Phi reasoning models
64
+ lowerName.includes('phi-4-reasoning') ||
65
+ lowerName.includes('phi-4-mini-reasoning') ||
66
+ // xAI Grok reasoning models
67
+ (lowerName.includes('grok') && lowerName.includes('reasoning')));
43
68
  }
44
69
  supportsTemperature() {
45
70
  return !this.isReasoningModel();
@@ -107,6 +132,10 @@ class AzureResponsesProvider extends generic_1.AzureGenericProvider {
107
132
  else {
108
133
  textFormat = { format: { type: 'text' } };
109
134
  }
135
+ // Add verbosity for reasoning models if configured
136
+ if (isReasoningModel && config.verbosity) {
137
+ textFormat = { ...textFormat, verbosity: config.verbosity };
138
+ }
110
139
  // Azure Responses API uses 'model' field for deployment name
111
140
  const body = {
112
141
  model: this.deploymentName,
@@ -85,6 +85,10 @@ export interface AzureCompletionOptions {
85
85
  stop?: string[];
86
86
  seed?: number;
87
87
  reasoning_effort?: 'low' | 'medium' | 'high';
88
+ /**
89
+ * Controls the verbosity of the model's responses. Only used for reasoning models (GPT-5, o1, o3, etc.).
90
+ */
91
+ verbosity?: 'low' | 'medium' | 'high';
88
92
  /**
89
93
  * If set, automatically call these functions when the model calls them.
90
94
  * Keys are function names, values are either functions or strings (JavaScript code).
@@ -1,4 +1,4 @@
1
- import { AwsBedrockGenericProvider } from './index';
1
+ import { AwsBedrockGenericProvider } from './base';
2
2
  import type { BedrockAgentRuntimeClient } from '@aws-sdk/client-bedrock-agent-runtime';
3
3
  import type { EnvOverrides } from '../../types/env';
4
4
  import type { ApiProvider, ProviderResponse } from '../../types/providers';
@@ -41,7 +41,7 @@ const cache_1 = require("../../cache");
41
41
  const envars_1 = require("../../envars");
42
42
  const logger_1 = __importDefault(require("../../logger"));
43
43
  const telemetry_1 = __importDefault(require("../../telemetry"));
44
- const index_1 = require("./index");
44
+ const base_1 = require("./base");
45
45
  /**
46
46
  * AWS Bedrock Agents provider for invoking deployed AI agents.
47
47
  * Supports all Bedrock Agents features including memory, knowledge bases, action groups,
@@ -81,7 +81,7 @@ const index_1 = require("./index");
81
81
  * maximumLength: 2048
82
82
  * ```
83
83
  */
84
- class AwsBedrockAgentsProvider extends index_1.AwsBedrockGenericProvider {
84
+ class AwsBedrockAgentsProvider extends base_1.AwsBedrockGenericProvider {
85
85
  constructor(agentId, options = {}) {
86
86
  super(agentId, options);
87
87
  // Validate required fields
@@ -0,0 +1,40 @@
1
+ /**
2
+ * AWS Bedrock Base Provider
3
+ *
4
+ * Contains the abstract base class for all Bedrock providers.
5
+ * This is extracted to avoid circular dependency issues.
6
+ */
7
+ import type { BedrockRuntime, Trace } from '@aws-sdk/client-bedrock-runtime';
8
+ import type { AwsCredentialIdentity, AwsCredentialIdentityProvider } from '@aws-sdk/types';
9
+ import type { EnvOverrides } from '../../types/env';
10
+ export interface BedrockOptions {
11
+ accessKeyId?: string;
12
+ apiKey?: string;
13
+ profile?: string;
14
+ region?: string;
15
+ secretAccessKey?: string;
16
+ sessionToken?: string;
17
+ guardrailIdentifier?: string;
18
+ guardrailVersion?: string;
19
+ trace?: Trace;
20
+ showThinking?: boolean;
21
+ endpoint?: string;
22
+ }
23
+ export declare abstract class AwsBedrockGenericProvider {
24
+ modelName: string;
25
+ env?: EnvOverrides;
26
+ bedrock?: BedrockRuntime;
27
+ config: BedrockOptions;
28
+ constructor(modelName: string, options?: {
29
+ config?: BedrockOptions;
30
+ id?: string;
31
+ env?: EnvOverrides;
32
+ });
33
+ id(): string;
34
+ toString(): string;
35
+ protected getApiKey(): string | undefined;
36
+ getCredentials(): Promise<AwsCredentialIdentity | AwsCredentialIdentityProvider | undefined>;
37
+ getBedrockInstance(): Promise<BedrockRuntime>;
38
+ getRegion(): string;
39
+ }
40
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ /**
3
+ * AWS Bedrock Base Provider
4
+ *
5
+ * Contains the abstract base class for all Bedrock providers.
6
+ * This is extracted to avoid circular dependency issues.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __importDefault = (this && this.__importDefault) || function (mod) {
42
+ return (mod && mod.__esModule) ? mod : { "default": mod };
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.AwsBedrockGenericProvider = void 0;
46
+ const envars_1 = require("../../envars");
47
+ const logger_1 = __importDefault(require("../../logger"));
48
+ const telemetry_1 = __importDefault(require("../../telemetry"));
49
+ class AwsBedrockGenericProvider {
50
+ constructor(modelName, options = {}) {
51
+ const { config, id, env } = options;
52
+ this.env = env;
53
+ this.modelName = modelName;
54
+ this.config = config || {};
55
+ this.id = id ? () => id : this.id;
56
+ if (this.config.guardrailIdentifier) {
57
+ telemetry_1.default.record('feature_used', {
58
+ feature: 'guardrail',
59
+ provider: 'bedrock',
60
+ });
61
+ }
62
+ }
63
+ id() {
64
+ return `bedrock:${this.modelName}`;
65
+ }
66
+ toString() {
67
+ return `[Amazon Bedrock Provider ${this.modelName}]`;
68
+ }
69
+ getApiKey() {
70
+ return this.config.apiKey || (0, envars_1.getEnvString)('AWS_BEARER_TOKEN_BEDROCK');
71
+ }
72
+ async getCredentials() {
73
+ // 1. Explicit credentials have ABSOLUTE highest priority (as documented)
74
+ if (this.config.accessKeyId && this.config.secretAccessKey) {
75
+ logger_1.default.debug(`Using credentials from config file`);
76
+ return {
77
+ accessKeyId: this.config.accessKeyId,
78
+ secretAccessKey: this.config.secretAccessKey,
79
+ sessionToken: this.config.sessionToken,
80
+ };
81
+ }
82
+ // 2. API key authentication as second priority
83
+ const apiKey = this.getApiKey();
84
+ if (apiKey) {
85
+ logger_1.default.debug(`Using Bedrock API key authentication`);
86
+ // For Bedrock API keys, we don't need traditional AWS credentials
87
+ // The API key will be handled in the request headers
88
+ return undefined;
89
+ }
90
+ // 3. SSO profile as third priority
91
+ if (this.config.profile) {
92
+ logger_1.default.debug(`Using SSO profile: ${this.config.profile}`);
93
+ try {
94
+ const { fromSSO } = await Promise.resolve().then(() => __importStar(require('@aws-sdk/credential-provider-sso')));
95
+ return fromSSO({ profile: this.config.profile });
96
+ }
97
+ catch (err) {
98
+ logger_1.default.error(`Error loading @aws-sdk/credential-provider-sso: ${err}`);
99
+ throw new Error('The @aws-sdk/credential-provider-sso package is required for SSO profiles. Please install it: npm install @aws-sdk/credential-provider-sso');
100
+ }
101
+ }
102
+ // 4. AWS default credential chain (lowest priority)
103
+ logger_1.default.debug(`No explicit credentials in config, falling back to AWS default chain`);
104
+ return undefined;
105
+ }
106
+ async getBedrockInstance() {
107
+ if (!this.bedrock) {
108
+ let handler;
109
+ const apiKey = this.getApiKey();
110
+ // Create request handler for proxy or API key scenarios
111
+ if ((0, envars_1.getEnvString)('HTTP_PROXY') || (0, envars_1.getEnvString)('HTTPS_PROXY') || apiKey) {
112
+ try {
113
+ const { NodeHttpHandler } = await Promise.resolve().then(() => __importStar(require('@smithy/node-http-handler')));
114
+ const { ProxyAgent } = await Promise.resolve().then(() => __importStar(require('proxy-agent')));
115
+ // Create handler with proxy support if needed
116
+ const proxyAgent = (0, envars_1.getEnvString)('HTTP_PROXY') || (0, envars_1.getEnvString)('HTTPS_PROXY')
117
+ ? new ProxyAgent()
118
+ : undefined;
119
+ handler = new NodeHttpHandler({
120
+ ...(proxyAgent ? { httpsAgent: proxyAgent } : {}),
121
+ requestTimeout: 300000, // 5 minutes
122
+ });
123
+ // Add Bearer token middleware for API key authentication
124
+ if (apiKey) {
125
+ const originalHandle = handler.handle.bind(handler);
126
+ handler.handle = async (request, options) => {
127
+ // Add Authorization header with Bearer token
128
+ request.headers = {
129
+ ...request.headers,
130
+ Authorization: `Bearer ${apiKey}`,
131
+ };
132
+ return originalHandle(request, options);
133
+ };
134
+ }
135
+ }
136
+ catch {
137
+ const reason = apiKey
138
+ ? 'API key authentication requires the @smithy/node-http-handler package'
139
+ : 'Proxy configuration requires the @smithy/node-http-handler package';
140
+ throw new Error(`${reason}. Please install it in your project or globally.`);
141
+ }
142
+ }
143
+ try {
144
+ const { BedrockRuntime } = await Promise.resolve().then(() => __importStar(require('@aws-sdk/client-bedrock-runtime')));
145
+ const credentials = await this.getCredentials();
146
+ const bedrock = new BedrockRuntime({
147
+ region: this.getRegion(),
148
+ maxAttempts: (0, envars_1.getEnvInt)('AWS_BEDROCK_MAX_RETRIES', 10),
149
+ retryMode: 'adaptive',
150
+ ...(credentials ? { credentials } : {}),
151
+ ...(handler ? { requestHandler: handler } : {}),
152
+ ...(this.config.endpoint ? { endpoint: this.config.endpoint } : {}),
153
+ });
154
+ this.bedrock = bedrock;
155
+ }
156
+ catch (err) {
157
+ logger_1.default.error(`Error creating BedrockRuntime: ${err}`);
158
+ throw new Error('The @aws-sdk/client-bedrock-runtime package is required as a peer dependency. Please install it in your project or globally.');
159
+ }
160
+ }
161
+ return this.bedrock;
162
+ }
163
+ getRegion() {
164
+ return (this.config?.region ||
165
+ this.env?.AWS_BEDROCK_REGION ||
166
+ (0, envars_1.getEnvString)('AWS_BEDROCK_REGION') ||
167
+ 'us-east-1');
168
+ }
169
+ }
170
+ exports.AwsBedrockGenericProvider = AwsBedrockGenericProvider;
171
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1,146 @@
1
+ /**
2
+ * AWS Bedrock Converse API Provider
3
+ *
4
+ * This provider implements the AWS Bedrock Converse API, which provides a unified
5
+ * interface for all Bedrock models. It supports:
6
+ * - Extended thinking (reasoning/ultrathink) for Claude models
7
+ * - Tool calling with standardized format
8
+ * - Streaming responses via ConverseStream
9
+ * - Performance configuration (latency optimization, service tiers)
10
+ * - Guardrails integration
11
+ * - Cache token tracking
12
+ */
13
+ import { AwsBedrockGenericProvider, type BedrockOptions } from './base';
14
+ import type { Message, SystemContentBlock } from '@aws-sdk/client-bedrock-runtime';
15
+ import type { DocumentType } from '@smithy/types';
16
+ import type { EnvOverrides } from '../../types/env';
17
+ import type { ApiProvider, CallApiContextParams, ProviderResponse } from '../../types/providers';
18
+ /**
19
+ * Configuration options for the Bedrock Converse API provider
20
+ * Extends base BedrockOptions with Converse-specific parameters
21
+ */
22
+ export interface BedrockConverseOptions extends BedrockOptions {
23
+ maxTokens?: number;
24
+ max_tokens?: number;
25
+ temperature?: number;
26
+ topP?: number;
27
+ top_p?: number;
28
+ stopSequences?: string[];
29
+ stop?: string[];
30
+ thinking?: {
31
+ type: 'enabled';
32
+ budget_tokens: number;
33
+ };
34
+ performanceConfig?: {
35
+ latency: 'standard' | 'optimized';
36
+ };
37
+ serviceTier?: {
38
+ type: 'priority' | 'default' | 'flex';
39
+ };
40
+ tools?: BedrockConverseToolConfig[];
41
+ toolChoice?: 'auto' | 'any' | {
42
+ tool: {
43
+ name: string;
44
+ };
45
+ };
46
+ functionToolCallbacks?: Record<string, string | Function>;
47
+ additionalModelRequestFields?: Record<string, unknown>;
48
+ additionalModelResponseFieldPaths?: string[];
49
+ streaming?: boolean;
50
+ }
51
+ /**
52
+ * Tool configuration for Converse API
53
+ */
54
+ export interface BedrockConverseToolConfig {
55
+ toolSpec?: {
56
+ name: string;
57
+ description?: string;
58
+ inputSchema?: {
59
+ json: DocumentType;
60
+ };
61
+ };
62
+ type?: 'function';
63
+ function?: {
64
+ name: string;
65
+ description?: string;
66
+ parameters?: Record<string, unknown>;
67
+ };
68
+ name?: string;
69
+ description?: string;
70
+ input_schema?: Record<string, unknown>;
71
+ }
72
+ /**
73
+ * Parse prompt into Converse API message format
74
+ */
75
+ export declare function parseConverseMessages(prompt: string): {
76
+ messages: Message[];
77
+ system?: SystemContentBlock[];
78
+ };
79
+ /**
80
+ * AWS Bedrock Converse API Provider
81
+ */
82
+ export declare class AwsBedrockConverseProvider extends AwsBedrockGenericProvider implements ApiProvider {
83
+ config: BedrockConverseOptions;
84
+ private loadedFunctionCallbacks;
85
+ constructor(modelName: string, options?: {
86
+ config?: BedrockConverseOptions;
87
+ id?: string;
88
+ env?: EnvOverrides;
89
+ });
90
+ id(): string;
91
+ toString(): string;
92
+ /**
93
+ * Loads a function from an external file
94
+ * @param fileRef The file reference in the format 'file://path/to/file:functionName'
95
+ * @returns The loaded function
96
+ */
97
+ private loadExternalFunction;
98
+ /**
99
+ * Executes a function callback with proper error handling
100
+ */
101
+ private executeFunctionCallback;
102
+ /**
103
+ * Build the inference configuration from options
104
+ */
105
+ private buildInferenceConfig;
106
+ /**
107
+ * Build the tool configuration from options
108
+ */
109
+ private buildToolConfig;
110
+ /**
111
+ * Build the guardrail configuration
112
+ */
113
+ private buildGuardrailConfig;
114
+ /**
115
+ * Build additional model request fields (including thinking config)
116
+ */
117
+ private buildAdditionalModelRequestFields;
118
+ /**
119
+ * Build performance configuration
120
+ */
121
+ private buildPerformanceConfig;
122
+ /**
123
+ * Build service tier configuration
124
+ */
125
+ private buildServiceTier;
126
+ /**
127
+ * Main API call using Converse API
128
+ */
129
+ callApi(prompt: string, context?: CallApiContextParams): Promise<ProviderResponse>;
130
+ /**
131
+ * Parse the Converse API response into ProviderResponse format
132
+ */
133
+ private parseResponse;
134
+ /**
135
+ * Streaming API call using ConverseStream
136
+ *
137
+ * Note: functionToolCallbacks are not executed in streaming mode.
138
+ * Tool use blocks are captured and returned in the output, but callbacks
139
+ * are not automatically invoked. Use non-streaming mode if you need
140
+ * automatic tool callback execution.
141
+ */
142
+ callApiStreaming(prompt: string, context?: CallApiContextParams): Promise<ProviderResponse & {
143
+ stream?: AsyncIterable<string>;
144
+ }>;
145
+ }
146
+ //# sourceMappingURL=converse.d.ts.map