An open API service indexing awesome lists of open source software.

https://github.com/jeanpaul20/aethon-mission-control

AI-powered coding orchestrator for VS Code — refine prompts, multi-model proposals, training data export
https://github.com/jeanpaul20/aethon-mission-control

ai ai-agents ai-assistant code-review copilot machine-learning ollama orchestrator prompt-engineering training-data typescript vscode-extension

Last synced: 4 months ago
JSON representation

AI-powered coding orchestrator for VS Code — refine prompts, multi-model proposals, training data export

Awesome Lists containing this project

README

          


Aethon

Aethon Mission Control


AI-powered coding orchestrator for VS Code.

GitHub · Issues · Training Pipeline · MIT License

---

AI-powered coding Orchestrator for VS Code. Refine rough ideas into clean task prompts, get multi-model proposals, and evaluate the best approach — all from the Copilot Chat sidebar.

## Features

- **`@aethon`** — Chat participant in GitHub Copilot Chat
- **Prompt Refinement** — Iteratively refine rough ideas into precise task descriptions
- **/finalize** — Save refined tasks to `.aethon/` for tracking
- **/propose** — Get parallel code proposals from multiple AI models (Copilot + Ollama + Infomaniak + custom providers)
- **/evaluate** — Score and synthesize the best approach (supports Copilot, Ollama, Infomaniak, and custom providers)
- **/export** — Export training data to Alpaca/ShareGPT/DPO (local-only by default; see [Training Pipeline](TRAINING_PIPELINE.md))
- **Security Scanner** — Auto-scans proposals for hardcoded secrets, SQL injection, XSS, and more
- **Domain Auto-tagging** — Training data is automatically tagged with the detected domain (auth, api, database, ui, etc.)
- **Human Feedback Loop** — Thumbs-up/down on Copilot Chat responses is logged for DPO datasets
- **Git Hook Integration** — Pre-commit hook auto-exports training data on every commit
- **Task README** — Auto-generated README-task-*.md summarizes each task lifecycle
- **Knowledge System** — Inject your coding principles into every prompt
- **Memory Logger** — Self-learning training data (JSONL) for continuous improvement
- **Dashboard** — Visual overview of workflow, commands, and usage stats

## New in v0.12.0

- **Agent state machine** — The `/code` agent now follows a structured lifecycle: plan → execute → verify → revise. After making changes, it automatically runs diagnostics and loops back to fix issues (up to 3 revisions). No more fire-and-forget edits.
- **MCP server** — Expose Aethon's tools to external LM clients (Claude Desktop, other IDEs) via the Model Context Protocol. Run "Aethon: Start MCP Server (stdio)" to start.
- **Typed DI container** — `ServiceToken` provides compile-time type safety. `container.get(Tokens.outputChannel)` returns `OutputChannel` — no more manual `` casts.
- **CentralPathResolver split** — Internals extracted into 3 focused classes (`WorkspaceResolver`, `SpecialFolderResolver`, `PathStringUtils`). Public API unchanged.
- **HTTP keep-alive** — `HttpAethonGateway` reuses TCP connections across requests for lower latency.
- **AutoUpdate ETag + backoff** — GitHub release checks use ETag/304 to avoid rate limits. Exponential backoff on failures (30s → 30min).
- **ESLint import/no-cycle** — Circular dependency detection at lint time.
- **proposeHandler strategy map** — Model configuration refactored to declarative strategy pattern.
- **State-driven webview** — Chat UI rendering centralized through a single `render()` function.

What was new in v0.11.0

- **Language Model Tools** — 4 tools (`aethon_readFile`, `aethon_editFile`, `aethon_listFiles`, `aethon_runTerminal`) registered via `vscode.lm.registerTool()`. Switch to Agent mode in Copilot Chat and these tools are discovered automatically — enabling file editing, workspace browsing, and terminal commands through Aethon.
- **`/improve` command** — AI-powered codebase analysis. Scans the workspace with `CodebaseAnalyzer`, queries the selected LM for improvement suggestions across 8 categories (architecture, multi-agent patterns, tools, performance, error handling, code quality, security, UX). Supports focus areas: `@aethon /improve architecture`, `@aethon /improve security`, etc.
- **Self-improvement prompt** — New `SELF_IMPROVEMENT_PROMPT.md` template for feeding to any AI for targeted Aethon improvement proposals.

