renma 0.11.1 → 0.13.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 (43) hide show
  1. package/CHANGELOG.md +26 -1
  2. package/README.md +4 -0
  3. package/dist/catalog.js +14 -0
  4. package/dist/catalog.js.map +1 -1
  5. package/dist/commands/catalog.d.ts +2 -0
  6. package/dist/commands/catalog.d.ts.map +1 -1
  7. package/dist/commands/catalog.js +8 -1
  8. package/dist/commands/catalog.js.map +1 -1
  9. package/dist/commands/ci-report.d.ts.map +1 -1
  10. package/dist/commands/ci-report.js +8 -1
  11. package/dist/commands/ci-report.js.map +1 -1
  12. package/dist/commands/diff.d.ts +2 -0
  13. package/dist/commands/diff.d.ts.map +1 -1
  14. package/dist/commands/diff.js +1 -0
  15. package/dist/commands/diff.js.map +1 -1
  16. package/dist/commands/inspect.d.ts +2 -0
  17. package/dist/commands/inspect.d.ts.map +1 -1
  18. package/dist/commands/inspect.js +44 -17
  19. package/dist/commands/inspect.js.map +1 -1
  20. package/dist/commands/readiness.d.ts +3 -1
  21. package/dist/commands/readiness.d.ts.map +1 -1
  22. package/dist/commands/readiness.js +79 -2
  23. package/dist/commands/readiness.js.map +1 -1
  24. package/dist/context-lens.d.ts +56 -0
  25. package/dist/context-lens.d.ts.map +1 -0
  26. package/dist/context-lens.js +504 -0
  27. package/dist/context-lens.js.map +1 -0
  28. package/dist/diagnostics-v2.d.ts +9 -0
  29. package/dist/diagnostics-v2.d.ts.map +1 -0
  30. package/dist/diagnostics-v2.js +763 -0
  31. package/dist/diagnostics-v2.js.map +1 -0
  32. package/dist/report.d.ts.map +1 -1
  33. package/dist/report.js +6 -0
  34. package/dist/report.js.map +1 -1
  35. package/dist/rules.d.ts.map +1 -1
  36. package/dist/rules.js +70 -0
  37. package/dist/rules.js.map +1 -1
  38. package/dist/scanner.d.ts.map +1 -1
  39. package/dist/scanner.js +21 -1
  40. package/dist/scanner.js.map +1 -1
  41. package/dist/types.d.ts +56 -0
  42. package/dist/types.d.ts.map +1 -1
  43. package/package.json +1 -1
