@productbrain/cli 0.1.0-beta.43 → 0.1.0-beta.45

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.
@@ -4,11 +4,14 @@
4
4
  * Seed metadata is duplicated from `convex/admin/commandManifest.ts` for CLI help
5
5
  * and ordering only — behavior is enforced server-side (STD-101).
6
6
  */
7
+ import * as clack from '@clack/prompts';
7
8
  import { adminCall } from '../../lib/client.js';
8
9
  import { getConfig } from '../../lib/config.js';
9
10
  import { CLIError, ErrorCode } from '../../lib/errors.js';
11
+ import { ask, confirm, intro, isInteractive, log, multiselect, note, outro } from '../../lib/prompts.js';
10
12
  import { readSession } from '../../lib/session.js';
11
13
  import { isJsonMode } from '../../lib/runner.js';
14
+ import { confirmRiskNoteTitle, requiresAdminDestructiveConfirmation, seedAllConfirmMessage, seedMultiselectConfirmMessage, seedRunConfirmMessage, } from '../../lib/deployment.js';
12
15
  import { withSpinner } from '../../lib/spinner.js';
13
16
  import { adminBanner, bold, confirmProdAction, cyan, dim, green, heading, hint, icons, red, } from '../../lib/style.js';
14
17
  /**
@@ -103,15 +106,6 @@ export const SEED_COMMAND_ENTRIES = [
103
106
  const SEED_BY_NAME = new Map(SEED_COMMAND_ENTRIES.map((e) => [e.name, e]));
104
107
  /** Manifest order for `pb admin seed all`. */
105
108
  export const SEED_MANIFEST_ORDER = SEED_COMMAND_ENTRIES.map((e) => e.name);
106
- function isProductionSite(siteUrl) {
107
- try {
108
- const host = new URL(siteUrl).hostname;
109
- return host !== 'localhost' && host !== '127.0.0.1' && host !== '[::1]';
110
- }
111
- catch {
112
- return true;
113
- }
114
- }
115
109
  function shortLabel(manifestName) {
116
110
  return manifestName.startsWith('seed:') ? manifestName.slice('seed:'.length) : manifestName;
117
111
  }
