modelroom 0.0.6 → 0.1.0

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 (64) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +40 -8
  3. package/dist/bin/modelroom.js +241 -75
  4. package/dist/bin/modelroom.js.map +1 -1
  5. package/dist/lib/agents/index.d.ts.map +1 -1
  6. package/dist/lib/agents/index.js +19 -4
  7. package/dist/lib/agents/index.js.map +1 -1
  8. package/dist/lib/artifact.d.ts +1 -1
  9. package/dist/lib/artifact.d.ts.map +1 -1
  10. package/dist/lib/artifact.js +9 -5
  11. package/dist/lib/artifact.js.map +1 -1
  12. package/dist/lib/config.d.ts +17 -1
  13. package/dist/lib/config.d.ts.map +1 -1
  14. package/dist/lib/config.js +40 -4
  15. package/dist/lib/config.js.map +1 -1
  16. package/dist/lib/frontmatter.d.ts +2 -0
  17. package/dist/lib/frontmatter.d.ts.map +1 -1
  18. package/dist/lib/frontmatter.js +11 -2
  19. package/dist/lib/frontmatter.js.map +1 -1
  20. package/dist/lib/i18n.d.ts +315 -0
  21. package/dist/lib/i18n.d.ts.map +1 -0
  22. package/dist/lib/i18n.js +651 -0
  23. package/dist/lib/i18n.js.map +1 -0
  24. package/dist/lib/lang.d.ts +4 -0
  25. package/dist/lib/lang.d.ts.map +1 -0
  26. package/dist/lib/lang.js +5 -0
  27. package/dist/lib/lang.js.map +1 -0
  28. package/dist/lib/lint.d.ts +3 -0
  29. package/dist/lib/lint.d.ts.map +1 -1
  30. package/dist/lib/lint.js +22 -12
  31. package/dist/lib/lint.js.map +1 -1
  32. package/dist/lib/locale.d.ts +9 -0
  33. package/dist/lib/locale.d.ts.map +1 -0
  34. package/dist/lib/locale.js +32 -0
  35. package/dist/lib/locale.js.map +1 -0
  36. package/dist/lib/server.d.ts +3 -0
  37. package/dist/lib/server.d.ts.map +1 -1
  38. package/dist/lib/server.js +44 -27
  39. package/dist/lib/server.js.map +1 -1
  40. package/dist/lib/templates.d.ts +7 -0
  41. package/dist/lib/templates.d.ts.map +1 -0
  42. package/dist/lib/templates.js +30 -0
  43. package/dist/lib/templates.js.map +1 -0
  44. package/docs/02-convention.md +10 -5
  45. package/docs/03-cli.md +59 -14
  46. package/docs/04-agents.md +10 -2
  47. package/package.json +9 -19
  48. package/templates/{AGENTS.md → en/AGENTS.md} +8 -3
  49. package/templates/ja/AGENTS.md +38 -0
  50. package/templates/ja/room/BEHAVIOUR.md +18 -0
  51. package/templates/ja/room/BRIEF.md +16 -0
  52. package/templates/ja/room/SPEC.md +9 -0
  53. package/templates/ja/room/index.html +53 -0
  54. package/templates/modelroom.json +3 -1
  55. package/ui/assets/app.js +120 -47
  56. package/ui/dashboard.html +11 -7
  57. package/ui/kit.html +13 -9
  58. package/ui/modelroom.css +1 -2
  59. package/ui/room.html +11 -7
  60. package/ui/settings.html +11 -7
  61. /package/templates/{room → en/room}/BEHAVIOUR.md +0 -0
  62. /package/templates/{room → en/room}/BRIEF.md +0 -0
  63. /package/templates/{room → en/room}/SPEC.md +0 -0
  64. /package/templates/{room → en/room}/index.html +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.0](https://github.com/modelroom/modelroom/compare/modelroom-v0.0.6...modelroom-v0.1.0) (2026-10-19)
4
+
5
+
6
+ ### Features
7
+
8
+ * install into modelroom/ and localize the tool in en/ja ([#14](https://github.com/modelroom/modelroom/issues/14)) ([074205c](https://github.com/modelroom/modelroom/commit/074205c91509d8d4b951450c7a71759f799d25e4))
9
+ * **ui:** rebuild the tool UI on Mantine v9 ([#12](https://github.com/modelroom/modelroom/issues/12)) ([d7b5844](https://github.com/modelroom/modelroom/commit/d7b5844c47932353cabfe98e63dfaf1926f65135))
10
+
3
11
  ## [0.0.6](https://github.com/modelroom/modelroom/compare/modelroom-v0.0.5...modelroom-v0.0.6) (2026-10-18)
4
12
 
5
13
 
package/README.md CHANGED
@@ -20,6 +20,33 @@ npx modelroom init checkout # a room, with its docs and a starter artifact
20
20
  npx modelroom # → http://127.0.0.1:4321
21
21
  ```
22
22
 
23
+ `init` keeps the design layer in one place — `modelroom/` for what you commit and
24
+ `.modelroom/` for local state — and picks the language from your environment (pass
25
+ `--lang en` / `--lang ja` to pin it):
26
+
27
+ ```
28
+ your-repo/
29
+ ├── modelroom/ # committed
30
+ │ ├── modelroom.json
31
+ │ ├── AGENTS.md
32
+ │ └── rooms/checkout/
33
+ │ ├── BRIEF.md
34
+ │ ├── SPEC.md
35
+ │ ├── BEHAVIOUR.md
36
+ │ └── index.html
37
+ └── .modelroom/ # git-ignored state
38
+ ```
39
+
40
+ | Path | Committed? | What it is |
41
+ |---|---|---|
42
+ | `modelroom/modelroom.json` | yes | the config: agent, rooms, language |
43
+ | `modelroom/AGENTS.md` | yes | what the agent may write, and in which language |
44
+ | `modelroom/rooms/<room>/` | yes | one screen: `BRIEF`, `SPEC`, `BEHAVIOUR`, the artifact |
45
+ | `.modelroom/state.json` | no | local session ids and settings changed from `/settings` |
46
+
47
+ `.modelroom/` is disposable: delete it to reset sessions and local settings. The committed
48
+ design layer is untouched.
49
+
23
50
  ## Why "model room"
24
51
 
25
52
  A model room in real estate is furnished, full scale, and convincing enough to decide in — but it
@@ -35,9 +62,9 @@ application code.
35
62
  | Where | What |
36
63
  |---|---|
37
64
  | `/` | every room, side by side, with thumbnails — full-text search and filters built from the records |
38
- | `/room/<name>` | chat, the room's docs (editable), and the artifact — updating as the agent works |
65
+ | `/rooms/<name>` | chat, the room's docs (editable), and the artifact — updating as the agent works |
39
66
  | `/settings` | which agent to run, and with which model |
40
- | `/files/<path>` | your repository, served read-only and **unmodified** (no injected scripts) |
67
+ | `/files/<path>` | the design layer (`modelroom/`), served read-only and **unmodified** (no injected scripts) |
41
68
 
42
69
  The room's docs are the only files the UI can write. Changing `index.html` (from the agent or by
43
70
  hand) reloads the preview with no manual refresh; changes elsewhere in the room stream in the same way.
@@ -78,9 +105,12 @@ must never set it.
78
105
  ## Agents
79
106
 
80
107
  ```jsonc
81
- // modelroom.json
108
+ // modelroom/modelroom.json
82
109
  {
110
+ "root": ".",
83
111
  "rooms": "rooms",
112
+ "state": "../.modelroom",
113
+ "lang": "ja", // optional; omit it and the OS decides
84
114
  "agent": {
85
115
  "adapter": "opencode", // or "command" for any CLI
86
116
  "command": "opencode",
@@ -99,15 +129,17 @@ Full detail, including how to scope an agent so it can only write room files, is
99
129
 
100
130
  ```bash
101
131
  git clone https://github.com/modelroom/modelroom && cd modelroom
102
- npm install # dev only: tailwind/daisyUI (CSS is committed) + playwright (optional)
132
+ npm install # dev only: Mantine + React (both bundled, committed) + playwright (optional)
103
133
  npm test # smoke checks
104
134
  npm run modelroom # serves examples/rooms
105
- npm run build:css # after changing ui/*.html
135
+ npm run build:css # after changing ui/*.html or src/modelroom.css
136
+ npm run build:web # after changing web/**
106
137
  ```
107
138
 
108
- The stylesheet in `ui/` is built and committed, so users never run a build step. Artifacts (in
109
- `templates/` and `examples/`) are deliberately framework-free: plain HTML and CSS, no CDN, no web
110
- fonts — they are handed to implementation and must render with no network.
139
+ The stylesheet and the JS bundle in `ui/` are built and committed, so users never run a build
140
+ step. The tool's UI is React + [Mantine](https://mantine.dev); artifacts (in `templates/` and
141
+ `examples/`) are deliberately framework-free: plain HTML and CSS, no CDN, no web fonts — they
142
+ are handed to implementation and must render with no network.
111
143
 
112
144
  PNG thumbnails are optional and need Playwright:
113
145
 
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  // modelroom — CLI
3
3
  //
4
- // modelroom [serve] [--port 4321] [--host 127.0.0.1] [--open]
5
- // modelroom init [<room>] [--dir rooms] [--force]
4
+ // modelroom [serve] [--port 4321] [--host 127.0.0.1] [--open] [--lang en|ja]
5
+ // modelroom init [<room>] [--dir rooms] [--lang en|ja] [--force]
6
6
  // modelroom check [--json] [--strict]
7
7
  // modelroom doctor
8
8
  //
@@ -10,9 +10,12 @@
10
10
  import { readFile, writeFile, mkdir, access } from 'node:fs/promises';
11
11
  import { constants } from 'node:fs';
12
12
  import { spawn } from 'node:child_process';
13
- import { dirname, join, resolve } from 'node:path';
13
+ import { dirname, join, relative, resolve, basename } from 'node:path';
14
14
  import { fileURLToPath } from 'node:url';
15
- import { loadConfig } from '../lib/config.js';
15
+ import { findConfigPath, isLang, loadConfig } from '../lib/config.js';
16
+ import { detectLang } from '../lib/locale.js';
17
+ import { t } from '../lib/i18n.js';
18
+ import { readTemplate, ROOM_FILES } from '../lib/templates.js';
16
19
  import { createModelroom } from '../lib/server.js';
17
20
  import { listRoomNames } from '../lib/rooms.js';
18
21
  import { lintRooms } from '../lib/lint.js';
@@ -42,32 +45,41 @@ for (let i = 0; i < args.length; i++) {
42
45
  const positional = args.filter((a, i) => !a.startsWith('-') && !flagValues.has(i));
43
46
  const cmd = positional[0] ?? 'serve';
44
47
  const pkg = JSON.parse(await readFile(join(pkgDir, 'package.json'), 'utf8'));
48
+ const str = (v) => typeof v === 'string' ? v : undefined;
49
+ if (str(opts.lang) && !isLang(opts.lang)) {
50
+ console.error(t(detectLang().lang, 'cli.error.invalidLang', { lang: String(opts.lang) }));
51
+ process.exit(1);
52
+ }
53
+ /** The language for the CLI itself: flag, then config, then the environment. */
54
+ async function resolveCliLang(cwd, explicit) {
55
+ if (explicit && isLang(explicit))
56
+ return explicit;
57
+ const cfg = await loadConfig(cwd);
58
+ if (await exists(cfg.configPath))
59
+ return cfg.lang;
60
+ return detectLang().lang;
61
+ }
62
+ const earlyLang = await resolveCliLang(process.cwd(), str(opts.lang));
45
63
  if (opts.version || cmd === 'version') {
46
64
  console.log(pkg.version);
47
65
  process.exit(0);
48
66
  }
49
67
  if (cmd === 'help' || opts.help)
50
- usage();
51
- function usage() {
52
- console.log(`modelroom ${pkg.version} — a full-scale model room for UI
53
-
54
- usage
55
- modelroom [serve] [--port 4321] [--host 127.0.0.1] [--open]
56
- modelroom init [<room>] [--dir rooms] [--force]
57
- modelroom check [--json] [--strict]
58
- modelroom doctor
59
- modelroom --version | --help
60
-
61
- A room is one screen: rooms/<name>/ with BRIEF.md, SPEC.md, BEHAVIOUR.md and an artifact.
62
- Config lives in modelroom.json; local state in .modelroom/state.json (git-ignore it).
63
- `);
68
+ usage(earlyLang);
69
+ function usage(lang) {
70
+ console.log(t(lang, 'cli.usage', { version: pkg.version }));
64
71
  process.exit(0);
65
72
  }
66
73
  const cwd = resolve(typeof opts.cwd === 'string' ? opts.cwd : process.cwd());
67
- const str = (v) => typeof v === 'string' ? v : undefined;
68
74
  // ── serve ───────────────────────────────────────────────────────────────────
69
75
  if (cmd === 'serve') {
70
- const app = await createModelroom({ cwd, port: str(opts.port), host: str(opts.host) });
76
+ const app = await createModelroom({
77
+ cwd,
78
+ port: str(opts.port),
79
+ host: str(opts.host),
80
+ lang: str(opts.lang),
81
+ });
82
+ const lang = app.cfg.lang;
71
83
  app.startWatching();
72
84
  try {
73
85
  const { url } = await app.listen();
@@ -76,11 +88,15 @@ if (cmd === 'serve') {
76
88
  `modelroom ${pkg.version}`,
77
89
  ` ${url}`,
78
90
  ` root ${app.cfg.rootDir}`,
79
- ` rooms ${rooms.length ? rooms.join(', ') : '(none yet — try: npx modelroom init hello)'}`,
80
- ` agent ${app.cfg.agent.adapter} · ${app.cfg.agent.command} · agent=${app.cfg.agent.agent || '-'} · model=${app.cfg.agent.model || 'default'}`,
91
+ t(lang, 'cli.serve.rooms', {
92
+ rooms: rooms.length ? rooms.join(', ') : t(lang, 'cli.serve.roomsNone'),
93
+ }),
94
+ t(lang, 'cli.serve.agent', {
95
+ line: `${app.cfg.agent.adapter} · ${app.cfg.agent.command} · agent=${app.cfg.agent.agent || '-'} · model=${app.cfg.agent.model || 'default'}`,
96
+ }),
81
97
  '',
82
- ' Artifacts are served unmodified. Writable files: ' + app.cfg.docs.join(', '),
83
- ' Ctrl+C to stop',
98
+ t(lang, 'cli.serve.artifacts', { docs: app.cfg.docs.join(', ') }),
99
+ t(lang, 'cli.serve.ctrlC'),
84
100
  ].join('\n'));
85
101
  if (opts.open)
86
102
  openBrowser(url);
@@ -88,7 +104,7 @@ if (cmd === 'serve') {
88
104
  catch (err) {
89
105
  const code = err.code;
90
106
  console.error(code === 'EADDRINUSE'
91
- ? `port ${app.cfg.port} is in use — pass --port <n>`
107
+ ? t(lang, 'cli.serve.portInUse', { port: app.cfg.port })
92
108
  : err instanceof Error
93
109
  ? err.message
94
110
  : String(err));
@@ -97,9 +113,56 @@ if (cmd === 'serve') {
97
113
  }
98
114
  // ── init ────────────────────────────────────────────────────────────────────
99
115
  else if (cmd === 'init') {
100
- const cfg = await loadConfig(cwd);
101
- if (typeof opts.dir === 'string' && !opts.dir.startsWith('-')) {
102
- cfg.rooms = opts.dir;
116
+ const existingPath = await findConfigPath(cwd);
117
+ const legacy = existingPath === resolve(cwd, 'modelroom.json');
118
+ let cfg;
119
+ let lang;
120
+ let langSource;
121
+ let designDir;
122
+ let configPath;
123
+ const detected = detectLang();
124
+ const pinned = isLang(opts.lang);
125
+ if (existingPath) {
126
+ cfg = await loadConfig(cwd);
127
+ configPath = cfg.configPath;
128
+ lang = isLang(opts.lang) ? opts.lang : cfg.lang;
129
+ const raw = await readFile(configPath, 'utf8').catch(() => '');
130
+ langSource = pinned ? 'flag' : /"lang"\s*:/.test(raw) ? 'config' : detected.source;
131
+ if (legacy)
132
+ console.log(t(lang, 'cli.init.legacy', { path: relative(cwd, existingPath) }));
133
+ }
134
+ else {
135
+ designDir = join(cwd, 'modelroom');
136
+ configPath = join(designDir, 'modelroom.json');
137
+ lang = isLang(opts.lang) ? opts.lang : detected.lang;
138
+ langSource = pinned ? 'flag' : detected.source;
139
+ cfg = {
140
+ root: '.',
141
+ rooms: str(opts.dir) ?? 'rooms',
142
+ state: '../.modelroom',
143
+ artifact: 'index.html',
144
+ docs: ['BRIEF.md', 'SPEC.md', 'BEHAVIOUR.md'],
145
+ port: 4321,
146
+ host: '127.0.0.1',
147
+ lang,
148
+ agent: {
149
+ adapter: 'opencode',
150
+ command: 'opencode',
151
+ model: null,
152
+ agent: 'build',
153
+ standalone: true,
154
+ args: [],
155
+ },
156
+ rootDir: designDir,
157
+ roomsDir: join(designDir, str(opts.dir) ?? 'rooms'),
158
+ configPath,
159
+ configDir: designDir,
160
+ stateDir: join(cwd, '.modelroom'),
161
+ statePath: join(cwd, '.modelroom', 'state.json'),
162
+ };
163
+ }
164
+ if (str(opts.dir)) {
165
+ cfg.rooms = str(opts.dir);
103
166
  cfg.roomsDir = resolve(cfg.rootDir, cfg.rooms);
104
167
  }
105
168
  const room = typeof opts.room === 'string' && !opts.room.startsWith('-')
@@ -110,37 +173,77 @@ else if (cmd === 'init') {
110
173
  const roomDir = join(cfg.roomsDir, room);
111
174
  await mkdir(roomDir, { recursive: true });
112
175
  const written = [];
113
- for (const f of ['BRIEF.md', 'SPEC.md', 'BEHAVIOUR.md', 'index.html']) {
176
+ const newConfig = !(await exists(configPath));
177
+ if (newConfig) {
178
+ const stateRel = relative(dirname(configPath), cfg.stateDir) || '.modelroom';
179
+ await mkdir(dirname(configPath), { recursive: true });
180
+ const template = await readFile(join(templatesDir, 'modelroom.json'), 'utf8');
181
+ let text = template.replaceAll('{{rooms}}', cfg.rooms).replaceAll('{{state}}', stateRel);
182
+ // Auto is the default: no `lang` line unless the caller pinned one.
183
+ text = pinned
184
+ ? text.replaceAll('{{lang}}', lang)
185
+ : text.replace(/^[ \t]*"lang": "\{\{lang\}\}",\r?\n/m, '');
186
+ await writeFile(configPath, text);
187
+ written.push(rel(configPath, cwd));
188
+ }
189
+ else {
190
+ // An existing project keeps its config; explicit flags update only what they name.
191
+ const raw = JSON.parse(await readFile(configPath, 'utf8'));
192
+ let changed = false;
193
+ if (isLang(opts.lang) && raw.lang !== lang) {
194
+ raw.lang = lang;
195
+ changed = true;
196
+ }
197
+ if (str(opts.dir) && raw.rooms !== cfg.rooms) {
198
+ raw.rooms = cfg.rooms;
199
+ changed = true;
200
+ }
201
+ if (changed) {
202
+ await writeFile(configPath, JSON.stringify(raw, null, 2) + '\n');
203
+ written.push(rel(configPath, cwd));
204
+ }
205
+ }
206
+ for (const f of ROOM_FILES) {
114
207
  const dest = join(roomDir, f);
115
208
  if (!force && (await exists(dest))) {
116
- console.log(`skip ${rel(dest, cwd)} (exists)`);
209
+ console.log(t(lang, 'cli.init.skip', { label: rel(dest, cwd) }));
117
210
  continue;
118
211
  }
119
- const src = await readFile(join(templatesDir, 'room', f), 'utf8');
212
+ const src = await readTemplate(templatesDir, lang, join('room', f));
120
213
  await writeFile(dest, src.replaceAll('{{room}}', room));
121
214
  written.push(rel(dest, cwd));
122
215
  }
123
- for (const [tpl, dest, label] of [
124
- ['modelroom.json', join(cwd, 'modelroom.json'), 'modelroom.json'],
125
- ['AGENTS.md', join(cwd, 'AGENTS.md'), 'AGENTS.md'],
126
- ]) {
127
- if (!force && (await exists(dest))) {
128
- console.log(`skip ${label} (exists)`);
129
- continue;
130
- }
131
- await writeFile(dest, await readFile(join(templatesDir, tpl), 'utf8'));
132
- written.push(label);
216
+ const agentsDest = join(cfg.rootDir, 'AGENTS.md');
217
+ if (!force && (await exists(agentsDest))) {
218
+ console.log(t(lang, 'cli.init.skip', { label: rel(agentsDest, cwd) }));
219
+ }
220
+ else {
221
+ await writeFile(agentsDest, await readTemplate(templatesDir, lang, 'AGENTS.md'));
222
+ written.push(rel(agentsDest, cwd));
133
223
  }
134
- const gi = join(cwd, '.gitignore');
224
+ const giDir = dirname(cfg.stateDir);
225
+ const gi = join(giDir, '.gitignore');
226
+ const stateName = relative(giDir, cfg.stateDir) || basename(cfg.stateDir);
227
+ const entry = `/${stateName.replaceAll('\\', '/')}/`;
135
228
  const lines = await readFile(gi, 'utf8').catch(() => '');
136
- if (!lines.includes('.modelroom')) {
137
- await writeFile(gi, (lines ? lines.replace(/\n?$/, '\n') : '') + '.modelroom/\n');
138
- written.push('.gitignore (+ .modelroom/)');
229
+ if (!lines.includes(entry)) {
230
+ await mkdir(giDir, { recursive: true });
231
+ await writeFile(gi, (lines ? lines.replace(/\n?$/, '\n') : '') + entry + '\n');
232
+ written.push(t(lang, 'cli.init.gitignore', { path: entry }));
139
233
  }
140
- console.log(`created in ${cwd}:`);
234
+ console.log(t(lang, 'cli.init.created', { dir: cwd }));
141
235
  for (const w of written)
142
236
  console.log(` ${w}`);
143
- console.log(`\nnext\n npx modelroom\n open http://127.0.0.1:${cfg.port}/room/${room}`);
237
+ console.log(t(lang, 'cli.init.language', {
238
+ lang,
239
+ source: t(lang, `cli.init.languageSource.${langSource}`),
240
+ }));
241
+ if (langSource === 'env' || langSource === 'default') {
242
+ console.log(` ${t(lang, 'cli.init.languageAuto')}`);
243
+ }
244
+ console.log(`\n${t(lang, 'cli.init.next')}`);
245
+ console.log(t(lang, 'cli.init.nextServe'));
246
+ console.log(t(lang, 'cli.init.nextOpen', { port: cfg.port, room }));
144
247
  }
145
248
  // ── check ───────────────────────────────────────────────────────────────────
146
249
  // The record is derived from the docs; the check looks for what would stop the
@@ -148,65 +251,127 @@ else if (cmd === 'init') {
148
251
  // the same value spelled two ways. It never deletes or rewrites.
149
252
  else if (cmd === 'check') {
150
253
  const cfg = await loadConfig(cwd);
151
- const { issues, stats } = await lintRooms(cfg);
254
+ const lang = isLang(opts.lang) ? opts.lang : cfg.lang;
255
+ const { issues, stats } = await lintRooms({ ...cfg, lang });
152
256
  if (opts.json) {
153
257
  console.log(JSON.stringify({ stats, issues }, null, 2));
154
258
  }
155
259
  else {
156
260
  for (const i of issues) {
157
261
  const where = `${i.room}${i.file ? '/' + i.file : ''}`;
158
- console.log(`${i.level === 'error' ? 'FAIL' : 'warn'} ${where} ${i.code} ${i.message}`);
262
+ console.log(t(lang, 'cli.check.issue', {
263
+ level: t(lang, i.level === 'error' ? 'cli.check.level.error' : 'cli.check.level.warn'),
264
+ where,
265
+ code: i.code,
266
+ message: i.message,
267
+ }));
159
268
  }
160
- console.log(`\n${stats.rooms} room(s), ${stats.errors} error(s), ${stats.warnings} warning(s)`);
269
+ console.log(`\n${t(lang, 'cli.check.summary', {
270
+ rooms: stats.rooms,
271
+ errors: stats.errors,
272
+ warnings: stats.warnings,
273
+ })}`);
161
274
  }
162
275
  process.exit(stats.errors || (opts.strict && stats.warnings) ? 1 : 0);
163
276
  }
164
277
  // ── doctor ──────────────────────────────────────────────────────────────────
165
278
  else if (cmd === 'doctor') {
166
279
  const cfg = await loadConfig(cwd);
280
+ const lang = isLang(opts.lang) ? opts.lang : cfg.lang;
167
281
  const checks = [];
168
282
  const nodeMajor = Number(process.versions.node.split('.')[0]);
169
- checks.push([nodeMajor >= 22, `node ${process.versions.node} (needs >= 22.18)`]);
170
- checks.push([await exists(cfg.rootDir), `root exists: ${cfg.rootDir}`]);
171
- checks.push([await exists(cfg.roomsDir), `rooms dir exists: ${rel(cfg.roomsDir, cwd)}`]);
283
+ checks.push({
284
+ ok: nodeMajor >= 22,
285
+ label: t(lang, 'cli.doctor.node', { version: process.versions.node }),
286
+ });
287
+ checks.push({
288
+ ok: await exists(cfg.rootDir),
289
+ label: t(lang, 'cli.doctor.root', { path: cfg.rootDir }),
290
+ });
291
+ checks.push({
292
+ ok: await exists(cfg.roomsDir),
293
+ label: t(lang, 'cli.doctor.roomsDir', { path: rel(cfg.roomsDir, cwd) }),
294
+ });
172
295
  const rooms = await listRoomNames(cfg);
173
- checks.push([rooms.length > 0, `rooms found: ${rooms.length ? rooms.join(', ') : 'none'}`]);
174
- checks.push([
175
- await exists(cfg.configPath),
176
- `config: ${(await exists(cfg.configPath)) ? 'modelroom.json' : 'modelroom.json (defaults in use)'}`,
177
- ]);
296
+ checks.push({
297
+ ok: rooms.length > 0,
298
+ label: t(lang, rooms.length ? 'cli.doctor.rooms' : 'cli.doctor.roomsNone', {
299
+ rooms: rooms.join(', '),
300
+ }),
301
+ });
302
+ const configFound = await exists(cfg.configPath);
303
+ checks.push({
304
+ ok: configFound,
305
+ label: t(lang, configFound ? 'cli.doctor.config' : 'cli.doctor.configDefaults', {
306
+ path: rel(cfg.configPath, cwd),
307
+ }),
308
+ });
309
+ checks.push({
310
+ ok: true,
311
+ label: t(lang, 'cli.doctor.state', { path: rel(cfg.stateDir, cwd) }),
312
+ });
313
+ checks.push({ ok: true, label: t(lang, 'cli.doctor.lang', { lang }) });
314
+ const agentsPath = join(cfg.rootDir, 'AGENTS.md');
315
+ checks.push({
316
+ ok: await exists(agentsPath),
317
+ label: t(lang, (await exists(agentsPath)) ? 'cli.doctor.agents' : 'cli.doctor.agentsMissing', {
318
+ path: rel(agentsPath, cwd),
319
+ }),
320
+ optional: true,
321
+ });
322
+ if ((await exists(join(cwd, 'modelroom.json'))) &&
323
+ (await exists(join(cwd, 'modelroom', 'modelroom.json')))) {
324
+ checks.push({
325
+ ok: false,
326
+ label: t(lang, 'cli.doctor.bothConfigs'),
327
+ optional: true,
328
+ });
329
+ }
178
330
  const onPath = await which(cfg.agent.command);
179
- checks.push([
180
- Boolean(onPath),
181
- `agent command on PATH: ${cfg.agent.command}${onPath ? '' : ' (not found — the chat will fail)'}`,
182
- ]);
331
+ checks.push({
332
+ ok: Boolean(onPath),
333
+ label: t(lang, onPath ? 'cli.doctor.agentPath' : 'cli.doctor.agentMissing', {
334
+ command: cfg.agent.command,
335
+ }),
336
+ });
183
337
  const { playwrightAvailable } = await import('../lib/artifact.js');
184
338
  const pw = await playwrightAvailable();
185
- checks.push([pw, `png rendering (playwright): ${pw ? 'available' : 'not installed (optional)'}`]);
339
+ checks.push({
340
+ ok: pw,
341
+ label: t(lang, pw ? 'cli.doctor.playwright' : 'cli.doctor.playwrightMissing'),
342
+ optional: !pw,
343
+ });
186
344
  for (const room of rooms) {
187
345
  const missing = [];
188
346
  for (const d of cfg.docs)
189
347
  if (!(await exists(join(cfg.roomsDir, room, d))))
190
348
  missing.push(d);
191
349
  const hasArtifact = await exists(join(cfg.roomsDir, room, cfg.artifact));
192
- checks.push([
193
- missing.length === 0 && hasArtifact,
194
- `room ${room}: ${missing.length ? 'missing ' + missing.join(', ') : 'docs ok'}${hasArtifact ? '' : `, no ${cfg.artifact}`}`,
195
- ]);
350
+ checks.push({
351
+ ok: missing.length === 0 && hasArtifact,
352
+ label: t(lang, 'cli.doctor.room', {
353
+ room,
354
+ detail: t(lang, missing.length ? 'cli.doctor.roomMissing' : 'cli.doctor.roomDocsOk', {
355
+ docs: missing.join(', '),
356
+ }) + (hasArtifact ? '' : t(lang, 'cli.doctor.noArtifact', { artifact: cfg.artifact })),
357
+ }),
358
+ });
196
359
  }
197
360
  let bad = 0;
198
- for (const [ok, label] of checks) {
199
- if (!ok)
361
+ for (const check of checks) {
362
+ if (!check.ok)
200
363
  bad++;
201
- console.log(`${ok ? 'ok ' : 'FAIL'} ${label}`);
364
+ console.log(`${check.ok ? 'ok ' : 'FAIL'} ${check.label}`);
202
365
  }
203
- const onlyOptional = checks.every(([ok, label]) => ok || label.includes('optional'));
204
- console.log(bad ? `\n${bad} problem(s)${onlyOptional ? ' (optional)' : ''}` : '\nall good');
366
+ const onlyOptional = checks.every((check) => check.ok || check.optional);
367
+ console.log(bad
368
+ ? `\n${t(lang, 'cli.doctor.problems', { count: bad })}${onlyOptional ? t(lang, 'cli.doctor.optional') : ''}`
369
+ : `\n${t(lang, 'cli.doctor.allGood')}`);
205
370
  process.exit(bad && !onlyOptional ? 1 : 0);
206
371
  }
207
372
  else {
208
- console.error(`unknown command: ${cmd}\n`);
209
- usage();
373
+ console.error(t(earlyLang, 'cli.error.unknownCommand', { cmd }) + '\n');
374
+ usage(earlyLang);
210
375
  }
211
376
  // ── helpers ─────────────────────────────────────────────────────────────────
212
377
  async function exists(p) {
@@ -219,7 +384,8 @@ async function exists(p) {
219
384
  }
220
385
  }
221
386
  function rel(p, base) {
222
- return p.startsWith(base) ? p.slice(base.length + 1) : p;
387
+ const value = relative(base, p);
388
+ return value || '.';
223
389
  }
224
390
  async function which(bin) {
225
391
  if (!bin)
@@ -1 +1 @@
1
- {"version":3,"file":"modelroom.js","sourceRoot":"","sources":["../../bin/modelroom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modelroom.js","sourceRoot":"","sources":["../../bin/modelroom.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/agents/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B;;;;OAIG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB,GAAG,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,YAAY,CAAC;CAC5C;AAID,eAAO,MAAM,SAAS,MAAO,MAAM,KAAG,MAAoC,CAAC;AAyC3E,eAAO,MAAM,QAAQ,EAAE,OAatB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,OAYrB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAyB,CAAC;AACvE,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,OAAqC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/agents/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzC,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B;;;;OAIG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB,GAAG,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,YAAY,CAAC;CAC5C;AAID,eAAO,MAAM,SAAS,MAAO,MAAM,KAAG,MAAoC,CAAC;AA6C3E,eAAO,MAAM,QAAQ,EAAE,OAoBtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,OAmBrB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAyB,CAAC;AACvE,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,OAAqC,CAAC"}