morphy-agent 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.
- morphy_agent-0.6.1/LICENSE +38 -0
- morphy_agent-0.6.1/PKG-INFO +63 -0
- morphy_agent-0.6.1/README.md +44 -0
- morphy_agent-0.6.1/morphy/__init__.py +134 -0
- morphy_agent-0.6.1/morphy/__main__.py +5 -0
- morphy_agent-0.6.1/morphy_agent.egg-info/PKG-INFO +63 -0
- morphy_agent-0.6.1/morphy_agent.egg-info/SOURCES.txt +10 -0
- morphy_agent-0.6.1/morphy_agent.egg-info/dependency_links.txt +1 -0
- morphy_agent-0.6.1/morphy_agent.egg-info/entry_points.txt +2 -0
- morphy_agent-0.6.1/morphy_agent.egg-info/top_level.txt +1 -0
- morphy_agent-0.6.1/pyproject.toml +34 -0
- morphy_agent-0.6.1/setup.cfg +4 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
Morphy — Proprietary Software License
|
|
2
|
+
Copyright (c) 2026 raidhon. All Rights Reserved.
|
|
3
|
+
|
|
4
|
+
Author / Copyright Holder:
|
|
5
|
+
Name: Raidhon
|
|
6
|
+
Email: raidhon@protonmail.com
|
|
7
|
+
|
|
8
|
+
This software, including its source code, documentation, and associated
|
|
9
|
+
files (the "Software"), is the confidential and proprietary property of the
|
|
10
|
+
copyright holder. The Software is licensed, not sold.
|
|
11
|
+
|
|
12
|
+
NO LICENSE IS GRANTED to any person or entity to use, copy, modify, merge,
|
|
13
|
+
publish, distribute, sublicense, sell, or create derivative works of the
|
|
14
|
+
Software, in whole or in part, without the prior, explicit, written
|
|
15
|
+
permission of the copyright holder.
|
|
16
|
+
|
|
17
|
+
Without prior written permission, you MAY NOT:
|
|
18
|
+
- copy, reproduce, or redistribute the Software or any portion of it;
|
|
19
|
+
- modify, adapt, translate, or create derivative works;
|
|
20
|
+
- reverse engineer, decompile, or disassemble the Software, except to the
|
|
21
|
+
extent such restriction is expressly prohibited by applicable law;
|
|
22
|
+
- remove or alter any proprietary notices, labels, or this license;
|
|
23
|
+
- use the Software for any commercial or production purpose.
|
|
24
|
+
|
|
25
|
+
All rights not expressly granted in writing are reserved by the copyright
|
|
26
|
+
holder. Any unauthorized use of the Software is strictly prohibited and may
|
|
27
|
+
violate copyright and other applicable laws.
|
|
28
|
+
|
|
29
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
30
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
31
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
32
|
+
AUTHOR OR COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
33
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
34
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
35
|
+
SOFTWARE.
|
|
36
|
+
|
|
37
|
+
For licensing inquiries and permissions, contact the copyright holder at the
|
|
38
|
+
email address above.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: morphy-agent
|
|
3
|
+
Version: 0.6.1
|
|
4
|
+
Summary: Morphy — universal autonomous AI agent with multi-agent swarm execution
|
|
5
|
+
Author: raidhon
|
|
6
|
+
License-Expression: LicenseRef-Proprietary
|
|
7
|
+
Project-URL: Homepage, https://morphy.fyi
|
|
8
|
+
Project-URL: Repository, https://github.com/deadraid/morphy-releases
|
|
9
|
+
Keywords: morphy,ai,agent,llm,swarm,cli,autonomous
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Requires-Python: >=3.8
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
Dynamic: license-file
|
|
19
|
+
|
|
20
|
+
<div align="center">
|
|
21
|
+
<img alt="Morphy" src="https://morphy.fyi/mascot-light.svg" width="600">
|
|
22
|
+
<h1>Morphy</h1>
|
|
23
|
+
<p><strong>Universal autonomous AI agent built in Zig</strong></p>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
Morphy runs in the terminal and inside messaging platforms — with multi-agent swarm execution when a single agent isn't enough.
|
|
27
|
+
|
|
28
|
+
## Install
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
pip install morphy-agent
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Usage
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
morphy # interactive TUI
|
|
38
|
+
morphy --provider anthropic --model claude-sonnet-4-6 # specific provider
|
|
39
|
+
morphy --task "Build a REST API" # swarm mode
|
|
40
|
+
morphy --server --transport ws --listen 0.0.0.0:7700 # server mode
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Highlights
|
|
44
|
+
|
|
45
|
+
- **Interactive TUI** — streaming chat, markdown rendering, 6 themes (dark/light)
|
|
46
|
+
- **VS Code extension** — full-featured sidebar with chat, voice input, file attachments
|
|
47
|
+
- **Channel adapters** — Telegram, Discord, Slack, X; custom channels via JSON-RPC stdio
|
|
48
|
+
- **Vision fallback** — automatic image/video analysis for non-vision models
|
|
49
|
+
- **Voice input** — speech-to-text via `/voice` command
|
|
50
|
+
- **Multi-provider** — Anthropic, z.ai, OpenAI, Google, OpenRouter, Chutes, Moonshot, MiniMax
|
|
51
|
+
- **Swarm engine** — parallel multi-agent execution with role differentiation
|
|
52
|
+
- **Subagents** — lightweight parallel tasks with workspace isolation
|
|
53
|
+
- **MCP support** — external tools through Model Context Protocol
|
|
54
|
+
- **Built-in tools** — file editing, shell, glob/search, scheduler, vault
|
|
55
|
+
- **Permission system** — safe/normal/auto/yolo modes
|
|
56
|
+
|
|
57
|
+
## Documentation
|
|
58
|
+
|
|
59
|
+
Full documentation: [morphy.fyi](https://morphy.fyi)
|
|
60
|
+
|
|
61
|
+
## License
|
|
62
|
+
|
|
63
|
+
MIT
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img alt="Morphy" src="https://morphy.fyi/mascot-light.svg" width="600">
|
|
3
|
+
<h1>Morphy</h1>
|
|
4
|
+
<p><strong>Universal autonomous AI agent built in Zig</strong></p>
|
|
5
|
+
</div>
|
|
6
|
+
|
|
7
|
+
Morphy runs in the terminal and inside messaging platforms — with multi-agent swarm execution when a single agent isn't enough.
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pip install morphy-agent
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
morphy # interactive TUI
|
|
19
|
+
morphy --provider anthropic --model claude-sonnet-4-6 # specific provider
|
|
20
|
+
morphy --task "Build a REST API" # swarm mode
|
|
21
|
+
morphy --server --transport ws --listen 0.0.0.0:7700 # server mode
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Highlights
|
|
25
|
+
|
|
26
|
+
- **Interactive TUI** — streaming chat, markdown rendering, 6 themes (dark/light)
|
|
27
|
+
- **VS Code extension** — full-featured sidebar with chat, voice input, file attachments
|
|
28
|
+
- **Channel adapters** — Telegram, Discord, Slack, X; custom channels via JSON-RPC stdio
|
|
29
|
+
- **Vision fallback** — automatic image/video analysis for non-vision models
|
|
30
|
+
- **Voice input** — speech-to-text via `/voice` command
|
|
31
|
+
- **Multi-provider** — Anthropic, z.ai, OpenAI, Google, OpenRouter, Chutes, Moonshot, MiniMax
|
|
32
|
+
- **Swarm engine** — parallel multi-agent execution with role differentiation
|
|
33
|
+
- **Subagents** — lightweight parallel tasks with workspace isolation
|
|
34
|
+
- **MCP support** — external tools through Model Context Protocol
|
|
35
|
+
- **Built-in tools** — file editing, shell, glob/search, scheduler, vault
|
|
36
|
+
- **Permission system** — safe/normal/auto/yolo modes
|
|
37
|
+
|
|
38
|
+
## Documentation
|
|
39
|
+
|
|
40
|
+
Full documentation: [morphy.fyi](https://morphy.fyi)
|
|
41
|
+
|
|
42
|
+
## License
|
|
43
|
+
|
|
44
|
+
MIT
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"""Morphy — universal autonomous AI agent."""
|
|
2
|
+
|
|
3
|
+
import hashlib
|
|
4
|
+
import platform
|
|
5
|
+
import subprocess
|
|
6
|
+
import sys
|
|
7
|
+
import urllib.request
|
|
8
|
+
import stat
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
|
|
11
|
+
try:
|
|
12
|
+
from importlib.metadata import PackageNotFoundError, version as _pkg_version
|
|
13
|
+
|
|
14
|
+
for _pkg_name in ("morphy-agent", "morphy-agent-cli"):
|
|
15
|
+
try:
|
|
16
|
+
__version__ = _pkg_version(_pkg_name)
|
|
17
|
+
break
|
|
18
|
+
except PackageNotFoundError:
|
|
19
|
+
continue
|
|
20
|
+
else:
|
|
21
|
+
__version__ = "0.6.1"
|
|
22
|
+
except Exception:
|
|
23
|
+
__version__ = "0.6.1"
|
|
24
|
+
|
|
25
|
+
REPO = "deadraid/morphy-releases"
|
|
26
|
+
|
|
27
|
+
PLATFORM_MAP = {
|
|
28
|
+
("Darwin", "arm64"): "morphy-macos-aarch64",
|
|
29
|
+
("Darwin", "x86_64"): "morphy-macos-x86_64",
|
|
30
|
+
("Linux", "x86_64"): "morphy-linux-x86_64",
|
|
31
|
+
("Linux", "aarch64"): "morphy-linux-aarch64",
|
|
32
|
+
("Windows", "AMD64"): "morphy-windows-x86_64",
|
|
33
|
+
("Windows", "ARM64"): "morphy-windows-aarch64",
|
|
34
|
+
("Windows", "aarch64"): "morphy-windows-aarch64",
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def _get_binary_name():
|
|
39
|
+
system = platform.system()
|
|
40
|
+
machine = platform.machine()
|
|
41
|
+
key = (system, machine)
|
|
42
|
+
|
|
43
|
+
name = PLATFORM_MAP.get(key)
|
|
44
|
+
if not name:
|
|
45
|
+
print(f"Unsupported platform: {system} {machine}", file=sys.stderr)
|
|
46
|
+
print(f"Supported: {list(PLATFORM_MAP.keys())}", file=sys.stderr)
|
|
47
|
+
sys.exit(1)
|
|
48
|
+
|
|
49
|
+
if system == "Windows":
|
|
50
|
+
name += ".exe"
|
|
51
|
+
return name
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def _get_bin_dir():
|
|
55
|
+
return Path(__file__).parent / "bin"
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def _checksum_url():
|
|
59
|
+
return f"https://github.com/{REPO}/releases/download/v{__version__}/sha256sums.txt"
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def _expected_sha256(binary_name):
|
|
63
|
+
with urllib.request.urlopen(_checksum_url(), timeout=30) as response:
|
|
64
|
+
body = response.read().decode("utf-8")
|
|
65
|
+
for line in body.splitlines():
|
|
66
|
+
fields = line.strip().split()
|
|
67
|
+
if len(fields) >= 2 and fields[1] == binary_name:
|
|
68
|
+
return fields[0].lower()
|
|
69
|
+
raise RuntimeError(f"Missing checksum for {binary_name}")
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def _sha256_file(path):
|
|
73
|
+
digest = hashlib.sha256()
|
|
74
|
+
with path.open("rb") as file:
|
|
75
|
+
for chunk in iter(lambda: file.read(1024 * 1024), b""):
|
|
76
|
+
digest.update(chunk)
|
|
77
|
+
return digest.hexdigest()
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def _verify_checksum(binary_name, path):
|
|
81
|
+
expected = _expected_sha256(binary_name)
|
|
82
|
+
actual = _sha256_file(path)
|
|
83
|
+
if actual != expected:
|
|
84
|
+
raise RuntimeError(f"Checksum mismatch for {binary_name}")
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def _ensure_binary():
|
|
88
|
+
bin_dir = _get_bin_dir()
|
|
89
|
+
ext = ".exe" if platform.system() == "Windows" else ""
|
|
90
|
+
binary = bin_dir / f"morphy{ext}"
|
|
91
|
+
|
|
92
|
+
if binary.exists():
|
|
93
|
+
try:
|
|
94
|
+
current = subprocess.run(
|
|
95
|
+
[str(binary), "--version"],
|
|
96
|
+
capture_output=True, text=True, timeout=5,
|
|
97
|
+
).stdout.strip()
|
|
98
|
+
if current in (__version__, f"v{__version__}"):
|
|
99
|
+
return binary
|
|
100
|
+
print(f"Updating morphy {current} → v{__version__}...")
|
|
101
|
+
binary.unlink()
|
|
102
|
+
except Exception:
|
|
103
|
+
binary.unlink(missing_ok=True)
|
|
104
|
+
|
|
105
|
+
bin_dir.mkdir(parents=True, exist_ok=True)
|
|
106
|
+
|
|
107
|
+
binary_name = _get_binary_name()
|
|
108
|
+
url = f"https://github.com/{REPO}/releases/download/v{__version__}/{binary_name}"
|
|
109
|
+
|
|
110
|
+
print(f"Downloading morphy v{__version__}...")
|
|
111
|
+
print(f" {url}")
|
|
112
|
+
|
|
113
|
+
try:
|
|
114
|
+
urllib.request.urlretrieve(url, binary)
|
|
115
|
+
_verify_checksum(binary_name, binary)
|
|
116
|
+
if platform.system() != "Windows":
|
|
117
|
+
binary.chmod(binary.stat().st_mode | stat.S_IEXEC | stat.S_IXGRP | stat.S_IXOTH)
|
|
118
|
+
print("morphy installed successfully.")
|
|
119
|
+
except Exception as e:
|
|
120
|
+
print(f"Failed to download morphy: {e}", file=sys.stderr)
|
|
121
|
+
print(f"Download manually: https://github.com/{REPO}/releases/tag/v{__version__}", file=sys.stderr)
|
|
122
|
+
sys.exit(1)
|
|
123
|
+
|
|
124
|
+
return binary
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
def main():
|
|
128
|
+
binary = _ensure_binary()
|
|
129
|
+
result = subprocess.run([str(binary)] + sys.argv[1:])
|
|
130
|
+
sys.exit(result.returncode)
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
if __name__ == "__main__":
|
|
134
|
+
main()
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: morphy-agent
|
|
3
|
+
Version: 0.6.1
|
|
4
|
+
Summary: Morphy — universal autonomous AI agent with multi-agent swarm execution
|
|
5
|
+
Author: raidhon
|
|
6
|
+
License-Expression: LicenseRef-Proprietary
|
|
7
|
+
Project-URL: Homepage, https://morphy.fyi
|
|
8
|
+
Project-URL: Repository, https://github.com/deadraid/morphy-releases
|
|
9
|
+
Keywords: morphy,ai,agent,llm,swarm,cli,autonomous
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Requires-Python: >=3.8
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
Dynamic: license-file
|
|
19
|
+
|
|
20
|
+
<div align="center">
|
|
21
|
+
<img alt="Morphy" src="https://morphy.fyi/mascot-light.svg" width="600">
|
|
22
|
+
<h1>Morphy</h1>
|
|
23
|
+
<p><strong>Universal autonomous AI agent built in Zig</strong></p>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
Morphy runs in the terminal and inside messaging platforms — with multi-agent swarm execution when a single agent isn't enough.
|
|
27
|
+
|
|
28
|
+
## Install
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
pip install morphy-agent
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Usage
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
morphy # interactive TUI
|
|
38
|
+
morphy --provider anthropic --model claude-sonnet-4-6 # specific provider
|
|
39
|
+
morphy --task "Build a REST API" # swarm mode
|
|
40
|
+
morphy --server --transport ws --listen 0.0.0.0:7700 # server mode
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Highlights
|
|
44
|
+
|
|
45
|
+
- **Interactive TUI** — streaming chat, markdown rendering, 6 themes (dark/light)
|
|
46
|
+
- **VS Code extension** — full-featured sidebar with chat, voice input, file attachments
|
|
47
|
+
- **Channel adapters** — Telegram, Discord, Slack, X; custom channels via JSON-RPC stdio
|
|
48
|
+
- **Vision fallback** — automatic image/video analysis for non-vision models
|
|
49
|
+
- **Voice input** — speech-to-text via `/voice` command
|
|
50
|
+
- **Multi-provider** — Anthropic, z.ai, OpenAI, Google, OpenRouter, Chutes, Moonshot, MiniMax
|
|
51
|
+
- **Swarm engine** — parallel multi-agent execution with role differentiation
|
|
52
|
+
- **Subagents** — lightweight parallel tasks with workspace isolation
|
|
53
|
+
- **MCP support** — external tools through Model Context Protocol
|
|
54
|
+
- **Built-in tools** — file editing, shell, glob/search, scheduler, vault
|
|
55
|
+
- **Permission system** — safe/normal/auto/yolo modes
|
|
56
|
+
|
|
57
|
+
## Documentation
|
|
58
|
+
|
|
59
|
+
Full documentation: [morphy.fyi](https://morphy.fyi)
|
|
60
|
+
|
|
61
|
+
## License
|
|
62
|
+
|
|
63
|
+
MIT
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
morphy/__init__.py
|
|
5
|
+
morphy/__main__.py
|
|
6
|
+
morphy_agent.egg-info/PKG-INFO
|
|
7
|
+
morphy_agent.egg-info/SOURCES.txt
|
|
8
|
+
morphy_agent.egg-info/dependency_links.txt
|
|
9
|
+
morphy_agent.egg-info/entry_points.txt
|
|
10
|
+
morphy_agent.egg-info/top_level.txt
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
morphy
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=64"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "morphy-agent"
|
|
7
|
+
version = "0.6.1"
|
|
8
|
+
description = "Morphy — universal autonomous AI agent with multi-agent swarm execution"
|
|
9
|
+
readme = {file = "README.md", content-type = "text/markdown"}
|
|
10
|
+
license = "LicenseRef-Proprietary"
|
|
11
|
+
license-files = ["LICENSE"]
|
|
12
|
+
authors = [{ name = "raidhon" }]
|
|
13
|
+
requires-python = ">=3.8"
|
|
14
|
+
keywords = ["morphy", "ai", "agent", "llm", "swarm", "cli", "autonomous"]
|
|
15
|
+
classifiers = [
|
|
16
|
+
"Development Status :: 3 - Alpha",
|
|
17
|
+
"Environment :: Console",
|
|
18
|
+
"Intended Audience :: Developers",
|
|
19
|
+
"Topic :: Software Development :: Libraries",
|
|
20
|
+
"Programming Language :: Python :: 3",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
[project.scripts]
|
|
24
|
+
morphy = "morphy:main"
|
|
25
|
+
|
|
26
|
+
[project.urls]
|
|
27
|
+
Homepage = "https://morphy.fyi"
|
|
28
|
+
Repository = "https://github.com/deadraid/morphy-releases"
|
|
29
|
+
|
|
30
|
+
[tool.setuptools.packages.find]
|
|
31
|
+
include = ["morphy*"]
|
|
32
|
+
|
|
33
|
+
[tool.setuptools.package-data]
|
|
34
|
+
morphy = ["bin/*"]
|