blackveil-dns 2.1.0 → 2.2.2

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/dist/index.d.ts CHANGED
@@ -160,7 +160,40 @@ declare function sanitizeDomain(input: string): string;
160
160
  declare function sanitizeInput(input: string, maxLength?: number): string;
161
161
 
162
162
  /** Server version — keep in sync with package.json */
163
- declare const SERVER_VERSION = "2.1.0";
163
+ declare const SERVER_VERSION = "2.2.2";
164
+
165
+ /**
166
+ * Map of every tool name to its Zod argument schema.
167
+ * Used for runtime validation in tools.ts and for inputSchema generation.
168
+ */
169
+ declare const TOOL_SCHEMA_MAP: Record<string, z.ZodTypeAny>;
170
+
171
+ type ToolGroup = 'email_auth' | 'infrastructure' | 'brand_threats' | 'dns_hygiene' | 'intelligence' | 'remediation' | 'meta';
172
+ type ToolTier = 'core' | 'protective' | 'hardening';
173
+ interface McpTool {
174
+ name: string;
175
+ description: string;
176
+ inputSchema: {
177
+ type: string;
178
+ properties: Record<string, unknown>;
179
+ required?: string[];
180
+ [key: string]: unknown;
181
+ };
182
+ annotations?: {
183
+ title?: string;
184
+ readOnlyHint?: boolean;
185
+ destructiveHint?: boolean;
186
+ idempotentHint?: boolean;
187
+ openWorldHint?: boolean;
188
+ };
189
+ /** Functional group for client-side tool discoverability. Not used in dispatch. */
190
+ group: ToolGroup;
191
+ /** Scoring tier from the three-tier model. Absent for non-scoring tools (meta/intelligence/remediation). */
192
+ tier?: ToolTier;
193
+ /** True when this tool is included in the scan_domain parallel orchestration. */
194
+ scanIncluded: boolean;
195
+ }
196
+ declare const TOOLS: McpTool[];
164
197
 
165
198
  /**
166
199
  * Check BIMI records for a domain.
@@ -192,6 +225,7 @@ declare function checkDmarc(domain: string, dnsOptions?: QueryDnsOptions): Promi
192
225
  * Check DNSSEC configuration for a domain.
193
226
  * Verifies the AD (Authenticated Data) flag, checks for DNSKEY/DS records,
194
227
  * and audits algorithm and digest type security.
228
+ * Augments results with dnssecSource metadata: 'domain_configured' or 'tld_inherited'.
195
229
  */
196
230
  declare function checkDnssec(domain: string, dnsOptions?: QueryDnsOptions): Promise<CheckResult>;
197
231
 
@@ -365,6 +399,14 @@ interface StructuredScanResult {
365
399
  penalty: number;
366
400
  narrative: string;
367
401
  }>;
402
+ /** Execution status per check category. 'completed' = ran normally, 'timeout' = per-check timeout, 'error' = threw. */
403
+ checkStatuses: Record<string, 'completed' | 'timeout' | 'error'>;
404
+ /** DNSSEC configuration source. 'domain_configured' = domain has own DNSKEY/DS; 'tld_inherited' = inherited from TLD registry. null = not yet available. */
405
+ dnssecSource: 'domain_configured' | 'tld_inherited' | null;
406
+ /** CDN provider detected from HTTP response headers. null when no CDN detected or check did not run. */
407
+ cdnProvider: string | null;
408
+ /** Email categories that scored 100 due to web-only/non-mail profile (no MX). Downstream consumers should treat these as N/A rather than perfect. */
409
+ notApplicableCategories: string[];
368
410
  timestamp: string;
369
411
  cached: boolean;
370
412
  }
@@ -410,4 +452,4 @@ interface ScanDomainResult {
410
452
  */
411
453
  declare function scanDomain(domain: string, kv?: KVNamespace, runtimeOptions?: ScanRuntimeOptions): Promise<ScanDomainResult>;
412
454
 
413
- export { type CaaRecord, type CheckMxOptions, type DnsAnswer, type DnsAuthority, DnsQueryError, type DohResponse, type ExplanationResult, type MaturityStage, type QueryDnsOptions, RecordType, type RecordTypeName, SERVER_VERSION, type ScanDomainResult, type ScanRuntimeOptions, type StructuredScanResult, buildStructuredScanResult, checkBimi, checkCaa, checkDkim, checkDmarc, checkDnssec, checkLookalikes, checkMtaSts, checkMx, checkNs, checkSpf, checkSsl, checkSubdomainTakeover, checkTlsrpt, explainFinding, formatExplanation, formatScanReport, parseCaaRecord, queryCaaRecords, queryDns, queryDnsRecords, queryMxRecords, queryTxtRecords, resolveImpactNarrative, sanitizeDomain, sanitizeInput, scanDomain, validateDomain };
455
+ export { type CaaRecord, type CheckMxOptions, type DnsAnswer, type DnsAuthority, DnsQueryError, type DohResponse, type ExplanationResult, type MaturityStage, type McpTool, type QueryDnsOptions, RecordType, type RecordTypeName, SERVER_VERSION, type ScanDomainResult, type ScanRuntimeOptions, type StructuredScanResult, TOOLS, TOOL_SCHEMA_MAP, type ToolGroup, type ToolTier, buildStructuredScanResult, checkBimi, checkCaa, checkDkim, checkDmarc, checkDnssec, checkLookalikes, checkMtaSts, checkMx, checkNs, checkSpf, checkSsl, checkSubdomainTakeover, checkTlsrpt, explainFinding, formatExplanation, formatScanReport, parseCaaRecord, queryCaaRecords, queryDns, queryDnsRecords, queryMxRecords, queryTxtRecords, resolveImpactNarrative, sanitizeDomain, sanitizeInput, scanDomain, validateDomain };