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 +4 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +67 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +67 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -1
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.
|
|
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.`
|