Split the worker into a distribution of its own

A cluster or GPU host installs `pip install fluksio-worker` and gets the
agent and the runner, not psycopg, numpy and the MCP SDK. The engine
depends on it as a workspace member, so the file it launches node code
with is the same file a remote worker runs — which is what keeps a node
unable to tell the difference. Copying the two files by hand still works.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-21 21:54:10 +02:00
co-authored by Claude Opus 5
parent 60d7ec81c0
commit 2c369ac75f
17 changed files with 122 additions and 42 deletions
Generated
+14
View File
@@ -9,6 +9,7 @@ resolution-markers = [
[manifest]
members = [
"fluksio",
"fluksio-worker",
]
[[package]]
@@ -765,6 +766,7 @@ dependencies = [
{ name = "email-validator" },
{ name = "emails" },
{ name = "fastapi", extra = ["standard"] },
{ name = "fluksio-worker" },
{ name = "httpx" },
{ name = "influxdb-client", extra = ["async"] },
{ name = "jinja2" },
@@ -801,6 +803,7 @@ requires-dist = [
{ name = "email-validator", specifier = ">=2.1.0.post1,<3.0.0.0" },
{ name = "emails", specifier = ">=0.6,<1.0" },
{ name = "fastapi", extras = ["standard"], specifier = ">=0.114.2,<1.0.0" },
{ name = "fluksio-worker", editable = "worker" },
{ name = "httpx", specifier = ">=0.25.1,<1.0.0" },
{ name = "influxdb-client", extras = ["async"], specifier = ">=1.40.0" },
{ name = "jinja2", specifier = ">=3.1.4,<4.0.0" },
@@ -827,6 +830,17 @@ dev = [
{ name = "ruff", specifier = ">=0.2.2,<1.0.0" },
]
[[package]]
name = "fluksio-worker"
version = "0.1.0"
source = { editable = "worker" }
dependencies = [
{ name = "websockets" },
]
[package.metadata]
requires-dist = [{ name = "websockets", specifier = ">=12" }]
[[package]]
name = "frozenlist"
version = "1.8.0"