@tensorcost/sdk 1.1.0 → 1.2.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 (76) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +75 -10
  3. package/dist/admit-client.d.ts +1 -0
  4. package/dist/admit-client.d.ts.map +1 -1
  5. package/dist/admit-client.js +1 -0
  6. package/dist/admit-client.js.map +1 -1
  7. package/dist/applied.d.ts +1 -0
  8. package/dist/applied.d.ts.map +1 -1
  9. package/dist/applied.js +3 -0
  10. package/dist/applied.js.map +1 -1
  11. package/dist/circuit.d.ts +11 -3
  12. package/dist/circuit.d.ts.map +1 -1
  13. package/dist/circuit.js +28 -5
  14. package/dist/circuit.js.map +1 -1
  15. package/dist/compliance-guard.d.ts +16 -0
  16. package/dist/compliance-guard.d.ts.map +1 -0
  17. package/dist/compliance-guard.js +39 -0
  18. package/dist/compliance-guard.js.map +1 -0
  19. package/dist/compliance-team.d.ts +11 -0
  20. package/dist/compliance-team.d.ts.map +1 -0
  21. package/dist/compliance-team.js +10 -0
  22. package/dist/compliance-team.js.map +1 -0
  23. package/dist/config.d.ts.map +1 -1
  24. package/dist/config.js +7 -0
  25. package/dist/config.js.map +1 -1
  26. package/dist/dlp.d.ts +16 -0
  27. package/dist/dlp.d.ts.map +1 -0
  28. package/dist/dlp.js +116 -0
  29. package/dist/dlp.js.map +1 -0
  30. package/dist/errors.d.ts +9 -0
  31. package/dist/errors.d.ts.map +1 -1
  32. package/dist/errors.js +13 -0
  33. package/dist/errors.js.map +1 -1
  34. package/dist/index.d.ts +3 -3
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +3 -3
  37. package/dist/index.js.map +1 -1
  38. package/dist/layer.d.ts +21 -0
  39. package/dist/layer.d.ts.map +1 -1
  40. package/dist/layer.js.map +1 -1
  41. package/dist/prewarm.d.ts +2 -0
  42. package/dist/prewarm.d.ts.map +1 -1
  43. package/dist/prewarm.js +7 -0
  44. package/dist/prewarm.js.map +1 -1
  45. package/dist/providers/anthropic.d.ts +1 -0
  46. package/dist/providers/anthropic.d.ts.map +1 -1
  47. package/dist/providers/anthropic.js +91 -57
  48. package/dist/providers/anthropic.js.map +1 -1
  49. package/dist/providers/openai.d.ts +1 -0
  50. package/dist/providers/openai.d.ts.map +1 -1
  51. package/dist/providers/openai.js +105 -61
  52. package/dist/providers/openai.js.map +1 -1
  53. package/dist/proxy-client.d.ts +4 -1
  54. package/dist/proxy-client.d.ts.map +1 -1
  55. package/dist/proxy-client.js +52 -9
  56. package/dist/proxy-client.js.map +1 -1
  57. package/dist/runtime.d.ts +1 -0
  58. package/dist/runtime.d.ts.map +1 -1
  59. package/dist/runtime.js +8 -2
  60. package/dist/runtime.js.map +1 -1
  61. package/dist/sdk-layer.d.ts +6 -1
  62. package/dist/sdk-layer.d.ts.map +1 -1
  63. package/dist/sdk-layer.js +84 -6
  64. package/dist/sdk-layer.js.map +1 -1
  65. package/dist/transport.d.ts +7 -0
  66. package/dist/transport.d.ts.map +1 -1
  67. package/dist/transport.js +14 -0
  68. package/dist/transport.js.map +1 -1
  69. package/dist/types.d.ts +12 -0
  70. package/dist/types.d.ts.map +1 -1
  71. package/dist/version.d.ts +1 -1
  72. package/dist/version.js +1 -1
  73. package/dist/wrap.d.ts.map +1 -1
  74. package/dist/wrap.js +2 -0
  75. package/dist/wrap.js.map +1 -1
  76. package/package.json +1 -1
