@cdot65/prisma-airs-sdk 0.1.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.
- package/README.md +157 -0
- package/dist/index.cjs +812 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +2455 -0
- package/dist/index.d.ts +2455 -0
- package/dist/index.js +724 -0
- package/dist/index.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/constants.ts","../src/errors.ts","../src/configuration.ts","../src/utils.ts","../src/http-client.ts","../src/scan/scanner.ts","../src/scan/content.ts","../src/models/ai-profile.ts","../src/models/metadata.ts","../src/models/tool-event.ts","../src/models/scan-request.ts","../src/models/scan-response.ts","../src/models/prompt-detected.ts","../src/models/response-detected.ts","../src/models/async-scan.ts","../src/models/scan-id-result.ts","../src/models/threat-report.ts","../src/models/detection.ts","../src/models/dlp-report.ts","../src/models/urlf-report.ts","../src/models/error-response.ts"],"sourcesContent":["// Public API surface\nexport { init, globalConfiguration, type InitOptions } from './configuration.js';\nexport { Scanner, Content, type SyncScanOptions, type ContentOptions } from './scan/index.js';\nexport { AISecSDKException, ErrorType } from './errors.js';\nexport * from './models/index.js';\nexport * from './constants.js';\n","// src/constants.ts — mirrors Python SDK constants/base.py\n\nexport const HEADER_API_KEY = 'x-pan-token';\nexport const HEADER_AUTH_TOKEN = 'Authorization';\nexport const PAYLOAD_HASH = 'x-payload-hash';\nexport const BEARER = 'Bearer ';\n\nexport const DEFAULT_ENDPOINT = 'https://service.api.aisecurity.paloaltonetworks.com';\n\n// Environment variable names\nexport const AI_SEC_API_KEY = 'PANW_AI_SEC_API_KEY';\nexport const AI_SEC_API_TOKEN = 'PANW_AI_SEC_API_TOKEN';\nexport const AI_SEC_API_ENDPOINT = 'PANW_AI_SEC_API_ENDPOINT';\n\n// Content length limits (bytes)\nexport const MAX_CONTENT_PROMPT_LENGTH = 2 * 1024 * 1024; // 2 MB\nexport const MAX_CONTENT_RESPONSE_LENGTH = 2 * 1024 * 1024; // 2 MB\nexport const MAX_CONTENT_CONTEXT_LENGTH = 100 * 1024 * 1024; // 100 MB\n\n// Auth limits\nexport const MAX_API_KEY_LENGTH = 2048;\nexport const MAX_TOKEN_LENGTH = 2048;\n\n// String length limits\nexport const MAX_TRANSACTION_ID_STR_LENGTH = 100;\nexport const MAX_SESSION_ID_STR_LENGTH = 100;\nexport const MAX_SCAN_ID_STR_LENGTH = 36;\nexport const MAX_REPORT_ID_STR_LENGTH = 40;\nexport const MAX_AI_PROFILE_NAME_LENGTH = 100;\n\n// Batch / query limits\nexport const MAX_NUMBER_OF_SCAN_IDS = 5;\nexport const MAX_NUMBER_OF_REPORT_IDS = 5;\nexport const MAX_NUMBER_OF_BATCH_SCAN_OBJECTS = 5;\n\n// HTTP / retry\nexport const MAX_CONNECTION_POOL_SIZE = 100;\nexport const MAX_NUMBER_OF_RETRIES = 5;\nexport const HTTP_FORCE_RETRY_STATUS_CODES = [500, 502, 503, 504];\n\n// User-Agent (version injected at build time or read from package.json)\nexport const SDK_VERSION = '0.1.0';\nexport const USER_AGENT = `PAN-AIRS/${SDK_VERSION}-typescript-sdk`;\n\n// API paths\nexport const SYNC_SCAN_PATH = '/v1/scan/sync/request';\nexport const ASYNC_SCAN_PATH = '/v1/scan/async/request';\nexport const SCAN_RESULTS_PATH = '/v1/scan/results';\nexport const SCAN_REPORTS_PATH = '/v1/scan/reports';\n","// src/errors.ts — mirrors Python SDK exceptions.py\n\nexport enum ErrorType {\n SERVER_SIDE_ERROR = 'AISEC_SERVER_SIDE_ERROR',\n CLIENT_SIDE_ERROR = 'AISEC_CLIENT_SIDE_ERROR',\n USER_REQUEST_PAYLOAD_ERROR = 'AISEC_USER_REQUEST_PAYLOAD_ERROR',\n MISSING_VARIABLE = 'AISEC_MISSING_VARIABLE',\n AISEC_SDK_ERROR = 'AISEC_SDK_ERROR',\n}\n\nexport class AISecSDKException extends Error {\n public readonly errorType?: ErrorType;\n\n constructor(message: string, errorType?: ErrorType) {\n super(errorType ? `${errorType}:${message}` : message);\n this.name = 'AISecSDKException';\n this.errorType = errorType;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, AISecSDKException);\n }\n }\n}\n","// src/configuration.ts — mirrors Python SDK configuration.py\n\nimport {\n DEFAULT_ENDPOINT,\n AI_SEC_API_KEY,\n AI_SEC_API_TOKEN,\n AI_SEC_API_ENDPOINT,\n MAX_API_KEY_LENGTH,\n MAX_TOKEN_LENGTH,\n MAX_NUMBER_OF_RETRIES,\n} from './constants.js';\nimport { AISecSDKException, ErrorType } from './errors.js';\n\nexport interface InitOptions {\n apiKey?: string;\n apiToken?: string;\n apiEndpoint?: string;\n numRetries?: number;\n}\n\nclass Configuration {\n private _apiKey?: string;\n private _apiToken?: string;\n private _apiEndpoint: string = DEFAULT_ENDPOINT;\n private _numRetries: number = MAX_NUMBER_OF_RETRIES;\n private _initialized = false;\n\n get apiKey(): string | undefined {\n return this._apiKey;\n }\n get apiToken(): string | undefined {\n return this._apiToken;\n }\n get apiEndpoint(): string {\n return this._apiEndpoint;\n }\n get numRetries(): number {\n return this._numRetries;\n }\n get initialized(): boolean {\n return this._initialized;\n }\n\n init(opts: InitOptions = {}): void {\n // Resolve api key\n const apiKey = (opts.apiKey ?? process.env[AI_SEC_API_KEY] ?? '').trim() || undefined;\n const apiToken = (opts.apiToken ?? process.env[AI_SEC_API_TOKEN] ?? '').trim() || undefined;\n\n if (!apiKey && !apiToken) {\n throw new AISecSDKException(\n 'Either apiKey or apiToken must be provided (or set via environment variables)',\n ErrorType.MISSING_VARIABLE,\n );\n }\n\n if (apiKey && apiKey.length > MAX_API_KEY_LENGTH) {\n throw new AISecSDKException(\n `apiKey exceeds max length of ${MAX_API_KEY_LENGTH}`,\n ErrorType.USER_REQUEST_PAYLOAD_ERROR,\n );\n }\n\n if (apiToken && apiToken.length > MAX_TOKEN_LENGTH) {\n throw new AISecSDKException(\n `apiToken exceeds max length of ${MAX_TOKEN_LENGTH}`,\n ErrorType.USER_REQUEST_PAYLOAD_ERROR,\n );\n }\n\n this._apiKey = apiKey;\n this._apiToken = apiToken;\n\n // Resolve endpoint\n const endpoint = opts.apiEndpoint ?? process.env[AI_SEC_API_ENDPOINT] ?? DEFAULT_ENDPOINT;\n this._apiEndpoint = endpoint.replace(/\\/+$/, ''); // strip trailing slashes\n\n // Resolve retries\n if (opts.numRetries !== undefined) {\n if (opts.numRetries < 0 || opts.numRetries > MAX_NUMBER_OF_RETRIES) {\n throw new AISecSDKException(\n `numRetries must be between 0 and ${MAX_NUMBER_OF_RETRIES}`,\n ErrorType.USER_REQUEST_PAYLOAD_ERROR,\n );\n }\n this._numRetries = opts.numRetries;\n }\n\n this._initialized = true;\n }\n\n reset(): void {\n this._apiKey = undefined;\n this._apiToken = undefined;\n this._apiEndpoint = DEFAULT_ENDPOINT;\n this._numRetries = MAX_NUMBER_OF_RETRIES;\n this._initialized = false;\n }\n}\n\nexport const globalConfiguration = new Configuration();\n\nexport function init(opts: InitOptions = {}): void {\n globalConfiguration.init(opts);\n}\n","// src/utils.ts — UUID validation + HMAC payload hash\n\nimport { createHmac } from 'node:crypto';\n\nconst UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\n\nexport function isValidUuid(value: string): boolean {\n return UUID_RE.test(value);\n}\n\nexport function generatePayloadHash(payload: string, secret: string): string {\n return createHmac('sha256', secret).update(payload).digest('hex');\n}\n","// src/http-client.ts — internal fetch wrapper with retry\n\nimport { globalConfiguration } from './configuration.js';\nimport {\n HEADER_API_KEY,\n HEADER_AUTH_TOKEN,\n BEARER,\n PAYLOAD_HASH,\n USER_AGENT,\n HTTP_FORCE_RETRY_STATUS_CODES,\n} from './constants.js';\nimport { AISecSDKException, ErrorType } from './errors.js';\nimport { generatePayloadHash } from './utils.js';\n\nexport interface HttpRequestOptions {\n method: 'GET' | 'POST';\n path: string;\n body?: unknown;\n params?: Record<string, string>;\n}\n\nexport interface HttpResponse<T = unknown> {\n status: number;\n data: T;\n}\n\nfunction buildHeaders(): Record<string, string> {\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n 'User-Agent': USER_AGENT,\n };\n\n const cfg = globalConfiguration;\n if (cfg.apiToken) {\n headers[HEADER_AUTH_TOKEN] = `${BEARER}${cfg.apiToken}`;\n }\n if (cfg.apiKey) {\n headers[HEADER_API_KEY] = cfg.apiKey;\n }\n\n return headers;\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport async function httpRequest<T>(opts: HttpRequestOptions): Promise<HttpResponse<T>> {\n if (!globalConfiguration.initialized) {\n throw new AISecSDKException(\n 'SDK not initialized. Call init() before making requests.',\n ErrorType.MISSING_VARIABLE,\n );\n }\n\n const baseUrl = globalConfiguration.apiEndpoint;\n const url = new URL(opts.path, baseUrl);\n\n if (opts.params) {\n for (const [key, value] of Object.entries(opts.params)) {\n url.searchParams.set(key, value);\n }\n }\n\n const headers = buildHeaders();\n let bodyStr: string | undefined;\n if (opts.body !== undefined) {\n bodyStr = JSON.stringify(opts.body);\n // Add payload hash if api key is present\n if (globalConfiguration.apiKey) {\n headers[PAYLOAD_HASH] = generatePayloadHash(bodyStr, globalConfiguration.apiKey);\n }\n }\n\n const maxRetries = globalConfiguration.numRetries;\n let lastError: Error | undefined;\n\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n try {\n const response = await fetch(url.toString(), {\n method: opts.method,\n headers,\n body: bodyStr,\n });\n\n if (response.ok) {\n const data = (await response.json()) as T;\n return { status: response.status, data };\n }\n\n // Check if retryable\n if (HTTP_FORCE_RETRY_STATUS_CODES.includes(response.status) && attempt < maxRetries) {\n await sleep(Math.pow(2, attempt) * 1000);\n continue;\n }\n\n // Non-retryable error\n let errorMessage: string;\n try {\n const errorBody = await response.json();\n errorMessage =\n ((errorBody as Record<string, unknown>).message as string) ??\n ((errorBody as Record<string, Record<string, unknown>>).error?.message as string) ??\n `API error ${response.status}`;\n } catch {\n errorMessage = `API error ${response.status}`;\n }\n\n const errorType =\n response.status >= 500 ? ErrorType.SERVER_SIDE_ERROR : ErrorType.CLIENT_SIDE_ERROR;\n throw new AISecSDKException(errorMessage, errorType);\n } catch (err) {\n if (err instanceof AISecSDKException) {\n throw err;\n }\n lastError = err as Error;\n if (attempt < maxRetries) {\n await sleep(Math.pow(2, attempt) * 1000);\n continue;\n }\n }\n }\n\n throw new AISecSDKException(lastError?.message ?? 'Network error', ErrorType.CLIENT_SIDE_ERROR);\n}\n","// src/scan/scanner.ts — mirrors Python SDK scanner classes\n\nimport { httpRequest } from '../http-client.js';\nimport {\n SYNC_SCAN_PATH,\n ASYNC_SCAN_PATH,\n SCAN_RESULTS_PATH,\n SCAN_REPORTS_PATH,\n MAX_NUMBER_OF_SCAN_IDS,\n MAX_NUMBER_OF_REPORT_IDS,\n MAX_NUMBER_OF_BATCH_SCAN_OBJECTS,\n MAX_TRANSACTION_ID_STR_LENGTH,\n MAX_SESSION_ID_STR_LENGTH,\n} from '../constants.js';\nimport { AISecSDKException, ErrorType } from '../errors.js';\nimport { isValidUuid } from '../utils.js';\n\nimport type { AiProfile } from '../models/ai-profile.js';\nimport type { Metadata } from '../models/metadata.js';\nimport type { ScanResponse } from '../models/scan-response.js';\nimport type { AsyncScanObject, AsyncScanResponse } from '../models/async-scan.js';\nimport type { ScanIdResult } from '../models/scan-id-result.js';\nimport type { ThreatScanReport } from '../models/threat-report.js';\nimport { Content } from './content.js';\n\nexport interface SyncScanOptions {\n trId?: string;\n sessionId?: string;\n metadata?: Metadata;\n}\n\nexport class Scanner {\n async syncScan(\n aiProfile: AiProfile,\n content: Content,\n opts: SyncScanOptions = {},\n ): Promise<ScanResponse> {\n if (opts.trId && opts.trId.length > MAX_TRANSACTION_ID_STR_LENGTH) {\n throw new AISecSDKException(\n `trId exceeds max length of ${MAX_TRANSACTION_ID_STR_LENGTH}`,\n ErrorType.USER_REQUEST_PAYLOAD_ERROR,\n );\n }\n if (opts.sessionId && opts.sessionId.length > MAX_SESSION_ID_STR_LENGTH) {\n throw new AISecSDKException(\n `sessionId exceeds max length of ${MAX_SESSION_ID_STR_LENGTH}`,\n ErrorType.USER_REQUEST_PAYLOAD_ERROR,\n );\n }\n\n const body: Record<string, unknown> = {\n ai_profile: aiProfile,\n contents: [content.toJSON()],\n };\n if (opts.trId) body.tr_id = opts.trId;\n if (opts.sessionId) body.session_id = opts.sessionId;\n if (opts.metadata) body.metadata = opts.metadata;\n\n const res = await httpRequest<ScanResponse>({\n method: 'POST',\n path: SYNC_SCAN_PATH,\n body,\n });\n return res.data;\n }\n\n async asyncScan(scanObjects: AsyncScanObject[]): Promise<AsyncScanResponse> {\n if (scanObjects.length < 1) {\n throw new AISecSDKException(\n 'At least 1 scan object is required',\n ErrorType.USER_REQUEST_PAYLOAD_ERROR,\n );\n }\n if (scanObjects.length > MAX_NUMBER_OF_BATCH_SCAN_OBJECTS) {\n throw new AISecSDKException(\n `Max of ${MAX_NUMBER_OF_BATCH_SCAN_OBJECTS} scan objects allowed`,\n ErrorType.USER_REQUEST_PAYLOAD_ERROR,\n );\n }\n\n const res = await httpRequest<AsyncScanResponse>({\n method: 'POST',\n path: ASYNC_SCAN_PATH,\n body: scanObjects,\n });\n return res.data;\n }\n\n async queryByScanIds(scanIds: string[]): Promise<ScanIdResult[]> {\n if (scanIds.length < 1) {\n throw new AISecSDKException(\n 'At least 1 scan_id is required',\n ErrorType.USER_REQUEST_PAYLOAD_ERROR,\n );\n }\n if (scanIds.length > MAX_NUMBER_OF_SCAN_IDS) {\n throw new AISecSDKException(\n `Max of ${MAX_NUMBER_OF_SCAN_IDS} scan_ids allowed`,\n ErrorType.USER_REQUEST_PAYLOAD_ERROR,\n );\n }\n for (const id of scanIds) {\n if (!isValidUuid(id)) {\n throw new AISecSDKException(`Invalid scan_id: ${id}`, ErrorType.USER_REQUEST_PAYLOAD_ERROR);\n }\n }\n\n const res = await httpRequest<ScanIdResult[]>({\n method: 'GET',\n path: SCAN_RESULTS_PATH,\n params: { scan_ids: scanIds.join(',') },\n });\n return res.data;\n }\n\n async queryByReportIds(reportIds: string[]): Promise<ThreatScanReport[]> {\n if (reportIds.length < 1) {\n throw new AISecSDKException(\n 'At least 1 report_id is required',\n ErrorType.USER_REQUEST_PAYLOAD_ERROR,\n );\n }\n if (reportIds.length > MAX_NUMBER_OF_REPORT_IDS) {\n throw new AISecSDKException(\n `Max of ${MAX_NUMBER_OF_REPORT_IDS} report_ids allowed`,\n ErrorType.USER_REQUEST_PAYLOAD_ERROR,\n );\n }\n\n const res = await httpRequest<ThreatScanReport[]>({\n method: 'GET',\n path: SCAN_REPORTS_PATH,\n params: { report_ids: reportIds.join(',') },\n });\n return res.data;\n }\n}\n","// src/scan/content.ts — mirrors Python SDK scan/models/content.py\n\nimport { readFileSync } from 'node:fs';\nimport {\n MAX_CONTENT_PROMPT_LENGTH,\n MAX_CONTENT_RESPONSE_LENGTH,\n MAX_CONTENT_CONTEXT_LENGTH,\n} from '../constants.js';\nimport { AISecSDKException, ErrorType } from '../errors.js';\nimport type { ToolEvent } from '../models/tool-event.js';\nimport type { ScanRequestContentsInner } from '../models/scan-request.js';\n\nexport interface ContentOptions {\n prompt?: string;\n response?: string;\n context?: string;\n codePrompt?: string;\n codeResponse?: string;\n toolEvent?: ToolEvent;\n}\n\nexport class Content {\n private _prompt?: string;\n private _response?: string;\n private _context?: string;\n private _codePrompt?: string;\n private _codeResponse?: string;\n private _toolEvent?: ToolEvent;\n\n constructor(opts: ContentOptions) {\n if (\n !opts.prompt &&\n !opts.response &&\n !opts.codePrompt &&\n !opts.codeResponse &&\n !opts.toolEvent\n ) {\n throw new AISecSDKException(\n 'At least one of prompt, response, codePrompt, codeResponse, or toolEvent must be provided',\n ErrorType.USER_REQUEST_PAYLOAD_ERROR,\n );\n }\n\n if (opts.prompt !== undefined) this.prompt = opts.prompt;\n if (opts.response !== undefined) this.response = opts.response;\n if (opts.context !== undefined) this.context = opts.context;\n if (opts.codePrompt !== undefined) this.codePrompt = opts.codePrompt;\n if (opts.codeResponse !== undefined) this.codeResponse = opts.codeResponse;\n if (opts.toolEvent !== undefined) this._toolEvent = opts.toolEvent;\n }\n\n get prompt(): string | undefined {\n return this._prompt;\n }\n set prompt(value: string | undefined) {\n if (value !== undefined && Buffer.byteLength(value) > MAX_CONTENT_PROMPT_LENGTH) {\n throw new AISecSDKException(\n `prompt exceeds max length of ${MAX_CONTENT_PROMPT_LENGTH} bytes`,\n ErrorType.USER_REQUEST_PAYLOAD_ERROR,\n );\n }\n this._prompt = value;\n }\n\n get response(): string | undefined {\n return this._response;\n }\n set response(value: string | undefined) {\n if (value !== undefined && Buffer.byteLength(value) > MAX_CONTENT_RESPONSE_LENGTH) {\n throw new AISecSDKException(\n `response exceeds max length of ${MAX_CONTENT_RESPONSE_LENGTH} bytes`,\n ErrorType.USER_REQUEST_PAYLOAD_ERROR,\n );\n }\n this._response = value;\n }\n\n get context(): string | undefined {\n return this._context;\n }\n set context(value: string | undefined) {\n if (value !== undefined && Buffer.byteLength(value) > MAX_CONTENT_CONTEXT_LENGTH) {\n throw new AISecSDKException(\n `context exceeds max length of ${MAX_CONTENT_CONTEXT_LENGTH} bytes`,\n ErrorType.USER_REQUEST_PAYLOAD_ERROR,\n );\n }\n this._context = value;\n }\n\n get codePrompt(): string | undefined {\n return this._codePrompt;\n }\n set codePrompt(value: string | undefined) {\n if (value !== undefined && Buffer.byteLength(value) > MAX_CONTENT_PROMPT_LENGTH) {\n throw new AISecSDKException(\n `codePrompt exceeds max length of ${MAX_CONTENT_PROMPT_LENGTH} bytes`,\n ErrorType.USER_REQUEST_PAYLOAD_ERROR,\n );\n }\n this._codePrompt = value;\n }\n\n get codeResponse(): string | undefined {\n return this._codeResponse;\n }\n set codeResponse(value: string | undefined) {\n if (value !== undefined && Buffer.byteLength(value) > MAX_CONTENT_RESPONSE_LENGTH) {\n throw new AISecSDKException(\n `codeResponse exceeds max length of ${MAX_CONTENT_RESPONSE_LENGTH} bytes`,\n ErrorType.USER_REQUEST_PAYLOAD_ERROR,\n );\n }\n this._codeResponse = value;\n }\n\n get toolEvent(): ToolEvent | undefined {\n return this._toolEvent;\n }\n set toolEvent(value: ToolEvent | undefined) {\n this._toolEvent = value;\n }\n\n get length(): number {\n let total = 0;\n if (this._prompt) total += Buffer.byteLength(this._prompt);\n if (this._response) total += Buffer.byteLength(this._response);\n if (this._context) total += Buffer.byteLength(this._context);\n if (this._codePrompt) total += Buffer.byteLength(this._codePrompt);\n if (this._codeResponse) total += Buffer.byteLength(this._codeResponse);\n return total;\n }\n\n toJSON(): ScanRequestContentsInner {\n const obj: ScanRequestContentsInner = {};\n if (this._prompt !== undefined) obj.prompt = this._prompt;\n if (this._response !== undefined) obj.response = this._response;\n if (this._context !== undefined) obj.context = this._context;\n if (this._codePrompt !== undefined) obj.code_prompt = this._codePrompt;\n if (this._codeResponse !== undefined) obj.code_response = this._codeResponse;\n if (this._toolEvent !== undefined) obj.tool_event = this._toolEvent;\n return obj;\n }\n\n static fromJSON(json: ScanRequestContentsInner): Content {\n return new Content({\n prompt: json.prompt,\n response: json.response,\n context: json.context,\n codePrompt: json.code_prompt,\n codeResponse: json.code_response,\n toolEvent: json.tool_event,\n });\n }\n\n static fromJSONFile(filePath: string): Content {\n const raw = readFileSync(filePath, 'utf-8');\n const parsed: ScanRequestContentsInner = JSON.parse(raw);\n return Content.fromJSON(parsed);\n }\n}\n","import { z } from 'zod';\nimport { MAX_AI_PROFILE_NAME_LENGTH } from '../constants.js';\n\nexport const AiProfileSchema = z\n .object({\n profile_id: z.string().uuid().optional(),\n profile_name: z.string().max(MAX_AI_PROFILE_NAME_LENGTH).optional(),\n })\n .refine((d) => d.profile_id || d.profile_name, {\n message: 'Either profile_id or profile_name must be provided',\n });\n\nexport type AiProfile = z.infer<typeof AiProfileSchema>;\n","import { z } from 'zod';\n\nexport const AgentMetaSchema = z.object({\n agent_id: z.string().optional(),\n agent_version: z.string().optional(),\n agent_arn: z.string().optional(),\n});\n\nexport type AgentMeta = z.infer<typeof AgentMetaSchema>;\n\nexport const MetadataSchema = z.object({\n app_name: z.string().optional(),\n app_user: z.string().optional(),\n ai_model: z.string().optional(),\n user_ip: z.string().optional(),\n agent_meta: AgentMetaSchema.optional(),\n});\n\nexport type Metadata = z.infer<typeof MetadataSchema>;\n","import { z } from 'zod';\n\nexport const ToolEventMetadataSchema = z.object({\n ecosystem: z.string(),\n method: z.string(),\n server_name: z.string(),\n tool_invoked: z.string().optional(),\n});\n\nexport type ToolEventMetadata = z.infer<typeof ToolEventMetadataSchema>;\n\nexport const ToolEventSchema = z.object({\n metadata: ToolEventMetadataSchema.optional(),\n input: z.string().optional(),\n output: z.string().optional(),\n});\n\nexport type ToolEvent = z.infer<typeof ToolEventSchema>;\n","import { z } from 'zod';\nimport { MAX_TRANSACTION_ID_STR_LENGTH, MAX_SESSION_ID_STR_LENGTH } from '../constants.js';\nimport { AiProfileSchema } from './ai-profile.js';\nimport { MetadataSchema } from './metadata.js';\nimport { ToolEventSchema } from './tool-event.js';\n\nexport const ScanRequestContentsInnerSchema = z.object({\n prompt: z.string().optional(),\n response: z.string().optional(),\n code_prompt: z.string().optional(),\n code_response: z.string().optional(),\n context: z.string().optional(),\n tool_event: ToolEventSchema.optional(),\n});\n\nexport type ScanRequestContentsInner = z.infer<typeof ScanRequestContentsInnerSchema>;\n\nexport const ScanRequestSchema = z.object({\n tr_id: z.string().max(MAX_TRANSACTION_ID_STR_LENGTH).optional(),\n session_id: z.string().max(MAX_SESSION_ID_STR_LENGTH).optional(),\n ai_profile: AiProfileSchema,\n metadata: MetadataSchema.optional(),\n contents: z.array(ScanRequestContentsInnerSchema).min(1),\n});\n\nexport type ScanRequest = z.infer<typeof ScanRequestSchema>;\n","import { z } from 'zod';\nimport { PromptDetectedSchema, PromptDetectionDetailsSchema } from './prompt-detected.js';\nimport { ResponseDetectedSchema, ResponseDetectionDetailsSchema } from './response-detected.js';\nimport { ToolEventMetadataSchema } from './tool-event.js';\n\nexport const MaskedDataSchema = z.object({\n data: z.string().optional(),\n pattern_detections: z.array(z.record(z.unknown())).optional(),\n});\n\nexport type MaskedData = z.infer<typeof MaskedDataSchema>;\n\nexport const IODetectedSchema = z\n .object({\n url_cats: z.boolean().optional(),\n dlp: z.boolean().optional(),\n injection: z.boolean().optional(),\n toxic_content: z.boolean().optional(),\n malicious_code: z.boolean().optional(),\n })\n .passthrough();\n\nexport type IODetected = z.infer<typeof IODetectedSchema>;\n\nexport const ScanSummarySchema = z\n .object({\n verdict: z.string().optional(),\n action: z.string().optional(),\n })\n .passthrough();\n\nexport type ScanSummary = z.infer<typeof ScanSummarySchema>;\n\nexport const ToolDetectedSchema = z.object({\n verdict: z.string().optional(),\n metadata: ToolEventMetadataSchema.optional(),\n summary: ScanSummarySchema.optional(),\n input_detected: IODetectedSchema.optional(),\n output_detected: IODetectedSchema.optional(),\n});\n\nexport type ToolDetected = z.infer<typeof ToolDetectedSchema>;\n\nexport const ScanResponseSchema = z.object({\n source: z.string().optional(),\n report_id: z.string(),\n scan_id: z.string(),\n tr_id: z.string().optional(),\n session_id: z.string().optional(),\n profile_id: z.string().optional(),\n profile_name: z.string().optional(),\n category: z.string(),\n action: z.string(),\n prompt_detected: PromptDetectedSchema.optional(),\n response_detected: ResponseDetectedSchema.optional(),\n prompt_masked_data: MaskedDataSchema.optional(),\n response_masked_data: MaskedDataSchema.optional(),\n prompt_detection_details: PromptDetectionDetailsSchema.optional(),\n response_detection_details: ResponseDetectionDetailsSchema.optional(),\n tool_detected: ToolDetectedSchema.optional(),\n created_at: z.string().optional(),\n completed_at: z.string().optional(),\n});\n\nexport type ScanResponse = z.infer<typeof ScanResponseSchema>;\n","import { z } from 'zod';\n\nexport const PromptDetectionDetailsSchema = z.object({\n topic_guardrails_details: z.record(z.unknown()).optional(),\n});\n\nexport type PromptDetectionDetails = z.infer<typeof PromptDetectionDetailsSchema>;\n\nexport const PromptDetectedSchema = z.object({\n url_cats: z.boolean().optional(),\n dlp: z.boolean().optional(),\n injection: z.boolean().optional(),\n toxic_content: z.boolean().optional(),\n malicious_code: z.boolean().optional(),\n agent: z.boolean().optional(),\n topic_violation: z.boolean().optional(),\n});\n\nexport type PromptDetected = z.infer<typeof PromptDetectedSchema>;\n","import { z } from 'zod';\n\nexport const ResponseDetectionDetailsSchema = z.object({\n topic_guardrails_details: z.record(z.unknown()).optional(),\n});\n\nexport type ResponseDetectionDetails = z.infer<typeof ResponseDetectionDetailsSchema>;\n\nexport const ResponseDetectedSchema = z.object({\n url_cats: z.boolean().optional(),\n dlp: z.boolean().optional(),\n db_security: z.boolean().optional(),\n toxic_content: z.boolean().optional(),\n malicious_code: z.boolean().optional(),\n agent: z.boolean().optional(),\n ungrounded: z.boolean().optional(),\n topic_violation: z.boolean().optional(),\n});\n\nexport type ResponseDetected = z.infer<typeof ResponseDetectedSchema>;\n","import { z } from 'zod';\nimport { ScanRequestSchema } from './scan-request.js';\n\nexport const AsyncScanObjectSchema = z.object({\n req_id: z.number().int(),\n scan_req: ScanRequestSchema,\n});\n\nexport type AsyncScanObject = z.infer<typeof AsyncScanObjectSchema>;\n\nexport const AsyncScanResponseSchema = z.object({\n received: z.string(),\n scan_id: z.string(),\n report_id: z.string().optional(),\n source: z.string().optional(),\n});\n\nexport type AsyncScanResponse = z.infer<typeof AsyncScanResponseSchema>;\n","import { z } from 'zod';\nimport { ScanResponseSchema } from './scan-response.js';\n\nexport const ScanIdResultSchema = z.object({\n source: z.string().optional(),\n req_id: z.number().optional(),\n status: z.string().optional(),\n scan_id: z.string().optional(),\n result: ScanResponseSchema.optional(),\n});\n\nexport type ScanIdResult = z.infer<typeof ScanIdResultSchema>;\n","import { z } from 'zod';\nimport { DetectionServiceResultSchema } from './detection.js';\n\nexport const ThreatScanReportSchema = z.object({\n source: z.string().optional(),\n report_id: z.string().optional(),\n scan_id: z.string().optional(),\n req_id: z.number().optional(),\n transaction_id: z.string().optional(),\n session_id: z.string().optional(),\n detection_results: z.array(DetectionServiceResultSchema).optional(),\n});\n\nexport type ThreatScanReport = z.infer<typeof ThreatScanReportSchema>;\n","import { z } from 'zod';\nimport { DlpReportSchema } from './dlp-report.js';\nimport { UrlfEntrySchema } from './urlf-report.js';\n\nexport const DSDetailResultSchema = z.object({\n urlf_report: z.array(UrlfEntrySchema).optional(),\n dlp_report: DlpReportSchema.optional(),\n});\n\nexport type DSDetailResult = z.infer<typeof DSDetailResultSchema>;\n\nexport const DSResultMetadataSchema = z\n .object({\n score: z.number().optional(),\n confidence: z.string().optional(),\n })\n .passthrough();\n\nexport type DSResultMetadata = z.infer<typeof DSResultMetadataSchema>;\n\nexport const DetectionServiceResultSchema = z.object({\n data_type: z.string().optional(),\n detection_service: z.string().optional(),\n verdict: z.string().optional(),\n action: z.string().optional(),\n metadata: DSResultMetadataSchema.optional(),\n result_detail: DSDetailResultSchema.optional(),\n});\n\nexport type DetectionServiceResult = z.infer<typeof DetectionServiceResultSchema>;\n","import { z } from 'zod';\n\nexport const DlpReportSchema = z.object({\n dlp_report_id: z.string().optional(),\n dlp_profile_name: z.string().optional(),\n dlp_profile_id: z.string().optional(),\n dlp_profile_version: z.number().optional(),\n data_pattern_rule1_verdict: z.string().optional(),\n data_pattern_rule2_verdict: z.string().optional(),\n});\n\nexport type DlpReport = z.infer<typeof DlpReportSchema>;\n","import { z } from 'zod';\n\nexport const UrlfEntrySchema = z.object({\n url: z.string().optional(),\n risk_level: z.string().optional(),\n categories: z.array(z.string()).optional(),\n});\n\nexport type UrlfEntry = z.infer<typeof UrlfEntrySchema>;\n","import { z } from 'zod';\n\nexport const ErrorResponseSchema = z.object({\n status_code: z.number().optional(),\n message: z.string().optional(),\n error: z\n .object({\n message: z.string().optional(),\n })\n .passthrough()\n .optional(),\n retry_after: z\n .object({\n interval: z.number().optional(),\n unit: z.string().optional(),\n })\n .optional(),\n});\n\nexport type ErrorResponse = z.infer<typeof ErrorResponseSchema>;\n"],"mappings":"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","names":["ErrorType","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod","import_zod"]}
|