JSPM

  • Created
  • Published
  • Downloads 86
  • Score
    100M100P100Q68632F
  • License Apache-2.0

Autonomous desktop AI agent — 22 tools, multi-provider LLM, self-learning skills, sub-agent parallelism, mistake memory. Runs locally with OpenAI, Anthropic, DeepSeek, Ollama or any OpenAI-compatible API.

Package Exports

  • devmine

Readme

DevMine Desktop

Универсальный AI-агент для десктопа и сервера — работает с кодом, данными, физикой, математикой и любыми задачами.

Встроенная поддержка Telegram, 28+ инструментов, автономные skills, суб-агенты, Pattern DNA, Shadow Compilation и Digital Mine UI.


Возможности

Ядро агента

  • Универсальная экспертиза — не только код: физика, математика, game design, data analysis, архитектура
  • 28+ встроенных инструментов — bash, file read/write/edit, grep, glob, web search/fetch, memory, diagnose, LSP, agent (суб-агенты), remote SSH, computer use, worktree и др.
  • Автономные Skills — автоматический подбор и создание навыков через skill_list / skill_execute / skill_create
  • Суб-агенты — параллельное выполнение независимых задач через agent tool с Promise.allSettled()
  • Pattern DNA — автоматическое извлечение стиля кода проекта (naming, imports, error handling, frameworks) и инъекция в system prompt
  • Error Memory Bank — самообучающаяся память ошибок модели с Jaccard similarity fingerprinting и 7-дневным half-life decay
  • Shadow Compilation v2 — фоновая компиляция с авто-исправлением (semicolons, unused vars, missing .js extensions, implicit any) до 3 итераций без участия модели
  • Context Phoenix — 5-уровневая tier-based компакция контекста (none → trim → compact → aggressive → nuclear) с авто-восстановлением при overflow
  • God Mode — каскадный эскалационный движок с 3 уровнями (Unchained → Sovereign → Apex)

Telegram Gateway

  • Полноценный бот — polling (dev) и webhook (production) через Bot API
  • Mining Dashboard — живой дашборд в Telegram с фазами (analyzing → thinking → tooling → writing → done), progress bar ▓▓▓▓░░, tool timeline, token counter
  • Dual-message система — dashboard message (редактируется каждые 2с) + streaming response message
  • Auto-Continue — автоматическое продолжение длительных задач (до 24 циклов по 60 мин = 24 часа)
  • Команды: /start, /help, /reset, /status, /stop
  • Авторизация — по Telegram user ID, поддержка каналов и групп с configurable requireMention
  • Безопасность — webhook secret verification, rate limiting (2 concurrent per user), 1MB body limit, SSRF защита
  • Session persistence — JSON file persistence с debounced save, TTL-based cleanup, per-channel-peer scope

UI режимы

Desktop (Tauri v2)

  • Нативное десктопное приложение с React UI
  • Setup wizard с выбором провайдера и вводом API ключа
  • Мультимодальный ввод: изображения, PDF, DOCX, XLSX, PPTX, TXT, CSV, JSON
  • Tool Call Display с mining-иконками, живым таймером, badge результатов
  • Thinking indicator с анимированными точками