package/dist/dlp.js ADDED
@@ -0,0 +1,116 @@
1
+ /**
2
+ * In-process DLP — prompt text never leaves the customer process.
3
+ */
4
+ const DETECTOR_PATTERNS = {
5
+ phi_ssn: /\b\d{3}-\d{2}-\d{4}\b/,
6
+ phi_mrn: /\bMRN[:\s#-]*\d{6,12}\b/i,
7
+ phi_dob: /\b(DOB|date of birth)[:\s]*\d{1,2}[/-]\d{1,2}[/-]\d{2,4}\b/i,
8
+ pci_pan: /\b(?:\d[ -]*?){13,19}\b/,
9
+ pci_cvv: /\b(CVV|CVC)[:\s#-]*\d{3,4}\b/i,
10
+ };
11
+ export function extractAnthropicMessagesText(firstArg) {
12
+ if (!firstArg || typeof firstArg !== "object")
13
+ return "";
14
+ const messages = firstArg.messages;
15
+ if (!Array.isArray(messages))
16
+ return "";
17
+ const parts = [];
18
+ for (const msg of messages) {
19
+ if (!msg || typeof msg !== "object")
20
+ continue;
21
+ const content = msg.content;
22
+ if (typeof content === "string")
23
+ parts.push(content);
24
+ else if (Array.isArray(content)) {
25
+ for (const block of content) {
26
+ if (!block || typeof block !== "object")
27
+ continue;
28
+ const text = block.text;
29
+ if (typeof text === "string")
30
+ parts.push(text);
31
+ }
32
+ }
33
+ }
34
+ return parts.join("\n");
35
+ }
36
+ export function extractOpenAiMessagesText(args) {
37
+ const first = args[0];
38
+ if (!first || typeof first !== "object")
39
+ return "";
40
+ const messages = first.messages;
41
+ if (!Array.isArray(messages))
42
+ return "";
43
+ const parts = [];
44
+ for (const msg of messages) {
45
+ if (!msg || typeof msg !== "object")
46
+ continue;
47
+ const content = msg.content;
48
+ if (typeof content === "string")
49
+ parts.push(content);
50
+ else if (Array.isArray(content)) {
51
+ for (const block of content) {
52
+ if (block && typeof block === "object" && typeof block.text === "string") {
53
+ parts.push(block.text);
54
+ }
55
+ }
56
+ }
57
+ }
58
+ return parts.join("\n");
59
+ }
60
+ export function redactTextForCompliance(text, detectors) {
61
+ let out = text;
62
+ for (const detector of detectors) {
63
+ const pattern = DETECTOR_PATTERNS[detector];
64
+ if (pattern) {
65
+ out = out.replace(pattern, "[REDACTED]");
66
+ }
67
+ }
68
+ return out;
69
+ }
70
+ export function applyDlpRedactionToOpenAiArgs(args, matchedDetectors) {
71
+ if (args.length === 0 || !args[0] || typeof args[0] !== "object")
72
+ return;
73
+ const req = args[0];
74
+ if (!Array.isArray(req.messages))
75
+ return;
76
+ for (const msg of req.messages) {
77
+ if (!msg || typeof msg !== "object")
78
+ continue;
79
+ const content = msg.content;
80
+ if (typeof content === "string") {
81
+ msg.content = redactTextForCompliance(content, matchedDetectors);
82
+ }
83
+ else if (Array.isArray(content)) {
84
+ for (const block of content) {
85
+ if (block &&
86
+ typeof block === "object" &&
87
+ typeof block.text === "string") {
88
+ block.text = redactTextForCompliance(block.text, matchedDetectors);
89
+ }
90
+ }
91
+ }
92
+ }
93
+ }
94
+ export function scanTextForCompliance(text, snapshot) {
95
+ if (!snapshot?.dlp?.enabled || snapshot.dlp.detectors.length === 0) {
96
+ return { outcome: "none", matchedDetectors: [] };
97
+ }
98
+ const matched = [];
99
+ for (const detector of snapshot.dlp.detectors) {
100
+ const pattern = DETECTOR_PATTERNS[detector];
101
+ if (pattern && pattern.test(text)) {
102
+ matched.push(detector);
103
+ }
104
+ }
105
+ if (matched.length === 0) {
106
+ return { outcome: "none", matchedDetectors: [] };
107
+ }
108
+ if (snapshot.mode === "enforce" && snapshot.dlp.action === "refuse") {
109
+ return { outcome: "refused", matchedDetectors: matched };
110
+ }
111
+ if (snapshot.dlp.action === "redact") {
112
+ return { outcome: "redacted", matchedDetectors: matched };
113
+ }
114
+ return { outcome: "none", matchedDetectors: matched };
115
+ }
116
+ //# sourceMappingURL=dlp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dlp.js","sourceRoot":"","sources":["../src/dlp.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -104,4 +104,13 @@ export declare class TensorCostGuardrailHardStopError extends TensorCostError {
104
104
  readonly policyId: string | null;
105
105
  constructor(message: string, policyId: string | null, opts?: TensorCostErrorOptions);
106
106
  }
107
+ /** Compliance policy refused this call (metadata or in-process DLP). */
108
+ export declare class TensorCostComplianceDeniedError extends TensorCostError {
109
+ readonly reason: string | null;
110
+ constructor(message: string, reason: string | null, opts?: TensorCostErrorOptions);
111
+ }
112
+ /** Client team_id does not match token-bound team scope. */
113
+ export declare class TensorCostComplianceTeamMismatchError extends TensorCostError {
114
+ constructor(message: string, opts?: TensorCostErrorOptions);
115
+ }
107
116
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,8BAAsB,eAAgB,SAAQ,KAAK;IACjD,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,sBAA2B;CAqB/D;AAED,oEAAoE;AACpE,qBAAa,sBAAuB,SAAQ,eAAe;gBAC7C,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,sBAA2B;CAG/D;AAED,6EAA6E;AAC7E,qBAAa,sBAAuB,SAAQ,eAAe;IACzD,sFAAsF;IACtF,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;gBAGjD,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,EACzC,IAAI,GAAE,sBAA2B;CAKpC;AAED,iFAAiF;AACjF,qBAAa,oBAAqB,SAAQ,eAAe;gBAC3C,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,sBAA2B;CAG/D;AAED;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,eAAe;IACvD,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;gBAGnC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,IAAI,GAAE,sBAA2B;CAKpC;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,eAAe;gBAC9C,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,sBAA2B;CAG/D;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,gCAAiC,SAAQ,eAAe;IAGjE,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;gBAHlC,OAAO,EAAE,MAAM,EACN,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,UAAU,EAAE,MAAM,GAAG,IAAI,EAClC,IAAI,GAAE,sBAA2B;CAIpC;AAED;;;;GAIG;AACH,qBAAa,oCAAqC,SAAQ,eAAe;IAGrE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;gBAHxC,OAAO,EAAE,MAAM,EACN,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,EACxC,IAAI,GAAE,sBAA2B;CAIpC;AAED;;;;GAIG;AACH,qBAAa,gCAAiC,SAAQ,eAAe;IAGjE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;gBADhC,OAAO,EAAE,MAAM,EACN,QAAQ,EAAE,MAAM,GAAG,IAAI,EAChC,IAAI,GAAE,sBAA2B;CAIpC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/errors.js CHANGED
@@ -127,4 +127,17 @@ export class TensorCostGuardrailHardStopError extends TensorCostError {
127
127
  this.policyId = policyId;
128
128
  }
129
129
  }
