@getmonoceros/workbench 1.39.0 → 1.39.2
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/dist/bin.js +9 -5
- package/dist/bin.js.map +1 -1
- package/dist/catalog.json +410 -0
- package/package.json +2 -2
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"cliVersion": "1.39.2",
|
|
4
|
+
"languages": [
|
|
5
|
+
{
|
|
6
|
+
"name": "dotnet",
|
|
7
|
+
"displayName": ".NET",
|
|
8
|
+
"description": "The .NET SDK via the upstream devcontainer feature. Pin a version with `dotnet:<version>`.",
|
|
9
|
+
"options": [],
|
|
10
|
+
"defaultVersion": "latest",
|
|
11
|
+
"versions": [
|
|
12
|
+
"latest",
|
|
13
|
+
"lts",
|
|
14
|
+
"10",
|
|
15
|
+
"9",
|
|
16
|
+
"8",
|
|
17
|
+
"7",
|
|
18
|
+
"6"
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"name": "go",
|
|
23
|
+
"displayName": "Go",
|
|
24
|
+
"description": "The Go toolchain plus golangci-lint via the upstream devcontainer feature. Pin a version with `go:<version>`.",
|
|
25
|
+
"options": [],
|
|
26
|
+
"defaultVersion": "latest",
|
|
27
|
+
"versions": [
|
|
28
|
+
"latest",
|
|
29
|
+
"1.24",
|
|
30
|
+
"1.23"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "java",
|
|
35
|
+
"displayName": "Java",
|
|
36
|
+
"description": "A JDK plus Maven and Gradle by default (the upstream feature ships only the JDK), so a plain `languages: [java]` is build-ready. Pin a JDK major with `java:<version>`.",
|
|
37
|
+
"options": [
|
|
38
|
+
{
|
|
39
|
+
"key": "installGradle",
|
|
40
|
+
"type": "boolean",
|
|
41
|
+
"surface": "yml",
|
|
42
|
+
"default": true
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"key": "installMaven",
|
|
46
|
+
"type": "boolean",
|
|
47
|
+
"surface": "yml",
|
|
48
|
+
"default": true
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"defaultVersion": "latest",
|
|
52
|
+
"versions": [
|
|
53
|
+
"latest",
|
|
54
|
+
"21",
|
|
55
|
+
"17",
|
|
56
|
+
"11",
|
|
57
|
+
"8"
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"name": "node",
|
|
62
|
+
"displayName": "Node.js",
|
|
63
|
+
"description": "Node.js, built into the runtime image. A bare `node` installs nothing extra; pin a different major with `node:<version>`.",
|
|
64
|
+
"options": [],
|
|
65
|
+
"defaultVersion": "22",
|
|
66
|
+
"versions": [
|
|
67
|
+
"lts",
|
|
68
|
+
"latest",
|
|
69
|
+
"22",
|
|
70
|
+
"20"
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"name": "python",
|
|
75
|
+
"displayName": "Python",
|
|
76
|
+
"description": "CPython plus pip and common dev tooling via the upstream devcontainer feature. Pin a version with `python:<version>`.",
|
|
77
|
+
"options": [],
|
|
78
|
+
"defaultVersion": "latest",
|
|
79
|
+
"versions": [
|
|
80
|
+
"latest",
|
|
81
|
+
"3.12",
|
|
82
|
+
"3.11",
|
|
83
|
+
"3.1",
|
|
84
|
+
"3.9",
|
|
85
|
+
"3.8"
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"name": "rust",
|
|
90
|
+
"displayName": "Rust",
|
|
91
|
+
"description": "rustup plus the stable toolchain (rust-analyzer, rust-src, rustfmt, clippy) via the upstream feature. Pin a version with `rust:<version>`.",
|
|
92
|
+
"options": [],
|
|
93
|
+
"defaultVersion": "latest",
|
|
94
|
+
"versions": [
|
|
95
|
+
"latest",
|
|
96
|
+
"1.87"
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"services": [
|
|
101
|
+
{
|
|
102
|
+
"name": "keycloak",
|
|
103
|
+
"displayName": "Keycloak",
|
|
104
|
+
"description": "Keycloak identity & access management (OAuth2 / OpenID Connect / SAML) for local dev. Reachable in-container as host `keycloak`. Starts in dev mode and imports realm JSON from a repo you mount; see the usage notes.",
|
|
105
|
+
"options": [
|
|
106
|
+
{
|
|
107
|
+
"key": "KC_BOOTSTRAP_ADMIN_PASSWORD",
|
|
108
|
+
"type": "string",
|
|
109
|
+
"surface": "env",
|
|
110
|
+
"default": "admin"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"key": "KC_BOOTSTRAP_ADMIN_USERNAME",
|
|
114
|
+
"type": "string",
|
|
115
|
+
"surface": "env",
|
|
116
|
+
"default": "admin"
|
|
117
|
+
}
|
|
118
|
+
],
|
|
119
|
+
"documentationURL": "https://www.keycloak.org/",
|
|
120
|
+
"defaultPort": 8080
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"name": "mailpit",
|
|
124
|
+
"displayName": "Mailpit",
|
|
125
|
+
"description": "SMTP catcher for local dev — apps send mail to it and nothing leaves the machine. SMTP on `mailpit:1025`; web UI + API on 8025 (reach via `monoceros tunnel <name> mailpit:8025`).",
|
|
126
|
+
"options": [],
|
|
127
|
+
"defaultPort": 1025
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"name": "mongodb",
|
|
131
|
+
"displayName": "MongoDB",
|
|
132
|
+
"description": "MongoDB with seeded dev credentials and a readiness healthcheck. Reachable in-container as host `mongodb`.",
|
|
133
|
+
"options": [
|
|
134
|
+
{
|
|
135
|
+
"key": "MONGO_INITDB_DATABASE",
|
|
136
|
+
"type": "string",
|
|
137
|
+
"surface": "env",
|
|
138
|
+
"default": "monoceros"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"key": "MONGO_INITDB_ROOT_PASSWORD",
|
|
142
|
+
"type": "string",
|
|
143
|
+
"surface": "env",
|
|
144
|
+
"default": "monoceros"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"key": "MONGO_INITDB_ROOT_USERNAME",
|
|
148
|
+
"type": "string",
|
|
149
|
+
"surface": "env",
|
|
150
|
+
"default": "monoceros"
|
|
151
|
+
}
|
|
152
|
+
],
|
|
153
|
+
"defaultPort": 27017
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"name": "mysql",
|
|
157
|
+
"displayName": "MySQL",
|
|
158
|
+
"description": "MySQL with seeded dev credentials and a readiness healthcheck. Reachable in-container as host `mysql`.",
|
|
159
|
+
"options": [
|
|
160
|
+
{
|
|
161
|
+
"key": "MYSQL_DATABASE",
|
|
162
|
+
"type": "string",
|
|
163
|
+
"surface": "env",
|
|
164
|
+
"default": "monoceros"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"key": "MYSQL_ROOT_PASSWORD",
|
|
168
|
+
"type": "string",
|
|
169
|
+
"surface": "env",
|
|
170
|
+
"default": "monoceros"
|
|
171
|
+
}
|
|
172
|
+
],
|
|
173
|
+
"defaultPort": 3306
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"name": "pgvector",
|
|
177
|
+
"displayName": "pgvector (PostgreSQL + vectors)",
|
|
178
|
+
"description": "PostgreSQL with the pgvector extension for embeddings / vector search — a drop-in Postgres. Reachable in-container as host `pgvector`. Enable the extension once with `CREATE EXTENSION vector;` (or in your migration).",
|
|
179
|
+
"options": [
|
|
180
|
+
{
|
|
181
|
+
"key": "POSTGRES_DB",
|
|
182
|
+
"type": "string",
|
|
183
|
+
"surface": "env",
|
|
184
|
+
"default": "monoceros"
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"key": "POSTGRES_PASSWORD",
|
|
188
|
+
"type": "string",
|
|
189
|
+
"surface": "env",
|
|
190
|
+
"default": "monoceros"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"key": "POSTGRES_USER",
|
|
194
|
+
"type": "string",
|
|
195
|
+
"surface": "env",
|
|
196
|
+
"default": "monoceros"
|
|
197
|
+
}
|
|
198
|
+
],
|
|
199
|
+
"defaultPort": 5432
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"name": "postgres",
|
|
203
|
+
"displayName": "PostgreSQL",
|
|
204
|
+
"description": "PostgreSQL with seeded dev credentials and a readiness healthcheck. Reachable in-container as host `postgres`.",
|
|
205
|
+
"options": [
|
|
206
|
+
{
|
|
207
|
+
"key": "POSTGRES_DB",
|
|
208
|
+
"type": "string",
|
|
209
|
+
"surface": "env",
|
|
210
|
+
"default": "monoceros"
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"key": "POSTGRES_PASSWORD",
|
|
214
|
+
"type": "string",
|
|
215
|
+
"surface": "env",
|
|
216
|
+
"default": "monoceros"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"key": "POSTGRES_USER",
|
|
220
|
+
"type": "string",
|
|
221
|
+
"surface": "env",
|
|
222
|
+
"default": "monoceros"
|
|
223
|
+
}
|
|
224
|
+
],
|
|
225
|
+
"defaultPort": 5432
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"name": "redis",
|
|
229
|
+
"displayName": "Redis",
|
|
230
|
+
"description": "Redis on the default port with a readiness healthcheck. Reachable in-container as host `redis`.",
|
|
231
|
+
"options": [],
|
|
232
|
+
"defaultPort": 6379
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"name": "rustfs",
|
|
236
|
+
"displayName": "RustFS",
|
|
237
|
+
"description": "S3-compatible object storage (MinIO-compatible API). S3 API on `rustfs:9000`; web console on 9001 (enable with `RUSTFS_CONSOLE_ENABLE=true`, reach via `monoceros tunnel <name> rustfs:9001`).",
|
|
238
|
+
"options": [
|
|
239
|
+
{
|
|
240
|
+
"key": "RUSTFS_ACCESS_KEY",
|
|
241
|
+
"type": "string",
|
|
242
|
+
"surface": "env",
|
|
243
|
+
"default": "rustfsadmin"
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"key": "RUSTFS_SECRET_KEY",
|
|
247
|
+
"type": "string",
|
|
248
|
+
"surface": "env",
|
|
249
|
+
"default": "rustfsadmin"
|
|
250
|
+
}
|
|
251
|
+
],
|
|
252
|
+
"defaultPort": 9000
|
|
253
|
+
}
|
|
254
|
+
],
|
|
255
|
+
"features": [
|
|
256
|
+
{
|
|
257
|
+
"name": "atlassian",
|
|
258
|
+
"displayName": "Atlassian",
|
|
259
|
+
"description": "Rovo Dev (`acli rovodev`), Teamwork Graph (`twg`) and Forge (`forge`) CLIs sharing one Atlassian account. Auth persists across rebuilds.",
|
|
260
|
+
"options": [
|
|
261
|
+
{
|
|
262
|
+
"key": "apiToken",
|
|
263
|
+
"type": "string",
|
|
264
|
+
"surface": "env",
|
|
265
|
+
"default": "",
|
|
266
|
+
"description": "Atlassian API token (id.atlassian.com → Security → API tokens)."
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
"key": "bitbucketToken",
|
|
270
|
+
"type": "string",
|
|
271
|
+
"surface": "env",
|
|
272
|
+
"default": "",
|
|
273
|
+
"description": "Optional Bitbucket app password; only needed for twg's Bitbucket commands."
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"key": "email",
|
|
277
|
+
"type": "string",
|
|
278
|
+
"surface": "env",
|
|
279
|
+
"default": "",
|
|
280
|
+
"description": "Atlassian account email; used with `apiToken` for non-interactive login."
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"key": "forge",
|
|
284
|
+
"type": "boolean",
|
|
285
|
+
"surface": "yml",
|
|
286
|
+
"default": true,
|
|
287
|
+
"description": "Install the Forge CLI (`forge`) for building Atlassian apps."
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"key": "instance",
|
|
291
|
+
"type": "string",
|
|
292
|
+
"surface": "env",
|
|
293
|
+
"default": "",
|
|
294
|
+
"description": "Atlassian site host (`yoursite.atlassian.net`); required by twg."
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"key": "rovodev",
|
|
298
|
+
"type": "boolean",
|
|
299
|
+
"surface": "yml",
|
|
300
|
+
"default": true,
|
|
301
|
+
"description": "Install acli (with the Rovo Dev agent)."
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"key": "twg",
|
|
305
|
+
"type": "boolean",
|
|
306
|
+
"surface": "yml",
|
|
307
|
+
"default": true,
|
|
308
|
+
"description": "Install twg (Teamwork Graph CLI)."
|
|
309
|
+
}
|
|
310
|
+
],
|
|
311
|
+
"documentationURL": "https://developer.atlassian.com/cloud/",
|
|
312
|
+
"presets": [
|
|
313
|
+
"forge",
|
|
314
|
+
"rovodev",
|
|
315
|
+
"twg"
|
|
316
|
+
]
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"name": "claude",
|
|
320
|
+
"displayName": "Claude Code",
|
|
321
|
+
"description": "Anthropic's CLI coding assistant. OAuth/subscription login persists across container rebuilds.",
|
|
322
|
+
"options": [
|
|
323
|
+
{
|
|
324
|
+
"key": "apiKey",
|
|
325
|
+
"type": "string",
|
|
326
|
+
"surface": "env",
|
|
327
|
+
"default": "",
|
|
328
|
+
"description": "`sk-ant-…` for API auth; empty for OAuth login on first run."
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
"key": "permissionMode",
|
|
332
|
+
"type": "string",
|
|
333
|
+
"surface": "yml",
|
|
334
|
+
"default": "auto",
|
|
335
|
+
"description": "Default Claude permission mode in this container. `auto` = Auto Mode: no per-action prompts and no recurring warning (a background classifier vets actions) — the comfortable default for an isolated container. `ask` prompts as usual; `edits` auto-accepts file edits but prompts for other commands; `bypass` skips all prompts (its one-time warning is pre-accepted). Monoceros writes this to ~/.claude/settings.json on apply; override per-project or with a CLI flag.",
|
|
336
|
+
"proposals": [
|
|
337
|
+
"auto",
|
|
338
|
+
"ask",
|
|
339
|
+
"edits",
|
|
340
|
+
"bypass"
|
|
341
|
+
]
|
|
342
|
+
}
|
|
343
|
+
],
|
|
344
|
+
"documentationURL": "https://docs.anthropic.com/en/docs/claude-code",
|
|
345
|
+
"presets": []
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"name": "github",
|
|
349
|
+
"displayName": "GitHub CLI",
|
|
350
|
+
"description": "The official `gh` CLI. Login persists across container rebuilds.",
|
|
351
|
+
"options": [
|
|
352
|
+
{
|
|
353
|
+
"key": "apiToken",
|
|
354
|
+
"type": "string",
|
|
355
|
+
"surface": "env",
|
|
356
|
+
"default": "",
|
|
357
|
+
"description": "GitHub PAT (scopes: repo, read:org, gist); empty for `gh auth login` on first run."
|
|
358
|
+
}
|
|
359
|
+
],
|
|
360
|
+
"documentationURL": "https://cli.github.com/",
|
|
361
|
+
"presets": []
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
"name": "gitlab",
|
|
365
|
+
"displayName": "GitLab CLI",
|
|
366
|
+
"description": "The official GitLab CLI (`glab`) for merge requests, issues, CI/CD pipelines and releases. Targets gitlab.com or a self-managed host. Login persists across container rebuilds.",
|
|
367
|
+
"options": [
|
|
368
|
+
{
|
|
369
|
+
"key": "apiToken",
|
|
370
|
+
"type": "string",
|
|
371
|
+
"surface": "env",
|
|
372
|
+
"default": "",
|
|
373
|
+
"description": "GitLab personal access token (scopes: `api`, `write_repository`); exported as GITLAB_TOKEN. Empty for `glab auth login` on first run."
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
"key": "host",
|
|
377
|
+
"type": "string",
|
|
378
|
+
"surface": "yml",
|
|
379
|
+
"default": "",
|
|
380
|
+
"description": "Self-managed/Dedicated GitLab host (e.g. `gitlab.example.com`); empty targets gitlab.com. Exported as GITLAB_HOST, so every `glab` command uses it without `--hostname`."
|
|
381
|
+
}
|
|
382
|
+
],
|
|
383
|
+
"documentationURL": "https://gitlab.com/gitlab-org/cli",
|
|
384
|
+
"presets": []
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
"name": "opencode",
|
|
388
|
+
"displayName": "OpenCode",
|
|
389
|
+
"description": "sst's open-source, provider-agnostic AI coding agent (TUI). Model + provider key configurable; auth and session state persist across container rebuilds.",
|
|
390
|
+
"options": [
|
|
391
|
+
{
|
|
392
|
+
"key": "apiToken",
|
|
393
|
+
"type": "string",
|
|
394
|
+
"surface": "env",
|
|
395
|
+
"default": "",
|
|
396
|
+
"description": "API key for the model provider (derived from `model`); written to `provider.<x>.options.apiKey` in opencode.json. Empty for `opencode auth login` on first run."
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"key": "model",
|
|
400
|
+
"type": "string",
|
|
401
|
+
"surface": "yml",
|
|
402
|
+
"default": "",
|
|
403
|
+
"description": "Default model as `provider/model-id` (e.g. `anthropic/claude-sonnet-4-6`, `openai/gpt-4o-mini`). The provider is derived from the prefix before `/`. Empty: pick interactively on first run."
|
|
404
|
+
}
|
|
405
|
+
],
|
|
406
|
+
"documentationURL": "https://opencode.ai/docs/",
|
|
407
|
+
"presets": []
|
|
408
|
+
}
|
|
409
|
+
]
|
|
410
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getmonoceros/workbench",
|
|
3
|
-
"version": "1.39.
|
|
3
|
+
"version": "1.39.2",
|
|
4
4
|
"description": "Monoceros workbench CLI — local, reproducible dev containers with first-class AI coding tooling.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"devcontainer",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"manifests:generate": "tsx scripts/generate-feature-manifests.ts",
|
|
42
42
|
"catalog:json": "tsx scripts/generate-catalog-json.ts",
|
|
43
43
|
"prebuild": "pnpm components:sync",
|
|
44
|
-
"build": "tsup",
|
|
44
|
+
"build": "tsup && node scripts/copy-catalog-to-dist.mjs",
|
|
45
45
|
"prepublishOnly": "pnpm typecheck && pnpm test && pnpm build"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|