kemdicode-mcp 1.17.0 → 1.19.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 +189 -203
- package/dist/ai/execute.d.ts.map +1 -1
- package/dist/ai/execute.js +11 -1
- package/dist/ai/execute.js.map +1 -1
- package/dist/context/agent-monitor.d.ts +3 -3
- package/dist/context/agent-monitor.d.ts.map +1 -1
- package/dist/context/agent-monitor.js +15 -9
- package/dist/context/agent-monitor.js.map +1 -1
- package/dist/context/storage.d.ts.map +1 -1
- package/dist/context/storage.js +18 -2
- package/dist/context/storage.js.map +1 -1
- package/dist/kanban/kanban-store.d.ts +0 -18
- package/dist/kanban/kanban-store.d.ts.map +1 -1
- package/dist/kanban/kanban-store.js +99 -80
- package/dist/kanban/kanban-store.js.map +1 -1
- package/dist/recursive/tool-invoker.d.ts.map +1 -1
- package/dist/recursive/tool-invoker.js +40 -9
- package/dist/recursive/tool-invoker.js.map +1 -1
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +10 -3
- package/dist/session/manager.js.map +1 -1
- package/dist/tools/agents/agent-alert.tool.d.ts.map +1 -1
- package/dist/tools/agents/agent-alert.tool.js +7 -21
- package/dist/tools/agents/agent-alert.tool.js.map +1 -1
- package/dist/tools/agents/agent-inject.tool.d.ts.map +1 -1
- package/dist/tools/agents/agent-inject.tool.js +11 -23
- package/dist/tools/agents/agent-inject.tool.js.map +1 -1
- package/dist/tools/agents/agent-register.tool.d.ts.map +1 -1
- package/dist/tools/agents/agent-register.tool.js +1 -1
- package/dist/tools/agents/agent-register.tool.js.map +1 -1
- package/dist/tools/agents/queue-message.tool.js +2 -2
- package/dist/tools/agents/queue-message.tool.js.map +1 -1
- package/dist/tools/file/file-diff.tool.d.ts.map +1 -1
- package/dist/tools/file/file-diff.tool.js +86 -72
- package/dist/tools/file/file-diff.tool.js.map +1 -1
- package/dist/tools/file/file-read.tool.d.ts.map +1 -1
- package/dist/tools/file/file-read.tool.js +100 -123
- package/dist/tools/file/file-read.tool.js.map +1 -1
- package/dist/tools/file/file-tree.tool.js +1 -1
- package/dist/tools/file/file-tree.tool.js.map +1 -1
- package/dist/tools/file/file-write.tool.d.ts.map +1 -1
- package/dist/tools/file/file-write.tool.js +96 -102
- package/dist/tools/file/file-write.tool.js.map +1 -1
- package/dist/tools/git/git-log.tool.d.ts.map +1 -1
- package/dist/tools/git/git-log.tool.js +4 -1
- package/dist/tools/git/git-log.tool.js.map +1 -1
- package/dist/tools/kanban/board-create.tool.d.ts.map +1 -1
- package/dist/tools/kanban/board-create.tool.js +44 -35
- package/dist/tools/kanban/board-create.tool.js.map +1 -1
- package/dist/tools/kanban/board-invite.tool.d.ts.map +1 -1
- package/dist/tools/kanban/board-invite.tool.js +52 -42
- package/dist/tools/kanban/board-invite.tool.js.map +1 -1
- package/dist/tools/kanban/board-members.tool.d.ts.map +1 -1
- package/dist/tools/kanban/board-members.tool.js +123 -97
- package/dist/tools/kanban/board-members.tool.js.map +1 -1
- package/dist/tools/kanban/board-share.tool.d.ts.map +1 -1
- package/dist/tools/kanban/board-share.tool.js +48 -38
- package/dist/tools/kanban/board-share.tool.js.map +1 -1
- package/dist/tools/kanban/workspace-create.tool.d.ts.map +1 -1
- package/dist/tools/kanban/workspace-create.tool.js +41 -30
- package/dist/tools/kanban/workspace-create.tool.js.map +1 -1
- package/dist/tools/memory/checkpoint-restore.tool.d.ts.map +1 -1
- package/dist/tools/memory/checkpoint-restore.tool.js +1 -9
- package/dist/tools/memory/checkpoint-restore.tool.js.map +1 -1
- package/dist/tools/memory/checkpoint-save.tool.d.ts.map +1 -1
- package/dist/tools/memory/checkpoint-save.tool.js +2 -28
- package/dist/tools/memory/checkpoint-save.tool.js.map +1 -1
- package/dist/tools/memory/delete-memory.tool.d.ts.map +1 -1
- package/dist/tools/memory/delete-memory.tool.js +34 -35
- package/dist/tools/memory/delete-memory.tool.js.map +1 -1
- package/dist/tools/memory/edit-memory.tool.d.ts.map +1 -1
- package/dist/tools/memory/edit-memory.tool.js +89 -117
- package/dist/tools/memory/edit-memory.tool.js.map +1 -1
- package/dist/tools/memory/list-memories.tool.d.ts.map +1 -1
- package/dist/tools/memory/list-memories.tool.js +53 -46
- package/dist/tools/memory/list-memories.tool.js.map +1 -1
- package/dist/tools/memory/read-memory.tool.d.ts.map +1 -1
- package/dist/tools/memory/read-memory.tool.js +45 -39
- package/dist/tools/memory/read-memory.tool.js.map +1 -1
- package/dist/tools/memory/shared.d.ts +61 -0
- package/dist/tools/memory/shared.d.ts.map +1 -0
- package/dist/tools/memory/shared.js +63 -0
- package/dist/tools/memory/shared.js.map +1 -0
- package/dist/tools/memory/write-memory.tool.d.ts.map +1 -1
- package/dist/tools/memory/write-memory.tool.js +68 -107
- package/dist/tools/memory/write-memory.tool.js.map +1 -1
- package/dist/tools/multi-llm/consensus-prompt.tool.d.ts.map +1 -1
- package/dist/tools/multi-llm/consensus-prompt.tool.js +7 -3
- package/dist/tools/multi-llm/consensus-prompt.tool.js.map +1 -1
- package/dist/tools/registry.d.ts +13 -0
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +25 -0
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/session/session-create.tool.d.ts +8 -6
- package/dist/tools/session/session-create.tool.d.ts.map +1 -1
- package/dist/tools/session/session-create.tool.js +44 -34
- package/dist/tools/session/session-create.tool.js.map +1 -1
- package/dist/tools/session/session-delete.tool.d.ts +4 -2
- package/dist/tools/session/session-delete.tool.d.ts.map +1 -1
- package/dist/tools/session/session-delete.tool.js +51 -53
- package/dist/tools/session/session-delete.tool.js.map +1 -1
- package/dist/tools/specialized/code-review.tool.d.ts.map +1 -1
- package/dist/tools/specialized/code-review.tool.js +1 -0
- package/dist/tools/specialized/code-review.tool.js.map +1 -1
- package/dist/tools/system/config.tool.d.ts.map +1 -1
- package/dist/tools/system/config.tool.js +38 -5
- package/dist/tools/system/config.tool.js.map +1 -1
- package/dist/tools/system/shell-exec.tool.js +1 -1
- package/dist/tools/system/shell-exec.tool.js.map +1 -1
- package/dist/utils/format-helpers.d.ts +41 -0
- package/dist/utils/format-helpers.d.ts.map +1 -0
- package/dist/utils/format-helpers.js +76 -0
- package/dist/utils/format-helpers.js.map +1 -0
- package/dist/utils/projectContext.enhanced.d.ts.map +1 -1
- package/dist/utils/projectContext.enhanced.js +19 -4
- package/dist/utils/projectContext.enhanced.js.map +1 -1
- package/dist/utils/security.d.ts.map +1 -1
- package/dist/utils/security.js +11 -2
- package/dist/utils/security.js.map +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +2 -4
- package/dist/utils/validation.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
<p align="center">
|
|
12
12
|
<a href="https://www.npmjs.com/package/kemdicode-mcp"><img src="https://img.shields.io/badge/npm-kemdicode--mcp-CB3837?style=flat-square&logo=npm&logoColor=white" alt="npm" /></a>
|
|
13
|
-
<a href="https://github.com/kemdi-pl/kemdicode-mcp/releases"><img src="https://img.shields.io/badge/version-1.
|
|
13
|
+
<a href="https://github.com/kemdi-pl/kemdicode-mcp/releases"><img src="https://img.shields.io/badge/version-1.19.0-blue?style=flat-square" alt="Version" /></a>
|
|
14
14
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-GPL--3.0-green?style=flat-square" alt="License" /></a>
|
|
15
15
|
</p>
|
|
16
16
|
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
<details>
|
|
29
29
|
<summary><strong>Table of Contents</strong></summary>
|
|
30
30
|
|
|
31
|
-
- [What's New in 1.
|
|
31
|
+
- [What's New in 1.19.0](#whats-new-in-1190)
|
|
32
32
|
- [Usage Examples](#usage-examples)
|
|
33
33
|
- [Highlights](#highlights)
|
|
34
34
|
- [Compatibility](#compatibility)
|
|
@@ -50,7 +50,20 @@
|
|
|
50
50
|
|
|
51
51
|
---
|
|
52
52
|
|
|
53
|
-
## What's New in 1.
|
|
53
|
+
## What's New in 1.19.0
|
|
54
|
+
|
|
55
|
+
- **Batch/Multi-Item Support for 14 Tools** — all single-item tools now accept arrays for parallel batch operations: `board-create` (1-10), `board-share` (1-10), `board-invite` (1-20), `board-members` (1-20 ops), `workspace-create` (1-5), `write-memory` (1-20), `read-memory` (1-20), `delete-memory` (1-20), `edit-memory` (1-10), `file-read` (1-20), `file-write` (1-20), `file-diff` (1-10 pairs), `session-create` (1-10), `session-delete` (1-10). All return per-item success/failure with structured results.
|
|
56
|
+
- **Memory Tools: Redis Pipeline Optimization** — `read-memory` and `delete-memory` batch operations use Redis pipelines instead of sequential queries, eliminating N+1 performance issues.
|
|
57
|
+
- **5 Critical Bug Fixes** — memory leak in `sessionHistory` Map (LRU eviction), recursion context restoration in `tool-invoker`, Pub/Sub handler leak in `agent-monitor`, Redis connection leak in kanban subscriber, race condition in `claimTask` blocker validation.
|
|
58
|
+
- **5 Performance Improvements** — session write-back throttling (dirty flag + 5min threshold), kanban `listTasks` N+1 → Redis pipeline, context `queryContext` N+1 → pipeline, rate-limit map cleanup timer, shared Redis connection pooling.
|
|
59
|
+
- **2 Security Fixes** — hardcoded salt fallback removed (now throws on missing `SECURE_STORAGE_SALT`), command injection risk in `projectContext.enhanced.ts` fixed (switched to `execFile`).
|
|
60
|
+
- **Template Injection Prevention** — `consensus-prompt` fixed reversed `replaceAll` order to prevent user prompt from injecting `{board_responses}` placeholder. CEO `maxTokens` capped at 32K.
|
|
61
|
+
- **ANSI Escape Injection Protection** — new `sanitizeTerminalOutput()` utility applied to `agent-alert` and `agent-inject` to prevent terminal escape sequence injection via user-controlled strings.
|
|
62
|
+
- **Shared Memory Module** — extracted duplicated types, constants, and helpers from 7 memory tools into `src/tools/memory/shared.ts`, eliminating 6x duplication.
|
|
63
|
+
- **Shared Format Helpers** — new `src/utils/format-helpers.ts` with `sanitizeTerminalOutput()`, `wrapText()`, `priorityIcon()`, `statusIcon()` shared across agent tools.
|
|
64
|
+
- **Input Validation Hardening** — prototype pollution prevention in `agent-register` metadata keys, octal mode regex validation in `file-write`, ref flag injection prevention in `git-log`, content size limits (1MB) in `queue-message`.
|
|
65
|
+
|
|
66
|
+
### What was in 1.18.0
|
|
54
67
|
|
|
55
68
|
- **Checkpoint Save/Restore** — new tools `checkpoint-save` and `checkpoint-restore` for temporary state snapshots in Redis (7-day TTL). Save progress mid-task and restore later.
|
|
56
69
|
- **Session Resume** — new `/resume` HTTP endpoint returns the last active session with tool history, enabling post-compaction recovery. SSE connections receive a `resume` event on reconnect.
|
|
@@ -369,192 +382,97 @@ ai-config --action test
|
|
|
369
382
|
|
|
370
383
|
### System Overview
|
|
371
384
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
▼ │
|
|
384
|
-
┌────────────────────────────────────────────────────────────────┐│
|
|
385
|
-
│ kemdiCode MCP Server (HTTP :3100) ││
|
|
386
|
-
│ ┌───────────────────────────────────────────────────────────┐ ││
|
|
387
|
-
│ │ Session Manager │◄┘│
|
|
388
|
-
│ │ • Per-client sessions with CWD isolation │ │
|
|
389
|
-
│ │ • Activity tracking (last tool, args, timestamp) │ │
|
|
390
|
-
│ │ • /resume endpoint for post-compaction recovery │ │
|
|
391
|
-
│ │ • SSE keep-alive + resume events on reconnect │ │
|
|
392
|
-
│ └───────────────────────┬───────────────────────────────────┘ │
|
|
393
|
-
│ ▼ │
|
|
394
|
-
│ ┌───────────────────────────────────────────────────────────┐ │
|
|
395
|
-
│ │ Tool Registry (103 tools) │ │
|
|
396
|
-
│ │ │ │
|
|
397
|
-
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │ │
|
|
398
|
-
│ │ │Code │ │File & │ │Git │ │Multi-Agent │ │ │
|
|
399
|
-
│ │ │Analysis │ │Editing │ │Operations│ │Coordination │ │ │
|
|
400
|
-
│ │ │(8 tools) │ │(12 tools)│ │(5 tools) │ │(13 tools) │ │ │
|
|
401
|
-
│ │ └──────────┘ └──────────┘ └──────────┘ └──────────────┘ │ │
|
|
402
|
-
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │ │
|
|
403
|
-
│ │ │AI Agents │ │Kanban │ │Project │ │Memory & │ │ │
|
|
404
|
-
│ │ │& LLM │ │& Boards │ │Management│ │Checkpoints │ │ │
|
|
405
|
-
│ │ │(6 tools) │ │(16 tools)│ │(5 tools) │ │(7 tools) │ │ │
|
|
406
|
-
│ │ └──────────┘ └──────────┘ └──────────┘ └──────────────┘ │ │
|
|
407
|
-
│ │ • Runtime registration with tools/list_changed broadcast │ │
|
|
408
|
-
│ │ • Zod schema validation + auto JSON Schema generation │ │
|
|
409
|
-
│ └───────────────────────┬───────────────────────────────────┘ │
|
|
410
|
-
│ ▼ │
|
|
411
|
-
│ ┌───────────────────────────────────────────────────────────┐ │
|
|
412
|
-
│ │ Provider Registry (7 providers) │ │
|
|
413
|
-
│ │ │ │
|
|
414
|
-
│ │ ┌─────────┐ ┌──────────┐ ┌────────┐ ┌────────────────┐ │ │
|
|
415
|
-
│ │ │ OpenAI │ │Anthropic │ │ Gemini │ │ OpenAI-compat │ │ │
|
|
416
|
-
│ │ │ (native)│ │ (native) │ │(native)│ │ Groq DeepSeek │ │ │
|
|
417
|
-
│ │ │ │ │ │ │ │ │ Ollama OpenRtr │ │ │
|
|
418
|
-
│ │ └─────────┘ └──────────┘ └────────┘ └────────────────┘ │ │
|
|
419
|
-
│ │ • Lazy init on first use • Hot-reload without restart │ │
|
|
420
|
-
│ │ • Unified thinking tokens: effort / budget / budget │ │
|
|
421
|
-
│ │ • Model spec syntax: provider:model:thinking │ │
|
|
422
|
-
│ └───────────────────────────────────────────────────────────┘ │
|
|
423
|
-
│ │
|
|
424
|
-
│ ┌───────────────────────────────────────────────────────────┐ │
|
|
425
|
-
│ │ Tree-sitter AST Engine │ │
|
|
426
|
-
│ │ • WASM parsers for 19 languages │ │
|
|
427
|
-
│ │ • Symbol navigation, rename, insert before/after │ │
|
|
428
|
-
│ │ • Indentation detection + context-aware editing │ │
|
|
429
|
-
│ └───────────────────────────────────────────────────────────┘ │
|
|
430
|
-
│ │
|
|
431
|
-
│ ┌───────────────────────────────────────────────────────────┐ │
|
|
432
|
-
│ │ Runtime Abstraction Layer │ │
|
|
433
|
-
│ │ • Auto-detects Bun vs Node.js at startup │ │
|
|
434
|
-
│ │ • Unified HTTP server (Bun.serve / node:http) │ │
|
|
435
|
-
│ │ • Unified process spawning (Bun.spawn / child_process) │ │
|
|
436
|
-
│ └───────────────────────────────────────────────────────────┘ │
|
|
437
|
-
└────────────────────────────┬────────────────────────────────────┘
|
|
438
|
-
│
|
|
439
|
-
▼
|
|
440
|
-
┌────────────────────────────────────────────────────────────────┐
|
|
441
|
-
│ Redis (DB 2) │
|
|
442
|
-
│ │
|
|
443
|
-
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
|
|
444
|
-
│ │ Context │ │ Agents │ │ Kanban │ │
|
|
445
|
-
│ │ mcp:context: │ │ mcp:agents: │ │ mcp:kanban: │ │
|
|
446
|
-
│ │ mcp:memory: │ │ mcp:queue: │ │ workspace:<id> │ │
|
|
447
|
-
│ │ mcp:checkpoint│ │ mcp:messages:│ │ board:<id> │ │
|
|
448
|
-
│ └──────────────┘ └──────────────┘ │ task:<id> │ │
|
|
449
|
-
│ └──────────────────────┘ │
|
|
450
|
-
│ ┌─────────────────────────────────────────────────────────┐ │
|
|
451
|
-
│ │ Pub/Sub Channels │ │
|
|
452
|
-
│ │ mcp:channel:broadcast mcp:channel:inject:<agentId> │ │
|
|
453
|
-
│ │ mcp:channel:alerts mcp:channel:thoughts │ │
|
|
454
|
-
│ └─────────────────────────────────────────────────────────┘ │
|
|
455
|
-
└────────────────────────────────────────────────────────────────┘
|
|
456
|
-
```
|
|
385
|
+
| Layer | Component | Description |
|
|
386
|
+
|:------|:----------|:------------|
|
|
387
|
+
| **Clients** | Claude Code, Cursor, KiroCode, RooCode | Connect via SSE + JSON-RPC (MCP Protocol) |
|
|
388
|
+
| **HTTP Server** | `:3100` (Bun or Node.js) | Routes: `/sse`, `/message`, `/resume`, `/stream` |
|
|
389
|
+
| **Session Manager** | Per-client isolation | CWD injection, activity tracking, `/resume` for post-compaction recovery, SSE keep-alive |
|
|
390
|
+
| **Tool Registry** | 103 tools, 20 categories | Zod schema validation, auto JSON Schema generation, runtime registration with `tools/list_changed` broadcast |
|
|
391
|
+
| **Provider Registry** | 7 LLM providers | OpenAI, Anthropic, Gemini (native SDKs) + Groq, DeepSeek, Ollama, OpenRouter (OpenAI-compatible). Lazy init, hot-reload, unified thinking tokens |
|
|
392
|
+
| **Tree-sitter AST** | 19 languages | WASM parsers, symbol navigation, rename, insert before/after, indentation detection |
|
|
393
|
+
| **Runtime Abstraction** | Bun / Node.js | Auto-detection at startup. Unified HTTP (`Bun.serve` / `node:http`), process spawning (`Bun.spawn` / `child_process`) |
|
|
394
|
+
| **Redis (DB 2)** | Shared state | `mcp:context:*` (tool outputs), `mcp:agents:*` (registry), `mcp:kanban:*` (tasks/boards/workspaces), `mcp:memory:*` (project memory), `mcp:checkpoint:*` (snapshots) |
|
|
395
|
+
| **Redis Pub/Sub** | Real-time messaging | Channels: `broadcast`, `inject:<agentId>`, `alerts`, `thoughts` |
|
|
457
396
|
|
|
458
397
|
### Request Lifecycle
|
|
459
398
|
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
│ │ └─ record session activity │
|
|
472
|
-
│◄── SSE: result ─────────────│ │
|
|
473
|
-
│ │ │
|
|
474
|
-
│── POST /message ────────────►│ │
|
|
475
|
-
│ { tool: "ask-ai" } │── route to provider ────────►│
|
|
476
|
-
│ │◄── LLM response ────────────│
|
|
477
|
-
│◄── SSE: result ─────────────│ │
|
|
478
|
-
```
|
|
399
|
+
| Step | Client (IDE) | kemdiCode MCP Server | External (Redis / LLM) |
|
|
400
|
+
|:----:|:-------------|:---------------------|:-----------------------|
|
|
401
|
+
| 1 | `GET /sse` → | Create session, assign CWD | |
|
|
402
|
+
| 2 | | ← SSE: `endpoint` + `resume` event | |
|
|
403
|
+
| 3 | `POST /message` `{ tool: "code-review" }` → | | |
|
|
404
|
+
| 4 | | Validate args (Zod schema) | |
|
|
405
|
+
| 5 | | Execute tool → | Share result to Redis, record activity |
|
|
406
|
+
| 6 | | ← SSE: tool result | |
|
|
407
|
+
| 7 | `POST /message` `{ tool: "ask-ai" }` → | | |
|
|
408
|
+
| 8 | | Route to LLM provider → | Provider returns completion |
|
|
409
|
+
| 9 | | ← SSE: AI response | |
|
|
479
410
|
|
|
480
411
|
### Source Tree
|
|
481
412
|
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
│ ├── loci/ # 4 tools: graph-query, find-path, recall, recommend
|
|
546
|
-
│ ├── mpc/ # 4 tools: split, distribute, reconstruct, status
|
|
547
|
-
│ └── rl/ # 2 tools: reward-stats, dopamine-log
|
|
548
|
-
└── utils/
|
|
549
|
-
├── commandExecutor.ts # Process spawning with timeout + kill
|
|
550
|
-
├── file-utils.ts # Read/write with encoding detection
|
|
551
|
-
├── edit-utils.ts # Line-based editing helpers
|
|
552
|
-
├── git-utils.ts # Git command builders
|
|
553
|
-
├── cache.ts # In-memory TTL cache
|
|
554
|
-
├── validation.ts # Rate limiting, input sanitization
|
|
555
|
-
├── errors.ts # Typed error classes
|
|
556
|
-
└── logger.ts # Structured logging
|
|
557
|
-
```
|
|
413
|
+
| Directory | File | Purpose |
|
|
414
|
+
|:----------|:-----|:--------|
|
|
415
|
+
| `src/` | `index.ts` | Entry point, CLI argument parsing, server bootstrap |
|
|
416
|
+
| | `constants.ts` | Error messages, timeouts, limits |
|
|
417
|
+
| `src/server/` | `http-server.ts` | HTTP routes: `/sse`, `/message`, `/resume`, `/stream` |
|
|
418
|
+
| | `session-server.ts` | MCP Server per session, CWD injection, activity tracking |
|
|
419
|
+
| | `types.ts` | `ServerConfig`, `VERSION` constants |
|
|
420
|
+
| `src/ai/` | `client.ts` | Completion router (multi-provider + automatic fallback) |
|
|
421
|
+
| | `execute.ts` | High-level AI execution with agent system prompts |
|
|
422
|
+
| | `agents.ts` | Agent configurations: `plan`, `build`, `explore` |
|
|
423
|
+
| | `model-spec.ts` | Parser for `provider:model:thinking` syntax |
|
|
424
|
+
| | `file-context.ts` | File attachment → prompt injection |
|
|
425
|
+
| `src/ai/providers/` | `types.ts` | `LLMProvider` interface, `ProviderId`, `ThinkingConfig` |
|
|
426
|
+
| | `registry.ts` | Provider registry with lazy initialization |
|
|
427
|
+
| | `openai.provider.ts` | OpenAI native SDK (`reasoning_effort`) |
|
|
428
|
+
| | `anthropic.provider.ts` | Anthropic native SDK (`thinking` budget) |
|
|
429
|
+
| | `gemini.provider.ts` | Google GenAI native SDK (`thinking` budget) |
|
|
430
|
+
| | `openai-compat.provider.ts` | Groq, DeepSeek, Ollama, OpenRouter via OpenAI SDK |
|
|
431
|
+
| `src/runtime/` | `index.ts` | `isBun` / `isNode` runtime detection |
|
|
432
|
+
| | `http.ts` | Unified HTTP: `Bun.serve` ↔ `node:http` |
|
|
433
|
+
| | `process.ts` | Unified spawn: `Bun.spawn` ↔ `child_process` |
|
|
434
|
+
| | `crypto.ts` | Crypto utilities |
|
|
435
|
+
| `src/context/` | `agent-monitor.ts` | Redis Pub/Sub for agent lifecycle and messaging |
|
|
436
|
+
| | `storage.ts` | Redis-based shared context store (DB 2) |
|
|
437
|
+
| | `feedback-loop.ts` | Learning from iteration results |
|
|
438
|
+
| | `iteration-tracker.ts` | Track fix attempts per issue |
|
|
439
|
+
| `src/kanban/` | `kanban-store.ts` | Task CRUD with Redis `hset`/`hgetall` persistence |
|
|
440
|
+
| | `workspace-store.ts` | Workspace CRUD operations |
|
|
441
|
+
| | `board-store.ts` | Board management and membership |
|
|
442
|
+
| | `membership-store.ts` | Role-based access: owner / admin / member / viewer |
|
|
443
|
+
| | `migration.ts` | Lazy migration to multi-board schema |
|
|
444
|
+
| `src/recursive/` | `tool-invoker.ts` | Safe recursive tool calls: max depth 2, rate-limited, parallel isolation |
|
|
445
|
+
| `src/tree-sitter/` | `parser-manager.ts` | WASM parser lifecycle for 19 languages |
|
|
446
|
+
| | `types.ts` | Language ↔ extension mappings, symbol types |
|
|
447
|
+
| `src/session/` | `manager.ts` | Session create / destroy / cleanup lifecycle |
|
|
448
|
+
| | `cwd-resolver.ts` | Project path resolution priority chain |
|
|
449
|
+
| `src/tools/` | `registry.ts` | `UnifiedTool` interface, Zod → JSON Schema, broadcast on register |
|
|
450
|
+
| | `index.ts` | Central tool registration (103 tools) |
|
|
451
|
+
| `src/tools/agents/` | 9 tools | `agent-register`, `agent-watch`, `agent-alert`, `agent-inject`, `monitor`, `agent-summary`, `queue-message`, `agent-list`, `agent-history` |
|
|
452
|
+
| `src/tools/code/` | 8 tools | `find-definition`, `find-references`, `find-symbols`, `code-outline`, `insert-before-symbol`, `insert-after-symbol`, `rename-symbol`, `semantic-search` |
|
|
453
|
+
| `src/tools/context/` | 4 tools | `shared-thoughts`, `get-shared-context`, `feedback`, `batch` |
|
|
454
|
+
| `src/tools/edit/` | 4 tools | `insert-at-line`, `delete-lines`, `replace-lines`, `replace-content` |
|
|
455
|
+
| `src/tools/file/` | 5 tools | `file-read`, `file-write`, `file-search`, `file-tree`, `file-diff` |
|
|
456
|
+
| `src/tools/git/` | 5 tools | `git-status`, `git-diff`, `git-log`, `git-blame`, `git-branch` |
|
|
457
|
+
| `src/tools/kanban/` | 16 tools | Tasks (7), boards (5), workspaces (4) |
|
|
458
|
+
| `src/tools/memory/` | 7 tools | `write-memory`, `read-memory`, `list-memories`, `edit-memory`, `delete-memory`, `checkpoint-save`, `checkpoint-restore` |
|
|
459
|
+
| `src/tools/multi-llm/` | 2 tools | `multi-prompt`, `consensus-prompt` |
|
|
460
|
+
| `src/tools/project/` | 5 tools | `project-info`, `run-script`, `run-tests`, `run-lint`, `check-types` |
|
|
461
|
+
| `src/tools/recursive/` | 3 tools | `invoke-tool`, `invoke-batch`, `invocation-log` |
|
|
462
|
+
| `src/tools/specialized/` | 8 tools | `code-review`, `explain-code`, `analyze-deps`, `fix-bug`, `refactor`, `auto-fix`, `auto-fix-agent`, `write-tests` |
|
|
463
|
+
| `src/tools/session/` | 5 tools | `session-list`, `session-info`, `session-create`, `session-switch`, `session-delete` |
|
|
464
|
+
| `src/tools/system/` | 10 tools | `shell-exec`, `process-list`, `env-info`, `memory-usage`, `ai-config`, `ai-models`, `config`, `ping`, `help`, `timeout-test` |
|
|
465
|
+
| `src/tools/loci/` | 4 tools | `graph-query`, `graph-find-path`, `loci-recall`, `sequence-recommend` |
|
|
466
|
+
| `src/tools/mpc/` | 4 tools | `mpc-split`, `mpc-distribute`, `mpc-reconstruct`, `mpc-status` |
|
|
467
|
+
| `src/tools/rl/` | 2 tools | `rl-reward-stats`, `rl-dopamine-log` |
|
|
468
|
+
| `src/utils/` | `commandExecutor.ts` | Process spawning with timeout, SIGTERM → SIGKILL |
|
|
469
|
+
| | `file-utils.ts` | Read/write with encoding detection (UTF-8, UTF-16, Latin1) |
|
|
470
|
+
| | `edit-utils.ts` | Line-based editing helpers |
|
|
471
|
+
| | `git-utils.ts` | Git command builders |
|
|
472
|
+
| | `cache.ts` | In-memory TTL cache |
|
|
473
|
+
| | `validation.ts` | Rate limiting, path validation, input sanitization |
|
|
474
|
+
| | `errors.ts` | Typed error classes (`ValidationError`, `TimeoutError`, etc.) |
|
|
475
|
+
| | `logger.ts` | Structured logging with levels |
|
|
558
476
|
|
|
559
477
|
---
|
|
560
478
|
|
|
@@ -678,25 +596,76 @@ bun dist/index.js [options]
|
|
|
678
596
|
|
|
679
597
|
## Development
|
|
680
598
|
|
|
599
|
+
### Prerequisites
|
|
600
|
+
|
|
601
|
+
| Requirement | Version | Notes |
|
|
602
|
+
|:------------|:--------|:------|
|
|
603
|
+
| **Bun** | ≥ 1.0 | Recommended runtime (faster builds, native TS) |
|
|
604
|
+
| **Node.js** | ≥ 18 | Alternative runtime (requires `npm run build` first) |
|
|
605
|
+
| **Redis** | ≥ 6.0 | Optional — needed for multi-agent, kanban, memory, context sharing |
|
|
606
|
+
| **TypeScript** | 5.0+ | Strict mode enabled, bundled as dev dependency |
|
|
607
|
+
|
|
608
|
+
### Build & Run
|
|
609
|
+
|
|
610
|
+
| Command | Description |
|
|
611
|
+
|:--------|:------------|
|
|
612
|
+
| `bun install` | Install all dependencies |
|
|
613
|
+
| `bun run build:bun` | Bundle for Bun runtime (`dist/`) |
|
|
614
|
+
| `bun run start:bun` | Start server on `:3100` |
|
|
615
|
+
| `bun run dev:bun` | Watch mode with hot-reload |
|
|
616
|
+
| `npm run build` | TypeScript compilation (`tsc`) for Node.js |
|
|
617
|
+
| `npm run start` | Start with Node.js |
|
|
618
|
+
|
|
619
|
+
### Quality & Testing
|
|
620
|
+
|
|
621
|
+
| Command | Description |
|
|
622
|
+
|:--------|:------------|
|
|
623
|
+
| `bun run typecheck` | Type-check without emitting (`tsc --noEmit`) |
|
|
624
|
+
| `bun run lint` | ESLint with TypeScript rules |
|
|
625
|
+
| `bun run format` | Prettier formatting |
|
|
626
|
+
| `bun run prepare` | Run all checks (typecheck + lint + format) — use before committing |
|
|
627
|
+
| `bun run add-license` | Add GPL-3.0 headers to all source files |
|
|
628
|
+
| `bun test` | Run test suite (Vitest) |
|
|
629
|
+
|
|
630
|
+
### Environment Variables
|
|
631
|
+
|
|
632
|
+
| Variable | Default | Description |
|
|
633
|
+
|:---------|:--------|:------------|
|
|
634
|
+
| `OPENAI_API_KEY` | — | OpenAI API key (GPT-5, o3, Codex) |
|
|
635
|
+
| `ANTHROPIC_API_KEY` | — | Anthropic API key (Claude 4.5) |
|
|
636
|
+
| `GEMINI_API_KEY` | — | Google Gemini API key |
|
|
637
|
+
| `GROQ_API_KEY` | — | Groq API key |
|
|
638
|
+
| `DEEPSEEK_API_KEY` | — | DeepSeek API key |
|
|
639
|
+
| `OPENROUTER_API_KEY` | — | OpenRouter API key |
|
|
640
|
+
| `KEMDICODE_SHELL_EXEC_ENABLED` | `false` | Enable `shell-exec` tool (security opt-in) |
|
|
641
|
+
| `MPC_MASTER_SECRET` | — | Master secret for MPC security tools |
|
|
642
|
+
|
|
643
|
+
### Server Management
|
|
644
|
+
|
|
681
645
|
```bash
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
646
|
+
# Start (auto-checks if already running)
|
|
647
|
+
./start-server.sh
|
|
648
|
+
|
|
649
|
+
# Manual start with custom options
|
|
650
|
+
nohup bun dist/index.js --port 3100 -m claude-sonnet-4-5 >> /tmp/kemdicode-mcp.log 2>&1 &
|
|
651
|
+
|
|
652
|
+
# Check status
|
|
653
|
+
nc -z 127.0.0.1 3100 && echo "Running"
|
|
654
|
+
|
|
655
|
+
# View logs
|
|
656
|
+
tail -f /tmp/kemdicode-mcp.log
|
|
657
|
+
|
|
658
|
+
# Restart after code changes
|
|
659
|
+
npm run build && pkill -f "bun dist/index.js" && ./start-server.sh
|
|
691
660
|
```
|
|
692
661
|
|
|
693
|
-
|
|
694
|
-
<summary>Adding a new tool</summary>
|
|
662
|
+
### Adding a New Tool
|
|
695
663
|
|
|
696
|
-
1. Create a file in the appropriate `src/tools
|
|
697
|
-
2. Define a Zod schema
|
|
664
|
+
1. Create a file in the appropriate `src/tools/<category>/` subdirectory.
|
|
665
|
+
2. Define a Zod schema — every field **must** have `.describe()` (used for MCP JSON Schema).
|
|
698
666
|
3. Implement the `UnifiedTool` interface.
|
|
699
|
-
4. Register in `src/tools/index.ts`.
|
|
667
|
+
4. Register the tool in `src/tools/index.ts`.
|
|
668
|
+
5. Build and connected clients receive `notifications/tools/list_changed` automatically.
|
|
700
669
|
|
|
701
670
|
```typescript
|
|
702
671
|
import { z } from 'zod';
|
|
@@ -704,20 +673,37 @@ import type { UnifiedTool } from '../registry.js';
|
|
|
704
673
|
|
|
705
674
|
const schema = z.object({
|
|
706
675
|
input: z.string().describe('Input value'),
|
|
676
|
+
format: z.enum(['json', 'text']).default('json').describe('Output format'),
|
|
707
677
|
});
|
|
708
678
|
|
|
709
|
-
export const myTool: UnifiedTool = {
|
|
679
|
+
export const myTool: UnifiedTool<typeof schema> = {
|
|
710
680
|
name: 'my-tool',
|
|
711
|
-
description: '
|
|
681
|
+
description: 'Short description for MCP tool listing',
|
|
712
682
|
zodSchema: schema,
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
683
|
+
// skipContextShare: true, // Set to true if output is too large for Redis
|
|
684
|
+
execute: async (args, onProgress) => {
|
|
685
|
+
const { input, format } = args;
|
|
686
|
+
|
|
687
|
+
// Optional: stream progress to the client
|
|
688
|
+
onProgress?.('Processing...\n');
|
|
689
|
+
|
|
690
|
+
// Return JSON string
|
|
691
|
+
return JSON.stringify({ result: input, format });
|
|
716
692
|
},
|
|
717
693
|
};
|
|
718
694
|
```
|
|
719
695
|
|
|
720
|
-
|
|
696
|
+
### Project Structure Conventions
|
|
697
|
+
|
|
698
|
+
| Convention | Details |
|
|
699
|
+
|:-----------|:--------|
|
|
700
|
+
| **Language** | TypeScript strict mode, ES modules (`.js` extensions in imports) |
|
|
701
|
+
| **Schemas** | Zod with `.describe()` on every field → auto-generates JSON Schema for MCP |
|
|
702
|
+
| **Error handling** | Typed errors from `utils/errors.ts` (`ValidationError`, `TimeoutError`, `CommandError`) |
|
|
703
|
+
| **File paths** | `@path/file.ts` notation in tool arguments (resolved by session CWD) |
|
|
704
|
+
| **Prompts** | Always English (for model consistency) |
|
|
705
|
+
| **Code style** | Prettier (2-space indent, single quotes, trailing commas) + ESLint |
|
|
706
|
+
| **Commit messages** | English, conventional style (`feat:`, `fix:`, `docs:`, `chore:`) |
|
|
721
707
|
|
|
722
708
|
---
|
|
723
709
|
|
package/dist/ai/execute.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/ai/execute.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IAEf,mDAAmD;IACnD,KAAK,EAAE,SAAS,CAAC;IAEjB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,gDAAgD;IAChD,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAEhB,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IAEd,iCAAiC;IACjC,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/ai/execute.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IAEf,mDAAmD;IACnD,KAAK,EAAE,SAAS,CAAC;IAEjB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB,yEAAyE;IACzE,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,gDAAgD;IAChD,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAEhB,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IAEd,iCAAiC;IACjC,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;CAClB;AA8CD;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmC1E;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAS7F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAM5D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAKhE;AAGD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/ai/execute.js
CHANGED
|
@@ -8,7 +8,8 @@ import { complete, getClientConfig } from './client.js';
|
|
|
8
8
|
import { hasProviderPrefix } from './model-spec.js';
|
|
9
9
|
import { buildAgentMessages, getAgentTemperature, getAgentMaxTokens, } from './agents.js';
|
|
10
10
|
import { loadFileContexts, formatFileContextForPrompt } from './file-context.js';
|
|
11
|
-
// Simple in-memory session storage for conversation history
|
|
11
|
+
// Simple in-memory session storage for conversation history with LRU eviction
|
|
12
|
+
const SESSION_HISTORY_MAX = 100;
|
|
12
13
|
const sessionHistory = new Map();
|
|
13
14
|
/**
|
|
14
15
|
* Shared preparation logic for AI execution
|
|
@@ -58,6 +59,15 @@ export async function executeAI(options) {
|
|
|
58
59
|
if (currentHistory.length > 20) {
|
|
59
60
|
currentHistory.splice(0, currentHistory.length - 20);
|
|
60
61
|
}
|
|
62
|
+
// LRU eviction: delete oldest entry when map exceeds limit
|
|
63
|
+
if (sessionHistory.size >= SESSION_HISTORY_MAX && !sessionHistory.has(historyKey)) {
|
|
64
|
+
const oldestKey = sessionHistory.keys().next().value;
|
|
65
|
+
if (oldestKey !== undefined) {
|
|
66
|
+
sessionHistory.delete(oldestKey);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Re-insert to move to end of Map iteration order (LRU)
|
|
70
|
+
sessionHistory.delete(historyKey);
|
|
61
71
|
sessionHistory.set(historyKey, currentHistory);
|
|
62
72
|
}
|
|
63
73
|
const duration = Date.now() - startTime;
|
package/dist/ai/execute.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/ai/execute.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,GAElB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAoDjF,
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/ai/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,15 +92,15 @@ export declare class AgentMonitor {
|
|
|
92
92
|
/**
|
|
93
93
|
* Subscribe to real-time message updates
|
|
94
94
|
*/
|
|
95
|
-
subscribeToMessages(handler: MessageHandler): Promise<void>;
|
|
95
|
+
subscribeToMessages(handler: MessageHandler): Promise<() => void>;
|
|
96
96
|
/**
|
|
97
97
|
* Subscribe to alerts
|
|
98
98
|
*/
|
|
99
|
-
subscribeToAlerts(handler: AlertHandler): Promise<void>;
|
|
99
|
+
subscribeToAlerts(handler: AlertHandler): Promise<() => void>;
|
|
100
100
|
/**
|
|
101
101
|
* Subscribe to agent status changes
|
|
102
102
|
*/
|
|
103
|
-
subscribeToStatusUpdates(handler: StatusHandler): Promise<void>;
|
|
103
|
+
subscribeToStatusUpdates(handler: StatusHandler): Promise<() => void>;
|
|
104
104
|
private publishStatusUpdate;
|
|
105
105
|
/**
|
|
106
106
|
* Update agent activity summary (agent reports what they're doing)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-monitor.d.ts","sourceRoot":"","sources":["../../src/context/agent-monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAeH,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,WAAW,EAGX,WAAW,EACX,SAAS,EACT,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,aAAa,EAMd,MAAM,YAAY,CAAC;AAEpB,KAAK,cAAc,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;AACtD,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;AACrD,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;AAE/C,qBAAa,YAAY;IAWX,OAAO,CAAC,QAAQ,CAAC,MAAM;IAVnC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"agent-monitor.d.ts","sourceRoot":"","sources":["../../src/context/agent-monitor.ts"],"names":[],"mappings":"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"}
|