promptguard-sdk 1.5.1 → 1.6.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 (58) hide show
  1. package/README.md +12 -12
  2. package/dist/auto.d.ts +1 -2
  3. package/dist/auto.d.ts.map +1 -1
  4. package/dist/auto.js +6 -19
  5. package/dist/auto.js.map +1 -1
  6. package/dist/client.d.ts +219 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +198 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/guard.d.ts +1 -1
  11. package/dist/guard.d.ts.map +1 -1
  12. package/dist/guard.js +6 -4
  13. package/dist/guard.js.map +1 -1
  14. package/dist/index.d.ts +4 -224
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +12 -202
  17. package/dist/index.js.map +1 -1
  18. package/dist/integrations/langchain.d.ts +1 -5
  19. package/dist/integrations/langchain.d.ts.map +1 -1
  20. package/dist/integrations/langchain.js +4 -23
  21. package/dist/integrations/langchain.js.map +1 -1
  22. package/dist/integrations/vercel-ai.d.ts +3 -3
  23. package/dist/integrations/vercel-ai.d.ts.map +1 -1
  24. package/dist/integrations/vercel-ai.js +6 -23
  25. package/dist/integrations/vercel-ai.js.map +1 -1
  26. package/dist/patches/anthropic.d.ts +2 -2
  27. package/dist/patches/anthropic.d.ts.map +1 -1
  28. package/dist/patches/anthropic.js +32 -74
  29. package/dist/patches/anthropic.js.map +1 -1
  30. package/dist/patches/base.d.ts +20 -0
  31. package/dist/patches/base.d.ts.map +1 -0
  32. package/dist/patches/base.js +63 -0
  33. package/dist/patches/base.js.map +1 -0
  34. package/dist/patches/bedrock.d.ts +1 -1
  35. package/dist/patches/bedrock.d.ts.map +1 -1
  36. package/dist/patches/bedrock.js +28 -69
  37. package/dist/patches/bedrock.js.map +1 -1
  38. package/dist/patches/cohere.d.ts +1 -1
  39. package/dist/patches/cohere.d.ts.map +1 -1
  40. package/dist/patches/cohere.js +16 -56
  41. package/dist/patches/cohere.js.map +1 -1
  42. package/dist/patches/google.d.ts +2 -2
  43. package/dist/patches/google.d.ts.map +1 -1
  44. package/dist/patches/google.js +17 -53
  45. package/dist/patches/google.js.map +1 -1
  46. package/dist/patches/openai.d.ts +2 -2
  47. package/dist/patches/openai.d.ts.map +1 -1
  48. package/dist/patches/openai.js +21 -64
  49. package/dist/patches/openai.js.map +1 -1
  50. package/dist/resolve.d.ts +9 -0
  51. package/dist/resolve.d.ts.map +1 -0
  52. package/dist/resolve.js +19 -0
  53. package/dist/resolve.js.map +1 -0
  54. package/dist/version.d.ts +2 -0
  55. package/dist/version.d.ts.map +1 -0
  56. package/dist/version.js +5 -0
  57. package/dist/version.js.map +1 -0
  58. package/package.json +4 -4
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # PromptGuard Node.js SDK
2
2
 
3
- Drop-in security for AI applications. Secure any GenAI app — regardless of framework or LLM provider.
3
+ Drop-in security for AI applications. Secure any GenAI app - regardless of framework or LLM provider.
4
4
 
5
5
  ## Installation
6
6
 
@@ -10,12 +10,12 @@ npm install promptguard-sdk
10
10
 
11
11
  ## Option 1: Auto-Instrumentation (Recommended)
12
12
 
13
- One line secures **every** LLM call in your application — no matter which framework you use.
13
+ One line secures **every** LLM call in your application - no matter which framework you use.
14
14
 
15
15
  ```typescript
16
16
  import { init } from 'promptguard-sdk';
17
17
 
18
- // Call once at startup — before any LLM SDK usage.
18
+ // Call once at startup - before any LLM SDK usage.
19
19
  init({ apiKey: 'pg_xxx' });
20
20
 
21
21
  // Everything below is now secured transparently.
@@ -46,10 +46,10 @@ Any framework built on these SDKs is automatically covered: **LangChain.js**, **
46
46
  ### Modes
47
47
 
48
48
  ```typescript
