aiden-runtime 3.16.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 (159) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +465 -0
  3. package/config/devos.config.json +186 -0
  4. package/config/hardware.json +9 -0
  5. package/config/model-selection.json +7 -0
  6. package/config/setup-complete.json +20 -0
  7. package/dist/api/routes/computerUse.js +112 -0
  8. package/dist/api/server.js +6870 -0
  9. package/dist/bin/npx-init.js +71 -0
  10. package/dist/coordination/commandGate.js +115 -0
  11. package/dist/coordination/livePulse.js +127 -0
  12. package/dist/core/agentLoop.js +2718 -0
  13. package/dist/core/agentShield.js +231 -0
  14. package/dist/core/aidenIdentity.js +215 -0
  15. package/dist/core/aidenPersonality.js +166 -0
  16. package/dist/core/aidenSdk.js +374 -0
  17. package/dist/core/asyncTasks.js +82 -0
  18. package/dist/core/auditTrail.js +61 -0
  19. package/dist/core/auxiliaryClient.js +114 -0
  20. package/dist/core/bgLLM.js +108 -0
  21. package/dist/core/bm25.js +68 -0
  22. package/dist/core/callbackSystem.js +64 -0
  23. package/dist/core/channels/adapter.js +6 -0
  24. package/dist/core/channels/discord.js +173 -0
  25. package/dist/core/channels/email.js +253 -0
  26. package/dist/core/channels/imessage.js +164 -0
  27. package/dist/core/channels/manager.js +96 -0
  28. package/dist/core/channels/signal.js +140 -0
  29. package/dist/core/channels/slack.js +139 -0
  30. package/dist/core/channels/twilio.js +144 -0
  31. package/dist/core/channels/webhook.js +186 -0
  32. package/dist/core/channels/whatsapp.js +185 -0
  33. package/dist/core/clarifyBus.js +75 -0
  34. package/dist/core/codeInterpreter.js +82 -0
  35. package/dist/core/computerControl.js +439 -0
  36. package/dist/core/conversationMemory.js +334 -0
  37. package/dist/core/costTracker.js +221 -0
  38. package/dist/core/cronManager.js +217 -0
  39. package/dist/core/deepKB.js +77 -0
  40. package/dist/core/doctor.js +279 -0
  41. package/dist/core/dreamEngine.js +334 -0
  42. package/dist/core/entityGraph.js +169 -0
  43. package/dist/core/eventBus.js +16 -0
  44. package/dist/core/evolutionAnalyzer.js +153 -0
  45. package/dist/core/executionLoop.js +309 -0
  46. package/dist/core/executor.js +224 -0
  47. package/dist/core/failureAnalyzer.js +166 -0
  48. package/dist/core/fastPathExpansion.js +82 -0
  49. package/dist/core/faultEngine.js +106 -0
  50. package/dist/core/featureGates.js +70 -0
  51. package/dist/core/fileIngestion.js +113 -0
  52. package/dist/core/gateway.js +97 -0
  53. package/dist/core/goalTracker.js +75 -0
  54. package/dist/core/growthEngine.js +168 -0
  55. package/dist/core/hardwareDetector.js +98 -0
  56. package/dist/core/hooks.js +45 -0
  57. package/dist/core/httpKeepalive.js +46 -0
  58. package/dist/core/hybridSearch.js +101 -0
  59. package/dist/core/importers.js +164 -0
  60. package/dist/core/instinctSystem.js +223 -0
  61. package/dist/core/knowledgeBase.js +351 -0
  62. package/dist/core/learningMemory.js +121 -0
  63. package/dist/core/lessonsBrowser.js +125 -0
  64. package/dist/core/licenseManager.js +399 -0
  65. package/dist/core/logBuffer.js +85 -0
  66. package/dist/core/machineId.js +87 -0
  67. package/dist/core/mcpClient.js +442 -0
  68. package/dist/core/memoryDistiller.js +165 -0
  69. package/dist/core/memoryExtractor.js +212 -0
  70. package/dist/core/memoryIds.js +213 -0
  71. package/dist/core/memoryPreamble.js +113 -0
  72. package/dist/core/memoryQuery.js +136 -0
  73. package/dist/core/memoryRecall.js +140 -0
  74. package/dist/core/memoryStrategy.js +201 -0
  75. package/dist/core/messageValidator.js +85 -0
  76. package/dist/core/modelDiscovery.js +108 -0
  77. package/dist/core/modelRouter.js +118 -0
  78. package/dist/core/morningBriefing.js +203 -0
  79. package/dist/core/multiGoalValidator.js +51 -0
  80. package/dist/core/parallelExecutor.js +43 -0
  81. package/dist/core/passiveSkillObserver.js +204 -0
  82. package/dist/core/paths.js +57 -0
  83. package/dist/core/patternDetector.js +83 -0
  84. package/dist/core/planResponseRepair.js +64 -0
  85. package/dist/core/planTool.js +111 -0
  86. package/dist/core/playwrightBridge.js +356 -0
  87. package/dist/core/pluginSystem.js +121 -0
  88. package/dist/core/privateMode.js +85 -0
  89. package/dist/core/reactLoop.js +156 -0
  90. package/dist/core/recipeEngine.js +166 -0
  91. package/dist/core/responseCache.js +128 -0
  92. package/dist/core/runSandbox.js +132 -0
  93. package/dist/core/sandboxRunner.js +200 -0
  94. package/dist/core/scheduler.js +543 -0
  95. package/dist/core/secretScanner.js +49 -0
  96. package/dist/core/semanticMemory.js +223 -0
  97. package/dist/core/sessionMemory.js +259 -0
  98. package/dist/core/sessionRouter.js +91 -0
  99. package/dist/core/sessionSearch.js +163 -0
  100. package/dist/core/setupWizard.js +225 -0
  101. package/dist/core/skillImporter.js +303 -0
  102. package/dist/core/skillLibrary.js +144 -0
  103. package/dist/core/skillLoader.js +471 -0
  104. package/dist/core/skillTeacher.js +352 -0
  105. package/dist/core/skillValidator.js +210 -0
  106. package/dist/core/skillWriter.js +384 -0
  107. package/dist/core/slashAsTool.js +226 -0
  108. package/dist/core/spawnManager.js +197 -0
  109. package/dist/core/statusVerbs.js +43 -0
  110. package/dist/core/swarmManager.js +109 -0
  111. package/dist/core/taskQueue.js +119 -0
  112. package/dist/core/taskRecovery.js +128 -0
  113. package/dist/core/taskState.js +168 -0
  114. package/dist/core/telegramBot.js +152 -0
  115. package/dist/core/todoManager.js +70 -0
  116. package/dist/core/toolNameRepair.js +71 -0
  117. package/dist/core/toolRegistry.js +2730 -0
  118. package/dist/core/tools/calendarTool.js +98 -0
  119. package/dist/core/tools/companyFilingsTool.js +98 -0
  120. package/dist/core/tools/gmailTool.js +87 -0
  121. package/dist/core/tools/marketDataTool.js +135 -0
  122. package/dist/core/tools/socialResearchTool.js +121 -0
  123. package/dist/core/truthCheck.js +57 -0
  124. package/dist/core/updateChecker.js +74 -0
  125. package/dist/core/userCognitionProfile.js +238 -0
  126. package/dist/core/userProfile.js +341 -0
  127. package/dist/core/version.js +5 -0
  128. package/dist/core/visionAnalyze.js +161 -0
  129. package/dist/core/voice/audio.js +187 -0
  130. package/dist/core/voice/stt.js +226 -0
  131. package/dist/core/voice/tts.js +310 -0
  132. package/dist/core/voiceInput.js +118 -0
  133. package/dist/core/voiceOutput.js +130 -0
  134. package/dist/core/webSearch.js +326 -0
  135. package/dist/core/workflowTracker.js +72 -0
  136. package/dist/core/workspaceMemory.js +54 -0
  137. package/dist/core/youtubeTranscript.js +224 -0
  138. package/dist/integrations/computerUse/apiRegistry.js +113 -0
  139. package/dist/integrations/computerUse/screenAgent.js +203 -0
  140. package/dist/integrations/computerUse/visionLoop.js +296 -0
  141. package/dist/memory/memoryLayers.js +143 -0
  142. package/dist/providers/boa.js +93 -0
  143. package/dist/providers/cerebras.js +70 -0
  144. package/dist/providers/custom.js +89 -0
  145. package/dist/providers/gemini.js +82 -0
  146. package/dist/providers/groq.js +92 -0
  147. package/dist/providers/index.js +149 -0
  148. package/dist/providers/nvidia.js +70 -0
  149. package/dist/providers/ollama.js +99 -0
  150. package/dist/providers/openrouter.js +74 -0
  151. package/dist/providers/router.js +497 -0
  152. package/dist/providers/types.js +6 -0
  153. package/dist/security/browserVault.js +129 -0
  154. package/dist/security/dataGuard.js +89 -0
  155. package/dist/tools/eonetTool.js +72 -0
  156. package/dist/types/computerUse.js +2 -0
  157. package/dist/types/executor.js +2 -0
  158. package/dist-bundle/cli.js +357859 -0
  159. package/package.json +256 -0
