raxit 0.1.2__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.
raxit-0.1.2/PKG-INFO ADDED
@@ -0,0 +1,61 @@
1
+ Metadata-Version: 2.4
2
+ Name: raxit
3
+ Version: 0.1.2
4
+ Summary: RAXIT - Runtime AI eXecution Integrity & Trust
5
+ Author-email: RAXIT Labs <info@raxitlabs.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/raxitlabs/ai-security
8
+ Project-URL: Repository, https://github.com/raxitlabs/ai-security
9
+ Project-URL: Issues, https://github.com/raxitlabs/ai-security/issues
10
+ Keywords: security,ai,agents,static-analysis
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Security
20
+ Classifier: Topic :: Software Development :: Quality Assurance
21
+ Requires-Python: >=3.9
22
+ Description-Content-Type: text/markdown
23
+
24
+ # raxit
25
+
26
+ RAXIT - Runtime AI eXecution Integrity & Trust
27
+
28
+ Security scanner for AI agent codebases. Detects agents, tools, trust boundaries,
29
+ and generates an Agent Assets Schema.
30
+
31
+ ## Installation
32
+
33
+ ```bash
34
+ pip install raxit
35
+ ```
36
+
37
+ ## Usage
38
+
39
+ ```python
40
+ import raxit
41
+
42
+ # Scan a project and get parsed results
43
+ result = raxit.scan("./my-agent-project")
44
+ print(f"Found {len(result.get('agents', []))} agents")
45
+ print(f"Found {len(result.get('tools', []))} tools")
46
+
47
+ # Get raw YAML output
48
+ yaml_output = raxit.scan_raw("./my-agent-project", format="yaml")
49
+
50
+ # Check version
51
+ print(raxit.version())
52
+ ```
53
+
54
+ ## CLI
55
+
56
+ The `raxit` binary is also available directly:
57
+
58
+ ```bash
59
+ raxit init ./my-agent-project
60
+ raxit init . --format json --output -
61
+ ```
raxit-0.1.2/README.md ADDED
@@ -0,0 +1,38 @@
1
+ # raxit
2
+
3
+ RAXIT - Runtime AI eXecution Integrity & Trust
4
+
5
+ Security scanner for AI agent codebases. Detects agents, tools, trust boundaries,
6
+ and generates an Agent Assets Schema.
7
+
8
+ ## Installation
9
+
10
+ ```bash
11
+ pip install raxit
12
+ ```
13
+
14
+ ## Usage
15
+
16
+ ```python
17
+ import raxit
18
+
19
+ # Scan a project and get parsed results
20
+ result = raxit.scan("./my-agent-project")
21
+ print(f"Found {len(result.get('agents', []))} agents")
22
+ print(f"Found {len(result.get('tools', []))} tools")
23
+
24
+ # Get raw YAML output
25
+ yaml_output = raxit.scan_raw("./my-agent-project", format="yaml")
26
+
27
+ # Check version
28
+ print(raxit.version())
29
+ ```
30
+
31
+ ## CLI
32
+
33
+ The `raxit` binary is also available directly:
34
+
35
+ ```bash
36
+ raxit init ./my-agent-project
37
+ raxit init . --format json --output -
38
+ ```
@@ -0,0 +1,38 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68.0"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "raxit"
7
+ version = "0.1.2"
8
+ description = "RAXIT - Runtime AI eXecution Integrity & Trust"
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ requires-python = ">=3.9"
12
+ authors = [
13
+ {name = "RAXIT Labs", email = "info@raxitlabs.com"},
14
+ ]
15
+ keywords = ["security", "ai", "agents", "static-analysis"]
16
+ classifiers = [
17
+ "Development Status :: 3 - Alpha",
18
+ "Intended Audience :: Developers",
19
+ "Programming Language :: Python :: 3",
20
+ "Programming Language :: Python :: 3.9",
21
+ "Programming Language :: Python :: 3.10",
22
+ "Programming Language :: Python :: 3.11",
23
+ "Programming Language :: Python :: 3.12",
24
+ "Programming Language :: Python :: 3.13",
25
+ "Topic :: Security",
26
+ "Topic :: Software Development :: Quality Assurance",
27
+ ]
28
+
29
+ [project.urls]
30
+ Homepage = "https://github.com/raxitlabs/ai-security"
31
+ Repository = "https://github.com/raxitlabs/ai-security"
32
+ Issues = "https://github.com/raxitlabs/ai-security/issues"
33
+
34
+ [tool.setuptools.packages.find]
35
+ include = ["raxit*"]
36
+
37
+ [tool.setuptools.package-data]
38
+ raxit = ["bin/*", "py.typed"]
@@ -0,0 +1,8 @@
1
+ """RAXIT - Runtime AI eXecution Integrity & Trust.
2
+
3
+ Pure Python wrapper around the raxit CLI binary.
4
+ """
5
+
6
+ from raxit._cli import scan, scan_raw, version
7
+
8
+ __all__ = ["scan", "scan_raw", "version"]
@@ -0,0 +1,132 @@
1
+ """CLI wrapper for the raxit binary."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import json
6
+ import os
7
+ import platform
8
+ import shutil
9
+ import subprocess
10
+ import sys
11
+ from pathlib import Path
12
+ from typing import Any
13
+
14
+
15
+ class RaxitError(Exception):
16
+ """Raised when the raxit binary returns a non-zero exit code."""
17
+
18
+ def __init__(self, returncode: int, stderr: str) -> None:
19
+ self.returncode = returncode
20
+ self.stderr = stderr
21
+ super().__init__(f"raxit exited with code {returncode}: {stderr}")
22
+
23
+
24
+ def _find_binary() -> str:
25
+ """Locate the raxit binary.
26
+
27
+ Search order:
28
+ 1. Bundled binary at raxit/bin/raxit (or raxit.exe on Windows)
29
+ 2. Binary on PATH
30
+ """
31
+ # Check bundled binary
32
+ bin_name = "raxit.exe" if platform.system() == "Windows" else "raxit"
33
+ bundled = Path(__file__).parent / "bin" / bin_name
34
+ if bundled.is_file():
35
+ return str(bundled)
36
+
37
+ # Check PATH
38
+ on_path = shutil.which("raxit")
39
+ if on_path:
40
+ return on_path
41
+
42
+ raise FileNotFoundError(
43
+ "raxit binary not found. Install it via: "
44
+ "cargo install raxit, or download from GitHub releases."
45
+ )
46
+
47
+
48
+ def _run(args: list[str], *, check: bool = True) -> subprocess.CompletedProcess[str]:
49
+ """Run the raxit binary with given arguments."""
50
+ binary = _find_binary()
51
+ result = subprocess.run(
52
+ [binary, *args],
53
+ capture_output=True,
54
+ text=True,
55
+ )
56
+ if check and result.returncode != 0:
57
+ raise RaxitError(result.returncode, result.stderr)
58
+ return result
59
+
60
+
61
+ def scan(
62
+ path: str | os.PathLike[str] = ".",
63
+ *,
64
+ format: str = "json",
65
+ exclude: list[str] | None = None,
66
+ parallel: int = 0,
67
+ verbose: bool = False,
68
+ ) -> dict[str, Any]:
69
+ """Scan a project and return the parsed Agent Assets Schema.
70
+
71
+ Args:
72
+ path: Path to the project to scan.
73
+ format: Output format (only "json" is used internally).
74
+ exclude: Glob patterns to exclude.
75
+ parallel: Number of parallel workers (0 = auto).
76
+ verbose: Enable verbose logging.
77
+
78
+ Returns:
79
+ Parsed schema as a dictionary.
80
+ """
81
+ args = ["init", str(path), "--format", "json", "--output", "-"]
82
+
83
+ if exclude:
84
+ for pattern in exclude:
85
+ args.extend(["--exclude", pattern])
86
+ if parallel > 0:
87
+ args.extend(["--parallel", str(parallel)])
88
+ if verbose:
89
+ args.append("--verbose")
90
+
91
+ result = _run(args)
92
+ return json.loads(result.stdout)
93
+
94
+
95
+ def scan_raw(
96
+ path: str | os.PathLike[str] = ".",
97
+ *,
98
+ format: str = "yaml",
99
+ exclude: list[str] | None = None,
100
+ parallel: int = 0,
101
+ verbose: bool = False,
102
+ ) -> str:
103
+ """Scan a project and return the raw output string.
104
+
105
+ Args:
106
+ path: Path to the project to scan.
107
+ format: Output format ("yaml" or "json").
108
+ exclude: Glob patterns to exclude.
109
+ parallel: Number of parallel workers (0 = auto).
110
+ verbose: Enable verbose logging.
111
+
112
+ Returns:
113
+ Raw schema string in the requested format.
114
+ """
115
+ args = ["init", str(path), "--format", format, "--output", "-"]
116
+
117
+ if exclude:
118
+ for pattern in exclude:
119
+ args.extend(["--exclude", pattern])
120
+ if parallel > 0:
121
+ args.extend(["--parallel", str(parallel)])
122
+ if verbose:
123
+ args.append("--verbose")
124
+
125
+ result = _run(args)
126
+ return result.stdout
127
+
128
+
129
+ def version() -> str:
130
+ """Return the raxit binary version string."""
131
+ result = _run(["--version"])
132
+ return result.stdout.strip()
Binary file
File without changes
@@ -0,0 +1,61 @@
1
+ Metadata-Version: 2.4
2
+ Name: raxit
3
+ Version: 0.1.2
4
+ Summary: RAXIT - Runtime AI eXecution Integrity & Trust
5
+ Author-email: RAXIT Labs <info@raxitlabs.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/raxitlabs/ai-security
8
+ Project-URL: Repository, https://github.com/raxitlabs/ai-security
9
+ Project-URL: Issues, https://github.com/raxitlabs/ai-security/issues
10
+ Keywords: security,ai,agents,static-analysis
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Security
20
+ Classifier: Topic :: Software Development :: Quality Assurance
21
+ Requires-Python: >=3.9
22
+ Description-Content-Type: text/markdown
23
+
24
+ # raxit
25
+
26
+ RAXIT - Runtime AI eXecution Integrity & Trust
27
+
28
+ Security scanner for AI agent codebases. Detects agents, tools, trust boundaries,
29
+ and generates an Agent Assets Schema.
30
+
31
+ ## Installation
32
+
33
+ ```bash
34
+ pip install raxit
35
+ ```
36
+
37
+ ## Usage
38
+
39
+ ```python
40
+ import raxit
41
+
42
+ # Scan a project and get parsed results
43
+ result = raxit.scan("./my-agent-project")
44
+ print(f"Found {len(result.get('agents', []))} agents")
45
+ print(f"Found {len(result.get('tools', []))} tools")
46
+
47
+ # Get raw YAML output
48
+ yaml_output = raxit.scan_raw("./my-agent-project", format="yaml")
49
+
50
+ # Check version
51
+ print(raxit.version())
52
+ ```
53
+
54
+ ## CLI
55
+
56
+ The `raxit` binary is also available directly:
57
+
58
+ ```bash
59
+ raxit init ./my-agent-project
60
+ raxit init . --format json --output -
61
+ ```
@@ -0,0 +1,10 @@
1
+ README.md
2
+ pyproject.toml
3
+ raxit/__init__.py
4
+ raxit/_cli.py
5
+ raxit/py.typed
6
+ raxit.egg-info/PKG-INFO
7
+ raxit.egg-info/SOURCES.txt
8
+ raxit.egg-info/dependency_links.txt
9
+ raxit.egg-info/top_level.txt
10
+ raxit/bin/raxit
@@ -0,0 +1 @@
1
+ raxit
raxit-0.1.2/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+