@adversarylabs/sdk 0.1.3

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.
@@ -0,0 +1,274 @@
1
+ export declare const DEFAULT_INPUT_PATH = "/adversary/input.json";
2
+ export declare const DEFAULT_OUTPUT_PATH = "/adversary/output.json";
3
+ export declare const ADVERSARY_RUN_PROTOCOL_VERSION = 1;
4
+ export declare const Severity: {
5
+ readonly Info: "info";
6
+ readonly Low: "low";
7
+ readonly Medium: "medium";
8
+ readonly High: "high";
9
+ readonly Critical: "critical";
10
+ };
11
+ export type Severity = (typeof Severity)[keyof typeof Severity];
12
+ export interface SeverityGuidanceEntry {
13
+ severity: Severity;
14
+ guidance: string;
15
+ }
16
+ export declare const DEFAULT_SEVERITY_GUIDANCE: SeverityGuidanceEntry[];
17
+ export declare const Confidence: {
18
+ readonly Low: "low";
19
+ readonly Medium: "medium";
20
+ readonly High: "high";
21
+ };
22
+ export type Confidence = (typeof Confidence)[keyof typeof Confidence];
23
+ export type ConfidenceInput = Confidence | number;
24
+ export interface ConfidenceThresholds {
25
+ medium: number;
26
+ high: number;
27
+ }
28
+ export declare const DEFAULT_CONFIDENCE_THRESHOLDS: ConfidenceThresholds;
29
+ export interface Evidence {
30
+ location?: {
31
+ file?: string;
32
+ line?: number;
33
+ endLine?: number;
34
+ };
35
+ file?: string;
36
+ line?: number;
37
+ endLine?: number;
38
+ label?: string;
39
+ message?: string;
40
+ snippet?: string;
41
+ data?: Record<string, unknown>;
42
+ metadata?: Record<string, unknown>;
43
+ }
44
+ export interface Remediation {
45
+ complexity?: "trivial" | "small" | "medium" | "large" | "architectural";
46
+ }
47
+ export interface RecommendationInput {
48
+ summary: string;
49
+ details?: string;
50
+ }
51
+ export type ObservationTitle = string | {
52
+ singular: string;
53
+ plural: string;
54
+ };
55
+ export type ObservationSummary = string | {
56
+ singular?: string;
57
+ grouped?: string;
58
+ };
59
+ export type ConfidenceAggregation = "maximum" | "minimum" | "average";
60
+ export type SeverityAggregation = "highest" | "lowest";
61
+ export interface ObservationInit {
62
+ ruleId: string;
63
+ subject: string;
64
+ groupKey?: string;
65
+ groupBy?: string[];
66
+ groupedTitle?: string;
67
+ deduplicate?: boolean;
68
+ category?: string;
69
+ severity?: Severity;
70
+ confidence?: ConfidenceInput;
71
+ confidenceAggregation?: ConfidenceAggregation;
72
+ severityAggregation?: SeverityAggregation;
73
+ title: ObservationTitle;
74
+ summary?: ObservationSummary;
75
+ whyItMatters?: string;
76
+ impact?: string;
77
+ location?: Evidence;
78
+ evidence?: string | Record<string, unknown>;
79
+ recommendation?: string | RecommendationInput;
80
+ remediation?: Remediation;
81
+ tags?: string[];
82
+ metadata?: Record<string, unknown>;
83
+ }
84
+ export interface FindingInput {
85
+ id?: string;
86
+ ruleId?: string;
87
+ groupKey?: string;
88
+ deduplicate?: boolean;
89
+ title: string;
90
+ category: string;
91
+ severity: Severity;
92
+ confidence: ConfidenceInput;
93
+ summary: string;
94
+ whyItMatters?: string;
95
+ impact?: string;
96
+ evidence: Evidence[];
97
+ recommendation?: string;
98
+ remediation?: Remediation;
99
+ tags?: string[];
100
+ metadata?: Record<string, unknown>;
101
+ }
102
+ export interface ReviewFinding {
103
+ id: string;
104
+ ruleId?: string;
105
+ groupKey?: string;
106
+ title: string;
107
+ category: string;
108
+ severity: Severity;
109
+ confidence: Confidence;
110
+ summary: string;
111
+ whyItMatters?: string;
112
+ impact?: string;
113
+ evidence: Evidence[];
114
+ recommendation?: string;
115
+ remediation?: Remediation;
116
+ synthesisSource?: "rule" | "generic";
117
+ tags?: string[];
118
+ metadata?: Record<string, unknown>;
119
+ }
120
+ export interface ReviewNote {
121
+ key: string;
122
+ summary: string;
123
+ evidence?: Evidence[];
124
+ metadata?: Record<string, unknown>;
125
+ }
126
+ export interface ReviewAssessment {
127
+ risk: "none" | "low" | "medium" | "high" | "critical";
128
+ summary?: string;
129
+ }
130
+ export interface ReviewOpinion {
131
+ ship?: boolean;
132
+ summary: string;
133
+ }
134
+ export interface ReviewScore {
135
+ key: string;
136
+ label?: string;
137
+ score: number;
138
+ max?: number;
139
+ summary?: string;
140
+ }
141
+ export interface ReviewPolicy {
142
+ minimumConfidence?: Confidence;
143
+ maximumFindings?: number;
144
+ includeInformational?: boolean;
145
+ confidenceThresholds?: ConfidenceThresholds;
146
+ severityOverrides?: Record<string, Severity>;
147
+ }
148
+ export interface ReviewResult {
149
+ adversary: {
150
+ name: string;
151
+ version?: string;
152
+ };
153
+ target: {
154
+ repository?: string;
155
+ filesScanned?: number;
156
+ };
157
+ assessment?: ReviewAssessment;
158
+ positives: ReviewNote[];
159
+ observations: ReviewNote[];
160
+ scores?: ReviewScore[];
161
+ findings: ReviewFinding[];
162
+ opinion?: ReviewOpinion;
163
+ suppressed: {
164
+ observations: number;
165
+ findings: number;
166
+ };
167
+ timing?: {
168
+ buildMs?: number;
169
+ startupMs?: number;
170
+ scanMs?: number;
171
+ totalMs?: number;
172
+ };
173
+ suppressedFindings?: ReviewFinding[];
174
+ rawObservations?: ObservationInit[];
175
+ }
176
+ export interface AdversaryRunEnvelope {
177
+ protocolVersion: typeof ADVERSARY_RUN_PROTOCOL_VERSION;
178
+ result: ReviewResult;
179
+ }
180
+ export interface RuntimeInput {
181
+ source: {
182
+ path: string;
183
+ };
184
+ [key: string]: unknown;
185
+ }
186
+ export interface Summary {
187
+ files_scanned?: number;
188
+ [key: string]: number | string | boolean | null | undefined;
189
+ }
190
+ export interface RuleContext {
191
+ repoPath: string;
192
+ summary: Summary;
193
+ cache: Map<string, unknown>;
194
+ relpath: (path: string) => string;
195
+ glob: (pattern: string) => Promise<string[]>;
196
+ rglob: (pattern: string) => Promise<string[]>;
197
+ observe: (observation: ObservationInit) => void;
198
+ finding: (finding: FindingInput) => void;
199
+ review: {
200
+ assessment: (assessment: ReviewAssessment) => void;
201
+ positive: (note: ReviewNote) => void;
202
+ observe: (note: ReviewNote) => void;
203
+ score: (score: ReviewScore) => void;
204
+ opinion: (opinion: ReviewOpinion) => void;
205
+ };
206
+ }
207
+ export type RuleHandler = (context: RuleContext) => void | Promise<void>;
208
+ export interface AdversaryOptions {
209
+ name: string;
210
+ version?: string;
211
+ review?: ReviewPolicy;
212
+ }
213
+ export interface RunOptions {
214
+ input?: RuntimeInput;
215
+ inputPath?: string;
216
+ outputPath?: string;
217
+ write?: boolean;
218
+ review?: ReviewPolicy;
219
+ includeSuppressed?: boolean;
220
+ includeRawObservations?: boolean;
221
+ }
222
+ export interface ReviewRenderer {
223
+ render(result: ReviewResult): Promise<void> | void;
224
+ }
225
+ export interface RuleDefinition {
226
+ id: string;
227
+ category?: string;
228
+ defaultSeverity?: Severity;
229
+ defaultConfidence?: ConfidenceInput;
230
+ groupBy?: string[];
231
+ aggregate?: (observations: ObservationInit[]) => Partial<ReviewFinding>;
232
+ }
233
+ export declare class RuleRegistry {
234
+ private readonly rules;
235
+ register(rule: RuleDefinition): void;
236
+ lookup(ruleId: string): RuleDefinition | undefined;
237
+ has(ruleId: string): boolean;
238
+ }
239
+ export declare const ruleRegistry: RuleRegistry;
240
+ export declare function defineRule(rule: RuleDefinition): void;
241
+ export declare const log: {
242
+ debug(message: unknown): void;
243
+ info(message: unknown): void;
244
+ warn(message: unknown): void;
245
+ error(message: unknown): void;
246
+ };
247
+ export declare class Adversary {
248
+ readonly name: string;
249
+ readonly version?: string;
250
+ readonly rules: Array<{
251
+ id: string;
252
+ handler: RuleHandler;
253
+ }>;
254
+ readonly reviewPolicy: ReviewPolicy;
255
+ constructor(options: AdversaryOptions);
256
+ rule(id: string, handler: RuleHandler): void;
257
+ run(options?: RunOptions): Promise<ReviewResult>;
258
+ }
259
+ export declare function createAdversaryRunEnvelope(result: ReviewResult): AdversaryRunEnvelope;
260
+ export declare function parseInput(path?: string): Promise<RuntimeInput>;
261
+ export declare function writeOutput(output: unknown, path?: string): Promise<void>;
262
+ export declare function normalizeConfidence(confidence: ConfidenceInput, thresholds?: ConfidenceThresholds): Confidence;
263
+ export declare function rankFindings(findings: ReviewFinding[]): ReviewFinding[];
264
+ export declare class JsonRenderer implements ReviewRenderer {
265
+ private readonly write;
266
+ constructor(write?: (text: string) => void);
267
+ render(result: ReviewResult): void;
268
+ }
269
+ export declare class TerminalRenderer implements ReviewRenderer {
270
+ private readonly write;
271
+ constructor(write?: (text: string) => void);
272
+ render(result: ReviewResult): void;
273
+ }
274
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}