agentshield-sdk 7.2.0 → 7.2.1

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/types/index.d.ts CHANGED
@@ -72,6 +72,21 @@ export declare function expressMiddleware(options?: MiddlewareOptions): (req: an
72
72
  export declare function wrapAgent(agentFn: Function, options?: ShieldOptions): Function;
73
73
  export declare function shieldTools(tools: any[], options?: ShieldOptions): any[];
74
74
 
75
+ export interface RateLimitMiddlewareOptions {
76
+ maxRequests?: number;
77
+ windowMs?: number;
78
+ maxThreatsPerWindow?: number;
79
+ onLimit?: (info: { count: number; windowMs: number }) => void;
80
+ onAnomaly?: (info: { threatCount: number; windowMs: number }) => void;
81
+ includeBackpressureHeaders?: boolean;
82
+ }
83
+
84
+ export declare function rateLimitMiddleware(options?: RateLimitMiddlewareOptions): (req: any, res: any, next: any) => void;
85
+
86
+ export interface ShieldMiddlewareOptions extends MiddlewareOptions, RateLimitMiddlewareOptions {}
87
+
88
+ export declare function shieldMiddleware(options?: ShieldMiddlewareOptions): (req: any, res: any, next: any) => void;
89
+
75
90
  // =========================================================================
76
91
  // Circuit Breaker
77
92
  // =========================================================================
@@ -938,6 +953,18 @@ export declare class TokenStreamScanner {
938
953
  flush(): { threats: Threat[] };
939
954
  }
940
955
 
956
+ export declare class StreamBuffer {
957
+ constructor(options?: { windowSize?: number });
958
+ push(token: string): void;
959
+ getWindow(): string;
960
+ getFullText(): string;
961
+ lastN(n: number): string;
962
+ clear(): void;
963
+ }
964
+
965
+ export declare function createStreamWrapper(stream: any, options?: { sensitivity?: string; extractText?: (chunk: any) => string; onThreat?: (threat: Threat) => void }): any;
966
+ export declare function scanAsyncIterator(iterator: AsyncIterable<any>, options?: { sensitivity?: string; extractText?: (chunk: any) => string; onThreat?: (threat: Threat) => void }): Promise<{ threats: Threat[]; text: string }>;
967
+
941
968
  // =========================================================================
942
969
  // Plugin System
943
970
  // =========================================================================
@@ -1132,6 +1159,54 @@ export declare class MCPToolHandler {
1132
1159
  handleToolCall(name: string, args: any): Promise<any>;
1133
1160
  }
1134
1161
 
1162
+ // =========================================================================
1163
+ // MCP Bridge (v6.0)
1164
+ // =========================================================================
1165
+
1166
+ export declare class MCPBridge {
1167
+ constructor(options?: { scanner?: Function; allowedTools?: string[]; blockedTools?: string[]; scanInputs?: boolean; scanOutputs?: boolean; maxToolCallsPerMinute?: number });
1168
+ wrapToolCall(toolName: string, args?: object): { allowed: boolean; threats: Threat[]; sanitizedArgs: object; reason: string | null };
1169
+ wrapToolResult(toolName: string, result: any): { safe: boolean; threats: Threat[]; sanitizedResult?: any };
1170
+ validateToolSchema(schema?: object): { valid: boolean; issues: string[] };
1171
+ getStats(): object;
1172
+ }
1173
+
1174
+ export declare class MCPToolPolicy {
1175
+ constructor(rules?: Array<{ id?: string; tool: string; action: string; conditions?: object }>);
1176
+ evaluate(toolName: string, args?: object, context?: object): { action: string; rule: string | null };
1177
+ addRule(rule: object): void;
1178
+ removeRule(ruleId: string): boolean;
1179
+ toJSON(): object;
1180
+ }
1181
+
1182
+ export declare class MCPSessionGuard {
1183
+ constructor(sessionId: string, options?: { maxToolCalls?: number; maxTokenBudget?: number; ttlMs?: number });
1184
+ trackToolCall(toolName: string, args?: object): { allowed: boolean; reason?: string };
1185
+ checkBudget(): { withinBudget: boolean; remaining: number };
1186
+ getSessionReport(): object;
1187
+ reset(): void;
1188
+ }
1189
+
1190
+ export declare class MCPResourceScanner {
1191
+ constructor(options?: { scanner?: Function });
1192
+ scanResource(uri: string, content: string, mimeType?: string): { safe: boolean; threats: Threat[]; uri: string };
1193
+ scanPromptTemplate(template: string): { safe: boolean; threats: Threat[] };
1194
+ }
1195
+
1196
+ export declare function createMCPMiddleware(options?: { scanner?: Function; allowedTools?: string[]; blockedTools?: string[]; scanInputs?: boolean; scanOutputs?: boolean }): {
1197
+ onToolCall(toolName: string, args: object): { allowed: boolean; threats: Threat[]; sanitizedArgs: object; reason: string | null };
1198
+ onToolResult(toolName: string, result: any): { safe: boolean; threats: Threat[] };
1199
+ onResourceAccess(uri: string, content: string, mimeType?: string): { safe: boolean; threats: Threat[] };
1200
+ getBridge(): MCPBridge;
1201
+ };
1202
+
1203
+ // =========================================================================
1204
+ // MCP SDK Integration (v7.1)
1205
+ // =========================================================================
1206
+
1207
+ export declare function shieldMCPServer(server: any, options?: { scanInputs?: boolean; scanOutputs?: boolean; blockOnThreat?: boolean; sensitivity?: string; onThreat?: (info: any) => void }): any;
1208
+ export declare function createMCPSecurityLayer(options?: { scanInputs?: boolean; scanOutputs?: boolean; blockOnThreat?: boolean; sensitivity?: string }): object;
1209
+
1135
1210
  // =========================================================================
1136
1211
  // CTF
1137
1212
  // =========================================================================
@@ -1208,6 +1283,236 @@ export declare class CommunityPatterns {
1208
1283
  getVersion(): string;
1209
1284
  }
1210
1285
 
1286
+ // =========================================================================
1287
+ // OWASP LLM Top 10 v2025 (v6.0)
1288
+ // =========================================================================
1289
+
1290
+ export declare class OWASPCoverageMatrix {
1291
+ constructor(options?: { agentShield?: AgentShield; organizationName?: string });
1292
+ getCoverage(): object;
1293
+ getCoverageScore(): { score: number; covered: number; total: number };
1294
+ getGaps(): Array<{ id: string; name: string; recommendation: string }>;
1295
+ getRecommendations(): Array<{ id: string; priority: string; action: string }>;
1296
+ validateCompliance(scanResults?: object): object;
1297
+ getCoverageReport(format?: 'text' | 'markdown'): string;
1298
+ }
1299
+
1300
+ // =========================================================================
1301
+ // NIST AI RMF Mapping (v6.0)
1302
+ // =========================================================================
1303
+
1304
+ export declare class NISTMapper {
1305
+ constructor(options?: { organizationName?: string; systemName?: string; riskLevel?: 'low' | 'medium' | 'high' | 'critical' });
1306
+ getCoverageMap(): object;
1307
+ getCoverageScore(): { score: number; covered: number; total: number };
1308
+ getGaps(): Array<{ id: string; name: string; recommendation: string }>;
1309
+ generateProfile(systemDescription?: string): object;
1310
+ generateReport(format?: 'text' | 'markdown'): string;
1311
+ }
1312
+
1313
+ export declare class AIBOMGenerator {
1314
+ constructor(options?: { format?: 'spdx' | 'cyclonedx' | 'custom'; organizationName?: string; systemName?: string });
1315
+ addComponent(component: object): void;
1316
+ addModel(model: object): void;
1317
+ addDataset(dataset: object): void;
1318
+ addService(service: object): void;
1319
+ generate(): object;
1320
+ validate(): { valid: boolean; errors: string[] };
1321
+ toJSON(): object;
1322
+ toSPDX(): object;
1323
+ toCycloneDX(): object;
1324
+ }
1325
+
1326
+ export declare class NISTComplianceChecker {
1327
+ constructor(nistMapper: NISTMapper);
1328
+ checkAgainstProfile(profile: object, currentState?: object): object;
1329
+ generateActionPlan(): object;
1330
+ generateAuditArtifact(format?: 'json' | 'text'): any;
1331
+ }
1332
+
1333
+ // =========================================================================
1334
+ // EU AI Act Compliance (v6.0)
1335
+ // =========================================================================
1336
+
1337
+ export declare class RiskClassifier {
1338
+ constructor(options?: { sector?: string; purpose?: string; dataTypes?: string[] });
1339
+ classify(systemDescription?: string): { riskLevel: string; category: string; articles: string[] };
1340
+ getApplicableArticles(): object[];
1341
+ generateRiskAssessment(): object;
1342
+ }
1343
+
1344
+ export declare class ConformityAssessment {
1345
+ constructor(systemInfo?: { name?: string; provider?: string; version?: string });
1346
+ addEvidence(reqArticle: string, evidence: string): void;
1347
+ checkRequirement(reqArticle: string): object;
1348
+ getStatus(): object;
1349
+ generateReport(format?: 'json' | 'text'): any;
1350
+ generateTechnicalDocumentation(): object;
1351
+ generateDeclarationOfConformity(): object;
1352
+ }
1353
+
1354
+ export declare class TransparencyReporter {
1355
+ constructor(options?: { providerName?: string });
1356
+ generateModelCard(modelInfo?: object): object;
1357
+ generateTrainingDataSummary(dataInfo?: object): object;
1358
+ generateCopyrightPolicy(): object;
1359
+ generateEnergyReport(metrics?: object): object;
1360
+ }
1361
+
1362
+ export declare class EUIncidentReporter {
1363
+ constructor(options?: { providerName?: string; contactEmail?: string; nationalAuthority?: string });
1364
+ createReport(incident?: object): object;
1365
+ getNotificationDeadline(severity?: string): object;
1366
+ generateCorrective(incident?: object): object;
1367
+ }
1368
+
1369
+ export declare class EUAIActDashboard {
1370
+ constructor(riskClassifier?: RiskClassifier, conformity?: ConformityAssessment);
1371
+ getComplianceStatus(): object;
1372
+ getDeadlines(): object[];
1373
+ getActionItems(): object[];
1374
+ }
1375
+
1376
+ // =========================================================================
1377
+ // Prompt Leakage Detection (v6.0)
1378
+ // =========================================================================
1379
+
1380
+ export declare class PromptFingerprinter {
1381
+ constructor();
1382
+ fingerprint(text: string): object;
1383
+ compare(fp: object, text: string): { similarity: number; leaked: boolean };
1384
+ detectPartialLeak(fp: object, output: string): { leaked: boolean; matches: any[] };
1385
+ }
1386
+
1387
+ export declare class SystemPromptGuard {
1388
+ constructor(options?: { systemPrompt?: string; sensitivity?: 'low' | 'medium' | 'high'; enableFingerprinting?: boolean });
1389
+ registerSystemPrompt(prompt: string): void;
1390
+ scanInput(input: string): { suspicious: boolean; threats: any[]; action: string };
1391
+ scanOutput(output: string): { leaked: boolean; findings: any[]; leakageScore: number };
1392
+ getLeakageScore(output: string): number;
1393
+ getStats(): object;
1394
+ }
1395
+
1396
+ export declare class PromptLeakageMitigation {
1397
+ constructor();
1398
+ addDefenseLayer(prompt: string): string;
1399
+ wrapPrompt(prompt: string): string;
1400
+ generateDecoy(): string;
1401
+ }
1402
+
1403
+ // =========================================================================
1404
+ // RAG Vulnerability Scanning (v6.0)
1405
+ // =========================================================================
1406
+
1407
+ export declare class RAGVulnerabilityScanner {
1408
+ constructor(options?: { chunkSize?: number; overlapSize?: number; maxRetrievedDocs?: number });
1409
+ scanChunk(chunk: string, metadata?: object): object;
1410
+ scanRetrievalSet(chunks: string[], query: string): object;
1411
+ analyzeChunkBoundaries(chunks: string[]): object;
1412
+ validateMetadata(metadata: object): object;
1413
+ assessContextWindowRisk(systemPrompt: string, retrievedDocs: string[], userQuery: string, contextWindowSize?: number): object;
1414
+ getStats(): object;
1415
+ }
1416
+
1417
+ export declare class EmbeddingIntegrityChecker {
1418
+ constructor(options?: { distanceThreshold?: number; anomalyMethod?: 'zscore' | 'isolation' });
1419
+ checkDistribution(embeddings: number[][]): object;
1420
+ detectOutliers(embeddings: number[][], labels?: string[]): object;
1421
+ measureDrift(baselineEmbeddings: number[][], currentEmbeddings: number[][]): object;
1422
+ validateEmbeddingConsistency(text: string, embedding: number[]): object;
1423
+ }
1424
+
1425
+ export declare class RAGPipelineAuditor {
1426
+ constructor(pipelineConfig?: { chunkingStrategy?: string; embeddingModel?: string; vectorDB?: string });
1427
+ audit(): object;
1428
+ getVulnerabilities(): object[];
1429
+ getRecommendations(): object[];
1430
+ generateReport(format?: 'text' | 'markdown'): string;
1431
+ }
1432
+
1433
+ // =========================================================================
1434
+ // Benchmark Harness (v5.0)
1435
+ // =========================================================================
1436
+
1437
+ export declare class DatasetLoader {
1438
+ load(filePath: string): { entries: object[]; meta: object };
1439
+ validate(entries: object[]): { valid: boolean; errors: string[] };
1440
+ fromBIPIA(entries: object[]): object[];
1441
+ fromGarak(entries: object[]): object[];
1442
+ }
1443
+
1444
+ export declare class BenchmarkMetrics {
1445
+ compute(results: Array<{ entry: object; detected: boolean; expected: boolean; latencyMs: number }>): object;
1446
+ }
1447
+
1448
+ export declare class RegressionTracker {
1449
+ constructor(options?: { f1Threshold?: number; latencyThreshold?: number });
1450
+ saveBaseline(metrics: object, filePath: string): void;
1451
+ loadBaseline(filePath: string): object;
1452
+ compare(current: object, baseline: object): object;
1453
+ }
1454
+
1455
+ export declare class BenchmarkReportGenerator {
1456
+ text(metrics: object, options?: { title?: string }): string;
1457
+ json(metrics: object): string;
1458
+ markdown(metrics: object, options?: { title?: string }): string;
1459
+ comparisonText(comparison: object): string;
1460
+ }
1461
+
1462
+ export declare class BenchmarkHarness {
1463
+ constructor(options?: { warmupRuns?: number });
1464
+ loadDataset(filePath: string): void;
1465
+ loadEntries(entries: object[]): void;
1466
+ run(detectorFn: (text: string) => any): object;
1467
+ compare(detectors: Record<string, (text: string) => any>): object;
1468
+ formatReport(results: object): string;
1469
+ formatComparison(comparison: object): string;
1470
+ formatMarkdown(results: object): string;
1471
+ }
1472
+
1473
+ // =========================================================================
1474
+ // Adaptive Defense (v7.1)
1475
+ // =========================================================================
1476
+
1477
+ export declare class LearningLoop {
1478
+ constructor(options?: { minHitsToPromote?: number; maxLearnedPatterns?: number; promotionConfidence?: number });
1479
+ ingest(attack: { text: string; category?: string; source?: string }): object;
1480
+ check(text: string): { matches: any[]; boosted: boolean };
1481
+ recordFeedback(patternId: string, type: 'confirmed' | 'false_positive', reason?: string): void;
1482
+ getActivePatterns(): object[];
1483
+ getReport(): object;
1484
+ exportPatterns(): string;
1485
+ importPatterns(data: string): void;
1486
+ }
1487
+
1488
+ export declare class BehaviorContract {
1489
+ constructor(spec: { agentId: string; allowedTools?: string[]; deniedTools?: string[]; maxToolCallsPerMinute?: number; maxDelegationDepth?: number; allowedScopes?: string[]; requiredIntents?: boolean; maxResponseLength?: number; timeWindows?: Array<{ start: number; end: number }>; customValidator?: Function });
1490
+ verify(action: { type: string; tool?: string; args?: any; depth?: number; scope?: string; intent?: string; responseLength?: number }): { allowed: boolean; violations: any[] };
1491
+ getViolations(limit?: number): any[];
1492
+ getComplianceRate(): { total: number; passed: number; violated: number; rate: string };
1493
+ toJSON(): object;
1494
+ }
1495
+
1496
+ export declare class ContractRegistry {
1497
+ constructor();
1498
+ register(contract: BehaviorContract): void;
1499
+ onViolation(callback: (violation: any) => void): void;
1500
+ enforce(agentId: string, action: object): { allowed: boolean; violations: any[] };
1501
+ getComplianceReport(): object;
1502
+ getRegisteredAgents(): string[];
1503
+ }
1504
+
1505
+ export declare class ComplianceAttestor {
1506
+ constructor(options?: { frameworks?: string[]; attestationIntervalMs?: number; onComplianceDrift?: Function });
1507
+ updateSignal(signal: string, value: any): void;
1508
+ updateSignals(signals: Record<string, any>): void;
1509
+ attest(): object;
1510
+ getCurrentState(): object;
1511
+ getHistory(limit?: number): object[];
1512
+ getTrend(): object;
1513
+ generateProof(signingKey?: string): object;
1514
+ }
1515
+
1211
1516
  // =========================================================================
1212
1517
  // Constants
1213
1518
  // =========================================================================
@@ -1243,6 +1548,31 @@ export declare function formatHeader(text: string): string;
1243
1548
  export declare function generateId(): string;
1244
1549
  export declare function extractTextFromBody(body: any): string;
1245
1550
 
1551
+ export interface GracefulShutdownOptions {
1552
+ timeoutMs?: number;
1553
+ cleanupFns?: Array<() => void | Promise<void>>;
1554
+ logger?: (...args: any[]) => void;
1555
+ }
1556
+
1557
+ export declare function createGracefulShutdown(options?: GracefulShutdownOptions): {
1558
+ shutdown: (signal?: string) => Promise<void>;
1559
+ onShutdown: (fn: () => void | Promise<void>) => void;
1560
+ };
1561
+
1562
+ export interface LoadEnvResult {
1563
+ loaded: number;
1564
+ errors: string[];
1565
+ }
1566
+
1567
+ export declare function loadEnvFile(options?: { path?: string; overwrite?: boolean }): LoadEnvResult;
1568
+
1569
+ // =========================================================================
1570
+ // Errors
1571
+ // =========================================================================
1572
+
1573
+ export declare function createShieldError(code: string, details?: object): Error;
1574
+ export declare function deprecationWarning(feature: string, replacement: string, removeVersion: string): void;
1575
+
1246
1576
  // =========================================================================
1247
1577
  // OpenClaw Integration
1248
1578
  // =========================================================================
@@ -1419,6 +1749,50 @@ export declare class AuditStreamManager {
1419
1749
  getStats(): object;
1420
1750
  }
1421
1751
 
1752
+ // =========================================================================
1753
+ // Immutable Audit Log (v2.1)
1754
+ // =========================================================================
1755
+
1756
+ export declare class AuditEntry {
1757
+ id: string;
1758
+ sequence: number;
1759
+ timestamp: string;
1760
+ type: string;
1761
+ data: object;
1762
+ actor: { type: string; id: string; name?: string };
1763
+ previousHash: string;
1764
+ hash: string;
1765
+ constructor(params: { id: string; timestamp: string; type: string; data: object; actor: { type: string; id: string; name?: string }; previousHash: string; hash: string; sequence: number });
1766
+ toJSON(): object;
1767
+ }
1768
+
1769
+ export declare class AuditProof {
1770
+ proofId: string;
1771
+ generatedAt: string;
1772
+ anchorHash: string;
1773
+ entries: AuditEntry[];
1774
+ startId: string;
1775
+ endId: string;
1776
+ entryCount: number;
1777
+ chainHead: string;
1778
+ proofHash: string;
1779
+ constructor(params: { proofId: string; generatedAt: string; anchorHash: string; entries: AuditEntry[]; startId: string; endId: string; entryCount: number; chainHead: string; proofHash: string });
1780
+ verify(): { valid: boolean; error: string | null };
1781
+ toJSON(): object;
1782
+ }
1783
+
1784
+ export declare class ImmutableAuditLog {
1785
+ constructor(options?: { store?: object; maxEntries?: number; maxAge?: number; archiveCallback?: (entries: AuditEntry[]) => void; genesisHash?: string });
1786
+ append(type: string, data: object, actor: { type: string; id: string; name?: string }): Promise<AuditEntry>;
1787
+ verify(): Promise<{ valid: boolean; brokenAt: number | null; totalEntries: number }>;
1788
+ exportProof(startId: string, endId: string): Promise<AuditProof>;
1789
+ query(filters?: { type?: string; actorId?: string; since?: string; until?: string }): Promise<AuditEntry[]>;
1790
+ export(format?: 'json' | 'csv'): Promise<string>;
1791
+ getStats(): Promise<object>;
1792
+ getChainHead(): Promise<string | null>;
1793
+ count(): Promise<number>;
1794
+ }
1795
+
1422
1796
  // =========================================================================
1423
1797
  // Self-Healing (v3.0)
1424
1798
  // =========================================================================