@argosvix/sdk 0.4.0-alpha.1 → 0.4.2-alpha.1

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/CHANGELOG.md CHANGED
@@ -4,6 +4,35 @@ All notable changes to `@argosvix/sdk` are documented in this file.
4
4
  The format is loosely based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
5
5
  and the project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [0.4.1-alpha.1] - 2026-06-02
8
+
9
+ ### Added
10
+ - **PII redaction metadata** on every captured record (= v1.5 Round D 第1段):
11
+ - `LlmCallRecord.piiRedacted` — `true` when at least one PII match was redacted
12
+ in the prompt body, completion body, or any tool call argument/result.
13
+ - `LlmCallRecord.redactionMetadata` — `Record<string, unknown>` carrying
14
+ per-category counts plus a redactor identifier, e.g.
15
+ `{ email: 2, phone: 1, redactor: "argosvix-sdk" }`.
16
+ - Three new helpers: `redactPiiWithCounts(text)`, `mergeRedactionCounts(a, b)`,
17
+ `hasAnyRedaction(counts)`. Existing `redactPii(text)` keeps the prior
18
+ single-return-value shape for backwards compatibility.
19
+ - Per-pattern `type` tag on the redaction patterns (`email` / `creditCard` /
20
+ `myNumber` / `phone` / `ipv4` / `ipv6`) so backend / dashboard can surface
21
+ category-level audit information.
22
+
23
+ ### Changed
24
+ - `Recorder.sanitizeContent` now uses `redactPiiWithCounts` instead of plain
25
+ `redactPii`, aggregating counts across `promptBody`, `completionBody`, and
26
+ every tool call's `arguments` / `result`. When any redaction happens, the
27
+ record gains `piiRedacted = true` and `redactionMetadata`.
28
+
29
+ ### Notes
30
+ - Backwards compatible: records that contain no PII still ship without the new
31
+ fields (= backend reads them as NULL / falsy).
32
+ - Backend `argosvix-ingest` already has the `pii_redacted` / `redaction_metadata`
33
+ columns on `llm_calls` (migration 0042). Ingest acceptance + query surface +
34
+ dashboard badge are the follow-up commits.
35
+
7
36
  ## [0.4.0-alpha.1] - 2026-06-02
8
37
 
9
38
  ### Added
