vilvona 1.0.1 → 1.0.2

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/openclaw.mjs +37 -16
  2. package/package.json +1 -1
package/openclaw.mjs CHANGED
@@ -18,12 +18,12 @@ const [curMajor, curMinor] = process.versions.node.split(".").map(Number);
18
18
  if (curMajor < MIN_MAJOR || (curMajor === MIN_MAJOR && curMinor < MIN_MINOR)) {
19
19
  process.stderr.write(
20
20
  `\nVilvona AI requires Node.js ${MIN_MAJOR}.${MIN_MINOR}+\n` +
21
- `Current version: v${process.versions.node}\n\n` +
22
- `Fix it with nvm:\n` +
23
- ` nvm install ${MIN_MAJOR}\n` +
24
- ` nvm use ${MIN_MAJOR}\n` +
25
- ` nvm alias default ${MIN_MAJOR}\n\n` +
26
- `Then run: npx vilvona\n\n`
21
+ `Current version: v${process.versions.node}\n\n` +
22
+ `Fix it with nvm:\n` +
23
+ ` nvm install ${MIN_MAJOR}\n` +
24
+ ` nvm use ${MIN_MAJOR}\n` +
25
+ ` nvm alias default ${MIN_MAJOR}\n\n` +
26
+ `Then run: npx vilvona\n\n`,
27
27
  );
28
28
  process.exit(1);
29
29
  }
@@ -42,8 +42,7 @@ const ENTRY = path.join(CACHE_DIR, "node_modules", "openclaw", "dist", "entry.js
42
42
  // ── Install openclaw runtime if not cached ────────────────────────────────────
43
43
  if (!existsSync(ENTRY)) {
44
44
  process.stderr.write(
45
- `\nVilvona AI — first run setup\n` +
46
- `Installing OpenClaw runtime v${OPENCLAW_VERSION}...\n\n`
45
+ `\nVilvona AI — first run setup\n` + `Installing OpenClaw runtime v${OPENCLAW_VERSION}...\n\n`,
47
46
  );
48
47
 
49
48
  mkdirSync(CACHE_DIR, { recursive: true });
@@ -51,12 +50,12 @@ if (!existsSync(ENTRY)) {
51
50
  try {
52
51
  execSync(
53
52
  `npm install --prefix "${CACHE_DIR}" openclaw@${OPENCLAW_VERSION} --save=false --loglevel=error`,
54
- { stdio: "inherit" }
53
+ { stdio: "inherit" },
55
54
  );
56
55
  } catch {
57
56
  process.stderr.write(
58
57
  `\nFailed to install runtime. Check your internet connection and try again.\n` +
59
- `Or run: npm install -g openclaw && openclaw\n\n`
58
+ `Or run: npm install -g openclaw && openclaw\n\n`,
60
59
  );
61
60
  process.exit(1);
62
61
  }
@@ -69,6 +68,20 @@ if (!existsSync(ENTRY)) {
69
68
  process.stderr.write(`\nSetup complete. Starting Vilvona AI...\n\n`);
70
69
  }
71
70
 
71
+ // ── Vilvona AI banner ─────────────────────────────────────────────────────────
72
+ process.stdout.write(
73
+ "\n\x1b[35m" +
74
+ "██╗ ██╗██╗██╗ ██╗ ██╗ ██████╗ ███╗ ██╗ █████╗ █████╗ ██╗\n" +
75
+ "██║ ██║██║██║ ██║ ██║██╔═══██╗████╗ ██║██╔══██╗ ██╔══██╗██║\n" +
76
+ "██║ ██║██║██║ ██║ ██║██║ ██║██╔██╗ ██║███████║ ███████║██║\n" +
77
+ "╚██╗ ██╔╝██║██║ ╚██╗ ██╔╝██║ ██║██║╚██╗██║██╔══██║ ██╔══██║██║\n" +
78
+ " ╚████╔╝ ██║███████╗ ╚████╔╝ ╚██████╔╝██║ ╚████║██║ ██║ ██║ ██║██║\n" +
79
+ " ╚═══╝ ╚═╝╚══════╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝\n" +
80
+ "\x1b[0m" +
81
+ "\x1b[36m Powered by Claude Fable 5 • Tamil & Hindi • Mobile PWA\x1b[0m\n" +
82
+ "\x1b[90m github.com/vignesh2027/Vilvona-AI • by Vignesh S\x1b[0m\n\n"
83
+ );
84
+
72
85
  // ── Set Vilvona defaults ──────────────────────────────────────────────────────
73
86
  process.env.OPENCLAW_DEFAULT_MODEL =
74
87
  process.env.VILVONA_DEFAULT_MODEL ??
@@ -80,15 +93,23 @@ if (process.env.VILVONA_PRO_KEY) {
80
93
  }
81
94
 
82
95
  // ── Launch ────────────────────────────────────────────────────────────────────
83
- const child = spawn(
84
- process.execPath,
85
- [ENTRY, ...process.argv.slice(2)],
86
- { stdio: "inherit", env: process.env }
87
- );
96
+ const child = spawn(process.execPath, [ENTRY, ...process.argv.slice(2)], {
97
+ stdio: "inherit",
98
+ env: process.env,
99
+ });
100
+
101
+ // Forward signals to child — Windows needs SIGTERM/SIGINT/SIGBREAK
102
+ const signals = process.platform === "win32"
103
+ ? ["SIGTERM", "SIGINT", "SIGBREAK"]
104
+ : ["SIGTERM", "SIGINT", "SIGHUP", "SIGQUIT"];
105
+
106
+ for (const sig of signals) {
107
+ try { process.on(sig, () => { try { child.kill(sig); } catch {} }); } catch {}
108
+ }
88
109
 
89
110
  child.on("exit", (code, signal) => {
90
111
  if (signal) {
91
- process.kill(process.pid, signal);
112
+ try { process.kill(process.pid, signal); } catch { process.exit(1); }
92
113
  } else {
93
114
  process.exit(code ?? 0);
94
115
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vilvona",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Vilvona AI — Your personal AI that connects everything. Claude Fable 5 powered, works on mobile, Tamil & Hindi support.",
5
5
  "keywords": ["ai", "assistant", "claude", "fable5", "personal-ai", "whatsapp", "telegram", "slack", "tamil", "hindi", "self-hosted", "open-source", "chatbot", "automation"],
6
6
  "homepage": "https://github.com/vignesh2027/Vilvona-AI#readme",