@factiii/stack 0.1.34 → 0.1.35
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/README.md +441 -441
- package/bin/stack +46 -0
- package/dist/cli/fix.js +10 -10
- package/dist/cli/fix.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +20 -7
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/scan.d.ts.map +1 -1
- package/dist/cli/scan.js +14 -22
- package/dist/cli/scan.js.map +1 -1
- package/dist/generators/generate-stack-yml.d.ts +1 -1
- package/dist/generators/generate-stack-yml.d.ts.map +1 -1
- package/dist/generators/generate-stack-yml.js +96 -69
- package/dist/generators/generate-stack-yml.js.map +1 -1
- package/dist/plugins/addons/openclaw/index.d.ts +45 -0
- package/dist/plugins/addons/openclaw/index.d.ts.map +1 -0
- package/dist/plugins/addons/openclaw/index.js +107 -0
- package/dist/plugins/addons/openclaw/index.js.map +1 -0
- package/dist/plugins/addons/openclaw/scanfix/setup.d.ts +19 -0
- package/dist/plugins/addons/openclaw/scanfix/setup.d.ts.map +1 -0
- package/dist/plugins/addons/openclaw/scanfix/setup.js +441 -0
- package/dist/plugins/addons/openclaw/scanfix/setup.js.map +1 -0
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +8 -0
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/pipelines/aws/index.js +15 -15
- package/dist/plugins/pipelines/aws/prod.js +7 -7
- package/dist/plugins/pipelines/aws/scanfix/aws-cli.d.ts +3 -1
- package/dist/plugins/pipelines/aws/scanfix/aws-cli.d.ts.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/aws-cli.js +17 -7
- package/dist/plugins/pipelines/aws/scanfix/aws-cli.js.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/credentials.d.ts +1 -1
- package/dist/plugins/pipelines/aws/scanfix/credentials.d.ts.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/credentials.js +27 -73
- package/dist/plugins/pipelines/aws/scanfix/credentials.js.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/db-replication.d.ts +1 -4
- package/dist/plugins/pipelines/aws/scanfix/db-replication.d.ts.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/db-replication.js +9 -39
- package/dist/plugins/pipelines/aws/scanfix/db-replication.js.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/ec2.d.ts +1 -0
- package/dist/plugins/pipelines/aws/scanfix/ec2.d.ts.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/ec2.js +61 -110
- package/dist/plugins/pipelines/aws/scanfix/ec2.js.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/ecr.d.ts +1 -0
- package/dist/plugins/pipelines/aws/scanfix/ecr.d.ts.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/ecr.js +25 -34
- package/dist/plugins/pipelines/aws/scanfix/ecr.js.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/iam.d.ts +1 -0
- package/dist/plugins/pipelines/aws/scanfix/iam.d.ts.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/iam.js +35 -44
- package/dist/plugins/pipelines/aws/scanfix/iam.js.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/rds.d.ts +1 -0
- package/dist/plugins/pipelines/aws/scanfix/rds.d.ts.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/rds.js +39 -104
- package/dist/plugins/pipelines/aws/scanfix/rds.js.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/s3.d.ts +1 -0
- package/dist/plugins/pipelines/aws/scanfix/s3.d.ts.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/s3.js +44 -53
- package/dist/plugins/pipelines/aws/scanfix/s3.js.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/security-groups.d.ts +1 -0
- package/dist/plugins/pipelines/aws/scanfix/security-groups.d.ts.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/security-groups.js +80 -79
- package/dist/plugins/pipelines/aws/scanfix/security-groups.js.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/ses.d.ts +1 -0
- package/dist/plugins/pipelines/aws/scanfix/ses.d.ts.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/ses.js +28 -50
- package/dist/plugins/pipelines/aws/scanfix/ses.js.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/ssh-bridge.d.ts +17 -0
- package/dist/plugins/pipelines/aws/scanfix/ssh-bridge.d.ts.map +1 -0
- package/dist/plugins/pipelines/aws/scanfix/ssh-bridge.js +180 -0
- package/dist/plugins/pipelines/aws/scanfix/ssh-bridge.js.map +1 -0
- package/dist/plugins/pipelines/aws/scanfix/vpc.d.ts +1 -0
- package/dist/plugins/pipelines/aws/scanfix/vpc.d.ts.map +1 -1
- package/dist/plugins/pipelines/aws/scanfix/vpc.js +93 -94
- package/dist/plugins/pipelines/aws/scanfix/vpc.js.map +1 -1
- package/dist/plugins/pipelines/aws/utils/aws-helpers.d.ts +101 -28
- package/dist/plugins/pipelines/aws/utils/aws-helpers.d.ts.map +1 -1
- package/dist/plugins/pipelines/aws/utils/aws-helpers.js +428 -76
- package/dist/plugins/pipelines/aws/utils/aws-helpers.js.map +1 -1
- package/dist/plugins/pipelines/factiii/index.d.ts +11 -1
- package/dist/plugins/pipelines/factiii/index.d.ts.map +1 -1
- package/dist/plugins/pipelines/factiii/index.js +183 -33
- package/dist/plugins/pipelines/factiii/index.js.map +1 -1
- package/dist/plugins/pipelines/factiii/scanfix/config.d.ts +1 -1
- package/dist/plugins/pipelines/factiii/scanfix/config.js +4 -4
- package/dist/plugins/pipelines/factiii/scanfix/secrets.d.ts.map +1 -1
- package/dist/plugins/pipelines/factiii/scanfix/secrets.js +68 -8
- package/dist/plugins/pipelines/factiii/scanfix/secrets.js.map +1 -1
- package/dist/plugins/servers/mac/index.js +13 -13
- package/dist/plugins/servers/mac/staging.js +4 -4
- package/dist/scanfix/fixes/certbot.js +1 -1
- package/dist/scripts/validate-example-values.d.ts +1 -1
- package/dist/scripts/validate-example-values.js +6 -6
- package/dist/utils/config-helpers.d.ts +3 -0
- package/dist/utils/config-helpers.d.ts.map +1 -1
- package/dist/utils/config-helpers.js.map +1 -1
- package/dist/utils/secret-prompts.d.ts +5 -2
- package/dist/utils/secret-prompts.d.ts.map +1 -1
- package/dist/utils/secret-prompts.js +55 -32
- package/dist/utils/secret-prompts.js.map +1 -1
- package/dist/utils/template-generator.js +71 -71
- package/package.json +8 -1
|
@@ -0,0 +1,441 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* OpenClaw Addon Scanfixes
|
|
4
|
+
*
|
|
5
|
+
* Automates the full chain for running OpenClaw (autonomous AI agent)
|
|
6
|
+
* inside a Tart VM with a local LLM via Ollama:
|
|
7
|
+
*
|
|
8
|
+
* 1. Install Tart on the host Mac
|
|
9
|
+
* 2. Ensure a Tart VM exists and is running
|
|
10
|
+
* 3. SSH into the VM to install Ollama
|
|
11
|
+
* 4. Pull a compatible model (must support tool calling)
|
|
12
|
+
* 5. Install OpenClaw inside the VM
|
|
13
|
+
* 6. Configure OpenClaw to use the local Ollama model
|
|
14
|
+
*
|
|
15
|
+
* OpenClaw and Ollama run INSIDE the Tart VM, not on the host.
|
|
16
|
+
* The host only needs Tart installed.
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.openclawFixes = void 0;
|
|
20
|
+
const child_process_1 = require("child_process");
|
|
21
|
+
// ============================================================
|
|
22
|
+
// HELPER FUNCTIONS
|
|
23
|
+
// ============================================================
|
|
24
|
+
const DEFAULT_MODEL = 'qwen2.5-coder:7b';
|
|
25
|
+
/**
|
|
26
|
+
* Get OpenClaw config merged from stack.yml and stack.local.yml
|
|
27
|
+
* Local config wins (per-developer override)
|
|
28
|
+
*/
|
|
29
|
+
function getOpenClawConfig(config, rootDir) {
|
|
30
|
+
const defaults = { model: DEFAULT_MODEL };
|
|
31
|
+
// Check stack.yml
|
|
32
|
+
const globalConf = config.openclaw;
|
|
33
|
+
// Check stack.local.yml
|
|
34
|
+
let localConf;
|
|
35
|
+
try {
|
|
36
|
+
const { loadLocalConfig } = require('../../../../utils/config-helpers.js');
|
|
37
|
+
const local = loadLocalConfig(rootDir);
|
|
38
|
+
localConf = local.openclaw;
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// No local config
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
model: localConf?.model ?? globalConf?.model ?? defaults.model,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get the model name from config
|
|
49
|
+
*/
|
|
50
|
+
function getModelName(config, rootDir) {
|
|
51
|
+
return getOpenClawConfig(config, rootDir).model;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Check if Tart CLI is installed on the host
|
|
55
|
+
*/
|
|
56
|
+
function isTartInstalled() {
|
|
57
|
+
try {
|
|
58
|
+
(0, child_process_1.execSync)('which tart', { stdio: ['pipe', 'pipe', 'pipe'] });
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Auto-detect the first Tart VM name from `tart list`
|
|
67
|
+
*/
|
|
68
|
+
function getTartVmName() {
|
|
69
|
+
try {
|
|
70
|
+
const output = (0, child_process_1.execSync)('tart list', {
|
|
71
|
+
encoding: 'utf8',
|
|
72
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
73
|
+
});
|
|
74
|
+
const lines = output.trim().split('\n');
|
|
75
|
+
for (let i = 1; i < lines.length; i++) {
|
|
76
|
+
const line = lines[i];
|
|
77
|
+
if (!line)
|
|
78
|
+
continue;
|
|
79
|
+
const parts = line.trim().split(/\s+/);
|
|
80
|
+
if (parts.length >= 2 && parts[1]) {
|
|
81
|
+
return parts[1];
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Check if a Tart VM is currently running
|
|
92
|
+
*/
|
|
93
|
+
function isVmRunning(vmName) {
|
|
94
|
+
try {
|
|
95
|
+
const output = (0, child_process_1.execSync)('tart list', {
|
|
96
|
+
encoding: 'utf8',
|
|
97
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
98
|
+
});
|
|
99
|
+
const lines = output.trim().split('\n');
|
|
100
|
+
for (let i = 1; i < lines.length; i++) {
|
|
101
|
+
const line = lines[i];
|
|
102
|
+
if (!line)
|
|
103
|
+
continue;
|
|
104
|
+
const parts = line.trim().split(/\s+/);
|
|
105
|
+
if (parts.length >= 4 && parts[1] === vmName) {
|
|
106
|
+
return parts[3] === 'running';
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get the IP address of a running Tart VM
|
|
117
|
+
*/
|
|
118
|
+
function getVmIp(vmName) {
|
|
119
|
+
try {
|
|
120
|
+
const ip = (0, child_process_1.execSync)('tart ip ' + vmName, {
|
|
121
|
+
encoding: 'utf8',
|
|
122
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
123
|
+
timeout: 10000,
|
|
124
|
+
}).trim();
|
|
125
|
+
return ip || null;
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Execute a command inside the Tart VM via SSH
|
|
133
|
+
*/
|
|
134
|
+
function sshVm(ip, cmd) {
|
|
135
|
+
return (0, child_process_1.execSync)('ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 admin@' + ip + ' "' + cmd + '"', {
|
|
136
|
+
encoding: 'utf8',
|
|
137
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
138
|
+
timeout: 30000,
|
|
139
|
+
}).trim();
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Check if a binary is installed inside the VM
|
|
143
|
+
*/
|
|
144
|
+
function isInstalledInVm(ip, binary) {
|
|
145
|
+
try {
|
|
146
|
+
sshVm(ip, 'which ' + binary);
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Check if Ollama is running inside the VM
|
|
155
|
+
*/
|
|
156
|
+
function isOllamaRunningInVm(ip) {
|
|
157
|
+
try {
|
|
158
|
+
sshVm(ip, 'ollama list');
|
|
159
|
+
return true;
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Check if a model is pulled in Ollama inside the VM
|
|
167
|
+
*/
|
|
168
|
+
function isModelPulledInVm(ip, model) {
|
|
169
|
+
try {
|
|
170
|
+
const output = sshVm(ip, 'ollama list');
|
|
171
|
+
// Model names in ollama list may include tag, e.g. "qwen2.5-coder:7b"
|
|
172
|
+
const baseName = model.split(':')[0] ?? model;
|
|
173
|
+
return output.includes(baseName);
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Get the VM IP if all prerequisites are met (tart installed, VM exists, running, has IP)
|
|
181
|
+
* Returns null if any prerequisite fails
|
|
182
|
+
*/
|
|
183
|
+
function getReadyVmIp() {
|
|
184
|
+
if (!isTartInstalled())
|
|
185
|
+
return null;
|
|
186
|
+
const vmName = getTartVmName();
|
|
187
|
+
if (!vmName)
|
|
188
|
+
return null;
|
|
189
|
+
if (!isVmRunning(vmName))
|
|
190
|
+
return null;
|
|
191
|
+
return getVmIp(vmName);
|
|
192
|
+
}
|
|
193
|
+
// ============================================================
|
|
194
|
+
// SCANFIXES
|
|
195
|
+
// ============================================================
|
|
196
|
+
exports.openclawFixes = [
|
|
197
|
+
// 1. Tart CLI must be installed on the host
|
|
198
|
+
{
|
|
199
|
+
id: 'openclaw-tart-not-installed',
|
|
200
|
+
stage: 'dev',
|
|
201
|
+
os: 'mac',
|
|
202
|
+
severity: 'critical',
|
|
203
|
+
description: 'Tart VM manager is not installed (required for OpenClaw)',
|
|
204
|
+
scan: async (_config, _rootDir) => {
|
|
205
|
+
return !isTartInstalled();
|
|
206
|
+
},
|
|
207
|
+
fix: async (_config, _rootDir) => {
|
|
208
|
+
try {
|
|
209
|
+
console.log(' Installing Tart...');
|
|
210
|
+
(0, child_process_1.execSync)('brew install cirruslabs/cli/tart', {
|
|
211
|
+
stdio: 'inherit',
|
|
212
|
+
timeout: 120000,
|
|
213
|
+
});
|
|
214
|
+
return isTartInstalled();
|
|
215
|
+
}
|
|
216
|
+
catch {
|
|
217
|
+
return false;
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
manualFix: 'Run: brew install cirruslabs/cli/tart',
|
|
221
|
+
},
|
|
222
|
+
// 2. A Tart VM must exist
|
|
223
|
+
{
|
|
224
|
+
id: 'openclaw-tart-vm-missing',
|
|
225
|
+
stage: 'dev',
|
|
226
|
+
os: 'mac',
|
|
227
|
+
severity: 'critical',
|
|
228
|
+
description: 'No Tart VM image found (required for OpenClaw)',
|
|
229
|
+
scan: async (_config, _rootDir) => {
|
|
230
|
+
if (!isTartInstalled())
|
|
231
|
+
return false;
|
|
232
|
+
return getTartVmName() === null;
|
|
233
|
+
},
|
|
234
|
+
fix: null,
|
|
235
|
+
manualFix: 'Run: tart clone ghcr.io/cirruslabs/macos-sequoia-base:latest sequoia-base',
|
|
236
|
+
},
|
|
237
|
+
// 3. The Tart VM must be running
|
|
238
|
+
{
|
|
239
|
+
id: 'openclaw-tart-vm-not-running',
|
|
240
|
+
stage: 'dev',
|
|
241
|
+
os: 'mac',
|
|
242
|
+
severity: 'critical',
|
|
243
|
+
description: 'Tart VM is not running (required for OpenClaw)',
|
|
244
|
+
scan: async (_config, _rootDir) => {
|
|
245
|
+
if (!isTartInstalled())
|
|
246
|
+
return false;
|
|
247
|
+
const vmName = getTartVmName();
|
|
248
|
+
if (!vmName)
|
|
249
|
+
return false;
|
|
250
|
+
return !isVmRunning(vmName);
|
|
251
|
+
},
|
|
252
|
+
fix: async (_config, _rootDir) => {
|
|
253
|
+
const vmName = getTartVmName();
|
|
254
|
+
if (!vmName)
|
|
255
|
+
return false;
|
|
256
|
+
try {
|
|
257
|
+
console.log(' Starting Tart VM: ' + vmName + '...');
|
|
258
|
+
(0, child_process_1.execSync)('tart run ' + vmName + ' &', {
|
|
259
|
+
stdio: 'ignore',
|
|
260
|
+
timeout: 5000,
|
|
261
|
+
});
|
|
262
|
+
(0, child_process_1.execSync)('sleep 10', { stdio: 'ignore' });
|
|
263
|
+
return isVmRunning(vmName);
|
|
264
|
+
}
|
|
265
|
+
catch {
|
|
266
|
+
return false;
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
manualFix: 'Run: tart run <vm-name> (in a separate terminal)',
|
|
270
|
+
},
|
|
271
|
+
// 4. The VM must have an IP (network ready)
|
|
272
|
+
{
|
|
273
|
+
id: 'openclaw-tart-vm-no-ip',
|
|
274
|
+
stage: 'dev',
|
|
275
|
+
os: 'mac',
|
|
276
|
+
severity: 'critical',
|
|
277
|
+
description: 'Cannot get Tart VM IP address (VM may still be booting)',
|
|
278
|
+
scan: async (_config, _rootDir) => {
|
|
279
|
+
if (!isTartInstalled())
|
|
280
|
+
return false;
|
|
281
|
+
const vmName = getTartVmName();
|
|
282
|
+
if (!vmName)
|
|
283
|
+
return false;
|
|
284
|
+
if (!isVmRunning(vmName))
|
|
285
|
+
return false;
|
|
286
|
+
return getVmIp(vmName) === null;
|
|
287
|
+
},
|
|
288
|
+
fix: null,
|
|
289
|
+
manualFix: 'Wait 1-2 minutes for the VM to fully boot, then retry. Check: tart ip <vm-name>',
|
|
290
|
+
},
|
|
291
|
+
// 5. Ollama must be installed inside the VM
|
|
292
|
+
{
|
|
293
|
+
id: 'openclaw-ollama-not-installed',
|
|
294
|
+
stage: 'dev',
|
|
295
|
+
os: 'mac',
|
|
296
|
+
severity: 'critical',
|
|
297
|
+
description: 'Ollama is not installed inside the Tart VM',
|
|
298
|
+
scan: async (_config, _rootDir) => {
|
|
299
|
+
const ip = getReadyVmIp();
|
|
300
|
+
if (!ip)
|
|
301
|
+
return false;
|
|
302
|
+
return !isInstalledInVm(ip, 'ollama');
|
|
303
|
+
},
|
|
304
|
+
fix: async (_config, _rootDir) => {
|
|
305
|
+
const ip = getReadyVmIp();
|
|
306
|
+
if (!ip)
|
|
307
|
+
return false;
|
|
308
|
+
try {
|
|
309
|
+
console.log(' Installing Ollama inside VM...');
|
|
310
|
+
sshVm(ip, 'brew install ollama');
|
|
311
|
+
return isInstalledInVm(ip, 'ollama');
|
|
312
|
+
}
|
|
313
|
+
catch {
|
|
314
|
+
return false;
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
manualFix: 'SSH into VM and install: ssh admin@$(tart ip <vm-name>) "brew install ollama"',
|
|
318
|
+
},
|
|
319
|
+
// 6. Ollama must be running inside the VM
|
|
320
|
+
{
|
|
321
|
+
id: 'openclaw-ollama-not-running',
|
|
322
|
+
stage: 'dev',
|
|
323
|
+
os: 'mac',
|
|
324
|
+
severity: 'critical',
|
|
325
|
+
description: 'Ollama is not running inside the Tart VM',
|
|
326
|
+
scan: async (_config, _rootDir) => {
|
|
327
|
+
const ip = getReadyVmIp();
|
|
328
|
+
if (!ip)
|
|
329
|
+
return false;
|
|
330
|
+
if (!isInstalledInVm(ip, 'ollama'))
|
|
331
|
+
return false;
|
|
332
|
+
return !isOllamaRunningInVm(ip);
|
|
333
|
+
},
|
|
334
|
+
fix: async (_config, _rootDir) => {
|
|
335
|
+
const ip = getReadyVmIp();
|
|
336
|
+
if (!ip)
|
|
337
|
+
return false;
|
|
338
|
+
try {
|
|
339
|
+
console.log(' Starting Ollama inside VM...');
|
|
340
|
+
// Start ollama serve in background
|
|
341
|
+
(0, child_process_1.execSync)('ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 admin@' + ip +
|
|
342
|
+
' "nohup ollama serve > /dev/null 2>&1 &"', { stdio: ['pipe', 'pipe', 'pipe'], timeout: 10000 });
|
|
343
|
+
(0, child_process_1.execSync)('sleep 3', { stdio: 'ignore' });
|
|
344
|
+
return isOllamaRunningInVm(ip);
|
|
345
|
+
}
|
|
346
|
+
catch {
|
|
347
|
+
return false;
|
|
348
|
+
}
|
|
349
|
+
},
|
|
350
|
+
manualFix: 'SSH into VM and start: ssh admin@$(tart ip <vm-name>) "ollama serve"',
|
|
351
|
+
},
|
|
352
|
+
// 7. The configured model must be pulled
|
|
353
|
+
{
|
|
354
|
+
id: 'openclaw-model-not-pulled',
|
|
355
|
+
stage: 'dev',
|
|
356
|
+
os: 'mac',
|
|
357
|
+
severity: 'critical',
|
|
358
|
+
description: 'Ollama model not pulled inside the Tart VM',
|
|
359
|
+
scan: async (config, rootDir) => {
|
|
360
|
+
const ip = getReadyVmIp();
|
|
361
|
+
if (!ip)
|
|
362
|
+
return false;
|
|
363
|
+
if (!isOllamaRunningInVm(ip))
|
|
364
|
+
return false;
|
|
365
|
+
const model = getModelName(config, rootDir);
|
|
366
|
+
return !isModelPulledInVm(ip, model);
|
|
367
|
+
},
|
|
368
|
+
fix: async (config, rootDir) => {
|
|
369
|
+
const ip = getReadyVmIp();
|
|
370
|
+
if (!ip)
|
|
371
|
+
return false;
|
|
372
|
+
const model = getModelName(config, rootDir);
|
|
373
|
+
try {
|
|
374
|
+
console.log(' Pulling model ' + model + ' inside VM (this may take several minutes)...');
|
|
375
|
+
(0, child_process_1.execSync)('ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 admin@' + ip +
|
|
376
|
+
' "ollama pull ' + model + '"', { stdio: 'inherit', timeout: 600000 } // 10 min timeout for model download
|
|
377
|
+
);
|
|
378
|
+
return isModelPulledInVm(ip, model);
|
|
379
|
+
}
|
|
380
|
+
catch {
|
|
381
|
+
return false;
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
manualFix: 'SSH into VM and pull: ssh admin@$(tart ip <vm-name>) "ollama pull ' + DEFAULT_MODEL + '"',
|
|
385
|
+
},
|
|
386
|
+
// 8. OpenClaw must be installed inside the VM
|
|
387
|
+
{
|
|
388
|
+
id: 'openclaw-not-installed',
|
|
389
|
+
stage: 'dev',
|
|
390
|
+
os: 'mac',
|
|
391
|
+
severity: 'critical',
|
|
392
|
+
description: 'OpenClaw is not installed inside the Tart VM',
|
|
393
|
+
scan: async (_config, _rootDir) => {
|
|
394
|
+
const ip = getReadyVmIp();
|
|
395
|
+
if (!ip)
|
|
396
|
+
return false;
|
|
397
|
+
return !isInstalledInVm(ip, 'openclaw');
|
|
398
|
+
},
|
|
399
|
+
fix: async (_config, _rootDir) => {
|
|
400
|
+
const ip = getReadyVmIp();
|
|
401
|
+
if (!ip)
|
|
402
|
+
return false;
|
|
403
|
+
try {
|
|
404
|
+
console.log(' Installing OpenClaw inside VM...');
|
|
405
|
+
sshVm(ip, 'brew install openclaw-cli');
|
|
406
|
+
return isInstalledInVm(ip, 'openclaw');
|
|
407
|
+
}
|
|
408
|
+
catch {
|
|
409
|
+
return false;
|
|
410
|
+
}
|
|
411
|
+
},
|
|
412
|
+
manualFix: 'SSH into VM and install: ssh admin@$(tart ip <vm-name>) "brew install openclaw-cli"',
|
|
413
|
+
},
|
|
414
|
+
// 9. OpenClaw must be configured to use the local Ollama model
|
|
415
|
+
{
|
|
416
|
+
id: 'openclaw-not-configured',
|
|
417
|
+
stage: 'dev',
|
|
418
|
+
os: 'mac',
|
|
419
|
+
severity: 'warning',
|
|
420
|
+
description: 'OpenClaw is not configured inside the Tart VM',
|
|
421
|
+
scan: async (_config, _rootDir) => {
|
|
422
|
+
const ip = getReadyVmIp();
|
|
423
|
+
if (!ip)
|
|
424
|
+
return false;
|
|
425
|
+
if (!isInstalledInVm(ip, 'openclaw'))
|
|
426
|
+
return false;
|
|
427
|
+
try {
|
|
428
|
+
sshVm(ip, 'test -f ~/.openclaw/openclaw.json');
|
|
429
|
+
return false; // Config exists, no issue
|
|
430
|
+
}
|
|
431
|
+
catch {
|
|
432
|
+
return true; // Config missing
|
|
433
|
+
}
|
|
434
|
+
},
|
|
435
|
+
fix: null,
|
|
436
|
+
manualFix: 'SSH into VM and run the onboarding wizard:\n' +
|
|
437
|
+
' ssh admin@$(tart ip <vm-name>)\n' +
|
|
438
|
+
' openclaw onboard --install-daemon',
|
|
439
|
+
},
|
|
440
|
+
];
|
|
441
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../../src/plugins/addons/openclaw/scanfix/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAyBvF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAE5E,KAAK,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC;CACrE;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CAClC;AAMD;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,cAStB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"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"}
|
package/dist/plugins/index.js
CHANGED
|
@@ -172,6 +172,14 @@ try {
|
|
|
172
172
|
catch {
|
|
173
173
|
// Plugin not available
|
|
174
174
|
}
|
|
175
|
+
try {
|
|
176
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
177
|
+
const OpenClawAddon = require('./addons/openclaw/index').default;
|
|
178
|
+
exports.registry.addons['openclaw'] = OpenClawAddon;
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
// Plugin not available
|
|
182
|
+
}
|
|
175
183
|
// ============================================================
|
|
176
184
|
// REGISTRATION FUNCTIONS
|
|
177
185
|
// ============================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,7 +126,7 @@ class AWSPipeline {
|
|
|
126
126
|
static configSchema = {
|
|
127
127
|
aws: {
|
|
128
128
|
config: 'ec2', // Options: ec2, free-tier, standard, enterprise
|
|
129
|
-
access_key_id: '
|
|
129
|
+
access_key_id: 'EXAMPLE_AKIAXXXXXXXX',
|
|
130
130
|
region: 'us-east-1',
|
|
131
131
|
},
|
|
132
132
|
};
|
|
@@ -179,17 +179,17 @@ class AWSPipeline {
|
|
|
179
179
|
'free-tier': free_tier_js_1.default,
|
|
180
180
|
};
|
|
181
181
|
static helpText = {
|
|
182
|
-
SSH: `
|
|
183
|
-
SSH private key for accessing the EC2 instance.
|
|
184
|
-
|
|
185
|
-
Option A: Auto-generate via AWS (recommended)
|
|
186
|
-
- Factiii will create an EC2 Key Pair via AWS API
|
|
187
|
-
|
|
188
|
-
Option B: Use existing key
|
|
182
|
+
SSH: `
|
|
183
|
+
SSH private key for accessing the EC2 instance.
|
|
184
|
+
|
|
185
|
+
Option A: Auto-generate via AWS (recommended)
|
|
186
|
+
- Factiii will create an EC2 Key Pair via AWS API
|
|
187
|
+
|
|
188
|
+
Option B: Use existing key
|
|
189
189
|
ssh-keygen -t ed25519 -C "deploy-key" -f ~/.ssh/deploy_key`,
|
|
190
|
-
AWS_SECRET_ACCESS_KEY: `
|
|
191
|
-
AWS Secret Access Key
|
|
192
|
-
|
|
190
|
+
AWS_SECRET_ACCESS_KEY: `
|
|
191
|
+
AWS Secret Access Key
|
|
192
|
+
|
|
193
193
|
Get from AWS Console: IAM -> Users -> Security credentials`,
|
|
194
194
|
};
|
|
195
195
|
// ============================================================
|
|
@@ -246,12 +246,12 @@ class AWSPipeline {
|
|
|
246
246
|
if (process.env.GITHUB_ACTIONS === 'true' || process.env.FACTIII_ON_SERVER === 'true') {
|
|
247
247
|
return { reachable: true, via: 'local' };
|
|
248
248
|
}
|
|
249
|
-
// Check if the server actually exists (domain is set and not
|
|
249
|
+
// Check if the server actually exists (domain is set and not EXAMPLE_)
|
|
250
250
|
// If no real domain, SSH is pointless — run provisioning locally via AWS CLI
|
|
251
251
|
{
|
|
252
252
|
const firstEnvForStage = envValues[0];
|
|
253
253
|
const domain = firstEnvForStage?.domain;
|
|
254
|
-
const hasRealDomain = domain && !domain.startsWith('
|
|
254
|
+
const hasRealDomain = domain && !domain.startsWith('EXAMPLE_');
|
|
255
255
|
if (hasRealDomain) {
|
|
256
256
|
// Server exists — check for SSH key (direct SSH from dev machine)
|
|
257
257
|
const sshKey = (0, ssh_helper_js_1.findSshKeyForStage)(stage);
|
|
@@ -525,8 +525,8 @@ class AWSPipeline {
|
|
|
525
525
|
}
|
|
526
526
|
try {
|
|
527
527
|
const repoName = config.name ?? 'app';
|
|
528
|
-
await AWSPipeline.sshExec(envConfig, `
|
|
529
|
-
cd ~/.factiii && docker compose stop ${repoName}-prod
|
|
528
|
+
await AWSPipeline.sshExec(envConfig, `
|
|
529
|
+
cd ~/.factiii && docker compose stop ${repoName}-prod
|
|
530
530
|
`);
|
|
531
531
|
return { success: true, message: 'Production containers stopped' };
|
|
532
532
|
}
|
|
@@ -144,7 +144,7 @@ async function writeEnvFile(envConfig, repoDir, environment, envVarsString) {
|
|
|
144
144
|
else {
|
|
145
145
|
// We're remote - SSH to write
|
|
146
146
|
console.log(` 📝 Writing ${envFileName} on remote server (${envVars.length} variables)...`);
|
|
147
|
-
await sshExecCommand(envConfig, `cat > ${repoDir}/${envFileName} << 'ENVEOF'
|
|
147
|
+
await sshExecCommand(envConfig, `cat > ${repoDir}/${envFileName} << 'ENVEOF'
|
|
148
148
|
${envFileContent}ENVEOF`);
|
|
149
149
|
}
|
|
150
150
|
}
|
|
@@ -167,7 +167,7 @@ async function runCertbot(envConfig, config) {
|
|
|
167
167
|
// Collect all domains that need certificates
|
|
168
168
|
const domains = [];
|
|
169
169
|
for (const env of Object.values(environments)) {
|
|
170
|
-
if (env.domain && !env.domain.startsWith('
|
|
170
|
+
if (env.domain && !env.domain.startsWith('EXAMPLE_')) {
|
|
171
171
|
domains.push(env.domain);
|
|
172
172
|
}
|
|
173
173
|
}
|
|
@@ -176,7 +176,7 @@ async function runCertbot(envConfig, config) {
|
|
|
176
176
|
return;
|
|
177
177
|
}
|
|
178
178
|
const sslEmail = config.ssl_email;
|
|
179
|
-
if (!sslEmail || sslEmail.startsWith('
|
|
179
|
+
if (!sslEmail || sslEmail.startsWith('EXAMPLE_')) {
|
|
180
180
|
console.log(' ⚠️ ssl_email not configured in stack.yml, skipping SSL');
|
|
181
181
|
console.log(' Add ssl_email to stack.yml to enable automatic SSL certificates');
|
|
182
182
|
return;
|
|
@@ -338,10 +338,10 @@ async function deployProd(config, environment = 'prod') {
|
|
|
338
338
|
await updateComposeForECR(envConfig, config);
|
|
339
339
|
// Step 3: Login to ECR and pull latest image
|
|
340
340
|
console.log(' 🔐 Logging in to ECR and pulling image...');
|
|
341
|
-
await sshExecCommand(envConfig, `
|
|
342
|
-
aws ecr get-login-password --region ${region} | docker login --username AWS --password-stdin $(aws sts get-caller-identity --query Account --output text).dkr.ecr.${region}.amazonaws.com && \
|
|
343
|
-
cd ~/.factiii && \
|
|
344
|
-
docker compose pull ${repoName}-prod
|
|
341
|
+
await sshExecCommand(envConfig, `
|
|
342
|
+
aws ecr get-login-password --region ${region} | docker login --username AWS --password-stdin $(aws sts get-caller-identity --query Account --output text).dkr.ecr.${region}.amazonaws.com && \
|
|
343
|
+
cd ~/.factiii && \
|
|
344
|
+
docker compose pull ${repoName}-prod
|
|
345
345
|
`);
|
|
346
346
|
// Step 4: Manage SSL certificates
|
|
347
347
|
console.log(' 🔐 Managing SSL certificates...');
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AWS CLI fixes for AWS plugin
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
|
+
* AWS CLI is still needed for ECR Docker login (aws ecr get-login-password).
|
|
5
|
+
* All other AWS operations now use the AWS SDK.
|
|
4
6
|
*/
|
|
5
7
|
import type { Fix } from '../../../../types/index.js';
|
|
6
8
|
export declare const awsCliFixes: Fix[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws-cli.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/aws/scanfix/aws-cli.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"aws-cli.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/pipelines/aws/scanfix/aws-cli.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAiB,GAAG,EAAE,MAAM,4BAA4B,CAAC;AA4ErE,eAAO,MAAM,WAAW,EAAE,GAAG,EAoB5B,CAAC"}
|