@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.
- package/CHANGELOG.md +52 -0
- package/README.md +75 -10
- package/dist/admit-client.d.ts +1 -0
- package/dist/admit-client.d.ts.map +1 -1
- package/dist/admit-client.js +1 -0
- package/dist/admit-client.js.map +1 -1
- package/dist/applied.d.ts +1 -0
- package/dist/applied.d.ts.map +1 -1
- package/dist/applied.js +3 -0
- package/dist/applied.js.map +1 -1
- package/dist/circuit.d.ts +11 -3
- package/dist/circuit.d.ts.map +1 -1
- package/dist/circuit.js +28 -5
- package/dist/circuit.js.map +1 -1
- package/dist/compliance-guard.d.ts +16 -0
- package/dist/compliance-guard.d.ts.map +1 -0
- package/dist/compliance-guard.js +39 -0
- package/dist/compliance-guard.js.map +1 -0
- package/dist/compliance-team.d.ts +11 -0
- package/dist/compliance-team.d.ts.map +1 -0
- package/dist/compliance-team.js +10 -0
- package/dist/compliance-team.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +7 -0
- package/dist/config.js.map +1 -1
- package/dist/dlp.d.ts +16 -0
- package/dist/dlp.d.ts.map +1 -0
- package/dist/dlp.js +116 -0
- package/dist/dlp.js.map +1 -0
- package/dist/errors.d.ts +9 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +13 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/layer.d.ts +21 -0
- package/dist/layer.d.ts.map +1 -1
- package/dist/layer.js.map +1 -1
- package/dist/prewarm.d.ts +2 -0
- package/dist/prewarm.d.ts.map +1 -1
- package/dist/prewarm.js +7 -0
- package/dist/prewarm.js.map +1 -1
- package/dist/providers/anthropic.d.ts +1 -0
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +91 -57
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/openai.d.ts +1 -0
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +105 -61
- package/dist/providers/openai.js.map +1 -1
- package/dist/proxy-client.d.ts +4 -1
- package/dist/proxy-client.d.ts.map +1 -1
- package/dist/proxy-client.js +52 -9
- package/dist/proxy-client.js.map +1 -1
- package/dist/runtime.d.ts +1 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +8 -2
- package/dist/runtime.js.map +1 -1
- package/dist/sdk-layer.d.ts +6 -1
- package/dist/sdk-layer.d.ts.map +1 -1
- package/dist/sdk-layer.js +84 -6
- package/dist/sdk-layer.js.map +1 -1
- package/dist/transport.d.ts +7 -0
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +14 -0
- package/dist/transport.js.map +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/wrap.d.ts.map +1 -1
- package/dist/wrap.js +2 -0
- package/dist/wrap.js.map +1 -1
- 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
|
package/dist/dlp.js.map
ADDED
|
@@ -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
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -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
|
package/dist/errors.js.map
CHANGED
|
@@ -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.
|
|
14
|
+
export declare const version = "1.2.0";
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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.
|
|
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;
|
|
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. */
|
package/dist/layer.d.ts.map
CHANGED
|
@@ -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;
|
|
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":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,KAAK;IACL,SAAS;IACT,QAAQ;IACR,OAAO;IACP,OAAO;CACC,CAAC;AAIX,MAAM,UAAU,GAAiC;IAC/C,GAAG,EAAE,CAAC;IACN,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,KAAmB;IAC3C,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAe,EAAE,CAAe;IACvD,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAQ,cAAoC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,aAAa,CAAC,KAAmB;IAC/C,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,UAAU,CAAC,KAAmB;IAC5C,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAG/B;IACC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,sCAAsC;QACtC,OAAO,CAAC,IAAI,CACV,sEAAsE,CACvE,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,kBAAkB,EAAE,0CAA0C;IAC9D,QAAQ,EAAE,kCAAkC;IAC5C,WAAW,EAAE,qCAAqC;IAClD,UAAU,EAAE,oCAAoC;IAChD,SAAS,EAAE,mCAAmC;CAC/C,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,SAAiB;IACrD,OAAO,qBAAqB,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,+BAA+B,CAAC;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,mCAAmC,CAAC;
|
|
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
|
package/dist/prewarm.d.ts.map
CHANGED
|
@@ -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
|
package/dist/prewarm.js.map
CHANGED
|
@@ -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;
|
|
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 {
|
|
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
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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 =
|
|
159
|
+
let proxyFailed = isStreamingRequest;
|
|
136
160
|
let proxyFailureError = null;
|
|
137
|
-
if (
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
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
|
-
|
|
169
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
};
|