tracia 0.3.10 → 0.3.12

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/index.d.mts CHANGED
@@ -8,6 +8,8 @@ interface RunVariables {
8
8
  }
9
9
  interface RunOptions {
10
10
  model?: string;
11
+ /** Run a specific prompt version instead of the latest */
12
+ version?: number;
11
13
  tags?: string[];
12
14
  userId?: string;
13
15
  sessionId?: string;
@@ -61,7 +63,8 @@ declare enum TraciaErrorCode {
61
63
  declare enum LLMProvider {
62
64
  OPENAI = "openai",
63
65
  ANTHROPIC = "anthropic",
64
- GOOGLE = "google"
66
+ GOOGLE = "google",
67
+ AMAZON_BEDROCK = "amazon_bedrock"
65
68
  }
66
69
  interface ApiSuccessResponse {
67
70
  text: string;
package/dist/index.d.ts CHANGED
@@ -8,6 +8,8 @@ interface RunVariables {
8
8
  }
9
9
  interface RunOptions {
10
10
  model?: string;
11
+ /** Run a specific prompt version instead of the latest */
12
+ version?: number;
11
13
  tags?: string[];
12
14
  userId?: string;
13
15
  sessionId?: string;
@@ -61,7 +63,8 @@ declare enum TraciaErrorCode {
61
63
  declare enum LLMProvider {
62
64
  OPENAI = "openai",
63
65
  ANTHROPIC = "anthropic",
64
- GOOGLE = "google"
66
+ GOOGLE = "google",
67
+ AMAZON_BEDROCK = "amazon_bedrock"
65
68
  }
66
69
  interface ApiSuccessResponse {
67
70
  text: string;
package/dist/index.js CHANGED
@@ -72,11 +72,12 @@ var LLMProvider = /* @__PURE__ */ ((LLMProvider2) => {
72
72
  LLMProvider2["OPENAI"] = "openai";
73
73
  LLMProvider2["ANTHROPIC"] = "anthropic";
74
74
  LLMProvider2["GOOGLE"] = "google";
75
+ LLMProvider2["AMAZON_BEDROCK"] = "amazon_bedrock";
75
76
  return LLMProvider2;
76
77
  })(LLMProvider || {});
77
78
 
78
79
  // src/client.ts
79
- var SDK_VERSION = "0.3.10";
80
+ var SDK_VERSION = "0.3.12";
80
81
  var DEFAULT_TIMEOUT_MS = 12e4;
81
82
  function mapApiErrorCodeToTraciaErrorCode(apiCode) {
82
83
  const codeMap = {
@@ -201,6 +202,9 @@ var Prompts = class {
201
202
  if (options?.model) {
202
203
  requestBody.model = options.model;
203
204
  }
205
+ if (options?.version != null) {
206
+ requestBody.version = options.version;
207
+ }
204
208
  if (options?.tags && options.tags.length > 0) {
205
209
  requestBody.tags = options.tags;
206
210
  }
@@ -328,7 +332,17 @@ var MODEL_TO_PROVIDER = {
328
332
  "gemini-2.5-flash-preview-09-2025": "google" /* GOOGLE */,
329
333
  "gemini-2.5-pro": "google" /* GOOGLE */,
330
334
  "gemini-3-pro-preview": "google" /* GOOGLE */,
331
- "gemini-3-flash-preview": "google" /* GOOGLE */
335
+ "gemini-3-flash-preview": "google" /* GOOGLE */,
336
+ // Amazon Bedrock
337
+ "anthropic.claude-haiku-4-5-20251001-v1:0": "amazon_bedrock" /* AMAZON_BEDROCK */,
338
+ "anthropic.claude-sonnet-4-20250514-v1:0": "amazon_bedrock" /* AMAZON_BEDROCK */,
339
+ "anthropic.claude-sonnet-4-5-20250929-v1:0": "amazon_bedrock" /* AMAZON_BEDROCK */,
340
+ "anthropic.claude-opus-4-5-20251101-v1:0": "amazon_bedrock" /* AMAZON_BEDROCK */,
341
+ "anthropic.claude-opus-4-6-v1": "amazon_bedrock" /* AMAZON_BEDROCK */,
342
+ "amazon.nova-micro-v1:0": "amazon_bedrock" /* AMAZON_BEDROCK */,
343
+ "amazon.nova-lite-v1:0": "amazon_bedrock" /* AMAZON_BEDROCK */,
344
+ "amazon.nova-pro-v1:0": "amazon_bedrock" /* AMAZON_BEDROCK */,
345
+ "mistral.pixtral-large-2502-v1:0": "amazon_bedrock" /* AMAZON_BEDROCK */
332
346
  };
333
347
  function getProviderForModel(modelId) {
334
348
  return MODEL_TO_PROVIDER[modelId];
@@ -339,6 +353,7 @@ var aiSdk = null;
339
353
  var openaiProvider = null;
340
354
  var anthropicProvider = null;
341
355
  var googleProvider = null;
356
+ var bedrockProvider = null;
342
357
  async function loadAISdk() {
343
358
  if (aiSdk) return aiSdk;
344
359
  try {
@@ -387,6 +402,18 @@ async function loadGoogleProvider() {
387
402
  );
388
403
  }
389
404
  }
405
+ async function loadBedrockProvider() {
406
+ if (bedrockProvider) return bedrockProvider;
407
+ try {
408
+ bedrockProvider = await import("@ai-sdk/amazon-bedrock");
409
+ return bedrockProvider;
410
+ } catch {
411
+ throw new TraciaError(
412
+ "MISSING_PROVIDER_SDK" /* MISSING_PROVIDER_SDK */,
413
+ "Amazon Bedrock provider not installed. Install it with: npm install @ai-sdk/amazon-bedrock"
414
+ );
415
+ }
416
+ }
390
417
  function combineAbortSignals(userSignal, timeoutMs) {
391
418
  if (!timeoutMs && !userSignal) return void 0;
392
419
  if (timeoutMs && !userSignal) return AbortSignal.timeout(timeoutMs);
@@ -408,10 +435,39 @@ function combineAbortSignals(userSignal, timeoutMs) {
408
435
  function sanitizeErrorMessage(message) {
409
436
  return message.replace(/\b(sk-|tr_|key-|api[_-]?key[=:\s]+)[a-zA-Z0-9_-]{10,}\b/gi, "[REDACTED]").replace(/Bearer\s+[a-zA-Z0-9_.-]+/gi, "Bearer [REDACTED]").replace(/Basic\s+[a-zA-Z0-9+/=]{20,}/gi, "Basic [REDACTED]").replace(/(authorization[=:\s]+)[^\s,}]+/gi, "$1[REDACTED]");
410
437
  }
438
+ var BEDROCK_VENDOR_PREFIXES = ["anthropic.", "amazon.", "meta.", "mistral.", "cohere.", "deepseek."];
439
+ var KNOWN_REGION_PREFIXES = ["us", "eu", "ap", "sa", "ca", "me", "af"];
440
+ function getBedrockRegionPrefix(region) {
441
+ return region.split("-")[0];
442
+ }
443
+ function applyBedrockRegionPrefix(model, region) {
444
+ const prefix = getBedrockRegionPrefix(region);
445
+ const firstDot = model.indexOf(".");
446
+ if (firstDot === -1) return `${prefix}.${model}`;
447
+ const beforeDot = model.substring(0, firstDot);
448
+ if (KNOWN_REGION_PREFIXES.includes(beforeDot)) {
449
+ return `${prefix}.${model.substring(firstDot + 1)}`;
450
+ }
451
+ return `${prefix}.${model}`;
452
+ }
453
+ function isBedrockModel(model) {
454
+ if (BEDROCK_VENDOR_PREFIXES.some((prefix) => model.startsWith(prefix))) {
455
+ return true;
456
+ }
457
+ const firstDot = model.indexOf(".");
458
+ if (firstDot > 0 && KNOWN_REGION_PREFIXES.includes(model.substring(0, firstDot))) {
459
+ const afterRegion = model.substring(firstDot + 1);
460
+ return BEDROCK_VENDOR_PREFIXES.some((prefix) => afterRegion.startsWith(prefix));
461
+ }
462
+ return false;
463
+ }
411
464
  function resolveProvider(model, explicitProvider) {
412
465
  if (explicitProvider) return explicitProvider;
413
466
  const fromRegistry = getProviderForModel(model);
414
467
  if (fromRegistry) return fromRegistry;
468
+ if (isBedrockModel(model)) {
469
+ return "amazon_bedrock" /* AMAZON_BEDROCK */;
470
+ }
415
471
  if (model.startsWith("gpt-") || model.startsWith("o1") || model.startsWith("o3") || model.startsWith("o4")) {
416
472
  return "openai" /* OPENAI */;
417
473
  }
@@ -443,6 +499,12 @@ async function getLanguageModel(provider, model, apiKey) {
443
499
  const google = createGoogleGenerativeAI({ apiKey });
444
500
  return google(model);
445
501
  }
502
+ case "amazon_bedrock" /* AMAZON_BEDROCK */: {
503
+ const { createAmazonBedrock } = await loadBedrockProvider();
504
+ const region = process.env.AWS_REGION ?? "eu-central-1";
505
+ const bedrock = apiKey ? createAmazonBedrock({ apiKey, region }) : createAmazonBedrock({ region });
506
+ return bedrock(applyBedrockRegionPrefix(model, region));
507
+ }
446
508
  default:
447
509
  throw new TraciaError(
448
510
  "UNSUPPORTED_MODEL" /* UNSUPPORTED_MODEL */,
@@ -1011,7 +1073,8 @@ var SPAN_STATUS_ERROR = "ERROR";
1011
1073
  var ENV_VAR_MAP = {
1012
1074
  ["openai" /* OPENAI */]: "OPENAI_API_KEY",
1013
1075
  ["anthropic" /* ANTHROPIC */]: "ANTHROPIC_API_KEY",
1014
- ["google" /* GOOGLE */]: "GOOGLE_API_KEY"
1076
+ ["google" /* GOOGLE */]: "GOOGLE_API_KEY",
1077
+ ["amazon_bedrock" /* AMAZON_BEDROCK */]: "BEDROCK_API_KEY"
1015
1078
  };
1016
1079
  function convertResponsesItemToMessage(item) {
1017
1080
  if ("role" in item && (item.role === "developer" || item.role === "user")) {
@@ -1686,6 +1749,7 @@ var Tracia = class {
1686
1749
  const envVar = ENV_VAR_MAP[provider];
1687
1750
  const key = process.env[envVar];
1688
1751
  if (!key) {
1752
+ if (provider === "amazon_bedrock" /* AMAZON_BEDROCK */) return "";
1689
1753
  throw new TraciaError(
1690
1754
  "MISSING_PROVIDER_API_KEY" /* MISSING_PROVIDER_API_KEY */,
1691
1755
  `Missing API key for ${provider}. Set the ${envVar} environment variable or provide providerApiKey in options.`