@tensorcost/sdk 0.6.0 → 1.0.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 (93) hide show
  1. package/CHANGELOG.md +51 -8
  2. package/README.md +63 -99
  3. package/dist/adapters/crewai.d.ts +4 -0
  4. package/dist/adapters/crewai.d.ts.map +1 -0
  5. package/dist/adapters/crewai.js +6 -0
  6. package/dist/adapters/crewai.js.map +1 -0
  7. package/dist/adapters/langchain.d.ts +4 -0
  8. package/dist/adapters/langchain.d.ts.map +1 -0
  9. package/dist/adapters/langchain.js +6 -0
  10. package/dist/adapters/langchain.js.map +1 -0
  11. package/dist/adapters/llamaindex.d.ts +4 -0
  12. package/dist/adapters/llamaindex.d.ts.map +1 -0
  13. package/dist/adapters/llamaindex.js +6 -0
  14. package/dist/adapters/llamaindex.js.map +1 -0
  15. package/dist/adapters/vercel-ai.d.ts +4 -0
  16. package/dist/adapters/vercel-ai.d.ts.map +1 -0
  17. package/dist/adapters/vercel-ai.js +6 -0
  18. package/dist/adapters/vercel-ai.js.map +1 -0
  19. package/dist/admit-client.d.ts +39 -0
  20. package/dist/admit-client.d.ts.map +1 -0
  21. package/dist/admit-client.js +93 -0
  22. package/dist/admit-client.js.map +1 -0
  23. package/dist/applied.d.ts +6 -1
  24. package/dist/applied.d.ts.map +1 -1
  25. package/dist/applied.js +13 -1
  26. package/dist/applied.js.map +1 -1
  27. package/dist/circuit-observations.d.ts +12 -0
  28. package/dist/circuit-observations.d.ts.map +1 -0
  29. package/dist/circuit-observations.js +37 -0
  30. package/dist/circuit-observations.js.map +1 -0
  31. package/dist/circuit.d.ts +4 -1
  32. package/dist/circuit.d.ts.map +1 -1
  33. package/dist/circuit.js +13 -7
  34. package/dist/circuit.js.map +1 -1
  35. package/dist/config.d.ts +2 -3
  36. package/dist/config.d.ts.map +1 -1
  37. package/dist/config.js +52 -6
  38. package/dist/config.js.map +1 -1
  39. package/dist/decision.d.ts +11 -0
  40. package/dist/decision.d.ts.map +1 -0
  41. package/dist/decision.js +40 -0
  42. package/dist/decision.js.map +1 -0
  43. package/dist/errors.d.ts +20 -0
  44. package/dist/errors.d.ts.map +1 -1
  45. package/dist/errors.js +24 -0
  46. package/dist/errors.js.map +1 -1
  47. package/dist/index.d.ts +8 -3
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +7 -2
  50. package/dist/index.js.map +1 -1
  51. package/dist/layer.d.ts +27 -0
  52. package/dist/layer.d.ts.map +1 -0
  53. package/dist/layer.js +77 -0
  54. package/dist/layer.js.map +1 -0
  55. package/dist/providers/anthropic.d.ts +9 -0
  56. package/dist/providers/anthropic.d.ts.map +1 -1
  57. package/dist/providers/anthropic.js +100 -14
  58. package/dist/providers/anthropic.js.map +1 -1
  59. package/dist/providers/bedrock.d.ts +1 -1
  60. package/dist/providers/bedrock.d.ts.map +1 -1
  61. package/dist/providers/bedrock.js +4 -2
  62. package/dist/providers/bedrock.js.map +1 -1
  63. package/dist/providers/openai.d.ts +9 -0
  64. package/dist/providers/openai.d.ts.map +1 -1
  65. package/dist/providers/openai.js +108 -17
  66. package/dist/providers/openai.js.map +1 -1
  67. package/dist/providers/vertex.d.ts +1 -1
  68. package/dist/providers/vertex.d.ts.map +1 -1
  69. package/dist/providers/vertex.js +9 -2
  70. package/dist/providers/vertex.js.map +1 -1
  71. package/dist/proxy-client.d.ts +18 -6
  72. package/dist/proxy-client.d.ts.map +1 -1
  73. package/dist/proxy-client.js +65 -10
  74. package/dist/proxy-client.js.map +1 -1
  75. package/dist/sdk-layer.d.ts +26 -0
  76. package/dist/sdk-layer.d.ts.map +1 -0
  77. package/dist/sdk-layer.js +73 -0
  78. package/dist/sdk-layer.js.map +1 -0
  79. package/dist/transport.d.ts +3 -1
  80. package/dist/transport.d.ts.map +1 -1
  81. package/dist/transport.js +6 -2
  82. package/dist/transport.js.map +1 -1
  83. package/dist/types.d.ts +70 -15
  84. package/dist/types.d.ts.map +1 -1
  85. package/dist/version.d.ts +9 -0
  86. package/dist/version.d.ts.map +1 -0
  87. package/dist/version.js +10 -0
  88. package/dist/version.js.map +1 -0
  89. package/dist/wrap.d.ts +13 -17
  90. package/dist/wrap.d.ts.map +1 -1
  91. package/dist/wrap.js +62 -69
  92. package/dist/wrap.js.map +1 -1
  93. package/package.json +1 -1