130
+ /** Compliance policy refused this call (metadata or in-process DLP). */
131
+ export class TensorCostComplianceDeniedError extends TensorCostError {
132
+ constructor(message, reason, opts = {}) {
133
+ super(message, { ...opts, status: opts.status ?? 403 });
134
+ this.reason = reason;
135
+ }
136
+ }
137
+ /** Client team_id does not match token-bound team scope. */
138
+ export class TensorCostComplianceTeamMismatchError extends TensorCostError {
139
+ constructor(message, opts = {}) {
140
+ super(message, { ...opts, status: opts.status ?? 403 });
141
+ }
142
+ }
130
143
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  export { wrap } from "./wrap.js";
2
- export { prewarm } from "./prewarm.js";
2
+ export { prewarm, flushObservations } from "./prewarm.js";
3
3
  export { MissingConfigError, TensorCostConfigError } from "./config.js";
4
4
  export { UnsupportedClientError } from "./providers/detect.js";
5
- export { TensorCostError, TensorCostNetworkError, TensorCostTimeoutError, TensorCostProxyError, TensorCostQuotaError, TensorCostProviderError, TensorCostRunBudgetExceededError, TensorCostModelGovernanceDeniedError, TensorCostGuardrailHardStopError, } from "./errors.js";
5
+ export { TensorCostError, TensorCostNetworkError, TensorCostTimeoutError, TensorCostProxyError, TensorCostQuotaError, TensorCostProviderError, TensorCostRunBudgetExceededError, TensorCostModelGovernanceDeniedError, TensorCostGuardrailHardStopError, TensorCostComplianceDeniedError, TensorCostComplianceTeamMismatchError, } from "./errors.js";
6
6
  export type { LifecycleEvent, BeforeRequestEvent, AfterResponseEvent, OnRetryEvent, OnErrorEvent, OnFallbackEvent, LifecycleEventCallback, } from "./telemetry.js";
