@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/recorder.js CHANGED
@@ -1,6 +1,32 @@
1
1
  import { BudgetGate } from "./budgetGate.js";
2
2
  import { hasAnyRedaction, mergeRedactionCounts, redactPii, redactPiiWithCounts, redactToolCall, } from "./redaction.js";
3
3
  import { SDK_VERSION } from "./version.js";
4
+ /**
5
+ * Plaintext body limit for backend ingest (same value as
6
+ * MAX_PLAINTEXT_BODY_BYTES = 64 * 1024 in the backend's ingest handler). The
7
+ * backend checks `promptBody.length` (UTF-16 code unit count), so the SDK
8
+ * counts in the same unit (not UTF-8 bytes — the name says BYTES but the
9
+ * actual check is in code units).
10
+ */
11
+ export const INGEST_MAX_BODY_UNITS = 64 * 1024;
12
+ /** Marker in the same format as the streaming capture (client.ts STREAM_TRUNCATED_MARKER). */
13
+ export const BODY_TRUNCATED_MARKER = "…[truncated]";
14
+ /**
15
+ * Truncate a body before sending. The backend rejects an over-limit record
16
+ * wholesale, so records with 64KB-256KB bodies used to disappear silently.
17
+ * Fit within the limit including the marker, and never split a surrogate pair
18
+ * at the cut point (do not send a broken lone surrogate).
19
+ */
20
+ export function truncateBodyForIngest(text) {
21
+ if (text.length <= INGEST_MAX_BODY_UNITS)
22
+ return text;
23
+ let end = INGEST_MAX_BODY_UNITS - BODY_TRUNCATED_MARKER.length;
24
+ const code = text.charCodeAt(end - 1);
25
+ // If the char just before the cut point is a high surrogate, we are mid-pair — cut one unit earlier.
26
+ if (code >= 0xd800 && code <= 0xdbff)
27
+ end -= 1;
28
+ return text.slice(0, end) + BODY_TRUNCATED_MARKER;
29
+ }
4
30
  /**
5
31
  * Per-wrap() instance-based recorder.
6
32
  * Avoids module-level global state to keep test isolation clean and to let
@@ -11,8 +37,8 @@ import { SDK_VERSION } from "./version.js";
11
37
  */
12
38
  export class Recorder {
13
39
  buffer = [];
14
- // #1 R4 = observation(withSpan emit する非 LLM ノード)の並行バッファ。 record と
15
- // 同じ flush 経路で ingest body observations[] として一緒に送る。
40
+ // Parallel buffer for observations (non-LLM nodes emitted by withSpan). Sent
41
+ // alongside records through the same flush path, as observations[] in the ingest body.
16
42
  obsBuffer = [];
17
43
  config;
18
44
  /**
@@ -23,15 +49,16 @@ export class Recorder {
23
49
  */
24
50
  inFlightFlush = null;
25
51
  /**
26
- * Periodic flush one-shot timer(buffer が空→非空になった契機で 1 本だけ張る)。
27
- * permanent setInterval GC 阻害 + unref 忘れで Node プロセスを生かし続けるため避ける。
28
- * flush 開始時に clear、host が短命 runtime(Workers/Edge)なら timer 配送は保証されない
29
- * ので従来どおり flushClient() 明示が必須(docs)。
52
+ * One-shot timer for periodic flushes (armed only when the buffer goes from
53
+ * empty to non-empty). A permanent setInterval is avoided because it blocks
54
+ * GC and a forgotten unref keeps the Node process alive. Cleared when a
55
+ * flush starts. On short-lived host runtimes (Workers/Edge) timer delivery
56
+ * is not guaranteed, so an explicit flushClient() remains required, as documented.
30
57
  */
31
58
  idleFlushTimer = null;
32
59
  /**
33
- * Runtime 予算ゲート (= config.budgetGate opt-in 時のみ実動作、それ以外は
34
- * 完全 no-op) wrapper LLM 呼び出し前に check() await する。
60
+ * Runtime budget gate (active only when config.budgetGate is opted in;
61
+ * otherwise a complete no-op). The wrapper awaits check() before each LLM call.
35
62
  */
36
63
  budgetGate;
37
64
  constructor(config = {}) {
@@ -39,8 +66,9 @@ export class Recorder {
39
66
  this.budgetGate = new BudgetGate(config);
40
67
  }
41
68
  /**
42
- * buffer record が入っている間、flushIntervalMs 後に 1 回だけ flush を予約する。
43
- * 既に予約済み / disabled / apiKey / interval 0 なら何もしない。
69
+ * While records sit in the buffer, schedule exactly one flush after
70
+ * flushIntervalMs. Does nothing if already scheduled, disabled, without an
71
+ * apiKey, or with an interval of 0.
44
72
  */
45
73
  scheduleIdleFlush() {
46
74
  if (this.idleFlushTimer != null)
@@ -57,37 +85,38 @@ export class Recorder {
57
85
  void this.flush();
58
86
  }
59
87
  }, intervalMs);
60
- // Node: プロセスを timer だけで生かし続けない。Workers/Edge には unref が無い。
88
+ // Node: don't keep the process alive just for this timer. Workers/Edge have no unref.
61
89
  timer.unref?.();
62
90
  this.idleFlushTimer = timer;
63
91
  }
