@treza/cli 1.1.0 → 1.2.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 (51) hide show
  1. package/README.md +19 -0
  2. package/dist/commands/kyc.js +39 -0
  3. package/dist/commands/kyc.js.map +1 -1
  4. package/dist/commands/pii.d.ts +3 -0
  5. package/dist/commands/pii.d.ts.map +1 -0
  6. package/dist/commands/pii.js +172 -0
  7. package/dist/commands/pii.js.map +1 -0
  8. package/dist/commands/redact/index.d.ts +3 -0
  9. package/dist/commands/redact/index.d.ts.map +1 -0
  10. package/dist/commands/redact/index.js +10 -0
  11. package/dist/commands/redact/index.js.map +1 -0
  12. package/dist/commands/redact/log.d.ts +3 -0
  13. package/dist/commands/redact/log.d.ts.map +1 -0
  14. package/dist/commands/redact/log.js +48 -0
  15. package/dist/commands/redact/log.js.map +1 -0
  16. package/dist/commands/redact/proxy.d.ts +3 -0
  17. package/dist/commands/redact/proxy.d.ts.map +1 -0
  18. package/dist/commands/redact/proxy.js +269 -0
  19. package/dist/commands/redact/proxy.js.map +1 -0
  20. package/dist/commands/redact/run.d.ts +3 -0
  21. package/dist/commands/redact/run.d.ts.map +1 -0
  22. package/dist/commands/redact/run.js +115 -0
  23. package/dist/commands/redact/run.js.map +1 -0
  24. package/dist/commands/redact/trial.d.ts +3 -0
  25. package/dist/commands/redact/trial.d.ts.map +1 -0
  26. package/dist/commands/redact/trial.js +33 -0
  27. package/dist/commands/redact/trial.js.map +1 -0
  28. package/dist/index.js +6 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/utils/api.d.ts +36 -0
  31. package/dist/utils/api.d.ts.map +1 -1
  32. package/dist/utils/api.js +41 -0
  33. package/dist/utils/api.js.map +1 -1
  34. package/dist/utils/config.d.ts +6 -0
  35. package/dist/utils/config.d.ts.map +1 -1
  36. package/dist/utils/config.js +15 -0
  37. package/dist/utils/config.js.map +1 -1
  38. package/dist/utils/redact-api.d.ts +124 -0
  39. package/dist/utils/redact-api.d.ts.map +1 -0
  40. package/dist/utils/redact-api.js +231 -0
  41. package/dist/utils/redact-api.js.map +1 -0
  42. package/dist/utils/redact-config.d.ts +22 -0
  43. package/dist/utils/redact-config.d.ts.map +1 -0
  44. package/dist/utils/redact-config.js +27 -0
  45. package/dist/utils/redact-config.js.map +1 -0
  46. package/dist/utils/redact-local.d.ts +3 -0
  47. package/dist/utils/redact-local.d.ts.map +1 -0
  48. package/dist/utils/redact-local.js +160 -0
  49. package/dist/utils/redact-local.js.map +1 -0
  50. package/dist/utils/redact-manifest.json +44 -0
  51. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,17 @@ interface TrezaConfig {
3
3
  apiUrl: string;
4
4
  walletAddress: string;
5
5
  apiKey?: string;
6
+ /** Default Nitro PII_PROCESSOR enclave id for `treza pii` commands */
7
+ piiProcessorEnclaveId?: string;
8
+ /** Compliance labeling for client-side tooling (gdpr | ccpa | hipaa | off) */
9
+ complianceMode?: string;
6
10
  }
7
11
  export declare function getConfig(): Conf<TrezaConfig>;
8
12
  export declare function isConfigured(): boolean;
9
13
  export declare function getApiUrl(): string;
10
14
  export declare function getWalletAddress(): string;
11
15
  export declare function getApiKey(): string | undefined;
16
+ export declare function getPiiProcessorEnclaveId(): string | undefined;
17
+ export declare function getComplianceMode(): string;
12
18
  export {};
