@tensorcost/sdk 0.5.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.
- package/CHANGELOG.md +117 -0
- package/README.md +63 -95
- package/dist/adapters/crewai.d.ts +4 -0
- package/dist/adapters/crewai.d.ts.map +1 -0
- package/dist/adapters/crewai.js +6 -0
- package/dist/adapters/crewai.js.map +1 -0
- package/dist/adapters/langchain.d.ts +4 -0
- package/dist/adapters/langchain.d.ts.map +1 -0
- package/dist/adapters/langchain.js +6 -0
- package/dist/adapters/langchain.js.map +1 -0
- package/dist/adapters/llamaindex.d.ts +4 -0
- package/dist/adapters/llamaindex.d.ts.map +1 -0
- package/dist/adapters/llamaindex.js +6 -0
- package/dist/adapters/llamaindex.js.map +1 -0
- package/dist/adapters/vercel-ai.d.ts +4 -0
- package/dist/adapters/vercel-ai.d.ts.map +1 -0
- package/dist/adapters/vercel-ai.js +6 -0
- package/dist/adapters/vercel-ai.js.map +1 -0
- package/dist/admit-client.d.ts +39 -0
- package/dist/admit-client.d.ts.map +1 -0
- package/dist/admit-client.js +93 -0
- package/dist/admit-client.js.map +1 -0
- package/dist/applied.d.ts +6 -1
- package/dist/applied.d.ts.map +1 -1
- package/dist/applied.js +13 -1
- package/dist/applied.js.map +1 -1
- package/dist/circuit-observations.d.ts +12 -0
- package/dist/circuit-observations.d.ts.map +1 -0
- package/dist/circuit-observations.js +37 -0
- package/dist/circuit-observations.js.map +1 -0
- package/dist/circuit.d.ts +4 -1
- package/dist/circuit.d.ts.map +1 -1
- package/dist/circuit.js +13 -7
- package/dist/circuit.js.map +1 -1
- package/dist/config.d.ts +2 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +74 -6
- package/dist/config.js.map +1 -1
- package/dist/decision.d.ts +11 -0
- package/dist/decision.d.ts.map +1 -0
- package/dist/decision.js +40 -0
- package/dist/decision.js.map +1 -0
- package/dist/errors.d.ts +40 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +46 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +8 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -2
- package/dist/index.js.map +1 -1
- package/dist/layer.d.ts +27 -0
- package/dist/layer.d.ts.map +1 -0
- package/dist/layer.js +77 -0
- package/dist/layer.js.map +1 -0
- package/dist/providers/anthropic.d.ts +11 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +196 -18
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/bedrock.d.ts +1 -1
- package/dist/providers/bedrock.d.ts.map +1 -1
- package/dist/providers/bedrock.js +21 -3
- package/dist/providers/bedrock.js.map +1 -1
- package/dist/providers/detect.d.ts.map +1 -1
- package/dist/providers/detect.js +17 -2
- package/dist/providers/detect.js.map +1 -1
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openai.d.ts +11 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +255 -20
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/vertex.d.ts +14 -0
- package/dist/providers/vertex.d.ts.map +1 -0
- package/dist/providers/vertex.js +174 -0
- package/dist/providers/vertex.js.map +1 -0
- package/dist/proxy-client.d.ts +37 -1
- package/dist/proxy-client.d.ts.map +1 -1
- package/dist/proxy-client.js +124 -4
- package/dist/proxy-client.js.map +1 -1
- package/dist/sdk-layer.d.ts +26 -0
- package/dist/sdk-layer.d.ts.map +1 -0
- package/dist/sdk-layer.js +73 -0
- package/dist/sdk-layer.js.map +1 -0
- package/dist/transport.d.ts +6 -1
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +14 -3
- package/dist/transport.js.map +1 -1
- package/dist/types.d.ts +178 -17
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +9 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +10 -0
- package/dist/version.js.map +1 -0
- package/dist/wrap.d.ts +13 -14
- package/dist/wrap.d.ts.map +1 -1
- package/dist/wrap.js +66 -59
- package/dist/wrap.js.map +1 -1
- package/package.json +7 -2
package/dist/applied.d.ts
CHANGED
|
@@ -84,7 +84,12 @@ declare function azureAuth(apiKey: string): string;
|
|
|
84
84
|
* - If the client doesn't expose `apiKey` (can't build `x-tc-provider-auth`).
|
|
85
85
|
* - If the provider is "bedrock" (not yet supported in v1).
|
|
86
86
|
*/
|
|
87
|
-
export declare function installAppliedMode(client: unknown, proxyUrl: string, provider: "openai" | "anthropic"
|
|
87
|
+
export declare function installAppliedMode(client: unknown, proxyUrl: string, provider: "openai" | "anthropic", scope?: {
|
|
88
|
+
application?: string | null;
|
|
89
|
+
tags?: string[];
|
|
90
|
+
customer?: string | null;
|
|
91
|
+
feature?: string | null;
|
|
92
|
+
}): void;
|
|
88
93
|
export declare const PROXY_PATH_SUFFIX = "/api/inference-proxy/v1/chat/completions";
|
|
89
94
|
export declare const __test__: {
|
|
90
95
|
readBaseUrl: typeof readBaseUrl;
|
package/dist/applied.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applied.d.ts","sourceRoot":"","sources":["../src/applied.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAOH;;;GAGG;AAEH,gEAAgE;AAChE,iBAAS,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,oDAAoD;AACpD,iBAAS,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;;;GAKG;AACH,iBAAS,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAMnE;AAED;;;GAGG;AACH,iBAAS,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAGlE;AAED;;;;;;;;GAQG;AACH,iBAAS,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAI/D;AAED;;;;;;;;GAQG;AACH,iBAAS,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"applied.d.ts","sourceRoot":"","sources":["../src/applied.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAOH;;;GAGG;AAEH,gEAAgE;AAChE,iBAAS,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1C;AAED,oDAAoD;AACpD,iBAAS,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;;;GAKG;AACH,iBAAS,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAMnE;AAED;;;GAGG;AACH,iBAAS,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAGlE;AAED;;;;;;;;GAQG;AACH,iBAAS,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAI/D;AAED;;;;;;;;GAQG;AACH,iBAAS,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,EACf,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,GAAG,WAAW,EAChC,KAAK,CAAC,EAAE;IACN,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,GACA,IAAI,CA6EN;AAED,eAAO,MAAM,iBAAiB,6CAAa,CAAC;AAE5C,eAAO,MAAM,QAAQ;;;;;;;CAOpB,CAAC"}
|
package/dist/applied.js
CHANGED
|
@@ -107,7 +107,7 @@ function azureAuth(apiKey) {
|
|
|
107
107
|
* - If the client doesn't expose `apiKey` (can't build `x-tc-provider-auth`).
|
|
108
108
|
* - If the provider is "bedrock" (not yet supported in v1).
|
|
109
109
|
*/
|
|
110
|
-
export function installAppliedMode(client, proxyUrl, provider) {
|
|
110
|
+
export function installAppliedMode(client, proxyUrl, provider, scope) {
|
|
111
111
|
if (provider === "bedrock") {
|
|
112
112
|
// Bedrock uses SigV4 signing on regional HTTPS endpoints. The AWS
|
|
113
113
|
// SDK does not expose baseURL / defaultHeaders in the same shape,
|
|
@@ -160,6 +160,18 @@ export function installAppliedMode(client, proxyUrl, provider) {
|
|
|
160
160
|
: {};
|
|
161
161
|
headers["x-tc-provider-url"] = originalBaseUrl;
|
|
162
162
|
headers["x-tc-provider-auth"] = providerAuth;
|
|
163
|
+
if (scope?.application) {
|
|
164
|
+
headers["x-tc-application"] = scope.application;
|
|
165
|
+
}
|
|
166
|
+
if (scope?.tags && scope.tags.length > 0) {
|
|
167
|
+
headers["x-tc-tags"] = scope.tags.join(",");
|
|
168
|
+
}
|
|
169
|
+
if (scope?.customer) {
|
|
170
|
+
headers["x-tc-customer"] = scope.customer;
|
|
171
|
+
}
|
|
172
|
+
if (scope?.feature) {
|
|
173
|
+
headers["x-tc-feature"] = scope.feature;
|
|
174
|
+
}
|
|
163
175
|
c["defaultHeaders"] = headers;
|
|
164
176
|
}
|
|
165
177
|
export const PROXY_PATH_SUFFIX = PROXY_PATH;
|
package/dist/applied.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"applied.js","sourceRoot":"","sources":["../src/applied.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,iDAAiD;AACjD,MAAM,UAAU,GAAG,0CAA0C,CAAC;AAE9D;;;GAGG;AAEH,gEAAgE;AAChE,SAAS,UAAU,CAAC,MAAc;IAChC,OAAO,UAAU,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED,oDAAoD;AACpD,SAAS,aAAa,CAAC,MAAc;IACnC,OAAO,aAAa,MAAM,EAAE,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,MAA+B;IAClD,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,MAA+B;IACjD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAChE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,aAAa,CAAC,MAA+B;IACpD,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACtC,OAAO,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,SAAS,CAAC,MAAc;IAC/B,OAAO,WAAW,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAe,EACf,QAAgB,EAChB,QAAgC;
|
|
1
|
+
{"version":3,"file":"applied.js","sourceRoot":"","sources":["../src/applied.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Emit circuit-breaker state transitions as observations (Phase 4).
|
|
3
|
+
*/
|
|
4
|
+
import type { CircuitState } from "./circuit.js";
|
|
5
|
+
import type { ObservationTransport } from "./transport.js";
|
|
6
|
+
import type { Provider } from "./types.js";
|
|
7
|
+
export declare function bindCircuitObservations(transport: ObservationTransport, ctx: {
|
|
8
|
+
provider: Provider;
|
|
9
|
+
tenantId: string | null;
|
|
10
|
+
environment: string | null;
|
|
11
|
+
}): (from: CircuitState, to: CircuitState) => void;
|
|
12
|
+
//# sourceMappingURL=circuit-observations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-observations.d.ts","sourceRoot":"","sources":["../src/circuit-observations.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGxD,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,oBAAoB,EAC/B,GAAG,EAAE;IACH,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,GACA,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,CA6BhD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Emit circuit-breaker state transitions as observations (Phase 4).
|
|
3
|
+
*/
|
|
4
|
+
import { randomUUID } from "node:crypto";
|
|
5
|
+
import { SDK_VERSION } from "./version.js";
|
|
6
|
+
export function bindCircuitObservations(transport, ctx) {
|
|
7
|
+
return (from, to) => {
|
|
8
|
+
const obs = {
|
|
9
|
+
sdk_version: SDK_VERSION,
|
|
10
|
+
provider: ctx.provider,
|
|
11
|
+
model: "circuit-breaker",
|
|
12
|
+
operation: "chat.completions",
|
|
13
|
+
modality: "text",
|
|
14
|
+
request_at: new Date().toISOString(),
|
|
15
|
+
response_at: new Date().toISOString(),
|
|
16
|
+
input_tokens: null,
|
|
17
|
+
output_tokens: null,
|
|
18
|
+
cost_usd_cents: null,
|
|
19
|
+
status: "success",
|
|
20
|
+
error_message: null,
|
|
21
|
+
correlation_id: randomUUID(),
|
|
22
|
+
tenant_id: ctx.tenantId,
|
|
23
|
+
environment: ctx.environment ?? undefined,
|
|
24
|
+
metadata: {
|
|
25
|
+
circuit_state: to,
|
|
26
|
+
circuit_previous_state: from,
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
try {
|
|
30
|
+
transport.post(obs);
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
/* fail-open */
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=circuit-observations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"circuit-observations.js","sourceRoot":"","sources":["../src/circuit-observations.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,UAAU,uBAAuB,CACrC,SAA+B,EAC/B,GAIC;IAED,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;QAClB,MAAM,GAAG,GAAgB;YACvB,WAAW,EAAE,WAAW;YACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,KAAK,EAAE,iBAAiB;YACxB,SAAS,EAAE,kBAAkB;YAC7B,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,IAAI;YACpB,MAAM,EAAE,SAAS;YACjB,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,UAAU,EAAE;YAC5B,SAAS,EAAE,GAAG,CAAC,QAAQ;YACvB,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,SAAS;YACzC,QAAQ,EAAE;gBACR,aAAa,EAAE,EAAE;gBACjB,sBAAsB,EAAE,IAAI;aAC7B;SACF,CAAC;QACF,IAAI,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/circuit.d.ts
CHANGED
|
@@ -26,12 +26,15 @@ export interface CircuitBreakerConfig {
|
|
|
26
26
|
closeThreshold: number;
|
|
27
27
|
}
|
|
28
28
|
export declare const DEFAULT_CIRCUIT_CONFIG: CircuitBreakerConfig;
|
|
29
|
+
export type CircuitTransitionListener = (from: CircuitState, to: CircuitState) => void;
|
|
29
30
|
export declare class CircuitBreaker {
|
|
30
31
|
private state;
|
|
31
32
|
private consecutiveFailures;
|
|
32
33
|
private probeSuccesses;
|
|
33
34
|
readonly config: CircuitBreakerConfig;
|
|
34
|
-
|
|
35
|
+
private readonly onTransition?;
|
|
36
|
+
constructor(config?: CircuitBreakerConfig, onTransition?: CircuitTransitionListener);
|
|
37
|
+
private transition;
|
|
35
38
|
/** Current circuit state. */
|
|
36
39
|
get currentState(): CircuitState;
|
|
37
40
|
/** How many consecutive failures have been recorded. */
|
package/dist/circuit.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circuit.d.ts","sourceRoot":"","sources":["../src/circuit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,aAAa,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,sBAAsB,EAAE,oBAGpC,CAAC;AAEF,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,cAAc,CAAK;IAC3B,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"circuit.d.ts","sourceRoot":"","sources":["../src/circuit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,aAAa,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,sBAAsB,EAAE,oBAGpC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,CACtC,IAAI,EAAE,YAAY,EAClB,EAAE,EAAE,YAAY,KACb,IAAI,CAAC;AAEV,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,cAAc,CAAK;IAC3B,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAA4B;gBAGxD,MAAM,GAAE,oBAA6C,EACrD,YAAY,CAAC,EAAE,yBAAyB;IAM1C,OAAO,CAAC,UAAU;IAOlB,6BAA6B;IAC7B,IAAI,YAAY,IAAI,YAAY,CAE/B;IAED,wDAAwD;IACxD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;;;OAIG;IACH,YAAY,IAAI,OAAO;IAIvB;;;OAGG;IACH,WAAW,IAAI,OAAO;IAQtB,2CAA2C;IAC3C,aAAa,IAAI,IAAI;IAWrB,+DAA+D;IAC/D,aAAa,IAAI,IAAI;IAarB,OAAO,CAAC,KAAK;CAKd"}
|
package/dist/circuit.js
CHANGED
|
@@ -23,11 +23,19 @@ export const DEFAULT_CIRCUIT_CONFIG = {
|
|
|
23
23
|
closeThreshold: 5,
|
|
24
24
|
};
|
|
25
25
|
export class CircuitBreaker {
|
|
26
|
-
constructor(config = DEFAULT_CIRCUIT_CONFIG) {
|
|
26
|
+
constructor(config = DEFAULT_CIRCUIT_CONFIG, onTransition) {
|
|
27
27
|
this.state = "CLOSED";
|
|
28
28
|
this.consecutiveFailures = 0;
|
|
29
29
|
this.probeSuccesses = 0;
|
|
30
30
|
this.config = config;
|
|
31
|
+
this.onTransition = onTransition;
|
|
32
|
+
}
|
|
33
|
+
transition(to) {
|
|
34
|
+
if (to === this.state)
|
|
35
|
+
return;
|
|
36
|
+
const from = this.state;
|
|
37
|
+
this.state = to;
|
|
38
|
+
this.onTransition?.(from, to);
|
|
31
39
|
}
|
|
32
40
|
/** Current circuit state. */
|
|
33
41
|
get currentState() {
|
|
@@ -51,8 +59,7 @@ export class CircuitBreaker {
|
|
|
51
59
|
*/
|
|
52
60
|
shouldProbe() {
|
|
53
61
|
if (this.state === "OPEN") {
|
|
54
|
-
|
|
55
|
-
this.state = "HALF_OPEN";
|
|
62
|
+
this.transition("HALF_OPEN");
|
|
56
63
|
return true;
|
|
57
64
|
}
|
|
58
65
|
return false;
|
|
@@ -72,22 +79,21 @@ export class CircuitBreaker {
|
|
|
72
79
|
/** Call after a proxy request fails (5xx or network error). */
|
|
73
80
|
recordFailure() {
|
|
74
81
|
if (this.state === "HALF_OPEN") {
|
|
75
|
-
// Probe failed — go back to fully open.
|
|
76
|
-
this.state = "OPEN";
|
|
77
82
|
this.probeSuccesses = 0;
|
|
83
|
+
this.transition("OPEN");
|
|
78
84
|
}
|
|
79
85
|
else if (this.state === "CLOSED") {
|
|
80
86
|
this.consecutiveFailures += 1;
|
|
81
87
|
if (this.consecutiveFailures >= this.config.openThreshold) {
|
|
82
|
-
this.
|
|
88
|
+
this.transition("OPEN");
|
|
83
89
|
}
|
|
84
90
|
}
|
|
85
91
|
// OPEN + another failure: stay open, no state change needed.
|
|
86
92
|
}
|
|
87
93
|
reset() {
|
|
88
|
-
this.state = "CLOSED";
|
|
89
94
|
this.consecutiveFailures = 0;
|
|
90
95
|
this.probeSuccesses = 0;
|
|
96
|
+
this.transition("CLOSED");
|
|
91
97
|
}
|
|
92
98
|
}
|
|
93
99
|
//# sourceMappingURL=circuit.js.map
|
package/dist/circuit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"circuit.js","sourceRoot":"","sources":["../src/circuit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAWH,MAAM,CAAC,MAAM,sBAAsB,GAAyB;IAC1D,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;CAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"circuit.js","sourceRoot":"","sources":["../src/circuit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAWH,MAAM,CAAC,MAAM,sBAAsB,GAAyB;IAC1D,aAAa,EAAE,CAAC;IAChB,cAAc,EAAE,CAAC;CAClB,CAAC;AAOF,MAAM,OAAO,cAAc;IAOzB,YACE,SAA+B,sBAAsB,EACrD,YAAwC;QARlC,UAAK,GAAiB,QAAQ,CAAC;QAC/B,wBAAmB,GAAG,CAAC,CAAC;QACxB,mBAAc,GAAG,CAAC,CAAC;QAQzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEO,UAAU,CAAC,EAAgB;QACjC,IAAI,EAAE,KAAK,IAAI,CAAC,KAAK;YAAE,OAAO;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,6BAA6B;IAC7B,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,wDAAwD;IACxD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC;IAC/B,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2CAA2C;IAC3C,aAAa;QACX,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBACtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACnC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,aAAa;QACX,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACnC,IAAI,CAAC,mBAAmB,IAAI,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC1D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,6DAA6D;IAC/D,CAAC;IAEO,KAAK;QACX,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;CACF"}
|
package/dist/config.d.ts
CHANGED
|
@@ -12,9 +12,8 @@
|
|
|
12
12
|
* the SDK was never configured at all, and silently dropping every
|
|
13
13
|
* observation would be worse than a loud import-time failure.
|
|
14
14
|
*
|
|
15
|
-
* If
|
|
16
|
-
* TensorCostConfigError is thrown.
|
|
17
|
-
* URL; there is no safe default.
|
|
15
|
+
* If maxLayer is steer or route and proxyUrl is missing from both options
|
|
16
|
+
* and env, TensorCostConfigError is thrown.
|
|
18
17
|
*/
|
|
19
18
|
import type { ResolvedConfig, WrapOptions } from "./types.js";
|
|
20
19
|
export declare const DEFAULT_BASE_URL = "https://api.tensorcost.com";
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAS9D,eAAO,MAAM,gBAAgB,+BAA+B,CAAC;AAE7D,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED,yEAAyE;AACzE,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,aAAa,CAAC,OAAO,GAAE,WAAgB,GAAG,cAAc,CAgKvE"}
|
package/dist/config.js
CHANGED
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
* the SDK was never configured at all, and silently dropping every
|
|
13
13
|
* observation would be worse than a loud import-time failure.
|
|
14
14
|
*
|
|
15
|
-
* If
|
|
16
|
-
* TensorCostConfigError is thrown.
|
|
17
|
-
* URL; there is no safe default.
|
|
15
|
+
* If maxLayer is steer or route and proxyUrl is missing from both options
|
|
16
|
+
* and env, TensorCostConfigError is thrown.
|
|
18
17
|
*/
|
|
19
18
|
import { DEFAULT_RETRY_CONFIG } from "./retry.js";
|
|
19
|
+
import { DATA_GRANTS, needsProxyUrl, resolveMaxLayer, } from "./layer.js";
|
|
20
20
|
export const DEFAULT_BASE_URL = "https://api.tensorcost.com";
|
|
21
21
|
export class MissingConfigError extends Error {
|
|
22
22
|
constructor(message) {
|
|
@@ -61,15 +61,19 @@ export function resolveConfig(options = {}) {
|
|
|
61
61
|
connectionId = trimmed.length === 0 ? null : trimmed;
|
|
62
62
|
}
|
|
63
63
|
const failOpen = options.failOpen ?? true;
|
|
64
|
-
const
|
|
64
|
+
const maxLayer = resolveMaxLayer({
|
|
65
|
+
maxLayer: options.maxLayer,
|
|
66
|
+
appliedMode: options.appliedMode,
|
|
67
|
+
});
|
|
68
|
+
const appliedMode = needsProxyUrl(maxLayer);
|
|
65
69
|
const proxyUrlRaw = options.proxyUrl ?? process.env.TENSORCOST_PROXY_URL ?? null;
|
|
66
70
|
const proxyUrl = proxyUrlRaw !== null ? proxyUrlRaw.replace(/\/+$/, "") : null;
|
|
67
71
|
if (!apiKey) {
|
|
68
72
|
throw new MissingConfigError("TensorCost apiKey not found. Pass { apiKey } to wrap() or set the " +
|
|
69
73
|
"TENSORCOST_API_KEY environment variable.");
|
|
70
74
|
}
|
|
71
|
-
if (
|
|
72
|
-
throw new TensorCostConfigError(
|
|
75
|
+
if (needsProxyUrl(maxLayer) && !proxyUrl) {
|
|
76
|
+
throw new TensorCostConfigError(`TensorCost maxLayer '${maxLayer}' requires a proxy URL. ` +
|
|
73
77
|
"Pass { proxyUrl } to wrap() or set the TENSORCOST_PROXY_URL " +
|
|
74
78
|
"environment variable.");
|
|
75
79
|
}
|
|
@@ -83,6 +87,43 @@ export function resolveConfig(options = {}) {
|
|
|
83
87
|
const onLifecycleEvent = options.onLifecycleEvent;
|
|
84
88
|
const failOpenEnabled = options.failOpenEnabled ?? true;
|
|
85
89
|
const providerApiKey = options.providerApiKey ?? null;
|
|
90
|
+
// SDK metadata defaults. Both trim and collapse blank-to-null.
|
|
91
|
+
const deploymentRaw = options.deployment ?? process.env.TENSORCOST_DEPLOYMENT ?? null;
|
|
92
|
+
const deployment = deploymentRaw !== null
|
|
93
|
+
? String(deploymentRaw).trim() || null
|
|
94
|
+
: null;
|
|
95
|
+
const promptTemplateIdRaw = options.promptTemplateId ?? process.env.TENSORCOST_PROMPT_TEMPLATE_ID ?? null;
|
|
96
|
+
const promptTemplateId = promptTemplateIdRaw !== null
|
|
97
|
+
? String(promptTemplateIdRaw).trim() || null
|
|
98
|
+
: null;
|
|
99
|
+
// Per-agent-run attribution defaults. Same trim + blank-collapses-to-null
|
|
100
|
+
// rule as deployment / promptTemplateId — no length cap here (the DB
|
|
101
|
+
// column is unconstrained `text`); customers pass their own identifiers
|
|
102
|
+
// (session ids, job ids) which can legitimately be longer than the
|
|
103
|
+
// 64-char environment/connectionId caps.
|
|
104
|
+
const agentIdRaw = options.agentId ?? process.env.TENSORCOST_AGENT_ID ?? null;
|
|
105
|
+
const agentId = agentIdRaw !== null ? String(agentIdRaw).trim() || null : null;
|
|
106
|
+
const workflowIdRaw = options.workflowId ?? process.env.TENSORCOST_WORKFLOW_ID ?? null;
|
|
107
|
+
const workflowId = workflowIdRaw !== null ? String(workflowIdRaw).trim() || null : null;
|
|
108
|
+
const applicationRaw = options.application ??
|
|
109
|
+
process.env.TC_APPLICATION ??
|
|
110
|
+
process.env.TENSORCOST_APPLICATION ??
|
|
111
|
+
null;
|
|
112
|
+
const application = applicationRaw !== null ? String(applicationRaw).trim() || null : null;
|
|
113
|
+
const tagsRaw = options.tags ?? process.env.TC_TAGS ?? process.env.TENSORCOST_TAGS ?? null;
|
|
114
|
+
let tags = [];
|
|
115
|
+
if (Array.isArray(tagsRaw)) {
|
|
116
|
+
tags = tagsRaw.map((x) => String(x).trim()).filter((x) => x.length > 0);
|
|
117
|
+
}
|
|
118
|
+
else if (tagsRaw !== null) {
|
|
119
|
+
tags = String(tagsRaw)
|
|
120
|
+
.split(",")
|
|
121
|
+
.map((x) => x.trim())
|
|
122
|
+
.filter((x) => x.length > 0);
|
|
123
|
+
}
|
|
124
|
+
const customer = resolveAttributionField(options.customer ?? process.env.TENSORCOST_CUSTOMER ?? null, "customer");
|
|
125
|
+
const feature = resolveAttributionField(options.feature ?? process.env.TENSORCOST_FEATURE ?? null, "feature");
|
|
126
|
+
const maxGrants = normalizeMaxGrants(options.maxGrants);
|
|
86
127
|
return {
|
|
87
128
|
apiKey,
|
|
88
129
|
baseUrl: baseUrlRaw.replace(/\/+$/, ""),
|
|
@@ -90,6 +131,7 @@ export function resolveConfig(options = {}) {
|
|
|
90
131
|
environment,
|
|
91
132
|
connectionId,
|
|
92
133
|
failOpen,
|
|
134
|
+
maxLayer,
|
|
93
135
|
appliedMode,
|
|
94
136
|
proxyUrl,
|
|
95
137
|
retry,
|
|
@@ -98,6 +140,32 @@ export function resolveConfig(options = {}) {
|
|
|
98
140
|
onLifecycleEvent,
|
|
99
141
|
failOpenEnabled,
|
|
100
142
|
providerApiKey,
|
|
143
|
+
deployment,
|
|
144
|
+
promptTemplateId,
|
|
145
|
+
agentId,
|
|
146
|
+
workflowId,
|
|
147
|
+
application,
|
|
148
|
+
tags,
|
|
149
|
+
customer,
|
|
150
|
+
feature,
|
|
151
|
+
maxGrants,
|
|
101
152
|
};
|
|
102
153
|
}
|
|
154
|
+
function normalizeMaxGrants(raw) {
|
|
155
|
+
if (!raw || raw.length === 0)
|
|
156
|
+
return [];
|
|
157
|
+
const allowed = new Set(DATA_GRANTS);
|
|
158
|
+
return raw.filter((g) => allowed.has(g));
|
|
159
|
+
}
|
|
160
|
+
function resolveAttributionField(raw, fieldName) {
|
|
161
|
+
if (raw === null)
|
|
162
|
+
return null;
|
|
163
|
+
const trimmed = String(raw).trim();
|
|
164
|
+
if (trimmed.length === 0)
|
|
165
|
+
return null;
|
|
166
|
+
if (trimmed.length > 128) {
|
|
167
|
+
throw new MissingConfigError(`TensorCost ${fieldName} must be 128 characters or fewer.`);
|
|
168
|
+
}
|
|
169
|
+
return trimmed;
|
|
170
|
+
}
|
|
103
171
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse x-tc-decision response header for observation metadata.
|
|
3
|
+
*/
|
|
4
|
+
export interface ParsedDecision {
|
|
5
|
+
layer: string;
|
|
6
|
+
action: string;
|
|
7
|
+
reason?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function parseDecisionHeader(header: string | null | undefined): ParsedDecision | null;
|
|
10
|
+
export declare function decisionMetadata(header: string | null | undefined): Record<string, string> | undefined;
|
|
11
|
+
//# sourceMappingURL=decision.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision.d.ts","sourceRoot":"","sources":["../src/decision.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAChC,cAAc,GAAG,IAAI,CAiBvB;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAChC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAUpC"}
|
package/dist/decision.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse x-tc-decision response header for observation metadata.
|
|
3
|
+
*/
|
|
4
|
+
export function parseDecisionHeader(header) {
|
|
5
|
+
if (!header || header.trim() === "")
|
|
6
|
+
return null;
|
|
7
|
+
let layer;
|
|
8
|
+
let action;
|
|
9
|
+
let reason;
|
|
10
|
+
for (const segment of header.split(";")) {
|
|
11
|
+
const trimmed = segment.trim();
|
|
12
|
+
const eq = trimmed.indexOf("=");
|
|
13
|
+
if (eq <= 0)
|
|
14
|
+
continue;
|
|
15
|
+
const key = trimmed.slice(0, eq).trim();
|
|
16
|
+
const value = trimmed.slice(eq + 1).trim();
|
|
17
|
+
if (key === "layer")
|
|
18
|
+
layer = value;
|
|
19
|
+
else if (key === "action")
|
|
20
|
+
action = value;
|
|
21
|
+
else if (key === "reason")
|
|
22
|
+
reason = value;
|
|
23
|
+
}
|
|
24
|
+
if (!layer || !action)
|
|
25
|
+
return null;
|
|
26
|
+
return { layer, action, reason };
|
|
27
|
+
}
|
|
28
|
+
export function decisionMetadata(header) {
|
|
29
|
+
const parsed = parseDecisionHeader(header);
|
|
30
|
+
if (!parsed)
|
|
31
|
+
return undefined;
|
|
32
|
+
const meta = {
|
|
33
|
+
decision_action: parsed.action,
|
|
34
|
+
};
|
|
35
|
+
if (parsed.reason) {
|
|
36
|
+
meta.decision_reason = parsed.reason;
|
|
37
|
+
}
|
|
38
|
+
return meta;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=decision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision.js","sourceRoot":"","sources":["../src/decision.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,MAAM,UAAU,mBAAmB,CACjC,MAAiC;IAEjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,KAAyB,CAAC;IAC9B,IAAI,MAA0B,CAAC;IAC/B,IAAI,MAA0B,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,EAAE,IAAI,CAAC;YAAE,SAAS;QACtB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,GAAG,KAAK,OAAO;YAAE,KAAK,GAAG,KAAK,CAAC;aAC9B,IAAI,GAAG,KAAK,QAAQ;YAAE,MAAM,GAAG,KAAK,CAAC;aACrC,IAAI,GAAG,KAAK,QAAQ;YAAE,MAAM,GAAG,KAAK,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAiC;IAEjC,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC9B,MAAM,IAAI,GAA2B;QACnC,eAAe,EAAE,MAAM,CAAC,MAAM;KAC/B,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -64,4 +64,44 @@ export declare class TensorCostQuotaError extends TensorCostError {
|
|
|
64
64
|
export declare class TensorCostProviderError extends TensorCostError {
|
|
65
65
|
constructor(message: string, opts?: TensorCostErrorOptions);
|
|
66
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* The agent run this call belongs to has hit its spend cap, and the proxy
|
|
69
|
+
* refused the request (HTTP 403, `code: "RUN_BUDGET_EXCEEDED"`).
|
|
70
|
+
*
|
|
71
|
+
* This error is TERMINAL and must never trigger the direct-to-provider
|
|
72
|
+
* fallback. That distinction is the entire point: every other proxy error
|
|
73
|
+
* means "TensorCost is unhealthy, go around us", and falling back is
|
|
74
|
+
* correct. A budget refusal means "TensorCost is working exactly as
|
|
75
|
+
* configured, and the answer is no" — falling back would call the provider
|
|
76
|
+
* anyway, bill the customer, and reduce the cap to a suggestion.
|
|
77
|
+
*
|
|
78
|
+
* See `shouldFallBackToProvider()` in proxy-client.ts, which is the single
|
|
79
|
+
* predicate every provider wrapper consults before falling back.
|
|
80
|
+
*/
|
|
81
|
+
export declare class TensorCostRunBudgetExceededError extends TensorCostError {
|
|
82
|
+
readonly workflowId: string | null;
|
|
83
|
+
readonly capCents: number | null;
|
|
84
|
+
readonly spentCents: number | null;
|
|
85
|
+
constructor(message: string, workflowId: string | null, capCents: number | null, spentCents: number | null, opts?: TensorCostErrorOptions);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Tenant model governance refused this model (HTTP 403,
|
|
89
|
+
* `code: "MODEL_GOVERNANCE_DENIED"`). Terminal — must not fall back to the
|
|
90
|
+
* provider, or Enforce would become a suggestion.
|
|
91
|
+
*/
|
|
92
|
+
export declare class TensorCostModelGovernanceDeniedError extends TensorCostError {
|
|
93
|
+
readonly provider: string | null;
|
|
94
|
+
readonly model: string | null;
|
|
95
|
+
readonly governanceStatus: string | null;
|
|
96
|
+
constructor(message: string, provider: string | null, model: string | null, governanceStatus: string | null, opts?: TensorCostErrorOptions);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Guardrail hard_stop refused this call (HTTP 403,
|
|
100
|
+
* `code: "GUARDRAIL_HARD_STOP"`). Terminal — same fail-closed contract as
|
|
101
|
+
* run-budget and model governance denials.
|
|
102
|
+
*/
|
|
103
|
+
export declare class TensorCostGuardrailHardStopError extends TensorCostError {
|
|
104
|
+
readonly policyId: string | null;
|
|
105
|
+
constructor(message: string, policyId: string | null, opts?: TensorCostErrorOptions);
|
|
106
|
+
}
|
|
67
107
|
//# 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,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAAC;gBAGrC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,OAAO,GAAG,MAAM,EAC7B,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"}
|
|
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,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,CAAC;gBAGrC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,OAAO,GAAG,MAAM,EAC7B,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"}
|
package/dist/errors.js
CHANGED
|
@@ -81,4 +81,50 @@ export class TensorCostProviderError extends TensorCostError {
|
|
|
81
81
|
super(message, opts);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* The agent run this call belongs to has hit its spend cap, and the proxy
|
|
86
|
+
* refused the request (HTTP 403, `code: "RUN_BUDGET_EXCEEDED"`).
|
|
87
|
+
*
|
|
88
|
+
* This error is TERMINAL and must never trigger the direct-to-provider
|
|
89
|
+
* fallback. That distinction is the entire point: every other proxy error
|
|
90
|
+
* means "TensorCost is unhealthy, go around us", and falling back is
|
|
91
|
+
* correct. A budget refusal means "TensorCost is working exactly as
|
|
92
|
+
* configured, and the answer is no" — falling back would call the provider
|
|
93
|
+
* anyway, bill the customer, and reduce the cap to a suggestion.
|
|
94
|
+
*
|
|
95
|
+
* See `shouldFallBackToProvider()` in proxy-client.ts, which is the single
|
|
96
|
+
* predicate every provider wrapper consults before falling back.
|
|
97
|
+
*/
|
|
98
|
+
export class TensorCostRunBudgetExceededError extends TensorCostError {
|
|
99
|
+
constructor(message, workflowId, capCents, spentCents, opts = {}) {
|
|
100
|
+
super(message, opts);
|
|
101
|
+
this.workflowId = workflowId;
|
|
102
|
+
this.capCents = capCents;
|
|
103
|
+
this.spentCents = spentCents;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Tenant model governance refused this model (HTTP 403,
|
|
108
|
+
* `code: "MODEL_GOVERNANCE_DENIED"`). Terminal — must not fall back to the
|
|
109
|
+
* provider, or Enforce would become a suggestion.
|
|
110
|
+
*/
|
|
111
|
+
export class TensorCostModelGovernanceDeniedError extends TensorCostError {
|
|
112
|
+
constructor(message, provider, model, governanceStatus, opts = {}) {
|
|
113
|
+
super(message, opts);
|
|
114
|
+
this.provider = provider;
|
|
115
|
+
this.model = model;
|
|
116
|
+
this.governanceStatus = governanceStatus;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Guardrail hard_stop refused this call (HTTP 403,
|
|
121
|
+
* `code: "GUARDRAIL_HARD_STOP"`). Terminal — same fail-closed contract as
|
|
122
|
+
* run-budget and model governance denials.
|
|
123
|
+
*/
|
|
124
|
+
export class TensorCostGuardrailHardStopError extends TensorCostError {
|
|
125
|
+
constructor(message, policyId, opts = {}) {
|
|
126
|
+
super(message, opts);
|
|
127
|
+
this.policyId = policyId;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
84
130
|
//# 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":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AASH,MAAM,OAAgB,eAAgB,SAAQ,KAAK;IAOjD,YAAY,OAAe,EAAE,OAA+B,EAAE;QAC5D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,8DAA8D;QAC9D,wEAAwE;QACxE,0EAA0E;QAC1E,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;YAClC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YAC5B,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;QAEjC,8CAA8C;QAC9C,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;CACF;AAED,oEAAoE;AACpE,MAAM,OAAO,sBAAuB,SAAQ,eAAe;IACzD,YAAY,OAAe,EAAE,OAA+B,EAAE;QAC5D,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;CACF;AAED,6EAA6E;AAC7E,MAAM,OAAO,sBAAuB,SAAQ,eAAe;IAIzD,YACE,OAAe,EACf,WAA6B,EAC7B,OAA+B,EAAE;QAEjC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAED,iFAAiF;AACjF,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IACvD,YAAY,OAAe,EAAE,OAA+B,EAAE;QAC5D,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IAGvD,YACE,OAAe,EACf,YAA2B,EAC3B,OAA+B,EAAE;QAEjC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,uBAAwB,SAAQ,eAAe;IAC1D,YAAY,OAAe,EAAE,OAA+B,EAAE;QAC5D,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
export { wrap } from "./wrap.js";
|
|
2
2
|
export { MissingConfigError, TensorCostConfigError } from "./config.js";
|
|
3
3
|
export { UnsupportedClientError } from "./providers/detect.js";
|
|
4
|
-
export { TensorCostError, TensorCostNetworkError, TensorCostTimeoutError, TensorCostProxyError, TensorCostQuotaError, TensorCostProviderError, } from "./errors.js";
|
|
4
|
+
export { TensorCostError, TensorCostNetworkError, TensorCostTimeoutError, TensorCostProxyError, TensorCostQuotaError, TensorCostProviderError, TensorCostRunBudgetExceededError, TensorCostModelGovernanceDeniedError, TensorCostGuardrailHardStopError, } from "./errors.js";
|
|
5
5
|
export type { LifecycleEvent, BeforeRequestEvent, AfterResponseEvent, OnRetryEvent, OnErrorEvent, OnFallbackEvent, LifecycleEventCallback, } from "./telemetry.js";
|
|
6
6
|
export type { RetryConfig } from "./retry.js";
|
|
7
|
-
export type { WrapOptions, Observation, Provider } from "./types.js";
|
|
8
|
-
export
|
|
7
|
+
export type { WrapOptions, Observation, Provider, ObservationModality, ControlLayer, DataGrant, } from "./types.js";
|
|
8
|
+
export { wrapLangChain } from "./adapters/langchain.js";
|
|
9
|
+
export { wrapLlamaIndex } from "./adapters/llamaindex.js";
|
|
10
|
+
export { wrapCrewAI } from "./adapters/crewai.js";
|
|
11
|
+
export { wrapVercelAi } from "./adapters/vercel-ai.js";
|
|
12
|
+
export { intersectGrants } from "./layer.js";
|
|
13
|
+
export declare const version = "1.0.0";
|
|
9
14
|
//# 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,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,
|
|
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,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"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
export { wrap } from "./wrap.js";
|
|
2
2
|
export { MissingConfigError, TensorCostConfigError } from "./config.js";
|
|
3
3
|
export { UnsupportedClientError } from "./providers/detect.js";
|
|
4
|
-
export { TensorCostError, TensorCostNetworkError, TensorCostTimeoutError, TensorCostProxyError, TensorCostQuotaError, TensorCostProviderError, } from "./errors.js";
|
|
5
|
-
export
|
|
4
|
+
export { TensorCostError, TensorCostNetworkError, TensorCostTimeoutError, TensorCostProxyError, TensorCostQuotaError, TensorCostProviderError, TensorCostRunBudgetExceededError, TensorCostModelGovernanceDeniedError, TensorCostGuardrailHardStopError, } from "./errors.js";
|
|
5
|
+
export { wrapLangChain } from "./adapters/langchain.js";
|
|
6
|
+
export { wrapLlamaIndex } from "./adapters/llamaindex.js";
|
|
7
|
+
export { wrapCrewAI } from "./adapters/crewai.js";
|
|
8
|
+
export { wrapVercelAi } from "./adapters/vercel-ai.js";
|
|
9
|
+
export { intersectGrants } from "./layer.js";
|
|
10
|
+
export const version = "1.0.0";
|
|
6
11
|
//# 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,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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,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"}
|