@mestreyoda/fabrica 0.2.15 → 0.2.17
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.
- package/README.md +71 -18
- package/dist/index.js +2738 -88
- package/package.json +2 -6
- package/ARCHITECTURE.md +0 -93
- package/CHANGELOG.md +0 -42
- package/dist/lib/worker.cjs +0 -214
- package/dist/worker.cjs +0 -4754
package/README.md
CHANGED
|
@@ -96,7 +96,17 @@ operational/workspace state, then tells you what is still missing.
|
|
|
96
96
|
|
|
97
97
|
## Quick start
|
|
98
98
|
|
|
99
|
-
|
|
99
|
+
This is the minimum recommended path to get Fabrica working end-to-end with the official product flow.
|
|
100
|
+
|
|
101
|
+
**1. Authenticate GitHub CLI**:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
gh auth status || gh auth login
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Fabrica uses authenticated `gh` CLI for GitHub operations in the default setup.
|
|
108
|
+
|
|
109
|
+
**2. Install Fabrica**:
|
|
100
110
|
|
|
101
111
|
```bash
|
|
102
112
|
openclaw plugins install @mestreyoda/fabrica
|
|
@@ -104,37 +114,69 @@ openclaw plugins install @mestreyoda/fabrica
|
|
|
104
114
|
|
|
105
115
|
The plugin should load immediately after install, without manual remediation.
|
|
106
116
|
|
|
107
|
-
**
|
|
117
|
+
**3. Confirm loadability**:
|
|
108
118
|
|
|
109
119
|
```bash
|
|
110
120
|
openclaw plugins inspect fabrica
|
|
111
121
|
```
|
|
112
122
|
|
|
113
|
-
**
|
|
123
|
+
**4. Configure Fabrica for a workspace**:
|
|
114
124
|
|
|
115
125
|
```bash
|
|
116
126
|
openclaw fabrica doctor workspace --workspace /path/to/workspace
|
|
117
127
|
openclaw fabrica setup --workspace /path/to/workspace --new-agent fabrica
|
|
118
128
|
```
|
|
119
129
|
|
|
120
|
-
Use `openclaw fabrica setup --agent <id>` if you already have an agent.
|
|
121
|
-
|
|
122
|
-
|
|
130
|
+
Use `openclaw fabrica setup --agent <id>` if you already have an agent.
|
|
131
|
+
|
|
132
|
+
When the official Telegram DM bootstrap flow is configured (`bootstrapDmEnabled=true`
|
|
133
|
+
plus `projectsForumChatId`), `openclaw fabrica setup` also prepares the dedicated
|
|
134
|
+
internal `genesis` agent automatically.
|
|
135
|
+
|
|
136
|
+
**5. Configure Telegram for the official Fabrica flow**:
|
|
137
|
+
|
|
138
|
+
The official flow is:
|
|
139
|
+
- Telegram DM with the bot for new-project intake
|
|
140
|
+
- one Telegram forum group for project topics/timelines
|
|
141
|
+
|
|
142
|
+
At minimum, when DM bootstrap is enabled, set:
|
|
143
|
+
- `plugins.entries.fabrica.config.telegram.bootstrapDmEnabled=true`
|
|
144
|
+
- `plugins.entries.fabrica.config.telegram.projectsForumChatId=<YOUR_PROJECTS_FORUM_CHAT_ID>`
|
|
145
|
+
|
|
146
|
+
If `projectsForumChatId` is missing while DM bootstrap is enabled, Fabrica can accept the DM but will fail when it needs to create the project topic.
|
|
147
|
+
|
|
148
|
+
**6. Validate operational readiness**:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
openclaw plugins inspect fabrica
|
|
152
|
+
openclaw fabrica doctor workspace --workspace /path/to/workspace
|
|
153
|
+
```
|
|
123
154
|
|
|
124
155
|
**Environment provisioning note**:
|
|
125
156
|
|
|
126
|
-
Developer and tester pickup
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
157
|
+
Developer and tester pickup pass through a stack environment gate. Fabrica
|
|
158
|
+
prepares the project environment before dispatching real work, instead of
|
|
159
|
+
finding missing dependencies inside a live worker run.
|
|
160
|
+
|
|
161
|
+
For Python projects, this includes just-in-time `uv` installation when needed,
|
|
162
|
+
a shared toolchain, and a project-local `.venv`.
|
|
130
163
|
|
|
131
|
-
|
|
164
|
+
For existing Node projects, Fabrica expects a reproducible lockfile
|
|
165
|
+
(`package-lock.json`, `pnpm-lock.yaml`, `yarn.lock`, or `bun.lock`) before
|
|
166
|
+
real developer/tester dispatch. Greenfield scaffold mode can materialize the
|
|
167
|
+
first deterministic lockfile, but regular runtime pickup fails closed without
|
|
168
|
+
one.
|
|
169
|
+
|
|
170
|
+
`dryRun: true` skips environment provisioning entirely and remains side-effect
|
|
171
|
+
free.
|
|
172
|
+
|
|
173
|
+
**7. Restart the gateway if needed**:
|
|
132
174
|
|
|
133
175
|
```bash
|
|
134
176
|
systemctl --user restart openclaw-gateway.service
|
|
135
177
|
```
|
|
136
178
|
|
|
137
|
-
**
|
|
179
|
+
**8. Trigger a new project programmatically**:
|
|
138
180
|
|
|
139
181
|
```bash
|
|
140
182
|
cd ~/fabrica # GitHub clone install only
|
|
@@ -146,13 +188,13 @@ npx tsx scripts/genesis-trigger.ts "A CLI tool that counts words in a file" \
|
|
|
146
188
|
|
|
147
189
|
Remove `--dry-run` to execute for real.
|
|
148
190
|
|
|
149
|
-
**
|
|
191
|
+
**9. Watch the pipeline run**:
|
|
150
192
|
|
|
151
193
|
```bash
|
|
152
194
|
tail -f ~/.openclaw/workspace/logs/genesis.log
|
|
153
195
|
```
|
|
154
196
|
|
|
155
|
-
**
|
|
197
|
+
**10. Check metrics**:
|
|
156
198
|
|
|
157
199
|
```bash
|
|
158
200
|
openclaw fabrica metrics
|
|
@@ -223,7 +265,11 @@ Use plugin config when you want explicit webhook behavior or provider auth profi
|
|
|
223
265
|
|
|
224
266
|
### With Telegram
|
|
225
267
|
|
|
226
|
-
Telegram
|
|
268
|
+
Telegram is the primary human-facing entrypoint for Fabrica:
|
|
269
|
+
- DM with the bot for new-project intake and short clarifications
|
|
270
|
+
- one Telegram forum group where Fabrica creates one topic per project
|
|
271
|
+
|
|
272
|
+
Recommended minimum Telegram configuration:
|
|
227
273
|
|
|
228
274
|
```json
|
|
229
275
|
{
|
|
@@ -243,8 +289,7 @@ Telegram enables DM-based project bootstrap, per-project forum topics, and a sep
|
|
|
243
289
|
"telegram": {
|
|
244
290
|
"bootstrapDmEnabled": true,
|
|
245
291
|
"projectsForumChatId": "<YOUR_PROJECTS_FORUM_CHAT_ID>",
|
|
246
|
-
"projectsForumAccountId": "<OPTIONAL_TELEGRAM_ACCOUNT_ID>"
|
|
247
|
-
"opsChatId": "<YOUR_OPS_CHAT_ID>"
|
|
292
|
+
"projectsForumAccountId": "<OPTIONAL_TELEGRAM_ACCOUNT_ID>"
|
|
248
293
|
}
|
|
249
294
|
}
|
|
250
295
|
}
|
|
@@ -253,7 +298,15 @@ Telegram enables DM-based project bootstrap, per-project forum topics, and a sep
|
|
|
253
298
|
}
|
|
254
299
|
```
|
|
255
300
|
|
|
256
|
-
|
|
301
|
+
`projectsForumChatId` is the key Fabrica-specific Telegram setting for the official DM → topic flow.
|
|
302
|
+
|
|
303
|
+
When both `bootstrapDmEnabled=true` and `projectsForumChatId` are present,
|
|
304
|
+
`openclaw fabrica setup` automatically prepares the internal `genesis` agent used
|
|
305
|
+
for the DM intake path.
|
|
306
|
+
|
|
307
|
+
`opsChatId` still exists in plugin config for deployments that want a separate ops-only route, but it is not required for the core product flow.
|
|
308
|
+
|
|
309
|
+
With Telegram enabled, send a project idea to the bot in a DM. Fabrica will ask clarifying questions, provision the GitHub repo, create a dedicated forum topic for the project, and continue the project lifecycle in that topic.
|
|
257
310
|
|
|
258
311
|
Project topics are event-driven timelines. Fabrica emits explicit messages for
|
|
259
312
|
worker start, worker completion, review queueing, reviewer reject/approve, and
|