13
19
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmBD,wBAAgB,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,CAQ7C;AAED,wBAAgB,YAAY,IAAI,OAAO,CAGtC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,SAAS,IAAI,MAAM,GAAG,SAAS,CAE9C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA2BD,wBAAgB,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,CAQ7C;AAED,wBAAgB,YAAY,IAAI,OAAO,CAGtC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,SAAS,IAAI,MAAM,GAAG,SAAS,CAE9C;AAED,wBAAgB,wBAAwB,IAAI,MAAM,GAAG,SAAS,CAG7D;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
@@ -12,6 +12,14 @@ const schema = {
12
12
  type: 'string',
13
13
  default: '',
14
14
  },
15
+ piiProcessorEnclaveId: {
16
+ type: 'string',
17
+ default: '',
18
+ },
19
+ complianceMode: {
20
+ type: 'string',
21
+ default: 'off',
22
+ },
15
23
  };
16
24
  let configInstance = null;
17
25
  export function getConfig() {
@@ -36,4 +44,11 @@ export function getWalletAddress() {
36
44
  export function getApiKey() {
37
45
  return getConfig().get('apiKey') || undefined;
38
46
  }
47
+ export function getPiiProcessorEnclaveId() {
48
+ const v = getConfig().get('piiProcessorEnclaveId');
49
+ return v ? String(v) : undefined;
50
+ }
51
+ export function getComplianceMode() {
52
+ return getConfig().get('complianceMode') || 'off';
53
+ }
39
54
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAQxB,MAAM,MAAM,GAAG;IACb,MAAM,EAAE;QACN,IAAI,EAAE,QAAiB;QACvB,OAAO,EAAE,2BAA2B;KACrC;IACD,aAAa,EAAE;QACb,IAAI,EAAE,QAAiB;QACvB,OAAO,EAAE,EAAE;KACZ;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAiB;QACvB,OAAO,EAAE,EAAE;KACZ;CACF,CAAC;AAEF,IAAI,cAAc,GAA6B,IAAI,CAAC;AAEpD,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,IAAI,CAAc;YACrC,WAAW,EAAE,WAAW;YACxB,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,SAAS,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,2BAA2B,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,SAAS,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,SAAS,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAYxB,MAAM,MAAM,GAAG;IACb,MAAM,EAAE;QACN,IAAI,EAAE,QAAiB;QACvB,OAAO,EAAE,2BAA2B;KACrC;IACD,aAAa,EAAE;QACb,IAAI,EAAE,QAAiB;QACvB,OAAO,EAAE,EAAE;KACZ;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAiB;QACvB,OAAO,EAAE,EAAE;KACZ;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,QAAiB;QACvB,OAAO,EAAE,EAAE;KACZ;IACD,cAAc,EAAE;QACd,IAAI,EAAE,QAAiB;QACvB,OAAO,EAAE,KAAK;KACf;CACF,CAAC;AAEF,IAAI,cAAc,GAA6B,IAAI,CAAC;AAEpD,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,IAAI,CAAc;YACrC,WAAW,EAAE,WAAW;YACxB,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,SAAS,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,2BAA2B,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,SAAS,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,SAAS,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACnD,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,SAAS,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC;AACpD,CAAC"}
@@ -0,0 +1,124 @@
1
+ export interface RedactEntity {
2
+ type: string;
3
+ placeholder: string;
4
+ start: number;
5
+ end: number;
6
+ }
7
+ export interface AttestationSummary {
8
+ enclaveId: string;
9
+ region: string;
10
+ pcr0?: string;
11
+ modelVersion?: string;
12
+ recognizerVersion?: string;
13
+ attested?: boolean;
14
+ }
15
+ export interface RedactResult {
16
+ redacted: string;
17
+ entities: RedactEntity[];
18
+ requestId: string;
19
+ attestation?: AttestationSummary;
20
+ modelVersion?: string;
21
+ recognizerVersion?: string;
22
+ }
23
+ export interface AuditEntry {
24
+ ts: string;
25
+ requestId: string;
26
+ source: 'run' | 'proxy';
27
+ entityCountsByType: Record<string, number>;
28
+ attestationRef: string;
29
+ modelVersion?: string;
30
+ recognizerVersion?: string;
31
+ }
32
+ export interface AuditListResponse {
33
+ entries: AuditEntry[];
34
+ nextCursor?: string;
35
+ }
36
+ export declare class RedactApiError extends Error {
37
+ statusCode: number;
38
+ details?: unknown | undefined;
39
+ constructor(message: string, statusCode: number, details?: unknown | undefined);
40
+ }
41
+ export declare class MissingCredentialsError extends Error {
42
+ constructor();
43
+ }
44
+ interface Creds {
45
+ apiKey: string;
46
+ walletAddress: string;
47
+ apiUrl: string;
48
+ }
49
+ export declare function resolveCreds(override?: {
50
+ apiKey?: string;
51
+ }): Creds;
52
+ export declare function redactText(text: string, override?: {
53
+ apiKey?: string;
54
+ }): Promise<RedactResult>;
55
+ export declare function fetchAttestation(override?: {
56
+ apiKey?: string;
57
+ }): Promise<AttestationSummary>;
58
+ export declare function getAuditLog(params?: {
59
+ limit?: number;
60
+ since?: string;
61
+ apiKey?: string;
62
+ }): Promise<AuditListResponse>;
63
+ /**
64
+ * Forward an OpenAI-shaped chat-completion request through the control plane
65
+ * and buffer the full (non-streaming) response.
66
+ */
67
+ export declare function chatCompletionProxy(body: Record<string, unknown>, modelKey: string, options?: {
68
+ rehydrate?: boolean;
69
+ apiKey?: string;
70
+ }): Promise<{
71
+ status: number;
72
+ body: unknown;
73
+ rehydrationMap?: Record<string, string>;
74
+ requestId?: string;
75
+ }>;
76
+ export interface ChatCompletionStream {
77
+ status: number;
78
+ /** Raw upstream SSE stream when the upstream actually streamed, else null. */
79
+ stream: ReadableStream<Uint8Array> | null;
80
+ /** Set when the upstream returned a non-SSE body (e.g. a JSON error) instead. */
81
+ body?: unknown;
82
+ contentType: string;
83
+ /**
84
+ * Placeholder → original map sent in the `x-treza-rehydration` header. Known
85
+ * entirely from the request-side redaction, so it is available before the
86
+ * first token. Only populated when `rehydrate` was requested.
87
+ */
88
+ rehydrationMap?: Record<string, string>;
89
+ requestId?: string;
90
+ }
91
+ /**
92
+ * Streaming variant of {@link chatCompletionProxy}. Asks the control plane for
93
+ * an SSE stream (`stream: true`) and returns the raw upstream byte stream so the
94
+ * caller can pipe it straight to its own client. The proxy never rewrites the
95
+ * response body — placeholders are rehydrated client-side (see
96
+ * `applyStreamRehydration`) using the `x-treza-rehydration` map.
97
+ *
98
+ * Fails closed: if the request-side redaction errors the control plane returns a
99
+ * non-2xx JSON body and this throws a {@link RedactApiError} before any bytes
100
+ * reach the caller — nothing was forwarded upstream.
101
+ */
102
+ export declare function chatCompletionProxyStream(body: Record<string, unknown>, modelKey: string, options?: {
103
+ rehydrate?: boolean;
104
+ apiKey?: string;
105
+ }): Promise<ChatCompletionStream>;
106
+ /**
107
+ * Stateful rehydrator for streamed text. A placeholder such as `[EMAIL_1]` can
108
+ * be split across SSE chunks, so we rehydrate against accumulated text rather
109
+ * than individual deltas: any trailing fragment that could still grow into a
110
+ * placeholder (an unclosed `[…`) is held back and prepended to the next delta.
111
+ *
112
+ * Returns the rehydrated, safe-to-emit text for this delta (possibly empty).
113
+ * Call {@link StreamRehydrator.flush} once the stream ends to drain the tail.
114
+ */
115
+ export declare class StreamRehydrator {
116
+ private readonly map;
117
+ private carry;
118
+ constructor(map: Record<string, string>);
119
+ push(delta: string): string;
120
+ flush(): string;
121
+ private rehydrate;
122
+ }
123
+ export {};
124
+ //# sourceMappingURL=redact-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact-api.d.ts","sourceRoot":"","sources":["../../src/utils/redact-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,231 @@
1
+ /**
2
+ * Thin HTTP client for the Treza redaction control plane.
3
+ *
4
+ * Uses the existing CLI auth scheme — Bearer API key + `x-treza-wallet`
5
+ * header — exactly like the `treza pii` commands. No separate trial /
6
+ * wallet-free flow. Customers receive an API key with `redact:*`
7
+ * permissions during manual onboarding.
8
+ */
9
+ import { getApiKey, getWalletAddress, getApiUrl } from './config.js';
10
+ export class RedactApiError extends Error {
11
+ statusCode;
12
+ details;
13
+ constructor(message, statusCode, details) {
14
+ super(message);
15
+ this.statusCode = statusCode;
16
+ this.details = details;
17
+ this.name = 'RedactApiError';
18
+ }
19
+ }
20
+ export class MissingCredentialsError extends Error {
21
+ constructor() {
22
+ super('No API key and/or wallet address configured.\n' +
23
+ 'Run `treza config init` to set both, or contact your Treza account team for onboarding.');
24
+ this.name = 'MissingCredentialsError';
25
+ }
26
+ }
27
+ export function resolveCreds(override) {
28
+ const apiKey = override?.apiKey || process.env.TREZA_API_KEY || getApiKey();
29
+ const walletAddress = getWalletAddress();
30
+ if (!apiKey || !walletAddress) {
31
+ throw new MissingCredentialsError();
32
+ }
33
+ return { apiKey, walletAddress, apiUrl: getApiUrl() };
34
+ }
35
+ function authHeaders(creds, extra = {}) {
36
+ return {
37
+ 'Content-Type': 'application/json',
38
+ Authorization: `Bearer ${creds.apiKey}`,
39
+ 'x-treza-wallet': creds.walletAddress,
40
+ ...extra,
41
+ };
42
+ }
43
+ async function request(creds, path, init = {}) {
44
+ const base = creds.apiUrl.replace(/\/$/, '');
45
+ let url = `${base}${path}`;
46
+ if (init.query) {
47
+ const qs = new URLSearchParams(init.query).toString();
48
+ if (qs)
49
+ url += `?${qs}`;
50
+ }
51
+ const res = await fetch(url, {
52
+ method: init.method || 'GET',
53
+ headers: authHeaders(creds),
54
+ body: init.body ? JSON.stringify(init.body) : undefined,
55
+ });
56
+ const text = await res.text();
57
+ let parsed;
58
+ try {
59
+ parsed = text ? JSON.parse(text) : {};
60
+ }
61
+ catch {
62
+ parsed = { raw: text };
63
+ }
64
+ if (!res.ok) {
65
+ const err = parsed?.error;
66
+ throw new RedactApiError(err || `Redaction API ${res.status}`, res.status, parsed);
67
+ }
68
+ return parsed;
69
+ }
70
+ export async function redactText(text, override) {
71
+ const creds = resolveCreds(override);
72
+ return request(creds, '/api/redact/run', {
73
+ method: 'POST',
74
+ body: { text },
75
+ });
76
+ }
77
+ export async function fetchAttestation(override) {
78
+ const creds = resolveCreds(override);
79
+ return request(creds, '/api/redact/attest', { method: 'GET' });
80
+ }
81
+ export async function getAuditLog(params = {}) {
82
+ const creds = resolveCreds({ apiKey: params.apiKey });
83
+ const query = {};
84
+ if (params.limit)
85
+ query.limit = String(params.limit);
86
+ if (params.since)
87
+ query.since = params.since;
88
+ return request(creds, '/api/redact/log', { method: 'GET', query });
89
+ }
90
+ /**
91
+ * Forward an OpenAI-shaped chat-completion request through the control plane
92
+ * and buffer the full (non-streaming) response.
93
+ */
94
+ export async function chatCompletionProxy(body, modelKey, options = {}) {
95
+ const creds = resolveCreds({ apiKey: options.apiKey });
96
+ const base = creds.apiUrl.replace(/\/$/, '');
97
+ const res = await fetch(`${base}/api/redact/chat/completions`, {
98
+ method: 'POST',
99
+ headers: authHeaders(creds, {
100
+ 'x-model-key': modelKey,
101
+ 'x-treza-rehydrate': options.rehydrate ? '1' : '0',
102
+ }),
103
+ // Buffered path always asks upstream for a non-streaming response.
104
+ body: JSON.stringify({ ...body, stream: false }),
105
+ });
106
+ const text = await res.text();
107
+ let parsed;
108
+ try {
109
+ parsed = text ? JSON.parse(text) : {};
110
+ }
111
+ catch {
112
+ parsed = { raw: text };
113
+ }
114
+ if (!res.ok) {
115
+ const err = parsed?.error;
116
+ throw new RedactApiError(err || `Proxy upstream ${res.status}`, res.status, parsed);
117
+ }
118
+ let rehydrationMap;
119
+ const headerMap = res.headers.get('x-treza-rehydration');
120
+ if (headerMap && options.rehydrate) {
121
+ try {
122
+ rehydrationMap = JSON.parse(headerMap);
123
+ }
124
+ catch {
125
+ rehydrationMap = undefined;
126
+ }
127
+ }
128
+ return {
129
+ status: res.status,
130
+ body: parsed,
131
+ rehydrationMap,
132
+ requestId: res.headers.get('x-treza-request-id') || undefined,
133
+ };
134
+ }
135
+ /**
136
+ * Streaming variant of {@link chatCompletionProxy}. Asks the control plane for
137
+ * an SSE stream (`stream: true`) and returns the raw upstream byte stream so the
138
+ * caller can pipe it straight to its own client. The proxy never rewrites the
139
+ * response body — placeholders are rehydrated client-side (see
140
+ * `applyStreamRehydration`) using the `x-treza-rehydration` map.
141
+ *
142
+ * Fails closed: if the request-side redaction errors the control plane returns a
143
+ * non-2xx JSON body and this throws a {@link RedactApiError} before any bytes
144
+ * reach the caller — nothing was forwarded upstream.
145
+ */
146
+ export async function chatCompletionProxyStream(body, modelKey, options = {}) {
147
+ const creds = resolveCreds({ apiKey: options.apiKey });
148
+ const base = creds.apiUrl.replace(/\/$/, '');
149
+ const res = await fetch(`${base}/api/redact/chat/completions`, {
150
+ method: 'POST',
151
+ headers: authHeaders(creds, {
152
+ 'x-model-key': modelKey,
153
+ 'x-treza-rehydrate': options.rehydrate ? '1' : '0',
154
+ }),
155
+ body: JSON.stringify({ ...body, stream: true }),
156
+ });
157
+ const contentType = res.headers.get('content-type') || '';
158
+ const requestId = res.headers.get('x-treza-request-id') || undefined;
159
+ let rehydrationMap;
160
+ const headerMap = res.headers.get('x-treza-rehydration');
161
+ if (headerMap && options.rehydrate) {
162
+ try {
163
+ rehydrationMap = JSON.parse(headerMap);
164
+ }
165
+ catch {
166
+ rehydrationMap = undefined;
167
+ }
168
+ }
169
+ // Non-SSE response (error, or upstream fell back to a buffered body): read it
170
+ // out and surface it as a normal JSON body so the caller forwards it verbatim.
171
+ if (!res.ok || !res.body || !contentType.includes('text/event-stream')) {
172
+ const text = await res.text();
173
+ let parsed;
174
+ try {
175
+ parsed = text ? JSON.parse(text) : {};
176
+ }
177
+ catch {
178
+ parsed = { raw: text };
179
+ }
180
+ if (!res.ok) {
181
+ const err = parsed?.error;
182
+ throw new RedactApiError(err || `Proxy upstream ${res.status}`, res.status, parsed);
183
+ }
184
+ return { status: res.status, stream: null, body: parsed, contentType, rehydrationMap, requestId };
185
+ }
186
+ return { status: res.status, stream: res.body, contentType, rehydrationMap, requestId };
187
+ }
188
+ const PLACEHOLDER_RE = /\[[A-Z][A-Z0-9_]*_\d+\]/g;
189
+ /**
190
+ * Stateful rehydrator for streamed text. A placeholder such as `[EMAIL_1]` can
191
+ * be split across SSE chunks, so we rehydrate against accumulated text rather
192
+ * than individual deltas: any trailing fragment that could still grow into a
193
+ * placeholder (an unclosed `[…`) is held back and prepended to the next delta.
194
+ *
195
+ * Returns the rehydrated, safe-to-emit text for this delta (possibly empty).
196
+ * Call {@link StreamRehydrator.flush} once the stream ends to drain the tail.
197
+ */
198
+ export class StreamRehydrator {
199
+ map;
200
+ carry = '';
201
+ constructor(map) {
202
+ this.map = map;
203
+ }
204
+ push(delta) {
205
+ const combined = this.carry + delta;
206
+ // Hold back from the last unclosed `[` — it may be the start of a placeholder
207
+ // whose closing `]` arrives in a later chunk.
208
+ const lastOpen = combined.lastIndexOf('[');
209
+ let safe;
210
+ if (lastOpen !== -1 && combined.indexOf(']', lastOpen) === -1) {
211
+ safe = combined.slice(0, lastOpen);
212
+ this.carry = combined.slice(lastOpen);
213
+ }
214
+ else {
215
+ safe = combined;
216
+ this.carry = '';
217
+ }
218
+ return this.rehydrate(safe);
219
+ }
220
+ flush() {
221
+ const out = this.rehydrate(this.carry);
222
+ this.carry = '';
223
+ return out;
224
+ }
225
+ rehydrate(text) {
226
+ if (!text)
227
+ return text;
228
+ return text.replace(PLACEHOLDER_RE, (m) => this.map[m] ?? m);
229
+ }
230
+ }
231
+ //# sourceMappingURL=redact-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact-api.js","sourceRoot":"","sources":["../../src/utils/redact-api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export { getRedactApiUrl } from './config.js';
2
+ export interface RedactCredentials {
3
+ apiKey: string;
4
+ apiUrl: string;
5
+ }
6
+ export declare class NoRedactKeyError extends Error {
7
+ constructor();
8
+ }
9
+ export interface RedactCredentialOptions {
10
+ apiKey?: string;
11
+ }
12
+ /**
13
+ * Resolve the redaction API credentials with the documented precedence:
14
+ * --api-key flag > TREZA_REDACT_API_KEY env var > config redactApiKey
15
+ *
16
+ * Throws NoRedactKeyError when no key is available anywhere. The thrown
17
+ * error has a friendly multiline message that command handlers can print
18
+ * directly to the user.
19
+ */
20
+ export declare function resolveRedactCredentials(options?: RedactCredentialOptions): RedactCredentials;
21
+ export declare function saveRedactApiKey(key: string): void;
22
+ //# sourceMappingURL=redact-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact-config.d.ts","sourceRoot":"","sources":["../../src/utils/redact-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,gBAAiB,SAAQ,KAAK;;CAO1C;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,uBAA4B,GAAG,iBAAiB,CAMjG;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAElD"}
@@ -0,0 +1,27 @@
1
+ import { getRedactApiKey, getRedactApiUrl, setRedactApiKey as persistKey } from './config.js';
2
+ export { getRedactApiUrl } from './config.js';
3
+ export class NoRedactKeyError extends Error {
4
+ constructor() {
5
+ super('No redaction API key configured. Get a free trial key with:\n treza redact trial\n\nOr set one explicitly:\n treza config set redactApiKey <key>');
6
+ this.name = 'NoRedactKeyError';
7
+ }
8
+ }
9
+ /**
10
+ * Resolve the redaction API credentials with the documented precedence:
11
+ * --api-key flag > TREZA_REDACT_API_KEY env var > config redactApiKey
12
+ *
13
+ * Throws NoRedactKeyError when no key is available anywhere. The thrown
14
+ * error has a friendly multiline message that command handlers can print
15
+ * directly to the user.
16
+ */
17
+ export function resolveRedactCredentials(options = {}) {
18
+ const apiKey = options.apiKey || process.env.TREZA_REDACT_API_KEY || getRedactApiKey();
19
+ if (!apiKey) {
20
+ throw new NoRedactKeyError();
21
+ }
22
+ return { apiKey, apiUrl: getRedactApiUrl() };
23
+ }
24
+ export function saveRedactApiKey(key) {
25
+ persistKey(key);
26
+ }
27
+ //# sourceMappingURL=redact-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact-config.js","sourceRoot":"","sources":["../../src/utils/redact-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9F,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAO9C,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC;QACE,KAAK,CACH,oJAAoJ,CACrJ,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAMD;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CAAC,UAAmC,EAAE;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,eAAe,EAAE,CAAC;IACvF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,gBAAgB,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,UAAU,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { RedactResult } from './redact-api.js';
2
+ export declare function redactTextLocal(text: string): Promise<RedactResult>;
3
+ //# sourceMappingURL=redact-local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact-local.d.ts","sourceRoot":"","sources":["../../src/utils/redact-local.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAgB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAyK7D,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAazE"}