@agentlighthouse/core 0.1.0-alpha.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 (78) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +16 -0
  3. package/dist/analyzers/mcp.d.ts +8 -0
  4. package/dist/analyzers/mcp.d.ts.map +1 -0
  5. package/dist/analyzers/mcp.js +214 -0
  6. package/dist/analyzers/openapi.d.ts +7 -0
  7. package/dist/analyzers/openapi.d.ts.map +1 -0
  8. package/dist/analyzers/openapi.js +344 -0
  9. package/dist/analyzers/readiness.d.ts +8 -0
  10. package/dist/analyzers/readiness.d.ts.map +1 -0
  11. package/dist/analyzers/readiness.js +766 -0
  12. package/dist/analyzers/tasks.d.ts +3 -0
  13. package/dist/analyzers/tasks.d.ts.map +1 -0
  14. package/dist/analyzers/tasks.js +140 -0
  15. package/dist/changes/files.d.ts +5 -0
  16. package/dist/changes/files.d.ts.map +1 -0
  17. package/dist/changes/files.js +71 -0
  18. package/dist/comparison/compare.d.ts +14 -0
  19. package/dist/comparison/compare.d.ts.map +1 -0
  20. package/dist/comparison/compare.js +323 -0
  21. package/dist/config/profile.d.ts +16 -0
  22. package/dist/config/profile.d.ts.map +1 -0
  23. package/dist/config/profile.js +47 -0
  24. package/dist/detection/project.d.ts +4 -0
  25. package/dist/detection/project.d.ts.map +1 -0
  26. package/dist/detection/project.js +225 -0
  27. package/dist/findings/helpers.d.ts +36 -0
  28. package/dist/findings/helpers.d.ts.map +1 -0
  29. package/dist/findings/helpers.js +115 -0
  30. package/dist/findings/locations.d.ts +4 -0
  31. package/dist/findings/locations.d.ts.map +1 -0
  32. package/dist/findings/locations.js +117 -0
  33. package/dist/generators/artifacts.d.ts +6 -0
  34. package/dist/generators/artifacts.d.ts.map +1 -0
  35. package/dist/generators/artifacts.js +255 -0
  36. package/dist/index.d.ts +486 -0
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +451 -0
  39. package/dist/probes/commands.d.ts +7 -0
  40. package/dist/probes/commands.d.ts.map +1 -0
  41. package/dist/probes/commands.js +198 -0
  42. package/dist/reporters/cli.d.ts +4 -0
  43. package/dist/reporters/cli.d.ts.map +1 -0
  44. package/dist/reporters/cli.js +42 -0
  45. package/dist/reporters/comparison.d.ts +13 -0
  46. package/dist/reporters/comparison.d.ts.map +1 -0
  47. package/dist/reporters/comparison.js +227 -0
  48. package/dist/reporters/github-summary.d.ts +4 -0
  49. package/dist/reporters/github-summary.d.ts.map +1 -0
  50. package/dist/reporters/github-summary.js +4 -0
  51. package/dist/reporters/json.d.ts +3 -0
  52. package/dist/reporters/json.d.ts.map +1 -0
  53. package/dist/reporters/json.js +3 -0
  54. package/dist/reporters/markdown.d.ts +3 -0
  55. package/dist/reporters/markdown.d.ts.map +1 -0
  56. package/dist/reporters/markdown.js +146 -0
  57. package/dist/reporters/pr-summary.d.ts +8 -0
  58. package/dist/reporters/pr-summary.d.ts.map +1 -0
  59. package/dist/reporters/pr-summary.js +38 -0
  60. package/dist/reporters/sarif.d.ts +3 -0
  61. package/dist/reporters/sarif.d.ts.map +1 -0
  62. package/dist/reporters/sarif.js +119 -0
  63. package/dist/reporters/shared.d.ts +8 -0
  64. package/dist/reporters/shared.d.ts.map +1 -0
  65. package/dist/reporters/shared.js +26 -0
  66. package/dist/scanners/filesystem.d.ts +6 -0
  67. package/dist/scanners/filesystem.d.ts.map +1 -0
  68. package/dist/scanners/filesystem.js +231 -0
  69. package/dist/schemas/types.d.ts +6652 -0
  70. package/dist/schemas/types.d.ts.map +1 -0
  71. package/dist/schemas/types.js +383 -0
  72. package/dist/scoring/calibration.d.ts +18 -0
  73. package/dist/scoring/calibration.d.ts.map +1 -0
  74. package/dist/scoring/calibration.js +231 -0
  75. package/dist/scoring/model.d.ts +21 -0
  76. package/dist/scoring/model.d.ts.map +1 -0
  77. package/dist/scoring/model.js +109 -0
  78. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schemas/types.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAazB,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -0,0 +1,383 @@
