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.
Files changed (225) hide show
  1. package/.github/workflows/ci.yml +36 -0
  2. package/CONVERSION_PLAN.md +191 -0
  3. package/README.md +67 -0
  4. package/dist/agents/dew.d.ts +15 -0
  5. package/dist/agents/dew.d.ts.map +1 -0
  6. package/dist/agents/dew.js +74 -0
  7. package/dist/agents/dew.js.map +1 -0
  8. package/dist/agents/fair.d.ts +15 -0
  9. package/dist/agents/fair.d.ts.map +1 -0
  10. package/dist/agents/fair.js +106 -0
  11. package/dist/agents/fair.js.map +1 -0
  12. package/dist/agents/fog.d.ts +15 -0
  13. package/dist/agents/fog.d.ts.map +1 -0
  14. package/dist/agents/fog.js +52 -0
  15. package/dist/agents/fog.js.map +1 -0
  16. package/dist/agents/frost.d.ts +15 -0
  17. package/dist/agents/frost.d.ts.map +1 -0
  18. package/dist/agents/frost.js +54 -0
  19. package/dist/agents/frost.js.map +1 -0
  20. package/dist/agents/rain.d.ts +15 -0
  21. package/dist/agents/rain.d.ts.map +1 -0
  22. package/dist/agents/rain.js +54 -0
  23. package/dist/agents/rain.js.map +1 -0
  24. package/dist/agents/snow.d.ts +27 -0
  25. package/dist/agents/snow.d.ts.map +1 -0
  26. package/dist/agents/snow.js +226 -0
  27. package/dist/agents/snow.js.map +1 -0
  28. package/dist/cli/main.d.ts +7 -0
  29. package/dist/cli/main.d.ts.map +1 -0
  30. package/dist/cli/main.js +402 -0
  31. package/dist/cli/main.js.map +1 -0
  32. package/dist/cli/mode.d.ts +17 -0
  33. package/dist/cli/mode.d.ts.map +1 -0
  34. package/dist/cli/mode.js +56 -0
  35. package/dist/cli/mode.js.map +1 -0
  36. package/dist/core/agent.d.ts +174 -0
  37. package/dist/core/agent.d.ts.map +1 -0
  38. package/dist/core/agent.js +1332 -0
  39. package/dist/core/agent.js.map +1 -0
  40. package/dist/core/agent_helpers.d.ts +51 -0
  41. package/dist/core/agent_helpers.d.ts.map +1 -0
  42. package/dist/core/agent_helpers.js +477 -0
  43. package/dist/core/agent_helpers.js.map +1 -0
  44. package/dist/core/bus.d.ts +99 -0
  45. package/dist/core/bus.d.ts.map +1 -0
  46. package/dist/core/bus.js +191 -0
  47. package/dist/core/bus.js.map +1 -0
  48. package/dist/core/cache.d.ts +63 -0
  49. package/dist/core/cache.d.ts.map +1 -0
  50. package/dist/core/cache.js +121 -0
  51. package/dist/core/cache.js.map +1 -0
  52. package/dist/core/checkpoint.d.ts +19 -0
  53. package/dist/core/checkpoint.d.ts.map +1 -0
  54. package/dist/core/checkpoint.js +120 -0
  55. package/dist/core/checkpoint.js.map +1 -0
  56. package/dist/core/circuit_breaker.d.ts +46 -0
  57. package/dist/core/circuit_breaker.d.ts.map +1 -0
  58. package/dist/core/circuit_breaker.js +99 -0
  59. package/dist/core/circuit_breaker.js.map +1 -0
  60. package/dist/core/config.d.ts +97 -0
  61. package/dist/core/config.d.ts.map +1 -0
  62. package/dist/core/config.js +281 -0
  63. package/dist/core/config.js.map +1 -0
  64. package/dist/core/constants.d.ts +78 -0
  65. package/dist/core/constants.d.ts.map +1 -0
  66. package/dist/core/constants.js +84 -0
  67. package/dist/core/constants.js.map +1 -0
  68. package/dist/core/factory.d.ts +63 -0
  69. package/dist/core/factory.d.ts.map +1 -0
  70. package/dist/core/factory.js +537 -0
  71. package/dist/core/factory.js.map +1 -0
  72. package/dist/core/icons.d.ts +28 -0
  73. package/dist/core/icons.d.ts.map +1 -0
  74. package/dist/core/icons.js +86 -0
  75. package/dist/core/icons.js.map +1 -0
  76. package/dist/core/index.d.ts +29 -0
  77. package/dist/core/index.d.ts.map +1 -0
  78. package/dist/core/index.js +54 -0
  79. package/dist/core/index.js.map +1 -0
  80. package/dist/core/llm.d.ts +121 -0
  81. package/dist/core/llm.d.ts.map +1 -0
  82. package/dist/core/llm.js +532 -0
  83. package/dist/core/llm.js.map +1 -0
  84. package/dist/core/logger.d.ts +57 -0
  85. package/dist/core/logger.d.ts.map +1 -0
  86. package/dist/core/logger.js +122 -0
  87. package/dist/core/logger.js.map +1 -0
  88. package/dist/core/mcp.d.ts +190 -0
  89. package/dist/core/mcp.d.ts.map +1 -0
  90. package/dist/core/mcp.js +822 -0
  91. package/dist/core/mcp.js.map +1 -0
  92. package/dist/core/mcp_server.d.ts +26 -0
  93. package/dist/core/mcp_server.d.ts.map +1 -0
  94. package/dist/core/mcp_server.js +211 -0
  95. package/dist/core/mcp_server.js.map +1 -0
  96. package/dist/core/memory.d.ts +190 -0
  97. package/dist/core/memory.d.ts.map +1 -0
  98. package/dist/core/memory.js +988 -0
  99. package/dist/core/memory.js.map +1 -0
  100. package/dist/core/middleware.d.ts +114 -0
  101. package/dist/core/middleware.d.ts.map +1 -0
  102. package/dist/core/middleware.js +248 -0
  103. package/dist/core/middleware.js.map +1 -0
  104. package/dist/core/pipelines.d.ts +87 -0
  105. package/dist/core/pipelines.d.ts.map +1 -0
  106. package/dist/core/pipelines.js +301 -0
  107. package/dist/core/pipelines.js.map +1 -0
  108. package/dist/core/profile.d.ts +23 -0
  109. package/dist/core/profile.d.ts.map +1 -0
  110. package/dist/core/profile.js +289 -0
  111. package/dist/core/profile.js.map +1 -0
  112. package/dist/core/router.d.ts +24 -0
  113. package/dist/core/router.d.ts.map +1 -0
  114. package/dist/core/router.js +111 -0
  115. package/dist/core/router.js.map +1 -0
  116. package/dist/core/schemas.d.ts +82 -0
  117. package/dist/core/schemas.d.ts.map +1 -0
  118. package/dist/core/schemas.js +200 -0
  119. package/dist/core/schemas.js.map +1 -0
  120. package/dist/core/semantic.d.ts +92 -0
  121. package/dist/core/semantic.d.ts.map +1 -0
  122. package/dist/core/semantic.js +175 -0
  123. package/dist/core/semantic.js.map +1 -0
  124. package/dist/core/skill.d.ts +68 -0
  125. package/dist/core/skill.d.ts.map +1 -0
  126. package/dist/core/skill.js +350 -0
  127. package/dist/core/skill.js.map +1 -0
  128. package/dist/core/tool.d.ts +99 -0
  129. package/dist/core/tool.d.ts.map +1 -0
  130. package/dist/core/tool.js +341 -0
  131. package/dist/core/tool.js.map +1 -0
  132. package/dist/core/tool_router.d.ts +29 -0
  133. package/dist/core/tool_router.d.ts.map +1 -0
  134. package/dist/core/tool_router.js +172 -0
  135. package/dist/core/tool_router.js.map +1 -0
  136. package/dist/core/workspace.d.ts +48 -0
  137. package/dist/core/workspace.d.ts.map +1 -0
  138. package/dist/core/workspace.js +179 -0
  139. package/dist/core/workspace.js.map +1 -0
  140. package/dist/plugins/loader.d.ts +17 -0
  141. package/dist/plugins/loader.d.ts.map +1 -0
  142. package/dist/plugins/loader.js +96 -0
  143. package/dist/plugins/loader.js.map +1 -0
  144. package/dist/skills/loader.d.ts +9 -0
  145. package/dist/skills/loader.d.ts.map +1 -0
  146. package/dist/skills/loader.js +78 -0
  147. package/dist/skills/loader.js.map +1 -0
  148. package/dist/tools/builtin.d.ts +10 -0
  149. package/dist/tools/builtin.d.ts.map +1 -0
  150. package/dist/tools/builtin.js +414 -0
  151. package/dist/tools/builtin.js.map +1 -0
  152. package/dist/tools/computer.d.ts +12 -0
  153. package/dist/tools/computer.d.ts.map +1 -0
  154. package/dist/tools/computer.js +326 -0
  155. package/dist/tools/computer.js.map +1 -0
  156. package/dist/tools/delegate.d.ts +10 -0
  157. package/dist/tools/delegate.d.ts.map +1 -0
  158. package/dist/tools/delegate.js +45 -0
  159. package/dist/tools/delegate.js.map +1 -0
  160. package/dist/web/server.d.ts +5 -0
  161. package/dist/web/server.d.ts.map +1 -0
  162. package/dist/web/server.js +647 -0
  163. package/dist/web/server.js.map +1 -0
  164. package/dist/web/tts.d.ts +33 -0
  165. package/dist/web/tts.d.ts.map +1 -0
  166. package/dist/web/tts.js +69 -0
  167. package/dist/web/tts.js.map +1 -0
  168. package/package.json +60 -0
  169. package/scripts/install.js +48 -0
  170. package/scripts/link.js +10 -0
  171. package/setup.bat +79 -0
  172. package/skill-test-ty2fOA/test.md +10 -0
  173. package/src/agents/dew.ts +70 -0
  174. package/src/agents/fair.ts +102 -0
  175. package/src/agents/fog.ts +48 -0
  176. package/src/agents/frost.ts +50 -0
  177. package/src/agents/rain.ts +50 -0
  178. package/src/agents/snow.ts +239 -0
  179. package/src/cli/main.ts +405 -0
  180. package/src/cli/mode.ts +58 -0
  181. package/src/core/agent.ts +1506 -0
  182. package/src/core/agent_helpers.ts +461 -0
  183. package/src/core/bus.ts +221 -0
  184. package/src/core/cache.ts +153 -0
  185. package/src/core/checkpoint.ts +94 -0
  186. package/src/core/circuit_breaker.ts +119 -0
  187. package/src/core/config.ts +341 -0
  188. package/src/core/constants.ts +95 -0
  189. package/src/core/factory.ts +627 -0
  190. package/src/core/icons.ts +53 -0
  191. package/src/core/index.ts +31 -0
  192. package/src/core/llm.ts +724 -0
  193. package/src/core/logger.ts +144 -0
  194. package/src/core/mcp.ts +953 -0
  195. package/src/core/mcp_server.ts +176 -0
  196. package/src/core/memory.ts +1169 -0
  197. package/src/core/middleware.ts +350 -0
  198. package/src/core/pipelines.ts +424 -0
  199. package/src/core/profile.ts +255 -0
  200. package/src/core/router.ts +124 -0
  201. package/src/core/schemas.ts +282 -0
  202. package/src/core/semantic.ts +211 -0
  203. package/src/core/skill.ts +342 -0
  204. package/src/core/tool.ts +427 -0
  205. package/src/core/tool_router.ts +193 -0
  206. package/src/core/workspace.ts +150 -0
  207. package/src/plugins/loader.ts +66 -0
  208. package/src/skills/loader.ts +46 -0
  209. package/src/sql.js.d.ts +29 -0
  210. package/src/tools/builtin.ts +382 -0
  211. package/src/tools/computer.ts +269 -0
  212. package/src/tools/delegate.ts +49 -0
  213. package/src/web/server.ts +634 -0
  214. package/src/web/tts.ts +93 -0
  215. package/tests/bus.test.ts +121 -0
  216. package/tests/icons.test.ts +45 -0
  217. package/tests/router.test.ts +86 -0
  218. package/tests/schemas.test.ts +51 -0
  219. package/tests/semantic.test.ts +83 -0
  220. package/tests/setup.ts +10 -0
  221. package/tests/skill.test.ts +172 -0
  222. package/tests/tool.test.ts +108 -0
  223. package/tests/tool_router.test.ts +71 -0
  224. package/tsconfig.json +37 -0
  225. 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,5 @@
1
+ /**
2
+ * Web server for Skyloom — HTTP API + 水墨气象台 chat UI.
3
+ */
4
+ export declare function startWebServer(port?: number): Promise<void>;
5
+ //# sourceMappingURL=server.d.ts.map
@@ -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"}