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 +61 -0
- raxit-0.1.2/README.md +38 -0
- raxit-0.1.2/pyproject.toml +38 -0
- raxit-0.1.2/raxit/__init__.py +8 -0
- raxit-0.1.2/raxit/_cli.py +132 -0
- raxit-0.1.2/raxit/bin/raxit +0 -0
- raxit-0.1.2/raxit/py.typed +0 -0
- raxit-0.1.2/raxit.egg-info/PKG-INFO +61 -0
- raxit-0.1.2/raxit.egg-info/SOURCES.txt +10 -0
- raxit-0.1.2/raxit.egg-info/dependency_links.txt +1 -0
- raxit-0.1.2/raxit.egg-info/top_level.txt +1 -0
- raxit-0.1.2/setup.cfg +4 -0
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,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 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
raxit
|
raxit-0.1.2/setup.cfg
ADDED