@@ -8,20 +8,20 @@ PIPELINES[12] (Analysis:2, Core:3, Export:2, IO:1, NLP:1, Unknown:3):
88 → from_path(cls, path:str | Path) → Optional[Language] CC=1 pure ■
99 PURITY: 2/4 pure BOTTLENECK: _check_lizard(CC=12)
1010
11- Src [Unknown]: Proposal → Optional[int]
12- → validate(proposal:Proposal, context:dict) → ValidationResult CC=3 cache ▶
13- → _parse_response(response_text:str) → ValidationResult CC=4 IO
14- → _parse_issues(data:dict) → list CC=3 mutation
15- → _parse_line_number(line) → Optional[int] CC=4 pure ■
16- PURITY: 1/4 pure BOTTLENECK: _parse_response(CC=4)
17-
1811 Src [Core]: Proposal → ?
1912 → validate(proposal:Proposal, context:dict) → ValidationResult CC=2 pure ▶
2013 → _validate_treesitter(code:str, language:str) → tuple[float, list[Issue]] CC=3 mutation
2114 → tree_sitter_error_count(code:str, language:str) → int CC=1 mutation
2215 → parse_code(code:str, language:str) CC=1 pure ■
2316 PURITY: 2/4 pure BOTTLENECK: _validate_treesitter(CC=3)
2417
18+ Src [Unknown]: Proposal → Optional[int]
19+ → validate(proposal:Proposal, context:dict) → ValidationResult CC=3 cache ▶
20+ → _parse_response(response_text:str) → ValidationResult CC=4 IO
21+ → _parse_issues(data:dict) → list CC=3 mutation
22+ → _parse_line_number(line) → Optional[int] CC=4 pure ■
23+ PURITY: 1/4 pure BOTTLENECK: _parse_response(CC=4)
24+
2525 Src [Core]: Path | str → str
2626 → matches(path:Path | str) → bool CC=4 pure ▶
2727 → _match_pattern(rel_path:str, name:str, pattern:str) → bool CC=8 pure
@@ -43,20 +43,20 @@ PIPELINES[12] (Analysis:2, Core:3, Export:2, IO:1, NLP:1, Unknown:3):
4343 → output_rich(result:ValidationResult, verbose:bool) → None CC=6 IO ■
4444 PURITY: 2/4 pure BOTTLENECK: _process_files(CC=26)
4545
46- Examples [Unknown]: ? → ?
47- → main() CC=4 IO ▶
48- → run_autonomous_workflow(code_path:Path, max_iterations:int) CC=9 IO
49- → run_runtime_tests(code_path:Path, test_file:Optional[Path]) → Dict CC=8 IO
50- → create_basic_tests(code_path:Path, test_file:Path) CC=7 IO ■
51- PURITY: 0/4 pure BOTTLENECK: run_autonomous_workflow(CC=9)
52-
5346 Src [Core]: ? → ?
5447 → main() CC=9 IO ▶
5548 → diff_python_code(before_code:str, after_code:str) → GraphDiffResult CC=1 pure
5649 → diff_graphs(before:CodeGraph, after:CodeGraph) → GraphDiffResult CC=5 pure
5750 → _diff_list(before, after, added:bool) CC=9 pure ■
5851 PURITY: 3/4 pure BOTTLENECK: main(CC=9)
5952
53+ Examples [Unknown]: ? → ?
54+ → main() CC=4 IO ▶
55+ → run_autonomous_workflow(code_path:Path, max_iterations:int) CC=9 IO
56+ → run_runtime_tests(code_path:Path, test_file:Optional[Path]) → Dict CC=8 IO
57+ → create_basic_tests(code_path:Path, test_file:Path) CC=7 IO ■
58+ PURITY: 0/4 pure BOTTLENECK: run_autonomous_workflow(CC=9)
59+
6060 Examples [Unknown]: ? → ?
6161 → main() CC=5 IO ▶
6262 → run_simple_workflow(code_path:Path, max_iterations:int) CC=9 IO
@@ -125,27 +125,6 @@ CONTRACTS:
125125 IN: cls, path:str | Path
126126 OUT: Optional[Language]
127127
128- Pipeline: Src
129- validate(proposal:Proposal, context:dict) → ValidationResult
130- IN: proposal:Proposal, context:dict
131- OUT: ValidationResult
132- SIDE-EFFECT: cache(self.cache.get, self.cache.set)
133- INVARIANT: raises on invalid input
134-
135- _parse_response(response_text:str) → ValidationResult
136- IN: response_text:str
137- OUT: ValidationResult
138- SIDE-EFFECT: IO(loads)
139-
140- _parse_issues(data:dict) → list
141- IN: data:dict
142- OUT: list
143- SIDE-EFFECT: pure
144-
145- _parse_line_number(line) → Optional[int]
146- IN: line
147- OUT: Optional[int]
148-
149128 Pipeline: Src
150129 validate(proposal:Proposal, context:dict) → ValidationResult
151130 IN: proposal:Proposal, context:dict
@@ -167,6 +146,27 @@ CONTRACTS:
167146 IN: code:str, language:str
168147 OUT: None
169148
149+ Pipeline: Src
150+ validate(proposal:Proposal, context:dict) → ValidationResult
151+ IN: proposal:Proposal, context:dict
152+ OUT: ValidationResult
153+ SIDE-EFFECT: cache(self.cache.get, self.cache.set)
154+ INVARIANT: raises on invalid input
155+
156+ _parse_response(response_text:str) → ValidationResult
157+ IN: response_text:str
158+ OUT: ValidationResult
159+ SIDE-EFFECT: IO(loads)
160+
161+ _parse_issues(data:dict) → list
162+ IN: data:dict
163+ OUT: list
164+ SIDE-EFFECT: pure
165+
166+ _parse_line_number(line) → Optional[int]
167+ IN: line
168+ OUT: Optional[int]
169+
170170 Pipeline: Src
171171 matches(path:Path | str) → bool
172172 IN: path:Path | str
@@ -225,6 +225,24 @@ CONTRACTS:
225225 OUT: None
226226 SIDE-EFFECT: IO(print, print, print)
227227
228+ Pipeline: Src
229+ main()
230+ IN: ()
231+ OUT: None
232+ SIDE-EFFECT: IO(print, print, print)
233+
234+ diff_python_code(before_code:str, after_code:str) → GraphDiffResult
235+ IN: before_code:str, after_code:str
236+ OUT: GraphDiffResult
237+
238+ diff_graphs(before:CodeGraph, after:CodeGraph) → GraphDiffResult
239+ IN: before:CodeGraph, after:CodeGraph
240+ OUT: GraphDiffResult
241+
242+ _diff_list(before, after, added:bool)
243+ IN: before, after, added:bool
244+ OUT: None
245+
228246 Pipeline: Examples
229247 main()
230248 IN: ()
@@ -246,24 +264,6 @@ CONTRACTS:
246264 OUT: None
247265 SIDE-EFFECT: IO(read_text, write_text, print)
248266
249- Pipeline: Src
250- main()
251- IN: ()
252- OUT: None
253- SIDE-EFFECT: IO(print, print, print)
254-
255- diff_python_code(before_code:str, after_code:str) → GraphDiffResult
256- IN: before_code:str, after_code:str
257- OUT: GraphDiffResult
258-
259- diff_graphs(before:CodeGraph, after:CodeGraph) → GraphDiffResult
260- IN: before:CodeGraph, after:CodeGraph
261- OUT: GraphDiffResult
262-
263- _diff_list(before, after, added:bool)
264- IN: before, after, added:bool
265- OUT: None
266-
267267 Pipeline: Examples
268268 main()
269269 IN: ()
@@ -355,17 +355,17 @@ DATA_TYPES (by cross-function usage) [242 annotated, 0 inferred / 316 functions]
355355 ValidationResult consumed:5 produced:18
356356 Proposal consumed:16 produced:1 !! HUB-TYPE → split interface
357357 str, Any consumed:6 produced:10
358- Dict consumed:7 produced:6
359358 VallmSettings consumed:11 produced:2 !! HUB-TYPE → split interface
359+ Dict consumed:7 produced:6
360360 list[Path] consumed:6 produced:2
361361 float consumed:4 produced:4
362362 Issue consumed:1 produced:4
363363 Language consumed:0 produced:4 narrow scope
364+ str | Path consumed:3 produced:0 narrow scope
365+ list[Issue] consumed:0 produced:3 narrow scope
364366 ExecutionResult consumed:0 produced:3 narrow scope
365367 GitignoreParser consumed:1 produced:2 narrow scope
366- str | Path consumed:3 produced:0 narrow scope
367368 list[str] consumed:2 produced:1 narrow scope
368- list[Issue] consumed:0 produced:3 narrow scope
369369
370370 HUB TYPES (consumed ≥10):
371371 str → 186 consumers → split into:
@@ -386,21 +386,21 @@ DATA_TYPES (by cross-function usage) [242 annotated, 0 inferred / 316 functions]
386386 - (analyze consumers to suggest sub-interfaces)
387387
388388SIDE_EFFECTS:
389- IO: main, LogicalErrorValidator._check_pyflakes, SecurityValidator._try_bandit, SemanticCache.__init__, SemanticCache.get, SemanticCache.set, SemanticCache.clear, SemanticValidator._call_http, SemanticValidator._parse_response, LintValidator._check_ruff
389+ IO: main, LogicalErrorValidator._check_pyflakes, SemanticCache.__init__, SemanticCache.get, SemanticCache.set, SemanticCache.clear, SecurityValidator._try_bandit , SemanticValidator._call_http, SemanticValidator._parse_response, LintValidator._check_ruff
390390 Cache: SemanticCache.get_cache_stats, get_semantic_cache, clear_semantic_cache, SemanticValidator.__init__, SemanticValidator.validate
391- Mutation: _initialize_validators, _run_validation_pipeline, _get_default_validators, ComplexityValidator.__init__, ComplexityValidator.validate, ComplexityValidator._check_python_complexity, ComplexityValidator._check_lizard, LogicalErrorValidator.__init__ , SecurityValidator.validate, SecurityValidator._check_patterns
391+ Mutation: _initialize_validators, _run_validation_pipeline, _get_default_validators, LogicalErrorValidator.__init__, ComplexityValidator.__init__, ComplexityValidator.validate, ComplexityValidator._check_python_complexity, ComplexityValidator._check_lizard, SecurityValidator.validate, SecurityValidator._check_patterns
392392 Pure: bump_version, VallmSpec.validate_proposal, VallmSpec.get_validator_name, VallmSpec.get_validator_tier, Issue.__str__, compute_verdict, validate, _initialize_settings, _initialize_context, BaseValidator.validate
393393
394394 PIPELINE PURITY:
395395 Src ██░░ 50% pure
396- Src █░░░ 25% pure
397396 Src ██░░ 50% pure
397+ Src █░░░ 25% pure
398398 Src ███░ 75% pure
399399 Src ███░ 75% pure
400400 Src ██░░ 50% pure
401- Examples ░░░░ 0% pure
402401 Src ███░ 75% pure
403402 Examples ░░░░ 0% pure
403+ Examples ░░░░ 0% pure
404404 Examples ██░░ 50% pure
405405 Examples ░░░░ 0% pure
406406 Examples ██░░ 50% pure
0 commit comments