64
92
  catch {
65
- // setTimeout が使えない環境は periodic flush 非対応 = flushClient() 明示に依存。
93
+ // Environments without setTimeout don't support periodic flush they rely on an explicit flushClient().
66
94
  }
67
95
  }
68
- /** #1 R4 = ObservationSink: この recorder observation を送れるか(disabled / apiKey 無は不可) */
96
+ /** ObservationSink: whether this recorder can send observations (not when disabled or without an apiKey). */
69
97
  get observationsEnabled() {
70
98
  return !this.config.disabled && !!this.config.apiKey;
71
99
  }
72
- /** #1 R4 = ObservationSink: cross-account 送信防止のための routing キー(= api_key) */
100
+ /** ObservationSink: routing key (the api_key) used to prevent cross-account sends. */
73
101
  get observationsRoutingKey() {
74
102
  return this.config.apiKey;
75
103
  }
76
104
  record(record) {
77
105
  if (this.config.disabled)
78
106
  return;
79
- // 観測は best-effort = 記録経路の同期 throw host アプリに漏らさない。
80
- // 特に stream wrapper finally から呼ばれた場合、ここで throw すると
81
- // generator .return() 経由で顧客の break/abandon 側に例外が伝播し、
82
- // 「記録は顧客のアプリを壊さない」という公開約束に反する(Codex 相談)。
107
+ // Observation is best-effort: never leak a synchronous throw from the
108
+ // recording path into the host app. In particular, when called from a
109
+ // stream wrapper's finally block, a throw here would propagate through the
110
+ // generator's .return() into the customer's break/abandon path, violating
111
+ // the public promise that recording never breaks the customer's app.
83
112
  try {
84
- // TTL キャッシュ窓内のローカル消費補正 (= budgetGate opt-in 時のみ加算)
113
+ // Local spend adjustment within the TTL cache window (only added when budgetGate is opted in).
85
114
  this.budgetGate.noteSpend(record.costUsd);
86
- // Pro+ 平文保存機能の SDK opt-in captureContent false (default)
87
- // のときは、 wrapper が誤って平文を乗せていても recorder で確実に剥がす
88
- // (= 二重 safety net、 wrapper bug 対策)。 captureContent true の
89
- // ときは、 disablePiiRedaction が明示的に true でない限り PII を自動
90
- // マスキングする。
115
+ // SDK-side opt-in for the Pro+ plaintext storage feature. When
116
+ // captureContent is false (the default), the recorder reliably strips
117
+ // plaintext even if a wrapper mistakenly attached it (a second safety
118
+ // net against wrapper bugs). When captureContent is true, PII is
119
+ // automatically masked unless disablePiiRedaction is explicitly true.
91
120
  const sanitized = this.sanitizeContent(record);
92
121
  this.buffer.push(sanitized);
93
122
  // Guard `process` access — some edge runtimes (Cloudflare Workers in
@@ -97,15 +126,16 @@ export class Recorder {
97
126
  if (typeof process !== "undefined" &&
98
127
  process.env != null &&
99
128
  process.env["ARGOSVIX_DEBUG"] === "1") {
100
- // sanitized(= 実際に送信する payload)を出す。 raw record を出すと
101
- // redaction 前の PII / 平文が顧客のログ基盤に漏れる(Codex 相談)。
102
- // disablePiiRedaction=true のときは sanitized も raw = 顧客の明示選択。
129
+ // Log the sanitized payload (what is actually sent). Logging the raw
130
+ // record would leak pre-redaction PII / plaintext into the customer's
131
+ // logging infrastructure. With disablePiiRedaction=true the sanitized
132
+ // payload is also raw — that is the customer's explicit choice.
103
133
  try {
104
134
  // eslint-disable-next-line no-console
105
135
  console.log("[argosvix]", JSON.stringify(sanitized));
106
136
  }
107
137
  catch {
108
- // 循環参照等で stringify throw しても debug ログのために host を壊さない。
138
+ // Even if stringify throws (circular references etc.), never break the host for the sake of a debug log.
109
139
  }
110
140
  }
111
141
  const maxSize = this.config.bufferMaxSize ?? 100;
@@ -113,18 +143,20 @@ export class Recorder {
113
143
  void this.flush();
114
144
  }
115
145
  else {
116
- // buffer が空→非空になった契機で periodic flush を予約(低頻度・長命 Node
117
- // bufferMaxSize 到達まで送信されず終了時に消える silent loss の防止)。
146
+ // Schedule a periodic flush when the buffer goes from empty to non-empty
147
+ // (prevents silent loss on low-traffic, long-lived Node processes where
148
+ // records never reach bufferMaxSize and vanish at shutdown).
118
149
  this.scheduleIdleFlush();
119
150
  }
120
151
  }
121
152
  catch {
122
- // 観測は host アプリを壊さない。 記録経路の例外は握りつぶす。
153
+ // Observation must not break the host app. Swallow exceptions from the recording path.
123
154
  }
124
155
  }
125
- /** #1 R4 = observation(withSpan emit する typed ノード)をバッファに積む。
126
- * error は例外メッセージの自動収集で prompt 断片 / PII / secret を含みうるため、
127
- * records と同じく redaction(opt-out 可)+ 長さ上限を通してから送る。 */
156
+ /** Buffer an observation (a typed node emitted by withSpan).
157
+ * The error field is auto-collected from exception messages and can contain
158
+ * prompt fragments / PII / secrets, so like records it goes through
159
+ * redaction (opt-out possible) plus a length cap before sending. */
128
160
  recordObservation(obs) {
129
161
  if (this.config.disabled)
130
162
  return;
@@ -140,7 +172,7 @@ export class Recorder {
140
172
  void this.flush();
141
173
  }
142
174
  else {
143
- // record() と同じく低頻度でも一定時間で送るよう periodic flush を予約。
175
+ // As in record(), schedule a periodic flush so even low-traffic buffers are sent within a bounded time.
144
176
  this.scheduleIdleFlush();
145
177
  }
146
178
  }
@@ -157,7 +189,7 @@ export class Recorder {
157
189
  * both await the same promise instead of racing.
158
190
  */
159
191
  async flush() {
160
- // 予約済みの idle flush timer を解除(このflush buffer を掃くため二重発火不要)
192
+ // Cancel any scheduled idle flush timer (this flush sweeps the buffer, so a second firing is unnecessary).
161
193
  if (this.idleFlushTimer != null) {
162
194
  clearTimeout(this.idleFlushTimer);
163
195
  this.idleFlushTimer = null;
@@ -193,9 +225,9 @@ export class Recorder {
193
225
  }
194
226
  const endpoint = this.config.endpoint ?? "https://ingest.argosvix.com/v1/ingest";
195
227
  const attempts = this.config.flushRetryAttempts ?? 2;
196
- // 2026-06-04 v1.5 Pro polish = X-Project-Id ingest header carry
197
- // (= config.projectId が設定されていれば backend record 該当 project
198
- // 紐付ける、 未設定 = backend account default project に倒す)。
228
+ // Send X-Project-Id as an ingest header: when config.projectId is set the
229
+ // backend associates the records with that project; when unset the backend
230
+ // falls back to the account's default project.
199
231
  const headers = {
200
232
  "Content-Type": "application/json",
201
233
  Authorization: `Bearer ${this.config.apiKey}`,
@@ -208,7 +240,7 @@ export class Recorder {
208
240
  const res = await fetch(endpoint, {
209
241
  method: "POST",
210
242
  headers,
211
- // #1 R4 = observations があれば同じ POST に併せて送る(空なら従来どおり records のみ)
243
+ // If there are observations, send them in the same POST (when empty, send records only, as before).
212
244
  body: JSON.stringify(observations.length > 0 ? { records, observations } : { records }),
213
245
  });
214
246
  if (res.ok) {
@@ -229,8 +261,9 @@ export class Recorder {
229
261
  await new Promise((r) => setTimeout(r, 200 * (i + 1)));
230
262
  continue;
231
263
  }
232
- // 429 = 月間クォータ到達。fire-and-forget のためアプリからは見えず「記録が
233
- // 黙って止まる」月末失明になるので、1 回だけ明示的に warn する(2026-07-03)。
264
+ // 429 = monthly quota reached. Because sends are fire-and-forget the app
265
+ // never sees this, and recording would silently stop at end of month —
266
+ // so warn explicitly, once (added 2026-07-03).
234
267
  if (res.status === 429) {
235
268
  warnQuotaExceededOnce();
236
269
  return records;
@@ -252,20 +285,21 @@ export class Recorder {
252
285
  return records;
253
286
  }
254
287
  /**
255
- * captureContent disablePiiRedaction の組み合わせに応じて、record
256
- * 平文フィールド(promptBody / completionBody / toolCalls)を加工する。
288
+ * Process the record's plaintext fields (promptBody / completionBody /
289
+ * toolCalls) according to the captureContent / disablePiiRedaction combination:
257
290
  *
258
- * captureContent = false (default) → 全平文フィールドを削除
259
- * captureContent = true, disablePiiRedaction = false (default) → redaction 適用
260
- * captureContent = true, disablePiiRedaction = true → 無加工で carry
291
+ * captureContent = false (default) → remove all plaintext fields
292
+ * captureContent = true, disablePiiRedaction = false (default) → apply redaction
293
+ * captureContent = true, disablePiiRedaction = true → pass through unmodified
261
294
  */
262
295
  sanitizeContent(record) {
263
296
  const capture = this.config.captureContent === true;
264
297
  const disableRedaction = this.config.disablePiiRedaction === true;
265
- // audit round2 fix = error captureContent に関係なく常に backend へ送られる
266
- // metadata で、 provider エラーメッセージは prompt 断片 / PII / secret を含みうる。
267
- // redaction が有効な限り captureContent OFF でも error redact する
268
- // (旧実装は promptBody/completionBody/toolCalls 3 つしか加工せず error を素通り)。
298
+ // The error field is metadata that is always sent to the backend regardless
299
+ // of captureContent, and provider error messages can contain prompt
300
+ // fragments / PII / secrets. So as long as redaction is enabled, redact the
301
+ // error even with captureContent OFF (a previous implementation only
302
+ // processed promptBody/completionBody/toolCalls and let error pass through untouched).
269
303
  const redactedError = !disableRedaction && typeof record.error === "string"
270
304
  ? redactPii(record.error)
271
305
  : undefined;
@@ -285,25 +319,41 @@ export class Recorder {
285
319
  return stripped;
286
320
  }
287
321
  if (disableRedaction) {
288
- // capture ON + redaction OFF = 無加工で carry (= user が明示的に opt-out)。 error も
289
- // 同方針で raw のまま。
290
- return record;
322
+ // Capture ON + redaction OFF = pass through unmodified (the user explicitly
323
+ // opted out). The error field stays raw under the same policy. However,
324
+ // exceeding the backend's 64KB limit rejects the whole record (silent
325
+ // loss), so body truncation is still applied even with redaction OFF.
326
+ const p = record.promptBody !== undefined
327
+ ? truncateBodyForIngest(record.promptBody)
328
+ : undefined;
329
+ const c = record.completionBody !== undefined
330
+ ? truncateBodyForIngest(record.completionBody)
331
+ : undefined;
332
+ if (p === record.promptBody && c === record.completionBody)
333
+ return record;
334
+ const untouched = { ...record };
335
+ if (p !== undefined)
336
+ untouched.promptBody = p;
337
+ if (c !== undefined)
338
+ untouched.completionBody = c;
339
+ return untouched;
291
340
  }
292
341
  const out = { ...record };
293
342
  if (redactedError !== undefined)
294
343
  out.error = redactedError;
295
- // 2026-06-02 Round D = 各 field redaction 結果 + counts 集計し、
296
- // piiRedacted + redactionMetadata record carry。 backend migration
297
- // 0042 の llm_calls.pii_redacted + redaction_metadata column 軸の前提。
344
+ // Aggregate each field's redaction result and counts, and attach
345
+ // piiRedacted + redactionMetadata to the record. This feeds the backend's
346
+ // llm_calls.pii_redacted and redaction_metadata columns.
298
347
  let totalCounts = {};
299
348
  if (record.promptBody !== undefined) {
300
349
  const r = redactPiiWithCounts(record.promptBody);
301
- out.promptBody = r.text;
350
+ // Truncate after redaction (replacement changes the length, so judge by the final sent length).
351
+ out.promptBody = truncateBodyForIngest(r.text);
302
352
  totalCounts = mergeRedactionCounts(totalCounts, r.counts);
303
353
  }
304
354
  if (record.completionBody !== undefined) {
305
355
  const r = redactPiiWithCounts(record.completionBody);
306
- out.completionBody = r.text;
356
+ out.completionBody = truncateBodyForIngest(r.text);
307
357
  totalCounts = mergeRedactionCounts(totalCounts, r.counts);
308
358
  }
309
359
  if (record.toolCalls !== undefined) {
@@ -322,17 +372,18 @@ export class Recorder {
322
372
  }
323
373
  if (hasAnyRedaction(totalCounts)) {
324
374
  out.piiRedacted = true;
325
- // 2026-06-02 v1.5+ C7 = redactor identifier SDK version を carry。
326
- // dashboard / backend 「どの SDK version redact したか」 audit
327
- // できる軸 (= 古い SDK cutoff 後の新 pattern (= new gTLD 等) で 漏れた
328
- // narrative 追跡可能)。 data minimization 軸では SDK version PII では
329
- // ないので problem なし。
375
+ // Embed the SDK version in the redactor identifier so the dashboard and
376
+ // backend can audit which SDK version performed the redaction (e.g. to
377
+ // trace cases where an older SDK missed patterns introduced after its
378
+ // release, such as new gTLDs). From a data-minimization standpoint the
379
+ // SDK version is not PII, so this is unproblematic.
330
380
  out.redactionMetadata = { ...totalCounts, redactor: `argosvix-sdk@${SDK_VERSION}` };
331
381
  }
332
382
  else {
333
- // 0 件でも redaction 通したことを backend 区別したい場合は
334
- // piiRedacted = false carry。 既存 record 互換のため明示 set せず
335
- // undefined のまま (= backend null fallback 解釈)。
383
+ // To let the backend distinguish "redaction ran but found nothing", we
384
+ // could set piiRedacted = false here. For compatibility with existing
385
+ // records we leave it unset (undefined), which the backend interprets as
386
+ // a null fallback.
336
387
  }
337
388
  return out;
338
389
  }
@@ -348,7 +399,7 @@ export class Recorder {
348
399
  this.inFlightFlush = null;
349
400
  }
350
401
  }
351
- // 429(月間クォータ到達) warn-once。flush 毎に繰り返すとログを汚すため 1 プロセス 1 回。
402
+ // Warn-once for 429 (monthly quota reached). Repeating on every flush would pollute logs, so once per process.
352
403
  let quotaWarned = false;
353
404
  function warnQuotaExceededOnce() {
354
405
  if (quotaWarned)
@@ -358,7 +409,7 @@ function warnQuotaExceededOnce() {
358
409
  console.warn("[argosvix] monthly quota exceeded — new records are being rejected until the next billing month. " +
359
410
  "Check usage at https://dashboard.argosvix.com/settings/billing");
360
411
  }
361
- /** test-only = warn-once flag をリセットする。 */
412
+ /** Test-only: resets the warn-once flag. */
362
413
  export function _resetQuotaWarn() {
363
414
  quotaWarned = false;
364
415
  }
@@ -1 +1 @@
1
- {"version":3,"file":"recorder.js","sourceRoot":"","sources":["../src/recorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recorder.js","sourceRoot":"","sources":["../src/recorder.ts"],"names":[],"mappings":"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"}
@@ -1,58 +1,60 @@
1
1
  /**
2
2
  * Plaintext PII redaction for the captureContent opt-in path.
3
3
  *
4
- * Argosvix v1.x = Pro+ 平文保存機能の SDK opt-in 時に prompt / completion
5
- * 本文をそのまま送信する前に、 メールアドレス / クレジットカード番号 /
6
- * 電話番号 / マイナンバー / IP アドレスを自動マスキングするためのヘルパー。
4
+ * Helper that automatically masks email addresses / credit card numbers /
5
+ * phone numbers / Japanese My Number / IP addresses before prompt and
6
+ * completion bodies are sent verbatim under the Pro+ plaintext storage
7
+ * feature's SDK-side opt-in.
7
8
  *
8
- * 設計方針:
9
- * - false positive 寛容、false negative 厳禁(= 過剰マスクは OK、 PII の
10
- * 見落としは NG) ユーザーが明示的に disablePiiRedaction:true で無効化
11
- * しない限り、この関数が必ず通る
12
- * - 関数は純関数で副作用なし。 同じ入力に対して常に同じ出力
13
- * - 入力が空文字または null / undefined のときは入力をそのまま返す
14
- * - 入力が文字列でない場合(オブジェクト等) String() で文字列化してから
15
- * 置換、 ただし元の型は保たず string を返す
9
+ * Design policy:
10
+ * - False-positive tolerant, false negatives strictly avoided (over-masking
11
+ * is OK; missing PII is not). This function always runs unless the user
12
+ * explicitly disables it with disablePiiRedaction:true.
13
+ * - Pure function with no side effects. Same input always yields same output.
14
+ * - An empty string or null / undefined input is returned as-is.
15
+ * - Non-string input (objects etc.) is stringified with String() before
16
+ * replacement; the original type is not preserved — a string is returned.
16
17
  *
17
- * 既知の限界:
18
- * - 国際電話番号は形式が多様で全カバーは不可能。 conservative パターンで
19
- * +81-XX-XXXX-XXXX / 090-XXXX-XXXX 等の主要日本パターンと、 北米 (123)
20
- * 456-7890 形式を中心にカバー
21
- * - クレジットカード番号は Luhn check はしない(false positive 寛容)。
22
- * 13-19 桁の連続数字列(スペースとハイフン区切り含む)を一律置換
23
- * - マイナンバーは 12 桁数字。 クレジットカードと衝突する場合は 12 桁数字
24
- * が先に CC パターンにマッチする可能性あり = 結果は両方とも置換される
25
- * ので個人情報混入リスクとしては問題なし(マスキング種別が不正確に
26
- * なるだけ)
18
+ * Known limitations:
19
+ * - International phone number formats are too diverse to cover fully.
20
+ * Conservative patterns focus on the major Japanese forms
21
+ * (+81-XX-XXXX-XXXX / 090-XXXX-XXXX etc.) and the North American
22
+ * (123) 456-7890 form.
23
+ * - Credit card numbers are not Luhn-checked (false-positive tolerant).
24
+ * Any run of 13-19 digits (including space and hyphen separators) is
25
+ * replaced uniformly.
26
+ * - My Number is 12 digits. Where it collides with the credit card pattern,
27
+ * the 12-digit run may match the CC pattern first — either way both get
28
+ * replaced, so there is no PII-leak risk (only the masking category may
29
+ * be inaccurate).
27
30
  */
28
31
  /**
29
- * 2026-06-02 Round D = redaction type tag。 redaction_metadata carry
30
- * する カテゴリ。 backend 0042 schema redaction_metadata JSON
31
- * { [type]: count } shape で 入る。
32
+ * Redaction type tag: the category recorded in redaction_metadata. Stored in
33
+ * the backend's redaction_metadata JSON in the shape { [type]: count }.
32
34
  */
33
35
  export type RedactionType = "email" | "creditCard" | "myNumber" | "phone" | "ipv4" | "ipv6";
34
36
  export type RedactionCounts = Partial<Record<RedactionType, number>>;
35
37
  export declare function redactPii(input: string | null | undefined): string;
36
38
  /**
37
- * 2026-06-02 Round D = 同 redaction 処理を 行いつつ、 type で 何回 置換
38
- * 発生したかを 同時 集計する。 backend redaction_metadata JSON 用 +
39
- * SDK 側で PII 含まれていたか」 判定 (= piiRedacted boolean) 用。
39
+ * Perform the same redaction while simultaneously counting how many
40
+ * replacements occurred per type. Feeds the backend redaction_metadata JSON
41
+ * and the SDK-side "did this contain PII" decision (the piiRedacted boolean).
40
42
  *
41
- * matchAll 経由で count 取り、 続けて replace carry。 regex g flag
42
- * なので 2 走らせても 副作用なし。
43
+ * Counts are taken via match, then the replacement is applied. The regexes use
44
+ * the g flag, so running them twice has no side effects.
43
45
  */
44
46
  export declare function redactPiiWithCounts(input: string | null | undefined): {
45
47
  text: string;
46
48
  counts: RedactionCounts;
47
49
  };
48
50
  /**
49
- * 2026-06-02 Round D = 複数の redaction 結果 (= prompt / completion / 各 tool
50
- * call) counts 加算合成する helper。
51
+ * Helper that sums the counts from multiple redaction results (prompt /
52
+ * completion / each tool call).
51
53
  */
52
54
  export declare function mergeRedactionCounts(base: RedactionCounts, addition: RedactionCounts): RedactionCounts;
53
55
  /**
54
- * 2026-06-02 Round D = counts object 1 件以上の redaction があるか。
55
- * piiRedacted boolean field の判定軸。
56
+ * Whether the counts object contains at least one redaction.
57
+ * The basis for the piiRedacted boolean field.
56
58
  */
57
59
  export declare function hasAnyRedaction(counts: RedactionCounts): boolean;
58
60
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../src/redaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAkEH;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,YAAY,GACZ,UAAU,GACV,OAAO,GACP,MAAM,GACN,MAAM,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;AAqBrE,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAYlE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAa3C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,eAAe,GACxB,eAAe,CAMjB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAKhE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAWxD"}
1
+ {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../src/redaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAuEH;;;GAGG;AACH,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,YAAY,GACZ,UAAU,GACV,OAAO,GACP,MAAM,GACN,MAAM,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;AAsBrE,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAYlE;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAa3C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,eAAe,GACxB,eAAe,CAMjB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAKhE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAWxD"}