@lumenflow/core 2.19.0 → 2.20.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 (73) hide show
  1. package/dist/arg-parser.js +2 -2
  2. package/dist/arg-parser.js.map +1 -1
  3. package/dist/context/wu-state-reader.d.ts +2 -0
  4. package/dist/context/wu-state-reader.d.ts.map +1 -1
  5. package/dist/context/wu-state-reader.js +3 -0
  6. package/dist/context/wu-state-reader.js.map +1 -1
  7. package/dist/index.d.ts +6 -0
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +6 -0
  10. package/dist/index.js.map +1 -1
  11. package/dist/lumenflow-config-schema.js +1 -1
  12. package/dist/lumenflow-config-schema.js.map +1 -1
  13. package/dist/sandbox-allowlist.d.ts +16 -0
  14. package/dist/sandbox-allowlist.d.ts.map +1 -0
  15. package/dist/sandbox-allowlist.js +75 -0
  16. package/dist/sandbox-allowlist.js.map +1 -0
  17. package/dist/sandbox-backend-linux.d.ts +6 -0
  18. package/dist/sandbox-backend-linux.d.ts.map +1 -0
  19. package/dist/sandbox-backend-linux.js +65 -0
  20. package/dist/sandbox-backend-linux.js.map +1 -0
  21. package/dist/sandbox-backend-macos.d.ts +6 -0
  22. package/dist/sandbox-backend-macos.d.ts.map +1 -0
  23. package/dist/sandbox-backend-macos.js +64 -0
  24. package/dist/sandbox-backend-macos.js.map +1 -0
  25. package/dist/sandbox-backend-windows.d.ts +6 -0
  26. package/dist/sandbox-backend-windows.d.ts.map +1 -0
  27. package/dist/sandbox-backend-windows.js +28 -0
  28. package/dist/sandbox-backend-windows.js.map +1 -0
  29. package/dist/sandbox-profile.d.ts +53 -0
  30. package/dist/sandbox-profile.d.ts.map +1 -0
  31. package/dist/sandbox-profile.js +62 -0
  32. package/dist/sandbox-profile.js.map +1 -0
  33. package/dist/schemas/setup-schemas.js +1 -1
  34. package/dist/schemas/setup-schemas.js.map +1 -1
  35. package/dist/schemas/wu-lifecycle-schemas.js +1 -1
  36. package/dist/schemas/wu-lifecycle-schemas.js.map +1 -1
  37. package/dist/spawn-strategy.d.ts +1 -1
  38. package/dist/spawn-strategy.js +1 -1
  39. package/dist/validation/types.d.ts +2 -0
  40. package/dist/validation/types.d.ts.map +1 -1
  41. package/dist/wu-context-constants.d.ts +4 -0
  42. package/dist/wu-context-constants.d.ts.map +1 -1
  43. package/dist/wu-context-constants.js +4 -0
  44. package/dist/wu-context-constants.js.map +1 -1
  45. package/dist/wu-done-preflight.d.ts +8 -0
  46. package/dist/wu-done-preflight.d.ts.map +1 -1
  47. package/dist/wu-done-preflight.js +17 -1
  48. package/dist/wu-done-preflight.js.map +1 -1
  49. package/dist/wu-lint.d.ts +33 -41
  50. package/dist/wu-lint.d.ts.map +1 -1
  51. package/dist/wu-lint.js +85 -142
  52. package/dist/wu-lint.js.map +1 -1
  53. package/dist/wu-preflight-validators.d.ts +28 -77
  54. package/dist/wu-preflight-validators.d.ts.map +1 -1
  55. package/dist/wu-preflight-validators.js +86 -130
  56. package/dist/wu-preflight-validators.js.map +1 -1
  57. package/dist/wu-rules-core.d.ts +95 -0
  58. package/dist/wu-rules-core.d.ts.map +1 -0
  59. package/dist/wu-rules-core.js +399 -0
  60. package/dist/wu-rules-core.js.map +1 -0
  61. package/dist/wu-rules-engine.d.ts +29 -0
  62. package/dist/wu-rules-engine.d.ts.map +1 -0
  63. package/dist/wu-rules-engine.js +59 -0
  64. package/dist/wu-rules-engine.js.map +1 -0
  65. package/dist/wu-rules-resolvers.d.ts +19 -0
  66. package/dist/wu-rules-resolvers.d.ts.map +1 -0
  67. package/dist/wu-rules-resolvers.js +208 -0
  68. package/dist/wu-rules-resolvers.js.map +1 -0
  69. package/dist/wu-schema.d.ts +18 -3
  70. package/dist/wu-schema.d.ts.map +1 -1
  71. package/dist/wu-schema.js +14 -1
  72. package/dist/wu-schema.js.map +1 -1
  73. package/package.json +5 -4