@@ -1 +1 @@
1
- {"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../src/recorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhE;;;;;;;GAOG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC;;;;;OAKG;IACH,OAAO,CAAC,aAAa,CAAyC;gBAElD,MAAM,GAAE,cAAmB;IAIvC,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IA6BnC;;;;;;;;;;;OAWG;IACG,KAAK,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAwBzB,OAAO;IA8DrB;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAoCvB,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACH,iBAAiB,IAAI,IAAI;CAI1B"}
1
+ {"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../src/recorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAUhE;;;;;;;GAOG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC;;;;;OAKG;IACH,OAAO,CAAC,aAAa,CAAyC;gBAElD,MAAM,GAAE,cAAmB;IAIvC,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IA6BnC;;;;;;;;;;;OAWG;IACG,KAAK,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAwBzB,OAAO;IA8DrB;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAoEvB,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACH,iBAAiB,IAAI,IAAI;CAI1B"}
package/dist/recorder.js CHANGED
@@ -1,4 +1,5 @@
1
- import { redactPii, redactToolCall } from "./redaction.js";
1
+ import { hasAnyRedaction, mergeRedactionCounts, redactPiiWithCounts, redactToolCall, } from "./redaction.js";
2
+ import { SDK_VERSION } from "./version.js";
2
3
  /**
3
4
  * Per-wrap() instance-based recorder.
4
5
  * Avoids module-level global state to keep test isolation clean and to let
@@ -162,14 +163,47 @@ export class Recorder {
162
163
  return record;
163
164
  }
164
165
  const out = { ...record };
166
+ // 2026-06-02 Round D = 各 field の redaction 結果 + counts を 集計し、
167
+ // piiRedacted + redactionMetadata を record に carry。 backend migration
168
+ // 0042 の llm_calls.pii_redacted + redaction_metadata column 軸の前提。
169
+ let totalCounts = {};
165
170
  if (record.promptBody !== undefined) {
166
- out.promptBody = redactPii(record.promptBody);
171
+ const r = redactPiiWithCounts(record.promptBody);
172
+ out.promptBody = r.text;
173
+ totalCounts = mergeRedactionCounts(totalCounts, r.counts);
167
174
  }
168
175
  if (record.completionBody !== undefined) {
169
- out.completionBody = redactPii(record.completionBody);
176
+ const r = redactPiiWithCounts(record.completionBody);
177
+ out.completionBody = r.text;
178
+ totalCounts = mergeRedactionCounts(totalCounts, r.counts);
170
179
  }
171
180
  if (record.toolCalls !== undefined) {
172
- out.toolCalls = record.toolCalls.map(redactToolCall);
181
+ out.toolCalls = record.toolCalls.map((call) => {
182
+ const redacted = redactToolCall(call);
183
+ if (call.arguments !== undefined) {
184
+ const r = redactPiiWithCounts(call.arguments);
185
+ totalCounts = mergeRedactionCounts(totalCounts, r.counts);
186
+ }
187
+ if (call.result !== undefined) {
188
+ const r = redactPiiWithCounts(call.result);
189
+ totalCounts = mergeRedactionCounts(totalCounts, r.counts);
190
+ }
191
+ return redacted;
192
+ });
193
+ }
194
+ if (hasAnyRedaction(totalCounts)) {
195
+ out.piiRedacted = true;
196
+ // 2026-06-02 v1.5+ C7 = redactor identifier に SDK version を carry。
197
+ // dashboard / backend で 「どの SDK version が redact したか」 を audit
198
+ // できる軸 (= 古い SDK が cutoff 後の新 pattern (= new gTLD 等) で 漏れた
199
+ // narrative を 追跡可能)。 data minimization 軸では SDK version は PII では
200
+ // ないので problem なし。
201
+ out.redactionMetadata = { ...totalCounts, redactor: `argosvix-sdk@${SDK_VERSION}` };
202
+ }
203
+ else {
204
+ // 0 件でも redaction を 通したことを backend で 区別したい場合は
205
+ // piiRedacted = false carry。 既存 record 互換のため明示 set せず
206
+ // undefined のまま (= backend が null fallback 解釈)。
173
207
  }
174
208
  return out;
175
209
  }
@@ -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":"AACA,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,GAEf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C;;;;;;;GAOG;AACH,MAAM,OAAO,QAAQ;IACX,MAAM,GAAoB,EAAE,CAAC;IACpB,MAAM,CAAiB;IACxC;;;;;OAKG;IACK,aAAa,GAAoC,IAAI,CAAC;IAE9D,YAAY,SAAyB,EAAE;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,MAAqB;QAC1B,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,OAAO;QACjC,8DAA8D;QAC9D,+CAA+C;QAC/C,+DAA+D;QAC/D,oDAAoD;QACpD,WAAW;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE5B,qEAAqE;QACrE,yEAAyE;QACzE,sEAAsE;QACtE,iCAAiC;QACjC,IACE,OAAO,OAAO,KAAK,WAAW;YAC9B,OAAO,CAAC,GAAG,IAAI,IAAI;YACnB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,GAAG,EACrC,CAAC;YACD,sCAAsC;YACtC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,GAAG,CAAC;QACjD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC;YAClC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,KAAK;QACT,2EAA2E;QAC3E,+EAA+E;QAC/E,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,aAAa,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,+EAA+E;YACjF,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEtC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC7B,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC;QACvB,CAAC;gBAAS,CAAC;YACT,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE,CAAC;gBACnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,OAAwB;QAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAChD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,uCAAuC,CAAC;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,CAAC,CAAC;QAErD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;oBAChC,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;qBAC9C;oBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;iBAClC,CAAC,CAAC;gBACH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;oBACX,qEAAqE;oBACrE,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAG7B,CAAC;wBACF,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC9C,sCAAsC;4BACtC,OAAO,CAAC,IAAI,CACV,+BAA+B,IAAI,CAAC,QAAQ,CAAC,MAAM,aAAa,EAChE,IAAI,CAAC,QAAQ,CACd,CAAC;wBACJ,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,mEAAmE;oBACrE,CAAC;oBACD,OAAO,OAAO,CAAC;gBACjB,CAAC;gBACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC;oBAC1C,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvD,SAAS;gBACX,CAAC;gBACD,sCAAsC;gBACtC,OAAO,CAAC,KAAK,CACX,kCAAkC,GAAG,CAAC,MAAM,aAAa,CAAC,GAAG,CAAC,IAAI,QAAQ,GAAG,CAC9E,CAAC;gBACF,OAAO,OAAO,CAAC;YACjB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACvD,SAAS;gBACX,CAAC;gBACD,sCAAsC;gBACtC,OAAO,CAAC,KAAK,CACX,sCAAsC,QAAQ,YAAY,EAC1D,GAAG,CACJ,CAAC;gBACF,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACK,eAAe,CAAC,MAAqB;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,IAAI,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IACE,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,MAAM,CAAC,cAAc,KAAK,SAAS;gBACnC,MAAM,CAAC,SAAS,KAAK,SAAS,EAC9B,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,MAAM,QAAQ,GAAkB,EAAE,GAAG,MAAM,EAAE,CAAC;YAC9C,OAAO,QAAQ,CAAC,UAAU,CAAC;YAC3B,OAAO,QAAQ,CAAC,cAAc,CAAC;YAC/B,OAAO,QAAQ,CAAC,SAAS,CAAC;YAC1B,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,KAAK,IAAI,CAAC;QAClE,IAAI,gBAAgB,EAAE,CAAC;YACrB,wDAAwD;YACxD,uDAAuD;YACvD,qCAAqC;YACrC,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,GAAG,GAAkB,EAAE,GAAG,MAAM,EAAE,CAAC;QACzC,8DAA8D;QAC9D,sEAAsE;QACtE,kEAAkE;QAClE,IAAI,WAAW,GAAoB,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACjD,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC;YACxB,WAAW,GAAG,oBAAoB,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YACrD,GAAG,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;YAC5B,WAAW,GAAG,oBAAoB,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC5C,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;gBACtC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBACjC,MAAM,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC9C,WAAW,GAAG,oBAAoB,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC5D,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC9B,MAAM,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC3C,WAAW,GAAG,oBAAoB,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC5D,CAAC;gBACD,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;YACvB,mEAAmE;YACnE,8DAA8D;YAC9D,2DAA2D;YAC3D,gEAAgE;YAChE,mBAAmB;YACnB,GAAG,CAAC,iBAAiB,GAAG,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,gBAAgB,WAAW,EAAE,EAAE,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,8CAA8C;YAC9C,sDAAsD;YACtD,gDAAgD;QAClD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,iBAAiB;QACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;CACF"}
@@ -25,6 +25,13 @@
25
25
  * ので個人情報混入リスクとしては問題なし(マスキング種別が不正確に
26
26
  * なるだけ)
27
27
  */
