zerochat 8.0.0__tar.gz → 8.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.
- {zerochat-8.0.0/zerochat.egg-info → zerochat-8.1.0}/PKG-INFO +1 -1
- {zerochat-8.0.0 → zerochat-8.1.0}/pyproject.toml +1 -1
- {zerochat-8.0.0 → zerochat-8.1.0/zerochat.egg-info}/PKG-INFO +1 -1
- {zerochat-8.0.0 → zerochat-8.1.0}/zerochat.py +37 -10
- {zerochat-8.0.0 → zerochat-8.1.0}/LICENSE +0 -0
- {zerochat-8.0.0 → zerochat-8.1.0}/README.md +0 -0
- {zerochat-8.0.0 → zerochat-8.1.0}/setup.cfg +0 -0
- {zerochat-8.0.0 → zerochat-8.1.0}/zerochat.egg-info/SOURCES.txt +0 -0
- {zerochat-8.0.0 → zerochat-8.1.0}/zerochat.egg-info/dependency_links.txt +0 -0
- {zerochat-8.0.0 → zerochat-8.1.0}/zerochat.egg-info/entry_points.txt +0 -0
- {zerochat-8.0.0 → zerochat-8.1.0}/zerochat.egg-info/top_level.txt +0 -0
|
@@ -42,7 +42,7 @@ import webbrowser
|
|
|
42
42
|
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
|
|
43
43
|
from pathlib import Path
|
|
44
44
|
|
|
45
|
-
SOURCE_BACKEND_VERSION = "8.
|
|
45
|
+
SOURCE_BACKEND_VERSION = "8.1.0"
|
|
46
46
|
|
|
47
47
|
def _read_source_version(filename: str) -> str | None:
|
|
48
48
|
"""Lee la versión de un archivo del repositorio cuando se ejecuta desde fuentes."""
|
|
@@ -1756,7 +1756,8 @@ for raw in sys.stdin:
|
|
|
1756
1756
|
"product": {
|
|
1757
1757
|
"package": "@playwright/mcp",
|
|
1758
1758
|
"version": "0.0.81",
|
|
1759
|
-
"browser": "chromium"
|
|
1759
|
+
"browser": "chromium",
|
|
1760
|
+
"nodeMajor": 18
|
|
1760
1761
|
}
|
|
1761
1762
|
}, indent=2), encoding="utf-8")
|
|
1762
1763
|
|
|
@@ -1795,7 +1796,8 @@ for raw in sys.stdin:
|
|
|
1795
1796
|
"type": "npm",
|
|
1796
1797
|
"product": {
|
|
1797
1798
|
"package": "@modelcontextprotocol/server-memory",
|
|
1798
|
-
"version": "2026.8.31"
|
|
1799
|
+
"version": "2026.8.31",
|
|
1800
|
+
"nodeMajor": 18
|
|
1799
1801
|
}
|
|
1800
1802
|
}, indent=2), encoding="utf-8")
|
|
1801
1803
|
|
|
@@ -1832,7 +1834,8 @@ for raw in sys.stdin:
|
|
|
1832
1834
|
"type": "npm",
|
|
1833
1835
|
"product": {
|
|
1834
1836
|
"package": "@axivo/mcp-lsp",
|
|
1835
|
-
"version": "1.0.5"
|
|
1837
|
+
"version": "1.0.5",
|
|
1838
|
+
"nodeMajor": 24
|
|
1836
1839
|
}
|
|
1837
1840
|
}, indent=2), encoding="utf-8")
|
|
1838
1841
|
|
|
@@ -1917,9 +1920,25 @@ for raw in sys.stdin:
|
|
|
1917
1920
|
if not package or not version:
|
|
1918
1921
|
raise RuntimeError("El instalador npm debe definir package y version")
|
|
1919
1922
|
if not shutil.which("node") or not shutil.which("npm"):
|
|
1920
|
-
raise RuntimeError("Node.js
|
|
1923
|
+
raise RuntimeError("Node.js y npm son necesarios para instalar este servicio MCP")
|
|
1924
|
+
|
|
1925
|
+
required_node_major = int(product.get(
|
|
1926
|
+
"nodeMajor",
|
|
1927
|
+
24 if package == "@axivo/mcp-lsp" else 18
|
|
1928
|
+
))
|
|
1929
|
+
version_result = subprocess.run(
|
|
1930
|
+
[node, "--version"], capture_output=True, text=True, timeout=5
|
|
1931
|
+
)
|
|
1932
|
+
version_match = re.match(r"v(\\d+)", version_result.stdout.strip())
|
|
1933
|
+
if version_result.returncode != 0 or not version_match:
|
|
1934
|
+
raise RuntimeError("No se pudo comprobar la versión de Node.js necesaria para este servicio MCP")
|
|
1935
|
+
if int(version_match.group(1)) < required_node_major:
|
|
1936
|
+
raise RuntimeError(
|
|
1937
|
+
f"{server_id} requiere Node.js {required_node_major}+; se detectó {version_result.stdout.strip()}"
|
|
1938
|
+
)
|
|
1921
1939
|
|
|
1922
|
-
|
|
1940
|
+
package_dir = service_dir / "node_modules" / Path(*package.split("/"))
|
|
1941
|
+
needs_install = not marker.exists() or not package_dir.is_dir()
|
|
1923
1942
|
if not needs_install:
|
|
1924
1943
|
try:
|
|
1925
1944
|
installation = json.loads(marker.read_text(encoding="utf-8"))
|
|
@@ -1939,9 +1958,18 @@ for raw in sys.stdin:
|
|
|
1939
1958
|
browser = product.get("browser")
|
|
1940
1959
|
if browser:
|
|
1941
1960
|
playwright_cli = service_dir / "node_modules" / "playwright" / "cli.js"
|
|
1942
|
-
if playwright_cli.is_file():
|
|
1943
|
-
|
|
1944
|
-
|
|
1961
|
+
if not playwright_cli.is_file():
|
|
1962
|
+
raise RuntimeError("No se encontró Playwright después de instalar el servicio MCP")
|
|
1963
|
+
browser_result = subprocess.run(
|
|
1964
|
+
[node, str(playwright_cli), "install", browser], cwd=service_dir,
|
|
1965
|
+
capture_output=True, text=True, timeout=600
|
|
1966
|
+
)
|
|
1967
|
+
if browser_result.returncode != 0:
|
|
1968
|
+
raise RuntimeError(
|
|
1969
|
+
f"Fallo instalando el navegador {browser} de Playwright: "
|
|
1970
|
+
f"{browser_result.stderr or browser_result.stdout}"
|
|
1971
|
+
)
|
|
1972
|
+
installation["browser"] = browser
|
|
1945
1973
|
marker.write_text(json.dumps(installation, indent=2), encoding="utf-8")
|
|
1946
1974
|
|
|
1947
1975
|
return {
|
|
@@ -2064,7 +2092,6 @@ for raw in sys.stdin:
|
|
|
2064
2092
|
|
|
2065
2093
|
|
|
2066
2094
|
GLOBAL_MCP_MANAGER = McpServiceManager()
|
|
2067
|
-
|
|
2068
2095
|
DEFAULT_HEARTBEAT_TIMEOUT = float(os.environ.get("ZEROCHAT_HEARTBEAT_TIMEOUT", "60.0"))
|
|
2069
2096
|
DEFAULT_HEARTBEAT_GRACE = float(os.environ.get("ZEROCHAT_HEARTBEAT_GRACE", "45.0"))
|
|
2070
2097
|
DEFAULT_HEARTBEAT_POLL = float(os.environ.get("ZEROCHAT_HEARTBEAT_POLL", "5.0"))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|