TUI (Ink/React Terminal UI)

  • Digital Mine тема — золотая/медная палитра (#D4A847, #CD7F32, #50C878)
  • Activity Bar — горизонтальная полоса с фазами работы агента
  • Tool Timeline — последние 3 инструмента с иконками статуса
  • Markdown rendering (headers, bullets, bold, code fences, separators)
  • SpinnerStore (external store) — анимация без лишних re-рендеров
  • InkErrorBoundary + graceful shutdown (SIGINT/SIGTERM)

REPL (Readline)

  • Multiline input (\ в конце строки)
  • Slash-команды: /help, /clear, /model, /status, /resume, /sessions
  • Digital Mine ANSI formatting (gold/amber/copper)
  • Double Ctrl+C для exit

Провайдеры моделей

  • OpenAI (GPT-4o, o1, o3 и др.)
  • Anthropic (Claude 4 Sonnet, Opus)
  • Google Gemini (2.5 Flash/Pro)
  • GLM (ChatGLM)
  • Ollama (локальные модели)
  • OpenRouter (aggregator — доступ к 200+ моделям)
  • MCP (Model Context Protocol) — подключение внешних tools через stdio/SSE

Безопасность

  • Plan Mode — режим планирования без выполнения изменений
  • Verification Gate — предварительная проверка до записи файлов
  • Rate Limiting — ограничение частоты вызовов инструментов
  • SSRF Protection — блокировка private IPs в web_fetch
  • File Validation — проверка path/content в file_write
  • Tool Metadata — risk levels (low/medium/high) для каждого инструмента

Архитектура

┌─────────────────────────────────────────────────────────┐
│                    DevMine Desktop                       │
├─────────┬──────────┬──────────┬────────────────────────┤
│ Desktop │   TUI    │   REPL   │   Telegram Gateway     │
│ (Tauri) │  (Ink)   │(readline)│   (HTTP + Bot API)     │
├─────────┴──────────┴──────────┴────────────────────────┤
│                    Agent Core                            │
│  ┌────────────┬──────────────┬───────────────────────┐  │
│  │ Agent Loop │ Query Engine │ Streaming Tool Exec   │  │
│  └────────────┴──────────────┴───────────────────────┘  │
├─────────────────────────────────────────────────────────┤
│  ┌──────────┬──────────┬──────────┬──────────────────┐  │
│  │ 28 Tools │ Services │ Prompts  │ Connect Adapters  │  │
│  └──────────┴──────────┴──────────┴──────────────────┘  │
├─────────────────────────────────────────────────────────┤
│  ┌──────────┬──────────┬──────────┬──────────────────┐  │
│  │ Pattern  │  Error   │ Shadow   │ Context Phoenix   │  │
│  │   DNA    │  Memory  │Compiler  │ (Compaction)      │  │
│  └──────────┴──────────┴──────────┴──────────────────┘  │
├─────────────────────────────────────────────────────────┤
│              MCP Protocol │ Memory │ Skills             │
└─────────────────────────────────────────────────────────┘

Быстрый старт

Установка (Desktop)

# Скачать последнюю версию с GitHub Releases
# Windows: DevMine-Setup-1.2.0.exe
# macOS:   DevMine-1.2.0.dmg
# Linux:   devmine_1.2.0_amd64.deb

Установка (CLI / Server)

npm install -g devmine-desktop

# или из исходников
git clone https://github.com/cliskill/devmine-desktop.git
cd devmine-desktop
npm install
npm run build

Запуск

# Desktop (Tauri)
npm run tauri:dev

# CLI — автоматически выберет лучший UI
devmine

# CLI — форсированный TUI
devmine --tui

# CLI — форсированный REPL
devmine --repl

# Server — Telegram Gateway
devmine serve --config ./devmine-server.json

Конфигурация

Desktop / CLI (.devminerc.json)

{
  "activeProvider": "openai",
  "providers": {
    "openai": {
      "apiKey": "sk-...",
      "model": "gpt-4o",
      "baseUrl": "https://api.openai.com/v1",
      "maxTokens": 16384,
      "temperature": 0.7
    },
    "anthropic": {
      "apiKey": "sk-ant-...",
      "model": "claude-sonnet-4-20250514",
      "maxTokens": 16384
    },
    "ollama": {
      "baseUrl": "http://localhost:11434",
      "model": "llama3"
    }
  },
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
    }
  }
}

Telegram Gateway (devmine-server.json)

