zebflow 0.6.1__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,67 @@
1
+ /target
2
+ **/target/
3
+
4
+ # package managers
5
+ node_modules/
6
+ dist/
7
+
8
+ # macOS
9
+ .DS_Store
10
+
11
+ # editor / local agent state
12
+ .claude/
13
+ .gemini/
14
+ .playwright-mcp/
15
+ .playwright*
16
+
17
+ # env (API keys)
18
+ .env
19
+ .env.local
20
+
21
+ # local runtime data
22
+ .*platform-data/
23
+ .zebflow-platform-data*
24
+ *.cookies
25
+
26
+ # logs / temp
27
+ *.log
28
+ *.tmp
29
+ tmp_rendered.html
30
+
31
+ # local binaries
32
+ test_runtime
33
+
34
+ # local website scratch
35
+ integrations/website/index.html
36
+
37
+ # local codex memory
38
+ .codex-local/
39
+ .disposed
40
+ output
41
+ # local improvement notes
42
+ test-and-improve-object.md
43
+
44
+ # Zebflow local runtime/check data
45
+ .zf-market-*/
46
+ # or, if every .zf* folder is runtime-only in this repo:
47
+ # .zf*/
48
+
49
+ # Python local/build artifacts
50
+ __pycache__/
51
+ **/__pycache__/
52
+ *.py[cod]
53
+ .pytest_cache/
54
+ .mypy_cache/
55
+ .ruff_cache/
56
+ .venv/
57
+ *.egg-info/
58
+
59
+ # Package build outputs
60
+ *.tgz
61
+ *.whl
62
+
63
+ desktop
64
+ uxui
65
+ prototypes
66
+ qa
67
+ tools
zebflow-0.6.1/PKG-INFO ADDED
@@ -0,0 +1,56 @@
1
+ Metadata-Version: 2.4
2
+ Name: zebflow
3
+ Version: 0.6.1
4
+ Summary: Reactive web automation platform — pipelines, templates, and real-time collaboration in a single binary.
5
+ Project-URL: Homepage, https://github.com/zebflow/zebflow
6
+ Project-URL: Repository, https://github.com/zebflow/zebflow
7
+ Project-URL: Issues, https://github.com/zebflow/zebflow/issues
8
+ Author-email: Zebflow <hello@zebflow.com>
9
+ License-Expression: MIT
10
+ Keywords: automation,mcp,pipeline,reactive,server,wasm,web,zebflow
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: MacOS
16
+ Classifier: Operating System :: Microsoft :: Windows
17
+ Classifier: Operating System :: POSIX :: Linux
18
+ Classifier: Programming Language :: Rust
19
+ Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
20
+ Classifier: Topic :: Software Development :: Build Tools
21
+ Requires-Python: >=3.8
22
+ Description-Content-Type: text/markdown
23
+
24
+ # zebflow
25
+
26
+ Reactive web automation platform — pipelines, templates, and real-time collaboration in a single binary.
27
+
28
+ ## Install
29
+
30
+ ```bash
31
+ pip install zebflow
32
+ ```
33
+
34
+ ## Usage
35
+
36
+ ```bash
37
+ zebflow # start server on port 10610
38
+ zebflow --help # show options
39
+ ```
40
+
41
+ ## What is Zebflow?
42
+
43
+ Zebflow is a full-stack reactive web platform that combines:
44
+
45
+ - **Pipeline engine** — graph-based workflow orchestration with 40+ built-in nodes
46
+ - **Reactive Web Engine** — TSX templates with server-side rendering and client hydration
47
+ - **Real-time** — WebSocket rooms with state sync
48
+ - **MCP** — Model Context Protocol for AI agent integration
49
+ - **Single binary** — everything embedded, zero runtime dependencies
50
+
51
+ ## Links
52
+
53
+ - [Official Site](https://zebflow.com)
54
+ - [GitHub](https://github.com/zebflow/zebflow)
55
+ - [Documentation](https://github.com/zebflow/zebflow/tree/main/docs)
56
+ - [Docker Hub](https://hub.docker.com/r/zebflow/zebflow)
@@ -0,0 +1,33 @@
1
+ # zebflow
2
+
3
+ Reactive web automation platform — pipelines, templates, and real-time collaboration in a single binary.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ pip install zebflow
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ zebflow # start server on port 10610
15
+ zebflow --help # show options
16
+ ```
17
+
18
+ ## What is Zebflow?
19
+
20
+ Zebflow is a full-stack reactive web platform that combines:
21
+
22
+ - **Pipeline engine** — graph-based workflow orchestration with 40+ built-in nodes
23
+ - **Reactive Web Engine** — TSX templates with server-side rendering and client hydration
24
+ - **Real-time** — WebSocket rooms with state sync
25
+ - **MCP** — Model Context Protocol for AI agent integration
26
+ - **Single binary** — everything embedded, zero runtime dependencies
27
+
28
+ ## Links
29
+
30
+ - [Official Site](https://zebflow.com)
31
+ - [GitHub](https://github.com/zebflow/zebflow)
32
+ - [Documentation](https://github.com/zebflow/zebflow/tree/main/docs)
33
+ - [Docker Hub](https://hub.docker.com/r/zebflow/zebflow)
@@ -0,0 +1,36 @@
1
+ [build-system]
2
+ requires = ["hatchling"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "zebflow"
7
+ version = "0.6.1"
8
+ description = "Reactive web automation platform — pipelines, templates, and real-time collaboration in a single binary."
9
+ readme = "README.md"
10
+ license = "MIT"
11
+ requires-python = ">=3.8"
12
+ authors = [{ name = "Zebflow", email = "hello@zebflow.com" }]
13
+ keywords = ["zebflow", "pipeline", "automation", "reactive", "web", "server", "wasm", "mcp"]
14
+ classifiers = [
15
+ "Development Status :: 4 - Beta",
16
+ "Environment :: Console",
17
+ "Intended Audience :: Developers",
18
+ "License :: OSI Approved :: MIT License",
19
+ "Operating System :: MacOS",
20
+ "Operating System :: POSIX :: Linux",
21
+ "Operating System :: Microsoft :: Windows",
22
+ "Programming Language :: Rust",
23
+ "Topic :: Internet :: WWW/HTTP :: HTTP Servers",
24
+ "Topic :: Software Development :: Build Tools",
25
+ ]
26
+
27
+ [project.urls]
28
+ Homepage = "https://github.com/zebflow/zebflow"
29
+ Repository = "https://github.com/zebflow/zebflow"
30
+ Issues = "https://github.com/zebflow/zebflow/issues"
31
+
32
+ [project.scripts]
33
+ zebflow = "zebflow:main"
34
+
35
+ [tool.hatch.build.targets.wheel]
36
+ packages = ["zebflow"]
@@ -0,0 +1,3 @@
1
+ """Zebflow — reactive web automation platform."""
2
+
3
+ __version__ = "0.6.1"
@@ -0,0 +1,89 @@
1
+ """CLI entry point for zebflow. Downloads the binary on first run, then executes it."""
2
+
3
+ import os
4
+ import platform
5
+ import subprocess
6
+ import sys
7
+ import tarfile
8
+ import tempfile
9
+ import urllib.request
10
+ import zipfile
11
+ from pathlib import Path
12
+
13
+ REPO = "zebflow/zebflow"
14
+ VERSION = os.environ.get("ZEBFLOW_VERSION", f"v{__import__('zebflow').__version__}")
15
+ BIN_DIR = Path(__file__).parent / "bin"
16
+
17
+
18
+ def get_platform():
19
+ system = platform.system().lower()
20
+ machine = platform.machine().lower()
21
+
22
+ if machine in ("x86_64", "amd64"):
23
+ arch = "amd64"
24
+ elif machine in ("aarch64", "arm64"):
25
+ arch = "arm64"
26
+ else:
27
+ print(f"[zebflow] Unsupported architecture: {machine}", file=sys.stderr)
28
+ sys.exit(1)
29
+
30
+ platform_map = {
31
+ ("linux", "amd64"): ("zebflow-linux-amd64.tar.gz", "zebflow"),
32
+ ("linux", "arm64"): ("zebflow-linux-arm64.tar.gz", "zebflow"),
33
+ ("darwin", "arm64"): ("zebflow-darwin-arm64.tar.gz", "zebflow"),
34
+ ("windows", "amd64"): ("zebflow-windows-amd64.zip", "zebflow.exe"),
35
+ }
36
+
37
+ key = (system, arch)
38
+ entry = platform_map.get(key)
39
+ if not entry:
40
+ print(f"[zebflow] Unsupported platform: {system}-{arch}", file=sys.stderr)
41
+ print(f"[zebflow] Supported: {', '.join(f'{s}-{a}' for s, a in platform_map)}", file=sys.stderr)
42
+ sys.exit(1)
43
+
44
+ return entry
45
+
46
+
47
+ def download_binary():
48
+ asset, binary_name = get_platform()
49
+ binary_path = BIN_DIR / binary_name
50
+
51
+ if binary_path.exists():
52
+ return binary_path
53
+
54
+ url = f"https://github.com/{REPO}/releases/download/{VERSION}/{asset}"
55
+ print(f"[zebflow] Downloading {asset} ({VERSION})...")
56
+
57
+ BIN_DIR.mkdir(parents=True, exist_ok=True)
58
+
59
+ with tempfile.NamedTemporaryFile(delete=False, suffix=asset) as tmp:
60
+ tmp_path = Path(tmp.name)
61
+ urllib.request.urlretrieve(url, tmp_path)
62
+
63
+ try:
64
+ if asset.endswith(".tar.gz"):
65
+ with tarfile.open(tmp_path, "r:gz") as tar:
66
+ tar.extractall(path=BIN_DIR)
67
+ elif asset.endswith(".zip"):
68
+ with zipfile.ZipFile(tmp_path, "r") as z:
69
+ z.extractall(path=BIN_DIR)
70
+ finally:
71
+ tmp_path.unlink(missing_ok=True)
72
+
73
+ if not binary_path.exists():
74
+ print(f"[zebflow] Binary not found after extraction: {binary_path}", file=sys.stderr)
75
+ sys.exit(1)
76
+
77
+ binary_path.chmod(0o755)
78
+ print(f"[zebflow] Installed to {binary_path}")
79
+ return binary_path
80
+
81
+
82
+ def main():
83
+ binary_path = download_binary()
84
+ result = subprocess.run([str(binary_path)] + sys.argv[1:])
85
+ sys.exit(result.returncode)
86
+
87
+
88
+ if __name__ == "__main__":
89
+ main()