@@ -1,83 +1,39 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * Preflight validation functions for wu:preflight command
3
+ * Preflight validation functions for wu:preflight and wu:done.
4
4
  *
5
- * WU-1803: Fast validation of code_paths and test paths before gates run.
6
- * WU-1810: Upgraded to use canonical Zod schema validation (catches created format issues).
7
- *
8
- * This catches YAML mismatches early, saving time compared to full wu:done validation.
9
- *
10
- * Key validations:
11
- * - WU YAML schema is valid (full canonical schema, not just required fields)
12
- * - created field is YYYY-MM-DD format (fails fast on ISO timestamps)
13
- * - code_paths files exist
14
- * - test file paths exist (unit, e2e, integration - not manual)
15
- *
16
- * Design goals:
17
- * - Complete in under 5 seconds
18
- * - Clear error messages pointing to missing files
19
- * - Reusable by wu:done for early validation
5
+ * Uses phase-aware rules from wu-rules-engine:
6
+ * - intent/structural: syntax + policy intent checks
7
+ * - reality: disk/diff/parity/test existence checks
20
8
  */
21
- import { existsSync } from 'node:fs';
22
- import path from 'node:path';
23
9
  import { WU_PATHS } from './wu-paths.js';
24
10
  import { readWURaw } from './wu-yaml.js';
25
11
  import { TEST_TYPES, LOG_PREFIX, EMOJI } from './wu-constants.js';
26
- // WU-1810: Import canonical schema for full validation
27
12
  import { BaseWUSchema } from './wu-schema.js';
28
- // WU-1810: Import fixer to detect fixable issues
29
13
  import { detectFixableIssues, FIXABLE_ISSUES } from './wu-yaml-fixer.js';
30
14
  import fg from 'fast-glob';
31
- /**
32
- * Result structure for preflight validation
33
- * @typedef {object} PreflightResult
34
- * @property {boolean} valid - Whether all validations passed
35
- * @property {string[]} errors - List of error messages
36
- * @property {string[]} missingCodePaths - Code paths that don't exist
37
- * @property {string[]} missingTestPaths - Test file paths that don't exist
38
- */
15
+ import path from 'node:path';
16
+ import { isPathLikeTestEntry, pathReferenceExistsSync, validationIssueToDisplayLines, validateWURules, validateWURulesSync, } from './wu-rules-engine.js';
39
17
  /**
40
18
  * Create a PreflightResult object
41
- *
42
- * @param {object} params - Result parameters
43
- * @param {boolean} params.valid - Whether validation passed
44
- * @param {string[]} [params.errors=[]] - Error messages
45
- * @param {string[]} [params.missingCodePaths=[]] - Missing code paths
46
- * @param {string[]} [params.missingTestPaths=[]] - Missing test paths
47
- * @param {Record<string, string[]>} [params.suggestedTestPaths={}] - Suggested test paths
48
- * @returns {PreflightResult}
49
19
  */
