@argosvix/sdk 0.4.22-alpha.0 → 0.5.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/README.md +4 -9
- package/dist/aiSdkMiddleware.d.ts +36 -20
- package/dist/aiSdkMiddleware.d.ts.map +1 -1
- package/dist/aiSdkMiddleware.js +98 -31
- package/dist/aiSdkMiddleware.js.map +1 -1
- package/dist/approvals.d.ts +37 -29
- package/dist/approvals.d.ts.map +1 -1
- package/dist/approvals.js +24 -18
- package/dist/approvals.js.map +1 -1
- package/dist/budgetGate.d.ts +30 -24
- package/dist/budgetGate.d.ts.map +1 -1
- package/dist/budgetGate.js +118 -92
- package/dist/budgetGate.js.map +1 -1
- package/dist/client.d.ts +15 -10
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +271 -222
- package/dist/client.js.map +1 -1
- package/dist/context.d.ts +59 -48
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +72 -58
- package/dist/context.js.map +1 -1
- package/dist/flush.d.ts +6 -4
- package/dist/flush.d.ts.map +1 -1
- package/dist/flush.js +6 -4
- package/dist/flush.js.map +1 -1
- package/dist/ids.d.ts +3 -2
- package/dist/ids.d.ts.map +1 -1
- package/dist/ids.js +6 -5
- package/dist/ids.js.map +1 -1
- package/dist/langchainCallback.d.ts +14 -13
- package/dist/langchainCallback.d.ts.map +1 -1
- package/dist/langchainCallback.js +22 -17
- package/dist/langchainCallback.js.map +1 -1
- package/dist/policyScan.d.ts +29 -22
- package/dist/policyScan.d.ts.map +1 -1
- package/dist/policyScan.js +47 -38
- package/dist/policyScan.js.map +1 -1
- package/dist/pricing.d.ts +5 -5
- package/dist/pricing.d.ts.map +1 -1
- package/dist/pricing.js +24 -22
- package/dist/pricing.js.map +1 -1
- package/dist/prompts.d.ts +20 -17
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +21 -17
- package/dist/prompts.js.map +1 -1
- package/dist/query.d.ts +21 -21
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +14 -14
- package/dist/recorder.d.ts +39 -19
- package/dist/recorder.d.ts.map +1 -1
- package/dist/recorder.js +120 -69
- package/dist/recorder.js.map +1 -1
- package/dist/redaction.d.ts +35 -33
- package/dist/redaction.d.ts.map +1 -1
- package/dist/redaction.js +73 -64
- package/dist/redaction.js.map +1 -1
- package/dist/types.d.ts +131 -114
- package/dist/types.d.ts.map +1 -1
- package/dist/version.d.ts +9 -9
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +9 -9
- package/dist/version.js.map +1 -1
- package/package.json +8 -2
package/dist/budgetGate.js
CHANGED
|
@@ -1,50 +1,58 @@
|
|
|
1
1
|
import { scanPolicyViolation } from "./policyScan.js";
|
|
2
2
|
/**
|
|
3
|
-
* Runtime
|
|
3
|
+
* Runtime budget gate — the SDK-side enforcement half of the runtime control plane.
|
|
4
4
|
*
|
|
5
|
-
* `config.budgetGate: true
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* When opted in via `config.budgetGate: true`, each LLM call made through a
|
|
6
|
+
* wrapped client is evaluated locally against the backend `/v1/gate/budget`
|
|
7
|
+
* configuration plus the current month's spend; if the monthly limit is
|
|
8
|
+
* exceeded, an `ArgosvixBudgetExceededError` is thrown and the call is blocked.
|
|
8
9
|
*
|
|
9
|
-
*
|
|
10
|
-
* -
|
|
11
|
-
*
|
|
12
|
-
* - stale-while-revalidate: snapshot
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* -
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
10
|
+
* Design:
|
|
11
|
+
* - Configuration and spend are cached with a TTL (the backend response's
|
|
12
|
+
* ttlSeconds, default 60s). There is no round trip per call.
|
|
13
|
+
* - stale-while-revalidate: while a snapshot exists, evaluation happens
|
|
14
|
+
* immediately even when stale, and the refresh runs in the background so
|
|
15
|
+
* the fetch RTT never sits on the hot path. A synchronous await happens in
|
|
16
|
+
* only two situations: the very first call before any snapshot exists, and
|
|
17
|
+
* a stale snapshot with a fail_closed gate.
|
|
18
|
+
* - Failure backoff: after a failed fetch, no retry happens for
|
|
19
|
+
* FAILURE_RETRY_MS. This prevents a 3-second blocking fetch on every call
|
|
20
|
+
* while the backend is down.
|
|
21
|
+
* - Spend accrued between TTL refreshes is compensated by local accumulation
|
|
22
|
+
* via the recorder. On a successful fetch, only the amount accumulated as
|
|
23
|
+
* of fetch start is subtracted, so spend recorded while the fetch was in
|
|
24
|
+
* flight is not silently dropped.
|
|
25
|
+
* - Time is measured on a monotonic clock (performance.now). This prevents
|
|
26
|
+
* the cache from staying fresh forever when the wall clock steps backwards
|
|
27
|
+
* (NTP step / VM resume).
|
|
28
|
+
* - fail_open (default): when the backend is unreachable or configuration has
|
|
29
|
+
* not been fetched, calls pass through.
|
|
30
|
+
* - fail_closed: when the backend gate is configured fail_closed and the
|
|
31
|
+
* cache is stale beyond MAX_STALE_MULTIPLIER x TTL, throw
|
|
32
|
+
* ArgosvixBudgetGateUnavailableError. Behavior before the first successful
|
|
33
|
+
* fetch is chosen via `config.budgetGateFailClosed` (default false).
|
|
34
|
+
* - Calls blocked by the gate are still ingested as error records through the
|
|
35
|
+
* wrapper, so "how many calls were blocked" is visible in the dashboard and
|
|
36
|
+
* chat.
|
|
30
37
|
*
|
|
31
|
-
*
|
|
32
|
-
* - SDK
|
|
33
|
-
* `generate_content_stream`
|
|
34
|
-
*
|
|
38
|
+
* Known limitation:
|
|
39
|
+
* - Methods the SDK does not wrap (e.g. Anthropic `messages.stream()`,
|
|
40
|
+
* Python's `generate_content_stream`) are neither observed nor enforced.
|
|
41
|
+
* See the budgetGate doc comment in types.ts for details.
|
|
35
42
|
*/
|
|
36
43
|
const DEFAULT_GATE_ENDPOINT = "https://ingest.argosvix.com/v1/gate/config";
|
|
37
44
|
const INGEST_SUFFIX = "/v1/ingest";
|
|
38
45
|
const FETCH_TIMEOUT_MS = 3_000;
|
|
39
46
|
const DEFAULT_TTL_MS = 60_000;
|
|
40
|
-
// fetch
|
|
47
|
+
// Minimum retry interval after a failed fetch (protects the hot path during outages)
|
|
41
48
|
const FAILURE_RETRY_MS = 30_000;
|
|
42
|
-
// cache
|
|
49
|
+
// If the cache has not been refreshed within this multiple of the TTL, treat the gate state as unknown
|
|
43
50
|
const MAX_STALE_MULTIPLIER = 5;
|
|
44
51
|
/**
|
|
45
|
-
*
|
|
46
|
-
* "models/gemini-pro"
|
|
47
|
-
*
|
|
52
|
+
* Canonical form of a model name. Strips the "models/" provider prefix that
|
|
53
|
+
* Gemini-family SDKs keep (e.g. "models/gemini-pro") so allowlist comparison
|
|
54
|
+
* behaves identically in the TypeScript and Python SDKs. Exported for tests
|
|
55
|
+
* and for cross-verification against the Python implementation.
|
|
48
56
|
*/
|
|
49
57
|
export function canonicalizeModelName(model) {
|
|
50
58
|
return model.startsWith("models/") ? model.slice("models/".length) : model;
|
|
@@ -75,7 +83,7 @@ export class ArgosvixPolicyViolationError extends Error {
|
|
|
75
83
|
this.detail = detail;
|
|
76
84
|
}
|
|
77
85
|
}
|
|
78
|
-
/** tag gate
|
|
86
|
+
/** Local-spend key for a tag gate (tagKey and tagValue joined via JSON encoding). */
|
|
79
87
|
function tagSpendKey(tagKey, tagValue) {
|
|
80
88
|
return JSON.stringify([tagKey, tagValue]);
|
|
81
89
|
}
|
|
@@ -87,26 +95,27 @@ export class RuntimeGate {
|
|
|
87
95
|
lastAttemptFailed = false;
|
|
88
96
|
warnedEndpoint = false;
|
|
89
97
|
warnedNoPolicy = false;
|
|
90
|
-
/**
|
|
98
|
+
/** Spend recorded by this process since the last successful fetch (local compensation). */
|
|
91
99
|
localSpendUsd = 0;
|
|
92
|
-
/**
|
|
100
|
+
/** Per-tag local spend compensation (key = JSON([tagKey,tagValue])). */
|
|
93
101
|
tagLocalSpend = new Map();
|
|
94
102
|
constructor(config) {
|
|
95
103
|
this.config = config;
|
|
96
104
|
}
|
|
97
|
-
/**
|
|
105
|
+
/** Monotonic clock; unaffected by wall-clock regressions (NTP step / VM resume). */
|
|
98
106
|
now() {
|
|
99
107
|
return typeof performance !== "undefined" ? performance.now() : Date.now();
|
|
100
108
|
}
|
|
101
109
|
/**
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
110
|
+
* Whether the gate can actually enforce anything (used by the fully
|
|
111
|
+
* compatible wrap to decide its identity fast path). When false, check()
|
|
112
|
+
* returns immediately, so the pre-call await can be skipped and the original
|
|
113
|
+
* APIPromise returned as-is.
|
|
105
114
|
*/
|
|
106
115
|
get isActive() {
|
|
107
116
|
return this.active;
|
|
108
117
|
}
|
|
109
|
-
/**
|
|
118
|
+
/** Active only when opted in and configured for sending; otherwise a complete no-op. */
|
|
110
119
|
get active() {
|
|
111
120
|
return ((this.config.budgetGate === true || this.config.policyGate === true) &&
|
|
112
121
|
this.config.disabled !== true &&
|
|
@@ -114,9 +123,10 @@ export class RuntimeGate {
|
|
|
114
123
|
this.config.apiKey.length > 0);
|
|
115
124
|
}
|
|
116
125
|
/**
|
|
117
|
-
* recorder.record()
|
|
118
|
-
*
|
|
119
|
-
*
|
|
126
|
+
* Called from recorder.record(). Local spend compensation within the TTL
|
|
127
|
+
* window. Tag gates are matched against config.tags: every call made by
|
|
128
|
+
* this client carries config.tags, so all calls accrue to the matching tag
|
|
129
|
+
* gates, just like the project gate.
|
|
120
130
|
*/
|
|
121
131
|
noteSpend(costUsd) {
|
|
122
132
|
if (this.config.budgetGate !== true || !this.active)
|
|
@@ -135,15 +145,16 @@ export class RuntimeGate {
|
|
|
135
145
|
}
|
|
136
146
|
}
|
|
137
147
|
/**
|
|
138
|
-
* LLM
|
|
139
|
-
*
|
|
148
|
+
* Enforcement right before the LLM call. Throws when the limit is exceeded,
|
|
149
|
+
* passes through otherwise. Backend outages fail open or fail closed
|
|
150
|
+
* according to the enforce mode.
|
|
140
151
|
*/
|
|
141
152
|
async check(ctx = {}) {
|
|
142
153
|
if (!this.active)
|
|
143
154
|
return;
|
|
144
155
|
const snap = this.snapshot;
|
|
145
156
|
if (!snap) {
|
|
146
|
-
//
|
|
157
|
+
// First call (or nothing fetched yet). Inside the backoff window, skip the fetch and evaluate as-is.
|
|
147
158
|
if (this.attemptAllowed())
|
|
148
159
|
await this.refresh();
|
|
149
160
|
}
|
|
@@ -159,11 +170,11 @@ export class RuntimeGate {
|
|
|
159
170
|
(this.config.policyGate === true &&
|
|
160
171
|
snap.policy?.enforceMode === "fail_closed");
|
|
161
172
|
if (anyFailClosed) {
|
|
162
|
-
// fail_closed
|
|
173
|
+
// fail_closed may block on stale data, so refresh synchronously and prioritize accuracy
|
|
163
174
|
await p;
|
|
164
175
|
}
|
|
165
176
|
else {
|
|
166
|
-
// fail_open
|
|
177
|
+
// fail_open uses stale-while-revalidate (keeps the fetch RTT off the hot path)
|
|
167
178
|
p.catch(() => { });
|
|
168
179
|
}
|
|
169
180
|
}
|
|
@@ -173,10 +184,11 @@ export class RuntimeGate {
|
|
|
173
184
|
evaluate(ctx) {
|
|
174
185
|
const snap = this.snapshot;
|
|
175
186
|
if (!snap) {
|
|
176
|
-
//
|
|
177
|
-
//
|
|
178
|
-
//
|
|
179
|
-
//
|
|
187
|
+
// Nothing has ever been fetched, so the server-side enforce mode is
|
|
188
|
+
// unknown. Fail closed only via the local opt-ins
|
|
189
|
+
// (budgetGateFailClosed / policyGateFailClosed): even if the backend is
|
|
190
|
+
// configured fail_closed, the SDK cannot know that on a cold start, so
|
|
191
|
+
// strict operation requires an explicit opt-in.
|
|
180
192
|
if ((this.config.budgetGateFailClosed === true ||
|
|
181
193
|
this.config.policyGateFailClosed === true) &&
|
|
182
194
|
this.lastAttemptFailed) {
|
|
@@ -196,8 +208,9 @@ export class RuntimeGate {
|
|
|
196
208
|
throw new ArgosvixBudgetExceededError(spent, gate.limitUsd);
|
|
197
209
|
}
|
|
198
210
|
}
|
|
199
|
-
//
|
|
200
|
-
//
|
|
211
|
+
// The project gate is also evaluated with AND semantics (the strictest
|
|
212
|
+
// limit wins). Every call from this client belongs to config.projectId,
|
|
213
|
+
// so localSpendUsd counts toward the project spend as well.
|
|
201
214
|
if (this.config.budgetGate === true && snap.projectGate) {
|
|
202
215
|
const pg = snap.projectGate;
|
|
203
216
|
if (isUnknownStale && pg.enforceMode === "fail_closed") {
|
|
@@ -208,10 +221,12 @@ export class RuntimeGate {
|
|
|
208
221
|
throw new ArgosvixBudgetExceededError(projectSpent, pg.limitUsd);
|
|
209
222
|
}
|
|
210
223
|
}
|
|
211
|
-
//
|
|
212
|
-
//
|
|
213
|
-
//
|
|
214
|
-
//
|
|
224
|
+
// Tag gates matching this client's config.tags are evaluated with AND
|
|
225
|
+
// semantics. Matching is fixed to config.tags, the same basis noteSpend
|
|
226
|
+
// uses: mixing in ctx.tags would create an asymmetric loophole where spend
|
|
227
|
+
// accrues under config.tags but a call slips through because ctx.tags does
|
|
228
|
+
// not match. Like the project gate, tag gates are evaluated against the
|
|
229
|
+
// client's fixed tags by design.
|
|
215
230
|
const tags = this.config.tags;
|
|
216
231
|
if (this.config.budgetGate === true && snap.tagGates.length > 0 && tags) {
|
|
217
232
|
for (const tg of snap.tagGates) {
|
|
@@ -235,7 +250,7 @@ export class RuntimeGate {
|
|
|
235
250
|
this.evaluatePolicy(policy, ctx);
|
|
236
251
|
}
|
|
237
252
|
}
|
|
238
|
-
/**
|
|
253
|
+
/** Local evaluation of the policy gate (model allowlist / PII / secrets). */
|
|
239
254
|
evaluatePolicy(policy, ctx) {
|
|
240
255
|
const model = ctx.model ??
|
|
241
256
|
(ctx.payload && typeof ctx.payload === "object"
|
|
@@ -244,18 +259,22 @@ export class RuntimeGate {
|
|
|
244
259
|
if (policy.allow) {
|
|
245
260
|
if (typeof model === "string" && model.length > 0) {
|
|
246
261
|
if (!policy.allow.has(canonicalizeModelName(model))) {
|
|
247
|
-
// model
|
|
248
|
-
//
|
|
249
|
-
//
|
|
262
|
+
// The model name can be an arbitrary string coming from the payload,
|
|
263
|
+
// so it is sanitized before appearing in the error message: allowed
|
|
264
|
+
// charset only, capped at 128 characters. This is a structural
|
|
265
|
+
// defense against plaintext such as prompts leaking into error
|
|
266
|
+
// records.
|
|
250
267
|
const safeModel = model.replace(/[^A-Za-z0-9._:/-]/g, "?").slice(0, 128);
|
|
251
268
|
throw new ArgosvixPolicyViolationError("model_not_allowed", `model "${safeModel}" is not in the configured allowlist`);
|
|
252
269
|
}
|
|
253
270
|
}
|
|
254
271
|
else if (policy.enforceMode === "fail_closed") {
|
|
255
|
-
//
|
|
256
|
-
//
|
|
257
|
-
//
|
|
258
|
-
//
|
|
272
|
+
// An allowlist is configured but the model cannot be resolved (neither
|
|
273
|
+
// ctx.model nor payload.model is available on this path). fail_open
|
|
274
|
+
// passes the call through as before (the default forbids false
|
|
275
|
+
// positives), but fail_closed blocks under the strict semantics "stop
|
|
276
|
+
// any call that cannot be checked against the allowlist" — closing an
|
|
277
|
+
// earlier no-block gap via opt-in.
|
|
259
278
|
throw new ArgosvixPolicyViolationError("model_not_allowed", "request model could not be resolved to check against the allowlist (fail_closed)");
|
|
260
279
|
}
|
|
261
280
|
}
|
|
@@ -273,7 +292,7 @@ export class RuntimeGate {
|
|
|
273
292
|
const age = this.now() - snap.fetchedAtMs;
|
|
274
293
|
return age < 0 || age >= snap.ttlMs;
|
|
275
294
|
}
|
|
276
|
-
/**
|
|
295
|
+
/** If the last fetch failed, do not retry until FAILURE_RETRY_MS has elapsed. */
|
|
277
296
|
attemptAllowed() {
|
|
278
297
|
if (this.lastAttemptMs === null || !this.lastAttemptFailed)
|
|
279
298
|
return true;
|
|
@@ -289,9 +308,11 @@ export class RuntimeGate {
|
|
|
289
308
|
return this.inflight;
|
|
290
309
|
}
|
|
291
310
|
/**
|
|
292
|
-
* gate endpoint
|
|
293
|
-
*
|
|
294
|
-
*
|
|
311
|
+
* Resolves the gate endpoint. When the ingest endpoint is overridden, the
|
|
312
|
+
* gate endpoint is derived from the same prefix; if it cannot be derived
|
|
313
|
+
* (a custom URL not ending in /v1/ingest), the gate is disabled instead.
|
|
314
|
+
* This avoids sending a Bearer key meant for another environment to
|
|
315
|
+
* production.
|
|
295
316
|
*/
|
|
296
317
|
gateEndpoint() {
|
|
297
318
|
if (this.config.gateEndpoint)
|
|
@@ -316,10 +337,11 @@ export class RuntimeGate {
|
|
|
316
337
|
this.lastAttemptFailed = true;
|
|
317
338
|
return;
|
|
318
339
|
}
|
|
319
|
-
//
|
|
320
|
-
//
|
|
340
|
+
// To avoid dropping spend noted via noteSpend while the fetch is in
|
|
341
|
+
// flight, capture the compensation amount at fetch start and subtract only
|
|
342
|
+
// that delta on success.
|
|
321
343
|
const localAtStart = this.localSpendUsd;
|
|
322
|
-
//
|
|
344
|
+
// Copy the per-tag local spend at fetch start for the same rebase, mirroring the account-level approach.
|
|
323
345
|
const tagLocalAtStart = new Map(this.tagLocalSpend);
|
|
324
346
|
try {
|
|
325
347
|
const controller = new AbortController();
|
|
@@ -336,15 +358,16 @@ export class RuntimeGate {
|
|
|
336
358
|
clearTimeout(timer);
|
|
337
359
|
}
|
|
338
360
|
if (!res.ok) {
|
|
339
|
-
// body
|
|
361
|
+
// Consume the body so connection reuse is not blocked
|
|
340
362
|
await res.arrayBuffer().catch(() => { });
|
|
341
363
|
this.lastAttemptFailed = true;
|
|
342
|
-
return; //
|
|
364
|
+
return; // keep the old snapshot; evaluate() decides based on the enforce mode
|
|
343
365
|
}
|
|
344
366
|
const raw = (await res.json());
|
|
345
|
-
// /v1/gate/config
|
|
346
|
-
//
|
|
347
|
-
//
|
|
367
|
+
// Accept the /v1/gate/config shape { budget: {...}, policy: {...},
|
|
368
|
+
// ttlSeconds } first, and also the older /v1/gate/budget shape
|
|
369
|
+
// { gates, spentUsdThisMonth, ttlSeconds } (a configuration where
|
|
370
|
+
// gateEndpoint is overridden to point at the budget endpoint).
|
|
348
371
|
const isObj = (v) => !!v && typeof v === "object" && !Array.isArray(v);
|
|
349
372
|
const root = isObj(raw) ? raw : {};
|
|
350
373
|
const budgetPart = isObj(root["budget"]) ? root["budget"] : root;
|
|
@@ -352,8 +375,9 @@ export class RuntimeGate {
|
|
|
352
375
|
if (this.config.policyGate === true &&
|
|
353
376
|
!("policy" in root) &&
|
|
354
377
|
!this.warnedNoPolicy) {
|
|
355
|
-
//
|
|
356
|
-
//
|
|
378
|
+
// With gateEndpoint pointed at the older /v1/gate/budget shape the
|
|
379
|
+
// policy section is never received and the policy gate would be a
|
|
380
|
+
// silent no-op, so warn about it once.
|
|
357
381
|
this.warnedNoPolicy = true;
|
|
358
382
|
// eslint-disable-next-line no-console
|
|
359
383
|
console.warn("[argosvix] policy gate: gate endpoint response has no policy section; point gateEndpoint at /v1/gate/config to enable policy enforcement.");
|
|
@@ -366,7 +390,7 @@ export class RuntimeGate {
|
|
|
366
390
|
g["enabled"] === true &&
|
|
367
391
|
typeof g["monthlyLimitUsd"] === "number" &&
|
|
368
392
|
Number.isFinite(g["monthlyLimitUsd"])) ?? null;
|
|
369
|
-
//
|
|
393
|
+
// Resolve the gate tied to this client's project (only when config.projectId is set).
|
|
370
394
|
const projectId = typeof this.config.projectId === "string" && this.config.projectId.length > 0
|
|
371
395
|
? this.config.projectId
|
|
372
396
|
: null;
|
|
@@ -381,7 +405,7 @@ export class RuntimeGate {
|
|
|
381
405
|
? budgetPart["spentUsdByProject"]
|
|
382
406
|
: {};
|
|
383
407
|
const projectSpentRaw = projectId ? byProject[projectId] : undefined;
|
|
384
|
-
//
|
|
408
|
+
// Resolve per-tag gates and join them with spentUsdByTag.
|
|
385
409
|
const byTag = Array.isArray(budgetPart["spentUsdByTag"])
|
|
386
410
|
? budgetPart["spentUsdByTag"]
|
|
387
411
|
: [];
|
|
@@ -407,10 +431,11 @@ export class RuntimeGate {
|
|
|
407
431
|
let policy = null;
|
|
408
432
|
if (policyPart && policyPart["enabled"] === true) {
|
|
409
433
|
const allowRaw = policyPart["modelAllowlist"];
|
|
410
|
-
//
|
|
411
|
-
// (
|
|
412
|
-
// "models/gemini-pro"
|
|
413
|
-
//
|
|
434
|
+
// Compare both the allowlist entries and the candidate in canonical
|
|
435
|
+
// form (leading "models/" stripped). Some legacy Gemini SDKs keep the
|
|
436
|
+
// model name as "models/gemini-pro" (the Python SDK's model_name)
|
|
437
|
+
// while the TypeScript side sees the raw input value, which previously
|
|
438
|
+
// caused a drift where only one side was blocked.
|
|
414
439
|
const allow = Array.isArray(allowRaw)
|
|
415
440
|
? new Set(allowRaw
|
|
416
441
|
.filter((m) => typeof m === "string")
|
|
@@ -456,19 +481,20 @@ export class RuntimeGate {
|
|
|
456
481
|
policy,
|
|
457
482
|
};
|
|
458
483
|
this.localSpendUsd = Math.max(0, this.localSpendUsd - localAtStart);
|
|
459
|
-
//
|
|
484
|
+
// Also subtract the fetch-start amounts from the per-tag locals to avoid double counting (same approach as the account level).
|
|
460
485
|
for (const [k, v] of this.tagLocalSpend) {
|
|
461
486
|
this.tagLocalSpend.set(k, Math.max(0, v - (tagLocalAtStart.get(k) ?? 0)));
|
|
462
487
|
}
|
|
463
488
|
this.lastAttemptFailed = false;
|
|
464
489
|
}
|
|
465
490
|
catch {
|
|
466
|
-
//
|
|
467
|
-
// fail_closed
|
|
491
|
+
// Network error / timeout / malformed JSON: keep the old snapshot.
|
|
492
|
+
// fail_open passes calls through; fail_closed is stopped by the
|
|
493
|
+
// staleness check in evaluate().
|
|
468
494
|
this.lastAttemptFailed = true;
|
|
469
495
|
}
|
|
470
496
|
}
|
|
471
497
|
}
|
|
472
|
-
//
|
|
498
|
+
// Backward-compatible alias for the originally published name (from when the gate was budget-only).
|
|
473
499
|
export { RuntimeGate as BudgetGate };
|
|
474
500
|
//# sourceMappingURL=budgetGate.js.map
|
package/dist/budgetGate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"budgetGate.js","sourceRoot":"","sources":["../src/budgetGate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"budgetGate.js","sourceRoot":"","sources":["../src/budgetGate.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -22,21 +22,26 @@ import { Recorder } from "./recorder.js";
|
|
|
22
22
|
export declare function wrap<T extends object>(client: T, config?: ArgosvixConfig): T;
|
|
23
23
|
export declare function getRecorder(client: object): Recorder | null;
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
25
|
+
* Internal: registration hook for integrations that do not go through wrap()
|
|
26
|
+
* (e.g. the Vercel AI SDK middleware) to put their own Recorder into the WeakMap
|
|
27
|
+
* used by flushClient() / getRecorder(). This lets `flushClient(middleware)`
|
|
28
|
+
* work through the same path as wrapped clients.
|
|
28
29
|
*/
|
|
29
30
|
export declare function _registerRecorderFor(obj: object, recorder: Recorder): void;
|
|
30
|
-
/** Test-only: reset the
|
|
31
|
+
/** Test-only: reset the stream-helper warn-once flag. Do not call from production. */
|
|
31
32
|
export declare function __resetStreamHelperWarning(): void;
|
|
32
33
|
/**
|
|
33
34
|
* Time-ordered record ID generator.
|
|
34
35
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
36
|
+
* Fix: the previous implementation used a `Date.now()` prefix + a
|
|
37
|
+
* `Math.random().toString(36).slice(2,10)` suffix, which had two weaknesses:
|
|
38
|
+
* (1) non-cryptographic randomness, and (2) depending on the value the suffix
|
|
39
|
+
* could be shorter than 8 characters, dropping the effective entropy well
|
|
40
|
+
* below 41 bits. The backend silently skips collisions via
|
|
41
|
+
* `INSERT ... ON CONFLICT(account_id, id) DO NOTHING`, so a real call that
|
|
42
|
+
* collides would vanish from billing, quota, and observation. Cryptographic
|
|
43
|
+
* randomness (crypto.getRandomValues / randomUUID) raises collision resistance
|
|
44
|
+
* to the 128-bit class. The leading time prefix is kept so ordering stays
|
|
45
|
+
* chronological.
|
|
41
46
|
*/
|
|
42
47
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAOzC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAE,cAAmB,GAAG,CAAC,CAyChF;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAE3D;AAED
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,YAAY,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAOzC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAE,cAAmB,GAAG,CAAC,CAyChF;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAE1E;AAgqBD,sFAAsF;AACtF,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAk1DD;;;;;;;;;;;;;GAaG"}
|