{
  "server": {
    "port": 8787,
    "host": "0.0.0.0"
  },
  "telegram": {
    "botToken": "123456:ABC-...",
    "polling": false,                // true = polling (dev), false = webhook (prod)
    "webhookUrl": "https://your.domain",
    "webhookSecret": "your-secret",  // verification secret
    "allowAll": false,               // restrict access
    "allowFrom": [123456789],        // authorized Telegram user IDs
    "channels": [
      {
        "id": "-1001234567890",
        "requireMention": false      // bot responds to all messages in group
      }
    ],
    "streaming": {
      "mode": "partial",
      "textChunkLimit": 4000
    }
  },
  "agent": {
    "model": "anthropic/claude-sonnet-4-20250514",
    "maxTokens": 16384,
    "maxTurns": 50,
    "maxContextTokens": 256000,
    "systemPrompt": "You are a helpful assistant.",
    "workspacePath": "/path/to/workspace"  // IDENTITY.md, SOUL.md, AGENTS.md, TOOLS.md
  },
  "providers": [
    {
      "name": "main",
      "format": "anthropic",         // openai-compatible | anthropic | glm
      "apiKey": "sk-ant-...",
      "model": "claude-sonnet-4-20250514",
      "baseUrl": "https://api.anthropic.com"
    }
  ],
  "session": {
    "ttlMinutes": 1440,              // 24 часа
    "maxHistory": 200,
    "scope": "per-channel-peer"      // изоляция сессий
  }
}

28+ инструментов

# Инструмент Категория Risk Описание
1 bash system medium Выполнение shell команд
2 file_read file low Чтение файлов с line ranges
3 file_edit file medium Точечное редактирование файлов
4 file_write file high Создание/перезапись файлов
5 glob search low Поиск файлов по паттерну
6 grep search low Поиск по содержимому файлов
7 search_symbol search low Поиск определений (functions, classes, types)
8 web_search network low Поиск в интернете
9 web_fetch network medium Чтение URL
10 memory memory low Персистентная память между сессиями
11 diagnose system low Диагностика ошибок и project health
12 agent agent medium Суб-агенты для параллельного выполнения
13 skill_list skill low Список доступных навыков
14 skill_execute skill medium Выполнение навыка
15 skill_create skill medium Создание нового навыка
16 todo_write ui low Управление задачами
17 lsp search low Language Server Protocol (go_to_definition, find_references, hover)
18 computer_use system high Взаимодействие с экраном через accessibility
19 remote system high SSH сессии и удалённое выполнение
20 worktree system medium Git worktree управление
21 background_bash system medium Фоновые shell процессы
22 task_list system low Список фоновых задач
23 task_output system low Результат фоновой задачи
24 task_stop system medium Остановка фоновой задачи
25 tool_search search low Поиск по инструментам
26 enter_plan_mode system low Переход в режим планирования
27 exit_plan_mode system low Выход из режима планирования
28 file_outline file low Структура файла (outline)

Сервисы

Pattern DNA (src/services/pattern-dna.ts)

Автоматическое извлечение стиля кода проекта:

  • Naming conventions (camelCase, snake_case, PascalCase)
  • Import patterns (relative, barrel, deep)
  • Error handling (try/catch, Result, throws)
  • Test patterns (describe/it, test())
  • Export style (named, default, barrel)
  • Frameworks detection (React, Express, Tauri)
  • Styling approach (CSS modules, Tailwind, styled)
  • Генерация компактного DNA prompt (~300 tokens)

Error Memory Bank (src/services/error-memory.ts)

Самообучающаяся память ошибок:

  • Jaccard similarity fingerprinting для дедупликации
  • 7-дневный half-life decay — старые ошибки забываются
  • Max 500 entries с auto-eviction
  • JSON persistence
  • Генерация warning prompt для system prompt

Shadow Compilation v2 (src/services/shadow-compiler.ts)

Фоновая компиляция с авто-исправлением:

  • Silent compilation loop — пользователь не видит промежуточных ошибок
  • Auto-fixes: semicolons, unused vars, missing .js extensions, implicit any
  • До 3 fix итераций без round-trip к модели
  • Запись failures в Error Memory Bank

