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.
- package/npm-shrinkwrap.json +2 -2
- package/openclaw.mjs +46 -2
- package/package.json +1 -1
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openclaw",
|
|
3
|
-
"version": "1.0.
|
|
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
|
+
"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.
|
|
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 ??
|