skyloom 1.4.0
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/.github/workflows/ci.yml +36 -0
- package/CONVERSION_PLAN.md +191 -0
- package/README.md +67 -0
- package/dist/agents/dew.d.ts +15 -0
- package/dist/agents/dew.d.ts.map +1 -0
- package/dist/agents/dew.js +74 -0
- package/dist/agents/dew.js.map +1 -0
- package/dist/agents/fair.d.ts +15 -0
- package/dist/agents/fair.d.ts.map +1 -0
- package/dist/agents/fair.js +106 -0
- package/dist/agents/fair.js.map +1 -0
- package/dist/agents/fog.d.ts +15 -0
- package/dist/agents/fog.d.ts.map +1 -0
- package/dist/agents/fog.js +52 -0
- package/dist/agents/fog.js.map +1 -0
- package/dist/agents/frost.d.ts +15 -0
- package/dist/agents/frost.d.ts.map +1 -0
- package/dist/agents/frost.js +54 -0
- package/dist/agents/frost.js.map +1 -0
- package/dist/agents/rain.d.ts +15 -0
- package/dist/agents/rain.d.ts.map +1 -0
- package/dist/agents/rain.js +54 -0
- package/dist/agents/rain.js.map +1 -0
- package/dist/agents/snow.d.ts +27 -0
- package/dist/agents/snow.d.ts.map +1 -0
- package/dist/agents/snow.js +226 -0
- package/dist/agents/snow.js.map +1 -0
- package/dist/cli/main.d.ts +7 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +402 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/mode.d.ts +17 -0
- package/dist/cli/mode.d.ts.map +1 -0
- package/dist/cli/mode.js +56 -0
- package/dist/cli/mode.js.map +1 -0
- package/dist/core/agent.d.ts +174 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +1332 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/agent_helpers.d.ts +51 -0
- package/dist/core/agent_helpers.d.ts.map +1 -0
- package/dist/core/agent_helpers.js +477 -0
- package/dist/core/agent_helpers.js.map +1 -0
- package/dist/core/bus.d.ts +99 -0
- package/dist/core/bus.d.ts.map +1 -0
- package/dist/core/bus.js +191 -0
- package/dist/core/bus.js.map +1 -0
- package/dist/core/cache.d.ts +63 -0
- package/dist/core/cache.d.ts.map +1 -0
- package/dist/core/cache.js +121 -0
- package/dist/core/cache.js.map +1 -0
- package/dist/core/checkpoint.d.ts +19 -0
- package/dist/core/checkpoint.d.ts.map +1 -0
- package/dist/core/checkpoint.js +120 -0
- package/dist/core/checkpoint.js.map +1 -0
- package/dist/core/circuit_breaker.d.ts +46 -0
- package/dist/core/circuit_breaker.d.ts.map +1 -0
- package/dist/core/circuit_breaker.js +99 -0
- package/dist/core/circuit_breaker.js.map +1 -0
- package/dist/core/config.d.ts +97 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +281 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/constants.d.ts +78 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +84 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/factory.d.ts +63 -0
- package/dist/core/factory.d.ts.map +1 -0
- package/dist/core/factory.js +537 -0
- package/dist/core/factory.js.map +1 -0
- package/dist/core/icons.d.ts +28 -0
- package/dist/core/icons.d.ts.map +1 -0
- package/dist/core/icons.js +86 -0
- package/dist/core/icons.js.map +1 -0
- package/dist/core/index.d.ts +29 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +54 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/llm.d.ts +121 -0
- package/dist/core/llm.d.ts.map +1 -0
- package/dist/core/llm.js +532 -0
- package/dist/core/llm.js.map +1 -0
- package/dist/core/logger.d.ts +57 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +122 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/mcp.d.ts +190 -0
- package/dist/core/mcp.d.ts.map +1 -0
- package/dist/core/mcp.js +822 -0
- package/dist/core/mcp.js.map +1 -0
- package/dist/core/mcp_server.d.ts +26 -0
- package/dist/core/mcp_server.d.ts.map +1 -0
- package/dist/core/mcp_server.js +211 -0
- package/dist/core/mcp_server.js.map +1 -0
- package/dist/core/memory.d.ts +190 -0
- package/dist/core/memory.d.ts.map +1 -0
- package/dist/core/memory.js +988 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/middleware.d.ts +114 -0
- package/dist/core/middleware.d.ts.map +1 -0
- package/dist/core/middleware.js +248 -0
- package/dist/core/middleware.js.map +1 -0
- package/dist/core/pipelines.d.ts +87 -0
- package/dist/core/pipelines.d.ts.map +1 -0
- package/dist/core/pipelines.js +301 -0
- package/dist/core/pipelines.js.map +1 -0
- package/dist/core/profile.d.ts +23 -0
- package/dist/core/profile.d.ts.map +1 -0
- package/dist/core/profile.js +289 -0
- package/dist/core/profile.js.map +1 -0
- package/dist/core/router.d.ts +24 -0
- package/dist/core/router.d.ts.map +1 -0
- package/dist/core/router.js +111 -0
- package/dist/core/router.js.map +1 -0
- package/dist/core/schemas.d.ts +82 -0
- package/dist/core/schemas.d.ts.map +1 -0
- package/dist/core/schemas.js +200 -0
- package/dist/core/schemas.js.map +1 -0
- package/dist/core/semantic.d.ts +92 -0
- package/dist/core/semantic.d.ts.map +1 -0
- package/dist/core/semantic.js +175 -0
- package/dist/core/semantic.js.map +1 -0
- package/dist/core/skill.d.ts +68 -0
- package/dist/core/skill.d.ts.map +1 -0
- package/dist/core/skill.js +350 -0
- package/dist/core/skill.js.map +1 -0
- package/dist/core/tool.d.ts +99 -0
- package/dist/core/tool.d.ts.map +1 -0
- package/dist/core/tool.js +341 -0
- package/dist/core/tool.js.map +1 -0
- package/dist/core/tool_router.d.ts +29 -0
- package/dist/core/tool_router.d.ts.map +1 -0
- package/dist/core/tool_router.js +172 -0
- package/dist/core/tool_router.js.map +1 -0
- package/dist/core/workspace.d.ts +48 -0
- package/dist/core/workspace.d.ts.map +1 -0
- package/dist/core/workspace.js +179 -0
- package/dist/core/workspace.js.map +1 -0
- package/dist/plugins/loader.d.ts +17 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +96 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/skills/loader.d.ts +9 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +78 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/tools/builtin.d.ts +10 -0
- package/dist/tools/builtin.d.ts.map +1 -0
- package/dist/tools/builtin.js +414 -0
- package/dist/tools/builtin.js.map +1 -0
- package/dist/tools/computer.d.ts +12 -0
- package/dist/tools/computer.d.ts.map +1 -0
- package/dist/tools/computer.js +326 -0
- package/dist/tools/computer.js.map +1 -0
- package/dist/tools/delegate.d.ts +10 -0
- package/dist/tools/delegate.d.ts.map +1 -0
- package/dist/tools/delegate.js +45 -0
- package/dist/tools/delegate.js.map +1 -0
- package/dist/web/server.d.ts +5 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +647 -0
- package/dist/web/server.js.map +1 -0
- package/dist/web/tts.d.ts +33 -0
- package/dist/web/tts.d.ts.map +1 -0
- package/dist/web/tts.js +69 -0
- package/dist/web/tts.js.map +1 -0
- package/package.json +60 -0
- package/scripts/install.js +48 -0
- package/scripts/link.js +10 -0
- package/setup.bat +79 -0
- package/skill-test-ty2fOA/test.md +10 -0
- package/src/agents/dew.ts +70 -0
- package/src/agents/fair.ts +102 -0
- package/src/agents/fog.ts +48 -0
- package/src/agents/frost.ts +50 -0
- package/src/agents/rain.ts +50 -0
- package/src/agents/snow.ts +239 -0
- package/src/cli/main.ts +405 -0
- package/src/cli/mode.ts +58 -0
- package/src/core/agent.ts +1506 -0
- package/src/core/agent_helpers.ts +461 -0
- package/src/core/bus.ts +221 -0
- package/src/core/cache.ts +153 -0
- package/src/core/checkpoint.ts +94 -0
- package/src/core/circuit_breaker.ts +119 -0
- package/src/core/config.ts +341 -0
- package/src/core/constants.ts +95 -0
- package/src/core/factory.ts +627 -0
- package/src/core/icons.ts +53 -0
- package/src/core/index.ts +31 -0
- package/src/core/llm.ts +724 -0
- package/src/core/logger.ts +144 -0
- package/src/core/mcp.ts +953 -0
- package/src/core/mcp_server.ts +176 -0
- package/src/core/memory.ts +1169 -0
- package/src/core/middleware.ts +350 -0
- package/src/core/pipelines.ts +424 -0
- package/src/core/profile.ts +255 -0
- package/src/core/router.ts +124 -0
- package/src/core/schemas.ts +282 -0
- package/src/core/semantic.ts +211 -0
- package/src/core/skill.ts +342 -0
- package/src/core/tool.ts +427 -0
- package/src/core/tool_router.ts +193 -0
- package/src/core/workspace.ts +150 -0
- package/src/plugins/loader.ts +66 -0
- package/src/skills/loader.ts +46 -0
- package/src/sql.js.d.ts +29 -0
- package/src/tools/builtin.ts +382 -0
- package/src/tools/computer.ts +269 -0
- package/src/tools/delegate.ts +49 -0
- package/src/web/server.ts +634 -0
- package/src/web/tts.ts +93 -0
- package/tests/bus.test.ts +121 -0
- package/tests/icons.test.ts +45 -0
- package/tests/router.test.ts +86 -0
- package/tests/schemas.test.ts +51 -0
- package/tests/semantic.test.ts +83 -0
- package/tests/setup.ts +10 -0
- package/tests/skill.test.ts +172 -0
- package/tests/tool.test.ts +108 -0
- package/tests/tool_router.test.ts +71 -0
- package/tsconfig.json +37 -0
- package/vitest.config.ts +17 -0
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Computer-operation tools — cross-platform OS control for Skyloom.
|
|
4
|
+
*
|
|
5
|
+
* Launch apps, open files/URLs, inspect and diagnose the system, manage
|
|
6
|
+
* processes and services, and install/uninstall software.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.registerComputerTools = registerComputerTools;
|
|
43
|
+
const child_process_1 = require("child_process");
|
|
44
|
+
const os = __importStar(require("os"));
|
|
45
|
+
const fs = __importStar(require("fs"));
|
|
46
|
+
const path = __importStar(require("path"));
|
|
47
|
+
const MAX_OUT = 8000;
|
|
48
|
+
function truncate(text, limit = MAX_OUT) {
|
|
49
|
+
if (text.length <= limit)
|
|
50
|
+
return text;
|
|
51
|
+
return text.slice(0, limit) + `\n…(truncated, ${text.length - limit} more chars)`;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Register computer-operation tools into the given registry.
|
|
55
|
+
*/
|
|
56
|
+
function registerComputerTools(registry) {
|
|
57
|
+
const platform = os.platform();
|
|
58
|
+
// ── Launch App ──
|
|
59
|
+
registry.register({
|
|
60
|
+
name: 'launch_app',
|
|
61
|
+
description: 'Launch a desktop application by name or path.',
|
|
62
|
+
parameters: [
|
|
63
|
+
{ name: 'name', type: 'string', description: 'Application name or path', required: true },
|
|
64
|
+
],
|
|
65
|
+
handler: async (params) => {
|
|
66
|
+
const name = String(params.name || '').trim();
|
|
67
|
+
if (!name)
|
|
68
|
+
return 'Error: app name is required';
|
|
69
|
+
try {
|
|
70
|
+
if (platform === 'win32') {
|
|
71
|
+
(0, child_process_1.execSync)(`start "" "${name}"`, { timeout: 10000 });
|
|
72
|
+
return `Launched ${name}`;
|
|
73
|
+
}
|
|
74
|
+
else if (platform === 'darwin') {
|
|
75
|
+
(0, child_process_1.execSync)(`open -a "${name.replace(/"/g, '\\"')}"`, { timeout: 10000 });
|
|
76
|
+
return `Launched ${name}`;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
// Linux - try xdg-open or direct exec
|
|
80
|
+
try {
|
|
81
|
+
(0, child_process_1.execSync)(`${name} &`, { timeout: 5000, shell: true });
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
(0, child_process_1.execSync)(`xdg-open "${name}" 2>/dev/null || ${name}`, { timeout: 5000, shell: true });
|
|
85
|
+
}
|
|
86
|
+
return `Launched ${name}`;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (e) {
|
|
90
|
+
return `Error launching ${name}: ${e.message || e}`;
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
// ── Open Path ──
|
|
95
|
+
registry.register({
|
|
96
|
+
name: 'open_path',
|
|
97
|
+
description: 'Open a file or folder in the default application.',
|
|
98
|
+
parameters: [
|
|
99
|
+
{ name: 'target', type: 'string', description: 'File or folder path', required: true },
|
|
100
|
+
],
|
|
101
|
+
handler: async (params) => {
|
|
102
|
+
const target = String(params.target || '').trim();
|
|
103
|
+
if (!target)
|
|
104
|
+
return 'Error: target is required';
|
|
105
|
+
const resolved = path.resolve(target);
|
|
106
|
+
if (!fs.existsSync(resolved))
|
|
107
|
+
return `Error: path not found: ${resolved}`;
|
|
108
|
+
try {
|
|
109
|
+
if (platform === 'win32') {
|
|
110
|
+
(0, child_process_1.execSync)(`explorer "${resolved}"`, { timeout: 5000 });
|
|
111
|
+
}
|
|
112
|
+
else if (platform === 'darwin') {
|
|
113
|
+
(0, child_process_1.execSync)(`open "${resolved}"`, { timeout: 5000 });
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
(0, child_process_1.execSync)(`xdg-open "${resolved}"`, { timeout: 5000 });
|
|
117
|
+
}
|
|
118
|
+
return `Opened ${resolved}`;
|
|
119
|
+
}
|
|
120
|
+
catch (e) {
|
|
121
|
+
return `Error opening ${resolved}: ${e.message || e}`;
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
// ── Browser Open ──
|
|
126
|
+
registry.register({
|
|
127
|
+
name: 'browser_open',
|
|
128
|
+
description: 'Open a URL in the default web browser.',
|
|
129
|
+
parameters: [
|
|
130
|
+
{ name: 'url', type: 'string', description: 'URL to open', required: true },
|
|
131
|
+
],
|
|
132
|
+
handler: async (params) => {
|
|
133
|
+
const url = String(params.url || '').trim();
|
|
134
|
+
if (!url)
|
|
135
|
+
return 'Error: url is required';
|
|
136
|
+
try {
|
|
137
|
+
if (platform === 'win32') {
|
|
138
|
+
(0, child_process_1.execSync)(`start "" "${url}"`, { timeout: 10000 });
|
|
139
|
+
}
|
|
140
|
+
else if (platform === 'darwin') {
|
|
141
|
+
(0, child_process_1.execSync)(`open "${url}"`, { timeout: 10000 });
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
(0, child_process_1.execSync)(`xdg-open "${url}"`, { timeout: 10000 });
|
|
145
|
+
}
|
|
146
|
+
return `Opened ${url} in browser`;
|
|
147
|
+
}
|
|
148
|
+
catch (e) {
|
|
149
|
+
return `Error opening browser: ${e.message || e}`;
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
});
|
|
153
|
+
// ── System Info ──
|
|
154
|
+
registry.register({
|
|
155
|
+
name: 'system_info',
|
|
156
|
+
description: 'Get system information (OS, CPU, memory, disk).',
|
|
157
|
+
parameters: [],
|
|
158
|
+
handler: async () => {
|
|
159
|
+
const lines = [
|
|
160
|
+
`OS: ${os.type()} ${os.release()}`,
|
|
161
|
+
`Hostname: ${os.hostname()}`,
|
|
162
|
+
`Platform: ${os.platform()} ${os.arch()}`,
|
|
163
|
+
`CPUs: ${os.cpus().length} × ${os.cpus()[0]?.model || 'unknown'}`,
|
|
164
|
+
`Memory: ${(os.totalmem() / 1024 / 1024 / 1024).toFixed(1)} GB total, ${(os.freemem() / 1024 / 1024 / 1024).toFixed(1)} GB free`,
|
|
165
|
+
`Uptime: ${(os.uptime() / 3600).toFixed(1)} hours`,
|
|
166
|
+
`Loadavg: ${os.loadavg().map(n => n.toFixed(2)).join(', ')}`,
|
|
167
|
+
`User: ${os.userInfo().username}`,
|
|
168
|
+
`Home: ${os.homedir()}`,
|
|
169
|
+
`Temp: ${os.tmpdir()}`,
|
|
170
|
+
];
|
|
171
|
+
return lines.join('\n');
|
|
172
|
+
},
|
|
173
|
+
});
|
|
174
|
+
// ── List Processes ──
|
|
175
|
+
registry.register({
|
|
176
|
+
name: 'list_processes',
|
|
177
|
+
description: 'List running processes.',
|
|
178
|
+
parameters: [],
|
|
179
|
+
handler: async () => {
|
|
180
|
+
try {
|
|
181
|
+
if (platform === 'win32') {
|
|
182
|
+
const out = (0, child_process_1.execSync)('tasklist /FO CSV /NH', { encoding: 'utf-8', timeout: 10000 });
|
|
183
|
+
return truncate(out, MAX_OUT);
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
const out = (0, child_process_1.execSync)('ps aux --no-headers 2>/dev/null || ps aux', { encoding: 'utf-8', timeout: 10000 });
|
|
187
|
+
return truncate(out, MAX_OUT);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
catch (e) {
|
|
191
|
+
return `Error listing processes: ${e.message || e}`;
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
});
|
|
195
|
+
// ── Kill Process ──
|
|
196
|
+
registry.register({
|
|
197
|
+
name: 'kill_process',
|
|
198
|
+
description: 'Kill a process by PID or name.',
|
|
199
|
+
parameters: [
|
|
200
|
+
{ name: 'target', type: 'string', description: 'PID number or process name', required: true },
|
|
201
|
+
],
|
|
202
|
+
handler: async (params) => {
|
|
203
|
+
const target = String(params.target || '').trim();
|
|
204
|
+
if (!target)
|
|
205
|
+
return 'Error: target is required';
|
|
206
|
+
try {
|
|
207
|
+
if (/^\d+$/.test(target)) {
|
|
208
|
+
process.kill(parseInt(target), 'SIGTERM');
|
|
209
|
+
return `Killed process ${target}`;
|
|
210
|
+
}
|
|
211
|
+
else {
|
|
212
|
+
if (platform === 'win32') {
|
|
213
|
+
(0, child_process_1.execSync)(`taskkill /F /IM "${target}" /T`, { timeout: 10000 });
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
(0, child_process_1.execSync)(`pkill -f "${target}"`, { timeout: 10000 });
|
|
217
|
+
}
|
|
218
|
+
return `Killed process ${target}`;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
catch (e) {
|
|
222
|
+
return `Error killing ${target}: ${e.message || e}`;
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
dangerous: true,
|
|
226
|
+
});
|
|
227
|
+
// ── Package Manager ──
|
|
228
|
+
registry.register({
|
|
229
|
+
name: 'package_manager',
|
|
230
|
+
description: 'Install, uninstall, or upgrade software packages.',
|
|
231
|
+
parameters: [
|
|
232
|
+
{ name: 'action', type: 'string', description: 'Action: install, uninstall, upgrade, search', required: true },
|
|
233
|
+
{ name: 'name', type: 'string', description: 'Package name', required: true },
|
|
234
|
+
],
|
|
235
|
+
handler: async (params) => {
|
|
236
|
+
const action = String(params.action || '').trim().toLowerCase();
|
|
237
|
+
const name = String(params.name || '').trim();
|
|
238
|
+
if (!action || !name)
|
|
239
|
+
return 'Error: action and name are required';
|
|
240
|
+
// Auto-detect package manager
|
|
241
|
+
let pm;
|
|
242
|
+
const has = (cmd) => {
|
|
243
|
+
try {
|
|
244
|
+
(0, child_process_1.execSync)(`${cmd} --version`, { stdio: 'ignore' });
|
|
245
|
+
return true;
|
|
246
|
+
}
|
|
247
|
+
catch {
|
|
248
|
+
return false;
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
if (platform === 'win32') {
|
|
252
|
+
if (has('winget'))
|
|
253
|
+
pm = 'winget';
|
|
254
|
+
else if (has('scoop'))
|
|
255
|
+
pm = 'scoop';
|
|
256
|
+
else if (has('choco'))
|
|
257
|
+
pm = 'choco';
|
|
258
|
+
else
|
|
259
|
+
return 'No package manager found (winget/scoop/choco)';
|
|
260
|
+
}
|
|
261
|
+
else if (platform === 'darwin') {
|
|
262
|
+
pm = has('brew') ? 'brew' : 'No package manager found';
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
if (has('apt'))
|
|
266
|
+
pm = 'apt';
|
|
267
|
+
else if (has('dnf'))
|
|
268
|
+
pm = 'dnf';
|
|
269
|
+
else if (has('pacman'))
|
|
270
|
+
pm = 'pacman';
|
|
271
|
+
else
|
|
272
|
+
return 'No package manager found (apt/dnf/pacman)';
|
|
273
|
+
}
|
|
274
|
+
const commands = {
|
|
275
|
+
winget: { install: 'install', uninstall: 'uninstall', upgrade: 'upgrade', search: 'search' },
|
|
276
|
+
scoop: { install: 'install', uninstall: 'uninstall', upgrade: 'update', search: 'search' },
|
|
277
|
+
choco: { install: 'install', uninstall: 'uninstall', upgrade: 'upgrade', search: 'search' },
|
|
278
|
+
brew: { install: 'install', uninstall: 'uninstall', upgrade: 'upgrade', search: 'search' },
|
|
279
|
+
apt: { install: 'install -y', uninstall: 'remove -y', upgrade: 'upgrade -y', search: 'search' },
|
|
280
|
+
dnf: { install: 'install -y', uninstall: 'remove -y', upgrade: 'upgrade -y', search: 'search' },
|
|
281
|
+
pacman: { install: '-S --noconfirm', uninstall: '-R --noconfirm', upgrade: '-Syu --noconfirm', search: '-Ss' },
|
|
282
|
+
};
|
|
283
|
+
const cmdMap = commands[pm];
|
|
284
|
+
if (!cmdMap || !cmdMap[action])
|
|
285
|
+
return `Unsupported action '${action}' for ${pm}`;
|
|
286
|
+
try {
|
|
287
|
+
const out = (0, child_process_1.execSync)(`${pm} ${cmdMap[action]} "${name}"`, { encoding: 'utf-8', timeout: 120000 });
|
|
288
|
+
return truncate(out, MAX_OUT);
|
|
289
|
+
}
|
|
290
|
+
catch (e) {
|
|
291
|
+
return `Error: ${e.message || e}`;
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
dangerous: true,
|
|
295
|
+
});
|
|
296
|
+
// ── Service Control ──
|
|
297
|
+
registry.register({
|
|
298
|
+
name: 'service_control',
|
|
299
|
+
description: 'Start, stop, restart, or check status of a system service.',
|
|
300
|
+
parameters: [
|
|
301
|
+
{ name: 'action', type: 'string', description: 'Action: start, stop, restart, status', required: true },
|
|
302
|
+
{ name: 'name', type: 'string', description: 'Service name', required: true },
|
|
303
|
+
],
|
|
304
|
+
handler: async (params) => {
|
|
305
|
+
const action = String(params.action || '').trim().toLowerCase();
|
|
306
|
+
const name = String(params.name || '').trim();
|
|
307
|
+
if (!action || !name)
|
|
308
|
+
return 'Error: action and name are required';
|
|
309
|
+
try {
|
|
310
|
+
if (platform === 'win32') {
|
|
311
|
+
const out = (0, child_process_1.execSync)(`sc ${action} "${name}"`, { encoding: 'utf-8', timeout: 30000 });
|
|
312
|
+
return truncate(out, MAX_OUT);
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
const out = (0, child_process_1.execSync)(`systemctl ${action} "${name}" 2>/dev/null || service "${name}" ${action}`, { encoding: 'utf-8', timeout: 30000 });
|
|
316
|
+
return truncate(out, MAX_OUT);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
catch (e) {
|
|
320
|
+
return `Error: ${e.message || e}`;
|
|
321
|
+
}
|
|
322
|
+
},
|
|
323
|
+
dangerous: true,
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
//# sourceMappingURL=computer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computer.js","sourceRoot":"","sources":["../../src/tools/computer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegate tool — allows agents to delegate tasks to other agents.
|
|
3
|
+
*/
|
|
4
|
+
import type { ToolDefinition } from '../core/tool';
|
|
5
|
+
import type { BaseAgent } from '../core/agent';
|
|
6
|
+
/**
|
|
7
|
+
* Create a delegate_to tool for an agent to delegate tasks to other agents.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createDelegateTool(agentMap: Map<string, BaseAgent>, callingAgent: BaseAgent): ToolDefinition;
|
|
10
|
+
//# sourceMappingURL=delegate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegate.d.ts","sourceRoot":"","sources":["../../src/tools/delegate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAChC,YAAY,EAAE,SAAS,GACtB,cAAc,CAmChB"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Delegate tool — allows agents to delegate tasks to other agents.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createDelegateTool = createDelegateTool;
|
|
7
|
+
/**
|
|
8
|
+
* Create a delegate_to tool for an agent to delegate tasks to other agents.
|
|
9
|
+
*/
|
|
10
|
+
function createDelegateTool(agentMap, callingAgent) {
|
|
11
|
+
return {
|
|
12
|
+
name: 'delegate_to',
|
|
13
|
+
description: 'Delegate a task to another agent. Use this when the task requires a different specialty or when context is overflowing.',
|
|
14
|
+
parameters: [
|
|
15
|
+
{
|
|
16
|
+
name: 'agent',
|
|
17
|
+
type: 'string',
|
|
18
|
+
description: 'Target agent name: fog (research), rain (code/writing), frost (review), dew (ops/deploy), snow (planning)',
|
|
19
|
+
required: true,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'task',
|
|
23
|
+
type: 'string',
|
|
24
|
+
description: 'Clear, self-contained task description for the target agent',
|
|
25
|
+
required: true,
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
handler: async (params) => {
|
|
29
|
+
const targetName = params.agent;
|
|
30
|
+
const taskDesc = params.task;
|
|
31
|
+
const targetAgent = agentMap.get(targetName);
|
|
32
|
+
if (!targetAgent) {
|
|
33
|
+
return `Error: Agent '${targetName}' not found. Available agents: ${[...agentMap.keys()].join(', ')}`;
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
const result = await callingAgent.requestHelp(targetName, taskDesc, 120);
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
return `Error delegating to ${targetName}: ${e}`;
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=delegate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegate.js","sourceRoot":"","sources":["../../src/tools/delegate.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAQH,gDAsCC;AAzCD;;GAEG;AACH,SAAgB,kBAAkB,CAChC,QAAgC,EAChC,YAAuB;IAEvB,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,yHAAyH;QACtI,UAAU,EAAE;YACV;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2GAA2G;gBACxH,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6DAA6D;gBAC1E,QAAQ,EAAE,IAAI;aACf;SACF;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YACxB,MAAM,UAAU,GAAG,MAAM,CAAC,KAAe,CAAC;YAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAc,CAAC;YAEvC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,iBAAiB,UAAU,kCAAkC,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACxG,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACzE,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,uBAAuB,UAAU,KAAK,CAAC,EAAE,CAAC;YACnD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/web/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqEH,wBAAsB,cAAc,CAAC,IAAI,GAAE,MAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBvE"}
|