@@ -16,9 +16,12 @@
16
16
  */
17
17
  import { randomUUID } from "node:crypto";
18
18
  import { proxyRequest, shouldFallBackToProvider } from "../proxy-client.js";
19
- import { TensorCostProxyError } from "../errors.js";
19
+ import { admitRequest } from "../admit-client.js";
20
+ import { TensorCostProxyError, TensorCostModelGovernanceDeniedError, } from "../errors.js";
20
21
  import { emitEvent } from "../telemetry.js";
21
- const SDK_VERSION = "tensorcost-node/0.6.0";
22
+ import { needsProxyUrl } from "../layer.js";
23
+ import { decisionMetadata } from "../decision.js";
24
+ import { SDK_VERSION } from "../version.js";
22
25
  const MARKER = "__tensorcost_wrapped__";
23
26
  const WITH_META_MARKER = "__tensorcost_with_meta__";
24
27
  function nowIso() {
@@ -95,8 +98,57 @@ function wrapMethod(bound, opts) {
95
98
  // withMeta() override beats the wrap-time default.
96
99
  const resolvedAgentId = opts.perCallAgentId ?? opts.agentId ?? undefined;
97
100
  const resolvedWorkflowId = opts.perCallWorkflowId ?? opts.workflowId ?? undefined;
98
- // Applied-mode path: route through proxy-client with full hardening.
99
- if (opts.hardening.appliedMode &&
101
+ const resolvedCustomer = opts.perCallCustomer ?? opts.hardening.customer ?? undefined;
102
+ const resolvedFeature = opts.perCallFeature ?? opts.hardening.feature ?? undefined;
103
+ const effectiveLayer = await opts.hardening.sdkLayer.effectiveLayer(opts.hardening.maxLayer);
104
+ let decisionMeta;
105
+ if (effectiveLayer === "govern" &&
106
+ opts.operation === "chat.completions") {
107
+ try {
108
+ const getToken = opts.getToken ?? (() => opts.transport.getToken());
109
+ const bearerToken = await getToken();
110
+ const admit = await admitRequest({
111
+ baseUrl: opts.hardening.baseUrl,
112
+ bearerToken,
113
+ maxLayer: effectiveLayer,
114
+ metadata: {
115
+ provider: "openai",
116
+ model: String(model),
117
+ operation: opts.operation,
118
+ correlation_id: correlationId,
119
+ environment: opts.environment,
120
+ connection_id: opts.connectionId,
121
+ agent_id: resolvedAgentId,
122
+ workflow_id: resolvedWorkflowId,
123
+ customer: resolvedCustomer,
124
+ feature: resolvedFeature,
125
+ application: opts.hardening.application ?? null,
126
+ tags: opts.hardening.tags ?? [],
127
+ },
128
+ transport: opts.transport,
129
+ failOpen: true,
130
+ });
131
+ if (!admit.allowed) {
132
+ throw new TensorCostModelGovernanceDeniedError("tensorcost: request refused at govern layer", "openai", String(model), null, { attempt: 1 });
133
+ }
134
+ decisionMeta = decisionMetadata(admit.decisionHeader);
135
+ }
136
+ catch (err) {
137
+ if (err instanceof TensorCostModelGovernanceDeniedError)
138
+ throw err;
139
+ // Fail-open: token/admit unavailable — proceed to direct provider.
140
+ }
141
+ }
142
+ const decisionSpread = decisionMeta !== undefined
143
+ ? {
144
+ metadata: {
145
+ ...(meta !== undefined ? meta : {}),
146
+ ...decisionMeta,
147
+ },
148
+ }
149
+ : metaSpread;
150
+ // steer/route path: route through proxy-client with full hardening.
151
+ if (needsProxyUrl(effectiveLayer) &&
100
152
  opts.hardening.proxyUrl &&
101
153
  opts.operation === "chat.completions") {
102
154
  const providerUrl = readClientBaseUrl(opts.clientRef);
@@ -113,14 +165,18 @@ function wrapMethod(bound, opts) {
113
165
  };
114
166
  // Snapshot circuit state before the call to detect fallback events.
115
167
  const circuitWasOpen = opts.hardening.circuit.shouldBypass();
168
+ let shouldTryProxy = !circuitWasOpen;
169
+ if (circuitWasOpen) {
170
+ shouldTryProxy = opts.hardening.circuit.shouldProbe();
171
+ }
116
172
  let proxyResult;
117
173
  let proxyFailed = false;
118
174
  let proxyFailureError = null;
119
- if (!circuitWasOpen) {
175
+ if (shouldTryProxy) {
120
176
  try {
121
177
  const getToken = opts.getToken ?? (() => opts.transport.getToken());
122
178
  const bearerToken = await getToken();
123
- proxyResult = await proxyRequest({
179
+ const proxyResp = await proxyRequest({
124
180
  proxyUrl: opts.hardening.proxyUrl,
125
181
  bearerToken,
126
182
  providerUrl,
@@ -131,13 +187,20 @@ function wrapMethod(bound, opts) {
131
187
  operation: String(opts.operation),
132
188
  correlationId,
133
189
  environment: opts.environment,
190
+ application: opts.hardening.application ?? null,
191
+ tags: opts.hardening.tags ?? [],
134
192
  agentId: resolvedAgentId,
135
193
  workflowId: resolvedWorkflowId,
194
+ customer: resolvedCustomer,
195
+ feature: resolvedFeature,
136
196
  retry: opts.hardening.retry,
137
197
  timeoutMs: opts.hardening.timeoutMs,
138
198
  onLifecycleEvent: opts.hardening.onLifecycleEvent,
139
199
  circuit: opts.hardening.circuit,
200
+ maxLayer: effectiveLayer,
140
201
  });
202
+ proxyResult = proxyResp.body;
203
+ decisionMeta = decisionMetadata(proxyResp.decisionHeader);
141
204
  }
142
205
  catch (proxyErr) {
143
206
  // A run-budget refusal is a decision, not a failure. Rethrow it
@@ -178,7 +241,9 @@ function wrapMethod(bound, opts) {
178
241
  ...(opts.connectionId !== null ? { connection_id: opts.connectionId } : {}),
179
242
  ...(resolvedAgentId !== undefined ? { agent_id: resolvedAgentId } : {}),
180
243
  ...(resolvedWorkflowId !== undefined ? { workflow_id: resolvedWorkflowId } : {}),
181
- ...metaSpread,
244
+ ...(resolvedCustomer !== undefined ? { customer: resolvedCustomer } : {}),
245
+ ...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
246
+ ...decisionSpread,
182
247
  };
183
248
  try {
184
249
  opts.transport.post(obs);
@@ -216,7 +281,9 @@ function wrapMethod(bound, opts) {
216
281
  ...(opts.connectionId !== null ? { connection_id: opts.connectionId } : {}),
217
282
  ...(resolvedAgentId !== undefined ? { agent_id: resolvedAgentId } : {}),
218
283
  ...(resolvedWorkflowId !== undefined ? { workflow_id: resolvedWorkflowId } : {}),
219
- ...metaSpread,
284
+ ...(resolvedCustomer !== undefined ? { customer: resolvedCustomer } : {}),
285
+ ...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
286
+ ...decisionSpread,
220
287
  };
221
288
  try {
222
289
  opts.transport.post(obs);
@@ -242,7 +309,9 @@ function wrapMethod(bound, opts) {
242
309
  ...(opts.connectionId !== null ? { connection_id: opts.connectionId } : {}),
243
310
  ...(resolvedAgentId !== undefined ? { agent_id: resolvedAgentId } : {}),
244
311
  ...(resolvedWorkflowId !== undefined ? { workflow_id: resolvedWorkflowId } : {}),
245
- ...metaSpread,
312
+ ...(resolvedCustomer !== undefined ? { customer: resolvedCustomer } : {}),
313
+ ...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
314
+ ...decisionSpread,
246
315
  };
247
316
  try {
248
317
  opts.transport.post(obs);
@@ -251,6 +320,14 @@ function wrapMethod(bound, opts) {
251
320
  throw directErr;
252
321
  }
253
322
  }
323
+ const proxyDecisionSpread = decisionMeta !== undefined
324
+ ? {
325
+ metadata: {
326
+ ...(meta !== undefined ? meta : {}),
327
+ ...decisionMeta,
328
+ },
329
+ }
330
+ : metaSpread;
254
331
  // Proxy call succeeded.
255
332
  const respBody = proxyResult;
256
333
  const usageRaw = respBody?.usage;
@@ -273,7 +350,9 @@ function wrapMethod(bound, opts) {
273
350
  ...(opts.connectionId !== null ? { connection_id: opts.connectionId } : {}),
274
351
  ...(resolvedAgentId !== undefined ? { agent_id: resolvedAgentId } : {}),
275
352
  ...(resolvedWorkflowId !== undefined ? { workflow_id: resolvedWorkflowId } : {}),
276
- ...metaSpread,
353
+ ...(resolvedCustomer !== undefined ? { customer: resolvedCustomer } : {}),
354
+ ...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
355
+ ...proxyDecisionSpread,
277
356
  };
278
357
  try {
279
358
  opts.transport.post(obs);
@@ -281,7 +360,7 @@ function wrapMethod(bound, opts) {
281
360
  catch { /* belt-and-suspenders */ }
282
361
  return proxyResult;
283
362
  }
284
- // Observe-only path (non-applied-mode, or legacy completions.create).
363
+ // Observe / govern direct path (or legacy completions.create).
285
364
  try {
286
365
  const response = await bound.apply(this, args);
287
366
  const { input, output } = extractUsage(response);
@@ -302,7 +381,9 @@ function wrapMethod(bound, opts) {
302
381
  ...(opts.connectionId !== null ? { connection_id: opts.connectionId } : {}),
303
382
  ...(resolvedAgentId !== undefined ? { agent_id: resolvedAgentId } : {}),
304
383
  ...(resolvedWorkflowId !== undefined ? { workflow_id: resolvedWorkflowId } : {}),
305
- ...metaSpread,
384
+ ...(resolvedCustomer !== undefined ? { customer: resolvedCustomer } : {}),
385
+ ...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
386
+ ...decisionSpread,
306
387
  };
307
388
  try {
308
389
  opts.transport.post(obs);
@@ -328,7 +409,9 @@ function wrapMethod(bound, opts) {
328
409
  ...(opts.connectionId !== null ? { connection_id: opts.connectionId } : {}),
329
410
  ...(resolvedAgentId !== undefined ? { agent_id: resolvedAgentId } : {}),
330
411
  ...(resolvedWorkflowId !== undefined ? { workflow_id: resolvedWorkflowId } : {}),
331
- ...metaSpread,
412
+ ...(resolvedCustomer !== undefined ? { customer: resolvedCustomer } : {}),
413
+ ...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
414
+ ...decisionSpread,
332
415
  };
333
416
  try {
334
417
  opts.transport.post(obs);
@@ -413,19 +496,23 @@ export function install(client, transport, tenantId, environment, connectionId,
413
496
  if (callMeta.promptTemplateId !== undefined)
414
497
  perCallMeta.prompt_template_id = callMeta.promptTemplateId;
415
498
  // Any extra caller-supplied keys also land in the metadata bag.
416
- // agentId / workflowId are extracted separately below (they are
417
- // dedicated envelope fields, not metadata bag members) so they are
418
- // excluded from this freeform pass-through.
499
+ // agentId / workflowId / customer / feature are extracted separately
500
+ // below (they are dedicated envelope fields, not metadata bag members)
501
+ // so they are excluded from this freeform pass-through.
419
502
  for (const [k, v] of Object.entries(callMeta)) {
420
503
  if (k !== "deployment" &&
421
504
  k !== "promptTemplateId" &&
422
505
  k !== "agentId" &&
423
- k !== "workflowId") {
506
+ k !== "workflowId" &&
507
+ k !== "customer" &&
508
+ k !== "feature") {
424
509
  perCallMeta[k] = v;
425
510
  }
426
511
  }
427
512
  const perCallAgentId = callMeta.agentId;
428
513
  const perCallWorkflowId = callMeta.workflowId;
514
+ const perCallCustomer = callMeta.customer;
515
+ const perCallFeature = callMeta.feature;
429
516
  const proxyChat = originalChatBound !== undefined
430
517
  ? wrapMethod(originalChatBound, {
431
518
  operation: "chat.completions",
@@ -440,6 +527,8 @@ export function install(client, transport, tenantId, environment, connectionId,
440
527
  workflowId,
441
528
  perCallAgentId,
442
529
  perCallWorkflowId,
530
+ perCallCustomer,
531
+ perCallFeature,
443
532
  perCallMeta,
444
533
  clientRef: client,
445
534
  })
@@ -458,6 +547,8 @@ export function install(client, transport, tenantId, environment, connectionId,
458
547
  workflowId,
459
548
  perCallAgentId,
460
549
  perCallWorkflowId,
550
+ perCallCustomer,
551
+ perCallFeature,
461
552
  perCallMeta,
462
553
  clientRef: client,
463
554
  })
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * contract: no applied mode, fail-open transport, streaming placeholders.
8
8
  */
9
9
  import type { ObservationTransport } from "../transport.js";
10
- export declare function install(client: unknown, transport: ObservationTransport, tenantId: string | null, environment: string | null, connectionId: string | null, deployment?: string | null, promptTemplateId?: string | null, agentId?: string | null, workflowId?: string | null): void;
10
+ export declare function install(client: unknown, transport: ObservationTransport, tenantId: string | null, environment: string | null, connectionId: string | null, deployment?: string | null, promptTemplateId?: string | null, agentId?: string | null, workflowId?: string | null, customer?: string | null, feature?: string | null): void;
11
11
  export declare const __test__: {
12
12
  MARKER: string;
13
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"vertex.d.ts","sourceRoot":"","sources":["../../src/providers/vertex.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AA0J5D,wBAAgB,OAAO,CACrB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,oBAAoB,EAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,UAAU,GAAE,MAAM,GAAG,IAAW,EAChC,gBAAgB,GAAE,MAAM,GAAG,IAAW,EACtC,OAAO,GAAE,MAAM,GAAG,IAAW,EAC7B,UAAU,GAAE,MAAM,GAAG,IAAW,GAC/B,IAAI,CA0BN;AAED,eAAO,MAAM,QAAQ;;CAAa,CAAC"}
1
+ {"version":3,"file":"vertex.d.ts","sourceRoot":"","sources":["../../src/providers/vertex.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAiK5D,wBAAgB,OAAO,CACrB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,oBAAoB,EAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,UAAU,GAAE,MAAM,GAAG,IAAW,EAChC,gBAAgB,GAAE,MAAM,GAAG,IAAW,EACtC,OAAO,GAAE,MAAM,GAAG,IAAW,EAC7B,UAAU,GAAE,MAAM,GAAG,IAAW,EAChC,QAAQ,GAAE,MAAM,GAAG,IAAW,EAC9B,OAAO,GAAE,MAAM,GAAG,IAAW,GAC5B,IAAI,CA4BN;AAED,eAAO,MAAM,QAAQ;;CAAa,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * contract: no applied mode, fail-open transport, streaming placeholders.
8
8
  */
9
9
  import { randomUUID } from "node:crypto";
10
- const SDK_VERSION = "tensorcost-node/0.6.0";
10
+ import { SDK_VERSION } from "../version.js";
11
11
  const MARKER = "__tensorcost_wrapped__";
12
12
  function nowIso() {
13
13
  return new Date().toISOString();
@@ -72,6 +72,8 @@ function wrapMethod(bound, opts) {
72
72
  ...(opts.connectionId !== null ? { connection_id: opts.connectionId } : {}),
73
73
  ...(opts.agentId !== null ? { agent_id: opts.agentId } : {}),
74
74
  ...(opts.workflowId !== null ? { workflow_id: opts.workflowId } : {}),
75
+ ...(opts.customer !== null ? { customer: opts.customer } : {}),
76
+ ...(opts.feature !== null ? { feature: opts.feature } : {}),
75
77
  ...metaSpread,
76
78
  };
77
79
  try {
@@ -131,10 +133,13 @@ function wrapMethod(bound, opts) {
131
133
  throw err;
132
134
  }
133
135
  };
136
+ // Functions are objects at runtime, so stamping the marker works — but TS
137
+ // won't widen a call signature straight to an index-signature type, hence
138
+ // the hop through unknown.
134
139
  wrapped[MARKER] = true;
135
140
  return wrapped;
136
141
  }
137
- export function install(client, transport, tenantId, environment, connectionId, deployment = null, promptTemplateId = null, agentId = null, workflowId = null) {
142
+ export function install(client, transport, tenantId, environment, connectionId, deployment = null, promptTemplateId = null, agentId = null, workflowId = null, customer = null, feature = null) {
138
143
  void tenantId;
139
144
  if (!client || typeof client !== "object")
140
145
  return;
@@ -160,6 +165,8 @@ export function install(client, transport, tenantId, environment, connectionId,
160
165
  promptTemplateId,
161
166
  agentId,
162
167
  workflowId,
168
+ customer,
169
+ feature,
163
170
  });
164
171
  }
165
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vertex.js","sourceRoot":"","sources":["../../src/providers/vertex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vertex.js","sourceRoot":"","sources":["../../src/providers/vertex.ts"],"names":[],"mappings":"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"}
@@ -34,6 +34,7 @@ import type { RetryConfig } from "./retry.js";
34
34
  import type { CircuitBreaker } from "./circuit.js";
35
35
  import type { LifecycleEventCallback } from "./telemetry.js";
36
36
  import type { Provider } from "./telemetry.js";
37
+ import { type ControlLayer } from "./layer.js";
37
38
  export interface ProxyRequestOptions {
38
39
  proxyUrl: string;
39
40
  bearerToken: string;
@@ -53,13 +54,26 @@ export interface ProxyRequestOptions {
53
54
  */
54
55
  agentId?: string | undefined;
55
56
  workflowId?: string | undefined;
57
+ /** A-04 chargeback → `x-tc-customer`. */
58
+ customer?: string | undefined;
59
+ /** A-04 chargeback → `x-tc-feature`. */
60
+ feature?: string | undefined;
61
+ /** Routing-policy application scope → `x-tc-application`. */
62
+ application?: string | null | undefined;
63
+ /** Routing-policy tags → comma-separated `x-tc-tags`. */
64
+ tags?: string[] | undefined;
56
65
  retry?: RetryConfig;
57
66
  timeoutMs?: number;
58
67
  onLifecycleEvent?: LifecycleEventCallback;
59
68
  circuit: CircuitBreaker;
69
+ maxLayer?: ControlLayer;
60
70
  /** Injected fetch implementation (for testing). Defaults to globalThis.fetch. */
61
71
  fetchImpl?: typeof fetch;
62
72
  }
73
+ export interface ProxyRequestResult {
74
+ body: unknown;
75
+ decisionHeader: string | null;
76
+ }
63
77
  /**
64
78
  * Execute a single proxied request with retries, timeouts, telemetry,
65
79
  * and circuit-breaker integration.
@@ -67,7 +81,7 @@ export interface ProxyRequestOptions {
67
81
  * Throws a `TensorCostError` subclass on any failure.
68
82
  * Returns the parsed JSON body on success.
69
83
  */
70
- export declare function proxyRequest(opts: ProxyRequestOptions): Promise<unknown>;
84
+ export declare function proxyRequest(opts: ProxyRequestOptions): Promise<ProxyRequestResult>;
71
85
  /**
72
86
  * Should a failed proxy attempt fall back to calling the provider
73
87
  * directly?
@@ -77,11 +91,9 @@ export declare function proxyRequest(opts: ProxyRequestOptions): Promise<unknown
77
91
  * failure — timeout, network error, 5xx, open circuit — is therefore a
78
92
  * "go around us" signal and returns true.
79
93
  *
80
- * A run-budget refusal is the one case where the proxy is healthy and the
81
- * refusal IS the product. Falling back there would issue the provider call
82
- * anyway and turn a hard cap into a log line, which is precisely the
83
- * failure mode the cap was built to eliminate. So it returns false and the
84
- * error propagates to the caller.
94
+ * A policy refusal (run budget, model governance, guardrail hard_stop) is
95
+ * when the proxy is healthy and the refusal IS the product. Falling back
96
+ * would issue the provider call anyway and turn enforcement into a log line.
85
97
  */
86
98
  export declare function shouldFallBackToProvider(err: unknown): boolean;
87
99
  export { TensorCostError };
@@ -1 +1 @@
1
- {"version":3,"file":"proxy-client.d.ts","sourceRoot":"","sources":["../src/proxy-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EACL,eAAe,EAOhB,MAAM,aAAa,CAAC;AAQrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,OAAO,EAAE,cAAc,CAAC;IAExB,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAID;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,OAAO,CAAC,CAwTlB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE9D;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"proxy-client.d.ts","sourceRoot":"","sources":["../src/proxy-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EACL,eAAe,EAShB,MAAM,aAAa,CAAC;AAQrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAGtE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAE5B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CA2X7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAM9D;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -29,10 +29,11 @@
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, TensorCostRunBudgetExceededError, } from "./errors.js";
32
+ import { TensorCostError, TensorCostNetworkError, TensorCostTimeoutError, TensorCostProxyError, TensorCostQuotaError, TensorCostProviderError, TensorCostRunBudgetExceededError, TensorCostModelGovernanceDeniedError, TensorCostGuardrailHardStopError, } from "./errors.js";
33
33
  import { DEFAULT_RETRY_CONFIG, computeDelay, retryAfterMs, sleep, } from "./retry.js";
34
34
  import { emitEvent } from "./telemetry.js";
35
- const PROXY_CHAT_PATH = "/api/inference-proxy/v1/chat/completions";
35
+ import { proxyPathForOperation } from "./layer.js";
36
+ import { SDK_VERSION, sdkCapabilityHeader } from "./version.js";
36
37
  /**
37
38
  * Execute a single proxied request with retries, timeouts, telemetry,
38
39
  * and circuit-breaker integration.
@@ -50,10 +51,15 @@ export async function proxyRequest(opts) {
50
51
  if (opts.circuit.shouldBypass()) {
51
52
  throw new TensorCostProxyError("tensorcost: proxy circuit open — routing directly to provider", { attempt: 1 });
52
53
  }
53
- const url = `${opts.proxyUrl.replace(/\/+$/, "")}${PROXY_CHAT_PATH}`;
54
+ const path = proxyPathForOperation(opts.operation) ??
55
+ "/api/inference-proxy/v1/chat/completions";
56
+ const url = `${opts.proxyUrl.replace(/\/+$/, "")}${path}`;
54
57
  const headers = {
55
58
  Authorization: `Bearer ${opts.bearerToken}`,
56
59
  "Content-Type": "application/json",
60
+ "x-tc-sdk-version": SDK_VERSION,
61
+ "x-tc-sdk-capabilities": sdkCapabilityHeader(),
62
+ "x-tc-max-layer": opts.maxLayer ?? "observe",
57
63
  "x-tc-provider-url": opts.providerUrl,
58
64
  "x-tc-provider-auth": opts.providerAuth,
59
65
  "x-tc-correlation-id": opts.correlationId,
@@ -67,6 +73,18 @@ export async function proxyRequest(opts) {
67
73
  if (opts.workflowId) {
68
74
  headers["x-tc-workflow-id"] = opts.workflowId;
69
75
  }
76
+ if (opts.customer) {
77
+ headers["x-tc-customer"] = opts.customer;
78
+ }
79
+ if (opts.feature) {
80
+ headers["x-tc-feature"] = opts.feature;
81
+ }
82
+ if (opts.application) {
83
+ headers["x-tc-application"] = opts.application;
84
+ }
85
+ if (opts.tags && opts.tags.length > 0) {
86
+ headers["x-tc-tags"] = opts.tags.join(",");
87
+ }
70
88
  let lastError = null;
71
89
  for (let attempt = 0; attempt < retryConfig.maxAttempts; attempt++) {
72
90
  const elapsedMs = Date.now() - callStart;
@@ -175,7 +193,10 @@ export async function proxyRequest(opts) {
175
193
  status: resp.status,
176
194
  requestId,
177
195
  });
178
- return resp.json();
196
+ return {
197
+ body: (await resp.json()),
198
+ decisionHeader: resp.headers.get("x-tc-decision"),
199
+ };
179
200
  }
180
201
  // 429 — quota error, may have Retry-After.
181
202
  if (resp.status === 429) {
@@ -284,6 +305,40 @@ export async function proxyRequest(opts) {
284
305
  });
285
306
  throw tcErr;
286
307
  }
308
+ if (code === "MODEL_GOVERNANCE_DENIED") {
309
+ const tcErr = new TensorCostModelGovernanceDeniedError(typeof detail?.["message"] === "string"
310
+ ? `tensorcost: ${detail["message"]}`
311
+ : "tensorcost: model denied by tenant governance", typeof detail?.["provider"] === "string" ? detail["provider"] : null, typeof detail?.["model"] === "string" ? detail["model"] : null, typeof detail?.["governance_status"] === "string"
312
+ ? detail["governance_status"]
313
+ : null, { status: 403, requestId, attempt: attempt + 1 });
314
+ emitEvent(opts.onLifecycleEvent, {
315
+ kind: "on_error",
316
+ provider: opts.provider,
317
+ model: opts.model,
318
+ operation: opts.operation,
319
+ attemptNumber: attempt + 1,
320
+ elapsedMs: Date.now() - callStart,
321
+ errorClass: tcErr.constructor.name,
322
+ status: 403,
323
+ });
324
+ throw tcErr;
325
+ }
326
+ if (code === "GUARDRAIL_HARD_STOP") {
327
+ const tcErr = new TensorCostGuardrailHardStopError(typeof detail?.["message"] === "string"
328
+ ? `tensorcost: ${detail["message"]}`
329
+ : "tensorcost: request blocked by hard_stop guardrail", typeof detail?.["policy_id"] === "string" ? detail["policy_id"] : null, { status: 403, requestId, attempt: attempt + 1 });
330
+ emitEvent(opts.onLifecycleEvent, {
331
+ kind: "on_error",
332
+ provider: opts.provider,
333
+ model: opts.model,
334
+ operation: opts.operation,
335
+ attemptNumber: attempt + 1,
336
+ elapsedMs: Date.now() - callStart,
337
+ errorClass: tcErr.constructor.name,
338
+ status: 403,
339
+ });
340
+ throw tcErr;
341
+ }
287
342
  }
288
343
  // 4xx (not 429) — provider error forwarded by the proxy. Non-retriable.
289
344
  const tcErr = new TensorCostProviderError(`tensorcost: upstream provider returned ${resp.status}`, { status: resp.status, requestId, attempt: attempt + 1 });
@@ -311,14 +366,14 @@ export async function proxyRequest(opts) {
311
366
  * failure — timeout, network error, 5xx, open circuit — is therefore a
312
367
  * "go around us" signal and returns true.
313
368
  *
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.
369
+ * A policy refusal (run budget, model governance, guardrail hard_stop) is
370
+ * when the proxy is healthy and the refusal IS the product. Falling back
371
+ * would issue the provider call anyway and turn enforcement into a log line.
319
372
  */
320
373
  export function shouldFallBackToProvider(err) {
321
- return !(err instanceof TensorCostRunBudgetExceededError);
374
+ return !(err instanceof TensorCostRunBudgetExceededError ||
375
+ err instanceof TensorCostModelGovernanceDeniedError ||
376
+ err instanceof TensorCostGuardrailHardStopError);
322
377
  }
323
378
  export { TensorCostError };
324
379
  //# sourceMappingURL=proxy-client.js.map