Class: Scanner
Defined in: src/scan/scanner.ts:65
Client for AIRS scan operations (sync, async, and query).
Constructors
Constructor
new Scanner(): Scanner;
Returns
Scanner
Methods
syncScan()
syncScan(
aiProfile,
content,
opts?): Promise<objectOutputType<{
source: ZodOptional<ZodString>;
report_id: ZodString;
scan_id: ZodString;
tr_id: ZodOptional<ZodString>;
session_id: ZodOptional<ZodString>;
profile_id: ZodOptional<ZodString>;
profile_name: ZodOptional<ZodString>;
category: ZodString;
action: ZodString;
timeout: ZodBoolean;
error: ZodBoolean;
errors: ZodArray<ZodObject<{
content_type: ZodOptional<ZodString>;
feature: ZodOptional<ZodString>;
status: ZodOptional<ZodString>;
}, "passthrough", ZodTypeAny, objectOutputType<{
content_type: ZodOptional<ZodString>;
feature: ZodOptional<ZodString>;
status: ZodOptional<ZodString>;
}, ZodTypeAny, "passthrough">, objectInputType<{
content_type: ZodOptional<ZodString>;
feature: ZodOptional<ZodString>;
status: ZodOptional<ZodString>;
}, ZodTypeAny, "passthrough">>, "many">;
prompt_detected: ZodOptional<ZodObject<{
url_cats: ZodOptional<ZodBoolean>;
dlp: ZodOptional<ZodBoolean>;
injection: ZodOptional<ZodBoolean>;
toxic_content: ZodOptional<ZodBoolean>;
malicious_code: ZodOptional<ZodBoolean>;
source_code: ZodOptional<ZodBoolean>;
agent: ZodOptional<ZodBoolean>;
topic_violation: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
url_cats: ZodOptional<ZodBoolean>;
dlp: ZodOptional<ZodBoolean>;
injection: ZodOptional<ZodBoolean>;
toxic_content: ZodOptional<ZodBoolean>;
malicious_code: ZodOptional<ZodBoolean>;
source_code: ZodOptional<ZodBoolean>;
agent: ZodOptional<ZodBoolean>;
topic_violation: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">, objectInputType<{
url_cats: ZodOptional<ZodBoolean>;
dlp: ZodOptional<ZodBoolean>;
injection: ZodOptional<ZodBoolean>;
toxic_content: ZodOptional<ZodBoolean>;
malicious_code: ZodOptional<ZodBoolean>;
source_code: ZodOptional<ZodBoolean>;
agent: ZodOptional<ZodBoolean>;
topic_violation: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">>>;
response_detected: ZodOptional<ZodObject<{
url_cats: ZodOptional<ZodBoolean>;
dlp: ZodOptional<ZodBoolean>;
db_security: ZodOptional<ZodBoolean>;
toxic_content: ZodOptional<ZodBoolean>;
malicious_code: ZodOptional<ZodBoolean>;
agent: ZodOptional<ZodBoolean>;
ungrounded: ZodOptional<ZodBoolean>;
topic_violation: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
url_cats: ZodOptional<ZodBoolean>;
dlp: ZodOptional<ZodBoolean>;
db_security: ZodOptional<ZodBoolean>;
toxic_content: ZodOptional<ZodBoolean>;
malicious_code: ZodOptional<ZodBoolean>;
agent: ZodOptional<ZodBoolean>;
ungrounded: ZodOptional<ZodBoolean>;
topic_violation: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">, objectInputType<{
url_cats: ZodOptional<ZodBoolean>;
dlp: ZodOptional<ZodBoolean>;
db_security: ZodOptional<ZodBoolean>;
toxic_content: ZodOptional<ZodBoolean>;
malicious_code: ZodOptional<ZodBoolean>;
agent: ZodOptional<ZodBoolean>;
ungrounded: ZodOptional<ZodBoolean>;
topic_violation: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">>>;
prompt_masked_data: ZodOptional<ZodObject<{
data: ZodOptional<ZodString>;
pattern_detections: ZodOptional<ZodArray<ZodObject<{
pattern: ZodOptional<...>;
locations: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
pattern: ...;
locations: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
pattern: ...;
locations: ...;
}, ZodTypeAny, "passthrough">>, "many">>;
}, "passthrough", ZodTypeAny, objectOutputType<{
data: ZodOptional<ZodString>;
pattern_detections: ZodOptional<ZodArray<ZodObject<{
pattern: ...;
locations: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>, "many">>;
}, ZodTypeAny, "passthrough">, objectInputType<{
data: ZodOptional<ZodString>;
pattern_detections: ZodOptional<ZodArray<ZodObject<{
pattern: ...;
locations: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>, "many">>;
}, ZodTypeAny, "passthrough">>>;
response_masked_data: ZodOptional<ZodObject<{
data: ZodOptional<ZodString>;
pattern_detections: ZodOptional<ZodArray<ZodObject<{
pattern: ZodOptional<...>;
locations: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
pattern: ...;
locations: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
pattern: ...;
locations: ...;
}, ZodTypeAny, "passthrough">>, "many">>;
}, "passthrough", ZodTypeAny, objectOutputType<{
data: ZodOptional<ZodString>;
pattern_detections: ZodOptional<ZodArray<ZodObject<{
pattern: ...;
locations: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>, "many">>;
}, ZodTypeAny, "passthrough">, objectInputType<{
data: ZodOptional<ZodString>;
pattern_detections: ZodOptional<ZodArray<ZodObject<{
pattern: ...;
locations: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>, "many">>;
}, ZodTypeAny, "passthrough">>>;
prompt_detection_details: ZodOptional<ZodObject<{
topic_guardrails_details: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
topic_guardrails_details: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
topic_guardrails_details: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
}, ZodTypeAny, "passthrough">>>;
response_detection_details: ZodOptional<ZodObject<{
topic_guardrails_details: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
topic_guardrails_details: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
topic_guardrails_details: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
}, ZodTypeAny, "passthrough">>>;
tool_detected: ZodOptional<ZodObject<{
verdict: ZodOptional<ZodString>;
metadata: ZodOptional<ZodObject<{
ecosystem: ZodString;
method: ZodString;
server_name: ZodString;
tool_invoked: ZodOptional<ZodString>;
}, "passthrough", ZodTypeAny, objectOutputType<{
ecosystem: ZodString;
method: ZodString;
server_name: ZodString;
tool_invoked: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
ecosystem: ZodString;
method: ZodString;
server_name: ZodString;
tool_invoked: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>>;
summary: ZodOptional<ZodObject<{
detections: ZodObject<{
injection: ...;
url_cats: ...;
dlp: ...;
db_security: ...;
toxic_content: ...;
malicious_code: ...;
agent: ...;
topic_violation: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>;
threats: ZodArray<ZodString, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
detections: ZodObject<..., ..., ..., ..., ...>;
threats: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
detections: ZodObject<..., ..., ..., ..., ...>;
threats: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">>>;
input_detected: ZodOptional<ZodObject<{
detection_entries: ZodOptional<ZodArray<..., ...>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
detection_entries: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
detection_entries: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>>;
output_detected: ZodOptional<ZodObject<{
detection_entries: ZodOptional<ZodArray<..., ...>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
detection_entries: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
detection_entries: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
verdict: ZodOptional<ZodString>;
metadata: ZodOptional<ZodObject<{
ecosystem: ZodString;
method: ZodString;
server_name: ZodString;
tool_invoked: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
ecosystem: ...;
method: ...;
server_name: ...;
tool_invoked: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
ecosystem: ...;
method: ...;
server_name: ...;
tool_invoked: ...;
}, ZodTypeAny, "passthrough">>>;
summary: ZodOptional<ZodObject<{
detections: ZodObject<..., ..., ..., ..., ...>;
threats: ZodArray<..., ...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
detections: ...;
threats: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
detections: ...;
threats: ...;
}, ZodTypeAny, "passthrough">>>;
input_detected: ZodOptional<ZodObject<{
detection_entries: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
detection_entries: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
detection_entries: ...;
}, ZodTypeAny, "passthrough">>>;
output_detected: ZodOptional<ZodObject<{
detection_entries: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
detection_entries: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
detection_entries: ...;
}, ZodTypeAny, "passthrough">>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
verdict: ZodOptional<ZodString>;
metadata: ZodOptional<ZodObject<{
ecosystem: ZodString;
method: ZodString;
server_name: ZodString;
tool_invoked: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
ecosystem: ...;
method: ...;
server_name: ...;
tool_invoked: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
ecosystem: ...;
method: ...;
server_name: ...;
tool_invoked: ...;
}, ZodTypeAny, "passthrough">>>;
summary: ZodOptional<ZodObject<{
detections: ZodObject<..., ..., ..., ..., ...>;
threats: ZodArray<..., ...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
detections: ...;
threats: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
detections: ...;
threats: ...;
}, ZodTypeAny, "passthrough">>>;
input_detected: ZodOptional<ZodObject<{
detection_entries: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
detection_entries: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
detection_entries: ...;
}, ZodTypeAny, "passthrough">>>;
output_detected: ZodOptional<ZodObject<{
detection_entries: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
detection_entries: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
detection_entries: ...;
}, ZodTypeAny, "passthrough">>>;
}, ZodTypeAny, "passthrough">>>;
created_at: ZodOptional<ZodString>;
completed_at: ZodOptional<ZodString>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/scan/scanner.ts:104
Perform a synchronous content scan.
Parameters
| Parameter | Type | Description |
|---|---|---|
aiProfile | objectOutputType | AI security profile to scan against. |
content | Content | Content to scan. |
opts | SyncScanOptions | Optional transaction/session IDs, metadata, and per-call retry override. |
Returns
Promise<objectOutputType<{
source: ZodOptional<ZodString>;
report_id: ZodString;
scan_id: ZodString;
tr_id: ZodOptional<ZodString>;
session_id: ZodOptional<ZodString>;
profile_id: ZodOptional<ZodString>;
profile_name: ZodOptional<ZodString>;
category: ZodString;
action: ZodString;
timeout: ZodBoolean;
error: ZodBoolean;
errors: ZodArray<ZodObject<{
content_type: ZodOptional<ZodString>;
feature: ZodOptional<ZodString>;
status: ZodOptional<ZodString>;
}, "passthrough", ZodTypeAny, objectOutputType<{
content_type: ZodOptional<ZodString>;
feature: ZodOptional<ZodString>;
status: ZodOptional<ZodString>;
}, ZodTypeAny, "passthrough">, objectInputType<{
content_type: ZodOptional<ZodString>;
feature: ZodOptional<ZodString>;
status: ZodOptional<ZodString>;
}, ZodTypeAny, "passthrough">>, "many">;
prompt_detected: ZodOptional<ZodObject<{
url_cats: ZodOptional<ZodBoolean>;
dlp: ZodOptional<ZodBoolean>;
injection: ZodOptional<ZodBoolean>;
toxic_content: ZodOptional<ZodBoolean>;
malicious_code: ZodOptional<ZodBoolean>;
source_code: ZodOptional<ZodBoolean>;
agent: ZodOptional<ZodBoolean>;
topic_violation: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
url_cats: ZodOptional<ZodBoolean>;
dlp: ZodOptional<ZodBoolean>;
injection: ZodOptional<ZodBoolean>;
toxic_content: ZodOptional<ZodBoolean>;
malicious_code: ZodOptional<ZodBoolean>;
source_code: ZodOptional<ZodBoolean>;
agent: ZodOptional<ZodBoolean>;
topic_violation: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">, objectInputType<{
url_cats: ZodOptional<ZodBoolean>;
dlp: ZodOptional<ZodBoolean>;
injection: ZodOptional<ZodBoolean>;
toxic_content: ZodOptional<ZodBoolean>;
malicious_code: ZodOptional<ZodBoolean>;
source_code: ZodOptional<ZodBoolean>;
agent: ZodOptional<ZodBoolean>;
topic_violation: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">>>;
response_detected: ZodOptional<ZodObject<{
url_cats: ZodOptional<ZodBoolean>;
dlp: ZodOptional<ZodBoolean>;
db_security: ZodOptional<ZodBoolean>;
toxic_content: ZodOptional<ZodBoolean>;
malicious_code: ZodOptional<ZodBoolean>;
agent: ZodOptional<ZodBoolean>;
ungrounded: ZodOptional<ZodBoolean>;
topic_violation: ZodOptional<ZodBoolean>;
}, "passthrough", ZodTypeAny, objectOutputType<{
url_cats: ZodOptional<ZodBoolean>;
dlp: ZodOptional<ZodBoolean>;
db_security: ZodOptional<ZodBoolean>;
toxic_content: ZodOptional<ZodBoolean>;
malicious_code: ZodOptional<ZodBoolean>;
agent: ZodOptional<ZodBoolean>;
ungrounded: ZodOptional<ZodBoolean>;
topic_violation: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">, objectInputType<{
url_cats: ZodOptional<ZodBoolean>;
dlp: ZodOptional<ZodBoolean>;
db_security: ZodOptional<ZodBoolean>;
toxic_content: ZodOptional<ZodBoolean>;
malicious_code: ZodOptional<ZodBoolean>;
agent: ZodOptional<ZodBoolean>;
ungrounded: ZodOptional<ZodBoolean>;
topic_violation: ZodOptional<ZodBoolean>;
}, ZodTypeAny, "passthrough">>>;
prompt_masked_data: ZodOptional<ZodObject<{
data: ZodOptional<ZodString>;
pattern_detections: ZodOptional<ZodArray<ZodObject<{
pattern: ZodOptional<...>;
locations: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
pattern: ...;
locations: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
pattern: ...;
locations: ...;
}, ZodTypeAny, "passthrough">>, "many">>;
}, "passthrough", ZodTypeAny, objectOutputType<{
data: ZodOptional<ZodString>;
pattern_detections: ZodOptional<ZodArray<ZodObject<{
pattern: ...;
locations: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>, "many">>;
}, ZodTypeAny, "passthrough">, objectInputType<{
data: ZodOptional<ZodString>;
pattern_detections: ZodOptional<ZodArray<ZodObject<{
pattern: ...;
locations: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>, "many">>;
}, ZodTypeAny, "passthrough">>>;
response_masked_data: ZodOptional<ZodObject<{
data: ZodOptional<ZodString>;
pattern_detections: ZodOptional<ZodArray<ZodObject<{
pattern: ZodOptional<...>;
locations: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
pattern: ...;
locations: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
pattern: ...;
locations: ...;
}, ZodTypeAny, "passthrough">>, "many">>;
}, "passthrough", ZodTypeAny, objectOutputType<{
data: ZodOptional<ZodString>;
pattern_detections: ZodOptional<ZodArray<ZodObject<{
pattern: ...;
locations: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>, "many">>;
}, ZodTypeAny, "passthrough">, objectInputType<{
data: ZodOptional<ZodString>;
pattern_detections: ZodOptional<ZodArray<ZodObject<{
pattern: ...;
locations: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>, "many">>;
}, ZodTypeAny, "passthrough">>>;
prompt_detection_details: ZodOptional<ZodObject<{
topic_guardrails_details: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
topic_guardrails_details: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
topic_guardrails_details: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
}, ZodTypeAny, "passthrough">>>;
response_detection_details: ZodOptional<ZodObject<{
topic_guardrails_details: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
topic_guardrails_details: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
topic_guardrails_details: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
}, ZodTypeAny, "passthrough">>>;
tool_detected: ZodOptional<ZodObject<{
verdict: ZodOptional<ZodString>;
metadata: ZodOptional<ZodObject<{
ecosystem: ZodString;
method: ZodString;
server_name: ZodString;
tool_invoked: ZodOptional<ZodString>;
}, "passthrough", ZodTypeAny, objectOutputType<{
ecosystem: ZodString;
method: ZodString;
server_name: ZodString;
tool_invoked: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
ecosystem: ZodString;
method: ZodString;
server_name: ZodString;
tool_invoked: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>>;
summary: ZodOptional<ZodObject<{
detections: ZodObject<{
injection: ...;
url_cats: ...;
dlp: ...;
db_security: ...;
toxic_content: ...;
malicious_code: ...;
agent: ...;
topic_violation: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>;
threats: ZodArray<ZodString, "many">;
}, "passthrough", ZodTypeAny, objectOutputType<{
detections: ZodObject<..., ..., ..., ..., ...>;
threats: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
detections: ZodObject<..., ..., ..., ..., ...>;
threats: ZodArray<..., ...>;
}, ZodTypeAny, "passthrough">>>;
input_detected: ZodOptional<ZodObject<{
detection_entries: ZodOptional<ZodArray<..., ...>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
detection_entries: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
detection_entries: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>>;
output_detected: ZodOptional<ZodObject<{
detection_entries: ZodOptional<ZodArray<..., ...>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
detection_entries: ZodOptional<...>;
}, ZodTypeAny, "passthrough">, objectInputType<{
detection_entries: ZodOptional<...>;
}, ZodTypeAny, "passthrough">>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
verdict: ZodOptional<ZodString>;
metadata: ZodOptional<ZodObject<{
ecosystem: ZodString;
method: ZodString;
server_name: ZodString;
tool_invoked: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
ecosystem: ...;
method: ...;
server_name: ...;
tool_invoked: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
ecosystem: ...;
method: ...;
server_name: ...;
tool_invoked: ...;
}, ZodTypeAny, "passthrough">>>;
summary: ZodOptional<ZodObject<{
detections: ZodObject<..., ..., ..., ..., ...>;
threats: ZodArray<..., ...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
detections: ...;
threats: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
detections: ...;
threats: ...;
}, ZodTypeAny, "passthrough">>>;
input_detected: ZodOptional<ZodObject<{
detection_entries: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
detection_entries: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
detection_entries: ...;
}, ZodTypeAny, "passthrough">>>;
output_detected: ZodOptional<ZodObject<{
detection_entries: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
detection_entries: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
detection_entries: ...;
}, ZodTypeAny, "passthrough">>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
verdict: ZodOptional<ZodString>;
metadata: ZodOptional<ZodObject<{
ecosystem: ZodString;
method: ZodString;
server_name: ZodString;
tool_invoked: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
ecosystem: ...;
method: ...;
server_name: ...;
tool_invoked: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
ecosystem: ...;
method: ...;
server_name: ...;
tool_invoked: ...;
}, ZodTypeAny, "passthrough">>>;
summary: ZodOptional<ZodObject<{
detections: ZodObject<..., ..., ..., ..., ...>;
threats: ZodArray<..., ...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
detections: ...;
threats: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
detections: ...;
threats: ...;
}, ZodTypeAny, "passthrough">>>;
input_detected: ZodOptional<ZodObject<{
detection_entries: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
detection_entries: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
detection_entries: ...;
}, ZodTypeAny, "passthrough">>>;
output_detected: ZodOptional<ZodObject<{
detection_entries: ZodOptional<...>;
}, "passthrough", ZodTypeAny, objectOutputType<{
detection_entries: ...;
}, ZodTypeAny, "passthrough">, objectInputType<{
detection_entries: ...;
}, ZodTypeAny, "passthrough">>>;
}, ZodTypeAny, "passthrough">>>;
created_at: ZodOptional<ZodString>;
completed_at: ZodOptional<ZodString>;
}, ZodTypeAny, "passthrough">>
Scan response with verdict, action, and detection details.
Example
import { init, Scanner, Content } from '@cdot65/prisma-airs-sdk';
init(); // reads PANW_AI_SEC_API_KEY from env
const scanner = new Scanner();
const result = await scanner.syncScan(
{ profile_name: 'my-profile' },
new Content({ prompt: 'What is the capital of France?' }),
{ metadata: { app_name: 'my-app', app_user: 'user123', ai_model: 'gpt-4' } },
);
// result =>
// { report_id: 'R000...', scan_id: '550e...', category: 'benign',
// action: 'allow', timeout: false, error: false, errors: [] }
asyncScan()
asyncScan(scanObjects, opts?): Promise<objectOutputType<{
received: ZodString;
scan_id: ZodString;
report_id: ZodOptional<ZodString>;
source: ZodOptional<ZodString>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/scan/scanner.ts:183
Submit one batch of content for asynchronous scanning.
The call accepts 1–20 request objects and returns one batch receipt. A batch scan_id can fan
out to several unordered result rows. Correlate each row by (scan_id, req_id), never array
position or scan_id alone. The SDK preserves the server's row order and cardinality.
Setting numRetries: 0 guarantees one SDK fetch attempt, but cannot guarantee exactly-once
server submission after an ambiguous network or 5xx failure.
Parameters
| Parameter | Type | Description |
|---|---|---|
scanObjects | objectOutputType<{ req_id: ZodNumber; scan_req: ZodObject<{ tr_id: ZodOptional<ZodString>; session_id: ZodOptional<ZodString>; ai_profile: ZodEffects<ZodObject<{ profile_id: ZodOptional<ZodString>; profile_name: ZodOptional<ZodString>; }, "passthrough", ZodTypeAny, objectOutputType<{ profile_id: ZodOptional<ZodString>; profile_name: ZodOptional<ZodString>; }, ZodTypeAny, "passthrough">, objectInputType<{ profile_id: ZodOptional<ZodString>; profile_name: ZodOptional<ZodString>; }, ZodTypeAny, "passthrough">>, objectOutputType<{ profile_id: ZodOptional<ZodString>; profile_name: ZodOptional<ZodString>; }, ZodTypeAny, "passthrough">, objectInputType<{ profile_id: ZodOptional<ZodString>; profile_name: ZodOptional<ZodString>; }, ZodTypeAny, "passthrough">>; metadata: ZodOptional<ZodObject<{ app_name: ZodOptional<ZodString>; app_user: ZodOptional<ZodString>; ai_model: ZodOptional<ZodString>; user_ip: ZodOptional<ZodString>; agent_meta: ZodOptional<ZodObject<{ agent_id: ...; agent_version: ...; agent_arn: ...; }, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>>; }, "passthrough", ZodTypeAny, objectOutputType<{ app_name: ZodOptional<ZodString>; app_user: ZodOptional<ZodString>; ai_model: ZodOptional<ZodString>; user_ip: ZodOptional<ZodString>; agent_meta: ZodOptional<ZodObject<..., ..., ..., ..., ...>>; }, ZodTypeAny, "passthrough">, objectInputType<{ app_name: ZodOptional<ZodString>; app_user: ZodOptional<ZodString>; ai_model: ZodOptional<ZodString>; user_ip: ZodOptional<ZodString>; agent_meta: ZodOptional<ZodObject<..., ..., ..., ..., ...>>; }, ZodTypeAny, "passthrough">>>; contents: ZodArray<ZodObject<{ prompt: ZodOptional<ZodString>; response: ZodOptional<ZodString>; code_prompt: ZodOptional<ZodString>; code_response: ZodOptional<ZodString>; context: ZodOptional<ZodString>; tool_event: ZodOptional<ZodObject<{ metadata: ...; input: ...; output: ...; }, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>>; }, "passthrough", ZodTypeAny, objectOutputType<{ prompt: ZodOptional<ZodString>; response: ZodOptional<ZodString>; code_prompt: ZodOptional<ZodString>; code_response: ZodOptional<ZodString>; context: ZodOptional<ZodString>; tool_event: ZodOptional<ZodObject<..., ..., ..., ..., ...>>; }, ZodTypeAny, "passthrough">, objectInputType<{ prompt: ZodOptional<ZodString>; response: ZodOptional<ZodString>; code_prompt: ZodOptional<ZodString>; code_response: ZodOptional<ZodString>; context: ZodOptional<ZodString>; tool_event: ZodOptional<ZodObject<..., ..., ..., ..., ...>>; }, ZodTypeAny, "passthrough">>, "many">; }, "passthrough", ZodTypeAny, objectOutputType<{ tr_id: ZodOptional<ZodString>; session_id: ZodOptional<ZodString>; ai_profile: ZodEffects<ZodObject<{ profile_id: ZodOptional<ZodString>; profile_name: ZodOptional<ZodString>; }, "passthrough", ZodTypeAny, objectOutputType<{ profile_id: ZodOptional<...>; profile_name: ZodOptional<...>; }, ZodTypeAny, "passthrough">, objectInputType<{ profile_id: ZodOptional<...>; profile_name: ZodOptional<...>; }, ZodTypeAny, "passthrough">>, objectOutputType<{ profile_id: ZodOptional<ZodString>; profile_name: ZodOptional<ZodString>; }, ZodTypeAny, "passthrough">, objectInputType<{ profile_id: ZodOptional<ZodString>; profile_name: ZodOptional<ZodString>; }, ZodTypeAny, "passthrough">>; metadata: ZodOptional<ZodObject<{ app_name: ZodOptional<ZodString>; app_user: ZodOptional<ZodString>; ai_model: ZodOptional<ZodString>; user_ip: ZodOptional<ZodString>; agent_meta: ZodOptional<ZodObject<..., ..., ..., ..., ...>>; }, "passthrough", ZodTypeAny, objectOutputType<{ app_name: ZodOptional<...>; app_user: ZodOptional<...>; ai_model: ZodOptional<...>; user_ip: ZodOptional<...>; agent_meta: ZodOptional<...>; }, ZodTypeAny, "passthrough">, objectInputType<{ app_name: ZodOptional<...>; app_user: ZodOptional<...>; ai_model: ZodOptional<...>; user_ip: ZodOptional<...>; agent_meta: ZodOptional<...>; }, ZodTypeAny, "passthrough">>>; contents: ZodArray<ZodObject<{ prompt: ZodOptional<ZodString>; response: ZodOptional<ZodString>; code_prompt: ZodOptional<ZodString>; code_response: ZodOptional<ZodString>; context: ZodOptional<ZodString>; tool_event: ZodOptional<ZodObject<..., ..., ..., ..., ...>>; }, "passthrough", ZodTypeAny, objectOutputType<{ prompt: ZodOptional<...>; response: ZodOptional<...>; code_prompt: ZodOptional<...>; code_response: ZodOptional<...>; context: ZodOptional<...>; tool_event: ZodOptional<...>; }, ZodTypeAny, "passthrough">, objectInputType<{ prompt: ZodOptional<...>; response: ZodOptional<...>; code_prompt: ZodOptional<...>; code_response: ZodOptional<...>; context: ZodOptional<...>; tool_event: ZodOptional<...>; }, ZodTypeAny, "passthrough">>, "many">; }, ZodTypeAny, "passthrough">, objectInputType<{ tr_id: ZodOptional<ZodString>; session_id: ZodOptional<ZodString>; ai_profile: ZodEffects<ZodObject<{ profile_id: ZodOptional<ZodString>; profile_name: ZodOptional<ZodString>; }, "passthrough", ZodTypeAny, objectOutputType<{ profile_id: ZodOptional<...>; profile_name: ZodOptional<...>; }, ZodTypeAny, "passthrough">, objectInputType<{ profile_id: ZodOptional<...>; profile_name: ZodOptional<...>; }, ZodTypeAny, "passthrough">>, objectOutputType<{ profile_id: ZodOptional<ZodString>; profile_name: ZodOptional<ZodString>; }, ZodTypeAny, "passthrough">, objectInputType<{ profile_id: ZodOptional<ZodString>; profile_name: ZodOptional<ZodString>; }, ZodTypeAny, "passthrough">>; metadata: ZodOptional<ZodObject<{ app_name: ZodOptional<ZodString>; app_user: ZodOptional<ZodString>; ai_model: ZodOptional<ZodString>; user_ip: ZodOptional<ZodString>; agent_meta: ZodOptional<ZodObject<..., ..., ..., ..., ...>>; }, "passthrough", ZodTypeAny, objectOutputType<{ app_name: ZodOptional<...>; app_user: ZodOptional<...>; ai_model: ZodOptional<...>; user_ip: ZodOptional<...>; agent_meta: ZodOptional<...>; }, ZodTypeAny, "passthrough">, objectInputType<{ app_name: ZodOptional<...>; app_user: ZodOptional<...>; ai_model: ZodOptional<...>; user_ip: ZodOptional<...>; agent_meta: ZodOptional<...>; }, ZodTypeAny, "passthrough">>>; contents: ZodArray<ZodObject<{ prompt: ZodOptional<ZodString>; response: ZodOptional<ZodString>; code_prompt: ZodOptional<ZodString>; code_response: ZodOptional<ZodString>; context: ZodOptional<ZodString>; tool_event: ZodOptional<ZodObject<..., ..., ..., ..., ...>>; }, "passthrough", ZodTypeAny, objectOutputType<{ prompt: ZodOptional<...>; response: ZodOptional<...>; code_prompt: ZodOptional<...>; code_response: ZodOptional<...>; context: ZodOptional<...>; tool_event: ZodOptional<...>; }, ZodTypeAny, "passthrough">, objectInputType<{ prompt: ZodOptional<...>; response: ZodOptional<...>; code_prompt: ZodOptional<...>; code_response: ZodOptional<...>; context: ZodOptional<...>; tool_event: ZodOptional<...>; }, ZodTypeAny, "passthrough">>, "many">; }, ZodTypeAny, "passthrough">>; }, ZodTypeAny, "passthrough">[] | Array of scan objects (1–20 items), each with its own req_id. |
opts | ScanCallOptions | Optional per-call retry override. |
Returns
Promise<objectOutputType<{
received: ZodString;
scan_id: ZodString;
report_id: ZodOptional<ZodString>;
source: ZodOptional<ZodString>;
}, ZodTypeAny, "passthrough">>
One batch receipt containing the shared scan ID for later querying.
Example
import { init, Scanner } from '@cdot65/prisma-airs-sdk';
init();
const scanner = new Scanner();
const receipt = await scanner.asyncScan(
[
{
req_id: 1,
scan_req: {
ai_profile: { profile_name: 'my-profile' },
contents: [{ prompt: 'Tell me about machine learning.' }],
},
},
{
req_id: 2,
scan_req: {
ai_profile: { profile_name: 'my-profile' },
contents: [{ prompt: 'What are neural networks?' }],
},
},
],
{ numRetries: 0 },
);
// receipt =>
// { received: '2024-01-01T00:00:00Z', scan_id: '550e...' }
queryByScanIds()
queryByScanIds(scanIds, opts?): Promise<ScanIdResult[]>;
Defined in: src/scan/scanner.ts:235
Query scan results by scan IDs.
One scan ID can return several unordered rows. Correlate them using (scan_id, req_id). The
SDK does not sort, deduplicate, or collapse the response.
Parameters
| Parameter | Type | Description |
|---|---|---|
scanIds | string[] | Array of scan UUIDs (1–5 items). |
opts | ScanCallOptions | Optional per-call retry override. |
Returns
Promise<ScanIdResult[]>
Every scan-result row in server order, with status and response data.
Example
import { init, Scanner } from '@cdot65/prisma-airs-sdk';
init();
const scanner = new Scanner();
const results = await scanner.queryByScanIds([
'550e8400-e29b-41d4-a716-446655440000',
]);
// A single scan ID may produce multiple rows, for example req_id 2 then req_id 1.
for (const row of results) {
console.log(`${row.scan_id}:${row.req_id}`, row.status, row.result?.action);
}
queryByReportIds()
queryByReportIds(reportIds, opts?): Promise<objectOutputType<{
source: ZodOptional<ZodString>;
report_id: ZodOptional<ZodString>;
scan_id: ZodOptional<ZodString>;
req_id: ZodOptional<ZodNumber>;
transaction_id: ZodOptional<ZodString>;
session_id: ZodOptional<ZodString>;
detection_results: ZodOptional<ZodArray<ZodObject<{
data_type: ZodOptional<ZodString>;
detection_service: ZodOptional<ZodString>;
verdict: ZodOptional<ZodString>;
action: ZodOptional<ZodString>;
metadata: ZodOptional<ZodObject<{
score: ...;
confidence: ...;
ecosystem: ...;
method: ...;
server_name: ...;
tool_invoked: ...;
direction: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>>;
result_detail: ZodOptional<ZodObject<{
urlf_report: ...;
dlp_report: ...;
dbs_report: ...;
tc_report: ...;
mc_report: ...;
agent_report: ...;
topic_guardrails_report: ...;
cg_report: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
data_type: ZodOptional<ZodString>;
detection_service: ZodOptional<ZodString>;
verdict: ZodOptional<ZodString>;
action: ZodOptional<ZodString>;
metadata: ZodOptional<ZodObject<..., ..., ..., ..., ...>>;
result_detail: ZodOptional<ZodObject<..., ..., ..., ..., ...>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
data_type: ZodOptional<ZodString>;
detection_service: ZodOptional<ZodString>;
verdict: ZodOptional<ZodString>;
action: ZodOptional<ZodString>;
metadata: ZodOptional<ZodObject<..., ..., ..., ..., ...>>;
result_detail: ZodOptional<ZodObject<..., ..., ..., ..., ...>>;
}, ZodTypeAny, "passthrough">>, "many">>;
}, ZodTypeAny, "passthrough">[]>;
Defined in: src/scan/scanner.ts:286
Query detailed threat reports by report IDs.
One report ID can return several rows. Correlate them using (report_id, req_id). The SDK
preserves server order and cardinality without sorting or deduplicating.
Parameters
| Parameter | Type | Description |
|---|---|---|
reportIds | string[] | Array of report IDs (1–5 items). |
opts | ScanCallOptions | Optional per-call retry override. |
Returns
Promise<objectOutputType<{
source: ZodOptional<ZodString>;
report_id: ZodOptional<ZodString>;
scan_id: ZodOptional<ZodString>;
req_id: ZodOptional<ZodNumber>;
transaction_id: ZodOptional<ZodString>;
session_id: ZodOptional<ZodString>;
detection_results: ZodOptional<ZodArray<ZodObject<{
data_type: ZodOptional<ZodString>;
detection_service: ZodOptional<ZodString>;
verdict: ZodOptional<ZodString>;
action: ZodOptional<ZodString>;
metadata: ZodOptional<ZodObject<{
score: ...;
confidence: ...;
ecosystem: ...;
method: ...;
server_name: ...;
tool_invoked: ...;
direction: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>>;
result_detail: ZodOptional<ZodObject<{
urlf_report: ...;
dlp_report: ...;
dbs_report: ...;
tc_report: ...;
mc_report: ...;
agent_report: ...;
topic_guardrails_report: ...;
cg_report: ...;
}, "passthrough", ZodTypeAny, objectOutputType<..., ..., ...>, objectInputType<..., ..., ...>>>;
}, "passthrough", ZodTypeAny, objectOutputType<{
data_type: ZodOptional<ZodString>;
detection_service: ZodOptional<ZodString>;
verdict: ZodOptional<ZodString>;
action: ZodOptional<ZodString>;
metadata: ZodOptional<ZodObject<..., ..., ..., ..., ...>>;
result_detail: ZodOptional<ZodObject<..., ..., ..., ..., ...>>;
}, ZodTypeAny, "passthrough">, objectInputType<{
data_type: ZodOptional<ZodString>;
detection_service: ZodOptional<ZodString>;
verdict: ZodOptional<ZodString>;
action: ZodOptional<ZodString>;
metadata: ZodOptional<ZodObject<..., ..., ..., ..., ...>>;
result_detail: ZodOptional<ZodObject<..., ..., ..., ..., ...>>;
}, ZodTypeAny, "passthrough">>, "many">>;
}, ZodTypeAny, "passthrough">[]>
Every report row in server order, with detection details.
Example
import { init, Scanner } from '@cdot65/prisma-airs-sdk';
init();
const scanner = new Scanner();
const reports = await scanner.queryByReportIds(['R000...']);
for (const report of reports) {
console.log(`${report.report_id}:${report.req_id}`, report.detection_results);
}