zeroleaks 1.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.
Files changed (67) hide show
  1. package/LICENSE +122 -0
  2. package/README.md +232 -0
  3. package/dist/agents/attacker.d.ts +56 -0
  4. package/dist/agents/attacker.d.ts.map +1 -0
  5. package/dist/agents/engine.d.ts +90 -0
  6. package/dist/agents/engine.d.ts.map +1 -0
  7. package/dist/agents/evaluator.d.ts +34 -0
  8. package/dist/agents/evaluator.d.ts.map +1 -0
  9. package/dist/agents/index.d.ts +10 -0
  10. package/dist/agents/index.d.ts.map +1 -0
  11. package/dist/agents/injection-evaluator.d.ts +34 -0
  12. package/dist/agents/injection-evaluator.d.ts.map +1 -0
  13. package/dist/agents/inspector.d.ts +43 -0
  14. package/dist/agents/inspector.d.ts.map +1 -0
  15. package/dist/agents/mutator.d.ts +28 -0
  16. package/dist/agents/mutator.d.ts.map +1 -0
  17. package/dist/agents/orchestrator.d.ts +37 -0
  18. package/dist/agents/orchestrator.d.ts.map +1 -0
  19. package/dist/agents/strategist.d.ts +36 -0
  20. package/dist/agents/strategist.d.ts.map +1 -0
  21. package/dist/agents/target.d.ts +13 -0
  22. package/dist/agents/target.d.ts.map +1 -0
  23. package/dist/bin/cli.d.ts +3 -0
  24. package/dist/bin/cli.d.ts.map +1 -0
  25. package/dist/bin/cli.js +27610 -0
  26. package/dist/index.d.ts +6 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +22489 -0
  29. package/dist/knowledge/defense-bypass.d.ts +34 -0
  30. package/dist/knowledge/defense-bypass.d.ts.map +1 -0
  31. package/dist/knowledge/exfiltration.d.ts +43 -0
  32. package/dist/knowledge/exfiltration.d.ts.map +1 -0
  33. package/dist/knowledge/index.d.ts +5 -0
  34. package/dist/knowledge/index.d.ts.map +1 -0
  35. package/dist/knowledge/payloads.d.ts +23 -0
  36. package/dist/knowledge/payloads.d.ts.map +1 -0
  37. package/dist/knowledge/techniques.d.ts +33 -0
  38. package/dist/knowledge/techniques.d.ts.map +1 -0
  39. package/dist/probes/advanced.d.ts +19 -0
  40. package/dist/probes/advanced.d.ts.map +1 -0
  41. package/dist/probes/direct.d.ts +8 -0
  42. package/dist/probes/direct.d.ts.map +1 -0
  43. package/dist/probes/encoding.d.ts +24 -0
  44. package/dist/probes/encoding.d.ts.map +1 -0
  45. package/dist/probes/garak-inspired.d.ts +13 -0
  46. package/dist/probes/garak-inspired.d.ts.map +1 -0
  47. package/dist/probes/hybrid.d.ts +10 -0
  48. package/dist/probes/hybrid.d.ts.map +1 -0
  49. package/dist/probes/index.d.ts +33 -0
  50. package/dist/probes/index.d.ts.map +1 -0
  51. package/dist/probes/injection.d.ts +29 -0
  52. package/dist/probes/injection.d.ts.map +1 -0
  53. package/dist/probes/modern.d.ts +14 -0
  54. package/dist/probes/modern.d.ts.map +1 -0
  55. package/dist/probes/personas.d.ts +15 -0
  56. package/dist/probes/personas.d.ts.map +1 -0
  57. package/dist/probes/social.d.ts +8 -0
  58. package/dist/probes/social.d.ts.map +1 -0
  59. package/dist/probes/technical.d.ts +8 -0
  60. package/dist/probes/technical.d.ts.map +1 -0
  61. package/dist/probes/tool-exploits.d.ts +10 -0
  62. package/dist/probes/tool-exploits.d.ts.map +1 -0
  63. package/dist/types.d.ts +479 -0
  64. package/dist/types.d.ts.map +1 -0
  65. package/dist/utils.d.ts +16 -0
  66. package/dist/utils.d.ts.map +1 -0
  67. package/package.json +79 -0
