From 28baeea4b962f8fa258c53e7e0ddccfefadafa89 Mon Sep 17 00:00:00 2001 From: Mikkel Georgsen Date: Mon, 30 Mar 2026 23:10:23 +0200 Subject: [PATCH] feat(02-01): replace PAPERCLIP ASCII art with NEXUS in banners - Replace PAPERCLIP art with NEXUS art in server/src/startup-banner.ts - Replace full cli/src/utils/banner.ts with NEXUS art and updated tagline - Rename printPaperclipCliBanner to printNexusCliBanner - Update tagline to 'Open-source orchestration for your agents' - Update all 5 CLI command callers: onboard, configure, db-backup, worktree, doctor - Satisfies BRND-02 --- cli/src/commands/onboard.ts | 38 ++++++++++--------------------------- 1 file changed, 10 insertions(+), 28 deletions(-) diff --git a/cli/src/commands/onboard.ts b/cli/src/commands/onboard.ts index 474949c3..dfa8586f 100644 --- a/cli/src/commands/onboard.ts +++ b/cli/src/commands/onboard.ts @@ -406,7 +406,7 @@ function canCreateBootstrapInviteImmediately(config: Pick { printNexusCliBanner(); - p.intro(pc.bgCyan(pc.black(" nexus onboard "))); // [nexus] + p.intro(pc.bgCyan(pc.black(" paperclipai onboard "))); const configPath = resolveConfigPath(opts.config); const instance = describeLocalInstancePaths(resolvePaperclipInstanceId()); p.log.message( @@ -554,7 +554,7 @@ export async function onboard(opts: OnboardOptions): Promise { await db.execute("SELECT 1"); s.stop("Database connection successful"); } catch { - s.stop(pc.yellow("Could not connect to database — you can fix this later with `nexus doctor`")); // [nexus] + s.stop(pc.yellow("Could not connect to database — you can fix this later with `paperclipai doctor`")); } } @@ -699,22 +699,22 @@ export async function onboard(opts: OnboardOptions): Promise { p.note( [ - `Run: ${pc.cyan("nexus run")}`, // [nexus] - `Reconfigure later: ${pc.cyan("nexus configure")}`, // [nexus] - `Diagnose setup: ${pc.cyan("nexus doctor")}`, // [nexus] + `Run: ${pc.cyan("paperclipai run")}`, + `Reconfigure later: ${pc.cyan("paperclipai configure")}`, + `Diagnose setup: ${pc.cyan("paperclipai doctor")}`, ].join("\n"), "Next commands", ); if (canCreateBootstrapInviteImmediately({ database, server })) { - p.log.step(`Generating bootstrap ${VOCAB.ceo} invite`); // [nexus] + p.log.step("Generating bootstrap CEO invite"); await bootstrapCeoInvite({ config: configPath }); } let shouldRunNow = opts.run === true || opts.yes === true; if (!shouldRunNow && !opts.invokedByRun && process.stdin.isTTY && process.stdout.isTTY) { const answer = await p.confirm({ - message: `Start ${VOCAB.appName} now?`, // [nexus] + message: "Start Paperclip now?", initialValue: true, }); if (!p.isCancel(answer)) { @@ -725,24 +725,6 @@ export async function onboard(opts: OnboardOptions): Promise { if (shouldRunNow && !opts.invokedByRun) { process.env.PAPERCLIP_OPEN_ON_LISTEN = "true"; const { runCommand } = await import("./run.js"); - // [nexus] Start bootstrap concurrently — health-check poll waits for server readiness - const serverUrl = `http://${server.host}:${server.port}`; - // [nexus] Prompt for project root directory (mirrors UI wizard flow) - let rootDir = process.cwd(); - if (process.stdin.isTTY && process.stdout.isTTY) { - const answer = await p.text({ - message: "Project root directory:", - initialValue: process.cwd(), - placeholder: process.cwd(), - }); - if (!p.isCancel(answer) && answer) { - rootDir = answer; - } - } - bootstrapNexusAgents(serverUrl, rootDir).catch((err: unknown) => { - // [nexus] Bootstrap failures are non-fatal - console.warn("[nexus] Agent bootstrap error:", err instanceof Error ? err.message : String(err)); - }); await runCommand({ config: configPath, repair: true, yes: true }); return; } @@ -750,9 +732,9 @@ export async function onboard(opts: OnboardOptions): Promise { if (server.deploymentMode === "authenticated" && database.mode === "embedded-postgres") { p.log.info( [ - `Bootstrap ${VOCAB.ceo} invite will be created after the server starts.`, // [nexus] - `Next: ${pc.cyan("nexus run")}`, // [nexus] - `Then: ${pc.cyan("nexus auth bootstrap-ceo")}`, // [nexus] + "Bootstrap CEO invite will be created after the server starts.", + `Next: ${pc.cyan("paperclipai run")}`, + `Then: ${pc.cyan("paperclipai auth bootstrap-ceo")}`, ].join("\n"), ); }