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.
- {codejury-0.14.0 → codejury-0.14.1}/PKG-INFO +1 -1
- {codejury-0.14.0 → codejury-0.14.1}/codejury/cli.py +1 -1
- {codejury-0.14.0/codejury/fullreview → codejury-0.14.1/codejury/repo}/scaffold.py +8 -7
- {codejury-0.14.0 → codejury-0.14.1}/codejury.egg-info/PKG-INFO +1 -1
- {codejury-0.14.0 → codejury-0.14.1}/codejury.egg-info/SOURCES.txt +4 -5
- {codejury-0.14.0 → codejury-0.14.1}/pyproject.toml +1 -1
- {codejury-0.14.0 → codejury-0.14.1}/tests/test_repo_model.py +1 -1
- codejury-0.14.0/tests/test_full_review_scaffold.py → codejury-0.14.1/tests/test_repo_scaffold.py +1 -1
- codejury-0.14.0/codejury/analysis/__init__.py +0 -8
- {codejury-0.14.0 → codejury-0.14.1}/LICENSE +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/README.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/__init__.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/agent/full-review.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/agent/security-review-memory.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/entrypoints.yaml +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/SKILL.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/business-logic.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/code-injection.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/command-injection.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/cross-site-request-forgery.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/cross-site-scripting.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/hardcoded-secrets.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/http-response-splitting.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/improper-authentication.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/information-exposure.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/insecure-cryptography.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/insecure-deserialization.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/insecure-direct-object-reference.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/insecure-transport.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/jwt-validation.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/mass-assignment.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/missing-authorization.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/open-redirect.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/path-traversal.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/race-condition.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/replay-attack.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/server-side-request-forgery.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/server-side-template-injection.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/session-fixation.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/sql-injection.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/data/rules/xml-external-entity.md +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/diff/__init__.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/diff/debate.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/diff/debate_prompts.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/diff/engine.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/diff/findings_filter.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/diff/prompts.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/diff/report.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/diff/rules.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/domain/__init__.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/domain/finding.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/infrastructure/__init__.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/infrastructure/json_parse.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/__init__.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/anthropic.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/base.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/factory.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/litellm.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/mock.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/openai.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/openai_format.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/providers/retry.py +0 -0
- {codejury-0.14.0/codejury/fullreview → codejury-0.14.1/codejury/repo}/__init__.py +0 -0
- /codejury-0.14.0/codejury/analysis/repo_model.py → /codejury-0.14.1/codejury/repo/model.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury/resources.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury.egg-info/dependency_links.txt +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury.egg-info/entry_points.txt +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury.egg-info/requires.txt +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/codejury.egg-info/top_level.txt +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/setup.cfg +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/tests/test_anthropic_provider.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/tests/test_cli_audit.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/tests/test_diff_debate.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/tests/test_diff_engine.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/tests/test_diff_report.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/tests/test_json_parse.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/tests/test_litellm_provider.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/tests/test_openai_format.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/tests/test_openai_provider.py +0 -0
- {codejury-0.14.0 → codejury-0.14.1}/tests/test_retry_provider.py +0 -0
- {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.
|
|
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.
|
|
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
|
-
"""
|
|
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
|
|
4
|
-
as a pipeline. Instead it scaffolds a workspace for an
|
|
5
|
-
Code, Codex) and hands over the methodology: it creates
|
|
6
|
-
directories, copies the review-memory template, seeds the
|
|
7
|
-
deterministic RepoModel scan, and returns the methodology
|
|
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.
|
|
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.
|
|
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.
|
|
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,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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|