@supen-ai/cli 0.1.9 → 0.1.11
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 +9 -7
- package/daemon/dist/agent-sdk/driver-output-ui.js +1 -1
- package/daemon/dist/agent-sdk/drivers/acpx-driver.js +1 -1
- package/daemon/dist/agent-sdk/drivers/acpx-driver.js.map +1 -1
- package/daemon/dist/agent-sdk/drivers/registry.js +1 -1
- package/daemon/dist/agent-sdk/drivers/registry.js.map +1 -1
- package/daemon/dist/channels/http-routes.js +59 -59
- package/daemon/dist/channels/http-routes.js.map +1 -1
- package/daemon/dist/channels/http.js +1 -1
- package/daemon/dist/channels/http.js.map +1 -1
- package/daemon/dist/core/config.js +1 -1
- package/daemon/dist/core/config.js.map +1 -1
- package/daemon/dist/core/control-commands.js +1 -1
- package/daemon/dist/core/cortex.js +4 -4
- package/daemon/dist/core/gateway-config.d.ts +1 -1
- package/daemon/dist/core/gateway-config.d.ts.map +1 -1
- package/daemon/dist/core/gateway-config.js +1 -1
- package/daemon/dist/core/gateway-config.js.map +1 -1
- package/daemon/dist/core/gateway.d.ts.map +1 -1
- package/daemon/dist/core/gateway.js +8 -34
- package/daemon/dist/core/gateway.js.map +1 -1
- package/daemon/dist/core/os-info.d.ts +65 -0
- package/daemon/dist/core/os-info.d.ts.map +1 -0
- package/daemon/dist/core/os-info.js +225 -0
- package/daemon/dist/core/os-info.js.map +1 -0
- package/daemon/dist/core/protocol-adapter.js +2 -2
- package/daemon/dist/core/thread-runtime-state.js +1 -1
- package/daemon/dist/http/context.js +2 -2
- package/daemon/dist/http/context.js.map +1 -1
- package/daemon/dist/http/router.d.ts.map +1 -1
- package/daemon/dist/http/router.js +4 -4
- package/daemon/dist/http/router.js.map +1 -1
- package/daemon/dist/http/routes/agents.d.ts.map +1 -1
- package/daemon/dist/http/routes/agents.js +13 -16
- package/daemon/dist/http/routes/agents.js.map +1 -1
- package/daemon/dist/http/routes/automations.d.ts.map +1 -1
- package/daemon/dist/http/routes/automations.js +27 -13
- package/daemon/dist/http/routes/automations.js.map +1 -1
- package/daemon/dist/http/routes/autonomy.js +4 -4
- package/daemon/dist/http/routes/autonomy.js.map +1 -1
- package/daemon/dist/http/routes/chat-input.d.ts +0 -1
- package/daemon/dist/http/routes/chat-input.d.ts.map +1 -1
- package/daemon/dist/http/routes/chat-input.js +0 -1
- package/daemon/dist/http/routes/chat-input.js.map +1 -1
- package/daemon/dist/http/routes/plugins.js +6 -6
- package/daemon/dist/http/routes/plugins.js.map +1 -1
- package/daemon/dist/http/routes/rpc.d.ts.map +1 -1
- package/daemon/dist/http/routes/rpc.js +43 -10
- package/daemon/dist/http/routes/rpc.js.map +1 -1
- package/daemon/dist/http/routes/sessions.js +15 -15
- package/daemon/dist/http/routes/sessions.js.map +1 -1
- package/daemon/dist/http/routes/skills.js +11 -11
- package/daemon/dist/http/routes/skills.js.map +1 -1
- package/daemon/dist/http/routes/system.d.ts +1 -0
- package/daemon/dist/http/routes/system.d.ts.map +1 -1
- package/daemon/dist/http/routes/system.js +316 -82
- package/daemon/dist/http/routes/system.js.map +1 -1
- package/daemon/dist/index.js +1 -1
- package/daemon/scripts/supen-daemon.js +1 -1
- package/dist/auth/login.js +1 -1
- package/dist/auth/login.js.map +1 -1
- package/dist/bootstrap.d.ts +1 -0
- package/dist/bootstrap.js +5 -4
- package/dist/bootstrap.js.map +1 -1
- package/dist/computer.js +25 -4
- package/dist/computer.js.map +1 -1
- package/dist/daemon-manage.js +9 -2
- package/dist/daemon-manage.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/os-identity.d.ts +6 -0
- package/dist/os-identity.js +68 -0
- package/dist/os-identity.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
export type OsReleaseInfo = {
|
|
2
|
+
id?: string;
|
|
3
|
+
id_like?: string;
|
|
4
|
+
name?: string;
|
|
5
|
+
version_id?: string;
|
|
6
|
+
};
|
|
7
|
+
export type OsIdentity = {
|
|
8
|
+
distro_id?: string;
|
|
9
|
+
distro_name?: string;
|
|
10
|
+
};
|
|
11
|
+
export type DarwinVmStat = {
|
|
12
|
+
page_size: number;
|
|
13
|
+
pages_free: number;
|
|
14
|
+
pages_active: number;
|
|
15
|
+
pages_inactive: number;
|
|
16
|
+
pages_speculative: number;
|
|
17
|
+
pages_wired: number;
|
|
18
|
+
pages_compressed: number;
|
|
19
|
+
pageouts: number;
|
|
20
|
+
available_bytes: number;
|
|
21
|
+
};
|
|
22
|
+
export type DarwinMemoryPressure = {
|
|
23
|
+
free_percent?: number;
|
|
24
|
+
};
|
|
25
|
+
export type MemoryTelemetry = {
|
|
26
|
+
mem_total: number;
|
|
27
|
+
mem_free: number;
|
|
28
|
+
mem_used: number;
|
|
29
|
+
mem_os_free: number;
|
|
30
|
+
mem_available?: number;
|
|
31
|
+
mem_pressure_free_pct?: number;
|
|
32
|
+
mem_pressure_used_pct?: number;
|
|
33
|
+
mem_pageouts?: number;
|
|
34
|
+
};
|
|
35
|
+
export declare function parseOsRelease(content: string): OsReleaseInfo;
|
|
36
|
+
export declare function readOsRelease(): OsReleaseInfo;
|
|
37
|
+
export declare function resolveOsIdentityFromRelease(platform: string, release: OsReleaseInfo): OsIdentity;
|
|
38
|
+
export declare function resolveOsIdentity(platform?: string): OsIdentity;
|
|
39
|
+
export declare function parseDarwinVmStat(content: string): DarwinVmStat | null;
|
|
40
|
+
export declare function parseDarwinMemoryPressure(content: string): DarwinMemoryPressure;
|
|
41
|
+
export declare function buildDarwinMemoryTelemetry(memTotal: number, memOsFree: number, pressure: DarwinMemoryPressure, vmStat: DarwinVmStat | null): MemoryTelemetry;
|
|
42
|
+
export declare function collectMemoryTelemetry(platform?: string, memTotal?: number, memOsFree?: number): MemoryTelemetry;
|
|
43
|
+
export declare function collectOsTelemetryFields(): {
|
|
44
|
+
uptime: number;
|
|
45
|
+
disk_total: number;
|
|
46
|
+
disk_free: number;
|
|
47
|
+
disk_used: number;
|
|
48
|
+
mem_total: number;
|
|
49
|
+
mem_free: number;
|
|
50
|
+
mem_used: number;
|
|
51
|
+
mem_os_free: number;
|
|
52
|
+
mem_available?: number;
|
|
53
|
+
mem_pressure_free_pct?: number;
|
|
54
|
+
mem_pressure_used_pct?: number;
|
|
55
|
+
mem_pageouts?: number;
|
|
56
|
+
cpus: number;
|
|
57
|
+
cpu_model: string;
|
|
58
|
+
load_avg: number[];
|
|
59
|
+
distro_id?: string;
|
|
60
|
+
distro_name?: string;
|
|
61
|
+
hostname: string;
|
|
62
|
+
platform: NodeJS.Platform;
|
|
63
|
+
arch: string;
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=os-info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"os-info.d.ts","sourceRoot":"","sources":["../../src/core/os-info.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAkB7D;AAED,wBAAgB,aAAa,IAAI,aAAa,CAqB7C;AAqBD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,UAAU,CAqBjG;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAsB,GAAG,UAAU,CAQ9E;AAOD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CA2BtE;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,CAK/E;AAgBD,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,YAAY,GAAG,IAAI,GAC1B,eAAe,CAuBjB;AAQD,wBAAgB,sBAAsB,CACpC,QAAQ,GAAE,MAAsB,EAChC,QAAQ,GAAE,MAAsB,EAChC,SAAS,GAAE,MAAqB,GAC/B,eAAe,CAUjB;AAED,wBAAgB,wBAAwB;;;;;eApN3B,MAAM;cACP,MAAM;cACN,MAAM;iBACH,MAAM;oBACH,MAAM;4BACE,MAAM;4BACN,MAAM;mBACf,MAAM;;;;gBA5BT,MAAM;kBACJ,MAAM;;;;EAwQrB"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import os from 'os';
|
|
3
|
+
import { spawnSync } from 'child_process';
|
|
4
|
+
import { SUPEN_HOME } from './config.js';
|
|
5
|
+
export function parseOsRelease(content) {
|
|
6
|
+
const info = {};
|
|
7
|
+
for (const line of content.split('\n')) {
|
|
8
|
+
const trimmed = line.trim();
|
|
9
|
+
if (!trimmed || trimmed.startsWith('#'))
|
|
10
|
+
continue;
|
|
11
|
+
const separator = trimmed.indexOf('=');
|
|
12
|
+
if (separator <= 0)
|
|
13
|
+
continue;
|
|
14
|
+
const key = trimmed.slice(0, separator).trim().toLowerCase();
|
|
15
|
+
let value = trimmed.slice(separator + 1).trim();
|
|
16
|
+
if (value.startsWith('"') && value.endsWith('"')) {
|
|
17
|
+
value = value.slice(1, -1);
|
|
18
|
+
}
|
|
19
|
+
if (key === 'id')
|
|
20
|
+
info.id = value.toLowerCase();
|
|
21
|
+
if (key === 'id_like')
|
|
22
|
+
info.id_like = value.toLowerCase();
|
|
23
|
+
if (key === 'name')
|
|
24
|
+
info.name = value;
|
|
25
|
+
if (key === 'version_id')
|
|
26
|
+
info.version_id = value;
|
|
27
|
+
}
|
|
28
|
+
return info;
|
|
29
|
+
}
|
|
30
|
+
export function readOsRelease() {
|
|
31
|
+
const fromEnv = readOsIdentityFromEnv();
|
|
32
|
+
if (fromEnv.id || fromEnv.name) {
|
|
33
|
+
return fromEnv;
|
|
34
|
+
}
|
|
35
|
+
for (const filePath of [
|
|
36
|
+
'/etc/host-os-release',
|
|
37
|
+
'/etc/os-release',
|
|
38
|
+
'/usr/lib/os-release',
|
|
39
|
+
]) {
|
|
40
|
+
try {
|
|
41
|
+
const parsed = parseOsRelease(fs.readFileSync(filePath, 'utf8'));
|
|
42
|
+
if (parsed.id || parsed.name || parsed.id_like) {
|
|
43
|
+
return parsed;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// try next path
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return {};
|
|
51
|
+
}
|
|
52
|
+
function readOsIdentityFromEnv() {
|
|
53
|
+
const id = process.env.SUPEN_OS_DISTRO_ID?.trim().toLowerCase();
|
|
54
|
+
const name = process.env.SUPEN_OS_DISTRO_NAME?.trim();
|
|
55
|
+
if (!id && !name)
|
|
56
|
+
return {};
|
|
57
|
+
return {
|
|
58
|
+
...(id ? { id } : {}),
|
|
59
|
+
...(name ? { name } : {}),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function distroFromIdLike(idLike) {
|
|
63
|
+
if (!idLike)
|
|
64
|
+
return undefined;
|
|
65
|
+
const tokens = idLike.split(/\s+/).filter(Boolean);
|
|
66
|
+
for (const preferred of ['ubuntu', 'debian', 'rhel', 'fedora', 'centos', 'arch', 'suse']) {
|
|
67
|
+
if (tokens.includes(preferred))
|
|
68
|
+
return preferred;
|
|
69
|
+
}
|
|
70
|
+
return tokens[0];
|
|
71
|
+
}
|
|
72
|
+
export function resolveOsIdentityFromRelease(platform, release) {
|
|
73
|
+
if (platform === 'darwin') {
|
|
74
|
+
return { distro_id: 'macos', distro_name: 'macOS' };
|
|
75
|
+
}
|
|
76
|
+
if (platform === 'win32') {
|
|
77
|
+
return { distro_id: 'windows', distro_name: 'Windows' };
|
|
78
|
+
}
|
|
79
|
+
if (platform !== 'linux') {
|
|
80
|
+
return { distro_id: platform, distro_name: platform };
|
|
81
|
+
}
|
|
82
|
+
const distroId = release.id || distroFromIdLike(release.id_like) || 'linux';
|
|
83
|
+
const distroName = release.name
|
|
84
|
+
? release.version_id
|
|
85
|
+
? `${release.name} ${release.version_id}`.trim()
|
|
86
|
+
: release.name
|
|
87
|
+
: distroId;
|
|
88
|
+
return {
|
|
89
|
+
distro_id: distroId,
|
|
90
|
+
distro_name: distroName,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
export function resolveOsIdentity(platform = os.platform()) {
|
|
94
|
+
if (platform === 'darwin' || platform === 'win32') {
|
|
95
|
+
return resolveOsIdentityFromRelease(platform, {});
|
|
96
|
+
}
|
|
97
|
+
if (platform !== 'linux') {
|
|
98
|
+
return resolveOsIdentityFromRelease(platform, {});
|
|
99
|
+
}
|
|
100
|
+
return resolveOsIdentityFromRelease(platform, readOsRelease());
|
|
101
|
+
}
|
|
102
|
+
function parseVmStatNumber(value) {
|
|
103
|
+
const numeric = Number.parseInt(value.replace(/\./g, '').trim(), 10);
|
|
104
|
+
return Number.isFinite(numeric) ? numeric : 0;
|
|
105
|
+
}
|
|
106
|
+
export function parseDarwinVmStat(content) {
|
|
107
|
+
const pageSizeMatch = content.match(/page size of\s+(\d+)\s+bytes/i);
|
|
108
|
+
const pageSize = pageSizeMatch ? Number.parseInt(pageSizeMatch[1], 10) : 4096;
|
|
109
|
+
if (!Number.isFinite(pageSize) || pageSize <= 0)
|
|
110
|
+
return null;
|
|
111
|
+
const fields = new Map();
|
|
112
|
+
for (const line of content.split('\n')) {
|
|
113
|
+
const match = line.match(/^([^:]+):\s+([0-9.]+)/);
|
|
114
|
+
if (!match)
|
|
115
|
+
continue;
|
|
116
|
+
fields.set(match[1].trim().toLowerCase(), parseVmStatNumber(match[2]));
|
|
117
|
+
}
|
|
118
|
+
const pagesFree = fields.get('pages free') ?? 0;
|
|
119
|
+
const pagesInactive = fields.get('pages inactive') ?? 0;
|
|
120
|
+
const pagesSpeculative = fields.get('pages speculative') ?? 0;
|
|
121
|
+
return {
|
|
122
|
+
page_size: pageSize,
|
|
123
|
+
pages_free: pagesFree,
|
|
124
|
+
pages_active: fields.get('pages active') ?? 0,
|
|
125
|
+
pages_inactive: pagesInactive,
|
|
126
|
+
pages_speculative: pagesSpeculative,
|
|
127
|
+
pages_wired: fields.get('pages wired down') ?? fields.get('pages wired') ?? 0,
|
|
128
|
+
pages_compressed: fields.get('pages occupied by compressor') ?? 0,
|
|
129
|
+
pageouts: fields.get('pageouts') ?? 0,
|
|
130
|
+
available_bytes: (pagesFree + pagesInactive + pagesSpeculative) * pageSize,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
export function parseDarwinMemoryPressure(content) {
|
|
134
|
+
const match = content.match(/System-wide memory free percentage:\s*(\d+(?:\.\d+)?)%/i);
|
|
135
|
+
if (!match)
|
|
136
|
+
return {};
|
|
137
|
+
const freePercent = Number.parseFloat(match[1]);
|
|
138
|
+
return Number.isFinite(freePercent) ? { free_percent: freePercent } : {};
|
|
139
|
+
}
|
|
140
|
+
function runCommandOutput(command, args) {
|
|
141
|
+
try {
|
|
142
|
+
const result = spawnSync(command, args, {
|
|
143
|
+
encoding: 'utf8',
|
|
144
|
+
timeout: 1000,
|
|
145
|
+
maxBuffer: 1024 * 1024,
|
|
146
|
+
});
|
|
147
|
+
if (result.status !== 0)
|
|
148
|
+
return null;
|
|
149
|
+
return result.stdout || null;
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
export function buildDarwinMemoryTelemetry(memTotal, memOsFree, pressure, vmStat) {
|
|
156
|
+
const pressureFree = pressure.free_percent !== undefined
|
|
157
|
+
? Math.max(0, Math.min(memTotal, Math.round(memTotal * (pressure.free_percent / 100))))
|
|
158
|
+
: undefined;
|
|
159
|
+
const vmAvailable = vmStat ? Math.max(0, Math.min(memTotal, vmStat.available_bytes)) : undefined;
|
|
160
|
+
const memFree = pressureFree ?? vmAvailable ?? memOsFree;
|
|
161
|
+
const memUsed = Math.max(0, memTotal - memFree);
|
|
162
|
+
return {
|
|
163
|
+
mem_total: memTotal,
|
|
164
|
+
mem_free: memFree,
|
|
165
|
+
mem_used: memUsed,
|
|
166
|
+
mem_os_free: memOsFree,
|
|
167
|
+
...(vmAvailable !== undefined ? { mem_available: vmAvailable } : {}),
|
|
168
|
+
...(pressure.free_percent !== undefined
|
|
169
|
+
? {
|
|
170
|
+
mem_pressure_free_pct: pressure.free_percent,
|
|
171
|
+
mem_pressure_used_pct: Math.max(0, Math.min(100, 100 - pressure.free_percent)),
|
|
172
|
+
}
|
|
173
|
+
: {}),
|
|
174
|
+
...(vmStat ? { mem_pageouts: vmStat.pageouts } : {}),
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
function collectDarwinMemoryTelemetry(memTotal, memOsFree) {
|
|
178
|
+
const pressure = parseDarwinMemoryPressure(runCommandOutput('memory_pressure', []) ?? '');
|
|
179
|
+
const vmStat = parseDarwinVmStat(runCommandOutput('vm_stat', []) ?? '');
|
|
180
|
+
return buildDarwinMemoryTelemetry(memTotal, memOsFree, pressure, vmStat);
|
|
181
|
+
}
|
|
182
|
+
export function collectMemoryTelemetry(platform = os.platform(), memTotal = os.totalmem(), memOsFree = os.freemem()) {
|
|
183
|
+
if (platform === 'darwin') {
|
|
184
|
+
return collectDarwinMemoryTelemetry(memTotal, memOsFree);
|
|
185
|
+
}
|
|
186
|
+
return {
|
|
187
|
+
mem_total: memTotal,
|
|
188
|
+
mem_free: memOsFree,
|
|
189
|
+
mem_used: Math.max(0, memTotal - memOsFree),
|
|
190
|
+
mem_os_free: memOsFree,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
export function collectOsTelemetryFields() {
|
|
194
|
+
const cpus = os.cpus();
|
|
195
|
+
const memTotal = os.totalmem();
|
|
196
|
+
const memory = collectMemoryTelemetry(os.platform(), memTotal, os.freemem());
|
|
197
|
+
const identity = resolveOsIdentity();
|
|
198
|
+
let disk_total;
|
|
199
|
+
let disk_free;
|
|
200
|
+
let disk_used;
|
|
201
|
+
try {
|
|
202
|
+
const stats = fs.statfsSync(SUPEN_HOME);
|
|
203
|
+
disk_total = stats.bsize * stats.blocks;
|
|
204
|
+
disk_free = stats.bsize * stats.bavail;
|
|
205
|
+
disk_used = disk_total - disk_free;
|
|
206
|
+
}
|
|
207
|
+
catch {
|
|
208
|
+
// ignore missing disk stats
|
|
209
|
+
}
|
|
210
|
+
return {
|
|
211
|
+
hostname: os.hostname(),
|
|
212
|
+
platform: os.platform(),
|
|
213
|
+
arch: os.arch(),
|
|
214
|
+
...identity,
|
|
215
|
+
cpus: cpus.length,
|
|
216
|
+
cpu_model: cpus[0]?.model || 'Unknown',
|
|
217
|
+
load_avg: os.loadavg(),
|
|
218
|
+
...memory,
|
|
219
|
+
uptime: os.uptime(),
|
|
220
|
+
disk_total,
|
|
221
|
+
disk_free,
|
|
222
|
+
disk_used,
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=os-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"os-info.js","sourceRoot":"","sources":["../../src/core/os-info.ts"],"names":[],"mappings":"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"}
|
|
@@ -262,7 +262,7 @@ function approvalDeniedChunks(event) {
|
|
|
262
262
|
}
|
|
263
263
|
function toSupenEventChunk(event) {
|
|
264
264
|
return {
|
|
265
|
-
type: 'data-
|
|
265
|
+
type: 'data-codex-event',
|
|
266
266
|
data: {
|
|
267
267
|
eventType: typeof event?.type === 'string'
|
|
268
268
|
? event.type
|
|
@@ -360,7 +360,7 @@ export function convertSdkEventToUiMessageChunks(event, textId = '1') {
|
|
|
360
360
|
}
|
|
361
361
|
else {
|
|
362
362
|
resultChunks.push({
|
|
363
|
-
type: 'data-
|
|
363
|
+
type: 'data-codex-event',
|
|
364
364
|
data: {
|
|
365
365
|
eventType: 'assistant-block',
|
|
366
366
|
blockType: block?.type ?? 'unknown',
|
|
@@ -103,10 +103,10 @@ export function deriveHttpSenderIdentity(context) {
|
|
|
103
103
|
}
|
|
104
104
|
export function requiresAdminApiAccess(pathname, method) {
|
|
105
105
|
if ((method === 'GET' || method === 'HEAD') &&
|
|
106
|
-
/^\/api\/
|
|
106
|
+
/^\/api\/computers\/\{computer_id\}\/agents\/[^/]+\/artifacts\/preview-file$/.test(pathname)) {
|
|
107
107
|
return false;
|
|
108
108
|
}
|
|
109
|
-
if (pathname.startsWith('/api/
|
|
109
|
+
if (pathname.startsWith('/api/computers/{computer_id}/')) {
|
|
110
110
|
if (method === 'OPTIONS')
|
|
111
111
|
return false;
|
|
112
112
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/http/context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/http/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAWxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA2BtD,wBAAsB,eAAe,CACnC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,EAC9C,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAWxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA2BtD,wBAAsB,eAAe,CACnC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,EAC9C,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,IAAI,CAAC,CAgCf"}
|
|
@@ -9,14 +9,14 @@ import { handleAutonomyRoutes } from './routes/autonomy.js';
|
|
|
9
9
|
import { handleRpcRoutes } from './routes/rpc.js';
|
|
10
10
|
import { requireHttpAdminContext, requiresAdminApiAccess } from './context.js';
|
|
11
11
|
import { writeProtocolError } from './response.js';
|
|
12
|
-
function
|
|
12
|
+
function normalizeComputerPathTemplate(req, pathname) {
|
|
13
13
|
const canonicalMatch = pathname.match(/^\/api\/computers\/([^/]+)(\/.*)?$/);
|
|
14
14
|
if (!canonicalMatch) {
|
|
15
15
|
return pathname;
|
|
16
16
|
}
|
|
17
17
|
const encodedComputerId = canonicalMatch[1] || '';
|
|
18
18
|
const tail = canonicalMatch[2] || '';
|
|
19
|
-
const rewritten = `/api/
|
|
19
|
+
const rewritten = `/api/computers/{computer_id}${tail || ''}` || '/api/computers/{computer_id}';
|
|
20
20
|
try {
|
|
21
21
|
const decoded = decodeURIComponent(encodedComputerId);
|
|
22
22
|
if (decoded) {
|
|
@@ -27,13 +27,13 @@ function rewriteCanonicalComputerPath(req, pathname) {
|
|
|
27
27
|
catch {
|
|
28
28
|
req.headers['x-computer-id'] = encodedComputerId;
|
|
29
29
|
}
|
|
30
|
-
return rewritten === '/api/
|
|
30
|
+
return rewritten === '/api/computers/{computer_id}/' ? '/api/computers/{computer_id}' : rewritten;
|
|
31
31
|
}
|
|
32
32
|
export async function dispatchRequest(req, res, onMessage, onSessionStop) {
|
|
33
33
|
const url = new URL(req.url ?? '/', `http://localhost`);
|
|
34
34
|
const requestedPathname = url.pathname;
|
|
35
35
|
const method = req.method || 'GET';
|
|
36
|
-
const pathname =
|
|
36
|
+
const pathname = normalizeComputerPathTemplate(req, requestedPathname);
|
|
37
37
|
const adminGuardRequired = requiresAdminApiAccess(pathname, method);
|
|
38
38
|
const adminContext = adminGuardRequired ? requireHttpAdminContext(req, res) : null;
|
|
39
39
|
if (adminGuardRequired && !adminContext)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAyB,MAAM,cAAc,CAAC;AAEtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,SAAS,
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/http/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../../src/http/routes/agents.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AA6H1B,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../../src/http/routes/agents.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AA6H1B,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CA0xBlB"}
|
|
@@ -97,7 +97,7 @@ function buildRequestAbsoluteUrl(req, localPath) {
|
|
|
97
97
|
return `${proto}://${host}${localPath}`;
|
|
98
98
|
}
|
|
99
99
|
export async function handleAgentsRoutes(req, res, url, pathname, method) {
|
|
100
|
-
const previewSessionMatch = pathname.match(/^\/api\/
|
|
100
|
+
const previewSessionMatch = pathname.match(/^\/api\/computers\/\{computer_id\}\/agents\/([^/]+)\/artifacts\/preview-session$/);
|
|
101
101
|
if (previewSessionMatch && method === 'POST') {
|
|
102
102
|
const agentId = decodeURIComponent(previewSessionMatch[1]);
|
|
103
103
|
const body = await readJsonBody(req);
|
|
@@ -158,7 +158,7 @@ export async function handleAgentsRoutes(req, res, url, pathname, method) {
|
|
|
158
158
|
}
|
|
159
159
|
return true;
|
|
160
160
|
}
|
|
161
|
-
const previewFileMatch = pathname.match(/^\/api\/
|
|
161
|
+
const previewFileMatch = pathname.match(/^\/api\/computers\/\{computer_id\}\/agents\/([^/]+)\/artifacts\/preview-file$/);
|
|
162
162
|
if (previewFileMatch && (method === 'GET' || method === 'HEAD')) {
|
|
163
163
|
const token = url.searchParams.get('token') || '';
|
|
164
164
|
const resolved = resolvePreviewToken(token);
|
|
@@ -185,12 +185,12 @@ export async function handleAgentsRoutes(req, res, url, pathname, method) {
|
|
|
185
185
|
return true;
|
|
186
186
|
}
|
|
187
187
|
// ── Agents: List/Create ──
|
|
188
|
-
if (pathname === '/api/
|
|
188
|
+
if (pathname === '/api/computers/{computer_id}/agents' && method === 'GET') {
|
|
189
189
|
const agents = getAllAgents();
|
|
190
190
|
writeJson(res, 200, { agents });
|
|
191
191
|
return true;
|
|
192
192
|
}
|
|
193
|
-
if (pathname === '/api/
|
|
193
|
+
if (pathname === '/api/computers/{computer_id}/agents' && method === 'POST') {
|
|
194
194
|
const body = await readJsonBody(req);
|
|
195
195
|
const payload = (body && typeof body === 'object' && !Array.isArray(body) ? body : {});
|
|
196
196
|
const requestedId = typeof payload.agent_id === 'string'
|
|
@@ -253,7 +253,7 @@ export async function handleAgentsRoutes(req, res, url, pathname, method) {
|
|
|
253
253
|
return true;
|
|
254
254
|
}
|
|
255
255
|
// ── Agents: Single Agent Operations ──
|
|
256
|
-
const agentMatch = pathname.match(/^\/api\/
|
|
256
|
+
const agentMatch = pathname.match(/^\/api\/computers\/\{computer_id\}\/agents\/([^/]+)$/);
|
|
257
257
|
if (agentMatch) {
|
|
258
258
|
const agentId = decodeURIComponent(agentMatch[1]);
|
|
259
259
|
if (method === 'GET') {
|
|
@@ -326,7 +326,7 @@ export async function handleAgentsRoutes(req, res, url, pathname, method) {
|
|
|
326
326
|
}
|
|
327
327
|
}
|
|
328
328
|
// ── Agent Skills Assignment ──
|
|
329
|
-
const agentSkillsMatch = pathname.match(/^\/api\/
|
|
329
|
+
const agentSkillsMatch = pathname.match(/^\/api\/computers\/\{computer_id\}\/agents\/([^/]+)\/skills$/);
|
|
330
330
|
if (agentSkillsMatch && method === 'POST') {
|
|
331
331
|
const agentId = decodeURIComponent(agentSkillsMatch[1]);
|
|
332
332
|
const existingAgent = getAgent(agentId);
|
|
@@ -361,7 +361,7 @@ export async function handleAgentsRoutes(req, res, url, pathname, method) {
|
|
|
361
361
|
writeJson(res, 200, { ok: true, agent: updatedAgent });
|
|
362
362
|
return true;
|
|
363
363
|
}
|
|
364
|
-
const knowledgeRootsMatch = pathname.match(/^\/api\/
|
|
364
|
+
const knowledgeRootsMatch = pathname.match(/^\/api\/computers\/\{computer_id\}\/agents\/([^/]+)\/workspace\/knowledge-roots$/);
|
|
365
365
|
if (knowledgeRootsMatch && method === 'GET') {
|
|
366
366
|
const agentId = decodeURIComponent(knowledgeRootsMatch[1]);
|
|
367
367
|
const space = spacePaths(agentSpaceId(agentId));
|
|
@@ -378,7 +378,7 @@ export async function handleAgentsRoutes(req, res, url, pathname, method) {
|
|
|
378
378
|
return true;
|
|
379
379
|
}
|
|
380
380
|
// ── Workspace file access ──
|
|
381
|
-
const workspaceV1Match = pathname.match(/^\/api\/
|
|
381
|
+
const workspaceV1Match = pathname.match(/^\/api\/computers\/\{computer_id\}\/agents\/([^/]+)\/workspace(?:\/(.*))?$/);
|
|
382
382
|
if (workspaceV1Match && (method === 'GET' || method === 'HEAD' || method === 'PATCH' || method === 'DELETE')) {
|
|
383
383
|
const agentId = decodeURIComponent(workspaceV1Match[1]);
|
|
384
384
|
const relRaw = workspaceV1Match[2] ?? '.';
|
|
@@ -510,7 +510,7 @@ export async function handleAgentsRoutes(req, res, url, pathname, method) {
|
|
|
510
510
|
return true;
|
|
511
511
|
}
|
|
512
512
|
// ── Workspace file upload ──
|
|
513
|
-
const uploadV1Match = pathname.match(/^\/api\/
|
|
513
|
+
const uploadV1Match = pathname.match(/^\/api\/computers\/\{computer_id\}\/agents\/([^/]+)\/workspace\/upload$/);
|
|
514
514
|
if (uploadV1Match && method === 'POST') {
|
|
515
515
|
const agentId = decodeURIComponent(uploadV1Match[1]);
|
|
516
516
|
const reqBody = await readJsonBody(req);
|
|
@@ -556,9 +556,6 @@ export async function handleAgentsRoutes(req, res, url, pathname, method) {
|
|
|
556
556
|
uploadedFiles.push({
|
|
557
557
|
name: originalName,
|
|
558
558
|
path: supenPath,
|
|
559
|
-
supenUrl: rootCategory === 'knowledge'
|
|
560
|
-
? `supen://workspace/${agentId}/${supenPath.replace(/\\/g, '/')}`
|
|
561
|
-
: `supen://workspace/${agentId}/${rootCategory}/${supenPath.replace(/\\/g, '/')}`,
|
|
562
559
|
size: content.length,
|
|
563
560
|
});
|
|
564
561
|
logger.info({ agentId, root: rootCategory, destName, targetPath }, 'File uploaded to workspace');
|
|
@@ -567,7 +564,7 @@ export async function handleAgentsRoutes(req, res, url, pathname, method) {
|
|
|
567
564
|
return true;
|
|
568
565
|
}
|
|
569
566
|
// ── Mind Files ──
|
|
570
|
-
const mindFilesMatch = pathname.match(/^\/api\/
|
|
567
|
+
const mindFilesMatch = pathname.match(/^\/api\/computers\/\{computer_id\}\/agents\/([^/]+)\/mind$/);
|
|
571
568
|
if (mindFilesMatch && method === 'GET') {
|
|
572
569
|
const agentId = decodeURIComponent(mindFilesMatch[1]);
|
|
573
570
|
const baseDir = getAgentBaseDir(agentId);
|
|
@@ -590,7 +587,7 @@ export async function handleAgentsRoutes(req, res, url, pathname, method) {
|
|
|
590
587
|
return true;
|
|
591
588
|
}
|
|
592
589
|
// ── Memory Roll ──
|
|
593
|
-
const memoryMatch = pathname.match(/^\/api\/
|
|
590
|
+
const memoryMatch = pathname.match(/^\/api\/computers\/\{computer_id\}\/agents\/([^/]+)\/memory$/);
|
|
594
591
|
if (memoryMatch && method === 'GET') {
|
|
595
592
|
const agentId = decodeURIComponent(memoryMatch[1]);
|
|
596
593
|
const baseDir = getAgentBaseDir(agentId);
|
|
@@ -624,7 +621,7 @@ export async function handleAgentsRoutes(req, res, url, pathname, method) {
|
|
|
624
621
|
writeJson(res, 200, { core_memory: coreMemory, roll });
|
|
625
622
|
return true;
|
|
626
623
|
}
|
|
627
|
-
const memoryEntryMatch = pathname.match(/^\/api\/
|
|
624
|
+
const memoryEntryMatch = pathname.match(/^\/api\/computers\/\{computer_id\}\/agents\/([^/]+)\/memory\/([^/]+)$/);
|
|
628
625
|
if (memoryEntryMatch && method === 'PUT') {
|
|
629
626
|
const agentId = decodeURIComponent(memoryEntryMatch[1]);
|
|
630
627
|
const entryId = assertSafePathSegment(decodeURIComponent(memoryEntryMatch[2]), 'memory_id');
|
|
@@ -659,7 +656,7 @@ export async function handleAgentsRoutes(req, res, url, pathname, method) {
|
|
|
659
656
|
return true;
|
|
660
657
|
}
|
|
661
658
|
// ── Artifacts ──
|
|
662
|
-
const artifactsMatch = pathname.match(/^\/api\/
|
|
659
|
+
const artifactsMatch = pathname.match(/^\/api\/computers\/\{computer_id\}\/agents\/([^/]+)\/artifacts$/);
|
|
663
660
|
if (artifactsMatch && method === 'GET') {
|
|
664
661
|
const agentId = decodeURIComponent(artifactsMatch[1]);
|
|
665
662
|
const baseDir = getAgentBaseDir(agentId);
|