28
+ /**
29
+ * 2026-06-02 Round D = redaction type tag。 redaction_metadata に carry
30
+ * する カテゴリ。 backend 0042 schema の redaction_metadata JSON に
31
+ * { [type]: count } shape で 入る。
32
+ */
33
+ export type RedactionType = "email" | "creditCard" | "myNumber" | "phone" | "ipv4" | "ipv6";
34
+ export type RedactionCounts = Partial<Record<RedactionType, number>>;
28
35
  /**
29
36
  * Apply PII redaction patterns to a plaintext string.
30
37
  *
@@ -32,6 +39,28 @@
32
39
  * @returns The text with PII patterns replaced by [REDACTED_*] markers.
33
40
  */
34
41
  export declare function redactPii(input: string | null | undefined): string;
42
+ /**
43
+ * 2026-06-02 Round D = 同 redaction 処理を 行いつつ、 各 type で 何回 置換
44
+ * が 発生したかを 同時 集計する。 backend redaction_metadata JSON 用 +
45
+ * SDK 側で 「PII 含まれていたか」 判定 (= piiRedacted boolean) 用。
46
+ *
47
+ * matchAll 経由で count を 取り、 続けて replace で carry。 regex は g flag
48
+ * なので 2 回 走らせても 副作用なし。
49
+ */
50
+ export declare function redactPiiWithCounts(input: string | null | undefined): {
51
+ text: string;
52
+ counts: RedactionCounts;
53
+ };
54
+ /**
55
+ * 2026-06-02 Round D = 複数の redaction 結果 (= prompt / completion / 各 tool
56
+ * call) の counts を 加算合成する helper。
57
+ */
58
+ export declare function mergeRedactionCounts(base: RedactionCounts, addition: RedactionCounts): RedactionCounts;
59
+ /**
60
+ * 2026-06-02 Round D = counts object に 1 件以上の redaction があるか。
61
+ * piiRedacted boolean field の判定軸。
62
+ */
63
+ export declare function hasAnyRedaction(counts: RedactionCounts): boolean;
35
64
  /**
36
65
  * Apply PII redaction recursively to a tool call's arguments and result fields.
37
66
  * Used by Recorder to scrub structured tool call data before send.
@@ -1 +1 @@
1
- {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../src/redaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAiDH;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAYlE;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;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AA4DH;;;;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;AAErE;;;;;GAKG;AACH,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"}
package/dist/redaction.js CHANGED
@@ -25,11 +25,17 @@
25
25
  * ので個人情報混入リスクとしては問題なし(マスキング種別が不正確に
26
26
  * なるだけ)
27
27
  */