49
- // Enforce mode (default) — blocks policy violations.
49
+ // Enforce mode (default) - blocks policy violations.
50
50
  init({ apiKey: 'pg_xxx', mode: 'enforce' });
51
51
 
52
- // Monitor mode — logs threats but never blocks. Good for shadow deployment.
52
+ // Monitor mode - logs threats but never blocks. Good for shadow deployment.
53
53
  init({ apiKey: 'pg_xxx', mode: 'monitor' });
54
54
  ```
55
55
 
@@ -136,7 +136,7 @@ const result = await chain.invoke(
136
136
  );
137
137
  ```
138
138
 
139
- The callback handler provides rich context to PromptGuard — chain names, tool calls, agent steps — for more precise threat detection.
139
+ The callback handler provides rich context to PromptGuard - chain names, tool calls, agent steps - for more precise threat detection.
140
140
 
141
141
  ### Vercel AI SDK
142
142
 
@@ -202,7 +202,7 @@ const pg = new PromptGuard({
202
202
  });
203
203
  ```
204
204
 
205
- Retries use exponential backoff starting from `retryDelay`. Only transient errors (network timeouts, 5xx responses) are retried — client errors (4xx) fail immediately.
205
+ Retries use exponential backoff starting from `retryDelay`. Only transient errors (network timeouts, 5xx responses) are retried; client errors (4xx) fail immediately.
206
206
 
207
207
  ## Embeddings
208
208
 
@@ -263,12 +263,12 @@ console.log(`Total patterns: ${stats.total_patterns}`);
263
263
 
264
264
  | Option | Environment Variable | Default | Description |
265
265
  |--------|---------------------|---------|-------------|
266
- | `apiKey` | `PROMPTGUARD_API_KEY` | — | PromptGuard API key (required) |
266
+ | `apiKey` | `PROMPTGUARD_API_KEY` | - | PromptGuard API key (required) |
267
267
  | `baseUrl` | `PROMPTGUARD_BASE_URL` | `https://api.promptguard.co/api/v1` | API base URL |
268
- | `mode` | — | `"enforce"` | `"enforce"` or `"monitor"` |
269
- | `failOpen` | — | `true` | Allow calls when Guard API is unreachable |
270
- | `scanResponses` | — | `false` | Also scan LLM responses |
271
- | `timeout` | — | `10000` | HTTP timeout in milliseconds |
268
+ | `mode` | - | `"enforce"` | `"enforce"` or `"monitor"` |
269
+ | `failOpen` | - | `true` | Allow calls when Guard API is unreachable |
270
+ | `scanResponses` | - | `false` | Also scan LLM responses |
271
+ | `timeout` | - | `10000` | HTTP timeout in milliseconds |
272
272
 
273
273
  ## Error Handling
274
274
 
package/dist/auto.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * Auto-instrumentation for PromptGuard (Node.js).
3
3
  *
4
4
  * Call {@link init} once at application startup to automatically
5
- * secure **all** LLM calls made through popular SDKs — regardless of
5
+ * secure **all** LLM calls made through popular SDKs - regardless of
6
6
  * which framework (LangChain.js, Vercel AI SDK, etc.) sits on top.
7
7
  *
8
8
  * @example
@@ -36,5 +36,4 @@ export declare function getGuardClient(): GuardClient | null;
36
36
  export declare function getMode(): "enforce" | "monitor";
37
37
  export declare function isFailOpen(): boolean;
38
38
  export declare function shouldScanResponses(): boolean;
39
- export declare function isInitialized(): boolean;
40
39
  //# sourceMappingURL=auto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../src/auto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAkBrC,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mFAAmF;IACnF,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAC5B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,kDAAkD;IAClD,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,IAAI,CAkCpD;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAY/B;AAMD,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAEnD;AAED,wBAAgB,OAAO,IAAI,SAAS,GAAG,SAAS,CAE/C;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC"}