What was new in v0.10.2

- **Infomaniak client centralized** — All Infomaniak API client construction now goes through one factory method (`InfomaniakClient.fromSettings()`), eliminating 6 scattered config-read sites.
- **Dead code cleanup** — Removed 35 unused variables, imports, and parameters across 19 source files following strict TypeScript checking.

What was new in v0.10.1

- **Centralized Ollama registry** — All Ollama model validation now goes through one cached utility (`OllamaDiscovery.getClient()`). Endpoints are probed once and cached for 60 seconds — no repeated network probes on every command.

What was new in v0.10.0

- **Ollama model fallback** — If a configured Ollama model doesn’t exist on any server (e.g. you set `codellama` but only have `llama3`), the extension shows a picker of all available models across all endpoints instead of crashing with a 404. Your choice is saved to settings automatically.

What was new in v0.9.1

- **Configure Proposal Models fix** — The configure command now shows Copilot, Ollama, and Infomaniak model pickers every time, regardless of which provider is currently active. Pre-configure models for any provider you might switch to later.

What was new in v0.9.0

- **Multi-endpoint Ollama** — Connect unlimited Ollama servers (local, network, cloud) via `aethon.ollamaEndpoints`. Models from all endpoints are aggregated and each request is routed to the correct server automatically.
- **Network scan** — Run "Aethon: Scan for Ollama Servers" to auto-discover Ollama instances on your local network (ports 11434, 8080, 3000, 8000, 8888).
- **Copilot orchestrator** — The orchestrator planner/verifier can now use Copilot models. Set `aethon.orchestratorProvider` to `copilot` and it works.
- **Remote SSH support** — Works correctly when VS Code is SSH-connected to a remote host. Cross-OS paths are detected and skipped, folder browsing works via QuickPick instead of failing.

What was new in v0.8.0

- **Settings-first model selection** — Pre-configure which models `/propose` uses in settings. No more flimsy dropdown popups — QuickPick only appears as a fallback, and stays open on scroll.
- **Configure Proposal Models** — New command (Settings sidebar or command palette) walks you through each active provider and saves your model choices permanently.
- **Workspace file mirror** — Tasks, proposals, evaluations, and memory are now mirrored to `.aethon/` in your workspace so files are always visible in the VS Code file tree.
- **Training export fix** — Proposal files are now correctly discovered by the training data exporter (suffix match instead of prefix match).

What was new in v0.7.3

- **`/release` command** — Developer release manager. Start a release (`@aethon /release patch`), track a live checklist, and finalize with one command (version bump → changelog validation → compile → commit → tag → push). No more skipped steps.
- **Release state tracking** — Active releases persist across VS Code restarts. Abort anytime with `@aethon /release abort`.
- **Command palette** — "Aethon: Release Manager" added.

What was new in v0.7.2

- **Domain-filtered knowledge injection** — Knowledge files are now filtered by the detected domain of your prompt. UI principles only load for UI tasks, update principles only for deployment tasks. Saves ~50–70% tokens per call.
- **Skip knowledge on iterations** — Refinement iterations no longer re-inject knowledge (already baked into the prompt). Saves ~7,000 tokens per iteration.
- **Privacy-first training export** — Training data stays local by default. HuggingFace push requires explicit opt-in, uses modal warning, and always creates private repos.
- **Knowledge numbering convention** — Standard files use `00–49`, user custom files use `50–99`. User files are never overwritten by updates.
- **Training Pipeline documentation** — New [TRAINING_PIPELINE.md](TRAINING_PIPELINE.md) with full pipeline guide, privacy model, and local fine-tuning examples.
- **Hardened `.gitignore`** — Protects against accidental upload of training data, secrets, personal notes, and temp files.

What was new in v0.7.1

- **Fixed "Endpoint not found for model auto" error** — Critical fix for users with "Auto select AI" enabled in Copilot Chat
- **Smart model selection** — The extension now intelligently respects your model choice, checks settings for preferences, and prompts only when needed
- **New setting: `aethon.preferredCopilotModel`** — Set your default Copilot model (e.g., "gpt-4o", "claude-3.5-sonnet") to avoid selection prompts when using "Auto select AI"
- **Automated release pipeline** — GitHub Actions workflow auto-creates releases, uploads `.vsix`, and tracks issues on tag push
- **Automated issue tracking** — `scripts/create-issue.js` enables programmatic GitHub issue creation/closing for full audit trail