@@ -214,10 +208,10 @@ async function printSeedStatus(workspaceIdOpt) {
214
208
  if (wsId) {
215
209
  collection = await adminCall('inspect:collection', { workspaceId: wsId });
216
210
  }
217
- const note = 'Per-seed run history is not tracked server-side yet — use workspace totals and readiness diagnose as signals.';
211
+ const statusNote = 'Per-seed run history is not tracked server-side yet — use workspace totals and readiness diagnose as signals.';
218
212
  if (isJsonMode()) {
219
213
  process.stdout.write(JSON.stringify({
220
- note,
214
+ note: statusNote,
221
215
  readinessConfig: readiness,
222
216
  workspaceCollections: collection,
223
217
  workspaceId: wsId ?? null,
@@ -225,7 +219,7 @@ async function printSeedStatus(workspaceIdOpt) {
225
219
  return;
226
220
  }
227
221
  process.stdout.write(`${bold('Seed status')}\n\n`);
228
- process.stdout.write(` ${dim(note)}\n\n`);
222
+ process.stdout.write(` ${dim(statusNote)}\n\n`);
229
223
  process.stdout.write(`${bold('Readiness config migration (inspect:readiness-config)')}\n`);
230
224
  process.stdout.write(` ${dim(JSON.stringify(readiness, null, 2).split('\n').join('\n '))}\n\n`);
231
225
  if (collection && typeof collection === 'object' && collection !== null && 'workspace' in collection) {
@@ -245,7 +239,7 @@ async function runSeedOperation(manifestName, opts) {
245
239
  /** Attach seed subcommands to the `seed` Commander node. */
246
240
  export function attachSeedCommands(seed) {
247
241
  // Default action when `pb admin seed` is invoked with no subcommand.
248
- seed.action(() => {
242
+ seed.action(async () => {
249
243
  if (isJsonMode()) {
250
244
  process.stdout.write(JSON.stringify({
251
245
  operations: SEED_COMMAND_ENTRIES.map((e) => ({
@@ -264,6 +258,85 @@ export function attachSeedCommands(seed) {
264
258
  catch { /* not configured */ }
265
259
  if (siteUrl)
266
260
  adminBanner(siteUrl);
261
+ if (isInteractive()) {
262
+ intro('Seed Operations');
263
+ // methodology-preset needs --preset-id, not suitable for interactive menu
264
+ const menuEntries = SEED_COMMAND_ENTRIES.filter((e) => e.name !== 'seed:methodology-preset');
265
+ const selected = await multiselect({
266
+ message: 'Select operations to run (space to toggle, enter to confirm):',
267
+ options: menuEntries.map((e) => ({
268
+ value: e.name,
269
+ label: shortLabel(e.name),
270
+ hint: [
271
+ e.requiresWorkspaceId ? 'needs workspace' : 'platform-wide',
272
+ e.dryRunSupported ? 'dry-run ✓' : '',
273
+ ].filter(Boolean).join(' · '),
274
+ })),
275
+ required: false,
276
+ });
277
+ if (!Array.isArray(selected) || selected.length === 0) {
278
+ outro('Nothing selected — use pb admin seed run <name> for individual operations');
279
+ return;
280
+ }
281
+ // Resolve workspace-id upfront for any selected ops that need it
282
+ const needsWs = selected.some((name) => SEED_BY_NAME.get(name)?.requiresWorkspaceId);
283
+ let workspaceId;
284
+ if (needsWs) {
285
+ const sessionWsId = readSession()?.workspaceId;
286
+ if (sessionWsId) {
287
+ workspaceId = sessionWsId;
288
+ log.info(`Using session workspace: ${dim(sessionWsId)}`);
289
+ }
290
+ else {
291
+ workspaceId = await ask({
292
+ message: 'Workspace ID (required for selected operations):',
293
+ validate: (v) => v.trim() ? undefined : 'Workspace ID is required',
294
+ });
295
+ }
296
+ }
297
+ const needsConfirm = requiresAdminDestructiveConfirmation(siteUrl);
298
+ if (needsConfirm) {
299
+ const ok = await confirm({
300
+ message: seedMultiselectConfirmMessage(siteUrl, selected.length),
301
+ initialValue: false,
302
+ });
303
+ if (!ok) {
304
+ outro('Cancelled');
305
+ return;
306
+ }
307
+ }
308
+ // Run selected operations in order, stop on first failure (same policy as seed all)
309
+ const results = [];
310
+ for (const name of selected) {
311
+ try {
312
+ await withSpinner(`Running ${shortLabel(name)}`, async () => {
313
+ const args = buildSeedArgs(name, { workspaceId });
314
+ await adminCall(name, args);
315
+ });
316
+ results.push({ name, ok: true });
317
+ }
318
+ catch (e) {
319
+ const msg = e instanceof Error ? e.message : String(e);
320
+ results.push({ name, ok: false, error: msg });
321
+ break;
322
+ }
323
+ }
324
+ const passed = results.filter((r) => r.ok).length;
325
+ const failed = results.filter((r) => !r.ok).length;
326
+ const summaryLines = results
327
+ .map((r) => r.ok ? `✓ ${shortLabel(r.name)}` : `✗ ${shortLabel(r.name)} — ${r.error}`)
328
+ .join('\n');
329
+ note(summaryLines, `${passed}/${selected.length} complete`);
330
+ if (failed > 0) {
331
+ process.exitCode = 1;
332
+ outro('Some operations failed — see above');
333
+ }
334
+ else {
335
+ outro(`${passed} operation(s) complete`);
336
+ }
337
+ return;
338
+ }
339
+ // Non-interactive (non-JSON) fallback — existing static preview
267
340
  process.stdout.write(`${heading('Seed operations')} ${dim(`(${SEED_COMMAND_ENTRIES.length})`)}\n\n`);
268
341
  // Show first 6 entries as a preview
269
342
  const preview = SEED_COMMAND_ENTRIES.slice(0, 6);
@@ -294,7 +367,17 @@ export function attachSeedCommands(seed) {
294
367
  .description('Readiness + workspace collection signals (no per-seed run log yet)')
295
368
  .option('--workspace-id <id>', 'Workspace id (defaults to session workspace when set)')
296
369
  .action(async (options) => {
370
+ if (!isJsonMode()) {
371
+ try {
372
+ adminBanner(getConfig().siteUrl);
373
+ }
374
+ catch { /* not configured */ }
375
+ intro('Seed: status');
376
+ }
297
377
  await printSeedStatus(options.workspaceId);
378
+ if (!isJsonMode()) {
379
+ outro('Read-only status check complete');
380
+ }
298
381
  });
299
382
  seed
300
383
  .command('run')
@@ -308,13 +391,14 @@ export function attachSeedCommands(seed) {
308
391
  const { siteUrl } = getConfig();
309
392
  const manifestName = normalizeSeedCommandName(name);
310
393
  const meta = SEED_BY_NAME.get(manifestName);
311
- const isProd = isProductionSite(siteUrl);
312
- // All seed ops on prod require confirmation — same policy as `seed all`.
313
- if (isProd) {
394
+ const needsConfirm = requiresAdminDestructiveConfirmation(siteUrl);
395
+ // Remote / prod deployments require confirmation — not local or known dev-cloud.
396
+ if (needsConfirm) {
314
397
  const ok = await confirmProdAction({
315
398
  confirm: options.confirm,
316
399
  isProduction: true,
317
- message: `Run ${manifestName} on production?`,
400
+ message: seedRunConfirmMessage(siteUrl, manifestName),
401
+ noteTitle: confirmRiskNoteTitle(siteUrl),
318
402
  });
319
403
  if (!ok) {
320
404
  process.stderr.write('Cancelled.\n');
@@ -322,20 +406,27 @@ export function attachSeedCommands(seed) {
322
406
  return;
323
407
  }
324
408
  }
325
- adminBanner(siteUrl);
326
- const label = `Running ${manifestName}`;
327
- const data = await withSpinner(label, () => runSeedOperation(manifestName, {
409
+ if (!isJsonMode()) {
410
+ adminBanner(siteUrl);
411
+ intro(`seed:${shortLabel(manifestName)}`);
412
+ }
413
+ const data = await withSpinner(`Running ${manifestName}`, () => runSeedOperation(manifestName, {
328
414
  workspaceId: options.workspaceId,
329
415
  dryRun: options.dryRun,
330
416
  presetId: options.presetId,
331
417
  }));
332
418
  if (isJsonMode()) {
333
419
  process.stdout.write(JSON.stringify({ command: manifestName, data }, null, 2) + '\n');
420
+ return;
334
421
  }
335
- else {
336
- process.stdout.write(`\n${green(icons.pass)} ${bold(manifestName)} complete.\n`);
337
- process.stdout.write(dim(JSON.stringify(data, null, 2)) + '\n');
338
- }
422
+ const summaryLines = data && typeof data === 'object'
423
+ ? Object.entries(data)
424
+ .map(([k, v]) => `${k}: ${typeof v === 'object' ? JSON.stringify(v) : String(v)}`)
425
+ .slice(0, 8)
426
+ .join('\n')
427
+ : String(data ?? 'No response data');
428
+ note(summaryLines || 'No response data', manifestName);
429
+ outro('Complete');
339
430
  });
340
431
  seed
341
432
  .command('all')
@@ -346,12 +437,13 @@ export function attachSeedCommands(seed) {
346
437
  .option('--confirm', 'Required in production (non-interactive)', false)
347
438
  .action(async (options) => {
348
439
  const { siteUrl } = getConfig();
349
- const isProd = isProductionSite(siteUrl);
350
- if (isProd) {
440
+ const needsConfirm = requiresAdminDestructiveConfirmation(siteUrl);
441
+ if (needsConfirm) {
351
442
  const ok = await confirmProdAction({
352
443
  confirm: options.confirm,
353
444
  isProduction: true,
354
- message: 'Run ALL seed operations on production?',
445
+ message: seedAllConfirmMessage(siteUrl),
446
+ noteTitle: confirmRiskNoteTitle(siteUrl),
355
447
  });
356
448
  if (!ok) {
357
449
  process.stderr.write('Cancelled.\n');
@@ -359,52 +451,76 @@ export function attachSeedCommands(seed) {
359
451
  return;
360
452
  }
361
453
  }
362
- adminBanner(siteUrl);
363
454
  const results = [];
455
+ // ── JSON mode: silent execution, structured output ────────────────────
456
+ if (isJsonMode()) {
457
+ for (const cmd of SEED_MANIFEST_ORDER) {
458
+ if (cmd === 'seed:methodology-preset' && !options.presetId) {
459
+ results.push({ command: cmd, ok: true, skipped: true, note: 'pass --preset-id to include methodology preset' });
460
+ continue;
461
+ }
462
+ try {
463
+ const args = buildSeedArgs(cmd, { workspaceId: options.workspaceId, dryRun: options.dryRun, presetId: options.presetId });
464
+ await adminCall(cmd, args);
465
+ results.push({ command: cmd, ok: true });
466
+ }
467
+ catch (e) {
468
+ const msg = e instanceof Error ? e.message : String(e);
469
+ results.push({ command: cmd, ok: false, error: msg });
470
+ break;
471
+ }
472
+ }
473
+ if (results.some((r) => !r.ok))
474
+ process.exitCode = 1;
475
+ process.stdout.write(JSON.stringify({ results }, null, 2) + '\n');
476
+ return;
477
+ }
478
+ // ── Human mode: spinner per operation + finale summary panel ─────────
479
+ adminBanner(siteUrl);
480
+ intro('Seed All Operations');
481
+ const total = SEED_MANIFEST_ORDER.length;
482
+ let current = 0;
483
+ const startMs = Date.now();
484
+ const s = clack.spinner();
364
485
  for (const cmd of SEED_MANIFEST_ORDER) {
486
+ current++;
487
+ const label = shortLabel(cmd);
365
488
  if (cmd === 'seed:methodology-preset' && !options.presetId) {
366
- results.push({
367
- command: cmd,
368
- ok: true,
369
- skipped: true,
370
- note: 'pass --preset-id to include methodology preset',
371
- });
372
- if (!isJsonMode()) {
373
- process.stdout.write(`${dim(icons.dot)} ${cmd} skipped (no --preset-id)\n`);
374
- }
489
+ results.push({ command: cmd, ok: true, skipped: true, note: 'pass --preset-id to include methodology preset' });
490
+ log.step(`${current}/${total} ${label} — skipped (no --preset-id)`);
375
491
  continue;
376
492
  }
493
+ s.start(`${current}/${total} ${label}`);
377
494
  try {
378
- await withSpinner(`Running ${cmd}`, async () => {
379
- const args = buildSeedArgs(cmd, {
380
- workspaceId: options.workspaceId,
381
- dryRun: options.dryRun,
382
- presetId: options.presetId,
383
- });
384
- await adminCall(cmd, args);
385
- });
495
+ const args = buildSeedArgs(cmd, { workspaceId: options.workspaceId, dryRun: options.dryRun, presetId: options.presetId });
496
+ await adminCall(cmd, args);
497
+ s.stop(`${green(icons.pass)} ${label}`);
386
498
  results.push({ command: cmd, ok: true });
387
- if (!isJsonMode()) {
388
- process.stdout.write(`${green(icons.pass)} ${cmd}\n`);
389
- }
390
499
  }
391
500
  catch (e) {
392
501
  const msg = e instanceof Error ? e.message : String(e);
502
+ s.stop(`${red(icons.fail)} ${label} — ${msg}`);
393
503
  results.push({ command: cmd, ok: false, error: msg });
394
- if (!isJsonMode()) {
395
- process.stdout.write(`${red(icons.fail)} ${cmd} — ${msg}\n`);
396
- }
397
504
  break;
398
505
  }
399
506
  }
400
- if (results.some((r) => !r.ok)) {
507
+ const elapsed = ((Date.now() - startMs) / 1000).toFixed(1);
508
+ const passed = results.filter((r) => r.ok && !r.skipped).length;
509
+ const skippedCount = results.filter((r) => r.skipped).length;
510
+ const failed = results.filter((r) => !r.ok).length;
511
+ const summaryLines = [
512
+ `${green(icons.pass)} ${passed} succeeded`,
513
+ skippedCount > 0 ? `${dim(icons.dot)} ${skippedCount} skipped` : null,
514
+ failed > 0 ? `${red(icons.fail)} ${failed} failed` : null,
515
+ `${dim(`elapsed: ${elapsed}s`)}`,
516
+ ].filter(Boolean).join('\n');
517
+ note(summaryLines, `${passed + skippedCount}/${total} complete`);
518
+ if (failed > 0) {
401
519
  process.exitCode = 1;
402
- }
403
- if (isJsonMode()) {
404
- process.stdout.write(JSON.stringify({ results }, null, 2) + '\n');
520
+ outro('Some operations failed — fix errors and re-run affected seeds individually');
405
521
  }
406
522
  else {
407
- hint('seed all stops on first failure. Fix the error and re-run, or run individual `pb admin seed run` commands.');
523
+ outro(`All ${passed} operations complete in ${elapsed}s`);
408
524
  }
409
525
  });
410
526
  }
@@ -1 +1 @@
1
- {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../../src/commands/admin/seed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../../src/commands/admin/seed.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,oCAAoC,CAAC;AAelE;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAIvC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAQnE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAItC;AAED,8CAA8C;AAC9C,wBAAgB,SAAS,IAAI,OAAO,CAEnC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,oCAAoC,CAAC;AAiBlE;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAIvC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAQnE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAItC;AAED,8CAA8C;AAC9C,wBAAgB,SAAS,IAAI,OAAO,CAEnC"}
@@ -4,6 +4,7 @@
4
4
  */
5
5
  /** Production Convex HTTP Actions endpoint. */
6
6
  export const DEFAULT_SITE_URL = 'https://gateway.productbrain.io';
7
+ /** Hostname lists for banners + admin seed gates live in `deployment.ts` (PRODUCTION_HOSTS, DEV_CLOUD_HOSTS). */
7
8
  /** Production web app URL. */
8
9
  const PROD_APP_URL = 'https://work.productbrain.io';
9
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+CAA+C;AAC/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,iCAAiC,CAAC;AAElE,8BAA8B;AAC9B,MAAM,YAAY,GAAG,8BAA8B,CAAC;AAEpD;;;;GAIG;AACH,MAAM,YAAY,GAAG,uBAAuB,CAAC;AAE7C,yBAAyB;AACzB,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAE5C;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;IAC9C,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,YAAY,CAAC;IACvC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAmB;IACzD,MAAM,OAAO,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IACnC,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC;IAC3D,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IACvD,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;IAC9C,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,WAAW,CAAC;IACtC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+CAA+C;AAC/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,iCAAiC,CAAC;AAElE,iHAAiH;AAEjH,8BAA8B;AAC9B,MAAM,YAAY,GAAG,8BAA8B,CAAC;AAEpD;;;;GAIG;AACH,MAAM,YAAY,GAAG,uBAAuB,CAAC;AAE7C,yBAAyB;AACzB,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAE5C;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;IAC9C,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,YAAY,CAAC;IACvC,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAAmB;IACzD,MAAM,OAAO,GAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IACnC,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC;IAC3D,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IACvD,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;IAC9C,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,WAAW,CAAC;IACtC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,8CAA8C;AAC9C,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC;AACrD,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Convex / gateway deployment classification for CLI banners and admin seed gates.
3
+ *
4
+ * Convex uses "Development (Cloud)" vs "Production" for deployments; the CLI must not
5
+ * treat every non-localhost URL as "production" (WP-312 follow-up).
6
+ *
7
+ * Extend PRODUCTION_HOSTS / DEV_CLOUD_HOSTS when new team deployments are provisioned.
8
+ */
9
+ /** Loopback — local Convex dev UI / tunnel only. */
10
+ export type DeploymentTier = 'local' | 'prod' | 'dev-cloud' | 'cloud';
11
+ export declare function parseHostname(siteUrl: string): string;
12
+ export declare function classifyDeployment(siteUrl: string): DeploymentTier;
13
+ /**
14
+ * Whether admin seed destructive paths should show confirmation + `--confirm` in CI.
15
+ * False for loopback and known dev-cloud Convex deployments only.
16
+ */
17
+ export declare function requiresAdminDestructiveConfirmation(siteUrl: string): boolean;
18
+ /** Title for clack `note()` before confirm (prod vs unknown remote). */
19
+ export declare function confirmRiskNoteTitle(siteUrl: string): string;
20
+ export declare function seedRunConfirmMessage(siteUrl: string, manifestName: string): string;
21
+ export declare function seedAllConfirmMessage(siteUrl: string): string;
22
+ export declare function seedMultiselectConfirmMessage(siteUrl: string, count: number): string;
23
+ //# sourceMappingURL=deployment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../src/lib/deployment.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,oDAAoD;AACpD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,OAAO,CAAC;AAwBtE,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAMlE;AAED;;;GAGG;AACH,wBAAgB,oCAAoC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAG7E;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAK5D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAInF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpF"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Convex / gateway deployment classification for CLI banners and admin seed gates.
3
+ *
4
+ * Convex uses "Development (Cloud)" vs "Production" for deployments; the CLI must not
5
+ * treat every non-localhost URL as "production" (WP-312 follow-up).
6
+ *
7
+ * Extend PRODUCTION_HOSTS / DEV_CLOUD_HOSTS when new team deployments are provisioned.
8
+ */
9
+ const LOCAL_HOSTS = new Set(['localhost', '127.0.0.1', '[::1]']);
10
+ /**
11
+ * Customer / team production hosts (gateway, prod Convex deployment, public API).
12
+ * Destructive admin seeds use production-style confirmation + red [PROD] banner.
13
+ */
14
+ const PRODUCTION_HOSTS = new Set([
15
+ 'gateway.productbrain.io',
16
+ 'data.productbrain.io',
17
+ 'api.productbrain.io',
18
+ /** Convex Production deployment (dashboard label). */
19
+ 'terrific-penguin-60.convex.site',
20
+ ]);
21
+ /**
22
+ * Convex **Development (Cloud)** deployments — real cloud DB, not customer prod.
23
+ * No prod-style gate; banner shows [DEV·CLOUD].
24
+ */
25
+ const DEV_CLOUD_HOSTS = new Set([
26
+ 'trustworthy-kangaroo-277.convex.site',
27
+ ]);
28
+ export function parseHostname(siteUrl) {
29
+ try {
30
+ return new URL(siteUrl).hostname;
31
+ }
32
+ catch {
33
+ return siteUrl;
34
+ }
35
+ }
36
+ export function classifyDeployment(siteUrl) {
37
+ const host = parseHostname(siteUrl);
38
+ if (LOCAL_HOSTS.has(host))
39
+ return 'local';
40
+ if (PRODUCTION_HOSTS.has(host))
41
+ return 'prod';
42
+ if (DEV_CLOUD_HOSTS.has(host))
43
+ return 'dev-cloud';
44
+ return 'cloud';
45
+ }
46
+ /**
47
+ * Whether admin seed destructive paths should show confirmation + `--confirm` in CI.
48
+ * False for loopback and known dev-cloud Convex deployments only.
49
+ */
50
+ export function requiresAdminDestructiveConfirmation(siteUrl) {
51
+ const t = classifyDeployment(siteUrl);
52
+ return t !== 'local' && t !== 'dev-cloud';
53
+ }
54
+ /** Title for clack `note()` before confirm (prod vs unknown remote). */
55
+ export function confirmRiskNoteTitle(siteUrl) {
56
+ const t = classifyDeployment(siteUrl);
57
+ if (t === 'prod')
58
+ return '⚠ Production';
59
+ if (t === 'cloud')
60
+ return '⚠ Remote deployment';
61
+ return '⚠ Confirm';
62
+ }
63
+ export function seedRunConfirmMessage(siteUrl, manifestName) {
64
+ return classifyDeployment(siteUrl) === 'prod'
65
+ ? `Run ${manifestName} on production?`
66
+ : `Run ${manifestName} on this remote deployment?`;
67
+ }
68
+ export function seedAllConfirmMessage(siteUrl) {
69
+ return classifyDeployment(siteUrl) === 'prod'
70
+ ? 'Run ALL seed operations on production?'
71
+ : 'Run ALL seed operations on this remote deployment?';
72
+ }
73
+ export function seedMultiselectConfirmMessage(siteUrl, count) {
74
+ return classifyDeployment(siteUrl) === 'prod'
75
+ ? `Run ${count} operation(s) on PRODUCTION?`
76
+ : `Run ${count} operation(s) on this remote deployment?`;
77
+ }
78
+ //# sourceMappingURL=deployment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment.js","sourceRoot":"","sources":["../../src/lib/deployment.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAEjE;;;GAGG;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAS;IACvC,yBAAyB;IACzB,sBAAsB;IACtB,qBAAqB;IACrB,sDAAsD;IACtD,iCAAiC;CAClC,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAS;IACtC,sCAAsC;CACvC,CAAC,CAAC;AAEH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,OAAO,CAAC;IAC1C,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IAClD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oCAAoC,CAAC,OAAe;IAClE,MAAM,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,WAAW,CAAC;AAC5C,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,CAAC,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,eAAe,CAAC;IACzC,IAAI,CAAC,KAAK,OAAO;QAAE,OAAO,sBAAsB,CAAC;IACjD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,YAAoB;IACzE,OAAO,kBAAkB,CAAC,OAAO,CAAC,KAAK,MAAM;QAC3C,CAAC,CAAC,OAAO,YAAY,iBAAiB;QACtC,CAAC,CAAC,OAAO,YAAY,6BAA6B,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO,kBAAkB,CAAC,OAAO,CAAC,KAAK,MAAM;QAC3C,CAAC,CAAC,wCAAwC;QAC1C,CAAC,CAAC,oDAAoD,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,OAAe,EAAE,KAAa;IAC1E,OAAO,kBAAkB,CAAC,OAAO,CAAC,KAAK,MAAM;QAC3C,CAAC,CAAC,OAAO,KAAK,8BAA8B;QAC5C,CAAC,CAAC,OAAO,KAAK,0CAA0C,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Deployment classification — banners and admin seed gates.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=deployment.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment.test.d.ts","sourceRoot":"","sources":["../../src/lib/deployment.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Deployment classification — banners and admin seed gates.
3
+ */
4
+ import { describe, it, expect } from 'vitest';
5
+ import { classifyDeployment, confirmRiskNoteTitle, parseHostname, requiresAdminDestructiveConfirmation, seedAllConfirmMessage, seedRunConfirmMessage, } from './deployment.js';
6
+ describe('parseHostname', () => {
7
+ it('parses hostname from https URL', () => {
8
+ expect(parseHostname('https://trustworthy-kangaroo-277.convex.site')).toBe('trustworthy-kangaroo-277.convex.site');
9
+ });
10
+ });
11
+ describe('classifyDeployment', () => {
12
+ it('classifies loopback as local', () => {
13
+ expect(classifyDeployment('http://localhost:5176')).toBe('local');
14
+ expect(classifyDeployment('http://127.0.0.1:3000')).toBe('local');
15
+ expect(classifyDeployment('http://[::1]:3000')).toBe('local');
16
+ });
17
+ it('classifies known dev-cloud Convex deployment', () => {
18
+ expect(classifyDeployment('https://trustworthy-kangaroo-277.convex.site')).toBe('dev-cloud');
19
+ });
20
+ it('classifies gateway and prod Convex as prod', () => {
21
+ expect(classifyDeployment('https://gateway.productbrain.io')).toBe('prod');
22
+ expect(classifyDeployment('https://terrific-penguin-60.convex.site')).toBe('prod');
23
+ expect(classifyDeployment('https://api.productbrain.io')).toBe('prod');
24
+ });
25
+ it('classifies unknown remote as cloud', () => {
26
+ expect(classifyDeployment('https://other-team-xyz.convex.site')).toBe('cloud');
27
+ });
28
+ });
29
+ describe('requiresAdminDestructiveConfirmation', () => {
30
+ it('is false for local and dev-cloud only', () => {
31
+ expect(requiresAdminDestructiveConfirmation('http://localhost:3000')).toBe(false);
32
+ expect(requiresAdminDestructiveConfirmation('https://trustworthy-kangaroo-277.convex.site')).toBe(false);
33
+ expect(requiresAdminDestructiveConfirmation('https://gateway.productbrain.io')).toBe(true);
34
+ expect(requiresAdminDestructiveConfirmation('https://unknown.convex.site')).toBe(true);
35
+ });
36
+ });
37
+ describe('confirmRiskNoteTitle', () => {
38
+ it('matches tier', () => {
39
+ expect(confirmRiskNoteTitle('https://gateway.productbrain.io')).toContain('Production');
40
+ expect(confirmRiskNoteTitle('https://other.convex.site')).toContain('Remote');
41
+ });
42
+ });
43
+ describe('seed confirm copy', () => {
44
+ it('uses production wording only for prod tier', () => {
45
+ expect(seedRunConfirmMessage('https://gateway.productbrain.io', 'seed:knowledge')).toContain('production');
46
+ expect(seedRunConfirmMessage('https://trustworthy-kangaroo-277.convex.site', 'seed:knowledge')).toContain('remote deployment');
47
+ expect(seedRunConfirmMessage('https://unknown.convex.site', 'seed:knowledge')).toContain('remote deployment');
48
+ });
49
+ it('seed all message follows tier', () => {
50
+ expect(seedAllConfirmMessage('https://gateway.productbrain.io')).toContain('production');
51
+ expect(seedAllConfirmMessage('https://unknown.convex.site')).toContain('remote deployment');
52
+ });
53
+ });
54
+ //# sourceMappingURL=deployment.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment.test.js","sourceRoot":"","sources":["../../src/lib/deployment.test.ts"],"names":[],"mappings":"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"}