1
+ {"version":3,"file":"auto.d.ts","sourceRoot":"","sources":["../src/auto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAkBrC,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mFAAmF;IACnF,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAC5B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,kDAAkD;IAClD,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,IAAI,CAuBpD;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAU/B;AAMD,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAEnD;AAED,wBAAgB,OAAO,IAAI,SAAS,GAAG,SAAS,CAE/C;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C"}
package/dist/auto.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Auto-instrumentation for PromptGuard (Node.js).
4
4
  *
5
5
  * Call {@link init} once at application startup to automatically
6
- * secure **all** LLM calls made through popular SDKs — regardless of
6
+ * secure **all** LLM calls made through popular SDKs - regardless of
7
7
  * which framework (LangChain.js, Vercel AI SDK, etc.) sits on top.
8
8
  *
9
9
  * @example
@@ -25,8 +25,8 @@ exports.getGuardClient = getGuardClient;
25
25
  exports.getMode = getMode;
26
26
  exports.isFailOpen = isFailOpen;
27
27
  exports.shouldScanResponses = shouldScanResponses;
28
- exports.isInitialized = isInitialized;
29
28
  const guard_1 = require("./guard");
29
+ const resolve_1 = require("./resolve");
30
30
  // ---------------------------------------------------------------------------
31
31
  // Global state
32
32
  // ---------------------------------------------------------------------------
@@ -34,30 +34,22 @@ let guardClient = null;
34
34
  let mode = "enforce";
35
35
  let failOpen = true;
36
36
  let scanResponses = false;
37
- let initialized = false;
38
37
  const appliedPatches = [];
39
38
  function init(options = {}) {
40
- const resolvedKey = options.apiKey ?? process.env.PROMPTGUARD_API_KEY ?? "";
41
- if (!resolvedKey) {
42
- throw new Error("PromptGuard API key required. Pass apiKey or set the " +
43
- "PROMPTGUARD_API_KEY environment variable.");
44
- }
45
- const resolvedUrl = options.baseUrl ?? process.env.PROMPTGUARD_BASE_URL ?? "https://api.promptguard.co/api/v1";
39
+ const { apiKey, baseUrl } = (0, resolve_1.resolveCredentials)(options.apiKey, options.baseUrl);
46
40
  const resolvedMode = options.mode ?? "enforce";
47
41
  if (resolvedMode !== "enforce" && resolvedMode !== "monitor") {
48
42
  throw new Error("mode must be 'enforce' or 'monitor'");
49
43
  }
50
44
  guardClient = new guard_1.GuardClient({
51
- apiKey: resolvedKey,
52
- baseUrl: resolvedUrl,
45
+ apiKey,
46
+ baseUrl,
53
47
  timeout: options.timeout ?? 10000,
54
48
  });
55
49
  mode = resolvedMode;
56
50
  failOpen = options.failOpen ?? true;
57
51
  scanResponses = options.scanResponses ?? false;
58
- initialized = true;
59
52
  applyPatches();
60
- // eslint-disable-next-line no-console
61
53
  console.log(`[promptguard] auto-instrumentation initialised (mode=${mode}, fail_open=${failOpen})`);
62
54
  }
63
55
  function shutdown() {
@@ -71,7 +63,6 @@ function shutdown() {
71
63
  }
72
64
  appliedPatches.length = 0;
73
65
  guardClient = null;
74
- initialized = false;
75
66
  }
76
67
  // ---------------------------------------------------------------------------
77
68
  // Accessors (used by patches)
@@ -88,9 +79,6 @@ function isFailOpen() {
88
79
  function shouldScanResponses() {
89
80
  return scanResponses;
90
81
  }
91
- function isInitialized() {
92
- return initialized;
93
- }
94
82
  // ---------------------------------------------------------------------------
95
83
  // Patch orchestration
96
84
  // ---------------------------------------------------------------------------
@@ -104,14 +92,13 @@ function applyPatches() {
104
92
  ];
105
93
  for (const mod of patchModules) {
106
94
  try {
107
- // eslint-disable-next-line @typescript-eslint/no-var-requires
108
95
  const patchModule = require(mod.path);
109
96
  if (patchModule.apply()) {
110
97
  appliedPatches.push({ name: mod.name, revert: patchModule.revert });
111
98
  }
112
99
  }
113
100
  catch {
114
- // SDK not installed or incompatible — skip silently
101
+ // SDK not installed or incompatible - skip silently
115
102
  }
116
103
  }
117
104
  }
package/dist/auto.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"auto.js","sourceRoot":"","sources":["../src/auto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto.js","sourceRoot":"","sources":["../src/auto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,219 @@
1
+ /**
2
+ * PromptGuard proxy client — OpenAI-compatible API with built-in
3
+ * security scanning, retry logic, and namespace helpers.
4
+ */
5
+ interface PromptGuardConfig {
6
+ apiKey: string;
7
+ baseUrl?: string;
8
+ timeout?: number;
9
+ maxRetries?: number;
10
+ retryDelay?: number;
11
+ }
12
+ interface Message {
13
+ role: "system" | "user" | "assistant";
14
+ content: string;
15
+ }
16
+ interface ChatCompletionRequest {
17
+ model: string;
18
+ messages: Message[];
19
+ temperature?: number;
20
+ maxTokens?: number;
21
+ stream?: boolean;
22
+ [key: string]: unknown;
23
+ }
24
+ interface ChatCompletionResponse {
25
+ id: string;
26
+ object: string;
27
+ created: number;
28
+ model: string;
29
+ choices: Array<{
30
+ index: number;
31
+ message: Message;
32
+ finish_reason: string;
33
+ }>;
34
+ usage?: {
35
+ prompt_tokens: number;
36
+ completion_tokens: number;
37
+ total_tokens: number;
38
+ };
39
+ }
40
+ interface CompletionRequest {
41
+ model: string;
42
+ prompt: string;
43
+ temperature?: number;
44
+ maxTokens?: number;
45
+ [key: string]: unknown;
46
+ }
47
+ interface CompletionResponse {
48
+ id: string;
49
+ object: string;
50
+ created: number;
51
+ model: string;
52
+ choices: Array<{
53
+ text: string;
54
+ index: number;
55
+ finish_reason: string;
56
+ }>;
57
+ usage?: {
58
+ prompt_tokens: number;
59
+ completion_tokens: number;
60
+ total_tokens: number;
61
+ };
62
+ }
63
+ interface EmbeddingRequest {
64
+ model: string;
65
+ input: string | string[];
66
+ [key: string]: unknown;
67
+ }
68
+ interface EmbeddingResponse {
69
+ object: string;
70
+ data: Array<{
71
+ object: string;
72
+ embedding: number[];
73
+ index: number;
74
+ }>;
75
+ model: string;
76
+ usage?: {
77
+ prompt_tokens: number;
78
+ total_tokens: number;
79
+ };
80
+ }
81
+ interface SecurityScanResult {
82
+ blocked: boolean;
83
+ decision: "allow" | "block" | "redact";
84
+ reason?: string;
85
+ threatType?: string;
86
+ confidence?: number;
87
+ }
88
+ interface RedactResult {
89
+ original: string;
90
+ redacted: string;
91
+ piiFound: string[];
92
+ }
93
+ interface ScrapeResult {
94
+ url: string;
95
+ status: "safe" | "blocked";
96
+ content: string;
97
+ threats_detected: string[];
98
+ message?: string;
99
+ }
100
+ interface ToolValidationResult {
101
+ allowed: boolean;
102
+ risk_score: number;
103
+ risk_level: string;
104
+ reason: string;
105
+ warnings: string[];
106
+ blocked_reasons: string[];
107
+ }
108
+ interface RedTeamTestResult {
109
+ test_name: string;
110
+ prompt: string;
111
+ decision: string;
112
+ reason: string;
113
+ threat_type?: string;
114
+ confidence: number;
115
+ blocked: boolean;
116
+ details: Record<string, unknown>;
117
+ }
118
+ interface RedTeamSummary {
119
+ total_tests: number;
120
+ blocked: number;
121
+ allowed: number;
122
+ block_rate: number;
123
+ results: RedTeamTestResult[];
124
+ }
125
+ interface AutonomousRedTeamRequest {
126
+ budget?: number;
127
+ target_preset?: string;
128
+ enabled_detectors?: string[];
129
+ }
130
+ interface AutonomousRedTeamReport {
131
+ grade: string;
132
+ bypass_rate: number;
133
+ total_attempts: number;
134
+ bypasses_found: number;
135
+ bypasses: Array<Record<string, unknown>>;
136
+ recommendations: string[];
137
+ }
138
+ interface IntelligenceStats {
139
+ total_patterns: number;
140
+ by_category: Record<string, number>;
141
+ by_severity: Record<string, number>;
142
+ recent_discoveries: number;
143
+ }
144
+ declare class ChatCompletions {
145
+ private client;
146
+ constructor(client: PromptGuard);
147
+ create(params: ChatCompletionRequest): Promise<ChatCompletionResponse>;
148
+ }
149
+ declare class Chat {
150
+ completions: ChatCompletions;
151
+ constructor(client: PromptGuard);
152
+ }
153
+ declare class Completions {
154
+ private client;
155
+ constructor(client: PromptGuard);
156
+ create(params: CompletionRequest): Promise<CompletionResponse>;
157
+ }
158
+ declare class Embeddings {
159
+ private client;
160
+ constructor(client: PromptGuard);
161
+ create(params: EmbeddingRequest): Promise<EmbeddingResponse>;
162
+ }
163
+ declare class Security {
164
+ private client;
165
+ constructor(client: PromptGuard);
166
+ scan(content: string, type?: "prompt" | "response"): Promise<SecurityScanResult>;
167
+ redact(content: string, piiTypes?: string[]): Promise<RedactResult>;
168
+ }
169
+ declare class Scrape {
170
+ private client;
171
+ constructor(client: PromptGuard);
172
+ url(url: string, options?: {
173
+ renderJs?: boolean;
174
+ extractText?: boolean;
175
+ timeout?: number;
176
+ }): Promise<ScrapeResult>;
177
+ batch(urls: string[], options?: Record<string, unknown>): Promise<{
178
+ job_id: string;
179
+ }>;
180
+ }
181
+ declare class Agent {
182
+ private client;
183
+ constructor(client: PromptGuard);
184
+ validateTool(agentId: string, toolName: string, args: Record<string, unknown>, sessionId?: string): Promise<ToolValidationResult>;
185
+ stats(agentId: string): Promise<Record<string, unknown>>;
186
+ }
187
+ declare class RedTeam {
188
+ private client;
189
+ private base;
190
+ constructor(client: PromptGuard);
191
+ listTests(): Promise<{
192
+ total: number;
193
+ tests: Array<Record<string, unknown>>;
194
+ }>;
195
+ runTest(testName: string, targetPreset?: string): Promise<RedTeamTestResult>;
196
+ runAll(targetPreset?: string): Promise<RedTeamSummary>;
197
+ runCustom(prompt: string, targetPreset?: string): Promise<RedTeamTestResult>;
198
+ runAutonomous(options?: AutonomousRedTeamRequest): Promise<AutonomousRedTeamReport>;
199
+ intelligenceStats(): Promise<IntelligenceStats>;
200
+ }
201
+ export declare class PromptGuard {
202
+ private config;
203
+ chat: Chat;
204
+ completions: Completions;
205
+ embeddings: Embeddings;
206
+ security: Security;
207
+ scrape: Scrape;
208
+ agent: Agent;
209
+ redteam: RedTeam;
210
+ constructor(config: PromptGuardConfig);
211
+ request<T>(method: string, path: string, body?: unknown): Promise<T>;
212
+ }
213
+ export declare class PromptGuardError extends Error {
214
+ code: string;
215
+ statusCode: number;
216
+ constructor(message: string, code: string, statusCode: number);
217
+ }
218
+ export default PromptGuard;
219
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js ADDED
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ /**
3
+ * PromptGuard proxy client — OpenAI-compatible API with built-in
4
+ * security scanning, retry logic, and namespace helpers.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.PromptGuardError = exports.PromptGuard = void 0;
8
+ const resolve_1 = require("./resolve");
9
+ const version_1 = require("./version");
10
+ // ---------------------------------------------------------------------------
11
+ // Namespace classes
12
+ // ---------------------------------------------------------------------------
13
+ const RETRYABLE_STATUS_CODES = new Set([429, 500, 502, 503, 504]);
14
+ const PROXY_BASE_URL = `${resolve_1.DEFAULT_BASE_URL}/proxy`;
15
+ class ChatCompletions {
16
+ constructor(client) {
17
+ this.client = client;
18
+ }
19
+ async create(params) {
20
+ return this.client.request("POST", "/chat/completions", params);
21
+ }
22
+ }
23
+ class Chat {
24
+ constructor(client) {
25
+ this.completions = new ChatCompletions(client);
26
+ }
27
+ }
28
+ class Completions {
29
+ constructor(client) {
30
+ this.client = client;
31
+ }
32
+ async create(params) {
33
+ return this.client.request("POST", "/completions", params);
34
+ }
35
+ }
36
+ class Embeddings {
37
+ constructor(client) {
38
+ this.client = client;
39
+ }
40
+ async create(params) {
41
+ return this.client.request("POST", "/embeddings", params);
42
+ }
43
+ }
44
+ class Security {
45
+ constructor(client) {
46
+ this.client = client;
47
+ }
48
+ async scan(content, type = "prompt") {
49
+ return this.client.request("POST", "/security/scan", { content, type });
50
+ }
51
+ async redact(content, piiTypes) {
52
+ return this.client.request("POST", "/security/redact", {
53
+ content,
54
+ pii_types: piiTypes,
55
+ });
56
+ }
57
+ }
58
+ class Scrape {
59
+ constructor(client) {
60
+ this.client = client;
61
+ }
62
+ async url(url, options) {
63
+ return this.client.request("POST", "/scrape", {
64
+ url,
65
+ render_js: options?.renderJs ?? false,
66
+ extract_text: options?.extractText ?? true,
67
+ timeout: options?.timeout ?? 30,
68
+ });
69
+ }
70
+ async batch(urls, options) {
71
+ return this.client.request("POST", "/scrape/batch", { urls, ...options });
72
+ }
73
+ }
74
+ class Agent {
75
+ constructor(client) {
76
+ this.client = client;
77
+ }
78
+ async validateTool(agentId, toolName, args, sessionId) {
79
+ return this.client.request("POST", "/agent/validate-tool", {
80
+ agent_id: agentId,
81
+ tool_name: toolName,
82
+ arguments: args,
83
+ session_id: sessionId,
84
+ });
85
+ }
86
+ async stats(agentId) {
87
+ return this.client.request("GET", `/agent/${agentId}/stats`);
88
+ }
89
+ }
90
+ class RedTeam {
91
+ constructor(client) {
92
+ this.base = "/internal/redteam";
93
+ this.client = client;
94
+ }
95
+ async listTests() {
96
+ return this.client.request("GET", `${this.base}/tests`);
97
+ }
98
+ async runTest(testName, targetPreset = "default") {
99
+ return this.client.request("POST", `${this.base}/test/${testName}`, {
100
+ target_preset: targetPreset,
101
+ });
102
+ }
103
+ async runAll(targetPreset = "default") {
104
+ return this.client.request("POST", `${this.base}/test-all`, {
105
+ target_preset: targetPreset,
106
+ });
107
+ }
108
+ async runCustom(prompt, targetPreset = "default") {
109
+ return this.client.request("POST", `${this.base}/test-custom`, {
110
+ custom_prompt: prompt,
111
+ target_preset: targetPreset,
112
+ });
113
+ }
114
+ async runAutonomous(options) {
115
+ return this.client.request("POST", `${this.base}/autonomous`, {
116
+ budget: options?.budget ?? 100,
117
+ target_preset: options?.target_preset ?? "default",
118
+ ...(options?.enabled_detectors && { enabled_detectors: options.enabled_detectors }),
119
+ });
120
+ }
121
+ async intelligenceStats() {
122
+ return this.client.request("GET", `${this.base}/intelligence/stats`);
123
+ }
124
+ }
125
+ // ---------------------------------------------------------------------------
126
+ // PromptGuard client
127
+ // ---------------------------------------------------------------------------
128
+ class PromptGuard {
129
+ constructor(config) {
130
+ const { apiKey, baseUrl } = (0, resolve_1.resolveCredentials)(config.apiKey, config.baseUrl, PROXY_BASE_URL);
131
+ this.config = {
132
+ apiKey,
133
+ baseUrl,
134
+ timeout: config.timeout ?? 30000,
135
+ maxRetries: config.maxRetries ?? 3,
136
+ retryDelay: config.retryDelay ?? 1000,
137
+ };
138
+ this.chat = new Chat(this);
139
+ this.completions = new Completions(this);
140
+ this.embeddings = new Embeddings(this);
141
+ this.security = new Security(this);
142
+ this.scrape = new Scrape(this);
143
+ this.agent = new Agent(this);
144
+ this.redteam = new RedTeam(this);
145
+ }
146
+ async request(method, path, body) {
147
+ const url = `${this.config.baseUrl}${path}`;
148
+ let lastError;
149
+ for (let attempt = 0; attempt <= this.config.maxRetries; attempt++) {
150
+ try {
151
+ const response = await fetch(url, {
152
+ method,
153
+ headers: {
154
+ Authorization: `Bearer ${this.config.apiKey}`,
155
+ "Content-Type": "application/json",
156
+ "X-PromptGuard-SDK": "node",
157
+ "X-PromptGuard-Version": version_1.SDK_VERSION,
158
+ },
159
+ body: body ? JSON.stringify(body) : undefined,
160
+ signal: AbortSignal.timeout(this.config.timeout),
161
+ });
162
+ if (RETRYABLE_STATUS_CODES.has(response.status) && attempt < this.config.maxRetries) {
163
+ await new Promise((r) => setTimeout(r, this.config.retryDelay * 2 ** attempt));
164
+ continue;
165
+ }
166
+ if (!response.ok) {
167
+ const errorBody = (await response.json().catch(() => ({})));
168
+ throw new PromptGuardError(errorBody.error?.message || "Request failed", errorBody.error?.code || "UNKNOWN", response.status);
169
+ }
170
+ return response.json();
171
+ }
172
+ catch (err) {
173
+ if (err instanceof PromptGuardError)
174
+ throw err;
175
+ lastError = err;
176
+ if (attempt < this.config.maxRetries) {
177
+ await new Promise((r) => setTimeout(r, this.config.retryDelay * 2 ** attempt));
178
+ }
179
+ }
180
+ }
181
+ throw lastError ?? new PromptGuardError("Max retries exceeded", "MAX_RETRIES", 0);
182
+ }
183
+ }
184
+ exports.PromptGuard = PromptGuard;
185
+ // ---------------------------------------------------------------------------
186
+ // Error
187
+ // ---------------------------------------------------------------------------
188
+ class PromptGuardError extends Error {
189
+ constructor(message, code, statusCode) {
190
+ super(`${code}: ${message}`);
191
+ this.name = "PromptGuardError";
192
+ this.code = code;
193
+ this.statusCode = statusCode;
194
+ }
195
+ }
196
+ exports.PromptGuardError = PromptGuardError;
197
+ exports.default = PromptGuard;
198
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/guard.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Guard client — calls the PromptGuard Guard API for content scanning.
2
+ * Guard client - calls the PromptGuard Guard API for content scanning.
3
3
  *
4
4
  * Used internally by auto-instrumentation patches and framework
5
5
  * integrations. Sends messages to POST /api/v1/guard and returns
@@ -1 +1 @@
1
- {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,SAAS,EAAE,OAAO,GAAG,QAAQ,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,CAAC,EAAE,YAAY,EAAE,CAAA;IAClC,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;CACnB;AAMD,qBAAa,aAAa;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAA;IAC1C,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;gBAEd,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAU5C,IAAI,OAAO,IAAI,OAAO,CAErB;IACD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,OAAO,IAAI,OAAO,CAErB;CACF;AAMD,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;gBAEhB,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAKjD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;gBAEpB,QAAQ,EAAE,aAAa;CASpC;AAMD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;gBAEpB,MAAM,EAAE,iBAAiB;IAOrC,OAAO,CAAC,OAAO;IASf;;;;;OAKG;IACG,IAAI,CACR,QAAQ,EAAE,YAAY,EAAE,EACxB,SAAS,GAAE,OAAO,GAAG,QAAkB,EACvC,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,aAAa,CAAC;CA8B1B"}
1
+ {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,SAAS,EAAE,OAAO,GAAG,QAAQ,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,YAAY,CAAA;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,CAAC,EAAE,YAAY,EAAE,CAAA;IAClC,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;CACnB;AAMD,qBAAa,aAAa;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAA;IAC1C,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAA;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;gBAEd,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAU5C,IAAI,OAAO,IAAI,OAAO,CAErB;IACD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,OAAO,IAAI,OAAO,CAErB;CACF;AAMD,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;gBAEhB,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAKjD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAA;gBAEpB,QAAQ,EAAE,aAAa;CASpC;AAMD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;gBAEpB,MAAM,EAAE,iBAAiB;IAOrC,OAAO,CAAC,OAAO;IASf;;;;;OAKG;IACG,IAAI,CACR,QAAQ,EAAE,YAAY,EAAE,EACxB,SAAS,GAAE,OAAO,GAAG,QAAkB,EACvC,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,aAAa,CAAC;CA8B1B"}