7
7
  export type { RetryConfig } from "./retry.js";
8
8
  export type { WrapOptions, Observation, Provider, ObservationModality, ControlLayer, DataGrant, } from "./types.js";
@@ -11,5 +11,5 @@ export { wrapLlamaIndex } from "./adapters/llamaindex.js";
11
11
  export { wrapCrewAI } from "./adapters/crewai.js";
12
12
  export { wrapVercelAi } from "./adapters/vercel-ai.js";
13
13
  export { intersectGrants } from "./layer.js";
14
- export declare const version = "1.1.0";
14
+ export declare const version = "1.2.0";
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,gCAAgC,EAChC,oCAAoC,EACpC,gCAAgC,GACjC,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EACV,WAAW,EACX,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,YAAY,EACZ,SAAS,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,OAAO,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,gCAAgC,EAChC,oCAAoC,EACpC,gCAAgC,EAChC,+BAA+B,EAC/B,qCAAqC,GACtC,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EACV,WAAW,EACX,WAAW,EACX,QAAQ,EACR,mBAAmB,EACnB,YAAY,EACZ,SAAS,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,eAAO,MAAM,OAAO,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  export { wrap } from "./wrap.js";
2
- export { prewarm } from "./prewarm.js";
2
+ export { prewarm, flushObservations } from "./prewarm.js";
3
3
  export { MissingConfigError, TensorCostConfigError } from "./config.js";
4
4
  export { UnsupportedClientError } from "./providers/detect.js";
5
- export { TensorCostError, TensorCostNetworkError, TensorCostTimeoutError, TensorCostProxyError, TensorCostQuotaError, TensorCostProviderError, TensorCostRunBudgetExceededError, TensorCostModelGovernanceDeniedError, TensorCostGuardrailHardStopError, } from "./errors.js";
5
+ export { TensorCostError, TensorCostNetworkError, TensorCostTimeoutError, TensorCostProxyError, TensorCostQuotaError, TensorCostProviderError, TensorCostRunBudgetExceededError, TensorCostModelGovernanceDeniedError, TensorCostGuardrailHardStopError, TensorCostComplianceDeniedError, TensorCostComplianceTeamMismatchError, } from "./errors.js";
6
6
  export { wrapLangChain } from "./adapters/langchain.js";
7
7
  export { wrapLlamaIndex } from "./adapters/llamaindex.js";
8
8
  export { wrapCrewAI } from "./adapters/crewai.js";
9
9
  export { wrapVercelAi } from "./adapters/vercel-ai.js";
10
10
  export { intersectGrants } from "./layer.js";
11
- export const version = "1.1.0";
11
+ export const version = "1.2.0";
12
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,gCAAgC,EAChC,oCAAoC,EACpC,gCAAgC,GACjC,MAAM,aAAa,CAAC;AAmBrB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,gCAAgC,EAChC,oCAAoC,EACpC,gCAAgC,EAChC,+BAA+B,EAC/B,qCAAqC,GACtC,MAAM,aAAa,CAAC;AAmBrB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
package/dist/layer.d.ts CHANGED
@@ -19,6 +19,27 @@ export declare const PROXY_OPERATION_PATHS: Record<string, string>;
19
19
  export declare function proxyPathForOperation(operation: string): string | null;
20
20
  export declare const ADMIT_PATH = "/api/inference-proxy/v1/admit";
21
21
  export declare const SDK_LAYER_PATH = "/api/inference-proxy/v1/sdk-layer";
22
+ /** Wire shape from GET /v1/sdk-layer — mirrors @tensorcost/contracts (no runtime dep). */
23
+ export type ComplianceEnforcementMode = "observe" | "enforce";
24
+ export type ComplianceFailMode = "open" | "closed";
25
+ export type DlpAction = "redact" | "refuse";
26
+ export interface CompiledComplianceSnapshot {
27
+ frameworks: string[];
28
+ mode: ComplianceEnforcementMode;
29
+ fail_mode: ComplianceFailMode;
30
+ allowed_providers?: string[];
31
+ allowed_models?: string[];
32
+ allowed_regions?: string[];
33
+ max_grants: DataGrant[];
34
+ dlp: {
35
+ enabled: boolean;
36
+ detectors: string[];
37
+ action: DlpAction;
38
+ };
39
+ audit: {
40
+ stamp: boolean;
41
+ };
42
+ }
22
43
  export declare const SDK_LAYER_CACHE_TTL_MS = 30000;