What was new in v0.7.0

- **AI Provider dropdowns** — Four dropdowns in the Settings sidebar let you pick which AI handles each role: proposal, evaluation, orchestrator planning, and orchestrator coding.
- **Orchestrator coder provider** — The AI that executes coding prompts can now be any provider (Copilot, Ollama, Infomaniak, or Custom). Select Ollama for fully offline orchestration.
- **Orchestrator planner provider** — Dedicated `aethon.orchestratorProvider` setting — no longer tied to `evaluationProvider`.
- **Provider labels** — Each dropdown shows whether a provider is local, cloud, or Swiss cloud.
- **Dynamic labels in output** — Orchestrator messages show exactly which AI is planning, coding, and verifying.

What was new in v0.6.1 / v0.6.2

**v0.6.2**
- **Dashboard version display** — Version number shown next to 🎯 Aethon title in the sidebar dashboard.
- **Auto-update proxy fix** — Replaced Node.js `https` module with `fetch()` API to avoid VS Code proxy errors.

**v0.6.1**
- **GitHub auto-update** — The extension automatically checks your GitHub repository for new releases. When a newer version is found, it downloads the `.vsix` and installs it — no manual download needed.
- **Configurable interval** — Set how often to check (default: every 6 hours). Disable entirely via `aethon.autoUpdate.enabled`.
- **Manual check** — Run `Aethon: Check for Updates` from the command palette anytime.
- **Skip version** — Dismiss a specific release and you won't be prompted again for it.

What was new in v0.6.0

1. **Infomaniak AI integration** — First-class provider for Infomaniak's Swiss-hosted AI API. Privacy-classified as 🔵 Private Cloud — your source code is processed in Swiss data centers and never used for training.
2. **Generic multi-provider architecture** — New `OpenAICompatibleClient` supports ANY provider with an OpenAI-compatible API: Groq, Together AI, Mistral, HuggingFace Inference, OpenRouter, and self-hosted endpoints.
3. **Privacy-first enforcement** — Source code is ONLY sent to `local` (Ollama) and `private` (Infomaniak) providers. Cloud providers with `standard` or `unknown` privacy levels receive the task description only — your code never leaves your machine.
4. **AnonymizationService in propose/evaluate** — Cloud-bound messages are automatically sanitized: API keys, file paths, company names, and custom patterns are stripped before sending.
5. **Privacy Dashboard** — `/status` shows a table with each provider's privacy level, code access policy (Full source vs Task only), and online status.
6. **Privacy Report** — After `/propose`, a report shows exactly which providers had source code withheld and why.
7. **Custom providers via settings** — Configure unlimited OpenAI-compatible providers in `aethon.customProviders` with per-provider privacy classification.
8. **Provider presets** — Built-in presets for Groq, Together AI, Mistral, HuggingFace, and OpenRouter — just add your API key.

What was new in v0.5.0

1. **Security & style feedback on `/propose`** — Proposals are scanned for 14 security patterns (hardcoded secrets, eval, SQL injection, XSS, etc.) and 4 style patterns. Feedback is appended to proposal files.
2. **Auto-tag domain** — Training entries are auto-tagged with a domain (`auth`, `api`, `database`, `ui`, `security`, `testing`, `deployment`, `performance`, `general`).
3. **Git hook integration** — Run command `Aethon: Install Git Hook` to add a pre-commit hook that auto-exports training data.
4. **Human feedback loop** — Copilot Chat thumbs-up/down feedback is captured and logged to memory.jsonl for DPO training.
5. **Local LLMs in `/propose`** — New `aethon.proposalProvider` setting: `copilot`, `ollama`, or `both` for parallel proposals.
6. **MLflow / W&B export** — `/export` now offers to push experiment metrics to MLflow Tracking or Weights & Biases dashboards.
7. **Auto-generate task README** — After `/finalize` or `/evaluate`, a comprehensive README-task-*.md is generated.

## Usage

