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.
Files changed (132) hide show
  1. forktex-0.2.4/PKG-INFO +270 -0
  2. forktex-0.2.4/README.md +221 -0
  3. {forktex-0.2.3 → forktex-0.2.4}/pyproject.toml +1 -1
  4. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/__init__.py +1 -1
  5. forktex-0.2.3/PKG-INFO +0 -272
  6. forktex-0.2.3/README.md +0 -223
  7. {forktex-0.2.3 → forktex-0.2.4}/LICENSE +0 -0
  8. {forktex-0.2.3 → forktex-0.2.4}/NOTICE +0 -0
  9. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/__init__.py +0 -0
  10. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/auth/__init__.py +0 -0
  11. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/auth/cli.py +0 -0
  12. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/auth/status.py +0 -0
  13. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/auth/store.py +0 -0
  14. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/auth/types.py +0 -0
  15. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cli.py +0 -0
  16. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/__init__.py +0 -0
  17. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/deploy.py +0 -0
  18. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/dns.py +0 -0
  19. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/down.py +0 -0
  20. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/events.py +0 -0
  21. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/init.py +0 -0
  22. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/logs.py +0 -0
  23. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/project.py +0 -0
  24. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/server.py +0 -0
  25. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/settings.py +0 -0
  26. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/ssl.py +0 -0
  27. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/status.py +0 -0
  28. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/up.py +0 -0
  29. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/usage.py +0 -0
  30. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/validate.py +0 -0
  31. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/cloud/vault.py +0 -0
  32. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/commands/__init__.py +0 -0
  33. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/commands/agents.py +0 -0
  34. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/commands/git_cli.py +0 -0
  35. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/commands/ground.py +0 -0
  36. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/commands/index_ecosystem.py +0 -0
  37. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/commands/local_cli.py +0 -0
  38. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/commands/root_agent.py +0 -0
  39. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/__init__.py +0 -0
  40. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/arch.py +0 -0
  41. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/arch_cli.py +0 -0
  42. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/arch_discover.py +0 -0
  43. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/check.py +0 -0
  44. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/makefile_cli.py +0 -0
  45. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/overview.py +0 -0
  46. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/present.py +0 -0
  47. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/report.py +0 -0
  48. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/standard.py +0 -0
  49. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/arch.html +0 -0
  50. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/archetype.html +0 -0
  51. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/check.html +0 -0
  52. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/ecosystem.html +0 -0
  53. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/report.html +0 -0
  54. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/reports/_base.html +0 -0
  55. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/reports/_container_section.html +0 -0
  56. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/reports/_system_section.html +0 -0
  57. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/reports/ecosystem_report.html +0 -0
  58. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/fsd/templates/reports/system_report.html +0 -0
  59. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/intelligence/__init__.py +0 -0
  60. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/intelligence/agent.py +0 -0
  61. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/intelligence/cli/__init__.py +0 -0
  62. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/intelligence/cli/chat.py +0 -0
  63. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/intelligence/cli/run.py +0 -0
  64. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/intelligence/settings.py +0 -0
  65. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/intelligence/tool_server.py +0 -0
  66. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/loop.py +0 -0
  67. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/manager.py +0 -0
  68. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/network/__init__.py +0 -0
  69. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/network/cli.py +0 -0
  70. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/network/client_factory.py +0 -0
  71. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/network/settings.py +0 -0
  72. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/process.py +0 -0
  73. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/root_loop/__init__.py +0 -0
  74. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/root_loop/chat_app.py +0 -0
  75. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/root_loop/driver.py +0 -0
  76. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/root_loop/menu.py +0 -0
  77. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/root_loop/slash.py +0 -0
  78. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/scraper/__init__.py +0 -0
  79. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/scraper/cli.py +0 -0
  80. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/scraper/truths.py +0 -0
  81. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/session.py +0 -0
  82. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/state.py +0 -0
  83. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/tools/__init__.py +0 -0
  84. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/tools/base.py +0 -0
  85. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/tools/bash.py +0 -0
  86. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/tools/filesystem.py +0 -0
  87. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/tools/git.py +0 -0
  88. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/tools/scraper.py +0 -0
  89. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/tools/server.py +0 -0
  90. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/tools/web.py +0 -0
  91. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/types.py +0 -0
  92. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/__init__.py +0 -0
  93. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/branding/__init__.py +0 -0
  94. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/branding/glyphs/__init__.py +0 -0
  95. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/branding/glyphs/cloud.py +0 -0
  96. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/branding/glyphs/forktex.py +0 -0
  97. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/branding/glyphs/intelligence.py +0 -0
  98. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/branding/glyphs/network.py +0 -0
  99. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/branding/palette.py +0 -0
  100. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/branding/render.py +0 -0
  101. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/console.py +0 -0
  102. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/agent/ui/display.py +0 -0
  103. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/architecture/__init__.py +0 -0
  104. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/architecture/models.py +0 -0
  105. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/cloud/__init__.py +0 -0
  106. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/config.py +0 -0
  107. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/core/__init__.py +0 -0
  108. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/core/paths.py +0 -0
  109. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/core/state.py +0 -0
  110. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/core/utils.py +0 -0
  111. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/data/__init__.py +0 -0
  112. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/data/fsd/__init__.py +0 -0
  113. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/data/fsd/standard.json +0 -0
  114. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/engineering/__init__.py +0 -0
  115. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/engineering/models.py +0 -0
  116. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/filesystem/__init__.py +0 -0
  117. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/filesystem/graph.py +0 -0
  118. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/fsd/__init__.py +0 -0
  119. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/fsd/evaluate.py +0 -0
  120. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/fsd/loader.py +0 -0
  121. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/fsd/makefile.py +0 -0
  122. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/fsd/models.py +0 -0
  123. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/fsd/profiles.py +0 -0
  124. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/intelligence/__init__.py +0 -0
  125. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/manifest/__init__.py +0 -0
  126. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/manifest/models.py +0 -0
  127. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/models/__init__.py +0 -0
  128. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/models/architecture.py +0 -0
  129. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/models/base.py +0 -0
  130. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/models/engineering.py +0 -0
  131. {forktex-0.2.3 → forktex-0.2.4}/src/forktex/models/manifest.py +0 -0
  132. {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
+
@@ -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**.
@@ -23,7 +23,7 @@
23
23
 
24
24
  [project]
25
25
  name = "forktex"
26
- version = "0.2.3"
26
+ version = "0.2.4"
27
27
  description = "CLI, agent, architecture, audit, and SDK toolkit for the ForkTex self-managed software factory"
28
28
  authors = [
29
29
  {name = "FORKTEX",email = "info@forktex.com"}
@@ -41,7 +41,7 @@ CLI:
41
41
  forktex chat
42
42
  """
43
43
 
44
- __version__ = "0.2.3"
44
+ __version__ = "0.2.4"
45
45
  __author__ = "Forktex Team"
46
46
 
47
47
  # Core library exports — always available, no optional deps