23
44
  export declare const SDK_LAYER_DECAY_MS: number;
24
45
  /** Cap on the blocking sdk-layer GET so a hung TensorCost cannot stall the agent. */
@@ -1 +1 @@
1
- {"version":3,"file":"layer.d.ts","sourceRoot":"","sources":["../src/layer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,cAAc,yDAMjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAU3D,wBAAgB,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAErD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,YAAY,CAEvE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,YAAY,CAEnE;AAED,2CAA2C;AAC3C,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAE1D;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAEvD;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,YAAY,CAYf;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMxD,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEtE;AAED,eAAO,MAAM,UAAU,kCAAkC,CAAC;AAC1D,eAAO,MAAM,cAAc,sCAAsC,CAAC;AAClE,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAC7C,eAAO,MAAM,kBAAkB,QAAa,CAAC;AAC7C,qFAAqF;AACrF,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,6EAA6E;AAC7E,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C,eAAO,MAAM,WAAW,gFAKd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,GAAG,SAAS,EAChD,aAAa,EAAE,SAAS,SAAS,EAAE,GAClC,SAAS,EAAE,CASb"}
1
+ {"version":3,"file":"layer.d.ts","sourceRoot":"","sources":["../src/layer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,cAAc,yDAMjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAU3D,wBAAgB,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAErD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,YAAY,CAEvE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,YAAY,CAEnE;AAED,2CAA2C;AAC3C,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAE1D;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAEvD;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,GAAG,YAAY,CAYf;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMxD,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEtE;AAED,eAAO,MAAM,UAAU,kCAAkC,CAAC;AAC1D,eAAO,MAAM,cAAc,sCAAsC,CAAC;AAElE,0FAA0F;AAC1F,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,SAAS,CAAC;AAC9D,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,CAAC;AACnD,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5C,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,yBAAyB,CAAC;IAChC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,GAAG,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,SAAS,CAAA;KAAE,CAAC;IAClE,KAAK,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;CAC3B;AACD,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAC7C,eAAO,MAAM,kBAAkB,QAAa,CAAC;AAC7C,qFAAqF;AACrF,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,6EAA6E;AAC7E,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C,eAAO,MAAM,WAAW,gFAKd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,GAAG,SAAS,EAChD,aAAa,EAAE,SAAS,SAAS,EAAE,GAClC,SAAS,EAAE,CASb"}
package/dist/layer.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"layer.js","sourceRoot":"","sources":["../src/layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layer.js","sourceRoot":"","sources":["../src/layer.ts"],"names":[],"mappings":"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"}
package/dist/prewarm.d.ts CHANGED
@@ -9,4 +9,6 @@
9
9
  */
10
10
  import type { WrapOptions } from "./types.js";
11
11
  export declare function prewarm(options?: WrapOptions): Promise<void>;
12
+ /** Best-effort drain of fire-and-forget observation POSTs before Lambda freeze. */
13
+ export declare function flushObservations(options?: WrapOptions, timeoutMs?: number): Promise<void>;
12
14
  //# sourceMappingURL=prewarm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prewarm.d.ts","sourceRoot":"","sources":["../src/prewarm.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAsB,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUtE"}
1
+ {"version":3,"file":"prewarm.d.ts","sourceRoot":"","sources":["../src/prewarm.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAsB,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUtE;AAED,mFAAmF;AACnF,wBAAsB,iBAAiB,CACrC,OAAO,GAAE,WAAgB,EACzB,SAAS,SAAQ,GAChB,OAAO,CAAC,IAAI,CAAC,CAIf"}
package/dist/prewarm.js CHANGED
@@ -19,4 +19,11 @@ export async function prewarm(options = {}) {
19
19
  sdkLayer.effectiveLayer(config.maxLayer),
20
20
  ]);
21
21
  }
22
+ /** Best-effort drain of fire-and-forget observation POSTs before Lambda freeze. */
23
+ export async function flushObservations(options = {}, timeoutMs = 5_000) {
24
+ const config = resolveConfig(options);
25
+ if (config.maxLayer === "off")
26
+ return;
27
+ await getSharedRuntime(config).transport.flush(timeoutMs);
28
+ }
22
29
  //# sourceMappingURL=prewarm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prewarm.js","sourceRoot":"","sources":["../src/prewarm.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,UAAuB,EAAE;IACrD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK;QAAE,OAAO;IAEtC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEzD,MAAM,OAAO,CAAC,UAAU,CAAC;QACvB,SAAS,CAAC,QAAQ,EAAE;QACpB,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;KACzC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"prewarm.js","sourceRoot":"","sources":["../src/prewarm.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,UAAuB,EAAE;IACrD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK;QAAE,OAAO;IAEtC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEzD,MAAM,OAAO,CAAC,UAAU,CAAC;QACvB,SAAS,CAAC,QAAQ,EAAE;QACpB,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;KACzC,CAAC,CAAC;AACL,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,UAAuB,EAAE,EACzB,SAAS,GAAG,KAAK;IAEjB,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK;QAAE,OAAO;IACtC,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC5D,CAAC"}
@@ -31,6 +31,7 @@ export interface AppliedModeHardeningOpts {
31
31
  tags?: string[];
32
32
  customer?: string | null;
33
33
  feature?: string | null;
34
+ teamId?: string | null;
34
35
  }
35
36
  export declare function install(client: unknown, transport: ObservationTransport, tenantId: string | null, environment: string | null, connectionId: string | null, hardening: AppliedModeHardeningOpts, deployment?: string | null, promptTemplateId?: string | null, agentId?: string | null, workflowId?: string | null): void;
36
37
  export declare const __test__: {
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAO5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAOtD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACrD,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AA+ZD,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,SAAS,EAAE,wBAAwB,EACnC,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,CA6FN;AAED,eAAO,MAAM,QAAQ;;;CAA+B,CAAC"}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAgB5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAOtD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,sBAAsB,GAAG,SAAS,CAAC;IACrD,eAAe,EAAE,OAAO,CAAC;IACzB,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AA0cD,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,SAAS,EAAE,wBAAwB,EACnC,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,CA6FN;AAED,eAAO,MAAM,QAAQ;;;CAA+B,CAAC"}
@@ -12,7 +12,10 @@
12
12
  import { randomUUID } from "node:crypto";
13
13
  import { proxyRequest, shouldFallBackToProvider } from "../proxy-client.js";
14
14
  import { admitRequest } from "../admit-client.js";
15
- import { TensorCostProxyError, TensorCostModelGovernanceDeniedError, } from "../errors.js";
15
+ import { assertTeamScope, complianceStampFrom, enforceInProcessDlp, } from "../compliance-guard.js";
16
+ import { extractAnthropicMessagesText } from "../dlp.js";
17
+ import { TensorCostProxyError, TensorCostModelGovernanceDeniedError, TensorCostComplianceDeniedError, TensorCostComplianceTeamMismatchError, } from "../errors.js";
18
+ import { TensorCostConfigError } from "../config.js";
16
19
  import { emitEvent } from "../telemetry.js";
17
20
  import { needsProxyUrl } from "../layer.js";
18
21
  import { decisionMetadata } from "../decision.js";
@@ -68,6 +71,19 @@ function wrapMethod(bound, opts) {
68
71
  const resolvedCustomer = opts.perCallCustomer ?? opts.hardening.customer ?? undefined;
69
72
  const resolvedFeature = opts.perCallFeature ?? opts.hardening.feature ?? undefined;
70
73
  const effectiveLayer = await withAwaitExcluded(overhead, () => opts.hardening.sdkLayer.effectiveLayer(opts.hardening.maxLayer));
74
+ let complianceStamp = {};
75
+ try {
76
+ assertTeamScope({ clientTeamId: opts.hardening.teamId ?? null });
77
+ const complianceSnap = await withAwaitExcluded(overhead, () => opts.hardening.sdkLayer.getComplianceSnapshot(effectiveLayer));
78
+ const dlpResult = enforceInProcessDlp(extractAnthropicMessagesText(firstArg), complianceSnap);
79
+ complianceStamp = complianceStampFrom(complianceSnap, dlpResult);
80
+ }
81
+ catch (err) {
82
+ if (err instanceof TensorCostComplianceDeniedError ||
83
+ err instanceof TensorCostComplianceTeamMismatchError) {
84
+ throw err;
85
+ }
86
+ }
71
87
  let decisionMeta;
72
88
  if (effectiveLayer === "govern") {
73
89
  try {
@@ -91,6 +107,7 @@ function wrapMethod(bound, opts) {
91
107
  feature: resolvedFeature,
92
108
  application: opts.hardening.application ?? null,
93
109
  tags: opts.hardening.tags ?? [],
110
+ team_id: opts.hardening.teamId ?? null,
94
111
  },
95
112
  transport: opts.transport,
96
113
  failOpen: true,
@@ -114,6 +131,13 @@ function wrapMethod(bound, opts) {
114
131
  },
115
132
  }
116
133
  : metaSpread;
134
+ const stampObservation = (obs) => ({
135
+ ...obs,
136
+ ...(complianceStamp.compliance_frameworks?.length
137
+ ? { compliance_frameworks: complianceStamp.compliance_frameworks }
138
+ : {}),
139
+ ...(complianceStamp.dlp_action ? { dlp_action: complianceStamp.dlp_action } : {}),
140
+ });
117
141
  const proxyUrl = opts.hardening.proxyUrl;
118
142
  if (needsProxyUrl(effectiveLayer) && proxyUrl) {
119
143
  // Read the original provider URL from defaultHeaders (set at installAppliedMode).
@@ -126,63 +150,73 @@ function wrapMethod(bound, opts) {
126
150
  ...(firstArg && typeof firstArg === "object" ? firstArg : {}),
127
151
  model: String(model),
128
152
  };
129
- const circuitWasOpen = opts.hardening.circuit.shouldBypass();
130
- let shouldTryProxy = !circuitWasOpen;
131
- if (circuitWasOpen) {
132
- shouldTryProxy = opts.hardening.circuit.shouldProbe();
153
+ const isStreamingRequest = body.stream === true;
154
+ if (isStreamingRequest && !opts.hardening.failOpenEnabled) {
155
+ throw new TensorCostConfigError("tensorcost: stream: true is not supported through the steer proxy in this SDK version. " +
156
+ "Use failOpenEnabled: true for direct streaming, or set maxLayer to govern/observe.");
133
157
  }
134
158
  let proxyResult;
135
- let proxyFailed = false;
159
+ let proxyFailed = isStreamingRequest;
136
160
  let proxyFailureError = null;
137
- if (shouldTryProxy) {
138
- try {
139
- const getToken = opts.getToken ?? (() => opts.transport.getToken());
140
- const proxyResp = await withAwaitExcluded(overhead, async () => {
141
- const bearerToken = await getToken();
142
- return proxyRequest({
143
- proxyUrl,
144
- bearerToken,
145
- providerUrl,
146
- providerAuth,
147
- body,
148
- model: String(model),
149
- provider: "anthropic",
150
- operation: "messages",
151
- correlationId,
152
- environment: opts.environment,
153
- application: opts.hardening.application ?? null,
154
- tags: opts.hardening.tags ?? [],
155
- agentId: resolvedAgentId,
156
- workflowId: resolvedWorkflowId,
157
- customer: resolvedCustomer,
158
- feature: resolvedFeature,
159
- retry: opts.hardening.retry,
160
- timeoutMs: opts.hardening.timeoutMs,
161
- headersTimeoutMs: opts.hardening.headersTimeoutMs,
162
- onLifecycleEvent: opts.hardening.onLifecycleEvent,
163
- circuit: opts.hardening.circuit,
164
- maxLayer: effectiveLayer,
165
- failOpenFast: opts.hardening.failOpenEnabled,
161
+ if (!isStreamingRequest) {
162
+ const circuitWasOpen = opts.hardening.circuit.shouldBypass();
163
+ let shouldTryProxy = !circuitWasOpen;
164
+ if (circuitWasOpen) {
165
+ shouldTryProxy = opts.hardening.circuit.shouldProbe();
166
+ }
167
+ if (shouldTryProxy) {
168
+ try {
169
+ const getToken = opts.getToken ?? (() => opts.transport.getToken());
170
+ const proxyResp = await withAwaitExcluded(overhead, async () => {
171
+ const bearerToken = await getToken();
172
+ return proxyRequest({
173
+ proxyUrl,
174
+ bearerToken,
175
+ providerUrl,
176
+ providerAuth,
177
+ body,
178
+ model: String(model),
179
+ provider: "anthropic",
180
+ operation: "messages",
181
+ correlationId,
182
+ environment: opts.environment,
183
+ application: opts.hardening.application ?? null,
184
+ tags: opts.hardening.tags ?? [],
185
+ agentId: resolvedAgentId,
186
+ workflowId: resolvedWorkflowId,
187
+ customer: resolvedCustomer,
188
+ feature: resolvedFeature,
189
+ retry: opts.hardening.retry,
190
+ timeoutMs: opts.hardening.timeoutMs,
191
+ headersTimeoutMs: opts.hardening.headersTimeoutMs,
192
+ onLifecycleEvent: opts.hardening.onLifecycleEvent,
193
+ circuit: opts.hardening.circuit,
194
+ maxLayer: effectiveLayer,
195
+ failOpenFast: opts.hardening.failOpenEnabled,
196
+ });
166
197
  });
167
- });
168
- proxyResult = proxyResp.body;
169
- decisionMeta = decisionMetadata(proxyResp.decisionHeader);
198
+ proxyResult = proxyResp.body;
199
+ decisionMeta = decisionMetadata(proxyResp.decisionHeader);
200
+ }
201
+ catch (proxyErr) {
202
+ // A run-budget refusal is a decision, not a failure. Rethrow it
203
+ // immediately so it never reaches the fail-open fallback below —
204
+ // otherwise the cap would be enforced by the proxy and then
205
+ // silently bypassed by us calling Anthropic directly.
206
+ if (!shouldFallBackToProvider(proxyErr))
207
+ throw proxyErr;
208
+ proxyFailed = true;
209
+ proxyFailureError = proxyErr;
210
+ }
211
+ finally {
212
+ opts.hardening.circuit.releaseStuckProbe();
213
+ }
170
214
  }
171
- catch (proxyErr) {
172
- // A run-budget refusal is a decision, not a failure. Rethrow it
173
- // immediately so it never reaches the fail-open fallback below —
174
- // otherwise the cap would be enforced by the proxy and then
175
- // silently bypassed by us calling Anthropic directly.
176
- if (!shouldFallBackToProvider(proxyErr))
177
- throw proxyErr;
215
+ else {
178
216
  proxyFailed = true;
179
- proxyFailureError = proxyErr;
180
217
  }
181
- }
182
- else {
183
- proxyFailed = true;
184
- }
185
- if (proxyFailed || circuitWasOpen) {
218
+ } // !isStreamingRequest
219
+ if (proxyFailed) {
186
220
  if (!opts.hardening.failOpenEnabled) {
187
221
  const tcErr = proxyFailureError instanceof TensorCostProxyError
188
222
  ? proxyFailureError
@@ -208,7 +242,7 @@ function wrapMethod(bound, opts) {
208
242
  ...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
209
243
  ...decisionSpread,
210
244
  };
211
- postObservation(opts.transport, overhead, obs);
245
+ postObservation(opts.transport, overhead, stampObservation(obs));
212
246
  throw tcErr;
213
247
  }
214
248
  emitEvent(opts.hardening.onLifecycleEvent, {
@@ -244,7 +278,7 @@ function wrapMethod(bound, opts) {
244
278
  ...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
245
279
  ...decisionSpread,
246
280
  };
247
- postObservation(opts.transport, overhead, obs);
281
+ postObservation(opts.transport, overhead, stampObservation(obs));
248
282
  return directResponse;
249
283
  }
250
284
  catch (directErr) {
@@ -269,7 +303,7 @@ function wrapMethod(bound, opts) {
269
303
  ...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
270
304
  ...decisionSpread,
271
305
  };
272
- postObservation(opts.transport, overhead, obs);
306
+ postObservation(opts.transport, overhead, stampObservation(obs));
273
307
  throw directErr;
274
308
  }
275
309
  }
@@ -307,7 +341,7 @@ function wrapMethod(bound, opts) {
307
341
  ...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
308
342
  ...proxyDecisionSpread,
309
343
  };
310
- postObservation(opts.transport, overhead, obs);
344
+ postObservation(opts.transport, overhead, stampObservation(obs));
311
345
  return proxyResult;
312
346
  }
313
347
  // Observe / govern direct path.
@@ -335,7 +369,7 @@ function wrapMethod(bound, opts) {
335
369
  ...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
336
370
  ...decisionSpread,
337
371
  };
338
- postObservation(opts.transport, overhead, obs);
372
+ postObservation(opts.transport, overhead, stampObservation(obs));
339
373
  return response;
340
374
  }
341
375
  catch (err) {
@@ -360,7 +394,7 @@ function wrapMethod(bound, opts) {
360
394
  ...(resolvedFeature !== undefined ? { feature: resolvedFeature } : {}),
361
395
  ...decisionSpread,
362
396
  };
363
- postObservation(opts.transport, overhead, obs);
397
+ postObservation(opts.transport, overhead, stampObservation(obs));
364
398
  throw err;
365
399
  }
366
400
  };