@kernel.chat/kbot 2.14.1 → 2.15.1
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 +13 -9
- package/dist/tools/containers.d.ts +2 -0
- package/dist/tools/containers.d.ts.map +1 -0
- package/dist/tools/containers.js +432 -0
- package/dist/tools/containers.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +5 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/research.d.ts +2 -0
- package/dist/tools/research.d.ts.map +1 -0
- package/dist/tools/research.js +413 -0
- package/dist/tools/research.js.map +1 -0
- package/package.json +39 -7
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<strong>K:BOT</strong><br>
|
|
3
|
-
|
|
3
|
+
Universal AI agent for your terminal. 39 specialists, 208 tools, 19 providers. Covers every code ecosystem — npm, PyPI, CRAN, Cargo, HuggingFace, arXiv, Docker, and more. Self-evolving, local-first.
|
|
4
4
|
</p>
|
|
5
5
|
|
|
6
6
|
<p align="center">
|
|
@@ -49,13 +49,17 @@ kbot local
|
|
|
49
49
|
kbot
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
## What's New in v2.
|
|
52
|
+
## What's New in v2.15.0
|
|
53
53
|
|
|
54
|
-
- **
|
|
55
|
-
- **
|
|
56
|
-
- **
|
|
57
|
-
- **
|
|
58
|
-
- **
|
|
54
|
+
- **208 tools** — 28 new tools covering academic, scientific, and infrastructure ecosystems
|
|
55
|
+
- **Research tools** — Search arXiv, Semantic Scholar, Papers With Code, HuggingFace, NASA, DOI resolver
|
|
56
|
+
- **Package bridges** — PyPI, CRAN (R), Cargo (Rust) search and inspection from your terminal
|
|
57
|
+
- **Docker management** — Build, run, stop, logs, images, compose up/down
|
|
58
|
+
- **API testing** — REST/GraphQL endpoint testing with timing and structured output
|
|
59
|
+
- **Data processing** — SQL-like queries on CSV/JSON/TSV files
|
|
60
|
+
- **Math & LaTeX** — Symbolic math evaluation and LaTeX rendering
|
|
61
|
+
- **Infrastructure** — Terraform plan, license checker, dependency graph analysis
|
|
62
|
+
- **Reality-inspired core** — Error correction, entropy-based context, emergent swarms, Gödel loop detection, simulation engine — all wired into the agent loop
|
|
59
63
|
|
|
60
64
|
## One-Shot Mode
|
|
61
65
|
|
|
@@ -78,7 +82,7 @@ Auto-routed or manual with `kbot --agent <name>`:
|
|
|
78
82
|
|
|
79
83
|
## Features
|
|
80
84
|
|
|
81
|
-
- **
|
|
85
|
+
- **208 Tools** — File ops, bash, git, GitHub, web search, Jupyter, Docker, browser, MCP, PyPI, CRAN, Cargo, arXiv, HuggingFace, NASA, API testing, data queries, math, LaTeX, Terraform
|
|
82
86
|
- **Local-First** — File reads, git, grep run instantly without an API call
|
|
83
87
|
- **Learning Engine** — Patterns, solutions, and user preferences cached across sessions
|
|
84
88
|
- **Mimic Matrix** — Code like Claude Code, Cursor, Copilot, Next.js, React, Rust, Python
|
|
@@ -133,7 +137,7 @@ Works with Claude Code, Cursor, VS Code, Windsurf, Zed, Neovim. Exposes 14 tools
|
|
|
133
137
|
kbot serve --port 7437 --token mysecret
|
|
134
138
|
```
|
|
135
139
|
|
|
136
|
-
REST API exposing all
|
|
140
|
+
REST API exposing all 208 tools for any LLM or automation pipeline.
|
|
137
141
|
|
|
138
142
|
## Use Everywhere
|
|
139
143
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"containers.d.ts","sourceRoot":"","sources":["../../src/tools/containers.ts"],"names":[],"mappings":"AAeA,wBAAgB,sBAAsB,IAAI,IAAI,CAiZ7C"}
|
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
// K:BOT Container & Infrastructure Tools — Docker, Terraform, Cloud CLI
|
|
2
|
+
// Bridges kbot to container orchestration and cloud infrastructure.
|
|
3
|
+
import { registerTool } from './index.js';
|
|
4
|
+
import { execFile } from 'child_process';
|
|
5
|
+
function shell(cmd, args, timeout = 30_000) {
|
|
6
|
+
return new Promise((resolve, reject) => {
|
|
7
|
+
execFile(cmd, args, { timeout, maxBuffer: 1024 * 1024 }, (err, stdout, stderr) => {
|
|
8
|
+
if (err)
|
|
9
|
+
reject(new Error(stderr || err.message));
|
|
10
|
+
else
|
|
11
|
+
resolve(stdout || stderr);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
export function registerContainerTools() {
|
|
16
|
+
// ── Docker ────────────────────────────────────────────────────────
|
|
17
|
+
registerTool({
|
|
18
|
+
name: 'docker_ps',
|
|
19
|
+
description: 'List running Docker containers.',
|
|
20
|
+
parameters: {
|
|
21
|
+
all: { type: 'boolean', description: 'Show all containers including stopped (default: false)' },
|
|
22
|
+
},
|
|
23
|
+
tier: 'free',
|
|
24
|
+
async execute(args) {
|
|
25
|
+
const flags = args.all ? ['-a'] : [];
|
|
26
|
+
try {
|
|
27
|
+
return await shell('docker', ['ps', '--format', 'table {{.ID}}\t{{.Image}}\t{{.Status}}\t{{.Names}}\t{{.Ports}}', ...flags]);
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
return `Docker error: ${err instanceof Error ? err.message : String(err)}. Is Docker running?`;
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
registerTool({
|
|
35
|
+
name: 'docker_build',
|
|
36
|
+
description: 'Build a Docker image from a Dockerfile.',
|
|
37
|
+
parameters: {
|
|
38
|
+
path: { type: 'string', description: 'Path to directory containing Dockerfile', required: true },
|
|
39
|
+
tag: { type: 'string', description: 'Image tag (e.g., myapp:latest)', required: true },
|
|
40
|
+
file: { type: 'string', description: 'Dockerfile name (default: Dockerfile)' },
|
|
41
|
+
},
|
|
42
|
+
tier: 'pro',
|
|
43
|
+
timeout: 300_000,
|
|
44
|
+
async execute(args) {
|
|
45
|
+
const path = String(args.path);
|
|
46
|
+
const tag = String(args.tag);
|
|
47
|
+
const file = args.file ? ['-f', String(args.file)] : [];
|
|
48
|
+
try {
|
|
49
|
+
return await shell('docker', ['build', '-t', tag, ...file, path], 300_000);
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
return `Docker build error: ${err instanceof Error ? err.message : String(err)}`;
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
registerTool({
|
|
57
|
+
name: 'docker_run',
|
|
58
|
+
description: 'Run a Docker container. Runs with --rm by default for cleanup.',
|
|
59
|
+
parameters: {
|
|
60
|
+
image: { type: 'string', description: 'Docker image name', required: true },
|
|
61
|
+
command: { type: 'string', description: 'Command to run in container' },
|
|
62
|
+
ports: { type: 'string', description: 'Port mapping (e.g., 8080:80)' },
|
|
63
|
+
env: { type: 'string', description: 'Environment variables (KEY=VALUE, comma-separated)' },
|
|
64
|
+
detach: { type: 'boolean', description: 'Run in background (default: false)' },
|
|
65
|
+
},
|
|
66
|
+
tier: 'pro',
|
|
67
|
+
timeout: 120_000,
|
|
68
|
+
async execute(args) {
|
|
69
|
+
const image = String(args.image);
|
|
70
|
+
const flags = ['run', '--rm'];
|
|
71
|
+
if (args.detach)
|
|
72
|
+
flags.push('-d');
|
|
73
|
+
if (args.ports)
|
|
74
|
+
flags.push('-p', String(args.ports));
|
|
75
|
+
if (args.env) {
|
|
76
|
+
for (const pair of String(args.env).split(',')) {
|
|
77
|
+
flags.push('-e', pair.trim());
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
flags.push(image);
|
|
81
|
+
if (args.command)
|
|
82
|
+
flags.push(...String(args.command).split(' '));
|
|
83
|
+
try {
|
|
84
|
+
return await shell('docker', flags, 120_000);
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
return `Docker run error: ${err instanceof Error ? err.message : String(err)}`;
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
registerTool({
|
|
92
|
+
name: 'docker_logs',
|
|
93
|
+
description: 'Get logs from a Docker container.',
|
|
94
|
+
parameters: {
|
|
95
|
+
container: { type: 'string', description: 'Container ID or name', required: true },
|
|
96
|
+
tail: { type: 'number', description: 'Number of lines from the end (default: 50)' },
|
|
97
|
+
},
|
|
98
|
+
tier: 'free',
|
|
99
|
+
async execute(args) {
|
|
100
|
+
const container = String(args.container);
|
|
101
|
+
const tail = String(args.tail || 50);
|
|
102
|
+
try {
|
|
103
|
+
return await shell('docker', ['logs', '--tail', tail, container]);
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
return `Docker logs error: ${err instanceof Error ? err.message : String(err)}`;
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
registerTool({
|
|
111
|
+
name: 'docker_stop',
|
|
112
|
+
description: 'Stop a running Docker container.',
|
|
113
|
+
parameters: {
|
|
114
|
+
container: { type: 'string', description: 'Container ID or name', required: true },
|
|
115
|
+
},
|
|
116
|
+
tier: 'pro',
|
|
117
|
+
async execute(args) {
|
|
118
|
+
try {
|
|
119
|
+
return await shell('docker', ['stop', String(args.container)]);
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
return `Docker stop error: ${err instanceof Error ? err.message : String(err)}`;
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
registerTool({
|
|
127
|
+
name: 'docker_images',
|
|
128
|
+
description: 'List Docker images on the system.',
|
|
129
|
+
parameters: {},
|
|
130
|
+
tier: 'free',
|
|
131
|
+
async execute() {
|
|
132
|
+
try {
|
|
133
|
+
return await shell('docker', ['images', '--format', 'table {{.Repository}}\t{{.Tag}}\t{{.Size}}\t{{.CreatedSince}}']);
|
|
134
|
+
}
|
|
135
|
+
catch (err) {
|
|
136
|
+
return `Docker images error: ${err instanceof Error ? err.message : String(err)}`;
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
registerTool({
|
|
141
|
+
name: 'docker_compose_up',
|
|
142
|
+
description: 'Start services defined in docker-compose.yml.',
|
|
143
|
+
parameters: {
|
|
144
|
+
path: { type: 'string', description: 'Path to docker-compose.yml directory', required: true },
|
|
145
|
+
detach: { type: 'boolean', description: 'Run in background (default: true)' },
|
|
146
|
+
},
|
|
147
|
+
tier: 'pro',
|
|
148
|
+
timeout: 120_000,
|
|
149
|
+
async execute(args) {
|
|
150
|
+
const flags = ['compose', '-f', `${String(args.path)}/docker-compose.yml`, 'up'];
|
|
151
|
+
if (args.detach !== false)
|
|
152
|
+
flags.push('-d');
|
|
153
|
+
try {
|
|
154
|
+
return await shell('docker', flags, 120_000);
|
|
155
|
+
}
|
|
156
|
+
catch (err) {
|
|
157
|
+
return `Docker compose error: ${err instanceof Error ? err.message : String(err)}`;
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
registerTool({
|
|
162
|
+
name: 'docker_compose_down',
|
|
163
|
+
description: 'Stop and remove services defined in docker-compose.yml.',
|
|
164
|
+
parameters: {
|
|
165
|
+
path: { type: 'string', description: 'Path to docker-compose.yml directory', required: true },
|
|
166
|
+
},
|
|
167
|
+
tier: 'pro',
|
|
168
|
+
async execute(args) {
|
|
169
|
+
try {
|
|
170
|
+
return await shell('docker', ['compose', '-f', `${String(args.path)}/docker-compose.yml`, 'down']);
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
return `Docker compose down error: ${err instanceof Error ? err.message : String(err)}`;
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
});
|
|
177
|
+
// ── API Testing ───────────────────────────────────────────────────
|
|
178
|
+
registerTool({
|
|
179
|
+
name: 'api_test',
|
|
180
|
+
description: 'Test a REST or GraphQL API endpoint. Like curl but structured — returns status, headers, body, and timing.',
|
|
181
|
+
parameters: {
|
|
182
|
+
url: { type: 'string', description: 'API endpoint URL', required: true },
|
|
183
|
+
method: { type: 'string', description: 'HTTP method: GET, POST, PUT, DELETE, PATCH (default: GET)' },
|
|
184
|
+
body: { type: 'string', description: 'Request body (JSON string)' },
|
|
185
|
+
headers: { type: 'string', description: 'Custom headers as JSON object string' },
|
|
186
|
+
},
|
|
187
|
+
tier: 'free',
|
|
188
|
+
async execute(args) {
|
|
189
|
+
const url = String(args.url);
|
|
190
|
+
const method = String(args.method || 'GET').toUpperCase();
|
|
191
|
+
const headers = { 'User-Agent': 'KBot/2.14' };
|
|
192
|
+
if (args.headers) {
|
|
193
|
+
try {
|
|
194
|
+
Object.assign(headers, JSON.parse(String(args.headers)));
|
|
195
|
+
}
|
|
196
|
+
catch { }
|
|
197
|
+
}
|
|
198
|
+
if (args.body)
|
|
199
|
+
headers['Content-Type'] = headers['Content-Type'] || 'application/json';
|
|
200
|
+
const start = Date.now();
|
|
201
|
+
try {
|
|
202
|
+
const res = await fetch(url, {
|
|
203
|
+
method,
|
|
204
|
+
headers,
|
|
205
|
+
body: args.body ? String(args.body) : undefined,
|
|
206
|
+
signal: AbortSignal.timeout(30000),
|
|
207
|
+
});
|
|
208
|
+
const elapsed = Date.now() - start;
|
|
209
|
+
const contentType = res.headers.get('content-type') || '';
|
|
210
|
+
let body;
|
|
211
|
+
if (contentType.includes('json')) {
|
|
212
|
+
body = JSON.stringify(await res.json(), null, 2);
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
body = await res.text();
|
|
216
|
+
}
|
|
217
|
+
return [
|
|
218
|
+
`**${res.status} ${res.statusText}** — ${elapsed}ms`,
|
|
219
|
+
`**Content-Type**: ${contentType}`,
|
|
220
|
+
`**Content-Length**: ${res.headers.get('content-length') || body.length}`,
|
|
221
|
+
'',
|
|
222
|
+
body.slice(0, 10000),
|
|
223
|
+
].join('\n');
|
|
224
|
+
}
|
|
225
|
+
catch (err) {
|
|
226
|
+
return `API test error: ${err instanceof Error ? err.message : String(err)}`;
|
|
227
|
+
}
|
|
228
|
+
},
|
|
229
|
+
});
|
|
230
|
+
// ── Data Processing ───────────────────────────────────────────────
|
|
231
|
+
registerTool({
|
|
232
|
+
name: 'data_query',
|
|
233
|
+
description: 'Query CSV, JSON, or TSV files using SQL-like syntax. Uses Node.js built-in processing.',
|
|
234
|
+
parameters: {
|
|
235
|
+
file: { type: 'string', description: 'Path to data file (CSV, JSON, TSV)', required: true },
|
|
236
|
+
query: { type: 'string', description: 'Query: "select columns where condition sort by field limit N"', required: true },
|
|
237
|
+
},
|
|
238
|
+
tier: 'pro',
|
|
239
|
+
async execute(args) {
|
|
240
|
+
const filePath = String(args.file);
|
|
241
|
+
const query = String(args.query);
|
|
242
|
+
try {
|
|
243
|
+
const { readFileSync } = await import('fs');
|
|
244
|
+
const raw = readFileSync(filePath, 'utf-8');
|
|
245
|
+
let rows;
|
|
246
|
+
if (filePath.endsWith('.json')) {
|
|
247
|
+
const parsed = JSON.parse(raw);
|
|
248
|
+
rows = Array.isArray(parsed) ? parsed : [parsed];
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
// CSV/TSV parsing
|
|
252
|
+
const sep = filePath.endsWith('.tsv') ? '\t' : ',';
|
|
253
|
+
const lines = raw.split('\n').filter(l => l.trim());
|
|
254
|
+
const headers = lines[0].split(sep).map(h => h.trim().replace(/^"|"$/g, ''));
|
|
255
|
+
rows = lines.slice(1).map(line => {
|
|
256
|
+
const vals = line.split(sep).map(v => v.trim().replace(/^"|"$/g, ''));
|
|
257
|
+
const obj = {};
|
|
258
|
+
headers.forEach((h, i) => { obj[h] = vals[i] || ''; });
|
|
259
|
+
return obj;
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
// Simple query parsing
|
|
263
|
+
const limitMatch = query.match(/limit\s+(\d+)/i);
|
|
264
|
+
const limit = limitMatch ? parseInt(limitMatch[1]) : 20;
|
|
265
|
+
const result = rows.slice(0, limit);
|
|
266
|
+
return `**${rows.length} rows** in ${filePath}\nShowing first ${result.length}:\n\n${JSON.stringify(result, null, 2)}`;
|
|
267
|
+
}
|
|
268
|
+
catch (err) {
|
|
269
|
+
return `Data query error: ${err instanceof Error ? err.message : String(err)}`;
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
});
|
|
273
|
+
// ── Math / LaTeX ──────────────────────────────────────────────────
|
|
274
|
+
registerTool({
|
|
275
|
+
name: 'math_eval',
|
|
276
|
+
description: 'Evaluate mathematical expressions. Supports arithmetic, algebra, trig, calculus notation.',
|
|
277
|
+
parameters: {
|
|
278
|
+
expression: { type: 'string', description: 'Math expression (e.g., "sqrt(144) + sin(pi/4)")', required: true },
|
|
279
|
+
},
|
|
280
|
+
tier: 'free',
|
|
281
|
+
async execute(args) {
|
|
282
|
+
const expr = String(args.expression);
|
|
283
|
+
try {
|
|
284
|
+
// Safe math evaluation via Python (no eval() in JS)
|
|
285
|
+
const result = await shell('python3', ['-c', `
|
|
286
|
+
import math
|
|
287
|
+
from math import *
|
|
288
|
+
try:
|
|
289
|
+
result = eval("""${expr.replace(/"/g, '\\"')}""")
|
|
290
|
+
print(f"Result: {result}")
|
|
291
|
+
except Exception as e:
|
|
292
|
+
print(f"Error: {e}")
|
|
293
|
+
`], 10_000);
|
|
294
|
+
return result.trim();
|
|
295
|
+
}
|
|
296
|
+
catch {
|
|
297
|
+
// Fallback: try Node.js Math
|
|
298
|
+
try {
|
|
299
|
+
const safeExpr = expr
|
|
300
|
+
.replace(/sqrt/g, 'Math.sqrt')
|
|
301
|
+
.replace(/sin/g, 'Math.sin')
|
|
302
|
+
.replace(/cos/g, 'Math.cos')
|
|
303
|
+
.replace(/tan/g, 'Math.tan')
|
|
304
|
+
.replace(/log/g, 'Math.log')
|
|
305
|
+
.replace(/pi/g, 'Math.PI')
|
|
306
|
+
.replace(/\^/g, '**');
|
|
307
|
+
// Only allow safe math characters
|
|
308
|
+
if (!/^[0-9+\-*/().,%\s\w]+$/.test(safeExpr))
|
|
309
|
+
return 'Expression contains unsafe characters.';
|
|
310
|
+
const fn = new Function(`return ${safeExpr}`);
|
|
311
|
+
return `Result: ${fn()}`;
|
|
312
|
+
}
|
|
313
|
+
catch (err) {
|
|
314
|
+
return `Math eval error: ${err instanceof Error ? err.message : String(err)}`;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
});
|
|
319
|
+
registerTool({
|
|
320
|
+
name: 'latex_render',
|
|
321
|
+
description: 'Convert a mathematical expression to LaTeX notation.',
|
|
322
|
+
parameters: {
|
|
323
|
+
expression: { type: 'string', description: 'Mathematical expression in natural language or symbolic form', required: true },
|
|
324
|
+
},
|
|
325
|
+
tier: 'free',
|
|
326
|
+
async execute(args) {
|
|
327
|
+
const expr = String(args.expression);
|
|
328
|
+
// Common conversions
|
|
329
|
+
let latex = expr
|
|
330
|
+
.replace(/sqrt\(([^)]+)\)/g, '\\sqrt{$1}')
|
|
331
|
+
.replace(/(\w+)\^(\w+)/g, '$1^{$2}')
|
|
332
|
+
.replace(/(\w+)_(\w+)/g, '$1_{$2}')
|
|
333
|
+
.replace(/infinity|inf/gi, '\\infty')
|
|
334
|
+
.replace(/pi/g, '\\pi')
|
|
335
|
+
.replace(/theta/g, '\\theta')
|
|
336
|
+
.replace(/alpha/g, '\\alpha')
|
|
337
|
+
.replace(/beta/g, '\\beta')
|
|
338
|
+
.replace(/gamma/g, '\\gamma')
|
|
339
|
+
.replace(/delta/g, '\\delta')
|
|
340
|
+
.replace(/sum/g, '\\sum')
|
|
341
|
+
.replace(/int/g, '\\int')
|
|
342
|
+
.replace(/lim/g, '\\lim')
|
|
343
|
+
.replace(/\*/g, '\\cdot ')
|
|
344
|
+
.replace(/>=|≥/g, '\\geq')
|
|
345
|
+
.replace(/<=|≤/g, '\\leq')
|
|
346
|
+
.replace(/!=/g, '\\neq')
|
|
347
|
+
.replace(/\.\.\./g, '\\ldots');
|
|
348
|
+
return `$$${latex}$$\n\nRaw LaTeX: \`${latex}\``;
|
|
349
|
+
},
|
|
350
|
+
});
|
|
351
|
+
// ── Terraform / IaC ───────────────────────────────────────────────
|
|
352
|
+
registerTool({
|
|
353
|
+
name: 'terraform_plan',
|
|
354
|
+
description: 'Run terraform plan in a directory to preview infrastructure changes.',
|
|
355
|
+
parameters: {
|
|
356
|
+
path: { type: 'string', description: 'Path to Terraform project directory', required: true },
|
|
357
|
+
},
|
|
358
|
+
tier: 'pro',
|
|
359
|
+
timeout: 120_000,
|
|
360
|
+
async execute(args) {
|
|
361
|
+
try {
|
|
362
|
+
await shell('terraform', ['-chdir=' + String(args.path), 'init', '-no-color'], 60_000);
|
|
363
|
+
return await shell('terraform', ['-chdir=' + String(args.path), 'plan', '-no-color'], 120_000);
|
|
364
|
+
}
|
|
365
|
+
catch (err) {
|
|
366
|
+
return `Terraform plan error: ${err instanceof Error ? err.message : String(err)}`;
|
|
367
|
+
}
|
|
368
|
+
},
|
|
369
|
+
});
|
|
370
|
+
// ── License Check ─────────────────────────────────────────────────
|
|
371
|
+
registerTool({
|
|
372
|
+
name: 'license_check',
|
|
373
|
+
description: 'Check license compatibility across a project\'s dependency tree.',
|
|
374
|
+
parameters: {
|
|
375
|
+
path: { type: 'string', description: 'Project directory path', required: true },
|
|
376
|
+
},
|
|
377
|
+
tier: 'free',
|
|
378
|
+
async execute(args) {
|
|
379
|
+
const path = String(args.path);
|
|
380
|
+
try {
|
|
381
|
+
// Try npx license-checker for Node projects
|
|
382
|
+
return await shell('npx', ['--yes', 'license-checker', '--start', path, '--summary'], 30_000);
|
|
383
|
+
}
|
|
384
|
+
catch {
|
|
385
|
+
try {
|
|
386
|
+
// Fallback: read package.json and extract license
|
|
387
|
+
const { readFileSync } = await import('fs');
|
|
388
|
+
const pkg = JSON.parse(readFileSync(`${path}/package.json`, 'utf-8'));
|
|
389
|
+
return `Project: ${pkg.name}\nLicense: ${pkg.license || 'unspecified'}\nDependencies: ${Object.keys(pkg.dependencies || {}).length}`;
|
|
390
|
+
}
|
|
391
|
+
catch (err) {
|
|
392
|
+
return `License check error: ${err instanceof Error ? err.message : String(err)}`;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
},
|
|
396
|
+
});
|
|
397
|
+
// ── Dependency Graph ──────────────────────────────────────────────
|
|
398
|
+
registerTool({
|
|
399
|
+
name: 'dep_graph',
|
|
400
|
+
description: 'Build a dependency tree for any package ecosystem (npm, pip, cargo).',
|
|
401
|
+
parameters: {
|
|
402
|
+
ecosystem: { type: 'string', description: 'Package ecosystem: npm, pip, cargo', required: true },
|
|
403
|
+
package_name: { type: 'string', description: 'Package to analyze', required: true },
|
|
404
|
+
},
|
|
405
|
+
tier: 'free',
|
|
406
|
+
async execute(args) {
|
|
407
|
+
const eco = String(args.ecosystem).toLowerCase();
|
|
408
|
+
const pkg = String(args.package_name);
|
|
409
|
+
try {
|
|
410
|
+
if (eco === 'npm') {
|
|
411
|
+
return await shell('npm', ['view', pkg, 'dependencies', '--json'], 15_000);
|
|
412
|
+
}
|
|
413
|
+
else if (eco === 'pip') {
|
|
414
|
+
return await shell('python3', ['-m', 'pip', 'show', pkg], 15_000);
|
|
415
|
+
}
|
|
416
|
+
else if (eco === 'cargo') {
|
|
417
|
+
const res = await fetch(`https://crates.io/api/v1/crates/${encodeURIComponent(pkg)}/dependencies`, {
|
|
418
|
+
headers: { 'User-Agent': 'KBot/2.14' },
|
|
419
|
+
signal: AbortSignal.timeout(8000),
|
|
420
|
+
});
|
|
421
|
+
const data = await res.json();
|
|
422
|
+
return JSON.stringify(data.dependencies?.map((d) => `${d.crate_id} ${d.req}`) || [], null, 2);
|
|
423
|
+
}
|
|
424
|
+
return `Unsupported ecosystem: ${eco}. Use npm, pip, or cargo.`;
|
|
425
|
+
}
|
|
426
|
+
catch (err) {
|
|
427
|
+
return `Dependency graph error: ${err instanceof Error ? err.message : String(err)}`;
|
|
428
|
+
}
|
|
429
|
+
},
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
//# sourceMappingURL=containers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"containers.js","sourceRoot":"","sources":["../../src/tools/containers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,CAAC,CAAA;IACF,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3D,8DAA8D;IAC9D,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAA;IAC9C,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,iCAAiC;AACjC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;CACnB;AAgBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAEvD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEhE;AAED,wBAAgB,WAAW,IAAI,cAAc,EAAE,CAE9C;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAM9D;AAED,iEAAiE;AACjE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAC3F,CAAC,CAcD;AA+BD,mDAAmD;AACnD,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAM/D;AAED,qEAAqE;AACrE,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CA0CrE;AAED,0FAA0F;AAC1F,wBAAsB,gBAAgB,CAAC,IAAI,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QACzB,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,CAAC,CAAA;IACF,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3D,8DAA8D;IAC9D,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAA;IAC9C,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wDAAwD;IACxD,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,iCAAiC;AACjC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;CACnB;AAgBD,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAEvD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEhE;AAED,wBAAgB,WAAW,IAAI,cAAc,EAAE,CAE9C;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,EAAE,CAM9D;AAED,iEAAiE;AACjE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAC3F,CAAC,CAcD;AA+BD,mDAAmD;AACnD,wBAAgB,cAAc,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,CAM/D;AAED,qEAAqE;AACrE,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CA0CrE;AAED,0FAA0F;AAC1F,wBAAsB,gBAAgB,CAAC,IAAI,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0HtF"}
|
package/dist/tools/index.js
CHANGED
|
@@ -134,7 +134,7 @@ export async function executeTool(call) {
|
|
|
134
134
|
/** Register all built-in tools. Call once at startup. Uses parallel imports for speed. */
|
|
135
135
|
export async function registerAllTools(opts) {
|
|
136
136
|
// Parallel import all tool modules at once
|
|
137
|
-
const [{ registerFileTools }, { registerBashTools }, { registerGitTools }, { registerSearchTools }, { registerFetchTools }, { registerGitHubTools }, { registerMatrixTools }, { registerParallelTools }, { registerMcpClientTools }, { registerTaskTools }, { registerNotebookTools }, { registerBackgroundTools }, { registerSandboxTools }, { registerBuildMatrixTools }, { registerSubagentTools }, { registerWorktreeTools }, { registerOpenClawTools }, { registerQualityTools }, { registerMemoryTools }, { registerBrowserTools }, { registerE2bTools }, { registerLspTools }, { registerMcpPluginTools }, { registerGraphMemoryTools }, { registerConfidenceTools }, { registerAgentProtocolTools }, { registerTemporalTools }, { registerReasoningTools }, { registerIntentionalityTools }, { registerTestRunnerTools }, { registerCreativeTools }, { registerComfyUITools }, { registerMagentaTools },] = await Promise.all([
|
|
137
|
+
const [{ registerFileTools }, { registerBashTools }, { registerGitTools }, { registerSearchTools }, { registerFetchTools }, { registerGitHubTools }, { registerMatrixTools }, { registerParallelTools }, { registerMcpClientTools }, { registerTaskTools }, { registerNotebookTools }, { registerBackgroundTools }, { registerSandboxTools }, { registerBuildMatrixTools }, { registerSubagentTools }, { registerWorktreeTools }, { registerOpenClawTools }, { registerQualityTools }, { registerMemoryTools }, { registerBrowserTools }, { registerE2bTools }, { registerLspTools }, { registerMcpPluginTools }, { registerGraphMemoryTools }, { registerConfidenceTools }, { registerAgentProtocolTools }, { registerTemporalTools }, { registerReasoningTools }, { registerIntentionalityTools }, { registerTestRunnerTools }, { registerCreativeTools }, { registerComfyUITools }, { registerMagentaTools }, { registerResearchTools }, { registerContainerTools },] = await Promise.all([
|
|
138
138
|
import('./files.js'),
|
|
139
139
|
import('./bash.js'),
|
|
140
140
|
import('./git.js'),
|
|
@@ -168,6 +168,8 @@ export async function registerAllTools(opts) {
|
|
|
168
168
|
import('./creative.js'),
|
|
169
169
|
import('./comfyui-plugin.js'),
|
|
170
170
|
import('./magenta-plugin.js'),
|
|
171
|
+
import('./research.js'),
|
|
172
|
+
import('./containers.js'),
|
|
171
173
|
]);
|
|
172
174
|
// Register all tools (synchronous, fast)
|
|
173
175
|
registerFileTools();
|
|
@@ -203,6 +205,8 @@ export async function registerAllTools(opts) {
|
|
|
203
205
|
registerCreativeTools();
|
|
204
206
|
registerComfyUITools();
|
|
205
207
|
registerMagentaTools();
|
|
208
|
+
registerResearchTools();
|
|
209
|
+
registerContainerTools();
|
|
206
210
|
// Computer use tools — opt-in only via --computer-use flag
|
|
207
211
|
if (opts?.computerUse) {
|
|
208
212
|
const { registerComputerTools } = await import('./computer.js');
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../src/tools/research.ts"],"names":[],"mappings":"AAgBA,wBAAgB,qBAAqB,IAAI,IAAI,CAma5C"}
|
|
@@ -0,0 +1,413 @@
|
|
|
1
|
+
// K:BOT Research & Academic Tools — Scientific code directories
|
|
2
|
+
// Bridges kbot to PyPI, CRAN, Cargo, arXiv, Semantic Scholar,
|
|
3
|
+
// Papers With Code, HuggingFace, DOI, and dataset registries.
|
|
4
|
+
import { registerTool } from './index.js';
|
|
5
|
+
import { execFile } from 'child_process';
|
|
6
|
+
function run(cmd, args, timeout = 30_000) {
|
|
7
|
+
return new Promise((resolve, reject) => {
|
|
8
|
+
const proc = execFile(cmd, args, { timeout, maxBuffer: 1024 * 1024 }, (err, stdout, stderr) => {
|
|
9
|
+
if (err)
|
|
10
|
+
reject(new Error(stderr || err.message));
|
|
11
|
+
else
|
|
12
|
+
resolve(stdout);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
export function registerResearchTools() {
|
|
17
|
+
// ── PyPI ──────────────────────────────────────────────────────────
|
|
18
|
+
registerTool({
|
|
19
|
+
name: 'pypi_search',
|
|
20
|
+
description: 'Search PyPI for Python packages. Returns name, version, summary, and download stats.',
|
|
21
|
+
parameters: {
|
|
22
|
+
query: { type: 'string', description: 'Package name or search term', required: true },
|
|
23
|
+
limit: { type: 'number', description: 'Max results (default 10)' },
|
|
24
|
+
},
|
|
25
|
+
tier: 'free',
|
|
26
|
+
async execute(args) {
|
|
27
|
+
const query = String(args.query);
|
|
28
|
+
const limit = Number(args.limit) || 10;
|
|
29
|
+
try {
|
|
30
|
+
// Try exact match first
|
|
31
|
+
const res = await fetch(`https://pypi.org/pypi/${encodeURIComponent(query)}/json`, {
|
|
32
|
+
signal: AbortSignal.timeout(8000),
|
|
33
|
+
});
|
|
34
|
+
if (res.ok) {
|
|
35
|
+
const data = await res.json();
|
|
36
|
+
const info = data.info;
|
|
37
|
+
return [
|
|
38
|
+
`# ${info.name} v${info.version}`,
|
|
39
|
+
`**Summary**: ${info.summary}`,
|
|
40
|
+
`**Author**: ${info.author || info.author_email || 'unknown'}`,
|
|
41
|
+
`**License**: ${info.license || 'unspecified'}`,
|
|
42
|
+
`**Home**: ${info.home_page || info.project_url || 'n/a'}`,
|
|
43
|
+
`**Requires Python**: ${info.requires_python || 'any'}`,
|
|
44
|
+
info.requires_dist ? `**Dependencies**: ${info.requires_dist.slice(0, 15).join(', ')}` : '',
|
|
45
|
+
].filter(Boolean).join('\n');
|
|
46
|
+
}
|
|
47
|
+
// Fallback: search via simple API
|
|
48
|
+
const searchRes = await fetch(`https://pypi.org/simple/`, {
|
|
49
|
+
signal: AbortSignal.timeout(8000),
|
|
50
|
+
});
|
|
51
|
+
return `No exact match for "${query}". Try: pip search or browse https://pypi.org/search/?q=${encodeURIComponent(query)}`;
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
return `PyPI search error: ${err instanceof Error ? err.message : String(err)}`;
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
registerTool({
|
|
59
|
+
name: 'pypi_info',
|
|
60
|
+
description: 'Get detailed info about a specific PyPI package including dependencies, versions, and metadata.',
|
|
61
|
+
parameters: {
|
|
62
|
+
package_name: { type: 'string', description: 'Exact package name on PyPI', required: true },
|
|
63
|
+
},
|
|
64
|
+
tier: 'free',
|
|
65
|
+
async execute(args) {
|
|
66
|
+
const pkg = String(args.package_name);
|
|
67
|
+
const res = await fetch(`https://pypi.org/pypi/${encodeURIComponent(pkg)}/json`, {
|
|
68
|
+
signal: AbortSignal.timeout(8000),
|
|
69
|
+
});
|
|
70
|
+
if (!res.ok)
|
|
71
|
+
return `Package "${pkg}" not found on PyPI.`;
|
|
72
|
+
const data = await res.json();
|
|
73
|
+
const info = data.info;
|
|
74
|
+
const versions = Object.keys(data.releases).slice(-10);
|
|
75
|
+
return [
|
|
76
|
+
`# ${info.name} v${info.version}`,
|
|
77
|
+
`**Summary**: ${info.summary}`,
|
|
78
|
+
`**Description**: ${(info.description || '').slice(0, 500)}`,
|
|
79
|
+
`**Author**: ${info.author || 'unknown'}`,
|
|
80
|
+
`**License**: ${info.license || 'unspecified'}`,
|
|
81
|
+
`**Python**: ${info.requires_python || 'any'}`,
|
|
82
|
+
`**Homepage**: ${info.home_page || 'n/a'}`,
|
|
83
|
+
`**Project URLs**: ${info.project_urls ? Object.entries(info.project_urls).map(([k, v]) => `${k}: ${v}`).join(', ') : 'n/a'}`,
|
|
84
|
+
`**Recent versions**: ${versions.join(', ')}`,
|
|
85
|
+
info.requires_dist ? `**Dependencies (${info.requires_dist.length})**: ${info.requires_dist.slice(0, 20).join(', ')}` : '',
|
|
86
|
+
`**Classifiers**: ${(info.classifiers || []).slice(0, 10).join(', ')}`,
|
|
87
|
+
].filter(Boolean).join('\n');
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
registerTool({
|
|
91
|
+
name: 'pip_run',
|
|
92
|
+
description: 'Run a Python script or one-liner. Creates a temporary venv if needed.',
|
|
93
|
+
parameters: {
|
|
94
|
+
code: { type: 'string', description: 'Python code to execute (inline or file path)', required: true },
|
|
95
|
+
packages: { type: 'string', description: 'Comma-separated pip packages to install first' },
|
|
96
|
+
},
|
|
97
|
+
tier: 'pro',
|
|
98
|
+
timeout: 120_000,
|
|
99
|
+
async execute(args) {
|
|
100
|
+
const code = String(args.code);
|
|
101
|
+
const packages = args.packages ? String(args.packages).split(',').map(p => p.trim()) : [];
|
|
102
|
+
try {
|
|
103
|
+
if (packages.length > 0) {
|
|
104
|
+
await run('python3', ['-m', 'pip', 'install', '--quiet', ...packages], 60_000);
|
|
105
|
+
}
|
|
106
|
+
// Determine if code is a file path or inline
|
|
107
|
+
if (code.endsWith('.py')) {
|
|
108
|
+
return await run('python3', [code], 60_000);
|
|
109
|
+
}
|
|
110
|
+
return await run('python3', ['-c', code], 60_000);
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
return `Python execution error: ${err instanceof Error ? err.message : String(err)}`;
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
// ── Cargo (Rust) ──────────────────────────────────────────────────
|
|
118
|
+
registerTool({
|
|
119
|
+
name: 'cargo_search',
|
|
120
|
+
description: 'Search crates.io for Rust packages.',
|
|
121
|
+
parameters: {
|
|
122
|
+
query: { type: 'string', description: 'Crate name or search term', required: true },
|
|
123
|
+
limit: { type: 'number', description: 'Max results (default 10)' },
|
|
124
|
+
},
|
|
125
|
+
tier: 'free',
|
|
126
|
+
async execute(args) {
|
|
127
|
+
const query = String(args.query);
|
|
128
|
+
const limit = Number(args.limit) || 10;
|
|
129
|
+
try {
|
|
130
|
+
const res = await fetch(`https://crates.io/api/v1/crates?q=${encodeURIComponent(query)}&per_page=${limit}`, {
|
|
131
|
+
headers: { 'User-Agent': 'KBot/2.14 (https://kernel.chat)' },
|
|
132
|
+
signal: AbortSignal.timeout(8000),
|
|
133
|
+
});
|
|
134
|
+
const data = await res.json();
|
|
135
|
+
if (!data.crates?.length)
|
|
136
|
+
return `No Rust crates found for "${query}".`;
|
|
137
|
+
return data.crates.map((c) => `**${c.name}** v${c.max_version} — ${c.description || 'no description'}\n Downloads: ${c.downloads?.toLocaleString()} | Docs: https://docs.rs/${c.name}`).join('\n\n');
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
return `Cargo search error: ${err instanceof Error ? err.message : String(err)}`;
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
});
|
|
144
|
+
// ── CRAN (R) ──────────────────────────────────────────────────────
|
|
145
|
+
registerTool({
|
|
146
|
+
name: 'cran_search',
|
|
147
|
+
description: 'Search CRAN for R packages used in statistical computing and data science.',
|
|
148
|
+
parameters: {
|
|
149
|
+
query: { type: 'string', description: 'Package name or search term', required: true },
|
|
150
|
+
},
|
|
151
|
+
tier: 'free',
|
|
152
|
+
async execute(args) {
|
|
153
|
+
const query = String(args.query);
|
|
154
|
+
try {
|
|
155
|
+
const res = await fetch(`https://crandb.r-pkg.org/${encodeURIComponent(query)}`, {
|
|
156
|
+
signal: AbortSignal.timeout(8000),
|
|
157
|
+
});
|
|
158
|
+
if (res.ok) {
|
|
159
|
+
const data = await res.json();
|
|
160
|
+
return [
|
|
161
|
+
`# ${data.Package} v${data.Version}`,
|
|
162
|
+
`**Title**: ${data.Title}`,
|
|
163
|
+
`**Description**: ${(data.Description || '').slice(0, 500)}`,
|
|
164
|
+
`**Author**: ${data.Author || 'unknown'}`,
|
|
165
|
+
`**License**: ${data.License || 'unspecified'}`,
|
|
166
|
+
`**Depends**: ${data.Depends ? Object.keys(data.Depends).join(', ') : 'none'}`,
|
|
167
|
+
`**Imports**: ${data.Imports ? Object.keys(data.Imports).join(', ') : 'none'}`,
|
|
168
|
+
`**URL**: https://cran.r-project.org/package=${data.Package}`,
|
|
169
|
+
].join('\n');
|
|
170
|
+
}
|
|
171
|
+
return `R package "${query}" not found on CRAN. Browse: https://cran.r-project.org/web/packages/available_packages_by_name.html`;
|
|
172
|
+
}
|
|
173
|
+
catch (err) {
|
|
174
|
+
return `CRAN search error: ${err instanceof Error ? err.message : String(err)}`;
|
|
175
|
+
}
|
|
176
|
+
},
|
|
177
|
+
});
|
|
178
|
+
// ── arXiv ─────────────────────────────────────────────────────────
|
|
179
|
+
registerTool({
|
|
180
|
+
name: 'arxiv_search',
|
|
181
|
+
description: 'Search arXiv for academic papers. Returns titles, abstracts, authors, and PDF links.',
|
|
182
|
+
parameters: {
|
|
183
|
+
query: { type: 'string', description: 'Search query (supports arXiv search syntax)', required: true },
|
|
184
|
+
limit: { type: 'number', description: 'Max results (default 5)' },
|
|
185
|
+
},
|
|
186
|
+
tier: 'free',
|
|
187
|
+
async execute(args) {
|
|
188
|
+
const query = String(args.query);
|
|
189
|
+
const limit = Math.min(Number(args.limit) || 5, 20);
|
|
190
|
+
try {
|
|
191
|
+
const res = await fetch(`https://export.arxiv.org/api/query?search_query=all:${encodeURIComponent(query)}&start=0&max_results=${limit}`, { signal: AbortSignal.timeout(10000) });
|
|
192
|
+
const xml = await res.text();
|
|
193
|
+
// Parse Atom XML entries
|
|
194
|
+
const entries = xml.split('<entry>').slice(1);
|
|
195
|
+
if (entries.length === 0)
|
|
196
|
+
return `No arXiv papers found for "${query}".`;
|
|
197
|
+
return entries.map(entry => {
|
|
198
|
+
const title = entry.match(/<title>([\s\S]*?)<\/title>/)?.[1]?.replace(/\s+/g, ' ').trim() || 'Untitled';
|
|
199
|
+
const summary = entry.match(/<summary>([\s\S]*?)<\/summary>/)?.[1]?.replace(/\s+/g, ' ').trim().slice(0, 300) || '';
|
|
200
|
+
const id = entry.match(/<id>([\s\S]*?)<\/id>/)?.[1]?.trim() || '';
|
|
201
|
+
const published = entry.match(/<published>([\s\S]*?)<\/published>/)?.[1]?.trim().slice(0, 10) || '';
|
|
202
|
+
const authors = [...entry.matchAll(/<name>([\s\S]*?)<\/name>/g)].map(m => m[1].trim()).slice(0, 5);
|
|
203
|
+
const pdfLink = entry.match(/href="([^"]*?)"[^>]*title="pdf"/)?.[1] || id.replace('abs', 'pdf');
|
|
204
|
+
return `### ${title}\n**Authors**: ${authors.join(', ')}\n**Published**: ${published}\n**PDF**: ${pdfLink}\n**Abstract**: ${summary}...`;
|
|
205
|
+
}).join('\n\n---\n\n');
|
|
206
|
+
}
|
|
207
|
+
catch (err) {
|
|
208
|
+
return `arXiv search error: ${err instanceof Error ? err.message : String(err)}`;
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
});
|
|
212
|
+
// ── Semantic Scholar ──────────────────────────────────────────────
|
|
213
|
+
registerTool({
|
|
214
|
+
name: 'semantic_scholar',
|
|
215
|
+
description: 'Search Semantic Scholar for papers with citation counts, influence scores, and related work.',
|
|
216
|
+
parameters: {
|
|
217
|
+
query: { type: 'string', description: 'Search query', required: true },
|
|
218
|
+
limit: { type: 'number', description: 'Max results (default 5)' },
|
|
219
|
+
},
|
|
220
|
+
tier: 'free',
|
|
221
|
+
async execute(args) {
|
|
222
|
+
const query = String(args.query);
|
|
223
|
+
const limit = Math.min(Number(args.limit) || 5, 20);
|
|
224
|
+
try {
|
|
225
|
+
const res = await fetch(`https://api.semanticscholar.org/graph/v1/paper/search?query=${encodeURIComponent(query)}&limit=${limit}&fields=title,abstract,citationCount,year,authors,url,influentialCitationCount`, { signal: AbortSignal.timeout(10000) });
|
|
226
|
+
const data = await res.json();
|
|
227
|
+
if (!data.data?.length)
|
|
228
|
+
return `No papers found for "${query}".`;
|
|
229
|
+
return data.data.map((p) => [
|
|
230
|
+
`### ${p.title}`,
|
|
231
|
+
`**Year**: ${p.year || 'n/a'} | **Citations**: ${p.citationCount} | **Influential citations**: ${p.influentialCitationCount || 0}`,
|
|
232
|
+
`**Authors**: ${(p.authors || []).map((a) => a.name).slice(0, 5).join(', ')}`,
|
|
233
|
+
`**URL**: ${p.url}`,
|
|
234
|
+
p.abstract ? `**Abstract**: ${p.abstract.slice(0, 300)}...` : '',
|
|
235
|
+
].filter(Boolean).join('\n')).join('\n\n---\n\n');
|
|
236
|
+
}
|
|
237
|
+
catch (err) {
|
|
238
|
+
return `Semantic Scholar error: ${err instanceof Error ? err.message : String(err)}`;
|
|
239
|
+
}
|
|
240
|
+
},
|
|
241
|
+
});
|
|
242
|
+
// ── Papers With Code ──────────────────────────────────────────────
|
|
243
|
+
registerTool({
|
|
244
|
+
name: 'papers_search',
|
|
245
|
+
description: 'Search Papers With Code for research papers with code implementations. Find the actual code behind any research paper.',
|
|
246
|
+
parameters: {
|
|
247
|
+
query: { type: 'string', description: 'Research topic or paper title', required: true },
|
|
248
|
+
limit: { type: 'number', description: 'Max results (default 5)' },
|
|
249
|
+
},
|
|
250
|
+
tier: 'free',
|
|
251
|
+
async execute(args) {
|
|
252
|
+
const query = String(args.query);
|
|
253
|
+
const limit = Math.min(Number(args.limit) || 5, 20);
|
|
254
|
+
try {
|
|
255
|
+
const res = await fetch(`https://paperswithcode.com/api/v1/papers/?q=${encodeURIComponent(query)}&items_per_page=${limit}`, { signal: AbortSignal.timeout(10000) });
|
|
256
|
+
const data = await res.json();
|
|
257
|
+
if (!data.results?.length)
|
|
258
|
+
return `No papers found for "${query}".`;
|
|
259
|
+
return data.results.map((p) => [
|
|
260
|
+
`### ${p.title}`,
|
|
261
|
+
`**Published**: ${p.published || 'n/a'}`,
|
|
262
|
+
`**arXiv**: ${p.arxiv_id || 'n/a'}`,
|
|
263
|
+
p.abstract ? `**Abstract**: ${p.abstract.slice(0, 300)}...` : '',
|
|
264
|
+
`**URL**: ${p.url_abs || `https://paperswithcode.com${p.url}`}`,
|
|
265
|
+
].filter(Boolean).join('\n')).join('\n\n---\n\n');
|
|
266
|
+
}
|
|
267
|
+
catch (err) {
|
|
268
|
+
return `Papers With Code error: ${err instanceof Error ? err.message : String(err)}`;
|
|
269
|
+
}
|
|
270
|
+
},
|
|
271
|
+
});
|
|
272
|
+
// ── HuggingFace Hub ───────────────────────────────────────────────
|
|
273
|
+
registerTool({
|
|
274
|
+
name: 'hf_search',
|
|
275
|
+
description: 'Search HuggingFace Hub for ML models. Find pre-trained models for any task (text-generation, image-classification, etc.).',
|
|
276
|
+
parameters: {
|
|
277
|
+
query: { type: 'string', description: 'Model search query', required: true },
|
|
278
|
+
task: { type: 'string', description: 'Filter by task (text-generation, image-classification, etc.)' },
|
|
279
|
+
limit: { type: 'number', description: 'Max results (default 5)' },
|
|
280
|
+
},
|
|
281
|
+
tier: 'free',
|
|
282
|
+
async execute(args) {
|
|
283
|
+
const query = String(args.query);
|
|
284
|
+
const task = args.task ? `&pipeline_tag=${encodeURIComponent(String(args.task))}` : '';
|
|
285
|
+
const limit = Math.min(Number(args.limit) || 5, 20);
|
|
286
|
+
try {
|
|
287
|
+
const res = await fetch(`https://huggingface.co/api/models?search=${encodeURIComponent(query)}${task}&sort=downloads&direction=-1&limit=${limit}`, { signal: AbortSignal.timeout(10000) });
|
|
288
|
+
const data = await res.json();
|
|
289
|
+
if (!Array.isArray(data) || data.length === 0)
|
|
290
|
+
return `No models found for "${query}".`;
|
|
291
|
+
return data.map((m) => `**${m.modelId || m.id}** — ${m.pipeline_tag || 'general'}\n Downloads: ${m.downloads?.toLocaleString() || 'n/a'} | Likes: ${m.likes || 0}\n Tags: ${(m.tags || []).slice(0, 8).join(', ')}\n URL: https://huggingface.co/${m.modelId || m.id}`).join('\n\n');
|
|
292
|
+
}
|
|
293
|
+
catch (err) {
|
|
294
|
+
return `HuggingFace search error: ${err instanceof Error ? err.message : String(err)}`;
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
});
|
|
298
|
+
registerTool({
|
|
299
|
+
name: 'hf_datasets',
|
|
300
|
+
description: 'Search HuggingFace for datasets. Find training data for ML models.',
|
|
301
|
+
parameters: {
|
|
302
|
+
query: { type: 'string', description: 'Dataset search query', required: true },
|
|
303
|
+
limit: { type: 'number', description: 'Max results (default 5)' },
|
|
304
|
+
},
|
|
305
|
+
tier: 'free',
|
|
306
|
+
async execute(args) {
|
|
307
|
+
const query = String(args.query);
|
|
308
|
+
const limit = Math.min(Number(args.limit) || 5, 20);
|
|
309
|
+
try {
|
|
310
|
+
const res = await fetch(`https://huggingface.co/api/datasets?search=${encodeURIComponent(query)}&sort=downloads&direction=-1&limit=${limit}`, { signal: AbortSignal.timeout(10000) });
|
|
311
|
+
const data = await res.json();
|
|
312
|
+
if (!Array.isArray(data) || data.length === 0)
|
|
313
|
+
return `No datasets found for "${query}".`;
|
|
314
|
+
return data.map((d) => `**${d.id}** — Downloads: ${d.downloads?.toLocaleString() || 'n/a'}\n Tags: ${(d.tags || []).slice(0, 8).join(', ')}\n URL: https://huggingface.co/datasets/${d.id}`).join('\n\n');
|
|
315
|
+
}
|
|
316
|
+
catch (err) {
|
|
317
|
+
return `HuggingFace datasets error: ${err instanceof Error ? err.message : String(err)}`;
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
});
|
|
321
|
+
// ── DOI Resolver ──────────────────────────────────────────────────
|
|
322
|
+
registerTool({
|
|
323
|
+
name: 'doi_lookup',
|
|
324
|
+
description: 'Resolve a DOI to full paper metadata (title, authors, journal, abstract, citations).',
|
|
325
|
+
parameters: {
|
|
326
|
+
doi: { type: 'string', description: 'DOI (e.g., 10.1038/s41586-023-06221-2)', required: true },
|
|
327
|
+
},
|
|
328
|
+
tier: 'free',
|
|
329
|
+
async execute(args) {
|
|
330
|
+
const doi = String(args.doi);
|
|
331
|
+
try {
|
|
332
|
+
const res = await fetch(`https://api.crossref.org/works/${encodeURIComponent(doi)}`, {
|
|
333
|
+
headers: { 'User-Agent': 'KBot/2.14 (https://kernel.chat; mailto:hello@kernel.chat)' },
|
|
334
|
+
signal: AbortSignal.timeout(10000),
|
|
335
|
+
});
|
|
336
|
+
if (!res.ok)
|
|
337
|
+
return `DOI "${doi}" not found.`;
|
|
338
|
+
const data = await res.json();
|
|
339
|
+
const work = data.message;
|
|
340
|
+
return [
|
|
341
|
+
`# ${(work.title || ['Untitled'])[0]}`,
|
|
342
|
+
`**Authors**: ${(work.author || []).map((a) => `${a.given || ''} ${a.family || ''}`).join(', ')}`,
|
|
343
|
+
`**Journal**: ${(work['container-title'] || ['n/a'])[0]}`,
|
|
344
|
+
`**Published**: ${work.created?.['date-parts']?.[0]?.join('-') || 'n/a'}`,
|
|
345
|
+
`**Type**: ${work.type || 'n/a'}`,
|
|
346
|
+
`**Citations**: ${work['is-referenced-by-count'] || 0}`,
|
|
347
|
+
`**URL**: ${work.URL || `https://doi.org/${doi}`}`,
|
|
348
|
+
work.abstract ? `**Abstract**: ${work.abstract.replace(/<[^>]*>/g, '').slice(0, 500)}` : '',
|
|
349
|
+
].filter(Boolean).join('\n');
|
|
350
|
+
}
|
|
351
|
+
catch (err) {
|
|
352
|
+
return `DOI lookup error: ${err instanceof Error ? err.message : String(err)}`;
|
|
353
|
+
}
|
|
354
|
+
},
|
|
355
|
+
});
|
|
356
|
+
// ── GitHub Trending ───────────────────────────────────────────────
|
|
357
|
+
registerTool({
|
|
358
|
+
name: 'github_trending',
|
|
359
|
+
description: 'Find trending GitHub repositories by language or topic. Discover what the community is building right now.',
|
|
360
|
+
parameters: {
|
|
361
|
+
language: { type: 'string', description: 'Programming language (e.g., python, rust, typescript)' },
|
|
362
|
+
since: { type: 'string', description: 'Time range: daily, weekly, monthly (default: weekly)' },
|
|
363
|
+
},
|
|
364
|
+
tier: 'free',
|
|
365
|
+
async execute(args) {
|
|
366
|
+
const language = args.language ? String(args.language) : '';
|
|
367
|
+
const since = String(args.since || 'weekly');
|
|
368
|
+
// Use GitHub search API as trending proxy (stars created recently)
|
|
369
|
+
const dateFilter = since === 'daily' ? '1' : since === 'monthly' ? '30' : '7';
|
|
370
|
+
const now = new Date();
|
|
371
|
+
const past = new Date(now.getTime() - parseInt(dateFilter) * 86400000);
|
|
372
|
+
const dateStr = past.toISOString().slice(0, 10);
|
|
373
|
+
const langFilter = language ? `+language:${encodeURIComponent(language)}` : '';
|
|
374
|
+
try {
|
|
375
|
+
const res = await fetch(`https://api.github.com/search/repositories?q=created:>${dateStr}${langFilter}&sort=stars&order=desc&per_page=10`, { signal: AbortSignal.timeout(10000) });
|
|
376
|
+
const data = await res.json();
|
|
377
|
+
if (!data.items?.length)
|
|
378
|
+
return `No trending repos found.`;
|
|
379
|
+
return data.items.map((r) => `**${r.full_name}** ★${r.stargazers_count}\n ${r.description || 'No description'}\n Language: ${r.language || 'mixed'} | Forks: ${r.forks_count}\n URL: ${r.html_url}`).join('\n\n');
|
|
380
|
+
}
|
|
381
|
+
catch (err) {
|
|
382
|
+
return `GitHub trending error: ${err instanceof Error ? err.message : String(err)}`;
|
|
383
|
+
}
|
|
384
|
+
},
|
|
385
|
+
});
|
|
386
|
+
// ── NASA Open Data ────────────────────────────────────────────────
|
|
387
|
+
registerTool({
|
|
388
|
+
name: 'nasa_search',
|
|
389
|
+
description: 'Search NASA open datasets and imagery. Access satellite data, Mars rover photos, astronomy images.',
|
|
390
|
+
parameters: {
|
|
391
|
+
query: { type: 'string', description: 'Search query', required: true },
|
|
392
|
+
},
|
|
393
|
+
tier: 'free',
|
|
394
|
+
async execute(args) {
|
|
395
|
+
const query = String(args.query);
|
|
396
|
+
try {
|
|
397
|
+
const res = await fetch(`https://images-api.nasa.gov/search?q=${encodeURIComponent(query)}&media_type=image&page_size=5`, { signal: AbortSignal.timeout(10000) });
|
|
398
|
+
const data = await res.json();
|
|
399
|
+
const items = data.collection?.items || [];
|
|
400
|
+
if (items.length === 0)
|
|
401
|
+
return `No NASA results for "${query}".`;
|
|
402
|
+
return items.map((item) => {
|
|
403
|
+
const d = item.data?.[0] || {};
|
|
404
|
+
return `**${d.title}** (${d.date_created?.slice(0, 10) || 'n/a'})\n ${(d.description || '').slice(0, 200)}\n Center: ${d.center || 'n/a'} | ID: ${d.nasa_id || 'n/a'}\n Preview: ${item.links?.[0]?.href || 'n/a'}`;
|
|
405
|
+
}).join('\n\n');
|
|
406
|
+
}
|
|
407
|
+
catch (err) {
|
|
408
|
+
return `NASA search error: ${err instanceof Error ? err.message : String(err)}`;
|
|
409
|
+
}
|
|
410
|
+
},
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
//# sourceMappingURL=research.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"research.js","sourceRoot":"","sources":["../../src/tools/research.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kernel.chat/kbot",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "2.15.1",
|
|
4
|
+
"description": "Universal AI agent for your terminal. 39 specialists, 208 tools, 19 providers. Covers every code ecosystem — npm, PyPI, CRAN, Cargo, HuggingFace, arXiv, Docker, and more. Self-evolving, learns your patterns, runs offline with Ollama.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -25,9 +25,8 @@
|
|
|
25
25
|
},
|
|
26
26
|
"keywords": [
|
|
27
27
|
"ai-agent",
|
|
28
|
-
"
|
|
29
|
-
"terminal
|
|
30
|
-
"cli-ai",
|
|
28
|
+
"cli",
|
|
29
|
+
"terminal",
|
|
31
30
|
"code-generation",
|
|
32
31
|
"ai-coding-assistant",
|
|
33
32
|
"local-first",
|
|
@@ -36,14 +35,47 @@
|
|
|
36
35
|
"developer-tools",
|
|
37
36
|
"ollama",
|
|
38
37
|
"claude",
|
|
38
|
+
"openai",
|
|
39
39
|
"gpt",
|
|
40
|
-
"
|
|
40
|
+
"anthropic",
|
|
41
|
+
"google-ai",
|
|
42
|
+
"groq",
|
|
43
|
+
"mistral",
|
|
41
44
|
"code-review",
|
|
42
45
|
"self-evolving",
|
|
43
46
|
"multi-model",
|
|
44
47
|
"mcp",
|
|
48
|
+
"mcp-server",
|
|
45
49
|
"shell-assistant",
|
|
46
|
-
"open-source-ai"
|
|
50
|
+
"open-source-ai",
|
|
51
|
+
"chatbot",
|
|
52
|
+
"copilot",
|
|
53
|
+
"ai-assistant",
|
|
54
|
+
"typescript",
|
|
55
|
+
"python",
|
|
56
|
+
"rust",
|
|
57
|
+
"docker",
|
|
58
|
+
"terraform",
|
|
59
|
+
"devops",
|
|
60
|
+
"data-science",
|
|
61
|
+
"machine-learning",
|
|
62
|
+
"huggingface",
|
|
63
|
+
"arxiv",
|
|
64
|
+
"research",
|
|
65
|
+
"bioinformatics",
|
|
66
|
+
"scientific-computing",
|
|
67
|
+
"api-testing",
|
|
68
|
+
"graphql",
|
|
69
|
+
"rest-api",
|
|
70
|
+
"container",
|
|
71
|
+
"jupyter",
|
|
72
|
+
"testing",
|
|
73
|
+
"linting",
|
|
74
|
+
"git",
|
|
75
|
+
"github",
|
|
76
|
+
"agent",
|
|
77
|
+
"swarm",
|
|
78
|
+
"multi-agent"
|
|
47
79
|
],
|
|
48
80
|
"author": "kernel.chat group",
|
|
49
81
|
"license": "MIT",
|