0agent 1.0.94 → 1.0.96

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/bin/chat.js CHANGED
@@ -409,14 +409,13 @@ const history = []; // command history for arrow keys
409
409
 
410
410
  // ─── Header ──────────────────────────────────────────────────────────────────
411
411
  function isFirstRun() {
412
- // Check if the graph DB has any conversations yet
413
- try {
414
- const dbPath = cfg?.graph?.db_path;
415
- if (!dbPath || !existsSync(dbPath)) return true;
416
- // If DB exists but is tiny (<10KB), likely first run
417
- const { statSync } = require('node:fs');
418
- return statSync(dbPath).size < 10240;
419
- } catch { return true; }
412
+ const flag = resolve(homedir(), '.0agent', '.onboarded');
413
+ return !existsSync(flag);
414
+ }
415
+
416
+ function markOnboarded() {
417
+ const flag = resolve(homedir(), '.0agent', '.onboarded');
418
+ try { writeFileSync(flag, new Date().toISOString(), 'utf8'); } catch {}
420
419
  }
421
420
 
422
421
  function printHeader() {
@@ -445,6 +444,7 @@ function printHeader() {
445
444
  console.log();
446
445
  console.log(fmt(C.bold, ' Let\'s start by getting to know each other. Tell me about yourself!'));
447
446
  console.log(fmt(C.dim, ' (Your name, what you do, what you\'re working on)\n'));
447
+ markOnboarded();
448
448
  } else {
449
449
  console.log(fmt(C.dim, '\n Type a task, or / for commands.\n'));
450
450
  }
package/dist/daemon.mjs CHANGED
@@ -12594,37 +12594,42 @@ var ZeroAgentDaemon = class {
12594
12594
  this.schedulerManager.start();
12595
12595
  if (this.sessionManager && this.eventBus && this.graph) {
12596
12596
  this.surfaceRouter = new SurfaceRouter(this.sessionManager, this.eventBus, this.graph);
12597
- const surfacesCfg = this.config["surfaces"];
12598
- const legacyTgCfg = this.config["telegram"];
12599
- const tgCfg = surfacesCfg?.["telegram"] ?? legacyTgCfg;
12600
- if (TelegramAdapter.isConfigured(tgCfg)) {
12597
+ const surfaces = this.config.surfaces;
12598
+ const tgCfg = surfaces?.telegram;
12599
+ if (tgCfg?.token && typeof tgCfg.token === "string" && tgCfg.token.length > 10) {
12601
12600
  this.surfaceRouter.register(new TelegramAdapter(tgCfg));
12602
- console.log("[0agent] Surface: Telegram");
12603
- } else if (TelegramBridge.isConfigured(tgCfg)) {
12604
- this.telegramBridge = new TelegramBridge(tgCfg, this.sessionManager, this.eventBus);
12605
- this.telegramBridge.start();
12606
- console.log("[0agent] Surface: Telegram (legacy bridge)");
12601
+ console.log("[0agent] Surface: Telegram \u2713");
12602
+ } else {
12603
+ const legacyTgCfg = this.config["telegram"];
12604
+ if (TelegramAdapter.isConfigured(legacyTgCfg)) {
12605
+ this.surfaceRouter.register(new TelegramAdapter(legacyTgCfg));
12606
+ console.log("[0agent] Surface: Telegram \u2713 (legacy)");
12607
+ } else if (TelegramBridge.isConfigured(legacyTgCfg)) {
12608
+ this.telegramBridge = new TelegramBridge(legacyTgCfg, this.sessionManager, this.eventBus);
12609
+ this.telegramBridge.start();
12610
+ console.log("[0agent] Surface: Telegram (legacy bridge)");
12611
+ }
12607
12612
  }
12608
- const slackCfg = surfacesCfg?.["slack"];
12613
+ const slackCfg = surfaces?.slack;
12609
12614
  if (SlackAdapter.isConfigured(slackCfg)) {
12610
12615
  this.surfaceRouter.register(new SlackAdapter(slackCfg));
12611
12616
  console.log("[0agent] Surface: Slack");
12612
12617
  }
12613
- const waCfg = surfacesCfg?.["whatsapp"];
12618
+ const waCfg = surfaces?.whatsapp;
12614
12619
  if (WhatsAppAdapter.isConfigured(waCfg)) {
12615
12620
  const waAdapter2 = new WhatsAppAdapter(waCfg);
12616
12621
  this.surfaceRouter.register(waAdapter2);
12617
- console.log("[0agent] Surface: WhatsApp");
12622
+ console.log("[0agent] Surface: WhatsApp \u2713");
12618
12623
  }
12619
- const voiceCfg = surfacesCfg?.["voice"];
12624
+ const voiceCfg = surfaces?.voice;
12620
12625
  if (voiceCfg?.["enabled"] === true) {
12621
12626
  this.surfaceRouter.register(new VoiceAdapter(voiceCfg));
12622
- console.log("[0agent] Surface: Voice");
12627
+ console.log("[0agent] Surface: Voice \u2713");
12623
12628
  }
12624
- const meetingCfg = surfacesCfg?.["meeting"];
12629
+ const meetingCfg = surfaces?.meeting;
12625
12630
  if (meetingCfg?.["enabled"] === true) {
12626
12631
  this.surfaceRouter.register(new MeetingAdapter(meetingCfg));
12627
- console.log("[0agent] Surface: Meeting transcription");
12632
+ console.log("[0agent] Surface: Meeting \u2713");
12628
12633
  }
12629
12634
  if (this.surfaceRouter.registeredSurfaces().length > 0) {
12630
12635
  await this.surfaceRouter.start();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "0agent",
3
- "version": "1.0.94",
3
+ "version": "1.0.96",
4
4
  "description": "A persistent, learning AI agent that runs on your machine. An agent that learns.",
5
5
  "private": false,
6
6
  "license": "Apache-2.0",