codebot-ai 2.1.3 → 2.1.4

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.
package/dist/banner.js CHANGED
@@ -328,9 +328,9 @@ function defaultWriter(text) {
328
328
  }
329
329
  function getDelay(speed) {
330
330
  switch (speed) {
331
- case 'fast': return { line: 25, char: 8, pause: 80, frame: 40 };
332
- case 'normal': return { line: 50, char: 15, pause: 150, frame: 60 };
333
- case 'slow': return { line: 80, char: 25, pause: 250, frame: 90 };
331
+ case 'fast': return { line: 40, char: 15, pause: 200, frame: 50 };
332
+ case 'normal': return { line: 70, char: 25, pause: 300, frame: 80 };
333
+ case 'slow': return { line: 100, char: 40, pause: 400, frame: 120 };
334
334
  }
335
335
  }
336
336
  /**
@@ -517,30 +517,39 @@ async function animateBootSequence(bannerFn, version, model, provider, session,
517
517
  const r = C.reset;
518
518
  w(ANSI.hideCursor);
519
519
  try {
520
+ // Brief settle before animation starts
521
+ await sleep(150);
520
522
  // Phase 1: Scanline — print each line dim first, then brighten
523
+ let artDone = false;
521
524
  for (const line of lines) {
522
525
  const stripped = stripAnsi(line).trim();
523
526
  if (stripped.length === 0) {
524
527
  w('\n');
525
528
  continue;
526
529
  }
527
- // Print dim version first
530
+ // Detect transition from mascot art to info lines (Model/Provider/Session)
531
+ if (!artDone && stripped.startsWith('Model:')) {
532
+ artDone = true;
533
+ await sleep(delay.pause / 2); // pause between art and info
534
+ }
535
+ // Print dim version first — hold long enough to see
528
536
  w(`${C.dim}${stripAnsi(line)}${r}`);
529
- await sleep(delay.line / 2);
537
+ await sleep(delay.line);
530
538
  // Overwrite with full color
531
539
  w('\r' + ANSI.clearLine + line + '\n');
532
- await sleep(delay.line / 2);
540
+ await sleep(delay.line / 3);
533
541
  }
534
542
  await sleep(delay.pause);
535
- // Phase 2: Greeting
543
+ // Phase 2: Greeting — type character by character
536
544
  const greeting = randomGreeting('confident');
537
- // Type out the greeting character by character
538
545
  w(' ' + exports.CODI_FACE.ready + ' ' + C.dim);
539
546
  for (const ch of greeting) {
540
547
  w(ch);
541
548
  await sleep(delay.char);
542
549
  }
543
550
  w(r + '\n');
551
+ // Hold the completed banner visible briefly
552
+ await sleep(200);
544
553
  }
545
554
  finally {
546
555
  w(ANSI.showCursor);
package/dist/cli.js CHANGED
@@ -52,7 +52,7 @@ const sandbox_1 = require("./sandbox");
52
52
  const replay_1 = require("./replay");
53
53
  const risk_1 = require("./risk");
54
54
  const sarif_1 = require("./sarif");
55
- const VERSION = '2.1.3';
55
+ const VERSION = '2.1.4';
56
56
  const C = {
57
57
  reset: '\x1b[0m',
58
58
  bold: '\x1b[1m',
@@ -274,7 +274,7 @@ async function main() {
274
274
  const isAuto = !!config.autoApprove;
275
275
  const noAnimate = args['no-animate'] === true || args['no-animation'] === true;
276
276
  if ((0, banner_1.shouldAnimate)() && !noAnimate) {
277
- await (0, banner_1.animateBootSequence)(banner_1.banner, VERSION, config.model, providerLabel, `${sessionShort}...`, isAuto, 'fast');
277
+ await (0, banner_1.animateBootSequence)(banner_1.banner, VERSION, config.model, providerLabel, `${sessionShort}...`, isAuto, 'normal');
278
278
  if (resumeId) {
279
279
  console.log(c(` ${(0, banner_1.randomGreeting)('resuming')}`, 'green'));
280
280
  }
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const VERSION = "2.1.3";
1
+ export declare const VERSION = "2.1.4";
2
2
  export { Agent } from './agent';
3
3
  export { OpenAIProvider } from './providers/openai';
4
4
  export { AnthropicProvider } from './providers/anthropic';
package/dist/index.js CHANGED
@@ -16,7 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.BANNER_1 = exports.CODI_FACE = exports.randomBanner = exports.sessionSummaryBanner = exports.codiReact = exports.formatReaction = exports.compactBanner = exports.randomGreeting = exports.banner = exports.getPassphrase = exports.deriveKey = exports.isEncryptionEnabled = exports.decryptContent = exports.encryptContent = exports.decryptLine = exports.encryptLine = exports.decrypt = exports.encrypt = exports.generateDefaultPolicyFile = exports.loadPolicy = exports.PolicyEnforcer = exports.sarifToString = exports.exportSarif = exports.RiskScorer = exports.MetricsCollector = exports.listReplayableSessions = exports.compareOutputs = exports.loadSessionForReplay = exports.ReplayProvider = exports.verifyMessages = exports.verifyMessage = exports.signMessage = exports.deriveSessionKey = exports.CapabilityChecker = exports.detectProvider = exports.getModelInfo = exports.PROVIDER_DEFAULTS = exports.MODEL_REGISTRY = exports.loadMCPTools = exports.loadPlugins = exports.parseToolCalls = exports.MemoryManager = exports.SessionManager = exports.buildRepoMap = exports.ContextManager = exports.ToolRegistry = exports.AnthropicProvider = exports.OpenAIProvider = exports.Agent = exports.VERSION = void 0;
18
18
  exports.shouldAnimate = exports.animateSessionEnd = exports.animateTyping = exports.animateBootSequence = exports.animateEyeBoot = exports.animateVisorScan = exports.animateReveal = exports.BANNER_3 = exports.BANNER_2 = void 0;
19
- exports.VERSION = '2.1.3';
19
+ exports.VERSION = '2.1.4';
20
20
  var agent_1 = require("./agent");
21
21
  Object.defineProperty(exports, "Agent", { enumerable: true, get: function () { return agent_1.Agent; } });
22
22
  var openai_1 = require("./providers/openai");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codebot-ai",
3
- "version": "2.1.3",
3
+ "version": "2.1.4",
4
4
  "description": "Zero-dependency autonomous AI agent. Code, browse, search, automate. Works with any LLM — Ollama, Claude, GPT, Gemini, DeepSeek, Groq, Mistral, Grok.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",