forktex 0.2.3__tar.gz → 0.2.4__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.
- forktex-0.2.4/PKG-INFO +270 -0
- forktex-0.2.4/README.md +221 -0
- {forktex-0.2.3 → forktex-0.2.4}/pyproject.toml +1 -1
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/__init__.py +1 -1
- forktex-0.2.3/PKG-INFO +0 -272
- forktex-0.2.3/README.md +0 -223
- {forktex-0.2.3 → forktex-0.2.4}/LICENSE +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/NOTICE +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/auth/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/auth/cli.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/auth/status.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/auth/store.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/auth/types.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cli.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/deploy.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/dns.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/down.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/events.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/init.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/logs.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/project.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/server.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/settings.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/ssl.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/status.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/up.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/usage.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/validate.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/vault.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/commands/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/commands/agents.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/commands/git_cli.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/commands/ground.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/commands/index_ecosystem.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/commands/local_cli.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/commands/root_agent.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/arch.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/arch_cli.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/arch_discover.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/check.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/makefile_cli.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/overview.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/present.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/report.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/standard.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/arch.html +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/archetype.html +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/check.html +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/ecosystem.html +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/report.html +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/reports/_base.html +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/reports/_container_section.html +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/reports/_system_section.html +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/reports/ecosystem_report.html +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/reports/system_report.html +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/intelligence/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/intelligence/agent.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/intelligence/cli/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/intelligence/cli/chat.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/intelligence/cli/run.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/intelligence/settings.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/intelligence/tool_server.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/loop.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/manager.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/network/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/network/cli.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/network/client_factory.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/network/settings.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/process.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/root_loop/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/root_loop/chat_app.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/root_loop/driver.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/root_loop/menu.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/root_loop/slash.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/scraper/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/scraper/cli.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/scraper/truths.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/session.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/state.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/tools/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/tools/base.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/tools/bash.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/tools/filesystem.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/tools/git.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/tools/scraper.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/tools/server.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/tools/web.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/types.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/branding/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/branding/glyphs/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/branding/glyphs/cloud.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/branding/glyphs/forktex.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/branding/glyphs/intelligence.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/branding/glyphs/network.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/branding/palette.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/branding/render.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/console.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/display.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/architecture/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/architecture/models.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/cloud/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/config.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/core/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/core/paths.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/core/state.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/core/utils.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/data/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/data/fsd/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/data/fsd/standard.json +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/engineering/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/engineering/models.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/filesystem/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/filesystem/graph.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/fsd/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/fsd/evaluate.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/fsd/loader.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/fsd/makefile.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/fsd/models.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/fsd/profiles.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/intelligence/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/manifest/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/manifest/models.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/models/__init__.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/models/architecture.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/models/base.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/models/engineering.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/models/manifest.py +0 -0
- {forktex-0.2.3 → forktex-0.2.4}/src/forktex/models/standard.py +0 -0
forktex-0.2.4/PKG-INFO
ADDED
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: forktex
|
|
3
|
+
Version: 0.2.4
|
|
4
|
+
Summary: CLI, agent, architecture, audit, and SDK toolkit for the ForkTex self-managed software factory
|
|
5
|
+
License-Expression: AGPL-3.0-only
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
License-File: NOTICE
|
|
8
|
+
Author: FORKTEX
|
|
9
|
+
Author-email: info@forktex.com
|
|
10
|
+
Requires-Python: >=3.12
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
20
|
+
Classifier: Topic :: Software Development
|
|
21
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
23
|
+
Classifier: Topic :: System :: Systems Administration
|
|
24
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
25
|
+
Classifier: Typing :: Typed
|
|
26
|
+
Provides-Extra: web
|
|
27
|
+
Requires-Dist: aiofiles (>=24.1.0,<25.0.0)
|
|
28
|
+
Requires-Dist: anyio (>=4.11.0,<5.0.0)
|
|
29
|
+
Requires-Dist: asyncclick (>=8.3.0.4,<9.0.0.0)
|
|
30
|
+
Requires-Dist: cryptography (>=46.0.6,<47.0.0)
|
|
31
|
+
Requires-Dist: fastapi (>=0.115.0) ; extra == "web"
|
|
32
|
+
Requires-Dist: forktex-cloud (>=0.2.3,<0.3.0)
|
|
33
|
+
Requires-Dist: forktex-intelligence (>=0.2.3,<0.3.0)
|
|
34
|
+
Requires-Dist: forktex-network (>=0.2.3,<0.3.0)
|
|
35
|
+
Requires-Dist: httpx (>=0.27.0,<1.0.0)
|
|
36
|
+
Requires-Dist: httpx-sse (>=0.4.0,<1.0.0)
|
|
37
|
+
Requires-Dist: jinja2 (>=3.1.0,<4.0.0)
|
|
38
|
+
Requires-Dist: playwright (>=1.40.0,<2.0.0)
|
|
39
|
+
Requires-Dist: prompt_toolkit (>=3.0,<4.0)
|
|
40
|
+
Requires-Dist: pydantic (>=2.11.10,<3.0.0)
|
|
41
|
+
Requires-Dist: pyyaml (>=6.0)
|
|
42
|
+
Requires-Dist: rich (>=14.1.0,<15.0.0)
|
|
43
|
+
Requires-Dist: uvicorn[standard] (>=0.30.0) ; extra == "web"
|
|
44
|
+
Project-URL: Bug Tracker, https://github.com/forktex/forktex-python/issues
|
|
45
|
+
Project-URL: Homepage, https://forktex.com
|
|
46
|
+
Project-URL: Repository, https://github.com/forktex/forktex-python
|
|
47
|
+
Description-Content-Type: text/markdown
|
|
48
|
+
|
|
49
|
+
<p align="center">
|
|
50
|
+
<img src="./docs/banner.svg" alt="forktex" height="96">
|
|
51
|
+
</p>
|
|
52
|
+
|
|
53
|
+
<p align="center">
|
|
54
|
+
<a href="https://pypi.org/project/forktex/"><img src="https://img.shields.io/pypi/v/forktex.svg" alt="PyPI"></a>
|
|
55
|
+
<a href="https://pypi.org/project/forktex/"><img src="https://img.shields.io/pypi/pyversions/forktex.svg" alt="Python"></a>
|
|
56
|
+
<a href="https://github.com/forktex/forktex-py/blob/master/LICENSE"><img src="https://img.shields.io/pypi/l/forktex.svg" alt="License"></a>
|
|
57
|
+
</p>
|
|
58
|
+
|
|
59
|
+
<p align="center"><em>A local AI-engineering CLI. Optionally talks to three ForkTex platforms.</em></p>
|
|
60
|
+
|
|
61
|
+
`forktex` ships as a single binary. By itself it gives you an agent that reads your repo, runs commands, writes patches, audits your delivery standard, and discovers your architecture — no account required. Plug in any of the three ForkTex platforms (cloud, intelligence, network) and the same CLI gains LLM reasoning, infra deploys, and identity / projects / channels.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Install
|
|
66
|
+
|
|
67
|
+
**One-liner** (Linux / macOS):
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
curl -sSL install.forktex.com/sh | sh
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**One-liner** (Windows, PowerShell 5.1+):
|
|
74
|
+
|
|
75
|
+
```powershell
|
|
76
|
+
iwr -useb install.forktex.com/ps | iex
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The installer detects Python ≥ 3.12, prefers `pipx` (isolated install), falls back to `pip --user`, and seeds the config directory automatically.
|
|
80
|
+
|
|
81
|
+
**Manual:**
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
pipx install forktex # recommended — isolates deps
|
|
85
|
+
pip install --user forktex
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Requires **Python 3.12+**. Tested on 3.12 / 3.13 / 3.14.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Built-in — works with zero credentials
|
|
93
|
+
|
|
94
|
+
Everything in this section runs without connecting to any platform. The CLI ships its own agents, tools, architecture mapper, and delivery-standard checker.
|
|
95
|
+
|
|
96
|
+
### 🎛 Chat REPL with agents
|
|
97
|
+
|
|
98
|
+
Bare `forktex` opens the menu. The two heavyweight agents live under `forktex agents`:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
forktex # menu (auto-upgrades to chat when intelligence is connected)
|
|
102
|
+
forktex agents root # persistent ecosystem-aware agent — reads AGENTS.md,
|
|
103
|
+
# the C4 snapshot, and your full project context as system prompt
|
|
104
|
+
forktex agents ground # regenerate AGENTS.md across sibling repos
|
|
105
|
+
forktex agents list # history of agent runs
|
|
106
|
+
forktex agents show <id> # inspect one run
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### 🛠 A real tool surface, not a wrapper
|
|
110
|
+
|
|
111
|
+
The agent calls into a single tool registry — the same shape an MCP server would expose, just in-process:
|
|
112
|
+
|
|
113
|
+
| Tool | What it covers |
|
|
114
|
+
|-------------|----------------|
|
|
115
|
+
| filesystem | `read_file`, `write_file`, `patch_file`, `delete_file`, `list_directory`, `glob_search`, `grep_search` |
|
|
116
|
+
| bash | command execution with streaming output and timeouts |
|
|
117
|
+
| git | `status`, `log`, `diff`, `blame`, `commit`, `push` |
|
|
118
|
+
| web | DuckDuckGo `web_search` + Playwright-rendered `web_fetch` |
|
|
119
|
+
| scraper | 12-tool stateful browser session (navigate, click, type, fill, screenshot, …) |
|
|
120
|
+
|
|
121
|
+
> **About MCP:** the CLI itself is *MCP-style* (one registry, structured calls) but does not run an MCP server. The MCP endpoint lives on the platform side — see [`cloud`](#three-platforms--one-cli) and its `/api/mcp`.
|
|
122
|
+
|
|
123
|
+
### 🗺 Architecture discovery
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
forktex arch discover
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Parses `forktex.json` (containers/services), `pyproject.toml` + `package.json` (tech stack), the filesystem (components), and Git metadata, and emits a C4 model as a JSON snapshot, a Structurizr DSL file, and an interactive HTML visualization with topology graph, port inventory, and dependency edges.
|
|
130
|
+
|
|
131
|
+
### ✅ ForkTex Standard for Delivery
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
forktex fsd check # profile-driven Make-target audit (per-atom, per-facet, per-level)
|
|
135
|
+
forktex fsd report # ISO-grade JSON + HTML evidence
|
|
136
|
+
forktex fsd makefile sync # regenerate Makefile from forktex.json atoms (don't hand-edit)
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
`fsd check` evaluates each project against profiles like `workspace/python-monorepo` or `package/python-library`, runs the atom commands defined in `forktex.json`, and reports satisfied / failed / skipped per atom plus per-level achievement.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Three platforms · One CLI
|
|
144
|
+
|
|
145
|
+
Three platforms sit on the same shelf — each speaks the same `connect` / `disconnect` verbs, each lives at `forktex <platform> …`, each has a Python SDK, and each exposes an MCP endpoint at `/api/mcp` so AI assistants can read and write directly with the user's permissions.
|
|
146
|
+
|
|
147
|
+
<table>
|
|
148
|
+
<tr>
|
|
149
|
+
<td align="center" width="33%">
|
|
150
|
+
<img src="https://cloud.forktex.com/assets/forktex-cloud-icon-BR2uDJyk.svg" height="64" alt="ForkTex Cloud"><br>
|
|
151
|
+
<strong>cloud</strong><br>
|
|
152
|
+
<sub>infra & deploys</sub>
|
|
153
|
+
</td>
|
|
154
|
+
<td align="center" width="33%">
|
|
155
|
+
<img src="https://cloud.forktex.com/assets/forktex-intelligence-icon-COh1kdep.svg" height="64" alt="ForkTex Intelligence"><br>
|
|
156
|
+
<strong>intelligence</strong><br>
|
|
157
|
+
<sub>LLM, embeddings, search</sub>
|
|
158
|
+
</td>
|
|
159
|
+
<td align="center" width="33%">
|
|
160
|
+
<img src="https://cloud.forktex.com/assets/forktex-network-icon-DKrK_c7g.svg" height="64" alt="ForkTex Network"><br>
|
|
161
|
+
<strong>network</strong><br>
|
|
162
|
+
<sub>identity, projects, channels</sub>
|
|
163
|
+
</td>
|
|
164
|
+
</tr>
|
|
165
|
+
<tr>
|
|
166
|
+
<td>
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
forktex cloud connect
|
|
170
|
+
forktex cloud up --env local
|
|
171
|
+
forktex cloud deploy <id>
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Bring up local stacks; blue-green deploy from `forktex.json`.
|
|
175
|
+
|
|
176
|
+
</td>
|
|
177
|
+
<td>
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
forktex intelligence connect
|
|
181
|
+
forktex intelligence ask "..."
|
|
182
|
+
forktex intelligence run "..."
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
LLM, embeddings, agentic runs.
|
|
186
|
+
|
|
187
|
+
</td>
|
|
188
|
+
<td>
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
forktex network connect
|
|
192
|
+
forktex network status
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Identity, projects, tasks, worklogs.
|
|
196
|
+
|
|
197
|
+
</td>
|
|
198
|
+
</tr>
|
|
199
|
+
</table>
|
|
200
|
+
|
|
201
|
+
> 🧠 **Intelligence is what makes `forktex` chat smart.** The built-in agents above run with or without it; connect intelligence and bare `forktex` upgrades into a streaming chat REPL backed by an LLM. Cloud and network sit on the same level — connect any, all, or none.
|
|
202
|
+
|
|
203
|
+
### Three ways to reach a platform
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
╭──────────────╮ ╭──────────────╮ ╭──────────────╮
|
|
207
|
+
│ ☁ cloud │ │ 🧠 intelligence │ │ 🕸 network │
|
|
208
|
+
╰──────┬───────╯ ╰──────┬───────╯ ╰──────┬───────╯
|
|
209
|
+
│ │ │
|
|
210
|
+
└────────────────────┼────────────────────┘
|
|
211
|
+
│
|
|
212
|
+
┌────────────────────┼────────────────────┐
|
|
213
|
+
│ │ │
|
|
214
|
+
╭─────┴─────╮ ╭─────┴─────╮ ╭─────┴─────╮
|
|
215
|
+
│ forktex │ │ /api/mcp │ │ pip / │
|
|
216
|
+
│ CLI │ │ (MCP) │ │ SDK │
|
|
217
|
+
╰─────┬─────╯ ╰─────┬─────╯ ╰─────┬─────╯
|
|
218
|
+
│ │ │
|
|
219
|
+
you AI assistants your codebase
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
| | Path | One-liner |
|
|
223
|
+
|---|------|-----------|
|
|
224
|
+
| 💻 | **`forktex` CLI** | `forktex` drops you in. Fastest path for humans — chat, deploy, audit, all in one binary. |
|
|
225
|
+
| 🤖 | **MCP** (`/api/mcp`) | AI assistants read and write through Model Context Protocol with the credentials of the user who connected them. |
|
|
226
|
+
| 🔌 | **Python SDK** | `pip install forktex-cloud · forktex-intelligence · forktex-network` — same auth, same shapes. |
|
|
227
|
+
|
|
228
|
+
> Same data model on every path. A row created by an MCP-connected agent, a script using the SDK, and you typing `forktex network …` are indistinguishable to the platform.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## 60-second tour
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
# Built-in (no platform needed)
|
|
236
|
+
forktex agents root # ecosystem-aware local agent
|
|
237
|
+
forktex arch discover # C4 model as JSON / DSL / HTML
|
|
238
|
+
forktex fsd check # delivery-standard audit
|
|
239
|
+
|
|
240
|
+
# Connect a platform (idempotent — login or register)
|
|
241
|
+
forktex intelligence connect
|
|
242
|
+
forktex cloud connect --api-key ftx-…
|
|
243
|
+
forktex network connect --endpoint http://localhost:9000 --email you@example.com
|
|
244
|
+
|
|
245
|
+
# Now the smart things light up
|
|
246
|
+
forktex # bare → chat REPL (intelligence)
|
|
247
|
+
forktex intelligence ask "What does this project do?"
|
|
248
|
+
forktex cloud up --env local --build # bring infra up from forktex.json
|
|
249
|
+
forktex status --json | jq '.intelligence.connected'
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Documentation
|
|
255
|
+
|
|
256
|
+
| Topic | Where |
|
|
257
|
+
|-------|-------|
|
|
258
|
+
| Full CLI reference (every verb, every slash command, every keybind) | [docs/cli-reference.md](docs/cli-reference.md) |
|
|
259
|
+
| Credentials — verbs, options, on-disk layout | [docs/credentials.md](docs/credentials.md) |
|
|
260
|
+
| Configuration — env vars, manifest, ecosystem layout | [docs/configuration.md](docs/configuration.md) |
|
|
261
|
+
| Development — `make ci`, license headers, sibling SDK editable installs | [docs/development.md](docs/development.md) |
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## License
|
|
266
|
+
|
|
267
|
+
Dual-licensed — **AGPL-3.0-or-later** for open-source use, **commercial** for everything else (proprietary products, SaaS without source release, redistribution in closed-source form). See [`LICENSE`](LICENSE) and [`NOTICE`](NOTICE) for the full terms.
|
|
268
|
+
|
|
269
|
+
Commercial licensing inquiries: **info@forktex.com**.
|
|
270
|
+
|
forktex-0.2.4/README.md
ADDED
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="./docs/banner.svg" alt="forktex" height="96">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<a href="https://pypi.org/project/forktex/"><img src="https://img.shields.io/pypi/v/forktex.svg" alt="PyPI"></a>
|
|
7
|
+
<a href="https://pypi.org/project/forktex/"><img src="https://img.shields.io/pypi/pyversions/forktex.svg" alt="Python"></a>
|
|
8
|
+
<a href="https://github.com/forktex/forktex-py/blob/master/LICENSE"><img src="https://img.shields.io/pypi/l/forktex.svg" alt="License"></a>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center"><em>A local AI-engineering CLI. Optionally talks to three ForkTex platforms.</em></p>
|
|
12
|
+
|
|
13
|
+
`forktex` ships as a single binary. By itself it gives you an agent that reads your repo, runs commands, writes patches, audits your delivery standard, and discovers your architecture — no account required. Plug in any of the three ForkTex platforms (cloud, intelligence, network) and the same CLI gains LLM reasoning, infra deploys, and identity / projects / channels.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Install
|
|
18
|
+
|
|
19
|
+
**One-liner** (Linux / macOS):
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
curl -sSL install.forktex.com/sh | sh
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**One-liner** (Windows, PowerShell 5.1+):
|
|
26
|
+
|
|
27
|
+
```powershell
|
|
28
|
+
iwr -useb install.forktex.com/ps | iex
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
The installer detects Python ≥ 3.12, prefers `pipx` (isolated install), falls back to `pip --user`, and seeds the config directory automatically.
|
|
32
|
+
|
|
33
|
+
**Manual:**
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
pipx install forktex # recommended — isolates deps
|
|
37
|
+
pip install --user forktex
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Requires **Python 3.12+**. Tested on 3.12 / 3.13 / 3.14.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Built-in — works with zero credentials
|
|
45
|
+
|
|
46
|
+
Everything in this section runs without connecting to any platform. The CLI ships its own agents, tools, architecture mapper, and delivery-standard checker.
|
|
47
|
+
|
|
48
|
+
### 🎛 Chat REPL with agents
|
|
49
|
+
|
|
50
|
+
Bare `forktex` opens the menu. The two heavyweight agents live under `forktex agents`:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
forktex # menu (auto-upgrades to chat when intelligence is connected)
|
|
54
|
+
forktex agents root # persistent ecosystem-aware agent — reads AGENTS.md,
|
|
55
|
+
# the C4 snapshot, and your full project context as system prompt
|
|
56
|
+
forktex agents ground # regenerate AGENTS.md across sibling repos
|
|
57
|
+
forktex agents list # history of agent runs
|
|
58
|
+
forktex agents show <id> # inspect one run
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 🛠 A real tool surface, not a wrapper
|
|
62
|
+
|
|
63
|
+
The agent calls into a single tool registry — the same shape an MCP server would expose, just in-process:
|
|
64
|
+
|
|
65
|
+
| Tool | What it covers |
|
|
66
|
+
|-------------|----------------|
|
|
67
|
+
| filesystem | `read_file`, `write_file`, `patch_file`, `delete_file`, `list_directory`, `glob_search`, `grep_search` |
|
|
68
|
+
| bash | command execution with streaming output and timeouts |
|
|
69
|
+
| git | `status`, `log`, `diff`, `blame`, `commit`, `push` |
|
|
70
|
+
| web | DuckDuckGo `web_search` + Playwright-rendered `web_fetch` |
|
|
71
|
+
| scraper | 12-tool stateful browser session (navigate, click, type, fill, screenshot, …) |
|
|
72
|
+
|
|
73
|
+
> **About MCP:** the CLI itself is *MCP-style* (one registry, structured calls) but does not run an MCP server. The MCP endpoint lives on the platform side — see [`cloud`](#three-platforms--one-cli) and its `/api/mcp`.
|
|
74
|
+
|
|
75
|
+
### 🗺 Architecture discovery
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
forktex arch discover
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Parses `forktex.json` (containers/services), `pyproject.toml` + `package.json` (tech stack), the filesystem (components), and Git metadata, and emits a C4 model as a JSON snapshot, a Structurizr DSL file, and an interactive HTML visualization with topology graph, port inventory, and dependency edges.
|
|
82
|
+
|
|
83
|
+
### ✅ ForkTex Standard for Delivery
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
forktex fsd check # profile-driven Make-target audit (per-atom, per-facet, per-level)
|
|
87
|
+
forktex fsd report # ISO-grade JSON + HTML evidence
|
|
88
|
+
forktex fsd makefile sync # regenerate Makefile from forktex.json atoms (don't hand-edit)
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
`fsd check` evaluates each project against profiles like `workspace/python-monorepo` or `package/python-library`, runs the atom commands defined in `forktex.json`, and reports satisfied / failed / skipped per atom plus per-level achievement.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Three platforms · One CLI
|
|
96
|
+
|
|
97
|
+
Three platforms sit on the same shelf — each speaks the same `connect` / `disconnect` verbs, each lives at `forktex <platform> …`, each has a Python SDK, and each exposes an MCP endpoint at `/api/mcp` so AI assistants can read and write directly with the user's permissions.
|
|
98
|
+
|
|
99
|
+
<table>
|
|
100
|
+
<tr>
|
|
101
|
+
<td align="center" width="33%">
|
|
102
|
+
<img src="https://cloud.forktex.com/assets/forktex-cloud-icon-BR2uDJyk.svg" height="64" alt="ForkTex Cloud"><br>
|
|
103
|
+
<strong>cloud</strong><br>
|
|
104
|
+
<sub>infra & deploys</sub>
|
|
105
|
+
</td>
|
|
106
|
+
<td align="center" width="33%">
|
|
107
|
+
<img src="https://cloud.forktex.com/assets/forktex-intelligence-icon-COh1kdep.svg" height="64" alt="ForkTex Intelligence"><br>
|
|
108
|
+
<strong>intelligence</strong><br>
|
|
109
|
+
<sub>LLM, embeddings, search</sub>
|
|
110
|
+
</td>
|
|
111
|
+
<td align="center" width="33%">
|
|
112
|
+
<img src="https://cloud.forktex.com/assets/forktex-network-icon-DKrK_c7g.svg" height="64" alt="ForkTex Network"><br>
|
|
113
|
+
<strong>network</strong><br>
|
|
114
|
+
<sub>identity, projects, channels</sub>
|
|
115
|
+
</td>
|
|
116
|
+
</tr>
|
|
117
|
+
<tr>
|
|
118
|
+
<td>
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
forktex cloud connect
|
|
122
|
+
forktex cloud up --env local
|
|
123
|
+
forktex cloud deploy <id>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Bring up local stacks; blue-green deploy from `forktex.json`.
|
|
127
|
+
|
|
128
|
+
</td>
|
|
129
|
+
<td>
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
forktex intelligence connect
|
|
133
|
+
forktex intelligence ask "..."
|
|
134
|
+
forktex intelligence run "..."
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
LLM, embeddings, agentic runs.
|
|
138
|
+
|
|
139
|
+
</td>
|
|
140
|
+
<td>
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
forktex network connect
|
|
144
|
+
forktex network status
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Identity, projects, tasks, worklogs.
|
|
148
|
+
|
|
149
|
+
</td>
|
|
150
|
+
</tr>
|
|
151
|
+
</table>
|
|
152
|
+
|
|
153
|
+
> 🧠 **Intelligence is what makes `forktex` chat smart.** The built-in agents above run with or without it; connect intelligence and bare `forktex` upgrades into a streaming chat REPL backed by an LLM. Cloud and network sit on the same level — connect any, all, or none.
|
|
154
|
+
|
|
155
|
+
### Three ways to reach a platform
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
╭──────────────╮ ╭──────────────╮ ╭──────────────╮
|
|
159
|
+
│ ☁ cloud │ │ 🧠 intelligence │ │ 🕸 network │
|
|
160
|
+
╰──────┬───────╯ ╰──────┬───────╯ ╰──────┬───────╯
|
|
161
|
+
│ │ │
|
|
162
|
+
└────────────────────┼────────────────────┘
|
|
163
|
+
│
|
|
164
|
+
┌────────────────────┼────────────────────┐
|
|
165
|
+
│ │ │
|
|
166
|
+
╭─────┴─────╮ ╭─────┴─────╮ ╭─────┴─────╮
|
|
167
|
+
│ forktex │ │ /api/mcp │ │ pip / │
|
|
168
|
+
│ CLI │ │ (MCP) │ │ SDK │
|
|
169
|
+
╰─────┬─────╯ ╰─────┬─────╯ ╰─────┬─────╯
|
|
170
|
+
│ │ │
|
|
171
|
+
you AI assistants your codebase
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
| | Path | One-liner |
|
|
175
|
+
|---|------|-----------|
|
|
176
|
+
| 💻 | **`forktex` CLI** | `forktex` drops you in. Fastest path for humans — chat, deploy, audit, all in one binary. |
|
|
177
|
+
| 🤖 | **MCP** (`/api/mcp`) | AI assistants read and write through Model Context Protocol with the credentials of the user who connected them. |
|
|
178
|
+
| 🔌 | **Python SDK** | `pip install forktex-cloud · forktex-intelligence · forktex-network` — same auth, same shapes. |
|
|
179
|
+
|
|
180
|
+
> Same data model on every path. A row created by an MCP-connected agent, a script using the SDK, and you typing `forktex network …` are indistinguishable to the platform.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## 60-second tour
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
# Built-in (no platform needed)
|
|
188
|
+
forktex agents root # ecosystem-aware local agent
|
|
189
|
+
forktex arch discover # C4 model as JSON / DSL / HTML
|
|
190
|
+
forktex fsd check # delivery-standard audit
|
|
191
|
+
|
|
192
|
+
# Connect a platform (idempotent — login or register)
|
|
193
|
+
forktex intelligence connect
|
|
194
|
+
forktex cloud connect --api-key ftx-…
|
|
195
|
+
forktex network connect --endpoint http://localhost:9000 --email you@example.com
|
|
196
|
+
|
|
197
|
+
# Now the smart things light up
|
|
198
|
+
forktex # bare → chat REPL (intelligence)
|
|
199
|
+
forktex intelligence ask "What does this project do?"
|
|
200
|
+
forktex cloud up --env local --build # bring infra up from forktex.json
|
|
201
|
+
forktex status --json | jq '.intelligence.connected'
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Documentation
|
|
207
|
+
|
|
208
|
+
| Topic | Where |
|
|
209
|
+
|-------|-------|
|
|
210
|
+
| Full CLI reference (every verb, every slash command, every keybind) | [docs/cli-reference.md](docs/cli-reference.md) |
|
|
211
|
+
| Credentials — verbs, options, on-disk layout | [docs/credentials.md](docs/credentials.md) |
|
|
212
|
+
| Configuration — env vars, manifest, ecosystem layout | [docs/configuration.md](docs/configuration.md) |
|
|
213
|
+
| Development — `make ci`, license headers, sibling SDK editable installs | [docs/development.md](docs/development.md) |
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## License
|
|
218
|
+
|
|
219
|
+
Dual-licensed — **AGPL-3.0-or-later** for open-source use, **commercial** for everything else (proprietary products, SaaS without source release, redistribution in closed-source form). See [`LICENSE`](LICENSE) and [`NOTICE`](NOTICE) for the full terms.
|
|
220
|
+
|
|
221
|
+
Commercial licensing inquiries: **info@forktex.com**.
|