50
- export function createPreflightResult({ valid, errors = [], missingCodePaths = [], missingTestPaths = [], suggestedTestPaths = {}, }) {
20
+ export function createPreflightResult({ valid, errors = [], warnings = [], missingCodePaths = [], missingCoverageCodePaths = [], missingTestPaths = [], changedFiles = [], suggestedTestPaths = {}, }) {
51
21
  return {
52
22
  valid,
53
23
  errors,
24
+ warnings,
54
25
  missingCodePaths,
26
+ missingCoverageCodePaths,
55
27
  missingTestPaths,
28
+ changedFiles,
56
29
  suggestedTestPaths,
57
30
  };
58
31
  }
59
- /**
60
- * WU-1810: Validate WU YAML schema using canonical Zod schema
61
- *
62
- * Uses BaseWUSchema (structural validation) rather than minimal required fields.
63
- * This catches created format issues, invalid type/status enums, etc. early.
64
- *
65
- * Special handling for created field:
66
- * - Detects ISO timestamps and Date scalars via wu-yaml-fixer
67
- * - Provides actionable error message suggesting auto-fix
68
- *
69
- * @param {object} doc - Parsed WU YAML document
70
- * @param {string} id - Expected WU ID
71
- * @returns {{ valid: boolean, errors: string[] }}
72
- */
73
32
  function validateSchema(doc, id) {
74
33
  const errors = [];
75
- // Check ID matches (before schema validation for clear error)
76
34
  if (doc.id !== id) {
77
35
  errors.push(`WU ID mismatch: expected ${id}, found ${doc.id}`);
78
36
  }
79
- // WU-1810: Check for fixable issues (especially created field)
80
- // This provides better error messages than raw Zod schema errors
81
37
  const fixableIssues = detectFixableIssues(doc);
82
38
  const createdIssue = fixableIssues.find((issue) => issue.type === FIXABLE_ISSUES.DATE_ISO_TIMESTAMP);
83
39
  if (createdIssue) {
@@ -85,14 +41,11 @@ function validateSchema(doc, id) {
85
41
  `Expected YYYY-MM-DD format. Suggested fix: change to "${createdIssue.suggested}". ` +
86
42
  `Fix by editing the WU YAML file (created: '${createdIssue.suggested}').`);
87
43
  }
88
- // WU-1810: Validate against canonical Zod schema
89
44
  const schemaResult = BaseWUSchema.safeParse(doc);
90
45
  if (!schemaResult.success) {
91
- // Format Zod errors with field paths
92
46
  for (const issue of schemaResult.error.issues) {
93
47
  const fieldPath = issue.path.join('.');
94
48
  const message = issue.message;
95
- // Skip created errors if we already reported a fixable issue
96
49
  if (fieldPath === 'created' && createdIssue) {
97
50
  continue;
98
51
  }
@@ -102,13 +55,7 @@ function validateSchema(doc, id) {
102
55
  return { valid: errors.length === 0, errors };
103
56
  }
104
57
  /**
105
- * Validate code_paths files exist
106
- *
107
- * WU-1329: Exported for use by wu:create strict validation.
108
- *
109
- * @param {string[]} codePaths - List of code paths from WU YAML
110
- * @param {string} rootDir - Root directory to resolve paths against
111
- * @returns {{ valid: boolean, errors: string[], missing: string[] }}
58
+ * Validate code_paths files/globs exist on disk.
112
59
  */
113
60
  export function validateCodePathsExistence(codePaths, rootDir) {
114
61
  if (!codePaths || !Array.isArray(codePaths) || codePaths.length === 0) {
@@ -118,14 +65,13 @@ export function validateCodePathsExistence(codePaths, rootDir) {
118
65
  for (const filePath of codePaths) {
119
66
  if (!filePath || typeof filePath !== 'string')
120
67
  continue;
121
- const fullPath = path.join(rootDir, filePath);
122
- if (!existsSync(fullPath)) {
68
+ if (!pathReferenceExistsSync(filePath, rootDir)) {
123
69
  missing.push(filePath);
124
70
  }
125
71
  }
126
72
  if (missing.length > 0) {
127
73
  const errors = [
128
- `code_paths validation failed - ${missing.length} file(s) not found:`,
74
+ `code_paths validation failed - ${missing.length} path(s) not found:`,
129
75
  ...missing.map((p) => ` - ${p}`),
130
76
  ];
131
77
  return { valid: false, errors, missing };
@@ -133,22 +79,16 @@ export function validateCodePathsExistence(codePaths, rootDir) {
133
79
  return { valid: true, errors: [], missing: [] };
134
80
  }
135
81
  /**
136
- * Validate test file paths exist (unit, e2e, integration - not manual)
137
- *
138
- * Manual tests are descriptions, not file paths, so they're skipped.
82
+ * Validate automated test file paths/globs exist.
139
83
  *
140
- * WU-1329: Exported for use by wu:create strict validation.
141
- *
142
- * @param {object} tests - tests object from WU YAML
143
- * @param {string} rootDir - Root directory to resolve paths against
144
- * @returns {{ valid: boolean, errors: string[], missing: string[] }}
84
+ * Non-path-like prose entries are ignored here; they are classified by
85
+ * reality-phase rule R-007.
145
86
  */
146
87
  export function validateTestPathsExistence(tests, rootDir) {
147
88
  if (!tests || typeof tests !== 'object') {
148
89
  return { valid: true, errors: [], missing: [] };
149
90
  }
150
91
  const missing = [];
151
- // Test types that are file paths (not manual descriptions)
152
92
  const fileTestTypes = [TEST_TYPES.UNIT, TEST_TYPES.E2E, TEST_TYPES.INTEGRATION];
153
93
  for (const testType of fileTestTypes) {
154
94
  const paths = tests[testType];
@@ -157,15 +97,16 @@ export function validateTestPathsExistence(tests, rootDir) {
157
97
  for (const filePath of paths) {
158
98
  if (!filePath || typeof filePath !== 'string')
159
99
  continue;
160
- const fullPath = path.join(rootDir, filePath);
161
- if (!existsSync(fullPath)) {
100
+ if (!isPathLikeTestEntry(filePath))
101
+ continue;
102
+ if (!pathReferenceExistsSync(filePath, rootDir)) {
162
103
  missing.push(filePath);
163
104
  }
164
105
  }
165
106
  }
166
107
  if (missing.length > 0) {
167
108
  const errors = [
168
- `test paths validation failed - ${missing.length} test file(s) not found:`,
109
+ `test paths validation failed - ${missing.length} automated test path(s) not found:`,
169
110
  ...missing.map((p) => ` - ${p}`),
170
111
  ];
171
112
  return { valid: false, errors, missing };
@@ -175,20 +116,16 @@ export function validateTestPathsExistence(tests, rootDir) {
175
116
  export async function validatePreflight(id, options = {}) {
176
117
  const rootDir = options.rootDir || process.cwd();
177
118
  const worktreePath = options.worktreePath || rootDir;
119
+ const phase = options.phase || 'reality';
178
120
  const allErrors = [];
121
+ const allWarnings = [];
179
122
  const missingCodePaths = [];
123
+ const missingCoverageCodePaths = [];
180
124
  const missingTestPaths = [];
181
- // Step 1: Read WU YAML from worktree (WU-1830)
182
- // When worktreePath is provided, read YAML from there to get latest code_paths
125
+ const changedFiles = [];
183
126
  const wuPath = path.join(worktreePath, WU_PATHS.WU(id));
184
- // Debug logging for YAML source (WU-1830)
185
- if (options.worktreePath && options.worktreePath !== rootDir) {
186
- if (process.env.DEBUG)
187
- console.log(`[wu-preflight] Reading WU YAML from worktree: ${wuPath}`);
188
- }
189
127
  let doc;
190
128
  try {
191
- // First try to read raw (without ID validation) to provide better errors
192
129
  doc = readWURaw(wuPath);
193
130
  }
194
131
  catch (err) {
@@ -197,26 +134,33 @@ export async function validatePreflight(id, options = {}) {
197
134
  errors: [`Failed to read WU YAML: ${err.message}`],
198
135
  });
199
136
  }
200
- // Step 2: Validate schema
201
137
  const schemaResult = validateSchema(doc, id);
202
138
  if (!schemaResult.valid) {
203
139
  allErrors.push(...schemaResult.errors);
204
140
  }
205
- // Step 3: Validate code_paths exist
206
- const codePathsResult = validateCodePathsExistence(doc.code_paths, worktreePath);
207
- if (!codePathsResult.valid) {
208
- allErrors.push(...codePathsResult.errors);
209
- missingCodePaths.push(...codePathsResult.missing);
141
+ const rulesContext = {
142
+ id,
143
+ type: doc.type,
144
+ status: doc.status,
145
+ code_paths: doc.code_paths,
146
+ tests: doc.tests || doc.test_paths || {},
147
+ cwd: worktreePath,
148
+ baseRef: options.baseRef,
149
+ headRef: options.headRef,
150
+ };
151
+ const rulesResult = phase === 'reality'
152
+ ? await validateWURules(rulesContext, { phase })
153
+ : validateWURulesSync(rulesContext, { phase });
154
+ for (const issue of rulesResult.errors) {
155
+ allErrors.push(...validationIssueToDisplayLines(issue));
210
156
  }
211
- // Step 4: Validate test file paths exist
212
- // Support both 'tests' and legacy 'test_paths' field
213
- const testsObj = doc.tests || doc.test_paths || {};
214
- const testPathsResult = validateTestPathsExistence(testsObj, worktreePath);
215
- if (!testPathsResult.valid) {
216
- allErrors.push(...testPathsResult.errors);
217
- missingTestPaths.push(...testPathsResult.missing);
157
+ for (const issue of rulesResult.warnings) {
158
+ allWarnings.push(...validationIssueToDisplayLines(issue));
218
159
  }
219
- // Step 5 (WU-1154): Generate suggestions for missing test paths
160
+ missingCodePaths.push(...rulesResult.metadata.missingCodePaths);
161
+ missingCoverageCodePaths.push(...rulesResult.metadata.missingCoverageCodePaths);
162
+ missingTestPaths.push(...rulesResult.metadata.missingTestPaths);
163
+ changedFiles.push(...rulesResult.metadata.changedFiles);
220
164
  let suggestedTestPaths = {};
221
165
  if (missingTestPaths.length > 0) {
222
166
  const searchRoot = worktreePath || rootDir;
@@ -224,63 +168,80 @@ export async function validatePreflight(id, options = {}) {
224
168
  suggestedTestPaths = await findSuggestedTestPaths(missingTestPaths, searchRoot);
225
169
  }
226
170
  catch (err) {
227
- if (process.env.DEBUG)
171
+ if (process.env.DEBUG) {
228
172
  console.log(`[wu-preflight] Failed to find suggestions: ${err.message}`);
173
+ }
229
174
  }
230
175
  }
231
176
  return createPreflightResult({
232
177
  valid: allErrors.length === 0,
233
178
  errors: allErrors,
179
+ warnings: allWarnings,
234
180
  missingCodePaths,
181
+ missingCoverageCodePaths,
235
182
  missingTestPaths,
183
+ changedFiles,
236
184
  suggestedTestPaths,
237
185
  });
238
186
  }
239
- /**
240
- * Format preflight result as user-friendly message
241
- *
242
- * @param {string} id - WU ID
243
- * @param {PreflightResult} result - Validation result
244
- * @returns {string} Formatted message
245
- */
246
187
  export function formatPreflightResult(id, result) {
247
188
  if (result.valid) {
248
- return `${LOG_PREFIX.PREFLIGHT} ${EMOJI.SUCCESS} Preflight validation passed for ${id}`;
189
+ const lines = [
190
+ `${LOG_PREFIX.PREFLIGHT} ${EMOJI.SUCCESS} Preflight validation passed for ${id}`,
191
+ ];
192
+ if (Array.isArray(result.warnings) && result.warnings.length > 0) {
193
+ lines.push('');
194
+ lines.push(`${LOG_PREFIX.PREFLIGHT} ${EMOJI.WARNING} Warnings:`);
195
+ lines.push(...result.warnings.map((warning) => ` - ${warning}`));
196
+ }
197
+ return lines.join('\n');
249
198
  }
250
199
  const lines = [
251
200
  `${LOG_PREFIX.PREFLIGHT} ${EMOJI.FAILURE} Preflight validation failed for ${id}`,
252
201
  '',
253
202
  ...result.errors,
254
203
  ];
204
+ if (Array.isArray(result.warnings) && result.warnings.length > 0) {
205
+ lines.push('');
206
+ lines.push(`${LOG_PREFIX.PREFLIGHT} ${EMOJI.WARNING} Warnings:`);
207
+ lines.push(...result.warnings.map((warning) => ` - ${warning}`));
208
+ }
255
209
  if (result.missingCodePaths.length > 0) {
256
210
  lines.push('');
257
- lines.push('Fix options:');
258
- lines.push(' 1. Create the missing files');
211
+ lines.push('Fix options for missing code_paths:');
212
+ lines.push(' 1. Create the missing files/glob targets');
259
213
  lines.push(` 2. Update code_paths in ${id}.yaml to match actual files`);
260
214
  }
215
+ if (result.missingCoverageCodePaths.length > 0) {
216
+ lines.push('');
217
+ lines.push('Fix options for code_paths coverage vs branch diff:');
218
+ lines.push(' 1. Commit changes that touch each missing scoped code_path');
219
+ lines.push(` 2. Update code_paths in ${id}.yaml to match actual branch scope`);
220
+ lines.push(` 3. Re-run: pnpm wu:prep --id ${id}`);
221
+ }
261
222
  if (result.missingTestPaths.length > 0) {
262
223
  lines.push('');
263
- lines.push('For test paths:');
264
- lines.push(' 1. Create the missing test files');
224
+ lines.push('Fix options for automated test paths:');
225
+ lines.push(' 1. Create the missing test files/glob targets');
265
226
  lines.push(` 2. Update tests in ${id}.yaml to match actual files`);
266
- lines.push(' 3. Or use tests.manual for non-file test descriptions');
227
+ lines.push(' 3. Move prose/non-path test notes into tests.manual');
267
228
  }
268
229
  return lines.join('\n');
269
230
  }
270
- // Export PreflightResult type for documentation
271
- export const PreflightResult = {};
272
231
  /**
273
- * Find suggested paths for missing test files
274
- *
275
- * @param {string[]} missingPaths - List of missing test paths
276
- * @param {string} rootDir - Root directory to search in
277
- * @returns {Promise<Record<string, string[]>>} Map of missing path -> suggestions
232
+ * Build display lines for preflight warnings with a consistent shape.
278
233
  */
234
+ export function formatPreflightWarnings(warnings, header = `${LOG_PREFIX.PREFLIGHT} ${EMOJI.WARNING} Warnings:`) {
235
+ if (!Array.isArray(warnings) || warnings.length === 0) {
236
+ return [];
237
+ }
238
+ return [header, ...warnings.map((warning) => ` - ${warning}`)];
239
+ }
240
+ export const PreflightResult = {};
279
241
  export async function findSuggestedTestPaths(missingPaths, rootDir) {
280
242
  const suggestions = {};
281
243
  if (missingPaths.length === 0)
282
244
  return suggestions;
283
- // Cache strict searches to avoid re-reading fs
284
245
  const globOptions = {
285
246
  cwd: rootDir,
286
247
  caseSensitiveMatch: false,
@@ -288,22 +249,17 @@ export async function findSuggestedTestPaths(missingPaths, rootDir) {
288
249
  ignore: ['**/node_modules/**'],
289
250
  };
290
251
  for (const missingPath of missingPaths) {
291
- const filename = path.basename(missingPath);
292
- const basename = path.basename(filename, path.extname(filename));
252
+ const filename = missingPath.split('/').pop() || missingPath;
253
+ const basename = filename.replace(/\.[^/.]+$/, '');
293
254
  const cleanBasename = basename.replace(/(\.test|\.spec)$/, '');
294
- // Strategy 1: Search for exact filename elsewhere
295
255
  let matches = await fg(`**/${filename}`, globOptions);
296
- // Strategy 2: Search for filename with different extension (ts/js/mjs)
297
256
  if (matches.length === 0) {
298
257
  matches = await fg(`**/${basename}.{ts,js,mjs,tsx,jsx}`, globOptions);
299
258
  }
300
- // Strategy 3: Search for fuzzy match on basename (without .test/.spec)
301
259
  if (matches.length === 0) {
302
- // Look for the code file the test might be for
303
260
  matches = await fg(`**/${cleanBasename}.{ts,js,mjs,tsx,jsx}`, globOptions);
304
261
  }
305
262
  if (matches.length > 0) {
306
- // Filter out the missing path itself if it somehow showed up
307
263
  suggestions[missingPath] = matches.filter((m) => m !== missingPath);
308
264
  }
309
265
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wu-preflight-validators.js","sourceRoot":"","sources":["../src/wu-preflight-validators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wu-preflight-validators.js","sourceRoot":"","sources":["../src/wu-preflight-validators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ export type ValidationPhase = 'intent' | 'structural' | 'reality';
2
+ export interface ValidationIssue {
3
+ code: string;
4
+ severity: 'error' | 'warning';
5
+ message: string;
6
+ suggestion: string;
7
+ metadata?: Record<string, unknown>;
8
+ }
9
+ export interface WUValidationContextInput {
10
+ id?: string;
11
+ type?: string;
12
+ status?: string;
13
+ code_paths?: unknown;
14
+ tests?: unknown;
15
+ test_paths?: unknown;
16
+ cwd?: string;
17
+ baseRef?: string;
18
+ headRef?: string;
19
+ }
20
+ export interface WUValidationResult {
21
+ valid: boolean;
22
+ issues: ValidationIssue[];
23
+ errors: ValidationIssue[];
24
+ warnings: ValidationIssue[];
25
+ metadata: {
26
+ missingCodePaths: string[];
27
+ missingCoverageCodePaths: string[];
28
+ missingTestPaths: string[];
29
+ changedFiles: string[];
30
+ parityState: CliBinDiffState;
31
+ parityReason?: string;
32
+ };
33
+ }
34
+ export declare const RULE_CODES: {
35
+ readonly CODE_PATH_SHAPE: "R001_CODE_PATH_SHAPE";
36
+ readonly MINIMUM_TEST_INTENT: "R002_MINIMUM_TEST_INTENT";
37
+ readonly CODE_PATH_EXISTENCE: "R003_CODE_PATH_EXISTENCE";
38
+ readonly CODE_PATH_COVERAGE: "R004_CODE_PATH_COVERAGE";
39
+ readonly PARITY_MISSING_SURFACE: "R005_PARITY_MISSING_SURFACE";
40
+ readonly PARITY_UNAVAILABLE: "R005_PARITY_UNAVAILABLE";
41
+ readonly TEST_CLASSIFICATION: "R007_TEST_CLASSIFICATION";
42
+ readonly TEST_EXISTENCE: "R008_TEST_EXISTENCE";
43
+ };
44
+ export declare const CLI_PACKAGE_JSON_PATH = "packages/@lumenflow/cli/package.json";
45
+ export declare const REGISTRATION_SURFACES: {
46
+ readonly PUBLIC_MANIFEST: "packages/@lumenflow/cli/src/public-manifest.ts";
47
+ readonly MCP_TOOLS: "packages/@lumenflow/mcp/src/tools.ts";
48
+ };
49
+ export type CliBinDiffState = 'changed' | 'unchanged' | 'unavailable';
50
+ export interface CliBinDiffResult {
51
+ state: CliBinDiffState;
52
+ reason?: string;
53
+ baseRef?: string;
54
+ headRef: string;
55
+ }
56
+ export type ResolveChangedFilesResult = {
57
+ ok: true;
58
+ files: string[];
59
+ baseRef: string;
60
+ headRef: string;
61
+ } | {
62
+ ok: false;
63
+ reason: string;
64
+ };
65
+ export interface WURuleResolvers {
66
+ pathReferenceExists: (reference: string, cwd: string) => Promise<boolean>;
67
+ resolveChangedFiles: (options: {
68
+ cwd: string;
69
+ baseRef?: string;
70
+ headRef?: string;
71
+ }) => Promise<ResolveChangedFilesResult>;
72
+ resolveCliBinDiff: (options: {
73
+ cwd: string;
74
+ baseRef?: string;
75
+ headRef?: string;
76
+ }) => Promise<CliBinDiffResult>;
77
+ }
78
+ export declare function hasGlobPattern(pathValue: string): boolean;
79
+ export declare function normalizePathForCoverage(pathValue: string): string;
80
+ export declare function isCodePathCoveredByChangedFiles(options: {
81
+ codePath: string;
82
+ changedFiles: string[];
83
+ }): boolean;
84
+ export declare function findMissingCodePathCoverage(options: {
85
+ codePaths: string[];
86
+ changedFiles: string[];
87
+ }): string[];
88
+ export declare function isPathLikeTestEntry(value: string): boolean;
89
+ export declare function validateWURulesSync(input: WUValidationContextInput, options?: {
90
+ phase?: ValidationPhase;
91
+ }): WUValidationResult;
92
+ export declare function validateWURulesWithResolvers(input: WUValidationContextInput, options: {
93
+ phase?: ValidationPhase;
94
+ }, resolvers: WURuleResolvers): Promise<WUValidationResult>;
95
+ //# sourceMappingURL=wu-rules-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wu-rules-core.d.ts","sourceRoot":"","sources":["../src/wu-rules-core.ts"],"names":[],"mappings":"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"}