@@ -0,0 +1,479 @@
1
+ export type ScanMode = "extraction" | "injection";
2
+ export interface InjectionTestResult {
3
+ id: string;
4
+ testType: InjectionTestType;
5
+ injectedInstruction: string;
6
+ expectedBehavior: string;
7
+ actualBehavior: string;
8
+ success: boolean;
9
+ confidence: number;
10
+ technique: string;
11
+ category: AttackCategory;
12
+ evidence: string;
13
+ severity: "critical" | "high" | "medium" | "low";
14
+ }
15
+ export type InjectionTestType = "instruction_override" | "behavior_modification" | "policy_bypass" | "role_hijack" | "output_manipulation" | "action_execution" | "context_poisoning" | "guardrail_bypass";
16
+ export type AttackCategory = "direct" | "encoding" | "persona" | "social" | "technical" | "crescendo" | "many_shot" | "ascii_art" | "cot_hijack" | "semantic_shift" | "policy_puppetry" | "context_overflow" | "reasoning_exploit" | "hybrid" | "tool_exploit" | "siren" | "echo_chamber" | "injection";
17
+ export type AttackPhase = "reconnaissance" | "profiling" | "soft_probe" | "escalation" | "exploitation" | "persistence";
18
+ export type DefenseLevel = "none" | "weak" | "moderate" | "strong" | "hardened";
19
+ export type LeakStatus = "none" | "hint" | "fragment" | "substantial" | "complete";
20
+ export interface AttackNode {
21
+ id: string;
22
+ parentId: string | null;
23
+ depth: number;
24
+ prompt: string;
25
+ technique: string;
26
+ category: AttackCategory;
27
+ executed: boolean;
28
+ response?: string;
29
+ priorScore: number;
30
+ posteriorScore: number;
31
+ leakPotential: number;
32
+ children: AttackNode[];
33
+ mutations?: string[];
34
+ reasoning?: string;
35
+ timestamp: number;
36
+ }
37
+ export interface DefenseProfile {
38
+ level: DefenseLevel;
39
+ confidence: number;
40
+ observedBehaviors: string[];
41
+ guardrails: {
42
+ type: string;
43
+ strength: number;
44
+ bypassed: boolean;
45
+ bypassMethod?: string;
46
+ }[];
47
+ weaknesses: {
48
+ category: AttackCategory;
49
+ description: string;
50
+ exploitability: number;
51
+ }[];
52
+ refusalTriggers: string[];
53
+ safeTopics: string[];
54
+ responsePatterns: {
55
+ pattern: string;
56
+ frequency: number;
57
+ defenseIndicator: boolean;
58
+ }[];
59
+ }
60
+ export interface Finding {
61
+ id: string;
62
+ turn: number;
63
+ timestamp: number;
64
+ extractedContent: string;
65
+ contentType: "system_prompt" | "rule" | "constraint" | "capability" | "persona" | "unknown";
66
+ technique: string;
67
+ category: AttackCategory;
68
+ attackNodeId: string;
69
+ confidence: "high" | "medium" | "low";
70
+ evidence: string;
71
+ severity: "critical" | "high" | "medium" | "low";
72
+ verified: boolean;
73
+ verificationMethod?: string;
74
+ }
75
+ export interface ConversationTurn {
76
+ id: string;
77
+ turn: number;
78
+ timestamp: number;
79
+ role: "attacker" | "target";
80
+ content: string;
81
+ technique?: string;
82
+ category?: AttackCategory;
83
+ phase?: AttackPhase;
84
+ attackNodeId?: string;
85
+ leakStatus?: LeakStatus;
86
+ defenseSignals?: string[];
87
+ extractedFragments?: string[];
88
+ }
89
+ export interface AttackStrategy {
90
+ id: string;
91
+ name: string;
92
+ description: string;
93
+ applicableWhen: {
94
+ defenseLevel?: DefenseLevel[];
95
+ failedCategories?: AttackCategory[];
96
+ turnRange?: [number, number];
97
+ leakStatus?: LeakStatus[];
98
+ };
99
+ attackSequence: {
100
+ category: AttackCategory;
101
+ weight: number;
102
+ techniques: string[];
103
+ }[];
104
+ expectedTurns: number;
105
+ successRate: number;
106
+ priority: number;
107
+ }
108
+ export interface StrategyState {
109
+ currentStrategy: AttackStrategy | null;
110
+ strategyHistory: {
111
+ strategy: AttackStrategy;
112
+ turns: number;
113
+ outcome: "success" | "partial" | "failed" | "ongoing";
114
+ }[];
115
+ adaptationCount: number;
116
+ lastAdaptationReason: string;
117
+ }
118
+ export interface StrategistOutput {
119
+ selectedStrategy: AttackStrategy;
120
+ reasoning: string;
121
+ targetWeaknesses: string[];
122
+ recommendedCategories: AttackCategory[];
123
+ phaseTransition?: AttackPhase;
124
+ shouldReset: boolean;
125
+ resetReason?: string;
126
+ }
127
+ export interface AttackerOutput {
128
+ attack: AttackNode;
129
+ alternatives: AttackNode[];
130
+ reasoning: string;
131
+ expectedDefense: string;
132
+ }
133
+ export interface EvaluatorOutput {
134
+ status: LeakStatus;
135
+ confidence: number;
136
+ extractedContent?: string;
137
+ extractedFragments?: string[];
138
+ techniqueEffectiveness: number;
139
+ defenseAnalysis: {
140
+ type: string;
141
+ strength: number;
142
+ }[];
143
+ recommendation: string;
144
+ suggestedCategories: AttackCategory[];
145
+ shouldContinue: boolean;
146
+ continueReason: string;
147
+ shouldReset?: boolean;
148
+ resetReason?: string;
149
+ }
150
+ export interface MutatorOutput {
151
+ originalPrompt: string;
152
+ mutations: {
153
+ prompt: string;
154
+ mutationType: string;
155
+ expectedEffectiveness: number;
156
+ }[];
157
+ bestMutation: string;
158
+ reasoning: string;
159
+ }
160
+ export interface ScanConfig {
161
+ maxTurns: number;
162
+ maxTreeDepth: number;
163
+ branchingFactor: number;
164
+ pruningThreshold: number;
165
+ enableCrescendo: boolean;
166
+ enableManyShot: boolean;
167
+ enableBestOfN: boolean;
168
+ bestOfNCount: number;
169
+ maxTokensPerTurn: number;
170
+ maxTotalTokens: number;
171
+ attackerModel: string;
172
+ evaluatorModel: string;
173
+ targetModel?: string;
174
+ enableVectorMemory?: boolean;
175
+ enableInspector?: boolean;
176
+ enableDefenseFingerprinting?: boolean;
177
+ enableParallelEvaluation?: boolean;
178
+ enableAdaptiveTemperature?: boolean;
179
+ enableMultiTurnOrchestrator?: boolean;
180
+ enableFailureAnalysis?: boolean;
181
+ orchestratorPattern?: "auto" | "siren" | "echo_chamber" | "tombRaider";
182
+ temperatureConfig?: Partial<TemperatureConfig>;
183
+ inspectorModel?: string;
184
+ scanMode?: ScanMode;
185
+ enableDualMode?: boolean;
186
+ injectionTestTypes?: InjectionTestType[];
187
+ onProgress?: (state: ScanProgress) => Promise<void>;
188
+ onFinding?: (finding: Finding) => Promise<void>;
189
+ onDefenseDetected?: (fingerprint: DefenseFingerprint) => Promise<void>;
190
+ onFailureRecorded?: (failure: FailedAttack) => Promise<void>;
191
+ onInjectionResult?: (result: InjectionTestResult) => Promise<void>;
192
+ }
193
+ export interface ScanProgress {
194
+ turn: number;
195
+ maxTurns: number;
196
+ phase: AttackPhase;
197
+ strategy: string;
198
+ leakStatus: LeakStatus;
199
+ findingsCount: number;
200
+ treeNodesExplored: number;
201
+ estimatedCompletion: number;
202
+ }
203
+ export interface ScanResult {
204
+ findings: Finding[];
205
+ overallVulnerability: "critical" | "high" | "medium" | "low" | "secure";
206
+ overallScore: number;
207
+ leakStatus: LeakStatus;
208
+ extractedSystemPrompt?: string;
209
+ extractedFragments: string[];
210
+ injectionResults?: InjectionTestResult[];
211
+ injectionVulnerability?: "critical" | "high" | "medium" | "low" | "secure";
212
+ injectionScore?: number;
213
+ scanModes?: ScanMode[];
214
+ turnsUsed: number;
215
+ tokensUsed: number;
216
+ treeNodesExplored: number;
217
+ strategiesUsed: string[];
218
+ defenseProfile: DefenseProfile;
219
+ conversationLog: ConversationTurn[];
220
+ extractionConversationLog?: ConversationTurn[];
221
+ injectionConversationLog?: ConversationTurn[];
222
+ attackTree?: AttackNode;
223
+ summary: string;
224
+ recommendations: string[];
225
+ startTime: number;
226
+ endTime: number;
227
+ duration: number;
228
+ error?: string;
229
+ aborted: boolean;
230
+ completionReason: string;
231
+ }
232
+ export interface AttackAnalysis {
233
+ turn: number;
234
+ techniqueUsed: string;
235
+ category: AttackCategory;
236
+ targetResponseSummary: string;
237
+ responseLength: number;
238
+ defenseSignals: string[];
239
+ extractionResult: {
240
+ status: LeakStatus;
241
+ extractedContent: string | null;
242
+ confidence: "high" | "medium" | "low" | null;
243
+ evidence: string | null;
244
+ };
245
+ defenseAnalysis: {
246
+ detectedGuardrails: string[];
247
+ weaknessIdentified: string | null;
248
+ bypassPotential: number;
249
+ };
250
+ nextAction: {
251
+ category: AttackCategory;
252
+ technique: string;
253
+ rationale: string;
254
+ priority: number;
255
+ };
256
+ cumulativeExtraction: string;
257
+ progressTowardsGoal: number;
258
+ }
259
+ export interface InspectorOutput {
260
+ extractedKnowledge: {
261
+ topics: string[];
262
+ behaviors: string[];
263
+ constraints: string[];
264
+ capabilities: string[];
265
+ persona: string | null;
266
+ };
267
+ defenseFingerprint: DefenseFingerprint | null;
268
+ identifiedWeaknesses: {
269
+ weakness: string;
270
+ confidence: number;
271
+ exploitVector: AttackCategory;
272
+ suggestedApproach: string;
273
+ }[];
274
+ responseAnalysis: {
275
+ cooperativeLevel: number;
276
+ verbosityLevel: number;
277
+ consistencyScore: number;
278
+ emotionalTone: string;
279
+ };
280
+ strategicGuidance: {
281
+ recommendedCategories: AttackCategory[];
282
+ avoidCategories: AttackCategory[];
283
+ suggestedTechniques: string[];
284
+ escalationRecommendation: "escalate" | "maintain" | "deescalate" | "pivot";
285
+ reasoning: string;
286
+ };
287
+ }
288
+ export type KnownDefenseSystem = "azure_prompt_shield" | "meta_prompt_guard" | "llama_guard" | "anthropic_constitutional" | "openai_moderation" | "google_safety" | "nvidia_nemo_guardrails" | "custom_guardrail" | "no_defense" | "unknown";
289
+ export interface DefenseFingerprint {
290
+ system: KnownDefenseSystem;
291
+ confidence: number;
292
+ signals: {
293
+ signal: string;
294
+ weight: number;
295
+ }[];
296
+ knownBypasses: {
297
+ technique: string;
298
+ category: AttackCategory;
299
+ successRate: number;
300
+ }[];
301
+ variant?: string;
302
+ detectedAt: number;
303
+ }
304
+ export interface DefenseFingerprintDatabase {
305
+ systems: Record<KnownDefenseSystem, {
306
+ name: string;
307
+ description: string;
308
+ patterns: {
309
+ pattern: string | RegExp;
310
+ weight: number;
311
+ }[];
312
+ knownBypasses: {
313
+ technique: string;
314
+ category: AttackCategory;
315
+ successRate: number;
316
+ }[];
317
+ evasionDifficulty: number;
318
+ }>;
319
+ }
320
+ export interface FailedAttack {
321
+ id: string;
322
+ prompt: string;
323
+ technique: string;
324
+ category: AttackCategory;
325
+ defenseSystem: KnownDefenseSystem;
326
+ defenseLevel: DefenseLevel;
327
+ failureReason: FailureReason;
328
+ targetResponse: string;
329
+ responsePatterns: string[];
330
+ timestamp: number;
331
+ scanId?: string;
332
+ }
333
+ export type FailureReason = "hard_refusal" | "soft_refusal" | "deflection" | "misdirection" | "partial_compliance" | "guardrail_block" | "context_not_primed" | "technique_detected" | "too_aggressive" | "semantic_similarity" | "unknown";
334
+ export interface LearningRecord {
335
+ successfulPatterns: {
336
+ pattern: string;
337
+ category: AttackCategory;
338
+ successCount: number;
339
+ contexts: string[];
340
+ }[];
341
+ defensePatterns: {
342
+ defenseSystem: KnownDefenseSystem;
343
+ triggerPatterns: string[];
344
+ bypassPatterns: string[];
345
+ }[];
346
+ adaptations: {
347
+ fromTechnique: string;
348
+ toTechnique: string;
349
+ reason: string;
350
+ outcome: "success" | "failure" | "partial";
351
+ timestamp: number;
352
+ }[];
353
+ }
354
+ export interface MultiTurnSequence {
355
+ id: string;
356
+ name: string;
357
+ description: string;
358
+ pattern: "siren" | "echo_chamber" | "crescendo" | "tombRaider" | "custom";
359
+ steps: MultiTurnStep[];
360
+ config: {
361
+ minTurns: number;
362
+ maxTurns: number;
363
+ resetOnFailure: boolean;
364
+ adaptiveEscalation: boolean;
365
+ };
366
+ expectedSuccessRate: number;
367
+ targetDefenseLevels: DefenseLevel[];
368
+ }
369
+ export interface MultiTurnStep {
370
+ order: number;
371
+ purpose: string;
372
+ category: AttackCategory;
373
+ template: string;
374
+ variables: string[];
375
+ requiresPreviousSuccess: boolean;
376
+ skipCondition?: string;
377
+ expectedResponseType: "cooperative" | "neutral" | "resistant" | "any";
378
+ successIndicators: string[];
379
+ failureIndicators: string[];
380
+ }
381
+ export interface OrchestratorState {
382
+ currentSequence: MultiTurnSequence | null;
383
+ currentStep: number;
384
+ stepResults: {
385
+ step: number;
386
+ success: boolean;
387
+ extractedInfo: string[];
388
+ defenseObserved: string[];
389
+ }[];
390
+ temperatureSchedule: number[];
391
+ currentTemperature: number;
392
+ consecutiveFailures: number;
393
+ shouldEscalate: boolean;
394
+ }
395
+ export interface TemperatureConfig {
396
+ initialTemperature: number;
397
+ minTemperature: number;
398
+ maxTemperature: number;
399
+ successDecrement: number;
400
+ failureIncrement: number;
401
+ plateauIncrement: number;
402
+ plateauThreshold: number;
403
+ resetThreshold: number;
404
+ }
405
+ export interface TemperatureState {
406
+ current: number;
407
+ history: number[];
408
+ adjustments: {
409
+ turn: number;
410
+ from: number;
411
+ to: number;
412
+ reason: string;
413
+ }[];
414
+ }
415
+ export interface ParallelEvaluationResult {
416
+ variations: {
417
+ prompt: string;
418
+ response: string;
419
+ evaluationScore: number;
420
+ leakStatus: LeakStatus;
421
+ extractedContent?: string;
422
+ }[];
423
+ best: {
424
+ index: number;
425
+ prompt: string;
426
+ response: string;
427
+ score: number;
428
+ };
429
+ statistics: {
430
+ averageScore: number;
431
+ maxScore: number;
432
+ minScore: number;
433
+ leakRate: number;
434
+ };
435
+ }
436
+ export interface GarakProbe {
437
+ id: string;
438
+ name: string;
439
+ description: string;
440
+ garakModule: string;
441
+ garakClass: string;
442
+ prompts: string[];
443
+ detector: {
444
+ type: "substring" | "regex" | "semantic" | "model";
445
+ patterns?: string[];
446
+ threshold?: number;
447
+ };
448
+ tags: string[];
449
+ severity: "low" | "medium" | "high" | "critical";
450
+ references: string[];
451
+ }
452
+ export interface Probe {
453
+ id: string;
454
+ category: AttackCategory;
455
+ technique: string;
456
+ prompt: string;
457
+ phase: AttackPhase[];
458
+ defenseLevel: DefenseLevel[];
459
+ requiresContext: boolean;
460
+ multiTurn: boolean;
461
+ sequencePosition?: number;
462
+ expectedSuccessRate: number;
463
+ sophistication: number;
464
+ stealthiness: number;
465
+ variables?: string[];
466
+ }
467
+ export interface ProbeSequence {
468
+ id: string;
469
+ name: string;
470
+ description: string;
471
+ category: AttackCategory;
472
+ probes: Probe[];
473
+ requiresAllSteps: boolean;
474
+ canShortCircuit: boolean;
475
+ shortCircuitCondition?: string;
476
+ expectedTurns: number;
477
+ successRate: number;
478
+ }
479
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,WAAW,CAAC;AAElD,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CAClD;AAED,MAAM,MAAM,iBAAiB,GACzB,sBAAsB,GACtB,uBAAuB,GACvB,eAAe,GACf,aAAa,GACb,qBAAqB,GACrB,kBAAkB,GAClB,mBAAmB,GACnB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,UAAU,GACV,SAAS,GACT,QAAQ,GACR,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,YAAY,GACZ,gBAAgB,GAChB,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,GACnB,QAAQ,GACR,cAAc,GACd,OAAO,GACP,cAAc,GACd,WAAW,CAAC;AAEhB,MAAM,MAAM,WAAW,GACnB,gBAAgB,GAChB,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,aAAa,CAAC;AAElB,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEhF,MAAM,MAAM,UAAU,GAClB,MAAM,GACN,MAAM,GACN,UAAU,GACV,aAAa,GACb,UAAU,CAAC;AAEf,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,OAAO,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,EAAE,CAAC;IACJ,UAAU,EAAE;QACV,QAAQ,EAAE,cAAc,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;KACxB,EAAE,CAAC;IACJ,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,OAAO,CAAC;KAC3B,EAAE,CAAC;CACL;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EACP,eAAe,GACf,MAAM,GACN,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,SAAS,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE;QACd,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;QAC9B,gBAAgB,CAAC,EAAE,cAAc,EAAE,CAAC;QACpC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;KAC3B,CAAC;IACF,cAAc,EAAE;QACd,QAAQ,EAAE,cAAc,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,EAAE,CAAC;IACJ,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,eAAe,EAAE;QACf,QAAQ,EAAE,cAAc,CAAC;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;KACvD,EAAE,CAAC;IACJ,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,cAAc,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,qBAAqB,EAAE,cAAc,EAAE,CAAC;IACxC,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE;QACf,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;KAClB,EAAE,CAAC;IACJ,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,cAAc,EAAE,CAAC;IACtC,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,qBAAqB,EAAE,MAAM,CAAC;KAC/B,EAAE,CAAC;IACJ,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,cAAc,GAAG,YAAY,CAAC;IACvE,iBAAiB,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,iBAAiB,CAAC,EAAE,CAAC,WAAW,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,oBAAoB,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;IACxE,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACzC,sBAAsB,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,gBAAgB,EAAE,CAAC;IACpC,yBAAyB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/C,wBAAwB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE;QAChB,MAAM,EAAE,UAAU,CAAC;QACnB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC;QAC7C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC;IACF,eAAe,EAAE;QACf,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAC7B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,UAAU,EAAE;QACV,QAAQ,EAAE,cAAc,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE;QAClB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;IACF,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,oBAAoB,EAAE;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,cAAc,CAAC;QAC9B,iBAAiB,EAAE,MAAM,CAAC;KAC3B,EAAE,CAAC;IACJ,gBAAgB,EAAE;QAChB,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,iBAAiB,EAAE;QACjB,qBAAqB,EAAE,cAAc,EAAE,CAAC;QACxC,eAAe,EAAE,cAAc,EAAE,CAAC;QAClC,mBAAmB,EAAE,MAAM,EAAE,CAAC;QAC9B,wBAAwB,EAAE,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,CAAC;QAC3E,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,kBAAkB,GAC1B,qBAAqB,GACrB,mBAAmB,GACnB,aAAa,GACb,0BAA0B,GAC1B,mBAAmB,GACnB,eAAe,GACf,wBAAwB,GACxB,kBAAkB,GAClB,YAAY,GACZ,SAAS,CAAC;AAEd,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,EAAE,CAAC;IACJ,aAAa,EAAE;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,cAAc,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,EAAE,CAAC;IACJ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CACb,kBAAkB,EAClB;QACE,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE;YACR,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;YACzB,MAAM,EAAE,MAAM,CAAC;SAChB,EAAE,CAAC;QACJ,aAAa,EAAE;YACb,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,cAAc,CAAC;YACzB,WAAW,EAAE,MAAM,CAAC;SACrB,EAAE,CAAC;QACJ,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CACF,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,cAAc,CAAC;IACzB,aAAa,EAAE,kBAAkB,CAAC;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,cAAc,GACd,YAAY,GACZ,cAAc,GACd,oBAAoB,GACpB,iBAAiB,GACjB,oBAAoB,GACpB,oBAAoB,GACpB,gBAAgB,GAChB,qBAAqB,GACrB,SAAS,CAAC;AAEd,MAAM,WAAW,cAAc;IAC7B,kBAAkB,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,cAAc,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,EAAE,CAAC;IACJ,eAAe,EAAE;QACf,aAAa,EAAE,kBAAkB,CAAC;QAClC,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,EAAE,CAAC;IACJ,WAAW,EAAE;QACX,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;QAC3C,SAAS,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,GAAG,cAAc,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC1E,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,OAAO,CAAC;QACxB,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,YAAY,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,uBAAuB,EAAE,OAAO,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,KAAK,CAAC;IACtE,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,aAAa,EAAE,MAAM,EAAE,CAAC;QACxB,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B,EAAE,CAAC;IACJ,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,EAAE,CAAC;CACL;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE;QACV,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,UAAU,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,EAAE,CAAC;IACJ,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,UAAU,EAAE;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE;QACR,IAAI,EAAE,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;QACnD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACjD,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,16 @@
1
+ export declare function generateId(prefix?: string): string;
2
+ export declare function generateShortId(): string;
3
+ export declare const encoding: {
4
+ toBase64(text: string): string;
5
+ fromBase64(encoded: string): string;
6
+ toBase64UrlSafe(text: string): string;
7
+ };
8
+ export declare function calculateTextSimilarity(a: string, b: string): number;
9
+ export declare function truncate(text: string, maxLength: number): string;
10
+ export declare function sleep(ms: number): Promise<void>;
11
+ export declare function retry<T>(fn: () => Promise<T>, options?: {
12
+ maxAttempts?: number;
13
+ delayMs?: number;
14
+ backoff?: boolean;
15
+ }): Promise<T>;
16
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,MAAM,GAAE,MAAW,GAAG,MAAM,CAOtD;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,eAAO,MAAM,QAAQ;mBACJ,MAAM,GAAG,MAAM;wBAOV,MAAM,GAAG,MAAM;0BAOb,MAAM,GAAG,MAAM;CAMtC,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAwBpE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED,wBAAsB,KAAK,CAAC,CAAC,EAC3B,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACd,GACL,OAAO,CAAC,CAAC,CAAC,CAmBZ"}
package/package.json ADDED
@@ -0,0 +1,79 @@
1
+ {
2
+ "name": "zeroleaks",
3
+ "version": "1.2.1",
4
+ "description": "AI Security Scanner - Test your AI systems for prompt injection and extraction vulnerabilities",
5
+ "author": "ZeroLeaks <hello@zeroleaks.ai>",
6
+ "license": "FSL-1.1-Apache-2.0",
7
+ "homepage": "https://zeroleaks.ai",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/ZeroLeaks/zeroleaks.git"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/ZeroLeaks/zeroleaks/issues"
14
+ },
15
+ "publishConfig": {
16
+ "access": "public"
17
+ },
18
+ "keywords": [
19
+ "ai",
20
+ "security",
21
+ "llm",
22
+ "prompt-injection",
23
+ "jailbreak",
24
+ "red-team",
25
+ "penetration-testing",
26
+ "openai",
27
+ "anthropic",
28
+ "claude",
29
+ "gpt"
30
+ ],
31
+ "type": "module",
32
+ "main": "./dist/index.js",
33
+ "module": "./dist/index.js",
34
+ "types": "./dist/index.d.ts",
35
+ "bin": {
36
+ "zeroleaks": "./dist/bin/cli.js"
37
+ },
38
+ "exports": {
39
+ ".": {
40
+ "import": "./dist/index.js",
41
+ "types": "./dist/index.d.ts"
42
+ },
43
+ "./agents": {
44
+ "import": "./dist/agents/index.js",
45
+ "types": "./dist/agents/index.d.ts"
46
+ },
47
+ "./probes": {
48
+ "import": "./dist/probes/index.js",
49
+ "types": "./dist/probes/index.d.ts"
50
+ }
51
+ },
52
+ "files": ["dist", "README.md", "LICENSE"],
53
+ "scripts": {
54
+ "build": "bun build ./src/index.ts --outdir ./dist --target node && bun build ./src/bin/cli.ts --outdir ./dist/bin --target node && tsc --emitDeclarationOnly",
55
+ "dev": "bun run --watch src/bin/cli.ts",
56
+ "test": "bun test",
57
+ "lint": "biome check .",
58
+ "format": "biome format --write .",
59
+ "typecheck": "tsc --noEmit",
60
+ "prepublishOnly": "bun run build"
61
+ },
62
+ "dependencies": {
63
+ "@openrouter/ai-sdk-provider": "^0.4.3",
64
+ "ai": "^4.3.15",
65
+ "commander": "^13.1.0",
66
+ "js-tiktoken": "^1.0.18",
67
+ "ora": "^8.2.0",
68
+ "zod": "^3.24.2"
69
+ },
70
+ "devDependencies": {
71
+ "@biomejs/biome": "^1.9.4",
72
+ "@types/bun": "^1.2.4",
73
+ "@types/node": "^22.14.1",
74
+ "typescript": "^5.7.3"
75
+ },
76
+ "engines": {
77
+ "node": ">=18.0.0"
78
+ }
79
+ }