certfix 0.1.0__py3-none-any.whl

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 (44) hide show
  1. certfix/THIRD_PARTY_NOTICES.md +32 -0
  2. certfix/__init__.py +3 -0
  3. certfix/__main__.py +6 -0
  4. certfix/cli.py +1259 -0
  5. certfix/config.py +375 -0
  6. certfix/configs/__init__.py +0 -0
  7. certfix/configs/deepseek-v4-flash-api.yaml +79 -0
  8. certfix/configs/deepseek-v4-flash-openrouter.yaml +82 -0
  9. certfix/configs/examples/__init__.py +0 -0
  10. certfix/configs/examples/deepseek-gemini-step-overrides.yaml +97 -0
  11. certfix/configs/examples/local-detection-deepseek-fix.yaml +79 -0
  12. certfix/configs/gemini-3-flash-preview-openrouter.yaml +76 -0
  13. certfix/configs/qwen36-mtp-check.yaml +29 -0
  14. certfix/configs/qwen36-mtp-local.yaml +72 -0
  15. certfix/core/__init__.py +26 -0
  16. certfix/core/detector.py +209 -0
  17. certfix/core/fix_validator.py +335 -0
  18. certfix/core/fixer.py +92 -0
  19. certfix/core/include_resolver.py +113 -0
  20. certfix/core/preprocessor.py +133 -0
  21. certfix/core/programmatic_checks.py +412 -0
  22. certfix/core/rule_selection_cards.py +546 -0
  23. certfix/core/simple_repair.py +244 -0
  24. certfix/core/splitter.py +245 -0
  25. certfix/core/validate_guided_retry.py +278 -0
  26. certfix/core/validation.py +677 -0
  27. certfix/data/__init__.py +1 -0
  28. certfix/data/cert_c_rules_with_examples.json +211 -0
  29. certfix/env.py +47 -0
  30. certfix/exceptions.py +43 -0
  31. certfix/inference/__init__.py +10 -0
  32. certfix/inference/api.py +855 -0
  33. certfix/inference/base.py +55 -0
  34. certfix/inference/factory.py +160 -0
  35. certfix/inference/parsing.py +371 -0
  36. certfix/models.py +322 -0
  37. certfix/output.py +490 -0
  38. certfix/prompt_profiles.py +426 -0
  39. certfix/prompts.py +734 -0
  40. certfix-0.1.0.dist-info/METADATA +455 -0
  41. certfix-0.1.0.dist-info/RECORD +44 -0
  42. certfix-0.1.0.dist-info/WHEEL +4 -0
  43. certfix-0.1.0.dist-info/entry_points.txt +2 -0
  44. certfix-0.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,32 @@
1
+ # Third-Party Notices
2
+
3
+ This project is released under the MIT License. Some bundled test fixtures and
4
+ metadata refer to third-party standards. These notices preserve attribution and
5
+ keep the project license boundary clear.
6
+
7
+ ## SARIF 2.1.0 JSON Schema Fixture
8
+
9
+ - File: `tests/fixtures/sarif-schema-2.1.0.json`
10
+ - Source: OASIS Static Analysis Results Interchange Format (SARIF) Version
11
+ 2.1.0 JSON schema.
12
+ - Purpose: test fixture for validating SARIF output shape.
13
+ - Notice: SARIF is an OASIS standard. Do not treat this schema fixture as
14
+ project-authored MIT code.
15
+
16
+ ## CERT-C Rule Metadata
17
+
18
+ - File: `src/certfix/data/cert_c_rules_with_examples.json`
19
+ - Source context: SEI CERT C Coding Standard rule identifiers and rule titles.
20
+ - Purpose: compact rule metadata used for rule-candidate prompts and CLI output.
21
+ - Notice: CERT and SEI CERT C are associated with Carnegie Mellon University's
22
+ Software Engineering Institute. The bundled metadata is not a replacement for
23
+ the official CERT-C standard text.
24
+
25
+ ## Evaluation Datasets
26
+
27
+ Juliet, PrimeVul, calibration, holdout evaluation sample files, and derived
28
+ evaluation split metadata are not bundled in the initial public v0.1.0 package.
29
+ Maintainer scripts may generate local `*samples.jsonl.gz` files or
30
+ `eval-splits/` metadata for maintainer-side benchmarking, but those generated
31
+ datasets require separate source, license, and attribution review before public
32
+ redistribution.
certfix/__init__.py ADDED
@@ -0,0 +1,3 @@
1
+ """certfix - CERT-C issue candidate detector and fixed-code candidate generator."""
2
+
3
+ __version__ = "0.1.0"
certfix/__main__.py ADDED
@@ -0,0 +1,6 @@
1
+ """Entry point for python -m certfix."""
2
+
3
+ from certfix.cli import main
4
+
5
+ if __name__ == "__main__":
6
+ main()