kernelbot 1.0.25 → 1.0.28
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 +198 -123
- package/bin/kernel.js +201 -4
- package/package.json +1 -1
- package/src/agent.js +447 -174
- package/src/automation/automation-manager.js +377 -0
- package/src/automation/automation.js +79 -0
- package/src/automation/index.js +2 -0
- package/src/automation/scheduler.js +141 -0
- package/src/bot.js +908 -69
- package/src/conversation.js +69 -0
- package/src/intents/detector.js +50 -0
- package/src/intents/index.js +2 -0
- package/src/intents/planner.js +58 -0
- package/src/persona.js +68 -0
- package/src/prompts/orchestrator.js +76 -0
- package/src/prompts/persona.md +21 -0
- package/src/prompts/system.js +74 -35
- package/src/prompts/workers.js +89 -0
- package/src/providers/anthropic.js +23 -16
- package/src/providers/base.js +76 -2
- package/src/providers/index.js +1 -0
- package/src/providers/models.js +2 -1
- package/src/providers/openai-compat.js +5 -3
- package/src/security/confirm.js +7 -2
- package/src/skills/catalog.js +506 -0
- package/src/skills/custom.js +128 -0
- package/src/swarm/job-manager.js +169 -0
- package/src/swarm/job.js +67 -0
- package/src/swarm/worker-registry.js +74 -0
- package/src/tools/browser.js +458 -335
- package/src/tools/categories.js +101 -0
- package/src/tools/index.js +3 -0
- package/src/tools/orchestrator-tools.js +371 -0
- package/src/tools/persona.js +32 -0
- package/src/utils/config.js +53 -16
- package/src/worker.js +305 -0
- package/.agents/skills/interface-design/SKILL.md +0 -391
- package/.agents/skills/interface-design/references/critique.md +0 -67
- package/.agents/skills/interface-design/references/example.md +0 -86
- package/.agents/skills/interface-design/references/principles.md +0 -235
- package/.agents/skills/interface-design/references/validation.md +0 -48
package/README.md
CHANGED
|
@@ -2,17 +2,36 @@
|
|
|
2
2
|
|
|
3
3
|
[kernelbot.io](https://kernelbot.io) | [npm](https://www.npmjs.com/package/kernelbot) | [GitHub](https://github.com/KernelCode/kernelbot)
|
|
4
4
|
|
|
5
|
-
AI
|
|
5
|
+
A multi-agent AI swarm — a Telegram bot with a smart orchestrator dispatching specialized workers powered by Claude, GPT, Gemini, or Groq with full OS control.
|
|
6
6
|
|
|
7
|
-
Send a message
|
|
7
|
+
Send a message and KernelBot dispatches workers that write code, run commands, open PRs, manage Docker, and browse the web autonomously in parallel.
|
|
8
|
+
|
|
9
|
+
## How It Works
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
You (Telegram) → Orchestrator (Claude Opus)
|
|
13
|
+
↓ dispatch_task
|
|
14
|
+
┌───────────┼───────────────┐
|
|
15
|
+
↓ ↓ ↓
|
|
16
|
+
💻 Coding 🌐 Browser 🖥️ System 🚀 DevOps 🔍 Research
|
|
17
|
+
Worker Worker Worker Worker Worker
|
|
18
|
+
↕ ↕ ↕ ↕ ↕
|
|
19
|
+
git, PRs, web search, shell, CPU, Docker, multi-source
|
|
20
|
+
Claude Code screenshots RAM, disk deploy, git web research
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
KernelBot runs a **multi-agent swarm**. The **orchestrator** (always Claude Opus) understands your request and dispatches it to one or more **specialized workers** that run in parallel. Each worker has a scoped tool set and operates in the background using your chosen AI brain (Claude, GPT, Gemini, or Groq). The orchestrator coordinates, summarizes results, and keeps you informed.
|
|
8
24
|
|
|
9
25
|
## Features
|
|
10
26
|
|
|
11
|
-
- **Multi-
|
|
12
|
-
- **
|
|
27
|
+
- **Multi-agent swarm** — orchestrator dispatches tasks to specialized workers running in parallel
|
|
28
|
+
- **5 worker types** — coding, browser, system, devops, and research — each with scoped tools
|
|
29
|
+
- **Multi-model support** — workers use your chosen brain: Anthropic (Claude), OpenAI (GPT), Google (Gemini), or Groq (Llama/Mixtral). Switch anytime via `/brain`
|
|
30
|
+
- **Job management** — track, list, and cancel running workers with `/jobs` and `/cancel`
|
|
13
31
|
- **Full shell access** — run any command, install packages, build projects, run tests
|
|
14
32
|
- **File management** — read, write, and create files with automatic directory creation
|
|
15
33
|
- **Web browsing** — navigate pages, extract content, take screenshots, interact with forms and buttons (Puppeteer)
|
|
34
|
+
- **Web search** — search the web and synthesize results from multiple sources
|
|
16
35
|
- **Git workflow** — clone repos, create branches, commit, push, and view diffs
|
|
17
36
|
- **GitHub integration** — create repos, open PRs, post code reviews, list and inspect pull requests
|
|
18
37
|
- **JIRA integration** — read tickets, search with JQL, list assigned/project tickets (Cloud + Server)
|
|
@@ -22,109 +41,109 @@ Send a message in Telegram, and KernelBot will read files, write code, run comma
|
|
|
22
41
|
- **System monitoring** — check CPU, RAM, disk usage, and read system logs
|
|
23
42
|
- **Networking** — make HTTP requests, check ports, test and reload nginx
|
|
24
43
|
- **Send images** — share screenshots and files directly in the Telegram chat
|
|
25
|
-
- **
|
|
26
|
-
- **
|
|
44
|
+
- **Skills system** — 35+ built-in persona skills across 11 categories (engineering, design, marketing, etc.) plus custom skills you create
|
|
45
|
+
- **User personas** — auto-learns your preferences, expertise, and communication style across conversations
|
|
46
|
+
- **Smart progress** — live-updating Telegram messages show each worker's activity in real time
|
|
47
|
+
- **Conversation memory** — per-chat history with summarization that persists across restarts
|
|
27
48
|
- **Security built-in** — user allowlist, blocked paths, dangerous operation confirmation, audit logging, secret redaction
|
|
28
49
|
- **Zero config setup** — auto-detects config, prompts for missing credentials on first run
|
|
29
|
-
- **Credential management** — auto-prompts for missing API keys (GitHub, Anthropic, Telegram, JIRA) and saves them
|
|
30
50
|
|
|
31
|
-
##
|
|
51
|
+
## Worker Types
|
|
32
52
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
53
|
+
| Worker | Tools | Use Case |
|
|
54
|
+
| --- | --- | --- |
|
|
55
|
+
| **Coding** | shell, files, git, GitHub, Claude Code | Write code, fix bugs, create PRs |
|
|
56
|
+
| **Browser** | web search, browse, screenshot, extract, interact | Web search, scraping, screenshots |
|
|
57
|
+
| **System** | shell, files, process, monitor, network | OS operations, monitoring, diagnostics |
|
|
58
|
+
| **DevOps** | shell, files, Docker, process, monitor, network, git | Docker, deploy, infrastructure |
|
|
59
|
+
| **Research** | web search, browse, shell, files | Deep web research and analysis |
|
|
40
60
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
For complex coding tasks, KernelBot can spawn **Claude Code CLI** as a sub-agent — giving it a dedicated coding environment with its own tool loop for writing, editing, and debugging code.
|
|
61
|
+
The orchestrator picks the right worker (or multiple workers in parallel) based on your request. You can also run `/jobs` to see what's running and `/cancel` to stop any worker.
|
|
44
62
|
|
|
45
63
|
## Tools
|
|
46
64
|
|
|
47
65
|
### File System & Shell
|
|
48
66
|
|
|
49
|
-
| Tool
|
|
50
|
-
|
|
|
51
|
-
| `execute_command` | Run any shell command (git, npm, python, etc.)
|
|
52
|
-
| `read_file`
|
|
53
|
-
| `write_file`
|
|
54
|
-
| `list_directory`
|
|
67
|
+
| Tool | Description |
|
|
68
|
+
| --- | --- |
|
|
69
|
+
| `execute_command` | Run any shell command (git, npm, python, etc.) |
|
|
70
|
+
| `read_file` | Read file contents with optional line limits |
|
|
71
|
+
| `write_file` | Write/create files, auto-creates parent directories |
|
|
72
|
+
| `list_directory` | List directory contents, optionally recursive |
|
|
55
73
|
|
|
56
74
|
### Git & GitHub
|
|
57
75
|
|
|
58
|
-
| Tool
|
|
59
|
-
|
|
|
60
|
-
| `git_clone`
|
|
61
|
-
| `git_checkout`
|
|
62
|
-
| `git_commit`
|
|
63
|
-
| `git_push`
|
|
64
|
-
| `git_diff`
|
|
65
|
-
| `github_create_pr`
|
|
66
|
-
| `github_get_pr_diff` | Get the diff of a PR
|
|
67
|
-
| `github_post_review` | Post a review on a PR
|
|
68
|
-
| `github_create_repo` | Create a new GitHub repository
|
|
69
|
-
| `github_list_prs`
|
|
70
|
-
|
|
71
|
-
### Web Browsing
|
|
72
|
-
|
|
73
|
-
| Tool
|
|
74
|
-
|
|
|
75
|
-
| `
|
|
76
|
-
| `
|
|
77
|
-
| `
|
|
78
|
-
| `
|
|
79
|
-
| `
|
|
76
|
+
| Tool | Description |
|
|
77
|
+
| --- | --- |
|
|
78
|
+
| `git_clone` | Clone a repo (`org/repo` shorthand or full URL) |
|
|
79
|
+
| `git_checkout` | Checkout or create branches |
|
|
80
|
+
| `git_commit` | Stage all changes and commit |
|
|
81
|
+
| `git_push` | Push current branch to remote |
|
|
82
|
+
| `git_diff` | Show uncommitted changes |
|
|
83
|
+
| `github_create_pr` | Create a pull request |
|
|
84
|
+
| `github_get_pr_diff` | Get the diff of a PR |
|
|
85
|
+
| `github_post_review` | Post a review on a PR |
|
|
86
|
+
| `github_create_repo` | Create a new GitHub repository |
|
|
87
|
+
| `github_list_prs` | List pull requests for a repo |
|
|
88
|
+
|
|
89
|
+
### Web Browsing & Search
|
|
90
|
+
|
|
91
|
+
| Tool | Description |
|
|
92
|
+
| --- | --- |
|
|
93
|
+
| `web_search` | Search the web and return results |
|
|
94
|
+
| `browse_website` | Navigate to a URL and extract page content (title, headings, text, links) |
|
|
95
|
+
| `screenshot_website` | Take a screenshot of a website, supports full-page and element capture |
|
|
96
|
+
| `extract_content` | Extract specific content using CSS selectors |
|
|
97
|
+
| `interact_with_page` | Click, type, scroll, and run JS on a webpage |
|
|
98
|
+
| `send_image` | Send an image/screenshot directly to the Telegram chat |
|
|
80
99
|
|
|
81
100
|
### JIRA
|
|
82
101
|
|
|
83
|
-
| Tool
|
|
84
|
-
|
|
|
85
|
-
| `jira_get_ticket`
|
|
86
|
-
| `jira_search_tickets`
|
|
87
|
-
| `jira_list_my_tickets`
|
|
88
|
-
| `jira_get_project_tickets` | Get tickets from a specific JIRA project
|
|
102
|
+
| Tool | Description |
|
|
103
|
+
| --- | --- |
|
|
104
|
+
| `jira_get_ticket` | Get details of a specific JIRA ticket |
|
|
105
|
+
| `jira_search_tickets` | Search tickets using JQL queries |
|
|
106
|
+
| `jira_list_my_tickets` | List tickets assigned to the current user |
|
|
107
|
+
| `jira_get_project_tickets` | Get tickets from a specific JIRA project |
|
|
89
108
|
|
|
90
109
|
### Docker
|
|
91
110
|
|
|
92
|
-
| Tool
|
|
93
|
-
|
|
|
94
|
-
| `docker_ps`
|
|
95
|
-
| `docker_logs`
|
|
96
|
-
| `docker_exec`
|
|
97
|
-
| `docker_compose` | Run docker compose commands
|
|
111
|
+
| Tool | Description |
|
|
112
|
+
| --- | --- |
|
|
113
|
+
| `docker_ps` | List containers |
|
|
114
|
+
| `docker_logs` | Get container logs |
|
|
115
|
+
| `docker_exec` | Execute a command inside a running container |
|
|
116
|
+
| `docker_compose` | Run docker compose commands |
|
|
98
117
|
|
|
99
118
|
### Process & System
|
|
100
119
|
|
|
101
|
-
| Tool
|
|
102
|
-
|
|
|
103
|
-
| `process_list`
|
|
104
|
-
| `kill_process`
|
|
120
|
+
| Tool | Description |
|
|
121
|
+
| --- | --- |
|
|
122
|
+
| `process_list` | List running processes, optionally filter by name |
|
|
123
|
+
| `kill_process` | Kill a process by PID or name |
|
|
105
124
|
| `service_control` | Manage systemd services (start, stop, restart, status) |
|
|
106
125
|
|
|
107
126
|
### Monitoring
|
|
108
127
|
|
|
109
|
-
| Tool
|
|
110
|
-
|
|
|
111
|
-
| `disk_usage`
|
|
112
|
-
| `memory_usage` | Show RAM usage
|
|
113
|
-
| `cpu_usage`
|
|
114
|
-
| `system_logs`
|
|
128
|
+
| Tool | Description |
|
|
129
|
+
| --- | --- |
|
|
130
|
+
| `disk_usage` | Show disk space usage |
|
|
131
|
+
| `memory_usage` | Show RAM usage |
|
|
132
|
+
| `cpu_usage` | Show CPU load |
|
|
133
|
+
| `system_logs` | Read system or application logs |
|
|
115
134
|
|
|
116
135
|
### Networking
|
|
117
136
|
|
|
118
|
-
| Tool
|
|
119
|
-
|
|
|
120
|
-
| `check_port`
|
|
121
|
-
| `curl_url`
|
|
122
|
-
| `nginx_reload` | Test nginx config and reload if valid
|
|
137
|
+
| Tool | Description |
|
|
138
|
+
| --- | --- |
|
|
139
|
+
| `check_port` | Check if a port is open and listening |
|
|
140
|
+
| `curl_url` | Make HTTP requests and return the response |
|
|
141
|
+
| `nginx_reload` | Test nginx config and reload if valid |
|
|
123
142
|
|
|
124
143
|
### Coding
|
|
125
144
|
|
|
126
|
-
| Tool
|
|
127
|
-
|
|
|
145
|
+
| Tool | Description |
|
|
146
|
+
| --- | --- |
|
|
128
147
|
| `spawn_claude_code` | Spawn Claude Code CLI for coding tasks — writing, fixing, reviewing, and scaffolding code |
|
|
129
148
|
|
|
130
149
|
## Disclaimer
|
|
@@ -151,7 +170,7 @@ That's it. On first run, KernelBot will:
|
|
|
151
170
|
4. Verify API connections
|
|
152
171
|
5. Launch the Telegram bot
|
|
153
172
|
|
|
154
|
-
You can change your AI provider/model anytime from the CLI menu (option 5).
|
|
173
|
+
You can change your AI provider/model anytime from the CLI menu (option 5) or via the `/brain` command in Telegram.
|
|
155
174
|
|
|
156
175
|
## Configuration
|
|
157
176
|
|
|
@@ -162,8 +181,10 @@ KernelBot auto-detects config from the current directory or `~/.kernelbot/`. Eve
|
|
|
162
181
|
Set these in `.env` or as system environment variables:
|
|
163
182
|
|
|
164
183
|
```text
|
|
165
|
-
#
|
|
166
|
-
ANTHROPIC_API_KEY=sk-ant-...
|
|
184
|
+
# Required — Anthropic key is always needed (orchestrator runs on Claude)
|
|
185
|
+
ANTHROPIC_API_KEY=sk-ant-...
|
|
186
|
+
|
|
187
|
+
# Worker brain key (only the one matching your chosen provider is required)
|
|
167
188
|
OPENAI_API_KEY=sk-... # for OpenAI (GPT)
|
|
168
189
|
GOOGLE_API_KEY=AIza... # for Google (Gemini)
|
|
169
190
|
GROQ_API_KEY=gsk_... # for Groq (Llama/Mixtral)
|
|
@@ -183,12 +204,25 @@ Drop a `config.yaml` in your working directory or `~/.kernelbot/` to customize b
|
|
|
183
204
|
bot:
|
|
184
205
|
name: KernelBot
|
|
185
206
|
|
|
207
|
+
# Orchestrator — always Anthropic (Claude), manages the swarm
|
|
208
|
+
orchestrator:
|
|
209
|
+
model: claude-opus-4-0-20250514
|
|
210
|
+
max_tokens: 8192
|
|
211
|
+
temperature: 0.3
|
|
212
|
+
max_tool_depth: 15
|
|
213
|
+
|
|
214
|
+
# Worker brain — your choice of provider/model for all workers
|
|
186
215
|
brain:
|
|
187
216
|
provider: anthropic # anthropic | openai | google | groq
|
|
188
217
|
model: claude-sonnet-4-20250514
|
|
189
218
|
max_tokens: 8192
|
|
190
219
|
temperature: 0.3
|
|
191
|
-
|
|
220
|
+
|
|
221
|
+
# Swarm settings
|
|
222
|
+
swarm:
|
|
223
|
+
max_concurrent_jobs: 3
|
|
224
|
+
job_timeout_seconds: 300
|
|
225
|
+
cleanup_interval_minutes: 30
|
|
192
226
|
|
|
193
227
|
telegram:
|
|
194
228
|
allowed_users: [] # empty = allow all (dev mode)
|
|
@@ -219,11 +253,40 @@ conversation:
|
|
|
219
253
|
|
|
220
254
|
## Telegram Commands
|
|
221
255
|
|
|
222
|
-
| Command
|
|
223
|
-
|
|
|
224
|
-
| `/
|
|
225
|
-
| `/
|
|
226
|
-
| `/
|
|
256
|
+
| Command | Description |
|
|
257
|
+
| --- | --- |
|
|
258
|
+
| `/brain` | Show current AI model and switch provider/model |
|
|
259
|
+
| `/skills` | Browse and activate persona skills |
|
|
260
|
+
| `/skills reset` | Clear active skill back to default |
|
|
261
|
+
| `/jobs` | List running and recent jobs |
|
|
262
|
+
| `/cancel` | Cancel running job(s) |
|
|
263
|
+
| `/context` | Show conversation context and brain info |
|
|
264
|
+
| `/clean` | Clear conversation and start fresh |
|
|
265
|
+
| `/history` | Show message count in memory |
|
|
266
|
+
| `/browse <url>` | Browse a website and get a summary |
|
|
267
|
+
| `/screenshot <url>` | Take a screenshot of a website |
|
|
268
|
+
| `/extract <url> <selector>` | Extract content using CSS selector |
|
|
269
|
+
| `/help` | Show help message |
|
|
270
|
+
|
|
271
|
+
## Skills
|
|
272
|
+
|
|
273
|
+
KernelBot comes with **35+ built-in persona skills** across 11 categories that change the agent's expertise and communication style. Use `/skills` to browse and activate them.
|
|
274
|
+
|
|
275
|
+
| Category | Examples |
|
|
276
|
+
| --- | --- |
|
|
277
|
+
| Engineering | Sr. Frontend, Sr. Backend, DevOps, Mobile, Security, Data Engineer |
|
|
278
|
+
| Design | UI/UX Designer, Graphic Designer, Product Designer |
|
|
279
|
+
| Marketing | Content Marketer, SEO Specialist, Growth Hacker, Social Media |
|
|
280
|
+
| Business | Product Manager, Business Analyst, Startup Advisor, Project Manager |
|
|
281
|
+
| Writing | Technical Writer, Copywriter, Creative Writer, Academic Writer |
|
|
282
|
+
| Data & AI | Data Scientist, ML Engineer, BI Analyst |
|
|
283
|
+
| Finance | Financial Analyst, Accountant, Crypto & DeFi Advisor |
|
|
284
|
+
| Legal | Legal Advisor, Contract Reviewer |
|
|
285
|
+
| Education | Tutor, Curriculum Designer, Language Teacher |
|
|
286
|
+
| Healthcare | Medical Researcher, Health & Wellness Advisor |
|
|
287
|
+
| Creative | Video Producer, Music Producer, Photographer |
|
|
288
|
+
|
|
289
|
+
You can also create **custom skills** with your own system prompts — type or upload a `.md` file via the `/skills` menu.
|
|
227
290
|
|
|
228
291
|
## Security
|
|
229
292
|
|
|
@@ -233,6 +296,8 @@ conversation:
|
|
|
233
296
|
- **Browser URL blocklist** — internal/private network addresses are blocked from browsing.
|
|
234
297
|
- **Audit logging** — every tool call is logged to `kernel-audit.log` with user, tool, params, result, and duration. Secrets in params are automatically redacted.
|
|
235
298
|
- **Command timeout** — shell commands are killed after 30 seconds by default.
|
|
299
|
+
- **Job timeout** — workers are automatically terminated after configurable timeout (default 300s).
|
|
300
|
+
- **Circuit breaker** — workers that fail 3 consecutive tool call iterations are stopped to prevent runaway loops.
|
|
236
301
|
|
|
237
302
|
## JIRA Integration
|
|
238
303
|
|
|
@@ -252,52 +317,62 @@ JIRA_API_TOKEN=your-api-token
|
|
|
252
317
|
|
|
253
318
|
If credentials are missing when a JIRA tool is called, KernelBot will prompt for them via Telegram.
|
|
254
319
|
|
|
255
|
-
### Available Tools
|
|
256
|
-
|
|
257
|
-
- **`jira_get_ticket`** — Fetch a single ticket by key (e.g. `PROJ-123`). Returns summary, description, status, assignee, priority, and dates.
|
|
258
|
-
- **`jira_search_tickets`** — Search using JQL (e.g. `project = PROJ AND status = "In Progress"`). Returns up to `max_results` tickets.
|
|
259
|
-
- **`jira_list_my_tickets`** — List tickets assigned to the current user (or a specified assignee).
|
|
260
|
-
- **`jira_get_project_tickets`** — List all tickets in a project, ordered by last update.
|
|
261
|
-
|
|
262
320
|
## Project Structure
|
|
263
321
|
|
|
264
322
|
```text
|
|
265
323
|
KernelBot/
|
|
266
324
|
├── bin/
|
|
267
|
-
│ └── kernel.js
|
|
325
|
+
│ └── kernel.js # Entry point + CLI menu
|
|
268
326
|
├── src/
|
|
269
|
-
│ ├── agent.js
|
|
270
|
-
│ ├──
|
|
271
|
-
│ ├──
|
|
272
|
-
│ ├──
|
|
327
|
+
│ ├── agent.js # OrchestratorAgent — swarm brain, job lifecycle, worker spawning
|
|
328
|
+
│ ├── worker.js # WorkerAgent — scoped agent loop, cancellation, circuit breaker
|
|
329
|
+
│ ├── bot.js # Telegram bot (polling, auth, commands, batching)
|
|
330
|
+
│ ├── coder.js # Claude Code CLI spawner + smart output
|
|
331
|
+
│ ├── conversation.js # Per-chat conversation history + summarization
|
|
332
|
+
│ ├── persona.js # UserPersonaManager — auto-learning user profiles
|
|
333
|
+
│ ├── intents/
|
|
334
|
+
│ │ ├── detector.js # Web search/browse intent detection
|
|
335
|
+
│ │ └── planner.js # Execution plan generation for intents
|
|
273
336
|
│ ├── prompts/
|
|
274
|
-
│ │
|
|
337
|
+
│ │ ├── orchestrator.js # Orchestrator system prompt
|
|
338
|
+
│ │ ├── workers.js # Per-worker-type system prompts
|
|
339
|
+
│ │ └── system.js # Core tool instructions
|
|
275
340
|
│ ├── providers/
|
|
276
|
-
│ │ ├── models.js
|
|
277
|
-
│ │ ├── base.js
|
|
278
|
-
│ │ ├── anthropic.js
|
|
279
|
-
│ │ ├── openai-compat.js
|
|
280
|
-
│ │ └── index.js
|
|
341
|
+
│ │ ├── models.js # Provider & model catalog
|
|
342
|
+
│ │ ├── base.js # Abstract provider interface
|
|
343
|
+
│ │ ├── anthropic.js # Anthropic (Claude) provider
|
|
344
|
+
│ │ ├── openai-compat.js # OpenAI / Gemini / Groq provider
|
|
345
|
+
│ │ └── index.js # Provider factory
|
|
281
346
|
│ ├── security/
|
|
282
|
-
│ │ ├── auth.js
|
|
283
|
-
│ │ ├── audit.js
|
|
284
|
-
│ │ └── confirm.js
|
|
347
|
+
│ │ ├── auth.js # User allowlist
|
|
348
|
+
│ │ ├── audit.js # Tool call audit logging
|
|
349
|
+
│ │ └── confirm.js # Dangerous operation detection
|
|
350
|
+
│ ├── skills/
|
|
351
|
+
│ │ ├── catalog.js # 35+ built-in persona skills
|
|
352
|
+
│ │ └── custom.js # Custom skill CRUD + unified lookups
|
|
353
|
+
│ ├── swarm/
|
|
354
|
+
│ │ ├── job.js # Job class (state machine, transitions, summary)
|
|
355
|
+
│ │ ├── job-manager.js # JobManager (EventEmitter, CRUD, cleanup, timeouts)
|
|
356
|
+
│ │ └── worker-registry.js # Worker type → tool category mapping
|
|
285
357
|
│ ├── tools/
|
|
286
|
-
│ │ ├──
|
|
287
|
-
│ │ ├──
|
|
288
|
-
│ │ ├──
|
|
289
|
-
│ │ ├──
|
|
290
|
-
│ │ ├──
|
|
291
|
-
│ │ ├──
|
|
292
|
-
│ │ ├──
|
|
293
|
-
│ │ ├──
|
|
294
|
-
│ │ ├──
|
|
295
|
-
│ │ ├──
|
|
296
|
-
│ │
|
|
358
|
+
│ │ ├── categories.js # Tool category definitions + keyword matching
|
|
359
|
+
│ │ ├── orchestrator-tools.js # dispatch_task, list_jobs, cancel_job
|
|
360
|
+
│ │ ├── os.js # File system + shell tools
|
|
361
|
+
│ │ ├── git.js # Git operations
|
|
362
|
+
│ │ ├── github.js # GitHub API (PRs, repos, reviews)
|
|
363
|
+
│ │ ├── browser.js # Web browsing + search (Puppeteer)
|
|
364
|
+
│ │ ├── docker.js # Docker management
|
|
365
|
+
│ │ ├── process.js # Process management
|
|
366
|
+
│ │ ├── monitor.js # System monitoring (CPU, RAM, disk)
|
|
367
|
+
│ │ ├── network.js # Network tools (HTTP, ports, nginx)
|
|
368
|
+
│ │ ├── coding.js # Claude Code CLI handler
|
|
369
|
+
│ │ ├── jira.js # JIRA ticket reading + search
|
|
370
|
+
│ │ ├── persona.js # User persona update tool
|
|
371
|
+
│ │ └── index.js # Tool registry + dispatcher
|
|
297
372
|
│ └── utils/
|
|
298
|
-
│ ├── config.js
|
|
299
|
-
│ ├── display.js
|
|
300
|
-
│ └── logger.js
|
|
373
|
+
│ ├── config.js # Config loading (auto-detect + prompt)
|
|
374
|
+
│ ├── display.js # CLI display (logo, spinners, banners)
|
|
375
|
+
│ └── logger.js # Winston logger
|
|
301
376
|
├── config.example.yaml
|
|
302
377
|
├── .env.example
|
|
303
378
|
└── package.json
|
|
@@ -306,13 +381,13 @@ KernelBot/
|
|
|
306
381
|
## Requirements
|
|
307
382
|
|
|
308
383
|
- Node.js 18+
|
|
309
|
-
-
|
|
310
|
-
|
|
384
|
+
- [Anthropic API key](https://console.anthropic.com/) — always required (orchestrator runs on Claude)
|
|
385
|
+
- [Telegram Bot Token](https://t.me/BotFather)
|
|
386
|
+
- Chromium/Chrome (for browser tools — installed automatically by Puppeteer)
|
|
387
|
+
- Worker brain API key (optional if using Anthropic for workers too):
|
|
311
388
|
- [OpenAI API key](https://platform.openai.com/api-keys) (GPT)
|
|
312
389
|
- [Google AI API key](https://aistudio.google.com/apikey) (Gemini)
|
|
313
390
|
- [Groq API key](https://console.groq.com/keys) (Llama/Mixtral)
|
|
314
|
-
- [Telegram Bot Token](https://t.me/BotFather)
|
|
315
|
-
- Chromium/Chrome (for browser tools — installed automatically by Puppeteer)
|
|
316
391
|
- [GitHub Token](https://github.com/settings/tokens) (optional, for GitHub tools)
|
|
317
392
|
- [JIRA API Token](https://id.atlassian.net/manage-profile/security/api-tokens) (optional, for JIRA integration)
|
|
318
393
|
- [Claude Code CLI](https://www.npmjs.com/package/@anthropic-ai/claude-code) (optional, for coding tasks)
|