Skip to content

cirvine-MSFT/editless-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EditLess Service

Multi-process .NET service with a Brain-centric architecture for AI-powered editing workflows.

Architecture

┌─────────────────────────────────────────────────────────┐
│                     Ringleader                          │
│                  (User Autostart)                      │
│           Spawns & monitors all processes                │
└─────────┬──────────┬──────────┬──────────┬──────────────┘
          │          │          │          │
          ▼          ▼          ▼          ▼
    ┌──────────┐ ┌────────┐ ┌─────────┐ ┌──────────────┐
    │  Brain   │ │  Web   │ │Desktop  │ │ Channel Host │
    │ :4000    │ │  :3000 │ │(Avalonia│ │  (Teams)     │
    │ TLS/TCP  │ │ SignalR │ │  app)   │ │              │
    │ JSON-RPC │ │        │ │         │ │              │
    │ :4001 ♥  │ │        │ │         │ │              │
    └──────────┘ └───┬────┘ └────┬────┘ └──────┬───────┘
          ▲          │           │              │
          │          └───────────┴──────────────┘
          │                      │
          └──── BrainClient ─────┘
                (TLS/TCP JSON-RPC)

Brain (:4000) — Central server. Owns the Copilot SDK, MCP servers, and all AI logic. Exposes a JSON-RPC API over TLS/TCP. Health endpoint on :4001.

Web UI (:3000) — ASP.NET Core + SignalR. Thin client that forwards everything to Brain via BrainClient.

Desktop — Avalonia app. Same thin-client pattern via BrainClient.

Channel Host — Background process for Teams channel monitoring. Connects to Brain.

Ringleader — Process manager that spawns and monitors all child processes. Runs as a user autostart process.

SharedBrainClient, protocol types, config schema. Used by all client processes.

Getting Started

Prerequisites

  • .NET 9 SDK
  • Windows (for Ringleader autostart; other components are cross-platform)
  • Dev Tunnels CLI (optional, for remote access)

Build

dotnet build

Run (development)

Start Brain and Web separately:

# Terminal 1: Brain
dotnet run --project src/EditLess.Brain

# Terminal 2: Web UI
dotnet run --project src/EditLess.Web

Then open http://localhost:3000 in your browser.

Remote Access (Dev Tunnel)

# Start with Dev Tunnel (requires devtunnel CLI)
./scripts/dev.ps1 -WithTunnel

Run Tests

dotnet test

TLS Setup (optional)

./scripts/setup-tls.ps1

Project Structure

Project Type Description
EditLess.Brain Console App JSON-RPC server, Copilot SDK, health endpoint
EditLess.Shared Class Library BrainClient, protocol types, config schema
EditLess.Web ASP.NET Core SignalR hub, static chat UI
EditLess.Desktop Avalonia App Native desktop chat client
EditLess.ChannelHost Console App Teams channel monitoring
EditLess.Ringleader Worker Service Process manager (autostart)
EditLess.Brain.Tests xUnit Brain unit tests
EditLess.Shared.Tests xUnit Shared library tests
EditLess.Ringleader.Tests xUnit Ringleader/tunnel unit tests

Tech Stack

Component Technology
Runtime .NET 9
RPC StreamJsonRpc (JSON-RPC 2.0 over TCP)
Web ASP.NET Core + SignalR
Desktop Avalonia 11 + Fluent Theme
AI GitHub Copilot SDK (Phase 1)
Database SQLite (via Microsoft.Data.Sqlite)
TLS OpenSSL / .NET self-signed certs
CI GitHub Actions

Configuration

Edit editless.config.json at the repo root. See src/EditLess.Shared/Config/EditLessConfig.cs for the full schema.

About

EditLess Service — .NET Brain + Web + Desktop + Windows Service for AI agent management

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors