@supen-ai/cli 0.1.11 → 0.1.13
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 +7 -1
- package/daemon/dist/core/coding-cli-status-cache.d.ts +19 -0
- package/daemon/dist/core/coding-cli-status-cache.d.ts.map +1 -0
- package/daemon/dist/core/coding-cli-status-cache.js +122 -0
- package/daemon/dist/core/coding-cli-status-cache.js.map +1 -0
- package/daemon/dist/core/gateway-config.d.ts.map +1 -1
- package/daemon/dist/core/gateway-config.js +3 -0
- package/daemon/dist/core/gateway-config.js.map +1 -1
- package/daemon/dist/http/routes/system.d.ts.map +1 -1
- package/daemon/dist/http/routes/system.js +225 -17
- package/daemon/dist/http/routes/system.js.map +1 -1
- package/daemon/package.json +83 -0
- package/dist/computer.js +31 -11
- package/dist/computer.js.map +1 -1
- package/dist/doctor.js +294 -14
- package/dist/doctor.js.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@supen-ai/daemon",
|
|
3
|
+
"version": "1.3.1",
|
|
4
|
+
"description": "Supen Daemon \u2014 self-contained agent runtime for the Supen platform. Runs multiple agents on a host machine.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"supen-daemon": "./scripts/supen-daemon.js"
|
|
8
|
+
},
|
|
9
|
+
"main": "dist/index.js",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"scripts",
|
|
15
|
+
"dist",
|
|
16
|
+
"skills"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"build:watch": "tsc --watch",
|
|
21
|
+
"dev": "tsx watch --env-file=.env src/start.ts",
|
|
22
|
+
"auth": "tsx src/whatsapp-auth.ts",
|
|
23
|
+
"test": "vitest run",
|
|
24
|
+
"test:e2e": "bash -c 'set -a && source .env && set +a && vitest run'",
|
|
25
|
+
"test:e2e:runtime-state": "vitest run tests/thread-runtime-state-e2e.test.ts",
|
|
26
|
+
"typecheck": "tsc --noEmit",
|
|
27
|
+
"prepublishOnly": "npm run build",
|
|
28
|
+
"test:agent-sdk-foundation": "vitest run tests/agent-sdk-acceptance.test.ts tests/agent-sdk-public-surface.test.ts tests/agent-sdk-types.test.ts tests/claude-code-driver.test.ts tests/claude-cli-direct-driver.test.ts tests/claude-code-events.test.ts tests/claude-code-items.test.ts tests/claude-code-adapter-acceptance.test.ts tests/codex-exec-driver.test.ts tests/gemini-cli-driver.test.ts tests/driver-registry.test.ts tests/session-manager.test.ts tests/cortex.run-normalized.test.ts tests/cortex.stream.test.ts tests/protocol-adapter.test.ts",
|
|
29
|
+
"test:agent-sdk-foundation:live": "RUN_REAL_CODEX_SMOKE=1 RUN_REAL_GEMINI_SMOKE=1 RUN_REAL_CLAUDE_SMOKE=1 vitest run --maxWorkers=1 tests/codex-exec-live.test.ts tests/codex-session-manager-live.test.ts tests/cortex-codex-live.test.ts tests/gemini-cli-live.test.ts tests/gemini-session-manager-live.test.ts tests/cortex-gemini-live.test.ts tests/claude-cli-live.test.ts tests/claude-session-manager-live.test.ts tests/cortex-claude-live.test.ts tests/agent-sdk-acceptance.test.ts tests/agent-sdk-public-surface.test.ts tests/agent-sdk-types.test.ts tests/claude-code-driver.test.ts tests/claude-cli-direct-driver.test.ts tests/claude-code-events.test.ts tests/claude-code-items.test.ts tests/claude-code-adapter-acceptance.test.ts tests/codex-exec-driver.test.ts tests/gemini-cli-driver.test.ts tests/driver-registry.test.ts tests/session-manager.test.ts tests/cortex.run-normalized.test.ts tests/cortex.stream.test.ts tests/protocol-adapter.test.ts"
|
|
30
|
+
},
|
|
31
|
+
"publishConfig": {
|
|
32
|
+
"access": "public"
|
|
33
|
+
},
|
|
34
|
+
"engines": {
|
|
35
|
+
"node": ">=22.22.0"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@ai-sdk/openai": "^3.0.52",
|
|
39
|
+
"@anthropic-ai/sdk": "^0.78.0",
|
|
40
|
+
"@larksuiteoapi/node-sdk": "^1.59.0",
|
|
41
|
+
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
42
|
+
"@supabase/supabase-js": "^2.47.0",
|
|
43
|
+
"ai": "^6.0.153",
|
|
44
|
+
"axios": "^1.15.0",
|
|
45
|
+
"cron-parser": "^5.5.0",
|
|
46
|
+
"dingtalk-stream": "^2.1.0",
|
|
47
|
+
"discord.js": "^14.25.1",
|
|
48
|
+
"https-proxy-agent": "^7.0.6",
|
|
49
|
+
"js-yaml": "^4.1.1",
|
|
50
|
+
"pino": "^9.6.0",
|
|
51
|
+
"pino-pretty": "^13.0.0",
|
|
52
|
+
"playwright": "^1.58.2",
|
|
53
|
+
"rrule": "^2.8.1",
|
|
54
|
+
"undici": "^7.24.2",
|
|
55
|
+
"ws": "^8.20.1",
|
|
56
|
+
"yaml": "^2.8.3",
|
|
57
|
+
"zod": "^4.3.6"
|
|
58
|
+
},
|
|
59
|
+
"devDependencies": {
|
|
60
|
+
"@types/js-yaml": "^4.0.9",
|
|
61
|
+
"@types/node": "^20.0.0",
|
|
62
|
+
"tsx": "^4.19.0",
|
|
63
|
+
"typescript": "^5.7.0",
|
|
64
|
+
"vitest": "^4.0.18"
|
|
65
|
+
},
|
|
66
|
+
"license": "MIT",
|
|
67
|
+
"repository": {
|
|
68
|
+
"type": "git",
|
|
69
|
+
"url": "git+https://github.com/tiwater/supen.git",
|
|
70
|
+
"directory": "apps/daemon"
|
|
71
|
+
},
|
|
72
|
+
"keywords": [
|
|
73
|
+
"supen",
|
|
74
|
+
"ai",
|
|
75
|
+
"agent",
|
|
76
|
+
"daemon",
|
|
77
|
+
"runtime"
|
|
78
|
+
],
|
|
79
|
+
"bugs": {
|
|
80
|
+
"url": "https://github.com/tiwater/supen/issues"
|
|
81
|
+
},
|
|
82
|
+
"homepage": "https://github.com/tiwater/supen#readme"
|
|
83
|
+
}
|
package/dist/computer.js
CHANGED
|
@@ -11,7 +11,7 @@ import { hostOsIdentityEnv } from './os-identity.js';
|
|
|
11
11
|
import { createTransport, resolveTransportConfig } from './transport/index.js';
|
|
12
12
|
const DEFAULT_LOCAL_GATEWAY_URL = 'http://127.0.0.1:2755';
|
|
13
13
|
const DEFAULT_PRODUCTION_HUB_URL = 'https://hub.supen.ai';
|
|
14
|
-
const HOST_DAEMON_PACKAGE_SPEC = '@supen-ai/cli@0.1.
|
|
14
|
+
const HOST_DAEMON_PACKAGE_SPEC = '@supen-ai/cli@0.1.13';
|
|
15
15
|
function normalizeGatewayUrl(raw) {
|
|
16
16
|
const trimmed = (raw || '').trim();
|
|
17
17
|
if (!trimmed)
|
|
@@ -24,13 +24,23 @@ function normalizeGatewayHttpUrl(raw) {
|
|
|
24
24
|
const trimmed = (raw || '').trim().replace(/\/+$/, '');
|
|
25
25
|
if (!trimmed)
|
|
26
26
|
return '';
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
const candidate = trimmed.startsWith('http://') || trimmed.startsWith('https://')
|
|
28
|
+
? trimmed
|
|
29
|
+
: trimmed.startsWith('wss://')
|
|
30
|
+
? `https://${trimmed.slice('wss://'.length)}`
|
|
31
|
+
: trimmed.startsWith('ws://')
|
|
32
|
+
? `http://${trimmed.slice('ws://'.length)}`
|
|
33
|
+
: `https://${trimmed}`;
|
|
34
|
+
try {
|
|
35
|
+
const url = new URL(candidate);
|
|
36
|
+
if (url.hostname === 'gateway.supen.ai' || url.hostname === 'supen-gateway.onrender.com') {
|
|
37
|
+
url.hostname = 'hub.supen.ai';
|
|
38
|
+
}
|
|
39
|
+
return url.toString().replace(/\/+$/, '');
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return candidate;
|
|
43
|
+
}
|
|
34
44
|
}
|
|
35
45
|
function normalizeGatewayWsUrl(raw) {
|
|
36
46
|
const normalized = raw.trim().replace(/\/+$/, '');
|
|
@@ -117,6 +127,15 @@ function resolveHostServiceManager() {
|
|
|
117
127
|
return 'systemd';
|
|
118
128
|
return 'none';
|
|
119
129
|
}
|
|
130
|
+
function systemdUserEnv() {
|
|
131
|
+
const uid = typeof process.getuid === 'function' ? process.getuid() : Number(process.env.UID || 0);
|
|
132
|
+
const runtimeDir = process.env.XDG_RUNTIME_DIR || `/run/user/${uid}`;
|
|
133
|
+
return {
|
|
134
|
+
...process.env,
|
|
135
|
+
XDG_RUNTIME_DIR: runtimeDir,
|
|
136
|
+
DBUS_SESSION_BUS_ADDRESS: process.env.DBUS_SESSION_BUS_ADDRESS || `unix:path=${runtimeDir}/bus`,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
120
139
|
function buildHostDaemonEnv(input) {
|
|
121
140
|
const env = {
|
|
122
141
|
SUPEN_HOME,
|
|
@@ -126,6 +145,7 @@ function buildHostDaemonEnv(input) {
|
|
|
126
145
|
SUPEN_DAEMON_NAME: input.computerId,
|
|
127
146
|
SUPEN_CODING_CLI: 'codex',
|
|
128
147
|
SUPEN_CODEX_TRANSPORT: 'app-server',
|
|
148
|
+
SUPEN_DAEMON_LOCK_TAKEOVER: '1',
|
|
129
149
|
PATH: process.env.PATH || '',
|
|
130
150
|
...hostOsIdentityEnv(),
|
|
131
151
|
};
|
|
@@ -236,8 +256,8 @@ WantedBy=default.target
|
|
|
236
256
|
catch (err) {
|
|
237
257
|
console.warn(` systemd linger enable failed (${err?.message || String(err)}); daemon may restart only after user login.`);
|
|
238
258
|
}
|
|
239
|
-
execFileSync('systemctl', ['--user', 'daemon-reload'], { stdio: 'ignore' });
|
|
240
|
-
execFileSync('systemctl', ['--user', 'enable', '--now', 'supen-daemon.service'], { stdio: 'ignore' });
|
|
259
|
+
execFileSync('systemctl', ['--user', 'daemon-reload'], { stdio: 'ignore', env: systemdUserEnv() });
|
|
260
|
+
execFileSync('systemctl', ['--user', 'enable', '--now', 'supen-daemon.service'], { stdio: 'ignore', env: systemdUserEnv() });
|
|
241
261
|
}
|
|
242
262
|
function startHostDaemon(input) {
|
|
243
263
|
const manager = resolveHostServiceManager();
|
|
@@ -268,7 +288,7 @@ function startHostDaemon(input) {
|
|
|
268
288
|
}
|
|
269
289
|
function restartHostService(manager) {
|
|
270
290
|
if (manager === 'systemd') {
|
|
271
|
-
execFileSync('systemctl', ['--user', 'restart', 'supen-daemon.service'], { stdio: 'ignore' });
|
|
291
|
+
execFileSync('systemctl', ['--user', 'restart', 'supen-daemon.service'], { stdio: 'ignore', env: systemdUserEnv() });
|
|
272
292
|
return;
|
|
273
293
|
}
|
|
274
294
|
if (manager === 'launchd') {
|
package/dist/computer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computer.js","sourceRoot":"","sources":["../src/computer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"computer.js","sourceRoot":"","sources":["../src/computer.ts"],"names":[],"mappings":"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"}
|
package/dist/doctor.js
CHANGED
|
@@ -16,7 +16,77 @@ import { execSync } from 'child_process';
|
|
|
16
16
|
import yaml from 'yaml';
|
|
17
17
|
import { readConfig, CONFIG_PATH, SUPEN_HOME, DAEMON_PORT } from './utils.js';
|
|
18
18
|
import { computerApiPath } from './transport/computer-api.js';
|
|
19
|
+
import { runUpdateCommand } from './computer.js';
|
|
19
20
|
const DEFAULT_GATEWAY_PORT = 10000;
|
|
21
|
+
function normalizeGatewayHttpUrl(raw) {
|
|
22
|
+
const trimmed = String(raw || '').trim().replace(/\/+$/, '');
|
|
23
|
+
if (!trimmed)
|
|
24
|
+
return '';
|
|
25
|
+
const candidate = trimmed.startsWith('http://') || trimmed.startsWith('https://')
|
|
26
|
+
? trimmed
|
|
27
|
+
: trimmed.startsWith('wss://')
|
|
28
|
+
? `https://${trimmed.slice('wss://'.length)}`
|
|
29
|
+
: trimmed.startsWith('ws://')
|
|
30
|
+
? `http://${trimmed.slice('ws://'.length)}`
|
|
31
|
+
: `https://${trimmed}`;
|
|
32
|
+
try {
|
|
33
|
+
const url = new URL(candidate);
|
|
34
|
+
if (url.hostname === 'gateway.supen.ai' || url.hostname === 'supen-gateway.onrender.com') {
|
|
35
|
+
url.hostname = 'hub.supen.ai';
|
|
36
|
+
}
|
|
37
|
+
return url.toString().replace(/\/+$/, '');
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return candidate;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function systemdUserEnv() {
|
|
44
|
+
const uid = typeof process.getuid === 'function' ? process.getuid() : Number(process.env.UID || 0);
|
|
45
|
+
const runtimeDir = process.env.XDG_RUNTIME_DIR || `/run/user/${uid}`;
|
|
46
|
+
return {
|
|
47
|
+
...process.env,
|
|
48
|
+
XDG_RUNTIME_DIR: runtimeDir,
|
|
49
|
+
DBUS_SESSION_BUS_ADDRESS: process.env.DBUS_SESSION_BUS_ADDRESS || `unix:path=${runtimeDir}/bus`,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function readDaemonLockPid() {
|
|
53
|
+
const lockPath = path.join(SUPEN_HOME, 'daemon.lock');
|
|
54
|
+
try {
|
|
55
|
+
const parsed = JSON.parse(fs.readFileSync(lockPath, 'utf8'));
|
|
56
|
+
const pid = Number(parsed?.pid);
|
|
57
|
+
return Number.isInteger(pid) && pid > 0 ? pid : null;
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function readPackageVersion(packageJsonPath) {
|
|
64
|
+
try {
|
|
65
|
+
const parsed = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
66
|
+
return typeof parsed?.version === 'string' ? parsed.version : null;
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function currentCliVersion() {
|
|
73
|
+
return readPackageVersion(new URL('../package.json', import.meta.url));
|
|
74
|
+
}
|
|
75
|
+
function installedHostDaemonVersion() {
|
|
76
|
+
return readPackageVersion(path.join(SUPEN_HOME, 'daemon', 'node_modules', '@supen-ai', 'cli', 'package.json'));
|
|
77
|
+
}
|
|
78
|
+
function checkHostDaemonPackageVersion() {
|
|
79
|
+
const current = currentCliVersion();
|
|
80
|
+
const installed = installedHostDaemonVersion();
|
|
81
|
+
if (!current || !installed || current === installed)
|
|
82
|
+
return null;
|
|
83
|
+
return {
|
|
84
|
+
name: 'service',
|
|
85
|
+
status: 'warn',
|
|
86
|
+
message: `Host daemon package is ${installed}; CLI is ${current}`,
|
|
87
|
+
details: ['Run `supen doctor --fix` to update the host daemon package and restart the service'],
|
|
88
|
+
};
|
|
89
|
+
}
|
|
20
90
|
async function checkDaemon() {
|
|
21
91
|
return new Promise((resolve) => {
|
|
22
92
|
const req = http.get(`http://localhost:${DAEMON_PORT}/health`, (res) => {
|
|
@@ -105,19 +175,15 @@ function checkSkills() {
|
|
|
105
175
|
'./skills',
|
|
106
176
|
];
|
|
107
177
|
const resolvedDirs = skillDirs.map((d) => d.replace('~', process.env.HOME || '').replace('@', path.join(SUPEN_HOME, 'daemon')));
|
|
178
|
+
let accessibleDir = null;
|
|
179
|
+
let totalSkills = 0;
|
|
108
180
|
for (const dir of resolvedDirs) {
|
|
109
181
|
if (fs.existsSync(dir)) {
|
|
110
182
|
try {
|
|
111
183
|
const entries = fs.readdirSync(dir);
|
|
112
184
|
const skillCount = entries.filter((f) => fs.statSync(path.join(dir, f)).isDirectory()).length;
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
name: 'skills',
|
|
116
|
-
status: 'pass',
|
|
117
|
-
message: `Skills directory accessible: ${dir}`,
|
|
118
|
-
details: [`Found ${skillCount} skill(s)`],
|
|
119
|
-
};
|
|
120
|
-
}
|
|
185
|
+
accessibleDir ??= dir;
|
|
186
|
+
totalSkills += skillCount;
|
|
121
187
|
}
|
|
122
188
|
catch (err) {
|
|
123
189
|
issues.push(`Cannot read skills dir ${dir}: ${err.message}`);
|
|
@@ -127,6 +193,14 @@ function checkSkills() {
|
|
|
127
193
|
issues.push(`Skills directory not found: ${dir}`);
|
|
128
194
|
}
|
|
129
195
|
}
|
|
196
|
+
if (accessibleDir) {
|
|
197
|
+
return {
|
|
198
|
+
name: 'skills',
|
|
199
|
+
status: 'pass',
|
|
200
|
+
message: `Skills directory accessible: ${accessibleDir}`,
|
|
201
|
+
details: [`Found ${totalSkills} skill(s)`],
|
|
202
|
+
};
|
|
203
|
+
}
|
|
130
204
|
return {
|
|
131
205
|
name: 'skills',
|
|
132
206
|
status: issues.length === resolvedDirs.length ? 'fail' : 'warn',
|
|
@@ -233,10 +307,97 @@ function checkGateway() {
|
|
|
233
307
|
details: ['Set gateway.url in config.yaml or SUPEN_GATEWAY_URL env var', 'Cloud computer features may not work'],
|
|
234
308
|
};
|
|
235
309
|
}
|
|
310
|
+
const normalized = normalizeGatewayHttpUrl(gatewayUrl);
|
|
236
311
|
return {
|
|
237
312
|
name: 'gateway',
|
|
238
|
-
status: 'pass',
|
|
239
|
-
message:
|
|
313
|
+
status: normalized && normalized !== gatewayUrl ? 'warn' : 'pass',
|
|
314
|
+
message: normalized && normalized !== gatewayUrl
|
|
315
|
+
? `Gateway URL uses legacy host: ${gatewayUrl}`
|
|
316
|
+
: `Gateway URL configured: ${gatewayUrl}`,
|
|
317
|
+
details: normalized && normalized !== gatewayUrl
|
|
318
|
+
? [`Canonical URL: ${normalized}`, 'Run `supen doctor --fix` to update config.yaml']
|
|
319
|
+
: undefined,
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
function checkService() {
|
|
323
|
+
if (process.platform === 'darwin') {
|
|
324
|
+
const uid = typeof process.getuid === 'function' ? process.getuid() : Number(process.env.UID || 0);
|
|
325
|
+
try {
|
|
326
|
+
execSync(`launchctl print gui/${uid}/ai.supen.daemon`, { stdio: 'ignore' });
|
|
327
|
+
const versionWarning = checkHostDaemonPackageVersion();
|
|
328
|
+
if (versionWarning)
|
|
329
|
+
return versionWarning;
|
|
330
|
+
return {
|
|
331
|
+
name: 'service',
|
|
332
|
+
status: 'pass',
|
|
333
|
+
message: 'Host daemon launchd service is loaded',
|
|
334
|
+
};
|
|
335
|
+
}
|
|
336
|
+
catch {
|
|
337
|
+
return {
|
|
338
|
+
name: 'service',
|
|
339
|
+
status: 'warn',
|
|
340
|
+
message: 'Host daemon launchd service is not loaded',
|
|
341
|
+
details: ['Run `supen doctor --fix` to install or restart the host daemon service'],
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
if (process.platform === 'linux') {
|
|
346
|
+
try {
|
|
347
|
+
const state = execSync('systemctl --user is-active supen-daemon.service', {
|
|
348
|
+
encoding: 'utf8',
|
|
349
|
+
env: systemdUserEnv(),
|
|
350
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
351
|
+
}).trim();
|
|
352
|
+
if (state === 'active') {
|
|
353
|
+
const mainPidRaw = execSync('systemctl --user show supen-daemon.service -p MainPID --value', {
|
|
354
|
+
encoding: 'utf8',
|
|
355
|
+
env: systemdUserEnv(),
|
|
356
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
357
|
+
}).trim();
|
|
358
|
+
const mainPid = Number(mainPidRaw);
|
|
359
|
+
const lockPid = readDaemonLockPid();
|
|
360
|
+
if (lockPid && Number.isInteger(mainPid) && mainPid > 0 && lockPid !== mainPid) {
|
|
361
|
+
return {
|
|
362
|
+
name: 'service',
|
|
363
|
+
status: 'warn',
|
|
364
|
+
message: 'Host daemon systemd service is active but does not own the daemon lock',
|
|
365
|
+
details: [
|
|
366
|
+
`Service PID: ${mainPid}`,
|
|
367
|
+
`Daemon lock PID: ${lockPid}`,
|
|
368
|
+
'Run `supen doctor --fix` to restart the host daemon service and take over the lock',
|
|
369
|
+
],
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
const versionWarning = checkHostDaemonPackageVersion();
|
|
373
|
+
if (versionWarning)
|
|
374
|
+
return versionWarning;
|
|
375
|
+
return {
|
|
376
|
+
name: 'service',
|
|
377
|
+
status: 'pass',
|
|
378
|
+
message: 'Host daemon systemd user service is active',
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
return {
|
|
382
|
+
name: 'service',
|
|
383
|
+
status: 'warn',
|
|
384
|
+
message: `Host daemon systemd user service is ${state || 'not active'}`,
|
|
385
|
+
details: ['Run `supen doctor --fix` to install or restart the host daemon service'],
|
|
386
|
+
};
|
|
387
|
+
}
|
|
388
|
+
catch {
|
|
389
|
+
return {
|
|
390
|
+
name: 'service',
|
|
391
|
+
status: 'warn',
|
|
392
|
+
message: 'Host daemon systemd user service is not active',
|
|
393
|
+
details: ['Run `supen doctor --fix` to install or restart the host daemon service'],
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
return {
|
|
398
|
+
name: 'service',
|
|
399
|
+
status: 'warn',
|
|
400
|
+
message: 'Host daemon service manager is not supported on this platform',
|
|
240
401
|
};
|
|
241
402
|
}
|
|
242
403
|
function checkCLIs() {
|
|
@@ -261,9 +422,107 @@ function checkCLIs() {
|
|
|
261
422
|
};
|
|
262
423
|
}
|
|
263
424
|
async function runAllDiagnostics() {
|
|
425
|
+
return runDoctor({});
|
|
426
|
+
}
|
|
427
|
+
function fixSkillsDirectory() {
|
|
428
|
+
try {
|
|
429
|
+
const dir = path.join(SUPEN_HOME, 'skills');
|
|
430
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
431
|
+
return {
|
|
432
|
+
name: 'skills',
|
|
433
|
+
status: 'fixed',
|
|
434
|
+
message: `Ensured skills directory exists: ${dir}`,
|
|
435
|
+
};
|
|
436
|
+
}
|
|
437
|
+
catch (err) {
|
|
438
|
+
return {
|
|
439
|
+
name: 'skills',
|
|
440
|
+
status: 'failed',
|
|
441
|
+
message: err?.message || 'Failed to create skills directory',
|
|
442
|
+
};
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
function fixGatewayConfig() {
|
|
446
|
+
if (!fs.existsSync(CONFIG_PATH)) {
|
|
447
|
+
return {
|
|
448
|
+
name: 'gateway',
|
|
449
|
+
status: 'skipped',
|
|
450
|
+
message: 'config.yaml is missing',
|
|
451
|
+
};
|
|
452
|
+
}
|
|
453
|
+
try {
|
|
454
|
+
const raw = yaml.parse(fs.readFileSync(CONFIG_PATH, 'utf-8')) || {};
|
|
455
|
+
const current = raw?.gateway?.url || raw?.gateway_url;
|
|
456
|
+
const normalized = normalizeGatewayHttpUrl(current);
|
|
457
|
+
if (!current || !normalized || normalized === current) {
|
|
458
|
+
return {
|
|
459
|
+
name: 'gateway',
|
|
460
|
+
status: 'skipped',
|
|
461
|
+
message: 'Gateway URL is already canonical or not configured',
|
|
462
|
+
};
|
|
463
|
+
}
|
|
464
|
+
const next = {
|
|
465
|
+
...raw,
|
|
466
|
+
gateway: {
|
|
467
|
+
...(raw.gateway && typeof raw.gateway === 'object' ? raw.gateway : {}),
|
|
468
|
+
url: normalized,
|
|
469
|
+
},
|
|
470
|
+
};
|
|
471
|
+
if (raw.gateway_url)
|
|
472
|
+
next.gateway_url = normalized;
|
|
473
|
+
fs.writeFileSync(CONFIG_PATH, yaml.stringify(next));
|
|
474
|
+
return {
|
|
475
|
+
name: 'gateway',
|
|
476
|
+
status: 'fixed',
|
|
477
|
+
message: `Updated gateway URL to ${normalized}`,
|
|
478
|
+
};
|
|
479
|
+
}
|
|
480
|
+
catch (err) {
|
|
481
|
+
return {
|
|
482
|
+
name: 'gateway',
|
|
483
|
+
status: 'failed',
|
|
484
|
+
message: err?.message || 'Failed to update gateway config',
|
|
485
|
+
};
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
async function fixHostService() {
|
|
489
|
+
try {
|
|
490
|
+
await runUpdateCommand({ runtime: 'host' });
|
|
491
|
+
return {
|
|
492
|
+
name: 'service',
|
|
493
|
+
status: 'fixed',
|
|
494
|
+
message: 'Updated host daemon package and restarted service',
|
|
495
|
+
};
|
|
496
|
+
}
|
|
497
|
+
catch (err) {
|
|
498
|
+
return {
|
|
499
|
+
name: 'service',
|
|
500
|
+
status: 'failed',
|
|
501
|
+
message: err?.message || 'Failed to update or restart host daemon service',
|
|
502
|
+
};
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
async function applyFixes(results) {
|
|
506
|
+
const fixes = [];
|
|
507
|
+
const resultByName = new Map(results.map((result) => [result.name, result]));
|
|
508
|
+
if (resultByName.get('skills')?.status !== 'pass') {
|
|
509
|
+
fixes.push(fixSkillsDirectory());
|
|
510
|
+
}
|
|
511
|
+
if (resultByName.get('gateway')?.status !== 'pass') {
|
|
512
|
+
fixes.push(fixGatewayConfig());
|
|
513
|
+
}
|
|
514
|
+
const daemonStatus = resultByName.get('daemon')?.status;
|
|
515
|
+
const serviceStatus = resultByName.get('service')?.status;
|
|
516
|
+
if (daemonStatus === 'fail' || serviceStatus !== 'pass') {
|
|
517
|
+
fixes.push(await fixHostService());
|
|
518
|
+
}
|
|
519
|
+
return fixes;
|
|
520
|
+
}
|
|
521
|
+
async function runDoctor(options = {}) {
|
|
264
522
|
console.log('\n Running diagnostics...\n');
|
|
265
523
|
const checks = [
|
|
266
524
|
{ name: 'daemon', fn: checkDaemon },
|
|
525
|
+
{ name: 'service', fn: () => Promise.resolve(checkService()) },
|
|
267
526
|
{ name: 'config', fn: () => Promise.resolve(checkConfig()) },
|
|
268
527
|
{ name: 'clis', fn: () => Promise.resolve(checkCLIs()) },
|
|
269
528
|
{ name: 'skills', fn: () => Promise.resolve(checkSkills()) },
|
|
@@ -294,30 +553,51 @@ async function runAllDiagnostics() {
|
|
|
294
553
|
console.log('');
|
|
295
554
|
}
|
|
296
555
|
}
|
|
556
|
+
if (options.fix) {
|
|
557
|
+
console.log(' Applying fixes...\n');
|
|
558
|
+
const fixes = await applyFixes(results);
|
|
559
|
+
if (fixes.length === 0) {
|
|
560
|
+
console.log(' • No automatic fixes available for the current results.\n');
|
|
561
|
+
}
|
|
562
|
+
else {
|
|
563
|
+
for (const fix of fixes) {
|
|
564
|
+
const icon = fix.status === 'fixed' ? '✅' : fix.status === 'failed' ? '❌' : '⚠️';
|
|
565
|
+
console.log(` ${icon} ${fix.name}: ${fix.message}`);
|
|
566
|
+
}
|
|
567
|
+
console.log('');
|
|
568
|
+
}
|
|
569
|
+
if (options.rerun !== false) {
|
|
570
|
+
await runDoctor({ fix: false, rerun: false });
|
|
571
|
+
}
|
|
572
|
+
}
|
|
297
573
|
}
|
|
298
574
|
export function registerDoctorCommand(program) {
|
|
299
575
|
const doctor = program
|
|
300
576
|
.command('doctor')
|
|
301
|
-
.description('Run diagnostics to check Supen setup')
|
|
577
|
+
.description('Run diagnostics to check Supen setup')
|
|
578
|
+
.option('--fix', 'Fix supported setup issues after diagnosing');
|
|
302
579
|
doctor
|
|
303
580
|
.command('list')
|
|
304
581
|
.description('List available diagnostic checks')
|
|
305
582
|
.action(() => {
|
|
306
583
|
console.log('\n Available checks:');
|
|
307
584
|
console.log(' daemon Is the daemon responding on port 2756?');
|
|
585
|
+
console.log(' service Is the host daemon installed as a system service?');
|
|
308
586
|
console.log(' config Is config.yaml valid and present?');
|
|
309
587
|
console.log(' clis Are required CLIs installed?');
|
|
310
588
|
console.log(' skills Are skills directories accessible?');
|
|
311
589
|
console.log(' channels Can we reach configured channel APIs?');
|
|
312
590
|
console.log(' enrollment Is the daemon enrolled with the gateway?');
|
|
313
591
|
console.log(' gateway Is gateway URL configured?\n');
|
|
314
|
-
console.log(' Run `supen doctor` without subcommand to run all checks
|
|
592
|
+
console.log(' Run `supen doctor` without subcommand to run all checks.');
|
|
593
|
+
console.log(' Run `supen doctor --fix` to apply supported fixes.\n');
|
|
315
594
|
});
|
|
316
595
|
doctor
|
|
317
596
|
.command('run')
|
|
318
597
|
.description('Run all diagnostic checks')
|
|
319
|
-
.
|
|
598
|
+
.option('--fix', 'Fix supported setup issues after diagnosing')
|
|
599
|
+
.action((options) => runDoctor({ fix: Boolean(options.fix) }));
|
|
320
600
|
// Default action: run all checks
|
|
321
|
-
doctor.action(
|
|
601
|
+
doctor.action((options) => runDoctor({ fix: Boolean(options.fix) }));
|
|
322
602
|
}
|
|
323
603
|
//# sourceMappingURL=doctor.js.map
|