28
+ /**
29
+ * 2026-06-02 Round D = pattern 毎の type tag を 追加 (= migration 0042
30
+ * redaction_metadata に counts JSON を 集計するため、 各 regex がどの
31
+ * カテゴリかを 明示する)。 metadata = { email: N, creditCard: N, ... }。
32
+ */
28
33
  const PATTERNS = [
29
34
  // Email = RFC 5322 ベース、 安全側に conservative
30
35
  {
31
36
  regex: /[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/g,
32
37
  replacement: "[REDACTED_EMAIL]",
38
+ type: "email",
33
39
  },
34
40
  // Credit card (= 改行・空白を跨ぐ番号もカバー)。
35
41
  // Codex Round 1 MEDIUM 修正 = 「\d sep \d sep ...」 構造で carry すると
@@ -39,12 +45,14 @@ const PATTERNS = [
39
45
  {
40
46
  regex: /\b\d(?:[ \t\r\n-]*\d){12,18}\b/g,
41
47
  replacement: "[REDACTED_CC]",
48
+ type: "creditCard",
42
49
  },
43
50
  // マイナンバー = 12 桁数字、 単語境界で区切る
44
51
  // (上の CC パターンが先に走るので 12-13 桁の重複は CC で処理される)
45
52
  {
46
53
  regex: /\b\d{12}\b/g,
47
54
  replacement: "[REDACTED_MYNUMBER]",
55
+ type: "myNumber",
48
56
  },
49
57
  // 電話番号 = 主要国の代表パターン:
50
58
  // - 日本 携帯: 090-XXXX-XXXX / 080-XXXX-XXXX / 070-XXXX-XXXX
@@ -54,11 +62,13 @@ const PATTERNS = [
54
62
  {
55
63
  regex: /\+?\d{1,3}[-.\s]?\(?\d{2,4}\)?[-.\s]?\d{2,4}[-.\s]?\d{3,4}/g,
56
64
  replacement: "[REDACTED_PHONE]",
65
+ type: "phone",
57
66
  },
58
67
  // IPv4 = 4 オクテット、 0-255 の範囲は厳密 check せず conservative
59
68
  {
60
69
  regex: /\b(?:\d{1,3}\.){3}\d{1,3}\b/g,
61
70
  replacement: "[REDACTED_IPV4]",
71
+ type: "ipv4",
62
72
  },
63
73
  // IPv6 (フル形 + 短縮形)。 Codex Round 1 MEDIUM 修正で `::1` などの
64
74
  // 短縮表記を含めて拾えるよう、 各 hex group を 0-4 桁(= 空 group が
@@ -69,6 +79,7 @@ const PATTERNS = [
69
79
  {
70
80
  regex: /(?<![\w:.])(?:[0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{1,4}(?![\w:.])/g,
71
81
  replacement: "[REDACTED_IPV6]",
82
+ type: "ipv6",
72
83
  },
73
84
  ];
74
85
  /**
@@ -92,6 +103,54 @@ export function redactPii(input) {
92
103
  }
93
104
  return result;
94
105
  }
106
+ /**
107
+ * 2026-06-02 Round D = 同 redaction 処理を 行いつつ、 各 type で 何回 置換
108
+ * が 発生したかを 同時 集計する。 backend redaction_metadata JSON 用 +
109
+ * SDK 側で 「PII 含まれていたか」 判定 (= piiRedacted boolean) 用。
110
+ *
111
+ * matchAll 経由で count を 取り、 続けて replace で carry。 regex は g flag
112
+ * なので 2 回 走らせても 副作用なし。
113
+ */
114
+ export function redactPiiWithCounts(input) {
115
+ if (input == null)
116
+ return { text: "", counts: {} };
117
+ if (typeof input !== "string")
118
+ input = String(input);
119
+ if (input.length === 0)
120
+ return { text: input, counts: {} };
121
+ const counts = {};
122
+ let result = input;
123
+ for (const { regex, replacement, type } of PATTERNS) {
124
+ const matches = result.match(regex);
125
+ const n = matches ? matches.length : 0;
126
+ if (n > 0)
127
+ counts[type] = (counts[type] ?? 0) + n;
128
+ result = result.replace(regex, replacement);
129
+ }
130
+ return { text: result, counts };
131
+ }
132
+ /**
133
+ * 2026-06-02 Round D = 複数の redaction 結果 (= prompt / completion / 各 tool
134
+ * call) の counts を 加算合成する helper。
135
+ */
136
+ export function mergeRedactionCounts(base, addition) {
137
+ const out = { ...base };
138
+ for (const k of Object.keys(addition)) {
139
+ out[k] = (out[k] ?? 0) + (addition[k] ?? 0);
140
+ }
141
+ return out;
142
+ }
143
+ /**
144
+ * 2026-06-02 Round D = counts object に 1 件以上の redaction があるか。
145
+ * piiRedacted boolean field の判定軸。
146
+ */
147
+ export function hasAnyRedaction(counts) {
148
+ for (const v of Object.values(counts)) {
149
+ if ((v ?? 0) > 0)
150
+ return true;
151
+ }
152
+ return false;
153
+ }
95
154
  /**
96
155
  * Apply PII redaction recursively to a tool call's arguments and result fields.
97
156
  * Used by Recorder to scrub structured tool call data before send.
@@ -1 +1 @@
1
- {"version":3,"file":"redaction.js","sourceRoot":"","sources":["../src/redaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,MAAM,QAAQ,GAAkD;IAC9D,0CAA0C;IAC1C;QACE,KAAK,EAAE,iDAAiD;QACxD,WAAW,EAAE,kBAAkB;KAChC;IACD,kCAAkC;IAClC,8DAA8D;IAC9D,sDAAsD;IACtD,sDAAsD;IACtD,kCAAkC;IAClC;QACE,KAAK,EAAE,iCAAiC;QACxC,WAAW,EAAE,eAAe;KAC7B;IACD,4BAA4B;IAC5B,4CAA4C;IAC5C;QACE,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,qBAAqB;KACnC;IACD,qBAAqB;IACrB,2DAA2D;IAC3D,2CAA2C;IAC3C,+CAA+C;IAC/C,0BAA0B;IAC1B;QACE,KAAK,EAAE,6DAA6D;QACpE,WAAW,EAAE,kBAAkB;KAChC;IACD,qDAAqD;IACrD;QACE,KAAK,EAAE,8BAA8B;QACrC,WAAW,EAAE,iBAAiB;KAC/B;IACD,uDAAuD;IACvD,iDAAiD;IACjD,wDAAwD;IACxD,wEAAwE;IACxE,0DAA0D;IAC1D,UAAU;IACV;QACE,KAAK,EAAE,kEAAkE;QACzE,WAAW,EAAE,iBAAiB;KAC/B;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,KAAgC;IACxD,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,iEAAiE;QACjE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC9C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAI9B;IACC,MAAM,GAAG,GAA0D;QACjE,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;IACF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACjC,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"redaction.js","sourceRoot":"","sources":["../src/redaction.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -147,6 +147,23 @@ export interface LlmCallRecord {
147
147
  arguments?: string;
148
148
  result?: string;
149
149
  }>;
150
+ /**
151
+ * 2026-06-02 Round D v0.4.1 = PII redaction が 1 件以上適用された flag。
152
+ * SDK 側 一次 redaction (= redactPiiWithCounts) で email / creditCard /
153
+ * myNumber / phone / ipv4 / ipv6 の いずれかが 検出 + 置換されたら true。
154
+ * backend 0042 schema の llm_calls.pii_redacted column に carry。
155
+ * disablePiiRedaction = true (= 無加工 carry) の場合は当然 false / unset。
156
+ */
157
+ piiRedacted?: boolean;
158
+ /**
159
+ * 2026-06-02 Round D v0.4.1 = redaction の カテゴリ別件数 + redactor 識別子
160
+ * JSON narrative。 backend 0042 schema の llm_calls.redaction_metadata
161
+ * column に そのまま 保管、 dashboard / MCP server で 「どの type を いくつ
162
+ * 検出したか」 監査表示に carry。
163
+ *
164
+ * 例: { email: 2, phone: 1, creditCard: 0, redactor: "argosvix-sdk" }
165
+ */
166
+ redactionMetadata?: Record<string, unknown>;
150
167
  }
151
168
  export interface PricingEntry {
152
169
  /** USD per 1M input tokens. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,gGAAgG;IAChG,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,YAAY,CAAC,EAAE;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,+MAA+M;IAC/M,WAAW,CAAC,EAAE;QACZ,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,WAAW,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @argosvix/sdk の version 単一 source-of-truth (= 2026-06-02 v1.5+ C7 軸)。
3
+ *
4
+ * package.json の `version` field と 完全一致させる。 recorder の
5
+ * `redactionMetadata.redactor` field に carry されるため、 dashboard /
6
+ * backend 側で 「どの SDK version が redact したか」 を audit できる軸。
7
+ *
8
+ * 改訂手順:
9
+ * 1. 本 file の SDK_VERSION を更新
10
+ * 2. packages/sdk/package.json の `version` も同 値に更新
11
+ * 3. npm run build && tests pass を確認してから commit
12
+ */
13
+ export declare const SDK_VERSION: "0.4.2-alpha.1";
14
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,WAAW,EAAG,eAAwB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @argosvix/sdk の version 単一 source-of-truth (= 2026-06-02 v1.5+ C7 軸)。
3
+ *
4
+ * package.json の `version` field と 完全一致させる。 recorder の
5
+ * `redactionMetadata.redactor` field に carry されるため、 dashboard /
6
+ * backend 側で 「どの SDK version が redact したか」 を audit できる軸。
7
+ *
8
+ * 改訂手順:
9
+ * 1. 本 file の SDK_VERSION を更新
10
+ * 2. packages/sdk/package.json の `version` も同 値に更新
11
+ * 3. npm run build && tests pass を確認してから commit
12
+ */
13
+ export const SDK_VERSION = "0.4.2-alpha.1";
14
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,eAAwB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@argosvix/sdk",
3
- "version": "0.4.0-alpha.1",
3
+ "version": "0.4.2-alpha.1",
4
4
  "description": "Drop-in observability wrapper for OpenAI, Anthropic, Gemini, Mistral SDK clients. One-line wrap() = cost / latency / quality records.",
5
5
  "keywords": [
6
6
  "argosvix",