agenticmail 0.5.7 → 0.5.9

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 (2) hide show
  1. package/dist/cli.js +62 -12
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -4295,13 +4295,51 @@ var LOADING_MESSAGES = {
4295
4295
  "Almost there..."
4296
4296
  ]
4297
4297
  };
4298
+ var GRADIENT_COLORS = [
4299
+ 205,
4300
+ // hot pink
4301
+ 212,
4302
+ // light pink
4303
+ 219,
4304
+ // pink-lavender
4305
+ 183,
4306
+ // lavender
4307
+ 147,
4308
+ // periwinkle
4309
+ 111,
4310
+ // sky blue
4311
+ 117,
4312
+ // light blue
4313
+ 123,
4314
+ // cyan-blue
4315
+ 159,
4316
+ // ice blue
4317
+ 153,
4318
+ // pale blue
4319
+ 189,
4320
+ // light lavender
4321
+ 225,
4322
+ // baby pink
4323
+ 218,
4324
+ // salmon pink
4325
+ 211,
4326
+ // coral
4327
+ 205
4328
+ // hot pink (loop)
4329
+ ];
4330
+ function color256(code, s) {
4331
+ return `\x1B[38;5;${code}m${s}\x1B[0m`;
4332
+ }
4298
4333
  var Spinner = class {
4299
4334
  interval = null;
4300
4335
  frameIdx = 0;
4301
4336
  msgIdx = 0;
4302
4337
  msgChangeCounter = 0;
4338
+ colorIdx = 0;
4303
4339
  category;
4304
4340
  currentMsg;
4341
+ progressMsg = "";
4342
+ // message set by progress update
4305
4343
  progressPct = -1;
4306
4344
  // -1 = no progress bar
4307
4345
  constructor(category, initialMsg) {
@@ -4313,23 +4351,34 @@ var Spinner = class {
4313
4351
  this.frameIdx = 0;
4314
4352
  this.msgIdx = 0;
4315
4353
  this.msgChangeCounter = 0;
4354
+ this.colorIdx = 0;
4316
4355
  this.progressPct = -1;
4317
4356
  const msgs = LOADING_MESSAGES[this.category] ?? LOADING_MESSAGES.general;
4318
4357
  this.interval = setInterval(() => {
4319
4358
  const frame = SPINNER_FRAMES[this.frameIdx % SPINNER_FRAMES.length];
4359
+ const clr = GRADIENT_COLORS[this.colorIdx % GRADIENT_COLORS.length];
4320
4360
  if (this.progressPct >= 0) {
4321
4361
  const barWidth = 20;
4322
4362
  const filled = Math.round(this.progressPct / 100 * barWidth);
4323
4363
  const empty = barWidth - filled;
4324
- const bar = c2.pink("\u2588".repeat(filled)) + c2.dim("\u2591".repeat(empty));
4325
- const pctStr = c2.pink(`${this.progressPct}%`);
4326
- process.stdout.write(`\r ${c2.pink(frame)} ${bar} ${pctStr} ${c2.dim(this.currentMsg)}\x1B[K`);
4364
+ let bar = "";
4365
+ for (let i = 0; i < filled; i++) {
4366
+ const barClr = GRADIENT_COLORS[(this.colorIdx + i) % GRADIENT_COLORS.length];
4367
+ bar += color256(barClr, "\u2588");
4368
+ }
4369
+ bar += c2.dim("\u2591".repeat(empty));
4370
+ const pctStr = color256(clr, `${this.progressPct}%`);
4371
+ const displayMsg = this.progressMsg || this.currentMsg;
4372
+ process.stdout.write(`\r ${color256(clr, frame)} ${bar} ${pctStr} ${color256(clr, displayMsg)}\x1B[K`);
4327
4373
  } else {
4328
- process.stdout.write(`\r ${c2.cyan(frame)} ${c2.yellow(this.currentMsg)}\x1B[K`);
4374
+ process.stdout.write(`\r ${color256(clr, frame)} ${color256(clr, this.currentMsg)}\x1B[K`);
4329
4375
  }
4330
4376
  this.frameIdx++;
4331
4377
  this.msgChangeCounter++;
4332
- if (this.msgChangeCounter >= 30 && this.progressPct < 0) {
4378
+ if (this.frameIdx % 2 === 0) {
4379
+ this.colorIdx = (this.colorIdx + 1) % GRADIENT_COLORS.length;
4380
+ }
4381
+ if (this.msgChangeCounter >= 30) {
4333
4382
  this.msgChangeCounter = 0;
4334
4383
  this.msgIdx = (this.msgIdx + 1) % msgs.length;
4335
4384
  this.currentMsg = msgs[this.msgIdx];
@@ -4340,9 +4389,10 @@ var Spinner = class {
4340
4389
  const match = msg.match(/^__progress__:(\d+):(.*)$/);
4341
4390
  if (match) {
4342
4391
  this.progressPct = Math.min(100, parseInt(match[1], 10));
4343
- this.currentMsg = match[2];
4392
+ this.progressMsg = match[2];
4344
4393
  } else {
4345
4394
  this.currentMsg = msg;
4395
+ this.progressMsg = "";
4346
4396
  }
4347
4397
  this.msgChangeCounter = 0;
4348
4398
  }
@@ -4468,7 +4518,7 @@ function stopApiServer() {
4468
4518
  }
4469
4519
  async function cmdSetup() {
4470
4520
  log2("");
4471
- log2(` ${c2.bgCyan(" AgenticMail Setup ")}`);
4521
+ log2(` ${c2.pinkBg(" \u{1F380} AgenticMail Setup ")}`);
4472
4522
  log2("");
4473
4523
  log2(` ${c2.bold("Welcome!")} We're going to set up everything your AI agent`);
4474
4524
  log2(` needs to send and receive real email.`);
@@ -4540,7 +4590,7 @@ async function cmdSetup() {
4540
4590
  const ver = dep.version && /^\d/.test(dep.version) ? ` ${c2.dim("v" + dep.version)}` : "";
4541
4591
  ok2(`${c2.bold(f.name)}${ver} ${c2.dim("\u2014 " + f.desc)}`);
4542
4592
  } else {
4543
- fail2(`${c2.bold(f.name)} ${c2.dim("\u2014 " + f.desc + " (will install)")}`);
4593
+ console.log(` ${c2.yellow("\u25CC")} ${c2.bold(f.name)} ${c2.dim("\u2014 " + f.desc)} ${c2.yellow("(will install)")}`);
4544
4594
  }
4545
4595
  }
4546
4596
  log2("");
@@ -5451,7 +5501,7 @@ function mergePluginConfig(existing, apiUrl, masterKey, agentApiKey, pluginDir)
5451
5501
  }
5452
5502
  async function cmdOpenClaw() {
5453
5503
  log2("");
5454
- log2(` ${c2.bgCyan(" AgenticMail for OpenClaw ")}`);
5504
+ log2(` ${c2.pinkBg(" \u{1F380} AgenticMail for OpenClaw ")}`);
5455
5505
  log2("");
5456
5506
  log2(` ${c2.bold("Let's get your OpenClaw agent set up with email.")}`);
5457
5507
  log2(` This will:`);
@@ -6136,7 +6186,7 @@ function printPluginSnippet(apiUrl, masterKey, agentApiKey) {
6136
6186
  }
6137
6187
  async function cmdStatus() {
6138
6188
  log2("");
6139
- log2(` ${c2.bgCyan(" AgenticMail Status ")}`);
6189
+ log2(` ${c2.pinkBg(" \u{1F380} AgenticMail Status ")}`);
6140
6190
  log2("");
6141
6191
  const setup = new SetupManager();
6142
6192
  const FRIENDLY_NAMES = {
@@ -6241,7 +6291,7 @@ async function cmdStart() {
6241
6291
  return;
6242
6292
  }
6243
6293
  log2("");
6244
- log2(` ${c2.bgCyan(" Starting AgenticMail ")}`);
6294
+ log2(` ${c2.pinkBg(" \u{1F380} Starting AgenticMail ")}`);
6245
6295
  log2("");
6246
6296
  const cfgPath = join(homedir(), ".agenticmail", "config.json");
6247
6297
  let config;
@@ -6527,7 +6577,7 @@ switch (command) {
6527
6577
  case "--help":
6528
6578
  case "-h":
6529
6579
  log2("");
6530
- log2(` ${c2.bgCyan(" AgenticMail ")} ${c2.dim("Give your AI agent a real email address")}`);
6580
+ log2(` ${c2.pinkBg(" \u{1F380} AgenticMail ")} ${c2.dim("Give your AI agent a real email address")}`);
6531
6581
  log2("");
6532
6582
  log2(" Commands:");
6533
6583
  log2(` ${c2.green("agenticmail")} Get started (setup + start)`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agenticmail",
3
- "version": "0.5.7",
3
+ "version": "0.5.9",
4
4
  "description": "Email and SMS infrastructure for AI agents \u2014 the first platform to give agents real email addresses and phone numbers",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",