@@ -0,0 +1,504 @@
1
+ import path from "node:path";
2
+ export const CONTEXT_LENS_DIAGNOSTIC_CODES = {
3
+ DEPRECATED_FIELD: "CONTEXT-LENS-DEPRECATED-FIELD",
4
+ DUPLICATE_ID: "CONTEXT-LENS-DUPLICATE-ID",
5
+ EMPTY_DEFINITION: "CONTEXT-LENS-EMPTY-DEFINITION",
6
+ GOVERNANCE_MEANINGLESS: "CONTEXT-LENS-GOVERNANCE-MEANINGLESS",
7
+ MISSING_REQUIRED_FIELD: "CONTEXT-LENS-MISSING-REQUIRED-FIELD",
8
+ PATH_NORMALIZATION_MISMATCH: "CONTEXT-LENS-PATH-NORMALIZATION-MISMATCH",
9
+ TARGET_NOT_FOUND: "CONTEXT-LENS-TARGET-NOT-FOUND",
10
+ UNPARSEABLE_FRONTMATTER: "CONTEXT-LENS-UNPARSEABLE-FRONTMATTER",
11
+ UNSUPPORTED_KIND: "CONTEXT-LENS-UNSUPPORTED-KIND",
12
+ UNSUPPORTED_SCOPE: "CONTEXT-LENS-UNSUPPORTED-SCOPE",
13
+ UNSUPPORTED_VERSION: "CONTEXT-LENS-UNSUPPORTED-VERSION",
14
+ };
15
+ const SUPPORTED_LENS_SCOPES = new Set(["context"]);
16
+ const SUPPORTED_LENS_VERSIONS = new Set(["1"]);
17
+ const DEPRECATED_LENS_FIELDS = new Map([
18
+ ["target", "applies_to"],
19
+ ["targets", "applies_to"],
20
+ ["output", "expected_outputs"],
21
+ ["outputs", "expected_outputs"],
22
+ ]);
23
+ const REQUIRED_LENS_FIELDS = ["id", "owner", "purpose", "applies_to"];
24
+ /** Deterministically summarize and validate Context Lens governance state. */
25
+ export function summarizeContextLensGovernance(documents, catalog) {
26
+ const diagnostics = [];
27
+ const resolver = createCatalogReferenceResolver(catalog.entries);
28
+ const lensDocuments = documents
29
+ .flatMap((document) => {
30
+ diagnostics.push(...unsupportedKindDiagnostics(document));
31
+ if (!isLensDocument(document))
32
+ return [];
33
+ const entry = catalog.entries.find((candidate) => candidate.sourcePath === document.artifact.path);
34
+ const id = textMetadata(document, "id") ?? document.artifact.path;
35
+ const scope = textMetadata(document, "scope") ?? "context";
36
+ const targets = listMetadata(document, "applies_to");
37
+ const targetPaths = targets
38
+ .map((target) => resolver.resolve(target)?.sourcePath)
39
+ .filter((targetPath) => targetPath !== undefined)
40
+ .sort((a, b) => a.localeCompare(b));
41
+ return [
42
+ {
43
+ document,
44
+ ...(entry ? { entry } : {}),
45
+ id,
46
+ scope,
47
+ targets,
48
+ targetPaths,
49
+ },
50
+ ];
51
+ })
52
+ .sort((a, b) => a.document.artifact.path.localeCompare(b.document.artifact.path));
53
+ for (const lens of lensDocuments) {
54
+ diagnostics.push(...frontmatterDiagnostics(lens.document), ...requiredFieldDiagnostics(lens.document), ...unsupportedValueDiagnostics(lens.document), ...deprecatedFieldDiagnostics(lens.document), ...targetDiagnostics(lens.document, resolver), ...definitionBodyDiagnostics(lens.document));
55
+ }
56
+ diagnostics.push(...duplicateIdDiagnostics(lensDocuments));
57
+ const sortedDiagnostics = stableDiagnostics(diagnostics);
58
+ const diagnosticCounts = countDiagnostics(sortedDiagnostics);
59
+ const diagnosticsByPath = diagnosticsByLensPath(sortedDiagnostics);
60
+ const lenses = lensDocuments.map((lens) => {
61
+ const lensDiagnostics = diagnosticsByPath.get(lens.document.artifact.path) ?? [];
62
+ const lensCounts = countDiagnostics(lensDiagnostics);
63
+ return {
64
+ id: lens.id,
65
+ path: lens.document.artifact.path,
66
+ valid: lensCounts.error === 0,
67
+ scope: lens.scope,
68
+ targets: stableUnique(lens.targets.map(normalizeReference)),
69
+ targetPaths: stableUnique(lens.targetPaths),
70
+ diagnosticCounts: lensCounts,
71
+ diagnosticCodes: stableUnique(lensDiagnostics
72
+ .map((diagnostic) => diagnostic.code)
73
+ .filter((code) => code !== undefined)),
74
+ };
75
+ });
76
+ const invalidLensCount = lenses.filter((lens) => !lens.valid).length;
77
+ return {
78
+ summary: {
79
+ enabled: true,
80
+ detected: lenses.length > 0,
81
+ totalLensCount: lenses.length,
82
+ validLensCount: lenses.length - invalidLensCount,
83
+ invalidLensCount,
84
+ diagnosticCounts,
85
+ ...(sortedDiagnostics[0]?.code
86
+ ? { representativeDiagnosticCode: sortedDiagnostics[0].code }
87
+ : {}),
88
+ definitionPaths: lenses.map((lens) => lens.path),
89
+ targetReferences: stableUnique(lenses.flatMap((lens) => lens.targets.map(normalizeReference))),
90
+ targetPaths: stableUnique(lenses.flatMap((lens) => lens.targetPaths)),
91
+ unresolvedTargetReferences: stableUnique(sortedDiagnostics
92
+ .filter((diagnostic) => diagnostic.code ===
93
+ CONTEXT_LENS_DIAGNOSTIC_CODES.TARGET_NOT_FOUND)
94
+ .map(unresolvedReferenceFromDiagnostic)
95
+ .filter((reference) => reference !== undefined)),
96
+ scopeSummary: summarizeScopes(lenses),
97
+ lenses,
98
+ },
99
+ diagnostics: sortedDiagnostics,
100
+ };
101
+ }
102
+ export function zeroContextLensSummary() {
103
+ return {
104
+ enabled: true,
105
+ detected: false,
106
+ totalLensCount: 0,
107
+ validLensCount: 0,
108
+ invalidLensCount: 0,
109
+ diagnosticCounts: zeroDiagnosticCounts(),
110
+ definitionPaths: [],
111
+ targetReferences: [],
112
+ targetPaths: [],
113
+ unresolvedTargetReferences: [],
114
+ scopeSummary: [],
115
+ lenses: [],
116
+ };
117
+ }
118
+ function isLensDocument(document) {
119
+ if (document.artifact.kind === "context_lens")
120
+ return true;
121
+ return (document.artifact.kind === "context" &&
122
+ textMetadata(document, "type") === "context_lens");
123
+ }
124
+ function unsupportedKindDiagnostics(document) {
125
+ if (textMetadata(document, "type") !== "context_lens")
126
+ return [];
127
+ if (document.artifact.kind === "context_lens" ||
128
+ document.artifact.kind === "context") {
129
+ return [];
130
+ }
131
+ return [
132
+ {
133
+ code: CONTEXT_LENS_DIAGNOSTIC_CODES.UNSUPPORTED_KIND,
134
+ severity: "warning",
135
+ path: document.artifact.path,
136
+ message: "Context lens type metadata is only supported under lenses/**, context/**, or contexts/**.",
137
+ evidence: fieldEvidence(document, "type"),
138
+ },
139
+ ];
140
+ }
141
+ function frontmatterDiagnostics(document) {
142
+ if (document.lines[0]?.trim() !== "---")
143
+ return [];
144
+ const closingIndex = document.lines.findIndex((line, index) => index > 0 && line.trim() === "---");
145
+ if (closingIndex >= 0)
146
+ return [];
147
+ return [
148
+ {
149
+ code: CONTEXT_LENS_DIAGNOSTIC_CODES.UNPARSEABLE_FRONTMATTER,
150
+ severity: "error",
151
+ path: document.artifact.path,
152
+ message: "Context lens frontmatter starts with --- but does not include a closing --- delimiter.",
153
+ evidence: {
154
+ path: document.artifact.path,
155
+ startLine: 1,
156
+ endLine: document.lines.length,
157
+ snippet: "unclosed frontmatter",
158
+ },
159
+ },
160
+ ];
161
+ }
162
+ function requiredFieldDiagnostics(document) {
163
+ return REQUIRED_LENS_FIELDS.flatMap((field) => {
164
+ const present = field === "applies_to"
165
+ ? listMetadata(document, field).length > 0
166
+ : Boolean(textMetadata(document, field));
167
+ if (present)
168
+ return [];
169
+ return [
170
+ {
171
+ code: CONTEXT_LENS_DIAGNOSTIC_CODES.MISSING_REQUIRED_FIELD,
172
+ severity: "error",
173
+ path: document.artifact.path,
174
+ message: `Context lens definition is missing required field "${field}".`,
175
+ evidence: missingFieldEvidence(document, field),
176
+ details: {
177
+ sourcePath: document.artifact.path,
178
+ field,
179
+ },
180
+ },
181
+ ];
182
+ });
183
+ }
184
+ function unsupportedValueDiagnostics(document) {
185
+ const diagnostics = [];
186
+ const type = textMetadata(document, "type");
187
+ if (type !== undefined && type !== "context_lens") {
188
+ diagnostics.push({
189
+ code: CONTEXT_LENS_DIAGNOSTIC_CODES.UNSUPPORTED_KIND,
190
+ severity: "error",
191
+ path: document.artifact.path,
192
+ message: `Context lens definition uses unsupported type "${type}". Expected context_lens.`,
193
+ evidence: fieldEvidence(document, "type"),
194
+ });
195
+ }
196
+ const scope = textMetadata(document, "scope");
197
+ if (scope !== undefined && !SUPPORTED_LENS_SCOPES.has(scope)) {
198
+ diagnostics.push({
199
+ code: CONTEXT_LENS_DIAGNOSTIC_CODES.UNSUPPORTED_SCOPE,
200
+ severity: "error",
201
+ path: document.artifact.path,
202
+ message: `Context lens definition uses unsupported scope "${scope}". Expected one of: ${[
203
+ ...SUPPORTED_LENS_SCOPES,
204
+ ].join(", ")}.`,
205
+ evidence: fieldEvidence(document, "scope"),
206
+ });
207
+ }
208
+ const version = textMetadata(document, "version");
209
+ if (version !== undefined && !SUPPORTED_LENS_VERSIONS.has(version)) {
210
+ diagnostics.push({
211
+ code: CONTEXT_LENS_DIAGNOSTIC_CODES.UNSUPPORTED_VERSION,
212
+ severity: "error",
213
+ path: document.artifact.path,
214
+ message: `Context lens definition uses unsupported version "${version}". Expected one of: ${[
215
+ ...SUPPORTED_LENS_VERSIONS,
216
+ ].join(", ")}.`,
217
+ evidence: fieldEvidence(document, "version"),
218
+ });
219
+ }
220
+ return diagnostics;
221
+ }
222
+ function deprecatedFieldDiagnostics(document) {
223
+ return [...DEPRECATED_LENS_FIELDS.entries()].flatMap(([field, replacement]) => {
224
+ if (document.metadata[field] === undefined)
225
+ return [];
226
+ return [
227
+ {
228
+ code: CONTEXT_LENS_DIAGNOSTIC_CODES.DEPRECATED_FIELD,
229
+ severity: "warning",
230
+ path: document.artifact.path,
231
+ message: `Context lens field "${field}" is deprecated. Use "${replacement}" instead.`,
232
+ evidence: fieldEvidence(document, field),
233
+ },
234
+ ];
235
+ });
236
+ }
237
+ function targetDiagnostics(document, resolver) {
238
+ return listMetadata(document, "applies_to").flatMap((target, index) => {
239
+ const diagnostics = [];
240
+ const normalized = normalizeReference(target);
241
+ if (isPathReference(target) && normalized !== target) {
242
+ diagnostics.push({
243
+ code: CONTEXT_LENS_DIAGNOSTIC_CODES.PATH_NORMALIZATION_MISMATCH,
244
+ severity: "warning",
245
+ path: document.artifact.path,
246
+ message: `Context lens target path "${target}" normalizes to "${normalized}".`,
247
+ evidence: listItemEvidence(document, "applies_to", index),
248
+ details: {
249
+ sourcePath: document.artifact.path,
250
+ target,
251
+ normalizedTarget: normalized,
252
+ field: "applies_to",
253
+ },
254
+ });
255
+ }
256
+ if (!resolver.resolve(target)) {
257
+ diagnostics.push({
258
+ code: CONTEXT_LENS_DIAGNOSTIC_CODES.TARGET_NOT_FOUND,
259
+ severity: "error",
260
+ path: document.artifact.path,
261
+ message: `Context lens target "${target}" does not resolve to a cataloged asset.`,
262
+ evidence: listItemEvidence(document, "applies_to", index),
263
+ details: {
264
+ sourcePath: document.artifact.path,
265
+ target,
266
+ field: "applies_to",
267
+ },
268
+ });
269
+ }
270
+ return diagnostics;
271
+ });
272
+ }
273
+ function definitionBodyDiagnostics(document) {
274
+ if (document.artifact.content.trim().length === 0) {
275
+ return [
276
+ {
277
+ code: CONTEXT_LENS_DIAGNOSTIC_CODES.EMPTY_DEFINITION,
278
+ severity: "error",
279
+ path: document.artifact.path,
280
+ message: "Context lens definition is empty.",
281
+ evidence: {
282
+ path: document.artifact.path,
283
+ startLine: 1,
284
+ endLine: 1,
285
+ snippet: "empty context lens definition",
286
+ },
287
+ },
288
+ ];
289
+ }
290
+ const meaningfulMetadata = [
291
+ "purpose",
292
+ "applies_to",
293
+ "focus",
294
+ "expected_outputs",
295
+ ].some((field) => field === "purpose"
296
+ ? Boolean(textMetadata(document, field))
297
+ : listMetadata(document, field).length > 0);
298
+ const meaningfulBody = bodyLines(document).some((line) => line.trim().length > 0 && !line.trimStart().startsWith("#"));
299
+ if (meaningfulMetadata || meaningfulBody)
300
+ return [];
301
+ return [
302
+ {
303
+ code: CONTEXT_LENS_DIAGNOSTIC_CODES.GOVERNANCE_MEANINGLESS,
304
+ severity: "warning",
305
+ path: document.artifact.path,
306
+ message: "Context lens definition has no governance-meaningful purpose, target, focus, expected output, or body guidance.",
307
+ evidence: missingFieldEvidence(document, "purpose"),
308
+ },
309
+ ];
310
+ }
311
+ function duplicateIdDiagnostics(lenses) {
312
+ const byId = new Map();
313
+ for (const lens of lenses) {
314
+ if (!textMetadata(lens.document, "id"))
315
+ continue;
316
+ byId.set(lens.id, [...(byId.get(lens.id) ?? []), lens]);
317
+ }
318
+ return [...byId.entries()].flatMap(([id, duplicates]) => {
319
+ if (duplicates.length < 2)
320
+ return [];
321
+ const paths = duplicates
322
+ .map((lens) => lens.document.artifact.path)
323
+ .sort((a, b) => a.localeCompare(b));
324
+ return duplicates.map((lens) => ({
325
+ code: CONTEXT_LENS_DIAGNOSTIC_CODES.DUPLICATE_ID,
326
+ severity: "error",
327
+ path: lens.document.artifact.path,
328
+ message: `Context lens id "${id}" is duplicated by ${paths.join(", ")}.`,
329
+ evidence: fieldEvidence(lens.document, "id"),
330
+ details: {
331
+ lensId: id,
332
+ duplicatePaths: paths,
333
+ sourcePath: lens.document.artifact.path,
334
+ },
335
+ }));
336
+ });
337
+ }
338
+ function createCatalogReferenceResolver(entries) {
339
+ const byId = new Map();
340
+ const byPath = new Map();
341
+ for (const entry of entries) {
342
+ if (!byId.has(entry.id))
343
+ byId.set(entry.id, entry);
344
+ for (const reference of [
345
+ entry.sourcePath,
346
+ normalizeReference(entry.sourcePath),
347
+ `./${entry.sourcePath}`,
348
+ ]) {
349
+ const normalized = normalizeReference(reference);
350
+ if (!byPath.has(normalized))
351
+ byPath.set(normalized, entry);
352
+ }
353
+ }
354
+ return {
355
+ resolve(reference) {
356
+ return byId.get(reference) ?? byPath.get(normalizeReference(reference));
357
+ },
358
+ };
359
+ }
360
+ function diagnosticsByLensPath(diagnostics) {
361
+ const result = new Map();
362
+ for (const diagnostic of diagnostics) {
363
+ if (!diagnostic.path)
364
+ continue;
365
+ result.set(diagnostic.path, [
366
+ ...(result.get(diagnostic.path) ?? []),
367
+ diagnostic,
368
+ ]);
369
+ }
370
+ return result;
371
+ }
372
+ function countDiagnostics(diagnostics) {
373
+ const counts = zeroDiagnosticCounts();
374
+ for (const diagnostic of diagnostics) {
375
+ counts[diagnostic.severity] += 1;
376
+ }
377
+ return counts;
378
+ }
379
+ function zeroDiagnosticCounts() {
380
+ return {
381
+ error: 0,
382
+ warning: 0,
383
+ info: 0,
384
+ };
385
+ }
386
+ function summarizeScopes(lenses) {
387
+ const counts = new Map();
388
+ for (const lens of lenses) {
389
+ counts.set(lens.scope, (counts.get(lens.scope) ?? 0) + 1);
390
+ }
391
+ return [...counts.entries()]
392
+ .map(([scope, count]) => ({ scope, count }))
393
+ .sort((a, b) => a.scope.localeCompare(b.scope));
394
+ }
395
+ function stableDiagnostics(diagnostics) {
396
+ return [...diagnostics].sort((a, b) => {
397
+ const byPath = (a.path ?? "").localeCompare(b.path ?? "");
398
+ if (byPath !== 0)
399
+ return byPath;
400
+ const byCode = (a.code ?? "").localeCompare(b.code ?? "");
401
+ if (byCode !== 0)
402
+ return byCode;
403
+ const byLine = (a.evidence?.startLine ?? 0) - (b.evidence?.startLine ?? 0);
404
+ if (byLine !== 0)
405
+ return byLine;
406
+ return a.message.localeCompare(b.message);
407
+ });
408
+ }
409
+ function stableUnique(values) {
410
+ return [...new Set(values)].sort((a, b) => a.localeCompare(b));
411
+ }
412
+ function unresolvedReferenceFromDiagnostic(diagnostic) {
413
+ if (typeof diagnostic.details?.target === "string") {
414
+ return diagnostic.details.target;
415
+ }
416
+ return diagnostic.message.match(/"([^"]+)"/)?.[1];
417
+ }
418
+ function textMetadata(document, field) {
419
+ const value = document.metadata[field];
420
+ if (typeof value !== "string")
421
+ return undefined;
422
+ const trimmed = value.trim();
423
+ return trimmed.length > 0 ? trimmed : undefined;
424
+ }
425
+ function listMetadata(document, field) {
426
+ const value = document.metadata[field];
427
+ if (Array.isArray(value)) {
428
+ return value.map((item) => item.trim()).filter(Boolean);
429
+ }
430
+ if (typeof value === "string") {
431
+ return value
432
+ .split(",")
433
+ .map((item) => item.trim())
434
+ .filter(Boolean);
435
+ }
436
+ return [];
437
+ }
438
+ function fieldEvidence(document, field) {
439
+ const metadata = document.metadataFields[field];
440
+ if (metadata) {
441
+ return {
442
+ path: metadata.path,
443
+ startLine: metadata.startLine,
444
+ endLine: metadata.endLine,
445
+ snippet: metadata.raw,
446
+ };
447
+ }
448
+ return missingFieldEvidence(document, field);
449
+ }
450
+ function listItemEvidence(document, field, index) {
451
+ const item = document.metadataListItems[field]?.[index];
452
+ if (item) {
453
+ return {
454
+ path: item.path,
455
+ startLine: item.startLine,
456
+ endLine: item.endLine,
457
+ snippet: item.raw,
458
+ };
459
+ }
460
+ return fieldEvidence(document, field);
461
+ }
462
+ function missingFieldEvidence(document, field) {
463
+ const frontmatter = frontmatterRange(document);
464
+ if (frontmatter) {
465
+ return {
466
+ path: document.artifact.path,
467
+ startLine: frontmatter.startLine,
468
+ endLine: frontmatter.endLine,
469
+ snippet: `frontmatter missing ${field}`,
470
+ };
471
+ }
472
+ return {
473
+ path: document.artifact.path,
474
+ startLine: 1,
475
+ endLine: 1,
476
+ snippet: `missing ${field}`,
477
+ };
478
+ }
479
+ function frontmatterRange(document) {
480
+ if (document.lines[0]?.trim() !== "---")
481
+ return undefined;
482
+ const endIndex = document.lines.findIndex((line, index) => index > 0 && line.trim() === "---");
483
+ if (endIndex < 0)
484
+ return undefined;
485
+ return { startLine: 1, endLine: endIndex + 1 };
486
+ }
487
+ function bodyLines(document) {
488
+ const frontmatter = frontmatterRange(document);
489
+ return document.lines.slice(frontmatter ? frontmatter.endLine : 0);
490
+ }
491
+ function isPathReference(reference) {
492
+ return (reference.includes("/") ||
493
+ reference.includes("\\") ||
494
+ reference.startsWith(".") ||
495
+ reference.endsWith(".md") ||
496
+ path.isAbsolute(reference));
497
+ }
498
+ function normalizeReference(reference) {
499
+ return reference
500
+ .replace(/\\/g, "/")
501
+ .replace(/\/+/g, "/")
502
+ .replace(/^\.\//, "");
503
+ }
504
+ //# sourceMappingURL=context-lens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-lens.js","sourceRoot":"","sources":["../src/context-lens.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Diagnostic, DiagnosticV2, Finding, ReviewBundle } from "./types.js";
2
+ /** Convert legacy diagnostics and findings into the LLM-actionable v2 shape. */
3
+ export declare function createDiagnosticsV2(input: {
4
+ findings: Finding[];
5
+ diagnostics: Diagnostic[];
6
+ }): DiagnosticV2[];
7
+ /** Build deterministic review bundles from LLM-actionable diagnostics. */
8
+ export declare function createReviewBundles(diagnostics: DiagnosticV2[]): ReviewBundle[];
9
+ //# sourceMappingURL=diagnostics-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics-v2.d.ts","sourceRoot":"","sources":["../src/diagnostics-v2.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,UAAU,EAEV,YAAY,EACZ,OAAO,EAEP,YAAY,EAEb,MAAM,YAAY,CAAC;AAUpB,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,GAAG,YAAY,EAAE,CAKjB;AAED,0EAA0E;AAC1E,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,YAAY,EAAE,GAC1B,YAAY,EAAE,CAmBhB"}