@okclaw-build/cli 1.0.0-beta.1
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/okclaw.js +2 -0
- package/dist/commands/check.d.ts +1 -0
- package/dist/commands/check.js +11 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/edit.d.ts +10 -0
- package/dist/commands/edit.js +44 -0
- package/dist/commands/edit.js.map +1 -0
- package/dist/commands/feed.d.ts +10 -0
- package/dist/commands/feed.js +158 -0
- package/dist/commands/feed.js.map +1 -0
- package/dist/commands/install.d.ts +1 -0
- package/dist/commands/install.js +72 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/service.d.ts +4 -0
- package/dist/commands/service.js +23 -0
- package/dist/commands/service.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +96 -0
- package/dist/index.js.map +1 -0
- package/dist/installers/base.d.ts +5 -0
- package/dist/installers/base.js +2 -0
- package/dist/installers/base.js.map +1 -0
- package/dist/installers/channel.d.ts +17 -0
- package/dist/installers/channel.js +129 -0
- package/dist/installers/channel.js.map +1 -0
- package/dist/installers/openclaw.d.ts +18 -0
- package/dist/installers/openclaw.js +104 -0
- package/dist/installers/openclaw.js.map +1 -0
- package/dist/installers/openviking.d.ts +28 -0
- package/dist/installers/openviking.js +236 -0
- package/dist/installers/openviking.js.map +1 -0
- package/dist/utils/constants.d.ts +26 -0
- package/dist/utils/constants.js +45 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/deps.d.ts +18 -0
- package/dist/utils/deps.js +177 -0
- package/dist/utils/deps.js.map +1 -0
- package/dist/utils/logger.d.ts +4 -0
- package/dist/utils/logger.js +5 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/mirror.d.ts +1 -0
- package/dist/utils/mirror.js +15 -0
- package/dist/utils/mirror.js.map +1 -0
- package/dist/utils/shell.d.ts +24 -0
- package/dist/utils/shell.js +86 -0
- package/dist/utils/shell.js.map +1 -0
- package/package.json +28 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/installers/channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Installer } from './base.js';
|
|
2
|
+
export declare class OpenclawInstaller implements Installer {
|
|
3
|
+
checkDeps(): Promise<void>;
|
|
4
|
+
install(version: string): Promise<void>;
|
|
5
|
+
/**
|
|
6
|
+
* Config format (directly the providers map):
|
|
7
|
+
* {
|
|
8
|
+
* "moonshot": {
|
|
9
|
+
* "baseUrl": "...", "apiKey": "...", "api": "openai-completions",
|
|
10
|
+
* "models": [{ "id": "kimi-k2.5", ... }]
|
|
11
|
+
* }
|
|
12
|
+
* }
|
|
13
|
+
*
|
|
14
|
+
* Merges into openclaw.json -> models.providers
|
|
15
|
+
* Sets agents.defaults.model to first provider's first model
|
|
16
|
+
*/
|
|
17
|
+
configure(config: Record<string, unknown>): Promise<void>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync, existsSync, cpSync, mkdirSync } from 'node:fs';
|
|
2
|
+
import { shell, shellRetry } from '../utils/shell.js';
|
|
3
|
+
import { ensureNodeVersion, checkDiskSpace } from '../utils/deps.js';
|
|
4
|
+
import { info, warn } from '../utils/logger.js';
|
|
5
|
+
import { OPENCLAW_HOME, OKCLAW_BACKUP_DIR } from '../utils/constants.js';
|
|
6
|
+
const OPENCLAW_CONFIG = `${OPENCLAW_HOME}/openclaw.json`;
|
|
7
|
+
export class OpenclawInstaller {
|
|
8
|
+
async checkDeps() {
|
|
9
|
+
await checkDiskSpace(500);
|
|
10
|
+
await ensureNodeVersion();
|
|
11
|
+
}
|
|
12
|
+
async install(version) {
|
|
13
|
+
if (existsSync(OPENCLAW_CONFIG)) {
|
|
14
|
+
const ts = new Date().toISOString().replace(/[:.]/g, '').slice(0, 15);
|
|
15
|
+
const backupDir = `${OKCLAW_BACKUP_DIR}/openclaw-config-${ts}`;
|
|
16
|
+
mkdirSync(backupDir, { recursive: true });
|
|
17
|
+
cpSync(OPENCLAW_CONFIG, `${backupDir}/openclaw.json`);
|
|
18
|
+
info(`Backed up openclaw config to ${backupDir}`);
|
|
19
|
+
}
|
|
20
|
+
info(`Installing openclaw@${version}...`);
|
|
21
|
+
// --ignore-scripts: skip postinstall to avoid @matrix-org/matrix-sdk-crypto-nodejs
|
|
22
|
+
// which downloads ~40MB binary from GitHub (blocked/slow in China)
|
|
23
|
+
await shellRetry(`npm install -g openclaw@${version} --prefer-offline --no-audit --no-fund --ignore-scripts`);
|
|
24
|
+
// Remove the problematic postinstall script, then rebuild everything else
|
|
25
|
+
info('Running native module builds...');
|
|
26
|
+
await shell(`rm -f $(npm root -g)/openclaw/node_modules/@matrix-org/matrix-sdk-crypto-nodejs/download-lib.js 2>/dev/null || true`);
|
|
27
|
+
await shell(`cd $(npm root -g)/openclaw && npm rebuild --no-audit --no-fund 2>&1 || true`);
|
|
28
|
+
// Set gateway.mode=local so gateway can start without --allow-unconfigured
|
|
29
|
+
await shell("openclaw config set gateway.mode local").catch(() => { });
|
|
30
|
+
info('Registering openclaw gateway as system service...');
|
|
31
|
+
await shell('openclaw gateway install --force').catch(() => {
|
|
32
|
+
warn('gateway install skipped (may not be supported on this platform)');
|
|
33
|
+
});
|
|
34
|
+
info(`openclaw@${version} installed.`);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Config format (directly the providers map):
|
|
38
|
+
* {
|
|
39
|
+
* "moonshot": {
|
|
40
|
+
* "baseUrl": "...", "apiKey": "...", "api": "openai-completions",
|
|
41
|
+
* "models": [{ "id": "kimi-k2.5", ... }]
|
|
42
|
+
* }
|
|
43
|
+
* }
|
|
44
|
+
*
|
|
45
|
+
* Merges into openclaw.json -> models.providers
|
|
46
|
+
* Sets agents.defaults.model to first provider's first model
|
|
47
|
+
*/
|
|
48
|
+
async configure(config) {
|
|
49
|
+
if (Object.keys(config).length === 0)
|
|
50
|
+
return;
|
|
51
|
+
info('Configuring openclaw models & providers...');
|
|
52
|
+
let openclawConfig = {};
|
|
53
|
+
if (existsSync(OPENCLAW_CONFIG)) {
|
|
54
|
+
try {
|
|
55
|
+
openclawConfig = JSON.parse(readFileSync(OPENCLAW_CONFIG, 'utf8'));
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
warn('Failed to parse existing openclaw.json, starting fresh for models section.');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Ensure models.providers exists
|
|
62
|
+
if (!openclawConfig.models || typeof openclawConfig.models !== 'object') {
|
|
63
|
+
openclawConfig.models = { mode: 'merge', providers: {} };
|
|
64
|
+
}
|
|
65
|
+
const models = openclawConfig.models;
|
|
66
|
+
if (!models.providers || typeof models.providers !== 'object') {
|
|
67
|
+
models.providers = {};
|
|
68
|
+
}
|
|
69
|
+
const existingProviders = models.providers;
|
|
70
|
+
// Merge providers and find default model
|
|
71
|
+
let defaultModel = '';
|
|
72
|
+
for (const [providerName, providerConfig] of Object.entries(config)) {
|
|
73
|
+
existingProviders[providerName] = providerConfig;
|
|
74
|
+
info(`Added provider: ${providerName}`);
|
|
75
|
+
if (!defaultModel) {
|
|
76
|
+
const pc = providerConfig;
|
|
77
|
+
const modelList = pc.models;
|
|
78
|
+
if (modelList?.[0]?.id) {
|
|
79
|
+
defaultModel = `${providerName}/${modelList[0].id}`;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Write config
|
|
84
|
+
mkdirSync(OPENCLAW_HOME, { recursive: true });
|
|
85
|
+
writeFileSync(OPENCLAW_CONFIG, JSON.stringify(openclawConfig, null, 2) + '\n', 'utf8');
|
|
86
|
+
info(`Written ${OPENCLAW_CONFIG}`);
|
|
87
|
+
// Set default model — agents.defaults.model is { "primary": "provider/modelId" }
|
|
88
|
+
if (defaultModel) {
|
|
89
|
+
info(`Setting default model: ${defaultModel}`);
|
|
90
|
+
await shell(`openclaw config set agents.defaults.model.primary '${defaultModel}'`).catch(() => {
|
|
91
|
+
warn('Failed to set default model via CLI, patching directly...');
|
|
92
|
+
const agents = (openclawConfig.agents ?? {});
|
|
93
|
+
const defaults = (agents.defaults ?? {});
|
|
94
|
+
defaults.model = { primary: defaultModel };
|
|
95
|
+
agents.defaults = defaults;
|
|
96
|
+
openclawConfig.agents = agents;
|
|
97
|
+
writeFileSync(OPENCLAW_CONFIG, JSON.stringify(openclawConfig, null, 2) + '\n', 'utf8');
|
|
98
|
+
});
|
|
99
|
+
info(`Default model: ${defaultModel}`);
|
|
100
|
+
}
|
|
101
|
+
info('openclaw configured.');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=openclaw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openclaw.js","sourceRoot":"","sources":["../../src/installers/openclaw.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Installer } from './base.js';
|
|
2
|
+
/**
|
|
3
|
+
* Replicate ov-install logic:
|
|
4
|
+
* 1. pip install openviking (from tsinghua mirror)
|
|
5
|
+
* 2. Download plugin files from jsdelivr CDN (GitHub mirror, works in China)
|
|
6
|
+
* 3. npm install plugin dependencies
|
|
7
|
+
* 4. Register plugin with openclaw & claim contextEngine slot
|
|
8
|
+
* 5. Generate openviking.env
|
|
9
|
+
* 6. Write ov.conf if config provided
|
|
10
|
+
*/
|
|
11
|
+
export declare class OpenvikingInstaller implements Installer {
|
|
12
|
+
checkDeps(): Promise<void>;
|
|
13
|
+
install(version: string, packageUrl?: string): Promise<void>;
|
|
14
|
+
configure(config: Record<string, unknown>): Promise<void>;
|
|
15
|
+
private installPythonPackage;
|
|
16
|
+
/**
|
|
17
|
+
* Download plugin files from jsdelivr CDN (GitHub content mirror).
|
|
18
|
+
* Same as ov-install but uses jsdelivr instead of raw.githubusercontent.com.
|
|
19
|
+
*/
|
|
20
|
+
private deployFromJsdelivr;
|
|
21
|
+
/**
|
|
22
|
+
* Deploy from a local tar.gz or URL (fallback for --package-url).
|
|
23
|
+
*/
|
|
24
|
+
private deployFromPackage;
|
|
25
|
+
private registerPlugin;
|
|
26
|
+
private addToPluginsAllow;
|
|
27
|
+
private generateEnvFile;
|
|
28
|
+
}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync, mkdirSync, existsSync, cpSync, rmSync } from 'node:fs';
|
|
2
|
+
import { shell, shellCapture } from '../utils/shell.js';
|
|
3
|
+
import { ensurePython, ensureCommand, checkDiskSpace } from '../utils/deps.js';
|
|
4
|
+
import { info, warn } from '../utils/logger.js';
|
|
5
|
+
import { OPENCLAW_HOME, OPENVIKING_HOME, OPENVIKING_CONF, OPENVIKING_ENV, OPENVIKING_PORT, OKCLAW_BACKUP_DIR, PIP_INDEX_URL, PIP_TRUSTED_HOST, NPM_REGISTRY, JSDELIVR_GH, OPENVIKING_REPO, OPENVIKING_PLUGIN_DIR, OPENVIKING_PLUGIN_REQUIRED_FILES, OPENVIKING_PLUGIN_OPTIONAL_FILES, } from '../utils/constants.js';
|
|
6
|
+
/**
|
|
7
|
+
* Replicate ov-install logic:
|
|
8
|
+
* 1. pip install openviking (from tsinghua mirror)
|
|
9
|
+
* 2. Download plugin files from jsdelivr CDN (GitHub mirror, works in China)
|
|
10
|
+
* 3. npm install plugin dependencies
|
|
11
|
+
* 4. Register plugin with openclaw & claim contextEngine slot
|
|
12
|
+
* 5. Generate openviking.env
|
|
13
|
+
* 6. Write ov.conf if config provided
|
|
14
|
+
*/
|
|
15
|
+
export class OpenvikingInstaller {
|
|
16
|
+
async checkDeps() {
|
|
17
|
+
await checkDiskSpace(800);
|
|
18
|
+
await ensureCommand('openclaw');
|
|
19
|
+
await ensurePython();
|
|
20
|
+
}
|
|
21
|
+
async install(version, packageUrl) {
|
|
22
|
+
// --- Step 1: pip install openviking ---
|
|
23
|
+
await this.installPythonPackage(version);
|
|
24
|
+
// --- Step 2: Deploy openclaw plugin files ---
|
|
25
|
+
if (packageUrl) {
|
|
26
|
+
await this.deployFromPackage(packageUrl);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
await this.deployFromJsdelivr(version);
|
|
30
|
+
}
|
|
31
|
+
// --- Step 3: Register with openclaw & add to plugins.allow ---
|
|
32
|
+
await this.registerPlugin();
|
|
33
|
+
await this.addToPluginsAllow();
|
|
34
|
+
// --- Step 4: Generate openviking.env ---
|
|
35
|
+
await this.generateEnvFile();
|
|
36
|
+
info(`openviking@${version} installed.`);
|
|
37
|
+
}
|
|
38
|
+
async configure(config) {
|
|
39
|
+
if (Object.keys(config).length === 0)
|
|
40
|
+
return;
|
|
41
|
+
info('Configuring openviking (ov.conf)...');
|
|
42
|
+
if (existsSync(OPENVIKING_CONF)) {
|
|
43
|
+
const ts = new Date().toISOString().replace(/[:.]/g, '').slice(0, 15);
|
|
44
|
+
mkdirSync(OKCLAW_BACKUP_DIR, { recursive: true });
|
|
45
|
+
cpSync(OPENVIKING_CONF, `${OKCLAW_BACKUP_DIR}/ov.conf-${ts}`);
|
|
46
|
+
}
|
|
47
|
+
mkdirSync(OPENVIKING_HOME, { recursive: true });
|
|
48
|
+
// ov.conf is JSON — load existing or start with defaults, then merge
|
|
49
|
+
let ovConf = {};
|
|
50
|
+
if (existsSync(OPENVIKING_CONF)) {
|
|
51
|
+
try {
|
|
52
|
+
ovConf = JSON.parse(readFileSync(OPENVIKING_CONF, 'utf8'));
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
warn('Failed to parse existing ov.conf, using defaults.');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (!ovConf.server) {
|
|
59
|
+
ovConf.server = {
|
|
60
|
+
host: '127.0.0.1', port: OPENVIKING_PORT,
|
|
61
|
+
root_api_key: null, cors_origins: ['*'],
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
if (!ovConf.storage) {
|
|
65
|
+
ovConf.storage = {
|
|
66
|
+
workspace: `${OPENVIKING_HOME}/data`,
|
|
67
|
+
vectordb: { name: 'context', backend: 'local', project: 'default' },
|
|
68
|
+
agfs: { port: 1833, log_level: 'warn', backend: 'local', timeout: 10, retry_times: 3 },
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
if (!ovConf.log) {
|
|
72
|
+
ovConf.log = {
|
|
73
|
+
level: 'WARNING',
|
|
74
|
+
format: '%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
|
75
|
+
output: 'file', rotation: true, rotation_days: 3, rotation_interval: 'midnight',
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
for (const [key, value] of Object.entries(config)) {
|
|
79
|
+
ovConf[key] = value;
|
|
80
|
+
}
|
|
81
|
+
writeFileSync(OPENVIKING_CONF, JSON.stringify(ovConf, null, 2) + '\n', 'utf8');
|
|
82
|
+
info(`Written ${OPENVIKING_CONF}`);
|
|
83
|
+
}
|
|
84
|
+
// ---- private ----
|
|
85
|
+
async installPythonPackage(version) {
|
|
86
|
+
info('Installing openviking Python package...');
|
|
87
|
+
const pipBase = `python3 -m pip install --index-url ${PIP_INDEX_URL} --trusted-host ${PIP_TRUSTED_HOST}`;
|
|
88
|
+
const pkgSpec = version === 'latest' ? 'openviking' : `openviking==${version}`;
|
|
89
|
+
const r1 = await shellCapture(`${pipBase} ${pkgSpec} 2>&1`);
|
|
90
|
+
if (r1.code === 0) {
|
|
91
|
+
info('openviking Python package installed ✓');
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (r1.stderr.includes('externally-managed') || r1.stdout.includes('externally-managed')) {
|
|
95
|
+
info('Retrying with --break-system-packages...');
|
|
96
|
+
const r2 = await shellCapture(`${pipBase} --break-system-packages ${pkgSpec} 2>&1`);
|
|
97
|
+
if (r2.code === 0) {
|
|
98
|
+
info('openviking Python package installed ✓');
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
info('Retrying with virtual environment...');
|
|
103
|
+
const venvDir = '/root/okclaw/venv/openviking';
|
|
104
|
+
await shell(`python3 -m venv ${venvDir}`);
|
|
105
|
+
await shell(`${venvDir}/bin/pip install --index-url ${PIP_INDEX_URL} --trusted-host ${PIP_TRUSTED_HOST} ${pkgSpec}`);
|
|
106
|
+
await shell(`ln -sf ${venvDir}/bin/openviking /usr/local/bin/openviking 2>/dev/null || true`);
|
|
107
|
+
info('openviking Python package installed (venv) ✓');
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Download plugin files from jsdelivr CDN (GitHub content mirror).
|
|
111
|
+
* Same as ov-install but uses jsdelivr instead of raw.githubusercontent.com.
|
|
112
|
+
*/
|
|
113
|
+
async deployFromJsdelivr(version) {
|
|
114
|
+
info('Deploying openviking plugin from jsdelivr CDN...');
|
|
115
|
+
// Use version tag or fallback to main
|
|
116
|
+
const ref = version === 'latest' ? 'main' : `v${version}`;
|
|
117
|
+
const baseUrl = `${JSDELIVR_GH}/${OPENVIKING_REPO}@${ref}/${OPENVIKING_PLUGIN_DIR}`;
|
|
118
|
+
const pluginDir = `${OPENCLAW_HOME}/extensions/openviking`;
|
|
119
|
+
const stagingDir = `${pluginDir}.staging-${process.pid}`;
|
|
120
|
+
// Clean up any previous staging/install
|
|
121
|
+
if (existsSync(stagingDir))
|
|
122
|
+
rmSync(stagingDir, { recursive: true, force: true });
|
|
123
|
+
if (existsSync(pluginDir))
|
|
124
|
+
rmSync(pluginDir, { recursive: true, force: true });
|
|
125
|
+
mkdirSync(stagingDir, { recursive: true });
|
|
126
|
+
// Download required files
|
|
127
|
+
for (const file of OPENVIKING_PLUGIN_REQUIRED_FILES) {
|
|
128
|
+
info(` Downloading ${file}...`);
|
|
129
|
+
const r = await shellCapture(`curl -fsSL --connect-timeout 15 --retry 3 -o "${stagingDir}/${file}" "${baseUrl}/${file}" 2>&1`);
|
|
130
|
+
if (r.code !== 0) {
|
|
131
|
+
// If tagged version fails, retry with main
|
|
132
|
+
if (ref !== 'main') {
|
|
133
|
+
const fallbackUrl = `${JSDELIVR_GH}/${OPENVIKING_REPO}@main/${OPENVIKING_PLUGIN_DIR}/${file}`;
|
|
134
|
+
info(` Retrying ${file} from main branch...`);
|
|
135
|
+
await shell(`curl -fsSL --connect-timeout 15 --retry 3 -o "${stagingDir}/${file}" "${fallbackUrl}"`);
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
throw new Error(`Failed to download required file: ${file}`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Download optional files (skip on 404)
|
|
143
|
+
for (const file of OPENVIKING_PLUGIN_OPTIONAL_FILES) {
|
|
144
|
+
const r = await shellCapture(`curl -fsSL --connect-timeout 10 --retry 2 -o "${stagingDir}/${file}" "${baseUrl}/${file}" 2>&1`);
|
|
145
|
+
if (r.code !== 0) {
|
|
146
|
+
// Try main branch
|
|
147
|
+
if (ref !== 'main') {
|
|
148
|
+
await shellCapture(`curl -fsSL --connect-timeout 10 -o "${stagingDir}/${file}" "${JSDELIVR_GH}/${OPENVIKING_REPO}@main/${OPENVIKING_PLUGIN_DIR}/${file}" 2>&1`);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Install npm dependencies
|
|
153
|
+
info('Installing plugin npm dependencies...');
|
|
154
|
+
await shell(`cd "${stagingDir}" && npm install --omit=dev --no-audit --no-fund --registry ${NPM_REGISTRY}`);
|
|
155
|
+
// Move staging to final location
|
|
156
|
+
await shell(`mv "${stagingDir}" "${pluginDir}"`);
|
|
157
|
+
info('openviking plugin deployed ✓');
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Deploy from a local tar.gz or URL (fallback for --package-url).
|
|
161
|
+
*/
|
|
162
|
+
async deployFromPackage(packageUrl) {
|
|
163
|
+
info('Deploying openviking plugin from package...');
|
|
164
|
+
const pluginDir = `${OPENCLAW_HOME}/extensions/openviking`;
|
|
165
|
+
if (existsSync(pluginDir))
|
|
166
|
+
rmSync(pluginDir, { recursive: true, force: true });
|
|
167
|
+
if (packageUrl.startsWith('http')) {
|
|
168
|
+
const archive = `/tmp/openviking-plugin.tar.gz`;
|
|
169
|
+
await shell(`curl -fsSL --connect-timeout 30 --retry 3 -o "${archive}" "${packageUrl}"`);
|
|
170
|
+
mkdirSync(pluginDir, { recursive: true });
|
|
171
|
+
await shell(`tar -xzf "${archive}" -C "${pluginDir}" --strip-components=1 2>/dev/null || tar -xzf "${archive}" -C "${pluginDir}"`);
|
|
172
|
+
await shell(`rm -f "${archive}"`);
|
|
173
|
+
}
|
|
174
|
+
else if (existsSync(packageUrl)) {
|
|
175
|
+
mkdirSync(pluginDir, { recursive: true });
|
|
176
|
+
await shell(`tar -xzf "${packageUrl}" -C "${pluginDir}" --strip-components=1 2>/dev/null || tar -xzf "${packageUrl}" -C "${pluginDir}"`);
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
throw new Error(`Package not found: ${packageUrl}`);
|
|
180
|
+
}
|
|
181
|
+
if (existsSync(`${pluginDir}/package.json`)) {
|
|
182
|
+
info('Installing plugin npm dependencies...');
|
|
183
|
+
await shell(`cd "${pluginDir}" && npm install --omit=dev --no-audit --no-fund --registry ${NPM_REGISTRY}`);
|
|
184
|
+
}
|
|
185
|
+
info('openviking plugin deployed ✓');
|
|
186
|
+
}
|
|
187
|
+
async registerPlugin() {
|
|
188
|
+
info('Registering openviking plugin with openclaw...');
|
|
189
|
+
const settings = {
|
|
190
|
+
'plugins.entries.openviking.config.mode': 'local',
|
|
191
|
+
'plugins.entries.openviking.config.configPath': OPENVIKING_CONF,
|
|
192
|
+
'plugins.entries.openviking.config.port': String(OPENVIKING_PORT),
|
|
193
|
+
'plugins.slots.contextEngine': 'openviking',
|
|
194
|
+
};
|
|
195
|
+
for (const [key, value] of Object.entries(settings)) {
|
|
196
|
+
await shell(`openclaw config set ${key} '${value}'`).catch(() => {
|
|
197
|
+
warn(`Failed to set ${key}`);
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
info('openviking plugin registered.');
|
|
201
|
+
}
|
|
202
|
+
async addToPluginsAllow() {
|
|
203
|
+
const configFile = `${OPENCLAW_HOME}/openclaw.json`;
|
|
204
|
+
if (!existsSync(configFile))
|
|
205
|
+
return;
|
|
206
|
+
try {
|
|
207
|
+
const cfg = JSON.parse(readFileSync(configFile, 'utf8'));
|
|
208
|
+
if (!cfg.plugins)
|
|
209
|
+
cfg.plugins = {};
|
|
210
|
+
if (!Array.isArray(cfg.plugins.allow))
|
|
211
|
+
cfg.plugins.allow = [];
|
|
212
|
+
if (!cfg.plugins.allow.includes('openviking')) {
|
|
213
|
+
cfg.plugins.allow.push('openviking');
|
|
214
|
+
writeFileSync(configFile, JSON.stringify(cfg, null, 2) + '\n', 'utf8');
|
|
215
|
+
info('Added openviking to plugins.allow');
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
catch (e) {
|
|
219
|
+
warn(`Failed to update plugins.allow: ${e}`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
async generateEnvFile() {
|
|
223
|
+
mkdirSync(OPENCLAW_HOME, { recursive: true });
|
|
224
|
+
const content = [
|
|
225
|
+
'# Generated by okclaw CLI — source before starting openclaw gateway',
|
|
226
|
+
`export OPENVIKING_PORT=${OPENVIKING_PORT}`,
|
|
227
|
+
`export OPENVIKING_CONFIG=${OPENVIKING_CONF}`,
|
|
228
|
+
`export OPENVIKING_DATA_DIR=${OPENVIKING_HOME}/data`,
|
|
229
|
+
`export OPENVIKING_LOG_DIR=${OPENVIKING_HOME}/data/log`,
|
|
230
|
+
'',
|
|
231
|
+
].join('\n');
|
|
232
|
+
writeFileSync(OPENVIKING_ENV, content, 'utf8');
|
|
233
|
+
info(`Written ${OPENVIKING_ENV}`);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=openviking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openviking.js","sourceRoot":"","sources":["../../src/installers/openviking.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare const OKCLAW_HOME = "/root/okclaw";
|
|
2
|
+
export declare const OKCLAW_CONFIG_DIR = "/root/okclaw/config";
|
|
3
|
+
export declare const OKCLAW_BACKUP_DIR = "/root/okclaw/backup";
|
|
4
|
+
export declare const OKCLAW_TMP_DIR = "/root/okclaw/tmp";
|
|
5
|
+
export declare const OPENCLAW_HOME = "/root/.openclaw";
|
|
6
|
+
export declare const OPENCLAW_WORKSPACE = "/root/.openclaw/workspace";
|
|
7
|
+
export declare const OPENVIKING_HOME = "/root/.openviking";
|
|
8
|
+
export declare const OPENVIKING_CONF = "/root/.openviking/ov.conf";
|
|
9
|
+
export declare const OPENVIKING_ENV = "/root/.openclaw/openviking.env";
|
|
10
|
+
export declare const OPENVIKING_PORT = 1933;
|
|
11
|
+
export declare const NODE_MIN_MAJOR = 22;
|
|
12
|
+
export declare const NODE_MIN_MINOR = 16;
|
|
13
|
+
export declare const NODE_INSTALL_VERSION = "22.16.0";
|
|
14
|
+
export declare const PYTHON_MIN_MAJOR = 3;
|
|
15
|
+
export declare const PYTHON_MIN_MINOR = 11;
|
|
16
|
+
export declare const NPM_REGISTRY = "https://registry.npmmirror.com";
|
|
17
|
+
export declare const PIP_INDEX_URL = "https://pypi.tuna.tsinghua.edu.cn/simple";
|
|
18
|
+
export declare const PIP_TRUSTED_HOST = "pypi.tuna.tsinghua.edu.cn";
|
|
19
|
+
export declare const NODE_MIRROR = "https://npmmirror.com/mirrors/node";
|
|
20
|
+
export declare const JSDELIVR_GH = "https://cdn.jsdelivr.net/gh";
|
|
21
|
+
export declare const OPENVIKING_REPO = "volcengine/OpenViking";
|
|
22
|
+
export declare const OPENVIKING_PLUGIN_DIR = "examples/openclaw-plugin";
|
|
23
|
+
export declare const OPENVIKING_PLUGIN_REQUIRED_FILES: string[];
|
|
24
|
+
export declare const OPENVIKING_PLUGIN_OPTIONAL_FILES: string[];
|
|
25
|
+
export declare const CHANNEL_NPM_PACKAGES: Record<string, string>;
|
|
26
|
+
export declare const BUNDLED_PLUGINS: Set<string>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// All paths are absolute under /root/ — never use ~ or homedir()
|
|
2
|
+
export const OKCLAW_HOME = '/root/okclaw';
|
|
3
|
+
export const OKCLAW_CONFIG_DIR = `${OKCLAW_HOME}/config`;
|
|
4
|
+
export const OKCLAW_BACKUP_DIR = `${OKCLAW_HOME}/backup`;
|
|
5
|
+
export const OKCLAW_TMP_DIR = `${OKCLAW_HOME}/tmp`;
|
|
6
|
+
export const OPENCLAW_HOME = '/root/.openclaw';
|
|
7
|
+
export const OPENCLAW_WORKSPACE = `${OPENCLAW_HOME}/workspace`;
|
|
8
|
+
export const OPENVIKING_HOME = '/root/.openviking';
|
|
9
|
+
export const OPENVIKING_CONF = `${OPENVIKING_HOME}/ov.conf`;
|
|
10
|
+
export const OPENVIKING_ENV = `${OPENCLAW_HOME}/openviking.env`;
|
|
11
|
+
export const OPENVIKING_PORT = 1933;
|
|
12
|
+
// Version requirements — slightly above official minimums
|
|
13
|
+
// Official: Node >= 22.14, Python >= 3.10
|
|
14
|
+
export const NODE_MIN_MAJOR = 22;
|
|
15
|
+
export const NODE_MIN_MINOR = 16;
|
|
16
|
+
export const NODE_INSTALL_VERSION = '22.16.0';
|
|
17
|
+
export const PYTHON_MIN_MAJOR = 3;
|
|
18
|
+
export const PYTHON_MIN_MINOR = 11;
|
|
19
|
+
// China mirrors
|
|
20
|
+
export const NPM_REGISTRY = 'https://registry.npmmirror.com';
|
|
21
|
+
export const PIP_INDEX_URL = 'https://pypi.tuna.tsinghua.edu.cn/simple';
|
|
22
|
+
export const PIP_TRUSTED_HOST = 'pypi.tuna.tsinghua.edu.cn';
|
|
23
|
+
export const NODE_MIRROR = 'https://npmmirror.com/mirrors/node';
|
|
24
|
+
// jsdelivr CDN for GitHub content (works in China, GitHub raw does not)
|
|
25
|
+
export const JSDELIVR_GH = 'https://cdn.jsdelivr.net/gh';
|
|
26
|
+
export const OPENVIKING_REPO = 'volcengine/OpenViking';
|
|
27
|
+
export const OPENVIKING_PLUGIN_DIR = 'examples/openclaw-plugin';
|
|
28
|
+
// Plugin files to download (same as ov-install)
|
|
29
|
+
export const OPENVIKING_PLUGIN_REQUIRED_FILES = ['index.ts', 'config.ts', 'package.json'];
|
|
30
|
+
export const OPENVIKING_PLUGIN_OPTIONAL_FILES = [
|
|
31
|
+
'context-engine.ts', 'client.ts', 'process-manager.ts',
|
|
32
|
+
'memory-ranking.ts', 'text-utils.ts', 'tool-call-id.ts',
|
|
33
|
+
'session-transcript-repair.ts', 'openclaw.plugin.json',
|
|
34
|
+
'tsconfig.json',
|
|
35
|
+
];
|
|
36
|
+
// Channel npm package mapping
|
|
37
|
+
export const CHANNEL_NPM_PACKAGES = {
|
|
38
|
+
dingtalk: '@soimy/dingtalk',
|
|
39
|
+
wechat: '@tencent-weixin/openclaw-weixin',
|
|
40
|
+
// s3 has no npm package — must use --package-url
|
|
41
|
+
// feishu is bundled with openclaw — config only, no install needed
|
|
42
|
+
};
|
|
43
|
+
// Bundled plugins: already included in openclaw, only need configuration
|
|
44
|
+
export const BUNDLED_PLUGINS = new Set(['feishu']);
|
|
45
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAC1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,WAAW,SAAS,CAAC;AACzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,WAAW,SAAS,CAAC;AACzD,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,WAAW,MAAM,CAAC;AAEnD,MAAM,CAAC,MAAM,aAAa,GAAG,iBAAiB,CAAC;AAC/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,aAAa,YAAY,CAAC;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC;AACnD,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,eAAe,UAAU,CAAC;AAC5D,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,aAAa,iBAAiB,CAAC;AAChE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AAEpC,0DAA0D;AAC1D,0CAA0C;AAC1C,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC;AAC9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAClC,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAEnC,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG,gCAAgC,CAAC;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAG,0CAA0C,CAAC;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AAC5D,MAAM,CAAC,MAAM,WAAW,GAAG,oCAAoC,CAAC;AAEhE,wEAAwE;AACxE,MAAM,CAAC,MAAM,WAAW,GAAG,6BAA6B,CAAC;AACzD,MAAM,CAAC,MAAM,eAAe,GAAG,uBAAuB,CAAC;AACvD,MAAM,CAAC,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;AAEhE,gDAAgD;AAChD,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;AAC1F,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,mBAAmB,EAAE,WAAW,EAAE,oBAAoB;IACtD,mBAAmB,EAAE,eAAe,EAAE,iBAAiB;IACvD,8BAA8B,EAAE,sBAAsB;IACtD,eAAe;CAChB,CAAC;AAEF,8BAA8B;AAC9B,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,QAAQ,EAAE,iBAAiB;IAC3B,MAAM,EAAE,iCAAiC;IACzC,iDAAiD;IACjD,mEAAmE;CACpE,CAAC;AAEF,yEAAyE;AACzE,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ensure Node.js >= NODE_MIN_MAJOR.NODE_MIN_MINOR is installed via nvm.
|
|
3
|
+
* Installs nvm first if not present, then installs Node.js through nvm.
|
|
4
|
+
*/
|
|
5
|
+
export declare function ensureNodeVersion(): Promise<void>;
|
|
6
|
+
/**
|
|
7
|
+
* Ensure Python >= PYTHON_MIN_MAJOR.PYTHON_MIN_MINOR is installed.
|
|
8
|
+
* Auto-installs via system package manager if missing or too old.
|
|
9
|
+
*/
|
|
10
|
+
export declare function ensurePython(): Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* Ensure a command exists on PATH.
|
|
13
|
+
*/
|
|
14
|
+
export declare function ensureCommand(cmd: string): Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Check available disk space (MB) on /root.
|
|
17
|
+
*/
|
|
18
|
+
export declare function checkDiskSpace(requiredMb: number): Promise<void>;
|