Context Phoenix (src/ui/lib/agent-compaction.ts)

5-уровневая tier-based компакция:

Tier Trigger Действие
0 (none) < 75% контекста Нет компакции
1 (trim) 75–85% Strip media + summarize tool results
2 (compact) 85–95% Strip + summarize + compact messages
3 (aggressive) 95–100% Keep only 6 exchanges
4 (nuclear) > 100% Keep only 3 exchanges

Skills System

DevMine автоматически подбирает и использует навыки:

21 встроенный skill:

Категория Skills
Code Code Review, Smart Refactor, Test Generator, Explain Code
Security Security Audit (OWASP)
Docs Doc Generator
Performance Performance Analyzer
Mode God Mode (3-tier escalation)
Design Animated Video, Interactive Prototype, Make a Deck, Make Tweakable, Frontend Design, Wireframe
Export Export PPTX (Editable), Export PPTX (Screenshots), Save as PDF, Save as Standalone HTML, Send to Canva
Workflow Create Design System, Handoff to Code

Автоматическое поведение:

  1. Анализ задачи → findMatchingSkills() (keyword + fuzzy Levenshtein)
  2. Scoring: name (0.4) + tag (0.2) + category (0.15) + desc keyword (0.1)
  3. Если нет подходящего skill → skill_create автоматически
  4. Если задача сложная → делегирование суб-агентам через agent tool

Структура проекта

devmine-desktop/
├── src/                          # TypeScript source (297 .ts + 44 .tsx = 341 files, 50 522 lines)
│   ├── bootstrap/                # CLI entry point (1 file)
│   ├── config/                   # Конфигурация и Zod-схемы (6 files)
│   ├── connect/                  # Provider adapters (14 files)
│   │   ├── anthropic-adapter.ts  # Anthropic Claude
│   │   ├── generic-adapter.ts    # OpenAI-compatible
│   │   ├── glm-adapter.ts        # ChatGLM
│   │   ├── ollama-adapter.ts     # Ollama local
│   │   └── types.ts              # ContentBlock types
│   ├── core/                     # Agent core (7 files)
│   │   ├── loop.ts               # Agent loop engine
│   │   └── query-engine.ts       # Query execution
│   ├── extensions/               # Расширения (10 files)
│   │   └── skill-registry.ts     # Skill matching engine
│   ├── hooks/                    # React hooks (5 files)
│   ├── infra/                    # Infrastructure (4 files)
│   ├── mcp/                      # MCP Protocol (6 files)
│   │   └── mcp-tool-adapter.ts   # MCP → Tool bridge
│   ├── memory/                   # Memory system (9 files)
│   ├── prompts/                  # System prompts (4 files)
│   ├── remote/                   # SSH remote (2 files)
│   ├── safety/                   # Safety & permissions (5 files)
│   ├── server/                   # Telegram Gateway (6 files)
│   │   ├── gateway.ts            # HTTP server + Telegram pipeline
│   │   ├── telegram-bot.ts       # Bot API integration
│   │   ├── session-store.ts      # Session management
│   │   ├── server-config.ts      # Zod config schema
│   │   ├── mining-dashboard.ts   # Live progress dashboard
│   │   └── entry.ts              # CLI: devmine serve
│   ├── services/                 # Core services (64 files)
│   │   ├── pattern-dna.ts        # Code style extraction
│   │   ├── error-memory.ts       # Error memory bank
│   │   ├── shadow-compiler.ts    # Shadow compilation
│   │   ├── god-mode.ts           # God Mode engine
│   │   ├── orchestrator.ts       # Unified orchestrator
│   │   ├── plan-mode.ts          # Plan mode state machine
│   │   ├── adaptive-strategy.ts  # Adaptive strategy selector
│   │   ├── streaming-tool-executor.ts  # Parallel tool execution
│   │   ├── tool-pool.ts          # Tool pooling
│   │   ├── cost-tracker.ts       # Token cost tracking
│   │   └── ...                   # +53 more services
│   ├── swarm/                    # Swarm coordination (4 files)
│   ├── tasks/                    # Task management (5 files)
│   ├── tools/                    # Tool system (37 files)
│   │   ├── builtins/             # 28 built-in tools
│   │   │   ├── agent-tool.ts     # Sub-agent system
│   │   │   ├── bash-tool.ts      # Shell execution
│   │   │   ├── file-*.ts         # File operations
│   │   │   ├── grep-tool.ts      # Content search
│   │   │   ├── web-*.ts          # Web tools
│   │   │   ├── memory-tool.ts    # Persistent memory
│   │   │   ├── lsp-tool.ts       # Language Server
│   │   │   └── ...               # +20 more tools
│   │   ├── tool-schemas.ts       # Zod schemas
│   │   └── tauri-tools.ts        # Desktop re-exports
│   ├── ui/                       # User interfaces (148 files)
│   │   ├── components/           # React components
│   │   │   ├── ChatPanel.tsx     # Chat interface
│   │   │   ├── ToolCallDisplay.tsx # Tool visualization
│   │   │   └── MessageBubble.tsx  # Message rendering
│   │   ├── hooks/                # React hooks
│   │   │   └── useAgent.ts       # Agent hook with Phoenix recovery
│   │   ├── lib/                  # UI logic
│   │   │   ├── agent-loop-impl.ts # UI agent loop
│   │   │   ├── agent-compaction.ts # Context Phoenix
│   │   │   └── context-manager.ts  # Context management
│   │   ├── stores/               # Zustand stores
│   │   ├── styles/               # CSS styles
│   │   ├── ink-app.tsx           # TUI (582 lines, Ink/React)
│   │   ├── repl.ts              # REPL (628 lines, readline)
│   │   ├── App.tsx               # Desktop React app
│   │   └── main.tsx              # Entry point
│   └── utils/                    # Utilities (5 files)
├── src-tauri/                    # Rust/Tauri backend (14 files, 3 983 lines)
│   └── src/
│       ├── main.rs               # Tauri app entry
│       └── lib.rs                # Native commands
├── package.json                  # v1.2.0, Apache-2.0
├── tsup.config.ts                # 3 entry points
├── Cargo.toml                    # Tauri v2
└── vite.config.ts                # Vite bundler

