@argosvix/sdk 0.4.21-alpha.0 → 0.4.23-alpha.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 +25 -21
- 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.js +9 -9
- package/package.json +8 -2
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Transparent observability wrapper for AI provider SDKs. Wrap a single line of code and get cost, latency, token, and error records for every LLM call across OpenAI, Anthropic, Gemini, and Mistral.
|
|
4
4
|
|
|
5
|
-
> 🟢 **Alpha released** — backend ingest (`ingest.argosvix.com`) and dashboard (`dashboard.argosvix.com`) are live. Published on npm as `@argosvix/sdk@alpha`. The entire sign-up to API-key flow runs in the browser; a Free plan and paid plans (Pro / Team) are available.
|
|
5
|
+
> 🟢 **Alpha released** — backend ingest (`ingest.argosvix.com`) and dashboard (`dashboard.argosvix.com`) are live. Published on npm as `@argosvix/sdk@alpha`. The entire sign-up to API-key flow runs in the browser; a Free plan and paid plans (Pro / Team) are available.
|
|
6
6
|
>
|
|
7
7
|
> Design principles:
|
|
8
8
|
> - **No end-user PII is sent.** By default, prompt and completion bodies are never recorded; only token counts, cost, latency, and error codes leave your process. Content capture is a separate opt-in (`captureContent`, see below) and always applies PII masking before send.
|
|
@@ -38,7 +38,7 @@ Alternatively, run `npx @argosvix/cli init` — it opens the browser for a one-t
|
|
|
38
38
|
```bash
|
|
39
39
|
export ARGOSVIX_API_KEY=argk_...
|
|
40
40
|
# Default ingest endpoint = https://ingest.argosvix.com
|
|
41
|
-
# Override with ARGOSVIX_API_BASE if you
|
|
41
|
+
# Override with ARGOSVIX_API_BASE if you route requests through a proxy.
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
## Quick start
|
|
@@ -132,7 +132,7 @@ There are three gates. The first two are enforced inside `wrap(...)` by evaluati
|
|
|
132
132
|
cached backend config locally (no proxy, no per-call round trip). The third is an
|
|
133
133
|
explicit request/await pair around a sensitive operation.
|
|
134
134
|
|
|
135
|
-
|
|
135
|
+
Full usage details live in the docs: <https://argosvix.com/en/docs/sdk-reference>.
|
|
136
136
|
|
|
137
137
|
### Budget gate
|
|
138
138
|
|
|
@@ -396,12 +396,7 @@ for await (const chunk of stream) {
|
|
|
396
396
|
|
|
397
397
|
## Examples
|
|
398
398
|
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
- [`examples/nextjs-openai/`](../../examples/nextjs-openai/) — Next.js 14 App Router.
|
|
402
|
-
- [`examples/express-anthropic/`](../../examples/express-anthropic/) — Express with streaming and SIGTERM flush.
|
|
403
|
-
- [`examples/lambda-gemini/`](../../examples/lambda-gemini/) — AWS Lambda with `@google/genai` (note: container-reuse semantics).
|
|
404
|
-
- [`examples/workers-anthropic/`](../../examples/workers-anthropic/) — Cloudflare Workers with the `flushClient` pattern.
|
|
399
|
+
Integration guides for common stacks (Next.js App Router, Express with streaming and SIGTERM flush, AWS Lambda with `@google/genai`, Cloudflare Workers with the `flushClient` pattern) are available in the docs: <https://argosvix.com/en/docs/guides>.
|
|
405
400
|
|
|
406
401
|
## Alert webhooks
|
|
407
402
|
|
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
import type { ArgosvixConfig } from "./types.js";
|
|
2
2
|
import { Recorder } from "./recorder.js";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Vercel AI SDK (`ai` package) integration.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* `streamText` / `generateObject`
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* Returns a LanguageModel middleware (compatible with ai@5-7) that can be
|
|
7
|
+
* passed to the AI SDK's `wrapLanguageModel({ model, middleware })`. All calls
|
|
8
|
+
* made through the AI SDK — `generateText` / `streamText` / `generateObject`
|
|
9
|
+
* and so on — become observable without wrap()ing the provider SDK directly.
|
|
10
|
+
* In other words: yes, calls originating inside the AI SDK are recorded too,
|
|
11
|
+
* for the four supported providers.
|
|
11
12
|
*
|
|
12
|
-
* AI SDK
|
|
13
|
-
*
|
|
14
|
-
* usage
|
|
15
|
-
*
|
|
16
|
-
*
|
|
13
|
+
* There is no hard dependency on the AI SDK (types are defined structurally;
|
|
14
|
+
* `ai` is never imported). The middleware shape (wrapGenerate / wrapStream) is
|
|
15
|
+
* the same across ai@5-7. Differences in usage shape (v7: inputTokens /
|
|
16
|
+
* outputTokens as object breakdowns; v5-6: numbers plus cachedInputTokens /
|
|
17
|
+
* inputTokenDetails etc.; the even older v4 line: promptTokens /
|
|
18
|
+
* completionTokens) are normalized by extractTokens().
|
|
17
19
|
*
|
|
18
|
-
*
|
|
19
|
-
* (
|
|
20
|
-
*
|
|
20
|
+
* Design principle: observation code must never break the host's LLM call.
|
|
21
|
+
* Recording is best-effort (exceptions while recording are swallowed and only
|
|
22
|
+
* logged). Success recording happens outside the doGenerate try block, so a
|
|
23
|
+
* recording exception can never turn a successful call into an error.
|
|
21
24
|
*
|
|
22
25
|
* @example
|
|
23
26
|
* import { openai } from "@ai-sdk/openai";
|
|
@@ -36,10 +39,21 @@ interface AiSdkModelLike {
|
|
|
36
39
|
modelId?: string;
|
|
37
40
|
provider?: string;
|
|
38
41
|
}
|
|
42
|
+
/** The object breakdown carried by usage.inputTokens / usage.outputTokens in ai@7. */
|
|
43
|
+
interface AiSdkTokenBreakdown {
|
|
44
|
+
total?: number;
|
|
45
|
+
noCache?: number;
|
|
46
|
+
cacheRead?: number;
|
|
47
|
+
cacheWrite?: number;
|
|
48
|
+
text?: number;
|
|
49
|
+
reasoning?: number;
|
|
50
|
+
}
|
|
39
51
|
interface AiSdkUsage {
|
|
40
|
-
inputTokens?: number;
|
|
41
|
-
outputTokens?: number;
|
|
52
|
+
inputTokens?: number | AiSdkTokenBreakdown;
|
|
53
|
+
outputTokens?: number | AiSdkTokenBreakdown;
|
|
42
54
|
totalTokens?: number;
|
|
55
|
+
promptTokens?: number;
|
|
56
|
+
completionTokens?: number;
|
|
43
57
|
cachedInputTokens?: number;
|
|
44
58
|
reasoningTokens?: number;
|
|
45
59
|
inputTokenDetails?: {
|
|
@@ -49,6 +63,7 @@ interface AiSdkUsage {
|
|
|
49
63
|
outputTokenDetails?: {
|
|
50
64
|
reasoningTokens?: number;
|
|
51
65
|
};
|
|
66
|
+
raw?: unknown;
|
|
52
67
|
}
|
|
53
68
|
interface AiSdkGenerateResult {
|
|
54
69
|
usage?: AiSdkUsage;
|
|
@@ -79,15 +94,16 @@ interface WrapStreamOptions {
|
|
|
79
94
|
model?: AiSdkModelLike;
|
|
80
95
|
}
|
|
81
96
|
/**
|
|
82
|
-
* argosvixMiddleware()
|
|
83
|
-
*
|
|
97
|
+
* Return value of argosvixMiddleware(). Usable as an AI SDK middleware, and
|
|
98
|
+
* additionally exposes flush() / recorder directly for short-lived runtimes.
|
|
99
|
+
* flushClient(middleware) works as well.
|
|
84
100
|
*/
|
|
85
101
|
export interface ArgosvixAiSdkMiddleware {
|
|
86
102
|
wrapGenerate: (opts: WrapGenerateOptions) => Promise<AiSdkGenerateResult>;
|
|
87
103
|
wrapStream: (opts: WrapStreamOptions) => Promise<AiSdkStreamResult>;
|
|
88
|
-
/**
|
|
104
|
+
/** Flushes the buffer to the backend and waits for the send to complete (for finally blocks on Workers / Lambda / Edge). */
|
|
89
105
|
flush: () => Promise<void>;
|
|
90
|
-
/**
|
|
106
|
+
/** The Recorder this middleware uses (equivalent to getRecorder). */
|
|
91
107
|
readonly recorder: Recorder;
|
|
92
108
|
}
|
|
93
109
|
export declare function argosvixMiddleware(config?: ArgosvixConfig): ArgosvixAiSdkMiddleware;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiSdkMiddleware.d.ts","sourceRoot":"","sources":["../src/aiSdkMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,YAAY,CAAC;AAK1E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC
|
|
1
|
+
{"version":3,"file":"aiSdkMiddleware.d.ts","sourceRoot":"","sources":["../src/aiSdkMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,YAAY,CAAC;AAK1E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,sFAAsF;AACtF,UAAU,mBAAmB;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,UAAU;IAElB,WAAW,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,iBAAiB,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,kBAAkB,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAElD,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,UAAU,mBAAmB;IAC3B,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,UAAU,iBAAiB;IACzB,MAAM,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IACxC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,UAAU,mBAAmB;IAC3B,UAAU,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC/C,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,UAAU,iBAAiB;IACzB,QAAQ,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1E,UAAU,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpE,4HAA4H;IAC5H,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AA4KD,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,cAAmB,GAAG,uBAAuB,CAmQvF"}
|
package/dist/aiSdkMiddleware.js
CHANGED
|
@@ -4,13 +4,15 @@ import { generateId } from "./ids.js";
|
|
|
4
4
|
import { calculateCostWithCache } from "./pricing.js";
|
|
5
5
|
import { Recorder } from "./recorder.js";
|
|
6
6
|
/**
|
|
7
|
-
* AI SDK
|
|
8
|
-
* "google.generative-ai" / "mistral.chat")
|
|
7
|
+
* Maps the AI SDK's provider string (e.g. "openai.chat" /
|
|
8
|
+
* "anthropic.messages" / "google.generative-ai" / "mistral.chat") onto
|
|
9
|
+
* Argosvix's four providers.
|
|
9
10
|
*
|
|
10
|
-
*
|
|
11
|
-
* "
|
|
12
|
-
*
|
|
13
|
-
* provider
|
|
11
|
+
* Matching is an exact comparison on the namespace (the part before the first
|
|
12
|
+
* "."). Substring matching is deliberately avoided because it would wrongly
|
|
13
|
+
* map "openai-compatible" / "not-openai" to openai. No match returns null:
|
|
14
|
+
* the backend validates provider against a strict enum, so instead of
|
|
15
|
+
* fabricating an unsupported provider, recording is skipped.
|
|
14
16
|
*/
|
|
15
17
|
function mapProvider(raw) {
|
|
16
18
|
if (!raw)
|
|
@@ -39,7 +41,7 @@ function warnUnsupportedProvider(raw) {
|
|
|
39
41
|
console.warn(`[argosvix] AI SDK provider "${label}" is not one of openai/anthropic/gemini/mistral; ` +
|
|
40
42
|
`the call runs normally but is not recorded. Pass config.provider to override.`);
|
|
41
43
|
}
|
|
42
|
-
/**
|
|
44
|
+
/** Recording is best-effort. Exceptions thrown here never break the host's call. */
|
|
43
45
|
function safeRun(fn) {
|
|
44
46
|
try {
|
|
45
47
|
fn();
|
|
@@ -49,27 +51,91 @@ function safeRun(fn) {
|
|
|
49
51
|
console.error("[argosvix] AI SDK middleware recording failed (non-fatal):", err);
|
|
50
52
|
}
|
|
51
53
|
}
|
|
54
|
+
/** Only finite numbers pass (NaN / Infinity / objects / strings become 0). A guard against polluting records. */
|
|
55
|
+
function toCount(v) {
|
|
56
|
+
return typeof v === "number" && Number.isFinite(v) ? v : 0;
|
|
57
|
+
}
|
|
52
58
|
/**
|
|
53
|
-
* AI SDK
|
|
54
|
-
*
|
|
55
|
-
*
|
|
59
|
+
* Normalizes AI SDK usage out of all three shapes seen across ai@5-7.
|
|
60
|
+
*
|
|
61
|
+
* - ai@7: inputTokens/outputTokens are objects
|
|
62
|
+
* ({ total, noCache, cacheRead(, cacheWrite) } / { total, text, reasoning }).
|
|
63
|
+
* total is the cache-read-inclusive sum, so it is used directly as
|
|
64
|
+
* promptTokens; cacheRead maps to cachedReadTokens and reasoning to
|
|
65
|
+
* reasoningTokens
|
|
66
|
+
* - ai@5-6: inputTokens/outputTokens are numbers (cache-read-inclusive input
|
|
67
|
+
* total). Breakdowns come from the top-level cachedInputTokens /
|
|
68
|
+
* reasoningTokens or from inputTokenDetails / outputTokenDetails
|
|
69
|
+
* - older v4 line: numbers under the promptTokens/completionTokens naming
|
|
70
|
+
*
|
|
71
|
+
* Unknown shapes fall back defensively to 0 (NaN / "[object Object]" must
|
|
72
|
+
* never end up in a record). promptTokens is returned as the
|
|
73
|
+
* cache-read-inclusive input total, as calculateCostWithCache expects.
|
|
56
74
|
*/
|
|
57
75
|
function extractTokens(usage) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
76
|
+
let promptTokens = 0;
|
|
77
|
+
let completionTokens = 0;
|
|
78
|
+
let cachedReadTokens = 0;
|
|
79
|
+
let cachedWriteTokens = 0;
|
|
80
|
+
let reasoningTokens = 0;
|
|
81
|
+
const input = usage?.inputTokens;
|
|
82
|
+
if (typeof input === "number") {
|
|
83
|
+
// ai@5-6: a number (cache-read-inclusive input total)
|
|
84
|
+
promptTokens = toCount(input);
|
|
85
|
+
}
|
|
86
|
+
else if (input !== null && typeof input === "object") {
|
|
87
|
+
// ai@7: object breakdown
|
|
88
|
+
cachedReadTokens = toCount(input.cacheRead);
|
|
89
|
+
cachedWriteTokens = toCount(input.cacheWrite);
|
|
90
|
+
promptTokens =
|
|
91
|
+
typeof input.total === "number" && Number.isFinite(input.total)
|
|
92
|
+
? input.total
|
|
93
|
+
: toCount(input.noCache) + cachedReadTokens + cachedWriteTokens;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
// older v4 line (0 when input is undefined)
|
|
97
|
+
promptTokens = toCount(usage?.promptTokens);
|
|
98
|
+
}
|
|
99
|
+
const output = usage?.outputTokens;
|
|
100
|
+
if (typeof output === "number") {
|
|
101
|
+
completionTokens = toCount(output);
|
|
102
|
+
}
|
|
103
|
+
else if (output !== null && typeof output === "object") {
|
|
104
|
+
reasoningTokens = toCount(output.reasoning);
|
|
105
|
+
completionTokens =
|
|
106
|
+
typeof output.total === "number" && Number.isFinite(output.total)
|
|
107
|
+
? output.total
|
|
108
|
+
: toCount(output.text) + reasoningTokens;
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
completionTokens = toCount(usage?.completionTokens);
|
|
112
|
+
}
|
|
113
|
+
// ai@5-6 breakdown fallback (never overwrites values already taken from the v7 object)
|
|
114
|
+
if (cachedReadTokens === 0) {
|
|
115
|
+
cachedReadTokens =
|
|
116
|
+
toCount(usage?.cachedInputTokens) || toCount(usage?.inputTokenDetails?.cacheReadTokens);
|
|
117
|
+
}
|
|
118
|
+
if (cachedWriteTokens === 0) {
|
|
119
|
+
cachedWriteTokens = toCount(usage?.inputTokenDetails?.cacheWriteTokens);
|
|
120
|
+
}
|
|
121
|
+
if (reasoningTokens === 0) {
|
|
122
|
+
reasoningTokens =
|
|
123
|
+
toCount(usage?.reasoningTokens) || toCount(usage?.outputTokenDetails?.reasoningTokens);
|
|
124
|
+
}
|
|
125
|
+
const rawTotal = usage?.totalTokens;
|
|
126
|
+
const totalTokens = typeof rawTotal === "number" && Number.isFinite(rawTotal)
|
|
127
|
+
? rawTotal
|
|
128
|
+
: promptTokens + completionTokens;
|
|
63
129
|
return {
|
|
64
130
|
promptTokens,
|
|
65
131
|
completionTokens,
|
|
66
|
-
totalTokens
|
|
132
|
+
totalTokens,
|
|
67
133
|
cachedReadTokens,
|
|
68
134
|
cachedWriteTokens,
|
|
69
135
|
reasoningTokens,
|
|
70
136
|
};
|
|
71
137
|
}
|
|
72
|
-
/** stream
|
|
138
|
+
/** Whether a stream part carries a "first token" (text / reasoning / tool) — used for TTFT. */
|
|
73
139
|
function partHasOutput(part) {
|
|
74
140
|
const t = part.type;
|
|
75
141
|
if (!t)
|
|
@@ -82,7 +148,7 @@ function partHasOutput(part) {
|
|
|
82
148
|
t === "tool-input-start" ||
|
|
83
149
|
t === "tool-input-delta");
|
|
84
150
|
}
|
|
85
|
-
/**
|
|
151
|
+
/** Best-effort extraction of status / code from AI SDK errors (APICallError etc.). */
|
|
86
152
|
function extractErrorDetails(err) {
|
|
87
153
|
if (!err || typeof err !== "object")
|
|
88
154
|
return undefined;
|
|
@@ -99,10 +165,10 @@ function extractErrorDetails(err) {
|
|
|
99
165
|
}
|
|
100
166
|
export function argosvixMiddleware(config = {}) {
|
|
101
167
|
const recorder = new Recorder(config);
|
|
102
|
-
//
|
|
168
|
+
// Register as a destination for the observations withSpan emits (same treatment as wrap()).
|
|
103
169
|
_registerObservationSink(recorder);
|
|
104
170
|
const callTags = { ...(config.tags ?? {}) };
|
|
105
|
-
//
|
|
171
|
+
// Trace fields are snapshotted at call entry, so nothing is misattributed even if the ambient context is gone after an await.
|
|
106
172
|
function buildTraceMeta() {
|
|
107
173
|
const meta = {};
|
|
108
174
|
const ambient = config.autoContext === false ? undefined : getAmbientTraceContext();
|
|
@@ -183,7 +249,7 @@ export function argosvixMiddleware(config = {}) {
|
|
|
183
249
|
recorder.record(record);
|
|
184
250
|
});
|
|
185
251
|
}
|
|
186
|
-
/** config.provider
|
|
252
|
+
/** Explicit config.provider wins over inference from model.provider. Returns null when inference fails. */
|
|
187
253
|
function resolveProvider(model) {
|
|
188
254
|
if (config.provider)
|
|
189
255
|
return config.provider;
|
|
@@ -201,7 +267,7 @@ export function argosvixMiddleware(config = {}) {
|
|
|
201
267
|
const id = generateId();
|
|
202
268
|
const traceMeta = buildTraceMeta();
|
|
203
269
|
const requestMeta = buildRequestMeta(params);
|
|
204
|
-
//
|
|
270
|
+
// Budget / policy gate (only active when opted in). A block is recorded as an error and rethrown.
|
|
205
271
|
try {
|
|
206
272
|
await recorder.budgetGate.check({ model: modelId, payload: params });
|
|
207
273
|
}
|
|
@@ -217,7 +283,7 @@ export function argosvixMiddleware(config = {}) {
|
|
|
217
283
|
recordError(id, provider, modelId, start, traceMeta, requestMeta, err);
|
|
218
284
|
throw err;
|
|
219
285
|
}
|
|
220
|
-
//
|
|
286
|
+
// Success recording stays outside the try block so a recording exception cannot turn a successful call into an error.
|
|
221
287
|
const usedModel = result.response?.modelId ?? modelId;
|
|
222
288
|
recordSuccess(id, provider, usedModel, start, result.usage, undefined, traceMeta, requestMeta);
|
|
223
289
|
return result;
|
|
@@ -245,19 +311,20 @@ export function argosvixMiddleware(config = {}) {
|
|
|
245
311
|
streamResult = await doStream();
|
|
246
312
|
}
|
|
247
313
|
catch (err) {
|
|
248
|
-
//
|
|
314
|
+
// Stream initialization failures (auth / validation / connection) are observed too.
|
|
249
315
|
recordError(id, provider, modelId, start, traceMeta, requestMeta, err);
|
|
250
316
|
throw err;
|
|
251
317
|
}
|
|
252
318
|
const { stream, ...rest } = streamResult;
|
|
253
319
|
const reader = stream.getReader();
|
|
254
320
|
let usedModel = modelId;
|
|
255
|
-
let finishUsage; // finish
|
|
256
|
-
let lastUsage; //
|
|
321
|
+
let finishUsage; // prefer the finish part's usage
|
|
322
|
+
let lastUsage; // fallback for adapters without a finish part
|
|
257
323
|
let ttftMs;
|
|
258
|
-
let recorded = false; //
|
|
259
|
-
//
|
|
260
|
-
// (
|
|
324
|
+
let recorded = false; // guards against double recording
|
|
325
|
+
// Hand-rolled pump: record exactly once whether the stream completes
|
|
326
|
+
// normally or errors mid-consumption. (TransformStream.flush is not used
|
|
327
|
+
// because it does not fire on error.)
|
|
261
328
|
const observed = new ReadableStream({
|
|
262
329
|
async pull(controller) {
|
|
263
330
|
let chunk;
|
|
@@ -295,7 +362,7 @@ export function argosvixMiddleware(config = {}) {
|
|
|
295
362
|
controller.enqueue(part);
|
|
296
363
|
},
|
|
297
364
|
cancel(reason) {
|
|
298
|
-
//
|
|
365
|
+
// A mid-stream cancel by the consumer means usage was never finalized, so nothing is recorded (tokens are unknowable by spec).
|
|
299
366
|
return reader.cancel(reason);
|
|
300
367
|
},
|
|
301
368
|
});
|
|
@@ -312,7 +379,7 @@ export function argosvixMiddleware(config = {}) {
|
|
|
312
379
|
},
|
|
313
380
|
recorder,
|
|
314
381
|
};
|
|
315
|
-
// flushClient(middleware) / getRecorder(middleware)
|
|
382
|
+
// Makes flushClient(middleware) / getRecorder(middleware) work through the same path as wrapped clients.
|
|
316
383
|
_registerRecorderFor(middleware, recorder);
|
|
317
384
|
return middleware;
|
|
318
385
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiSdkMiddleware.js","sourceRoot":"","sources":["../src/aiSdkMiddleware.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aiSdkMiddleware.js","sourceRoot":"","sources":["../src/aiSdkMiddleware.ts"],"names":[],"mappings":"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"}
|
package/dist/approvals.d.ts
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Human approval gate SDK API (part of the runtime control plane).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Call this before a dangerous agent operation (deletion, money transfer,
|
|
5
|
+
* account cancellation, etc.). It creates an approval request on the Argosvix
|
|
6
|
+
* backend and sends an email notification to the account owner.
|
|
7
|
+
* `waitForApproval()` blocks until a human approves or denies the request via
|
|
8
|
+
* the dashboard (/approvals) or the email link.
|
|
7
9
|
*
|
|
8
|
-
*
|
|
9
|
-
* - wrap()
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
10
|
+
* Design:
|
|
11
|
+
* - An explicit API independent of wrap() (scoped per operation, not per
|
|
12
|
+
* LLM call)
|
|
13
|
+
* - A backend-side timeout or an exceeded waitForApproval wait returns
|
|
14
|
+
* "expired" / "denied" — i.e. default-deny. Callers must abort the
|
|
15
|
+
* operation for any status other than "approved".
|
|
16
|
+
* - Polling defaults to a 5-second interval plus jitter. The backend read
|
|
17
|
+
* rate limit is 60/min per account, so only about ~5 approvals can be
|
|
18
|
+
* awaited concurrently (excess polls get 429 and retry on the next tick,
|
|
19
|
+
* which is safe but slower).
|
|
15
20
|
*
|
|
16
21
|
* @example
|
|
17
22
|
* import { requestApproval, waitForApproval } from "@argosvix/sdk";
|
|
@@ -19,7 +24,7 @@
|
|
|
19
24
|
* const approval = await requestApproval({
|
|
20
25
|
* apiKey: "argk_...",
|
|
21
26
|
* action: "delete_user",
|
|
22
|
-
* summary: "user usr_123
|
|
27
|
+
* summary: "Delete user usr_123 (LTV $0, inactive for 90 days)",
|
|
23
28
|
* });
|
|
24
29
|
* const status = await waitForApproval({ apiKey: "argk_...", id: approval.id });
|
|
25
30
|
* if (status !== "approved") throw new Error(`not approved: ${status}`);
|
|
@@ -41,49 +46,52 @@ export declare class ArgosvixApprovalError extends Error {
|
|
|
41
46
|
constructor(message: string, status?: number | null);
|
|
42
47
|
}
|
|
43
48
|
export interface ApprovalClientOptions {
|
|
44
|
-
/** Argosvix API key (
|
|
49
|
+
/** Argosvix API key (required). */
|
|
45
50
|
apiKey: string;
|
|
46
51
|
/**
|
|
47
|
-
* API base
|
|
48
|
-
* https://ingest.argosvix.com
|
|
49
|
-
*
|
|
52
|
+
* API base override (for self-hosting / tests). Defaults to
|
|
53
|
+
* https://ingest.argosvix.com. If an ArgosvixConfig.endpoint value
|
|
54
|
+
* (.../v1/ingest) is passed, the prefix is derived from it.
|
|
50
55
|
*/
|
|
51
56
|
endpoint?: string;
|
|
52
57
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
58
|
+
* Project to associate approvals with (sent as the X-Project-Id header, the
|
|
59
|
+
* same mechanism as a record's projectId). When unset, the backend falls
|
|
60
|
+
* back to the account's default project (backward compatible).
|
|
55
61
|
*/
|
|
56
62
|
projectId?: string;
|
|
57
63
|
}
|
|
58
64
|
export interface RequestApprovalParams extends ApprovalClientOptions {
|
|
59
|
-
/**
|
|
65
|
+
/** Operation identifier (1-128 chars, [A-Za-z0-9._: -]). Example: "delete_user" */
|
|
60
66
|
action: string;
|
|
61
|
-
/**
|
|
67
|
+
/** One-line human-readable description (1-500 chars). Shown verbatim in the approval email. */
|
|
62
68
|
summary: string;
|
|
63
|
-
/**
|
|
69
|
+
/** Supplementary JSON object (up to 4KB, optional). */
|
|
64
70
|
metadata?: Record<string, unknown>;
|
|
65
|
-
/**
|
|
71
|
+
/** Approval deadline in seconds (60-86400, default 3600). Expiry means "expired", treated as deny. */
|
|
66
72
|
timeoutSeconds?: number;
|
|
67
73
|
}
|
|
68
|
-
/**
|
|
74
|
+
/** Create an approval request. Sends an email notification to the account owner. */
|
|
69
75
|
export declare function requestApproval(params: RequestApprovalParams): Promise<ApprovalRequestShape>;
|
|
70
|
-
/**
|
|
76
|
+
/** Fetch the current state of an approval request once. */
|
|
71
77
|
export declare function getApproval(params: ApprovalClientOptions & {
|
|
72
78
|
id: string;
|
|
73
79
|
}): Promise<ApprovalRequestShape>;
|
|
74
80
|
export interface WaitForApprovalParams extends ApprovalClientOptions {
|
|
75
81
|
id: string;
|
|
76
|
-
/**
|
|
82
|
+
/** Polling interval in ms (default 5000, minimum 1000). */
|
|
77
83
|
pollIntervalMs?: number;
|
|
78
84
|
/**
|
|
79
|
-
*
|
|
80
|
-
*
|
|
85
|
+
* Maximum wait in ms (default 1 hour). On exceeding it, returns "expired"
|
|
86
|
+
* — i.e. default-deny. Independent of the backend-side request timeout
|
|
87
|
+
* (whichever is shorter takes effect first).
|
|
81
88
|
*/
|
|
82
89
|
timeoutMs?: number;
|
|
83
90
|
}
|
|
84
91
|
/**
|
|
85
|
-
*
|
|
86
|
-
* "approved"
|
|
92
|
+
* Poll until the request is approved, denied, or expired, then return the
|
|
93
|
+
* final status. If anything other than "approved" is returned, the caller
|
|
94
|
+
* must not execute the operation (default-deny).
|
|
87
95
|
*/
|
|
88
96
|
export declare function waitForApproval(params: WaitForApprovalParams): Promise<Exclude<ApprovalStatus, "pending">>;
|
|
89
97
|
//# sourceMappingURL=approvals.d.ts.map
|
package/dist/approvals.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AASH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE3E,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;gBACnB,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,IAAW;CAK1D;AAED,MAAM,WAAW,qBAAqB;IACpC,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmDD,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,sGAAsG;IACtG,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,oFAAoF;AACpF,wBAAsB,eAAe,CACnC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAe/B;AAED,2DAA2D;AAC3D,wBAAsB,WAAW,CAC/B,MAAM,EAAE,qBAAqB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAAC,oBAAoB,CAAC,CAS/B;AAED,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CA4B7C"}
|