@tensorcost/sdk 0.3.1 → 0.6.0

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 (51) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/README.md +65 -4
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +22 -0
  5. package/dist/config.js.map +1 -1
  6. package/dist/errors.d.ts +20 -0
  7. package/dist/errors.d.ts.map +1 -1
  8. package/dist/errors.js +22 -0
  9. package/dist/errors.js.map +1 -1
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/providers/anthropic.d.ts +2 -1
  14. package/dist/providers/anthropic.d.ts.map +1 -1
  15. package/dist/providers/anthropic.js +104 -12
  16. package/dist/providers/anthropic.js.map +1 -1
  17. package/dist/providers/bedrock.d.ts +48 -0
  18. package/dist/providers/bedrock.d.ts.map +1 -0
  19. package/dist/providers/bedrock.js +293 -0
  20. package/dist/providers/bedrock.js.map +1 -0
  21. package/dist/providers/detect.d.ts +9 -3
  22. package/dist/providers/detect.d.ts.map +1 -1
  23. package/dist/providers/detect.js +39 -6
  24. package/dist/providers/detect.js.map +1 -1
  25. package/dist/providers/index.d.ts +2 -0
  26. package/dist/providers/index.d.ts.map +1 -1
  27. package/dist/providers/index.js +2 -0
  28. package/dist/providers/index.js.map +1 -1
  29. package/dist/providers/openai.d.ts +2 -1
  30. package/dist/providers/openai.d.ts.map +1 -1
  31. package/dist/providers/openai.js +158 -14
  32. package/dist/providers/openai.js.map +1 -1
  33. package/dist/providers/vertex.d.ts +14 -0
  34. package/dist/providers/vertex.d.ts.map +1 -0
  35. package/dist/providers/vertex.js +167 -0
  36. package/dist/providers/vertex.js.map +1 -0
  37. package/dist/proxy-client.d.ts +24 -0
  38. package/dist/proxy-client.d.ts.map +1 -1
  39. package/dist/proxy-client.js +66 -1
  40. package/dist/proxy-client.js.map +1 -1
  41. package/dist/transport.d.ts +3 -0
  42. package/dist/transport.d.ts.map +1 -1
  43. package/dist/transport.js +9 -2
  44. package/dist/transport.js.map +1 -1
  45. package/dist/types.d.ts +108 -2
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/wrap.d.ts +8 -0
  48. package/dist/wrap.d.ts.map +1 -1
  49. package/dist/wrap.js +38 -3
  50. package/dist/wrap.js.map +1 -1
  51. package/package.json +17 -2
@@ -29,7 +29,7 @@
29
29
  * message so the provider wrapper can activate the direct-provider
30
30
  * fallback.
31
31
  */
32
- import { TensorCostError, TensorCostNetworkError, TensorCostTimeoutError, TensorCostProxyError, TensorCostQuotaError, TensorCostProviderError, } from "./errors.js";
32
+ import { TensorCostError, TensorCostNetworkError, TensorCostTimeoutError, TensorCostProxyError, TensorCostQuotaError, TensorCostProviderError, TensorCostRunBudgetExceededError, } from "./errors.js";
33
33
  import { DEFAULT_RETRY_CONFIG, computeDelay, retryAfterMs, sleep, } from "./retry.js";
34
34
  import { emitEvent } from "./telemetry.js";
35
35
  const PROXY_CHAT_PATH = "/api/inference-proxy/v1/chat/completions";
@@ -61,6 +61,12 @@ export async function proxyRequest(opts) {
61
61
  if (opts.environment) {
62
62
  headers["x-tc-environment"] = opts.environment;
63
63
  }
64
+ if (opts.agentId) {
65
+ headers["x-tc-agent-id"] = opts.agentId;
66
+ }
67
+ if (opts.workflowId) {
68
+ headers["x-tc-workflow-id"] = opts.workflowId;
69
+ }
64
70
  let lastError = null;
65
71
  for (let attempt = 0; attempt < retryConfig.maxAttempts; attempt++) {
66
72
  const elapsedMs = Date.now() - callStart;
@@ -238,6 +244,47 @@ export async function proxyRequest(opts) {
238
244
  });
239
245
  throw tcErr;
240
246
  }