Статистика

Метрика Значение
TypeScript файлов 297
TSX файлов 44
Rust файлов 14
Всего исходников 355 файлов
Строк TypeScript 50 522
Строк Rust 3 983
Встроенных инструментов 28+
Встроенных skills 21
Provider адаптеров 6 (OpenAI, Anthropic, Gemini, GLM, Ollama, OpenRouter)
UI режимов 3 (Desktop, TUI, REPL)
Серверных модулей 6
Сервисов 64 файла
TypeScript компиляция 0 ошибок
Rust компиляция 0 ошибок, 0 warnings

Tech Stack

Слой Технология
Desktop Tauri v2 (Rust + WebView)
Frontend React 19 + TypeScript 5.8
CLI/TUI Ink (React in Terminal) + readline
State Zustand
Validation Zod
Build Vite + tsup (3 entry points)
Server Node.js HTTP + Telegram Bot API
LSP vscode-languageclient
MCP Model Context Protocol (stdio/SSE)
Package Manager npm

Entry Points

{
  "bin": {
    "devmine": "dist/bootstrap/cli.js",
    "devmine-serve": "dist/server/entry.js"
  }
}
Команда Режим Описание
devmine Auto (TUI > REPL) Автоматический выбор лучшего UI
devmine --tui TUI (Ink) Форсированный terminal UI
devmine --repl REPL (readline) Форсированный REPL
devmine serve Server Telegram Gateway сервер
devmine --verbose Debug Вывод timing каждой фазы

License

Apache-2.0


DevMine Desktop — Universal AI Agent
devmine.ru