package/README.md ADDED
@@ -0,0 +1,465 @@
1
+ ```
2
+ █████╗ ██╗██████╗ ███████╗███╗ ██╗
3
+ ██╔══██╗██║██╔══██╗██╔════╝████╗ ██║
4
+ ███████║██║██║ ██║█████╗ ██╔██╗ ██║
5
+ ██╔══██║██║██║ ██║██╔══╝ ██║╚██╗██║
6
+ ██║ ██║██║██████╔╝███████╗██║ ╚████║
7
+ ╚═╝ ╚═╝╚═╝╚═════╝ ╚══════╝╚═╝ ╚═══╝
8
+
9
+ local-first AI operating system
10
+ 1,400+ skills · 80+ tools · 15+ providers · AGPL-3.0
11
+ Windows · Linux · WSL · macOS (API mode)
12
+ ```
13
+
14
+ <p align="center">
15
+ <a href="https://github.com/taracodlabs/aiden-releases/releases/latest"><img src="https://img.shields.io/github/v/release/taracodlabs/aiden-releases?color=f97316&label=version" alt="Latest version" /></a>
16
+ <a href="https://github.com/taracodlabs/aiden-releases/releases"><img src="https://img.shields.io/github/downloads/taracodlabs/aiden-releases/total?color=f97316&label=downloads" alt="Downloads" /></a>
17
+ <a href="https://discord.gg/gMZ3hUnQTm"><img src="https://img.shields.io/badge/chat-discord-7289da?logo=discord&logoColor=white" alt="Discord" /></a>
18
+ <a href="./LICENSE"><img src="https://img.shields.io/badge/license-AGPL--3.0-orange" alt="License: AGPL-3.0" /></a>
19
+ <a href="https://github.com/taracodlabs/aiden/stargazers"><img src="https://img.shields.io/github/stars/taracodlabs/aiden?style=flat&color=f9d71c" alt="Stars" /></a>
20
+ </p>
21
+
22
+ <p align="center">
23
+ <a href="https://aiden.taracod.com"><b>Website</b></a> &nbsp;·&nbsp;
24
+ <a href="https://aiden.taracod.com/contact"><b>Contact</b></a> &nbsp;·&nbsp;
25
+ <a href="https://discord.gg/gMZ3hUnQTm"><b>Discord</b></a> &nbsp;·&nbsp;
26
+ <a href="https://github.com/taracodlabs/aiden-releases/releases/latest"><b>Download</b></a>
27
+ </p>
28
+
29
+ ---
30
+
31
+ > **v3.15 — Reliable browser automation · LocalSend · Security scanner · OSS contributor infrastructure**
32
+ > Browser tools are now built on a centralised Playwright session (`playwrightBridge.ts`) — persistent context, idle-close, and a new `browser_get_url` tool. Send files to any device on your LAN with the LocalSend skill. Opt-in Decepticon security scanner. Full CONTRIBUTING guide, issue templates, public roadmap, and good-first-issues for contributors. See [changelog](#changelog) below.
33
+
34
+ ---
35
+
36
+ Aiden is a local-first AI operating system. It runs entirely on
37
+ your machine — no cloud account required, no telemetry, no data leaving your
38
+ hardware unless you configure a cloud provider. It ships with a signed Windows
39
+ installer, and runs in headless API mode on Linux, WSL, and macOS. Features:
40
+ 1,400+ composable skills, 80+ built-in tools, a 6-layer memory architecture,
41
+ self-healing provider routing, and the ability to control your screen, browse
42
+ the web, run code, send emails, manage files, and hold a full conversation —
43
+ offline via Ollama.
44
+
45
+ ## Platform support
46
+
47
+ | Platform | GUI app | API + CLI | Skills available |
48
+ |---|---|---|---|
49
+ | **Windows 10/11** | ✅ signed installer | ✅ | All 1,400+ (including Windows-only skills) |
50
+ | **Linux** | — | ✅ headless | ~1380 (Windows-only skills auto-skipped) |
51
+ | **WSL 2** | — | ✅ headless | ~1380 (Windows-only skills auto-skipped) |
52
+ | **macOS** | — | ✅ headless | ~1380 (Windows-only skills auto-skipped) |
53
+
54
+ Windows-only skills (clipboard history, Defender, OneNote, Outlook COM, registry, etc.) are tagged `platform: windows` and are silently skipped on other platforms at load time.
55
+
56
+ ## Quick Start
57
+
58
+ ### Prerequisites
59
+ - Node.js 18+
60
+ - Git
61
+ - Ollama (optional, for offline mode): [ollama.ai](https://ollama.ai)
62
+
63
+ ### Windows — one-line install
64
+
65
+ ```powershell
66
+ irm aiden.taracod.com/install.ps1 | iex
67
+ ```
68
+
69
+ Or [download the signed installer](https://github.com/taracodlabs/aiden-releases/releases/latest) manually. Windows 10/11, 64-bit, ~500 MB disk space.
70
+
71
+ ### Linux / WSL / macOS — one-line install
72
+
73
+ ```bash
74
+ curl -fsSL aiden.taracod.com/install.sh | bash
75
+ ```
76
+
77
+ ### Manual install (all platforms)
78
+
79
+ ```bash
80
+ git clone https://github.com/taracodlabs/aiden.git
81
+ cd aiden
82
+ npm install
83
+ cp .env.example .env
84
+ # Edit .env — add at minimum one API key (Groq is free: console.groq.com)
85
+ ```
86
+
87
+ ### Run
88
+
89
+ ```bash
90
+ # Terminal 1 — build and start server
91
+ npm run build
92
+ npm start
93
+
94
+ # Terminal 2 — start CLI
95
+ npm run cli
96
+ ```
97
+
98
+ ### After pulling updates
99
+
100
+ ```bash
101
+ git pull
102
+ npm run build
103
+ npm start
104
+ ```
105
+
106
+ ### Uninstall
107
+
108
+ **Windows**
109
+ Open *Settings → Apps* (or *Control Panel → Programs*) and uninstall **Aiden**.
110
+ To also remove user data:
111
+ ```powershell
112
+ Remove-Item -Recurse -Force "$env:APPDATA\aiden"
113
+ Remove-Item -Recurse -Force "$env:LOCALAPPDATA\aiden"
114
+ ```
115
+
116
+ **Linux / macOS / WSL**
117
+ ```bash
118
+ curl -fsSL aiden.taracod.com/uninstall.sh | bash
119
+ ```
120
+ Or manually:
121
+ ```bash
122
+ rm -rf ~/.local/share/aiden ~/.config/aiden
123
+ npm uninstall -g devos-ai # if installed via npm
124
+ ```
125
+
126
+ ### Minimum .env to get started
127
+
128
+ ```
129
+ GROQ_API_KEY=your_key_here # free at console.groq.com/keys
130
+ ```
131
+
132
+ Set `AIDEN_HEADLESS=true` to suppress the Electron GUI when running the packaged app.
133
+
134
+ ---
135
+
136
+ ## Troubleshooting
137
+
138
+ **"Cannot find module" or TypeScript errors**
139
+ ```bash
140
+ npm run build # always rebuild after git pull
141
+ ```
142
+
143
+ **"npm run serve" not found**
144
+ There is no `serve` script. Use `npm start` instead.
145
+
146
+ **Server not responding**
147
+ ```bash
148
+ # Check if server is running on port 4200
149
+ netstat -ano | findstr :4200 # Windows
150
+ lsof -i :4200 # Linux/macOS
151
+ ```
152
+
153
+ **Ollama not connecting**
154
+ ```bash
155
+ ollama serve # make sure Ollama is running
156
+ ollama pull qwen2.5:7b # pull your chosen model
157
+ ```
158
+
159
+ **Changing Ollama model or inference settings** (no recompile needed — edit `.env`):
160
+ ```
161
+ OLLAMA_MODEL=qwen2.5:7b
162
+ OLLAMA_TEMPERATURE=0.3
163
+ OLLAMA_CONTEXT_LENGTH=4096
164
+ OLLAMA_NUM_GPU=99
165
+ ```
166
+
167
+ **Use with any OpenAI client (Open WebUI, Chatbox, Cursor, etc.)**
168
+ ```
169
+ Base URL: http://localhost:4200
170
+ API Key: none required
171
+ Model: aiden-3.13
172
+ ```
173
+
174
+ ## Screenshots
175
+
176
+ ### Terminal (TUI)
177
+
178
+ ![TUI](docs/images/tui.png)
179
+
180
+ Full command palette, 1,400+ skills, 80+ tools, automatic provider routing (Groq → BOA → Ollama). Runs in any terminal.
181
+
182
+ ### Desktop app
183
+
184
+ ![Desktop](docs/images/dashboard.png)
185
+
186
+ Full chat interface with live activity panel. Local-first, connects to Ollama or any of 15+ cloud providers via your own API key.
187
+
188
+ ### Memory graph
189
+
190
+ ![Memory graph](docs/images/memory-graph.png)
191
+
192
+ 6-layer memory visualized — every conversation, task, and learned pattern becomes a node in the knowledge graph. Fully local, persisted to disk, searchable.
193
+
194
+ ---
195
+
196
+ ## Features
197
+
198
+ | Category | What Aiden does |
199
+ |---|---|
200
+ | **Inference & providers** | Local Ollama (Llama 3, Mistral, Qwen, Gemma, Phi…) with optional cloud fallback to OpenAI, Anthropic, Groq, Cerebras, NVIDIA NIM, OpenRouter, and more — 15+ providers including custom OpenAI-compatible endpoints |
201
+ | **80+ tools** | Web search, file read/write, shell execution, Playwright browser automation (`open_browser`, `browser_click`, `browser_type`, `browser_extract`, `browser_get_url`), screen capture & OCR, calendar, email (IMAP/SMTP), code execution sandbox, clipboard, LocalSend LAN transfer, system info |
202
+ | **1,400+ skills** | Composable plugins each with a `SKILL.md` prompt, tool implementations, and optional sandbox runner — install per-session or globally. Includes: LocalSend (AirDrop-style LAN transfer), Decepticon security scanner (opt-in), and more |
203
+ | **Subagent swarm** | Spawn N parallel agents on any task; vote, merge, or pick the best result automatically |
204
+ | **6-layer memory** | Episodic (in-context), BM25 keyword, vector semantic, procedural (skill), goal tracking, and `LESSONS.md` permanent-failure moat that grows every session |
205
+ | **Voice** | Speech-to-text (Groq → OpenAI → local Whisper.cpp) + text-to-speech (Edge TTS → ElevenLabs → Windows SAPI); full offline voice loop |
206
+ | **Channel adapters** | Discord, Slack, Telegram, WhatsApp, Email, Webhook, Twilio — any channel triggers the same agent loop |
207
+ | **Computer use** | Screenshots, screen state reader, GUI automation via keyboard/mouse when asked — full OS control mode |
208
+
209
+ ---
210
+
211
+ ## Architecture
212
+
213
+ ```
214
+ User input (any channel)
215
+
216
+
217
+ ┌─────────────┐
218
+ │ Planner │ ← breaks task into steps
219
+ └──────┬──────┘
220
+
221
+
222
+ ┌─────────────┐ ┌──────────────────┐
223
+ │ Agent loop │────▶│ Tool dispatcher │──▶ 80+ tools
224
+ │ agentLoop │ └──────────────────┘
225
+ └──────┬──────┘
226
+
227
+
228
+ ┌─────────────────────────────────┐
229
+ │ Memory (6 layers) │
230
+ │ episodic · BM25 · vector · │
231
+ │ procedural · goal · LESSONS.md │
232
+ └─────────────────────────────────┘
233
+
234
+
235
+ ┌─────────────┐
236
+ │ Provider │ ← self-healing chain, 15+ providers
237
+ │ router │
238
+ └─────────────┘
239
+
240
+
241
+ Response (streamed to originating channel)
242
+ ```
243
+
244
+ See [ARCHITECTURE.md](ARCHITECTURE.md) for a full layer-by-layer breakdown, data flow diagrams, and the skill system design.
245
+
246
+ ---
247
+
248
+ ## Configuration
249
+
250
+ Copy `.env.example` to `.env` in the Aiden data directory.
251
+
252
+ ```bash
253
+ cp .env.example .env
254
+ ```
255
+
256
+ Key environment variables:
257
+
258
+ | Variable | Default | Notes |
259
+ |---|---|---|
260
+ | `OLLAMA_HOST` | `http://127.0.0.1:11434` | Override if Ollama runs on a different host/port |
261
+ | `OLLAMA_MODEL` | `mistral-nemo:12b` | Default chat model |
262
+ | `ANTHROPIC_API_KEY` | — | Optional cloud fallback |
263
+ | `OPENAI_API_KEY` | — | Optional cloud fallback |
264
+ | `GROQ_API_KEY` | — | Free tier: fast Llama 3 inference |
265
+ | `DAILY_BUDGET_USD` | `5.00` | Hard cap on daily cloud API spend |
266
+
267
+ See `.env.example` for the full list of ~90 variables covering voice, messaging integrations, search, computer use, and more.
268
+
269
+ ---
270
+
271
+ ## Use with any OpenAI client
272
+
273
+ Aiden exposes an OpenAI-compatible API at `localhost:4200`. Point any OpenAI client at Aiden to get the full 89-tool agent instead of raw GPT:
274
+
275
+ | Setting | Value |
276
+ |---|---|
277
+ | **Base URL** | `http://localhost:4200` |
278
+ | **API Key** | *(none required locally)* |
279
+ | **Model** | `aiden-3.13` |
280
+
281
+ Works with: **Open WebUI** · **LibreChat** · **Chatbox** · **Continue.dev** · **Cursor** · **TypingMind** · any app using the OpenAI SDK.
282
+
283
+ ```python
284
+ # Python example — zero config
285
+ from openai import OpenAI
286
+ client = OpenAI(base_url="http://localhost:4200", api_key="none")
287
+ response = client.chat.completions.create(
288
+ model="aiden-3.13",
289
+ messages=[{"role": "user", "content": "search news about AI agents"}]
290
+ )
291
+ print(response.choices[0].message.content)
292
+ ```
293
+
294
+ Optional: set `AIDEN_API_KEY=your-secret` in `.env` to require Bearer token authentication.
295
+
296
+ ---
297
+
298
+ ## Security & Sandbox
299
+
300
+ Aiden includes an opt-in Docker sandbox backend that runs `shell_exec` and `run_python` tool calls inside isolated containers instead of directly on the host.
301
+
302
+ ### Requirements
303
+
304
+ - [Docker Desktop](https://www.docker.com/products/docker-desktop/) (Windows/macOS) or Docker Engine (Linux)
305
+
306
+ ### Modes
307
+
308
+ | `AIDEN_SANDBOX_MODE` | Behaviour |
309
+ |---|---|
310
+ | `off` *(default)* | Tools run on the host — no Docker required |
311
+ | `auto` | Try Docker first; silently fall back to host if Docker is unavailable |
312
+ | `strict` | Require Docker — error if Docker is not available |
313
+
314
+ ### Enable
315
+
316
+ ```bash
317
+ # In .env
318
+ AIDEN_SANDBOX_MODE=auto
319
+ ```
320
+
321
+ Or toggle live from the Aiden CLI without restarting:
322
+
323
+ ```
324
+ /sandbox auto # switch to auto mode
325
+ /sandbox strict # require Docker
326
+ /sandbox off # disable
327
+ /sandbox status # show current mode + Docker availability
328
+ /sandbox build # pre-build the container image
329
+ ```
330
+
331
+ ### What the container provides
332
+
333
+ - `--network=none` — no outbound network access (configurable per-call)
334
+ - `--memory=512m --cpus=1` — hard resource caps
335
+ - `--read-only --tmpfs /tmp` — immutable FS, only `/tmp` is writable
336
+ - `--rm` — container removed immediately after each tool call
337
+ - Host `workspace/` bind-mounted at `/workspace` so results are accessible
338
+
339
+ ---
340
+
341
+ ## Contributing
342
+
343
+ Contributions are welcome — see [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide.
344
+
345
+ - Bug fixes and new skills are the easiest entry points
346
+ - All contributors sign the [CLA](.github/CLA.md) once via PR comment
347
+ - Follow [Conventional Commits](https://www.conventionalcommits.org/)
348
+ - Run `npx tsc --noEmit` before opening a PR
349
+
350
+ ---
351
+
352
+ ## Resources
353
+
354
+ | | |
355
+ |---|---|
356
+ | **Download installer** | [Latest release](https://github.com/taracodlabs/aiden-releases/releases/latest) |
357
+ | **Releases & changelog** | [github.com/taracodlabs/aiden-releases](https://github.com/taracodlabs/aiden-releases) |
358
+ | **License** | AGPL-3.0 core · Apache-2.0 skills |
359
+
360
+ ---
361
+
362
+ ## Changelog
363
+
364
+ ### v3.15.0 — 2026-04-28
365
+
366
+ **Browser & Automation**
367
+ - Centralised Playwright session (`core/playwrightBridge.ts`) — single persistent Chromium context shared across all browser tools, idle auto-close after 5 min, clean shutdown on SIGINT/SIGTERM
368
+ - `browser_get_url` — new tool to read the URL currently loaded in the browser
369
+ - All browser tools now in `ALLOWED_TOOLS` and `NO_RETRY_TOOLS`; `send_file_local` / `receive_file_local` added to planner allow-list
370
+
371
+ **Community & OSS**
372
+ - `CONTRIBUTING.md`, issue templates (bug, feature, skill submission), CLA workflow
373
+ - Public roadmap (`docs/ROADMAP.md`), architecture docs (`docs/ARCHITECTURE.md`), skill development guide
374
+ - GitHub labels automated + 5 good-first-issues pinned
375
+
376
+ **New skills**
377
+ - **LocalSend** — AirDrop-style LAN file transfer (`send_file_local` / `receive_file_local`); works over WiFi with no cloud
378
+ - **Security scanner** — opt-in Decepticon integration with safety guards for scanning your own servers
379
+
380
+ **Security**
381
+ - 9 npm audit vulnerabilities resolved (safe + vitest chain)
382
+ - Security headers + rate limiting on `aiden.taracod.com` landing worker (CSP, HSTS, X-Frame-Options)
383
+
384
+ ---
385
+
386
+ ### v3.14.0 — 2026-04-27
387
+
388
+ **Ecosystem & Interoperability**
389
+ - OpenAI-compatible API — `/v1/chat/completions` + `/v1/models`. Point Open WebUI, LibreChat, Cursor, or any OpenAI SDK at `localhost:4200` and get Aiden's full 89-tool agent (not just raw LLM inference)
390
+ - agentskills.io compatibility — skills now ship with `skill.json` manifest. Compatible with Hermes, OpenClaw, and any agentskills.io agent. 1,515 existing skills backfilled automatically
391
+ - Streaming tool output — shell commands, Python scripts, and browser extraction stream live progress lines as they execute. Set `AIDEN_SHOW_TOOL_OUTPUT=false` to suppress
392
+
393
+ ---
394
+
395
+ ### v3.13.0 — 2026-04-27
396
+
397
+ **Community & Intelligence**
398
+ - Public skill registry — `/install <skill>` pulls from [skills.taracod.com](https://skills.taracod.com); browse with `/skills registry <query>`; publish with `/publish <skill>`
399
+ - Deep GEPA — learns from failures, not just successes; `/failed` analyzes the exchange trace, writes a permanent lesson to `LESSONS.md`, degrades responsible skill confidence; skills failing 3× are auto-deprecated
400
+ - Honcho user modeling — structured cross-session profile (identity, projects, goals, preferences); only the relevant slice injected per query; view and edit with `/profile`
401
+ - Docker sandbox — opt-in sandboxed `shell_exec` and `run_python` execution; `AIDEN_SANDBOX_MODE=auto|strict|off`; containers run `--network=none --memory=512m --cpus=1 --read-only`
402
+ - GitHub CI/CD — TypeScript type-check + full build + secret scan on every PR to main
403
+ - CODEOWNERS — sensitive files auto-request maintainer review on every PR
404
+ - Sponsor button — Razorpay + GitHub Sponsors
405
+
406
+ ---
407
+
408
+ ### v3.12.0 — 2026-04-26
409
+
410
+ **Memory & Agents**
411
+ - Post-task skill writer (GEPA-lite) — writes a new skill after every multi-step success
412
+ - Session-end memory distillation — 5–15 durable facts extracted per session
413
+ - Progressive token budget — tool names only; schema loaded on demand
414
+ - Real parallel subagents — isolated context, LLM synthesis pass
415
+ - Streaming verbs — "Pondering…", "Hunting…" in real time
416
+ - Real scheduler — `remind me in N minutes` actually waits
417
+ - Path C-lite — YouTube/Google/DDG/Bing search + click first result
418
+ - Electron auto-updater
419
+ - Identity honesty — transparent about inference provider
420
+ - Capacity fallback — auto-switches provider on 503/rate-limit
421
+
422
+ ---
423
+
424
+ ### v3.11.0 — 2026-04-25
425
+
426
+ **Custom provider routing**
427
+ - Full support for custom OpenAI-compatible endpoints via `customProviders` in `devos.config.json` — add any endpoint with a `baseUrl`, `apiKey`, and `model`; no code changes required
428
+ - Fixed silent Groq fallback bug in `callLLM`: custom providers now correctly route to their configured `baseUrl` instead of falling back to the Groq URL
429
+ - Fixed `raceProviders` pin-first logic: `primaryProvider` is now resolved from `customProviders` list when not found in `providers.apis`
430
+ - Fixed health/status endpoint (`/api/providers`) to include custom providers in the returned list, tier-sorted
431
+
432
+ **BayOfAssets Claude Haiku 4.5 as default primary**
433
+ - Swapped default primary provider to BayOfAssets Claude Haiku 4.5 (`claude-haiku-4-5`) at tier 1
434
+ - Groq and Gemini remain as tier-2 fallback chain
435
+
436
+ **Memory & greeting**
437
+ - Fixed `buildGreetingPreamble` double-label bug: `"Active goals: Active goals:\n..."` → compact single-line goal titles
438
+ - Added empty-string guard on greeting reply: blank preamble no longer produces `"Currently tracking: . What do you need?"`
439
+
440
+ ---
441
+
442
+ ### v3.10.0 — 2026-04-09
443
+
444
+ See [releases page](https://github.com/taracodlabs/aiden-releases/releases) for older changelogs.
445
+
446
+ ---
447
+
448
+ ## License
449
+
450
+ | Component | License |
451
+ |---|---|
452
+ | Core (`src/`, `cli/`, `api/`, `core/`, `providers/`, `dashboard-next/`) | [AGPL-3.0-only](LICENSE) |
453
+ | Skills (`skills/`) | [Apache-2.0](LICENSE-SKILLS.md) |
454
+
455
+ ## Commercial use
456
+
457
+ Aiden's core is **AGPL-3.0**. You can self-host, modify, and study it freely. Embedding it in a commercial product or offering it as a hosted service requires either releasing your modifications under AGPL-3.0 or purchasing a commercial license.
458
+
459
+ Skills in `skills/` are **Apache-2.0** and can be used in commercial products without copyleft obligations.
460
+
461
+ For commercial licensing and enterprise deployments: **[aiden.taracod.com/contact?type=enterprise](https://aiden.taracod.com/contact?type=enterprise)**
462
+
463
+ ---
464
+
465
+ Built by [Taracod](https://taracod.com) · Built by Shiva Deore · AGPL-3.0
@@ -0,0 +1,186 @@
1
+ {
2
+ "user": {
3
+ "name": "shiva"
4
+ },
5
+ "model": {
6
+ "active": "groq-1",
7
+ "activeModel": "llama-3.3-70b-versatile"
8
+ },
9
+ "providers": {
10
+ "ollama": {
11
+ "enabled": true,
12
+ "models": []
13
+ },
14
+ "apis": [
15
+ {
16
+ "model": "gemini-3-flash",
17
+ "enabled": true,
18
+ "rateLimited": false,
19
+ "usageCount": 59,
20
+ "name": "boa-1",
21
+ "provider": "boa",
22
+ "key": "boa-5a949b90-094c-4f35-a6ae-3fab8acc42aa"
23
+ },
24
+ {
25
+ "model": "llama-3.3-70b-versatile",
26
+ "enabled": true,
27
+ "rateLimited": false,
28
+ "usageCount": 30,
29
+ "name": "groq-1",
30
+ "provider": "groq",
31
+ "key": "env:GROQ_API_KEY"
32
+ },
33
+ {
34
+ "model": "llama-3.3-70b-versatile",
35
+ "enabled": true,
36
+ "rateLimited": false,
37
+ "usageCount": 61,
38
+ "name": "groq-2",
39
+ "provider": "groq",
40
+ "key": "env:GROQ_API_KEY_2"
41
+ },
42
+ {
43
+ "model": "llama-3.3-70b-versatile",
44
+ "enabled": true,
45
+ "rateLimited": false,
46
+ "usageCount": 35,
47
+ "name": "groq-3",
48
+ "provider": "groq",
49
+ "key": "env:GROQ_API_KEY_3"
50
+ },
51
+ {
52
+ "model": "llama-3.3-70b-versatile",
53
+ "enabled": true,
54
+ "rateLimited": false,
55
+ "usageCount": 10,
56
+ "name": "groq-4",
57
+ "provider": "groq",
58
+ "key": "env:GROQ_API_KEY_4"
59
+ },
60
+ {
61
+ "model": "gemini-2.5-flash",
62
+ "enabled": true,
63
+ "rateLimited": false,
64
+ "usageCount": 16,
65
+ "name": "gemini-1",
66
+ "provider": "gemini",
67
+ "key": "env:GEMINI_API_KEY"
68
+ },
69
+ {
70
+ "model": "gemini-2.5-flash",
71
+ "enabled": true,
72
+ "rateLimited": false,
73
+ "usageCount": 9,
74
+ "name": "gemini-2",
75
+ "provider": "gemini",
76
+ "key": "env:GEMINI_API_KEY_2"
77
+ },
78
+ {
79
+ "model": "gemini-2.5-flash",
80
+ "enabled": true,
81
+ "rateLimited": false,
82
+ "usageCount": 9,
83
+ "name": "gemini-3",
84
+ "provider": "gemini",
85
+ "key": "env:GEMINI_API_KEY_3"
86
+ },
87
+ {
88
+ "model": "gemini-2.5-flash",
89
+ "enabled": true,
90
+ "rateLimited": false,
91
+ "usageCount": 9,
92
+ "name": "gemini-4",
93
+ "provider": "gemini",
94
+ "key": "env:GEMINI_API_KEY_4"
95
+ },
96
+ {
97
+ "model": "anthropic/claude-3.5-haiku",
98
+ "enabled": true,
99
+ "rateLimited": false,
100
+ "usageCount": 15,
101
+ "name": "openrouter-1",
102
+ "provider": "openrouter",
103
+ "key": "env:OPENROUTER_API_KEY"
104
+ },
105
+ {
106
+ "model": "anthropic/claude-3.5-haiku",
107
+ "enabled": true,
108
+ "rateLimited": false,
109
+ "usageCount": 9,
110
+ "name": "openrouter-2",
111
+ "provider": "openrouter",
112
+ "key": "env:OPENROUTER_API_KEY_2"
113
+ },
114
+ {
115
+ "model": "anthropic/claude-3.5-haiku",
116
+ "enabled": true,
117
+ "rateLimited": false,
118
+ "usageCount": 9,
119
+ "name": "openrouter-3",
120
+ "provider": "openrouter",
121
+ "key": "env:OPENROUTER_API_KEY_3"
122
+ },
123
+ {
124
+ "model": "anthropic/claude-3.5-haiku",
125
+ "enabled": true,
126
+ "rateLimited": false,
127
+ "usageCount": 8,
128
+ "name": "openrouter-4",
129
+ "provider": "openrouter",
130
+ "key": "env:OPENROUTER_API_KEY_4"
131
+ },
132
+ {
133
+ "model": "gpt-4o-mini",
134
+ "enabled": false,
135
+ "rateLimited": false,
136
+ "usageCount": 1,
137
+ "name": "boa-2",
138
+ "provider": "boa",
139
+ "key": "boa-5a949b90-094c-4f35-a6ae-3fab8acc42aa"
140
+ }
141
+ ]
142
+ },
143
+ "onboardingComplete": true,
144
+ "telegram": {
145
+ "enabled": false,
146
+ "botToken": "",
147
+ "allowedChatIds": [],
148
+ "pollingInterval": 1000
149
+ },
150
+ "routing": {
151
+ "mode": "auto",
152
+ "fallbackToOllama": true
153
+ },
154
+ "ollama": {
155
+ "fallbackModels": [],
156
+ "baseUrl": "http://localhost:11434",
157
+ "model": "gemma4:e4b",
158
+ "plannerModel": "gemma4:e4b",
159
+ "coderModel": "qwen2.5-coder:7b",
160
+ "fastModel": "llama3.2:latest"
161
+ },
162
+ "customProviders": [
163
+ {
164
+ "id": "bayofassets-haiku",
165
+ "displayName": "BayOfAssets Haiku 4.5",
166
+ "baseUrl": "https://api.bayofassets.com/v1/chat/completions",
167
+ "apiKey": "boa-dd14fba0-cdee-4247-ba03-90de01674c06",
168
+ "model": "claude-haiku-4-5",
169
+ "enabled": false,
170
+ "tier": 1
171
+ },
172
+ {
173
+ "id": "bayofassets",
174
+ "displayName": "Bay of Assets",
175
+ "baseUrl": "https://api.bayofassets.com/v1",
176
+ "apiKey": "boa-5a949b90-094c-4f35-a6ae-3fab8acc42aa",
177
+ "model": "gemini-3-flash",
178
+ "enabled": false,
179
+ "tier": 2
180
+ }
181
+ ],
182
+ "cli": {
183
+ "theme": "ember"
184
+ },
185
+ "primaryProvider": "groq-1"
186
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "gpu": "NVIDIA GeForce GTX 1060 6GB",
3
+ "vramGB": 6,
4
+ "ramGB": 16,
5
+ "platform": "windows",
6
+ "cudaAvailable": true,
7
+ "appleSilicon": false,
8
+ "detectedAt": "2026-04-27T17:24:32.210Z"
9
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "chat": "phi3:mini",
3
+ "code": "phi3:mini",
4
+ "vision": "phi3:mini",
5
+ "reasoning": "phi3:mini",
6
+ "embedding": "phi3:mini"
7
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "complete": true,
3
+ "setupAt": "2026-04-21T13:12:59.928Z",
4
+ "hardware": {
5
+ "gpu": "NVIDIA GeForce GTX 1060 6GB",
6
+ "vramGB": 6,
7
+ "ramGB": 32,
8
+ "platform": "windows",
9
+ "cudaAvailable": true,
10
+ "appleSilicon": false,
11
+ "detectedAt": "2026-04-21T12:58:38.175Z"
12
+ },
13
+ "models": {
14
+ "chat": "phi3:mini",
15
+ "code": "phi3:mini",
16
+ "vision": "phi3:mini",
17
+ "reasoning": "phi3:mini",
18
+ "embedding": "phi3:mini"
19
+ }
20
+ }