247
+ // 403 with our own budget code — the run hit its spend cap.
248
+ //
249
+ // Checked before the generic 4xx arm because it is NOT a provider
250
+ // error and, critically, must not lead to the direct-provider
251
+ // fallback. The body is read defensively: a 403 that is not ours
252
+ // (e.g. an auth failure) falls through to the generic arm below.
253
+ if (resp.status === 403) {
254
+ let code;
255
+ let detail;
256
+ try {
257
+ const parsed = (await resp.clone().json());
258
+ const errObj = parsed?.["error"];
259
+ if (errObj && typeof errObj["code"] === "string") {
260
+ code = errObj["code"];
261
+ detail = errObj;
262
+ }
263
+ }
264
+ catch {
265
+ /* non-JSON 403 — fall through to the generic 4xx arm */
266
+ }
267
+ if (code === "RUN_BUDGET_EXCEEDED") {
268
+ const numOrNull = (v) => typeof v === "number" ? v : null;
269
+ const tcErr = new TensorCostRunBudgetExceededError(typeof detail?.["message"] === "string"
270
+ ? `tensorcost: ${detail["message"]}`
271
+ : "tensorcost: agent run spend cap reached", typeof detail?.["workflow_id"] === "string" ? detail["workflow_id"] : null, numOrNull(detail?.["cap_cents"]), numOrNull(detail?.["spent_cents"]), { status: 403, requestId, attempt: attempt + 1 });
272
+ // Not a circuit failure — the proxy is healthy and answered
273
+ // correctly. Counting this would eventually trip the breaker and
274
+ // route the customer straight past their own cap.
275
+ emitEvent(opts.onLifecycleEvent, {
276
+ kind: "on_error",
277
+ provider: opts.provider,
278
+ model: opts.model,
279
+ operation: opts.operation,
280
+ attemptNumber: attempt + 1,
281
+ elapsedMs: Date.now() - callStart,
282
+ errorClass: tcErr.constructor.name,
283
+ status: 403,
284
+ });
285
+ throw tcErr;
286
+ }
287
+ }
241
288
  // 4xx (not 429) — provider error forwarded by the proxy. Non-retriable.
242
289
  const tcErr = new TensorCostProviderError(`tensorcost: upstream provider returned ${resp.status}`, { status: resp.status, requestId, attempt: attempt + 1 });
