ugly-app 0.1.127 → 0.1.129

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.
@@ -1,5 +1,6 @@
1
1
  export declare function runImageGen(prompt: string, opts: {
2
2
  model?: string;
3
3
  output?: string;
4
+ aspectRatio?: string;
4
5
  }): Promise<void>;
5
6
  //# sourceMappingURL=imageGen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"imageGen.d.ts","sourceRoot":"","sources":["../../src/cli/imageGen.ts"],"names":[],"mappings":"AA0BA,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;IACJ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAAC,IAAI,CAAC,CAuEf"}
1
+ {"version":3,"file":"imageGen.d.ts","sourceRoot":"","sources":["../../src/cli/imageGen.ts"],"names":[],"mappings":"AA0BA,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;IACJ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,OAAO,CAAC,IAAI,CAAC,CA6Ef"}
@@ -10,6 +10,13 @@ function readAuth() {
10
10
  }
11
11
  export async function runImageGen(prompt, opts) {
12
12
  const auth = readAuth();
13
+ const input = {
14
+ model: opts.model ?? 'flux_1_schnell',
15
+ prompt,
16
+ };
17
+ if (opts.aspectRatio) {
18
+ input.options = { aspectRatio: opts.aspectRatio };
19
+ }
13
20
  const res = await fetch(`${auth.serverUrl}/request`, {
14
21
  method: 'POST',
15
22
  headers: {
@@ -18,10 +25,7 @@ export async function runImageGen(prompt, opts) {
18
25
  },
19
26
  body: JSON.stringify({
20
27
  op: 'imageGen',
21
- input: {
22
- model: opts.model ?? 'flux_1_schnell',
23
- prompt,
24
- },
28
+ input,
25
29
  sessionId: 'cli',
26
30
  }),
27
31
  });
@@ -1 +1 @@
1
- {"version":3,"file":"imageGen.js","sourceRoot":"","sources":["../../src/cli/imageGen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imageGen.js","sourceRoot":"","sources":["../../src/cli/imageGen.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -169,27 +169,16 @@ program
169
169
  }
170
170
  });
171
171
  program
172
- .command('logs:local')
173
- .description('Show local dev logs from JSONL files')
174
- .option('--source <source>', 'Filter by source: browser or server')
175
- .option('--level <level>', 'Filter by level: error, warn, info, log, debug')
176
- .option('--pattern <pattern>', 'Filter by regex pattern')
177
- .option('--since <since>', 'Show logs from last duration (5m, 1h, 2d)', '1d')
172
+ .command('error:local')
173
+ .description('Query error logs from local MongoDB (errorLog collection)')
178
174
  .option('--limit <n>', 'Max entries to show', '50')
179
- .option('--category <category>', 'Filter by [CATEGORY] prefix')
180
- .option('--tail', 'Follow mode - stream new entries as they arrive')
181
175
  .option('--json', 'Output as JSON')
182
176
  .action(async (opts) => {
183
177
  try {
184
- const { queryLocalLogs } = await import('./logQuery.js');
185
- await queryLocalLogs({
186
- source: opts.source,
187
- level: opts.level,
188
- pattern: opts.pattern,
189
- since: opts.since,
178
+ const { queryServerLogs } = await import('./serverLogQuery.js');
179
+ await queryServerLogs('errorLog', {
180
+ envFile: '.env',
190
181
  limit: opts.limit ? parseInt(opts.limit, 10) : 50,
191
- category: opts.category,
192
- tail: opts.tail,
193
182
  json: opts.json,
194
183
  });
195
184
  }
@@ -199,16 +188,15 @@ program
199
188
  }
200
189
  });
201
190
  program
202
- .command('logs:server')
203
- .description('Query server logs from MongoDB')
204
- .option('--level <level>', 'Filter by level: error, warn, info, log, debug')
191
+ .command('error:server')
192
+ .description('Query error logs from production MongoDB (errorLog collection)')
205
193
  .option('--limit <n>', 'Max entries to show', '50')
206
194
  .option('--json', 'Output as JSON')
207
195
  .action(async (opts) => {
208
196
  try {
209
197
  const { queryServerLogs } = await import('./serverLogQuery.js');
210
- await queryServerLogs('consoleLog', {
211
- level: opts.level,
198
+ await queryServerLogs('errorLog', {
199
+ envFile: '.env.prod',
212
200
  limit: opts.limit ? parseInt(opts.limit, 10) : 50,
213
201
  json: opts.json,
214
202
  });
@@ -219,26 +207,16 @@ program
219
207
  }
220
208
  });
221
209
  program
222
- .command('error:local')
223
- .description('Query local error logs (level=error)')
224
- .option('--source <source>', 'Filter by source: browser or server')
225
- .option('--pattern <pattern>', 'Filter by regex pattern')
226
- .option('--since <since>', 'Show logs from last duration (5m, 1h, 2d)', '1d')
210
+ .command('perf:local')
211
+ .description('Query performance metrics from local MongoDB (perfLog collection)')
227
212
  .option('--limit <n>', 'Max entries to show', '50')
228
- .option('--category <category>', 'Filter by [CATEGORY] prefix')
229
- .option('--tail', 'Follow mode - stream new entries as they arrive')
230
213
  .option('--json', 'Output as JSON')
231
214
  .action(async (opts) => {
232
215
  try {
233
- const { queryLocalLogs } = await import('./logQuery.js');
234
- await queryLocalLogs({
235
- source: opts.source,
236
- level: 'error',
237
- pattern: opts.pattern,
238
- since: opts.since,
216
+ const { queryServerLogs } = await import('./serverLogQuery.js');
217
+ await queryServerLogs('perfLog', {
218
+ envFile: '.env',
239
219
  limit: opts.limit ? parseInt(opts.limit, 10) : 50,
240
- category: opts.category,
241
- tail: opts.tail,
242
220
  json: opts.json,
243
221
  });
244
222
  }
@@ -248,15 +226,15 @@ program
248
226
  }
249
227
  });
250
228
  program
251
- .command('error:server')
252
- .description('Query server error logs from MongoDB (errorLog collection)')
229
+ .command('perf:server')
230
+ .description('Query performance metrics from production MongoDB (perfLog collection)')
253
231
  .option('--limit <n>', 'Max entries to show', '50')
254
232
  .option('--json', 'Output as JSON')
255
233
  .action(async (opts) => {
256
234
  try {
257
235
  const { queryServerLogs } = await import('./serverLogQuery.js');
258
- await queryServerLogs('errorLog', {
259
- level: 'error',
236
+ await queryServerLogs('perfLog', {
237
+ envFile: '.env.prod',
260
238
  limit: opts.limit ? parseInt(opts.limit, 10) : 50,
261
239
  json: opts.json,
262
240
  });
@@ -267,22 +245,16 @@ program
267
245
  }
268
246
  });
269
247
  program
270
- .command('perf:local')
271
- .description('Query local performance logs (category=PERF)')
272
- .option('--source <source>', 'Filter by source: browser or server')
273
- .option('--since <since>', 'Show logs from last duration (5m, 1h, 2d)', '1d')
248
+ .command('feedback:local')
249
+ .description('Query feedback submissions from local MongoDB (feedbackReport collection)')
274
250
  .option('--limit <n>', 'Max entries to show', '50')
275
- .option('--tail', 'Follow mode - stream new entries as they arrive')
276
251
  .option('--json', 'Output as JSON')
277
252
  .action(async (opts) => {
278
253
  try {
279
- const { queryLocalLogs } = await import('./logQuery.js');
280
- await queryLocalLogs({
281
- source: opts.source,
282
- category: 'PERF',
283
- since: opts.since,
254
+ const { queryServerLogs } = await import('./serverLogQuery.js');
255
+ await queryServerLogs('feedbackReport', {
256
+ envFile: '.env',
284
257
  limit: opts.limit ? parseInt(opts.limit, 10) : 50,
285
- tail: opts.tail,
286
258
  json: opts.json,
287
259
  });
288
260
  }
@@ -292,14 +264,15 @@ program
292
264
  }
293
265
  });
294
266
  program
295
- .command('perf:server')
296
- .description('Query server performance metrics from MongoDB (perfLog collection)')
267
+ .command('feedback:server')
268
+ .description('Query feedback submissions from production MongoDB (feedbackReport collection)')
297
269
  .option('--limit <n>', 'Max entries to show', '50')
298
270
  .option('--json', 'Output as JSON')
299
271
  .action(async (opts) => {
300
272
  try {
301
273
  const { queryServerLogs } = await import('./serverLogQuery.js');
302
- await queryServerLogs('perfLog', {
274
+ await queryServerLogs('feedbackReport', {
275
+ envFile: '.env.prod',
303
276
  limit: opts.limit ? parseInt(opts.limit, 10) : 50,
304
277
  json: opts.json,
305
278
  });
@@ -310,15 +283,27 @@ program
310
283
  }
311
284
  });
312
285
  program
313
- .command('feedback')
314
- .description('Query feedback submissions from MongoDB (feedbackReport collection)')
286
+ .command('dev-logs')
287
+ .description('Show local dev logs from JSONL files')
288
+ .option('--source <source>', 'Filter by source: browser or server')
289
+ .option('--level <level>', 'Filter by level: error, warn, info, log, debug')
290
+ .option('--pattern <pattern>', 'Filter by regex pattern')
291
+ .option('--since <since>', 'Show logs from last duration (5m, 1h, 2d)', '1d')
315
292
  .option('--limit <n>', 'Max entries to show', '50')
293
+ .option('--category <category>', 'Filter by [CATEGORY] prefix')
294
+ .option('--tail', 'Follow mode - stream new entries as they arrive')
316
295
  .option('--json', 'Output as JSON')
317
296
  .action(async (opts) => {
318
297
  try {
319
- const { queryServerLogs } = await import('./serverLogQuery.js');
320
- await queryServerLogs('feedbackReport', {
298
+ const { queryLocalLogs } = await import('./logQuery.js');
299
+ await queryLocalLogs({
300
+ source: opts.source,
301
+ level: opts.level,
302
+ pattern: opts.pattern,
303
+ since: opts.since,
321
304
  limit: opts.limit ? parseInt(opts.limit, 10) : 50,
305
+ category: opts.category,
306
+ tail: opts.tail,
322
307
  json: opts.json,
323
308
  });
324
309
  }
@@ -427,6 +412,7 @@ program
427
412
  .description('Generate an image using AI (requires ugly-app login)')
428
413
  .option('--prompt <prompt>', 'Image prompt (alternative to positional arg)')
429
414
  .option('--model <model>', 'Model to use (default: flux_1_schnell)')
415
+ .option('--aspect-ratio <size>', 'Aspect ratio: square, portrait_4_3, portrait_16_9, portrait_21_9, landscape_4_3, landscape_16_9, landscape_21_9')
430
416
  .option('--output <path>', 'Save image to file instead of printing URL')
431
417
  .action(async (positionalPrompt, opts) => {
432
418
  const prompt = positionalPrompt || opts?.prompt;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- export declare function queryServerLogs(collection: 'errorLog' | 'consoleLog' | 'perfLog' | 'feedbackReport', options?: {
1
+ export declare function queryServerLogs(collection: 'errorLog' | 'perfLog' | 'feedbackReport', options: {
2
+ envFile: string;
2
3
  limit?: number;
3
4
  level?: string;
4
5
  json?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"serverLogQuery.d.ts","sourceRoot":"","sources":["../../src/cli/serverLogQuery.ts"],"names":[],"mappings":"AAuCA,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,GAAG,YAAY,GAAG,SAAS,GAAG,gBAAgB,EACpE,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/D,OAAO,CAAC,IAAI,CAAC,CAyCf"}
1
+ {"version":3,"file":"serverLogQuery.d.ts","sourceRoot":"","sources":["../../src/cli/serverLogQuery.ts"],"names":[],"mappings":"AA8DA,wBAAsB,eAAe,CACnC,UAAU,EAAE,UAAU,GAAG,SAAS,GAAG,gBAAgB,EACrD,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3E,OAAO,CAAC,IAAI,CAAC,CAuCf"}
@@ -1,12 +1,10 @@
1
1
  import { MongoClient } from 'mongodb';
2
2
  import fs from 'node:fs/promises';
3
3
  import path from 'node:path';
4
- async function getMongoUri() {
5
- // Try environment variable first
6
- if (process.env['MONGODB_URI'])
7
- return process.env['MONGODB_URI'];
8
- // Try to read from .env file in cwd
9
- const envPath = path.join(process.cwd(), '.env');
4
+ import { computeEnvVars, readUglyAppConfig } from './uglyappConfig.js';
5
+ /** Try to read MONGODB_URI from an env file. Returns null if not found. */
6
+ async function readUriFromEnvFile(envFile) {
7
+ const envPath = path.join(process.cwd(), envFile);
10
8
  try {
11
9
  const content = await fs.readFile(envPath, 'utf-8');
12
10
  for (const line of content.split('\n')) {
@@ -16,9 +14,32 @@ async function getMongoUri() {
16
14
  }
17
15
  }
18
16
  catch {
19
- // No .env file
17
+ // File doesn't exist or isn't readable
20
18
  }
21
- return 'mongodb://localhost:27017/app';
19
+ return null;
20
+ }
21
+ /** Derive MONGODB_URI from .uglyapp config (port-offset-based local Docker). */
22
+ function readUriFromUglyAppConfig() {
23
+ const config = readUglyAppConfig(process.cwd());
24
+ if (!config)
25
+ return null;
26
+ const envVars = computeEnvVars(config);
27
+ return envVars.MONGODB_URI ?? null;
28
+ }
29
+ async function getMongoUri(envFile) {
30
+ // 1. Try the specified env file
31
+ const fromEnv = await readUriFromEnvFile(envFile);
32
+ if (fromEnv)
33
+ return fromEnv;
34
+ // 2. For local (.env), fall back to .uglyapp config or default
35
+ if (envFile === '.env') {
36
+ const fromConfig = readUriFromUglyAppConfig();
37
+ if (fromConfig)
38
+ return fromConfig;
39
+ return 'mongodb://localhost:27017/app';
40
+ }
41
+ // 3. For server (.env.prod), no fallback — fail
42
+ throw new Error(`MONGODB_URI not found in ${envFile}. Add MONGODB_URI=<your-uri> to ${envFile}.`);
22
43
  }
23
44
  function formatDoc(doc) {
24
45
  const ts = doc['created'] instanceof Date
@@ -34,14 +55,13 @@ function formatDoc(doc) {
34
55
  : '';
35
56
  return `${ts} ${level} ${message}${meta}${stack}`;
36
57
  }
37
- export async function queryServerLogs(collection, options = {}) {
58
+ export async function queryServerLogs(collection, options) {
38
59
  const limit = options.limit ?? 50;
39
- const uri = await getMongoUri();
60
+ const uri = await getMongoUri(options.envFile);
40
61
  let client = null;
41
62
  try {
42
63
  client = new MongoClient(uri);
43
64
  await client.connect();
44
- // Extract database name from URI or use default
45
65
  const dbName = uri.split('/').pop()?.split('?')[0] || 'main';
46
66
  const db = client.db(dbName);
47
67
  const col = db.collection(collection);
@@ -53,7 +73,6 @@ export async function queryServerLogs(collection, options = {}) {
53
73
  .sort({ created: -1 })
54
74
  .limit(limit)
55
75
  .toArray();
56
- // Reverse to show oldest first
57
76
  docs.reverse();
58
77
  if (docs.length === 0) {
59
78
  console.log(`No entries found in ${collection}.`);
@@ -1 +1 @@
1
- {"version":3,"file":"serverLogQuery.js","sourceRoot":"","sources":["../../src/cli/serverLogQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serverLogQuery.js","sourceRoot":"","sources":["../../src/cli/serverLogQuery.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const CLI_VERSION = "0.1.127";
1
+ export declare const CLI_VERSION = "0.1.129";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.127";
2
+ export const CLI_VERSION = "0.1.129";
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ugly-app",
3
- "version": "0.1.127",
3
+ "version": "0.1.129",
4
4
  "type": "module",
5
5
  "main": "./dist/server/index.js",
6
6
  "exports": {
@@ -29,10 +29,20 @@ export async function runImageGen(
29
29
  opts: {
30
30
  model?: string;
31
31
  output?: string;
32
+ aspectRatio?: string;
32
33
  },
33
34
  ): Promise<void> {
34
35
  const auth = readAuth();
35
36
 
37
+ const input: Record<string, unknown> = {
38
+ model: opts.model ?? 'flux_1_schnell',
39
+ prompt,
40
+ };
41
+
42
+ if (opts.aspectRatio) {
43
+ input.options = { aspectRatio: opts.aspectRatio };
44
+ }
45
+
36
46
  const res = await fetch(`${auth.serverUrl}/request`, {
37
47
  method: 'POST',
38
48
  headers: {
@@ -41,10 +51,7 @@ export async function runImageGen(
41
51
  },
42
52
  body: JSON.stringify({
43
53
  op: 'imageGen',
44
- input: {
45
- model: opts.model ?? 'flux_1_schnell',
46
- prompt,
47
- },
54
+ input,
48
55
  sessionId: 'cli',
49
56
  }),
50
57
  });
package/src/cli/index.ts CHANGED
@@ -182,57 +182,15 @@ program
182
182
  });
183
183
 
184
184
  program
185
- .command('logs:local')
186
- .description('Show local dev logs from JSONL files')
187
- .option('--source <source>', 'Filter by source: browser or server')
188
- .option('--level <level>', 'Filter by level: error, warn, info, log, debug')
189
- .option('--pattern <pattern>', 'Filter by regex pattern')
190
- .option('--since <since>', 'Show logs from last duration (5m, 1h, 2d)', '1d')
191
- .option('--limit <n>', 'Max entries to show', '50')
192
- .option('--category <category>', 'Filter by [CATEGORY] prefix')
193
- .option('--tail', 'Follow mode - stream new entries as they arrive')
194
- .option('--json', 'Output as JSON')
195
- .action(
196
- async (opts: {
197
- source?: string;
198
- level?: string;
199
- pattern?: string;
200
- since?: string;
201
- limit?: string;
202
- category?: string;
203
- tail?: boolean;
204
- json?: boolean;
205
- }) => {
206
- try {
207
- const { queryLocalLogs } = await import('./logQuery.js');
208
- await queryLocalLogs({
209
- source: opts.source as 'browser' | 'server' | undefined,
210
- level: opts.level,
211
- pattern: opts.pattern,
212
- since: opts.since,
213
- limit: opts.limit ? parseInt(opts.limit, 10) : 50,
214
- category: opts.category,
215
- tail: opts.tail,
216
- json: opts.json,
217
- });
218
- } catch (e) {
219
- console.error((e as Error).message);
220
- process.exit(1);
221
- }
222
- },
223
- );
224
-
225
- program
226
- .command('logs:server')
227
- .description('Query server logs from MongoDB')
228
- .option('--level <level>', 'Filter by level: error, warn, info, log, debug')
185
+ .command('error:local')
186
+ .description('Query error logs from local MongoDB (errorLog collection)')
229
187
  .option('--limit <n>', 'Max entries to show', '50')
230
188
  .option('--json', 'Output as JSON')
231
- .action(async (opts: { level?: string; limit?: string; json?: boolean }) => {
189
+ .action(async (opts: { limit?: string; json?: boolean }) => {
232
190
  try {
233
191
  const { queryServerLogs } = await import('./serverLogQuery.js');
234
- await queryServerLogs('consoleLog', {
235
- level: opts.level,
192
+ await queryServerLogs('errorLog', {
193
+ envFile: '.env',
236
194
  limit: opts.limit ? parseInt(opts.limit, 10) : 50,
237
195
  json: opts.json,
238
196
  });
@@ -242,55 +200,16 @@ program
242
200
  }
243
201
  });
244
202
 
245
- program
246
- .command('error:local')
247
- .description('Query local error logs (level=error)')
248
- .option('--source <source>', 'Filter by source: browser or server')
249
- .option('--pattern <pattern>', 'Filter by regex pattern')
250
- .option('--since <since>', 'Show logs from last duration (5m, 1h, 2d)', '1d')
251
- .option('--limit <n>', 'Max entries to show', '50')
252
- .option('--category <category>', 'Filter by [CATEGORY] prefix')
253
- .option('--tail', 'Follow mode - stream new entries as they arrive')
254
- .option('--json', 'Output as JSON')
255
- .action(
256
- async (opts: {
257
- source?: string;
258
- pattern?: string;
259
- since?: string;
260
- limit?: string;
261
- category?: string;
262
- tail?: boolean;
263
- json?: boolean;
264
- }) => {
265
- try {
266
- const { queryLocalLogs } = await import('./logQuery.js');
267
- await queryLocalLogs({
268
- source: opts.source as 'browser' | 'server' | undefined,
269
- level: 'error',
270
- pattern: opts.pattern,
271
- since: opts.since,
272
- limit: opts.limit ? parseInt(opts.limit, 10) : 50,
273
- category: opts.category,
274
- tail: opts.tail,
275
- json: opts.json,
276
- });
277
- } catch (e) {
278
- console.error((e as Error).message);
279
- process.exit(1);
280
- }
281
- },
282
- );
283
-
284
203
  program
285
204
  .command('error:server')
286
- .description('Query server error logs from MongoDB (errorLog collection)')
205
+ .description('Query error logs from production MongoDB (errorLog collection)')
287
206
  .option('--limit <n>', 'Max entries to show', '50')
288
207
  .option('--json', 'Output as JSON')
289
208
  .action(async (opts: { limit?: string; json?: boolean }) => {
290
209
  try {
291
210
  const { queryServerLogs } = await import('./serverLogQuery.js');
292
211
  await queryServerLogs('errorLog', {
293
- level: 'error',
212
+ envFile: '.env.prod',
294
213
  limit: opts.limit ? parseInt(opts.limit, 10) : 50,
295
214
  json: opts.json,
296
215
  });
@@ -302,48 +221,33 @@ program
302
221
 
303
222
  program
304
223
  .command('perf:local')
305
- .description('Query local performance logs (category=PERF)')
306
- .option('--source <source>', 'Filter by source: browser or server')
307
- .option('--since <since>', 'Show logs from last duration (5m, 1h, 2d)', '1d')
224
+ .description('Query performance metrics from local MongoDB (perfLog collection)')
308
225
  .option('--limit <n>', 'Max entries to show', '50')
309
- .option('--tail', 'Follow mode - stream new entries as they arrive')
310
226
  .option('--json', 'Output as JSON')
311
- .action(
312
- async (opts: {
313
- source?: string;
314
- since?: string;
315
- limit?: string;
316
- tail?: boolean;
317
- json?: boolean;
318
- }) => {
319
- try {
320
- const { queryLocalLogs } = await import('./logQuery.js');
321
- await queryLocalLogs({
322
- source: opts.source as 'browser' | 'server' | undefined,
323
- category: 'PERF',
324
- since: opts.since,
325
- limit: opts.limit ? parseInt(opts.limit, 10) : 50,
326
- tail: opts.tail,
327
- json: opts.json,
328
- });
329
- } catch (e) {
330
- console.error((e as Error).message);
331
- process.exit(1);
332
- }
333
- },
334
- );
227
+ .action(async (opts: { limit?: string; json?: boolean }) => {
228
+ try {
229
+ const { queryServerLogs } = await import('./serverLogQuery.js');
230
+ await queryServerLogs('perfLog', {
231
+ envFile: '.env',
232
+ limit: opts.limit ? parseInt(opts.limit, 10) : 50,
233
+ json: opts.json,
234
+ });
235
+ } catch (e) {
236
+ console.error((e as Error).message);
237
+ process.exit(1);
238
+ }
239
+ });
335
240
 
336
241
  program
337
242
  .command('perf:server')
338
- .description(
339
- 'Query server performance metrics from MongoDB (perfLog collection)',
340
- )
243
+ .description('Query performance metrics from production MongoDB (perfLog collection)')
341
244
  .option('--limit <n>', 'Max entries to show', '50')
342
245
  .option('--json', 'Output as JSON')
343
246
  .action(async (opts: { limit?: string; json?: boolean }) => {
344
247
  try {
345
248
  const { queryServerLogs } = await import('./serverLogQuery.js');
346
249
  await queryServerLogs('perfLog', {
250
+ envFile: '.env.prod',
347
251
  limit: opts.limit ? parseInt(opts.limit, 10) : 50,
348
252
  json: opts.json,
349
253
  });
@@ -354,16 +258,34 @@ program
354
258
  });
355
259
 
356
260
  program
357
- .command('feedback')
358
- .description(
359
- 'Query feedback submissions from MongoDB (feedbackReport collection)',
360
- )
261
+ .command('feedback:local')
262
+ .description('Query feedback submissions from local MongoDB (feedbackReport collection)')
263
+ .option('--limit <n>', 'Max entries to show', '50')
264
+ .option('--json', 'Output as JSON')
265
+ .action(async (opts: { limit?: string; json?: boolean }) => {
266
+ try {
267
+ const { queryServerLogs } = await import('./serverLogQuery.js');
268
+ await queryServerLogs('feedbackReport', {
269
+ envFile: '.env',
270
+ limit: opts.limit ? parseInt(opts.limit, 10) : 50,
271
+ json: opts.json,
272
+ });
273
+ } catch (e) {
274
+ console.error((e as Error).message);
275
+ process.exit(1);
276
+ }
277
+ });
278
+
279
+ program
280
+ .command('feedback:server')
281
+ .description('Query feedback submissions from production MongoDB (feedbackReport collection)')
361
282
  .option('--limit <n>', 'Max entries to show', '50')
362
283
  .option('--json', 'Output as JSON')
363
284
  .action(async (opts: { limit?: string; json?: boolean }) => {
364
285
  try {
365
286
  const { queryServerLogs } = await import('./serverLogQuery.js');
366
287
  await queryServerLogs('feedbackReport', {
288
+ envFile: '.env.prod',
367
289
  limit: opts.limit ? parseInt(opts.limit, 10) : 50,
368
290
  json: opts.json,
369
291
  });
@@ -373,6 +295,47 @@ program
373
295
  }
374
296
  });
375
297
 
298
+ program
299
+ .command('dev-logs')
300
+ .description('Show local dev logs from JSONL files')
301
+ .option('--source <source>', 'Filter by source: browser or server')
302
+ .option('--level <level>', 'Filter by level: error, warn, info, log, debug')
303
+ .option('--pattern <pattern>', 'Filter by regex pattern')
304
+ .option('--since <since>', 'Show logs from last duration (5m, 1h, 2d)', '1d')
305
+ .option('--limit <n>', 'Max entries to show', '50')
306
+ .option('--category <category>', 'Filter by [CATEGORY] prefix')
307
+ .option('--tail', 'Follow mode - stream new entries as they arrive')
308
+ .option('--json', 'Output as JSON')
309
+ .action(
310
+ async (opts: {
311
+ source?: string;
312
+ level?: string;
313
+ pattern?: string;
314
+ since?: string;
315
+ limit?: string;
316
+ category?: string;
317
+ tail?: boolean;
318
+ json?: boolean;
319
+ }) => {
320
+ try {
321
+ const { queryLocalLogs } = await import('./logQuery.js');
322
+ await queryLocalLogs({
323
+ source: opts.source as 'browser' | 'server' | undefined,
324
+ level: opts.level,
325
+ pattern: opts.pattern,
326
+ since: opts.since,
327
+ limit: opts.limit ? parseInt(opts.limit, 10) : 50,
328
+ category: opts.category,
329
+ tail: opts.tail,
330
+ json: opts.json,
331
+ });
332
+ } catch (e) {
333
+ console.error((e as Error).message);
334
+ process.exit(1);
335
+ }
336
+ },
337
+ );
338
+
376
339
  program
377
340
  .command('auth:create-account')
378
341
  .description('Create a user account directly in MongoDB (no OAuth required)')
@@ -486,6 +449,10 @@ program
486
449
  .description('Generate an image using AI (requires ugly-app login)')
487
450
  .option('--prompt <prompt>', 'Image prompt (alternative to positional arg)')
488
451
  .option('--model <model>', 'Model to use (default: flux_1_schnell)')
452
+ .option(
453
+ '--aspect-ratio <size>',
454
+ 'Aspect ratio: square, portrait_4_3, portrait_16_9, portrait_21_9, landscape_4_3, landscape_16_9, landscape_21_9',
455
+ )
489
456
  .option('--output <path>', 'Save image to file instead of printing URL')
490
457
  .action(
491
458
  async (
@@ -493,6 +460,7 @@ program
493
460
  opts?: {
494
461
  prompt?: string;
495
462
  model?: string;
463
+ aspectRatio?: string;
496
464
  output?: string;
497
465
  },
498
466
  ) => {
@@ -1,13 +1,11 @@
1
1
  import { MongoClient } from 'mongodb';
2
2
  import fs from 'node:fs/promises';
3
3
  import path from 'node:path';
4
+ import { computeEnvVars, readUglyAppConfig } from './uglyappConfig.js';
4
5
 
5
- async function getMongoUri(): Promise<string> {
6
- // Try environment variable first
7
- if (process.env['MONGODB_URI']) return process.env['MONGODB_URI'];
8
-
9
- // Try to read from .env file in cwd
10
- const envPath = path.join(process.cwd(), '.env');
6
+ /** Try to read MONGODB_URI from an env file. Returns null if not found. */
7
+ async function readUriFromEnvFile(envFile: string): Promise<string | null> {
8
+ const envPath = path.join(process.cwd(), envFile);
11
9
  try {
12
10
  const content = await fs.readFile(envPath, 'utf-8');
13
11
  for (const line of content.split('\n')) {
@@ -15,10 +13,35 @@ async function getMongoUri(): Promise<string> {
15
13
  if (match) return match[1].replace(/^['"]|['"]$/g, '');
16
14
  }
17
15
  } catch {
18
- // No .env file
16
+ // File doesn't exist or isn't readable
17
+ }
18
+ return null;
19
+ }
20
+
21
+ /** Derive MONGODB_URI from .uglyapp config (port-offset-based local Docker). */
22
+ function readUriFromUglyAppConfig(): string | null {
23
+ const config = readUglyAppConfig(process.cwd());
24
+ if (!config) return null;
25
+ const envVars = computeEnvVars(config);
26
+ return envVars.MONGODB_URI ?? null;
27
+ }
28
+
29
+ async function getMongoUri(envFile: string): Promise<string> {
30
+ // 1. Try the specified env file
31
+ const fromEnv = await readUriFromEnvFile(envFile);
32
+ if (fromEnv) return fromEnv;
33
+
34
+ // 2. For local (.env), fall back to .uglyapp config or default
35
+ if (envFile === '.env') {
36
+ const fromConfig = readUriFromUglyAppConfig();
37
+ if (fromConfig) return fromConfig;
38
+ return 'mongodb://localhost:27017/app';
19
39
  }
20
40
 
21
- return 'mongodb://localhost:27017/app';
41
+ // 3. For server (.env.prod), no fallback — fail
42
+ throw new Error(
43
+ `MONGODB_URI not found in ${envFile}. Add MONGODB_URI=<your-uri> to ${envFile}.`,
44
+ );
22
45
  }
23
46
 
24
47
  function formatDoc(doc: Record<string, unknown>): string {
@@ -38,18 +61,17 @@ function formatDoc(doc: Record<string, unknown>): string {
38
61
  }
39
62
 
40
63
  export async function queryServerLogs(
41
- collection: 'errorLog' | 'consoleLog' | 'perfLog' | 'feedbackReport',
42
- options: { limit?: number; level?: string; json?: boolean } = {},
64
+ collection: 'errorLog' | 'perfLog' | 'feedbackReport',
65
+ options: { envFile: string; limit?: number; level?: string; json?: boolean },
43
66
  ): Promise<void> {
44
67
  const limit = options.limit ?? 50;
45
- const uri = await getMongoUri();
68
+ const uri = await getMongoUri(options.envFile);
46
69
 
47
70
  let client: MongoClient | null = null;
48
71
  try {
49
72
  client = new MongoClient(uri);
50
73
  await client.connect();
51
74
 
52
- // Extract database name from URI or use default
53
75
  const dbName = uri.split('/').pop()?.split('?')[0] || 'main';
54
76
  const db = client.db(dbName);
55
77
  const col = db.collection(collection);
@@ -63,7 +85,6 @@ export async function queryServerLogs(
63
85
  .limit(limit)
64
86
  .toArray();
65
87
 
66
- // Reverse to show oldest first
67
88
  docs.reverse();
68
89
 
69
90
  if (docs.length === 0) {
@@ -1,2 +1,2 @@
1
1
  // Auto-generated by prebuild — do not edit manually
2
- export const CLI_VERSION = "0.1.127";
2
+ export const CLI_VERSION = "0.1.129";
@@ -1,35 +1,23 @@
1
1
  ---
2
2
  name: check-errors
3
- description: Query recent error logs from MongoDB
3
+ description: Query recent error logs from MongoDB (requires local or server parameter)
4
4
  user-invocable: true
5
5
  ---
6
6
 
7
7
  # Checking Error Logs
8
8
 
9
- ## Query recent errors
10
- ```bash
11
- mongosh "$MONGODB_URI" --eval "
12
- db.errorLog.find({}, {message:1, stack:1, userId:1, created:1})
13
- .sort({created:-1}).limit(20).pretty()
14
- "
15
- ```
9
+ **Required parameter: `local` or `server`**
10
+
11
+ If the user did not specify `local` or `server`, stop and ask which one before proceeding.
16
12
 
17
- ## Group by message (find patterns)
13
+ ## Local (development MongoDB via .env)
18
14
  ```bash
19
- mongosh "$MONGODB_URI" --eval "
20
- db.errorLog.aggregate([
21
- { \$group: { _id: '\$message', count: { \$sum: 1 }, last: { \$max: '\$created' } } },
22
- { \$sort: { count: -1 } },
23
- { \$limit: 10 }
24
- ]).pretty()
25
- "
15
+ npm run error
26
16
  ```
27
17
 
28
- ## Filter by level
18
+ ## Server (production MongoDB via .env.prod)
29
19
  ```bash
30
- mongosh "$MONGODB_URI" --eval "
31
- db.errorLog.find({level:'error'}).sort({created:-1}).limit(10).pretty()
32
- "
20
+ npm run error:server
33
21
  ```
34
22
 
35
23
  ## Tips
@@ -1,25 +1,23 @@
1
1
  ---
2
2
  name: check-feedback
3
- description: Query user feedback logs from MongoDB
3
+ description: Query user feedback logs from MongoDB (requires local or server parameter)
4
4
  user-invocable: true
5
5
  ---
6
6
 
7
7
  # Checking Feedback Logs
8
8
 
9
- ## Query all feedback
9
+ **Required parameter: `local` or `server`**
10
+
11
+ If the user did not specify `local` or `server`, stop and ask which one before proceeding.
12
+
13
+ ## Local (development MongoDB via .env)
10
14
  ```bash
11
- mongosh "$MONGODB_URI" --eval "
12
- db.feedbackLog.find().sort({created:-1}).limit(20).pretty()
13
- "
15
+ npm run feedback
14
16
  ```
15
17
 
16
- ## Group by type
18
+ ## Server (production MongoDB via .env.prod)
17
19
  ```bash
18
- mongosh "$MONGODB_URI" --eval "
19
- db.feedbackLog.aggregate([
20
- { \$group: { _id: '\$type', count: { \$sum: 1 }, messages: { \$push: '\$message' } } }
21
- ]).pretty()
22
- "
20
+ npm run feedback:server
23
21
  ```
24
22
 
25
23
  ## Types: `bug`, `design`, `feature`
@@ -1,27 +1,23 @@
1
1
  ---
2
2
  name: check-perf
3
- description: Query performance logs for slow operations
3
+ description: Query performance logs for slow operations (requires local or server parameter)
4
4
  user-invocable: true
5
5
  ---
6
6
 
7
7
  # Checking Performance Logs
8
8
 
9
- ## Slowest operations
9
+ **Required parameter: `local` or `server`**
10
+
11
+ If the user did not specify `local` or `server`, stop and ask which one before proceeding.
12
+
13
+ ## Local (development MongoDB via .env)
10
14
  ```bash
11
- mongosh "$MONGODB_URI" --eval "
12
- db.perfLog.aggregate([
13
- { \$group: { _id: '\$operation', avgMs: { \$avg: '\$durationMs' }, maxMs: { \$max: '\$durationMs' }, count: { \$sum: 1 } } },
14
- { \$sort: { avgMs: -1 } },
15
- { \$limit: 10 }
16
- ]).pretty()
17
- "
15
+ npm run perf
18
16
  ```
19
17
 
20
- ## Recent slow calls (>500ms)
18
+ ## Server (production MongoDB via .env.prod)
21
19
  ```bash
22
- mongosh "$MONGODB_URI" --eval "
23
- db.perfLog.find({durationMs:{\$gt:500}}).sort({created:-1}).limit(20).pretty()
24
- "
20
+ npm run perf:server
25
21
  ```
26
22
 
27
23
  # Notes
@@ -1,14 +1,22 @@
1
1
  ---
2
2
  name: fix-errors
3
- description: Fetch production errors and fix them
3
+ description: Fetch errors and fix them (requires local or server parameter)
4
4
  user-invocable: true
5
5
  ---
6
6
 
7
- Fetch production errors and fix them.
7
+ Fetch errors and fix them.
8
8
 
9
+ **Required parameter: `local` or `server`**
10
+
11
+ If the user did not specify `local` or `server`, stop and ask which one before proceeding.
12
+
13
+ ## Local (development MongoDB via .env)
14
+ Run: `npm run error`
15
+
16
+ ## Server (production MongoDB via .env.prod)
9
17
  Run: `npm run error:server`
10
18
 
11
- This fetches recent errors from the production MongoDB errorLog collection. For each error:
19
+ For each error:
12
20
  1. Find the relevant source file
13
21
  2. Understand the root cause
14
22
  3. Fix the code
@@ -1,14 +1,22 @@
1
1
  ---
2
2
  name: fix-feedback
3
- description: Fetch user feedback and fix reported issues
3
+ description: Fetch user feedback and fix reported issues (requires local or server parameter)
4
4
  user-invocable: true
5
5
  ---
6
6
 
7
7
  Fetch user feedback and fix reported issues.
8
8
 
9
+ **Required parameter: `local` or `server`**
10
+
11
+ If the user did not specify `local` or `server`, stop and ask which one before proceeding.
12
+
13
+ ## Local (development MongoDB via .env)
9
14
  Run: `npm run feedback`
10
15
 
11
- This fetches recent user feedback from the production MongoDB feedbackLog collection. For each piece of feedback:
16
+ ## Server (production MongoDB via .env.prod)
17
+ Run: `npm run feedback:server`
18
+
19
+ This fetches recent user feedback from MongoDB. For each piece of feedback:
12
20
  1. Understand the user's issue or request
13
21
  2. Implement the fix or feature
14
22
  3. Run `npm run build` to verify it compiles
@@ -1,14 +1,22 @@
1
1
  ---
2
2
  name: fix-perf
3
- description: Fetch performance issues and optimize slow paths
3
+ description: Fetch performance issues and optimize slow paths (requires local or server parameter)
4
4
  user-invocable: true
5
5
  ---
6
6
 
7
7
  Fetch performance issues and optimize slow paths.
8
8
 
9
+ **Required parameter: `local` or `server`**
10
+
11
+ If the user did not specify `local` or `server`, stop and ask which one before proceeding.
12
+
13
+ ## Local (development MongoDB via .env)
14
+ Run: `npm run perf`
15
+
16
+ ## Server (production MongoDB via .env.prod)
9
17
  Run: `npm run perf:server`
10
18
 
11
- This fetches recent performance log entries from production. For each slow path:
19
+ For each slow path:
12
20
  1. Find the source of the slowdown
13
21
  2. Optimize the code (avoid blocking operations, add caching, etc.)
14
22
  3. Run `npm run build` to verify
@@ -15,7 +15,10 @@ Full API reference: https://www.npmjs.com/package/ugly-app
15
15
  - `npm run db:migrate` — Run pending migrations
16
16
  - `npm run textGen -- "your prompt"` — Generate text using AI from the CLI
17
17
  - `npm run imageGen -- "your prompt"` — Generate an image using AI (prints URL)
18
- - `npm run logs` / `npm run error` / `npm run feedback` Query dev logs
18
+ - `npm run error` / `npm run error:server` Query error logs (local / production)
19
+ - `npm run perf` / `npm run perf:server` — Query perf logs (local / production)
20
+ - `npm run feedback` / `npm run feedback:server` — Query feedback (local / production)
21
+ - `npm run dev-logs` — Show local dev logs from JSONL files
19
22
 
20
23
  ## Adding an endpoint
21
24
  1. Define in `shared/api.ts` using `req()` (public) or `authReq()` (authenticated) + Zod schemas
@@ -1,10 +1,11 @@
1
1
  import React, { useState } from 'react';
2
2
  import {
3
3
  Button,
4
+ callImageGen,
5
+ callTextGen,
4
6
  Card,
5
7
  Input,
6
8
  PageLayout,
7
- useApp,
8
9
  } from 'ugly-app/client';
9
10
  import type { ImageGenModel, TextGenModel } from 'ugly-app/shared';
10
11
  import { imageGenModels, textGenModels } from 'ugly-app/shared';
@@ -21,7 +22,6 @@ function fmt(ms: number): string {
21
22
  }
22
23
 
23
24
  export default function AITestPage(): React.ReactElement {
24
- const { socket } = useApp();
25
25
  const [mode, setMode] = useState<Mode>('text');
26
26
  const [prompt, setPrompt] = useState('');
27
27
  const [textModel, setTextModel] = useState<TextGenModel>(textGenModels[0]!);
@@ -51,18 +51,18 @@ export default function AITestPage(): React.ReactElement {
51
51
 
52
52
  try {
53
53
  if (mode === 'text') {
54
- const { text } = (await socket.request('textGen', {
54
+ const text = await callTextGen({
55
55
  model: textModel,
56
56
  messages: [{ role: 'user', content: prompt }],
57
- })) as { text: string };
57
+ });
58
58
  const elapsed = Date.now() - started;
59
59
  addLog(`Done in ${fmt(elapsed)} — ${text.length} chars`, 'ok');
60
60
  setResult(text);
61
61
  } else {
62
- const { url } = (await socket.request('imageGen', {
62
+ const url = await callImageGen({
63
63
  model: imageModel,
64
64
  prompt,
65
- })) as { url: string };
65
+ });
66
66
  const elapsed = Date.now() - started;
67
67
  addLog(`Done in ${fmt(elapsed)}`, 'ok');
68
68
  setImageUrl(url);
@@ -11,18 +11,18 @@
11
11
  "db:init": "ugly-app db:init",
12
12
  "deploy:single": "ugly-app deploy:single",
13
13
  "deploy:multi": "ugly-app deploy:multi",
14
- "logs": "ugly-app logs:local",
15
- "logs:server": "ugly-app logs:server",
16
14
  "error": "ugly-app error:local",
17
15
  "error:server": "ugly-app error:server",
18
16
  "perf": "ugly-app perf:local",
19
17
  "perf:server": "ugly-app perf:server",
18
+ "feedback": "ugly-app feedback:local",
19
+ "feedback:server": "ugly-app feedback:server",
20
+ "dev-logs": "ugly-app dev-logs",
20
21
  "start": "npx kill-port ${PORT:-3000} && npx tsx --env-file=.env server/index.ts",
21
22
  "deploy": "npm run build && npm run start",
22
23
  "test": "vitest run",
23
24
  "test:coverage": "vitest run --coverage",
24
25
  "test:e2e": "playwright test",
25
- "feedback": "ugly-app feedback",
26
26
  "textGen": "ugly-app textGen",
27
27
  "imageGen": "ugly-app imageGen",
28
28
  "prepare": "husky",
@@ -36,8 +36,8 @@
36
36
  "nanoid": "^5.1.5",
37
37
  "react": "^18.3.1",
38
38
  "react-dom": "^18.3.1",
39
- "three": "^0.172.0",
40
- "ugly-app": "^0.1.0"
39
+ "three": "^0.183.2",
40
+ "ugly-app": "^0.1.126"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/html2canvas": "^1.0.0",