@makefinks/daemon 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -14
- package/package.json +4 -2
- package/src/ai/copilot-client.ts +775 -0
- package/src/ai/daemon-ai.ts +32 -234
- package/src/ai/model-config.ts +53 -12
- package/src/ai/providers/capabilities.ts +16 -0
- package/src/ai/providers/copilot-provider.ts +632 -0
- package/src/ai/providers/openrouter-provider.ts +217 -0
- package/src/ai/providers/registry.ts +14 -0
- package/src/ai/providers/types.ts +31 -0
- package/src/ai/tools/subagents.ts +1 -1
- package/src/ai/tools/tool-registry.ts +16 -1
- package/src/app/components/AppOverlays.tsx +9 -1
- package/src/app/components/ConversationPane.tsx +8 -2
- package/src/components/ModelMenu.tsx +202 -140
- package/src/components/OnboardingOverlay.tsx +147 -1
- package/src/components/SettingsMenu.tsx +27 -1
- package/src/components/TokenUsageDisplay.tsx +5 -3
- package/src/hooks/daemon-event-handlers.ts +61 -14
- package/src/hooks/keyboard-handlers.ts +109 -28
- package/src/hooks/use-app-callbacks.ts +141 -43
- package/src/hooks/use-app-context-builder.ts +5 -0
- package/src/hooks/use-app-controller.ts +31 -2
- package/src/hooks/use-app-copilot-models-loader.ts +45 -0
- package/src/hooks/use-app-display-state.ts +24 -2
- package/src/hooks/use-app-model.ts +103 -17
- package/src/hooks/use-app-preferences-bootstrap.ts +54 -10
- package/src/hooks/use-bootstrap-controller.ts +5 -0
- package/src/hooks/use-daemon-events.ts +8 -2
- package/src/hooks/use-daemon-keyboard.ts +19 -6
- package/src/hooks/use-daemon-runtime-controller.ts +4 -0
- package/src/hooks/use-menu-keyboard.ts +6 -1
- package/src/state/app-context.tsx +6 -0
- package/src/types/index.ts +22 -1
- package/src/utils/copilot-models.ts +77 -0
- package/src/utils/preferences.ts +3 -0
package/README.md
CHANGED
|
@@ -14,12 +14,11 @@ but can also interact with and **control** your system through the terminal with
|
|
|
14
14
|
DAEMON requires Bun at runtime, but global installation is currently documented via npm because some Bun global setups can fail on native `sqlite3` bindings pulled in by the optional memory feature.
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
|
-
# npm
|
|
18
|
-
# Note: you may see deprecation warnings from transitive dependencies.
|
|
17
|
+
# Install via npm
|
|
19
18
|
npm i -g @makefinks/daemon
|
|
20
19
|
|
|
21
|
-
#
|
|
22
|
-
brew install sox
|
|
20
|
+
# Additional installs (Audio)
|
|
21
|
+
brew install sox
|
|
23
22
|
```
|
|
24
23
|
|
|
25
24
|
Then run with:
|
|
@@ -27,7 +26,9 @@ Then run with:
|
|
|
27
26
|
daemon
|
|
28
27
|
```
|
|
29
28
|
|
|
30
|
-
|
|
29
|
+
#### ⚠️ Important Notes
|
|
30
|
+
> 1. DAEMON requires [Bun](https://bun.sh) at runtime. Install Bun first: `curl -fsSL https://bun.com/install | bash`
|
|
31
|
+
> 2. Windows is currently **not** supported (Only by using WSL - with minor issues)
|
|
31
32
|
|
|
32
33
|
See full installation details below for configuration and system dependencies.
|
|
33
34
|
|
|
@@ -40,12 +41,12 @@ listening to audio input, reasoning about questions, calling tools, and generati
|
|
|
40
41
|
The avatar was deliberately designed to feel slightly ominous and alien-like playing into sci-fi depictions.
|
|
41
42
|
|
|
42
43
|
### 🧠 LLMs
|
|
43
|
-
DAEMON
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
DAEMON supports two model backends:
|
|
45
|
+
- **OpenRouter** (API key based)
|
|
46
|
+
- **GitHub Copilot** (GitHub-authenticated via Copilot CLI / SDK) (Experimental!)
|
|
47
|
+
|
|
48
|
+
For OpenRouter, DAEMON can fetch and browse available models and route to a specific OpenRouter inference provider.
|
|
49
|
+
For GitHub Copilot, DAEMON can use your Copilot subscription and list available Copilot models when authenticated.
|
|
49
50
|
|
|
50
51
|

|
|
51
52
|
|
|
@@ -86,14 +87,15 @@ DAEMON can persist user-specific facts across sessions using [mem0](https://gith
|
|
|
86
87
|
| Terminal TUI | OpenTUI-powered interface with sci-fi styling and hotkey controls. |
|
|
87
88
|
| Text + Voice | Supports text input and voice interaction with transcription and TTS. |
|
|
88
89
|
| Animated Avatar | Sci-fi avatar reacts to listening, tool use, and response generation. |
|
|
89
|
-
| Multi-Model Support | Works with
|
|
90
|
+
| Multi-Model Support | Works with OpenRouter and GitHub Copilot model backends. |
|
|
90
91
|
| Session Persistence | Preferences and chat sessions stored locally on disk. |
|
|
91
92
|
| Memory | Automatic persistance of user-specific facts with persistent recall using **mem0** |
|
|
92
|
-
| Workspaces |
|
|
93
|
+
| Workspaces | Session-scoped on-disk workspaces for the agent to work in. |
|
|
93
94
|
| Web Search | Exa-based search and fetch for grounded, up-to-date info. |
|
|
94
95
|
| Grounding | Text-fragment grounding with a dedicated UI. |
|
|
95
96
|
| Bash Execution | Bash integration with approval scoping for potentially dangerous commands. |
|
|
96
97
|
| JS Page Rendering | Optional Playwright renderer for SPA content. |
|
|
98
|
+
| MCP | Model Context Protocol tools |
|
|
97
99
|
|
|
98
100
|
## 📦 Install (npm)
|
|
99
101
|
|
|
@@ -114,12 +116,23 @@ daemon
|
|
|
114
116
|
|
|
115
117
|
Configuration is done via environment variables (or the onboarding UI):
|
|
116
118
|
|
|
117
|
-
- `OPENROUTER_API_KEY` (required) - response generation via OpenRouter models
|
|
119
|
+
- `OPENROUTER_API_KEY` (required only when OpenRouter is selected) - response generation via OpenRouter models
|
|
118
120
|
- `EXA_API_KEY` (optional) - enables web search + fetch grounding via Exa
|
|
119
121
|
- `OPENAI_API_KEY` (optional) - enables voice transcription + TTS
|
|
120
122
|
|
|
123
|
+
For Copilot, authenticate once with either GitHub CLI or Copilot CLI:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
gh auth login
|
|
127
|
+
# or
|
|
128
|
+
copilot login
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
> ⚠️ GitHub Copilot authentication support is experimental.
|
|
132
|
+
|
|
121
133
|
> Keys entered via the onboarding UI are stored locally in `~/.config/daemon/credentials.json` with restricted permissions (`0600`). For maximum security, use environment variables instead.
|
|
122
134
|
|
|
135
|
+
|
|
123
136
|
## 🛠️ System dependencies
|
|
124
137
|
|
|
125
138
|
Voice input requires `sox` or other platform-specific audio libraries:
|
|
@@ -157,3 +170,36 @@ npm i -g playwright
|
|
|
157
170
|
# 2) Install Chromium browser binaries
|
|
158
171
|
npx playwright install chromium
|
|
159
172
|
```
|
|
173
|
+
## 🔌 MCP server setup (Model Context Protocol)
|
|
174
|
+
|
|
175
|
+
DAEMON can load MCP tools from external servers and expose them to the agent at runtime.
|
|
176
|
+
MCP servers are configured via a local config file.
|
|
177
|
+
|
|
178
|
+
Default config path:
|
|
179
|
+
|
|
180
|
+
- macOS/Linux: `~/.config/daemon/config.json`
|
|
181
|
+
|
|
182
|
+
Example config:
|
|
183
|
+
|
|
184
|
+
```json
|
|
185
|
+
{
|
|
186
|
+
"mcpServers": [
|
|
187
|
+
{
|
|
188
|
+
"id": "local-mcp",
|
|
189
|
+
"type": "http",
|
|
190
|
+
"url": "http://localhost:3333/mcp"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"type": "sse",
|
|
194
|
+
"url": "https://example.com/mcp/sse"
|
|
195
|
+
}
|
|
196
|
+
]
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Notes:
|
|
201
|
+
|
|
202
|
+
- `type` must be `http` or `sse`.
|
|
203
|
+
- `url` is the MCP endpoint URL for the server.
|
|
204
|
+
- `id` is optional; if omitted, DAEMON derives one from the host.
|
|
205
|
+
- MCP server status and tools appear in the **Tools** menu once configured.
|
package/package.json
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"module": "src/index.tsx",
|
|
30
30
|
"type": "module",
|
|
31
|
-
"version": "0.
|
|
31
|
+
"version": "0.11.0",
|
|
32
32
|
"bin": {
|
|
33
33
|
"daemon": "dist/cli.js"
|
|
34
34
|
},
|
|
@@ -75,6 +75,7 @@
|
|
|
75
75
|
"dependencies": {
|
|
76
76
|
"@ai-sdk/mcp": "^1.0.14",
|
|
77
77
|
"@ai-sdk/openai": "^3.0.0",
|
|
78
|
+
"@github/copilot-sdk": "^0.1.23",
|
|
78
79
|
"@openrouter/ai-sdk-provider": "^2.1.0",
|
|
79
80
|
"@opentui-ui/toast": "^0.0.3",
|
|
80
81
|
"@opentui/core": "0.1.75",
|
|
@@ -84,7 +85,8 @@
|
|
|
84
85
|
"mem0ai": "^2.2.1",
|
|
85
86
|
"openai": "^6.16.0",
|
|
86
87
|
"opentui-spinner": "^0.0.6",
|
|
87
|
-
"react": "^19.2.3"
|
|
88
|
+
"react": "^19.2.3",
|
|
89
|
+
"zod-to-json-schema": "^3.25.1"
|
|
88
90
|
},
|
|
89
91
|
"optionalDependencies": {
|
|
90
92
|
"@opentui/core-win32-x64": "0.1.75",
|