243
290
  emitEvent(opts.onLifecycleEvent, {
@@ -255,5 +302,23 @@ export async function proxyRequest(opts) {
255
302
  // Should be unreachable — every loop arm either returns or throws.
256
303
  throw lastError ?? new TensorCostProxyError("tensorcost: max attempts reached");
257
304
  }
305
+ /**
306
+ * Should a failed proxy attempt fall back to calling the provider
307
+ * directly?
308
+ *
309
+ * The applied-mode fail-open contract exists so that TensorCost being
310
+ * down never takes the customer's inference down with it. Every transport
311
+ * failure — timeout, network error, 5xx, open circuit — is therefore a
312
+ * "go around us" signal and returns true.
313
+ *
314
+ * A run-budget refusal is the one case where the proxy is healthy and the
315
+ * refusal IS the product. Falling back there would issue the provider call
316
+ * anyway and turn a hard cap into a log line, which is precisely the
317
+ * failure mode the cap was built to eliminate. So it returns false and the
318
+ * error propagates to the caller.
319
+ */
320
+ export function shouldFallBackToProvider(err) {
321
+ return !(err instanceof TensorCostRunBudgetExceededError);
322
+ }
258
323
  export { TensorCostError };
259
324
  //# sourceMappingURL=proxy-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-client.js","sourceRoot":"","sources":["../src/proxy-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy-client.js","sourceRoot":"","sources":["../src/proxy-client.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,8 @@ import type { Observation } from "./types.js";
23
23
  export interface TransportOptions {
24
24
  baseUrl: string;
25
25
  apiKey: string;
26
+ /** Required for token exchange against current inference-proxy DTO. */
27
+ tenantId?: string | null;
26
28
  timeoutMs?: number;
27
29
  failOpen?: boolean;
28
30
  /** Optional fetch override for testing. Defaults to global fetch. */
@@ -31,6 +33,7 @@ export interface TransportOptions {
31
33
  export declare class ObservationTransport {
32
34
  private readonly baseUrl;
33
35
  private readonly apiKey;
36
+ private readonly tenantId;
34
37
  private readonly timeoutMs;
35
38
  private readonly failOpen;
36
39
  private readonly fetchImpl;
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAQ9C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAOD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IAEzC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,UAAU,CAA2B;IAC7C,wEAAwE;IACxE,OAAO,CAAC,aAAa,CAAgC;gBAEzC,IAAI,EAAE,gBAAgB;IAQlC;;;;OAIG;IACH,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;YAqBtB,OAAO;YAqCP,QAAQ;YAiBR,aAAa;CAuC5B;AAED,eAAO,MAAM,QAAQ;;;CAGpB,CAAC"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAQ9C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAOD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IAEzC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,UAAU,CAA2B;IAC7C,wEAAwE;IACxE,OAAO,CAAC,aAAa,CAAgC;gBAEzC,IAAI,EAAE,gBAAgB;IASlC;;;;OAIG;IACH,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;YAqBtB,OAAO;YAqCP,QAAQ;YAiBR,aAAa;CA+C5B;AAED,eAAO,MAAM,QAAQ;;;CAGpB,CAAC"}
package/dist/transport.js CHANGED
@@ -19,7 +19,7 @@
19
19
  * (the default) and surfaced via console.warn. The customer's call
20
20
  * site never sees an exception.
21
21
  */
22
- const SDK_VERSION = "tensorcost-node/0.3.0";
22
+ const SDK_VERSION = "tensorcost-node/0.6.0";
23
23
  const TOKEN_REFRESH_LEEWAY_MS = 60_000;
24
24
  const DEFAULT_TOKEN_LIFETIME_MS = 15 * 60_000;
25
25
  const MAX_QUEUE_DEPTH = 1024;
@@ -32,6 +32,7 @@ export class ObservationTransport {
32
32
  this.tokenInflight = null;
33
33
  this.baseUrl = opts.baseUrl.replace(/\/+$/, "");
34
34
  this.apiKey = opts.apiKey;
35
+ this.tenantId = opts.tenantId ?? null;
35
36
  this.timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
36
37
  this.failOpen = opts.failOpen ?? true;
37
38
  this.fetchImpl = opts.fetchImpl ?? globalThis.fetch.bind(globalThis);
@@ -108,6 +109,9 @@ export class ObservationTransport {
108
109
  return this.tokenInflight;
109
110
  }
110
111
  async exchangeToken() {
112
+ if (!this.tenantId) {
113
+ throw new Error("tensorcost: tenant_id required for token exchange (pass tenantId to wrap() or set TENSORCOST_TENANT_ID)");
114
+ }
111
115
  const url = `${this.baseUrl}/api/inference-proxy/sdk-token/exchange`;
112
116
  const controller = new AbortController();
113
117
  const timer = setTimeout(() => controller.abort(), this.timeoutMs);
@@ -118,7 +122,10 @@ export class ObservationTransport {
118
122
  "Content-Type": "application/json",
119
123
  "User-Agent": SDK_VERSION,
120
124
  },
121
- body: JSON.stringify({ api_key: this.apiKey }),
125
+ body: JSON.stringify({
126
+ tenant_id: this.tenantId,
127
+ sdk_long_lived_token: this.apiKey,
128
+ }),
122
129
  signal: controller.signal,
123
130
  });
124
131
  if (!resp.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAC5C,MAAM,uBAAuB,GAAG,MAAM,CAAC;AACvC,MAAM,yBAAyB,GAAG,EAAE,GAAG,MAAM,CAAC;AAC9C,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAgBjC,MAAM,OAAO,oBAAoB;IAY/B,YAAY,IAAsB;QAL1B,YAAO,GAAG,CAAC,CAAC;QACZ,eAAU,GAAsB,IAAI,CAAC;QAC7C,wEAAwE;QAChE,kBAAa,GAA2B,IAAI,CAAC;QAGnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvE,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,WAAwB;QAC3B,IAAI,IAAI,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC;YACpC,mEAAmE;YACnE,gEAAgE;YAChE,iEAAiE;YACjE,iEAAiE;YACjE,+BAA+B;YAC/B,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,+DAA+D,CAChE,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QAClB,cAAc,CAAC,GAAG,EAAE;YAClB,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBAC1C,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,WAAwB;QAC5C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,kCAAkC,CAAC;YAC9D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACnE,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;oBACrC,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,aAAa,EAAE,UAAU,KAAK,EAAE;wBAChC,cAAc,EAAE,kBAAkB;wBAClC,YAAY,EAAE,WAAW;qBAC1B;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;oBACjC,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;oBACb,sCAAsC;oBACtC,OAAO,CAAC,IAAI,CACV,8CAA8C,IAAI,CAAC,MAAM,EAAE,CAC5D,CAAC;gBACJ,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,4CAA6C,GAAa,CAAC,OAAO,EAAE,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IACE,IAAI,CAAC,UAAU;YACf,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,uBAAuB,EACzD,CAAC;YACD,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAC/B,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACrD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,yCAAyC,CAAC;QACrE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;gBACrC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,YAAY,EAAE,WAAW;iBAC1B;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC9C,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAI9B,CAAC;YACF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;YAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,UAAU,GACd,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ;gBACjC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI;gBACxB,CAAC,CAAC,yBAAyB,CAAC;YAChC,IAAI,CAAC,UAAU,GAAG;gBAChB,KAAK;gBACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU;aACnC,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,WAAW;IACX,eAAe;CAChB,CAAC"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -7,8 +7,8 @@
7
7
  */
8
8
  import type { LifecycleEventCallback } from "./telemetry.js";
9
9
  import type { RetryConfig } from "./retry.js";
10
- export type Provider = "openai" | "anthropic";
11
- export type Operation = "chat.completions" | "completions" | "messages";
10
+ export type Provider = "openai" | "anthropic" | "bedrock" | "vertex";
11
+ export type Operation = "chat.completions" | "completions" | "messages" | "bedrock.invoke_model" | "bedrock.converse" | "bedrock.invoke_model_stream" | "bedrock.converse_stream" | "vertex.generate_content" | "vertex.generate_content_stream";
12
12
  export type ObservationStatus = "success" | "error";
13
13
  /**
14
14
  * Wire shape posted to `POST /api/proxy/observation`. Mirrors the
@@ -47,6 +47,54 @@ export interface Observation {
47
47
  * did not set `environment`.
48
48
  */
49
49
  connection_id?: string;
50
+ /**
51
+ * SDK metadata bag. Merged from wrap-time defaults and per-call
52
+ * withMeta() overrides. The backend stores this verbatim in
53
+ * trace_span.metadata; two well-known keys are indexed for
54
+ * group-by queries:
55
+ * - deployment — git SHA, CI run id, or any operator marker
56
+ * - prompt_template_id — per-call-site template name/version
57
+ */
58
+ metadata?: Record<string, unknown>;
59
+ /**
60
+ * Per-agent-run cost attribution — agent identity. Optional. Stamped
61
+ * onto the observation envelope when the SDK was constructed with
62
+ * `wrap(client, { agentId: '...' })`, or overridden per-call via
63
+ * `.withMeta({ agentId: '...' })`. Forwarded verbatim by
64
+ * inference-proxy-service's ObservationService onto the Kafka/event-bus
65
+ * envelope; ai-service writes it straight into
66
+ * `ai.ai_spend_events.agent_id` (migration 011 — the column has existed
67
+ * since April 2026 as `agent_id text -- populated by tag propagation
68
+ * (post-MVP)`; this is that propagation).
69
+ *
70
+ * A stable identifier for the *kind* of agent making calls (e.g.
71
+ * "code-review-agent", "support-triage-bot") — set once per wrapped
72
+ * client is the common case, hence the wrap-time default.
73
+ *
74
+ * Unlike `environment` / `connection_id`, this is NOT stored in the
75
+ * `metadata` JSONB bag — it is a dedicated indexed column
76
+ * (`spend_events_tenant_agent_time` partial index), so it is threaded
77
+ * through as its own top-level envelope field the same way
78
+ * `environment` / `connection_id` are.
79
+ */
80
+ agent_id?: string;
81
+ /**
82
+ * Per-agent-run cost attribution — run identity. Optional. Same
83
+ * plumbing as `agent_id` (see above), landing in
84
+ * `ai.ai_spend_events.workflow_id`.
85
+ *
86
+ * A unique identifier for ONE execution of an agent (e.g. a session id,
87
+ * a job id) — this almost always varies call-to-call within a single
88
+ * wrapped client's lifetime, so the primary way to set it is per-call
89
+ * via `.withMeta({ workflowId: '...' })` rather than at `wrap()` time.
90
+ * A wrap-time default is still supported for the case where one
91
+ * process = one run (e.g. a short-lived batch job).
92
+ *
93
+ * "Cost of one agent run" is defined as
94
+ * `SUM(total_cost_cents) WHERE tenant_id = ? AND workflow_id = ? AND
95
+ * superseded_at IS NULL` — see ai-service's `agent-runs` module.
96
+ */
97
+ workflow_id?: string;
50
98
  }
51
99
  export interface WrapOptions {
52
100
  /** Long-lived TensorCost API key. Falls back to `TENSORCOST_API_KEY`. */
@@ -167,6 +215,56 @@ export interface WrapOptions {
167
215
  * you are using the SDK in a context where the client's key is unavailable.
168
216
  */
169
217
  providerApiKey?: string;
218
+ /**
219
+ * Deployment identifier stamped on every observation from this wrapped
220
+ * client. Typically a git SHA, CI run id, or a human-readable release
221
+ * label like `"2026-05-28-hotfix"`.
222
+ *
223
+ * Stored as `metadata.deployment` in the trace_span row. The dashboard's
224
+ * "Group by deployment" view buckets spans by this value so Priya can
225
+ * answer "did my latest deploy change cost?".
226
+ *
227
+ * Falls back to `TENSORCOST_DEPLOYMENT` env var. Leave unset if you don't
228
+ * use deployment-level cost attribution.
229
+ */
230
+ deployment?: string;
231
+ /**
232
+ * Default prompt-template identifier for every call made through this
233
+ * client. Stored as `metadata.prompt_template_id` on each observation.
234
+ *
235
+ * Per-call overrides are available via `.withMeta({ promptTemplateId })`.
236
+ * The per-call value wins over this wrap-time default.
237
+ *
238
+ * Falls back to `TENSORCOST_PROMPT_TEMPLATE_ID` env var.
239
+ */
240
+ promptTemplateId?: string;
241
+ /**
242
+ * Stable identifier for the kind of agent making calls through this
243
+ * client (e.g. "code-review-agent"). Stamped on every observation as
244
+ * the top-level `agent_id` field — NOT the metadata bag — and lands in
245
+ * `ai.ai_spend_events.agent_id`.
246
+ *
247
+ * Per-call overrides are available via `.withMeta({ agentId })` on the
248
+ * OpenAI and Anthropic wrappers. Bedrock has no per-call hook (Smithy
249
+ * middleware is registered once at wrap() time), so for Bedrock this
250
+ * wrap-time value is the only way to set `agent_id`.
251
+ *
252
+ * Falls back to `TENSORCOST_AGENT_ID` env var.
253
+ */
254
+ agentId?: string;
255
+ /**
256
+ * Identifier for ONE execution of an agent (a run/session id). Stamped
257
+ * on every observation as the top-level `workflow_id` field and lands
258
+ * in `ai.ai_spend_events.workflow_id`.
259
+ *
260
+ * Because a run id almost always changes between calls, the primary
261
+ * way to set this is per-call via `.withMeta({ workflowId })`. This
262
+ * wrap-time default exists for the one-process-per-run case (batch
263
+ * jobs, Bedrock clients with no per-call hook).
264
+ *
265
+ * Falls back to `TENSORCOST_WORKFLOW_ID` env var.
266
+ */
267
+ workflowId?: string;
170
268
  }
171
269
  export interface ResolvedConfig {
172
270
  apiKey: string;
@@ -200,5 +298,13 @@ export interface ResolvedConfig {
200
298
  onLifecycleEvent: LifecycleEventCallback | undefined;
201
299
  failOpenEnabled: boolean;
202
300
  providerApiKey: string | null;
301
+ /** Resolved deployment tag. `null` when not configured. */
302
+ deployment: string | null;
303
+ /** Resolved default prompt-template id. `null` when not configured. */
304
+ promptTemplateId: string | null;
305
+ /** Resolved wrap-time agent id default. `null` when not configured. */
306
+ agentId: string | null;
307
+ /** Resolved wrap-time workflow (run) id default. `null` when not configured. */
308
+ workflowId: string | null;
203
309
  }
204
310
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/wrap.d.ts CHANGED
@@ -14,6 +14,14 @@
14
14
  * Hardening (v0.4.0): applied-mode requests now go through the proxy-client
15
15
  * module which adds retries, timeouts, typed errors, telemetry hooks, and
16
16
  * the fail-open circuit breaker.
17
+ *
18
+ * Bedrock (v0.4.0): observe-only. Applied mode is not supported for Bedrock —
19
+ * wrap(bedrockClient, { appliedMode: true }) throws TensorCostConfigError.
20
+ *
21
+ * Vertex (v0.6.0): observe-only. Applied mode is not supported for Vertex —
22
+ * wrap(vertexClient, { appliedMode: true }) throws TensorCostConfigError.
23
+ * The method wrappers on client.models intercept generate_content calls
24
+ * transparently.
17
25
  */
18
26
  import type { WrapOptions } from "./types.js";
19
27
  export declare function wrap<T>(client: T, options?: WrapOptions): T;
@@ -1 +1 @@
1
- {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../src/wrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AASH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAE,WAAgB,GAAG,CAAC,CA+D/D"}
1
+ {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../src/wrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAYH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAE,WAAgB,GAAG,CAAC,CAsH/D"}
package/dist/wrap.js CHANGED
@@ -14,13 +14,24 @@
14
14
  * Hardening (v0.4.0): applied-mode requests now go through the proxy-client
15
15
  * module which adds retries, timeouts, typed errors, telemetry hooks, and
16
16
  * the fail-open circuit breaker.
17
+ *
18
+ * Bedrock (v0.4.0): observe-only. Applied mode is not supported for Bedrock —
19
+ * wrap(bedrockClient, { appliedMode: true }) throws TensorCostConfigError.
20
+ *
21
+ * Vertex (v0.6.0): observe-only. Applied mode is not supported for Vertex —
22
+ * wrap(vertexClient, { appliedMode: true }) throws TensorCostConfigError.
23
+ * The method wrappers on client.models intercept generate_content calls
24
+ * transparently.
17
25
  */
18
26
  import { resolveConfig } from "./config.js";
27
+ import { TensorCostConfigError } from "./config.js";
19
28
  import { ObservationTransport } from "./transport.js";
20
29
  import { detectProvider } from "./providers/detect.js";
21
30
  import { installAppliedMode } from "./applied.js";
22
31
  import * as openaiProvider from "./providers/openai.js";
23
32
  import * as anthropicProvider from "./providers/anthropic.js";
33
+ import * as bedrockProvider from "./providers/bedrock.js";
34
+ import * as vertexProvider from "./providers/vertex.js";
24
35
  import { CircuitBreaker } from "./circuit.js";
25
36
  export function wrap(client, options = {}) {
26
37
  // resolveConfig throws MissingConfigError when apiKey is absent, and
@@ -30,9 +41,26 @@ export function wrap(client, options = {}) {
30
41
  const transport = new ObservationTransport({
31
42
  baseUrl: config.baseUrl,
32
43
  apiKey: config.apiKey,
44
+ tenantId: config.tenantId,
33
45
  failOpen: config.failOpen,
34
46
  });
35
47
  const provider = detectProvider(client);
48
+ // Bedrock does not support applied mode. SigV4 signing happens inside
49
+ // the AWS SDK before our middleware can intercept the request, and the
50
+ // signed URL/headers are region-specific. Fail loudly here rather than
51
+ // silently ignoring the option — the customer almost certainly made a
52
+ // configuration mistake.
53
+ if (provider === "bedrock" && config.appliedMode) {
54
+ throw new TensorCostConfigError("TensorCost applied mode is not supported for AWS Bedrock clients. " +
55
+ "Bedrock uses SigV4 signing that cannot be intercepted at the proxy layer. " +
56
+ "Remove { appliedMode: true } or use an OpenAI / Anthropic client instead.");
57
+ }
58
+ if (provider === "vertex" && config.appliedMode) {
59
+ throw new TensorCostConfigError("TensorCost applied mode is not supported for Google Vertex AI clients. " +
60
+ "Vertex uses Application Default Credentials and Google-managed transport " +
61
+ "that cannot be intercepted at the proxy layer. Remove { appliedMode: true } " +
62
+ "or use an OpenAI / Anthropic client instead.");
63
+ }
36
64
  // Applied mode: redirect the client to the proxy before installing
37
65
  // the observe-only wrappers. Order matters — installAppliedMode mutates
38
66
  // baseURL and defaultHeaders, and the provider wrappers capture the
@@ -54,9 +82,9 @@ export function wrap(client, options = {}) {
54
82
  onLifecycleEvent: config.onLifecycleEvent,
55
83
  failOpenEnabled: config.failOpenEnabled,
56
84
  circuit,
57
- });
85
+ }, config.deployment, config.promptTemplateId, config.agentId, config.workflowId);
58
86
  }
59
- else {
87
+ else if (provider === "anthropic") {
60
88
  anthropicProvider.install(client, transport, config.tenantId, config.environment, config.connectionId, {
61
89
  appliedMode: config.appliedMode,
62
90
  proxyUrl: config.proxyUrl,
@@ -65,7 +93,14 @@ export function wrap(client, options = {}) {
65
93
  onLifecycleEvent: config.onLifecycleEvent,
66
94
  failOpenEnabled: config.failOpenEnabled,
67
95
  circuit,
68
- });
96
+ }, config.deployment, config.promptTemplateId, config.agentId, config.workflowId);
97
+ }
98
+ else if (provider === "bedrock") {
99
+ bedrockProvider.install(client, transport, config.tenantId, config.environment, config.connectionId, config.deployment, config.promptTemplateId, config.agentId, config.workflowId);
100
+ }
101
+ else {
102
+ // provider === "vertex"
103
+ vertexProvider.install(client, transport, config.tenantId, config.environment, config.connectionId, config.deployment, config.promptTemplateId, config.agentId, config.workflowId);
69
104
  }
70
105
  return client;
71
106
  }
package/dist/wrap.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../src/wrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,MAAM,UAAU,IAAI,CAAI,MAAS,EAAE,UAAuB,EAAE;IAC1D,qEAAqE;IACrE,gEAAgE;IAChE,mEAAmE;IACnE,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,oBAAoB,CAAC;QACzC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAExC,mEAAmE;IACnE,wEAAwE;IACxE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,2CAA2C;IAC3C,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QACnD,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,mEAAmE;IACnE,2CAA2C;IAC3C,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;IAErC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,cAAc,CAAC,OAAO,CACpB,MAAM,EACN,SAAS,EACT,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,YAAY,EACnB;YACE,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,OAAO;SACR,CACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,iBAAiB,CAAC,OAAO,CACvB,MAAM,EACN,SAAS,EACT,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,YAAY,EACnB;YACE,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,OAAO;SACR,CACF,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../src/wrap.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tensorcost/sdk",
3
- "version": "0.3.1",
4
- "description": "One-line wrapper SDK for TensorCost — fire-and-forget LLM observability for OpenAI and Anthropic clients.",
3
+ "version": "0.6.0",
4
+ "description": "One-line wrapper SDK for TensorCost — fire-and-forget LLM observability for OpenAI, Anthropic, AWS Bedrock, and Google Vertex AI clients.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
@@ -19,6 +19,9 @@
19
19
  "CHANGELOG.md",
20
20
  "LICENSE"
21
21
  ],
22
+ "publishConfig": {
23
+ "access": "public"
24
+ },
22
25
  "engines": {
23
26
  "node": ">=18.0.0"
24
27
  },
@@ -26,6 +29,10 @@
26
29
  "llm",
27
30
  "openai",
28
31
  "anthropic",
32
+ "bedrock",
33
+ "vertex",
34
+ "google",
35
+ "aws",
29
36
  "observability",
30
37
  "cost",
31
38
  "tensorcost"
@@ -39,6 +46,14 @@
39
46
  "test": "vitest run --coverage",
40
47
  "lint": "echo 'no lint configured'"
41
48
  },
49
+ "peerDependencies": {
50
+ "@aws-sdk/client-bedrock-runtime": "^3.0.0"
51
+ },
52
+ "peerDependenciesMeta": {
53
+ "@aws-sdk/client-bedrock-runtime": {
54
+ "optional": true
55
+ }
56
+ },
42
57
  "devDependencies": {
43
58
  "@types/node": "^22.0.0",
44
59
  "@vitest/coverage-v8": "^2.1",