forgeo-cli 0.3.0__py3-none-any.whl
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.
- forgeo/__init__.py +10 -0
- forgeo/__main__.py +6 -0
- forgeo/agent.py +332 -0
- forgeo/backlog.py +206 -0
- forgeo/central.py +620 -0
- forgeo/cli.py +759 -0
- forgeo/config.py +36 -0
- forgeo/daemon.py +209 -0
- forgeo/forgeo.py +446 -0
- forgeo/git.py +100 -0
- forgeo/instances.py +187 -0
- forgeo/io.py +30 -0
- forgeo/models.py +252 -0
- forgeo/notify.py +77 -0
- forgeo/runs.py +73 -0
- forgeo/setup.py +185 -0
- forgeo/web/central/central.css +380 -0
- forgeo/web/central/central.js +780 -0
- forgeo/web/central/index.html +41 -0
- forgeo/web/central/instance.html +189 -0
- forgeo/web/style.css +656 -0
- forgeo/web_common.py +92 -0
- forgeo_cli-0.3.0.dist-info/METADATA +146 -0
- forgeo_cli-0.3.0.dist-info/RECORD +27 -0
- forgeo_cli-0.3.0.dist-info/WHEEL +4 -0
- forgeo_cli-0.3.0.dist-info/entry_points.txt +2 -0
- forgeo_cli-0.3.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: forgeo-cli
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: A scheduled software forgeo: executes backlog tasks on main, refactors when idle, and writes BLOCKER.md when it needs human input.
|
|
5
|
+
Project-URL: Homepage, https://forgeo.org
|
|
6
|
+
Project-URL: Documentation, https://forgeo.org
|
|
7
|
+
Project-URL: Repository, https://github.com/lucaGazzola/forgeo
|
|
8
|
+
Project-URL: Issues, https://github.com/lucaGazzola/forgeo/issues
|
|
9
|
+
Author: Forgeo Contributors
|
|
10
|
+
License: MIT License
|
|
11
|
+
|
|
12
|
+
Copyright (c) 2026 Software Forgeo Contributors
|
|
13
|
+
|
|
14
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
15
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
16
|
+
in the Software without restriction, including without limitation the rights
|
|
17
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
18
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
19
|
+
furnished to do so, subject to the following conditions:
|
|
20
|
+
|
|
21
|
+
The above copyright notice and this permission notice shall be included in all
|
|
22
|
+
copies or substantial portions of the Software.
|
|
23
|
+
|
|
24
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
25
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
26
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
27
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
28
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
29
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
30
|
+
SOFTWARE.
|
|
31
|
+
License-File: LICENSE
|
|
32
|
+
Keywords: agents,ai,automation,backlog,orchestration,scheduler
|
|
33
|
+
Classifier: Development Status :: 3 - Alpha
|
|
34
|
+
Classifier: Intended Audience :: Developers
|
|
35
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
36
|
+
Classifier: Programming Language :: Python :: 3
|
|
37
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
38
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
39
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
40
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
41
|
+
Requires-Python: >=3.11
|
|
42
|
+
Requires-Dist: pydantic>=2.5
|
|
43
|
+
Requires-Dist: pyyaml>=6.0
|
|
44
|
+
Requires-Dist: rich>=13.7
|
|
45
|
+
Provides-Extra: dev
|
|
46
|
+
Requires-Dist: mypy>=1.8; extra == 'dev'
|
|
47
|
+
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
|
|
48
|
+
Requires-Dist: pytest>=8.0; extra == 'dev'
|
|
49
|
+
Requires-Dist: ruff>=0.5; extra == 'dev'
|
|
50
|
+
Requires-Dist: types-pyyaml>=6.0; extra == 'dev'
|
|
51
|
+
Provides-Extra: docs
|
|
52
|
+
Requires-Dist: mkdocs-material>=9.5; extra == 'docs'
|
|
53
|
+
Description-Content-Type: text/markdown
|
|
54
|
+
|
|
55
|
+
<div align="center">
|
|
56
|
+
<img src="docs/img/logo.png" alt="Forgeo logo" width="128">
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
<div align="center">
|
|
60
|
+
<img src="docs/img/title.svg" alt="Forgeo" width="128">
|
|
61
|
+
</div>
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
[](https://github.com/lucaGazzola/forgeo/actions/workflows/ci.yml)
|
|
65
|
+
[](https://opensource.org/licenses/MIT)
|
|
66
|
+
|
|
67
|
+
**Forgeo is an autonomous software forgeo for people with ideas, not teams.**
|
|
68
|
+
You have a product idea — an app, a website, an internal automation — but no
|
|
69
|
+
developers on staff. With Forgeo you don't need any: you write down what needs
|
|
70
|
+
to be built as a simple list of tasks, and an AI coding agent works through the
|
|
71
|
+
list on its own, writing the code and committing it to your repository. No
|
|
72
|
+
branches, no pull requests, no developer to hire.
|
|
73
|
+
|
|
74
|
+
All you need is basic comfort with a terminal, a git repository, and any coding
|
|
75
|
+
agent CLI — Claude Code, aider, opencode, or your own script. Forgeo works with
|
|
76
|
+
all of them.
|
|
77
|
+
|
|
78
|
+
Forgeo decides what to do next on its own: while tasks are left it implements
|
|
79
|
+
the oldest one and commits the result, and when the backlog is empty it reviews
|
|
80
|
+
the codebase and cleans it up. It only interrupts you when a decision is
|
|
81
|
+
genuinely yours to make — everything else happens autonomously.
|
|
82
|
+
|
|
83
|
+
## Quickstart
|
|
84
|
+
|
|
85
|
+
Requires a git repository (no Python needed — the one-liner downloads a
|
|
86
|
+
prebuilt binary for your OS, or `pipx install forgeo-cli` works too). The full
|
|
87
|
+
walkthrough is in [Getting started](docs/getting-started.md).
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# 1. Install
|
|
91
|
+
curl -fsSL https://forgeo.org/install.sh | bash
|
|
92
|
+
|
|
93
|
+
# 2. Create your Forgeo (guided wizard, run from your project root)
|
|
94
|
+
forgeo init
|
|
95
|
+
|
|
96
|
+
# 3. Start Forgeo
|
|
97
|
+
forgeo start # run forever: every interval_minutes, implement the oldest OPEN task
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
`forgeo init` writes `forgeo.yaml` and a `.forgeo/` folder for the backlog
|
|
101
|
+
and logs, gitignored for you. Fill the backlog with plain JSON tasks (see
|
|
102
|
+
[Backlog format](docs/backlog.md)) — or add them from the web console while
|
|
103
|
+
it runs — and Forgeo does the rest. The daemon binds no ports; open the
|
|
104
|
+
dashboard with `forgeo web` (default <http://0.0.0.0:8790>):
|
|
105
|
+
|
|
106
|
+

|
|
107
|
+
|
|
108
|
+
One-off commands: `forgeo once` (single cycle), `forgeo status` (summary),
|
|
109
|
+
`forgeo stop`, `forgeo restart` — every command is in the
|
|
110
|
+
[CLI reference](docs/cli-reference.md).
|
|
111
|
+
|
|
112
|
+
You can run several factories at once, one per repository — each config is
|
|
113
|
+
fully independent (own backlog, logs, locks). Register each `forgeo.yaml`
|
|
114
|
+
in the instance registry with `forgeo instance add NAME --config PATH`,
|
|
115
|
+
manage any of them by name with `forgeo start/status/stop --name NAME`,
|
|
116
|
+
list them all with `forgeo list`, and get one aggregate overview with the
|
|
117
|
+
central dashboard, `forgeo web`.
|
|
118
|
+
|
|
119
|
+
## Documentation
|
|
120
|
+
|
|
121
|
+
| Topic | Where |
|
|
122
|
+
| --- | --- |
|
|
123
|
+
| Install, init, first cycle | [Getting started](docs/getting-started.md) |
|
|
124
|
+
| Every `forgeo.yaml` key | [Configuration](docs/configuration.md) |
|
|
125
|
+
| Task schema and statuses | [Backlog format](docs/backlog.md) |
|
|
126
|
+
| How the agent is invoked (env, exit codes, timeouts) | [Agent contract](docs/agent-contract.md) |
|
|
127
|
+
| All CLI commands | [CLI reference](docs/cli-reference.md) |
|
|
128
|
+
| Web dashboard & HTTP API | [Web console & HTTP API](docs/web-console-api.md) |
|
|
129
|
+
|
|
130
|
+
Everything is stored in plain files: the backlog, `forgeo.log`, and
|
|
131
|
+
`BLOCKER.md` whenever a decision is pending.
|
|
132
|
+
|
|
133
|
+
## Develop
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
pip install -e ".[dev]"
|
|
137
|
+
pytest
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for the development setup, quality
|
|
141
|
+
gates (`pytest`, `ruff check`, `mypy src/forgeo`), and the pull-request
|
|
142
|
+
process.
|
|
143
|
+
|
|
144
|
+
## License
|
|
145
|
+
|
|
146
|
+
MIT — see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
forgeo/__init__.py,sha256=n9it7ZZN1COWIKI8iMP3aEgAlmgc0_R6hf5iNUa0EfY,388
|
|
2
|
+
forgeo/__main__.py,sha256=0iEZrbwaPjkZBHklc7mJrom-ePKAluWeHwpxZrPCfaM,148
|
|
3
|
+
forgeo/agent.py,sha256=rzB2TUDyIUeXXtUkVMpwXnN-0ptcPrsvr14LLCYxz1E,11983
|
|
4
|
+
forgeo/backlog.py,sha256=17jZL1D9D0sWDv6w41wqMXjiqXw3DHSaET4Q4b_vG18,8264
|
|
5
|
+
forgeo/central.py,sha256=b623NxLUZz7ok61a5R2fOVRB6FJCUU2iK8eRO567a2A,23133
|
|
6
|
+
forgeo/cli.py,sha256=WuWNJerA7Z4s9P-UfJc21JGPLQ5hMVfPXM-AR4tSHS0,26395
|
|
7
|
+
forgeo/config.py,sha256=V_T19cnO4LuEXgTO9z8-aZJ-okme1kwjWS-SLZVLPY4,1280
|
|
8
|
+
forgeo/daemon.py,sha256=JbFLgaekpXbZU14e4G9Ni_XUwS6M1RhcuWq-YpLHObI,7369
|
|
9
|
+
forgeo/forgeo.py,sha256=Y4EtL9waorEJu7N-IFAwZoa259gihkV_7P8dURHcqjA,17632
|
|
10
|
+
forgeo/git.py,sha256=21kf2vGPjmDjKxk39Y9ocwBX1mmxps3ejERepRvYDLs,3707
|
|
11
|
+
forgeo/instances.py,sha256=A9khnw4hTxZyOWvEAi7X6KNkniZfPf1Pjq-HX5uUO3c,6198
|
|
12
|
+
forgeo/io.py,sha256=BWImPtmzgcVpyv4UHVUNVMwGgmgJsvuZtx5352RNhXo,1016
|
|
13
|
+
forgeo/models.py,sha256=yRunfcvk9YmiIhpwZ3Uk0ZTi5R-9-RBs_YVqyQlgA7A,9465
|
|
14
|
+
forgeo/notify.py,sha256=3UPlS5Vbah7kmqZQSZ-hwnsKdBeOciaX6F4eR70JBmc,2536
|
|
15
|
+
forgeo/runs.py,sha256=7XoMHEazJnmRkZhap3WKS-achMKHvXrI-d_G8-Upm4g,2651
|
|
16
|
+
forgeo/setup.py,sha256=qwqYgbzIHw0dEhKPshyfMs3_z_rhSolk-oy7tn2DeqU,6607
|
|
17
|
+
forgeo/web_common.py,sha256=b-51R6eLsYD-R03GmUvSKc-ZVW6zvuYB4kQfoY3Ufns,2705
|
|
18
|
+
forgeo/web/style.css,sha256=V3ltuOZkmqZyjwPvL-VHmnmw6jEUjnLtLGPNdVbinJg,11781
|
|
19
|
+
forgeo/web/central/central.css,sha256=TxZU7yw19I13mn-R0kIbZCfEZoCGzdvPzdMepniICuo,7217
|
|
20
|
+
forgeo/web/central/central.js,sha256=DEyXmHxJnAFEKLPs9WWubiANq53K90pHDK7ROOgXoyo,25795
|
|
21
|
+
forgeo/web/central/index.html,sha256=gaCSfvnuSoMo0tVFhdNEtLXB957w2RV2aUJgvnDHfjI,1263
|
|
22
|
+
forgeo/web/central/instance.html,sha256=ImrsK8WCd0fRR1ZtKupJNCJej1PMcgjFZvrDFqdAYKY,8207
|
|
23
|
+
forgeo_cli-0.3.0.dist-info/METADATA,sha256=Ebs36wLIhnw7yMQt2Tj_aJguf-13GWAKWQwm23IKujk,6346
|
|
24
|
+
forgeo_cli-0.3.0.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
|
|
25
|
+
forgeo_cli-0.3.0.dist-info/entry_points.txt,sha256=QdQCuBBzS92D7KSScqZULwNGVHri5HkHKbHLrnwkfjc,43
|
|
26
|
+
forgeo_cli-0.3.0.dist-info/licenses/LICENSE,sha256=39Yr2e0DpfKEZZLfBx5DYVGHJ8PF2JIy1L5iAGHoeU8,1085
|
|
27
|
+
forgeo_cli-0.3.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Software Forgeo Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|