@tensorcost/sdk 1.0.0 → 1.1.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 +28 -0
- package/README.md +230 -78
- package/dist/admit-client.js +2 -2
- package/dist/admit-client.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -1
- package/dist/config.js.map +1 -1
- package/dist/errors.d.ts +3 -3
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/layer.d.ts +6 -0
- package/dist/layer.d.ts.map +1 -1
- package/dist/layer.js +6 -0
- package/dist/layer.js.map +1 -1
- package/dist/prewarm.d.ts +12 -0
- package/dist/prewarm.d.ts.map +1 -0
- package/dist/prewarm.js +22 -0
- package/dist/prewarm.js.map +1 -0
- package/dist/providers/anthropic.d.ts +1 -0
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +63 -72
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/bedrock.d.ts.map +1 -1
- package/dist/providers/bedrock.js +12 -32
- package/dist/providers/bedrock.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 +63 -72
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/vertex.d.ts.map +1 -1
- package/dist/providers/vertex.js +9 -25
- package/dist/providers/vertex.js.map +1 -1
- package/dist/proxy-client.d.ts +12 -1
- package/dist/proxy-client.d.ts.map +1 -1
- package/dist/proxy-client.js +60 -11
- package/dist/proxy-client.js.map +1 -1
- package/dist/runtime.d.ts +23 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +60 -0
- package/dist/runtime.js.map +1 -0
- package/dist/sdk-layer.d.ts +7 -0
- package/dist/sdk-layer.d.ts.map +1 -1
- package/dist/sdk-layer.js +57 -23
- package/dist/sdk-layer.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-overhead.d.ts +32 -0
- package/dist/wrap-overhead.d.ts.map +1 -0
- package/dist/wrap-overhead.js +60 -0
- package/dist/wrap-overhead.js.map +1 -0
- package/dist/wrap.d.ts.map +1 -1
- package/dist/wrap.js +4 -12
- package/dist/wrap.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,34 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 1.1.0 — 2026-09-19
|
|
6
|
+
|
|
7
|
+
Agent hot-path hardening: fail-open faster on wedged proxy connections, optional
|
|
8
|
+
cold-start warmup, and non-blocking sdk-layer refresh.
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
**`prewarm()`** — prefetch JWT + console published layer at Lambda/container
|
|
13
|
+
init. Shares the same process-wide runtime cache as `wrap()`.
|
|
14
|
+
|
|
15
|
+
**`headersTimeoutMs`** (default 2s) — separate deadline for proxy response
|
|
16
|
+
headers vs body read (`timeoutMs`, default 60s). Missing headers within the
|
|
17
|
+
budget fail-open to the direct provider without retry.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
**Sdk-layer fetch** — 250ms cap on cold `GET /sdk-layer`; stale-while-revalidate
|
|
22
|
+
after the 30s TTL so refresh never blocks a model call.
|
|
23
|
+
|
|
24
|
+
**Admit** — HTTP timeout tightened to 500ms (still fail-open on errors).
|
|
25
|
+
|
|
26
|
+
**`wrap()`** — background-warms the shared runtime on first use.
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
|
|
30
|
+
Body JSON parse no longer leaves an unhandled rejection when the body-read
|
|
31
|
+
deadline fires before `response.json()` settles.
|
|
32
|
+
|
|
5
33
|
## 1.0.0 — 2026-09-13
|
|
6
34
|
|
|
7
35
|
Major release: control-layer ceilings replace the `appliedMode` boolean.
|
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# @tensorcost/sdk
|
|
2
2
|
|
|
3
|
-
One-line wrapper
|
|
3
|
+
One-line wrapper for TensorCost — fire-and-forget LLM observability and optional inference control for OpenAI, Anthropic, AWS Bedrock, and Google Vertex AI clients in Node.js.
|
|
4
|
+
|
|
5
|
+
**Current version:** 1.1.0 — adds `prewarm()`, separate proxy headers timeout, and non-blocking sdk-layer refresh. See [CHANGELOG](./CHANGELOG.md) and [Migrating from 0.x](#migrating-from-0x).
|
|
4
6
|
|
|
5
7
|
## Install
|
|
6
8
|
|
|
@@ -10,18 +12,20 @@ npm install @tensorcost/sdk
|
|
|
10
12
|
pnpm add @tensorcost/sdk
|
|
11
13
|
```
|
|
12
14
|
|
|
13
|
-
Requires Node.js 18+ (
|
|
15
|
+
Requires Node.js 18+ (native `fetch`).
|
|
16
|
+
|
|
17
|
+
## Quick start (observe)
|
|
14
18
|
|
|
15
|
-
|
|
19
|
+
The default layer is **`observe`**: telemetry only, provider call unchanged.
|
|
16
20
|
|
|
17
21
|
```ts
|
|
18
22
|
import OpenAI from "openai";
|
|
19
23
|
import { wrap } from "@tensorcost/sdk";
|
|
20
24
|
|
|
21
|
-
const client = wrap(new OpenAI({ apiKey: process.env.OPENAI_API_KEY })
|
|
25
|
+
const client = wrap(new OpenAI({ apiKey: process.env.OPENAI_API_KEY }), {
|
|
26
|
+
apiKey: process.env.TENSORCOST_API_KEY,
|
|
27
|
+
});
|
|
22
28
|
|
|
23
|
-
// Use the client exactly as before — TensorCost observes every call
|
|
24
|
-
// and ships fire-and-forget observations to the platform.
|
|
25
29
|
const resp = await client.chat.completions.create({
|
|
26
30
|
model: "gpt-4o-mini",
|
|
27
31
|
messages: [{ role: "user", content: "hi" }],
|
|
@@ -34,7 +38,9 @@ Anthropic works the same way:
|
|
|
34
38
|
import Anthropic from "@anthropic-ai/sdk";
|
|
35
39
|
import { wrap } from "@tensorcost/sdk";
|
|
36
40
|
|
|
37
|
-
const client = wrap(new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY })
|
|
41
|
+
const client = wrap(new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY }), {
|
|
42
|
+
apiKey: process.env.TENSORCOST_API_KEY,
|
|
43
|
+
});
|
|
38
44
|
|
|
39
45
|
await client.messages.create({
|
|
40
46
|
model: "claude-3-5-sonnet-20241022",
|
|
@@ -43,61 +49,142 @@ await client.messages.create({
|
|
|
43
49
|
});
|
|
44
50
|
```
|
|
45
51
|
|
|
46
|
-
|
|
52
|
+
Create a long-lived SDK key in the TensorCost console (**Setup → Keys**). The SDK exchanges it for a short-lived JWT via `POST /api/inference-proxy/sdk-token/exchange` and refreshes ~60s before expiry.
|
|
53
|
+
|
|
54
|
+
## Control layers (`maxLayer`)
|
|
47
55
|
|
|
48
|
-
|
|
56
|
+
v1.0 uses a single ladder for how much TensorCost may intervene on a call:
|
|
49
57
|
|
|
50
|
-
|
|
51
|
-
|---|---|---|
|
|
52
|
-
| `TENSORCOST_API_KEY` | Long-lived API key from the TensorCost console | Yes |
|
|
53
|
-
| `TENSORCOST_BASE_URL` | Backend base URL | No (default `https://api.tensorcost.com`) |
|
|
54
|
-
| `TENSORCOST_TENANT_ID` | Optional explicit tenant id | No |
|
|
55
|
-
| `TENSORCOST_PROXY_URL` | Inference-proxy base URL | Required when `maxLayer` is `steer` or `route` |
|
|
56
|
-
| `TENSORCOST_ENVIRONMENT` | Environment tag stamped on every observation | No |
|
|
57
|
-
| `TENSORCOST_CONNECTION_ID` | Provider-connection identifier | No |
|
|
58
|
-
| `TENSORCOST_AGENT_ID` / `TENSORCOST_WORKFLOW_ID` | Agent-run attribution defaults | No |
|
|
59
|
-
| `TENSORCOST_CUSTOMER` / `TENSORCOST_FEATURE` | Chargeback tag defaults | No |
|
|
58
|
+
`off → observe → govern → steer → route`
|
|
60
59
|
|
|
61
|
-
|
|
60
|
+
A layer is a **ceiling**, not a mode switch. The effective layer is always:
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
min(your maxLayer, console published layer)
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
When routing is paused in the console, the published ceiling is capped at `govern`.
|
|
67
|
+
|
|
68
|
+
| Layer | Provider path | Behavior |
|
|
69
|
+
|---|---|---|
|
|
70
|
+
| `off` | Direct | No SDK wiring; client returned unchanged |
|
|
71
|
+
| `observe` | Direct | Telemetry only (**default** when `maxLayer` is omitted) |
|
|
72
|
+
| `govern` | Direct | Metadata-only `POST /v1/admit` before the provider call; may refuse unsafe calls |
|
|
73
|
+
| `steer` | Via proxy | Proxy on the path; may steer without full live routing |
|
|
74
|
+
| `route` | Via proxy | Full applied-mode routing through inference-proxy |
|
|
62
75
|
|
|
63
76
|
```ts
|
|
64
|
-
const client = wrap(new OpenAI(
|
|
65
|
-
apiKey:
|
|
66
|
-
|
|
77
|
+
const client = wrap(new OpenAI({ apiKey: process.env.OPENAI_API_KEY }), {
|
|
78
|
+
apiKey: process.env.TENSORCOST_API_KEY,
|
|
79
|
+
maxLayer: "route",
|
|
80
|
+
proxyUrl: process.env.TENSORCOST_PROXY_URL, // required for steer | route
|
|
67
81
|
});
|
|
68
82
|
```
|
|
69
83
|
|
|
70
|
-
|
|
84
|
+
`wrap()` throws `TensorCostConfigError` when `maxLayer` is `steer` or `route` and no `proxyUrl` / `TENSORCOST_PROXY_URL` is set. **`govern` does not require `proxyUrl`** — admit uses `baseUrl`.
|
|
71
85
|
|
|
72
|
-
|
|
86
|
+
### Console-published ceiling
|
|
73
87
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
88
|
+
Operators set the tenant ceiling in the console (**Policy → Routing**) or via `PATCH /api/ai/router/layer` (`published_layer`, default `observe`). The SDK fetches the effective value from `GET /api/inference-proxy/v1/sdk-layer`:
|
|
89
|
+
|
|
90
|
+
- **30s cache** while the endpoint is reachable
|
|
91
|
+
- **250ms cap** on a cold fetch — a hung TensorCost cannot block the model call
|
|
92
|
+
- **Stale-while-revalidate** after TTL: serve the last snapshot immediately and refresh in the background
|
|
93
|
+
- **Decays to `govern`** after 5 minutes unreachable (fail-safe: still run admit, never silently upgrade to route)
|
|
94
|
+
|
|
95
|
+
Publishing `steer` or `route` in the console requires a **content-retention data grant** (`retain_completions`, etc.). Steer/route without a grant returns **409**.
|
|
96
|
+
|
|
97
|
+
### Govern admission
|
|
98
|
+
|
|
99
|
+
At `govern` and above, the SDK calls `POST /api/inference-proxy/v1/admit` with metadata only — **no prompt or completion bodies**:
|
|
100
|
+
|
|
101
|
+
- **204** + `x-tc-decision: layer=govern; action=allow` → proceed to the provider
|
|
102
|
+
- **403** + `x-tc-decision: layer=govern; action=refuse; reason=…` → call blocked (budget, model governance, etc.)
|
|
103
|
+
|
|
104
|
+
Admit is **fail-open** on transport errors: the provider call proceeds and an `admit_unavailable` observation is emitted when transport recovers. The admit HTTP call is capped at **500ms**.
|
|
105
|
+
|
|
106
|
+
### Route layer prerequisites
|
|
107
|
+
|
|
108
|
+
`maxLayer: "route"` is necessary but not sufficient for live provider swaps. ADR-0016 gates still apply on the proxy side: LaunchDarkly flag, `AI_ROUTING_LIVE_EXECUTION_PERMITTED`, non-`dry_run` policy with rollout, and routing not paused. When gated off, traffic pass-throughs to the original provider and the decision is recorded.
|
|
109
|
+
|
|
110
|
+
See [ADR-0026](https://github.com/vaadhlabs/tensorcost/blob/main/docs/adr/0026-sdk-control-layer-ceilings.md) and [inference-proxy applied mode](https://github.com/vaadhlabs/tensorcost/blob/main/docs/features/inference-proxy-applied-mode.md).
|
|
111
|
+
|
|
112
|
+
## Cold start (`prewarm`)
|
|
113
|
+
|
|
114
|
+
At Lambda/container init, the first steer/route call can otherwise pay for JWT exchange and sdk-layer fetch on the hot path. Call `prewarm()` once at module scope — it shares the same process-wide runtime that `wrap()` uses, so a later `wrap()` hits a warm cache.
|
|
115
|
+
|
|
116
|
+
`wrap()` also background-warms that shared runtime on first use; explicit `prewarm()` is recommended when you know traffic is about to arrive (e.g. before the handler is invoked).
|
|
81
117
|
|
|
82
118
|
```ts
|
|
83
|
-
|
|
84
|
-
|
|
119
|
+
import { prewarm, wrap } from "@tensorcost/sdk";
|
|
120
|
+
|
|
121
|
+
await prewarm({
|
|
122
|
+
apiKey: process.env.TENSORCOST_API_KEY,
|
|
123
|
+
baseUrl: process.env.TENSORCOST_BASE_URL,
|
|
85
124
|
maxLayer: "route",
|
|
86
|
-
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
export const client = wrap(new OpenAI({ apiKey: process.env.OPENAI_API_KEY }), {
|
|
128
|
+
apiKey: process.env.TENSORCOST_API_KEY,
|
|
129
|
+
maxLayer: "route",
|
|
130
|
+
proxyUrl: process.env.TENSORCOST_PROXY_URL,
|
|
87
131
|
});
|
|
88
132
|
```
|
|
89
133
|
|
|
90
|
-
`
|
|
134
|
+
`prewarm()` is best-effort: failures are swallowed and the first real call retries the fetches.
|
|
91
135
|
|
|
92
|
-
|
|
136
|
+
## Migrating from 0.x
|
|
93
137
|
|
|
94
|
-
|
|
138
|
+
| 0.x | 1.0 |
|
|
139
|
+
|---|---|
|
|
140
|
+
| `appliedMode: true` | `maxLayer: "route"` (deprecated alias still works with a console warning) |
|
|
141
|
+
| Default `x-tc-max-layer: route` on proxy calls | Default is now `observe` |
|
|
142
|
+
| Boolean on/off | Full layer ladder + console ceiling |
|
|
95
143
|
|
|
96
|
-
|
|
144
|
+
```ts
|
|
145
|
+
// Before (0.6.x)
|
|
146
|
+
wrap(client, { appliedMode: true, proxyUrl: "..." });
|
|
147
|
+
|
|
148
|
+
// After (1.0)
|
|
149
|
+
wrap(client, { maxLayer: "route", proxyUrl: "..." });
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Recommended rollout: **`observe` → `govern` → `route`**, raising the console `published_layer` only after each stage is validated.
|
|
153
|
+
|
|
154
|
+
## Configuration
|
|
155
|
+
|
|
156
|
+
`wrap()` resolves options in order: explicit kwargs → environment variables → defaults.
|
|
157
|
+
|
|
158
|
+
| Variable | Purpose | Required |
|
|
159
|
+
|---|---|---|
|
|
160
|
+
| `TENSORCOST_API_KEY` | Long-lived SDK key from **Setup → Keys** | Yes |
|
|
161
|
+
| `TENSORCOST_BASE_URL` | Backend base URL (admit, sdk-layer, token exchange) | No (default `https://api.tensorcost.com`) |
|
|
162
|
+
| `TENSORCOST_PROXY_URL` | Inference-proxy base URL | Required when `maxLayer` is `steer` or `route` |
|
|
163
|
+
| `TENSORCOST_TENANT_ID` | Explicit tenant id (multi-tenant tests) | No |
|
|
164
|
+
| `TENSORCOST_ENVIRONMENT` | Environment tag on every observation | No |
|
|
165
|
+
| `TENSORCOST_CONNECTION_ID` | Provider-connection id for environment resolution | No |
|
|
166
|
+
| `TENSORCOST_AGENT_ID` / `TENSORCOST_WORKFLOW_ID` | Agent-run attribution defaults | No |
|
|
167
|
+
| `TENSORCOST_CUSTOMER` / `TENSORCOST_FEATURE` | Chargeback tag defaults | No |
|
|
168
|
+
| `TENSORCOST_DEPLOYMENT` | Git SHA / release label (`metadata.deployment`) | No |
|
|
169
|
+
| `TENSORCOST_PROMPT_TEMPLATE_ID` | Default prompt-template id | No |
|
|
170
|
+
| `TC_APPLICATION` / `TENSORCOST_APPLICATION` | Routing-policy application scope (proxy) | No |
|
|
171
|
+
| `TC_TAGS` / `TENSORCOST_TAGS` | Comma-separated routing tags (proxy) | No |
|
|
172
|
+
|
|
173
|
+
```ts
|
|
174
|
+
const client = wrap(new OpenAI(...), {
|
|
175
|
+
apiKey: "tc_live_xxx",
|
|
176
|
+
baseUrl: "https://api.tensorcost.com",
|
|
177
|
+
maxLayer: "govern",
|
|
178
|
+
deployment: process.env.GIT_SHA,
|
|
179
|
+
promptTemplateId: "support-chat-v2",
|
|
180
|
+
application: "customer-support",
|
|
181
|
+
tags: ["tier:enterprise"],
|
|
182
|
+
});
|
|
183
|
+
```
|
|
97
184
|
|
|
98
185
|
## Proxy hardening
|
|
99
186
|
|
|
100
|
-
|
|
187
|
+
Applies when `maxLayer` is `govern`, `steer`, or `route` (admit + proxy paths).
|
|
101
188
|
|
|
102
189
|
### Retries
|
|
103
190
|
|
|
@@ -111,21 +198,31 @@ const client = wrap(new OpenAI(...), {
|
|
|
111
198
|
});
|
|
112
199
|
```
|
|
113
200
|
|
|
114
|
-
5xx
|
|
201
|
+
5xx, network errors, and 429 are retried with jittered exponential backoff. `Retry-After` on 429 is honoured. 4xx (except 429) are never retried.
|
|
115
202
|
|
|
116
203
|
### Timeouts
|
|
117
204
|
|
|
205
|
+
Proxy timeouts are split so a wedged TCP connection fails open quickly while slow model bodies still get a full budget:
|
|
206
|
+
|
|
118
207
|
```ts
|
|
119
208
|
const client = wrap(new OpenAI(...), {
|
|
120
209
|
maxLayer: "route",
|
|
121
210
|
proxyUrl: "...",
|
|
122
|
-
|
|
211
|
+
headersTimeoutMs: 2_000, // wait for response headers (default 2_000)
|
|
212
|
+
timeoutMs: 60_000, // non-streaming body read (default 60_000)
|
|
213
|
+
idleTimeoutMs: 30_000, // streaming idle (default 30_000)
|
|
123
214
|
});
|
|
124
215
|
```
|
|
125
216
|
|
|
126
|
-
|
|
217
|
+
| Option | Default | `TensorCostTimeoutError.kind` | On timeout (steer/route) |
|
|
218
|
+
|---|---|---|---|
|
|
219
|
+
| `headersTimeoutMs` | 2s | `"headers"` | Fail-open to direct provider (no retry) |
|
|
220
|
+
| `timeoutMs` | 60s | `"total"` | Fail-open when `failOpenEnabled: true` |
|
|
221
|
+
| `idleTimeoutMs` | 30s | `"idle"` | Fail-open when `failOpenEnabled: true` |
|
|
222
|
+
|
|
223
|
+
The headers deadline targets wedged proxy connections, not slow upstream models — body read uses `timeoutMs` independently once headers arrive.
|
|
127
224
|
|
|
128
|
-
### Lifecycle
|
|
225
|
+
### Lifecycle hooks
|
|
129
226
|
|
|
130
227
|
```ts
|
|
131
228
|
import { wrap, LifecycleEvent } from "@tensorcost/sdk";
|
|
@@ -140,11 +237,15 @@ const client = wrap(new OpenAI(...), {
|
|
|
140
237
|
});
|
|
141
238
|
```
|
|
142
239
|
|
|
143
|
-
|
|
240
|
+
Payloads contain request metadata only — never prompt content, response bodies, or credentials.
|
|
144
241
|
|
|
145
|
-
###
|
|
242
|
+
### Circuit breaker
|
|
146
243
|
|
|
147
|
-
|
|
244
|
+
After consecutive proxy 5xx failures (default 3), the circuit opens and requests route directly to the provider (fail-open). After consecutive successful probe calls (default 5), the circuit closes.
|
|
245
|
+
|
|
246
|
+
Set `failOpenEnabled: false` when direct provider access is unavailable (e.g. in-VPC sidecar-only). Proxy failures then surface as `TensorCostProxyError` instead of falling back.
|
|
247
|
+
|
|
248
|
+
### Typed errors
|
|
148
249
|
|
|
149
250
|
```ts
|
|
150
251
|
import {
|
|
@@ -154,20 +255,53 @@ import {
|
|
|
154
255
|
TensorCostProxyError,
|
|
155
256
|
TensorCostQuotaError,
|
|
156
257
|
TensorCostProviderError,
|
|
258
|
+
TensorCostRunBudgetExceededError,
|
|
259
|
+
TensorCostModelGovernanceDeniedError,
|
|
260
|
+
TensorCostGuardrailHardStopError,
|
|
157
261
|
} from "@tensorcost/sdk";
|
|
158
262
|
```
|
|
159
263
|
|
|
160
|
-
|
|
264
|
+
Govern refusals and proxy decisions are also reflected in the `x-tc-decision` header and attached to observations as `decision_action` / `decision_reason` metadata when present.
|
|
265
|
+
|
|
266
|
+
## Data grants (`maxGrants`)
|
|
267
|
+
|
|
268
|
+
Code can cap which console data grants apply:
|
|
269
|
+
|
|
270
|
+
```ts
|
|
271
|
+
import { wrap, intersectGrants } from "@tensorcost/sdk";
|
|
272
|
+
|
|
273
|
+
const client = wrap(new OpenAI(...), {
|
|
274
|
+
apiKey: "...",
|
|
275
|
+
maxGrants: ["telemetry", "retain_completions"],
|
|
276
|
+
});
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
Effective grants = `intersect(maxGrants, console.data_grants)`. Omit `maxGrants` to allow all console grants. An empty array allows none. Grant vocabulary: `telemetry`, `retain_completions`, `retain_prompts`, `retain_tools`.
|
|
161
280
|
|
|
162
|
-
|
|
281
|
+
## Trace metadata & attribution
|
|
163
282
|
|
|
164
|
-
|
|
283
|
+
### Deployment & prompt templates
|
|
165
284
|
|
|
166
|
-
|
|
285
|
+
Group traces in the dashboard by deploy or template:
|
|
167
286
|
|
|
168
287
|
```ts
|
|
169
288
|
const client = wrap(new OpenAI(...), {
|
|
170
|
-
apiKey: "
|
|
289
|
+
apiKey: "...",
|
|
290
|
+
deployment: process.env.GIT_SHA ?? "local",
|
|
291
|
+
promptTemplateId: "onboarding-email-v2",
|
|
292
|
+
});
|
|
293
|
+
|
|
294
|
+
// Per-call override (OpenAI + Anthropic)
|
|
295
|
+
await client.withMeta({ promptTemplateId: "research-agent-v5" }).chat.completions.create({ ... });
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Agent runs
|
|
299
|
+
|
|
300
|
+
Tag spend for **Router · Agent runs**:
|
|
301
|
+
|
|
302
|
+
```ts
|
|
303
|
+
const client = wrap(new OpenAI(...), {
|
|
304
|
+
apiKey: "...",
|
|
171
305
|
agentId: "support-bot",
|
|
172
306
|
});
|
|
173
307
|
|
|
@@ -175,57 +309,75 @@ const scoped = client.withMeta({ workflowId: crypto.randomUUID() });
|
|
|
175
309
|
await scoped.chat.completions.create({ model: "gpt-4o-mini", messages: [...] });
|
|
176
310
|
```
|
|
177
311
|
|
|
178
|
-
`customer` / `feature` are separate chargeback
|
|
312
|
+
`customer` / `feature` are separate chargeback dimensions — not substitutes for `agentId` / `workflowId`. Bedrock and Vertex accept wrap-time defaults only (no `withMeta()`).
|
|
179
313
|
|
|
180
314
|
## Fail-open guarantee
|
|
181
315
|
|
|
182
|
-
If TensorCost is slow, down, or misconfigured, your customer call still succeeds.
|
|
316
|
+
If TensorCost is slow, down, or misconfigured, your customer call still succeeds. Internal errors are swallowed and logged via `console.warn` (or your lifecycle hook). On steer/route, missing proxy headers within **2s** also fail-open to the direct provider so agents are not blocked behind a wedged sidecar. Exceptions:
|
|
317
|
+
|
|
318
|
+
- Missing `TENSORCOST_API_KEY` → `MissingConfigError` at `wrap()` time
|
|
319
|
+
- Missing `proxyUrl` when `maxLayer` is `steer` or `route` → `TensorCostConfigError` at `wrap()` time
|
|
320
|
+
- Govern **refusals** (403 from `/admit`) → call blocked by design
|
|
321
|
+
|
|
322
|
+
Set `failOpen: false` only in tests to surface observation-pipeline errors.
|
|
183
323
|
|
|
184
324
|
## What is captured
|
|
185
325
|
|
|
186
|
-
|
|
326
|
+
Metadata only — never prompt or completion content:
|
|
187
327
|
|
|
188
|
-
-
|
|
328
|
+
- SDK version, provider, model, operation, modality
|
|
189
329
|
- Request / response timestamps and token counts
|
|
190
330
|
- Status (`success` / `error`) and error class/message on failure
|
|
191
331
|
- Correlation UUID, environment, agent/workflow ids, chargeback tags
|
|
332
|
+
- `decision_action` / `decision_reason` when `x-tc-decision` is present
|
|
192
333
|
|
|
193
|
-
|
|
334
|
+
Proxied requests include `x-tc-sdk-version`, `x-tc-sdk-capabilities`, and `x-tc-max-layer`.
|
|
194
335
|
|
|
195
|
-
|
|
196
|
-
import { BedrockRuntimeClient, InvokeModelCommand } from "@aws-sdk/client-bedrock-runtime";
|
|
197
|
-
import { wrap } from "@tensorcost/sdk";
|
|
336
|
+
## Supported providers & operations
|
|
198
337
|
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
)
|
|
202
|
-
|
|
338
|
+
| Provider | Package | Layers | Operations |
|
|
339
|
+
|---|---|---|---|
|
|
340
|
+
| OpenAI | `openai` ≥ 4.x | observe → route | chat, completions, embeddings, responses (+ streaming) |
|
|
341
|
+
| Anthropic | `@anthropic-ai/sdk` | observe → route | messages (+ streaming) |
|
|
342
|
+
| Azure OpenAI | `openai` (`AzureOpenAI`) | observe → route | same as OpenAI (`provider: "openai"`) |
|
|
343
|
+
| AWS Bedrock | `@aws-sdk/client-bedrock-runtime` | observe, govern only | InvokeModel, Converse (+ streaming placeholders) |
|
|
344
|
+
| Google Vertex | `@google/genai` (`vertexai: true`) | observe, govern only | generateContent (+ streaming) |
|
|
203
345
|
|
|
204
|
-
|
|
346
|
+
**Bedrock and Vertex:** SigV4 / Vertex signing happens inside the AWS / Google SDK before the proxy can intercept — **`steer` and `route` are not supported**. Use `maxLayer: "govern"` or lower.
|
|
205
347
|
|
|
206
|
-
|
|
348
|
+
Bedrock peer dependency is optional:
|
|
207
349
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
350
|
+
```ts
|
|
351
|
+
import { BedrockRuntimeClient, InvokeModelCommand } from "@aws-sdk/client-bedrock-runtime";
|
|
352
|
+
import { wrap } from "@tensorcost/sdk";
|
|
211
353
|
|
|
212
|
-
|
|
354
|
+
const client = wrap(new BedrockRuntimeClient({ region: "us-east-1" }), {
|
|
355
|
+
apiKey: process.env.TENSORCOST_API_KEY,
|
|
356
|
+
});
|
|
357
|
+
```
|
|
213
358
|
|
|
214
359
|
## Framework adapters
|
|
215
360
|
|
|
216
|
-
|
|
361
|
+
Thin passthroughs that call `wrap()` on the underlying LLM client:
|
|
217
362
|
|
|
218
363
|
```ts
|
|
219
|
-
import {
|
|
364
|
+
import { ChatOpenAI } from "@langchain/openai";
|
|
365
|
+
import { wrapLangChain } from "@tensorcost/sdk";
|
|
366
|
+
|
|
367
|
+
const llm = wrapLangChain(new ChatOpenAI({ model: "gpt-4o-mini" }), {
|
|
368
|
+
apiKey: process.env.TENSORCOST_API_KEY,
|
|
369
|
+
maxLayer: "observe",
|
|
370
|
+
});
|
|
220
371
|
```
|
|
221
372
|
|
|
222
|
-
|
|
373
|
+
Also exported: `wrapLlamaIndex`, `wrapCrewAI`, `wrapVercelAi`.
|
|
374
|
+
|
|
375
|
+
## Further reading
|
|
223
376
|
|
|
224
|
-
-
|
|
225
|
-
-
|
|
226
|
-
-
|
|
227
|
-
-
|
|
228
|
-
- Azure OpenAI — wrap the standard `AzureOpenAI` client (observations report `provider: "openai"`)
|
|
377
|
+
- [ADR-0026 — SDK control-layer ceilings](https://github.com/vaadhlabs/tensorcost/blob/main/docs/adr/0026-sdk-control-layer-ceilings.md)
|
|
378
|
+
- [Inference proxy SDK feature doc](https://github.com/vaadhlabs/tensorcost/blob/main/docs/features/inference-proxy-sdk.md)
|
|
379
|
+
- [Applied mode / live routing](https://github.com/vaadhlabs/tensorcost/blob/main/docs/features/inference-proxy-applied-mode.md)
|
|
380
|
+
- [CHANGELOG](./CHANGELOG.md)
|
|
229
381
|
|
|
230
382
|
## License
|
|
231
383
|
|
package/dist/admit-client.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Fail-open on transport failure: the customer's call proceeds to the
|
|
5
5
|
* provider and an error observation is emitted when transport is available.
|
|
6
6
|
*/
|
|
7
|
-
import { ADMIT_PATH } from "./layer.js";
|
|
7
|
+
import { ADMIT_PATH, ADMIT_TIMEOUT_MS } from "./layer.js";
|
|
8
8
|
import { SDK_VERSION, sdkCapabilityHeader } from "./version.js";
|
|
9
9
|
export async function admitRequest(opts) {
|
|
10
10
|
const fetchImpl = opts.fetchImpl ?? globalThis.fetch.bind(globalThis);
|
|
@@ -33,7 +33,7 @@ export async function admitRequest(opts) {
|
|
|
33
33
|
: {}),
|
|
34
34
|
};
|
|
35
35
|
const controller = new AbortController();
|
|
36
|
-
const timer = setTimeout(() => controller.abort(), opts.timeoutMs ??
|
|
36
|
+
const timer = setTimeout(() => controller.abort(), opts.timeoutMs ?? ADMIT_TIMEOUT_MS);
|
|
37
37
|
try {
|
|
38
38
|
const resp = await fetchImpl(url, {
|
|
39
39
|
method: "POST",
|
package/dist/admit-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admit-client.js","sourceRoot":"","sources":["../src/admit-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"admit-client.js","sourceRoot":"","sources":["../src/admit-client.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAU9D,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,CAmKvE"}
|
package/dist/config.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* and env, TensorCostConfigError is thrown.
|
|
17
17
|
*/
|
|
18
18
|
import { DEFAULT_RETRY_CONFIG } from "./retry.js";
|
|
19
|
-
import { DATA_GRANTS, needsProxyUrl, resolveMaxLayer, } from "./layer.js";
|
|
19
|
+
import { DATA_GRANTS, needsProxyUrl, PROXY_HEADERS_TIMEOUT_MS, 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) {
|
|
@@ -83,6 +83,7 @@ export function resolveConfig(options = {}) {
|
|
|
83
83
|
...options.retry,
|
|
84
84
|
};
|
|
85
85
|
const timeoutMs = options.timeoutMs ?? 60_000;
|
|
86
|
+
const headersTimeoutMs = options.headersTimeoutMs ?? PROXY_HEADERS_TIMEOUT_MS;
|
|
86
87
|
const idleTimeoutMs = options.idleTimeoutMs ?? 30_000;
|
|
87
88
|
const onLifecycleEvent = options.onLifecycleEvent;
|
|
88
89
|
const failOpenEnabled = options.failOpenEnabled ?? true;
|
|
@@ -136,6 +137,7 @@ export function resolveConfig(options = {}) {
|
|
|
136
137
|
proxyUrl,
|
|
137
138
|
retry,
|
|
138
139
|
timeoutMs,
|
|
140
|
+
headersTimeoutMs,
|
|
139
141
|
idleTimeoutMs,
|
|
140
142
|
onLifecycleEvent,
|
|
141
143
|
failOpenEnabled,
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -40,9 +40,9 @@ export declare class TensorCostNetworkError extends TensorCostError {
|
|
|
40
40
|
}
|
|
41
41
|
/** A request or idle-window timeout fired before the operation completed. */
|
|
42
42
|
export declare class TensorCostTimeoutError extends TensorCostError {
|
|
43
|
-
/** "total" — wall-clock
|
|
44
|
-
readonly timeoutKind: "total" | "idle";
|
|
45
|
-
constructor(message: string, timeoutKind: "total" | "idle", opts?: TensorCostErrorOptions);
|
|
43
|
+
/** "headers" — no response headers; "total" — wall-clock; "idle" — streaming idle. */
|
|
44
|
+
readonly timeoutKind: "total" | "idle" | "headers";
|
|
45
|
+
constructor(message: string, timeoutKind: "total" | "idle" | "headers", opts?: TensorCostErrorOptions);
|
|
46
46
|
}
|
|
47
47
|
/** The proxy returned a 5xx response (TensorCost's own infrastructure error). */
|
|
48
48
|
export declare class TensorCostProxyError extends TensorCostError {
|
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,
|
|
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"}
|
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,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { wrap } from "./wrap.js";
|
|
2
|
+
export { prewarm } from "./prewarm.js";
|
|
2
3
|
export { MissingConfigError, TensorCostConfigError } from "./config.js";
|
|
3
4
|
export { UnsupportedClientError } from "./providers/detect.js";
|
|
4
5
|
export { TensorCostError, TensorCostNetworkError, TensorCostTimeoutError, TensorCostProxyError, TensorCostQuotaError, TensorCostProviderError, TensorCostRunBudgetExceededError, TensorCostModelGovernanceDeniedError, TensorCostGuardrailHardStopError, } from "./errors.js";
|
|
@@ -10,5 +11,5 @@ export { wrapLlamaIndex } from "./adapters/llamaindex.js";
|
|
|
10
11
|
export { wrapCrewAI } from "./adapters/crewai.js";
|
|
11
12
|
export { wrapVercelAi } from "./adapters/vercel-ai.js";
|
|
12
13
|
export { intersectGrants } from "./layer.js";
|
|
13
|
-
export declare const version = "1.
|
|
14
|
+
export declare const version = "1.1.0";
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|