1
+ import { z } from "zod";
2
+ export const severities = ["critical", "high", "medium", "low", "info"];
3
+ export const findingCategories = [
4
+ "agent_instructions",
5
+ "documentation",
6
+ "api_schema",
7
+ "mcp_tools",
8
+ "examples",
9
+ "setup_and_tests",
10
+ "security_and_privacy",
11
+ "task_benchmarks",
12
+ "repo_structure",
13
+ "freshness_and_consistency"
14
+ ];
15
+ export const scanProfiles = [
16
+ "default",
17
+ "devtool",
18
+ "api",
19
+ "mcp",
20
+ "docs",
21
+ "library",
22
+ "internal"
23
+ ];
24
+ export const scoreConfidenceLevels = ["high", "medium", "low"];
25
+ export const changedFileStatuses = [
26
+ "added",
27
+ "modified",
28
+ "deleted",
29
+ "renamed",
30
+ "copied",
31
+ "unknown"
32
+ ];
33
+ export const changedFileSources = ["explicit", "git", "github", "unknown"];
34
+ export const findingSourceKinds = [
35
+ "markdown",
36
+ "openapi",
37
+ "mcp",
38
+ "task",
39
+ "config",
40
+ "project",
41
+ "unknown"
42
+ ];
43
+ export const prImpactClassifications = [
44
+ "touched",
45
+ "related",
46
+ "global",
47
+ "unrelated",
48
+ "unknown"
49
+ ];
50
+ export const suggestedFixTypes = [
51
+ "create_file",
52
+ "update_file",
53
+ "add_section",
54
+ "add_script",
55
+ "add_example",
56
+ "review_manually",
57
+ "none"
58
+ ];
59
+ export const projectTypes = [
60
+ "node_typescript",
61
+ "node_javascript",
62
+ "python",
63
+ "rust",
64
+ "go",
65
+ "docs_only",
66
+ "openapi_project",
67
+ "mcp_project",
68
+ "unknown"
69
+ ];
70
+ export const severitySchema = z.enum(severities);
71
+ export const findingCategorySchema = z.enum(findingCategories);
72
+ export const suggestedFixTypeSchema = z.enum(suggestedFixTypes);
73
+ export const projectTypeSchema = z.enum(projectTypes);
74
+ export const scanProfileSchema = z.enum(scanProfiles);
75
+ export const scoreConfidenceLevelSchema = z.enum(scoreConfidenceLevels);
76
+ export const changedFileStatusSchema = z.enum(changedFileStatuses);
77
+ export const changedFileSourceSchema = z.enum(changedFileSources);
78
+ export const findingSourceKindSchema = z.enum(findingSourceKinds);
79
+ export const prImpactClassificationSchema = z.enum(prImpactClassifications);
80
+ export const findingLocationSchema = z.object({
81
+ file: z.string(),
82
+ startLine: z.number().int().positive().optional(),
83
+ startColumn: z.number().int().positive().optional(),
84
+ endLine: z.number().int().positive().optional(),
85
+ endColumn: z.number().int().positive().optional(),
86
+ locationKey: z.string().optional(),
87
+ subject: z.string().optional(),
88
+ symbol: z.string().optional(),
89
+ sourceKind: findingSourceKindSchema
90
+ });
91
+ export const findingSchema = z.object({
92
+ id: z.string(),
93
+ ruleId: z.string(),
94
+ fingerprint: z.string().optional(),
95
+ identityParts: z.array(z.string()).optional(),
96
+ locationKey: z.string().optional(),
97
+ subject: z.string().optional(),
98
+ title: z.string(),
99
+ severity: severitySchema,
100
+ category: findingCategorySchema,
101
+ description: z.string(),
102
+ evidence: z.array(z.string()),
103
+ recommendation: z.string(),
104
+ affectedFile: z.string().optional(),
105
+ location: findingLocationSchema.optional(),
106
+ agentFailureMode: z.string().optional(),
107
+ fixExample: z.string().optional(),
108
+ docsLinks: z.array(z.string()).optional(),
109
+ suggestedFixType: suggestedFixTypeSchema
110
+ });
111
+ export const artifactSignalSchema = z.object({
112
+ path: z.string(),
113
+ exists: z.boolean(),
114
+ kind: z.enum(["file", "directory", "missing"]).default("missing"),
115
+ sizeBytes: z.number().nonnegative().optional(),
116
+ contentPreview: z.string().optional()
117
+ });
118
+ export const packageJsonSignalSchema = z.object({
119
+ path: z.string(),
120
+ name: z.string().optional(),
121
+ packageManager: z.string().optional(),
122
+ scripts: z.record(z.string()),
123
+ dependencies: z.array(z.string()),
124
+ devDependencies: z.array(z.string())
125
+ });
126
+ export const projectSignalsSchema = z.object({
127
+ rootPath: z.string(),
128
+ projectName: z.string(),
129
+ scannedFiles: z.array(z.string()),
130
+ artifacts: z.record(artifactSignalSchema),
131
+ docsMarkdownFiles: z.array(z.string()),
132
+ openApiFiles: z.array(z.string()),
133
+ mcpFiles: z.array(z.string()),
134
+ configFiles: z.array(z.string()),
135
+ benchmarkFiles: z.array(z.string()),
136
+ ignoredPaths: z.array(z.string()),
137
+ warnings: z.array(z.string()),
138
+ errors: z.array(z.string()),
139
+ scanStats: z.object({
140
+ filesScanned: z.number().nonnegative(),
141
+ textFilesRead: z.number().nonnegative(),
142
+ bytesRead: z.number().nonnegative(),
143
+ docsMarkdownFileCount: z.number().nonnegative(),
144
+ openApiFileCount: z.number().nonnegative(),
145
+ benchmarkFileCount: z.number().nonnegative()
146
+ }),
147
+ packageJson: packageJsonSignalSchema.optional(),
148
+ textByPath: z.record(z.string())
149
+ });
150
+ export const subscoreSchema = z.object({
151
+ id: z.string(),
152
+ label: z.string(),
153
+ score: z.number().min(0).max(100),
154
+ findingsCount: z.number().nonnegative().default(0)
155
+ });
156
+ export const detectedProjectSchema = z.object({
157
+ type: projectTypeSchema,
158
+ name: z.string(),
159
+ confidence: z.number().min(0).max(1),
160
+ evidence: z.array(z.string()),
161
+ packageManager: z.enum(["pnpm", "npm", "yarn", "bun", "pip", "poetry", "cargo", "go", "unknown"]),
162
+ frameworks: z.array(z.string())
163
+ });
164
+ export const detectedArtifactSchema = z.object({
165
+ path: z.string(),
166
+ exists: z.boolean(),
167
+ kind: z.enum(["file", "directory", "missing"]),
168
+ role: z.string(),
169
+ quality: z.enum(["missing", "thin", "partial", "strong", "unknown"]),
170
+ notes: z.array(z.string())
171
+ });
172
+ export const scanStatsSchema = z.object({
173
+ filesScanned: z.number().nonnegative(),
174
+ textFilesRead: z.number().nonnegative(),
175
+ bytesRead: z.number().nonnegative(),
176
+ docsMarkdownFileCount: z.number().nonnegative(),
177
+ openApiFileCount: z.number().nonnegative(),
178
+ benchmarkFileCount: z.number().nonnegative(),
179
+ findingCount: z.number().nonnegative()
180
+ });
181
+ export const coverageSchema = z.object({
182
+ evaluatedChecks: z.number().nonnegative(),
183
+ skippedChecks: z.number().nonnegative(),
184
+ notApplicableChecks: z.number().nonnegative(),
185
+ notEvaluatedChecks: z.number().nonnegative(),
186
+ evaluatedCategories: z.array(findingCategorySchema),
187
+ missingCategories: z.array(findingCategorySchema),
188
+ coveragePercent: z.number().min(0).max(100)
189
+ });
190
+ export const scoreCapSchema = z.object({
191
+ id: z.string(),
192
+ maxScore: z.number().min(0).max(100),
193
+ reason: z.string()
194
+ });
195
+ export const scoreInterpretationSectionSchema = z.object({
196
+ score: z.number().min(0).max(100),
197
+ summary: z.string(),
198
+ signals: z.array(z.string())
199
+ });
200
+ export const scoreInterpretationSchema = z.object({
201
+ agentReadinessScore: z.number().min(0).max(100),
202
+ humanReadableProjectSignals: scoreInterpretationSectionSchema,
203
+ agentSpecificContextLayer: scoreInterpretationSectionSchema,
204
+ verifiability: scoreInterpretationSectionSchema
205
+ });
206
+ export const apiOperationAnalysisSchema = z.object({
207
+ method: z.string(),
208
+ path: z.string(),
209
+ operationId: z.string().optional(),
210
+ summary: z.string().optional(),
211
+ destructive: z.boolean(),
212
+ hasRequestExample: z.boolean(),
213
+ hasResponseExample: z.boolean(),
214
+ hasErrorResponses: z.boolean(),
215
+ weak: z.boolean(),
216
+ riskReasons: z.array(z.string())
217
+ });
218
+ export const apiAnalysisSchema = z.object({
219
+ specFiles: z.array(z.string()),
220
+ operationCount: z.number().nonnegative(),
221
+ operationsWithExamples: z.number().nonnegative(),
222
+ operationsMissingDescriptions: z.number().nonnegative(),
223
+ destructiveOperations: z.array(z.string()),
224
+ authSchemes: z.array(z.string()),
225
+ weakOperations: z.array(z.string()),
226
+ highRiskOperations: z.array(z.string())
227
+ });
228
+ export const mcpToolAnalysisSchema = z.object({
229
+ name: z.string(),
230
+ file: z.string(),
231
+ description: z.string().optional(),
232
+ hasInputSchema: z.boolean(),
233
+ hasExamples: z.boolean(),
234
+ destructive: z.boolean(),
235
+ privacySensitive: z.boolean(),
236
+ weak: z.boolean(),
237
+ riskReasons: z.array(z.string())
238
+ });
239
+ export const mcpAnalysisSchema = z.object({
240
+ detected: z.boolean(),
241
+ files: z.array(z.string()),
242
+ toolCount: z.number().nonnegative(),
243
+ toolsWithSchemas: z.number().nonnegative(),
244
+ toolsWithExamples: z.number().nonnegative(),
245
+ ambiguousTools: z.array(z.string()),
246
+ destructiveTools: z.array(z.string()),
247
+ privacySensitiveTools: z.array(z.string()),
248
+ weakTools: z.array(z.string())
249
+ });
250
+ export const commandProbeResultSchema = z.object({
251
+ command: z.string(),
252
+ script: z.string(),
253
+ status: z.enum(["passed", "failed", "timed_out", "skipped"]),
254
+ exitCode: z.number().nullable(),
255
+ durationMs: z.number().nonnegative(),
256
+ stdoutExcerpt: z.string().optional(),
257
+ stderrExcerpt: z.string().optional(),
258
+ reason: z.string().optional()
259
+ });
260
+ export const commandProbeSummarySchema = z.object({
261
+ enabled: z.boolean(),
262
+ attempted: z.number().nonnegative(),
263
+ skipped: z.number().nonnegative(),
264
+ passed: z.number().nonnegative(),
265
+ failed: z.number().nonnegative(),
266
+ timedOut: z.number().nonnegative(),
267
+ results: z.array(commandProbeResultSchema)
268
+ });
269
+ export const scanResultSchema = z.object({
270
+ scanId: z.string(),
271
+ scannedPath: z.string(),
272
+ startedAt: z.string(),
273
+ completedAt: z.string(),
274
+ durationMs: z.number().nonnegative(),
275
+ agentLighthouseVersion: z.string(),
276
+ profile: scanProfileSchema,
277
+ projectName: z.string(),
278
+ scoringModelVersion: z.string(),
279
+ score: z.number().min(0).max(100),
280
+ rawScore: z.number().min(0).max(100),
281
+ scoreConfidence: scoreConfidenceLevelSchema,
282
+ scoreConfidenceScore: z.number().min(0).max(100),
283
+ coverage: coverageSchema,
284
+ scoringCaps: z.array(scoreCapSchema),
285
+ scoreInterpretation: scoreInterpretationSchema,
286
+ summary: z.string(),
287
+ subscores: z.array(subscoreSchema),
288
+ findings: z.array(findingSchema),
289
+ recommendations: z.array(z.string()),
290
+ apiAnalysis: apiAnalysisSchema,
291
+ mcpAnalysis: mcpAnalysisSchema,
292
+ commandProbes: commandProbeSummarySchema,
293
+ detectedProject: detectedProjectSchema,
294
+ detectedArtifacts: z.array(detectedArtifactSchema),
295
+ scanStats: scanStatsSchema,
296
+ ignoredPaths: z.array(z.string()),
297
+ errors: z.array(z.string()),
298
+ warnings: z.array(z.string()),
299
+ projectPath: z.string().optional(),
300
+ scannedAt: z.string().optional(),
301
+ recommendedActions: z.array(z.string()).optional(),
302
+ signals: projectSignalsSchema
303
+ });
304
+ export const comparisonVerdictSchema = z.enum([
305
+ "improved",
306
+ "regressed",
307
+ "unchanged",
308
+ "mixed",
309
+ "inconclusive"
310
+ ]);
311
+ export const comparisonScanSnapshotSchema = z.object({
312
+ scanId: z.string(),
313
+ scannedPath: z.string(),
314
+ score: z.number().min(0).max(100),
315
+ confidence: scoreConfidenceLevelSchema,
316
+ confidenceScore: z.number().min(0).max(100),
317
+ coverage: z.number().min(0).max(100),
318
+ profile: scanProfileSchema,
319
+ completedAt: z.string()
320
+ });
321
+ export const comparisonFindingSchema = findingSchema.extend({
322
+ previousSeverity: severitySchema.optional(),
323
+ currentSeverity: severitySchema.optional(),
324
+ prImpactClassification: prImpactClassificationSchema.optional()
325
+ });
326
+ export const changedFileSchema = z.object({
327
+ path: z.string(),
328
+ status: changedFileStatusSchema,
329
+ oldPath: z.string().optional(),
330
+ source: changedFileSourceSchema
331
+ });
332
+ export const prImpactSchema = z.object({
333
+ changedFiles: z.array(changedFileSchema),
334
+ changedFileCount: z.number().nonnegative(),
335
+ newFindingsOnChangedFiles: z.array(comparisonFindingSchema),
336
+ resolvedFindingsOnChangedFiles: z.array(comparisonFindingSchema),
337
+ unchangedFindingsOnChangedFiles: z.array(comparisonFindingSchema),
338
+ globalNewFindings: z.array(comparisonFindingSchema),
339
+ globalResolvedFindings: z.array(comparisonFindingSchema),
340
+ unknownLocationFindings: z.array(comparisonFindingSchema),
341
+ unrelatedExistingFindings: z.array(comparisonFindingSchema),
342
+ filesWithAgentReadinessImpact: z.array(z.string()),
343
+ highestChangedFileSeverity: severitySchema.optional(),
344
+ summary: z.string()
345
+ });
346
+ export const comparisonResultSchema = z.object({
347
+ comparisonId: z.string(),
348
+ baseline: comparisonScanSnapshotSchema,
349
+ current: comparisonScanSnapshotSchema,
350
+ deltas: z.object({
351
+ scoreDelta: z.number(),
352
+ confidenceDelta: z.number(),
353
+ coverageDelta: z.number(),
354
+ findingCountDelta: z.number(),
355
+ severityCountDeltas: z.record(z.number())
356
+ }),
357
+ findings: z.object({
358
+ new: z.array(comparisonFindingSchema),
359
+ resolved: z.array(comparisonFindingSchema),
360
+ unchanged: z.array(comparisonFindingSchema),
361
+ worsened: z.array(comparisonFindingSchema),
362
+ improved: z.array(comparisonFindingSchema)
363
+ }),
364
+ prImpact: prImpactSchema.optional(),
365
+ summary: z.object({
366
+ verdict: comparisonVerdictSchema,
367
+ regressionDetected: z.boolean(),
368
+ improvementDetected: z.boolean(),
369
+ topRegressions: z.array(z.string()),
370
+ topImprovements: z.array(z.string()),
371
+ recommendedActions: z.array(z.string()),
372
+ caveats: z.array(z.string())
373
+ }),
374
+ metadata: z.object({
375
+ agentLighthouseVersion: z.string(),
376
+ comparisonModelVersion: z.string()
377
+ })
378
+ });
379
+ export const generatedArtifactSchema = z.object({
380
+ path: z.string(),
381
+ content: z.string(),
382
+ description: z.string()
383
+ });
@@ -0,0 +1,18 @@
1
+ import type { Coverage, DetectedArtifact, DetectedProject, Finding, ProjectSignals, ScanProfile, ScoreCap, ScoreConfidenceLevel } from "../schemas/types.js";
2
+ export interface CalibratedScore {
3
+ score: number;
4
+ rawScore: number;
5
+ scoreConfidence: ScoreConfidenceLevel;
6
+ scoreConfidenceScore: number;
7
+ coverage: Coverage;
8
+ scoringCaps: ScoreCap[];
9
+ }
10
+ export declare function calibrateScore(input: {
11
+ rawScore: number;
12
+ findings: Finding[];
13
+ signals: ProjectSignals;
14
+ detectedProject: DetectedProject;
15
+ detectedArtifacts: DetectedArtifact[];
16
+ profile: ScanProfile;
17
+ }): CalibratedScore;
18
+ //# sourceMappingURL=calibration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calibration.d.ts","sourceRoot":"","sources":["../../src/scoring/calibration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,OAAO,EAEP,cAAc,EACd,WAAW,EACX,QAAQ,EACR,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AA8E7B,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,oBAAoB,CAAC;IACtC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,QAAQ,EAAE,CAAC;CACzB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,OAAO,EAAE,WAAW,CAAC;CACtB,GAAG,eAAe,CAgBlB"}
@@ -0,0 +1,231 @@
1
+ const allCategories = [
2
+ "agent_instructions",
3
+ "documentation",
4
+ "api_schema",
5
+ "mcp_tools",
6
+ "examples",
7
+ "setup_and_tests",
8
+ "security_and_privacy",
9
+ "task_benchmarks",
10
+ "repo_structure",
11
+ "freshness_and_consistency"
12
+ ];
13
+ const profileCategories = {
14
+ default: [
15
+ "agent_instructions",
16
+ "documentation",
17
+ "setup_and_tests",
18
+ "security_and_privacy",
19
+ "task_benchmarks",
20
+ "freshness_and_consistency"
21
+ ],
22
+ devtool: [
23
+ "agent_instructions",
24
+ "documentation",
25
+ "examples",
26
+ "setup_and_tests",
27
+ "security_and_privacy",
28
+ "task_benchmarks",
29
+ "freshness_and_consistency"
30
+ ],
31
+ api: [
32
+ "agent_instructions",
33
+ "documentation",
34
+ "api_schema",
35
+ "examples",
36
+ "setup_and_tests",
37
+ "security_and_privacy",
38
+ "task_benchmarks",
39
+ "freshness_and_consistency"
40
+ ],
41
+ mcp: [
42
+ "agent_instructions",
43
+ "documentation",
44
+ "mcp_tools",
45
+ "examples",
46
+ "setup_and_tests",
47
+ "security_and_privacy",
48
+ "task_benchmarks",
49
+ "freshness_and_consistency"
50
+ ],
51
+ docs: [
52
+ "agent_instructions",
53
+ "documentation",
54
+ "security_and_privacy",
55
+ "task_benchmarks",
56
+ "freshness_and_consistency"
57
+ ],
58
+ library: [
59
+ "agent_instructions",
60
+ "documentation",
61
+ "examples",
62
+ "setup_and_tests",
63
+ "security_and_privacy",
64
+ "task_benchmarks",
65
+ "freshness_and_consistency"
66
+ ],
67
+ internal: [
68
+ "agent_instructions",
69
+ "documentation",
70
+ "setup_and_tests",
71
+ "security_and_privacy",
72
+ "freshness_and_consistency"
73
+ ]
74
+ };
75
+ export function calibrateScore(input) {
76
+ const coverage = computeCoverage(input);
77
+ const scoringCaps = computeScoreCaps(input, coverage);
78
+ const cappedScore = scoringCaps.reduce((score, cap) => Math.min(score, cap.maxScore), input.rawScore);
79
+ const confidenceScore = computeConfidenceScore(input, coverage, scoringCaps);
80
+ return {
81
+ score: Math.round(cappedScore),
82
+ rawScore: input.rawScore,
83
+ scoreConfidence: confidenceScore >= 85 ? "high" : confidenceScore >= 60 ? "medium" : "low",
84
+ scoreConfidenceScore: confidenceScore,
85
+ coverage,
86
+ scoringCaps
87
+ };
88
+ }
89
+ function computeCoverage(input) {
90
+ const applicable = profileCategories[input.profile];
91
+ const notApplicable = allCategories.filter((category) => !applicable.includes(category));
92
+ const notEvaluatedFindings = input.findings.filter((finding) => finding.id.includes("not-evaluated"));
93
+ const evaluatedCategories = applicable.filter((category) => categoryWasEvaluated(category, input));
94
+ const missingCategories = applicable.filter((category) => !evaluatedCategories.includes(category));
95
+ const evaluatedChecks = evaluatedCategories.length +
96
+ input.findings.filter((finding) => finding.severity !== "info").length;
97
+ const notEvaluatedChecks = notEvaluatedFindings.length + missingCategories.length;
98
+ const applicableChecks = evaluatedChecks + notEvaluatedChecks;
99
+ return {
100
+ evaluatedChecks,
101
+ skippedChecks: 0,
102
+ notApplicableChecks: notApplicable.length,
103
+ notEvaluatedChecks,
104
+ evaluatedCategories,
105
+ missingCategories,
106
+ coveragePercent: applicableChecks === 0 ? 0 : Math.round((evaluatedChecks / applicableChecks) * 100)
107
+ };
108
+ }
109
+ function categoryWasEvaluated(category, input) {
110
+ if (input.findings.some((finding) => finding.category === category && !finding.id.includes("not-evaluated"))) {
111
+ return true;
112
+ }
113
+ if (category === "agent_instructions") {
114
+ return input.detectedArtifacts.some((artifact) => ["AGENTS.md", "CLAUDE.md", "llms.txt"].includes(artifact.path) && artifact.exists);
115
+ }
116
+ if (category === "documentation") {
117
+ return (input.signals.artifacts["README.md"]?.exists === true ||
118
+ input.signals.docsMarkdownFiles.length > 0);
119
+ }
120
+ if (category === "setup_and_tests") {
121
+ return (Boolean(input.signals.packageJson) ||
122
+ input.detectedProject.type === "python" ||
123
+ input.detectedProject.type === "rust" ||
124
+ input.detectedProject.type === "go");
125
+ }
126
+ if (category === "api_schema")
127
+ return input.signals.openApiFiles.length > 0;
128
+ if (category === "task_benchmarks") {
129
+ return input.signals.benchmarkFiles.length > 0;
130
+ }
131
+ if (category === "security_and_privacy") {
132
+ return (input.signals.artifacts[".agentlighthouseignore"]?.exists === true ||
133
+ input.signals.artifacts["AGENTS.md"]?.exists === true);
134
+ }
135
+ return false;
136
+ }
137
+ function computeScoreCaps(input, coverage) {
138
+ const ids = new Set(input.findings.map((finding) => finding.id));
139
+ const caps = [];
140
+ const hasAnyAgentInstructions = input.signals.artifacts["AGENTS.md"]?.exists ||
141
+ input.signals.artifacts["CLAUDE.md"]?.exists ||
142
+ input.signals.artifacts["llms.txt"]?.exists;
143
+ if (!hasAnyAgentInstructions) {
144
+ caps.push({
145
+ id: "cap.no-agent-instructions",
146
+ maxScore: 80,
147
+ reason: "No agent instruction artifact exists."
148
+ });
149
+ }
150
+ if (ids.has("setup.package-json-no-scripts") || ids.has("setup.missing-test-script")) {
151
+ caps.push({
152
+ id: "cap.setup-or-tests-not-verifiable",
153
+ maxScore: 85,
154
+ reason: "Setup or test commands are not verifiable from project scripts."
155
+ });
156
+ }
157
+ if (ids.has("docs.missing-readme") ||
158
+ (input.signals.docsMarkdownFiles.length === 0 && !input.signals.artifacts["README.md"]?.exists)) {
159
+ caps.push({
160
+ id: "cap.docs-missing",
161
+ maxScore: 70,
162
+ reason: "Documentation is missing or not analyzable."
163
+ });
164
+ }
165
+ if (input.detectedProject.type === "unknown") {
166
+ caps.push({
167
+ id: "cap.unknown-project-type",
168
+ maxScore: 75,
169
+ reason: "Project type could not be confidently detected."
170
+ });
171
+ }
172
+ if (input.signals.benchmarkFiles.length === 0 && input.profile !== "internal") {
173
+ caps.push({
174
+ id: "cap.no-task-benchmarks",
175
+ maxScore: 90,
176
+ reason: "No realistic agent task benchmark file was found."
177
+ });
178
+ }
179
+ if (coverage.coveragePercent < 70) {
180
+ caps.push({
181
+ id: "cap.low-coverage",
182
+ maxScore: 85,
183
+ reason: "Less than 70% of applicable checks were evaluated."
184
+ });
185
+ }
186
+ if (coverage.coveragePercent < 50) {
187
+ caps.push({
188
+ id: "cap.very-low-coverage",
189
+ maxScore: 70,
190
+ reason: "Less than half of applicable checks were evaluated."
191
+ });
192
+ }
193
+ if (input.detectedArtifacts.some((artifact) => ["AGENTS.md", "README.md", "llms.txt"].includes(artifact.path) &&
194
+ artifact.exists &&
195
+ (artifact.quality === "thin" || artifact.quality === "partial"))) {
196
+ caps.push({
197
+ id: "cap.shallow-key-artifacts",
198
+ maxScore: 95,
199
+ reason: "One or more key agent-readiness artifacts are shallow or partial."
200
+ });
201
+ }
202
+ if (input.profile === "api" && input.signals.openApiFiles.length === 0) {
203
+ caps.push({
204
+ id: "cap.api-profile-without-openapi",
205
+ maxScore: 82,
206
+ reason: "API profile selected but no OpenAPI schema was detected."
207
+ });
208
+ }
209
+ if (input.profile === "mcp" && input.signals.mcpFiles.length === 0) {
210
+ caps.push({
211
+ id: "cap.mcp-profile-without-tools",
212
+ maxScore: 82,
213
+ reason: "MCP profile selected but no MCP files or tool definitions were detected."
214
+ });
215
+ }
216
+ return caps.sort((a, b) => a.maxScore - b.maxScore);
217
+ }
218
+ function computeConfidenceScore(input, coverage, caps) {
219
+ let score = Math.round(coverage.coveragePercent * 0.55 + input.detectedProject.confidence * 100 * 0.25);
220
+ if (input.signals.artifacts["README.md"]?.exists)
221
+ score += 5;
222
+ if (input.signals.docsMarkdownFiles.length > 0)
223
+ score += 5;
224
+ if (input.signals.benchmarkFiles.length > 0)
225
+ score += 5;
226
+ if (input.signals.packageJson?.scripts.test || input.detectedProject.type === "docs_only")
227
+ score += 5;
228
+ score -= input.findings.filter((finding) => finding.id.includes("not-evaluated")).length * 6;
229
+ score -= caps.length * 3;
230
+ return Math.max(0, Math.min(100, Math.round(score)));
231
+ }
@@ -0,0 +1,21 @@
1
+ import type { Finding, ProjectSignals, ScoringModule, Subscore } from "../schemas/types.js";
2
+ export declare const scoringModelVersion = "0.1.0";
3
+ export declare const severityWeights: {
4
+ readonly critical: 20;
5
+ readonly high: 10;
6
+ readonly medium: 5;
7
+ readonly low: 2;
8
+ readonly info: 0;
9
+ };
10
+ export declare class TransparentScoringModel implements ScoringModule {
11
+ readonly id = "transparent-severity-scoring";
12
+ readonly version = "0.1.0";
13
+ score(findings: Finding[], _signals: ProjectSignals): {
14
+ scoringModelVersion: string;
15
+ score: number;
16
+ summary: string;
17
+ subscores: Subscore[];
18
+ recommendations: string[];
19
+ };
20
+ }
21
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/scoring/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE5F,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAE3C,eAAO,MAAM,eAAe;;;;;;CAM4B,CAAC;AAmCzD,qBAAa,uBAAwB,YAAW,aAAa;IAC3D,QAAQ,CAAC,EAAE,kCAAkC;IAC7C,QAAQ,CAAC,OAAO,WAAuB;IAEvC,KAAK,CACH,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,EAAE,cAAc,GACvB;QACD,mBAAmB,EAAE,MAAM,CAAC;QAC5B,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,QAAQ,EAAE,CAAC;QACtB,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B;CAuBF"}