@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.
Files changed (61) hide show
  1. package/README.md +4 -9
  2. package/dist/aiSdkMiddleware.d.ts +36 -20
  3. package/dist/aiSdkMiddleware.d.ts.map +1 -1
  4. package/dist/aiSdkMiddleware.js +98 -31
  5. package/dist/aiSdkMiddleware.js.map +1 -1
  6. package/dist/approvals.d.ts +37 -29
  7. package/dist/approvals.d.ts.map +1 -1
  8. package/dist/approvals.js +24 -18
  9. package/dist/approvals.js.map +1 -1
  10. package/dist/budgetGate.d.ts +30 -24
  11. package/dist/budgetGate.d.ts.map +1 -1
  12. package/dist/budgetGate.js +118 -92
  13. package/dist/budgetGate.js.map +1 -1
  14. package/dist/client.d.ts +15 -10
  15. package/dist/client.d.ts.map +1 -1
  16. package/dist/client.js +271 -222
  17. package/dist/client.js.map +1 -1
  18. package/dist/context.d.ts +59 -48
  19. package/dist/context.d.ts.map +1 -1
  20. package/dist/context.js +72 -58
  21. package/dist/context.js.map +1 -1
  22. package/dist/flush.d.ts +6 -4
  23. package/dist/flush.d.ts.map +1 -1
  24. package/dist/flush.js +6 -4
  25. package/dist/flush.js.map +1 -1
  26. package/dist/ids.d.ts +3 -2
  27. package/dist/ids.d.ts.map +1 -1
  28. package/dist/ids.js +6 -5
  29. package/dist/ids.js.map +1 -1
  30. package/dist/langchainCallback.d.ts +14 -13
  31. package/dist/langchainCallback.d.ts.map +1 -1
  32. package/dist/langchainCallback.js +22 -17
  33. package/dist/langchainCallback.js.map +1 -1
  34. package/dist/policyScan.d.ts +29 -22
  35. package/dist/policyScan.d.ts.map +1 -1
  36. package/dist/policyScan.js +47 -38
  37. package/dist/policyScan.js.map +1 -1
  38. package/dist/pricing.d.ts +5 -5
  39. package/dist/pricing.d.ts.map +1 -1
  40. package/dist/pricing.js +25 -21
  41. package/dist/pricing.js.map +1 -1
  42. package/dist/prompts.d.ts +20 -17
  43. package/dist/prompts.d.ts.map +1 -1
  44. package/dist/prompts.js +21 -17
  45. package/dist/prompts.js.map +1 -1
  46. package/dist/query.d.ts +21 -21
  47. package/dist/query.d.ts.map +1 -1
  48. package/dist/query.js +14 -14
  49. package/dist/recorder.d.ts +39 -19
  50. package/dist/recorder.d.ts.map +1 -1
  51. package/dist/recorder.js +120 -69
  52. package/dist/recorder.js.map +1 -1
  53. package/dist/redaction.d.ts +35 -33
  54. package/dist/redaction.d.ts.map +1 -1
  55. package/dist/redaction.js +73 -64
  56. package/dist/redaction.js.map +1 -1
  57. package/dist/types.d.ts +131 -114
  58. package/dist/types.d.ts.map +1 -1
  59. package/dist/version.d.ts +9 -9
  60. package/dist/version.js +9 -9
  61. 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. See [`CHANGELOG.md`](./CHANGELOG.md) for the full change log.
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 self-host the backend.
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
- A full runnable example lives in [`examples/headless-control-plane`](../../examples/headless-control-plane).
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
- The [`examples/`](../../examples/) directory contains minimum-viable integrations for four stacks:
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
- * 監査 Tier 2 = Vercel AI SDK (`ai` パッケージ) 統合。
4
+ * Vercel AI SDK (`ai` package) integration.
5
5
  *
