vefier-cli 1.0.0__py3-none-any.whl

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.
vefier/__init__.py ADDED
@@ -0,0 +1 @@
1
+ # Этот файл делает папку vefier Python-модулем
vefier/wrapper.py ADDED
@@ -0,0 +1,72 @@
1
+ import os
2
+ import sys
3
+ import platform
4
+ import subprocess
5
+ import urllib.request
6
+ import zipfile
7
+ import tarfile
8
+ import shutil
9
+
10
+ VERSION = "1.0.0"
11
+ REPO = "vefier/vefier-cli"
12
+
13
+ def get_release_url():
14
+ sys_name = platform.system().lower()
15
+ arch = platform.machine().lower()
16
+
17
+ if sys_name == "darwin": os_name = "darwin"
18
+ elif sys_name == "windows": os_name = "windows"
19
+ else: os_name = "linux"
20
+
21
+ if arch in ["x86_64", "amd64"]: arch_name = "x86_64"
22
+ elif arch in ["arm64", "aarch64"]: arch_name = "arm64"
23
+ else: arch_name = arch
24
+
25
+ ext = "zip" if os_name == "windows" else "tar.gz"
26
+ # Для теста URL будет ложным, пока нет реального репозитория
27
+ return f"https://github.com/{REPO}/releases/download/v{VERSION}/vefier_{os_name}_{arch_name}.{ext}", ext
28
+
29
+ def download_and_extract(url, ext, bin_dir, exe_name):
30
+ print(f"📥 Загрузка VeFier v{VERSION} из GitHub Releases...")
31
+ archive_path = os.path.join(bin_dir, f"download.{ext}")
32
+
33
+ try:
34
+ urllib.request.urlretrieve(url, archive_path)
35
+ except Exception as e:
36
+ print(f"❌ Ошибка загрузки ({url}): {e}")
37
+ print("Убедитесь, что релиз существует.")
38
+ sys.exit(1)
39
+
40
+ print("📦 Распаковка...")
41
+ if ext == "zip":
42
+ with zipfile.ZipFile(archive_path, 'r') as zf:
43
+ zf.extractall(bin_dir)
44
+ else:
45
+ with tarfile.open(archive_path, 'r:gz') as tf:
46
+ tf.extractall(bin_dir)
47
+
48
+ os.remove(archive_path)
49
+ if platform.system() != "Windows":
50
+ os.chmod(os.path.join(bin_dir, exe_name), 0o755)
51
+
52
+ def main():
53
+ # Сохраняем бинарник в домашнюю папку (кэш)
54
+ bin_dir = os.path.expanduser("~/.vefier/bin")
55
+ os.makedirs(bin_dir, exist_ok=True)
56
+
57
+ exe_name = "vefier.exe" if platform.system() == "Windows" else "vefier"
58
+ bin_path = os.path.join(bin_dir, exe_name)
59
+
60
+ # Если бинарника нет, скачиваем его
61
+ if not os.path.exists(bin_path):
62
+ url, ext = get_release_url()
63
+ download_and_extract(url, ext, bin_dir, exe_name)
64
+
65
+ # Передаем управление Go-приложению
66
+ try:
67
+ sys.exit(subprocess.call([bin_path] + sys.argv[1:]))
68
+ except KeyboardInterrupt:
69
+ sys.exit(0)
70
+
71
+ if __name__ == "__main__":
72
+ main()
@@ -0,0 +1,10 @@
1
+ Metadata-Version: 2.4
2
+ Name: vefier-cli
3
+ Version: 1.0.0
4
+ Summary: Универсальный AI-агент для терминала (TUI)
5
+ Author: VeFier Studio
6
+ Dynamic: author
7
+ Dynamic: description
8
+ Dynamic: summary
9
+
10
+ Обертка для загрузки скомпилированного Go-бинарника VeFier CLI.
@@ -0,0 +1,7 @@
1
+ vefier/__init__.py,sha256=J3Ps4e-QfXLlwn9ylEXS38hwbcO0vBWtl0AVd8CB544,72
2
+ vefier/wrapper.py,sha256=rvFeuaoVPcoFKE_K6MO_CS1Qmpg3rosEhu8yIngjvO4,2437
3
+ vefier_cli-1.0.0.dist-info/METADATA,sha256=thAMof7-aAst1TRdtW5Rc7OQKr-EAYdtarngaklAfTg,331
4
+ vefier_cli-1.0.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
5
+ vefier_cli-1.0.0.dist-info/entry_points.txt,sha256=Z4KkNWHldXhzDnPVvO4H1kXHtdRMks7HpLufXL7_AEs,47
6
+ vefier_cli-1.0.0.dist-info/top_level.txt,sha256=sLw73gdQo0adTyHgT8sYZCE18kWG5CaWRDSrk9d7HNQ,7
7
+ vefier_cli-1.0.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ vefier = vefier.wrapper:main
@@ -0,0 +1 @@
1
+ vefier