vilvona 1.0.9 → 1.0.10

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.
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "openclaw",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "openclaw",
9
- "version": "1.0.9",
9
+ "version": "1.0.10",
10
10
  "hasInstallScript": true,
11
11
  "license": "MIT",
12
12
  "dependencies": {
package/openclaw.mjs CHANGED
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import { spawn, execSync } from "node:child_process";
9
- import { existsSync, mkdirSync, readFileSync } from "node:fs";
9
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
10
10
  import { createRequire } from "node:module";
11
11
  import os from "node:os";
12
12
  import path from "node:path";
@@ -16,7 +16,7 @@ const VILVONA_VERSION = (() => {
16
16
  try {
17
17
  return _require("./package.json").version;
18
18
  } catch {
19
- return "1.0.9";
19
+ return "1.0.10";
20
20
  }
21
21
  })();
22
22
 
@@ -78,6 +78,32 @@ if (!existsSync(ENTRY)) {
78
78
  process.stderr.write(`\nSetup complete. Starting Vilvona AI...\n\n`);
79
79
  }
80
80
 
81
+ // ── Rebrand runtime UI ────────────────────────────────────────────────────────
82
+ const UI_HTML = path.join(
83
+ CACHE_DIR,
84
+ "node_modules",
85
+ "openclaw",
86
+ "dist",
87
+ "control-ui",
88
+ "index.html",
89
+ );
90
+ const BRAND_MARKER = "<!-- vilvona-brand -->";
91
+ if (existsSync(UI_HTML)) {
92
+ try {
93
+ let html = readFileSync(UI_HTML, "utf8");
94
+ if (!html.includes(BRAND_MARKER)) {
95
+ html = html.replace(/<title>OpenClaw[^<]*<\/title>/, "<title>Vilvona AI</title>").replace(
96
+ /(<\/body>\s*<\/html>)/,
97
+ ` <script>
98
+ ${BRAND_MARKER}
99
+ (function(){function p(){document.title="Vilvona AI";var w=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT);var n;while((n=w.nextNode())){if(n.nodeValue&&n.nodeValue.includes("OpenClaw"))n.nodeValue=n.nodeValue.replace(/OpenClaw/g,"Vilvona AI");}document.querySelectorAll("[alt],[title],[aria-label],[placeholder]").forEach(function(el){["alt","title","aria-label","placeholder"].forEach(function(a){var v=el.getAttribute(a);if(v&&v.includes("OpenClaw"))el.setAttribute(a,v.replace(/OpenClaw/g,"Vilvona AI"));});});}p();new MutationObserver(p).observe(document.body,{childList:true,subtree:true,characterData:true});})();
100
+ </script>\n $1`,
101
+ );
102
+ writeFileSync(UI_HTML, html, "utf8");
103
+ }
104
+ } catch {}
105
+ }
106
+
81
107
  // ── Vilvona AI banner ─────────────────────────────────────────────────────────
82
108
  process.stdout.write(
83
109
  "\n\x1b[35m" +
@@ -92,6 +118,24 @@ process.stdout.write(
92
118
  "\x1b[90m github.com/vignesh2027/Vilvona-AI • by Vignesh S\x1b[0m\n\n",
93
119
  );
94
120
 
121
+ // ── API key check ─────────────────────────────────────────────────────────────
122
+ const hasKey =
123
+ process.env.ANTHROPIC_API_KEY ||
124
+ process.env.OPENAI_API_KEY ||
125
+ process.env.GROQ_API_KEY ||
126
+ process.env.VILVONA_PRO_KEY;
127
+
128
+ if (!hasKey) {
129
+ process.stderr.write(
130
+ "\x1b[33m No API key detected.\x1b[0m\n" +
131
+ " Set one before running:\n\n" +
132
+ " export ANTHROPIC_API_KEY=sk-ant-... \x1b[90m← Claude Fable 5 (recommended)\x1b[0m\n" +
133
+ " export OPENAI_API_KEY=sk-... \x1b[90m← GPT models\x1b[0m\n" +
134
+ " export GROQ_API_KEY=gsk_... \x1b[90m← Groq (free tier)\x1b[0m\n\n" +
135
+ " Get an Anthropic key: \x1b[36mhttps://console.anthropic.com\x1b[0m\n\n",
136
+ );
137
+ }
138
+
95
139
  // ── Set Vilvona defaults ──────────────────────────────────────────────────────
96
140
  process.env.OPENCLAW_DEFAULT_MODEL =
97
141
  process.env.VILVONA_DEFAULT_MODEL ??
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vilvona",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "description": "Vilvona AI — Your personal AI that connects everything. Claude Fable 5 powered, works on mobile, Tamil & Hindi support.",
5
5
  "keywords": [
6
6
  "ai",