6
- * AI SDK `wrapLanguageModel({ model, middleware })` に渡せる
7
- * LanguageModelV2 / V4 互換のミドルウェアを返す。 `generateText` /
8
- * `streamText` / `generateObject` など AI SDK 経由の全呼び出しを、 プロバイダ
9
- * SDK を直接 wrap() しなくても観測できる (= 「AI SDK 内部からの呼び出しも記録
10
- * できるか」への答え = はい、 サポート 4 プロバイダについて)。
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 へのハード依存は持たない (= 型は構造的に定義、 `ai` を import しない)。
13
- * V2 (ai@5) V4 (ai@6) でミドルウェアの形 (wrapGenerate / wrapStream) は同じ。
14
- * usage のフィールド名差 (旧: cachedInputTokens / reasoningTokens、 新:
15
- * inputTokenDetails.cacheReadTokens / outputTokenDetails.reasoningTokens)
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
- * 設計方針: 観測コードは決してホストの LLM 呼び出しを壊さない。 記録は best-effort
19
- * (= 記録中の例外は握りつぶしてログのみ)。 成功記録は doGenerate try の外で行い、
20
- * 記録時の例外で「成功した呼び出し」が error 扱いに化けないようにする。
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() の戻り値。 AI SDK middleware として使えるほか、
83
- * 短命ランタイム用に flush() / recorder を直接公開する。 flushClient(これ) も可。
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
- /** バッファをバックエンドへ flush し送信完了を待つ (= Workers / Lambda / Edge の finally 用) */
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
- /** この middleware が使う Recorder (= getRecorder 相当) */
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,UAAU;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,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;CACnD;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;;;GAGG;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,2EAA2E;IAC3E,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAyGD,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,cAAmB,GAAG,uBAAuB,CAkQvF"}
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"}
@@ -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 provider 文字列 ( "openai.chat" / "anthropic.messages" /
8
- * "google.generative-ai" / "mistral.chat") を Argosvix の 4 プロバイダへ寄せる。
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
- * 名前空間 (= 最初の "." より前) の完全一致で判定する。 substring 一致は
11
- * "openai-compatible" / "not-openai" を誤って openai に寄せるため使わない。
12
- * 該当なし = null (= backend provider を厳格 enum 検証するため、 サポート外
13
- * provider fabricate せず記録をスキップする)。
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
- /** 記録は best-effort ここで投げてもホストの呼び出しを壊さない。 */
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 の正規化 usage から Argosvix の記録用トークン内訳を取り出す。
54
- * inputTokens は AI SDK 仕様上「キャッシュ読取を含む input 合計」なので、
55
- * calculateCostWithCache promptTokens (= cache 込み input) にそのまま渡す。
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
- const promptTokens = usage?.inputTokens ?? 0;
59
- const completionTokens = usage?.outputTokens ?? 0;
60
- const cachedReadTokens = usage?.cachedInputTokens ?? usage?.inputTokenDetails?.cacheReadTokens ?? 0;
61
- const cachedWriteTokens = usage?.inputTokenDetails?.cacheWriteTokens ?? 0;
62
- const reasoningTokens = usage?.reasoningTokens ?? usage?.outputTokenDetails?.reasoningTokens ?? 0;
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: usage?.totalTokens ?? promptTokens + completionTokens,
132
+ totalTokens,
67
133
  cachedReadTokens,
68
134
  cachedWriteTokens,
69
135
  reasoningTokens,
70
136
  };
71
137
  }
