guardrail-core 1.0.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.
Files changed (189) hide show
  1. package/dist/__tests__/autopilot.test.d.ts +7 -0
  2. package/dist/__tests__/autopilot.test.d.ts.map +1 -0
  3. package/dist/__tests__/autopilot.test.js +156 -0
  4. package/dist/__tests__/tier-config.test.d.ts +9 -0
  5. package/dist/__tests__/tier-config.test.d.ts.map +1 -0
  6. package/dist/__tests__/tier-config.test.js +230 -0
  7. package/dist/__tests__/utils/hash-inline.test.d.ts +2 -0
  8. package/dist/__tests__/utils/hash-inline.test.d.ts.map +1 -0
  9. package/dist/__tests__/utils/hash-inline.test.js +62 -0
  10. package/dist/__tests__/utils/hash.test.d.ts +3 -0
  11. package/dist/__tests__/utils/hash.test.d.ts.map +1 -0
  12. package/dist/__tests__/utils/hash.test.js +95 -0
  13. package/dist/__tests__/utils/simple.test.d.ts +1 -0
  14. package/dist/__tests__/utils/simple.test.d.ts.map +1 -0
  15. package/dist/__tests__/utils/simple.test.js +10 -0
  16. package/dist/__tests__/utils/utils-simple.test.d.ts +1 -0
  17. package/dist/__tests__/utils/utils-simple.test.d.ts.map +1 -0
  18. package/dist/__tests__/utils/utils-simple.test.js +6 -0
  19. package/dist/__tests__/utils/utils.test.d.ts +15 -0
  20. package/dist/__tests__/utils/utils.test.d.ts.map +1 -0
  21. package/dist/__tests__/utils/utils.test.js +172 -0
  22. package/dist/autopilot/autopilot-runner.d.ts +33 -0
  23. package/dist/autopilot/autopilot-runner.d.ts.map +1 -0
  24. package/dist/autopilot/autopilot-runner.js +479 -0
  25. package/dist/autopilot/index.d.ts +6 -0
  26. package/dist/autopilot/index.d.ts.map +1 -0
  27. package/dist/autopilot/index.js +25 -0
  28. package/dist/autopilot/types.d.ts +102 -0
  29. package/dist/autopilot/types.d.ts.map +1 -0
  30. package/dist/autopilot/types.js +18 -0
  31. package/dist/cache/index.d.ts +7 -0
  32. package/dist/cache/index.d.ts.map +1 -0
  33. package/dist/cache/index.js +22 -0
  34. package/dist/cache/redis-cache.d.ts +145 -0
  35. package/dist/cache/redis-cache.d.ts.map +1 -0
  36. package/dist/cache/redis-cache.js +459 -0
  37. package/dist/ci/github-actions.d.ts +77 -0
  38. package/dist/ci/github-actions.d.ts.map +1 -0
  39. package/dist/ci/github-actions.js +277 -0
  40. package/dist/ci/index.d.ts +12 -0
  41. package/dist/ci/index.d.ts.map +1 -0
  42. package/dist/ci/index.js +27 -0
  43. package/dist/ci/pre-commit.d.ts +65 -0
  44. package/dist/ci/pre-commit.d.ts.map +1 -0
  45. package/dist/ci/pre-commit.js +286 -0
  46. package/dist/entitlements.d.ts +149 -0
  47. package/dist/entitlements.d.ts.map +1 -0
  48. package/dist/entitlements.js +464 -0
  49. package/dist/env.d.ts +113 -0
  50. package/dist/env.d.ts.map +1 -0
  51. package/dist/env.js +204 -0
  52. package/dist/fix-packs/__tests__/generate-fix-packs.test.d.ts +7 -0
  53. package/dist/fix-packs/__tests__/generate-fix-packs.test.d.ts.map +1 -0
  54. package/dist/fix-packs/__tests__/generate-fix-packs.test.js +250 -0
  55. package/dist/fix-packs/generate-fix-packs.d.ts +15 -0
  56. package/dist/fix-packs/generate-fix-packs.d.ts.map +1 -0
  57. package/dist/fix-packs/generate-fix-packs.js +505 -0
  58. package/dist/fix-packs/index.d.ts +8 -0
  59. package/dist/fix-packs/index.d.ts.map +1 -0
  60. package/dist/fix-packs/index.js +23 -0
  61. package/dist/fix-packs/types.d.ts +113 -0
  62. package/dist/fix-packs/types.d.ts.map +1 -0
  63. package/dist/fix-packs/types.js +71 -0
  64. package/dist/index.d.ts +13 -0
  65. package/dist/index.d.ts.map +1 -0
  66. package/dist/index.js +28 -0
  67. package/dist/metrics/prometheus.d.ts +99 -0
  68. package/dist/metrics/prometheus.d.ts.map +1 -0
  69. package/dist/metrics/prometheus.js +306 -0
  70. package/dist/quota-ledger.d.ts +119 -0
  71. package/dist/quota-ledger.d.ts.map +1 -0
  72. package/dist/quota-ledger.js +462 -0
  73. package/dist/rbac/__tests__/permissions.test.d.ts +8 -0
  74. package/dist/rbac/__tests__/permissions.test.d.ts.map +1 -0
  75. package/dist/rbac/__tests__/permissions.test.js +350 -0
  76. package/dist/rbac/index.d.ts +9 -0
  77. package/dist/rbac/index.d.ts.map +1 -0
  78. package/dist/rbac/index.js +32 -0
  79. package/dist/rbac/permissions.d.ts +71 -0
  80. package/dist/rbac/permissions.d.ts.map +1 -0
  81. package/dist/rbac/permissions.js +247 -0
  82. package/dist/rbac/types.d.ts +69 -0
  83. package/dist/rbac/types.d.ts.map +1 -0
  84. package/dist/rbac/types.js +213 -0
  85. package/dist/tier-config.d.ts +203 -0
  86. package/dist/tier-config.d.ts.map +1 -0
  87. package/dist/tier-config.js +675 -0
  88. package/dist/types.d.ts +365 -0
  89. package/dist/types.d.ts.map +1 -0
  90. package/dist/types.js +5 -0
  91. package/dist/utils.d.ts +36 -0
  92. package/dist/utils.d.ts.map +1 -0
  93. package/dist/utils.js +127 -0
  94. package/dist/verified-autofix/__tests__/format-validator.test.d.ts +11 -0
  95. package/dist/verified-autofix/__tests__/format-validator.test.d.ts.map +1 -0
  96. package/dist/verified-autofix/__tests__/format-validator.test.js +285 -0
  97. package/dist/verified-autofix/__tests__/pipeline.test.d.ts +11 -0
  98. package/dist/verified-autofix/__tests__/pipeline.test.d.ts.map +1 -0
  99. package/dist/verified-autofix/__tests__/pipeline.test.js +389 -0
  100. package/dist/verified-autofix/__tests__/repo-fingerprint.test.d.ts +11 -0
  101. package/dist/verified-autofix/__tests__/repo-fingerprint.test.d.ts.map +1 -0
  102. package/dist/verified-autofix/__tests__/repo-fingerprint.test.js +236 -0
  103. package/dist/verified-autofix/__tests__/workspace.test.d.ts +11 -0
  104. package/dist/verified-autofix/__tests__/workspace.test.d.ts.map +1 -0
  105. package/dist/verified-autofix/__tests__/workspace.test.js +314 -0
  106. package/dist/verified-autofix/format-validator.d.ts +101 -0
  107. package/dist/verified-autofix/format-validator.d.ts.map +1 -0
  108. package/dist/verified-autofix/format-validator.js +446 -0
  109. package/dist/verified-autofix/index.d.ts +14 -0
  110. package/dist/verified-autofix/index.d.ts.map +1 -0
  111. package/dist/verified-autofix/index.js +39 -0
  112. package/dist/verified-autofix/pipeline.d.ts +68 -0
  113. package/dist/verified-autofix/pipeline.d.ts.map +1 -0
  114. package/dist/verified-autofix/pipeline.js +330 -0
  115. package/dist/verified-autofix/repo-fingerprint.d.ts +56 -0
  116. package/dist/verified-autofix/repo-fingerprint.d.ts.map +1 -0
  117. package/dist/verified-autofix/repo-fingerprint.js +396 -0
  118. package/dist/verified-autofix/workspace.d.ts +83 -0
  119. package/dist/verified-autofix/workspace.d.ts.map +1 -0
  120. package/dist/verified-autofix/workspace.js +454 -0
  121. package/dist/verified-autofix.d.ts +182 -0
  122. package/dist/verified-autofix.d.ts.map +1 -0
  123. package/dist/verified-autofix.js +1021 -0
  124. package/dist/visualization/dependency-graph.d.ts +79 -0
  125. package/dist/visualization/dependency-graph.d.ts.map +1 -0
  126. package/dist/visualization/dependency-graph.js +399 -0
  127. package/dist/visualization/index.d.ts +5 -0
  128. package/dist/visualization/index.d.ts.map +1 -0
  129. package/dist/visualization/index.js +20 -0
  130. package/package.json +29 -0
  131. package/src/__tests__/autopilot.test.ts +196 -0
  132. package/src/__tests__/tier-config.test.ts +289 -0
  133. package/src/__tests__/utils/hash-inline.test.ts +76 -0
  134. package/src/__tests__/utils/hash.test.ts +119 -0
  135. package/src/__tests__/utils/simple.test.ts +10 -0
  136. package/src/__tests__/utils/utils-simple.test.ts +5 -0
  137. package/src/__tests__/utils/utils.test.ts +203 -0
  138. package/src/autopilot/autopilot-runner.ts +503 -0
  139. package/src/autopilot/index.ts +6 -0
  140. package/src/autopilot/types.ts +119 -0
  141. package/src/cache/index.ts +7 -0
  142. package/src/cache/redis-cache.d.ts +155 -0
  143. package/src/cache/redis-cache.d.ts.map +1 -0
  144. package/src/cache/redis-cache.ts +517 -0
  145. package/src/ci/github-actions.ts +335 -0
  146. package/src/ci/index.ts +12 -0
  147. package/src/ci/pre-commit.ts +338 -0
  148. package/src/db/usage-schema.prisma +114 -0
  149. package/src/entitlements.ts +570 -0
  150. package/src/env.d.ts +68 -0
  151. package/src/env.d.ts.map +1 -0
  152. package/src/env.ts +247 -0
  153. package/src/fix-packs/__tests__/generate-fix-packs.test.ts +317 -0
  154. package/src/fix-packs/generate-fix-packs.ts +577 -0
  155. package/src/fix-packs/index.ts +8 -0
  156. package/src/fix-packs/types.ts +206 -0
  157. package/src/index.d.ts +7 -0
  158. package/src/index.d.ts.map +1 -0
  159. package/src/index.ts +12 -0
  160. package/src/metrics/prometheus.d.ts +104 -0
  161. package/src/metrics/prometheus.d.ts.map +1 -0
  162. package/src/metrics/prometheus.ts +446 -0
  163. package/src/quota-ledger.ts +548 -0
  164. package/src/rbac/__tests__/permissions.test.ts +446 -0
  165. package/src/rbac/index.ts +46 -0
  166. package/src/rbac/permissions.ts +301 -0
  167. package/src/rbac/types.ts +298 -0
  168. package/src/tier-config.json +157 -0
  169. package/src/tier-config.ts +815 -0
  170. package/src/types.d.ts +365 -0
  171. package/src/types.d.ts.map +1 -0
  172. package/src/types.ts +441 -0
  173. package/src/utils.d.ts +36 -0
  174. package/src/utils.d.ts.map +1 -0
  175. package/src/utils.ts +140 -0
  176. package/src/verified-autofix/__tests__/format-validator.test.ts +335 -0
  177. package/src/verified-autofix/__tests__/pipeline.test.ts +419 -0
  178. package/src/verified-autofix/__tests__/repo-fingerprint.test.ts +241 -0
  179. package/src/verified-autofix/__tests__/workspace.test.ts +373 -0
  180. package/src/verified-autofix/format-validator.ts +517 -0
  181. package/src/verified-autofix/index.ts +63 -0
  182. package/src/verified-autofix/pipeline.ts +403 -0
  183. package/src/verified-autofix/repo-fingerprint.ts +459 -0
  184. package/src/verified-autofix/workspace.ts +531 -0
  185. package/src/verified-autofix.ts +1187 -0
  186. package/src/visualization/dependency-graph.d.ts +85 -0
  187. package/src/visualization/dependency-graph.d.ts.map +1 -0
  188. package/src/visualization/dependency-graph.ts +495 -0
  189. package/src/visualization/index.ts +5 -0
