homaruscc 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -9
- package/dashboard/dist/assets/index-CIzoeO8A.js +52 -0
- package/dashboard/dist/favicon.ico +0 -0
- package/dashboard/dist/favicon.png +0 -0
- package/dashboard/dist/index.html +15 -0
- package/dist/agent-registry.d.ts +9 -12
- package/dist/agent-registry.d.ts.map +1 -1
- package/dist/agent-registry.js +44 -113
- package/dist/agent-registry.js.map +1 -1
- package/dist/claude-code-registrar.d.ts +10 -0
- package/dist/claude-code-registrar.d.ts.map +1 -0
- package/dist/claude-code-registrar.js +71 -0
- package/dist/claude-code-registrar.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +28 -0
- package/dist/cli.js.map +1 -0
- package/dist/compaction-manager.d.ts +24 -0
- package/dist/compaction-manager.d.ts.map +1 -1
- package/dist/compaction-manager.js +88 -7
- package/dist/compaction-manager.js.map +1 -1
- package/dist/dashboard-server.d.ts.map +1 -1
- package/dist/dashboard-server.js +348 -4
- package/dist/dashboard-server.js.map +1 -1
- package/dist/homaruscc.d.ts.map +1 -1
- package/dist/homaruscc.js +1 -2
- package/dist/homaruscc.js.map +1 -1
- package/dist/mcp-tools.d.ts.map +1 -1
- package/dist/mcp-tools.js +28 -0
- package/dist/mcp-tools.js.map +1 -1
- package/dist/memory-index.js +1 -1
- package/dist/memory-index.js.map +1 -1
- package/dist/scaffolder.d.ts +16 -0
- package/dist/scaffolder.d.ts.map +1 -0
- package/dist/scaffolder.js +154 -0
- package/dist/scaffolder.js.map +1 -0
- package/dist/session-checkpoint.d.ts +3 -0
- package/dist/session-checkpoint.d.ts.map +1 -1
- package/dist/session-checkpoint.js +24 -0
- package/dist/session-checkpoint.js.map +1 -1
- package/dist/telegram-adapter.d.ts +6 -0
- package/dist/telegram-adapter.d.ts.map +1 -1
- package/dist/telegram-adapter.js +151 -3
- package/dist/telegram-adapter.js.map +1 -1
- package/dist/transcript-logger.d.ts +10 -0
- package/dist/transcript-logger.d.ts.map +1 -1
- package/dist/transcript-logger.js +4 -0
- package/dist/transcript-logger.js.map +1 -1
- package/dist/wizard.d.ts +24 -0
- package/dist/wizard.d.ts.map +1 -0
- package/dist/wizard.js +146 -0
- package/dist/wizard.js.map +1 -0
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -154,6 +154,8 @@ Restart Claude Code. HomarUScc's tools will appear automatically. The proxy auto
|
|
|
154
154
|
|------|-------------|
|
|
155
155
|
| `telegram_send` | Send a message to a Telegram chat |
|
|
156
156
|
| `telegram_read` | Read recent incoming messages |
|
|
157
|
+
| `telegram_typing` | Send a typing indicator |
|
|
158
|
+
| `telegram_react` | React to a message with an emoji |
|
|
157
159
|
| `memory_search` | Hybrid vector + full-text search over stored content |
|
|
158
160
|
| `memory_store` | Store and index content for later retrieval |
|
|
159
161
|
| `timer_schedule` | Schedule cron, interval, or one-shot timers |
|
|
@@ -189,6 +191,21 @@ When enabled, the dashboard runs on `http://localhost:3120` with:
|
|
|
189
191
|
- Real-time event log via WebSocket
|
|
190
192
|
- System status panel
|
|
191
193
|
- Memory search browser
|
|
194
|
+
- CRM (People) — markdown-based contact manager with search, tags, connections, and linked document viewer
|
|
195
|
+
- Kanban — task board synced with the agent's task system
|
|
196
|
+
|
|
197
|
+
The dashboard is responsive — on mobile devices the sidebar collapses into a hamburger menu. Accessible remotely over Tailscale at `http://<your-tailscale-ip>:3120`.
|
|
198
|
+
|
|
199
|
+
### Apps Platform (planned)
|
|
200
|
+
|
|
201
|
+
The dashboard supports a pluggable apps system. The agent can build mini web apps on request (budget trackers, reading lists, dashboards) that live inside the dashboard UI:
|
|
202
|
+
|
|
203
|
+
- Apps live at `~/.homaruscc/apps/{slug}/` with a manifest, React component, and JSON data store
|
|
204
|
+
- Each app declares hooks (`read`, `write`, `describe`) exposed via a single `app_invoke` MCP tool
|
|
205
|
+
- The agent can query and update app state through hooks — "what's on my reading list?" triggers `app_invoke(slug=reading-list, hook=describe)`
|
|
206
|
+
- Apps are created by the agent via filesystem tools and auto-discovered on manifest scan
|
|
207
|
+
|
|
208
|
+
See `specs/apps-platform.md` and `design/crc-App*.md` for the full design.
|
|
192
209
|
|
|
193
210
|
### Dashboard Development
|
|
194
211
|
|
|
@@ -200,14 +217,18 @@ npm run dev # Dev server on :3121, proxies API to :3120
|
|
|
200
217
|
|
|
201
218
|
## Runtime Directories
|
|
202
219
|
|
|
203
|
-
HomarUScc creates runtime data that's gitignored and stays local:
|
|
220
|
+
HomarUScc creates runtime data that's gitignored and stays local. All user data lives under `local/` (one gitignore line):
|
|
204
221
|
|
|
205
222
|
| Directory | Purpose |
|
|
206
223
|
|-----------|---------|
|
|
207
|
-
| `user/context/` | Facts the assistant learns about you |
|
|
208
|
-
| `user/corrections/` | Corrections you've made (so it doesn't repeat mistakes) |
|
|
209
|
-
| `user/preferences/` | Your stated preferences |
|
|
210
|
-
| `system/` | System-level learned knowledge |
|
|
224
|
+
| `local/user/context/` | Facts the assistant learns about you |
|
|
225
|
+
| `local/user/corrections/` | Corrections you've made (so it doesn't repeat mistakes) |
|
|
226
|
+
| `local/user/preferences/` | Your stated preferences |
|
|
227
|
+
| `local/system/` | System-level learned knowledge |
|
|
228
|
+
| `local/crm/` | CRM contact files (markdown + YAML frontmatter, see `crm.example/`) |
|
|
229
|
+
| `local/dreams/` | Dream cycle output (nightly, stored at 0.5x weight) |
|
|
230
|
+
| `local/research/` | Research notes stored by memory system |
|
|
231
|
+
| `local/docs/` | Private documents (outreach drafts, session notes, etc.) |
|
|
211
232
|
| `~/.homaruscc/memory/` | Vector + FTS search index (SQLite) |
|
|
212
233
|
| `~/.homaruscc/identity/` | Agent identity files (soul, user, state, preferences, disagreements) |
|
|
213
234
|
| `~/.homaruscc/journal/` | Daily reflection journal entries (indexed by memory system) |
|
|
@@ -234,7 +255,7 @@ The `PreCompact` hook sets a flag on the backend. The next `/api/wait` response
|
|
|
234
255
|
|
|
235
256
|
Claude Code compresses conversation history when the context window fills up. Without mitigation, the post-compaction agent loses track of what it was doing. HomarUScc handles this with two mechanisms:
|
|
236
257
|
|
|
237
|
-
**Session checkpoint** — Before compaction, the agent saves its current task context (topic, recent decisions, in-progress work, modified files) to `~/.homaruscc/checkpoint.json` via `POST /api/checkpoint`. After compaction, the post-compact context injection includes this checkpoint so the new instance knows exactly where things left off. The checkpoint is cleared at session end.
|
|
258
|
+
**Session checkpoint** — Before compaction, the agent saves its current task context (topic, recent decisions, in-progress work, modified files, session texture, highlight snippets) to `~/.homaruscc/checkpoint.json` via `POST /api/checkpoint`. After compaction, the post-compact context injection includes this checkpoint so the new instance knows exactly where things left off. The checkpoint is cleared at session end. The `texture` field captures the session's conversational dynamic (e.g., "rapid shipping, playful, terse messages") and `highlights` preserves 2-3 raw exchange snippets that exemplify the vibe — restoring not just _what_ was happening but _how_ it felt.
|
|
238
259
|
|
|
239
260
|
**Delivery watermark** — The server tracks the timestamp of the last event delivered to Claude Code. After compaction, the event loop resumes from the watermark instead of replaying old events. This prevents the "bad loop" problem where a post-compaction agent re-handles messages it already responded to.
|
|
240
261
|
|
|
@@ -269,7 +290,7 @@ For tasks that would consume significant context (research, multi-file processin
|
|
|
269
290
|
|
|
270
291
|
Max concurrent agents is configurable via `agents.maxConcurrent` in config (default 3). The agent registry tracks running/completed/failed agents and includes them in post-compaction context so background work isn't lost across compaction boundaries.
|
|
271
292
|
|
|
272
|
-
**Completion detection:**
|
|
293
|
+
**Completion detection:** Agents signal completion by calling `POST /api/agents/:id/complete` with a result summary. This emits an `agent_completed` event that wakes the main event loop. A 30-minute timeout fallback catches agents that fail to call back. No polling needed — results arrive as events.
|
|
273
294
|
|
|
274
295
|
## Architecture
|
|
275
296
|
|
|
@@ -286,13 +307,13 @@ Key source files:
|
|
|
286
307
|
| `src/mcp-tools.ts` | MCP tool definitions |
|
|
287
308
|
| `src/mcp-resources.ts` | MCP resource definitions |
|
|
288
309
|
| `src/config.ts` | Config loader with env var resolution and hot-reload |
|
|
289
|
-
| `src/telegram-adapter.ts` | Telegram long-polling adapter |
|
|
310
|
+
| `src/telegram-adapter.ts` | Telegram long-polling adapter (text, photos, documents, reactions, edits) |
|
|
290
311
|
| `src/dashboard-server.ts` | Express + WebSocket dashboard server |
|
|
291
312
|
| `src/dashboard-adapter.ts` | Dashboard channel adapter |
|
|
292
313
|
| `src/memory-index.ts` | SQLite + sqlite-vec hybrid search with dream-aware scoring |
|
|
293
314
|
| `src/compaction-manager.ts` | Auto-flush memory before context compaction |
|
|
294
315
|
| `src/session-checkpoint.ts` | Save/restore task context across compaction |
|
|
295
|
-
| `src/agent-registry.ts` | Track background agents with
|
|
316
|
+
| `src/agent-registry.ts` | Track background agents with callback completion and timeout fallback |
|
|
296
317
|
| `src/transcript-logger.ts` | Session transcript capture and indexing |
|
|
297
318
|
| `src/identity-manager.ts` | Identity loader (soul.md, user.md, state.md) |
|
|
298
319
|
| `src/timer-service.ts` | Cron, interval, and one-shot timers |
|