1. Open Copilot Chat (Ctrl+Shift+I)
2. Type `@aethon` followed by your rough coding idea
3. Iterate on the refinement until satisfied
4. Use `/finalize` to save, `/propose` to get proposals, `/evaluate` to compare

## Settings

| Setting | Default | Description |
|---------|---------|-------------|
| **Storage** | | |
| `aethon.centralFolder` | *(globalStorage)* | Override root folder for all Aethon data |
| `aethon.knowledgeFolderPath` | | Custom path for knowledge files |
| `aethon.memoryFolderPath` | | Custom path for memory / training data |
| **Backend** | | |
| `aethon.backendPort` | `3123` | Port for the local orchestrator backend |
| `aethon.mockMode` | `false` | Use mock backend instead of live server |
| **Privacy / Anonymization** | | |
| `aethon.cloudEscalationMode` | `ask` | When to escalate to cloud (`always` / `ask` / `never`) |
| `aethon.alwaysAnonymizeBeforeCloud` | `true` | Strip sensitive data before cloud calls |
| `aethon.anonymizeFilePaths` | `true` | Mask file paths in cloud payloads |
| `aethon.anonymizeCompanyNames` | `true` | Mask company names in cloud payloads |
| `aethon.anonymizationPatterns` | `[]` | Extra regex patterns to mask |
| `aethon.anonymizationMaxChars` | `8000` | Max characters sent in a single cloud payload |
| **AI Providers** | | |
| `aethon.evaluationProvider` | `copilot` | Provider for `/evaluate` (`copilot`, `ollama`, `infomaniak`, or `custom`) |
| `aethon.proposalProvider` | `copilot` | Provider for `/propose` (`copilot`, `ollama`, `infomaniak`, `custom`, `both`, or `all`) |
| `aethon.copilotProposalModels` | `[]` | Pre-selected Copilot models for `/propose` (skip picker) |
| `aethon.ollamaProposalModels` | `[]` | Pre-selected Ollama models for `/propose` (skip picker) |
| `aethon.infomaniakProposalModels` | `[]` | Pre-selected Infomaniak models for `/propose` (skip picker) |
| `aethon.orchestratorProvider` | `ollama` | Provider for `/orchestrate` planner/verifier (`ollama`, `infomaniak`, `custom`, or `copilot`) |
| `aethon.orchestratorCoderProvider` | `copilot` | Provider for orchestrator coding steps (`copilot`, `ollama`, `infomaniak`, or `custom`) |
| `aethon.ollamaEndpoint` | `http://localhost:11434` | Primary Ollama server URL |
| `aethon.ollamaEndpoints` | `[]` | Additional Ollama servers (`[{ url, label, apiKey }]`). Use "Scan for Ollama Servers" to auto-discover. |
| `aethon.ollamaModel` | `codellama` | Default Ollama model |
| `aethon.ollamaApiKey` | | API key for primary Ollama (empty for local) |
| **Infomaniak AI** | | |
| `aethon.infomaniakProductId` | | Infomaniak AI Product ID |
| `aethon.infomaniakApiKey` | | Infomaniak API key (ai-tools scope) |
| `aethon.infomaniakModel` | `llm` | Default Infomaniak model |
| `aethon.infomaniakEndpoint` | `https://api.infomaniak.com` | Infomaniak API endpoint |
| **Custom Providers** | | |
| `aethon.customProviders` | `[]` | Array of OpenAI-compatible provider configs (see docs) |
| **Export / Tracking** | | |
| `aethon.hfToken` | | HuggingFace write token for dataset push |
| `aethon.hfDatasetRepo` | | HuggingFace dataset repo (e.g. `user/aethon-data`) |
| `aethon.mlflowTrackingUri` | | MLflow tracking server URL (e.g. `http://localhost:5000`) |
| `aethon.wandbApiKey` | | Weights & Biases API key |
| `aethon.wandbProject` | `aethon-training` | W&B project name |
| **Auto-Update** | | |
| `aethon.autoUpdate.enabled` | `true` | Check GitHub for new releases automatically |
| `aethon.autoUpdate.checkIntervalHours` | `6` | Hours between update checks (1–168) |
| `aethon.autoUpdate.includePrerelease` | `false` | Include pre-release versions |