Class: Scanner
Defined in: src/scan/scanner.ts:42
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>;
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>;
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>;
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:81
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 and metadata. |
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>;
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>;
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>;
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): Promise<objectOutputType<{
received: ZodString;
scan_id: ZodString;
report_id: ZodOptional<ZodString>;
source: ZodOptional<ZodString>;
}, ZodTypeAny, "passthrough">>;
Defined in: src/scan/scanner.ts:141
Submit content for asynchronous scanning.
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–5 items). |
Returns
Promise<objectOutputType<{
received: ZodString;
scan_id: ZodString;
report_id: ZodOptional<ZodString>;
source: ZodOptional<ZodString>;
}, ZodTypeAny, "passthrough">>
Response containing scan IDs for later querying.
Example
import { init, Scanner } from '@cdot65/prisma-airs-sdk';
init();
const scanner = new Scanner();
const result = await scanner.asyncScan([
{
req_id: 1,
scan_req: {
ai_profile: { profile_name: 'my-profile' },
contents: [{ prompt: 'Tell me about machine learning.' }],
},
},
]);
// result =>
// { received: '2024-01-01T00:00:00Z', scan_id: '550e...' }
queryByScanIds()
queryByScanIds(scanIds): Promise<ScanIdResult[]>;
Defined in: src/scan/scanner.ts:184
Query scan results by scan IDs.
Parameters
| Parameter | Type | Description |
|---|---|---|
scanIds | string[] | Array of scan UUIDs (1–5 items). |
Returns
Promise<ScanIdResult[]>
Array of scan results 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',
]);
// results =>
// [{ scan_id: '550e8400-e29b-41d4-a716-446655440000', status: 'complete',
// result: { category: 'benign', action: 'allow', ... } }]
queryByReportIds()
queryByReportIds(reportIds): 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:230
Query detailed threat reports by report IDs.
Parameters
| Parameter | Type | Description |
|---|---|---|
reportIds | string[] | Array of report IDs (1–5 items). |
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">[]>
Array of threat scan reports with detection details.
Example
import { init, Scanner } from '@cdot65/prisma-airs-sdk';
init();
const scanner = new Scanner();
const reports = await scanner.queryByReportIds(['R000...']);
// reports =>
// [{ report_id: 'R000...', scan_id: '550e...',
// detection_results: [{ detection_service: 'pi', verdict: 'benign', action: 'allow' }] }]