omnidraw 0.1.0__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.
@@ -0,0 +1,3 @@
1
+ include README.md
2
+ recursive-include src *.py
3
+ global-exclude __pycache__ *.py[cod]
@@ -0,0 +1,119 @@
1
+ Metadata-Version: 2.4
2
+ Name: omnidraw
3
+ Version: 0.1.0
4
+ Summary: MCP-native AI drawing engine — lets your AI assistant create, edit, and export images
5
+ Author: Priceless Youth
6
+ License: MIT
7
+ Project-URL: Homepage, https://omnidraw.vercel.app
8
+ Project-URL: Repository, https://github.com/timtiger/omnidraw
9
+ Project-URL: Issues, https://github.com/timtiger/omnidraw/issues
10
+ Project-URL: Documentation, https://omnidraw.vercel.app/docs/install
11
+ Keywords: mcp,ai,drawing,graphics,omnidraw,image-generation
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: Microsoft :: Windows
17
+ Classifier: Operating System :: MacOS
18
+ Classifier: Operating System :: POSIX :: Linux
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3 :: Only
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Topic :: Multimedia :: Graphics
26
+ Classifier: Topic :: Artistic Software
27
+ Requires-Python: >=3.10
28
+ Description-Content-Type: text/markdown
29
+ Provides-Extra: dev
30
+ Requires-Dist: build>=1.2; extra == "dev"
31
+ Requires-Dist: twine>=5; extra == "dev"
32
+
33
+ # OmniDraw
34
+
35
+ **The drawing engine built for AI.** OmniDraw lets your AI assistant create, edit, and export images — right from the chat.
36
+
37
+ [![PyPI](https://img.shields.io/pypi/v/omnidraw)](https://pypi.org/project/omnidraw/)
38
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/timtiger/omnidraw/blob/main/LICENSE)
39
+
40
+ ## Install
41
+
42
+ ```bash
43
+ pip install omnidraw
44
+ ```
45
+
46
+ **Supported platforms:** Windows (x64), macOS (Apple Silicon), Linux (x64).
47
+
48
+ ## Quick start
49
+
50
+ 1. Install OmniDraw:
51
+
52
+ ```bash
53
+ pip install omnidraw
54
+ ```
55
+
56
+ 2. Add to your MCP client config (Cursor, Claude Desktop, etc.):
57
+
58
+ ```json
59
+ {
60
+ "mcpServers": {
61
+ "omnidraw": {
62
+ "command": "omnidraw"
63
+ }
64
+ }
65
+ }
66
+ ```
67
+
68
+ 3. Reload your MCP client — done! Ask your AI to draw something.
69
+
70
+ ## What it does
71
+
72
+ OmniDraw is an MCP (Model Context Protocol) server that gives AI assistants a full drawing toolkit:
73
+
74
+ - **Shapes & text** — rectangles, ellipses, lines, arrows, polygons, text boxes
75
+ - **Brush engine** — strokes, fills, erasing, scatter, smudge, wet brush mixing
76
+ - **Effects** — gradients, shadows, blur, clipping masks, ink diffusion, paper grain
77
+ - **Layers** — create, select, set opacity, toggle visibility
78
+ - **Projects** — save/load `.omnidraw` project files with full undo history
79
+ - **Assets** — import images once, reuse across compositions (Pro)
80
+ - **Export** — PNG, JPEG, WebP with optional supersampling (Pro)
81
+
82
+ ## Free vs Pro
83
+
84
+ The free tier covers the core drawing workflow. [Upgrade to Pro](https://omnidraw.vercel.app/pricing) for:
85
+
86
+ - Unlimited compositions (free: 2)
87
+ - Reusable image assets
88
+ - Project save/open
89
+ - High-resolution supersampling export
90
+
91
+ ## Links
92
+
93
+ - **Website:** [omnidraw.vercel.app](https://omnidraw.vercel.app)
94
+ - **Pricing:** [omnidraw.vercel.app/pricing](https://omnidraw.vercel.app/pricing)
95
+ - **Install guide:** [omnidraw.vercel.app/docs/install](https://omnidraw.vercel.app/docs/install)
96
+ - **Examples:** [omnidraw.vercel.app/examples](https://omnidraw.vercel.app/examples)
97
+ - **Source:** [github.com/timtiger/omnidraw](https://github.com/timtiger/omnidraw)
98
+
99
+ ## How it works
100
+
101
+ This Python package is a thin launcher that bundles a prebuilt Rust binary. When you run `omnidraw`, it starts the Rust MCP server which communicates with your AI client over stdio.
102
+
103
+ ### Diagnostics
104
+
105
+ ```bash
106
+ omnidraw --print-binary-path
107
+ omnidraw --launcher-diagnostics
108
+ ```
109
+
110
+ ### Environment variables
111
+
112
+ | Variable | Description |
113
+ |----------|-------------|
114
+ | `OMNIDRAW_BIN` | Override the bundled binary path at runtime |
115
+ | `OMNIDRAW_LICENSE_KEY` | Pro license key (from [omnidraw.vercel.app/pricing](https://omnidraw.vercel.app/pricing)) |
116
+
117
+ ## License
118
+
119
+ MIT
@@ -0,0 +1,87 @@
1
+ # OmniDraw
2
+
3
+ **The drawing engine built for AI.** OmniDraw lets your AI assistant create, edit, and export images — right from the chat.
4
+
5
+ [![PyPI](https://img.shields.io/pypi/v/omnidraw)](https://pypi.org/project/omnidraw/)
6
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/timtiger/omnidraw/blob/main/LICENSE)
7
+
8
+ ## Install
9
+
10
+ ```bash
11
+ pip install omnidraw
12
+ ```
13
+
14
+ **Supported platforms:** Windows (x64), macOS (Apple Silicon), Linux (x64).
15
+
16
+ ## Quick start
17
+
18
+ 1. Install OmniDraw:
19
+
20
+ ```bash
21
+ pip install omnidraw
22
+ ```
23
+
24
+ 2. Add to your MCP client config (Cursor, Claude Desktop, etc.):
25
+
26
+ ```json
27
+ {
28
+ "mcpServers": {
29
+ "omnidraw": {
30
+ "command": "omnidraw"
31
+ }
32
+ }
33
+ }
34
+ ```
35
+
36
+ 3. Reload your MCP client — done! Ask your AI to draw something.
37
+
38
+ ## What it does
39
+
40
+ OmniDraw is an MCP (Model Context Protocol) server that gives AI assistants a full drawing toolkit:
41
+
42
+ - **Shapes & text** — rectangles, ellipses, lines, arrows, polygons, text boxes
43
+ - **Brush engine** — strokes, fills, erasing, scatter, smudge, wet brush mixing
44
+ - **Effects** — gradients, shadows, blur, clipping masks, ink diffusion, paper grain
45
+ - **Layers** — create, select, set opacity, toggle visibility
46
+ - **Projects** — save/load `.omnidraw` project files with full undo history
47
+ - **Assets** — import images once, reuse across compositions (Pro)
48
+ - **Export** — PNG, JPEG, WebP with optional supersampling (Pro)
49
+
50
+ ## Free vs Pro
51
+
52
+ The free tier covers the core drawing workflow. [Upgrade to Pro](https://omnidraw.vercel.app/pricing) for:
53
+
54
+ - Unlimited compositions (free: 2)
55
+ - Reusable image assets
56
+ - Project save/open
57
+ - High-resolution supersampling export
58
+
59
+ ## Links
60
+
61
+ - **Website:** [omnidraw.vercel.app](https://omnidraw.vercel.app)
62
+ - **Pricing:** [omnidraw.vercel.app/pricing](https://omnidraw.vercel.app/pricing)
63
+ - **Install guide:** [omnidraw.vercel.app/docs/install](https://omnidraw.vercel.app/docs/install)
64
+ - **Examples:** [omnidraw.vercel.app/examples](https://omnidraw.vercel.app/examples)
65
+ - **Source:** [github.com/timtiger/omnidraw](https://github.com/timtiger/omnidraw)
66
+
67
+ ## How it works
68
+
69
+ This Python package is a thin launcher that bundles a prebuilt Rust binary. When you run `omnidraw`, it starts the Rust MCP server which communicates with your AI client over stdio.
70
+
71
+ ### Diagnostics
72
+
73
+ ```bash
74
+ omnidraw --print-binary-path
75
+ omnidraw --launcher-diagnostics
76
+ ```
77
+
78
+ ### Environment variables
79
+
80
+ | Variable | Description |
81
+ |----------|-------------|
82
+ | `OMNIDRAW_BIN` | Override the bundled binary path at runtime |
83
+ | `OMNIDRAW_LICENSE_KEY` | Pro license key (from [omnidraw.vercel.app/pricing](https://omnidraw.vercel.app/pricing)) |
84
+
85
+ ## License
86
+
87
+ MIT
@@ -0,0 +1,53 @@
1
+ [build-system]
2
+ requires = ["setuptools>=69", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "omnidraw"
7
+ version = "0.1.0"
8
+ description = "MCP-native AI drawing engine — lets your AI assistant create, edit, and export images"
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = { text = "MIT" }
12
+ authors = [
13
+ { name = "Priceless Youth" }
14
+ ]
15
+ keywords = ["mcp", "ai", "drawing", "graphics", "omnidraw", "image-generation"]
16
+ classifiers = [
17
+ "Development Status :: 3 - Alpha",
18
+ "Environment :: Console",
19
+ "Intended Audience :: Developers",
20
+ "License :: OSI Approved :: MIT License",
21
+ "Operating System :: Microsoft :: Windows",
22
+ "Operating System :: MacOS",
23
+ "Operating System :: POSIX :: Linux",
24
+ "Programming Language :: Python :: 3",
25
+ "Programming Language :: Python :: 3 :: Only",
26
+ "Programming Language :: Python :: 3.10",
27
+ "Programming Language :: Python :: 3.11",
28
+ "Programming Language :: Python :: 3.12",
29
+ "Programming Language :: Python :: 3.13",
30
+ "Topic :: Multimedia :: Graphics",
31
+ "Topic :: Artistic Software",
32
+ ]
33
+
34
+ [project.urls]
35
+ Homepage = "https://omnidraw.vercel.app"
36
+ Repository = "https://github.com/timtiger/omnidraw"
37
+ Issues = "https://github.com/timtiger/omnidraw/issues"
38
+ Documentation = "https://omnidraw.vercel.app/docs/install"
39
+
40
+ [project.scripts]
41
+ omnidraw = "omnidraw_launcher.cli:main"
42
+
43
+ [project.optional-dependencies]
44
+ dev = ["build>=1.2", "twine>=5"]
45
+
46
+ [tool.setuptools]
47
+ include-package-data = true
48
+
49
+ [tool.setuptools.package-dir]
50
+ "" = "src"
51
+
52
+ [tool.setuptools.packages.find]
53
+ where = ["src"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,99 @@
1
+ from __future__ import annotations
2
+
3
+ import os
4
+ import platform
5
+ import shutil
6
+ import struct
7
+ import sys
8
+ from pathlib import Path
9
+
10
+ from setuptools import setup
11
+ from setuptools.command.build_py import build_py as _build_py
12
+
13
+ try:
14
+ from wheel.bdist_wheel import bdist_wheel as _bdist_wheel
15
+ except ImportError:
16
+ _bdist_wheel = None
17
+
18
+
19
+ PACKAGE_ROOT = Path(__file__).resolve().parent
20
+ REPO_ROOT = PACKAGE_ROOT.parent.parent
21
+ PACKAGE_NAME = "omnidraw_launcher"
22
+ ENV_BUILD_BINARY = "OMNIDRAW_PACKAGE_BINARY"
23
+
24
+
25
+ def _default_binary_candidates() -> list[Path]:
26
+ names = ["omnidraw.exe", "omnidraw"]
27
+ parents = [
28
+ REPO_ROOT / "zzbuild-live" / "release",
29
+ REPO_ROOT / "zzbuild-live2" / "release",
30
+ REPO_ROOT / "zzbuild" / "release",
31
+ REPO_ROOT / "target" / "release",
32
+ ]
33
+ return [parent / name for parent in parents for name in names]
34
+
35
+
36
+ def _resolve_binary_path() -> Path:
37
+ override = os.environ.get(ENV_BUILD_BINARY)
38
+ candidates = [Path(override)] if override else []
39
+ candidates.extend(_default_binary_candidates())
40
+ for candidate in candidates:
41
+ if candidate.exists() and candidate.is_file():
42
+ return candidate.resolve()
43
+ checked = "\n".join(f"- {path}" for path in candidates) or "- <none>"
44
+ raise RuntimeError(
45
+ "Cannot package OmniDraw because no Rust binary was found.\n"
46
+ f"Set {ENV_BUILD_BINARY} to a built omnidraw binary, or build one into one of:\n{checked}"
47
+ )
48
+
49
+
50
+ def _plat_name() -> str:
51
+ """Return a PEP 425 platform tag matching the bundled Rust binary."""
52
+ override = os.environ.get("OMNIDRAW_PLAT_NAME")
53
+ if override:
54
+ return override
55
+ if sys.platform == "win32":
56
+ bits = struct.calcsize("P") * 8
57
+ return "win_amd64" if bits == 64 else "win32"
58
+ if sys.platform == "darwin":
59
+ machine = platform.machine()
60
+ if machine == "arm64":
61
+ return "macosx_11_0_arm64"
62
+ return "macosx_10_9_x86_64"
63
+ machine = platform.machine()
64
+ if machine == "x86_64":
65
+ return "manylinux_2_17_x86_64"
66
+ if machine == "aarch64":
67
+ return "manylinux_2_17_aarch64"
68
+ return f"linux_{machine}"
69
+
70
+
71
+ class build_py(_build_py):
72
+ def run(self) -> None:
73
+ super().run()
74
+ binary_path = _resolve_binary_path()
75
+ binary_name = "omnidraw.exe" if binary_path.suffix.lower() == ".exe" else "omnidraw"
76
+ dest_dir = Path(self.build_lib) / PACKAGE_NAME / "bin"
77
+ dest_dir.mkdir(parents=True, exist_ok=True)
78
+ shutil.copy2(binary_path, dest_dir / binary_name)
79
+
80
+
81
+ cmdclass: dict = {"build_py": build_py}
82
+
83
+ if _bdist_wheel is not None:
84
+ class bdist_wheel(_bdist_wheel): # type: ignore[misc]
85
+ def finalize_options(self) -> None:
86
+ super().finalize_options()
87
+ self.root_is_pure = False
88
+ self.plat_name_supplied = True
89
+ self.plat_name = _plat_name()
90
+
91
+ def get_tag(self) -> tuple[str, str, str]:
92
+ return "py3", "none", _plat_name().replace("-", "_").replace(".", "_")
93
+
94
+ cmdclass["bdist_wheel"] = bdist_wheel
95
+
96
+ setup(
97
+ cmdclass=cmdclass,
98
+ package_data={PACKAGE_NAME: ["bin/*"]},
99
+ )
@@ -0,0 +1,119 @@
1
+ Metadata-Version: 2.4
2
+ Name: omnidraw
3
+ Version: 0.1.0
4
+ Summary: MCP-native AI drawing engine — lets your AI assistant create, edit, and export images
5
+ Author: Priceless Youth
6
+ License: MIT
7
+ Project-URL: Homepage, https://omnidraw.vercel.app
8
+ Project-URL: Repository, https://github.com/timtiger/omnidraw
9
+ Project-URL: Issues, https://github.com/timtiger/omnidraw/issues
10
+ Project-URL: Documentation, https://omnidraw.vercel.app/docs/install
11
+ Keywords: mcp,ai,drawing,graphics,omnidraw,image-generation
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: Microsoft :: Windows
17
+ Classifier: Operating System :: MacOS
18
+ Classifier: Operating System :: POSIX :: Linux
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3 :: Only
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Topic :: Multimedia :: Graphics
26
+ Classifier: Topic :: Artistic Software
27
+ Requires-Python: >=3.10
28
+ Description-Content-Type: text/markdown
29
+ Provides-Extra: dev
30
+ Requires-Dist: build>=1.2; extra == "dev"
31
+ Requires-Dist: twine>=5; extra == "dev"
32
+
33
+ # OmniDraw
34
+
35
+ **The drawing engine built for AI.** OmniDraw lets your AI assistant create, edit, and export images — right from the chat.
36
+
37
+ [![PyPI](https://img.shields.io/pypi/v/omnidraw)](https://pypi.org/project/omnidraw/)
38
+ [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/timtiger/omnidraw/blob/main/LICENSE)
39
+
40
+ ## Install
41
+
42
+ ```bash
43
+ pip install omnidraw
44
+ ```
45
+
46
+ **Supported platforms:** Windows (x64), macOS (Apple Silicon), Linux (x64).
47
+
48
+ ## Quick start
49
+
50
+ 1. Install OmniDraw:
51
+
52
+ ```bash
53
+ pip install omnidraw
54
+ ```
55
+
56
+ 2. Add to your MCP client config (Cursor, Claude Desktop, etc.):
57
+
58
+ ```json
59
+ {
60
+ "mcpServers": {
61
+ "omnidraw": {
62
+ "command": "omnidraw"
63
+ }
64
+ }
65
+ }
66
+ ```
67
+
68
+ 3. Reload your MCP client — done! Ask your AI to draw something.
69
+
70
+ ## What it does
71
+
72
+ OmniDraw is an MCP (Model Context Protocol) server that gives AI assistants a full drawing toolkit:
73
+
74
+ - **Shapes & text** — rectangles, ellipses, lines, arrows, polygons, text boxes
75
+ - **Brush engine** — strokes, fills, erasing, scatter, smudge, wet brush mixing
76
+ - **Effects** — gradients, shadows, blur, clipping masks, ink diffusion, paper grain
77
+ - **Layers** — create, select, set opacity, toggle visibility
78
+ - **Projects** — save/load `.omnidraw` project files with full undo history
79
+ - **Assets** — import images once, reuse across compositions (Pro)
80
+ - **Export** — PNG, JPEG, WebP with optional supersampling (Pro)
81
+
82
+ ## Free vs Pro
83
+
84
+ The free tier covers the core drawing workflow. [Upgrade to Pro](https://omnidraw.vercel.app/pricing) for:
85
+
86
+ - Unlimited compositions (free: 2)
87
+ - Reusable image assets
88
+ - Project save/open
89
+ - High-resolution supersampling export
90
+
91
+ ## Links
92
+
93
+ - **Website:** [omnidraw.vercel.app](https://omnidraw.vercel.app)
94
+ - **Pricing:** [omnidraw.vercel.app/pricing](https://omnidraw.vercel.app/pricing)
95
+ - **Install guide:** [omnidraw.vercel.app/docs/install](https://omnidraw.vercel.app/docs/install)
96
+ - **Examples:** [omnidraw.vercel.app/examples](https://omnidraw.vercel.app/examples)
97
+ - **Source:** [github.com/timtiger/omnidraw](https://github.com/timtiger/omnidraw)
98
+
99
+ ## How it works
100
+
101
+ This Python package is a thin launcher that bundles a prebuilt Rust binary. When you run `omnidraw`, it starts the Rust MCP server which communicates with your AI client over stdio.
102
+
103
+ ### Diagnostics
104
+
105
+ ```bash
106
+ omnidraw --print-binary-path
107
+ omnidraw --launcher-diagnostics
108
+ ```
109
+
110
+ ### Environment variables
111
+
112
+ | Variable | Description |
113
+ |----------|-------------|
114
+ | `OMNIDRAW_BIN` | Override the bundled binary path at runtime |
115
+ | `OMNIDRAW_LICENSE_KEY` | Pro license key (from [omnidraw.vercel.app/pricing](https://omnidraw.vercel.app/pricing)) |
116
+
117
+ ## License
118
+
119
+ MIT
@@ -0,0 +1,13 @@
1
+ MANIFEST.in
2
+ README.md
3
+ pyproject.toml
4
+ setup.py
5
+ src/omnidraw.egg-info/PKG-INFO
6
+ src/omnidraw.egg-info/SOURCES.txt
7
+ src/omnidraw.egg-info/dependency_links.txt
8
+ src/omnidraw.egg-info/entry_points.txt
9
+ src/omnidraw.egg-info/requires.txt
10
+ src/omnidraw.egg-info/top_level.txt
11
+ src/omnidraw_launcher/__init__.py
12
+ src/omnidraw_launcher/__main__.py
13
+ src/omnidraw_launcher/cli.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ omnidraw = omnidraw_launcher.cli:main
@@ -0,0 +1,4 @@
1
+
2
+ [dev]
3
+ build>=1.2
4
+ twine>=5
@@ -0,0 +1 @@
1
+ omnidraw_launcher
@@ -0,0 +1,3 @@
1
+ __all__ = ["__version__"]
2
+
3
+ __version__ = "0.1.0"
@@ -0,0 +1,5 @@
1
+ from .cli import main
2
+
3
+
4
+ if __name__ == "__main__":
5
+ raise SystemExit(main())
@@ -0,0 +1,62 @@
1
+ from __future__ import annotations
2
+
3
+ import os
4
+ import json
5
+ import subprocess
6
+ import sys
7
+ from pathlib import Path
8
+
9
+ from . import __version__
10
+
11
+
12
+ ENV_RUNTIME_BINARY = "OMNIDRAW_BIN"
13
+
14
+
15
+ def _packaged_binary_path() -> Path:
16
+ binary_name = "omnidraw.exe" if os.name == "nt" else "omnidraw"
17
+ return Path(__file__).resolve().parent / "bin" / binary_name
18
+
19
+
20
+ def resolve_binary() -> Path:
21
+ override = os.environ.get(ENV_RUNTIME_BINARY)
22
+ candidates = [Path(override)] if override else []
23
+ candidates.append(_packaged_binary_path())
24
+ for candidate in candidates:
25
+ if candidate.exists() and candidate.is_file():
26
+ return candidate
27
+ checked = "\n".join(f"- {path}" for path in candidates)
28
+ raise SystemExit(
29
+ "OmniDraw binary not found.\n"
30
+ f"Set {ENV_RUNTIME_BINARY} to a valid omnidraw binary, or reinstall the package.\n"
31
+ f"Checked:\n{checked}"
32
+ )
33
+
34
+
35
+ def _diagnostics() -> dict[str, object]:
36
+ override = os.environ.get(ENV_RUNTIME_BINARY)
37
+ binary = resolve_binary()
38
+ return {
39
+ "launcher_version": __version__,
40
+ "binary_path": str(binary),
41
+ "binary_exists": binary.exists(),
42
+ "runtime_override": override,
43
+ "platform": sys.platform,
44
+ }
45
+
46
+
47
+ def main() -> int:
48
+ if len(sys.argv) >= 2 and sys.argv[1] == "--print-binary-path":
49
+ print(resolve_binary())
50
+ return 0
51
+
52
+ if len(sys.argv) >= 2 and sys.argv[1] == "--launcher-diagnostics":
53
+ print(json.dumps(_diagnostics(), indent=2))
54
+ return 0
55
+
56
+ binary = resolve_binary()
57
+ completed = subprocess.run([str(binary), *sys.argv[1:]], check=False)
58
+ return int(completed.returncode)
59
+
60
+
61
+ if __name__ == "__main__":
62
+ raise SystemExit(main())