codejury 0.14.0__tar.gz → 0.14.1__tar.gz

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 (81) hide show
  1. {codejury-0.14.0 → codejury-0.14.1}/PKG-INFO +1 -1
  2. {codejury-0.14.0 → codejury-0.14.1}/codejury/cli.py +1 -1
  3. {codejury-0.14.0/codejury/fullreview → codejury-0.14.1/codejury/repo}/scaffold.py +8 -7
  4. {codejury-0.14.0 → codejury-0.14.1}/codejury.egg-info/PKG-INFO +1 -1
  5. {codejury-0.14.0 → codejury-0.14.1}/codejury.egg-info/SOURCES.txt +4 -5
  6. {codejury-0.14.0 → codejury-0.14.1}/pyproject.toml +1 -1
  7. {codejury-0.14.0 → codejury-0.14.1}/tests/test_repo_model.py +1 -1
  8. codejury-0.14.0/tests/test_full_review_scaffold.py → codejury-0.14.1/tests/test_repo_scaffold.py +1 -1
  9. codejury-0.14.0/codejury/analysis/__init__.py +0 -8
  10. {codejury-0.14.0 → codejury-0.14.1}/LICENSE +0 -0
  11. {codejury-0.14.0 → codejury-0.14.1}/README.md +0 -0
  12. {codejury-0.14.0 → codejury-0.14.1}/codejury/__init__.py +0 -0
  13. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/agent/full-review.md +0 -0
  14. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/agent/security-review-memory.md +0 -0
  15. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/entrypoints.yaml +0 -0
  16. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/SKILL.md +0 -0
  17. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/business-logic.md +0 -0
  18. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/code-injection.md +0 -0
  19. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/command-injection.md +0 -0
  20. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/cross-site-request-forgery.md +0 -0
  21. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/cross-site-scripting.md +0 -0
  22. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/hardcoded-secrets.md +0 -0
  23. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/http-response-splitting.md +0 -0
  24. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/improper-authentication.md +0 -0
  25. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/information-exposure.md +0 -0
  26. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/insecure-cryptography.md +0 -0
  27. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/insecure-deserialization.md +0 -0
  28. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/insecure-direct-object-reference.md +0 -0
  29. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/insecure-transport.md +0 -0
  30. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/jwt-validation.md +0 -0
  31. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/mass-assignment.md +0 -0
  32. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/missing-authorization.md +0 -0
  33. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/open-redirect.md +0 -0
  34. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/path-traversal.md +0 -0
  35. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/race-condition.md +0 -0
  36. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/replay-attack.md +0 -0
  37. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/server-side-request-forgery.md +0 -0
  38. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/server-side-template-injection.md +0 -0
  39. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/session-fixation.md +0 -0
  40. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/sql-injection.md +0 -0
  41. {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/xml-external-entity.md +0 -0
  42. {codejury-0.14.0 → codejury-0.14.1}/codejury/diff/__init__.py +0 -0
  43. {codejury-0.14.0 → codejury-0.14.1}/codejury/diff/debate.py +0 -0
  44. {codejury-0.14.0 → codejury-0.14.1}/codejury/diff/debate_prompts.py +0 -0
  45. {codejury-0.14.0 → codejury-0.14.1}/codejury/diff/engine.py +0 -0
  46. {codejury-0.14.0 → codejury-0.14.1}/codejury/diff/findings_filter.py +0 -0
  47. {codejury-0.14.0 → codejury-0.14.1}/codejury/diff/prompts.py +0 -0
  48. {codejury-0.14.0 → codejury-0.14.1}/codejury/diff/report.py +0 -0
  49. {codejury-0.14.0 → codejury-0.14.1}/codejury/diff/rules.py +0 -0
  50. {codejury-0.14.0 → codejury-0.14.1}/codejury/domain/__init__.py +0 -0
  51. {codejury-0.14.0 → codejury-0.14.1}/codejury/domain/finding.py +0 -0
  52. {codejury-0.14.0 → codejury-0.14.1}/codejury/infrastructure/__init__.py +0 -0
  53. {codejury-0.14.0 → codejury-0.14.1}/codejury/infrastructure/json_parse.py +0 -0
  54. {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/__init__.py +0 -0
  55. {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/anthropic.py +0 -0
  56. {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/base.py +0 -0
  57. {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/factory.py +0 -0
  58. {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/litellm.py +0 -0
  59. {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/mock.py +0 -0
  60. {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/openai.py +0 -0
  61. {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/openai_format.py +0 -0
  62. {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/retry.py +0 -0
  63. {codejury-0.14.0/codejury/fullreview → codejury-0.14.1/codejury/repo}/__init__.py +0 -0
  64. /codejury-0.14.0/codejury/analysis/repo_model.py → /codejury-0.14.1/codejury/repo/model.py +0 -0
  65. {codejury-0.14.0 → codejury-0.14.1}/codejury/resources.py +0 -0
  66. {codejury-0.14.0 → codejury-0.14.1}/codejury.egg-info/dependency_links.txt +0 -0
  67. {codejury-0.14.0 → codejury-0.14.1}/codejury.egg-info/entry_points.txt +0 -0
  68. {codejury-0.14.0 → codejury-0.14.1}/codejury.egg-info/requires.txt +0 -0
  69. {codejury-0.14.0 → codejury-0.14.1}/codejury.egg-info/top_level.txt +0 -0
  70. {codejury-0.14.0 → codejury-0.14.1}/setup.cfg +0 -0
  71. {codejury-0.14.0 → codejury-0.14.1}/tests/test_anthropic_provider.py +0 -0
  72. {codejury-0.14.0 → codejury-0.14.1}/tests/test_cli_audit.py +0 -0
  73. {codejury-0.14.0 → codejury-0.14.1}/tests/test_diff_debate.py +0 -0
  74. {codejury-0.14.0 → codejury-0.14.1}/tests/test_diff_engine.py +0 -0
  75. {codejury-0.14.0 → codejury-0.14.1}/tests/test_diff_report.py +0 -0
  76. {codejury-0.14.0 → codejury-0.14.1}/tests/test_json_parse.py +0 -0
  77. {codejury-0.14.0 → codejury-0.14.1}/tests/test_litellm_provider.py +0 -0
  78. {codejury-0.14.0 → codejury-0.14.1}/tests/test_openai_format.py +0 -0
  79. {codejury-0.14.0 → codejury-0.14.1}/tests/test_openai_provider.py +0 -0
  80. {codejury-0.14.0 → codejury-0.14.1}/tests/test_retry_provider.py +0 -0
  81. {codejury-0.14.0 → codejury-0.14.1}/tests/test_rules.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codejury
3
- Version: 0.14.0
3
+ Version: 0.14.1
4
4
  Summary: AI code security review: an adversarial diff-audit engine and an agent-driven whole-repo review methodology, with security knowledge as rich rules
5
5
  Author: AISecLabs
6
6
  License-Expression: MIT
@@ -30,7 +30,7 @@ from codejury.domain.finding import Finding
30
30
  # A diff larger than this is audited file-by-file so a big PR does not overflow
31
31
  # the model's context and silently truncate the reply.
32
32
  _MAX_DIFF_CHARS = 60_000
33
- from codejury.fullreview.scaffold import scaffold
33
+ from codejury.repo.scaffold import scaffold
34
34
  from codejury.providers.factory import (
35
35
  DEFAULT_API_BASE,
36
36
  DEFAULT_API_KEY,
@@ -1,10 +1,11 @@
1
- """Full-review scaffold: set up the agent's workspace, do not run a pipeline.
1
+ """Whole-repo review scaffold: set up the agent's workspace, do not run a pipeline.
2
2
 
3
- Whole-repo review is too large for a single LLM call, so codejury does not run it
4
- as a pipeline. Instead it scaffolds a workspace for an interactive agent (Claude
5
- Code, Codex) and hands over the methodology: it creates the api/issues/analysis
6
- directories, copies the review-memory template, seeds the API inventory from a
7
- deterministic RepoModel scan, and returns the methodology text to print.
3
+ The `review repo` path. Whole-repo review is too large for a single LLM call, so
4
+ codejury does not run it as a pipeline. Instead it scaffolds a workspace for an
5
+ interactive agent (Claude Code, Codex) and hands over the methodology: it creates
6
+ the api/issues/analysis directories, copies the review-memory template, seeds the
7
+ API inventory from a deterministic RepoModel scan, and returns the methodology
8
+ text to print.
8
9
  """
9
10
 
10
11
  from __future__ import annotations
@@ -12,7 +13,7 @@ from __future__ import annotations
12
13
  from dataclasses import dataclass, field
13
14
  from pathlib import Path
14
15
 
15
- from codejury.analysis.repo_model import build_repo_model_from_dir
16
+ from codejury.repo.model import build_repo_model_from_dir
16
17
  from codejury.resources import AGENT_DIR
17
18
 
18
19
  _METHODOLOGY = AGENT_DIR / "full-review.md"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codejury
3
- Version: 0.14.0
3
+ Version: 0.14.1
4
4
  Summary: AI code security review: an adversarial diff-audit engine and an agent-driven whole-repo review methodology, with security knowledge as rich rules
5
5
  Author: AISecLabs
6
6
  License-Expression: MIT
@@ -10,8 +10,6 @@ codejury.egg-info/dependency_links.txt
10
10
  codejury.egg-info/entry_points.txt
11
11
  codejury.egg-info/requires.txt
12
12
  codejury.egg-info/top_level.txt
13
- codejury/analysis/__init__.py
14
- codejury/analysis/repo_model.py
15
13
  codejury/data/entrypoints.yaml
16
14
  codejury/data/agent/full-review.md
17
15
  codejury/data/agent/security-review-memory.md
@@ -51,8 +49,6 @@ codejury/diff/report.py
51
49
  codejury/diff/rules.py
52
50
  codejury/domain/__init__.py
53
51
  codejury/domain/finding.py
54
- codejury/fullreview/__init__.py
55
- codejury/fullreview/scaffold.py
56
52
  codejury/infrastructure/__init__.py
57
53
  codejury/infrastructure/json_parse.py
58
54
  codejury/providers/__init__.py
@@ -64,16 +60,19 @@ codejury/providers/mock.py
64
60
  codejury/providers/openai.py
65
61
  codejury/providers/openai_format.py
66
62
  codejury/providers/retry.py
63
+ codejury/repo/__init__.py
64
+ codejury/repo/model.py
65
+ codejury/repo/scaffold.py
67
66
  tests/test_anthropic_provider.py
68
67
  tests/test_cli_audit.py
69
68
  tests/test_diff_debate.py
70
69
  tests/test_diff_engine.py
71
70
  tests/test_diff_report.py
72
- tests/test_full_review_scaffold.py
73
71
  tests/test_json_parse.py
74
72
  tests/test_litellm_provider.py
75
73
  tests/test_openai_format.py
76
74
  tests/test_openai_provider.py
77
75
  tests/test_repo_model.py
76
+ tests/test_repo_scaffold.py
78
77
  tests/test_retry_provider.py
79
78
  tests/test_rules.py
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "codejury"
3
- version = "0.14.0"
3
+ version = "0.14.1"
4
4
  description = "AI code security review: an adversarial diff-audit engine and an agent-driven whole-repo review methodology, with security knowledge as rich rules"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -1,6 +1,6 @@
1
1
  """P6-01: the RepoModel entrypoint detection is deterministic and data-driven."""
2
2
 
3
- from codejury.analysis.repo_model import (
3
+ from codejury.repo.model import (
4
4
  Entrypoint,
5
5
  build_repo_model,
6
6
  build_repo_model_from_dir,
@@ -2,7 +2,7 @@
2
2
  analysis + memory + seeded entrypoints) and returns the methodology. It does not
3
3
  run an LLM pipeline."""
4
4
 
5
- from codejury.fullreview.scaffold import scaffold
5
+ from codejury.repo.scaffold import scaffold
6
6
 
7
7
  APP = '''
8
8
  from flask import Flask
@@ -1,8 +0,0 @@
1
- """Static analysis for provenance (P1).
2
-
3
- The code-graph / data-flow engine that gives the verifier provenance: whether a
4
- value reaching a sink is attacker-controlled, sanitized, or a trusted constant.
5
- It targets the taint precision floor that single-file LLM review cannot reach,
6
- see ROADMAP P1. Python AST based, currently intra-procedural plus a one-hop
7
- cross-file caller resolution, not yet a full code graph.
8
- """
File without changes
File without changes
File without changes
File without changes