@@ -0,0 +1,365 @@
1
+ export interface FilesystemPermissions {
2
+ allowedPaths: string[];
3
+ deniedPaths: string[];
4
+ operations: ('read' | 'write' | 'delete' | 'execute')[];
5
+ maxFileSize: number;
6
+ [key: string]: unknown;
7
+ }
8
+ export interface NetworkPermissions {
9
+ allowedDomains: string[];
10
+ deniedDomains: string[];
11
+ maxRequests: number;
12
+ allowedProtocols: ('http' | 'https' | 'ws' | 'wss')[];
13
+ [key: string]: unknown;
14
+ }
15
+ export interface ShellPermissions {
16
+ allowedCommands: string[];
17
+ deniedCommands: string[];
18
+ requireConfirmation: string[];
19
+ allowEnvironmentVariables: boolean;
20
+ [key: string]: unknown;
21
+ }
22
+ export interface ResourceLimits {
23
+ maxMemoryMB: number;
24
+ maxCpuPercent: number;
25
+ maxTokens: number;
26
+ maxExecutionTimeMs: number;
27
+ [key: string]: unknown;
28
+ }
29
+ export interface AgentPermissionScope {
30
+ filesystem: FilesystemPermissions;
31
+ network: NetworkPermissions;
32
+ shell: ShellPermissions;
33
+ resources: ResourceLimits;
34
+ }
35
+ export interface FilesystemDetails {
36
+ operation: 'read' | 'write' | 'delete' | 'execute';
37
+ path: string;
38
+ content?: string;
39
+ size?: number;
40
+ }
41
+ export interface NetworkDetails {
42
+ method: string;
43
+ url: string;
44
+ headers?: Record<string, string>;
45
+ body?: unknown;
46
+ }
47
+ export interface ShellDetails {
48
+ command: string;
49
+ args: string[];
50
+ cwd?: string;
51
+ env?: Record<string, string>;
52
+ }
53
+ export type ActionDetails = FilesystemDetails | NetworkDetails | ShellDetails;
54
+ export interface ActionAttempt {
55
+ agentId: string;
56
+ taskId: string;
57
+ actionType: string;
58
+ category: 'code' | 'file' | 'network' | 'shell';
59
+ details: ActionDetails;
60
+ reasoning?: string;
61
+ }
62
+ export interface ActionDecision {
63
+ allowed: boolean;
64
+ reason: string;
65
+ alternativeSuggestion?: string;
66
+ riskLevel: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
67
+ requiresApproval: boolean;
68
+ }
69
+ export interface Evaluation {
70
+ passed: boolean;
71
+ reason: string;
72
+ violatedRules: string[];
73
+ suggestions: string[];
74
+ }
75
+ export interface SimpleValidationResult {
76
+ valid: boolean;
77
+ errors: string[];
78
+ warnings: string[];
79
+ }
80
+ export interface FileSnapshot {
81
+ path: string;
82
+ originalContent: string;
83
+ originalHash: string;
84
+ [key: string]: unknown;
85
+ }
86
+ export interface Checkpoint {
87
+ id: string;
88
+ agentId: string;
89
+ taskId: string;
90
+ modifiedFiles: FileSnapshot[];
91
+ resourcesUsed: ResourceUsage;
92
+ createdAt: Date;
93
+ }
94
+ export interface ResourceUsage {
95
+ memoryMB: number;
96
+ cpuPercent: number;
97
+ tokensUsed: number;
98
+ executionTimeMs: number;
99
+ apiCalls: number;
100
+ [key: string]: unknown;
101
+ }
102
+ export interface LimitCheck {
103
+ withinLimits: boolean;
104
+ violations: string[];
105
+ current: ResourceUsage;
106
+ limits: ResourceLimits;
107
+ }
108
+ export interface RollbackResult {
109
+ success: boolean;
110
+ filesRestored: number;
111
+ errors: string[];
112
+ }
113
+ export interface InjectionScanRequest {
114
+ content: string;
115
+ contentType: 'user_input' | 'code' | 'data_source';
116
+ context?: {
117
+ source: string;
118
+ metadata?: Record<string, unknown>;
119
+ };
120
+ }
121
+ export interface Detection {
122
+ type: string;
123
+ pattern: string;
124
+ location: {
125
+ start: number;
126
+ end: number;
127
+ line?: number;
128
+ };
129
+ severity: 'low' | 'medium' | 'high' | 'critical';
130
+ confidence: number;
131
+ description: string;
132
+ }
133
+ export interface InjectionScanResult {
134
+ verdict: 'CLEAN' | 'SUSPICIOUS' | 'MALICIOUS' | 'BLOCKED';
135
+ confidence: number;
136
+ detections: Detection[];
137
+ sanitizedContent?: string;
138
+ recommendation: {
139
+ action: 'allow' | 'sanitize' | 'block' | 'review';
140
+ reason: string;
141
+ };
142
+ scanDuration: number;
143
+ }
144
+ export interface ProcessedInput {
145
+ original: string;
146
+ processed: string;
147
+ wasSanitized: boolean;
148
+ detections: Detection[];
149
+ }
150
+ export interface CodeOutput {
151
+ code: string;
152
+ language: string;
153
+ outputType: 'code' | 'config' | 'documentation';
154
+ metadata?: Record<string, unknown>;
155
+ }
156
+ export interface Context {
157
+ projectPath?: string;
158
+ existingFiles?: string[];
159
+ dependencies?: Record<string, string>;
160
+ framework?: string;
161
+ }
162
+ export interface StageResult {
163
+ stageName: string;
164
+ passed: boolean;
165
+ score: number;
166
+ issues: ValidationIssue[];
167
+ warnings: string[];
168
+ duration: number;
169
+ }
170
+ export interface ValidationIssue {
171
+ type: string;
172
+ severity: 'error' | 'warning' | 'info';
173
+ message: string;
174
+ location?: {
175
+ line: number;
176
+ column: number;
177
+ };
178
+ suggestion?: string;
179
+ }
180
+ export interface ValidationRequest {
181
+ output: CodeOutput;
182
+ context?: Context;
183
+ request?: string;
184
+ }
185
+ export interface DetailedValidationResult {
186
+ verdict: 'ACCEPT' | 'MODIFY' | 'REJECT' | 'HUMAN_REVIEW';
187
+ confidence: number;
188
+ stages: StageResult[];
189
+ overallScore: number;
190
+ modifiedOutput?: string;
191
+ recommendation: string;
192
+ }
193
+ export interface PackageCheck {
194
+ exists: boolean;
195
+ name: string;
196
+ version?: string;
197
+ registry: string;
198
+ alternativeSuggestions?: string[];
199
+ }
200
+ export interface APICheck {
201
+ exists: boolean;
202
+ package: string;
203
+ method: string;
204
+ signature?: string;
205
+ documentation?: string;
206
+ alternativeSuggestions?: string[];
207
+ }
208
+ export interface CodeIntent {
209
+ primary: string;
210
+ secondary: string[];
211
+ entities: string[];
212
+ operations: string[];
213
+ }
214
+ export interface RequestIntent {
215
+ goal: string;
216
+ constraints: string[];
217
+ expectedEntities: string[];
218
+ expectedOperations: string[];
219
+ }
220
+ export interface IntentComparison {
221
+ alignmentScore: number;
222
+ matches: string[];
223
+ mismatches: string[];
224
+ recommendation: string;
225
+ }
226
+ export interface AuditEvent {
227
+ agentId: string;
228
+ taskId: string;
229
+ correlationId: string;
230
+ sequenceNumber: number;
231
+ actionType: string;
232
+ category: string;
233
+ input?: unknown;
234
+ output?: unknown;
235
+ target?: {
236
+ type: string;
237
+ path?: string;
238
+ url?: string;
239
+ };
240
+ reasoning: {
241
+ summary: string;
242
+ considerations: string[];
243
+ confidence: number;
244
+ };
245
+ status: 'SUCCESS' | 'FAILURE' | 'BLOCKED' | 'PENDING_APPROVAL' | 'ROLLED_BACK';
246
+ error?: {
247
+ message: string;
248
+ code: string;
249
+ stack?: string;
250
+ };
251
+ impact?: {
252
+ filesModified?: string[];
253
+ linesAdded?: number;
254
+ linesDeleted?: number;
255
+ };
256
+ diff?: {
257
+ before: string;
258
+ after: string;
259
+ unified: string;
260
+ };
261
+ riskLevel: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
262
+ riskFactors: string[];
263
+ sensitiveData: boolean;
264
+ piiInvolved: boolean;
265
+ duration?: number;
266
+ timestamp: Date;
267
+ previousHash?: string;
268
+ }
269
+ export interface Diff {
270
+ before: string;
271
+ after: string;
272
+ unified: string;
273
+ }
274
+ export interface CodeGenParams {
275
+ taskId: string;
276
+ agentId: string;
277
+ prompt: string;
278
+ generatedCode: string;
279
+ language: string;
280
+ reasoning: string;
281
+ }
282
+ export interface CodeModParams {
283
+ taskId: string;
284
+ agentId: string;
285
+ filePath: string;
286
+ originalCode: string;
287
+ modifiedCode: string;
288
+ reasoning: string;
289
+ }
290
+ export interface ShellParams {
291
+ taskId: string;
292
+ agentId: string;
293
+ command: string;
294
+ args: string[];
295
+ output: string;
296
+ exitCode: number;
297
+ }
298
+ export interface AuditQuery {
299
+ agentId?: string;
300
+ taskId?: string;
301
+ correlationId?: string;
302
+ startDate?: Date;
303
+ endDate?: Date;
304
+ actionType?: string;
305
+ status?: string;
306
+ riskLevel?: string;
307
+ limit?: number;
308
+ offset?: number;
309
+ }
310
+ export interface QueryResult {
311
+ events: AuditEvent[];
312
+ total: number;
313
+ page: number;
314
+ pageSize: number;
315
+ }
316
+ export interface Timeline {
317
+ taskId: string;
318
+ events: AuditEvent[];
319
+ summary: {
320
+ totalActions: number;
321
+ successfulActions: number;
322
+ failedActions: number;
323
+ blockedActions: number;
324
+ duration: number;
325
+ };
326
+ }
327
+ export interface Changes {
328
+ filePath: string;
329
+ timestamp: Date;
330
+ diff: Diff;
331
+ agent: string;
332
+ reasoning: string;
333
+ }
334
+ export interface Attribution {
335
+ projectId: string;
336
+ period: DateRange;
337
+ aiGenerated: {
338
+ lines: number;
339
+ files: number;
340
+ percentage: number;
341
+ };
342
+ humanWritten: {
343
+ lines: number;
344
+ files: number;
345
+ percentage: number;
346
+ };
347
+ breakdown: {
348
+ agent: string;
349
+ lines: number;
350
+ files: number;
351
+ }[];
352
+ }
353
+ export interface DateRange {
354
+ start: Date;
355
+ end: Date;
356
+ }
357
+ export type ReportType = 'audit' | 'compliance' | 'security' | 'attribution';
358
+ export interface Report {
359
+ type: ReportType;
360
+ period: DateRange;
361
+ summary: Record<string, unknown>;
362
+ details: unknown[];
363
+ generatedAt: Date;
364
+ }
365
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // ==========================================
3
+ // PERMISSION TYPES
4
+ // ==========================================
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Generate a unique correlation ID for tracking related actions
3
+ */
4
+ export declare function generateCorrelationId(): string;
5
+ /**
6
+ * Generate a task ID
7
+ */
8
+ export declare function generateTaskId(): string;
9
+ /**
10
+ * Calculate SHA-256 hash of content
11
+ */
12
+ export declare function calculateHash(content: string): string;
13
+ /**
14
+ * Calculate content entropy (randomness measure for secret detection)
15
+ */
16
+ export declare function calculateEntropy(str: string): number;
17
+ /**
18
+ * Mask sensitive value for logging
19
+ */
20
+ export declare function maskSensitiveValue(value: string): string;
21
+ /**
22
+ * Check if a path is within allowed paths
23
+ */
24
+ export declare function isPathAllowed(path: string, allowedPaths: string[], deniedPaths: string[]): boolean;
25
+ /**
26
+ * Check if a domain is allowed
27
+ */
28
+ export declare function isDomainAllowed(url: string, allowedDomains: string[], deniedDomains: string[]): boolean;
29
+ /**
30
+ * Sanitize error message for safe logging
31
+ */
32
+ export declare function sanitizeError(error: unknown): {
33
+ message: string;
34
+ code?: string;
35
+ };
36
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAqBpD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EAAE,EACtB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAuBT;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,MAAM,EAAE,EACxB,aAAa,EAAE,MAAM,EAAE,GACtB,OAAO,CA4BT;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAQhF"}
package/dist/utils.js ADDED
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateCorrelationId = generateCorrelationId;
7
+ exports.generateTaskId = generateTaskId;
8
+ exports.calculateHash = calculateHash;
9
+ exports.calculateEntropy = calculateEntropy;
10
+ exports.maskSensitiveValue = maskSensitiveValue;
11
+ exports.isPathAllowed = isPathAllowed;
12
+ exports.isDomainAllowed = isDomainAllowed;
13
+ exports.sanitizeError = sanitizeError;
14
+ const crypto_1 = __importDefault(require("crypto"));
15
+ /**
16
+ * Generate a unique correlation ID for tracking related actions
17
+ */
18
+ function generateCorrelationId() {
19
+ return `corr_${Date.now()}_${crypto_1.default.randomBytes(8).toString('hex')}`;
20
+ }
21
+ /**
22
+ * Generate a task ID
23
+ */
24
+ function generateTaskId() {
25
+ return `task_${Date.now()}_${crypto_1.default.randomBytes(8).toString('hex')}`;
26
+ }
27
+ /**
28
+ * Calculate SHA-256 hash of content
29
+ */
30
+ function calculateHash(content) {
31
+ return crypto_1.default.createHash('sha256').update(content).digest('hex');
32
+ }
33
+ /**
34
+ * Calculate content entropy (randomness measure for secret detection)
35
+ */
36
+ function calculateEntropy(str) {
37
+ const len = str.length;
38
+ const frequencies = {};
39
+ for (let i = 0; i < len; i++) {
40
+ const char = str[i];
41
+ if (char) {
42
+ frequencies[char] = (frequencies[char] || 0) + 1;
43
+ }
44
+ }
45
+ let entropy = 0;
46
+ for (const char in frequencies) {
47
+ const frequency = frequencies[char];
48
+ if (frequency !== undefined) {
49
+ const p = frequency / len;
50
+ entropy -= p * Math.log2(p);
51
+ }
52
+ }
53
+ return entropy;
54
+ }
55
+ /**
56
+ * Mask sensitive value for logging
57
+ */
58
+ function maskSensitiveValue(value) {
59
+ if (value.length <= 8) {
60
+ return '***';
61
+ }
62
+ return `${value.substring(0, 4)}...${value.substring(value.length - 4)}`;
63
+ }
64
+ /**
65
+ * Check if a path is within allowed paths
66
+ */
67
+ function isPathAllowed(path, allowedPaths, deniedPaths) {
68
+ const normalizedPath = path.replace(/\\/g, '/');
69
+ // Check denied paths first (more restrictive)
70
+ for (const deniedPath of deniedPaths) {
71
+ if (normalizedPath.startsWith(deniedPath.replace(/\\/g, '/'))) {
72
+ return false;
73
+ }
74
+ }
75
+ // If no allowed paths specified, allow all (except denied)
76
+ if (allowedPaths.length === 0) {
77
+ return true;
78
+ }
79
+ // Check allowed paths
80
+ for (const allowedPath of allowedPaths) {
81
+ if (normalizedPath.startsWith(allowedPath.replace(/\\/g, '/'))) {
82
+ return true;
83
+ }
84
+ }
85
+ return false;
86
+ }
87
+ /**
88
+ * Check if a domain is allowed
89
+ */
90
+ function isDomainAllowed(url, allowedDomains, deniedDomains) {
91
+ try {
92
+ const urlObj = new URL(url);
93
+ const hostname = urlObj.hostname;
94
+ // Check denied domains first
95
+ for (const deniedDomain of deniedDomains) {
96
+ if (hostname === deniedDomain || hostname.endsWith(`.${deniedDomain}`)) {
97
+ return false;
98
+ }
99
+ }
100
+ // If no allowed domains specified, allow all (except denied)
101
+ if (allowedDomains.length === 0) {
102
+ return true;
103
+ }
104
+ // Check allowed domains
105
+ for (const allowedDomain of allowedDomains) {
106
+ if (hostname === allowedDomain || hostname.endsWith(`.${allowedDomain}`)) {
107
+ return true;
108
+ }
109
+ }
110
+ return false;
111
+ }
112
+ catch (error) {
113
+ return false;
114
+ }
115
+ }
116
+ /**
117
+ * Sanitize error message for safe logging
118
+ */
119
+ function sanitizeError(error) {
120
+ if (error instanceof Error) {
121
+ return {
122
+ message: error.message.replace(/\/[^\s:]+/g, '[path]'),
123
+ code: error.code,
124
+ };
125
+ }
126
+ return { message: 'Unknown error occurred' };
127
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Format Validator Tests
3
+ *
4
+ * Tests for the verified autofix format validation:
5
+ * - JSON shape validation
6
+ * - Unified diff parsing
7
+ * - Path safety checks
8
+ * - Stub detection
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=format-validator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-validator.test.d.ts","sourceRoot":"","sources":["../../../src/verified-autofix/__tests__/format-validator.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}