72
- /** stream パートが「初回トークン」(本文 / 推論 / ツール) を載せているか (= TTFT 用)。 */
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
- /** AI SDK のエラー (APICallError 等) から status / code best-effort 抽出。 */
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
- // withSpan emit する observation の送信先として登録 (= wrap() と同じ扱い)
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
- // trace 軸は呼び出し入口で snapshot する (= await 後に ambient が消えても取り違えない)。
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 明示 > model.provider からの推定。 推定不能 = null。 */
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
- // 予算 / ポリシーゲート (= opt-in 時のみ実動作) block error 記録 + rethrow。
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
- // 成功記録は try の外 (= 記録時の例外で成功呼び出しが error に化けない)。
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
- // stream の初期化失敗 (= auth / validation / connection) も観測する。
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 パートの usage を優先
256
- let lastUsage; // finish が無い adapter 用の fallback
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
- // 自前 pump = 正常完走でも消費中エラーでも 1 回だけ記録する
260
- // (= TransformStream.flush はエラー時に発火しないため使わない)。
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
- // 消費側が途中 cancel = usage 未確定なので記録しない (= 仕様上 token 不明)
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) wrap 済みと同経路で動かす。
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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"}
@@ -1,17 +1,22 @@
1
1
  /**
2
- * 人間承認ゲートの SDK API (= ランタイム制御プレーン Phase 3)
2
+ * Human approval gate SDK API (part of the runtime control plane).
3
3
  *
4
- * agent の危険操作 (= 削除 / 送金 / 退会等) の前に呼ぶと、 Argosvix backend に
5
- * 承認依頼が作られ、 account owner email 通知が飛ぶ。 人間が dashboard
6
- * (/approvals) email link で承認 / 否認するまで `waitForApproval()` が待つ。
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() とは独立した明示 API (= LLM 呼び出し単位ではなく操作単位)
10
- * - timeout 切れ / waitForApproval の待ち時間超過は "expired" / "denied"
11
- * 扱いで返す = default-deny。 呼び出し側は approved 以外で操作を中止する
12
- * - polling default 5 秒間隔 + jitter。 backend の read rate limit は
13
- * account 単位 60/分 のため、 同時に待てる approval は実質 ~5 件
14
- * (= 超過分は 429 poll で再試行されるので安全側だが遅くなる)
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 を削除します (LTV $090 日 inactive)",
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 override (= self-host / test 用) 未指定は
48
- * https://ingest.argosvix.com ArgosvixConfig.endpoint (= .../v1/ingest)
49
- * を渡した場合は prefix を導出する。
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
- * 承認を紐づける project (= X-Project-Id header で送信、 record の projectId と同方式)。
54
- * 未指定は backend account default project に倒す (= 後方互換)。
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
- /** 操作の識別子 (= 1-128 文字、 [A-Za-z0-9._: -]) 例: "delete_user" */
65
+ /** Operation identifier (1-128 chars, [A-Za-z0-9._: -]). Example: "delete_user" */
60
66
  action: string;
61
- /** 人間が読む 1 行説明 (= 1-500 文字) 承認 email にそのまま載る。 */
67
+ /** One-line human-readable description (1-500 chars). Shown verbatim in the approval email. */
62
68
  summary: string;
63
- /** 補足 JSON object (= 4KB まで、 任意) */
69
+ /** Supplementary JSON object (up to 4KB, optional). */
64
70
  metadata?: Record<string, unknown>;
65
- /** 承認期限秒 (= 60-86400 default 3600) 期限切れ = expired = deny 扱い。 */
71
+ /** Approval deadline in seconds (60-86400, default 3600). Expiry means "expired", treated as deny. */
66
72
  timeoutSeconds?: number;
67
73
  }
68
- /** 承認依頼を作成する。 account owner email 通知が飛ぶ。 */
74
+ /** Create an approval request. Sends an email notification to the account owner. */
69
75
  export declare function requestApproval(params: RequestApprovalParams): Promise<ApprovalRequestShape>;
70
- /** 承認依頼の現在状態を 1 回取得する。 */
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
- /** polling 間隔 ms (= default 5000 最小 1000) */
82
+ /** Polling interval in ms (default 5000, minimum 1000). */
77
83
  pollIntervalMs?: number;
78
84
  /**
79
- * 待機の上限 ms (= default 1 時間) 超過時は "expired" を返す = default-deny。
80
- * backend 側の依頼 timeout とは独立 (= 短い方が先に効く)。
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
- * 承認 / 否認 / 期限切れまで polling して最終 status を返す。
86
- * "approved" 以外が返ったら呼び出し側は操作を実行しないこと (= default-deny)。
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
@@ -1 +1 @@
1
- {"version":3,"file":"approvals.d.ts","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;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,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmDD,MAAM,WAAW,qBAAsB,SAAQ,qBAAqB;IAClE,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,8CAA8C;AAC9C,wBAAsB,eAAe,CACnC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAe/B;AAED,0BAA0B;AAC1B,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,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CA4B7C"}
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"}