@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.
Files changed (63) 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 +24 -22
  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.d.ts.map +1 -1
  61. package/dist/version.js +9 -9
  62. package/dist/version.js.map +1 -1
  63. package/package.json +8 -2
package/dist/approvals.js CHANGED
@@ -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}`);
@@ -83,7 +88,7 @@ async function callApi(opts, path, init = {}) {
83
88
  }
84
89
  return body;
85
90
  }
86
- /** 承認依頼を作成する。 account owner email 通知が飛ぶ。 */
91
+ /** Create an approval request. Sends an email notification to the account owner. */
87
92
  export async function requestApproval(params) {
88
93
  const body = {
89
94
  action: params.action,
@@ -102,7 +107,7 @@ export async function requestApproval(params) {
102
107
  }
103
108
  return res.approval;
104
109
  }
105
- /** 承認依頼の現在状態を 1 回取得する。 */
110
+ /** Fetch the current state of an approval request once. */
106
111
  export async function getApproval(params) {
107
112
  const res = (await callApi(params, `/v1/gate/approvals/${encodeURIComponent(params.id)}`));
108
113
  if (!res || !res.approval) {
@@ -111,8 +116,9 @@ export async function getApproval(params) {
111
116
  return res.approval;
112
117
  }
113
118
  /**
114
- * 承認 / 否認 / 期限切れまで polling して最終 status を返す。
115
- * "approved" 以外が返ったら呼び出し側は操作を実行しないこと (= default-deny)。
119
+ * Poll until the request is approved, denied, or expired, then return the
120
+ * final status. If anything other than "approved" is returned, the caller
121
+ * must not execute the operation (default-deny).
116
122
  */
117
123
  export async function waitForApproval(params) {
118
124
  const baseInterval = Math.max(MIN_POLL_INTERVAL_MS, params.pollIntervalMs ?? DEFAULT_POLL_INTERVAL_MS);
@@ -124,7 +130,7 @@ export async function waitForApproval(params) {
124
130
  status = approval.status;
125
131
  }
126
132
  catch (err) {
127
- // 一時的な network / 429 は次の poll で再試行 (= 4xx の恒久 error は throw)
133
+ // Transient network errors / 429 are retried on the next poll; permanent 4xx errors are thrown.
128
134
  if (err instanceof ArgosvixApprovalError &&
129
135
  err.status !== null &&
130
136
  err.status !== 429 &&
@@ -136,7 +142,7 @@ export async function waitForApproval(params) {
136
142
  return status;
137
143
  if (Date.now() >= deadline)
138
144
  return "expired";
139
- // jitter (= 0-20%) で複数 agent poll が同期して rate limit に張り付くのを防ぐ
145
+ // Jitter (0-20%) prevents multiple agents' polls from synchronizing and pinning the rate limit.
140
146
  const jitter = baseInterval * 0.2 * Math.random();
141
147
  await new Promise((resolve) => setTimeout(resolve, baseInterval + jitter));
142
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import type { ArgosvixConfig } from "./types.js";
2
2
  /**
3
- * model 名の canonical form (= R72b MEDIUM 3)。 Gemini SDK が保持する
4
- * "models/gemini-pro" provider prefix を除去し、 allowlist 比較を
5
- * TS / Python SDK で同一にする。 export = test + Python 側と並走 verify 用。
3
+ * Canonical form of a model name. Strips the "models/" provider prefix that
4
+ * Gemini-family SDKs keep (e.g. "models/gemini-pro") so allowlist comparison
5
+ * behaves identically in the TypeScript and Python SDKs. Exported for tests
6
+ * and for cross-verification against the Python implementation.
6
7
  */
7
8
  export declare function canonicalizeModelName(model: string): string;
8
9
  export declare class ArgosvixBudgetExceededError extends Error {
@@ -19,13 +20,13 @@ export declare class ArgosvixPolicyViolationError extends Error {
19
20
  readonly detail: string;
20
21
  constructor(reason: PolicyViolationReason, detail: string);
21
22
  }
22
- /** wrapper check() に渡す呼び出し文脈。 */
23
+ /** Call context the wrapper passes to check(). */
23
24
  export interface GateCheckContext {
24
- /** request model (= 取れない経路では payload から補完) */
25
+ /** Model name of the request (backfilled from the payload on paths where it is not directly available). */
25
26
  model?: string | undefined;
26
- /** provider に渡す request payload (= policy PII / secret 検査対象) */
27
+ /** Request payload sent to the provider (subject to the policy gate's PII / secret scan). */
27
28
  payload?: unknown;
28
- /** 監査 Tier 2 = この呼び出しの実効 tags(= tag gate の該当判定に使う) */
29
+ /** Effective tags of this call (used to decide which tag gates apply). */
29
30
  tags?: Record<string, string> | undefined;
30
31
  }
31
32
  export declare class RuntimeGate {
@@ -36,43 +37,48 @@ export declare class RuntimeGate {
36
37
  private lastAttemptFailed;
37
38
  private warnedEndpoint;
38
39
  private warnedNoPolicy;
39
- /** 直近の成功 fetch 以降にこのプロセスが record した消費の補正値。 */
40
+ /** Spend recorded by this process since the last successful fetch (local compensation). */
40
41
  private localSpendUsd;
41
- /** 監査 Tier 2 = tag 別のローカル消費補正(key = JSON([tagKey,tagValue])) */
42
+ /** Per-tag local spend compensation (key = JSON([tagKey,tagValue])). */
42
43
  private tagLocalSpend;
43
44
  constructor(config: ArgosvixConfig);
44
- /** monotonic clockwall clock の逆行 (NTP step / VM resume) に影響されない。 */
45
+ /** Monotonic clock; unaffected by wall-clock regressions (NTP step / VM resume). */
45
46
  private now;
46
47
  /**
47
- * gate が実際に enforce され得るか(= 完全互換 wrap identity fast path 判定用)。
48
- * false なら check() は即 return するため、呼び出し前の await を省略して
49
- * 元の APIPromise をそのまま返せる。
48
+ * Whether the gate can actually enforce anything (used by the fully
49
+ * compatible wrap to decide its identity fast path). When false, check()
50
+ * returns immediately, so the pre-call await can be skipped and the original
51
+ * APIPromise returned as-is.
50
52
  */
51
53
  get isActive(): boolean;
52
- /** opt-in + 送信可能な構成のときだけ動く。それ以外は完全 no-op */
54
+ /** Active only when opted in and configured for sending; otherwise a complete no-op. */
53
55
  private get active();
54
56
  /**
55
- * recorder.record() から呼ばれる。TTL 窓内のローカル消費補正。
56
- * tag gate config.tags を判定基準にする(= この client の全 call config.tags を
57
- * 持つため、 該当 tag gate には project gate と同様に全 call が加算される)。
57
+ * Called from recorder.record(). Local spend compensation within the TTL
58
+ * window. Tag gates are matched against config.tags: every call made by
59
+ * this client carries config.tags, so all calls accrue to the matching tag
60
+ * gates, just like the project gate.
58
61
  */
59
62
  noteSpend(costUsd: number): void;
60
63
  /**
61
- * LLM 呼び出し直前の enforce。超過なら throw、それ以外は素通し。
62
- * backend 障害は enforce mode に従って fail-open / fail-closed
64
+ * Enforcement right before the LLM call. Throws when the limit is exceeded,
65
+ * passes through otherwise. Backend outages fail open or fail closed
66
+ * according to the enforce mode.
63
67
  */
64
68
  check(ctx?: GateCheckContext): Promise<void>;
65
69
  private evaluate;
66
- /** ポリシーゲートのローカル評価 (= モデル allowlist / PII / secret) */
70
+ /** Local evaluation of the policy gate (model allowlist / PII / secrets). */
67
71
  private evaluatePolicy;
68
72
  private isStale;
69
- /** 直近 fetch が失敗していた場合、FAILURE_RETRY_MS 経過まで再試行しない。 */
73
+ /** If the last fetch failed, do not retry until FAILURE_RETRY_MS has elapsed. */
70
74
  private attemptAllowed;
71
75
  private refresh;
72
76
  /**
73
- * gate endpoint の決定。 ingest endpoint override している場合は同 prefix
74
- * から導出し、 導出できない形 (= /v1/ingest で終わらない custom URL) なら
75
- * gate を無効化する (= 他環境向け Bearer key production に送らない、R65b M-2)。
77
+ * Resolves the gate endpoint. When the ingest endpoint is overridden, the
78
+ * gate endpoint is derived from the same prefix; if it cannot be derived
79
+ * (a custom URL not ending in /v1/ingest), the gate is disabled instead.
80
+ * This avoids sending a Bearer key meant for another environment to
81
+ * production.
76
82
  */
77
83
  private gateEndpoint;
78
84
  private fetchOnce;
@@ -1 +1 @@
1
- {"version":3,"file":"budgetGate.d.ts","sourceRoot":"","sources":["../src/budgetGate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAgDjD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBACd,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAQ/C;AAED,qBAAa,kCAAmC,SAAQ,KAAK;;CAO5D;AAED,MAAM,MAAM,qBAAqB,GAC7B,mBAAmB,GACnB,cAAc,GACd,iBAAiB,CAAC;AAEtB,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM;CAM1D;AAuCD,mCAAmC;AACnC,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CAC3C;AAOD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,cAAc,CAAS;IAC/B,8CAA8C;IAC9C,OAAO,CAAC,aAAa,CAAK;IAC1B,iEAAiE;IACjE,OAAO,CAAC,aAAa,CAA6B;gBAEtC,MAAM,EAAE,cAAc;IAIlC,qEAAqE;IACrE,OAAO,CAAC,GAAG;IAIX;;;;OAIG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,6CAA6C;IAC7C,OAAO,KAAK,MAAM,GAOjB;IAED;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAehC;;;OAGG;IACG,KAAK,CAAC,GAAG,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BtD,OAAO,CAAC,QAAQ;IAwEhB,uDAAuD;IACvD,OAAO,CAAC,cAAc;IA4CtB,OAAO,CAAC,OAAO;IAKf,sDAAsD;IACtD,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,OAAO;IAUf;;;;OAIG;IACH,OAAO,CAAC,YAAY;YAmBN,SAAS;CA8LxB;AAGD,OAAO,EAAE,WAAW,IAAI,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"budgetGate.d.ts","sourceRoot":"","sources":["../src/budgetGate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAuDjD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBACd,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAQ/C;AAED,qBAAa,kCAAmC,SAAQ,KAAK;;CAO5D;AAED,MAAM,MAAM,qBAAqB,GAC7B,mBAAmB,GACnB,cAAc,GACd,iBAAiB,CAAC;AAEtB,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM;CAM1D;AAyCD,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAC/B,2GAA2G;IAC3G,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,6FAA6F;IAC7F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CAC3C;AAOD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,cAAc,CAAS;IAC/B,2FAA2F;IAC3F,OAAO,CAAC,aAAa,CAAK;IAC1B,wEAAwE;IACxE,OAAO,CAAC,aAAa,CAA6B;gBAEtC,MAAM,EAAE,cAAc;IAIlC,oFAAoF;IACpF,OAAO,CAAC,GAAG;IAIX;;;;;OAKG;IACH,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,wFAAwF;IACxF,OAAO,KAAK,MAAM,GAOjB;IAED;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAehC;;;;OAIG;IACG,KAAK,CAAC,GAAG,GAAE,gBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BtD,OAAO,CAAC,QAAQ;IA4EhB,6EAA6E;IAC7E,OAAO,CAAC,cAAc;IAgDtB,OAAO,CAAC,OAAO;IAKf,iFAAiF;IACjF,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,OAAO;IAUf;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;YAmBN,SAAS;CAmMxB;AAGD,OAAO,EAAE,WAAW,IAAI,UAAU,EAAE,CAAC"}